<?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>166635</bug_id>
          
          <creation_ts>2017-01-02 00:16:27 -0800</creation_ts>
          <short_desc>Remove PassRefPtr use from the &quot;html&quot; directory, other improvements</short_desc>
          <delta_ts>2017-01-30 17:02:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=167615</see_also>
          <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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1263259</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-02 00:16:27 -0800</bug_when>
    <thetext>Remove PassRefPtr use from the &quot;html&quot; directory, other improvements</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263260</commentid>
    <comment_count>1</comment_count>
      <attachid>297880</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-02 00:19:22 -0800</bug_when>
    <thetext>Created attachment 297880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263265</commentid>
    <comment_count>2</comment_count>
      <attachid>297882</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-02 00:52:25 -0800</bug_when>
    <thetext>Created attachment 297882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263272</commentid>
    <comment_count>3</comment_count>
      <attachid>297882</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-01-02 02:14:23 -0800</bug_when>
    <thetext>Comment on attachment 297882
Patch

Attachment 297882 did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/2817679

New failing tests:
fast/forms/file/input-file-write-files.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263273</commentid>
    <comment_count>4</comment_count>
      <attachid>297884</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-01-02 02:14:26 -0800</bug_when>
    <thetext>Created attachment 297884
Archive of layout-test-results from ews103 for mac-elcapitan

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103  Port: mac-elcapitan  Platform: Mac OS X 10.11.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263275</commentid>
    <comment_count>5</comment_count>
      <attachid>297882</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-01-02 02:22:11 -0800</bug_when>
    <thetext>Comment on attachment 297882
Patch

Attachment 297882 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/2817686

New failing tests:
fast/forms/file/input-file-write-files.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263276</commentid>
    <comment_count>6</comment_count>
      <attachid>297886</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-01-02 02:22:13 -0800</bug_when>
    <thetext>Created attachment 297886
Archive of layout-test-results from ews114 for mac-elcapitan

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews114  Port: mac-elcapitan  Platform: Mac OS X 10.11.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263326</commentid>
    <comment_count>7</comment_count>
      <attachid>297904</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-02 10:28:05 -0800</bug_when>
    <thetext>Created attachment 297904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263376</commentid>
    <comment_count>8</comment_count>
      <attachid>297919</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-02 18:17:22 -0800</bug_when>
    <thetext>Created attachment 297919
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263393</commentid>
    <comment_count>9</comment_count>
      <attachid>297921</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-02 19:02:03 -0800</bug_when>
    <thetext>Created attachment 297921
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263400</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-02 23:03:20 -0800</bug_when>
    <thetext>Everything building and passing tests. Now I just need to write change log and decide whether to break this up into multiple patches or get it reviewed as one large one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263474</commentid>
    <comment_count>11</comment_count>
      <attachid>297921</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-03 11:04:45 -0800</bug_when>
    <thetext>Comment on attachment 297921
Patch

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

&gt; Source/WebCore/html/track/TextTrackCueList.cpp:102
&gt; +    unsigned insertionPosition = std::upper_bound(m_vector.begin(), m_vector.end(), cueRefPtr, compareCues) - m_vector.begin();
&gt; +    ASSERT_SORTED(m_vector.begin(), m_vector.end(), compareCues);
&gt; +    m_vector.insert(insertionPosition, WTFMove(cueRefPtr));
&gt; +    ASSERT_SORTED(m_vector.begin(), m_vector.end(), compareCues);

Note to self: Old code would refuse to add duplicates (and returned false, but all callers were ignoring that return value). Need to either restore that behavior and make sure a regression test covers that, or figure out why it’s not actually a reachable case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263502</commentid>
    <comment_count>12</comment_count>
      <attachid>297921</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-01-03 13:00:37 -0800</bug_when>
    <thetext>Comment on attachment 297921
Patch

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

I&apos;ll review a large patch.  A lot of this would be hard to split up into smaller patches.

&gt; Source/WebCore/CMakeLists.txt:-1806
&gt; -    html/canvas/WebGLQuery.cpp

Let&apos;s actually remove all these files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263650</commentid>
    <comment_count>13</comment_count>
      <attachid>297921</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-03 18:50:51 -0800</bug_when>
    <thetext>Comment on attachment 297921
Patch

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

&gt;&gt; Source/WebCore/CMakeLists.txt:-1806
&gt;&gt; -    html/canvas/WebGLQuery.cpp
&gt; 
&gt; Let&apos;s actually remove all these files.

I’m not sure what you mean. With the exception of WebGLGetInfo.cpp, these files are all used when ENABLE_WEBGL is true. The reason I deleted them from this list is that they were listed in both the main sources list and in the ENABLE_WEBGL list, and there was no need to list them twice, and no need to compile them when WebGL is not enabled. I discovered this because I had forgotten to put an #if in WebGLAny.cpp and I put that in both lists. It failed to compile on Windows. So I fixed it twice — once by not adding it to this list and a second time by adding an appropriate #if.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263703</commentid>
    <comment_count>14</comment_count>
      <attachid>297994</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-03 23:42:49 -0800</bug_when>
    <thetext>Created attachment 297994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263706</commentid>
    <comment_count>15</comment_count>
      <attachid>297995</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-03 23:53:38 -0800</bug_when>
    <thetext>Created attachment 297995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263727</commentid>
    <comment_count>16</comment_count>
      <attachid>298001</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-04 01:27:54 -0800</bug_when>
    <thetext>Created attachment 298001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263728</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-04 01:29:58 -0800</bug_when>
    <thetext>Attachment 298001 did not pass style-queue:


ERROR: Source/WebCore/html/canvas/WebGLRenderingContextBase.h:575:  &apos;getWebGLFloatArrayParameter&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedGC3Denum&apos;.  [readability/naming/protected] [4]
ERROR: Source/WebCore/html/canvas/WebGLRenderingContextBase.h:576:  &apos;getWebGLIntArrayParameter&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedGC3Denum&apos;.  [readability/naming/protected] [4]
Total errors found: 2 in 171 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263765</commentid>
    <comment_count>18</comment_count>
      <attachid>298015</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-04 09:04:16 -0800</bug_when>
    <thetext>Created attachment 298015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263766</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-04 09:04:39 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; ERROR: Source/WebCore/html/canvas/WebGLRenderingContextBase.h:575: 
&gt; &apos;getWebGLFloatArrayParameter&apos; is incorrectly named. It should be named
&gt; &apos;protector&apos; or &apos;protectedGC3Denum&apos;.  [readability/naming/protected] [4]
&gt; ERROR: Source/WebCore/html/canvas/WebGLRenderingContextBase.h:576: 
&gt; &apos;getWebGLIntArrayParameter&apos; is incorrectly named. It should be named
&gt; &apos;protector&apos; or &apos;protectedGC3Denum&apos;.  [readability/naming/protected] [4]

Brady, this failure is annoying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263767</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-04 09:05:32 -0800</bug_when>
    <thetext>Attachment 298015 did not pass style-queue:


ERROR: Source/WebCore/html/canvas/WebGLRenderingContextBase.h:575:  &apos;getWebGLFloatArrayParameter&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedGC3Denum&apos;.  [readability/naming/protected] [4]
ERROR: Source/WebCore/html/canvas/WebGLRenderingContextBase.h:576:  &apos;getWebGLIntArrayParameter&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedGC3Denum&apos;.  [readability/naming/protected] [4]
Total errors found: 2 in 171 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263799</commentid>
    <comment_count>21</comment_count>
      <attachid>298015</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-04 10:00:12 -0800</bug_when>
    <thetext>Comment on attachment 298015
Patch

Need to fix the build failure on Windows (done) and the crash seen in the track tests (will probably have to wait until tonight).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263813</commentid>
    <comment_count>22</comment_count>
      <attachid>298025</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-04 10:33:48 -0800</bug_when>
    <thetext>Created attachment 298025
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263815</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-04 10:36:05 -0800</bug_when>
    <thetext>Attachment 298025 did not pass style-queue:


ERROR: Source/WebCore/html/canvas/WebGLRenderingContextBase.h:575:  &apos;getWebGLFloatArrayParameter&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedGC3Denum&apos;.  [readability/naming/protected] [4]
ERROR: Source/WebCore/html/canvas/WebGLRenderingContextBase.h:576:  &apos;getWebGLIntArrayParameter&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedGC3Denum&apos;.  [readability/naming/protected] [4]
Total errors found: 2 in 171 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263833</commentid>
    <comment_count>24</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-01-04 11:14:22 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #17)
&gt; &gt; ERROR: Source/WebCore/html/canvas/WebGLRenderingContextBase.h:575: 
&gt; &gt; &apos;getWebGLFloatArrayParameter&apos; is incorrectly named. It should be named
&gt; &gt; &apos;protector&apos; or &apos;protectedGC3Denum&apos;.  [readability/naming/protected] [4]
&gt; &gt; ERROR: Source/WebCore/html/canvas/WebGLRenderingContextBase.h:576: 
&gt; &gt; &apos;getWebGLIntArrayParameter&apos; is incorrectly named. It should be named
&gt; &gt; &apos;protector&apos; or &apos;protectedGC3Denum&apos;.  [readability/naming/protected] [4]
&gt; 
&gt; Brady, this failure is annoying.

I agree.

And it&apos;s also fixable, but I haven&apos;t been able to navigate our scripts with my extremely limited python expertise to do so.

In the past I&apos;ve tried convince others who are way more proficient than myself to take the time to help but have not been successful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263873</commentid>
    <comment_count>25</comment_count>
      <attachid>298025</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-01-04 13:15:00 -0800</bug_when>
    <thetext>Comment on attachment 298025
Patch

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

&gt; Source/WebCore/html/track/TextTrackCueList.cpp:98
&gt; +    unsigned insertionPosition = std::upper_bound(m_vector.begin(), m_vector.end(), cueRefPtr, compareCues) - m_vector.begin();
&gt; +    ASSERT_SORTED(m_vector.begin(), m_vector.end());
&gt; +    m_vector.insert(insertionPosition, WTFMove(cueRefPtr));

If you insert near the beginning every time, this could cause O(n^2) execution time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263918</commentid>
    <comment_count>26</comment_count>
      <attachid>298025</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-04 15:42:05 -0800</bug_when>
    <thetext>Comment on attachment 298025
Patch

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

&gt;&gt; Source/WebCore/html/track/TextTrackCueList.cpp:98
&gt;&gt; +    m_vector.insert(insertionPosition, WTFMove(cueRefPtr));
&gt; 
&gt; If you insert near the beginning every time, this could cause O(n^2) execution time.

Yes, true, and not new to this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263964</commentid>
    <comment_count>27</comment_count>
      <attachid>298057</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-04 18:49:32 -0800</bug_when>
    <thetext>Created attachment 298057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263967</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-04 18:52:59 -0800</bug_when>
    <thetext>Attachment 298057 did not pass style-queue:


ERROR: Source/WebCore/html/canvas/WebGLRenderingContextBase.h:575:  &apos;getWebGLFloatArrayParameter&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedGC3Denum&apos;.  [readability/naming/protected] [4]
ERROR: Source/WebCore/html/canvas/WebGLRenderingContextBase.h:576:  &apos;getWebGLIntArrayParameter&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedGC3Denum&apos;.  [readability/naming/protected] [4]
Total errors found: 2 in 171 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263989</commentid>
    <comment_count>29</comment_count>
      <attachid>298057</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-01-04 20:20:25 -0800</bug_when>
    <thetext>Comment on attachment 298057
Patch

Attachment 298057 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/2832656

New failing tests:
imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/addCue.html
media/track/w3c/interfaces/TextTrack/addCue.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263990</commentid>
    <comment_count>30</comment_count>
      <attachid>298063</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-01-04 20:20:28 -0800</bug_when>
    <thetext>Created attachment 298063
Archive of layout-test-results from ews115 for mac-elcapitan

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews115  Port: mac-elcapitan  Platform: Mac OS X 10.11.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264004</commentid>
    <comment_count>31</comment_count>
      <attachid>298066</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-04 21:11:52 -0800</bug_when>
    <thetext>Created attachment 298066
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264005</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-04 21:14:56 -0800</bug_when>
    <thetext>Attachment 298066 did not pass style-queue:


ERROR: Source/WebCore/html/canvas/WebGLRenderingContextBase.h:575:  &apos;getWebGLFloatArrayParameter&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedGC3Denum&apos;.  [readability/naming/protected] [4]
ERROR: Source/WebCore/html/canvas/WebGLRenderingContextBase.h:576:  &apos;getWebGLIntArrayParameter&apos; is incorrectly named. It should be named &apos;protector&apos; or &apos;protectedGC3Denum&apos;.  [readability/naming/protected] [4]
Total errors found: 2 in 171 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264014</commentid>
    <comment_count>33</comment_count>
      <attachid>298066</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-01-04 22:17:54 -0800</bug_when>
    <thetext>Comment on attachment 298066
Patch

r=me!  Woo hoo!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264018</commentid>
    <comment_count>34</comment_count>
      <attachid>298066</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-04 22:46:50 -0800</bug_when>
    <thetext>Comment on attachment 298066
Patch

Clearing flags on attachment: 298066

Committed r210319: &lt;http://trac.webkit.org/changeset/210319&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264019</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-04 22:46:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264053</commentid>
    <comment_count>36</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-01-05 01:14:28 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; Comment on attachment 298066 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 298066
&gt; 
&gt; Committed r210319: &lt;http://trac.webkit.org/changeset/210319&gt;

It broke the WinCairo build :https://build.webkit.org/builders/WinCairo%2064-Bit%20Release/builds/63994</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264338</commentid>
    <comment_count>37</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-05 20:24:11 -0800</bug_when>
    <thetext>(In reply to comment #36)
&gt; It broke the WinCairo build
&gt; https://build.webkit.org/builders/WinCairo%2064-Bit%20Release/builds/63994

Is there someone who has a WinCairo configuration who can try different fixes for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264610</commentid>
    <comment_count>38</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-01-06 18:42:41 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/210465</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297880</attachid>
            <date>2017-01-02 00:19:22 -0800</date>
            <delta_ts>2017-01-02 00:52:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166635-20170102001758.patch</filename>
            <type>text/plain</type>
            <size>482559</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI3MWNlMGZjMmNkYzZmOGM1YWU3YmVh
NTA2YjA0ZTY1MGI0YmU4ZGMuLjMyNjE1Zjk5MGQ3ZDgzZDVmOTg2MDk2ZTg2ZmFhN2Q2M2ZiYjU2
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDEtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRt
bCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpt
YWtlUmVmUHRyKTogQWRkZWQuCisKIDIwMTYtMTItMjIgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIERlLWR1cGxpY2F0ZSBmaW5hbGx5IGJsb2Nrcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0MjdlYzkwNWM1NGZmNzdlNGUwY2JmYmRkY2QxMDA1NmFhMTg2NWMzLi4wNjEzNzM5YmZh
YTkxYThlMjc4N2I0NmY0NzIzZjdkMzZkYTFmYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTctMDEtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRtbCIgZGlyZWN0b3J5LCBvdGhlciBp
bXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vIGNoYW5nZSBsb2cgeWV0OiBKdXN0IHVwbG9hZGluZyBmb3IgRVdTIGZvciBub3cuCisK
IDIwMTctMDEtMDEgIEplZmYgTWlsbGVyICA8amVmZm1AYXBwbGUuY29tPgogCiAgICAgICAgIFVw
ZGF0ZSB1c2VyLXZpc2libGUgY29weXJpZ2h0IHN0cmluZ3MgdG8gaW5jbHVkZSAyMDE3CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKaW5kZXggOGYyZWM3MzM3MDIwM2ZhMzdmZGM4ZmIxNDRlYWEwYjY4NDQ4OWZlOS4u
M2JmMDdmMTY2ODk4ODg1Mzc0NGZlNjQyNGNmMTdkYzEzMGUxMDc3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAxLTAyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciB1c2UgZnJvbSB0aGUgImh0bWwiIGRp
cmVjdG9yeSwgb3RoZXIgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdl
YkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVh
ZCBvZiBhIHBvaW50ZXIuCisKIDIwMTctMDEtMDEgIEplZmYgTWlsbGVyICA8amVmZm1AYXBwbGUu
Y29tPgogCiAgICAgICAgIFVwZGF0ZSB1c2VyLXZpc2libGUgY29weXJpZ2h0IHN0cmluZ3MgdG8g
aW5jbHVkZSAyMDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjg5NWRjMjc4YTNhZTAwMzcxMWVlMDMzYWI5N2Ey
ZGMyMzAxMWI4Yy4uOTIyMzQ4Yjc4ODY0MTM1ZGQ0YmQ3Y2ZmZmRhNjQ4YWQwNGRlMDA0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAxLTAyICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciB1c2UgZnJvbSB0aGUgImh0
bWwiIGRpcmVjdG9yeSwgb3RoZXIgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2MzUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpsb2Fk
SWNvbkZvckZpbGVzKTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgcG9pbnRlci4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOiBEaXR0
by4KKwogMjAxNy0wMS0wMSAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIHVzZXItdmlzaWJsZSBjb3B5cmlnaHQgc3RyaW5ncyB0byBpbmNsdWRlIDIwMTcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oIGIvU291cmNlL1dURi93dGYvUmVm
UHRyLmgKaW5kZXggODdmYzQ1NmYzNzA0MDQ5YmY0ZWNjY2JmM2E0ZmY1NzY5NzllNjc3Zi4uYWVk
NzJmZjBmMGQ4Y2NlMjg1ODQxYzRhMjk5MjhlZmVhN2QxZTY5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvUmVmUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYvUmVmUHRyLmgKQEAgLTI0Miwx
MCArMjQyLDIxIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4gYWRvcHRS
ZWYoVCogcCkKICAgICByZXR1cm4gUmVmUHRyPFQ+KHAsIFJlZlB0cjxUPjo6QWRvcHQpOwogfQog
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVmUHRyPFQ+IG1ha2VSZWZQdHIoVCogcG9p
bnRlcikKK3sKKyAgICByZXR1cm4gcG9pbnRlcjsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lIFJlZlB0cjxUPiBtYWtlUmVmUHRyKFQmIHJlZmVyZW5jZSkKK3sKKyAgICByZXR1cm4g
JnJlZmVyZW5jZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6UmVmUHRy
OwogdXNpbmcgV1RGOjphZG9wdFJlZjsKK3VzaW5nIFdURjo6bWFrZVJlZlB0cjsKIHVzaW5nIFdU
Rjo6c3RhdGljX3BvaW50ZXJfY2FzdDsKIAogI2VuZGlmIC8vIFdURl9SZWZQdHJfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCAwYzg1MWRlNDBmMTNlYWM3ZmI5YzdkODExZDE3ZWIyMTM0ZmVmZDJi
Li5jN2FhZTc3NmFiODU1OTRhY2FmODc4OWJhYzZjMDI2Mzg1YmE3ODk5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMTc4Niw2ICsxNzg2LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0
bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXIuY3BwCiAgICAgaHRtbC9jYW52YXMv
T0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCiAgICAgaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5jcHAKKyAgICBodG1sL2NhbnZhcy9XZWJHTEFueS5jcHAKICAgICBodG1sL2NhbnZh
cy9XZWJHTEJ1ZmZlci5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHAK
QEAgLTE3OTksNyArMTgwMCw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL2NhbnZh
cy9XZWJHTERyYXdCdWZmZXJzLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmNw
cAogICAgIGh0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCi0gICAgaHRtbC9jYW52YXMv
V2ViR0xHZXRJbmZvLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuY3BwCiAg
ICAgaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3BwCiAgICAgaHRtbC9jYW52YXMvV2ViR0xQcm9n
cmFtLmNwcApAQCAtMzA3OCw2ICszMDc4LDcgQEAgaWYgKEVOQUJMRV9XRUJHTCkKICAgICAgICAg
aHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5jcHAKICAgICAgICAgaHRtbC9j
YW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuY3BwCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQW55LmNwcAog
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKICAgICAgICAgaHRtbC9jYW52YXMv
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcApAQCAtMzA5MSw3ICszMDkyLDYgQEAgaWYgKEVOQUJM
RV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xEcmF3QnVmZmVycy5jcHAKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dl
YkdMRnJhbWVidWZmZXIuY3BwCi0gICAgICAgIGh0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHAK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHAKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xPYmplY3QuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5jcHAKaW5kZXggNDNjMGQwMDBkOGU3MzU1NmZlZTE3MDQyYWY2MzllMDc5ZWQ5OTMwNC4uZGU4
ZDc2ZWFhY2Q1YWM4YmM1ZTIxNGZmNDk4OGQ3ZDI2ZTJmMDI1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTY5MywxOCAr
NjkzLDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZm
ZXIoU291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgYnVmZmVyLmFib3J0SWZVcGRhdGluZygpOwog
CiAgICAgLy8gNC4gTGV0IFNvdXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0IGVxdWFsIHRoZSBB
dWRpb1RyYWNrTGlzdCBvYmplY3QgcmV0dXJuZWQgYnkgc291cmNlQnVmZmVyLmF1ZGlvVHJhY2tz
LgotICAgIFJlZlB0cjxBdWRpb1RyYWNrTGlzdD4gYXVkaW9UcmFja3MgPSBidWZmZXIuYXVkaW9U
cmFja3MoKTsKKyAgICBhdXRvJiBhdWRpb1RyYWNrcyA9IGJ1ZmZlci5hdWRpb1RyYWNrcygpOwog
CiAgICAgLy8gNS4gSWYgdGhlIFNvdXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0IGlzIG5vdCBl
bXB0eSwgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAoYXVkaW9UcmFja3Mt
Pmxlbmd0aCgpKSB7CisgICAgaWYgKGF1ZGlvVHJhY2tzLmxlbmd0aCgpKSB7CiAgICAgICAgIC8v
IDUuMSBMZXQgSFRNTE1lZGlhRWxlbWVudCBhdWRpb1RyYWNrcyBsaXN0IGVxdWFsIHRoZSBBdWRp
b1RyYWNrTGlzdCBvYmplY3QgcmV0dXJuZWQgYnkgdGhlIGF1ZGlvVHJhY2tzCiAgICAgICAgIC8v
IGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAgICAgICAgLy8gNS4yIExldCB0
aGUgcmVtb3ZlZCBlbmFibGVkIGF1ZGlvIHRyYWNrIGZsYWcgZXF1YWwgZmFsc2UuCiAgICAgICAg
IGJvb2wgcmVtb3ZlZEVuYWJsZWRBdWRpb1RyYWNrID0gZmFsc2U7CiAKICAgICAgICAgLy8gNS4z
IEZvciBlYWNoIEF1ZGlvVHJhY2sgb2JqZWN0IGluIHRoZSBTb3VyY2VCdWZmZXIgYXVkaW9UcmFj
a3MgbGlzdCwgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgIHdoaWxlIChhdWRpb1Ry
YWNrcy0+bGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIGF1dG8mIHRyYWNrID0gKmF1ZGlvVHJhY2tz
LT5sYXN0SXRlbSgpOworICAgICAgICB3aGlsZSAoYXVkaW9UcmFja3MubGVuZ3RoKCkpIHsKKyAg
ICAgICAgICAgIGF1dG8mIHRyYWNrID0gKmF1ZGlvVHJhY2tzLmxhc3RJdGVtKCk7CiAKICAgICAg
ICAgICAgIC8vIDUuMy4xIFNldCB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGUgQXVk
aW9UcmFjayBvYmplY3QgdG8gbnVsbC4KICAgICAgICAgICAgIHRyYWNrLnNldFNvdXJjZUJ1ZmZl
cihudWxscHRyKTsKQEAgLTcyMyw3ICs3MjMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNv
dXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgICAgICAg
ICAgLy8gNS4zLjUgUmVtb3ZlIHRoZSBBdWRpb1RyYWNrIG9iamVjdCBmcm9tIHRoZSBTb3VyY2VC
dWZmZXIgYXVkaW9UcmFja3MgbGlzdC4KICAgICAgICAgICAgIC8vIDUuMy42IFF1ZXVlIGEgdGFz
ayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBuYW1lZCByZW1vdmV0cmFjaywgdGhhdCBkb2VzIG5v
dCBidWJibGUgYW5kIGlzIG5vdAogICAgICAgICAgICAgLy8gY2FuY2VsYWJsZSwgYW5kIHRoYXQg
dXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZhY2UsIGF0IHRoZSBTb3VyY2VCdWZmZXIgYXVkaW9U
cmFja3MgbGlzdC4KLSAgICAgICAgICAgIGF1ZGlvVHJhY2tzLT5yZW1vdmUodHJhY2spOworICAg
ICAgICAgICAgYXVkaW9UcmFja3MucmVtb3ZlKHRyYWNrKTsKICAgICAgICAgfQogCiAgICAgICAg
IC8vIDUuNCBJZiB0aGUgcmVtb3ZlZCBlbmFibGVkIGF1ZGlvIHRyYWNrIGZsYWcgZXF1YWxzIHRy
dWUsIHRoZW4gcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQKQEAgLTczMywxOCAr
NzMzLDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZm
ZXIoU291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgfQogCiAgICAgLy8gNi4gTGV0IFNvdXJjZUJ1
ZmZlciB2aWRlb1RyYWNrcyBsaXN0IGVxdWFsIHRoZSBWaWRlb1RyYWNrTGlzdCBvYmplY3QgcmV0
dXJuZWQgYnkgc291cmNlQnVmZmVyLnZpZGVvVHJhY2tzLgotICAgIFJlZlB0cjxWaWRlb1RyYWNr
TGlzdD4gdmlkZW9UcmFja3MgPSBidWZmZXIudmlkZW9UcmFja3MoKTsKKyAgICBhdXRvJiB2aWRl
b1RyYWNrcyA9IGJ1ZmZlci52aWRlb1RyYWNrcygpOwogCiAgICAgLy8gNy4gSWYgdGhlIFNvdXJj
ZUJ1ZmZlciB2aWRlb1RyYWNrcyBsaXN0IGlzIG5vdCBlbXB0eSwgdGhlbiBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczoKLSAgICBpZiAodmlkZW9UcmFja3MtPmxlbmd0aCgpKSB7CisgICAgaWYgKHZp
ZGVvVHJhY2tzLmxlbmd0aCgpKSB7CiAgICAgICAgIC8vIDcuMSBMZXQgSFRNTE1lZGlhRWxlbWVu
dCB2aWRlb1RyYWNrcyBsaXN0IGVxdWFsIHRoZSBWaWRlb1RyYWNrTGlzdCBvYmplY3QgcmV0dXJu
ZWQgYnkgdGhlIHZpZGVvVHJhY2tzCiAgICAgICAgIC8vIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1l
ZGlhRWxlbWVudC4KICAgICAgICAgLy8gNy4yIExldCB0aGUgcmVtb3ZlZCBzZWxlY3RlZCB2aWRl
byB0cmFjayBmbGFnIGVxdWFsIGZhbHNlLgogICAgICAgICBib29sIHJlbW92ZWRTZWxlY3RlZFZp
ZGVvVHJhY2sgPSBmYWxzZTsKIAogICAgICAgICAvLyA3LjMgRm9yIGVhY2ggVmlkZW9UcmFjayBv
YmplY3QgaW4gdGhlIFNvdXJjZUJ1ZmZlciB2aWRlb1RyYWNrcyBsaXN0LCBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczoKLSAgICAgICAgd2hpbGUgKHZpZGVvVHJhY2tzLT5sZW5ndGgoKSkgewotICAg
ICAgICAgICAgYXV0byYgdHJhY2sgPSAqdmlkZW9UcmFja3MtPmxhc3RJdGVtKCk7CisgICAgICAg
IHdoaWxlICh2aWRlb1RyYWNrcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byYgdHJhY2sg
PSAqdmlkZW9UcmFja3MubGFzdEl0ZW0oKTsKIAogICAgICAgICAgICAgLy8gNy4zLjEgU2V0IHRo
ZSBzb3VyY2VCdWZmZXIgYXR0cmlidXRlIG9uIHRoZSBWaWRlb1RyYWNrIG9iamVjdCB0byBudWxs
LgogICAgICAgICAgICAgdHJhY2suc2V0U291cmNlQnVmZmVyKG51bGxwdHIpOwpAQCAtNzYzLDcg
Kzc2Myw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZm
ZXIoU291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgICAgICAgICAvLyA3LjMuNSBSZW1vdmUgdGhl
IFZpZGVvVHJhY2sgb2JqZWN0IGZyb20gdGhlIFNvdXJjZUJ1ZmZlciB2aWRlb1RyYWNrcyBsaXN0
LgogICAgICAgICAgICAgLy8gNy4zLjYgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2
ZW50IG5hbWVkIHJlbW92ZXRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMgbm90CiAg
ICAgICAgICAgICAvLyBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGlu
dGVyZmFjZSwgYXQgdGhlIFNvdXJjZUJ1ZmZlciB2aWRlb1RyYWNrcyBsaXN0LgotICAgICAgICAg
ICAgdmlkZW9UcmFja3MtPnJlbW92ZSh0cmFjayk7CisgICAgICAgICAgICB2aWRlb1RyYWNrcy5y
ZW1vdmUodHJhY2spOwogICAgICAgICB9CiAKICAgICAgICAgLy8gNy40IElmIHRoZSByZW1vdmVk
IHNlbGVjdGVkIHZpZGVvIHRyYWNrIGZsYWcgZXF1YWxzIHRydWUsIHRoZW4gcXVldWUgYSB0YXNr
IHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQKQEAgLTc3MywxOCArNzczLDE4IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyJiBidWZm
ZXIpCiAgICAgfQogCiAgICAgLy8gOC4gTGV0IFNvdXJjZUJ1ZmZlciB0ZXh0VHJhY2tzIGxpc3Qg
ZXF1YWwgdGhlIFRleHRUcmFja0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5IHNvdXJjZUJ1ZmZlci50
ZXh0VHJhY2tzLgotICAgIFJlZlB0cjxUZXh0VHJhY2tMaXN0PiB0ZXh0VHJhY2tzID0gYnVmZmVy
LnRleHRUcmFja3MoKTsKKyAgICBhdXRvJiB0ZXh0VHJhY2tzID0gYnVmZmVyLnRleHRUcmFja3Mo
KTsKIAogICAgIC8vIDkuIElmIHRoZSBTb3VyY2VCdWZmZXIgdGV4dFRyYWNrcyBsaXN0IGlzIG5v
dCBlbXB0eSwgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAodGV4dFRyYWNr
cy0+bGVuZ3RoKCkpIHsKKyAgICBpZiAodGV4dFRyYWNrcy5sZW5ndGgoKSkgewogICAgICAgICAv
LyA5LjEgTGV0IEhUTUxNZWRpYUVsZW1lbnQgdGV4dFRyYWNrcyBsaXN0IGVxdWFsIHRoZSBUZXh0
VHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSB0aGUgdGV4dFRyYWNrcwogICAgICAgICAvLyBh
dHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgICAgIC8vIDkuMiBMZXQgdGhl
IHJlbW92ZWQgZW5hYmxlZCB0ZXh0IHRyYWNrIGZsYWcgZXF1YWwgZmFsc2UuCiAgICAgICAgIGJv
b2wgcmVtb3ZlZEVuYWJsZWRUZXh0VHJhY2sgPSBmYWxzZTsKIAogICAgICAgICAvLyA5LjMgRm9y
IGVhY2ggVGV4dFRyYWNrIG9iamVjdCBpbiB0aGUgU291cmNlQnVmZmVyIHRleHRUcmFja3MgbGlz
dCwgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgIHdoaWxlICh0ZXh0VHJhY2tzLT5s
ZW5ndGgoKSkgewotICAgICAgICAgICAgYXV0byYgdHJhY2sgPSAqdGV4dFRyYWNrcy0+bGFzdEl0
ZW0oKTsKKyAgICAgICAgd2hpbGUgKHRleHRUcmFja3MubGVuZ3RoKCkpIHsKKyAgICAgICAgICAg
IGF1dG8mIHRyYWNrID0gKnRleHRUcmFja3MubGFzdEl0ZW0oKTsKIAogICAgICAgICAgICAgLy8g
OS4zLjEgU2V0IHRoZSBzb3VyY2VCdWZmZXIgYXR0cmlidXRlIG9uIHRoZSBUZXh0VHJhY2sgb2Jq
ZWN0IHRvIG51bGwuCiAgICAgICAgICAgICB0cmFjay5zZXRTb3VyY2VCdWZmZXIobnVsbHB0cik7
CkBAIC04MDMsNyArODAzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6OnJlbW92
ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICAgICAgICAgIC8vIDkuMy41
IFJlbW92ZSB0aGUgVGV4dFRyYWNrIG9iamVjdCBmcm9tIHRoZSBTb3VyY2VCdWZmZXIgdGV4dFRy
YWNrcyBsaXN0LgogICAgICAgICAgICAgLy8gOS4zLjYgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0
cnVzdGVkIGV2ZW50IG5hbWVkIHJlbW92ZXRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQg
aXMgbm90CiAgICAgICAgICAgICAvLyBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFj
a0V2ZW50IGludGVyZmFjZSwgYXQgdGhlIFNvdXJjZUJ1ZmZlciB0ZXh0VHJhY2tzIGxpc3QuCi0g
ICAgICAgICAgICB0ZXh0VHJhY2tzLT5yZW1vdmUodHJhY2spOworICAgICAgICAgICAgdGV4dFRy
YWNrcy5yZW1vdmUodHJhY2spOwogICAgICAgICB9CiAKICAgICAgICAgLy8gOS40IElmIHRoZSBy
ZW1vdmVkIGVuYWJsZWQgdGV4dCB0cmFjayBmbGFnIGVxdWFscyB0cnVlLCB0aGVuIHF1ZXVlIGEg
dGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggN2ZlZTdlNjBiMjJlNDQ4MzQx
Y2FhMDlhZDk4OTk2ODA5YTVlNDI2Yy4uMmUxNGJlMmM5NmMzNWZkNjEzOTdlMGE3YTY1NTk1Njlk
OTM5YjAzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyLmNwcApAQCAtNDIxLDcgKzQyMSw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpz
ZWVrVG9UaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKICAgICB9CiB9CiAKLU1lZGlhVGltZSBT
b3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUo
U291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgdGFyZ2V0VGltZSwgY29uc3Qg
TWVkaWFUaW1lJiBuZWdhdGl2ZVRocmVzaG9sZCwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRo
cmVzaG9sZCkKK01lZGlhVGltZSBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0
U2Vla1RpbWVGb3JNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1lJiB0YXJnZXRUaW1lLCBjb25zdCBN
ZWRpYVRpbWUmIG5lZ2F0aXZlVGhyZXNob2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhy
ZXNob2xkKQogewogICAgIE1lZGlhVGltZSBzZWVrVGltZSA9IHRhcmdldFRpbWU7CiAgICAgTWVk
aWFUaW1lIGxvd2VyQm91bmRUaW1lID0gdGFyZ2V0VGltZSAtIG5lZ2F0aXZlVGhyZXNob2xkOwpA
QCAtNTY2LDcgKzU2Niw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZp
cmVkKCkKIAogICAgIC8vIDEuIExvb3AgVG9wOiBJZiB0aGUgaW5wdXQgYnVmZmVyIGlzIGVtcHR5
LCB0aGVuIGp1bXAgdG8gdGhlIG5lZWQgbW9yZSBkYXRhIHN0ZXAgYmVsb3cuCiAgICAgaWYgKCFt
X3BlbmRpbmdBcHBlbmREYXRhLnNpemUoKSkgewotICAgICAgICBzb3VyY2VCdWZmZXJQcml2YXRl
QXBwZW5kQ29tcGxldGUoJm1fcHJpdmF0ZS5nZXQoKSwgQXBwZW5kU3VjY2VlZGVkKTsKKyAgICAg
ICAgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKEFwcGVuZFN1Y2NlZWRlZCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTU3NCw3ICs1NzQsNyBAQCB2b2lkIFNvdXJjZUJ1
ZmZlcjo6YXBwZW5kQnVmZmVyVGltZXJGaXJlZCgpCiAgICAgbV9wZW5kaW5nQXBwZW5kRGF0YS5j
bGVhcigpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVu
ZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBcHBlbmRSZXN1bHQgcmVzdWx0KQordm9p
ZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShBcHBlbmRS
ZXN1bHQgcmVzdWx0KQogewogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtNjM1LDcgKzYzNSw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRl
QXBwZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIEFwcGVuCiAgICAgTE9HKE1lZGlh
LCAiU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoJXApIC0g
YnVmZmVyZWQgPSAlcyIsIHRoaXMsIHRvU3RyaW5nKG1fYnVmZmVyZWQtPnJhbmdlcygpKS51dGY4
KCkuZGF0YSgpKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoU291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvcikK
K3ZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmlu
Z0Vycm9yKGludCBlcnJvcikKIHsKICNpZiBMT0dfRElTQUJMRUQKICAgICBVTlVTRURfUEFSQU0o
ZXJyb3IpOwpAQCAtOTQ1LDM1ICs5NDUsMzIgQEAgc2l6ZV90IFNvdXJjZUJ1ZmZlcjo6bWF4aW11
bUJ1ZmZlclNpemUoKSBjb25zdAogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICBIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50ID0gbV9zb3VyY2UtPm1lZGlhRWxl
bWVudCgpOworICAgIGF1dG8qIGVsZW1lbnQgPSBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCk7CiAg
ICAgaWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHJldHVybiBlbGVtZW50
LT5tYXhpbXVtU291cmNlQnVmZmVyU2l6ZSgqdGhpcyk7CiB9CiAKLVZpZGVvVHJhY2tMaXN0KiBT
b3VyY2VCdWZmZXI6OnZpZGVvVHJhY2tzKCkKK1ZpZGVvVHJhY2tMaXN0JiBTb3VyY2VCdWZmZXI6
OnZpZGVvVHJhY2tzKCkKIHsKICAgICBpZiAoIW1fdmlkZW9UcmFja3MpCi0gICAgICAgIG1fdmlk
ZW9UcmFja3MgPSBWaWRlb1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQo
KSwgQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0gICAgcmV0
dXJuIG1fdmlkZW9UcmFja3MuZ2V0KCk7CisgICAgICAgIG1fdmlkZW9UcmFja3MgPSBWaWRlb1Ry
YWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKKyAgICByZXR1cm4gKm1fdmlkZW9UcmFja3M7CiB9CiAKLUF1ZGlvVHJhY2tM
aXN0KiBTb3VyY2VCdWZmZXI6OmF1ZGlvVHJhY2tzKCkKK0F1ZGlvVHJhY2tMaXN0JiBTb3VyY2VC
dWZmZXI6OmF1ZGlvVHJhY2tzKCkKIHsKICAgICBpZiAoIW1fYXVkaW9UcmFja3MpCi0gICAgICAg
IG1fYXVkaW9UcmFja3MgPSBBdWRpb1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVs
ZW1lbnQoKSwgQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0g
ICAgcmV0dXJuIG1fYXVkaW9UcmFja3MuZ2V0KCk7CisgICAgICAgIG1fYXVkaW9UcmFja3MgPSBB
dWRpb1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4gKm1fYXVkaW9UcmFja3M7CiB9CiAKLVRleHRU
cmFja0xpc3QqIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrcygpCitUZXh0VHJhY2tMaXN0JiBTb3Vy
Y2VCdWZmZXI6OnRleHRUcmFja3MoKQogewogICAgIGlmICghbV90ZXh0VHJhY2tzKQotICAgICAg
ICBtX3RleHRUcmFja3MgPSBUZXh0VHJhY2tMaXN0OjpjcmVhdGUobV9zb3VyY2UtPm1lZGlhRWxl
bWVudCgpLCBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0KLSAg
ICByZXR1cm4gbV90ZXh0VHJhY2tzLmdldCgpOworICAgICAgICBtX3RleHRUcmFja3MgPSBUZXh0
VHJhY2tMaXN0OjpjcmVhdGUobV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLCBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpOworICAgIHJldHVybiAqbV90ZXh0VHJhY2tzOwogfQogCiB2b2lkIFNvdXJj
ZUJ1ZmZlcjo6c2V0QWN0aXZlKGJvb2wgYWN0aXZlKQpAQCAtOTg3LDcgKzk4NCw3IEBAIHZvaWQg
U291cmNlQnVmZmVyOjpzZXRBY3RpdmUoYm9vbCBhY3RpdmUpCiAgICAgICAgIG1fc291cmNlLT5z
b3VyY2VCdWZmZXJEaWRDaGFuZ2VBY3RpdmVTdGF0ZSgqdGhpcywgYWN0aXZlKTsKIH0KIAotdm9p
ZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRp
b25TZWdtZW50KFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBJbml0aWFsaXphdGlvblNlZ21l
bnQmIHNlZ21lbnQpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJl
Y2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgSW5pdGlhbGl6YXRpb25TZWdtZW50JiBz
ZWdtZW50KQogewogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTAy
NCw0MCArMTAyMSw0MCBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURp
ZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgIC8vIDMuMiBBZGQgdGhlIGFwcHJvcHJpYXRlIHRyYWNr
IGRlc2NyaXB0aW9ucyBmcm9tIHRoaXMgaW5pdGlhbGl6YXRpb24gc2VnbWVudCB0byBlYWNoIG9m
IHRoZSB0cmFjayBidWZmZXJzLgotICAgICAgICBBU1NFUlQoc2VnbWVudC5hdWRpb1RyYWNrcy5z
aXplKCkgPT0gYXVkaW9UcmFja3MoKS0+bGVuZ3RoKCkpOworICAgICAgICBBU1NFUlQoc2VnbWVu
dC5hdWRpb1RyYWNrcy5zaXplKCkgPT0gYXVkaW9UcmFja3MoKS5sZW5ndGgoKSk7CiAgICAgICAg
IGZvciAoYXV0byYgYXVkaW9UcmFja0luZm8gOiBzZWdtZW50LmF1ZGlvVHJhY2tzKSB7Ci0gICAg
ICAgICAgICBpZiAoYXVkaW9UcmFja3MoKS0+bGVuZ3RoKCkgPT0gMSkgewotICAgICAgICAgICAg
ICAgIGF1ZGlvVHJhY2tzKCktPml0ZW0oMCktPnNldFByaXZhdGUoYXVkaW9UcmFja0luZm8udHJh
Y2spOworICAgICAgICAgICAgaWYgKGF1ZGlvVHJhY2tzKCkubGVuZ3RoKCkgPT0gMSkgeworICAg
ICAgICAgICAgICAgIGF1ZGlvVHJhY2tzKCkuaXRlbSgwKS0+c2V0UHJpdmF0ZSgqYXVkaW9UcmFj
a0luZm8udHJhY2spOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICBhdXRvIGF1ZGlvVHJhY2sgPSBhdWRpb1RyYWNrcygpLT5nZXRUcmFja0J5SWQo
YXVkaW9UcmFja0luZm8udHJhY2stPmlkKCkpOworICAgICAgICAgICAgYXV0byBhdWRpb1RyYWNr
ID0gYXVkaW9UcmFja3MoKS5nZXRUcmFja0J5SWQoYXVkaW9UcmFja0luZm8udHJhY2stPmlkKCkp
OwogICAgICAgICAgICAgQVNTRVJUKGF1ZGlvVHJhY2spOwotICAgICAgICAgICAgYXVkaW9UcmFj
ay0+c2V0UHJpdmF0ZShhdWRpb1RyYWNrSW5mby50cmFjayk7CisgICAgICAgICAgICBhdWRpb1Ry
YWNrLT5zZXRQcml2YXRlKCphdWRpb1RyYWNrSW5mby50cmFjayk7CiAgICAgICAgIH0KIAotICAg
ICAgICBBU1NFUlQoc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkgPT0gdmlkZW9UcmFja3MoKS0+
bGVuZ3RoKCkpOworICAgICAgICBBU1NFUlQoc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkgPT0g
dmlkZW9UcmFja3MoKS5sZW5ndGgoKSk7CiAgICAgICAgIGZvciAoYXV0byYgdmlkZW9UcmFja0lu
Zm8gOiBzZWdtZW50LnZpZGVvVHJhY2tzKSB7Ci0gICAgICAgICAgICBpZiAodmlkZW9UcmFja3Mo
KS0+bGVuZ3RoKCkgPT0gMSkgewotICAgICAgICAgICAgICAgIHZpZGVvVHJhY2tzKCktPml0ZW0o
MCktPnNldFByaXZhdGUodmlkZW9UcmFja0luZm8udHJhY2spOworICAgICAgICAgICAgaWYgKHZp
ZGVvVHJhY2tzKCkubGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgICAgIHZpZGVvVHJhY2tz
KCkuaXRlbSgwKS0+c2V0UHJpdmF0ZSgqdmlkZW9UcmFja0luZm8udHJhY2spOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBhdXRvIHZpZGVvVHJh
Y2sgPSB2aWRlb1RyYWNrcygpLT5nZXRUcmFja0J5SWQodmlkZW9UcmFja0luZm8udHJhY2stPmlk
KCkpOworICAgICAgICAgICAgYXV0byB2aWRlb1RyYWNrID0gdmlkZW9UcmFja3MoKS5nZXRUcmFj
a0J5SWQodmlkZW9UcmFja0luZm8udHJhY2stPmlkKCkpOwogICAgICAgICAgICAgQVNTRVJUKHZp
ZGVvVHJhY2spOwotICAgICAgICAgICAgdmlkZW9UcmFjay0+c2V0UHJpdmF0ZSh2aWRlb1RyYWNr
SW5mby50cmFjayk7CisgICAgICAgICAgICB2aWRlb1RyYWNrLT5zZXRQcml2YXRlKCp2aWRlb1Ry
YWNrSW5mby50cmFjayk7CiAgICAgICAgIH0KIAotICAgICAgICBBU1NFUlQoc2VnbWVudC50ZXh0
VHJhY2tzLnNpemUoKSA9PSB0ZXh0VHJhY2tzKCktPmxlbmd0aCgpKTsKKyAgICAgICAgQVNTRVJU
KHNlZ21lbnQudGV4dFRyYWNrcy5zaXplKCkgPT0gdGV4dFRyYWNrcygpLmxlbmd0aCgpKTsKICAg
ICAgICAgZm9yIChhdXRvJiB0ZXh0VHJhY2tJbmZvIDogc2VnbWVudC50ZXh0VHJhY2tzKSB7Ci0g
ICAgICAgICAgICBpZiAodGV4dFRyYWNrcygpLT5sZW5ndGgoKSA9PSAxKSB7Ci0gICAgICAgICAg
ICAgICAgZG93bmNhc3Q8SW5iYW5kVGV4dFRyYWNrPigqdGV4dFRyYWNrcygpLT5pdGVtKDApKS5z
ZXRQcml2YXRlKHRleHRUcmFja0luZm8udHJhY2spOworICAgICAgICAgICAgaWYgKHRleHRUcmFj
a3MoKS5sZW5ndGgoKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgZG93bmNhc3Q8SW5iYW5kVGV4
dFRyYWNrPigqdGV4dFRyYWNrcygpLml0ZW0oMCkpLnNldFByaXZhdGUoKnRleHRUcmFja0luZm8u
dHJhY2spOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICBhdXRvIHRleHRUcmFjayA9IHRleHRUcmFja3MoKS0+Z2V0VHJhY2tCeUlkKHRleHRUcmFj
a0luZm8udHJhY2stPmlkKCkpOworICAgICAgICAgICAgYXV0byB0ZXh0VHJhY2sgPSB0ZXh0VHJh
Y2tzKCkuZ2V0VHJhY2tCeUlkKHRleHRUcmFja0luZm8udHJhY2stPmlkKCkpOwogICAgICAgICAg
ICAgQVNTRVJUKHRleHRUcmFjayk7Ci0gICAgICAgICAgICBkb3duY2FzdDxJbmJhbmRUZXh0VHJh
Y2s+KCp0ZXh0VHJhY2spLnNldFByaXZhdGUodGV4dFRyYWNrSW5mby50cmFjayk7CisgICAgICAg
ICAgICBkb3duY2FzdDxJbmJhbmRUZXh0VHJhY2s+KCp0ZXh0VHJhY2spLnNldFByaXZhdGUoKnRl
eHRUcmFja0luZm8udHJhY2spOwogICAgICAgICB9CiAKICAgICAgICAgLy8gMy4zIFNldCB0aGUg
bmVlZCByYW5kb20gYWNjZXNzIHBvaW50IGZsYWcgb24gYWxsIHRyYWNrIGJ1ZmZlcnMgdG8gdHJ1
ZS4KQEAgLTEwNzYsMTYgKzEwNzMsMTQgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKIAogICAg
ICAgICAvLyA1LjIgRm9yIGVhY2ggYXVkaW8gdHJhY2sgaW4gdGhlIGluaXRpYWxpemF0aW9uIHNl
Z21lbnQsIHJ1biBmb2xsb3dpbmcgc3RlcHM6CiAgICAgICAgIGZvciAoYXV0byYgYXVkaW9UcmFj
a0luZm8gOiBzZWdtZW50LmF1ZGlvVHJhY2tzKSB7Ci0gICAgICAgICAgICBBdWRpb1RyYWNrUHJp
dmF0ZSogYXVkaW9UcmFja1ByaXZhdGUgPSBhdWRpb1RyYWNrSW5mby50cmFjay5nZXQoKTsKLQog
ICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBzdGVwcyA1LjIuMS01LjIuOC4xIGFzIHBl
ciBFZGl0b3IncyBEcmFmdCAwOSBKYW51YXJ5IDIwMTUsIGFuZCByZW9yZGVyIHRoaXMKICAgICAg
ICAgICAgIC8vIDUuMi4xIExldCBuZXcgYXVkaW8gdHJhY2sgYmUgYSBuZXcgQXVkaW9UcmFjayBv
YmplY3QuCiAgICAgICAgICAgICAvLyA1LjIuMiBHZW5lcmF0ZSBhIHVuaXF1ZSBJRCBhbmQgYXNz
aWduIGl0IHRvIHRoZSBpZCBwcm9wZXJ0eSBvbiBuZXcgdmlkZW8gdHJhY2suCi0gICAgICAgICAg
ICBhdXRvIG5ld0F1ZGlvVHJhY2sgPSBBdWRpb1RyYWNrOjpjcmVhdGUodGhpcywgYXVkaW9UcmFj
a1ByaXZhdGUpOworICAgICAgICAgICAgYXV0byBuZXdBdWRpb1RyYWNrID0gQXVkaW9UcmFjazo6
Y3JlYXRlKCp0aGlzLCAqYXVkaW9UcmFja0luZm8udHJhY2spOwogICAgICAgICAgICAgbmV3QXVk
aW9UcmFjay0+c2V0U291cmNlQnVmZmVyKHRoaXMpOwogCiAgICAgICAgICAgICAvLyA1LjIuMyBJ
ZiBhdWRpb1RyYWNrcy5sZW5ndGggZXF1YWxzIDAsIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3Rl
cHM6Ci0gICAgICAgICAgICBpZiAoIWF1ZGlvVHJhY2tzKCktPmxlbmd0aCgpKSB7CisgICAgICAg
ICAgICBpZiAoIWF1ZGlvVHJhY2tzKCkubGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICAvLyA1
LjIuMy4xIFNldCB0aGUgZW5hYmxlZCBwcm9wZXJ0eSBvbiBuZXcgYXVkaW8gdHJhY2sgdG8gdHJ1
ZS4KICAgICAgICAgICAgICAgICBuZXdBdWRpb1RyYWNrLT5zZXRFbmFibGVkKHRydWUpOwogCkBA
IC0xMDk3LDcgKzEwOTIsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogICAgICAgICAgICAg
Ly8gNS4yLjUgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRy
YWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMKICAgICAgICAgICAgIC8vIG5vdCBjYW5j
ZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGludGVyZmFjZSwgYXQgdGhlIEF1
ZGlvVHJhY2tMaXN0IG9iamVjdAogICAgICAgICAgICAgLy8gcmVmZXJlbmNlZCBieSB0aGUgYXVk
aW9UcmFja3MgYXR0cmlidXRlIG9uIHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4KLSAgICAgICAg
ICAgIGF1ZGlvVHJhY2tzKCktPmFwcGVuZChuZXdBdWRpb1RyYWNrLmNvcHlSZWYoKSk7CisgICAg
ICAgICAgICBhdWRpb1RyYWNrcygpLmFwcGVuZChuZXdBdWRpb1RyYWNrLmNvcHlSZWYoKSk7CiAK
ICAgICAgICAgICAgIC8vIDUuMi42IEFkZCBuZXcgYXVkaW8gdHJhY2sgdG8gdGhlIGF1ZGlvVHJh
Y2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAgICAgICAgICAgIC8vIDUu
Mi43IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0cmFjaywg
dGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCkBAIC0xMTA3LDcgKzExMDIsNyBAQCB2b2lkIFNv
dXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNl
Z21lbnQoU291cmNlQnVmZgogCiAgICAgICAgICAgICAvLyA1LjIuOCBDcmVhdGUgYSBuZXcgdHJh
Y2sgYnVmZmVyIHRvIHN0b3JlIGNvZGVkIGZyYW1lcyBmb3IgdGhpcyB0cmFjay4KICAgICAgICAg
ICAgIEFTU0VSVCghbV90cmFja0J1ZmZlck1hcC5jb250YWlucyhuZXdBdWRpb1RyYWNrLT5pZCgp
KSk7Ci0gICAgICAgICAgICBUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVmZmVy
TWFwLmFkZChuZXdBdWRpb1RyYWNrLT5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFs
dWU7CisgICAgICAgICAgICBhdXRvJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRk
KG5ld0F1ZGlvVHJhY2stPmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKIAog
ICAgICAgICAgICAgLy8gNS4yLjkgQWRkIHRoZSB0cmFjayBkZXNjcmlwdGlvbiBmb3IgdGhpcyB0
cmFjayB0byB0aGUgdHJhY2sgYnVmZmVyLgogICAgICAgICAgICAgdHJhY2tCdWZmZXIuZGVzY3Jp
cHRpb24gPSBhdWRpb1RyYWNrSW5mby5kZXNjcmlwdGlvbjsKQEAgLTExMTcsMTYgKzExMTIsMTQg
QEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlh
bGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKIAogICAgICAgICAvLyA1LjMgRm9yIGVhY2ggdmlk
ZW8gdHJhY2sgaW4gdGhlIGluaXRpYWxpemF0aW9uIHNlZ21lbnQsIHJ1biBmb2xsb3dpbmcgc3Rl
cHM6CiAgICAgICAgIGZvciAoYXV0byYgdmlkZW9UcmFja0luZm8gOiBzZWdtZW50LnZpZGVvVHJh
Y2tzKSB7Ci0gICAgICAgICAgICBWaWRlb1RyYWNrUHJpdmF0ZSogdmlkZW9UcmFja1ByaXZhdGUg
PSB2aWRlb1RyYWNrSW5mby50cmFjay5nZXQoKTsKLQogICAgICAgICAgICAgLy8gRklYTUU6IElt
cGxlbWVudCBzdGVwcyA1LjMuMS01LjMuOC4xIGFzIHBlciBFZGl0b3IncyBEcmFmdCAwOSBKYW51
YXJ5IDIwMTUsIGFuZCByZW9yZGVyIHRoaXMKICAgICAgICAgICAgIC8vIDUuMy4xIExldCBuZXcg
dmlkZW8gdHJhY2sgYmUgYSBuZXcgVmlkZW9UcmFjayBvYmplY3QuCiAgICAgICAgICAgICAvLyA1
LjMuMiBHZW5lcmF0ZSBhIHVuaXF1ZSBJRCBhbmQgYXNzaWduIGl0IHRvIHRoZSBpZCBwcm9wZXJ0
eSBvbiBuZXcgdmlkZW8gdHJhY2suCi0gICAgICAgICAgICBhdXRvIG5ld1ZpZGVvVHJhY2sgPSBW
aWRlb1RyYWNrOjpjcmVhdGUodGhpcywgdmlkZW9UcmFja1ByaXZhdGUpOworICAgICAgICAgICAg
YXV0byBuZXdWaWRlb1RyYWNrID0gVmlkZW9UcmFjazo6Y3JlYXRlKCp0aGlzLCAqdmlkZW9UcmFj
a0luZm8udHJhY2spOwogICAgICAgICAgICAgbmV3VmlkZW9UcmFjay0+c2V0U291cmNlQnVmZmVy
KHRoaXMpOwogCiAgICAgICAgICAgICAvLyA1LjMuMyBJZiB2aWRlb1RyYWNrcy5sZW5ndGggZXF1
YWxzIDAsIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgICAgICBpZiAoIXZp
ZGVvVHJhY2tzKCktPmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpZiAoIXZpZGVvVHJhY2tzKCku
bGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICAvLyA1LjMuMy4xIFNldCB0aGUgc2VsZWN0ZWQg
cHJvcGVydHkgb24gbmV3IHZpZGVvIHRyYWNrIHRvIHRydWUuCiAgICAgICAgICAgICAgICAgbmV3
VmlkZW9UcmFjay0+c2V0U2VsZWN0ZWQodHJ1ZSk7CiAKQEAgLTExMzgsNyArMTEzMSw3IEBAIHZv
aWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0
aW9uU2VnbWVudChTb3VyY2VCdWZmCiAgICAgICAgICAgICAvLyA1LjMuNSBRdWV1ZSBhIHRhc2sg
dG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgYWRkdHJhY2ssIHRoYXQgZG9lcyBub3QgYnVi
YmxlIGFuZCBpcwogICAgICAgICAgICAgLy8gbm90IGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMg
dGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0CiAg
ICAgICAgICAgICAvLyByZWZlcmVuY2VkIGJ5IHRoZSB2aWRlb1RyYWNrcyBhdHRyaWJ1dGUgb24g
dGhpcyBTb3VyY2VCdWZmZXIgb2JqZWN0LgotICAgICAgICAgICAgdmlkZW9UcmFja3MoKS0+YXBw
ZW5kKG5ld1ZpZGVvVHJhY2suY29weVJlZigpKTsKKyAgICAgICAgICAgIHZpZGVvVHJhY2tzKCku
YXBwZW5kKG5ld1ZpZGVvVHJhY2suY29weVJlZigpKTsKIAogICAgICAgICAgICAgLy8gNS4zLjYg
QWRkIG5ldyB2aWRlbyB0cmFjayB0byB0aGUgdmlkZW9UcmFja3MgYXR0cmlidXRlIG9uIHRoZSBI
VE1MTWVkaWFFbGVtZW50LgogICAgICAgICAgICAgLy8gNS4zLjcgUXVldWUgYSB0YXNrIHRvIGZp
cmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBh
bmQgaXMKQEAgLTExNDgsNyArMTE0MSw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZm
ZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmCiAKICAg
ICAgICAgICAgIC8vIDUuMy44IENyZWF0ZSBhIG5ldyB0cmFjayBidWZmZXIgdG8gc3RvcmUgY29k
ZWQgZnJhbWVzIGZvciB0aGlzIHRyYWNrLgogICAgICAgICAgICAgQVNTRVJUKCFtX3RyYWNrQnVm
ZmVyTWFwLmNvbnRhaW5zKG5ld1ZpZGVvVHJhY2stPmlkKCkpKTsKLSAgICAgICAgICAgIFRyYWNr
QnVmZmVyJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKG5ld1ZpZGVvVHJhY2st
PmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgICAgIGF1dG8m
IHRyYWNrQnVmZmVyID0gbV90cmFja0J1ZmZlck1hcC5hZGQobmV3VmlkZW9UcmFjay0+aWQoKSwg
VHJhY2tCdWZmZXIoKSkuaXRlcmF0b3ItPnZhbHVlOwogCiAgICAgICAgICAgICAvLyA1LjMuOSBB
ZGQgdGhlIHRyYWNrIGRlc2NyaXB0aW9uIGZvciB0aGlzIHRyYWNrIHRvIHRoZSB0cmFjayBidWZm
ZXIuCiAgICAgICAgICAgICB0cmFja0J1ZmZlci5kZXNjcmlwdGlvbiA9IHZpZGVvVHJhY2tJbmZv
LmRlc2NyaXB0aW9uOwpAQCAtMTE1OCwzMyArMTE1MSwzMyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6
c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNl
QnVmZgogCiAgICAgICAgIC8vIDUuNCBGb3IgZWFjaCB0ZXh0IHRyYWNrIGluIHRoZSBpbml0aWFs
aXphdGlvbiBzZWdtZW50LCBydW4gZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICBmb3IgKGF1dG8m
IHRleHRUcmFja0luZm8gOiBzZWdtZW50LnRleHRUcmFja3MpIHsKLSAgICAgICAgICAgIEluYmFu
ZFRleHRUcmFja1ByaXZhdGUqIHRleHRUcmFja1ByaXZhdGUgPSB0ZXh0VHJhY2tJbmZvLnRyYWNr
LmdldCgpOworICAgICAgICAgICAgYXV0byYgdGV4dFRyYWNrUHJpdmF0ZSA9ICp0ZXh0VHJhY2tJ
bmZvLnRyYWNrOwogCiAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHN0ZXBzIDUuNC4x
LTUuNC44LjEgYXMgcGVyIEVkaXRvcidzIERyYWZ0IDA5IEphbnVhcnkgMjAxNSwgYW5kIHJlb3Jk
ZXIgdGhpcwogICAgICAgICAgICAgLy8gNS40LjEgTGV0IG5ldyB0ZXh0IHRyYWNrIGJlIGEgbmV3
IFRleHRUcmFjayBvYmplY3Qgd2l0aCBpdHMgcHJvcGVydGllcyBwb3B1bGF0ZWQgd2l0aCB0aGUK
ICAgICAgICAgICAgIC8vIGFwcHJvcHJpYXRlIGluZm9ybWF0aW9uIGZyb20gdGhlIGluaXRpYWxp
emF0aW9uIHNlZ21lbnQuCi0gICAgICAgICAgICBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrPiBuZXdU
ZXh0VHJhY2sgPSBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCksIHRoaXMsIHRleHRUcmFja1ByaXZhdGUpOworICAgICAgICAgICAgYXV0byBuZXdUZXh0VHJh
Y2sgPSBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAq
dGhpcywgdGV4dFRyYWNrUHJpdmF0ZSk7CiAKICAgICAgICAgICAgIC8vIDUuNC4yIElmIHRoZSBt
b2RlIHByb3BlcnR5IG9uIG5ldyB0ZXh0IHRyYWNrIGVxdWFscyAic2hvd2luZyIgb3IgImhpZGRl
biIsIHRoZW4gc2V0IGFjdGl2ZQogICAgICAgICAgICAgLy8gdHJhY2sgZmxhZyB0byB0cnVlLgot
ICAgICAgICAgICAgaWYgKHRleHRUcmFja1ByaXZhdGUtPm1vZGUoKSAhPSBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlOjpEaXNhYmxlZCkKKyAgICAgICAgICAgIGlmICh0ZXh0VHJhY2tQcml2YXRlLm1v
ZGUoKSAhPSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpEaXNhYmxlZCkKICAgICAgICAgICAgICAg
ICBhY3RpdmVUcmFja0ZsYWcgPSB0cnVlOwogCiAgICAgICAgICAgICAvLyA1LjQuMyBBZGQgbmV3
IHRleHQgdHJhY2sgdG8gdGhlIHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoaXMgU291cmNlQnVm
ZmVyIG9iamVjdC4KICAgICAgICAgICAgIC8vIDUuNC40IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEg
dHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlz
CiAgICAgICAgICAgICAvLyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tF
dmVudCBpbnRlcmZhY2UsIGF0IHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoaXMKICAgICAgICAg
ICAgIC8vIFNvdXJjZUJ1ZmZlciBvYmplY3QuCi0gICAgICAgICAgICB0ZXh0VHJhY2tzKCktPmFw
cGVuZCgqbmV3VGV4dFRyYWNrKTsKKyAgICAgICAgICAgIHRleHRUcmFja3MoKS5hcHBlbmQobmV3
VGV4dFRyYWNrLmdldCgpKTsKIAogICAgICAgICAgICAgLy8gNS40LjUgQWRkIG5ldyB0ZXh0IHRy
YWNrIHRvIHRoZSB0ZXh0VHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4K
ICAgICAgICAgICAgIC8vIDUuNC42IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVu
dCBuYW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCiAgICAgICAgICAg
ICAvLyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZh
Y2UsIGF0IHRoZSBUZXh0VHJhY2tMaXN0IG9iamVjdAogICAgICAgICAgICAgLy8gcmVmZXJlbmNl
ZCBieSB0aGUgdGV4dFRyYWNrcyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCi0g
ICAgICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja3MoKS5hcHBlbmQo
bmV3VGV4dFRyYWNrLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgbV9zb3VyY2UtPm1l
ZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tzKCkuYXBwZW5kKFdURk1vdmUobmV3VGV4dFRyYWNrKSk7
CiAKICAgICAgICAgICAgIC8vIDUuNC43IENyZWF0ZSBhIG5ldyB0cmFjayBidWZmZXIgdG8gc3Rv
cmUgY29kZWQgZnJhbWVzIGZvciB0aGlzIHRyYWNrLgotICAgICAgICAgICAgQVNTRVJUKCFtX3Ry
YWNrQnVmZmVyTWFwLmNvbnRhaW5zKHRleHRUcmFja1ByaXZhdGUtPmlkKCkpKTsKLSAgICAgICAg
ICAgIFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKHRleHRU
cmFja1ByaXZhdGUtPmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAg
ICAgICAgIEFTU0VSVCghbV90cmFja0J1ZmZlck1hcC5jb250YWlucyh0ZXh0VHJhY2tQcml2YXRl
LmlkKCkpKTsKKyAgICAgICAgICAgIGF1dG8mIHRyYWNrQnVmZmVyID0gbV90cmFja0J1ZmZlck1h
cC5hZGQodGV4dFRyYWNrUHJpdmF0ZS5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFs
dWU7CiAKICAgICAgICAgICAgIC8vIDUuNC44IEFkZCB0aGUgdHJhY2sgZGVzY3JpcHRpb24gZm9y
IHRoaXMgdHJhY2sgdG8gdGhlIHRyYWNrIGJ1ZmZlci4KICAgICAgICAgICAgIHRyYWNrQnVmZmVy
LmRlc2NyaXB0aW9uID0gdGV4dFRyYWNrSW5mby5kZXNjcmlwdGlvbjsKQEAgLTEyMzEsOSArMTIy
NCw5IEBAIGJvb2wgU291cmNlQnVmZmVyOjp2YWxpZGF0ZUluaXRpYWxpemF0aW9uU2VnbWVudChj
b25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmIHNlCiAKICAgICAvLyBOb3RlOiB0aG9zZSBhcmUg
Y2hlY2tzIGZyb20gc3RlcCAzLjEKICAgICAvLyAgICogVGhlIG51bWJlciBvZiBhdWRpbywgdmlk
ZW8sIGFuZCB0ZXh0IHRyYWNrcyBtYXRjaCB3aGF0IHdhcyBpbiB0aGUgZmlyc3QgaW5pdGlhbGl6
YXRpb24gc2VnbWVudC4KLSAgICBpZiAoc2VnbWVudC5hdWRpb1RyYWNrcy5zaXplKCkgIT0gYXVk
aW9UcmFja3MoKS0+bGVuZ3RoKCkKLSAgICAgICAgfHwgc2VnbWVudC52aWRlb1RyYWNrcy5zaXpl
KCkgIT0gdmlkZW9UcmFja3MoKS0+bGVuZ3RoKCkKLSAgICAgICAgfHwgc2VnbWVudC50ZXh0VHJh
Y2tzLnNpemUoKSAhPSB0ZXh0VHJhY2tzKCktPmxlbmd0aCgpKQorICAgIGlmIChzZWdtZW50LmF1
ZGlvVHJhY2tzLnNpemUoKSAhPSBhdWRpb1RyYWNrcygpLmxlbmd0aCgpCisgICAgICAgIHx8IHNl
Z21lbnQudmlkZW9UcmFja3Muc2l6ZSgpICE9IHZpZGVvVHJhY2tzKCkubGVuZ3RoKCkKKyAgICAg
ICAgfHwgc2VnbWVudC50ZXh0VHJhY2tzLnNpemUoKSAhPSB0ZXh0VHJhY2tzKCkubGVuZ3RoKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vICAgKiBUaGUgY29kZWNzIGZvciBlYWNo
IHRyYWNrLCBtYXRjaCB3aGF0IHdhcyBzcGVjaWZpZWQgaW4gdGhlIGZpcnN0IGluaXRpYWxpemF0
aW9uIHNlZ21lbnQuCkBAIC0xMzE5LDcgKzEzMTIsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6YXBw
ZW5kRXJyb3IoYm9vbCBkZWNvZGVFcnJvclBhcmFtKQogICAgICAgICBtX3NvdXJjZS0+c3RyZWFt
RW5kZWRXaXRoRXJyb3IoTWVkaWFTb3VyY2U6OkVuZE9mU3RyZWFtRXJyb3I6OkRlY29kZSk7CiB9
CiAKLXZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBs
ZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgTWVkaWFTYW1wbGUmIHNhbXBsZSkKK3ZvaWQgU291cmNl
QnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYg
c2FtcGxlKQogewogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTY2
NiwzMCArMTY1OSwzMCBAQCBib29sIFNvdXJjZUJ1ZmZlcjo6aGFzVmlkZW8oKSBjb25zdAogICAg
IHJldHVybiBtX3ZpZGVvVHJhY2tzICYmIG1fdmlkZW9UcmFja3MtPmxlbmd0aCgpOwogfQogCi1i
b29sIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKGNvbnN0IFNvdXJj
ZUJ1ZmZlclByaXZhdGUqKSBjb25zdAorYm9vbCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclBy
aXZhdGVIYXNBdWRpbygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc0F1ZGlvKCk7CiB9CiAKLWJv
b2wgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8oY29uc3QgU291cmNl
QnVmZmVyUHJpdmF0ZSopIGNvbnN0Citib29sIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJp
dmF0ZUhhc1ZpZGVvKCkgY29uc3QKIHsKICAgICByZXR1cm4gaGFzVmlkZW8oKTsKIH0KIAotdm9p
ZCBTb3VyY2VCdWZmZXI6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayogdHJh
Y2spCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1Ry
YWNrJiB0cmFjaykKIHsKICAgICAvLyAyLjQuNSBDaGFuZ2VzIHRvIHNlbGVjdGVkL2VuYWJsZWQg
dHJhY2sgc3RhdGUKICAgICAvLyBJZiB0aGUgc2VsZWN0ZWQgdmlkZW8gdHJhY2sgY2hhbmdlcywg
dGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKICAgICAvLyAxLiBJZiB0aGUgU291cmNlQnVm
ZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCB2aWRlbyB0cmFjayBp
cyBub3QgYXNzb2NpYXRlZCB3aXRoCiAgICAgLy8gYW55IG90aGVyIGVuYWJsZWQgdHJhY2tzLCBy
dW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAoIXRyYWNrLT5zZWxlY3RlZCgpCisgICAg
aWYgKCF0cmFjay5zZWxlY3RlZCgpCiAgICAgICAgICYmICghbV92aWRlb1RyYWNrcyB8fCAhbV92
aWRlb1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX2F1ZGlvVHJh
Y2tzIHx8ICFtX2F1ZGlvVHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAgICAgICAmJiAo
IW1fdGV4dFRyYWNrcyB8fCAhbV90ZXh0VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKSkgewog
ICAgICAgICAvLyAxLjEgUmVtb3ZlIHRoZSBTb3VyY2VCdWZmZXIgZnJvbSBhY3RpdmVTb3VyY2VC
dWZmZXJzLgogICAgICAgICAvLyAxLjIgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZl
bnQgbmFtZWQgcmVtb3Zlc291cmNlYnVmZmVyIGF0IGFjdGl2ZVNvdXJjZUJ1ZmZlcnMKICAgICAg
ICAgc2V0QWN0aXZlKGZhbHNlKTsKLSAgICB9IGVsc2UgaWYgKHRyYWNrLT5zZWxlY3RlZCgpKSB7
CisgICAgfSBlbHNlIGlmICh0cmFjay5zZWxlY3RlZCgpKSB7CiAgICAgICAgIC8vIDIuIElmIHRo
ZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBuZXdseSBzZWxlY3RlZCB2aWRlbyB0
cmFjayBpcyBub3QgYWxyZWFkeSBpbiBhY3RpdmVTb3VyY2VCdWZmZXJzLAogICAgICAgICAvLyBy
dW4gdGhlIGZvbGxvd2luZyBzdGVwczoKICAgICAgICAgLy8gMi4xIEFkZCB0aGUgU291cmNlQnVm
ZmVyIHRvIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMuCkBAIC0xNjk3LDI2ICsxNjkwLDI2IEBAIHZvaWQg
U291cmNlQnVmZmVyOjp2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqIHRyYWNr
KQogICAgICAgICBzZXRBY3RpdmUodHJ1ZSk7CiAgICAgfQogCi0gICAgaWYgKG1fdmlkZW9UcmFj
a3MgJiYgbV92aWRlb1RyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV92aWRlb1Ry
YWNrcyAmJiBtX3ZpZGVvVHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fdmlkZW9U
cmFja3MtPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIGlmICghaXNSZW1vdmVkKCkpCiAg
ICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdl
ZCh0cmFjayk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjphdWRpb1RyYWNrRW5hYmxlZENoYW5n
ZWQoQXVkaW9UcmFjayogdHJhY2spCit2b2lkIFNvdXJjZUJ1ZmZlcjo6YXVkaW9UcmFja0VuYWJs
ZWRDaGFuZ2VkKEF1ZGlvVHJhY2smIHRyYWNrKQogewogICAgIC8vIDIuNC41IENoYW5nZXMgdG8g
c2VsZWN0ZWQvZW5hYmxlZCB0cmFjayBzdGF0ZQogICAgIC8vIElmIGFuIGF1ZGlvIHRyYWNrIGJl
Y29tZXMgZGlzYWJsZWQgYW5kIHRoZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMg
dHJhY2sgaXMgbm90CiAgICAgLy8gYXNzb2NpYXRlZCB3aXRoIGFueSBvdGhlciBlbmFibGVkIG9y
IHNlbGVjdGVkIHRyYWNrLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIGlmICgh
dHJhY2stPmVuYWJsZWQoKQorICAgIGlmICghdHJhY2suZW5hYmxlZCgpCiAgICAgICAgICYmICgh
bV92aWRlb1RyYWNrcyB8fCAhbV92aWRlb1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkKICAg
ICAgICAgJiYgKCFtX2F1ZGlvVHJhY2tzIHx8ICFtX2F1ZGlvVHJhY2tzLT5pc0FueVRyYWNrRW5h
YmxlZCgpKQogICAgICAgICAmJiAoIW1fdGV4dFRyYWNrcyB8fCAhbV90ZXh0VHJhY2tzLT5pc0Fu
eVRyYWNrRW5hYmxlZCgpKSkgewogICAgICAgICAvLyAxLiBSZW1vdmUgdGhlIFNvdXJjZUJ1ZmZl
ciBhc3NvY2lhdGVkIHdpdGggdGhlIGF1ZGlvIHRyYWNrIGZyb20gYWN0aXZlU291cmNlQnVmZmVy
cwogICAgICAgICAvLyAyLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1l
ZCByZW1vdmVzb3VyY2VidWZmZXIgYXQgYWN0aXZlU291cmNlQnVmZmVycwogICAgICAgICBzZXRB
Y3RpdmUoZmFsc2UpOwotICAgIH0gZWxzZSBpZiAodHJhY2stPmVuYWJsZWQoKSkgeworICAgIH0g
ZWxzZSBpZiAodHJhY2suZW5hYmxlZCgpKSB7CiAgICAgICAgIC8vIElmIGFuIGF1ZGlvIHRyYWNr
IGJlY29tZXMgZW5hYmxlZCBhbmQgdGhlIFNvdXJjZUJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhp
cyB0cmFjayBpcwogICAgICAgICAvLyBub3QgYWxyZWFkeSBpbiBhY3RpdmVTb3VyY2VCdWZmZXJz
LCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICAvLyAxLiBBZGQgdGhlIFNv
dXJjZUJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhlIGF1ZGlvIHRyYWNrIHRvIGFjdGl2ZVNvdXJj
ZUJ1ZmZlcnMKQEAgLTE3MjQsMTkgKzE3MTcsMTkgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OmF1ZGlv
VHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKiB0cmFjaykKICAgICAgICAgc2V0QWN0aXZl
KHRydWUpOwogICAgIH0KIAotICAgIGlmIChtX2F1ZGlvVHJhY2tzICYmIG1fYXVkaW9UcmFja3Mt
PmNvbnRhaW5zKCp0cmFjaykpCisgICAgaWYgKG1fYXVkaW9UcmFja3MgJiYgbV9hdWRpb1RyYWNr
cy0+Y29udGFpbnModHJhY2spKQogICAgICAgICBtX2F1ZGlvVHJhY2tzLT5zY2hlZHVsZUNoYW5n
ZUV2ZW50KCk7CiAKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVk
aWFFbGVtZW50KCktPmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCh0cmFjayk7CiB9CiAKLXZvaWQg
U291cmNlQnVmZmVyOjp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQordm9p
ZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7
CiAgICAgLy8gMi40LjUgQ2hhbmdlcyB0byBzZWxlY3RlZC9lbmFibGVkIHRyYWNrIHN0YXRlCiAg
ICAgLy8gSWYgYSB0ZXh0IHRyYWNrIG1vZGUgYmVjb21lcyAiZGlzYWJsZWQiIGFuZCB0aGUgU291
cmNlQnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYWNrIGlzIG5vdAogICAgIC8vIGFzc29j
aWF0ZWQgd2l0aCBhbnkgb3RoZXIgZW5hYmxlZCBvciBzZWxlY3RlZCB0cmFjaywgdGhlbiBydW4g
dGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAodHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6
Ok1vZGU6OkRpc2FibGVkCisgICAgaWYgKHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6
OkRpc2FibGVkCiAgICAgICAgICYmICghbV92aWRlb1RyYWNrcyB8fCAhbV92aWRlb1RyYWNrcy0+
aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX2F1ZGlvVHJhY2tzIHx8ICFtX2F1
ZGlvVHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAgICAgICAmJiAoIW1fdGV4dFRyYWNr
cyB8fCAhbV90ZXh0VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKSkgewpAQCAtMTc1MSw1NiAr
MTc0NCw1NiBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRy
YWNrKiB0cmFjaykKICAgICAgICAgc2V0QWN0aXZlKHRydWUpOwogICAgIH0KIAotICAgIGlmICht
X3RleHRUcmFja3MgJiYgbV90ZXh0VHJhY2tzLT5jb250YWlucygqdHJhY2spKQorICAgIGlmICht
X3RleHRUcmFja3MgJiYgbV90ZXh0VHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1f
dGV4dFRyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogCiAgICAgaWYgKCFpc1JlbW92ZWQo
KSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tNb2RlQ2hhbmdl
ZCh0cmFjayk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRy
YWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRy
YWNrQWRkQ3VlKFRleHRUcmFjayYgdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogewogICAgIGlm
ICghaXNSZW1vdmVkKCkpCiAgICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dGV4dFRy
YWNrQWRkQ3VlKHRyYWNrLCBjdWUpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNr
QWRkQ3VlcyhUZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWVMaXN0IGNvbnN0KiBjdWVMaXN0
KQordm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiB0cmFjaywg
Y29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYgY3VlTGlzdCkKIHsKICAgICBpZiAoIWlzUmVtb3ZlZCgp
KQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja0FkZEN1ZXModHJh
Y2ssIGN1ZUxpc3QpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3Vl
KFRleHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBTb3VyY2VCdWZmZXI6
OnRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkK
IHsKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50
KCktPnRleHRUcmFja1JlbW92ZUN1ZSh0cmFjaywgY3VlKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZm
ZXI6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlTGlz
dCBjb25zdCogY3VlTGlzdCkKK3ZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tSZW1vdmVDdWVz
KFRleHRUcmFjayYgdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZUxpc3QpCiB7CiAg
ICAgaWYgKCFpc1JlbW92ZWQoKSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50
ZXh0VHJhY2tSZW1vdmVDdWVzKHRyYWNrLCBjdWVMaXN0KTsKIH0KIAotdm9pZCBTb3VyY2VCdWZm
ZXI6OnRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIFNvdXJjZUJ1
ZmZlcjo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykKIHsKICAgICBpZiAo
IWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFj
a0tpbmRDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1ZmZlclByaXZhdGUq
LCBBdG9taWNTdHJpbmcgdHJhY2tJRCkKK3ZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQ
cml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRy
YWNrSUQpCiB7CiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyOjpzb3VyY2VCdWZm
ZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyglcCkiLCB0aGlzKTsKICAgICBh
dXRvIGl0ID0gbV90cmFja0J1ZmZlck1hcC5maW5kKHRyYWNrSUQpOwogICAgIGlmIChpdCA9PSBt
X3RyYWNrQnVmZmVyTWFwLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBUcmFja0J1ZmZl
ciYgdHJhY2tCdWZmZXIgPSBpdC0+dmFsdWU7CisgICAgYXV0byYgdHJhY2tCdWZmZXIgPSBpdC0+
dmFsdWU7CiAgICAgaWYgKCF0cmFja0J1ZmZlci5uZWVkc1JlZW5xdWV1ZWluZyAmJiAhbV9zb3Vy
Y2UtPmlzU2Vla2luZygpKQogICAgICAgICBwcm92aWRlTWVkaWFEYXRhKHRyYWNrQnVmZmVyLCB0
cmFja0lEKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoVHJhY2tC
dWZmZXImIHRyYWNrQnVmZmVyLCBBdG9taWNTdHJpbmcgdHJhY2tJRCkKK3ZvaWQgU291cmNlQnVm
ZmVyOjpwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgY29uc3QgQXRv
bWljU3RyaW5nJiB0cmFja0lEKQogewogICAgIGlmIChtX3NvdXJjZS0+aXNTZWVraW5nKCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTE4MzQsNyArMTgyNyw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpw
cm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5nIHRy
YWNrCiAKICAgICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSA9
IHNhbXBsZS0+cHJlc2VudGF0aW9uVGltZSgpOwogICAgICAgICB0cmFja0J1ZmZlci5sYXN0RW5x
dWV1ZWREZWNvZGVFbmRUaW1lID0gc2FtcGxlLT5kZWNvZGVUaW1lKCkgKyBzYW1wbGUtPmR1cmF0
aW9uKCk7Ci0gICAgICAgIG1fcHJpdmF0ZS0+ZW5xdWV1ZVNhbXBsZShXVEZNb3ZlKHNhbXBsZSks
IHRyYWNrSUQpOworICAgICAgICBtX3ByaXZhdGUtPmVucXVldWVTYW1wbGUoc2FtcGxlLnJlbGVh
c2VOb25OdWxsKCksIHRyYWNrSUQpOwogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgKytlbnF1
ZXVlZFNhbXBsZXM7CiAjZW5kaWYKQEAgLTE4NDMsNyArMTgzNiw3IEBAIHZvaWQgU291cmNlQnVm
ZmVyOjpwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3Ry
aW5nIHRyYWNrCiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyOjpwcm92aWRlTWVk
aWFEYXRhKCVwKSAtIEVucXVldWVkICV1IHNhbXBsZXMiLCB0aGlzLCBlbnF1ZXVlZFNhbXBsZXMp
OwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6cmVlbnF1ZXVlTWVkaWFGb3JUaW1lKFRyYWNrQnVm
ZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5nIHRyYWNrSUQsIGNvbnN0IE1lZGlhVGltZSYg
dGltZSkKK3ZvaWQgU291cmNlQnVmZmVyOjpyZWVucXVldWVNZWRpYUZvclRpbWUoVHJhY2tCdWZm
ZXImIHRyYWNrQnVmZmVyLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQsIGNvbnN0IE1lZGlh
VGltZSYgdGltZSkKIHsKICAgICBtX3ByaXZhdGUtPmZsdXNoKHRyYWNrSUQpOwogICAgIHRyYWNr
QnVmZmVyLmRlY29kZVF1ZXVlLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAppbmRleCBkOWUxNzQ3OTk5MjRhZmIwZTg4ZDc0
NzcyZThmOGE5MWEyY2YwMmIwLi4zOWQwNTE2Njk5YmNhOTVkYmIwN2UyZTY1ZmEwMTc1OGM1N2I1
NTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJj
ZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgQXVkaW9UcmFja0xpc3Q7CiBjbGFzcyBC
dWZmZXJTb3VyY2U7CiBjbGFzcyBNZWRpYVNvdXJjZTsKIGNsYXNzIFBsYXRmb3JtVGltZVJhbmdl
czsKK2NsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGU7CiBjbGFzcyBUZXh0VHJhY2tMaXN0OwogY2xh
c3MgVGltZVJhbmdlczsKIGNsYXNzIFZpZGVvVHJhY2tMaXN0OwpAQCAtNjQsOSArNjUsOSBAQCBw
dWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VGltZXN0YW1wT2Zmc2V0KGRvdWJsZSk7
CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgVmlkZW9UcmFja0xpc3QqIHZpZGVvVHJh
Y2tzKCk7Ci0gICAgQXVkaW9UcmFja0xpc3QqIGF1ZGlvVHJhY2tzKCk7Ci0gICAgVGV4dFRyYWNr
TGlzdCogdGV4dFRyYWNrcygpOworICAgIFZpZGVvVHJhY2tMaXN0JiB2aWRlb1RyYWNrcygpOwor
ICAgIEF1ZGlvVHJhY2tMaXN0JiBhdWRpb1RyYWNrcygpOworICAgIFRleHRUcmFja0xpc3QmIHRl
eHRUcmFja3MoKTsKICNlbmRpZgogCiAgICAgZG91YmxlIGFwcGVuZFdpbmRvd1N0YXJ0KCkgY29u
c3Q7CkBAIC0xMjQsMjUgKzEyNSwyNCBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1
bWVudFN1c3BlbnNpb24oKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgc291cmNlQnVmZmVyUHJp
dmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJpdmF0ZSos
IGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYpIGZpbmFsOwotICAgIHZvaWQgc291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIE1lZGlhU2Ft
cGxlJikgZmluYWw7Ci0gICAgYm9vbCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oY29uc3Qg
U291cmNlQnVmZmVyUHJpdmF0ZSopIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgc291cmNlQnVmZmVy
UHJpdmF0ZUhhc1ZpZGVvKGNvbnN0IFNvdXJjZUJ1ZmZlclByaXZhdGUqKSBjb25zdCBmaW5hbDsK
LSAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVz
KFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBdG9taWNTdHJpbmcgdHJhY2tJRCkgZmluYWw7Ci0gICAg
TWVkaWFUaW1lIHNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoU291
cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYgbmVn
YXRpdmVUaHJlc2hvbGQsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpdmVUaHJlc2hvbGQpIGZpbmFs
OwotICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFNvdXJjZUJ1ZmZl
clByaXZhdGUqLCBBcHBlbmRSZXN1bHQpIGZpbmFsOwotICAgIHZvaWQgc291cmNlQnVmZmVyUHJp
dmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihTb3VyY2VCdWZmZXJQcml2YXRlKiwgaW50IGVy
cm9yQ29kZSkgZmluYWw7Ci0KLSAgICB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRp
b1RyYWNrKikgZmluYWw7Ci0KLSAgICB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlk
ZW9UcmFjayopIGZpbmFsOwotCi0gICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJh
Y2sqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayopIGZp
bmFsOwotICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJh
Y2tDdWVMaXN0KikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFj
ayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0Fk
ZEN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFj
a1JlbW92ZUN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHNv
dXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IElu
aXRpYWxpemF0aW9uU2VnbWVudCYpIGZpbmFsOworICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKKyAgICBib29sIHNvdXJjZUJ1
ZmZlclByaXZhdGVIYXNBdWRpbygpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgc291cmNlQnVmZmVy
UHJpdmF0ZUhhc1ZpZGVvKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2
YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNr
SUQpIGZpbmFsOworICAgIE1lZGlhVGltZSBzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1l
Rm9yTWVkaWFUaW1lKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYgbmVnYXRpdmVU
aHJlc2hvbGQsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpdmVUaHJlc2hvbGQpIGZpbmFsOworICAg
IHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKEFwcGVuZFJlc3VsdCkgZmlu
YWw7CisgICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmluZ0Vycm9y
KGludCBlcnJvckNvZGUpIGZpbmFsOworCisgICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5n
ZWQoQXVkaW9UcmFjayYpIGZpbmFsOworICAgIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdl
ZChWaWRlb1RyYWNrJikgZmluYWw7CisKKyAgICB2b2lkIHRleHRUcmFja0tpbmRDaGFuZ2VkKFRl
eHRUcmFjayYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNr
JikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRl
eHRUcmFja0N1ZUxpc3QmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4
dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRy
YWNrQWRkQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYpIGZpbmFsOworICAgIHZvaWQgdGV4
dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYpIGZpbmFsOwogCiAgICAg
RXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBTb3VyY2VCdWZmZXJFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KIApAQCAtMTU3
LDggKzE1Nyw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIHZhbGlkYXRlSW5pdGlhbGl6YXRpb25T
ZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYpOwogCi0gICAgdm9pZCByZWVucXVl
dWVNZWRpYUZvclRpbWUoVHJhY2tCdWZmZXImLCBBdG9taWNTdHJpbmcgdHJhY2tJRCwgY29uc3Qg
TWVkaWFUaW1lJik7Ci0gICAgdm9pZCBwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiwgQXRv
bWljU3RyaW5nIHRyYWNrSUQpOworICAgIHZvaWQgcmVlbnF1ZXVlTWVkaWFGb3JUaW1lKFRyYWNr
QnVmZmVyJiwgY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lELCBjb25zdCBNZWRpYVRpbWUmKTsK
KyAgICB2b2lkIHByb3ZpZGVNZWRpYURhdGEoVHJhY2tCdWZmZXImLCBjb25zdCBBdG9taWNTdHJp
bmcmIHRyYWNrSUQpOwogICAgIHZvaWQgZGlkRHJvcFNhbXBsZSgpOwogICAgIHZvaWQgZXZpY3RD
b2RlZEZyYW1lcyhzaXplX3QgbmV3RGF0YVNpemUpOwogICAgIHNpemVfdCBtYXhpbXVtQnVmZmVy
U2l6ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGJlOTY0NTg5MzdhOTQyMWY1Njg5MDUyMmVlYWNkOTA4NmEwZjk3
YTkuLjA1ODIzNzljY2I1ZGFkMDc0MzE4YTdmMGUwMjkyZDliNGI4NjlhYWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2MTQs
OCArMjYxNCw4IEBACiAJCTZFM0ZBRThFMTQ3MzNGREIwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4
dHVyZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RTNGQUU4QzE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuY3BwICovOyB9Owog
CQk2RTNGQUU4RjE0NzMzRkRCMDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRThE
MTQ3MzNGREIwMEU0MjMwNiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oICovOyB9Owog
CQk2RTNGQUU4RjE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRThEMTQ3MzNGREIw
MEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVyZS5oICovOyB9OwotCQk2RTQ3RTY2MDEwQjc5NDRC
MDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZFNDdFNjVFMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldElu
Zm8uY3BwICovOyB9OwotCQk2RTQ3RTY2MTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZv
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTQ3RTY1
RjEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmggKi87IH07CisJCTZFNDdFNjYwMTBC
Nzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnku
Y3BwICovOyB9OworCQk2RTQ3RTY2MTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNDdFNjVGMTBCNzk0
NEIwMEIxODZDOCAvKiBXZWJHTEFueS5oICovOyB9OwogCQk2RTRBQkNENDEzOEVBMEI3MDA3MUQy
OTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkU0QUJDRDIxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVu
a25vd25FbGVtZW50LmNwcCAqLzsgfTsKIAkJNkU0QUJDRDUxMzhFQTBCNzAwNzFEMjkxIC8qIEpT
SFRNTFVua25vd25FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2RTRBQkNEMzEzOEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1l
bnQuaCAqLzsgfTsKIAkJNkU0RTkxQUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0
dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDZFNEU5MUFBMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk5MTUsOCAr
OTkxNSw4IEBACiAJCTZFM0ZBRThEMTQ3MzNGREIwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVy
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTERlcHRoVGV4dHVyZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTNGQUU5MDE0NzMzRkVBMDBFNDIzMDYg
LyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkUzRkFFOTAxNDczM0ZFQTAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHTERlcHRoVGV4dHVyZS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTZFNDdFNjVFMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldElu
Zm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR0xHZXRJbmZv
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkU0N0U2NUYxMEI3OTQ0QjAwQjE4
NkM4IC8qIFdlYkdMR2V0SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJHTEdldEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkU0N0U2NUUxMEI3
OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkdMQW55LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkU0
N0U2NUYxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkdMQW55Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZF
NEFCQ0QyMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtub3duRWxlbWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxVbmtub3duRWxlbWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFNEFCQ0QzMTM4RUEwQjcwMDcxRDI5MSAv
KiBKU0hUTUxVbmtub3duRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0hUTUxVbmtub3duRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RTRFOTFBQTEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjkyOCw4ICsxNjkyOCw4IEBACiAJCQkJNDlD
N0I5QUUxMDQyRDMyRTAwMDlENDQ3IC8qIFdlYkdMRnJhbWVidWZmZXIuY3BwICovLAogCQkJCTQ5
QzdCOUFGMTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmggKi8sCiAJCQkJNDlD
N0I5QjAxMDQyRDMyRTAwMDlENDQ3IC8qIFdlYkdMRnJhbWVidWZmZXIuaWRsICovLAotCQkJCTZF
NDdFNjVFMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldEluZm8uY3BwICovLAotCQkJCTZFNDdF
NjVGMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldEluZm8uaCAqLywKKwkJCQk2RTQ3RTY1RTEw
Qjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuY3BwICovLAorCQkJCTZFNDdFNjVGMTBCNzk0NEIw
MEIxODZDOCAvKiBXZWJHTEFueS5oICovLAogCQkJCTkzRjFENUI3MTJENTMyQzQwMDgzMkJFQyAv
KiBXZWJHTExvc2VDb250ZXh0LmNwcCAqLywKIAkJCQk5M0YxRDVCODEyRDUzMkM0MDA4MzJCRUMg
LyogV2ViR0xMb3NlQ29udGV4dC5oICovLAogCQkJCTkzRjFENUI5MTJENTMyQzQwMDgzMkJFQyAv
KiBXZWJHTExvc2VDb250ZXh0LmlkbCAqLywKQEAgLTI4MjQzLDcgKzI4MjQzLDcgQEAKIAkJCQk1
QjMwNjk1RTE4QjNEMzQ1MDA5OUQ1RTggLyogV2ViR0xEcmF3QnVmZmVycy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNkVCRjBFNTUxMkE4OTI5ODAwREIxNzA5IC8qIFdlYkdMRXh0ZW5zaW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0OUM3QjlDRjEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1
ZmZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdl
YkdMR2V0SW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4
IC8qIFdlYkdMQW55LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUZGQkYzRjExQzkzRUUzMDA2QTcx
MTggLyogV2ViR0xMYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMUQ1QkIxMkQ1MzJDNDAw
ODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOUQ1
MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTcz
Miw3ICszMTczMiw3IEBACiAJCQkJNUIzMDY5NUQxOEIzRDM0NTAwOTlENUU4IC8qIFdlYkdMRHJh
d0J1ZmZlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkVCRjBFNTQxMkE4OTI5ODAwREIxNzA5
IC8qIFdlYkdMRXh0ZW5zaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUNFMTA0MkQz
MkYwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTZF
NDdFNjYwMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldEluZm8uY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJNkU0N0U2NjAxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQ5RkZCRjQwMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTNGMUQ1QkExMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRl
eHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlDN0I5RDQxMDQyRDMyRjAwMDlENDQ3IC8qIFdl
YkdMT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3Bw
CmluZGV4IGUyMGIyMzg2ODY0ZGFjZGRhZDU2MmZjM2VlYzZhYTMzOTRmZjEwYTUuLmNjNjMzYmU3
ZTRhNDI2ZmY4N2I2MTExOGQzNzM3MThmMmQzMTY3YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1
c3RvbS5jcHAKQEAgLTY1LDkgKzY1LDkgQEAgc3RhdGljIENhbnZhc1N0eWxlIHRvSFRNTENhbnZh
c1N0eWxlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFsdWUpCiAgICAgICAgIHJldHVybiBDYW52YXNT
dHlsZSgpOwogICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7CiAgICAgaWYg
KG9iamVjdC0+aW5oZXJpdHMoSlNDYW52YXNHcmFkaWVudDo6aW5mbygpKSkKLSAgICAgICAgcmV0
dXJuIENhbnZhc1N0eWxlKCZqc0Nhc3Q8SlNDYW52YXNHcmFkaWVudCo+KG9iamVjdCktPndyYXBw
ZWQoKSk7CisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNDYW52YXNHcmFkaWVudCo+KG9iamVjdCkt
PndyYXBwZWQoKTsKICAgICBpZiAob2JqZWN0LT5pbmhlcml0cyhKU0NhbnZhc1BhdHRlcm46Omlu
Zm8oKSkpCi0gICAgICAgIHJldHVybiBDYW52YXNTdHlsZSgmanNDYXN0PEpTQ2FudmFzUGF0dGVy
bio+KG9iamVjdCktPndyYXBwZWQoKSk7CisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNDYW52YXNQ
YXR0ZXJuKj4ob2JqZWN0KS0+d3JhcHBlZCgpOwogICAgIHJldHVybiBDYW52YXNTdHlsZSgpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1l
bnRGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVt
ZW50RnVuY3Rpb25zLmNwcAppbmRleCBmNzhhMTE4NjIxOGM2YTliZDFkNzdiZTg3ODc0M2U5ZWFj
YmFjNzQ0Li4wYWUxYzBhNjJlNjQwZGUzMTBiZWRiYWU4MTU2NjNmMDcyM2MxMzVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0
aW9ucy5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgSW5zdGFuY2UqIHBsdWdpbkluc3RhbmNlKEhUTUxF
bGVtZW50JiBlbGVtZW50KQogICAgIC8vIFRoZSBwbHVnaW4gZWxlbWVudCBob2xkcyBhbiBvd25p
bmcgcmVmZXJlbmNlLCBzbyB3ZSBkb24ndCBoYXZlIHRvLgogICAgIGlmICghaXM8SFRNTFBsdWdJ
bkVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBJbnN0YW5j
ZSogaW5zdGFuY2UgPSBkb3duY2FzdDxIVE1MUGx1Z0luRWxlbWVudD4oZWxlbWVudCkuZ2V0SW5z
dGFuY2UoKS5nZXQoKTsKKyAgICBhdXRvKiBpbnN0YW5jZSA9IGRvd25jYXN0PEhUTUxQbHVnSW5F
bGVtZW50PihlbGVtZW50KS5iaW5kaW5nc0luc3RhbmNlKCk7CiAgICAgaWYgKCFpbnN0YW5jZSB8
fCAhaW5zdGFuY2UtPnJvb3RPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
cmV0dXJuIGluc3RhbmNlOwpAQCAtNzEsMjMgKzcxLDIzIEBAIEpTT2JqZWN0KiBwbHVnaW5TY3Jp
cHRPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0hUTUxFbGVtZW50KiBqc0hUTUxFbGVtZW50KQog
ICAgIGlmICghaXM8SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIEhUTUxQbHVnSW5FbGVtZW50JiBwbHVnaW5FbGVtZW50ID0gZG93bmNh
c3Q8SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpOworICAgIGF1dG8mIHBsdWdpbkVsZW1lbnQg
PSBkb3duY2FzdDxIVE1MUGx1Z0luRWxlbWVudD4oZWxlbWVudCk7CiAKICAgICAvLyBDaG9rZSBw
b2ludCBmb3Igc2NyaXB0L3BsdWdpbiBpbnRlcmFjdGlvbjsgbm90aWZ5IERPTVRpbWVyIG9mIHRo
ZSBldmVudC4KICAgICBET01UaW1lcjo6c2NyaXB0RGlkSW50ZXJhY3RXaXRoUGx1Z2luKHBsdWdp
bkVsZW1lbnQpOwogCiAgICAgLy8gRmlyc3QsIHNlZSBpZiB0aGUgZWxlbWVudCBoYXMgYSBwbHVn
LWluIHJlcGxhY2VtZW50IHdpdGggYSBzY3JpcHQuCi0gICAgaWYgKEpTT2JqZWN0KiBzY3JpcHRP
YmplY3QgPSBwbHVnaW5FbGVtZW50LnNjcmlwdE9iamVjdEZvclBsdWdpblJlcGxhY2VtZW50KCkp
CisgICAgaWYgKGF1dG8qIHNjcmlwdE9iamVjdCA9IHBsdWdpbkVsZW1lbnQuc2NyaXB0T2JqZWN0
Rm9yUGx1Z2luUmVwbGFjZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIHNjcmlwdE9iamVjdDsKICAg
ICAKICAgICAvLyBOZXh0LCBzZWUgaWYgd2UgY2FuIGFzayB0aGUgcGx1Zy1pbiB2aWV3IGZvciBp
dHMgc2NyaXB0IG9iamVjdC4KLSAgICBpZiAoSlNPYmplY3QqIHNjcmlwdE9iamVjdCA9IHBsdWdp
blNjcmlwdE9iamVjdEZyb21QbHVnaW5WaWV3QmFzZShwbHVnaW5FbGVtZW50LCBqc0hUTUxFbGVt
ZW50LT5nbG9iYWxPYmplY3QoKSkpCisgICAgaWYgKGF1dG8qIHNjcmlwdE9iamVjdCA9IHBsdWdp
blNjcmlwdE9iamVjdEZyb21QbHVnaW5WaWV3QmFzZShwbHVnaW5FbGVtZW50LCBqc0hUTUxFbGVt
ZW50LT5nbG9iYWxPYmplY3QoKSkpCiAgICAgICAgIHJldHVybiBzY3JpcHRPYmplY3Q7CiAKICAg
ICAvLyBPdGhlcndpc2UsIGZhbGwgYmFjayB0byBnZXR0aW5nIHRoZSBvYmplY3QgZnJvbSB0aGUg
aW5zdGFuY2UuCiAKICAgICAvLyBUaGUgcGx1Z2luIGVsZW1lbnQgaG9sZHMgYW4gb3duaW5nIHJl
ZmVyZW5jZSwgc28gd2UgZG9uJ3QgaGF2ZSB0by4KLSAgICBJbnN0YW5jZSogaW5zdGFuY2UgPSBw
bHVnaW5FbGVtZW50LmdldEluc3RhbmNlKCkuZ2V0KCk7CisgICAgYXV0byogaW5zdGFuY2UgPSBw
bHVnaW5FbGVtZW50LmJpbmRpbmdzSW5zdGFuY2UoKTsKICAgICBpZiAoIWluc3RhbmNlIHx8ICFp
bnN0YW5jZS0+cm9vdE9iamVjdCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5n
Q29udGV4dEN1c3RvbS5jcHAKaW5kZXggNzg4YWQyNDQ0NjkyMGQwZmEyZWFlZWI3NDhkNjQ5YmJl
MzY4YzQ3MS4uNWRmMjU4ZmVhNzVkMzEzY2MzZDEyMWI4NGNlNWI2MmE1MWMyM2U5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0zNiwzNyArMzYsNiBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEZJWE1FOiBUaGVyZSBpcyBhIGR1cGxp
Y2F0ZSB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24gaW4gSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlQ3VzdG9tLmNwcCwKLS8vIGJ1dCBpdCBpcyBub3QgZXhhY3RseSB0aGUgc2FtZSEgV2Ugc2hv
dWxkIG1lcmdlIHRoZXNlLgotc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBXZWJHTEdldEluZm8mIGluZm8p
Ci17Ci0gICAgc3dpdGNoIChpbmZvLmdldFR5cGUoKSkgewotICAgIGNhc2UgV2ViR0xHZXRJbmZv
OjprVHlwZUJvb2w6Ci0gICAgICAgIHJldHVybiBqc0Jvb2xlYW4oaW5mby5nZXRCb29sKCkpOwot
ICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZUJvb2xBcnJheTogewotICAgICAgICBNYXJrZWRB
cmd1bWVudEJ1ZmZlciBsaXN0OwotICAgICAgICBmb3IgKGF1dG8mIHZhbHVlIDogaW5mby5nZXRC
b29sQXJyYXkoKSkKLSAgICAgICAgICAgIGxpc3QuYXBwZW5kKGpzQm9vbGVhbih2YWx1ZSkpOwot
ICAgICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoc3RhdGUsIDAsIGdsb2JhbE9iamVjdCwgbGlz
dCk7Ci0gICAgfQotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZUZsb2F0OgotICAgICAgICBy
ZXR1cm4ganNOdW1iZXIoaW5mby5nZXRGbG9hdCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6
a1R5cGVJbnQ6Ci0gICAgICAgIHJldHVybiBqc051bWJlcihpbmZvLmdldEludCgpKTsKLSAgICBj
YXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVOdWxsOgotICAgICAgICByZXR1cm4ganNOdWxsKCk7Ci0g
ICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlU3RyaW5nOgotICAgICAgICByZXR1cm4ganNTdHJp
bmdXaXRoQ2FjaGUoc3RhdGUsIGluZm8uZ2V0U3RyaW5nKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJ
bmZvOjprVHlwZVVuc2lnbmVkSW50OgotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRV
bnNpZ25lZEludCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVJbnQ2NDoKLSAgICAg
ICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0SW50NjQoKSk7Ci0gICAgZGVmYXVsdDoKLSAgICAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAg
fQotfQotCiB2b2lkIEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRBZGRpdGlvbmFsQ2hp
bGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290
KCZ3cmFwcGVkKCkpOwpAQCAtMTA0LDcgKzczLDcgQEAgSlNWYWx1ZSBKU1dlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmdldEluZGV4ZWRQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwogICAgIHVuc2lnbmVkIGluZGV4ID0g
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBn
bG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldEluZGV4ZWRQYXJhbWV0ZXIocG5hbWUsIGluZGV4
KSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdl
dEluZGV4ZWRQYXJhbWV0ZXIocG5hbWUsIGluZGV4KSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIoRXhlY1N0YXRl
JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2VDdXN0b20uY3BwCmluZGV4IDgyNWQyNTA5NGQyY2M2MjIw
NmIwNDk5NmMxMGQ1MzFlNTQyOTgwOTEuLjJhMGFmMmVkOWJiZjYzYWQ4ZDgwZmI4NDY4ODdkMWIz
NWNjZmQxZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9tLmNwcApAQCAtMjksMTUgKzI5
LDEyIEBACiAKICNpbmNsdWRlICJKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKIAotI2lu
Y2x1ZGUgIkFOR0xFSW5zdGFuY2VkQXJyYXlzLmgiCiAjaW5jbHVkZSAiRVhUQmxlbmRNaW5NYXgu
aCIKICNpbmNsdWRlICJFWFRGcmFnRGVwdGguaCIKICNpbmNsdWRlICJFWFRTaGFkZXJUZXh0dXJl
TE9ELmgiCiAjaW5jbHVkZSAiRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVk
ZSAiRVhUc1JHQi5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJIVE1M
Q2FudmFzRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJKU0FOR0xFSW5zdGFuY2VkQXJyYXlzLmgiCiAjaW5jbHVkZSAiSlNFWFRCbGVuZE1pbk1heC5o
IgogI2luY2x1ZGUgIkpTRVhURnJhZ0RlcHRoLmgiCkBAIC03Myw3ICs3MCw2IEBACiAjaW5jbHVk
ZSAiSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNXZWJHTFZlcnRleEFy
cmF5T2JqZWN0T0VTLmgiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NNYXRyaXguaCIKLSNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk9FU0VsZW1lbnRJbmRleFVpbnQuaCIKICNp
bmNsdWRlICJPRVNTdGFuZGFyZERlcml2YXRpdmVzLmgiCiAjaW5jbHVkZSAiT0VTVGV4dHVyZUZs
b2F0LmgiCkBAIC05MSw3ICs4Nyw2IEBACiAjaW5jbHVkZSAiV2ViR0xEcmF3QnVmZmVycy5oIgog
I2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5o
IgotI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgogI2luY2x1ZGUgIldlYkdMTG9zZUNvbnRleHQu
aCIKICNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmgiCkBAIC0xMDUsNyArMTAwLDYgQEAKICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxv
Yy5oPgogCiAjaWYgRU5BQkxFKFZJREVPKQotI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIK
ICNpbmNsdWRlICJKU0hUTUxWaWRlb0VsZW1lbnQuaCIKICNlbmRpZgogCkBAIC0xMTcsNyArMTEx
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU0M6
OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiYmIG9iamVj
dCkKK0pTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBSZWY8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4mJiBvYmplY3Qp
CiB7CiAjaWYgRU5BQkxFKFdFQkdMMikKICAgICBpZiAoaXM8V2ViR0wyUmVuZGVyaW5nQ29udGV4
dD4ob2JqZWN0KSkKQEAgLTEzMSw2NCArMTI1LDcgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSog
c3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdlYkdMUmVuZGVyaW5nQ28K
ICAgICByZXR1cm4gd3JhcChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBvYmplY3QpOwogfQogICAgIAot
Ly8gRklYTUU6IFRoZXJlIGlzIGEgZHVwbGljYXRlIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiBp
biBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwLAotLy8gYnV0IGl0IGlzIG5vdCBl
eGFjdGx5IHRoZSBzYW1lISBXZSBzaG91bGQgbWVyZ2UgdGhlc2UuCi1zdGF0aWMgSlNWYWx1ZSB0
b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29u
c3QgV2ViR0xHZXRJbmZvJiBpbmZvKQotewotICAgIHN3aXRjaCAoaW5mby5nZXRUeXBlKCkpIHsK
LSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVCb29sOgotICAgICAgICByZXR1cm4ganNCb29s
ZWFuKGluZm8uZ2V0Qm9vbCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVCb29sQXJy
YXk6IHsKLSAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgbGlzdDsKLSAgICAgICAgZm9yIChh
dXRvJiB2YWx1ZSA6IGluZm8uZ2V0Qm9vbEFycmF5KCkpCi0gICAgICAgICAgICBsaXN0LmFwcGVu
ZChqc0Jvb2xlYW4odmFsdWUpKTsKLSAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5KGV4ZWMs
IDAsIGdsb2JhbE9iamVjdCwgbGlzdCk7Ci0gICAgfQotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjpr
VHlwZUZsb2F0OgotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRGbG9hdCgpKTsKLSAg
ICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVJbnQ6Ci0gICAgICAgIHJldHVybiBqc051bWJlcihp
bmZvLmdldEludCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVOdWxsOgotICAgICAg
ICByZXR1cm4ganNOdWxsKCk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlU3RyaW5nOgot
ICAgICAgICByZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoZXhlYywgaW5mby5nZXRTdHJpbmcoKSk7
Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlVW5zaWduZWRJbnQ6Ci0gICAgICAgIHJldHVy
biBqc051bWJlcihpbmZvLmdldFVuc2lnbmVkSW50KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZv
OjprVHlwZVdlYkdMQnVmZmVyOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmpl
Y3QsIGluZm8uZ2V0V2ViR0xCdWZmZXIoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBl
V2ViR0xGbG9hdEFycmF5OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3Qs
IGluZm8uZ2V0V2ViR0xGbG9hdEFycmF5KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlw
ZVdlYkdMRnJhbWVidWZmZXI6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgaW5mby5nZXRXZWJHTEZyYW1lYnVmZmVyKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjpr
VHlwZVdlYkdMSW50QXJyYXk6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgaW5mby5nZXRXZWJHTEludEFycmF5KCkpOwotICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50
IFdlYkdMT2JqZWN0QXJyYXkKLSAgICAgICAgLy8gY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2Vi
R0xPYmplY3RBcnJheToKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFByb2dyYW06
Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTFBy
b2dyYW0oKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xSZW5kZXJidWZmZXI6
Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTFJl
bmRlcmJ1ZmZlcigpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFRleHR1cmU6
Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTFRl
eHR1cmUoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xVbnNpZ25lZEJ5dGVB
cnJheToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdl
YkdMVW5zaWduZWRCeXRlQXJyYXkoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2Vi
R0xVbnNpZ25lZEludEFycmF5OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmpl
Y3QsIGluZm8uZ2V0V2ViR0xVbnNpZ25lZEludEFycmF5KCkpOwotI2lmIEVOQUJMRShXRUJHTDIp
Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDoKLSAg
ICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMVmVydGV4
QXJyYXlPYmplY3QoKSk7Ci0jZW5kaWYKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsIGluZm8uZ2V0V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygpKTsKLSAgICBkZWZhdWx0
OgotICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKLSAgICB9Ci19Ci0KLWVudW0gT2JqZWN0VHlwZSB7IGtCdWZmZXIsIGtSZW5kZXJidWZmZXIs
IGtUZXh0dXJlLCBrVmVydGV4QXR0cmliIH07Ci0KLXN0YXRpYyBKU1ZhbHVlIGdldE9iamVjdFBh
cmFtZXRlcihKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIG9iaiwgRXhlY1N0YXRlJiBzdGF0
ZSwgT2JqZWN0VHlwZSBvYmplY3RUeXBlKQorc3RhdGljIEpTVmFsdWUgb2JqZWN0UGFyYW1ldGVy
KEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwgRXhlY1N0YXRlJiBzdGF0ZSwg
V2ViR0xBbnkgKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OipnZXR0ZXIpKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGVudW0gcG5hbWUpKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk2LDkwICsxMzMsNjYg
QEAgc3RhdGljIEpTVmFsdWUgZ2V0T2JqZWN0UGFyYW1ldGVyKEpTV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSogb2JqLCBFeGVjU3RhdGUmIHMKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgp
ICE9IDIpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlJiBjb250ZXh0ID0gb2JqLT53cmFwcGVkKCk7Ci0gICAgdW5zaWduZWQg
dGFyZ2V0ID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkudG9JbnQzMigmc3RhdGUpOwotICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgdW5zaWduZWQgcG5h
bWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICBXZWJHTEdldEluZm8gaW5m
bzsKLSAgICBzd2l0Y2ggKG9iamVjdFR5cGUpIHsKLSAgICBjYXNlIGtCdWZmZXI6Ci0gICAgICAg
IGluZm8gPSBjb250ZXh0LmdldEJ1ZmZlclBhcmFtZXRlcih0YXJnZXQsIHBuYW1lKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBrUmVuZGVyYnVmZmVyOgotICAgICAgICBpbmZvID0gY29udGV4
dC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIodGFyZ2V0LCBwbmFtZSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2Uga1RleHR1cmU6Ci0gICAgICAgIGluZm8gPSBjb250ZXh0LmdldFRleFBhcmFt
ZXRlcih0YXJnZXQsIHBuYW1lKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBrVmVydGV4QXR0
cmliOgotICAgICAgICAvLyB0YXJnZXQgPT4gaW5kZXgKLSAgICAgICAgaW5mbyA9IGNvbnRleHQu
Z2V0VmVydGV4QXR0cmliKHRhcmdldCwgcG5hbWUpOwotICAgICAgICBicmVhazsKLSAgICBkZWZh
dWx0OgotICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0g
ICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBvYmotPmdsb2JhbE9iamVjdCgpLCBpbmZvKTsKKyAgICBh
dXRvIHRhcmdldCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsK
KyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIGF1dG8gcG5hbWUgPSBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmNvbnRleHQu
Z2xvYmFsT2JqZWN0KCksIChjb250ZXh0LndyYXBwZWQoKS4qZ2V0dGVyKSh0YXJnZXQsIHBuYW1l
KSk7CiB9CiAKLWVudW0gV2hpY2hQcm9ncmFtQ2FsbCB7Ci0gICAga1Byb2dyYW1QYXJhbWV0ZXIs
IGtVbmlmb3JtCi19OwotCi1zdGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgV2ViR0xFeHRlbnNpb24qIGV4dGVuc2lvbikK
K3N0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3Qm
IGdsb2JhbE9iamVjdCwgV2ViR0xFeHRlbnNpb24qIGV4dGVuc2lvbikKIHsKICAgICBpZiAoIWV4
dGVuc2lvbikKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAgIHN3aXRjaCAoZXh0ZW5zaW9u
LT5nZXROYW1lKCkpIHsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTExvc2VDb250ZXh0
TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxXZWJHTExvc2VDb250ZXh0Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZz
dGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xMb3NlQ29udGV4dCo+KGV4dGVu
c2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVFNoYWRlclRleHR1cmVMT0ROYW1l
OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVY
VFNoYWRlclRleHR1cmVMT0QqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRTaGFkZXJUZXh0dXJlTE9EKj4oZXh0
ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6RVhUVGV4dHVyZUZpbHRlckFuaXNv
dHJvcGljTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMqPihleHRlbnNpb24pKTsKKyAgICAg
ICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRUZXh0
dXJlRmlsdGVyQW5pc290cm9waWMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5z
aW9uOjpFWFRzUkdCTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
LCBzdGF0aWNfY2FzdDxFWFRzUkdCKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pT
KCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUc1JHQio+KGV4dGVuc2lvbikp
OwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVEZyYWdEZXB0aE5hbWU6Ci0gICAgICAgIHJl
dHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhURnJhZ0RlcHRoKj4o
ZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwg
c3RhdGljX2Nhc3Q8RVhURnJhZ0RlcHRoKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4
dGVuc2lvbjo6RVhUQmxlbmRNaW5NYXhOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVEJsZW5kTWluTWF4Kj4oZXh0ZW5zaW9uKSk7Cisg
ICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhU
QmxlbmRNaW5NYXgqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNT
dGFuZGFyZERlcml2YXRpdmVzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNTdGFuZGFyZERlcml2YXRpdmVzKj4oZXh0ZW5zaW9uKSk7
CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8
T0VTU3RhbmRhcmREZXJpdmF0aXZlcyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246Ok9FU1RleHR1cmVGbG9hdE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0Kj4oZXh0ZW5zaW9uKSk7Cisg
ICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VT
VGV4dHVyZUZsb2F0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VT
VGV4dHVyZUZsb2F0TGluZWFyTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlRmxvYXRMaW5lYXIqPihleHRlbnNpb24pKTsK
KyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxP
RVNUZXh0dXJlRmxvYXRMaW5lYXIqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5z
aW9uOjpPRVNUZXh0dXJlSGFsZkZsb2F0TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlSGFsZkZsb2F0Kj4oZXh0ZW5zaW9u
KSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8T0VTVGV4dHVyZUhhbGZGbG9hdCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246Ok9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXJOYW1lOgotICAgICAgICByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVIYWxmRmxvYXRMaW5l
YXIqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyKj4oZXh0ZW5zaW9uKSk7
CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTVmVydGV4QXJyYXlPYmplY3ROYW1lOgotICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1ZlcnRl
eEFycmF5T2JqZWN0Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwg
Jmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVmVydGV4QXJyYXlPYmplY3QqPihleHRlbnNp
b24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNFbGVtZW50SW5kZXhVaW50TmFtZToK
LSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNF
bGVtZW50SW5kZXhVaW50Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0
ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTRWxlbWVudEluZGV4VWludCo+KGV4dGVu
c2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVidWdSZW5kZXJlckluZm9O
YW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PFdlYkdMRGVidWdSZW5kZXJlckluZm8qPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRv
SlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlYnVnUmVuZGVyZXJJ
bmZvKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1No
YWRlcnNOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PFdlYkdMRGVidWdTaGFkZXJzKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0
b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1NoYWRlcnMq
PihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTENvbXByZXNzZWRU
ZXh0dXJlQVRDTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDKj4oZXh0ZW5zaW9uKSk7CisgICAg
ICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xD
b21wcmVzc2VkVGV4dHVyZUFUQyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNp
b246OldlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQ05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBW
UlRDKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9i
amVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKj4oZXh0ZW5zaW9u
KSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVENO
YW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVMzVEMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJH
TERlcHRoVGV4dHVyZU5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgc3RhdGljX2Nhc3Q8V2ViR0xEZXB0aFRleHR1cmUqPihleHRlbnNpb24pKTsKKyAgICAgICAg
cmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlcHRo
VGV4dHVyZSo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRHJh
d0J1ZmZlcnNOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0
YXRpY19jYXN0PFdlYkdMRHJhd0J1ZmZlcnMqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJu
IHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERyYXdCdWZmZXJz
Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6QU5HTEVJbnN0YW5jZWRB
cnJheXNOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PEFOR0xFSW5zdGFuY2VkQXJyYXlzKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8QU5HTEVJbnN0YW5jZWRB
cnJheXMqPihleHRlbnNpb24pKTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgcmV0dXJuIGpzTnVsbCgpOwogfQogCi1ib29sIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQorYm9vbCBKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSGFuZGxl
PFVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSoganNXZWJHTFJlbmRlcmluZ0NvbnRleHQgPSBqc0Nh
c3Q8SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkp
OwogICAgIHZvaWQqIHJvb3QgPSBXZWJDb3JlOjpyb290KGpzV2ViR0xSZW5kZXJpbmdDb250ZXh0
LT53cmFwcGVkKCkuY2FudmFzKCkpOwpAQCAtMzA2LDkgKzIxOSw5IEBAIEpTVmFsdWUgSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBdHRhY2hlZFNoYWRlcnMoRXhlY1N0YXRlJiBzdGF0
ZSkKICAgICBWZWN0b3I8UmVmUHRyPFdlYkdMU2hhZGVyPj4gc2hhZGVyczsKICAgICBpZiAoIWNv
bnRleHQuZ2V0QXR0YWNoZWRTaGFkZXJzKHByb2dyYW0sIHNoYWRlcnMpKQogICAgICAgICByZXR1
cm4ganNOdWxsKCk7Ci0gICAgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciBsaXN0OwotICAgIGZv
ciAoc2l6ZV90IGlpID0gMDsgaWkgPCBzaGFkZXJzLnNpemUoKTsgKytpaSkKLSAgICAgICAgbGlz
dC5hcHBlbmQodG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBzaGFkZXJzW2lpXS5nZXQoKSkp
OworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGxpc3Q7CisgICAgZm9yIChhdXRvJiBzaGFkZXIg
OiBzaGFkZXJzKQorICAgICAgICBsaXN0LmFwcGVuZCh0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0
KCksIHNoYWRlci5nZXQoKSkpOwogICAgIHJldHVybiBjb25zdHJ1Y3RBcnJheSgmc3RhdGUsIDAs
IGdsb2JhbE9iamVjdCgpLCBsaXN0KTsKIH0KIApAQCAtMzIwLDE0ICsyMzMsMTQgQEAgSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEV4dGVuc2lvbihFeGVjU3RhdGUmIHN0
YXRlKQogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4g
dGhyb3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3IoJnN0YXRlKSk7CiAgICAgCi0gICAgU3RyaW5nIG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgwKS50b1dURlN0cmluZygmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIEpTVmFsdWUoKSk7Ci0gICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwg
d3JhcHBlZCgpLmdldEV4dGVuc2lvbihuYW1lKSk7CisgICAgYXV0byBuYW1lID0gc3RhdGUudW5j
aGVja2VkQXJndW1lbnQoMCkudG9XVEZTdHJpbmcoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOworICAgIHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFsT2JqZWN0
KCksIHdyYXBwZWQoKS5nZXRFeHRlbnNpb24obmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVyUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUp
CiB7Ci0gICAgcmV0dXJuIGdldE9iamVjdFBhcmFtZXRlcih0aGlzLCBzdGF0ZSwga0J1ZmZlcik7
CisgICAgcmV0dXJuIG9iamVjdFBhcmFtZXRlcigqdGhpcywgc3RhdGUsICZXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRCdWZmZXJQYXJhbWV0ZXIpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEV4
ZWNTdGF0ZSYgc3RhdGUpCkBAIC0zMzgsMTMgKzI1MSwxMyBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEV4ZWNT
dGF0ZQogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgIT0gMykKICAgICAgICAgcmV0dXJu
IHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKCZzdGF0ZSkpOwogICAgIAotICAgIHVuc2lnbmVkIHRhcmdldCA9IHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBKU1ZhbHVlKCkpOwotICAgIHVuc2lnbmVkIGF0dGFjaG1lbnQgPSBzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgSlNWYWx1ZSgpKTsKLSAgICB1bnNpZ25lZCBwbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDIpLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHdy
YXBwZWQoKS5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIodGFyZ2V0LCBhdHRhY2ht
ZW50LCBwbmFtZSkpOworICAgIGF1dG8gdGFyZ2V0ID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MCkudG9JbnQzMigmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
CisgICAgYXV0byBhdHRhY2htZW50ID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQz
Migmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgYXV0
byBwbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpLnRvSW50MzIoJnN0YXRlKTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIHJldHVybiB0b0pTKHN0YXRl
LCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJh
bWV0ZXIodGFyZ2V0LCBhdHRhY2htZW50LCBwbmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC0z
NTUsOSArMjY4LDkgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFBh
cmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkg
IT0gMSkKICAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0
ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwogICAgIAotICAgIHVuc2lnbmVkIHBu
YW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkudG9JbnQzMigmc3RhdGUpOwotICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFBhcmFtZXRlcihwbmFtZSkpOworICAg
IGF1dG8gcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhz
dGF0ZSwgKmdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0UGFyYW1ldGVyKHBuYW1lKSk7CiB9
CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRQcm9ncmFtUGFyYW1l
dGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC0zNjgsMTcgKzI4MSwxNyBAQCBKU1ZhbHVlIEpTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJvZ3JhbVBhcmFtZXRlcihFeGVjU3RhdGUmIHN0
YXRlKQogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgIT0gMikKICAgICAgICAgcmV0dXJu
IHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKCZzdGF0ZSkpOwogICAgIAotICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IEpTV2ViR0xQ
cm9ncmFtOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIGF1dG8q
IHByb2dyYW0gPSBKU1dlYkdMUHJvZ3JhbTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDApKTsKICAgICBpZiAoIXByb2dyYW0gJiYgIXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDAp
LmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3Rh
dGUsIHNjb3BlKTsKLSAgICB1bnNpZ25lZCBwbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDEpLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1Zh
bHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQo
KS5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIHBuYW1lKSk7CisgICAgYXV0byBwbmFtZSA9
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFs
T2JqZWN0KCksIHdyYXBwZWQoKS5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIHBuYW1lKSk7
CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZm
ZXJQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4gZ2V0T2JqZWN0UGFy
YW1ldGVyKHRoaXMsIHN0YXRlLCBrUmVuZGVyYnVmZmVyKTsKKyAgICByZXR1cm4gb2JqZWN0UGFy
YW1ldGVyKCp0aGlzLCBzdGF0ZSwgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRl
cmJ1ZmZlclBhcmFtZXRlcik7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRTaGFkZXJQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKQEAgLTM5Myw4ICszMDYs
OCBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0U2hhZGVyUGFyYW1l
dGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3Rh
dGUsIHNjb3BlKTsKICAgICBXZWJHTFNoYWRlciogc2hhZGVyID0gSlNXZWJHTFNoYWRlcjo6dG9X
cmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICB1bnNpZ25lZCBwbmFtZSA9
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwg
Z2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRTaGFkZXJQYXJhbWV0ZXIoc2hhZGVyLCBwbmFt
ZSkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0dXJuIHRv
SlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFNoYWRlclBhcmFtZXRlcihz
aGFkZXIsIHBuYW1lKSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC00MTAsNyArMzIz
LDcgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFN1cHBvcnRlZEV4
dGVuc2lvbnMoRXhlY1N0YXRlJiBzdGF0ZSkKIAogSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmdldFRleFBhcmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJldHVy
biBnZXRPYmplY3RQYXJhbWV0ZXIodGhpcywgc3RhdGUsIGtUZXh0dXJlKTsKKyAgICByZXR1cm4g
b2JqZWN0UGFyYW1ldGVyKCp0aGlzLCBzdGF0ZSwgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldFRleFBhcmFtZXRlcik7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRVbmlmb3JtKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC00MjcsMzYgKzM0MCwzNSBAQCBK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybShFeGVjU3RhdGUm
IHN0YXRlKQogICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IEpTV2ViR0xVbmlm
b3JtTG9jYXRpb246OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAg
aWYgKCFsb2NhdGlvbiAmJiAhc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkuaXNVbmRlZmluZWRP
ck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwot
ICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRVbmlm
b3JtKHByb2dyYW0sIGxvY2F0aW9uKSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxP
YmplY3QoKSwgd3JhcHBlZCgpLmdldFVuaWZvcm0ocHJvZ3JhbSwgbG9jYXRpb24pKTsKIH0KIAog
SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0dHJpYihFeGVj
U3RhdGUmIHN0YXRlKQogewotICAgIHJldHVybiBnZXRPYmplY3RQYXJhbWV0ZXIodGhpcywgc3Rh
dGUsIGtWZXJ0ZXhBdHRyaWIpOworICAgIHJldHVybiBvYmplY3RQYXJhbWV0ZXIoKnRoaXMsIHN0
YXRlLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VmVydGV4QXR0cmliKTsKIH0KIAot
dGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5PgotYm9vbCB0b1ZlY3Rv
cihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgVmVjdG9yPFQsIGlu
bGluZUNhcGFjaXR5PiYgdmVjdG9yKQordGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4gYm9v
bCB0b051bWJlclZlY3RvcihFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlLCBWZWN0b3JU
eXBlJiB2ZWN0b3IpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBKU0M6OkpTT2JqZWN0KiBvYmplY3Qg
PSBhc09iamVjdCh2YWx1ZSk7Ci0gICAgaW50MzJfdCBsZW5ndGggPSBvYmplY3QtPmdldCgmc3Rh
dGUsIHN0YXRlLnZtKCkucHJvcGVydHlOYW1lcy0+bGVuZ3RoKS50b0ludDMyKCZzdGF0ZSk7Ci0g
ICAgCisKKyAgICBhdXRvJiBvYmplY3QgPSAqYXNPYmplY3QodmFsdWUpOworICAgIGludDMyX3Qg
bGVuZ3RoID0gb2JqZWN0LmdldCgmc3RhdGUsIHN0YXRlLnZtKCkucHJvcGVydHlOYW1lcy0+bGVu
Z3RoKS50b0ludDMyKCZzdGF0ZSk7CisKICAgICBpZiAoIXZlY3Rvci50cnlSZXNlcnZlQ2FwYWNp
dHkobGVuZ3RoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHZlY3Rvci5yZXNpemUobGVu
Z3RoKTsKLSAgICAKKwogICAgIGZvciAoaW50MzJfdCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7
Ci0gICAgICAgIEpTQzo6SlNWYWx1ZSB2ID0gb2JqZWN0LT5nZXQoJnN0YXRlLCBpKTsKKyAgICAg
ICAgYXV0byB2YWx1ZSA9IG9iamVjdC5nZXQoJnN0YXRlLCBpKTsKKyAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOworICAgICAgICB2ZWN0b3IudW5jaGVja2VkQXBwZW5k
KHZhbHVlLnRvTnVtYmVyKCZzdGF0ZSkpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBmYWxzZSk7Ci0gICAgICAgIHZlY3RvcltpXSA9IHN0YXRpY19jYXN0PFQ+KHYudG9OdW1i
ZXIoJnN0YXRlKSk7CiAgICAgfQotICAgIAorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTQ2
OSw3ICszODEsNyBAQCBlbnVtIERhdGFGdW5jdGlvbk1hdHJpeFRvQ2FsbCB7CiAgICAgZl91bmlm
b3JtTWF0cml4MmZ2LCBmX3VuaWZvcm1NYXRyaXgzZnYsIGZfdW5pZm9ybU1hdHJpeDRmdgogfTsK
IAotc3RhdGljIGJvb2wgZnVuY3Rpb25Gb3JVbmlmb3JtKERhdGFGdW5jdGlvblRvQ2FsbCBmKQor
c3RhdGljIGlubGluZSBib29sIGZ1bmN0aW9uRm9yVW5pZm9ybShEYXRhRnVuY3Rpb25Ub0NhbGwg
ZikKIHsKICAgICBzd2l0Y2ggKGYpIHsKICAgICBjYXNlIGZfdW5pZm9ybTF2OgpAQCAtNDc3LDEy
ICszODksMTIgQEAgc3RhdGljIGJvb2wgZnVuY3Rpb25Gb3JVbmlmb3JtKERhdGFGdW5jdGlvblRv
Q2FsbCBmKQogICAgIGNhc2UgZl91bmlmb3JtM3Y6CiAgICAgY2FzZSBmX3VuaWZvcm00djoKICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgZGVmYXVsdDogYnJlYWs7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRp
YyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uZihEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpF
eGVjU3RhdGUmIHN0YXRlLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQorc3Rh
dGljIEpTVmFsdWUgZGF0YUZ1bmN0aW9uZihEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgRXhlY1N0YXRl
JiBzdGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCkKIHsKICAgICBWTSYg
dm0gPSBzdGF0ZS52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTQ5MCwyMiArNDAyLDE5IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9u
ZihEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBXCiAgICAgaWYg
KHN0YXRlLmFyZ3VtZW50Q291bnQoKSAhPSAyKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRp
b24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7
CiAgICAgCi0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gMDsKLSAgICBsb25n
IGluZGV4ID0gLTE7Ci0gICAgCisgICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0g
bnVsbHB0cjsKKyAgICBHTHVpbnQgaW5kZXggPSAtMTsKKwogICAgIGlmIChmdW5jdGlvbkZvclVu
aWZvcm0oZikpIHsKICAgICAgICAgbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0
b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgICAgICBpZiAoIWxvY2F0
aW9uICYmICFzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQog
ICAgICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgIH0g
ZWxzZQorICAgIH0gZWxzZSB7CiAgICAgICAgIGluZGV4ID0gc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMCkudG9JbnQzMigmc3RhdGUpOwotICAgIAotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIEpTVmFsdWUoKSk7Ci0gICAgCi0gICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gd2ViR0xBcnJh
eSA9IHRvVW5zaGFyZWRGbG9hdDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpOwot
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgCi0gICAgaWYg
KHdlYkdMQXJyYXkpIHsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsK
KyAgICB9CisKKyAgICBpZiAoYXV0byB3ZWJHTEFycmF5ID0gdG9VbnNoYXJlZEZsb2F0MzJBcnJh
eShzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSkpIHsKICAgICAgICAgc3dpdGNoIChmKSB7CiAg
ICAgICAgIGNhc2UgZl91bmlmb3JtMXY6CiAgICAgICAgICAgICBjb250ZXh0LnVuaWZvcm0xZnYo
bG9jYXRpb24sICp3ZWJHTEFycmF5KTsKQEAgLTUzMiwxNCArNDQxLDEzIEBAIHN0YXRpYyBKU0M6
OkpTVmFsdWUgZGF0YUZ1bmN0aW9uZihEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3Rh
dGUmIHN0YXRlLCBXCiAgICAgICAgICAgICBjb250ZXh0LnZlcnRleEF0dHJpYjRmdihpbmRleCwg
KndlYkdMQXJyYXkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgCiAg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KLSAgICAKKwogICAgIFZlY3Rvcjxm
bG9hdCwgNjQ+IGFycmF5OwotICAgIGlmICghdG9WZWN0b3Ioc3RhdGUsIHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDEpLCBhcnJheSkpCisgICAgaWYgKCF0b051bWJlclZlY3RvcihzdGF0ZSwgc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMSksIGFycmF5KSkKICAgICAgICAgcmV0dXJuIHRocm93VHlw
ZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgIAorCiAgICAgc3dpdGNoIChmKSB7CiAgICAgY2Fz
ZSBmX3VuaWZvcm0xdjoKICAgICAgICAgY29udGV4dC51bmlmb3JtMWZ2KGxvY2F0aW9uLCBhcnJh
eS5kYXRhKCksIGFycmF5LnNpemUoKSk7CkBAIC01NjYsMjUgKzQ3NCwyMiBAQCBzdGF0aWMgSlND
OjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSwgVwogICAgICAgICBjb250ZXh0LnZlcnRleEF0dHJpYjRmdihpbmRleCwgYXJy
YXkuZGF0YSgpLCBhcnJheS5zaXplKCkpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgCiAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1
bmN0aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQorc3RhdGljIEpTVmFsdWUgZGF0YUZ1bmN0
aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgRXhlY1N0YXRlJiBzdGF0ZSwgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYgY29udGV4dCkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGlmIChzdGF0ZS5h
cmd1bWVudENvdW50KCkgIT0gMikKICAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0
ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotICAgIAot
ICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRp
b246OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisKKyAgICBhdXRvKiBs
b2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFsb2NhdGlvbiAmJiAhc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVy
cm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgIAotICAgIFJlZlB0cjxJbnQzMkFycmF5PiB3ZWJHTEFy
cmF5ID0gdG9VbnNoYXJlZEludDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpOwot
ICAgIAotICAgIGlmICh3ZWJHTEFycmF5KSB7CisKKyAgICBpZiAoYXV0byB3ZWJHTEFycmF5ID0g
dG9VbnNoYXJlZEludDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpKSB7CiAgICAg
ICAgIHN3aXRjaCAoZikgewogICAgICAgICBjYXNlIGZfdW5pZm9ybTF2OgogICAgICAgICAgICAg
Y29udGV4dC51bmlmb3JtMWl2KGxvY2F0aW9uLCAqd2ViR0xBcnJheSk7CkBAIC02MDEsMTUgKzUw
NiwxMyBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9D
YWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgVwogICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwogICAgIH0KLSAgICAKLSAgICAKKwogICAgIFZlY3RvcjxpbnQsIDY0PiBhcnJheTsK
LSAgICBpZiAoIXRvVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSwgYXJy
YXkpKQorICAgIGlmICghdG9OdW1iZXJWZWN0b3Ioc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpLCBhcnJheSkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNj
b3BlKTsKLSAgICAKKwogICAgIHN3aXRjaCAoZikgewogICAgIGNhc2UgZl91bmlmb3JtMXY6CiAg
ICAgICAgIGNvbnRleHQudW5pZm9ybTFpdihsb2NhdGlvbiwgYXJyYXkuZGF0YSgpLCBhcnJheS5z
aXplKCkpOwpAQCAtNjI2LDI4ICs1MjksMjUgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVu
Y3Rpb25pKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAg
ICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgCiAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uTWF0cml4KERh
dGFGdW5jdGlvbk1hdHJpeFRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCitzdGF0aWMgSlNWYWx1ZSBkYXRhRnVuY3Rpb25N
YXRyaXgoRGF0YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYsIEV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBpZiAo
c3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDMpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlv
bigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsK
LSAgICAKLSAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9y
bUxvY2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworCisgICAg
YXV0byogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUu
dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghbG9jYXRpb24gJiYgIXN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJv
d1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICAKKwogICAgIGJvb2wgdHJhbnNwb3NlID0g
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9Cb29sZWFuKCZzdGF0ZSk7Ci0gICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICAKLSAgICBSZWZQdHI8RmxvYXQz
MkFycmF5PiB3ZWJHTEFycmF5ID0gdG9VbnNoYXJlZEZsb2F0MzJBcnJheShzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgyKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAot
ICAgIGlmICh3ZWJHTEFycmF5KSB7CisgICAgaWYgKGF1dG8gd2ViR0xBcnJheSA9IHRvVW5zaGFy
ZWRGbG9hdDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpKSB7CiAgICAgICAgIHN3
aXRjaCAoZikgewogICAgICAgICBjYXNlIGZfdW5pZm9ybU1hdHJpeDJmdjoKICAgICAgICAgICAg
IGNvbnRleHQudW5pZm9ybU1hdHJpeDJmdihsb2NhdGlvbiwgdHJhbnNwb3NlLCAqd2ViR0xBcnJh
eSk7CkBAIC02NTksMTQgKzU1OSwxMyBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlv
bk1hdHJpeChEYXRhRnVuY3Rpb25NYXRyaXhUb0NhbGwgZiwgSlNDOjpFeGVjU3RhdAogICAgICAg
ICAgICAgY29udGV4dC51bmlmb3JtTWF0cml4NGZ2KGxvY2F0aW9uLCB0cmFuc3Bvc2UsICp3ZWJH
TEFycmF5KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0KICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CiAgICAgfQotICAgIAorCiAgICAgVmVjdG9yPGZsb2F0LCA2ND4gYXJy
YXk7Ci0gICAgaWYgKCF0b1ZlY3RvcihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMiks
IGFycmF5KSkKKyAgICBpZiAoIXRvTnVtYmVyVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgyKSwgYXJyYXkpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRl
LCBzY29wZSk7Ci0gICAgCisKICAgICBzd2l0Y2ggKGYpIHsKICAgICBjYXNlIGZfdW5pZm9ybU1h
dHJpeDJmdjoKICAgICAgICAgY29udGV4dC51bmlmb3JtTWF0cml4MmZ2KGxvY2F0aW9uLCB0cmFu
c3Bvc2UsIGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsKQEAgLTY3OCw4MSArNTc3LDgwIEBA
IHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uTWF0cml4KERhdGFGdW5jdGlvbk1hdHJp
eFRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0CiAgICAgICAgIGNvbnRleHQudW5pZm9ybU1hdHJpeDRm
dihsb2NhdGlvbiwgdHJhbnNwb3NlLCBhcnJheS5kYXRhKCksIGFycmF5LnNpemUoKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KLQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1KU0M6
OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtMWZ2KEpTQzo6RXhl
Y1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlm
b3JtMWZ2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmYoZl91
bmlmb3JtMXYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtMWl2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pT
VmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtMWl2KEV4ZWNTdGF0ZSYg
c3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmkoZl91bmlmb3JtMXYsIHN0YXRlLCB3
cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Ojp1bmlmb3JtMmZ2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtMmZ2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0
dXJuIGRhdGFGdW5jdGlvbmYoZl91bmlmb3JtMnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1K
U0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtMml2KEpTQzo6
RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1
bmlmb3JtMml2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmko
Zl91bmlmb3JtMnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtM2Z2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkK
K0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtM2Z2KEV4ZWNTdGF0
ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmYoZl91bmlmb3JtM3YsIHN0YXRl
LCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjp1bmlmb3JtM2l2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtM2l2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAg
cmV0dXJuIGRhdGFGdW5jdGlvbmkoZl91bmlmb3JtM3YsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQog
Ci1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtNGZ2KEpT
Qzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Ojp1bmlmb3JtNGZ2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlv
bmYoZl91bmlmb3JtNHYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtNGl2KEpTQzo6RXhlY1N0YXRlJiBzdGF0
ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtNGl2KEV4ZWNT
dGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmkoZl91bmlmb3JtNHYsIHN0
YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjp1bmlmb3JtTWF0cml4MmZ2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUg
SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtTWF0cml4MmZ2KEV4ZWNTdGF0ZSYg
c3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbk1hdHJpeChmX3VuaWZvcm1NYXRyaXgy
ZnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjp1bmlmb3JtTWF0cml4M2Z2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pT
VmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtTWF0cml4M2Z2KEV4ZWNT
dGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbk1hdHJpeChmX3VuaWZvcm1N
YXRyaXgzZnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtTWF0cml4NGZ2KEpTQzo6RXhlY1N0YXRlJiBzdGF0
ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtTWF0cml4NGZ2
KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbk1hdHJpeChmX3Vu
aWZvcm1NYXRyaXg0ZnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWIxZnYoSlNDOjpFeGVjU3RhdGUm
IHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJp
YjFmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdmVy
dGV4QXR0cmliMXYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWIyZnYoSlNDOjpFeGVjU3RhdGUmIHN0
YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJpYjJm
dihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdmVydGV4
QXR0cmliMnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWIzZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRl
KQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJpYjNmdihF
eGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdmVydGV4QXR0
cmliM3YsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWI0ZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQor
SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJpYjRmdihFeGVj
U3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdmVydGV4QXR0cmli
NHYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKaW5kZXggOWZhMjk0MDc4YmJhY2EzZGMyNzYxMDcw
YTQ4YjI4YjViNzJjYzY0ZC4uNDBlNjcyNWQ1MzI1YjljZTIzZmZkZmJjY2Q0YzVmZGVhMGE2ZTBl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2Fk
ZXIuY3BwCkBAIC0xMzUsNiArMTM1LDEwIEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlw
dE1vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhCiAKIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0ds
b2JhbE9iamVjdCoganNHbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpT
TW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlLCBKU0M6OkpTVmFsdWUg
aW5pdGlhdG9yKQogeworICAgIC8vIEZJWE1FOiBXaGF0IGd1YXJhbnRlZXMgdGhlc2UgYXJlIHRy
dWU/IFdoeSBkb24ndCB3ZSBuZWVkIHRvIGNoZWNrPworICAgIEFTU0VSVChKU0M6OmpzRHluYW1p
Y0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKSk7CisgICAgQVNTRVJUKGlzU2NyaXB0RWxlbWVu
dChKU0M6OmpzRHluYW1pY0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKS0+d3JhcHBlZCgpKSk7
CisKICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihqc0dsb2JhbE9iamVjdCk7CiAgICAgYXV0byYganNQcm9taXNlID0gKkpTQzo6SlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsICZnbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gZGVmZXJyZWQgPSBEZWZlcnJlZFByb21pc2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGpzUHJv
bWlzZSk7CkBAIC0xNTYsMTcgKzE2MCwxMiBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3Jp
cHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogICAg
ICAgICByZXR1cm4ganNQcm9taXNlLnByb21pc2UoKTsKICAgICB9CiAKLSAgICBBU1NFUlRfV0lU
SF9NRVNTQUdFKEpTQzo6anNEeW5hbWljQ2FzdDxKU0VsZW1lbnQqPihpbml0aWF0b3IpLCAiSW5p
dGlhdG9yIHNob3VsZCBiZSBhbiBKU0VsZW1lbnQiKTsKLSAgICBhdXRvKiBzY3JpcHRFbGVtZW50
ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmSlNDOjpqc0Nhc3Q8SlNFbGVtZW50Kj4oaW5p
dGlhdG9yKS0+d3JhcHBlZCgpKTsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKHNjcmlwdEVsZW1l
bnQsICJJbml0aWF0b3Igc2hvdWxkIGJlIFNjcmlwdEVsZW1lbnQuIik7Ci0KICAgICBpZiAoYXV0
byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgYXV0byBsb2FkZXIgPSBD
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJyZWQuZ2V0KCkpOwog
ICAgICAgICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOwotICAgICAgICBpZiAoIWxv
YWRlci0+bG9hZCgqc2NyaXB0RWxlbWVudCwgY29tcGxldGVkVVJMKSkgeworICAgICAgICBpZiAo
IWxvYWRlci0+bG9hZChkb3duY2FzdFNjcmlwdEVsZW1lbnQoSlNDOjpqc0Nhc3Q8SlNFbGVtZW50
Kj4oaW5pdGlhdG9yKS0+d3JhcHBlZCgpKSwgY29tcGxldGVkVVJMKSkgewogICAgICAgICAgICAg
bG9hZGVyLT5jbGVhckNsaWVudCgpOwogICAgICAgICAgICAgbV9sb2FkZXJzLnJlbW92ZShXVEZN
b3ZlKGxvYWRlcikpOwotCiAgICAgICAgICAgICBkZWZlcnJlZC0+cmVqZWN0KGZyYW1lLT5zY3Jp
cHQoKS5tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpKTsKICAgICAgICAg
ICAgIHJldHVybiBqc1Byb21pc2UucHJvbWlzZSgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IDRjNDNiZGQxZDdlNDgyNzYzOWVhYTNmNDU3YTg1NGE1NzI1NmUwYTAuLjcwNThj
YWI3OTYyZmQzMmY2NjJlOThmYzc2MGIwZjc3MGZkNTRjMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CkBAIC05OSw4ICs5OSw4IEBAIGNsYXNzIERvY3VtZW50UGFyc2VyOwogY2xhc3MgRG9jdW1lbnRT
aGFyZWRPYmplY3RQb29sOwogY2xhc3MgRG9jdW1lbnRUeXBlOwogY2xhc3MgRXh0ZW5zaW9uU3R5
bGVTaGVldHM7Ci1jbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBGbG9hdFF1YWQ7CitjbGFzcyBGbG9h
dFJlY3Q7CiBjbGFzcyBGb3JtQ29udHJvbGxlcjsKIGNsYXNzIEZyYW1lOwogY2xhc3MgRnJhbWVW
aWV3OwpAQCAtMTIxLDExICsxMjEsMTAgQEAgY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQ7CiBjbGFz
cyBIaXRUZXN0UmVxdWVzdDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBJbnRQb2ludDsK
K2NsYXNzIEpTTm9kZTsKIGNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGF5b3V0UmVjdDsKIGNs
YXNzIExpdmVOb2RlTGlzdDsKLWNsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKLWNsYXNzIEpTTm9k
ZTsKIGNsYXNzIExvY2FsZTsKIGNsYXNzIExvY2F0aW9uOwogY2xhc3MgTWVkaWFDYW5TdGFydExp
c3RlbmVyOwpAQCAtMTMzLDcgKzEzMiw2IEBAIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CiBj
bGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50OwogY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiBj
bGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlcjsKLWNsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKIGNsYXNz
IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHM7CiBjbGFzcyBOYW1lZEZsb3dDb2xsZWN0aW9u
OwogY2xhc3MgTm9kZUZpbHRlcjsKQEAgLTE0MywyMyArMTQxLDI0IEBAIGNsYXNzIFBsYXRmb3Jt
TW91c2VFdmVudDsKIGNsYXNzIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjsKIGNsYXNzIFF1YWxpZmll
ZE5hbWU7CiBjbGFzcyBSYW5nZTsKLWNsYXNzIFJlbmRlclZpZXc7CiBjbGFzcyBSZW5kZXJGdWxs
U2NyZWVuOwotY2xhc3MgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyOworY2xhc3MgUmVuZGVyVmll
dzsKK2NsYXNzIFNWR0RvY3VtZW50RXh0ZW5zaW9uczsKK2NsYXNzIFNWR1NWR0VsZW1lbnQ7CiBj
bGFzcyBTY3JpcHRFbGVtZW50RGF0YTsKK2NsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKIGNsYXNz
IFNjcmlwdFJ1bm5lcjsKK2NsYXNzIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlcjsKIGNsYXNzIFNl
Y3VyaXR5T3JpZ2luOworY2xhc3MgU2VnbWVudGVkU3RyaW5nOwogY2xhc3MgU2VsZWN0b3JRdWVy
eTsKIGNsYXNzIFNlbGVjdG9yUXVlcnlDYWNoZTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTsKLWNsYXNzIFNlZ21lbnRlZFN0cmluZzsKIGNsYXNzIFNldHRpbmdzOwogY2xhc3MgU3R5bGVS
ZXNvbHZlcjsKIGNsYXNzIFN0eWxlU2hlZXQ7CiBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiBj
bGFzcyBTdHlsZVNoZWV0TGlzdDsKLWNsYXNzIFNWR0RvY3VtZW50RXh0ZW5zaW9uczsKLWNsYXNz
IFNWR1NWR0VsZW1lbnQ7CiBjbGFzcyBUZXh0OwogY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsK
IGNsYXNzIFRyZWVXYWxrZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGlu
Z1NjcmlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5jcHAKaW5kZXgg
MmJlMGUyZWI5MDMyZGQzODlhYjU3NGQ0ODA4NjA0ZjJlNmJmYjU0OS4uMTgzOGM0ZjVkMjBkYzNm
NjUyNmI4YTcyNjIzMjI4MmNkNDllYTE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1BlbmRpbmdTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0
LmNwcApAQCAtMjYsMzAgKzI2LDMwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
UGVuZGluZ1NjcmlwdC5oIgogCi0jaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIlBlbmRp
bmdTY3JpcHRDbGllbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotUmVmPFBlbmRpbmdTY3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShF
bGVtZW50JiBlbGVtZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQpCitSZWY8UGVu
ZGluZ1NjcmlwdD4gUGVuZGluZ1NjcmlwdDo6Y3JlYXRlKFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQs
IExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlwdCkKIHsKLSAgICBSZWY8UGVuZGluZ1Njcmlw
dD4gcGVuZGluZ1NjcmlwdCA9IGFkb3B0UmVmKCpuZXcgUGVuZGluZ1NjcmlwdChlbGVtZW50LCBs
b2FkYWJsZVNjcmlwdCkpOworICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IGFkb3B0UmVmKCpuZXcg
UGVuZGluZ1NjcmlwdChlbGVtZW50LCBsb2FkYWJsZVNjcmlwdCkpOwogICAgIGxvYWRhYmxlU2Ny
aXB0LmFkZENsaWVudChwZW5kaW5nU2NyaXB0LmdldCgpKTsKICAgICByZXR1cm4gcGVuZGluZ1Nj
cmlwdDsKIH0KIAotUmVmPFBlbmRpbmdTY3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShFbGVt
ZW50JiBlbGVtZW50LCBUZXh0UG9zaXRpb24gc2NyaXB0U3RhcnRQb3NpdGlvbikKK1JlZjxQZW5k
aW5nU2NyaXB0PiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoU2NyaXB0RWxlbWVudCYgZWxlbWVudCwg
VGV4dFBvc2l0aW9uIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUGVuZGluZ1NjcmlwdChlbGVtZW50LCBzY3JpcHRTdGFydFBvc2l0aW9uKSk7CiB9CiAK
LVBlbmRpbmdTY3JpcHQ6OlBlbmRpbmdTY3JpcHQoRWxlbWVudCYgZWxlbWVudCwgVGV4dFBvc2l0
aW9uIHN0YXJ0aW5nUG9zaXRpb24pCitQZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KFNjcmlw
dEVsZW1lbnQmIGVsZW1lbnQsIFRleHRQb3NpdGlvbiBzdGFydGluZ1Bvc2l0aW9uKQogICAgIDog
bV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX3N0YXJ0aW5nUG9zaXRpb24oc3RhcnRpbmdQb3Np
dGlvbikKIHsKIH0KIAotUGVuZGluZ1NjcmlwdDo6UGVuZGluZ1NjcmlwdChFbGVtZW50JiBlbGVt
ZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQpCitQZW5kaW5nU2NyaXB0OjpQZW5k
aW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJs
ZVNjcmlwdCkKICAgICA6IG1fZWxlbWVudChlbGVtZW50KQogICAgICwgbV9sb2FkYWJsZVNjcmlw
dCgmbG9hZGFibGVTY3JpcHQpCiB7CkBAIC02MSwxMSArNjEsNiBAQCBQZW5kaW5nU2NyaXB0Ojp+
UGVuZGluZ1NjcmlwdCgpCiAgICAgICAgIG1fbG9hZGFibGVTY3JpcHQtPnJlbW92ZUNsaWVudCgq
dGhpcyk7CiB9CiAKLUxvYWRhYmxlU2NyaXB0KiBQZW5kaW5nU2NyaXB0Ojpsb2FkYWJsZVNjcmlw
dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbG9hZGFibGVTY3JpcHQuZ2V0KCk7Ci19Ci0KIHZv
aWQgUGVuZGluZ1NjcmlwdDo6bm90aWZ5Q2xpZW50RmluaXNoZWQoKQogewogICAgIFJlZjxQZW5k
aW5nU2NyaXB0PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKQEAgLTg4LDEwICs4MywxMCBAQCBib29s
IFBlbmRpbmdTY3JpcHQ6OmVycm9yKCkgY29uc3QKICAgICByZXR1cm4gbV9sb2FkYWJsZVNjcmlw
dCAmJiBtX2xvYWRhYmxlU2NyaXB0LT5lcnJvcigpOwogfQogCi12b2lkIFBlbmRpbmdTY3JpcHQ6
OnNldENsaWVudChQZW5kaW5nU2NyaXB0Q2xpZW50KiBjbGllbnQpCit2b2lkIFBlbmRpbmdTY3Jp
cHQ6OnNldENsaWVudChQZW5kaW5nU2NyaXB0Q2xpZW50JiBjbGllbnQpCiB7CiAgICAgQVNTRVJU
KCFtX2NsaWVudCk7Ci0gICAgbV9jbGllbnQgPSBjbGllbnQ7CisgICAgbV9jbGllbnQgPSAmY2xp
ZW50OwogICAgIGlmIChpc0xvYWRlZCgpKQogICAgICAgICBub3RpZnlDbGllbnRGaW5pc2hlZCgp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKaW5kZXggOTkwZjI1MDgzYjAxYjAyN2M0
YWMwMTQxN2Y4ZjQ5MTZhOWU4ZTY2Ni4uZmM3NThkMDdkZDYwZGVjMzE4YmI4OGRhZDA3ODdmODQ4
ODJmODIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5oCkBAIC0zNCwxNSArMzQsMTUg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkU2NyaXB0OwotY2xhc3MgRWxl
bWVudDsKIGNsYXNzIFBlbmRpbmdTY3JpcHRDbGllbnQ7CitjbGFzcyBTY3JpcHRFbGVtZW50Owog
CiAvLyBBIGNvbnRhaW5lciBmb3Igc2NyaXB0cyB3aGljaCBtYXkgYmUgbG9hZGVkIGFuZCBleGVj
dXRlZC4KIC8vIFRoaXMgY2FuIGhvbGQgTG9hZGFibGVTY3JpcHQgYW5kIG5vbiBleHRlcm5hbCBp
bmxpbmUgc2NyaXB0LgogY2xhc3MgUGVuZGluZ1NjcmlwdCBmaW5hbCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFBlbmRpbmdTY3JpcHQ+LCBwdWJsaWMgTG9hZGFibGVTY3JpcHRDbGllbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8UGVuZGluZ1NjcmlwdD4gY3JlYXRlKEVsZW1lbnQmLCBMb2FkYWJs
ZVNjcmlwdCYpOwotICAgIHN0YXRpYyBSZWY8UGVuZGluZ1NjcmlwdD4gY3JlYXRlKEVsZW1lbnQm
LCBUZXh0UG9zaXRpb24gc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgc3RhdGljIFJlZjxQZW5k
aW5nU2NyaXB0PiBjcmVhdGUoU2NyaXB0RWxlbWVudCYsIExvYWRhYmxlU2NyaXB0Jik7CisgICAg
c3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0PiBjcmVhdGUoU2NyaXB0RWxlbWVudCYsIFRleHRQb3Np
dGlvbiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKIAogICAgIHZpcnR1YWwgflBlbmRpbmdTY3JpcHQo
KTsKIApAQCAtNTEsOCArNTEsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIHdhdGNoaW5nRm9yTG9h
ZCgpIGNvbnN0IHsgcmV0dXJuIG5lZWRzTG9hZGluZygpICYmIG1fY2xpZW50OyB9CiAKLSAgICBF
bGVtZW50JiBlbGVtZW50KCkgeyByZXR1cm4gbV9lbGVtZW50LmdldCgpOyB9Ci0gICAgY29uc3Qg
RWxlbWVudCYgZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudC5nZXQoKTsgfQorICAg
IFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0KKyAg
ICBjb25zdCBTY3JpcHRFbGVtZW50JiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50
LmdldCgpOyB9CiAKICAgICBMb2FkYWJsZVNjcmlwdCogbG9hZGFibGVTY3JpcHQoKSBjb25zdDsK
ICAgICBib29sIG5lZWRzTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuIGxvYWRhYmxlU2NyaXB0KCk7
IH0KQEAgLTYyLDE5ICs2MiwyNCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVk
KExvYWRhYmxlU2NyaXB0Jikgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNldENsaWVudChQZW5kaW5n
U2NyaXB0Q2xpZW50Kik7CisgICAgdm9pZCBzZXRDbGllbnQoUGVuZGluZ1NjcmlwdENsaWVudCYp
OwogICAgIHZvaWQgY2xlYXJDbGllbnQoKTsKIAogcHJpdmF0ZToKLSAgICBQZW5kaW5nU2NyaXB0
KEVsZW1lbnQmLCBMb2FkYWJsZVNjcmlwdCYpOwotICAgIFBlbmRpbmdTY3JpcHQoRWxlbWVudCYs
IFRleHRQb3NpdGlvbiBzdGFydGluZ1Bvc2l0aW9uKTsKKyAgICBQZW5kaW5nU2NyaXB0KFNjcmlw
dEVsZW1lbnQmLCBMb2FkYWJsZVNjcmlwdCYpOworICAgIFBlbmRpbmdTY3JpcHQoU2NyaXB0RWxl
bWVudCYsIFRleHRQb3NpdGlvbiBzdGFydGluZ1Bvc2l0aW9uKTsKIAogICAgIHZvaWQgbm90aWZ5
Q2xpZW50RmluaXNoZWQoKTsKIAotICAgIFJlZjxFbGVtZW50PiBtX2VsZW1lbnQ7CisgICAgUmVm
PFNjcmlwdEVsZW1lbnQ+IG1fZWxlbWVudDsKICAgICBUZXh0UG9zaXRpb24gbV9zdGFydGluZ1Bv
c2l0aW9uOyAvLyBPbmx5IHVzZWQgZm9yIGlubGluZSBzY3JpcHQgdGFncy4KICAgICBSZWZQdHI8
TG9hZGFibGVTY3JpcHQ+IG1fbG9hZGFibGVTY3JpcHQ7CiAgICAgUGVuZGluZ1NjcmlwdENsaWVu
dCogbV9jbGllbnQgeyBudWxscHRyIH07CiB9OwogCitpbmxpbmUgTG9hZGFibGVTY3JpcHQqIFBl
bmRpbmdTY3JpcHQ6OmxvYWRhYmxlU2NyaXB0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9sb2Fk
YWJsZVNjcmlwdC5nZXQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3Bw
CmluZGV4IDYxZjI0ODJmNTg3MWQ4YWQwYjc1MjZmNmY0NDViY2RiNzc0ZmM0OGYuLmQ4NDZjNTE4
OGMxNWY2NjAyMWYzZThlNGJlZTZjY2Q2MjRkMzNlMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAKQEAgLTI2MywxMSArMjYzLDExIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJl
cGFyZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2Fj
CiAgICAgfSBlbHNlIGlmICgoaXNDbGFzc2ljRXh0ZXJuYWxTY3JpcHQgfHwgc2NyaXB0VHlwZSA9
PSBTY3JpcHRUeXBlOjpNb2R1bGUpICYmICFhc3luY0F0dHJpYnV0ZVZhbHVlKCkgJiYgIW1fZm9y
Y2VBc3luYykgewogICAgICAgICBtX3dpbGxFeGVjdXRlSW5PcmRlciA9IHRydWU7CiAgICAgICAg
IEFTU0VSVChtX2xvYWRhYmxlU2NyaXB0KTsKLSAgICAgICAgZG9jdW1lbnQuc2NyaXB0UnVubmVy
KCktPnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKHRoaXMsICptX2xvYWRhYmxlU2NyaXB0LCBTY3Jp
cHRSdW5uZXI6OklOX09SREVSX0VYRUNVVElPTik7CisgICAgICAgIGRvY3VtZW50LnNjcmlwdFJ1
bm5lcigpLT5xdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbigqdGhpcywgKm1fbG9hZGFibGVTY3JpcHQs
IFNjcmlwdFJ1bm5lcjo6SU5fT1JERVJfRVhFQ1VUSU9OKTsKICAgICB9IGVsc2UgaWYgKGhhc1Nv
dXJjZUF0dHJpYnV0ZSgpIHx8IHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6TW9kdWxlKSB7CiAg
ICAgICAgIEFTU0VSVChtX2xvYWRhYmxlU2NyaXB0KTsKICAgICAgICAgQVNTRVJUKGFzeW5jQXR0
cmlidXRlVmFsdWUoKSB8fCBtX2ZvcmNlQXN5bmMpOwotICAgICAgICBkb2N1bWVudC5zY3JpcHRS
dW5uZXIoKS0+cXVldWVTY3JpcHRGb3JFeGVjdXRpb24odGhpcywgKm1fbG9hZGFibGVTY3JpcHQs
IFNjcmlwdFJ1bm5lcjo6QVNZTkNfRVhFQ1VUSU9OKTsKKyAgICAgICAgZG9jdW1lbnQuc2NyaXB0
UnVubmVyKCktPnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKCp0aGlzLCAqbV9sb2FkYWJsZVNjcmlw
dCwgU2NyaXB0UnVubmVyOjpBU1lOQ19FWEVDVVRJT04pOwogICAgIH0gZWxzZSBpZiAoIWhhc1Nv
dXJjZUF0dHJpYnV0ZSgpICYmIG1fcGFyc2VySW5zZXJ0ZWQgJiYgIWRvY3VtZW50LmhhdmVTdHls
ZXNoZWV0c0xvYWRlZCgpKSB7CiAgICAgICAgIEFTU0VSVChzY3JpcHRUeXBlID09IFNjcmlwdFR5
cGU6OkNsYXNzaWMpOwogICAgICAgICBtX3dpbGxCZVBhcnNlckV4ZWN1dGVkID0gdHJ1ZTsKQEAg
LTQ4NywxNSArNDg3LDI2IEBAIFN0cmluZyBTY3JpcHRFbGVtZW50OjpzY3JpcHRDb250ZW50KCkg
Y29uc3QKICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CiB9CiAKLVNjcmlwdEVsZW1lbnQq
IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgU2NyaXB0
RWxlbWVudDo6cmVmKCkKIHsKLSAgICBpZiAoaXM8SFRNTFNjcmlwdEVsZW1lbnQ+KCplbGVtZW50
KSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PEhUTUxTY3JpcHRFbGVtZW50PihlbGVtZW50KTsK
KyAgICBtX2VsZW1lbnQucmVmKCk7Cit9CiAKLSAgICBpZiAoaXM8U1ZHU2NyaXB0RWxlbWVudD4o
KmVsZW1lbnQpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8U1ZHU2NyaXB0RWxlbWVudD4oZWxl
bWVudCk7Cit2b2lkIFNjcmlwdEVsZW1lbnQ6OmRlcmVmKCkKK3sKKyAgICBtX2VsZW1lbnQuZGVy
ZWYoKTsKK30KIAotICAgIHJldHVybiBudWxscHRyOworYm9vbCBpc1NjcmlwdEVsZW1lbnQoRWxl
bWVudCYgZWxlbWVudCkKK3sKKyAgICByZXR1cm4gaXM8SFRNTFNjcmlwdEVsZW1lbnQ+KGVsZW1l
bnQpIHx8IGlzPFNWR1NjcmlwdEVsZW1lbnQ+KGVsZW1lbnQpOworfQorCitTY3JpcHRFbGVtZW50
JiBkb3duY2FzdFNjcmlwdEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAoaXM8
SFRNTFNjcmlwdEVsZW1lbnQ+KGVsZW1lbnQpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRN
TFNjcmlwdEVsZW1lbnQ+KGVsZW1lbnQpOworICAgIHJldHVybiBkb3duY2FzdDxTVkdTY3JpcHRF
bGVtZW50PihlbGVtZW50KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKaW5k
ZXggNDA3OWMxNzA5MzIxNzg0MDg3ZTllM2Y3MzIzNDZjNTU4MDBmN2IxNC4uYzA3MTA2M2VkNjJk
OThmYmQwZWZjYjc1OWMyMGJlMDQ1NWQyNWUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVu
dC5oCkBAIC0zMSwxMyArMzEsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBD
YWNoZWRNb2R1bGVTY3JpcHQ7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBDb250YWluZXJO
b2RlOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIFBlbmRpbmdTY3JpcHQ7Ci1jbGFzcyBTY3JpcHRF
bGVtZW50OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKLWNsYXNzIENhY2hlZE1vZHVsZVNjcmlw
dDsKIAogY2xhc3MgU2NyaXB0RWxlbWVudCB7CiBwdWJsaWM6CkBAIC03Myw2ICs3Miw5IEBAIHB1
YmxpYzoKICAgICBlbnVtIGNsYXNzIFNjcmlwdFR5cGUgeyBDbGFzc2ljLCBNb2R1bGUgfTsKICAg
ICBTY3JpcHRUeXBlIHNjcmlwdFR5cGUoKSBjb25zdCB7IHJldHVybiBtX2lzTW9kdWxlU2NyaXB0
ID8gU2NyaXB0VHlwZTo6TW9kdWxlIDogU2NyaXB0VHlwZTo6Q2xhc3NpYzsgfQogCisgICAgdm9p
ZCByZWYoKTsKKyAgICB2b2lkIGRlcmVmKCk7CisKIHByb3RlY3RlZDoKICAgICBTY3JpcHRFbGVt
ZW50KEVsZW1lbnQmLCBib29sIGNyZWF0ZWRCeVBhcnNlciwgYm9vbCBpc0V2YWx1YXRlZCk7CiAK
QEAgLTEyNyw3ICsxMjksOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxMb2FkYWJsZVNjcmlwdD4g
bV9sb2FkYWJsZVNjcmlwdDsKIH07CiAKLS8vIEZJWE1FOiByZXBsYWNlIHdpdGggZG93bmNhc3Q8
U2NyaXB0RWxlbWVudD4uCi1TY3JpcHRFbGVtZW50KiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxl
KEVsZW1lbnQqKTsKKy8vIEZJWE1FOiByZXBsYWNlIHdpdGggaXMvZG93bmNhc3Q8U2NyaXB0RWxl
bWVudD4uCitib29sIGlzU2NyaXB0RWxlbWVudChFbGVtZW50Jik7CitTY3JpcHRFbGVtZW50JiBk
b3duY2FzdFNjcmlwdEVsZW1lbnQoRWxlbWVudCYpOwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRS
dW5uZXIuY3BwCmluZGV4IDcwOTg5ZWI0MGMwNDVhZGU3NzRhZTU3ZDA5YTQwNDhiNTllMzg4MDQu
LjBlN2VmZDZjMjllMWJhOTU1ZjcxZmQ0OWM3OTllZTU4YTkxYzQwZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRSdW5uZXIuY3BwCkBAIC01NiwyNiArNTYsMjIgQEAgU2NyaXB0UnVubmVyOjp+U2Ny
aXB0UnVubmVyKCkKICAgICB9CiB9CiAKLXZvaWQgU2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZv
ckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBMb2FkYWJsZVNjcmlwdCYg
bG9hZGFibGVTY3JpcHQsIEV4ZWN1dGlvblR5cGUgZXhlY3V0aW9uVHlwZSkKK3ZvaWQgU2NyaXB0
UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVt
ZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQsIEV4ZWN1dGlvblR5cGUgZXhlY3V0
aW9uVHlwZSkKIHsKLSAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7Ci0KLSAgICBFbGVtZW50JiBl
bGVtZW50ID0gc2NyaXB0RWxlbWVudC0+ZWxlbWVudCgpOwotICAgIEFTU0VSVChlbGVtZW50Lmlu
RG9jdW1lbnQoKSk7CisgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQuZWxlbWVudCgpLmluRG9jdW1l
bnQoKSk7CiAKICAgICBtX2RvY3VtZW50LmluY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsK
IAotICAgIFJlZjxQZW5kaW5nU2NyaXB0PiBwZW5kaW5nU2NyaXB0ID0gUGVuZGluZ1NjcmlwdDo6
Y3JlYXRlKGVsZW1lbnQsIGxvYWRhYmxlU2NyaXB0KTsKKyAgICBhdXRvIHBlbmRpbmdTY3JpcHQg
PSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxlbWVudCwgbG9hZGFibGVTY3JpcHQpOwog
ICAgIHN3aXRjaCAoZXhlY3V0aW9uVHlwZSkgewogICAgIGNhc2UgQVNZTkNfRVhFQ1VUSU9OOgog
ICAgICAgICBtX3BlbmRpbmdBc3luY1NjcmlwdHMuYWRkKHBlbmRpbmdTY3JpcHQuY29weVJlZigp
KTsKICAgICAgICAgYnJlYWs7Ci0KICAgICBjYXNlIElOX09SREVSX0VYRUNVVElPTjoKICAgICAg
ICAgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5hcHBlbmQocGVuZGluZ1NjcmlwdC5jb3B5UmVm
KCkpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgcGVuZGluZ1NjcmlwdC0+c2V0Q2xpZW50
KHRoaXMpOworICAgIHBlbmRpbmdTY3JpcHQtPnNldENsaWVudCgqdGhpcyk7CiB9CiAKIHZvaWQg
U2NyaXB0UnVubmVyOjpzdXNwZW5kKCkKQEAgLTkxLDkgKzg3LDcgQEAgdm9pZCBTY3JpcHRSdW5u
ZXI6OnJlc3VtZSgpCiAKIHZvaWQgU2NyaXB0UnVubmVyOjpub3RpZnlGaW5pc2hlZChQZW5kaW5n
U2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogewotICAgIGF1dG8qIHNjcmlwdEVsZW1lbnQgPSB0b1Nj
cmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKSk7Ci0gICAgQVNT
RVJUKHNjcmlwdEVsZW1lbnQpOwotICAgIGlmIChzY3JpcHRFbGVtZW50LT53aWxsRXhlY3V0ZUlu
T3JkZXIoKSkKKyAgICBpZiAocGVuZGluZ1NjcmlwdC5lbGVtZW50KCkud2lsbEV4ZWN1dGVJbk9y
ZGVyKCkpCiAgICAgICAgIEFTU0VSVCghbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5pc0VtcHR5
KCkpOwogICAgIGVsc2UgewogICAgICAgICBBU1NFUlQobV9wZW5kaW5nQXN5bmNTY3JpcHRzLmNv
bnRhaW5zKHBlbmRpbmdTY3JpcHQpKTsKQEAgLTEyMiwxMCArMTE2LDggQEAgdm9pZCBTY3JpcHRS
dW5uZXI6OnRpbWVyRmlyZWQoKQogICAgICAgICAvLyBQYXBlciBvdmVyIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQwNTAKICAgICAgICAgaWYgKCFzY3JpcHQpCiAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgYXV0byogc2NyaXB0RWxlbWVudCA9IHRvU2Ny
aXB0RWxlbWVudElmUG9zc2libGUoJnNjcmlwdC0+ZWxlbWVudCgpKTsKLSAgICAgICAgQVNTRVJU
KHNjcmlwdEVsZW1lbnQpOwogICAgICAgICBBU1NFUlQoc2NyaXB0LT5uZWVkc0xvYWRpbmcoKSk7
Ci0gICAgICAgIHNjcmlwdEVsZW1lbnQtPmV4ZWN1dGVQZW5kaW5nU2NyaXB0KCpzY3JpcHQpOwor
ICAgICAgICBzY3JpcHQtPmVsZW1lbnQoKS5leGVjdXRlUGVuZGluZ1NjcmlwdCgqc2NyaXB0KTsK
ICAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAgICAg
fQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCmluZGV4IGRmY2YzYzVmYTkwZTRhNDUwOTQw
NDJkODc3ZGUzYmNlNDQ4MDBkOWEuLjJiOWU2Mjg1MGJkZDM1ZWE3MzRjN2I4ZmZmZWQ3OWJlYzEx
N2RiZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVi
bGljOgogICAgIH5TY3JpcHRSdW5uZXIoKTsKIAogICAgIGVudW0gRXhlY3V0aW9uVHlwZSB7IEFT
WU5DX0VYRUNVVElPTiwgSU5fT1JERVJfRVhFQ1VUSU9OIH07Ci0gICAgdm9pZCBxdWV1ZVNjcmlw
dEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiwgTG9hZGFibGVTY3JpcHQmLCBFeGVjdXRpb25U
eXBlKTsKKyAgICB2b2lkIHF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQmLCBM
b2FkYWJsZVNjcmlwdCYsIEV4ZWN1dGlvblR5cGUpOwogICAgIGJvb2wgaGFzUGVuZGluZ1Njcmlw
dHMoKSBjb25zdCB7IHJldHVybiAhbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkgfHwg
IW1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpIHx8ICFtX3BlbmRpbmdBc3luY1Nj
cmlwdHMuaXNFbXB0eSgpOyB9CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCByZXN1bWUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDEzNjdiNGYyMGVhMDkx
MWRmOWNkZGNmMWMxNjJlNzM5ZDFlMDI2ZTMuLjE0YzJmNDEzOGUwMjNjODBiMDlkYzZlMDQ5MzVj
Njc5ZmNhZTc4N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMjU4
LDEyICsyNTgsMTIgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcm
LCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKQogICAgIGVsZW1lbnQoKS5pbnZhbGlkYXRl
U3R5bGVGb3JTdWJ0cmVlKCk7CiB9CiAKLVBhc3NSZWZQdHI8RmlsZUxpc3Q+IEZpbGVJbnB1dFR5
cGU6OmNyZWF0ZUZpbGVMaXN0KGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgZmls
ZXMpIGNvbnN0CitSZWY8RmlsZUxpc3Q+IEZpbGVJbnB1dFR5cGU6OmNyZWF0ZUZpbGVMaXN0KGNv
bnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpCiB7CiAgICAgVmVjdG9yPFJl
ZlB0cjxGaWxlPj4gZmlsZU9iamVjdHM7Ci0gICAgZm9yIChjb25zdCBGaWxlQ2hvb3NlckZpbGVJ
bmZvJiBpbmZvIDogZmlsZXMpCi0gICAgICAgIGZpbGVPYmplY3RzLmFwcGVuZChGaWxlOjpjcmVh
dGVXaXRoTmFtZShpbmZvLnBhdGgsIGluZm8uZGlzcGxheU5hbWUpKTsKLQorICAgIGZpbGVPYmpl
Y3RzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZmlsZXMuc2l6ZSgpKTsKKyAgICBmb3IgKGF1dG8m
IGluZm8gOiBmaWxlcykKKyAgICAgICAgZmlsZU9iamVjdHMudW5jaGVja2VkQXBwZW5kKEZpbGU6
OmNyZWF0ZVdpdGhOYW1lKGluZm8ucGF0aCwgaW5mby5kaXNwbGF5TmFtZSkpOwogICAgIHJldHVy
biBGaWxlTGlzdDo6Y3JlYXRlKFdURk1vdmUoZmlsZU9iamVjdHMpKTsKIH0KIApAQCAtMzAyLDI5
ICszMDIsMzIgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjptdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQo
KQogICAgICAgICBidXR0b24tPnNldFZhbHVlKGVsZW1lbnQoKS5tdWx0aXBsZSgpID8gZmlsZUJ1
dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpIDogZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJl
bCgpKTsKIH0KIAorI2lmICFQTEFURk9STShJT1MpCisKIHZvaWQgRmlsZUlucHV0VHlwZTo6cmVx
dWVzdEljb24oY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKQogewotI2lmIFBMQVRGT1JNKElP
UykKLSAgICBVTlVTRURfUEFSQU0ocGF0aHMpOwotI2Vsc2UKICAgICBpZiAoIXBhdGhzLnNpemUo
KSkgewotICAgICAgICB1cGRhdGVSZW5kZXJpbmcobnVsbHB0cik7CisgICAgICAgIGljb25Mb2Fk
ZWQobnVsbHB0cik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBDaHJvbWUqIGNocm9t
ZSA9IHRoaXMtPmNocm9tZSgpOwotICAgIGlmICghY2hyb21lKQorICAgIGF1dG8qIGNocm9tZSA9
IHRoaXMtPmNocm9tZSgpOworICAgIGlmICghY2hyb21lKSB7CisgICAgICAgIGljb25Mb2FkZWQo
bnVsbHB0cik7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBpZiAobV9maWxlSWNvbkxv
YWRlcikKICAgICAgICAgbV9maWxlSWNvbkxvYWRlci0+aW52YWxpZGF0ZSgpOwogCi0gICAgbV9m
aWxlSWNvbkxvYWRlciA9IHN0ZDo6bWFrZV91bmlxdWU8RmlsZUljb25Mb2FkZXI+KHN0YXRpY19j
YXN0PEZpbGVJY29uTG9hZGVyQ2xpZW50Jj4oKnRoaXMpKTsKKyAgICBGaWxlSWNvbkxvYWRlckNs
aWVudCYgY2xpZW50ID0gKnRoaXM7CisgICAgbV9maWxlSWNvbkxvYWRlciA9IHN0ZDo6bWFrZV91
bmlxdWU8RmlsZUljb25Mb2FkZXI+KGNsaWVudCk7CiAKLSAgICBjaHJvbWUtPmxvYWRJY29uRm9y
RmlsZXMocGF0aHMsIG1fZmlsZUljb25Mb2FkZXIuZ2V0KCkpOwotI2VuZGlmCisgICAgY2hyb21l
LT5sb2FkSWNvbkZvckZpbGVzKHBhdGhzLCAqbV9maWxlSWNvbkxvYWRlcik7CiB9CiAKKyNlbmRp
ZgorCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmFwcGx5RmlsZUNob29zZXJTZXR0aW5ncyhjb25zdCBG
aWxlQ2hvb3NlclNldHRpbmdzJiBzZXR0aW5ncykKIHsKICAgICBpZiAobV9maWxlQ2hvb3NlcikK
QEAgLTMzMywxOCArMzM2LDE4IEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6YXBwbHlGaWxlQ2hvb3Nl
clNldHRpbmdzKGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRpbmdzCiAgICAgbV9maWxl
Q2hvb3NlciA9IEZpbGVDaG9vc2VyOjpjcmVhdGUodGhpcywgc2V0dGluZ3MpOwogfQogCi12b2lk
IEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+IGZpbGVzKQordm9p
ZCBGaWxlSW5wdXRUeXBlOjpzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+JiYgZmlsZXMpCiB7Ci0g
ICAgaWYgKCFmaWxlcykKLSAgICAgICAgcmV0dXJuOwotCiAgICAgUmVmPEhUTUxJbnB1dEVsZW1l
bnQ+IGlucHV0KGVsZW1lbnQoKSk7CiAKKyAgICB1bnNpZ25lZCBsZW5ndGggPSBmaWxlcyA/IGZp
bGVzLT5sZW5ndGgoKSA6IDA7CisgICAgdW5zaWduZWQgb2xkTGVuZ3RoID0gbV9maWxlTGlzdCA/
IG1fZmlsZUxpc3QtPmxlbmd0aCgpIDogMDsKKwogICAgIGJvb2wgcGF0aHNDaGFuZ2VkID0gZmFs
c2U7Ci0gICAgaWYgKGZpbGVzLT5sZW5ndGgoKSAhPSBtX2ZpbGVMaXN0LT5sZW5ndGgoKSkKKyAg
ICBpZiAobGVuZ3RoICE9IG9sZExlbmd0aCkKICAgICAgICAgcGF0aHNDaGFuZ2VkID0gdHJ1ZTsK
ICAgICBlbHNlIHsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZpbGVzLT5sZW5n
dGgoKTsgKytpKSB7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsr
aSkgewogICAgICAgICAgICAgaWYgKGZpbGVzLT5pdGVtKGkpLT5wYXRoKCkgIT0gbV9maWxlTGlz
dC0+aXRlbShpKS0+cGF0aCgpKSB7CiAgICAgICAgICAgICAgICAgcGF0aHNDaGFuZ2VkID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM1MiwxNSArMzU1LDE3IEBAIHZvaWQgRmls
ZUlucHV0VHlwZTo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCiAgICAgICAg
IH0KICAgICB9CiAKLSAgICBtX2ZpbGVMaXN0ID0gZmlsZXM7CisgICAgbV9maWxlTGlzdCA9IFdU
Rk1vdmUoZmlsZXMpOwogCiAgICAgaW5wdXQtPnNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVu
ZGVyZXIodHJ1ZSk7CiAgICAgaW5wdXQtPnVwZGF0ZVZhbGlkaXR5KCk7CiAKKyNpZiAhUExBVEZP
Uk0oSU9TKQogICAgIFZlY3RvcjxTdHJpbmc+IHBhdGhzOwotICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBtX2ZpbGVMaXN0LT5sZW5ndGgoKTsgKytpKQorICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBsZW5ndGg7ICsraSkKICAgICAgICAgcGF0aHMuYXBwZW5kKG1fZmlsZUxpc3QtPml0
ZW0oaSktPnBhdGgoKSk7CiAgICAgcmVxdWVzdEljb24ocGF0aHMpOworI2VuZGlmCiAKICAgICBp
ZiAoaW5wdXQtPnJlbmRlcmVyKCkpCiAgICAgICAgIGlucHV0LT5yZW5kZXJlcigpLT5yZXBhaW50
KCk7CkBAIC0zNzQsNiArMzc5LDcgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRGaWxlcyhQYXNz
UmVmUHRyPEZpbGVMaXN0PiBmaWxlcykKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKKwogdm9pZCBG
aWxlSW5wdXRUeXBlOjpmaWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5m
bz4mIHBhdGhzLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlTdHJpbmcsIEljb24qIGljb24pCiB7CiAg
ICAgbV9kaXNwbGF5U3RyaW5nID0gZGlzcGxheVN0cmluZzsKQEAgLTM4NSw2ICszOTEsNyBAQCBT
dHJpbmcgRmlsZUlucHV0VHlwZTo6ZGlzcGxheVN0cmluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fZGlzcGxheVN0cmluZzsKIH0KKwogI2VuZGlmCiAKIHZvaWQgRmlsZUlucHV0VHlwZTo6Zmls
ZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBmaWxlcykKQEAgLTM5
MiwxMiArMzk5LDEyIEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4oY29uc3QgVmVj
dG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBmaWxlcykKICAgICBzZXRGaWxlcyhjcmVhdGVGaWxl
TGlzdChmaWxlcykpOwogfQogCi12b2lkIEZpbGVJbnB1dFR5cGU6OnVwZGF0ZVJlbmRlcmluZyhQ
YXNzUmVmUHRyPEljb24+IGljb24pCit2b2lkIEZpbGVJbnB1dFR5cGU6Omljb25Mb2FkZWQoUmVm
UHRyPEljb24+JiYgaWNvbikKIHsKICAgICBpZiAobV9pY29uID09IGljb24pCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1faWNvbiA9IGljb247CisgICAgbV9pY29uID0gV1RGTW92ZShpY29uKTsK
ICAgICBpZiAoZWxlbWVudCgpLnJlbmRlcmVyKCkpCiAgICAgICAgIGVsZW1lbnQoKS5yZW5kZXJl
cigpLT5yZXBhaW50KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJ
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCmluZGV4IGY4
YTBkZmYyZDhkM2MzMDVmMDFhMWRmOGM4OTFhMjkwZTM2NTYzZjEuLmQ5MGMyMzgyOTUwNDJlZWYy
NWM5NTMwZGFhODhmODQ1YjIwOWFhZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RmlsZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5o
CkBAIC01MCw0NSArNTAsNDUgQEAgcHVibGljOgogICAgIHN0YXRpYyBWZWN0b3I8RmlsZUNob29z
ZXJGaWxlSW5mbz4gZmlsZXNGcm9tRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0
YXRlJik7CiAKIHByaXZhdGU6Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5
cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJv
bFN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0
ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBhcHBlbmRGb3Jt
RGF0YShGb3JtRGF0YUxpc3QmLCBib29sKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIHZhbHVl
TWlzc2luZyhjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKLSAgICBTdHJpbmcgdmFsdWVN
aXNzaW5nVGV4dCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVF
dmVudChFdmVudCYpIG92ZXJyaWRlOwotICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYpIG92ZXJyaWRlOwotICAgIGJvb2wgY2FuU2V0
U3RyaW5nVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBGaWxlTGlzdCogZmlsZXMoKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KSBvdmVycmlkZTsK
KyAgICBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IGZpbmFsOwor
ICAgIEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdCBmaW5hbDsK
KyAgICB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUm
KSBmaW5hbDsKKyAgICBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIGNv
bnN0IGZpbmFsOworICAgIGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0IGZp
bmFsOworICAgIFN0cmluZyB2YWx1ZU1pc3NpbmdUZXh0KCkgY29uc3QgZmluYWw7CisgICAgdm9p
ZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikgZmluYWw7CisgICAgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUlucHV0UmVuZGVyZXIoUmVuZGVyU3R5bGUmJikgZmluYWw7Cisg
ICAgYm9vbCBjYW5TZXRTdHJpbmdWYWx1ZSgpIGNvbnN0IGZpbmFsOworICAgIEZpbGVMaXN0KiBm
aWxlcygpIGZpbmFsOworICAgIHZvaWQgc2V0RmlsZXMoUmVmUHRyPEZpbGVMaXN0PiYmKSBmaW5h
bDsKICNpZiBQTEFURk9STShJT1MpCi0gICAgU3RyaW5nIGRpc3BsYXlTdHJpbmcoKSBjb25zdCBv
dmVycmlkZTsKKyAgICBTdHJpbmcgZGlzcGxheVN0cmluZygpIGNvbnN0IGZpbmFsOwogI2VuZGlm
Ci0gICAgYm9vbCBjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKLSAgICBib29s
IGdldFR5cGVTcGVjaWZpY1ZhbHVlKFN0cmluZyYpIG92ZXJyaWRlOyAvLyBDaGVja2VkIGZpcnN0
LCBiZWZvcmUgaW50ZXJuYWwgc3RvcmFnZSBvciB0aGUgdmFsdWUgYXR0cmlidXRlLgotICAgIHZv
aWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2
ZW50QmVoYXZpb3IpIG92ZXJyaWRlOworICAgIGJvb2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5n
JikgZmluYWw7CisgICAgYm9vbCBnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKSBmaW5hbDsg
Ly8gQ2hlY2tlZCBmaXJzdCwgYmVmb3JlIGludGVybmFsIHN0b3JhZ2Ugb3IgdGhlIHZhbHVlIGF0
dHJpYnV0ZS4KKyAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFu
Z2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBmaW5hbDsKIAogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCi0gICAgYm9vbCByZWNlaXZlRHJvcHBlZEZpbGVzKGNvbnN0IERyYWdEYXRhJikgb3Zl
cnJpZGU7CisgICAgYm9vbCByZWNlaXZlRHJvcHBlZEZpbGVzKGNvbnN0IERyYWdEYXRhJikgZmlu
YWw7CiAjZW5kaWYKIAotICAgIEljb24qIGljb24oKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29s
IGlzRmlsZVVwbG9hZCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgY3JlYXRlU2hhZG93U3Vi
dHJlZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2VkKCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBtdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQoKSBvdmVycmlkZTsKLSAg
ICBTdHJpbmcgZGVmYXVsdFRvb2xUaXAoKSBjb25zdCBvdmVycmlkZTsKKyAgICBJY29uKiBpY29u
KCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBpc0ZpbGVVcGxvYWQoKSBjb25zdCBmaW5hbDsKKyAg
ICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBmaW5hbDsKKyAgICB2b2lkIGRpc2FibGVkQXR0
cmlidXRlQ2hhbmdlZCgpIGZpbmFsOworICAgIHZvaWQgbXVsdGlwbGVBdHRyaWJ1dGVDaGFuZ2Vk
KCkgZmluYWw7CisgICAgU3RyaW5nIGRlZmF1bHRUb29sVGlwKCkgY29uc3QgZmluYWw7CiAKICAg
ICAvLyBGaWxlQ2hvb3NlckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KLSAgICB2b2lkIGZpbGVzQ2hv
c2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYpIG92ZXJyaWRlOworICAgIHZv
aWQgZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JikgZmluYWw7
CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHZvaWQgZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZp
bGVDaG9vc2VyRmlsZUluZm8+JiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5U3RyaW5nLCBJY29uKikg
b3ZlcnJpZGU7CisgICAgdm9pZCBmaWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8RmlsZUNob29zZXJG
aWxlSW5mbz4mLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlTdHJpbmcsIEljb24qKSBmaW5hbDsKICNl
bmRpZgogCiAgICAgLy8gRmlsZUljb25Mb2FkZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCi0gICAg
dm9pZCB1cGRhdGVSZW5kZXJpbmcoUGFzc1JlZlB0cjxJY29uPikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBpY29uTG9hZGVkKFJlZlB0cjxJY29uPiYmKSBmaW5hbDsKIAotICAgIFBhc3NSZWZQdHI8Rmls
ZUxpc3Q+IGNyZWF0ZUZpbGVMaXN0KGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYg
ZmlsZXMpIGNvbnN0OworICAgIHN0YXRpYyBSZWY8RmlsZUxpc3Q+IGNyZWF0ZUZpbGVMaXN0KGNv
bnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYpOwogICAgIHZvaWQgcmVxdWVzdEljb24o
Y29uc3QgVmVjdG9yPFN0cmluZz4mKTsKIAogICAgIHZvaWQgYXBwbHlGaWxlQ2hvb3NlclNldHRp
bmdzKGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5jcHAKaW5kZXggZjRiZTcxNThjNTEwMDg1ODMwNTgwYjZhNzM4NTg3MjAzMDM5YTNkOS4uOWVk
YzYxMDU1NDUxNjQzMWU2NTk0N2IxNzQwMjdiMWIxNGYzMWRjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAKQEAgLTc1Miw3ICs3NTIsNyBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gSFRNTEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxl
LAogICAgIHJldHVybiBSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIFdURk1vdmUoc3R5
bGUpKTsKIH0KIAotSFRNTEZvcm1FbGVtZW50KiBIVE1MRWxlbWVudDo6dmlydHVhbEZvcm0oKSBj
b25zdAorSFRNTEZvcm1FbGVtZW50KiBIVE1MRWxlbWVudDo6Zm9ybSgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIEhUTUxGb3JtRWxlbWVudDo6ZmluZENsb3Nlc3RGb3JtQW5jZXN0b3IoKnRoaXMpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCmluZGV4IDM5ZDRjYjcyYjY3NjM3Mjc3NTkxMTI2
YThhMTUyNTA1NDAyZGZlMGMuLjAyZDA3ZWQ4MDUwZTkxMjkwYWVhNDJkMGJjMjc1MjdjY2Q0NGFj
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGlj
OgogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRl
OwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVu
ZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKLSAgICBI
VE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCB7IHJldHVybiB2aXJ0dWFsRm9ybSgpOyB9Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdDsK
IAogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IEF0b21pY1N0cmluZyYgZGlyKCkgY29uc3Q7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREaXIoY29uc3QgQXRvbWljU3RyaW5nJik7CkBAIC0x
MzMsOCArMTMzLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbWFwTGFuZ3VhZ2VBdHRyaWJ1dGVU
b0xvY2FsZShjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJik7CiAK
LSAgICB2aXJ0dWFsIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25zdDsKLQogICAg
IEV4Y2VwdGlvbk9yPFJlZjxEb2N1bWVudEZyYWdtZW50Pj4gdGV4dFRvRnJhZ21lbnQoY29uc3Qg
U3RyaW5nJik7CiAKICAgICB2b2lkIGRpckF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgQXRvbWljU3Ry
aW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNw
cAppbmRleCA4NDUxNmNiNjI0NGMzM2IxZjcwNWUwNmRlMjgyMmFlYTExZTUxYmQ4Li43YmZlY2Vi
YTcwMDdiM2RmZDNjYzZjY2M3YWViZjgxOWJiMWIyMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTU5MywxMSArNTkzLDYgQEAgdm9p
ZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVudChSZWZQdHI8RWxlbWVu
dD4mJiBuZXdGb2N1c2VkRWxlbWUKICAgICBoaWRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlKCk7
CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTEZvcm1Db250cm9sRWxlbWVudDo6dmlydHVhbEZv
cm0oKSBjb25zdAotewotICAgIHJldHVybiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm0oKTsK
LX0KLQogI2lmIEVOQUJMRShJT1NfQVVUT0NPUlJFQ1RfQU5EX0FVVE9DQVBJVEFMSVpFKQogCiAv
LyBGSVhNRTogV2Ugc2hvdWxkIGxvb2sgdG8gc2hhcmUgdGhpcyBjb2RlIHdpdGggY2xhc3MgSFRN
TEZvcm1FbGVtZW50IGluc3RlYWQgb2YgZHVwbGljYXRpbmcgdGhlIGxvZ2ljLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCA0ZmY0ODk0ZjM1ZmU2
MWQyZWRmMGMwODU1ZTkyMjQ0YWNkYzVjNGZjLi5lMTUzNWM2M2VjOTczYzVjZTUwYWY0YTdkOWIx
NjljYjQ4M2E3MGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuaApAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IDog
cHVibGljIExhYmVsYWJsZUVsZW1lbnQsIHB1YmxpYyBGb3JtQXNzb2NpYXRlZEVsZQogcHVibGlj
OgogICAgIHZpcnR1YWwgfkhUTUxGb3JtQ29udHJvbEVsZW1lbnQoKTsKIAotICAgIEhUTUxGb3Jt
RWxlbWVudCogZm9ybSgpIGNvbnN0IHsgcmV0dXJuIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9y
bSgpOyB9CisgICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtKCk7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0
cmluZyBmb3JtRW5jdHlwZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Rm9y
bUVuY3R5cGUoY29uc3QgU3RyaW5nJik7CkBAIC0xNjksNyArMTY5LDYgQEAgcHJpdmF0ZToKIAog
ICAgIGludCB0YWJJbmRleCgpIGNvbnN0IGZpbmFsOwogCi0gICAgSFRNTEZvcm1FbGVtZW50KiB2
aXJ0dWFsRm9ybSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNWYWxpZEZvcm1Db250cm9s
RWxlbWVudCgpIGNvbnN0OwogCiAgICAgYm9vbCBjb21wdXRlSXNEaXNhYmxlZEJ5RmllbGRzZXRB
bmNlc3RvcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAK
aW5kZXggZDQzZDRlZjllMDExOTI2ZDBlOGEwZWJkZWM4NzUyZDNlZmZkZmMyNC4uMTQ0ODM4OWE0
YWZkODI1MDY3N2E2MjJiMTk1OTE3MmM5YTc5M2E1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xMTg0LDEwICsxMTg0LDkgQEAgdm9pZCBIVE1MSW5wdXRF
bGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKICAgICAgICAgaWYgKHdh
c0NoYW5nZWRTaW5jZUxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50KCkpCiAgICAgICAgICAgICBk
aXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKIAotICAgICAgICBSZWZQdHI8SFRNTEZv
cm1FbGVtZW50PiBmb3JtRm9yU3VibWlzc2lvbiA9IG1faW5wdXRUeXBlLT5mb3JtRm9yU3VibWlz
c2lvbigpOwogICAgICAgICAvLyBGb3JtIG1heSBuZXZlciBoYXZlIGJlZW4gcHJlc2VudCwgb3Ig
bWF5IGhhdmUgYmVlbiBkZXN0cm95ZWQgYnkgY29kZSByZXNwb25kaW5nIHRvIHRoZSBjaGFuZ2Ug
ZXZlbnQuCi0gICAgICAgIGlmIChmb3JtRm9yU3VibWlzc2lvbikKLSAgICAgICAgICAgIGZvcm1G
b3JTdWJtaXNzaW9uLT5zdWJtaXRJbXBsaWNpdGx5KGV2ZW50LCBjYW5UcmlnZ2VySW1wbGljaXRT
dWJtaXNzaW9uKCkpOworICAgICAgICBpZiAoYXV0byogZm9ybUVsZW1lbnQgPSBmb3JtKCkpCisg
ICAgICAgICAgICBmb3JtRWxlbWVudC0+c3VibWl0SW1wbGljaXRseShldmVudCwgY2FuVHJpZ2dl
ckltcGxpY2l0U3VibWlzc2lvbigpKTsKIAogICAgICAgICBldmVudC5zZXREZWZhdWx0SGFuZGxl
ZCgpOwogICAgICAgICByZXR1cm47CkBAIC0xMzQyLDkgKzEzNDEsOSBAQCBGaWxlTGlzdCogSFRN
TElucHV0RWxlbWVudDo6ZmlsZXMoKQogICAgIHJldHVybiBtX2lucHV0VHlwZS0+ZmlsZXMoKTsK
IH0KIAotdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0
PiBmaWxlcykKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0RmlsZXMoUmVmUHRyPEZpbGVMaXN0
PiYmIGZpbGVzKQogewotICAgIG1faW5wdXRUeXBlLT5zZXRGaWxlcyhmaWxlcyk7CisgICAgbV9p
bnB1dFR5cGUtPnNldEZpbGVzKFdURk1vdmUoZmlsZXMpKTsKIH0KIAogI2lmIEVOQUJMRShEUkFH
X1NVUFBPUlQpCkBAIC0xODY5LDcgKzE4NjgsNyBAQCBSYWRpb0J1dHRvbkdyb3VwcyogSFRNTElu
cHV0RWxlbWVudDo6cmFkaW9CdXR0b25Hcm91cHMoKSBjb25zdAogewogICAgIGlmICghaXNSYWRp
b0J1dHRvbigpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBpZiAoSFRNTEZvcm1FbGVt
ZW50KiBmb3JtRWxlbWVudCA9IGZvcm0oKSkKKyAgICBpZiAoYXV0byogZm9ybUVsZW1lbnQgPSBm
b3JtKCkpCiAgICAgICAgIHJldHVybiAmZm9ybUVsZW1lbnQtPnJhZGlvQnV0dG9uR3JvdXBzKCk7
CiAgICAgaWYgKGluRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuICZkb2N1bWVudCgpLmZvcm1D
b250cm9sbGVyKCkucmFkaW9CdXR0b25Hcm91cHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmgKaW5kZXggOGFmZmQ5ODExNzU0ZDllNDkyMzYyNTZlNjU1ZDZkYTU1ODNmNTZk
Ni4uMTk5OTJiNTQ5MGJjYjRjMWY5NzY2MTZiOGRkY2RiMDQ3Y2Q5ZGM0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTIzOCw3ICsyMzgsNyBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTaG93QXV0b0ZpbGxCdXR0b24oQXV0b0ZpbGxCdXR0
b25UeXBlKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIEZpbGVMaXN0KiBmaWxlcygpOwotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4pOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0RmlsZXMoUmVmUHRyPEZpbGVMaXN0PiYmKTsKIAogI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBEcmFn
RGF0YSBoYXMgbW9yZSB0aGFuIG9uZSBkcm9wcGVkIGZpbGVzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExhYmVsRWxlbWVudC5jcHAKaW5kZXggYzJkMTg1YzMxMGEwYjkyYjkyMGU5NzUxMDRjYTFj
ZWI4NTUwNWZhZC4uOGI3OTNhZmQ4YzU1ZWM3OWQzZTdlMmU2ZjFjMzdlNDgyNWM1Njc4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCkBAIC02MywzMCArNjMsMjgg
QEAgYm9vbCBIVE1MTGFiZWxFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1MYWJlbGFibGVFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9s
KCkKK0xhYmVsYWJsZUVsZW1lbnQqIEhUTUxMYWJlbEVsZW1lbnQ6OmNvbnRyb2woKSBjb25zdAog
ewotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgY29udHJvbElkID0gYXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihmb3JBdHRyKTsKKyAgICBhdXRvJiBjb250cm9sSWQgPSBhdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKGZvckF0dHIpOwogICAgIGlmIChjb250cm9sSWQuaXNOdWxs
KCkpIHsKICAgICAgICAgLy8gU2VhcmNoIHRoZSBjaGlsZHJlbiBhbmQgZGVzY2VuZGFudHMgb2Yg
dGhlIGxhYmVsIGVsZW1lbnQgZm9yIGEgZm9ybSBlbGVtZW50LgogICAgICAgICAvLyBwZXIgaHR0
cDovL2Rldi53My5vcmcvaHRtbDUvc3BlYy9PdmVydmlldy5odG1sI3RoZS1sYWJlbC1lbGVtZW50
CiAgICAgICAgIC8vIHRoZSBmb3JtIGVsZW1lbnQgbXVzdCBiZSAibGFiZWxhYmxlIGZvcm0tYXNz
b2NpYXRlZCBlbGVtZW50Ii4KICAgICAgICAgZm9yIChhdXRvJiBsYWJlbGFibGVFbGVtZW50IDog
ZGVzY2VuZGFudHNPZlR5cGU8TGFiZWxhYmxlRWxlbWVudD4oKnRoaXMpKSB7CiAgICAgICAgICAg
ICBpZiAobGFiZWxhYmxlRWxlbWVudC5zdXBwb3J0TGFiZWxzKCkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuICZsYWJlbGFibGVFbGVtZW50OworICAgICAgICAgICAgICAgIHJldHVybiBjb25zdF9j
YXN0PExhYmVsYWJsZUVsZW1lbnQqPigmbGFiZWxhYmxlRWxlbWVudCk7CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIAogICAgIHJldHVybiBpbkRvY3VtZW50
KCkgPyBmaXJzdEVsZW1lbnRXaXRoSWRJZkxhYmVsYWJsZSh0cmVlU2NvcGUoKSwgY29udHJvbElk
KSA6IG51bGxwdHI7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTExhYmVsRWxlbWVudDo6Zm9y
bSgpCitIVE1MRm9ybUVsZW1lbnQqIEhUTUxMYWJlbEVsZW1lbnQ6OmZvcm0oKSBjb25zdAogewot
ICAgIGF1dG8qIGxhYmVsZWRDb250cm9sID0gY29udHJvbCgpOwotICAgIGlmICghbGFiZWxlZENv
bnRyb2wpCisgICAgYXV0byogY29udHJvbCA9IHRoaXMtPmNvbnRyb2woKTsKKyAgICBpZiAoIWlz
PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KGNvbnRyb2wpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLQotICAgIHJldHVybiBpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PigqbGFiZWxlZENvbnRy
b2wpID8gZG93bmNhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oKmxhYmVsZWRDb250cm9sKS5m
b3JtKCkgOiBudWxscHRyOworICAgIHJldHVybiBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50PigqY29udHJvbCkuZm9ybSgpOwogfQogCiB2b2lkIEhUTUxMYWJlbEVsZW1lbnQ6OnNldEFj
dGl2ZShib29sIGRvd24sIGJvb2wgcGF1c2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMYWJlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxl
bWVudC5oCmluZGV4IDE0ZGRjMDgzYTYxOGU0NzdmMzIxYTUxNzZhZDYxMDNhZTkyOTZkMDYuLjll
MDU2MGIzNTlhYjNhNjhjOGM5MzcwMzZmOTIzZDU1YjI3Yzc3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExhYmVsRWxlbWVudC5oCkBAIC0zMSw4ICszMSw4IEBAIGNsYXNzIEhUTUxMYWJlbEVs
ZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8SFRNTExhYmVsRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgTGFiZWxhYmxlRWxlbWVudCogY29udHJvbCgpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpOworICAgIFdFQkNPUkVf
RVhQT1JUIExhYmVsYWJsZUVsZW1lbnQqIGNvbnRyb2woKSBjb25zdDsKKyAgICBXRUJDT1JFX0VY
UE9SVCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgd2ls
bFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMZWdlbmRFbGVtZW50LmNwcAppbmRleCBlYTc5NzM1ODY2MTBlZjdkOWFmMzM3YzFiYTdl
OTUzMTU5ZTQzNzZlLi40NmI1NmQ1YTBkNmI4NzEzNjM2ZGFlMzZmOWI4NGM2YTc2Yjk5NDNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcg
QEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICog
ICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICog
ICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChh
cEBueXBvcC5jb20pCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzEsMTMgKzMxLDEwIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKLQotCiBpbmxpbmUgSFRN
TExlZ2VuZEVsZW1lbnQ6OkhUTUxMZWdlbmRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KQogewotICAgIEFTU0VSVChoYXNUYWdOYW1lKGxlZ2VuZFRhZykpOworICAgIEFTU0VS
VChoYXNUYWdOYW1lKEhUTUxOYW1lczo6bGVnZW5kVGFnKSk7CiB9CiAKIFJlZjxIVE1MTGVnZW5k
RWxlbWVudD4gSFRNTExlZ2VuZEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC02MSwyNyArNTgsMjYgQEAgdm9pZCBIVE1M
TGVnZW5kRWxlbWVudDo6Zm9jdXMoYm9vbCwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogewog
ICAgIGlmIChpc0ZvY3VzYWJsZSgpKQogICAgICAgICBFbGVtZW50Ojpmb2N1cyh0cnVlLCBkaXJl
Y3Rpb24pOwotICAgICAgICAKKwogICAgIC8vIFRvIG1hdGNoIG90aGVyIGJyb3dzZXJzJyBiZWhh
dmlvciwgbmV2ZXIgcmVzdG9yZSBwcmV2aW91cyBzZWxlY3Rpb24uCi0gICAgaWYgKEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQqIGNvbnRyb2wgPSBhc3NvY2lhdGVkQ29udHJvbCgpKQorICAgIGlmIChh
dXRvKiBjb250cm9sID0gYXNzb2NpYXRlZENvbnRyb2woKSkKICAgICAgICAgY29udHJvbC0+Zm9j
dXMoZmFsc2UsIGRpcmVjdGlvbik7CiB9CiAKIHZvaWQgSFRNTExlZ2VuZEVsZW1lbnQ6OmFjY2Vz
c0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKIHsKLSAgICBpZiAoSFRNTEZvcm1Db250
cm9sRWxlbWVudCogY29udHJvbCA9IGFzc29jaWF0ZWRDb250cm9sKCkpCisgICAgaWYgKGF1dG8q
IGNvbnRyb2wgPSBhc3NvY2lhdGVkQ29udHJvbCgpKQogICAgICAgICBjb250cm9sLT5hY2Nlc3NL
ZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsKIH0KIAotSFRNTEZvcm1FbGVtZW50KiBIVE1MTGVn
ZW5kRWxlbWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAorSFRNTEZvcm1FbGVtZW50KiBIVE1MTGVn
ZW5kRWxlbWVudDo6Zm9ybSgpIGNvbnN0CiB7CiAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBzcGVj
aWZpY2F0aW9uLCBJZiB0aGUgbGVnZW5kIGhhcyBhIGZpZWxkc2V0IGVsZW1lbnQgYXMKICAgICAv
LyBpdHMgcGFyZW50LCB0aGVuIHRoZSBmb3JtIGF0dHJpYnV0ZSBtdXN0IHJldHVybiB0aGUgc2Ft
ZSB2YWx1ZSBhcyB0aGUKICAgICAvLyBmb3JtIGF0dHJpYnV0ZSBvbiB0aGF0IGZpZWxkc2V0IGVs
ZW1lbnQuIE90aGVyd2lzZSwgaXQgbXVzdCByZXR1cm4gbnVsbC4KLSAgICBDb250YWluZXJOb2Rl
KiBmaWVsZHNldCA9IHBhcmVudE5vZGUoKTsKKyAgICBhdXRvKiBmaWVsZHNldCA9IHBhcmVudE5v
ZGUoKTsKICAgICBpZiAoIWlzPEhUTUxGaWVsZFNldEVsZW1lbnQ+KGZpZWxkc2V0KSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0KICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTEZpZWxkU2V0RWxl
bWVudD4oKmZpZWxkc2V0KS5mb3JtKCk7CiB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
ZWdlbmRFbGVtZW50LmgKaW5kZXggMDM4Y2M5YTE3NmViYzBkNzA2MmU2MGU1Yzk1OWExNWU4Mzg0
NmYyZi4uOGIyN2Q5OTYzMjA2MWJlNTllYmEwNzYwMmJlNjgyMGM2MmRmZDlhZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHly
aWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChD
KSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChD
KSAyMDAwIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzMsMTUgKzMzLDE2IEBAIGNsYXNzIEhUTUxMZWdlbmRF
bGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPEhUTUxMZWdlbmRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25z
dCBmaW5hbDsKKwogcHJpdmF0ZToKICAgICBIVE1MTGVnZW5kRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIC8vIENvbnRyb2wgaW4gdGhlIGxlZ2VuZCdzIGZp
ZWxkc2V0IHRoYXQgZ2V0cyBmb2N1cyBhbmQgYWNjZXNzIGtleS4KKyAgICAvLyBDb250cm9sIGlu
IHRoZSBsZWdlbmQncyBmaWVsZCBzZXQgdGhhdCBnZXRzIGZvY3VzIGFuZCBhY2Nlc3Mga2V5Lgog
ICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGFzc29jaWF0ZWRDb250cm9sKCk7CiAKICAgICB2
b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7CiAgICAgdm9p
ZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24pIGZp
bmFsOwotICAgIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25zdCBmaW5hbDsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCmluZGV4IDA4NGVmYzc4MDU0M2ZlZGQyMTRlOTU0Njc5ODUxYzlkNzY1NjU0NjMu
LjY5MTBjYjQxMDMyNjAxOGZmMzY1MTRmNGMwMWRlZjI5NGI0ZjcwNzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMjY5LDIyICsyNjksMjMgQEAgc3RhdGlj
IHZvaWQgcmVtb3ZlRWxlbWVudEZyb21Eb2N1bWVudE1hcChIVE1MTWVkaWFFbGVtZW50JiBlbGVt
ZW50LCBEb2N1bWVudCYgZG8KIH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKKwogY2xhc3Mg
VHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgewogcHVibGljOgotICAgIFRyYWNrRGlzcGxheVVwZGF0
ZVNjb3BlKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKKyAgICBUcmFja0Rpc3BsYXlV
cGRhdGVTY29wZShIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQorICAgICAgICA6IG1fZWxlbWVu
dChlbGVtZW50KQogICAgIHsKLSAgICAgICAgbV9tZWRpYUVsZW1lbnQgPSBtZWRpYUVsZW1lbnQ7
Ci0gICAgICAgIG1fbWVkaWFFbGVtZW50LT5iZWdpbklnbm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRl
UmVxdWVzdHMoKTsKKyAgICAgICAgbV9lbGVtZW50LmJlZ2luSWdub3JpbmdUcmFja0Rpc3BsYXlV
cGRhdGVSZXF1ZXN0cygpOwogICAgIH0KICAgICB+VHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUoKQog
ICAgIHsKLSAgICAgICAgQVNTRVJUKG1fbWVkaWFFbGVtZW50KTsKLSAgICAgICAgbV9tZWRpYUVs
ZW1lbnQtPmVuZElnbm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKTsKKyAgICAgICAg
bV9lbGVtZW50LmVuZElnbm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKTsKICAgICB9
CiAgICAgCiBwcml2YXRlOgotICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1fbWVkaWFFbGVtZW50Owor
ICAgIEhUTUxNZWRpYUVsZW1lbnQmIG1fZWxlbWVudDsKIH07CisKICNlbmRpZgogCiBzdHJ1Y3Qg
SFRNTE1lZGlhRWxlbWVudDo6VHJhY2tHcm91cCB7CkBAIC0xNTU0LDcgKzE1NTUsNyBAQCBzdGF0
aWMgYm9vbCBldmVudFRpbWVDdWVDb21wYXJlKGNvbnN0IHN0ZDo6cGFpcjxNZWRpYVRpbWUsIFRl
eHRUcmFja0N1ZSo+JiBhLCBjbwogICAgIC8vIDEyIC0gRnVydGhlciBzb3J0IHRhc2tzIGluIGV2
ZW50cyB0aGF0IGhhdmUgdGhlIHNhbWUgdGltZSBieSB0aGUKICAgICAvLyByZWxhdGl2ZSB0ZXh0
IHRyYWNrIGN1ZSBvcmRlciBvZiB0aGUgdGV4dCB0cmFjayBjdWVzIGFzc29jaWF0ZWQKICAgICAv
LyB3aXRoIHRoZXNlIHRhc2tzLgotICAgIHJldHVybiBhLnNlY29uZC0+Y3VlSW5kZXgoKSAtIGIu
c2Vjb25kLT5jdWVJbmRleCgpIDwgMDsKKyAgICByZXR1cm4gYS5zZWNvbmQtPmlzT3JkZXJlZEJl
Zm9yZShiLnNlY29uZCk7CiB9CiAKIHN0YXRpYyBib29sIGNvbXBhcmVDdWVJbnRlcnZhbChjb25z
dCBDdWVJbnRlcnZhbCYgb25lLCBjb25zdCBDdWVJbnRlcnZhbCYgdHdvKQpAQCAtMTgxNywyMiAr
MTgxOCwyMSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlYWR5U3RhdGVDaGFu
Z2VkKFRleHRUcmFjayogdHJhY2spCiAgICAgfQogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKiB0cmFjaykKK3ZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2smIHRyYWNrKQog
ewotICAgIEFTU0VSVCh0cmFjayk7Ci0gICAgaWYgKG1fYXVkaW9UcmFja3MgJiYgbV9hdWRpb1Ry
YWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV9hdWRpb1RyYWNrcyAmJiBtX2F1ZGlv
VHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fYXVkaW9UcmFja3MtPnNjaGVkdWxl
Q2hhbmdlRXZlbnQoKTsKICAgICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgcmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0
ZXJGaXJzdFVzZXJHZXN0dXJlKE1lZGlhRWxlbWVudFNlc3Npb246OkFsbFJlc3RyaWN0aW9ucyAm
IH5NZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250cm9s
c01hbmFnZXIpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja01vZGVDaGFu
Z2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja01v
ZGVDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7CiAgICAgYm9vbCB0cmFja0lzTG9hZGVkID0g
dHJ1ZTsKLSAgICBpZiAodHJhY2stPnRyYWNrVHlwZSgpID09IFRleHRUcmFjazo6VHJhY2tFbGVt
ZW50KSB7CisgICAgaWYgKHRyYWNrLnRyYWNrVHlwZSgpID09IFRleHRUcmFjazo6VHJhY2tFbGVt
ZW50KSB7CiAgICAgICAgIHRyYWNrSXNMb2FkZWQgPSBmYWxzZTsKICAgICAgICAgZm9yIChhdXRv
JiB0cmFja0VsZW1lbnQgOiBjaGlsZHJlbk9mVHlwZTxIVE1MVHJhY2tFbGVtZW50PigqdGhpcykp
IHsKLSAgICAgICAgICAgIGlmICgmdHJhY2tFbGVtZW50LnRyYWNrKCkgPT0gdHJhY2spIHsKKyAg
ICAgICAgICAgIGlmICgmdHJhY2tFbGVtZW50LnRyYWNrKCkgPT0gJnRyYWNrKSB7CiAgICAgICAg
ICAgICAgICAgaWYgKHRyYWNrRWxlbWVudC5yZWFkeVN0YXRlKCkgPT0gSFRNTFRyYWNrRWxlbWVu
dDo6TE9BRElORyB8fCB0cmFja0VsZW1lbnQucmVhZHlTdGF0ZSgpID09IEhUTUxUcmFja0VsZW1l
bnQ6OkxPQURFRCkKICAgICAgICAgICAgICAgICAgICAgdHJhY2tJc0xvYWRlZCA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xODQ1LDMzICsxODQ1LDMyIEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykKICAgICAg
ICAgbV90ZXh0VHJhY2tzID0gVGV4dFRyYWNrTGlzdDo6Y3JlYXRlKHRoaXMsIEFjdGl2ZURPTU9i
amVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICAKICAgICAvLyBNYXJrIHRoaXMg
dHJhY2sgYXMgImNvbmZpZ3VyZWQiIHNvIGNvbmZpZ3VyZVRleHRUcmFja3Mgd29uJ3QgY2hhbmdl
IHRoZSBtb2RlIGFnYWluLgotICAgIHRyYWNrLT5zZXRIYXNCZWVuQ29uZmlndXJlZCh0cnVlKTsK
KyAgICB0cmFjay5zZXRIYXNCZWVuQ29uZmlndXJlZCh0cnVlKTsKICAgICAKLSAgICBpZiAodHJh
Y2stPm1vZGUoKSAhPSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkICYmIHRyYWNrSXNMb2FkZWQp
Ci0gICAgICAgIHRleHRUcmFja0FkZEN1ZXModHJhY2ssIHRyYWNrLT5jdWVzKCkpOworICAgIGlm
ICh0cmFjay5tb2RlKCkgIT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCAmJiB0cmFja0lzTG9h
ZGVkKQorICAgICAgICB0ZXh0VHJhY2tBZGRDdWVzKHRyYWNrLCAqdHJhY2suY3VlcygpKTsKIAog
ICAgIGNvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkoQXNzdW1lVGV4dFRyYWNrVmlzaWJpbGl0eUNo
YW5nZWQpOwogCi0gICAgaWYgKG1fdGV4dFRyYWNrcyAmJiBtX3RleHRUcmFja3MtPmNvbnRhaW5z
KCp0cmFjaykpCisgICAgaWYgKG1fdGV4dFRyYWNrcyAmJiBtX3RleHRUcmFja3MtPmNvbnRhaW5z
KHRyYWNrKSkKICAgICAgICAgbV90ZXh0VHJhY2tzLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAK
ICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQotICAgIGlmICh0cmFjay0+dHJhY2tUeXBlKCkgPT0g
VGV4dFRyYWNrOjpUcmFja0VsZW1lbnQgJiYgbV9wbGF5ZXIpCisgICAgaWYgKHRyYWNrLnRyYWNr
VHlwZSgpID09IFRleHRUcmFjazo6VHJhY2tFbGVtZW50ICYmIG1fcGxheWVyKQogICAgICAgICBt
X3BsYXllci0+bm90aWZ5VHJhY2tNb2RlQ2hhbmdlZCgpOwogI2VuZGlmCiB9CiAKLXZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrKiB0cmFj
aykKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRl
b1RyYWNrJiB0cmFjaykKIHsKLSAgICBBU1NFUlQodHJhY2spOwotICAgIGlmIChtX3ZpZGVvVHJh
Y2tzICYmIG1fdmlkZW9UcmFja3MtPmNvbnRhaW5zKCp0cmFjaykpCisgICAgaWYgKG1fdmlkZW9U
cmFja3MgJiYgbV92aWRlb1RyYWNrcy0+Y29udGFpbnModHJhY2spKQogICAgICAgICBtX3ZpZGVv
VHJhY2tzLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykKK3ZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykKIHsKLSAgICBp
ZiAodHJhY2stPmtpbmQoKSAhPSBUZXh0VHJhY2s6OktpbmQ6OkNhcHRpb25zICYmIHRyYWNrLT5r
aW5kKCkgIT0gVGV4dFRyYWNrOjpLaW5kOjpTdWJ0aXRsZXMgJiYgdHJhY2stPm1vZGUoKSA9PSBU
ZXh0VHJhY2s6Ok1vZGU6OlNob3dpbmcpCi0gICAgICAgIHRyYWNrLT5zZXRNb2RlKFRleHRUcmFj
azo6TW9kZTo6SGlkZGVuKTsKKyAgICBpZiAodHJhY2sua2luZCgpICE9IFRleHRUcmFjazo6S2lu
ZDo6Q2FwdGlvbnMgJiYgdHJhY2sua2luZCgpICE9IFRleHRUcmFjazo6S2luZDo6U3VidGl0bGVz
ICYmIHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OlNob3dpbmcpCisgICAgICAgIHRy
YWNrLnNldE1vZGUoVGV4dFRyYWNrOjpNb2RlOjpIaWRkZW4pOwogfQogCiB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmJlZ2luSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpCkBAIC0x
ODg3LDI2ICsxODg2LDI4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW5kSWdub3JpbmdUcmFj
a0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpCiAgICAgICAgIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1
ZXMoY3VycmVudE1lZGlhVGltZSgpKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0
VHJhY2tBZGRDdWVzKFRleHRUcmFjayogdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1
ZXMpIAordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYg
dHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZXMpCiB7Ci0gICAgaWYgKHRyYWNrLT5t
b2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCkKKyAgICBpZiAodHJhY2subW9kZSgp
ID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFRy
YWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlKHRoaXMpOwotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgY3Vlcy0+bGVuZ3RoKCk7ICsraSkKLSAgICAgICAgdGV4dFRyYWNrQWRkQ3VlKHRyYWNr
LCAqY3Vlcy0+aXRlbShpKSk7CisgICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUgeyAq
dGhpcyB9OworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjdWVzLmxlbmd0aCgpOyArK2kp
CisgICAgICAgIHRleHRUcmFja0FkZEN1ZSh0cmFjaywgKmN1ZXMuaXRlbShpKSk7CiB9CiAKLXZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBjb25z
dCBUZXh0VHJhY2tDdWVMaXN0KiBjdWVzKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJh
Y2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZXMpCiB7
Ci0gICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUodGhpcyk7Ci0gICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBjdWVzLT5sZW5ndGgoKTsgKytpKQotICAgICAgICB0ZXh0VHJhY2tSZW1v
dmVDdWUoY3Vlcy0+aXRlbShpKS0+dHJhY2soKSwgKmN1ZXMtPml0ZW0oaSkpOworICAgIFRyYWNr
RGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlIHsgKnRoaXMgfTsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgY3Vlcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgIGF1dG8mIGN1ZSA9ICpjdWVz
Lml0ZW0oaSk7CisgICAgICAgIHRleHRUcmFja1JlbW92ZUN1ZSgqY3VlLnRyYWNrKCksIGN1ZSk7
CisgICAgfQogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZShUZXh0
VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
dGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYgdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogewot
ICAgIGlmICh0cmFjay0+bW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQpCisgICAg
aWYgKHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkKQogICAgICAgICBy
ZXR1cm47CiAKICAgICAvLyBOZWdhdGl2ZSBkdXJhdGlvbiBjdWVzIG5lZWQgYmUgdHJlYXRlZCBp
biB0aGUgaW50ZXJ2YWwgdHJlZSBhcwpAQCAtMTkxOSw3ICsxOTIwLDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRyYWNrQ3Vl
JiBjdWUpCiAgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcyhjdXJyZW50TWVkaWFUaW1lKCkp
OwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJh
Y2sqLCBUZXh0VHJhY2tDdWUmIGN1ZSkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNr
UmVtb3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYgY3VlKQogewogICAgIC8vIE5lZ2F0
aXZlIGR1cmF0aW9uIGN1ZXMgbmVlZCB0byBiZSB0cmVhdGVkIGluIHRoZSBpbnRlcnZhbCB0cmVl
IGFzCiAgICAgLy8gemVyby1sZW5ndGggY3Vlcy4KQEAgLTMyMTIsNiArMzIxMyw3IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6cGF1c2VJbnRlcm5hbCgpCiB9CiAKICNpZiBFTkFCTEUoTUVESUFf
U09VUkNFKQorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRldGFjaE1lZGlhU291cmNlKCkKIHsK
ICAgICBpZiAoIW1fbWVkaWFTb3VyY2UpCkBAIC0zMjIwLDYgKzMyMjIsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmRldGFjaE1lZGlhU291cmNlKCkKICAgICBtX21lZGlhU291cmNlLT5kZXRh
Y2hGcm9tRWxlbWVudCgqdGhpcyk7CiAgICAgbV9tZWRpYVNvdXJjZSA9IG51bGxwdHI7CiB9CisK
ICNlbmRpZgogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Omxvb3AoKSBjb25zdApAQCAtMzUwOCwx
NCArMzUxMSwxNCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkQWRkQXVk
aW9UcmFjayhBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2spCiAgICAgaWYgKGlzUGxheWluZygpICYm
ICFtX21lZGlhU2Vzc2lvbi0+cGxheWJhY2tQZXJtaXR0ZWQoKnRoaXMpKQogICAgICAgICBwYXVz
ZUludGVybmFsKCk7CiAKLSAgICBhZGRBdWRpb1RyYWNrKEF1ZGlvVHJhY2s6OmNyZWF0ZSh0aGlz
LCAmdHJhY2spKTsKKyAgICBhZGRBdWRpb1RyYWNrKEF1ZGlvVHJhY2s6OmNyZWF0ZSgqdGhpcywg
dHJhY2spKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckRpZEFkZFRl
eHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFjaykKIHsKICAgICAvLyA0LjguMTAu
MTIuMiBTb3VyY2luZyBpbi1iYW5kIHRleHQgdHJhY2tzCiAgICAgLy8gMS4gQXNzb2NpYXRlIHRo
ZSByZWxldmFudCBkYXRhIHdpdGggYSBuZXcgdGV4dCB0cmFjayBhbmQgaXRzIGNvcnJlc3BvbmRp
bmcgbmV3IFRleHRUcmFjayBvYmplY3QuCi0gICAgUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gdGV4
dFRyYWNrID0gSW5iYW5kVGV4dFRyYWNrOjpjcmVhdGUoQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCksIHRoaXMsICZ0cmFjayk7CisgICAgYXV0byB0ZXh0VHJhY2sgPSBJ
bmJhbmRUZXh0VHJhY2s6OmNyZWF0ZSgqQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksICp0aGlzLCB0cmFjayk7CiAgICAgdGV4dFRyYWNrLT5zZXRNZWRpYUVsZW1lbnQo
dGhpcyk7CiAgICAgCiAgICAgLy8gMi4gU2V0IHRoZSBuZXcgdGV4dCB0cmFjaydzIGtpbmQsIGxh
YmVsLCBhbmQgbGFuZ3VhZ2UgYmFzZWQgb24gdGhlIHNlbWFudGljcyBvZiB0aGUgcmVsZXZhbnQg
ZGF0YSwKQEAgLTM1NDEsMTIgKzM1NDQsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllckRpZEFkZFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFjaykKICAg
ICAvLyA5LiBGaXJlIGFuIGV2ZW50IHdpdGggdGhlIG5hbWUgYWRkdHJhY2ssIHRoYXQgZG9lcyBu
b3QgYnViYmxlIGFuZCBpcyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tF
dmVudAogICAgIC8vIGludGVyZmFjZSwgd2l0aCB0aGUgdHJhY2sgYXR0cmlidXRlIGluaXRpYWxp
emVkIHRvIHRoZSB0ZXh0IHRyYWNrJ3MgVGV4dFRyYWNrIG9iamVjdCwgYXQgdGhlIG1lZGlhIGVs
ZW1lbnQncwogICAgIC8vIHRleHRUcmFja3MgYXR0cmlidXRlJ3MgVGV4dFRyYWNrTGlzdCBvYmpl
Y3QuCi0gICAgYWRkVGV4dFRyYWNrKHRleHRUcmFjay5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICBh
ZGRUZXh0VHJhY2soV1RGTW92ZSh0ZXh0VHJhY2spKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjptZWRpYVBsYXllckRpZEFkZFZpZGVvVHJhY2soVmlkZW9UcmFja1ByaXZhdGUmIHRyYWNr
KQogewotICAgIGFkZFZpZGVvVHJhY2soVmlkZW9UcmFjazo6Y3JlYXRlKHRoaXMsICZ0cmFjaykp
OworICAgIGFkZFZpZGVvVHJhY2soVmlkZW9UcmFjazo6Y3JlYXRlKCp0aGlzLCB0cmFjaykpOwog
fQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkUmVtb3ZlQXVkaW9UcmFj
ayhBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2spCkBAIC0zNjAzLDkgKzM2MDYsOSBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnJlbW92ZUF1ZGlvVHJhY2soQXVkaW9UcmFjayYgdHJhY2spCiAKIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlVGV4dFRyYWNrKFRleHRUcmFjayYgdHJhY2ssIGJv
b2wgc2NoZWR1bGVFdmVudCkKIHsKLSAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSBzY29wZSh0
aGlzKTsKLSAgICBpZiAoVGV4dFRyYWNrQ3VlTGlzdCogY3VlcyA9IHRyYWNrLmN1ZXMoKSkKLSAg
ICAgICAgdGV4dFRyYWNrUmVtb3ZlQ3VlcygmdHJhY2ssIGN1ZXMpOworICAgIFRyYWNrRGlzcGxh
eVVwZGF0ZVNjb3BlIHNjb3BlIHsgKnRoaXMgfTsKKyAgICBpZiAoYXV0byogY3VlcyA9IHRyYWNr
LmN1ZXMoKSkKKyAgICAgICAgdGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0cmFjaywgKmN1ZXMpOwogICAg
IHRyYWNrLmNsZWFyQ2xpZW50KCk7CiAgICAgaWYgKG1fdGV4dFRyYWNrcykKICAgICAgICAgbV90
ZXh0VHJhY2tzLT5yZW1vdmUodHJhY2ssIHNjaGVkdWxlRXZlbnQpOwpAQCAtMzYyNSw3ICszNjI4
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpmb3JnZXRSZXNvdXJjZVNwZWNpZmljVHJhY2tz
KCkKICAgICAgICAgcmVtb3ZlQXVkaW9UcmFjaygqbV9hdWRpb1RyYWNrcy0+bGFzdEl0ZW0oKSk7
CiAKICAgICBpZiAobV90ZXh0VHJhY2tzKSB7Ci0gICAgICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNj
b3BlIHNjb3BlKHRoaXMpOworICAgICAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSBzY29wZSB7
ICp0aGlzIH07CiAgICAgICAgIGZvciAoaW50IGkgPSBtX3RleHRUcmFja3MtPmxlbmd0aCgpIC0g
MTsgaSA+PSAwOyAtLWkpIHsKICAgICAgICAgICAgIGF1dG8mIHRyYWNrID0gKm1fdGV4dFRyYWNr
cy0+aXRlbShpKTsKICAgICAgICAgICAgIGlmICh0cmFjay50cmFja1R5cGUoKSA9PSBUZXh0VHJh
Y2s6OkluQmFuZCkKQEAgLTYwNzgsMTIgKzYwODEsMTIgQEAgTWVkaWFDb250cm9sbGVyKiBIVE1M
TWVkaWFFbGVtZW50Ojpjb250cm9sbGVyKCkgY29uc3QKICAgICByZXR1cm4gbV9tZWRpYUNvbnRy
b2xsZXIuZ2V0KCk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0Q29udHJvbGxlcihQ
YXNzUmVmUHRyPE1lZGlhQ29udHJvbGxlcj4gY29udHJvbGxlcikKK3ZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2V0Q29udHJvbGxlcihSZWZQdHI8TWVkaWFDb250cm9sbGVyPiYmIGNvbnRyb2xsZXIp
CiB7CiAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyKQogICAgICAgICBtX21lZGlhQ29udHJvbGxl
ci0+cmVtb3ZlTWVkaWFFbGVtZW50KCp0aGlzKTsKIAotICAgIG1fbWVkaWFDb250cm9sbGVyID0g
Y29udHJvbGxlcjsKKyAgICBtX21lZGlhQ29udHJvbGxlciA9IFdURk1vdmUoY29udHJvbGxlcik7
CiAKICAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXIpCiAgICAgICAgIG1fbWVkaWFDb250cm9sbGVy
LT5hZGRNZWRpYUVsZW1lbnQoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAppbmRleCAwMjNjYzMzNjI4MzNmYTgwNjE5OWE0MTMwM2FmZjE5MDVjYmY2NWRmLi5mMzJk
MDIxOGZjMGY1NzMwYzE4ZWRkZWE5YTgzMDJiMzc1YTJmMWEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMjcsMTAgKzI3LDEwIEBACiAKICNpZiBFTkFCTEUoVklE
RU8pCiAKLSNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVj
dC5oIgogI2luY2x1ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiR2VuZXJpY1Rh
c2tRdWV1ZS5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlh
RWxlbWVudEVudW1zLmgiCiAjaW5jbHVkZSAiTWVkaWFDYW5TdGFydExpc3RlbmVyLmgiCiAjaW5j
bHVkZSAiTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmgiCkBAIC02OSw5ICs2OSw3IEBAIGNsYXNz
IE1lZGlhQ29udHJvbHM7CiBjbGFzcyBNZWRpYUNvbnRyb2xzSG9zdDsKIGNsYXNzIE1lZGlhRWxl
bWVudEF1ZGlvU291cmNlTm9kZTsKIGNsYXNzIE1lZGlhRXJyb3I7Ci0jaWYgRU5BQkxFKEVOQ1JZ
UFRFRF9NRURJQSkKIGNsYXNzIE1lZGlhS2V5czsKLSNlbmRpZgogY2xhc3MgTWVkaWFQbGF5ZXI7
CiBjbGFzcyBNZWRpYVNlc3Npb247CiBjbGFzcyBNZWRpYVNvdXJjZTsKQEAgLTgxLDcgKzc5LDYg
QEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFNvdXJjZUJ1ZmZlcjsKIGNs
YXNzIFRleHRUcmFja0xpc3Q7CiBjbGFzcyBUaW1lUmFuZ2VzOwotY2xhc3MgVVJMOwogY2xhc3Mg
VmlkZW9QbGF5YmFja1F1YWxpdHk7CiBjbGFzcyBWaWRlb1RyYWNrTGlzdDsKIGNsYXNzIFZpZGVv
VHJhY2tQcml2YXRlOwpAQCAtMzMxLDIwICszMjgsMjAgQEAgcHVibGljOgogICAgIHZvaWQgdXBk
YXRlVGV4dFRyYWNrRGlzcGxheSgpOwogCiAgICAgLy8gQXVkaW9UcmFja0NsaWVudAotICAgIHZv
aWQgYXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2sqKSBvdmVycmlkZTsKKyAgICB2
b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrJikgZmluYWw7CiAKICAgICB2
b2lkIHRleHRUcmFja1JlYWR5U3RhdGVDaGFuZ2VkKFRleHRUcmFjayopOwogCiAgICAgLy8gVGV4
dFRyYWNrQ2xpZW50Ci0gICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2sqKSBv
dmVycmlkZTsKLSAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayopIG92ZXJy
aWRlOwotICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJh
Y2tDdWVMaXN0Kikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRU
cmFjayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBvdmVycmlkZTsKLSAgICB2b2lkIHRleHRU
cmFja0FkZEN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlkZTsKLSAgICB2b2lk
IHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlkZTsK
KyAgICB2b2lkIHRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayYpIG92ZXJyaWRlOworICAg
IHZvaWQgdGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBv
dmVycmlkZTsKKyAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3Qg
VGV4dFRyYWNrQ3VlTGlzdCYpIG92ZXJyaWRlOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRl
eHRUcmFjayYsIFRleHRUcmFja0N1ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgdGV4dFRyYWNrUmVt
b3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYpIG92ZXJyaWRlOwogCiAgICAgLy8gVmlk
ZW9UcmFja0NsaWVudAotICAgIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1Ry
YWNrKikgb3ZlcnJpZGU7CisgICAgdm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVv
VHJhY2smKSBmaW5hbDsKIAogICAgIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bigpIGNvbnN0OwogICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNr
UmVwcmVzZW50YXRpb24qKTsKQEAgLTQyMiw3ICs0MTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRNZWRpYUdyb3VwKGNvbnN0IFN0cmluZyYpOwogCiAgICAgTWVkaWFDb250cm9sbGVyKiBjb250
cm9sbGVyKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRDb250cm9sbGVyKFBhc3NSZWZQdHI8TWVkaWFD
b250cm9sbGVyPik7CisgICAgdm9pZCBzZXRDb250cm9sbGVyKFJlZlB0cjxNZWRpYUNvbnRyb2xs
ZXI+JiYpOwogCiAgICAgdm9pZCBlbnRlcmVkT3JFeGl0ZWRGdWxsc2NyZWVuKCkgeyBjb25maWd1
cmVNZWRpYUNvbnRyb2xzKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVt
ZW50LmNwcAppbmRleCBiZGU2YWUyMzVmZDJkNDQ3OWRhZmI2ODk0MGY3MTliMDJjMzQ4Y2YzLi5l
MjI0YmZlMGFlODU4ZWYyYTlhZWFkNGFlZTg1NDQyN2Y1NDgxMWNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcApAQCAtNTE5LDExICs1MTksNiBAQCBib29sIEhU
TUxPYmplY3RFbGVtZW50OjphcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmIGVuY29kaW5nLCBi
b29sKQogICAgIHJldHVybiB0cnVlOwogfQogCi1IVE1MRm9ybUVsZW1lbnQqIEhUTUxPYmplY3RF
bGVtZW50Ojp2aXJ0dWFsRm9ybSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEZvcm1Bc3NvY2lhdGVk
RWxlbWVudDo6Zm9ybSgpOwotfQotCiBib29sIEhUTUxPYmplY3RFbGVtZW50OjpjYW5Db250YWlu
UmFuZ2VFbmRQb2ludCgpIGNvbnN0CiB7CiAgICAgLy8gQ2FsbCB0aHJvdWdoIHRvIEhUTUxFbGVt
ZW50IGJlY2F1c2Ugd2UgbmVlZCB0byBza2lwIEhUTUxQbHVnSW5FbGVtZW50CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKaW5kZXggZTNjNTVlNGYwNTUxZTZjNmY1OWRmNDc3
NTc4ZmY5NjgyMmRhZmVkOS4uYzE1ZWU0ZGU0NGY4N2E1ZTA5NGZjMTc4ZGVhNzNmZGYyOGQyYmNi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaApAQCAtNTQsNyArNTQs
NyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cmVmOwogICAg
IHVzaW5nIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmRlcmVmOwogCi0gICAgdXNpbmcgRm9ybUFz
c29jaWF0ZWRFbGVtZW50Ojpmb3JtOworICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybSgpOyB9CiAKIHByaXZh
dGU6CiAgICAgSFRNTE9iamVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
JiwgSFRNTEZvcm1FbGVtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwpAQCAtOTEsNyArOTEs
NiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKSBmaW5h
bCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJlZkZvcm1Bc3NvY2lhdGVkRWxlbWVudCgpIGZpbmFs
IHsgZGVyZWYoKTsgfQotICAgIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25zdCBm
aW5hbDsKIAogICAgIEZvcm1OYW1lZEl0ZW0qIGFzRm9ybU5hbWVkSXRlbSgpIGZpbmFsIHsgcmV0
dXJuIHRoaXM7IH0KICAgICBIVE1MT2JqZWN0RWxlbWVudCYgYXNIVE1MRWxlbWVudCgpIGZpbmFs
IHsgcmV0dXJuICp0aGlzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQu
Y3BwCmluZGV4IDlhMzA1ZmYxZjcyNjAyMmI1ZjNmNzIwMzI3OGMwNjZiZDQxZjU5ZmQuLjU1ZGJh
OTc1YmQzNWQ1NjMyYWE5MWNlN2Y4NTI5YTNmN2NkZGI2MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBAIC0zMzQsNyArMzM0LDcgQEAgU3RyaW5nIEhUTUxP
cHRpb25FbGVtZW50Ojpjb2xsZWN0T3B0aW9uSW5uZXJUZXh0KCkgY29uc3QKICAgICAgICAgaWYg
KGlzPFRleHQ+KCpub2RlKSkKICAgICAgICAgICAgIHRleHQuYXBwZW5kKG5vZGUtPm5vZGVWYWx1
ZSgpKTsKICAgICAgICAgLy8gVGV4dCBub2RlcyBpbnNpZGUgc2NyaXB0IGVsZW1lbnRzIGFyZSBu
b3QgcGFydCBvZiB0aGUgb3B0aW9uIHRleHQuCi0gICAgICAgIGlmIChpczxFbGVtZW50Pigqbm9k
ZSkgJiYgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShkb3duY2FzdDxFbGVtZW50Pihub2RlKSkp
CisgICAgICAgIGlmIChpczxFbGVtZW50Pigqbm9kZSkgJiYgaXNTY3JpcHRFbGVtZW50KGRvd25j
YXN0PEVsZW1lbnQ+KCpub2RlKSkpCiAgICAgICAgICAgICBub2RlID0gTm9kZVRyYXZlcnNhbDo6
bmV4dFNraXBwaW5nQ2hpbGRyZW4oKm5vZGUsIHRoaXMpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBub2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbm9kZSwgdGhpcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IGE4NjRlODdlYWZkNDI4M2U1NGYx
ZTQwYmZlY2Y5MjI1YTVjYjVkZDYuLjlmZTQyZTc0OWNhNTcyYmUxYjE5ZWUzMjA3M2RhYjJjZDVi
NjdjNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC0x
MDgsMjEgKzEwOCwyMCBAQCB2b2lkIEhUTUxQbHVnSW5FbGVtZW50OjpyZXNldEluc3RhbmNlKCkK
ICAgICBtX2luc3RhbmNlID0gbnVsbHB0cjsKIH0KIAotUGFzc1JlZlB0cjxKU0M6OkJpbmRpbmdz
OjpJbnN0YW5jZT4gSFRNTFBsdWdJbkVsZW1lbnQ6OmdldEluc3RhbmNlKCkKK0pTQzo6QmluZGlu
Z3M6Okluc3RhbmNlKiBIVE1MUGx1Z0luRWxlbWVudDo6YmluZGluZ3NJbnN0YW5jZSgpCiB7Ci0g
ICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOworICAgIGF1dG8qIGZyYW1lID0g
ZG9jdW1lbnQoKS5mcmFtZSgpOwogICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIElmIHRoZSBob3N0IGR5bmFtaWNhbGx5
IHR1cm5zIG9mZiBKYXZhU2NyaXB0IChvciBKYXZhKSB3ZSB3aWxsIHN0aWxsIHJldHVybgogICAg
IC8vIHRoZSBjYWNoZWQgYWxsb2NhdGVkIEJpbmRpbmdzOjpJbnN0YW5jZS4gIE5vdCBzdXBwb3J0
aW5nIHRoaXMgZWRnZS1jYXNlIGlzIE9LLgotICAgIGlmIChtX2luc3RhbmNlKQotICAgICAgICBy
ZXR1cm4gbV9pbnN0YW5jZTsKLQotICAgIGlmIChXaWRnZXQqIHdpZGdldCA9IHBsdWdpbldpZGdl
dCgpKQotICAgICAgICBtX2luc3RhbmNlID0gZnJhbWUtPnNjcmlwdCgpLmNyZWF0ZVNjcmlwdElu
c3RhbmNlRm9yV2lkZ2V0KHdpZGdldCk7CiAKLSAgICByZXR1cm4gbV9pbnN0YW5jZTsKKyAgICBp
ZiAoIW1faW5zdGFuY2UpIHsKKyAgICAgICAgaWYgKGF1dG8qIHdpZGdldCA9IHBsdWdpbldpZGdl
dCgpKQorICAgICAgICAgICAgbV9pbnN0YW5jZSA9IGZyYW1lLT5zY3JpcHQoKS5jcmVhdGVTY3Jp
cHRJbnN0YW5jZUZvcldpZGdldCh3aWRnZXQpOworICAgIH0KKyAgICByZXR1cm4gbV9pbnN0YW5j
ZS5nZXQoKTsKIH0KIAogYm9vbCBIVE1MUGx1Z0luRWxlbWVudDo6Z3VhcmRlZERpc3BhdGNoQmVm
b3JlTG9hZEV2ZW50KGNvbnN0IFN0cmluZyYgc291cmNlVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luRWxlbWVudC5oCmluZGV4IDViOGM1YWQ0MjgyYWJmOTVhMDUyNjI4YjI4ZmU5ZDQw
MWE5Yzc3ODMuLjYxN2JkNjkxZDZkNmNkYWNmZGEzYzFiMWY4MTc2ZWY0N2Q5N2QwODcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCByZXNldEluc3RhbmNlKCk7CiAKLSAgICBQYXNzUmVmUHRyPEpTQzo6
QmluZGluZ3M6Okluc3RhbmNlPiBnZXRJbnN0YW5jZSgpOworICAgIEpTQzo6QmluZGluZ3M6Oklu
c3RhbmNlKiBiaW5kaW5nc0luc3RhbmNlKCk7CiAKICAgICBlbnVtIGNsYXNzIFBsdWdpbkxvYWRp
bmdQb2xpY3kgeyBEb05vdExvYWQsIExvYWQgfTsKICAgICBXRUJDT1JFX0VYUE9SVCBXaWRnZXQq
IHBsdWdpbldpZGdldChQbHVnaW5Mb2FkaW5nUG9saWN5ID0gUGx1Z2luTG9hZGluZ1BvbGljeTo6
TG9hZCkgY29uc3Q7CkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB9OwogICAgIERpc3Bs
YXlTdGF0ZSBkaXNwbGF5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlTdGF0ZTsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzZXREaXNwbGF5U3RhdGUoRGlzcGxheVN0YXRlKTsKLSAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlU25hcHNob3QoUGFzc1JlZlB0cjxJbWFnZT4pIHsgfQorICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVTbmFwc2hvdChJbWFnZSopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaFBlbmRpbmdNb3VzZUNsaWNrKCkgeyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVzdGFydGVk
UGx1Z2luKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggZmEyMzQ3YjYwYTk2MmI2MDVlM2U3
OTg2NTBjMTMxYThiMmIyNWE4OC4uYzRjYzM0ODAzNTYxZjJkOWFlMzY1ZjM5NTY2MzNmYWJlNzIz
MjNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
Y3BwCkBAIC0xNzEsNyArMTcxLDcgQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHkKIAogICAgIGlm
IChkaXNwbGF5U3RhdGUoKSA9PSBEaXNwbGF5aW5nU25hcHNob3QpIHsKICAgICAgICAgYXV0byBy
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbiA9IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNuYXBzaG90dGVk
UGx1Z0luPigqdGhpcywgV1RGTW92ZShzdHlsZSkpOwotICAgICAgICByZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbi0+dXBkYXRlU25hcHNob3QobV9zbmFwc2hvdEltYWdlKTsKKyAgICAgICAgcmVuZGVy
U25hcHNob3R0ZWRQbHVnSW4tPnVwZGF0ZVNuYXBzaG90KG1fc25hcHNob3RJbWFnZS5nZXQoKSk7
CiAgICAgICAgIHJldHVybiBXVEZNb3ZlKHJlbmRlclNuYXBzaG90dGVkUGx1Z0luKTsKICAgICB9
CiAKQEAgLTMwMSw3ICszMDEsNyBAQCB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnN0YXJ0
TG9hZGluZ0ltYWdlKCkKICAgICBtX2ltYWdlTG9hZGVyLT51cGRhdGVGcm9tRWxlbWVudCgpOwog
fQogCi12b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQ
dHI8SW1hZ2U+IGltYWdlKQordm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVTbmFw
c2hvdChJbWFnZSogaW1hZ2UpCiB7CiAgICAgaWYgKGRpc3BsYXlTdGF0ZSgpID4gRGlzcGxheWlu
Z1NuYXBzaG90KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5oCmluZGV4IGEzZjdlMTA4Y2Y5MmUwNWE5YmI4ZGE0ZGE2OTJhZjQw
MGZkMDZhNDYuLjMzNzA1NjgzODY1YTYxOGUyOTE4NjgyZWYyYzE4NzI3NjQ5OTMwMDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCkBAIC0xMTgsNyAr
MTE4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmKSBm
aW5hbDsKICAgICB2b2lkIGRpc3BhdGNoUGVuZGluZ01vdXNlQ2xpY2soKSBmaW5hbDsKIAotICAg
IHZvaWQgdXBkYXRlU25hcHNob3QoUGFzc1JlZlB0cjxJbWFnZT4pIGZpbmFsOworICAgIHZvaWQg
dXBkYXRlU25hcHNob3QoSW1hZ2UqKSBmaW5hbDsKIAogICAgIHZvaWQgc3RhcnRMb2FkaW5nSW1h
Z2UoKTsKICAgICB2b2lkIHVwZGF0ZVdpZGdldElmTmVjZXNzYXJ5KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKaW5kZXggZjJiZDUyNWM3NGRkZDNkN2I4YTFmYzFlOTY5
MjUyZTg2M2NkZjU3NS4uY2ZjNzMxNTU2YTIxZjk5ZmVmZWQzMzcwNzgwNDEyMGI2MjNhZDA4MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaApAQCAtNDMsNiArNDMsOSBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDcm9zc09yaWdpbihjb25zdCBB
dG9taWNTdHJpbmcmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY3Jvc3NPcmlnaW4oKSBj
b25zdDsKIAorICAgIHVzaW5nIEhUTUxFbGVtZW50OjpyZWY7CisgICAgdXNpbmcgSFRNTEVsZW1l
bnQ6OmRlcmVmOworCiBwcml2YXRlOgogICAgIEhUTUxTY3JpcHRFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCBhbHJl
YWR5U3RhcnRlZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAKaW5kZXggN2RiOTE0ZjcwNmIzYTZmYWY5NDM0YThmMjRlZTEyMTgx
NWE3NGRmMi4uMGViOTM5ZDk0NTc3YWQzMGZlOWZhMzY0Yzc4MjBiNjNkZGY2OWUxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAK
QEAgLTQyNyw3ICs0MjcsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0Q29udGFpbmVyQW5kT2Zm
c2V0Rm9yUmFuZ2UoTm9kZSogbm9kZSwgaW50IG9mZnNldCwgTm9kZSomCiAgICAgfQogfQogCi1Q
YXNzUmVmUHRyPFJhbmdlPiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0aW9uKCkg
Y29uc3QKK1JlZlB0cjxSYW5nZT4gSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlv
bigpIGNvbnN0CiB7CiAgICAgaWYgKCFyZW5kZXJlcigpIHx8ICFpc1RleHRGb3JtQ29udHJvbCgp
IHx8ICFoYXNDYWNoZWRTZWxlY3Rpb24oKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXgg
NGE2M2U5NzFhYWIxZmViNWQzNDZkYzQyMjMxYjZiMTI2NmMwYjYzZi4uNmU0ZDliODE0Nzg1YzVh
ZWFhYmUxMTUzMGRkYmIxMzFlYmZkMTEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRSYW5nZVRleHQo
Y29uc3QgU3RyaW5nJiByZXBsYWNlbWVudCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwg
Y29uc3QgU3RyaW5nJiBzZWxlY3Rpb25Nb2RlKTsKICAgICB2b2lkIHNldFNlbGVjdGlvblJhbmdl
KGludCBzdGFydCwgaW50IGVuZCwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIGNvbnN0IEFYVGV4
dFN0YXRlQ2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBU
ZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gPSBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbiwgY29u
c3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7
Ci0gICAgUGFzc1JlZlB0cjxSYW5nZT4gc2VsZWN0aW9uKCkgY29uc3Q7CisgICAgUmVmUHRyPFJh
bmdlPiBzZWxlY3Rpb24oKSBjb25zdDsKICAgICBTdHJpbmcgc2VsZWN0ZWRUZXh0KCkgY29uc3Q7
CiAKICAgICB2b2lkIGRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKaW5kZXggMDdmNDJkOTlmOGQ3YjQ4
YTliYTI0MWI0YzQ3MWQ1NzlmNTVlOGJkNS4uMjJjZDBlN2ViNGZmY2FlZWM3YmQwNWIxZjRmNzkz
ODkxNmU1MGM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCkBA
IC0yNzksNDMgKzI3OSw0MyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxUcmFja0VsZW1lbnQ6
Om1lZGlhRWxlbWVudENyb3NzT3JpZ2luQXR0cmlidXRlKCkgY29uc3QKICAgICByZXR1cm4gbnVs
bEF0b207CiB9CiAKLXZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQo
VGV4dFRyYWNrKiB0cmFjaykKK3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrS2luZENo
YW5nZWQoVGV4dFRyYWNrJiB0cmFjaykKIHsKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFy
ZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVu
dCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja0tpbmRDaGFuZ2VkKHRyYWNrKTsKIH0KIAot
dm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqIHRy
YWNrKQordm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJh
Y2smIHRyYWNrKQogewogICAgIC8vIFNpbmNlIHdlJ3ZlIG1vdmVkIHRvIGEgbmV3IHBhcmVudCwg
d2UgbWF5IG5vdyBiZSBhYmxlIHRvIGxvYWQuCiAgICAgaWYgKHJlYWR5U3RhdGUoKSA9PSBIVE1M
VHJhY2tFbGVtZW50OjpOT05FKQogICAgICAgICBzY2hlZHVsZUxvYWQoKTsKIAotICAgIGlmIChI
VE1MTWVkaWFFbGVtZW50KiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKKyAgICBpZiAoYXV0byog
cGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIHBhcmVudC0+dGV4dFRyYWNrTW9kZUNo
YW5nZWQodHJhY2spOwogfQogCi12b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1
ZXMoVGV4dFRyYWNrKiB0cmFjaywgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCogY3VlcykKK3ZvaWQg
SFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smIHRyYWNrLCBjb25z
dCBUZXh0VHJhY2tDdWVMaXN0JiBjdWVzKQogewotICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBw
YXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKKyAgICBpZiAoYXV0byogcGFyZW50ID0gbWVkaWFFbGVt
ZW50KCkpCiAgICAgICAgIHBhcmVudC0+dGV4dFRyYWNrQWRkQ3Vlcyh0cmFjaywgY3Vlcyk7CiB9
CiAgICAgCi12b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRy
YWNrKiB0cmFjaywgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCogY3VlcykKK3ZvaWQgSFRNTFRyYWNr
RWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2smIHRyYWNrLCBjb25zdCBUZXh0
VHJhY2tDdWVMaXN0JiBjdWVzKQogewotICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBwYXJlbnQg
PSBtZWRpYUVsZW1lbnQoKSkKKyAgICBpZiAoYXV0byogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkp
CiAgICAgICAgIHBhcmVudC0+dGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0cmFjaywgY3Vlcyk7CiB9CiAg
ICAgCi12b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqIHRy
YWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKK3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNr
QWRkQ3VlKFRleHRUcmFjayYgdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogewotICAgIGlmIChI
VE1MTWVkaWFFbGVtZW50KiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKKyAgICBpZiAoYXV0byog
cGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIHBhcmVudC0+dGV4dFRyYWNrQWRkQ3Vl
KHRyYWNrLCBjdWUpOwogfQogICAgIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tS
ZW1vdmVDdWUoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIEhUTUxU
cmFja0VsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJh
Y2tDdWUmIGN1ZSkKIHsKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFF
bGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAg
ICBwYXJlbnQtPnRleHRUcmFja1JlbW92ZUN1ZSh0cmFjaywgY3VlKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAppbmRleCA5YjQyNWRjZDg1ZDFlMGQ0ZjM2MGM4NmQy
ZWE2MmQxOTA4ZTRiN2IwLi43NDllZDFiNGU3MDhkZmUxNTY1ODFmZDBmOGQ5N2Q1NWM2NDU4Zjg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaApAQCAtNzQsMTIgKzc0LDEy
IEBAIHByaXZhdGU6CiAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KCkgY29uc3Q7
CiAKICAgICAvLyBUZXh0VHJhY2tDbGllbnQKLSAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2Vk
KFRleHRUcmFjayopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRy
YWNrKikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayosIGNvbnN0
IFRleHRUcmFja0N1ZUxpc3QqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMo
VGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCopIGZpbmFsOwotICAgIHZvaWQgdGV4
dFRyYWNrQWRkQ3VlKFRleHRUcmFjayosIFRleHRUcmFja0N1ZSYpIGZpbmFsOwotICAgIHZvaWQg
dGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayosIFRleHRUcmFja0N1ZSYpIGZpbmFsOworICAg
IHZvaWQgdGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrJikgZmluYWw7CisgICAgdm9pZCB0
ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2smKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFj
a0FkZEN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIGZpbmFsOworICAg
IHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVM
aXN0JikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrJiwgVGV4dFRy
YWNrQ3VlJikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiwg
VGV4dFRyYWNrQ3VlJikgZmluYWw7CiAKICAgICBib29sIGNhbkxvYWRVUkwoY29uc3QgVVJMJik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCBmNmE2YmJjNDY0YjlhZmEzOGQ1N2I0
ZDFlYzQ3Y2YzY2NhOTI2NmQ0Li4zNzE3NWRjNDYzNTI3N2FlOGY4YjMyOGFjNDk2YjMzMDNmMGNi
ODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC00ODIsMTEgKzQ4Miw2IEBAIGJv
b2wgSW5wdXRUeXBlOjpzaG91bGRTdWJtaXRJbXBsaWNpdGx5KEV2ZW50JiBldmVudCkKICAgICBy
ZXR1cm4gaXM8S2V5Ym9hcmRFdmVudD4oZXZlbnQpICYmIGV2ZW50LnR5cGUoKSA9PSBldmVudE5h
bWVzKCkua2V5cHJlc3NFdmVudCAmJiBkb3duY2FzdDxLZXlib2FyZEV2ZW50PihldmVudCkuY2hh
ckNvZGUoKSA9PSAnXHInOwogfQogCi1QYXNzUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gSW5wdXRU
eXBlOjpmb3JtRm9yU3VibWlzc2lvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGVsZW1lbnQoKS5m
b3JtKCk7Ci19Ci0KIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBJbnB1dFR5cGU6OmNyZWF0ZUlu
cHV0UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSkKIHsKICAgICByZXR1cm4gUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+KFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcihlbGVtZW50KCksIFdURk1v
dmUoc3R5bGUpKSk7CkBAIC01NTEsNyArNTQ2LDcgQEAgQ2hyb21lKiBJbnB1dFR5cGU6OmNocm9t
ZSgpIGNvbnN0CiB7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBlbGVtZW50KCkuZG9jdW1lbnQoKS5w
YWdlKCkpCiAgICAgICAgIHJldHVybiAmcGFnZS0+Y2hyb21lKCk7Ci0gICAgcmV0dXJuIDA7Cisg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIGJvb2wgSW5wdXRUeXBlOjpjYW5TZXRTdHJpbmdWYWx1
ZSgpIGNvbnN0CkBAIC02MzYsNyArNjMxLDcgQEAgYm9vbCBJbnB1dFR5cGU6OmNhbkJlU3VjY2Vz
c2Z1bFN1Ym1pdEJ1dHRvbigpCiAKIEhUTUxFbGVtZW50KiBJbnB1dFR5cGU6OnBsYWNlaG9sZGVy
RWxlbWVudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKIGJvb2wgSW5wdXRUeXBlOjpyZW5kZXJlcklzTmVlZGVkKCkKQEAgLTY0NiwxMCArNjQxLDEw
IEBAIGJvb2wgSW5wdXRUeXBlOjpyZW5kZXJlcklzTmVlZGVkKCkKIAogRmlsZUxpc3QqIElucHV0
VHlwZTo6ZmlsZXMoKQogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQog
Ci12b2lkIElucHV0VHlwZTo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4pCit2b2lkIElu
cHV0VHlwZTo6c2V0RmlsZXMoUmVmUHRyPEZpbGVMaXN0PiYmKQogewogfQogCkBAIC03MzEsMjUg
KzcyNiwyOSBAQCBTdHJpbmcgSW5wdXRUeXBlOjpzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYg
cHJvcG9zZWRWYWx1ZSkgY29uc3QKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisKIGJv
b2wgSW5wdXRUeXBlOjpyZWNlaXZlRHJvcHBlZEZpbGVzKGNvbnN0IERyYWdEYXRhJikKIHsKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CisKICNlbmRpZgog
CiBJY29uKiBJbnB1dFR5cGU6Omljb24oKSBjb25zdAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiAjaWYgUExBVEZP
Uk0oSU9TKQorCiBTdHJpbmcgSW5wdXRUeXBlOjpkaXNwbGF5U3RyaW5nKCkgY29uc3QKIHsKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CisKICNlbmRp
ZgogCiBib29sIElucHV0VHlwZTo6c2hvdWxkUmVzZXRPbkRvY3VtZW50QWN0aXZhdGlvbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCBjNGJlNzNkNDAwNGQ2OGQ5MTMwYjlhYjk0NmExNzAw
ZTcwMzNkZTI0Li4yZjFjMzI5N2FmMDc4NmRlZGE0MmNlY2VjOTQ1ZWFhMmRiOTBmZDhmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTE5Miw3ICsxOTIsNiBAQCBwdWJsaWM6CiAgICAgLy8g
SGVscGVycyBmb3IgZXZlbnQgaGFuZGxlcnMuCiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3Vi
bWl0SW1wbGljaXRseShFdmVudCYpOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxIVE1MRm9ybUVs
ZW1lbnQ+IGZvcm1Gb3JTdWJtaXNzaW9uKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGhhc0N1
c3RvbUZvY3VzTG9naWMoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZvY3Vz
YWJsZShLZXlib2FyZEV2ZW50JikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1
c2FibGUoKSBjb25zdDsKQEAgLTIzOSw3ICsyMzgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIG1heFJlc3VsdHNBdHRyaWJ1dGVDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZFJlc3BlY3RBbGlnbkF0dHJpYnV0ZSgpOwogICAgIHZpcnR1YWwgRmlsZUxpc3QqIGZpbGVzKCk7
Ci0gICAgdmlydHVhbCB2b2lkIHNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0RmlsZXMoUmVmUHRyPEZpbGVMaXN0PiYmKTsKICAgICB2aXJ0dWFsIElj
b24qIGljb24oKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2VuZENoYW5nZUV2ZW50
QWZ0ZXJDaGVja2VkQ2hhbmdlZCgpOwogICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRWYWx1ZShjb25z
dCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKaW5kZXggZjM1
MWY5Nzk1MTVmNWNlYzlhNDk5NGUwZDc1ZDAxZGM0MjE4OTYwNS4uZGNjZTlkMzhhODc1YTUyOWU4
MTk3MTZjOGI3MTBhNTE1M2FhNzczNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Q
bHVnaW5Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVu
dC5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2VyOjpjcmVh
dGVEb2N1bWVudFN0cnVjdHVyZSgpCiAgICAgaWYgKGF1dG8qIGxvYWRlciA9IGRvY3VtZW50Lmxv
YWRlcigpKQogICAgICAgICBtX2VtYmVkRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbih0eXBlQXR0ciwgbG9hZGVyLT53cml0ZXIoKS5taW1lVHlwZSgpKTsKIAotICAg
IGRvY3VtZW50LnNldFBsdWdpbkVsZW1lbnQobV9lbWJlZEVsZW1lbnQpOworICAgIGRvY3VtZW50
LnNldFBsdWdpbkVsZW1lbnQoKm1fZW1iZWRFbGVtZW50KTsKIAogICAgIGJvZHktPmFwcGVuZENo
aWxkKGVtYmVkRWxlbWVudCk7CiB9CkBAIC0xNjAsOSArMTYwLDkgQEAgV2lkZ2V0KiBQbHVnaW5E
b2N1bWVudDo6cGx1Z2luV2lkZ2V0KCkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBQ
bHVnaW5Eb2N1bWVudDo6c2V0UGx1Z2luRWxlbWVudChQYXNzUmVmUHRyPEhUTUxQbHVnSW5FbGVt
ZW50PiBlbGVtZW50KQordm9pZCBQbHVnaW5Eb2N1bWVudDo6c2V0UGx1Z2luRWxlbWVudChIVE1M
UGx1Z0luRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBtX3BsdWdpbkVsZW1lbnQgPSBlbGVtZW50
OworICAgIG1fcGx1Z2luRWxlbWVudCA9ICZlbGVtZW50OwogfQogCiB2b2lkIFBsdWdpbkRvY3Vt
ZW50OjpkZXRhY2hGcm9tUGx1Z2luRWxlbWVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1BsdWdpbkRvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3Vt
ZW50LmgKaW5kZXggM2NkMDYxMjU1MGY2ZjhmYmU5NmM4OWI1YjVmYjVlNTYxNDNjNWY3ZS4uYmVm
ZTUxZmNhZjUzZTQzMmFlMmVkNGQzYmM5NDVhODVkM2QwMWZhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UGx1Z2luRG9jdW1lbnQuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFBsdWdpbkRvY3VtZW50KGZyYW1lLCB1cmwpKTsKICAgICB9CiAKLSAg
ICB2b2lkIHNldFBsdWdpbkVsZW1lbnQoUGFzc1JlZlB0cjxIVE1MUGx1Z0luRWxlbWVudD4pOwor
ICAgIHZvaWQgc2V0UGx1Z2luRWxlbWVudChIVE1MUGx1Z0luRWxlbWVudCYpOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgV2lkZ2V0KiBwbHVnaW5XaWRnZXQoKTsKICAgICBIVE1MUGx1Z0luRWxlbWVu
dCogcGx1Z2luRWxlbWVudCgpIHsgcmV0dXJuIG1fcGx1Z2luRWxlbWVudC5nZXQoKTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5jcHAKaW5kZXggOTRlOGI0ZGNlYzQ0ZmQ4ZmU2YWE5MjE0ZDU1ZDk1OWI1ODcxOWRlNS4u
NmRiMjgyOTkyZjRhMzczZTRmOGQ2OTliODA5YjcwMjcwNTQ0NmZjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3Bw
CkBAIC00MTcsNyArNDE3LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldFN0
cm9rZVN0eWxlKENhbnZhc1N0eWxlIHN0eWxlKQogICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRy
YXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47Ci0gICAgc3RhdGUu
c3Ryb2tlU3R5bGUuYXBwbHlTdHJva2VDb2xvcihjKTsKKyAgICBzdGF0ZS5zdHJva2VTdHlsZS5h
cHBseVN0cm9rZUNvbG9yKCpjKTsKICAgICBzdGF0ZS51bnBhcnNlZFN0cm9rZUNvbG9yID0gU3Ry
aW5nKCk7CiB9CiAKQEAgLTQ0NCw3ICs0NDQsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6c2V0RmlsbFN0eWxlKENhbnZhc1N0eWxlIHN0eWxlKQogICAgIEdyYXBoaWNzQ29udGV4
dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47Ci0g
ICAgc3RhdGUuZmlsbFN0eWxlLmFwcGx5RmlsbENvbG9yKGMpOworICAgIHN0YXRlLmZpbGxTdHls
ZS5hcHBseUZpbGxDb2xvcigqYyk7CiAgICAgc3RhdGUudW5wYXJzZWRGaWxsQ29sb3IgPSBTdHJp
bmcoKTsKIH0KIApAQCAtMjQ0NSw3ICsyNDQ1LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OmRyYXdUZXh0SW50ZXJuYWwoY29uc3QgU3RyaW5nJiB0ZXh0LCBmbG9hdCB4LCBmbG8K
IAogICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmMpOwogICAg
ICAgICBjLT5jbGlwVG9JbWFnZUJ1ZmZlcigqbWFza0ltYWdlLCBtYXNrUmVjdCk7Ci0gICAgICAg
IGRyYXdTdHlsZS5hcHBseUZpbGxDb2xvcihjKTsKKyAgICAgICAgZHJhd1N0eWxlLmFwcGx5Rmls
bENvbG9yKCpjKTsKICAgICAgICAgYy0+ZmlsbFJlY3QobWFza1JlY3QpOwogICAgICAgICByZXR1
cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
U3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwCmlu
ZGV4IDlhYTBhMDUyZjQ2MWFkNmIyYzVlYWM2YWZlYzMyMzE1NjVlMDIxMzYuLmJjYmUyYTA1NGM0
OWFhMTRlNmQxOTM2ZjNiNzRlMjYyOWVmMzcyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNTdHlsZS5jcHAKQEAgLTUzLDcgKzUzLDYgQEAgc3RhdGljIENvbG9yIHBhcnNl
Q29sb3IoY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZywgRG9jdW1lbnQqIGRvY3VtZW50ID0gbnVs
bHB0cikKICAgICBDb2xvciBjb2xvciA9IENTU1BhcnNlcjo6cGFyc2VDb2xvcihjb2xvclN0cmlu
Zyk7CiAgICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGNvbG9yOwotCiAg
ICAgcmV0dXJuIENTU1BhcnNlcjo6cGFyc2VTeXN0ZW1Db2xvcihjb2xvclN0cmluZywgZG9jdW1l
bnQpOwogfQogCkBAIC03NiwyMDggKzc1LDE1MCBAQCBDb2xvciBwYXJzZUNvbG9yT3JDdXJyZW50
Q29sb3IoY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZywgSFRNTENhbnZhc0VsZW1lbnQqIGNhbgog
fQogCiBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoQ29sb3IgY29sb3IpCi0gICAgOiBtX2NvbG9y
KGNvbG9yKQotICAgICwgbV90eXBlKFJHQkEpCisgICAgOiBtX3N0eWxlKGNvbG9yKQogewogfQog
CiBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoZmxvYXQgZ3JheUxldmVsLCBmbG9hdCBhbHBoYSkK
LSAgICA6IG1fY29sb3IoQ29sb3IoZ3JheUxldmVsLCBncmF5TGV2ZWwsIGdyYXlMZXZlbCwgYWxw
aGEpKQotICAgICwgbV90eXBlKFJHQkEpCisgICAgOiBtX3N0eWxlKENvbG9yIHsgZ3JheUxldmVs
LCBncmF5TGV2ZWwsIGdyYXlMZXZlbCwgYWxwaGEgfSkKIHsKIH0KIAogQ2FudmFzU3R5bGU6OkNh
bnZhc1N0eWxlKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGEpCi0gICAgOiBtX2Nv
bG9yKENvbG9yKHIsIGcsIGIsIGEpKQotICAgICwgbV90eXBlKFJHQkEpCisgICAgOiBtX3N0eWxl
KENvbG9yIHsgciwgZywgYiwgYSB9KQogewogfQogCiBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUo
ZmxvYXQgYywgZmxvYXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYSkKLSAgICA6IG1fY215
a2EobmV3IENNWUtBVmFsdWVzKENvbG9yKGMsIG0sIHksIGssIGEpLCBjLCBtLCB5LCBrLCBhKSkK
LSAgICAsIG1fdHlwZShDTVlLQSkKKyAgICA6IG1fc3R5bGUoQ01ZS0FDb2xvciB7IENvbG9yIHsg
YywgbSwgeSwgaywgYSB9LCBjLCBtLCB5LCBrLCBhIH0pCiB7CiB9CiAKLUNhbnZhc1N0eWxlOjpD
YW52YXNTdHlsZShQYXNzUmVmUHRyPENhbnZhc0dyYWRpZW50PiBncmFkaWVudCkKLSAgICA6IG1f
Z3JhZGllbnQoZ3JhZGllbnQubGVha1JlZigpKQotICAgICwgbV90eXBlKEdyYWRpZW50KQorQ2Fu
dmFzU3R5bGU6OkNhbnZhc1N0eWxlKENhbnZhc0dyYWRpZW50JiBncmFkaWVudCkKKyAgICA6IG1f
c3R5bGUobWFrZVJlZlB0cihncmFkaWVudCkpCiB7Ci0gICAgaWYgKCFtX2dyYWRpZW50KQotICAg
ICAgICBtX3R5cGUgPSBJbnZhbGlkOwogfQogCi1DYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoUGFz
c1JlZlB0cjxDYW52YXNQYXR0ZXJuPiBwYXR0ZXJuKQotICAgIDogbV9wYXR0ZXJuKHBhdHRlcm4u
bGVha1JlZigpKQotICAgICwgbV90eXBlKEltYWdlUGF0dGVybikKK0NhbnZhc1N0eWxlOjpDYW52
YXNTdHlsZShDYW52YXNQYXR0ZXJuJiBwYXR0ZXJuKQorICAgIDogbV9zdHlsZShtYWtlUmVmUHRy
KHBhdHRlcm4pKQogewotICAgIGlmICghbV9wYXR0ZXJuKQotICAgICAgICBtX3R5cGUgPSBJbnZh
bGlkOwogfQogCi1DYW52YXNTdHlsZTo6fkNhbnZhc1N0eWxlKCkKK2lubGluZSBDYW52YXNTdHls
ZTo6Q2FudmFzU3R5bGUoQ3VycmVudENvbG9yIGNvbG9yKQorICAgIDogbV9zdHlsZShjb2xvcikK
IHsKLSAgICBpZiAobV90eXBlID09IEdyYWRpZW50KQotICAgICAgICBtX2dyYWRpZW50LT5kZXJl
ZigpOwotICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBJbWFnZVBhdHRlcm4pCi0gICAgICAgIG1fcGF0
dGVybi0+ZGVyZWYoKTsKLSAgICBlbHNlIGlmIChtX3R5cGUgPT0gQ01ZS0EpCi0gICAgICAgIGRl
bGV0ZSBtX2NteWthOwogfQogCiBDYW52YXNTdHlsZSBDYW52YXNTdHlsZTo6Y3JlYXRlRnJvbVN0
cmluZyhjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAg
ICAgaWYgKGlzQ3VycmVudENvbG9yU3RyaW5nKGNvbG9yU3RyaW5nKSkKLSAgICAgICAgcmV0dXJu
IENhbnZhc1N0eWxlKENvbnN0cnVjdEN1cnJlbnRDb2xvcik7CisgICAgICAgIHJldHVybiBDdXJy
ZW50Q29sb3IgeyBzdGQ6Om51bGxvcHQgfTsKIAogICAgIENvbG9yIGNvbG9yID0gcGFyc2VDb2xv
cihjb2xvclN0cmluZywgZG9jdW1lbnQpOwotICAgIGlmIChjb2xvci5pc1ZhbGlkKCkpCi0gICAg
ICAgIHJldHVybiBDYW52YXNTdHlsZShjb2xvcik7CisgICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkp
CisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gQ2FudmFzU3R5bGUoKTsKKyAgICBy
ZXR1cm4gY29sb3I7CiB9CiAKIENhbnZhc1N0eWxlIENhbnZhc1N0eWxlOjpjcmVhdGVGcm9tU3Ry
aW5nV2l0aE92ZXJyaWRlQWxwaGEoY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZywgZmxvYXQgYWxw
aGEpCiB7CiAgICAgaWYgKGlzQ3VycmVudENvbG9yU3RyaW5nKGNvbG9yU3RyaW5nKSkKLSAgICAg
ICAgcmV0dXJuIENhbnZhc1N0eWxlKEN1cnJlbnRDb2xvcldpdGhPdmVycmlkZUFscGhhLCBhbHBo
YSk7CisgICAgICAgIHJldHVybiBDdXJyZW50Q29sb3IgeyBhbHBoYSB9OwogCiAgICAgQ29sb3Ig
Y29sb3IgPSBwYXJzZUNvbG9yKGNvbG9yU3RyaW5nKTsKLSAgICBpZiAoY29sb3IuaXNWYWxpZCgp
KQotICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUoY29sb3JXaXRoT3ZlcnJpZGVBbHBoYShjb2xv
ci5yZ2IoKSwgYWxwaGEpKTsKKyAgICBpZiAoIWNvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0
dXJuIHsgfTsKIAotICAgIHJldHVybiBDYW52YXNTdHlsZSgpOworICAgIHJldHVybiBDb2xvciB7
IGNvbG9yV2l0aE92ZXJyaWRlQWxwaGEoY29sb3IucmdiKCksIGFscGhhKSB9OwogfQogCiBib29s
IENhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDb2xvcihjb25zdCBDYW52YXNTdHlsZSYgb3RoZXIp
IGNvbnN0CiB7Ci0gICAgaWYgKG1fdHlwZSAhPSBvdGhlci5tX3R5cGUpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDb2xvcj4obV9zdHlsZSkg
JiYgV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDb2xvcj4ob3RoZXIubV9zdHlsZSkpCisgICAgICAg
IHJldHVybiBXVEY6OmdldDxDb2xvcj4obV9zdHlsZSkgPT0gV1RGOjpnZXQ8Q29sb3I+KG90aGVy
Lm1fc3R5bGUpOwogCi0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFJHQkE6Ci0gICAg
ICAgIHJldHVybiBtX2NvbG9yID09IG90aGVyLm1fY29sb3I7Ci0gICAgY2FzZSBDTVlLQToKLSAg
ICAgICAgcmV0dXJuIG1fY215a2EtPmMgPT0gb3RoZXIubV9jbXlrYS0+YwotICAgICAgICAgICAg
JiYgbV9jbXlrYS0+bSA9PSBvdGhlci5tX2NteWthLT5tCi0gICAgICAgICAgICAmJiBtX2NteWth
LT55ID09IG90aGVyLm1fY215a2EtPnkKLSAgICAgICAgICAgICYmIG1fY215a2EtPmsgPT0gb3Ro
ZXIubV9jbXlrYS0+awotICAgICAgICAgICAgJiYgbV9jbXlrYS0+YSA9PSBvdGhlci5tX2NteWth
LT5hOwotICAgIGNhc2UgR3JhZGllbnQ6Ci0gICAgY2FzZSBJbWFnZVBhdHRlcm46Ci0gICAgY2Fz
ZSBDdXJyZW50Q29sb3I6Ci0gICAgY2FzZSBDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBoYToK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2UgSW52YWxpZDoKLSAgICAgICAgYnJlYWs7
CisgICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q01ZS0FDb2xvcj4obV9zdHlsZSkgJiYg
V1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDTVlLQUNvbG9yPihvdGhlci5tX3N0eWxlKSkgeworICAg
ICAgICBhdXRvJiBhID0gV1RGOjpnZXQ8Q01ZS0FDb2xvcj4obV9zdHlsZSk7CisgICAgICAgIGF1
dG8mIGIgPSBXVEY6OmdldDxDTVlLQUNvbG9yPihvdGhlci5tX3N0eWxlKTsKKyAgICAgICAgcmV0
dXJuIGEuYyA9PSBiLmMgJiYgYS5tID09IGIubSAmJiBhLnkgPT0gYi55ICYmIGEuayA9PSBiLmsg
JiYgYS5hID09IGIuYTsKICAgICB9CiAKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgQ2FudmFzU3R5bGU6OmlzRXF1aXZhbGVudFJHQkEoZmxv
YXQgciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQgYSkgY29uc3QKIHsKLSAgICBpZiAobV90eXBl
ICE9IFJHQkEpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBtX2NvbG9yID09
IENvbG9yKHIsIGcsIGIsIGEpOworICAgIHJldHVybiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENv
bG9yPihtX3N0eWxlKSAmJiBXVEY6OmdldDxDb2xvcj4obV9zdHlsZSkgPT0gQ29sb3IgeyByLCBn
LCBiLCBhIH07CiB9CiAKIGJvb2wgQ2FudmFzU3R5bGU6OmlzRXF1aXZhbGVudENNWUtBKGZsb2F0
IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZsb2F0IGEpIGNvbnN0CiB7Ci0gICAgaWYg
KG1fdHlwZSAhPSBDTVlLQSkKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q01ZS0FD
b2xvcj4obV9zdHlsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBjID09
IG1fY215a2EtPmMKLSAgICAgICAgJiYgbSA9PSBtX2NteWthLT5tCi0gICAgICAgICYmIHkgPT0g
bV9jbXlrYS0+eQotICAgICAgICAmJiBrID09IG1fY215a2EtPmsKLSAgICAgICAgJiYgYSA9PSBt
X2NteWthLT5hOwotfQotCi1DYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoY29uc3QgQ2FudmFzU3R5
bGUmIG90aGVyKQotewotICAgIG1lbWNweSh0aGlzLCAmb3RoZXIsIHNpemVvZihDYW52YXNTdHls
ZSkpOwotICAgIGlmIChtX3R5cGUgPT0gR3JhZGllbnQpCi0gICAgICAgIG1fZ3JhZGllbnQtPnJl
ZigpOwotICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBJbWFnZVBhdHRlcm4pCi0gICAgICAgIG1fcGF0
dGVybi0+cmVmKCk7Ci0gICAgZWxzZSBpZiAobV90eXBlID09IENNWUtBKQotICAgICAgICBtX2Nt
eWthID0gbmV3IENNWUtBVmFsdWVzKG90aGVyLm1fY215a2EtPmNvbG9yLCBvdGhlci5tX2NteWth
LT5jLCBvdGhlci5tX2NteWthLT5tLCBvdGhlci5tX2NteWthLT55LCBvdGhlci5tX2NteWthLT5r
LCBvdGhlci5tX2NteWthLT5hKTsKLX0KLQotQ2FudmFzU3R5bGUmIENhbnZhc1N0eWxlOjpvcGVy
YXRvcj0oY29uc3QgQ2FudmFzU3R5bGUmIG90aGVyKQotewotICAgIGlmICh0aGlzICE9ICZvdGhl
cikgewotICAgICAgICB0aGlzLT5+Q2FudmFzU3R5bGUoKTsKLSAgICAgICAgbmV3ICh0aGlzKSBD
YW52YXNTdHlsZShvdGhlcik7Ci0gICAgfQotICAgIHJldHVybiAqdGhpczsKKyAgICBhdXRvJiBj
aGFubmVscyA9IFdURjo6Z2V0PENNWUtBQ29sb3I+KG1fc3R5bGUpOworICAgIHJldHVybiBjID09
IGNoYW5uZWxzLmMgJiYgbSA9PSBjaGFubmVscy5tICYmIHkgPT0gY2hhbm5lbHMueSAmJiBrID09
IGNoYW5uZWxzLmsgJiYgYSA9PSBjaGFubmVscy5hOwogfQogCi12b2lkIENhbnZhc1N0eWxlOjph
cHBseVN0cm9rZUNvbG9yKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkgY29uc3QKK3ZvaWQgQ2Fu
dmFzU3R5bGU6OmFwcGx5U3Ryb2tlQ29sb3IoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25z
dAogewotICAgIGlmICghY29udGV4dCkKLSAgICAgICAgcmV0dXJuOwotICAgIHN3aXRjaCAobV90
eXBlKSB7Ci0gICAgY2FzZSBSR0JBOgotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvciht
X2NvbG9yKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDTVlLQTogewotICAgICAgICAvLyBG
SVhNRTogRG8gdGhpcyB0aHJvdWdoIHBsYXRmb3JtLWluZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4
dCBBUEkuCi0gICAgICAgIC8vIFdlJ2xsIG5lZWQgYSBmYW5jaWVyIENvbG9yIGFic3RyYWN0aW9u
IHRvIHN1cHBvcnQgQ01ZS0EgY29ycmVjdGx5CisgICAgV1RGOjpzd2l0Y2hPbihtX3N0eWxlLAor
ICAgICAgICBbJmNvbnRleHRdIChjb25zdCBDb2xvciYgY29sb3IpIHsKKyAgICAgICAgICAgIGNv
bnRleHQuc2V0U3Ryb2tlQ29sb3IoY29sb3IpOworICAgICAgICB9LAorICAgICAgICBbJmNvbnRl
eHRdIChjb25zdCBDTVlLQUNvbG9yJiBjb2xvcikgeworICAgICAgICAgICAgLy8gRklYTUU6IERv
IHRoaXMgdGhyb3VnaCBwbGF0Zm9ybS1pbmRlcGVuZGVudCBHcmFwaGljc0NvbnRleHQgQVBJLgor
ICAgICAgICAgICAgLy8gV2UnbGwgbmVlZCBhIGZhbmNpZXIgQ29sb3IgYWJzdHJhY3Rpb24gdG8g
c3VwcG9ydCBDTVlLQSBjb3JyZWN0bHkKICNpZiBVU0UoQ0cpCi0gICAgICAgIENHQ29udGV4dFNl
dENNWUtTdHJva2VDb2xvcihjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgbV9jbXlrYS0+Yywg
bV9jbXlrYS0+bSwgbV9jbXlrYS0+eSwgbV9jbXlrYS0+aywgbV9jbXlrYS0+YSk7CisgICAgICAg
ICAgICBDR0NvbnRleHRTZXRDTVlLU3Ryb2tlQ29sb3IoY29udGV4dC5wbGF0Zm9ybUNvbnRleHQo
KSwgY29sb3IuYywgY29sb3IubSwgY29sb3IueSwgY29sb3IuaywgY29sb3IuYSk7CiAjZWxzZQot
ICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihtX2NteWthLT5jb2xvcik7CisgICAgICAg
ICAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9yLmNvbG9yKTsKICNlbmRpZgotICAgICAg
ICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBHcmFkaWVudDoKLSAgICAgICAgY29udGV4dC0+c2V0
U3Ryb2tlR3JhZGllbnQoY2FudmFzR3JhZGllbnQoKS0+Z3JhZGllbnQoKSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgSW1hZ2VQYXR0ZXJuOgotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VQ
YXR0ZXJuKGNhbnZhc1BhdHRlcm4oKS0+cGF0dGVybigpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBDdXJyZW50Q29sb3I6Ci0gICAgY2FzZSBDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBo
YToKLSAgICBjYXNlIEludmFsaWQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICBicmVhazsKLSAgICB9Ci19Ci0KLXZvaWQgQ2FudmFzU3R5bGU6OmFwcGx5RmlsbENvbG9y
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkgY29uc3QKLXsKLSAgICBpZiAoIWNvbnRleHQpCi0g
ICAgICAgIHJldHVybjsKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgUkdCQToKLSAg
ICAgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKG1fY29sb3IpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIENNWUtBOiB7Ci0gICAgICAgIC8vIEZJWE1FOiBEbyB0aGlzIHRocm91Z2ggcGxhdGZv
cm0taW5kZXBlbmRlbnQgR3JhcGhpY3NDb250ZXh0IEFQSS4KLSAgICAgICAgLy8gV2UnbGwgbmVl
ZCBhIGZhbmNpZXIgQ29sb3IgYWJzdHJhY3Rpb24gdG8gc3VwcG9ydCBDTVlLQSBjb3JyZWN0bHkK
KyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZhc0dyYWRp
ZW50PiYgZ3JhZGllbnQpIHsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlR3JhZGllbnQo
Z3JhZGllbnQtPmdyYWRpZW50KCkpOworICAgICAgICB9LAorICAgICAgICBbJmNvbnRleHRdIChj
b25zdCBSZWZQdHI8Q2FudmFzUGF0dGVybj4mIHBhdHRlcm4pIHsKKyAgICAgICAgICAgIGNvbnRl
eHQuc2V0U3Ryb2tlUGF0dGVybihwYXR0ZXJuLT5wYXR0ZXJuKCkpOworICAgICAgICB9LAorICAg
ICAgICBbXSAoY29uc3QgQ3VycmVudENvbG9yJikgeworICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIH0sCisgICAgICAgIFtdIChjb25zdCBJbnZhbGlkJikgeworICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICApOworfQorCit2
b2lkIENhbnZhc1N0eWxlOjphcHBseUZpbGxDb2xvcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQp
IGNvbnN0Cit7CisgICAgV1RGOjpzd2l0Y2hPbihtX3N0eWxlLAorICAgICAgICBbJmNvbnRleHRd
IChjb25zdCBDb2xvciYgY29sb3IpIHsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9y
KGNvbG9yKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgQ01ZS0FDb2xv
ciYgY29sb3IpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBEbyB0aGlzIHRocm91Z2ggcGxhdGZv
cm0taW5kZXBlbmRlbnQgR3JhcGhpY3NDb250ZXh0IEFQSS4KKyAgICAgICAgICAgIC8vIFdlJ2xs
IG5lZWQgYSBmYW5jaWVyIENvbG9yIGFic3RyYWN0aW9uIHRvIHN1cHBvcnQgQ01ZS0EgY29ycmVj
dGx5CiAjaWYgVVNFKENHKQotICAgICAgICBDR0NvbnRleHRTZXRDTVlLRmlsbENvbG9yKGNvbnRl
eHQtPnBsYXRmb3JtQ29udGV4dCgpLCBtX2NteWthLT5jLCBtX2NteWthLT5tLCBtX2NteWthLT55
LCBtX2NteWthLT5rLCBtX2NteWthLT5hKTsKKyAgICAgICAgICAgIENHQ29udGV4dFNldENNWUtG
aWxsQ29sb3IoY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSwgY29sb3IuYywgY29sb3IubSwgY29s
b3IueSwgY29sb3IuaywgY29sb3IuYSk7CiAjZWxzZQotICAgICAgICBjb250ZXh0LT5zZXRGaWxs
Q29sb3IobV9jbXlrYS0+Y29sb3IpOworICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3Io
Y29sb3IuY29sb3IpOwogI2VuZGlmCi0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIEdy
YWRpZW50OgotICAgICAgICBjb250ZXh0LT5zZXRGaWxsR3JhZGllbnQoY2FudmFzR3JhZGllbnQo
KS0+Z3JhZGllbnQoKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW1hZ2VQYXR0ZXJuOgot
ICAgICAgICBjb250ZXh0LT5zZXRGaWxsUGF0dGVybihjYW52YXNQYXR0ZXJuKCktPnBhdHRlcm4o
KSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ3VycmVudENvbG9yOgotICAgIGNhc2UgQ3Vy
cmVudENvbG9yV2l0aE92ZXJyaWRlQWxwaGE6Ci0gICAgY2FzZSBJbnZhbGlkOgotICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgICAgICB9LAor
ICAgICAgICBbJmNvbnRleHRdIChjb25zdCBSZWZQdHI8Q2FudmFzR3JhZGllbnQ+JiBncmFkaWVu
dCkgeworICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsR3JhZGllbnQoZ3JhZGllbnQtPmdyYWRp
ZW50KCkpOworICAgICAgICB9LAorICAgICAgICBbJmNvbnRleHRdIChjb25zdCBSZWZQdHI8Q2Fu
dmFzUGF0dGVybj4mIHBhdHRlcm4pIHsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbFBhdHRl
cm4ocGF0dGVybi0+cGF0dGVybigpKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10gKGNvbnN0IEN1
cnJlbnRDb2xvciYpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICB9LAorICAgICAgICBbXSAoY29uc3QgSW52YWxpZCYpIHsKKyAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgKaW5kZXggYjZiZjQ3YzQwM2MzZDllOTU2MDU2OTE0YTA0
YmJjMzBhMGFhYmEyYi4uMjc3NGE3YTU1ODQyYTJiZDE2NWE1MGM1OTcxZWY3YmU1MzM1NzBiOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yNiwx
MzUgKzI2LDEwMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkNhbnZhc0dyYWRpZW50
LmgiCisjaW5jbHVkZSAiQ2FudmFzUGF0dGVybi5oIgogI2luY2x1ZGUgIkNvbG9yLmgiCi0jaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBj
bGFzcyBDYW52YXNHcmFkaWVudDsKLSAgICBjbGFzcyBDYW52YXNQYXR0ZXJuOwotICAgIGNsYXNz
IERvY3VtZW50OwotICAgIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKLSAgICBjbGFzcyBIVE1MQ2Fu
dmFzRWxlbWVudDsKLQotICAgIGNsYXNzIENhbnZhc1N0eWxlIHsKLSAgICBwdWJsaWM6Ci0gICAg
ICAgIENhbnZhc1N0eWxlKCk7Ci0gICAgICAgIGV4cGxpY2l0IENhbnZhc1N0eWxlKENvbG9yKTsK
LSAgICAgICAgQ2FudmFzU3R5bGUoZmxvYXQgZ3JheUxldmVsLCBmbG9hdCBhbHBoYSk7Ci0gICAg
ICAgIENhbnZhc1N0eWxlKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGFscGhhKTsK
LSAgICAgICAgQ2FudmFzU3R5bGUoZmxvYXQgYywgZmxvYXQgbSwgZmxvYXQgeSwgZmxvYXQgaywg
ZmxvYXQgYWxwaGEpOwotICAgICAgICBleHBsaWNpdCBDYW52YXNTdHlsZShQYXNzUmVmUHRyPENh
bnZhc0dyYWRpZW50Pik7Ci0gICAgICAgIGV4cGxpY2l0IENhbnZhc1N0eWxlKFBhc3NSZWZQdHI8
Q2FudmFzUGF0dGVybj4pOwotICAgICAgICB+Q2FudmFzU3R5bGUoKTsKLQotICAgICAgICBzdGF0
aWMgQ2FudmFzU3R5bGUgY3JlYXRlRnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIGNvbG9yLCBEb2N1
bWVudCogPSAwKTsKLSAgICAgICAgc3RhdGljIENhbnZhc1N0eWxlIGNyZWF0ZUZyb21TdHJpbmdX
aXRoT3ZlcnJpZGVBbHBoYShjb25zdCBTdHJpbmcmIGNvbG9yLCBmbG9hdCBhbHBoYSk7Ci0KLSAg
ICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEludmFsaWQ7IH0K
LSAgICAgICAgYm9vbCBpc0N1cnJlbnRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBD
dXJyZW50Q29sb3IgfHwgbV90eXBlID09IEN1cnJlbnRDb2xvcldpdGhPdmVycmlkZUFscGhhOyB9
Ci0gICAgICAgIGJvb2wgaGFzT3ZlcnJpZGVBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9
PSBDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBoYTsgfQotICAgICAgICBmbG9hdCBvdmVycmlk
ZUFscGhhKCkgY29uc3QgeyBBU1NFUlQobV90eXBlID09IEN1cnJlbnRDb2xvcldpdGhPdmVycmlk
ZUFscGhhKTsgcmV0dXJuIG1fb3ZlcnJpZGVBbHBoYTsgfQotCi0gICAgICAgIFN0cmluZyBjb2xv
cigpIGNvbnN0OwotICAgICAgICBDYW52YXNHcmFkaWVudCogY2FudmFzR3JhZGllbnQoKSBjb25z
dDsKLSAgICAgICAgQ2FudmFzUGF0dGVybiogY2FudmFzUGF0dGVybigpIGNvbnN0OwotCi0gICAg
ICAgIHZvaWQgYXBwbHlGaWxsQ29sb3IoR3JhcGhpY3NDb250ZXh0KikgY29uc3Q7Ci0gICAgICAg
IHZvaWQgYXBwbHlTdHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQqKSBjb25zdDsKLQotICAgICAg
ICBib29sIGlzRXF1aXZhbGVudENvbG9yKGNvbnN0IENhbnZhc1N0eWxlJikgY29uc3Q7Ci0gICAg
ICAgIGJvb2wgaXNFcXVpdmFsZW50UkdCQShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9h
dCBhKSBjb25zdDsKLSAgICAgICAgYm9vbCBpc0VxdWl2YWxlbnRDTVlLQShmbG9hdCBjLCBmbG9h
dCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBhKSBjb25zdDsKLQotICAgICAgICBDYW52YXNT
dHlsZShjb25zdCBDYW52YXNTdHlsZSYpOwotICAgICAgICBDYW52YXNTdHlsZSYgb3BlcmF0b3I9
KGNvbnN0IENhbnZhc1N0eWxlJik7Ci0gICAgICAgIENhbnZhc1N0eWxlKENhbnZhc1N0eWxlJiYp
OwotICAgICAgICBDYW52YXNTdHlsZSYgb3BlcmF0b3I9KENhbnZhc1N0eWxlJiYpOwotCi0gICAg
cHJpdmF0ZToKLSAgICAgICAgZW51bSBUeXBlIHsgUkdCQSwgQ01ZS0EsIEdyYWRpZW50LCBJbWFn
ZVBhdHRlcm4sIEN1cnJlbnRDb2xvciwgQ3VycmVudENvbG9yV2l0aE92ZXJyaWRlQWxwaGEsIElu
dmFsaWQgfTsKLSAgICAgICAgc3RydWN0IENNWUtBVmFsdWVzIHsKLSAgICAgICAgICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ01Z
S0FWYWx1ZXMpOwotICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICBDTVlLQVZhbHVlcygpCi0g
ICAgICAgICAgICAgICAgOiBjb2xvcigpLCBjKDApLCBtKDApLCB5KDApLCBrKDApLCBhKDApCi0g
ICAgICAgICAgICB7IH0KLQotICAgICAgICAgICAgQ01ZS0FWYWx1ZXMoQ29sb3IgY29sb3IsIGZs
b2F0IGN5YW4sIGZsb2F0IG1hZ2VudGEsIGZsb2F0IHllbGxvdywgZmxvYXQgYmxhY2ssIGZsb2F0
IGFscGhhKQotICAgICAgICAgICAgICAgIDogY29sb3IoY29sb3IpLCBjKGN5YW4pLCBtKG1hZ2Vu
dGEpLCB5KHllbGxvdyksIGsoYmxhY2spLCBhKGFscGhhKQotICAgICAgICAgICAgeyB9Ci0gICAg
ICAgICAgICBDb2xvciBjb2xvcjsKLSAgICAgICAgICAgIGZsb2F0IGM7Ci0gICAgICAgICAgICBm
bG9hdCBtOwotICAgICAgICAgICAgZmxvYXQgeTsKLSAgICAgICAgICAgIGZsb2F0IGs7Ci0gICAg
ICAgICAgICBmbG9hdCBhOwotICAgICAgICB9OwotCi0gICAgICAgIGVudW0gQ29uc3RydWN0Q3Vy
cmVudENvbG9yVGFnIHsgQ29uc3RydWN0Q3VycmVudENvbG9yIH07Ci0gICAgICAgIENhbnZhc1N0
eWxlKENvbnN0cnVjdEN1cnJlbnRDb2xvclRhZykgOiBtX3R5cGUoQ3VycmVudENvbG9yKSB7IH0K
LSAgICAgICAgQ2FudmFzU3R5bGUoVHlwZSB0eXBlLCBmbG9hdCBvdmVycmlkZUFscGhhKQotICAg
ICAgICAgICAgOiBtX292ZXJyaWRlQWxwaGEob3ZlcnJpZGVBbHBoYSkKLSAgICAgICAgICAgICwg
bV90eXBlKHR5cGUpCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKK2Ns
YXNzIEhUTUxDYW52YXNFbGVtZW50OworCitjbGFzcyBDYW52YXNTdHlsZSB7CitwdWJsaWM6Cisg
ICAgQ2FudmFzU3R5bGUoKTsKKyAgICBDYW52YXNTdHlsZShDb2xvcik7CisgICAgQ2FudmFzU3R5
bGUoZmxvYXQgZ3JheUxldmVsLCBmbG9hdCBhbHBoYSk7CisgICAgQ2FudmFzU3R5bGUoZmxvYXQg
ciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQgYWxwaGEpOworICAgIENhbnZhc1N0eWxlKGZsb2F0
IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZsb2F0IGFscGhhKTsKKyAgICBDYW52YXNT
dHlsZShDYW52YXNHcmFkaWVudCYpOworICAgIENhbnZhc1N0eWxlKENhbnZhc1BhdHRlcm4mKTsK
KworICAgIHN0YXRpYyBDYW52YXNTdHlsZSBjcmVhdGVGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYg
Y29sb3IsIERvY3VtZW50KiA9IG51bGxwdHIpOworICAgIHN0YXRpYyBDYW52YXNTdHlsZSBjcmVh
dGVGcm9tU3RyaW5nV2l0aE92ZXJyaWRlQWxwaGEoY29uc3QgU3RyaW5nJiBjb2xvciwgZmxvYXQg
YWxwaGEpOworCisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gIVdURjo6aG9sZHNf
YWx0ZXJuYXRpdmU8SW52YWxpZD4obV9zdHlsZSk7IH0KKyAgICBib29sIGlzQ3VycmVudENvbG9y
KCkgY29uc3QgeyByZXR1cm4gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDdXJyZW50Q29sb3I+KG1f
c3R5bGUpOyB9CisgICAgYm9vbCBoYXNPdmVycmlkZUFscGhhKCkgY29uc3QgeyByZXR1cm4gaXND
dXJyZW50Q29sb3IoKSAmJiBXVEY6OmdldDxDdXJyZW50Q29sb3I+KG1fc3R5bGUpLm92ZXJyaWRl
QWxwaGE7IH0KKyAgICBmbG9hdCBvdmVycmlkZUFscGhhKCkgY29uc3QgeyByZXR1cm4gV1RGOjpn
ZXQ8Q3VycmVudENvbG9yPihtX3N0eWxlKS5vdmVycmlkZUFscGhhLnZhbHVlKCk7IH0KKworICAg
IFN0cmluZyBjb2xvcigpIGNvbnN0OworICAgIENhbnZhc0dyYWRpZW50KiBjYW52YXNHcmFkaWVu
dCgpIGNvbnN0OworICAgIENhbnZhc1BhdHRlcm4qIGNhbnZhc1BhdHRlcm4oKSBjb25zdDsKKwor
ICAgIHZvaWQgYXBwbHlGaWxsQ29sb3IoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CisgICAgdm9p
ZCBhcHBseVN0cm9rZUNvbG9yKEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OworCisgICAgYm9vbCBp
c0VxdWl2YWxlbnRDb2xvcihjb25zdCBDYW52YXNTdHlsZSYpIGNvbnN0OworICAgIGJvb2wgaXNF
cXVpdmFsZW50UkdCQShmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBh
bHBoYSkgY29uc3Q7CisgICAgYm9vbCBpc0VxdWl2YWxlbnRDTVlLQShmbG9hdCBjeWFuLCBmbG9h
dCBtYWdlbnRhLCBmbG9hdCB5ZWxsb3csIGZsb2F0IGJsYWNrLCBmbG9hdCBhbHBoYSkgY29uc3Q7
CisKK3ByaXZhdGU6CisgICAgc3RydWN0IEludmFsaWQgeyB9OworCisgICAgc3RydWN0IENNWUtB
Q29sb3IgeworICAgICAgICBDTVlLQUNvbG9yKCkgPSBkZWZhdWx0OworCisgICAgICAgIENNWUtB
Q29sb3IoQ29sb3IgY29sb3IsIGZsb2F0IGN5YW4sIGZsb2F0IG1hZ2VudGEsIGZsb2F0IHllbGxv
dywgZmxvYXQgYmxhY2ssIGZsb2F0IGFscGhhKQorICAgICAgICAgICAgOiBjb2xvcihjb2xvciks
IGMoY3lhbiksIG0obWFnZW50YSksIHkoeWVsbG93KSwgayhibGFjayksIGEoYWxwaGEpCiAgICAg
ICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIHVuaW9uIHsKLSAgICAgICAgICAgIENvbG9yIG1f
Y29sb3I7Ci0gICAgICAgICAgICBmbG9hdCBtX292ZXJyaWRlQWxwaGE7Ci0gICAgICAgICAgICBD
YW52YXNHcmFkaWVudCogbV9ncmFkaWVudDsKLSAgICAgICAgICAgIENhbnZhc1BhdHRlcm4qIG1f
cGF0dGVybjsKLSAgICAgICAgICAgIENNWUtBVmFsdWVzKiBtX2NteWthOwotICAgICAgICB9Owot
ICAgICAgICBUeXBlIG1fdHlwZTsKKyAgICAgICAgQ29sb3IgY29sb3I7CisgICAgICAgIGZsb2F0
IGMgeyAwIH07CisgICAgICAgIGZsb2F0IG0geyAwIH07CisgICAgICAgIGZsb2F0IHkgeyAwIH07
CisgICAgICAgIGZsb2F0IGsgeyAwIH07CisgICAgICAgIGZsb2F0IGEgeyAwIH07CiAgICAgfTsK
IAotICAgIENvbG9yIGN1cnJlbnRDb2xvcihIVE1MQ2FudmFzRWxlbWVudCopOwotICAgIENvbG9y
IHBhcnNlQ29sb3JPckN1cnJlbnRDb2xvcihjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBIVE1M
Q2FudmFzRWxlbWVudCopOwotCi0gICAgaW5saW5lIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZSgp
Ci0gICAgICAgIDogbV90eXBlKEludmFsaWQpCi0gICAgewotICAgIH0KLQotICAgIGlubGluZSBD
YW52YXNHcmFkaWVudCogQ2FudmFzU3R5bGU6OmNhbnZhc0dyYWRpZW50KCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIGlmIChtX3R5cGUgPT0gR3JhZGllbnQpCi0gICAgICAgICAgICByZXR1cm4gbV9n
cmFkaWVudDsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgaW5saW5lIENhbnZhc1Bh
dHRlcm4qIENhbnZhc1N0eWxlOjpjYW52YXNQYXR0ZXJuKCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IGlmIChtX3R5cGUgPT0gSW1hZ2VQYXR0ZXJuKQotICAgICAgICAgICAgcmV0dXJuIG1fcGF0dGVy
bjsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgaW5saW5lIFN0cmluZyBDYW52YXNT
dHlsZTo6Y29sb3IoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBSR0JB
IHx8IG1fdHlwZSA9PSBDTVlLQSk7Ci0gICAgICAgIGlmIChtX3R5cGUgPT0gUkdCQSkKLSAgICAg
ICAgICAgIHJldHVybiBtX2NvbG9yLnNlcmlhbGl6ZWQoKTsKLSAgICAgICAgcmV0dXJuIG1fY215
a2EtPmNvbG9yLnNlcmlhbGl6ZWQoKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgQ2FudmFzU3R5bGU6
OkNhbnZhc1N0eWxlKENhbnZhc1N0eWxlJiYgb3RoZXIpCi0gICAgewotICAgICAgICBtZW1jcHko
dGhpcywgJm90aGVyLCBzaXplb2YoQ2FudmFzU3R5bGUpKTsKLSAgICAgICAgb3RoZXIubV90eXBl
ID0gSW52YWxpZDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgQ2FudmFzU3R5bGUmIENhbnZhc1N0eWxl
OjpvcGVyYXRvcj0oQ2FudmFzU3R5bGUmJiBvdGhlcikKLSAgICB7Ci0gICAgICAgIGlmICh0aGlz
ICE9ICZvdGhlcikgewotICAgICAgICAgICAgbWVtY3B5KHRoaXMsICZvdGhlciwgc2l6ZW9mKENh
bnZhc1N0eWxlKSk7Ci0gICAgICAgICAgICBvdGhlci5tX3R5cGUgPSBJbnZhbGlkOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9CisgICAgc3RydWN0IEN1cnJlbnRDb2xv
ciB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IG92ZXJyaWRlQWxwaGE7CisgICAgfTsK
KworICAgIENhbnZhc1N0eWxlKEN1cnJlbnRDb2xvcik7CisKKyAgICBWYXJpYW50PEludmFsaWQs
IENvbG9yLCBDTVlLQUNvbG9yLCBSZWZQdHI8Q2FudmFzR3JhZGllbnQ+LCBSZWZQdHI8Q2FudmFz
UGF0dGVybj4sIEN1cnJlbnRDb2xvcj4gbV9zdHlsZTsKK307CisKK0NvbG9yIGN1cnJlbnRDb2xv
cihIVE1MQ2FudmFzRWxlbWVudCopOworQ29sb3IgcGFyc2VDb2xvck9yQ3VycmVudENvbG9yKGNv
bnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIEhUTUxDYW52YXNFbGVtZW50Kik7CisKK2lubGluZSBD
YW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoKQorICAgIDogbV9zdHlsZShJbnZhbGlkIHsgfSkKK3sK
K30KKworaW5saW5lIENhbnZhc0dyYWRpZW50KiBDYW52YXNTdHlsZTo6Y2FudmFzR3JhZGllbnQo
KSBjb25zdAoreworICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxSZWZQdHI8Q2FudmFz
R3JhZGllbnQ+PihtX3N0eWxlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJu
IFdURjo6Z2V0PFJlZlB0cjxDYW52YXNHcmFkaWVudD4+KG1fc3R5bGUpLmdldCgpOworfQorCitp
bmxpbmUgQ2FudmFzUGF0dGVybiogQ2FudmFzU3R5bGU6OmNhbnZhc1BhdHRlcm4oKSBjb25zdAor
eworICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxSZWZQdHI8Q2FudmFzUGF0dGVybj4+
KG1fc3R5bGUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gV1RGOjpnZXQ8
UmVmUHRyPENhbnZhc1BhdHRlcm4+PihtX3N0eWxlKS5nZXQoKTsKK30KKworaW5saW5lIFN0cmlu
ZyBDYW52YXNTdHlsZTo6Y29sb3IoKSBjb25zdAoreworICAgIGF1dG8mIGNvbG9yID0gV1RGOjpo
b2xkc19hbHRlcm5hdGl2ZTxDb2xvcj4obV9zdHlsZSkgPyBXVEY6OmdldDxDb2xvcj4obV9zdHls
ZSkgOiBXVEY6OmdldDxDTVlLQUNvbG9yPihtX3N0eWxlKS5jb2xvcjsKKyAgICByZXR1cm4gY29s
b3Iuc2VyaWFsaXplZCgpOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKaW5kZXgg
YzhiMTBmN2JmYmM2ODFkOGFhODU5NTlhM2YxZTI3ZDYzNzhlNjlhZS4uMWVmODMzMTc0ZmViOWMz
MWFiMGU4ZDkyZmZkZjRjMzA1MGI0YjhhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcApAQCAtNDksOCArNDksOCBAQCBSZWZQ
dHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gT0VTVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0
ZVZlcnRleEFycmF5T0VTKCkKICAgICBpZiAobV9jb250ZXh0LmlzQ29udGV4dExvc3QoKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIG9iamVjdCA9IFdlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVM6OmNyZWF0ZShtX2NvbnRleHQsIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6
OlZBT1R5cGVVc2VyKTsKLSAgICBtX2NvbnRleHQuYWRkQ29udGV4dE9iamVjdChvYmplY3QucHRy
KCkpOworICAgIGF1dG8gb2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRl
KG1fY29udGV4dCwgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6VHlwZTo6VXNlcik7CisgICAg
bV9jb250ZXh0LmFkZENvbnRleHRPYmplY3Qob2JqZWN0LmdldCgpKTsKICAgICByZXR1cm4gV1RG
TW92ZShvYmplY3QpOwogfQogCkBAIC01OCw5ICs1OCw5IEBAIHZvaWQgT0VTVmVydGV4QXJyYXlP
YmplY3Q6OmRlbGV0ZVZlcnRleEFycmF5T0VTKFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMqIGFy
cmF5CiB7CiAgICAgaWYgKCFhcnJheU9iamVjdCB8fCBtX2NvbnRleHQuaXNDb250ZXh0TG9zdCgp
KQogICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgaWYgKCFhcnJheU9iamVjdC0+aXNEZWZhdWx0
T2JqZWN0KCkgJiYgYXJyYXlPYmplY3QgPT0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250
ZXh0Kj4oJm1fY29udGV4dCktPm1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCkKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Kj4oJm1fY29udGV4dCktPnNldEJvdW5kVmVy
dGV4QXJyYXlPYmplY3QoMCk7CisKKyAgICBpZiAoIWFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmpl
Y3QoKSAmJiBhcnJheU9iamVjdCA9PSBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQm
PihtX2NvbnRleHQpLm1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCkKKyAgICAgICAgc3RhdGljX2Nh
c3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Jj4obV9jb250ZXh0KS5zZXRCb3VuZFZlcnRleEFycmF5
T2JqZWN0KG51bGxwdHIpOwogCiAgICAgYXJyYXlPYmplY3QtPmRlbGV0ZU9iamVjdChtX2NvbnRl
eHQuZ3JhcGhpY3NDb250ZXh0M0QoKSk7CiB9CkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgT0VTVmVy
dGV4QXJyYXlPYmplY3Q6OmJpbmRWZXJ0ZXhBcnJheU9FUyhXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTKiBhcnJheU9iCiAgICAgICAgIGNvbnRleHQuc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChh
cnJheU9iamVjdCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZXh0ZW5zaW9ucy5iaW5kVmVydGV4
QXJyYXlPRVMoMCk7Ci0gICAgICAgIGNvbnRleHQuc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdCgw
KTsKKyAgICAgICAgY29udGV4dC5zZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KG51bGxwdHIpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wy
UmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJS
ZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA0ODBhMGNhOTViNTE4MzEyMzgwYzljZWZiODQ0OGYy
NTkxMDgxODE3Li5mZjU5OTE4YmRjYWZkYmNkNmMzNDc4NmM4NzIxZWZmYjg4NjIxNjJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250
ZXh0LmNwcApAQCAtMjQsOSArMjQsOSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpICYm
IEVOQUJMRShXRUJHTDIpCi0jaW5jbHVkZSAiV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oIgogCiAj
aW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJFWFRUZXh0dXJlRmlsdGVyQW5pc290
cm9waWMuaCIKQEAgLTYzLDcgKzYzLDcgQEAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6V2ViR0wy
UmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLAogewogfQog
Ci1XZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52
YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4mJiBjb250
ZXh0LCBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcykKK1dlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBh
c3NlZENhbnZhcywgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQsIEdyYXBoaWNzQ29u
dGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIDogV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZShwYXNzZWRDYW52YXMsIFdURk1vdmUoY29udGV4dCksIGF0dHJpYnV0ZXMpCiB7CiAgICAg
aW5pdGlhbGl6ZVNoYWRlckV4dGVuc2lvbnMoKTsKQEAgLTcyLDggKzcyLDggQEAgV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYg
cGFzc2VkQ2FudmFzLAogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVW
ZXJ0ZXhBcnJheU9iamVjdHMoKQogewotICAgIG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0ID0g
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlKCp0aGlzLCBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0OjpWQU9UeXBlRGVmYXVsdCk7Ci0gICAgYWRkQ29udGV4dE9iamVjdChtX2RlZmF1bHRWZXJ0
ZXhBcnJheU9iamVjdC5nZXQoKSk7CisgICAgbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QgPSBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3Q6OlR5cGU6OkRlZmF1bHQpOworICAgIGFkZENvbnRleHRPYmplY3QoKm1fZGVmYXVsdFZlcnRl
eEFycmF5T2JqZWN0KTsKICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBtX2RlZmF1bHRW
ZXJ0ZXhBcnJheU9iamVjdDsKICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSkKICAgICAgICAg
aW5pdFZlcnRleEF0dHJpYjAoKTsKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmNvcHlCdWZmZXJTdWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0Rl
bnVtIHdyaQogICAgIH0KIAogICAgIG1fY29udGV4dC0+bW92ZUVycm9yc1RvU3ludGhldGljRXJy
b3JMaXN0KCk7Ci0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpCisjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgbV9jb250ZXh0LT5jb3B5QnVmZmVyU3ViRGF0YShyZWFkVGFyZ2V0LCB3
cml0ZVRhcmdldCwgY2hlY2tlZFJlYWRPZmZzZXQudW5zYWZlR2V0KCksIGNoZWNrZWRXcml0ZU9m
ZnNldC51bnNhZmVHZXQoKSwgY2hlY2tlZFNpemUudW5zYWZlR2V0KCkpOwogI2VuZGlmCiAgICAg
aWYgKG1fY29udGV4dC0+bW92ZUVycm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCkpIHsKQEAgLTI3
Miw3ICsyNzIsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEJ1ZmZlclN1YkRh
dGEoR0MzRGVudW0gdGFyZ2V0LCBsb25nIGxvbmcgc3JjQnl0ZQogICAgIH0KIAogICAgIG1fY29u
dGV4dC0+bW92ZUVycm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCk7Ci0jaWYgUExBVEZPUk0oTUFD
KSB8fCBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gRklYTUU6IENv
YWxlc2NlIG11bHRpcGxlIGdldEJ1ZmZlclN1YkRhdGEoKSBjYWxscyB0byB1c2UgYSBzaW5nbGUg
bWFwKCkgY2FsbAogICAgIHZvaWQqIHB0ciA9IG1fY29udGV4dC0+bWFwQnVmZmVyUmFuZ2UodGFy
Z2V0LCBjaGVja2VkU3JjQnl0ZU9mZnNldC51bnNhZmVHZXQoKSwgc3RhdGljX2Nhc3Q8R0MzRHNp
emVpcHRyPihjaGVja2VkQ29weUxlbmd0aFB0ci51bnNhZmVHZXQoKSAqIGNoZWNrZWRFbGVtZW50
U2l6ZS51bnNhZmVHZXQoKSksIEdyYXBoaWNzQ29udGV4dDNEOjpNQVBfUkVBRF9CSVQpOwogICAg
IG1lbWNweShzdGF0aWNfY2FzdDxjaGFyKj4oZHN0RGF0YS0+YmFzZUFkZHJlc3MoKSkgKyBkc3RE
YXRhLT5ieXRlT2Zmc2V0KCkgKyBkc3RPZmZzZXQgKiBlbGVtZW50U2l6ZSwgcHRyLCBjb3B5TGVu
Z3RoICogZWxlbWVudFNpemUpOwpAQCAtMjkwLDkgKzI5MCw5IEBAIHZvaWQgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6ZnJhbWVidWZmZXJUZXh0dXJlTGF5ZXIoR0MzRGVudW0sIEdDM0RlbnVtLCBH
QzNEdWluCiB7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJ
bnRlcm5hbGZvcm1hdFBhcmFtZXRlcihHQzNEZW51bSwgR0MzRGVudW0sIEdDM0RlbnVtKQorV2Vi
R0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIo
R0MzRGVudW0sIEdDM0RlbnVtLCBHQzNEZW51bSkKIHsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6aW52YWxpZGF0ZUZyYW1lYnVmZmVyKEdDM0RlbnVtLCBWZWN0b3I8R0MzRGVudW0+KQpAQCAt
NDA3LDcgKzQwNyw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dGV4U3RvcmFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVscywgR0MzCiAgICAgaWYgKGlzQ29udGV4
dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViR0xUZXh0dXJlKiB0
ZXh0dXJlID0gdmFsaWRhdGVUZXh0dXJlQmluZGluZygidGV4U3RvcmFnZTJEIiwgdGFyZ2V0LCBm
YWxzZSk7CisgICAgYXV0byogdGV4dHVyZSA9IHZhbGlkYXRlVGV4dHVyZUJpbmRpbmcoInRleFN0
b3JhZ2UyRCIsIHRhcmdldCwgZmFsc2UpOwogICAgIGlmICghdGV4dHVyZSkKICAgICAgICAgcmV0
dXJuOwogCkBAIC03ODIsOSArNzgyLDkgQEAgUmVmUHRyPFdlYkdMUXVlcnk+IFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmdldFF1ZXJ5KEdDM0RlbnVtLCBHQzNEZW51bSkKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5
UGFyYW1ldGVyKFdlYkdMUXVlcnkqLCBHQzNEZW51bSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdMUXVlcnkqLCBHQzNEZW51bSkKIHsKLSAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZlB0
cjxXZWJHTFNhbXBsZXI+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVNhbXBsZXIoKQpA
QCAtODEzLDkgKzgxMyw5IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6c2FtcGxlclBh
cmFtZXRlcmYoV2ViR0xTYW1wbGVyKiwgR0MzRGVudW0sIEdDM0RmbG9hCiB7CiB9CiAKLVdlYkdM
R2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRTYW1wbGVyUGFyYW1ldGVyKFdlYkdM
U2FtcGxlciosIEdDM0RlbnVtKQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0
U2FtcGxlclBhcmFtZXRlcihXZWJHTFNhbXBsZXIqLCBHQzNEZW51bSkKIHsKLSAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZlB0cjxXZWJHTFN5
bmM+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmZlbmNlU3luYyhHQzNEZW51bSwgR0MzRGJpdGZp
ZWxkKQpAQCAtODQxLDkgKzg0MSw5IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6d2Fp
dFN5bmMoV2ViR0xTeW5jKiwgR0MzRGJpdGZpZWxkLCBHQzNEdWludDY0KQogewogfQogCi1XZWJH
TEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0U3luY1BhcmFtZXRlcihXZWJHTFN5
bmMqLCBHQzNEZW51bSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFN5bmNQ
YXJhbWV0ZXIoV2ViR0xTeW5jKiwgR0MzRGVudW0pCiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBSZWZQdHI8V2ViR0xUcmFuc2Zvcm1GZWVk
YmFjaz4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlVHJhbnNmb3JtRmVlZGJhY2soKQpA
QCAtODk3LDcgKzg5Nyw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmluZEJ1ZmZl
clJhbmdlKEdDM0RlbnVtLCBHQzNEdWludCwgV2ViR0xCdWZmZXIqLCBHCiB7CiB9CiAKLVdlYkdM
R2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVyKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRHVpbnQpCitXZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRJbmRleGVkUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRHVpbnQpCiB7CiAgICAgc3dp
dGNoICh0YXJnZXQpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpUUkFOU0ZPUk1fRkVF
REJBQ0tfQlVGRkVSX0JJTkRJTkc6CkBAIC05MDcsMTMgKzkwNywxMSBAQCBXZWJHTEdldEluZm8g
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcihHQzNEZW51bSB0YXJn
ZXQsIEdDM0R1aQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOSUZPUk1fQlVGRkVSX1NJ
WkU6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5JRk9STV9CVUZGRVJfU1RBUlQ6CiAg
ICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0s
ICJnZXRJbmRleGVkUGFyYW1ldGVyIiwgInBhcmFtZXRlciBuYW1lIG5vdCB5ZXQgc3VwcG9ydGVk
Iik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEluZGV4ZWRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJh
bWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgICAgICAg
ICAKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKIH0KIAogVWludDMyQXJyYXkqIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZv
cm1JbmRpY2VzKFdlYkdMUHJvZ3JhbSosIFZlY3RvcjxTdHJpbmc+KQpAQCAtOTMxLDE0ICs5Mjks
MTQgQEAgR0MzRHVpbnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0VW5pZm9ybUJsb2NrSW5k
ZXgoV2ViR0xQcm9ncmFtKiwgU3RyaW5nKQogICAgIHJldHVybiAwOwogfQogCi1XZWJHTEdldElu
Zm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVy
KFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50LCBHQzNEZW51bSkKK1dlYkdMQW55IFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihXZWJHTFByb2dyYW0q
LCBHQzNEdWludCwgR0MzRGVudW0pCiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAg
IHJldHVybiBudWxscHRyOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShXZWJHTFByb2dyYW0qLCBHQzNEdWludCkKK1dl
YkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUo
V2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQpCiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwor
ICAgIHJldHVybiBudWxscHRyOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVu
aWZvcm1CbG9ja0JpbmRpbmcoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQsIEdDM0R1aW50KQpAQCAt
OTUwLDggKzk0OCw4IEBAIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0OjpjcmVhdGVWZXJ0ZXhBcnJheSgpCiAgICAgaWYgKGlzQ29udGV4dExvc3Qo
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgYXV0byBvYmplY3QgPSBXZWJH
TFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6
OlZBT1R5cGVVc2VyKTsKLSAgICBhZGRDb250ZXh0T2JqZWN0KG9iamVjdC5wdHIoKSk7CisgICAg
YXV0byBvYmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdM
VmVydGV4QXJyYXlPYmplY3Q6OlR5cGU6OlVzZXIpOworICAgIGFkZENvbnRleHRPYmplY3Qob2Jq
ZWN0LmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92ZShvYmplY3QpOwogfQogCkBAIC05NjQsNyAr
OTYyLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVWZXJ0ZXhBcnJheShX
ZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamUKICAgICAgICAgcmV0dXJuOwogICAgIAog
ICAgIGlmICghYXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpICYmIGFycmF5T2JqZWN0ID09
IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCkKLSAgICAgICAgc2V0Qm91bmRWZXJ0ZXhBcnJheU9i
amVjdCgwKTsKKyAgICAgICAgc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChudWxscHRyKTsKICAg
ICAKICAgICBhcnJheU9iamVjdC0+ZGVsZXRlT2JqZWN0KGdyYXBoaWNzQ29udGV4dDNEKCkpOwog
fQpAQCAtOTcyLDEwICs5NzAsMTAgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxl
dGVWZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamUKIEdDM0Rib29s
ZWFuIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmlzVmVydGV4QXJyYXkoV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdCogYXJyYXlPYmplY3QpCiB7CiAgICAgaWYgKCFhcnJheU9iamVjdCB8fCBpc0NvbnRl
eHRMb3N0KCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
CiAgICAgaWYgKCFhcnJheU9iamVjdC0+aGFzRXZlckJlZW5Cb3VuZCgpIHx8ICFhcnJheU9iamVj
dC0+dmFsaWRhdGUoMCwgKnRoaXMpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIAogICAgIHJldHVybiBtX2NvbnRleHQtPmlzVmVydGV4QXJyYXkoYXJyYXlP
YmplY3QtPm9iamVjdCgpKTsKIH0KQEAgLTk5Niw3ICs5OTQsNyBAQCB2b2lkIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmJpbmRWZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJh
eU9iamVjdAogICAgICAgICBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KGFycmF5T2JqZWN0KTsK
ICAgICB9IGVsc2UgewogICAgICAgICBtX2NvbnRleHQtPmJpbmRWZXJ0ZXhBcnJheShtX2RlZmF1
bHRWZXJ0ZXhBcnJheU9iamVjdC0+b2JqZWN0KCkpOwotICAgICAgICBzZXRCb3VuZFZlcnRleEFy
cmF5T2JqZWN0KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0KTsKKyAgICAgICAgc2V0Qm91bmRW
ZXJ0ZXhBcnJheU9iamVjdChtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKSk7CiAgICAg
fQogfQogCkBAIC0xMDA1LDQzICsxMDAzLDQ4IEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
aWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0ZXJfYW5p
c290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfRVhUX3Rl
eHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkg
eworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0
ZXJfYW5pc290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRf
RVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpIHsKICAgICAgICAgaWYgKCFtX2V4dFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGlj
Iik7Ci0gICAgICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IHN0ZDo6bWFr
ZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcyk7CisgICAgICAgICAg
ICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsg
IkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIgfSkpIHsKKyAgICAgICAgICAgICAg
ICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0ZXJhbCB7
ICJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pOworICAgICAgICAgICAgICAg
IG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRUZXh0
dXJlRmlsdGVyQW5pc290cm9waWM+KCp0aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gbV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuZ2V0KCk7CiAgICAg
fQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9mbG9h
dCIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9P
RVNfdGV4dHVyZV9mbG9hdCIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFt
ZSwgIk9FU190ZXh0dXJlX2Zsb2F0IikpIHsKICAgICAgICAgaWYgKCFtX29lc1RleHR1cmVGbG9h
dCkgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxl
ZCgiR0xfT0VTX3RleHR1cmVfZmxvYXQiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0
ID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXQ+KCp0aGlzKTsKKyAgICAgICAgICAg
IGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAi
R0xfT0VTX3RleHR1cmVfZmxvYXQiIH0pKSB7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1
cmVfZmxvYXQiIH0pOworICAgICAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0ID0gc3RkOjpt
YWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXQ+KCp0aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlRmxvYXQuZ2V0KCk7CiAgICAgfQotICAg
IGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdF9saW5l
YXIiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xf
T0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpIHsKICAgICAgICAgaWYgKCFt
X29lc1RleHR1cmVGbG9hdExpbmVhcikgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIik7Ci0g
ICAgICAgICAgICBtX29lc1RleHR1cmVGbG9hdExpbmVhciA9IHN0ZDo6bWFrZV91bmlxdWU8T0VT
VGV4dHVyZUZsb2F0TGluZWFyPigqdGhpcyk7CisgICAgICAgICAgICBpZiAobV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2Zs
b2F0X2xpbmVhciIgfSkpIHsKKyAgICAgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9mbG9hdF9s
aW5lYXIiIH0pOworICAgICAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyID0gc3Rk
OjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXRMaW5lYXI+KCp0aGlzKTsKKyAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIuZ2V0
KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4
dHVyZV9oYWxmX2Zsb2F0IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
c3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSkgeworICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpIHsKICAgICAg
ICAgaWYgKCFtX29lc1RleHR1cmVIYWxmRmxvYXQpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQi
KTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdCA9IHN0ZDo6bWFrZV91bmlxdWU8
T0VTVGV4dHVyZUhhbGZGbG9hdD4oKnRoaXMpOworICAgICAgICAgICAgaWYgKG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9o
YWxmX2Zsb2F0IiB9KSkgeworICAgICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLmVuc3VyZUVuYWJsZWQoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxv
YXQiIH0pOworICAgICAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdCA9IHN0ZDo6bWFr
ZV91bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdD4oKnRoaXMpOworICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVIYWxmRmxvYXQuZ2V0KCk7CiAgICAg
fQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9oYWxm
X2Zsb2F0X2xpbmVhciIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1
cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpKSB7CisgICAgaWYgKGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFy
IikpIHsKICAgICAgICAgaWYgKCFtX29lc1RleHR1cmVIYWxmRmxvYXRMaW5lYXIpIHsKLSAgICAg
ICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190
ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik7Ci0gICAgICAgICAgICBtX29lc1RleHR1cmVIYWxm
RmxvYXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXI+
KCp0aGlzKTsKKyAgICAgICAgICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiIH0p
KSB7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5h
YmxlZChBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiIH0p
OworICAgICAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhciA9IHN0ZDo6bWFr
ZV91bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcj4oKnRoaXMpOworICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVIYWxmRmxvYXRMaW5lYXIu
Z2V0KCk7CiAgICAgfQpAQCAtMTA1MCwyOCArMTA1MywzMiBAQCBXZWJHTEV4dGVuc2lvbiogV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAg
ICAgICAgICAgIG1fd2ViZ2xMb3NlQ29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xMb3Nl
Q29udGV4dD4oKnRoaXMpOwogICAgICAgICByZXR1cm4gbV93ZWJnbExvc2VDb250ZXh0LmdldCgp
OwogICAgIH0KLSAgICBpZiAoKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9X
RUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIikpCi0gICAgICAgICYmIFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVBVEM6OnN1cHBvcnRlZCgqdGhpcykpIHsKLSAgICAgICAgaWYgKCFtX3dlYmdsQ29t
cHJlc3NlZFRleHR1cmVBVEMpCi0gICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVB
VEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM+KCp0aGlzKTsK
KyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXBy
ZXNzZWRfdGV4dHVyZV9hdGMiKSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4
dHVyZUFUQykgeworICAgICAgICAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OnN1
cHBvcnRlZCgqdGhpcykpCisgICAgICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJl
QVRDID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDPigqdGhpcyk7
CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQy5n
ZXQoKTsKICAgICB9Ci0gICAgaWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJL
SVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIikpCi0gICAgICAgICYmIFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAgICBpZiAoIW1f
d2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKQotICAgICAgICAgICAgbV93ZWJnbENvbXByZXNz
ZWRUZXh0dXJlUFZSVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQ
VlJUQz4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJL
SVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIikpIHsKKyAgICAgICAgaWYgKCFtX3dl
YmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQykgeworICAgICAgICAgICAgaWYgKFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0aGlzKSkKKyAgICAgICAgICAgICAgICBtX3dl
YmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVz
c2VkVGV4dHVyZVBWUlRDPigqdGhpcyk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2Vi
Z2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25v
cmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKQotICAg
ICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewot
ICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMpCi0gICAgICAgICAgICBt
X3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUzNUQz4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KG5hbWUsICJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpKSB7CisgICAgICAgIGlmICgh
bV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQykgeworICAgICAgICAgICAgaWYgKFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpKQorICAgICAgICAgICAgICAgIG1f
d2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVTM1RDPigqdGhpcyk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2Vi
Z2xDb21wcmVzc2VkVGV4dHVyZVMzVEMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZXB0aF90ZXh0dXJlIikKLSAgICAgICAgJiYgV2Vi
R0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqZ3JhcGhpY3NDb250ZXh0M0QoKSkpIHsKLSAgICAg
ICAgaWYgKCFtX3dlYmdsRGVwdGhUZXh0dXJlKQotICAgICAgICAgICAgbV93ZWJnbERlcHRoVGV4
dHVyZSA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZXB0aFRleHR1cmU+KCp0aGlzKTsKKyAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVwdGhfdGV4dHVyZSIpKSB7
CisgICAgICAgIGlmICghbV93ZWJnbERlcHRoVGV4dHVyZSkgeworICAgICAgICAgICAgaWYgKFdl
YkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoKmdyYXBoaWNzQ29udGV4dDNEKCkpKQorICAgICAg
ICAgICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVw
dGhUZXh0dXJlPigqdGhpcyk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZXB0
aFRleHR1cmUuZ2V0KCk7CiAgICAgfQogICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5h
bWUsICJXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIikpIHsKQEAgLTEwNzksMTAgKzEwODYsMTEg
QEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihj
b25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgICAgICBtX3dlYmdsRGVidWdSZW5kZXJlckluZm8g
PSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVidWdSZW5kZXJlckluZm8+KCp0aGlzKTsKICAgICAg
ICAgcmV0dXJuIG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mby5nZXQoKTsKICAgICB9Ci0gICAgaWYg
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlYnVnX3NoYWRlcnMiKQotICAg
ICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfQU5HTEVfdHJh
bnNsYXRlZF9zaGFkZXJfc291cmNlIikpIHsKLSAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdTaGFk
ZXJzKQotICAgICAgICAgICAgbV93ZWJnbERlYnVnU2hhZGVycyA9IHN0ZDo6bWFrZV91bmlxdWU8
V2ViR0xEZWJ1Z1NoYWRlcnM+KCp0aGlzKTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShuYW1lLCAiV0VCR0xfZGVidWdfc2hhZGVycyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbERl
YnVnU2hhZGVycykgeworICAgICAgICAgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3Vy
Y2UiIH0pKQorICAgICAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkdMRGVidWdTaGFkZXJzPigqdGhpcyk7CisgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMuZ2V0KCk7CiAgICAgfQogCkBAIC0xMDk2LDkwICsxMTA0
LDkwIEBAIFZlY3RvcjxTdHJpbmc+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRl
ZEV4dGVuc2lvbnMoKQogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pCiAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
c3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQo
Ik9FU190ZXh0dXJlX2Zsb2F0Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkKLSAgICAgICAgcmVzdWx0
LmFwcGVuZCgiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpCi0g
ICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKTsKLSAgICBpZiAo
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZf
ZmxvYXRfbGluZWFyIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hhbGZf
ZmxvYXRfbGluZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBv
cnRzKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkKLSAgICAgICAgcmVzdWx0
LmFwcGVuZCgiV0VCS0lUX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOworICAgIGF1
dG8mIGV4dGVuc2lvbnMgPSBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKTsKKyAgICBpZiAoZXh0
ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfZmxvYXQiIH0p
KQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9mbG9h
dCIgfSk7CisgICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09F
U190ZXh0dXJlX2Zsb2F0X2xpbmVhciIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlM
aXRlcmFsIHsgIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIgfSk7CisgICAgaWYgKGV4dGVuc2lv
bnMuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiIH0p
KQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9oYWxm
X2Zsb2F0IiB9KTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAi
R0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiIH0pKQorICAgICAgICByZXN1bHQuYXBw
ZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIgfSk7Cisg
ICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF90ZXh0dXJl
X2ZpbHRlcl9hbmlzb3Ryb3BpYyIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRl
cmFsIHsgIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pOwogICAgIGlm
IChXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICBy
ZXN1bHQuYXBwZW5kKCJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpOworICAg
ICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJLSVRfV0VCR0xfY29tcHJlc3Nl
ZF90ZXh0dXJlX2F0YyIgfSk7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6
c3VwcG9ydGVkKCp0aGlzKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2Nv
bXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpOworICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0
ZXJhbCB7ICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIiB9KTsKICAgICBp
ZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhpcykpCi0gICAgICAg
IHJlc3VsdC5hcHBlbmQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIik7CisgICAgICAg
IHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9z
M3RjIiB9KTsKICAgICBpZiAoV2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqZ3JhcGhpY3ND
b250ZXh0M0QoKSkpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlcHRoX3RleHR1cmUi
KTsKLSAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9sb3NlX2NvbnRleHQiKTsKLSAgICBpZiAobV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hh
ZGVyX3NvdXJjZSIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19zaGFkZXJz
Iik7Ci0gICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpOworICAg
ICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9kZXB0aF90ZXh0dXJlIiB9
KTsKKyAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9sb3NlX2NvbnRleHQi
IH0pOworICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9BTkdM
RV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFT
Q0lJTGl0ZXJhbCB7ICJXRUJHTF9kZWJ1Z19zaGFkZXJzIiB9KTsKKyAgICByZXN1bHQuYXBwZW5k
KEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIiB9KTsKIAogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBhdHRhY2htZW50LCBHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQs
IEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycygi
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgdGFyZ2V0LCBhdHRhY2htZW50KSkK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICAKICAgICBpZiAoIW1fZnJhbWVidWZmZXJCaW5kaW5nIHx8ICFtX2ZyYW1lYnVmZmVyQmlu
ZGluZy0+b2JqZWN0KCkpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1l
dGVyIiwgIm5vIGZyYW1lYnVmZmVyIGJvdW5kIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIFdlYkdMU2hh
cmVkT2JqZWN0KiBvYmplY3QgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVudE9i
amVjdChhdHRhY2htZW50KTsKKyAgICBhdXRvKiBvYmplY3QgPSBtX2ZyYW1lYnVmZmVyQmluZGlu
Zy0+Z2V0QXR0YWNobWVudE9iamVjdChhdHRhY2htZW50KTsKICAgICBpZiAoIW9iamVjdCkgewog
ICAgICAgICBpZiAocG5hbWUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfT0JKRUNUX1RZUEUpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBo
aWNzQ29udGV4dDNEOjpOT05FKTsKLSAgICAgICAgLy8gT3BlbkdMIEVTIDIuMCBzcGVjaWZpZXMg
SU5WQUxJRF9FTlVNIGluIHRoaXMgY2FzZSwgd2hpbGUgZGVza3RvcCBHTAotICAgICAgICAvLyBz
cGVjaWZpZXMgSU5WQUxJRF9PUEVSQVRJT04uCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKTsKKyAgICAgICAgLy8gT3BlbkdM
IEVTIDIuMCBzcGVjaWZpZXMgSU5WQUxJRF9FTlVNIGluIHRoaXMgY2FzZSwgd2hpbGUgZGVza3Rv
cCBHTCBzcGVjaWZpZXMgSU5WQUxJRF9PUEVSQVRJT04uCiAgICAgICAgIHN5bnRoZXNpemVHTEVy
cm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFj
aG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICAK
LSAgICBBU1NFUlQob2JqZWN0LT5pc1RleHR1cmUoKSB8fCBvYmplY3QtPmlzUmVuZGVyYnVmZmVy
KCkpOwogICAgIGlmIChvYmplY3QtPmlzVGV4dHVyZSgpKSB7CiAgICAgICAgIHN3aXRjaCAocG5h
bWUpIHsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9PQkpFQ1RfVFlQRToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhp
Y3NDb250ZXh0M0Q6OlRFWFRVUkUpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRSk7CiAgICAgICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUU6Ci0gICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJlKj4o
b2JqZWN0KSk7CisgICAgICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihyZWludGVycHJldF9jYXN0
PFdlYkdMVGV4dHVyZSY+KCpvYmplY3QpKTsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVMOgogICAgICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBf
RkFDRToKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9DT0xPUl9FTkNPRElORzogewogICAgICAgICAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAg
ICAgICAgICAgICBtX2NvbnRleHQtPmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2
KHRhcmdldCwgYXR0YWNobWVudCwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAg
fQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhp
Y3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIGZvciB0ZXh0dXJlIGF0dGFjaG1lbnQiKTsK
LSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG9iamVjdC0+
aXNSZW5kZXJidWZmZXIoKSk7CiAgICAgICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRToK
LSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRF
UkJVRkZFUik7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBo
aWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVIpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FOgotICAgICAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhyZWludGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyKj4ob2Jq
ZWN0KSk7CisgICAgICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihyZWludGVycHJldF9jYXN0PFdl
YkdMUmVuZGVyYnVmZmVyJj4oKm9iamVjdCkpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HIDogewotICAgICAgICAg
ICAgV2ViR0xSZW5kZXJidWZmZXIqIHJlbmRlckJ1ZmZlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2Vi
R0xSZW5kZXJidWZmZXIqPihvYmplY3QpOwotICAgICAgICAgICAgR0MzRGVudW0gcmVuZGVyQnVm
ZmVyRm9ybWF0ID0gcmVuZGVyQnVmZmVyLT5nZXRJbnRlcm5hbEZvcm1hdCgpOwotICAgICAgICAg
ICAgaWYgKHJlbmRlckJ1ZmZlckZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6U1JHQjhfQUxQ
SEE4Ci0gICAgICAgICAgICAgICAgfHwgcmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpDT01QUkVTU0VEX1NSR0I4X0VUQzIKLSAgICAgICAgICAgICAgICB8fCByZW5kZXJC
dWZmZXJGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4
X0VUQzJfRUFDCi0gICAgICAgICAgICAgICAgfHwgcmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBo
aWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NSR0I4X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMikg
ewotICAgICAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6
OlNSR0IpOworICAgICAgICAgICAgYXV0byYgcmVuZGVyQnVmZmVyID0gcmVpbnRlcnByZXRfY2Fz
dDxXZWJHTFJlbmRlcmJ1ZmZlciY+KCpvYmplY3QpOworICAgICAgICAgICAgYXV0byBmb3JtYXQg
PSByZW5kZXJCdWZmZXIuZ2V0SW50ZXJuYWxGb3JtYXQoKTsKKyAgICAgICAgICAgIGlmIChmb3Jt
YXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlNSR0I4X0FMUEhBOAorICAgICAgICAgICAgICAgIHx8
IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9TUkdCOF9FVEMyCisgICAg
ICAgICAgICAgICAgfHwgZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NS
R0I4X0FMUEhBOF9FVEMyX0VBQworICAgICAgICAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGlj
c0NvbnRleHQzRDo6Q09NUFJFU1NFRF9TUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIpIHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29u
dGV4dDNEOjpTUkdCKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7CisgICAgICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOwogICAgICAgICB9
CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGlj
c0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1l
dGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUgZm9yIHJlbmRlcmJ1ZmZlciBhdHRhY2htZW50
Iik7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTExOTEsMTkgKzExOTksMTYgQEAg
Ym9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUZyYW1lYnVmZmVyRnVuY1BhcmFt
ZXRlcnMoY29uc3QgY2hhciogZnVuY3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAg
ICBzd2l0Y2ggKGF0dGFjaG1lbnQpIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xP
Ul9BVFRBQ0hNRU5UMDoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hN
RU5UOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQVRUQUNITUVOVDoKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAg
ICAgIGJyZWFrOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgotICAgICAgICBp
ZiAoYXR0YWNobWVudCA+IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMAotICAg
ICAgICAgICAgJiYgYXR0YWNobWVudCA8IHN0YXRpY19jYXN0PEdDM0RlbnVtPihHcmFwaGljc0Nv
bnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAgKyBnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkpKQot
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGlmIChhdHRhY2htZW50ID49IEdyYXBoaWNzQ29u
dGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCAmJiBhdHRhY2htZW50IDwgc3RhdGljX2Nhc3Q8R0Mz
RGVudW0+KEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCArIGdldE1heENvbG9y
QXR0YWNobWVudHMoKSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgc3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1l
LCAiaW52YWxpZCBhdHRhY2htZW50Iik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0g
ICAgcmV0dXJuIHRydWU7CiB9CiAKIEdDM0RpbnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0
TWF4RHJhd0J1ZmZlcnMoKQpAQCAtMTM5NSw3ICsxNDAwLDcgQEAgR0MzRGVudW0gV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6YmFzZUludGVybmFsRm9ybWF0RnJvbUludGVybmFsRm9ybWF0KEdDM0Rl
bnVtIGkKIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNJbnRlZ2VyRm9ybWF0KEdDM0Rl
bnVtIGludGVybmFsZm9ybWF0KQogewogICAgIC8vIEZJWE1FOiBiYXNlSW50ZXJuYWxGb3JtYXRG
cm9tSW50ZXJuYWxGb3JtYXQoKSBuZXZlciByZXR1cm5zIGFueSBvZiB0aGVzZSBlbnVtcy4KLSAg
ICAvLyBDdXJyZW50bHksIFRoaXMgZnVuY3Rpb24gZXJyb25lb3VzbHkgYWx3YXlzIHJldHVybnMg
ZmFsc2UuCisgICAgLy8gQmVjYXVzZSBvZiB0aGF0LCB0aGlzIGZ1bmN0aW9uIGVycm9uZW91c2x5
IGFsd2F5cyByZXR1cm5zIGZhbHNlIQogICAgIHN3aXRjaCAoYmFzZUludGVybmFsRm9ybWF0RnJv
bUludGVybmFsRm9ybWF0KGludGVybmFsZm9ybWF0KSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJFRF9JTlRFR0VSOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHX0lOVEVH
RVI6CkBAIC0xNDA2LDExICsxNDExLDEwIEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
aXNJbnRlZ2VyRm9ybWF0KEdDM0RlbnVtIGludGVybmFsZm9ybWF0KQogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRl
cihHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBh
cmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGlu
ZygpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgY29uc3QgaW50IGludFpl
cm8gPSAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUNUSVZFX1RFWFRVUkU6CiAgICAgICAgIHJldHVy
biBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CkBAIC0xNDIxLDcgKzE0MjUsNyBAQCBX
ZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVt
IHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBX0JJVFM6CiAgICAgICAg
IHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OkFSUkFZX0JVRkZFUl9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1f
Ym91bmRBcnJheUJ1ZmZlci5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX2JvdW5kQXJyYXlCdWZm
ZXI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QkxFTkQ6CiAgICAgICAgIHJldHVybiBn
ZXRCb29sZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpC
TEVORF9DT0xPUjoKQEAgLTE0NDUsMTYgKzE0NDksMTYgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpDT0xPUl9XUklURU1BU0s6CiAgICAgICAgIHJldHVybiBnZXRCb29s
ZWFuQXJyYXlQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNP
TVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBh
c3NSZWZQdHI8VWludDMyQXJyYXk+KFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21wcmVzc2VkVGV4
dHVyZUZvcm1hdHMuZGF0YSgpLCBtX2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5zaXplKCkpKSk7
CisgICAgICAgIHJldHVybiBVaW50MzJBcnJheTo6Y3JlYXRlKG1fY29tcHJlc3NlZFRleHR1cmVG
b3JtYXRzLmRhdGEoKSwgbV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMuc2l6ZSgpKTsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVUxMX0ZBQ0U6CiAgICAgICAgIHJldHVybiBnZXRCb29s
ZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVUxMX0ZB
Q0VfTU9ERToKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVVJSRU5UX1BST0dSQU06Ci0gICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8obV9jdXJyZW50UHJvZ3JhbS5nZXQoKSk7CisgICAgICAgIHJldHVy
biBtX2N1cnJlbnRQcm9ncmFtOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JJ
VFM6CiAgICAgICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgJiYgIW1fYXR0cmlidXRlcy5k
ZXB0aCkKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oaW50WmVybyk7CisgICAgICAg
ICAgICByZXR1cm4gMDsKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQ0xFQVJfVkFMVUU6CiAgICAgICAgIHJl
dHVybiBnZXRGbG9hdFBhcmFtZXRlcihwbmFtZSk7CkBAIC0xNDY5LDkgKzE0NzMsOSBAQCBXZWJH
TEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBu
YW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRJVEhFUjoKICAgICAgICAgcmV0dXJu
IGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8obV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKSk7Cisg
ICAgICAgIHJldHVybiBtYWtlUmVmUHRyKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0RWxl
bWVudEFycmF5QnVmZmVyKCkpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVG
RkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9mcmFtZWJ1ZmZlckJp
bmRpbmcuZ2V0KCkpOworICAgICAgICByZXR1cm4gbV9mcmFtZWJ1ZmZlckJpbmRpbmc7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJPTlRfRkFDRToKICAgICAgICAgcmV0dXJuIGdldFVu
c2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpH
RU5FUkFURV9NSVBNQVBfSElOVDoKQEAgLTE1MTksOSArMTUyMyw5IEBAIFdlYkdMR2V0SW5mbyBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVEX0JJVFM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQ
YXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZF
Ul9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fcmVuZGVyYnVmZmVyQmlu
ZGluZy5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX3JlbmRlcmJ1ZmZlckJpbmRpbmc7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVI6Ci0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oU3RyaW5nKCJXZWJLaXQgV2ViR0wiKSk7CisgICAgICAgIHJldHVybiBTdHJpbmcgeyBB
U0NJSUxpdGVyYWwgeyAiV2ViS2l0IFdlYkdMIiB9IH07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6U0FNUExFX0JVRkZFUlM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5h
bWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQ6
CkBAIC0xNTM1LDcgKzE1MzksNyBAQCBXZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlNDSVNTT1JfVEVTVDoKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5h
bWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lP
TjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygiV2ViR0wgR0xTTCBFUyAxLjAgKCIgKyBt
X2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9W
RVJTSU9OKSArICIpIik7CisgICAgICAgIHJldHVybiAiV2ViR0wgR0xTTCBFUyAxLjAgKCIgKyBt
X2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9W
RVJTSU9OKSArICIpIjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JBQ0tf
RkFJTDoKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JBQ0tfRlVOQzoKQEAgLTE1NTIsNyAr
MTU1Niw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0
ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRl
cihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9CSVRTOgogICAg
ICAgICBpZiAoIW1fZnJhbWVidWZmZXJCaW5kaW5nICYmICFtX2F0dHJpYnV0ZXMuc3RlbmNpbCkK
LSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oaW50WmVybyk7CisgICAgICAgICAgICBy
ZXR1cm4gMDsKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9DTEVBUl9WQUxVRToKICAgICAgICAgcmV0dXJu
IGdldEludFBhcmFtZXRlcihwbmFtZSk7CkBAIC0xNTc1LDM4ICsxNTc5LDM4IEBAIFdlYkdMR2V0
SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUp
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1VCUElYRUxfQklUUzoKICAgICAgICAgcmV0
dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
VEVYVFVSRV9CSU5ESU5HXzJEOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdGV4dHVy
ZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmUyREJpbmRpbmcuZ2V0KCkpOworICAg
ICAgICByZXR1cm4gbV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4dHVyZTJE
QmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfQ1VC
RV9NQVA6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV90ZXh0dXJlVW5pdHNbbV9hY3Rp
dmVUZXh0dXJlVW5pdF0udGV4dHVyZUN1YmVNYXBCaW5kaW5nLmdldCgpKTsKKyAgICAgICAgcmV0
dXJuIG1fdGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmVDdWJlTWFwQmlu
ZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5UOgogICAg
ICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpVTlBBQ0tfRkxJUF9ZX1dFQkdMOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KG1fdW5wYWNrRmxpcFkpOworICAgICAgICByZXR1cm4gbV91bnBhY2tGbGlwWTsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0w6Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8obV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAg
ICAgcmV0dXJuIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMOgotICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb24pOworICAgICAgICBy
ZXR1cm4gbV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lvbjsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpWRU5ET1I6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oU3RyaW5nKCJXZWJL
aXQiKSk7CisgICAgICAgIHJldHVybiBTdHJpbmcgeyBBU0NJSUxpdGVyYWwgeyAiV2ViS2l0IiB9
IH07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTjoKLSAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygiV2ViR0wgMi4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhp
Y3NDb250ZXh0M0Q6OlZFUlNJT04pICsgIikiKTsKKyAgICAgICAgcmV0dXJuICJXZWJHTCAyLjAg
KCIgKyBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTikgKyAi
KSI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VklFV1BPUlQ6CiAgICAgICAgIHJldHVy
biBnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIFdlYkdMRGVidWdS
ZW5kZXJlckluZm86OlVOTUFTS0VEX1JFTkRFUkVSX1dFQkdMOgogICAgICAgICBpZiAobV93ZWJn
bERlYnVnUmVuZGVyZXJJbmZvKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2Nv
bnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpKTsKKyAgICAgICAg
ICAgIHJldHVybiBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVS
RVIpOwogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJ
RF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2Rl
YnVnX3JlbmRlcmVyX2luZm8gbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIFdlYkdMRGVidWdSZW5k
ZXJlckluZm86OlVOTUFTS0VEX1ZFTkRPUl9XRUJHTDoKICAgICAgICAgaWYgKG1fd2ViZ2xEZWJ1
Z1JlbmRlcmVySW5mbykKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9jb250ZXh0
LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFTkRPUikpOworICAgICAgICAgICAgcmV0
dXJuIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1IpOwogICAg
ICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAi
Z2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVnX3JlbmRl
cmVyX2luZm8gbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRV
UkVfTUFYX0FOSVNPVFJPUFlfRVhUOiAvLyBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMK
ICAgICAgICAgaWYgKG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKQogICAgICAgICAgICAg
cmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVf
TUFYX0FOSVNPVFJPUFlfRVhUKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRl
ciBuYW1lLCBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMgbm90IGVuYWJsZWQiKTsKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFHTUVOVF9TSEFERVJfREVSSVZBVElWRV9ISU5U
OgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpNQVhfM0RfVEVYVFVSRV9TSVpFOgpAQCAtMTY4OSwxMiArMTY5MywxMCBA
QCBXZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0Rl
bnVtIHBuYW1lKQogICAgICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5JRk9STV9CVUZGRVJfT0ZGU0VUX0FMSUdOTUVO
VDoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6VkVSVEVYX0FSUkFZX0JJTkRJTkc6IHsKLSAgICAgICAgaWYgKCFtX2Jv
dW5kVmVydGV4QXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpKQotICAgICAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxXZWJHTFZlcnRleEFycmF5T2JqZWN0Kj4obV9i
b3VuZFZlcnRleEFycmF5T2JqZWN0LmdldCgpKSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKLSAgICAgICAgfQotICAgICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpWRVJURVhfQVJSQVlfQklORElORzoKKyAgICAgICAgaWYgKG1fYm91bmRWZXJ0ZXhBcnJh
eU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIoc3RhdGljX2Nhc3Q8V2ViR0xWZXJ0ZXhBcnJheU9i
amVjdCY+KCptX2JvdW5kVmVydGV4QXJyYXlPYmplY3QpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpEUkFXX0JVRkZFUjA6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RFJBV19C
VUZGRVIxOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMjoKQEAgLTE3
MTAsMTQgKzE3MTIsMTAgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6Omdl
dFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpE
UkFXX0JVRkZFUjEyOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTM6
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RFJBV19CVUZGRVIxNDoKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpEUkFXX0JVRkZFUjE1OiB7Ci0gICAgICAgIEdDM0RpbnQgdmFsdWUg
PSBHcmFwaGljc0NvbnRleHQzRDo6Tk9ORTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpE
UkFXX0JVRkZFUjE1OgogICAgICAgICBpZiAobV9mcmFtZWJ1ZmZlckJpbmRpbmcpCi0gICAgICAg
ICAgICB2YWx1ZSA9IG1fZnJhbWVidWZmZXJCaW5kaW5nLT5nZXREcmF3QnVmZmVyKHBuYW1lKTsK
LSAgICAgICAgZWxzZSAvLyBlbXVsYXRlZCBiYWNrYnVmZmVyCi0gICAgICAgICAgICB2YWx1ZSA9
IG1fYmFja0RyYXdCdWZmZXI7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOwot
ICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbV9mcmFtZWJ1ZmZlckJpbmRpbmctPmdldERy
YXdCdWZmZXIocG5hbWUpOworICAgICAgICByZXR1cm4gbV9iYWNrRHJhd0J1ZmZlcjsgLy8gZW11
bGF0ZWQgYmFja2J1ZmZlcgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPUFlfUkVBRF9C
VUZGRVI6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09QWV9XUklURV9CVUZGRVI6CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UElYRUxfUEFDS19CVUZGRVJfQklORElORzogICAK
QEAgLTE3MzAsMTAgKzE3MjgsMTAgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkc6CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VU5JRk9STV9CVUZGRVJfQklORElORzoKICAgICAgICAgc3ludGhlc2l6ZUdM
RXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJw
YXJhbWV0ZXIgbmFtZSBub3QgeWV0IHN1cHBvcnRlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQ
YXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMTc1
NCw3ICsxNzUyLDcgQEAgYm9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4
QXJyYXlDb25zZXJ2YXRpdmUoR0MzRGVudW0gdHlwZSwgdW5zaWcKICAgICAvLyBUaGUgY2FzZSBj
b3VudD09MCBpcyBhbHJlYWR5IGRlYWx0IHdpdGggaW4gZHJhd0VsZW1lbnRzIGJlZm9yZSB2YWxp
ZGF0ZUluZGV4QXJyYXlDb25zZXJ2YXRpdmUuCiAgICAgaWYgKCFudW1FbGVtZW50cykKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGNvbnN0IEFycmF5QnVmZmVyKiBidWZmZXIgPSBlbGVtZW50
QXJyYXlCdWZmZXItPmVsZW1lbnRBcnJheUJ1ZmZlcigpOworICAgIGF1dG8qIGJ1ZmZlciA9IGVs
ZW1lbnRBcnJheUJ1ZmZlci0+ZWxlbWVudEFycmF5QnVmZmVyKCk7CiAgICAgQVNTRVJUKGJ1ZmZl
cik7CiAgICAgCiAgICAgaW50IG1heEluZGV4ID0gZWxlbWVudEFycmF5QnVmZmVyLT5nZXRDYWNo
ZWRNYXhJbmRleCh0eXBlKTsKQEAgLTE4MDYsNyArMTgwNCw2IEBAIGJvb2wgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6dmFsaWRhdGVCbGVuZEVxdWF0aW9uKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFt
ZSwgR0MzCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TUlOOgogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6Ok1BWDoKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGJyZWFrOwog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNE
OjpJTlZBTElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgbW9kZSIpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TDJSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJS
ZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggNzU1ZGU2YmJkZDI2OTgxNjdkM2JhYTBmZGRkMzRiYmUw
NjExNWQ1OS4uOGJjZjBiZTNkMzVkMjc5NGIyNjA3MTI2YjM4YTgwNTVjYmY2NWYxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQu
aApAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0OwogY2xhc3Mg
V2ViR0wyUmVuZGVyaW5nQ29udGV4dCBmaW5hbCA6IHB1YmxpYyBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlIHsKIHB1YmxpYzoKICAgICBXZWJHTDJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNF
bGVtZW50JiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyk7Ci0gICAgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dChIVE1MQ2FudmFzRWxlbWVudCYsIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4mJiwgV2Vi
R0xDb250ZXh0QXR0cmlidXRlcyk7CisgICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2Fu
dmFzRWxlbWVudCYsIFJlZjxHcmFwaGljc0NvbnRleHQzRD4mJiwgV2ViR0xDb250ZXh0QXR0cmli
dXRlcyk7CiAKICAgICAvKiBCdWZmZXIgb2JqZWN0cyAqLwogICAgIHVzaW5nIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmJ1ZmZlckRhdGE7CkBAIC01MiwxMCArNTIsMTAgQEAgcHVibGljOgog
ICAgIHZvaWQgZ2V0QnVmZmVyU3ViRGF0YShHQzNEZW51bSB0YXJnZXQsIGxvbmcgbG9uZyBzcmNC
eXRlT2Zmc2V0LCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmIGRzdERhdGEsIEdDM0R1aW50IGRz
dE9mZnNldCA9IDAsIEdDM0R1aW50IGxlbmd0aCA9IDApOwogICAgIAogICAgIC8qIEZyYW1lYnVm
ZmVyIG9iamVjdHMgKi8KLSAgICBXZWJHTEdldEluZm8gZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50
UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0g
cG5hbWUpIGZpbmFsOworICAgIFdlYkdMQW55IGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1l
KSBmaW5hbDsKICAgICB2b2lkIGJsaXRGcmFtZWJ1ZmZlcihHQzNEaW50IHNyY1gwLCBHQzNEaW50
IHNyY1kwLCBHQzNEaW50IHNyY1gxLCBHQzNEaW50IHNyY1kxLCBHQzNEaW50IGRzdFgwLCBHQzNE
aW50IGRzdFkwLCBHQzNEaW50IGRzdFgxLCBHQzNEaW50IGRzdFkxLCBHQzNEYml0ZmllbGQgbWFz
aywgR0MzRGVudW0gZmlsdGVyKTsKICAgICB2b2lkIGZyYW1lYnVmZmVyVGV4dHVyZUxheWVyKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRHVpbnQgdGV4dHVyZSwgR0Mz
RGludCBsZXZlbCwgR0MzRGludCBsYXllcik7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEludGVybmFs
Zm9ybWF0UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQs
IEdDM0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRl
cihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBwbmFt
ZSk7CiAgICAgdm9pZCBpbnZhbGlkYXRlRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBWZWN0
b3I8R0MzRGVudW0+IGF0dGFjaG1lbnRzKTsKICAgICB2b2lkIGludmFsaWRhdGVTdWJGcmFtZWJ1
ZmZlcihHQzNEZW51bSB0YXJnZXQsIFZlY3RvcjxHQzNEZW51bT4gYXR0YWNobWVudHMsIEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpOwogICAg
IHZvaWQgcmVhZEJ1ZmZlcihHQzNEZW51bSBzcmMpOwpAQCAtMTE2LDI5ICsxMTYsMjkgQEAgcHVi
bGljOgogICAgIAogICAgIC8qIFF1ZXJ5IE9iamVjdHMgKi8KICAgICBSZWZQdHI8V2ViR0xRdWVy
eT4gY3JlYXRlUXVlcnkoKTsKLSAgICB2b2lkIGRlbGV0ZVF1ZXJ5KFdlYkdMUXVlcnkqIHF1ZXJ5
KTsKLSAgICBHQzNEYm9vbGVhbiBpc1F1ZXJ5KFdlYkdMUXVlcnkqIHF1ZXJ5KTsKLSAgICB2b2lk
IGJlZ2luUXVlcnkoR0MzRGVudW0gdGFyZ2V0LCBXZWJHTFF1ZXJ5KiBxdWVyeSk7CisgICAgdm9p
ZCBkZWxldGVRdWVyeShXZWJHTFF1ZXJ5Kik7CisgICAgR0MzRGJvb2xlYW4gaXNRdWVyeShXZWJH
TFF1ZXJ5Kik7CisgICAgdm9pZCBiZWdpblF1ZXJ5KEdDM0RlbnVtIHRhcmdldCwgV2ViR0xRdWVy
eSopOwogICAgIHZvaWQgZW5kUXVlcnkoR0MzRGVudW0gdGFyZ2V0KTsKICAgICBSZWZQdHI8V2Vi
R0xRdWVyeT4gZ2V0UXVlcnkoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7Ci0gICAg
V2ViR0xHZXRJbmZvIGdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdMUXVlcnkqIHF1ZXJ5LCBHQzNEZW51
bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0UXVlcnlQYXJhbWV0ZXIoV2ViR0xRdWVyeSosIEdD
M0RlbnVtIHBuYW1lKTsKICAgICAKICAgICAvKiBTYW1wbGVyIE9iamVjdHMgKi8KICAgICBSZWZQ
dHI8V2ViR0xTYW1wbGVyPiBjcmVhdGVTYW1wbGVyKCk7Ci0gICAgdm9pZCBkZWxldGVTYW1wbGVy
KFdlYkdMU2FtcGxlciogc2FtcGxlcik7Ci0gICAgR0MzRGJvb2xlYW4gaXNTYW1wbGVyKFdlYkdM
U2FtcGxlciogc2FtcGxlcik7Ci0gICAgdm9pZCBiaW5kU2FtcGxlcihHQzNEdWludCB1bml0LCBX
ZWJHTFNhbXBsZXIqIHNhbXBsZXIpOwotICAgIHZvaWQgc2FtcGxlclBhcmFtZXRlcmkoV2ViR0xT
YW1wbGVyKiBzYW1wbGVyLCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7Ci0gICAgdm9p
ZCBzYW1wbGVyUGFyYW1ldGVyZihXZWJHTFNhbXBsZXIqIHNhbXBsZXIsIEdDM0RlbnVtIHBuYW1l
LCBHQzNEZmxvYXQgcGFyYW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRTYW1wbGVyUGFyYW1ldGVy
KFdlYkdMU2FtcGxlciogc2FtcGxlciwgR0MzRGVudW0gcG5hbWUpOworICAgIHZvaWQgZGVsZXRl
U2FtcGxlcihXZWJHTFNhbXBsZXIqKTsKKyAgICBHQzNEYm9vbGVhbiBpc1NhbXBsZXIoV2ViR0xT
YW1wbGVyKik7CisgICAgdm9pZCBiaW5kU2FtcGxlcihHQzNEdWludCB1bml0LCBXZWJHTFNhbXBs
ZXIqKTsKKyAgICB2b2lkIHNhbXBsZXJQYXJhbWV0ZXJpKFdlYkdMU2FtcGxlciosIEdDM0RlbnVt
IHBuYW1lLCBHQzNEaW50IHBhcmFtKTsKKyAgICB2b2lkIHNhbXBsZXJQYXJhbWV0ZXJmKFdlYkdM
U2FtcGxlciosIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQgcGFyYW0pOworICAgIFdlYkdMQW55
IGdldFNhbXBsZXJQYXJhbWV0ZXIoV2ViR0xTYW1wbGVyKiwgR0MzRGVudW0gcG5hbWUpOwogICAg
IAogICAgIC8qIFN5bmMgb2JqZWN0cyAqLwogICAgIFJlZlB0cjxXZWJHTFN5bmM+IGZlbmNlU3lu
YyhHQzNEZW51bSBjb25kaXRpb24sIEdDM0RiaXRmaWVsZCBmbGFncyk7Ci0gICAgR0MzRGJvb2xl
YW4gaXNTeW5jKFdlYkdMU3luYyogc3luYyk7Ci0gICAgdm9pZCBkZWxldGVTeW5jKFdlYkdMU3lu
Yyogc3luYyk7Ci0gICAgR0MzRGVudW0gY2xpZW50V2FpdFN5bmMoV2ViR0xTeW5jKiBzeW5jLCBH
QzNEYml0ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7Ci0gICAgdm9pZCB3YWl0U3lu
YyhXZWJHTFN5bmMqIHN5bmMsIEdDM0RiaXRmaWVsZCBmbGFncywgR0MzRHVpbnQ2NCB0aW1lb3V0
KTsKLSAgICBXZWJHTEdldEluZm8gZ2V0U3luY1BhcmFtZXRlcihXZWJHTFN5bmMqIHN5bmMsIEdD
M0RlbnVtIHBuYW1lKTsKKyAgICBHQzNEYm9vbGVhbiBpc1N5bmMoV2ViR0xTeW5jKik7CisgICAg
dm9pZCBkZWxldGVTeW5jKFdlYkdMU3luYyopOworICAgIEdDM0RlbnVtIGNsaWVudFdhaXRTeW5j
KFdlYkdMU3luYyosIEdDM0RiaXRmaWVsZCBmbGFncywgR0MzRHVpbnQ2NCB0aW1lb3V0KTsKKyAg
ICB2b2lkIHdhaXRTeW5jKFdlYkdMU3luYyosIEdDM0RiaXRmaWVsZCBmbGFncywgR0MzRHVpbnQ2
NCB0aW1lb3V0KTsKKyAgICBXZWJHTEFueSBnZXRTeW5jUGFyYW1ldGVyKFdlYkdMU3luYyosIEdD
M0RlbnVtIHBuYW1lKTsKICAgICAKICAgICAvKiBUcmFuc2Zvcm0gRmVlZGJhY2sgKi8KICAgICBS
ZWZQdHI8V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz4gY3JlYXRlVHJhbnNmb3JtRmVlZGJhY2soKTsK
QEAgLTE1NSwxMiArMTU1LDEyIEBAIHB1YmxpYzoKICAgICAvKiBVbmlmb3JtIEJ1ZmZlciBPYmpl
Y3RzIGFuZCBUcmFuc2Zvcm0gRmVlZGJhY2sgQnVmZmVycyAqLwogICAgIHZvaWQgYmluZEJ1ZmZl
ckJhc2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWludCBpbmRleCwgV2ViR0xCdWZmZXIqIGJ1ZmZl
cik7CiAgICAgdm9pZCBiaW5kQnVmZmVyUmFuZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWludCBp
bmRleCwgV2ViR0xCdWZmZXIqIGJ1ZmZlciwgR0MzRGludDY0IG9mZnNldCwgR0MzRGludDY0IHNp
emUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRJbmRleGVkUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdl
dCwgR0MzRHVpbnQgaW5kZXgpOworICAgIFdlYkdMQW55IGdldEluZGV4ZWRQYXJhbWV0ZXIoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEdWludCBpbmRleCk7CiAgICAgVWludDMyQXJyYXkqIGdldFVuaWZv
cm1JbmRpY2VzKFdlYkdMUHJvZ3JhbSosIFZlY3RvcjxTdHJpbmc+IHVuaWZvcm1OYW1lcyk7CiAg
ICAgSW50MzJBcnJheSogZ2V0QWN0aXZlVW5pZm9ybXMoV2ViR0xQcm9ncmFtKiwgUmVmUHRyPFVp
bnQzMkFycmF5PiYmIHVuaWZvcm1JbmRpY2VzLCBHQzNEZW51bSBwbmFtZSk7CiAgICAgR0MzRHVp
bnQgZ2V0VW5pZm9ybUJsb2NrSW5kZXgoV2ViR0xQcm9ncmFtKiwgU3RyaW5nIHVuaWZvcm1CbG9j
a05hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIo
V2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdDM0RlbnVtIHBuYW1l
KTsKLSAgICBXZWJHTEdldEluZm8gZ2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShXZWJHTFByb2dy
YW0qLCBHQzNEdWludCB1bmlmb3JtQmxvY2tJbmRleCk7CisgICAgV2ViR0xBbnkgZ2V0QWN0aXZl
VW5pZm9ybUJsb2NrUGFyYW1ldGVyKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50IHVuaWZvcm1CbG9j
a0luZGV4LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0QWN0aXZlVW5pZm9ybUJs
b2NrTmFtZShXZWJHTFByb2dyYW0qLCBHQzNEdWludCB1bmlmb3JtQmxvY2tJbmRleCk7CiAgICAg
dm9pZCB1bmlmb3JtQmxvY2tCaW5kaW5nKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50IHVuaWZvcm1C
bG9ja0luZGV4LCBHQzNEdWludCB1bmlmb3JtQmxvY2tCaW5kaW5nKTsKICAgICAKICAgICAvKiBW
ZXJ0ZXggQXJyYXkgT2JqZWN0cyAqLwpAQCAtMTc1LDcgKzE3NSw3IEBAIHByaXZhdGU6CiAgICAg
LyogRXh0ZW5zaW9ucyAqLwogICAgIFdlYkdMRXh0ZW5zaW9uKiBnZXRFeHRlbnNpb24oY29uc3Qg
U3RyaW5nJikgZmluYWw7CiAgICAgVmVjdG9yPFN0cmluZz4gZ2V0U3VwcG9ydGVkRXh0ZW5zaW9u
cygpIGZpbmFsOwotICAgIFdlYkdMR2V0SW5mbyBnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUp
IGZpbmFsOworICAgIFdlYkdMQW55IGdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkgZmluYWw7
CiAKICAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSBmaW5h
bDsKICAgICB2b2lkIGhpbnQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBtb2RlKSBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQW55LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQW55LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNDRlZDk0
NWEzYjkzYmViNzg0NjBmNGFiYTI4NWUxZjM0MGIyZmUwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuY3BwCkBAIC0wLDAgKzEsMTE1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYkdMQW55LmgiCisKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcu
aCIKKyNpbmNsdWRlICJKU1dlYkdMQnVmZmVyLmgiCisjaW5jbHVkZSAiSlNXZWJHTEZyYW1lYnVm
ZmVyLmgiCisjaW5jbHVkZSAiSlNXZWJHTFByb2dyYW0uaCIKKyNpbmNsdWRlICJKU1dlYkdMUmVu
ZGVyYnVmZmVyLmgiCisjaW5jbHVkZSAiSlNXZWJHTFRleHR1cmUuaCIKKyNpbmNsdWRlICJKU1dl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKKworI2lmIEVOQUJMRShXRUJHTDIpCisjaW5jbHVk
ZSAiSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCit1c2luZyBuYW1lc3BhY2UgSlNDOworCisvLyBGSVhNRTogVGhpcyBsaWtlbHkgY2Fu
IGJlIGF1dG9nZW5lcmF0ZWQgd2l0aCBhIGJpdCBvZiB3b3JrLgorSlNWYWx1ZSB0b0pTKEV4ZWNT
dGF0ZSYgc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIGNvbnN0IFdlYkdM
QW55JiBhbnkpCit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24oYW55LAorICAgICAgICBbXSAo
c3RkOjpudWxscHRyX3QpIHsKKyAgICAgICAgICAgIHJldHVybiBqc051bGwoKTsKKyAgICAgICAg
fSwKKyAgICAgICAgW10gKGJvb2wgdmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBqc0Jvb2xl
YW4odmFsdWUpOworICAgICAgICB9LAorICAgICAgICBbXSAoaW50IHZhbHVlKSB7CisgICAgICAg
ICAgICByZXR1cm4ganNOdW1iZXIodmFsdWUpOworICAgICAgICB9LAorICAgICAgICBbXSAodW5z
aWduZWQgdmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBqc051bWJlcih2YWx1ZSk7CisgICAg
ICAgIH0sCisgICAgICAgIFtdIChsb25nIGxvbmcgdmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVy
biBqc051bWJlcih2YWx1ZSk7CisgICAgICAgIH0sCisgICAgICAgIFtdIChmbG9hdCB2YWx1ZSkg
eworICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHZhbHVlKTsKKyAgICAgICAgfSwKKyAgICAg
ICAgWyZdIChjb25zdCBTdHJpbmcmIHZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4ganNTdHJp
bmdXaXRoQ2FjaGUoJnN0YXRlLCB2YWx1ZSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29u
c3QgVmVjdG9yPGJvb2w+JiB2YWx1ZXMpIHsKKyAgICAgICAgICAgIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyIGxpc3Q7CisgICAgICAgICAgICBmb3IgKGF1dG8mIHZhbHVlIDogdmFsdWVzKQorICAgICAg
ICAgICAgICAgIGxpc3QuYXBwZW5kKGpzQm9vbGVhbih2YWx1ZSkpOworICAgICAgICAgICAgcmV0
dXJuIGNvbnN0cnVjdEFycmF5KCZzdGF0ZSwgMCwgJmdsb2JhbE9iamVjdCwgbGlzdCk7CisgICAg
ICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPEZsb2F0MzJBcnJheT4mIGFycmF5KSB7
CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIGFycmF5Lmdl
dCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8SW50MzJBcnJheT4m
IGFycmF5KSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3Qs
IGFycmF5LmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8VWlu
dDhBcnJheT4mIGFycmF5KSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9i
YWxPYmplY3QsIGFycmF5LmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBS
ZWZQdHI8VWludDMyQXJyYXk+JiBhcnJheSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCAmZ2xvYmFsT2JqZWN0LCBhcnJheS5nZXQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsm
XSAoY29uc3QgUmVmUHRyPFdlYkdMQnVmZmVyPiYgYnVmZmVyKSB7CisgICAgICAgICAgICByZXR1
cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIGJ1ZmZlci5nZXQoKSk7CisgICAgICAgIH0s
CisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+JiBidWZmZXIpIHsK
KyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYnVmZmVyLmdl
dCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2ViR0xQcm9ncmFt
PiYgcHJvZ3JhbSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2Jq
ZWN0LCBwcm9ncmFtLmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQ
dHI8V2ViR0xSZW5kZXJidWZmZXI+JiBidWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pT
KCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYnVmZmVyLmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAg
ICAgWyZdIChjb25zdCBSZWZQdHI8V2ViR0xUZXh0dXJlPiYgdGV4dHVyZSkgeworICAgICAgICAg
ICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCB0ZXh0dXJlLmdldCgpKTsKKyAg
ICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUz4mIGFycmF5KSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxP
YmplY3QsIGFycmF5LmdldCgpKTsKKyAgICAgICAgfQorI2lmIEVOQUJMRShXRUJHTDIpCisgICAg
ICAgICwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4m
IGFycmF5KSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3Qs
IGFycmF5LmdldCgpKTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgKTsKK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMQW55LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWEzYTIxMzM3YjBjNzllM2Jk
ZTI3YzM4MDk4NjBjOTY1ZDVhYjgzNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQW55LmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
V2ViR0xCdWZmZXIuaCIKKyNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCisjaW5jbHVkZSAi
V2ViR0xQcm9ncmFtLmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJidWZmZXIuaCIKKyNpbmNsdWRl
ICJXZWJHTFRleHR1cmUuaCIKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgi
CisjaW5jbHVkZSA8cnVudGltZS9GbG9hdDMyQXJyYXkuaD4KKyNpbmNsdWRlIDxydW50aW1lL0lu
dDMyQXJyYXkuaD4KKyNpbmNsdWRlIDxydW50aW1lL1VpbnQzMkFycmF5Lmg+CisjaW5jbHVkZSA8
cnVudGltZS9VaW50OEFycmF5Lmg+CisKKyNpZiBFTkFCTEUoV0VCR0wyKQorI2luY2x1ZGUgIldl
YkdMVmVydGV4QXJyYXlPYmplY3QuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgSlNDIHsKK2NsYXNz
IEV4ZWNTdGF0ZTsKK2NsYXNzIEpTVmFsdWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CisKK3VzaW5nIFdlYkdMQW55ID0gVmFyaWFudDxzdGQ6
Om51bGxwdHJfdCwgYm9vbCwgaW50LCB1bnNpZ25lZCwgbG9uZyBsb25nLCBmbG9hdCwgU3RyaW5n
LCBWZWN0b3I8Ym9vbD4sCisgICAgUmVmUHRyPEZsb2F0MzJBcnJheT4sCisgICAgUmVmUHRyPElu
dDMyQXJyYXk+LAorICAgIFJlZlB0cjxVaW50MzJBcnJheT4sCisgICAgUmVmUHRyPFVpbnQ4QXJy
YXk+LAorICAgIFJlZlB0cjxXZWJHTEJ1ZmZlcj4sCisgICAgUmVmUHRyPFdlYkdMRnJhbWVidWZm
ZXI+LAorICAgIFJlZlB0cjxXZWJHTFByb2dyYW0+LAorICAgIFJlZlB0cjxXZWJHTFJlbmRlcmJ1
ZmZlcj4sCisgICAgUmVmUHRyPFdlYkdMVGV4dHVyZT4sCisgICAgUmVmUHRyPFdlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVM+CisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAsIFJlZlB0cjxXZWJHTFZl
cnRleEFycmF5T2JqZWN0PgorI2VuZGlmCis+OworCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4
ZWNTdGF0ZSYsIEpTRE9NR2xvYmFsT2JqZWN0JiwgY29uc3QgV2ViR0xBbnkmKTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xDb250ZXh0R3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xD
b250ZXh0R3JvdXAuY3BwCmluZGV4IDIxMzNmMzNlZmM4Y2UwOTg3YjQ5ODMzY2JjMTBmYzc1OTEy
YTA4MjIuLmI3OWE3YjZmYTc1MjNiMzJiY2UyYzhjMWUxY2I2NmQxYzcxZWM0ZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5jcHAKQEAgLTQ5
LDQzICs0OSw0MCBAQCBXZWJHTENvbnRleHRHcm91cDo6fldlYkdMQ29udGV4dEdyb3VwKCkKICAg
ICBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCk7CiB9CiAKLUdyYXBoaWNzQ29udGV4dDNEKiBX
ZWJHTENvbnRleHRHcm91cDo6Z2V0QUdyYXBoaWNzQ29udGV4dDNEKCkKK0dyYXBoaWNzQ29udGV4
dDNEJiBXZWJHTENvbnRleHRHcm91cDo6Z2V0QUdyYXBoaWNzQ29udGV4dDNEKCkKIHsKICAgICBB
U1NFUlQoIW1fY29udGV4dHMuaXNFbXB0eSgpKTsKLSAgICBIYXNoU2V0PFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UqPjo6aXRlcmF0b3IgaXQgPSBtX2NvbnRleHRzLmJlZ2luKCk7Ci0gICAgcmV0
dXJuICgqaXQpLT5ncmFwaGljc0NvbnRleHQzRCgpOworICAgIHJldHVybiAqKCptX2NvbnRleHRz
LmJlZ2luKCkpLT5ncmFwaGljc0NvbnRleHQzRCgpOwogfQogCi12b2lkIFdlYkdMQ29udGV4dEdy
b3VwOjphZGRDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNvbnRleHQpCit2b2lk
IFdlYkdMQ29udGV4dEdyb3VwOjphZGRDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
IGNvbnRleHQpCiB7Ci0gICAgbV9jb250ZXh0cy5hZGQoY29udGV4dCk7CisgICAgbV9jb250ZXh0
cy5hZGQoJmNvbnRleHQpOwogfQogCi12b2lkIFdlYkdMQ29udGV4dEdyb3VwOjpyZW1vdmVDb250
ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNvbnRleHQpCit2b2lkIFdlYkdMQ29udGV4
dEdyb3VwOjpyZW1vdmVDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQp
CiB7CiAgICAgLy8gV2UgbXVzdCBjYWxsIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMgYmVmb3Jl
IHJlbW92aW5nIHRoZSBsYXN0IGNvbnRleHQuCi0gICAgaWYgKG1fY29udGV4dHMuc2l6ZSgpID09
IDEgJiYgbV9jb250ZXh0cy5jb250YWlucyhjb250ZXh0KSkKKyAgICBpZiAobV9jb250ZXh0cy5z
aXplKCkgPT0gMSAmJiBtX2NvbnRleHRzLmNvbnRhaW5zKCZjb250ZXh0KSkKICAgICAgICAgZGV0
YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpOwogCi0gICAgbV9jb250ZXh0cy5yZW1vdmUoY29udGV4
dCk7CisgICAgbV9jb250ZXh0cy5yZW1vdmUoJmNvbnRleHQpOwogfQogCi12b2lkIFdlYkdMQ29u
dGV4dEdyb3VwOjpyZW1vdmVPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCkKK3ZvaWQg
V2ViR0xDb250ZXh0R3JvdXA6OnJlbW92ZU9iamVjdChXZWJHTFNoYXJlZE9iamVjdCYgb2JqZWN0
KQogewotICAgIG1fZ3JvdXBPYmplY3RzLnJlbW92ZShvYmplY3QpOworICAgIG1fZ3JvdXBPYmpl
Y3RzLnJlbW92ZSgmb2JqZWN0KTsKIH0KIAotdm9pZCBXZWJHTENvbnRleHRHcm91cDo6YWRkT2Jq
ZWN0KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMQ29udGV4dEdyb3VwOjph
ZGRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmIG9iamVjdCkKIHsKLSAgICBtX2dyb3VwT2JqZWN0
cy5hZGQob2JqZWN0KTsKKyAgICBtX2dyb3VwT2JqZWN0cy5hZGQoJm9iamVjdCk7CiB9CiAKIHZv
aWQgV2ViR0xDb250ZXh0R3JvdXA6OmRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMoKQogewotICAg
IHdoaWxlICghbV9ncm91cE9iamVjdHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIEhhc2hTZXQ8V2Vi
R0xTaGFyZWRPYmplY3QqPjo6aXRlcmF0b3IgaXQgPSBtX2dyb3VwT2JqZWN0cy5iZWdpbigpOwot
ICAgICAgICAoKml0KS0+ZGV0YWNoQ29udGV4dEdyb3VwKCk7Ci0gICAgfQorICAgIHdoaWxlICgh
bV9ncm91cE9iamVjdHMuaXNFbXB0eSgpKQorICAgICAgICAoKm1fZ3JvdXBPYmplY3RzLmJlZ2lu
KCkpLT5kZXRhY2hDb250ZXh0R3JvdXAoKTsKIH0KIAogdm9pZCBXZWJHTENvbnRleHRHcm91cDo6
bG9zZUNvbnRleHRHcm91cChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpMb3N0Q29udGV4dE1v
ZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29u
dGV4dEdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91
cC5oCmluZGV4IDlkMDEwYmZjYzIwOTk2YTE0NjQ4NTdhZmNlZWYzYzRhYTdhNmI5YjcuLmIwYWY2
MmZkNGFlYTZkN2NiZTFjNmM2MmFiZTE0NWVjNTc2MjAzZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaApAQCAtMjYsMjggKzI2LDIxIEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKLSNp
bmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7Ci1jbGFzcyBXZWJH
TEV4dGVuc2lvbjsKLWNsYXNzIFdlYkdMU2hhcmVkT2JqZWN0OwotY2xhc3MgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTsKLQogY2xhc3MgV2ViR0xDb250ZXh0R3JvdXAgZmluYWwgOiBwdWJsaWMg
UmVmQ291bnRlZDxXZWJHTENvbnRleHRHcm91cD4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8
V2ViR0xDb250ZXh0R3JvdXA+IGNyZWF0ZSgpOwogICAgIH5XZWJHTENvbnRleHRHcm91cCgpOwog
Ci0gICAgdm9pZCBhZGRDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqKTsKLSAgICB2
b2lkIHJlbW92ZUNvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSopOworICAgIHZvaWQg
YWRkQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CisgICAgdm9pZCByZW1vdmVD
b250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKIAotICAgIHZvaWQgYWRkT2JqZWN0
KFdlYkdMU2hhcmVkT2JqZWN0Kik7Ci0gICAgdm9pZCByZW1vdmVPYmplY3QoV2ViR0xTaGFyZWRP
YmplY3QqKTsKKyAgICB2b2lkIGFkZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCYpOworICAgIHZv
aWQgcmVtb3ZlT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Jik7CiAKLSAgICBHcmFwaGljc0NvbnRl
eHQzRCogZ2V0QUdyYXBoaWNzQ29udGV4dDNEKCk7CisgICAgR3JhcGhpY3NDb250ZXh0M0QmIGdl
dEFHcmFwaGljc0NvbnRleHQzRCgpOwogCiAgICAgdm9pZCBsb3NlQ29udGV4dEdyb3VwKFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6Okxvc3RDb250ZXh0TW9kZSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCmluZGV4IDUyM2U2ZTY0
MmQ3NDliNjAyMmYzNzczYTg4ZWRmNGVhMGVjYjliYjguLjBiODdjZmI0ZDI0M2M5NTNlOTBjZWM5
YzQ0NzdjMmZlZDkyOGRkZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQ29udGV4dE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xDb250ZXh0T2JqZWN0LmNwcApAQCAtNDIsNyArNDIsNyBAQCBXZWJHTENvbnRleHRPYmpl
Y3Q6OldlYkdMQ29udGV4dE9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0
KQogV2ViR0xDb250ZXh0T2JqZWN0Ojp+V2ViR0xDb250ZXh0T2JqZWN0KCkKIHsKICAgICBpZiAo
bV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNvbnRleHRPYmplY3QodGhpcyk7
CisgICAgICAgIG1fY29udGV4dC0+cmVtb3ZlQ29udGV4dE9iamVjdCgqdGhpcyk7CiB9CiAKIHZv
aWQgV2ViR0xDb250ZXh0T2JqZWN0OjpkZXRhY2hDb250ZXh0KCkKQEAgLTUwLDggKzUwLDggQEAg
dm9pZCBXZWJHTENvbnRleHRPYmplY3Q6OmRldGFjaENvbnRleHQoKQogICAgIGRldGFjaCgpOwog
ICAgIGlmIChtX2NvbnRleHQpIHsKICAgICAgICAgZGVsZXRlT2JqZWN0KG1fY29udGV4dC0+Z3Jh
cGhpY3NDb250ZXh0M0QoKSk7Ci0gICAgICAgIG1fY29udGV4dC0+cmVtb3ZlQ29udGV4dE9iamVj
dCh0aGlzKTsKLSAgICAgICAgbV9jb250ZXh0ID0gMDsKKyAgICAgICAgbV9jb250ZXh0LT5yZW1v
dmVDb250ZXh0T2JqZWN0KCp0aGlzKTsKKyAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0
SW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZWFkMWNmZDYzNzQyYjAwZDUyNDJkZTcxOTU3
MjNhYjNlZjNkMWViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSwzNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKFdFQkdMKQotCi0j
aW5jbHVkZSAiV2ViR0xHZXRJbmZvLmgiCi0KLSNpbmNsdWRlIDxydW50aW1lL0Zsb2F0MzJBcnJh
eS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSW50MzJBcnJheS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUv
VWludDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL1VpbnQ4QXJyYXkuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhib29sIHZhbHVlKQot
ICAgIDogbV90eXBlKGtUeXBlQm9vbCkKLSAgICAsIG1fYm9vbCh2YWx1ZSkKLSAgICAsIG1fZmxv
YXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2lu
dDY0KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKGNvbnN0IGJvb2wqIHZh
bHVlLCBpbnQgc2l6ZSkKLSAgICA6IG1fdHlwZShrVHlwZUJvb2xBcnJheSkKLSAgICAsIG1fYm9v
bChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2ln
bmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi17Ci0gICAgaWYgKCF2YWx1ZSB8fCBzaXplIDw9
MCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fYm9vbEFycmF5LnJlc2l6ZShzaXplKTsKLSAgICBm
b3IgKGludCBpaSA9IDA7IGlpIDwgc2l6ZTsgKytpaSkKLSAgICAgICAgbV9ib29sQXJyYXlbaWld
ID0gdmFsdWVbaWldOwotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhmbG9hdCB2YWx1
ZSkKLSAgICA6IG1fdHlwZShrVHlwZUZsb2F0KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwg
bV9mbG9hdCh2YWx1ZSkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0g
ICAgLCBtX2ludDY0KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKGludCB2
YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZUludCkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAs
IG1fZmxvYXQoMCkKLSAgICAsIG1faW50KHZhbHVlKQotICAgICwgbV91bnNpZ25lZEludCgwKQot
ICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbygpCi0g
ICAgOiBtX3R5cGUoa1R5cGVOdWxsKQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9h
dCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50
NjQoMCkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oY29uc3QgU3RyaW5nJiB2
YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVN0cmluZykKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAg
ICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3N0cmluZyh2YWx1ZSkKLSAg
ICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLXsKLX0KLQotV2ViR0xHZXRJ
bmZvOjpXZWJHTEdldEluZm8odW5zaWduZWQgaW50IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBl
VW5zaWduZWRJbnQpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAg
LCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCh2YWx1ZSkKLSAgICAsIG1faW50NjQoMCkK
LXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8obG9uZyBsb25nIHZhbHVlKQotICAg
IDogbV90eXBlKGtUeXBlSW50NjQpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0
KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2
NCh2YWx1ZSkKLXsKLX0KLQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRy
PFdlYkdMQnVmZmVyPiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMQnVmZmVyKQotICAg
ICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAs
IG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xCdWZmZXIo
dmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8Rmxv
YXQzMkFycmF5PiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMRmxvYXRBcnJheSkKLSAg
ICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAg
LCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmdsRmxvYXRB
cnJheSh2YWx1ZSkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0
cjxXZWJHTEZyYW1lYnVmZmVyPiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMRnJhbWVi
dWZmZXIpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2lu
dCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93
ZWJnbEZyYW1lYnVmZmVyKHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5m
byhQYXNzUmVmUHRyPEludDMyQXJyYXk+IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xJ
bnRBcnJheSkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1f
aW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBt
X3dlYmdsSW50QXJyYXkodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZv
KFBhc3NSZWZQdHI8V2ViR0xQcm9ncmFtPiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdM
UHJvZ3JhbSkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1f
aW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBt
X3dlYmdsUHJvZ3JhbSh2YWx1ZSkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8o
UGFzc1JlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVX
ZWJHTFJlbmRlcmJ1ZmZlcikKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkK
LSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDAp
Ci0gICAgLCBtX3dlYmdsUmVuZGVyYnVmZmVyKHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86
OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMVGV4dHVyZT4gdmFsdWUpCi0gICAgOiBtX3R5
cGUoa1R5cGVXZWJHTFRleHR1cmUpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0
KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2
NCgwKQotICAgICwgbV93ZWJnbFRleHR1cmUodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6
V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDhBcnJheT4gdmFsdWUpCi0gICAgOiBtX3R5cGUo
a1R5cGVXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwg
bV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAs
IG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xVbnNpZ25lZEJ5dGVBcnJheSh2YWx1ZSkKLXsKLX0K
LQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gdmFs
dWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJHTFVuc2lnbmVkSW50QXJyYXkpCi0gICAgLCBtX2Jv
b2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNp
Z25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbFVuc2lnbmVkSW50QXJy
YXkodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTKQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9h
dCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50
NjQoMCkKLSAgICAsIG1fd2ViZ2xWZXJ0ZXhBcnJheU9iamVjdE9FUyh2YWx1ZSkKLXsKLX0KLQot
I2lmIEVOQUJMRShXRUJHTDIpCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRy
PFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdCkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkK
LSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDAp
Ci0gICAgLCBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3QodmFsdWUpCi17Ci19Ci0jZW5kaWYKLQot
V2ViR0xHZXRJbmZvOjp+V2ViR0xHZXRJbmZvKCkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpUeXBl
IFdlYkdMR2V0SW5mbzo6Z2V0VHlwZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdHlwZTsKLX0K
LQotYm9vbCBXZWJHTEdldEluZm86OmdldEJvb2woKSBjb25zdAotewotICAgIEFTU0VSVChnZXRU
eXBlKCkgPT0ga1R5cGVCb29sKTsKLSAgICByZXR1cm4gbV9ib29sOwotfQotCi1jb25zdCBWZWN0
b3I8Ym9vbD4mIFdlYkdMR2V0SW5mbzo6Z2V0Qm9vbEFycmF5KCkgY29uc3QKLXsKLSAgICBBU1NF
UlQoZ2V0VHlwZSgpID09IGtUeXBlQm9vbEFycmF5KTsKLSAgICByZXR1cm4gbV9ib29sQXJyYXk7
Ci19Ci0KLWZsb2F0IFdlYkdMR2V0SW5mbzo6Z2V0RmxvYXQoKSBjb25zdAotewotICAgIEFTU0VS
VChnZXRUeXBlKCkgPT0ga1R5cGVGbG9hdCk7Ci0gICAgcmV0dXJuIG1fZmxvYXQ7Ci19Ci0KLWlu
dCBXZWJHTEdldEluZm86OmdldEludCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9
PSBrVHlwZUludCk7Ci0gICAgcmV0dXJuIG1faW50OwotfQotCi1jb25zdCBTdHJpbmcmIFdlYkdM
R2V0SW5mbzo6Z2V0U3RyaW5nKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtU
eXBlU3RyaW5nKTsKLSAgICByZXR1cm4gbV9zdHJpbmc7Ci19Ci0KLXVuc2lnbmVkIGludCBXZWJH
TEdldEluZm86OmdldFVuc2lnbmVkSW50KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgp
ID09IGtUeXBlVW5zaWduZWRJbnQpOwotICAgIHJldHVybiBtX3Vuc2lnbmVkSW50OwotfQotCi1s
b25nIGxvbmcgV2ViR0xHZXRJbmZvOjpnZXRJbnQ2NCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdl
dFR5cGUoKSA9PSBrVHlwZUludDY0KTsKLSAgICByZXR1cm4gbV9pbnQ2NDsKLX0KLQotV2ViR0xC
dWZmZXIqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xCdWZmZXIoKSBjb25zdAotewotICAgIEFTU0VS
VChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTEJ1ZmZlcik7Ci0gICAgcmV0dXJuIG1fd2ViZ2xCdWZm
ZXIuZ2V0KCk7Ci19Ci0KLUZsb2F0MzJBcnJheSogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTEZsb2F0
QXJyYXkoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTEZsb2F0
QXJyYXkpOwotICAgIHJldHVybiBtX3dlYmdsRmxvYXRBcnJheS5nZXQoKTsKLX0KLQotV2ViR0xG
cmFtZWJ1ZmZlciogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTEZyYW1lYnVmZmVyKCkgY29uc3QKLXsK
LSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xGcmFtZWJ1ZmZlcik7Ci0gICAgcmV0
dXJuIG1fd2ViZ2xGcmFtZWJ1ZmZlci5nZXQoKTsKLX0KLQotSW50MzJBcnJheSogV2ViR0xHZXRJ
bmZvOjpnZXRXZWJHTEludEFycmF5KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09
IGtUeXBlV2ViR0xJbnRBcnJheSk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xJbnRBcnJheS5nZXQoKTsK
LX0KLQotV2ViR0xQcm9ncmFtKiBXZWJHTEdldEluZm86OmdldFdlYkdMUHJvZ3JhbSgpIGNvbnN0
Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMUHJvZ3JhbSk7Ci0gICAgcmV0
dXJuIG1fd2ViZ2xQcm9ncmFtLmdldCgpOwotfQotCi1XZWJHTFJlbmRlcmJ1ZmZlciogV2ViR0xH
ZXRJbmZvOjpnZXRXZWJHTFJlbmRlcmJ1ZmZlcigpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5
cGUoKSA9PSBrVHlwZVdlYkdMUmVuZGVyYnVmZmVyKTsKLSAgICByZXR1cm4gbV93ZWJnbFJlbmRl
cmJ1ZmZlci5nZXQoKTsKLX0KLQotV2ViR0xUZXh0dXJlKiBXZWJHTEdldEluZm86OmdldFdlYkdM
VGV4dHVyZSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMVGV4
dHVyZSk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xUZXh0dXJlLmdldCgpOwotfQotCi1VaW50OEFycmF5
KiBXZWJHTEdldEluZm86OmdldFdlYkdMVW5zaWduZWRCeXRlQXJyYXkoKSBjb25zdAotewotICAg
IEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KTsKLSAgICBy
ZXR1cm4gbV93ZWJnbFVuc2lnbmVkQnl0ZUFycmF5LmdldCgpOwotfQotCi1VaW50MzJBcnJheSog
V2ViR0xHZXRJbmZvOjpnZXRXZWJHTFVuc2lnbmVkSW50QXJyYXkoKSBjb25zdAotewotICAgIEFT
U0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTFVuc2lnbmVkSW50QXJyYXkpOwotICAgIHJldHVy
biBtX3dlYmdsVW5zaWduZWRJbnRBcnJheS5nZXQoKTsKLX0KLQotV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUyogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKCkgY29u
c3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUyk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xWZXJ0ZXhBcnJheU9iamVjdE9FUy5nZXQoKTsKLX0K
LQotI2lmIEVOQUJMRShXRUJHTDIpCi1XZWJHTFZlcnRleEFycmF5T2JqZWN0KiBXZWJHTEdldElu
Zm86OmdldFdlYkdMVmVydGV4QXJyYXlPYmplY3QoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRU
eXBlKCkgPT0ga1R5cGVXZWJHTFZlcnRleEFycmF5T2JqZWN0KTsKLSAgICByZXR1cm4gbV93ZWJn
bFZlcnRleEFycmF5T2JqZWN0LmdldCgpOwotfQotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xHZXRJbmZvLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2ZjY5M2M1
ZDc2MzYyMjNlZDVjYWUzYzM5ZmI2MDAzYmFmNzhmY2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xH
ZXRJbmZvLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJX
ZWJHTEJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkdMRnJhbWVidWZmZXIuaCIKLSNpbmNsdWRlICJX
ZWJHTFByb2dyYW0uaCIKLSNpbmNsdWRlICJXZWJHTFJlbmRlcmJ1ZmZlci5oIgotI2luY2x1ZGUg
IldlYkdMVGV4dHVyZS5oIgotI2lmIEVOQUJMRShXRUJHTDIpCi0jaW5jbHVkZSAiV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdC5oIgotI2VuZGlmCi0jaW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUy5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvRmxvYXQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVu
dGltZS9JbnQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9VaW50MzJBcnJheS5oPgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvVWludDhBcnJheS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIEEgdGFnZ2VkIHVuaW9uIHJlcHJlc2VudGlu
ZyB0aGUgcmVzdWx0IG9mIGdldCBxdWVyaWVzIGxpa2UKLS8vIGdldFBhcmFtZXRlciAoZW5jb21w
YXNzaW5nIGdldEJvb2xlYW52LCBnZXRJbnRlZ2VydiwgZ2V0RmxvYXR2KSBhbmQKLS8vIHNpbWls
YXIgdmFyaWFudHMuIEZvciByZWZlcmVuY2UgY291bnRlZCB0eXBlcywgaW5jcmVtZW50cyBhbmQK
LS8vIGRlY3JlbWVudHMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgdGFyZ2V0IG9iamVjdC4K
LQotY2xhc3MgV2ViR0xHZXRJbmZvIGZpbmFsIHsKLXB1YmxpYzoKLSAgICBlbnVtIFR5cGUgewot
ICAgICAgICBrVHlwZUJvb2wsCi0gICAgICAgIGtUeXBlQm9vbEFycmF5LAotICAgICAgICBrVHlw
ZUZsb2F0LAotICAgICAgICBrVHlwZUludCwKLSAgICAgICAga1R5cGVOdWxsLAotICAgICAgICBr
VHlwZVN0cmluZywKLSAgICAgICAga1R5cGVVbnNpZ25lZEludCwKLSAgICAgICAga1R5cGVJbnQ2
NCwKLSAgICAgICAga1R5cGVXZWJHTEJ1ZmZlciwKLSAgICAgICAga1R5cGVXZWJHTEZsb2F0QXJy
YXksCi0gICAgICAgIGtUeXBlV2ViR0xGcmFtZWJ1ZmZlciwKLSAgICAgICAga1R5cGVXZWJHTElu
dEFycmF5LAotICAgICAgICBrVHlwZVdlYkdMT2JqZWN0QXJyYXksCi0gICAgICAgIGtUeXBlV2Vi
R0xQcm9ncmFtLAotICAgICAgICBrVHlwZVdlYkdMUmVuZGVyYnVmZmVyLAotICAgICAgICBrVHlw
ZVdlYkdMVGV4dHVyZSwKLSAgICAgICAga1R5cGVXZWJHTFVuc2lnbmVkQnl0ZUFycmF5LAotICAg
ICAgICBrVHlwZVdlYkdMVW5zaWduZWRJbnRBcnJheSwKLSAgICAgICAga1R5cGVXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTLAotICAgICAgICBrVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3QsCi0g
ICAgfTsKLQotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhib29sIHZhbHVlKTsKLSAgICBXZWJH
TEdldEluZm8oY29uc3QgYm9vbCogdmFsdWUsIGludCBzaXplKTsKLSAgICBleHBsaWNpdCBXZWJH
TEdldEluZm8oZmxvYXQgdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhpbnQgdmFs
dWUpOwotICAgIC8vIFJlcHJlc2VudHMgdGhlIG51bGwgdmFsdWUgYW5kIHR5cGUuCi0gICAgV2Vi
R0xHZXRJbmZvKCk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKGNvbnN0IFN0cmluZyYgdmFs
dWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyh1bnNpZ25lZCBpbnQgdmFsdWUpOwotICAg
IGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhsb25nIGxvbmcgdmFsdWUpOwotICAgIGV4cGxpY2l0IFdl
YkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQg
V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PiB2YWx1ZSk7Ci0gICAgZXhwbGlj
aXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4gdmFsdWUpOwotICAg
IGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEludDMyQXJyYXk+IHZhbHVlKTsKLSAg
ICAvLyBGSVhNRTogaW1wbGVtZW50IFdlYkdMT2JqZWN0QXJyYXkKLSAgICAvLyBXZWJHTEdldElu
Zm8oUGFzc1JlZlB0cjxXZWJHTE9iamVjdEFycmF5PiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2Vi
R0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xQcm9ncmFtPiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQg
V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+IHZhbHVlKTsKLSAgICBl
eHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+IHZhbHVlKTsKLSAg
ICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxVaW50OEFycmF5PiB2YWx1ZSk7Ci0g
ICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDMyQXJyYXk+IHZhbHVlKTsK
LSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTPiB2YWx1ZSk7Ci0jaWYgRU5BQkxFKFdFQkdMMikKLSAgICBleHBsaWNpdCBXZWJHTEdl
dEluZm8oUGFzc1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiB2YWx1ZSk7Ci0jZW5kaWYK
LQotICAgIH5XZWJHTEdldEluZm8oKTsKLQotICAgIFR5cGUgZ2V0VHlwZSgpIGNvbnN0OwotCi0g
ICAgYm9vbCBnZXRCb29sKCkgY29uc3Q7Ci0gICAgY29uc3QgVmVjdG9yPGJvb2w+JiBnZXRCb29s
QXJyYXkoKSBjb25zdDsKLSAgICBmbG9hdCBnZXRGbG9hdCgpIGNvbnN0OwotICAgIGludCBnZXRJ
bnQoKSBjb25zdDsKLSAgICBjb25zdCBTdHJpbmcmIGdldFN0cmluZygpIGNvbnN0OwotICAgIHVu
c2lnbmVkIGludCBnZXRVbnNpZ25lZEludCgpIGNvbnN0OwotICAgIGxvbmcgbG9uZyBnZXRJbnQ2
NCgpIGNvbnN0OwotICAgIFdlYkdMQnVmZmVyKiBnZXRXZWJHTEJ1ZmZlcigpIGNvbnN0OwotICAg
IEZsb2F0MzJBcnJheSogZ2V0V2ViR0xGbG9hdEFycmF5KCkgY29uc3Q7Ci0gICAgV2ViR0xGcmFt
ZWJ1ZmZlciogZ2V0V2ViR0xGcmFtZWJ1ZmZlcigpIGNvbnN0OwotICAgIEludDMyQXJyYXkqIGdl
dFdlYkdMSW50QXJyYXkoKSBjb25zdDsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50IFdlYkdMT2Jq
ZWN0QXJyYXkKLSAgICAvLyBXZWJHTE9iamVjdEFycmF5KiBnZXRXZWJHTE9iamVjdEFycmF5KCkg
Y29uc3Q7Ci0gICAgV2ViR0xQcm9ncmFtKiBnZXRXZWJHTFByb2dyYW0oKSBjb25zdDsKLSAgICBX
ZWJHTFJlbmRlcmJ1ZmZlciogZ2V0V2ViR0xSZW5kZXJidWZmZXIoKSBjb25zdDsKLSAgICBXZWJH
TFRleHR1cmUqIGdldFdlYkdMVGV4dHVyZSgpIGNvbnN0OwotICAgIFVpbnQ4QXJyYXkqIGdldFdl
YkdMVW5zaWduZWRCeXRlQXJyYXkoKSBjb25zdDsKLSAgICBVaW50MzJBcnJheSogZ2V0V2ViR0xV
bnNpZ25lZEludEFycmF5KCkgY29uc3Q7Ci0gICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyog
Z2V0V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygpIGNvbnN0OwotI2lmIEVOQUJMRShXRUJHTDIp
Ci0gICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCogZ2V0V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCgp
IGNvbnN0OwotI2VuZGlmCi0KLXByaXZhdGU6Ci0gICAgVHlwZSBtX3R5cGU7Ci0gICAgYm9vbCBt
X2Jvb2w7Ci0gICAgVmVjdG9yPGJvb2w+IG1fYm9vbEFycmF5OwotICAgIGZsb2F0IG1fZmxvYXQ7
Ci0gICAgaW50IG1faW50OwotICAgIFN0cmluZyBtX3N0cmluZzsKLSAgICB1bnNpZ25lZCBpbnQg
bV91bnNpZ25lZEludDsKLSAgICBsb25nIGxvbmcgbV9pbnQ2NDsKLSAgICBSZWZQdHI8V2ViR0xC
dWZmZXI+IG1fd2ViZ2xCdWZmZXI7Ci0gICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gbV93ZWJnbEZs
b2F0QXJyYXk7Ci0gICAgUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IG1fd2ViZ2xGcmFtZWJ1ZmZl
cjsKLSAgICBSZWZQdHI8SW50MzJBcnJheT4gbV93ZWJnbEludEFycmF5OwotICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQgV2ViR0xPYmplY3RBcnJheQotICAgIC8vIFJlZlB0cjxXZWJHTE9iamVjdEFy
cmF5PiBtX3dlYmdsT2JqZWN0QXJyYXk7Ci0gICAgUmVmUHRyPFdlYkdMUHJvZ3JhbT4gbV93ZWJn
bFByb2dyYW07Ci0gICAgUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPiBtX3dlYmdsUmVuZGVyYnVm
ZmVyOwotICAgIFJlZlB0cjxXZWJHTFRleHR1cmU+IG1fd2ViZ2xUZXh0dXJlOwotICAgIFJlZlB0
cjxVaW50OEFycmF5PiBtX3dlYmdsVW5zaWduZWRCeXRlQXJyYXk7Ci0gICAgUmVmUHRyPFVpbnQz
MkFycmF5PiBtX3dlYmdsVW5zaWduZWRJbnRBcnJheTsKLSAgICBSZWZQdHI8V2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUz4gbV93ZWJnbFZlcnRleEFycmF5T2JqZWN0T0VTOwotI2lmIEVOQUJMRShX
RUJHTDIpCi0gICAgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IG1fd2ViZ2xWZXJ0ZXhB
cnJheU9iamVjdDsKLSNlbmRpZgotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAK
aW5kZXggYjA2ZDZjOWM4NmEzMTZjMjAxOTkzNWNlODQxMzQ4MDllMzM0MTZhZi4uNzg0YWJiNDQ2
M2Y4MGViYWE2NjM2NDRhZjE4NjFkOTQwNDY1NDk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0yNCw5ICsyNCw5
IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5n
Q29udGV4dC5oIgogCiAjaWYgRU5BQkxFKFdFQkdMKQotI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5n
Q29udGV4dC5oIgogCiAjaW5jbHVkZSAiQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIKICNpbmNsdWRl
ICJDYWNoZWRJbWFnZS5oIgpAQCAtNzAsMTE5ICs3MCwxMjEgQEAgV2ViR0xSZW5kZXJpbmdDb250
ZXh0OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZh
cywgR3IKIHsKIH0KIAotV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHQoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUGFzc1JlZlB0cjxHcmFwaGljc0Nv
bnRleHQzRD4gY29udGV4dCwKLSAgICBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmli
dXRlcykgOiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKHBhc3NlZENhbnZhcywgY29udGV4dCwg
YXR0cmlidXRlcykKK1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
KEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFJlZjxHcmFwaGljc0NvbnRleHQzRD4m
JiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcykKKyAgICA6
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UocGFzc2VkQ2FudmFzLCBXVEZNb3ZlKGNvbnRleHQp
LCBhdHRyaWJ1dGVzKQogewogICAgIGluaXRpYWxpemVWZXJ0ZXhBcnJheU9iamVjdHMoKTsKIH0K
IAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVWZXJ0ZXhBcnJheU9iamVj
dHMoKQogewotICAgIG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdE9FUzo6Y3JlYXRlKCp0aGlzLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpWQU9U
eXBlRGVmYXVsdCk7Ci0gICAgYWRkQ29udGV4dE9iamVjdChtX2RlZmF1bHRWZXJ0ZXhBcnJheU9i
amVjdC5nZXQoKSk7CisgICAgbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QgPSBXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTOjpjcmVhdGUoKnRoaXMsIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6
OlR5cGU6OkRlZmF1bHQpOworICAgIGFkZENvbnRleHRPYmplY3QoKm1fZGVmYXVsdFZlcnRleEFy
cmF5T2JqZWN0KTsKICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBtX2RlZmF1bHRWZXJ0
ZXhBcnJheU9iamVjdDsKICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSkKICAgICAgICAgaW5p
dFZlcnRleEF0dHJpYjAoKTsKIH0KIAorc3RhdGljIGJvb2wgZW5hYmxlU3VwcG9ydGVkRXh0ZW5z
aW9uKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIGNvbnN0IGNoYXIqIGxpdGVy
YWwpCit7CisgICAgQVNTRVJUKGNvbnRleHQuZ3JhcGhpY3NDb250ZXh0M0QoKSk7CisgICAgYXV0
byYgZXh0ZW5zaW9ucyA9IGNvbnRleHQuZ3JhcGhpY3NDb250ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9u
cygpOworICAgIGlmICghZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyBsaXRlcmFs
IH0pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZXh0ZW5zaW9ucy5lbnN1cmVFbmFibGVk
KEFTQ0lJTGl0ZXJhbCB7IGxpdGVyYWwgfSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIFdlYkdM
RXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihjb25zdCBTdHJp
bmcmIG5hbWUpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFt
ZSwgIkVYVF9ibGVuZF9taW5tYXgiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5zdXBwb3J0cygiR0xfRVhUX2JsZW5kX21pbm1heCIpKSB7CisgICAgaWYgKGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9ibGVuZF9taW5tYXgiKSkgewogICAgICAgICBpZiAo
IW1fZXh0QmxlbmRNaW5NYXgpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLmVuc3VyZUVuYWJsZWQoIkdMX0VYVF9ibGVuZF9taW5tYXgiKTsKLSAgICAgICAgICAgIG1f
ZXh0QmxlbmRNaW5NYXggPSBzdGQ6Om1ha2VfdW5pcXVlPEVYVEJsZW5kTWluTWF4PigqdGhpcyk7
CisgICAgICAgICAgICBtX2V4dEJsZW5kTWluTWF4ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9u
KCp0aGlzLCAiR0xfRVhUX2JsZW5kX21pbm1heCIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1h
a2VfdW5pcXVlPEVYVEJsZW5kTWluTWF4PigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAg
ICAgICAgIHJldHVybiBtX2V4dEJsZW5kTWluTWF4LmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX3NSR0IiKQotICAgICAgICAmJiBtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX3NSR0IiKSkgeworICAgIGlmIChl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfc1JHQiIpKSB7CiAgICAgICAgIGlmICgh
bV9leHRzUkdCKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1
cmVFbmFibGVkKCJHTF9FWFRfc1JHQiIpOwotICAgICAgICAgICAgbV9leHRzUkdCID0gc3RkOjpt
YWtlX3VuaXF1ZTxFWFRzUkdCPigqdGhpcyk7CisgICAgICAgICAgICBtX2V4dHNSR0IgPSBlbmFi
bGVTdXBwb3J0ZWRFeHRlbnNpb24oKnRoaXMsICJHTF9FWFRfc1JHQiIpCisgICAgICAgICAgICAg
ICAgPyBzdGQ6Om1ha2VfdW5pcXVlPEVYVHNSR0I+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuIG1fZXh0c1JHQi5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9mcmFnX2RlcHRoIikKLSAgICAgICAgJiYgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9mcmFnX2RlcHRoIikpIHsK
KyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX2ZyYWdfZGVwdGgiKSkg
ewogICAgICAgICBpZiAoIW1fZXh0RnJhZ0RlcHRoKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9FWFRfZnJhZ19kZXB0aCIpOwotICAg
ICAgICAgICAgbV9leHRGcmFnRGVwdGggPSBzdGQ6Om1ha2VfdW5pcXVlPEVYVEZyYWdEZXB0aD4o
KnRoaXMpOworICAgICAgICAgICAgbV9leHRGcmFnRGVwdGggPSBlbmFibGVTdXBwb3J0ZWRFeHRl
bnNpb24oKnRoaXMsICJHTF9FWFRfZnJhZ19kZXB0aCIpCisgICAgICAgICAgICAgICAgPyBzdGQ6
Om1ha2VfdW5pcXVlPEVYVEZyYWdEZXB0aD4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gbV9leHRGcmFnRGVwdGguZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIikKLSAgICAg
ICAgJiYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfc2hhZGVy
X3RleHR1cmVfbG9kIikgfHwgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdM
X0FSQl9zaGFkZXJfdGV4dHVyZV9sb2QiKSkpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShuYW1lLCAiRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpKSB7CiAgICAgICAgIGlmICghbV9l
eHRTaGFkZXJUZXh0dXJlTE9EKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5lbnN1cmVFbmFibGVkKCJHTF9FWFRfc2hhZGVyX3RleHR1cmVfbG9kIik7Ci0gICAgICAg
ICAgICBtX2V4dFNoYWRlclRleHR1cmVMT0QgPSBzdGQ6Om1ha2VfdW5pcXVlPEVYVFNoYWRlclRl
eHR1cmVMT0Q+KCp0aGlzKTsKKyAgICAgICAgICAgIGlmICghKG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfc2hhZGVyX3RleHR1cmVfbG9k
IiB9KSB8fCBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwg
eyAiR0xfQVJCX3NoYWRlcl90ZXh0dXJlX2xvZCIgfSkpKQorICAgICAgICAgICAgICAgIG1fZXh0
U2hhZGVyVGV4dHVyZUxPRCA9IG51bGxwdHI7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAg
ICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0
ZXJhbCB7ICJHTF9FWFRfc2hhZGVyX3RleHR1cmVfbG9kIiB9KTsKKyAgICAgICAgICAgICAgICBt
X2V4dFNoYWRlclRleHR1cmVMT0QgPSBzdGQ6Om1ha2VfdW5pcXVlPEVYVFNoYWRlclRleHR1cmVM
T0Q+KCp0aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9l
eHRTaGFkZXJUZXh0dXJlTE9ELmdldCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UobmFtZSwgIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpIHx8IGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290
cm9waWMiKSkKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMo
IkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKSB7CisgICAgaWYgKGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpIHx8
IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJf
YW5pc290cm9waWMiKSkgewogICAgICAgICBpZiAoIW1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJv
cGljKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFi
bGVkKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTsKLSAgICAgICAgICAgIG1f
ZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWM+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fZXh0VGV4dHVyZUZpbHRl
ckFuaXNvdHJvcGljID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCp0aGlzLCAiR0xfRVhUX3Rl
eHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91
bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcykgOiBudWxscHRyOwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5nZXQo
KTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU19zdGFu
ZGFyZF9kZXJpdmF0aXZlcyIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LnN1cHBvcnRzKCJHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKSkgeworICAgIGlmIChlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKSkgewog
ICAgICAgICBpZiAoIW1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcykgewotICAgICAgICAgICAgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3N0YW5kYXJkX2Rl
cml2YXRpdmVzIik7Ci0gICAgICAgICAgICBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMgPSBzdGQ6
Om1ha2VfdW5pcXVlPE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM+KCp0aGlzKTsKKyAgICAgICAgICAg
IG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcyA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigqdGhp
cywgIkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpCisgICAgICAgICAgICAgICAgPyBzdGQ6
Om1ha2VfdW5pcXVlPE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM+KCp0aGlzKSA6IG51bGxwdHI7CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcy5nZXQoKTsK
ICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJl
X2Zsb2F0IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMo
IkdMX09FU190ZXh0dXJlX2Zsb2F0IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShuYW1lLCAiT0VTX3RleHR1cmVfZmxvYXQiKSkgewogICAgICAgICBpZiAoIW1fb2VzVGV4dHVy
ZUZsb2F0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVF
bmFibGVkKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpOwotICAgICAgICAgICAgbV9vZXNUZXh0dXJl
RmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdD4oKnRoaXMpOworICAgICAg
ICAgICAgbV9vZXNUZXh0dXJlRmxvYXQgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oKnRoaXMs
ICJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5p
cXVlPE9FU1RleHR1cmVGbG9hdD4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gbV9vZXNUZXh0dXJlRmxvYXQuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKQotICAgICAg
ICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVf
ZmxvYXRfbGluZWFyIikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAi
T0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpIHsKICAgICAgICAgaWYgKCFtX29lc1RleHR1cmVG
bG9hdExpbmVhcikgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5z
dXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIik7Ci0gICAgICAgICAgICBt
X29lc1RleHR1cmVGbG9hdExpbmVhciA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0
TGluZWFyPigqdGhpcyk7CisgICAgICAgICAgICBtX29lc1RleHR1cmVGbG9hdExpbmVhciA9IGVu
YWJsZVN1cHBvcnRlZEV4dGVuc2lvbigqdGhpcywgIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVh
ciIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdExp
bmVhcj4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNU
ZXh0dXJlRmxvYXRMaW5lYXIuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVND
SUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikKLSAgICAgICAgJiYgbV9jb250
ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQi
KSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9o
YWxmX2Zsb2F0IikpIHsKICAgICAgICAgaWYgKCFtX29lc1RleHR1cmVIYWxmRmxvYXQpIHsKLSAg
ICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09F
U190ZXh0dXJlX2hhbGZfZmxvYXQiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9h
dCA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdD4oKnRoaXMpOworICAgICAg
ICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCp0
aGlzLCAiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpCisgICAgICAgICAgICAgICAgPyBzdGQ6
Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAg
ICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUhhbGZGbG9hdC5nZXQoKTsKICAgICB9
Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2hhbGZf
ZmxvYXRfbGluZWFyIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3Vw
cG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikpIHsKKyAgICBpZiAoZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIi
KSkgewogICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhcikgewotICAgICAg
ICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3Rl
eHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZG
bG9hdExpbmVhciA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcj4o
KnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyID0gZW5hYmxl
U3VwcG9ydGVkRXh0ZW5zaW9uKCp0aGlzLCAiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5l
YXIiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZs
b2F0TGluZWFyPigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBt
X29lc1RleHR1cmVIYWxmRmxvYXRMaW5lYXIuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpCi0gICAgICAg
ICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdmVydGV4X2Fy
cmF5X29iamVjdCIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9F
U192ZXJ0ZXhfYXJyYXlfb2JqZWN0IikpIHsKICAgICAgICAgaWYgKCFtX29lc1ZlcnRleEFycmF5
T2JqZWN0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVF
bmFibGVkKCJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIpOwotICAgICAgICAgICAgbV9vZXNW
ZXJ0ZXhBcnJheU9iamVjdCA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVmVydGV4QXJyYXlPYmplY3Q+
KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVmVydGV4QXJyYXlPYmplY3QgPSBlbmFibGVTdXBw
b3J0ZWRFeHRlbnNpb24oKnRoaXMsICJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIpCisgICAg
ICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU1ZlcnRleEFycmF5T2JqZWN0PigqdGhp
cykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1ZlcnRleEFycmF5
T2JqZWN0LmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1l
LCAiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50IikpIHsKKyAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIp
KSB7CiAgICAgICAgIGlmICghbV9vZXNFbGVtZW50SW5kZXhVaW50KSB7Ci0gICAgICAgICAgICBt
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfZWxlbWVudF9p
bmRleF91aW50Iik7Ci0gICAgICAgICAgICBtX29lc0VsZW1lbnRJbmRleFVpbnQgPSBzdGQ6Om1h
a2VfdW5pcXVlPE9FU0VsZW1lbnRJbmRleFVpbnQ+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2Vz
RWxlbWVudEluZGV4VWludCA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigqdGhpcywgIkdMX09F
U19lbGVtZW50X2luZGV4X3VpbnQiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1
ZTxPRVNFbGVtZW50SW5kZXhVaW50PigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAg
ICAgIHJldHVybiBtX29lc0VsZW1lbnRJbmRleFVpbnQuZ2V0KCk7CiAgICAgfQpAQCAtMTkxLDQx
ICsxOTMsNTMgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0
ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgICAgIG1fd2ViZ2xMb3NlQ29udGV4
dCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xMb3NlQ29udGV4dD4oKnRoaXMpOwogICAgICAgICBy
ZXR1cm4gbV93ZWJnbExvc2VDb250ZXh0LmdldCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRj
IikpCi0gICAgICAgICYmIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZCgqdGhp
cykpIHsKLSAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMpCi0gICAgICAg
ICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdM
Q29tcHJlc3NlZFRleHR1cmVBVEM+KCp0aGlzKTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKSkgeworICAg
ICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQykgeworICAgICAgICAgICAgbV93
ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6c3Vw
cG9ydGVkKCp0aGlzKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENv
bXByZXNzZWRUZXh0dXJlQVRDPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAgICAg
IHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMuZ2V0KCk7CiAgICAgfQotICAgIGlm
ICgoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRf
dGV4dHVyZV9wdnJ0YyIpKQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6
OnN1cHBvcnRlZCgqdGhpcykpIHsKLSAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1
cmVQVlJUQykKLSAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDID0gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM+KCp0aGlzKTsKKyAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRf
dGV4dHVyZV9wdnJ0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJl
UFZSVEMpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDID0gV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpCisgICAgICAgICAgICAg
ICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQz4oKnRoaXMp
IDogbnVsbHB0cjsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNzZWRU
ZXh0dXJlUFZSVEMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KG5hbWUsICJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpCi0gICAgICAgICYmIFdlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICgh
bV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQykKLSAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVz
c2VkVGV4dHVyZVMzVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVT
M1RDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdM
X2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJl
c3NlZFRleHR1cmVTM1RDKSB7CisgICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVT
M1RDID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhpcykKKyAgICAg
ICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM+
KCp0aGlzKSA6IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xDb21w
cmVzc2VkVGV4dHVyZVMzVEMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVND
SUlDYXNlKG5hbWUsICJXRUJHTF9kZXB0aF90ZXh0dXJlIikKLSAgICAgICAgJiYgV2ViR0xEZXB0
aFRleHR1cmU6OnN1cHBvcnRlZCgqZ3JhcGhpY3NDb250ZXh0M0QoKSkpIHsKLSAgICAgICAgaWYg
KCFtX3dlYmdsRGVwdGhUZXh0dXJlKQotICAgICAgICAgICAgbV93ZWJnbERlcHRoVGV4dHVyZSA9
IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZXB0aFRleHR1cmU+KCp0aGlzKTsKKyAgICBpZiAoZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVwdGhfdGV4dHVyZSIpKSB7CisgICAg
ICAgIGlmICghbV93ZWJnbERlcHRoVGV4dHVyZSkgeworICAgICAgICAgICAgbV93ZWJnbERlcHRo
VGV4dHVyZSA9IFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoKm1fY29udGV4dCkKKyAgICAg
ICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZXB0aFRleHR1cmU+KCp0aGlzKSA6
IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZXB0aFRleHR1cmUu
Z2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJH
TF9kcmF3X2J1ZmZlcnMiKSAmJiBzdXBwb3J0c0RyYXdCdWZmZXJzKCkpIHsKKyAgICBpZiAoZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZHJhd19idWZmZXJzIikpIHsKICAgICAg
ICAgaWYgKCFtX3dlYmdsRHJhd0J1ZmZlcnMpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0
RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX0VYVF9kcmF3X2J1ZmZlcnMiKTsKLSAgICAg
ICAgICAgIG1fd2ViZ2xEcmF3QnVmZmVycyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEcmF3QnVm
ZmVycz4oKnRoaXMpOworICAgICAgICAgICAgaWYgKCFzdXBwb3J0c0RyYXdCdWZmZXJzKCkpCisg
ICAgICAgICAgICAgICAgbV93ZWJnbERyYXdCdWZmZXJzID0gbnVsbHB0cjsKKyAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3Vy
ZUVuYWJsZWQoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF9kcmF3X2J1ZmZlcnMiIH0pOworICAgICAg
ICAgICAgICAgIG1fd2ViZ2xEcmF3QnVmZmVycyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEcmF3
QnVmZmVycz4oKnRoaXMpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVy
biBtX3dlYmdsRHJhd0J1ZmZlcnMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKG5hbWUsICJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIikgJiYgQU5HTEVJbnN0YW5j
ZWRBcnJheXM6OnN1cHBvcnRlZCgqdGhpcykpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShuYW1lLCAiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpKSB7CiAgICAgICAgIGlmICghbV9h
bmdsZUluc3RhbmNlZEFycmF5cykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpOwotICAgICAg
ICAgICAgbV9hbmdsZUluc3RhbmNlZEFycmF5cyA9IHN0ZDo6bWFrZV91bmlxdWU8QU5HTEVJbnN0
YW5jZWRBcnJheXM+KCp0aGlzKTsKKyAgICAgICAgICAgIGlmICghQU5HTEVJbnN0YW5jZWRBcnJh
eXM6OnN1cHBvcnRlZCgqdGhpcykpCisgICAgICAgICAgICAgICAgbV9hbmdsZUluc3RhbmNlZEFy
cmF5cyA9IG51bGxwdHI7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0ZXJhbCB7ICJHTF9B
TkdMRV9pbnN0YW5jZWRfYXJyYXlzIiB9KTsKKyAgICAgICAgICAgICAgICBtX2FuZ2xlSW5zdGFu
Y2VkQXJyYXlzID0gc3RkOjptYWtlX3VuaXF1ZTxBTkdMRUluc3RhbmNlZEFycmF5cz4oKnRoaXMp
OworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2FuZ2xlSW5zdGFu
Y2VkQXJyYXlzLmdldCgpOwogICAgIH0KQEAgLTIzNCwxMCArMjQ4LDExIEBAIFdlYkdMRXh0ZW5z
aW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5h
bWUpCiAgICAgICAgICAgICBtX3dlYmdsRGVidWdSZW5kZXJlckluZm8gPSBzdGQ6Om1ha2VfdW5p
cXVlPFdlYkdMRGVidWdSZW5kZXJlckluZm8+KCp0aGlzKTsKICAgICAgICAgcmV0dXJuIG1fd2Vi
Z2xEZWJ1Z1JlbmRlcmVySW5mby5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UobmFtZSwgIldFQkdMX2RlYnVnX3NoYWRlcnMiKQotICAgICAgICAmJiBtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJf
c291cmNlIikpIHsKLSAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdTaGFkZXJzKQotICAgICAgICAg
ICAgbV93ZWJnbERlYnVnU2hhZGVycyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1Z1NoYWRl
cnM+KCp0aGlzKTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xf
ZGVidWdfc2hhZGVycyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbERlYnVnU2hhZGVycykgewor
ICAgICAgICAgICAgbV93ZWJnbERlYnVnU2hhZGVycyA9IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9z
b3VyY2UiIH0pCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVidWdT
aGFkZXJzPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3dl
YmdsRGVidWdTaGFkZXJzLmdldCgpOwogICAgIH0KIApAQCAtMjUxLDEwOSArMjY2LDEwOSBAQCBW
ZWN0b3I8U3RyaW5nPiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVuc2lv
bnMoKQogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pCiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgCi0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBv
cnRzKCJHTF9FWFRfYmxlbmRfbWlubWF4IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIkVYVF9i
bGVuZF9taW5tYXgiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoIkdMX0VYVF9zUkdCIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIkVYVF9zUkdCIik7Ci0g
ICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfZnJhZ19k
ZXB0aCIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJFWFRfZnJhZ19kZXB0aCIpOwotICAgIGlm
IChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfZmxv
YXQiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVfZmxvYXQiKTsKLSAgICBp
ZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zs
b2F0X2xpbmVhciIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdGV4dHVyZV9mbG9hdF9s
aW5lYXIiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdM
X09FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3Rl
eHR1cmVfaGFsZl9mbG9hdCIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5z
dXBwb3J0cygiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSkKLSAgICAgICAgcmVz
dWx0LmFwcGVuZCgiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKTsKLSAgICBpZiAobV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU19zdGFuZGFyZF9kZXJpdmF0
aXZlcyIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMi
KTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9z
aGFkZXJfdGV4dHVyZV9sb2QiKSB8fCBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0
cygiR0xfQVJCX3NoYWRlcl90ZXh0dXJlX2xvZCIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJF
WFRfc2hhZGVyX3RleHR1cmVfbG9kIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLnN1cHBvcnRzKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkKLSAgICAg
ICAgcmVzdWx0LmFwcGVuZCgiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7Ci0gICAg
aWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdmVydGV4X2Fy
cmF5X29iamVjdCIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdmVydGV4X2FycmF5X29i
amVjdCIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xf
T0VTX2VsZW1lbnRfaW5kZXhfdWludCIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfZWxl
bWVudF9pbmRleF91aW50Iik7Ci0gICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfbG9zZV9jb250ZXh0
Iik7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0
ZXJhbCB7ICJHTF9FWFRfYmxlbmRfbWlubWF4IiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChB
U0NJSUxpdGVyYWwgeyAiRVhUX2JsZW5kX21pbm1heCIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfc1JHQiIgfSkp
CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIkVYVF9zUkdCIiB9KTsKKyAg
ICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsg
IkdMX0VYVF9mcmFnX2RlcHRoIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVy
YWwgeyAiRVhUX2ZyYWdfZGVwdGgiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfZmxvYXQiIH0pKQor
ICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9mbG9hdCIg
fSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0
ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiIH0pKQorICAgICAgICByZXN1bHQu
YXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiIH0pOworICAg
IGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAi
R0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVND
SUlMaXRlcmFsIHsgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pOworICAgIGlmIChtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1
cmVfaGFsZl9mbG9hdF9saW5lYXIiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0
ZXJhbCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIgfSk7CisgICAgaWYgKG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfc3Rh
bmRhcmRfZGVyaXZhdGl2ZXMiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJh
bCB7ICJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX3NoYWRlcl90ZXh0
dXJlX2xvZCIgfSkgfHwgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlM
aXRlcmFsIHsgIkdMX0FSQl9zaGFkZXJfdGV4dHVyZV9sb2QiIH0pKQorICAgICAgICByZXN1bHQu
YXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIiB9KTsKKyAgICBp
ZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdM
X0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBl
bmQoQVNDSUlMaXRlcmFsIHsgIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIgfSk7Cisg
ICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7
ICJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQo
QVNDSUlMaXRlcmFsIHsgIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IiB9KTsKKyAgICBpZiAobV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU19l
bGVtZW50X2luZGV4X3VpbnQiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJh
bCB7ICJPRVNfZWxlbWVudF9pbmRleF91aW50IiB9KTsKKyAgICByZXN1bHQuYXBwZW5kKEFTQ0lJ
TGl0ZXJhbCB7ICJXRUJHTF9sb3NlX2NvbnRleHQiIH0pOwogICAgIGlmIChXZWJHTENvbXByZXNz
ZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJX
RUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpOworICAgICAgICByZXN1bHQuYXBw
ZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIg
fSk7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0aGlz
KSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVy
ZV9wdnJ0YyIpOworICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJLSVRf
V0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIiB9KTsKICAgICBpZiAoV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhpcykpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQo
IldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIik7Ci0gICAgaWYgKFdlYkdMRGVwdGhUZXh0
dXJlOjpzdXBwb3J0ZWQoKmdyYXBoaWNzQ29udGV4dDNEKCkpKQotICAgICAgICByZXN1bHQuYXBw
ZW5kKCJXRUJHTF9kZXB0aF90ZXh0dXJlIik7CisgICAgaWYgKFdlYkdMRGVwdGhUZXh0dXJlOjpz
dXBwb3J0ZWQoKm1fY29udGV4dCkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFs
IHsgIldFQkdMX2RlcHRoX3RleHR1cmUiIH0pOwogICAgIGlmIChzdXBwb3J0c0RyYXdCdWZmZXJz
KCkpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RyYXdfYnVmZmVycyIpOworICAgICAg
ICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9kcmF3X2J1ZmZlcnMiIH0pOwog
ICAgIGlmIChBTkdMRUluc3RhbmNlZEFycmF5czo6c3VwcG9ydGVkKCp0aGlzKSkKLSAgICAgICAg
cmVzdWx0LmFwcGVuZCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpOwotICAgIGlmIChtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJf
c291cmNlIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlYnVnX3NoYWRlcnMiKTsK
LSAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIik7CisgICAgICAg
IHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiIH0p
OworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVy
YWwgeyAiR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIiB9KSkKKyAgICAgICAgcmVz
dWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfZGVidWdfc2hhZGVycyIgfSk7CisgICAg
cmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIg
fSk7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpCiB7CiAgICAg
aWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVGcmFtZWJ1ZmZlckZ1bmNQ
YXJhbWV0ZXJzKCJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLCB0YXJnZXQsIGF0
dGFjaG1lbnQpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIAogICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgfHwgIW1fZnJh
bWVidWZmZXJCaW5kaW5nLT5vYmplY3QoKSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJnZXRGcmFtZWJ1ZmZlckF0dGFj
aG1lbnRQYXJhbWV0ZXIiLCAibm8gZnJhbWVidWZmZXIgYm91bmQiKTsKLSAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgCi0g
ICAgV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCA9IG1fZnJhbWVidWZmZXJCaW5kaW5nLT5nZXRB
dHRhY2htZW50T2JqZWN0KGF0dGFjaG1lbnQpOworICAgIGF1dG8qIG9iamVjdCA9IG1fZnJhbWVi
dWZmZXJCaW5kaW5nLT5nZXRBdHRhY2htZW50T2JqZWN0KGF0dGFjaG1lbnQpOwogICAgIGlmICgh
b2JqZWN0KSB7CiAgICAgICAgIGlmIChwbmFtZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVC
VUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSkKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSk7CiAgICAgICAgIC8vIE9w
ZW5HTCBFUyAyLjAgc3BlY2lmaWVzIElOVkFMSURfRU5VTSBpbiB0aGlzIGNhc2UsIHdoaWxlIGRl
c2t0b3AgR0wKICAgICAgICAgLy8gc3BlY2lmaWVzIElOVkFMSURfT1BFUkFUSU9OLgogICAgICAg
ICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0
RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUi
KTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAgICAgCi0gICAgQVNTRVJUKG9iamVjdC0+aXNUZXh0dXJlKCkgfHwgb2JqZWN0
LT5pc1JlbmRlcmJ1ZmZlcigpKTsKICAgICBpZiAob2JqZWN0LT5pc1RleHR1cmUoKSkgewogICAg
ICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZS
QU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEU6Ci0gICAgICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFKTsKKyAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUpOwogICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVD
VF9OQU1FOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdM
VGV4dHVyZT4ocmVpbnRlcnByZXRfY2FzdDxXZWJHTFRleHR1cmUqPihvYmplY3QpKSk7CisgICAg
ICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihyZWludGVycHJldF9jYXN0PFdlYkdMVGV4dHVyZSY+
KCpvYmplY3QpKTsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9URVhUVVJFX0xFVkVMOgogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFDRToKICAgICAgICAg
Y2FzZSBFeHRlbnNpb25zM0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkdf
RVhUOiB7CiAgICAgICAgICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICAgICAgICAgIG1fY29u
dGV4dC0+Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyaXYodGFyZ2V0LCBhdHRhY2ht
ZW50LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFs
dWUpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5W
QUxJRF9FTlVNLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQg
cGFyYW1ldGVyIG5hbWUgZm9yIHRleHR1cmUgYXR0YWNobWVudCIpOwotICAgICAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAg
IH0KICAgICB9IGVsc2UgeworICAgICAgICBBU1NFUlQob2JqZWN0LT5pc1JlbmRlcmJ1ZmZlcigp
KTsKICAgICAgICAgc3dpdGNoIChwbmFtZSkgewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFOgotICAgICAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSKTsKKyAgICAg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OlJF
TkRFUkJVRkZFUik7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfT0JKRUNUX05BTUU6Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KFBhc3NSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5k
ZXJidWZmZXIqPihvYmplY3QpKSk7CisgICAgICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihyZWlu
dGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyJj4oKm9iamVjdCkpOwogICAgICAgICBjYXNl
IEV4dGVuc2lvbnMzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNPRElOR19FWFQ6
IHsKICAgICAgICAgICAgIGlmICghbV9leHRzUkdCKSB7CiAgICAgICAgICAgICAgICAgc3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIGZvciByZW5k
ZXJidWZmZXIgYXR0YWNobWVudCIpOwotICAgICAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIFdlYkdMUmVuZGVyYnVmZmVyKiByZW5kZXJCdWZmZXIgPSByZWludGVycHJldF9j
YXN0PFdlYkdMUmVuZGVyYnVmZmVyKj4ob2JqZWN0KTsKICAgICAgICAgICAgIEdDM0RlbnVtIHJl
bmRlckJ1ZmZlckZvcm1hdCA9IHJlbmRlckJ1ZmZlci0+Z2V0SW50ZXJuYWxGb3JtYXQoKTsKICAg
ICAgICAgICAgIEFTU0VSVChyZW5kZXJCdWZmZXJGb3JtYXQgIT0gRXh0ZW5zaW9uczNEOjpTUkdC
X0VYVCAmJiByZW5kZXJCdWZmZXJGb3JtYXQgIT0gRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VY
VCk7CiAgICAgICAgICAgICBpZiAocmVuZGVyQnVmZmVyRm9ybWF0ID09IEV4dGVuc2lvbnMzRDo6
U1JHQjhfQUxQSEE4X0VYVCkKLSAgICAgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEV4
dGVuc2lvbnMzRDo6U1JHQl9FWFQpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhH
cmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEV4dGVuc2lvbnMzRDo6U1JHQl9FWFQpOworICAgICAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKICAg
ICAgICAgfQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVu
dFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIGZvciByZW5kZXJidWZmZXIgYXR0
YWNobWVudCIpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0zNjksMTYgKzM4NCwx
NSBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVGcmFtZWJ1ZmZlckZ1bmNQ
YXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGZ1bmN0aQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkRFUFRIX0FUVEFDSE1FTlQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9B
VFRBQ0hNRU5UOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUxfQVRU
QUNITUVOVDoKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1
bHQ6CiAgICAgICAgIGlmIChtX3dlYmdsRHJhd0J1ZmZlcnMKLSAgICAgICAgICAgICYmIGF0dGFj
aG1lbnQgPiBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAKKyAgICAgICAgICAg
ICYmIGF0dGFjaG1lbnQgPj0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwCiAg
ICAgICAgICAgICAmJiBhdHRhY2htZW50IDwgc3RhdGljX2Nhc3Q8R0MzRGVudW0+KEdyYXBoaWNz
Q29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCArIGdldE1heENvbG9yQXR0YWNobWVudHMoKSkp
Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBz
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlv
bk5hbWUsICJpbnZhbGlkIGF0dGFjaG1lbnQiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KLSAgICByZXR1cm4gdHJ1ZTsKIH0KICAgICAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpyZW5kZXJidWZmZXJTdG9yYWdlKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxm
b3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkKQEAgLTQ1NSw3ICs0Njks
NyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Y2xlYXIoR0MzRGJpdGZpZWxkIG1hc2sp
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY29uc3QgY2hhciogcmVhc29uID0gImZyYW1l
YnVmZmVyIGluY29tcGxldGUiOwotICAgIGlmIChtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAhbV9m
cmFtZWJ1ZmZlckJpbmRpbmctPm9uQWNjZXNzKGdyYXBoaWNzQ29udGV4dDNEKCksICZyZWFzb24p
KSB7CisgICAgaWYgKG1fZnJhbWVidWZmZXJCaW5kaW5nICYmICFtX2ZyYW1lYnVmZmVyQmluZGlu
Zy0+b25BY2Nlc3MobV9jb250ZXh0LmdldCgpLCAmcmVhc29uKSkgewogICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJ
T04sICJjbGVhciIsIHJlYXNvbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC00NjQsMTAg
KzQ3OCwxMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Y2xlYXIoR0MzRGJpdGZpZWxk
IG1hc2spCiAgICAgbWFya0NvbnRleHRDaGFuZ2VkKCk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55
IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewog
ICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCi0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY29uc3QgaW50IGludFplcm8g
PSAwOwogICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpB
Q1RJVkVfVEVYVFVSRToKQEAgLTQ3OSw3ICs0OTMsNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6QUxQSEFfQklUUzoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRl
cihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSX0JJTkRJ
Tkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4o
bV9ib3VuZEFycmF5QnVmZmVyKSk7CisgICAgICAgIHJldHVybiBtX2JvdW5kQXJyYXlCdWZmZXI7
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QkxFTkQ6CiAgICAgICAgIHJldHVybiBnZXRC
b29sZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVO
RF9DT0xPUjoKQEAgLTUwMywxNiArNTE3LDE2IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpDT0xPUl9XUklURU1BU0s6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuQXJy
YXlQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNT
RURfVEVYVFVSRV9GT1JNQVRTOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQ
dHI8VWludDMyQXJyYXk+KFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21wcmVzc2VkVGV4dHVyZUZv
cm1hdHMuZGF0YSgpLCBtX2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5zaXplKCkpKSk7CisgICAg
ICAgIHJldHVybiBVaW50MzJBcnJheTo6Y3JlYXRlKG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRz
LmRhdGEoKSwgbV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMuc2l6ZSgpKTsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpDVUxMX0ZBQ0U6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFy
YW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVUxMX0ZBQ0VfTU9E
RToKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVVJSRU5UX1BST0dSQU06Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFByb2dyYW0+KG1fY3VycmVudFByb2dyYW0pKTsK
KyAgICAgICAgcmV0dXJuIG1fY3VycmVudFByb2dyYW07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6REVQVEhfQklUUzoKICAgICAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAh
bV9hdHRyaWJ1dGVzLmRlcHRoKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhpbnRa
ZXJvKTsKKyAgICAgICAgICAgIHJldHVybiBpbnRaZXJvOwogICAgICAgICByZXR1cm4gZ2V0SW50
UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DTEVB
Ul9WQUxVRToKICAgICAgICAgcmV0dXJuIGdldEZsb2F0UGFyYW1ldGVyKHBuYW1lKTsKQEAgLTUy
Nyw5ICs1NDEsOSBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJh
bWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RElUSEVS
OgogICAgICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVJfQklORElORzoKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPihtX2JvdW5kVmVydGV4
QXJyYXlPYmplY3QtPmdldEVsZW1lbnRBcnJheUJ1ZmZlcigpKSk7CisgICAgICAgIHJldHVybiBt
YWtlUmVmUHRyKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVudEFycmF5QnVmZmVy
KCkpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0JJTkRJTkc6Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiht
X2ZyYW1lYnVmZmVyQmluZGluZykpOworICAgICAgICByZXR1cm4gbV9mcmFtZWJ1ZmZlckJpbmRp
bmc7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJPTlRfRkFDRToKICAgICAgICAgcmV0
dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpHRU5FUkFURV9NSVBNQVBfSElOVDoKQEAgLTU3Nyw5ICs1OTEsOSBAQCBXZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUp
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVEX0JJVFM6CiAgICAgICAgIHJldHVybiBn
ZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRF
UkJVRkZFUl9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8
V2ViR0xSZW5kZXJidWZmZXI+KG1fcmVuZGVyYnVmZmVyQmluZGluZykpOworICAgICAgICByZXR1
cm4gbV9yZW5kZXJidWZmZXJCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJF
TkRFUkVSOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFN0cmluZygiV2ViS2l0IFdlYkdM
IikpOworICAgICAgICByZXR1cm4gV2ViR0xBbnkoU3RyaW5nKCJXZWJLaXQgV2ViR0wiKSk7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0FNUExFX0JVRkZFUlM6CiAgICAgICAgIHJldHVy
biBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNB
TVBMRV9DT1ZFUkFHRV9JTlZFUlQ6CkBAIC01OTMsNyArNjA3LDcgQEAgV2ViR0xHZXRJbmZvIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNDSVNTT1JfVEVTVDoKICAgICAgICAgcmV0dXJuIGdldEJv
b2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJ
TkdfTEFOR1VBR0VfVkVSU0lPTjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygiV2ViR0wg
R0xTTCBFUyAxLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6
U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OKSArICIpIik7CisgICAgICAgIHJldHVybiBXZWJHTEFu
eSgiV2ViR0wgR0xTTCBFUyAxLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0Nv
bnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OKSArICIpIik7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6U1RFTkNJTF9CQUNLX0ZBSUw6CiAgICAgICAgIHJldHVybiBnZXRVbnNp
Z25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RF
TkNJTF9CQUNLX0ZVTkM6CkBAIC02MTAsNyArNjI0LDcgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgICAgICByZXR1
cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlNURU5DSUxfQklUUzoKICAgICAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmluZGluZyAm
JiAhbV9hdHRyaWJ1dGVzLnN0ZW5jaWwpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KGludFplcm8pOworICAgICAgICAgICAgcmV0dXJuIFdlYkdMQW55KGludFplcm8pOwogICAgICAg
ICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpTVEVOQ0lMX0NMRUFSX1ZBTFVFOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVy
KHBuYW1lKTsKQEAgLTYzMyw2MSArNjQ3LDYxIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpTVUJQSVhFTF9CSVRTOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVy
KHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfMkQ6
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+KG1f
dGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmUyREJpbmRpbmcpKTsKKyAg
ICAgICAgcmV0dXJuIG1fdGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmUy
REJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5HX0NV
QkVfTUFQOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xUZXh0
dXJlPihtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlQ3ViZU1hcEJp
bmRpbmcpKTsKKyAgICAgICAgcmV0dXJuIG1fdGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVu
aXRdLnRleHR1cmVDdWJlTWFwQmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpV
TlBBQ0tfQUxJR05NRU5UOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfRkxJUF9ZX1dFQkdMOgotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdW5wYWNrRmxpcFkpOworICAgICAgICByZXR1cm4gbV91
bnBhY2tGbGlwWTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfUFJFTVVMVElQ
TFlfQUxQSEFfV0VCR0w6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV91bnBhY2tQcmVt
dWx0aXBseUFscGhhKTsKKyAgICAgICAgcmV0dXJuIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYTsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9O
X1dFQkdMOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdW5wYWNrQ29sb3JzcGFjZUNv
bnZlcnNpb24pOworICAgICAgICByZXR1cm4gbV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lvbjsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1I6Ci0gICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oU3RyaW5nKCJXZWJLaXQiKSk7CisgICAgICAgIHJldHVybiBTdHJpbmcgeyBBU0NJ
SUxpdGVyYWwgeyAiV2ViS2l0IiB9IH07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVS
U0lPTjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygiV2ViR0wgMS4wICgiICsgbV9jb250
ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlNJT04pICsgIikiKTsKKyAgICAg
ICAgcmV0dXJuICJXZWJHTCAxLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0Nv
bnRleHQzRDo6VkVSU0lPTikgKyAiKSI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VklF
V1BPUlQ6CiAgICAgICAgIHJldHVybiBnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKHBuYW1lKTsK
ICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RlJBR01FTlRfU0hBREVSX0RFUklWQVRJVkVfSElOVF9P
RVM6IC8vIE9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcwogICAgICAgICBpZiAobV9vZXNTdGFuZGFy
ZERlcml2YXRpdmVzKQogICAgICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVy
KEV4dGVuc2lvbnMzRDo6RlJBR01FTlRfU0hBREVSX0RFUklWQVRJVkVfSElOVF9PRVMpOwogICAg
ICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAi
Z2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIE9FU19zdGFuZGFyZF9kZXJp
dmF0aXZlcyBub3QgZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6
VU5NQVNLRURfUkVOREVSRVJfV0VCR0w6CiAgICAgICAgIGlmIChtX3dlYmdsRGVidWdSZW5kZXJl
ckluZm8pCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0U3Ry
aW5nKEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJFUikpOworICAgICAgICAgICAgcmV0dXJuIG1f
Y29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJFUik7CiAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQ
YXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgV0VCR0xfZGVidWdfcmVuZGVyZXJf
aW5mbyBub3QgZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5N
QVNLRURfVkVORE9SX1dFQkdMOgogICAgICAgICBpZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJbmZv
KQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2NvbnRleHQtPmdldFN0cmluZyhH
cmFwaGljc0NvbnRleHQzRDo6VkVORE9SKSk7CisgICAgICAgICAgICByZXR1cm4gbV9jb250ZXh0
LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFTkRPUik7CiAgICAgICAgIHN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIi
LCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBub3Qg
ZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpWRVJURVhfQVJSQVlfQklORElOR19P
RVM6IC8vIE9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0CiAgICAgICAgIGlmIChtX29lc1ZlcnRleEFy
cmF5T2JqZWN0KSB7Ci0gICAgICAgICAgICBpZiAoIW1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+
aXNEZWZhdWx0T2JqZWN0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQ
YXNzUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+KHN0YXRpY19jYXN0PFdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMqPihtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QuZ2V0KCkpKSk7Ci0g
ICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICBpZiAobV9ib3Vu
ZFZlcnRleEFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3QoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHN0YXRpY19jYXN0
PFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMmPigqbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0KSk7
CiAgICAgICAgIH0KICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBP
RVNfdmVydGV4X2FycmF5X29iamVjdCBub3QgZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2UgRXh0ZW5zaW9u
czNEOjpNQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQ6IC8vIEVYVF90ZXh0dXJlX2ZpbHRl
cl9hbmlzb3Ryb3BpYwogICAgICAgICBpZiAobV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMp
CiAgICAgICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoRXh0ZW5zaW9uczNE
OjpNQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQpOwogICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImlu
dmFsaWQgcGFyYW1ldGVyIG5hbWUsIEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyBub3Qg
ZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpNQVhfQ09MT1JfQVRUQUNITUVOVFNf
RVhUOiAvLyBFWFRfZHJhd19idWZmZXJzIEJFR0lOCiAgICAgICAgIGlmIChtX3dlYmdsRHJhd0J1
ZmZlcnMpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKGdldE1heENvbG9yQXR0YWNo
bWVudHMoKSk7CisgICAgICAgICAgICByZXR1cm4gV2ViR0xBbnkoZ2V0TWF4Q29sb3JBdHRhY2ht
ZW50cygpKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklO
VkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBXRUJH
TF9kcmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFY
X0RSQVdfQlVGRkVSU19FWFQ6CiAgICAgICAgIGlmIChtX3dlYmdsRHJhd0J1ZmZlcnMpCi0gICAg
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKGdldE1heERyYXdCdWZmZXJzKCkpOworICAgICAg
ICAgICAgcmV0dXJuIFdlYkdMQW55KGdldE1heERyYXdCdWZmZXJzKCkpOwogICAgICAgICBzeW50
aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1l
dGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RyYXdfYnVmZmVycyBub3QgZW5h
YmxlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGlmIChtX3dlYmdsRHJhd0J1ZmZlcnMKICAg
ICAgICAgICAgICYmIHBuYW1lID49IEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIwX0VYVApAQCAt
Njk3LDEwICs3MTEsMTAgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0
UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgICAgICAgICAgICAgIHZhbHVlID0gbV9mcmFt
ZWJ1ZmZlckJpbmRpbmctPmdldERyYXdCdWZmZXIocG5hbWUpOwogICAgICAgICAgICAgZWxzZSAv
LyBlbXVsYXRlZCBiYWNrYnVmZmVyCiAgICAgICAgICAgICAgICAgdmFsdWUgPSBtX2JhY2tEcmF3
QnVmZmVyOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAg
ICAgICByZXR1cm4gV2ViR0xBbnkodmFsdWUpOwogICAgICAgICB9CiAgICAgICAgIHN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIi
LCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAppbmRleCAxODc0ZmU1
YTVjMzgzMTE5OGY0M2I5NGMyMDk2YjllZWJlNDNlNDcwLi5jZTNhZmJlMTg3NzUyYmY4MWY0YWI3
NjJkMTk5NGU0N2YxMGEyZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaApAQCAtMzIsMTYgKzMyLDE2IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBmaW5hbCA6IHB1YmxpYyBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlIHsKIHB1YmxpYzoKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQoSFRNTENhbnZhc0VsZW1lbnQmLCBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMpOwotICAg
IFdlYkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYsIFBhc3NSZWZQdHI8R3Jh
cGhpY3NDb250ZXh0M0Q+LCBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMpOworICAgIFdlYkdM
UmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYsIFJlZjxHcmFwaGljc0NvbnRleHQz
RD4mJiwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzKTsKIAogcHJpdmF0ZToKICAgICBib29s
IGlzV2ViR0wxKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgV2ViR0xFeHRl
bnNpb24qIGdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmKSBmaW5hbDsKLSAgICBXZWJHTEdldElu
Zm8gZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKKyAgICBXZWJHTEFueSBnZXRQ
YXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpIGZpbmFsOwogICAgIFZlY3RvcjxTdHJpbmc+IGdldFN1
cHBvcnRlZEV4dGVuc2lvbnMoKSBmaW5hbDsKIAotICAgIFdlYkdMR2V0SW5mbyBnZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2ht
ZW50LCBHQzNEZW51bSBwbmFtZSkgZmluYWw7CisgICAgV2ViR0xBbnkgZ2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwg
R0MzRGVudW0gcG5hbWUpIGZpbmFsOwogICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZShHQzNE
ZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdD
M0RzaXplaSBoZWlnaHQpIGZpbmFsOwogICAgIGJvb2wgdmFsaWRhdGVGcmFtZWJ1ZmZlckZ1bmNQ
YXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0MzRGVudW0gdGFyZ2V0LCBHQzNE
ZW51bSBhdHRhY2htZW50KSBmaW5hbDsKICAgICB2b2lkIGhpbnQoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEZW51bSBtb2RlKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggMjc3MGRjMWI2ZTFmMzgz
ZWZjYzc3MjUwMzJhZTUwNTJlNzliM2NmNi4uYjVkMGVlNzdiZGRkYTA5NDhiYzg0YTFmMDNjMmE3
NzlmNTY0MzU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTI0LDkgKzI0LDkgQEAKICAqLwogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5o
IgogCiAjaWYgRU5BQkxFKFdFQkdMKQotI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuaCIKIAogI2luY2x1ZGUgIkFOR0xFSW5zdGFuY2VkQXJyYXlzLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkSW1hZ2UuaCIKQEAgLTQyMCwxNyArNDIwLDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoSFRN
CiAgICAgICAgIHJldHVybiByZW5kZXJpbmdDb250ZXh0OwogICAgIH0KIAotICAgIEhvc3RXaW5k
b3cqIGhvc3RXaW5kb3cgPSBkb2N1bWVudC52aWV3KCktPnJvb3QoKS0+aG9zdFdpbmRvdygpOwot
ICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dChHcmFwaGljc0NvbnRleHQzRDo6
Y3JlYXRlKGF0dHJpYnV0ZXMsIGhvc3RXaW5kb3cpKTsKLQorICAgIGF1dG8gY29udGV4dCA9IEdy
YXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoYXR0cmlidXRlcywgZG9jdW1lbnQudmlldygpLT5yb290
KCktPmhvc3RXaW5kb3coKSk7CiAgICAgaWYgKCFjb250ZXh0IHx8ICFjb250ZXh0LT5tYWtlQ29u
dGV4dEN1cnJlbnQoKSkgewogICAgICAgICBjYW52YXMuZGlzcGF0Y2hFdmVudChXZWJHTENvbnRl
eHRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRjcmVhdGlvbmVycm9yRXZl
bnQsIGZhbHNlLCB0cnVlLCAiQ291bGQgbm90IGNyZWF0ZSBhIFdlYkdMIGNvbnRleHQuIikpOwog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBFeHRlbnNpb25zM0QmIGV4dGVu
c2lvbnMgPSBjb250ZXh0LT5nZXRFeHRlbnNpb25zKCk7Ci0gICAgaWYgKGV4dGVuc2lvbnMuc3Vw
cG9ydHMoIkdMX0VYVF9kZWJ1Z19tYXJrZXIiKSkKLSAgICAgICAgZXh0ZW5zaW9ucy5wdXNoR3Jv
dXBNYXJrZXJFWFQoIldlYkdMUmVuZGVyaW5nQ29udGV4dCIpOworICAgIGF1dG8mIGV4dGVuc2lv
bnMgPSBjb250ZXh0LT5nZXRFeHRlbnNpb25zKCk7CisgICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9y
dHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF9kZWJ1Z19tYXJrZXIiIH0pKQorICAgICAgICBleHRl
bnNpb25zLnB1c2hHcm91cE1hcmtlckVYVChBU0NJSUxpdGVyYWwgeyAiV2ViR0xSZW5kZXJpbmdD
b250ZXh0IiB9KTsKIAogI2lmIEVOQUJMRShXRUJHTDIpICYmIFBMQVRGT1JNKE1BQykKICAgICAv
LyBnbFRleFN0b3JhZ2UoKSB3YXMgb25seSBhZGRlZCB0byBDb3JlIGluIE9wZW5HTCA0LjIuCkBA
IC00MzksMTMgKzQzNywxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKEhUTQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICNlbmRpZgogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U+IHJlbmRlcmluZ0NvbnRleHQgPSBudWxscHRyOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiByZW5kZXJpbmdDb250ZXh0OwogI2lmIEVO
QUJMRShXRUJHTDIpCiAgICAgaWYgKHR5cGUgPT0gIndlYmdsMiIpCi0gICAgICAgIHJlbmRlcmlu
Z0NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KGNhbnZh
cywgV1RGTW92ZShjb250ZXh0KSwgYXR0cmlidXRlcyk7CisgICAgICAgIHJlbmRlcmluZ0NvbnRl
eHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KGNhbnZhcywgY29u
dGV4dC5yZWxlYXNlTm9uTnVsbCgpLCBhdHRyaWJ1dGVzKTsKICAgICBlbHNlCiAjZW5kaWYKLSAg
ICAgICAgcmVuZGVyaW5nQ29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xSZW5kZXJpbmdD
b250ZXh0PihjYW52YXMsIFdURk1vdmUoY29udGV4dCksIGF0dHJpYnV0ZXMpOworICAgICAgICBy
ZW5kZXJpbmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+
KGNhbnZhcywgY29udGV4dC5yZWxlYXNlTm9uTnVsbCgpLCBhdHRyaWJ1dGVzKTsKICAgICByZW5k
ZXJpbmdDb250ZXh0LT5zdXNwZW5kSWZOZWVkZWQoKTsKIAogICAgIHJldHVybiByZW5kZXJpbmdD
b250ZXh0OwpAQCAtNDU0LDQ0ICs0NTIsMjkgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZShIVE0KIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENh
bnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgV2ViR0xDb250ZXh0QXR0cmlidXRlcyBhdHRyaWJ1
dGVzKQogICAgIDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dChwYXNzZWRDYW52YXMpCiAgICAgLCBB
Y3RpdmVET01PYmplY3QoJnBhc3NlZENhbnZhcy5kb2N1bWVudCgpKQotICAgICwgbV9jb250ZXh0
KG51bGxwdHIpCiAgICAgLCBtX2Rpc3BhdGNoQ29udGV4dExvc3RFdmVudFRpbWVyKCp0aGlzLCAm
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50KQotICAg
ICwgbV9yZXN0b3JlQWxsb3dlZChmYWxzZSkKICAgICAsIG1fcmVzdG9yZVRpbWVyKCp0aGlzLCAm
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWF5YmVSZXN0b3JlQ29udGV4dCkKLSAgICAsIG1f
Z2VuZXJhdGVkSW1hZ2VDYWNoZSgwKQotICAgICwgbV9jb250ZXh0TG9zdChmYWxzZSkKLSAgICAs
IG1fY29udGV4dExvc3RNb2RlKFN5bnRoZXRpY0xvc3RDb250ZXh0KQogICAgICwgbV9hdHRyaWJ1
dGVzKGF0dHJpYnV0ZXMpCi0gICAgLCBtX3N5bnRoZXNpemVkRXJyb3JzVG9Db25zb2xlKHRydWUp
CiAgICAgLCBtX251bUdMRXJyb3JzVG9Db25zb2xlQWxsb3dlZChtYXhHTEVycm9yc0FsbG93ZWRU
b0NvbnNvbGUpCiAgICAgLCBtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24odHJ1ZSkKLSAgICAs
IG1faGFzUmVxdWVzdGVkUG9saWN5UmVzb2x1dGlvbihmYWxzZSkKIHsKIH0KIAotV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxl
bWVudCYgcGFzc2VkQ2FudmFzLCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29udGV4dCwg
V2ViR0xDb250ZXh0QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2Vk
Q2FudmFzLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29udGV4dCwgV2ViR0xDb250ZXh0QXR0
cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dChwYXNzZWRD
YW52YXMpCiAgICAgLCBBY3RpdmVET01PYmplY3QoJnBhc3NlZENhbnZhcy5kb2N1bWVudCgpKQog
ICAgICwgbV9jb250ZXh0KFdURk1vdmUoY29udGV4dCkpCiAgICAgLCBtX2Rpc3BhdGNoQ29udGV4
dExvc3RFdmVudFRpbWVyKCp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzcGF0
Y2hDb250ZXh0TG9zdEV2ZW50KQotICAgICwgbV9yZXN0b3JlQWxsb3dlZChmYWxzZSkKICAgICAs
IG1fcmVzdG9yZVRpbWVyKCp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWF5YmVS
ZXN0b3JlQ29udGV4dCkKICAgICAsIG1fZ2VuZXJhdGVkSW1hZ2VDYWNoZSg0KQotICAgICwgbV9j
b250ZXh0TG9zdChmYWxzZSkKLSAgICAsIG1fY29udGV4dExvc3RNb2RlKFN5bnRoZXRpY0xvc3RD
b250ZXh0KQogICAgICwgbV9hdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpCi0gICAgLCBtX3N5bnRoZXNp
emVkRXJyb3JzVG9Db25zb2xlKHRydWUpCiAgICAgLCBtX251bUdMRXJyb3JzVG9Db25zb2xlQWxs
b3dlZChtYXhHTEVycm9yc0FsbG93ZWRUb0NvbnNvbGUpCi0gICAgLCBtX2lzUGVuZGluZ1BvbGlj
eVJlc29sdXRpb24oZmFsc2UpCi0gICAgLCBtX2hhc1JlcXVlc3RlZFBvbGljeVJlc29sdXRpb24o
ZmFsc2UpCiB7Ci0gICAgQVNTRVJUKG1fY29udGV4dCk7CiAgICAgbV9jb250ZXh0R3JvdXAgPSBX
ZWJHTENvbnRleHRHcm91cDo6Y3JlYXRlKCk7Ci0gICAgbV9jb250ZXh0R3JvdXAtPmFkZENvbnRl
eHQodGhpcyk7CisgICAgbV9jb250ZXh0R3JvdXAtPmFkZENvbnRleHQoKnRoaXMpOwogICAgIAog
ICAgIG1fY29udGV4dC0+c2V0V2ViR0xDb250ZXh0KHRoaXMpOwogCi0gICAgbV9tYXhWaWV3cG9y
dERpbXNbMF0gPSBtX21heFZpZXdwb3J0RGltc1sxXSA9IDA7CiAgICAgbV9jb250ZXh0LT5nZXRJ
bnRlZ2VydihHcmFwaGljc0NvbnRleHQzRDo6TUFYX1ZJRVdQT1JUX0RJTVMsIG1fbWF4Vmlld3Bv
cnREaW1zKTsKIAogICAgIHNldHVwRmxhZ3MoKTsKQEAgLTYxOSw3ICs2MDIsNyBAQCBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp+V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSgpCiAgICAgaWYg
KCFtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pIHsKICAgICAgICAgZGV0YWNoQW5kUmVtb3Zl
QWxsT2JqZWN0cygpOwogICAgICAgICBkZXN0cm95R3JhcGhpY3NDb250ZXh0M0QoKTsKLSAgICAg
ICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZUNvbnRleHQodGhpcyk7CisgICAgICAgIG1fY29udGV4
dEdyb3VwLT5yZW1vdmVDb250ZXh0KCp0aGlzKTsKICAgICB9CiB9CiAKQEAgLTkxMyw3ICs4OTYs
NyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJpbmRCdWZmZXIoR0MzRGVudW0g
dGFyZ2V0LCBXZWJHTEJ1ZmZlciogYnVmZmVyKQogICAgIGlmICghY2hlY2tPYmplY3RUb0JlQm91
bmQoImJpbmRCdWZmZXIiLCBidWZmZXIsIGRlbGV0ZWQpKQogICAgICAgICByZXR1cm47CiAgICAg
aWYgKGRlbGV0ZWQpCi0gICAgICAgIGJ1ZmZlciA9IDA7CisgICAgICAgIGJ1ZmZlciA9IG51bGxw
dHI7CiAgICAgaWYgKGJ1ZmZlciAmJiBidWZmZXItPmdldFRhcmdldCgpICYmIGJ1ZmZlci0+Z2V0
VGFyZ2V0KCkgIT0gdGFyZ2V0KSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNz
Q29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgImJpbmRCdWZmZXIiLCAiYnVmZmVycyBjYW4g
bm90IGJlIHVzZWQgd2l0aCBtdWx0aXBsZSB0YXJnZXRzIik7CiAgICAgICAgIHJldHVybjsKQEAg
LTEzOTUsNyArMTM3OCw3IEBAIFJlZlB0cjxXZWJHTEJ1ZmZlcj4gV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Y3JlYXRlQnVmZmVyKCkKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIGJ1ZmZlciA9IFdlYkdMQnVmZmVy
OjpjcmVhdGUoKnRoaXMpOwotICAgIGFkZFNoYXJlZE9iamVjdChidWZmZXIucHRyKCkpOworICAg
IGFkZFNoYXJlZE9iamVjdChidWZmZXIuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKGJ1ZmZl
cik7CiB9CiAKQEAgLTE0MDQsNyArMTM4Nyw3IEBAIFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVGcmFtZWJ1ZmZlcigpCiAgICAgaWYgKGlz
Q29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0
byBidWZmZXIgPSBXZWJHTEZyYW1lYnVmZmVyOjpjcmVhdGUoKnRoaXMpOwotICAgIGFkZENvbnRl
eHRPYmplY3QoYnVmZmVyLnB0cigpKTsKKyAgICBhZGRDb250ZXh0T2JqZWN0KGJ1ZmZlci5nZXQo
KSk7CiAgICAgcmV0dXJuIFdURk1vdmUoYnVmZmVyKTsKIH0KIApAQCAtMTQxMyw3ICsxMzk2LDcg
QEAgUmVmUHRyPFdlYkdMVGV4dHVyZT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRl
VGV4dHVyZSgpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgYXV0byB0ZXh0dXJlID0gV2ViR0xUZXh0dXJlOjpjcmVhdGUoKnRo
aXMpOwotICAgIGFkZFNoYXJlZE9iamVjdCh0ZXh0dXJlLnB0cigpKTsKKyAgICBhZGRTaGFyZWRP
YmplY3QodGV4dHVyZS5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUodGV4dHVyZSk7CiB9CiAK
QEAgLTE0MjIsNyArMTQwNSw3IEBAIFJlZlB0cjxXZWJHTFByb2dyYW0+IFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmNyZWF0ZVByb2dyYW0oKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5k
aW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gcHJvZ3JhbSA9IFdlYkdM
UHJvZ3JhbTo6Y3JlYXRlKCp0aGlzKTsKLSAgICBhZGRTaGFyZWRPYmplY3QocHJvZ3JhbS5wdHIo
KSk7CisgICAgYWRkU2hhcmVkT2JqZWN0KHByb2dyYW0uZ2V0KCkpOwogICAgIHJldHVybiBXVEZN
b3ZlKHByb2dyYW0pOwogfQogCkBAIC0xNDMxLDcgKzE0MTQsNyBAQCBSZWZQdHI8V2ViR0xSZW5k
ZXJidWZmZXI+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZVJlbmRlcmJ1ZmZlcigp
CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgYXV0byBidWZmZXIgPSBXZWJHTFJlbmRlcmJ1ZmZlcjo6Y3JlYXRlKCp0aGlzKTsK
LSAgICBhZGRTaGFyZWRPYmplY3QoYnVmZmVyLnB0cigpKTsKKyAgICBhZGRTaGFyZWRPYmplY3Qo
YnVmZmVyLmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92ZShidWZmZXIpOwogfQogCkBAIC0xNDQ1
LDcgKzE0MjgsNyBAQCBSZWZQdHI8V2ViR0xTaGFkZXI+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmNyZWF0ZVNoYWRlcihHQzNEZW51bSB0eXBlKQogICAgIH0KIAogICAgIGF1dG8gc2hhZGVy
ID0gV2ViR0xTaGFkZXI6OmNyZWF0ZSgqdGhpcywgdHlwZSk7Ci0gICAgYWRkU2hhcmVkT2JqZWN0
KHNoYWRlci5wdHIoKSk7CisgICAgYWRkU2hhcmVkT2JqZWN0KHNoYWRlci5nZXQoKSk7CiAgICAg
cmV0dXJuIFdURk1vdmUoc2hhZGVyKTsKIH0KIApAQCAtMTQ3OCw3ICsxNDYxLDcgQEAgdm9pZCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVCdWZmZXIoV2ViR0xCdWZmZXIqIGJ1ZmZl
cikKICAgICBpZiAobV9ib3VuZEFycmF5QnVmZmVyID09IGJ1ZmZlcikKICAgICAgICAgbV9ib3Vu
ZEFycmF5QnVmZmVyID0gbnVsbHB0cjsKIAotICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+
dW5iaW5kQnVmZmVyKGJ1ZmZlcik7CisgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT51bmJp
bmRCdWZmZXIoKmJ1ZmZlcik7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
ZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xGcmFtZWJ1ZmZlciogZnJhbWVidWZmZXIpCkBAIC0yMTg0
LDEwICsyMTY3LDEwIEBAIEdDM0RpbnQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QXR0
cmliTG9jYXRpb24oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zCiAgICAgcmV0dXJuIG1fY29u
dGV4dC0+Z2V0QXR0cmliTG9jYXRpb24ob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBuYW1lKTsKIH0K
IAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFt
ZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKLSAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IGJvb2wgdmFsaWQgPSBmYWxzZTsKICAgICBpZiAodGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dDNE
OjpBUlJBWV9CVUZGRVIgfHwgdGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpFTEVNRU5UX0FS
UkFZX0JVRkZFUikKQEAgLTIyMDcsMTkgKzIxOTAsMTkgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdD
M0QKICNlbmRpZgogICAgIGlmICghdmFsaWQpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEJ1ZmZlclBhcmFtZXRlciIsICJp
bnZhbGlkIHRhcmdldCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIGlmIChwbmFtZSAhPSBHcmFwaGljc0NvbnRl
eHQzRDo6QlVGRkVSX1NJWkUgJiYgcG5hbWUgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OkJVRkZFUl9V
U0FHRSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5W
QUxJRF9FTlVNLCAiZ2V0QnVmZmVyUGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUi
KTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBtX2NvbnRleHQtPmdldEJ1
ZmZlclBhcmFtZXRlcml2KHRhcmdldCwgcG5hbWUsICZ2YWx1ZSk7CiAgICAgaWYgKHBuYW1lID09
IEdyYXBoaWNzQ29udGV4dDNEOjpCVUZGRVJfU0laRSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyh2YWx1ZSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25l
ZCBpbnQ+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KHZhbHVlKTsKIH0KIAogc3RkOjpvcHRpb25hbDxXZWJHTENvbnRleHRB
dHRyaWJ1dGVzPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRDb250ZXh0QXR0cmlidXRl
cygpCkBAIC0yMjQ2LDMwICsyMjI5LDMwIEBAIEdDM0RlbnVtIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldEVycm9yKCkKICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRFcnJvcigpOwogfQog
Ci1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJvZ3JhbVBhcmFt
ZXRlcihXZWJHTFByb2dyYW0qIHByb2dyYW0sIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJvZ3JhbVBhcmFtZXRlcihXZWJHTFByb2dyYW0q
IHByb2dyYW0sIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5k
aW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImdldFByb2dyYW1QYXJhbWV0ZXIiLCBwcm9n
cmFtKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIEdDM0RpbnQgdmFsdWUgPSAwOwogICAgIHN3aXRjaCAocG5hbWUpIHsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERUxFVEVfU1RBVFVTOgotICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKHByb2dyYW0tPmlzRGVsZXRlZCgpKTsKKyAgICAgICAgcmV0dXJuIHByb2dy
YW0tPmlzRGVsZXRlZCgpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZBTElEQVRFX1NU
QVRVUzoKICAgICAgICAgbV9jb250ZXh0LT5nZXRQcm9ncmFtaXYob2JqZWN0T3JaZXJvKHByb2dy
YW0pLCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNf
Y2FzdDxib29sPih2YWx1ZSkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4odmFs
dWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTktfU1RBVFVTOgotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKHByb2dyYW0tPmdldExpbmtTdGF0dXMoKSk7CisgICAgICAgIHJl
dHVybiBwcm9ncmFtLT5nZXRMaW5rU3RhdHVzKCk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6QVRUQUNIRURfU0hBREVSUzoKICAgICAgICAgbV9jb250ZXh0LT5nZXRQcm9ncmFtaXYob2Jq
ZWN0T3JaZXJvKHByb2dyYW0pLCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyh2YWx1ZSk7CisgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpBQ1RJVkVfQVRUUklCVVRFUzoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpBQ1RJVkVfVU5JRk9STVM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0Tm9uQnVpbHRJbkFjdGl2
ZVN5bWJvbENvdW50KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICByZXR1cm4gdmFsdWU7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfRU5VTSwgImdldFByb2dyYW1QYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIg
bmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KIH0KIApAQCAtMjI4MCwxNyArMjI2MywxNyBAQCBTdHJpbmcgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJvZ3JhbUluZm9Mb2coV2ViR0xQcm9ncmFtKiBwcm9n
cmFtKQogICAgIHJldHVybiBlbnN1cmVOb3ROdWxsKG1fY29udGV4dC0+Z2V0UHJvZ3JhbUluZm9M
b2cob2JqZWN0T3JaZXJvKHByb2dyYW0pKSk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omdl
dFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKQog
ewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCi0gICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKHRhcmdldCAhPSBH
cmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSKSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVy
cm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIiLCAiaW52YWxpZCB0YXJnZXQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgaWYgKCFtX3JlbmRlcmJ1ZmZl
ckJpbmRpbmcgfHwgIW1fcmVuZGVyYnVmZmVyQmluZGluZy0+b2JqZWN0KCkpIHsKICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAi
Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIiwgIm5vIHJlbmRlcmJ1ZmZlciBib3VuZCIpOwotICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KIAogICAgIGlmIChtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdldEludGVybmFsRm9ybWF0KCkg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUwKQEAgLTIzMTcsMTIgKzIzMDAsMTIg
QEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRlcmJ1ZmZl
clBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQKICAgICAgICAgICAgIHZhbHVlID0gODsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZG
RVJfSU5URVJOQUxfRk9STUFUOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3Jl
bmRlcmJ1ZmZlckJpbmRpbmctPmdldEludGVybmFsRm9ybWF0KCkpOworICAgICAgICAgICAgcmV0
dXJuIG1fcmVuZGVyYnVmZmVyQmluZGluZy0+Z2V0SW50ZXJuYWxGb3JtYXQoKTsKICAgICAgICAg
ZGVmYXVsdDoKICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNE
OjpJTlZBTElEX0VOVU0sICJnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJh
bWV0ZXIgbmFtZSIpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyh2YWx1ZSk7CisgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICB9CiAKICAgICBHQzNEaW50
IHZhbHVlID0gMDsKQEAgLTIzMzYsMzIgKzIzMTksMzIgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJn
ZXQKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVJfREVQVEhfU0laRToK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVJfU1RFTkNJTF9TSVpFOgog
ICAgICAgICBtX2NvbnRleHQtPmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcml2KHRhcmdldCwgcG5h
bWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAg
ICByZXR1cm4gdmFsdWU7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVS
X0lOVEVSTkFMX0ZPUk1BVDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3JlbmRlcmJ1
ZmZlckJpbmRpbmctPmdldEludGVybmFsRm9ybWF0KCkpOworICAgICAgICByZXR1cm4gbV9yZW5k
ZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgpOwogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJn
ZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNoYWRl
clBhcmFtZXRlcihXZWJHTFNoYWRlciogc2hhZGVyLCBHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNoYWRlclBhcmFtZXRlcihXZWJHTFNoYWRl
ciogc2hhZGVyLCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVu
ZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJnZXRTaGFkZXJQYXJhbWV0ZXIiLCBzaGFk
ZXIpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIEdDM0RpbnQgdmFsdWUgPSAwOwogICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERUxFVEVfU1RBVFVTOgotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKHNoYWRlci0+aXNEZWxldGVkKCkpOworICAgICAgICByZXR1cm4gc2hhZGVyLT5p
c0RlbGV0ZWQoKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT01QSUxFX1NUQVRVUzoK
ICAgICAgICAgbV9jb250ZXh0LT5nZXRTaGFkZXJpdihvYmplY3RPclplcm8oc2hhZGVyKSwgcG5h
bWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8Ym9v
bD4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJvb2w+KHZhbHVlKTsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTSEFERVJfVFlQRToKICAgICAgICAgbV9jb250ZXh0
LT5nZXRTaGFkZXJpdihvYmplY3RPclplcm8oc2hhZGVyKSwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2YWx1ZSkp
OworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVlKTsKICAgICBkZWZh
dWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJ
RF9FTlVNLCAiZ2V0U2hhZGVyUGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICB9CiB9CiAKQEAgLTI0MTAsMTMgKzIzOTMsMTMgQEAgU3RyaW5nIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldFNoYWRlclNvdXJjZShXZWJHTFNoYWRlciogc2hhZGVyKQogICAgIHJl
dHVybiBlbnN1cmVOb3ROdWxsKHNoYWRlci0+Z2V0U291cmNlKCkpOwogfQogCi1XZWJHTEdldElu
Zm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFyYW1ldGVyKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpnZXRUZXhQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSkKIHsKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIFdlYkdMVGV4dHVyZSogdGV4ID0g
dmFsaWRhdGVUZXh0dXJlQmluZGluZygiZ2V0VGV4UGFyYW1ldGVyIiwgdGFyZ2V0LCBmYWxzZSk7
CiAgICAgaWYgKCF0ZXgpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAgICAgc3dpdGNoIChwbmFt
ZSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUFHX0ZJTFRFUjoKQEAg
LTI0MjQsMjcgKzI0MDcsMjcgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldFRleFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnUKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfUzoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpURVhUVVJFX1dSQVBfVDoKICAgICAgICAgbV9jb250ZXh0LT5nZXRUZXhQYXJhbWV0ZXJp
dih0YXJnZXQsIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0
YXRpY19jYXN0PHVuc2lnbmVkIGludD4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PHVuc2lnbmVkPih2YWx1ZSk7CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlRFWFRVUkVfTUFY
X0FOSVNPVFJPUFlfRVhUOiAvLyBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMKICAgICAg
ICAgaWYgKG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKSB7CiAgICAgICAgICAgICBtX2Nv
bnRleHQtPmdldFRleFBhcmFtZXRlcml2KHRhcmdldCwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odmFsdWUp
KTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmFsdWUpOwogICAg
ICAgICB9CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX0VOVU0sICJnZXRUZXhQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgRVhU
X3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5V
TSwgImdldFRleFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQog
fQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybShX
ZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiB1bmlmb3Jt
TG9jYXRpb24pCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3Jt
KFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qIHVuaWZv
cm1Mb2NhdGlvbikKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxp
ZGF0ZVdlYkdMT2JqZWN0KCJnZXRVbmlmb3JtIiwgcHJvZ3JhbSkpCi0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCF1bmlmb3Jt
TG9jYXRpb24gfHwgdW5pZm9ybUxvY2F0aW9uLT5wcm9ncmFtKCkgIT0gcHJvZ3JhbSkgewogICAg
ICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJ
T04sICJnZXRVbmlmb3JtIiwgIm5vIHVuaWZvcm1sb2NhdGlvbiBvciBub3QgdmFsaWQgZm9yIHRo
aXMgcHJvZ3JhbSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIH0KICAgICBHQzNEaW50IGxvY2F0aW9uID0gdW5pZm9ybUxvY2F0
aW9uLT5sb2NhdGlvbigpOwogCkBAIC0yNTE5LDcgKzI1MDIsNyBAQCBXZWJHTEdldEluZm8gV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0s
IGNvbnN0CiAgICAgZGVmYXVsdDoKICAgICAgICAgLy8gQ2FuJ3QgaGFuZGxlIHRoaXMgdHlwZQog
ICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxV
RSwgImdldFVuaWZvcm0iLCAidW5oYW5kbGVkIHR5cGUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgc3dpdGNoIChi
YXNlVHlwZSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUOiB7CkBAIC0yNTI5
LDggKzI1MTIsOCBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0CiAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIG1fY29udGV4dC0+Z2V0VW5pZm9ybWZ2KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgbG9j
YXRpb24sIHZhbHVlKTsKICAgICAgICAgaWYgKGxlbmd0aCA9PSAxKQotICAgICAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZVswXSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
UGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+KEZsb2F0MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5n
dGgpKSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVbMF07CisgICAgICAgIHJldHVybiBGbG9h
dDMyQXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKTsKICAgICB9CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6SU5UOiB7CiAgICAgICAgIEdDM0RpbnQgdmFsdWVbNF0gPSB7MH07CkBAIC0y
NTM5LDggKzI1MjIsOCBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIG1fY29udGV4dC0+Z2V0VW5pZm9ybWl2KG9iamVjdE9yWmVybyhwcm9ncmFtKSwg
bG9jYXRpb24sIHZhbHVlKTsKICAgICAgICAgaWYgKGxlbmd0aCA9PSAxKQotICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZVswXSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oUGFzc1JlZlB0cjxJbnQzMkFycmF5PihJbnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0
aCkpKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZVswXTsKKyAgICAgICAgcmV0dXJuIEludDMy
QXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKTsKICAgICB9CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6Qk9PTDogewogICAgICAgICBHQzNEaW50IHZhbHVlWzRdID0gezB9OwpAQCAtMjU0
OSwxMiArMjUzMiwxMiBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIG1fY29udGV4dC0+Z2V0VW5pZm9ybWl2KG9iamVjdE9yWmVybyhwcm9ncmFtKSwg
bG9jYXRpb24sIHZhbHVlKTsKICAgICAgICAgaWYgKGxlbmd0aCA+IDEpIHsKLSAgICAgICAgICAg
IGJvb2wgYm9vbFZhbHVlWzE2XSA9IHswfTsKKyAgICAgICAgICAgIFZlY3Rvcjxib29sPiB2ZWN0
b3IobGVuZ3RoKTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGogPCBsZW5ndGg7
IGorKykKLSAgICAgICAgICAgICAgICBib29sVmFsdWVbal0gPSBzdGF0aWNfY2FzdDxib29sPih2
YWx1ZVtqXSk7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKGJvb2xWYWx1ZSwgbGVu
Z3RoKTsKKyAgICAgICAgICAgICAgICB2ZWN0b3Jbal0gPSB2YWx1ZVtqXTsKKyAgICAgICAgICAg
IHJldHVybiBXVEZNb3ZlKHZlY3Rvcik7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhzdGF0aWNfY2FzdDxib29sPih2YWx1ZVswXSkpOworICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Ym9vbD4odmFsdWVbMF0pOwogICAgIH0KICAgICBkZWZhdWx0OgogICAgICAgICBu
b3RJbXBsZW1lbnRlZCgpOwpAQCAtMjU2Miw3ICsyNTQ1LDcgQEAgV2ViR0xHZXRJbmZvIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBj
b25zdAogCiAgICAgLy8gSWYgd2UgZ2V0IGhlcmUsIHNvbWV0aGluZyB3ZW50IHdyb25nIGluIG91
ciB1bmZvcnR1bmF0ZWx5IGNvbXBsZXggbG9naWMgYWJvdmUKICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSwgImdldFVuaWZvcm0iLCAidW5rbm93
biBlcnJvciIpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAogUmVmUHRyPFdlYkdMVW5pZm9ybUxvY2F0aW9uPiBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRVbmlmb3JtTG9jYXRpb24oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdCBT
dHJpbmcmIG5hbWUpCkBAIC0yNjAzLDQzICsyNTg2LDQzIEBAIFJlZlB0cjxXZWJHTFVuaWZvcm1M
b2NhdGlvbj4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybUxvY2F0aW9uKFdl
YkdMCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRyaWIoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBu
YW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VmVydGV4QXR0cmli
KEdDM0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9z
dE9yUGVuZGluZygpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgaWYgKGluZGV4ID49IG1fbWF4VmVydGV4QXR0cmlicykgewog
ICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxV
RSwgImdldFZlcnRleEF0dHJpYiIsICJpbmRleCBvdXQgb2YgcmFuZ2UiKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAg
ICBjb25zdCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6VmVydGV4QXR0cmliU3RhdGUmIHN0
YXRlID0gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRWZXJ0ZXhBdHRyaWJTdGF0ZShpbmRl
eCk7CiAKICAgICBpZiAoKGlzV2ViR0wyKCkgfHwgbV9hbmdsZUluc3RhbmNlZEFycmF5cykgJiYg
cG5hbWUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlfRElWSVNPUl9B
TkdMRSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS5kaXZpc29yKTsKKyAgICAg
ICAgcmV0dXJuIHN0YXRlLmRpdmlzb3I7CiAKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORzoK
ICAgICAgICAgaWYgKCghaXNHTEVTMkNvbXBsaWFudCgpICYmICFpbmRleCAmJiBtX2JvdW5kVmVy
dGV4QXJyYXlPYmplY3QtPmdldFZlcnRleEF0dHJpYlN0YXRlKDApLmJ1ZmZlckJpbmRpbmcgPT0g
bV92ZXJ0ZXhBdHRyaWIwQnVmZmVyKQogICAgICAgICAgICAgfHwgIXN0YXRlLmJ1ZmZlckJpbmRp
bmcKICAgICAgICAgICAgIHx8ICFzdGF0ZS5idWZmZXJCaW5kaW5nLT5vYmplY3QoKSkKLSAgICAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPihzdGF0ZS5idWZmZXJCaW5kaW5nKSk7CisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHN0YXRlLmJ1ZmZlckJpbmRpbmc7
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9FTkFCTEVE
OgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRlLmVuYWJsZWQpOworICAgICAgICBy
ZXR1cm4gc3RhdGUuZW5hYmxlZDsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhf
QVRUUklCX0FSUkFZX05PUk1BTElaRUQ6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3Rh
dGUubm9ybWFsaXplZCk7CisgICAgICAgIHJldHVybiBzdGF0ZS5ub3JtYWxpemVkOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRToKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS5zaXplKTsKKyAgICAgICAgcmV0dXJuIHN0YXRlLnNp
emU7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJ
REU6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGUub3JpZ2luYWxTdHJpZGUpOwor
ICAgICAgICByZXR1cm4gc3RhdGUub3JpZ2luYWxTdHJpZGU7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFOgotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKHN0YXRlLnR5cGUpOworICAgICAgICByZXR1cm4gc3RhdGUudHlwZTsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpDVVJSRU5UX1ZFUlRFWF9BVFRSSUI6Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+KEZsb2F0MzJBcnJheTo6Y3Jl
YXRlKG1fdmVydGV4QXR0cmliVmFsdWVbaW5kZXhdLnZhbHVlLCA0KSkpOworICAgICAgICByZXR1
cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUobV92ZXJ0ZXhBdHRyaWJWYWx1ZVtpbmRleF0udmFsdWUs
IDQpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRWZXJ0ZXhBdHRyaWIiLCAiaW52YWxpZCBwYXJhbWV0
ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMjY0Nyw4ICsyNjMwLDcgQEAgbG9uZyBsb25nIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0dHJpYk9mZnNldChHQzNEdWludCBp
bmRleCwgR0MzRGUKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAg
ICByZXR1cm4gMDsKLSAgICBHQzNEc2l6ZWlwdHIgcmVzdWx0ID0gbV9jb250ZXh0LT5nZXRWZXJ0
ZXhBdHRyaWJPZmZzZXQoaW5kZXgsIHBuYW1lKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8bG9u
ZyBsb25nPihyZXN1bHQpOworICAgIHJldHVybiBtX2NvbnRleHQtPmdldFZlcnRleEF0dHJpYk9m
ZnNldChpbmRleCwgcG5hbWUpOwogfQogCiBHQzNEYm9vbGVhbiBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjppc0J1ZmZlcihXZWJHTEJ1ZmZlciogYnVmZmVyKQpAQCAtMzExMCw4ICszMDkyLDgg
QEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZWFkUGl4ZWxzKEdDM0RpbnQgeCwg
R0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgKICN1bmRlZiBQQUNLRURfSU5URVJOQUxfRk9STUFU
X0NIRUNLCiAKICAgICAvLyBDYWxjdWxhdGUgYXJyYXkgc2l6ZSwgdGFraW5nIGludG8gY29uc2lk
ZXJhdGlvbiBvZiBQQUNLX0FMSUdOTUVOVC4KLSAgICB1bnNpZ25lZCBpbnQgdG90YWxCeXRlc1Jl
cXVpcmVkID0gMDsKLSAgICB1bnNpZ25lZCBpbnQgcGFkZGluZyA9IDA7CisgICAgdW5zaWduZWQg
dG90YWxCeXRlc1JlcXVpcmVkID0gMDsKKyAgICB1bnNpZ25lZCBwYWRkaW5nID0gMDsKICAgICBp
ZiAoIW1faXNSb2J1c3RuZXNzRVhUU3VwcG9ydGVkKSB7CiAgICAgICAgIEdDM0RlbnVtIGVycm9y
ID0gbV9jb250ZXh0LT5jb21wdXRlSW1hZ2VTaXplSW5CeXRlcyhmb3JtYXQsIHR5cGUsIHdpZHRo
LCBoZWlnaHQsIG1fcGFja0FsaWdubWVudCwgJnRvdGFsQnl0ZXNSZXF1aXJlZCwgJnBhZGRpbmcp
OwogICAgICAgICBpZiAoZXJyb3IgIT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PX0VSUk9SKSB7CkBA
IC00NTg3LDcgKzQ1NjksNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRl
eEF0dHJpYlBvaW50ZXIoR0MzRHVpbnQgaW5kZXgsIEdDM0RpbnQgc2l6ZQogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIC8vIERldGVybWluZSB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRoZSBi
b3VuZCBidWZmZXIgY2FuIGhvbGQsIGdpdmVuIHRoZSBvZmZzZXQsIHNpemUsIHR5cGUgYW5kIHN0
cmlkZQotICAgIHVuc2lnbmVkIGludCB0eXBlU2l6ZSA9IHNpemVJbkJ5dGVzKHR5cGUpOworICAg
IGF1dG8gdHlwZVNpemUgPSBzaXplSW5CeXRlcyh0eXBlKTsKICAgICBpZiAoIXR5cGVTaXplKSB7
CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VO
VU0sICJ2ZXJ0ZXhBdHRyaWJQb2ludGVyIiwgImludmFsaWQgdHlwZSIpOwogICAgICAgICByZXR1
cm47CkBAIC00NTk4LDcgKzQ1ODAsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OnZlcnRleEF0dHJpYlBvaW50ZXIoR0MzRHVpbnQgaW5kZXgsIEdDM0RpbnQgc2l6ZQogICAgIH0K
ICAgICBHQzNEc2l6ZWkgYnl0ZXNQZXJFbGVtZW50ID0gc2l6ZSAqIHR5cGVTaXplOwogCi0gICAg
bV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5zZXRWZXJ0ZXhBdHRyaWJTdGF0ZShpbmRleCwgYnl0
ZXNQZXJFbGVtZW50LCBzaXplLCB0eXBlLCBub3JtYWxpemVkLCBzdHJpZGUsIHN0YXRpY19jYXN0
PEdDM0RpbnRwdHI+KG9mZnNldCksIG1fYm91bmRBcnJheUJ1ZmZlcik7CisgICAgbV9ib3VuZFZl
cnRleEFycmF5T2JqZWN0LT5zZXRWZXJ0ZXhBdHRyaWJTdGF0ZShpbmRleCwgYnl0ZXNQZXJFbGVt
ZW50LCBzaXplLCB0eXBlLCBub3JtYWxpemVkLCBzdHJpZGUsIHN0YXRpY19jYXN0PEdDM0RpbnRw
dHI+KG9mZnNldCksICptX2JvdW5kQXJyYXlCdWZmZXIpOwogICAgIG1fY29udGV4dC0+dmVydGV4
QXR0cmliUG9pbnRlcihpbmRleCwgc2l6ZSwgdHlwZSwgbm9ybWFsaXplZCwgc3RyaWRlLCBzdGF0
aWNfY2FzdDxHQzNEaW50cHRyPihvZmZzZXQpKTsKIH0KIApAQCAtNDY4OSw3ICs0NjcxLDcgQEAg
UGxhdGZvcm1MYXllciogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cGxhdGZvcm1MYXllcigp
IGNvbnN0CiAgICAgcmV0dXJuICghaXNDb250ZXh0TG9zdCgpICYmICFtX2lzUGVuZGluZ1BvbGlj
eVJlc29sdXRpb24pID8gbV9jb250ZXh0LT5wbGF0Zm9ybUxheWVyKCkgOiAwOwogfQogCi12b2lk
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlbW92ZVNoYXJlZE9iamVjdChXZWJHTFNoYXJl
ZE9iamVjdCogb2JqZWN0KQordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVT
aGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmIG9iamVjdCkKIHsKICAgICBpZiAobV9pc1Bl
bmRpbmdQb2xpY3lSZXNvbHV0aW9uKQogICAgICAgICByZXR1cm47CkBAIC00Njk3LDcgKzQ2Nzks
NyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlbW92ZVNoYXJlZE9iamVjdChX
ZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0KQogICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVPYmpl
Y3Qob2JqZWN0KTsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphZGRTaGFy
ZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6YWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0JiBvYmplY3QpCiB7
CiAgICAgaWYgKG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikKICAgICAgICAgcmV0dXJuOwpA
QCAtNDcwNiwyMSArNDY4OCwyMSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFk
ZFNoYXJlZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0KQogICAgIG1fY29udGV4dEdy
b3VwLT5hZGRPYmplY3Qob2JqZWN0KTsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpyZW1vdmVDb250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCogb2JqZWN0KQordm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVDb250ZXh0T2JqZWN0KFdlYkdMQ29u
dGV4dE9iamVjdCYgb2JqZWN0KQogewogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRp
b24pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY29udGV4dE9iamVjdHMucmVtb3ZlKG9iamVj
dCk7CisgICAgbV9jb250ZXh0T2JqZWN0cy5yZW1vdmUoJm9iamVjdCk7CiB9CiAKLXZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRkQ29udGV4dE9iamVjdChXZWJHTENvbnRleHRPYmpl
Y3QqIG9iamVjdCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRkQ29udGV4dE9i
amVjdChXZWJHTENvbnRleHRPYmplY3QmIG9iamVjdCkKIHsKICAgICBpZiAobV9pc1BlbmRpbmdQ
b2xpY3lSZXNvbHV0aW9uKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoIWlzQ29udGV4
dExvc3QoKSk7Ci0gICAgbV9jb250ZXh0T2JqZWN0cy5hZGQob2JqZWN0KTsKKyAgICBtX2NvbnRl
eHRPYmplY3RzLmFkZCgmb2JqZWN0KTsKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCkKQEAgLTQ3NTgsNTYgKzQ3NDAsNTYgQEAg
Ym9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNw
ZW5zaW9uKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuUGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Qm9vbGVhblBhcmFtZXRl
cihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNEYm9vbGVhbiB2YWx1ZSA9IDA7CiAgICAgbV9j
b250ZXh0LT5nZXRCb29sZWFudihwbmFtZSwgJnZhbHVlKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHN0YXRpY19jYXN0PGJvb2w+KHZhbHVlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJv
b2w+KHZhbHVlKTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldEJvb2xlYW5BcnJheVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJvb2xlYW5BcnJheVBhcmFtZXRlcihHQzNEZW51bSBw
bmFtZSkKIHsKICAgICBpZiAocG5hbWUgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX1dSSVRF
TUFTSykgewogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKDAsIDApOworICAgICAgICByZXR1cm4gVmVjdG9yPGJvb2w+IHsgfTsKICAgICB9Ci0g
ICAgR0MzRGJvb2xlYW4gdmFsdWVbNF0gPSB7MH07CisgICAgR0MzRGJvb2xlYW4gdmFsdWVbNF0g
PSB7IDAgfTsKICAgICBtX2NvbnRleHQtPmdldEJvb2xlYW52KHBuYW1lLCB2YWx1ZSk7Ci0gICAg
Ym9vbCBib29sVmFsdWVbNF07Ci0gICAgZm9yIChpbnQgaWkgPSAwOyBpaSA8IDQ7ICsraWkpCi0g
ICAgICAgIGJvb2xWYWx1ZVtpaV0gPSBzdGF0aWNfY2FzdDxib29sPih2YWx1ZVtpaV0pOwotICAg
IHJldHVybiBXZWJHTEdldEluZm8oYm9vbFZhbHVlLCA0KTsKKyAgICBWZWN0b3I8Ym9vbD4gdmVj
dG9yKDQpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCA0OyArK2kpCisgICAgICAgIHZl
Y3RvcltpXSA9IHZhbHVlW2ldOworICAgIHJldHVybiBXVEZNb3ZlKHZlY3Rvcik7CiB9CiAKLVdl
YkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRGbG9hdFBhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEZs
b2F0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdDM0RmbG9hdCB2YWx1ZSA9IDA7
CiAgICAgbV9jb250ZXh0LT5nZXRGbG9hdHYocG5hbWUsICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgcmV0dXJuIHZhbHVlOwogfQogCi1XZWJHTEdldEluZm8g
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0SW50UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0SW50UGFyYW1ldGVyKEdD
M0RlbnVtIHBuYW1lKQogewogICAgIEdDM0RpbnQgdmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+
Z2V0SW50ZWdlcnYocG5hbWUsICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1
ZSk7CisgICAgcmV0dXJuIHZhbHVlOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Z2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitXZWJH
TEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbnNpZ25lZEludFBhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBtX2NvbnRleHQt
PmdldEludGVnZXJ2KHBuYW1lLCAmdmFsdWUpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8oc3Rh
dGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2YWx1ZSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4odmFsdWUpOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6Z2V0SW50NjRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpnZXRJbnQ2NFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsK
ICAgICBHQzNEaW50NjQgdmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcjY0dihw
bmFtZSwgJnZhbHVlKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICByZXR1
cm4gdmFsdWU7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpn
ZXRXZWJHTEZsb2F0QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRXZWJHTEZsb2F0QXJyYXlQYXJhbWV0ZXIoR0MzRGVu
dW0gcG5hbWUpCiB7CiAgICAgR0MzRGZsb2F0IHZhbHVlWzRdID0gezB9OwogICAgIG1fY29udGV4
dC0+Z2V0RmxvYXR2KHBuYW1lLCB2YWx1ZSk7CkBAIC00ODI1LDEwICs0ODA3LDEwIEBAIFdlYkdM
R2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRXZWJHTEZsb2F0QXJyYXlQYXJh
bWV0ZXIoR0MzRGVudW0gcG5hCiAgICAgZGVmYXVsdDoKICAgICAgICAgbm90SW1wbGVtZW50ZWQo
KTsKICAgICB9Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEZsb2F0MzJBcnJh
eT4oRmxvYXQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCkpKTsKKyAgICByZXR1cm4gRmxv
YXQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKEdDM0RlbnVt
IHBuYW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRB
cnJheVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNEaW50IHZhbHVlWzRdID0g
ezB9OwogICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYocG5hbWUsIHZhbHVlKTsKQEAgLTQ4NDQs
NyArNDgyNiw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRX
ZWJHTEludEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lCiAgICAgZGVmYXVsdDoKICAgICAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICB9Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNz
UmVmUHRyPEludDMyQXJyYXk+KEludDMyQXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKSkpOwor
ICAgIHJldHVybiBJbnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCk7CiB9CiAKIGJvb2wg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2hlY2tUZXh0dXJlQ29tcGxldGVuZXNzKGNvbnN0
IGNoYXIqIGZ1bmN0aW9uTmFtZSwgYm9vbCBwcmVwYXJlVG9EcmF3KQpAQCAtNTA2OCw3ICs1MDUw
LDcgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxpZGF0ZUNvbXByZXNzZWRU
ZXhGdW5jRGF0YShjb25zdCBjaGFyKiBmdW5jdGkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIAotICAgIHVuc2lnbmVkIGludCBieXRlc1JlcXVpcmVkID0gMDsKKyAgICB1bnNpZ25lZCBi
eXRlc1JlcXVpcmVkID0gMDsKIAogICAgIHN3aXRjaCAoZm9ybWF0KSB7CiAgICAgY2FzZSBFeHRl
bnNpb25zM0Q6OkNPTVBSRVNTRURfUkdCX1MzVENfRFhUMV9FWFQ6CkBAIC01MzI1LDE3ICs1MzA3
LDE2IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVVbmlmb3JtTWF0
cml4UGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jCiAKIFdlYkdMQnVmZmVyKiBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjp2YWxpZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0ZXJzKGNvbnN0IGNoYXIq
IGZ1bmN0aW9uTmFtZSwgR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSB1c2FnZSkKIHsKLSAgICBX
ZWJHTEJ1ZmZlciogYnVmZmVyID0gMDsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkdMQnVmZmVyKj4g
YnVmZmVyOwogICAgIHN3aXRjaCAodGFyZ2V0KSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RUxFTUVOVF9BUlJBWV9CVUZGRVI6Ci0gICAgICAgIGJ1ZmZlciA9IG1fYm91bmRWZXJ0ZXhB
cnJheU9iamVjdC0+Z2V0RWxlbWVudEFycmF5QnVmZmVyKCkuZ2V0KCk7CisgICAgICAgIGJ1ZmZl
ciA9IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVudEFycmF5QnVmZmVyKCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZFUjoK
ICAgICAgICAgYnVmZmVyID0gbV9ib3VuZEFycmF5QnVmZmVyLmdldCgpOwogICAgICAgICBicmVh
azsKICAgICBkZWZhdWx0OgogI2lmIEVOQUJMRShXRUJHTDIpCi0gICAgICAgIGJvb2wgc3VjY2Vz
cyA9IHRydWU7CiAgICAgICAgIGlmIChpc1dlYkdMMigpKSB7CiAgICAgICAgICAgICBzd2l0Y2gg
KHRhcmdldCkgewogICAgICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09QWV9SRUFE
X0JVRkZFUjoKQEAgLTUzNTYsMTkgKzUzMzcsMTUgQEAgV2ViR0xCdWZmZXIqIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlQnVmZmVyRGF0YVBhcmFtZXRlcnMoY29uc3QgY2hhcioK
ICAgICAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOSUZPUk1fQlVGRkVSOgogICAg
ICAgICAgICAgICAgIGJ1ZmZlciA9IG1fYm91bmRVbmlmb3JtQnVmZmVyLmdldCgpOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBz
dWNjZXNzID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzZQotICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOwotICAgICAgICBpZiAo
c3VjY2VzcykKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYgKGJ1ZmZlcikKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIHN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwg
ImludmFsaWQgdGFyZ2V0Iik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICBp
ZiAoIWJ1ZmZlcikgeworICAgIGlmICghYnVmZmVyIHx8ICFidWZmZXIudmFsdWUoKSkgewogICAg
ICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJ
T04sIGZ1bmN0aW9uTmFtZSwgIm5vIGJ1ZmZlciIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICB9CkBAIC01Mzc2LDcgKzUzNTMsNyBAQCBXZWJHTEJ1ZmZlciogV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dmFsaWRhdGVCdWZmZXJEYXRhUGFyYW1ldGVycyhjb25zdCBjaGFyKgogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNUUkVBTV9EUkFXOgogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlNUQVRJQ19EUkFXOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRZTkFN
SUNfRFJBVzoKLSAgICAgICAgcmV0dXJuIGJ1ZmZlcjsKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci52
YWx1ZSgpOwogICAgIH0KICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6
SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIHVzYWdlIik7CiAgICAgcmV0dXJu
IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmgKaW5kZXggNzM5M2EzODYyODMzZmNiODZiYjE3MWIyMDZiMjdi
Y2VkOWIzOWVjZi4uZDkxYjg0M2I3OWRjZjMyYTJjNGQ0MWNmYjVjYzQ2OGE1M2Q3ZTZhMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuaApAQCAtMzAsMTMgKzMwLDEwIEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
M0QuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5j
bHVkZSAiV2ViR0xBbnkuaCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmgiCi0j
aW5jbHVkZSAiV2ViR0xHZXRJbmZvLmgiCi0jaW5jbHVkZSAiV2ViR0xPYmplY3QuaCIKICNpbmNs
dWRlICJXZWJHTFRleHR1cmUuaCIKICNpbmNsdWRlIDxtZW1vcnk+Ci0jaW5jbHVkZSA8cnVudGlt
ZS9GbG9hdDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL0ludDMyQXJyYXkuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OCw3ICs0NSw2IEBAIGNsYXNzIEVYVHNSR0I7CiBjbGFz
cyBFWFRGcmFnRGVwdGg7CiBjbGFzcyBIVE1MSW1hZ2VFbGVtZW50OwogY2xhc3MgSFRNTFZpZGVv
RWxlbWVudDsKLWNsYXNzIEltYWdlQnVmZmVyOwogY2xhc3MgSW1hZ2VEYXRhOwogY2xhc3MgSW50
U2l6ZTsKIGNsYXNzIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM7CkBAIC0xOTEsMjQgKzE4NywyNCBA
QCBwdWJsaWM6CiAgICAgUmVmUHRyPFdlYkdMQWN0aXZlSW5mbz4gZ2V0QWN0aXZlVW5pZm9ybShX
ZWJHTFByb2dyYW0qLCBHQzNEdWludCBpbmRleCk7CiAgICAgYm9vbCBnZXRBdHRhY2hlZFNoYWRl
cnMoV2ViR0xQcm9ncmFtKiwgVmVjdG9yPFJlZlB0cjxXZWJHTFNoYWRlcj4+Jik7CiAgICAgR0Mz
RGludCBnZXRBdHRyaWJMb2NhdGlvbihXZWJHTFByb2dyYW0qLCBjb25zdCBTdHJpbmcmIG5hbWUp
OwotICAgIFdlYkdMR2V0SW5mbyBnZXRCdWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0QnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVt
IHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViR0xDb250ZXh0
QXR0cmlidXRlcz4gZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsKICAgICBHQzNEZW51bSBnZXRFcnJv
cigpOwogICAgIHZpcnR1YWwgV2ViR0xFeHRlbnNpb24qIGdldEV4dGVuc2lvbihjb25zdCBTdHJp
bmcmIG5hbWUpID0gMDsKLSAgICB2aXJ0dWFsIFdlYkdMR2V0SW5mbyBnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBH
QzNEZW51bSBwbmFtZSkgPSAwOwotICAgIHZpcnR1YWwgV2ViR0xHZXRJbmZvIGdldFBhcmFtZXRl
cihHQzNEZW51bSBwbmFtZSkgPSAwOwotICAgIFdlYkdMR2V0SW5mbyBnZXRQcm9ncmFtUGFyYW1l
dGVyKFdlYkdMUHJvZ3JhbSosIEdDM0RlbnVtIHBuYW1lKTsKKyAgICB2aXJ0dWFsIFdlYkdMQW55
IGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0Rl
bnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKSA9IDA7CisgICAgdmlydHVhbCBXZWJHTEFu
eSBnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpID0gMDsKKyAgICBXZWJHTEFueSBnZXRQcm9n
cmFtUGFyYW1ldGVyKFdlYkdMUHJvZ3JhbSosIEdDM0RlbnVtIHBuYW1lKTsKICAgICBTdHJpbmcg
Z2V0UHJvZ3JhbUluZm9Mb2coV2ViR0xQcm9ncmFtKik7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFJl
bmRlcmJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKTsKLSAg
ICBXZWJHTEdldEluZm8gZ2V0U2hhZGVyUGFyYW1ldGVyKFdlYkdMU2hhZGVyKiwgR0MzRGVudW0g
cG5hbWUpOworICAgIFdlYkdMQW55IGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBnZXRTaGFkZXJQYXJhbWV0ZXIo
V2ViR0xTaGFkZXIqLCBHQzNEZW51bSBwbmFtZSk7CiAgICAgU3RyaW5nIGdldFNoYWRlckluZm9M
b2coV2ViR0xTaGFkZXIqKTsKICAgICBSZWZQdHI8V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQ+
IGdldFNoYWRlclByZWNpc2lvbkZvcm1hdChHQzNEZW51bSBzaGFkZXJUeXBlLCBHQzNEZW51bSBw
cmVjaXNpb25UeXBlKTsKICAgICBTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFdlYkdMU2hhZGVyKik7
CiAgICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkgPSAw
OwotICAgIFdlYkdMR2V0SW5mbyBnZXRUZXhQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
ZW51bSBwbmFtZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiwg
Y29uc3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qKTsKKyAgICBXZWJHTEFueSBnZXRUZXhQYXJhbWV0
ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0VW5p
Zm9ybShXZWJHTFByb2dyYW0qLCBjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiopOwogICAgIFJl
ZlB0cjxXZWJHTFVuaWZvcm1Mb2NhdGlvbj4gZ2V0VW5pZm9ybUxvY2F0aW9uKFdlYkdMUHJvZ3Jh
bSosIGNvbnN0IFN0cmluZyYpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRWZXJ0ZXhBdHRyaWIoR0Mz
RHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBnZXRWZXJ0ZXhBdHRy
aWIoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lKTsKICAgICBsb25nIGxvbmcgZ2V0VmVy
dGV4QXR0cmliT2Zmc2V0KEdDM0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1vZGUpID0gMDsKQEAg
LTMyMyw4ICszMTksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYWludFJlbmRlcmluZ1Jlc3VsdHNU
b0NhbnZhcygpIG92ZXJyaWRlOwogICAgIFJlZlB0cjxJbWFnZURhdGE+IHBhaW50UmVuZGVyaW5n
UmVzdWx0c1RvSW1hZ2VEYXRhKCk7CiAKLSAgICB2b2lkIHJlbW92ZVNoYXJlZE9iamVjdChXZWJH
TFNoYXJlZE9iamVjdCopOwotICAgIHZvaWQgcmVtb3ZlQ29udGV4dE9iamVjdChXZWJHTENvbnRl
eHRPYmplY3QqKTsKKyAgICB2b2lkIHJlbW92ZVNoYXJlZE9iamVjdChXZWJHTFNoYXJlZE9iamVj
dCYpOworICAgIHZvaWQgcmVtb3ZlQ29udGV4dE9iamVjdChXZWJHTENvbnRleHRPYmplY3QmKTsK
ICAgICAKICAgICB1bnNpZ25lZCBnZXRNYXhWZXJ0ZXhBdHRyaWJzKCkgY29uc3QgeyByZXR1cm4g
bV9tYXhWZXJ0ZXhBdHRyaWJzOyB9CiAKQEAgLTMzNSw3ICszMzEsNyBAQCBwdWJsaWM6CiAKIHBy
b3RlY3RlZDoKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKEhUTUxDYW52YXNFbGVtZW50
JiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyk7Ci0gICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZShIVE1MQ2FudmFzRWxlbWVudCYsIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4mJiwgV2ViR0xD
b250ZXh0QXR0cmlidXRlcyk7CisgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShIVE1MQ2Fu
dmFzRWxlbWVudCYsIFJlZjxHcmFwaGljc0NvbnRleHQzRD4mJiwgV2ViR0xDb250ZXh0QXR0cmli
dXRlcyk7CiAKICAgICBmcmllbmQgY2xhc3MgV2ViR0xEcmF3QnVmZmVyczsKICAgICBmcmllbmQg
Y2xhc3MgV2ViR0xGcmFtZWJ1ZmZlcjsKQEAgLTM2MCw4ICszNTYsOCBAQCBwcm90ZWN0ZWQ6CiAg
ICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0IG92ZXJyaWRlOwog
Ci0gICAgdm9pZCBhZGRTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqKTsKLSAgICB2b2lk
IGFkZENvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0Kik7CisgICAgdm9pZCBhZGRTaGFy
ZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmKTsKKyAgICB2b2lkIGFkZENvbnRleHRPYmplY3Qo
V2ViR0xDb250ZXh0T2JqZWN0Jik7CiAgICAgdm9pZCBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3Rz
KCk7CiAKICAgICB2b2lkIGRlc3Ryb3lHcmFwaGljc0NvbnRleHQzRCgpOwpAQCAtNDE0LDcgKzQx
MCw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBvbiBob3cgZXhhY3RseSB0aGUgcGxhdGZvcm0gZGlz
Y292ZXJzIHRoYXQgdGhlIGNvbnRleHQgd2FzIGxvc3QuIEZvciBiZXR0ZXIKICAgICAvLyBwb3J0
YWJpbGl0eSB3ZSBhbHdheXMgZGVmZXIgdGhlIGRpc3BhdGNoIG9mIHRoZSBldmVudC4KICAgICBU
aW1lciBtX2Rpc3BhdGNoQ29udGV4dExvc3RFdmVudFRpbWVyOwotICAgIGJvb2wgbV9yZXN0b3Jl
QWxsb3dlZDsKKyAgICBib29sIG1fcmVzdG9yZUFsbG93ZWQgeyBmYWxzZSB9OwogICAgIFRpbWVy
IG1fcmVzdG9yZVRpbWVyOwogCiAgICAgYm9vbCBtX25lZWRzVXBkYXRlOwpAQCAtNDMyLDEyICs0
MjgsMTAgQEAgcHJvdGVjdGVkOgogCiAgICAgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlPiBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdDsKICAgICBSZWZQdHI8V2ViR0xWZXJ0ZXhB
cnJheU9iamVjdEJhc2U+IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdDsKLSAgICB2b2lkIHNldEJv
dW5kVmVydGV4QXJyYXlPYmplY3QoUGFzc1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFz
ZT4gYXJyYXlPYmplY3QpCisKKyAgICB2b2lkIHNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QoV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UqIGFycmF5T2JqZWN0KQogICAgIHsKLSAgICAgICAgaWYg
KGFycmF5T2JqZWN0KQotICAgICAgICAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0ID0gYXJy
YXlPYmplY3Q7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9i
amVjdCA9IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OworICAgICAgICBtX2JvdW5kVmVydGV4
QXJyYXlPYmplY3QgPSBhcnJheU9iamVjdCA/IGFycmF5T2JqZWN0IDogbV9kZWZhdWx0VmVydGV4
QXJyYXlPYmplY3Q7CiAgICAgfQogICAgIAogICAgIGNsYXNzIFZlcnRleEF0dHJpYlZhbHVlIHsK
QEAgLTQ5MywxMiArNDg3LDEyIEBAIHByb3RlY3RlZDoKICAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj5bXT4gbV9idWZmZXJzOwogICAgICAgICBpbnQg
bV9jYXBhY2l0eTsKICAgICB9OwotICAgIExSVUltYWdlQnVmZmVyQ2FjaGUgbV9nZW5lcmF0ZWRJ
bWFnZUNhY2hlOworICAgIExSVUltYWdlQnVmZmVyQ2FjaGUgbV9nZW5lcmF0ZWRJbWFnZUNhY2hl
IHsgMCB9OwogCiAgICAgR0MzRGludCBtX21heFRleHR1cmVTaXplOwogICAgIEdDM0RpbnQgbV9t
YXhDdWJlTWFwVGV4dHVyZVNpemU7CiAgICAgR0MzRGludCBtX21heFJlbmRlcmJ1ZmZlclNpemU7
Ci0gICAgR0MzRGludCBtX21heFZpZXdwb3J0RGltc1syXTsKKyAgICBHQzNEaW50IG1fbWF4Vmll
d3BvcnREaW1zWzJdIHsgMCwgMCB9OwogICAgIEdDM0RpbnQgbV9tYXhUZXh0dXJlTGV2ZWw7CiAg
ICAgR0MzRGludCBtX21heEN1YmVNYXBUZXh0dXJlTGV2ZWw7CiAKQEAgLTUxMyw4ICs1MDcsOCBA
QCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX3VucGFja0ZsaXBZOwogICAgIGJvb2wgbV91bnBhY2tQ
cmVtdWx0aXBseUFscGhhOwogICAgIEdDM0RlbnVtIG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNp
b247Ci0gICAgYm9vbCBtX2NvbnRleHRMb3N0OwotICAgIExvc3RDb250ZXh0TW9kZSBtX2NvbnRl
eHRMb3N0TW9kZTsKKyAgICBib29sIG1fY29udGV4dExvc3QgeyBmYWxzZSB9OworICAgIExvc3RD
b250ZXh0TW9kZSBtX2NvbnRleHRMb3N0TW9kZSB7IFN5bnRoZXRpY0xvc3RDb250ZXh0IH07CiAg
ICAgV2ViR0xDb250ZXh0QXR0cmlidXRlcyBtX2F0dHJpYnV0ZXM7CiAKICAgICBib29sIG1fbGF5
ZXJDbGVhcmVkOwpAQCAtNTM1LDE0ICs1MjksMTQgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9p
c0RlcHRoU3RlbmNpbFN1cHBvcnRlZDsKICAgICBib29sIG1faXNSb2J1c3RuZXNzRVhUU3VwcG9y
dGVkOwogCi0gICAgYm9vbCBtX3N5bnRoZXNpemVkRXJyb3JzVG9Db25zb2xlOworICAgIGJvb2wg
bV9zeW50aGVzaXplZEVycm9yc1RvQ29uc29sZSB7IHRydWUgfTsKICAgICBpbnQgbV9udW1HTEVy
cm9yc1RvQ29uc29sZUFsbG93ZWQ7CiAKICAgICAvLyBBIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBj
YW4gYmUgY3JlYXRlZCBpbiBhIHN0YXRlIHdoZXJlIGl0IGFwcGVhcnMgYXMKICAgICAvLyBhIHZh
bGlkIGFuZCBhY3RpdmUgY29udGV4dCwgYnV0IHdpbGwgbm90IGV4ZWN1dGUgYW55IGltcG9ydGFu
dCBvcGVyYXRpb25zCiAgICAgLy8gdW50aWwgaXRzIGxvYWQgcG9saWN5IGlzIGNvbXBsZXRlbHkg
cmVzb2x2ZWQuCi0gICAgYm9vbCBtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb247Ci0gICAgYm9v
bCBtX2hhc1JlcXVlc3RlZFBvbGljeVJlc29sdXRpb247CisgICAgYm9vbCBtX2lzUGVuZGluZ1Bv
bGljeVJlc29sdXRpb24geyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNSZXF1ZXN0ZWRQb2xpY3lS
ZXNvbHV0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIGlzQ29udGV4dExvc3RPclBlbmRpbmcoKTsK
IAogICAgIC8vIEVuYWJsZWQgZXh0ZW5zaW9uIG9iamVjdHMuIEZJWE1FOiBNb3ZlIHRoZXNlIHRv
IFdlYkdMMVJlbmRlcmluZ0NvbnRleHQsIG5vdCBuZWVkZWQgZm9yIFdlYkdMMgpAQCAtNTY5LDE0
ICs1NjMsMTQgQEAgcHJvdGVjdGVkOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxBTkdMRUluc3RhbmNl
ZEFycmF5cz4gbV9hbmdsZUluc3RhbmNlZEFycmF5czsKIAogICAgIC8vIEhlbHBlcnMgZm9yIGdl
dFBhcmFtZXRlciBhbmQgb3RoZXJzCi0gICAgV2ViR0xHZXRJbmZvIGdldEJvb2xlYW5QYXJhbWV0
ZXIoR0MzRGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIo
R0MzRGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRGbG9hdFBhcmFtZXRlcihHQzNEZW51bSk7
Ci0gICAgV2ViR0xHZXRJbmZvIGdldEludFBhcmFtZXRlcihHQzNEZW51bSk7Ci0gICAgV2ViR0xH
ZXRJbmZvIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldElu
Zm8gZ2V0SW50NjRQYXJhbWV0ZXIoR0MzRGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRXZWJH
TEZsb2F0QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRXZWJH
TEludEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBXZWJHTEFueSBnZXRCb29sZWFuUGFy
YW1ldGVyKEdDM0RlbnVtKTsKKyAgICBXZWJHTEFueSBnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIo
R0MzRGVudW0pOworICAgIFdlYkdMQW55IGdldEZsb2F0UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAg
ICBXZWJHTEFueSBnZXRJbnRQYXJhbWV0ZXIoR0MzRGVudW0pOworICAgIFdlYkdMQW55IGdldFVu
c2lnbmVkSW50UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBXZWJHTEFueSBnZXRJbnQ2NFBhcmFt
ZXRlcihHQzNEZW51bSk7CisgICAgV2ViR0xBbnkgZ2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVy
KEdDM0RlbnVtKTsKKyAgICBXZWJHTEFueSBnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKEdDM0Rl
bnVtKTsKIAogICAgIC8vIENsZWFyIHRoZSBiYWNrYnVmZmVyIGlmIGl0IHdhcyBjb21wb3NpdGVk
IHNpbmNlIHRoZSBsYXN0IG9wZXJhdGlvbi4KICAgICAvLyBjbGVhck1hc2sgaXMgc2V0IHRvIHRo
ZSBiaXRmaWVsZCBvZiBhbnkgY2xlYXIgdGhhdCB3b3VsZCBoYXBwZW4gYW55d2F5IGF0IHRoaXMg
dGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3Qu
Y3BwCmluZGV4IDM2ZGMxNWQzYTBlN2U1ZjZhOTcwNjFlNGMzYmQzYzI0MWMxYjg0ZTkuLjkzMDU1
OTdkMTJlNGVhNmJkZGU2N2E5YmU1NTE1MzYxNDM3N2RmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAKQEAgLTQzLDIyICs0MywyMiBA
QCBXZWJHTFNoYXJlZE9iamVjdDo6V2ViR0xTaGFyZWRPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYgY29udGV4dCkKIFdlYkdMU2hhcmVkT2JqZWN0Ojp+V2ViR0xTaGFyZWRPYmplY3Qo
KQogewogICAgIGlmIChtX2NvbnRleHRHcm91cCkKLSAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJl
bW92ZU9iamVjdCh0aGlzKTsKKyAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZU9iamVjdCgq
dGhpcyk7CiB9CiAKIHZvaWQgV2ViR0xTaGFyZWRPYmplY3Q6OmRldGFjaENvbnRleHRHcm91cCgp
CiB7CiAgICAgZGV0YWNoKCk7CiAgICAgaWYgKG1fY29udGV4dEdyb3VwKSB7Ci0gICAgICAgIGRl
bGV0ZU9iamVjdCgwKTsKLSAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZU9iamVjdCh0aGlz
KTsKLSAgICAgICAgbV9jb250ZXh0R3JvdXAgPSAwOworICAgICAgICBkZWxldGVPYmplY3QobnVs
bHB0cik7CisgICAgICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVPYmplY3QoKnRoaXMpOworICAg
ICAgICBtX2NvbnRleHRHcm91cCA9IG51bGxwdHI7CiAgICAgfQogfQogCiBHcmFwaGljc0NvbnRl
eHQzRCogV2ViR0xTaGFyZWRPYmplY3Q6OmdldEFHcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIG1fY29udGV4dEdyb3VwID8gbV9jb250ZXh0R3JvdXAtPmdldEFHcmFwaGlj
c0NvbnRleHQzRCgpIDogMDsKKyAgICByZXR1cm4gbV9jb250ZXh0R3JvdXAgPyAmbV9jb250ZXh0
R3JvdXAtPmdldEFHcmFwaGljc0NvbnRleHQzRCgpIDogbnVsbHB0cjsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmgKaW5kZXggYWJlNDgw
MzMzNzJjOTU2Y2M3MTMwZWI3ZjdiZmZmZGNkMWE5ZjU3Yi4uMDEwOGI5NDIxMWNlNWEzMWM2OTY2
ZjUzNDBkZDk1NDE0ZDJhMzBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xTaGFyZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFNoYXJlZE9iamVjdC5oCkBAIC00OSw3ICs0OSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgaXNTaGFkZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBpc1N5bmMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Rl
eHR1cmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1RyYW5z
Zm9ybUZlZWRiYWNrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXNWZXJ0ZXhBcnJheU9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBib29s
IHZhbGlkYXRlKGNvbnN0IFdlYkdMQ29udGV4dEdyb3VwKiBjb250ZXh0R3JvdXAsIGNvbnN0IFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKSBjb25zdCBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCmluZGV4IDY5Y2Y4
ZTdiYjU0MThlYWE5ZTQ1NjkyMTE0MDhmNDc2YjI2YTY3ODYuLjljY2YwM2I4ZGViNmFiNmU5YTBk
Y2M2YmU3NTUzYjExMWQzNDU0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgKQEAgLTM5LDkgKzM5LDYgQEAgcHJvdGVjdGVk
OgogICAgIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2soV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYp
OwogCiAgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZv
cm0zRE9iamVjdCkgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAgYm9vbCBpc1RyYW5zZm9ybUZl
ZWRiYWNrKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFZlcnRleEFycmF5T2JqZWN0LmNwcAppbmRleCA3ZmE2OWM5YTQ5NGRiZWVhOWRiZWJmODllODVm
NDNmOWNmZDAyODQ5Li4xNThmZmRmODZiYmIxODA2OGI4ZTRmMTQyNmEzNWU0OTYzMTA0YzI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5
T2JqZWN0LmNwcApAQCAtMzMsMjMgKzMzLDIzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAKLVJlZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBXZWJHTFZlcnRleEFycmF5T2JqZWN0Ojpj
cmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWQU9UeXBlIHR5cGUpCitSZWY8
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlKFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwgVHlwZSB0eXBlKQogewogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYkdMVmVydGV4QXJyYXlPYmplY3QoY3R4LCB0eXBlKSk7CiB9CiAKIFdl
YkdMVmVydGV4QXJyYXlPYmplY3Q6On5XZWJHTFZlcnRleEFycmF5T2JqZWN0KCkKIHsKLSAgICBk
ZWxldGVPYmplY3QoMCk7CisgICAgZGVsZXRlT2JqZWN0KG51bGxwdHIpOwogfQogCi1XZWJHTFZl
cnRleEFycmF5T2JqZWN0OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UmIGN0eCwgVkFPVHlwZSB0eXBlKQorV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6V2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIFR5cGUg
dHlwZSkKICAgICA6IFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKGN0eCwgdHlwZSkKIHsKICAg
ICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgVkFPVHlwZURlZmF1bHQ6CisgICAgY2FzZSBU
eXBlOjpEZWZhdWx0OgogICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgorICAgIGNhc2UgVHlw
ZTo6VXNlcjoKICAgICAgICAgc2V0T2JqZWN0KGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0Qo
KS0+Y3JlYXRlVmVydGV4QXJyYXkoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTU4LDkg
KzU4LDkgQEAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdChX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIFYKIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdDo6ZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dDNkLCBQbGF0
Zm9ybTNET2JqZWN0IG9iamVjdCkKIHsKICAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2Ug
VkFPVHlwZURlZmF1bHQ6CisgICAgY2FzZSBUeXBlOjpEZWZhdWx0OgogICAgICAgICBicmVhazsK
LSAgICBkZWZhdWx0OgorICAgIGNhc2UgVHlwZTo6VXNlcjoKICAgICAgICAgY29udGV4dDNkLT5k
ZWxldGVWZXJ0ZXhBcnJheShvYmplY3QpOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmgKaW5k
ZXggNWI0OWM3MDhhNDYyNTRkZTU5MGUxYzA2ZGNjOTg2MmE2NjRjMzE0Mi4uOWIzMWYwMTYzMTQ4
YWE2MGRiMzY4ZWU1NzA1MmNkNDVkMmE3ZTk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaApAQCAtMjcsOCArMjcsNiBAQAog
CiAjaWYgRU5BQkxFKFdFQkdMMikKIAotI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCi0jaW5jbHVk
ZSAiV2ViR0xDb250ZXh0T2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dEJhc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzcsMTIgKzM1LDExIEBAIGNsYXNz
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ7CiAKIGNsYXNzIFdlYkdMVmVydGV4QXJyYXlPYmplY3Qg
ZmluYWwgOiBwdWJsaWMgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UgewogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4gY3JlYXRlKFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UmLCBWQU9UeXBlKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdMVmVydGV4QXJyYXlP
YmplY3Q+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVHlwZSk7CiAgICAgdmly
dHVhbCB+V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCgpOwogcHJpdmF0ZToKLSAgICBXZWJHTFZlcnRl
eEFycmF5T2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBWQU9UeXBlKTsKLSAgICBi
b29sIGlzVHJhbnNmb3JtRmVlZGJhY2soKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdm9p
ZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkg
b3ZlcnJpZGU7CisgICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlJiwgVHlwZSk7CisgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4
dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFy
cmF5T2JqZWN0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRl
eEFycmF5T2JqZWN0QmFzZS5jcHAKaW5kZXggNjk2NDljNjJmNmUxZGJlZjJmOWVkYTYxN2M0MjQy
NGRmNzNmMTc1Zi4uZTFhZmJiMmFkYmNiNjcxNGFiZDQwNjEzYjM5OGJlN2M0Y2I0YmMwMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJy
YXlPYmplY3RCYXNlLmNwcApAQCAtMjQsMjQgKzI0LDIyIEBACiAgKi8KIAogI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgiCiAKICNpZiBF
TkFCTEUoV0VCR0wpCi0jaW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaCIKIAog
I2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dEJhc2UoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWQU9UeXBlIHR5cGUpCi0gICAg
OiBXZWJHTENvbnRleHRPYmplY3QoY3R4KQorV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6Oldl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRl
eHQsIFR5cGUgdHlwZSkKKyAgICA6IFdlYkdMQ29udGV4dE9iamVjdChjb250ZXh0KQogICAgICwg
bV90eXBlKHR5cGUpCi0gICAgLCBtX2hhc0V2ZXJCZWVuQm91bmQoZmFsc2UpCi0gICAgLCBtX2Jv
dW5kRWxlbWVudEFycmF5QnVmZmVyKDApCiB7Ci0gICAgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5yZXNp
emUoY3R4LmdldE1heFZlcnRleEF0dHJpYnMoKSk7CisgICAgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5y
ZXNpemUoY29udGV4dC5nZXRNYXhWZXJ0ZXhBdHRyaWJzKCkpOwogfQogCi12b2lkIFdlYkdMVmVy
dGV4QXJyYXlPYmplY3RCYXNlOjpzZXRFbGVtZW50QXJyYXlCdWZmZXIoUGFzc1JlZlB0cjxXZWJH
TEJ1ZmZlcj4gYnVmZmVyKQordm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0RWxl
bWVudEFycmF5QnVmZmVyKFdlYkdMQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgaWYgKGJ1ZmZlcikK
ICAgICAgICAgYnVmZmVyLT5vbkF0dGFjaGVkKCk7CkBAIC01MSwxOCArNDksMTcgQEAgdm9pZCBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0RWxlbWVudEFycmF5QnVmZmVyKFBhc3NSZWZQ
dHI8V2ViR0xCdWZmZXI+IGIKICAgICAKIH0KIAotdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0
QmFzZTo6c2V0VmVydGV4QXR0cmliU3RhdGUoR0MzRHVpbnQgaW5kZXgsIEdDM0RzaXplaSBieXRl
c1BlckVsZW1lbnQsIEdDM0RpbnQgc2l6ZSwgR0MzRGVudW0gdHlwZSwgR0MzRGJvb2xlYW4gbm9y
bWFsaXplZCwgR0MzRHNpemVpIHN0cmlkZSwgR0MzRGludHB0ciBvZmZzZXQsIFBhc3NSZWZQdHI8
V2ViR0xCdWZmZXI+IGJ1ZmZlcikKK3ZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNl
dFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1aW50IGluZGV4LCBHQzNEc2l6ZWkgYnl0ZXNQZXJFbGVt
ZW50LCBHQzNEaW50IHNpemUsIEdDM0RlbnVtIHR5cGUsIEdDM0Rib29sZWFuIG5vcm1hbGl6ZWQs
IEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIgb2Zmc2V0LCBXZWJHTEJ1ZmZlciYgYnVmZmVy
KQogewogICAgIEdDM0RzaXplaSB2YWxpZGF0ZWRTdHJpZGUgPSBzdHJpZGUgPyBzdHJpZGUgOiBi
eXRlc1BlckVsZW1lbnQ7CiAgICAgCi0gICAgVmVydGV4QXR0cmliU3RhdGUmIHN0YXRlID0gbV92
ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF07CisgICAgYXV0byYgc3RhdGUgPSBtX3ZlcnRleEF0dHJp
YlN0YXRlW2luZGV4XTsKICAgICAKLSAgICBpZiAoYnVmZmVyKQotICAgICAgICBidWZmZXItPm9u
QXR0YWNoZWQoKTsKKyAgICBidWZmZXIub25BdHRhY2hlZCgpOwogICAgIGlmIChzdGF0ZS5idWZm
ZXJCaW5kaW5nKQogICAgICAgICBzdGF0ZS5idWZmZXJCaW5kaW5nLT5vbkRldGFjaGVkKGNvbnRl
eHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKSk7CiAgICAgCi0gICAgc3RhdGUuYnVmZmVyQmluZGlu
ZyA9IGJ1ZmZlcjsKKyAgICBzdGF0ZS5idWZmZXJCaW5kaW5nID0gJmJ1ZmZlcjsKICAgICBzdGF0
ZS5ieXRlc1BlckVsZW1lbnQgPSBieXRlc1BlckVsZW1lbnQ7CiAgICAgc3RhdGUuc2l6ZSA9IHNp
emU7CiAgICAgc3RhdGUudHlwZSA9IHR5cGU7CkBAIC03MiwxNyArNjksMTcgQEAgdm9pZCBXZWJH
TFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4QXR0cmliU3RhdGUoR0MzRHVpbnQgaW5k
ZXgsIEdDM0RzaXplaQogICAgIHN0YXRlLm9mZnNldCA9IG9mZnNldDsKIH0KIAotdm9pZCBXZWJH
TFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZm
ZXI+IGJ1ZmZlcikKK3ZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZl
cihXZWJHTEJ1ZmZlciYgYnVmZmVyKQogewotICAgIGlmIChtX2JvdW5kRWxlbWVudEFycmF5QnVm
ZmVyID09IGJ1ZmZlcikgeworICAgIGlmIChtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID09ICZi
dWZmZXIpIHsKICAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlci0+b25EZXRhY2hlZChj
b250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOwogICAgICAgICBtX2JvdW5kRWxlbWVudEFy
cmF5QnVmZmVyID0gbnVsbHB0cjsKICAgICB9CiAgICAgCiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBtX3ZlcnRleEF0dHJpYlN0YXRlLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIFZlcnRleEF0
dHJpYlN0YXRlJiBzdGF0ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaV07Ci0gICAgICAgIGlmIChz
dGF0ZS5idWZmZXJCaW5kaW5nID09IGJ1ZmZlcikgewotICAgICAgICAgICAgYnVmZmVyLT5vbkRl
dGFjaGVkKGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKSk7CisgICAgICAgIGF1dG8mIHN0
YXRlID0gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpXTsKKyAgICAgICAgaWYgKHN0YXRlLmJ1ZmZlckJp
bmRpbmcgPT0gJmJ1ZmZlcikgeworICAgICAgICAgICAgYnVmZmVyLm9uRGV0YWNoZWQoY29udGV4
dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYg
KCFpICYmICFjb250ZXh0KCktPmlzR0xFUzJDb21wbGlhbnQoKSkgewogICAgICAgICAgICAgICAg
IHN0YXRlLmJ1ZmZlckJpbmRpbmcgPSBjb250ZXh0KCktPm1fdmVydGV4QXR0cmliMEJ1ZmZlcjsK
QEAgLTEwMiw4ICs5OSw3IEBAIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmlu
ZEJ1ZmZlcihQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBidWZmZXIpCiAKIHZvaWQgV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYkRpdmlzb3IoR0MzRHVpbnQgaW5kZXgs
IEdDM0R1aW50IGRpdmlzb3IpCiB7Ci0gICAgVmVydGV4QXR0cmliU3RhdGUmIHN0YXRlID0gbV92
ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF07Ci0gICAgc3RhdGUuZGl2aXNvciA9IGRpdmlzb3I7Cisg
ICAgbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF0uZGl2aXNvciA9IGRpdmlzb3I7CiB9CiAgICAg
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFy
cmF5T2JqZWN0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdEJhc2UuaAppbmRleCAyOTBhYjhkM2Q3MGYzMzdhODYzNWEyMzE2Mjc2ZDkxZGM0
M2Q0YWE5Li4wMGJlNWZiZWZiMWNjZWMzZjRhMTcxYmI0NDNiZTZlMjZkYWY2OWU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFz
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmpl
Y3RCYXNlLmgKQEAgLTMyLDY1ICszMiw0NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlIDogcHVibGljIFdlYkdMQ29udGV4dE9iamVjdCB7
CiBwdWJsaWM6Ci0gICAgZW51bSBWQU9UeXBlIHsKLSAgICAgICAgVkFPVHlwZURlZmF1bHQsCi0g
ICAgICAgIFZBT1R5cGVVc2VyLAotICAgIH07Ci0gICAgCi0gICAgdmlydHVhbCB+V2ViR0xWZXJ0
ZXhBcnJheU9iamVjdEJhc2UoKSB7IH0KKyAgICBlbnVtIGNsYXNzIFR5cGUgeyBEZWZhdWx0LCBV
c2VyIH07CiAKICAgICAvLyBDYWNoZWQgdmFsdWVzIGZvciB2ZXJ0ZXggYXR0cmliIHJhbmdlIGNo
ZWNrcwogICAgIHN0cnVjdCBWZXJ0ZXhBdHRyaWJTdGF0ZSB7Ci0gICAgICAgIFZlcnRleEF0dHJp
YlN0YXRlKCkKLSAgICAgICAgICAgIDogZW5hYmxlZChmYWxzZSkKLSAgICAgICAgICAgICwgYnl0
ZXNQZXJFbGVtZW50KDApCi0gICAgICAgICAgICAsIHNpemUoNCkKLSAgICAgICAgICAgICwgdHlw
ZShHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQpCi0gICAgICAgICAgICAsIG5vcm1hbGl6ZWQoZmFs
c2UpCi0gICAgICAgICAgICAsIHN0cmlkZSgxNikKLSAgICAgICAgICAgICwgb3JpZ2luYWxTdHJp
ZGUoMCkKLSAgICAgICAgICAgICwgb2Zmc2V0KDApCi0gICAgICAgICAgICAsIGRpdmlzb3IoMCkK
LSAgICAgICAgewotICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICBib29sIGlzQm91bmQoKSBj
b25zdCB7IHJldHVybiBidWZmZXJCaW5kaW5nICYmIGJ1ZmZlckJpbmRpbmctPm9iamVjdCgpOyB9
CiAgICAgICAgIGJvb2wgdmFsaWRhdGVCaW5kaW5nKCkgY29uc3QgeyByZXR1cm4gIWVuYWJsZWQg
fHwgaXNCb3VuZCgpOyB9CiAgICAgICAgIAotICAgICAgICBib29sIGVuYWJsZWQ7CisgICAgICAg
IGJvb2wgZW5hYmxlZCB7IGZhbHNlIH07CiAgICAgICAgIFJlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVm
ZmVyQmluZGluZzsKLSAgICAgICAgR0MzRHNpemVpIGJ5dGVzUGVyRWxlbWVudDsKLSAgICAgICAg
R0MzRGludCBzaXplOwotICAgICAgICBHQzNEZW51bSB0eXBlOwotICAgICAgICBib29sIG5vcm1h
bGl6ZWQ7Ci0gICAgICAgIEdDM0RzaXplaSBzdHJpZGU7Ci0gICAgICAgIEdDM0RzaXplaSBvcmln
aW5hbFN0cmlkZTsKLSAgICAgICAgR0MzRGludHB0ciBvZmZzZXQ7Ci0gICAgICAgIEdDM0R1aW50
IGRpdmlzb3I7CisgICAgICAgIEdDM0RzaXplaSBieXRlc1BlckVsZW1lbnQgeyAwIH07CisgICAg
ICAgIEdDM0RpbnQgc2l6ZSB7IDQgfTsKKyAgICAgICAgR0MzRGVudW0gdHlwZSB7IEdyYXBoaWNz
Q29udGV4dDNEOjpGTE9BVCB9OworICAgICAgICBib29sIG5vcm1hbGl6ZWQgeyBmYWxzZSB9Owor
ICAgICAgICBHQzNEc2l6ZWkgc3RyaWRlIHsgMTYgfTsKKyAgICAgICAgR0MzRHNpemVpIG9yaWdp
bmFsU3RyaWRlIHsgMCB9OworICAgICAgICBHQzNEaW50cHRyIG9mZnNldCB7IDAgfTsKKyAgICAg
ICAgR0MzRHVpbnQgZGl2aXNvciB7IDAgfTsKICAgICB9OwotICAgIAotICAgIGJvb2wgaXNEZWZh
dWx0T2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFZBT1R5cGVEZWZhdWx0OyB9Ci0g
ICAgCisKKyAgICBib29sIGlzRGVmYXVsdE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9
PSBUeXBlOjpEZWZhdWx0OyB9CisKICAgICBib29sIGhhc0V2ZXJCZWVuQm91bmQoKSBjb25zdCB7
IHJldHVybiBvYmplY3QoKSAmJiBtX2hhc0V2ZXJCZWVuQm91bmQ7IH0KICAgICB2b2lkIHNldEhh
c0V2ZXJCZWVuQm91bmQoKSB7IG1faGFzRXZlckJlZW5Cb3VuZCA9IHRydWU7IH0KLSAgICAKLSAg
ICBQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBnZXRFbGVtZW50QXJyYXlCdWZmZXIoKSBjb25zdCB7
IHJldHVybiBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyOyB9Ci0gICAgdm9pZCBzZXRFbGVtZW50
QXJyYXlCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4pOwotICAgIAorCisgICAgV2ViR0xC
dWZmZXIqIGdldEVsZW1lbnRBcnJheUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fYm91bmRFbGVt
ZW50QXJyYXlCdWZmZXIuZ2V0KCk7IH0KKyAgICB2b2lkIHNldEVsZW1lbnRBcnJheUJ1ZmZlcihX
ZWJHTEJ1ZmZlciopOworCiAgICAgVmVydGV4QXR0cmliU3RhdGUmIGdldFZlcnRleEF0dHJpYlN0
YXRlKGludCBpbmRleCkgeyByZXR1cm4gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF07IH0KLSAg
ICB2b2lkIHNldFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1aW50LCBHQzNEc2l6ZWksIEdDM0RpbnQs
IEdDM0RlbnVtLCBHQzNEYm9vbGVhbiwgR0MzRHNpemVpLCBHQzNEaW50cHRyLCBQYXNzUmVmUHRy
PFdlYkdMQnVmZmVyPik7Ci0gICAgdm9pZCB1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1
ZmZlcj4pOwotICAgIAorICAgIHZvaWQgc2V0VmVydGV4QXR0cmliU3RhdGUoR0MzRHVpbnQsIEdD
M0RzaXplaSwgR0MzRGludCwgR0MzRGVudW0sIEdDM0Rib29sZWFuLCBHQzNEc2l6ZWksIEdDM0Rp
bnRwdHIsIFdlYkdMQnVmZmVyJik7CisgICAgdm9pZCB1bmJpbmRCdWZmZXIoV2ViR0xCdWZmZXIm
KTsKKwogICAgIHZvaWQgc2V0VmVydGV4QXR0cmliRGl2aXNvcihHQzNEdWludCBpbmRleCwgR0Mz
RHVpbnQgZGl2aXNvcik7CiAKIHByb3RlY3RlZDoKLSAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0
QmFzZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVkFPVHlwZSk7CisgICAgV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdEJhc2UoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFR5cGUpOwogICAg
IHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmpl
Y3QpIG92ZXJyaWRlID0gMDsKLSAgICAKLSAgICBWQU9UeXBlIG1fdHlwZTsKLSAgICBib29sIG1f
aGFzRXZlckJlZW5Cb3VuZDsKKworICAgIFR5cGUgbV90eXBlOworICAgIGJvb2wgbV9oYXNFdmVy
QmVlbkJvdW5kIHsgZmFsc2UgfTsKICAgICBSZWZQdHI8V2ViR0xCdWZmZXI+IG1fYm91bmRFbGVt
ZW50QXJyYXlCdWZmZXI7CiAgICAgVmVjdG9yPFZlcnRleEF0dHJpYlN0YXRlPiBtX3ZlcnRleEF0
dHJpYlN0YXRlOwogfTsKLSAgICAKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
LmNwcAppbmRleCA1ZjNiNjU1N2E3MGI1Y2I4NDJjMGMyZWE3NzgxNzhhZmE2NGMwMWZmLi5hZjU1
NjVjZDk0NDQyNGI1M2I4MzU3ZGIyYzAxOTBiZTFjZTViNDY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcApA
QCAtMzQsMzcgKzM0LDM1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVM+IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmNyZWF0ZShXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIFZBT1R5cGUgdHlwZSkKK1JlZjxXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTPiBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwgVHlwZSB0eXBlKQogewotICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoY3R4LCB0eXBlKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyhjb250ZXh0LCB0
eXBlKSk7CiB9CiAKLVdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OldlYkdMVmVydGV4QXJyYXlP
YmplY3RPRVMoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWQU9UeXBlIHR5cGUpCi0g
ICAgOiBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShjdHgsIHR5cGUpCitXZWJHTFZlcnRleEFy
cmF5T2JqZWN0T0VTOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UmIGNvbnRleHQsIFR5cGUgdHlwZSkKKyAgICA6IFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3RCYXNlKGNvbnRleHQsIHR5cGUpCiB7Ci0gICAgRXh0ZW5zaW9uczNEJiBleHRlbnNpb25zID0g
Y29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpLT5nZXRFeHRlbnNpb25zKCk7Ci0gICAgc3dp
dGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVEZWZhdWx0OgorICAgIHN3aXRjaCAodHlw
ZSkgeworICAgIGNhc2UgVHlwZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVs
dDoKLSAgICAgICAgc2V0T2JqZWN0KGV4dGVuc2lvbnMuY3JlYXRlVmVydGV4QXJyYXlPRVMoKSk7
CisgICAgY2FzZSBUeXBlOjpVc2VyOgorICAgICAgICBzZXRPYmplY3QodGhpcy0+Y29udGV4dCgp
LT5ncmFwaGljc0NvbnRleHQzRCgpLT5nZXRFeHRlbnNpb25zKCkuY3JlYXRlVmVydGV4QXJyYXlP
RVMoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUzo6fldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKQogewotICAgIGRlbGV0ZU9iamVjdCgw
KTsKKyAgICBkZWxldGVPYmplY3QobnVsbHB0cik7CiB9CiAKIHZvaWQgV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdE9FUzo6ZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dDNk
LCBQbGF0Zm9ybTNET2JqZWN0IG9iamVjdCkKIHsKLSAgICBFeHRlbnNpb25zM0QmIGV4dGVuc2lv
bnMgPSBjb250ZXh0M2QtPmdldEV4dGVuc2lvbnMoKTsKICAgICBzd2l0Y2ggKG1fdHlwZSkgewot
ICAgIGNhc2UgVkFPVHlwZURlZmF1bHQ6CisgICAgY2FzZSBUeXBlOjpEZWZhdWx0OgogICAgICAg
ICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBleHRlbnNpb25zLmRlbGV0ZVZlcnRleEFy
cmF5T0VTKG9iamVjdCk7CisgICAgY2FzZSBUeXBlOjpVc2VyOgorICAgICAgICBjb250ZXh0M2Qt
PmdldEV4dGVuc2lvbnMoKS5kZWxldGVWZXJ0ZXhBcnJheU9FUyhvYmplY3QpOwogICAgICAgICBi
cmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaAppbmRleCBkMDhkMjIzZTM1NzA2Njk0ZTkxY2FlNmFj
ZGM4YzRiY2E5ZjE2N2U5Li5mOWEyYTU4ZWMyNzQ3YzJkNTA2MzBiNWI2ZjZjZmYwNWE2MzYwYzU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5
T2JqZWN0T0VTLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUy5oCkBAIC0yNSwxOSArMjUsMTcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlICJXZWJHTEJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkdMQ29udGV4dE9iamVjdC5oIgog
I2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyBmaW5hbCA6IHB1YmxpYyBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYs
IFZBT1R5cGUpOworICAgIHN0YXRpYyBSZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gY3Jl
YXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBlKTsKICAgICB2aXJ0dWFsIH5XZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTKCk7CiBwcml2YXRlOgotICAgIFdlYkdMVmVydGV4QXJyYXlP
YmplY3RPRVMoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFZBT1R5cGUpOwotICAgIHZvaWQg
ZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYsIFR5cGUpOworICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRl
eHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmNwcAppbmRl
eCA5YmNkNDdmNzc5ZTA1MWZhYTQwNTkwYzc5M2ZiMjNmYzUxYjJkZTFlLi42YzczZTMxYWFlZjll
ODYwNDQ5YTk5OGM4ZWU3OWU1NTUzODQwNDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Zv
cm1zL0ZpbGVJY29uTG9hZGVyLmNwcApAQCAtMzcsMTMgKzM3LDEzIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIHZvaWQgRmlsZUljb25Mb2FkZXI6OmludmFsaWRhdGUoKQogewogICAgIEFTU0VSVCht
X2NsaWVudCk7Ci0gICAgbV9jbGllbnQgPSAwOworICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKIH0K
IAotdm9pZCBGaWxlSWNvbkxvYWRlcjo6bm90aWZ5RmluaXNoZWQoUGFzc1JlZlB0cjxJY29uPiBp
Y29uKQordm9pZCBGaWxlSWNvbkxvYWRlcjo6aWNvbkxvYWRlZChSZWZQdHI8SWNvbj4mJiBpY29u
KQogewogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnVwZGF0ZVJlbmRlcmlu
ZyhpY29uKTsKKyAgICAgICAgbV9jbGllbnQtPmljb25Mb2FkZWQoV1RGTW92ZShpY29uKSk7CiB9
CiAKIEZpbGVJY29uTG9hZGVyOjpGaWxlSWNvbkxvYWRlcihGaWxlSWNvbkxvYWRlckNsaWVudCYg
Y2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5oCmluZGV4
IDM1MzEzZGUzYTI4NTM2MGQ5ODY3YjgyYTVhYWNiYzA3ZDA1ZTdiZDUuLjMzNjUyMzhhY2VmN2Q5
Y2I3OTYzZWNkOWIyYWU5N2RmOWFiNGJlMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Zvcm1z
L0ZpbGVJY29uTG9hZGVyLmgKQEAgLTM0LDEzICszNCwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIEZpbGVJY29uTG9hZGVyOwogY2xhc3MgSWNvbjsKIAogY2xhc3MgRmlsZUlj
b25Mb2FkZXJDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkZpbGVJY29uTG9hZGVyQ2xp
ZW50KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJlbmRlcmluZyhQYXNzUmVmUHRyPElj
b24+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGljb25Mb2FkZWQoUmVmUHRyPEljb24+JiYpID0g
MDsKIH07CiAKIGNsYXNzIEZpbGVJY29uTG9hZGVyIHsKQEAgLTQ4LDcgKzQ3LDcgQEAgcHVibGlj
OgogICAgIGV4cGxpY2l0IEZpbGVJY29uTG9hZGVyKEZpbGVJY29uTG9hZGVyQ2xpZW50Jik7CiAK
ICAgICB2b2lkIGludmFsaWRhdGUoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG5vdGlmeUZp
bmlzaGVkKFBhc3NSZWZQdHI8SWNvbj4pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaWNvbkxv
YWRlZChSZWZQdHI8SWNvbj4mJik7CiAKIHByaXZhdGU6CiAgICAgRmlsZUljb25Mb2FkZXJDbGll
bnQqIG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TENvbnN0cnVjdGlvblNpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuY3BwCmluZGV4IDQ2N2ExMzRkMzZiYTUzYTcyYmMyZDcwYTJlYjk3Njgx
ZWI4ZjkzZmIuLmZiMGUxNTViOTA5MmE3NzE1ZWY2NDIyODNkYTYyN2U1ODUwZTk2MjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5j
cHAKQEAgLTE3NCw3ICsxNzQsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZXhlY3V0ZVRhc2soSFRN
TENvbnN0cnVjdGlvblNpdGVUYXNrJiB0YXNrKQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRl
OjphdHRhY2hMYXRlcihDb250YWluZXJOb2RlJiBwYXJlbnQsIFJlZjxOb2RlPiYmIGNoaWxkLCBi
b29sIHNlbGZDbG9zaW5nKQogewotICAgIEFTU0VSVChzY3JpcHRpbmdDb250ZW50SXNBbGxvd2Vk
KG1fcGFyc2VyQ29udGVudFBvbGljeSkgfHwgIWlzPEVsZW1lbnQ+KGNoaWxkLmdldCgpKSB8fCAh
dG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShkb3duY2FzdDxFbGVtZW50PihjaGlsZC5wdHIoKSkp
KTsKKyAgICBBU1NFUlQoc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQ
b2xpY3kpIHx8ICFpczxFbGVtZW50PihjaGlsZC5nZXQoKSkgfHwgIWlzU2NyaXB0RWxlbWVudChk
b3duY2FzdDxFbGVtZW50PihjaGlsZC5nZXQoKSkpKTsKICAgICBBU1NFUlQocGx1Z2luQ29udGVu
dElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpIHx8ICFjaGlsZC0+aXNQbHVnaW5FbGVt
ZW50KCkpOwogCiAgICAgaWYgKHNob3VsZEZvc3RlclBhcmVudCgpKSB7CkBAIC01NDEsNyArNTQx
LDcgQEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0Rm9yZWlnbkVsZW1lbnQoQXRv
bWljSFRNTFRva2VuJiYgdG9rZW4sIGNvbnN0IEEKICAgICBub3RJbXBsZW1lbnRlZCgpOyAvLyBw
YXJzZUVycm9yIHdoZW4geG1sbnMgb3IgeG1sbnM6eGxpbmsgYXJlIHdyb25nLgogCiAgICAgYXV0
byBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCh0b2tlbiwgbmFtZXNwYWNlVVJJKTsKLSAgICBpZiAo
c2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpIHx8ICF0b1Nj
cmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQucHRyKCkpKQorICAgIGlmIChzY3JpcHRpbmdD
b250ZW50SXNBbGxvd2VkKG1fcGFyc2VyQ29udGVudFBvbGljeSkgfHwgIWlzU2NyaXB0RWxlbWVu
dChlbGVtZW50LmdldCgpKSkKICAgICAgICAgYXR0YWNoTGF0ZXIoY3VycmVudE5vZGUoKSwgZWxl
bWVudC5jb3B5UmVmKCksIHRva2VuLnNlbGZDbG9zaW5nKCkpOwogICAgIGlmICghdG9rZW4uc2Vs
ZkNsb3NpbmcoKSkKICAgICAgICAgbV9vcGVuRWxlbWVudHMucHVzaChIVE1MU3RhY2tJdGVtOjpj
cmVhdGUoV1RGTW92ZShlbGVtZW50KSwgV1RGTW92ZSh0b2tlbiksIG5hbWVzcGFjZVVSSSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAK
aW5kZXggYWNlYTBhYWFkMmNkZjQ4MTdhNjVlN2FmOWQ3YzlmZDM1N2RmYzMzNy4uN2UzMDIzOGQz
NWQ3ZmQ2YTVmZDY3ZDdkZDAwMTIwYjMwMDM3NjYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNs
dWRlICJIVE1MVHJlZUJ1aWxkZXIuaCIKICNpbmNsdWRlICJIVE1MVW5rbm93bkVsZW1lbnQuaCIK
ICNpbmNsdWRlICJKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJTY3JpcHRF
bGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjA1LDcgKzIwNiw3IEBAIHZv
aWQgSFRNTERvY3VtZW50UGFyc2VyOjpydW5TY3JpcHRzRm9yUGF1c2VkVHJlZUJ1aWxkZXIoKQog
ICAgICAgICBBU1NFUlQoIW1fdHJlZUJ1aWxkZXItPmhhc1BhcnNlckJsb2NraW5nU2NyaXB0V29y
aygpKTsKICAgICAgICAgLy8gV2Ugd2lsbCBub3QgaGF2ZSBhIHNjcmlwdFJ1bm5lciB3aGVuIHBh
cnNpbmcgYSBEb2N1bWVudEZyYWdtZW50LgogICAgICAgICBpZiAobV9zY3JpcHRSdW5uZXIpCi0g
ICAgICAgICAgICBtX3NjcmlwdFJ1bm5lci0+ZXhlY3V0ZShXVEZNb3ZlKHNjcmlwdEVsZW1lbnQp
LCBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICAgICAgICAgIG1fc2NyaXB0UnVubmVyLT5leGVj
dXRlKHNjcmlwdEVsZW1lbnQucmVsZWFzZU5vbk51bGwoKSwgc2NyaXB0U3RhcnRQb3NpdGlvbik7
CiAgICAgfQogfQogCkBAIC01MDAsNyArNTAxLDcgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6
OndhdGNoRm9yTG9hZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogICAgIC8vIHNldENs
aWVudCB3b3VsZCBjYWxsIG5vdGlmeUZpbmlzaGVkIGlmIHRoZSBsb2FkIHdlcmUgY29tcGxldGUu
CiAgICAgLy8gQ2FsbGVycyBkbyBub3QgZXhwZWN0IHRvIGJlIHJlLWVudGVyZWQgZnJvbSB0aGlz
IGNhbGwsIHNvIHRoZXkgc2hvdWxkCiAgICAgLy8gbm90IGFuIGFscmVhZHktbG9hZGVkIFBlbmRp
bmdTY3JpcHQuCi0gICAgcGVuZGluZ1NjcmlwdC5zZXRDbGllbnQodGhpcyk7CisgICAgcGVuZGlu
Z1NjcmlwdC5zZXRDbGllbnQoKnRoaXMpOwogfQogCiB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6
c3RvcFdhdGNoaW5nRm9yTG9hZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcAppbmRleCBjMjU2
YjQyOTU2Y2U0ODExYTk0ZjBjYjM0YjhlZDcyNTcyNWU4ZjU0Li4xYzhjMTZjMzdlNThiNjYxMjEx
OWMwNTk1MDkzNjg1YzNlY2U0NzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MU2NyaXB0UnVubmVyLmNwcApAQCAtOTksMjkgKzk5LDI4IEBAIGJvb2wgSFRNTFNjcmlw
dFJ1bm5lcjo6aXNQZW5kaW5nU2NyaXB0UmVhZHkoY29uc3QgUGVuZGluZ1NjcmlwdCYgc2NyaXB0
KQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQ
YXJzaW5nQmxvY2tpbmdTY3JpcHQoKQoraW5saW5lIHZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhl
Y3V0ZVBhcnNpbmdCbG9ja2luZ1NjcmlwdCgpCiB7Ci0gICAgQVNTRVJUKG1fZG9jdW1lbnQpOwot
ICAgIEFTU0VSVCghaXNFeGVjdXRpbmdTY3JpcHQoKSk7Ci0gICAgQVNTRVJUKG1fZG9jdW1lbnQt
PmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpKTsKKyAgICBBU1NFUlQobV9wYXJzZXJCbG9ja2luZ1Nj
cmlwdCk7CiAgICAgQVNTRVJUKGlzUGVuZGluZ1NjcmlwdFJlYWR5KCptX3BhcnNlckJsb2NraW5n
U2NyaXB0KSk7CisgICAgQVNTRVJUKCFpc0V4ZWN1dGluZ1NjcmlwdCgpKTsKIAogICAgIEluc2Vy
dGlvblBvaW50UmVjb3JkIGluc2VydGlvblBvaW50UmVjb3JkKG1faG9zdC5pbnB1dFN0cmVhbSgp
KTsKLSAgICBleGVjdXRlUGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQoV1RGTW92ZShtX3Bh
cnNlckJsb2NraW5nU2NyaXB0KSk7CisgICAgZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRj
aEV2ZW50KG1fcGFyc2VyQmxvY2tpbmdTY3JpcHQucmVsZWFzZU5vbk51bGwoKS5nZXQoKSk7CiB9
CiAKLXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRj
aEV2ZW50KFJlZlB0cjxQZW5kaW5nU2NyaXB0PiBwZW5kaW5nU2NyaXB0KQordm9pZCBIVE1MU2Ny
aXB0UnVubmVyOjpleGVjdXRlUGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQoUGVuZGluZ1Nj
cmlwdCYgcGVuZGluZ1NjcmlwdCkKIHsKICAgICAvLyBTdG9wIHdhdGNoaW5nIGxvYWRzIGJlZm9y
ZSBleGVjdXRlU2NyaXB0IHRvIHByZXZlbnQgcmVjdXJzaW9uIGlmIHRoZSBzY3JpcHQgcmVsb2Fk
cyBpdHNlbGYuCi0gICAgaWYgKHBlbmRpbmdTY3JpcHQtPndhdGNoaW5nRm9yTG9hZCgpKQotICAg
ICAgICBzdG9wV2F0Y2hpbmdGb3JMb2FkKCpwZW5kaW5nU2NyaXB0KTsKKyAgICBpZiAocGVuZGlu
Z1NjcmlwdC53YXRjaGluZ0ZvckxvYWQoKSkKKyAgICAgICAgc3RvcFdhdGNoaW5nRm9yTG9hZChw
ZW5kaW5nU2NyaXB0KTsKIAogICAgIGlmICghaXNFeGVjdXRpbmdTY3JpcHQoKSkKICAgICAgICAg
TWljcm90YXNrUXVldWU6Om1haW5UaHJlYWRRdWV1ZSgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3Bv
aW50KCk7CiAKLSAgICBpZiAoYXV0byogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElm
UG9zc2libGUoJnBlbmRpbmdTY3JpcHQtPmVsZW1lbnQoKSkpIHsKKyAgICB7CiAgICAgICAgIE5l
c3RpbmdMZXZlbEluY3JlbWVudGVyIG5lc3RpbmdMZXZlbEluY3JlbWVudGVyKG1fc2NyaXB0TmVz
dGluZ0xldmVsKTsKLSAgICAgICAgc2NyaXB0RWxlbWVudC0+ZXhlY3V0ZVBlbmRpbmdTY3JpcHQo
KnBlbmRpbmdTY3JpcHQpOworICAgICAgICBwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKS5leGVjdXRl
UGVuZGluZ1NjcmlwdChwZW5kaW5nU2NyaXB0KTsKICAgICB9CiAgICAgQVNTRVJUKCFpc0V4ZWN1
dGluZ1NjcmlwdCgpKTsKIH0KQEAgLTE0MCwxNSArMTM5LDE0IEBAIHZvaWQgSFRNTFNjcmlwdFJ1
bm5lcjo6c3RvcFdhdGNoaW5nRm9yTG9hZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQog
CiAvLyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBtYXRjaCAxMC4yLjUuMTEgIkFuIGVuZCB0YWcgd2hv
c2UgdGFnIG5hbWUgaXMgJ3NjcmlwdCciCiAvLyBTY3JpcHQgaGFuZGxpbmcgbGl2ZXMgb3V0c2lk
ZSB0aGUgdHJlZSBidWlsZGVyIHRvIGtlZXAgdGhlIGVhY2ggY2xhc3Mgc2ltcGxlLgotdm9pZCBI
VE1MU2NyaXB0UnVubmVyOjpleGVjdXRlKFBhc3NSZWZQdHI8RWxlbWVudD4gc2NyaXB0RWxlbWVu
dCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQordm9pZCBIVE1MU2Ny
aXB0UnVubmVyOjpleGVjdXRlKFJlZjxTY3JpcHRFbGVtZW50PiYmIGVsZW1lbnQsIGNvbnN0IFRl
eHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKIHsKLSAgICBBU1NFUlQoc2NyaXB0RWxl
bWVudCk7CiAgICAgLy8gRklYTUU6IElmIHNjcmlwdGluZyBpcyBkaXNhYmxlZCwgYWx3YXlzIGp1
c3QgcmV0dXJuLgogCiAgICAgYm9vbCBoYWRQcmVsb2FkU2Nhbm5lciA9IG1faG9zdC5oYXNQcmVs
b2FkU2Nhbm5lcigpOwogCiAgICAgLy8gVHJ5IHRvIGV4ZWN1dGUgdGhlIHNjcmlwdCBnaXZlbiB0
byB1cy4KLSAgICBydW5TY3JpcHQoc2NyaXB0RWxlbWVudC5nZXQoKSwgc2NyaXB0U3RhcnRQb3Np
dGlvbik7CisgICAgcnVuU2NyaXB0KGVsZW1lbnQuZ2V0KCksIHNjcmlwdFN0YXJ0UG9zaXRpb24p
OwogCiAgICAgaWYgKGhhc1BhcnNlckJsb2NraW5nU2NyaXB0KCkpIHsKICAgICAgICAgaWYgKGlz
RXhlY3V0aW5nU2NyaXB0KCkpCkBAIC0yMDEsNyArMTk5LDcgQEAgYm9vbCBIVE1MU2NyaXB0UnVu
bmVyOjpleGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JQYXJzaW5nKCkKICAgICAgICAgICAgIHdhdGNo
Rm9yTG9hZChtX3NjcmlwdHNUb0V4ZWN1dGVBZnRlclBhcnNpbmcuZmlyc3QoKSk7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KLSAgICAgICAgZXhlY3V0ZVBlbmRpbmdTY3Jp
cHRBbmREaXNwYXRjaEV2ZW50KG1fc2NyaXB0c1RvRXhlY3V0ZUFmdGVyUGFyc2luZy50YWtlRmly
c3QoKSk7CisgICAgICAgIGV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChtX3Nj
cmlwdHNUb0V4ZWN1dGVBZnRlclBhcnNpbmcudGFrZUZpcnN0KCkuZ2V0KCkpOwogICAgICAgICAv
LyBGSVhNRTogV2hhdCBpcyB0aGlzIG1fZG9jdW1lbnQgY2hlY2sgZm9yPwogICAgICAgICBpZiAo
IW1fZG9jdW1lbnQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMDksMTggKzIwNywx
NyBAQCBib29sIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclBhcnNp
bmcoKQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IHJl
cXVlc3RQZW5kaW5nU2NyaXB0KEVsZW1lbnQqIHNjcmlwdCkKK3N0YXRpYyBSZWY8UGVuZGluZ1Nj
cmlwdD4gcmVxdWVzdFBlbmRpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCYgc2NyaXB0RWxlbWVudCkK
IHsKLSAgICBhdXRvJiBzY3JpcHRFbGVtZW50ID0gKnRvU2NyaXB0RWxlbWVudElmUG9zc2libGUo
c2NyaXB0KTsKICAgICBBU1NFUlQoc2NyaXB0RWxlbWVudC53aWxsQmVQYXJzZXJFeGVjdXRlZCgp
KTsKICAgICBBU1NFUlQoc2NyaXB0RWxlbWVudC5sb2FkYWJsZVNjcmlwdCgpKTsKLSAgICByZXR1
cm4gUGVuZGluZ1NjcmlwdDo6Y3JlYXRlKCpzY3JpcHQsICpzY3JpcHRFbGVtZW50LmxvYWRhYmxl
U2NyaXB0KCkpOworICAgIHJldHVybiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxlbWVu
dCwgKnNjcmlwdEVsZW1lbnQubG9hZGFibGVTY3JpcHQoKSk7CiB9CiAKLXZvaWQgSFRNTFNjcmlw
dFJ1bm5lcjo6cmVxdWVzdFBhcnNpbmdCbG9ja2luZ1NjcmlwdChFbGVtZW50KiBlbGVtZW50KQor
dm9pZCBIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KFNjcmlw
dEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQpCiB7CiAgICAgQVNTRVJUKCFtX3BhcnNlckJsb2NraW5n
U2NyaXB0KTsKLSAgICBtX3BhcnNlckJsb2NraW5nU2NyaXB0ID0gcmVxdWVzdFBlbmRpbmdTY3Jp
cHQoZWxlbWVudCk7CisgICAgbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCA9IHJlcXVlc3RQZW5kaW5n
U2NyaXB0KHNjcmlwdEVsZW1lbnQpOwogICAgIEFTU0VSVChtX3BhcnNlckJsb2NraW5nU2NyaXB0
LT5uZWVkc0xvYWRpbmcoKSk7CiAKICAgICAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgYSBsb2FkIGNh
bGxiYWNrIGlmIExvYWRhYmxlU2NyaXB0IGlzIG5vdCBhbHJlYWR5CkBAIC0yMzAsNTUgKzIyNyw0
NCBAQCB2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQo
RWxlbWVudCogZWxlbWVudCkKICAgICAgICAgd2F0Y2hGb3JMb2FkKCptX3BhcnNlckJsb2NraW5n
U2NyaXB0KTsKIH0KIAotdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0RGVmZXJyZWRTY3Jp
cHQoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6cmVxdWVzdERlZmVy
cmVkU2NyaXB0KFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQpCiB7Ci0gICAgYXV0byBwZW5k
aW5nU2NyaXB0ID0gcmVxdWVzdFBlbmRpbmdTY3JpcHQoZWxlbWVudCk7CisgICAgYXV0byBwZW5k
aW5nU2NyaXB0ID0gcmVxdWVzdFBlbmRpbmdTY3JpcHQoc2NyaXB0RWxlbWVudCk7CiAgICAgQVNT
RVJUKHBlbmRpbmdTY3JpcHQtPm5lZWRzTG9hZGluZygpKTsKICAgICBtX3NjcmlwdHNUb0V4ZWN1
dGVBZnRlclBhcnNpbmcuYXBwZW5kKFdURk1vdmUocGVuZGluZ1NjcmlwdCkpOwogfQogCiAvLyBU
aGlzIG1ldGhvZCBpcyBtZWFudCB0byBtYXRjaCB0aGUgSFRNTDUgZGVmaW5pdGlvbiBvZiAicnVu
bmluZyBhIHNjcmlwdCIKIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9j
dXJyZW50LXdvcmsvbXVsdGlwYWdlL3NjcmlwdGluZy0xLmh0bWwjcnVubmluZy1hLXNjcmlwdAot
dm9pZCBIVE1MU2NyaXB0UnVubmVyOjpydW5TY3JpcHQoRWxlbWVudCogc2NyaXB0LCBjb25zdCBU
ZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCit2b2lkIEhUTUxTY3JpcHRSdW5uZXI6
OnJ1blNjcmlwdChTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVtZW50LCBjb25zdCBUZXh0UG9zaXRp
b24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiB7CiAgICAgQVNTRVJUKG1fZG9jdW1lbnQpOwogICAg
IEFTU0VSVCghaGFzUGFyc2VyQmxvY2tpbmdTY3JpcHQoKSk7Ci0gICAgewotICAgICAgICBTY3Jp
cHRFbGVtZW50KiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShzY3Jp
cHQpOwotCi0gICAgICAgIC8vIFRoaXMgY29udGFpbnMgYm90aCBhbmQgQVNTRVJUSU9OIGFuZCBh
IG51bGwgY2hlY2sgc2luY2Ugd2Ugc2hvdWxkIG5vdAotICAgICAgICAvLyBiZSBnZXR0aW5nIGlu
dG8gdGhlIGNhc2Ugb2YgYSBudWxsIHNjcmlwdCBlbGVtZW50LCBidXQgc2VlbSB0byBiZSBmcm9t
Ci0gICAgICAgIC8vIHRpbWUgdG8gdGltZS4gVGhlIGFzc2VydGlvbiBpcyBsZWZ0IGluIHRvIGhl
bHAgZmluZCB0aG9zZSBjYXNlcyBhbmQKLSAgICAgICAgLy8gaXMgYmVpbmcgdHJhY2tlZCBieSA8
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNTU5Pi4KLSAgICAgICAg
QVNTRVJUKHNjcmlwdEVsZW1lbnQpOwotICAgICAgICBpZiAoIXNjcmlwdEVsZW1lbnQpCi0gICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgLy8gRklYTUU6IFRoaXMgbWF5IGJlIHRvbyBhZ3Jl
c3NpdmUgYXMgd2UgYWx3YXlzIGRlbGl2ZXIgbXV0YXRpb25zIGF0Ci0gICAgICAgIC8vIGV2ZXJ5
IHNjcmlwdCBlbGVtZW50LCBldmVuIGlmIGl0J3Mgbm90IHJlYWR5IHRvIGV4ZWN1dGUgeWV0LiBU
aGVyZSdzCi0gICAgICAgIC8vIHVuZm9ydHVhbnRlbHkgbm8gb2J2aW91cyB3YXkgdG8gdGVsbCBp
ZiBwcmVwYXJlU2NyaXB0IGlzIGdvaW5nIHRvCi0gICAgICAgIC8vIGV4ZWN1dGUgdGhlIHNjcmlw
dCBmcm9tIG91dCBoZXJlLgotICAgICAgICBpZiAoIWlzRXhlY3V0aW5nU2NyaXB0KCkpCi0gICAg
ICAgICAgICBNaWNyb3Rhc2tRdWV1ZTo6bWFpblRocmVhZFF1ZXVlKCkucGVyZm9ybU1pY3JvdGFz
a0NoZWNrcG9pbnQoKTsKLQotICAgICAgICBJbnNlcnRpb25Qb2ludFJlY29yZCBpbnNlcnRpb25Q
b2ludFJlY29yZChtX2hvc3QuaW5wdXRTdHJlYW0oKSk7Ci0gICAgICAgIE5lc3RpbmdMZXZlbElu
Y3JlbWVudGVyIG5lc3RpbmdMZXZlbEluY3JlbWVudGVyKG1fc2NyaXB0TmVzdGluZ0xldmVsKTsK
LQotICAgICAgICBzY3JpcHRFbGVtZW50LT5wcmVwYXJlU2NyaXB0KHNjcmlwdFN0YXJ0UG9zaXRp
b24pOwogCi0gICAgICAgIGlmICghc2NyaXB0RWxlbWVudC0+d2lsbEJlUGFyc2VyRXhlY3V0ZWQo
KSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTogVGhpcyBtYXkgYmUgdG9vIGFn
cmVzc2l2ZSBhcyB3ZSBhbHdheXMgZGVsaXZlciBtdXRhdGlvbnMgYXQKKyAgICAvLyBldmVyeSBz
Y3JpcHQgZWxlbWVudCwgZXZlbiBpZiBpdCdzIG5vdCByZWFkeSB0byBleGVjdXRlIHlldC4gVGhl
cmUncworICAgIC8vIHVuZm9ydHVhbnRlbHkgbm8gb2J2aW91cyB3YXkgdG8gdGVsbCBpZiBwcmVw
YXJlU2NyaXB0IGlzIGdvaW5nIHRvCisgICAgLy8gZXhlY3V0ZSB0aGUgc2NyaXB0IGZyb20gb3V0
IGhlcmUuCisgICAgaWYgKCFpc0V4ZWN1dGluZ1NjcmlwdCgpKQorICAgICAgICBNaWNyb3Rhc2tR
dWV1ZTo6bWFpblRocmVhZFF1ZXVlKCkucGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKIAot
ICAgICAgICBpZiAoc2NyaXB0RWxlbWVudC0+d2lsbEV4ZWN1dGVXaGVuRG9jdW1lbnRGaW5pc2hl
ZFBhcnNpbmcoKSkKLSAgICAgICAgICAgIHJlcXVlc3REZWZlcnJlZFNjcmlwdChzY3JpcHQpOwot
ICAgICAgICBlbHNlIGlmIChzY3JpcHRFbGVtZW50LT5yZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgp
KSB7Ci0gICAgICAgICAgICBpZiAobV9zY3JpcHROZXN0aW5nTGV2ZWwgPT0gMSkKLSAgICAgICAg
ICAgICAgICBtX3BhcnNlckJsb2NraW5nU2NyaXB0ID0gUGVuZGluZ1NjcmlwdDo6Y3JlYXRlKCpz
Y3JpcHQsIHNjcmlwdFN0YXJ0UG9zaXRpb24pOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgIHNjcmlwdEVsZW1lbnQtPmV4ZWN1dGVDbGFzc2ljU2NyaXB0KFNjcmlwdFNvdXJjZUNv
ZGUoc2NyaXB0LT50ZXh0Q29udGVudCgpLCBkb2N1bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlvbiht
X2RvY3VtZW50KSwgc2NyaXB0U3RhcnRQb3NpdGlvbikpOwotICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgIHJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQoc2NyaXB0KTsKLSAgICB9CisgICAg
SW5zZXJ0aW9uUG9pbnRSZWNvcmQgaW5zZXJ0aW9uUG9pbnRSZWNvcmQobV9ob3N0LmlucHV0U3Ry
ZWFtKCkpOworICAgIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyIG5lc3RpbmdMZXZlbEluY3JlbWVu
dGVyKG1fc2NyaXB0TmVzdGluZ0xldmVsKTsKKworICAgIHNjcmlwdEVsZW1lbnQucHJlcGFyZVNj
cmlwdChzY3JpcHRTdGFydFBvc2l0aW9uKTsKKworICAgIGlmICghc2NyaXB0RWxlbWVudC53aWxs
QmVQYXJzZXJFeGVjdXRlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoc2NyaXB0RWxl
bWVudC53aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlzaGVkUGFyc2luZygpKQorICAgICAgICBy
ZXF1ZXN0RGVmZXJyZWRTY3JpcHQoc2NyaXB0RWxlbWVudCk7CisgICAgZWxzZSBpZiAoc2NyaXB0
RWxlbWVudC5yZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgpKSB7CisgICAgICAgIGlmIChtX3Njcmlw
dE5lc3RpbmdMZXZlbCA9PSAxKQorICAgICAgICAgICAgbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCA9
IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShzY3JpcHRFbGVtZW50LCBzY3JpcHRTdGFydFBvc2l0aW9u
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2NyaXB0RWxlbWVudC5leGVjdXRlQ2xhc3Np
Y1NjcmlwdChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdEVsZW1lbnQuZWxlbWVudCgpLnRleHRDb250
ZW50KCksIGRvY3VtZW50VVJMRm9yU2NyaXB0RXhlY3V0aW9uKG1fZG9jdW1lbnQpLCBzY3JpcHRT
dGFydFBvc2l0aW9uKSk7CisgICAgfSBlbHNlCisgICAgICAgIHJlcXVlc3RQYXJzaW5nQmxvY2tp
bmdTY3JpcHQoc2NyaXB0RWxlbWVudCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuaAppbmRleCA3NjgwMGQ3MTNjZTdkMmU0NjM1YTY2MjM1
YjE2N2MxOWY0NTdjODAzLi5jM2UxNTQ3MjRjNGQ2MWRhNzRmYWFlYzEzN2M5ZGIwMWM0NjRhZWQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5oCkBA
IC0zMiw5ICszMiw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50Owot
Y2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgSFRNTFNjcmlwdFJ1bm5lckhvc3Q7
CitjbGFzcyBTY3JpcHRFbGVtZW50OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIAogY2xhc3Mg
SFRNTFNjcmlwdFJ1bm5lciB7CkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRl
dGFjaCgpOwogCiAgICAgLy8gUHJvY2Vzc2VzIHRoZSBwYXNzZWQgaW4gc2NyaXB0IGFuZCBhbnkg
cGVuZGluZyBzY3JpcHRzIGlmIHBvc3NpYmxlLgotICAgIHZvaWQgZXhlY3V0ZShQYXNzUmVmUHRy
PEVsZW1lbnQ+IHNjcmlwdFRvUHJvY2VzcywgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFy
dFBvc2l0aW9uKTsKKyAgICB2b2lkIGV4ZWN1dGUoUmVmPFNjcmlwdEVsZW1lbnQ+JiYsIGNvbnN0
IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CiAKICAgICB2b2lkIGV4ZWN1dGVT
Y3JpcHRzV2FpdGluZ0ZvckxvYWQoUGVuZGluZ1NjcmlwdCYpOwogICAgIGJvb2wgaGFzU2NyaXB0
c1dhaXRpbmdGb3JTdHlsZXNoZWV0cygpIGNvbnN0IHsgcmV0dXJuIG1faGFzU2NyaXB0c1dhaXRp
bmdGb3JTdHlsZXNoZWV0czsgfQpAQCAtNjAsMTMgKzYwLDEzIEBAIHByaXZhdGU6CiAgICAgRnJh
bWUqIGZyYW1lKCkgY29uc3Q7CiAKICAgICB2b2lkIGV4ZWN1dGVQYXJzaW5nQmxvY2tpbmdTY3Jp
cHQoKTsKLSAgICB2b2lkIGV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChSZWZQ
dHI8UGVuZGluZ1NjcmlwdD4pOworICAgIHZvaWQgZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNw
YXRjaEV2ZW50KFBlbmRpbmdTY3JpcHQmKTsKICAgICB2b2lkIGV4ZWN1dGVQYXJzaW5nQmxvY2tp
bmdTY3JpcHRzKCk7CiAKLSAgICB2b2lkIHJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQoRWxl
bWVudCopOwotICAgIHZvaWQgcmVxdWVzdERlZmVycmVkU2NyaXB0KEVsZW1lbnQqKTsKKyAgICB2
b2lkIHJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCYpOworICAgIHZv
aWQgcmVxdWVzdERlZmVycmVkU2NyaXB0KFNjcmlwdEVsZW1lbnQmKTsKIAotICAgIHZvaWQgcnVu
U2NyaXB0KEVsZW1lbnQqLCBjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24p
OworICAgIHZvaWQgcnVuU2NyaXB0KFNjcmlwdEVsZW1lbnQmLCBjb25zdCBUZXh0UG9zaXRpb24m
IHNjcmlwdFN0YXJ0UG9zaXRpb24pOwogCiAgICAgLy8gSGVscGVycyBmb3IgZGVhbGluZyB3aXRo
IEhUTUxTY3JpcHRSdW5uZXJIb3N0CiAgICAgdm9pZCB3YXRjaEZvckxvYWQoUGVuZGluZ1Njcmlw
dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAK
aW5kZXggNDUyNGMxZWFhY2ZkOTMyOTAyNmM2NmNiNzJhYjU0YjAwOGY2MmE0Yy4uNjc2YWI5ZWY2
YjgxYWNmNjA0YTFhMzcwYTlkMDYwYzlhMDAzZDEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCkBAIC0zNSwxMCArMzUsMTIgQEAKICNpbmNs
dWRlICJIVE1MT3B0R3JvdXBFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCisjaW5jbHVkZSAiSFRNTFNjcmlwdEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGFibGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNDdXN0
b21FbGVtZW50SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiU1ZHU2NyaXB0RWxlbWVudC5oIgog
I2luY2x1ZGUgIlhMaW5rTmFtZXMuaCIKICNpbmNsdWRlICJYTUxOU05hbWVzLmgiCiAjaW5jbHVk
ZSAiWE1MTmFtZXMuaCIKQEAgLTU3LDEwICs1OSwxMiBAQCBDdXN0b21FbGVtZW50Q29uc3RydWN0
aW9uRGF0YTo6Q3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGEoUmVmPEpTQ3VzdG9tRWxlbWVu
dAogICAgIDogZWxlbWVudEludGVyZmFjZShXVEZNb3ZlKGN1c3RvbUVsZW1lbnRJbnRlcmZhY2Up
KQogICAgICwgbmFtZShuYW1lKQogICAgICwgYXR0cmlidXRlcyhXVEZNb3ZlKGF0dHJpYnV0ZXMp
KQoteyB9Cit7Cit9CiAKIEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhOjp+Q3VzdG9tRWxl
bWVudENvbnN0cnVjdGlvbkRhdGEoKQoteyB9Cit7Cit9CiAKIG5hbWVzcGFjZSB7CiAKQEAgLTMx
OCw3ICszMjIsNyBAQCBpbmxpbmUgSFRNTFN0YWNrSXRlbSYgSFRNTFRyZWVCdWlsZGVyOjpGcmFn
bWVudFBhcnNpbmdDb250ZXh0Ojpjb250ZXh0RWxlbWVudFN0YQogICAgIHJldHVybiAqbV9jb250
ZXh0RWxlbWVudFN0YWNrSXRlbTsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+IEhUTUxUcmVlQnVpbGRl
cjo6dGFrZVNjcmlwdFRvUHJvY2VzcyhUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24p
CitSZWZQdHI8U2NyaXB0RWxlbWVudD4gSFRNTFRyZWVCdWlsZGVyOjp0YWtlU2NyaXB0VG9Qcm9j
ZXNzKFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKIHsKICAgICBBU1NFUlQoIW1f
ZGVzdHJveWVkKTsKIApAQCAtMjA1Nyw3ICsyMDYxLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuJiYgdG9rZW4pCiAgICAgICAgICAgICAvLyBQ
YXVzZSBvdXJzZWx2ZXMgc28gdGhhdCBwYXJzaW5nIHN0b3BzIHVudGlsIHRoZSBzY3JpcHQgY2Fu
IGJlIHByb2Nlc3NlZCBieSB0aGUgY2FsbGVyLgogICAgICAgICAgICAgQVNTRVJUKG1fdHJlZS5j
dXJyZW50U3RhY2tJdGVtKCkuaGFzVGFnTmFtZShzY3JpcHRUYWcpKTsKICAgICAgICAgICAgIGlm
IChzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKG1fdHJlZS5wYXJzZXJDb250ZW50UG9saWN5KCkp
KQotICAgICAgICAgICAgICAgIG1fc2NyaXB0VG9Qcm9jZXNzID0gJm1fdHJlZS5jdXJyZW50RWxl
bWVudCgpOworICAgICAgICAgICAgICAgIG1fc2NyaXB0VG9Qcm9jZXNzID0gJmRvd25jYXN0PEhU
TUxTY3JpcHRFbGVtZW50PihtX3RyZWUuY3VycmVudEVsZW1lbnQoKSk7CiAgICAgICAgICAgICBt
X3RyZWUub3BlbkVsZW1lbnRzKCkucG9wKCk7CiAgICAgICAgICAgICBtX2luc2VydGlvbk1vZGUg
PSBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZTsKIApAQCAtMjc4Nyw3ICsyNzkxLDcgQEAgdm9pZCBI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQoQXRvbWljSFRNTFRv
a2VuJiYgdG9rZW4pCiAKICAgICAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBTVkdOYW1lczo6c2Ny
aXB0VGFnICYmIG1fdHJlZS5jdXJyZW50U3RhY2tJdGVtKCkuaGFzVGFnTmFtZShTVkdOYW1lczo6
c2NyaXB0VGFnKSkgewogICAgICAgICAgICAgaWYgKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQo
bV90cmVlLnBhcnNlckNvbnRlbnRQb2xpY3koKSkpCi0gICAgICAgICAgICAgICAgbV9zY3JpcHRU
b1Byb2Nlc3MgPSAmbV90cmVlLmN1cnJlbnRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgbV9z
Y3JpcHRUb1Byb2Nlc3MgPSAmZG93bmNhc3Q8U1ZHU2NyaXB0RWxlbWVudD4obV90cmVlLmN1cnJl
bnRFbGVtZW50KCkpOwogICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLnBvcCgpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxUcmVlQnVpbGRlci5oCmluZGV4IGQ3MDkyOWY2MGE2MGJjNjU5NmY2NzkwY2QwMGRl
ZjE2Zjk4NTU5YTUuLjIxM2JkMjc5NGY4MzdhZjgyMDQwYmU0YTZjNzQ0ZmU2ZGZjODQzYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCkBAIC0xLDYg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1
LDYgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBKU0N1c3RvbUVsZW1lbnRJ
bnRlcmZhY2U7CiBjbGFzcyBIVE1MRG9jdW1lbnRQYXJzZXI7CitjbGFzcyBTY3JpcHRFbGVtZW50
OwogCiBzdHJ1Y3QgQ3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGEgewogICAgIEN1c3RvbUVs
ZW1lbnRDb25zdHJ1Y3Rpb25EYXRhKFJlZjxKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U+JiYsIGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPEF0dHJpYnV0ZT4mJik7CkBAIC02Miw3ICs2
Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1BhcnNlckJsb2NraW5nU2NyaXB0V29yaygpIGNv
bnN0OwogCiAgICAgLy8gTXVzdCBiZSBjYWxsZWQgdG8gdGFrZSB0aGUgcGFyc2VyLWJsb2NraW5n
IHNjcmlwdCBiZWZvcmUgY2FsbGluZyB0aGUgcGFyc2VyIGFnYWluLgotICAgIFJlZlB0cjxFbGVt
ZW50PiB0YWtlU2NyaXB0VG9Qcm9jZXNzKFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlv
bik7CisgICAgUmVmUHRyPFNjcmlwdEVsZW1lbnQ+IHRha2VTY3JpcHRUb1Byb2Nlc3MoVGV4dFBv
c2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxDdXN0
b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YT4gdGFrZUN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25E
YXRhKCkgeyByZXR1cm4gV1RGTW92ZShtX2N1c3RvbUVsZW1lbnRUb0NvbnN0cnVjdCk7IH0KICAg
ICB2b2lkIGRpZENyZWF0ZUN1c3RvbU9yQ2FsbGJhY2tFbGVtZW50KFJlZjxFbGVtZW50PiYmLCBD
dXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YSYpOwpAQCAtMjA2LDcgKzIwNyw3IEBAIHByaXZh
dGU6CiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4
Lmh0bWwjY29uY2VwdC1wZW5kaW5nLXRhYmxlLWNoYXItdG9rZW5zCiAgICAgU3RyaW5nQnVpbGRl
ciBtX3BlbmRpbmdUYWJsZUNoYXJhY3RlcnM7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4gbV9zY3Jp
cHRUb1Byb2Nlc3M7IC8vIDxzY3JpcHQ+IHRhZyB3aGljaCBuZWVkcyBwcm9jZXNzaW5nIGJlZm9y
ZSByZXN1bWluZyB0aGUgcGFyc2VyLgorICAgIFJlZlB0cjxTY3JpcHRFbGVtZW50PiBtX3Njcmlw
dFRvUHJvY2VzczsgLy8gPHNjcmlwdD4gdGFnIHdoaWNoIG5lZWRzIHByb2Nlc3NpbmcgYmVmb3Jl
IHJlc3VtaW5nIHRoZSBwYXJzZXIuCiAgICAgVGV4dFBvc2l0aW9uIG1fc2NyaXB0VG9Qcm9jZXNz
U3RhcnRQb3NpdGlvbjsgLy8gU3RhcnRpbmcgbGluZSBudW1iZXIgb2YgdGhlIHNjcmlwdCB0YWcg
bmVlZGluZyBwcm9jZXNzaW5nLgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEN1c3RvbUVsZW1lbnRD
b25zdHJ1Y3Rpb25EYXRhPiBtX2N1c3RvbUVsZW1lbnRUb0NvbnN0cnVjdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IGFkNWY2
ZTc4ZTM4MWFhZGNjYzZiOTFiYTk3Y2E0MjU1ODA0Y2I5NzAuLmY5ODgyNWIyMDYwOTdmMmM0YThj
MWZlODRiNDBiNmQ4ZjBhNWVhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvVGV4dERvY3VtZW50UGFyc2VyLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIlRl
eHREb2N1bWVudFBhcnNlci5oIgogCiAjaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgiCisjaW5j
bHVkZSAiU2NyaXB0RWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwCmluZGV4IDNm
NDNlMDRkNWRlZWI3ZDI5MzExNmU4ZGVjMjNjN2IwYmY3ZmI3NzkuLmYyOTc0NGJmZjE3NDVjOWIx
NjA5ZDRmODUzMDgxNWY5NDliZTU0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcApAQCAtNjksMjIgKzY5LDIyIEBAIHN0YXRpYyBp
bmxpbmUgU3RyaW5nIGJ1aWxkQ29uc29sZUVycm9yKGNvbnN0IFhTU0luZm8mIHhzc0luZm8pCiAg
ICAgcmV0dXJuIG1lc3NhZ2UudG9TdHJpbmcoKTsKIH0KIAotUGFzc1JlZlB0cjxGb3JtRGF0YT4g
WFNTQXVkaXRvckRlbGVnYXRlOjpnZW5lcmF0ZVZpb2xhdGlvblJlcG9ydChjb25zdCBYU1NJbmZv
JiB4c3NJbmZvKQorUmVmPEZvcm1EYXRhPiBYU1NBdWRpdG9yRGVsZWdhdGU6OmdlbmVyYXRlVmlv
bGF0aW9uUmVwb3J0KGNvbnN0IFhTU0luZm8mIHhzc0luZm8pCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKIAotICAgIEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciA9IG1fZG9jdW1lbnQu
ZnJhbWUoKS0+bG9hZGVyKCk7CisgICAgYXV0byYgZnJhbWVMb2FkZXIgPSBtX2RvY3VtZW50LmZy
YW1lKCktPmxvYWRlcigpOwogICAgIFN0cmluZyBodHRwQm9keTsKICAgICBpZiAoZnJhbWVMb2Fk
ZXIuZG9jdW1lbnRMb2FkZXIoKSkgewotICAgICAgICBpZiAoRm9ybURhdGEqIGZvcm1EYXRhID0g
ZnJhbWVMb2FkZXIuZG9jdW1lbnRMb2FkZXIoKS0+b3JpZ2luYWxSZXF1ZXN0KCkuaHR0cEJvZHko
KSkKKyAgICAgICAgaWYgKGF1dG8qIGZvcm1EYXRhID0gZnJhbWVMb2FkZXIuZG9jdW1lbnRMb2Fk
ZXIoKS0+b3JpZ2luYWxSZXF1ZXN0KCkuaHR0cEJvZHkoKSkKICAgICAgICAgICAgIGh0dHBCb2R5
ID0gZm9ybURhdGEtPmZsYXR0ZW5Ub1N0cmluZygpOwogICAgIH0KIAotICAgIFJlZjxJbnNwZWN0
b3JPYmplY3Q+IHJlcG9ydERldGFpbHMgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAg
IGF1dG8gcmVwb3J0RGV0YWlscyA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAgICAgcmVw
b3J0RGV0YWlscy0+c2V0U3RyaW5nKCJyZXF1ZXN0LXVybCIsIHhzc0luZm8ubV9vcmlnaW5hbFVS
TCk7CiAgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJyZXF1ZXN0LWJvZHkiLCBodHRwQm9k
eSk7CiAKLSAgICBSZWY8SW5zcGVjdG9yT2JqZWN0PiByZXBvcnRPYmplY3QgPSBJbnNwZWN0b3JP
YmplY3Q6OmNyZWF0ZSgpOworICAgIGF1dG8gcmVwb3J0T2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0
OjpjcmVhdGUoKTsKICAgICByZXBvcnRPYmplY3QtPnNldE9iamVjdCgieHNzLXJlcG9ydCIsIFdU
Rk1vdmUocmVwb3J0RGV0YWlscykpOwogCiAgICAgcmV0dXJuIEZvcm1EYXRhOjpjcmVhdGUocmVw
b3J0T2JqZWN0LT50b0pTT05TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmgKaW5kZXggMGFlMjc0YjMxOTJk
ZmE0N2E2M2NlOTZhMmE5Nzk0NjVlYzg4MDhlZi4uOTdjODBkYzZlMzUyYjlkZWI5MTdjMzIzZjlj
MDYwNTMyM2ZlNTc0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNT
QXVkaXRvckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVk
aXRvckRlbGVnYXRlLmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVw
b3J0VVJMKGNvbnN0IFVSTCYgdXJsKSB7IG1fcmVwb3J0VVJMID0gdXJsOyB9CiAKIHByaXZhdGU6
Ci0gICAgUGFzc1JlZlB0cjxGb3JtRGF0YT4gZ2VuZXJhdGVWaW9sYXRpb25SZXBvcnQoY29uc3Qg
WFNTSW5mbyYpOworICAgIFJlZjxGb3JtRGF0YT4gZ2VuZXJhdGVWaW9sYXRpb25SZXBvcnQoY29u
c3QgWFNTSW5mbyYpOwogCiAgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CiAgICAgYm9vbCBtX2Rp
ZFNlbmROb3RpZmljYXRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9BdWRpb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5j
cHAKaW5kZXggOGMzNTZmNzkxNWQ0OThjZTM0MTJmNzk4ODJmOGQwNjBiMDg1NjE5Mi4uNTFhYmMz
NmZiYzBjZGM5MmNjOWY1YzljOGZkYTQxNzNjYTk1ZTA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2suY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMwLDEzICszMCwxMCBAQAog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCiAKICNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCi0KLSNpbmNs
dWRlICJBdWRpb1RyYWNrTGlzdC5oIgotI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCkBAIC03
OCwxMCArNzUsMTAgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBBdWRpb1RyYWNrOjpjb21tZW50YXJ5
S2V5d29yZCgpCiAgICAgcmV0dXJuIGNvbW1lbnRhcnk7CiB9CiAKLUF1ZGlvVHJhY2s6OkF1ZGlv
VHJhY2soQXVkaW9UcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2
YXRlPiB0cmFja1ByaXZhdGUpCi0gICAgOiBNZWRpYVRyYWNrQmFzZShNZWRpYVRyYWNrQmFzZTo6
QXVkaW9UcmFjaywgdHJhY2tQcml2YXRlLT5pZCgpLCB0cmFja1ByaXZhdGUtPmxhYmVsKCksIHRy
YWNrUHJpdmF0ZS0+bGFuZ3VhZ2UoKSkKLSAgICAsIG1fZW5hYmxlZCh0cmFja1ByaXZhdGUtPmVu
YWJsZWQoKSkKLSAgICAsIG1fY2xpZW50KGNsaWVudCkKK0F1ZGlvVHJhY2s6OkF1ZGlvVHJhY2so
QXVkaW9UcmFja0NsaWVudCYgY2xpZW50LCBBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRl
KQorICAgIDogTWVkaWFUcmFja0Jhc2UoTWVkaWFUcmFja0Jhc2U6OkF1ZGlvVHJhY2ssIHRyYWNr
UHJpdmF0ZS5pZCgpLCB0cmFja1ByaXZhdGUubGFiZWwoKSwgdHJhY2tQcml2YXRlLmxhbmd1YWdl
KCkpCisgICAgLCBtX2VuYWJsZWQodHJhY2tQcml2YXRlLmVuYWJsZWQoKSkKKyAgICAsIG1fY2xp
ZW50KCZjbGllbnQpCiAgICAgLCBtX3ByaXZhdGUodHJhY2tQcml2YXRlKQogewogICAgIG1fcHJp
dmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwpAQCAtOTMsMTkgKzkwLDE2IEBAIEF1ZGlvVHJhY2s6On5B
dWRpb1RyYWNrKCkKICAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKIH0KIAotdm9p
ZCBBdWRpb1RyYWNrOjpzZXRQcml2YXRlKFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+IHRy
YWNrUHJpdmF0ZSkKK3ZvaWQgQXVkaW9UcmFjazo6c2V0UHJpdmF0ZShBdWRpb1RyYWNrUHJpdmF0
ZSYgdHJhY2tQcml2YXRlKQogewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIEFTU0VSVCh0
cmFja1ByaXZhdGUpOwotCi0gICAgaWYgKG1fcHJpdmF0ZSA9PSB0cmFja1ByaXZhdGUpCisgICAg
aWYgKG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQogICAgICAgICByZXR1cm47CiAK
ICAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKICAgICBtX3ByaXZhdGUgPSB0cmFj
a1ByaXZhdGU7CisgICAgbV9wcml2YXRlLT5zZXRFbmFibGVkKG1fZW5hYmxlZCk7CiAgICAgbV9w
cml2YXRlLT5zZXRDbGllbnQodGhpcyk7CiAKLSAgICBtX3ByaXZhdGUtPnNldEVuYWJsZWQobV9l
bmFibGVkKTsKICAgICB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIH0KIApAQCAtMTE5LDU0ICsx
MTMsNDcgQEAgYm9vbCBBdWRpb1RyYWNrOjppc1ZhbGlkS2luZChjb25zdCBBdG9taWNTdHJpbmcm
IHZhbHVlKSBjb25zdAogICAgICAgICB8fCB2YWx1ZSA9PSBjb21tZW50YXJ5S2V5d29yZCgpOwog
fQogCi12b2lkIEF1ZGlvVHJhY2s6OnNldEVuYWJsZWQoY29uc3QgYm9vbCBlbmFibGVkKQordm9p
ZCBBdWRpb1RyYWNrOjpzZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBpZiAobV9lbmFi
bGVkID09IGVuYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZW5hYmxlZCA9IGVuYWJs
ZWQ7CiAgICAgbV9wcml2YXRlLT5zZXRFbmFibGVkKGVuYWJsZWQpOwotCi0gICAgaWYgKG1fY2xp
ZW50KQotICAgICAgICBtX2NsaWVudC0+YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKHRoaXMpOwog
fQogCi1zaXplX3QgQXVkaW9UcmFjazo6aW5iYW5kVHJhY2tJbmRleCgpCitzaXplX3QgQXVkaW9U
cmFjazo6aW5iYW5kVHJhY2tJbmRleCgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7
CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dHJhY2tJbmRleCgpOwogfQogCi12b2lkIEF1ZGlvVHJh
Y2s6OmVuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIGJvb2wg
ZW5hYmxlZCkKK3ZvaWQgQXVkaW9UcmFjazo6ZW5hYmxlZENoYW5nZWQoYm9vbCBlbmFibGVkKQog
ewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2
YXRlKTsKKyAgICBpZiAobV9lbmFibGVkID09IGVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKwog
ICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1f
Y2xpZW50LT5hdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQodGhpcyk7CisgICAgICAgIG1fY2xpZW50
LT5hdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoKnRoaXMpOwogfQogCi12b2lkIEF1ZGlvVHJhY2s6
OmlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0
cmluZyYgaWQpCit2b2lkIEF1ZGlvVHJhY2s6OmlkQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcm
IGlkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0g
bV9wcml2YXRlKTsKICAgICBzZXRJZChpZCk7CiB9CiAKLXZvaWQgQXVkaW9UcmFjazo6bGFiZWxD
aGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5n
JiBsYWJlbCkKK3ZvaWQgQXVkaW9UcmFjazo6bGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbGFiZWwpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0
ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldExhYmVsKGxhYmVsKTsKIH0KIAotdm9pZCBBdWRpb1Ry
YWNrOjpsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25z
dCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKQordm9pZCBBdWRpb1RyYWNrOjpsYW5ndWFnZUNoYW5n
ZWQoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRy
YWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0TGFuZ3VhZ2Uo
bGFuZ3VhZ2UpOwogfQogCi12b2lkIEF1ZGlvVHJhY2s6OndpbGxSZW1vdmUoVHJhY2tQcml2YXRl
QmFzZSogdHJhY2tQcml2YXRlKQordm9pZCBBdWRpb1RyYWNrOjp3aWxsUmVtb3ZlKCkKIHsKLSAg
ICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7
CiAgICAgbWVkaWFFbGVtZW50KCktPnJlbW92ZUF1ZGlvVHJhY2soKnRoaXMpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oCmluZGV4IDYxYzViMmNkNDI5OGQ1NzRmN2Y3
MTViYzFjMTkyMDA3OTFkZDIzYWEuLjVlZDI0NGJmYWMyYzJiOTRhOGVjZjdlMWQxY2Y5YTFhMGJl
ODg0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oCkBAIC0xLDYgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI5LDkgKzI5LDcgQEAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKICNpbmNsdWRlICJBdWRp
b1RyYWNrUHJpdmF0ZS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtRXhwb3J0TWFjcm9zLmgiCiAjaW5j
bHVkZSAiVHJhY2tCYXNlLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDAsMTIgKzM4LDEyIEBAIGNsYXNzIEF1ZGlvVHJhY2s7
CiBjbGFzcyBBdWRpb1RyYWNrQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BdWRpb1Ry
YWNrQ2xpZW50KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdl
ZChBdWRpb1RyYWNrKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENo
YW5nZWQoQXVkaW9UcmFjayYpID0gMDsKIH07CiAKLWNsYXNzIEF1ZGlvVHJhY2sgZmluYWwgOiBw
dWJsaWMgTWVkaWFUcmFja0Jhc2UsIHB1YmxpYyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCB7Citj
bGFzcyBBdWRpb1RyYWNrIGZpbmFsIDogcHVibGljIE1lZGlhVHJhY2tCYXNlLCBwcml2YXRlIEF1
ZGlvVHJhY2tQcml2YXRlQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEF1ZGlvVHJh
Y2s+IGNyZWF0ZShBdWRpb1RyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8QXVkaW9UcmFj
a1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKKyAgICBzdGF0aWMgUmVmPEF1ZGlvVHJhY2s+IGNyZWF0
ZShBdWRpb1RyYWNrQ2xpZW50JiBjbGllbnQsIEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZh
dGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrKGNsaWVu
dCwgdHJhY2tQcml2YXRlKSk7CiAgICAgfQpAQCAtNTcsMzkgKzU1LDM4IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBtYWluRGVzY0tleXdvcmQoKTsKICAgICBzdGF0
aWMgY29uc3QgQXRvbWljU3RyaW5nJiB0cmFuc2xhdGlvbktleXdvcmQoKTsKICAgICBzdGF0aWMg
Y29uc3QgQXRvbWljU3RyaW5nJiBjb21tZW50YXJ5S2V5d29yZCgpOwotICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgZGVmYXVsdEtpbmRLZXl3b3JkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZW1w
dHlBdG9tOyB9CiAKLSAgICBib29sIGVuYWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2VuYWJsZWQ7IH0KKyAgICBib29sIGVuYWJsZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Vu
YWJsZWQ7IH0KICAgICB2b2lkIHNldEVuYWJsZWQoY29uc3QgYm9vbCk7CiAKLSAgICB2b2lkIGNs
ZWFyQ2xpZW50KCkgb3ZlcnJpZGUgeyBtX2NsaWVudCA9IG51bGxwdHI7IH0KKyAgICB2b2lkIGNs
ZWFyQ2xpZW50KCkgZmluYWwgeyBtX2NsaWVudCA9IG51bGxwdHI7IH0KICAgICBBdWRpb1RyYWNr
Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQogCi0gICAgc2l6ZV90
IGluYmFuZFRyYWNrSW5kZXgoKTsKKyAgICBzaXplX3QgaW5iYW5kVHJhY2tJbmRleCgpIGNvbnN0
OwogCi0gICAgdm9pZCBzZXRQcml2YXRlKFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+KTsK
LQotcHJvdGVjdGVkOgotICAgIEF1ZGlvVHJhY2soQXVkaW9UcmFja0NsaWVudCosIFBhc3NSZWZQ
dHI8QXVkaW9UcmFja1ByaXZhdGU+KTsKKyAgICB2b2lkIHNldFByaXZhdGUoQXVkaW9UcmFja1By
aXZhdGUmKTsKIAogcHJpdmF0ZToKLSAgICBib29sIGlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0
cmluZyYpIGNvbnN0IG92ZXJyaWRlOworICAgIEF1ZGlvVHJhY2soQXVkaW9UcmFja0NsaWVudCYs
IEF1ZGlvVHJhY2tQcml2YXRlJik7CisKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIGRlZmF1bHRL
aW5kS2V5d29yZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGVtcHR5QXRvbTsgfQorICAgIGJvb2wg
aXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3QgZmluYWw7CiAKICAgICAvLyBB
dWRpb1RyYWNrUHJpdmF0ZUNsaWVudAotICAgIHZvaWQgZW5hYmxlZENoYW5nZWQoQXVkaW9UcmFj
a1ByaXZhdGUqLCBib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIGVuYWJsZWRDaGFuZ2VkKGJvb2wp
IGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAotICAgIHZvaWQgaWRDaGFu
Z2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5n
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSos
IGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbFJlbW92ZShUcmFj
a1ByaXZhdGVCYXNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYWJlbENoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5n
JikgZmluYWw7CisgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJikg
ZmluYWw7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAKICAgICB2b2lkIHVwZGF0ZUtp
bmRGcm9tUHJpdmF0ZSgpOwogCiAgICAgYm9vbCBtX2VuYWJsZWQ7CiAgICAgQXVkaW9UcmFja0Ns
aWVudCogbV9jbGllbnQ7CiAKLSAgICBSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+IG1fcHJpdmF0
ZTsKKyAgICBSZWY8QXVkaW9UcmFja1ByaXZhdGU+IG1fcHJpdmF0ZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kRGF0YVRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERh
dGFUZXh0VHJhY2suY3BwCmluZGV4IGJlNThjYzgxMTliZmU2ZDYwZjAzMGJhMDE5M2MwY2RlNTI4
NDkxOTguLjk4NTVkMmJmMmViNDZjZDJkYjc1NTJhOGJlMWVjOTVjZTMzY2FkODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcApAQCAt
MzcsMzEgKzM3LDMwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPEluYmFuZERhdGFU
ZXh0VHJhY2s+IEluYmFuZERhdGFUZXh0VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUmVmUHRyPEluYmFuZFRleHRU
cmFja1ByaXZhdGU+JiYgdHJhY2tQcml2YXRlKQoraW5saW5lIEluYmFuZERhdGFUZXh0VHJhY2s6
OkluYmFuZERhdGFUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4
dFRyYWNrQ2xpZW50JiBjbGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0
ZSkKKyAgICA6IEluYmFuZFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbmJhbmREYXRhVGV4dFRyYWNrKGNvbnRleHQs
IGNsaWVudCwgV1RGTW92ZSh0cmFja1ByaXZhdGUpKSk7CiB9CiAKLUluYmFuZERhdGFUZXh0VHJh
Y2s6OkluYmFuZERhdGFUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
VGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiYm
IHRyYWNrUHJpdmF0ZSkKLSAgICA6IEluYmFuZFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRy
YWNrUHJpdmF0ZSkKK1JlZjxJbmJhbmREYXRhVGV4dFRyYWNrPiBJbmJhbmREYXRhVGV4dFRyYWNr
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50
JiBjbGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJbmJhbmREYXRhVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwg
dHJhY2tQcml2YXRlKSk7CiB9CiAKIEluYmFuZERhdGFUZXh0VHJhY2s6On5JbmJhbmREYXRhVGV4
dFRyYWNrKCkKIHsKIH0KIAotdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKElu
YmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRp
YVRpbWUmIGVuZCwgY29uc3Qgdm9pZCogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQordm9pZCBJbmJh
bmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0
IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAg
ICAgYWRkQ3VlKERhdGFDdWU6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdGFy
dCwgZW5kLCBkYXRhLCBsZW5ndGgpKTsKIH0KIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQog
Ci12b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OmFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwcnBQbGF0Zm9ybVZhbHVl
LCBjb25zdCBTdHJpbmcmIHR5cGUpCit2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OmFkZERhdGFD
dWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFJlZjxTZXJp
YWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4mJiBwbGF0Zm9ybVZhbHVlLCBjb25zdCBTdHJp
bmcmIHR5cGUpCiB7Ci0gICAgUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9u
PiBwbGF0Zm9ybVZhbHVlID0gcHJwUGxhdGZvcm1WYWx1ZTsKLSAgICBpZiAobV9pbmNvbXBsZXRl
Q3VlTWFwLmZpbmQocGxhdGZvcm1WYWx1ZS5nZXQoKSkgIT0gbV9pbmNvbXBsZXRlQ3VlTWFwLmVu
ZCgpKQorICAgIGlmIChtX2luY29tcGxldGVDdWVNYXAuY29udGFpbnMocGxhdGZvcm1WYWx1ZS5w
dHIoKSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gY3VlID0gRGF0YUN1ZTo6Y3JlYXRl
KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN0YXJ0LCBlbmQsIHBsYXRmb3JtVmFsdWUuY29w
eVJlZigpLCB0eXBlKTsKQEAgLTc4LDI1ICs3NywxOSBAQCB2b2lkIEluYmFuZERhdGFUZXh0VHJh
Y2s6OmFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYg
cwogICAgIGFkZEN1ZShXVEZNb3ZlKGN1ZSkpOwogfQogCi12b2lkIEluYmFuZERhdGFUZXh0VHJh
Y2s6OnVwZGF0ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGlt
ZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgaW5FbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBs
YXRmb3JtUmVwcmVzZW50YXRpb24+IHBycFBsYXRmb3JtVmFsdWUpCit2b2lkIEluYmFuZERhdGFU
ZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVk
aWFUaW1lJiBpbkVuZCwgU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24mIHBsYXRmb3Jt
VmFsdWUpCiB7Ci0gICAgTWVkaWFUaW1lIGVuZCA9IGluRW5kOwotCi0gICAgUmVmUHRyPFNlcmlh
bGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwbGF0Zm9ybVZhbHVlID0gcHJwUGxhdGZvcm1W
YWx1ZTsKLSAgICBhdXRvIGl0ZXIgPSBtX2luY29tcGxldGVDdWVNYXAuZmluZChwbGF0Zm9ybVZh
bHVlLmdldCgpKTsKLSAgICBpZiAoaXRlciA9PSBtX2luY29tcGxldGVDdWVNYXAuZW5kKCkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIFJlZlB0cjxEYXRhQ3VlPiBjdWUgPSBpdGVyLT52YWx1ZTsK
KyAgICBSZWZQdHI8RGF0YUN1ZT4gY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLmdldCgmcGxhdGZv
cm1WYWx1ZSk7CiAgICAgaWYgKCFjdWUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGN1ZS0+d2ls
bENoYW5nZSgpOwogCisgICAgTWVkaWFUaW1lIGVuZCA9IGluRW5kOwogICAgIGlmIChlbmQuaXNQ
b3NpdGl2ZUluZmluaXRlKCkgJiYgbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIGVuZCA9IG1lZGlh
RWxlbWVudCgpLT5kdXJhdGlvbk1lZGlhVGltZSgpOwogICAgIGVsc2UKLSAgICAgICAgbV9pbmNv
bXBsZXRlQ3VlTWFwLnJlbW92ZShwbGF0Zm9ybVZhbHVlLmdldCgpKTsKKyAgICAgICAgbV9pbmNv
bXBsZXRlQ3VlTWFwLnJlbW92ZSgmcGxhdGZvcm1WYWx1ZSk7CiAKICAgICBMT0coTWVkaWEsICJJ
bmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlOiB3YXMgc3RhcnQ9JXMsIGVuZD0lcywg
d2lsbCBiZSBzdGFydD0lcywgZW5kPSVzXG4iLCB0b1N0cmluZyhjdWUtPnN0YXJ0VGltZSgpKS51
dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWUtPmVuZFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9T
dHJpbmcoc3RhcnQpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGVuZCkudXRmOCgpLmRhdGEoKSk7
CiAKQEAgLTEwNiwxNCArOTksOSBAQCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURh
dGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZQogICAgIGN1ZS0+
ZGlkQ2hhbmdlKCk7CiB9CiAKLXZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6cmVtb3ZlRGF0YUN1
ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFU
aW1lJiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcHJwUGxh
dGZvcm1WYWx1ZSkKK3ZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6cmVtb3ZlRGF0YUN1ZShjb25z
dCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNl
bnRhdGlvbiYgcGxhdGZvcm1WYWx1ZSkKIHsKLSAgICBSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3Jt
UmVwcmVzZW50YXRpb24+IHBsYXRmb3JtVmFsdWUgPSBwcnBQbGF0Zm9ybVZhbHVlOwotICAgIGF1
dG8gaXRlciA9IG1faW5jb21wbGV0ZUN1ZU1hcC5maW5kKHBsYXRmb3JtVmFsdWUuZ2V0KCkpOwot
ICAgIGlmIChpdGVyID09IG1faW5jb21wbGV0ZUN1ZU1hcC5lbmQoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgaWYgKFJlZlB0cjxEYXRhQ3VlPiBjdWUgPSBpdGVyLT52YWx1ZSkgeworICAgIGlm
IChhdXRvKiBjdWUgPSBtX2luY29tcGxldGVDdWVNYXAuZ2V0KCZwbGF0Zm9ybVZhbHVlKSkgewog
ICAgICAgICBMT0coTWVkaWEsICJJbmJhbmREYXRhVGV4dFRyYWNrOjpyZW1vdmVEYXRhQ3VlIHJl
bW92aW5nIGN1ZTogc3RhcnQ9JXMsIGVuZD0lc1xuIiwgdG9TdHJpbmcoY3VlLT5zdGFydFRpbWUo
KSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoY3VlLT5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCkp
OwogICAgICAgICByZW1vdmVDdWUoKmN1ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaAppbmRleCAyN2E4ZGI2MTY5ZDBiNDc2YzU0
ZDMyZTQ4MTQyODYyMWRiMmEzMDgzLi44MjRhMjlmNmE4NjZhZDM0NWM1YzRhOTQ0OGRmZmI4YjZi
YTcxNjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFU
ZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0
VHJhY2suaApAQCAtMzMsMjMgKzMzLDIxIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IERhdGFDdWU7Ci1jbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOwotY2xhc3MgU2VyaWFsaXpl
ZFBsYXRmb3JtUmVwcmVzZW50YXRpb247CiAKIGNsYXNzIEluYmFuZERhdGFUZXh0VHJhY2sgZmlu
YWwgOiBwdWJsaWMgSW5iYW5kVGV4dFRyYWNrIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPElu
YmFuZERhdGFUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRy
YWNrQ2xpZW50KiwgUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+JiYpOworICAgIHN0YXRp
YyBSZWY8SW5iYW5kRGF0YVRleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CiAgICAgdmlydHVh
bCB+SW5iYW5kRGF0YVRleHRUcmFjaygpOwogCiBwcml2YXRlOgotICAgIEluYmFuZERhdGFUZXh0
VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFJlZlB0cjxJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlPiYmKTsKKyAgICBJbmJhbmREYXRhVGV4dFRyYWNrKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlJik7CiAKLSAgICB2b2lkIGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNv
bnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiwg
dW5zaWduZWQpIGZpbmFsOworICAgIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0
YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9pZCosIHVuc2lnbmVkKSBmaW5hbDsK
IAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQotICAgIHZvaWQgYWRkRGF0YUN1ZShJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1l
JiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+LCBjb25z
dCBTdHJpbmcmKSBmaW5hbDsKLSAgICB2b2lkIHVwZGF0ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPikgZmluYWw7Ci0gICAg
dm9pZCByZW1vdmVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRp
bWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxh
dGZvcm1SZXByZXNlbnRhdGlvbj4pIGZpbmFsOworICAgIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0
Zm9ybVJlcHJlc2VudGF0aW9uPiYmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIHVw
ZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQs
IFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uJikgZmluYWw7CisgICAgdm9pZCByZW1v
dmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBT
ZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbiYpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHJlbW92ZUN1ZShUZXh0VHJhY2tDdWUmKSBmaW5hbDsKIAogICAgIEhhc2hNYXA8UmVm
UHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiwgUmVmUHRyPERhdGFDdWU+PiBt
X2luY29tcGxldGVDdWVNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9J
bmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcAppbmRleCAwOTFhNWQyYjE4NTI2MGI1OGY2OGUyZmJj
Zjg5Yjg3NmM3NTY1YzJlLi5kNDc4YWU2MTFmMjM3NjAzMTdiNWQwNGM2Mjk3YzIxYzA0MThmYzVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0
VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1Rl
eHRUcmFjay5jcHAKQEAgLTY1LDEwMiArNjUsOTkgQEAgdm9pZCBHZW5lcmljVGV4dFRyYWNrQ3Vl
TWFwOjpyZW1vdmUoVGV4dFRyYWNrQ3VlJiBjdWUpCiAgICAgICAgIG1fZGF0YVRvQ3VlTWFwLnJl
bW92ZShkYXRhKTsKIH0KIAotUmVmPEluYmFuZEdlbmVyaWNUZXh0VHJhY2s+IEluYmFuZEdlbmVy
aWNUZXh0VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0
VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiBw
bGF5ZXJQcml2YXRlKQoraW5saW5lIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OkluYmFuZEdlbmVy
aWNUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xp
ZW50JiBjbGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAgICA6
IEluYmFuZFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJbmJhbmRHZW5lcmljVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVu
dCwgcGxheWVyUHJpdmF0ZSkpOwogfQogCi1JbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpJbmJhbmRH
ZW5lcmljVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFj
a0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHRyYWNr
UHJpdmF0ZSkKLSAgICA6IEluYmFuZFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJp
dmF0ZSkKK1JlZjxJbmJhbmRHZW5lcmljVGV4dFRyYWNrPiBJbmJhbmRHZW5lcmljVGV4dFRyYWNr
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50
JiBjbGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJbmJhbmRHZW5lcmljVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVu
dCwgdHJhY2tQcml2YXRlKSk7CiB9CiAKIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6On5JbmJhbmRH
ZW5lcmljVGV4dFRyYWNrKCkKIHsKIH0KIAotdm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp1
cGRhdGVDdWVGcm9tQ3VlRGF0YShUZXh0VHJhY2tDdWVHZW5lcmljKiBjdWUsIEdlbmVyaWNDdWVE
YXRhKiBjdWVEYXRhKQordm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVDdWVGcm9t
Q3VlRGF0YShUZXh0VHJhY2tDdWVHZW5lcmljJiBjdWUsIEdlbmVyaWNDdWVEYXRhJiBjdWVEYXRh
KQogewotICAgIGN1ZS0+d2lsbENoYW5nZSgpOworICAgIGN1ZS53aWxsQ2hhbmdlKCk7CiAKLSAg
ICBjdWUtPnNldFN0YXJ0VGltZShjdWVEYXRhLT5zdGFydFRpbWUoKSk7Ci0gICAgTWVkaWFUaW1l
IGVuZFRpbWUgPSBjdWVEYXRhLT5lbmRUaW1lKCk7CisgICAgY3VlLnNldFN0YXJ0VGltZShjdWVE
YXRhLnN0YXJ0VGltZSgpKTsKKyAgICBNZWRpYVRpbWUgZW5kVGltZSA9IGN1ZURhdGEuZW5kVGlt
ZSgpOwogICAgIGlmIChlbmRUaW1lLmlzUG9zaXRpdmVJbmZpbml0ZSgpICYmIG1lZGlhRWxlbWVu
dCgpKQogICAgICAgICBlbmRUaW1lID0gbWVkaWFFbGVtZW50KCktPmR1cmF0aW9uTWVkaWFUaW1l
KCk7Ci0gICAgY3VlLT5zZXRFbmRUaW1lKGVuZFRpbWUpOwotICAgIGN1ZS0+c2V0VGV4dChjdWVE
YXRhLT5jb250ZW50KCkpOwotICAgIGN1ZS0+c2V0SWQoY3VlRGF0YS0+aWQoKSk7Ci0gICAgY3Vl
LT5zZXRCYXNlRm9udFNpemVSZWxhdGl2ZVRvVmlkZW9IZWlnaHQoY3VlRGF0YS0+YmFzZUZvbnRT
aXplKCkpOwotICAgIGN1ZS0+c2V0Rm9udFNpemVNdWx0aXBsaWVyKGN1ZURhdGEtPnJlbGF0aXZl
Rm9udFNpemUoKSk7Ci0gICAgY3VlLT5zZXRGb250TmFtZShjdWVEYXRhLT5mb250TmFtZSgpKTsK
LQotICAgIGlmIChjdWVEYXRhLT5wb3NpdGlvbigpID4gMCkKLSAgICAgICAgY3VlLT5zZXRQb3Np
dGlvbihzdGQ6OnJvdW5kKGN1ZURhdGEtPnBvc2l0aW9uKCkpKTsKLSAgICBpZiAoY3VlRGF0YS0+
bGluZSgpID4gMCkKLSAgICAgICAgY3VlLT5zZXRMaW5lKHN0ZDo6cm91bmQoY3VlRGF0YS0+bGlu
ZSgpKSk7Ci0gICAgaWYgKGN1ZURhdGEtPnNpemUoKSA+IDApCi0gICAgICAgIGN1ZS0+c2V0U2l6
ZShzdGQ6OnJvdW5kKGN1ZURhdGEtPnNpemUoKSkpOwotICAgIGlmIChjdWVEYXRhLT5iYWNrZ3Jv
dW5kQ29sb3IoKS5pc1ZhbGlkKCkpCi0gICAgICAgIGN1ZS0+c2V0QmFja2dyb3VuZENvbG9yKGN1
ZURhdGEtPmJhY2tncm91bmRDb2xvcigpLnJnYigpKTsKLSAgICBpZiAoY3VlRGF0YS0+Zm9yZWdy
b3VuZENvbG9yKCkuaXNWYWxpZCgpKQotICAgICAgICBjdWUtPnNldEZvcmVncm91bmRDb2xvcihj
dWVEYXRhLT5mb3JlZ3JvdW5kQ29sb3IoKS5yZ2IoKSk7Ci0gICAgaWYgKGN1ZURhdGEtPmhpZ2hs
aWdodENvbG9yKCkuaXNWYWxpZCgpKQotICAgICAgICBjdWUtPnNldEhpZ2hsaWdodENvbG9yKGN1
ZURhdGEtPmhpZ2hsaWdodENvbG9yKCkucmdiKCkpOwotCi0gICAgaWYgKGN1ZURhdGEtPmFsaWdu
KCkgPT0gR2VuZXJpY0N1ZURhdGE6OlN0YXJ0KQotICAgICAgICBjdWUtPnNldEFsaWduKEFTQ0lJ
TGl0ZXJhbCgic3RhcnQiKSk7Ci0gICAgZWxzZSBpZiAoY3VlRGF0YS0+YWxpZ24oKSA9PSBHZW5l
cmljQ3VlRGF0YTo6TWlkZGxlKQotICAgICAgICBjdWUtPnNldEFsaWduKEFTQ0lJTGl0ZXJhbCgi
bWlkZGxlIikpOwotICAgIGVsc2UgaWYgKGN1ZURhdGEtPmFsaWduKCkgPT0gR2VuZXJpY0N1ZURh
dGE6OkVuZCkKLSAgICAgICAgY3VlLT5zZXRBbGlnbihBU0NJSUxpdGVyYWwoImVuZCIpKTsKLSAg
ICBjdWUtPnNldFNuYXBUb0xpbmVzKGZhbHNlKTsKLQotICAgIGN1ZS0+ZGlkQ2hhbmdlKCk7Ci19
Ci0KLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZShJbmJhbmRUZXh0
VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIFBhc3NSZWZQdHI8R2VuZXJpY0N1ZURhdGE+IHBy
cEN1ZURhdGEpCi17Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0
ZSA9PSBtX3ByaXZhdGUpOwotCi0gICAgUmVmUHRyPEdlbmVyaWNDdWVEYXRhPiBjdWVEYXRhID0g
cHJwQ3VlRGF0YTsKLSAgICBpZiAobV9jdWVNYXAuZmluZCgqY3VlRGF0YSkpCisgICAgY3VlLnNl
dEVuZFRpbWUoZW5kVGltZSk7CisgICAgY3VlLnNldFRleHQoY3VlRGF0YS5jb250ZW50KCkpOwor
ICAgIGN1ZS5zZXRJZChjdWVEYXRhLmlkKCkpOworICAgIGN1ZS5zZXRCYXNlRm9udFNpemVSZWxh
dGl2ZVRvVmlkZW9IZWlnaHQoY3VlRGF0YS5iYXNlRm9udFNpemUoKSk7CisgICAgY3VlLnNldEZv
bnRTaXplTXVsdGlwbGllcihjdWVEYXRhLnJlbGF0aXZlRm9udFNpemUoKSk7CisgICAgY3VlLnNl
dEZvbnROYW1lKGN1ZURhdGEuZm9udE5hbWUoKSk7CisKKyAgICBpZiAoY3VlRGF0YS5wb3NpdGlv
bigpID4gMCkKKyAgICAgICAgY3VlLnNldFBvc2l0aW9uKHN0ZDo6cm91bmQoY3VlRGF0YS5wb3Np
dGlvbigpKSk7CisgICAgaWYgKGN1ZURhdGEubGluZSgpID4gMCkKKyAgICAgICAgY3VlLnNldExp
bmUoc3RkOjpyb3VuZChjdWVEYXRhLmxpbmUoKSkpOworICAgIGlmIChjdWVEYXRhLnNpemUoKSA+
IDApCisgICAgICAgIGN1ZS5zZXRTaXplKHN0ZDo6cm91bmQoY3VlRGF0YS5zaXplKCkpKTsKKyAg
ICBpZiAoY3VlRGF0YS5iYWNrZ3JvdW5kQ29sb3IoKS5pc1ZhbGlkKCkpCisgICAgICAgIGN1ZS5z
ZXRCYWNrZ3JvdW5kQ29sb3IoY3VlRGF0YS5iYWNrZ3JvdW5kQ29sb3IoKS5yZ2IoKSk7CisgICAg
aWYgKGN1ZURhdGEuZm9yZWdyb3VuZENvbG9yKCkuaXNWYWxpZCgpKQorICAgICAgICBjdWUuc2V0
Rm9yZWdyb3VuZENvbG9yKGN1ZURhdGEuZm9yZWdyb3VuZENvbG9yKCkucmdiKCkpOworICAgIGlm
IChjdWVEYXRhLmhpZ2hsaWdodENvbG9yKCkuaXNWYWxpZCgpKQorICAgICAgICBjdWUuc2V0SGln
aGxpZ2h0Q29sb3IoY3VlRGF0YS5oaWdobGlnaHRDb2xvcigpLnJnYigpKTsKKworICAgIGlmIChj
dWVEYXRhLmFsaWduKCkgPT0gR2VuZXJpY0N1ZURhdGE6OlN0YXJ0KQorICAgICAgICBjdWUuc2V0
QWxpZ24oQVNDSUlMaXRlcmFsKCJzdGFydCIpKTsKKyAgICBlbHNlIGlmIChjdWVEYXRhLmFsaWdu
KCkgPT0gR2VuZXJpY0N1ZURhdGE6Ok1pZGRsZSkKKyAgICAgICAgY3VlLnNldEFsaWduKEFTQ0lJ
TGl0ZXJhbCgibWlkZGxlIikpOworICAgIGVsc2UgaWYgKGN1ZURhdGEuYWxpZ24oKSA9PSBHZW5l
cmljQ3VlRGF0YTo6RW5kKQorICAgICAgICBjdWUuc2V0QWxpZ24oQVNDSUlMaXRlcmFsKCJlbmQi
KSk7CisgICAgY3VlLnNldFNuYXBUb0xpbmVzKGZhbHNlKTsKKworICAgIGN1ZS5kaWRDaGFuZ2Uo
KTsKK30KKwordm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjphZGRHZW5lcmljQ3VlKEdlbmVy
aWNDdWVEYXRhJiBjdWVEYXRhKQoreworICAgIGlmIChtX2N1ZU1hcC5maW5kKGN1ZURhdGEpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGN1ZSA9IFRleHRUcmFja0N1ZUdlbmVyaWM6OmNy
ZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBjdWVEYXRhLT5zdGFydFRpbWUoKSwgY3Vl
RGF0YS0+ZW5kVGltZSgpLCBjdWVEYXRhLT5jb250ZW50KCkpOwotICAgIHVwZGF0ZUN1ZUZyb21D
dWVEYXRhKGN1ZS5wdHIoKSwgY3VlRGF0YS5nZXQoKSk7CisgICAgYXV0byBjdWUgPSBUZXh0VHJh
Y2tDdWVHZW5lcmljOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgY3VlRGF0YS5z
dGFydFRpbWUoKSwgY3VlRGF0YS5lbmRUaW1lKCksIGN1ZURhdGEuY29udGVudCgpKTsKKyAgICB1
cGRhdGVDdWVGcm9tQ3VlRGF0YShjdWUuZ2V0KCksIGN1ZURhdGEpOwogICAgIGlmIChoYXNDdWUo
Y3VlLnB0cigpLCBUZXh0VHJhY2tDdWU6Oklnbm9yZUR1cmF0aW9uKSkgewotICAgICAgICBMT0co
TWVkaWEsICJJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjphZGRHZW5lcmljQ3VlIGlnbm9yaW5nIGFs
cmVhZHkgYWRkZWQgY3VlOiBzdGFydD0lcywgZW5kPSVzLCBjb250ZW50PVwiJXNcIlxuIiwgdG9T
dHJpbmcoY3VlRGF0YS0+c3RhcnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZURh
dGEtPmVuZFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS0+Y29udGVudCgpLnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjphZGRH
ZW5lcmljQ3VlIGlnbm9yaW5nIGFscmVhZHkgYWRkZWQgY3VlOiBzdGFydD0lcywgZW5kPSVzLCBj
b250ZW50PVwiJXNcIlxuIiwgdG9TdHJpbmcoY3VlRGF0YS5zdGFydFRpbWUoKSkudXRmOCgpLmRh
dGEoKSwgdG9TdHJpbmcoY3VlRGF0YS5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEu
Y29udGVudCgpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
TE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSBhZGRlZCBj
dWU6IHN0YXJ0PSUuMmYsIGVuZD0lLjJmLCBjb250ZW50PVwiJXNcIlxuIiwgY3VlRGF0YS0+c3Rh
cnRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS0+ZW5kVGltZSgpLnRvRG91YmxlKCksIGN1ZURh
dGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBMT0coTWVkaWEsICJJbmJhbmRHZW5l
cmljVGV4dFRyYWNrOjphZGRHZW5lcmljQ3VlIGFkZGVkIGN1ZTogc3RhcnQ9JS4yZiwgZW5kPSUu
MmYsIGNvbnRlbnQ9XCIlc1wiXG4iLCBjdWVEYXRhLnN0YXJ0VGltZSgpLnRvRG91YmxlKCksIGN1
ZURhdGEuZW5kVGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEuY29udGVudCgpLnV0ZjgoKS5kYXRh
KCkpOwogCi0gICAgaWYgKGN1ZURhdGEtPnN0YXR1cygpICE9IEdlbmVyaWNDdWVEYXRhOjpDb21w
bGV0ZSkKLSAgICAgICAgbV9jdWVNYXAuYWRkKCpjdWVEYXRhLCBjdWUpOworICAgIGlmIChjdWVE
YXRhLnN0YXR1cygpICE9IEdlbmVyaWNDdWVEYXRhOjpDb21wbGV0ZSkKKyAgICAgICAgbV9jdWVN
YXAuYWRkKGN1ZURhdGEsIGN1ZSk7CiAKICAgICBhZGRDdWUoV1RGTW92ZShjdWUpKTsKIH0KIAot
dm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVHZW5lcmljQ3VlKEluYmFuZFRleHRU
cmFja1ByaXZhdGUqLCBHZW5lcmljQ3VlRGF0YSogY3VlRGF0YSkKK3ZvaWQgSW5iYW5kR2VuZXJp
Y1RleHRUcmFjazo6dXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYgY3VlRGF0YSkKIHsK
LSAgICBhdXRvKiBjdWUgPSBtX2N1ZU1hcC5maW5kKCpjdWVEYXRhKTsKKyAgICBhdXRvKiBjdWUg
PSBtX2N1ZU1hcC5maW5kKGN1ZURhdGEpOwogICAgIGlmICghY3VlKQogICAgICAgICByZXR1cm47
CiAKLSAgICB1cGRhdGVDdWVGcm9tQ3VlRGF0YShjdWUsIGN1ZURhdGEpOworICAgIHVwZGF0ZUN1
ZUZyb21DdWVEYXRhKCpjdWUsIGN1ZURhdGEpOwogCi0gICAgaWYgKGN1ZURhdGEtPnN0YXR1cygp
ID09IEdlbmVyaWNDdWVEYXRhOjpDb21wbGV0ZSkKLSAgICAgICAgbV9jdWVNYXAucmVtb3ZlKCpj
dWVEYXRhKTsKKyAgICBpZiAoY3VlRGF0YS5zdGF0dXMoKSA9PSBHZW5lcmljQ3VlRGF0YTo6Q29t
cGxldGUpCisgICAgICAgIG1fY3VlTWFwLnJlbW92ZShjdWVEYXRhKTsKIH0KIAotdm9pZCBJbmJh
bmRHZW5lcmljVGV4dFRyYWNrOjpyZW1vdmVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZh
dGUqLCBHZW5lcmljQ3VlRGF0YSogY3VlRGF0YSkKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFj
azo6cmVtb3ZlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYgY3VlRGF0YSkKIHsKLSAgICBhdXRv
KiBjdWUgPSBtX2N1ZU1hcC5maW5kKCpjdWVEYXRhKTsKKyAgICBhdXRvKiBjdWUgPSBtX2N1ZU1h
cC5maW5kKGN1ZURhdGEpOwogICAgIGlmIChjdWUpIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiSW5i
YW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1ZSByZW1vdmluZyBjdWU6IHN0YXJ0
PSVzLCBlbmQ9JXMsIGNvbnRlbnQ9XCIlc1wiXG4iLCAgdG9TdHJpbmcoY3VlRGF0YS0+c3RhcnRU
aW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZURhdGEtPmVuZFRpbWUoKSkudXRmOCgp
LmRhdGEoKSwgY3VlRGF0YS0+Y29udGVudCgpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0co
TWVkaWEsICJJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpyZW1vdmVHZW5lcmljQ3VlIHJlbW92aW5n
IGN1ZTogc3RhcnQ9JXMsIGVuZD0lcywgY29udGVudD1cIiVzXCJcbiIsICB0b1N0cmluZyhjdWVE
YXRhLnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWVEYXRhLmVuZFRpbWUo
KSkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CiAgICAg
ICAgIHJlbW92ZUN1ZSgqY3VlKTsKICAgICB9IGVsc2UgewotICAgICAgICBMT0coTWVkaWEsICJJ
bmJhbmRHZW5lcmljVGV4dFRyYWNrOjpyZW1vdmVHZW5lcmljQ3VlIFVOQUJMRSB0byBmaW5kIGN1
ZTogc3RhcnQ9JS4yZiwgZW5kPSUuMmYsIGNvbnRlbnQ9XCIlc1wiXG4iLCBjdWVEYXRhLT5zdGFy
dFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLT5lbmRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0
YS0+Y29udGVudCgpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRH
ZW5lcmljVGV4dFRyYWNrOjpyZW1vdmVHZW5lcmljQ3VlIFVOQUJMRSB0byBmaW5kIGN1ZTogc3Rh
cnQ9JS4yZiwgZW5kPSUuMmYsIGNvbnRlbnQ9XCIlc1wiXG4iLCBjdWVEYXRhLnN0YXJ0VGltZSgp
LnRvRG91YmxlKCksIGN1ZURhdGEuZW5kVGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEuY29udGVu
dCgpLnV0ZjgoKS5kYXRhKCkpOwogICAgIH0KIH0KIApAQCAtMTc5LDE1ICsxNzYsMTMgQEAgV2Vi
VlRUUGFyc2VyJiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpwYXJzZXIoKQogICAgIHJldHVybiAq
bV93ZWJWVFRQYXJzZXI7CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cGFyc2VX
ZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgY29uc3Qg
SVNPV2ViVlRUQ3VlJiBjdWVEYXRhKQordm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpwYXJz
ZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJiBjdWVEYXRhKQogewotICAgIEFTU0VS
VF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBw
YXJzZXIoKS5wYXJzZUN1ZURhdGEoY3VlRGF0YSk7CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1Rl
eHRUcmFjazo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKEluYmFuZFRleHRUcmFja1ByaXZhdGUqIHRy
YWNrUHJpdmF0ZSwgU3RyaW5nJiYgaGVhZGVyKQordm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNr
OjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYgaGVhZGVyKQogewotICAgIEFTU0VSVF9V
TlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBwYXJz
ZXIoKS5wYXJzZUZpbGVIZWFkZXIoV1RGTW92ZShoZWFkZXIpKTsKIH0KIApAQCAtMjE0LDcgKzIw
OSw3IEBAIHZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6bmV3UmVnaW9uc1BhcnNlZCgpCiAK
ICAgICBmb3IgKGF1dG8mIHJlZ2lvbiA6IG5ld1JlZ2lvbnMpIHsKICAgICAgICAgcmVnaW9uLT5z
ZXRUcmFjayh0aGlzKTsKLSAgICAgICAgcmVnaW9ucygpLT5hZGQocmVnaW9uKTsKKyAgICAgICAg
cmVnaW9ucygpLT5hZGQocmVnaW9uLnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNr
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suaApp
bmRleCAxYzM0OGIyZGE1NTEwM2ViYmZjYTg3OGQ0MGI3ZjkwNzg5YmQ0NDYzLi4zZGNlZWE0NWYw
ZGM1NDU2MjA5MGQ1MjkxNTg5YjIwYzhiNGRjNDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suaApAQCAtMzMsOSArMzMsNiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERvY3VtZW50OwotY2xhc3MgSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZTsKLQogY2xhc3MgR2VuZXJpY1RleHRUcmFja0N1ZU1hcCB7CiBwdWJsaWM6
CiAgICAgdm9pZCBhZGQoR2VuZXJpY0N1ZURhdGEmLCBUZXh0VHJhY2tDdWVHZW5lcmljJik7CkBA
IC01NiwyMyArNTMsMjIgQEAgcHJpdmF0ZToKIAogY2xhc3MgSW5iYW5kR2VuZXJpY1RleHRUcmFj
ayBmaW5hbCA6IHB1YmxpYyBJbmJhbmRUZXh0VHJhY2ssIHByaXZhdGUgV2ViVlRUUGFyc2VyQ2xp
ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEluYmFuZEdlbmVyaWNUZXh0VHJhY2s+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0
cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CisgICAgc3RhdGljIFJlZjxJbmJhbmRHZW5lcmlj
VGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRleHRUcmFja0NsaWVu
dCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKICAgICB2aXJ0dWFsIH5JbmJhbmRHZW5lcmlj
VGV4dFRyYWNrKCk7CiAKIHByaXZhdGU6Ci0gICAgSW5iYW5kR2VuZXJpY1RleHRUcmFjayhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlPik7CisgICAgSW5iYW5kR2VuZXJpY1RleHRUcmFjayhTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYp
OwogCi0gICAgdm9pZCBhZGRHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBQYXNz
UmVmUHRyPEdlbmVyaWNDdWVEYXRhPikgZmluYWw7Ci0gICAgdm9pZCB1cGRhdGVHZW5lcmljQ3Vl
KEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBHZW5lcmljQ3VlRGF0YSopIGZpbmFsOwotICAgIHZv
aWQgcmVtb3ZlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURh
dGEqKSBmaW5hbDsKKyAgICB2b2lkIGFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKSBmaW5h
bDsKKyAgICB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKSBmaW5hbDsKKyAg
ICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKSBmaW5hbDsKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiByZW1vdmVDdWUoVGV4dFRyYWNrQ3VlJikgZmluYWw7CiAKLSAgICBQYXNz
UmVmUHRyPFRleHRUcmFja0N1ZUdlbmVyaWM+IGNyZWF0ZUN1ZShQYXNzUmVmUHRyPEdlbmVyaWND
dWVEYXRhPik7Ci0gICAgdm9pZCB1cGRhdGVDdWVGcm9tQ3VlRGF0YShUZXh0VHJhY2tDdWVHZW5l
cmljKiwgR2VuZXJpY0N1ZURhdGEqKTsKKyAgICB2b2lkIHVwZGF0ZUN1ZUZyb21DdWVEYXRhKFRl
eHRUcmFja0N1ZUdlbmVyaWMmLCBHZW5lcmljQ3VlRGF0YSYpOwogCiAgICAgV2ViVlRUUGFyc2Vy
JiBwYXJzZXIoKTsKLSAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlKiwgY29uc3QgSVNPV2ViVlRUQ3VlJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZVdlYlZU
VEZpbGVIZWFkZXIoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFN0cmluZyYmKSBmaW5hbDsKKyAg
ICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUmKSBmaW5hbDsKKyAg
ICB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihTdHJpbmcmJikgZmluYWw7CiAKICAgICB2b2lk
IG5ld0N1ZXNQYXJzZWQoKSBmaW5hbDsKICAgICB2b2lkIG5ld1JlZ2lvbnNQYXJzZWQoKSBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcAppbmRl
eCBmMmVlZWFlMGZjMDA5NGU0MjhhODdhNjVkMTgzMTdkM2NmZjQ0MDc5Li45MmMxNGM3OGE1Yzg1
ZDcxOThkNGE0M2RjOGE4NzBmMThmYjIyOTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCkBAIC00MywyNCArNDMsMjAgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gSW5iYW5kVGV4dFRyYWNr
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwKLSAgICBUZXh0VHJhY2tD
bGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0cmFja1By
aXZhdGUpCitSZWY8SW5iYW5kVGV4dFRyYWNrPiBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNsaWVudCwgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewotICAgIHN3aXRjaCAodHJhY2tQ
cml2YXRlLT5jdWVGb3JtYXQoKSkgeworICAgIHN3aXRjaCAodHJhY2tQcml2YXRlLmN1ZUZvcm1h
dCgpKSB7CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpEYXRhOgogICAgICAgICBy
ZXR1cm4gSW5iYW5kRGF0YVRleHRUcmFjazo6Y3JlYXRlKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQ
cml2YXRlKTsKICAgICBjYXNlIEluYmFuZFRleHRUcmFja1ByaXZhdGU6OkdlbmVyaWM6CiAgICAg
ICAgIHJldHVybiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUoY29udGV4dCwgY2xpZW50
LCB0cmFja1ByaXZhdGUpOwogICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6V2ViVlRU
OgogICAgICAgICByZXR1cm4gSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpjcmVhdGUoY29udGV4dCwg
Y2xpZW50LCB0cmFja1ByaXZhdGUpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsKICAgICB9CiB9CiAKLUluYmFuZFRleHRUcmFj
azo6SW5iYW5kVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRU
cmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHRy
YWNrUHJpdmF0ZSkKLSAgICA6IFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIGVtcHR5QXRvbSwg
dHJhY2tQcml2YXRlLT5pZCgpLCB0cmFja1ByaXZhdGUtPmxhYmVsKCksIHRyYWNrUHJpdmF0ZS0+
bGFuZ3VhZ2UoKSwgSW5CYW5kKQorSW5iYW5kVGV4dFRyYWNrOjpJbmJhbmRUZXh0VHJhY2soU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50JiBjbGllbnQsIElu
YmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAgICA6IFRleHRUcmFjaygmY29u
dGV4dCwgJmNsaWVudCwgZW1wdHlBdG9tLCB0cmFja1ByaXZhdGUuaWQoKSwgdHJhY2tQcml2YXRl
LmxhYmVsKCksIHRyYWNrUHJpdmF0ZS5sYW5ndWFnZSgpLCBJbkJhbmQpCiAgICAgLCBtX3ByaXZh
dGUodHJhY2tQcml2YXRlKQogewogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwpAQCAt
NzIsMTIgKzY4LDkgQEAgSW5iYW5kVGV4dFRyYWNrOjp+SW5iYW5kVGV4dFRyYWNrKCkKICAgICBt
X3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKIH0KIAotdm9pZCBJbmJhbmRUZXh0VHJhY2s6
OnNldFByaXZhdGUoUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0cmFja1ByaXZh
dGUpCit2b2lkIEluYmFuZFRleHRUcmFjazo6c2V0UHJpdmF0ZShJbmJhbmRUZXh0VHJhY2tQcml2
YXRlJiB0cmFja1ByaXZhdGUpCiB7Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7Ci0gICAgQVNTRVJU
KHRyYWNrUHJpdmF0ZSk7Ci0KLSAgICBpZiAobV9wcml2YXRlID09IHRyYWNrUHJpdmF0ZSkKKyAg
ICBpZiAobV9wcml2YXRlLnB0cigpID09ICZ0cmFja1ByaXZhdGUpCiAgICAgICAgIHJldHVybjsK
IAogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwpAQCAtMTE1LDgwICsxMDgsNjAg
QEAgdm9pZCBJbmJhbmRUZXh0VHJhY2s6OnNldE1vZGVJbnRlcm5hbChNb2RlIG1vZGUpCiAKIGJv
b2wgSW5iYW5kVGV4dFRyYWNrOjppc0Nsb3NlZENhcHRpb25zKCkgY29uc3QKIHsKLSAgICBpZiAo
IW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgcmV0dXJuIG1fcHJpdmF0
ZS0+aXNDbG9zZWRDYXB0aW9ucygpOwogfQogCiBib29sIEluYmFuZFRleHRUcmFjazo6aXNTREgo
KSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNTREgoKTsKIH0KIAogYm9vbCBJbmJhbmRUZXh0
VHJhY2s6OmNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygpIGNvbnN0CiB7Ci0gICAgaWYgKCFt
X3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKICAgICByZXR1cm4gbV9wcml2
YXRlLT5jb250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMoKTsKIH0KIAogYm9vbCBJbmJhbmRUZXh0
VHJhY2s6OmlzTWFpblByb2dyYW1Db250ZW50KCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0
ZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPmlz
TWFpblByb2dyYW1Db250ZW50KCk7CiB9CiAKIGJvb2wgSW5iYW5kVGV4dFRyYWNrOjppc0Vhc3lU
b1JlYWQoKSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRlKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNFYXN5VG9SZWFkKCk7CiB9CiAgICAg
CiBzaXplX3QgSW5iYW5kVGV4dFRyYWNrOjppbmJhbmRUcmFja0luZGV4KCkKIHsKLSAgICBBU1NF
UlQobV9wcml2YXRlKTsKICAgICByZXR1cm4gbV9wcml2YXRlLT50cmFja0luZGV4KCk7CiB9CiAK
IEF0b21pY1N0cmluZyBJbmJhbmRUZXh0VHJhY2s6OmluQmFuZE1ldGFkYXRhVHJhY2tEaXNwYXRj
aFR5cGUoKSBjb25zdAogewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwogICAgIHJldHVybiBtX3By
aXZhdGUtPmluQmFuZE1ldGFkYXRhVHJhY2tEaXNwYXRjaFR5cGUoKTsKIH0KIAotdm9pZCBJbmJh
bmRUZXh0VHJhY2s6OmlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUsIGNv
bnN0IEF0b21pY1N0cmluZyYgaWQpCit2b2lkIEluYmFuZFRleHRUcmFjazo6aWRDaGFuZ2VkKGNv
bnN0IEF0b21pY1N0cmluZyYgaWQpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUs
IHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldElkKGlkKTsKIH0KIAotdm9pZCBJ
bmJhbmRUZXh0VHJhY2s6OmxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZh
dGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpCit2b2lkIEluYmFuZFRleHRUcmFjazo6bGFi
ZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpCiB7Ci0gICAgQVNTRVJUX1VOVVNF
RCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldExhYmVs
KGxhYmVsKTsKIH0KIAotdm9pZCBJbmJhbmRUZXh0VHJhY2s6Omxhbmd1YWdlQ2hhbmdlZChUcmFj
a1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2Up
Cit2b2lkIEluYmFuZFRleHRUcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbGFuZ3VhZ2UpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJp
dmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldExhbmd1YWdlKGxhbmd1YWdlKTsKIH0KIAotdm9p
ZCBJbmJhbmRUZXh0VHJhY2s6OndpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2
YXRlKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6OndpbGxSZW1vdmUoKQogewotICAgIGlmICghbWVk
aWFFbGVtZW50KCkpCisgICAgYXV0byogZWxlbWVudCA9IG1lZGlhRWxlbWVudCgpOworICAgIGlm
ICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2
YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKLSAgICBtZWRpYUVsZW1lbnQoKS0+cmVt
b3ZlVGV4dFRyYWNrKCp0aGlzKTsKKyAgICBlbGVtZW50LT5yZW1vdmVUZXh0VHJhY2soKnRoaXMp
OwogfQogCiB2b2lkIEluYmFuZFRleHRUcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKCkKQEAg
LTE5NiwzNCArMTY5LDMwIEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrOjp1cGRhdGVLaW5kRnJvbVBy
aXZhdGUoKQogICAgIHN3aXRjaCAobV9wcml2YXRlLT5raW5kKCkpIHsKICAgICBjYXNlIEluYmFu
ZFRleHRUcmFja1ByaXZhdGU6OlN1YnRpdGxlczoKICAgICAgICAgc2V0S2luZChLaW5kOjpTdWJ0
aXRsZXMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZTo6Q2FwdGlvbnM6CiAgICAgICAgIHNldEtpbmQoS2luZDo6Q2FwdGlv
bnMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZTo6RGVzY3JpcHRpb25zOgogICAgICAgICBzZXRLaW5kKEtpbmQ6OkRlc2Ny
aXB0aW9ucyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlOjpDaGFwdGVyczoKICAgICAgICAgc2V0S2luZChLaW5kOjpDaGFw
dGVycyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlOjpNZXRhZGF0YToKICAgICAgICAgc2V0S2luZChLaW5kOjpNZXRhZGF0
YSk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlOjpGb3JjZWQ6CiAgICAgICAgIHNldEtpbmQoS2luZDo6Rm9yY2VkKTsKLSAg
ICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluYmFuZFRleHRUcmFja1By
aXZhdGU6Ok5vbmU6Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAog
TWVkaWFUaW1lIEluYmFuZFRleHRUcmFjazo6c3RhcnRUaW1lVmFyaWFuY2UoKSBjb25zdAogewot
ICAgIGlmICghbV9wcml2YXRlKQotICAgICAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgp
OwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPnN0YXJ0VGltZVZhcmlhbmNlKCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5oCmluZGV4IDljZDAy
N2MzNmM4NWIwYWE1MTU2N2VlNjk2ZTEyNjZkMDg0NWYzM2UuLjg2NDgyYzI4YmQwMjI5NjA0YjNh
ZjI2OTVhMTczZTU3MjQ5OTQ2YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svSW5iYW5kVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJh
bmRUZXh0VHJhY2suaApAQCAtMzUsOSArMzUsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIEluYmFuZFRleHRUcmFjayA6IHB1YmxpYyBUZXh0VHJhY2ssIHB1YmxpYyBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQ2xpZW50IHsKK2NsYXNzIEluYmFuZFRleHRUcmFjayA6IHB1YmxpYyBU
ZXh0VHJhY2ssIHByaXZhdGUgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZT4pOworICAgIHN0YXRpYyBSZWY8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIFRleHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1By
aXZhdGUmKTsKICAgICB2aXJ0dWFsIH5JbmJhbmRUZXh0VHJhY2soKTsKIAogICAgIGJvb2wgaXND
bG9zZWRDYXB0aW9ucygpIGNvbnN0IG92ZXJyaWRlOwpAQCAtNTAsMzggKzUwLDM4IEBAIHB1Ymxp
YzoKIAogICAgIEF0b21pY1N0cmluZyBpbkJhbmRNZXRhZGF0YVRyYWNrRGlzcGF0Y2hUeXBlKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNldFByaXZhdGUoUGFzc1JlZlB0cjxJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlPik7CisgICAgdm9pZCBzZXRQcml2YXRlKEluYmFuZFRleHRUcmFja1By
aXZhdGUmKTsKIAogcHJvdGVjdGVkOgotICAgIEluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlPik7CisgICAgSW5iYW5kVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBU
ZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CiAKICAgICB2b2lkIHNl
dE1vZGVJbnRlcm5hbChNb2RlKTsKICAgICB2b2lkIHVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpOwog
Ci0gICAgUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IG1fcHJpdmF0ZTsKKyAgICBSZWY8
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwogCiBwcml2YXRlOgogICAgIGJvb2wg
aXNJbmJhbmQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdm9pZCBpZENoYW5n
ZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAg
IHZvaWQgbGFiZWxDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcm
KSBvdmVycmlkZTsKLSAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwg
Y29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsUmVtb3ZlKFRyYWNr
UHJpdmF0ZUJhc2UqKSBvdmVycmlkZTsKKyAgICB2b2lkIGlkQ2hhbmdlZChjb25zdCBBdG9taWNT
dHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGxhYmVsQ2hhbmdlZChjb25zdCBBdG9taWNTdHJp
bmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJp
bmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxSZW1vdmUoKSBvdmVycmlkZTsKIAotICAgIHZv
aWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiwg
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3Qgdm9pZCosIHVuc2lnbmVkKSBvdmVycmlkZSB7IEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYs
IGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkgb3ZlcnJpZGUgeyBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsgfQogCiAjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCi0gICAgdm9p
ZCBhZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmLCBj
b25zdCBNZWRpYVRpbWUmLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0
aW9uPiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQot
ICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1S
ZXByZXNlbnRhdGlvbj4pIG92ZXJyaWRlICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAg
dm9pZCByZW1vdmVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRp
bWUmLCBjb25zdCBNZWRpYVRpbWUmLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJl
c2VudGF0aW9uPikgb3ZlcnJpZGUgIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lk
IGFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUmVmPFNlcmlh
bGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiYmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZSB7
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCB1cGRhdGVEYXRhQ3VlKGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0
aW9uJikgb3ZlcnJpZGUgIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIHJlbW92
ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgU2VyaWFsaXplZFBs
YXRmb3JtUmVwcmVzZW50YXRpb24mKSBvdmVycmlkZSAgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQogI2VuZGlmCiAKLSAgICB2b2lkIGFkZEdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSosIFBhc3NSZWZQdHI8R2VuZXJpY0N1ZURhdGE+KSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9Ci0gICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZh
dGUqLCBHZW5lcmljQ3VlRGF0YSopIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
LSAgICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVy
aWNDdWVEYXRhKikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQg
YWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KKyAgICB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKSBvdmVy
cmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCByZW1vdmVHZW5lcmljQ3Vl
KEdlbmVyaWNDdWVEYXRhJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCi0g
ICAgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFN0
cmluZyYmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdm9pZCBwYXJz
ZVdlYlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IGNoYXIqLCB1bnNp
Z25lZCkgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZvaWQgcGFyc2VX
ZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBJU09XZWJWVFRDdWUm
KSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBwYXJzZVdlYlZU
VEZpbGVIZWFkZXIoU3RyaW5nJiYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
KyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBjaGFyKiwgdW5zaWduZWQpIG92ZXJy
aWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0
YShjb25zdCBJU09XZWJWVFRDdWUmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CiAKICAgICBNZWRpYVRpbWUgc3RhcnRUaW1lVmFyaWFuY2UoKSBjb25zdCBvdmVycmlkZTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRU
cmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFj
ay5jcHAKaW5kZXggZTU0MGU0OTQxYWVjYTg2YzBmZmVhNzUzNGI3YWEyMjZiMTJjYzJhNi4uYzk4
MTI1MTRmNWJjMmZmZmQzOGNiMzhmOGM2ZjlhMjg1NzllOTkxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcApAQCAtMjQsMjcg
KzI0LDI1IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkluYmFuZFdl
YlZUVFRleHRUcmFjay5oIgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAi
SW5iYW5kV2ViVlRUVGV4dFRyYWNrLmgiCi0KICNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2tQcml2
YXRlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CiAjaW5jbHVkZSAiVlRUUmVnaW9uTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8SW5iYW5kVGV4dFRyYWNrPiBJbmJhbmRX
ZWJWVFRUZXh0VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBU
ZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRl
PiBwbGF5ZXJQcml2YXRlKQoraW5saW5lIEluYmFuZFdlYlZUVFRleHRUcmFjazo6SW5iYW5kV2Vi
VlRUVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFja0Ns
aWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAg
OiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kV2ViVlRUVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVu
dCwgcGxheWVyUHJpdmF0ZSkpOwogfQogCi1JbmJhbmRXZWJWVFRUZXh0VHJhY2s6OkluYmFuZFdl
YlZUVFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tD
bGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0cmFja1By
aXZhdGUpCi0gICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZh
dGUpCitSZWY8SW5iYW5kVGV4dFRyYWNrPiBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNsaWVudCwg
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogeworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEluYmFuZFdlYlZUVFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJp
dmF0ZSkpOwogfQogCiBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6On5JbmJhbmRXZWJWVFRUZXh0VHJh
Y2soKQpAQCAtNTgsMTUgKzU2LDEzIEBAIFdlYlZUVFBhcnNlciYgSW5iYW5kV2ViVlRUVGV4dFRy
YWNrOjpwYXJzZXIoKQogICAgIHJldHVybiAqbV93ZWJWVFRQYXJzZXI7CiB9CiAKLXZvaWQgSW5i
YW5kV2ViVlRUVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSogdHJhY2tQcml2YXRlLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCit2
b2lkIEluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IGNoYXIq
IGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0
ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgcGFyc2VyKCkucGFyc2VCeXRlcyhk
YXRhLCBsZW5ndGgpOwogfQogCi12b2lkIEluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VXZWJW
VFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgY29uc3QgSVNP
V2ViVlRUQ3VlJiBjdWVEYXRhKQordm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBhcnNlV2Vi
VlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUmIGN1ZURhdGEpCiB7Ci0gICAgQVNTRVJUX1VO
VVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHBhcnNl
cigpLnBhcnNlQ3VlRGF0YShjdWVEYXRhKTsKIH0KIApAQCAtNzQsMTAgKzcwLDggQEAgdm9pZCBJ
bmJhbmRXZWJWVFRUZXh0VHJhY2s6Om5ld0N1ZXNQYXJzZWQoKQogewogICAgIFZlY3RvcjxSZWZQ
dHI8V2ViVlRUQ3VlRGF0YT4+IGN1ZXM7CiAgICAgcGFyc2VyKCkuZ2V0TmV3Q3VlcyhjdWVzKTsK
LQogICAgIGZvciAoYXV0byYgY3VlRGF0YSA6IGN1ZXMpIHsKICAgICAgICAgYXV0byB2dHRDdWUg
PSBWVFRDdWU6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqY3VlRGF0YSk7Ci0K
ICAgICAgICAgaWYgKGhhc0N1ZSh2dHRDdWUucHRyKCksIFRleHRUcmFja0N1ZTo6SWdub3JlRHVy
YXRpb24pKSB7CiAgICAgICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRXZWJWVFRUZXh0VHJhY2s6
Om5ld0N1ZXNQYXJzZWQgaWdub3JpbmcgYWxyZWFkeSBhZGRlZCBjdWU6IHN0YXJ0PSUuMmYsIGVu
ZD0lLjJmLCBjb250ZW50PVwiJXNcIlxuIiwgdnR0Q3VlLT5zdGFydFRpbWUoKSwgdnR0Q3VlLT5l
bmRUaW1lKCksIHZ0dEN1ZS0+dGV4dCgpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtOTAsMTMgKzg0LDEyIEBAIHZvaWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpuZXdS
ZWdpb25zUGFyc2VkKCkKIHsKICAgICBWZWN0b3I8UmVmUHRyPFZUVFJlZ2lvbj4+IG5ld1JlZ2lv
bnM7CiAgICAgcGFyc2VyKCkuZ2V0TmV3UmVnaW9ucyhuZXdSZWdpb25zKTsKLQogICAgIGZvciAo
YXV0byYgcmVnaW9uIDogbmV3UmVnaW9ucykgewogICAgICAgICByZWdpb24tPnNldFRyYWNrKHRo
aXMpOwotICAgICAgICByZWdpb25zKCktPmFkZChyZWdpb24pOworICAgICAgICByZWdpb25zKCkt
PmFkZChyZWdpb24ucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogfQotICAgIAorCiB2b2lkIElu
YmFuZFdlYlZUVFRleHRUcmFjazo6ZmlsZUZhaWxlZFRvUGFyc2UoKQogewogICAgIExPRyhNZWRp
YSwgIkVycm9yIHBhcnNpbmcgV2ViVlRUIHN0cmVhbS4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oCmluZGV4IDhjYzc3YTljZWRhM2Mz
N2JiMWY2ZTFkNWE1OTNkMjYzYzNkMjQ5ZWYuLjJhNTFlMzg1YTlmMmE0NDlmOGU5OWNkZjRiM2Fi
NGMwYmFmZWNkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5k
V2ViVlRUVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRX
ZWJWVFRUZXh0VHJhY2suaApAQCAtMzAsMjUgKzMwLDI0IEBACiAjaW5jbHVkZSAiSW5iYW5kVGV4
dFRyYWNrLmgiCiAjaW5jbHVkZSAiV2ViVlRUUGFyc2VyLmgiCiAjaW5jbHVkZSA8bWVtb3J5Pgot
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJ
bmJhbmRXZWJWVFRUZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgSW5iYW5kVGV4dFRyYWNrLCBwcml2
YXRlIFdlYlZUVFBhcnNlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbmJhbmRU
ZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50
KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CisgICAgc3RhdGljIFJlZjxJ
bmJhbmRUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNr
Q2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogICAgIHZpcnR1YWwgfkluYmFuZFdl
YlZUVFRleHRUcmFjaygpOwogCiBwcml2YXRlOgotICAgIEluYmFuZFdlYlZUVFRleHRUcmFjayhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxJbmJh
bmRUZXh0VHJhY2tQcml2YXRlPik7CisgICAgSW5iYW5kV2ViVlRUVGV4dFRyYWNrKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRl
Jik7CiAKICAgICBXZWJWVFRQYXJzZXImIHBhcnNlcigpOwotICAgIHZvaWQgcGFyc2VXZWJWVFRD
dWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25l
ZCBsZW5ndGgpIG92ZXJyaWRlOwotICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRl
eHRUcmFja1ByaXZhdGUqLCBjb25zdCBJU09XZWJWVFRDdWUmKSBvdmVycmlkZTsKKyAgICB2b2lk
IHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIGZp
bmFsOworICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IElTT1dlYlZUVEN1ZSYpIGZp
bmFsOwogCi0gICAgdm9pZCBuZXdDdWVzUGFyc2VkKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBuZXdS
ZWdpb25zUGFyc2VkKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBmaWxlRmFpbGVkVG9QYXJzZSgpIG92
ZXJyaWRlOworICAgIHZvaWQgbmV3Q3Vlc1BhcnNlZCgpIGZpbmFsOworICAgIHZvaWQgbmV3UmVn
aW9uc1BhcnNlZCgpIGZpbmFsOworICAgIHZvaWQgZmlsZUZhaWxlZFRvUGFyc2UoKSBmaW5hbDsK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJWVFRQYXJzZXI+IG1fd2ViVlRUUGFyc2VyOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5jcHAKaW5k
ZXggMjEwZjZhOWRmNWFjNzcxNzVhOTgxMmFjMDUxMDQyMjMyYTM0MGYzMy4uY2VmYTNmYmUwYjEz
OTI2YzYyN2YwZjY0ZWUzZDhkNDQ2Y2FhMDhhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5jcHAKQEAgLTk2LDExICs5NiwxMSBAQCB2b2lkIExv
YWRhYmxlVGV4dFRyYWNrOjpuZXdDdWVzQXZhaWxhYmxlKFRleHRUcmFja0xvYWRlciogbG9hZGVy
KQogCiAgICAgZm9yIChhdXRvJiBuZXdDdWUgOiBuZXdDdWVzKSB7CiAgICAgICAgIG5ld0N1ZS0+
c2V0VHJhY2sodGhpcyk7Ci0gICAgICAgIG1fY3Vlcy0+YWRkKG5ld0N1ZSk7CisgICAgICAgIG1f
Y3Vlcy0+YWRkKG5ld0N1ZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9CiAKICAgICBpZiAoY2xp
ZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT50ZXh0VHJhY2tBZGRDdWVzKHRoaXMsIG1fY3Vlcy5n
ZXQoKSk7CisgICAgICAgIGNsaWVudCgpLT50ZXh0VHJhY2tBZGRDdWVzKCp0aGlzLCAqbV9jdWVz
KTsKIH0KIAogdm9pZCBMb2FkYWJsZVRleHRUcmFjazo6Y3VlTG9hZGluZ0NvbXBsZXRlZChUZXh0
VHJhY2tMb2FkZXIqIGxvYWRlciwgYm9vbCBsb2FkaW5nRmFpbGVkKQpAQCAtMTIyLDcgKzEyMiw3
IEBAIHZvaWQgTG9hZGFibGVUZXh0VHJhY2s6Om5ld1JlZ2lvbnNBdmFpbGFibGUoVGV4dFRyYWNr
TG9hZGVyKiBsb2FkZXIpCiAKICAgICBmb3IgKGF1dG8mIG5ld1JlZ2lvbiA6IG5ld1JlZ2lvbnMp
IHsKICAgICAgICAgbmV3UmVnaW9uLT5zZXRUcmFjayh0aGlzKTsKLSAgICAgICAgcmVnaW9ucygp
LT5hZGQobmV3UmVnaW9uKTsKKyAgICAgICAgcmVnaW9ucygpLT5hZGQobmV3UmVnaW9uLnJlbGVh
c2VOb25OdWxsKCkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJh
Y2suY3BwCmluZGV4IDk2YmNkN2VkMzUwZDI4ZTA0MmVhZTY4Y2VkNTIwMWE3MWYzYzVmMDkuLmIw
Yzg2MDAwM2RmZjFjODBkOGU2OTMyNDU3ZmJjMTM5ZTRlMmI3ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFjay5jcHAKQEAgLTEyMCw4ICsxMjAsNyBAQCBUZXh0VHJhY2s6On5U
ZXh0VHJhY2soKQogewogICAgIGlmIChtX2N1ZXMpIHsKICAgICAgICAgaWYgKG1fY2xpZW50KQot
ICAgICAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZXModGhpcywgbV9jdWVzLmdl
dCgpKTsKLQorICAgICAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZXMoKnRoaXMs
ICptX2N1ZXMpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY3Vlcy0+bGVuZ3Ro
KCk7ICsraSkKICAgICAgICAgICAgIG1fY3Vlcy0+aXRlbShpKS0+c2V0VHJhY2sobnVsbHB0cik7
CiAgICAgfQpAQCAtMTg5LDcgKzE4OCw3IEBAIHZvaWQgVGV4dFRyYWNrOjpzZXRLaW5kKEtpbmQg
bmV3S2luZCkKICAgICAvLyAzLiBJZiB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGlz
IHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlCiAg
ICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHNvdXJjZUJ1ZmZlci50ZXh0VHJhY2tzLgogICAg
IGlmIChtX3NvdXJjZUJ1ZmZlcikKLSAgICAgICAgbV9zb3VyY2VCdWZmZXItPnRleHRUcmFja3Mo
KS0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOworICAgICAgICBtX3NvdXJjZUJ1ZmZlci0+dGV4dFRy
YWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIC8vIDQuIFF1ZXVlIGEgdGFzayB0
byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCB0aGUgVGV4dFRyYWNrTGlzdCBv
YmplY3QgcmVmZXJlbmNlZCBieQogICAgIC8vIHRoZSB0ZXh0VHJhY2tzIGF0dHJpYnV0ZSBvbiB0
aGUgSFRNTE1lZGlhRWxlbWVudC4KQEAgLTE5OCw3ICsxOTcsNyBAQCB2b2lkIFRleHRUcmFjazo6
c2V0S2luZChLaW5kIG5ld0tpbmQpCiAjZW5kaWYKIAogICAgIGlmIChtX2NsaWVudCAmJiBvbGRL
aW5kICE9IG1fa2luZCkKLSAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja0tpbmRDaGFuZ2VkKHRo
aXMpOworICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrS2luZENoYW5nZWQoKnRoaXMpOwogfQog
CiB2b2lkIFRleHRUcmFjazo6c2V0S2luZEtleXdvcmRJZ25vcmluZ0FTQ0lJQ2FzZShTdHJpbmdW
aWV3IGtleXdvcmQpCkBAIC0yMzYsNyArMjM1LDcgQEAgdm9pZCBUZXh0VHJhY2s6OnNldE1vZGUo
TW9kZSBtb2RlKQogICAgIC8vIElmIG1vZGUgY2hhbmdlcyB0byBkaXNhYmxlZCwgcmVtb3ZlIHRo
aXMgdHJhY2sncyBjdWVzIGZyb20gdGhlIGNsaWVudAogICAgIC8vIGJlY2F1c2UgdGhleSB3aWxs
IG5vIGxvbmdlciBiZSBhY2Nlc3NpYmxlIGZyb20gdGhlIGN1ZXMoKSBmdW5jdGlvbi4KICAgICBp
ZiAobW9kZSA9PSBNb2RlOjpEaXNhYmxlZCAmJiBtX2NsaWVudCAmJiBtX2N1ZXMpCi0gICAgICAg
IG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKHRoaXMsIG1fY3Vlcy5nZXQoKSk7CisgICAg
ICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKCp0aGlzLCAqbV9jdWVzKTsKIAogICAg
IGlmIChtb2RlICE9IE1vZGU6OlNob3dpbmcgJiYgbV9jdWVzKSB7CiAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9jdWVzLT5sZW5ndGgoKTsgKytpKSB7CkBAIC0yNDksNyArMjQ4LDcg
QEAgdm9pZCBUZXh0VHJhY2s6OnNldE1vZGUoTW9kZSBtb2RlKQogICAgIG1fbW9kZSA9IG1vZGU7
CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tNb2RlQ2hh
bmdlZCh0aGlzKTsKKyAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja01vZGVDaGFuZ2VkKCp0aGlz
KTsKIH0KIAogVGV4dFRyYWNrQ3VlTGlzdCogVGV4dFRyYWNrOjpjdWVzKCkKQEAgLTI3MCw3ICsy
NjksNyBAQCB2b2lkIFRleHRUcmFjazo6cmVtb3ZlQWxsQ3VlcygpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1
ZXModGhpcywgbV9jdWVzLmdldCgpKTsKKyAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92
ZUN1ZXMoKnRoaXMsICptX2N1ZXMpOwogICAgIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bV9jdWVzLT5sZW5ndGgoKTsgKytpKQogICAgICAgICBtX2N1ZXMtPml0ZW0oaSktPnNldFRyYWNr
KG51bGxwdHIpOwpAQCAtMjg4LDcgKzI4Nyw3IEBAIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFj
azo6YWN0aXZlQ3VlcygpIGNvbnN0CiAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNz
L3dlYi1hcHBzL2N1cnJlbnQtd29yay8jZG9tLXRleHR0cmFjay1hY3RpdmVjdWVzCiAgICAgaWYg
KCFtX2N1ZXMgfHwgbV9tb2RlID09IE1vZGU6OkRpc2FibGVkKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICByZXR1cm4gbV9jdWVzLT5hY3RpdmVDdWVzKCk7CisgICAgcmV0dXJuICZtX2N1
ZXMtPmFjdGl2ZUN1ZXMoKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gVGV4dFRyYWNrOjphZGRD
dWUoUmVmPFRleHRUcmFja0N1ZT4mJiBjdWUpCkBAIC0zMTgsMTAgKzMxNywxMCBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBUZXh0VHJhY2s6OmFkZEN1ZShSZWY8VGV4dFRyYWNrQ3VlPiYmIGN1ZSkKIAog
ICAgIC8vIDIuIEFkZCBjdWUgdG8gdGhlIG1ldGhvZCdzIFRleHRUcmFjayBvYmplY3QncyB0ZXh0
IHRyYWNrJ3MgdGV4dCB0cmFjayBsaXN0IG9mIGN1ZXMuCiAgICAgY3VlLT5zZXRUcmFjayh0aGlz
KTsKLSAgICBlbnN1cmVUZXh0VHJhY2tDdWVMaXN0KCkuYWRkKGN1ZS5wdHIoKSk7CisgICAgZW5z
dXJlVGV4dFRyYWNrQ3VlTGlzdCgpLmFkZChjdWUuY29weVJlZigpKTsKICAgICAKICAgICBpZiAo
bV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tBZGRDdWUodGhpcywgY3VlKTsK
KyAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja0FkZEN1ZSgqdGhpcywgY3VlKTsKIAogICAgIHJl
dHVybiB7IH07CiB9CkBAIC0zMzgsMTIgKzMzNywxMiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBUZXh0
VHJhY2s6OnJlbW92ZUN1ZShUZXh0VHJhY2tDdWUmIGN1ZSkKICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IE5PVF9GT1VORF9FUlIgfTsKIAogICAgIC8vIDIuIFJlbW92ZSBjdWUgZnJvbSB0aGUg
bWV0aG9kJ3MgVGV4dFRyYWNrIG9iamVjdCdzIHRleHQgdHJhY2sncyB0ZXh0IHRyYWNrIGxpc3Qg
b2YgY3Vlcy4KLSAgICBpZiAoIW1fY3VlcyB8fCAhbV9jdWVzLT5yZW1vdmUoJmN1ZSkpCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NUQVRFX0VSUiB9OwotCisgICAgQVNTRVJU
KG1fY3Vlcyk7CisgICAgbV9jdWVzLT5yZW1vdmUoY3VlKTsKKyAgICBjdWUuc2V0SXNBY3RpdmUo
ZmFsc2UpOwogICAgIGN1ZS5zZXRUcmFjayhudWxscHRyKTsKICAgICBpZiAobV9jbGllbnQpCi0g
ICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUodGhpcywgY3VlKTsKKyAgICAgICAg
bV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZSgqdGhpcywgY3VlKTsKIAogICAgIHJldHVybiB7
IH07CiB9CkBAIC0zOTIsMTAgKzM5MSw5IEBAIHZvaWQgVGV4dFRyYWNrOjphZGRSZWdpb24oUmVm
UHRyPFZUVFJlZ2lvbj4mJiByZWdpb24pCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAv
LyBPdGhlcndpc2U6IGFkZCByZWdpb24gdG8gdGhlIG1ldGhvZCdzIFRleHRUcmFjayBvYmplY3Qn
cyB0ZXh0IHRyYWNrCi0gICAgLy8gbGlzdCBvZiByZWdpb25zLgorICAgIC8vIE90aGVyd2lzZTog
YWRkIHJlZ2lvbiB0byB0aGUgbWV0aG9kJ3MgVGV4dFRyYWNrIG9iamVjdCdzIHRleHQgdHJhY2sg
bGlzdCBvZiByZWdpb25zLgogICAgIHJlZ2lvbi0+c2V0VHJhY2sodGhpcyk7Ci0gICAgcmVnaW9u
TGlzdC5hZGQoV1RGTW92ZShyZWdpb24pKTsKKyAgICByZWdpb25MaXN0LmFkZChyZWdpb24ucmVs
ZWFzZU5vbk51bGwoKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFRleHRUcmFjazo6cmVtb3Zl
UmVnaW9uKFZUVFJlZ2lvbiogcmVnaW9uKQpAQCAtNDA4LDkgKzQwNiw4IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IFRleHRUcmFjazo6cmVtb3ZlUmVnaW9uKFZUVFJlZ2lvbiogcmVnaW9uKQogICAgIGlm
IChyZWdpb24tPnRyYWNrKCkgIT0gdGhpcykKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5P
VF9GT1VORF9FUlIgfTsKIAotICAgIGlmICghbV9yZWdpb25zIHx8ICFtX3JlZ2lvbnMtPnJlbW92
ZShyZWdpb24pKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFURV9FUlIg
fTsKLQorICAgIEFTU0VSVChtX3JlZ2lvbnMpOworICAgIG1fcmVnaW9ucy0+cmVtb3ZlKCpyZWdp
b24pOwogICAgIHJlZ2lvbi0+c2V0VHJhY2sobnVsbHB0cik7CiAgICAgcmV0dXJuIHsgfTsKIH0K
QEAgLTQyMiw3ICs0MTksNyBAQCB2b2lkIFRleHRUcmFjazo6Y3VlV2lsbENoYW5nZShUZXh0VHJh
Y2tDdWUqIGN1ZSkKIAogICAgIC8vIFRoZSBjdWUgbWF5IG5lZWQgdG8gYmUgcmVwb3NpdGlvbmVk
IGluIHRoZSBtZWRpYSBlbGVtZW50J3MgaW50ZXJ2YWwgdHJlZSwgbWF5IG5lZWQgdG8KICAgICAv
LyBiZSByZS1yZW5kZXJlZCwgZXRjLCBzbyByZW1vdmUgaXQgYmVmb3JlIHRoZSBtb2RpZmljYXRp
b24uLi4KLSAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKHRoaXMsICpjdWUpOworICAg
IG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUoKnRoaXMsICpjdWUpOwogfQogCiB2b2lkIFRl
eHRUcmFjazo6Y3VlRGlkQ2hhbmdlKFRleHRUcmFja0N1ZSogY3VlKQpAQCAtNDMxLDEwICs0Mjgs
MTAgQEAgdm9pZCBUZXh0VHJhY2s6OmN1ZURpZENoYW5nZShUZXh0VHJhY2tDdWUqIGN1ZSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gTWFrZSBzdXJlIHRoZSBUZXh0VHJhY2tDdWVMaXN0IG9y
ZGVyIGlzIHVwLXRvLWRhdGUuCi0gICAgZW5zdXJlVGV4dFRyYWNrQ3VlTGlzdCgpLnVwZGF0ZUN1
ZUluZGV4KGN1ZSk7CisgICAgZW5zdXJlVGV4dFRyYWNrQ3VlTGlzdCgpLnVwZGF0ZUN1ZUluZGV4
KCpjdWUpOwogCiAgICAgLy8gLi4uIGFuZCBhZGQgaXQgYmFjayBhZ2Fpbi4KLSAgICBtX2NsaWVu
dC0+dGV4dFRyYWNrQWRkQ3VlKHRoaXMsICpjdWUpOworICAgIG1fY2xpZW50LT50ZXh0VHJhY2tB
ZGRDdWUoKnRoaXMsICpjdWUpOwogfQogCiBpbnQgVGV4dFRyYWNrOjp0cmFja0luZGV4KCkKQEAg
LTU2NCw3ICs1NjEsNyBAQCB2b2lkIFRleHRUcmFjazo6c2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWlj
U3RyaW5nJiBsYW5ndWFnZSkKICAgICAvLyAzLiBJZiB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0
ZSBvbiB0aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1ZXVlIGEgdGFzayB0byBmaXJlIGEg
c2ltcGxlCiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHNvdXJjZUJ1ZmZlci50ZXh0VHJh
Y2tzLgogICAgIGlmIChtX3NvdXJjZUJ1ZmZlcikKLSAgICAgICAgbV9zb3VyY2VCdWZmZXItPnRl
eHRUcmFja3MoKS0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOworICAgICAgICBtX3NvdXJjZUJ1ZmZl
ci0+dGV4dFRyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIC8vIDQuIFF1ZXVl
IGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCB0aGUgVGV4dFRy
YWNrTGlzdCBvYmplY3QgcmVmZXJlbmNlZCBieQogICAgIC8vIHRoZSB0ZXh0VHJhY2tzIGF0dHJp
YnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFjay5oCmluZGV4IGI4MDQ5YzcwY2FlMWFhOTc4NWMwNGE1NDk5YmM3YWU2YzgzMGNlZGIuLmRj
ZTIwMTA1Zjk4NzliZWMzYjI3YTY4OTRiOWQ3ODVhMjE3ZTBiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2suaApAQCAtNDQsMTIgKzQ0LDEyIEBAIGNsYXNzIFZUVFJlZ2lvbkxp
c3Q7CiBjbGFzcyBUZXh0VHJhY2tDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgflRleHRU
cmFja0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChU
ZXh0VHJhY2sqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRl
eHRUcmFjayopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJh
Y2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0
VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tD
dWUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2sq
LCBUZXh0VHJhY2tDdWUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0tpbmRDaGFu
Z2VkKFRleHRUcmFjayYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrTW9kZUNoYW5n
ZWQoVGV4dFRyYWNrJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWVzKFRl
eHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYsIFRleHRU
cmFja0N1ZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRU
cmFjayYsIFRleHRUcmFja0N1ZSYpID0gMDsKIH07CiAKIGNsYXNzIFRleHRUcmFjayA6IHB1Ymxp
YyBUcmFja0Jhc2UsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAppbmRleCBmY2JhMTlkMGRiYmFkNGUw
MDQ3OTA5MWVjZDU2ZTgyNzJkY2U1OGVkLi4zZGE2NmUwNWUyNzY3OWZmNTEyMzQzYjg5ZTRhMzMz
NDRmNDRiZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
a0N1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3Bw
CkBAIC00OSw4ICs0OSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGNvbnN0
IGludCBpbnZhbGlkQ3VlSW5kZXggPSAtMTsKLQogY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJh
Y2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lkKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbWljU3RyaW5nPiBjdWUoImN1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpOwpAQCAtNjAsOSArNTgsNiBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFj
a0N1ZTo6Y3VlU2hhZG93UHNldWRvSWQoKQogVGV4dFRyYWNrQ3VlOjpUZXh0VHJhY2tDdWUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBlbmQpCiAgICAgOiBtX3N0YXJ0VGltZShzdGFydCkKICAgICAsIG1fZW5k
VGltZShlbmQpCi0gICAgLCBtX2N1ZUluZGV4KGludmFsaWRDdWVJbmRleCkKLSAgICAsIG1fcHJv
Y2Vzc2luZ0N1ZUNoYW5nZXMoMCkKLSAgICAsIG1fdHJhY2soMCkKICAgICAsIG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dChjb250ZXh0KQogICAgICwgbV9pc0FjdGl2ZShmYWxzZSkKICAgICAsIG1f
cGF1c2VPbkV4aXQoZmFsc2UpCkBAIC0xNDksMjMgKzE0NCw2IEBAIHZvaWQgVGV4dFRyYWNrQ3Vl
OjpzZXRQYXVzZU9uRXhpdChib29sIHZhbHVlKQogICAgIG1fcGF1c2VPbkV4aXQgPSB2YWx1ZTsK
IH0KIAotaW50IFRleHRUcmFja0N1ZTo6Y3VlSW5kZXgoKQotewotICAgIGlmIChtX2N1ZUluZGV4
ID09IGludmFsaWRDdWVJbmRleCkgewotICAgICAgICBBU1NFUlQodHJhY2soKSk7Ci0gICAgICAg
IEFTU0VSVCh0cmFjaygpLT5jdWVzKCkpOwotICAgICAgICBpZiAoVGV4dFRyYWNrQ3VlTGlzdCog
Y3VlTGlzdCA9IHRyYWNrKCktPmN1ZXMoKSkKLSAgICAgICAgICAgIG1fY3VlSW5kZXggPSBjdWVM
aXN0LT5nZXRDdWVJbmRleCh0aGlzKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbV9jdWVJbmRleDsK
LX0KLQotdm9pZCBUZXh0VHJhY2tDdWU6OmludmFsaWRhdGVDdWVJbmRleCgpCi17Ci0gICAgbV9j
dWVJbmRleCA9IGludmFsaWRDdWVJbmRleDsKLX0KLQogYm9vbCBUZXh0VHJhY2tDdWU6OmRpc3Bh
dGNoRXZlbnQoRXZlbnQmIGV2ZW50KQogewogICAgIC8vIFdoZW4gYSBUZXh0VHJhY2sncyBtb2Rl
IGlzIGRpc2FibGVkOiBubyBjdWVzIGFyZSBhY3RpdmUsIG5vIGV2ZW50cyBmaXJlZC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCmluZGV4IDU3MzUxZGM2MGUyYjZlYWY1
MDgwZjAzMDlhNDUxNjhmNzgzMGE3MzQuLjM1NmI2MzM1OTc0NjA0N2Q2YjFkMWY4ZjdmZGEwOGQy
ODQ2Yjc4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
Q3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaApAQCAt
NjUsOSArNjUsNiBAQCBwdWJsaWM6CiAgICAgTWVkaWFUaW1lIGVuZE1lZGlhVGltZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZW5kVGltZTsgfQogICAgIHZvaWQgc2V0RW5kVGltZShjb25zdCBNZWRpYVRp
bWUmKTsKIAotICAgIGludCBjdWVJbmRleCgpOwotICAgIHZvaWQgaW52YWxpZGF0ZUN1ZUluZGV4
KCk7Ci0KICAgICBib29sIGlzQWN0aXZlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElzQWN0aXZl
KGJvb2wpOwogCkBAIC0xMTEsMTAgKzEwOCw5IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1faWQ7
CiAgICAgTWVkaWFUaW1lIG1fc3RhcnRUaW1lOwogICAgIE1lZGlhVGltZSBtX2VuZFRpbWU7Ci0g
ICAgaW50IG1fY3VlSW5kZXg7Ci0gICAgaW50IG1fcHJvY2Vzc2luZ0N1ZUNoYW5nZXM7CisgICAg
aW50IG1fcHJvY2Vzc2luZ0N1ZUNoYW5nZXMgeyAwIH07CiAKLSAgICBUZXh0VHJhY2sqIG1fdHJh
Y2s7CisgICAgVGV4dFRyYWNrKiBtX3RyYWNrIHsgbnVsbHB0ciB9OwogCiAgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmNwcAppbmRleCBmZmQ4ZWFlNGQ5OTM2
NDgwYTZhNWJjMzU5MmZlMDgwYjcxNmUxM2ExLi5hMTk2ZTQzMWViYWJmYWJhYmNhNWZkOGE3YTM1
YzkxNjlhNTBhMWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0N1ZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
Q3VlTGlzdC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yOSwxMTcgKzMwLDEwMyBAQAogCiAjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlTGlzdC5o
IgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CisvLyBDaGVja2luZyBzb3J0aW5nIGlzIHRvbyBzbG93
IGZvciBnZW5lcmFsIHVzZTsgdHVybiBpdCBvbiBleHBsaWNpdGx5IHdoZW4gd29ya2luZyBvbiB0
aGlzIGNsYXNzLgorI3VuZGVmIENIRUNLX1NPUlRJTkcKIAotVGV4dFRyYWNrQ3VlTGlzdDo6VGV4
dFRyYWNrQ3VlTGlzdCgpCi17Ci19CisjaWZkZWYgQ0hFQ0tfU09SVElORworI2RlZmluZSBBU1NF
UlRfU09SVEVEKGJlZ2luLCBlbmQsIGNvbXBhcmF0b3IpIEFTU0VSVChzdGQ6OmlzX3NvcnRlZChi
ZWdpbiwgZW5kLCBjb21wYXJhdG9yKSkKKyNlbHNlCisjZGVmaW5lIEFTU0VSVF9TT1JURUQoYmVn
aW4sIGVuZCwgY29tcGFyYXRvcikgKCh2b2lkKTApCisjZW5kaWYKIAotdW5zaWduZWQgbG9uZyBU
ZXh0VHJhY2tDdWVMaXN0OjpsZW5ndGgoKSBjb25zdAorbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dGF0aWMgaW5saW5lIGJvb2wgY29tcGFyZUN1ZXMoY29uc3QgUmVmUHRyPFRleHRUcmFja0N1ZT4m
IGEsIGNvbnN0IFJlZlB0cjxUZXh0VHJhY2tDdWU+JiBiKQogewotICAgIHJldHVybiBtX2xpc3Qu
c2l6ZSgpOworICAgIHJldHVybiBhLT5pc09yZGVyZWRCZWZvcmUoYi5nZXQoKSk7CiB9CiAKLXVu
c2lnbmVkIGxvbmcgVGV4dFRyYWNrQ3VlTGlzdDo6Z2V0Q3VlSW5kZXgoVGV4dFRyYWNrQ3VlKiBj
dWUpIGNvbnN0Cit1bnNpZ25lZCBUZXh0VHJhY2tDdWVMaXN0OjpjdWVJbmRleChUZXh0VHJhY2tD
dWUmIGN1ZSkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9saXN0LmZpbmQoY3VlKTsKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwLCBzaXplID0gbV92ZWN0b3Iuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7
CisgICAgICAgIGlmIChtX3ZlY3RvcltpXSA9PSAmY3VlKQorICAgICAgICAgICAgcmV0dXJuIGk7
CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOwogfQogCiBU
ZXh0VHJhY2tDdWUqIFRleHRUcmFja0N1ZUxpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0
CiB7Ci0gICAgaWYgKGluZGV4IDwgbV9saXN0LnNpemUoKSkKLSAgICAgICAgcmV0dXJuIG1fbGlz
dFtpbmRleF0uZ2V0KCk7Ci0gICAgcmV0dXJuIDA7CisgICAgaWYgKGluZGV4ID49IG1fdmVjdG9y
LnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIG1fdmVjdG9yW2lu
ZGV4XS5nZXQoKTsKIH0KIAogVGV4dFRyYWNrQ3VlKiBUZXh0VHJhY2tDdWVMaXN0OjpnZXRDdWVC
eUlkKGNvbnN0IFN0cmluZyYgaWQpIGNvbnN0CiB7Ci0gICAgZm9yIChhdXRvJiBjdWUgOiBtX2xp
c3QpIHsKKyAgICBmb3IgKGF1dG8mIGN1ZSA6IG1fdmVjdG9yKSB7CiAgICAgICAgIGlmIChjdWUt
PmlkKCkgPT0gaWQpCiAgICAgICAgICAgICByZXR1cm4gY3VlLmdldCgpOwogICAgIH0KLSAgICBy
ZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotVGV4dFRyYWNrQ3VlTGlzdCogVGV4
dFRyYWNrQ3VlTGlzdDo6YWN0aXZlQ3VlcygpCitUZXh0VHJhY2tDdWVMaXN0JiBUZXh0VHJhY2tD
dWVMaXN0OjphY3RpdmVDdWVzKCkKIHsKICAgICBpZiAoIW1fYWN0aXZlQ3VlcykKICAgICAgICAg
bV9hY3RpdmVDdWVzID0gY3JlYXRlKCk7CiAKLSAgICBtX2FjdGl2ZUN1ZXMtPmNsZWFyKCk7Ci0g
ICAgZm9yIChhdXRvJiBjdWUgOiBtX2xpc3QpIHsKKyAgICBWZWN0b3I8UmVmUHRyPFRleHRUcmFj
a0N1ZT4+IGFjdGl2ZUN1ZXNWZWN0b3I7CisgICAgZm9yIChhdXRvJiBjdWUgOiBtX3ZlY3Rvcikg
ewogICAgICAgICBpZiAoY3VlLT5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgbV9hY3RpdmVDdWVz
LT5hZGQoY3VlKTsKKyAgICAgICAgICAgIGFjdGl2ZUN1ZXNWZWN0b3IuYXBwZW5kKGN1ZSk7CiAg
ICAgfQotICAgIHJldHVybiBtX2FjdGl2ZUN1ZXMuZ2V0KCk7CisgICAgQVNTRVJUX1NPUlRFRChh
Y3RpdmVDdWVzVmVjdG9yLmJlZ2luKCksIGFjdGl2ZUN1ZXNWZWN0b3IuZW5kKCksIGNvbXBhcmVD
dWVzKTsKKyAgICBtX2FjdGl2ZUN1ZXMtPm1fdmVjdG9yID0gV1RGTW92ZShhY3RpdmVDdWVzVmVj
dG9yKTsKKworICAgIC8vIEZJWE1FOiBUaGlzIGxpc3Qgb2YgYWN0aXZlIGN1ZXMgaXMgbm90IHVw
ZGF0ZWQgYXMgY3VlcyBhcmUgYWRkZWQsIHJlbW92ZWQsIGJlY29tZSBhY3RpdmUsIGFuZCBiZWNv
bWUgaW5hY3RpdmUuCisgICAgLy8gSW5zdGVhZCBpdCBpcyBvbmx5IHVwZGF0ZWQgZWFjaCB0aW1l
IHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGFnYWluLiBUaGF0IGlzIG5vdCBjb25zaXN0ZW50IHdp
dGggb3RoZXIgZHluYW1pYyBET00gbGlzdHMuCisgICAgcmV0dXJuICptX2FjdGl2ZUN1ZXM7CiB9
CiAKLWJvb2wgVGV4dFRyYWNrQ3VlTGlzdDo6YWRkKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBj
dWUpCit2b2lkIFRleHRUcmFja0N1ZUxpc3Q6OmFkZChSZWY8VGV4dFRyYWNrQ3VlPiYmIGN1ZSkK
IHsKICAgICBBU1NFUlQoY3VlLT5zdGFydE1lZGlhVGltZSgpID49IE1lZGlhVGltZTo6emVyb1Rp
bWUoKSk7CiAgICAgQVNTRVJUKGN1ZS0+ZW5kTWVkaWFUaW1lKCkgPj0gTWVkaWFUaW1lOjp6ZXJv
VGltZSgpKTsKIAotICAgIHJldHVybiBhZGQoY3VlLCAwLCBtX2xpc3Quc2l6ZSgpKTsKKyAgICBS
ZWZQdHI8VGV4dFRyYWNrQ3VlPiBjdWVSZWZQdHIgeyBXVEZNb3ZlKGN1ZSkgfTsKKyAgICB1bnNp
Z25lZCBpbnNlcnRpb25Qb3NpdGlvbiA9IHN0ZDo6dXBwZXJfYm91bmQobV92ZWN0b3IuYmVnaW4o
KSwgbV92ZWN0b3IuZW5kKCksIGN1ZVJlZlB0ciwgY29tcGFyZUN1ZXMpIC0gbV92ZWN0b3IuYmVn
aW4oKTsKKyAgICBBU1NFUlRfU09SVEVEKG1fdmVjdG9yLmJlZ2luKCksIG1fdmVjdG9yLmVuZCgp
LCBjb21wYXJlQ3Vlcyk7CisgICAgbV92ZWN0b3IuaW5zZXJ0KGluc2VydGlvblBvc2l0aW9uLCBX
VEZNb3ZlKGN1ZVJlZlB0cikpOworICAgIEFTU0VSVF9TT1JURUQobV92ZWN0b3IuYmVnaW4oKSwg
bV92ZWN0b3IuZW5kKCksIGNvbXBhcmVDdWVzKTsKIH0KIAotYm9vbCBUZXh0VHJhY2tDdWVMaXN0
OjphZGQoUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+IHBycEN1ZSwgc2l6ZV90IHN0YXJ0LCBzaXpl
X3QgZW5kKQordm9pZCBUZXh0VHJhY2tDdWVMaXN0OjpyZW1vdmUoVGV4dFRyYWNrQ3VlJiBjdWUp
CiB7Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oc3RhcnQgPD0gbV9saXN0
LnNpemUoKSk7Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oZW5kIDw9IG1f
bGlzdC5zaXplKCkpOwotCi0gICAgLy8gTWFpbnRhaW4gdGV4dCB0cmFjayBjdWUgb3JkZXI6Ci0g
ICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8j
dGV4dC10cmFjay1jdWUtb3JkZXIKLSAgICBSZWZQdHI8VGV4dFRyYWNrQ3VlPiBjdWUgPSBwcnBD
dWU7Ci0gICAgaWYgKHN0YXJ0ID09IGVuZCkgewotICAgICAgICBpZiAoIW1fbGlzdC5pc0VtcHR5
KCkgJiYgKHN0YXJ0ID4gMCkgJiYgKG1fbGlzdFtzdGFydCAtIDFdLmdldCgpID09IGN1ZS5nZXQo
KSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgbV9saXN0Lmluc2VydChz
dGFydCwgY3VlKTsKLSAgICAgICAgaW52YWxpZGF0ZUN1ZUluZGV4ZXMoc3RhcnQpOwotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBzaXplX3QgaW5kZXggPSAoc3RhcnQgKyBlbmQp
IC8gMjsKLSAgICBpZiAoY3VlLT5pc09yZGVyZWRCZWZvcmUobV9saXN0W2luZGV4XS5nZXQoKSkp
Ci0gICAgICAgIHJldHVybiBhZGQoV1RGTW92ZShjdWUpLCBzdGFydCwgaW5kZXgpOwotCi0gICAg
cmV0dXJuIGFkZChXVEZNb3ZlKGN1ZSksIGluZGV4ICsgMSwgZW5kKTsKKyAgICBBU1NFUlRfU09S
VEVEKG1fdmVjdG9yLmJlZ2luKCksIG1fdmVjdG9yLmVuZCgpLCBjb21wYXJlQ3Vlcyk7CisgICAg
bV92ZWN0b3IucmVtb3ZlKGN1ZUluZGV4KGN1ZSkpOworICAgIEFTU0VSVF9TT1JURUQobV92ZWN0
b3IuYmVnaW4oKSwgbV92ZWN0b3IuZW5kKCksIGNvbXBhcmVDdWVzKTsKIH0KIAotYm9vbCBUZXh0
VHJhY2tDdWVMaXN0OjpyZW1vdmUoVGV4dFRyYWNrQ3VlKiBjdWUpCit2b2lkIFRleHRUcmFja0N1
ZUxpc3Q6OnVwZGF0ZUN1ZUluZGV4KFRleHRUcmFja0N1ZSYgY3VlKQogewotICAgIHNpemVfdCBp
bmRleCA9IG1fbGlzdC5maW5kKGN1ZSk7Ci0gICAgaWYgKGluZGV4ID09IG5vdEZvdW5kKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBjdWUtPnNldElzQWN0aXZlKGZhbHNlKTsKLSAgICBt
X2xpc3QucmVtb3ZlKGluZGV4KTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBUZXh0VHJh
Y2tDdWVMaXN0Ojpjb250YWlucyhUZXh0VHJhY2tDdWUqIGN1ZSkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9saXN0LmNvbnRhaW5zKGN1ZSk7Ci19Ci0KLWJvb2wgVGV4dFRyYWNrQ3VlTGlzdDo6dXBk
YXRlQ3VlSW5kZXgoVGV4dFRyYWNrQ3VlKiBjdWUpCi17Ci0gICAgaWYgKCFjb250YWlucyhjdWUp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgcmVtb3ZlKGN1ZSk7Ci0gICAgcmV0
dXJuIGFkZChjdWUpOwotfQotCi12b2lkIFRleHRUcmFja0N1ZUxpc3Q6OmNsZWFyKCkKLXsKLSAg
ICBtX2xpc3QuY2xlYXIoKTsKLX0KKyAgICBhdXRvIGN1ZVBvc2l0aW9uID0gbV92ZWN0b3IuYmVn
aW4oKSArIGN1ZUluZGV4KGN1ZSk7CisgICAgYXV0byBhZnRlckN1ZVBvc2l0aW9uID0gY3VlUG9z
aXRpb24gKyAxOworCisgICAgQVNTRVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBjdWVQb3Np
dGlvbiwgY29tcGFyZUN1ZXMpOworICAgIEFTU0VSVF9TT1JURUQoYWZ0ZXJDdWVQb3NpdGlvbiwg
bV92ZWN0b3IuZW5kKCksIGNvbXBhcmVDdWVzKTsKKworICAgIGF1dG8gcmVpbnNlcnRpb25Qb3Np
dGlvbiA9IHN0ZDo6dXBwZXJfYm91bmQobV92ZWN0b3IuYmVnaW4oKSwgY3VlUG9zaXRpb24sICpj
dWVQb3NpdGlvbiwgY29tcGFyZUN1ZXMpOworICAgIGlmIChyZWluc2VydGlvblBvc2l0aW9uICE9
IGN1ZVBvc2l0aW9uKQorICAgICAgICBzdGQ6OnJvdGF0ZShyZWluc2VydGlvblBvc2l0aW9uLCBj
dWVQb3NpdGlvbiwgYWZ0ZXJDdWVQb3NpdGlvbik7CisgICAgZWxzZSB7CisgICAgICAgIHJlaW5z
ZXJ0aW9uUG9zaXRpb24gPSBzdGQ6OnVwcGVyX2JvdW5kKGFmdGVyQ3VlUG9zaXRpb24sIG1fdmVj
dG9yLmVuZCgpLCAqY3VlUG9zaXRpb24sIGNvbXBhcmVDdWVzKTsKKyAgICAgICAgaWYgKHJlaW5z
ZXJ0aW9uUG9zaXRpb24gIT0gYWZ0ZXJDdWVQb3NpdGlvbikKKyAgICAgICAgICAgIHN0ZDo6cm90
YXRlKGN1ZVBvc2l0aW9uLCBhZnRlckN1ZVBvc2l0aW9uLCByZWluc2VydGlvblBvc2l0aW9uKTsK
KyAgICB9CiAKLXZvaWQgVGV4dFRyYWNrQ3VlTGlzdDo6aW52YWxpZGF0ZUN1ZUluZGV4ZXMoc2l6
ZV90IHN0YXJ0KQotewotICAgIGZvciAoc2l6ZV90IGkgPSBzdGFydDsgaSA8IG1fbGlzdC5zaXpl
KCk7ICsraSkKLSAgICAgICAgbV9saXN0W2ldLT5pbnZhbGlkYXRlQ3VlSW5kZXgoKTsKKyAgICBB
U1NFUlRfU09SVEVEKG1fdmVjdG9yLmJlZ2luKCksIG1fdmVjdG9yLmVuZCgpLCBjb21wYXJlQ3Vl
cyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWVMaXN0LmgKaW5kZXggYTIxOGZiNjkwODk2MjRjMWYyODM5Yzc1M2Fj
MTI1ZmYwZGIzYzI5OS4uNmU3ZjQyYjk5Yjg0MDI4NWFhNTAyNjhjODJiNDBhOTgyMDJjOTRiZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmgKQEAgLTI4
LDQ0ICsyOCw0MSBAQAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAogI2luY2x1ZGUgIlRleHRU
cmFja0N1ZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgVGV4dFRyYWNrQ3VlTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFRleHRUcmFj
a0N1ZUxpc3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFRleHRUcmFja0N1ZUxpc3Q+IGNy
ZWF0ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0VHJhY2tDdWVM
aXN0KTsKLSAgICB9Ci0KLSAgICB+VGV4dFRyYWNrQ3VlTGlzdCgpIHsgfQotCi0gICAgdW5zaWdu
ZWQgbG9uZyBsZW5ndGgoKSBjb25zdDsKLSAgICB1bnNpZ25lZCBsb25nIGdldEN1ZUluZGV4KFRl
eHRUcmFja0N1ZSopIGNvbnN0OwotCisgICAgc3RhdGljIFJlZjxUZXh0VHJhY2tDdWVMaXN0PiBj
cmVhdGUoKTsKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKICAgICBUZXh0VHJhY2tDdWUq
IGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OwogICAgIFRleHRUcmFja0N1ZSogZ2V0Q3VlQnlJ
ZChjb25zdCBTdHJpbmcmKSBjb25zdDsKLSAgICBUZXh0VHJhY2tDdWVMaXN0KiBhY3RpdmVDdWVz
KCk7CiAKLSAgICBib29sIGFkZChQYXNzUmVmUHRyPFRleHRUcmFja0N1ZT4pOwotICAgIGJvb2wg
cmVtb3ZlKFRleHRUcmFja0N1ZSopOwotICAgIGJvb2wgY29udGFpbnMoVGV4dFRyYWNrQ3VlKikg
Y29uc3Q7Ci0gICAgCi0gICAgYm9vbCB1cGRhdGVDdWVJbmRleChUZXh0VHJhY2tDdWUqKTsKKyAg
ICB1bnNpZ25lZCBjdWVJbmRleChUZXh0VHJhY2tDdWUmKSBjb25zdDsKKyAgICBUZXh0VHJhY2tD
dWVMaXN0JiBhY3RpdmVDdWVzKCk7CisKKyAgICB2b2lkIGFkZChSZWY8VGV4dFRyYWNrQ3VlPiYm
KTsKKyAgICB2b2lkIHJlbW92ZShUZXh0VHJhY2tDdWUmKTsKKworICAgIHZvaWQgdXBkYXRlQ3Vl
SW5kZXgoVGV4dFRyYWNrQ3VlJik7CiAKIHByaXZhdGU6Ci0gICAgVGV4dFRyYWNrQ3VlTGlzdCgp
OwotICAgIGJvb2wgYWRkKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiwgc2l6ZV90LCBzaXplX3Qp
OwotICAgIHZvaWQgY2xlYXIoKTsKLSAgICB2b2lkIGludmFsaWRhdGVDdWVJbmRleGVzKHNpemVf
dCk7CisgICAgVGV4dFRyYWNrQ3VlTGlzdCgpID0gZGVmYXVsdDsKIAotICAgIFZlY3RvcjxSZWZQ
dHI8VGV4dFRyYWNrQ3VlPj4gbV9saXN0OworICAgIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrQ3Vl
Pj4gbV92ZWN0b3I7CiAgICAgUmVmUHRyPFRleHRUcmFja0N1ZUxpc3Q+IG1fYWN0aXZlQ3VlczsK
IH07CiAKK2lubGluZSBSZWY8VGV4dFRyYWNrQ3VlTGlzdD4gVGV4dFRyYWNrQ3VlTGlzdDo6Y3Jl
YXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0VHJhY2tDdWVMaXN0KTsKK30K
KworaW5saW5lIHVuc2lnbmVkIFRleHRUcmFja0N1ZUxpc3Q6Omxlbmd0aCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fdmVjdG9yLnNpemUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVlRUUmVnaW9uTGlzdC5jcHAKaW5kZXggYjdlNzlkMGY3ZTZiYmM3NGU0MWE3MWZkNWJlZTc0
MWRjMTJkN2RkMi4uZTJiMDVjODEyYmJjNGYyMjRmMjc3NDM2YTRjMjYyMWM3ZDkzMGRiYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuY3BwCkBAIC0xLDYgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDU3ICsyOSw0
MSBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotVlRUUmVnaW9uTGlzdDo6VlRUUmVnaW9uTGlzdCgpCi17Ci19Ci0KLXVuc2lnbmVkIGxvbmcg
VlRUUmVnaW9uTGlzdDo6bGVuZ3RoKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9saXN0LnNpemUo
KTsKLX0KLQogVlRUUmVnaW9uKiBWVFRSZWdpb25MaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KSBj
b25zdAogewotICAgIGlmIChpbmRleCA8IG1fbGlzdC5zaXplKCkpCi0gICAgICAgIHJldHVybiBt
X2xpc3RbaW5kZXhdLmdldCgpOwotCi0gICAgcmV0dXJuIDA7CisgICAgaWYgKGluZGV4ID49IG1f
dmVjdG9yLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGNvbnN0
X2Nhc3Q8VlRUUmVnaW9uKj4obV92ZWN0b3JbaW5kZXhdLnB0cigpKTsKIH0KIAogVlRUUmVnaW9u
KiBWVFRSZWdpb25MaXN0OjpnZXRSZWdpb25CeUlkKGNvbnN0IFN0cmluZyYgaWQpIGNvbnN0CiB7
CisgICAgLy8gRklYTUU6IFdoeSBpcyB0aGlzIHNwZWNpYWwgY2FzZSBuZWVkZWQ/CiAgICAgaWYg
KGlkLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBmb3IgKGNvbnN0IGF1dG8m
IHJlZ2lvbiA6IG1fbGlzdCkgeworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBmb3IgKGF1
dG8mIHJlZ2lvbiA6IG1fdmVjdG9yKSB7CiAgICAgICAgIGlmIChyZWdpb24tPmlkKCkgPT0gaWQp
Ci0gICAgICAgICAgICByZXR1cm4gcmVnaW9uLmdldCgpOworICAgICAgICAgICAgcmV0dXJuIGNv
bnN0X2Nhc3Q8VlRUUmVnaW9uKj4ocmVnaW9uLnB0cigpKTsKICAgICB9Ci0KLSAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBWVFRSZWdpb25MaXN0OjphZGQoUGFz
c1JlZlB0cjxWVFRSZWdpb24+IHJlZ2lvbikKK3ZvaWQgVlRUUmVnaW9uTGlzdDo6YWRkKFJlZjxW
VFRSZWdpb24+JiYgcmVnaW9uKQogewotICAgIG1fbGlzdC5hcHBlbmQocmVnaW9uKTsKKyAgICBt
X3ZlY3Rvci5hcHBlbmQoV1RGTW92ZShyZWdpb24pKTsKIH0KIAotYm9vbCBWVFRSZWdpb25MaXN0
OjpyZW1vdmUoVlRUUmVnaW9uKiByZWdpb24pCit2b2lkIFZUVFJlZ2lvbkxpc3Q6OnJlbW92ZShW
VFRSZWdpb24mIHJlZ2lvbikKIHsKLSAgICBzaXplX3QgaW5kZXggPSBtX2xpc3QuZmluZChyZWdp
b24pOwotICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgbV9saXN0LnJlbW92ZShpbmRleCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQg
VlRUUmVnaW9uTGlzdDo6Y2xlYXIoKQotewotICAgIG1fbGlzdC5jbGVhcigpOworICAgIGZvciAo
dW5zaWduZWQgaSA9IDAsIHNpemUgPSBtX3ZlY3Rvci5zaXplKCk7IGkgPCBzaXplOyArK2kpIHsK
KyAgICAgICAgaWYgKG1fdmVjdG9yW2ldLnB0cigpID09ICZyZWdpb24pIHsKKyAgICAgICAgICAg
IG1fdmVjdG9yLnJlbW92ZShpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
IH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaAppbmRleCAyZmRkZGMy
ZWQxOWE1NmU0ODFhYWNmNDY1YmM4OGE3YjJiN2ZjY2UzLi5lZDBmYzRjOWVmN2I3ZTQzYjkxMDFl
NDc0ZGQ1M2Q0YTlkZDlmMjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZUVFJlZ2lvbkxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lv
bkxpc3QuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yOSwzNiArMjksNDMgQEAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKICNpbmNs
dWRlICJWVFRSZWdpb24uaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFZUVFJlZ2lvbkxpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxWVFRS
ZWdpb25MaXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxWVFRSZWdpb25MaXN0PiBjcmVh
dGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVlRUUmVnaW9uTGlzdCk7
Ci0gICAgfQotCi0gICAgflZUVFJlZ2lvbkxpc3QoKSB7IH0KLQotICAgIHVuc2lnbmVkIGxvbmcg
bGVuZ3RoKCkgY29uc3Q7CisgICAgc3RhdGljIFJlZjxWVFRSZWdpb25MaXN0PiBjcmVhdGUoKTsK
IAorICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwogICAgIFZUVFJlZ2lvbiogaXRlbSh1bnNp
Z25lZCBpbmRleCkgY29uc3Q7CiAgICAgVlRUUmVnaW9uKiBnZXRSZWdpb25CeUlkKGNvbnN0IFN0
cmluZyYpIGNvbnN0OwogCi0gICAgdm9pZCBhZGQoUGFzc1JlZlB0cjxWVFRSZWdpb24+KTsKLSAg
ICBib29sIHJlbW92ZShWVFRSZWdpb24qKTsKKyAgICB2b2lkIGFkZChSZWY8VlRUUmVnaW9uPiYm
KTsKKyAgICB2b2lkIHJlbW92ZShWVFRSZWdpb24mKTsKIAogcHJpdmF0ZToKLSAgICBWVFRSZWdp
b25MaXN0KCk7CisgICAgVlRUUmVnaW9uTGlzdCgpID0gZGVmYXVsdDsKKwogICAgIHZvaWQgY2xl
YXIoKTsKIAotICAgIFZlY3RvcjxSZWZQdHI8VlRUUmVnaW9uPj4gbV9saXN0OworICAgIFZlY3Rv
cjxSZWY8VlRUUmVnaW9uPj4gbV92ZWN0b3I7CiB9OwogCitpbmxpbmUgUmVmPFZUVFJlZ2lvbkxp
c3Q+IFZUVFJlZ2lvbkxpc3Q6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
VlRUUmVnaW9uTGlzdCk7Cit9CisKK2lubGluZSB1bnNpZ25lZCBWVFRSZWdpb25MaXN0OjpsZW5n
dGgoKSBjb25zdAoreworICAgIHJldHVybiBtX3ZlY3Rvci5zaXplKCk7Cit9CisKK2lubGluZSB2
b2lkIFZUVFJlZ2lvbkxpc3Q6OmNsZWFyKCkKK3sKKyAgICBtX3ZlY3Rvci5jbGVhcigpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU9fVFJBQ0sp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaWRs
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmlkbAppbmRleCA1Mzgx
ZDM5YzY2ZjFjZmMzZDAyMWIxZGM0MGVjMzI4MTQyYzdiY2QxLi40ODVhOTE1ZTdkN2YwN2IzODU4
ZWIwYzdiMTg1YWJhYTk3OGE5MzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZUVFJlZ2lvbkxpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRU
UmVnaW9uTGlzdC5pZGwKQEAgLTI0LDEyICsyNCwxMSBAQAogICovCiAKIFsKLSAgICBOb0ludGVy
ZmFjZU9iamVjdCwKICAgICBDb25kaXRpb25hbD1WSURFT19UUkFDSywKICAgICBJbXBsZW1lbnRh
dGlvbkxhY2tzVlRhYmxlLAorICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogXSBpbnRlcmZhY2UgVlRU
UmVnaW9uTGlzdCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3Ro
OwogICAgIGdldHRlciBWVFRSZWdpb24gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgICBW
VFRSZWdpb24gZ2V0UmVnaW9uQnlJZChET01TdHJpbmcgaWQpOwogfTsKLQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKaW5kZXggZjgwYmMxMGE4Y2M4ZGUyODJkOWZhZjMx
OTQ2ZDYxY2RlMGNiYzQzMS4uNDc3NjJiNDFlNWYxNTUzNTc0MTM2M2NiNWViODVkYTAwMjczYWU2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCkBAIC04MSwxMCAr
ODEsMTAgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBWaWRlb1RyYWNrOjpjb21tZW50YXJ5S2V5d29y
ZCgpCiAgICAgcmV0dXJuIGNvbW1lbnRhcnk7CiB9CiAKLVZpZGVvVHJhY2s6OlZpZGVvVHJhY2so
VmlkZW9UcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPiB0
cmFja1ByaXZhdGUpCi0gICAgOiBNZWRpYVRyYWNrQmFzZShNZWRpYVRyYWNrQmFzZTo6VmlkZW9U
cmFjaywgdHJhY2tQcml2YXRlLT5pZCgpLCB0cmFja1ByaXZhdGUtPmxhYmVsKCksIHRyYWNrUHJp
dmF0ZS0+bGFuZ3VhZ2UoKSkKLSAgICAsIG1fc2VsZWN0ZWQodHJhY2tQcml2YXRlLT5zZWxlY3Rl
ZCgpKQotICAgICwgbV9jbGllbnQoY2xpZW50KQorVmlkZW9UcmFjazo6VmlkZW9UcmFjayhWaWRl
b1RyYWNrQ2xpZW50JiBjbGllbnQsIFZpZGVvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisg
ICAgOiBNZWRpYVRyYWNrQmFzZShNZWRpYVRyYWNrQmFzZTo6VmlkZW9UcmFjaywgdHJhY2tQcml2
YXRlLmlkKCksIHRyYWNrUHJpdmF0ZS5sYWJlbCgpLCB0cmFja1ByaXZhdGUubGFuZ3VhZ2UoKSkK
KyAgICAsIG1fc2VsZWN0ZWQodHJhY2tQcml2YXRlLnNlbGVjdGVkKCkpCisgICAgLCBtX2NsaWVu
dCgmY2xpZW50KQogICAgICwgbV9wcml2YXRlKHRyYWNrUHJpdmF0ZSkKIHsKICAgICBtX3ByaXZh
dGUtPnNldENsaWVudCh0aGlzKTsKQEAgLTkzLDE1ICs5MywxMiBAQCBWaWRlb1RyYWNrOjpWaWRl
b1RyYWNrKFZpZGVvVHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJp
dmF0ZT4gdAogCiBWaWRlb1RyYWNrOjp+VmlkZW9UcmFjaygpCiB7Ci0gICAgbV9wcml2YXRlLT5z
ZXRDbGllbnQoMCk7CisgICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiB9CiAKLXZv
aWQgVmlkZW9UcmFjazo6c2V0UHJpdmF0ZShQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPiB0
cmFja1ByaXZhdGUpCit2b2lkIFZpZGVvVHJhY2s6OnNldFByaXZhdGUoVmlkZW9UcmFja1ByaXZh
dGUmIHRyYWNrUHJpdmF0ZSkKIHsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKLSAgICBBU1NFUlQo
dHJhY2tQcml2YXRlKTsKLQotICAgIGlmIChtX3ByaXZhdGUgPT0gdHJhY2tQcml2YXRlKQorICAg
IGlmIChtX3ByaXZhdGUucHRyKCkgPT0gJnRyYWNrUHJpdmF0ZSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CkBAIC0xMzksNDYgKzEzNiw0NSBA
QCB2b2lkIFZpZGVvVHJhY2s6OnNldFNlbGVjdGVkKGNvbnN0IGJvb2wgc2VsZWN0ZWQpCiAgICAg
bV9wcml2YXRlLT5zZXRTZWxlY3RlZChzZWxlY3RlZCk7CiAKICAgICBpZiAobV9jbGllbnQpCi0g
ICAgICAgIG1fY2xpZW50LT52aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKHRoaXMpOworICAgICAg
ICBtX2NsaWVudC0+dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCgqdGhpcyk7CiB9CiAKIHNpemVf
dCBWaWRlb1RyYWNrOjppbmJhbmRUcmFja0luZGV4KCkKIHsKLSAgICBBU1NFUlQobV9wcml2YXRl
KTsKICAgICByZXR1cm4gbV9wcml2YXRlLT50cmFja0luZGV4KCk7CiB9CiAKIHZvaWQgVmlkZW9U
cmFjazo6c2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIGJv
b2wgc2VsZWN0ZWQpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJp
dmF0ZSA9PSBtX3ByaXZhdGUpOworICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFj
a1ByaXZhdGUgPT0gbV9wcml2YXRlLnB0cigpKTsKICAgICBzZXRTZWxlY3RlZChzZWxlY3RlZCk7
CiB9CiAKLXZvaWQgVmlkZW9UcmFjazo6aWRDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNr
UHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCkKK3ZvaWQgVmlkZW9UcmFjazo6aWRDaGFu
Z2VkKGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1By
aXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldElkKGlkKTsKIH0KIAot
dm9pZCBWaWRlb1RyYWNrOjpsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2
YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQordm9pZCBWaWRlb1RyYWNrOjpsYWJlbENo
YW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRy
YWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0TGFiZWwobGFi
ZWwpOwogfQogCi12b2lkIFZpZGVvVHJhY2s6Omxhbmd1YWdlQ2hhbmdlZChUcmFja1ByaXZhdGVC
YXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCit2b2lkIFZp
ZGVvVHJhY2s6Omxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKQog
ewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2
YXRlKTsKICAgICBzZXRMYW5ndWFnZShsYW5ndWFnZSk7CiB9CiAKLXZvaWQgVmlkZW9UcmFjazo6
d2lsbFJlbW92ZShUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUpCit2b2lkIFZpZGVvVHJh
Y2s6OndpbGxSZW1vdmUoKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFj
a1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKLSAgICBtZWRpYUVsZW1lbnQoKS0+cmVtb3ZlVmlkZW9U
cmFjaygqdGhpcyk7CisgICAgYXV0byogZWxlbWVudCA9IG1lZGlhRWxlbWVudCgpOworICAgIGlm
ICghZWxlbWVudCkKKyAgICAgICAgcmV0dXJuOworICAgIGVsZW1lbnQtPnJlbW92ZVZpZGVvVHJh
Y2soKnRoaXMpOwogfQogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKwogdm9pZCBWaWRlb1Ry
YWNrOjpzZXRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYga2luZCkKIHsKICAgICAvLyAxMC4xIGtp
bmQsIG9uIHNldHRpbmc6CkBAIC0xOTMsNyArMTg5LDcgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZXRL
aW5kKGNvbnN0IEF0b21pY1N0cmluZyYga2luZCkKICAgICAvLyAzLiBJZiB0aGUgc291cmNlQnVm
ZmVyIGF0dHJpYnV0ZSBvbiB0aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1ZXVlIGEgdGFz
ayB0byBmaXJlIGEgc2ltcGxlCiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHNvdXJjZUJ1
ZmZlci52aWRlb1RyYWNrcy4KICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291
cmNlQnVmZmVyLT52aWRlb1RyYWNrcygpLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CisgICAgICAg
IG1fc291cmNlQnVmZmVyLT52aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAog
ICAgIC8vIDQuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNoYW5n
ZSBhdCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUg
dmlkZW9UcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgpAQCAtMjEzLDEy
ICsyMDksMTMgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJp
bmcmIGxhbmd1YWdlKQogICAgIC8vIDMuIElmIHRoZSBzb3VyY2VCdWZmZXIgYXR0cmlidXRlIG9u
IHRoaXMgdHJhY2sgaXMgbm90IG51bGwsIHRoZW4gcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1w
bGUKICAgICAvLyBldmVudCBuYW1lZCBjaGFuZ2UgYXQgc291cmNlQnVmZmVyLnZpZGVvVHJhY2tz
LgogICAgIGlmIChtX3NvdXJjZUJ1ZmZlcikKLSAgICAgICAgbV9zb3VyY2VCdWZmZXItPnZpZGVv
VHJhY2tzKCktPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXIt
PnZpZGVvVHJhY2tzKCkuc2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogCiAgICAgLy8gNC4gUXVldWUg
YSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHRoZSBWaWRlb1Ry
YWNrTGlzdCBvYmplY3QgcmVmZXJlbmNlZCBieQogICAgIC8vIHRoZSB2aWRlb1RyYWNrcyBhdHRy
aWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgbWVkaWFFbGVtZW50KCktPnZpZGVv
VHJhY2tzKCkuc2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogfQorCiAjZW5kaWYKIAogdm9pZCBWaWRl
b1RyYWNrOjp1cGRhdGVLaW5kRnJvbVByaXZhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Zp
ZGVvVHJhY2suaAppbmRleCBjNTJmOWIzYjEyZmM2OTY4OGRhN2ZkNjcwMzM3MDFmYjFiODRmMzJj
Li43MWEyNTQwZmVlODk2MjI0MWQ0NDkxNzI1YTgyZTM5MTA4ZDM5NzJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdo
dCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksMTIgKzM5LDEyIEBAIGNs
YXNzIFZpZGVvVHJhY2s7CiBjbGFzcyBWaWRlb1RyYWNrQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5WaWRlb1RyYWNrQ2xpZW50KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHZpZGVvVHJh
Y2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmlk
ZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrJikgPSAwOwogfTsKIAotY2xhc3MgVmlk
ZW9UcmFjayBmaW5hbCA6IHB1YmxpYyBNZWRpYVRyYWNrQmFzZSwgcHVibGljIFZpZGVvVHJhY2tQ
cml2YXRlQ2xpZW50IHsKK2NsYXNzIFZpZGVvVHJhY2sgZmluYWwgOiBwdWJsaWMgTWVkaWFUcmFj
a0Jhc2UsIHByaXZhdGUgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQgewogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8VmlkZW9UcmFjaz4gY3JlYXRlKFZpZGVvVHJhY2tDbGllbnQqIGNsaWVudCwgUGFz
c1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQorICAgIHN0YXRpYyBSZWY8
VmlkZW9UcmFjaz4gY3JlYXRlKFZpZGVvVHJhY2tDbGllbnQmIGNsaWVudCwgVmlkZW9UcmFja1By
aXZhdGUmIHRyYWNrUHJpdmF0ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFZpZGVvVHJhY2soY2xpZW50LCB0cmFja1ByaXZhdGUpKTsKICAgICB9CkBAIC01Niw0OCArNTYs
NDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHNpZ25LZXl3b3Jk
KCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VidGl0bGVzS2V5d29yZCgpOwog
ICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGNvbW1lbnRhcnlLZXl3b3JkKCk7Ci0gICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBkZWZhdWx0S2luZEtleXdvcmQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBlbXB0eUF0b207IH0KIAogICAgIGJvb2wgc2VsZWN0ZWQoKSBjb25zdCB7IHJldHVy
biBtX3NlbGVjdGVkOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkKGNvbnN0IGJvb2wp
OwogCi0gICAgdm9pZCBjbGVhckNsaWVudCgpIG92ZXJyaWRlIHsgbV9jbGllbnQgPSAwOyB9Cisg
ICAgdm9pZCBjbGVhckNsaWVudCgpIGZpbmFsIHsgbV9jbGllbnQgPSBudWxscHRyOyB9CiAgICAg
VmlkZW9UcmFja0NsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAog
ICAgIHNpemVfdCBpbmJhbmRUcmFja0luZGV4KCk7CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNF
KQotICAgIHZvaWQgc2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2
b2lkIHNldExhbmd1YWdlKGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQg
c2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIHNldExhbmd1YWdl
KGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOwogI2VuZGlmCiAKICAgICBjb25zdCBNZWRpYURl
c2NyaXB0aW9uJiBkZXNjcmlwdGlvbigpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRQcml2YXRlKFBh
c3NSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+KTsKLQotcHJvdGVjdGVkOgotICAgIFZpZGVvVHJh
Y2soVmlkZW9UcmFja0NsaWVudCosIFBhc3NSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+IHByaXZh
dGVUcmFjayk7CisgICAgdm9pZCBzZXRQcml2YXRlKFZpZGVvVHJhY2tQcml2YXRlJik7CiAKIHBy
aXZhdGU6Ci0gICAgYm9vbCBpc1ZhbGlkS2luZChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBv
dmVycmlkZTsKKyAgICBWaWRlb1RyYWNrKFZpZGVvVHJhY2tDbGllbnQmLCBWaWRlb1RyYWNrUHJp
dmF0ZSYpOworCisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBkZWZhdWx0S2luZEtleXdvcmQoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBlbXB0eUF0b207IH0KKyAgICBib29sIGlzVmFsaWRLaW5kKGNv
bnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8gVmlkZW9UcmFja1ByaXZh
dGVDbGllbnQKLSAgICB2b2lkIHNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrUHJpdmF0ZSosIGJv
b2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2tQcml2YXRl
KiwgYm9vbCkgZmluYWw7CiAKICAgICAvLyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50Ci0gICAgdm9p
ZCBpZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJy
aWRlOwotICAgIHZvaWQgbGFiZWxDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9t
aWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChUcmFja1ByaXZh
dGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsUmVt
b3ZlKFRyYWNrUHJpdmF0ZUJhc2UqKSBvdmVycmlkZTsKKyAgICB2b2lkIGlkQ2hhbmdlZChjb25z
dCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGxhYmVsQ2hhbmdlZChjb25zdCBBdG9t
aWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9taWNT
dHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxSZW1vdmUoKSBmaW5hbDsKIAotICAgIGJvb2wg
ZW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHNlbGVjdGVkKCk7IH0KKyAgICBib29s
IGVuYWJsZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBzZWxlY3RlZCgpOyB9CiAKICAgICB2b2lk
IHVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpOwogCiAgICAgYm9vbCBtX3NlbGVjdGVkOwogICAgIFZp
ZGVvVHJhY2tDbGllbnQqIG1fY2xpZW50OwogCi0gICAgUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRl
PiBtX3ByaXZhdGU7CisgICAgUmVmPFZpZGVvVHJhY2tQcml2YXRlPiBtX3ByaXZhdGU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
aW5kZXggMmMxMjM5NWZhNjYxZDE1YmI1NDUwODg5NGZjMGFhY2RkNTVjZTZlNy4uYjE1MTU2OTdi
MzIyNGE1ZmIwNDkzNjFiOGUzNTk4NDk5M2YwMzA2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaApAQCAtMTcyLDcgKzE3Miw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9p
ZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUlj
b25Mb2FkZXIqKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciYpIG92ZXJyaWRlIHsgfQogCiAgICAgdm9p
ZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgTm9kZSopIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgZWxl
bWVudERpZEJsdXIoY29uc3QgTm9kZSopIG92ZXJyaWRlIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bp
bmdMb2FkZXIuY3BwCmluZGV4IDAxODg5NDZlN2Q4ZGY0MjUyYzFlZDQ5NGFkN2E5OTE2NzY5MTE2
OGIuLjNiZjM1YjIzM2IwYTJkYzZhNjVkNDA0YjEyNjQ2NmQ3YWIzM2VlMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIFBpbmdMb2Fk
ZXI6OnNlbmRQaW5nKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiBwaW5nVVJMLCBjb25zdCBVUkwm
IGRlc3RpbmF0aQogICAgIHN0YXJ0UGluZ0xvYWQoZnJhbWUsIHJlcXVlc3QsIFNob3VsZEZvbGxv
d1JlZGlyZWN0czo6WWVzKTsKIH0KIAotdm9pZCBQaW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVw
b3J0KEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiByZXBvcnRVUkwsIFJlZlB0cjxGb3JtRGF0YT4m
JiByZXBvcnQsIFZpb2xhdGlvblJlcG9ydFR5cGUgcmVwb3J0VHlwZSkKK3ZvaWQgUGluZ0xvYWRl
cjo6c2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcmVwb3J0VVJM
LCBSZWY8Rm9ybURhdGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBlIHJlcG9ydFR5cGUp
CiB7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QocmVwb3J0VVJMKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9QaW5nTG9hZGVyLmgKaW5kZXggY2Y2NTc3YzMzNTZlYTA1ODFiNTM5MTg5MTk4ZmRlODc2
NGZiOTkzNy4uZjk3Zjk1NzFhZWJjMTk2OGQxNzQwYzFmNjlhNjVhNWY5YzIyYjk1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIFBpbmdMb2Fk
ZXIgewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGxvYWRJbWFnZShGcmFtZSYsIGNvbnN0IFVS
TCYpOwogICAgIHN0YXRpYyB2b2lkIHNlbmRQaW5nKEZyYW1lJiwgY29uc3QgVVJMJiBwaW5nVVJM
LCBjb25zdCBVUkwmIGRlc3RpbmF0aW9uVVJMKTsKLSAgICBzdGF0aWMgdm9pZCBzZW5kVmlvbGF0
aW9uUmVwb3J0KEZyYW1lJiwgY29uc3QgVVJMJiByZXBvcnRVUkwsIFJlZlB0cjxGb3JtRGF0YT4m
JiByZXBvcnQsIFZpb2xhdGlvblJlcG9ydFR5cGUpOworICAgIHN0YXRpYyB2b2lkIHNlbmRWaW9s
YXRpb25SZXBvcnQoRnJhbWUmLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgUmVmPEZvcm1EYXRhPiYm
IHJlcG9ydCwgVmlvbGF0aW9uUmVwb3J0VHlwZSk7CiAKIHByaXZhdGU6CiAgICAgZW51bSBjbGFz
cyBTaG91bGRGb2xsb3dSZWRpcmVjdHMgeyBObywgWWVzIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAK
aW5kZXggNWMwMjU0NGE1ZTdiZDNmMDZmYjFhYmFiMDFlZTI2YzhhMzQ0NmYzZS4uNmNhOTljMWY5
NmM0NDM4ZTNhNTU4NjAxN2JlYzU1ZDdmOTczNGMzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApA
QCAtNDM4LDcgKzQzOCw3IEBAIHZvaWQgQ2hyb21lOjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1l
LCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBmaWxlQ2hvb3NlcikKICAgICBtX2NsaWVudC5ydW5P
cGVuUGFuZWwoZnJhbWUsIGZpbGVDaG9vc2VyKTsKIH0KIAotdm9pZCBDaHJvbWU6OmxvYWRJY29u
Rm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUljb25Mb2FkZXIq
IGxvYWRlcikKK3ZvaWQgQ2hyb21lOjpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9hZGVyJiBsb2FkZXIpCiB7CiAgICAgbV9jbGllbnQu
bG9hZEljb25Gb3JGaWxlcyhmaWxlbmFtZXMsIGxvYWRlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApp
bmRleCBmMmYyYjBiMWMzYzBhOWYzYTI3NWQxNGYwMmQzZGMxYThlZGE0ZWExLi5mNjYzNTkyOGFk
NWRhN2FkYjIzNGUzMjg0ZDRiZWFjZjhmZWQxODU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTE1
OSw3ICsxNTksNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQgcnVuT3BlblBhbmVsKEZy
YW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pOwotICAgIHZvaWQgbG9hZEljb25Gb3JGaWxl
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyKik7CisgICAgdm9pZCBsb2Fk
SWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXImKTsKIAog
ICAgIHZvaWQgZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgVmlld3Bv
cnRBcmd1bWVudHMmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXgg
NDVmZWM1OTk4MDRlNDNlNmU3ZDE4OWEwOGU2Y2ViODAyMjlkMzZmZC4uNTk4ZTU5ZjZkYTIxOWUx
ODM5MTQ3YWE4NmQ4MDUyMGM2YmUzZDVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CkBAIC0yNzUsNyArMjc1LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5Q
YW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KSA9IDA7CiAgICAgLy8gQXN5bmNo
cm9ub3VzIHJlcXVlc3QgdG8gbG9hZCBhbiBpY29uIGZvciBzcGVjaWZpZWQgZmlsZW5hbWVzLgot
ICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jiwg
RmlsZUljb25Mb2FkZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciYpID0gMDsKICAgICAgICAgCiAg
ICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBOb2RlKikgeyB9OwogICAgIHZp
cnR1YWwgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBOb2RlKikgeyB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKaW5kZXggY2I3OGQw
NmE3ZWYxNDNmMjZlZTU0OTYzOWIyNDk1NjVjNDZhYTA2OC4uZjhmYmYyZDM2MDU1NDE0MGMxZDVm
MmVhZDczYTg0MGNhYTExZjdlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3Av
Q29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9D
b250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC02MjUsOCArNjI1LDggQEAgdm9pZCBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIGVmZmVjdGl2ZVZp
b2xhdGVkRGlyZWMKIAogICAgIEFTU0VSVCghbV9mcmFtZSB8fCBlZmZlY3RpdmVWaW9sYXRlZERp
cmVjdGl2ZSA9PSBDb250ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1lczo6ZnJhbWVBbmNl
c3RvcnMpOwogCi0gICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gaXM8RG9jdW1lbnQ+KG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCkgPyBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkgOiAqbV9mcmFtZS0+ZG9jdW1lbnQoKTsKLSAgICBGcmFtZSogZnJhbWUgPSBkb2N1
bWVudC5mcmFtZSgpOworICAgIGF1dG8mIGRvY3VtZW50ID0gaXM8RG9jdW1lbnQ+KG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCkgPyBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkgOiAqbV9mcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBhdXRvKiBmcmFtZSA9IGRvY3Vt
ZW50LmZyYW1lKCk7CiAgICAgQVNTRVJUKCFtX2ZyYW1lIHx8IG1fZnJhbWUgPT0gZnJhbWUpOwog
ICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKQEAgLTY0NiwxMyArNjQ2LDE0IEBAIHZv
aWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBl
ZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAgICAgU3RyaW5nIG9yaWdpbmFsUG9saWN5ID0gdmlvbGF0
ZWREaXJlY3RpdmVMaXN0LmhlYWRlcigpOwogICAgIFN0cmluZyByZWZlcnJlciA9IGRvY3VtZW50
LnJlZmVycmVyKCk7CiAgICAgQVNTRVJUKGRvY3VtZW50LmxvYWRlcigpKTsKKyAgICAvLyBGSVhN
RTogSXMgaXQgcG9saWN5IHRvIG5vdCB1c2UgdGhlIHN0YXR1cyBjb2RlIGZvciBIVFRQUywgb3Ig
aXMgdGhhdCBhIGJ1Zz8KICAgICB1bnNpZ25lZCBzaG9ydCBzdGF0dXNDb2RlID0gZG9jdW1lbnQu
dXJsKCkucHJvdG9jb2xJcygiaHR0cCIpICYmIGRvY3VtZW50LmxvYWRlcigpID8gZG9jdW1lbnQu
bG9hZGVyKCktPnJlc3BvbnNlKCkuaHR0cFN0YXR1c0NvZGUoKSA6IDA7CiAKICAgICBTdHJpbmcg
c291cmNlRmlsZTsKICAgICBpbnQgbGluZU51bWJlciA9IDA7CiAgICAgaW50IGNvbHVtbk51bWJl
ciA9IDA7Ci0gICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3RhY2sgPSBjcmVhdGVTY3JpcHRD
YWxsU3RhY2soSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSwgMik7Ci0gICAg
Y29uc3QgU2NyaXB0Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBzdGFjay0+Zmlyc3ROb25OYXRpdmVD
YWxsRnJhbWUoKTsKKyAgICBhdXRvIHN0YWNrID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTTWFp
blRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCksIDIpOworICAgIGF1dG8qIGNhbGxGcmFt
ZSA9IHN0YWNrLT5maXJzdE5vbk5hdGl2ZUNhbGxGcmFtZSgpOwogICAgIGlmIChjYWxsRnJhbWUg
JiYgY2FsbEZyYW1lLT5saW5lTnVtYmVyKCkpIHsKICAgICAgICAgc291cmNlRmlsZSA9IHN0cmlw
VVJMRm9yVXNlSW5SZXBvcnQoZG9jdW1lbnQsIFVSTChVUkwoKSwgY2FsbEZyYW1lLT5zb3VyY2VV
UkwoKSkpOwogICAgICAgICBsaW5lTnVtYmVyID0gY2FsbEZyYW1lLT5saW5lTnVtYmVyKCk7CkBA
IC02NjUsNyArNjY2LDcgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xh
dGlvbihjb25zdCBTdHJpbmcmIGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWMKICAgICBkb2N1bWVudC5l
bnF1ZXVlRG9jdW1lbnRFdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLnNlY3VyaXR5cG9saWN5dmlvbGF0aW9uRXZlbnQsIGNhbkJ1YmJsZSwgY2Fu
Y2VsYWJsZSwgZG9jdW1lbnRVUkksIHJlZmVycmVyLCBibG9ja2VkVVJJLCB2aW9sYXRlZERpcmVj
dGl2ZVRleHQsIGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWN0aXZlLCBvcmlnaW5hbFBvbGljeSwgc291
cmNlRmlsZSwgc3RhdHVzQ29kZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKSk7CiAKICAgICAv
LyAyLiBTZW5kIHZpb2xhdGlvbiByZXBvcnQgKGlmIGFwcGxpY2FibGUpLgotICAgIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiByZXBvcnRVUklzID0gdmlvbGF0ZWREaXJlY3RpdmVMaXN0LnJlcG9ydFVS
SXMoKTsKKyAgICBhdXRvJiByZXBvcnRVUklzID0gdmlvbGF0ZWREaXJlY3RpdmVMaXN0LnJlcG9y
dFVSSXMoKTsKICAgICBpZiAocmVwb3J0VVJJcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsK
IApAQCAtNjkzLDEwICs2OTQsMTAgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9y
dFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWMKICAgICAgICAg
Y3NwUmVwb3J0LT5zZXRJbnRlZ2VyKEFTQ0lJTGl0ZXJhbCgiY29sdW1uLW51bWJlciIpLCBjb2x1
bW5OdW1iZXIpOwogICAgIH0KIAotICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlcG9ydE9i
amVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgYXV0byByZXBvcnRPYmplY3Qg
PSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwogICAgIHJlcG9ydE9iamVjdC0+c2V0T2JqZWN0
KEFTQ0lJTGl0ZXJhbCgiY3NwLXJlcG9ydCIpLCBXVEZNb3ZlKGNzcFJlcG9ydCkpOwogCi0gICAg
UmVmUHRyPEZvcm1EYXRhPiByZXBvcnQgPSBGb3JtRGF0YTo6Y3JlYXRlKHJlcG9ydE9iamVjdC0+
dG9KU09OU3RyaW5nKCkudXRmOCgpKTsKKyAgICBhdXRvIHJlcG9ydCA9IEZvcm1EYXRhOjpjcmVh
dGUocmVwb3J0T2JqZWN0LT50b0pTT05TdHJpbmcoKS51dGY4KCkpOwogICAgIGZvciAoY29uc3Qg
YXV0byYgdXJsIDogcmVwb3J0VVJJcykKICAgICAgICAgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlv
blJlcG9ydCgqZnJhbWUsIGlzPERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpID8g
ZG9jdW1lbnQuY29tcGxldGVVUkwodXJsKSA6IGRvY3VtZW50LmNvbXBsZXRlVVJMKHVybCwgYmxv
Y2tlZFVSTCksIHJlcG9ydC5jb3B5UmVmKCksIFZpb2xhdGlvblJlcG9ydFR5cGU6OkNvbnRlbnRT
ZWN1cml0eVBvbGljeSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1t
CmluZGV4IGIxMGYyZTllYjc4ZDU5ZTAyNmJiZGI0ZGZkNzBlNGRhNTNiOWE0NzAuLjA4YmJmMDU0
Njk2MjRjYWZiNmM1NWU4NDU0ZTcxZjk5Njk4MWY5NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1v
ZGVsTWVkaWFFbGVtZW50Lm1tCkBAIC0yMzMsMTcgKzIzMyw4IEBAIHZvaWQgV2ViUGxheWJhY2tT
ZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3Qg
c2VsZWN0CiAgICAgaWYgKCFtX21lZGlhRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
QVNTRVJUKHNlbGVjdGVkQXVkaW9JbmRleCA8IHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6
bWF4KCkpOwotICAgIEF1ZGlvVHJhY2sqIHNlbGVjdGVkQXVkaW9UcmFjayA9IG51bGxwdHI7Ci0K
LSAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgbV9hdWRpb1RyYWNrc0Zvck1lbnUu
c2l6ZSgpOyArK2luZGV4KSB7Ci0gICAgICAgIGF1dG8mIGF1ZGlvVHJhY2sgPSBtX2F1ZGlvVHJh
Y2tzRm9yTWVudVtpbmRleF07Ci0gICAgICAgIGF1ZGlvVHJhY2stPnNldEVuYWJsZWQoaW5kZXgg
PT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihzZWxlY3RlZEF1ZGlvSW5kZXgpKTsKLSAgICAgICAgaWYg
KGF1ZGlvVHJhY2stPmVuYWJsZWQoKSkKLSAgICAgICAgICAgIHNlbGVjdGVkQXVkaW9UcmFjayA9
IGF1ZGlvVHJhY2suZ2V0KCk7Ci0gICAgfQotCi0gICAgbV9tZWRpYUVsZW1lbnQtPmF1ZGlvVHJh
Y2tFbmFibGVkQ2hhbmdlZChzZWxlY3RlZEF1ZGlvVHJhY2spOworICAgIGZvciAoc2l6ZV90IGkg
PSAwLCBzaXplID0gbV9hdWRpb1RyYWNrc0Zvck1lbnUuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQor
ICAgICAgICBtX2F1ZGlvVHJhY2tzRm9yTWVudVtpXS0+c2V0RW5hYmxlZChpID09IHNlbGVjdGVk
QXVkaW9JbmRleCk7CiB9CiAKIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1l
bnQ6OnNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkKQEAgLTI1MSwxMSAr
MjQyLDkgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6c2VsZWN0
TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGUKICAgICBpZiAoIW1fbWVkaWFFbGVtZW50
KQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoaW5kZXggPCBzdGQ6Om51bWVyaWNfbGlt
aXRzPHNpemVfdD46Om1heCgpKTsKLSAgICBUZXh0VHJhY2sqIHRleHRUcmFjayA9IG51bGxwdHI7
Ci0KKyAgICBUZXh0VHJhY2sqIHRleHRUcmFjazsKICAgICBpZiAoaW5kZXggPCBtX2xlZ2libGVU
cmFja3NGb3JNZW51LnNpemUoKSkKLSAgICAgICAgdGV4dFRyYWNrID0gbV9sZWdpYmxlVHJhY2tz
Rm9yTWVudVtzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KV0uZ2V0KCk7CisgICAgICAgIHRleHRU
cmFjayA9IG1fbGVnaWJsZVRyYWNrc0Zvck1lbnVbaW5kZXhdLmdldCgpOwogICAgIGVsc2UKICAg
ICAgICAgdGV4dFRyYWNrID0gVGV4dFRyYWNrOjpjYXB0aW9uTWVudU9mZkl0ZW0oKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRl
LmgKaW5kZXggM2JjOTdlZDcwMmFiMDRhZGJlMTQxNWFkZjliZTM1Mjk4ZGZhZGRkYi4uNWViYTRl
ZWM0NTcwOTk0MWMxNTEwZDQxZDhkZWYwZGIyYzQ1YjM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCkBAIC0yMyw4ICsy
Myw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgQXVkaW9UcmFja1ByaXZhdGVf
aAotI2RlZmluZSBBdWRpb1RyYWNrUHJpdmF0ZV9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
IlRyYWNrUHJpdmF0ZUJhc2UuaCIKIApAQCAtMzYsNyArMzUsNyBAQCBjbGFzcyBBdWRpb1RyYWNr
UHJpdmF0ZTsKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQ
cml2YXRlQmFzZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIGVuYWJsZWRDaGFu
Z2VkKEF1ZGlvVHJhY2tQcml2YXRlKiwgYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBlbmFi
bGVkQ2hhbmdlZChib29sKSA9IDA7CiB9OwogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZSA6IHB1
YmxpYyBUcmFja1ByaXZhdGVCYXNlIHsKQEAgLTU1LDI2ICs1NCwyMiBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CiAgICAgICAgIGlm
IChtX2NsaWVudCkKLSAgICAgICAgICAgIG1fY2xpZW50LT5lbmFibGVkQ2hhbmdlZCh0aGlzLCBl
bmFibGVkKTsKLSAgICB9OwotICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9lbmFibGVkOyB9CisgICAgICAgICAgICBtX2NsaWVudC0+ZW5hYmxlZENoYW5nZWQoZW5h
YmxlZCk7CisgICAgfQorCisgICAgYm9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmFi
bGVkOyB9CiAKICAgICBlbnVtIEtpbmQgeyBBbHRlcm5hdGl2ZSwgRGVzY3JpcHRpb24sIE1haW4s
IE1haW5EZXNjLCBUcmFuc2xhdGlvbiwgQ29tbWVudGFyeSwgTm9uZSB9OwogICAgIHZpcnR1YWwg
S2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gTm9uZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgQXVk
aW9UcmFja1ByaXZhdGUoKQotICAgICAgICA6IG1fY2xpZW50KDApCi0gICAgICAgICwgbV9lbmFi
bGVkKGZhbHNlKQotICAgIHsKLSAgICB9CisgICAgQXVkaW9UcmFja1ByaXZhdGUoKSA9IGRlZmF1
bHQ7CiAKIHByaXZhdGU6Ci0gICAgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQqIG1fY2xpZW50Owot
ICAgIGJvb2wgbV9lbmFibGVkOworICAgIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50KiBtX2NsaWVu
dCB7IG51bGxwdHIgfTsKKyAgICBib29sIG1fZW5hYmxlZCB7IGZhbHNlIH07CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRl
Q2xpZW50LmgKaW5kZXggNzYwZjY3OWQxMzUwYTcxOTAwNDQ3MGE3Y2I3YTc0MTdhOGJjNDkxNS4u
MjEwMmZlM2ViNWM0YjVjYzNjYWQwZTBiYjgwZDhjODk2ZjJiZDk5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFj
a1ByaXZhdGVDbGllbnQuaApAQCAtNDMsOSArNDMsNyBAQCBjbGFzcyBJU09XZWJWVFRDdWU7CiAK
IGNsYXNzIEdlbmVyaWNDdWVEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8R2VuZXJpY0N1ZURhdGE+
IHsKIHB1YmxpYzoKLQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPiBjcmVh
dGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgR2VuZXJpY0N1ZURhdGEoKSk7IH0KLSAgICB2aXJ0
dWFsIH5HZW5lcmljQ3VlRGF0YSgpIHsgfQorICAgIHN0YXRpYyBSZWY8R2VuZXJpY0N1ZURhdGE+
IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR2VuZXJpY0N1ZURhdGEpOyB9CiAKICAg
ICBNZWRpYVRpbWUgc3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFRpbWU7IH0KICAg
ICB2b2lkIHNldFN0YXJ0VGltZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0VGltZSkgeyBtX3N0YXJ0
VGltZSA9IHN0YXJ0VGltZTsgfQpAQCAtNjgsMTIgKzY2LDcgQEAgcHVibGljOgogICAgIGRvdWJs
ZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgdm9pZCBzZXRTaXplKGRvdWJs
ZSBzaXplKSB7IG1fc2l6ZSA9IHNpemU7IH0KIAotICAgIGVudW0gQWxpZ25tZW50IHsKLSAgICAg
ICAgTm9uZSwKLSAgICAgICAgU3RhcnQsCi0gICAgICAgIE1pZGRsZSwKLSAgICAgICAgRW5kCi0g
ICAgfTsKKyAgICBlbnVtIEFsaWdubWVudCB7IE5vbmUsIFN0YXJ0LCBNaWRkbGUsIEVuZCB9Owog
ICAgIEFsaWdubWVudCBhbGlnbigpIGNvbnN0IHsgcmV0dXJuIG1fYWxpZ247IH0KICAgICB2b2lk
IHNldEFsaWduKEFsaWdubWVudCBhbGlnbikgeyBtX2FsaWduID0gYWxpZ247IH0KIApAQCAtOTUs
NDMgKzg4LDMwIEBAIHB1YmxpYzoKICAgICBjb25zdCBDb2xvciYgaGlnaGxpZ2h0Q29sb3IoKSBj
b25zdCB7IHJldHVybiBtX2hpZ2hsaWdodENvbG9yOyB9CiAgICAgdm9pZCBzZXRIaWdobGlnaHRD
b2xvcihjb25zdCBDb2xvciYgY29sb3IpIHsgbV9oaWdobGlnaHRDb2xvciA9IGNvbG9yOyB9CiAK
LSAgICBlbnVtIFN0YXR1cyB7Ci0gICAgICAgIFVuaW5pdGlhbGl6ZWQsCi0gICAgICAgIFBhcnRp
YWwsCi0gICAgICAgIENvbXBsZXRlLAotICAgIH07CisgICAgZW51bSBTdGF0dXMgeyBVbmluaXRp
YWxpemVkLCBQYXJ0aWFsLCBDb21wbGV0ZSB9OwogICAgIFN0YXR1cyBzdGF0dXMoKSB7IHJldHVy
biBtX3N0YXR1czsgfQogICAgIHZvaWQgc2V0U3RhdHVzKFN0YXR1cyBzdGF0dXMpIHsgbV9zdGF0
dXMgPSBzdGF0dXM7IH0KIAogICAgIGJvb2wgZG9lc0V4dGVuZEN1ZURhdGEoY29uc3QgR2VuZXJp
Y0N1ZURhdGEmKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBHZW5lcmljQ3VlRGF0YSgpCi0gICAg
ICAgIDogbV9saW5lKC0xKQotICAgICAgICAsIG1fcG9zaXRpb24oLTEpCi0gICAgICAgICwgbV9z
aXplKC0xKQotICAgICAgICAsIG1fYWxpZ24oTm9uZSkKLSAgICAgICAgLCBtX2Jhc2VGb250U2l6
ZSgwKQotICAgICAgICAsIG1fcmVsYXRpdmVGb250U2l6ZSgwKQotICAgICAgICAsIG1fc3RhdHVz
KFVuaW5pdGlhbGl6ZWQpCi0gICAgewotICAgIH0KKyAgICBHZW5lcmljQ3VlRGF0YSgpID0gZGVm
YXVsdDsKIAogICAgIE1lZGlhVGltZSBtX3N0YXJ0VGltZTsKICAgICBNZWRpYVRpbWUgbV9lbmRU
aW1lOwogICAgIFN0cmluZyBtX2lkOwogICAgIFN0cmluZyBtX2NvbnRlbnQ7Ci0gICAgZG91Ymxl
IG1fbGluZTsKLSAgICBkb3VibGUgbV9wb3NpdGlvbjsKLSAgICBkb3VibGUgbV9zaXplOwotICAg
IEFsaWdubWVudCBtX2FsaWduOworICAgIGRvdWJsZSBtX2xpbmUgeyAtMSB9OworICAgIGRvdWJs
ZSBtX3Bvc2l0aW9uIHsgLTEgfTsKKyAgICBkb3VibGUgbV9zaXplIHsgLTEgfTsKKyAgICBBbGln
bm1lbnQgbV9hbGlnbiB7IE5vbmUgfTsKICAgICBTdHJpbmcgbV9mb250TmFtZTsKLSAgICBkb3Vi
bGUgbV9iYXNlRm9udFNpemU7Ci0gICAgZG91YmxlIG1fcmVsYXRpdmVGb250U2l6ZTsKKyAgICBk
b3VibGUgbV9iYXNlRm9udFNpemUgeyAwIH07CisgICAgZG91YmxlIG1fcmVsYXRpdmVGb250U2l6
ZSB7IDAgfTsKICAgICBDb2xvciBtX2ZvcmVncm91bmRDb2xvcjsKICAgICBDb2xvciBtX2JhY2tn
cm91bmRDb2xvcjsKICAgICBDb2xvciBtX2hpZ2hsaWdodENvbG9yOwotICAgIFN0YXR1cyBtX3N0
YXR1czsKKyAgICBTdGF0dXMgbV9zdGF0dXMgeyBVbmluaXRpYWxpemVkIH07CiB9OwogCiBpbmxp
bmUgYm9vbCBHZW5lcmljQ3VlRGF0YTo6ZG9lc0V4dGVuZEN1ZURhdGEoY29uc3QgR2VuZXJpY0N1
ZURhdGEmIG90aGVyKSBjb25zdApAQCAtMTY4LDIxICsxNDgsMjEgQEAgY2xhc3MgSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50KCkgeyB9CiAK
LSAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29u
c3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqLCB1
bnNpZ25lZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGlt
ZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpID0g
MDsKIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQotICAgIHZpcnR1YWwgdm9pZCBhZGREYXRh
Q3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25z
dCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRh
dGlvbj4sIGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRGF0YUN1
ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3Qg
TWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRp
b24+KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlh
VGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+JiYsIGNvbnN0
IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRGF0YUN1ZShjb25zdCBNZWRp
YVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtUmVw
cmVzZW50YXRpb24mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZURhdGFDdWUoY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9y
bVJlcHJlc2VudGF0aW9uJikgPSAwOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkR2Vu
ZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgUGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0
YT4pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92
ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBhZGRHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAwOwog
Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlKiwgU3RyaW5nJiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBj
aGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VX
ZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBJU09XZWJWVFRDdWUm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihTdHJpbmcmJikg
eyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEN1
ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUmKSA9IDA7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKaW5kZXggMDhlNjJjMzQ4NjJhZGQ5
NGZhMDg0YjQyNWM1ODdhYTRmYmQzNjRiZC4uNDNkMDY3NDBmNTVlZDA4NDVlNWRmMzc3Mzg2YjVm
ZTc4MmE5NDdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
U291cmNlQnVmZmVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdo
dCAoQykgMjAxMy0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI4LDIxICsyOCwxNyBAQAogICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCi0jaWZuZGVmIFNvdXJjZUJ1ZmZlclByaXZh
dGVfaAotI2RlZmluZSBTb3VyY2VCdWZmZXJQcml2YXRlX2gKKworI3ByYWdtYSBvbmNlCiAKICNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKLSNpbmNs
dWRlICJUaW1lUmFuZ2VzLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTYW1w
bGU7CiBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OwotY2xhc3MgVGltZVJhbmdlczsK
IAogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFNvdXJjZUJ1
ZmZlclByaXZhdGU+IHsKIHB1YmxpYzoKQEAgLTU4LDE3ICs1NCwxNiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSA9
IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZmx1c2goQXRvbWljU3RyaW5nKSB7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiwgQXRvbWljU3Ry
aW5nKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0
cmluZykgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2goY29uc3QgQXRv
bWljU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGVucXVldWVTYW1wbGUoUmVmPE1lZGlh
U2FtcGxlPiYmLCBjb25zdCBBdG9taWNTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNS
ZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
c3RvcEFza2luZ0Zvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykgeyB9Ci0gICAgdmlydHVhbCB2
b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykgeyB9
CisgICAgdmlydHVhbCB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNT
dHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9y
ZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgeyB9CiAKLSAgICB2aXJ0dWFsIFZlY3RvcjxT
dHJpbmc+IGVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoQXRvbWljU3RyaW5nKSB7IHJldHVybiB7
fTsgfQorICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJ
RChjb25zdCBBdG9taWNTdHJpbmcmKSB7IHJldHVybiB7IH07IH0KIH07CiAKIH0KIAogI2VuZGlm
Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Nv
dXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaAppbmRleCAyOTRhZDY1ZjQ2MzM1ZGYwNjkx
NTNmNGFjYjM5NzAzYmYxYzlmMGYyLi4zM2QyYWQ5MzMwNTk2OWUxNTk3ODc5NmFmYTJjNzYyODQy
OWNiMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3Vy
Y2VCdWZmZXJQcml2YXRlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oCkBAIC0zMiwxMiArMzIsMTEgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlOwogY2xhc3Mg
QXVkaW9UcmFja1ByaXZhdGU7Ci1jbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIEluYmFu
ZFRleHRUcmFja1ByaXZhdGU7CiBjbGFzcyBNZWRpYVNhbXBsZTsKIGNsYXNzIE1lZGlhRGVzY3Jp
cHRpb247CitjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIAogY2xhc3MgU291cmNlQnVmZmVyUHJp
dmF0ZUNsaWVudCB7CiBwdWJsaWM6CkBAIC02NCwyMyArNjMsMTkgQEAgcHVibGljOgogICAgICAg
ICB9OwogICAgICAgICBWZWN0b3I8VGV4dFRyYWNrSW5mb3JtYXRpb24+IHRleHRUcmFja3M7CiAg
ICAgfTsKLSAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0
aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IEluaXRpYWxpemF0
aW9uU2VnbWVudCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURp
ZFJlY2VpdmVTYW1wbGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIE1lZGlhU2FtcGxlJikgPSAwOwot
ICAgIHZpcnR1YWwgYm9vbCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oY29uc3QgU291cmNl
QnVmZmVyUHJpdmF0ZSopIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgc291cmNlQnVmZmVy
UHJpdmF0ZUhhc1ZpZGVvKGNvbnN0IFNvdXJjZUJ1ZmZlclByaXZhdGUqKSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRp
b25TZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmKSA9
IDA7CisgICAgdmlydHVhbCBib29sIHNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCkgY29u
c3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVS
ZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBdG9taWNTdHJpbmcgdHJh
Y2tJRCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21l
UmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpID0gMDsKIAot
ICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JN
ZWRpYVRpbWUoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29u
c3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJikgeyByZXR1cm4gdGltZTsgfQotICAgIHZp
cnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGltZShTb3VyY2VCdWZmZXJQcml2
YXRlKiwgY29uc3QgTWVkaWFUaW1lJikgeyB9OworICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNvdXJj
ZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1lJiB0
aW1lLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmKSB7IHJldHVybiB0aW1lOyB9
CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKGNvbnN0IE1l
ZGlhVGltZSYpIHsgfTsKIAotICAgIGVudW0gQXBwZW5kUmVzdWx0IHsKLSAgICAgICAgQXBwZW5k
U3VjY2VlZGVkLAotICAgICAgICBSZWFkU3RyZWFtRmFpbGVkLAotICAgICAgICBQYXJzaW5nRmFp
bGVkLAotICAgIH07Ci0gICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRD
b21wbGV0ZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXBwZW5kUmVzdWx0KSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoU291
cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvY0NvZGUpID0gMDsKKyAgICBlbnVtIEFwcGVuZFJl
c3VsdCB7IEFwcGVuZFN1Y2NlZWRlZCwgUmVhZFN0cmVhbUZhaWxlZCwgUGFyc2luZ0ZhaWxlZCB9
OworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoQXBw
ZW5kUmVzdWx0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRS
ZWNlaXZlUmVuZGVyaW5nRXJyb3IoaW50IGVycm9yQ29kZSkgPSAwOwogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oCmlu
ZGV4IDczMWFhOGQ5MzZhNWFhZWEwZDFjMDNhYTY4YTJhYzZiMmIyYjllNjQuLmE1NDcwNTJiYTFm
ZTgyZDg3OWZmZGUzOTQ3Mjk1MzkzOGU5MGE4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgKQEAgLTI1LDM0ICsyNSwyOSBA
QAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFRyYWNrUHJpdmF0ZUJhc2VfaAotI2Rl
ZmluZSBUcmFja1ByaXZhdGVCYXNlX2gKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQogCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFU
aW1lLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAotI2lmIEVOQUJM
RShWSURFT19UUkFDSykKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBUcmFja1ByaXZh
dGVCYXNlOwotCiBjbGFzcyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5UcmFja1ByaXZhdGVCYXNlQ2xpZW50KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGlk
Q2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0b21p
Y1N0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJp
dmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHdp
bGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaWRDaGFu
Z2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGFiZWxDaGFu
Z2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGFuZ3VhZ2VD
aGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJl
bW92ZSgpID0gMDsKIH07CiAKIGNsYXNzIFRyYWNrUHJpdmF0ZUJhc2UgOiBwdWJsaWMgUmVmQ291
bnRlZDxUcmFja1ByaXZhdGVCYXNlPiB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVHJhY2tQ
cml2YXRlQmFzZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFRyYWNrUHJpdmF0ZUJhc2UpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIHZpcnR1YWwgflRyYWNrUHJpdmF0ZUJhc2UoKSB7IH0KKyAgICB2aXJ0dWFs
IH5UcmFja1ByaXZhdGVCYXNlKCkgPSBkZWZhdWx0OwogCiAgICAgdmlydHVhbCBUcmFja1ByaXZh
dGVCYXNlQ2xpZW50KiBjbGllbnQoKSBjb25zdCA9IDA7CiAKQEAgLTY2LDE1ICs2MSwxNCBAQCBw
dWJsaWM6CiAgICAgCiAgICAgdm9pZCB3aWxsQmVSZW1vdmVkKCkKICAgICB7Ci0gICAgICAgIGlm
IChUcmFja1ByaXZhdGVCYXNlQ2xpZW50KiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAgICAg
ICAgICAgIGNsaWVudC0+d2lsbFJlbW92ZSh0aGlzKTsKKyAgICAgICAgaWYgKGF1dG8qIGNsaWVu
dCA9IHRoaXMtPmNsaWVudCgpKQorICAgICAgICAgICAgY2xpZW50LT53aWxsUmVtb3ZlKCk7CiAg
ICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgVHJhY2tQcml2YXRlQmFzZSgpIHsgfQorICAgIFRyYWNr
UHJpdmF0ZUJhc2UoKSA9IGRlZmF1bHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFja1ByaXZhdGVBVkYuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1RyYWNrUHJpdmF0ZUFWRi5oCmlu
ZGV4IDEzMWZkNTFiNGMxNjkzNDA4YjRmOGE0YjU5NmViMjZmYmQ2ZDI5NmIuLjE2ZjU3ZmFhODZm
NDA1OWE4YTI3ZTRhOTMyMTlkODdjYmM0NjA2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1RyYWNrUHJpdmF0ZUFWRi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1Ry
YWNrUHJpdmF0ZUFWRi5oCkBAIC0zNSw3ICszNSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEF1ZGlvVHJhY2tQcml2YXRlQVZGIDogcHVibGljIEF1ZGlvVHJhY2tQcml2YXRlIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1RyYWNrUHJpdmF0ZUFWRikKIHB1YmxpYzoKLQog
ICAgIHZpcnR1YWwgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gbV9raW5kOyB9CiAgICAgdmly
dHVhbCBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAgICAgdmlydHVh
bCBBdG9taWNTdHJpbmcgbGFiZWwoKSBjb25zdCB7IHJldHVybiBtX2xhYmVsOyB9CkBAIC00NCw5
ICs0Myw5IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0S2luZChLaW5kIGtp
bmQpIHsgbV9raW5kID0ga2luZDsgfQotICAgIHZvaWQgc2V0SWQoQXRvbWljU3RyaW5nIG5ld0lk
KSB7IG1faWQgPSBuZXdJZDsgfQotICAgIHZvaWQgc2V0TGFiZWwoQXRvbWljU3RyaW5nIGxhYmVs
KSB7IG1fbGFiZWwgPSBsYWJlbDsgfQotICAgIHZvaWQgc2V0TGFuZ3VhZ2UoQXRvbWljU3RyaW5n
IGxhbmd1YWdlKSB7IG1fbGFuZ3VhZ2UgPSBsYW5ndWFnZTsgfQorICAgIHZvaWQgc2V0SWQoY29u
c3QgQXRvbWljU3RyaW5nJiBuZXdJZCkgeyBtX2lkID0gbmV3SWQ7IH0KKyAgICB2b2lkIHNldExh
YmVsKGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpIHsgbV9sYWJlbCA9IGxhYmVsOyB9CisgICAg
dm9pZCBzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKSB7IG1fbGFuZ3Vh
Z2UgPSBsYW5ndWFnZTsgfQogICAgIHZvaWQgc2V0VHJhY2tJbmRleChpbnQgaW5kZXgpIHsgbV9p
bmRleCA9IGluZGV4OyB9CiAKICAgICBLaW5kIG1fa2luZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRNZXRhZGF0YVRleHRU
cmFja1ByaXZhdGVBVkYuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKaW5kZXggOWM2
Y2E4N2IwYzBmOTAwNjcxMTdmNDQyZDNlNjZkOTQxMzNhZjE0MC4uNmQyYzkxOWExMTc4MzYyNjVi
ZDYzMzkyZTFiMmIzYzlhMWU3MzdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFW
Ri5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKQEAgLTU0LDYgKzU0LDcgQEAg
SW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjp+SW5iYW5kTWV0YWRhdGFUZXh0VHJh
Y2tQcml2YXRlQVZGKCkKIH0KIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQorCiB2b2lkIElu
YmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRp
bWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxh
dGZvcm1SZXByZXNlbnRhdGlvbj4gcHJwQ3VlRGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKQogewog
ICAgIEFTU0VSVChjdWVGb3JtYXQoKSA9PSBEYXRhKTsKQEAgLTY2LDcgKzY3LDcgQEAgdm9pZCBJ
bmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFU
aW1lJiBzdGFydCwgY29uc3QKICAgICBtX2N1cnJlbnRDdWVTdGFydFRpbWUgPSBzdGFydDsKICAg
ICBpZiAoZW5kLmlzUG9zaXRpdmVJbmZpbml0ZSgpKQogICAgICAgICBtX2luY29tcGxldGVDdWVz
LmFwcGVuZChJbmNvbXBsZXRlTWV0YURhdGFDdWUgeyBjdWVEYXRhLmdldCgpLCBzdGFydCB9KTsK
LSAgICBjbGllbnQoKS0+YWRkRGF0YUN1ZSh0aGlzLCBzdGFydCwgZW5kLCBjdWVEYXRhLCB0eXBl
KTsKKyAgICBjbGllbnQoKS0+YWRkRGF0YUN1ZShzdGFydCwgZW5kLCBjdWVEYXRhLnJlbGVhc2VO
b25OdWxsKCksIHR5cGUpOwogfQogCiB2b2lkIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0
ZUFWRjo6dXBkYXRlUGVuZGluZ0N1ZUVuZFRpbWVzKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKQEAg
LTc3LDcgKzc4LDcgQEAgdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OnVw
ZGF0ZVBlbmRpbmdDdWVFbmRUaW1lcyhjb25zdCBNZWRpYVRpbWUKICAgICAgICAgaWYgKGNsaWVu
dCgpKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIHBhcnRpYWxDdWUgOiBtX2luY29tcGxldGVD
dWVzKSB7CiAgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kTWV0YWRhdGFUZXh0VHJh
Y2tQcml2YXRlQVZGOjp1cGRhdGVQZW5kaW5nQ3VlRW5kVGltZXMoJXApIC0gdXBkYXRpbmcgY3Vl
OiBzdGFydD0lcywgZW5kPSVzIiwgdGhpcywgdG9TdHJpbmcocGFydGlhbEN1ZS5zdGFydFRpbWUp
LnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAg
ICAgICAgIGNsaWVudCgpLT51cGRhdGVEYXRhQ3VlKHRoaXMsIHBhcnRpYWxDdWUuc3RhcnRUaW1l
LCB0aW1lLCBwYXJ0aWFsQ3VlLmN1ZURhdGEpOworICAgICAgICAgICAgICAgIGNsaWVudCgpLT51
cGRhdGVEYXRhQ3VlKHBhcnRpYWxDdWUuc3RhcnRUaW1lLCB0aW1lLCAqcGFydGlhbEN1ZS5jdWVE
YXRhKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZQpAQCAtODYsNiArODcs
NyBAQCB2b2lkIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6dXBkYXRlUGVuZGlu
Z0N1ZUVuZFRpbWVzKGNvbnN0IE1lZGlhVGltZQogICAgIG1faW5jb21wbGV0ZUN1ZXMucmVzaXpl
KDApOwogICAgIG1fY3VycmVudEN1ZVN0YXJ0VGltZSA9IE1lZGlhVGltZTo6emVyb1RpbWUoKTsK
IH0KKwogI2VuZGlmCiAKIHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjpm
bHVzaFBhcnRpYWxDdWVzKCkKQEAgLTk1LDcgKzk3LDcgQEAgdm9pZCBJbmJhbmRNZXRhZGF0YVRl
eHRUcmFja1ByaXZhdGVBVkY6OmZsdXNoUGFydGlhbEN1ZXMoKQogCiAgICAgaWYgKGNsaWVudCgp
KSB7CiAgICAgICAgIGZvciAoYXV0byYgcGFydGlhbEN1ZSA6IG1faW5jb21wbGV0ZUN1ZXMpCi0g
ICAgICAgICAgICBjbGllbnQoKS0+cmVtb3ZlRGF0YUN1ZSh0aGlzLCBwYXJ0aWFsQ3VlLnN0YXJ0
VGltZSwgTWVkaWFUaW1lOjpwb3NpdGl2ZUluZmluaXRlVGltZSgpLCBwYXJ0aWFsQ3VlLmN1ZURh
dGEpOworICAgICAgICAgICAgY2xpZW50KCktPnJlbW92ZURhdGFDdWUocGFydGlhbEN1ZS5zdGFy
dFRpbWUsIE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKSwgKnBhcnRpYWxDdWUuY3Vl
RGF0YSk7CiAgICAgfQogCiAgICAgbV9pbmNvbXBsZXRlQ3Vlcy5yZXNpemUoMCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKaW5kZXggM2I3YmRh
ODY2ZDJlNjBkOTMyZWI4ZTYwOTZlZjhhOTMzMzdjNjZjMC4uZWU0N2Y3N2ViZjRkNzVjODkwM2I4
NmU3NTM2N2JiMTkwZmI5YWMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGLmNwcApAQCAtMzIzLDMzICszMjMsMzMgQEAgdm9pZCBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQXR0cmlidXRlZFN0cmluZ3MoQ0ZBcnJheVJlZiBhdHRy
aWJ1dGVkU3QKIHsKICAgICBMT0coTWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpw
cm9jZXNzQ3VlIC0gJWxpIGN1ZXMgYXQgdGltZSAlc1xuIiwgYXR0cmlidXRlZFN0cmluZ3MgPyBD
RkFycmF5R2V0Q291bnQoYXR0cmlidXRlZFN0cmluZ3MpIDogMCwgdG9TdHJpbmcodGltZSkudXRm
OCgpLmRhdGEoKSk7CiAKLSAgICBWZWN0b3I8UmVmUHRyPEdlbmVyaWNDdWVEYXRhPj4gYXJyaXZp
bmdDdWVzOworICAgIFZlY3RvcjxSZWY8R2VuZXJpY0N1ZURhdGE+PiBhcnJpdmluZ0N1ZXM7CiAg
ICAgaWYgKGF0dHJpYnV0ZWRTdHJpbmdzKSB7CiAgICAgICAgIENGSW5kZXggY291bnQgPSBDRkFy
cmF5R2V0Q291bnQoYXR0cmlidXRlZFN0cmluZ3MpOwogICAgICAgICBmb3IgKENGSW5kZXggaSA9
IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAgICAgICAgICAgICBDRkF0dHJpYnV0ZWRTdHJpbmdSZWYg
YXR0cmlidXRlZFN0cmluZyA9IHN0YXRpY19jYXN0PENGQXR0cmlidXRlZFN0cmluZ1JlZj4oQ0ZB
cnJheUdldFZhbHVlQXRJbmRleChhdHRyaWJ1dGVkU3RyaW5ncywgaSkpOwotICAgICAgICAgICAg
CisKICAgICAgICAgICAgIGlmICghYXR0cmlidXRlZFN0cmluZyB8fCAhQ0ZBdHRyaWJ1dGVkU3Ry
aW5nR2V0TGVuZ3RoKGF0dHJpYnV0ZWRTdHJpbmcpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICAgICAgCi0gICAgICAgICAgICBSZWZQdHI8R2VuZXJpY0N1ZURhdGE+IGN1ZURh
dGEgPSBHZW5lcmljQ3VlRGF0YTo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICBwcm9jZXNzQ3VlQXR0
cmlidXRlcyhhdHRyaWJ1dGVkU3RyaW5nLCAqY3VlRGF0YS5nZXQoKSk7CisKKyAgICAgICAgICAg
IGF1dG8gY3VlRGF0YSA9IEdlbmVyaWNDdWVEYXRhOjpjcmVhdGUoKTsKKyAgICAgICAgICAgIHBy
b2Nlc3NDdWVBdHRyaWJ1dGVzKGF0dHJpYnV0ZWRTdHJpbmcsIGN1ZURhdGEuZ2V0KCkpOwogICAg
ICAgICAgICAgaWYgKCFjdWVEYXRhLT5jb250ZW50KCkubGVuZ3RoKCkpCiAgICAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGFycml2aW5nQ3Vlcy5hcHBl
bmQoY3VlRGF0YSk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgY3VlRGF0YS0+c2V0U3Rh
cnRUaW1lKHRpbWUpOwogICAgICAgICAgICAgY3VlRGF0YS0+c2V0RW5kVGltZShNZWRpYVRpbWU6
OnBvc2l0aXZlSW5maW5pdGVUaW1lKCkpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIC8v
IEFWRm91bmRhdGlvbiBjdWUgInBvc2l0aW9uIiBpcyB0byB0aGUgY2VudGVyIG9mIHRoZSB0ZXh0
IHNvIGFkanVzdCByZWxhdGl2ZSB0byB0aGUgZWRnZSBiZWNhdXNlIHdlIHdpbGwgdXNlIGl0IHRv
CiAgICAgICAgICAgICAvLyBzZXQgQ1NTICJsZWZ0Ii4KICAgICAgICAgICAgIGlmIChjdWVEYXRh
LT5wb3NpdGlvbigpID49IDAgJiYgY3VlRGF0YS0+c2l6ZSgpID4gMCkKICAgICAgICAgICAgICAg
ICBjdWVEYXRhLT5zZXRQb3NpdGlvbihjdWVEYXRhLT5wb3NpdGlvbigpIC0gY3VlRGF0YS0+c2l6
ZSgpIC8gMik7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSglcCkgLSBjb25zaWRlcmluZyBjdWUgKFwi
JXNcIikgZm9yIHRpbWUgPSAlcywgcG9zaXRpb24gPSAgJS4yZiwgbGluZSA9ICAlLjJmIiwgdGhp
cywgY3VlRGF0YS0+Y29udGVudCgpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZURhdGEtPnN0
YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLT5wb3NpdGlvbigpLCBjdWVEYXRhLT5s
aW5lKCkpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIGN1ZURhdGEtPnNldFN0YXR1cyhH
ZW5lcmljQ3VlRGF0YTo6UGFydGlhbCk7CisKKyAgICAgICAgICAgIGFycml2aW5nQ3Vlcy5hcHBl
bmQoV1RGTW92ZShjdWVEYXRhKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTM2MCwxNyArMzYw
LDE3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0F0dHJpYnV0ZWRT
dHJpbmdzKENGQXJyYXlSZWYgYXR0cmlidXRlZFN0CiAgICAgICAgIGlmIChtX2N1cnJlbnRDdWVF
bmRUaW1lID49IG1fY3VycmVudEN1ZVN0YXJ0VGltZSkgewogICAgICAgICAgICAgZm9yIChhdXRv
JiBjdWVEYXRhIDogbV9jdWVzKSB7CiAgICAgICAgICAgICAgICAgLy8gU2VlIGlmIG9uZSBvZiB0
aGUgbmV3bHktYXJyaXZlZCBjdWVzIGlzIGFuIGV4dGVuc2lvbiBvZiB0aGlzIGN1ZS4KLSAgICAg
ICAgICAgICAgICBWZWN0b3I8UmVmUHRyPEdlbmVyaWNDdWVEYXRhPj4gbm9uRXh0ZW5zaW9uQ3Vl
czsKKyAgICAgICAgICAgICAgICBWZWN0b3I8UmVmPEdlbmVyaWNDdWVEYXRhPj4gbm9uRXh0ZW5z
aW9uQ3VlczsKICAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGFycml2aW5nQ3VlIDogYXJyaXZp
bmdDdWVzKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghYXJyaXZpbmdDdWUtPmRvZXNFeHRl
bmRDdWVEYXRhKCpjdWVEYXRhKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vbkV4dGVuc2lv
bkN1ZXMuYXBwZW5kKGFycml2aW5nQ3VlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vbkV4
dGVuc2lvbkN1ZXMuYXBwZW5kKFdURk1vdmUoYXJyaXZpbmdDdWUpKTsKICAgICAgICAgICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSglcCkgLSBmb3VuZCBhbiBleHRlbnNpb24gY3Vl
IChcIiVzXCIpIGZvciB0aW1lID0gJS4yZiwgZW5kID0gJS4yZiwgcG9zaXRpb24gPSAgJS4yZiwg
bGluZSA9ICAlLjJmIiwgdGhpcywgYXJyaXZpbmdDdWUtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgp
LCBhcnJpdmluZ0N1ZS0+c3RhcnRUaW1lKCkudG9Eb3VibGUoKSwgYXJyaXZpbmdDdWUtPmVuZFRp
bWUoKS50b0RvdWJsZSgpLCBhcnJpdmluZ0N1ZS0+cG9zaXRpb24oKSwgYXJyaXZpbmdDdWUtPmxp
bmUoKSk7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgYm9vbCBjdXJyZW50
Q3VlSXNFeHRlbmRlZCA9IChhcnJpdmluZ0N1ZXMuc2l6ZSgpICE9IG5vbkV4dGVuc2lvbkN1ZXMu
c2l6ZSgpKTsKIAotICAgICAgICAgICAgICAgIGFycml2aW5nQ3VlcyA9IG5vbkV4dGVuc2lvbkN1
ZXM7CisgICAgICAgICAgICAgICAgYXJyaXZpbmdDdWVzID0gV1RGTW92ZShub25FeHRlbnNpb25D
dWVzKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAoY3VycmVudEN1ZUlz
RXh0ZW5kZWQpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMzgwLDcgKzM4MCw3
IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0F0dHJpYnV0ZWRTdHJp
bmdzKENGQXJyYXlSZWYgYXR0cmlidXRlZFN0CiAgICAgICAgICAgICAgICAgICAgIGN1ZURhdGEt
PnNldFN0YXR1cyhHZW5lcmljQ3VlRGF0YTo6Q29tcGxldGUpOwogCiAgICAgICAgICAgICAgICAg
ICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWUoJXAp
IC0gdXBkYXRpbmcgY3VlIFwiJXNcIjogc3RhcnQ9JS4yZiwgZW5kPSUuMmYiLCB0aGlzLCBjdWVE
YXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS0+c3RhcnRUaW1lKCkudG9Eb3Vi
bGUoKSwgbV9jdXJyZW50Q3VlRW5kVGltZS50b0RvdWJsZSgpKTsKLSAgICAgICAgICAgICAgICAg
ICAgY2xpZW50KCktPnVwZGF0ZUdlbmVyaWNDdWUodGhpcywgY3VlRGF0YS5nZXQoKSk7CisgICAg
ICAgICAgICAgICAgICAgIGNsaWVudCgpLT51cGRhdGVHZW5lcmljQ3VlKCpjdWVEYXRhKTsKICAg
ICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIHRv
IGFzc3VtZSB0aGF0IHRoZSBpbXBsaWNpdCBkdXJhdGlvbiBpcyBpbnZhbGlkIGZvciBjdWVzIGRl
bGl2ZXJlZCBkdXJpbmcgYSBzZWVrIGJlY2F1c2UgdGhlIEFWRiBkZWNvZGUgcGlwZWxpbmUgbWF5
IG5vdAogICAgICAgICAgICAgICAgICAgICAvLyBzZWUgZXZlcnkgY3VlLCBzbyBETyBOT1QgdXBk
YXRlIGN1ZSBkdXJhdGlvbiB3aGlsZSBzZWVraW5nLgpAQCAtMzk5LDEyICszOTksMTEgQEAgdm9p
ZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQXR0cmlidXRlZFN0cmluZ3MoQ0ZB
cnJheVJlZiBhdHRyaWJ1dGVkU3QKICAgICBtX2N1cnJlbnRDdWVTdGFydFRpbWUgPSB0aW1lOwog
CiAgICAgZm9yIChhdXRvJiBjdWVEYXRhIDogYXJyaXZpbmdDdWVzKSB7Ci0KLSAgICAgICAgbV9j
dWVzLmFwcGVuZChjdWVEYXRhKTsKKyAgICAgICAgbV9jdWVzLmFwcGVuZChjdWVEYXRhLnB0cigp
KTsKICAgICAgICAgCiAgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRUcmFja1ByaXZhdGVB
VkY6OnByb2Nlc3NDdWUoJXApIC0gYWRkaW5nIGN1ZSBcIiVzXCIgZm9yIHRpbWUgPSAlLjJmLCBl
bmQgPSAlLjJmLCBwb3NpdGlvbiA9ICAlLjJmLCBsaW5lID0gICUuMmYiLCB0aGlzLCBjdWVEYXRh
LT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS0+c3RhcnRUaW1lKCkudG9Eb3VibGUo
KSwgY3VlRGF0YS0+ZW5kVGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEtPnBvc2l0aW9uKCksIGN1
ZURhdGEtPmxpbmUoKSk7CiAKLSAgICAgICAgY2xpZW50KCktPmFkZEdlbmVyaWNDdWUodGhpcywg
V1RGTW92ZShjdWVEYXRhKSk7CisgICAgICAgIGNsaWVudCgpLT5hZGRHZW5lcmljQ3VlKFdURk1v
dmUoY3VlRGF0YSkpOwogICAgIH0KIAogICAgIG1fcGVuZGluZ0N1ZVN0YXR1cyA9IHNlZWtpbmco
KSA/IERlbGl2ZXJlZER1cmluZ1NlZWsgOiBWYWxpZDsKQEAgLTQ1MSw5ICs0NTAsOSBAQCB2b2lk
IEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnJlc2V0Q3VlVmFsdWVzKCkKICAgICBpZiAobV9j
dXJyZW50Q3VlRW5kVGltZSAmJiBtX2N1ZXMuc2l6ZSgpKQogICAgICAgICBMT0coTWVkaWEsICJJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpyZXNldEN1ZVZhbHVlcyBmbHVzaGluZyBkYXRhIGZv
ciBjdWVzOiBzdGFydD0lc1xuIiwgdG9TdHJpbmcobV9jdXJyZW50Q3VlU3RhcnRUaW1lKS51dGY4
KCkuZGF0YSgpKTsKIAotICAgIGlmIChjbGllbnQoKSkgewotICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG1fY3Vlcy5zaXplKCk7IGkrKykKLSAgICAgICAgICAgIGNsaWVudCgpLT5yZW1v
dmVHZW5lcmljQ3VlKHRoaXMsIG1fY3Vlc1tpXS5nZXQoKSk7CisgICAgaWYgKGF1dG8qIGNsaWVu
dCA9IHRoaXMtPmNsaWVudCgpKSB7CisgICAgICAgIGZvciAoYXV0byYgY3VlIDogbV9jdWVzKQor
ICAgICAgICAgICAgY2xpZW50LT5yZW1vdmVHZW5lcmljQ3VlKCpjdWUpOwogICAgIH0KIAogICAg
IG1fY3Vlcy5yZXNpemUoMCk7CkBAIC01MDksNyArNTA4LDcgQEAgdm9pZCBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGOjpwcm9jZXNzTmF0aXZlU2FtcGxlcyhDRkFycmF5UmVmIG5hdGl2ZVNhbXBs
ZXMsIGMKICAgICAgICAgICAgIExPRyhNZWRpYSwgIiAgICBpZCA9IFwiJXNcIiwgc2V0dGluZ3Mg
PSBcIiVzXCIsIGN1ZSB0ZXh0ID0gXCIlc1wiIiwgY3VlRGF0YS5pZCgpLnV0ZjgoKS5kYXRhKCks
IGN1ZURhdGEuc2V0dGluZ3MoKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLmN1ZVRleHQoKS51dGY4
KCkuZGF0YSgpKTsKICAgICAgICAgICAgIExPRyhNZWRpYSwgIiAgICBzb3VyY2VJRCA9IFwiJXNc
Iiwgb3JpZ2luYWxTdGFydFRpbWUgPSBcIiVzXCIiLCBjdWVEYXRhLnNvdXJjZUlEKCkudXRmOCgp
LmRhdGEoKSwgY3VlRGF0YS5vcmlnaW5hbFN0YXJ0VGltZSgpLnV0ZjgoKS5kYXRhKCkpOwogCi0g
ICAgICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRDdWVEYXRhKHRoaXMsIGN1ZURhdGEpOwor
ICAgICAgICAgICAgY2xpZW50KCktPnBhcnNlV2ViVlRUQ3VlRGF0YShjdWVEYXRhKTsKICAgICAg
ICAgfQogCiAgICAgICAgIGRvIHsKQEAgLTU0Miw3ICs1NDEsNyBAQCB2b2lkIEluYmFuZFRleHRU
cmFja1ByaXZhdGVBVkY6OnByb2Nlc3NOYXRpdmVTYW1wbGVzKENGQXJyYXlSZWYgbmF0aXZlU2Ft
cGxlcywgYwogICAgICAgICAgICAgaGVhZGVyLmFwcGVuZCgiXG5cbiIpOwogCiAgICAgICAgICAg
ICBMT0coTWVkaWEsICIgICAgdnR0IGhlYWRlciA9IFxuJXMiLCBoZWFkZXIudG9TdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEZpbGVIZWFk
ZXIodGhpcywgaGVhZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgY2xpZW50KCktPnBhcnNl
V2ViVlRURmlsZUhlYWRlcihoZWFkZXIudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICBtX2hhdmVS
ZXBvcnRlZFZUVEhlYWRlciA9IHRydWU7CiAgICAgICAgIH0gd2hpbGUgKDApOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5jcHAKaW5kZXggZmU5MzQ0YjYzMWYwMzVmOWVkZTczNTc0NDA3ZjM0Mzlh
YTI0ZTUwMi4uOGM5NDkzY2E1Yjc5N2U0NDhhMDAyMjM5NDdlOWI1MWIzYzlhODRkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmNwcApAQCAtMzYsOCArMzYsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaywgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMqIHBhcmVudCkKICAgICA6IG1faW1wbChzdGQ6Om1ha2VfdW5pcXVlPEFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKICAgICAsIG1fcGFyZW50KHBhcmVudCkKLSAg
ICAsIG1fdHJhY2tJRCgtMSkKLSAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKICAgICByZXNldFBy
b3BlcnRpZXNGcm9tVHJhY2soKTsKIH0KQEAgLTYzLDE3ICs2MSwxMiBAQCBBVkFzc2V0VHJhY2sq
IEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphc3NldFRyYWNrKCkKICAgICBy
ZXR1cm4gbV9pbXBsLT5hc3NldFRyYWNrKCk7CiB9CiAKLWJvb2wgQXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6OmVuYWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX2VuYWJs
ZWQ7Ci19Ci0KIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEVu
YWJsZWQoYm9vbCBlbmFibGVkKQogewotICAgIGlmIChtX2VuYWJsZWQgPT0gZW5hYmxlZCkKKyAg
ICBpZiAoZW5hYmxlZCA9PSB0aGlzLT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1fZW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgQXVkaW9UcmFja1ByaXZhdGVBVkY6OnNldEVuYWJs
ZWQoZW5hYmxlZCk7CiAgICAgbV9wYXJlbnQtPnRyYWNrRGlkQ2hhbmdlRW5hYmxlZCh0aGlzKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggYmJlODljZGRhMTNiMDgyZGNmODNmMDI1
ZmNjODVjNDI4ZmRjOTE0Ny4uMTdjMTlhMDA2YTc2N2I4NWZmMWJhZDQxYjI4MzAyN2M4NWFmMGNk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKICAqLwogCi0jaWZuZGVmIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
X2gKLSNkZWZpbmUgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakNfaAorI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZUFWRi5oIgogCkBAIC00Niw4ICs0
NSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQyh0cmFjaywgcGFyZW50KSk7CiAgICAgfQogCi0gICAgYm9v
bCBlbmFibGVkKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRFbmFibGVkKGJvb2wpIG92
ZXJyaWRlOworICAgIHZvaWQgc2V0RW5hYmxlZChib29sKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0
QXNzZXRUcmFjayhBVkFzc2V0VHJhY2sqKTsKICAgICBBVkFzc2V0VHJhY2sqIGFzc2V0VHJhY2so
KTsKQEAgLTYyLDExICs2MCw4IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGw+IG1faW1wbDsKICAgICBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQyogbV9wYXJlbnQ7CiAgICAgaW50IG1fdHJhY2tJRDsKLSAgICBib29sIG1fZW5hYmxlZDsK
IH07CiAKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEVOQUJMRShWSURF
T19UUkFDSykKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMuaAppbmRleCAxZjc1ODJlMThiYjY4Y2NiOGMwNjU3NmY0MGMx
YzE5NTM3ZmE3ZTdhLi4zZGFlNGIxMzA4NThmNDYzN2JkZDJmNTFhMmMzNDY4NDI3ZjgyYmEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDLmgKQEAgLTExNCwxOCArMTE0LDE4IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQyopOwogCiAgICAg
Ly8gU291cmNlQnVmZmVyUHJpdmF0ZSBvdmVycmlkZXMKLSAgICB2b2lkIHNldENsaWVudChTb3Vy
Y2VCdWZmZXJQcml2YXRlQ2xpZW50Kikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBhcHBlbmQoY29uc3Qg
dW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBvdmVycmlkZTsKLSAgICB2b2lk
IGFib3J0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkgb3ZlcnJpZGU7
Ci0gICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKCkgb3ZlcnJpZGU7Ci0gICAgTWVkaWFQ
bGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQg
c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBmbHVzaChBdG9taWNTdHJpbmcgdHJhY2tJRCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBlbnF1ZXVl
U2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+LCBBdG9taWNTdHJpbmcgdHJhY2tJRCkgb3Zl
cnJpZGU7Ci0gICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNr
SUQpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIG92ZXJyaWRlOwotICAgIHZv
aWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNr
SUQpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVDbGll
bnQqKSBmaW5hbDsKKyAgICB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1
bnNpZ25lZCBsZW5ndGgpIGZpbmFsOworICAgIHZvaWQgYWJvcnQoKSBmaW5hbDsKKyAgICB2b2lk
IHJlc2V0UGFyc2VyU3RhdGUoKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZWRGcm9tTWVkaWFTb3Vy
Y2UoKSBmaW5hbDsKKyAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29u
c3QgZmluYWw7CisgICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRl
KSBmaW5hbDsKKyAgICB2b2lkIGZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkgZmlu
YWw7CisgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiwgY29uc3QgQXRv
bWljU3RyaW5nJiB0cmFja0lEKSBmaW5hbDsKKyAgICBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxl
cyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpIGZpbmFsOworICAgIHZvaWQgc2V0QWN0aXZl
KGJvb2wpIGZpbmFsOworICAgIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBs
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkQmVj
b21lUmVhZHlGb3JNb3JlU2FtcGxlcyhpbnQgdHJhY2tJRCk7CiAgICAgdm9pZCBhcHBlbmRDb21w
bGV0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMubW0KaW5kZXggM2IwZDY4Y2MyYmYyZDIyYjc4YjM5MmJmMzgyOGZlNjEzOGU5
YjAxOC4uY2M5MmVkMTU4ZjU1M2MxMTYwZGE0M2YyN2ExYTA4OWE5NTczMjhkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0K
QEAgLTUxMiw3ICs1MTIsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQ
YXJzZVN0cmVhbURhdGFBc0Fzc2V0KEFWQXNzZXQqIGFzc2V0KQogICAgICAgICBtX21lZGlhU291
cmNlLT5wbGF5ZXIoKS0+Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOwogCiAgICAgaWYgKG1fY2xp
ZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0
aWFsaXphdGlvblNlZ21lbnQodGhpcywgc2VnbWVudCk7CisgICAgICAgIG1fY2xpZW50LT5zb3Vy
Y2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChzZWdtZW50KTsK
IH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkRmFpbFRvUGFyc2VTdHJl
YW1EYXRhV2l0aEVycm9yKE5TRXJyb3IqIGVycm9yKQpAQCAtNTQ5LDcgKzU0OSw3IEBAIGJvb2wg
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnByb2Nlc3NDb2RlZEZyYW1lKGludCB0cmFja0lE
LCBDTVNhbXBsZUJ1ZmZlclJlCiAgICAgaWYgKG1fY2xpZW50KSB7CiAgICAgICAgIFJlZjxNZWRp
YVNhbXBsZT4gbWVkaWFTYW1wbGUgPSBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShzYW1wbGVC
dWZmZXIsIHRyYWNrSUQpOwogICAgICAgICBMT0coTWVkaWFTb3VyY2VTYW1wbGVzLCAiU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OnByb2Nlc3NDb2RlZEZyYW1lKCVwKSAtIHNhbXBsZSglcyki
LCB0aGlzLCB0b1N0cmluZyhtZWRpYVNhbXBsZS5nZXQoKSkudXRmOCgpLmRhdGEoKSk7Ci0gICAg
ICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSh0aGlzLCBt
ZWRpYVNhbXBsZSk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVj
ZWl2ZVNhbXBsZShtZWRpYVNhbXBsZSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CkBAIC02
NTksNyArNjU5LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5kQ29t
cGxldGVkKCkKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldExvYWRpbmdQcm9n
cmVzc3NlZCh0cnVlKTsKIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnNv
dXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCBtX3BhcnNpbmdTdWNjZWVkZWQg
PyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQgOiBTb3VyY2VCdWZm
ZXJQcml2YXRlQ2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJj
ZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShtX3BhcnNpbmdTdWNjZWVkZWQgPyBTb3VyY2VC
dWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQgOiBTb3VyY2VCdWZmZXJQcml2YXRl
Q2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6YWJvcnQoKQpAQCAtNzM1LDE4ICs3MzUsMTIgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQzo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0
YXQKIAogYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6aGFzVmlkZW8oKSBjb25zdAog
ewotICAgIGlmICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVy
biBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKHRoaXMpOworICAgIHJldHVy
biBtX2NsaWVudCAmJiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCk7CiB9
CiAKIGJvb2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Omhhc0F1ZGlvKCkgY29uc3QKIHsK
LSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4g
bV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyh0aGlzKTsKKyAgICByZXR1cm4g
bV9jbGllbnQgJiYgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygpOwogfQog
CiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0cmFja0RpZENoYW5nZUVuYWJsZWQo
VmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMqIHRyYWNrKQpAQCAtODc0LDcgKzg2
OCw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmxheWVyRGlkUmVjZWl2ZUVy
cm9yKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyCiAgICAgaW50IGVycm9yQ29kZSA9IFtbW2Vy
cm9yIHVzZXJJbmZvXSB2YWx1ZUZvcktleTpAIk9TU3RhdHVzIl0gaW50VmFsdWVdOwogCiAgICAg
aWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJl
Y2VpdmVSZW5kZXJpbmdFcnJvcih0aGlzLCBlcnJvckNvZGUpOworICAgICAgICBtX2NsaWVudC0+
c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihlcnJvckNvZGUpOwog
fQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlckRpZFJlY2VpdmVF
cnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKnJlbmRlcmVyLCBOU0Vycm9yICplcnJv
cikKQEAgLTg5NSw3ICs4ODksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpy
ZW5kZXJlckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZAogICAgICAgICBy
ZXR1cm47CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmZsdXNoKEF0b21p
Y1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
Zmx1c2goY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAgIGludCB0cmFj
a0lEID0gdHJhY2tJRFN0cmluZy50b0ludCgpOwogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVzaCglcCkgLSB0cmFja0lkOiAlZCIsIHRoaXMsIHRy
YWNrSUQpOwpAQCAtOTI1LDE5ICs5MTksMTcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6Zmx1c2goQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICpyZW5kZXJlcikKICAgICAg
ICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxlKHJl
bmRlcmVyLCBmYWxzZSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVu
cXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJwTWVkaWFTYW1wbGUsIEF0b21p
Y1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdCBBdG9taWNTdHJp
bmcmIHRyYWNrSURTdHJpbmcpCiB7CiAgICAgaW50IHRyYWNrSUQgPSB0cmFja0lEU3RyaW5nLnRv
SW50KCk7CiAgICAgaWYgKHRyYWNrSUQgIT0gbV9lbmFibGVkVmlkZW9UcmFja0lEICYmICFtX2F1
ZGlvUmVuZGVyZXJzLmNvbnRhaW5zKHRyYWNrSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBS
ZWZQdHI8TWVkaWFTYW1wbGU+IG1lZGlhU2FtcGxlID0gcHJwTWVkaWFTYW1wbGU7Ci0KLSAgICBQ
bGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBsZSA9IG1lZGlhU2FtcGxlLT5wbGF0Zm9ybVNhbXBs
ZSgpOworICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlID0gc2FtcGxlLT5wbGF0Zm9y
bVNhbXBsZSgpOwogICAgIGlmIChwbGF0Zm9ybVNhbXBsZS50eXBlICE9IFBsYXRmb3JtU2FtcGxl
OjpDTVNhbXBsZUJ1ZmZlclR5cGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIExPRyhNZWRpYVNv
dXJjZVNhbXBsZXMsICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZSgl
cCkgLSBzYW1wbGUoJXMpIiwgdGhpcywgdG9TdHJpbmcoKm1lZGlhU2FtcGxlKS51dGY4KCkuZGF0
YSgpKTsKKyAgICBMT0coTWVkaWFTb3VyY2VTYW1wbGVzLCAiU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6OmVucXVldWVTYW1wbGUoJXApIC0gc2FtcGxlKCVzKSIsIHRoaXMsIHRvU3RyaW5nKHNh
bXBsZS5nZXQoKSkudXRmOCgpLmRhdGEoKSk7CiAKICAgICBpZiAodHJhY2tJRCA9PSBtX2VuYWJs
ZWRWaWRlb1RyYWNrSUQpIHsKICAgICAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXRE
ZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxhdGZvcm1T
YW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKQEAgLTk1MCwyMiArOTQyLDIyIEBAIHZvaWQg
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRp
YVNhbXBsZT4gcHJwTWVkaWFTCiAgICAgICAgICAgICAgICAgaWYgKHNpemVXYXNOdWxsKQogICAg
ICAgICAgICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2V0TmF0dXJhbFNpemUo
Zm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBt
X21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2l6ZVdpbGxDaGFuZ2VBdFRpbWUobWVkaWFTYW1wbGUt
PnByZXNlbnRhdGlvblRpbWUoKSwgZm9ybWF0U2l6ZSk7CisgICAgICAgICAgICAgICAgICAgIG1f
bWVkaWFTb3VyY2UtPnBsYXllcigpLT5zaXplV2lsbENoYW5nZUF0VGltZShzYW1wbGUtPnByZXNl
bnRhdGlvblRpbWUoKSwgZm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAog
ICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZW5xdWV1ZVNhbXBsZUJ1ZmZlcjpwbGF0Zm9ybVNhbXBs
ZS5zYW1wbGUuY21TYW1wbGVCdWZmZXJdOwogICAgICAgICBpZiAobV9tZWRpYVNvdXJjZSkKLSAg
ICAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zZXRIYXNBdmFpbGFibGVWaWRlb0Zy
YW1lKCFtZWRpYVNhbXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOworICAgICAgICAgICAgbV9tZWRp
YVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoIXNhbXBsZS0+aXNO
b25EaXNwbGF5aW5nKCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8gcmVuZGVyZXIgPSBt
X2F1ZGlvUmVuZGVyZXJzLmdldCh0cmFja0lEKTsKICAgICAgICAgW3JlbmRlcmVyIGVucXVldWVT
YW1wbGVCdWZmZXI6cGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyXTsKICAgICAg
ICAgaWYgKG1fbWVkaWFTb3VyY2UpCi0gICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIo
KS0+c2V0SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUocmVuZGVyZXIuZ2V0KCksICFtZWRpYVNhbXBs
ZS0+aXNOb25EaXNwbGF5aW5nKCkpOworICAgICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVy
KCktPnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxlKHJlbmRlcmVyLmdldCgpLCAhc2FtcGxlLT5p
c05vbkRpc3BsYXlpbmcoKSk7CiAgICAgfQogfQogCi1ib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSURTdHJpbmcp
Citib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMo
Y29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAgIGludCB0cmFja0lEID0g
dHJhY2tJRFN0cmluZy50b0ludCgpOwogICAgIGlmICh0cmFja0lEID09IG1fZW5hYmxlZFZpZGVv
VHJhY2tJRCkKQEAgLTk4NCw5ICs5NzYsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjpzZXRBY3RpdmUoYm9vbCBpc0FjdGl2ZSkKIAogTWVkaWFUaW1lIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpmYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoTWVkaWFUaW1lIHRpbWUsIE1l
ZGlhVGltZSBuZWdhdGl2ZVRocmVzaG9sZCwgTWVkaWFUaW1lIHBvc2l0aXZlVGhyZXNob2xkKQog
ewotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgcmV0dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZm
ZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRoaXMsIHRpbWUsIG5lZ2F0aXZlVGhy
ZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7Ci0gICAgcmV0dXJuIHRpbWU7CisgICAgaWYgKCFt
X2NsaWVudCkKKyAgICAgICAgcmV0dXJuIHRpbWU7CisgICAgcmV0dXJuIG1fY2xpZW50LT5zb3Vy
Y2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRpbWUsIG5lZ2F0aXZlVGhy
ZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OndpbGxTZWVrKCkKQEAgLTEwMDEsNyArOTkzLDcgQEAgdm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6d2lsbFNlZWsoKQogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6c2Vla1RvVGltZShNZWRpYVRpbWUgdGltZSkKIHsKICAgICBpZiAobV9jbGllbnQpCi0g
ICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGltZSh0aGlzLCB0aW1l
KTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKHRpbWUp
OwogfQogCiBGbG9hdFNpemUgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om5hdHVyYWxTaXpl
KCkKQEAgLTEwMjEsMTAgKzEwMTMsMTAgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6ZGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhpbnQgdHJhY2tJRCkKICAgICB9CiAKICAg
ICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlk
QmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyh0aGlzLCBBdG9taWNTdHJpbmc6Om51bWJlcih0cmFj
a0lEKSk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVh
ZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmc6Om51bWJlcih0cmFja0lEKSk7CiB9CiAKLXZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1v
cmVTYW1wbGVzKEF0b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3Qg
QXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAgIGludCB0cmFja0lEID0gdHJhY2tJ
RFN0cmluZy50b0ludCgpOwogICAgIGlmICh0cmFja0lEID09IG1fZW5hYmxlZFZpZGVvVHJhY2tJ
RCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJj
ZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcAppbmRleCA0OGRmNGJj
YzRjM2JiOGRhMmM1ZjQ5MDBlMTc1MDYwMDc5MTg1NmYzLi4xNTBkMmMzMjZhMGFmY2QzYWNlY2M4
MDU4ZjRjOWZkNjIwNWYwNzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRl
LmNwcApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVDbGll
bnQuaCIKICNpbmNsdWRlIDxtYXA+CiAjaW5jbHVkZSA8cnVudGltZS9BcnJheUJ1ZmZlci5oPgot
I2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0
cmVhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNjUsNyArMTY0LDcgQEAgdm9pZCBN
b2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6YXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEs
IHVuc2lnbmVkIGxlbmd0aCkKICAgICB9CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1f
Y2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUodGhpcywgcmVzdWx0KTsK
KyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShyZXN1
bHQpOwogfQogCiB2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlSW5pdGlh
bGl6YXRpb25TZWdtZW50KGNvbnN0IE1vY2tJbml0aWFsaXphdGlvbkJveCYgaW5pdEJveCkKQEAg
LTE5Niw3ICsxOTUsNyBAQCB2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZl
SW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IE1vY2tJbml0aWFsaQogICAgICAgICB9CiAgICAg
fQogCi0gICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6
YXRpb25TZWdtZW50KHRoaXMsIHNlZ21lbnQpOworICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQ
cml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChzZWdtZW50KTsKIH0KIAogCkBA
IC0yMDUsNyArMjA0LDcgQEAgdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2
ZVNhbXBsZShjb25zdCBNb2NrU2FtcGxlQm94JiBzYW1wbGVCb3gpCiAgICAgaWYgKCFtX2NsaWVu
dCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlU2FtcGxlKHRoaXMsIE1vY2tNZWRpYVNhbXBsZTo6Y3JlYXRlKHNhbXBsZUJveCkp
OworICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShNb2Nr
TWVkaWFTYW1wbGU6OmNyZWF0ZShzYW1wbGVCb3gpKTsKIH0KIAogdm9pZCBNb2NrU291cmNlQnVm
ZmVyUHJpdmF0ZTo6YWJvcnQoKQpAQCAtMjM5LDIyICsyMzgsMjEgQEAgdm9pZCBNb2NrU291cmNl
QnVmZmVyUHJpdmF0ZTo6c2V0QWN0aXZlKGJvb2wgaXNBY3RpdmUpCiAgICAgICAgIG1fbWVkaWFT
b3VyY2UtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRDaGFuZ2VBY3RpdmVTdGF0ZSh0aGlzLCBpc0Fj
dGl2ZSk7CiB9CiAKLVZlY3RvcjxTdHJpbmc+IE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjplbnF1
ZXVlZFNhbXBsZXNGb3JUcmFja0lEKEF0b21pY1N0cmluZykKK1ZlY3RvcjxTdHJpbmc+IE1vY2tT
b3VyY2VCdWZmZXJQcml2YXRlOjplbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKGNvbnN0IEF0b21p
Y1N0cmluZyYpCiB7CiAgICAgcmV0dXJuIG1fZW5xdWV1ZWRTYW1wbGVzOwogfQogCi12b2lkIE1v
Y2tTb3VyY2VCdWZmZXJQcml2YXRlOjplbnF1ZXVlU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1w
bGU+IHBycFNhbXBsZSwgQXRvbWljU3RyaW5nKQordm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0
ZTo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdCBBdG9taWNT
dHJpbmcmKQogewotICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gc2FtcGxlID0gcHJwU2FtcGxlOwot
ICAgIGlmICghbV9tZWRpYVNvdXJjZSB8fCAhc2FtcGxlKQorICAgIGlmICghbV9tZWRpYVNvdXJj
ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUGxhdGZvcm1TYW1wbGUgcGxhdGZvcm1TYW1wbGUg
PSBzYW1wbGUtPnBsYXRmb3JtU2FtcGxlKCk7CiAgICAgaWYgKHBsYXRmb3JtU2FtcGxlLnR5cGUg
IT0gUGxhdGZvcm1TYW1wbGU6Ok1vY2tTYW1wbGVCb3hUeXBlKQogICAgICAgICByZXR1cm47CiAK
LSAgICBNb2NrU2FtcGxlQm94KiBib3ggPSBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUubW9ja1NhbXBs
ZUJveDsKKyAgICBhdXRvKiBib3ggPSBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUubW9ja1NhbXBsZUJv
eDsKICAgICBpZiAoIWJveCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yNjYsMzcgKzI2NCwzMCBA
QCB2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjplbnF1ZXVlU2FtcGxlKFBhc3NSZWZQdHI8
TWVkaWFTYW1wbGU+IHBycFNhbXBsZSwgQQogICAgIGlmIChib3gtPmlzRGVsYXllZCgpKQogICAg
ICAgICBtX21lZGlhU291cmNlLT5pbmNyZW1lbnRUb3RhbEZyYW1lRGVsYXlCeShNZWRpYVRpbWUo
MSwgMSkpOwogCi0gICAgbV9lbnF1ZXVlZFNhbXBsZXMuYXBwZW5kKHRvU3RyaW5nKHNhbXBsZSkp
OworICAgIG1fZW5xdWV1ZWRTYW1wbGVzLmFwcGVuZCh0b1N0cmluZyhzYW1wbGUuZ2V0KCkpKTsK
IH0KIAogYm9vbCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6aGFzVmlkZW8oKSBjb25zdAogewot
ICAgIGlmICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBt
X2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKHRoaXMpOworICAgIHJldHVybiBt
X2NsaWVudCAmJiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCk7CiB9CiAK
IGJvb2wgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6Omhhc0F1ZGlvKCkgY29uc3QKIHsKLSAgICBp
ZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9jbGll
bnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyh0aGlzKTsKKyAgICByZXR1cm4gbV9jbGll
bnQgJiYgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygpOwogfQogCi0KIE1l
ZGlhVGltZSBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1l
KGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgTWVkaWFUaW1lJiBuZWdhdGl2ZVRocmVzaG9s
ZCwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRocmVzaG9sZCkKIHsKICAgICBpZiAobV9jbGll
bnQpCi0gICAgICAgIHJldHVybiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUZhc3RTZWVr
VGltZUZvck1lZGlhVGltZSh0aGlzLCB0aW1lLCBuZWdhdGl2ZVRocmVzaG9sZCwgcG9zaXRpdmVU
aHJlc2hvbGQpOworICAgICAgICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVG
YXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUodGltZSwgbmVnYXRpdmVUaHJlc2hvbGQsIHBvc2l0aXZl
VGhyZXNob2xkKTsKICAgICByZXR1cm4gdGltZTsKIH0KIAogdm9pZCBNb2NrU291cmNlQnVmZmVy
UHJpdmF0ZTo6c2Vla1RvVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUpCiB7CiAgICAgaWYgKG1f
Y2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZVNlZWtUb1RpbWUo
dGhpcywgdGltZSk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlU2Vla1Rv
VGltZSh0aW1lKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oCmlu
ZGV4IDc0NGI0YzEwN2MzMTAyNmZhNDI5YThmMTJkMjU2M2JmYzM2MzJkMjguLjYxNzQ1ZmI1YTg1
ODUxZmFjZmQ3ZTc1ZDgzMWIzYTBlZmJkYTY2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZm
ZXJQcml2YXRlLmgKQEAgLTIzLDE1ICsyMywxMiBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAot
I2lmbmRlZiBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZV9oCi0jZGVmaW5lIE1vY2tTb3VyY2VCdWZm
ZXJQcml2YXRlX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAog
I2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1l
Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02OCwxMiArNjUsMTIgQEAgcHJpdmF0ZToKICAgICBN
ZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsKIAot
ICAgIHZvaWQgZmx1c2goQXRvbWljU3RyaW5nKSBvdmVycmlkZSB7IG1fZW5xdWV1ZWRTYW1wbGVz
LmNsZWFyKCk7IH0KLSAgICB2b2lkIGVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBs
ZT4sIEF0b21pY1N0cmluZykgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBs
ZXMoQXRvbWljU3RyaW5nKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdm9pZCBmbHVz
aChjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZSB7IG1fZW5xdWV1ZWRTYW1wbGVzLmNsZWFy
KCk7IH0KKyAgICB2b2lkIGVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmLCBjb25zdCBB
dG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhj
b25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBz
ZXRBY3RpdmUoYm9vbCkgb3ZlcnJpZGU7CiAKLSAgICBWZWN0b3I8U3RyaW5nPiBlbnF1ZXVlZFNh
bXBsZXNGb3JUcmFja0lEKEF0b21pY1N0cmluZykgb3ZlcnJpZGU7CisgICAgVmVjdG9yPFN0cmlu
Zz4gZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlk
ZTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBNb2Nr
SW5pdGlhbGl6YXRpb25Cb3gmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTYW1wbGUoY29uc3QgTW9j
a1NhbXBsZUJveCYpOwpAQCAtODgsNiArODUsMyBAQCBwcml2YXRlOgogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgVVNFKEFWRk9VTkRBVElPTikKLQotI2VuZGlmCi0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4u
Y3BwCmluZGV4IDMzZmU0Mzk2MDJjY2QwNzUwYWUzYzNjYjBjNGQ3ODBjZjcxYmVjODMuLjhlZjQ4
OWQ3ODI2ZGNjMDEzMWJiMzJkY2U5YmI2MzU0Mzg5ZThhOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAtODIsMTMg
KzgyLDEzIEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmxheW91dCgpCiAgICAgdmll
dygpLmZyYW1lVmlldygpLmFkZEVtYmVkZGVkT2JqZWN0VG9VcGRhdGUoKnRoaXMpOwogfQogCi12
b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPElt
YWdlPiBpbWFnZSkKK3ZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnVwZGF0ZVNuYXBzaG90
KEltYWdlKiBpbWFnZSkKIHsKICAgICAvLyBaZXJvLXNpemUgcGx1Z2lucyB3aWxsIGhhdmUgbm8g
aW1hZ2UuCiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9zbmFwc2hv
dFJlc291cmNlLT5zZXRDYWNoZWRJbWFnZShuZXcgQ2FjaGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIHZp
ZXcoKS5mcmFtZVZpZXcoKS5mcmFtZSgpLnBhZ2UoKS0+c2Vzc2lvbklEKCkpKTsKKyAgICBtX3Nu
YXBzaG90UmVzb3VyY2UtPnNldENhY2hlZEltYWdlKG5ldyBDYWNoZWRJbWFnZShpbWFnZSwgdmll
dygpLmZyYW1lVmlldygpLmZyYW1lKCkucGFnZSgpLT5zZXNzaW9uSUQoKSkpOwogICAgIHJlcGFp
bnQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNu
YXBzaG90dGVkUGx1Z0luLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW4uaAppbmRleCAxMzRkYjgzM2I3OThlZTVjMzdiMWJhMjdkYTU0OGZjNTQzZWY4
NjQ3Li5jMTc5N2EwZDYyMzFlYzk4NmYxZGMyZDMwMGVhZWVjZjIxNWU1Njc0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaApAQCAt
NDAsNyArNDAsNyBAQCBwdWJsaWM6CiAKICAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBwbHVn
SW5JbWFnZUVsZW1lbnQoKSBjb25zdDsKIAotICAgIHZvaWQgdXBkYXRlU25hcHNob3QoUGFzc1Jl
ZlB0cjxJbWFnZT4pOworICAgIHZvaWQgdXBkYXRlU25hcHNob3QoSW1hZ2UqKTsKIAogICAgIHZv
aWQgaGFuZGxlRXZlbnQoRXZlbnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50
LmgKaW5kZXggOGI3ZDkyNDU2NGE2NGYwMWM5NmQwYmUyNDMwOGNlYWE5ODZkMTZlOS4uOGRkMGZk
OGUzODIxNDhhNGE1NDAyM2IzNGRjZTcyY2ViMzliMmQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U2NyaXB0RWxlbWVudC5oCkBAIC0yOSwxMyArMjksMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBTVkdTY3JpcHRFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgU1ZHVVJJUmVmZXJlbmNlCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICwgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgU2NyaXB0RWxlbWVu
dCB7CitjbGFzcyBTVkdTY3JpcHRFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQsIHB1
YmxpYyBTVkdVUklSZWZlcmVuY2UsIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LCBwdWJsaWMgU2NyaXB0RWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTVkdTY3Jp
cHRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3
YXNJbnNlcnRlZEJ5UGFyc2VyKTsKIAorICAgIHVzaW5nIFNWR0VsZW1lbnQ6OnJlZjsKKyAgICB1
c2luZyBTVkdFbGVtZW50OjpkZXJlZjsKKwogcHJpdmF0ZToKICAgICBTVkdTY3JpcHRFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNl
ciwgYm9vbCBhbHJlYWR5U3RhcnRlZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNl
ci9YTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggOTI2MDVmYzAyMzVjN2FlZmJlNzZhYzg2MWUw
Zjg1ZjZlOGE1ZGE4Zi4uMTc1YTU5ZmU1ZDUyYjMwM2UwNzEzZDAzYWNhMWNjMmRjZjk0OTBhMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAK
QEAgLTIzNyw4ICsyMzcsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpub3RpZnlGaW5pc2hl
ZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogICAgIG1fcGVuZGluZ1NjcmlwdCA9IG51
bGxwdHI7CiAgICAgcGVuZGluZ1NjcmlwdC5jbGVhckNsaWVudCgpOwogCi0gICAgYXV0byYgc2Ny
aXB0RWxlbWVudCA9ICp0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5nU2NyaXB0LmVs
ZW1lbnQoKSk7Ci0gICAgc2NyaXB0RWxlbWVudC5leGVjdXRlUGVuZGluZ1NjcmlwdChwZW5kaW5n
U2NyaXB0KTsKKyAgICBwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKS5leGVjdXRlUGVuZGluZ1Njcmlw
dChwZW5kaW5nU2NyaXB0KTsKIAogICAgIGlmICghaXNEZXRhY2hlZCgpICYmICFtX3JlcXVlc3Rp
bmdTY3JpcHQpCiAgICAgICAgIHJlc3VtZVBhcnNpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCA3MDY3
Njc2ZGQxN2E3NGQ5ZTQyNzI5ZDNkMjlkM2RkOGU4YTdmOGNlLi5mZTQyYTJiYzJjZjg0ZGMzY2E2
NzA4NmYzN2NkZGU5MGVmNmQwN2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFy
c2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1s
L3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC03OTksOCArNzk5LDcgQEAg
dm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50TnMoY29uc3QgeG1sQ2hhciogeG1s
TG9jYWxOYW1lLCBjb25zdCB4bWxDaGEKIAogICAgIG5ld0VsZW1lbnQtPmJlZ2luUGFyc2luZ0No
aWxkcmVuKCk7CiAKLSAgICBTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRF
bGVtZW50SWZQb3NzaWJsZShuZXdFbGVtZW50LnB0cigpKTsKLSAgICBpZiAoc2NyaXB0RWxlbWVu
dCkKKyAgICBpZiAoaXNTY3JpcHRFbGVtZW50KG5ld0VsZW1lbnQuZ2V0KCkpKQogICAgICAgICBt
X3NjcmlwdFN0YXJ0UG9zaXRpb24gPSB0ZXh0UG9zaXRpb24oKTsKIAogICAgIG1fY3VycmVudE5v
ZGUtPnBhcnNlckFwcGVuZENoaWxkKG5ld0VsZW1lbnQpOwpAQCAtODQzLDcgKzg0Miw3IEBAIHZv
aWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgaWYgKGhhY2tBcm91bmRM
aWJYTUxFbnRpdHlQYXJzaW5nQnVnKCkgJiYgY29udGV4dCgpLT5kZXB0aCA8PSBkZXB0aFRyaWdn
ZXJpbmdFbnRpdHlFeHBhbnNpb24oKSkKICAgICAgICAgc2V0RGVwdGhUcmlnZ2VyaW5nRW50aXR5
RXhwYW5zaW9uKC0xKTsKIAotICAgIGlmICghc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChwYXJz
ZXJDb250ZW50UG9saWN5KCkpICYmIGlzPEVsZW1lbnQ+KCpub2RlKSAmJiB0b1NjcmlwdEVsZW1l
bnRJZlBvc3NpYmxlKGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUuZ2V0KCkpKSkgeworICAgIGlmICgh
c2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChwYXJzZXJDb250ZW50UG9saWN5KCkpICYmIGlzPEVs
ZW1lbnQ+KCpub2RlKSAmJiBpc1NjcmlwdEVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUp
KSkgewogICAgICAgICBwb3BDdXJyZW50Tm9kZSgpOwogICAgICAgICBub2RlLT5yZW1vdmUoKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtODU0LDcgKzg1Myw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJz
ZXI6OmVuZEVsZW1lbnROcygpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBFbGVtZW50
JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpOworICAgIGF1dG8mIGVsZW1lbnQg
PSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7CiAKICAgICAvLyBUaGUgZWxlbWVudCdzIHBhcmVu
dCBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gcmVtb3ZlZCBmcm9tIGRvY3VtZW50LgogICAgIC8vIFBh
cnNpbmcgY29udGludWVzIGluIHRoaXMgY2FzZSwgYnV0IHNjcmlwdHMgYXJlbid0IGV4ZWN1dGVk
LgpAQCAtODYzLDggKzg2Miw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnRO
cygpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTY3JpcHRFbGVtZW50KiBzY3JpcHRF
bGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmZWxlbWVudCk7Ci0gICAgaWYgKCFz
Y3JpcHRFbGVtZW50KSB7CisgICAgaWYgKCFpc1NjcmlwdEVsZW1lbnQoZWxlbWVudCkpIHsKICAg
ICAgICAgcG9wQ3VycmVudE5vZGUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTg3Mywx
NSArODcxLDE2IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAg
QVNTRVJUKCFtX3BlbmRpbmdTY3JpcHQpOwogICAgIG1fcmVxdWVzdGluZ1NjcmlwdCA9IHRydWU7
CiAKLSAgICBpZiAoc2NyaXB0RWxlbWVudC0+cHJlcGFyZVNjcmlwdChtX3NjcmlwdFN0YXJ0UG9z
aXRpb24sIFNjcmlwdEVsZW1lbnQ6OkFsbG93TGVnYWN5VHlwZUluVHlwZUF0dHJpYnV0ZSkpIHsK
KyAgICBhdXRvJiBzY3JpcHRFbGVtZW50ID0gZG93bmNhc3RTY3JpcHRFbGVtZW50KGVsZW1lbnQp
OworICAgIGlmIChzY3JpcHRFbGVtZW50LnByZXBhcmVTY3JpcHQobV9zY3JpcHRTdGFydFBvc2l0
aW9uLCBTY3JpcHRFbGVtZW50OjpBbGxvd0xlZ2FjeVR5cGVJblR5cGVBdHRyaWJ1dGUpKSB7CiAg
ICAgICAgIC8vIEZJWE1FOiBTY3JpcHQgZXhlY3V0aW9uIHNob3VsZCBiZSBzaGFyZWQgYmV0d2Vl
bgogICAgICAgICAvLyB0aGUgbGlieG1sMiBhbmQgUXQgWE1MRG9jdW1lbnRQYXJzZXIgaW1wbGVt
ZW50YXRpb25zLgogCi0gICAgICAgIGlmIChzY3JpcHRFbGVtZW50LT5yZWFkeVRvQmVQYXJzZXJF
eGVjdXRlZCgpKQotICAgICAgICAgICAgc2NyaXB0RWxlbWVudC0+ZXhlY3V0ZUNsYXNzaWNTY3Jp
cHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRFbGVtZW50LT5zY3JpcHRDb250ZW50KCksIGRvY3Vt
ZW50KCktPnVybCgpLCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24pKTsKLSAgICAgICAgZWxzZSBpZiAo
c2NyaXB0RWxlbWVudC0+d2lsbEJlUGFyc2VyRXhlY3V0ZWQoKSAmJiBzY3JpcHRFbGVtZW50LT5s
b2FkYWJsZVNjcmlwdCgpKSB7Ci0gICAgICAgICAgICBtX3BlbmRpbmdTY3JpcHQgPSBQZW5kaW5n
U2NyaXB0OjpjcmVhdGUoZWxlbWVudCwgKnNjcmlwdEVsZW1lbnQtPmxvYWRhYmxlU2NyaXB0KCkp
OwotICAgICAgICAgICAgbV9wZW5kaW5nU2NyaXB0LT5zZXRDbGllbnQodGhpcyk7CisgICAgICAg
IGlmIChzY3JpcHRFbGVtZW50LnJlYWR5VG9CZVBhcnNlckV4ZWN1dGVkKCkpCisgICAgICAgICAg
ICBzY3JpcHRFbGVtZW50LmV4ZWN1dGVDbGFzc2ljU2NyaXB0KFNjcmlwdFNvdXJjZUNvZGUoc2Ny
aXB0RWxlbWVudC5zY3JpcHRDb250ZW50KCksIGRvY3VtZW50KCktPnVybCgpLCBtX3NjcmlwdFN0
YXJ0UG9zaXRpb24pKTsKKyAgICAgICAgZWxzZSBpZiAoc2NyaXB0RWxlbWVudC53aWxsQmVQYXJz
ZXJFeGVjdXRlZCgpICYmIHNjcmlwdEVsZW1lbnQubG9hZGFibGVTY3JpcHQoKSkgeworICAgICAg
ICAgICAgbV9wZW5kaW5nU2NyaXB0ID0gUGVuZGluZ1NjcmlwdDo6Y3JlYXRlKHNjcmlwdEVsZW1l
bnQsICpzY3JpcHRFbGVtZW50LmxvYWRhYmxlU2NyaXB0KCkpOworICAgICAgICAgICAgbV9wZW5k
aW5nU2NyaXB0LT5zZXRDbGllbnQoKnRoaXMpOwogCiAgICAgICAgICAgICAvLyBtX3BlbmRpbmdT
Y3JpcHQgd2lsbCBiZSBudWxscHRyIGlmIHNjcmlwdCB3YXMgYWxyZWFkeSBsb2FkZWQgYW5kIHNl
dENsaWVudCgpIGV4ZWN1dGVkIGl0LgogICAgICAgICAgICAgaWYgKG1fcGVuZGluZ1NjcmlwdCkK
QEAgLTg5NiwxOSArODk1LDE5IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnRO
cygpCiAgICAgcG9wQ3VycmVudE5vZGUoKTsKIH0KIAotdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6
Y2hhcmFjdGVycyhjb25zdCB4bWxDaGFyKiBzLCBpbnQgbGVuKQordm9pZCBYTUxEb2N1bWVudFBh
cnNlcjo6Y2hhcmFjdGVycyhjb25zdCB4bWxDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKQog
ewogICAgIGlmIChpc1N0b3BwZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fcGFy
c2VyUGF1c2VkKSB7Ci0gICAgICAgIG1fcGVuZGluZ0NhbGxiYWNrcy0+YXBwZW5kQ2hhcmFjdGVy
c0NhbGxiYWNrKHMsIGxlbik7CisgICAgICAgIG1fcGVuZGluZ0NhbGxiYWNrcy0+YXBwZW5kQ2hh
cmFjdGVyc0NhbGxiYWNrKGNoYXJhY3RlcnMsIGxlbmd0aCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICAgICBpZiAoIW1fbGVhZlRleHROb2RlKQogICAgICAgICBjcmVhdGVMZWFmVGV4dE5v
ZGUoKTsKLSAgICBtX2J1ZmZlcmVkVGV4dC5hcHBlbmQocywgbGVuKTsKKyAgICBtX2J1ZmZlcmVk
VGV4dC5hcHBlbmQoY2hhcmFjdGVycywgbGVuZ3RoKTsKIH0KIAogdm9pZCBYTUxEb2N1bWVudFBh
cnNlcjo6ZXJyb3IoWE1MRXJyb3JzOjpFcnJvclR5cGUgdHlwZSwgY29uc3QgY2hhciogbWVzc2Fn
ZSwgdmFfbGlzdCBhcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBjMTAxOTI0ZWE1ZjFkNjYyOTNiMTk5YTMwMDEyNGRi
MmMyM2Y1N2I0Li45ZmFkN2RkYmJmZTRjYzBmMzMyNWM5Yjg5ZDFmYmEzYWUxYTgyNWNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aApAQCAtMTI1LDcgKzEyNSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVu
UGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0
cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciopIG92ZXJyaWRlOworICAgIHZvaWQgbG9h
ZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUlj
b25Mb2FkZXImKSBvdmVycmlkZTsKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgdm9pZCBzZXRD
dXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggYmNlYWZk
NTExNjUzMjJiM2FkYmE3OTRjMGMxZjU4ZGI1Y2UxOWE4Yi4uZTk3YTk4ZmU4YjFiNjVkZTZmMDU4
YTBiODljY2U4MWY5MGVjODI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtNzU3LDkgKzc1Nyw5IEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2Vy
PiBjaG9vc2VyKQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKLXZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxl
bmFtZXMsIEZpbGVJY29uTG9hZGVyKiBpY29uTG9hZGVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUlj
b25Mb2FkZXImIGljb25Mb2FkZXIpCiB7Ci0gICAgaWNvbkxvYWRlci0+bm90aWZ5RmluaXNoZWQo
SWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOworICAgIGljb25Mb2FkZXIuaWNv
bkxvYWRlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7CiB9CiAKICNpZiAh
UExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDdmMGU3NWRjYjk4MjNi
YjJkZGMxMGNlNjA5MWQxOTQ0YWQ5MjJhNzUuLjc3N2U5ZTBhNTlhNTkzYzYyODdkNmFjZTlmZjU5
ZGQzZTNiMGRiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTc2MSw5ICs3NjEsOSBA
QCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1Jl
ZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSdW5PcGVuUGFuZWwod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmln
aW5EYXRhOjpmcm9tRnJhbWUoZnJhbWUpLCBmaWxlQ2hvb3Nlci0+c2V0dGluZ3MoKSkpOwogfQog
Ci12b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciogbG9hZGVyKQordm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywg
RmlsZUljb25Mb2FkZXImIGxvYWRlcikKIHsKLSAgICBsb2FkZXItPm5vdGlmeUZpbmlzaGVkKElj
b246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKKyAgICBsb2FkZXIuaWNvbkxvYWRl
ZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7CiB9CiAKICNpZiAhUExBVEZP
Uk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggMDVlNGIzNWExZGUxOGI5ZWJlZjg1NDA1
MjZhZmIyYTVlZmRmZDc2Yy4uZDY0Y2Q5OTBiNzhlYmNjYTkwNGY3NTU3Nzk4OWEzMzU2NTQxODVm
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xODIsNyArMTgyLDcgQEAgcHJpdmF0ZToKICNl
bmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRy
PFdlYkNvcmU6OkZpbGVDaG9vc2VyPikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2FkSWNvbkZvckZp
bGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBX
ZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpIG92ZXJyaWRlOwogCiAjaWYgIVBMQVRGT1JNKElPUykK
ICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297882</attachid>
            <date>2017-01-02 00:52:25 -0800</date>
            <delta_ts>2017-01-02 10:28:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166635-20170102005101.patch</filename>
            <type>text/plain</type>
            <size>482623</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI3MWNlMGZjMmNkYzZmOGM1YWU3YmVh
NTA2YjA0ZTY1MGI0YmU4ZGMuLjMyNjE1Zjk5MGQ3ZDgzZDVmOTg2MDk2ZTg2ZmFhN2Q2M2ZiYjU2
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDEtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRt
bCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpt
YWtlUmVmUHRyKTogQWRkZWQuCisKIDIwMTYtMTItMjIgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIERlLWR1cGxpY2F0ZSBmaW5hbGx5IGJsb2Nrcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0MjdlYzkwNWM1NGZmNzdlNGUwY2JmYmRkY2QxMDA1NmFhMTg2NWMzLi4wNjEzNzM5YmZh
YTkxYThlMjc4N2I0NmY0NzIzZjdkMzZkYTFmYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTctMDEtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRtbCIgZGlyZWN0b3J5LCBvdGhlciBp
bXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vIGNoYW5nZSBsb2cgeWV0OiBKdXN0IHVwbG9hZGluZyBmb3IgRVdTIGZvciBub3cuCisK
IDIwMTctMDEtMDEgIEplZmYgTWlsbGVyICA8amVmZm1AYXBwbGUuY29tPgogCiAgICAgICAgIFVw
ZGF0ZSB1c2VyLXZpc2libGUgY29weXJpZ2h0IHN0cmluZ3MgdG8gaW5jbHVkZSAyMDE3CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKaW5kZXggOGYyZWM3MzM3MDIwM2ZhMzdmZGM4ZmIxNDRlYWEwYjY4NDQ4OWZlOS4u
M2JmMDdmMTY2ODk4ODg1Mzc0NGZlNjQyNGNmMTdkYzEzMGUxMDc3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAxLTAyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciB1c2UgZnJvbSB0aGUgImh0bWwiIGRp
cmVjdG9yeSwgb3RoZXIgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdl
YkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVh
ZCBvZiBhIHBvaW50ZXIuCisKIDIwMTctMDEtMDEgIEplZmYgTWlsbGVyICA8amVmZm1AYXBwbGUu
Y29tPgogCiAgICAgICAgIFVwZGF0ZSB1c2VyLXZpc2libGUgY29weXJpZ2h0IHN0cmluZ3MgdG8g
aW5jbHVkZSAyMDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjg5NWRjMjc4YTNhZTAwMzcxMWVlMDMzYWI5N2Ey
ZGMyMzAxMWI4Yy4uOTIyMzQ4Yjc4ODY0MTM1ZGQ0YmQ3Y2ZmZmRhNjQ4YWQwNGRlMDA0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAxLTAyICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciB1c2UgZnJvbSB0aGUgImh0
bWwiIGRpcmVjdG9yeSwgb3RoZXIgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2MzUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpsb2Fk
SWNvbkZvckZpbGVzKTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgcG9pbnRlci4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOiBEaXR0
by4KKwogMjAxNy0wMS0wMSAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIHVzZXItdmlzaWJsZSBjb3B5cmlnaHQgc3RyaW5ncyB0byBpbmNsdWRlIDIwMTcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oIGIvU291cmNlL1dURi93dGYvUmVm
UHRyLmgKaW5kZXggODdmYzQ1NmYzNzA0MDQ5YmY0ZWNjY2JmM2E0ZmY1NzY5NzllNjc3Zi4uYWVk
NzJmZjBmMGQ4Y2NlMjg1ODQxYzRhMjk5MjhlZmVhN2QxZTY5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvUmVmUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYvUmVmUHRyLmgKQEAgLTI0Miwx
MCArMjQyLDIxIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4gYWRvcHRS
ZWYoVCogcCkKICAgICByZXR1cm4gUmVmUHRyPFQ+KHAsIFJlZlB0cjxUPjo6QWRvcHQpOwogfQog
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVmUHRyPFQ+IG1ha2VSZWZQdHIoVCogcG9p
bnRlcikKK3sKKyAgICByZXR1cm4gcG9pbnRlcjsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lIFJlZlB0cjxUPiBtYWtlUmVmUHRyKFQmIHJlZmVyZW5jZSkKK3sKKyAgICByZXR1cm4g
JnJlZmVyZW5jZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6UmVmUHRy
OwogdXNpbmcgV1RGOjphZG9wdFJlZjsKK3VzaW5nIFdURjo6bWFrZVJlZlB0cjsKIHVzaW5nIFdU
Rjo6c3RhdGljX3BvaW50ZXJfY2FzdDsKIAogI2VuZGlmIC8vIFdURl9SZWZQdHJfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCAwYzg1MWRlNDBmMTNlYWM3ZmI5YzdkODExZDE3ZWIyMTM0ZmVmZDJi
Li5jN2FhZTc3NmFiODU1OTRhY2FmODc4OWJhYzZjMDI2Mzg1YmE3ODk5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMTc4Niw2ICsxNzg2LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0
bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXIuY3BwCiAgICAgaHRtbC9jYW52YXMv
T0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCiAgICAgaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5jcHAKKyAgICBodG1sL2NhbnZhcy9XZWJHTEFueS5jcHAKICAgICBodG1sL2NhbnZh
cy9XZWJHTEJ1ZmZlci5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHAK
QEAgLTE3OTksNyArMTgwMCw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL2NhbnZh
cy9XZWJHTERyYXdCdWZmZXJzLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmNw
cAogICAgIGh0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCi0gICAgaHRtbC9jYW52YXMv
V2ViR0xHZXRJbmZvLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuY3BwCiAg
ICAgaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3BwCiAgICAgaHRtbC9jYW52YXMvV2ViR0xQcm9n
cmFtLmNwcApAQCAtMzA3OCw2ICszMDc4LDcgQEAgaWYgKEVOQUJMRV9XRUJHTCkKICAgICAgICAg
aHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5jcHAKICAgICAgICAgaHRtbC9j
YW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuY3BwCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQW55LmNwcAog
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKICAgICAgICAgaHRtbC9jYW52YXMv
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcApAQCAtMzA5MSw3ICszMDkyLDYgQEAgaWYgKEVOQUJM
RV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xEcmF3QnVmZmVycy5jcHAKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dl
YkdMRnJhbWVidWZmZXIuY3BwCi0gICAgICAgIGh0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHAK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHAKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xPYmplY3QuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5jcHAKaW5kZXggNDNjMGQwMDBkOGU3MzU1NmZlZTE3MDQyYWY2MzllMDc5ZWQ5OTMwNC4uZGU4
ZDc2ZWFhY2Q1YWM4YmM1ZTIxNGZmNDk4OGQ3ZDI2ZTJmMDI1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTY5MywxOCAr
NjkzLDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZm
ZXIoU291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgYnVmZmVyLmFib3J0SWZVcGRhdGluZygpOwog
CiAgICAgLy8gNC4gTGV0IFNvdXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0IGVxdWFsIHRoZSBB
dWRpb1RyYWNrTGlzdCBvYmplY3QgcmV0dXJuZWQgYnkgc291cmNlQnVmZmVyLmF1ZGlvVHJhY2tz
LgotICAgIFJlZlB0cjxBdWRpb1RyYWNrTGlzdD4gYXVkaW9UcmFja3MgPSBidWZmZXIuYXVkaW9U
cmFja3MoKTsKKyAgICBhdXRvJiBhdWRpb1RyYWNrcyA9IGJ1ZmZlci5hdWRpb1RyYWNrcygpOwog
CiAgICAgLy8gNS4gSWYgdGhlIFNvdXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0IGlzIG5vdCBl
bXB0eSwgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAoYXVkaW9UcmFja3Mt
Pmxlbmd0aCgpKSB7CisgICAgaWYgKGF1ZGlvVHJhY2tzLmxlbmd0aCgpKSB7CiAgICAgICAgIC8v
IDUuMSBMZXQgSFRNTE1lZGlhRWxlbWVudCBhdWRpb1RyYWNrcyBsaXN0IGVxdWFsIHRoZSBBdWRp
b1RyYWNrTGlzdCBvYmplY3QgcmV0dXJuZWQgYnkgdGhlIGF1ZGlvVHJhY2tzCiAgICAgICAgIC8v
IGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAgICAgICAgLy8gNS4yIExldCB0
aGUgcmVtb3ZlZCBlbmFibGVkIGF1ZGlvIHRyYWNrIGZsYWcgZXF1YWwgZmFsc2UuCiAgICAgICAg
IGJvb2wgcmVtb3ZlZEVuYWJsZWRBdWRpb1RyYWNrID0gZmFsc2U7CiAKICAgICAgICAgLy8gNS4z
IEZvciBlYWNoIEF1ZGlvVHJhY2sgb2JqZWN0IGluIHRoZSBTb3VyY2VCdWZmZXIgYXVkaW9UcmFj
a3MgbGlzdCwgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgIHdoaWxlIChhdWRpb1Ry
YWNrcy0+bGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIGF1dG8mIHRyYWNrID0gKmF1ZGlvVHJhY2tz
LT5sYXN0SXRlbSgpOworICAgICAgICB3aGlsZSAoYXVkaW9UcmFja3MubGVuZ3RoKCkpIHsKKyAg
ICAgICAgICAgIGF1dG8mIHRyYWNrID0gKmF1ZGlvVHJhY2tzLmxhc3RJdGVtKCk7CiAKICAgICAg
ICAgICAgIC8vIDUuMy4xIFNldCB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGUgQXVk
aW9UcmFjayBvYmplY3QgdG8gbnVsbC4KICAgICAgICAgICAgIHRyYWNrLnNldFNvdXJjZUJ1ZmZl
cihudWxscHRyKTsKQEAgLTcyMyw3ICs3MjMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNv
dXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgICAgICAg
ICAgLy8gNS4zLjUgUmVtb3ZlIHRoZSBBdWRpb1RyYWNrIG9iamVjdCBmcm9tIHRoZSBTb3VyY2VC
dWZmZXIgYXVkaW9UcmFja3MgbGlzdC4KICAgICAgICAgICAgIC8vIDUuMy42IFF1ZXVlIGEgdGFz
ayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBuYW1lZCByZW1vdmV0cmFjaywgdGhhdCBkb2VzIG5v
dCBidWJibGUgYW5kIGlzIG5vdAogICAgICAgICAgICAgLy8gY2FuY2VsYWJsZSwgYW5kIHRoYXQg
dXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZhY2UsIGF0IHRoZSBTb3VyY2VCdWZmZXIgYXVkaW9U
cmFja3MgbGlzdC4KLSAgICAgICAgICAgIGF1ZGlvVHJhY2tzLT5yZW1vdmUodHJhY2spOworICAg
ICAgICAgICAgYXVkaW9UcmFja3MucmVtb3ZlKHRyYWNrKTsKICAgICAgICAgfQogCiAgICAgICAg
IC8vIDUuNCBJZiB0aGUgcmVtb3ZlZCBlbmFibGVkIGF1ZGlvIHRyYWNrIGZsYWcgZXF1YWxzIHRy
dWUsIHRoZW4gcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQKQEAgLTczMywxOCAr
NzMzLDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZm
ZXIoU291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgfQogCiAgICAgLy8gNi4gTGV0IFNvdXJjZUJ1
ZmZlciB2aWRlb1RyYWNrcyBsaXN0IGVxdWFsIHRoZSBWaWRlb1RyYWNrTGlzdCBvYmplY3QgcmV0
dXJuZWQgYnkgc291cmNlQnVmZmVyLnZpZGVvVHJhY2tzLgotICAgIFJlZlB0cjxWaWRlb1RyYWNr
TGlzdD4gdmlkZW9UcmFja3MgPSBidWZmZXIudmlkZW9UcmFja3MoKTsKKyAgICBhdXRvJiB2aWRl
b1RyYWNrcyA9IGJ1ZmZlci52aWRlb1RyYWNrcygpOwogCiAgICAgLy8gNy4gSWYgdGhlIFNvdXJj
ZUJ1ZmZlciB2aWRlb1RyYWNrcyBsaXN0IGlzIG5vdCBlbXB0eSwgdGhlbiBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczoKLSAgICBpZiAodmlkZW9UcmFja3MtPmxlbmd0aCgpKSB7CisgICAgaWYgKHZp
ZGVvVHJhY2tzLmxlbmd0aCgpKSB7CiAgICAgICAgIC8vIDcuMSBMZXQgSFRNTE1lZGlhRWxlbWVu
dCB2aWRlb1RyYWNrcyBsaXN0IGVxdWFsIHRoZSBWaWRlb1RyYWNrTGlzdCBvYmplY3QgcmV0dXJu
ZWQgYnkgdGhlIHZpZGVvVHJhY2tzCiAgICAgICAgIC8vIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1l
ZGlhRWxlbWVudC4KICAgICAgICAgLy8gNy4yIExldCB0aGUgcmVtb3ZlZCBzZWxlY3RlZCB2aWRl
byB0cmFjayBmbGFnIGVxdWFsIGZhbHNlLgogICAgICAgICBib29sIHJlbW92ZWRTZWxlY3RlZFZp
ZGVvVHJhY2sgPSBmYWxzZTsKIAogICAgICAgICAvLyA3LjMgRm9yIGVhY2ggVmlkZW9UcmFjayBv
YmplY3QgaW4gdGhlIFNvdXJjZUJ1ZmZlciB2aWRlb1RyYWNrcyBsaXN0LCBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczoKLSAgICAgICAgd2hpbGUgKHZpZGVvVHJhY2tzLT5sZW5ndGgoKSkgewotICAg
ICAgICAgICAgYXV0byYgdHJhY2sgPSAqdmlkZW9UcmFja3MtPmxhc3RJdGVtKCk7CisgICAgICAg
IHdoaWxlICh2aWRlb1RyYWNrcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byYgdHJhY2sg
PSAqdmlkZW9UcmFja3MubGFzdEl0ZW0oKTsKIAogICAgICAgICAgICAgLy8gNy4zLjEgU2V0IHRo
ZSBzb3VyY2VCdWZmZXIgYXR0cmlidXRlIG9uIHRoZSBWaWRlb1RyYWNrIG9iamVjdCB0byBudWxs
LgogICAgICAgICAgICAgdHJhY2suc2V0U291cmNlQnVmZmVyKG51bGxwdHIpOwpAQCAtNzYzLDcg
Kzc2Myw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZm
ZXIoU291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgICAgICAgICAvLyA3LjMuNSBSZW1vdmUgdGhl
IFZpZGVvVHJhY2sgb2JqZWN0IGZyb20gdGhlIFNvdXJjZUJ1ZmZlciB2aWRlb1RyYWNrcyBsaXN0
LgogICAgICAgICAgICAgLy8gNy4zLjYgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2
ZW50IG5hbWVkIHJlbW92ZXRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMgbm90CiAg
ICAgICAgICAgICAvLyBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGlu
dGVyZmFjZSwgYXQgdGhlIFNvdXJjZUJ1ZmZlciB2aWRlb1RyYWNrcyBsaXN0LgotICAgICAgICAg
ICAgdmlkZW9UcmFja3MtPnJlbW92ZSh0cmFjayk7CisgICAgICAgICAgICB2aWRlb1RyYWNrcy5y
ZW1vdmUodHJhY2spOwogICAgICAgICB9CiAKICAgICAgICAgLy8gNy40IElmIHRoZSByZW1vdmVk
IHNlbGVjdGVkIHZpZGVvIHRyYWNrIGZsYWcgZXF1YWxzIHRydWUsIHRoZW4gcXVldWUgYSB0YXNr
IHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQKQEAgLTc3MywxOCArNzczLDE4IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyJiBidWZm
ZXIpCiAgICAgfQogCiAgICAgLy8gOC4gTGV0IFNvdXJjZUJ1ZmZlciB0ZXh0VHJhY2tzIGxpc3Qg
ZXF1YWwgdGhlIFRleHRUcmFja0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5IHNvdXJjZUJ1ZmZlci50
ZXh0VHJhY2tzLgotICAgIFJlZlB0cjxUZXh0VHJhY2tMaXN0PiB0ZXh0VHJhY2tzID0gYnVmZmVy
LnRleHRUcmFja3MoKTsKKyAgICBhdXRvJiB0ZXh0VHJhY2tzID0gYnVmZmVyLnRleHRUcmFja3Mo
KTsKIAogICAgIC8vIDkuIElmIHRoZSBTb3VyY2VCdWZmZXIgdGV4dFRyYWNrcyBsaXN0IGlzIG5v
dCBlbXB0eSwgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAodGV4dFRyYWNr
cy0+bGVuZ3RoKCkpIHsKKyAgICBpZiAodGV4dFRyYWNrcy5sZW5ndGgoKSkgewogICAgICAgICAv
LyA5LjEgTGV0IEhUTUxNZWRpYUVsZW1lbnQgdGV4dFRyYWNrcyBsaXN0IGVxdWFsIHRoZSBUZXh0
VHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSB0aGUgdGV4dFRyYWNrcwogICAgICAgICAvLyBh
dHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgICAgIC8vIDkuMiBMZXQgdGhl
IHJlbW92ZWQgZW5hYmxlZCB0ZXh0IHRyYWNrIGZsYWcgZXF1YWwgZmFsc2UuCiAgICAgICAgIGJv
b2wgcmVtb3ZlZEVuYWJsZWRUZXh0VHJhY2sgPSBmYWxzZTsKIAogICAgICAgICAvLyA5LjMgRm9y
IGVhY2ggVGV4dFRyYWNrIG9iamVjdCBpbiB0aGUgU291cmNlQnVmZmVyIHRleHRUcmFja3MgbGlz
dCwgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgIHdoaWxlICh0ZXh0VHJhY2tzLT5s
ZW5ndGgoKSkgewotICAgICAgICAgICAgYXV0byYgdHJhY2sgPSAqdGV4dFRyYWNrcy0+bGFzdEl0
ZW0oKTsKKyAgICAgICAgd2hpbGUgKHRleHRUcmFja3MubGVuZ3RoKCkpIHsKKyAgICAgICAgICAg
IGF1dG8mIHRyYWNrID0gKnRleHRUcmFja3MubGFzdEl0ZW0oKTsKIAogICAgICAgICAgICAgLy8g
OS4zLjEgU2V0IHRoZSBzb3VyY2VCdWZmZXIgYXR0cmlidXRlIG9uIHRoZSBUZXh0VHJhY2sgb2Jq
ZWN0IHRvIG51bGwuCiAgICAgICAgICAgICB0cmFjay5zZXRTb3VyY2VCdWZmZXIobnVsbHB0cik7
CkBAIC04MDMsNyArODAzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6OnJlbW92
ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICAgICAgICAgIC8vIDkuMy41
IFJlbW92ZSB0aGUgVGV4dFRyYWNrIG9iamVjdCBmcm9tIHRoZSBTb3VyY2VCdWZmZXIgdGV4dFRy
YWNrcyBsaXN0LgogICAgICAgICAgICAgLy8gOS4zLjYgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0
cnVzdGVkIGV2ZW50IG5hbWVkIHJlbW92ZXRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQg
aXMgbm90CiAgICAgICAgICAgICAvLyBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFj
a0V2ZW50IGludGVyZmFjZSwgYXQgdGhlIFNvdXJjZUJ1ZmZlciB0ZXh0VHJhY2tzIGxpc3QuCi0g
ICAgICAgICAgICB0ZXh0VHJhY2tzLT5yZW1vdmUodHJhY2spOworICAgICAgICAgICAgdGV4dFRy
YWNrcy5yZW1vdmUodHJhY2spOwogICAgICAgICB9CiAKICAgICAgICAgLy8gOS40IElmIHRoZSBy
ZW1vdmVkIGVuYWJsZWQgdGV4dCB0cmFjayBmbGFnIGVxdWFscyB0cnVlLCB0aGVuIHF1ZXVlIGEg
dGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggN2ZlZTdlNjBiMjJlNDQ4MzQx
Y2FhMDlhZDk4OTk2ODA5YTVlNDI2Yy4uMmUxNGJlMmM5NmMzNWZkNjEzOTdlMGE3YTY1NTk1Njlk
OTM5YjAzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyLmNwcApAQCAtNDIxLDcgKzQyMSw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpz
ZWVrVG9UaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKICAgICB9CiB9CiAKLU1lZGlhVGltZSBT
b3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUo
U291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgdGFyZ2V0VGltZSwgY29uc3Qg
TWVkaWFUaW1lJiBuZWdhdGl2ZVRocmVzaG9sZCwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRo
cmVzaG9sZCkKK01lZGlhVGltZSBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0
U2Vla1RpbWVGb3JNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1lJiB0YXJnZXRUaW1lLCBjb25zdCBN
ZWRpYVRpbWUmIG5lZ2F0aXZlVGhyZXNob2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhy
ZXNob2xkKQogewogICAgIE1lZGlhVGltZSBzZWVrVGltZSA9IHRhcmdldFRpbWU7CiAgICAgTWVk
aWFUaW1lIGxvd2VyQm91bmRUaW1lID0gdGFyZ2V0VGltZSAtIG5lZ2F0aXZlVGhyZXNob2xkOwpA
QCAtNTY2LDcgKzU2Niw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZp
cmVkKCkKIAogICAgIC8vIDEuIExvb3AgVG9wOiBJZiB0aGUgaW5wdXQgYnVmZmVyIGlzIGVtcHR5
LCB0aGVuIGp1bXAgdG8gdGhlIG5lZWQgbW9yZSBkYXRhIHN0ZXAgYmVsb3cuCiAgICAgaWYgKCFt
X3BlbmRpbmdBcHBlbmREYXRhLnNpemUoKSkgewotICAgICAgICBzb3VyY2VCdWZmZXJQcml2YXRl
QXBwZW5kQ29tcGxldGUoJm1fcHJpdmF0ZS5nZXQoKSwgQXBwZW5kU3VjY2VlZGVkKTsKKyAgICAg
ICAgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKEFwcGVuZFN1Y2NlZWRlZCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTU3NCw3ICs1NzQsNyBAQCB2b2lkIFNvdXJjZUJ1
ZmZlcjo6YXBwZW5kQnVmZmVyVGltZXJGaXJlZCgpCiAgICAgbV9wZW5kaW5nQXBwZW5kRGF0YS5j
bGVhcigpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVu
ZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBcHBlbmRSZXN1bHQgcmVzdWx0KQordm9p
ZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShBcHBlbmRS
ZXN1bHQgcmVzdWx0KQogewogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtNjM1LDcgKzYzNSw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRl
QXBwZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIEFwcGVuCiAgICAgTE9HKE1lZGlh
LCAiU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoJXApIC0g
YnVmZmVyZWQgPSAlcyIsIHRoaXMsIHRvU3RyaW5nKG1fYnVmZmVyZWQtPnJhbmdlcygpKS51dGY4
KCkuZGF0YSgpKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoU291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvcikK
K3ZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmlu
Z0Vycm9yKGludCBlcnJvcikKIHsKICNpZiBMT0dfRElTQUJMRUQKICAgICBVTlVTRURfUEFSQU0o
ZXJyb3IpOwpAQCAtOTQ1LDM1ICs5NDUsMzIgQEAgc2l6ZV90IFNvdXJjZUJ1ZmZlcjo6bWF4aW11
bUJ1ZmZlclNpemUoKSBjb25zdAogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICBIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50ID0gbV9zb3VyY2UtPm1lZGlhRWxl
bWVudCgpOworICAgIGF1dG8qIGVsZW1lbnQgPSBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCk7CiAg
ICAgaWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHJldHVybiBlbGVtZW50
LT5tYXhpbXVtU291cmNlQnVmZmVyU2l6ZSgqdGhpcyk7CiB9CiAKLVZpZGVvVHJhY2tMaXN0KiBT
b3VyY2VCdWZmZXI6OnZpZGVvVHJhY2tzKCkKK1ZpZGVvVHJhY2tMaXN0JiBTb3VyY2VCdWZmZXI6
OnZpZGVvVHJhY2tzKCkKIHsKICAgICBpZiAoIW1fdmlkZW9UcmFja3MpCi0gICAgICAgIG1fdmlk
ZW9UcmFja3MgPSBWaWRlb1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQo
KSwgQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0gICAgcmV0
dXJuIG1fdmlkZW9UcmFja3MuZ2V0KCk7CisgICAgICAgIG1fdmlkZW9UcmFja3MgPSBWaWRlb1Ry
YWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKKyAgICByZXR1cm4gKm1fdmlkZW9UcmFja3M7CiB9CiAKLUF1ZGlvVHJhY2tM
aXN0KiBTb3VyY2VCdWZmZXI6OmF1ZGlvVHJhY2tzKCkKK0F1ZGlvVHJhY2tMaXN0JiBTb3VyY2VC
dWZmZXI6OmF1ZGlvVHJhY2tzKCkKIHsKICAgICBpZiAoIW1fYXVkaW9UcmFja3MpCi0gICAgICAg
IG1fYXVkaW9UcmFja3MgPSBBdWRpb1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVs
ZW1lbnQoKSwgQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0g
ICAgcmV0dXJuIG1fYXVkaW9UcmFja3MuZ2V0KCk7CisgICAgICAgIG1fYXVkaW9UcmFja3MgPSBB
dWRpb1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4gKm1fYXVkaW9UcmFja3M7CiB9CiAKLVRleHRU
cmFja0xpc3QqIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrcygpCitUZXh0VHJhY2tMaXN0JiBTb3Vy
Y2VCdWZmZXI6OnRleHRUcmFja3MoKQogewogICAgIGlmICghbV90ZXh0VHJhY2tzKQotICAgICAg
ICBtX3RleHRUcmFja3MgPSBUZXh0VHJhY2tMaXN0OjpjcmVhdGUobV9zb3VyY2UtPm1lZGlhRWxl
bWVudCgpLCBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0KLSAg
ICByZXR1cm4gbV90ZXh0VHJhY2tzLmdldCgpOworICAgICAgICBtX3RleHRUcmFja3MgPSBUZXh0
VHJhY2tMaXN0OjpjcmVhdGUobV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLCBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpOworICAgIHJldHVybiAqbV90ZXh0VHJhY2tzOwogfQogCiB2b2lkIFNvdXJj
ZUJ1ZmZlcjo6c2V0QWN0aXZlKGJvb2wgYWN0aXZlKQpAQCAtOTg3LDcgKzk4NCw3IEBAIHZvaWQg
U291cmNlQnVmZmVyOjpzZXRBY3RpdmUoYm9vbCBhY3RpdmUpCiAgICAgICAgIG1fc291cmNlLT5z
b3VyY2VCdWZmZXJEaWRDaGFuZ2VBY3RpdmVTdGF0ZSgqdGhpcywgYWN0aXZlKTsKIH0KIAotdm9p
ZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRp
b25TZWdtZW50KFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBJbml0aWFsaXphdGlvblNlZ21l
bnQmIHNlZ21lbnQpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJl
Y2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgSW5pdGlhbGl6YXRpb25TZWdtZW50JiBz
ZWdtZW50KQogewogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTAy
NCw0MCArMTAyMSw0MCBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURp
ZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgIC8vIDMuMiBBZGQgdGhlIGFwcHJvcHJpYXRlIHRyYWNr
IGRlc2NyaXB0aW9ucyBmcm9tIHRoaXMgaW5pdGlhbGl6YXRpb24gc2VnbWVudCB0byBlYWNoIG9m
IHRoZSB0cmFjayBidWZmZXJzLgotICAgICAgICBBU1NFUlQoc2VnbWVudC5hdWRpb1RyYWNrcy5z
aXplKCkgPT0gYXVkaW9UcmFja3MoKS0+bGVuZ3RoKCkpOworICAgICAgICBBU1NFUlQoc2VnbWVu
dC5hdWRpb1RyYWNrcy5zaXplKCkgPT0gYXVkaW9UcmFja3MoKS5sZW5ndGgoKSk7CiAgICAgICAg
IGZvciAoYXV0byYgYXVkaW9UcmFja0luZm8gOiBzZWdtZW50LmF1ZGlvVHJhY2tzKSB7Ci0gICAg
ICAgICAgICBpZiAoYXVkaW9UcmFja3MoKS0+bGVuZ3RoKCkgPT0gMSkgewotICAgICAgICAgICAg
ICAgIGF1ZGlvVHJhY2tzKCktPml0ZW0oMCktPnNldFByaXZhdGUoYXVkaW9UcmFja0luZm8udHJh
Y2spOworICAgICAgICAgICAgaWYgKGF1ZGlvVHJhY2tzKCkubGVuZ3RoKCkgPT0gMSkgeworICAg
ICAgICAgICAgICAgIGF1ZGlvVHJhY2tzKCkuaXRlbSgwKS0+c2V0UHJpdmF0ZSgqYXVkaW9UcmFj
a0luZm8udHJhY2spOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICBhdXRvIGF1ZGlvVHJhY2sgPSBhdWRpb1RyYWNrcygpLT5nZXRUcmFja0J5SWQo
YXVkaW9UcmFja0luZm8udHJhY2stPmlkKCkpOworICAgICAgICAgICAgYXV0byBhdWRpb1RyYWNr
ID0gYXVkaW9UcmFja3MoKS5nZXRUcmFja0J5SWQoYXVkaW9UcmFja0luZm8udHJhY2stPmlkKCkp
OwogICAgICAgICAgICAgQVNTRVJUKGF1ZGlvVHJhY2spOwotICAgICAgICAgICAgYXVkaW9UcmFj
ay0+c2V0UHJpdmF0ZShhdWRpb1RyYWNrSW5mby50cmFjayk7CisgICAgICAgICAgICBhdWRpb1Ry
YWNrLT5zZXRQcml2YXRlKCphdWRpb1RyYWNrSW5mby50cmFjayk7CiAgICAgICAgIH0KIAotICAg
ICAgICBBU1NFUlQoc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkgPT0gdmlkZW9UcmFja3MoKS0+
bGVuZ3RoKCkpOworICAgICAgICBBU1NFUlQoc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkgPT0g
dmlkZW9UcmFja3MoKS5sZW5ndGgoKSk7CiAgICAgICAgIGZvciAoYXV0byYgdmlkZW9UcmFja0lu
Zm8gOiBzZWdtZW50LnZpZGVvVHJhY2tzKSB7Ci0gICAgICAgICAgICBpZiAodmlkZW9UcmFja3Mo
KS0+bGVuZ3RoKCkgPT0gMSkgewotICAgICAgICAgICAgICAgIHZpZGVvVHJhY2tzKCktPml0ZW0o
MCktPnNldFByaXZhdGUodmlkZW9UcmFja0luZm8udHJhY2spOworICAgICAgICAgICAgaWYgKHZp
ZGVvVHJhY2tzKCkubGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgICAgIHZpZGVvVHJhY2tz
KCkuaXRlbSgwKS0+c2V0UHJpdmF0ZSgqdmlkZW9UcmFja0luZm8udHJhY2spOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBhdXRvIHZpZGVvVHJh
Y2sgPSB2aWRlb1RyYWNrcygpLT5nZXRUcmFja0J5SWQodmlkZW9UcmFja0luZm8udHJhY2stPmlk
KCkpOworICAgICAgICAgICAgYXV0byB2aWRlb1RyYWNrID0gdmlkZW9UcmFja3MoKS5nZXRUcmFj
a0J5SWQodmlkZW9UcmFja0luZm8udHJhY2stPmlkKCkpOwogICAgICAgICAgICAgQVNTRVJUKHZp
ZGVvVHJhY2spOwotICAgICAgICAgICAgdmlkZW9UcmFjay0+c2V0UHJpdmF0ZSh2aWRlb1RyYWNr
SW5mby50cmFjayk7CisgICAgICAgICAgICB2aWRlb1RyYWNrLT5zZXRQcml2YXRlKCp2aWRlb1Ry
YWNrSW5mby50cmFjayk7CiAgICAgICAgIH0KIAotICAgICAgICBBU1NFUlQoc2VnbWVudC50ZXh0
VHJhY2tzLnNpemUoKSA9PSB0ZXh0VHJhY2tzKCktPmxlbmd0aCgpKTsKKyAgICAgICAgQVNTRVJU
KHNlZ21lbnQudGV4dFRyYWNrcy5zaXplKCkgPT0gdGV4dFRyYWNrcygpLmxlbmd0aCgpKTsKICAg
ICAgICAgZm9yIChhdXRvJiB0ZXh0VHJhY2tJbmZvIDogc2VnbWVudC50ZXh0VHJhY2tzKSB7Ci0g
ICAgICAgICAgICBpZiAodGV4dFRyYWNrcygpLT5sZW5ndGgoKSA9PSAxKSB7Ci0gICAgICAgICAg
ICAgICAgZG93bmNhc3Q8SW5iYW5kVGV4dFRyYWNrPigqdGV4dFRyYWNrcygpLT5pdGVtKDApKS5z
ZXRQcml2YXRlKHRleHRUcmFja0luZm8udHJhY2spOworICAgICAgICAgICAgaWYgKHRleHRUcmFj
a3MoKS5sZW5ndGgoKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgZG93bmNhc3Q8SW5iYW5kVGV4
dFRyYWNrPigqdGV4dFRyYWNrcygpLml0ZW0oMCkpLnNldFByaXZhdGUoKnRleHRUcmFja0luZm8u
dHJhY2spOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICBhdXRvIHRleHRUcmFjayA9IHRleHRUcmFja3MoKS0+Z2V0VHJhY2tCeUlkKHRleHRUcmFj
a0luZm8udHJhY2stPmlkKCkpOworICAgICAgICAgICAgYXV0byB0ZXh0VHJhY2sgPSB0ZXh0VHJh
Y2tzKCkuZ2V0VHJhY2tCeUlkKHRleHRUcmFja0luZm8udHJhY2stPmlkKCkpOwogICAgICAgICAg
ICAgQVNTRVJUKHRleHRUcmFjayk7Ci0gICAgICAgICAgICBkb3duY2FzdDxJbmJhbmRUZXh0VHJh
Y2s+KCp0ZXh0VHJhY2spLnNldFByaXZhdGUodGV4dFRyYWNrSW5mby50cmFjayk7CisgICAgICAg
ICAgICBkb3duY2FzdDxJbmJhbmRUZXh0VHJhY2s+KCp0ZXh0VHJhY2spLnNldFByaXZhdGUoKnRl
eHRUcmFja0luZm8udHJhY2spOwogICAgICAgICB9CiAKICAgICAgICAgLy8gMy4zIFNldCB0aGUg
bmVlZCByYW5kb20gYWNjZXNzIHBvaW50IGZsYWcgb24gYWxsIHRyYWNrIGJ1ZmZlcnMgdG8gdHJ1
ZS4KQEAgLTEwNzYsMTYgKzEwNzMsMTQgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKIAogICAg
ICAgICAvLyA1LjIgRm9yIGVhY2ggYXVkaW8gdHJhY2sgaW4gdGhlIGluaXRpYWxpemF0aW9uIHNl
Z21lbnQsIHJ1biBmb2xsb3dpbmcgc3RlcHM6CiAgICAgICAgIGZvciAoYXV0byYgYXVkaW9UcmFj
a0luZm8gOiBzZWdtZW50LmF1ZGlvVHJhY2tzKSB7Ci0gICAgICAgICAgICBBdWRpb1RyYWNrUHJp
dmF0ZSogYXVkaW9UcmFja1ByaXZhdGUgPSBhdWRpb1RyYWNrSW5mby50cmFjay5nZXQoKTsKLQog
ICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBzdGVwcyA1LjIuMS01LjIuOC4xIGFzIHBl
ciBFZGl0b3IncyBEcmFmdCAwOSBKYW51YXJ5IDIwMTUsIGFuZCByZW9yZGVyIHRoaXMKICAgICAg
ICAgICAgIC8vIDUuMi4xIExldCBuZXcgYXVkaW8gdHJhY2sgYmUgYSBuZXcgQXVkaW9UcmFjayBv
YmplY3QuCiAgICAgICAgICAgICAvLyA1LjIuMiBHZW5lcmF0ZSBhIHVuaXF1ZSBJRCBhbmQgYXNz
aWduIGl0IHRvIHRoZSBpZCBwcm9wZXJ0eSBvbiBuZXcgdmlkZW8gdHJhY2suCi0gICAgICAgICAg
ICBhdXRvIG5ld0F1ZGlvVHJhY2sgPSBBdWRpb1RyYWNrOjpjcmVhdGUodGhpcywgYXVkaW9UcmFj
a1ByaXZhdGUpOworICAgICAgICAgICAgYXV0byBuZXdBdWRpb1RyYWNrID0gQXVkaW9UcmFjazo6
Y3JlYXRlKCp0aGlzLCAqYXVkaW9UcmFja0luZm8udHJhY2spOwogICAgICAgICAgICAgbmV3QXVk
aW9UcmFjay0+c2V0U291cmNlQnVmZmVyKHRoaXMpOwogCiAgICAgICAgICAgICAvLyA1LjIuMyBJ
ZiBhdWRpb1RyYWNrcy5sZW5ndGggZXF1YWxzIDAsIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3Rl
cHM6Ci0gICAgICAgICAgICBpZiAoIWF1ZGlvVHJhY2tzKCktPmxlbmd0aCgpKSB7CisgICAgICAg
ICAgICBpZiAoIWF1ZGlvVHJhY2tzKCkubGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICAvLyA1
LjIuMy4xIFNldCB0aGUgZW5hYmxlZCBwcm9wZXJ0eSBvbiBuZXcgYXVkaW8gdHJhY2sgdG8gdHJ1
ZS4KICAgICAgICAgICAgICAgICBuZXdBdWRpb1RyYWNrLT5zZXRFbmFibGVkKHRydWUpOwogCkBA
IC0xMDk3LDcgKzEwOTIsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogICAgICAgICAgICAg
Ly8gNS4yLjUgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRy
YWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMKICAgICAgICAgICAgIC8vIG5vdCBjYW5j
ZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGludGVyZmFjZSwgYXQgdGhlIEF1
ZGlvVHJhY2tMaXN0IG9iamVjdAogICAgICAgICAgICAgLy8gcmVmZXJlbmNlZCBieSB0aGUgYXVk
aW9UcmFja3MgYXR0cmlidXRlIG9uIHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4KLSAgICAgICAg
ICAgIGF1ZGlvVHJhY2tzKCktPmFwcGVuZChuZXdBdWRpb1RyYWNrLmNvcHlSZWYoKSk7CisgICAg
ICAgICAgICBhdWRpb1RyYWNrcygpLmFwcGVuZChuZXdBdWRpb1RyYWNrLmNvcHlSZWYoKSk7CiAK
ICAgICAgICAgICAgIC8vIDUuMi42IEFkZCBuZXcgYXVkaW8gdHJhY2sgdG8gdGhlIGF1ZGlvVHJh
Y2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAgICAgICAgICAgIC8vIDUu
Mi43IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0cmFjaywg
dGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCkBAIC0xMTA3LDcgKzExMDIsNyBAQCB2b2lkIFNv
dXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNl
Z21lbnQoU291cmNlQnVmZgogCiAgICAgICAgICAgICAvLyA1LjIuOCBDcmVhdGUgYSBuZXcgdHJh
Y2sgYnVmZmVyIHRvIHN0b3JlIGNvZGVkIGZyYW1lcyBmb3IgdGhpcyB0cmFjay4KICAgICAgICAg
ICAgIEFTU0VSVCghbV90cmFja0J1ZmZlck1hcC5jb250YWlucyhuZXdBdWRpb1RyYWNrLT5pZCgp
KSk7Ci0gICAgICAgICAgICBUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVmZmVy
TWFwLmFkZChuZXdBdWRpb1RyYWNrLT5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFs
dWU7CisgICAgICAgICAgICBhdXRvJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRk
KG5ld0F1ZGlvVHJhY2stPmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKIAog
ICAgICAgICAgICAgLy8gNS4yLjkgQWRkIHRoZSB0cmFjayBkZXNjcmlwdGlvbiBmb3IgdGhpcyB0
cmFjayB0byB0aGUgdHJhY2sgYnVmZmVyLgogICAgICAgICAgICAgdHJhY2tCdWZmZXIuZGVzY3Jp
cHRpb24gPSBhdWRpb1RyYWNrSW5mby5kZXNjcmlwdGlvbjsKQEAgLTExMTcsMTYgKzExMTIsMTQg
QEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlh
bGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKIAogICAgICAgICAvLyA1LjMgRm9yIGVhY2ggdmlk
ZW8gdHJhY2sgaW4gdGhlIGluaXRpYWxpemF0aW9uIHNlZ21lbnQsIHJ1biBmb2xsb3dpbmcgc3Rl
cHM6CiAgICAgICAgIGZvciAoYXV0byYgdmlkZW9UcmFja0luZm8gOiBzZWdtZW50LnZpZGVvVHJh
Y2tzKSB7Ci0gICAgICAgICAgICBWaWRlb1RyYWNrUHJpdmF0ZSogdmlkZW9UcmFja1ByaXZhdGUg
PSB2aWRlb1RyYWNrSW5mby50cmFjay5nZXQoKTsKLQogICAgICAgICAgICAgLy8gRklYTUU6IElt
cGxlbWVudCBzdGVwcyA1LjMuMS01LjMuOC4xIGFzIHBlciBFZGl0b3IncyBEcmFmdCAwOSBKYW51
YXJ5IDIwMTUsIGFuZCByZW9yZGVyIHRoaXMKICAgICAgICAgICAgIC8vIDUuMy4xIExldCBuZXcg
dmlkZW8gdHJhY2sgYmUgYSBuZXcgVmlkZW9UcmFjayBvYmplY3QuCiAgICAgICAgICAgICAvLyA1
LjMuMiBHZW5lcmF0ZSBhIHVuaXF1ZSBJRCBhbmQgYXNzaWduIGl0IHRvIHRoZSBpZCBwcm9wZXJ0
eSBvbiBuZXcgdmlkZW8gdHJhY2suCi0gICAgICAgICAgICBhdXRvIG5ld1ZpZGVvVHJhY2sgPSBW
aWRlb1RyYWNrOjpjcmVhdGUodGhpcywgdmlkZW9UcmFja1ByaXZhdGUpOworICAgICAgICAgICAg
YXV0byBuZXdWaWRlb1RyYWNrID0gVmlkZW9UcmFjazo6Y3JlYXRlKCp0aGlzLCAqdmlkZW9UcmFj
a0luZm8udHJhY2spOwogICAgICAgICAgICAgbmV3VmlkZW9UcmFjay0+c2V0U291cmNlQnVmZmVy
KHRoaXMpOwogCiAgICAgICAgICAgICAvLyA1LjMuMyBJZiB2aWRlb1RyYWNrcy5sZW5ndGggZXF1
YWxzIDAsIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgICAgICBpZiAoIXZp
ZGVvVHJhY2tzKCktPmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpZiAoIXZpZGVvVHJhY2tzKCku
bGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICAvLyA1LjMuMy4xIFNldCB0aGUgc2VsZWN0ZWQg
cHJvcGVydHkgb24gbmV3IHZpZGVvIHRyYWNrIHRvIHRydWUuCiAgICAgICAgICAgICAgICAgbmV3
VmlkZW9UcmFjay0+c2V0U2VsZWN0ZWQodHJ1ZSk7CiAKQEAgLTExMzgsNyArMTEzMSw3IEBAIHZv
aWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0
aW9uU2VnbWVudChTb3VyY2VCdWZmCiAgICAgICAgICAgICAvLyA1LjMuNSBRdWV1ZSBhIHRhc2sg
dG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgYWRkdHJhY2ssIHRoYXQgZG9lcyBub3QgYnVi
YmxlIGFuZCBpcwogICAgICAgICAgICAgLy8gbm90IGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMg
dGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0CiAg
ICAgICAgICAgICAvLyByZWZlcmVuY2VkIGJ5IHRoZSB2aWRlb1RyYWNrcyBhdHRyaWJ1dGUgb24g
dGhpcyBTb3VyY2VCdWZmZXIgb2JqZWN0LgotICAgICAgICAgICAgdmlkZW9UcmFja3MoKS0+YXBw
ZW5kKG5ld1ZpZGVvVHJhY2suY29weVJlZigpKTsKKyAgICAgICAgICAgIHZpZGVvVHJhY2tzKCku
YXBwZW5kKG5ld1ZpZGVvVHJhY2suY29weVJlZigpKTsKIAogICAgICAgICAgICAgLy8gNS4zLjYg
QWRkIG5ldyB2aWRlbyB0cmFjayB0byB0aGUgdmlkZW9UcmFja3MgYXR0cmlidXRlIG9uIHRoZSBI
VE1MTWVkaWFFbGVtZW50LgogICAgICAgICAgICAgLy8gNS4zLjcgUXVldWUgYSB0YXNrIHRvIGZp
cmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBh
bmQgaXMKQEAgLTExNDgsNyArMTE0MSw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZm
ZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmCiAKICAg
ICAgICAgICAgIC8vIDUuMy44IENyZWF0ZSBhIG5ldyB0cmFjayBidWZmZXIgdG8gc3RvcmUgY29k
ZWQgZnJhbWVzIGZvciB0aGlzIHRyYWNrLgogICAgICAgICAgICAgQVNTRVJUKCFtX3RyYWNrQnVm
ZmVyTWFwLmNvbnRhaW5zKG5ld1ZpZGVvVHJhY2stPmlkKCkpKTsKLSAgICAgICAgICAgIFRyYWNr
QnVmZmVyJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKG5ld1ZpZGVvVHJhY2st
PmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgICAgIGF1dG8m
IHRyYWNrQnVmZmVyID0gbV90cmFja0J1ZmZlck1hcC5hZGQobmV3VmlkZW9UcmFjay0+aWQoKSwg
VHJhY2tCdWZmZXIoKSkuaXRlcmF0b3ItPnZhbHVlOwogCiAgICAgICAgICAgICAvLyA1LjMuOSBB
ZGQgdGhlIHRyYWNrIGRlc2NyaXB0aW9uIGZvciB0aGlzIHRyYWNrIHRvIHRoZSB0cmFjayBidWZm
ZXIuCiAgICAgICAgICAgICB0cmFja0J1ZmZlci5kZXNjcmlwdGlvbiA9IHZpZGVvVHJhY2tJbmZv
LmRlc2NyaXB0aW9uOwpAQCAtMTE1OCwzMyArMTE1MSwzMyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6
c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNl
QnVmZgogCiAgICAgICAgIC8vIDUuNCBGb3IgZWFjaCB0ZXh0IHRyYWNrIGluIHRoZSBpbml0aWFs
aXphdGlvbiBzZWdtZW50LCBydW4gZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICBmb3IgKGF1dG8m
IHRleHRUcmFja0luZm8gOiBzZWdtZW50LnRleHRUcmFja3MpIHsKLSAgICAgICAgICAgIEluYmFu
ZFRleHRUcmFja1ByaXZhdGUqIHRleHRUcmFja1ByaXZhdGUgPSB0ZXh0VHJhY2tJbmZvLnRyYWNr
LmdldCgpOworICAgICAgICAgICAgYXV0byYgdGV4dFRyYWNrUHJpdmF0ZSA9ICp0ZXh0VHJhY2tJ
bmZvLnRyYWNrOwogCiAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHN0ZXBzIDUuNC4x
LTUuNC44LjEgYXMgcGVyIEVkaXRvcidzIERyYWZ0IDA5IEphbnVhcnkgMjAxNSwgYW5kIHJlb3Jk
ZXIgdGhpcwogICAgICAgICAgICAgLy8gNS40LjEgTGV0IG5ldyB0ZXh0IHRyYWNrIGJlIGEgbmV3
IFRleHRUcmFjayBvYmplY3Qgd2l0aCBpdHMgcHJvcGVydGllcyBwb3B1bGF0ZWQgd2l0aCB0aGUK
ICAgICAgICAgICAgIC8vIGFwcHJvcHJpYXRlIGluZm9ybWF0aW9uIGZyb20gdGhlIGluaXRpYWxp
emF0aW9uIHNlZ21lbnQuCi0gICAgICAgICAgICBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrPiBuZXdU
ZXh0VHJhY2sgPSBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCksIHRoaXMsIHRleHRUcmFja1ByaXZhdGUpOworICAgICAgICAgICAgYXV0byBuZXdUZXh0VHJh
Y2sgPSBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAq
dGhpcywgdGV4dFRyYWNrUHJpdmF0ZSk7CiAKICAgICAgICAgICAgIC8vIDUuNC4yIElmIHRoZSBt
b2RlIHByb3BlcnR5IG9uIG5ldyB0ZXh0IHRyYWNrIGVxdWFscyAic2hvd2luZyIgb3IgImhpZGRl
biIsIHRoZW4gc2V0IGFjdGl2ZQogICAgICAgICAgICAgLy8gdHJhY2sgZmxhZyB0byB0cnVlLgot
ICAgICAgICAgICAgaWYgKHRleHRUcmFja1ByaXZhdGUtPm1vZGUoKSAhPSBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlOjpEaXNhYmxlZCkKKyAgICAgICAgICAgIGlmICh0ZXh0VHJhY2tQcml2YXRlLm1v
ZGUoKSAhPSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpEaXNhYmxlZCkKICAgICAgICAgICAgICAg
ICBhY3RpdmVUcmFja0ZsYWcgPSB0cnVlOwogCiAgICAgICAgICAgICAvLyA1LjQuMyBBZGQgbmV3
IHRleHQgdHJhY2sgdG8gdGhlIHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoaXMgU291cmNlQnVm
ZmVyIG9iamVjdC4KICAgICAgICAgICAgIC8vIDUuNC40IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEg
dHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlz
CiAgICAgICAgICAgICAvLyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tF
dmVudCBpbnRlcmZhY2UsIGF0IHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoaXMKICAgICAgICAg
ICAgIC8vIFNvdXJjZUJ1ZmZlciBvYmplY3QuCi0gICAgICAgICAgICB0ZXh0VHJhY2tzKCktPmFw
cGVuZCgqbmV3VGV4dFRyYWNrKTsKKyAgICAgICAgICAgIHRleHRUcmFja3MoKS5hcHBlbmQobmV3
VGV4dFRyYWNrLmdldCgpKTsKIAogICAgICAgICAgICAgLy8gNS40LjUgQWRkIG5ldyB0ZXh0IHRy
YWNrIHRvIHRoZSB0ZXh0VHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4K
ICAgICAgICAgICAgIC8vIDUuNC42IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVu
dCBuYW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCiAgICAgICAgICAg
ICAvLyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZh
Y2UsIGF0IHRoZSBUZXh0VHJhY2tMaXN0IG9iamVjdAogICAgICAgICAgICAgLy8gcmVmZXJlbmNl
ZCBieSB0aGUgdGV4dFRyYWNrcyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCi0g
ICAgICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja3MoKS5hcHBlbmQo
bmV3VGV4dFRyYWNrLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgbV9zb3VyY2UtPm1l
ZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tzKCkuYXBwZW5kKFdURk1vdmUobmV3VGV4dFRyYWNrKSk7
CiAKICAgICAgICAgICAgIC8vIDUuNC43IENyZWF0ZSBhIG5ldyB0cmFjayBidWZmZXIgdG8gc3Rv
cmUgY29kZWQgZnJhbWVzIGZvciB0aGlzIHRyYWNrLgotICAgICAgICAgICAgQVNTRVJUKCFtX3Ry
YWNrQnVmZmVyTWFwLmNvbnRhaW5zKHRleHRUcmFja1ByaXZhdGUtPmlkKCkpKTsKLSAgICAgICAg
ICAgIFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKHRleHRU
cmFja1ByaXZhdGUtPmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAg
ICAgICAgIEFTU0VSVCghbV90cmFja0J1ZmZlck1hcC5jb250YWlucyh0ZXh0VHJhY2tQcml2YXRl
LmlkKCkpKTsKKyAgICAgICAgICAgIGF1dG8mIHRyYWNrQnVmZmVyID0gbV90cmFja0J1ZmZlck1h
cC5hZGQodGV4dFRyYWNrUHJpdmF0ZS5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFs
dWU7CiAKICAgICAgICAgICAgIC8vIDUuNC44IEFkZCB0aGUgdHJhY2sgZGVzY3JpcHRpb24gZm9y
IHRoaXMgdHJhY2sgdG8gdGhlIHRyYWNrIGJ1ZmZlci4KICAgICAgICAgICAgIHRyYWNrQnVmZmVy
LmRlc2NyaXB0aW9uID0gdGV4dFRyYWNrSW5mby5kZXNjcmlwdGlvbjsKQEAgLTEyMzEsOSArMTIy
NCw5IEBAIGJvb2wgU291cmNlQnVmZmVyOjp2YWxpZGF0ZUluaXRpYWxpemF0aW9uU2VnbWVudChj
b25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmIHNlCiAKICAgICAvLyBOb3RlOiB0aG9zZSBhcmUg
Y2hlY2tzIGZyb20gc3RlcCAzLjEKICAgICAvLyAgICogVGhlIG51bWJlciBvZiBhdWRpbywgdmlk
ZW8sIGFuZCB0ZXh0IHRyYWNrcyBtYXRjaCB3aGF0IHdhcyBpbiB0aGUgZmlyc3QgaW5pdGlhbGl6
YXRpb24gc2VnbWVudC4KLSAgICBpZiAoc2VnbWVudC5hdWRpb1RyYWNrcy5zaXplKCkgIT0gYXVk
aW9UcmFja3MoKS0+bGVuZ3RoKCkKLSAgICAgICAgfHwgc2VnbWVudC52aWRlb1RyYWNrcy5zaXpl
KCkgIT0gdmlkZW9UcmFja3MoKS0+bGVuZ3RoKCkKLSAgICAgICAgfHwgc2VnbWVudC50ZXh0VHJh
Y2tzLnNpemUoKSAhPSB0ZXh0VHJhY2tzKCktPmxlbmd0aCgpKQorICAgIGlmIChzZWdtZW50LmF1
ZGlvVHJhY2tzLnNpemUoKSAhPSBhdWRpb1RyYWNrcygpLmxlbmd0aCgpCisgICAgICAgIHx8IHNl
Z21lbnQudmlkZW9UcmFja3Muc2l6ZSgpICE9IHZpZGVvVHJhY2tzKCkubGVuZ3RoKCkKKyAgICAg
ICAgfHwgc2VnbWVudC50ZXh0VHJhY2tzLnNpemUoKSAhPSB0ZXh0VHJhY2tzKCkubGVuZ3RoKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vICAgKiBUaGUgY29kZWNzIGZvciBlYWNo
IHRyYWNrLCBtYXRjaCB3aGF0IHdhcyBzcGVjaWZpZWQgaW4gdGhlIGZpcnN0IGluaXRpYWxpemF0
aW9uIHNlZ21lbnQuCkBAIC0xMzE5LDcgKzEzMTIsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6YXBw
ZW5kRXJyb3IoYm9vbCBkZWNvZGVFcnJvclBhcmFtKQogICAgICAgICBtX3NvdXJjZS0+c3RyZWFt
RW5kZWRXaXRoRXJyb3IoTWVkaWFTb3VyY2U6OkVuZE9mU3RyZWFtRXJyb3I6OkRlY29kZSk7CiB9
CiAKLXZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBs
ZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgTWVkaWFTYW1wbGUmIHNhbXBsZSkKK3ZvaWQgU291cmNl
QnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYg
c2FtcGxlKQogewogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTY2
NiwzMCArMTY1OSwzMCBAQCBib29sIFNvdXJjZUJ1ZmZlcjo6aGFzVmlkZW8oKSBjb25zdAogICAg
IHJldHVybiBtX3ZpZGVvVHJhY2tzICYmIG1fdmlkZW9UcmFja3MtPmxlbmd0aCgpOwogfQogCi1i
b29sIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKGNvbnN0IFNvdXJj
ZUJ1ZmZlclByaXZhdGUqKSBjb25zdAorYm9vbCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclBy
aXZhdGVIYXNBdWRpbygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc0F1ZGlvKCk7CiB9CiAKLWJv
b2wgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8oY29uc3QgU291cmNl
QnVmZmVyUHJpdmF0ZSopIGNvbnN0Citib29sIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJp
dmF0ZUhhc1ZpZGVvKCkgY29uc3QKIHsKICAgICByZXR1cm4gaGFzVmlkZW8oKTsKIH0KIAotdm9p
ZCBTb3VyY2VCdWZmZXI6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayogdHJh
Y2spCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1Ry
YWNrJiB0cmFjaykKIHsKICAgICAvLyAyLjQuNSBDaGFuZ2VzIHRvIHNlbGVjdGVkL2VuYWJsZWQg
dHJhY2sgc3RhdGUKICAgICAvLyBJZiB0aGUgc2VsZWN0ZWQgdmlkZW8gdHJhY2sgY2hhbmdlcywg
dGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKICAgICAvLyAxLiBJZiB0aGUgU291cmNlQnVm
ZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCB2aWRlbyB0cmFjayBp
cyBub3QgYXNzb2NpYXRlZCB3aXRoCiAgICAgLy8gYW55IG90aGVyIGVuYWJsZWQgdHJhY2tzLCBy
dW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAoIXRyYWNrLT5zZWxlY3RlZCgpCisgICAg
aWYgKCF0cmFjay5zZWxlY3RlZCgpCiAgICAgICAgICYmICghbV92aWRlb1RyYWNrcyB8fCAhbV92
aWRlb1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX2F1ZGlvVHJh
Y2tzIHx8ICFtX2F1ZGlvVHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAgICAgICAmJiAo
IW1fdGV4dFRyYWNrcyB8fCAhbV90ZXh0VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKSkgewog
ICAgICAgICAvLyAxLjEgUmVtb3ZlIHRoZSBTb3VyY2VCdWZmZXIgZnJvbSBhY3RpdmVTb3VyY2VC
dWZmZXJzLgogICAgICAgICAvLyAxLjIgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZl
bnQgbmFtZWQgcmVtb3Zlc291cmNlYnVmZmVyIGF0IGFjdGl2ZVNvdXJjZUJ1ZmZlcnMKICAgICAg
ICAgc2V0QWN0aXZlKGZhbHNlKTsKLSAgICB9IGVsc2UgaWYgKHRyYWNrLT5zZWxlY3RlZCgpKSB7
CisgICAgfSBlbHNlIGlmICh0cmFjay5zZWxlY3RlZCgpKSB7CiAgICAgICAgIC8vIDIuIElmIHRo
ZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBuZXdseSBzZWxlY3RlZCB2aWRlbyB0
cmFjayBpcyBub3QgYWxyZWFkeSBpbiBhY3RpdmVTb3VyY2VCdWZmZXJzLAogICAgICAgICAvLyBy
dW4gdGhlIGZvbGxvd2luZyBzdGVwczoKICAgICAgICAgLy8gMi4xIEFkZCB0aGUgU291cmNlQnVm
ZmVyIHRvIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMuCkBAIC0xNjk3LDI2ICsxNjkwLDI2IEBAIHZvaWQg
U291cmNlQnVmZmVyOjp2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqIHRyYWNr
KQogICAgICAgICBzZXRBY3RpdmUodHJ1ZSk7CiAgICAgfQogCi0gICAgaWYgKG1fdmlkZW9UcmFj
a3MgJiYgbV92aWRlb1RyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV92aWRlb1Ry
YWNrcyAmJiBtX3ZpZGVvVHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fdmlkZW9U
cmFja3MtPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIGlmICghaXNSZW1vdmVkKCkpCiAg
ICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdl
ZCh0cmFjayk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjphdWRpb1RyYWNrRW5hYmxlZENoYW5n
ZWQoQXVkaW9UcmFjayogdHJhY2spCit2b2lkIFNvdXJjZUJ1ZmZlcjo6YXVkaW9UcmFja0VuYWJs
ZWRDaGFuZ2VkKEF1ZGlvVHJhY2smIHRyYWNrKQogewogICAgIC8vIDIuNC41IENoYW5nZXMgdG8g
c2VsZWN0ZWQvZW5hYmxlZCB0cmFjayBzdGF0ZQogICAgIC8vIElmIGFuIGF1ZGlvIHRyYWNrIGJl
Y29tZXMgZGlzYWJsZWQgYW5kIHRoZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMg
dHJhY2sgaXMgbm90CiAgICAgLy8gYXNzb2NpYXRlZCB3aXRoIGFueSBvdGhlciBlbmFibGVkIG9y
IHNlbGVjdGVkIHRyYWNrLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIGlmICgh
dHJhY2stPmVuYWJsZWQoKQorICAgIGlmICghdHJhY2suZW5hYmxlZCgpCiAgICAgICAgICYmICgh
bV92aWRlb1RyYWNrcyB8fCAhbV92aWRlb1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkKICAg
ICAgICAgJiYgKCFtX2F1ZGlvVHJhY2tzIHx8ICFtX2F1ZGlvVHJhY2tzLT5pc0FueVRyYWNrRW5h
YmxlZCgpKQogICAgICAgICAmJiAoIW1fdGV4dFRyYWNrcyB8fCAhbV90ZXh0VHJhY2tzLT5pc0Fu
eVRyYWNrRW5hYmxlZCgpKSkgewogICAgICAgICAvLyAxLiBSZW1vdmUgdGhlIFNvdXJjZUJ1ZmZl
ciBhc3NvY2lhdGVkIHdpdGggdGhlIGF1ZGlvIHRyYWNrIGZyb20gYWN0aXZlU291cmNlQnVmZmVy
cwogICAgICAgICAvLyAyLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1l
ZCByZW1vdmVzb3VyY2VidWZmZXIgYXQgYWN0aXZlU291cmNlQnVmZmVycwogICAgICAgICBzZXRB
Y3RpdmUoZmFsc2UpOwotICAgIH0gZWxzZSBpZiAodHJhY2stPmVuYWJsZWQoKSkgeworICAgIH0g
ZWxzZSBpZiAodHJhY2suZW5hYmxlZCgpKSB7CiAgICAgICAgIC8vIElmIGFuIGF1ZGlvIHRyYWNr
IGJlY29tZXMgZW5hYmxlZCBhbmQgdGhlIFNvdXJjZUJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhp
cyB0cmFjayBpcwogICAgICAgICAvLyBub3QgYWxyZWFkeSBpbiBhY3RpdmVTb3VyY2VCdWZmZXJz
LCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICAvLyAxLiBBZGQgdGhlIFNv
dXJjZUJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhlIGF1ZGlvIHRyYWNrIHRvIGFjdGl2ZVNvdXJj
ZUJ1ZmZlcnMKQEAgLTE3MjQsMTkgKzE3MTcsMTkgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OmF1ZGlv
VHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKiB0cmFjaykKICAgICAgICAgc2V0QWN0aXZl
KHRydWUpOwogICAgIH0KIAotICAgIGlmIChtX2F1ZGlvVHJhY2tzICYmIG1fYXVkaW9UcmFja3Mt
PmNvbnRhaW5zKCp0cmFjaykpCisgICAgaWYgKG1fYXVkaW9UcmFja3MgJiYgbV9hdWRpb1RyYWNr
cy0+Y29udGFpbnModHJhY2spKQogICAgICAgICBtX2F1ZGlvVHJhY2tzLT5zY2hlZHVsZUNoYW5n
ZUV2ZW50KCk7CiAKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVk
aWFFbGVtZW50KCktPmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCh0cmFjayk7CiB9CiAKLXZvaWQg
U291cmNlQnVmZmVyOjp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQordm9p
ZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7
CiAgICAgLy8gMi40LjUgQ2hhbmdlcyB0byBzZWxlY3RlZC9lbmFibGVkIHRyYWNrIHN0YXRlCiAg
ICAgLy8gSWYgYSB0ZXh0IHRyYWNrIG1vZGUgYmVjb21lcyAiZGlzYWJsZWQiIGFuZCB0aGUgU291
cmNlQnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYWNrIGlzIG5vdAogICAgIC8vIGFzc29j
aWF0ZWQgd2l0aCBhbnkgb3RoZXIgZW5hYmxlZCBvciBzZWxlY3RlZCB0cmFjaywgdGhlbiBydW4g
dGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAodHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6
Ok1vZGU6OkRpc2FibGVkCisgICAgaWYgKHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6
OkRpc2FibGVkCiAgICAgICAgICYmICghbV92aWRlb1RyYWNrcyB8fCAhbV92aWRlb1RyYWNrcy0+
aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX2F1ZGlvVHJhY2tzIHx8ICFtX2F1
ZGlvVHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAgICAgICAmJiAoIW1fdGV4dFRyYWNr
cyB8fCAhbV90ZXh0VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKSkgewpAQCAtMTc1MSw1NiAr
MTc0NCw1NiBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRy
YWNrKiB0cmFjaykKICAgICAgICAgc2V0QWN0aXZlKHRydWUpOwogICAgIH0KIAotICAgIGlmICht
X3RleHRUcmFja3MgJiYgbV90ZXh0VHJhY2tzLT5jb250YWlucygqdHJhY2spKQorICAgIGlmICht
X3RleHRUcmFja3MgJiYgbV90ZXh0VHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1f
dGV4dFRyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogCiAgICAgaWYgKCFpc1JlbW92ZWQo
KSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tNb2RlQ2hhbmdl
ZCh0cmFjayk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRy
YWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRy
YWNrQWRkQ3VlKFRleHRUcmFjayYgdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogewogICAgIGlm
ICghaXNSZW1vdmVkKCkpCiAgICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dGV4dFRy
YWNrQWRkQ3VlKHRyYWNrLCBjdWUpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNr
QWRkQ3VlcyhUZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWVMaXN0IGNvbnN0KiBjdWVMaXN0
KQordm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiB0cmFjaywg
Y29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYgY3VlTGlzdCkKIHsKICAgICBpZiAoIWlzUmVtb3ZlZCgp
KQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja0FkZEN1ZXModHJh
Y2ssIGN1ZUxpc3QpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3Vl
KFRleHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBTb3VyY2VCdWZmZXI6
OnRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkK
IHsKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50
KCktPnRleHRUcmFja1JlbW92ZUN1ZSh0cmFjaywgY3VlKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZm
ZXI6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlTGlz
dCBjb25zdCogY3VlTGlzdCkKK3ZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tSZW1vdmVDdWVz
KFRleHRUcmFjayYgdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZUxpc3QpCiB7CiAg
ICAgaWYgKCFpc1JlbW92ZWQoKSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50
ZXh0VHJhY2tSZW1vdmVDdWVzKHRyYWNrLCBjdWVMaXN0KTsKIH0KIAotdm9pZCBTb3VyY2VCdWZm
ZXI6OnRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIFNvdXJjZUJ1
ZmZlcjo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykKIHsKICAgICBpZiAo
IWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFj
a0tpbmRDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1ZmZlclByaXZhdGUq
LCBBdG9taWNTdHJpbmcgdHJhY2tJRCkKK3ZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQ
cml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRy
YWNrSUQpCiB7CiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyOjpzb3VyY2VCdWZm
ZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyglcCkiLCB0aGlzKTsKICAgICBh
dXRvIGl0ID0gbV90cmFja0J1ZmZlck1hcC5maW5kKHRyYWNrSUQpOwogICAgIGlmIChpdCA9PSBt
X3RyYWNrQnVmZmVyTWFwLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBUcmFja0J1ZmZl
ciYgdHJhY2tCdWZmZXIgPSBpdC0+dmFsdWU7CisgICAgYXV0byYgdHJhY2tCdWZmZXIgPSBpdC0+
dmFsdWU7CiAgICAgaWYgKCF0cmFja0J1ZmZlci5uZWVkc1JlZW5xdWV1ZWluZyAmJiAhbV9zb3Vy
Y2UtPmlzU2Vla2luZygpKQogICAgICAgICBwcm92aWRlTWVkaWFEYXRhKHRyYWNrQnVmZmVyLCB0
cmFja0lEKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoVHJhY2tC
dWZmZXImIHRyYWNrQnVmZmVyLCBBdG9taWNTdHJpbmcgdHJhY2tJRCkKK3ZvaWQgU291cmNlQnVm
ZmVyOjpwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgY29uc3QgQXRv
bWljU3RyaW5nJiB0cmFja0lEKQogewogICAgIGlmIChtX3NvdXJjZS0+aXNTZWVraW5nKCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTE4MzQsNyArMTgyNyw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpw
cm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5nIHRy
YWNrCiAKICAgICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSA9
IHNhbXBsZS0+cHJlc2VudGF0aW9uVGltZSgpOwogICAgICAgICB0cmFja0J1ZmZlci5sYXN0RW5x
dWV1ZWREZWNvZGVFbmRUaW1lID0gc2FtcGxlLT5kZWNvZGVUaW1lKCkgKyBzYW1wbGUtPmR1cmF0
aW9uKCk7Ci0gICAgICAgIG1fcHJpdmF0ZS0+ZW5xdWV1ZVNhbXBsZShXVEZNb3ZlKHNhbXBsZSks
IHRyYWNrSUQpOworICAgICAgICBtX3ByaXZhdGUtPmVucXVldWVTYW1wbGUoc2FtcGxlLnJlbGVh
c2VOb25OdWxsKCksIHRyYWNrSUQpOwogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgKytlbnF1
ZXVlZFNhbXBsZXM7CiAjZW5kaWYKQEAgLTE4NDMsNyArMTgzNiw3IEBAIHZvaWQgU291cmNlQnVm
ZmVyOjpwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3Ry
aW5nIHRyYWNrCiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyOjpwcm92aWRlTWVk
aWFEYXRhKCVwKSAtIEVucXVldWVkICV1IHNhbXBsZXMiLCB0aGlzLCBlbnF1ZXVlZFNhbXBsZXMp
OwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6cmVlbnF1ZXVlTWVkaWFGb3JUaW1lKFRyYWNrQnVm
ZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5nIHRyYWNrSUQsIGNvbnN0IE1lZGlhVGltZSYg
dGltZSkKK3ZvaWQgU291cmNlQnVmZmVyOjpyZWVucXVldWVNZWRpYUZvclRpbWUoVHJhY2tCdWZm
ZXImIHRyYWNrQnVmZmVyLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQsIGNvbnN0IE1lZGlh
VGltZSYgdGltZSkKIHsKICAgICBtX3ByaXZhdGUtPmZsdXNoKHRyYWNrSUQpOwogICAgIHRyYWNr
QnVmZmVyLmRlY29kZVF1ZXVlLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAppbmRleCBkOWUxNzQ3OTk5MjRhZmIwZTg4ZDc0
NzcyZThmOGE5MWEyY2YwMmIwLi4zOWQwNTE2Njk5YmNhOTVkYmIwN2UyZTY1ZmEwMTc1OGM1N2I1
NTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJj
ZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgQXVkaW9UcmFja0xpc3Q7CiBjbGFzcyBC
dWZmZXJTb3VyY2U7CiBjbGFzcyBNZWRpYVNvdXJjZTsKIGNsYXNzIFBsYXRmb3JtVGltZVJhbmdl
czsKK2NsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGU7CiBjbGFzcyBUZXh0VHJhY2tMaXN0OwogY2xh
c3MgVGltZVJhbmdlczsKIGNsYXNzIFZpZGVvVHJhY2tMaXN0OwpAQCAtNjQsOSArNjUsOSBAQCBw
dWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VGltZXN0YW1wT2Zmc2V0KGRvdWJsZSk7
CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgVmlkZW9UcmFja0xpc3QqIHZpZGVvVHJh
Y2tzKCk7Ci0gICAgQXVkaW9UcmFja0xpc3QqIGF1ZGlvVHJhY2tzKCk7Ci0gICAgVGV4dFRyYWNr
TGlzdCogdGV4dFRyYWNrcygpOworICAgIFZpZGVvVHJhY2tMaXN0JiB2aWRlb1RyYWNrcygpOwor
ICAgIEF1ZGlvVHJhY2tMaXN0JiBhdWRpb1RyYWNrcygpOworICAgIFRleHRUcmFja0xpc3QmIHRl
eHRUcmFja3MoKTsKICNlbmRpZgogCiAgICAgZG91YmxlIGFwcGVuZFdpbmRvd1N0YXJ0KCkgY29u
c3Q7CkBAIC0xMjQsMjUgKzEyNSwyNCBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1
bWVudFN1c3BlbnNpb24oKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgc291cmNlQnVmZmVyUHJp
dmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJpdmF0ZSos
IGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYpIGZpbmFsOwotICAgIHZvaWQgc291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIE1lZGlhU2Ft
cGxlJikgZmluYWw7Ci0gICAgYm9vbCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oY29uc3Qg
U291cmNlQnVmZmVyUHJpdmF0ZSopIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgc291cmNlQnVmZmVy
UHJpdmF0ZUhhc1ZpZGVvKGNvbnN0IFNvdXJjZUJ1ZmZlclByaXZhdGUqKSBjb25zdCBmaW5hbDsK
LSAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVz
KFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBdG9taWNTdHJpbmcgdHJhY2tJRCkgZmluYWw7Ci0gICAg
TWVkaWFUaW1lIHNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoU291
cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYgbmVn
YXRpdmVUaHJlc2hvbGQsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpdmVUaHJlc2hvbGQpIGZpbmFs
OwotICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFNvdXJjZUJ1ZmZl
clByaXZhdGUqLCBBcHBlbmRSZXN1bHQpIGZpbmFsOwotICAgIHZvaWQgc291cmNlQnVmZmVyUHJp
dmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihTb3VyY2VCdWZmZXJQcml2YXRlKiwgaW50IGVy
cm9yQ29kZSkgZmluYWw7Ci0KLSAgICB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRp
b1RyYWNrKikgZmluYWw7Ci0KLSAgICB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlk
ZW9UcmFjayopIGZpbmFsOwotCi0gICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJh
Y2sqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayopIGZp
bmFsOwotICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJh
Y2tDdWVMaXN0KikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFj
ayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0Fk
ZEN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFj
a1JlbW92ZUN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHNv
dXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IElu
aXRpYWxpemF0aW9uU2VnbWVudCYpIGZpbmFsOworICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKKyAgICBib29sIHNvdXJjZUJ1
ZmZlclByaXZhdGVIYXNBdWRpbygpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgc291cmNlQnVmZmVy
UHJpdmF0ZUhhc1ZpZGVvKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2
YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNr
SUQpIGZpbmFsOworICAgIE1lZGlhVGltZSBzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1l
Rm9yTWVkaWFUaW1lKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYgbmVnYXRpdmVU
aHJlc2hvbGQsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpdmVUaHJlc2hvbGQpIGZpbmFsOworICAg
IHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKEFwcGVuZFJlc3VsdCkgZmlu
YWw7CisgICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmluZ0Vycm9y
KGludCBlcnJvckNvZGUpIGZpbmFsOworCisgICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5n
ZWQoQXVkaW9UcmFjayYpIGZpbmFsOworICAgIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdl
ZChWaWRlb1RyYWNrJikgZmluYWw7CisKKyAgICB2b2lkIHRleHRUcmFja0tpbmRDaGFuZ2VkKFRl
eHRUcmFjayYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNr
JikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRl
eHRUcmFja0N1ZUxpc3QmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4
dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRy
YWNrQWRkQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYpIGZpbmFsOworICAgIHZvaWQgdGV4
dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYpIGZpbmFsOwogCiAgICAg
RXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBTb3VyY2VCdWZmZXJFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KIApAQCAtMTU3
LDggKzE1Nyw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIHZhbGlkYXRlSW5pdGlhbGl6YXRpb25T
ZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYpOwogCi0gICAgdm9pZCByZWVucXVl
dWVNZWRpYUZvclRpbWUoVHJhY2tCdWZmZXImLCBBdG9taWNTdHJpbmcgdHJhY2tJRCwgY29uc3Qg
TWVkaWFUaW1lJik7Ci0gICAgdm9pZCBwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiwgQXRv
bWljU3RyaW5nIHRyYWNrSUQpOworICAgIHZvaWQgcmVlbnF1ZXVlTWVkaWFGb3JUaW1lKFRyYWNr
QnVmZmVyJiwgY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lELCBjb25zdCBNZWRpYVRpbWUmKTsK
KyAgICB2b2lkIHByb3ZpZGVNZWRpYURhdGEoVHJhY2tCdWZmZXImLCBjb25zdCBBdG9taWNTdHJp
bmcmIHRyYWNrSUQpOwogICAgIHZvaWQgZGlkRHJvcFNhbXBsZSgpOwogICAgIHZvaWQgZXZpY3RD
b2RlZEZyYW1lcyhzaXplX3QgbmV3RGF0YVNpemUpOwogICAgIHNpemVfdCBtYXhpbXVtQnVmZmVy
U2l6ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGJlOTY0NTg5MzdhOTQyMWY1Njg5MDUyMmVlYWNkOTA4NmEwZjk3
YTkuLjA1ODIzNzljY2I1ZGFkMDc0MzE4YTdmMGUwMjkyZDliNGI4NjlhYWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2MTQs
OCArMjYxNCw4IEBACiAJCTZFM0ZBRThFMTQ3MzNGREIwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4
dHVyZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RTNGQUU4QzE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuY3BwICovOyB9Owog
CQk2RTNGQUU4RjE0NzMzRkRCMDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRThE
MTQ3MzNGREIwMEU0MjMwNiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oICovOyB9Owog
CQk2RTNGQUU4RjE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRThEMTQ3MzNGREIw
MEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVyZS5oICovOyB9OwotCQk2RTQ3RTY2MDEwQjc5NDRC
MDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZFNDdFNjVFMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldElu
Zm8uY3BwICovOyB9OwotCQk2RTQ3RTY2MTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZv
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTQ3RTY1
RjEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmggKi87IH07CisJCTZFNDdFNjYwMTBC
Nzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnku
Y3BwICovOyB9OworCQk2RTQ3RTY2MTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNDdFNjVGMTBCNzk0
NEIwMEIxODZDOCAvKiBXZWJHTEFueS5oICovOyB9OwogCQk2RTRBQkNENDEzOEVBMEI3MDA3MUQy
OTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkU0QUJDRDIxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVu
a25vd25FbGVtZW50LmNwcCAqLzsgfTsKIAkJNkU0QUJDRDUxMzhFQTBCNzAwNzFEMjkxIC8qIEpT
SFRNTFVua25vd25FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2RTRBQkNEMzEzOEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1l
bnQuaCAqLzsgfTsKIAkJNkU0RTkxQUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0
dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDZFNEU5MUFBMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk5MTUsOCAr
OTkxNSw4IEBACiAJCTZFM0ZBRThEMTQ3MzNGREIwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVy
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTERlcHRoVGV4dHVyZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTNGQUU5MDE0NzMzRkVBMDBFNDIzMDYg
LyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkUzRkFFOTAxNDczM0ZFQTAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHTERlcHRoVGV4dHVyZS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTZFNDdFNjVFMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldElu
Zm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR0xHZXRJbmZv
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkU0N0U2NUYxMEI3OTQ0QjAwQjE4
NkM4IC8qIFdlYkdMR2V0SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJHTEdldEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkU0N0U2NUUxMEI3
OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkdMQW55LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkU0
N0U2NUYxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkdMQW55Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZF
NEFCQ0QyMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtub3duRWxlbWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxVbmtub3duRWxlbWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFNEFCQ0QzMTM4RUEwQjcwMDcxRDI5MSAv
KiBKU0hUTUxVbmtub3duRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0hUTUxVbmtub3duRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RTRFOTFBQTEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjkyOCw4ICsxNjkyOCw4IEBACiAJCQkJNDlD
N0I5QUUxMDQyRDMyRTAwMDlENDQ3IC8qIFdlYkdMRnJhbWVidWZmZXIuY3BwICovLAogCQkJCTQ5
QzdCOUFGMTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmggKi8sCiAJCQkJNDlD
N0I5QjAxMDQyRDMyRTAwMDlENDQ3IC8qIFdlYkdMRnJhbWVidWZmZXIuaWRsICovLAotCQkJCTZF
NDdFNjVFMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldEluZm8uY3BwICovLAotCQkJCTZFNDdF
NjVGMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldEluZm8uaCAqLywKKwkJCQk2RTQ3RTY1RTEw
Qjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuY3BwICovLAorCQkJCTZFNDdFNjVGMTBCNzk0NEIw
MEIxODZDOCAvKiBXZWJHTEFueS5oICovLAogCQkJCTkzRjFENUI3MTJENTMyQzQwMDgzMkJFQyAv
KiBXZWJHTExvc2VDb250ZXh0LmNwcCAqLywKIAkJCQk5M0YxRDVCODEyRDUzMkM0MDA4MzJCRUMg
LyogV2ViR0xMb3NlQ29udGV4dC5oICovLAogCQkJCTkzRjFENUI5MTJENTMyQzQwMDgzMkJFQyAv
KiBXZWJHTExvc2VDb250ZXh0LmlkbCAqLywKQEAgLTI4MjQzLDcgKzI4MjQzLDcgQEAKIAkJCQk1
QjMwNjk1RTE4QjNEMzQ1MDA5OUQ1RTggLyogV2ViR0xEcmF3QnVmZmVycy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNkVCRjBFNTUxMkE4OTI5ODAwREIxNzA5IC8qIFdlYkdMRXh0ZW5zaW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0OUM3QjlDRjEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1
ZmZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdl
YkdMR2V0SW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4
IC8qIFdlYkdMQW55LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUZGQkYzRjExQzkzRUUzMDA2QTcx
MTggLyogV2ViR0xMYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMUQ1QkIxMkQ1MzJDNDAw
ODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOUQ1
MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTcz
Miw3ICszMTczMiw3IEBACiAJCQkJNUIzMDY5NUQxOEIzRDM0NTAwOTlENUU4IC8qIFdlYkdMRHJh
d0J1ZmZlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkVCRjBFNTQxMkE4OTI5ODAwREIxNzA5
IC8qIFdlYkdMRXh0ZW5zaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUNFMTA0MkQz
MkYwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTZF
NDdFNjYwMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldEluZm8uY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJNkU0N0U2NjAxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQ5RkZCRjQwMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTNGMUQ1QkExMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRl
eHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlDN0I5RDQxMDQyRDMyRjAwMDlENDQ3IC8qIFdl
YkdMT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3Bw
CmluZGV4IGUyMGIyMzg2ODY0ZGFjZGRhZDU2MmZjM2VlYzZhYTMzOTRmZjEwYTUuLmNjNjMzYmU3
ZTRhNDI2ZmY4N2I2MTExOGQzNzM3MThmMmQzMTY3YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1
c3RvbS5jcHAKQEAgLTY1LDkgKzY1LDkgQEAgc3RhdGljIENhbnZhc1N0eWxlIHRvSFRNTENhbnZh
c1N0eWxlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFsdWUpCiAgICAgICAgIHJldHVybiBDYW52YXNT
dHlsZSgpOwogICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7CiAgICAgaWYg
KG9iamVjdC0+aW5oZXJpdHMoSlNDYW52YXNHcmFkaWVudDo6aW5mbygpKSkKLSAgICAgICAgcmV0
dXJuIENhbnZhc1N0eWxlKCZqc0Nhc3Q8SlNDYW52YXNHcmFkaWVudCo+KG9iamVjdCktPndyYXBw
ZWQoKSk7CisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNDYW52YXNHcmFkaWVudCo+KG9iamVjdCkt
PndyYXBwZWQoKTsKICAgICBpZiAob2JqZWN0LT5pbmhlcml0cyhKU0NhbnZhc1BhdHRlcm46Omlu
Zm8oKSkpCi0gICAgICAgIHJldHVybiBDYW52YXNTdHlsZSgmanNDYXN0PEpTQ2FudmFzUGF0dGVy
bio+KG9iamVjdCktPndyYXBwZWQoKSk7CisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNDYW52YXNQ
YXR0ZXJuKj4ob2JqZWN0KS0+d3JhcHBlZCgpOwogICAgIHJldHVybiBDYW52YXNTdHlsZSgpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1l
bnRGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVt
ZW50RnVuY3Rpb25zLmNwcAppbmRleCBmNzhhMTE4NjIxOGM2YTliZDFkNzdiZTg3ODc0M2U5ZWFj
YmFjNzQ0Li4wYWUxYzBhNjJlNjQwZGUzMTBiZWRiYWU4MTU2NjNmMDcyM2MxMzVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0
aW9ucy5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgSW5zdGFuY2UqIHBsdWdpbkluc3RhbmNlKEhUTUxF
bGVtZW50JiBlbGVtZW50KQogICAgIC8vIFRoZSBwbHVnaW4gZWxlbWVudCBob2xkcyBhbiBvd25p
bmcgcmVmZXJlbmNlLCBzbyB3ZSBkb24ndCBoYXZlIHRvLgogICAgIGlmICghaXM8SFRNTFBsdWdJ
bkVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBJbnN0YW5j
ZSogaW5zdGFuY2UgPSBkb3duY2FzdDxIVE1MUGx1Z0luRWxlbWVudD4oZWxlbWVudCkuZ2V0SW5z
dGFuY2UoKS5nZXQoKTsKKyAgICBhdXRvKiBpbnN0YW5jZSA9IGRvd25jYXN0PEhUTUxQbHVnSW5F
bGVtZW50PihlbGVtZW50KS5iaW5kaW5nc0luc3RhbmNlKCk7CiAgICAgaWYgKCFpbnN0YW5jZSB8
fCAhaW5zdGFuY2UtPnJvb3RPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
cmV0dXJuIGluc3RhbmNlOwpAQCAtNzEsMjMgKzcxLDIzIEBAIEpTT2JqZWN0KiBwbHVnaW5TY3Jp
cHRPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0hUTUxFbGVtZW50KiBqc0hUTUxFbGVtZW50KQog
ICAgIGlmICghaXM8SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIEhUTUxQbHVnSW5FbGVtZW50JiBwbHVnaW5FbGVtZW50ID0gZG93bmNh
c3Q8SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpOworICAgIGF1dG8mIHBsdWdpbkVsZW1lbnQg
PSBkb3duY2FzdDxIVE1MUGx1Z0luRWxlbWVudD4oZWxlbWVudCk7CiAKICAgICAvLyBDaG9rZSBw
b2ludCBmb3Igc2NyaXB0L3BsdWdpbiBpbnRlcmFjdGlvbjsgbm90aWZ5IERPTVRpbWVyIG9mIHRo
ZSBldmVudC4KICAgICBET01UaW1lcjo6c2NyaXB0RGlkSW50ZXJhY3RXaXRoUGx1Z2luKHBsdWdp
bkVsZW1lbnQpOwogCiAgICAgLy8gRmlyc3QsIHNlZSBpZiB0aGUgZWxlbWVudCBoYXMgYSBwbHVn
LWluIHJlcGxhY2VtZW50IHdpdGggYSBzY3JpcHQuCi0gICAgaWYgKEpTT2JqZWN0KiBzY3JpcHRP
YmplY3QgPSBwbHVnaW5FbGVtZW50LnNjcmlwdE9iamVjdEZvclBsdWdpblJlcGxhY2VtZW50KCkp
CisgICAgaWYgKGF1dG8qIHNjcmlwdE9iamVjdCA9IHBsdWdpbkVsZW1lbnQuc2NyaXB0T2JqZWN0
Rm9yUGx1Z2luUmVwbGFjZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIHNjcmlwdE9iamVjdDsKICAg
ICAKICAgICAvLyBOZXh0LCBzZWUgaWYgd2UgY2FuIGFzayB0aGUgcGx1Zy1pbiB2aWV3IGZvciBp
dHMgc2NyaXB0IG9iamVjdC4KLSAgICBpZiAoSlNPYmplY3QqIHNjcmlwdE9iamVjdCA9IHBsdWdp
blNjcmlwdE9iamVjdEZyb21QbHVnaW5WaWV3QmFzZShwbHVnaW5FbGVtZW50LCBqc0hUTUxFbGVt
ZW50LT5nbG9iYWxPYmplY3QoKSkpCisgICAgaWYgKGF1dG8qIHNjcmlwdE9iamVjdCA9IHBsdWdp
blNjcmlwdE9iamVjdEZyb21QbHVnaW5WaWV3QmFzZShwbHVnaW5FbGVtZW50LCBqc0hUTUxFbGVt
ZW50LT5nbG9iYWxPYmplY3QoKSkpCiAgICAgICAgIHJldHVybiBzY3JpcHRPYmplY3Q7CiAKICAg
ICAvLyBPdGhlcndpc2UsIGZhbGwgYmFjayB0byBnZXR0aW5nIHRoZSBvYmplY3QgZnJvbSB0aGUg
aW5zdGFuY2UuCiAKICAgICAvLyBUaGUgcGx1Z2luIGVsZW1lbnQgaG9sZHMgYW4gb3duaW5nIHJl
ZmVyZW5jZSwgc28gd2UgZG9uJ3QgaGF2ZSB0by4KLSAgICBJbnN0YW5jZSogaW5zdGFuY2UgPSBw
bHVnaW5FbGVtZW50LmdldEluc3RhbmNlKCkuZ2V0KCk7CisgICAgYXV0byogaW5zdGFuY2UgPSBw
bHVnaW5FbGVtZW50LmJpbmRpbmdzSW5zdGFuY2UoKTsKICAgICBpZiAoIWluc3RhbmNlIHx8ICFp
bnN0YW5jZS0+cm9vdE9iamVjdCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5n
Q29udGV4dEN1c3RvbS5jcHAKaW5kZXggNzg4YWQyNDQ0NjkyMGQwZmEyZWFlZWI3NDhkNjQ5YmJl
MzY4YzQ3MS4uNWRmMjU4ZmVhNzVkMzEzY2MzZDEyMWI4NGNlNWI2MmE1MWMyM2U5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0zNiwzNyArMzYsNiBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEZJWE1FOiBUaGVyZSBpcyBhIGR1cGxp
Y2F0ZSB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24gaW4gSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlQ3VzdG9tLmNwcCwKLS8vIGJ1dCBpdCBpcyBub3QgZXhhY3RseSB0aGUgc2FtZSEgV2Ugc2hv
dWxkIG1lcmdlIHRoZXNlLgotc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBXZWJHTEdldEluZm8mIGluZm8p
Ci17Ci0gICAgc3dpdGNoIChpbmZvLmdldFR5cGUoKSkgewotICAgIGNhc2UgV2ViR0xHZXRJbmZv
OjprVHlwZUJvb2w6Ci0gICAgICAgIHJldHVybiBqc0Jvb2xlYW4oaW5mby5nZXRCb29sKCkpOwot
ICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZUJvb2xBcnJheTogewotICAgICAgICBNYXJrZWRB
cmd1bWVudEJ1ZmZlciBsaXN0OwotICAgICAgICBmb3IgKGF1dG8mIHZhbHVlIDogaW5mby5nZXRC
b29sQXJyYXkoKSkKLSAgICAgICAgICAgIGxpc3QuYXBwZW5kKGpzQm9vbGVhbih2YWx1ZSkpOwot
ICAgICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoc3RhdGUsIDAsIGdsb2JhbE9iamVjdCwgbGlz
dCk7Ci0gICAgfQotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZUZsb2F0OgotICAgICAgICBy
ZXR1cm4ganNOdW1iZXIoaW5mby5nZXRGbG9hdCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6
a1R5cGVJbnQ6Ci0gICAgICAgIHJldHVybiBqc051bWJlcihpbmZvLmdldEludCgpKTsKLSAgICBj
YXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVOdWxsOgotICAgICAgICByZXR1cm4ganNOdWxsKCk7Ci0g
ICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlU3RyaW5nOgotICAgICAgICByZXR1cm4ganNTdHJp
bmdXaXRoQ2FjaGUoc3RhdGUsIGluZm8uZ2V0U3RyaW5nKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJ
bmZvOjprVHlwZVVuc2lnbmVkSW50OgotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRV
bnNpZ25lZEludCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVJbnQ2NDoKLSAgICAg
ICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0SW50NjQoKSk7Ci0gICAgZGVmYXVsdDoKLSAgICAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAg
fQotfQotCiB2b2lkIEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRBZGRpdGlvbmFsQ2hp
bGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290
KCZ3cmFwcGVkKCkpOwpAQCAtMTA0LDcgKzczLDcgQEAgSlNWYWx1ZSBKU1dlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmdldEluZGV4ZWRQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwogICAgIHVuc2lnbmVkIGluZGV4ID0g
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBn
bG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldEluZGV4ZWRQYXJhbWV0ZXIocG5hbWUsIGluZGV4
KSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdl
dEluZGV4ZWRQYXJhbWV0ZXIocG5hbWUsIGluZGV4KSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIoRXhlY1N0YXRl
JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2VDdXN0b20uY3BwCmluZGV4IDgyNWQyNTA5NGQyY2M2MjIw
NmIwNDk5NmMxMGQ1MzFlNTQyOTgwOTEuLjJhMGFmMmVkOWJiZjYzYWQ4ZDgwZmI4NDY4ODdkMWIz
NWNjZmQxZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9tLmNwcApAQCAtMjksMTUgKzI5
LDEyIEBACiAKICNpbmNsdWRlICJKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKIAotI2lu
Y2x1ZGUgIkFOR0xFSW5zdGFuY2VkQXJyYXlzLmgiCiAjaW5jbHVkZSAiRVhUQmxlbmRNaW5NYXgu
aCIKICNpbmNsdWRlICJFWFRGcmFnRGVwdGguaCIKICNpbmNsdWRlICJFWFRTaGFkZXJUZXh0dXJl
TE9ELmgiCiAjaW5jbHVkZSAiRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVk
ZSAiRVhUc1JHQi5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJIVE1M
Q2FudmFzRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJKU0FOR0xFSW5zdGFuY2VkQXJyYXlzLmgiCiAjaW5jbHVkZSAiSlNFWFRCbGVuZE1pbk1heC5o
IgogI2luY2x1ZGUgIkpTRVhURnJhZ0RlcHRoLmgiCkBAIC03Myw3ICs3MCw2IEBACiAjaW5jbHVk
ZSAiSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNXZWJHTFZlcnRleEFy
cmF5T2JqZWN0T0VTLmgiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NNYXRyaXguaCIKLSNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk9FU0VsZW1lbnRJbmRleFVpbnQuaCIKICNp
bmNsdWRlICJPRVNTdGFuZGFyZERlcml2YXRpdmVzLmgiCiAjaW5jbHVkZSAiT0VTVGV4dHVyZUZs
b2F0LmgiCkBAIC05MSw3ICs4Nyw2IEBACiAjaW5jbHVkZSAiV2ViR0xEcmF3QnVmZmVycy5oIgog
I2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5o
IgotI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgogI2luY2x1ZGUgIldlYkdMTG9zZUNvbnRleHQu
aCIKICNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmgiCkBAIC0xMDUsNyArMTAwLDYgQEAKICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxv
Yy5oPgogCiAjaWYgRU5BQkxFKFZJREVPKQotI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIK
ICNpbmNsdWRlICJKU0hUTUxWaWRlb0VsZW1lbnQuaCIKICNlbmRpZgogCkBAIC0xMTcsNyArMTEx
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU0M6
OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiYmIG9iamVj
dCkKK0pTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBSZWY8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4mJiBvYmplY3Qp
CiB7CiAjaWYgRU5BQkxFKFdFQkdMMikKICAgICBpZiAoaXM8V2ViR0wyUmVuZGVyaW5nQ29udGV4
dD4ob2JqZWN0KSkKQEAgLTEzMSw2NCArMTI1LDcgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSog
c3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdlYkdMUmVuZGVyaW5nQ28K
ICAgICByZXR1cm4gd3JhcChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBvYmplY3QpOwogfQogICAgIAot
Ly8gRklYTUU6IFRoZXJlIGlzIGEgZHVwbGljYXRlIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiBp
biBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwLAotLy8gYnV0IGl0IGlzIG5vdCBl
eGFjdGx5IHRoZSBzYW1lISBXZSBzaG91bGQgbWVyZ2UgdGhlc2UuCi1zdGF0aWMgSlNWYWx1ZSB0
b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29u
c3QgV2ViR0xHZXRJbmZvJiBpbmZvKQotewotICAgIHN3aXRjaCAoaW5mby5nZXRUeXBlKCkpIHsK
LSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVCb29sOgotICAgICAgICByZXR1cm4ganNCb29s
ZWFuKGluZm8uZ2V0Qm9vbCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVCb29sQXJy
YXk6IHsKLSAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgbGlzdDsKLSAgICAgICAgZm9yIChh
dXRvJiB2YWx1ZSA6IGluZm8uZ2V0Qm9vbEFycmF5KCkpCi0gICAgICAgICAgICBsaXN0LmFwcGVu
ZChqc0Jvb2xlYW4odmFsdWUpKTsKLSAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5KGV4ZWMs
IDAsIGdsb2JhbE9iamVjdCwgbGlzdCk7Ci0gICAgfQotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjpr
VHlwZUZsb2F0OgotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRGbG9hdCgpKTsKLSAg
ICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVJbnQ6Ci0gICAgICAgIHJldHVybiBqc051bWJlcihp
bmZvLmdldEludCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVOdWxsOgotICAgICAg
ICByZXR1cm4ganNOdWxsKCk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlU3RyaW5nOgot
ICAgICAgICByZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoZXhlYywgaW5mby5nZXRTdHJpbmcoKSk7
Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlVW5zaWduZWRJbnQ6Ci0gICAgICAgIHJldHVy
biBqc051bWJlcihpbmZvLmdldFVuc2lnbmVkSW50KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZv
OjprVHlwZVdlYkdMQnVmZmVyOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmpl
Y3QsIGluZm8uZ2V0V2ViR0xCdWZmZXIoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBl
V2ViR0xGbG9hdEFycmF5OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3Qs
IGluZm8uZ2V0V2ViR0xGbG9hdEFycmF5KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlw
ZVdlYkdMRnJhbWVidWZmZXI6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgaW5mby5nZXRXZWJHTEZyYW1lYnVmZmVyKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjpr
VHlwZVdlYkdMSW50QXJyYXk6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgaW5mby5nZXRXZWJHTEludEFycmF5KCkpOwotICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50
IFdlYkdMT2JqZWN0QXJyYXkKLSAgICAgICAgLy8gY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2Vi
R0xPYmplY3RBcnJheToKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFByb2dyYW06
Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTFBy
b2dyYW0oKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xSZW5kZXJidWZmZXI6
Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTFJl
bmRlcmJ1ZmZlcigpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFRleHR1cmU6
Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTFRl
eHR1cmUoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xVbnNpZ25lZEJ5dGVB
cnJheToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdl
YkdMVW5zaWduZWRCeXRlQXJyYXkoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2Vi
R0xVbnNpZ25lZEludEFycmF5OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmpl
Y3QsIGluZm8uZ2V0V2ViR0xVbnNpZ25lZEludEFycmF5KCkpOwotI2lmIEVOQUJMRShXRUJHTDIp
Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDoKLSAg
ICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMVmVydGV4
QXJyYXlPYmplY3QoKSk7Ci0jZW5kaWYKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsIGluZm8uZ2V0V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygpKTsKLSAgICBkZWZhdWx0
OgotICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKLSAgICB9Ci19Ci0KLWVudW0gT2JqZWN0VHlwZSB7IGtCdWZmZXIsIGtSZW5kZXJidWZmZXIs
IGtUZXh0dXJlLCBrVmVydGV4QXR0cmliIH07Ci0KLXN0YXRpYyBKU1ZhbHVlIGdldE9iamVjdFBh
cmFtZXRlcihKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIG9iaiwgRXhlY1N0YXRlJiBzdGF0
ZSwgT2JqZWN0VHlwZSBvYmplY3RUeXBlKQorc3RhdGljIEpTVmFsdWUgb2JqZWN0UGFyYW1ldGVy
KEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwgRXhlY1N0YXRlJiBzdGF0ZSwg
V2ViR0xBbnkgKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OipnZXR0ZXIpKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGVudW0gcG5hbWUpKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk2LDkwICsxMzMsNjYg
QEAgc3RhdGljIEpTVmFsdWUgZ2V0T2JqZWN0UGFyYW1ldGVyKEpTV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSogb2JqLCBFeGVjU3RhdGUmIHMKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgp
ICE9IDIpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlJiBjb250ZXh0ID0gb2JqLT53cmFwcGVkKCk7Ci0gICAgdW5zaWduZWQg
dGFyZ2V0ID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkudG9JbnQzMigmc3RhdGUpOwotICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgdW5zaWduZWQgcG5h
bWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICBXZWJHTEdldEluZm8gaW5m
bzsKLSAgICBzd2l0Y2ggKG9iamVjdFR5cGUpIHsKLSAgICBjYXNlIGtCdWZmZXI6Ci0gICAgICAg
IGluZm8gPSBjb250ZXh0LmdldEJ1ZmZlclBhcmFtZXRlcih0YXJnZXQsIHBuYW1lKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBrUmVuZGVyYnVmZmVyOgotICAgICAgICBpbmZvID0gY29udGV4
dC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIodGFyZ2V0LCBwbmFtZSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2Uga1RleHR1cmU6Ci0gICAgICAgIGluZm8gPSBjb250ZXh0LmdldFRleFBhcmFt
ZXRlcih0YXJnZXQsIHBuYW1lKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBrVmVydGV4QXR0
cmliOgotICAgICAgICAvLyB0YXJnZXQgPT4gaW5kZXgKLSAgICAgICAgaW5mbyA9IGNvbnRleHQu
Z2V0VmVydGV4QXR0cmliKHRhcmdldCwgcG5hbWUpOwotICAgICAgICBicmVhazsKLSAgICBkZWZh
dWx0OgotICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0g
ICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBvYmotPmdsb2JhbE9iamVjdCgpLCBpbmZvKTsKKyAgICBh
dXRvIHRhcmdldCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsK
KyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIGF1dG8gcG5hbWUgPSBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmNvbnRleHQu
Z2xvYmFsT2JqZWN0KCksIChjb250ZXh0LndyYXBwZWQoKS4qZ2V0dGVyKSh0YXJnZXQsIHBuYW1l
KSk7CiB9CiAKLWVudW0gV2hpY2hQcm9ncmFtQ2FsbCB7Ci0gICAga1Byb2dyYW1QYXJhbWV0ZXIs
IGtVbmlmb3JtCi19OwotCi1zdGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgV2ViR0xFeHRlbnNpb24qIGV4dGVuc2lvbikK
K3N0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3Qm
IGdsb2JhbE9iamVjdCwgV2ViR0xFeHRlbnNpb24qIGV4dGVuc2lvbikKIHsKICAgICBpZiAoIWV4
dGVuc2lvbikKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAgIHN3aXRjaCAoZXh0ZW5zaW9u
LT5nZXROYW1lKCkpIHsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTExvc2VDb250ZXh0
TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxXZWJHTExvc2VDb250ZXh0Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZz
dGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xMb3NlQ29udGV4dCo+KGV4dGVu
c2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVFNoYWRlclRleHR1cmVMT0ROYW1l
OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVY
VFNoYWRlclRleHR1cmVMT0QqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRTaGFkZXJUZXh0dXJlTE9EKj4oZXh0
ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6RVhUVGV4dHVyZUZpbHRlckFuaXNv
dHJvcGljTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMqPihleHRlbnNpb24pKTsKKyAgICAg
ICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRUZXh0
dXJlRmlsdGVyQW5pc290cm9waWMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5z
aW9uOjpFWFRzUkdCTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
LCBzdGF0aWNfY2FzdDxFWFRzUkdCKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pT
KCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUc1JHQio+KGV4dGVuc2lvbikp
OwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVEZyYWdEZXB0aE5hbWU6Ci0gICAgICAgIHJl
dHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhURnJhZ0RlcHRoKj4o
ZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwg
c3RhdGljX2Nhc3Q8RVhURnJhZ0RlcHRoKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4
dGVuc2lvbjo6RVhUQmxlbmRNaW5NYXhOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVEJsZW5kTWluTWF4Kj4oZXh0ZW5zaW9uKSk7Cisg
ICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhU
QmxlbmRNaW5NYXgqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNT
dGFuZGFyZERlcml2YXRpdmVzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNTdGFuZGFyZERlcml2YXRpdmVzKj4oZXh0ZW5zaW9uKSk7
CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8
T0VTU3RhbmRhcmREZXJpdmF0aXZlcyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246Ok9FU1RleHR1cmVGbG9hdE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0Kj4oZXh0ZW5zaW9uKSk7Cisg
ICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VT
VGV4dHVyZUZsb2F0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VT
VGV4dHVyZUZsb2F0TGluZWFyTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlRmxvYXRMaW5lYXIqPihleHRlbnNpb24pKTsK
KyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxP
RVNUZXh0dXJlRmxvYXRMaW5lYXIqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5z
aW9uOjpPRVNUZXh0dXJlSGFsZkZsb2F0TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlSGFsZkZsb2F0Kj4oZXh0ZW5zaW9u
KSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8T0VTVGV4dHVyZUhhbGZGbG9hdCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246Ok9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXJOYW1lOgotICAgICAgICByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVIYWxmRmxvYXRMaW5l
YXIqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyKj4oZXh0ZW5zaW9uKSk7
CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTVmVydGV4QXJyYXlPYmplY3ROYW1lOgotICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1ZlcnRl
eEFycmF5T2JqZWN0Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwg
Jmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVmVydGV4QXJyYXlPYmplY3QqPihleHRlbnNp
b24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNFbGVtZW50SW5kZXhVaW50TmFtZToK
LSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNF
bGVtZW50SW5kZXhVaW50Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0
ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTRWxlbWVudEluZGV4VWludCo+KGV4dGVu
c2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVidWdSZW5kZXJlckluZm9O
YW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PFdlYkdMRGVidWdSZW5kZXJlckluZm8qPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRv
SlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlYnVnUmVuZGVyZXJJ
bmZvKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1No
YWRlcnNOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PFdlYkdMRGVidWdTaGFkZXJzKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0
b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1NoYWRlcnMq
PihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTENvbXByZXNzZWRU
ZXh0dXJlQVRDTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDKj4oZXh0ZW5zaW9uKSk7CisgICAg
ICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xD
b21wcmVzc2VkVGV4dHVyZUFUQyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNp
b246OldlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQ05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBW
UlRDKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9i
amVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKj4oZXh0ZW5zaW9u
KSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVENO
YW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVMzVEMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJH
TERlcHRoVGV4dHVyZU5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgc3RhdGljX2Nhc3Q8V2ViR0xEZXB0aFRleHR1cmUqPihleHRlbnNpb24pKTsKKyAgICAgICAg
cmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlcHRo
VGV4dHVyZSo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRHJh
d0J1ZmZlcnNOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0
YXRpY19jYXN0PFdlYkdMRHJhd0J1ZmZlcnMqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJu
IHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERyYXdCdWZmZXJz
Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6QU5HTEVJbnN0YW5jZWRB
cnJheXNOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PEFOR0xFSW5zdGFuY2VkQXJyYXlzKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8QU5HTEVJbnN0YW5jZWRB
cnJheXMqPihleHRlbnNpb24pKTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgcmV0dXJuIGpzTnVsbCgpOwogfQogCi1ib29sIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQorYm9vbCBKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSGFuZGxl
PFVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSoganNXZWJHTFJlbmRlcmluZ0NvbnRleHQgPSBqc0Nh
c3Q8SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkp
OwogICAgIHZvaWQqIHJvb3QgPSBXZWJDb3JlOjpyb290KGpzV2ViR0xSZW5kZXJpbmdDb250ZXh0
LT53cmFwcGVkKCkuY2FudmFzKCkpOwpAQCAtMzA2LDkgKzIxOSw5IEBAIEpTVmFsdWUgSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBdHRhY2hlZFNoYWRlcnMoRXhlY1N0YXRlJiBzdGF0
ZSkKICAgICBWZWN0b3I8UmVmUHRyPFdlYkdMU2hhZGVyPj4gc2hhZGVyczsKICAgICBpZiAoIWNv
bnRleHQuZ2V0QXR0YWNoZWRTaGFkZXJzKHByb2dyYW0sIHNoYWRlcnMpKQogICAgICAgICByZXR1
cm4ganNOdWxsKCk7Ci0gICAgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciBsaXN0OwotICAgIGZv
ciAoc2l6ZV90IGlpID0gMDsgaWkgPCBzaGFkZXJzLnNpemUoKTsgKytpaSkKLSAgICAgICAgbGlz
dC5hcHBlbmQodG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBzaGFkZXJzW2lpXS5nZXQoKSkp
OworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGxpc3Q7CisgICAgZm9yIChhdXRvJiBzaGFkZXIg
OiBzaGFkZXJzKQorICAgICAgICBsaXN0LmFwcGVuZCh0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0
KCksIHNoYWRlci5nZXQoKSkpOwogICAgIHJldHVybiBjb25zdHJ1Y3RBcnJheSgmc3RhdGUsIDAs
IGdsb2JhbE9iamVjdCgpLCBsaXN0KTsKIH0KIApAQCAtMzIwLDE0ICsyMzMsMTQgQEAgSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEV4dGVuc2lvbihFeGVjU3RhdGUmIHN0
YXRlKQogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4g
dGhyb3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3IoJnN0YXRlKSk7CiAgICAgCi0gICAgU3RyaW5nIG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgwKS50b1dURlN0cmluZygmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIEpTVmFsdWUoKSk7Ci0gICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwg
d3JhcHBlZCgpLmdldEV4dGVuc2lvbihuYW1lKSk7CisgICAgYXV0byBuYW1lID0gc3RhdGUudW5j
aGVja2VkQXJndW1lbnQoMCkudG9XVEZTdHJpbmcoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOworICAgIHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFsT2JqZWN0
KCksIHdyYXBwZWQoKS5nZXRFeHRlbnNpb24obmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVyUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUp
CiB7Ci0gICAgcmV0dXJuIGdldE9iamVjdFBhcmFtZXRlcih0aGlzLCBzdGF0ZSwga0J1ZmZlcik7
CisgICAgcmV0dXJuIG9iamVjdFBhcmFtZXRlcigqdGhpcywgc3RhdGUsICZXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRCdWZmZXJQYXJhbWV0ZXIpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEV4
ZWNTdGF0ZSYgc3RhdGUpCkBAIC0zMzgsMTMgKzI1MSwxMyBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEV4ZWNT
dGF0ZQogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgIT0gMykKICAgICAgICAgcmV0dXJu
IHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKCZzdGF0ZSkpOwogICAgIAotICAgIHVuc2lnbmVkIHRhcmdldCA9IHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBKU1ZhbHVlKCkpOwotICAgIHVuc2lnbmVkIGF0dGFjaG1lbnQgPSBzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgSlNWYWx1ZSgpKTsKLSAgICB1bnNpZ25lZCBwbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDIpLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHdy
YXBwZWQoKS5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIodGFyZ2V0LCBhdHRhY2ht
ZW50LCBwbmFtZSkpOworICAgIGF1dG8gdGFyZ2V0ID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MCkudG9JbnQzMigmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
CisgICAgYXV0byBhdHRhY2htZW50ID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQz
Migmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgYXV0
byBwbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpLnRvSW50MzIoJnN0YXRlKTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIHJldHVybiB0b0pTKHN0YXRl
LCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJh
bWV0ZXIodGFyZ2V0LCBhdHRhY2htZW50LCBwbmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC0z
NTUsOSArMjY4LDkgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFBh
cmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkg
IT0gMSkKICAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0
ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwogICAgIAotICAgIHVuc2lnbmVkIHBu
YW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkudG9JbnQzMigmc3RhdGUpOwotICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFBhcmFtZXRlcihwbmFtZSkpOworICAg
IGF1dG8gcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhz
dGF0ZSwgKmdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0UGFyYW1ldGVyKHBuYW1lKSk7CiB9
CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRQcm9ncmFtUGFyYW1l
dGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC0zNjgsMTcgKzI4MSwxNyBAQCBKU1ZhbHVlIEpTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJvZ3JhbVBhcmFtZXRlcihFeGVjU3RhdGUmIHN0
YXRlKQogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgIT0gMikKICAgICAgICAgcmV0dXJu
IHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKCZzdGF0ZSkpOwogICAgIAotICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IEpTV2ViR0xQ
cm9ncmFtOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIGF1dG8q
IHByb2dyYW0gPSBKU1dlYkdMUHJvZ3JhbTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDApKTsKICAgICBpZiAoIXByb2dyYW0gJiYgIXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDAp
LmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3Rh
dGUsIHNjb3BlKTsKLSAgICB1bnNpZ25lZCBwbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDEpLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1Zh
bHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQo
KS5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIHBuYW1lKSk7CisgICAgYXV0byBwbmFtZSA9
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFs
T2JqZWN0KCksIHdyYXBwZWQoKS5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIHBuYW1lKSk7
CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZm
ZXJQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4gZ2V0T2JqZWN0UGFy
YW1ldGVyKHRoaXMsIHN0YXRlLCBrUmVuZGVyYnVmZmVyKTsKKyAgICByZXR1cm4gb2JqZWN0UGFy
YW1ldGVyKCp0aGlzLCBzdGF0ZSwgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRl
cmJ1ZmZlclBhcmFtZXRlcik7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRTaGFkZXJQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKQEAgLTM5Myw4ICszMDYs
OCBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0U2hhZGVyUGFyYW1l
dGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3Rh
dGUsIHNjb3BlKTsKICAgICBXZWJHTFNoYWRlciogc2hhZGVyID0gSlNXZWJHTFNoYWRlcjo6dG9X
cmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICB1bnNpZ25lZCBwbmFtZSA9
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwg
Z2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRTaGFkZXJQYXJhbWV0ZXIoc2hhZGVyLCBwbmFt
ZSkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0dXJuIHRv
SlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFNoYWRlclBhcmFtZXRlcihz
aGFkZXIsIHBuYW1lKSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC00MTAsNyArMzIz
LDcgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFN1cHBvcnRlZEV4
dGVuc2lvbnMoRXhlY1N0YXRlJiBzdGF0ZSkKIAogSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmdldFRleFBhcmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJldHVy
biBnZXRPYmplY3RQYXJhbWV0ZXIodGhpcywgc3RhdGUsIGtUZXh0dXJlKTsKKyAgICByZXR1cm4g
b2JqZWN0UGFyYW1ldGVyKCp0aGlzLCBzdGF0ZSwgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldFRleFBhcmFtZXRlcik7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRVbmlmb3JtKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC00MjcsMzYgKzM0MCwzNSBAQCBK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybShFeGVjU3RhdGUm
IHN0YXRlKQogICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IEpTV2ViR0xVbmlm
b3JtTG9jYXRpb246OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAg
aWYgKCFsb2NhdGlvbiAmJiAhc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkuaXNVbmRlZmluZWRP
ck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwot
ICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRVbmlm
b3JtKHByb2dyYW0sIGxvY2F0aW9uKSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxP
YmplY3QoKSwgd3JhcHBlZCgpLmdldFVuaWZvcm0ocHJvZ3JhbSwgbG9jYXRpb24pKTsKIH0KIAog
SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0dHJpYihFeGVj
U3RhdGUmIHN0YXRlKQogewotICAgIHJldHVybiBnZXRPYmplY3RQYXJhbWV0ZXIodGhpcywgc3Rh
dGUsIGtWZXJ0ZXhBdHRyaWIpOworICAgIHJldHVybiBvYmplY3RQYXJhbWV0ZXIoKnRoaXMsIHN0
YXRlLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VmVydGV4QXR0cmliKTsKIH0KIAot
dGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5PgotYm9vbCB0b1ZlY3Rv
cihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgVmVjdG9yPFQsIGlu
bGluZUNhcGFjaXR5PiYgdmVjdG9yKQordGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4gYm9v
bCB0b051bWJlclZlY3RvcihFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlLCBWZWN0b3JU
eXBlJiB2ZWN0b3IpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBKU0M6OkpTT2JqZWN0KiBvYmplY3Qg
PSBhc09iamVjdCh2YWx1ZSk7Ci0gICAgaW50MzJfdCBsZW5ndGggPSBvYmplY3QtPmdldCgmc3Rh
dGUsIHN0YXRlLnZtKCkucHJvcGVydHlOYW1lcy0+bGVuZ3RoKS50b0ludDMyKCZzdGF0ZSk7Ci0g
ICAgCisKKyAgICBhdXRvJiBvYmplY3QgPSAqYXNPYmplY3QodmFsdWUpOworICAgIGludDMyX3Qg
bGVuZ3RoID0gb2JqZWN0LmdldCgmc3RhdGUsIHN0YXRlLnZtKCkucHJvcGVydHlOYW1lcy0+bGVu
Z3RoKS50b0ludDMyKCZzdGF0ZSk7CisKICAgICBpZiAoIXZlY3Rvci50cnlSZXNlcnZlQ2FwYWNp
dHkobGVuZ3RoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHZlY3Rvci5yZXNpemUobGVu
Z3RoKTsKLSAgICAKKwogICAgIGZvciAoaW50MzJfdCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7
Ci0gICAgICAgIEpTQzo6SlNWYWx1ZSB2ID0gb2JqZWN0LT5nZXQoJnN0YXRlLCBpKTsKKyAgICAg
ICAgYXV0byB2YWx1ZSA9IG9iamVjdC5nZXQoJnN0YXRlLCBpKTsKKyAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOworICAgICAgICB2ZWN0b3IudW5jaGVja2VkQXBwZW5k
KHZhbHVlLnRvTnVtYmVyKCZzdGF0ZSkpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBmYWxzZSk7Ci0gICAgICAgIHZlY3RvcltpXSA9IHN0YXRpY19jYXN0PFQ+KHYudG9OdW1i
ZXIoJnN0YXRlKSk7CiAgICAgfQotICAgIAorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTQ2
OSw3ICszODEsNyBAQCBlbnVtIERhdGFGdW5jdGlvbk1hdHJpeFRvQ2FsbCB7CiAgICAgZl91bmlm
b3JtTWF0cml4MmZ2LCBmX3VuaWZvcm1NYXRyaXgzZnYsIGZfdW5pZm9ybU1hdHJpeDRmdgogfTsK
IAotc3RhdGljIGJvb2wgZnVuY3Rpb25Gb3JVbmlmb3JtKERhdGFGdW5jdGlvblRvQ2FsbCBmKQor
c3RhdGljIGlubGluZSBib29sIGZ1bmN0aW9uRm9yVW5pZm9ybShEYXRhRnVuY3Rpb25Ub0NhbGwg
ZikKIHsKICAgICBzd2l0Y2ggKGYpIHsKICAgICBjYXNlIGZfdW5pZm9ybTF2OgpAQCAtNDc3LDEy
ICszODksMTIgQEAgc3RhdGljIGJvb2wgZnVuY3Rpb25Gb3JVbmlmb3JtKERhdGFGdW5jdGlvblRv
Q2FsbCBmKQogICAgIGNhc2UgZl91bmlmb3JtM3Y6CiAgICAgY2FzZSBmX3VuaWZvcm00djoKICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgZGVmYXVsdDogYnJlYWs7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRp
YyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uZihEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpF
eGVjU3RhdGUmIHN0YXRlLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQorc3Rh
dGljIEpTVmFsdWUgZGF0YUZ1bmN0aW9uZihEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgRXhlY1N0YXRl
JiBzdGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCkKIHsKICAgICBWTSYg
dm0gPSBzdGF0ZS52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTQ5MCwyMiArNDAyLDE5IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9u
ZihEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBXCiAgICAgaWYg
KHN0YXRlLmFyZ3VtZW50Q291bnQoKSAhPSAyKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRp
b24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7
CiAgICAgCi0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gMDsKLSAgICBsb25n
IGluZGV4ID0gLTE7Ci0gICAgCisgICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0g
bnVsbHB0cjsKKyAgICBHTHVpbnQgaW5kZXggPSAtMTsKKwogICAgIGlmIChmdW5jdGlvbkZvclVu
aWZvcm0oZikpIHsKICAgICAgICAgbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0
b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgICAgICBpZiAoIWxvY2F0
aW9uICYmICFzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQog
ICAgICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgIH0g
ZWxzZQorICAgIH0gZWxzZSB7CiAgICAgICAgIGluZGV4ID0gc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMCkudG9JbnQzMigmc3RhdGUpOwotICAgIAotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIEpTVmFsdWUoKSk7Ci0gICAgCi0gICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gd2ViR0xBcnJh
eSA9IHRvVW5zaGFyZWRGbG9hdDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpOwot
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgCi0gICAgaWYg
KHdlYkdMQXJyYXkpIHsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsK
KyAgICB9CisKKyAgICBpZiAoYXV0byB3ZWJHTEFycmF5ID0gdG9VbnNoYXJlZEZsb2F0MzJBcnJh
eShzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSkpIHsKICAgICAgICAgc3dpdGNoIChmKSB7CiAg
ICAgICAgIGNhc2UgZl91bmlmb3JtMXY6CiAgICAgICAgICAgICBjb250ZXh0LnVuaWZvcm0xZnYo
bG9jYXRpb24sICp3ZWJHTEFycmF5KTsKQEAgLTUzMiwxNCArNDQxLDEzIEBAIHN0YXRpYyBKU0M6
OkpTVmFsdWUgZGF0YUZ1bmN0aW9uZihEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3Rh
dGUmIHN0YXRlLCBXCiAgICAgICAgICAgICBjb250ZXh0LnZlcnRleEF0dHJpYjRmdihpbmRleCwg
KndlYkdMQXJyYXkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgCiAg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KLSAgICAKKwogICAgIFZlY3Rvcjxm
bG9hdCwgNjQ+IGFycmF5OwotICAgIGlmICghdG9WZWN0b3Ioc3RhdGUsIHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDEpLCBhcnJheSkpCisgICAgaWYgKCF0b051bWJlclZlY3RvcihzdGF0ZSwgc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMSksIGFycmF5KSkKICAgICAgICAgcmV0dXJuIHRocm93VHlw
ZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgIAorCiAgICAgc3dpdGNoIChmKSB7CiAgICAgY2Fz
ZSBmX3VuaWZvcm0xdjoKICAgICAgICAgY29udGV4dC51bmlmb3JtMWZ2KGxvY2F0aW9uLCBhcnJh
eS5kYXRhKCksIGFycmF5LnNpemUoKSk7CkBAIC01NjYsMjUgKzQ3NCwyMiBAQCBzdGF0aWMgSlND
OjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSwgVwogICAgICAgICBjb250ZXh0LnZlcnRleEF0dHJpYjRmdihpbmRleCwgYXJy
YXkuZGF0YSgpLCBhcnJheS5zaXplKCkpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgCiAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1
bmN0aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQorc3RhdGljIEpTVmFsdWUgZGF0YUZ1bmN0
aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgRXhlY1N0YXRlJiBzdGF0ZSwgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYgY29udGV4dCkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGlmIChzdGF0ZS5h
cmd1bWVudENvdW50KCkgIT0gMikKICAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0
ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotICAgIAot
ICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRp
b246OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisKKyAgICBhdXRvKiBs
b2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFsb2NhdGlvbiAmJiAhc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVy
cm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgIAotICAgIFJlZlB0cjxJbnQzMkFycmF5PiB3ZWJHTEFy
cmF5ID0gdG9VbnNoYXJlZEludDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpOwot
ICAgIAotICAgIGlmICh3ZWJHTEFycmF5KSB7CisKKyAgICBpZiAoYXV0byB3ZWJHTEFycmF5ID0g
dG9VbnNoYXJlZEludDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpKSB7CiAgICAg
ICAgIHN3aXRjaCAoZikgewogICAgICAgICBjYXNlIGZfdW5pZm9ybTF2OgogICAgICAgICAgICAg
Y29udGV4dC51bmlmb3JtMWl2KGxvY2F0aW9uLCAqd2ViR0xBcnJheSk7CkBAIC02MDEsMTUgKzUw
NiwxMyBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9D
YWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgVwogICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwogICAgIH0KLSAgICAKLSAgICAKKwogICAgIFZlY3RvcjxpbnQsIDY0PiBhcnJheTsK
LSAgICBpZiAoIXRvVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSwgYXJy
YXkpKQorICAgIGlmICghdG9OdW1iZXJWZWN0b3Ioc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpLCBhcnJheSkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNj
b3BlKTsKLSAgICAKKwogICAgIHN3aXRjaCAoZikgewogICAgIGNhc2UgZl91bmlmb3JtMXY6CiAg
ICAgICAgIGNvbnRleHQudW5pZm9ybTFpdihsb2NhdGlvbiwgYXJyYXkuZGF0YSgpLCBhcnJheS5z
aXplKCkpOwpAQCAtNjI2LDI4ICs1MjksMjUgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVu
Y3Rpb25pKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAg
ICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgCiAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uTWF0cml4KERh
dGFGdW5jdGlvbk1hdHJpeFRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCitzdGF0aWMgSlNWYWx1ZSBkYXRhRnVuY3Rpb25N
YXRyaXgoRGF0YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYsIEV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBpZiAo
c3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDMpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlv
bigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsK
LSAgICAKLSAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9y
bUxvY2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworCisgICAg
YXV0byogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUu
dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghbG9jYXRpb24gJiYgIXN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJv
d1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICAKKwogICAgIGJvb2wgdHJhbnNwb3NlID0g
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9Cb29sZWFuKCZzdGF0ZSk7Ci0gICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICAKLSAgICBSZWZQdHI8RmxvYXQz
MkFycmF5PiB3ZWJHTEFycmF5ID0gdG9VbnNoYXJlZEZsb2F0MzJBcnJheShzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgyKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAot
ICAgIGlmICh3ZWJHTEFycmF5KSB7CisgICAgaWYgKGF1dG8gd2ViR0xBcnJheSA9IHRvVW5zaGFy
ZWRGbG9hdDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpKSB7CiAgICAgICAgIHN3
aXRjaCAoZikgewogICAgICAgICBjYXNlIGZfdW5pZm9ybU1hdHJpeDJmdjoKICAgICAgICAgICAg
IGNvbnRleHQudW5pZm9ybU1hdHJpeDJmdihsb2NhdGlvbiwgdHJhbnNwb3NlLCAqd2ViR0xBcnJh
eSk7CkBAIC02NTksMTQgKzU1OSwxMyBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlv
bk1hdHJpeChEYXRhRnVuY3Rpb25NYXRyaXhUb0NhbGwgZiwgSlNDOjpFeGVjU3RhdAogICAgICAg
ICAgICAgY29udGV4dC51bmlmb3JtTWF0cml4NGZ2KGxvY2F0aW9uLCB0cmFuc3Bvc2UsICp3ZWJH
TEFycmF5KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0KICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CiAgICAgfQotICAgIAorCiAgICAgVmVjdG9yPGZsb2F0LCA2ND4gYXJy
YXk7Ci0gICAgaWYgKCF0b1ZlY3RvcihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMiks
IGFycmF5KSkKKyAgICBpZiAoIXRvTnVtYmVyVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgyKSwgYXJyYXkpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRl
LCBzY29wZSk7Ci0gICAgCisKICAgICBzd2l0Y2ggKGYpIHsKICAgICBjYXNlIGZfdW5pZm9ybU1h
dHJpeDJmdjoKICAgICAgICAgY29udGV4dC51bmlmb3JtTWF0cml4MmZ2KGxvY2F0aW9uLCB0cmFu
c3Bvc2UsIGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsKQEAgLTY3OCw4MSArNTc3LDgwIEBA
IHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uTWF0cml4KERhdGFGdW5jdGlvbk1hdHJp
eFRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0CiAgICAgICAgIGNvbnRleHQudW5pZm9ybU1hdHJpeDRm
dihsb2NhdGlvbiwgdHJhbnNwb3NlLCBhcnJheS5kYXRhKCksIGFycmF5LnNpemUoKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KLQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1KU0M6
OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtMWZ2KEpTQzo6RXhl
Y1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlm
b3JtMWZ2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmYoZl91
bmlmb3JtMXYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtMWl2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pT
VmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtMWl2KEV4ZWNTdGF0ZSYg
c3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmkoZl91bmlmb3JtMXYsIHN0YXRlLCB3
cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Ojp1bmlmb3JtMmZ2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtMmZ2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0
dXJuIGRhdGFGdW5jdGlvbmYoZl91bmlmb3JtMnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1K
U0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtMml2KEpTQzo6
RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1
bmlmb3JtMml2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmko
Zl91bmlmb3JtMnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtM2Z2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkK
K0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtM2Z2KEV4ZWNTdGF0
ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmYoZl91bmlmb3JtM3YsIHN0YXRl
LCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjp1bmlmb3JtM2l2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtM2l2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAg
cmV0dXJuIGRhdGFGdW5jdGlvbmkoZl91bmlmb3JtM3YsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQog
Ci1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtNGZ2KEpT
Qzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Ojp1bmlmb3JtNGZ2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlv
bmYoZl91bmlmb3JtNHYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtNGl2KEpTQzo6RXhlY1N0YXRlJiBzdGF0
ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtNGl2KEV4ZWNT
dGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmkoZl91bmlmb3JtNHYsIHN0
YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjp1bmlmb3JtTWF0cml4MmZ2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUg
SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtTWF0cml4MmZ2KEV4ZWNTdGF0ZSYg
c3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbk1hdHJpeChmX3VuaWZvcm1NYXRyaXgy
ZnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjp1bmlmb3JtTWF0cml4M2Z2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pT
VmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtTWF0cml4M2Z2KEV4ZWNT
dGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbk1hdHJpeChmX3VuaWZvcm1N
YXRyaXgzZnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtTWF0cml4NGZ2KEpTQzo6RXhlY1N0YXRlJiBzdGF0
ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtTWF0cml4NGZ2
KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbk1hdHJpeChmX3Vu
aWZvcm1NYXRyaXg0ZnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWIxZnYoSlNDOjpFeGVjU3RhdGUm
IHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJp
YjFmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdmVy
dGV4QXR0cmliMXYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWIyZnYoSlNDOjpFeGVjU3RhdGUmIHN0
YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJpYjJm
dihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdmVydGV4
QXR0cmliMnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWIzZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRl
KQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJpYjNmdihF
eGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdmVydGV4QXR0
cmliM3YsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWI0ZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQor
SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJpYjRmdihFeGVj
U3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdmVydGV4QXR0cmli
NHYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKaW5kZXggOWZhMjk0MDc4YmJhY2EzZGMyNzYxMDcw
YTQ4YjI4YjViNzJjYzY0ZC4uNDBlNjcyNWQ1MzI1YjljZTIzZmZkZmJjY2Q0YzVmZGVhMGE2ZTBl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2Fk
ZXIuY3BwCkBAIC0xMzUsNiArMTM1LDEwIEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlw
dE1vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhCiAKIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0ds
b2JhbE9iamVjdCoganNHbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpT
TW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlLCBKU0M6OkpTVmFsdWUg
aW5pdGlhdG9yKQogeworICAgIC8vIEZJWE1FOiBXaGF0IGd1YXJhbnRlZXMgdGhlc2UgYXJlIHRy
dWU/IFdoeSBkb24ndCB3ZSBuZWVkIHRvIGNoZWNrPworICAgIEFTU0VSVChKU0M6OmpzRHluYW1p
Y0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKSk7CisgICAgQVNTRVJUKGlzU2NyaXB0RWxlbWVu
dChKU0M6OmpzRHluYW1pY0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKS0+d3JhcHBlZCgpKSk7
CisKICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihqc0dsb2JhbE9iamVjdCk7CiAgICAgYXV0byYganNQcm9taXNlID0gKkpTQzo6SlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsICZnbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gZGVmZXJyZWQgPSBEZWZlcnJlZFByb21pc2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGpzUHJv
bWlzZSk7CkBAIC0xNTYsMTcgKzE2MCwxMiBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3Jp
cHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogICAg
ICAgICByZXR1cm4ganNQcm9taXNlLnByb21pc2UoKTsKICAgICB9CiAKLSAgICBBU1NFUlRfV0lU
SF9NRVNTQUdFKEpTQzo6anNEeW5hbWljQ2FzdDxKU0VsZW1lbnQqPihpbml0aWF0b3IpLCAiSW5p
dGlhdG9yIHNob3VsZCBiZSBhbiBKU0VsZW1lbnQiKTsKLSAgICBhdXRvKiBzY3JpcHRFbGVtZW50
ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmSlNDOjpqc0Nhc3Q8SlNFbGVtZW50Kj4oaW5p
dGlhdG9yKS0+d3JhcHBlZCgpKTsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKHNjcmlwdEVsZW1l
bnQsICJJbml0aWF0b3Igc2hvdWxkIGJlIFNjcmlwdEVsZW1lbnQuIik7Ci0KICAgICBpZiAoYXV0
byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgYXV0byBsb2FkZXIgPSBD
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJyZWQuZ2V0KCkpOwog
ICAgICAgICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOwotICAgICAgICBpZiAoIWxv
YWRlci0+bG9hZCgqc2NyaXB0RWxlbWVudCwgY29tcGxldGVkVVJMKSkgeworICAgICAgICBpZiAo
IWxvYWRlci0+bG9hZChkb3duY2FzdFNjcmlwdEVsZW1lbnQoSlNDOjpqc0Nhc3Q8SlNFbGVtZW50
Kj4oaW5pdGlhdG9yKS0+d3JhcHBlZCgpKSwgY29tcGxldGVkVVJMKSkgewogICAgICAgICAgICAg
bG9hZGVyLT5jbGVhckNsaWVudCgpOwogICAgICAgICAgICAgbV9sb2FkZXJzLnJlbW92ZShXVEZN
b3ZlKGxvYWRlcikpOwotCiAgICAgICAgICAgICBkZWZlcnJlZC0+cmVqZWN0KGZyYW1lLT5zY3Jp
cHQoKS5tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpKTsKICAgICAgICAg
ICAgIHJldHVybiBqc1Byb21pc2UucHJvbWlzZSgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IDRjNDNiZGQxZDdlNDgyNzYzOWVhYTNmNDU3YTg1NGE1NzI1NmUwYTAuLjcwNThj
YWI3OTYyZmQzMmY2NjJlOThmYzc2MGIwZjc3MGZkNTRjMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CkBAIC05OSw4ICs5OSw4IEBAIGNsYXNzIERvY3VtZW50UGFyc2VyOwogY2xhc3MgRG9jdW1lbnRT
aGFyZWRPYmplY3RQb29sOwogY2xhc3MgRG9jdW1lbnRUeXBlOwogY2xhc3MgRXh0ZW5zaW9uU3R5
bGVTaGVldHM7Ci1jbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBGbG9hdFF1YWQ7CitjbGFzcyBGbG9h
dFJlY3Q7CiBjbGFzcyBGb3JtQ29udHJvbGxlcjsKIGNsYXNzIEZyYW1lOwogY2xhc3MgRnJhbWVW
aWV3OwpAQCAtMTIxLDExICsxMjEsMTAgQEAgY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQ7CiBjbGFz
cyBIaXRUZXN0UmVxdWVzdDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBJbnRQb2ludDsK
K2NsYXNzIEpTTm9kZTsKIGNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGF5b3V0UmVjdDsKIGNs
YXNzIExpdmVOb2RlTGlzdDsKLWNsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKLWNsYXNzIEpTTm9k
ZTsKIGNsYXNzIExvY2FsZTsKIGNsYXNzIExvY2F0aW9uOwogY2xhc3MgTWVkaWFDYW5TdGFydExp
c3RlbmVyOwpAQCAtMTMzLDcgKzEzMiw2IEBAIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CiBj
bGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50OwogY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiBj
bGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlcjsKLWNsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKIGNsYXNz
IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHM7CiBjbGFzcyBOYW1lZEZsb3dDb2xsZWN0aW9u
OwogY2xhc3MgTm9kZUZpbHRlcjsKQEAgLTE0MywyMyArMTQxLDI0IEBAIGNsYXNzIFBsYXRmb3Jt
TW91c2VFdmVudDsKIGNsYXNzIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjsKIGNsYXNzIFF1YWxpZmll
ZE5hbWU7CiBjbGFzcyBSYW5nZTsKLWNsYXNzIFJlbmRlclZpZXc7CiBjbGFzcyBSZW5kZXJGdWxs
U2NyZWVuOwotY2xhc3MgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyOworY2xhc3MgUmVuZGVyVmll
dzsKK2NsYXNzIFNWR0RvY3VtZW50RXh0ZW5zaW9uczsKK2NsYXNzIFNWR1NWR0VsZW1lbnQ7CiBj
bGFzcyBTY3JpcHRFbGVtZW50RGF0YTsKK2NsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKIGNsYXNz
IFNjcmlwdFJ1bm5lcjsKK2NsYXNzIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlcjsKIGNsYXNzIFNl
Y3VyaXR5T3JpZ2luOworY2xhc3MgU2VnbWVudGVkU3RyaW5nOwogY2xhc3MgU2VsZWN0b3JRdWVy
eTsKIGNsYXNzIFNlbGVjdG9yUXVlcnlDYWNoZTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTsKLWNsYXNzIFNlZ21lbnRlZFN0cmluZzsKIGNsYXNzIFNldHRpbmdzOwogY2xhc3MgU3R5bGVS
ZXNvbHZlcjsKIGNsYXNzIFN0eWxlU2hlZXQ7CiBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiBj
bGFzcyBTdHlsZVNoZWV0TGlzdDsKLWNsYXNzIFNWR0RvY3VtZW50RXh0ZW5zaW9uczsKLWNsYXNz
IFNWR1NWR0VsZW1lbnQ7CiBjbGFzcyBUZXh0OwogY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsK
IGNsYXNzIFRyZWVXYWxrZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGlu
Z1NjcmlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5jcHAKaW5kZXgg
MmJlMGUyZWI5MDMyZGQzODlhYjU3NGQ0ODA4NjA0ZjJlNmJmYjU0OS4uMTgzOGM0ZjVkMjBkYzNm
NjUyNmI4YTcyNjIzMjI4MmNkNDllYTE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1BlbmRpbmdTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0
LmNwcApAQCAtMjYsMzAgKzI2LDMwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
UGVuZGluZ1NjcmlwdC5oIgogCi0jaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIlBlbmRp
bmdTY3JpcHRDbGllbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotUmVmPFBlbmRpbmdTY3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShF
bGVtZW50JiBlbGVtZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQpCitSZWY8UGVu
ZGluZ1NjcmlwdD4gUGVuZGluZ1NjcmlwdDo6Y3JlYXRlKFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQs
IExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlwdCkKIHsKLSAgICBSZWY8UGVuZGluZ1Njcmlw
dD4gcGVuZGluZ1NjcmlwdCA9IGFkb3B0UmVmKCpuZXcgUGVuZGluZ1NjcmlwdChlbGVtZW50LCBs
b2FkYWJsZVNjcmlwdCkpOworICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IGFkb3B0UmVmKCpuZXcg
UGVuZGluZ1NjcmlwdChlbGVtZW50LCBsb2FkYWJsZVNjcmlwdCkpOwogICAgIGxvYWRhYmxlU2Ny
aXB0LmFkZENsaWVudChwZW5kaW5nU2NyaXB0LmdldCgpKTsKICAgICByZXR1cm4gcGVuZGluZ1Nj
cmlwdDsKIH0KIAotUmVmPFBlbmRpbmdTY3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShFbGVt
ZW50JiBlbGVtZW50LCBUZXh0UG9zaXRpb24gc2NyaXB0U3RhcnRQb3NpdGlvbikKK1JlZjxQZW5k
aW5nU2NyaXB0PiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoU2NyaXB0RWxlbWVudCYgZWxlbWVudCwg
VGV4dFBvc2l0aW9uIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUGVuZGluZ1NjcmlwdChlbGVtZW50LCBzY3JpcHRTdGFydFBvc2l0aW9uKSk7CiB9CiAK
LVBlbmRpbmdTY3JpcHQ6OlBlbmRpbmdTY3JpcHQoRWxlbWVudCYgZWxlbWVudCwgVGV4dFBvc2l0
aW9uIHN0YXJ0aW5nUG9zaXRpb24pCitQZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KFNjcmlw
dEVsZW1lbnQmIGVsZW1lbnQsIFRleHRQb3NpdGlvbiBzdGFydGluZ1Bvc2l0aW9uKQogICAgIDog
bV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX3N0YXJ0aW5nUG9zaXRpb24oc3RhcnRpbmdQb3Np
dGlvbikKIHsKIH0KIAotUGVuZGluZ1NjcmlwdDo6UGVuZGluZ1NjcmlwdChFbGVtZW50JiBlbGVt
ZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQpCitQZW5kaW5nU2NyaXB0OjpQZW5k
aW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJs
ZVNjcmlwdCkKICAgICA6IG1fZWxlbWVudChlbGVtZW50KQogICAgICwgbV9sb2FkYWJsZVNjcmlw
dCgmbG9hZGFibGVTY3JpcHQpCiB7CkBAIC02MSwxMSArNjEsNiBAQCBQZW5kaW5nU2NyaXB0Ojp+
UGVuZGluZ1NjcmlwdCgpCiAgICAgICAgIG1fbG9hZGFibGVTY3JpcHQtPnJlbW92ZUNsaWVudCgq
dGhpcyk7CiB9CiAKLUxvYWRhYmxlU2NyaXB0KiBQZW5kaW5nU2NyaXB0Ojpsb2FkYWJsZVNjcmlw
dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbG9hZGFibGVTY3JpcHQuZ2V0KCk7Ci19Ci0KIHZv
aWQgUGVuZGluZ1NjcmlwdDo6bm90aWZ5Q2xpZW50RmluaXNoZWQoKQogewogICAgIFJlZjxQZW5k
aW5nU2NyaXB0PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKQEAgLTg4LDEwICs4MywxMCBAQCBib29s
IFBlbmRpbmdTY3JpcHQ6OmVycm9yKCkgY29uc3QKICAgICByZXR1cm4gbV9sb2FkYWJsZVNjcmlw
dCAmJiBtX2xvYWRhYmxlU2NyaXB0LT5lcnJvcigpOwogfQogCi12b2lkIFBlbmRpbmdTY3JpcHQ6
OnNldENsaWVudChQZW5kaW5nU2NyaXB0Q2xpZW50KiBjbGllbnQpCit2b2lkIFBlbmRpbmdTY3Jp
cHQ6OnNldENsaWVudChQZW5kaW5nU2NyaXB0Q2xpZW50JiBjbGllbnQpCiB7CiAgICAgQVNTRVJU
KCFtX2NsaWVudCk7Ci0gICAgbV9jbGllbnQgPSBjbGllbnQ7CisgICAgbV9jbGllbnQgPSAmY2xp
ZW50OwogICAgIGlmIChpc0xvYWRlZCgpKQogICAgICAgICBub3RpZnlDbGllbnRGaW5pc2hlZCgp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKaW5kZXggOTkwZjI1MDgzYjAxYjAyN2M0
YWMwMTQxN2Y4ZjQ5MTZhOWU4ZTY2Ni4uZmM3NThkMDdkZDYwZGVjMzE4YmI4OGRhZDA3ODdmODQ4
ODJmODIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5oCkBAIC0zNCwxNSArMzQsMTUg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkU2NyaXB0OwotY2xhc3MgRWxl
bWVudDsKIGNsYXNzIFBlbmRpbmdTY3JpcHRDbGllbnQ7CitjbGFzcyBTY3JpcHRFbGVtZW50Owog
CiAvLyBBIGNvbnRhaW5lciBmb3Igc2NyaXB0cyB3aGljaCBtYXkgYmUgbG9hZGVkIGFuZCBleGVj
dXRlZC4KIC8vIFRoaXMgY2FuIGhvbGQgTG9hZGFibGVTY3JpcHQgYW5kIG5vbiBleHRlcm5hbCBp
bmxpbmUgc2NyaXB0LgogY2xhc3MgUGVuZGluZ1NjcmlwdCBmaW5hbCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFBlbmRpbmdTY3JpcHQ+LCBwdWJsaWMgTG9hZGFibGVTY3JpcHRDbGllbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8UGVuZGluZ1NjcmlwdD4gY3JlYXRlKEVsZW1lbnQmLCBMb2FkYWJs
ZVNjcmlwdCYpOwotICAgIHN0YXRpYyBSZWY8UGVuZGluZ1NjcmlwdD4gY3JlYXRlKEVsZW1lbnQm
LCBUZXh0UG9zaXRpb24gc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgc3RhdGljIFJlZjxQZW5k
aW5nU2NyaXB0PiBjcmVhdGUoU2NyaXB0RWxlbWVudCYsIExvYWRhYmxlU2NyaXB0Jik7CisgICAg
c3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0PiBjcmVhdGUoU2NyaXB0RWxlbWVudCYsIFRleHRQb3Np
dGlvbiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKIAogICAgIHZpcnR1YWwgflBlbmRpbmdTY3JpcHQo
KTsKIApAQCAtNTEsOCArNTEsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIHdhdGNoaW5nRm9yTG9h
ZCgpIGNvbnN0IHsgcmV0dXJuIG5lZWRzTG9hZGluZygpICYmIG1fY2xpZW50OyB9CiAKLSAgICBF
bGVtZW50JiBlbGVtZW50KCkgeyByZXR1cm4gbV9lbGVtZW50LmdldCgpOyB9Ci0gICAgY29uc3Qg
RWxlbWVudCYgZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudC5nZXQoKTsgfQorICAg
IFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0KKyAg
ICBjb25zdCBTY3JpcHRFbGVtZW50JiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50
LmdldCgpOyB9CiAKICAgICBMb2FkYWJsZVNjcmlwdCogbG9hZGFibGVTY3JpcHQoKSBjb25zdDsK
ICAgICBib29sIG5lZWRzTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuIGxvYWRhYmxlU2NyaXB0KCk7
IH0KQEAgLTYyLDE5ICs2MiwyNCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVk
KExvYWRhYmxlU2NyaXB0Jikgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNldENsaWVudChQZW5kaW5n
U2NyaXB0Q2xpZW50Kik7CisgICAgdm9pZCBzZXRDbGllbnQoUGVuZGluZ1NjcmlwdENsaWVudCYp
OwogICAgIHZvaWQgY2xlYXJDbGllbnQoKTsKIAogcHJpdmF0ZToKLSAgICBQZW5kaW5nU2NyaXB0
KEVsZW1lbnQmLCBMb2FkYWJsZVNjcmlwdCYpOwotICAgIFBlbmRpbmdTY3JpcHQoRWxlbWVudCYs
IFRleHRQb3NpdGlvbiBzdGFydGluZ1Bvc2l0aW9uKTsKKyAgICBQZW5kaW5nU2NyaXB0KFNjcmlw
dEVsZW1lbnQmLCBMb2FkYWJsZVNjcmlwdCYpOworICAgIFBlbmRpbmdTY3JpcHQoU2NyaXB0RWxl
bWVudCYsIFRleHRQb3NpdGlvbiBzdGFydGluZ1Bvc2l0aW9uKTsKIAogICAgIHZvaWQgbm90aWZ5
Q2xpZW50RmluaXNoZWQoKTsKIAotICAgIFJlZjxFbGVtZW50PiBtX2VsZW1lbnQ7CisgICAgUmVm
PFNjcmlwdEVsZW1lbnQ+IG1fZWxlbWVudDsKICAgICBUZXh0UG9zaXRpb24gbV9zdGFydGluZ1Bv
c2l0aW9uOyAvLyBPbmx5IHVzZWQgZm9yIGlubGluZSBzY3JpcHQgdGFncy4KICAgICBSZWZQdHI8
TG9hZGFibGVTY3JpcHQ+IG1fbG9hZGFibGVTY3JpcHQ7CiAgICAgUGVuZGluZ1NjcmlwdENsaWVu
dCogbV9jbGllbnQgeyBudWxscHRyIH07CiB9OwogCitpbmxpbmUgTG9hZGFibGVTY3JpcHQqIFBl
bmRpbmdTY3JpcHQ6OmxvYWRhYmxlU2NyaXB0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9sb2Fk
YWJsZVNjcmlwdC5nZXQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3Bw
CmluZGV4IDYxZjI0ODJmNTg3MWQ4YWQwYjc1MjZmNmY0NDViY2RiNzc0ZmM0OGYuLmQ4NDZjNTE4
OGMxNWY2NjAyMWYzZThlNGJlZTZjY2Q2MjRkMzNlMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAKQEAgLTI2MywxMSArMjYzLDExIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJl
cGFyZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2Fj
CiAgICAgfSBlbHNlIGlmICgoaXNDbGFzc2ljRXh0ZXJuYWxTY3JpcHQgfHwgc2NyaXB0VHlwZSA9
PSBTY3JpcHRUeXBlOjpNb2R1bGUpICYmICFhc3luY0F0dHJpYnV0ZVZhbHVlKCkgJiYgIW1fZm9y
Y2VBc3luYykgewogICAgICAgICBtX3dpbGxFeGVjdXRlSW5PcmRlciA9IHRydWU7CiAgICAgICAg
IEFTU0VSVChtX2xvYWRhYmxlU2NyaXB0KTsKLSAgICAgICAgZG9jdW1lbnQuc2NyaXB0UnVubmVy
KCktPnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKHRoaXMsICptX2xvYWRhYmxlU2NyaXB0LCBTY3Jp
cHRSdW5uZXI6OklOX09SREVSX0VYRUNVVElPTik7CisgICAgICAgIGRvY3VtZW50LnNjcmlwdFJ1
bm5lcigpLT5xdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbigqdGhpcywgKm1fbG9hZGFibGVTY3JpcHQs
IFNjcmlwdFJ1bm5lcjo6SU5fT1JERVJfRVhFQ1VUSU9OKTsKICAgICB9IGVsc2UgaWYgKGhhc1Nv
dXJjZUF0dHJpYnV0ZSgpIHx8IHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6TW9kdWxlKSB7CiAg
ICAgICAgIEFTU0VSVChtX2xvYWRhYmxlU2NyaXB0KTsKICAgICAgICAgQVNTRVJUKGFzeW5jQXR0
cmlidXRlVmFsdWUoKSB8fCBtX2ZvcmNlQXN5bmMpOwotICAgICAgICBkb2N1bWVudC5zY3JpcHRS
dW5uZXIoKS0+cXVldWVTY3JpcHRGb3JFeGVjdXRpb24odGhpcywgKm1fbG9hZGFibGVTY3JpcHQs
IFNjcmlwdFJ1bm5lcjo6QVNZTkNfRVhFQ1VUSU9OKTsKKyAgICAgICAgZG9jdW1lbnQuc2NyaXB0
UnVubmVyKCktPnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKCp0aGlzLCAqbV9sb2FkYWJsZVNjcmlw
dCwgU2NyaXB0UnVubmVyOjpBU1lOQ19FWEVDVVRJT04pOwogICAgIH0gZWxzZSBpZiAoIWhhc1Nv
dXJjZUF0dHJpYnV0ZSgpICYmIG1fcGFyc2VySW5zZXJ0ZWQgJiYgIWRvY3VtZW50LmhhdmVTdHls
ZXNoZWV0c0xvYWRlZCgpKSB7CiAgICAgICAgIEFTU0VSVChzY3JpcHRUeXBlID09IFNjcmlwdFR5
cGU6OkNsYXNzaWMpOwogICAgICAgICBtX3dpbGxCZVBhcnNlckV4ZWN1dGVkID0gdHJ1ZTsKQEAg
LTQ4NywxNSArNDg3LDI2IEBAIFN0cmluZyBTY3JpcHRFbGVtZW50OjpzY3JpcHRDb250ZW50KCkg
Y29uc3QKICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CiB9CiAKLVNjcmlwdEVsZW1lbnQq
IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgU2NyaXB0
RWxlbWVudDo6cmVmKCkKIHsKLSAgICBpZiAoaXM8SFRNTFNjcmlwdEVsZW1lbnQ+KCplbGVtZW50
KSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PEhUTUxTY3JpcHRFbGVtZW50PihlbGVtZW50KTsK
KyAgICBtX2VsZW1lbnQucmVmKCk7Cit9CiAKLSAgICBpZiAoaXM8U1ZHU2NyaXB0RWxlbWVudD4o
KmVsZW1lbnQpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8U1ZHU2NyaXB0RWxlbWVudD4oZWxl
bWVudCk7Cit2b2lkIFNjcmlwdEVsZW1lbnQ6OmRlcmVmKCkKK3sKKyAgICBtX2VsZW1lbnQuZGVy
ZWYoKTsKK30KIAotICAgIHJldHVybiBudWxscHRyOworYm9vbCBpc1NjcmlwdEVsZW1lbnQoRWxl
bWVudCYgZWxlbWVudCkKK3sKKyAgICByZXR1cm4gaXM8SFRNTFNjcmlwdEVsZW1lbnQ+KGVsZW1l
bnQpIHx8IGlzPFNWR1NjcmlwdEVsZW1lbnQ+KGVsZW1lbnQpOworfQorCitTY3JpcHRFbGVtZW50
JiBkb3duY2FzdFNjcmlwdEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAoaXM8
SFRNTFNjcmlwdEVsZW1lbnQ+KGVsZW1lbnQpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRN
TFNjcmlwdEVsZW1lbnQ+KGVsZW1lbnQpOworICAgIHJldHVybiBkb3duY2FzdDxTVkdTY3JpcHRF
bGVtZW50PihlbGVtZW50KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKaW5k
ZXggNDA3OWMxNzA5MzIxNzg0MDg3ZTllM2Y3MzIzNDZjNTU4MDBmN2IxNC4uYzA3MTA2M2VkNjJk
OThmYmQwZWZjYjc1OWMyMGJlMDQ1NWQyNWUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVu
dC5oCkBAIC0zMSwxMyArMzEsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBD
YWNoZWRNb2R1bGVTY3JpcHQ7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBDb250YWluZXJO
b2RlOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIFBlbmRpbmdTY3JpcHQ7Ci1jbGFzcyBTY3JpcHRF
bGVtZW50OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKLWNsYXNzIENhY2hlZE1vZHVsZVNjcmlw
dDsKIAogY2xhc3MgU2NyaXB0RWxlbWVudCB7CiBwdWJsaWM6CkBAIC03Myw2ICs3Miw5IEBAIHB1
YmxpYzoKICAgICBlbnVtIGNsYXNzIFNjcmlwdFR5cGUgeyBDbGFzc2ljLCBNb2R1bGUgfTsKICAg
ICBTY3JpcHRUeXBlIHNjcmlwdFR5cGUoKSBjb25zdCB7IHJldHVybiBtX2lzTW9kdWxlU2NyaXB0
ID8gU2NyaXB0VHlwZTo6TW9kdWxlIDogU2NyaXB0VHlwZTo6Q2xhc3NpYzsgfQogCisgICAgdm9p
ZCByZWYoKTsKKyAgICB2b2lkIGRlcmVmKCk7CisKIHByb3RlY3RlZDoKICAgICBTY3JpcHRFbGVt
ZW50KEVsZW1lbnQmLCBib29sIGNyZWF0ZWRCeVBhcnNlciwgYm9vbCBpc0V2YWx1YXRlZCk7CiAK
QEAgLTEyNyw3ICsxMjksOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxMb2FkYWJsZVNjcmlwdD4g
bV9sb2FkYWJsZVNjcmlwdDsKIH07CiAKLS8vIEZJWE1FOiByZXBsYWNlIHdpdGggZG93bmNhc3Q8
U2NyaXB0RWxlbWVudD4uCi1TY3JpcHRFbGVtZW50KiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxl
KEVsZW1lbnQqKTsKKy8vIEZJWE1FOiByZXBsYWNlIHdpdGggaXMvZG93bmNhc3Q8U2NyaXB0RWxl
bWVudD4uCitib29sIGlzU2NyaXB0RWxlbWVudChFbGVtZW50Jik7CitTY3JpcHRFbGVtZW50JiBk
b3duY2FzdFNjcmlwdEVsZW1lbnQoRWxlbWVudCYpOwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRS
dW5uZXIuY3BwCmluZGV4IDcwOTg5ZWI0MGMwNDVhZGU3NzRhZTU3ZDA5YTQwNDhiNTllMzg4MDQu
LjBlN2VmZDZjMjllMWJhOTU1ZjcxZmQ0OWM3OTllZTU4YTkxYzQwZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRSdW5uZXIuY3BwCkBAIC01NiwyNiArNTYsMjIgQEAgU2NyaXB0UnVubmVyOjp+U2Ny
aXB0UnVubmVyKCkKICAgICB9CiB9CiAKLXZvaWQgU2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZv
ckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBMb2FkYWJsZVNjcmlwdCYg
bG9hZGFibGVTY3JpcHQsIEV4ZWN1dGlvblR5cGUgZXhlY3V0aW9uVHlwZSkKK3ZvaWQgU2NyaXB0
UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVt
ZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQsIEV4ZWN1dGlvblR5cGUgZXhlY3V0
aW9uVHlwZSkKIHsKLSAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7Ci0KLSAgICBFbGVtZW50JiBl
bGVtZW50ID0gc2NyaXB0RWxlbWVudC0+ZWxlbWVudCgpOwotICAgIEFTU0VSVChlbGVtZW50Lmlu
RG9jdW1lbnQoKSk7CisgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQuZWxlbWVudCgpLmluRG9jdW1l
bnQoKSk7CiAKICAgICBtX2RvY3VtZW50LmluY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsK
IAotICAgIFJlZjxQZW5kaW5nU2NyaXB0PiBwZW5kaW5nU2NyaXB0ID0gUGVuZGluZ1NjcmlwdDo6
Y3JlYXRlKGVsZW1lbnQsIGxvYWRhYmxlU2NyaXB0KTsKKyAgICBhdXRvIHBlbmRpbmdTY3JpcHQg
PSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxlbWVudCwgbG9hZGFibGVTY3JpcHQpOwog
ICAgIHN3aXRjaCAoZXhlY3V0aW9uVHlwZSkgewogICAgIGNhc2UgQVNZTkNfRVhFQ1VUSU9OOgog
ICAgICAgICBtX3BlbmRpbmdBc3luY1NjcmlwdHMuYWRkKHBlbmRpbmdTY3JpcHQuY29weVJlZigp
KTsKICAgICAgICAgYnJlYWs7Ci0KICAgICBjYXNlIElOX09SREVSX0VYRUNVVElPTjoKICAgICAg
ICAgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5hcHBlbmQocGVuZGluZ1NjcmlwdC5jb3B5UmVm
KCkpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgcGVuZGluZ1NjcmlwdC0+c2V0Q2xpZW50
KHRoaXMpOworICAgIHBlbmRpbmdTY3JpcHQtPnNldENsaWVudCgqdGhpcyk7CiB9CiAKIHZvaWQg
U2NyaXB0UnVubmVyOjpzdXNwZW5kKCkKQEAgLTkxLDkgKzg3LDcgQEAgdm9pZCBTY3JpcHRSdW5u
ZXI6OnJlc3VtZSgpCiAKIHZvaWQgU2NyaXB0UnVubmVyOjpub3RpZnlGaW5pc2hlZChQZW5kaW5n
U2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogewotICAgIGF1dG8qIHNjcmlwdEVsZW1lbnQgPSB0b1Nj
cmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKSk7Ci0gICAgQVNT
RVJUKHNjcmlwdEVsZW1lbnQpOwotICAgIGlmIChzY3JpcHRFbGVtZW50LT53aWxsRXhlY3V0ZUlu
T3JkZXIoKSkKKyAgICBpZiAocGVuZGluZ1NjcmlwdC5lbGVtZW50KCkud2lsbEV4ZWN1dGVJbk9y
ZGVyKCkpCiAgICAgICAgIEFTU0VSVCghbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5pc0VtcHR5
KCkpOwogICAgIGVsc2UgewogICAgICAgICBBU1NFUlQobV9wZW5kaW5nQXN5bmNTY3JpcHRzLmNv
bnRhaW5zKHBlbmRpbmdTY3JpcHQpKTsKQEAgLTEyMiwxMCArMTE2LDggQEAgdm9pZCBTY3JpcHRS
dW5uZXI6OnRpbWVyRmlyZWQoKQogICAgICAgICAvLyBQYXBlciBvdmVyIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQwNTAKICAgICAgICAgaWYgKCFzY3JpcHQpCiAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgYXV0byogc2NyaXB0RWxlbWVudCA9IHRvU2Ny
aXB0RWxlbWVudElmUG9zc2libGUoJnNjcmlwdC0+ZWxlbWVudCgpKTsKLSAgICAgICAgQVNTRVJU
KHNjcmlwdEVsZW1lbnQpOwogICAgICAgICBBU1NFUlQoc2NyaXB0LT5uZWVkc0xvYWRpbmcoKSk7
Ci0gICAgICAgIHNjcmlwdEVsZW1lbnQtPmV4ZWN1dGVQZW5kaW5nU2NyaXB0KCpzY3JpcHQpOwor
ICAgICAgICBzY3JpcHQtPmVsZW1lbnQoKS5leGVjdXRlUGVuZGluZ1NjcmlwdCgqc2NyaXB0KTsK
ICAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAgICAg
fQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCmluZGV4IGRmY2YzYzVmYTkwZTRhNDUwOTQw
NDJkODc3ZGUzYmNlNDQ4MDBkOWEuLjJiOWU2Mjg1MGJkZDM1ZWE3MzRjN2I4ZmZmZWQ3OWJlYzEx
N2RiZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVi
bGljOgogICAgIH5TY3JpcHRSdW5uZXIoKTsKIAogICAgIGVudW0gRXhlY3V0aW9uVHlwZSB7IEFT
WU5DX0VYRUNVVElPTiwgSU5fT1JERVJfRVhFQ1VUSU9OIH07Ci0gICAgdm9pZCBxdWV1ZVNjcmlw
dEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiwgTG9hZGFibGVTY3JpcHQmLCBFeGVjdXRpb25U
eXBlKTsKKyAgICB2b2lkIHF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQmLCBM
b2FkYWJsZVNjcmlwdCYsIEV4ZWN1dGlvblR5cGUpOwogICAgIGJvb2wgaGFzUGVuZGluZ1Njcmlw
dHMoKSBjb25zdCB7IHJldHVybiAhbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkgfHwg
IW1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpIHx8ICFtX3BlbmRpbmdBc3luY1Nj
cmlwdHMuaXNFbXB0eSgpOyB9CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCByZXN1bWUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDEzNjdiNGYyMGVhMDkx
MWRmOWNkZGNmMWMxNjJlNzM5ZDFlMDI2ZTMuLmMzZWZjMDk0YTQzMmVjZDc1MDJlZGQxMzhjYWYw
YWJmZTVlZjE0OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMjU4
LDEyICsyNTgsMTIgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcm
LCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKQogICAgIGVsZW1lbnQoKS5pbnZhbGlkYXRl
U3R5bGVGb3JTdWJ0cmVlKCk7CiB9CiAKLVBhc3NSZWZQdHI8RmlsZUxpc3Q+IEZpbGVJbnB1dFR5
cGU6OmNyZWF0ZUZpbGVMaXN0KGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgZmls
ZXMpIGNvbnN0CitSZWY8RmlsZUxpc3Q+IEZpbGVJbnB1dFR5cGU6OmNyZWF0ZUZpbGVMaXN0KGNv
bnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpCiB7CiAgICAgVmVjdG9yPFJl
ZlB0cjxGaWxlPj4gZmlsZU9iamVjdHM7Ci0gICAgZm9yIChjb25zdCBGaWxlQ2hvb3NlckZpbGVJ
bmZvJiBpbmZvIDogZmlsZXMpCi0gICAgICAgIGZpbGVPYmplY3RzLmFwcGVuZChGaWxlOjpjcmVh
dGVXaXRoTmFtZShpbmZvLnBhdGgsIGluZm8uZGlzcGxheU5hbWUpKTsKLQorICAgIGZpbGVPYmpl
Y3RzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZmlsZXMuc2l6ZSgpKTsKKyAgICBmb3IgKGF1dG8m
IGluZm8gOiBmaWxlcykKKyAgICAgICAgZmlsZU9iamVjdHMudW5jaGVja2VkQXBwZW5kKEZpbGU6
OmNyZWF0ZVdpdGhOYW1lKGluZm8ucGF0aCwgaW5mby5kaXNwbGF5TmFtZSkpOwogICAgIHJldHVy
biBGaWxlTGlzdDo6Y3JlYXRlKFdURk1vdmUoZmlsZU9iamVjdHMpKTsKIH0KIApAQCAtMzAyLDI5
ICszMDIsMzIgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjptdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQo
KQogICAgICAgICBidXR0b24tPnNldFZhbHVlKGVsZW1lbnQoKS5tdWx0aXBsZSgpID8gZmlsZUJ1
dHRvbkNob29zZU11bHRpcGxlRmlsZXNMYWJlbCgpIDogZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJl
bCgpKTsKIH0KIAorI2lmICFQTEFURk9STShJT1MpCisKIHZvaWQgRmlsZUlucHV0VHlwZTo6cmVx
dWVzdEljb24oY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKQogewotI2lmIFBMQVRGT1JNKElP
UykKLSAgICBVTlVTRURfUEFSQU0ocGF0aHMpOwotI2Vsc2UKICAgICBpZiAoIXBhdGhzLnNpemUo
KSkgewotICAgICAgICB1cGRhdGVSZW5kZXJpbmcobnVsbHB0cik7CisgICAgICAgIGljb25Mb2Fk
ZWQobnVsbHB0cik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBDaHJvbWUqIGNocm9t
ZSA9IHRoaXMtPmNocm9tZSgpOwotICAgIGlmICghY2hyb21lKQorICAgIGF1dG8qIGNocm9tZSA9
IHRoaXMtPmNocm9tZSgpOworICAgIGlmICghY2hyb21lKSB7CisgICAgICAgIGljb25Mb2FkZWQo
bnVsbHB0cik7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBpZiAobV9maWxlSWNvbkxv
YWRlcikKICAgICAgICAgbV9maWxlSWNvbkxvYWRlci0+aW52YWxpZGF0ZSgpOwogCi0gICAgbV9m
aWxlSWNvbkxvYWRlciA9IHN0ZDo6bWFrZV91bmlxdWU8RmlsZUljb25Mb2FkZXI+KHN0YXRpY19j
YXN0PEZpbGVJY29uTG9hZGVyQ2xpZW50Jj4oKnRoaXMpKTsKKyAgICBGaWxlSWNvbkxvYWRlckNs
aWVudCYgY2xpZW50ID0gKnRoaXM7CisgICAgbV9maWxlSWNvbkxvYWRlciA9IHN0ZDo6bWFrZV91
bmlxdWU8RmlsZUljb25Mb2FkZXI+KGNsaWVudCk7CiAKLSAgICBjaHJvbWUtPmxvYWRJY29uRm9y
RmlsZXMocGF0aHMsIG1fZmlsZUljb25Mb2FkZXIuZ2V0KCkpOwotI2VuZGlmCisgICAgY2hyb21l
LT5sb2FkSWNvbkZvckZpbGVzKHBhdGhzLCAqbV9maWxlSWNvbkxvYWRlcik7CiB9CiAKKyNlbmRp
ZgorCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmFwcGx5RmlsZUNob29zZXJTZXR0aW5ncyhjb25zdCBG
aWxlQ2hvb3NlclNldHRpbmdzJiBzZXR0aW5ncykKIHsKICAgICBpZiAobV9maWxlQ2hvb3NlcikK
QEAgLTMzMywxOCArMzM2LDE4IEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6YXBwbHlGaWxlQ2hvb3Nl
clNldHRpbmdzKGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRpbmdzCiAgICAgbV9maWxl
Q2hvb3NlciA9IEZpbGVDaG9vc2VyOjpjcmVhdGUodGhpcywgc2V0dGluZ3MpOwogfQogCi12b2lk
IEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+IGZpbGVzKQordm9p
ZCBGaWxlSW5wdXRUeXBlOjpzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+JiYgZmlsZXMpCiB7Ci0g
ICAgaWYgKCFmaWxlcykKLSAgICAgICAgcmV0dXJuOwotCiAgICAgUmVmPEhUTUxJbnB1dEVsZW1l
bnQ+IGlucHV0KGVsZW1lbnQoKSk7CiAKKyAgICB1bnNpZ25lZCBsZW5ndGggPSBmaWxlcyA/IGZp
bGVzLT5sZW5ndGgoKSA6IDA7CisgICAgdW5zaWduZWQgb2xkTGVuZ3RoID0gbV9maWxlTGlzdCA/
IG1fZmlsZUxpc3QtPmxlbmd0aCgpIDogMDsKKwogICAgIGJvb2wgcGF0aHNDaGFuZ2VkID0gZmFs
c2U7Ci0gICAgaWYgKGZpbGVzLT5sZW5ndGgoKSAhPSBtX2ZpbGVMaXN0LT5sZW5ndGgoKSkKKyAg
ICBpZiAobGVuZ3RoICE9IG9sZExlbmd0aCkKICAgICAgICAgcGF0aHNDaGFuZ2VkID0gdHJ1ZTsK
ICAgICBlbHNlIHsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZpbGVzLT5sZW5n
dGgoKTsgKytpKSB7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsr
aSkgewogICAgICAgICAgICAgaWYgKGZpbGVzLT5pdGVtKGkpLT5wYXRoKCkgIT0gbV9maWxlTGlz
dC0+aXRlbShpKS0+cGF0aCgpKSB7CiAgICAgICAgICAgICAgICAgcGF0aHNDaGFuZ2VkID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM1MiwxNSArMzU1LDE3IEBAIHZvaWQgRmls
ZUlucHV0VHlwZTo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCiAgICAgICAg
IH0KICAgICB9CiAKLSAgICBtX2ZpbGVMaXN0ID0gZmlsZXM7CisgICAgbV9maWxlTGlzdCA9IFdU
Rk1vdmUoZmlsZXMpOwogCiAgICAgaW5wdXQtPnNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVu
ZGVyZXIodHJ1ZSk7CiAgICAgaW5wdXQtPnVwZGF0ZVZhbGlkaXR5KCk7CiAKKyNpZiAhUExBVEZP
Uk0oSU9TKQogICAgIFZlY3RvcjxTdHJpbmc+IHBhdGhzOwotICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBtX2ZpbGVMaXN0LT5sZW5ndGgoKTsgKytpKQorICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBsZW5ndGg7ICsraSkKICAgICAgICAgcGF0aHMuYXBwZW5kKG1fZmlsZUxpc3QtPml0
ZW0oaSktPnBhdGgoKSk7CiAgICAgcmVxdWVzdEljb24ocGF0aHMpOworI2VuZGlmCiAKICAgICBp
ZiAoaW5wdXQtPnJlbmRlcmVyKCkpCiAgICAgICAgIGlucHV0LT5yZW5kZXJlcigpLT5yZXBhaW50
KCk7CkBAIC0zNzQsMTcgKzM3OSwxOSBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFBh
c3NSZWZQdHI8RmlsZUxpc3Q+IGZpbGVzKQogfQogCiAjaWYgUExBVEZPUk0oSU9TKQorCiB2b2lk
IEZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJ
bmZvPiYgcGF0aHMsIGNvbnN0IFN0cmluZyYgZGlzcGxheVN0cmluZywgSWNvbiogaWNvbikKIHsK
ICAgICBtX2Rpc3BsYXlTdHJpbmcgPSBkaXNwbGF5U3RyaW5nOwogICAgIGZpbGVzQ2hvc2VuKHBh
dGhzKTsKLSAgICB1cGRhdGVSZW5kZXJpbmcoaWNvbik7CisgICAgaWNvbkxvYWRlZChpY29uKTsK
IH0KIAogU3RyaW5nIEZpbGVJbnB1dFR5cGU6OmRpc3BsYXlTdHJpbmcoKSBjb25zdAogewogICAg
IHJldHVybiBtX2Rpc3BsYXlTdHJpbmc7CiB9CisKICNlbmRpZgogCiB2b2lkIEZpbGVJbnB1dFR5
cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgZmlsZXMp
CkBAIC0zOTIsMTIgKzM5OSwxMiBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKGNv
bnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpCiAgICAgc2V0RmlsZXMoY3Jl
YXRlRmlsZUxpc3QoZmlsZXMpKTsKIH0KIAotdm9pZCBGaWxlSW5wdXRUeXBlOjp1cGRhdGVSZW5k
ZXJpbmcoUGFzc1JlZlB0cjxJY29uPiBpY29uKQordm9pZCBGaWxlSW5wdXRUeXBlOjppY29uTG9h
ZGVkKFJlZlB0cjxJY29uPiYmIGljb24pCiB7CiAgICAgaWYgKG1faWNvbiA9PSBpY29uKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBtX2ljb24gPSBpY29uOworICAgIG1faWNvbiA9IFdURk1vdmUo
aWNvbik7CiAgICAgaWYgKGVsZW1lbnQoKS5yZW5kZXJlcigpKQogICAgICAgICBlbGVtZW50KCku
cmVuZGVyZXIoKS0+cmVwYWludCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaApp
bmRleCBmOGEwZGZmMmQ4ZDNjMzA1ZjAxYTFkZjhjODkxYTI5MGUzNjU2M2YxLi5kOTBjMjM4Mjk1
MDQyZWVmMjVjOTUzMGRhYTg4Zjg0NWIyMDlhYWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1
dFR5cGUuaApAQCAtNTAsNDUgKzUwLDQ1IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgVmVjdG9yPEZp
bGVDaG9vc2VyRmlsZUluZm8+IGZpbGVzRnJvbUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNv
bnRyb2xTdGF0ZSYpOwogCiBwcml2YXRlOgotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNv
bnRyb2xUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9y
bUNvbnRyb2xTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgcmVzdG9yZUZvcm1Db250
cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIG92ZXJyaWRlOwotICAgIGJvb2wgYXBw
ZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9v
bCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgU3RyaW5n
IHZhbHVlTWlzc2luZ1RleHQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGhhbmRsZURPTUFj
dGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKLSAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYmKSBvdmVycmlkZTsKLSAgICBib29s
IGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgRmlsZUxpc3QqIGZpbGVz
KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0Pikgb3Zl
cnJpZGU7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBm
aW5hbDsKKyAgICBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3Qg
ZmluYWw7CisgICAgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJv
bFN0YXRlJikgZmluYWw7CisgICAgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmLCBi
b29sKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmKSBj
b25zdCBmaW5hbDsKKyAgICBTdHJpbmcgdmFsdWVNaXNzaW5nVGV4dCgpIGNvbnN0IGZpbmFsOwor
ICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIGZpbmFsOworICAgIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYpIGZp
bmFsOworICAgIGJvb2wgY2FuU2V0U3RyaW5nVmFsdWUoKSBjb25zdCBmaW5hbDsKKyAgICBGaWxl
TGlzdCogZmlsZXMoKSBmaW5hbDsKKyAgICB2b2lkIHNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4m
JikgZmluYWw7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIFN0cmluZyBkaXNwbGF5U3RyaW5nKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgU3RyaW5nIGRpc3BsYXlTdHJpbmcoKSBjb25zdCBmaW5hbDsK
ICNlbmRpZgotICAgIGJvb2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7Ci0g
ICAgYm9vbCBnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKSBvdmVycmlkZTsgLy8gQ2hlY2tl
ZCBmaXJzdCwgYmVmb3JlIGludGVybmFsIHN0b3JhZ2Ugb3IgdGhlIHZhbHVlIGF0dHJpYnV0ZS4K
LSAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0
RmllbGRFdmVudEJlaGF2aW9yKSBvdmVycmlkZTsKKyAgICBib29sIGNhblNldFZhbHVlKGNvbnN0
IFN0cmluZyYpIGZpbmFsOworICAgIGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5nJikg
ZmluYWw7IC8vIENoZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdlIG9yIHRoZSB2
YWx1ZSBhdHRyaWJ1dGUuCisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZh
bHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgZmluYWw7CiAKICNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQotICAgIGJvb2wgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBEcmFnRGF0
YSYpIG92ZXJyaWRlOworICAgIGJvb2wgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBEcmFnRGF0
YSYpIGZpbmFsOwogI2VuZGlmCiAKLSAgICBJY29uKiBpY29uKCkgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgYm9vbCBpc0ZpbGVVcGxvYWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGNyZWF0ZVNo
YWRvd1N1YnRyZWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2FibGVkQXR0cmlidXRlQ2hhbmdl
ZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgbXVsdGlwbGVBdHRyaWJ1dGVDaGFuZ2VkKCkgb3ZlcnJp
ZGU7Ci0gICAgU3RyaW5nIGRlZmF1bHRUb29sVGlwKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgSWNv
biogaWNvbigpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgaXNGaWxlVXBsb2FkKCkgY29uc3QgZmlu
YWw7CisgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgZmluYWw7CisgICAgdm9pZCBkaXNh
YmxlZEF0dHJpYnV0ZUNoYW5nZWQoKSBmaW5hbDsKKyAgICB2b2lkIG11bHRpcGxlQXR0cmlidXRl
Q2hhbmdlZCgpIGZpbmFsOworICAgIFN0cmluZyBkZWZhdWx0VG9vbFRpcCgpIGNvbnN0IGZpbmFs
OwogCiAgICAgLy8gRmlsZUNob29zZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCi0gICAgdm9pZCBm
aWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mKSBvdmVycmlkZTsK
KyAgICB2b2lkIGZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYp
IGZpbmFsOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2b2lkIGZpbGVzQ2hvc2VuKGNvbnN0IFZl
Y3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYsIGNvbnN0IFN0cmluZyYgZGlzcGxheVN0cmluZywg
SWNvbiopIG92ZXJyaWRlOworICAgIHZvaWQgZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZpbGVD
aG9vc2VyRmlsZUluZm8+JiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5U3RyaW5nLCBJY29uKikgZmlu
YWw7CiAjZW5kaWYKIAogICAgIC8vIEZpbGVJY29uTG9hZGVyQ2xpZW50IGltcGxlbWVudGF0aW9u
LgotICAgIHZvaWQgdXBkYXRlUmVuZGVyaW5nKFBhc3NSZWZQdHI8SWNvbj4pIG92ZXJyaWRlOwor
ICAgIHZvaWQgaWNvbkxvYWRlZChSZWZQdHI8SWNvbj4mJikgZmluYWw7CiAKLSAgICBQYXNzUmVm
UHRyPEZpbGVMaXN0PiBjcmVhdGVGaWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxl
SW5mbz4mIGZpbGVzKSBjb25zdDsKKyAgICBzdGF0aWMgUmVmPEZpbGVMaXN0PiBjcmVhdGVGaWxl
TGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mKTsKICAgICB2b2lkIHJlcXVl
c3RJY29uKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAKICAgICB2b2lkIGFwcGx5RmlsZUNob29z
ZXJTZXR0aW5ncyhjb25zdCBGaWxlQ2hvb3NlclNldHRpbmdzJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuY3BwCmluZGV4IGY0YmU3MTU4YzUxMDA4NTgzMDU4MGI2YTczODU4NzIwMzAzOWEz
ZDkuLjllZGM2MTA1NTQ1MTY0MzFlNjU5NDdiMTc0MDI3YjFiMTRmMzFkYzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC03NTIsNyArNzUyLDcgQEAgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IEhUTUxFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUm
JiBzdHlsZSwKICAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBXVEZN
b3ZlKHN0eWxlKSk7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTEVsZW1lbnQ6OnZpcnR1YWxG
b3JtKCkgY29uc3QKK0hUTUxGb3JtRWxlbWVudCogSFRNTEVsZW1lbnQ6OmZvcm0oKSBjb25zdAog
ewogICAgIHJldHVybiBIVE1MRm9ybUVsZW1lbnQ6OmZpbmRDbG9zZXN0Rm9ybUFuY2VzdG9yKCp0
aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAppbmRleCAzOWQ0Y2I3MmI2NzYzNzI3
NzU5MTEyNmE4YTE1MjUwNTQwMmRmZTBjLi4wMmQwN2VkODA1MGU5MTI5MGFlYTQyZDBiYzI3NTI3
Y2NkNDRhY2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCkBAIC03MCw3ICs3MCw3IEBA
IHB1YmxpYzoKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBv
dmVycmlkZTsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwog
Ci0gICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkgY29uc3QgeyByZXR1cm4gdmlydHVhbEZvcm0o
KTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkg
Y29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBBdG9taWNTdHJpbmcmIGRpcigpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RGlyKGNvbnN0IEF0b21pY1N0cmluZyYp
OwpAQCAtMTMzLDggKzEzMyw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIG1hcExhbmd1YWdlQXR0
cmlidXRlVG9Mb2NhbGUoY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYpOwogCi0gICAgdmlydHVhbCBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkgY29uc3Q7
Ci0KICAgICBFeGNlcHRpb25PcjxSZWY8RG9jdW1lbnRGcmFnbWVudD4+IHRleHRUb0ZyYWdtZW50
KGNvbnN0IFN0cmluZyYpOwogCiAgICAgdm9pZCBkaXJBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0
b21pY1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNv
bnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5jcHAKaW5kZXggODQ1MTZjYjYyNDRjMzNiMWY3MDVlMDZkZTI4MjJhZWExMWU1MWJkOC4u
N2JmZWNlYmE3MDA3YjNkZmQzY2M2Y2NjN2FlYmY4MTliYjFiMjM5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC01OTMsMTEgKzU5Myw2
IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoUmVmUHRy
PEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1lCiAgICAgaGlkZVZpc2libGVWYWxpZGF0aW9uTWVz
c2FnZSgpOwogfQogCi1IVE1MRm9ybUVsZW1lbnQqIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnZp
cnR1YWxGb3JtKCkgY29uc3QKLXsKLSAgICByZXR1cm4gRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpm
b3JtKCk7Ci19Ci0KICNpZiBFTkFCTEUoSU9TX0FVVE9DT1JSRUNUX0FORF9BVVRPQ0FQSVRBTEla
RSkKIAogLy8gRklYTUU6IFdlIHNob3VsZCBsb29rIHRvIHNoYXJlIHRoaXMgY29kZSB3aXRoIGNs
YXNzIEhUTUxGb3JtRWxlbWVudCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIHRoZSBsb2dpYy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggNGZmNDg5
NGYzNWZlNjFkMmVkZjBjMDg1NWU5MjI0NGFjZGM1YzRmYy4uZTE1MzVjNjNlYzk3M2M1Y2U1MGFm
NGE3ZDliMTY5Y2I0ODNhNzBlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNv
bnRyb2xFbGVtZW50LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgSFRNTEZvcm1Db250cm9sRWxl
bWVudCA6IHB1YmxpYyBMYWJlbGFibGVFbGVtZW50LCBwdWJsaWMgRm9ybUFzc29jaWF0ZWRFbGUK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5IVE1MRm9ybUNvbnRyb2xFbGVtZW50KCk7CiAKLSAgICBI
VE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCB7IHJldHVybiBGb3JtQXNzb2NpYXRlZEVsZW1l
bnQ6OmZvcm0oKTsgfQorICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybSgpOyB9CiAKICAgICBXRUJDT1JFX0VY
UE9SVCBTdHJpbmcgZm9ybUVuY3R5cGUoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldEZvcm1FbmN0eXBlKGNvbnN0IFN0cmluZyYpOwpAQCAtMTY5LDcgKzE2OSw2IEBAIHByaXZh
dGU6CiAKICAgICBpbnQgdGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKIAotICAgIEhUTUxGb3JtRWxl
bWVudCogdmlydHVhbEZvcm0oKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzVmFsaWRGb3Jt
Q29udHJvbEVsZW1lbnQoKSBjb25zdDsKIAogICAgIGJvb2wgY29tcHV0ZUlzRGlzYWJsZWRCeUZp
ZWxkc2V0QW5jZXN0b3IoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCmluZGV4IGQ0M2Q0ZWY5ZTAxMTkyNmQwZThhMGViZGVjODc1MmQzZWZmZGZjMjQuLjE0
NDgzODlhNGFmZDgyNTA2NzdhNjIyYjE5NTkxNzJjOWE3OTNhNWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTE4NCwxMCArMTE4NCw5IEBAIHZvaWQgSFRN
TElucHV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiAgICAgICAg
IGlmICh3YXNDaGFuZ2VkU2luY2VMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpKQogICAgICAg
ICAgICAgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCk7CiAKLSAgICAgICAgUmVmUHRy
PEhUTUxGb3JtRWxlbWVudD4gZm9ybUZvclN1Ym1pc3Npb24gPSBtX2lucHV0VHlwZS0+Zm9ybUZv
clN1Ym1pc3Npb24oKTsKICAgICAgICAgLy8gRm9ybSBtYXkgbmV2ZXIgaGF2ZSBiZWVuIHByZXNl
bnQsIG9yIG1heSBoYXZlIGJlZW4gZGVzdHJveWVkIGJ5IGNvZGUgcmVzcG9uZGluZyB0byB0aGUg
Y2hhbmdlIGV2ZW50LgotICAgICAgICBpZiAoZm9ybUZvclN1Ym1pc3Npb24pCi0gICAgICAgICAg
ICBmb3JtRm9yU3VibWlzc2lvbi0+c3VibWl0SW1wbGljaXRseShldmVudCwgY2FuVHJpZ2dlcklt
cGxpY2l0U3VibWlzc2lvbigpKTsKKyAgICAgICAgaWYgKGF1dG8qIGZvcm1FbGVtZW50ID0gZm9y
bSgpKQorICAgICAgICAgICAgZm9ybUVsZW1lbnQtPnN1Ym1pdEltcGxpY2l0bHkoZXZlbnQsIGNh
blRyaWdnZXJJbXBsaWNpdFN1Ym1pc3Npb24oKSk7CiAKICAgICAgICAgZXZlbnQuc2V0RGVmYXVs
dEhhbmRsZWQoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTM0Miw5ICsxMzQxLDkgQEAgRmlsZUxp
c3QqIEhUTUxJbnB1dEVsZW1lbnQ6OmZpbGVzKCkKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmZp
bGVzKCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0RmlsZXMoUGFzc1JlZlB0cjxG
aWxlTGlzdD4gZmlsZXMpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEZpbGVzKFJlZlB0cjxG
aWxlTGlzdD4mJiBmaWxlcykKIHsKLSAgICBtX2lucHV0VHlwZS0+c2V0RmlsZXMoZmlsZXMpOwor
ICAgIG1faW5wdXRUeXBlLT5zZXRGaWxlcyhXVEZNb3ZlKGZpbGVzKSk7CiB9CiAKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQpAQCAtMTg2OSw3ICsxODY4LDcgQEAgUmFkaW9CdXR0b25Hcm91cHMq
IEhUTUxJbnB1dEVsZW1lbnQ6OnJhZGlvQnV0dG9uR3JvdXBzKCkgY29uc3QKIHsKICAgICBpZiAo
IWlzUmFkaW9CdXR0b24oKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgaWYgKEhUTUxG
b3JtRWxlbWVudCogZm9ybUVsZW1lbnQgPSBmb3JtKCkpCisgICAgaWYgKGF1dG8qIGZvcm1FbGVt
ZW50ID0gZm9ybSgpKQogICAgICAgICByZXR1cm4gJmZvcm1FbGVtZW50LT5yYWRpb0J1dHRvbkdy
b3VwcygpOwogICAgIGlmIChpbkRvY3VtZW50KCkpCiAgICAgICAgIHJldHVybiAmZG9jdW1lbnQo
KS5mb3JtQ29udHJvbGxlcigpLnJhZGlvQnV0dG9uR3JvdXBzKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCmluZGV4IDhhZmZkOTgxMTc1NGQ5ZTQ5MjM2MjU2ZTY1NWQ2ZGE1
NTgzZjU2ZDYuLjE5OTkyYjU0OTBiY2I0YzFmOTc2NjE2YjhkZGNkYjA0N2NkOWRjNDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0yMzgsNyArMjM4LDcgQEAgcHVi
bGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2hvd0F1dG9GaWxsQnV0dG9uKEF1dG9G
aWxsQnV0dG9uVHlwZSk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBGaWxlTGlzdCogZmlsZXMoKTsK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4mJik7CiAK
ICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2
ZW4gRHJhZ0RhdGEgaGFzIG1vcmUgdGhhbiBvbmUgZHJvcHBlZCBmaWxlcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCmluZGV4IGMyZDE4NWMzMTBhMGI5MmI5MjBlOTc1
MTA0Y2ExY2ViODU1MDVmYWQuLjhiNzkzYWZkOGM1NWVjNzlkM2U3ZTJlNmYxYzM3ZTQ4MjVjNTY3
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcApAQCAtNjMsMzAg
KzYzLDI4IEBAIGJvb2wgSFRNTExhYmVsRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotTGFiZWxhYmxlRWxlbWVudCogSFRNTExhYmVsRWxlbWVudDo6
Y29udHJvbCgpCitMYWJlbGFibGVFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9sKCkg
Y29uc3QKIHsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGNvbnRyb2xJZCA9IGF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oZm9yQXR0cik7CisgICAgYXV0byYgY29udHJvbElkID0gYXR0
cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihmb3JBdHRyKTsKICAgICBpZiAoY29udHJvbElk
LmlzTnVsbCgpKSB7CiAgICAgICAgIC8vIFNlYXJjaCB0aGUgY2hpbGRyZW4gYW5kIGRlc2NlbmRh
bnRzIG9mIHRoZSBsYWJlbCBlbGVtZW50IGZvciBhIGZvcm0gZWxlbWVudC4KICAgICAgICAgLy8g
cGVyIGh0dHA6Ly9kZXYudzMub3JnL2h0bWw1L3NwZWMvT3ZlcnZpZXcuaHRtbCN0aGUtbGFiZWwt
ZWxlbWVudAogICAgICAgICAvLyB0aGUgZm9ybSBlbGVtZW50IG11c3QgYmUgImxhYmVsYWJsZSBm
b3JtLWFzc29jaWF0ZWQgZWxlbWVudCIuCiAgICAgICAgIGZvciAoYXV0byYgbGFiZWxhYmxlRWxl
bWVudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPExhYmVsYWJsZUVsZW1lbnQ+KCp0aGlzKSkgewogICAg
ICAgICAgICAgaWYgKGxhYmVsYWJsZUVsZW1lbnQuc3VwcG9ydExhYmVscygpKQotICAgICAgICAg
ICAgICAgIHJldHVybiAmbGFiZWxhYmxlRWxlbWVudDsKKyAgICAgICAgICAgICAgICByZXR1cm4g
Y29uc3RfY2FzdDxMYWJlbGFibGVFbGVtZW50Kj4oJmxhYmVsYWJsZUVsZW1lbnQpOwogICAgICAg
ICB9CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICAKICAgICByZXR1cm4gaW5E
b2N1bWVudCgpID8gZmlyc3RFbGVtZW50V2l0aElkSWZMYWJlbGFibGUodHJlZVNjb3BlKCksIGNv
bnRyb2xJZCkgOiBudWxscHRyOwogfQogCi1IVE1MRm9ybUVsZW1lbnQqIEhUTUxMYWJlbEVsZW1l
bnQ6OmZvcm0oKQorSFRNTEZvcm1FbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpmb3JtKCkgY29u
c3QKIHsKLSAgICBhdXRvKiBsYWJlbGVkQ29udHJvbCA9IGNvbnRyb2woKTsKLSAgICBpZiAoIWxh
YmVsZWRDb250cm9sKQorICAgIGF1dG8qIGNvbnRyb2wgPSB0aGlzLT5jb250cm9sKCk7CisgICAg
aWYgKCFpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Pihjb250cm9sKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0KLSAgICByZXR1cm4gaXM8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oKmxhYmVs
ZWRDb250cm9sKSA/IGRvd25jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KCpsYWJlbGVkQ29u
dHJvbCkuZm9ybSgpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gZG93bmNhc3Q8SFRNTEZvcm1Db250
cm9sRWxlbWVudD4oKmNvbnRyb2wpLmZvcm0oKTsKIH0KIAogdm9pZCBIVE1MTGFiZWxFbGVtZW50
OjpzZXRBY3RpdmUoYm9vbCBkb3duLCBib29sIHBhdXNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
YWJlbEVsZW1lbnQuaAppbmRleCAxNGRkYzA4M2E2MThlNDc3ZjMyMWE1MTc2YWQ2MTAzYWU5Mjk2
ZDA2Li45ZTA1NjBiMzU5YWIzYTY4YzhjOTM3MDM2ZjkyM2Q1NWIyN2M3NzQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaApAQCAtMzEsOCArMzEsOCBAQCBjbGFzcyBIVE1M
TGFiZWxFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmPEhUTUxMYWJlbEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIExhYmVsYWJsZUVsZW1lbnQqIGNvbnRy
b2woKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBMYWJlbGFibGVFbGVtZW50KiBjb250cm9sKCkgY29uc3Q7CisgICAgV0VC
Q09SRV9FWFBPUlQgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkgY29uc3QgZmluYWw7CiAKICAgICBi
b29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgZmluYWw7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5jcHAKaW5kZXggZWE3OTczNTg2NjEwZWY3ZDlhZjMz
N2MxYmE3ZTk1MzE1OWU0Mzc2ZS4uNDZiNTZkNWEwZDZiODcxMzYzNmRhZTM2ZjliODRjNmE3NmI5
OTQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5jcHAKQEAgLTIs
NyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9y
ZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9y
ZykKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykK
LSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5
YWtvdiAoYXBAbnlwb3AuY29tKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTMxLDEzICszMSwxMCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7Ci0KLQogaW5s
aW5lIEhUTUxMZWdlbmRFbGVtZW50OjpIVE1MTGVnZW5kRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBIVE1MRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkKIHsKLSAgICBBU1NFUlQoaGFzVGFnTmFtZShsZWdlbmRUYWcpKTsKKyAg
ICBBU1NFUlQoaGFzVGFnTmFtZShIVE1MTmFtZXM6OmxlZ2VuZFRhZykpOwogfQogCiBSZWY8SFRN
TExlZ2VuZEVsZW1lbnQ+IEhUTUxMZWdlbmRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtNjEsMjcgKzU4LDI2IEBAIHZv
aWQgSFRNTExlZ2VuZEVsZW1lbnQ6OmZvY3VzKGJvb2wsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlv
bikKIHsKICAgICBpZiAoaXNGb2N1c2FibGUoKSkKICAgICAgICAgRWxlbWVudDo6Zm9jdXModHJ1
ZSwgZGlyZWN0aW9uKTsKLSAgICAgICAgCisKICAgICAvLyBUbyBtYXRjaCBvdGhlciBicm93c2Vy
cycgYmVoYXZpb3IsIG5ldmVyIHJlc3RvcmUgcHJldmlvdXMgc2VsZWN0aW9uLgotICAgIGlmIChI
VE1MRm9ybUNvbnRyb2xFbGVtZW50KiBjb250cm9sID0gYXNzb2NpYXRlZENvbnRyb2woKSkKKyAg
ICBpZiAoYXV0byogY29udHJvbCA9IGFzc29jaWF0ZWRDb250cm9sKCkpCiAgICAgICAgIGNvbnRy
b2wtPmZvY3VzKGZhbHNlLCBkaXJlY3Rpb24pOwogfQogCiB2b2lkIEhUTUxMZWdlbmRFbGVtZW50
OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpCiB7Ci0gICAgaWYgKEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQqIGNvbnRyb2wgPSBhc3NvY2lhdGVkQ29udHJvbCgpKQorICAgIGlm
IChhdXRvKiBjb250cm9sID0gYXNzb2NpYXRlZENvbnRyb2woKSkKICAgICAgICAgY29udHJvbC0+
YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cyk7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCog
SFRNTExlZ2VuZEVsZW1lbnQ6OnZpcnR1YWxGb3JtKCkgY29uc3QKK0hUTUxGb3JtRWxlbWVudCog
SFRNTExlZ2VuZEVsZW1lbnQ6OmZvcm0oKSBjb25zdAogewogICAgIC8vIEFjY29yZGluZyB0byB0
aGUgc3BlY2lmaWNhdGlvbiwgSWYgdGhlIGxlZ2VuZCBoYXMgYSBmaWVsZHNldCBlbGVtZW50IGFz
CiAgICAgLy8gaXRzIHBhcmVudCwgdGhlbiB0aGUgZm9ybSBhdHRyaWJ1dGUgbXVzdCByZXR1cm4g
dGhlIHNhbWUgdmFsdWUgYXMgdGhlCiAgICAgLy8gZm9ybSBhdHRyaWJ1dGUgb24gdGhhdCBmaWVs
ZHNldCBlbGVtZW50LiBPdGhlcndpc2UsIGl0IG11c3QgcmV0dXJuIG51bGwuCi0gICAgQ29udGFp
bmVyTm9kZSogZmllbGRzZXQgPSBwYXJlbnROb2RlKCk7CisgICAgYXV0byogZmllbGRzZXQgPSBw
YXJlbnROb2RlKCk7CiAgICAgaWYgKCFpczxIVE1MRmllbGRTZXRFbGVtZW50PihmaWVsZHNldCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwotCiAgICAgcmV0dXJuIGRvd25jYXN0PEhUTUxGaWVs
ZFNldEVsZW1lbnQ+KCpmaWVsZHNldCkuZm9ybSgpOwogfQogICAgIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGVnZW5kRWxlbWVudC5oCmluZGV4IDAzOGNjOWExNzZlYmMwZDcwNjJlNjBlNWM5NTlh
MTVlODM4NDZmMmYuLjhiMjdkOTk2MzIwNjFiZTU5ZWJhMDc2MDJiZTY4MjBjNjJkZmQ5YWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgKQEAgLTIsNyArMiw3IEBACiAg
KiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAg
ICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAg
ICAgICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMzLDE1ICszMywxNiBAQCBjbGFzcyBIVE1M
TGVnZW5kRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxIVE1MTGVnZW5kRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgSFRNTEZvcm1FbGVtZW50KiBmb3Jt
KCkgY29uc3QgZmluYWw7CisKIHByaXZhdGU6CiAgICAgSFRNTExlZ2VuZEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICAvLyBDb250cm9sIGluIHRoZSBsZWdl
bmQncyBmaWVsZHNldCB0aGF0IGdldHMgZm9jdXMgYW5kIGFjY2VzcyBrZXkuCisgICAgLy8gQ29u
dHJvbCBpbiB0aGUgbGVnZW5kJ3MgZmllbGQgc2V0IHRoYXQgZ2V0cyBmb2N1cyBhbmQgYWNjZXNz
IGtleS4KICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBhc3NvY2lhdGVkQ29udHJvbCgpOwog
CiAgICAgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIGZpbmFsOwog
ICAgIHZvaWQgZm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZvY3VzRGlyZWN0
aW9uKSBmaW5hbDsKLSAgICBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkgY29uc3QgZmlu
YWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAppbmRleCAwODRlZmM3ODA1NDNmZWRkMjE0ZTk1NDY3OTg1MWM5ZDc2
NTY1NDYzLi42OTEwY2I0MTAzMjYwMThmZjM2NTE0ZjRjMDFkZWYyOTRiNGY3MDcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTI2OSwyMiArMjY5LDIzIEBA
IHN0YXRpYyB2b2lkIHJlbW92ZUVsZW1lbnRGcm9tRG9jdW1lbnRNYXAoSFRNTE1lZGlhRWxlbWVu
dCYgZWxlbWVudCwgRG9jdW1lbnQmIGRvCiB9CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisK
IGNsYXNzIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHsKIHB1YmxpYzoKLSAgICBUcmFja0Rpc3Bs
YXlVcGRhdGVTY29wZShIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCisgICAgVHJhY2tE
aXNwbGF5VXBkYXRlU2NvcGUoSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKKyAgICAgICAgOiBt
X2VsZW1lbnQoZWxlbWVudCkKICAgICB7Ci0gICAgICAgIG1fbWVkaWFFbGVtZW50ID0gbWVkaWFF
bGVtZW50OwotICAgICAgICBtX21lZGlhRWxlbWVudC0+YmVnaW5JZ25vcmluZ1RyYWNrRGlzcGxh
eVVwZGF0ZVJlcXVlc3RzKCk7CisgICAgICAgIG1fZWxlbWVudC5iZWdpbklnbm9yaW5nVHJhY2tE
aXNwbGF5VXBkYXRlUmVxdWVzdHMoKTsKICAgICB9CiAgICAgflRyYWNrRGlzcGxheVVwZGF0ZVNj
b3BlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX21lZGlhRWxlbWVudCk7Ci0gICAgICAgIG1f
bWVkaWFFbGVtZW50LT5lbmRJZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0ZVJlcXVlc3RzKCk7Cisg
ICAgICAgIG1fZWxlbWVudC5lbmRJZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0ZVJlcXVlc3RzKCk7
CiAgICAgfQogICAgIAogcHJpdmF0ZToKLSAgICBIVE1MTWVkaWFFbGVtZW50KiBtX21lZGlhRWxl
bWVudDsKKyAgICBIVE1MTWVkaWFFbGVtZW50JiBtX2VsZW1lbnQ7CiB9OworCiAjZW5kaWYKIAog
c3RydWN0IEhUTUxNZWRpYUVsZW1lbnQ6OlRyYWNrR3JvdXAgewpAQCAtMTU1NCw3ICsxNTU1LDcg
QEAgc3RhdGljIGJvb2wgZXZlbnRUaW1lQ3VlQ29tcGFyZShjb25zdCBzdGQ6OnBhaXI8TWVkaWFU
aW1lLCBUZXh0VHJhY2tDdWUqPiYgYSwgY28KICAgICAvLyAxMiAtIEZ1cnRoZXIgc29ydCB0YXNr
cyBpbiBldmVudHMgdGhhdCBoYXZlIHRoZSBzYW1lIHRpbWUgYnkgdGhlCiAgICAgLy8gcmVsYXRp
dmUgdGV4dCB0cmFjayBjdWUgb3JkZXIgb2YgdGhlIHRleHQgdHJhY2sgY3VlcyBhc3NvY2lhdGVk
CiAgICAgLy8gd2l0aCB0aGVzZSB0YXNrcy4KLSAgICByZXR1cm4gYS5zZWNvbmQtPmN1ZUluZGV4
KCkgLSBiLnNlY29uZC0+Y3VlSW5kZXgoKSA8IDA7CisgICAgcmV0dXJuIGEuc2Vjb25kLT5pc09y
ZGVyZWRCZWZvcmUoYi5zZWNvbmQpOwogfQogCiBzdGF0aWMgYm9vbCBjb21wYXJlQ3VlSW50ZXJ2
YWwoY29uc3QgQ3VlSW50ZXJ2YWwmIG9uZSwgY29uc3QgQ3VlSW50ZXJ2YWwmIHR3bykKQEAgLTE4
MTcsMjIgKzE4MTgsMjEgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZWFkeVN0
YXRlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQogICAgIH0KIH0KIAotdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjphdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayogdHJhY2spCit2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrJiB0
cmFjaykKIHsKLSAgICBBU1NFUlQodHJhY2spOwotICAgIGlmIChtX2F1ZGlvVHJhY2tzICYmIG1f
YXVkaW9UcmFja3MtPmNvbnRhaW5zKCp0cmFjaykpCisgICAgaWYgKG1fYXVkaW9UcmFja3MgJiYg
bV9hdWRpb1RyYWNrcy0+Y29udGFpbnModHJhY2spKQogICAgICAgICBtX2F1ZGlvVHJhY2tzLT5z
Y2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAgICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3Np
bmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCiAgICAgICAgIHJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0
aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZShNZWRpYUVsZW1lbnRTZXNzaW9uOjpBbGxSZXN0cmlj
dGlvbnMgJiB+TWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJlVG9Db250cm9s
Q29udHJvbHNNYW5hZ2VyKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tN
b2RlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0
VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2smIHRyYWNrKQogewogICAgIGJvb2wgdHJhY2tJc0xv
YWRlZCA9IHRydWU7Ci0gICAgaWYgKHRyYWNrLT50cmFja1R5cGUoKSA9PSBUZXh0VHJhY2s6OlRy
YWNrRWxlbWVudCkgeworICAgIGlmICh0cmFjay50cmFja1R5cGUoKSA9PSBUZXh0VHJhY2s6OlRy
YWNrRWxlbWVudCkgewogICAgICAgICB0cmFja0lzTG9hZGVkID0gZmFsc2U7CiAgICAgICAgIGZv
ciAoYXV0byYgdHJhY2tFbGVtZW50IDogY2hpbGRyZW5PZlR5cGU8SFRNTFRyYWNrRWxlbWVudD4o
KnRoaXMpKSB7Ci0gICAgICAgICAgICBpZiAoJnRyYWNrRWxlbWVudC50cmFjaygpID09IHRyYWNr
KSB7CisgICAgICAgICAgICBpZiAoJnRyYWNrRWxlbWVudC50cmFjaygpID09ICZ0cmFjaykgewog
ICAgICAgICAgICAgICAgIGlmICh0cmFja0VsZW1lbnQucmVhZHlTdGF0ZSgpID09IEhUTUxUcmFj
a0VsZW1lbnQ6OkxPQURJTkcgfHwgdHJhY2tFbGVtZW50LnJlYWR5U3RhdGUoKSA9PSBIVE1MVHJh
Y2tFbGVtZW50OjpMT0FERUQpCiAgICAgICAgICAgICAgICAgICAgIHRyYWNrSXNMb2FkZWQgPSB0
cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTg0NSwzMyArMTg0NSwzMiBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayogdHJhY2sp
CiAgICAgICAgIG1fdGV4dFRyYWNrcyA9IFRleHRUcmFja0xpc3Q6OmNyZWF0ZSh0aGlzLCBBY3Rp
dmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgCiAgICAgLy8gTWFy
ayB0aGlzIHRyYWNrIGFzICJjb25maWd1cmVkIiBzbyBjb25maWd1cmVUZXh0VHJhY2tzIHdvbid0
IGNoYW5nZSB0aGUgbW9kZSBhZ2Fpbi4KLSAgICB0cmFjay0+c2V0SGFzQmVlbkNvbmZpZ3VyZWQo
dHJ1ZSk7CisgICAgdHJhY2suc2V0SGFzQmVlbkNvbmZpZ3VyZWQodHJ1ZSk7CiAgICAgCi0gICAg
aWYgKHRyYWNrLT5tb2RlKCkgIT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCAmJiB0cmFja0lz
TG9hZGVkKQotICAgICAgICB0ZXh0VHJhY2tBZGRDdWVzKHRyYWNrLCB0cmFjay0+Y3VlcygpKTsK
KyAgICBpZiAodHJhY2subW9kZSgpICE9IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQgJiYgdHJh
Y2tJc0xvYWRlZCkKKyAgICAgICAgdGV4dFRyYWNrQWRkQ3Vlcyh0cmFjaywgKnRyYWNrLmN1ZXMo
KSk7CiAKICAgICBjb25maWd1cmVUZXh0VHJhY2tEaXNwbGF5KEFzc3VtZVRleHRUcmFja1Zpc2li
aWxpdHlDaGFuZ2VkKTsKIAotICAgIGlmIChtX3RleHRUcmFja3MgJiYgbV90ZXh0VHJhY2tzLT5j
b250YWlucygqdHJhY2spKQorICAgIGlmIChtX3RleHRUcmFja3MgJiYgbV90ZXh0VHJhY2tzLT5j
b250YWlucyh0cmFjaykpCiAgICAgICAgIG1fdGV4dFRyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVu
dCgpOwogCiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKLSAgICBpZiAodHJhY2stPnRyYWNrVHlw
ZSgpID09IFRleHRUcmFjazo6VHJhY2tFbGVtZW50ICYmIG1fcGxheWVyKQorICAgIGlmICh0cmFj
ay50cmFja1R5cGUoKSA9PSBUZXh0VHJhY2s6OlRyYWNrRWxlbWVudCAmJiBtX3BsYXllcikKICAg
ICAgICAgbV9wbGF5ZXItPm5vdGlmeVRyYWNrTW9kZUNoYW5nZWQoKTsKICNlbmRpZgogfQogCi12
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFj
ayogdHJhY2spCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5n
ZWQoVmlkZW9UcmFjayYgdHJhY2spCiB7Ci0gICAgQVNTRVJUKHRyYWNrKTsKLSAgICBpZiAobV92
aWRlb1RyYWNrcyAmJiBtX3ZpZGVvVHJhY2tzLT5jb250YWlucygqdHJhY2spKQorICAgIGlmICht
X3ZpZGVvVHJhY2tzICYmIG1fdmlkZW9UcmFja3MtPmNvbnRhaW5zKHRyYWNrKSkKICAgICAgICAg
bV92aWRlb1RyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogfQogCi12b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7
Ci0gICAgaWYgKHRyYWNrLT5raW5kKCkgIT0gVGV4dFRyYWNrOjpLaW5kOjpDYXB0aW9ucyAmJiB0
cmFjay0+a2luZCgpICE9IFRleHRUcmFjazo6S2luZDo6U3VidGl0bGVzICYmIHRyYWNrLT5tb2Rl
KCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpTaG93aW5nKQotICAgICAgICB0cmFjay0+c2V0TW9kZShU
ZXh0VHJhY2s6Ok1vZGU6OkhpZGRlbik7CisgICAgaWYgKHRyYWNrLmtpbmQoKSAhPSBUZXh0VHJh
Y2s6OktpbmQ6OkNhcHRpb25zICYmIHRyYWNrLmtpbmQoKSAhPSBUZXh0VHJhY2s6OktpbmQ6OlN1
YnRpdGxlcyAmJiB0cmFjay5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpTaG93aW5nKQorICAg
ICAgICB0cmFjay5zZXRNb2RlKFRleHRUcmFjazo6TW9kZTo6SGlkZGVuKTsKIH0KIAogdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpiZWdpbklnbm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMo
KQpAQCAtMTg4NywyNiArMTg4NiwyOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVuZElnbm9y
aW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKQogICAgICAgICB1cGRhdGVBY3RpdmVUZXh0
VHJhY2tDdWVzKGN1cnJlbnRNZWRpYVRpbWUoKSk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6dGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sqIHRyYWNrLCBjb25zdCBUZXh0VHJhY2tDdWVM
aXN0KiBjdWVzKSAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3VlcyhUZXh0
VHJhY2smIHRyYWNrLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JiBjdWVzKQogewotICAgIGlmICh0
cmFjay0+bW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQpCisgICAgaWYgKHRyYWNr
Lm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkKQogICAgICAgICByZXR1cm47CiAK
LSAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSBzY29wZSh0aGlzKTsKLSAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGN1ZXMtPmxlbmd0aCgpOyArK2kpCi0gICAgICAgIHRleHRUcmFja0FkZEN1
ZSh0cmFjaywgKmN1ZXMtPml0ZW0oaSkpOworICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNj
b3BlIHsgKnRoaXMgfTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY3Vlcy5sZW5ndGgo
KTsgKytpKQorICAgICAgICB0ZXh0VHJhY2tBZGRDdWUodHJhY2ssICpjdWVzLml0ZW0oaSkpOwog
fQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNr
KiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCogY3VlcykKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JiBj
dWVzKQogewotICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlKHRoaXMpOwotICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgY3Vlcy0+bGVuZ3RoKCk7ICsraSkKLSAgICAgICAgdGV4dFRy
YWNrUmVtb3ZlQ3VlKGN1ZXMtPml0ZW0oaSktPnRyYWNrKCksICpjdWVzLT5pdGVtKGkpKTsKKyAg
ICBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSBzY29wZSB7ICp0aGlzIH07CisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IGN1ZXMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICBhdXRvJiBjdWUg
PSAqY3Vlcy5pdGVtKGkpOworICAgICAgICB0ZXh0VHJhY2tSZW1vdmVDdWUoKmN1ZS50cmFjaygp
LCBjdWUpOworICAgIH0KIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRD
dWUoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1
ZSkKIHsKLSAgICBpZiAodHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVk
KQorICAgIGlmICh0cmFjay5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gTmVnYXRpdmUgZHVyYXRpb24gY3VlcyBuZWVkIGJlIHRy
ZWF0ZWQgaW4gdGhlIGludGVydmFsIHRyZWUgYXMKQEAgLTE5MTksNyArMTkyMCw3IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayogdHJhY2ssIFRleHRU
cmFja0N1ZSYgY3VlKQogICAgIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMoY3VycmVudE1lZGlh
VGltZSgpKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUo
VGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRl
eHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKICAgICAv
LyBOZWdhdGl2ZSBkdXJhdGlvbiBjdWVzIG5lZWQgdG8gYmUgdHJlYXRlZCBpbiB0aGUgaW50ZXJ2
YWwgdHJlZSBhcwogICAgIC8vIHplcm8tbGVuZ3RoIGN1ZXMuCkBAIC0zMjEyLDYgKzMyMTMsNyBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNlSW50ZXJuYWwoKQogfQogCiAjaWYgRU5BQkxF
KE1FRElBX1NPVVJDRSkKKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkZXRhY2hNZWRpYVNvdXJj
ZSgpCiB7CiAgICAgaWYgKCFtX21lZGlhU291cmNlKQpAQCAtMzIyMCw2ICszMjIyLDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpkZXRhY2hNZWRpYVNvdXJjZSgpCiAgICAgbV9tZWRpYVNvdXJj
ZS0+ZGV0YWNoRnJvbUVsZW1lbnQoKnRoaXMpOwogICAgIG1fbWVkaWFTb3VyY2UgPSBudWxscHRy
OwogfQorCiAjZW5kaWYKIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojpsb29wKCkgY29uc3QKQEAg
LTM1MDgsMTQgKzM1MTEsMTQgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckRp
ZEFkZEF1ZGlvVHJhY2soQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrKQogICAgIGlmIChpc1BsYXlp
bmcoKSAmJiAhbV9tZWRpYVNlc3Npb24tPnBsYXliYWNrUGVybWl0dGVkKCp0aGlzKSkKICAgICAg
ICAgcGF1c2VJbnRlcm5hbCgpOwogCi0gICAgYWRkQXVkaW9UcmFjayhBdWRpb1RyYWNrOjpjcmVh
dGUodGhpcywgJnRyYWNrKSk7CisgICAgYWRkQXVkaW9UcmFjayhBdWRpb1RyYWNrOjpjcmVhdGUo
KnRoaXMsIHRyYWNrKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJE
aWRBZGRUZXh0VHJhY2soSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2spCiB7CiAgICAgLy8g
NC44LjEwLjEyLjIgU291cmNpbmcgaW4tYmFuZCB0ZXh0IHRyYWNrcwogICAgIC8vIDEuIEFzc29j
aWF0ZSB0aGUgcmVsZXZhbnQgZGF0YSB3aXRoIGEgbmV3IHRleHQgdHJhY2sgYW5kIGl0cyBjb3Jy
ZXNwb25kaW5nIG5ldyBUZXh0VHJhY2sgb2JqZWN0LgotICAgIFJlZlB0cjxJbmJhbmRUZXh0VHJh
Y2s+IHRleHRUcmFjayA9IEluYmFuZFRleHRUcmFjazo6Y3JlYXRlKEFjdGl2ZURPTU9iamVjdDo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0aGlzLCAmdHJhY2spOworICAgIGF1dG8gdGV4dFRy
YWNrID0gSW5iYW5kVGV4dFRyYWNrOjpjcmVhdGUoKkFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLCAqdGhpcywgdHJhY2spOwogICAgIHRleHRUcmFjay0+c2V0TWVkaWFF
bGVtZW50KHRoaXMpOwogICAgIAogICAgIC8vIDIuIFNldCB0aGUgbmV3IHRleHQgdHJhY2sncyBr
aW5kLCBsYWJlbCwgYW5kIGxhbmd1YWdlIGJhc2VkIG9uIHRoZSBzZW1hbnRpY3Mgb2YgdGhlIHJl
bGV2YW50IGRhdGEsCkBAIC0zNTQxLDEyICszNTQ0LDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2soSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJh
Y2spCiAgICAgLy8gOS4gRmlyZSBhbiBldmVudCB3aXRoIHRoZSBuYW1lIGFkZHRyYWNrLCB0aGF0
IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMgbm90IGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMgdGhl
IFRyYWNrRXZlbnQKICAgICAvLyBpbnRlcmZhY2UsIHdpdGggdGhlIHRyYWNrIGF0dHJpYnV0ZSBp
bml0aWFsaXplZCB0byB0aGUgdGV4dCB0cmFjaydzIFRleHRUcmFjayBvYmplY3QsIGF0IHRoZSBt
ZWRpYSBlbGVtZW50J3MKICAgICAvLyB0ZXh0VHJhY2tzIGF0dHJpYnV0ZSdzIFRleHRUcmFja0xp
c3Qgb2JqZWN0LgotICAgIGFkZFRleHRUcmFjayh0ZXh0VHJhY2sucmVsZWFzZU5vbk51bGwoKSk7
CisgICAgYWRkVGV4dFRyYWNrKFdURk1vdmUodGV4dFRyYWNrKSk7CiB9CiAKIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRWaWRlb1RyYWNrKFZpZGVvVHJhY2tQcml2YXRl
JiB0cmFjaykKIHsKLSAgICBhZGRWaWRlb1RyYWNrKFZpZGVvVHJhY2s6OmNyZWF0ZSh0aGlzLCAm
dHJhY2spKTsKKyAgICBhZGRWaWRlb1RyYWNrKFZpZGVvVHJhY2s6OmNyZWF0ZSgqdGhpcywgdHJh
Y2spKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckRpZFJlbW92ZUF1
ZGlvVHJhY2soQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrKQpAQCAtMzYwMyw5ICszNjA2LDkgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVBdWRpb1RyYWNrKEF1ZGlvVHJhY2smIHRyYWNr
KQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZVRleHRUcmFjayhUZXh0VHJhY2smIHRy
YWNrLCBib29sIHNjaGVkdWxlRXZlbnQpCiB7Ci0gICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUg
c2NvcGUodGhpcyk7Ci0gICAgaWYgKFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMgPSB0cmFjay5jdWVz
KCkpCi0gICAgICAgIHRleHRUcmFja1JlbW92ZUN1ZXMoJnRyYWNrLCBjdWVzKTsKKyAgICBUcmFj
a0Rpc3BsYXlVcGRhdGVTY29wZSBzY29wZSB7ICp0aGlzIH07CisgICAgaWYgKGF1dG8qIGN1ZXMg
PSB0cmFjay5jdWVzKCkpCisgICAgICAgIHRleHRUcmFja1JlbW92ZUN1ZXModHJhY2ssICpjdWVz
KTsKICAgICB0cmFjay5jbGVhckNsaWVudCgpOwogICAgIGlmIChtX3RleHRUcmFja3MpCiAgICAg
ICAgIG1fdGV4dFRyYWNrcy0+cmVtb3ZlKHRyYWNrLCBzY2hlZHVsZUV2ZW50KTsKQEAgLTM2MjUs
NyArMzYyOCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Zm9yZ2V0UmVzb3VyY2VTcGVjaWZp
Y1RyYWNrcygpCiAgICAgICAgIHJlbW92ZUF1ZGlvVHJhY2soKm1fYXVkaW9UcmFja3MtPmxhc3RJ
dGVtKCkpOwogCiAgICAgaWYgKG1fdGV4dFRyYWNrcykgewotICAgICAgICBUcmFja0Rpc3BsYXlV
cGRhdGVTY29wZSBzY29wZSh0aGlzKTsKKyAgICAgICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUg
c2NvcGUgeyAqdGhpcyB9OwogICAgICAgICBmb3IgKGludCBpID0gbV90ZXh0VHJhY2tzLT5sZW5n
dGgoKSAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgICAgICBhdXRvJiB0cmFjayA9ICptX3Rl
eHRUcmFja3MtPml0ZW0oaSk7CiAgICAgICAgICAgICBpZiAodHJhY2sudHJhY2tUeXBlKCkgPT0g
VGV4dFRyYWNrOjpJbkJhbmQpCkBAIC02MDc4LDEyICs2MDgxLDEyIEBAIE1lZGlhQ29udHJvbGxl
ciogSFRNTE1lZGlhRWxlbWVudDo6Y29udHJvbGxlcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fbWVk
aWFDb250cm9sbGVyLmdldCgpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldENvbnRy
b2xsZXIoUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xsZXI+IGNvbnRyb2xsZXIpCit2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNldENvbnRyb2xsZXIoUmVmUHRyPE1lZGlhQ29udHJvbGxlcj4mJiBjb250
cm9sbGVyKQogewogICAgIGlmIChtX21lZGlhQ29udHJvbGxlcikKICAgICAgICAgbV9tZWRpYUNv
bnRyb2xsZXItPnJlbW92ZU1lZGlhRWxlbWVudCgqdGhpcyk7CiAKLSAgICBtX21lZGlhQ29udHJv
bGxlciA9IGNvbnRyb2xsZXI7CisgICAgbV9tZWRpYUNvbnRyb2xsZXIgPSBXVEZNb3ZlKGNvbnRy
b2xsZXIpOwogCiAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyKQogICAgICAgICBtX21lZGlhQ29u
dHJvbGxlci0+YWRkTWVkaWFFbGVtZW50KCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgKaW5kZXggMDIzY2MzMzYyODMzZmE4MDYxOTlhNDEzMDNhZmYxOTA1Y2JmNjVk
Zi4uZjMyZDAyMThmYzBmNTczMGMxOGVkZGVhOWE4MzAyYjM3NWEyZjFhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTI3LDEwICsyNywxMCBAQAogCiAjaWYgRU5B
QkxFKFZJREVPKQogCi0jaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJBY3RpdmVE
T01PYmplY3QuaCIKICNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkdl
bmVyaWNUYXNrUXVldWUuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxNZWRpYUVsZW1lbnRFbnVtcy5oIgogI2luY2x1ZGUgIk1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5o
IgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oIgpAQCAtNjksOSArNjksNyBA
QCBjbGFzcyBNZWRpYUNvbnRyb2xzOwogY2xhc3MgTWVkaWFDb250cm9sc0hvc3Q7CiBjbGFzcyBN
ZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU7CiBjbGFzcyBNZWRpYUVycm9yOwotI2lmIEVOQUJM
RShFTkNSWVBURURfTUVESUEpCiBjbGFzcyBNZWRpYUtleXM7Ci0jZW5kaWYKIGNsYXNzIE1lZGlh
UGxheWVyOwogY2xhc3MgTWVkaWFTZXNzaW9uOwogY2xhc3MgTWVkaWFTb3VyY2U7CkBAIC04MSw3
ICs3OSw2IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBTb3VyY2VCdWZm
ZXI7CiBjbGFzcyBUZXh0VHJhY2tMaXN0OwogY2xhc3MgVGltZVJhbmdlczsKLWNsYXNzIFVSTDsK
IGNsYXNzIFZpZGVvUGxheWJhY2tRdWFsaXR5OwogY2xhc3MgVmlkZW9UcmFja0xpc3Q7CiBjbGFz
cyBWaWRlb1RyYWNrUHJpdmF0ZTsKQEAgLTMzMSwyMCArMzI4LDIwIEBAIHB1YmxpYzoKICAgICB2
b2lkIHVwZGF0ZVRleHRUcmFja0Rpc3BsYXkoKTsKIAogICAgIC8vIEF1ZGlvVHJhY2tDbGllbnQK
LSAgICB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKikgb3ZlcnJpZGU7
CisgICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayYpIGZpbmFsOwog
CiAgICAgdm9pZCB0ZXh0VHJhY2tSZWFkeVN0YXRlQ2hhbmdlZChUZXh0VHJhY2sqKTsKIAogICAg
IC8vIFRleHRUcmFja0NsaWVudAotICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRy
YWNrKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sq
KSBvdmVycmlkZTsKLSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiwgY29uc3Qg
VGV4dFRyYWNrQ3VlTGlzdCopIG92ZXJyaWRlOwotICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3Vl
cyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0Kikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgb3Zl
cnJpZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2smKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVM
aXN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYs
IGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRleHRUcmFja0Fk
ZEN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRleHRU
cmFja1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlkZTsKIAogICAg
IC8vIFZpZGVvVHJhY2tDbGllbnQKLSAgICB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQo
VmlkZW9UcmFjayopIG92ZXJyaWRlOworICAgIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdl
ZChWaWRlb1RyYWNrJikgZmluYWw7CiAKICAgICBib29sIHJlcXVpcmVzVGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFRl
eHRUcmFja1JlcHJlc2VudGF0aW9uKik7CkBAIC00MjIsNyArNDE5LDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0TWVkaWFHcm91cChjb25zdCBTdHJpbmcmKTsKIAogICAgIE1lZGlhQ29udHJvbGxl
ciogY29udHJvbGxlcigpIGNvbnN0OwotICAgIHZvaWQgc2V0Q29udHJvbGxlcihQYXNzUmVmUHRy
PE1lZGlhQ29udHJvbGxlcj4pOworICAgIHZvaWQgc2V0Q29udHJvbGxlcihSZWZQdHI8TWVkaWFD
b250cm9sbGVyPiYmKTsKIAogICAgIHZvaWQgZW50ZXJlZE9yRXhpdGVkRnVsbHNjcmVlbigpIHsg
Y29uZmlndXJlTWVkaWFDb250cm9scygpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5jcHAKaW5kZXggYmRlNmFlMjM1ZmQyZDQ0NzlkYWZiNjg5NDBmNzE5YjAyYzM0
OGNmMy4uZTIyNGJmZTBhZTg1OGVmMmE5YWVhZDRhZWU4NTQ0MjdmNTQ4MTFjZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTUxOSwxMSArNTE5LDYgQEAg
Ym9vbCBIVE1MT2JqZWN0RWxlbWVudDo6YXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiBlbmNv
ZGluZywgYm9vbCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSFRNTEZvcm1FbGVtZW50KiBIVE1M
T2JqZWN0RWxlbWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAotewotICAgIHJldHVybiBGb3JtQXNz
b2NpYXRlZEVsZW1lbnQ6OmZvcm0oKTsKLX0KLQogYm9vbCBIVE1MT2JqZWN0RWxlbWVudDo6Y2Fu
Q29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdAogewogICAgIC8vIENhbGwgdGhyb3VnaCB0byBI
VE1MRWxlbWVudCBiZWNhdXNlIHdlIG5lZWQgdG8gc2tpcCBIVE1MUGx1Z0luRWxlbWVudApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCmluZGV4IGUzYzU1ZTRmMDU1MWU2YzZm
NTlkZjQ3NzU3OGZmOTY4MjJkYWZlZDkuLmMxNWVlNGRlNDRmODdhNWUwOTRmYzE3OGRlYTczZmRm
MjhkMmJjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKQEAgLTU0
LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHVzaW5nIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnJl
ZjsKICAgICB1c2luZyBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpkZXJlZjsKIAotICAgIHVzaW5n
IEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybTsKKyAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0o
KSBjb25zdCBmaW5hbCB7IHJldHVybiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm0oKTsgfQog
CiBwcml2YXRlOgogICAgIEhUTUxPYmplY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKQEAgLTkx
LDcgKzkxLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVmRm9ybUFzc29jaWF0ZWRFbGVtZW50
KCkgZmluYWwgeyByZWYoKTsgfQogICAgIHZvaWQgZGVyZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQo
KSBmaW5hbCB7IGRlcmVmKCk7IH0KLSAgICBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkg
Y29uc3QgZmluYWw7CiAKICAgICBGb3JtTmFtZWRJdGVtKiBhc0Zvcm1OYW1lZEl0ZW0oKSBmaW5h
bCB7IHJldHVybiB0aGlzOyB9CiAgICAgSFRNTE9iamVjdEVsZW1lbnQmIGFzSFRNTEVsZW1lbnQo
KSBmaW5hbCB7IHJldHVybiAqdGhpczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25F
bGVtZW50LmNwcAppbmRleCA5YTMwNWZmMWY3MjYwMjJiNWYzZjcyMDMyNzhjMDY2YmQ0MWY1OWZk
Li41NWRiYTk3NWJkMzVkNTYzMmFhOTFjZTdmODUyOWEzZjdjZGRiNjBiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcApAQCAtMzM0LDcgKzMzNCw3IEBAIFN0cmlu
ZyBIVE1MT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvbklubmVyVGV4dCgpIGNvbnN0CiAgICAg
ICAgIGlmIChpczxUZXh0Pigqbm9kZSkpCiAgICAgICAgICAgICB0ZXh0LmFwcGVuZChub2RlLT5u
b2RlVmFsdWUoKSk7CiAgICAgICAgIC8vIFRleHQgbm9kZXMgaW5zaWRlIHNjcmlwdCBlbGVtZW50
cyBhcmUgbm90IHBhcnQgb2YgdGhlIG9wdGlvbiB0ZXh0LgotICAgICAgICBpZiAoaXM8RWxlbWVu
dD4oKm5vZGUpICYmIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZG93bmNhc3Q8RWxlbWVudD4o
bm9kZSkpKQorICAgICAgICBpZiAoaXM8RWxlbWVudD4oKm5vZGUpICYmIGlzU2NyaXB0RWxlbWVu
dChkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkpKQogICAgICAgICAgICAgbm9kZSA9IE5vZGVUcmF2
ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKCpub2RlLCB0aGlzKTsKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoKm5vZGUsIHRoaXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAppbmRleCBhODY0ZTg3ZWFmZDQy
ODNlNTRmMWU0MGJmZWNmOTIyNWE1Y2I1ZGQ2Li45ZmU0MmU3NDljYTU3MmJlMWIxOWVlMzIwNzNk
YWIyY2Q1YjY3YzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNw
cApAQCAtMTA4LDIxICsxMDgsMjAgQEAgdm9pZCBIVE1MUGx1Z0luRWxlbWVudDo6cmVzZXRJbnN0
YW5jZSgpCiAgICAgbV9pbnN0YW5jZSA9IG51bGxwdHI7CiB9CiAKLVBhc3NSZWZQdHI8SlNDOjpC
aW5kaW5nczo6SW5zdGFuY2U+IEhUTUxQbHVnSW5FbGVtZW50OjpnZXRJbnN0YW5jZSgpCitKU0M6
OkJpbmRpbmdzOjpJbnN0YW5jZSogSFRNTFBsdWdJbkVsZW1lbnQ6OmJpbmRpbmdzSW5zdGFuY2Uo
KQogewotICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBhdXRvKiBm
cmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBJZiB0aGUgaG9zdCBkeW5h
bWljYWxseSB0dXJucyBvZmYgSmF2YVNjcmlwdCAob3IgSmF2YSkgd2Ugd2lsbCBzdGlsbCByZXR1
cm4KICAgICAvLyB0aGUgY2FjaGVkIGFsbG9jYXRlZCBCaW5kaW5nczo6SW5zdGFuY2UuICBOb3Qg
c3VwcG9ydGluZyB0aGlzIGVkZ2UtY2FzZSBpcyBPSy4KLSAgICBpZiAobV9pbnN0YW5jZSkKLSAg
ICAgICAgcmV0dXJuIG1faW5zdGFuY2U7Ci0KLSAgICBpZiAoV2lkZ2V0KiB3aWRnZXQgPSBwbHVn
aW5XaWRnZXQoKSkKLSAgICAgICAgbV9pbnN0YW5jZSA9IGZyYW1lLT5zY3JpcHQoKS5jcmVhdGVT
Y3JpcHRJbnN0YW5jZUZvcldpZGdldCh3aWRnZXQpOwogCi0gICAgcmV0dXJuIG1faW5zdGFuY2U7
CisgICAgaWYgKCFtX2luc3RhbmNlKSB7CisgICAgICAgIGlmIChhdXRvKiB3aWRnZXQgPSBwbHVn
aW5XaWRnZXQoKSkKKyAgICAgICAgICAgIG1faW5zdGFuY2UgPSBmcmFtZS0+c2NyaXB0KCkuY3Jl
YXRlU2NyaXB0SW5zdGFuY2VGb3JXaWRnZXQod2lkZ2V0KTsKKyAgICB9CisgICAgcmV0dXJuIG1f
aW5zdGFuY2UuZ2V0KCk7CiB9CiAKIGJvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6Omd1YXJkZWREaXNw
YXRjaEJlZm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAppbmRleCA1YjhjNWFkNDI4MmFiZjk1YTA1MjYyOGIy
OGZlOWQ0MDFhOWM3NzgzLi42MTdiZDY5MWQ2ZDZjZGFjZmRhM2MxYjFmODE3NmVmNDdkOTdkMDg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCkBAIC00NCw3ICs0NCw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVzZXRJbnN0YW5jZSgpOwogCi0gICAgUGFzc1JlZlB0
cjxKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZT4gZ2V0SW5zdGFuY2UoKTsKKyAgICBKU0M6OkJpbmRp
bmdzOjpJbnN0YW5jZSogYmluZGluZ3NJbnN0YW5jZSgpOwogCiAgICAgZW51bSBjbGFzcyBQbHVn
aW5Mb2FkaW5nUG9saWN5IHsgRG9Ob3RMb2FkLCBMb2FkIH07CiAgICAgV0VCQ09SRV9FWFBPUlQg
V2lkZ2V0KiBwbHVnaW5XaWRnZXQoUGx1Z2luTG9hZGluZ1BvbGljeSA9IFBsdWdpbkxvYWRpbmdQ
b2xpY3k6OkxvYWQpIGNvbnN0OwpAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAg
ICBEaXNwbGF5U3RhdGUgZGlzcGxheVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5U3Rh
dGU7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0RGlzcGxheVN0YXRlKERpc3BsYXlTdGF0ZSk7Ci0g
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+KSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlU25hcHNob3QoSW1hZ2UqKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hQZW5kaW5nTW91c2VDbGljaygpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Jl
c3RhcnRlZFBsdWdpbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCmluZGV4IGZhMjM0N2I2MGE5NjJi
NjA1ZTNlNzk4NjUwYzEzMWE4YjJiMjVhODguLmM0Y2MzNDgwMzU2MWYyZDlhZTM2NWYzOTU2NjMz
ZmFiZTcyMzIzYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbklt
YWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmNwcApAQCAtMTcxLDcgKzE3MSw3IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5CiAK
ICAgICBpZiAoZGlzcGxheVN0YXRlKCkgPT0gRGlzcGxheWluZ1NuYXBzaG90KSB7CiAgICAgICAg
IGF1dG8gcmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gPSBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbj4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKLSAgICAgICAgcmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4tPnVwZGF0ZVNuYXBzaG90KG1fc25hcHNob3RJbWFnZSk7CisgICAgICAg
IHJlbmRlclNuYXBzaG90dGVkUGx1Z0luLT51cGRhdGVTbmFwc2hvdChtX3NuYXBzaG90SW1hZ2Uu
Z2V0KCkpOwogICAgICAgICByZXR1cm4gV1RGTW92ZShyZW5kZXJTbmFwc2hvdHRlZFBsdWdJbik7
CiAgICAgfQogCkBAIC0zMDEsNyArMzAxLDcgQEAgdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
OjpzdGFydExvYWRpbmdJbWFnZSgpCiAgICAgbV9pbWFnZUxvYWRlci0+dXBkYXRlRnJvbUVsZW1l
bnQoKTsKIH0KIAotdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVTbmFwc2hvdChQ
YXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKK3ZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBk
YXRlU25hcHNob3QoSW1hZ2UqIGltYWdlKQogewogICAgIGlmIChkaXNwbGF5U3RhdGUoKSA+IERp
c3BsYXlpbmdTbmFwc2hvdCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAppbmRleCBhM2Y3ZTEwOGNmOTJlMDVhOWJiOGRhNGRh
NjkyYWY0MDBmZDA2YTQ2Li4zMzcwNTY4Mzg2NWE2MThlMjkxODY4MmVmMmMxODcyNzY0OTkzMDA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaApAQCAt
MTE4LDcgKzExOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2
ZW50JikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFBlbmRpbmdNb3VzZUNsaWNrKCkgZmluYWw7
CiAKLSAgICB2b2lkIHVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+KSBmaW5hbDsKKyAg
ICB2b2lkIHVwZGF0ZVNuYXBzaG90KEltYWdlKikgZmluYWw7CiAKICAgICB2b2lkIHN0YXJ0TG9h
ZGluZ0ltYWdlKCk7CiAgICAgdm9pZCB1cGRhdGVXaWRnZXRJZk5lY2Vzc2FyeSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IGYyYmQ1MjVjNzRkZGQzZDdiOGEx
ZmMxZTk2OTI1MmU4NjNjZGY1NzUuLmNmYzczMTU1NmEyMWY5OWZlZmVkMzM3MDc4MDQxMjBiNjIz
YWQwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTQzLDYg
KzQzLDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q3Jvc3NPcmlnaW4o
Y29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNyb3NzT3Jp
Z2luKCkgY29uc3Q7CiAKKyAgICB1c2luZyBIVE1MRWxlbWVudDo6cmVmOworICAgIHVzaW5nIEhU
TUxFbGVtZW50OjpkZXJlZjsKKwogcHJpdmF0ZToKICAgICBIVE1MU2NyaXB0RWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJv
b2wgYWxyZWFkeVN0YXJ0ZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDdkYjkxNGY3MDZiM2E2ZmFmOTQzNGE4ZjI0
ZWUxMjE4MTVhNzRkZjIuLjBlYjkzOWQ5NDU3N2FkMzBmZTlmYTM2NGM3ODIwYjYzZGRmNjllMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCkBAIC00MjcsNyArNDI3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldENvbnRhaW5l
ckFuZE9mZnNldEZvclJhbmdlKE5vZGUqIG5vZGUsIGludCBvZmZzZXQsIE5vZGUqJgogICAgIH0K
IH0KIAotUGFzc1JlZlB0cjxSYW5nZT4gSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVj
dGlvbigpIGNvbnN0CitSZWZQdHI8UmFuZ2U+IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpz
ZWxlY3Rpb24oKSBjb25zdAogewogICAgIGlmICghcmVuZGVyZXIoKSB8fCAhaXNUZXh0Rm9ybUNv
bnRyb2woKSB8fCAhaGFzQ2FjaGVkU2VsZWN0aW9uKCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5o
CmluZGV4IDRhNjNlOTcxYWFiMWZlYjVkMzQ2ZGM0MjIzMWI2YjEyNjZjMGI2M2YuLjZlNGQ5Yjgx
NDc4NWM1YWVhYWJlMTE1MzBkZGJiMTMxZWJmZDExMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTc0LDcgKzc0LDcgQEAgcHVi
bGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0UmFu
Z2VUZXh0KGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25l
ZCBlbmQsIGNvbnN0IFN0cmluZyYgc2VsZWN0aW9uTW9kZSk7CiAgICAgdm9pZCBzZXRTZWxlY3Rp
b25SYW5nZShpbnQgc3RhcnQsIGludCBlbmQsIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBjb25z
dCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvblJhbmdlKGludCBzdGFydCwgaW50
IGVuZCwgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uID0gU2VsZWN0aW9uSGFzTm9EaXJlY3Rp
b24sIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50KCkpOwotICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHNlbGVjdGlvbigpIGNvbnN0OworICAgIFJl
ZlB0cjxSYW5nZT4gc2VsZWN0aW9uKCkgY29uc3Q7CiAgICAgU3RyaW5nIHNlbGVjdGVkVGV4dCgp
IGNvbnN0OwogCiAgICAgdm9pZCBkaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKSBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCmluZGV4IDA3ZjQyZDk5
ZjhkN2I0OGE5YmEyNDFiNGM0NzFkNTc5ZjU1ZThiZDUuLjIyY2QwZTdlYjRmZmNhZWVjN2JkMDVi
MWY0Zjc5Mzg5MTZlNTBjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRy
YWNrRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50
LmNwcApAQCAtMjc5LDQzICsyNzksNDMgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MVHJhY2tF
bGVtZW50OjptZWRpYUVsZW1lbnRDcm9zc09yaWdpbkF0dHJpYnV0ZSgpIGNvbnN0CiAgICAgcmV0
dXJuIG51bGxBdG9tOwogfQogCi12b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0tpbmRD
aGFuZ2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFj
a0tpbmRDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7Ci0gICAgaWYgKEhUTUxNZWRpYUVsZW1l
bnQqIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQorICAgIGlmIChhdXRvKiBwYXJlbnQgPSBtZWRp
YUVsZW1lbnQoKSkKICAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tLaW5kQ2hhbmdlZCh0cmFjayk7
CiB9CiAKLXZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRy
YWNrKiB0cmFjaykKK3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQo
VGV4dFRyYWNrJiB0cmFjaykKIHsKICAgICAvLyBTaW5jZSB3ZSd2ZSBtb3ZlZCB0byBhIG5ldyBw
YXJlbnQsIHdlIG1heSBub3cgYmUgYWJsZSB0byBsb2FkLgogICAgIGlmIChyZWFkeVN0YXRlKCkg
PT0gSFRNTFRyYWNrRWxlbWVudDo6Tk9ORSkKICAgICAgICAgc2NoZWR1bGVMb2FkKCk7CiAKLSAg
ICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYg
KGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFj
a01vZGVDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJh
Y2tBZGRDdWVzKFRleHRUcmFjayogdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMp
Cit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiB0cmFj
aywgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAgICBpZiAoSFRNTE1lZGlhRWxl
bWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1l
ZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja0FkZEN1ZXModHJhY2ssIGN1
ZXMpOwogfQogICAgIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWVz
KFRleHRUcmFjayogdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMpCit2b2lkIEhU
TUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiB0cmFjaywgY29u
c3QgVGV4dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCog
cGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1lZGlhRWxl
bWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja1JlbW92ZUN1ZXModHJhY2ssIGN1ZXMp
OwogfQogICAgIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRy
YWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRl
eHRUcmFja0FkZEN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKLSAg
ICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYg
KGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFj
a0FkZEN1ZSh0cmFjaywgY3VlKTsKIH0KICAgICAKLXZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4
dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9p
ZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiB0cmFjaywg
VGV4dFRyYWNrQ3VlJiBjdWUpCiB7Ci0gICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIHBhcmVudCA9
IG1lZGlhRWxlbWVudCgpKQorICAgIGlmIChhdXRvKiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkK
ICAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUodHJhY2ssIGN1ZSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKaW5kZXggOWI0MjVkY2Q4NWQxZTBkNGYz
NjBjODZkMmVhNjJkMTkwOGU0YjdiMC4uNzQ5ZWQxYjRlNzA4ZGZlMTU2NTgxZmQwZjhkOTdkNTVj
NjQ1OGY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKQEAgLTc0LDEy
ICs3NCwxMiBAQCBwcml2YXRlOgogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCgp
IGNvbnN0OwogCiAgICAgLy8gVGV4dFRyYWNrQ2xpZW50Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2Rl
Q2hhbmdlZChUZXh0VHJhY2sqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0tpbmRDaGFuZ2Vk
KFRleHRUcmFjayopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sq
LCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1v
dmVDdWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBmaW5hbDsKLSAgICB2
b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKLSAg
ICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBmaW5h
bDsKKyAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIGZpbmFsOworICAg
IHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJikgZmluYWw7CisgICAgdm9pZCB0
ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBmaW5h
bDsKKyAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRy
YWNrQ3VlTGlzdCYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYs
IFRleHRUcmFja0N1ZSYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRU
cmFjayYsIFRleHRUcmFja0N1ZSYpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5Mb2FkVVJMKGNvbnN0
IFVSTCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggZjZhNmJiYzQ2NGI5YWZh
MzhkNTdiNGQxZWM0N2NmM2NjYTkyNjZkNC4uMzcxNzVkYzQ2MzUyNzdhZThmOGIzMjhhYzQ5NmIz
MzAzZjBjYjg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNDgyLDExICs0ODIs
NiBAQCBib29sIElucHV0VHlwZTo6c2hvdWxkU3VibWl0SW1wbGljaXRseShFdmVudCYgZXZlbnQp
CiAgICAgcmV0dXJuIGlzPEtleWJvYXJkRXZlbnQ+KGV2ZW50KSAmJiBldmVudC50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQgJiYgZG93bmNhc3Q8S2V5Ym9hcmRFdmVudD4oZXZl
bnQpLmNoYXJDb2RlKCkgPT0gJ1xyJzsKIH0KIAotUGFzc1JlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+
IElucHV0VHlwZTo6Zm9ybUZvclN1Ym1pc3Npb24oKSBjb25zdAotewotICAgIHJldHVybiBlbGVt
ZW50KCkuZm9ybSgpOwotfQotCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSW5wdXRUeXBlOjpj
cmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUpCiB7CiAgICAgcmV0dXJuIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PihSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoZWxlbWVudCgp
LCBXVEZNb3ZlKHN0eWxlKSkpOwpAQCAtNTUxLDcgKzU0Niw3IEBAIENocm9tZSogSW5wdXRUeXBl
OjpjaHJvbWUoKSBjb25zdAogewogICAgIGlmIChQYWdlKiBwYWdlID0gZWxlbWVudCgpLmRvY3Vt
ZW50KCkucGFnZSgpKQogICAgICAgICByZXR1cm4gJnBhZ2UtPmNocm9tZSgpOwotICAgIHJldHVy
biAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBib29sIElucHV0VHlwZTo6Y2FuU2V0U3Ry
aW5nVmFsdWUoKSBjb25zdApAQCAtNjM2LDcgKzYzMSw3IEBAIGJvb2wgSW5wdXRUeXBlOjpjYW5C
ZVN1Y2Nlc3NmdWxTdWJtaXRCdXR0b24oKQogCiBIVE1MRWxlbWVudCogSW5wdXRUeXBlOjpwbGFj
ZWhvbGRlckVsZW1lbnQoKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxs
cHRyOwogfQogCiBib29sIElucHV0VHlwZTo6cmVuZGVyZXJJc05lZWRlZCgpCkBAIC02NDYsMTAg
KzY0MSwxMCBAQCBib29sIElucHV0VHlwZTo6cmVuZGVyZXJJc05lZWRlZCgpCiAKIEZpbGVMaXN0
KiBJbnB1dFR5cGU6OmZpbGVzKCkKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAotdm9pZCBJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KQor
dm9pZCBJbnB1dFR5cGU6OnNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4mJikKIHsKIH0KIApAQCAt
NzMxLDI1ICs3MjYsMjkgQEAgU3RyaW5nIElucHV0VHlwZTo6c2FuaXRpemVWYWx1ZShjb25zdCBT
dHJpbmcmIHByb3Bvc2VkVmFsdWUpIGNvbnN0CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JU
KQorCiBib29sIElucHV0VHlwZTo6cmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBEcmFnRGF0YSYp
CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCiAj
ZW5kaWYKIAogSWNvbiogSW5wdXRUeXBlOjppY29uKCkgY29uc3QKIHsKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogI2lm
IFBMQVRGT1JNKElPUykKKwogU3RyaW5nIElucHV0VHlwZTo6ZGlzcGxheVN0cmluZygpIGNvbnN0
CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQor
CiAjZW5kaWYKIAogYm9vbCBJbnB1dFR5cGU6OnNob3VsZFJlc2V0T25Eb2N1bWVudEFjdGl2YXRp
b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggYzRiZTczZDQwMDRkNjhkOTEzMGI5YWI5
NDZhMTcwMGU3MDMzZGUyNC4uMmYxYzMyOTdhZjA3ODZkZWRhNDJjZWNlYzk0NWVhYTJkYjkwZmQ4
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC0xOTIsNyArMTkyLDYgQEAgcHVibGljOgog
ICAgIC8vIEhlbHBlcnMgZm9yIGV2ZW50IGhhbmRsZXJzLgogCiAgICAgdmlydHVhbCBib29sIHNo
b3VsZFN1Ym1pdEltcGxpY2l0bHkoRXZlbnQmKTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SFRN
TEZvcm1FbGVtZW50PiBmb3JtRm9yU3VibWlzc2lvbigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9v
bCBoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzS2V5Ym9h
cmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc01v
dXNlRm9jdXNhYmxlKCkgY29uc3Q7CkBAIC0yMzksNyArMjM4LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBtYXhSZXN1bHRzQXR0cmlidXRlQ2hhbmdlZCgpOwogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRSZXNwZWN0QWxpZ25BdHRyaWJ1dGUoKTsKICAgICB2aXJ0dWFsIEZpbGVMaXN0KiBm
aWxlcygpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0Pik7
CisgICAgdmlydHVhbCB2b2lkIHNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4mJik7CiAgICAgdmly
dHVhbCBJY29uKiBpY29uKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFNlbmRDaGFu
Z2VFdmVudEFmdGVyQ2hlY2tlZENoYW5nZWQoKTsKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0VmFs
dWUoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdp
bkRvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmlu
ZGV4IGYzNTFmOTc5NTE1ZjVjZWM5YTQ5OTRlMGQ3NWQwMWRjNDIxODk2MDUuLmRjY2U5ZDM4YTg3
NWE1MjllODE5NzE2YzhiNzEwYTUxNTNhYTc3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2lu
RG9jdW1lbnQuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNl
cjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogICAgIGlmIChhdXRvKiBsb2FkZXIgPSBkb2N1
bWVudC5sb2FkZXIoKSkKICAgICAgICAgbV9lbWJlZEVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24odHlwZUF0dHIsIGxvYWRlci0+d3JpdGVyKCkubWltZVR5cGUoKSk7
CiAKLSAgICBkb2N1bWVudC5zZXRQbHVnaW5FbGVtZW50KG1fZW1iZWRFbGVtZW50KTsKKyAgICBk
b2N1bWVudC5zZXRQbHVnaW5FbGVtZW50KCptX2VtYmVkRWxlbWVudCk7CiAKICAgICBib2R5LT5h
cHBlbmRDaGlsZChlbWJlZEVsZW1lbnQpOwogfQpAQCAtMTYwLDkgKzE2MCw5IEBAIFdpZGdldCog
UGx1Z2luRG9jdW1lbnQ6OnBsdWdpbldpZGdldCgpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
LXZvaWQgUGx1Z2luRG9jdW1lbnQ6OnNldFBsdWdpbkVsZW1lbnQoUGFzc1JlZlB0cjxIVE1MUGx1
Z0luRWxlbWVudD4gZWxlbWVudCkKK3ZvaWQgUGx1Z2luRG9jdW1lbnQ6OnNldFBsdWdpbkVsZW1l
bnQoSFRNTFBsdWdJbkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9wbHVnaW5FbGVtZW50ID0g
ZWxlbWVudDsKKyAgICBtX3BsdWdpbkVsZW1lbnQgPSAmZWxlbWVudDsKIH0KIAogdm9pZCBQbHVn
aW5Eb2N1bWVudDo6ZGV0YWNoRnJvbVBsdWdpbkVsZW1lbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVn
aW5Eb2N1bWVudC5oCmluZGV4IDNjZDA2MTI1NTBmNmY4ZmJlOTZjODliNWI1ZmI1ZTU2MTQzYzVm
N2UuLmJlZmU1MWZjYWY1M2U0MzJhZTJlZDRkM2JjOTQ1YTg1ZDNkMDFmYTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1BsdWdpbkRvY3VtZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQbHVnaW5Eb2N1bWVudChmcmFtZSwgdXJsKSk7CiAgICAg
fQogCi0gICAgdm9pZCBzZXRQbHVnaW5FbGVtZW50KFBhc3NSZWZQdHI8SFRNTFBsdWdJbkVsZW1l
bnQ+KTsKKyAgICB2b2lkIHNldFBsdWdpbkVsZW1lbnQoSFRNTFBsdWdJbkVsZW1lbnQmKTsKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIFdpZGdldCogcGx1Z2luV2lkZ2V0KCk7CiAgICAgSFRNTFBsdWdJ
bkVsZW1lbnQqIHBsdWdpbkVsZW1lbnQoKSB7IHJldHVybiBtX3BsdWdpbkVsZW1lbnQuZ2V0KCk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwCmluZGV4IDk0ZThiNGRjZWM0NGZkOGZlNmFhOTIxNGQ1NWQ5NTliNTg3
MTlkZTUuLjZkYjI4Mjk5MmY0YTM3M2U0ZjhkNjk5YjgwOWI3MDI3MDU0NDZmY2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmNwcApAQCAtNDE3LDcgKzQxNyw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
OjpzZXRTdHJva2VTdHlsZShDYW52YXNTdHlsZSBzdHlsZSkKICAgICBHcmFwaGljc0NvbnRleHQq
IGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJuOwotICAg
IHN0YXRlLnN0cm9rZVN0eWxlLmFwcGx5U3Ryb2tlQ29sb3IoYyk7CisgICAgc3RhdGUuc3Ryb2tl
U3R5bGUuYXBwbHlTdHJva2VDb2xvcigqYyk7CiAgICAgc3RhdGUudW5wYXJzZWRTdHJva2VDb2xv
ciA9IFN0cmluZygpOwogfQogCkBAIC00NDQsNyArNDQ0LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OnNldEZpbGxTdHlsZShDYW52YXNTdHlsZSBzdHlsZSkKICAgICBHcmFwaGlj
c0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0
dXJuOwotICAgIHN0YXRlLmZpbGxTdHlsZS5hcHBseUZpbGxDb2xvcihjKTsKKyAgICBzdGF0ZS5m
aWxsU3R5bGUuYXBwbHlGaWxsQ29sb3IoKmMpOwogICAgIHN0YXRlLnVucGFyc2VkRmlsbENvbG9y
ID0gU3RyaW5nKCk7CiB9CiAKQEAgLTI0NDUsNyArMjQ0NSw3IEBAIHZvaWQgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQg
eCwgZmxvCiAKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpj
KTsKICAgICAgICAgYy0+Y2xpcFRvSW1hZ2VCdWZmZXIoKm1hc2tJbWFnZSwgbWFza1JlY3QpOwot
ICAgICAgICBkcmF3U3R5bGUuYXBwbHlGaWxsQ29sb3IoYyk7CisgICAgICAgIGRyYXdTdHlsZS5h
cHBseUZpbGxDb2xvcigqYyk7CiAgICAgICAgIGMtPmZpbGxSZWN0KG1hc2tSZWN0KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1N0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxl
LmNwcAppbmRleCA5YWEwYTA1MmY0NjFhZDZiMmM1ZWFjNmFmZWMzMjMxNTY1ZTAyMTM2Li5iY2Jl
MmEwNTRjNDlhYTE0ZTZkMTkzNmYzYjc0ZTI2MjllZjM3MmQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwCkBAIC01Myw3ICs1Myw2IEBAIHN0YXRpYyBDb2xv
ciBwYXJzZUNvbG9yKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIERvY3VtZW50KiBkb2N1bWVu
dCA9IG51bGxwdHIpCiAgICAgQ29sb3IgY29sb3IgPSBDU1NQYXJzZXI6OnBhcnNlQ29sb3IoY29s
b3JTdHJpbmcpOwogICAgIGlmIChjb2xvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBjb2xv
cjsKLQogICAgIHJldHVybiBDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3IoY29sb3JTdHJpbmcs
IGRvY3VtZW50KTsKIH0KIApAQCAtNzYsMjA4ICs3NSwxNTAgQEAgQ29sb3IgcGFyc2VDb2xvck9y
Q3VycmVudENvbG9yKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIEhUTUxDYW52YXNFbGVtZW50
KiBjYW4KIH0KIAogQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKENvbG9yIGNvbG9yKQotICAgIDog
bV9jb2xvcihjb2xvcikKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDogbV9zdHlsZShjb2xvcikK
IHsKIH0KIAogQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQg
YWxwaGEpCi0gICAgOiBtX2NvbG9yKENvbG9yKGdyYXlMZXZlbCwgZ3JheUxldmVsLCBncmF5TGV2
ZWwsIGFscGhhKSkKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDogbV9zdHlsZShDb2xvciB7IGdy
YXlMZXZlbCwgZ3JheUxldmVsLCBncmF5TGV2ZWwsIGFscGhhIH0pCiB7CiB9CiAKIENhbnZhc1N0
eWxlOjpDYW52YXNTdHlsZShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhKQotICAg
IDogbV9jb2xvcihDb2xvcihyLCBnLCBiLCBhKSkKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDog
bV9zdHlsZShDb2xvciB7IHIsIGcsIGIsIGEgfSkKIHsKIH0KIAogQ2FudmFzU3R5bGU6OkNhbnZh
c1N0eWxlKGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZsb2F0IGEpCi0gICAg
OiBtX2NteWthKG5ldyBDTVlLQVZhbHVlcyhDb2xvcihjLCBtLCB5LCBrLCBhKSwgYywgbSwgeSwg
aywgYSkpCi0gICAgLCBtX3R5cGUoQ01ZS0EpCisgICAgOiBtX3N0eWxlKENNWUtBQ29sb3IgeyBD
b2xvciB7IGMsIG0sIHksIGssIGEgfSwgYywgbSwgeSwgaywgYSB9KQogewogfQogCi1DYW52YXNT
dHlsZTo6Q2FudmFzU3R5bGUoUGFzc1JlZlB0cjxDYW52YXNHcmFkaWVudD4gZ3JhZGllbnQpCi0g
ICAgOiBtX2dyYWRpZW50KGdyYWRpZW50LmxlYWtSZWYoKSkKLSAgICAsIG1fdHlwZShHcmFkaWVu
dCkKK0NhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShDYW52YXNHcmFkaWVudCYgZ3JhZGllbnQpCisg
ICAgOiBtX3N0eWxlKG1ha2VSZWZQdHIoZ3JhZGllbnQpKQogewotICAgIGlmICghbV9ncmFkaWVu
dCkKLSAgICAgICAgbV90eXBlID0gSW52YWxpZDsKIH0KIAotQ2FudmFzU3R5bGU6OkNhbnZhc1N0
eWxlKFBhc3NSZWZQdHI8Q2FudmFzUGF0dGVybj4gcGF0dGVybikKLSAgICA6IG1fcGF0dGVybihw
YXR0ZXJuLmxlYWtSZWYoKSkKLSAgICAsIG1fdHlwZShJbWFnZVBhdHRlcm4pCitDYW52YXNTdHls
ZTo6Q2FudmFzU3R5bGUoQ2FudmFzUGF0dGVybiYgcGF0dGVybikKKyAgICA6IG1fc3R5bGUobWFr
ZVJlZlB0cihwYXR0ZXJuKSkKIHsKLSAgICBpZiAoIW1fcGF0dGVybikKLSAgICAgICAgbV90eXBl
ID0gSW52YWxpZDsKIH0KIAotQ2FudmFzU3R5bGU6On5DYW52YXNTdHlsZSgpCitpbmxpbmUgQ2Fu
dmFzU3R5bGU6OkNhbnZhc1N0eWxlKEN1cnJlbnRDb2xvciBjb2xvcikKKyAgICA6IG1fc3R5bGUo
Y29sb3IpCiB7Ci0gICAgaWYgKG1fdHlwZSA9PSBHcmFkaWVudCkKLSAgICAgICAgbV9ncmFkaWVu
dC0+ZGVyZWYoKTsKLSAgICBlbHNlIGlmIChtX3R5cGUgPT0gSW1hZ2VQYXR0ZXJuKQotICAgICAg
ICBtX3BhdHRlcm4tPmRlcmVmKCk7Ci0gICAgZWxzZSBpZiAobV90eXBlID09IENNWUtBKQotICAg
ICAgICBkZWxldGUgbV9jbXlrYTsKIH0KIAogQ2FudmFzU3R5bGUgQ2FudmFzU3R5bGU6OmNyZWF0
ZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZywgRG9jdW1lbnQqIGRvY3VtZW50
KQogewogICAgIGlmIChpc0N1cnJlbnRDb2xvclN0cmluZyhjb2xvclN0cmluZykpCi0gICAgICAg
IHJldHVybiBDYW52YXNTdHlsZShDb25zdHJ1Y3RDdXJyZW50Q29sb3IpOworICAgICAgICByZXR1
cm4gQ3VycmVudENvbG9yIHsgc3RkOjpudWxsb3B0IH07CiAKICAgICBDb2xvciBjb2xvciA9IHBh
cnNlQ29sb3IoY29sb3JTdHJpbmcsIGRvY3VtZW50KTsKLSAgICBpZiAoY29sb3IuaXNWYWxpZCgp
KQotICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUoY29sb3IpOworICAgIGlmICghY29sb3IuaXNW
YWxpZCgpKQorICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIENhbnZhc1N0eWxlKCk7
CisgICAgcmV0dXJuIGNvbG9yOwogfQogCiBDYW52YXNTdHlsZSBDYW52YXNTdHlsZTo6Y3JlYXRl
RnJvbVN0cmluZ1dpdGhPdmVycmlkZUFscGhhKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIGZs
b2F0IGFscGhhKQogewogICAgIGlmIChpc0N1cnJlbnRDb2xvclN0cmluZyhjb2xvclN0cmluZykp
Ci0gICAgICAgIHJldHVybiBDYW52YXNTdHlsZShDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBo
YSwgYWxwaGEpOworICAgICAgICByZXR1cm4gQ3VycmVudENvbG9yIHsgYWxwaGEgfTsKIAogICAg
IENvbG9yIGNvbG9yID0gcGFyc2VDb2xvcihjb2xvclN0cmluZyk7Ci0gICAgaWYgKGNvbG9yLmlz
VmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIENhbnZhc1N0eWxlKGNvbG9yV2l0aE92ZXJyaWRlQWxw
aGEoY29sb3IucmdiKCksIGFscGhhKSk7CisgICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpCisgICAg
ICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gQ2FudmFzU3R5bGUoKTsKKyAgICByZXR1cm4g
Q29sb3IgeyBjb2xvcldpdGhPdmVycmlkZUFscGhhKGNvbG9yLnJnYigpLCBhbHBoYSkgfTsKIH0K
IAogYm9vbCBDYW52YXNTdHlsZTo6aXNFcXVpdmFsZW50Q29sb3IoY29uc3QgQ2FudmFzU3R5bGUm
IG90aGVyKSBjb25zdAogewotICAgIGlmIChtX3R5cGUgIT0gb3RoZXIubV90eXBlKQotICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG1f
c3R5bGUpICYmIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG90aGVyLm1fc3R5bGUpKQor
ICAgICAgICByZXR1cm4gV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpID09IFdURjo6Z2V0PENvbG9y
PihvdGhlci5tX3N0eWxlKTsKIAotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBSR0JB
OgotICAgICAgICByZXR1cm4gbV9jb2xvciA9PSBvdGhlci5tX2NvbG9yOwotICAgIGNhc2UgQ01Z
S0E6Ci0gICAgICAgIHJldHVybiBtX2NteWthLT5jID09IG90aGVyLm1fY215a2EtPmMKLSAgICAg
ICAgICAgICYmIG1fY215a2EtPm0gPT0gb3RoZXIubV9jbXlrYS0+bQotICAgICAgICAgICAgJiYg
bV9jbXlrYS0+eSA9PSBvdGhlci5tX2NteWthLT55Ci0gICAgICAgICAgICAmJiBtX2NteWthLT5r
ID09IG90aGVyLm1fY215a2EtPmsKLSAgICAgICAgICAgICYmIG1fY215a2EtPmEgPT0gb3RoZXIu
bV9jbXlrYS0+YTsKLSAgICBjYXNlIEdyYWRpZW50OgotICAgIGNhc2UgSW1hZ2VQYXR0ZXJuOgot
ICAgIGNhc2UgQ3VycmVudENvbG9yOgotICAgIGNhc2UgQ3VycmVudENvbG9yV2l0aE92ZXJyaWRl
QWxwaGE6Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjYXNlIEludmFsaWQ6Ci0gICAgICAg
IGJyZWFrOworICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENNWUtBQ29sb3I+KG1fc3R5
bGUpICYmIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q01ZS0FDb2xvcj4ob3RoZXIubV9zdHlsZSkp
IHsKKyAgICAgICAgYXV0byYgYSA9IFdURjo6Z2V0PENNWUtBQ29sb3I+KG1fc3R5bGUpOworICAg
ICAgICBhdXRvJiBiID0gV1RGOjpnZXQ8Q01ZS0FDb2xvcj4ob3RoZXIubV9zdHlsZSk7CisgICAg
ICAgIHJldHVybiBhLmMgPT0gYi5jICYmIGEubSA9PSBiLm0gJiYgYS55ID09IGIueSAmJiBhLmsg
PT0gYi5rICYmIGEuYSA9PSBiLmE7CiAgICAgfQogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIENhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRS
R0JBKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGEpIGNvbnN0CiB7Ci0gICAgaWYg
KG1fdHlwZSAhPSBSR0JBKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9j
b2xvciA9PSBDb2xvcihyLCBnLCBiLCBhKTsKKyAgICByZXR1cm4gV1RGOjpob2xkc19hbHRlcm5h
dGl2ZTxDb2xvcj4obV9zdHlsZSkgJiYgV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpID09IENvbG9y
IHsgciwgZywgYiwgYSB9OwogfQogCiBib29sIENhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDTVlL
QShmbG9hdCBjLCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBhKSBjb25zdAogewot
ICAgIGlmIChtX3R5cGUgIT0gQ01ZS0EpCisgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZl
PENNWUtBQ29sb3I+KG1fc3R5bGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1
cm4gYyA9PSBtX2NteWthLT5jCi0gICAgICAgICYmIG0gPT0gbV9jbXlrYS0+bQotICAgICAgICAm
JiB5ID09IG1fY215a2EtPnkKLSAgICAgICAgJiYgayA9PSBtX2NteWthLT5rCi0gICAgICAgICYm
IGEgPT0gbV9jbXlrYS0+YTsKLX0KLQotQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGNvbnN0IENh
bnZhc1N0eWxlJiBvdGhlcikKLXsKLSAgICBtZW1jcHkodGhpcywgJm90aGVyLCBzaXplb2YoQ2Fu
dmFzU3R5bGUpKTsKLSAgICBpZiAobV90eXBlID09IEdyYWRpZW50KQotICAgICAgICBtX2dyYWRp
ZW50LT5yZWYoKTsKLSAgICBlbHNlIGlmIChtX3R5cGUgPT0gSW1hZ2VQYXR0ZXJuKQotICAgICAg
ICBtX3BhdHRlcm4tPnJlZigpOwotICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBDTVlLQSkKLSAgICAg
ICAgbV9jbXlrYSA9IG5ldyBDTVlLQVZhbHVlcyhvdGhlci5tX2NteWthLT5jb2xvciwgb3RoZXIu
bV9jbXlrYS0+Yywgb3RoZXIubV9jbXlrYS0+bSwgb3RoZXIubV9jbXlrYS0+eSwgb3RoZXIubV9j
bXlrYS0+aywgb3RoZXIubV9jbXlrYS0+YSk7Ci19Ci0KLUNhbnZhc1N0eWxlJiBDYW52YXNTdHls
ZTo6b3BlcmF0b3I9KGNvbnN0IENhbnZhc1N0eWxlJiBvdGhlcikKLXsKLSAgICBpZiAodGhpcyAh
PSAmb3RoZXIpIHsKLSAgICAgICAgdGhpcy0+fkNhbnZhc1N0eWxlKCk7Ci0gICAgICAgIG5ldyAo
dGhpcykgQ2FudmFzU3R5bGUob3RoZXIpOwotICAgIH0KLSAgICByZXR1cm4gKnRoaXM7CisgICAg
YXV0byYgY2hhbm5lbHMgPSBXVEY6OmdldDxDTVlLQUNvbG9yPihtX3N0eWxlKTsKKyAgICByZXR1
cm4gYyA9PSBjaGFubmVscy5jICYmIG0gPT0gY2hhbm5lbHMubSAmJiB5ID09IGNoYW5uZWxzLnkg
JiYgayA9PSBjaGFubmVscy5rICYmIGEgPT0gY2hhbm5lbHMuYTsKIH0KIAotdm9pZCBDYW52YXNT
dHlsZTo6YXBwbHlTdHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpIGNvbnN0Cit2
b2lkIENhbnZhc1N0eWxlOjphcHBseVN0cm9rZUNvbG9yKEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCkgY29uc3QKIHsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICBzd2l0
Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgUkdCQToKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tl
Q29sb3IobV9jb2xvcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ01ZS0E6IHsKLSAgICAg
ICAgLy8gRklYTUU6IERvIHRoaXMgdGhyb3VnaCBwbGF0Zm9ybS1pbmRlcGVuZGVudCBHcmFwaGlj
c0NvbnRleHQgQVBJLgotICAgICAgICAvLyBXZSdsbCBuZWVkIGEgZmFuY2llciBDb2xvciBhYnN0
cmFjdGlvbiB0byBzdXBwb3J0IENNWUtBIGNvcnJlY3RseQorICAgIFdURjo6c3dpdGNoT24obV9z
dHlsZSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgQ29sb3ImIGNvbG9yKSB7CisgICAgICAg
ICAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9yKTsKKyAgICAgICAgfSwKKyAgICAgICAg
WyZjb250ZXh0XSAoY29uc3QgQ01ZS0FDb2xvciYgY29sb3IpIHsKKyAgICAgICAgICAgIC8vIEZJ
WE1FOiBEbyB0aGlzIHRocm91Z2ggcGxhdGZvcm0taW5kZXBlbmRlbnQgR3JhcGhpY3NDb250ZXh0
IEFQSS4KKyAgICAgICAgICAgIC8vIFdlJ2xsIG5lZWQgYSBmYW5jaWVyIENvbG9yIGFic3RyYWN0
aW9uIHRvIHN1cHBvcnQgQ01ZS0EgY29ycmVjdGx5CiAjaWYgVVNFKENHKQotICAgICAgICBDR0Nv
bnRleHRTZXRDTVlLU3Ryb2tlQ29sb3IoY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIG1fY215
a2EtPmMsIG1fY215a2EtPm0sIG1fY215a2EtPnksIG1fY215a2EtPmssIG1fY215a2EtPmEpOwor
ICAgICAgICAgICAgQ0dDb250ZXh0U2V0Q01ZS1N0cm9rZUNvbG9yKGNvbnRleHQucGxhdGZvcm1D
b250ZXh0KCksIGNvbG9yLmMsIGNvbG9yLm0sIGNvbG9yLnksIGNvbG9yLmssIGNvbG9yLmEpOwog
I2Vsc2UKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3IobV9jbXlrYS0+Y29sb3IpOwor
ICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihjb2xvci5jb2xvcik7CiAjZW5kaWYK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgR3JhZGllbnQ6Ci0gICAgICAgIGNvbnRl
eHQtPnNldFN0cm9rZUdyYWRpZW50KGNhbnZhc0dyYWRpZW50KCktPmdyYWRpZW50KCkpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEltYWdlUGF0dGVybjoKLSAgICAgICAgY29udGV4dC0+c2V0
U3Ryb2tlUGF0dGVybihjYW52YXNQYXR0ZXJuKCktPnBhdHRlcm4oKSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgQ3VycmVudENvbG9yOgotICAgIGNhc2UgQ3VycmVudENvbG9yV2l0aE92ZXJy
aWRlQWxwaGE6Ci0gICAgY2FzZSBJbnZhbGlkOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi12b2lkIENhbnZhc1N0eWxlOjphcHBseUZp
bGxDb2xvcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpIGNvbnN0Ci17Ci0gICAgaWYgKCFjb250
ZXh0KQotICAgICAgICByZXR1cm47Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFJH
QkE6Ci0gICAgICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihtX2NvbG9yKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBDTVlLQTogewotICAgICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdo
IHBsYXRmb3JtLWluZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCi0gICAgICAgIC8vIFdl
J2xsIG5lZWQgYSBmYW5jaWVyIENvbG9yIGFic3RyYWN0aW9uIHRvIHN1cHBvcnQgQ01ZS0EgY29y
cmVjdGx5CisgICAgICAgIH0sCisgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IFJlZlB0cjxDYW52
YXNHcmFkaWVudD4mIGdyYWRpZW50KSB7CisgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZUdy
YWRpZW50KGdyYWRpZW50LT5ncmFkaWVudCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250
ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZhc1BhdHRlcm4+JiBwYXR0ZXJuKSB7CisgICAgICAgICAg
ICBjb250ZXh0LnNldFN0cm9rZVBhdHRlcm4ocGF0dGVybi0+cGF0dGVybigpKTsKKyAgICAgICAg
fSwKKyAgICAgICAgW10gKGNvbnN0IEN1cnJlbnRDb2xvciYpIHsKKyAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9LAorICAgICAgICBbXSAoY29uc3QgSW52YWxpZCYp
IHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgKTsK
K30KKwordm9pZCBDYW52YXNTdHlsZTo6YXBwbHlGaWxsQ29sb3IoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0KSBjb25zdAoreworICAgIFdURjo6c3dpdGNoT24obV9zdHlsZSwKKyAgICAgICAgWyZj
b250ZXh0XSAoY29uc3QgQ29sb3ImIGNvbG9yKSB7CisgICAgICAgICAgICBjb250ZXh0LnNldEZp
bGxDb2xvcihjb2xvcik7CisgICAgICAgIH0sCisgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IENN
WUtBQ29sb3ImIGNvbG9yKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdo
IHBsYXRmb3JtLWluZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCisgICAgICAgICAgICAv
LyBXZSdsbCBuZWVkIGEgZmFuY2llciBDb2xvciBhYnN0cmFjdGlvbiB0byBzdXBwb3J0IENNWUtB
IGNvcnJlY3RseQogI2lmIFVTRShDRykKLSAgICAgICAgQ0dDb250ZXh0U2V0Q01ZS0ZpbGxDb2xv
cihjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgbV9jbXlrYS0+YywgbV9jbXlrYS0+bSwgbV9j
bXlrYS0+eSwgbV9jbXlrYS0+aywgbV9jbXlrYS0+YSk7CisgICAgICAgICAgICBDR0NvbnRleHRT
ZXRDTVlLRmlsbENvbG9yKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIGNvbG9yLmMsIGNvbG9y
Lm0sIGNvbG9yLnksIGNvbG9yLmssIGNvbG9yLmEpOwogI2Vsc2UKLSAgICAgICAgY29udGV4dC0+
c2V0RmlsbENvbG9yKG1fY215a2EtPmNvbG9yKTsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0Rmls
bENvbG9yKGNvbG9yLmNvbG9yKTsKICNlbmRpZgotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAg
Y2FzZSBHcmFkaWVudDoKLSAgICAgICAgY29udGV4dC0+c2V0RmlsbEdyYWRpZW50KGNhbnZhc0dy
YWRpZW50KCktPmdyYWRpZW50KCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEltYWdlUGF0
dGVybjoKLSAgICAgICAgY29udGV4dC0+c2V0RmlsbFBhdHRlcm4oY2FudmFzUGF0dGVybigpLT5w
YXR0ZXJuKCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEN1cnJlbnRDb2xvcjoKLSAgICBj
YXNlIEN1cnJlbnRDb2xvcldpdGhPdmVycmlkZUFscGhhOgotICAgIGNhc2UgSW52YWxpZDoKLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICAg
ICAgfSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZhc0dyYWRpZW50PiYg
Z3JhZGllbnQpIHsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbEdyYWRpZW50KGdyYWRpZW50
LT5ncmFkaWVudCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgUmVm
UHRyPENhbnZhc1BhdHRlcm4+JiBwYXR0ZXJuKSB7CisgICAgICAgICAgICBjb250ZXh0LnNldEZp
bGxQYXR0ZXJuKHBhdHRlcm4tPnBhdHRlcm4oKSk7CisgICAgICAgIH0sCisgICAgICAgIFtdIChj
b25zdCBDdXJyZW50Q29sb3ImKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgfSwKKyAgICAgICAgW10gKGNvbnN0IEludmFsaWQmKSB7CisgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgICk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oCmluZGV4IGI2YmY0N2M0MDNjM2Q5ZTk1NjA1
NjkxNGEwNGJiYzMwYTBhYWJhMmIuLjI3NzRhN2E1NTg0MmEyYmQxNjVhNTBjNTk3MWVmN2JlNTMz
NTcwYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgsIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApA
QCAtMjYsMTM1ICsyNiwxMDAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDYW52YXNH
cmFkaWVudC5oIgorI2luY2x1ZGUgIkNhbnZhc1BhdHRlcm4uaCIKICNpbmNsdWRlICJDb2xvci5o
IgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci0gICAgY2xhc3MgQ2FudmFzR3JhZGllbnQ7Ci0gICAgY2xhc3MgQ2FudmFzUGF0dGVybjsKLSAg
ICBjbGFzcyBEb2N1bWVudDsKLSAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7Ci0gICAgY2xhc3Mg
SFRNTENhbnZhc0VsZW1lbnQ7Ci0KLSAgICBjbGFzcyBDYW52YXNTdHlsZSB7Ci0gICAgcHVibGlj
OgotICAgICAgICBDYW52YXNTdHlsZSgpOwotICAgICAgICBleHBsaWNpdCBDYW52YXNTdHlsZShD
b2xvcik7Ci0gICAgICAgIENhbnZhc1N0eWxlKGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQgYWxwaGEp
OwotICAgICAgICBDYW52YXNTdHlsZShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBh
bHBoYSk7Ci0gICAgICAgIENhbnZhc1N0eWxlKGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZs
b2F0IGssIGZsb2F0IGFscGhhKTsKLSAgICAgICAgZXhwbGljaXQgQ2FudmFzU3R5bGUoUGFzc1Jl
ZlB0cjxDYW52YXNHcmFkaWVudD4pOwotICAgICAgICBleHBsaWNpdCBDYW52YXNTdHlsZShQYXNz
UmVmUHRyPENhbnZhc1BhdHRlcm4+KTsKLSAgICAgICAgfkNhbnZhc1N0eWxlKCk7Ci0KLSAgICAg
ICAgc3RhdGljIENhbnZhc1N0eWxlIGNyZWF0ZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBjb2xv
ciwgRG9jdW1lbnQqID0gMCk7Ci0gICAgICAgIHN0YXRpYyBDYW52YXNTdHlsZSBjcmVhdGVGcm9t
U3RyaW5nV2l0aE92ZXJyaWRlQWxwaGEoY29uc3QgU3RyaW5nJiBjb2xvciwgZmxvYXQgYWxwaGEp
OwotCi0gICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSAhPSBJbnZh
bGlkOyB9Ci0gICAgICAgIGJvb2wgaXNDdXJyZW50Q29sb3IoKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gQ3VycmVudENvbG9yIHx8IG1fdHlwZSA9PSBDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVB
bHBoYTsgfQotICAgICAgICBib29sIGhhc092ZXJyaWRlQWxwaGEoKSBjb25zdCB7IHJldHVybiBt
X3R5cGUgPT0gQ3VycmVudENvbG9yV2l0aE92ZXJyaWRlQWxwaGE7IH0KLSAgICAgICAgZmxvYXQg
b3ZlcnJpZGVBbHBoYSgpIGNvbnN0IHsgQVNTRVJUKG1fdHlwZSA9PSBDdXJyZW50Q29sb3JXaXRo
T3ZlcnJpZGVBbHBoYSk7IHJldHVybiBtX292ZXJyaWRlQWxwaGE7IH0KLQotICAgICAgICBTdHJp
bmcgY29sb3IoKSBjb25zdDsKLSAgICAgICAgQ2FudmFzR3JhZGllbnQqIGNhbnZhc0dyYWRpZW50
KCkgY29uc3Q7Ci0gICAgICAgIENhbnZhc1BhdHRlcm4qIGNhbnZhc1BhdHRlcm4oKSBjb25zdDsK
LQotICAgICAgICB2b2lkIGFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29udGV4dCopIGNvbnN0Owot
ICAgICAgICB2b2lkIGFwcGx5U3Ryb2tlQ29sb3IoR3JhcGhpY3NDb250ZXh0KikgY29uc3Q7Ci0K
LSAgICAgICAgYm9vbCBpc0VxdWl2YWxlbnRDb2xvcihjb25zdCBDYW52YXNTdHlsZSYpIGNvbnN0
OwotICAgICAgICBib29sIGlzRXF1aXZhbGVudFJHQkEoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQg
YiwgZmxvYXQgYSkgY29uc3Q7Ci0gICAgICAgIGJvb2wgaXNFcXVpdmFsZW50Q01ZS0EoZmxvYXQg
YywgZmxvYXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYSkgY29uc3Q7Ci0KLSAgICAgICAg
Q2FudmFzU3R5bGUoY29uc3QgQ2FudmFzU3R5bGUmKTsKLSAgICAgICAgQ2FudmFzU3R5bGUmIG9w
ZXJhdG9yPShjb25zdCBDYW52YXNTdHlsZSYpOwotICAgICAgICBDYW52YXNTdHlsZShDYW52YXNT
dHlsZSYmKTsKLSAgICAgICAgQ2FudmFzU3R5bGUmIG9wZXJhdG9yPShDYW52YXNTdHlsZSYmKTsK
LQotICAgIHByaXZhdGU6Ci0gICAgICAgIGVudW0gVHlwZSB7IFJHQkEsIENNWUtBLCBHcmFkaWVu
dCwgSW1hZ2VQYXR0ZXJuLCBDdXJyZW50Q29sb3IsIEN1cnJlbnRDb2xvcldpdGhPdmVycmlkZUFs
cGhhLCBJbnZhbGlkIH07Ci0gICAgICAgIHN0cnVjdCBDTVlLQVZhbHVlcyB7Ci0gICAgICAgICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICAgICAgICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKENNWUtBVmFsdWVzKTsKLSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgQ01ZS0FWYWx1
ZXMoKQotICAgICAgICAgICAgICAgIDogY29sb3IoKSwgYygwKSwgbSgwKSwgeSgwKSwgaygwKSwg
YSgwKQotICAgICAgICAgICAgeyB9Ci0KLSAgICAgICAgICAgIENNWUtBVmFsdWVzKENvbG9yIGNv
bG9yLCBmbG9hdCBjeWFuLCBmbG9hdCBtYWdlbnRhLCBmbG9hdCB5ZWxsb3csIGZsb2F0IGJsYWNr
LCBmbG9hdCBhbHBoYSkKLSAgICAgICAgICAgICAgICA6IGNvbG9yKGNvbG9yKSwgYyhjeWFuKSwg
bShtYWdlbnRhKSwgeSh5ZWxsb3cpLCBrKGJsYWNrKSwgYShhbHBoYSkKLSAgICAgICAgICAgIHsg
fQotICAgICAgICAgICAgQ29sb3IgY29sb3I7Ci0gICAgICAgICAgICBmbG9hdCBjOwotICAgICAg
ICAgICAgZmxvYXQgbTsKLSAgICAgICAgICAgIGZsb2F0IHk7Ci0gICAgICAgICAgICBmbG9hdCBr
OwotICAgICAgICAgICAgZmxvYXQgYTsKLSAgICAgICAgfTsKLQotICAgICAgICBlbnVtIENvbnN0
cnVjdEN1cnJlbnRDb2xvclRhZyB7IENvbnN0cnVjdEN1cnJlbnRDb2xvciB9OwotICAgICAgICBD
YW52YXNTdHlsZShDb25zdHJ1Y3RDdXJyZW50Q29sb3JUYWcpIDogbV90eXBlKEN1cnJlbnRDb2xv
cikgeyB9Ci0gICAgICAgIENhbnZhc1N0eWxlKFR5cGUgdHlwZSwgZmxvYXQgb3ZlcnJpZGVBbHBo
YSkKLSAgICAgICAgICAgIDogbV9vdmVycmlkZUFscGhhKG92ZXJyaWRlQWxwaGEpCi0gICAgICAg
ICAgICAsIG1fdHlwZSh0eXBlKQorY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBHcmFwaGljc0NvbnRl
eHQ7CitjbGFzcyBIVE1MQ2FudmFzRWxlbWVudDsKKworY2xhc3MgQ2FudmFzU3R5bGUgeworcHVi
bGljOgorICAgIENhbnZhc1N0eWxlKCk7CisgICAgQ2FudmFzU3R5bGUoQ29sb3IpOworICAgIENh
bnZhc1N0eWxlKGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQgYWxwaGEpOworICAgIENhbnZhc1N0eWxl
KGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGFscGhhKTsKKyAgICBDYW52YXNTdHls
ZShmbG9hdCBjLCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBhbHBoYSk7CisgICAg
Q2FudmFzU3R5bGUoQ2FudmFzR3JhZGllbnQmKTsKKyAgICBDYW52YXNTdHlsZShDYW52YXNQYXR0
ZXJuJik7CisKKyAgICBzdGF0aWMgQ2FudmFzU3R5bGUgY3JlYXRlRnJvbVN0cmluZyhjb25zdCBT
dHJpbmcmIGNvbG9yLCBEb2N1bWVudCogPSBudWxscHRyKTsKKyAgICBzdGF0aWMgQ2FudmFzU3R5
bGUgY3JlYXRlRnJvbVN0cmluZ1dpdGhPdmVycmlkZUFscGhhKGNvbnN0IFN0cmluZyYgY29sb3Is
IGZsb2F0IGFscGhhKTsKKworICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuICFXVEY6
OmhvbGRzX2FsdGVybmF0aXZlPEludmFsaWQ+KG1fc3R5bGUpOyB9CisgICAgYm9vbCBpc0N1cnJl
bnRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q3VycmVudENv
bG9yPihtX3N0eWxlKTsgfQorICAgIGJvb2wgaGFzT3ZlcnJpZGVBbHBoYSgpIGNvbnN0IHsgcmV0
dXJuIGlzQ3VycmVudENvbG9yKCkgJiYgV1RGOjpnZXQ8Q3VycmVudENvbG9yPihtX3N0eWxlKS5v
dmVycmlkZUFscGhhOyB9CisgICAgZmxvYXQgb3ZlcnJpZGVBbHBoYSgpIGNvbnN0IHsgcmV0dXJu
IFdURjo6Z2V0PEN1cnJlbnRDb2xvcj4obV9zdHlsZSkub3ZlcnJpZGVBbHBoYS52YWx1ZSgpOyB9
CisKKyAgICBTdHJpbmcgY29sb3IoKSBjb25zdDsKKyAgICBDYW52YXNHcmFkaWVudCogY2FudmFz
R3JhZGllbnQoKSBjb25zdDsKKyAgICBDYW52YXNQYXR0ZXJuKiBjYW52YXNQYXR0ZXJuKCkgY29u
c3Q7CisKKyAgICB2b2lkIGFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Owor
ICAgIHZvaWQgYXBwbHlTdHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKworICAg
IGJvb2wgaXNFcXVpdmFsZW50Q29sb3IoY29uc3QgQ2FudmFzU3R5bGUmKSBjb25zdDsKKyAgICBi
b29sIGlzRXF1aXZhbGVudFJHQkEoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwg
ZmxvYXQgYWxwaGEpIGNvbnN0OworICAgIGJvb2wgaXNFcXVpdmFsZW50Q01ZS0EoZmxvYXQgY3lh
biwgZmxvYXQgbWFnZW50YSwgZmxvYXQgeWVsbG93LCBmbG9hdCBibGFjaywgZmxvYXQgYWxwaGEp
IGNvbnN0OworCitwcml2YXRlOgorICAgIHN0cnVjdCBJbnZhbGlkIHsgfTsKKworICAgIHN0cnVj
dCBDTVlLQUNvbG9yIHsKKyAgICAgICAgQ01ZS0FDb2xvcigpID0gZGVmYXVsdDsKKworICAgICAg
ICBDTVlLQUNvbG9yKENvbG9yIGNvbG9yLCBmbG9hdCBjeWFuLCBmbG9hdCBtYWdlbnRhLCBmbG9h
dCB5ZWxsb3csIGZsb2F0IGJsYWNrLCBmbG9hdCBhbHBoYSkKKyAgICAgICAgICAgIDogY29sb3Io
Y29sb3IpLCBjKGN5YW4pLCBtKG1hZ2VudGEpLCB5KHllbGxvdyksIGsoYmxhY2spLCBhKGFscGhh
KQogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICB1bmlvbiB7Ci0gICAgICAgICAgICBD
b2xvciBtX2NvbG9yOwotICAgICAgICAgICAgZmxvYXQgbV9vdmVycmlkZUFscGhhOwotICAgICAg
ICAgICAgQ2FudmFzR3JhZGllbnQqIG1fZ3JhZGllbnQ7Ci0gICAgICAgICAgICBDYW52YXNQYXR0
ZXJuKiBtX3BhdHRlcm47Ci0gICAgICAgICAgICBDTVlLQVZhbHVlcyogbV9jbXlrYTsKLSAgICAg
ICAgfTsKLSAgICAgICAgVHlwZSBtX3R5cGU7CisgICAgICAgIENvbG9yIGNvbG9yOworICAgICAg
ICBmbG9hdCBjIHsgMCB9OworICAgICAgICBmbG9hdCBtIHsgMCB9OworICAgICAgICBmbG9hdCB5
IHsgMCB9OworICAgICAgICBmbG9hdCBrIHsgMCB9OworICAgICAgICBmbG9hdCBhIHsgMCB9Owog
ICAgIH07CiAKLSAgICBDb2xvciBjdXJyZW50Q29sb3IoSFRNTENhbnZhc0VsZW1lbnQqKTsKLSAg
ICBDb2xvciBwYXJzZUNvbG9yT3JDdXJyZW50Q29sb3IoY29uc3QgU3RyaW5nJiBjb2xvclN0cmlu
ZywgSFRNTENhbnZhc0VsZW1lbnQqKTsKLQotICAgIGlubGluZSBDYW52YXNTdHlsZTo6Q2FudmFz
U3R5bGUoKQotICAgICAgICA6IG1fdHlwZShJbnZhbGlkKQotICAgIHsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgQ2FudmFzR3JhZGllbnQqIENhbnZhc1N0eWxlOjpjYW52YXNHcmFkaWVudCgpIGNvbnN0
Ci0gICAgewotICAgICAgICBpZiAobV90eXBlID09IEdyYWRpZW50KQotICAgICAgICAgICAgcmV0
dXJuIG1fZ3JhZGllbnQ7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGlubGluZSBD
YW52YXNQYXR0ZXJuKiBDYW52YXNTdHlsZTo6Y2FudmFzUGF0dGVybigpIGNvbnN0Ci0gICAgewot
ICAgICAgICBpZiAobV90eXBlID09IEltYWdlUGF0dGVybikKLSAgICAgICAgICAgIHJldHVybiBt
X3BhdHRlcm47Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGlubGluZSBTdHJpbmcg
Q2FudmFzU3R5bGU6OmNvbG9yKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUg
PT0gUkdCQSB8fCBtX3R5cGUgPT0gQ01ZS0EpOwotICAgICAgICBpZiAobV90eXBlID09IFJHQkEp
Ci0gICAgICAgICAgICByZXR1cm4gbV9jb2xvci5zZXJpYWxpemVkKCk7Ci0gICAgICAgIHJldHVy
biBtX2NteWthLT5jb2xvci5zZXJpYWxpemVkKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIENhbnZh
c1N0eWxlOjpDYW52YXNTdHlsZShDYW52YXNTdHlsZSYmIG90aGVyKQotICAgIHsKLSAgICAgICAg
bWVtY3B5KHRoaXMsICZvdGhlciwgc2l6ZW9mKENhbnZhc1N0eWxlKSk7Ci0gICAgICAgIG90aGVy
Lm1fdHlwZSA9IEludmFsaWQ7Ci0gICAgfQotCi0gICAgaW5saW5lIENhbnZhc1N0eWxlJiBDYW52
YXNTdHlsZTo6b3BlcmF0b3I9KENhbnZhc1N0eWxlJiYgb3RoZXIpCi0gICAgewotICAgICAgICBp
ZiAodGhpcyAhPSAmb3RoZXIpIHsKLSAgICAgICAgICAgIG1lbWNweSh0aGlzLCAmb3RoZXIsIHNp
emVvZihDYW52YXNTdHlsZSkpOwotICAgICAgICAgICAgb3RoZXIubV90eXBlID0gSW52YWxpZDsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQorICAgIHN0cnVjdCBDdXJy
ZW50Q29sb3IgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBvdmVycmlkZUFscGhhOwor
ICAgIH07CisKKyAgICBDYW52YXNTdHlsZShDdXJyZW50Q29sb3IpOworCisgICAgVmFyaWFudDxJ
bnZhbGlkLCBDb2xvciwgQ01ZS0FDb2xvciwgUmVmUHRyPENhbnZhc0dyYWRpZW50PiwgUmVmUHRy
PENhbnZhc1BhdHRlcm4+LCBDdXJyZW50Q29sb3I+IG1fc3R5bGU7Cit9OworCitDb2xvciBjdXJy
ZW50Q29sb3IoSFRNTENhbnZhc0VsZW1lbnQqKTsKK0NvbG9yIHBhcnNlQ29sb3JPckN1cnJlbnRD
b2xvcihjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBIVE1MQ2FudmFzRWxlbWVudCopOworCitp
bmxpbmUgQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKCkKKyAgICA6IG1fc3R5bGUoSW52YWxpZCB7
IH0pCit7Cit9CisKK2lubGluZSBDYW52YXNHcmFkaWVudCogQ2FudmFzU3R5bGU6OmNhbnZhc0dy
YWRpZW50KCkgY29uc3QKK3sKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmUHRy
PENhbnZhc0dyYWRpZW50Pj4obV9zdHlsZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBXVEY6OmdldDxSZWZQdHI8Q2FudmFzR3JhZGllbnQ+PihtX3N0eWxlKS5nZXQoKTsK
K30KKworaW5saW5lIENhbnZhc1BhdHRlcm4qIENhbnZhc1N0eWxlOjpjYW52YXNQYXR0ZXJuKCkg
Y29uc3QKK3sKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmUHRyPENhbnZhc1Bh
dHRlcm4+PihtX3N0eWxlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFdU
Rjo6Z2V0PFJlZlB0cjxDYW52YXNQYXR0ZXJuPj4obV9zdHlsZSkuZ2V0KCk7Cit9CisKK2lubGlu
ZSBTdHJpbmcgQ2FudmFzU3R5bGU6OmNvbG9yKCkgY29uc3QKK3sKKyAgICBhdXRvJiBjb2xvciA9
IFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG1fc3R5bGUpID8gV1RGOjpnZXQ8Q29sb3I+
KG1fc3R5bGUpIDogV1RGOjpnZXQ8Q01ZS0FDb2xvcj4obV9zdHlsZSkuY29sb3I7CisgICAgcmV0
dXJuIGNvbG9yLnNlcmlhbGl6ZWQoKTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3Bw
CmluZGV4IGM4YjEwZjdiZmJjNjgxZDhhYTg1OTU5YTNmMWUyN2Q2Mzc4ZTY5YWUuLjFlZjgzMzE3
NGZlYjljMzFhYjBlOGQ5MmZmZGY0YzMwNTBiNGI4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKQEAgLTQ5LDggKzQ5LDgg
QEAgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IE9FU1ZlcnRleEFycmF5T2JqZWN0
OjpjcmVhdGVWZXJ0ZXhBcnJheU9FUygpCiAgICAgaWYgKG1fY29udGV4dC5pc0NvbnRleHRMb3N0
KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBvYmplY3QgPSBXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUobV9jb250ZXh0LCBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTOjpWQU9UeXBlVXNlcik7Ci0gICAgbV9jb250ZXh0LmFkZENvbnRleHRPYmplY3Qob2Jq
ZWN0LnB0cigpKTsKKyAgICBhdXRvIG9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6
OmNyZWF0ZShtX2NvbnRleHQsIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OlR5cGU6OlVzZXIp
OworICAgIG1fY29udGV4dC5hZGRDb250ZXh0T2JqZWN0KG9iamVjdC5nZXQoKSk7CiAgICAgcmV0
dXJuIFdURk1vdmUob2JqZWN0KTsKIH0KIApAQCAtNTgsOSArNTgsOSBAQCB2b2lkIE9FU1ZlcnRl
eEFycmF5T2JqZWN0OjpkZWxldGVWZXJ0ZXhBcnJheU9FUyhXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTKiBhcnJheQogewogICAgIGlmICghYXJyYXlPYmplY3QgfHwgbV9jb250ZXh0LmlzQ29udGV4
dExvc3QoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGlmICghYXJyYXlPYmplY3QtPmlz
RGVmYXVsdE9iamVjdCgpICYmIGFycmF5T2JqZWN0ID09IHN0YXRpY19jYXN0PFdlYkdMUmVuZGVy
aW5nQ29udGV4dCo+KCZtX2NvbnRleHQpLT5tX2JvdW5kVmVydGV4QXJyYXlPYmplY3QpCi0gICAg
ICAgIHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCo+KCZtX2NvbnRleHQpLT5zZXRC
b3VuZFZlcnRleEFycmF5T2JqZWN0KDApOworCisgICAgaWYgKCFhcnJheU9iamVjdC0+aXNEZWZh
dWx0T2JqZWN0KCkgJiYgYXJyYXlPYmplY3QgPT0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdD
b250ZXh0Jj4obV9jb250ZXh0KS5tX2JvdW5kVmVydGV4QXJyYXlPYmplY3QpCisgICAgICAgIHN0
YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCY+KG1fY29udGV4dCkuc2V0Qm91bmRWZXJ0
ZXhBcnJheU9iamVjdChudWxscHRyKTsKIAogICAgIGFycmF5T2JqZWN0LT5kZWxldGVPYmplY3Qo
bV9jb250ZXh0LmdyYXBoaWNzQ29udGV4dDNEKCkpOwogfQpAQCAtODksNyArODksNyBAQCB2b2lk
IE9FU1ZlcnRleEFycmF5T2JqZWN0OjpiaW5kVmVydGV4QXJyYXlPRVMoV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdE9FUyogYXJyYXlPYgogICAgICAgICBjb250ZXh0LnNldEJvdW5kVmVydGV4QXJyYXlP
YmplY3QoYXJyYXlPYmplY3QpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGV4dGVuc2lvbnMuYmlu
ZFZlcnRleEFycmF5T0VTKDApOwotICAgICAgICBjb250ZXh0LnNldEJvdW5kVmVydGV4QXJyYXlP
YmplY3QoMCk7CisgICAgICAgIGNvbnRleHQuc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChudWxs
cHRyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggNDgwYTBjYTk1YjUxODMxMjM4MGM5Y2Vm
Yjg0NDhmMjU5MTA4MTgxNy4uZmY1OTkxOGJkY2FmZGJjZDZjMzQ3ODZjODcyMWVmZmI4ODYyMTYy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVy
aW5nQ29udGV4dC5jcHAKQEAgLTI0LDkgKzI0LDkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oIgogCiAjaWYgRU5BQkxFKFdF
QkdMKSAmJiBFTkFCTEUoV0VCR0wyKQotI2luY2x1ZGUgIldlYkdMMlJlbmRlcmluZ0NvbnRleHQu
aCIKIAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiRVhUVGV4dHVyZUZpbHRl
ckFuaXNvdHJvcGljLmgiCkBAIC02Myw3ICs2Myw3IEBAIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywK
IHsKIH0KIAotV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dChI
VE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+
JiYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCitXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVt
ZW50JiBwYXNzZWRDYW52YXMsIFJlZjxHcmFwaGljc0NvbnRleHQzRD4mJiBjb250ZXh0LCBHcmFw
aGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICA6IFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UocGFzc2VkQ2FudmFzLCBXVEZNb3ZlKGNvbnRleHQpLCBhdHRyaWJ1dGVzKQog
ewogICAgIGluaXRpYWxpemVTaGFkZXJFeHRlbnNpb25zKCk7CkBAIC03Miw4ICs3Miw4IEBAIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0Vs
ZW1lbnQmIHBhc3NlZENhbnZhcywKIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppbml0
aWFsaXplVmVydGV4QXJyYXlPYmplY3RzKCkKIHsKLSAgICBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9i
amVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZSgqdGhpcywgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdDo6VkFPVHlwZURlZmF1bHQpOwotICAgIGFkZENvbnRleHRPYmplY3QobV9kZWZh
dWx0VmVydGV4QXJyYXlPYmplY3QuZ2V0KCkpOworICAgIG1fZGVmYXVsdFZlcnRleEFycmF5T2Jq
ZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlKCp0aGlzLCBXZWJHTFZlcnRleEFy
cmF5T2JqZWN0OjpUeXBlOjpEZWZhdWx0KTsKKyAgICBhZGRDb250ZXh0T2JqZWN0KCptX2RlZmF1
bHRWZXJ0ZXhBcnJheU9iamVjdCk7CiAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0ID0gbV9k
ZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiAgICAgaWYgKCFpc0dMRVMyQ29tcGxpYW50KCkpCiAg
ICAgICAgIGluaXRWZXJ0ZXhBdHRyaWIwKCk7CkBAIC0yMDMsNyArMjAzLDcgQEAgdm9pZCBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0Ojpjb3B5QnVmZmVyU3ViRGF0YShHQzNEZW51bSByZWFkVGFyZ2V0
LCBHQzNEZW51bSB3cmkKICAgICB9CiAKICAgICBtX2NvbnRleHQtPm1vdmVFcnJvcnNUb1N5bnRo
ZXRpY0Vycm9yTGlzdCgpOwotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKQorI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIG1fY29udGV4dC0+Y29weUJ1ZmZlclN1YkRhdGEocmVhZFRh
cmdldCwgd3JpdGVUYXJnZXQsIGNoZWNrZWRSZWFkT2Zmc2V0LnVuc2FmZUdldCgpLCBjaGVja2Vk
V3JpdGVPZmZzZXQudW5zYWZlR2V0KCksIGNoZWNrZWRTaXplLnVuc2FmZUdldCgpKTsKICNlbmRp
ZgogICAgIGlmIChtX2NvbnRleHQtPm1vdmVFcnJvcnNUb1N5bnRoZXRpY0Vycm9yTGlzdCgpKSB7
CkBAIC0yNzIsNyArMjcyLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRCdWZm
ZXJTdWJEYXRhKEdDM0RlbnVtIHRhcmdldCwgbG9uZyBsb25nIHNyY0J5dGUKICAgICB9CiAKICAg
ICBtX2NvbnRleHQtPm1vdmVFcnJvcnNUb1N5bnRoZXRpY0Vycm9yTGlzdCgpOwotI2lmIFBMQVRG
T1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIC8vIEZJ
WE1FOiBDb2FsZXNjZSBtdWx0aXBsZSBnZXRCdWZmZXJTdWJEYXRhKCkgY2FsbHMgdG8gdXNlIGEg
c2luZ2xlIG1hcCgpIGNhbGwKICAgICB2b2lkKiBwdHIgPSBtX2NvbnRleHQtPm1hcEJ1ZmZlclJh
bmdlKHRhcmdldCwgY2hlY2tlZFNyY0J5dGVPZmZzZXQudW5zYWZlR2V0KCksIHN0YXRpY19jYXN0
PEdDM0RzaXplaXB0cj4oY2hlY2tlZENvcHlMZW5ndGhQdHIudW5zYWZlR2V0KCkgKiBjaGVja2Vk
RWxlbWVudFNpemUudW5zYWZlR2V0KCkpLCBHcmFwaGljc0NvbnRleHQzRDo6TUFQX1JFQURfQklU
KTsKICAgICBtZW1jcHkoc3RhdGljX2Nhc3Q8Y2hhcio+KGRzdERhdGEtPmJhc2VBZGRyZXNzKCkp
ICsgZHN0RGF0YS0+Ynl0ZU9mZnNldCgpICsgZHN0T2Zmc2V0ICogZWxlbWVudFNpemUsIHB0ciwg
Y29weUxlbmd0aCAqIGVsZW1lbnRTaXplKTsKQEAgLTI5MCw5ICsyOTAsOSBAQCB2b2lkIFdlYkdM
MlJlbmRlcmluZ0NvbnRleHQ6OmZyYW1lYnVmZmVyVGV4dHVyZUxheWVyKEdDM0RlbnVtLCBHQzNE
ZW51bSwgR0MzRHVpbgogewogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNEZW51
bSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEludGVybmFsZm9ybWF0UGFy
YW1ldGVyKEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGVudW0pCiB7Ci0gICAgcmV0dXJuIFdlYkdM
R2V0SW5mbygpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmludmFsaWRhdGVGcmFtZWJ1ZmZlcihHQzNEZW51bSwgVmVjdG9yPEdDM0RlbnVt
PikKQEAgLTQwNyw3ICs0MDcsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnRleFN0
b3JhZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDMwogICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkdMVGV4
dHVyZSogdGV4dHVyZSA9IHZhbGlkYXRlVGV4dHVyZUJpbmRpbmcoInRleFN0b3JhZ2UyRCIsIHRh
cmdldCwgZmFsc2UpOworICAgIGF1dG8qIHRleHR1cmUgPSB2YWxpZGF0ZVRleHR1cmVCaW5kaW5n
KCJ0ZXhTdG9yYWdlMkQiLCB0YXJnZXQsIGZhbHNlKTsKICAgICBpZiAoIXRleHR1cmUpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtNzgyLDkgKzc4Miw5IEBAIFJlZlB0cjxXZWJHTFF1ZXJ5PiBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpnZXRRdWVyeShHQzNEZW51bSwgR0MzRGVudW0pCiAgICAgcmV0
dXJuIG51bGxwdHI7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRRdWVyeVBhcmFtZXRlcihXZWJHTFF1ZXJ5KiwgR0MzRGVudW0pCitXZWJHTEFueSBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRRdWVyeVBhcmFtZXRlcihXZWJHTFF1ZXJ5KiwgR0MzRGVudW0p
CiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIHJldHVybiBudWxscHRyOwogfQog
CiBSZWZQdHI8V2ViR0xTYW1wbGVyPiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVTYW1w
bGVyKCkKQEAgLTgxMyw5ICs4MTMsOSBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnNh
bXBsZXJQYXJhbWV0ZXJmKFdlYkdMU2FtcGxlciosIEdDM0RlbnVtLCBHQzNEZmxvYQogewogfQog
Ci1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2FtcGxlclBhcmFtZXRl
cihXZWJHTFNhbXBsZXIqLCBHQzNEZW51bSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmdldFNhbXBsZXJQYXJhbWV0ZXIoV2ViR0xTYW1wbGVyKiwgR0MzRGVudW0pCiB7Ci0gICAg
cmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBSZWZQdHI8
V2ViR0xTeW5jPiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpmZW5jZVN5bmMoR0MzRGVudW0sIEdD
M0RiaXRmaWVsZCkKQEAgLTg0MSw5ICs4NDEsOSBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OndhaXRTeW5jKFdlYkdMU3luYyosIEdDM0RiaXRmaWVsZCwgR0MzRHVpbnQ2NCkKIHsKIH0K
IAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFN5bmNQYXJhbWV0ZXIo
V2ViR0xTeW5jKiwgR0MzRGVudW0pCitXZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRTeW5jUGFyYW1ldGVyKFdlYkdMU3luYyosIEdDM0RlbnVtKQogewotICAgIHJldHVybiBXZWJH
TEdldEluZm8oKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVmUHRyPFdlYkdMVHJhbnNm
b3JtRmVlZGJhY2s+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVRyYW5zZm9ybUZlZWRi
YWNrKCkKQEAgLTg5Nyw3ICs4OTcsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJp
bmRCdWZmZXJSYW5nZShHQzNEZW51bSwgR0MzRHVpbnQsIFdlYkdMQnVmZmVyKiwgRwogewogfQog
Ci1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRl
cihHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50KQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50KQogewog
ICAgIHN3aXRjaCAodGFyZ2V0KSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VFJBTlNG
T1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HOgpAQCAtOTA3LDEzICs5MDcsMTEgQEAgV2ViR0xH
ZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEluZGV4ZWRQYXJhbWV0ZXIoR0MzRGVu
dW0gdGFyZ2V0LCBHQzNEdWkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTklGT1JNX0JV
RkZFUl9TSVpFOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOSUZPUk1fQlVGRkVSX1NU
QVJUOgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJ
RF9FTlVNLCAiZ2V0SW5kZXhlZFBhcmFtZXRlciIsICJwYXJhbWV0ZXIgbmFtZSBub3QgeWV0IHN1
cHBvcnRlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRJbmRleGVkUGFyYW1ldGVyIiwgImludmFs
aWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwotICAg
ICAgICAgICAgCisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CiB9CiAKIFVpbnQzMkFycmF5KiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRVbmlmb3JtSW5kaWNlcyhXZWJHTFByb2dyYW0qLCBWZWN0b3I8U3RyaW5nPikKQEAgLTkzMSwx
NCArOTI5LDE0IEBAIEdDM0R1aW50IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZvcm1C
bG9ja0luZGV4KFdlYkdMUHJvZ3JhbSosIFN0cmluZykKICAgICByZXR1cm4gMDsKIH0KIAotV2Vi
R0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja1Bh
cmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNEdWludCwgR0MzRGVudW0pCitXZWJHTEFueSBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIoV2ViR0xQ
cm9ncmFtKiwgR0MzRHVpbnQsIEdDM0RlbnVtKQogewotICAgIHJldHVybiBXZWJHTEdldEluZm8o
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUoV2ViR0xQcm9ncmFtKiwgR0MzRHVp
bnQpCitXZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtQmxv
Y2tOYW1lKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50KQogewotICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250
ZXh0Ojp1bmlmb3JtQmxvY2tCaW5kaW5nKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50LCBHQzNEdWlu
dCkKQEAgLTk1MCw4ICs5NDgsOCBAQCBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4gV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlVmVydGV4QXJyYXkoKQogICAgIGlmIChpc0NvbnRl
eHRMb3N0KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIAotICAgIGF1dG8gb2JqZWN0
ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlKCp0aGlzLCBXZWJHTFZlcnRleEFycmF5
T2JqZWN0OjpWQU9UeXBlVXNlcik7Ci0gICAgYWRkQ29udGV4dE9iamVjdChvYmplY3QucHRyKCkp
OworICAgIGF1dG8gb2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlKCp0aGlz
LCBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpUeXBlOjpVc2VyKTsKKyAgICBhZGRDb250ZXh0T2Jq
ZWN0KG9iamVjdC5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUob2JqZWN0KTsKIH0KIApAQCAt
OTY0LDcgKzk2Miw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlVmVydGV4
QXJyYXkoV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCogYXJyYXlPYmplCiAgICAgICAgIHJldHVybjsK
ICAgICAKICAgICBpZiAoIWFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3QoKSAmJiBhcnJheU9i
amVjdCA9PSBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QpCi0gICAgICAgIHNldEJvdW5kVmVydGV4
QXJyYXlPYmplY3QoMCk7CisgICAgICAgIHNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QobnVsbHB0
cik7CiAgICAgCiAgICAgYXJyYXlPYmplY3QtPmRlbGV0ZU9iamVjdChncmFwaGljc0NvbnRleHQz
RCgpKTsKIH0KQEAgLTk3MiwxMCArOTcwLDEwIEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6ZGVsZXRlVmVydGV4QXJyYXkoV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCogYXJyYXlPYmplCiBH
QzNEYm9vbGVhbiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppc1ZlcnRleEFycmF5KFdlYkdMVmVy
dGV4QXJyYXlPYmplY3QqIGFycmF5T2JqZWN0KQogewogICAgIGlmICghYXJyYXlPYmplY3QgfHwg
aXNDb250ZXh0TG9zdCgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIAogICAgIGlmICghYXJyYXlPYmplY3QtPmhhc0V2ZXJCZWVuQm91bmQoKSB8fCAhYXJy
YXlPYmplY3QtPnZhbGlkYXRlKDAsICp0aGlzKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAKICAgICByZXR1cm4gbV9jb250ZXh0LT5pc1ZlcnRleEFycmF5
KGFycmF5T2JqZWN0LT5vYmplY3QoKSk7CiB9CkBAIC05OTYsNyArOTk0LDcgQEAgdm9pZCBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpiaW5kVmVydGV4QXJyYXkoV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dCogYXJyYXlPYmplY3QKICAgICAgICAgc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChhcnJheU9i
amVjdCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9jb250ZXh0LT5iaW5kVmVydGV4QXJyYXko
bV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QtPm9iamVjdCgpKTsKLSAgICAgICAgc2V0Qm91bmRW
ZXJ0ZXhBcnJheU9iamVjdChtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCk7CisgICAgICAgIHNl
dEJvdW5kVmVydGV4QXJyYXlPYmplY3QobV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QuZ2V0KCkp
OwogICAgIH0KIH0KIApAQCAtMTAwNSw0MyArMTAwMyw0OCBAQCBXZWJHTEV4dGVuc2lvbiogV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAotICAgIGlmICgoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX3RleHR1cmVfZmls
dGVyX2FuaXNvdHJvcGljIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lU
X0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKQotICAgICAgICAmJiBtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJv
cGljIikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX3RleHR1
cmVfZmlsdGVyX2FuaXNvdHJvcGljIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAi
V0VCS0lUX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKSB7CiAgICAgICAgIGlmICgh
bV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlz
b3Ryb3BpYyIpOwotICAgICAgICAgICAgbV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMgPSBz
dGQ6Om1ha2VfdW5pcXVlPEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYz4oKnRoaXMpOworICAg
ICAgICAgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0
ZXJhbCB7ICJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pKSB7CisgICAgICAg
ICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZChBU0NJSUxp
dGVyYWwgeyAiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIiB9KTsKKyAgICAgICAg
ICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IHN0ZDo6bWFrZV91bmlxdWU8
RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcyk7CisgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICAgICAgcmV0dXJuIG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmdldCgp
OwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1
cmVfZmxvYXQiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0
cygiR0xfT0VTX3RleHR1cmVfZmxvYXQiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlD
YXNlKG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0
dXJlRmxvYXQpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3Vy
ZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2Zsb2F0Iik7Ci0gICAgICAgICAgICBtX29lc1RleHR1
cmVGbG9hdCA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0PigqdGhpcyk7CisgICAg
ICAgICAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRl
cmFsIHsgIkdMX09FU190ZXh0dXJlX2Zsb2F0IiB9KSkgeworICAgICAgICAgICAgICAgIG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoQVNDSUlMaXRlcmFsIHsgIkdMX09F
U190ZXh0dXJlX2Zsb2F0IiB9KTsKKyAgICAgICAgICAgICAgICBtX29lc1RleHR1cmVGbG9hdCA9
IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0PigqdGhpcyk7CisgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUZsb2F0LmdldCgpOwogICAg
IH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxv
YXRfbGluZWFyIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7CisgICAgaWYgKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7CiAgICAgICAg
IGlmICghbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVh
ciIpOwotICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5p
cXVlPE9FU1RleHR1cmVGbG9hdExpbmVhcj4oKnRoaXMpOworICAgICAgICAgICAgaWYgKG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4
dHVyZV9mbG9hdF9saW5lYXIiIH0pKSB7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVf
ZmxvYXRfbGluZWFyIiB9KTsKKyAgICAgICAgICAgICAgICBtX29lc1RleHR1cmVGbG9hdExpbmVh
ciA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0TGluZWFyPigqdGhpcyk7CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUZsb2F0TGlu
ZWFyLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAi
T0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpIHsKKyAgICBpZiAo
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpKSB7
CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlSGFsZkZsb2F0KSB7Ci0gICAgICAgICAgICBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9oYWxm
X2Zsb2F0Iik7Ci0gICAgICAgICAgICBtX29lc1RleHR1cmVIYWxmRmxvYXQgPSBzdGQ6Om1ha2Vf
dW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+KCp0aGlzKTsKKyAgICAgICAgICAgIGlmIChtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3Rl
eHR1cmVfaGFsZl9mbG9hdCIgfSkpIHsKKyAgICAgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4
dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9o
YWxmX2Zsb2F0IiB9KTsKKyAgICAgICAgICAgICAgICBtX29lc1RleHR1cmVIYWxmRmxvYXQgPSBz
dGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+KCp0aGlzKTsKKyAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0LmdldCgp
OwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1
cmVfaGFsZl9mbG9hdF9saW5lYXIiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSkgeworICAg
IGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0
X2xpbmVhciIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyKSB7
Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJH
TF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpOwotICAgICAgICAgICAgbV9vZXNUZXh0
dXJlSGFsZkZsb2F0TGluZWFyID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZsb2F0
TGluZWFyPigqdGhpcyk7CisgICAgICAgICAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25z
KCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGlu
ZWFyIiB9KSkgeworICAgICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVu
c3VyZUVuYWJsZWQoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGlu
ZWFyIiB9KTsKKyAgICAgICAgICAgICAgICBtX29lc1RleHR1cmVIYWxmRmxvYXRMaW5lYXIgPSBz
dGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXI+KCp0aGlzKTsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0
TGluZWFyLmdldCgpOwogICAgIH0KQEAgLTEwNTAsMjggKzEwNTMsMzIgQEAgV2ViR0xFeHRlbnNp
b24qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5h
bWUpCiAgICAgICAgICAgICBtX3dlYmdsTG9zZUNvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdl
YkdMTG9zZUNvbnRleHQ+KCp0aGlzKTsKICAgICAgICAgcmV0dXJuIG1fd2ViZ2xMb3NlQ29udGV4
dC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJX
RUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpKQotICAgICAgICAmJiBXZWJHTENv
bXByZXNzZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbV93
ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDKQotICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRU
ZXh0dXJlQVRDID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDPigq
dGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJH
TF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJl
c3NlZFRleHR1cmVBVEMpIHsKKyAgICAgICAgICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDOjpzdXBwb3J0ZWQoKnRoaXMpKQorICAgICAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2Vk
VGV4dHVyZUFUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQz4o
KnRoaXMpOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1
cmVBVEMuZ2V0KCk7CiAgICAgfQotICAgIGlmICgoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1l
LCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpKQotICAgICAgICAmJiBX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OnN1cHBvcnRlZCgqdGhpcykpIHsKLSAgICAgICAg
aWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQykKLSAgICAgICAgICAgIG1fd2ViZ2xD
b21wcmVzc2VkVGV4dHVyZVBWUlRDID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRU
ZXh0dXJlUFZSVEM+KCp0aGlzKTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1l
LCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpKSB7CisgICAgICAgIGlm
ICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMpIHsKKyAgICAgICAgICAgIGlmIChXZWJH
TENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OnN1cHBvcnRlZCgqdGhpcykpCisgICAgICAgICAgICAg
ICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdM
Q29tcHJlc3NlZFRleHR1cmVQVlJUQz4oKnRoaXMpOworICAgICAgICB9CiAgICAgICAgIHJldHVy
biBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3Rj
IikKLSAgICAgICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhp
cykpIHsKLSAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDKQotICAgICAg
ICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2Vi
R0xDb21wcmVzc2VkVGV4dHVyZVMzVEM+KCp0aGlzKTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKSkgeworICAgICAg
ICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMpIHsKKyAgICAgICAgICAgIGlmIChX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKCp0aGlzKSkKKyAgICAgICAgICAg
ICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJH
TENvbXByZXNzZWRUZXh0dXJlUzNUQz4oKnRoaXMpOworICAgICAgICB9CiAgICAgICAgIHJldHVy
biBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVwdGhfdGV4dHVyZSIpCi0gICAgICAg
ICYmIFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoKmdyYXBoaWNzQ29udGV4dDNEKCkpKSB7
Ci0gICAgICAgIGlmICghbV93ZWJnbERlcHRoVGV4dHVyZSkKLSAgICAgICAgICAgIG1fd2ViZ2xE
ZXB0aFRleHR1cmUgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVwdGhUZXh0dXJlPigqdGhpcyk7
CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlcHRoX3RleHR1
cmUiKSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xEZXB0aFRleHR1cmUpIHsKKyAgICAgICAgICAg
IGlmIChXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCpncmFwaGljc0NvbnRleHQzRCgpKSkK
KyAgICAgICAgICAgICAgICBtX3dlYmdsRGVwdGhUZXh0dXJlID0gc3RkOjptYWtlX3VuaXF1ZTxX
ZWJHTERlcHRoVGV4dHVyZT4oKnRoaXMpOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3dl
YmdsRGVwdGhUZXh0dXJlLmdldCgpOwogICAgIH0KICAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShuYW1lLCAiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpKSB7CkBAIC0xMDc5LDEwICsx
MDg2LDExIEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRl
bnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICAgICAgbV93ZWJnbERlYnVnUmVuZGVy
ZXJJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnUmVuZGVyZXJJbmZvPigqdGhpcyk7
CiAgICAgICAgIHJldHVybiBtX3dlYmdsRGVidWdSZW5kZXJlckluZm8uZ2V0KCk7CiAgICAgfQot
ICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19zaGFkZXJz
IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FO
R0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERl
YnVnU2hhZGVycykKLSAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkdMRGVidWdTaGFkZXJzPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UobmFtZSwgIldFQkdMX2RlYnVnX3NoYWRlcnMiKSkgeworICAgICAgICBpZiAoIW1f
d2ViZ2xEZWJ1Z1NoYWRlcnMpIHsKKyAgICAgICAgICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVu
c2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFk
ZXJfc291cmNlIiB9KSkKKyAgICAgICAgICAgICAgICBtX3dlYmdsRGVidWdTaGFkZXJzID0gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnU2hhZGVycz4oKnRoaXMpOworICAgICAgICB9CiAgICAg
ICAgIHJldHVybiBtX3dlYmdsRGVidWdTaGFkZXJzLmdldCgpOwogICAgIH0KIApAQCAtMTA5Niw5
MCArMTEwNCw5MCBAQCBWZWN0b3I8U3RyaW5nPiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRT
dXBwb3J0ZWRFeHRlbnNpb25zKCkKICAgICBpZiAobV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9u
KQogICAgICAgICByZXR1cm4gcmVzdWx0OwogCi0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpKQotICAgICAgICByZXN1bHQu
YXBwZW5kKCJPRVNfdGV4dHVyZV9mbG9hdCIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVu
c2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpCi0gICAgICAg
IHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpOwotICAgIGlmIChtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9h
dCIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0Iik7Ci0g
ICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVy
ZV9oYWxmX2Zsb2F0X2xpbmVhciIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdGV4dHVy
ZV9oYWxmX2Zsb2F0X2xpbmVhciIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cygiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpCi0gICAgICAg
IHJlc3VsdC5hcHBlbmQoIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTsK
KyAgICBhdXRvJiBleHRlbnNpb25zID0gbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCk7CisgICAg
aWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2Zs
b2F0IiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1
cmVfZmxvYXQiIH0pOworICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7
ICJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5k
KEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiIH0pOworICAgIGlmIChl
eHRlbnNpb25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zs
b2F0IiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1
cmVfaGFsZl9mbG9hdCIgfSk7CisgICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRl
cmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIiB9KSkKKyAgICAgICAgcmVz
dWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIi
IH0pOworICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRf
dGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFT
Q0lJTGl0ZXJhbCB7ICJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIiB9KTsK
ICAgICBpZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkKLSAg
ICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMi
KTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCS0lUX1dFQkdMX2Nv
bXByZXNzZWRfdGV4dHVyZV9hdGMiIH0pOwogICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJl
UFZSVEM6OnN1cHBvcnRlZCgqdGhpcykpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9X
RUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChB
U0NJSUxpdGVyYWwgeyAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIgfSk7
CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpKQot
ICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpOwor
ICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9jb21wcmVzc2VkX3Rl
eHR1cmVfczN0YyIgfSk7CiAgICAgaWYgKFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoKmdy
YXBoaWNzQ29udGV4dDNEKCkpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZXB0aF90
ZXh0dXJlIik7Ci0gICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfbG9zZV9jb250ZXh0Iik7Ci0gICAg
aWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9BTkdMRV90cmFuc2xh
dGVkX3NoYWRlcl9zb3VyY2UiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfZGVidWdf
c2hhZGVycyIpOwotICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8i
KTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfZGVwdGhfdGV4
dHVyZSIgfSk7CisgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfbG9zZV9j
b250ZXh0IiB9KTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAi
R0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIiB9KSkKKyAgICAgICAgcmVzdWx0LmFw
cGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfZGVidWdfc2hhZGVycyIgfSk7CisgICAgcmVzdWx0
LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIgfSk7CiAK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwg
R0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0OjpnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0g
dGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAo
aXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZUZyYW1lYnVmZmVyRnVuY1BhcmFt
ZXRlcnMoImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsIHRhcmdldCwgYXR0YWNo
bWVudCkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgCiAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmluZGluZyB8fCAhbV9mcmFtZWJ1
ZmZlckJpbmRpbmctPm9iamVjdCgpKSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVu
dFBhcmFtZXRlciIsICJubyBmcmFtZWJ1ZmZlciBib3VuZCIpOwotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICAKLSAgICBX
ZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0ID0gbV9mcmFtZWJ1ZmZlckJpbmRpbmctPmdldEF0dGFj
aG1lbnRPYmplY3QoYXR0YWNobWVudCk7CisgICAgYXV0byogb2JqZWN0ID0gbV9mcmFtZWJ1ZmZl
ckJpbmRpbmctPmdldEF0dGFjaG1lbnRPYmplY3QoYXR0YWNobWVudCk7CiAgICAgaWYgKCFvYmpl
Y3QpIHsKICAgICAgICAgaWYgKHBuYW1lID09IEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZF
Ul9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSk7Ci0gICAgICAgIC8vIE9wZW5HTCBFUyAyLjAgc3Bl
Y2lmaWVzIElOVkFMSURfRU5VTSBpbiB0aGlzIGNhc2UsIHdoaWxlIGRlc2t0b3AgR0wKLSAgICAg
ICAgLy8gc3BlY2lmaWVzIElOVkFMSURfT1BFUkFUSU9OLgorICAgICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSk7CisgICAgICAgIC8v
IE9wZW5HTCBFUyAyLjAgc3BlY2lmaWVzIElOVkFMSURfRU5VTSBpbiB0aGlzIGNhc2UsIHdoaWxl
IGRlc2t0b3AgR0wgc3BlY2lmaWVzIElOVkFMSURfT1BFUkFUSU9OLgogICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAgICAgCi0gICAgQVNTRVJUKG9iamVjdC0+aXNUZXh0dXJlKCkgfHwgb2JqZWN0LT5pc1JlbmRl
cmJ1ZmZlcigpKTsKICAgICBpZiAob2JqZWN0LT5pc1RleHR1cmUoKSkgewogICAgICAgICBzd2l0
Y2ggKHBuYW1lKSB7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfT0JKRUNUX1RZUEU6Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUpOwogICAgICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FOgot
ICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhyZWludGVycHJldF9jYXN0PFdlYkdMVGV4
dHVyZSo+KG9iamVjdCkpOworICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIocmVpbnRlcnBy
ZXRfY2FzdDxXZWJHTFRleHR1cmUmPigqb2JqZWN0KSk7CiAgICAgICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MRVZFTDoKICAgICAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NV
QkVfTUFQX0ZBQ0U6CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkc6IHsKICAgICAgICAgICAgIEdDM0RpbnQgdmFsdWUg
PSAwOwogICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJh
bWV0ZXJpdih0YXJnZXQsIGF0dGFjaG1lbnQsIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CiAg
ICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9y
KEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1l
bnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBmb3IgdGV4dHVyZSBhdHRhY2ht
ZW50Iik7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVChv
YmplY3QtPmlzUmVuZGVyYnVmZmVyKCkpOwogICAgICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAg
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNU
X1RZUEU6Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29udGV4dDNE
OjpSRU5ERVJCVUZGRVIpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSKTsKICAgICAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRToKLSAgICAgICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8ocmVpbnRlcnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZl
cio+KG9iamVjdCkpOworICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIocmVpbnRlcnByZXRf
Y2FzdDxXZWJHTFJlbmRlcmJ1ZmZlciY+KCpvYmplY3QpKTsKICAgICAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNPRElORyA6IHsKLSAg
ICAgICAgICAgIFdlYkdMUmVuZGVyYnVmZmVyKiByZW5kZXJCdWZmZXIgPSByZWludGVycHJldF9j
YXN0PFdlYkdMUmVuZGVyYnVmZmVyKj4ob2JqZWN0KTsKLSAgICAgICAgICAgIEdDM0RlbnVtIHJl
bmRlckJ1ZmZlckZvcm1hdCA9IHJlbmRlckJ1ZmZlci0+Z2V0SW50ZXJuYWxGb3JtYXQoKTsKLSAg
ICAgICAgICAgIGlmIChyZW5kZXJCdWZmZXJGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlNS
R0I4X0FMUEhBOAotICAgICAgICAgICAgICAgIHx8IHJlbmRlckJ1ZmZlckZvcm1hdCA9PSBHcmFw
aGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9TUkdCOF9FVEMyCi0gICAgICAgICAgICAgICAgfHwg
cmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NSR0I4
X0FMUEhBOF9FVEMyX0VBQwotICAgICAgICAgICAgICAgIHx8IHJlbmRlckJ1ZmZlckZvcm1hdCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9TUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEEx
X0VUQzIpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29u
dGV4dDNEOjpTUkdCKTsKKyAgICAgICAgICAgIGF1dG8mIHJlbmRlckJ1ZmZlciA9IHJlaW50ZXJw
cmV0X2Nhc3Q8V2ViR0xSZW5kZXJidWZmZXImPigqb2JqZWN0KTsKKyAgICAgICAgICAgIGF1dG8g
Zm9ybWF0ID0gcmVuZGVyQnVmZmVyLmdldEludGVybmFsRm9ybWF0KCk7CisgICAgICAgICAgICBp
ZiAoZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCOF9BTFBIQTgKKyAgICAgICAgICAg
ICAgICB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfRVRD
MgorICAgICAgICAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJF
U1NFRF9TUkdCOF9BTFBIQThfRVRDMl9FQUMKKyAgICAgICAgICAgICAgICB8fCBmb3JtYXQgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfUFVOQ0hUSFJPVUdIX0FMUEhBMV9F
VEMyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihHcmFw
aGljc0NvbnRleHQzRDo6U1JHQik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOworICAgICAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKICAg
ICAgICAgfQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVu
dFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIGZvciByZW5kZXJidWZmZXIgYXR0
YWNobWVudCIpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0xMTkxLDE5ICsxMTk5
LDE2IEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVGcmFtZWJ1ZmZlckZ1
bmNQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGZ1bmN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAgICAgc3dpdGNoIChhdHRhY2htZW50KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6Q09MT1JfQVRUQUNITUVOVDA6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhf
QVRUQUNITUVOVDoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0FUVEFDSE1F
TlQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5U
OgotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgZGVmYXVsdDoKLSAg
ICAgICAgaWYgKGF0dGFjaG1lbnQgPiBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVO
VDAKLSAgICAgICAgICAgICYmIGF0dGFjaG1lbnQgPCBzdGF0aWNfY2FzdDxHQzNEZW51bT4oR3Jh
cGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwICsgZ2V0TWF4Q29sb3JBdHRhY2htZW50
cygpKSkKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBpZiAoYXR0YWNobWVudCA+PSBHcmFw
aGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAgJiYgYXR0YWNobWVudCA8IHN0YXRpY19j
YXN0PEdDM0RlbnVtPihHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAgKyBnZXRN
YXhDb2xvckF0dGFjaG1lbnRzKCkpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0
aW9uTmFtZSwgImludmFsaWQgYXR0YWNobWVudCIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQotICAgIHJldHVybiB0cnVlOwogfQogCiBHQzNEaW50IFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmdldE1heERyYXdCdWZmZXJzKCkKQEAgLTEzOTUsNyArMTQwMCw3IEBAIEdDM0RlbnVtIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJhc2VJbnRlcm5hbEZvcm1hdEZyb21JbnRlcm5hbEZvcm1h
dChHQzNEZW51bSBpCiBib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmlzSW50ZWdlckZvcm1h
dChHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCkKIHsKICAgICAvLyBGSVhNRTogYmFzZUludGVybmFs
Rm9ybWF0RnJvbUludGVybmFsRm9ybWF0KCkgbmV2ZXIgcmV0dXJucyBhbnkgb2YgdGhlc2UgZW51
bXMuCi0gICAgLy8gQ3VycmVudGx5LCBUaGlzIGZ1bmN0aW9uIGVycm9uZW91c2x5IGFsd2F5cyBy
ZXR1cm5zIGZhbHNlLgorICAgIC8vIEJlY2F1c2Ugb2YgdGhhdCwgdGhpcyBmdW5jdGlvbiBlcnJv
bmVvdXNseSBhbHdheXMgcmV0dXJucyBmYWxzZSEKICAgICBzd2l0Y2ggKGJhc2VJbnRlcm5hbEZv
cm1hdEZyb21JbnRlcm5hbEZvcm1hdChpbnRlcm5hbGZvcm1hdCkpIHsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpSRURfSU5URUdFUjoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
R19JTlRFR0VSOgpAQCAtMTQwNiwxMSArMTQxMSwxMCBAQCBib29sIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmlzSW50ZWdlckZvcm1hdChHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCkKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQ
YXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RP
clBlbmRpbmcoKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwotICAgIGNvbnN0IGlu
dCBpbnRaZXJvID0gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgc3dpdGNoIChwbmFt
ZSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFDVElWRV9URVhUVVJFOgogICAgICAg
ICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwpAQCAtMTQyMSw3ICsxNDI1
LDcgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBTFBIQV9CSVRTOgog
ICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpBUlJBWV9CVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhtX2JvdW5kQXJyYXlCdWZmZXIuZ2V0KCkpOworICAgICAgICByZXR1cm4gbV9ib3VuZEFy
cmF5QnVmZmVyOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkJMRU5EOgogICAgICAgICBy
ZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6QkxFTkRfQ09MT1I6CkBAIC0xNDQ1LDE2ICsxNDQ5LDE2IEBAIFdlYkdMR2V0SW5mbyBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfV1JJVEVNQVNLOgogICAgICAgICByZXR1cm4g
Z2V0Qm9vbGVhbkFycmF5UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhQYXNzUmVmUHRyPFVpbnQzMkFycmF5PihVaW50MzJBcnJheTo6Y3JlYXRlKG1fY29tcHJl
c3NlZFRleHR1cmVGb3JtYXRzLmRhdGEoKSwgbV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMuc2l6
ZSgpKSkpOworICAgICAgICByZXR1cm4gVWludDMyQXJyYXk6OmNyZWF0ZShtX2NvbXByZXNzZWRU
ZXh0dXJlRm9ybWF0cy5kYXRhKCksIG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLnNpemUoKSk7
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VMTF9GQUNFOgogICAgICAgICByZXR1cm4g
Z2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
Q1VMTF9GQUNFX01PREU6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihw
bmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VSUkVOVF9QUk9HUkFNOgotICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fY3VycmVudFByb2dyYW0uZ2V0KCkpOworICAgICAg
ICByZXR1cm4gbV9jdXJyZW50UHJvZ3JhbTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpE
RVBUSF9CSVRTOgogICAgICAgICBpZiAoIW1fZnJhbWVidWZmZXJCaW5kaW5nICYmICFtX2F0dHJp
YnV0ZXMuZGVwdGgpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKGludFplcm8pOwor
ICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5h
bWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NMRUFSX1ZBTFVFOgogICAg
ICAgICByZXR1cm4gZ2V0RmxvYXRQYXJhbWV0ZXIocG5hbWUpOwpAQCAtMTQ2OSw5ICsxNDczLDkg
QEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNE
ZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpESVRIRVI6CiAgICAgICAg
IHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpFTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVudEFycmF5QnVmZmVy
KCkpOworICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihtX2JvdW5kVmVydGV4QXJyYXlPYmplY3Qt
PmdldEVsZW1lbnRBcnJheUJ1ZmZlcigpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpG
UkFNRUJVRkZFUl9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fZnJhbWVi
dWZmZXJCaW5kaW5nLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIG1fZnJhbWVidWZmZXJCaW5kaW5n
OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZST05UX0ZBQ0U6CiAgICAgICAgIHJldHVy
biBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6R0VORVJBVEVfTUlQTUFQX0hJTlQ6CkBAIC0xNTE5LDkgKzE1MjMsOSBAQCBXZWJHTEdl
dEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFRF9CSVRTOgogICAgICAgICByZXR1cm4g
Z2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5E
RVJCVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3JlbmRlcmJ1
ZmZlckJpbmRpbmcuZ2V0KCkpOworICAgICAgICByZXR1cm4gbV9yZW5kZXJidWZmZXJCaW5kaW5n
OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkVSOgotICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKFN0cmluZygiV2ViS2l0IFdlYkdMIikpOworICAgICAgICByZXR1cm4gU3Ry
aW5nIHsgQVNDSUlMaXRlcmFsIHsgIldlYktpdCBXZWJHTCIgfSB9OwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OlNBTVBMRV9CVUZGRVJTOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1l
dGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTQU1QTEVfQ09WRVJBR0Vf
SU5WRVJUOgpAQCAtMTUzNSw3ICsxNTM5LDcgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpTQ0lTU09SX1RFU1Q6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1l
dGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTSEFESU5HX0xBTkdVQUdF
X1ZFUlNJT046Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oIldlYkdMIEdMU0wgRVMgMS4w
ICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFO
R1VBR0VfVkVSU0lPTikgKyAiKSIpOworICAgICAgICByZXR1cm4gIldlYkdMIEdMU0wgRVMgMS4w
ICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFO
R1VBR0VfVkVSU0lPTikgKyAiKSI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJ
TF9CQUNLX0ZBSUw6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFt
ZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9CQUNLX0ZVTkM6CkBAIC0x
NTUyLDcgKzE1NTYsNyBAQCBXZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0
UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQ
YXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQklU
UzoKICAgICAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAhbV9hdHRyaWJ1dGVzLnN0
ZW5jaWwpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKGludFplcm8pOworICAgICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQ0xFQVJfVkFMVUU6CiAgICAgICAg
IHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwpAQCAtMTU3NSwzOCArMTU3OSwzOCBAQCBX
ZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVt
IHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNVQlBJWEVMX0JJVFM6CiAgICAg
ICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkVfQklORElOR18yRDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyht
X3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlMkRCaW5kaW5nLmdldCgp
KTsKKyAgICAgICAgcmV0dXJuIG1fdGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLnRl
eHR1cmUyREJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5E
SU5HX0NVQkVfTUFQOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdGV4dHVyZVVuaXRz
W21fYWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmVDdWJlTWFwQmluZGluZy5nZXQoKSk7CisgICAg
ICAgIHJldHVybiBtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlQ3Vi
ZU1hcEJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0FMSUdOTUVO
VDoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6VU5QQUNLX0ZMSVBfWV9XRUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhtX3VucGFja0ZsaXBZKTsKKyAgICAgICAgcmV0dXJuIG1fdW5wYWNrRmxpcFk7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdM
OgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7
CisgICAgICAgIHJldHVybiBtX3VucGFja1ByZW11bHRpcGx5QWxwaGE7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6VU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTDoKLSAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3VucGFja0NvbG9yc3BhY2VDb252ZXJzaW9uKTsKKyAg
ICAgICAgcmV0dXJuIG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb247CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6VkVORE9SOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFN0cmlu
ZygiV2ViS2l0IikpOworICAgICAgICByZXR1cm4gU3RyaW5nIHsgQVNDSUlMaXRlcmFsIHsgIldl
YktpdCIgfSB9OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlNJT046Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oIldlYkdMIDIuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5n
KEdyYXBoaWNzQ29udGV4dDNEOjpWRVJTSU9OKSArICIpIik7CisgICAgICAgIHJldHVybiAiV2Vi
R0wgMi4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlNJ
T04pICsgIikiOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZJRVdQT1JUOgogICAgICAg
ICByZXR1cm4gZ2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBXZWJH
TERlYnVnUmVuZGVyZXJJbmZvOjpVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTDoKICAgICAgICAgaWYg
KG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbykKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8obV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkVSKSk7Cisg
ICAgICAgICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6
OlJFTkRFUkVSKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBX
RUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBXZWJHTERl
YnVnUmVuZGVyZXJJbmZvOjpVTk1BU0tFRF9WRU5ET1JfV0VCR0w6CiAgICAgICAgIGlmIChtX3dl
YmdsRGVidWdSZW5kZXJlckluZm8pCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1f
Y29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1IpKTsKKyAgICAgICAg
ICAgIHJldHVybiBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVORE9S
KTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
RU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBXRUJHTF9kZWJ1
Z19yZW5kZXJlcl9pbmZvIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6Ok1B
WF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVDogLy8gRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNv
dHJvcGljCiAgICAgICAgIGlmIChtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykKICAgICAg
ICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihFeHRlbnNpb25zM0Q6Ok1BWF9U
RVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCk7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBw
YXJhbWV0ZXIgbmFtZSwgRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIG5vdCBlbmFibGVk
Iik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBR01FTlRfU0hBREVSX0RFUklWQVRJ
VkVfSElOVDoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6TUFYXzNEX1RFWFRVUkVfU0laRToKQEAgLTE2ODksMTIgKzE2
OTMsMTAgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRl
cihHQzNEZW51bSBwbmFtZSkKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5h
bWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOSUZPUk1fQlVGRkVSX09GRlNFVF9B
TElHTk1FTlQ6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwotICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BUlJBWV9CSU5ESU5HOiB7Ci0gICAgICAgIGlm
ICghbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3QoKSkKLSAgICAgICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dCo+KG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKSkpOwotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VkVSVEVYX0FSUkFZX0JJTkRJTkc6CisgICAgICAgIGlmIChtX2JvdW5kVmVy
dGV4QXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpKQorICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHN0YXRpY19jYXN0PFdlYkdMVmVydGV4
QXJyYXlPYmplY3QmPigqbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0KSk7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6RFJBV19CVUZGRVIwOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkRSQVdfQlVGRkVSMToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JVRkZFUjI6
CkBAIC0xNzEwLDE0ICsxNzEyLDEwIEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6RFJBV19CVUZGRVIxMjoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JV
RkZFUjEzOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTQ6Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RFJBV19CVUZGRVIxNTogewotICAgICAgICBHQzNEaW50
IHZhbHVlID0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkU7CisgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6RFJBV19CVUZGRVIxNToKICAgICAgICAgaWYgKG1fZnJhbWVidWZmZXJCaW5kaW5nKQot
ICAgICAgICAgICAgdmFsdWUgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0RHJhd0J1ZmZlcihw
bmFtZSk7Ci0gICAgICAgIGVsc2UgLy8gZW11bGF0ZWQgYmFja2J1ZmZlcgotICAgICAgICAgICAg
dmFsdWUgPSBtX2JhY2tEcmF3QnVmZmVyOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZh
bHVlKTsKLSAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG1fZnJhbWVidWZmZXJCaW5kaW5n
LT5nZXREcmF3QnVmZmVyKHBuYW1lKTsKKyAgICAgICAgcmV0dXJuIG1fYmFja0RyYXdCdWZmZXI7
IC8vIGVtdWxhdGVkIGJhY2tidWZmZXIKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT1BZ
X1JFQURfQlVGRkVSOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPUFlfV1JJVEVfQlVG
RkVSOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlBJWEVMX1BBQ0tfQlVGRkVSX0JJTkRJ
Tkc6ICAgCkBAIC0xNzMwLDEwICsxNzI4LDEwIEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HOgogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlVOSUZPUk1fQlVGRkVSX0JJTkRJTkc6CiAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0
ZXIiLCAicGFyYW1ldGVyIG5hbWUgbm90IHlldCBzdXBwb3J0ZWQiKTsKLSAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVN
LCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAK
QEAgLTE3NTQsNyArMTc1Miw3IEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRh
dGVJbmRleEFycmF5Q29uc2VydmF0aXZlKEdDM0RlbnVtIHR5cGUsIHVuc2lnCiAgICAgLy8gVGhl
IGNhc2UgY291bnQ9PTAgaXMgYWxyZWFkeSBkZWFsdCB3aXRoIGluIGRyYXdFbGVtZW50cyBiZWZv
cmUgdmFsaWRhdGVJbmRleEFycmF5Q29uc2VydmF0aXZlLgogICAgIGlmICghbnVtRWxlbWVudHMp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjb25zdCBBcnJheUJ1ZmZlciogYnVmZmVyID0g
ZWxlbWVudEFycmF5QnVmZmVyLT5lbGVtZW50QXJyYXlCdWZmZXIoKTsKKyAgICBhdXRvKiBidWZm
ZXIgPSBlbGVtZW50QXJyYXlCdWZmZXItPmVsZW1lbnRBcnJheUJ1ZmZlcigpOwogICAgIEFTU0VS
VChidWZmZXIpOwogICAgIAogICAgIGludCBtYXhJbmRleCA9IGVsZW1lbnRBcnJheUJ1ZmZlci0+
Z2V0Q2FjaGVkTWF4SW5kZXgodHlwZSk7CkBAIC0xODA2LDcgKzE4MDQsNiBAQCBib29sIFdlYkdM
MlJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlQmxlbmRFcXVhdGlvbihjb25zdCBjaGFyKiBmdW5j
dGlvbk5hbWUsIEdDMwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6Ok1JTjoKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpNQVg6CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBi
cmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIG1vZGUiKTsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDc1NWRlNmJiZGQyNjk4MTY3ZDNiYWEwZmRk
ZDM0YmJlMDYxMTVkNTkuLjhiY2YwYmUzZDM1ZDI3OTRiMjYwNzEyNmIzOGE4MDU1Y2JmNjVmMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0Nv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdD
b250ZXh0LmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDsK
IGNsYXNzIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSB7CiBwdWJsaWM6CiAgICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1M
Q2FudmFzRWxlbWVudCYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwotICAgIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+
JiYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOworICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQo
SFRNTENhbnZhc0VsZW1lbnQmLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4
dEF0dHJpYnV0ZXMpOwogCiAgICAgLyogQnVmZmVyIG9iamVjdHMgKi8KICAgICB1c2luZyBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpidWZmZXJEYXRhOwpAQCAtNTIsMTAgKzUyLDEwIEBAIHB1
YmxpYzoKICAgICB2b2lkIGdldEJ1ZmZlclN1YkRhdGEoR0MzRGVudW0gdGFyZ2V0LCBsb25nIGxv
bmcgc3JjQnl0ZU9mZnNldCwgUmVmUHRyPEFycmF5QnVmZmVyVmlldz4mJiBkc3REYXRhLCBHQzNE
dWludCBkc3RPZmZzZXQgPSAwLCBHQzNEdWludCBsZW5ndGggPSAwKTsKICAgICAKICAgICAvKiBG
cmFtZWJ1ZmZlciBvYmplY3RzICovCi0gICAgV2ViR0xHZXRJbmZvIGdldEZyYW1lYnVmZmVyQXR0
YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdD
M0RlbnVtIHBuYW1lKSBmaW5hbDsKKyAgICBXZWJHTEFueSBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1l
bnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51
bSBwbmFtZSkgZmluYWw7CiAgICAgdm9pZCBibGl0RnJhbWVidWZmZXIoR0MzRGludCBzcmNYMCwg
R0MzRGludCBzcmNZMCwgR0MzRGludCBzcmNYMSwgR0MzRGludCBzcmNZMSwgR0MzRGludCBkc3RY
MCwgR0MzRGludCBkc3RZMCwgR0MzRGludCBkc3RYMSwgR0MzRGludCBkc3RZMSwgR0MzRGJpdGZp
ZWxkIG1hc2ssIEdDM0RlbnVtIGZpbHRlcik7CiAgICAgdm9pZCBmcmFtZWJ1ZmZlclRleHR1cmVM
YXllcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0R1aW50IHRleHR1
cmUsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgbGF5ZXIpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRJ
bnRlcm5hbGZvcm1hdFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFs
Zm9ybWF0LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0SW50ZXJuYWxmb3JtYXRQ
YXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVu
dW0gcG5hbWUpOwogICAgIHZvaWQgaW52YWxpZGF0ZUZyYW1lYnVmZmVyKEdDM0RlbnVtIHRhcmdl
dCwgVmVjdG9yPEdDM0RlbnVtPiBhdHRhY2htZW50cyk7CiAgICAgdm9pZCBpbnZhbGlkYXRlU3Vi
RnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBWZWN0b3I8R0MzRGVudW0+IGF0dGFjaG1lbnRz
LCBHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
KTsKICAgICB2b2lkIHJlYWRCdWZmZXIoR0MzRGVudW0gc3JjKTsKQEAgLTExNiwyOSArMTE2LDI5
IEBAIHB1YmxpYzoKICAgICAKICAgICAvKiBRdWVyeSBPYmplY3RzICovCiAgICAgUmVmUHRyPFdl
YkdMUXVlcnk+IGNyZWF0ZVF1ZXJ5KCk7Ci0gICAgdm9pZCBkZWxldGVRdWVyeShXZWJHTFF1ZXJ5
KiBxdWVyeSk7Ci0gICAgR0MzRGJvb2xlYW4gaXNRdWVyeShXZWJHTFF1ZXJ5KiBxdWVyeSk7Ci0g
ICAgdm9pZCBiZWdpblF1ZXJ5KEdDM0RlbnVtIHRhcmdldCwgV2ViR0xRdWVyeSogcXVlcnkpOwor
ICAgIHZvaWQgZGVsZXRlUXVlcnkoV2ViR0xRdWVyeSopOworICAgIEdDM0Rib29sZWFuIGlzUXVl
cnkoV2ViR0xRdWVyeSopOworICAgIHZvaWQgYmVnaW5RdWVyeShHQzNEZW51bSB0YXJnZXQsIFdl
YkdMUXVlcnkqKTsKICAgICB2b2lkIGVuZFF1ZXJ5KEdDM0RlbnVtIHRhcmdldCk7CiAgICAgUmVm
UHRyPFdlYkdMUXVlcnk+IGdldFF1ZXJ5KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUp
OwotICAgIFdlYkdMR2V0SW5mbyBnZXRRdWVyeVBhcmFtZXRlcihXZWJHTFF1ZXJ5KiBxdWVyeSwg
R0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdMUXVl
cnkqLCBHQzNEZW51bSBwbmFtZSk7CiAgICAgCiAgICAgLyogU2FtcGxlciBPYmplY3RzICovCiAg
ICAgUmVmUHRyPFdlYkdMU2FtcGxlcj4gY3JlYXRlU2FtcGxlcigpOwotICAgIHZvaWQgZGVsZXRl
U2FtcGxlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIpOwotICAgIEdDM0Rib29sZWFuIGlzU2FtcGxl
cihXZWJHTFNhbXBsZXIqIHNhbXBsZXIpOwotICAgIHZvaWQgYmluZFNhbXBsZXIoR0MzRHVpbnQg
dW5pdCwgV2ViR0xTYW1wbGVyKiBzYW1wbGVyKTsKLSAgICB2b2lkIHNhbXBsZXJQYXJhbWV0ZXJp
KFdlYkdMU2FtcGxlciogc2FtcGxlciwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQgcGFyYW0pOwot
ICAgIHZvaWQgc2FtcGxlclBhcmFtZXRlcmYoV2ViR0xTYW1wbGVyKiBzYW1wbGVyLCBHQzNEZW51
bSBwbmFtZSwgR0MzRGZsb2F0IHBhcmFtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0U2FtcGxlclBh
cmFtZXRlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIsIEdDM0RlbnVtIHBuYW1lKTsKKyAgICB2b2lk
IGRlbGV0ZVNhbXBsZXIoV2ViR0xTYW1wbGVyKik7CisgICAgR0MzRGJvb2xlYW4gaXNTYW1wbGVy
KFdlYkdMU2FtcGxlciopOworICAgIHZvaWQgYmluZFNhbXBsZXIoR0MzRHVpbnQgdW5pdCwgV2Vi
R0xTYW1wbGVyKik7CisgICAgdm9pZCBzYW1wbGVyUGFyYW1ldGVyaShXZWJHTFNhbXBsZXIqLCBH
QzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7CisgICAgdm9pZCBzYW1wbGVyUGFyYW1ldGVy
ZihXZWJHTFNhbXBsZXIqLCBHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0IHBhcmFtKTsKKyAgICBX
ZWJHTEFueSBnZXRTYW1wbGVyUGFyYW1ldGVyKFdlYkdMU2FtcGxlciosIEdDM0RlbnVtIHBuYW1l
KTsKICAgICAKICAgICAvKiBTeW5jIG9iamVjdHMgKi8KICAgICBSZWZQdHI8V2ViR0xTeW5jPiBm
ZW5jZVN5bmMoR0MzRGVudW0gY29uZGl0aW9uLCBHQzNEYml0ZmllbGQgZmxhZ3MpOwotICAgIEdD
M0Rib29sZWFuIGlzU3luYyhXZWJHTFN5bmMqIHN5bmMpOwotICAgIHZvaWQgZGVsZXRlU3luYyhX
ZWJHTFN5bmMqIHN5bmMpOwotICAgIEdDM0RlbnVtIGNsaWVudFdhaXRTeW5jKFdlYkdMU3luYyog
c3luYywgR0MzRGJpdGZpZWxkIGZsYWdzLCBHQzNEdWludDY0IHRpbWVvdXQpOwotICAgIHZvaWQg
d2FpdFN5bmMoV2ViR0xTeW5jKiBzeW5jLCBHQzNEYml0ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQg
dGltZW91dCk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFN5bmNQYXJhbWV0ZXIoV2ViR0xTeW5jKiBz
eW5jLCBHQzNEZW51bSBwbmFtZSk7CisgICAgR0MzRGJvb2xlYW4gaXNTeW5jKFdlYkdMU3luYyop
OworICAgIHZvaWQgZGVsZXRlU3luYyhXZWJHTFN5bmMqKTsKKyAgICBHQzNEZW51bSBjbGllbnRX
YWl0U3luYyhXZWJHTFN5bmMqLCBHQzNEYml0ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91
dCk7CisgICAgdm9pZCB3YWl0U3luYyhXZWJHTFN5bmMqLCBHQzNEYml0ZmllbGQgZmxhZ3MsIEdD
M0R1aW50NjQgdGltZW91dCk7CisgICAgV2ViR0xBbnkgZ2V0U3luY1BhcmFtZXRlcihXZWJHTFN5
bmMqLCBHQzNEZW51bSBwbmFtZSk7CiAgICAgCiAgICAgLyogVHJhbnNmb3JtIEZlZWRiYWNrICov
CiAgICAgUmVmUHRyPFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+IGNyZWF0ZVRyYW5zZm9ybUZlZWRi
YWNrKCk7CkBAIC0xNTUsMTIgKzE1NSwxMiBAQCBwdWJsaWM6CiAgICAgLyogVW5pZm9ybSBCdWZm
ZXIgT2JqZWN0cyBhbmQgVHJhbnNmb3JtIEZlZWRiYWNrIEJ1ZmZlcnMgKi8KICAgICB2b2lkIGJp
bmRCdWZmZXJCYXNlKEdDM0RlbnVtIHRhcmdldCwgR0MzRHVpbnQgaW5kZXgsIFdlYkdMQnVmZmVy
KiBidWZmZXIpOwogICAgIHZvaWQgYmluZEJ1ZmZlclJhbmdlKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RHVpbnQgaW5kZXgsIFdlYkdMQnVmZmVyKiBidWZmZXIsIEdDM0RpbnQ2NCBvZmZzZXQsIEdDM0Rp
bnQ2NCBzaXplKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0SW5kZXhlZFBhcmFtZXRlcihHQzNEZW51
bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4KTsKKyAgICBXZWJHTEFueSBnZXRJbmRleGVkUGFyYW1l
dGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRHVpbnQgaW5kZXgpOwogICAgIFVpbnQzMkFycmF5KiBn
ZXRVbmlmb3JtSW5kaWNlcyhXZWJHTFByb2dyYW0qLCBWZWN0b3I8U3RyaW5nPiB1bmlmb3JtTmFt
ZXMpOwogICAgIEludDMyQXJyYXkqIGdldEFjdGl2ZVVuaWZvcm1zKFdlYkdMUHJvZ3JhbSosIFJl
ZlB0cjxVaW50MzJBcnJheT4mJiB1bmlmb3JtSW5kaWNlcywgR0MzRGVudW0gcG5hbWUpOwogICAg
IEdDM0R1aW50IGdldFVuaWZvcm1CbG9ja0luZGV4KFdlYkdMUHJvZ3JhbSosIFN0cmluZyB1bmlm
b3JtQmxvY2tOYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFy
YW1ldGVyKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50IHVuaWZvcm1CbG9ja0luZGV4LCBHQzNEZW51
bSBwbmFtZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUoV2Vi
R0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgpOworICAgIFdlYkdMQW55IGdl
dEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNEdWludCB1bmlm
b3JtQmxvY2tJbmRleCwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldEFjdGl2ZVVu
aWZvcm1CbG9ja05hbWUoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgp
OwogICAgIHZvaWQgdW5pZm9ybUJsb2NrQmluZGluZyhXZWJHTFByb2dyYW0qLCBHQzNEdWludCB1
bmlmb3JtQmxvY2tJbmRleCwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrQmluZGluZyk7CiAgICAgCiAg
ICAgLyogVmVydGV4IEFycmF5IE9iamVjdHMgKi8KQEAgLTE3NSw3ICsxNzUsNyBAQCBwcml2YXRl
OgogICAgIC8qIEV4dGVuc2lvbnMgKi8KICAgICBXZWJHTEV4dGVuc2lvbiogZ2V0RXh0ZW5zaW9u
KGNvbnN0IFN0cmluZyYpIGZpbmFsOwogICAgIFZlY3RvcjxTdHJpbmc+IGdldFN1cHBvcnRlZEV4
dGVuc2lvbnMoKSBmaW5hbDsKLSAgICBXZWJHTEdldEluZm8gZ2V0UGFyYW1ldGVyKEdDM0RlbnVt
IHBuYW1lKSBmaW5hbDsKKyAgICBXZWJHTEFueSBnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUp
IGZpbmFsOwogCiAgICAgdm9pZCByZW5kZXJidWZmZXJTdG9yYWdlKEdDM0RlbnVtIHRhcmdldCwg
R0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdo
dCkgZmluYWw7CiAgICAgdm9pZCBoaW50KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gbW9kZSkg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTQ0ZWQ5NDVhM2I5M2JlYjc4NDYwZjRhYmEyODVlMWYzNDBiMmZlMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQW55LmNwcApAQCAtMCwwICsxLDEx
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTEFueS5oIgorCisjaW5jbHVkZSAiSlNET01C
aW5kaW5nLmgiCisjaW5jbHVkZSAiSlNXZWJHTEJ1ZmZlci5oIgorI2luY2x1ZGUgIkpTV2ViR0xG
cmFtZWJ1ZmZlci5oIgorI2luY2x1ZGUgIkpTV2ViR0xQcm9ncmFtLmgiCisjaW5jbHVkZSAiSlNX
ZWJHTFJlbmRlcmJ1ZmZlci5oIgorI2luY2x1ZGUgIkpTV2ViR0xUZXh0dXJlLmgiCisjaW5jbHVk
ZSAiSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wyKQor
I2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oIgorI2VuZGlmCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworLy8gRklYTUU6IFRoaXMgbGlr
ZWx5IGNhbiBiZSBhdXRvZ2VuZXJhdGVkIHdpdGggYSBiaXQgb2Ygd29yay4KK0pTVmFsdWUgdG9K
UyhFeGVjU3RhdGUmIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25z
dCBXZWJHTEFueSYgYW55KQoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKGFueSwKKyAgICAg
ICAgW10gKHN0ZDo6bnVsbHB0cl90KSB7CisgICAgICAgICAgICByZXR1cm4ganNOdWxsKCk7Cisg
ICAgICAgIH0sCisgICAgICAgIFtdIChib29sIHZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4g
anNCb29sZWFuKHZhbHVlKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10gKGludCB2YWx1ZSkgewor
ICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHZhbHVlKTsKKyAgICAgICAgfSwKKyAgICAgICAg
W10gKHVuc2lnbmVkIHZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIodmFsdWUp
OworICAgICAgICB9LAorICAgICAgICBbXSAobG9uZyBsb25nIHZhbHVlKSB7CisgICAgICAgICAg
ICByZXR1cm4ganNOdW1iZXIodmFsdWUpOworICAgICAgICB9LAorICAgICAgICBbXSAoZmxvYXQg
dmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBqc051bWJlcih2YWx1ZSk7CisgICAgICAgIH0s
CisgICAgICAgIFsmXSAoY29uc3QgU3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJu
IGpzU3RyaW5nV2l0aENhY2hlKCZzdGF0ZSwgdmFsdWUpOworICAgICAgICB9LAorICAgICAgICBb
Jl0gKGNvbnN0IFZlY3Rvcjxib29sPiYgdmFsdWVzKSB7CisgICAgICAgICAgICBNYXJrZWRBcmd1
bWVudEJ1ZmZlciBsaXN0OworICAgICAgICAgICAgZm9yIChhdXRvJiB2YWx1ZSA6IHZhbHVlcykK
KyAgICAgICAgICAgICAgICBsaXN0LmFwcGVuZChqc0Jvb2xlYW4odmFsdWUpKTsKKyAgICAgICAg
ICAgIHJldHVybiBjb25zdHJ1Y3RBcnJheSgmc3RhdGUsIDAsICZnbG9iYWxPYmplY3QsIGxpc3Qp
OworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxGbG9hdDMyQXJyYXk+JiBh
cnJheSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBh
cnJheS5nZXQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPEludDMy
QXJyYXk+JiBhcnJheSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFs
T2JqZWN0LCBhcnJheS5nZXQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVm
UHRyPFVpbnQ4QXJyYXk+JiBhcnJheSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRl
LCAmZ2xvYmFsT2JqZWN0LCBhcnJheS5nZXQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAo
Y29uc3QgUmVmUHRyPFVpbnQzMkFycmF5PiYgYXJyYXkpIHsKKyAgICAgICAgICAgIHJldHVybiB0
b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAgICB9LAorICAg
ICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTEJ1ZmZlcj4mIGJ1ZmZlcikgeworICAgICAgICAg
ICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBidWZmZXIuZ2V0KCkpOworICAg
ICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiYgYnVm
ZmVyKSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIGJ1
ZmZlci5nZXQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdlYkdM
UHJvZ3JhbT4mIHByb2dyYW0pIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmds
b2JhbE9iamVjdCwgcHJvZ3JhbS5nZXQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29u
c3QgUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPiYgYnVmZmVyKSB7CisgICAgICAgICAgICByZXR1
cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIGJ1ZmZlci5nZXQoKSk7CisgICAgICAgIH0s
CisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdlYkdMVGV4dHVyZT4mIHRleHR1cmUpIHsKKyAg
ICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgdGV4dHVyZS5nZXQo
KSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVM+JiBhcnJheSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAm
Z2xvYmFsT2JqZWN0LCBhcnJheS5nZXQoKSk7CisgICAgICAgIH0KKyNpZiBFTkFCTEUoV0VCR0wy
KQorICAgICAgICAsCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlP
YmplY3Q+JiBhcnJheSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFs
T2JqZWN0LCBhcnJheS5nZXQoKSk7CisgICAgICAgIH0KKyNlbmRpZgorICAgICk7Cit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQW55LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhM2EyMTMzN2Iw
Yzc5ZTNiZGUyN2MzODA5ODYwYzk2NWQ1YWI4MzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIldlYkdMQnVmZmVyLmgiCisjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgorI2lu
Y2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgorI2luY2x1ZGUgIldlYkdMUmVuZGVyYnVmZmVyLmgiCisj
aW5jbHVkZSAiV2ViR0xUZXh0dXJlLmgiCisjaW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUy5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvRmxvYXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8cnVu
dGltZS9JbnQzMkFycmF5Lmg+CisjaW5jbHVkZSA8cnVudGltZS9VaW50MzJBcnJheS5oPgorI2lu
Y2x1ZGUgPHJ1bnRpbWUvVWludDhBcnJheS5oPgorCisjaWYgRU5BQkxFKFdFQkdMMikKKyNpbmNs
dWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIEpTQyB7
CitjbGFzcyBFeGVjU3RhdGU7CitjbGFzcyBKU1ZhbHVlOworfQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworCit1c2luZyBXZWJHTEFueSA9IFZhcmlh
bnQ8c3RkOjpudWxscHRyX3QsIGJvb2wsIGludCwgdW5zaWduZWQsIGxvbmcgbG9uZywgZmxvYXQs
IFN0cmluZywgVmVjdG9yPGJvb2w+LAorICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+LAorICAgIFJl
ZlB0cjxJbnQzMkFycmF5PiwKKyAgICBSZWZQdHI8VWludDMyQXJyYXk+LAorICAgIFJlZlB0cjxV
aW50OEFycmF5PiwKKyAgICBSZWZQdHI8V2ViR0xCdWZmZXI+LAorICAgIFJlZlB0cjxXZWJHTEZy
YW1lYnVmZmVyPiwKKyAgICBSZWZQdHI8V2ViR0xQcm9ncmFtPiwKKyAgICBSZWZQdHI8V2ViR0xS
ZW5kZXJidWZmZXI+LAorICAgIFJlZlB0cjxXZWJHTFRleHR1cmU+LAorICAgIFJlZlB0cjxXZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTPgorI2lmIEVOQUJMRShXRUJHTDIpCisgICAgLCBSZWZQdHI8
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4KKyNlbmRpZgorPjsKKworSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUmLCBKU0RPTUdsb2JhbE9iamVjdCYsIGNvbnN0IFdlYkdMQW55Jik7CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQ29udGV4dEdyb3VwLmNwcAppbmRleCAyMTMzZjMzZWZjOGNlMDk4N2I0OTgzM2NiYzEw
ZmM3NTkxMmEwODIyLi5iNzlhN2I2ZmE3NTIzYjMyYmNlMmM4YzFlMWNiNjZkMWM3MWVjNGU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3Bw
CkBAIC00OSw0MyArNDksNDAgQEAgV2ViR0xDb250ZXh0R3JvdXA6On5XZWJHTENvbnRleHRHcm91
cCgpCiAgICAgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpOwogfQogCi1HcmFwaGljc0NvbnRl
eHQzRCogV2ViR0xDb250ZXh0R3JvdXA6OmdldEFHcmFwaGljc0NvbnRleHQzRCgpCitHcmFwaGlj
c0NvbnRleHQzRCYgV2ViR0xDb250ZXh0R3JvdXA6OmdldEFHcmFwaGljc0NvbnRleHQzRCgpCiB7
CiAgICAgQVNTRVJUKCFtX2NvbnRleHRzLmlzRW1wdHkoKSk7Ci0gICAgSGFzaFNldDxXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlKj46Oml0ZXJhdG9yIGl0ID0gbV9jb250ZXh0cy5iZWdpbigpOwot
ICAgIHJldHVybiAoKml0KS0+Z3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICByZXR1cm4gKigqbV9j
b250ZXh0cy5iZWdpbigpKS0+Z3JhcGhpY3NDb250ZXh0M0QoKTsKIH0KIAotdm9pZCBXZWJHTENv
bnRleHRHcm91cDo6YWRkQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjb250ZXh0
KQordm9pZCBXZWJHTENvbnRleHRHcm91cDo6YWRkQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlJiBjb250ZXh0KQogewotICAgIG1fY29udGV4dHMuYWRkKGNvbnRleHQpOworICAgIG1f
Y29udGV4dHMuYWRkKCZjb250ZXh0KTsKIH0KIAotdm9pZCBXZWJHTENvbnRleHRHcm91cDo6cmVt
b3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjb250ZXh0KQordm9pZCBXZWJH
TENvbnRleHRHcm91cDo6cmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBj
b250ZXh0KQogewogICAgIC8vIFdlIG11c3QgY2FsbCBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3Rz
IGJlZm9yZSByZW1vdmluZyB0aGUgbGFzdCBjb250ZXh0LgotICAgIGlmIChtX2NvbnRleHRzLnNp
emUoKSA9PSAxICYmIG1fY29udGV4dHMuY29udGFpbnMoY29udGV4dCkpCisgICAgaWYgKG1fY29u
dGV4dHMuc2l6ZSgpID09IDEgJiYgbV9jb250ZXh0cy5jb250YWlucygmY29udGV4dCkpCiAgICAg
ICAgIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMoKTsKIAotICAgIG1fY29udGV4dHMucmVtb3Zl
KGNvbnRleHQpOworICAgIG1fY29udGV4dHMucmVtb3ZlKCZjb250ZXh0KTsKIH0KIAotdm9pZCBX
ZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3Qp
Cit2b2lkIFdlYkdMQ29udGV4dEdyb3VwOjpyZW1vdmVPYmplY3QoV2ViR0xTaGFyZWRPYmplY3Qm
IG9iamVjdCkKIHsKLSAgICBtX2dyb3VwT2JqZWN0cy5yZW1vdmUob2JqZWN0KTsKKyAgICBtX2dy
b3VwT2JqZWN0cy5yZW1vdmUoJm9iamVjdCk7CiB9CiAKLXZvaWQgV2ViR0xDb250ZXh0R3JvdXA6
OmFkZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0KQordm9pZCBXZWJHTENvbnRleHRH
cm91cDo6YWRkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0JiBvYmplY3QpCiB7Ci0gICAgbV9ncm91
cE9iamVjdHMuYWRkKG9iamVjdCk7CisgICAgbV9ncm91cE9iamVjdHMuYWRkKCZvYmplY3QpOwog
fQogCiB2b2lkIFdlYkdMQ29udGV4dEdyb3VwOjpkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCkK
IHsKLSAgICB3aGlsZSAoIW1fZ3JvdXBPYmplY3RzLmlzRW1wdHkoKSkgewotICAgICAgICBIYXNo
U2V0PFdlYkdMU2hhcmVkT2JqZWN0Kj46Oml0ZXJhdG9yIGl0ID0gbV9ncm91cE9iamVjdHMuYmVn
aW4oKTsKLSAgICAgICAgKCppdCktPmRldGFjaENvbnRleHRHcm91cCgpOwotICAgIH0KKyAgICB3
aGlsZSAoIW1fZ3JvdXBPYmplY3RzLmlzRW1wdHkoKSkKKyAgICAgICAgKCptX2dyb3VwT2JqZWN0
cy5iZWdpbigpKS0+ZGV0YWNoQ29udGV4dEdyb3VwKCk7CiB9CiAKIHZvaWQgV2ViR0xDb250ZXh0
R3JvdXA6Omxvc2VDb250ZXh0R3JvdXAoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6TG9zdENv
bnRleHRNb2RlIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTENvbnRleHRHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0R3JvdXAuaAppbmRleCA5ZDAxMGJmY2MyMDk5NmExNDY0ODU3YWZjZWVmM2M0YWE3YTZiOWI3
Li5iMGFmNjJmZDRhZWE2ZDdjYmUxYzZjNjJhYmUxNDVlYzU3NjIwM2Q1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKQEAgLTI2LDI4ICsyNiwy
MSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwotY2xh
c3MgV2ViR0xFeHRlbnNpb247Ci1jbGFzcyBXZWJHTFNoYXJlZE9iamVjdDsKLWNsYXNzIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U7Ci0KIGNsYXNzIFdlYkdMQ29udGV4dEdyb3VwIGZpbmFsIDog
cHVibGljIFJlZkNvdW50ZWQ8V2ViR0xDb250ZXh0R3JvdXA+IHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFdlYkdMQ29udGV4dEdyb3VwPiBjcmVhdGUoKTsKICAgICB+V2ViR0xDb250ZXh0R3Jv
dXAoKTsKIAotICAgIHZvaWQgYWRkQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKik7
Ci0gICAgdm9pZCByZW1vdmVDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqKTsKKyAg
ICB2b2lkIGFkZENvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOworICAgIHZvaWQg
cmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CiAKLSAgICB2b2lkIGFk
ZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCopOwotICAgIHZvaWQgcmVtb3ZlT2JqZWN0KFdlYkdM
U2hhcmVkT2JqZWN0Kik7CisgICAgdm9pZCBhZGRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmKTsK
KyAgICB2b2lkIHJlbW92ZU9iamVjdChXZWJHTFNoYXJlZE9iamVjdCYpOwogCi0gICAgR3JhcGhp
Y3NDb250ZXh0M0QqIGdldEFHcmFwaGljc0NvbnRleHQzRCgpOworICAgIEdyYXBoaWNzQ29udGV4
dDNEJiBnZXRBR3JhcGhpY3NDb250ZXh0M0QoKTsKIAogICAgIHZvaWQgbG9zZUNvbnRleHRHcm91
cChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpMb3N0Q29udGV4dE1vZGUpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmNwcAppbmRleCA1
MjNlNmU2NDJkNzQ5YjYwMjJmMzc3M2E4OGVkZjRlYTBlY2I5YmI4Li4wYjg3Y2ZiNGQyNDNjOTUz
ZTkwY2VjOWM0NDc3YzJmZWQ5MjhkZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgV2ViR0xDb250
ZXh0T2JqZWN0OjpXZWJHTENvbnRleHRPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYg
Y29udGV4dCkKIFdlYkdMQ29udGV4dE9iamVjdDo6fldlYkdMQ29udGV4dE9iamVjdCgpCiB7CiAg
ICAgaWYgKG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5yZW1vdmVDb250ZXh0T2JqZWN0
KHRoaXMpOworICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNvbnRleHRPYmplY3QoKnRoaXMpOwog
fQogCiB2b2lkIFdlYkdMQ29udGV4dE9iamVjdDo6ZGV0YWNoQ29udGV4dCgpCkBAIC01MCw4ICs1
MCw4IEBAIHZvaWQgV2ViR0xDb250ZXh0T2JqZWN0OjpkZXRhY2hDb250ZXh0KCkKICAgICBkZXRh
Y2goKTsKICAgICBpZiAobV9jb250ZXh0KSB7CiAgICAgICAgIGRlbGV0ZU9iamVjdChtX2NvbnRl
eHQtPmdyYXBoaWNzQ29udGV4dDNEKCkpOwotICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNvbnRl
eHRPYmplY3QodGhpcyk7Ci0gICAgICAgIG1fY29udGV4dCA9IDA7CisgICAgICAgIG1fY29udGV4
dC0+cmVtb3ZlQ29udGV4dE9iamVjdCgqdGhpcyk7CisgICAgICAgIG1fY29udGV4dCA9IG51bGxw
dHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTEdldEluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xHZXRJbmZv
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGVhZDFjZmQ2Mzc0MmIwMGQ1MjQy
ZGU3MTk1NzIzYWIzZWYzZDFlYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMzcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkg
QXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdv
b2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShXRUJH
TCkKLQotI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgotCi0jaW5jbHVkZSA8cnVudGltZS9GbG9h
dDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL0ludDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxy
dW50aW1lL1VpbnQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9VaW50OEFycmF5Lmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oYm9vbCB2
YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZUJvb2wpCi0gICAgLCBtX2Jvb2wodmFsdWUpCi0gICAg
LCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAg
ICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhjb25zdCBi
b29sKiB2YWx1ZSwgaW50IHNpemUpCi0gICAgOiBtX3R5cGUoa1R5cGVCb29sQXJyYXkpCi0gICAg
LCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwg
bV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotewotICAgIGlmICghdmFsdWUgfHwg
c2l6ZSA8PTApCi0gICAgICAgIHJldHVybjsKLSAgICBtX2Jvb2xBcnJheS5yZXNpemUoc2l6ZSk7
Ci0gICAgZm9yIChpbnQgaWkgPSAwOyBpaSA8IHNpemU7ICsraWkpCi0gICAgICAgIG1fYm9vbEFy
cmF5W2lpXSA9IHZhbHVlW2lpXTsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oZmxv
YXQgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVGbG9hdCkKLSAgICAsIG1fYm9vbChmYWxzZSkK
LSAgICAsIG1fZmxvYXQodmFsdWUpCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZElu
dCgwKQotICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5m
byhpbnQgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVJbnQpCi0gICAgLCBtX2Jvb2woZmFsc2Up
Ci0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCh2YWx1ZSkKLSAgICAsIG1fdW5zaWduZWRJ
bnQoMCkKLSAgICAsIG1faW50NjQoMCkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldElu
Zm8oKQotICAgIDogbV90eXBlKGtUeXBlTnVsbCkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAs
IG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAg
LCBtX2ludDY0KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKGNvbnN0IFN0
cmluZyYgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVTdHJpbmcpCi0gICAgLCBtX2Jvb2woZmFs
c2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV9zdHJpbmcodmFs
dWUpCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi17Ci19Ci0KLVdl
YkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKHVuc2lnbmVkIGludCB2YWx1ZSkKLSAgICA6IG1fdHlw
ZShrVHlwZVVuc2lnbmVkSW50KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgw
KQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQodmFsdWUpCi0gICAgLCBtX2lu
dDY0KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKGxvbmcgbG9uZyB2YWx1
ZSkKLSAgICA6IG1fdHlwZShrVHlwZUludDY0KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwg
bV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAs
IG1faW50NjQodmFsdWUpCi17Ci19Ci0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFz
c1JlZlB0cjxXZWJHTEJ1ZmZlcj4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJHTEJ1ZmZl
cikKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDAp
Ci0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmds
QnVmZmVyKHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVm
UHRyPEZsb2F0MzJBcnJheT4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJHTEZsb2F0QXJy
YXkpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgw
KQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJn
bEZsb2F0QXJyYXkodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBh
c3NSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJH
TEZyYW1lYnVmZmVyKQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAg
ICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAg
ICAsIG1fd2ViZ2xGcmFtZWJ1ZmZlcih2YWx1ZSkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJH
TEdldEluZm8oUGFzc1JlZlB0cjxJbnQzMkFycmF5PiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlw
ZVdlYkdMSW50QXJyYXkpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0g
ICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQot
ICAgICwgbV93ZWJnbEludEFycmF5KHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdM
R2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUHJvZ3JhbT4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5
cGVXZWJHTFByb2dyYW0pCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0g
ICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQot
ICAgICwgbV93ZWJnbFByb2dyYW0odmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xH
ZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+IHZhbHVlKQotICAgIDogbV90eXBl
KGtUeXBlV2ViR0xSZW5kZXJidWZmZXIpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zs
b2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9p
bnQ2NCgwKQotICAgICwgbV93ZWJnbFJlbmRlcmJ1ZmZlcih2YWx1ZSkKLXsKLX0KLQotV2ViR0xH
ZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+IHZhbHVlKQotICAg
IDogbV90eXBlKGtUeXBlV2ViR0xUZXh0dXJlKQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwg
bV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAs
IG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xUZXh0dXJlKHZhbHVlKQotewotfQotCi1XZWJHTEdl
dEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHZhbHVlKQotICAgIDog
bV90eXBlKGtUeXBlV2ViR0xVbnNpZ25lZEJ5dGVBcnJheSkKLSAgICAsIG1fYm9vbChmYWxzZSkK
LSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDAp
Ci0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmdsVW5zaWduZWRCeXRlQXJyYXkodmFsdWUp
Ci17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDMyQXJy
YXk+IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xVbnNpZ25lZEludEFycmF5KQotICAg
ICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAs
IG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xVbnNpZ25l
ZEludEFycmF5KHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNz
UmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IHZhbHVlKQotICAgIDogbV90eXBlKGtU
eXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUykKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAs
IG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAg
LCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3RPRVModmFsdWUpCi17
Ci19Ci0KLSNpZiBFTkFCTEUoV0VCR0wyKQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFz
c1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlw
ZVdlYkdMVmVydGV4QXJyYXlPYmplY3QpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zs
b2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9p
bnQ2NCgwKQotICAgICwgbV93ZWJnbFZlcnRleEFycmF5T2JqZWN0KHZhbHVlKQotewotfQotI2Vu
ZGlmCi0KLVdlYkdMR2V0SW5mbzo6fldlYkdMR2V0SW5mbygpCi17Ci19Ci0KLVdlYkdMR2V0SW5m
bzo6VHlwZSBXZWJHTEdldEluZm86OmdldFR5cGUoKSBjb25zdAotewotICAgIHJldHVybiBtX3R5
cGU7Ci19Ci0KLWJvb2wgV2ViR0xHZXRJbmZvOjpnZXRCb29sKCkgY29uc3QKLXsKLSAgICBBU1NF
UlQoZ2V0VHlwZSgpID09IGtUeXBlQm9vbCk7Ci0gICAgcmV0dXJuIG1fYm9vbDsKLX0KLQotY29u
c3QgVmVjdG9yPGJvb2w+JiBXZWJHTEdldEluZm86OmdldEJvb2xBcnJheSgpIGNvbnN0Ci17Ci0g
ICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZUJvb2xBcnJheSk7Ci0gICAgcmV0dXJuIG1fYm9v
bEFycmF5OwotfQotCi1mbG9hdCBXZWJHTEdldEluZm86OmdldEZsb2F0KCkgY29uc3QKLXsKLSAg
ICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlRmxvYXQpOwotICAgIHJldHVybiBtX2Zsb2F0Owot
fQotCi1pbnQgV2ViR0xHZXRJbmZvOjpnZXRJbnQoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRU
eXBlKCkgPT0ga1R5cGVJbnQpOwotICAgIHJldHVybiBtX2ludDsKLX0KLQotY29uc3QgU3RyaW5n
JiBXZWJHTEdldEluZm86OmdldFN0cmluZygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUo
KSA9PSBrVHlwZVN0cmluZyk7Ci0gICAgcmV0dXJuIG1fc3RyaW5nOwotfQotCi11bnNpZ25lZCBp
bnQgV2ViR0xHZXRJbmZvOjpnZXRVbnNpZ25lZEludCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdl
dFR5cGUoKSA9PSBrVHlwZVVuc2lnbmVkSW50KTsKLSAgICByZXR1cm4gbV91bnNpZ25lZEludDsK
LX0KLQotbG9uZyBsb25nIFdlYkdMR2V0SW5mbzo6Z2V0SW50NjQoKSBjb25zdAotewotICAgIEFT
U0VSVChnZXRUeXBlKCkgPT0ga1R5cGVJbnQ2NCk7Ci0gICAgcmV0dXJuIG1faW50NjQ7Ci19Ci0K
LVdlYkdMQnVmZmVyKiBXZWJHTEdldEluZm86OmdldFdlYkdMQnVmZmVyKCkgY29uc3QKLXsKLSAg
ICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xCdWZmZXIpOwotICAgIHJldHVybiBtX3dl
YmdsQnVmZmVyLmdldCgpOwotfQotCi1GbG9hdDMyQXJyYXkqIFdlYkdMR2V0SW5mbzo6Z2V0V2Vi
R0xGbG9hdEFycmF5KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2Vi
R0xGbG9hdEFycmF5KTsKLSAgICByZXR1cm4gbV93ZWJnbEZsb2F0QXJyYXkuZ2V0KCk7Ci19Ci0K
LVdlYkdMRnJhbWVidWZmZXIqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xGcmFtZWJ1ZmZlcigpIGNv
bnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMRnJhbWVidWZmZXIpOwot
ICAgIHJldHVybiBtX3dlYmdsRnJhbWVidWZmZXIuZ2V0KCk7Ci19Ci0KLUludDMyQXJyYXkqIFdl
YkdMR2V0SW5mbzo6Z2V0V2ViR0xJbnRBcnJheSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5
cGUoKSA9PSBrVHlwZVdlYkdMSW50QXJyYXkpOwotICAgIHJldHVybiBtX3dlYmdsSW50QXJyYXku
Z2V0KCk7Ci19Ci0KLVdlYkdMUHJvZ3JhbSogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTFByb2dyYW0o
KSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTFByb2dyYW0pOwot
ICAgIHJldHVybiBtX3dlYmdsUHJvZ3JhbS5nZXQoKTsKLX0KLQotV2ViR0xSZW5kZXJidWZmZXIq
IFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xSZW5kZXJidWZmZXIoKSBjb25zdAotewotICAgIEFTU0VS
VChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTFJlbmRlcmJ1ZmZlcik7Ci0gICAgcmV0dXJuIG1fd2Vi
Z2xSZW5kZXJidWZmZXIuZ2V0KCk7Ci19Ci0KLVdlYkdMVGV4dHVyZSogV2ViR0xHZXRJbmZvOjpn
ZXRXZWJHTFRleHR1cmUoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVX
ZWJHTFRleHR1cmUpOwotICAgIHJldHVybiBtX3dlYmdsVGV4dHVyZS5nZXQoKTsKLX0KLQotVWlu
dDhBcnJheSogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KCkgY29uc3QK
LXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xVbnNpZ25lZEJ5dGVBcnJheSk7
Ci0gICAgcmV0dXJuIG1fd2ViZ2xVbnNpZ25lZEJ5dGVBcnJheS5nZXQoKTsKLX0KLQotVWludDMy
QXJyYXkqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xVbnNpZ25lZEludEFycmF5KCkgY29uc3QKLXsK
LSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xVbnNpZ25lZEludEFycmF5KTsKLSAg
ICByZXR1cm4gbV93ZWJnbFVuc2lnbmVkSW50QXJyYXkuZ2V0KCk7Ci19Ci0KLVdlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVMqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9F
UygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMpOwotICAgIHJldHVybiBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3RPRVMuZ2V0
KCk7Ci19Ci0KLSNpZiBFTkFCTEUoV0VCR0wyKQotV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCogV2Vi
R0xHZXRJbmZvOjpnZXRXZWJHTFZlcnRleEFycmF5T2JqZWN0KCkgY29uc3QKLXsKLSAgICBBU1NF
UlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCk7Ci0gICAgcmV0dXJu
IG1fd2ViZ2xWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
NmY2OTNjNWQ3NjM2MjIzZWQ1Y2FlM2MzOWZiNjAwM2JhZjc4ZmNhLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMR2V0SW5mby5oCisrKyAvZGV2L251bGwKQEAgLTEsMTU2ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICogQ29w
eXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5j
bHVkZSAiV2ViR0xCdWZmZXIuaCIKLSNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCi0jaW5j
bHVkZSAiV2ViR0xQcm9ncmFtLmgiCi0jaW5jbHVkZSAiV2ViR0xSZW5kZXJidWZmZXIuaCIKLSNp
bmNsdWRlICJXZWJHTFRleHR1cmUuaCIKLSNpZiBFTkFCTEUoV0VCR0wyKQotI2luY2x1ZGUgIldl
YkdMVmVydGV4QXJyYXlPYmplY3QuaCIKLSNlbmRpZgotI2luY2x1ZGUgIldlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Zsb2F0MzJBcnJheS5oPgotI2luY2x1
ZGUgPHJ1bnRpbWUvSW50MzJBcnJheS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvVWludDMyQXJyYXku
aD4KLSNpbmNsdWRlIDxydW50aW1lL1VpbnQ4QXJyYXkuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBBIHRhZ2dlZCB1bmlvbiByZXBy
ZXNlbnRpbmcgdGhlIHJlc3VsdCBvZiBnZXQgcXVlcmllcyBsaWtlCi0vLyBnZXRQYXJhbWV0ZXIg
KGVuY29tcGFzc2luZyBnZXRCb29sZWFudiwgZ2V0SW50ZWdlcnYsIGdldEZsb2F0dikgYW5kCi0v
LyBzaW1pbGFyIHZhcmlhbnRzLiBGb3IgcmVmZXJlbmNlIGNvdW50ZWQgdHlwZXMsIGluY3JlbWVu
dHMgYW5kCi0vLyBkZWNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIHRhcmdldCBv
YmplY3QuCi0KLWNsYXNzIFdlYkdMR2V0SW5mbyBmaW5hbCB7Ci1wdWJsaWM6Ci0gICAgZW51bSBU
eXBlIHsKLSAgICAgICAga1R5cGVCb29sLAotICAgICAgICBrVHlwZUJvb2xBcnJheSwKLSAgICAg
ICAga1R5cGVGbG9hdCwKLSAgICAgICAga1R5cGVJbnQsCi0gICAgICAgIGtUeXBlTnVsbCwKLSAg
ICAgICAga1R5cGVTdHJpbmcsCi0gICAgICAgIGtUeXBlVW5zaWduZWRJbnQsCi0gICAgICAgIGtU
eXBlSW50NjQsCi0gICAgICAgIGtUeXBlV2ViR0xCdWZmZXIsCi0gICAgICAgIGtUeXBlV2ViR0xG
bG9hdEFycmF5LAotICAgICAgICBrVHlwZVdlYkdMRnJhbWVidWZmZXIsCi0gICAgICAgIGtUeXBl
V2ViR0xJbnRBcnJheSwKLSAgICAgICAga1R5cGVXZWJHTE9iamVjdEFycmF5LAotICAgICAgICBr
VHlwZVdlYkdMUHJvZ3JhbSwKLSAgICAgICAga1R5cGVXZWJHTFJlbmRlcmJ1ZmZlciwKLSAgICAg
ICAga1R5cGVXZWJHTFRleHR1cmUsCi0gICAgICAgIGtUeXBlV2ViR0xVbnNpZ25lZEJ5dGVBcnJh
eSwKLSAgICAgICAga1R5cGVXZWJHTFVuc2lnbmVkSW50QXJyYXksCi0gICAgICAgIGtUeXBlV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdE9FUywKLSAgICAgICAga1R5cGVXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0LAotICAgIH07Ci0KLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oYm9vbCB2YWx1ZSk7Ci0g
ICAgV2ViR0xHZXRJbmZvKGNvbnN0IGJvb2wqIHZhbHVlLCBpbnQgc2l6ZSk7Ci0gICAgZXhwbGlj
aXQgV2ViR0xHZXRJbmZvKGZsb2F0IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8o
aW50IHZhbHVlKTsKLSAgICAvLyBSZXByZXNlbnRzIHRoZSBudWxsIHZhbHVlIGFuZCB0eXBlLgot
ICAgIFdlYkdMR2V0SW5mbygpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhjb25zdCBTdHJp
bmcmIHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8odW5zaWduZWQgaW50IHZhbHVl
KTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8obG9uZyBsb25nIHZhbHVlKTsKLSAgICBleHBs
aWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gdmFsdWUpOwotICAgIGV4
cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gdmFsdWUpOwotICAg
IGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IHZhbHVl
KTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxJbnQzMkFycmF5PiB2YWx1
ZSk7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudCBXZWJHTE9iamVjdEFycmF5Ci0gICAgLy8gV2Vi
R0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xPYmplY3RBcnJheT4gdmFsdWUpOwotICAgIGV4cGxp
Y2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUHJvZ3JhbT4gdmFsdWUpOwotICAgIGV4
cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPiB2YWx1ZSk7
Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xUZXh0dXJlPiB2YWx1
ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDhBcnJheT4gdmFs
dWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiB2
YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUz4gdmFsdWUpOwotI2lmIEVOQUJMRShXRUJHTDIpCi0gICAgZXhwbGljaXQg
V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4gdmFsdWUpOwot
I2VuZGlmCi0KLSAgICB+V2ViR0xHZXRJbmZvKCk7Ci0KLSAgICBUeXBlIGdldFR5cGUoKSBjb25z
dDsKLQotICAgIGJvb2wgZ2V0Qm9vbCgpIGNvbnN0OwotICAgIGNvbnN0IFZlY3Rvcjxib29sPiYg
Z2V0Qm9vbEFycmF5KCkgY29uc3Q7Ci0gICAgZmxvYXQgZ2V0RmxvYXQoKSBjb25zdDsKLSAgICBp
bnQgZ2V0SW50KCkgY29uc3Q7Ci0gICAgY29uc3QgU3RyaW5nJiBnZXRTdHJpbmcoKSBjb25zdDsK
LSAgICB1bnNpZ25lZCBpbnQgZ2V0VW5zaWduZWRJbnQoKSBjb25zdDsKLSAgICBsb25nIGxvbmcg
Z2V0SW50NjQoKSBjb25zdDsKLSAgICBXZWJHTEJ1ZmZlciogZ2V0V2ViR0xCdWZmZXIoKSBjb25z
dDsKLSAgICBGbG9hdDMyQXJyYXkqIGdldFdlYkdMRmxvYXRBcnJheSgpIGNvbnN0OwotICAgIFdl
YkdMRnJhbWVidWZmZXIqIGdldFdlYkdMRnJhbWVidWZmZXIoKSBjb25zdDsKLSAgICBJbnQzMkFy
cmF5KiBnZXRXZWJHTEludEFycmF5KCkgY29uc3Q7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudCBX
ZWJHTE9iamVjdEFycmF5Ci0gICAgLy8gV2ViR0xPYmplY3RBcnJheSogZ2V0V2ViR0xPYmplY3RB
cnJheSgpIGNvbnN0OwotICAgIFdlYkdMUHJvZ3JhbSogZ2V0V2ViR0xQcm9ncmFtKCkgY29uc3Q7
Ci0gICAgV2ViR0xSZW5kZXJidWZmZXIqIGdldFdlYkdMUmVuZGVyYnVmZmVyKCkgY29uc3Q7Ci0g
ICAgV2ViR0xUZXh0dXJlKiBnZXRXZWJHTFRleHR1cmUoKSBjb25zdDsKLSAgICBVaW50OEFycmF5
KiBnZXRXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KCkgY29uc3Q7Ci0gICAgVWludDMyQXJyYXkqIGdl
dFdlYkdMVW5zaWduZWRJbnRBcnJheSgpIGNvbnN0OwotICAgIFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3RPRVMqIGdldFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKSBjb25zdDsKLSNpZiBFTkFCTEUo
V0VCR0wyKQotICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIGdldFdlYkdMVmVydGV4QXJyYXlP
YmplY3QoKSBjb25zdDsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIFR5cGUgbV90eXBlOwotICAg
IGJvb2wgbV9ib29sOwotICAgIFZlY3Rvcjxib29sPiBtX2Jvb2xBcnJheTsKLSAgICBmbG9hdCBt
X2Zsb2F0OwotICAgIGludCBtX2ludDsKLSAgICBTdHJpbmcgbV9zdHJpbmc7Ci0gICAgdW5zaWdu
ZWQgaW50IG1fdW5zaWduZWRJbnQ7Ci0gICAgbG9uZyBsb25nIG1faW50NjQ7Ci0gICAgUmVmUHRy
PFdlYkdMQnVmZmVyPiBtX3dlYmdsQnVmZmVyOwotICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IG1f
d2ViZ2xGbG9hdEFycmF5OwotICAgIFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiBtX3dlYmdsRnJh
bWVidWZmZXI7Ci0gICAgUmVmUHRyPEludDMyQXJyYXk+IG1fd2ViZ2xJbnRBcnJheTsKLSAgICAv
LyBGSVhNRTogaW1wbGVtZW50IFdlYkdMT2JqZWN0QXJyYXkKLSAgICAvLyBSZWZQdHI8V2ViR0xP
YmplY3RBcnJheT4gbV93ZWJnbE9iamVjdEFycmF5OwotICAgIFJlZlB0cjxXZWJHTFByb2dyYW0+
IG1fd2ViZ2xQcm9ncmFtOwotICAgIFJlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4gbV93ZWJnbFJl
bmRlcmJ1ZmZlcjsKLSAgICBSZWZQdHI8V2ViR0xUZXh0dXJlPiBtX3dlYmdsVGV4dHVyZTsKLSAg
ICBSZWZQdHI8VWludDhBcnJheT4gbV93ZWJnbFVuc2lnbmVkQnl0ZUFycmF5OwotICAgIFJlZlB0
cjxVaW50MzJBcnJheT4gbV93ZWJnbFVuc2lnbmVkSW50QXJyYXk7Ci0gICAgUmVmUHRyPFdlYkdM
VmVydGV4QXJyYXlPYmplY3RPRVM+IG1fd2ViZ2xWZXJ0ZXhBcnJheU9iamVjdE9FUzsKLSNpZiBF
TkFCTEUoV0VCR0wyKQotICAgIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBtX3dlYmds
VmVydGV4QXJyYXlPYmplY3Q7Ci0jZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuY3BwCmluZGV4IGIwNmQ2YzljODZhMzE2YzIwMTk5MzVjZTg0MTM0ODA5ZTMzNDE2YWYuLjc4
NGFiYjQ0NjNmODBlYmFhNjYzNjQ0YWYxODYxZDk0MDQ2NTQ5OGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjQs
OSArMjQsOSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTFJl
bmRlcmluZ0NvbnRleHQuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKLSNpbmNsdWRlICJXZWJHTFJl
bmRlcmluZ0NvbnRleHQuaCIKIAogI2luY2x1ZGUgIkFOR0xFSW5zdGFuY2VkQXJyYXlzLmgiCiAj
aW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKQEAgLTcwLDExOSArNzAsMTIxIEBAIFdlYkdMUmVuZGVy
aW5nQ29udGV4dDo6V2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBwYXNz
ZWRDYW52YXMsIEdyCiB7CiB9CiAKLVdlYkdMUmVuZGVyaW5nQ29udGV4dDo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFBhc3NSZWZQdHI8R3Jh
cGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsCi0gICAgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
IGF0dHJpYnV0ZXMpIDogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShwYXNzZWRDYW52YXMsIGNv
bnRleHQsIGF0dHJpYnV0ZXMpCitXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OldlYkdMUmVuZGVyaW5n
Q29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLCBSZWY8R3JhcGhpY3NDb250
ZXh0M0Q+JiYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMp
CisgICAgOiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKHBhc3NlZENhbnZhcywgV1RGTW92ZShj
b250ZXh0KSwgYXR0cmlidXRlcykKIHsKICAgICBpbml0aWFsaXplVmVydGV4QXJyYXlPYmplY3Rz
KCk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplVmVydGV4QXJy
YXlPYmplY3RzKCkKIHsKLSAgICBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCA9IFdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVM6OmNyZWF0ZSgqdGhpcywgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9F
Uzo6VkFPVHlwZURlZmF1bHQpOwotICAgIGFkZENvbnRleHRPYmplY3QobV9kZWZhdWx0VmVydGV4
QXJyYXlPYmplY3QuZ2V0KCkpOworICAgIG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0ID0gV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKCp0aGlzLCBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTOjpUeXBlOjpEZWZhdWx0KTsKKyAgICBhZGRDb250ZXh0T2JqZWN0KCptX2RlZmF1bHRW
ZXJ0ZXhBcnJheU9iamVjdCk7CiAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0ID0gbV9kZWZh
dWx0VmVydGV4QXJyYXlPYmplY3Q7CiAgICAgaWYgKCFpc0dMRVMyQ29tcGxpYW50KCkpCiAgICAg
ICAgIGluaXRWZXJ0ZXhBdHRyaWIwKCk7CiB9CiAKK3N0YXRpYyBib29sIGVuYWJsZVN1cHBvcnRl
ZEV4dGVuc2lvbihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBjb25zdCBjaGFy
KiBsaXRlcmFsKQoreworICAgIEFTU0VSVChjb250ZXh0LmdyYXBoaWNzQ29udGV4dDNEKCkpOwor
ICAgIGF1dG8mIGV4dGVuc2lvbnMgPSBjb250ZXh0LmdyYXBoaWNzQ29udGV4dDNEKCktPmdldEV4
dGVuc2lvbnMoKTsKKyAgICBpZiAoIWV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsg
bGl0ZXJhbCB9KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGV4dGVuc2lvbnMuZW5zdXJl
RW5hYmxlZChBU0NJSUxpdGVyYWwgeyBsaXRlcmFsIH0pOworICAgIHJldHVybiB0cnVlOworfQor
CiBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29u
c3QgU3RyaW5nJiBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIAotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlD
YXNlKG5hbWUsICJFWFRfYmxlbmRfbWlubWF4IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9ibGVuZF9taW5tYXgiKSkgeworICAgIGlmIChl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfYmxlbmRfbWlubWF4IikpIHsKICAgICAg
ICAgaWYgKCFtX2V4dEJsZW5kTWluTWF4KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4
dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9FWFRfYmxlbmRfbWlubWF4Iik7Ci0gICAgICAg
ICAgICBtX2V4dEJsZW5kTWluTWF4ID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRCbGVuZE1pbk1heD4o
KnRoaXMpOworICAgICAgICAgICAgbV9leHRCbGVuZE1pbk1heCA9IGVuYWJsZVN1cHBvcnRlZEV4
dGVuc2lvbigqdGhpcywgIkdMX0VYVF9ibGVuZF9taW5tYXgiKQorICAgICAgICAgICAgICAgID8g
c3RkOjptYWtlX3VuaXF1ZTxFWFRCbGVuZE1pbk1heD4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAg
ICAgfQogICAgICAgICByZXR1cm4gbV9leHRCbGVuZE1pbk1heC5nZXQoKTsKICAgICB9Ci0gICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9zUkdCIikKLSAgICAgICAgJiYg
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9zUkdCIikpIHsKKyAg
ICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX3NSR0IiKSkgewogICAgICAg
ICBpZiAoIW1fZXh0c1JHQikgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25z
KCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3NSR0IiKTsKLSAgICAgICAgICAgIG1fZXh0c1JHQiA9
IHN0ZDo6bWFrZV91bmlxdWU8RVhUc1JHQj4oKnRoaXMpOworICAgICAgICAgICAgbV9leHRzUkdC
ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCp0aGlzLCAiR0xfRVhUX3NSR0IiKQorICAgICAg
ICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRzUkdCPigqdGhpcykgOiBudWxscHRyOwog
ICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dHNSR0IuZ2V0KCk7CiAgICAgfQotICAgIGlm
IChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfZnJhZ19kZXB0aCIpCi0gICAgICAg
ICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfZnJhZ19kZXB0
aCIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9mcmFnX2Rl
cHRoIikpIHsKICAgICAgICAgaWYgKCFtX2V4dEZyYWdEZXB0aCkgewotICAgICAgICAgICAgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX2ZyYWdfZGVwdGgi
KTsKLSAgICAgICAgICAgIG1fZXh0RnJhZ0RlcHRoID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRGcmFn
RGVwdGg+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fZXh0RnJhZ0RlcHRoID0gZW5hYmxlU3VwcG9y
dGVkRXh0ZW5zaW9uKCp0aGlzLCAiR0xfRVhUX2ZyYWdfZGVwdGgiKQorICAgICAgICAgICAgICAg
ID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRGcmFnRGVwdGg+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAg
ICAgIH0KICAgICAgICAgcmV0dXJuIG1fZXh0RnJhZ0RlcHRoLmdldCgpOwogICAgIH0KLSAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIp
Ci0gICAgICAgICYmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhU
X3NoYWRlcl90ZXh0dXJlX2xvZCIpIHx8IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBv
cnRzKCJHTF9BUkJfc2hhZGVyX3RleHR1cmVfbG9kIikpKSB7CisgICAgaWYgKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKSkgewogICAgICAgICBp
ZiAoIW1fZXh0U2hhZGVyVGV4dHVyZUxPRCkgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpOwot
ICAgICAgICAgICAgbV9leHRTaGFkZXJUZXh0dXJlTE9EID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRT
aGFkZXJUZXh0dXJlTE9EPigqdGhpcyk7CisgICAgICAgICAgICBpZiAoIShtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX3NoYWRlcl90ZXh0
dXJlX2xvZCIgfSkgfHwgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlM
aXRlcmFsIHsgIkdMX0FSQl9zaGFkZXJfdGV4dHVyZV9sb2QiIH0pKSkKKyAgICAgICAgICAgICAg
ICBtX2V4dFNoYWRlclRleHR1cmVMT0QgPSBudWxscHRyOworICAgICAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZChB
U0NJSUxpdGVyYWwgeyAiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIgfSk7CisgICAgICAgICAg
ICAgICAgbV9leHRTaGFkZXJUZXh0dXJlTE9EID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRTaGFkZXJU
ZXh0dXJlTE9EPigqdGhpcyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIG1fZXh0U2hhZGVyVGV4dHVyZUxPRC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSB8
fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVy
X2FuaXNvdHJvcGljIikpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1
cHBvcnRzKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkgeworICAgIGlmIChl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9w
aWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfRVhUX3RleHR1cmVf
ZmlsdGVyX2FuaXNvdHJvcGljIikpIHsKICAgICAgICAgaWYgKCFtX2V4dFRleHR1cmVGaWx0ZXJB
bmlzb3Ryb3BpYykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5z
dXJlRW5hYmxlZCgiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7Ci0gICAgICAg
ICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IHN0ZDo6bWFrZV91bmlxdWU8RVhU
VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcyk7CisgICAgICAgICAgICBtX2V4dFRleHR1
cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigqdGhpcywgIkdM
X0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpCisgICAgICAgICAgICAgICAgPyBzdGQ6
Om1ha2VfdW5pcXVlPEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYz4oKnRoaXMpIDogbnVsbHB0
cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9w
aWMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJP
RVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVu
c2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIikpIHsKKyAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVz
IikpIHsKICAgICAgICAgaWYgKCFtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMpIHsKLSAgICAgICAg
ICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU19zdGFu
ZGFyZF9kZXJpdmF0aXZlcyIpOwotICAgICAgICAgICAgbV9vZXNTdGFuZGFyZERlcml2YXRpdmVz
ID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNTdGFuZGFyZERlcml2YXRpdmVzPigqdGhpcyk7CisgICAg
ICAgICAgICBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNp
b24oKnRoaXMsICJHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKQorICAgICAgICAgICAgICAg
ID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNTdGFuZGFyZERlcml2YXRpdmVzPigqdGhpcykgOiBudWxs
cHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMu
Z2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNf
dGV4dHVyZV9mbG9hdCIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1
cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0IikpIHsKICAgICAgICAgaWYgKCFtX29l
c1RleHR1cmVGbG9hdCkgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
ZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVfZmxvYXQiKTsKLSAgICAgICAgICAgIG1fb2Vz
VGV4dHVyZUZsb2F0ID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXQ+KCp0aGlzKTsK
KyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9u
KCp0aGlzLCAiR0xfT0VTX3RleHR1cmVfZmxvYXQiKQorICAgICAgICAgICAgICAgID8gc3RkOjpt
YWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXQ+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUZsb2F0LmdldCgpOwogICAgIH0KLSAgICBpZiAo
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikK
LSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190
ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
bmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7CiAgICAgICAgIGlmICghbV9vZXNU
ZXh0dXJlRmxvYXRMaW5lYXIpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpOwotICAgICAg
ICAgICAgbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1
cmVGbG9hdExpbmVhcj4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXRMaW5l
YXIgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oKnRoaXMsICJHTF9PRVNfdGV4dHVyZV9mbG9h
dF9saW5lYXIiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJl
RmxvYXRMaW5lYXI+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
IG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25v
cmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpCi0gICAgICAgICYm
IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxm
X2Zsb2F0IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3Rl
eHR1cmVfaGFsZl9mbG9hdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlSGFsZkZsb2F0
KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVk
KCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0Iik7Ci0gICAgICAgICAgICBtX29lc1RleHR1cmVI
YWxmRmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+KCp0aGlzKTsK
KyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdCA9IGVuYWJsZVN1cHBvcnRlZEV4dGVu
c2lvbigqdGhpcywgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiKQorICAgICAgICAgICAgICAg
ID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZsb2F0PigqdGhpcykgOiBudWxscHRy
OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVIYWxmRmxvYXQuZ2V0KCk7
CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVy
ZV9oYWxmX2Zsb2F0X2xpbmVhciIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpKSB7CisgICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRf
bGluZWFyIikpIHsKICAgICAgICAgaWYgKCFtX29lc1RleHR1cmVIYWxmRmxvYXRMaW5lYXIpIHsK
LSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdM
X09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik7Ci0gICAgICAgICAgICBtX29lc1RleHR1
cmVIYWxmRmxvYXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXRM
aW5lYXI+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhciA9
IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigqdGhpcywgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxv
YXRfbGluZWFyIikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVy
ZUhhbGZGbG9hdExpbmVhcj4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyLmdldCgpOwogICAgIH0KLSAgICBpZiAo
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKQot
ICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3Zl
cnRleF9hcnJheV9vYmplY3QiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5h
bWUsICJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNWZXJ0
ZXhBcnJheU9iamVjdCkgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
ZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTsKLSAgICAgICAgICAg
IG1fb2VzVmVydGV4QXJyYXlPYmplY3QgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1ZlcnRleEFycmF5
T2JqZWN0PigqdGhpcyk7CisgICAgICAgICAgICBtX29lc1ZlcnRleEFycmF5T2JqZWN0ID0gZW5h
YmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCp0aGlzLCAiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3Qi
KQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNWZXJ0ZXhBcnJheU9iamVj
dD4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNWZXJ0
ZXhBcnJheU9iamVjdC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UobmFtZSwgIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKQotICAgICAgICAmJiBtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpKSB7
CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU19lbGVtZW50X2luZGV4
X3VpbnQiKSkgewogICAgICAgICBpZiAoIW1fb2VzRWxlbWVudEluZGV4VWludCkgewotICAgICAg
ICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX2Vs
ZW1lbnRfaW5kZXhfdWludCIpOwotICAgICAgICAgICAgbV9vZXNFbGVtZW50SW5kZXhVaW50ID0g
c3RkOjptYWtlX3VuaXF1ZTxPRVNFbGVtZW50SW5kZXhVaW50PigqdGhpcyk7CisgICAgICAgICAg
ICBtX29lc0VsZW1lbnRJbmRleFVpbnQgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oKnRoaXMs
ICJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50IikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFr
ZV91bmlxdWU8T0VTRWxlbWVudEluZGV4VWludD4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAg
fQogICAgICAgICByZXR1cm4gbV9vZXNFbGVtZW50SW5kZXhVaW50LmdldCgpOwogICAgIH0KQEAg
LTE5MSw0MSArMTkzLDUzIEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgICAgICBtX3dlYmdsTG9z
ZUNvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMTG9zZUNvbnRleHQ+KCp0aGlzKTsKICAg
ICAgICAgcmV0dXJuIG1fd2ViZ2xMb3NlQ29udGV4dC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKChl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0
dXJlX2F0YyIpKQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDOjpzdXBwb3J0
ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDKQot
ICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDID0gc3RkOjptYWtlX3VuaXF1
ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIikp
IHsKKyAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMpIHsKKyAgICAgICAg
ICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVB
VEM6OnN1cHBvcnRlZCgqdGhpcykKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQz4oKnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAgfQog
ICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDLmdldCgpOwogICAgIH0K
LSAgICBpZiAoKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21w
cmVzc2VkX3RleHR1cmVfcHZydGMiKSkKLSAgICAgICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbENvbXByZXNz
ZWRUZXh0dXJlUFZSVEMpCi0gICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJU
QyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDPigqdGhpcyk7
CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21w
cmVzc2VkX3RleHR1cmVfcHZydGMiKSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2Vk
VGV4dHVyZVBWUlRDKSB7CisgICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJU
QyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0aGlzKQorICAgICAg
ICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM+
KCp0aGlzKSA6IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xDb21w
cmVzc2VkVGV4dHVyZVBWUlRDLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKQotICAgICAgICAm
JiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAg
ICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMpCi0gICAgICAgICAgICBtX3dlYmds
Q29tcHJlc3NlZFRleHR1cmVTM1RDID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRU
ZXh0dXJlUzNUQz4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUs
ICJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlUzNUQykgeworICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRU
ZXh0dXJlUzNUQyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMp
CisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVTM1RDPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3dl
YmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25v
cmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVwdGhfdGV4dHVyZSIpCi0gICAgICAgICYmIFdl
YkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoKmdyYXBoaWNzQ29udGV4dDNEKCkpKSB7Ci0gICAg
ICAgIGlmICghbV93ZWJnbERlcHRoVGV4dHVyZSkKLSAgICAgICAgICAgIG1fd2ViZ2xEZXB0aFRl
eHR1cmUgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVwdGhUZXh0dXJlPigqdGhpcyk7CisgICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlcHRoX3RleHR1cmUiKSkg
eworICAgICAgICBpZiAoIW1fd2ViZ2xEZXB0aFRleHR1cmUpIHsKKyAgICAgICAgICAgIG1fd2Vi
Z2xEZXB0aFRleHR1cmUgPSBXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCptX2NvbnRleHQp
CisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVwdGhUZXh0dXJlPigq
dGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3dlYmdsRGVwdGhU
ZXh0dXJlLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1l
LCAiV0VCR0xfZHJhd19idWZmZXJzIikgJiYgc3VwcG9ydHNEcmF3QnVmZmVycygpKSB7CisgICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RyYXdfYnVmZmVycyIpKSB7
CiAgICAgICAgIGlmICghbV93ZWJnbERyYXdCdWZmZXJzKSB7Ci0gICAgICAgICAgICBtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9FWFRfZHJhd19idWZmZXJzIik7
Ci0gICAgICAgICAgICBtX3dlYmdsRHJhd0J1ZmZlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdM
RHJhd0J1ZmZlcnM+KCp0aGlzKTsKKyAgICAgICAgICAgIGlmICghc3VwcG9ydHNEcmF3QnVmZmVy
cygpKQorICAgICAgICAgICAgICAgIG1fd2ViZ2xEcmF3QnVmZmVycyA9IG51bGxwdHI7CisgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfZHJhd19idWZmZXJzIiB9KTsK
KyAgICAgICAgICAgICAgICBtX3dlYmdsRHJhd0J1ZmZlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdl
YkdMRHJhd0J1ZmZlcnM+KCp0aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gbV93ZWJnbERyYXdCdWZmZXJzLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpICYmIEFOR0xF
SW5zdGFuY2VkQXJyYXlzOjpzdXBwb3J0ZWQoKnRoaXMpKSB7CisgICAgaWYgKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSkgewogICAgICAgICBp
ZiAoIW1fYW5nbGVJbnN0YW5jZWRBcnJheXMpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0
RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX0FOR0xFX2luc3RhbmNlZF9hcnJheXMiKTsK
LSAgICAgICAgICAgIG1fYW5nbGVJbnN0YW5jZWRBcnJheXMgPSBzdGQ6Om1ha2VfdW5pcXVlPEFO
R0xFSW5zdGFuY2VkQXJyYXlzPigqdGhpcyk7CisgICAgICAgICAgICBpZiAoIUFOR0xFSW5zdGFu
Y2VkQXJyYXlzOjpzdXBwb3J0ZWQoKnRoaXMpKQorICAgICAgICAgICAgICAgIG1fYW5nbGVJbnN0
YW5jZWRBcnJheXMgPSBudWxscHRyOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAg
ICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZChBU0NJSUxpdGVyYWwg
eyAiR0xfQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIgfSk7CisgICAgICAgICAgICAgICAgbV9hbmds
ZUluc3RhbmNlZEFycmF5cyA9IHN0ZDo6bWFrZV91bmlxdWU8QU5HTEVJbnN0YW5jZWRBcnJheXM+
KCp0aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9hbmds
ZUluc3RhbmNlZEFycmF5cy5nZXQoKTsKICAgICB9CkBAIC0yMzQsMTAgKzI0OCwxMSBAQCBXZWJH
TEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3Ry
aW5nJiBuYW1lKQogICAgICAgICAgICAgbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvID0gc3RkOjpt
YWtlX3VuaXF1ZTxXZWJHTERlYnVnUmVuZGVyZXJJbmZvPigqdGhpcyk7CiAgICAgICAgIHJldHVy
biBtX3dlYmdsRGVidWdSZW5kZXJlckluZm8uZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19zaGFkZXJzIikKLSAgICAgICAgJiYg
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRf
c2hhZGVyX3NvdXJjZSIpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERlYnVnU2hhZGVycykKLSAg
ICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVi
dWdTaGFkZXJzPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwg
IldFQkdMX2RlYnVnX3NoYWRlcnMiKSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1NoYWRl
cnMpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBtX2NvbnRleHQtPmdldEV4
dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfQU5HTEVfdHJhbnNsYXRlZF9z
aGFkZXJfc291cmNlIiB9KQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxXZWJH
TERlYnVnU2hhZGVycz4oKnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAgfQogICAgICAgICByZXR1
cm4gbV93ZWJnbERlYnVnU2hhZGVycy5nZXQoKTsKICAgICB9CiAKQEAgLTI1MSwxMDkgKzI2Niwx
MDkgQEAgVmVjdG9yPFN0cmluZz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRF
eHRlbnNpb25zKCkKICAgICBpZiAobV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKQogICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIAotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cygiR0xfRVhUX2JsZW5kX21pbm1heCIpKQotICAgICAgICByZXN1bHQuYXBwZW5k
KCJFWFRfYmxlbmRfbWlubWF4Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LnN1cHBvcnRzKCJHTF9FWFRfc1JHQiIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJFWFRfc1JH
QiIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhU
X2ZyYWdfZGVwdGgiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiRVhUX2ZyYWdfZGVwdGgiKTsK
LSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0
dXJlX2Zsb2F0IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2Zsb2F0Iik7
Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4
dHVyZV9mbG9hdF9saW5lYXIiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVf
ZmxvYXRfbGluZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBv
cnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQo
Ik9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikpCi0gICAg
ICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik7Ci0gICAg
aWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfc3RhbmRhcmRf
ZGVyaXZhdGl2ZXMiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3N0YW5kYXJkX2Rlcml2
YXRpdmVzIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJH
TF9FWFRfc2hhZGVyX3RleHR1cmVfbG9kIikgfHwgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
c3VwcG9ydHMoIkdMX0FSQl9zaGFkZXJfdGV4dHVyZV9sb2QiKSkKLSAgICAgICAgcmVzdWx0LmFw
cGVuZCgiRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4
dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikp
Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIp
OwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3Zl
cnRleF9hcnJheV9vYmplY3QiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3ZlcnRleF9h
cnJheV9vYmplY3QiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoIkdMX09FU19lbGVtZW50X2luZGV4X3VpbnQiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgi
T0VTX2VsZW1lbnRfaW5kZXhfdWludCIpOwotICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2xvc2Vf
Y29udGV4dCIpOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhB
U0NJSUxpdGVyYWwgeyAiR0xfRVhUX2JsZW5kX21pbm1heCIgfSkpCisgICAgICAgIHJlc3VsdC5h
cHBlbmQoQVNDSUlMaXRlcmFsIHsgIkVYVF9ibGVuZF9taW5tYXgiIH0pOworICAgIGlmIChtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX3NS
R0IiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJFWFRfc1JHQiIg
fSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0
ZXJhbCB7ICJHTF9FWFRfZnJhZ19kZXB0aCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVND
SUlMaXRlcmFsIHsgIkVYVF9mcmFnX2RlcHRoIiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2Zsb2F0
IiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVf
ZmxvYXQiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhB
U0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9KSkKKyAgICAgICAg
cmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9
KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRl
cmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pKQorICAgICAgICByZXN1bHQuYXBw
ZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiB9KTsKKyAgICBpZiAo
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09F
U190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChB
U0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiIH0pOworICAgIGlm
IChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xf
T0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJ
SUxpdGVyYWwgeyAiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIiB9KTsKKyAgICBpZiAobV9jb250
ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF9zaGFk
ZXJfdGV4dHVyZV9sb2QiIH0pIHx8IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRz
KEFTQ0lJTGl0ZXJhbCB7ICJHTF9BUkJfc2hhZGVyX3RleHR1cmVfbG9kIiB9KSkKKyAgICAgICAg
cmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIgfSk7
CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJh
bCB7ICJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pKQorICAgICAgICByZXN1
bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMi
IH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxp
dGVyYWwgeyAiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiIH0pKQorICAgICAgICByZXN1bHQu
YXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdmVydGV4X2FycmF5X29iamVjdCIgfSk7CisgICAg
aWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJH
TF9PRVNfZWxlbWVudF9pbmRleF91aW50IiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJ
SUxpdGVyYWwgeyAiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIgfSk7CisgICAgcmVzdWx0LmFwcGVu
ZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfbG9zZV9jb250ZXh0IiB9KTsKICAgICBpZiAoV2ViR0xD
b21wcmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkKLSAgICAgICAgcmVzdWx0LmFw
cGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKTsKKyAgICAgICAgcmVz
dWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVy
ZV9hdGMiIH0pOwogICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OnN1cHBvcnRl
ZCgqdGhpcykpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9jb21wcmVzc2Vk
X3RleHR1cmVfcHZydGMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAi
V0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIgfSk7CiAgICAgaWYgKFdlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpKQogICAgICAgICByZXN1bHQu
YXBwZW5kKCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpOwotICAgIGlmIChXZWJHTERl
cHRoVGV4dHVyZTo6c3VwcG9ydGVkKCpncmFwaGljc0NvbnRleHQzRCgpKSkKLSAgICAgICAgcmVz
dWx0LmFwcGVuZCgiV0VCR0xfZGVwdGhfdGV4dHVyZSIpOworICAgIGlmIChXZWJHTERlcHRoVGV4
dHVyZTo6c3VwcG9ydGVkKCptX2NvbnRleHQpKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJ
TGl0ZXJhbCB7ICJXRUJHTF9kZXB0aF90ZXh0dXJlIiB9KTsKICAgICBpZiAoc3VwcG9ydHNEcmF3
QnVmZmVycygpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kcmF3X2J1ZmZlcnMiKTsK
KyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfZHJhd19idWZmZXJz
IiB9KTsKICAgICBpZiAoQU5HTEVJbnN0YW5jZWRBcnJheXM6OnN1cHBvcnRlZCgqdGhpcykpCi0g
ICAgICAgIHJlc3VsdC5hcHBlbmQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKTsKLSAgICBpZiAo
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRf
c2hhZGVyX3NvdXJjZSIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19zaGFk
ZXJzIik7Ci0gICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpOwor
ICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJBTkdMRV9pbnN0YW5jZWRfYXJy
YXlzIiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVND
SUlMaXRlcmFsIHsgIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIgfSkpCisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RlYnVnX3NoYWRlcnMiIH0p
OworICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RlYnVnX3JlbmRlcmVy
X2luZm8iIH0pOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFu
eSBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
cihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKQog
ewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlRnJhbWVidWZm
ZXJGdW5jUGFyYW1ldGVycygiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgdGFy
Z2V0LCBhdHRhY2htZW50KSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBpZiAoIW1fZnJhbWVidWZmZXJCaW5kaW5nIHx8
ICFtX2ZyYW1lYnVmZmVyQmluZGluZy0+b2JqZWN0KCkpIHsKICAgICAgICAgc3ludGhlc2l6ZUdM
RXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAiZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgIm5vIGZyYW1lYnVmZmVyIGJvdW5kIik7Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQog
ICAgIAotICAgIFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QgPSBtX2ZyYW1lYnVmZmVyQmluZGlu
Zy0+Z2V0QXR0YWNobWVudE9iamVjdChhdHRhY2htZW50KTsKKyAgICBhdXRvKiBvYmplY3QgPSBt
X2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVudE9iamVjdChhdHRhY2htZW50KTsKICAg
ICBpZiAoIW9iamVjdCkgewogICAgICAgICBpZiAocG5hbWUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6
OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpCi0gICAgICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKTsKKyAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpOwogICAgICAg
ICAvLyBPcGVuR0wgRVMgMi4wIHNwZWNpZmllcyBJTlZBTElEX0VOVU0gaW4gdGhpcyBjYXNlLCB3
aGlsZSBkZXNrdG9wIEdMCiAgICAgICAgIC8vIHNwZWNpZmllcyBJTlZBTElEX09QRVJBVElPTi4K
ICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5V
TSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRl
ciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIEFTU0VSVChvYmplY3QtPmlzVGV4dHVyZSgpIHx8
IG9iamVjdC0+aXNSZW5kZXJidWZmZXIoKSk7CiAgICAgaWYgKG9iamVjdC0+aXNUZXh0dXJlKCkp
IHsKICAgICAgICAgc3dpdGNoIChwbmFtZSkgewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFOgotICAgICAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRSk7CisgICAgICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJF
KTsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVO
VF9PQkpFQ1RfTkFNRToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0
cjxXZWJHTFRleHR1cmU+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJlKj4ob2JqZWN0KSkp
OworICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIocmVpbnRlcnByZXRfY2FzdDxXZWJHTFRl
eHR1cmUmPigqb2JqZWN0KSk7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MRVZFTDoKICAgICAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NVQkVfTUFQX0ZBQ0U6CiAg
ICAgICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VO
Q09ESU5HX0VYVDogewogICAgICAgICAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAgICAgICAgICAg
ICBtX2NvbnRleHQtPmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2KHRhcmdldCwg
YXR0YWNobWVudCwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgfQogICAgICAg
ICBkZWZhdWx0OgogICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJp
bnZhbGlkIHBhcmFtZXRlciBuYW1lIGZvciB0ZXh0dXJlIGF0dGFjaG1lbnQiKTsKLSAgICAgICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgICAgICB9CiAgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG9iamVjdC0+aXNSZW5kZXJi
dWZmZXIoKSk7CiAgICAgICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRToKLSAgICAgICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUik7
CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4
dDNEOjpSRU5ERVJCVUZGRVIpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPihyZWludGVycHJldF9jYXN0PFdl
YkdMUmVuZGVyYnVmZmVyKj4ob2JqZWN0KSkpOworICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWZQ
dHIocmVpbnRlcnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZlciY+KCpvYmplY3QpKTsKICAgICAg
ICAgY2FzZSBFeHRlbnNpb25zM0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJ
TkdfRVhUOiB7CiAgICAgICAgICAgICBpZiAoIW1fZXh0c1JHQikgewogICAgICAgICAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBm
b3IgcmVuZGVyYnVmZmVyIGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBXZWJHTFJlbmRlcmJ1ZmZlciogcmVuZGVyQnVmZmVyID0gcmVpbnRl
cnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZlcio+KG9iamVjdCk7CiAgICAgICAgICAgICBHQzNE
ZW51bSByZW5kZXJCdWZmZXJGb3JtYXQgPSByZW5kZXJCdWZmZXItPmdldEludGVybmFsRm9ybWF0
KCk7CiAgICAgICAgICAgICBBU1NFUlQocmVuZGVyQnVmZmVyRm9ybWF0ICE9IEV4dGVuc2lvbnMz
RDo6U1JHQl9FWFQgJiYgcmVuZGVyQnVmZmVyRm9ybWF0ICE9IEV4dGVuc2lvbnMzRDo6U1JHQl9B
TFBIQV9FWFQpOwogICAgICAgICAgICAgaWYgKHJlbmRlckJ1ZmZlckZvcm1hdCA9PSBFeHRlbnNp
b25zM0Q6OlNSR0I4X0FMUEhBOF9FWFQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhFeHRlbnNpb25zM0Q6OlNSR0JfRVhUKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihFeHRlbnNpb25zM0Q6OlNSR0JfRVhUKTsKKyAgICAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVB
Uik7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBmb3IgcmVuZGVyYnVm
ZmVyIGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMzY5LDE2
ICszODQsMTUgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlRnJhbWVidWZm
ZXJGdW5jUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdGkKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5UOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNU
RU5DSUxfQVRUQUNITUVOVDoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVO
Q0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICBkZWZhdWx0OgogICAgICAgICBpZiAobV93ZWJnbERyYXdCdWZmZXJzCi0gICAgICAgICAgICAm
JiBhdHRhY2htZW50ID4gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwCisgICAg
ICAgICAgICAmJiBhdHRhY2htZW50ID49IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hN
RU5UMAogICAgICAgICAgICAgJiYgYXR0YWNobWVudCA8IHN0YXRpY19jYXN0PEdDM0RlbnVtPihH
cmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAgKyBnZXRNYXhDb2xvckF0dGFjaG1l
bnRzKCkpKQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwg
ZnVuY3Rpb25OYW1lLCAiaW52YWxpZCBhdHRhY2htZW50Iik7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9Ci0gICAgcmV0dXJuIHRydWU7CiB9CiAgICAgCiB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6cmVuZGVyYnVmZmVyU3RvcmFnZShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGlu
dGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpCkBAIC00NTUs
NyArNDY5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNsZWFyKEdDM0RiaXRmaWVs
ZCBtYXNrKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9
ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKLSAgICBpZiAobV9mcmFtZWJ1ZmZlckJpbmRpbmcg
JiYgIW1fZnJhbWVidWZmZXJCaW5kaW5nLT5vbkFjY2VzcyhncmFwaGljc0NvbnRleHQzRCgpLCAm
cmVhc29uKSkgeworICAgIGlmIChtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAhbV9mcmFtZWJ1ZmZl
ckJpbmRpbmctPm9uQWNjZXNzKG1fY29udGV4dC5nZXQoKSwgJnJlYXNvbikpIHsKICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OLCAiY2xlYXIiLCByZWFzb24pOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
NDY0LDEwICs0NzgsMTAgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNsZWFyKEdDM0Ri
aXRmaWVsZCBtYXNrKQogICAgIG1hcmtDb250ZXh0Q2hhbmdlZCgpOwogfQogCi1XZWJHTEdldElu
Zm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitX
ZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFt
ZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNvbnN0IGludCBp
bnRaZXJvID0gMDsKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6QUNUSVZFX1RFWFRVUkU6CkBAIC00NzksNyArNDkzLDcgQEAgV2ViR0xHZXRJbmZvIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBX0JJVFM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQ
YXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZF
Ul9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xC
dWZmZXI+KG1fYm91bmRBcnJheUJ1ZmZlcikpOworICAgICAgICByZXR1cm4gbV9ib3VuZEFycmF5
QnVmZmVyOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkJMRU5EOgogICAgICAgICByZXR1
cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6QkxFTkRfQ09MT1I6CkBAIC01MDMsMTYgKzUxNywxNiBAQCBXZWJHTEdldEluZm8gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6Q09MT1JfV1JJVEVNQVNLOgogICAgICAgICByZXR1cm4gZ2V0Qm9v
bGVhbkFycmF5UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpD
T01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQ
YXNzUmVmUHRyPFVpbnQzMkFycmF5PihVaW50MzJBcnJheTo6Y3JlYXRlKG1fY29tcHJlc3NlZFRl
eHR1cmVGb3JtYXRzLmRhdGEoKSwgbV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMuc2l6ZSgpKSkp
OworICAgICAgICByZXR1cm4gVWludDMyQXJyYXk6OmNyZWF0ZShtX2NvbXByZXNzZWRUZXh0dXJl
Rm9ybWF0cy5kYXRhKCksIG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLnNpemUoKSk7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VMTF9GQUNFOgogICAgICAgICByZXR1cm4gZ2V0Qm9v
bGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VMTF9G
QUNFX01PREU6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VSUkVOVF9QUk9HUkFNOgotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xQcm9ncmFtPihtX2N1cnJlbnRQcm9n
cmFtKSk7CisgICAgICAgIHJldHVybiBtX2N1cnJlbnRQcm9ncmFtOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRFUFRIX0JJVFM6CiAgICAgICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRp
bmcgJiYgIW1fYXR0cmlidXRlcy5kZXB0aCkKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oaW50WmVybyk7CisgICAgICAgICAgICByZXR1cm4gaW50WmVybzsKICAgICAgICAgcmV0dXJu
IGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQ
VEhfQ0xFQVJfVkFMVUU6CiAgICAgICAgIHJldHVybiBnZXRGbG9hdFBhcmFtZXRlcihwbmFtZSk7
CkBAIC01MjcsOSArNTQxLDkgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkRJVEhFUjoKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkc6Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4obV9ib3Vu
ZFZlcnRleEFycmF5T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKSkpOworICAgICAgICBy
ZXR1cm4gbWFrZVJlZlB0cihtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1lbnRBcnJh
eUJ1ZmZlcigpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9CSU5E
SU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xGcmFtZWJ1
ZmZlcj4obV9mcmFtZWJ1ZmZlckJpbmRpbmcpKTsKKyAgICAgICAgcmV0dXJuIG1fZnJhbWVidWZm
ZXJCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZST05UX0ZBQ0U6CiAgICAg
ICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6R0VORVJBVEVfTUlQTUFQX0hJTlQ6CkBAIC01NzcsOSArNTkxLDkgQEAg
V2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVt
IHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFRF9CSVRTOgogICAgICAgICBy
ZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSRU5ERVJCVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNz
UmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPihtX3JlbmRlcmJ1ZmZlckJpbmRpbmcpKTsKKyAgICAg
ICAgcmV0dXJuIG1fcmVuZGVyYnVmZmVyQmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSRU5ERVJFUjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhTdHJpbmcoIldlYktp
dCBXZWJHTCIpKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMQW55KFN0cmluZygiV2ViS2l0IFdlYkdM
IikpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNBTVBMRV9CVUZGRVJTOgogICAgICAg
ICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpTQU1QTEVfQ09WRVJBR0VfSU5WRVJUOgpAQCAtNTkzLDcgKzYwNyw3IEBAIFdlYkdMR2V0
SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTQ0lTU09SX1RFU1Q6CiAgICAgICAgIHJldHVy
biBnZXRCb29sZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpTSEFESU5HX0xBTkdVQUdFX1ZFUlNJT046Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
IldlYkdMIEdMU0wgRVMgMS4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250
ZXh0M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTikgKyAiKSIpOworICAgICAgICByZXR1cm4g
V2ViR0xBbnkoIldlYkdMIEdMU0wgRVMgMS4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3Jh
cGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTikgKyAiKSIpOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQkFDS19GQUlMOgogICAgICAgICByZXR1cm4g
Z2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlNURU5DSUxfQkFDS19GVU5DOgpAQCAtNjEwLDcgKzYyNCw3IEBAIFdlYkdMR2V0SW5mbyBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICAg
ICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JJVFM6CiAgICAgICAgIGlmICghbV9mcmFtZWJ1ZmZlckJp
bmRpbmcgJiYgIW1fYXR0cmlidXRlcy5zdGVuY2lsKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhpbnRaZXJvKTsKKyAgICAgICAgICAgIHJldHVybiBXZWJHTEFueShpbnRaZXJvKTsK
ICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6U1RFTkNJTF9DTEVBUl9WQUxVRToKICAgICAgICAgcmV0dXJuIGdldEludFBh
cmFtZXRlcihwbmFtZSk7CkBAIC02MzMsNjEgKzY0Nyw2MSBAQCBXZWJHTEdldEluZm8gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6U1VCUElYRUxfQklUUzoKICAgICAgICAgcmV0dXJuIGdldEludFBh
cmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5E
SU5HXzJEOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xUZXh0
dXJlPihtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlMkRCaW5kaW5n
KSk7CisgICAgICAgIHJldHVybiBtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50
ZXh0dXJlMkRCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfQklO
RElOR19DVUJFX01BUDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdl
YkdMVGV4dHVyZT4obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4dHVyZUN1
YmVNYXBCaW5kaW5nKSk7CisgICAgICAgIHJldHVybiBtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRl
eHR1cmVVbml0XS50ZXh0dXJlQ3ViZU1hcEJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6VU5QQUNLX0FMSUdOTUVOVDoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihw
bmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0ZMSVBfWV9XRUJHTDoK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3VucGFja0ZsaXBZKTsKKyAgICAgICAgcmV0
dXJuIG1fdW5wYWNrRmxpcFk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX1BS
RU1VTFRJUExZX0FMUEhBX1dFQkdMOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdW5w
YWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgIHJldHVybiBtX3VucGFja1ByZW11bHRpcGx5
QWxwaGE7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0NPTE9SU1BBQ0VfQ09O
VkVSU0lPTl9XRUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3VucGFja0NvbG9y
c3BhY2VDb252ZXJzaW9uKTsKKyAgICAgICAgcmV0dXJuIG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZl
cnNpb247CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVORE9SOgotICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKFN0cmluZygiV2ViS2l0IikpOworICAgICAgICByZXR1cm4gU3RyaW5n
IHsgQVNDSUlMaXRlcmFsIHsgIldlYktpdCIgfSB9OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlZFUlNJT046Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oIldlYkdMIDEuMCAoIiAr
IG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRVJTSU9OKSArICIpIik7
CisgICAgICAgIHJldHVybiAiV2ViR0wgMS4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3Jh
cGhpY3NDb250ZXh0M0Q6OlZFUlNJT04pICsgIikiOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlZJRVdQT1JUOgogICAgICAgICByZXR1cm4gZ2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihw
bmFtZSk7CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkZSQUdNRU5UX1NIQURFUl9ERVJJVkFUSVZF
X0hJTlRfT0VTOiAvLyBPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMKICAgICAgICAgaWYgKG1fb2Vz
U3RhbmRhcmREZXJpdmF0aXZlcykKICAgICAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBh
cmFtZXRlcihFeHRlbnNpb25zM0Q6OkZSQUdNRU5UX1NIQURFUl9ERVJJVkFUSVZFX0hJTlRfT0VT
KTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
RU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBPRVNfc3RhbmRh
cmRfZGVyaXZhdGl2ZXMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJl
ckluZm86OlVOTUFTS0VEX1JFTkRFUkVSX1dFQkdMOgogICAgICAgICBpZiAobV93ZWJnbERlYnVn
UmVuZGVyZXJJbmZvKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2NvbnRleHQt
PmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpKTsKKyAgICAgICAgICAgIHJl
dHVybiBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpOwog
ICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVN
LCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVnX3Jl
bmRlcmVyX2luZm8gbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJlcklu
Zm86OlVOTUFTS0VEX1ZFTkRPUl9XRUJHTDoKICAgICAgICAgaWYgKG1fd2ViZ2xEZWJ1Z1JlbmRl
cmVySW5mbykKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9jb250ZXh0LT5nZXRT
dHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFTkRPUikpOworICAgICAgICAgICAgcmV0dXJuIG1f
Y29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1IpOwogICAgICAgICBz
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFy
YW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2lu
Zm8gbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6VkVSVEVYX0FSUkFZX0JJ
TkRJTkdfT0VTOiAvLyBPRVNfdmVydGV4X2FycmF5X29iamVjdAogICAgICAgICBpZiAobV9vZXNW
ZXJ0ZXhBcnJheU9iamVjdCkgewotICAgICAgICAgICAgaWYgKCFtX2JvdW5kVmVydGV4QXJyYXlP
YmplY3QtPmlzRGVmYXVsdE9iamVjdCgpKQotICAgICAgICAgICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oUGFzc1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPihzdGF0aWNfY2FzdDxX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKj4obV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LmdldCgp
KSkpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICAgICAgaWYg
KG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihzdGF0
aWNfY2FzdDxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTJj4oKm1fYm91bmRWZXJ0ZXhBcnJheU9i
amVjdCkpOwogICAgICAgICB9CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIg
bmFtZSwgT0VTX3ZlcnRleF9hcnJheV9vYmplY3Qgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEV4
dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUOiAvLyBFWFRfdGV4dHVy
ZV9maWx0ZXJfYW5pc290cm9waWMKICAgICAgICAgaWYgKG1fZXh0VGV4dHVyZUZpbHRlckFuaXNv
dHJvcGljKQogICAgICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEV4dGVu
c2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUKTsKICAgICAgICAgc3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRl
ciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9w
aWMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX0NPTE9SX0FUVEFD
SE1FTlRTX0VYVDogLy8gRVhUX2RyYXdfYnVmZmVycyBCRUdJTgogICAgICAgICBpZiAobV93ZWJn
bERyYXdCdWZmZXJzKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhnZXRNYXhDb2xv
ckF0dGFjaG1lbnRzKCkpOworICAgICAgICAgICAgcmV0dXJuIFdlYkdMQW55KGdldE1heENvbG9y
QXR0YWNobWVudHMoKSk7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4
dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFt
ZSwgV0VCR0xfZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBFeHRlbnNpb25z
M0Q6Ok1BWF9EUkFXX0JVRkZFUlNfRVhUOgogICAgICAgICBpZiAobV93ZWJnbERyYXdCdWZmZXJz
KQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhnZXRNYXhEcmF3QnVmZmVycygpKTsK
KyAgICAgICAgICAgIHJldHVybiBXZWJHTEFueShnZXRNYXhEcmF3QnVmZmVycygpKTsKICAgICAg
ICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdl
dFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBXRUJHTF9kcmF3X2J1ZmZlcnMg
bm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAobV93ZWJnbERyYXdCdWZm
ZXJzCiAgICAgICAgICAgICAmJiBwbmFtZSA+PSBFeHRlbnNpb25zM0Q6OkRSQVdfQlVGRkVSMF9F
WFQKQEAgLTY5NywxMCArNzExLDEwIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICAgICAgICAgICAgICB2YWx1ZSA9
IG1fZnJhbWVidWZmZXJCaW5kaW5nLT5nZXREcmF3QnVmZmVyKHBuYW1lKTsKICAgICAgICAgICAg
IGVsc2UgLy8gZW11bGF0ZWQgYmFja2J1ZmZlcgogICAgICAgICAgICAgICAgIHZhbHVlID0gbV9i
YWNrRHJhd0J1ZmZlcjsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOwor
ICAgICAgICAgICAgcmV0dXJuIFdlYkdMQW55KHZhbHVlKTsKICAgICAgICAgfQogICAgICAgICBz
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFy
YW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXgg
MTg3NGZlNWE1YzM4MzExOThmNDNiOTRjMjA5NmI5ZWViZTQzZTQ3MC4uY2UzYWZiZTE4Nzc1MmJm
ODFmNGFiNzYyZDE5OTRlNDdmMTBhMmQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTMyLDE2ICszMiwxNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJs
aWMgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSB7CiBwdWJsaWM6CiAgICAgV2ViR0xSZW5kZXJp
bmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
KTsKLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmLCBQYXNzUmVm
UHRyPEdyYXBoaWNzQ29udGV4dDNEPiwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzKTsKKyAg
ICBXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWY8R3JhcGhpY3ND
b250ZXh0M0Q+JiYsIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyk7CiAKIHByaXZhdGU6CiAg
ICAgYm9vbCBpc1dlYkdMMSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIFdl
YkdMRXh0ZW5zaW9uKiBnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJikgZmluYWw7Ci0gICAgV2Vi
R0xHZXRJbmZvIGdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkgZmluYWw7CisgICAgV2ViR0xB
bnkgZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKICAgICBWZWN0b3I8U3RyaW5n
PiBnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkgZmluYWw7CiAKLSAgICBXZWJHTEdldEluZm8gZ2V0
RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0g
YXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpIGZpbmFsOworICAgIFdlYkdMQW55IGdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFj
aG1lbnQsIEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKICAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3Jh
Z2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdp
ZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSBmaW5hbDsKICAgICBib29sIHZhbGlkYXRlRnJhbWVidWZm
ZXJGdW5jUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDM0RlbnVtIHRhcmdl
dCwgR0MzRGVudW0gYXR0YWNobWVudCkgZmluYWw7CiAgICAgdm9pZCBoaW50KEdDM0RlbnVtIHRh
cmdldCwgR0MzRGVudW0gbW9kZSkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IDI3NzBkYzFi
NmUxZjM4M2VmY2M3NzI1MDMyYWU1MDUyZTc5YjNjZjYuLmI1ZDBlZTc3YmRkZGEwOTQ4YmM4NGEx
ZjAzYzJhNzc5ZjU2NDM1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC0yNCw5ICsyNCw5IEBACiAg
Ki8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKLSNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmgiCiAKICNpbmNsdWRlICJBTkdMRUluc3RhbmNlZEFycmF5cy5oIgogI2luY2x1
ZGUgIkNhY2hlZEltYWdlLmgiCkBAIC00MjAsMTcgKzQyMCwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3Jl
YXRlKEhUTQogICAgICAgICByZXR1cm4gcmVuZGVyaW5nQ29udGV4dDsKICAgICB9CiAKLSAgICBI
b3N0V2luZG93KiBob3N0V2luZG93ID0gZG9jdW1lbnQudmlldygpLT5yb290KCktPmhvc3RXaW5k
b3coKTsKLSAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQoR3JhcGhpY3NDb250
ZXh0M0Q6OmNyZWF0ZShhdHRyaWJ1dGVzLCBob3N0V2luZG93KSk7Ci0KKyAgICBhdXRvIGNvbnRl
eHQgPSBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKGF0dHJpYnV0ZXMsIGRvY3VtZW50LnZpZXco
KS0+cm9vdCgpLT5ob3N0V2luZG93KCkpOwogICAgIGlmICghY29udGV4dCB8fCAhY29udGV4dC0+
bWFrZUNvbnRleHRDdXJyZW50KCkpIHsKICAgICAgICAgY2FudmFzLmRpc3BhdGNoRXZlbnQoV2Vi
R0xDb250ZXh0RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2ViZ2xjb250ZXh0Y3JlYXRpb25l
cnJvckV2ZW50LCBmYWxzZSwgdHJ1ZSwgIkNvdWxkIG5vdCBjcmVhdGUgYSBXZWJHTCBjb250ZXh0
LiIpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgRXh0ZW5zaW9uczNE
JiBleHRlbnNpb25zID0gY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpOwotICAgIGlmIChleHRlbnNp
b25zLnN1cHBvcnRzKCJHTF9FWFRfZGVidWdfbWFya2VyIikpCi0gICAgICAgIGV4dGVuc2lvbnMu
cHVzaEdyb3VwTWFya2VyRVhUKCJXZWJHTFJlbmRlcmluZ0NvbnRleHQiKTsKKyAgICBhdXRvJiBl
eHRlbnNpb25zID0gY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpOworICAgIGlmIChleHRlbnNpb25z
LnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfZGVidWdfbWFya2VyIiB9KSkKKyAgICAg
ICAgZXh0ZW5zaW9ucy5wdXNoR3JvdXBNYXJrZXJFWFQoQVNDSUlMaXRlcmFsIHsgIldlYkdMUmVu
ZGVyaW5nQ29udGV4dCIgfSk7CiAKICNpZiBFTkFCTEUoV0VCR0wyKSAmJiBQTEFURk9STShNQUMp
CiAgICAgLy8gZ2xUZXhTdG9yYWdlKCkgd2FzIG9ubHkgYWRkZWQgdG8gQ29yZSBpbiBPcGVuR0wg
NC4yLgpAQCAtNDM5LDEzICs0MzcsMTMgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZShIVE0KICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlPiByZW5kZXJpbmdDb250ZXh0ID0gbnVsbHB0cjsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4gcmVuZGVyaW5nQ29udGV4dDsK
ICNpZiBFTkFCTEUoV0VCR0wyKQogICAgIGlmICh0eXBlID09ICJ3ZWJnbDIiKQotICAgICAgICBy
ZW5kZXJpbmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTDJSZW5kZXJpbmdDb250ZXh0
PihjYW52YXMsIFdURk1vdmUoY29udGV4dCksIGF0dHJpYnV0ZXMpOworICAgICAgICByZW5kZXJp
bmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PihjYW52
YXMsIGNvbnRleHQucmVsZWFzZU5vbk51bGwoKSwgYXR0cmlidXRlcyk7CiAgICAgZWxzZQogI2Vu
ZGlmCi0gICAgICAgIHJlbmRlcmluZ0NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMUmVu
ZGVyaW5nQ29udGV4dD4oY2FudmFzLCBXVEZNb3ZlKGNvbnRleHQpLCBhdHRyaWJ1dGVzKTsKKyAg
ICAgICAgcmVuZGVyaW5nQ29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xSZW5kZXJpbmdD
b250ZXh0PihjYW52YXMsIGNvbnRleHQucmVsZWFzZU5vbk51bGwoKSwgYXR0cmlidXRlcyk7CiAg
ICAgcmVuZGVyaW5nQ29udGV4dC0+c3VzcGVuZElmTmVlZGVkKCk7CiAKICAgICByZXR1cm4gcmVu
ZGVyaW5nQ29udGV4dDsKQEAgLTQ1NCw0NCArNDUyLDI5IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUo
SFRNCiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
KEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMg
YXR0cmlidXRlcykKICAgICA6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQocGFzc2VkQ2FudmFzKQog
ICAgICwgQWN0aXZlRE9NT2JqZWN0KCZwYXNzZWRDYW52YXMuZG9jdW1lbnQoKSkKLSAgICAsIG1f
Y29udGV4dChudWxscHRyKQogICAgICwgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lcigq
dGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dExvc3RFdmVu
dCkKLSAgICAsIG1fcmVzdG9yZUFsbG93ZWQoZmFsc2UpCiAgICAgLCBtX3Jlc3RvcmVUaW1lcigq
dGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQpCi0g
ICAgLCBtX2dlbmVyYXRlZEltYWdlQ2FjaGUoMCkKLSAgICAsIG1fY29udGV4dExvc3QoZmFsc2Up
Ci0gICAgLCBtX2NvbnRleHRMb3N0TW9kZShTeW50aGV0aWNMb3N0Q29udGV4dCkKICAgICAsIG1f
YXR0cmlidXRlcyhhdHRyaWJ1dGVzKQotICAgICwgbV9zeW50aGVzaXplZEVycm9yc1RvQ29uc29s
ZSh0cnVlKQogICAgICwgbV9udW1HTEVycm9yc1RvQ29uc29sZUFsbG93ZWQobWF4R0xFcnJvcnNB
bGxvd2VkVG9Db25zb2xlKQogICAgICwgbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKHRydWUp
Ci0gICAgLCBtX2hhc1JlcXVlc3RlZFBvbGljeVJlc29sdXRpb24oZmFsc2UpCiB7CiB9CiAKLVdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENh
bnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNv
bnRleHQsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKK1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQm
IHBhc3NlZENhbnZhcywgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQsIFdlYkdMQ29u
dGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICA6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQo
cGFzc2VkQ2FudmFzKQogICAgICwgQWN0aXZlRE9NT2JqZWN0KCZwYXNzZWRDYW52YXMuZG9jdW1l
bnQoKSkKICAgICAsIG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQogICAgICwgbV9kaXNwYXRj
aENvbnRleHRMb3N0RXZlbnRUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmRpc3BhdGNoQ29udGV4dExvc3RFdmVudCkKLSAgICAsIG1fcmVzdG9yZUFsbG93ZWQoZmFsc2Up
CiAgICAgLCBtX3Jlc3RvcmVUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
Om1heWJlUmVzdG9yZUNvbnRleHQpCiAgICAgLCBtX2dlbmVyYXRlZEltYWdlQ2FjaGUoNCkKLSAg
ICAsIG1fY29udGV4dExvc3QoZmFsc2UpCi0gICAgLCBtX2NvbnRleHRMb3N0TW9kZShTeW50aGV0
aWNMb3N0Q29udGV4dCkKICAgICAsIG1fYXR0cmlidXRlcyhhdHRyaWJ1dGVzKQotICAgICwgbV9z
eW50aGVzaXplZEVycm9yc1RvQ29uc29sZSh0cnVlKQogICAgICwgbV9udW1HTEVycm9yc1RvQ29u
c29sZUFsbG93ZWQobWF4R0xFcnJvcnNBbGxvd2VkVG9Db25zb2xlKQotICAgICwgbV9pc1BlbmRp
bmdQb2xpY3lSZXNvbHV0aW9uKGZhbHNlKQotICAgICwgbV9oYXNSZXF1ZXN0ZWRQb2xpY3lSZXNv
bHV0aW9uKGZhbHNlKQogewotICAgIEFTU0VSVChtX2NvbnRleHQpOwogICAgIG1fY29udGV4dEdy
b3VwID0gV2ViR0xDb250ZXh0R3JvdXA6OmNyZWF0ZSgpOwotICAgIG1fY29udGV4dEdyb3VwLT5h
ZGRDb250ZXh0KHRoaXMpOworICAgIG1fY29udGV4dEdyb3VwLT5hZGRDb250ZXh0KCp0aGlzKTsK
ICAgICAKICAgICBtX2NvbnRleHQtPnNldFdlYkdMQ29udGV4dCh0aGlzKTsKIAotICAgIG1fbWF4
Vmlld3BvcnREaW1zWzBdID0gbV9tYXhWaWV3cG9ydERpbXNbMV0gPSAwOwogICAgIG1fY29udGV4
dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6Ok1BWF9WSUVXUE9SVF9ESU1TLCBtX21h
eFZpZXdwb3J0RGltcyk7CiAKICAgICBzZXR1cEZsYWdzKCk7CkBAIC02MTksNyArNjAyLDcgQEAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6fldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoKQog
ICAgIGlmICghbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKSB7CiAgICAgICAgIGRldGFjaEFu
ZFJlbW92ZUFsbE9iamVjdHMoKTsKICAgICAgICAgZGVzdHJveUdyYXBoaWNzQ29udGV4dDNEKCk7
Ci0gICAgICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVDb250ZXh0KHRoaXMpOworICAgICAgICBt
X2NvbnRleHRHcm91cC0+cmVtb3ZlQ29udGV4dCgqdGhpcyk7CiAgICAgfQogfQogCkBAIC05MTMs
NyArODk2LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpiaW5kQnVmZmVyKEdD
M0RlbnVtIHRhcmdldCwgV2ViR0xCdWZmZXIqIGJ1ZmZlcikKICAgICBpZiAoIWNoZWNrT2JqZWN0
VG9CZUJvdW5kKCJiaW5kQnVmZmVyIiwgYnVmZmVyLCBkZWxldGVkKSkKICAgICAgICAgcmV0dXJu
OwogICAgIGlmIChkZWxldGVkKQotICAgICAgICBidWZmZXIgPSAwOworICAgICAgICBidWZmZXIg
PSBudWxscHRyOwogICAgIGlmIChidWZmZXIgJiYgYnVmZmVyLT5nZXRUYXJnZXQoKSAmJiBidWZm
ZXItPmdldFRhcmdldCgpICE9IHRhcmdldCkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJiaW5kQnVmZmVyIiwgImJ1ZmZl
cnMgY2FuIG5vdCBiZSB1c2VkIHdpdGggbXVsdGlwbGUgdGFyZ2V0cyIpOwogICAgICAgICByZXR1
cm47CkBAIC0xMzk1LDcgKzEzNzgsNyBAQCBSZWZQdHI8V2ViR0xCdWZmZXI+IFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmNyZWF0ZUJ1ZmZlcigpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBl
bmRpbmcoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBidWZmZXIgPSBXZWJH
TEJ1ZmZlcjo6Y3JlYXRlKCp0aGlzKTsKLSAgICBhZGRTaGFyZWRPYmplY3QoYnVmZmVyLnB0cigp
KTsKKyAgICBhZGRTaGFyZWRPYmplY3QoYnVmZmVyLmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92
ZShidWZmZXIpOwogfQogCkBAIC0xNDA0LDcgKzEzODcsNyBAQCBSZWZQdHI8V2ViR0xGcmFtZWJ1
ZmZlcj4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlRnJhbWVidWZmZXIoKQogICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIGF1dG8gYnVmZmVyID0gV2ViR0xGcmFtZWJ1ZmZlcjo6Y3JlYXRlKCp0aGlzKTsKLSAgICBh
ZGRDb250ZXh0T2JqZWN0KGJ1ZmZlci5wdHIoKSk7CisgICAgYWRkQ29udGV4dE9iamVjdChidWZm
ZXIuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKGJ1ZmZlcik7CiB9CiAKQEAgLTE0MTMsNyAr
MTM5Niw3IEBAIFJlZlB0cjxXZWJHTFRleHR1cmU+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmNyZWF0ZVRleHR1cmUoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gdGV4dHVyZSA9IFdlYkdMVGV4dHVyZTo6Y3Jl
YXRlKCp0aGlzKTsKLSAgICBhZGRTaGFyZWRPYmplY3QodGV4dHVyZS5wdHIoKSk7CisgICAgYWRk
U2hhcmVkT2JqZWN0KHRleHR1cmUuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKHRleHR1cmUp
OwogfQogCkBAIC0xNDIyLDcgKzE0MDUsNyBAQCBSZWZQdHI8V2ViR0xQcm9ncmFtPiBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVQcm9ncmFtKCkKICAgICBpZiAoaXNDb250ZXh0TG9z
dE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIHByb2dyYW0g
PSBXZWJHTFByb2dyYW06OmNyZWF0ZSgqdGhpcyk7Ci0gICAgYWRkU2hhcmVkT2JqZWN0KHByb2dy
YW0ucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdChwcm9ncmFtLmdldCgpKTsKICAgICByZXR1
cm4gV1RGTW92ZShwcm9ncmFtKTsKIH0KIApAQCAtMTQzMSw3ICsxNDE0LDcgQEAgUmVmUHRyPFdl
YkdMUmVuZGVyYnVmZmVyPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVSZW5kZXJi
dWZmZXIoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIGF1dG8gYnVmZmVyID0gV2ViR0xSZW5kZXJidWZmZXI6OmNyZWF0ZSgq
dGhpcyk7Ci0gICAgYWRkU2hhcmVkT2JqZWN0KGJ1ZmZlci5wdHIoKSk7CisgICAgYWRkU2hhcmVk
T2JqZWN0KGJ1ZmZlci5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUoYnVmZmVyKTsKIH0KIApA
QCAtMTQ0NSw3ICsxNDI4LDcgQEAgUmVmUHRyPFdlYkdMU2hhZGVyPiBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpjcmVhdGVTaGFkZXIoR0MzRGVudW0gdHlwZSkKICAgICB9CiAKICAgICBhdXRv
IHNoYWRlciA9IFdlYkdMU2hhZGVyOjpjcmVhdGUoKnRoaXMsIHR5cGUpOwotICAgIGFkZFNoYXJl
ZE9iamVjdChzaGFkZXIucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdChzaGFkZXIuZ2V0KCkp
OwogICAgIHJldHVybiBXVEZNb3ZlKHNoYWRlcik7CiB9CiAKQEAgLTE0NzgsNyArMTQ2MSw3IEBA
IHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlQnVmZmVyKFdlYkdMQnVmZmVy
KiBidWZmZXIpCiAgICAgaWYgKG1fYm91bmRBcnJheUJ1ZmZlciA9PSBidWZmZXIpCiAgICAgICAg
IG1fYm91bmRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAKLSAgICBtX2JvdW5kVmVydGV4QXJyYXlP
YmplY3QtPnVuYmluZEJ1ZmZlcihidWZmZXIpOworICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVj
dC0+dW5iaW5kQnVmZmVyKCpidWZmZXIpOwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmRlbGV0ZUZyYW1lYnVmZmVyKFdlYkdMRnJhbWVidWZmZXIqIGZyYW1lYnVmZmVyKQpA
QCAtMjE4NCwxMCArMjE2NywxMCBAQCBHQzNEaW50IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldEF0dHJpYkxvY2F0aW9uKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29ucwogICAgIHJldHVy
biBtX2NvbnRleHQtPmdldEF0dHJpYkxvY2F0aW9uKG9iamVjdE9yWmVybyhwcm9ncmFtKSwgbmFt
ZSk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCdWZm
ZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJn
ZXQsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkp
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBib29sIHZhbGlkID0gZmFsc2U7CiAgICAgaWYgKHRhcmdldCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6QVJSQVlfQlVGRkVSIHx8IHRhcmdldCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RUxF
TUVOVF9BUlJBWV9CVUZGRVIpCkBAIC0yMjA3LDE5ICsyMTkwLDE5IEBAIFdlYkdMR2V0SW5mbyBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCdWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFy
Z2V0LCBHQzNECiAjZW5kaWYKICAgICBpZiAoIXZhbGlkKSB7CiAgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRCdWZmZXJQYXJhbWV0
ZXIiLCAiaW52YWxpZCB0YXJnZXQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAocG5hbWUgIT0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkJVRkZFUl9TSVpFICYmIHBuYW1lICE9IEdyYXBoaWNzQ29udGV4dDNEOjpC
VUZGRVJfVVNBR0UpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfRU5VTSwgImdldEJ1ZmZlclBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRl
ciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgfQogCiAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAgICAgbV9jb250ZXh0
LT5nZXRCdWZmZXJQYXJhbWV0ZXJpdih0YXJnZXQsIHBuYW1lLCAmdmFsdWUpOwogICAgIGlmIChw
bmFtZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6QlVGRkVSX1NJWkUpCi0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8odmFsdWUpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8
dW5zaWduZWQgaW50Pih2YWx1ZSkpOworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZSk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8V2ViR0xD
b250ZXh0QXR0cmlidXRlcz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Q29udGV4dEF0
dHJpYnV0ZXMoKQpAQCAtMjI0NiwzMCArMjIyOSwzMCBAQCBHQzNEZW51bSBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRFcnJvcigpCiAgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0RXJyb3Io
KTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dy
YW1QYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSkKK1dlYkdM
QW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJhbWV0ZXIoV2ViR0xQ
cm9ncmFtKiBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9z
dE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJnZXRQcm9ncmFtUGFyYW1ldGVy
IiwgcHJvZ3JhbSkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBzd2l0Y2ggKHBuYW1l
KSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVMRVRFX1NUQVRVUzoKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhwcm9ncmFtLT5pc0RlbGV0ZWQoKSk7CisgICAgICAgIHJldHVy
biBwcm9ncmFtLT5pc0RlbGV0ZWQoKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWQUxJ
REFURV9TVEFUVVM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0UHJvZ3JhbWl2KG9iamVjdE9yWmVy
byhwcm9ncmFtKSwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
c3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJv
b2w+KHZhbHVlKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5LX1NUQVRVUzoKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhwcm9ncmFtLT5nZXRMaW5rU3RhdHVzKCkpOworICAg
ICAgICByZXR1cm4gcHJvZ3JhbS0+Z2V0TGlua1N0YXR1cygpOwogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkFUVEFDSEVEX1NIQURFUlM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0UHJvZ3Jh
bWl2KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6QUNUSVZFX0FUVFJJQlVURVM6CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6QUNUSVZFX1VOSUZPUk1TOgogICAgICAgICBtX2NvbnRleHQtPmdldE5vbkJ1aWx0
SW5BY3RpdmVTeW1ib2xDb3VudChvYmplY3RPclplcm8ocHJvZ3JhbSksIHBuYW1lLCAmdmFsdWUp
OwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHZh
bHVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQcm9ncmFtUGFyYW1ldGVyIiwgImludmFsaWQgcGFy
YW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTIyODAsMTcgKzIyNjMsMTcgQEAgU3RyaW5n
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1JbmZvTG9nKFdlYkdMUHJvZ3Jh
bSogcHJvZ3JhbSkKICAgICByZXR1cm4gZW5zdXJlTm90TnVsbChtX2NvbnRleHQtPmdldFByb2dy
YW1JbmZvTG9nKG9iamVjdE9yWmVybyhwcm9ncmFtKSkpOwogfQogCi1XZWJHTEdldEluZm8gV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVt
IHRhcmdldCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBw
bmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlmICh0YXJn
ZXQgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUikgewogICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UmVuZGVyYnVm
ZmVyUGFyYW1ldGVyIiwgImludmFsaWQgdGFyZ2V0Iik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIGlmICghbV9yZW5k
ZXJidWZmZXJCaW5kaW5nIHx8ICFtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPm9iamVjdCgpKSB7CiAg
ICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJB
VElPTiwgImdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlciIsICJubyByZW5kZXJidWZmZXIgYm91bmQi
KTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAKICAgICBpZiAobV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZv
cm1hdCgpID09IEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMCkBAIC0yMzE3LDEyICsy
MzAwLDEyIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5k
ZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0CiAgICAgICAgICAgICB2YWx1ZSA9IDg7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVO
REVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVDoKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8obV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgpKTsKKyAgICAgICAg
ICAgIHJldHVybiBtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdldEludGVybmFsRm9ybWF0KCk7CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIiwgImludmFs
aWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgfQogCiAgICAg
R0MzRGludCB2YWx1ZSA9IDA7CkBAIC0yMzM2LDMyICsyMzE5LDMyIEBAIFdlYkdMR2V0SW5mbyBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVu
dW0gdGFyZ2V0CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSX0RFUFRI
X1NJWkU6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSX1NURU5DSUxf
U0laRToKICAgICAgICAgbV9jb250ZXh0LT5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXJpdih0YXJn
ZXQsIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsK
KyAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRF
UkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQ6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9y
ZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgpKTsKKyAgICAgICAgcmV0dXJu
IG1fcmVuZGVyYnVmZmVyQmluZGluZy0+Z2V0SW50ZXJuYWxGb3JtYXQoKTsKICAgICBkZWZhdWx0
OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCAiZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUi
KTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpn
ZXRTaGFkZXJQYXJhbWV0ZXIoV2ViR0xTaGFkZXIqIHNoYWRlciwgR0MzRGVudW0gcG5hbWUpCitX
ZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRTaGFkZXJQYXJhbWV0ZXIoV2Vi
R0xTaGFkZXIqIHNoYWRlciwgR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29udGV4dExv
c3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0U2hhZGVyUGFyYW1ldGVy
Iiwgc2hhZGVyKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBzd2l0Y2ggKHBuYW1lKSB7
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVMRVRFX1NUQVRVUzoKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhzaGFkZXItPmlzRGVsZXRlZCgpKTsKKyAgICAgICAgcmV0dXJuIHNo
YWRlci0+aXNEZWxldGVkKCk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUElMRV9T
VEFUVVM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0U2hhZGVyaXYob2JqZWN0T3JaZXJvKHNoYWRl
ciksIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19j
YXN0PGJvb2w+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29sPih2YWx1
ZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0hBREVSX1RZUEU6CiAgICAgICAgIG1f
Y29udGV4dC0+Z2V0U2hhZGVyaXYob2JqZWN0T3JaZXJvKHNoYWRlciksIHBuYW1lLCAmdmFsdWUp
OwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4o
dmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZSk7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfRU5VTSwgImdldFNoYWRlclBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBu
YW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogfQogCkBAIC0yNDEwLDEzICsyMzkzLDEzIEBAIFN0cmluZyBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpnZXRTaGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIqIHNoYWRlcikK
ICAgICByZXR1cm4gZW5zdXJlTm90TnVsbChzaGFkZXItPmdldFNvdXJjZSgpKTsKIH0KIAotV2Vi
R0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFRleFBhcmFtZXRlcihHQzNE
ZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Z2V0VGV4UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUp
CiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBXZWJHTFRleHR1cmUq
IHRleCA9IHZhbGlkYXRlVGV4dHVyZUJpbmRpbmcoImdldFRleFBhcmFtZXRlciIsIHRhcmdldCwg
ZmFsc2UpOwogICAgIGlmICghdGV4KQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIEdDM0RpbnQgdmFsdWUgPSAwOwogICAgIHN3aXRj
aCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01BR19GSUxU
RVI6CkBAIC0yNDI0LDI3ICsyNDA3LDI3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1M6CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1Q6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0VGV4UGFy
YW1ldGVyaXYodGFyZ2V0LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4odmFsdWUpOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpURVhU
VVJFX01BWF9BTklTT1RST1BZX0VYVDogLy8gRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGlj
CiAgICAgICAgIGlmIChtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykgewogICAgICAgICAg
ICAgbV9jb250ZXh0LT5nZXRUZXhQYXJhbWV0ZXJpdih0YXJnZXQsIHBuYW1lLCAmdmFsdWUpOwot
ICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+
KHZhbHVlKSk7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVl
KTsKICAgICAgICAgfQogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQz
RDo6SU5WQUxJRF9FTlVNLCAiZ2V0VGV4UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5h
bWUsIEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyBub3QgZW5hYmxlZCIpOwotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX0VOVU0sICJnZXRUZXhQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVu
aWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiog
dW5pZm9ybUxvY2F0aW9uKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9u
KiB1bmlmb3JtTG9jYXRpb24pCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8
fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0VW5pZm9ybSIsIHByb2dyYW0pKQotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlmICgh
dW5pZm9ybUxvY2F0aW9uIHx8IHVuaWZvcm1Mb2NhdGlvbi0+cHJvZ3JhbSgpICE9IHByb2dyYW0p
IHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
T1BFUkFUSU9OLCAiZ2V0VW5pZm9ybSIsICJubyB1bmlmb3JtbG9jYXRpb24gb3Igbm90IHZhbGlk
IGZvciB0aGlzIHByb2dyYW0iKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgR0MzRGludCBsb2NhdGlvbiA9IHVuaWZv
cm1Mb2NhdGlvbi0+bG9jYXRpb24oKTsKIApAQCAtMjUxOSw3ICsyNTAyLDcgQEAgV2ViR0xHZXRJ
bmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBw
cm9ncmFtLCBjb25zdAogICAgIGRlZmF1bHQ6CiAgICAgICAgIC8vIENhbid0IGhhbmRsZSB0aGlz
IHR5cGUKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfVkFMVUUsICJnZXRVbmlmb3JtIiwgInVuaGFuZGxlZCB0eXBlIik7Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIHN3
aXRjaCAoYmFzZVR5cGUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDogewpA
QCAtMjUyOSw4ICsyNTEyLDggQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdAogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1mdihvYmplY3RPclplcm8ocHJvZ3Jh
bSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGggPT0gMSkKLSAgICAgICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWVbMF0pOwotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PihGbG9hdDMyQXJyYXk6OmNyZWF0ZSh2YWx1
ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlWzBdOworICAgICAgICByZXR1
cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCk7CiAgICAgfQogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OklOVDogewogICAgICAgICBHQzNEaW50IHZhbHVlWzRdID0gezB9
OwpAQCAtMjUzOSw4ICsyNTIyLDggQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdAogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1pdihvYmplY3RPclplcm8ocHJv
Z3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGggPT0gMSkKLSAgICAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWVbMF0pOwotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKFBhc3NSZWZQdHI8SW50MzJBcnJheT4oSW50MzJBcnJheTo6Y3JlYXRlKHZhbHVl
LCBsZW5ndGgpKSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVbMF07CisgICAgICAgIHJldHVy
biBJbnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCk7CiAgICAgfQogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkJPT0w6IHsKICAgICAgICAgR0MzRGludCB2YWx1ZVs0XSA9IHswfTsK
QEAgLTI1NDksMTIgKzI1MzIsMTIgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdAogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1pdihvYmplY3RPclplcm8ocHJv
Z3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGggPiAxKSB7Ci0gICAg
ICAgICAgICBib29sIGJvb2xWYWx1ZVsxNl0gPSB7MH07CisgICAgICAgICAgICBWZWN0b3I8Ym9v
bD4gdmVjdG9yKGxlbmd0aCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwg
bGVuZ3RoOyBqKyspCi0gICAgICAgICAgICAgICAgYm9vbFZhbHVlW2pdID0gc3RhdGljX2Nhc3Q8
Ym9vbD4odmFsdWVbal0pOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhib29sVmFs
dWUsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgdmVjdG9yW2pdID0gdmFsdWVbal07CisgICAg
ICAgICAgICByZXR1cm4gV1RGTW92ZSh2ZWN0b3IpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWVbMF0pKTsKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGJvb2w+KHZhbHVlWzBdKTsKICAgICB9CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTI1NjIsNyArMjU0NSw3IEBAIFdlYkdMR2V0SW5m
byBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSogcHJv
Z3JhbSwgY29uc3QKIAogICAgIC8vIElmIHdlIGdldCBoZXJlLCBzb21ldGhpbmcgd2VudCB3cm9u
ZyBpbiBvdXIgdW5mb3J0dW5hdGVseSBjb21wbGV4IGxvZ2ljIGFib3ZlCiAgICAgc3ludGhlc2l6
ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUsICJnZXRVbmlmb3JtIiwg
InVua25vd24gZXJyb3IiKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKIFJlZlB0cjxXZWJHTFVuaWZvcm1Mb2NhdGlvbj4gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybUxvY2F0aW9uKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwg
Y29uc3QgU3RyaW5nJiBuYW1lKQpAQCAtMjYwMyw0MyArMjU4Niw0MyBAQCBSZWZQdHI8V2ViR0xV
bmlmb3JtTG9jYXRpb24+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm1Mb2Nh
dGlvbihXZWJHTAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VmVydGV4QXR0cmliKEdDM0R1aW50IGluZGV4LCBHQzNE
ZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRl
eEF0dHJpYihHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29u
dGV4dExvc3RPclBlbmRpbmcoKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmIChpbmRleCA+PSBtX21heFZlcnRleEF0dHJp
YnMpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfVkFMVUUsICJnZXRWZXJ0ZXhBdHRyaWIiLCAiaW5kZXggb3V0IG9mIHJhbmdlIik7Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogCiAgICAgY29uc3QgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OlZlcnRleEF0dHJpYlN0
YXRlJiBzdGF0ZSA9IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0VmVydGV4QXR0cmliU3Rh
dGUoaW5kZXgpOwogCiAgICAgaWYgKChpc1dlYkdMMigpIHx8IG1fYW5nbGVJbnN0YW5jZWRBcnJh
eXMpICYmIHBuYW1lID09IEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX0RJ
VklTT1JfQU5HTEUpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGUuZGl2aXNvcik7
CisgICAgICAgIHJldHVybiBzdGF0ZS5kaXZpc29yOwogCiAgICAgc3dpdGNoIChwbmFtZSkgewog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJ
TkRJTkc6CiAgICAgICAgIGlmICgoIWlzR0xFUzJDb21wbGlhbnQoKSAmJiAhaW5kZXggJiYgbV9i
b3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRWZXJ0ZXhBdHRyaWJTdGF0ZSgwKS5idWZmZXJCaW5k
aW5nID09IG1fdmVydGV4QXR0cmliMEJ1ZmZlcikKICAgICAgICAgICAgIHx8ICFzdGF0ZS5idWZm
ZXJCaW5kaW5nCiAgICAgICAgICAgICB8fCAhc3RhdGUuYnVmZmVyQmluZGluZy0+b2JqZWN0KCkp
Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4oc3RhdGUuYnVmZmVyQmluZGluZykpOwor
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBzdGF0ZS5idWZmZXJC
aW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlf
RU5BQkxFRDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS5lbmFibGVkKTsKKyAg
ICAgICAgcmV0dXJuIHN0YXRlLmVuYWJsZWQ7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
VkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHN0YXRlLm5vcm1hbGl6ZWQpOworICAgICAgICByZXR1cm4gc3RhdGUubm9ybWFsaXplZDsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX1NJWkU6Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGUuc2l6ZSk7CisgICAgICAgIHJldHVybiBz
dGF0ZS5zaXplOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJS
QVlfU1RSSURFOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRlLm9yaWdpbmFsU3Ry
aWRlKTsKKyAgICAgICAgcmV0dXJuIHN0YXRlLm9yaWdpbmFsU3RyaWRlOwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRToKLSAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbyhzdGF0ZS50eXBlKTsKKyAgICAgICAgcmV0dXJuIHN0YXRlLnR5cGU7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VSUkVOVF9WRVJURVhfQVRUUklCOgotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PihGbG9hdDMyQXJy
YXk6OmNyZWF0ZShtX3ZlcnRleEF0dHJpYlZhbHVlW2luZGV4XS52YWx1ZSwgNCkpKTsKKyAgICAg
ICAgcmV0dXJuIEZsb2F0MzJBcnJheTo6Y3JlYXRlKG1fdmVydGV4QXR0cmliVmFsdWVbaW5kZXhd
LnZhbHVlLCA0KTsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0VmVydGV4QXR0cmliIiwgImludmFsaWQg
cGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTI2NDcsOCArMjYzMCw3IEBAIGxvbmcg
bG9uZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0Mz
RHVpbnQgaW5kZXgsIEdDM0RlCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkK
ICAgICAgICAgcmV0dXJuIDA7Ci0gICAgR0MzRHNpemVpcHRyIHJlc3VsdCA9IG1fY29udGV4dC0+
Z2V0VmVydGV4QXR0cmliT2Zmc2V0KGluZGV4LCBwbmFtZSk7Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PGxvbmcgbG9uZz4ocmVzdWx0KTsKKyAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRWZXJ0ZXhB
dHRyaWJPZmZzZXQoaW5kZXgsIHBuYW1lKTsKIH0KIAogR0MzRGJvb2xlYW4gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6aXNCdWZmZXIoV2ViR0xCdWZmZXIqIGJ1ZmZlcikKQEAgLTMxMTAsOCAr
MzA5Miw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVhZFBpeGVscyhHQzNE
aW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoCiAjdW5kZWYgUEFDS0VEX0lOVEVSTkFM
X0ZPUk1BVF9DSEVDSwogCiAgICAgLy8gQ2FsY3VsYXRlIGFycmF5IHNpemUsIHRha2luZyBpbnRv
IGNvbnNpZGVyYXRpb24gb2YgUEFDS19BTElHTk1FTlQuCi0gICAgdW5zaWduZWQgaW50IHRvdGFs
Qnl0ZXNSZXF1aXJlZCA9IDA7Ci0gICAgdW5zaWduZWQgaW50IHBhZGRpbmcgPSAwOworICAgIHVu
c2lnbmVkIHRvdGFsQnl0ZXNSZXF1aXJlZCA9IDA7CisgICAgdW5zaWduZWQgcGFkZGluZyA9IDA7
CiAgICAgaWYgKCFtX2lzUm9idXN0bmVzc0VYVFN1cHBvcnRlZCkgewogICAgICAgICBHQzNEZW51
bSBlcnJvciA9IG1fY29udGV4dC0+Y29tcHV0ZUltYWdlU2l6ZUluQnl0ZXMoZm9ybWF0LCB0eXBl
LCB3aWR0aCwgaGVpZ2h0LCBtX3BhY2tBbGlnbm1lbnQsICZ0b3RhbEJ5dGVzUmVxdWlyZWQsICZw
YWRkaW5nKTsKICAgICAgICAgaWYgKGVycm9yICE9IEdyYXBoaWNzQ29udGV4dDNEOjpOT19FUlJP
UikgewpAQCAtNDU4Nyw3ICs0NTY5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Ojp2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50IHNpemUKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICAvLyBEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBlbGVtZW50
cyB0aGUgYm91bmQgYnVmZmVyIGNhbiBob2xkLCBnaXZlbiB0aGUgb2Zmc2V0LCBzaXplLCB0eXBl
IGFuZCBzdHJpZGUKLSAgICB1bnNpZ25lZCBpbnQgdHlwZVNpemUgPSBzaXplSW5CeXRlcyh0eXBl
KTsKKyAgICBhdXRvIHR5cGVTaXplID0gc2l6ZUluQnl0ZXModHlwZSk7CiAgICAgaWYgKCF0eXBl
U2l6ZSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5W
QUxJRF9FTlVNLCAidmVydGV4QXR0cmliUG9pbnRlciIsICJpbnZhbGlkIHR5cGUiKTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtNDU5OCw3ICs0NTgwLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjp2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50IHNpemUK
ICAgICB9CiAgICAgR0MzRHNpemVpIGJ5dGVzUGVyRWxlbWVudCA9IHNpemUgKiB0eXBlU2l6ZTsK
IAotICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+c2V0VmVydGV4QXR0cmliU3RhdGUoaW5k
ZXgsIGJ5dGVzUGVyRWxlbWVudCwgc2l6ZSwgdHlwZSwgbm9ybWFsaXplZCwgc3RyaWRlLCBzdGF0
aWNfY2FzdDxHQzNEaW50cHRyPihvZmZzZXQpLCBtX2JvdW5kQXJyYXlCdWZmZXIpOworICAgIG1f
Ym91bmRWZXJ0ZXhBcnJheU9iamVjdC0+c2V0VmVydGV4QXR0cmliU3RhdGUoaW5kZXgsIGJ5dGVz
UGVyRWxlbWVudCwgc2l6ZSwgdHlwZSwgbm9ybWFsaXplZCwgc3RyaWRlLCBzdGF0aWNfY2FzdDxH
QzNEaW50cHRyPihvZmZzZXQpLCAqbV9ib3VuZEFycmF5QnVmZmVyKTsKICAgICBtX2NvbnRleHQt
PnZlcnRleEF0dHJpYlBvaW50ZXIoaW5kZXgsIHNpemUsIHR5cGUsIG5vcm1hbGl6ZWQsIHN0cmlk
ZSwgc3RhdGljX2Nhc3Q8R0MzRGludHB0cj4ob2Zmc2V0KSk7CiB9CiAKQEAgLTQ2ODksNyArNDY3
MSw3IEBAIFBsYXRmb3JtTGF5ZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnBsYXRmb3Jt
TGF5ZXIoKSBjb25zdAogICAgIHJldHVybiAoIWlzQ29udGV4dExvc3QoKSAmJiAhbV9pc1BlbmRp
bmdQb2xpY3lSZXNvbHV0aW9uKSA/IG1fY29udGV4dC0+cGxhdGZvcm1MYXllcigpIDogMDsKIH0K
IAotdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVTaGFyZWRPYmplY3QoV2Vi
R0xTaGFyZWRPYmplY3QqIG9iamVjdCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
cmVtb3ZlU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0JiBvYmplY3QpCiB7CiAgICAgaWYg
KG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikKICAgICAgICAgcmV0dXJuOwpAQCAtNDY5Nyw3
ICs0Njc5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVTaGFyZWRP
YmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCkKICAgICBtX2NvbnRleHRHcm91cC0+cmVt
b3ZlT2JqZWN0KG9iamVjdCk7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
YWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmFkZFNoYXJlZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCYgb2Jq
ZWN0KQogewogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pCiAgICAgICAgIHJl
dHVybjsKQEAgLTQ3MDYsMjEgKzQ2ODgsMjEgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjphZGRTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCkKICAgICBtX2Nv
bnRleHRHcm91cC0+YWRkT2JqZWN0KG9iamVjdCk7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6cmVtb3ZlQ29udGV4dE9iamVjdChXZWJHTENvbnRleHRPYmplY3QqIG9iamVj
dCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVtb3ZlQ29udGV4dE9iamVjdChX
ZWJHTENvbnRleHRPYmplY3QmIG9iamVjdCkKIHsKICAgICBpZiAobV9pc1BlbmRpbmdQb2xpY3lS
ZXNvbHV0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NvbnRleHRPYmplY3RzLnJlbW92
ZShvYmplY3QpOworICAgIG1fY29udGV4dE9iamVjdHMucmVtb3ZlKCZvYmplY3QpOwogfQogCi12
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZENvbnRleHRPYmplY3QoV2ViR0xDb250
ZXh0T2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZENv
bnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0JiBvYmplY3QpCiB7CiAgICAgaWYgKG1faXNQ
ZW5kaW5nUG9saWN5UmVzb2x1dGlvbikKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKCFp
c0NvbnRleHRMb3N0KCkpOwotICAgIG1fY29udGV4dE9iamVjdHMuYWRkKG9iamVjdCk7CisgICAg
bV9jb250ZXh0T2JqZWN0cy5hZGQoJm9iamVjdCk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6ZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpCkBAIC00NzU4LDU2ICs0NzQw
LDU2IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2FuU3VzcGVuZEZvckRvY3Vt
ZW50U3VzcGVuc2lvbigpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1XZWJHTEdldElu
Zm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Qm9vbGVhblBhcmFtZXRlcihHQzNEZW51
bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJvb2xlYW5Q
YXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGJvb2xlYW4gdmFsdWUgPSAwOwog
ICAgIG1fY29udGV4dC0+Z2V0Qm9vbGVhbnYocG5hbWUsICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxib29sPih2YWx1ZSkpOworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxib29sPih2YWx1ZSk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitXZWJHTEFu
eSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIoR0Mz
RGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKHBuYW1lICE9IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xP
Ul9XUklURU1BU0spIHsKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygwLCAwKTsKKyAgICAgICAgcmV0dXJuIFZlY3Rvcjxib29sPiB7IH07CiAg
ICAgfQotICAgIEdDM0Rib29sZWFuIHZhbHVlWzRdID0gezB9OworICAgIEdDM0Rib29sZWFuIHZh
bHVlWzRdID0geyAwIH07CiAgICAgbV9jb250ZXh0LT5nZXRCb29sZWFudihwbmFtZSwgdmFsdWUp
OwotICAgIGJvb2wgYm9vbFZhbHVlWzRdOwotICAgIGZvciAoaW50IGlpID0gMDsgaWkgPCA0OyAr
K2lpKQotICAgICAgICBib29sVmFsdWVbaWldID0gc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWVbaWld
KTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKGJvb2xWYWx1ZSwgNCk7CisgICAgVmVjdG9yPGJv
b2w+IHZlY3Rvcig0KTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgNDsgKytpKQorICAg
ICAgICB2ZWN0b3JbaV0gPSB2YWx1ZVtpXTsKKyAgICByZXR1cm4gV1RGTW92ZSh2ZWN0b3IpOwog
fQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0RmxvYXRQYXJh
bWV0ZXIoR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpnZXRGbG9hdFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNEZmxvYXQgdmFs
dWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0RmxvYXR2KHBuYW1lLCAmdmFsdWUpOwotICAgIHJl
dHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgIHJldHVybiB2YWx1ZTsKIH0KIAotV2ViR0xH
ZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEludFBhcmFtZXRlcihHQzNEZW51
bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEludFBhcmFt
ZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBtX2Nv
bnRleHQtPmdldEludGVnZXJ2KHBuYW1lLCAmdmFsdWUpOwotICAgIHJldHVybiBXZWJHTEdldElu
Zm8odmFsdWUpOworICAgIHJldHVybiB2YWx1ZTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5zaWduZWRJbnRQYXJh
bWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAgICAgbV9j
b250ZXh0LT5nZXRJbnRlZ2VydihwbmFtZSwgJnZhbHVlKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odmFsdWUpKTsKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KHZhbHVlKTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldEludDY0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0SW50NjRQYXJhbWV0ZXIoR0MzRGVudW0gcG5h
bWUpCiB7CiAgICAgR0MzRGludDY0IHZhbHVlID0gMDsKICAgICBtX2NvbnRleHQtPmdldEludGVn
ZXI2NHYocG5hbWUsICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7Cisg
ICAgcmV0dXJuIHZhbHVlOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6Z2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQorV2ViR0xB
bnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVy
KEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdDM0RmbG9hdCB2YWx1ZVs0XSA9IHswfTsKICAgICBt
X2NvbnRleHQtPmdldEZsb2F0dihwbmFtZSwgdmFsdWUpOwpAQCAtNDgyNSwxMCArNDgwNywxMCBA
QCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xGbG9hdEFy
cmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYQogICAgIGRlZmF1bHQ6CiAgICAgICAgIG5vdEltcGxl
bWVudGVkKCk7CiAgICAgfQotICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxGbG9h
dDMyQXJyYXk+KEZsb2F0MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgpKSk7CisgICAgcmV0
dXJuIEZsb2F0MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgpOwogfQogCi1XZWJHTEdldElu
Zm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFdl
YkdMSW50QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGludCB2YWx1
ZVs0XSA9IHswfTsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KHBuYW1lLCB2YWx1ZSk7CkBA
IC00ODQ0LDcgKzQ4MjYsNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZQogICAgIGRlZmF1bHQ6
CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgfQotICAgIHJldHVybiBXZWJHTEdldElu
Zm8oUGFzc1JlZlB0cjxJbnQzMkFycmF5PihJbnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0
aCkpKTsKKyAgICByZXR1cm4gSW50MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgpOwogfQog
CiBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrVGV4dHVyZUNvbXBsZXRlbmVz
cyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIGJvb2wgcHJlcGFyZVRvRHJhdykKQEAgLTUwNjgs
NyArNTA1MCw3IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVDb21w
cmVzc2VkVGV4RnVuY0RhdGEoY29uc3QgY2hhciogZnVuY3RpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKLSAgICB1bnNpZ25lZCBpbnQgYnl0ZXNSZXF1aXJlZCA9IDA7CisgICAgdW5z
aWduZWQgYnl0ZXNSZXF1aXJlZCA9IDA7CiAKICAgICBzd2l0Y2ggKGZvcm1hdCkgewogICAgIGNh
c2UgRXh0ZW5zaW9uczNEOjpDT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhUOgpAQCAtNTMyNSwx
NyArNTMwNywxNiBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlVW5p
Zm9ybU1hdHJpeFBhcmFtZXRlcnMoY29uc3QgY2hhciogZnVuYwogCiBXZWJHTEJ1ZmZlciogV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVCdWZmZXJEYXRhUGFyYW1ldGVycyhjb25z
dCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gdXNhZ2UpCiB7
Ci0gICAgV2ViR0xCdWZmZXIqIGJ1ZmZlciA9IDA7CisgICAgc3RkOjpvcHRpb25hbDxXZWJHTEJ1
ZmZlcio+IGJ1ZmZlcjsKICAgICBzd2l0Y2ggKHRhcmdldCkgewogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVSOgotICAgICAgICBidWZmZXIgPSBtX2JvdW5k
VmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1lbnRBcnJheUJ1ZmZlcigpLmdldCgpOworICAgICAg
ICBidWZmZXIgPSBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1lbnRBcnJheUJ1ZmZl
cigpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9C
VUZGRVI6CiAgICAgICAgIGJ1ZmZlciA9IG1fYm91bmRBcnJheUJ1ZmZlci5nZXQoKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICNpZiBFTkFCTEUoV0VCR0wyKQotICAgICAgICBib29s
IHN1Y2Nlc3MgPSB0cnVlOwogICAgICAgICBpZiAoaXNXZWJHTDIoKSkgewogICAgICAgICAgICAg
c3dpdGNoICh0YXJnZXQpIHsKICAgICAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNP
UFlfUkVBRF9CVUZGRVI6CkBAIC01MzU2LDE5ICs1MzM3LDE1IEBAIFdlYkdMQnVmZmVyKiBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxpZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0ZXJzKGNvbnN0
IGNoYXIqCiAgICAgICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTklGT1JNX0JVRkZF
UjoKICAgICAgICAgICAgICAgICBidWZmZXIgPSBtX2JvdW5kVW5pZm9ybUJ1ZmZlci5nZXQoKTsK
ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICAgICAgc3VjY2VzcyA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICAg
ICAgaWYgKHN1Y2Nlc3MpCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmIChidWZm
ZXIpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICNlbmRpZgogICAgICAgICBz
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlv
bk5hbWUsICJpbnZhbGlkIHRhcmdldCIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
Ci0gICAgaWYgKCFidWZmZXIpIHsKKyAgICBpZiAoIWJ1ZmZlciB8fCAhYnVmZmVyLnZhbHVlKCkp
IHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
T1BFUkFUSU9OLCBmdW5jdGlvbk5hbWUsICJubyBidWZmZXIiKTsKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQpAQCAtNTM3Niw3ICs1MzUzLDcgQEAgV2ViR0xCdWZmZXIqIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlQnVmZmVyRGF0YVBhcmFtZXRlcnMoY29uc3QgY2hh
cioKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVFJFQU1fRFJBVzoKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpTVEFUSUNfRFJBVzoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpEWU5BTUlDX0RSQVc6Ci0gICAgICAgIHJldHVybiBidWZmZXI7CisgICAgICAgIHJldHVybiBi
dWZmZXIudmFsdWUoKTsKICAgICB9CiAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCB1c2FnZSIpOwogICAg
IHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IDczOTNhMzg2MjgzM2ZjYjg2YmIxNzFi
MjA2YjI3YmNlZDliMzllY2YuLmQ5MWI4NDNiNzlkY2YzMmEyYzRkNDFjZmI1Y2M0NjhhNTNkN2U2
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmgKQEAgLTMwLDEzICszMCwxMCBAQAogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dDNELmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJUaW1lci5o
IgorI2luY2x1ZGUgIldlYkdMQW55LmgiCiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0QXR0cmlidXRl
cy5oIgotI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgotI2luY2x1ZGUgIldlYkdMT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiV2ViR0xUZXh0dXJlLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgotI2luY2x1ZGUg
PHJ1bnRpbWUvRmxvYXQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9JbnQzMkFycmF5Lmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDgsNyArNDUsNiBAQCBjbGFzcyBFWFRzUkdC
OwogY2xhc3MgRVhURnJhZ0RlcHRoOwogY2xhc3MgSFRNTEltYWdlRWxlbWVudDsKIGNsYXNzIEhU
TUxWaWRlb0VsZW1lbnQ7Ci1jbGFzcyBJbWFnZUJ1ZmZlcjsKIGNsYXNzIEltYWdlRGF0YTsKIGNs
YXNzIEludFNpemU7CiBjbGFzcyBPRVNTdGFuZGFyZERlcml2YXRpdmVzOwpAQCAtMTkxLDI0ICsx
ODcsMjQgQEAgcHVibGljOgogICAgIFJlZlB0cjxXZWJHTEFjdGl2ZUluZm8+IGdldEFjdGl2ZVVu
aWZvcm0oV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgaW5kZXgpOwogICAgIGJvb2wgZ2V0QXR0YWNo
ZWRTaGFkZXJzKFdlYkdMUHJvZ3JhbSosIFZlY3RvcjxSZWZQdHI8V2ViR0xTaGFkZXI+PiYpOwog
ICAgIEdDM0RpbnQgZ2V0QXR0cmliTG9jYXRpb24oV2ViR0xQcm9ncmFtKiwgY29uc3QgU3RyaW5n
JiBuYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0QnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldEJ1ZmZlclBhcmFtZXRlcihH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKTsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdM
Q29udGV4dEF0dHJpYnV0ZXM+IGdldENvbnRleHRBdHRyaWJ1dGVzKCk7CiAgICAgR0MzRGVudW0g
Z2V0RXJyb3IoKTsKICAgICB2aXJ0dWFsIFdlYkdMRXh0ZW5zaW9uKiBnZXRFeHRlbnNpb24oY29u
c3QgU3RyaW5nJiBuYW1lKSA9IDA7Ci0gICAgdmlydHVhbCBXZWJHTEdldEluZm8gZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNo
bWVudCwgR0MzRGVudW0gcG5hbWUpID0gMDsKLSAgICB2aXJ0dWFsIFdlYkdMR2V0SW5mbyBnZXRQ
YXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpID0gMDsKLSAgICBXZWJHTEdldEluZm8gZ2V0UHJvZ3Jh
bVBhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNEZW51bSBwbmFtZSk7CisgICAgdmlydHVhbCBX
ZWJHTEFueSBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBwbmFtZSkgPSAwOworICAgIHZpcnR1YWwg
V2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSA9IDA7CisgICAgV2ViR0xBbnkg
Z2V0UHJvZ3JhbVBhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNEZW51bSBwbmFtZSk7CiAgICAg
U3RyaW5nIGdldFByb2dyYW1JbmZvTG9nKFdlYkdMUHJvZ3JhbSopOwotICAgIFdlYkdMR2V0SW5m
byBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFt
ZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFNoYWRlclBhcmFtZXRlcihXZWJHTFNoYWRlciosIEdD
M0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0U2hhZGVyUGFy
YW1ldGVyKFdlYkdMU2hhZGVyKiwgR0MzRGVudW0gcG5hbWUpOwogICAgIFN0cmluZyBnZXRTaGFk
ZXJJbmZvTG9nKFdlYkdMU2hhZGVyKik7CiAgICAgUmVmUHRyPFdlYkdMU2hhZGVyUHJlY2lzaW9u
Rm9ybWF0PiBnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0Mz
RGVudW0gcHJlY2lzaW9uVHlwZSk7CiAgICAgU3RyaW5nIGdldFNoYWRlclNvdXJjZShXZWJHTFNo
YWRlciopOwogICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gZ2V0U3VwcG9ydGVkRXh0ZW5zaW9u
cygpID0gMDsKLSAgICBXZWJHTEdldEluZm8gZ2V0VGV4UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdl
dCwgR0MzRGVudW0gcG5hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRVbmlmb3JtKFdlYkdMUHJv
Z3JhbSosIGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKik7CisgICAgV2ViR0xBbnkgZ2V0VGV4
UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55
IGdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiwgY29uc3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qKTsK
ICAgICBSZWZQdHI8V2ViR0xVbmlmb3JtTG9jYXRpb24+IGdldFVuaWZvcm1Mb2NhdGlvbihXZWJH
TFByb2dyYW0qLCBjb25zdCBTdHJpbmcmKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0VmVydGV4QXR0
cmliKEdDM0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0VmVy
dGV4QXR0cmliKEdDM0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSk7CiAgICAgbG9uZyBsb25n
IGdldFZlcnRleEF0dHJpYk9mZnNldChHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUpOwog
CiAgICAgdmlydHVhbCB2b2lkIGhpbnQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBtb2RlKSA9
IDA7CkBAIC0zMjMsOCArMzE5LDggQEAgcHVibGljOgogICAgIHZvaWQgcGFpbnRSZW5kZXJpbmdS
ZXN1bHRzVG9DYW52YXMoKSBvdmVycmlkZTsKICAgICBSZWZQdHI8SW1hZ2VEYXRhPiBwYWludFJl
bmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSgpOwogCi0gICAgdm9pZCByZW1vdmVTaGFyZWRPYmpl
Y3QoV2ViR0xTaGFyZWRPYmplY3QqKTsKLSAgICB2b2lkIHJlbW92ZUNvbnRleHRPYmplY3QoV2Vi
R0xDb250ZXh0T2JqZWN0Kik7CisgICAgdm9pZCByZW1vdmVTaGFyZWRPYmplY3QoV2ViR0xTaGFy
ZWRPYmplY3QmKTsKKyAgICB2b2lkIHJlbW92ZUNvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2Jq
ZWN0Jik7CiAgICAgCiAgICAgdW5zaWduZWQgZ2V0TWF4VmVydGV4QXR0cmlicygpIGNvbnN0IHsg
cmV0dXJuIG1fbWF4VmVydGV4QXR0cmliczsgfQogCkBAIC0zMzUsNyArMzMxLDcgQEAgcHVibGlj
OgogCiBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShIVE1MQ2FudmFz
RWxlbWVudCYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwotICAgIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+JiYs
IFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOworICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uo
SFRNTENhbnZhc0VsZW1lbnQmLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4
dEF0dHJpYnV0ZXMpOwogCiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMRHJhd0J1ZmZlcnM7CiAgICAg
ZnJpZW5kIGNsYXNzIFdlYkdMRnJhbWVidWZmZXI7CkBAIC0zNjAsOCArMzU2LDggQEAgcHJvdGVj
dGVkOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlk
ZTsKICAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdCBvdmVy
cmlkZTsKIAotICAgIHZvaWQgYWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Kik7Ci0g
ICAgdm9pZCBhZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCopOworICAgIHZvaWQg
YWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Jik7CisgICAgdm9pZCBhZGRDb250ZXh0
T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCYpOwogICAgIHZvaWQgZGV0YWNoQW5kUmVtb3ZlQWxs
T2JqZWN0cygpOwogCiAgICAgdm9pZCBkZXN0cm95R3JhcGhpY3NDb250ZXh0M0QoKTsKQEAgLTQx
NCw3ICs0MTAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gb24gaG93IGV4YWN0bHkgdGhlIHBsYXRm
b3JtIGRpc2NvdmVycyB0aGF0IHRoZSBjb250ZXh0IHdhcyBsb3N0LiBGb3IgYmV0dGVyCiAgICAg
Ly8gcG9ydGFiaWxpdHkgd2UgYWx3YXlzIGRlZmVyIHRoZSBkaXNwYXRjaCBvZiB0aGUgZXZlbnQu
CiAgICAgVGltZXIgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lcjsKLSAgICBib29sIG1f
cmVzdG9yZUFsbG93ZWQ7CisgICAgYm9vbCBtX3Jlc3RvcmVBbGxvd2VkIHsgZmFsc2UgfTsKICAg
ICBUaW1lciBtX3Jlc3RvcmVUaW1lcjsKIAogICAgIGJvb2wgbV9uZWVkc1VwZGF0ZTsKQEAgLTQz
MiwxMiArNDI4LDEwIEBAIHByb3RlY3RlZDoKIAogICAgIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5
T2JqZWN0QmFzZT4gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiAgICAgUmVmUHRyPFdlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlPiBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3Q7Ci0gICAgdm9p
ZCBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9i
amVjdEJhc2U+IGFycmF5T2JqZWN0KQorCisgICAgdm9pZCBzZXRCb3VuZFZlcnRleEFycmF5T2Jq
ZWN0KFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKiBhcnJheU9iamVjdCkKICAgICB7Ci0gICAg
ICAgIGlmIChhcnJheU9iamVjdCkKLSAgICAgICAgICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVj
dCA9IGFycmF5T2JqZWN0OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2JvdW5kVmVydGV4
QXJyYXlPYmplY3QgPSBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdDsKKyAgICAgICAgbV9ib3Vu
ZFZlcnRleEFycmF5T2JqZWN0ID0gYXJyYXlPYmplY3QgPyBhcnJheU9iamVjdCA6IG1fZGVmYXVs
dFZlcnRleEFycmF5T2JqZWN0OwogICAgIH0KICAgICAKICAgICBjbGFzcyBWZXJ0ZXhBdHRyaWJW
YWx1ZSB7CkBAIC00OTMsMTIgKzQ4NywxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+W10+IG1fYnVmZmVyczsKICAgICAg
ICAgaW50IG1fY2FwYWNpdHk7CiAgICAgfTsKLSAgICBMUlVJbWFnZUJ1ZmZlckNhY2hlIG1fZ2Vu
ZXJhdGVkSW1hZ2VDYWNoZTsKKyAgICBMUlVJbWFnZUJ1ZmZlckNhY2hlIG1fZ2VuZXJhdGVkSW1h
Z2VDYWNoZSB7IDAgfTsKIAogICAgIEdDM0RpbnQgbV9tYXhUZXh0dXJlU2l6ZTsKICAgICBHQzNE
aW50IG1fbWF4Q3ViZU1hcFRleHR1cmVTaXplOwogICAgIEdDM0RpbnQgbV9tYXhSZW5kZXJidWZm
ZXJTaXplOwotICAgIEdDM0RpbnQgbV9tYXhWaWV3cG9ydERpbXNbMl07CisgICAgR0MzRGludCBt
X21heFZpZXdwb3J0RGltc1syXSB7IDAsIDAgfTsKICAgICBHQzNEaW50IG1fbWF4VGV4dHVyZUxl
dmVsOwogICAgIEdDM0RpbnQgbV9tYXhDdWJlTWFwVGV4dHVyZUxldmVsOwogCkBAIC01MTMsOCAr
NTA3LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV91bnBhY2tGbGlwWTsKICAgICBib29sIG1f
dW5wYWNrUHJlbXVsdGlwbHlBbHBoYTsKICAgICBHQzNEZW51bSBtX3VucGFja0NvbG9yc3BhY2VD
b252ZXJzaW9uOwotICAgIGJvb2wgbV9jb250ZXh0TG9zdDsKLSAgICBMb3N0Q29udGV4dE1vZGUg
bV9jb250ZXh0TG9zdE1vZGU7CisgICAgYm9vbCBtX2NvbnRleHRMb3N0IHsgZmFsc2UgfTsKKyAg
ICBMb3N0Q29udGV4dE1vZGUgbV9jb250ZXh0TG9zdE1vZGUgeyBTeW50aGV0aWNMb3N0Q29udGV4
dCB9OwogICAgIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgbV9hdHRyaWJ1dGVzOwogCiAgICAgYm9v
bCBtX2xheWVyQ2xlYXJlZDsKQEAgLTUzNSwxNCArNTI5LDE0IEBAIHByb3RlY3RlZDoKICAgICBi
b29sIG1faXNEZXB0aFN0ZW5jaWxTdXBwb3J0ZWQ7CiAgICAgYm9vbCBtX2lzUm9idXN0bmVzc0VY
VFN1cHBvcnRlZDsKIAotICAgIGJvb2wgbV9zeW50aGVzaXplZEVycm9yc1RvQ29uc29sZTsKKyAg
ICBib29sIG1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUgeyB0cnVlIH07CiAgICAgaW50IG1f
bnVtR0xFcnJvcnNUb0NvbnNvbGVBbGxvd2VkOwogCiAgICAgLy8gQSBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQgY2FuIGJlIGNyZWF0ZWQgaW4gYSBzdGF0ZSB3aGVyZSBpdCBhcHBlYXJzIGFzCiAgICAg
Ly8gYSB2YWxpZCBhbmQgYWN0aXZlIGNvbnRleHQsIGJ1dCB3aWxsIG5vdCBleGVjdXRlIGFueSBp
bXBvcnRhbnQgb3BlcmF0aW9ucwogICAgIC8vIHVudGlsIGl0cyBsb2FkIHBvbGljeSBpcyBjb21w
bGV0ZWx5IHJlc29sdmVkLgotICAgIGJvb2wgbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uOwot
ICAgIGJvb2wgbV9oYXNSZXF1ZXN0ZWRQb2xpY3lSZXNvbHV0aW9uOworICAgIGJvb2wgbV9pc1Bl
bmRpbmdQb2xpY3lSZXNvbHV0aW9uIHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFzUmVxdWVzdGVk
UG9saWN5UmVzb2x1dGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBpc0NvbnRleHRMb3N0T3JQZW5k
aW5nKCk7CiAKICAgICAvLyBFbmFibGVkIGV4dGVuc2lvbiBvYmplY3RzLiBGSVhNRTogTW92ZSB0
aGVzZSB0byBXZWJHTDFSZW5kZXJpbmdDb250ZXh0LCBub3QgbmVlZGVkIGZvciBXZWJHTDIKQEAg
LTU2OSwxNCArNTYzLDE0IEBAIHByb3RlY3RlZDoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QU5HTEVJ
bnN0YW5jZWRBcnJheXM+IG1fYW5nbGVJbnN0YW5jZWRBcnJheXM7CiAKICAgICAvLyBIZWxwZXJz
IGZvciBnZXRQYXJhbWV0ZXIgYW5kIG90aGVycwotICAgIFdlYkdMR2V0SW5mbyBnZXRCb29sZWFu
UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0Qm9vbGVhbkFycmF5UGFy
YW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0RmxvYXRQYXJhbWV0ZXIoR0Mz
RGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRJbnRQYXJhbWV0ZXIoR0MzRGVudW0pOwotICAg
IFdlYkdMR2V0SW5mbyBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihHQzNEZW51bSk7Ci0gICAgV2Vi
R0xHZXRJbmZvIGdldEludDY0UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8g
Z2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8g
Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgV2ViR0xBbnkgZ2V0Qm9v
bGVhblBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgV2ViR0xBbnkgZ2V0Qm9vbGVhbkFycmF5UGFy
YW1ldGVyKEdDM0RlbnVtKTsKKyAgICBXZWJHTEFueSBnZXRGbG9hdFBhcmFtZXRlcihHQzNEZW51
bSk7CisgICAgV2ViR0xBbnkgZ2V0SW50UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBXZWJHTEFu
eSBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgV2ViR0xBbnkgZ2V0SW50
NjRQYXJhbWV0ZXIoR0MzRGVudW0pOworICAgIFdlYkdMQW55IGdldFdlYkdMRmxvYXRBcnJheVBh
cmFtZXRlcihHQzNEZW51bSk7CisgICAgV2ViR0xBbnkgZ2V0V2ViR0xJbnRBcnJheVBhcmFtZXRl
cihHQzNEZW51bSk7CiAKICAgICAvLyBDbGVhciB0aGUgYmFja2J1ZmZlciBpZiBpdCB3YXMgY29t
cG9zaXRlZCBzaW5jZSB0aGUgbGFzdCBvcGVyYXRpb24uCiAgICAgLy8gY2xlYXJNYXNrIGlzIHNl
dCB0byB0aGUgYml0ZmllbGQgb2YgYW55IGNsZWFyIHRoYXQgd291bGQgaGFwcGVuIGFueXdheSBh
dCB0aGlzIHRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
U2hhcmVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVk
T2JqZWN0LmNwcAppbmRleCAzNmRjMTVkM2EwZTdlNWY2YTk3MDYxZTRjM2JkM2MyNDFjMWI4NGU5
Li45MzA1NTk3ZDEyZTRlYTZiZGRlNjdhOWJlNTUxNTM2MTQzNzdkZjk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCkBAIC00MywyMiAr
NDMsMjIgQEAgV2ViR0xTaGFyZWRPYmplY3Q6OldlYkdMU2hhcmVkT2JqZWN0KFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiBXZWJHTFNoYXJlZE9iamVjdDo6fldlYkdMU2hhcmVk
T2JqZWN0KCkKIHsKICAgICBpZiAobV9jb250ZXh0R3JvdXApCi0gICAgICAgIG1fY29udGV4dEdy
b3VwLT5yZW1vdmVPYmplY3QodGhpcyk7CisgICAgICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVP
YmplY3QoKnRoaXMpOwogfQogCiB2b2lkIFdlYkdMU2hhcmVkT2JqZWN0OjpkZXRhY2hDb250ZXh0
R3JvdXAoKQogewogICAgIGRldGFjaCgpOwogICAgIGlmIChtX2NvbnRleHRHcm91cCkgewotICAg
ICAgICBkZWxldGVPYmplY3QoMCk7Ci0gICAgICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVPYmpl
Y3QodGhpcyk7Ci0gICAgICAgIG1fY29udGV4dEdyb3VwID0gMDsKKyAgICAgICAgZGVsZXRlT2Jq
ZWN0KG51bGxwdHIpOworICAgICAgICBtX2NvbnRleHRHcm91cC0+cmVtb3ZlT2JqZWN0KCp0aGlz
KTsKKyAgICAgICAgbV9jb250ZXh0R3JvdXAgPSBudWxscHRyOwogICAgIH0KIH0KIAogR3JhcGhp
Y3NDb250ZXh0M0QqIFdlYkdMU2hhcmVkT2JqZWN0OjpnZXRBR3JhcGhpY3NDb250ZXh0M0QoKSBj
b25zdAogewotICAgIHJldHVybiBtX2NvbnRleHRHcm91cCA/IG1fY29udGV4dEdyb3VwLT5nZXRB
R3JhcGhpY3NDb250ZXh0M0QoKSA6IDA7CisgICAgcmV0dXJuIG1fY29udGV4dEdyb3VwID8gJm1f
Y29udGV4dEdyb3VwLT5nZXRBR3JhcGhpY3NDb250ZXh0M0QoKSA6IG51bGxwdHI7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oCmluZGV4
IGFiZTQ4MDMzMzcyYzk1NmNjNzEzMGViN2Y3YmZmZmRjZDFhOWY1N2IuLjAxMDhiOTQyMTFjZTVh
MzFjNjk2NmY1MzQwZGQ5NTQxNGQyYTMwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaApAQCAtNDksNyArNDksNiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzU2hhZGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNTeW5jKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNUZXh0dXJlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wg
aXNUcmFuc2Zvcm1GZWVkYmFjaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGlzVmVydGV4QXJyYXlPYmplY3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAg
ICAgYm9vbCB2YWxpZGF0ZShjb25zdCBXZWJHTENvbnRleHRHcm91cCogY29udGV4dEdyb3VwLCBj
b25zdCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJikgY29uc3Qgb3ZlcnJpZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaAppbmRl
eCA2OWNmOGU3YmI1NDE4ZWFhOWU0NTY5MjExNDA4ZjQ3NmIyNmE2Nzg2Li45Y2NmMDNiOGRlYjZh
YjZlOWEwZGNjNmJlNzU1M2IxMTFkMzQ1NDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCkBAIC0zOSw5ICszOSw2IEBAIHBy
b3RlY3RlZDoKICAgICBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UmKTsKIAogICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCos
IFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIGJvb2wgaXNUcmFu
c2Zvcm1GZWVkYmFjaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKaW5kZXggN2ZhNjljOWE0OTRkYmVlYTlkYmVi
Zjg5ZTg1ZjQzZjljZmQwMjg0OS4uMTU4ZmZkZjg2YmJiMTgwNjhiOGU0ZjE0MjZhMzVlNDk2MzEw
NGMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdC5jcHAKQEAgLTMzLDIzICszMywyMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgCi1SZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4gV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdDo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwgVkFPVHlwZSB0eXBl
KQorUmVmPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNy
ZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIFR5cGUgdHlwZSkKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTFZlcnRleEFycmF5T2JqZWN0KGN0eCwgdHlwZSkpOwog
fQogCiBXZWJHTFZlcnRleEFycmF5T2JqZWN0Ojp+V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCgpCiB7
Ci0gICAgZGVsZXRlT2JqZWN0KDApOworICAgIGRlbGV0ZU9iamVjdChudWxscHRyKTsKIH0KIAot
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdChXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlJiBjdHgsIFZBT1R5cGUgdHlwZSkKK1dlYkdMVmVydGV4QXJyYXlPYmpl
Y3Q6OldlYkdMVmVydGV4QXJyYXlPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4
LCBUeXBlIHR5cGUpCiAgICAgOiBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShjdHgsIHR5cGUp
CiB7CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVEZWZhdWx0OgorICAg
IGNhc2UgVHlwZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKKyAgICBj
YXNlIFR5cGU6OlVzZXI6CiAgICAgICAgIHNldE9iamVjdChjb250ZXh0KCktPmdyYXBoaWNzQ29u
dGV4dDNEKCktPmNyZWF0ZVZlcnRleEFycmF5KCkpOwogICAgICAgICBicmVhazsKICAgICB9CkBA
IC01OCw5ICs1OCw5IEBAIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OldlYkdMVmVydGV4QXJyYXlP
YmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWCiB2b2lkIFdlYkdMVmVydGV4
QXJyYXlPYmplY3Q6OmRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQz
ZCwgUGxhdGZvcm0zRE9iamVjdCBvYmplY3QpCiB7CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKLSAg
ICBjYXNlIFZBT1R5cGVEZWZhdWx0OgorICAgIGNhc2UgVHlwZTo6RGVmYXVsdDoKICAgICAgICAg
YnJlYWs7Ci0gICAgZGVmYXVsdDoKKyAgICBjYXNlIFR5cGU6OlVzZXI6CiAgICAgICAgIGNvbnRl
eHQzZC0+ZGVsZXRlVmVydGV4QXJyYXkob2JqZWN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dC5oCmluZGV4IDViNDljNzA4YTQ2MjU0ZGU1OTBlMWMwNmRjYzk4NjJhNjY0YzMxNDIuLjliMzFm
MDE2MzE0OGFhNjBkYjM2OGVlNTcwNTJjZDQ1ZDJhN2U5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmgKQEAgLTI3LDggKzI3
LDYgQEAKIAogI2lmIEVOQUJMRShXRUJHTDIpCiAKLSNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgot
I2luY2x1ZGUgIldlYkdMQ29udGV4dE9iamVjdC5oIgogI2luY2x1ZGUgIldlYkdMVmVydGV4QXJy
YXlPYmplY3RCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM3LDEyICszNSwxMSBA
QCBjbGFzcyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OwogCiBjbGFzcyBXZWJHTFZlcnRleEFycmF5
T2JqZWN0IGZpbmFsIDogcHVibGljIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IGNyZWF0ZShXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJiwgVkFPVHlwZSk7CisgICAgc3RhdGljIFJlZjxXZWJHTFZlcnRl
eEFycmF5T2JqZWN0PiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFR5cGUpOwog
ICAgIHZpcnR1YWwgfldlYkdMVmVydGV4QXJyYXlPYmplY3QoKTsKIHByaXZhdGU6Ci0gICAgV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVkFPVHlwZSk7
Ci0gICAgYm9vbCBpc1RyYW5zZm9ybUZlZWRiYWNrKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQot
ICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RP
YmplY3QpIG92ZXJyaWRlOworICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3QoV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYsIFR5cGUpOworICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGlj
c0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCmluZGV4IDY5NjQ5YzYyZjZlMWRiZWYyZjllZGE2
MTdjNDI0MjRkZjczZjE3NWYuLmUxYWZiYjJhZGJjYjY3MTRhYmQ0MDYxM2IzOThiZTdjNGNiNGJj
MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJy
YXlPYmplY3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZS5jcHAKQEAgLTI0LDI0ICsyNCwyMiBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oIgog
CiAjaWYgRU5BQkxFKFdFQkdMKQotI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNl
LmgiCiAKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OldlYkdMVmVydGV4QXJy
YXlPYmplY3RCYXNlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwgVkFPVHlwZSB0eXBl
KQotICAgIDogV2ViR0xDb250ZXh0T2JqZWN0KGN0eCkKK1dlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
JiBjb250ZXh0LCBUeXBlIHR5cGUpCisgICAgOiBXZWJHTENvbnRleHRPYmplY3QoY29udGV4dCkK
ICAgICAsIG1fdHlwZSh0eXBlKQotICAgICwgbV9oYXNFdmVyQmVlbkJvdW5kKGZhbHNlKQotICAg
ICwgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlcigwKQogewotICAgIG1fdmVydGV4QXR0cmliU3Rh
dGUucmVzaXplKGN0eC5nZXRNYXhWZXJ0ZXhBdHRyaWJzKCkpOworICAgIG1fdmVydGV4QXR0cmli
U3RhdGUucmVzaXplKGNvbnRleHQuZ2V0TWF4VmVydGV4QXR0cmlicygpKTsKIH0KIAotdm9pZCBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0RWxlbWVudEFycmF5QnVmZmVyKFBhc3NSZWZQ
dHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKK3ZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6
OnNldEVsZW1lbnRBcnJheUJ1ZmZlcihXZWJHTEJ1ZmZlciogYnVmZmVyKQogewogICAgIGlmIChi
dWZmZXIpCiAgICAgICAgIGJ1ZmZlci0+b25BdHRhY2hlZCgpOwpAQCAtNTEsMTggKzQ5LDE3IEBA
IHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldEVsZW1lbnRBcnJheUJ1ZmZlcihQ
YXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBiCiAgICAgCiB9CiAKLXZvaWQgV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1aW50IGluZGV4LCBHQzNEc2l6
ZWkgYnl0ZXNQZXJFbGVtZW50LCBHQzNEaW50IHNpemUsIEdDM0RlbnVtIHR5cGUsIEdDM0Rib29s
ZWFuIG5vcm1hbGl6ZWQsIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIgb2Zmc2V0LCBQYXNz
UmVmUHRyPFdlYkdMQnVmZmVyPiBidWZmZXIpCit2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlOjpzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShHQzNEdWludCBpbmRleCwgR0MzRHNpemVpIGJ5dGVz
UGVyRWxlbWVudCwgR0MzRGludCBzaXplLCBHQzNEZW51bSB0eXBlLCBHQzNEYm9vbGVhbiBub3Jt
YWxpemVkLCBHQzNEc2l6ZWkgc3RyaWRlLCBHQzNEaW50cHRyIG9mZnNldCwgV2ViR0xCdWZmZXIm
IGJ1ZmZlcikKIHsKICAgICBHQzNEc2l6ZWkgdmFsaWRhdGVkU3RyaWRlID0gc3RyaWRlID8gc3Ry
aWRlIDogYnl0ZXNQZXJFbGVtZW50OwogICAgIAotICAgIFZlcnRleEF0dHJpYlN0YXRlJiBzdGF0
ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOworICAgIGF1dG8mIHN0YXRlID0gbV92ZXJ0
ZXhBdHRyaWJTdGF0ZVtpbmRleF07CiAgICAgCi0gICAgaWYgKGJ1ZmZlcikKLSAgICAgICAgYnVm
ZmVyLT5vbkF0dGFjaGVkKCk7CisgICAgYnVmZmVyLm9uQXR0YWNoZWQoKTsKICAgICBpZiAoc3Rh
dGUuYnVmZmVyQmluZGluZykKICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZy0+b25EZXRhY2hl
ZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOwogICAgIAotICAgIHN0YXRlLmJ1ZmZl
ckJpbmRpbmcgPSBidWZmZXI7CisgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9ICZidWZmZXI7CiAg
ICAgc3RhdGUuYnl0ZXNQZXJFbGVtZW50ID0gYnl0ZXNQZXJFbGVtZW50OwogICAgIHN0YXRlLnNp
emUgPSBzaXplOwogICAgIHN0YXRlLnR5cGUgPSB0eXBlOwpAQCAtNzIsMTcgKzY5LDE3IEBAIHZv
aWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1
aW50IGluZGV4LCBHQzNEc2l6ZWkKICAgICBzdGF0ZS5vZmZzZXQgPSBvZmZzZXQ7CiB9CiAKLXZv
aWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZlcihQYXNzUmVmUHRyPFdl
YkdMQnVmZmVyPiBidWZmZXIpCit2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJp
bmRCdWZmZXIoV2ViR0xCdWZmZXImIGJ1ZmZlcikKIHsKLSAgICBpZiAobV9ib3VuZEVsZW1lbnRB
cnJheUJ1ZmZlciA9PSBidWZmZXIpIHsKKyAgICBpZiAobV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZl
ciA9PSAmYnVmZmVyKSB7CiAgICAgICAgIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXItPm9uRGV0
YWNoZWQoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpKTsKICAgICAgICAgbV9ib3VuZEVs
ZW1lbnRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCk7ICsraSkgewotICAgICAgICBW
ZXJ0ZXhBdHRyaWJTdGF0ZSYgc3RhdGUgPSBtX3ZlcnRleEF0dHJpYlN0YXRlW2ldOwotICAgICAg
ICBpZiAoc3RhdGUuYnVmZmVyQmluZGluZyA9PSBidWZmZXIpIHsKLSAgICAgICAgICAgIGJ1ZmZl
ci0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgICAgICBh
dXRvJiBzdGF0ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaV07CisgICAgICAgIGlmIChzdGF0ZS5i
dWZmZXJCaW5kaW5nID09ICZidWZmZXIpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5vbkRldGFjaGVk
KGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKSk7CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGlmICghaSAmJiAhY29udGV4dCgpLT5pc0dMRVMyQ29tcGxpYW50KCkpIHsKICAgICAgICAg
ICAgICAgICBzdGF0ZS5idWZmZXJCaW5kaW5nID0gY29udGV4dCgpLT5tX3ZlcnRleEF0dHJpYjBC
dWZmZXI7CkBAIC0xMDIsOCArOTksNyBAQCB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNl
Ojp1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVmZmVyKQogCiB2b2lkIFdl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJEaXZpc29yKEdDM0R1aW50
IGluZGV4LCBHQzNEdWludCBkaXZpc29yKQogewotICAgIFZlcnRleEF0dHJpYlN0YXRlJiBzdGF0
ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOwotICAgIHN0YXRlLmRpdmlzb3IgPSBkaXZp
c29yOworICAgIG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdLmRpdmlzb3IgPSBkaXZpc29yOwog
fQogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlLmgKaW5kZXggMjkwYWI4ZDNkNzBmMzM3YTg2MzVhMjMxNjI3
NmQ5MWRjNDNkNGFhOS4uMDBiZTVmYmVmYjFjY2VjM2Y0YTE3MWJiNDQzYmU2ZTI2ZGFmNjllOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFy
cmF5T2JqZWN0QmFzZS5oCkBAIC0zMiw2NSArMzIsNDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSA6IHB1YmxpYyBXZWJHTENvbnRleHRP
YmplY3QgewogcHVibGljOgotICAgIGVudW0gVkFPVHlwZSB7Ci0gICAgICAgIFZBT1R5cGVEZWZh
dWx0LAotICAgICAgICBWQU9UeXBlVXNlciwKLSAgICB9OwotICAgIAotICAgIHZpcnR1YWwgfldl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKCkgeyB9CisgICAgZW51bSBjbGFzcyBUeXBlIHsgRGVm
YXVsdCwgVXNlciB9OwogCiAgICAgLy8gQ2FjaGVkIHZhbHVlcyBmb3IgdmVydGV4IGF0dHJpYiBy
YW5nZSBjaGVja3MKICAgICBzdHJ1Y3QgVmVydGV4QXR0cmliU3RhdGUgewotICAgICAgICBWZXJ0
ZXhBdHRyaWJTdGF0ZSgpCi0gICAgICAgICAgICA6IGVuYWJsZWQoZmFsc2UpCi0gICAgICAgICAg
ICAsIGJ5dGVzUGVyRWxlbWVudCgwKQotICAgICAgICAgICAgLCBzaXplKDQpCi0gICAgICAgICAg
ICAsIHR5cGUoR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUKQotICAgICAgICAgICAgLCBub3JtYWxp
emVkKGZhbHNlKQotICAgICAgICAgICAgLCBzdHJpZGUoMTYpCi0gICAgICAgICAgICAsIG9yaWdp
bmFsU3RyaWRlKDApCi0gICAgICAgICAgICAsIG9mZnNldCgwKQotICAgICAgICAgICAgLCBkaXZp
c29yKDApCi0gICAgICAgIHsKLSAgICAgICAgfQotICAgICAgICAKICAgICAgICAgYm9vbCBpc0Jv
dW5kKCkgY29uc3QgeyByZXR1cm4gYnVmZmVyQmluZGluZyAmJiBidWZmZXJCaW5kaW5nLT5vYmpl
Y3QoKTsgfQogICAgICAgICBib29sIHZhbGlkYXRlQmluZGluZygpIGNvbnN0IHsgcmV0dXJuICFl
bmFibGVkIHx8IGlzQm91bmQoKTsgfQogICAgICAgICAKLSAgICAgICAgYm9vbCBlbmFibGVkOwor
ICAgICAgICBib29sIGVuYWJsZWQgeyBmYWxzZSB9OwogICAgICAgICBSZWZQdHI8V2ViR0xCdWZm
ZXI+IGJ1ZmZlckJpbmRpbmc7Ci0gICAgICAgIEdDM0RzaXplaSBieXRlc1BlckVsZW1lbnQ7Ci0g
ICAgICAgIEdDM0RpbnQgc2l6ZTsKLSAgICAgICAgR0MzRGVudW0gdHlwZTsKLSAgICAgICAgYm9v
bCBub3JtYWxpemVkOwotICAgICAgICBHQzNEc2l6ZWkgc3RyaWRlOwotICAgICAgICBHQzNEc2l6
ZWkgb3JpZ2luYWxTdHJpZGU7Ci0gICAgICAgIEdDM0RpbnRwdHIgb2Zmc2V0OwotICAgICAgICBH
QzNEdWludCBkaXZpc29yOworICAgICAgICBHQzNEc2l6ZWkgYnl0ZXNQZXJFbGVtZW50IHsgMCB9
OworICAgICAgICBHQzNEaW50IHNpemUgeyA0IH07CisgICAgICAgIEdDM0RlbnVtIHR5cGUgeyBH
cmFwaGljc0NvbnRleHQzRDo6RkxPQVQgfTsKKyAgICAgICAgYm9vbCBub3JtYWxpemVkIHsgZmFs
c2UgfTsKKyAgICAgICAgR0MzRHNpemVpIHN0cmlkZSB7IDE2IH07CisgICAgICAgIEdDM0RzaXpl
aSBvcmlnaW5hbFN0cmlkZSB7IDAgfTsKKyAgICAgICAgR0MzRGludHB0ciBvZmZzZXQgeyAwIH07
CisgICAgICAgIEdDM0R1aW50IGRpdmlzb3IgeyAwIH07CiAgICAgfTsKLSAgICAKLSAgICBib29s
IGlzRGVmYXVsdE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBWQU9UeXBlRGVmYXVs
dDsgfQotICAgIAorCisgICAgYm9vbCBpc0RlZmF1bHRPYmplY3QoKSBjb25zdCB7IHJldHVybiBt
X3R5cGUgPT0gVHlwZTo6RGVmYXVsdDsgfQorCiAgICAgYm9vbCBoYXNFdmVyQmVlbkJvdW5kKCkg
Y29uc3QgeyByZXR1cm4gb2JqZWN0KCkgJiYgbV9oYXNFdmVyQmVlbkJvdW5kOyB9CiAgICAgdm9p
ZCBzZXRIYXNFdmVyQmVlbkJvdW5kKCkgeyBtX2hhc0V2ZXJCZWVuQm91bmQgPSB0cnVlOyB9Ci0g
ICAgCi0gICAgUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gZ2V0RWxlbWVudEFycmF5QnVmZmVyKCkg
Y29uc3QgeyByZXR1cm4gbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlcjsgfQotICAgIHZvaWQgc2V0
RWxlbWVudEFycmF5QnVmZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+KTsKLSAgICAKKworICAg
IFdlYkdMQnVmZmVyKiBnZXRFbGVtZW50QXJyYXlCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2Jv
dW5kRWxlbWVudEFycmF5QnVmZmVyLmdldCgpOyB9CisgICAgdm9pZCBzZXRFbGVtZW50QXJyYXlC
dWZmZXIoV2ViR0xCdWZmZXIqKTsKKwogICAgIFZlcnRleEF0dHJpYlN0YXRlJiBnZXRWZXJ0ZXhB
dHRyaWJTdGF0ZShpbnQgaW5kZXgpIHsgcmV0dXJuIG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhd
OyB9Ci0gICAgdm9pZCBzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShHQzNEdWludCwgR0MzRHNpemVpLCBH
QzNEaW50LCBHQzNEZW51bSwgR0MzRGJvb2xlYW4sIEdDM0RzaXplaSwgR0MzRGludHB0ciwgUGFz
c1JlZlB0cjxXZWJHTEJ1ZmZlcj4pOwotICAgIHZvaWQgdW5iaW5kQnVmZmVyKFBhc3NSZWZQdHI8
V2ViR0xCdWZmZXI+KTsKLSAgICAKKyAgICB2b2lkIHNldFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1
aW50LCBHQzNEc2l6ZWksIEdDM0RpbnQsIEdDM0RlbnVtLCBHQzNEYm9vbGVhbiwgR0MzRHNpemVp
LCBHQzNEaW50cHRyLCBXZWJHTEJ1ZmZlciYpOworICAgIHZvaWQgdW5iaW5kQnVmZmVyKFdlYkdM
QnVmZmVyJik7CisKICAgICB2b2lkIHNldFZlcnRleEF0dHJpYkRpdmlzb3IoR0MzRHVpbnQgaW5k
ZXgsIEdDM0R1aW50IGRpdmlzb3IpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdEJhc2UoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFZBT1R5cGUpOworICAgIFdl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBl
KTsKICAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9y
bTNET2JqZWN0KSBvdmVycmlkZSA9IDA7Ci0gICAgCi0gICAgVkFPVHlwZSBtX3R5cGU7Ci0gICAg
Ym9vbCBtX2hhc0V2ZXJCZWVuQm91bmQ7CisKKyAgICBUeXBlIG1fdHlwZTsKKyAgICBib29sIG1f
aGFzRXZlckJlZW5Cb3VuZCB7IGZhbHNlIH07CiAgICAgUmVmUHRyPFdlYkdMQnVmZmVyPiBtX2Jv
dW5kRWxlbWVudEFycmF5QnVmZmVyOwogICAgIFZlY3RvcjxWZXJ0ZXhBdHRyaWJTdGF0ZT4gbV92
ZXJ0ZXhBdHRyaWJTdGF0ZTsKIH07Ci0gICAgCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmpl
Y3RPRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUy5jcHAKaW5kZXggNWYzYjY1NTdhNzBiNWNiODQyYzBjMmVhNzc4MTc4YWZhNjRjMDFm
Zi4uYWY1NTY1Y2Q5NDQ0MjRiNTNiODM1N2RiMmMwMTkwYmUxY2U1YjQ2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9F
Uy5jcHAKQEAgLTM0LDM3ICszNCwzNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVh
dGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWQU9UeXBlIHR5cGUpCitSZWY8V2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRl
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIFR5cGUgdHlwZSkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKGN0eCwgdHlwZSkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoY29u
dGV4dCwgdHlwZSkpOwogfQogCi1XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwgVkFPVHlwZSB0
eXBlKQotICAgIDogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoY3R4LCB0eXBlKQorV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUzo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyhXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBUeXBlIHR5cGUpCisgICAgOiBXZWJHTFZlcnRleEFy
cmF5T2JqZWN0QmFzZShjb250ZXh0LCB0eXBlKQogewotICAgIEV4dGVuc2lvbnMzRCYgZXh0ZW5z
aW9ucyA9IGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9ucygpOwot
ICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBWQU9UeXBlRGVmYXVsdDoKKyAgICBzd2l0
Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFR5cGU6OkRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwotICAg
IGRlZmF1bHQ6Ci0gICAgICAgIHNldE9iamVjdChleHRlbnNpb25zLmNyZWF0ZVZlcnRleEFycmF5
T0VTKCkpOworICAgIGNhc2UgVHlwZTo6VXNlcjoKKyAgICAgICAgc2V0T2JqZWN0KHRoaXMtPmNv
bnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9ucygpLmNyZWF0ZVZlcnRl
eEFycmF5T0VTKCkpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIFdlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVM6On5XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKCkKIHsKLSAgICBkZWxldGVP
YmplY3QoMCk7CisgICAgZGVsZXRlT2JqZWN0KG51bGxwdHIpOwogfQogCiB2b2lkIFdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVM6OmRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqIGNv
bnRleHQzZCwgUGxhdGZvcm0zRE9iamVjdCBvYmplY3QpCiB7Ci0gICAgRXh0ZW5zaW9uczNEJiBl
eHRlbnNpb25zID0gY29udGV4dDNkLT5nZXRFeHRlbnNpb25zKCk7CiAgICAgc3dpdGNoIChtX3R5
cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVEZWZhdWx0OgorICAgIGNhc2UgVHlwZTo6RGVmYXVsdDoK
ICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgZXh0ZW5zaW9ucy5kZWxldGVW
ZXJ0ZXhBcnJheU9FUyhvYmplY3QpOworICAgIGNhc2UgVHlwZTo6VXNlcjoKKyAgICAgICAgY29u
dGV4dDNkLT5nZXRFeHRlbnNpb25zKCkuZGVsZXRlVmVydGV4QXJyYXlPRVMob2JqZWN0KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgKaW5kZXggZDA4ZDIyM2UzNTcwNjY5NGU5
MWNhZTZhY2RjOGM0YmNhOWYxNjdlOS4uZjlhMmE1OGVjMjc0N2MyZDUwNjMwYjViNmY2Y2ZmMDVh
NjM2MGM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
VmVydGV4QXJyYXlPYmplY3RPRVMuaApAQCAtMjUsMTkgKzI1LDE3IEBACiAKICNwcmFnbWEgb25j
ZQogCi0jaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKLSNpbmNsdWRlICJXZWJHTENvbnRleHRPYmpl
Y3QuaCIKICNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMgZmluYWwgOiBw
dWJsaWMgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UmLCBWQU9UeXBlKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdMVmVydGV4QXJyYXlPYmplY3RP
RVM+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVHlwZSk7CiAgICAgdmlydHVh
bCB+V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygpOwogcHJpdmF0ZToKLSAgICBXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBWQU9UeXBlKTsKLSAg
ICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2Jq
ZWN0KSBvdmVycmlkZTsKKyAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UmLCBUeXBlKTsKKyAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhp
Y3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmlsZUlj
b25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5j
cHAKaW5kZXggOWJjZDQ3Zjc3OWUwNTFmYWE0MDU5MGM3OTNmYjIzZmM1MWIyZGUxZS4uNmM3M2Uz
MWFhZWY5ZTg2MDQ0OWE5OThjOGVlNzllNTU1Mzg0MDQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5jcHAKQEAgLTM3LDEzICszNywxMyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiB2b2lkIEZpbGVJY29uTG9hZGVyOjppbnZhbGlkYXRlKCkKIHsKICAgICBB
U1NFUlQobV9jbGllbnQpOwotICAgIG1fY2xpZW50ID0gMDsKKyAgICBtX2NsaWVudCA9IG51bGxw
dHI7CiB9CiAKLXZvaWQgRmlsZUljb25Mb2FkZXI6Om5vdGlmeUZpbmlzaGVkKFBhc3NSZWZQdHI8
SWNvbj4gaWNvbikKK3ZvaWQgRmlsZUljb25Mb2FkZXI6Omljb25Mb2FkZWQoUmVmUHRyPEljb24+
JiYgaWNvbikKIHsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT51cGRhdGVS
ZW5kZXJpbmcoaWNvbik7CisgICAgICAgIG1fY2xpZW50LT5pY29uTG9hZGVkKFdURk1vdmUoaWNv
bikpOwogfQogCiBGaWxlSWNvbkxvYWRlcjo6RmlsZUljb25Mb2FkZXIoRmlsZUljb25Mb2FkZXJD
bGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmls
ZUljb25Mb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIu
aAppbmRleCAzNTMxM2RlM2EyODUzNjBkOTg2N2I4MmE1YWFjYmMwN2QwNWU3YmQ1Li4zMzY1MjM4
YWNlZjdkOWNiNzk2M2VjZDliMmFlOTdkZjlhYjRiZTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5oCkBAIC0zNCwxMyArMzQsMTIgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBGaWxlSWNvbkxvYWRlcjsKIGNsYXNzIEljb247CiAKIGNsYXNz
IEZpbGVJY29uTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5GaWxlSWNvbkxv
YWRlckNsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZW5kZXJpbmcoUGFzc1Jl
ZlB0cjxJY29uPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBpY29uTG9hZGVkKFJlZlB0cjxJY29u
PiYmKSA9IDA7CiB9OwogCiBjbGFzcyBGaWxlSWNvbkxvYWRlciB7CkBAIC00OCw3ICs0Nyw3IEBA
IHB1YmxpYzoKICAgICBleHBsaWNpdCBGaWxlSWNvbkxvYWRlcihGaWxlSWNvbkxvYWRlckNsaWVu
dCYpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBu
b3RpZnlGaW5pc2hlZChQYXNzUmVmUHRyPEljb24+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGljb25Mb2FkZWQoUmVmUHRyPEljb24+JiYpOwogCiBwcml2YXRlOgogICAgIEZpbGVJY29uTG9h
ZGVyQ2xpZW50KiBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRleCA0NjdhMTM0ZDM2YmE1M2E3MmJjMmQ3MGEy
ZWI5NzY4MWViOGY5M2ZiLi5mYjBlMTU1YjkwOTJhNzcxNWVmNjQyMjgzZGE2MjdlNTg1MGU5NjI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9u
U2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlv
blNpdGUuY3BwCkBAIC0xNzQsNyArMTc0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGV4ZWN1dGVU
YXNrKEhUTUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYgdGFzaykKIAogdm9pZCBIVE1MQ29uc3RydWN0
aW9uU2l0ZTo6YXR0YWNoTGF0ZXIoQ29udGFpbmVyTm9kZSYgcGFyZW50LCBSZWY8Tm9kZT4mJiBj
aGlsZCwgYm9vbCBzZWxmQ2xvc2luZykKIHsKLSAgICBBU1NFUlQoc2NyaXB0aW5nQ29udGVudElz
QWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpIHx8ICFpczxFbGVtZW50PihjaGlsZC5nZXQo
KSkgfHwgIXRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZG93bmNhc3Q8RWxlbWVudD4oY2hpbGQu
cHRyKCkpKSk7CisgICAgQVNTRVJUKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJD
b250ZW50UG9saWN5KSB8fCAhaXM8RWxlbWVudD4oY2hpbGQuZ2V0KCkpIHx8ICFpc1NjcmlwdEVs
ZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4oY2hpbGQuZ2V0KCkpKSk7CiAgICAgQVNTRVJUKHBsdWdp
bkNvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSB8fCAhY2hpbGQtPmlzUGx1
Z2luRWxlbWVudCgpKTsKIAogICAgIGlmIChzaG91bGRGb3N0ZXJQYXJlbnQoKSkgewpAQCAtNTQx
LDcgKzU0MSw3IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydEZvcmVpZ25FbGVt
ZW50KEF0b21pY0hUTUxUb2tlbiYmIHRva2VuLCBjb25zdCBBCiAgICAgbm90SW1wbGVtZW50ZWQo
KTsgLy8gcGFyc2VFcnJvciB3aGVuIHhtbG5zIG9yIHhtbG5zOnhsaW5rIGFyZSB3cm9uZy4KIAog
ICAgIGF1dG8gZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQodG9rZW4sIG5hbWVzcGFjZVVSSSk7Ci0g
ICAgaWYgKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSB8
fCAhdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShlbGVtZW50LnB0cigpKSkKKyAgICBpZiAoc2Ny
aXB0aW5nQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpIHx8ICFpc1Njcmlw
dEVsZW1lbnQoZWxlbWVudC5nZXQoKSkpCiAgICAgICAgIGF0dGFjaExhdGVyKGN1cnJlbnROb2Rl
KCksIGVsZW1lbnQuY29weVJlZigpLCB0b2tlbi5zZWxmQ2xvc2luZygpKTsKICAgICBpZiAoIXRv
a2VuLnNlbGZDbG9zaW5nKCkpCiAgICAgICAgIG1fb3BlbkVsZW1lbnRzLnB1c2goSFRNTFN0YWNr
SXRlbTo6Y3JlYXRlKFdURk1vdmUoZWxlbWVudCksIFdURk1vdmUodG9rZW4pLCBuYW1lc3BhY2VV
UkkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVu
dFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJz
ZXIuY3BwCmluZGV4IGFjZWEwYWFhZDJjZGY0ODE3YTY1ZTdhZjlkN2M5ZmQzNTdkZmMzMzcuLjdl
MzAyMzhkMzVkN2ZkNmE1ZmQ2N2Q3ZGQwMDEyMGIzMDAzNzY2MjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMSw2ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSFRNTFVua25vd25FbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAi
U2NyaXB0RWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTIwNSw3ICsyMDYs
NyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVCdWls
ZGVyKCkKICAgICAgICAgQVNTRVJUKCFtX3RyZWVCdWlsZGVyLT5oYXNQYXJzZXJCbG9ja2luZ1Nj
cmlwdFdvcmsoKSk7CiAgICAgICAgIC8vIFdlIHdpbGwgbm90IGhhdmUgYSBzY3JpcHRSdW5uZXIg
d2hlbiBwYXJzaW5nIGEgRG9jdW1lbnRGcmFnbWVudC4KICAgICAgICAgaWYgKG1fc2NyaXB0UnVu
bmVyKQotICAgICAgICAgICAgbV9zY3JpcHRSdW5uZXItPmV4ZWN1dGUoV1RGTW92ZShzY3JpcHRF
bGVtZW50KSwgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgICAgICAgICBtX3NjcmlwdFJ1bm5l
ci0+ZXhlY3V0ZShzY3JpcHRFbGVtZW50LnJlbGVhc2VOb25OdWxsKCksIHNjcmlwdFN0YXJ0UG9z
aXRpb24pOwogICAgIH0KIH0KIApAQCAtNTAwLDcgKzUwMSw3IEBAIHZvaWQgSFRNTERvY3VtZW50
UGFyc2VyOjp3YXRjaEZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1NjcmlwdCkKICAgICAv
LyBzZXRDbGllbnQgd291bGQgY2FsbCBub3RpZnlGaW5pc2hlZCBpZiB0aGUgbG9hZCB3ZXJlIGNv
bXBsZXRlLgogICAgIC8vIENhbGxlcnMgZG8gbm90IGV4cGVjdCB0byBiZSByZS1lbnRlcmVkIGZy
b20gdGhpcyBjYWxsLCBzbyB0aGV5IHNob3VsZAogICAgIC8vIG5vdCBhbiBhbHJlYWR5LWxvYWRl
ZCBQZW5kaW5nU2NyaXB0LgotICAgIHBlbmRpbmdTY3JpcHQuc2V0Q2xpZW50KHRoaXMpOworICAg
IHBlbmRpbmdTY3JpcHQuc2V0Q2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBIVE1MRG9jdW1lbnRQ
YXJzZXI6OnN0b3BXYXRjaGluZ0ZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1NjcmlwdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKaW5k
ZXggYzI1NmI0Mjk1NmNlNDgxMWE5NGYwY2IzNGI4ZWQ3MjU3MjVlOGY1NC4uMWM4YzE2YzM3ZTU4
YjY2MTIxMTljMDU5NTA5MzY4NWMzZWNlNDcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKQEAgLTk5LDI5ICs5OSwyOCBAQCBib29sIEhU
TUxTY3JpcHRSdW5uZXI6OmlzUGVuZGluZ1NjcmlwdFJlYWR5KGNvbnN0IFBlbmRpbmdTY3JpcHQm
IHNjcmlwdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpl
eGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0KCkKK2lubGluZSB2b2lkIEhUTUxTY3JpcHRSdW5u
ZXI6OmV4ZWN1dGVQYXJzaW5nQmxvY2tpbmdTY3JpcHQoKQogewotICAgIEFTU0VSVChtX2RvY3Vt
ZW50KTsKLSAgICBBU1NFUlQoIWlzRXhlY3V0aW5nU2NyaXB0KCkpOwotICAgIEFTU0VSVChtX2Rv
Y3VtZW50LT5oYXZlU3R5bGVzaGVldHNMb2FkZWQoKSk7CisgICAgQVNTRVJUKG1fcGFyc2VyQmxv
Y2tpbmdTY3JpcHQpOwogICAgIEFTU0VSVChpc1BlbmRpbmdTY3JpcHRSZWFkeSgqbV9wYXJzZXJC
bG9ja2luZ1NjcmlwdCkpOworICAgIEFTU0VSVCghaXNFeGVjdXRpbmdTY3JpcHQoKSk7CiAKICAg
ICBJbnNlcnRpb25Qb2ludFJlY29yZCBpbnNlcnRpb25Qb2ludFJlY29yZChtX2hvc3QuaW5wdXRT
dHJlYW0oKSk7Ci0gICAgZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRjaEV2ZW50KFdURk1v
dmUobV9wYXJzZXJCbG9ja2luZ1NjcmlwdCkpOworICAgIGV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5k
RGlzcGF0Y2hFdmVudChtX3BhcnNlckJsb2NraW5nU2NyaXB0LnJlbGVhc2VOb25OdWxsKCkuZ2V0
KCkpOwogfQogCi12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5k
RGlzcGF0Y2hFdmVudChSZWZQdHI8UGVuZGluZ1NjcmlwdD4gcGVuZGluZ1NjcmlwdCkKK3ZvaWQg
SFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRjaEV2ZW50KFBl
bmRpbmdTY3JpcHQmIHBlbmRpbmdTY3JpcHQpCiB7CiAgICAgLy8gU3RvcCB3YXRjaGluZyBsb2Fk
cyBiZWZvcmUgZXhlY3V0ZVNjcmlwdCB0byBwcmV2ZW50IHJlY3Vyc2lvbiBpZiB0aGUgc2NyaXB0
IHJlbG9hZHMgaXRzZWxmLgotICAgIGlmIChwZW5kaW5nU2NyaXB0LT53YXRjaGluZ0ZvckxvYWQo
KSkKLSAgICAgICAgc3RvcFdhdGNoaW5nRm9yTG9hZCgqcGVuZGluZ1NjcmlwdCk7CisgICAgaWYg
KHBlbmRpbmdTY3JpcHQud2F0Y2hpbmdGb3JMb2FkKCkpCisgICAgICAgIHN0b3BXYXRjaGluZ0Zv
ckxvYWQocGVuZGluZ1NjcmlwdCk7CiAKICAgICBpZiAoIWlzRXhlY3V0aW5nU2NyaXB0KCkpCiAg
ICAgICAgIE1pY3JvdGFza1F1ZXVlOjptYWluVGhyZWFkUXVldWUoKS5wZXJmb3JtTWljcm90YXNr
Q2hlY2twb2ludCgpOwogCi0gICAgaWYgKGF1dG8qIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVs
ZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5nU2NyaXB0LT5lbGVtZW50KCkpKSB7CisgICAgewogICAg
ICAgICBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlciBuZXN0aW5nTGV2ZWxJbmNyZW1lbnRlcihtX3Nj
cmlwdE5lc3RpbmdMZXZlbCk7Ci0gICAgICAgIHNjcmlwdEVsZW1lbnQtPmV4ZWN1dGVQZW5kaW5n
U2NyaXB0KCpwZW5kaW5nU2NyaXB0KTsKKyAgICAgICAgcGVuZGluZ1NjcmlwdC5lbGVtZW50KCku
ZXhlY3V0ZVBlbmRpbmdTY3JpcHQocGVuZGluZ1NjcmlwdCk7CiAgICAgfQogICAgIEFTU0VSVCgh
aXNFeGVjdXRpbmdTY3JpcHQoKSk7CiB9CkBAIC0xNDAsMTUgKzEzOSwxNCBAQCB2b2lkIEhUTUxT
Y3JpcHRSdW5uZXI6OnN0b3BXYXRjaGluZ0ZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1Nj
cmlwdCkKIAogLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgbWF0Y2ggMTAuMi41LjExICJBbiBlbmQg
dGFnIHdob3NlIHRhZyBuYW1lIGlzICdzY3JpcHQnIgogLy8gU2NyaXB0IGhhbmRsaW5nIGxpdmVz
IG91dHNpZGUgdGhlIHRyZWUgYnVpbGRlciB0byBrZWVwIHRoZSBlYWNoIGNsYXNzIHNpbXBsZS4K
LXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZShQYXNzUmVmUHRyPEVsZW1lbnQ+IHNjcmlw
dEVsZW1lbnQsIGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKK3ZvaWQg
SFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZShSZWY8U2NyaXB0RWxlbWVudD4mJiBlbGVtZW50LCBj
b25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiB7Ci0gICAgQVNTRVJUKHNj
cmlwdEVsZW1lbnQpOwogICAgIC8vIEZJWE1FOiBJZiBzY3JpcHRpbmcgaXMgZGlzYWJsZWQsIGFs
d2F5cyBqdXN0IHJldHVybi4KIAogICAgIGJvb2wgaGFkUHJlbG9hZFNjYW5uZXIgPSBtX2hvc3Qu
aGFzUHJlbG9hZFNjYW5uZXIoKTsKIAogICAgIC8vIFRyeSB0byBleGVjdXRlIHRoZSBzY3JpcHQg
Z2l2ZW4gdG8gdXMuCi0gICAgcnVuU2NyaXB0KHNjcmlwdEVsZW1lbnQuZ2V0KCksIHNjcmlwdFN0
YXJ0UG9zaXRpb24pOworICAgIHJ1blNjcmlwdChlbGVtZW50LmdldCgpLCBzY3JpcHRTdGFydFBv
c2l0aW9uKTsKIAogICAgIGlmIChoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdCgpKSB7CiAgICAgICAg
IGlmIChpc0V4ZWN1dGluZ1NjcmlwdCgpKQpAQCAtMjAxLDcgKzE5OSw3IEBAIGJvb2wgSFRNTFNj
cmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9yUGFyc2luZygpCiAgICAgICAgICAg
ICB3YXRjaEZvckxvYWQobV9zY3JpcHRzVG9FeGVjdXRlQWZ0ZXJQYXJzaW5nLmZpcnN0KCkpOwog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0gICAgICAgIGV4ZWN1dGVQZW5k
aW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChtX3NjcmlwdHNUb0V4ZWN1dGVBZnRlclBhcnNpbmcu
dGFrZUZpcnN0KCkpOworICAgICAgICBleGVjdXRlUGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZl
bnQobV9zY3JpcHRzVG9FeGVjdXRlQWZ0ZXJQYXJzaW5nLnRha2VGaXJzdCgpLmdldCgpKTsKICAg
ICAgICAgLy8gRklYTUU6IFdoYXQgaXMgdGhpcyBtX2RvY3VtZW50IGNoZWNrIGZvcj8KICAgICAg
ICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjA5LDE4
ICsyMDcsMTcgQEAgYm9vbCBIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0c1dhaXRpbmdG
b3JQYXJzaW5nKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIFJlZjxQZW5kaW5nU2Ny
aXB0PiByZXF1ZXN0UGVuZGluZ1NjcmlwdChFbGVtZW50KiBzY3JpcHQpCitzdGF0aWMgUmVmPFBl
bmRpbmdTY3JpcHQ+IHJlcXVlc3RQZW5kaW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVs
ZW1lbnQpCiB7Ci0gICAgYXV0byYgc2NyaXB0RWxlbWVudCA9ICp0b1NjcmlwdEVsZW1lbnRJZlBv
c3NpYmxlKHNjcmlwdCk7CiAgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQud2lsbEJlUGFyc2VyRXhl
Y3V0ZWQoKSk7CiAgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQubG9hZGFibGVTY3JpcHQoKSk7Ci0g
ICAgcmV0dXJuIFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZSgqc2NyaXB0LCAqc2NyaXB0RWxlbWVudC5s
b2FkYWJsZVNjcmlwdCgpKTsKKyAgICByZXR1cm4gUGVuZGluZ1NjcmlwdDo6Y3JlYXRlKHNjcmlw
dEVsZW1lbnQsICpzY3JpcHRFbGVtZW50LmxvYWRhYmxlU2NyaXB0KCkpOwogfQogCi12b2lkIEhU
TUxTY3JpcHRSdW5uZXI6OnJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQoRWxlbWVudCogZWxl
bWVudCkKK3ZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6cmVxdWVzdFBhcnNpbmdCbG9ja2luZ1Njcmlw
dChTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVtZW50KQogewogICAgIEFTU0VSVCghbV9wYXJzZXJC
bG9ja2luZ1NjcmlwdCk7Ci0gICAgbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCA9IHJlcXVlc3RQZW5k
aW5nU2NyaXB0KGVsZW1lbnQpOworICAgIG1fcGFyc2VyQmxvY2tpbmdTY3JpcHQgPSByZXF1ZXN0
UGVuZGluZ1NjcmlwdChzY3JpcHRFbGVtZW50KTsKICAgICBBU1NFUlQobV9wYXJzZXJCbG9ja2lu
Z1NjcmlwdC0+bmVlZHNMb2FkaW5nKCkpOwogCiAgICAgLy8gV2Ugb25seSBjYXJlIGFib3V0IGEg
bG9hZCBjYWxsYmFjayBpZiBMb2FkYWJsZVNjcmlwdCBpcyBub3QgYWxyZWFkeQpAQCAtMjMwLDU1
ICsyMjcsNDQgQEAgdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0UGFyc2luZ0Jsb2NraW5n
U2NyaXB0KEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIHdhdGNoRm9yTG9hZCgqbV9wYXJzZXJC
bG9ja2luZ1NjcmlwdCk7CiB9CiAKLXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6cmVxdWVzdERlZmVy
cmVkU2NyaXB0KEVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJlcXVl
c3REZWZlcnJlZFNjcmlwdChTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVtZW50KQogewotICAgIGF1
dG8gcGVuZGluZ1NjcmlwdCA9IHJlcXVlc3RQZW5kaW5nU2NyaXB0KGVsZW1lbnQpOworICAgIGF1
dG8gcGVuZGluZ1NjcmlwdCA9IHJlcXVlc3RQZW5kaW5nU2NyaXB0KHNjcmlwdEVsZW1lbnQpOwog
ICAgIEFTU0VSVChwZW5kaW5nU2NyaXB0LT5uZWVkc0xvYWRpbmcoKSk7CiAgICAgbV9zY3JpcHRz
VG9FeGVjdXRlQWZ0ZXJQYXJzaW5nLmFwcGVuZChXVEZNb3ZlKHBlbmRpbmdTY3JpcHQpKTsKIH0K
IAogLy8gVGhpcyBtZXRob2QgaXMgbWVhbnQgdG8gbWF0Y2ggdGhlIEhUTUw1IGRlZmluaXRpb24g
b2YgInJ1bm5pbmcgYSBzY3JpcHQiCiAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2Vi
LWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9zY3JpcHRpbmctMS5odG1sI3J1bm5pbmctYS1z
Y3JpcHQKLXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6cnVuU2NyaXB0KEVsZW1lbnQqIHNjcmlwdCwg
Y29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQordm9pZCBIVE1MU2NyaXB0
UnVubmVyOjpydW5TY3JpcHQoU2NyaXB0RWxlbWVudCYgc2NyaXB0RWxlbWVudCwgY29uc3QgVGV4
dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogewogICAgIEFTU0VSVChtX2RvY3VtZW50
KTsKICAgICBBU1NFUlQoIWhhc1BhcnNlckJsb2NraW5nU2NyaXB0KCkpOwotICAgIHsKLSAgICAg
ICAgU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElmUG9zc2li
bGUoc2NyaXB0KTsKLQotICAgICAgICAvLyBUaGlzIGNvbnRhaW5zIGJvdGggYW5kIEFTU0VSVElP
TiBhbmQgYSBudWxsIGNoZWNrIHNpbmNlIHdlIHNob3VsZCBub3QKLSAgICAgICAgLy8gYmUgZ2V0
dGluZyBpbnRvIHRoZSBjYXNlIG9mIGEgbnVsbCBzY3JpcHQgZWxlbWVudCwgYnV0IHNlZW0gdG8g
YmUgZnJvbQotICAgICAgICAvLyB0aW1lIHRvIHRpbWUuIFRoZSBhc3NlcnRpb24gaXMgbGVmdCBp
biB0byBoZWxwIGZpbmQgdGhvc2UgY2FzZXMgYW5kCi0gICAgICAgIC8vIGlzIGJlaW5nIHRyYWNr
ZWQgYnkgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDU1OT4uCi0g
ICAgICAgIEFTU0VSVChzY3JpcHRFbGVtZW50KTsKLSAgICAgICAgaWYgKCFzY3JpcHRFbGVtZW50
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vIEZJWE1FOiBUaGlzIG1heSBiZSB0
b28gYWdyZXNzaXZlIGFzIHdlIGFsd2F5cyBkZWxpdmVyIG11dGF0aW9ucyBhdAotICAgICAgICAv
LyBldmVyeSBzY3JpcHQgZWxlbWVudCwgZXZlbiBpZiBpdCdzIG5vdCByZWFkeSB0byBleGVjdXRl
IHlldC4gVGhlcmUncwotICAgICAgICAvLyB1bmZvcnR1YW50ZWx5IG5vIG9idmlvdXMgd2F5IHRv
IHRlbGwgaWYgcHJlcGFyZVNjcmlwdCBpcyBnb2luZyB0bwotICAgICAgICAvLyBleGVjdXRlIHRo
ZSBzY3JpcHQgZnJvbSBvdXQgaGVyZS4KLSAgICAgICAgaWYgKCFpc0V4ZWN1dGluZ1NjcmlwdCgp
KQotICAgICAgICAgICAgTWljcm90YXNrUXVldWU6Om1haW5UaHJlYWRRdWV1ZSgpLnBlcmZvcm1N
aWNyb3Rhc2tDaGVja3BvaW50KCk7Ci0KLSAgICAgICAgSW5zZXJ0aW9uUG9pbnRSZWNvcmQgaW5z
ZXJ0aW9uUG9pbnRSZWNvcmQobV9ob3N0LmlucHV0U3RyZWFtKCkpOwotICAgICAgICBOZXN0aW5n
TGV2ZWxJbmNyZW1lbnRlciBuZXN0aW5nTGV2ZWxJbmNyZW1lbnRlcihtX3NjcmlwdE5lc3RpbmdM
ZXZlbCk7Ci0KLSAgICAgICAgc2NyaXB0RWxlbWVudC0+cHJlcGFyZVNjcmlwdChzY3JpcHRTdGFy
dFBvc2l0aW9uKTsKIAotICAgICAgICBpZiAoIXNjcmlwdEVsZW1lbnQtPndpbGxCZVBhcnNlckV4
ZWN1dGVkKCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6IFRoaXMgbWF5IGJl
IHRvbyBhZ3Jlc3NpdmUgYXMgd2UgYWx3YXlzIGRlbGl2ZXIgbXV0YXRpb25zIGF0CisgICAgLy8g
ZXZlcnkgc2NyaXB0IGVsZW1lbnQsIGV2ZW4gaWYgaXQncyBub3QgcmVhZHkgdG8gZXhlY3V0ZSB5
ZXQuIFRoZXJlJ3MKKyAgICAvLyB1bmZvcnR1YW50ZWx5IG5vIG9idmlvdXMgd2F5IHRvIHRlbGwg
aWYgcHJlcGFyZVNjcmlwdCBpcyBnb2luZyB0bworICAgIC8vIGV4ZWN1dGUgdGhlIHNjcmlwdCBm
cm9tIG91dCBoZXJlLgorICAgIGlmICghaXNFeGVjdXRpbmdTY3JpcHQoKSkKKyAgICAgICAgTWlj
cm90YXNrUXVldWU6Om1haW5UaHJlYWRRdWV1ZSgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50
KCk7CiAKLSAgICAgICAgaWYgKHNjcmlwdEVsZW1lbnQtPndpbGxFeGVjdXRlV2hlbkRvY3VtZW50
RmluaXNoZWRQYXJzaW5nKCkpCi0gICAgICAgICAgICByZXF1ZXN0RGVmZXJyZWRTY3JpcHQoc2Ny
aXB0KTsKLSAgICAgICAgZWxzZSBpZiAoc2NyaXB0RWxlbWVudC0+cmVhZHlUb0JlUGFyc2VyRXhl
Y3V0ZWQoKSkgewotICAgICAgICAgICAgaWYgKG1fc2NyaXB0TmVzdGluZ0xldmVsID09IDEpCi0g
ICAgICAgICAgICAgICAgbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCA9IFBlbmRpbmdTY3JpcHQ6OmNy
ZWF0ZSgqc2NyaXB0LCBzY3JpcHRTdGFydFBvc2l0aW9uKTsKLSAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICBzY3JpcHRFbGVtZW50LT5leGVjdXRlQ2xhc3NpY1NjcmlwdChTY3JpcHRT
b3VyY2VDb2RlKHNjcmlwdC0+dGV4dENvbnRlbnQoKSwgZG9jdW1lbnRVUkxGb3JTY3JpcHRFeGVj
dXRpb24obV9kb2N1bWVudCksIHNjcmlwdFN0YXJ0UG9zaXRpb24pKTsKLSAgICAgICAgfSBlbHNl
Ci0gICAgICAgICAgICByZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KHNjcmlwdCk7Ci0gICAg
fQorICAgIEluc2VydGlvblBvaW50UmVjb3JkIGluc2VydGlvblBvaW50UmVjb3JkKG1faG9zdC5p
bnB1dFN0cmVhbSgpKTsKKyAgICBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlciBuZXN0aW5nTGV2ZWxJ
bmNyZW1lbnRlcihtX3NjcmlwdE5lc3RpbmdMZXZlbCk7CisKKyAgICBzY3JpcHRFbGVtZW50LnBy
ZXBhcmVTY3JpcHQoc2NyaXB0U3RhcnRQb3NpdGlvbik7CisKKyAgICBpZiAoIXNjcmlwdEVsZW1l
bnQud2lsbEJlUGFyc2VyRXhlY3V0ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHNj
cmlwdEVsZW1lbnQud2lsbEV4ZWN1dGVXaGVuRG9jdW1lbnRGaW5pc2hlZFBhcnNpbmcoKSkKKyAg
ICAgICAgcmVxdWVzdERlZmVycmVkU2NyaXB0KHNjcmlwdEVsZW1lbnQpOworICAgIGVsc2UgaWYg
KHNjcmlwdEVsZW1lbnQucmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQoKSkgeworICAgICAgICBpZiAo
bV9zY3JpcHROZXN0aW5nTGV2ZWwgPT0gMSkKKyAgICAgICAgICAgIG1fcGFyc2VyQmxvY2tpbmdT
Y3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxlbWVudCwgc2NyaXB0U3RhcnRQ
b3NpdGlvbik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNjcmlwdEVsZW1lbnQuZXhlY3V0
ZUNsYXNzaWNTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRFbGVtZW50LmVsZW1lbnQoKS50
ZXh0Q29udGVudCgpLCBkb2N1bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlvbihtX2RvY3VtZW50KSwg
c2NyaXB0U3RhcnRQb3NpdGlvbikpOworICAgIH0gZWxzZQorICAgICAgICByZXF1ZXN0UGFyc2lu
Z0Jsb2NraW5nU2NyaXB0KHNjcmlwdEVsZW1lbnQpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmgKaW5kZXggNzY4MDBkNzEzY2U3ZDJlNDYz
NWE2NjIzNWIxNjdjMTlmNDU3YzgwMy4uYzNlMTU0NzI0YzRkNjFkYTc0ZmFhZWMxMzdjOWRiMDFj
NDY0YWVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlw
dFJ1bm5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5u
ZXIuaApAQCAtMzIsOSArMzIsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1
bWVudDsKLWNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEhUTUxTY3JpcHRSdW5u
ZXJIb3N0OworY2xhc3MgU2NyaXB0RWxlbWVudDsKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiAK
IGNsYXNzIEhUTUxTY3JpcHRSdW5uZXIgewpAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkZXRhY2goKTsKIAogICAgIC8vIFByb2Nlc3NlcyB0aGUgcGFzc2VkIGluIHNjcmlwdCBh
bmQgYW55IHBlbmRpbmcgc2NyaXB0cyBpZiBwb3NzaWJsZS4KLSAgICB2b2lkIGV4ZWN1dGUoUGFz
c1JlZlB0cjxFbGVtZW50PiBzY3JpcHRUb1Byb2Nlc3MsIGNvbnN0IFRleHRQb3NpdGlvbiYgc2Ny
aXB0U3RhcnRQb3NpdGlvbik7CisgICAgdm9pZCBleGVjdXRlKFJlZjxTY3JpcHRFbGVtZW50PiYm
LCBjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pOwogCiAgICAgdm9pZCBl
eGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JMb2FkKFBlbmRpbmdTY3JpcHQmKTsKICAgICBib29sIGhh
c1NjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHMoKSBjb25zdCB7IHJldHVybiBtX2hhc1Njcmlw
dHNXYWl0aW5nRm9yU3R5bGVzaGVldHM7IH0KQEAgLTYwLDEzICs2MCwxMyBAQCBwcml2YXRlOgog
ICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OwogCiAgICAgdm9pZCBleGVjdXRlUGFyc2luZ0Jsb2Nr
aW5nU2NyaXB0KCk7Ci0gICAgdm9pZCBleGVjdXRlUGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZl
bnQoUmVmUHRyPFBlbmRpbmdTY3JpcHQ+KTsKKyAgICB2b2lkIGV4ZWN1dGVQZW5kaW5nU2NyaXB0
QW5kRGlzcGF0Y2hFdmVudChQZW5kaW5nU2NyaXB0Jik7CiAgICAgdm9pZCBleGVjdXRlUGFyc2lu
Z0Jsb2NraW5nU2NyaXB0cygpOwogCi0gICAgdm9pZCByZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2Ny
aXB0KEVsZW1lbnQqKTsKLSAgICB2b2lkIHJlcXVlc3REZWZlcnJlZFNjcmlwdChFbGVtZW50Kik7
CisgICAgdm9pZCByZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQmKTsK
KyAgICB2b2lkIHJlcXVlc3REZWZlcnJlZFNjcmlwdChTY3JpcHRFbGVtZW50Jik7CiAKLSAgICB2
b2lkIHJ1blNjcmlwdChFbGVtZW50KiwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBv
c2l0aW9uKTsKKyAgICB2b2lkIHJ1blNjcmlwdChTY3JpcHRFbGVtZW50JiwgY29uc3QgVGV4dFBv
c2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKIAogICAgIC8vIEhlbHBlcnMgZm9yIGRlYWxp
bmcgd2l0aCBIVE1MU2NyaXB0UnVubmVySG9zdAogICAgIHZvaWQgd2F0Y2hGb3JMb2FkKFBlbmRp
bmdTY3JpcHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
cmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxk
ZXIuY3BwCmluZGV4IDQ1MjRjMWVhYWNmZDkzMjkwMjZjNjZjYjcyYWI1NGIwMDhmNjJhNGMuLjY3
NmFiOWVmNmI4MWFjZjYwNGExYTM3MGE5ZDA2MGM5YTAwM2QxMzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtMzUsMTAgKzM1LDEyIEBA
CiAjaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxPcHRpb25F
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIkhUTUxT
Y3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlRWxlbWVudC5oIgogI2luY2x1ZGUg
IkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3Mu
aCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlNWR1NjcmlwdEVsZW1l
bnQuaCIKICNpbmNsdWRlICJYTGlua05hbWVzLmgiCiAjaW5jbHVkZSAiWE1MTlNOYW1lcy5oIgog
I2luY2x1ZGUgIlhNTE5hbWVzLmgiCkBAIC01NywxMCArNTksMTIgQEAgQ3VzdG9tRWxlbWVudENv
bnN0cnVjdGlvbkRhdGE6OkN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhKFJlZjxKU0N1c3Rv
bUVsZW1lbnQKICAgICA6IGVsZW1lbnRJbnRlcmZhY2UoV1RGTW92ZShjdXN0b21FbGVtZW50SW50
ZXJmYWNlKSkKICAgICAsIG5hbWUobmFtZSkKICAgICAsIGF0dHJpYnV0ZXMoV1RGTW92ZShhdHRy
aWJ1dGVzKSkKLXsgfQoreworfQogCiBDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YTo6fkN1
c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhKCkKLXsgfQoreworfQogCiBuYW1lc3BhY2Ugewog
CkBAIC0zMTgsNyArMzIyLDcgQEAgaW5saW5lIEhUTUxTdGFja0l0ZW0mIEhUTUxUcmVlQnVpbGRl
cjo6RnJhZ21lbnRQYXJzaW5nQ29udGV4dDo6Y29udGV4dEVsZW1lbnRTdGEKICAgICByZXR1cm4g
Km1fY29udGV4dEVsZW1lbnRTdGFja0l0ZW07CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBIVE1MVHJl
ZUJ1aWxkZXI6OnRha2VTY3JpcHRUb1Byb2Nlc3MoVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBv
c2l0aW9uKQorUmVmUHRyPFNjcmlwdEVsZW1lbnQ+IEhUTUxUcmVlQnVpbGRlcjo6dGFrZVNjcmlw
dFRvUHJvY2VzcyhUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiB7CiAgICAgQVNT
RVJUKCFtX2Rlc3Ryb3llZCk7CiAKQEAgLTIwNTcsNyArMjA2MSw3IEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiYmIHRva2VuKQogICAgICAgICAg
ICAgLy8gUGF1c2Ugb3Vyc2VsdmVzIHNvIHRoYXQgcGFyc2luZyBzdG9wcyB1bnRpbCB0aGUgc2Ny
aXB0IGNhbiBiZSBwcm9jZXNzZWQgYnkgdGhlIGNhbGxlci4KICAgICAgICAgICAgIEFTU0VSVCht
X3RyZWUuY3VycmVudFN0YWNrSXRlbSgpLmhhc1RhZ05hbWUoc2NyaXB0VGFnKSk7CiAgICAgICAg
ICAgICBpZiAoc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChtX3RyZWUucGFyc2VyQ29udGVudFBv
bGljeSgpKSkKLSAgICAgICAgICAgICAgICBtX3NjcmlwdFRvUHJvY2VzcyA9ICZtX3RyZWUuY3Vy
cmVudEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBtX3NjcmlwdFRvUHJvY2VzcyA9ICZkb3du
Y2FzdDxIVE1MU2NyaXB0RWxlbWVudD4obV90cmVlLmN1cnJlbnRFbGVtZW50KCkpOwogICAgICAg
ICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLnBvcCgpOwogICAgICAgICAgICAgbV9pbnNlcnRp
b25Nb2RlID0gbV9vcmlnaW5hbEluc2VydGlvbk1vZGU7CiAKQEAgLTI3ODcsNyArMjc5MSw3IEBA
IHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVG9rZW5JbkZvcmVpZ25Db250ZW50KEF0b21p
Y0hUTUxUb2tlbiYmIHRva2VuKQogCiAgICAgICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gU1ZHTmFt
ZXM6OnNjcmlwdFRhZyAmJiBtX3RyZWUuY3VycmVudFN0YWNrSXRlbSgpLmhhc1RhZ05hbWUoU1ZH
TmFtZXM6OnNjcmlwdFRhZykpIHsKICAgICAgICAgICAgIGlmIChzY3JpcHRpbmdDb250ZW50SXNB
bGxvd2VkKG1fdHJlZS5wYXJzZXJDb250ZW50UG9saWN5KCkpKQotICAgICAgICAgICAgICAgIG1f
c2NyaXB0VG9Qcm9jZXNzID0gJm1fdHJlZS5jdXJyZW50RWxlbWVudCgpOworICAgICAgICAgICAg
ICAgIG1fc2NyaXB0VG9Qcm9jZXNzID0gJmRvd25jYXN0PFNWR1NjcmlwdEVsZW1lbnQ+KG1fdHJl
ZS5jdXJyZW50RWxlbWVudCgpKTsKICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS5w
b3AoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAppbmRleCBkNzA5MjlmNjBhNjBiYzY1OTZmNjc5
MGNkMDBkZWYxNmY5ODU1OWE1Li4yMTNiZDI3OTRmODM3YWY4MjA0MGJlNGE2Yzc0NGZlNmRmYzg0
M2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaApA
QCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zNSw2ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSlNDdXN0b21F
bGVtZW50SW50ZXJmYWNlOwogY2xhc3MgSFRNTERvY3VtZW50UGFyc2VyOworY2xhc3MgU2NyaXB0
RWxlbWVudDsKIAogc3RydWN0IEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhIHsKICAgICBD
dXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YShSZWY8SlNDdXN0b21FbGVtZW50SW50ZXJmYWNl
PiYmLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxBdHRyaWJ1dGU+JiYpOwpAQCAt
NjIsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdFdv
cmsoKSBjb25zdDsKIAogICAgIC8vIE11c3QgYmUgY2FsbGVkIHRvIHRha2UgdGhlIHBhcnNlci1i
bG9ja2luZyBzY3JpcHQgYmVmb3JlIGNhbGxpbmcgdGhlIHBhcnNlciBhZ2Fpbi4KLSAgICBSZWZQ
dHI8RWxlbWVudD4gdGFrZVNjcmlwdFRvUHJvY2VzcyhUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0
UG9zaXRpb24pOworICAgIFJlZlB0cjxTY3JpcHRFbGVtZW50PiB0YWtlU2NyaXB0VG9Qcm9jZXNz
KFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8Q3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGE+IHRha2VDdXN0b21FbGVtZW50Q29uc3Ry
dWN0aW9uRGF0YSgpIHsgcmV0dXJuIFdURk1vdmUobV9jdXN0b21FbGVtZW50VG9Db25zdHJ1Y3Qp
OyB9CiAgICAgdm9pZCBkaWRDcmVhdGVDdXN0b21PckNhbGxiYWNrRWxlbWVudChSZWY8RWxlbWVu
dD4mJiwgQ3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGEmKTsKQEAgLTIwNiw3ICsyMDcsNyBA
QCBwcml2YXRlOgogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L3N5bnRheC5odG1sI2NvbmNlcHQtcGVuZGluZy10YWJsZS1jaGFyLXRva2VucwogICAgIFN0cmlu
Z0J1aWxkZXIgbV9wZW5kaW5nVGFibGVDaGFyYWN0ZXJzOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+
IG1fc2NyaXB0VG9Qcm9jZXNzOyAvLyA8c2NyaXB0PiB0YWcgd2hpY2ggbmVlZHMgcHJvY2Vzc2lu
ZyBiZWZvcmUgcmVzdW1pbmcgdGhlIHBhcnNlci4KKyAgICBSZWZQdHI8U2NyaXB0RWxlbWVudD4g
bV9zY3JpcHRUb1Byb2Nlc3M7IC8vIDxzY3JpcHQ+IHRhZyB3aGljaCBuZWVkcyBwcm9jZXNzaW5n
IGJlZm9yZSByZXN1bWluZyB0aGUgcGFyc2VyLgogICAgIFRleHRQb3NpdGlvbiBtX3NjcmlwdFRv
UHJvY2Vzc1N0YXJ0UG9zaXRpb247IC8vIFN0YXJ0aW5nIGxpbmUgbnVtYmVyIG9mIHRoZSBzY3Jp
cHQgdGFnIG5lZWRpbmcgcHJvY2Vzc2luZy4KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxDdXN0b21F
bGVtZW50Q29uc3RydWN0aW9uRGF0YT4gbV9jdXN0b21FbGVtZW50VG9Db25zdHJ1Y3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmNwcAppbmRl
eCBhZDVmNmU3OGUzODFhYWRjY2M2YjkxYmE5N2NhNDI1NTgwNGNiOTcwLi5mOTg4MjViMjA2MDk3
ZjJjNGE4YzFmZTg0YjQwYjZkOGYwYTVlYWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNs
dWRlICJUZXh0RG9jdW1lbnRQYXJzZXIuaCIKIAogI2luY2x1ZGUgIkhUTUxUcmVlQnVpbGRlci5o
IgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcApp
bmRleCAzZjQzZTA0ZDVkZWViN2QyOTMxMTZlOGRlYzIzYzdiMGJmN2ZiNzc5Li5mMjk3NDRiZmYx
NzQ1YzliMTYwOWQ0Zjg1MzA4MTVmOTQ5YmU1NDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKQEAgLTY5LDIyICs2OSwyMiBAQCBz
dGF0aWMgaW5saW5lIFN0cmluZyBidWlsZENvbnNvbGVFcnJvcihjb25zdCBYU1NJbmZvJiB4c3NJ
bmZvKQogICAgIHJldHVybiBtZXNzYWdlLnRvU3RyaW5nKCk7CiB9CiAKLVBhc3NSZWZQdHI8Rm9y
bURhdGE+IFhTU0F1ZGl0b3JEZWxlZ2F0ZTo6Z2VuZXJhdGVWaW9sYXRpb25SZXBvcnQoY29uc3Qg
WFNTSW5mbyYgeHNzSW5mbykKK1JlZjxGb3JtRGF0YT4gWFNTQXVkaXRvckRlbGVnYXRlOjpnZW5l
cmF0ZVZpb2xhdGlvblJlcG9ydChjb25zdCBYU1NJbmZvJiB4c3NJbmZvKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIgPSBtX2Rv
Y3VtZW50LmZyYW1lKCktPmxvYWRlcigpOworICAgIGF1dG8mIGZyYW1lTG9hZGVyID0gbV9kb2N1
bWVudC5mcmFtZSgpLT5sb2FkZXIoKTsKICAgICBTdHJpbmcgaHR0cEJvZHk7CiAgICAgaWYgKGZy
YW1lTG9hZGVyLmRvY3VtZW50TG9hZGVyKCkpIHsKLSAgICAgICAgaWYgKEZvcm1EYXRhKiBmb3Jt
RGF0YSA9IGZyYW1lTG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPm9yaWdpbmFsUmVxdWVzdCgpLmh0
dHBCb2R5KCkpCisgICAgICAgIGlmIChhdXRvKiBmb3JtRGF0YSA9IGZyYW1lTG9hZGVyLmRvY3Vt
ZW50TG9hZGVyKCktPm9yaWdpbmFsUmVxdWVzdCgpLmh0dHBCb2R5KCkpCiAgICAgICAgICAgICBo
dHRwQm9keSA9IGZvcm1EYXRhLT5mbGF0dGVuVG9TdHJpbmcoKTsKICAgICB9CiAKLSAgICBSZWY8
SW5zcGVjdG9yT2JqZWN0PiByZXBvcnREZXRhaWxzID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUo
KTsKKyAgICBhdXRvIHJlcG9ydERldGFpbHMgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwog
ICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygicmVxdWVzdC11cmwiLCB4c3NJbmZvLm1fb3Jp
Z2luYWxVUkwpOwogICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygicmVxdWVzdC1ib2R5Iiwg
aHR0cEJvZHkpOwogCi0gICAgUmVmPEluc3BlY3Rvck9iamVjdD4gcmVwb3J0T2JqZWN0ID0gSW5z
cGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBhdXRvIHJlcG9ydE9iamVjdCA9IEluc3BlY3Rv
ck9iamVjdDo6Y3JlYXRlKCk7CiAgICAgcmVwb3J0T2JqZWN0LT5zZXRPYmplY3QoInhzcy1yZXBv
cnQiLCBXVEZNb3ZlKHJlcG9ydERldGFpbHMpKTsKIAogICAgIHJldHVybiBGb3JtRGF0YTo6Y3Jl
YXRlKHJlcG9ydE9iamVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oCmluZGV4IDBhZTI3
NGIzMTkyZGZhNDdhNjNjZTk2YTJhOTc5NDY1ZWM4ODA4ZWYuLjk3YzgwZGM2ZTM1MmI5ZGViOTE3
YzMyM2Y5YzA2MDUzMjNmZTU3NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFJlcG9ydFVSTChjb25zdCBVUkwmIHVybCkgeyBtX3JlcG9ydFVSTCA9IHVybDsgfQogCiBw
cml2YXRlOgotICAgIFBhc3NSZWZQdHI8Rm9ybURhdGE+IGdlbmVyYXRlVmlvbGF0aW9uUmVwb3J0
KGNvbnN0IFhTU0luZm8mKTsKKyAgICBSZWY8Rm9ybURhdGE+IGdlbmVyYXRlVmlvbGF0aW9uUmVw
b3J0KGNvbnN0IFhTU0luZm8mKTsKIAogICAgIERvY3VtZW50JiBtX2RvY3VtZW50OwogICAgIGJv
b2wgbV9kaWRTZW5kTm90aWZpY2F0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svQXVkaW9UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlv
VHJhY2suY3BwCmluZGV4IDhjMzU2Zjc5MTVkNDk4Y2UzNDEyZjc5ODgyZjhkMDYwYjA4NTYxOTIu
LjUxYWJjMzZmYmMwY2RjOTJjYzlmNWM5YzhmZGE0MTczY2E5NWUwOTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMCwxMyArMzAs
MTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXVkaW9UcmFjay5o
IgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiQXVkaW9UcmFjay5oIgot
Ci0jaW5jbHVkZSAiQXVkaW9UcmFja0xpc3QuaCIKLSNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1
ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
IApAQCAtNzgsMTAgKzc1LDEwIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgQXVkaW9UcmFjazo6Y29t
bWVudGFyeUtleXdvcmQoKQogICAgIHJldHVybiBjb21tZW50YXJ5OwogfQogCi1BdWRpb1RyYWNr
OjpBdWRpb1RyYWNrKEF1ZGlvVHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxBdWRpb1Ry
YWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQotICAgIDogTWVkaWFUcmFja0Jhc2UoTWVkaWFUcmFj
a0Jhc2U6OkF1ZGlvVHJhY2ssIHRyYWNrUHJpdmF0ZS0+aWQoKSwgdHJhY2tQcml2YXRlLT5sYWJl
bCgpLCB0cmFja1ByaXZhdGUtPmxhbmd1YWdlKCkpCi0gICAgLCBtX2VuYWJsZWQodHJhY2tQcml2
YXRlLT5lbmFibGVkKCkpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCitBdWRpb1RyYWNrOjpBdWRp
b1RyYWNrKEF1ZGlvVHJhY2tDbGllbnQmIGNsaWVudCwgQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNr
UHJpdmF0ZSkKKyAgICA6IE1lZGlhVHJhY2tCYXNlKE1lZGlhVHJhY2tCYXNlOjpBdWRpb1RyYWNr
LCB0cmFja1ByaXZhdGUuaWQoKSwgdHJhY2tQcml2YXRlLmxhYmVsKCksIHRyYWNrUHJpdmF0ZS5s
YW5ndWFnZSgpKQorICAgICwgbV9lbmFibGVkKHRyYWNrUHJpdmF0ZS5lbmFibGVkKCkpCisgICAg
LCBtX2NsaWVudCgmY2xpZW50KQogICAgICwgbV9wcml2YXRlKHRyYWNrUHJpdmF0ZSkKIHsKICAg
ICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKQEAgLTkzLDE5ICs5MCwxNiBAQCBBdWRpb1Ry
YWNrOjp+QXVkaW9UcmFjaygpCiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiB9
CiAKLXZvaWQgQXVkaW9UcmFjazo6c2V0UHJpdmF0ZShQYXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2
YXRlPiB0cmFja1ByaXZhdGUpCit2b2lkIEF1ZGlvVHJhY2s6OnNldFByaXZhdGUoQXVkaW9UcmFj
a1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKLSAgICBB
U1NFUlQodHJhY2tQcml2YXRlKTsKLQotICAgIGlmIChtX3ByaXZhdGUgPT0gdHJhY2tQcml2YXRl
KQorICAgIGlmIChtX3ByaXZhdGUucHRyKCkgPT0gJnRyYWNrUHJpdmF0ZSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiAgICAgbV9wcml2YXRl
ID0gdHJhY2tQcml2YXRlOworICAgIG1fcHJpdmF0ZS0+c2V0RW5hYmxlZChtX2VuYWJsZWQpOwog
ICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwogCi0gICAgbV9wcml2YXRlLT5zZXRFbmFi
bGVkKG1fZW5hYmxlZCk7CiAgICAgdXBkYXRlS2luZEZyb21Qcml2YXRlKCk7CiB9CiAKQEAgLTEx
OSw1NCArMTEzLDQ3IEBAIGJvb2wgQXVkaW9UcmFjazo6aXNWYWxpZEtpbmQoY29uc3QgQXRvbWlj
U3RyaW5nJiB2YWx1ZSkgY29uc3QKICAgICAgICAgfHwgdmFsdWUgPT0gY29tbWVudGFyeUtleXdv
cmQoKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjpzZXRFbmFibGVkKGNvbnN0IGJvb2wgZW5hYmxl
ZCkKK3ZvaWQgQXVkaW9UcmFjazo6c2V0RW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgaWYg
KG1fZW5hYmxlZCA9PSBlbmFibGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2VuYWJsZWQg
PSBlbmFibGVkOwogICAgIG1fcHJpdmF0ZS0+c2V0RW5hYmxlZChlbmFibGVkKTsKLQotICAgIGlm
IChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCh0
aGlzKTsKIH0KIAotc2l6ZV90IEF1ZGlvVHJhY2s6OmluYmFuZFRyYWNrSW5kZXgoKQorc2l6ZV90
IEF1ZGlvVHJhY2s6OmluYmFuZFRyYWNrSW5kZXgoKSBjb25zdAogewotICAgIEFTU0VSVChtX3By
aXZhdGUpOwogICAgIHJldHVybiBtX3ByaXZhdGUtPnRyYWNrSW5kZXgoKTsKIH0KIAotdm9pZCBB
dWRpb1RyYWNrOjplbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrUHJpdmF0ZSogdHJhY2tQcml2YXRl
LCBib29sIGVuYWJsZWQpCit2b2lkIEF1ZGlvVHJhY2s6OmVuYWJsZWRDaGFuZ2VkKGJvb2wgZW5h
YmxlZCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09
IG1fcHJpdmF0ZSk7CisgICAgaWYgKG1fZW5hYmxlZCA9PSBlbmFibGVkKQorICAgICAgICByZXR1
cm47CisKICAgICBtX2VuYWJsZWQgPSBlbmFibGVkOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAg
ICAgICBtX2NsaWVudC0+YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKHRoaXMpOworICAgICAgICBt
X2NsaWVudC0+YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKCp0aGlzKTsKIH0KIAotdm9pZCBBdWRp
b1RyYWNrOjppZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBB
dG9taWNTdHJpbmcmIGlkKQordm9pZCBBdWRpb1RyYWNrOjppZENoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJiBpZCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2
YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0SWQoaWQpOwogfQogCi12b2lkIEF1ZGlvVHJhY2s6
OmxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21p
Y1N0cmluZyYgbGFiZWwpCit2b2lkIEF1ZGlvVHJhY2s6OmxhYmVsQ2hhbmdlZChjb25zdCBBdG9t
aWNTdHJpbmcmIGxhYmVsKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFj
a1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRMYWJlbChsYWJlbCk7CiB9CiAKLXZvaWQg
QXVkaW9UcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKK3ZvaWQgQXVkaW9UcmFjazo6bGFuZ3Vh
Z2VDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiB7Ci0gICAgQVNTRVJUX1VO
VVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldExh
bmd1YWdlKGxhbmd1YWdlKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjp3aWxsUmVtb3ZlKFRyYWNr
UHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSkKK3ZvaWQgQXVkaW9UcmFjazo6d2lsbFJlbW92ZSgp
CiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3By
aXZhdGUpOwogICAgIG1lZGlhRWxlbWVudCgpLT5yZW1vdmVBdWRpb1RyYWNrKCp0aGlzKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAppbmRleCA2MWM1YjJjZDQyOThk
NTc0ZjdmNzE1YmMxYzE5MjAwNzkxZGQyM2FhLi41ZWQyNDRiZmFjMmMyYjk0YThlY2Y3ZTFkMWNm
OWExYTBiZTg4NGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlv
VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaApAQCAt
MSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yOSw5ICsyOSw3IEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVk
ZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5o
IgogI2luY2x1ZGUgIlRyYWNrQmFzZS5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDEyICszOCwxMiBAQCBjbGFzcyBBdWRp
b1RyYWNrOwogY2xhc3MgQXVkaW9UcmFja0NsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+
QXVkaW9UcmFja0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrRW5hYmxl
ZENoYW5nZWQoQXVkaW9UcmFjayopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0Vu
YWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2smKSA9IDA7CiB9OwogCi1jbGFzcyBBdWRpb1RyYWNrIGZp
bmFsIDogcHVibGljIE1lZGlhVHJhY2tCYXNlLCBwdWJsaWMgQXVkaW9UcmFja1ByaXZhdGVDbGll
bnQgeworY2xhc3MgQXVkaW9UcmFjayBmaW5hbCA6IHB1YmxpYyBNZWRpYVRyYWNrQmFzZSwgcHJp
dmF0ZSBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxB
dWRpb1RyYWNrPiBjcmVhdGUoQXVkaW9UcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPEF1
ZGlvVHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCisgICAgc3RhdGljIFJlZjxBdWRpb1RyYWNr
PiBjcmVhdGUoQXVkaW9UcmFja0NsaWVudCYgY2xpZW50LCBBdWRpb1RyYWNrUHJpdmF0ZSYgdHJh
Y2tQcml2YXRlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9UcmFj
ayhjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogICAgIH0KQEAgLTU3LDM5ICs1NSwzOCBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbWFpbkRlc2NLZXl3b3JkKCk7CiAg
ICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhbnNsYXRpb25LZXl3b3JkKCk7CiAgICAg
c3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29tbWVudGFyeUtleXdvcmQoKTsKLSAgICBjb25z
dCBBdG9taWNTdHJpbmcmIGRlZmF1bHRLaW5kS2V5d29yZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGVtcHR5QXRvbTsgfQogCi0gICAgYm9vbCBlbmFibGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9lbmFibGVkOyB9CisgICAgYm9vbCBlbmFibGVkKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9lbmFibGVkOyB9CiAgICAgdm9pZCBzZXRFbmFibGVkKGNvbnN0IGJvb2wpOwogCi0gICAg
dm9pZCBjbGVhckNsaWVudCgpIG92ZXJyaWRlIHsgbV9jbGllbnQgPSBudWxscHRyOyB9CisgICAg
dm9pZCBjbGVhckNsaWVudCgpIGZpbmFsIHsgbV9jbGllbnQgPSBudWxscHRyOyB9CiAgICAgQXVk
aW9UcmFja0NsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAotICAg
IHNpemVfdCBpbmJhbmRUcmFja0luZGV4KCk7CisgICAgc2l6ZV90IGluYmFuZFRyYWNrSW5kZXgo
KSBjb25zdDsKIAotICAgIHZvaWQgc2V0UHJpdmF0ZShQYXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2
YXRlPik7Ci0KLXByb3RlY3RlZDoKLSAgICBBdWRpb1RyYWNrKEF1ZGlvVHJhY2tDbGllbnQqLCBQ
YXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPik7CisgICAgdm9pZCBzZXRQcml2YXRlKEF1ZGlv
VHJhY2tQcml2YXRlJik7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBpc1ZhbGlkS2luZChjb25zdCBB
dG9taWNTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKKyAgICBBdWRpb1RyYWNrKEF1ZGlvVHJhY2tD
bGllbnQmLCBBdWRpb1RyYWNrUHJpdmF0ZSYpOworCisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBk
ZWZhdWx0S2luZEtleXdvcmQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBlbXB0eUF0b207IH0KKyAg
ICBib29sIGlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IGZpbmFsOwogCiAg
ICAgLy8gQXVkaW9UcmFja1ByaXZhdGVDbGllbnQKLSAgICB2b2lkIGVuYWJsZWRDaGFuZ2VkKEF1
ZGlvVHJhY2tQcml2YXRlKiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbmFibGVkQ2hhbmdl
ZChib29sKSBmaW5hbDsKIAogICAgIC8vIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQKLSAgICB2b2lk
IGlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0b21p
Y1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0
ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxSZW1v
dmUoVHJhY2tQcml2YXRlQmFzZSopIG92ZXJyaWRlOworICAgIHZvaWQgaWRDaGFuZ2VkKGNvbnN0
IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgbGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21p
Y1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21pY1N0
cmluZyYpIGZpbmFsOworICAgIHZvaWQgd2lsbFJlbW92ZSgpIGZpbmFsOwogCiAgICAgdm9pZCB1
cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIAogICAgIGJvb2wgbV9lbmFibGVkOwogICAgIEF1ZGlv
VHJhY2tDbGllbnQqIG1fY2xpZW50OwogCi0gICAgUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPiBt
X3ByaXZhdGU7CisgICAgUmVmPEF1ZGlvVHJhY2tQcml2YXRlPiBtX3ByaXZhdGU7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9J
bmJhbmREYXRhVGV4dFRyYWNrLmNwcAppbmRleCBiZTU4Y2M4MTE5YmZlNmQ2MGYwMzBiYTAxOTNj
MGNkZTUyODQ5MTk4Li45ODU1ZDJiZjJlYjQ2Y2QyZGI3NTUyYThiZTFlYzk1Y2UzM2NhZDg0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5j
cHAKQEAgLTM3LDMxICszNywzMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxJbmJh
bmREYXRhVGV4dFRyYWNrPiBJbmJhbmREYXRhVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFJlZlB0cjxJbmJh
bmRUZXh0VHJhY2tQcml2YXRlPiYmIHRyYWNrUHJpdmF0ZSkKK2lubGluZSBJbmJhbmREYXRhVGV4
dFRyYWNrOjpJbmJhbmREYXRhVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFj
a1ByaXZhdGUpCisgICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFja1By
aXZhdGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kRGF0YVRleHRUcmFjayhj
b250ZXh0LCBjbGllbnQsIFdURk1vdmUodHJhY2tQcml2YXRlKSkpOwogfQogCi1JbmJhbmREYXRh
VGV4dFRyYWNrOjpJbmJhbmREYXRhVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZT4mJiB0cmFja1ByaXZhdGUpCi0gICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xp
ZW50LCB0cmFja1ByaXZhdGUpCitSZWY8SW5iYW5kRGF0YVRleHRUcmFjaz4gSW5iYW5kRGF0YVRl
eHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFj
a0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiB7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kRGF0YVRleHRUcmFjayhjb250ZXh0LCBj
bGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogfQogCiBJbmJhbmREYXRhVGV4dFRyYWNrOjp+SW5iYW5k
RGF0YVRleHRUcmFjaygpCiB7CiB9CiAKLXZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0
YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKK3Zv
aWQgSW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0
LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9pZCogZGF0YSwgdW5zaWduZWQgbGVuZ3Ro
KQogewogICAgIGFkZEN1ZShEYXRhQ3VlOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSwgc3RhcnQsIGVuZCwgZGF0YSwgbGVuZ3RoKSk7CiB9CiAKICNpZiBFTkFCTEUoREFUQUNVRV9W
QUxVRSkKIAotdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKEluYmFuZFRleHRU
cmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVu
ZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcHJwUGxhdGZv
cm1WYWx1ZSwgY29uc3QgU3RyaW5nJiB0eXBlKQordm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjph
ZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBS
ZWY8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+JiYgcGxhdGZvcm1WYWx1ZSwgY29u
c3QgU3RyaW5nJiB0eXBlKQogewotICAgIFJlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNl
bnRhdGlvbj4gcGxhdGZvcm1WYWx1ZSA9IHBycFBsYXRmb3JtVmFsdWU7Ci0gICAgaWYgKG1faW5j
b21wbGV0ZUN1ZU1hcC5maW5kKHBsYXRmb3JtVmFsdWUuZ2V0KCkpICE9IG1faW5jb21wbGV0ZUN1
ZU1hcC5lbmQoKSkKKyAgICBpZiAobV9pbmNvbXBsZXRlQ3VlTWFwLmNvbnRhaW5zKHBsYXRmb3Jt
VmFsdWUucHRyKCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGN1ZSA9IERhdGFDdWU6
OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdGFydCwgZW5kLCBwbGF0Zm9ybVZh
bHVlLmNvcHlSZWYoKSwgdHlwZSk7CkBAIC03OCwyNSArNzcsMTkgQEAgdm9pZCBJbmJhbmREYXRh
VGV4dFRyYWNrOjphZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRp
YVRpbWUmIHMKICAgICBhZGRDdWUoV1RGTW92ZShjdWUpKTsKIH0KIAotdm9pZCBJbmJhbmREYXRh
VGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBN
ZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGluRW5kLCBQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwcnBQbGF0Zm9ybVZhbHVlKQordm9pZCBJbmJh
bmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNv
bnN0IE1lZGlhVGltZSYgaW5FbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uJiBw
bGF0Zm9ybVZhbHVlKQogewotICAgIE1lZGlhVGltZSBlbmQgPSBpbkVuZDsKLQotICAgIFJlZlB0
cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcGxhdGZvcm1WYWx1ZSA9IHBycFBs
YXRmb3JtVmFsdWU7Ci0gICAgYXV0byBpdGVyID0gbV9pbmNvbXBsZXRlQ3VlTWFwLmZpbmQocGxh
dGZvcm1WYWx1ZS5nZXQoKSk7Ci0gICAgaWYgKGl0ZXIgPT0gbV9pbmNvbXBsZXRlQ3VlTWFwLmVu
ZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZWZQdHI8RGF0YUN1ZT4gY3VlID0gaXRlci0+
dmFsdWU7CisgICAgUmVmUHRyPERhdGFDdWU+IGN1ZSA9IG1faW5jb21wbGV0ZUN1ZU1hcC5nZXQo
JnBsYXRmb3JtVmFsdWUpOwogICAgIGlmICghY3VlKQogICAgICAgICByZXR1cm47CiAKICAgICBj
dWUtPndpbGxDaGFuZ2UoKTsKIAorICAgIE1lZGlhVGltZSBlbmQgPSBpbkVuZDsKICAgICBpZiAo
ZW5kLmlzUG9zaXRpdmVJbmZpbml0ZSgpICYmIG1lZGlhRWxlbWVudCgpKQogICAgICAgICBlbmQg
PSBtZWRpYUVsZW1lbnQoKS0+ZHVyYXRpb25NZWRpYVRpbWUoKTsKICAgICBlbHNlCi0gICAgICAg
IG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUocGxhdGZvcm1WYWx1ZS5nZXQoKSk7CisgICAgICAg
IG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUoJnBsYXRmb3JtVmFsdWUpOwogCiAgICAgTE9HKE1l
ZGlhLCAiSW5iYW5kRGF0YVRleHRUcmFjazo6dXBkYXRlRGF0YUN1ZTogd2FzIHN0YXJ0PSVzLCBl
bmQ9JXMsIHdpbGwgYmUgc3RhcnQ9JXMsIGVuZD0lc1xuIiwgdG9TdHJpbmcoY3VlLT5zdGFydFRp
bWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoY3VlLT5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRh
KCksIHRvU3RyaW5nKHN0YXJ0KS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5k
YXRhKCkpOwogCkBAIC0xMDYsMTQgKzk5LDkgQEAgdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1
cGRhdGVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUKICAg
ICBjdWUtPmRpZENoYW5nZSgpOwogfQogCi12b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnJlbW92
ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0
IE1lZGlhVGltZSYsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+
IHBycFBsYXRmb3JtVmFsdWUpCit2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnJlbW92ZURhdGFD
dWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgU2VyaWFsaXplZFBsYXRmb3Jt
UmVwcmVzZW50YXRpb24mIHBsYXRmb3JtVmFsdWUpCiB7Ci0gICAgUmVmUHRyPFNlcmlhbGl6ZWRQ
bGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwbGF0Zm9ybVZhbHVlID0gcHJwUGxhdGZvcm1WYWx1ZTsK
LSAgICBhdXRvIGl0ZXIgPSBtX2luY29tcGxldGVDdWVNYXAuZmluZChwbGF0Zm9ybVZhbHVlLmdl
dCgpKTsKLSAgICBpZiAoaXRlciA9PSBtX2luY29tcGxldGVDdWVNYXAuZW5kKCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGlmIChSZWZQdHI8RGF0YUN1ZT4gY3VlID0gaXRlci0+dmFsdWUpIHsK
KyAgICBpZiAoYXV0byogY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLmdldCgmcGxhdGZvcm1WYWx1
ZSkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kRGF0YVRleHRUcmFjazo6cmVtb3ZlRGF0
YUN1ZSByZW1vdmluZyBjdWU6IHN0YXJ0PSVzLCBlbmQ9JXNcbiIsIHRvU3RyaW5nKGN1ZS0+c3Rh
cnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZS0+ZW5kVGltZSgpKS51dGY4KCku
ZGF0YSgpKTsKICAgICAgICAgcmVtb3ZlQ3VlKCpjdWUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKaW5kZXggMjdhOGRiNjE2OWQw
YjQ3NmM1NGQzMmU0ODE0Mjg2MjFkYjJhMzA4My4uODI0YTI5ZjZhODY2YWQzNDVjNWM0YTk0NDhk
ZmZiOGI2YmE3MTY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJh
bmREYXRhVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRE
YXRhVGV4dFRyYWNrLmgKQEAgLTMzLDIzICszMywyMSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBEYXRhQ3VlOwotY2xhc3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTsKLWNsYXNzIFNl
cmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uOwogCiBjbGFzcyBJbmJhbmREYXRhVGV4dFRy
YWNrIGZpbmFsIDogcHVibGljIEluYmFuZFRleHRUcmFjayB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxJbmJhbmREYXRhVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFRleHRUcmFja0NsaWVudCosIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiYmKTsKKyAg
ICBzdGF0aWMgUmVmPEluYmFuZERhdGFUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogICAg
IHZpcnR1YWwgfkluYmFuZERhdGFUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKLSAgICBJbmJhbmRE
YXRhVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBS
ZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4mJik7CisgICAgSW5iYW5kRGF0YVRleHRUcmFj
ayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSYpOwogCi0gICAgdm9pZCBhZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZh
dGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qg
dm9pZCosIHVuc2lnbmVkKSBmaW5hbDsKKyAgICB2b2lkIGFkZERhdGFDdWUoY29uc3QgTWVkaWFU
aW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkg
ZmluYWw7CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLSAgICB2b2lkIGFkZERhdGFDdWUo
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1l
ZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9u
PiwgY29uc3QgU3RyaW5nJikgZmluYWw7Ci0gICAgdm9pZCB1cGRhdGVEYXRhQ3VlKEluYmFuZFRl
eHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUm
IGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4pIGZpbmFs
OwotICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFs
aXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+KSBmaW5hbDsKKyAgICB2b2lkIGFkZERhdGFDdWUo
Y29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFJlZjxTZXJpYWxp
emVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4mJiwgY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAg
dm9pZCB1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGlt
ZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbiYpIGZpbmFsOworICAgIHZv
aWQgcmVtb3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUm
IGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24mKSBmaW5hbDsKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiByZW1vdmVDdWUoVGV4dFRyYWNrQ3VlJikgZmluYWw7CiAKICAgICBIYXNo
TWFwPFJlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4sIFJlZlB0cjxEYXRh
Q3VlPj4gbV9pbmNvbXBsZXRlQ3VlTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHAKaW5kZXggMDkxYTVkMmIxODUyNjBiNThm
NjhlMmZiY2Y4OWI4NzZjNzU2NWMyZS4uZDQ3OGFlNjExZjIzNzYwMzE3YjVkMDRjNjI5N2MyMWMw
NDE4ZmM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5l
cmljVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdl
bmVyaWNUZXh0VHJhY2suY3BwCkBAIC02NSwxMDIgKzY1LDk5IEBAIHZvaWQgR2VuZXJpY1RleHRU
cmFja0N1ZU1hcDo6cmVtb3ZlKFRleHRUcmFja0N1ZSYgY3VlKQogICAgICAgICBtX2RhdGFUb0N1
ZU1hcC5yZW1vdmUoZGF0YSk7CiB9CiAKLVJlZjxJbmJhbmRHZW5lcmljVGV4dFRyYWNrPiBJbmJh
bmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZT4gcGxheWVyUHJpdmF0ZSkKK2lubGluZSBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpJbmJh
bmRHZW5lcmljVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRU
cmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUp
CisgICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kR2VuZXJpY1RleHRUcmFjayhjb250ZXh0
LCBjbGllbnQsIHBsYXllclByaXZhdGUpKTsKIH0KIAotSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6
SW5iYW5kR2VuZXJpY1RleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBU
ZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRl
PiB0cmFja1ByaXZhdGUpCi0gICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0
cmFja1ByaXZhdGUpCitSZWY8SW5iYW5kR2VuZXJpY1RleHRUcmFjaz4gSW5iYW5kR2VuZXJpY1Rl
eHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFj
a0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiB7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kR2VuZXJpY1RleHRUcmFjayhjb250ZXh0
LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogfQogCiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp+
SW5iYW5kR2VuZXJpY1RleHRUcmFjaygpCiB7CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRU
cmFjazo6dXBkYXRlQ3VlRnJvbUN1ZURhdGEoVGV4dFRyYWNrQ3VlR2VuZXJpYyogY3VlLCBHZW5l
cmljQ3VlRGF0YSogY3VlRGF0YSkKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6dXBkYXRl
Q3VlRnJvbUN1ZURhdGEoVGV4dFRyYWNrQ3VlR2VuZXJpYyYgY3VlLCBHZW5lcmljQ3VlRGF0YSYg
Y3VlRGF0YSkKIHsKLSAgICBjdWUtPndpbGxDaGFuZ2UoKTsKKyAgICBjdWUud2lsbENoYW5nZSgp
OwogCi0gICAgY3VlLT5zZXRTdGFydFRpbWUoY3VlRGF0YS0+c3RhcnRUaW1lKCkpOwotICAgIE1l
ZGlhVGltZSBlbmRUaW1lID0gY3VlRGF0YS0+ZW5kVGltZSgpOworICAgIGN1ZS5zZXRTdGFydFRp
bWUoY3VlRGF0YS5zdGFydFRpbWUoKSk7CisgICAgTWVkaWFUaW1lIGVuZFRpbWUgPSBjdWVEYXRh
LmVuZFRpbWUoKTsKICAgICBpZiAoZW5kVGltZS5pc1Bvc2l0aXZlSW5maW5pdGUoKSAmJiBtZWRp
YUVsZW1lbnQoKSkKICAgICAgICAgZW5kVGltZSA9IG1lZGlhRWxlbWVudCgpLT5kdXJhdGlvbk1l
ZGlhVGltZSgpOwotICAgIGN1ZS0+c2V0RW5kVGltZShlbmRUaW1lKTsKLSAgICBjdWUtPnNldFRl
eHQoY3VlRGF0YS0+Y29udGVudCgpKTsKLSAgICBjdWUtPnNldElkKGN1ZURhdGEtPmlkKCkpOwot
ICAgIGN1ZS0+c2V0QmFzZUZvbnRTaXplUmVsYXRpdmVUb1ZpZGVvSGVpZ2h0KGN1ZURhdGEtPmJh
c2VGb250U2l6ZSgpKTsKLSAgICBjdWUtPnNldEZvbnRTaXplTXVsdGlwbGllcihjdWVEYXRhLT5y
ZWxhdGl2ZUZvbnRTaXplKCkpOwotICAgIGN1ZS0+c2V0Rm9udE5hbWUoY3VlRGF0YS0+Zm9udE5h
bWUoKSk7Ci0KLSAgICBpZiAoY3VlRGF0YS0+cG9zaXRpb24oKSA+IDApCi0gICAgICAgIGN1ZS0+
c2V0UG9zaXRpb24oc3RkOjpyb3VuZChjdWVEYXRhLT5wb3NpdGlvbigpKSk7Ci0gICAgaWYgKGN1
ZURhdGEtPmxpbmUoKSA+IDApCi0gICAgICAgIGN1ZS0+c2V0TGluZShzdGQ6OnJvdW5kKGN1ZURh
dGEtPmxpbmUoKSkpOwotICAgIGlmIChjdWVEYXRhLT5zaXplKCkgPiAwKQotICAgICAgICBjdWUt
PnNldFNpemUoc3RkOjpyb3VuZChjdWVEYXRhLT5zaXplKCkpKTsKLSAgICBpZiAoY3VlRGF0YS0+
YmFja2dyb3VuZENvbG9yKCkuaXNWYWxpZCgpKQotICAgICAgICBjdWUtPnNldEJhY2tncm91bmRD
b2xvcihjdWVEYXRhLT5iYWNrZ3JvdW5kQ29sb3IoKS5yZ2IoKSk7Ci0gICAgaWYgKGN1ZURhdGEt
PmZvcmVncm91bmRDb2xvcigpLmlzVmFsaWQoKSkKLSAgICAgICAgY3VlLT5zZXRGb3JlZ3JvdW5k
Q29sb3IoY3VlRGF0YS0+Zm9yZWdyb3VuZENvbG9yKCkucmdiKCkpOwotICAgIGlmIChjdWVEYXRh
LT5oaWdobGlnaHRDb2xvcigpLmlzVmFsaWQoKSkKLSAgICAgICAgY3VlLT5zZXRIaWdobGlnaHRD
b2xvcihjdWVEYXRhLT5oaWdobGlnaHRDb2xvcigpLnJnYigpKTsKLQotICAgIGlmIChjdWVEYXRh
LT5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpTdGFydCkKLSAgICAgICAgY3VlLT5zZXRBbGln
bihBU0NJSUxpdGVyYWwoInN0YXJ0IikpOwotICAgIGVsc2UgaWYgKGN1ZURhdGEtPmFsaWduKCkg
PT0gR2VuZXJpY0N1ZURhdGE6Ok1pZGRsZSkKLSAgICAgICAgY3VlLT5zZXRBbGlnbihBU0NJSUxp
dGVyYWwoIm1pZGRsZSIpKTsKLSAgICBlbHNlIGlmIChjdWVEYXRhLT5hbGlnbigpID09IEdlbmVy
aWNDdWVEYXRhOjpFbmQpCi0gICAgICAgIGN1ZS0+c2V0QWxpZ24oQVNDSUlMaXRlcmFsKCJlbmQi
KSk7Ci0gICAgY3VlLT5zZXRTbmFwVG9MaW5lcyhmYWxzZSk7Ci0KLSAgICBjdWUtPmRpZENoYW5n
ZSgpOwotfQotCi12b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmFkZEdlbmVyaWNDdWUoSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZSogdHJhY2tQcml2YXRlLCBQYXNzUmVmUHRyPEdlbmVyaWNDdWVE
YXRhPiBwcnBDdWVEYXRhKQotewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFj
a1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKLQotICAgIFJlZlB0cjxHZW5lcmljQ3VlRGF0YT4gY3Vl
RGF0YSA9IHBycEN1ZURhdGE7Ci0gICAgaWYgKG1fY3VlTWFwLmZpbmQoKmN1ZURhdGEpKQorICAg
IGN1ZS5zZXRFbmRUaW1lKGVuZFRpbWUpOworICAgIGN1ZS5zZXRUZXh0KGN1ZURhdGEuY29udGVu
dCgpKTsKKyAgICBjdWUuc2V0SWQoY3VlRGF0YS5pZCgpKTsKKyAgICBjdWUuc2V0QmFzZUZvbnRT
aXplUmVsYXRpdmVUb1ZpZGVvSGVpZ2h0KGN1ZURhdGEuYmFzZUZvbnRTaXplKCkpOworICAgIGN1
ZS5zZXRGb250U2l6ZU11bHRpcGxpZXIoY3VlRGF0YS5yZWxhdGl2ZUZvbnRTaXplKCkpOworICAg
IGN1ZS5zZXRGb250TmFtZShjdWVEYXRhLmZvbnROYW1lKCkpOworCisgICAgaWYgKGN1ZURhdGEu
cG9zaXRpb24oKSA+IDApCisgICAgICAgIGN1ZS5zZXRQb3NpdGlvbihzdGQ6OnJvdW5kKGN1ZURh
dGEucG9zaXRpb24oKSkpOworICAgIGlmIChjdWVEYXRhLmxpbmUoKSA+IDApCisgICAgICAgIGN1
ZS5zZXRMaW5lKHN0ZDo6cm91bmQoY3VlRGF0YS5saW5lKCkpKTsKKyAgICBpZiAoY3VlRGF0YS5z
aXplKCkgPiAwKQorICAgICAgICBjdWUuc2V0U2l6ZShzdGQ6OnJvdW5kKGN1ZURhdGEuc2l6ZSgp
KSk7CisgICAgaWYgKGN1ZURhdGEuYmFja2dyb3VuZENvbG9yKCkuaXNWYWxpZCgpKQorICAgICAg
ICBjdWUuc2V0QmFja2dyb3VuZENvbG9yKGN1ZURhdGEuYmFja2dyb3VuZENvbG9yKCkucmdiKCkp
OworICAgIGlmIChjdWVEYXRhLmZvcmVncm91bmRDb2xvcigpLmlzVmFsaWQoKSkKKyAgICAgICAg
Y3VlLnNldEZvcmVncm91bmRDb2xvcihjdWVEYXRhLmZvcmVncm91bmRDb2xvcigpLnJnYigpKTsK
KyAgICBpZiAoY3VlRGF0YS5oaWdobGlnaHRDb2xvcigpLmlzVmFsaWQoKSkKKyAgICAgICAgY3Vl
LnNldEhpZ2hsaWdodENvbG9yKGN1ZURhdGEuaGlnaGxpZ2h0Q29sb3IoKS5yZ2IoKSk7CisKKyAg
ICBpZiAoY3VlRGF0YS5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpTdGFydCkKKyAgICAgICAg
Y3VlLnNldEFsaWduKEFTQ0lJTGl0ZXJhbCgic3RhcnQiKSk7CisgICAgZWxzZSBpZiAoY3VlRGF0
YS5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpNaWRkbGUpCisgICAgICAgIGN1ZS5zZXRBbGln
bihBU0NJSUxpdGVyYWwoIm1pZGRsZSIpKTsKKyAgICBlbHNlIGlmIChjdWVEYXRhLmFsaWduKCkg
PT0gR2VuZXJpY0N1ZURhdGE6OkVuZCkKKyAgICAgICAgY3VlLnNldEFsaWduKEFTQ0lJTGl0ZXJh
bCgiZW5kIikpOworICAgIGN1ZS5zZXRTbmFwVG9MaW5lcyhmYWxzZSk7CisKKyAgICBjdWUuZGlk
Q2hhbmdlKCk7Cit9CisKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1
ZShHZW5lcmljQ3VlRGF0YSYgY3VlRGF0YSkKK3sKKyAgICBpZiAobV9jdWVNYXAuZmluZChjdWVE
YXRhKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBjdWUgPSBUZXh0VHJhY2tDdWVHZW5l
cmljOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgY3VlRGF0YS0+c3RhcnRUaW1l
KCksIGN1ZURhdGEtPmVuZFRpbWUoKSwgY3VlRGF0YS0+Y29udGVudCgpKTsKLSAgICB1cGRhdGVD
dWVGcm9tQ3VlRGF0YShjdWUucHRyKCksIGN1ZURhdGEuZ2V0KCkpOworICAgIGF1dG8gY3VlID0g
VGV4dFRyYWNrQ3VlR2VuZXJpYzo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGN1
ZURhdGEuc3RhcnRUaW1lKCksIGN1ZURhdGEuZW5kVGltZSgpLCBjdWVEYXRhLmNvbnRlbnQoKSk7
CisgICAgdXBkYXRlQ3VlRnJvbUN1ZURhdGEoY3VlLmdldCgpLCBjdWVEYXRhKTsKICAgICBpZiAo
aGFzQ3VlKGN1ZS5wdHIoKSwgVGV4dFRyYWNrQ3VlOjpJZ25vcmVEdXJhdGlvbikpIHsKLSAgICAg
ICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSBpZ25v
cmluZyBhbHJlYWR5IGFkZGVkIGN1ZTogc3RhcnQ9JXMsIGVuZD0lcywgY29udGVudD1cIiVzXCJc
biIsIHRvU3RyaW5nKGN1ZURhdGEtPnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCB0b1N0cmlu
ZyhjdWVEYXRhLT5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEtPmNvbnRlbnQoKS51
dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFj
azo6YWRkR2VuZXJpY0N1ZSBpZ25vcmluZyBhbHJlYWR5IGFkZGVkIGN1ZTogc3RhcnQ9JXMsIGVu
ZD0lcywgY29udGVudD1cIiVzXCJcbiIsIHRvU3RyaW5nKGN1ZURhdGEuc3RhcnRUaW1lKCkpLnV0
ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZURhdGEuZW5kVGltZSgpKS51dGY4KCkuZGF0YSgpLCBj
dWVEYXRhLmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmFkZEdlbmVyaWNDdWUg
YWRkZWQgY3VlOiBzdGFydD0lLjJmLCBlbmQ9JS4yZiwgY29udGVudD1cIiVzXCJcbiIsIGN1ZURh
dGEtPnN0YXJ0VGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEtPmVuZFRpbWUoKS50b0RvdWJsZSgp
LCBjdWVEYXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CisgICAgTE9HKE1lZGlhLCAiSW5i
YW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSBhZGRlZCBjdWU6IHN0YXJ0PSUuMmYs
IGVuZD0lLjJmLCBjb250ZW50PVwiJXNcIlxuIiwgY3VlRGF0YS5zdGFydFRpbWUoKS50b0RvdWJs
ZSgpLCBjdWVEYXRhLmVuZFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLmNvbnRlbnQoKS51dGY4
KCkuZGF0YSgpKTsKIAotICAgIGlmIChjdWVEYXRhLT5zdGF0dXMoKSAhPSBHZW5lcmljQ3VlRGF0
YTo6Q29tcGxldGUpCi0gICAgICAgIG1fY3VlTWFwLmFkZCgqY3VlRGF0YSwgY3VlKTsKKyAgICBp
ZiAoY3VlRGF0YS5zdGF0dXMoKSAhPSBHZW5lcmljQ3VlRGF0YTo6Q29tcGxldGUpCisgICAgICAg
IG1fY3VlTWFwLmFkZChjdWVEYXRhLCBjdWUpOwogCiAgICAgYWRkQ3VlKFdURk1vdmUoY3VlKSk7
CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6dXBkYXRlR2VuZXJpY0N1ZShJbmJh
bmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqIGN1ZURhdGEpCit2b2lkIEluYmFu
ZEdlbmVyaWNUZXh0VHJhY2s6OnVwZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmIGN1ZURh
dGEpCiB7Ci0gICAgYXV0byogY3VlID0gbV9jdWVNYXAuZmluZCgqY3VlRGF0YSk7CisgICAgYXV0
byogY3VlID0gbV9jdWVNYXAuZmluZChjdWVEYXRhKTsKICAgICBpZiAoIWN1ZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgdXBkYXRlQ3VlRnJvbUN1ZURhdGEoY3VlLCBjdWVEYXRhKTsKKyAgICB1
cGRhdGVDdWVGcm9tQ3VlRGF0YSgqY3VlLCBjdWVEYXRhKTsKIAotICAgIGlmIChjdWVEYXRhLT5z
dGF0dXMoKSA9PSBHZW5lcmljQ3VlRGF0YTo6Q29tcGxldGUpCi0gICAgICAgIG1fY3VlTWFwLnJl
bW92ZSgqY3VlRGF0YSk7CisgICAgaWYgKGN1ZURhdGEuc3RhdHVzKCkgPT0gR2VuZXJpY0N1ZURh
dGE6OkNvbXBsZXRlKQorICAgICAgICBtX2N1ZU1hcC5yZW1vdmUoY3VlRGF0YSk7CiB9CiAKLXZv
aWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqIGN1ZURhdGEpCit2b2lkIEluYmFuZEdlbmVyaWNU
ZXh0VHJhY2s6OnJlbW92ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmIGN1ZURhdGEpCiB7Ci0g
ICAgYXV0byogY3VlID0gbV9jdWVNYXAuZmluZCgqY3VlRGF0YSk7CisgICAgYXV0byogY3VlID0g
bV9jdWVNYXAuZmluZChjdWVEYXRhKTsKICAgICBpZiAoY3VlKSB7Ci0gICAgICAgIExPRyhNZWRp
YSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVyaWNDdWUgcmVtb3ZpbmcgY3Vl
OiBzdGFydD0lcywgZW5kPSVzLCBjb250ZW50PVwiJXNcIlxuIiwgIHRvU3RyaW5nKGN1ZURhdGEt
PnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWVEYXRhLT5lbmRUaW1lKCkp
LnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAg
ICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1ZSBy
ZW1vdmluZyBjdWU6IHN0YXJ0PSVzLCBlbmQ9JXMsIGNvbnRlbnQ9XCIlc1wiXG4iLCAgdG9TdHJp
bmcoY3VlRGF0YS5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoY3VlRGF0YS5l
bmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEuY29udGVudCgpLnV0ZjgoKS5kYXRhKCkp
OwogICAgICAgICByZW1vdmVDdWUoKmN1ZSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgTE9HKE1l
ZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1ZSBVTkFCTEUgdG8g
ZmluZCBjdWU6IHN0YXJ0PSUuMmYsIGVuZD0lLjJmLCBjb250ZW50PVwiJXNcIlxuIiwgY3VlRGF0
YS0+c3RhcnRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS0+ZW5kVGltZSgpLnRvRG91YmxlKCks
IGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgTE9HKE1lZGlhLCAi
SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1ZSBVTkFCTEUgdG8gZmluZCBj
dWU6IHN0YXJ0PSUuMmYsIGVuZD0lLjJmLCBjb250ZW50PVwiJXNcIlxuIiwgY3VlRGF0YS5zdGFy
dFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLmVuZFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRh
LmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKICAgICB9CiB9CiAKQEAgLTE3OSwxNSArMTc2LDEz
IEBAIFdlYlZUVFBhcnNlciYgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cGFyc2VyKCkKICAgICBy
ZXR1cm4gKm1fd2ViVlRUUGFyc2VyOwogfQogCi12b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6
OnBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUs
IGNvbnN0IElTT1dlYlZUVEN1ZSYgY3VlRGF0YSkKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFj
azo6cGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IElTT1dlYlZUVEN1ZSYgY3VlRGF0YSkKIHsKLSAg
ICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7
CiAgICAgcGFyc2VyKCkucGFyc2VDdWVEYXRhKGN1ZURhdGEpOwogfQogCi12b2lkIEluYmFuZEdl
bmVyaWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRURmlsZUhlYWRlcihJbmJhbmRUZXh0VHJhY2tQcml2
YXRlKiB0cmFja1ByaXZhdGUsIFN0cmluZyYmIGhlYWRlcikKK3ZvaWQgSW5iYW5kR2VuZXJpY1Rl
eHRUcmFjazo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmIGhlYWRlcikKIHsKLSAgICBB
U1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAg
ICAgcGFyc2VyKCkucGFyc2VGaWxlSGVhZGVyKFdURk1vdmUoaGVhZGVyKSk7CiB9CiAKQEAgLTIx
NCw3ICsyMDksNyBAQCB2b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6Om5ld1JlZ2lvbnNQYXJz
ZWQoKQogCiAgICAgZm9yIChhdXRvJiByZWdpb24gOiBuZXdSZWdpb25zKSB7CiAgICAgICAgIHJl
Z2lvbi0+c2V0VHJhY2sodGhpcyk7Ci0gICAgICAgIHJlZ2lvbnMoKS0+YWRkKHJlZ2lvbik7Cisg
ICAgICAgIHJlZ2lvbnMoKS0+YWRkKHJlZ2lvbi5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1Rl
eHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRy
YWNrLmgKaW5kZXggMWMzNDhiMmRhNTUxMDNlYmJmY2E4NzhkNDBiN2Y5MDc4OWJkNDQ2My4uM2Rj
ZWVhNDVmMGRjNTQ1NjIwOTBkNTI5MTU4OWIyMGM4YjRkYzQ5MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmgKQEAgLTMzLDkgKzMz
LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEb2N1bWVudDsKLWNsYXNzIElu
YmFuZFRleHRUcmFja1ByaXZhdGU7Ci0KIGNsYXNzIEdlbmVyaWNUZXh0VHJhY2tDdWVNYXAgewog
cHVibGljOgogICAgIHZvaWQgYWRkKEdlbmVyaWNDdWVEYXRhJiwgVGV4dFRyYWNrQ3VlR2VuZXJp
YyYpOwpAQCAtNTYsMjMgKzUzLDIyIEBAIHByaXZhdGU6CiAKIGNsYXNzIEluYmFuZEdlbmVyaWNU
ZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgSW5iYW5kVGV4dFRyYWNrLCBwcml2YXRlIFdlYlZUVFBh
cnNlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbmJhbmRHZW5lcmljVGV4dFRy
YWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBh
c3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHN0YXRpYyBSZWY8SW5iYW5k
R2VuZXJpY1RleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJh
Y2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CiAgICAgdmlydHVhbCB+SW5iYW5k
R2VuZXJpY1RleHRUcmFjaygpOwogCiBwcml2YXRlOgotICAgIEluYmFuZEdlbmVyaWNUZXh0VHJh
Y2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIEluYmFuZEdlbmVyaWNUZXh0VHJhY2soU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIFRleHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1By
aXZhdGUmKTsKIAotICAgIHZvaWQgYWRkR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRl
KiwgUGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0YT4pIGZpbmFsOwotICAgIHZvaWQgdXBkYXRlR2Vu
ZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqKSBmaW5hbDsK
LSAgICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVy
aWNDdWVEYXRhKikgZmluYWw7CisgICAgdm9pZCBhZGRHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRh
JikgZmluYWw7CisgICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgZmlu
YWw7CisgICAgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgZmluYWw7CiAg
ICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVtb3ZlQ3VlKFRleHRUcmFja0N1ZSYpIGZpbmFsOwogCi0g
ICAgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVHZW5lcmljPiBjcmVhdGVDdWUoUGFzc1JlZlB0cjxH
ZW5lcmljQ3VlRGF0YT4pOwotICAgIHZvaWQgdXBkYXRlQ3VlRnJvbUN1ZURhdGEoVGV4dFRyYWNr
Q3VlR2VuZXJpYyosIEdlbmVyaWNDdWVEYXRhKik7CisgICAgdm9pZCB1cGRhdGVDdWVGcm9tQ3Vl
RGF0YShUZXh0VHJhY2tDdWVHZW5lcmljJiwgR2VuZXJpY0N1ZURhdGEmKTsKIAogICAgIFdlYlZU
VFBhcnNlciYgcGFyc2VyKCk7Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSosIGNvbnN0IElTT1dlYlZUVEN1ZSYpIGZpbmFsOwotICAgIHZvaWQgcGFy
c2VXZWJWVFRGaWxlSGVhZGVyKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBTdHJpbmcmJikgZmlu
YWw7CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJikgZmlu
YWw7CisgICAgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYpIGZpbmFsOwogCiAg
ICAgdm9pZCBuZXdDdWVzUGFyc2VkKCkgZmluYWw7CiAgICAgdm9pZCBuZXdSZWdpb25zUGFyc2Vk
KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRl
eHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5j
cHAKaW5kZXggZjJlZWVhZTBmYzAwOTRlNDI4YTg3YTY1ZDE4MzE3ZDNjZmY0NDA3OS4uOTJjMTRj
NzhhNWM4NWQ3MTk4ZDRhNDNkYzhhODcwZjE4ZmIyMjk1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcApAQCAtNDMsMjQgKzQzLDIwIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2s+IEluYmFuZFRl
eHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsCi0gICAgVGV4
dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4g
dHJhY2tQcml2YXRlKQorUmVmPEluYmFuZFRleHRUcmFjaz4gSW5iYW5kVGV4dFRyYWNrOjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50JiBjbGll
bnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKLSAgICBzd2l0Y2gg
KHRyYWNrUHJpdmF0ZS0+Y3VlRm9ybWF0KCkpIHsKKyAgICBzd2l0Y2ggKHRyYWNrUHJpdmF0ZS5j
dWVGb3JtYXQoKSkgewogICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6RGF0YToKICAg
ICAgICAgcmV0dXJuIEluYmFuZERhdGFUZXh0VHJhY2s6OmNyZWF0ZShjb250ZXh0LCBjbGllbnQs
IHRyYWNrUHJpdmF0ZSk7CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpHZW5lcmlj
OgogICAgICAgICByZXR1cm4gSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6Y3JlYXRlKGNvbnRleHQs
IGNsaWVudCwgdHJhY2tQcml2YXRlKTsKICAgICBjYXNlIEluYmFuZFRleHRUcmFja1ByaXZhdGU6
OldlYlZUVDoKICAgICAgICAgcmV0dXJuIEluYmFuZFdlYlZUVFRleHRUcmFjazo6Y3JlYXRlKGNv
bnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKTsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogfQogCi1JbmJhbmRU
ZXh0VHJhY2s6OkluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2
YXRlPiB0cmFja1ByaXZhdGUpCi0gICAgOiBUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBlbXB0
eUF0b20sIHRyYWNrUHJpdmF0ZS0+aWQoKSwgdHJhY2tQcml2YXRlLT5sYWJlbCgpLCB0cmFja1By
aXZhdGUtPmxhbmd1YWdlKCksIEluQmFuZCkKK0luYmFuZFRleHRUcmFjazo6SW5iYW5kVGV4dFRy
YWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xp
ZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgOiBUZXh0VHJh
Y2soJmNvbnRleHQsICZjbGllbnQsIGVtcHR5QXRvbSwgdHJhY2tQcml2YXRlLmlkKCksIHRyYWNr
UHJpdmF0ZS5sYWJlbCgpLCB0cmFja1ByaXZhdGUubGFuZ3VhZ2UoKSwgSW5CYW5kKQogICAgICwg
bV9wcml2YXRlKHRyYWNrUHJpdmF0ZSkKIHsKICAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlz
KTsKQEAgLTcyLDEyICs2OCw5IEBAIEluYmFuZFRleHRUcmFjazo6fkluYmFuZFRleHRUcmFjaygp
CiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiB9CiAKLXZvaWQgSW5iYW5kVGV4
dFRyYWNrOjpzZXRQcml2YXRlKFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJh
Y2tQcml2YXRlKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6OnNldFByaXZhdGUoSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAg
IEFTU0VSVCh0cmFja1ByaXZhdGUpOwotCi0gICAgaWYgKG1fcHJpdmF0ZSA9PSB0cmFja1ByaXZh
dGUpCisgICAgaWYgKG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKQEAgLTExNSw4MCAr
MTA4LDYwIEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrOjpzZXRNb2RlSW50ZXJuYWwoTW9kZSBtb2Rl
KQogCiBib29sIEluYmFuZFRleHRUcmFjazo6aXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0CiB7Ci0g
ICAgaWYgKCFtX3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIHJldHVybiBt
X3ByaXZhdGUtPmlzQ2xvc2VkQ2FwdGlvbnMoKTsKIH0KIAogYm9vbCBJbmJhbmRUZXh0VHJhY2s6
OmlzU0RIKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPmlzU0RIKCk7CiB9CiAKIGJvb2wgSW5i
YW5kVGV4dFRyYWNrOjpjb250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMoKSBjb25zdAogewotICAg
IGlmICghbV9wcml2YXRlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCiAgICAgcmV0dXJu
IG1fcHJpdmF0ZS0+Y29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCk7CiB9CiAKIGJvb2wgSW5i
YW5kVGV4dFRyYWNrOjppc01haW5Qcm9ncmFtQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFt
X3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKICAgICByZXR1cm4gbV9wcml2
YXRlLT5pc01haW5Qcm9ncmFtQ29udGVudCgpOwogfQogCiBib29sIEluYmFuZFRleHRUcmFjazo6
aXNFYXN5VG9SZWFkKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPmlzRWFzeVRvUmVhZCgpOwog
fQogICAgIAogc2l6ZV90IEluYmFuZFRleHRUcmFjazo6aW5iYW5kVHJhY2tJbmRleCgpCiB7Ci0g
ICAgQVNTRVJUKG1fcHJpdmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dHJhY2tJbmRleCgp
OwogfQogCiBBdG9taWNTdHJpbmcgSW5iYW5kVGV4dFRyYWNrOjppbkJhbmRNZXRhZGF0YVRyYWNr
RGlzcGF0Y2hUeXBlKCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKICAgICByZXR1
cm4gbV9wcml2YXRlLT5pbkJhbmRNZXRhZGF0YVRyYWNrRGlzcGF0Y2hUeXBlKCk7CiB9CiAKLXZv
aWQgSW5iYW5kVGV4dFRyYWNrOjppZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2
YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6OmlkQ2hh
bmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQ
cml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRJZChpZCk7CiB9CiAK
LXZvaWQgSW5iYW5kVGV4dFRyYWNrOjpsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJh
Y2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQordm9pZCBJbmJhbmRUZXh0VHJh
Y2s6OmxhYmVsQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQogewotICAgIEFTU0VS
VF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBz
ZXRMYWJlbChsYWJlbCk7CiB9CiAKLXZvaWQgSW5iYW5kVGV4dFRyYWNrOjpsYW5ndWFnZUNoYW5n
ZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxh
bmd1YWdlKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6Omxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9t
aWNTdHJpbmcmIGxhbmd1YWdlKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0
cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRMYW5ndWFnZShsYW5ndWFnZSk7CiB9
CiAKLXZvaWQgSW5iYW5kVGV4dFRyYWNrOjp3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2UqIHRy
YWNrUHJpdmF0ZSkKK3ZvaWQgSW5iYW5kVGV4dFRyYWNrOjp3aWxsUmVtb3ZlKCkKIHsKLSAgICBp
ZiAoIW1lZGlhRWxlbWVudCgpKQorICAgIGF1dG8qIGVsZW1lbnQgPSBtZWRpYUVsZW1lbnQoKTsK
KyAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlRfVU5VU0VEKHRy
YWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7Ci0gICAgbWVkaWFFbGVtZW50
KCktPnJlbW92ZVRleHRUcmFjaygqdGhpcyk7CisgICAgZWxlbWVudC0+cmVtb3ZlVGV4dFRyYWNr
KCp0aGlzKTsKIH0KIAogdm9pZCBJbmJhbmRUZXh0VHJhY2s6OnVwZGF0ZUtpbmRGcm9tUHJpdmF0
ZSgpCkBAIC0xOTYsMzQgKzE2OSwzMCBAQCB2b2lkIEluYmFuZFRleHRUcmFjazo6dXBkYXRlS2lu
ZEZyb21Qcml2YXRlKCkKICAgICBzd2l0Y2ggKG1fcHJpdmF0ZS0+a2luZCgpKSB7CiAgICAgY2Fz
ZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpTdWJ0aXRsZXM6CiAgICAgICAgIHNldEtpbmQoS2lu
ZDo6U3VidGl0bGVzKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNl
IEluYmFuZFRleHRUcmFja1ByaXZhdGU6OkNhcHRpb25zOgogICAgICAgICBzZXRLaW5kKEtpbmQ6
OkNhcHRpb25zKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIElu
YmFuZFRleHRUcmFja1ByaXZhdGU6OkRlc2NyaXB0aW9uczoKICAgICAgICAgc2V0S2luZChLaW5k
OjpEZXNjcmlwdGlvbnMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6Q2hhcHRlcnM6CiAgICAgICAgIHNldEtpbmQoS2lu
ZDo6Q2hhcHRlcnMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6TWV0YWRhdGE6CiAgICAgICAgIHNldEtpbmQoS2luZDo6
TWV0YWRhdGEpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZTo6Rm9yY2VkOgogICAgICAgICBzZXRLaW5kKEtpbmQ6OkZvcmNl
ZCk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlOjpOb25lOgotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiB9CiAKIE1lZGlhVGltZSBJbmJhbmRUZXh0VHJhY2s6OnN0YXJ0VGltZVZhcmlhbmNlKCkgY29u
c3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6emVy
b1RpbWUoKTsKLSAgICAKICAgICByZXR1cm4gbV9wcml2YXRlLT5zdGFydFRpbWVWYXJpYW5jZSgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRU
cmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suaAppbmRl
eCA5Y2QwMjdjMzZjODViMGFhNTE1NjdlZTY5NmUxMjY2ZDA4NDVmMzNlLi44NjQ4MmMyOGJkMDIy
OTYwNGIzYWYyNjk1YTE3M2U1NzI0OTk0NmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svSW5iYW5kVGV4dFRyYWNrLmgKQEAgLTM1LDkgKzM1LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBJbmJhbmRUZXh0VHJhY2sgOiBwdWJsaWMgVGV4dFRyYWNrLCBwdWJsaWMg
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCB7CitjbGFzcyBJbmJhbmRUZXh0VHJhY2sgOiBw
dWJsaWMgVGV4dFRyYWNrLCBwcml2YXRlIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gY3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFu
ZFRleHRUcmFja1ByaXZhdGU+KTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZFRleHRUcmFjaz4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlJik7CiAgICAgdmlydHVhbCB+SW5iYW5kVGV4dFRyYWNrKCk7CiAKICAgICBi
b29sIGlzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdCBvdmVycmlkZTsKQEAgLTUwLDM4ICs1MCwzOCBA
QCBwdWJsaWM6CiAKICAgICBBdG9taWNTdHJpbmcgaW5CYW5kTWV0YWRhdGFUcmFja0Rpc3BhdGNo
VHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZXRQcml2YXRlKFBhc3NSZWZQdHI8
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHZvaWQgc2V0UHJpdmF0ZShJbmJhbmRUZXh0
VHJhY2tQcml2YXRlJik7CiAKIHByb3RlY3RlZDoKLSAgICBJbmJhbmRUZXh0VHJhY2soU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZT4pOworICAgIEluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogCiAgICAg
dm9pZCBzZXRNb2RlSW50ZXJuYWwoTW9kZSk7CiAgICAgdm9pZCB1cGRhdGVLaW5kRnJvbVByaXZh
dGUoKTsKIAotICAgIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiBtX3ByaXZhdGU7Cisg
ICAgUmVmPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IG1fcHJpdmF0ZTsKIAogcHJpdmF0ZToKICAg
ICBib29sIGlzSW5iYW5kKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQg
aWRDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWlj
U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRl
QmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbFJlbW92
ZShUcmFja1ByaXZhdGVCYXNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBpZENoYW5nZWQoY29uc3Qg
QXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBsYWJlbENoYW5nZWQoY29uc3QgQXRv
bWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRv
bWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgb3ZlcnJpZGU7CiAK
LSAgICB2b2lkIGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlh
VGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkgb3ZlcnJpZGUg
eyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRp
YVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpIG92ZXJyaWRl
IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQot
ICAgIHZvaWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFU
aW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXBy
ZXNlbnRhdGlvbj4sIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KLSAgICB2b2lkIHVwZGF0ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNv
bnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBs
YXRmb3JtUmVwcmVzZW50YXRpb24+KSBvdmVycmlkZSAgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQotICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3Qg
TWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZv
cm1SZXByZXNlbnRhdGlvbj4pIG92ZXJyaWRlICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Cisg
ICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFJl
ZjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4mJiwgY29uc3QgU3RyaW5nJikgb3Zl
cnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShj
b25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBTZXJpYWxpemVkUGxhdGZvcm1SZXBy
ZXNlbnRhdGlvbiYpIG92ZXJyaWRlICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9p
ZCByZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNlcmlh
bGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uJikgb3ZlcnJpZGUgIHsgQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KICNlbmRpZgogCi0gICAgdm9pZCBhZGRHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFj
a1ByaXZhdGUqLCBQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPikgb3ZlcnJpZGUgeyBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQotICAgIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9Ci0gICAgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUq
LCBHZW5lcmljQ3VlRGF0YSopIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAg
ICB2b2lkIGFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKSBvdmVycmlkZSB7IEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRh
Jikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgcmVtb3ZlR2Vu
ZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7
IH0KIAotICAgIHZvaWQgcGFyc2VXZWJWVFRGaWxlSGVhZGVyKEluYmFuZFRleHRUcmFja1ByaXZh
dGUqLCBTdHJpbmcmJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZv
aWQgcGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBjaGFy
KiwgdW5zaWduZWQpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2b2lk
IHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNPV2Vi
VlRUQ3VlJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgcGFy
c2VXZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgY2hhciosIHVuc2lnbmVk
KSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBwYXJzZVdlYlZU
VEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQogCiAgICAgTWVkaWFUaW1lIHN0YXJ0VGltZVZhcmlhbmNlKCkgY29uc3Qgb3ZlcnJp
ZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJW
VFRUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRU
ZXh0VHJhY2suY3BwCmluZGV4IGU1NDBlNDk0MWFlY2E4NmMwZmZlYTc1MzRiN2FhMjI2YjEyY2My
YTYuLmM5ODEyNTE0ZjViYzJmZmZkMzhjYjM4ZjhjNmY5YTI4NTc5ZTk5MTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAKQEAg
LTI0LDI3ICsyNCwyNSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJ
bmJhbmRXZWJWVFRUZXh0VHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotI2lu
Y2x1ZGUgIkluYmFuZFdlYlZUVFRleHRUcmFjay5oIgotCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgogI2luY2x1ZGUgIlZUVFJlZ2lvbkxpc3QuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPEluYmFuZFRleHRUcmFjaz4g
SW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKK2lubGluZSBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6Oklu
YmFuZFdlYlZUVFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUZXh0
VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRl
KQorICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKQog
ewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZFdlYlZUVFRleHRUcmFjayhjb250ZXh0
LCBjbGllbnQsIHBsYXllclByaXZhdGUpKTsKIH0KIAotSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpJ
bmJhbmRXZWJWVFRUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4
dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4g
dHJhY2tQcml2YXRlKQotICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgdHJh
Y2tQcml2YXRlKQorUmVmPEluYmFuZFRleHRUcmFjaz4gSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50JiBj
bGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBJbmJhbmRXZWJWVFRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0
cmFja1ByaXZhdGUpKTsKIH0KIAogSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjp+SW5iYW5kV2ViVlRU
VGV4dFRyYWNrKCkKQEAgLTU4LDE1ICs1NiwxMyBAQCBXZWJWVFRQYXJzZXImIEluYmFuZFdlYlZU
VFRleHRUcmFjazo6cGFyc2VyKCkKICAgICByZXR1cm4gKm1fd2ViVlRUUGFyc2VyOwogfQogCi12
b2lkIEluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRU
cmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVu
Z3RoKQordm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3VlRGF0YShjb25z
dCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFj
a1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHBhcnNlcigpLnBhcnNl
Qnl0ZXMoZGF0YSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBh
cnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIGNv
bnN0IElTT1dlYlZUVEN1ZSYgY3VlRGF0YSkKK3ZvaWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpw
YXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJiBjdWVEYXRhKQogewotICAgIEFT
U0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAg
ICBwYXJzZXIoKS5wYXJzZUN1ZURhdGEoY3VlRGF0YSk7CiB9CiAKQEAgLTc0LDEwICs3MCw4IEBA
IHZvaWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpuZXdDdWVzUGFyc2VkKCkKIHsKICAgICBWZWN0
b3I8UmVmUHRyPFdlYlZUVEN1ZURhdGE+PiBjdWVzOwogICAgIHBhcnNlcigpLmdldE5ld0N1ZXMo
Y3Vlcyk7Ci0KICAgICBmb3IgKGF1dG8mIGN1ZURhdGEgOiBjdWVzKSB7CiAgICAgICAgIGF1dG8g
dnR0Q3VlID0gVlRUQ3VlOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKmN1ZURh
dGEpOwotCiAgICAgICAgIGlmIChoYXNDdWUodnR0Q3VlLnB0cigpLCBUZXh0VHJhY2tDdWU6Okln
bm9yZUR1cmF0aW9uKSkgewogICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kV2ViVlRUVGV4
dFRyYWNrOjpuZXdDdWVzUGFyc2VkIGlnbm9yaW5nIGFscmVhZHkgYWRkZWQgY3VlOiBzdGFydD0l
LjJmLCBlbmQ9JS4yZiwgY29udGVudD1cIiVzXCJcbiIsIHZ0dEN1ZS0+c3RhcnRUaW1lKCksIHZ0
dEN1ZS0+ZW5kVGltZSgpLCB2dHRDdWUtPnRleHQoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAg
ICAgIHJldHVybjsKQEAgLTkwLDEzICs4NCwxMiBAQCB2b2lkIEluYmFuZFdlYlZUVFRleHRUcmFj
azo6bmV3UmVnaW9uc1BhcnNlZCgpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxWVFRSZWdpb24+PiBu
ZXdSZWdpb25zOwogICAgIHBhcnNlcigpLmdldE5ld1JlZ2lvbnMobmV3UmVnaW9ucyk7Ci0KICAg
ICBmb3IgKGF1dG8mIHJlZ2lvbiA6IG5ld1JlZ2lvbnMpIHsKICAgICAgICAgcmVnaW9uLT5zZXRU
cmFjayh0aGlzKTsKLSAgICAgICAgcmVnaW9ucygpLT5hZGQocmVnaW9uKTsKKyAgICAgICAgcmVn
aW9ucygpLT5hZGQocmVnaW9uLnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KIH0KLSAgICAKKwog
dm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmZpbGVGYWlsZWRUb1BhcnNlKCkKIHsKICAgICBM
T0coTWVkaWEsICJFcnJvciBwYXJzaW5nIFdlYlZUVCBzdHJlYW0uIik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suaAppbmRleCA4Y2M3N2E5
Y2VkYTNjMzdiYjFmNmUxZDVhNTkzZDI2M2MzZDI0OWVmLi4yYTUxZTM4NWE5ZjJhNDQ5ZjhlOTlj
ZGY0YjNhYjRjMGJhZmVjZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0luYmFuZFdlYlZUVFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
SW5iYW5kV2ViVlRUVGV4dFRyYWNrLmgKQEAgLTMwLDI1ICszMCwyNCBAQAogI2luY2x1ZGUgIklu
YmFuZFRleHRUcmFjay5oIgogI2luY2x1ZGUgIldlYlZUVFBhcnNlci5oIgogI2luY2x1ZGUgPG1l
bW9yeT4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgSW5iYW5kV2ViVlRUVGV4dFRyYWNrIGZpbmFsIDogcHVibGljIEluYmFuZFRleHRUcmFj
aywgcHJpdmF0ZSBXZWJWVFRQYXJzZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFj
a0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHN0YXRp
YyBSZWY8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRl
eHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKICAgICB2aXJ0dWFsIH5J
bmJhbmRXZWJWVFRUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKLSAgICBJbmJhbmRXZWJWVFRUZXh0
VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQ
dHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIEluYmFuZFdlYlZUVFRleHRUcmFjayhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZSYpOwogCiAgICAgV2ViVlRUUGFyc2VyJiBwYXJzZXIoKTsKLSAgICB2b2lkIHBhcnNl
V2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgY2hhciogZGF0YSwg
dW5zaWduZWQgbGVuZ3RoKSBvdmVycmlkZTsKLSAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNPV2ViVlRUQ3VlJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVu
Z3RoKSBmaW5hbDsKKyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRD
dWUmKSBmaW5hbDsKIAotICAgIHZvaWQgbmV3Q3Vlc1BhcnNlZCgpIG92ZXJyaWRlOwotICAgIHZv
aWQgbmV3UmVnaW9uc1BhcnNlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgZmlsZUZhaWxlZFRvUGFy
c2UoKSBvdmVycmlkZTsKKyAgICB2b2lkIG5ld0N1ZXNQYXJzZWQoKSBmaW5hbDsKKyAgICB2b2lk
IG5ld1JlZ2lvbnNQYXJzZWQoKSBmaW5hbDsKKyAgICB2b2lkIGZpbGVGYWlsZWRUb1BhcnNlKCkg
ZmluYWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViVlRUUGFyc2VyPiBtX3dlYlZUVFBhcnNl
cjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4
dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2su
Y3BwCmluZGV4IDIxMGY2YTlkZjVhYzc3MTc1YTk4MTJhYzA1MTA0MjIzMmEzNDBmMzMuLmNlZmEz
ZmJlMGIxMzkyNmM2MjdmMGY2NGVlM2Q4ZDQ0NmNhYTA4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3BwCkBAIC05NiwxMSArOTYsMTEgQEAg
dm9pZCBMb2FkYWJsZVRleHRUcmFjazo6bmV3Q3Vlc0F2YWlsYWJsZShUZXh0VHJhY2tMb2FkZXIq
IGxvYWRlcikKIAogICAgIGZvciAoYXV0byYgbmV3Q3VlIDogbmV3Q3VlcykgewogICAgICAgICBu
ZXdDdWUtPnNldFRyYWNrKHRoaXMpOwotICAgICAgICBtX2N1ZXMtPmFkZChuZXdDdWUpOworICAg
ICAgICBtX2N1ZXMtPmFkZChuZXdDdWUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogCiAgICAg
aWYgKGNsaWVudCgpKQotICAgICAgICBjbGllbnQoKS0+dGV4dFRyYWNrQWRkQ3Vlcyh0aGlzLCBt
X2N1ZXMuZ2V0KCkpOworICAgICAgICBjbGllbnQoKS0+dGV4dFRyYWNrQWRkQ3VlcygqdGhpcywg
Km1fY3Vlcyk7CiB9CiAKIHZvaWQgTG9hZGFibGVUZXh0VHJhY2s6OmN1ZUxvYWRpbmdDb21wbGV0
ZWQoVGV4dFRyYWNrTG9hZGVyKiBsb2FkZXIsIGJvb2wgbG9hZGluZ0ZhaWxlZCkKQEAgLTEyMiw3
ICsxMjIsNyBAQCB2b2lkIExvYWRhYmxlVGV4dFRyYWNrOjpuZXdSZWdpb25zQXZhaWxhYmxlKFRl
eHRUcmFja0xvYWRlciogbG9hZGVyKQogCiAgICAgZm9yIChhdXRvJiBuZXdSZWdpb24gOiBuZXdS
ZWdpb25zKSB7CiAgICAgICAgIG5ld1JlZ2lvbi0+c2V0VHJhY2sodGhpcyk7Ci0gICAgICAgIHJl
Z2lvbnMoKS0+YWRkKG5ld1JlZ2lvbik7CisgICAgICAgIHJlZ2lvbnMoKS0+YWRkKG5ld1JlZ2lv
bi5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrLmNwcAppbmRleCA5NmJjZDdlZDM1MGQyOGUwNDJlYWU2OGNlZDUyMDFhNzFmM2M1
ZjA5Li5iMGM4NjAwMDNkZmYxYzgwZDhlNjkzMjQ1N2ZiYzEzOWU0ZTJiN2QyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCkBAIC0xMjAsOCArMTIwLDcgQEAgVGV4dFRy
YWNrOjp+VGV4dFRyYWNrKCkKIHsKICAgICBpZiAobV9jdWVzKSB7CiAgICAgICAgIGlmIChtX2Ns
aWVudCkKLSAgICAgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKHRoaXMsIG1f
Y3Vlcy5nZXQoKSk7Ci0KKyAgICAgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVz
KCp0aGlzLCAqbV9jdWVzKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2N1ZXMt
Pmxlbmd0aCgpOyArK2kpCiAgICAgICAgICAgICBtX2N1ZXMtPml0ZW0oaSktPnNldFRyYWNrKG51
bGxwdHIpOwogICAgIH0KQEAgLTE4OSw3ICsxODgsNyBAQCB2b2lkIFRleHRUcmFjazo6c2V0S2lu
ZChLaW5kIG5ld0tpbmQpCiAgICAgLy8gMy4gSWYgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUg
b24gdGhpcyB0cmFjayBpcyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNp
bXBsZQogICAgIC8vIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCBzb3VyY2VCdWZmZXIudGV4dFRyYWNr
cy4KICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVmZmVyLT50ZXh0
VHJhY2tzKCktPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXIt
PnRleHRUcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICAgICAvLyA0LiBRdWV1ZSBh
IHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2UgYXQgdGhlIFRleHRUcmFj
a0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdGV4dFRyYWNrcyBhdHRyaWJ1
dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCkBAIC0xOTgsNyArMTk3LDcgQEAgdm9pZCBUZXh0
VHJhY2s6OnNldEtpbmQoS2luZCBuZXdLaW5kKQogI2VuZGlmCiAKICAgICBpZiAobV9jbGllbnQg
JiYgb2xkS2luZCAhPSBtX2tpbmQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tLaW5kQ2hh
bmdlZCh0aGlzKTsKKyAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja0tpbmRDaGFuZ2VkKCp0aGlz
KTsKIH0KIAogdm9pZCBUZXh0VHJhY2s6OnNldEtpbmRLZXl3b3JkSWdub3JpbmdBU0NJSUNhc2Uo
U3RyaW5nVmlldyBrZXl3b3JkKQpAQCAtMjM2LDcgKzIzNSw3IEBAIHZvaWQgVGV4dFRyYWNrOjpz
ZXRNb2RlKE1vZGUgbW9kZSkKICAgICAvLyBJZiBtb2RlIGNoYW5nZXMgdG8gZGlzYWJsZWQsIHJl
bW92ZSB0aGlzIHRyYWNrJ3MgY3VlcyBmcm9tIHRoZSBjbGllbnQKICAgICAvLyBiZWNhdXNlIHRo
ZXkgd2lsbCBubyBsb25nZXIgYmUgYWNjZXNzaWJsZSBmcm9tIHRoZSBjdWVzKCkgZnVuY3Rpb24u
CiAgICAgaWYgKG1vZGUgPT0gTW9kZTo6RGlzYWJsZWQgJiYgbV9jbGllbnQgJiYgbV9jdWVzKQot
ICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0aGlzLCBtX2N1ZXMuZ2V0KCkp
OworICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlcygqdGhpcywgKm1fY3Vlcyk7
CiAKICAgICBpZiAobW9kZSAhPSBNb2RlOjpTaG93aW5nICYmIG1fY3VlcykgewogICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkgewpAQCAtMjQ5LDcg
KzI0OCw3IEBAIHZvaWQgVGV4dFRyYWNrOjpzZXRNb2RlKE1vZGUgbW9kZSkKICAgICBtX21vZGUg
PSBtb2RlOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNr
TW9kZUNoYW5nZWQodGhpcyk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tNb2RlQ2hhbmdl
ZCgqdGhpcyk7CiB9CiAKIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6Y3VlcygpCkBAIC0y
NzAsNyArMjY5LDcgQEAgdm9pZCBUZXh0VHJhY2s6OnJlbW92ZUFsbEN1ZXMoKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tS
ZW1vdmVDdWVzKHRoaXMsIG1fY3Vlcy5nZXQoKSk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJh
Y2tSZW1vdmVDdWVzKCp0aGlzLCAqbV9jdWVzKTsKICAgICAKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkKICAgICAgICAgbV9jdWVzLT5pdGVtKGkpLT5z
ZXRUcmFjayhudWxscHRyKTsKQEAgLTI4OCw3ICsyODcsNyBAQCBUZXh0VHJhY2tDdWVMaXN0KiBU
ZXh0VHJhY2s6OmFjdGl2ZUN1ZXMoKSBjb25zdAogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9y
Zy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI2RvbS10ZXh0dHJhY2stYWN0aXZlY3Vlcwog
ICAgIGlmICghbV9jdWVzIHx8IG1fbW9kZSA9PSBNb2RlOjpEaXNhYmxlZCkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIG1fY3Vlcy0+YWN0aXZlQ3VlcygpOworICAgIHJldHVy
biAmbV9jdWVzLT5hY3RpdmVDdWVzKCk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFRleHRUcmFj
azo6YWRkQ3VlKFJlZjxUZXh0VHJhY2tDdWU+JiYgY3VlKQpAQCAtMzE4LDEwICszMTcsMTAgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gVGV4dFRyYWNrOjphZGRDdWUoUmVmPFRleHRUcmFja0N1ZT4mJiBj
dWUpCiAKICAgICAvLyAyLiBBZGQgY3VlIHRvIHRoZSBtZXRob2QncyBUZXh0VHJhY2sgb2JqZWN0
J3MgdGV4dCB0cmFjaydzIHRleHQgdHJhY2sgbGlzdCBvZiBjdWVzLgogICAgIGN1ZS0+c2V0VHJh
Y2sodGhpcyk7Ci0gICAgZW5zdXJlVGV4dFRyYWNrQ3VlTGlzdCgpLmFkZChjdWUucHRyKCkpOwor
ICAgIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKS5hZGQoY3VlLmNvcHlSZWYoKSk7CiAgICAgCiAg
ICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrQWRkQ3VlKHRoaXMs
IGN1ZSk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tBZGRDdWUoKnRoaXMsIGN1ZSk7CiAK
ICAgICByZXR1cm4geyB9OwogfQpAQCAtMzM4LDEyICszMzcsMTIgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gVGV4dFRyYWNrOjpyZW1vdmVDdWUoVGV4dFRyYWNrQ3VlJiBjdWUpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBOT1RfRk9VTkRfRVJSIH07CiAKICAgICAvLyAyLiBSZW1vdmUgY3VlIGZy
b20gdGhlIG1ldGhvZCdzIFRleHRUcmFjayBvYmplY3QncyB0ZXh0IHRyYWNrJ3MgdGV4dCB0cmFj
ayBsaXN0IG9mIGN1ZXMuCi0gICAgaWYgKCFtX2N1ZXMgfHwgIW1fY3Vlcy0+cmVtb3ZlKCZjdWUp
KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFURV9FUlIgfTsKLQorICAg
IEFTU0VSVChtX2N1ZXMpOworICAgIG1fY3Vlcy0+cmVtb3ZlKGN1ZSk7CisgICAgY3VlLnNldElz
QWN0aXZlKGZhbHNlKTsKICAgICBjdWUuc2V0VHJhY2sobnVsbHB0cik7CiAgICAgaWYgKG1fY2xp
ZW50KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKHRoaXMsIGN1ZSk7Cisg
ICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUoKnRoaXMsIGN1ZSk7CiAKICAgICBy
ZXR1cm4geyB9OwogfQpAQCAtMzkyLDEwICszOTEsOSBAQCB2b2lkIFRleHRUcmFjazo6YWRkUmVn
aW9uKFJlZlB0cjxWVFRSZWdpb24+JiYgcmVnaW9uKQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgLy8gT3RoZXJ3aXNlOiBhZGQgcmVnaW9uIHRvIHRoZSBtZXRob2QncyBUZXh0VHJhY2sg
b2JqZWN0J3MgdGV4dCB0cmFjawotICAgIC8vIGxpc3Qgb2YgcmVnaW9ucy4KKyAgICAvLyBPdGhl
cndpc2U6IGFkZCByZWdpb24gdG8gdGhlIG1ldGhvZCdzIFRleHRUcmFjayBvYmplY3QncyB0ZXh0
IHRyYWNrIGxpc3Qgb2YgcmVnaW9ucy4KICAgICByZWdpb24tPnNldFRyYWNrKHRoaXMpOwotICAg
IHJlZ2lvbkxpc3QuYWRkKFdURk1vdmUocmVnaW9uKSk7CisgICAgcmVnaW9uTGlzdC5hZGQocmVn
aW9uLnJlbGVhc2VOb25OdWxsKCkpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBUZXh0VHJhY2s6
OnJlbW92ZVJlZ2lvbihWVFRSZWdpb24qIHJlZ2lvbikKQEAgLTQwOCw5ICs0MDYsOCBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBUZXh0VHJhY2s6OnJlbW92ZVJlZ2lvbihWVFRSZWdpb24qIHJlZ2lvbikK
ICAgICBpZiAocmVnaW9uLT50cmFjaygpICE9IHRoaXMpCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOT1RfRk9VTkRfRVJSIH07CiAKLSAgICBpZiAoIW1fcmVnaW9ucyB8fCAhbV9yZWdpb25z
LT5yZW1vdmUocmVnaW9uKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfU1RB
VEVfRVJSIH07Ci0KKyAgICBBU1NFUlQobV9yZWdpb25zKTsKKyAgICBtX3JlZ2lvbnMtPnJlbW92
ZSgqcmVnaW9uKTsKICAgICByZWdpb24tPnNldFRyYWNrKG51bGxwdHIpOwogICAgIHJldHVybiB7
IH07CiB9CkBAIC00MjIsNyArNDE5LDcgQEAgdm9pZCBUZXh0VHJhY2s6OmN1ZVdpbGxDaGFuZ2Uo
VGV4dFRyYWNrQ3VlKiBjdWUpCiAKICAgICAvLyBUaGUgY3VlIG1heSBuZWVkIHRvIGJlIHJlcG9z
aXRpb25lZCBpbiB0aGUgbWVkaWEgZWxlbWVudCdzIGludGVydmFsIHRyZWUsIG1heSBuZWVkIHRv
CiAgICAgLy8gYmUgcmUtcmVuZGVyZWQsIGV0Yywgc28gcmVtb3ZlIGl0IGJlZm9yZSB0aGUgbW9k
aWZpY2F0aW9uLi4uCi0gICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZSh0aGlzLCAqY3Vl
KTsKKyAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKCp0aGlzLCAqY3VlKTsKIH0KIAog
dm9pZCBUZXh0VHJhY2s6OmN1ZURpZENoYW5nZShUZXh0VHJhY2tDdWUqIGN1ZSkKQEAgLTQzMSwx
MCArNDI4LDEwIEBAIHZvaWQgVGV4dFRyYWNrOjpjdWVEaWRDaGFuZ2UoVGV4dFRyYWNrQ3VlKiBj
dWUpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE1ha2Ugc3VyZSB0aGUgVGV4dFRyYWNrQ3Vl
TGlzdCBvcmRlciBpcyB1cC10by1kYXRlLgotICAgIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKS51
cGRhdGVDdWVJbmRleChjdWUpOworICAgIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKS51cGRhdGVD
dWVJbmRleCgqY3VlKTsKIAogICAgIC8vIC4uLiBhbmQgYWRkIGl0IGJhY2sgYWdhaW4uCi0gICAg
bV9jbGllbnQtPnRleHRUcmFja0FkZEN1ZSh0aGlzLCAqY3VlKTsKKyAgICBtX2NsaWVudC0+dGV4
dFRyYWNrQWRkQ3VlKCp0aGlzLCAqY3VlKTsKIH0KIAogaW50IFRleHRUcmFjazo6dHJhY2tJbmRl
eCgpCkBAIC01NjQsNyArNTYxLDcgQEAgdm9pZCBUZXh0VHJhY2s6OnNldExhbmd1YWdlKGNvbnN0
IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiAgICAgLy8gMy4gSWYgdGhlIHNvdXJjZUJ1ZmZlciBh
dHRyaWJ1dGUgb24gdGhpcyB0cmFjayBpcyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8g
ZmlyZSBhIHNpbXBsZQogICAgIC8vIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCBzb3VyY2VCdWZmZXIu
dGV4dFRyYWNrcy4KICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVm
ZmVyLT50ZXh0VHJhY2tzKCktPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKKyAgICAgICAgbV9zb3Vy
Y2VCdWZmZXItPnRleHRUcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICAgICAvLyA0
LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2UgYXQgdGhl
IFRleHRUcmFja0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdGV4dFRyYWNr
cyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UZXh0VHJhY2suaAppbmRleCBiODA0OWM3MGNhZTFhYTk3ODVjMDRhNTQ5OWJjN2FlNmM4MzBj
ZWRiLi5kY2UyMDEwNWY5ODc5YmVjM2IyN2E2ODk0YjlkNzg1YTIxN2UwYjM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKQEAgLTQ0LDEyICs0NCwxMiBAQCBjbGFzcyBWVFRS
ZWdpb25MaXN0OwogY2xhc3MgVGV4dFRyYWNrQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5UZXh0VHJhY2tDbGllbnQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrS2luZENo
YW5nZWQoVGV4dFRyYWNrKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hh
bmdlZChUZXh0VHJhY2sqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZXMo
VGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCopID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0
KikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgVGV4
dFRyYWNrQ3VlJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4
dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tL
aW5kQ2hhbmdlZChUZXh0VHJhY2smKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja01v
ZGVDaGFuZ2VkKFRleHRUcmFjayYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRk
Q3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1
ZUxpc3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sm
LCBUZXh0VHJhY2tDdWUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1
ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSA9IDA7CiB9OwogCiBjbGFzcyBUZXh0VHJhY2sg
OiBwdWJsaWMgVHJhY2tCYXNlLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXggZmNiYTE5ZDBk
YmJhZDRlMDA0NzkwOTFlY2Q1NmU4MjcyZGNlNThlZC4uM2RhNjZlMDVlMjc2NzlmZjUxMjM0M2I4
OWU0YTMzMzQ0ZjQ0YmRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
Q3VlLmNwcApAQCAtNDksOCArNDksNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRp
YyBjb25zdCBpbnQgaW52YWxpZEN1ZUluZGV4ID0gLTE7Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYg
VGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gY3VlKCJjdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0
cnVjdEZyb21MaXRlcmFsKTsKQEAgLTYwLDkgKzU4LDYgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBU
ZXh0VHJhY2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lkKCkKIFRleHRUcmFja0N1ZTo6VGV4dFRyYWNr
Q3VlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IE1lZGlhVGltZSYgc3Rh
cnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kKQogICAgIDogbV9zdGFydFRpbWUoc3RhcnQpCiAgICAg
LCBtX2VuZFRpbWUoZW5kKQotICAgICwgbV9jdWVJbmRleChpbnZhbGlkQ3VlSW5kZXgpCi0gICAg
LCBtX3Byb2Nlc3NpbmdDdWVDaGFuZ2VzKDApCi0gICAgLCBtX3RyYWNrKDApCiAgICAgLCBtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkKICAgICAsIG1faXNBY3RpdmUoZmFsc2UpCiAg
ICAgLCBtX3BhdXNlT25FeGl0KGZhbHNlKQpAQCAtMTQ5LDIzICsxNDQsNiBAQCB2b2lkIFRleHRU
cmFja0N1ZTo6c2V0UGF1c2VPbkV4aXQoYm9vbCB2YWx1ZSkKICAgICBtX3BhdXNlT25FeGl0ID0g
dmFsdWU7CiB9CiAKLWludCBUZXh0VHJhY2tDdWU6OmN1ZUluZGV4KCkKLXsKLSAgICBpZiAobV9j
dWVJbmRleCA9PSBpbnZhbGlkQ3VlSW5kZXgpIHsKLSAgICAgICAgQVNTRVJUKHRyYWNrKCkpOwot
ICAgICAgICBBU1NFUlQodHJhY2soKS0+Y3VlcygpKTsKLSAgICAgICAgaWYgKFRleHRUcmFja0N1
ZUxpc3QqIGN1ZUxpc3QgPSB0cmFjaygpLT5jdWVzKCkpCi0gICAgICAgICAgICBtX2N1ZUluZGV4
ID0gY3VlTGlzdC0+Z2V0Q3VlSW5kZXgodGhpcyk7Ci0gICAgfQotCi0gICAgcmV0dXJuIG1fY3Vl
SW5kZXg7Ci19Ci0KLXZvaWQgVGV4dFRyYWNrQ3VlOjppbnZhbGlkYXRlQ3VlSW5kZXgoKQotewot
ICAgIG1fY3VlSW5kZXggPSBpbnZhbGlkQ3VlSW5kZXg7Ci19Ci0KIGJvb2wgVGV4dFRyYWNrQ3Vl
OjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCkKIHsKICAgICAvLyBXaGVuIGEgVGV4dFRyYWNr
J3MgbW9kZSBpcyBkaXNhYmxlZDogbm8gY3VlcyBhcmUgYWN0aXZlLCBubyBldmVudHMgZmlyZWQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAppbmRleCA1NzM1MWRjNjBl
MmI2ZWFmNTA4MGYwMzA5YTQ1MTY4Zjc4MzBhNzM0Li4zNTZiNjMzNTk3NDYwNDdkNmIxZDFmOGY3
ZmRhMDhkMjg0NmI3OGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3Vl
LmgKQEAgLTY1LDkgKzY1LDYgQEAgcHVibGljOgogICAgIE1lZGlhVGltZSBlbmRNZWRpYVRpbWUo
KSBjb25zdCB7IHJldHVybiBtX2VuZFRpbWU7IH0KICAgICB2b2lkIHNldEVuZFRpbWUoY29uc3Qg
TWVkaWFUaW1lJik7CiAKLSAgICBpbnQgY3VlSW5kZXgoKTsKLSAgICB2b2lkIGludmFsaWRhdGVD
dWVJbmRleCgpOwotCiAgICAgYm9vbCBpc0FjdGl2ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJ
c0FjdGl2ZShib29sKTsKIApAQCAtMTExLDEwICsxMDgsOSBAQCBwcml2YXRlOgogICAgIFN0cmlu
ZyBtX2lkOwogICAgIE1lZGlhVGltZSBtX3N0YXJ0VGltZTsKICAgICBNZWRpYVRpbWUgbV9lbmRU
aW1lOwotICAgIGludCBtX2N1ZUluZGV4OwotICAgIGludCBtX3Byb2Nlc3NpbmdDdWVDaGFuZ2Vz
OworICAgIGludCBtX3Byb2Nlc3NpbmdDdWVDaGFuZ2VzIHsgMCB9OwogCi0gICAgVGV4dFRyYWNr
KiBtX3RyYWNrOworICAgIFRleHRUcmFjayogbV90cmFjayB7IG51bGxwdHIgfTsKIAogICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5jcHAKaW5kZXggZmZkOGVh
ZTRkOTkzNjQ4MGE2YTViYzM1OTJmZTA4MGI3MTZlMTNhMS4uYTE5NmU0MzFlYmFiZmFiYWJjYTVm
ZDhhN2EzNWM5MTY5YTUwYTFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UZXh0VHJhY2tDdWVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZUxpc3QuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjksMTE3ICszMCwxMDMgQEAKIAogI2luY2x1ZGUgIlRleHRUcmFja0N1
ZUxpc3QuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworLy8gQ2hlY2tpbmcgc29ydGluZyBpcyB0
b28gc2xvdyBmb3IgZ2VuZXJhbCB1c2U7IHR1cm4gaXQgb24gZXhwbGljaXRseSB3aGVuIHdvcmtp
bmcgb24gdGhpcyBjbGFzcy4KKyN1bmRlZiBDSEVDS19TT1JUSU5HCiAKLVRleHRUcmFja0N1ZUxp
c3Q6OlRleHRUcmFja0N1ZUxpc3QoKQotewotfQorI2lmZGVmIENIRUNLX1NPUlRJTkcKKyNkZWZp
bmUgQVNTRVJUX1NPUlRFRChiZWdpbiwgZW5kLCBjb21wYXJhdG9yKSBBU1NFUlQoc3RkOjppc19z
b3J0ZWQoYmVnaW4sIGVuZCwgY29tcGFyYXRvcikpCisjZWxzZQorI2RlZmluZSBBU1NFUlRfU09S
VEVEKGJlZ2luLCBlbmQsIGNvbXBhcmF0b3IpICgodm9pZCkwKQorI2VuZGlmCiAKLXVuc2lnbmVk
IGxvbmcgVGV4dFRyYWNrQ3VlTGlzdDo6bGVuZ3RoKCkgY29uc3QKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVDdWVzKGNvbnN0IFJlZlB0cjxUZXh0VHJh
Y2tDdWU+JiBhLCBjb25zdCBSZWZQdHI8VGV4dFRyYWNrQ3VlPiYgYikKIHsKLSAgICByZXR1cm4g
bV9saXN0LnNpemUoKTsKKyAgICByZXR1cm4gYS0+aXNPcmRlcmVkQmVmb3JlKGIuZ2V0KCkpOwog
fQogCi11bnNpZ25lZCBsb25nIFRleHRUcmFja0N1ZUxpc3Q6OmdldEN1ZUluZGV4KFRleHRUcmFj
a0N1ZSogY3VlKSBjb25zdAordW5zaWduZWQgVGV4dFRyYWNrQ3VlTGlzdDo6Y3VlSW5kZXgoVGV4
dFRyYWNrQ3VlJiBjdWUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbGlzdC5maW5kKGN1ZSk7Cisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMCwgc2l6ZSA9IG1fdmVjdG9yLnNpemUoKTsgaSA8IHNpemU7
ICsraSkgeworICAgICAgICBpZiAobV92ZWN0b3JbaV0gPT0gJmN1ZSkKKyAgICAgICAgICAgIHJl
dHVybiBpOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsK
IH0KIAogVGV4dFRyYWNrQ3VlKiBUZXh0VHJhY2tDdWVMaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4
KSBjb25zdAogewotICAgIGlmIChpbmRleCA8IG1fbGlzdC5zaXplKCkpCi0gICAgICAgIHJldHVy
biBtX2xpc3RbaW5kZXhdLmdldCgpOwotICAgIHJldHVybiAwOworICAgIGlmIChpbmRleCA+PSBt
X3ZlY3Rvci5zaXplKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBtX3Zl
Y3RvcltpbmRleF0uZ2V0KCk7CiB9CiAKIFRleHRUcmFja0N1ZSogVGV4dFRyYWNrQ3VlTGlzdDo6
Z2V0Q3VlQnlJZChjb25zdCBTdHJpbmcmIGlkKSBjb25zdAogewotICAgIGZvciAoYXV0byYgY3Vl
IDogbV9saXN0KSB7CisgICAgZm9yIChhdXRvJiBjdWUgOiBtX3ZlY3RvcikgewogICAgICAgICBp
ZiAoY3VlLT5pZCgpID09IGlkKQogICAgICAgICAgICAgcmV0dXJuIGN1ZS5nZXQoKTsKICAgICB9
Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVRleHRUcmFja0N1ZUxp
c3QqIFRleHRUcmFja0N1ZUxpc3Q6OmFjdGl2ZUN1ZXMoKQorVGV4dFRyYWNrQ3VlTGlzdCYgVGV4
dFRyYWNrQ3VlTGlzdDo6YWN0aXZlQ3VlcygpCiB7CiAgICAgaWYgKCFtX2FjdGl2ZUN1ZXMpCiAg
ICAgICAgIG1fYWN0aXZlQ3VlcyA9IGNyZWF0ZSgpOwogCi0gICAgbV9hY3RpdmVDdWVzLT5jbGVh
cigpOwotICAgIGZvciAoYXV0byYgY3VlIDogbV9saXN0KSB7CisgICAgVmVjdG9yPFJlZlB0cjxU
ZXh0VHJhY2tDdWU+PiBhY3RpdmVDdWVzVmVjdG9yOworICAgIGZvciAoYXV0byYgY3VlIDogbV92
ZWN0b3IpIHsKICAgICAgICAgaWYgKGN1ZS0+aXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1fYWN0
aXZlQ3Vlcy0+YWRkKGN1ZSk7CisgICAgICAgICAgICBhY3RpdmVDdWVzVmVjdG9yLmFwcGVuZChj
dWUpOwogICAgIH0KLSAgICByZXR1cm4gbV9hY3RpdmVDdWVzLmdldCgpOworICAgIEFTU0VSVF9T
T1JURUQoYWN0aXZlQ3Vlc1ZlY3Rvci5iZWdpbigpLCBhY3RpdmVDdWVzVmVjdG9yLmVuZCgpLCBj
b21wYXJlQ3Vlcyk7CisgICAgbV9hY3RpdmVDdWVzLT5tX3ZlY3RvciA9IFdURk1vdmUoYWN0aXZl
Q3Vlc1ZlY3Rvcik7CisKKyAgICAvLyBGSVhNRTogVGhpcyBsaXN0IG9mIGFjdGl2ZSBjdWVzIGlz
IG5vdCB1cGRhdGVkIGFzIGN1ZXMgYXJlIGFkZGVkLCByZW1vdmVkLCBiZWNvbWUgYWN0aXZlLCBh
bmQgYmVjb21lIGluYWN0aXZlLgorICAgIC8vIEluc3RlYWQgaXQgaXMgb25seSB1cGRhdGVkIGVh
Y2ggdGltZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBhZ2Fpbi4gVGhhdCBpcyBub3QgY29uc2lz
dGVudCB3aXRoIG90aGVyIGR5bmFtaWMgRE9NIGxpc3RzLgorICAgIHJldHVybiAqbV9hY3RpdmVD
dWVzOwogfQogCi1ib29sIFRleHRUcmFja0N1ZUxpc3Q6OmFkZChQYXNzUmVmUHRyPFRleHRUcmFj
a0N1ZT4gY3VlKQordm9pZCBUZXh0VHJhY2tDdWVMaXN0OjphZGQoUmVmPFRleHRUcmFja0N1ZT4m
JiBjdWUpCiB7CiAgICAgQVNTRVJUKGN1ZS0+c3RhcnRNZWRpYVRpbWUoKSA+PSBNZWRpYVRpbWU6
Onplcm9UaW1lKCkpOwogICAgIEFTU0VSVChjdWUtPmVuZE1lZGlhVGltZSgpID49IE1lZGlhVGlt
ZTo6emVyb1RpbWUoKSk7CiAKLSAgICByZXR1cm4gYWRkKGN1ZSwgMCwgbV9saXN0LnNpemUoKSk7
CisgICAgUmVmUHRyPFRleHRUcmFja0N1ZT4gY3VlUmVmUHRyIHsgV1RGTW92ZShjdWUpIH07Cisg
ICAgdW5zaWduZWQgaW5zZXJ0aW9uUG9zaXRpb24gPSBzdGQ6OnVwcGVyX2JvdW5kKG1fdmVjdG9y
LmJlZ2luKCksIG1fdmVjdG9yLmVuZCgpLCBjdWVSZWZQdHIsIGNvbXBhcmVDdWVzKSAtIG1fdmVj
dG9yLmJlZ2luKCk7CisgICAgQVNTRVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rv
ci5lbmQoKSwgY29tcGFyZUN1ZXMpOworICAgIG1fdmVjdG9yLmluc2VydChpbnNlcnRpb25Qb3Np
dGlvbiwgV1RGTW92ZShjdWVSZWZQdHIpKTsKKyAgICBBU1NFUlRfU09SVEVEKG1fdmVjdG9yLmJl
Z2luKCksIG1fdmVjdG9yLmVuZCgpLCBjb21wYXJlQ3Vlcyk7CiB9CiAKLWJvb2wgVGV4dFRyYWNr
Q3VlTGlzdDo6YWRkKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBwcnBDdWUsIHNpemVfdCBzdGFy
dCwgc2l6ZV90IGVuZCkKK3ZvaWQgVGV4dFRyYWNrQ3VlTGlzdDo6cmVtb3ZlKFRleHRUcmFja0N1
ZSYgY3VlKQogewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHN0YXJ0IDw9
IG1fbGlzdC5zaXplKCkpOwotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGVu
ZCA8PSBtX2xpc3Quc2l6ZSgpKTsKLQotICAgIC8vIE1haW50YWluIHRleHQgdHJhY2sgY3VlIG9y
ZGVyOgotICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50
LXdvcmsvI3RleHQtdHJhY2stY3VlLW9yZGVyCi0gICAgUmVmUHRyPFRleHRUcmFja0N1ZT4gY3Vl
ID0gcHJwQ3VlOwotICAgIGlmIChzdGFydCA9PSBlbmQpIHsKLSAgICAgICAgaWYgKCFtX2xpc3Qu
aXNFbXB0eSgpICYmIChzdGFydCA+IDApICYmIChtX2xpc3Rbc3RhcnQgLSAxXS5nZXQoKSA9PSBj
dWUuZ2V0KCkpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIG1fbGlzdC5p
bnNlcnQoc3RhcnQsIGN1ZSk7Ci0gICAgICAgIGludmFsaWRhdGVDdWVJbmRleGVzKHN0YXJ0KTsK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgc2l6ZV90IGluZGV4ID0gKHN0YXJ0
ICsgZW5kKSAvIDI7Ci0gICAgaWYgKGN1ZS0+aXNPcmRlcmVkQmVmb3JlKG1fbGlzdFtpbmRleF0u
Z2V0KCkpKQotICAgICAgICByZXR1cm4gYWRkKFdURk1vdmUoY3VlKSwgc3RhcnQsIGluZGV4KTsK
LQotICAgIHJldHVybiBhZGQoV1RGTW92ZShjdWUpLCBpbmRleCArIDEsIGVuZCk7CisgICAgQVNT
RVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSwgY29tcGFyZUN1ZXMp
OworICAgIG1fdmVjdG9yLnJlbW92ZShjdWVJbmRleChjdWUpKTsKKyAgICBBU1NFUlRfU09SVEVE
KG1fdmVjdG9yLmJlZ2luKCksIG1fdmVjdG9yLmVuZCgpLCBjb21wYXJlQ3Vlcyk7CiB9CiAKLWJv
b2wgVGV4dFRyYWNrQ3VlTGlzdDo6cmVtb3ZlKFRleHRUcmFja0N1ZSogY3VlKQordm9pZCBUZXh0
VHJhY2tDdWVMaXN0Ojp1cGRhdGVDdWVJbmRleChUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKLSAgICBz
aXplX3QgaW5kZXggPSBtX2xpc3QuZmluZChjdWUpOwotICAgIGlmIChpbmRleCA9PSBub3RGb3Vu
ZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgY3VlLT5zZXRJc0FjdGl2ZShmYWxzZSk7
Ci0gICAgbV9saXN0LnJlbW92ZShpbmRleCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wg
VGV4dFRyYWNrQ3VlTGlzdDo6Y29udGFpbnMoVGV4dFRyYWNrQ3VlKiBjdWUpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fbGlzdC5jb250YWlucyhjdWUpOwotfQotCi1ib29sIFRleHRUcmFja0N1ZUxp
c3Q6OnVwZGF0ZUN1ZUluZGV4KFRleHRUcmFja0N1ZSogY3VlKQotewotICAgIGlmICghY29udGFp
bnMoY3VlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHJlbW92ZShjdWUpOwot
ICAgIHJldHVybiBhZGQoY3VlKTsKLX0KLQotdm9pZCBUZXh0VHJhY2tDdWVMaXN0OjpjbGVhcigp
Ci17Ci0gICAgbV9saXN0LmNsZWFyKCk7Ci19CisgICAgYXV0byBjdWVQb3NpdGlvbiA9IG1fdmVj
dG9yLmJlZ2luKCkgKyBjdWVJbmRleChjdWUpOworICAgIGF1dG8gYWZ0ZXJDdWVQb3NpdGlvbiA9
IGN1ZVBvc2l0aW9uICsgMTsKKworICAgIEFTU0VSVF9TT1JURUQobV92ZWN0b3IuYmVnaW4oKSwg
Y3VlUG9zaXRpb24sIGNvbXBhcmVDdWVzKTsKKyAgICBBU1NFUlRfU09SVEVEKGFmdGVyQ3VlUG9z
aXRpb24sIG1fdmVjdG9yLmVuZCgpLCBjb21wYXJlQ3Vlcyk7CisKKyAgICBhdXRvIHJlaW5zZXJ0
aW9uUG9zaXRpb24gPSBzdGQ6OnVwcGVyX2JvdW5kKG1fdmVjdG9yLmJlZ2luKCksIGN1ZVBvc2l0
aW9uLCAqY3VlUG9zaXRpb24sIGNvbXBhcmVDdWVzKTsKKyAgICBpZiAocmVpbnNlcnRpb25Qb3Np
dGlvbiAhPSBjdWVQb3NpdGlvbikKKyAgICAgICAgc3RkOjpyb3RhdGUocmVpbnNlcnRpb25Qb3Np
dGlvbiwgY3VlUG9zaXRpb24sIGFmdGVyQ3VlUG9zaXRpb24pOworICAgIGVsc2UgeworICAgICAg
ICByZWluc2VydGlvblBvc2l0aW9uID0gc3RkOjp1cHBlcl9ib3VuZChhZnRlckN1ZVBvc2l0aW9u
LCBtX3ZlY3Rvci5lbmQoKSwgKmN1ZVBvc2l0aW9uLCBjb21wYXJlQ3Vlcyk7CisgICAgICAgIGlm
IChyZWluc2VydGlvblBvc2l0aW9uICE9IGFmdGVyQ3VlUG9zaXRpb24pCisgICAgICAgICAgICBz
dGQ6OnJvdGF0ZShjdWVQb3NpdGlvbiwgYWZ0ZXJDdWVQb3NpdGlvbiwgcmVpbnNlcnRpb25Qb3Np
dGlvbik7CisgICAgfQogCi12b2lkIFRleHRUcmFja0N1ZUxpc3Q6OmludmFsaWRhdGVDdWVJbmRl
eGVzKHNpemVfdCBzdGFydCkKLXsKLSAgICBmb3IgKHNpemVfdCBpID0gc3RhcnQ7IGkgPCBtX2xp
c3Quc2l6ZSgpOyArK2kpCi0gICAgICAgIG1fbGlzdFtpXS0+aW52YWxpZGF0ZUN1ZUluZGV4KCk7
CisgICAgQVNTRVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSwgY29t
cGFyZUN1ZXMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5oCmluZGV4IGEyMThmYjY5MDg5NjI0YzFmMjgz
OWM3NTNhYzEyNWZmMGRiM2MyOTkuLjZlN2Y0MmI5OWI4NDAyODVhYTUwMjY4YzgyYjQwYTk4MjAy
Yzk0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3Vl
TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5o
CkBAIC0yOCw0NCArMjgsNDEgQEAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKICNpbmNsdWRl
ICJUZXh0VHJhY2tDdWUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFRleHRUcmFja0N1ZUxpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxU
ZXh0VHJhY2tDdWVMaXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxUZXh0VHJhY2tDdWVM
aXN0PiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRy
YWNrQ3VlTGlzdCk7Ci0gICAgfQotCi0gICAgflRleHRUcmFja0N1ZUxpc3QoKSB7IH0KLQotICAg
IHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgbG9uZyBnZXRDdWVJ
bmRleChUZXh0VHJhY2tDdWUqKSBjb25zdDsKLQorICAgIHN0YXRpYyBSZWY8VGV4dFRyYWNrQ3Vl
TGlzdD4gY3JlYXRlKCk7CisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CiAgICAgVGV4dFRy
YWNrQ3VlKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKICAgICBUZXh0VHJhY2tDdWUqIGdl
dEN1ZUJ5SWQoY29uc3QgU3RyaW5nJikgY29uc3Q7Ci0gICAgVGV4dFRyYWNrQ3VlTGlzdCogYWN0
aXZlQ3VlcygpOwogCi0gICAgYm9vbCBhZGQoUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+KTsKLSAg
ICBib29sIHJlbW92ZShUZXh0VHJhY2tDdWUqKTsKLSAgICBib29sIGNvbnRhaW5zKFRleHRUcmFj
a0N1ZSopIGNvbnN0OwotICAgIAotICAgIGJvb2wgdXBkYXRlQ3VlSW5kZXgoVGV4dFRyYWNrQ3Vl
Kik7CisgICAgdW5zaWduZWQgY3VlSW5kZXgoVGV4dFRyYWNrQ3VlJikgY29uc3Q7CisgICAgVGV4
dFRyYWNrQ3VlTGlzdCYgYWN0aXZlQ3VlcygpOworCisgICAgdm9pZCBhZGQoUmVmPFRleHRUcmFj
a0N1ZT4mJik7CisgICAgdm9pZCByZW1vdmUoVGV4dFRyYWNrQ3VlJik7CisKKyAgICB2b2lkIHVw
ZGF0ZUN1ZUluZGV4KFRleHRUcmFja0N1ZSYpOwogCiBwcml2YXRlOgotICAgIFRleHRUcmFja0N1
ZUxpc3QoKTsKLSAgICBib29sIGFkZChQYXNzUmVmUHRyPFRleHRUcmFja0N1ZT4sIHNpemVfdCwg
c2l6ZV90KTsKLSAgICB2b2lkIGNsZWFyKCk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlQ3VlSW5kZXhl
cyhzaXplX3QpOworICAgIFRleHRUcmFja0N1ZUxpc3QoKSA9IGRlZmF1bHQ7CiAKLSAgICBWZWN0
b3I8UmVmUHRyPFRleHRUcmFja0N1ZT4+IG1fbGlzdDsKKyAgICBWZWN0b3I8UmVmUHRyPFRleHRU
cmFja0N1ZT4+IG1fdmVjdG9yOwogICAgIFJlZlB0cjxUZXh0VHJhY2tDdWVMaXN0PiBtX2FjdGl2
ZUN1ZXM7CiB9OwogCitpbmxpbmUgUmVmPFRleHRUcmFja0N1ZUxpc3Q+IFRleHRUcmFja0N1ZUxp
c3Q6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrQ3VlTGlz
dCk7Cit9CisKK2lubGluZSB1bnNpZ25lZCBUZXh0VHJhY2tDdWVMaXN0OjpsZW5ndGgoKSBjb25z
dAoreworICAgIHJldHVybiBtX3ZlY3Rvci5zaXplKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuY3BwCmluZGV4IGI3ZTc5ZDBmN2U2YmJjNzRlNDFhNzFm
ZDViZWU3NDFkYzEyZDdkZDIuLmUyYjA1YzgxMmJiYzRmMjI0ZjI3NzQzNmE0YzI2MjFjN2Q5MzBk
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNwcApAQCAt
MSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw1
NyArMjksNDEgQEAKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVZUVFJlZ2lvbkxpc3Q6OlZUVFJlZ2lvbkxpc3QoKQotewotfQotCi11bnNpZ25l
ZCBsb25nIFZUVFJlZ2lvbkxpc3Q6Omxlbmd0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbGlz
dC5zaXplKCk7Ci19Ci0KIFZUVFJlZ2lvbiogVlRUUmVnaW9uTGlzdDo6aXRlbSh1bnNpZ25lZCBp
bmRleCkgY29uc3QKIHsKLSAgICBpZiAoaW5kZXggPCBtX2xpc3Quc2l6ZSgpKQotICAgICAgICBy
ZXR1cm4gbV9saXN0W2luZGV4XS5nZXQoKTsKLQotICAgIHJldHVybiAwOworICAgIGlmIChpbmRl
eCA+PSBtX3ZlY3Rvci5zaXplKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVy
biBjb25zdF9jYXN0PFZUVFJlZ2lvbio+KG1fdmVjdG9yW2luZGV4XS5wdHIoKSk7CiB9CiAKIFZU
VFJlZ2lvbiogVlRUUmVnaW9uTGlzdDo6Z2V0UmVnaW9uQnlJZChjb25zdCBTdHJpbmcmIGlkKSBj
b25zdAogeworICAgIC8vIEZJWE1FOiBXaHkgaXMgdGhpcyBzcGVjaWFsIGNhc2UgbmVlZGVkPwog
ICAgIGlmIChpZC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgZm9yIChjb25z
dCBhdXRvJiByZWdpb24gOiBtX2xpc3QpIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
Zm9yIChhdXRvJiByZWdpb24gOiBtX3ZlY3RvcikgewogICAgICAgICBpZiAocmVnaW9uLT5pZCgp
ID09IGlkKQotICAgICAgICAgICAgcmV0dXJuIHJlZ2lvbi5nZXQoKTsKKyAgICAgICAgICAgIHJl
dHVybiBjb25zdF9jYXN0PFZUVFJlZ2lvbio+KHJlZ2lvbi5wdHIoKSk7CiAgICAgfQotCi0gICAg
cmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgVlRUUmVnaW9uTGlzdDo6
YWRkKFBhc3NSZWZQdHI8VlRUUmVnaW9uPiByZWdpb24pCit2b2lkIFZUVFJlZ2lvbkxpc3Q6OmFk
ZChSZWY8VlRUUmVnaW9uPiYmIHJlZ2lvbikKIHsKLSAgICBtX2xpc3QuYXBwZW5kKHJlZ2lvbik7
CisgICAgbV92ZWN0b3IuYXBwZW5kKFdURk1vdmUocmVnaW9uKSk7CiB9CiAKLWJvb2wgVlRUUmVn
aW9uTGlzdDo6cmVtb3ZlKFZUVFJlZ2lvbiogcmVnaW9uKQordm9pZCBWVFRSZWdpb25MaXN0Ojpy
ZW1vdmUoVlRUUmVnaW9uJiByZWdpb24pCiB7Ci0gICAgc2l6ZV90IGluZGV4ID0gbV9saXN0LmZp
bmQocmVnaW9uKTsKLSAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIG1fbGlzdC5yZW1vdmUoaW5kZXgpOwotICAgIHJldHVybiB0cnVlOwotfQot
Ci12b2lkIFZUVFJlZ2lvbkxpc3Q6OmNsZWFyKCkKLXsKLSAgICBtX2xpc3QuY2xlYXIoKTsKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBzaXplID0gbV92ZWN0b3Iuc2l6ZSgpOyBpIDwgc2l6ZTsg
KytpKSB7CisgICAgICAgIGlmIChtX3ZlY3RvcltpXS5wdHIoKSA9PSAmcmVnaW9uKSB7CisgICAg
ICAgICAgICBtX3ZlY3Rvci5yZW1vdmUoaSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9u
TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmgKaW5kZXgg
MmZkZGRjMmVkMTlhNTZlNDgxYWFjZjQ2NWJjODhhN2IyYjdmY2NlMy4uZWQwZmM0YzllZjdiN2U0
M2I5MTAxZTQ3NGRkNTNkNGE5ZGQ5ZjIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRSZWdpb25MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9W
VFRSZWdpb25MaXN0LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEz
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjksMzYgKzI5LDQzIEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQog
CiAjaW5jbHVkZSAiVlRUUmVnaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBWVFRSZWdpb25MaXN0IDogcHVibGljIFJlZkNvdW50
ZWQ8VlRUUmVnaW9uTGlzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VlRUUmVnaW9uTGlz
dD4gY3JlYXRlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZUVFJlZ2lv
bkxpc3QpOwotICAgIH0KLQotICAgIH5WVFRSZWdpb25MaXN0KCkgeyB9Ci0KLSAgICB1bnNpZ25l
ZCBsb25nIGxlbmd0aCgpIGNvbnN0OworICAgIHN0YXRpYyBSZWY8VlRUUmVnaW9uTGlzdD4gY3Jl
YXRlKCk7CiAKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKICAgICBWVFRSZWdpb24qIGl0
ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OwogICAgIFZUVFJlZ2lvbiogZ2V0UmVnaW9uQnlJZChj
b25zdCBTdHJpbmcmKSBjb25zdDsKIAotICAgIHZvaWQgYWRkKFBhc3NSZWZQdHI8VlRUUmVnaW9u
Pik7Ci0gICAgYm9vbCByZW1vdmUoVlRUUmVnaW9uKik7CisgICAgdm9pZCBhZGQoUmVmPFZUVFJl
Z2lvbj4mJik7CisgICAgdm9pZCByZW1vdmUoVlRUUmVnaW9uJik7CiAKIHByaXZhdGU6Ci0gICAg
VlRUUmVnaW9uTGlzdCgpOworICAgIFZUVFJlZ2lvbkxpc3QoKSA9IGRlZmF1bHQ7CisKICAgICB2
b2lkIGNsZWFyKCk7CiAKLSAgICBWZWN0b3I8UmVmUHRyPFZUVFJlZ2lvbj4+IG1fbGlzdDsKKyAg
ICBWZWN0b3I8UmVmPFZUVFJlZ2lvbj4+IG1fdmVjdG9yOwogfTsKIAoraW5saW5lIFJlZjxWVFRS
ZWdpb25MaXN0PiBWVFRSZWdpb25MaXN0OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFZUVFJlZ2lvbkxpc3QpOworfQorCitpbmxpbmUgdW5zaWduZWQgVlRUUmVnaW9uTGlz
dDo6bGVuZ3RoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92ZWN0b3Iuc2l6ZSgpOworfQorCitp
bmxpbmUgdm9pZCBWVFRSZWdpb25MaXN0OjpjbGVhcigpCit7CisgICAgbV92ZWN0b3IuY2xlYXIo
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVP
X1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25M
aXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5pZGwKaW5k
ZXggNTM4MWQzOWM2NmYxY2ZjM2QwMjFiMWRjNDBlYzMyODE0MmM3YmNkMS4uNDg1YTkxNWU3ZDdm
MDdiMzg1OGViMGM3YjE4NWFiYWE5NzhhOTM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZUVFJlZ2lvbkxpc3QuaWRsCkBAIC0yNCwxMiArMjQsMTEgQEAKICAqLwogCiBbCi0gICAg
Tm9JbnRlcmZhY2VPYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9VklERU9fVFJBQ0ssCiAgICAgSW1w
bGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKIF0gaW50ZXJm
YWNlIFZUVFJlZ2lvbkxpc3QgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IGxlbmd0aDsKICAgICBnZXR0ZXIgVlRUUmVnaW9uIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7
CiAgICAgVlRUUmVnaW9uIGdldFJlZ2lvbkJ5SWQoRE9NU3RyaW5nIGlkKTsKIH07Ci0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCmluZGV4IGY4MGJjMTBhOGNjOGRlMjgy
ZDlmYWYzMTk0NmQ2MWNkZTBjYmM0MzEuLjQ3NzYyYjQxZTVmMTU1MzU3NDEzNjNjYjVlYjg1ZGEw
MDI3M2FlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFj
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcApAQCAt
ODEsMTAgKzgxLDEwIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgVmlkZW9UcmFjazo6Y29tbWVudGFy
eUtleXdvcmQoKQogICAgIHJldHVybiBjb21tZW50YXJ5OwogfQogCi1WaWRlb1RyYWNrOjpWaWRl
b1RyYWNrKFZpZGVvVHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJp
dmF0ZT4gdHJhY2tQcml2YXRlKQotICAgIDogTWVkaWFUcmFja0Jhc2UoTWVkaWFUcmFja0Jhc2U6
OlZpZGVvVHJhY2ssIHRyYWNrUHJpdmF0ZS0+aWQoKSwgdHJhY2tQcml2YXRlLT5sYWJlbCgpLCB0
cmFja1ByaXZhdGUtPmxhbmd1YWdlKCkpCi0gICAgLCBtX3NlbGVjdGVkKHRyYWNrUHJpdmF0ZS0+
c2VsZWN0ZWQoKSkKLSAgICAsIG1fY2xpZW50KGNsaWVudCkKK1ZpZGVvVHJhY2s6OlZpZGVvVHJh
Y2soVmlkZW9UcmFja0NsaWVudCYgY2xpZW50LCBWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2
YXRlKQorICAgIDogTWVkaWFUcmFja0Jhc2UoTWVkaWFUcmFja0Jhc2U6OlZpZGVvVHJhY2ssIHRy
YWNrUHJpdmF0ZS5pZCgpLCB0cmFja1ByaXZhdGUubGFiZWwoKSwgdHJhY2tQcml2YXRlLmxhbmd1
YWdlKCkpCisgICAgLCBtX3NlbGVjdGVkKHRyYWNrUHJpdmF0ZS5zZWxlY3RlZCgpKQorICAgICwg
bV9jbGllbnQoJmNsaWVudCkKICAgICAsIG1fcHJpdmF0ZSh0cmFja1ByaXZhdGUpCiB7CiAgICAg
bV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CkBAIC05MywxNSArOTMsMTIgQEAgVmlkZW9UcmFj
azo6VmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8VmlkZW9U
cmFja1ByaXZhdGU+IHQKIAogVmlkZW9UcmFjazo6flZpZGVvVHJhY2soKQogewotICAgIG1fcHJp
dmF0ZS0+c2V0Q2xpZW50KDApOworICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwog
fQogCi12b2lkIFZpZGVvVHJhY2s6OnNldFByaXZhdGUoUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJp
dmF0ZT4gdHJhY2tQcml2YXRlKQordm9pZCBWaWRlb1RyYWNrOjpzZXRQcml2YXRlKFZpZGVvVHJh
Y2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiB7Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7Ci0gICAg
QVNTRVJUKHRyYWNrUHJpdmF0ZSk7Ci0KLSAgICBpZiAobV9wcml2YXRlID09IHRyYWNrUHJpdmF0
ZSkKKyAgICBpZiAobV9wcml2YXRlLnB0cigpID09ICZ0cmFja1ByaXZhdGUpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwpAQCAtMTM5LDQ2ICsx
MzYsNDUgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZXRTZWxlY3RlZChjb25zdCBib29sIHNlbGVjdGVk
KQogICAgIG1fcHJpdmF0ZS0+c2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOwogCiAgICAgaWYgKG1fY2xp
ZW50KQotICAgICAgICBtX2NsaWVudC0+dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCh0aGlzKTsK
KyAgICAgICAgbV9jbGllbnQtPnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoKnRoaXMpOwogfQog
CiBzaXplX3QgVmlkZW9UcmFjazo6aW5iYW5kVHJhY2tJbmRleCgpCiB7Ci0gICAgQVNTRVJUKG1f
cHJpdmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dHJhY2tJbmRleCgpOwogfQogCiB2b2lk
IFZpZGVvVHJhY2s6OnNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrUHJpdmF0ZSogdHJhY2tQcml2
YXRlLCBib29sIHNlbGVjdGVkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0
cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKKyAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0
ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZS5wdHIoKSk7CiAgICAgc2V0U2VsZWN0ZWQoc2Vs
ZWN0ZWQpOwogfQogCi12b2lkIFZpZGVvVHJhY2s6OmlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNl
KiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCit2b2lkIFZpZGVvVHJhY2s6
OmlkQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKQogewotICAgIEFTU0VSVF9VTlVTRUQo
dHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRJZChpZCk7
CiB9CiAKLXZvaWQgVmlkZW9UcmFjazo6bGFiZWxDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRy
YWNrUHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkKK3ZvaWQgVmlkZW9UcmFjazo6
bGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpCiB7Ci0gICAgQVNTRVJUX1VO
VVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldExh
YmVsKGxhYmVsKTsKIH0KIAotdm9pZCBWaWRlb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoVHJhY2tQ
cml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKQor
dm9pZCBWaWRlb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5n
dWFnZSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09
IG1fcHJpdmF0ZSk7CiAgICAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2UpOwogfQogCi12b2lkIFZpZGVv
VHJhY2s6OndpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlKQordm9pZCBW
aWRlb1RyYWNrOjp3aWxsUmVtb3ZlKCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0
ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7Ci0gICAgbWVkaWFFbGVtZW50KCktPnJlbW92
ZVZpZGVvVHJhY2soKnRoaXMpOworICAgIGF1dG8qIGVsZW1lbnQgPSBtZWRpYUVsZW1lbnQoKTsK
KyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKyAgICBlbGVtZW50LT5yZW1vdmVW
aWRlb1RyYWNrKCp0aGlzKTsKIH0KIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKIHZvaWQg
VmlkZW9UcmFjazo6c2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQpCiB7CiAgICAgLy8g
MTAuMSBraW5kLCBvbiBzZXR0aW5nOgpAQCAtMTkzLDcgKzE4OSw3IEBAIHZvaWQgVmlkZW9UcmFj
azo6c2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQpCiAgICAgLy8gMy4gSWYgdGhlIHNv
dXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhpcyB0cmFjayBpcyBub3QgbnVsbCwgdGhlbiBxdWV1
ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZQogICAgIC8vIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCBz
b3VyY2VCdWZmZXIudmlkZW9UcmFja3MuCiAgICAgaWYgKG1fc291cmNlQnVmZmVyKQotICAgICAg
ICBtX3NvdXJjZUJ1ZmZlci0+dmlkZW9UcmFja3MoKS0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwor
ICAgICAgICBtX3NvdXJjZUJ1ZmZlci0+dmlkZW9UcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50
KCk7CiAKICAgICAvLyA0LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1l
ZCBjaGFuZ2UgYXQgdGhlIFZpZGVvVHJhY2tMaXN0IG9iamVjdCByZWZlcmVuY2VkIGJ5CiAgICAg
Ly8gdGhlIHZpZGVvVHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KQEAg
LTIxMywxMiArMjA5LDEzIEBAIHZvaWQgVmlkZW9UcmFjazo6c2V0TGFuZ3VhZ2UoY29uc3QgQXRv
bWljU3RyaW5nJiBsYW5ndWFnZSkKICAgICAvLyAzLiBJZiB0aGUgc291cmNlQnVmZmVyIGF0dHJp
YnV0ZSBvbiB0aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1ZXVlIGEgdGFzayB0byBmaXJl
IGEgc2ltcGxlCiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHNvdXJjZUJ1ZmZlci52aWRl
b1RyYWNrcy4KICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVmZmVy
LT52aWRlb1RyYWNrcygpLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CisgICAgICAgIG1fc291cmNl
QnVmZmVyLT52aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIC8vIDQu
IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCB0aGUg
VmlkZW9UcmFja0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdmlkZW9UcmFj
a3MgYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAgIG1lZGlhRWxlbWVudCgp
LT52aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIH0KKwogI2VuZGlmCiAKIHZv
aWQgVmlkZW9UcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WaWRlb1RyYWNrLmgKaW5kZXggYzUyZjliM2IxMmZjNjk2ODhkYTdmZDY3MDMzNzAxZmIx
Yjg0ZjMyYy4uNzFhMjU0MGZlZTg5NjIyNDFkNDQ5MTcyNWE4MmUzOTEwOGQzOTcyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE2IEFwcGxlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDEyICszOSwx
MiBAQCBjbGFzcyBWaWRlb1RyYWNrOwogY2xhc3MgVmlkZW9UcmFja0NsaWVudCB7CiBwdWJsaWM6
CiAgICAgdmlydHVhbCB+VmlkZW9UcmFja0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB2
aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayYpID0gMDsKIH07CiAKLWNs
YXNzIFZpZGVvVHJhY2sgZmluYWwgOiBwdWJsaWMgTWVkaWFUcmFja0Jhc2UsIHB1YmxpYyBWaWRl
b1RyYWNrUHJpdmF0ZUNsaWVudCB7CitjbGFzcyBWaWRlb1RyYWNrIGZpbmFsIDogcHVibGljIE1l
ZGlhVHJhY2tCYXNlLCBwcml2YXRlIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPFZpZGVvVHJhY2s+IGNyZWF0ZShWaWRlb1RyYWNrQ2xpZW50KiBjbGll
bnQsIFBhc3NSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKKyAgICBzdGF0
aWMgUmVmPFZpZGVvVHJhY2s+IGNyZWF0ZShWaWRlb1RyYWNrQ2xpZW50JiBjbGllbnQsIFZpZGVv
VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBWaWRlb1RyYWNrKGNsaWVudCwgdHJhY2tQcml2YXRlKSk7CiAgICAgfQpAQCAtNTYs
NDggKzU2LDQ3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzaWdu
S2V5d29yZCgpOwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1YnRpdGxlc0tleXdv
cmQoKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjb21tZW50YXJ5S2V5d29yZCgp
OwotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZGVmYXVsdEtpbmRLZXl3b3JkKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gZW1wdHlBdG9tOyB9CiAKICAgICBib29sIHNlbGVjdGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9zZWxlY3RlZDsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZChjb25z
dCBib29sKTsKIAotICAgIHZvaWQgY2xlYXJDbGllbnQoKSBvdmVycmlkZSB7IG1fY2xpZW50ID0g
MDsgfQorICAgIHZvaWQgY2xlYXJDbGllbnQoKSBmaW5hbCB7IG1fY2xpZW50ID0gbnVsbHB0cjsg
fQogICAgIFZpZGVvVHJhY2tDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50
OyB9CiAKICAgICBzaXplX3QgaW5iYW5kVHJhY2tJbmRleCgpOwogCiAjaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKLSAgICB2b2lkIHNldEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNldEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBzZXRM
YW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKICNlbmRpZgogCiAgICAgY29uc3Qg
TWVkaWFEZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24oKSBjb25zdDsKIAotICAgIHZvaWQgc2V0UHJp
dmF0ZShQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPik7Ci0KLXByb3RlY3RlZDoKLSAgICBW
aWRlb1RyYWNrKFZpZGVvVHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRl
PiBwcml2YXRlVHJhY2spOworICAgIHZvaWQgc2V0UHJpdmF0ZShWaWRlb1RyYWNrUHJpdmF0ZSYp
OwogCiBwcml2YXRlOgotICAgIGJvb2wgaXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgVmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50JiwgVmlkZW9U
cmFja1ByaXZhdGUmKTsKKworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZGVmYXVsdEtpbmRLZXl3
b3JkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZW1wdHlBdG9tOyB9CisgICAgYm9vbCBpc1ZhbGlk
S2luZChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIFZpZGVvVHJh
Y2tQcml2YXRlQ2xpZW50Ci0gICAgdm9pZCBzZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFja1ByaXZh
dGUqLCBib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIHNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNr
UHJpdmF0ZSosIGJvb2wpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAot
ICAgIHZvaWQgaWRDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcm
KSBvdmVycmlkZTsKLSAgICB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29u
c3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJh
Y2tQcml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQg
d2lsbFJlbW92ZShUcmFja1ByaXZhdGVCYXNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBpZENoYW5n
ZWQoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYWJlbENoYW5nZWQoY29u
c3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3Qg
QXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAKLSAg
ICBib29sIGVuYWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzZWxlY3RlZCgpOyB9Cisg
ICAgYm9vbCBlbmFibGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gc2VsZWN0ZWQoKTsgfQogCiAg
ICAgdm9pZCB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIAogICAgIGJvb2wgbV9zZWxlY3RlZDsK
ICAgICBWaWRlb1RyYWNrQ2xpZW50KiBtX2NsaWVudDsKIAotICAgIFJlZlB0cjxWaWRlb1RyYWNr
UHJpdmF0ZT4gbV9wcml2YXRlOworICAgIFJlZjxWaWRlb1RyYWNrUHJpdmF0ZT4gbV9wcml2YXRl
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCmluZGV4IDJjMTIzOTVmYTY2MWQxNWJiNTQ1MDg4OTRmYzBhYWNkZDU1Y2U2ZTcuLmIx
NTE1Njk3YjMyMjRhNWZiMDQ5MzYxYjhlMzU5ODQ5OTNmMDMwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE3Miw3ICsxNzIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
ICAgIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pIG92
ZXJyaWRlOwotICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYs
IEZpbGVJY29uTG9hZGVyKikgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXImKSBvdmVycmlkZSB7IH0KIAog
ICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IE5vZGUqKSBvdmVycmlkZSB7IH0KICAgICB2
b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUqKSBvdmVycmlkZSB7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9QaW5nTG9hZGVyLmNwcAppbmRleCAwMTg4OTQ2ZTdkOGRmNDI1MmMxZWQ0OTRhZDdhOTkx
Njc2OTExNjhiLi4zYmYzNWIyMzNiMGEyZGM2YTY1ZDQwNGIxMjY0NjZkN2FiMzNlZTAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBQ
aW5nTG9hZGVyOjpzZW5kUGluZyhGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcGluZ1VSTCwgY29u
c3QgVVJMJiBkZXN0aW5hdGkKICAgICBzdGFydFBpbmdMb2FkKGZyYW1lLCByZXF1ZXN0LCBTaG91
bGRGb2xsb3dSZWRpcmVjdHM6Olllcyk7CiB9CiAKLXZvaWQgUGluZ0xvYWRlcjo6c2VuZFZpb2xh
dGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBSZWZQdHI8Rm9y
bURhdGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBlIHJlcG9ydFR5cGUpCit2b2lkIFBp
bmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHJl
cG9ydFVSTCwgUmVmPEZvcm1EYXRhPiYmIHJlcG9ydCwgVmlvbGF0aW9uUmVwb3J0VHlwZSByZXBv
cnRUeXBlKQogewogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHJlcG9ydFVSTCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCmluZGV4IGNmNjU3N2MzMzU2ZWEwNTgxYjUzOTE4OTE5
OGZkZTg3NjRmYjk5MzcuLmY5N2Y5NTcxYWViYzE5NjhkMTc0MGMxZjY5YTY1YTVmOWMyMmI5NWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaApAQCAtNDksNyArNDksNyBAQCBjbGFzcyBQ
aW5nTG9hZGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBsb2FkSW1hZ2UoRnJhbWUmLCBj
b25zdCBVUkwmKTsKICAgICBzdGF0aWMgdm9pZCBzZW5kUGluZyhGcmFtZSYsIGNvbnN0IFVSTCYg
cGluZ1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCk7Ci0gICAgc3RhdGljIHZvaWQgc2Vu
ZFZpb2xhdGlvblJlcG9ydChGcmFtZSYsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBSZWZQdHI8Rm9y
bURhdGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBlKTsKKyAgICBzdGF0aWMgdm9pZCBz
ZW5kVmlvbGF0aW9uUmVwb3J0KEZyYW1lJiwgY29uc3QgVVJMJiByZXBvcnRVUkwsIFJlZjxGb3Jt
RGF0YT4mJiByZXBvcnQsIFZpb2xhdGlvblJlcG9ydFR5cGUpOwogCiBwcml2YXRlOgogICAgIGVu
dW0gY2xhc3MgU2hvdWxkRm9sbG93UmVkaXJlY3RzIHsgTm8sIFllcyB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuY3BwCmluZGV4IDVjMDI1NDRhNWU3YmQzZjA2ZmIxYWJhYjAxZWUyNmM4YTM0NDZmM2UuLjZj
YTk5YzFmOTZjNDQzOGUzYTU1ODYwMTdiZWM1NWQ3Zjk3MzRjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5jcHAKQEAgLTQzOCw3ICs0MzgsNyBAQCB2b2lkIENocm9tZTo6cnVuT3BlblBhbmVsKEZyYW1l
KiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIpCiAgICAgbV9jbGll
bnQucnVuT3BlblBhbmVsKGZyYW1lLCBmaWxlQ2hvb3Nlcik7CiB9CiAKLXZvaWQgQ2hyb21lOjps
b2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29u
TG9hZGVyKiBsb2FkZXIpCit2b2lkIENocm9tZTo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0
b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciYgbG9hZGVyKQogewogICAgIG1f
Y2xpZW50LmxvYWRJY29uRm9yRmlsZXMoZmlsZW5hbWVzLCBsb2FkZXIpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmgKaW5kZXggZjJmMmIwYjFjM2MwYTlmM2EyNzVkMTRmMDJkM2RjMWE4ZWRhNGVhMS4uZjY2
MzU5MjhhZDVkYTdhZGIyMzRlMzI4NGQ0YmVhY2Y4ZmVkMTg1OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5o
CkBAIC0xNTksNyArMTU5LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHJ1bk9wZW5Q
YW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KTsKLSAgICB2b2lkIGxvYWRJY29u
Rm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciopOworICAgIHZv
aWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVy
Jik7CiAKICAgICB2b2lkIGRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0
IFZpZXdwb3J0QXJndW1lbnRzJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CmluZGV4IDQ1ZmVjNTk5ODA0ZTQzZTZlN2QxODlhMDhlNmNlYjgwMjI5ZDM2ZmQuLjU5OGU1OWY2
ZGEyMTllMTgzOTE0N2FhODZkODA1MjBjNmJlM2Q1ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaApAQCAtMjc1LDcgKzI3NSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBy
dW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgPSAwOwogICAgIC8v
IEFzeW5jaHJvbm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Igc3BlY2lmaWVkIGZpbGVu
YW1lcy4KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYsIEZpbGVJY29uTG9hZGVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZv
ckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXImKSA9IDA7CiAgICAg
ICAgIAogICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgTm9kZSopIHsgfTsK
ICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9kZSopIHsgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4
IGNiNzhkMDZhN2VmMTQzZjI2ZWU1NDk2MzliMjQ5NTY1YzQ2YWEwNjguLmY4ZmJmMmQzNjA1NTQx
NDBjMWQ1ZjJlYWQ3M2E4NDBjYWExMWY3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtNjI1LDggKzYyNSw4IEBAIHZvaWQg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZl
Y3RpdmVWaW9sYXRlZERpcmVjCiAKICAgICBBU1NFUlQoIW1fZnJhbWUgfHwgZWZmZWN0aXZlVmlv
bGF0ZWREaXJlY3RpdmUgPT0gQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXM6OmZy
YW1lQW5jZXN0b3JzKTsKIAotICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGlzPERvY3VtZW50Piht
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50KCk7Ci0gICAgRnJhbWUqIGZyYW1l
ID0gZG9jdW1lbnQuZnJhbWUoKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9IGlzPERvY3VtZW50Piht
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAgYXV0byogZnJhbWUg
PSBkb2N1bWVudC5mcmFtZSgpOwogICAgIEFTU0VSVCghbV9mcmFtZSB8fCBtX2ZyYW1lID09IGZy
YW1lKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC02NDYsMTMgKzY0Niwx
NCBAQCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0
cmluZyYgZWZmZWN0aXZlVmlvbGF0ZWREaXJlYwogICAgIFN0cmluZyBvcmlnaW5hbFBvbGljeSA9
IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5oZWFkZXIoKTsKICAgICBTdHJpbmcgcmVmZXJyZXIgPSBk
b2N1bWVudC5yZWZlcnJlcigpOwogICAgIEFTU0VSVChkb2N1bWVudC5sb2FkZXIoKSk7CisgICAg
Ly8gRklYTUU6IElzIGl0IHBvbGljeSB0byBub3QgdXNlIHRoZSBzdGF0dXMgY29kZSBmb3IgSFRU
UFMsIG9yIGlzIHRoYXQgYSBidWc/CiAgICAgdW5zaWduZWQgc2hvcnQgc3RhdHVzQ29kZSA9IGRv
Y3VtZW50LnVybCgpLnByb3RvY29sSXMoImh0dHAiKSAmJiBkb2N1bWVudC5sb2FkZXIoKSA/IGRv
Y3VtZW50LmxvYWRlcigpLT5yZXNwb25zZSgpLmh0dHBTdGF0dXNDb2RlKCkgOiAwOwogCiAgICAg
U3RyaW5nIHNvdXJjZUZpbGU7CiAgICAgaW50IGxpbmVOdW1iZXIgPSAwOwogICAgIGludCBjb2x1
bW5OdW1iZXIgPSAwOwotICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrID0gY3JlYXRl
U2NyaXB0Q2FsbFN0YWNrKEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCksIDIp
OwotICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2stPmZpcnN0Tm9u
TmF0aXZlQ2FsbEZyYW1lKCk7CisgICAgYXV0byBzdGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFj
ayhKU01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCAyKTsKKyAgICBhdXRvKiBj
YWxsRnJhbWUgPSBzdGFjay0+Zmlyc3ROb25OYXRpdmVDYWxsRnJhbWUoKTsKICAgICBpZiAoY2Fs
bEZyYW1lICYmIGNhbGxGcmFtZS0+bGluZU51bWJlcigpKSB7CiAgICAgICAgIHNvdXJjZUZpbGUg
PSBzdHJpcFVSTEZvclVzZUluUmVwb3J0KGRvY3VtZW50LCBVUkwoVVJMKCksIGNhbGxGcmFtZS0+
c291cmNlVVJMKCkpKTsKICAgICAgICAgbGluZU51bWJlciA9IGNhbGxGcmFtZS0+bGluZU51bWJl
cigpOwpAQCAtNjY1LDcgKzY2Niw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBv
cnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAgICAgZG9j
dW1lbnQuZW5xdWV1ZURvY3VtZW50RXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5zZWN1cml0eXBvbGljeXZpb2xhdGlvbkV2ZW50LCBjYW5CdWJi
bGUsIGNhbmNlbGFibGUsIGRvY3VtZW50VVJJLCByZWZlcnJlciwgYmxvY2tlZFVSSSwgdmlvbGF0
ZWREaXJlY3RpdmVUZXh0LCBlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZSwgb3JpZ2luYWxQb2xp
Y3ksIHNvdXJjZUZpbGUsIHN0YXR1c0NvZGUsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikpOwog
CiAgICAgLy8gMi4gU2VuZCB2aW9sYXRpb24gcmVwb3J0IChpZiBhcHBsaWNhYmxlKS4KLSAgICBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcmVwb3J0VVJJcyA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5y
ZXBvcnRVUklzKCk7CisgICAgYXV0byYgcmVwb3J0VVJJcyA9IHZpb2xhdGVkRGlyZWN0aXZlTGlz
dC5yZXBvcnRVUklzKCk7CiAgICAgaWYgKHJlcG9ydFVSSXMuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm47CiAKQEAgLTY5MywxMCArNjk0LDEwIEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5
OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAg
ICAgICAgIGNzcFJlcG9ydC0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwoImNvbHVtbi1udW1iZXIi
KSwgY29sdW1uTnVtYmVyKTsKICAgICB9CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBy
ZXBvcnRPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGF1dG8gcmVwb3J0
T2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKICAgICByZXBvcnRPYmplY3QtPnNl
dE9iamVjdChBU0NJSUxpdGVyYWwoImNzcC1yZXBvcnQiKSwgV1RGTW92ZShjc3BSZXBvcnQpKTsK
IAotICAgIFJlZlB0cjxGb3JtRGF0YT4gcmVwb3J0ID0gRm9ybURhdGE6OmNyZWF0ZShyZXBvcnRP
YmplY3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7CisgICAgYXV0byByZXBvcnQgPSBGb3JtRGF0
YTo6Y3JlYXRlKHJlcG9ydE9iamVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgpKTsKICAgICBmb3Ig
KGNvbnN0IGF1dG8mIHVybCA6IHJlcG9ydFVSSXMpCiAgICAgICAgIFBpbmdMb2FkZXI6OnNlbmRW
aW9sYXRpb25SZXBvcnQoKmZyYW1lLCBpczxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0KSA/IGRvY3VtZW50LmNvbXBsZXRlVVJMKHVybCkgOiBkb2N1bWVudC5jb21wbGV0ZVVSTCh1
cmwsIGJsb2NrZWRVUkwpLCByZXBvcnQuY29weVJlZigpLCBWaW9sYXRpb25SZXBvcnRUeXBlOjpD
b250ZW50U2VjdXJpdHlQb2xpY3kpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxl
bWVudC5tbQppbmRleCBiMTBmMmU5ZWI3OGQ1OWUwMjZiYmRiNGRmZDcwZTRkYTUzYjlhNDcwLi4w
OGJiZjA1NDY5NjI0Y2FmYjZjNTVlODQ1NGU3MWY5OTY5ODFmOTZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxl
bWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nl
c3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQpAQCAtMjMzLDE3ICsyMzMsOCBAQCB2b2lkIFdlYlBs
YXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVp
bnQ2NF90IHNlbGVjdAogICAgIGlmICghbV9tZWRpYUVsZW1lbnQpCiAgICAgICAgIHJldHVybjsK
IAotICAgIEFTU0VSVChzZWxlY3RlZEF1ZGlvSW5kZXggPCBzdGQ6Om51bWVyaWNfbGltaXRzPHNp
emVfdD46Om1heCgpKTsKLSAgICBBdWRpb1RyYWNrKiBzZWxlY3RlZEF1ZGlvVHJhY2sgPSBudWxs
cHRyOwotCi0gICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IG1fYXVkaW9UcmFja3NG
b3JNZW51LnNpemUoKTsgKytpbmRleCkgewotICAgICAgICBhdXRvJiBhdWRpb1RyYWNrID0gbV9h
dWRpb1RyYWNrc0Zvck1lbnVbaW5kZXhdOwotICAgICAgICBhdWRpb1RyYWNrLT5zZXRFbmFibGVk
KGluZGV4ID09IHN0YXRpY19jYXN0PHNpemVfdD4oc2VsZWN0ZWRBdWRpb0luZGV4KSk7Ci0gICAg
ICAgIGlmIChhdWRpb1RyYWNrLT5lbmFibGVkKCkpCi0gICAgICAgICAgICBzZWxlY3RlZEF1ZGlv
VHJhY2sgPSBhdWRpb1RyYWNrLmdldCgpOwotICAgIH0KLQotICAgIG1fbWVkaWFFbGVtZW50LT5h
dWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoc2VsZWN0ZWRBdWRpb1RyYWNrKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMCwgc2l6ZSA9IG1fYXVkaW9UcmFja3NGb3JNZW51LnNpemUoKTsgaSA8IHNpemU7
ICsraSkKKyAgICAgICAgbV9hdWRpb1RyYWNrc0Zvck1lbnVbaV0tPnNldEVuYWJsZWQoaSA9PSBz
ZWxlY3RlZEF1ZGlvSW5kZXgpOwogfQogCiB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVk
aWFFbGVtZW50OjpzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCkBAIC0y
NTEsMTEgKzI0Miw5IEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6
OnNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRlCiAgICAgaWYgKCFtX21lZGlh
RWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKGluZGV4IDwgc3RkOjpudW1l
cmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7Ci0gICAgVGV4dFRyYWNrKiB0ZXh0VHJhY2sgPSBu
dWxscHRyOwotCisgICAgVGV4dFRyYWNrKiB0ZXh0VHJhY2s7CiAgICAgaWYgKGluZGV4IDwgbV9s
ZWdpYmxlVHJhY2tzRm9yTWVudS5zaXplKCkpCi0gICAgICAgIHRleHRUcmFjayA9IG1fbGVnaWJs
ZVRyYWNrc0Zvck1lbnVbc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCldLmdldCgpOworICAgICAg
ICB0ZXh0VHJhY2sgPSBtX2xlZ2libGVUcmFja3NGb3JNZW51W2luZGV4XS5nZXQoKTsKICAgICBl
bHNlCiAgICAgICAgIHRleHRUcmFjayA9IFRleHRUcmFjazo6Y2FwdGlvbk1lbnVPZmZJdGVtKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJh
Y2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNr
UHJpdmF0ZS5oCmluZGV4IDNiYzk3ZWQ3MDJhYjA0YWRiZTE0MTVhZGY5YmUzNTI5OGRmYWRkZGIu
LjVlYmE0ZWVjNDU3MDk5NDFjMTUxMGQ0MWQ4ZGVmMGRiMmM0NWIzNGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaApAQCAt
MjMsOCArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEF1ZGlvVHJhY2tQ
cml2YXRlX2gKLSNkZWZpbmUgQXVkaW9UcmFja1ByaXZhdGVfaAorI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJUcmFja1ByaXZhdGVCYXNlLmgiCiAKQEAgLTM2LDcgKzM1LDcgQEAgY2xhc3MgQXVk
aW9UcmFja1ByaXZhdGU7CiAKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50IDogcHVibGlj
IFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgewogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBlbmFi
bGVkQ2hhbmdlZChBdWRpb1RyYWNrUHJpdmF0ZSosIGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgPSAwOwogfTsKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZh
dGUgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZSB7CkBAIC01NSwyNiArNTQsMjIgQEAgcHVibGlj
OgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2VuYWJsZWQgPSBlbmFibGVkOwogICAg
ICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+ZW5hYmxlZENoYW5nZWQo
dGhpcywgZW5hYmxlZCk7Ci0gICAgfTsKLSAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fZW5hYmxlZDsgfQorICAgICAgICAgICAgbV9jbGllbnQtPmVuYWJsZWRDaGFu
Z2VkKGVuYWJsZWQpOworICAgIH0KKworICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fZW5hYmxlZDsgfQogCiAgICAgZW51bSBLaW5kIHsgQWx0ZXJuYXRpdmUsIERlc2NyaXB0aW9u
LCBNYWluLCBNYWluRGVzYywgVHJhbnNsYXRpb24sIENvbW1lbnRhcnksIE5vbmUgfTsKICAgICB2
aXJ0dWFsIEtpbmQga2luZCgpIGNvbnN0IHsgcmV0dXJuIE5vbmU7IH0KIAogcHJvdGVjdGVkOgot
ICAgIEF1ZGlvVHJhY2tQcml2YXRlKCkKLSAgICAgICAgOiBtX2NsaWVudCgwKQotICAgICAgICAs
IG1fZW5hYmxlZChmYWxzZSkKLSAgICB7Ci0gICAgfQorICAgIEF1ZGlvVHJhY2tQcml2YXRlKCkg
PSBkZWZhdWx0OwogCiBwcml2YXRlOgotICAgIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50KiBtX2Ns
aWVudDsKLSAgICBib29sIG1fZW5hYmxlZDsKKyAgICBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCog
bV9jbGllbnQgeyBudWxscHRyIH07CisgICAgYm9vbCBtX2VuYWJsZWQgeyBmYWxzZSB9OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKLSNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUNsaWVudC5oCmluZGV4IDc2MGY2NzlkMTM1MGE3MTkwMDQ0NzBhN2NiN2E3NDE3YThi
YzQ5MTUuLjIxMDJmZTNlYjVjNGI1Y2MzY2FkMGUwYmI4MGQ4Yzg5NmYyYmQ5OTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZh
dGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQ2xpZW50LmgKQEAgLTQzLDkgKzQzLDcgQEAgY2xhc3MgSVNPV2ViVlRU
Q3VlOwogCiBjbGFzcyBHZW5lcmljQ3VlRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPEdlbmVyaWND
dWVEYXRhPiB7CiBwdWJsaWM6Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0
YT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEdlbmVyaWNDdWVEYXRhKCkpOyB9Ci0g
ICAgdmlydHVhbCB+R2VuZXJpY0N1ZURhdGEoKSB7IH0KKyAgICBzdGF0aWMgUmVmPEdlbmVyaWND
dWVEYXRhPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEdlbmVyaWNDdWVEYXRhKTsg
fQogCiAgICAgTWVkaWFUaW1lIHN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRUaW1l
OyB9CiAgICAgdm9pZCBzZXRTdGFydFRpbWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydFRpbWUpIHsg
bV9zdGFydFRpbWUgPSBzdGFydFRpbWU7IH0KQEAgLTY4LDEyICs2Niw3IEBAIHB1YmxpYzoKICAg
ICBkb3VibGUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQogICAgIHZvaWQgc2V0U2l6
ZShkb3VibGUgc2l6ZSkgeyBtX3NpemUgPSBzaXplOyB9CiAKLSAgICBlbnVtIEFsaWdubWVudCB7
Ci0gICAgICAgIE5vbmUsCi0gICAgICAgIFN0YXJ0LAotICAgICAgICBNaWRkbGUsCi0gICAgICAg
IEVuZAotICAgIH07CisgICAgZW51bSBBbGlnbm1lbnQgeyBOb25lLCBTdGFydCwgTWlkZGxlLCBF
bmQgfTsKICAgICBBbGlnbm1lbnQgYWxpZ24oKSBjb25zdCB7IHJldHVybiBtX2FsaWduOyB9CiAg
ICAgdm9pZCBzZXRBbGlnbihBbGlnbm1lbnQgYWxpZ24pIHsgbV9hbGlnbiA9IGFsaWduOyB9CiAK
QEAgLTk1LDQzICs4OCwzMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQ29sb3ImIGhpZ2hsaWdodENv
bG9yKCkgY29uc3QgeyByZXR1cm4gbV9oaWdobGlnaHRDb2xvcjsgfQogICAgIHZvaWQgc2V0SGln
aGxpZ2h0Q29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKSB7IG1faGlnaGxpZ2h0Q29sb3IgPSBjb2xv
cjsgfQogCi0gICAgZW51bSBTdGF0dXMgewotICAgICAgICBVbmluaXRpYWxpemVkLAotICAgICAg
ICBQYXJ0aWFsLAotICAgICAgICBDb21wbGV0ZSwKLSAgICB9OworICAgIGVudW0gU3RhdHVzIHsg
VW5pbml0aWFsaXplZCwgUGFydGlhbCwgQ29tcGxldGUgfTsKICAgICBTdGF0dXMgc3RhdHVzKCkg
eyByZXR1cm4gbV9zdGF0dXM7IH0KICAgICB2b2lkIHNldFN0YXR1cyhTdGF0dXMgc3RhdHVzKSB7
IG1fc3RhdHVzID0gc3RhdHVzOyB9CiAKICAgICBib29sIGRvZXNFeHRlbmRDdWVEYXRhKGNvbnN0
IEdlbmVyaWNDdWVEYXRhJikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgR2VuZXJpY0N1ZURhdGEo
KQotICAgICAgICA6IG1fbGluZSgtMSkKLSAgICAgICAgLCBtX3Bvc2l0aW9uKC0xKQotICAgICAg
ICAsIG1fc2l6ZSgtMSkKLSAgICAgICAgLCBtX2FsaWduKE5vbmUpCi0gICAgICAgICwgbV9iYXNl
Rm9udFNpemUoMCkKLSAgICAgICAgLCBtX3JlbGF0aXZlRm9udFNpemUoMCkKLSAgICAgICAgLCBt
X3N0YXR1cyhVbmluaXRpYWxpemVkKQotICAgIHsKLSAgICB9CisgICAgR2VuZXJpY0N1ZURhdGEo
KSA9IGRlZmF1bHQ7CiAKICAgICBNZWRpYVRpbWUgbV9zdGFydFRpbWU7CiAgICAgTWVkaWFUaW1l
IG1fZW5kVGltZTsKICAgICBTdHJpbmcgbV9pZDsKICAgICBTdHJpbmcgbV9jb250ZW50OwotICAg
IGRvdWJsZSBtX2xpbmU7Ci0gICAgZG91YmxlIG1fcG9zaXRpb247Ci0gICAgZG91YmxlIG1fc2l6
ZTsKLSAgICBBbGlnbm1lbnQgbV9hbGlnbjsKKyAgICBkb3VibGUgbV9saW5lIHsgLTEgfTsKKyAg
ICBkb3VibGUgbV9wb3NpdGlvbiB7IC0xIH07CisgICAgZG91YmxlIG1fc2l6ZSB7IC0xIH07Cisg
ICAgQWxpZ25tZW50IG1fYWxpZ24geyBOb25lIH07CiAgICAgU3RyaW5nIG1fZm9udE5hbWU7Ci0g
ICAgZG91YmxlIG1fYmFzZUZvbnRTaXplOwotICAgIGRvdWJsZSBtX3JlbGF0aXZlRm9udFNpemU7
CisgICAgZG91YmxlIG1fYmFzZUZvbnRTaXplIHsgMCB9OworICAgIGRvdWJsZSBtX3JlbGF0aXZl
Rm9udFNpemUgeyAwIH07CiAgICAgQ29sb3IgbV9mb3JlZ3JvdW5kQ29sb3I7CiAgICAgQ29sb3Ig
bV9iYWNrZ3JvdW5kQ29sb3I7CiAgICAgQ29sb3IgbV9oaWdobGlnaHRDb2xvcjsKLSAgICBTdGF0
dXMgbV9zdGF0dXM7CisgICAgU3RhdHVzIG1fc3RhdHVzIHsgVW5pbml0aWFsaXplZCB9OwogfTsK
IAogaW5saW5lIGJvb2wgR2VuZXJpY0N1ZURhdGE6OmRvZXNFeHRlbmRDdWVEYXRhKGNvbnN0IEdl
bmVyaWNDdWVEYXRhJiBvdGhlcikgY29uc3QKQEAgLTE2OCwyMSArMTQ4LDIxIEBAIGNsYXNzIElu
YmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZUNsaWVu
dCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCgp
IHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2
b2lkKiwgdW5zaWduZWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9pZCosIHVuc2ln
bmVkKSA9IDA7CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLSAgICB2aXJ0dWFsIHZvaWQg
YWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFy
dCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVw
cmVzZW50YXRpb24+LCBjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0
ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJl
c2VudGF0aW9uPikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVEYXRhQ3VlKEluYmFuZFRl
eHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUm
IGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4pID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25z
dCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiYm
LCBjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZURhdGFDdWUoY29u
c3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0
Zm9ybVJlcHJlc2VudGF0aW9uJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVEYXRhQ3Vl
KGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVk
UGxhdGZvcm1SZXByZXNlbnRhdGlvbiYpID0gMDsKICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lk
IGFkZEdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFBhc3NSZWZQdHI8R2VuZXJp
Y0N1ZURhdGE+KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBHZW5lcmljQ3VlRGF0
YSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYp
ID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSosIFN0cmluZyYmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAg
dmlydHVhbCB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwg
Y29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNPV2Vi
VlRUQ3VlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3Ry
aW5nJiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VX
ZWJWVFRDdWVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJikgPSAw
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oCmluZGV4IDA4ZTYyYzM0
ODYyYWRkOTRmYTA4NGI0MjVjNTg3YWE0ZmJkMzY0YmQuLjQzZDA2NzQwZjU1ZWQwODQ1ZTVkZjM3
NzM4NmI1ZmU3ODJhOTQ3YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yOCwyMSArMjgsMTcgQEAK
ICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwotI2lmbmRlZiBTb3VyY2VCdWZm
ZXJQcml2YXRlX2gKLSNkZWZpbmUgU291cmNlQnVmZmVyUHJpdmF0ZV9oCisKKyNwcmFnbWEgb25j
ZQogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgi
Ci0jaW5jbHVkZSAiVGltZVJhbmdlcy5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0j
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1l
ZGlhU2FtcGxlOwogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDsKLWNsYXNzIFRpbWVS
YW5nZXM7CiAKIGNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxT
b3VyY2VCdWZmZXJQcml2YXRlPiB7CiBwdWJsaWM6CkBAIC01OCwxNyArNTQsMTYgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZSkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGZsdXNoKEF0b21pY1N0cmluZykgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4sIEF0
b21pY1N0cmluZykgeyB9Ci0gICAgdmlydHVhbCBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhB
dG9taWNTdHJpbmcpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGZsdXNoKGNv
bnN0IEF0b21pY1N0cmluZyYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBlbnF1ZXVlU2FtcGxlKFJl
ZjxNZWRpYVNhbXBsZT4mJiwgY29uc3QgQXRvbWljU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCBi
b29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmKSB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCkgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpIHsgfQotICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJp
bmcpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wQXNraW5nRm9yTW9yZVNhbXBsZXMoY29uc3Qg
QXRvbWljU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFk
eUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYpIHsgfQogCi0gICAgdmlydHVhbCBW
ZWN0b3I8U3RyaW5nPiBlbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKEF0b21pY1N0cmluZykgeyBy
ZXR1cm4ge307IH0KKyAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGVucXVldWVkU2FtcGxlc0Zv
clRyYWNrSUQoY29uc3QgQXRvbWljU3RyaW5nJikgeyByZXR1cm4geyB9OyB9CiB9OwogCiB9CiAK
ICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmgKaW5kZXggMjk0YWQ2NWY0NjMz
NWRmMDY5MTUzZjRhY2IzOTcwM2JmMWM5ZjBmMi4uMzNkMmFkOTMzMDU5NjllMTU5Nzg3OTZhZmEy
Yzc2Mjg0MjljYjIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaApAQCAtMzIsMTIgKzMyLDEx
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZTsK
IGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOwotY2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7CiBjbGFz
cyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOwogY2xhc3MgTWVkaWFTYW1wbGU7CiBjbGFzcyBNZWRp
YURlc2NyaXB0aW9uOworY2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7CiAKIGNsYXNzIFNvdXJjZUJ1
ZmZlclByaXZhdGVDbGllbnQgewogcHVibGljOgpAQCAtNjQsMjMgKzYzLDE5IEBAIHB1YmxpYzoK
ICAgICAgICAgfTsKICAgICAgICAgVmVjdG9yPFRleHRUcmFja0luZm9ybWF0aW9uPiB0ZXh0VHJh
Y2tzOwogICAgIH07Ci0gICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNl
aXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBJbml0
aWFsaXphdGlvblNlZ21lbnQmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRSZWNlaXZlU2FtcGxlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBNZWRpYVNhbXBsZSYp
ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKGNvbnN0
IFNvdXJjZUJ1ZmZlclByaXZhdGUqKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBib29sIHNvdXJj
ZUJ1ZmZlclByaXZhdGVIYXNWaWRlbyhjb25zdCBTb3VyY2VCdWZmZXJQcml2YXRlKikgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRp
YWxpemF0aW9uU2VnbWVudChjb25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2Ft
cGxlJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8o
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIHNvdXJjZUJ1ZmZlclByaXZhdGVIYXNWaWRl
bygpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlk
QmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXRvbWljU3Ry
aW5nIHRyYWNrSUQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURp
ZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKSA9
IDA7CiAKLSAgICB2aXJ0dWFsIE1lZGlhVGltZSBzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtU
aW1lRm9yTWVkaWFUaW1lKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHRp
bWUsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIHsgcmV0dXJuIHRpbWU7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZVNlZWtUb1RpbWUoU291cmNlQnVm
ZmVyUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYpIHsgfTsKKyAgICB2aXJ0dWFsIE1lZGlhVGlt
ZSBzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKGNvbnN0IE1lZGlh
VGltZSYgdGltZSwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJikgeyByZXR1cm4g
dGltZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGltZShj
b25zdCBNZWRpYVRpbWUmKSB7IH07CiAKLSAgICBlbnVtIEFwcGVuZFJlc3VsdCB7Ci0gICAgICAg
IEFwcGVuZFN1Y2NlZWRlZCwKLSAgICAgICAgUmVhZFN0cmVhbUZhaWxlZCwKLSAgICAgICAgUGFy
c2luZ0ZhaWxlZCwKLSAgICB9OwotICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRl
QXBwZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIEFwcGVuZFJlc3VsdCkgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmluZ0Vy
cm9yKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBpbnQgZXJyb2NDb2RlKSA9IDA7CisgICAgZW51bSBB
cHBlbmRSZXN1bHQgeyBBcHBlbmRTdWNjZWVkZWQsIFJlYWRTdHJlYW1GYWlsZWQsIFBhcnNpbmdG
YWlsZWQgfTsKKyAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBs
ZXRlKEFwcGVuZFJlc3VsdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2
YXRlRGlkUmVjZWl2ZVJlbmRlcmluZ0Vycm9yKGludCBlcnJvckNvZGUpID0gMDsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0
ZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJh
c2UuaAppbmRleCA3MzFhYThkOTM2YTVhYWVhMGQxYzAzYWE2OGEyYWM2YjJiMmI5ZTY0Li5hNTQ3
MDUyYmExZmU4MmQ4NzlmZmRlMzk0NzI5NTM5MzhlOTBhODA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oCkBAIC0yNSwzNCAr
MjUsMjkgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBUcmFja1ByaXZhdGVCYXNl
X2gKLSNkZWZpbmUgVHJhY2tQcml2YXRlQmFzZV9oCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShWSURFT19UUkFDSykKIAotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L01lZGlhVGltZS5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKLSNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgVHJh
Y2tQcml2YXRlQmFzZTsKLQogY2xhc3MgVHJhY2tQcml2YXRlQmFzZUNsaWVudCB7CiBwdWJsaWM6
CiAgICAgdmlydHVhbCB+VHJhY2tQcml2YXRlQmFzZUNsaWVudCgpIHsgfQotICAgIHZpcnR1YWwg
dm9pZCBpZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgbGFiZWxDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25z
dCBBdG9taWNTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGxhbmd1YWdlQ2hhbmdlZChU
cmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCB3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2UqKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGlkQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGxh
YmVsQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGxh
bmd1YWdlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHdpbGxSZW1vdmUoKSA9IDA7CiB9OwogCiBjbGFzcyBUcmFja1ByaXZhdGVCYXNlIDogcHVibGlj
IFJlZkNvdW50ZWQ8VHJhY2tQcml2YXRlQmFzZT4gewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFRyYWNrUHJpdmF0ZUJhc2UpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShUcmFja1ByaXZhdGVCYXNlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5UcmFja1ByaXZhdGVCYXNlKCkgeyB9CisgICAg
dmlydHVhbCB+VHJhY2tQcml2YXRlQmFzZSgpID0gZGVmYXVsdDsKIAogICAgIHZpcnR1YWwgVHJh
Y2tQcml2YXRlQmFzZUNsaWVudCogY2xpZW50KCkgY29uc3QgPSAwOwogCkBAIC02NiwxNSArNjEs
MTQgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgd2lsbEJlUmVtb3ZlZCgpCiAgICAgewotICAg
ICAgICBpZiAoVHJhY2tQcml2YXRlQmFzZUNsaWVudCogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkp
Ci0gICAgICAgICAgICBjbGllbnQtPndpbGxSZW1vdmUodGhpcyk7CisgICAgICAgIGlmIChhdXRv
KiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKKyAgICAgICAgICAgIGNsaWVudC0+d2lsbFJlbW92
ZSgpOwogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFRyYWNrUHJpdmF0ZUJhc2UoKSB7IH0KKyAg
ICBUcmFja1ByaXZhdGVCYXNlKCkgPSBkZWZhdWx0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvVHJhY2tQcml2YXRlQVZGLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFja1ByaXZhdGVB
VkYuaAppbmRleCAxMzFmZDUxYjRjMTY5MzQwOGI0ZjhhNGI1OTZlYjI2ZmJkNmQyOTZiLi4xNmY1
N2ZhYTg2ZjQwNTlhOGEyN2U0YTkzMjE5ZDg3Y2JjNDYwNjdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFja1ByaXZhdGVB
VkYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QXVkaW9UcmFja1ByaXZhdGVBVkYuaApAQCAtMzUsNyArMzUsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUFWRiA6IHB1YmxpYyBBdWRpb1RyYWNrUHJpdmF0
ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9UcmFja1ByaXZhdGVBVkYpCiBwdWJs
aWM6Ci0KICAgICB2aXJ0dWFsIEtpbmQga2luZCgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZDsgfQog
ICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogICAg
IHZpcnR1YWwgQXRvbWljU3RyaW5nIGxhYmVsKCkgY29uc3QgeyByZXR1cm4gbV9sYWJlbDsgfQpA
QCAtNDQsOSArNDMsOSBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIHNldEtpbmQo
S2luZCBraW5kKSB7IG1fa2luZCA9IGtpbmQ7IH0KLSAgICB2b2lkIHNldElkKEF0b21pY1N0cmlu
ZyBuZXdJZCkgeyBtX2lkID0gbmV3SWQ7IH0KLSAgICB2b2lkIHNldExhYmVsKEF0b21pY1N0cmlu
ZyBsYWJlbCkgeyBtX2xhYmVsID0gbGFiZWw7IH0KLSAgICB2b2lkIHNldExhbmd1YWdlKEF0b21p
Y1N0cmluZyBsYW5ndWFnZSkgeyBtX2xhbmd1YWdlID0gbGFuZ3VhZ2U7IH0KKyAgICB2b2lkIHNl
dElkKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3SWQpIHsgbV9pZCA9IG5ld0lkOyB9CisgICAgdm9p
ZCBzZXRMYWJlbChjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKSB7IG1fbGFiZWwgPSBsYWJlbDsg
fQorICAgIHZvaWQgc2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkgeyBt
X2xhbmd1YWdlID0gbGFuZ3VhZ2U7IH0KICAgICB2b2lkIHNldFRyYWNrSW5kZXgoaW50IGluZGV4
KSB7IG1faW5kZXggPSBpbmRleDsgfQogCiAgICAgS2luZCBtX2tpbmQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRh
dGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuY3BwCmlu
ZGV4IDljNmNhODdiMGMwZjkwMDY3MTE3ZjQ0MmQzZTY2ZDk0MTMzYWYxNDAuLjZkMmM5MTlhMTE3
ODM2MjY1YmQ2MzM5MmUxYjJiM2M5YTFlNzM3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRNZXRhZGF0YVRleHRUcmFja1By
aXZhdGVBVkYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9JbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuY3BwCkBAIC01NCw2ICs1
NCw3IEBAIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6fkluYmFuZE1ldGFkYXRh
VGV4dFRyYWNrUHJpdmF0ZUFWRigpCiB9CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKKwog
dm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OmFkZERhdGFDdWUoY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFs
aXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBycEN1ZURhdGEsIGNvbnN0IFN0cmluZyYgdHlw
ZSkKIHsKICAgICBBU1NFUlQoY3VlRm9ybWF0KCkgPT0gRGF0YSk7CkBAIC02Niw3ICs2Nyw3IEBA
IHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjphZGREYXRhQ3VlKGNvbnN0
IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0CiAgICAgbV9jdXJyZW50Q3VlU3RhcnRUaW1lID0gc3Rh
cnQ7CiAgICAgaWYgKGVuZC5pc1Bvc2l0aXZlSW5maW5pdGUoKSkKICAgICAgICAgbV9pbmNvbXBs
ZXRlQ3Vlcy5hcHBlbmQoSW5jb21wbGV0ZU1ldGFEYXRhQ3VlIHsgY3VlRGF0YS5nZXQoKSwgc3Rh
cnQgfSk7Ci0gICAgY2xpZW50KCktPmFkZERhdGFDdWUodGhpcywgc3RhcnQsIGVuZCwgY3VlRGF0
YSwgdHlwZSk7CisgICAgY2xpZW50KCktPmFkZERhdGFDdWUoc3RhcnQsIGVuZCwgY3VlRGF0YS5y
ZWxlYXNlTm9uTnVsbCgpLCB0eXBlKTsKIH0KIAogdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFj
a1ByaXZhdGVBVkY6OnVwZGF0ZVBlbmRpbmdDdWVFbmRUaW1lcyhjb25zdCBNZWRpYVRpbWUmIHRp
bWUpCkBAIC03Nyw3ICs3OCw3IEBAIHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRl
QVZGOjp1cGRhdGVQZW5kaW5nQ3VlRW5kVGltZXMoY29uc3QgTWVkaWFUaW1lCiAgICAgICAgIGlm
IChjbGllbnQoKSkgewogICAgICAgICAgICAgZm9yIChhdXRvJiBwYXJ0aWFsQ3VlIDogbV9pbmNv
bXBsZXRlQ3VlcykgewogICAgICAgICAgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZE1ldGFkYXRh
VGV4dFRyYWNrUHJpdmF0ZUFWRjo6dXBkYXRlUGVuZGluZ0N1ZUVuZFRpbWVzKCVwKSAtIHVwZGF0
aW5nIGN1ZTogc3RhcnQ9JXMsIGVuZD0lcyIsIHRoaXMsIHRvU3RyaW5nKHBhcnRpYWxDdWUuc3Rh
cnRUaW1lKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpKTsKLSAg
ICAgICAgICAgICAgICBjbGllbnQoKS0+dXBkYXRlRGF0YUN1ZSh0aGlzLCBwYXJ0aWFsQ3VlLnN0
YXJ0VGltZSwgdGltZSwgcGFydGlhbEN1ZS5jdWVEYXRhKTsKKyAgICAgICAgICAgICAgICBjbGll
bnQoKS0+dXBkYXRlRGF0YUN1ZShwYXJ0aWFsQ3VlLnN0YXJ0VGltZSwgdGltZSwgKnBhcnRpYWxD
dWUuY3VlRGF0YSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UKQEAgLTg2
LDYgKzg3LDcgQEAgdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OnVwZGF0
ZVBlbmRpbmdDdWVFbmRUaW1lcyhjb25zdCBNZWRpYVRpbWUKICAgICBtX2luY29tcGxldGVDdWVz
LnJlc2l6ZSgwKTsKICAgICBtX2N1cnJlbnRDdWVTdGFydFRpbWUgPSBNZWRpYVRpbWU6Onplcm9U
aW1lKCk7CiB9CisKICNlbmRpZgogCiB2b2lkIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0
ZUFWRjo6Zmx1c2hQYXJ0aWFsQ3VlcygpCkBAIC05NSw3ICs5Nyw3IEBAIHZvaWQgSW5iYW5kTWV0
YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjpmbHVzaFBhcnRpYWxDdWVzKCkKIAogICAgIGlmIChj
bGllbnQoKSkgewogICAgICAgICBmb3IgKGF1dG8mIHBhcnRpYWxDdWUgOiBtX2luY29tcGxldGVD
dWVzKQotICAgICAgICAgICAgY2xpZW50KCktPnJlbW92ZURhdGFDdWUodGhpcywgcGFydGlhbEN1
ZS5zdGFydFRpbWUsIE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKSwgcGFydGlhbEN1
ZS5jdWVEYXRhKTsKKyAgICAgICAgICAgIGNsaWVudCgpLT5yZW1vdmVEYXRhQ3VlKHBhcnRpYWxD
dWUuc3RhcnRUaW1lLCBNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5pdGVUaW1lKCksICpwYXJ0aWFs
Q3VlLmN1ZURhdGEpOwogICAgIH0KIAogICAgIG1faW5jb21wbGV0ZUN1ZXMucmVzaXplKDApOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCmluZGV4
IDNiN2JkYTg2NmQyZTYwZDkzMmViOGU2MDk2ZWY4YTkzMzM3YzY2YzAuLmVlNDdmNzdlYmY0ZDc1
Yzg5MDNiODZlNzUzNjdiYjE5MGZiOWFjMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKQEAgLTMyMywzMyArMzIzLDMzIEBAIHZvaWQgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0F0dHJpYnV0ZWRTdHJpbmdzKENGQXJyYXlS
ZWYgYXR0cmlidXRlZFN0CiB7CiAgICAgTE9HKE1lZGlhLCAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUFWRjo6cHJvY2Vzc0N1ZSAtICVsaSBjdWVzIGF0IHRpbWUgJXNcbiIsIGF0dHJpYnV0ZWRTdHJp
bmdzID8gQ0ZBcnJheUdldENvdW50KGF0dHJpYnV0ZWRTdHJpbmdzKSA6IDAsIHRvU3RyaW5nKHRp
bWUpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgVmVjdG9yPFJlZlB0cjxHZW5lcmljQ3VlRGF0YT4+
IGFycml2aW5nQ3VlczsKKyAgICBWZWN0b3I8UmVmPEdlbmVyaWNDdWVEYXRhPj4gYXJyaXZpbmdD
dWVzOwogICAgIGlmIChhdHRyaWJ1dGVkU3RyaW5ncykgewogICAgICAgICBDRkluZGV4IGNvdW50
ID0gQ0ZBcnJheUdldENvdW50KGF0dHJpYnV0ZWRTdHJpbmdzKTsKICAgICAgICAgZm9yIChDRklu
ZGV4IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewogICAgICAgICAgICAgQ0ZBdHRyaWJ1dGVkU3Ry
aW5nUmVmIGF0dHJpYnV0ZWRTdHJpbmcgPSBzdGF0aWNfY2FzdDxDRkF0dHJpYnV0ZWRTdHJpbmdS
ZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0cmlidXRlZFN0cmluZ3MsIGkpKTsKLSAgICAg
ICAgICAgIAorCiAgICAgICAgICAgICBpZiAoIWF0dHJpYnV0ZWRTdHJpbmcgfHwgIUNGQXR0cmli
dXRlZFN0cmluZ0dldExlbmd0aChhdHRyaWJ1dGVkU3RyaW5nKSkKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgUmVmUHRyPEdlbmVyaWNDdWVEYXRh
PiBjdWVEYXRhID0gR2VuZXJpY0N1ZURhdGE6OmNyZWF0ZSgpOwotICAgICAgICAgICAgcHJvY2Vz
c0N1ZUF0dHJpYnV0ZXMoYXR0cmlidXRlZFN0cmluZywgKmN1ZURhdGEuZ2V0KCkpOworCisgICAg
ICAgICAgICBhdXRvIGN1ZURhdGEgPSBHZW5lcmljQ3VlRGF0YTo6Y3JlYXRlKCk7CisgICAgICAg
ICAgICBwcm9jZXNzQ3VlQXR0cmlidXRlcyhhdHRyaWJ1dGVkU3RyaW5nLCBjdWVEYXRhLmdldCgp
KTsKICAgICAgICAgICAgIGlmICghY3VlRGF0YS0+Y29udGVudCgpLmxlbmd0aCgpKQogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBhcnJpdmluZ0N1
ZXMuYXBwZW5kKGN1ZURhdGEpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIGN1ZURhdGEt
PnNldFN0YXJ0VGltZSh0aW1lKTsKICAgICAgICAgICAgIGN1ZURhdGEtPnNldEVuZFRpbWUoTWVk
aWFUaW1lOjpwb3NpdGl2ZUluZmluaXRlVGltZSgpKTsKLSAgICAgICAgICAgIAorCiAgICAgICAg
ICAgICAvLyBBVkZvdW5kYXRpb24gY3VlICJwb3NpdGlvbiIgaXMgdG8gdGhlIGNlbnRlciBvZiB0
aGUgdGV4dCBzbyBhZGp1c3QgcmVsYXRpdmUgdG8gdGhlIGVkZ2UgYmVjYXVzZSB3ZSB3aWxsIHVz
ZSBpdCB0bwogICAgICAgICAgICAgLy8gc2V0IENTUyAibGVmdCIuCiAgICAgICAgICAgICBpZiAo
Y3VlRGF0YS0+cG9zaXRpb24oKSA+PSAwICYmIGN1ZURhdGEtPnNpemUoKSA+IDApCiAgICAgICAg
ICAgICAgICAgY3VlRGF0YS0+c2V0UG9zaXRpb24oY3VlRGF0YS0+cG9zaXRpb24oKSAtIGN1ZURh
dGEtPnNpemUoKSAvIDIpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIExPRyhNZWRpYSwg
IkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWUoJXApIC0gY29uc2lkZXJpbmcg
Y3VlIChcIiVzXCIpIGZvciB0aW1lID0gJXMsIHBvc2l0aW9uID0gICUuMmYsIGxpbmUgPSAgJS4y
ZiIsIHRoaXMsIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWVE
YXRhLT5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS0+cG9zaXRpb24oKSwgY3Vl
RGF0YS0+bGluZSgpKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBjdWVEYXRhLT5zZXRT
dGF0dXMoR2VuZXJpY0N1ZURhdGE6OlBhcnRpYWwpOworCisgICAgICAgICAgICBhcnJpdmluZ0N1
ZXMuYXBwZW5kKFdURk1vdmUoY3VlRGF0YSkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0zNjAs
MTcgKzM2MCwxNyBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRy
aWJ1dGVkU3RyaW5ncyhDRkFycmF5UmVmIGF0dHJpYnV0ZWRTdAogICAgICAgICBpZiAobV9jdXJy
ZW50Q3VlRW5kVGltZSA+PSBtX2N1cnJlbnRDdWVTdGFydFRpbWUpIHsKICAgICAgICAgICAgIGZv
ciAoYXV0byYgY3VlRGF0YSA6IG1fY3VlcykgewogICAgICAgICAgICAgICAgIC8vIFNlZSBpZiBv
bmUgb2YgdGhlIG5ld2x5LWFycml2ZWQgY3VlcyBpcyBhbiBleHRlbnNpb24gb2YgdGhpcyBjdWUu
Ci0gICAgICAgICAgICAgICAgVmVjdG9yPFJlZlB0cjxHZW5lcmljQ3VlRGF0YT4+IG5vbkV4dGVu
c2lvbkN1ZXM7CisgICAgICAgICAgICAgICAgVmVjdG9yPFJlZjxHZW5lcmljQ3VlRGF0YT4+IG5v
bkV4dGVuc2lvbkN1ZXM7CiAgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBhcnJpdmluZ0N1ZSA6
IGFycml2aW5nQ3VlcykgewogICAgICAgICAgICAgICAgICAgICBpZiAoIWFycml2aW5nQ3VlLT5k
b2VzRXh0ZW5kQ3VlRGF0YSgqY3VlRGF0YSkpCi0gICAgICAgICAgICAgICAgICAgICAgICBub25F
eHRlbnNpb25DdWVzLmFwcGVuZChhcnJpdmluZ0N1ZSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBub25FeHRlbnNpb25DdWVzLmFwcGVuZChXVEZNb3ZlKGFycml2aW5nQ3VlKSk7CiAgICAgICAg
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIExPRyhNZWRpYSwgIklu
YmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWUoJXApIC0gZm91bmQgYW4gZXh0ZW5z
aW9uIGN1ZSAoXCIlc1wiKSBmb3IgdGltZSA9ICUuMmYsIGVuZCA9ICUuMmYsIHBvc2l0aW9uID0g
ICUuMmYsIGxpbmUgPSAgJS4yZiIsIHRoaXMsIGFycml2aW5nQ3VlLT5jb250ZW50KCkudXRmOCgp
LmRhdGEoKSwgYXJyaXZpbmdDdWUtPnN0YXJ0VGltZSgpLnRvRG91YmxlKCksIGFycml2aW5nQ3Vl
LT5lbmRUaW1lKCkudG9Eb3VibGUoKSwgYXJyaXZpbmdDdWUtPnBvc2l0aW9uKCksIGFycml2aW5n
Q3VlLT5saW5lKCkpOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGJvb2wg
Y3VycmVudEN1ZUlzRXh0ZW5kZWQgPSAoYXJyaXZpbmdDdWVzLnNpemUoKSAhPSBub25FeHRlbnNp
b25DdWVzLnNpemUoKSk7CiAKLSAgICAgICAgICAgICAgICBhcnJpdmluZ0N1ZXMgPSBub25FeHRl
bnNpb25DdWVzOworICAgICAgICAgICAgICAgIGFycml2aW5nQ3VlcyA9IFdURk1vdmUobm9uRXh0
ZW5zaW9uQ3Vlcyk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKGN1cnJl
bnRDdWVJc0V4dGVuZGVkKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTM4MCw3
ICszODAsNyBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRyaWJ1
dGVkU3RyaW5ncyhDRkFycmF5UmVmIGF0dHJpYnV0ZWRTdAogICAgICAgICAgICAgICAgICAgICBj
dWVEYXRhLT5zZXRTdGF0dXMoR2VuZXJpY0N1ZURhdGE6OkNvbXBsZXRlKTsKIAogICAgICAgICAg
ICAgICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNz
Q3VlKCVwKSAtIHVwZGF0aW5nIGN1ZSBcIiVzXCI6IHN0YXJ0PSUuMmYsIGVuZD0lLjJmIiwgdGhp
cywgY3VlRGF0YS0+Y29udGVudCgpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEtPnN0YXJ0VGltZSgp
LnRvRG91YmxlKCksIG1fY3VycmVudEN1ZUVuZFRpbWUudG9Eb3VibGUoKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIGNsaWVudCgpLT51cGRhdGVHZW5lcmljQ3VlKHRoaXMsIGN1ZURhdGEuZ2V0KCkp
OworICAgICAgICAgICAgICAgICAgICBjbGllbnQoKS0+dXBkYXRlR2VuZXJpY0N1ZSgqY3VlRGF0
YSk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgLy8gV2Ug
aGF2ZSB0byBhc3N1bWUgdGhhdCB0aGUgaW1wbGljaXQgZHVyYXRpb24gaXMgaW52YWxpZCBmb3Ig
Y3VlcyBkZWxpdmVyZWQgZHVyaW5nIGEgc2VlayBiZWNhdXNlIHRoZSBBVkYgZGVjb2RlIHBpcGVs
aW5lIG1heSBub3QKICAgICAgICAgICAgICAgICAgICAgLy8gc2VlIGV2ZXJ5IGN1ZSwgc28gRE8g
Tk9UIHVwZGF0ZSBjdWUgZHVyYXRpb24gd2hpbGUgc2Vla2luZy4KQEAgLTM5OSwxMiArMzk5LDEx
IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0F0dHJpYnV0ZWRTdHJp
bmdzKENGQXJyYXlSZWYgYXR0cmlidXRlZFN0CiAgICAgbV9jdXJyZW50Q3VlU3RhcnRUaW1lID0g
dGltZTsKIAogICAgIGZvciAoYXV0byYgY3VlRGF0YSA6IGFycml2aW5nQ3VlcykgewotCi0gICAg
ICAgIG1fY3Vlcy5hcHBlbmQoY3VlRGF0YSk7CisgICAgICAgIG1fY3Vlcy5hcHBlbmQoY3VlRGF0
YS5wdHIoKSk7CiAgICAgICAgIAogICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlQVZGOjpwcm9jZXNzQ3VlKCVwKSAtIGFkZGluZyBjdWUgXCIlc1wiIGZvciB0aW1lID0g
JS4yZiwgZW5kID0gJS4yZiwgcG9zaXRpb24gPSAgJS4yZiwgbGluZSA9ICAlLjJmIiwgdGhpcywg
Y3VlRGF0YS0+Y29udGVudCgpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEtPnN0YXJ0VGltZSgpLnRv
RG91YmxlKCksIGN1ZURhdGEtPmVuZFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLT5wb3NpdGlv
bigpLCBjdWVEYXRhLT5saW5lKCkpOwogCi0gICAgICAgIGNsaWVudCgpLT5hZGRHZW5lcmljQ3Vl
KHRoaXMsIFdURk1vdmUoY3VlRGF0YSkpOworICAgICAgICBjbGllbnQoKS0+YWRkR2VuZXJpY0N1
ZShXVEZNb3ZlKGN1ZURhdGEpKTsKICAgICB9CiAKICAgICBtX3BlbmRpbmdDdWVTdGF0dXMgPSBz
ZWVraW5nKCkgPyBEZWxpdmVyZWREdXJpbmdTZWVrIDogVmFsaWQ7CkBAIC00NTEsOSArNDUwLDkg
QEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpyZXNldEN1ZVZhbHVlcygpCiAgICAg
aWYgKG1fY3VycmVudEN1ZUVuZFRpbWUgJiYgbV9jdWVzLnNpemUoKSkKICAgICAgICAgTE9HKE1l
ZGlhLCAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cmVzZXRDdWVWYWx1ZXMgZmx1c2hpbmcg
ZGF0YSBmb3IgY3Vlczogc3RhcnQ9JXNcbiIsIHRvU3RyaW5nKG1fY3VycmVudEN1ZVN0YXJ0VGlt
ZSkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICBpZiAoY2xpZW50KCkpIHsKLSAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBtX2N1ZXMuc2l6ZSgpOyBpKyspCi0gICAgICAgICAgICBjbGllbnQo
KS0+cmVtb3ZlR2VuZXJpY0N1ZSh0aGlzLCBtX2N1ZXNbaV0uZ2V0KCkpOworICAgIGlmIChhdXRv
KiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkgeworICAgICAgICBmb3IgKGF1dG8mIGN1ZSA6IG1f
Y3VlcykKKyAgICAgICAgICAgIGNsaWVudC0+cmVtb3ZlR2VuZXJpY0N1ZSgqY3VlKTsKICAgICB9
CiAKICAgICBtX2N1ZXMucmVzaXplKDApOwpAQCAtNTA5LDcgKzUwOCw3IEBAIHZvaWQgSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc05hdGl2ZVNhbXBsZXMoQ0ZBcnJheVJlZiBuYXRp
dmVTYW1wbGVzLCBjCiAgICAgICAgICAgICBMT0coTWVkaWEsICIgICAgaWQgPSBcIiVzXCIsIHNl
dHRpbmdzID0gXCIlc1wiLCBjdWUgdGV4dCA9IFwiJXNcIiIsIGN1ZURhdGEuaWQoKS51dGY4KCku
ZGF0YSgpLCBjdWVEYXRhLnNldHRpbmdzKCkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS5jdWVUZXh0
KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgICAgICBMT0coTWVkaWEsICIgICAgc291cmNlSUQg
PSBcIiVzXCIsIG9yaWdpbmFsU3RhcnRUaW1lID0gXCIlc1wiIiwgY3VlRGF0YS5zb3VyY2VJRCgp
LnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEub3JpZ2luYWxTdGFydFRpbWUoKS51dGY4KCkuZGF0YSgp
KTsKIAotICAgICAgICAgICAgY2xpZW50KCktPnBhcnNlV2ViVlRUQ3VlRGF0YSh0aGlzLCBjdWVE
YXRhKTsKKyAgICAgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEN1ZURhdGEoY3VlRGF0YSk7
CiAgICAgICAgIH0KIAogICAgICAgICBkbyB7CkBAIC01NDIsNyArNTQxLDcgQEAgdm9pZCBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzTmF0aXZlU2FtcGxlcyhDRkFycmF5UmVmIG5h
dGl2ZVNhbXBsZXMsIGMKICAgICAgICAgICAgIGhlYWRlci5hcHBlbmQoIlxuXG4iKTsKIAogICAg
ICAgICAgICAgTE9HKE1lZGlhLCAiICAgIHZ0dCBoZWFkZXIgPSBcbiVzIiwgaGVhZGVyLnRvU3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRG
aWxlSGVhZGVyKHRoaXMsIGhlYWRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGNsaWVudCgp
LT5wYXJzZVdlYlZUVEZpbGVIZWFkZXIoaGVhZGVyLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAg
bV9oYXZlUmVwb3J0ZWRWVFRIZWFkZXIgPSB0cnVlOwogICAgICAgICB9IHdoaWxlICgwKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwCmluZGV4IGZlOTM0NGI2MzFmMDM1ZjllZGU3MzU3NDQw
N2YzNDM5YWEyNGU1MDIuLjhjOTQ5M2NhNWI3OTdlNDQ4YTAwMjIzOTQ3ZTliNTFiM2M5YTg0ZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5jcHAKQEAgLTM2LDggKzM2LDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OkF1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKEFWQXNzZXRUcmFjayogdHJhY2ssIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDKiBwYXJlbnQpCiAgICAgOiBtX2ltcGwoc3RkOjptYWtlX3VuaXF1
ZTxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPih0cmFjaykpCiAgICAgLCBtX3BhcmVudChwYXJl
bnQpCi0gICAgLCBtX3RyYWNrSUQoLTEpCi0gICAgLCBtX2VuYWJsZWQoZmFsc2UpCiB7CiAgICAg
cmVzZXRQcm9wZXJ0aWVzRnJvbVRyYWNrKCk7CiB9CkBAIC02MywxNyArNjEsMTIgQEAgQVZBc3Nl
dFRyYWNrKiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6YXNzZXRUcmFjaygp
CiAgICAgcmV0dXJuIG1faW1wbC0+YXNzZXRUcmFjaygpOwogfQogCi1ib29sIEF1ZGlvVHJhY2tQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjplbmFibGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
bV9lbmFibGVkOwotfQotCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpzZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKLSAgICBpZiAobV9lbmFibGVkID09IGVuYWJs
ZWQpCisgICAgaWYgKGVuYWJsZWQgPT0gdGhpcy0+ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBtX2VuYWJsZWQgPSBlbmFibGVkOworICAgIEF1ZGlvVHJhY2tQcml2YXRlQVZGOjpz
ZXRFbmFibGVkKGVuYWJsZWQpOwogICAgIG1fcGFyZW50LT50cmFja0RpZENoYW5nZUVuYWJsZWQo
dGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IGJiZTg5Y2RkYTEzYjA4MmRj
ZjgzZjAyNWZjYzg1YzQyOGZkYzkxNDcuLjE3YzE5YTAwNmE3NjdiODVmZjFiYWQ0MWIyODMwMjdj
ODVhZjBjZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVk
aW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtMjMsOCArMjMsNyBAQAogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQ19oCi0jZGVmaW5lIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDX2gK
KyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVBVkYuaCIKIApAQCAt
NDYsOCArNDUsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXVkaW9U
cmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakModHJhY2ssIHBhcmVudCkpOwogICAgIH0KIAot
ICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0RW5hYmxlZChi
b29sKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCkgZmluYWw7CiAKICAgICB2
b2lkIHNldEFzc2V0VHJhY2soQVZBc3NldFRyYWNrKik7CiAgICAgQVZBc3NldFRyYWNrKiBhc3Nl
dFRyYWNrKCk7CkBAIC02MiwxMSArNjAsOCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0
cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPiBtX2ltcGw7CiAgICAgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMqIG1fcGFyZW50OwogICAgIGludCBtX3RyYWNrSUQ7Ci0gICAgYm9vbCBtX2Vu
YWJsZWQ7CiB9OwogCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBFTkFC
TEUoVklERU9fVFJBQ0spCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKaW5kZXggMWY3NTgyZTE4YmI2OGNjYjhjMDY1
NzZmNDBjMWMxOTUzN2ZhN2U3YS4uM2RhZTRiMTMwODU4ZjQ2MzdiZGQyZjUxYTJjMzQ2ODQyN2Y4
MmJhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5oCkBAIC0xMTQsMTggKzExNCwxOCBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMqKTsK
IAogICAgIC8vIFNvdXJjZUJ1ZmZlclByaXZhdGUgb3ZlcnJpZGVzCi0gICAgdm9pZCBzZXRDbGll
bnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwotICAgIHZvaWQgYXBwZW5k
KGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBhYm9ydCgpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzZXRQYXJzZXJTdGF0ZSgpIG92
ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpIG92ZXJyaWRlOwotICAg
IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKLSAg
ICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpIG92ZXJyaWRlOwot
ICAgIHZvaWQgZmx1c2goQXRvbWljU3RyaW5nIHRyYWNrSUQpIG92ZXJyaWRlOwotICAgIHZvaWQg
ZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiwgQXRvbWljU3RyaW5nIHRyYWNr
SUQpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmlu
ZyB0cmFja0lEKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldEFjdGl2ZShib29sKSBvdmVycmlkZTsK
LSAgICB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmlu
ZyB0cmFja0lEKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldENsaWVudChTb3VyY2VCdWZmZXJQcml2
YXRlQ2xpZW50KikgZmluYWw7CisgICAgdm9pZCBhcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciog
ZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KCkgZmluYWw7Cisg
ICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkgZmluYWw7CisgICAgdm9pZCByZW1vdmVkRnJvbU1l
ZGlhU291cmNlKCkgZmluYWw7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0
ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSkgZmluYWw7CisgICAgdm9pZCBmbHVzaChjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNr
SUQpIGZpbmFsOworICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYsIGNv
bnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkgZmluYWw7CisgICAgYm9vbCBpc1JlYWR5Rm9yTW9y
ZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKSBmaW5hbDsKKyAgICB2b2lkIHNl
dEFjdGl2ZShib29sKSBmaW5hbDsKKyAgICB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1v
cmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkgZmluYWw7CiAKICAgICB2b2lk
IGRpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoaW50IHRyYWNrSUQpOwogICAgIHZvaWQgYXBw
ZW5kQ29tcGxldGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDNiMGQ2OGNjMmJmMmQyMmI3OGIzOTJiZjM4Mjhm
ZTYxMzhlOWIwMTguLmNjOTJlZDE1OGY1NTNjMTE2MGRhNDNmMjdhMWEwODlhOTU3MzI4ZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDLm1tCkBAIC01MTIsNyArNTEyLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6ZGlkUGFyc2VTdHJlYW1EYXRhQXNBc3NldChBVkFzc2V0KiBhc3NldCkKICAgICAgICAgbV9t
ZWRpYVNvdXJjZS0+cGxheWVyKCktPmNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsKIAogICAgIGlm
IChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNl
aXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KHRoaXMsIHNlZ21lbnQpOworICAgICAgICBtX2NsaWVu
dC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoc2Vn
bWVudCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZEZhaWxUb1Bh
cnNlU3RyZWFtRGF0YVdpdGhFcnJvcihOU0Vycm9yKiBlcnJvcikKQEAgLTU0OSw3ICs1NDksNyBA
QCBib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpwcm9jZXNzQ29kZWRGcmFtZShpbnQg
dHJhY2tJRCwgQ01TYW1wbGVCdWZmZXJSZQogICAgIGlmIChtX2NsaWVudCkgewogICAgICAgICBS
ZWY8TWVkaWFTYW1wbGU+IG1lZGlhU2FtcGxlID0gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUo
c2FtcGxlQnVmZmVyLCB0cmFja0lEKTsKICAgICAgICAgTE9HKE1lZGlhU291cmNlU2FtcGxlcywg
IlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpwcm9jZXNzQ29kZWRGcmFtZSglcCkgLSBzYW1w
bGUoJXMpIiwgdGhpcywgdG9TdHJpbmcobWVkaWFTYW1wbGUuZ2V0KCkpLnV0ZjgoKS5kYXRhKCkp
OwotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUo
dGhpcywgbWVkaWFTYW1wbGUpOworICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVTYW1wbGUobWVkaWFTYW1wbGUpOwogICAgIH0KIAogICAgIHJldHVybiB0cnVl
OwpAQCAtNjU5LDcgKzY1OSw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFw
cGVuZENvbXBsZXRlZCgpCiAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zZXRMb2Fk
aW5nUHJvZ3Jlc3NzZWQodHJ1ZSk7CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xp
ZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUodGhpcywgbV9wYXJzaW5nU3Vj
Y2VlZGVkID8gU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBwZW5kU3VjY2VlZGVkIDogU291
cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6UGFyc2luZ0ZhaWxlZCk7CisgICAgICAgIG1fY2xpZW50
LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUobV9wYXJzaW5nU3VjY2VlZGVkID8g
U291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBwZW5kU3VjY2VlZGVkIDogU291cmNlQnVmZmVy
UHJpdmF0ZUNsaWVudDo6UGFyc2luZ0ZhaWxlZCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OmFib3J0KCkKQEAgLTczNSwxOCArNzM1LDEyIEBAIHZvaWQgU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakM6OnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUg
cmVhZHlTdGF0CiAKIGJvb2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Omhhc1ZpZGVvKCkg
Y29uc3QKIHsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNWaWRlbyh0aGlzKTsKKyAg
ICByZXR1cm4gbV9jbGllbnQgJiYgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNWaWRl
bygpOwogfQogCiBib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpoYXNBdWRpbygpIGNv
bnN0CiB7Ci0gICAgaWYgKCFtX2NsaWVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
cmV0dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8odGhpcyk7CisgICAg
cmV0dXJuIG1fY2xpZW50ICYmIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8o
KTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6dHJhY2tEaWRDaGFuZ2VF
bmFibGVkKFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKiB0cmFjaykKQEAgLTg3
NCw3ICs4NjgsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpsYXllckRpZFJl
Y2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcgogICAgIGludCBlcnJvckNvZGUg
PSBbW1tlcnJvciB1c2VySW5mb10gdmFsdWVGb3JLZXk6QCJPU1N0YXR1cyJdIGludFZhbHVlXTsK
IAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZh
dGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IodGhpcywgZXJyb3JDb2RlKTsKKyAgICAgICAgbV9j
bGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoZXJyb3JD
b2RlKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6cmVuZGVyZXJEaWRS
ZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICpyZW5kZXJlciwgTlNFcnJv
ciAqZXJyb3IpCkBAIC04OTUsNyArODg5LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6cmVuZGVyZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmQKICAg
ICAgICAgcmV0dXJuOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVz
aChBdG9taWNTdHJpbmcgdHJhY2tJRFN0cmluZykKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6OmZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRFN0cmluZykKIHsKICAgICBp
bnQgdHJhY2tJRCA9IHRyYWNrSURTdHJpbmcudG9JbnQoKTsKICAgICBMT0coTWVkaWFTb3VyY2Us
ICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Zmx1c2goJXApIC0gdHJhY2tJZDogJWQiLCB0
aGlzLCB0cmFja0lEKTsKQEAgLTkyNSwxOSArOTE5LDE3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OmZsdXNoKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqcmVuZGVyZXIp
CiAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zZXRIYXNBdmFpbGFibGVBdWRpb1Nh
bXBsZShyZW5kZXJlciwgZmFsc2UpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjplbnF1ZXVlU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+IHBycE1lZGlhU2FtcGxl
LCBBdG9taWNTdHJpbmcgdHJhY2tJRFN0cmluZykKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6OmVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgY29uc3QgQXRv
bWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAgIGludCB0cmFja0lEID0gdHJhY2tJRFN0
cmluZy50b0ludCgpOwogICAgIGlmICh0cmFja0lEICE9IG1fZW5hYmxlZFZpZGVvVHJhY2tJRCAm
JiAhbV9hdWRpb1JlbmRlcmVycy5jb250YWlucyh0cmFja0lEKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBtZWRpYVNhbXBsZSA9IHBycE1lZGlhU2FtcGxlOwot
Ci0gICAgUGxhdGZvcm1TYW1wbGUgcGxhdGZvcm1TYW1wbGUgPSBtZWRpYVNhbXBsZS0+cGxhdGZv
cm1TYW1wbGUoKTsKKyAgICBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBsZSA9IHNhbXBsZS0+
cGxhdGZvcm1TYW1wbGUoKTsKICAgICBpZiAocGxhdGZvcm1TYW1wbGUudHlwZSAhPSBQbGF0Zm9y
bVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlKQogICAgICAgICByZXR1cm47CiAKLSAgICBMT0co
TWVkaWFTb3VyY2VTYW1wbGVzLCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVT
YW1wbGUoJXApIC0gc2FtcGxlKCVzKSIsIHRoaXMsIHRvU3RyaW5nKCptZWRpYVNhbXBsZSkudXRm
OCgpLmRhdGEoKSk7CisgICAgTE9HKE1lZGlhU291cmNlU2FtcGxlcywgIlNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKCVwKSAtIHNhbXBsZSglcykiLCB0aGlzLCB0b1N0
cmluZyhzYW1wbGUuZ2V0KCkpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgaWYgKHRyYWNrSUQgPT0g
bV9lbmFibGVkVmlkZW9UcmFja0lEKSB7CiAgICAgICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYg
Zm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHBs
YXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7CkBAIC05NTAsMjIgKzk0MiwyMiBA
QCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKFBhc3NSZWZQ
dHI8TWVkaWFTYW1wbGU+IHBycE1lZGlhUwogICAgICAgICAgICAgICAgIGlmIChzaXplV2FzTnVs
bCkKICAgICAgICAgICAgICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldE5hdHVy
YWxTaXplKGZvcm1hdFNpemUpOwogICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNpemVXaWxsQ2hhbmdlQXRUaW1lKG1lZGlh
U2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCksIGZvcm1hdFNpemUpOworICAgICAgICAgICAgICAg
ICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2l6ZVdpbGxDaGFuZ2VBdFRpbWUoc2FtcGxl
LT5wcmVzZW50YXRpb25UaW1lKCksIGZvcm1hdFNpemUpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAKICAgICAgICAgW21fZGlzcGxheUxheWVyIGVucXVldWVTYW1wbGVCdWZmZXI6cGxhdGZv
cm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyXTsKICAgICAgICAgaWYgKG1fbWVkaWFTb3Vy
Y2UpCi0gICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2V0SGFzQXZhaWxhYmxl
VmlkZW9GcmFtZSghbWVkaWFTYW1wbGUtPmlzTm9uRGlzcGxheWluZygpKTsKKyAgICAgICAgICAg
IG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zZXRIYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCFzYW1w
bGUtPmlzTm9uRGlzcGxheWluZygpKTsKICAgICB9IGVsc2UgewogICAgICAgICBhdXRvIHJlbmRl
cmVyID0gbV9hdWRpb1JlbmRlcmVycy5nZXQodHJhY2tJRCk7CiAgICAgICAgIFtyZW5kZXJlciBl
bnF1ZXVlU2FtcGxlQnVmZmVyOnBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcl07
CiAgICAgICAgIGlmIChtX21lZGlhU291cmNlKQotICAgICAgICAgICAgbV9tZWRpYVNvdXJjZS0+
cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxlKHJlbmRlcmVyLmdldCgpLCAhbWVk
aWFTYW1wbGUtPmlzTm9uRGlzcGxheWluZygpKTsKKyAgICAgICAgICAgIG1fbWVkaWFTb3VyY2Ut
PnBsYXllcigpLT5zZXRIYXNBdmFpbGFibGVBdWRpb1NhbXBsZShyZW5kZXJlci5nZXQoKSwgIXNh
bXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOwogICAgIH0KIH0KIAotYm9vbCBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6aXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZyB0cmFja0lE
U3RyaW5nKQorYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6aXNSZWFkeUZvck1vcmVT
YW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRFN0cmluZykKIHsKICAgICBpbnQgdHJh
Y2tJRCA9IHRyYWNrSURTdHJpbmcudG9JbnQoKTsKICAgICBpZiAodHJhY2tJRCA9PSBtX2VuYWJs
ZWRWaWRlb1RyYWNrSUQpCkBAIC05ODQsOSArOTc2LDkgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQzo6c2V0QWN0aXZlKGJvb2wgaXNBY3RpdmUpCiAKIE1lZGlhVGltZSBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6ZmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKE1lZGlhVGltZSB0
aW1lLCBNZWRpYVRpbWUgbmVnYXRpdmVUaHJlc2hvbGQsIE1lZGlhVGltZSBwb3NpdGl2ZVRocmVz
aG9sZCkKIHsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIHJldHVybiBtX2NsaWVudC0+c291
cmNlQnVmZmVyUHJpdmF0ZUZhc3RTZWVrVGltZUZvck1lZGlhVGltZSh0aGlzLCB0aW1lLCBuZWdh
dGl2ZVRocmVzaG9sZCwgcG9zaXRpdmVUaHJlc2hvbGQpOwotICAgIHJldHVybiB0aW1lOworICAg
IGlmICghbV9jbGllbnQpCisgICAgICAgIHJldHVybiB0aW1lOworICAgIHJldHVybiBtX2NsaWVu
dC0+c291cmNlQnVmZmVyUHJpdmF0ZUZhc3RTZWVrVGltZUZvck1lZGlhVGltZSh0aW1lLCBuZWdh
dGl2ZVRocmVzaG9sZCwgcG9zaXRpdmVUaHJlc2hvbGQpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjp3aWxsU2VlaygpCkBAIC0xMDAxLDcgKzk5Myw3IEBAIHZvaWQgU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OndpbGxTZWVrKCkKIHZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OnNlZWtUb1RpbWUoTWVkaWFUaW1lIHRpbWUpCiB7CiAgICAgaWYgKG1fY2xp
ZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZVNlZWtUb1RpbWUodGhp
cywgdGltZSk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGlt
ZSh0aW1lKTsKIH0KIAogRmxvYXRTaXplIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpuYXR1
cmFsU2l6ZSgpCkBAIC0xMDIxLDEwICsxMDEzLDEwIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OmRpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoaW50IHRyYWNrSUQpCiAgICAg
fQogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJp
dmF0ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXModGhpcywgQXRvbWljU3RyaW5nOjpudW1i
ZXIodHJhY2tJRCkpOworICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZEJl
Y29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nOjpudW1iZXIodHJhY2tJRCkpOwog
fQogCi12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpub3RpZnlDbGllbnRXaGVuUmVh
ZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcgdHJhY2tJRFN0cmluZykKK3ZvaWQgU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVz
KGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRFN0cmluZykKIHsKICAgICBpbnQgdHJhY2tJRCA9
IHRyYWNrSURTdHJpbmcudG9JbnQoKTsKICAgICBpZiAodHJhY2tJRCA9PSBtX2VuYWJsZWRWaWRl
b1RyYWNrSUQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVk
aWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKaW5kZXgg
NDhkZjRiY2M0YzNiYjhkYTJjNWY0OTAwZTE3NTA2MDA3OTE4NTZmMy4uMTUwZDJjMzI2YTBhZmNk
M2FjZWNjODA1OGY0YzlmZDYyMDVmMDcwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVy
UHJpdmF0ZS5jcHAKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2
YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSA8bWFwPgogI2luY2x1ZGUgPHJ1bnRpbWUvQXJyYXlCdWZm
ZXIuaD4KLSNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5n
UHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTY1LDcgKzE2NCw3IEBA
IHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFy
KiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgfQogCiAgICAgaWYgKG1fY2xpZW50KQotICAg
ICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKHRoaXMsIHJl
c3VsdCk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxl
dGUocmVzdWx0KTsKIH0KIAogdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2
ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBNb2NrSW5pdGlhbGl6YXRpb25Cb3gmIGluaXRC
b3gpCkBAIC0xOTYsNyArMTk1LDcgQEAgdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlk
UmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBNb2NrSW5pdGlhbGkKICAgICAgICAg
fQogICAgIH0KIAotICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUlu
aXRpYWxpemF0aW9uU2VnbWVudCh0aGlzLCBzZWdtZW50KTsKKyAgICBtX2NsaWVudC0+c291cmNl
QnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoc2VnbWVudCk7CiB9
CiAKIApAQCAtMjA1LDcgKzIwNCw3IEBAIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmRp
ZFJlY2VpdmVTYW1wbGUoY29uc3QgTW9ja1NhbXBsZUJveCYgc2FtcGxlQm94KQogICAgIGlmICgh
bV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQ
cml2YXRlRGlkUmVjZWl2ZVNhbXBsZSh0aGlzLCBNb2NrTWVkaWFTYW1wbGU6OmNyZWF0ZShzYW1w
bGVCb3gpKTsKKyAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1w
bGUoTW9ja01lZGlhU2FtcGxlOjpjcmVhdGUoc2FtcGxlQm94KSk7CiB9CiAKIHZvaWQgTW9ja1Nv
dXJjZUJ1ZmZlclByaXZhdGU6OmFib3J0KCkKQEAgLTIzOSwyMiArMjM4LDIxIEBAIHZvaWQgTW9j
a1NvdXJjZUJ1ZmZlclByaXZhdGU6OnNldEFjdGl2ZShib29sIGlzQWN0aXZlKQogICAgICAgICBt
X21lZGlhU291cmNlLT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkQ2hhbmdlQWN0aXZlU3RhdGUodGhp
cywgaXNBY3RpdmUpOwogfQogCi1WZWN0b3I8U3RyaW5nPiBNb2NrU291cmNlQnVmZmVyUHJpdmF0
ZTo6ZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChBdG9taWNTdHJpbmcpCitWZWN0b3I8U3RyaW5n
PiBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChjb25z
dCBBdG9taWNTdHJpbmcmKQogewogICAgIHJldHVybiBtX2VucXVldWVkU2FtcGxlczsKIH0KIAot
dm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1l
ZGlhU2FtcGxlPiBwcnBTYW1wbGUsIEF0b21pY1N0cmluZykKK3ZvaWQgTW9ja1NvdXJjZUJ1ZmZl
clByaXZhdGU6OmVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgY29uc3Qg
QXRvbWljU3RyaW5nJikKIHsKLSAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IHNhbXBsZSA9IHBycFNh
bXBsZTsKLSAgICBpZiAoIW1fbWVkaWFTb3VyY2UgfHwgIXNhbXBsZSkKKyAgICBpZiAoIW1fbWVk
aWFTb3VyY2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3Jt
U2FtcGxlID0gc2FtcGxlLT5wbGF0Zm9ybVNhbXBsZSgpOwogICAgIGlmIChwbGF0Zm9ybVNhbXBs
ZS50eXBlICE9IFBsYXRmb3JtU2FtcGxlOjpNb2NrU2FtcGxlQm94VHlwZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgTW9ja1NhbXBsZUJveCogYm94ID0gcGxhdGZvcm1TYW1wbGUuc2FtcGxlLm1v
Y2tTYW1wbGVCb3g7CisgICAgYXV0byogYm94ID0gcGxhdGZvcm1TYW1wbGUuc2FtcGxlLm1vY2tT
YW1wbGVCb3g7CiAgICAgaWYgKCFib3gpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjY2LDM3ICsy
NjQsMzAgQEAgdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1ZVNhbXBsZShQYXNz
UmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUsIEEKICAgICBpZiAoYm94LT5pc0RlbGF5ZWQo
KSkKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+aW5jcmVtZW50VG90YWxGcmFtZURlbGF5QnkoTWVk
aWFUaW1lKDEsIDEpKTsKIAotICAgIG1fZW5xdWV1ZWRTYW1wbGVzLmFwcGVuZCh0b1N0cmluZyhz
YW1wbGUpKTsKKyAgICBtX2VucXVldWVkU2FtcGxlcy5hcHBlbmQodG9TdHJpbmcoc2FtcGxlLmdl
dCgpKSk7CiB9CiAKIGJvb2wgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6Omhhc1ZpZGVvKCkgY29u
c3QKIHsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBy
ZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNWaWRlbyh0aGlzKTsKKyAgICBy
ZXR1cm4gbV9jbGllbnQgJiYgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNWaWRlbygp
OwogfQogCiBib29sIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpoYXNBdWRpbygpIGNvbnN0CiB7
Ci0gICAgaWYgKCFtX2NsaWVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJu
IG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8odGhpcyk7CisgICAgcmV0dXJu
IG1fY2xpZW50ICYmIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oKTsKIH0K
IAotCiBNZWRpYVRpbWUgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmZhc3RTZWVrVGltZUZvck1l
ZGlhVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IE1lZGlhVGltZSYgbmVnYXRpdmVU
aHJlc2hvbGQsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpdmVUaHJlc2hvbGQpCiB7CiAgICAgaWYg
KG1fY2xpZW50KQotICAgICAgICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVG
YXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUodGhpcywgdGltZSwgbmVnYXRpdmVUaHJlc2hvbGQsIHBv
c2l0aXZlVGhyZXNob2xkKTsKKyAgICAgICAgcmV0dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQ
cml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRpbWUsIG5lZ2F0aXZlVGhyZXNob2xkLCBw
b3NpdGl2ZVRocmVzaG9sZCk7CiAgICAgcmV0dXJuIHRpbWU7CiB9CiAKIHZvaWQgTW9ja1NvdXJj
ZUJ1ZmZlclByaXZhdGU6OnNlZWtUb1RpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lKQogewogICAg
IGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVTZWVr
VG9UaW1lKHRoaXMsIHRpbWUpOworICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0
ZVNlZWtUb1RpbWUodGltZSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZh
dGUuaAppbmRleCA3NDRiNGMxMDdjMzEwMjZmYTQyOWE4ZjEyZDI1NjNiZmMzNjMyZDI4Li42MTc0
NWZiNWE4NTg1MWZhY2ZkN2U3NWQ4MzFiM2EwZWZiZGE2NjlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291
cmNlQnVmZmVyUHJpdmF0ZS5oCkBAIC0yMywxNSArMjMsMTIgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAog
ICovCiAKLSNpZm5kZWYgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGVfaAotI2RlZmluZSBNb2NrU291
cmNlQnVmZmVyUHJpdmF0ZV9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShNRURJQV9TT1VS
Q0UpCiAKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL01l
ZGlhVGltZS5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjgsMTIgKzY1LDEyIEBAIHByaXZhdGU6
CiAgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkgb3ZlcnJp
ZGU7CiAKLSAgICB2b2lkIGZsdXNoKEF0b21pY1N0cmluZykgb3ZlcnJpZGUgeyBtX2VucXVldWVk
U2FtcGxlcy5jbGVhcigpOyB9Ci0gICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFBhc3NSZWZQdHI8TWVk
aWFTYW1wbGU+LCBBdG9taWNTdHJpbmcpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNSZWFkeUZvck1v
cmVTYW1wbGVzKEF0b21pY1N0cmluZykgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZv
aWQgZmx1c2goY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGUgeyBtX2VucXVldWVkU2FtcGxl
cy5jbGVhcigpOyB9CisgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiwg
Y29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNh
bXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IHZvaWQgc2V0QWN0aXZlKGJvb2wpIG92ZXJyaWRlOwogCi0gICAgVmVjdG9yPFN0cmluZz4gZW5x
dWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChBdG9taWNTdHJpbmcpIG92ZXJyaWRlOworICAgIFZlY3Rv
cjxTdHJpbmc+IGVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoY29uc3QgQXRvbWljU3RyaW5nJikg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29u
c3QgTW9ja0luaXRpYWxpemF0aW9uQm94Jik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2FtcGxlKGNv
bnN0IE1vY2tTYW1wbGVCb3gmKTsKQEAgLTg4LDYgKzg1LDMgQEAgcHJpdmF0ZToKIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShBVkZPVU5EQVRJT04pCi0KLSNlbmRp
ZgotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVk
UGx1Z0luLmNwcAppbmRleCAzM2ZlNDM5NjAyY2NkMDc1MGFlM2MzY2IwYzRkNzgwY2Y3MWJlYzgz
Li44ZWY0ODlkNzgyNmRjYzAxMzFiYjMyZGNlOWJiNjM1NDM4OWU4YThjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKQEAg
LTgyLDEzICs4MiwxMyBAQCB2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpsYXlvdXQoKQog
ICAgIHZpZXcoKS5mcmFtZVZpZXcoKS5hZGRFbWJlZGRlZE9iamVjdFRvVXBkYXRlKCp0aGlzKTsK
IH0KIAotdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6dXBkYXRlU25hcHNob3QoUGFzc1Jl
ZlB0cjxJbWFnZT4gaW1hZ2UpCit2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVT
bmFwc2hvdChJbWFnZSogaW1hZ2UpCiB7CiAgICAgLy8gWmVyby1zaXplIHBsdWdpbnMgd2lsbCBo
YXZlIG5vIGltYWdlLgogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1f
c25hcHNob3RSZXNvdXJjZS0+c2V0Q2FjaGVkSW1hZ2UobmV3IENhY2hlZEltYWdlKGltYWdlLmdl
dCgpLCB2aWV3KCkuZnJhbWVWaWV3KCkuZnJhbWUoKS5wYWdlKCktPnNlc3Npb25JRCgpKSk7Cisg
ICAgbV9zbmFwc2hvdFJlc291cmNlLT5zZXRDYWNoZWRJbWFnZShuZXcgQ2FjaGVkSW1hZ2UoaW1h
Z2UsIHZpZXcoKS5mcmFtZVZpZXcoKS5mcmFtZSgpLnBhZ2UoKS0+c2Vzc2lvbklEKCkpKTsKICAg
ICByZXBhaW50KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNuYXBzaG90dGVkUGx1Z0luLmgKaW5kZXggMTM0ZGI4MzNiNzk4ZWU1YzM3YjFiYTI3ZGE1NDhm
YzU0M2VmODY0Ny4uYzE3OTdhMGQ2MjMxZWM5ODZmMWRjMmQzMDBlYWVlY2YyMTVlNTY3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0lu
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0lu
LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogCiAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVu
dCYgcGx1Z0luSW1hZ2VFbGVtZW50KCkgY29uc3Q7CiAKLSAgICB2b2lkIHVwZGF0ZVNuYXBzaG90
KFBhc3NSZWZQdHI8SW1hZ2U+KTsKKyAgICB2b2lkIHVwZGF0ZVNuYXBzaG90KEltYWdlKik7CiAK
ICAgICB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0
RWxlbWVudC5oCmluZGV4IDhiN2Q5MjQ1NjRhNjRmMDFjOTZkMGJlMjQzMDhjZWFhOTg2ZDE2ZTku
LjhkZDBmZDhlMzgyMTQ4YTRhNTQwMjNiMzRkY2U3MmNlYjM5YjJkNGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NjcmlwdEVsZW1lbnQuaApAQCAtMjksMTMgKzI5LDEzIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgU1ZHU2NyaXB0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVt
ZW50Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgcHVibGljIFNWR1VSSVJlZmVyZW5j
ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgcHVibGljIFNjcmlw
dEVsZW1lbnQgeworY2xhc3MgU1ZHU2NyaXB0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVt
ZW50LCBwdWJsaWMgU1ZHVVJJUmVmZXJlbmNlLCBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCwgcHVibGljIFNjcmlwdEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8
U1ZHU2NyaXB0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYs
IGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlcik7CiAKKyAgICB1c2luZyBTVkdFbGVtZW50OjpyZWY7
CisgICAgdXNpbmcgU1ZHRWxlbWVudDo6ZGVyZWY7CisKIHByaXZhdGU6CiAgICAgU1ZHU2NyaXB0
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVk
QnlQYXJzZXIsIGJvb2wgYWxyZWFkeVN0YXJ0ZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDkyNjA1ZmMwMjM1YzdhZWZiZTc2
YWM4NjFlMGY4NWY2ZThhNWRhOGYuLjE3NWE1OWZlNWQ1MmIzMDNlMDcxM2QwM2FjYTFjYzJkY2Y5
NDkwYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQ
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJz
ZXIuY3BwCkBAIC0yMzcsOCArMjM3LDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6bm90aWZ5
RmluaXNoZWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1NjcmlwdCkKICAgICBtX3BlbmRpbmdTY3Jp
cHQgPSBudWxscHRyOwogICAgIHBlbmRpbmdTY3JpcHQuY2xlYXJDbGllbnQoKTsKIAotICAgIGF1
dG8mIHNjcmlwdEVsZW1lbnQgPSAqdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmcGVuZGluZ1Nj
cmlwdC5lbGVtZW50KCkpOwotICAgIHNjcmlwdEVsZW1lbnQuZXhlY3V0ZVBlbmRpbmdTY3JpcHQo
cGVuZGluZ1NjcmlwdCk7CisgICAgcGVuZGluZ1NjcmlwdC5lbGVtZW50KCkuZXhlY3V0ZVBlbmRp
bmdTY3JpcHQocGVuZGluZ1NjcmlwdCk7CiAKICAgICBpZiAoIWlzRGV0YWNoZWQoKSAmJiAhbV9y
ZXF1ZXN0aW5nU2NyaXB0KQogICAgICAgICByZXN1bWVQYXJzaW5nKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKaW5k
ZXggNzA2NzY3NmRkMTdhNzRkOWU0MjcyOWQzZDI5ZDNkZDhlOGE3ZjhjZS4uZmU0MmEyYmMyY2Y4
NGRjM2NhNjcwODZmMzdjZGRlOTBlZjZkMDdjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcApAQCAtNzk5LDggKzc5
OSw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVudE5zKGNvbnN0IHhtbENo
YXIqIHhtbExvY2FsTmFtZSwgY29uc3QgeG1sQ2hhCiAKICAgICBuZXdFbGVtZW50LT5iZWdpblBh
cnNpbmdDaGlsZHJlbigpOwogCi0gICAgU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCA9IHRv
U2NyaXB0RWxlbWVudElmUG9zc2libGUobmV3RWxlbWVudC5wdHIoKSk7Ci0gICAgaWYgKHNjcmlw
dEVsZW1lbnQpCisgICAgaWYgKGlzU2NyaXB0RWxlbWVudChuZXdFbGVtZW50LmdldCgpKSkKICAg
ICAgICAgbV9zY3JpcHRTdGFydFBvc2l0aW9uID0gdGV4dFBvc2l0aW9uKCk7CiAKICAgICBtX2N1
cnJlbnROb2RlLT5wYXJzZXJBcHBlbmRDaGlsZChuZXdFbGVtZW50KTsKQEAgLTg0Myw3ICs4NDIs
NyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjplbmRFbGVtZW50TnMoKQogICAgIGlmIChoYWNr
QXJvdW5kTGliWE1MRW50aXR5UGFyc2luZ0J1ZygpICYmIGNvbnRleHQoKS0+ZGVwdGggPD0gZGVw
dGhUcmlnZ2VyaW5nRW50aXR5RXhwYW5zaW9uKCkpCiAgICAgICAgIHNldERlcHRoVHJpZ2dlcmlu
Z0VudGl0eUV4cGFuc2lvbigtMSk7CiAKLSAgICBpZiAoIXNjcmlwdGluZ0NvbnRlbnRJc0FsbG93
ZWQocGFyc2VyQ29udGVudFBvbGljeSgpKSAmJiBpczxFbGVtZW50Pigqbm9kZSkgJiYgdG9TY3Jp
cHRFbGVtZW50SWZQb3NzaWJsZShkb3duY2FzdDxFbGVtZW50Pihub2RlLmdldCgpKSkpIHsKKyAg
ICBpZiAoIXNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQocGFyc2VyQ29udGVudFBvbGljeSgpKSAm
JiBpczxFbGVtZW50Pigqbm9kZSkgJiYgaXNTY3JpcHRFbGVtZW50KGRvd25jYXN0PEVsZW1lbnQ+
KCpub2RlKSkpIHsKICAgICAgICAgcG9wQ3VycmVudE5vZGUoKTsKICAgICAgICAgbm9kZS0+cmVt
b3ZlKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTg1NCw3ICs4NTMsNyBAQCB2b2lkIFhNTERvY3Vt
ZW50UGFyc2VyOjplbmRFbGVtZW50TnMoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
RWxlbWVudCYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKTsKKyAgICBhdXRvJiBl
bGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpOwogCiAgICAgLy8gVGhlIGVsZW1lbnQn
cyBwYXJlbnQgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIHJlbW92ZWQgZnJvbSBkb2N1bWVudC4KICAg
ICAvLyBQYXJzaW5nIGNvbnRpbnVlcyBpbiB0aGlzIGNhc2UsIGJ1dCBzY3JpcHRzIGFyZW4ndCBl
eGVjdXRlZC4KQEAgLTg2Myw4ICs4NjIsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjplbmRF
bGVtZW50TnMoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU2NyaXB0RWxlbWVudCog
c2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJmVsZW1lbnQpOwotICAg
IGlmICghc2NyaXB0RWxlbWVudCkgeworICAgIGlmICghaXNTY3JpcHRFbGVtZW50KGVsZW1lbnQp
KSB7CiAgICAgICAgIHBvcEN1cnJlbnROb2RlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC04NzMsMTUgKzg3MSwxNiBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjplbmRFbGVtZW50TnMo
KQogICAgIEFTU0VSVCghbV9wZW5kaW5nU2NyaXB0KTsKICAgICBtX3JlcXVlc3RpbmdTY3JpcHQg
PSB0cnVlOwogCi0gICAgaWYgKHNjcmlwdEVsZW1lbnQtPnByZXBhcmVTY3JpcHQobV9zY3JpcHRT
dGFydFBvc2l0aW9uLCBTY3JpcHRFbGVtZW50OjpBbGxvd0xlZ2FjeVR5cGVJblR5cGVBdHRyaWJ1
dGUpKSB7CisgICAgYXV0byYgc2NyaXB0RWxlbWVudCA9IGRvd25jYXN0U2NyaXB0RWxlbWVudChl
bGVtZW50KTsKKyAgICBpZiAoc2NyaXB0RWxlbWVudC5wcmVwYXJlU2NyaXB0KG1fc2NyaXB0U3Rh
cnRQb3NpdGlvbiwgU2NyaXB0RWxlbWVudDo6QWxsb3dMZWdhY3lUeXBlSW5UeXBlQXR0cmlidXRl
KSkgewogICAgICAgICAvLyBGSVhNRTogU2NyaXB0IGV4ZWN1dGlvbiBzaG91bGQgYmUgc2hhcmVk
IGJldHdlZW4KICAgICAgICAgLy8gdGhlIGxpYnhtbDIgYW5kIFF0IFhNTERvY3VtZW50UGFyc2Vy
IGltcGxlbWVudGF0aW9ucy4KIAotICAgICAgICBpZiAoc2NyaXB0RWxlbWVudC0+cmVhZHlUb0Jl
UGFyc2VyRXhlY3V0ZWQoKSkKLSAgICAgICAgICAgIHNjcmlwdEVsZW1lbnQtPmV4ZWN1dGVDbGFz
c2ljU2NyaXB0KFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0RWxlbWVudC0+c2NyaXB0Q29udGVudCgp
LCBkb2N1bWVudCgpLT51cmwoKSwgbV9zY3JpcHRTdGFydFBvc2l0aW9uKSk7Ci0gICAgICAgIGVs
c2UgaWYgKHNjcmlwdEVsZW1lbnQtPndpbGxCZVBhcnNlckV4ZWN1dGVkKCkgJiYgc2NyaXB0RWxl
bWVudC0+bG9hZGFibGVTY3JpcHQoKSkgewotICAgICAgICAgICAgbV9wZW5kaW5nU2NyaXB0ID0g
UGVuZGluZ1NjcmlwdDo6Y3JlYXRlKGVsZW1lbnQsICpzY3JpcHRFbGVtZW50LT5sb2FkYWJsZVNj
cmlwdCgpKTsKLSAgICAgICAgICAgIG1fcGVuZGluZ1NjcmlwdC0+c2V0Q2xpZW50KHRoaXMpOwor
ICAgICAgICBpZiAoc2NyaXB0RWxlbWVudC5yZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgpKQorICAg
ICAgICAgICAgc2NyaXB0RWxlbWVudC5leGVjdXRlQ2xhc3NpY1NjcmlwdChTY3JpcHRTb3VyY2VD
b2RlKHNjcmlwdEVsZW1lbnQuc2NyaXB0Q29udGVudCgpLCBkb2N1bWVudCgpLT51cmwoKSwgbV9z
Y3JpcHRTdGFydFBvc2l0aW9uKSk7CisgICAgICAgIGVsc2UgaWYgKHNjcmlwdEVsZW1lbnQud2ls
bEJlUGFyc2VyRXhlY3V0ZWQoKSAmJiBzY3JpcHRFbGVtZW50LmxvYWRhYmxlU2NyaXB0KCkpIHsK
KyAgICAgICAgICAgIG1fcGVuZGluZ1NjcmlwdCA9IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShzY3Jp
cHRFbGVtZW50LCAqc2NyaXB0RWxlbWVudC5sb2FkYWJsZVNjcmlwdCgpKTsKKyAgICAgICAgICAg
IG1fcGVuZGluZ1NjcmlwdC0+c2V0Q2xpZW50KCp0aGlzKTsKIAogICAgICAgICAgICAgLy8gbV9w
ZW5kaW5nU2NyaXB0IHdpbGwgYmUgbnVsbHB0ciBpZiBzY3JpcHQgd2FzIGFscmVhZHkgbG9hZGVk
IGFuZCBzZXRDbGllbnQoKSBleGVjdXRlZCBpdC4KICAgICAgICAgICAgIGlmIChtX3BlbmRpbmdT
Y3JpcHQpCkBAIC04OTYsMTkgKzg5NSwxOSBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjplbmRF
bGVtZW50TnMoKQogICAgIHBvcEN1cnJlbnROb2RlKCk7CiB9CiAKLXZvaWQgWE1MRG9jdW1lbnRQ
YXJzZXI6OmNoYXJhY3RlcnMoY29uc3QgeG1sQ2hhciogcywgaW50IGxlbikKK3ZvaWQgWE1MRG9j
dW1lbnRQYXJzZXI6OmNoYXJhY3RlcnMoY29uc3QgeG1sQ2hhciogY2hhcmFjdGVycywgaW50IGxl
bmd0aCkKIHsKICAgICBpZiAoaXNTdG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
IChtX3BhcnNlclBhdXNlZCkgewotICAgICAgICBtX3BlbmRpbmdDYWxsYmFja3MtPmFwcGVuZENo
YXJhY3RlcnNDYWxsYmFjayhzLCBsZW4pOworICAgICAgICBtX3BlbmRpbmdDYWxsYmFja3MtPmFw
cGVuZENoYXJhY3RlcnNDYWxsYmFjayhjaGFyYWN0ZXJzLCBsZW5ndGgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCiAgICAgaWYgKCFtX2xlYWZUZXh0Tm9kZSkKICAgICAgICAgY3JlYXRlTGVh
ZlRleHROb2RlKCk7Ci0gICAgbV9idWZmZXJlZFRleHQuYXBwZW5kKHMsIGxlbik7CisgICAgbV9i
dWZmZXJlZFRleHQuYXBwZW5kKGNoYXJhY3RlcnMsIGxlbmd0aCk7CiB9CiAKIHZvaWQgWE1MRG9j
dW1lbnRQYXJzZXI6OmVycm9yKFhNTEVycm9yczo6RXJyb3JUeXBlIHR5cGUsIGNvbnN0IGNoYXIq
IG1lc3NhZ2UsIHZhX2xpc3QgYXJncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYzEwMTkyNGVhNWYxZDY2MjkzYjE5OWEz
MDAxMjRkYjJjMjNmNTdiNC4uOWZhZDdkZGJiZmU0Y2MwZjMzMjVjOWI4OWQxZmJhM2FlMWE4MjVj
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKQEAgLTEyNSw3ICsxMjUsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQg
cnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hv
b3Nlcj4pIG92ZXJyaWRlOwotICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKSBvdmVycmlkZTsKKyAgICB2
b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6
OkZpbGVJY29uTG9hZGVyJikgb3ZlcnJpZGU7CiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIHZv
aWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4
IGJjZWFmZDUxMTY1MzIyYjNhZGJhNzk0YzBjMWY1OGRiNWNlMTlhOGIuLmU5N2E5OGZlOGIxYjY1
ZGU2ZjA1OGEwYjg5Y2NlODFmOTBlYzgyNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTc1Nyw5ICs3NTcsOSBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxl
Q2hvb3Nlcj4gY2hvb3NlcikKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogfQogCi12
b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciogaWNvbkxvYWRlcikKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMs
IEZpbGVJY29uTG9hZGVyJiBpY29uTG9hZGVyKQogewotICAgIGljb25Mb2FkZXItPm5vdGlmeUZp
bmlzaGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKKyAgICBpY29uTG9h
ZGVyLmljb25Mb2FkZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOwogfQog
CiAjaWYgIVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA3ZjBlNzVk
Y2I5ODIzYmIyZGRjMTBjZTYwOTFkMTk0NGFkOTIyYTc1Li43NzdlOWUwYTU5YTU5M2M2Mjg3ZDZh
Y2U5ZmY1OWRkM2UzYjBkYjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC03NjEsOSAr
NzYxLDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSogZnJhbWUs
IFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IHBycEZpbGUKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UnVuT3BlblBhbmVsKHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3Vy
aXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGZyYW1lKSwgZmlsZUNob29zZXItPnNldHRpbmdzKCkp
KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUljb25Mb2FkZXIqIGxvYWRlcikKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxl
bmFtZXMsIEZpbGVJY29uTG9hZGVyJiBsb2FkZXIpCiB7Ci0gICAgbG9hZGVyLT5ub3RpZnlGaW5p
c2hlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7CisgICAgbG9hZGVyLmlj
b25Mb2FkZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOwogfQogCiAjaWYg
IVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDA1ZTRiMzVhMWRlMThiOWVi
ZWY4NTQwNTI2YWZiMmE1ZWZkZmQ3NmMuLmQ2NGNkOTkwYjc4ZWJjY2E5MDRmNzU1Nzc5ODlhMzM1
NjU0MTg1ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTgyLDcgKzE4Miw3IEBAIHByaXZh
dGU6CiAjZW5kaWYKIAogICAgIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pIG92ZXJyaWRlOwotICAgIHZvaWQgbG9hZElj
b25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVy
Kikgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXImKSBvdmVycmlkZTsKIAogI2lmICFQTEFURk9S
TShJT1MpCiAgICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikgb3ZlcnJp
ZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>297884</attachid>
            <date>2017-01-02 02:14:26 -0800</date>
            <delta_ts>2017-01-02 10:28:24 -0800</delta_ts>
            <desc>Archive of layout-test-results from ews103 for mac-elcapitan</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>951744</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
if/Ere4/oZTz+/pw0Qa19nD9e7vH587jT2FO318G8uoqS2bq56z7Bm4YPtj9K4jdl/mF++L8s/f8
3acfPwbwi1dJ0IhWKtm35vYJrEMZuefLvvXuK1t2j/4LV6JM4zB1nxfDdEeyBs1e75KgL3Q6iU+w
Z/7vx8dx2gviYZrlv8PH3JX7ezwa87UpuYLea6AzR7z2r5g3h/qrGPR3mu8EhwHB/+43TLBfiWHP
7yro6mk7ZVhmVZ+OwyRzkvDKuYqSfnpl7knjwU/5S6xoaSjgXovBm1k6+PRyOO7NTvH/w7OXPy+7
o97gK/Xz7udP0/7TUzd4+cI9e9Ufd19eDb6OPg7OP4tvXfo+Pn96Sno0np7PTp9+/fI2fvvtr0H/
pRr0Xr2+PH/16dv5h9NhNzqNu6O3l+cvP30/e/XW7Y3031/2v7y/6n/Bvx8O4Rx47qxLRXL+5Uwf
g88Nz168jb+yTzP4njP4/vTs+YvsnPqz4Mv7tPvBJX/8fTY4fxnDZ966b6InP95clT8m0lTIZil9
aJpEWFWBqXqjII7+0WXz5lG7PlyR7zd4QQngfmhzIIonRMVmOnu5ZFPjccE7knt7VMgmhHxQ5Oo+
S5PwhBRqepGA+7y6ikbNfP2x1d3l4UAM16uBSyMgd8HSHQ/jAn4cnCRtLGDnHUX8bZZ4IzGkmMXZ
IVxa/UYcMco5Rivb3L2WqsE8QTpyp4ja0ra8TqHVgy3NXb5UxUzLfS6USdol6Si3tQs3NtWUvGJf
gx0vAVbmRu2UNtd0mwfrO5sSKl1SQvaCwYbNvjCL2NNoNDjOJr1jgGGcLDsvUSUYzGRP16a9AZ5y
yptfTpu970hHeMo2bMBBZzxJ87CH3MYZhkE/nDjGWcs+LBt1/UNdNFO5DgUZ3lJ+260gtX3HTocw
vwZgGftPXAcEgh6Ip3lLCJwibH1LWKtVtb2+BDMd4B9SQwx6afo9CpfbeYDF97Q4+Lg3iNYfJZX+
bqkEk6yYWXHdCZW5xNzAh1Usm6qyb8YpsF2T7kCvvBR2IGxHDbIJ924z+pvPFH9ki+TDmzH8OLsA
e36WTrFvQhjeNJYfhVkWDPAAbFHsZ49N518Hl8G1K6A473/0R3SXevihe91n+Ns/n3z48PzZYzzl
eN2koALTupjvtYnmtppsKdGRW2rC3VDdMDqVEkvCAmIZgi3mBJNJMOtOsW2vsUwWuzgQn7Sj/6lZ
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
C/dnzlHT//ef+8Gtpg4b7jzmbrVcVvFR3nVDj/kU4aiJhM6e3YJLxxmQwfbW6pvU9zg/RHQVpGLV
ogYMMw55n+j6I8VEw75q5kuoX6uk1Be1h1nb5moJ6NET2RZpTUgFwfwaIp414DDzFYxBWWTBg4rP
503gZFQHpQ0IT4isvQvgXWlHHjSNg82ECO7eIh3VEp4vmFvMyzBycpl6mnv72ZS8w2VYsEiy+Fcz
K1g5mLol0C17p396yy4HATPYHREffmvHP4ThGDnowrX5rqqLTV+/fYRDMsPDEyAG4U/OxXNQU8xF
o3ASfvWgjWUWm2sYqK5hYK6Rd3kVL5Pg6AEZDWAYWhUotaHbHtaTZwU0fLi5yYp5nK3Vnvsg1T/s
Xpan2yazI8bJ2yWOkJ7e2SM0swtF3zchaItPr1aOk+zkc5Pszkb8TFrdqY3gcWj8IxJsEh7N3d+x
jdoT/AHjc8B4u53H83VywhgUGxw/vd/EebpMqrrdWy0avNexg4P7FH1NqG9UjAEF3KpgCzByDnbx
zed3dM3cIQYvdib65uEGhS/9ZiQmoxmFU9EsbaRBXyRnOtE3Dz8de/E3Dz5+MXzzRtn++GadVTf7
dJEUR2+wCrJ0r0yfCo7iTecrUjudMSGezCVscA9zF9u1MSG8tpPXwzSfj+y1oZQ1h6P+pUincw+z
w8sDEGHLg+IzDDvCAw4RSi/45EBhA/RiVTAAva+rlg+GOQezLSxQUMf5cHoINd5+BROeNnGaPx9O
pqs6fRoSFobcA480xB5QcER9oAj8t/8DUEsDBAoAAAAAAJkKIkoAAAAAAAAAAAAAAAAHABwAY3J5
cHRvL1VUCQADcRtqWC4ealh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAmQoiSgAAAAAAAAAAAAAA
AA4AHABjcnlwdG8vc3VidGxlL1VUCQADcRtqWC4ealh1eAsAAQT1AQAABBQAAABQSwMECgACAAAA
mQoiSiXg0wgsAAAALAAAAD4AHABjcnlwdG8vc3VidGxlL3JzYS1nZW5lcmF0ZS1rZXktbWFsZm9y
bWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUCQADcRtqWHEbalh1eAsAAQT1AQAABBQAAABDb3Vs
ZCBub3QgZ2VuZXJhdGUgYSBrZXkgcGFpciwgc3RhdHVzIC00MzA0ClBLAwQUAAIACACZCiJKMDu4
sUsAAABoAAAAPAAcAGNyeXB0by9zdWJ0bGUvcnNhLWltcG9ydC1rZXktbWFsZm9ybWVkLXBhcmFt
ZXRlcnMtc3RkZXJyLnR4dFVUCQADcRtqWHEbalh1eAsAAQT1AQAABBQAAABty7ENgDAMRNGeKW4f
GlawZEuxgDhyLkRsDw0d9X9/S7+Eht3ujuksMQhRdXpUOaBCgaShBtFHa5E0XdaP44w3skgFZ6Cl
n9Z/hgdQSwMECgAAAAAAmAoiSgAAAAAAAAAAAAAAAA8AHABjcnlwdG8vd29ya2Vycy9VVAkAA28b
alguHmpYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAJgKIkoAAAAAAAAAAAAAAAAWABwAY3J5cHRv
L3dvcmtlcnMvc3VidGxlL1VUCQADbxtqWC4ealh1eAsAAQT1AQAABBQAAABQSwMECgACAAAAmAoi
SiXg0wgsAAAALAAAADEAHABjcnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNhLWdlbmVyYXRlLWtleS1z
dGRlcnIudHh0VVQJAANvG2pYbxtqWHV4CwABBPUBAAAEFAAAAENvdWxkIG5vdCBnZW5lcmF0ZSBh
IGtleSBwYWlyLCBzdGF0dXMgLTQzMDQKUEsDBAoAAAAAAJsKIkoAAAAAAAAAAAAAAAANABwAZGlz
cGxheWxpc3RzL1VUCQADdRtqWC4ealh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAmwoiSqNX/ehQ
AAAAjgAAADIAHABkaXNwbGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVzLXRyYW5zZm9ybXMtc3RkZXJy
LnR4dFVUCQADdRtqWHUbalh1eAsAAQT1AQAABBQAAABzL0osyMhMLnbOzytJrSixskpPLXEO8dXQ
VMgsVsjLL1GoTC1RSM7PLUgsyUzKSVUozyzJUChKTc4vSsnMSwfKgLUV63G5oxtUjGYQMYYAAFBL
AwQUAAIACACbCiJK8paV1UcAAABJAAAAKQAcAGRpc3BsYXlsaXN0cy9sYXllci1kaXNwYXktbGlz
dC1zdGRlcnIudHh0VVQJAAN1G2pYdRtqWHV4CwABBPUBAAAEFAAAAHMvSizIyEwuds7PK0mtKLGy
Sk8tcQ7x1dBUyCxWyMsvUahMLVFIzs8tSCzJTMpJVSjPLMlQKEpNzi9KycxLB8qAtRXrcQEAUEsD
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
aW1hZ2VzL1VUCQADohtqWC4ealh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAswoiSiGPvTgyAAAA
MwAAACwAHABmYXN0L2ltYWdlcy9wZGYtYXMtaW1hZ2UtY3JvcC1ib3gtc3RkZXJyLnR4dFVUCQAD
ohtqWKIbalh1eAsAAQT1AQAABBQAAABzy0ksSXVJTc5PSbVSSAHRmXnpCqlFRflFVgqZecn5RUWp
ySUKKYkliQrJGanJ2XpcAFBLAwQKAAAAAAC6CiJKAAAAAAAAAAAAAAAACgAcAGZhc3QvdGV4dC9V
VAkAA7AbalguHmpYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALoKIkqReZW3dwEAAIgJAAAjABwA
ZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci0yLXN0ZGVyci50eHRVVAkAA7AbaliwG2pYdXgLAAEE9QEA
AAQUAAAA7ZTPasJAEMbPzVMsOYrKzBJ3Y2iFVpGePNT0JB7WZGID5g/JBmwl0DfouW/S5+kL9BW6
sVpaEHoR6sG97czs9327P1gOKDuAHeAM0OPo9XhXIrBRleR3lIZU+AXRrI8AHiKCRGfOhllBPq21
x1qtFrtPE5XnFDL7/fX54+3FZpdDf5ylpg1rGfVRAonI7cNgk6qE2BWb+tMsXeq44w87d7SsVqpo
szJ+anrGqAvb1WaJ0kW8NkVYm11IZVDEuc4KU9lZjL5rezNBDpAjjJnS5vSi0lRu58c3qoyDW1U+
/JhcRH1gs2YfRRJDjo4D88FGP+ZNlqTSarEiFsaBbrMgq1LdJGxblBrpRndgXXDmNepTU0mXbCcF
6KCMDkkHJrU53mSyJ9PmDhPzKNf7rHb9Ffa3HAYEjvuX3IFntWurtgZ1bfFDnLl7bM4SOJ45nxpn
RxyVs1hErqDozPnUOItj/9uuVD06cz41zvLY/3YohIl15vx/nD8BUEsDBAoAAAAAALoKIkoAAAAA
AAAAAAAAAAAJABwAZmFzdC94c2wvVVQJAAOwG2pYLh5qWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIA
CAC6CiJKTvsg+IgAAADnAAAAJQAcAGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0ZGVyci50
eHRVVAkAA68balivG2pYdXgLAAEE9QEAAAQUAAAApY6xDsIwDET3foV/oHhgywwTbCA6u60rIjlx
5ThS+XsC5Q9YTiffye8mTWsU8qgZ2EwtwBKFvxIQ8aFSExc8kROehxsOPF6i45VeWv3OxQsuVBy3
ImhctNrU6tvT+lmnQ7uCxMxwBBZOnB1iWtW8a0nYLQSomcYGdQVRmn/w/9D9/pznz4buDVBLAwQU
AAIACAC6CiJK/aIuZI8AAADuAAAAJwAcAGZhc3QveHNsL3hzbHQtYmFkLWltcG9ydC11cmktc3Rk
ZXJyLnR4dFVUCQADrxtqWK8balh1eAsAAQT1AQAABBQAAACdjjEOwjAMRfeewhcoHtgywwQbiM5u
64pITlw5jlRuT6CcgOXL/3/bepOmNQp51AxsphZgicJfCYj4UKmJC57ICc/DDQceL9HxSi+tfufi
BRcqjlsRNC5abWrrzXk/0tzHtKp5Xy0eWgYSM8MRWDhxdtjbrjVhHyFAzTQ2AFcQpfkH8idG1lKn
5+dFuxPp3lBLAwQUAAIACAC6CiJKz49mDlAAAACgAAAAJAAcAGZhc3QveHNsL3hzbHQtY29udGVu
dFR5cGUtc3RkZXJyLnR4dFVUCQADrxtqWK8balh1eAsAAQT1AQAABBQAAACtzLENwCAMBdGeKf4G
Udpsg8AISzZGlokyfsgOaa67V0wnSw62AXI3v9BYCBAehBMkpDQCtmKuSDzuLFyxuwjNHErRre7L
LJW/sKeHyvGRL1BLAwQUAAIACAC6CiJKgUp3rUsAAACsAAAANAAcAGZhc3QveHNsL3hzbHQtdHJh
bnNmb3JtLXRvLWZyYWdtZW50LWNyYXNoLXN0ZGVyci50eHRVVAkAA7AbaliwG2pYdXgLAAEE9QEA
AAQUAAAAtcyxDYAwDETRPlPcCrRs48AFWXJsZCzmR6JgA+qv97eYp5qUhoOZkSuGGgFTJxbQOOmF
W1KlG1ty51DXV8TAYdHFvo7iVW375foAUEsDBBQAAgAIAA8MIkrzarpyxgEAAEoDAAARABwAZnVs
bF9yZXN1bHRzLmpzb25VVAkAAy0ealguHmpYdXgLAAEE9QEAAAQUAAAArZJbj9MwEIX/SuUnkOJt
2gYqhaeKltsWFjWFhadomkw2Vh3bsse9aNX/ju0CQlqJF3izT8bfOTOTxXJZb1bVl/W2evbICB05
Vj6yAVsB8UAWmv3vAxeK70C13NFZ4k1Pg4zfLBptiZXszXpx+51lDE8GG8I2SJ8XVRUUaMhDKGbb
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
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvVVQJAAPZG2pYLh5qWHV4CwABBPUB
AAAEFAAAAFBLAwQUAAIACADQCiJKY6qsbIIAAACoAAAAQAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAA9gbaljYG2pY
dXgLAAEE9QEAAAQUAAAALY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKb
F6kEVdFEe2HQ4d5SCMttnePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQ
D9gB+DRoekNtXCeSyp2WOdKOza8xRJuC7GpN1PGavlBLAwQUAAIACADRCiJKY6qsbIIAAACoAAAA
UgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC11bmFmZmVj
dGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAkAA9kbaljZG2pYdXgLAAEE9QEAAAQUAAAA
LY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMtt
nePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB+DRoekNtXCeSyp2W
OdKOza8xRJuC7GpN1PGavlBLAwQUAAIACADXCiJKYEtmEJEAAAD7AQAARQAcAGh0dHAvdGVzdHMv
c2VjdXJpdHkveHNzLURFTklFRC14c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4
dFVUCQAD5RtqWOUbalh1eAsAAQT1AQAABBQAAADtjjEOgzAMRXdO4QuEBJZWmWHo0p4BBVMimSSy
nQpuXzr0Bh2rv76v90LeSqRJY06AzJk9LJEQVtXire36S+vOdf7qnLOCoXLUw+4iZhjvt3Ewu5CZ
c6gbJjVf4MHxGVO7bwQUE0IPSPghQPQglBVRm/PpX8hyuj3kRAd0rYMFJ62MAhMjSC0ls+LchH/o
j0PfUEsDBBQAAgAIAO0LIkpbBFgOogUAAE0QAAAKABwAaHR0cGQuY29uZlVUCQAD7h1qWCsealh1
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
dG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19SU0EtT0FFUC1zdGRlcnIudHh0VVQJAAPk
G2pY5BtqWHV4CwABBPUBAAAEFAAAAHPOL81JUcjLL1FIT81LLUosSVVIVMhOrVQoSMws0lEoLkks
KS1W0DUxNjDhch5VO6p2VO2o2lG1o2pH1Y6qHVVLc7UAUEsDBBQAAgAIANkKIkpUAsmyNgAAAMAC
AABQABwAaW1wb3J0ZWQvdzNjL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVz
X1JTQVNTQS1QS0NTMS12MV81LXN0ZGVyci50eHRVVAkAA+kbaljpG2pYdXgLAAEE9QEAAAQUAAAA
c84vzUlRyMsvUUhPzUstSixJVUhUyE6tVChIzCzSUSguSSwpLVbQNTE2MOFyHlU7qnaQqQUAUEsD
BAoAAAAAANkKIkoAAAAAAAAAAAAAAAAgABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9VVAkAA+obalguHmpYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANkKIkoAAAAAAAAAAAAAAAAm
ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9VVAkAA+obalguHmpYdXgL
AAEE9QEAAAQUAAAAUEsDBAoAAAAAANkKIkoAAAAAAAAAAAAAAAAqABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvVVQJAAPqG2pYLh5qWHV4CwABBPUBAAAEFAAAAFBL
AwQKAAAAAADcCiJKAAAAAAAAAAAAAAAALwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2NvcnMvVVQJAAPwG2pYLh5qWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADZ
CiJKieyNLQgCAAC9DAAARQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2NvcnMvY29ycy1vcmlnaW4tc3RkZXJyLnR4dFVUCQAD6htqWOobalh1eAsAAQT1AQAABBQA
AADt1stq21AQBuB9n0KbeDfWucy5GUwRrpMW2jrgdh3O1TZVLGOptHn7HjkkrUMgTk1pi4O0ksT8
0scwo8ns43z2flp8mM7n1cV0VMy2q8VqXSy7bjMqy7rxtl42bTfSmpBi1RbrpitsXTffYijcTVF5
H9sWJs262zY1VP0duK0xfDV5WPw8dn5ZVJfvCm/XfaW6seEuizI1JPmgu6wy9c+WdrMqt7Ftvm5z
TrnZxlSvFstuuLl53TVf4noctUjEOAFBqwDIWACtmYREhcplXCJeDK7t9yu7iGMyaHavNu4jz3h1
xs7zeR+cr/TRg933XV3HbtmEdnwx/TT8syx/z3wvix5qTolHIZACYyIBikDBMacBI0HnpKMimSfM
74NvzekJme/1+cHmxHqupVcQOEPAxBNYoymkRBUyaZXDZ/b5yZi3e+gGkR+KHiy13koOIlgC6JIG
LWQE7bgLnqrAtX8cvX1Uvc8+JfWfYc9Rt5wbrQiCMyG3Os/T3ASZR3ogCYPL04eTp9R/nS+npP7b
e5RxHwR1eZxrjIDeaDA0KUAilZZWMkXxuD16OZu/oD9YpJKlGLkCY4XIPy/SgCbagU/SJEwOTaDH
ob+dVm+G/52L9VmFcgcxWgtoSXbhNA8EHoVEbZlj9shm/PzSi/vmUuVlJ0KWxkjz1LUcNAsSdFDK
eKGNUv/aj/QPUEsDBBQAAgAIANsKIkpMKrPSmwEAAN4FAABIABwAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC1zdGRlcnIudHh0VVQJ
AAPtG2pY7RtqWHV4CwABBPUBAAAEFAAAAM3US2sbMRAA4Ht/hU69jVfPlWQIZXG3TSEvapceizQa
ZU23u65XofG/7zq59GBIDiUYnTQaofnQMKvbm/XtVcuu2/W6+dwu2Scq2LHm7gvDMAxjYf0YEutK
2S2rSki74PMSS+c4r/Ixtwq7bbWnaXzYI03Vbk+53953ZbE7fCjjTxounI9ZSYGAXCTQIRmIvDaQ
TdbCUuCyFu9/hccf4Z4u+IJdU+nGxD62V+2mZduJHcsIfT/+ocTigTU4PzTBahzKfuyhOZ7A86Vp
8W71BqJofDaJC5Dea9BYI8SoAtRcKOskamv1CdHdt81ZcrJ12clag+IhglZ1BC+EAuudJK90Tkin
OM1mdXmWIG2VMsgDKIF2BiUNc5dl0LXNRqBB8uYE6Kb9fpYcG41SmDOELGhut+wgZhmBauuNMETB
8H85X+n3A02FdRQS7VneUp/YI5Q5Bs8x8Vrn5VP6Gzmd0jFKY0BHNw+KTB5C5BkSoVYYAwZMLzqP
9dNQYHPY0VkqfeIkuU4gA87DY95CqOX8r1zFKLS02uF/Gh5/AVBLAwQUAAIACADcCiJKyYuE5c0C
AAC/EwAAUQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMv
Y29ycy1yZWRpcmVjdC1wcmVmbGlnaHQtc3RkZXJyLnR4dFVUCQAD8BtqWPAbalh1eAsAAQT1AQAA
BBQAAADtl9tqG0kQhu/3KeYmuiupD9Ung1iEcQ6QXYf4AUJ3dXUkVqtxNGNiv31qvCQORIhAdLG7
FjNMNz0Him/+v6vq8vrPm+u3V90fVzc3q1dXF91LHmndrd696Sjvdv3Ybftcu/U43l4sFtqEuZJD
X8So1KJNzy7y7Wax56G/2xMPi9s9t+3m43qc3z78/ne+/5A/8lLNxv4v3i3ZBVJVWcBIAdBaBVmp
DJEpKBM5WVNme66bPdP4YRjzeDcsrdKzbU953PS75RTIC7t6YV7K+S0cWZkCkqXHkGSUoORK/X6Q
YT6Xy7cQZf59kDPq73bjUs+79/zpjoexW3OuvO/ahre1u4fPlrrN0E0s8nbbf+balYduRfKpAS77
3bjvt7Ca7sDrxzeH+W+Xp8b6FcpE9R+WmYIOijTopBWgk1nhEsEbXUNBbCnF2dMP+Hmq0+p23Q/j
r1D9r9G0RvvsuYIxiUWZlCB6dCLUgt4QOuP1KWjq/yHNo5bPBRvrHIGCrYDKVIiJLBC3xCHaioYO
4DRny/8oUlOyItYGtGYUafoCOeUKGjOp5BMptkdFas6Wf6Ipyci0ihGMNxkwG4ZUkoGGWCM3nSK5
U9B8fpYPVkUlm2dFlFRfMEPR2oGTrGS5OmoxH8Bpz5Y/IFIdoqsZodkaQYRppFhChuYVJrSS6ckf
Fak9W/6JprNErlYH2TlRpqoEuRQNnqLDalJrWE5B89lZXhUqZKqHgE4KeyoeYghONlRdMjbr2PsD
OMPZ8j+KtKQo1XwUjxfjAT1OpWiKoIrVUj+ZiBmPijScLf8dTaLGJgeg0mQDLSQtZyIE6yhhScEp
n05B89lZHoM3JUrX6ZNpYvmGAlZJ/1lcNcVEwnwIZzxb/kD3mUJJSAF0mZoknxXIivShOdmspWAi
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
ABwAcmV0cmllcy9mYXN0L2Zvcm1zL2ZpbGUvVVQJAAMkHmpYLh5qWHV4CwABBPUBAAAEFAAAAFBL
AwQUAAIACAAKDCJKzVn8PZhEAAAP+gAAPAAcAHJldHJpZXMvZmFzdC9mb3Jtcy9maWxlL2lucHV0
LWZpbGUtd3JpdGUtZmlsZXMtY3Jhc2gtbG9nLnR4dFVUCQADJB5qWCQealh1eAsAAQT1AQAABBQA
AADkXOtz27ay/3z5V+BTR04imwD4Ht/MyJSUuvHrWEraezsdDh+QzROKVPlwov71ZwFQMknJsdgk
0zNjf0goEtj97WKx2AWWvMmzkBWFg9p/42q5umVpxPJ5zhj6Hauaaf6h3Pjlfbcp/J18zJJqyYqT
j9cXHy4nJ69O2v2V84ilZbyIWe48zUX5yPIiztIuA1Vxs4ih+XrF2o9+s4yhoaHBlV/GD+wI0OXA
Bt10RLpZl/dZin63bMP6Q7llxSpLizhIWtSeEPhDwXJ0Pu5C0lWsKGO/ZCfzeNlBRVRsDlU8VAlS
sUOxQ6xjXSNoqFqqqlzP0D4xL/0QwaPfEFaPMT420ADr7zDB5AgAr7K83OmFsTJKs3S9zKoCffjQ
wIhtYmuEWkN6ptHhGSba0KUqHRJCjYlJR+rUcBVF4cjR6LP/iaFZnIYMnWVZ6SDLVFUVFSzM0qhQ
lNm6KNkSnaclu8vjcs21W7KwFFBY6oMaI0Vxc7+4ZxGa3+fMj7ZIVNBrXKz8MrxHf1asAk2F2fLY
X60Sdrz043RYig6KMvkSshUn2h7myW+udzYaeyPXncxmaDA7fzebvPt41GjPbWM71u8nt1fe+dXH
0cU5dBqPb3kvv0TqF7X1h8MGhSsQqMXRvb69mU28q+v5+fT/FOXjJbpld9CyQFfMz4EYDh1lOHyL
FN7D8+aT3+Y7c2LDSWWELOBi2Lhh8Qv0O0KUaO//QPnwy0n++QuaXf6ve/3rnumkKCNQWRz6Au9s
xUKYSyEMyiLLl+Kmo7i3o9nP51fv0Hwymzto4RflCX9cnCzihJ3E6aoqh/xy+BnGkYnL4vi+XCaK
8i7JAj9B89znZlAtFmD0g5w9gMkxFN7nWZol2R3wTzaGceQoOjnWbcvQCZfWnV6x8nOWf9rRw/9I
3ZuLxcLy7SjUDYZcGPQyTu9QxBZ+lZRgFdmnmKGizHL/jqHPcXmPVnIanwRVGiUMxVsX8rc5qwaa
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
VAUAA2Ybalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACTCiJKLd4TYhoJAAA6EQAAFQAYAAAA
AAABAAAApIG2nwAAX3dwdF9jZXJ0cy9jYWNlcnQucGVtVVQFAANmG2pYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAkwoiSuLhxIhHBQAA1wYAABQAGAAAAAAAAQAAAKSBH6kAAF93cHRfY2VydHMv
Y2FrZXkucGVtVVQFAANmG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAkwoiShQlsjlJAAAA
ZQAAABQAGAAAAAAAAQAAAKSBtK4AAF93cHRfY2VydHMvaW5kZXgudHh0VVQFAANmG2pYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgACAAAAkwoiSphceX8VAAAAFQAAABkAGAAAAAAAAQAAAKSBS68AAF93
cHRfY2VydHMvaW5kZXgudHh0LmF0dHJVVAUAA2Ybalh1eAsAAQT1AQAABBQAAABQSwECHgMKAAIA
AACTCiJKmFx5fxUAAAAVAAAAHQAYAAAAAAABAAAApIGzrwAAX3dwdF9jZXJ0cy9pbmRleC50eHQu
YXR0ci5vbGRVVAUAA2Ybalh1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAACTCiJKmT1v8zcAAAA3
AAAAGAAYAAAAAAABAAAApIEfsAAAX3dwdF9jZXJ0cy9pbmRleC50eHQub2xkVVQFAANmG2pYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAkwoiSs4r4dwDBQAAjwYAABgAGAAAAAAAAQAAAKSBqLAA
AF93cHRfY2VydHMvbG9jYWxob3N0LmtleVVUBQADZhtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAJMKIkqmQZha9AkAADsSAAAYABgAAAAAAAEAAACkgf21AABfd3B0X2NlcnRzL2xvY2FsaG9z
dC5wZW1VVAUAA2Ybalh1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAACTCiJKuwjy2wcAAAAHAAAA
EQAYAAAAAAABAAAApIFDwAAAX3dwdF9jZXJ0cy9zZXJpYWxVVAUAA2Ybalh1eAsAAQT1AQAABBQA
AABQSwECHgMKAAIAAACTCiJKeFvf8AcAAAAHAAAAFQAYAAAAAAABAAAApIGVwAAAX3dwdF9jZXJ0
cy9zZXJpYWwub2xkVVQFAANmG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADgwiSukPjXOf
lwEA2VUPAA4AGAAAAAAAAQAAAKSB68AAAGFjY2Vzc19sb2cudHh0VVQFAAMrHmpYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAmQoiSgAAAAAAAAAAAAAAAAcAGAAAAAAAAAAQAO1B0lgCAGNyeXB0
by9VVAUAA3Ebalh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACZCiJKAAAAAAAAAAAAAAAADgAY
AAAAAAAAABAA7UETWQIAY3J5cHRvL3N1YnRsZS9VVAUAA3Ebalh1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAIAAACZCiJKJeDTCCwAAAAsAAAAPgAYAAAAAAABAAAApIFbWQIAY3J5cHRvL3N1YnRsZS9y
c2EtZ2VuZXJhdGUta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLXN0ZGVyci50eHRVVAUAA3Ebalh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACZCiJKMDu4sUsAAABoAAAAPAAYAAAAAAABAAAApIH/
WQIAY3J5cHRvL3N1YnRsZS9yc2EtaW1wb3J0LWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1zdGRl
cnIudHh0VVQFAANxG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAmAoiSgAAAAAAAAAAAAAA
AA8AGAAAAAAAAAAQAO1BwFoCAGNyeXB0by93b3JrZXJzL1VUBQADbxtqWHV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAJgKIkoAAAAAAAAAAAAAAAAWABgAAAAAAAAAEADtQQlbAgBjcnlwdG8vd29y
a2Vycy9zdWJ0bGUvVVQFAANvG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgACAAAAmAoiSiXg0wgs
AAAALAAAADEAGAAAAAAAAQAAAKSBWVsCAGNyeXB0by93b3JrZXJzL3N1YnRsZS9yc2EtZ2VuZXJh
dGUta2V5LXN0ZGVyci50eHRVVAUAA28balh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACbCiJK
AAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UHwWwIAZGlzcGxheWxpc3RzL1VUBQADdRtqWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAJsKIkqjV/3oUAAAAI4AAAAyABgAAAAAAAEAAACkgTdcAgBk
aXNwbGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVzLXRyYW5zZm9ybXMtc3RkZXJyLnR4dFVUBQADdRtq
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJsKIkrylpXVRwAAAEkAAAApABgAAAAAAAEAAACk
gfNcAgBkaXNwbGF5bGlzdHMvbGF5ZXItZGlzcGF5LWxpc3Qtc3RkZXJyLnR4dFVUBQADdRtqWHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAMsKIkoAAAAAAAAAAAAAAAAIABgAAAAAAAAAEADtQZ1d
AgBlZGl0aW5nL1VUBQADzhtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAMsKIkoAAAAAAAAA
AAAAAAARABgAAAAAAAAAEADtQd9dAgBlZGl0aW5nL2RlbGV0aW5nL1VUBQADzhtqWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAMsKIkotOF1OtgEAAAYTAAAoABgAAAAAAAEAAACkgSpeAgBlZGl0
aW5nL2RlbGV0aW5nL2RlbGV0ZS1lbW9qaS1zdGRlcnIudHh0VVQFAAPOG2pYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgADgwiSv1JH1CBCwAAz0MAAA0AGAAAAAAAAQAAAKSBQmACAGVycm9yX2xv
Zy50eHRVVAUAAysealh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADbCiJKAAAAAAAAAAAAAAAA
BQAYAAAAAAAAABAA7UEKbAIAZmFzdC9VVAUAA+0balh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AACqCiJKAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UFJbAIAZmFzdC9jYW52YXMvVVQFAAOQG2pY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAqgoiSgews+R5AAAAAAEAACYAGAAAAAAAAQAAAKSB
j2wCAGZhc3QvY2FudmFzL2NhbnZhcy1saW5lRGFzaC1zdGRlcnIudHh0VVQFAAOQG2pYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAA2woiSgAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BaG0CAGZh
c3QvZm9ybXMvVVQFAAPtG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA2woiSgAAAAAAAAAA
AAAAABAAGAAAAAAAAAAQAO1BrW0CAGZhc3QvZm9ybXMvZmlsZS9VVAUAA+0balh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAODCJKzVn8PZhEAAAP+gAANAAYAAAAAAABAAAApIH3bQIAZmFzdC9m
b3Jtcy9maWxlL2lucHV0LWZpbGUtd3JpdGUtZmlsZXMtY3Jhc2gtbG9nLnR4dFVUBQADLB5qWHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALMKIkoAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQf2y
AgBmYXN0L2ltYWdlcy9VVAUAA6Ibalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACzCiJKIY+9
ODIAAAAzAAAALAAYAAAAAAABAAAApIFDswIAZmFzdC9pbWFnZXMvcGRmLWFzLWltYWdlLWNyb3At
Ym94LXN0ZGVyci50eHRVVAUAA6Ibalh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAC6CiJKAAAA
AAAAAAAAAAAACgAYAAAAAAAAABAA7UHbswIAZmFzdC90ZXh0L1VUBQADsBtqWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIALoKIkqReZW3dwEAAIgJAAAjABgAAAAAAAEAAACkgR+0AgBmYXN0L3Rl
eHQvZW1vamktZ2VuZGVyLTItc3RkZXJyLnR4dFVUBQADsBtqWHV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAALoKIkoAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQfO1AgBmYXN0L3hzbC9VVAUAA7Ab
alh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC6CiJKTvsg+IgAAADnAAAAJQAYAAAAAAABAAAA
pIE2tgIAZmFzdC94c2wvdHJhbnNmb3JtLXhoci1kb2Mtc3RkZXJyLnR4dFVUBQADrxtqWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIALoKIkr9oi5kjwAAAO4AAAAnABgAAAAAAAEAAACkgR23AgBm
YXN0L3hzbC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRVVAUAA68balh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAC6CiJKz49mDlAAAACgAAAAJAAYAAAAAAABAAAApIENuAIAZmFzdC94
c2wveHNsdC1jb250ZW50VHlwZS1zdGRlcnIudHh0VVQFAAOvG2pYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAugoiSoFKd61LAAAArAAAADQAGAAAAAAAAQAAAKSBu7gCAGZhc3QveHNsL3hzbHQt
dHJhbnNmb3JtLXRvLWZyYWdtZW50LWNyYXNoLXN0ZGVyci50eHRVVAUAA7Abalh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAPDCJK82q6csYBAABKAwAAEQAYAAAAAAABAAAApIF0uQIAZnVsbF9y
ZXN1bHRzLmpzb25VVAUAAy0ealh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAC8CiJKAAAAAAAA
AAAAAAAABQAYAAAAAAAAABAA7UGFuwIAaHR0cC9VVAUAA7Mbalh1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAADbCiJKAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UHEuwIAaHR0cC90ZXN0cy9VVAUA
A+4balh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAC8CiJKAAAAAAAAAAAAAAAAFAAYAAAAAAAA
ABAA7UEJvAIAaHR0cC90ZXN0cy9hcHBjYWNoZS9VVAUAA7Qbalh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAC8CiJKwk3IHXQAAACbAAAAQwAYAAAAAAABAAAApIFXvAIAaHR0cC90ZXN0cy9hcHBj
YWNoZS80MDQtcmVzb3VyY2Utd2l0aC1zbG93LW1haW4tcmVzb3VyY2UtYWN0dWFsLnR4dFVUBQAD
sxtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALwKIkqN7YjsQQEAAE4CAABBABgAAAAAAAEA
AACkgUi9AgBodHRwL3Rlc3RzL2FwcGNhY2hlLzQwNC1yZXNvdXJjZS13aXRoLXNsb3ctbWFpbi1y
ZXNvdXJjZS1kaWZmLnR4dFVUBQADsxtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALwKIkoo
0xV22AAAACcBAABFABgAAAAAAAEAAACkgQS/AgBodHRwL3Rlc3RzL2FwcGNhY2hlLzQwNC1yZXNv
dXJjZS13aXRoLXNsb3ctbWFpbi1yZXNvdXJjZS1leHBlY3RlZC50eHRVVAUAA7Mbalh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAC8CiJK+nB6lQoIAAC/GAAASQAYAAAAAAABAAAApIFbwAIAaHR0
cC90ZXN0cy9hcHBjYWNoZS80MDQtcmVzb3VyY2Utd2l0aC1zbG93LW1haW4tcmVzb3VyY2UtcHJl
dHR5LWRpZmYuaHRtbFVUBQADtBtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAMoKIkoAAAAA
AAAAAAAAAAARABgAAAAAAAAAEADtQejIAgBodHRwL3Rlc3RzL21lZGlhL1VUBQADyxtqWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAMoKIkoAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQTPJAgBo
dHRwL3Rlc3RzL21lZGlhL2hscy9VVAUAA8sbalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADK
CiJKPswRmC0AAAAuAAAAOgAYAAAAAAABAAAApIGCyQIAaHR0cC90ZXN0cy9tZWRpYS9obHMvdmlk
ZW8tY29udHJvbHMtbGl2ZS1zdHJlYW0tYWN0dWFsLnR4dFVUBQADyxtqWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAMoKIkql1xOhJQIAAF0HAAA4ABgAAAAAAAEAAACkgSPKAgBodHRwL3Rlc3Rz
L21lZGlhL2hscy92aWRlby1jb250cm9scy1saXZlLXN0cmVhbS1kaWZmLnR4dFVUBQADyxtqWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMoKIkoJftllogEAAAsGAAA8ABgAAAAAAAEAAACkgbrM
AgBodHRwL3Rlc3RzL21lZGlhL2hscy92aWRlby1jb250cm9scy1saXZlLXN0cmVhbS1leHBlY3Rl
ZC50eHRVVAUAA8sbalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADKCiJK7G3pHWoJAAD1LgAA
QAAYAAAAAAABAAAApIHSzgIAaHR0cC90ZXN0cy9tZWRpYS9obHMvdmlkZW8tY29udHJvbHMtbGl2
ZS1zdHJlYW0tcHJldHR5LWRpZmYuaHRtbFVUBQADyxtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAANsKIkoAAAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQbbYAgBodHRwL3Rlc3RzL21pc2MvVVQF
AAPuG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2woiShU1NZJ6AAAAvAAAACoAGAAAAAAA
AQAAAKSBANkCAGh0dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1pbXBvcnQtc3RkZXJyLnR4dFVUBQAD
7htqWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANcKIkoAAAAAAAAAAAAAAAAUABgAAAAAAAAA
EADtQd7ZAgBodHRwL3Rlc3RzL3NlY3VyaXR5L1VUBQAD5RtqWHV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAANEKIkoAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQSzaAgBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAUAA9kbalh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADQCiJKY6qsbIIAAACoAAAAQAAYAAAAAAABAAAApIGQ2gIAaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUBQAD2BtqWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANEKIkpjqqxsggAAAKgAAABSABgAAAAAAAEAAACkgYzb
AgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3Rl
ZC1ieS1zdHlsZS1zcmMtMi1zdGRlcnIudHh0VVQFAAPZG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA1woiSmBLZhCRAAAA+wEAAEUAGAAAAAAAAQAAAKSBmtwCAGh0dHAvdGVzdHMvc2VjdXJp
dHkveHNzLURFTklFRC14c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4dFVUBQAD
5RtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAO0LIkpbBFgOogUAAE0QAAAKABgAAAAAAAEA
AACkgardAgBodHRwZC5jb25mVVQFAAPuHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA1goi
SgAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1BkOMCAGltcG9ydGVkL1VUBQAD5BtqWHV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAANkKIkoAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQdPjAgBpbXBv
cnRlZC93M2MvVVQFAAPqG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA1goiSgAAAAAAAAAA
AAAAABoAGAAAAAAAAAAQAO1BGuQCAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvVVQFAAPkG2pY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA2QoiSgAAAAAAAAAAAAAAACYAGAAAAAAAAAAQAO1B
buQCAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvVVQFAAPpG2pYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA1goiSo80GnBEAAAAoAkAAEcAGAAAAAAAAQAAAKSBzuQCAGlt
cG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19SU0EtT0FF
UC1zdGRlcnIudHh0VVQFAAPkG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2QoiSlQCybI2
AAAAwAIAAFAAGAAAAAAAAQAAAKSBk+UCAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvZ2VuZXJh
dGVLZXkvdGVzdF9mYWlsdXJlc19SU0FTU0EtUEtDUzEtdjFfNS1zdGRlcnIudHh0VVQFAAPpG2pY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA2QoiSgAAAAAAAAAAAAAAACAAGAAAAAAAAAAQAO1B
U+YCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvVVQFAAPqG2pYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAA2QoiSgAAAAAAAAAAAAAAACYAGAAAAAAAAAAQAO1BreYCAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvVVQFAAPqG2pYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAA2QoiSgAAAAAAAAAAAAAAACoAGAAAAAAAAAAQAO1BDecCAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL1VUBQAD6htqWHV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAANwKIkoAAAAAAAAAAAAAAAAvABgAAAAAAAAAEADtQXHnAgBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL1VUBQAD8BtqWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIANkKIkqJ7I0tCAIAAL0MAABFABgAAAAAAAEAAACkgdrnAgBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtb3JpZ2luLXN0ZGVyci50eHRV
VAUAA+obalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADbCiJKTCqz0psBAADeBQAASAAYAAAA
AAABAAAApIFh6gIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29y
cy9jb3JzLXByZWZsaWdodC1zdGRlcnIudHh0VVQFAAPtG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA3AoiSsmLhOXNAgAAvxMAAFEAGAAAAAAAAQAAAKSBfuwCAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1yZWRpcmVjdC1wcmVmbGlnaHQtc3Rk
ZXJyLnR4dFVUBQAD8BtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAA0LIkoAAAAAAAAAAAAA
AAAGABgAAAAAAAAAEADtQdbvAgBtZWRpYS9VVAUAA0ocalh1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAAANCyJKAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UEW8AIAbWVkaWEvdHJhY2svVVQFAANK
HGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADQsiSo3pGFRLAQAAVAIAACoAGAAAAAAAAQAA
AKSBXPACAG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUtYWN0dWFsLnR4dFVUBQADShxq
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA0LIkrj5XqAcAEAAL0CAAAoABgAAAAAAAEAAACk
gQvyAgBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLWRpZmYudHh0VVQFAANKHGpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADQsiSgz65Oo2AQAAMwIAACwAGAAAAAAAAQAAAKSB3fMC
AG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUtZXhwZWN0ZWQudHh0VVQFAANKHGpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADQsiShT54r+WCAAA0CAAADAAGAAAAAAAAQAAAKSBefUC
AG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUtcHJldHR5LWRpZmYuaHRtbFVUBQADShxq
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANgKIkr7shfEZAIAAKIVAAAaABgAAAAAAAEAAACk
gXn+AgBweXdlYnNvY2tldC53cy5sb2ctZXJyLnR4dFVUBQAD5xtqWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAMkKIkoLpm89CQEAAI8CAAAaABgAAAAAAAEAAACkgTEBAwBweXdlYnNvY2tldC53
cy5sb2ctb3V0LnR4dFVUBQADyRtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJMKIkoAAAAA
AAAAAAAAAAAbABgAAAAAAAAAAACkgY4CAwBweXdlYnNvY2tldC53c3MubG9nLWVyci50eHRVVAUA
A2Ubalh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACTCiJKAAAAAAAAAAAAAAAAGwAYAAAAAAAA
AAAApIHjAgMAcHl3ZWJzb2NrZXQud3NzLmxvZy1vdXQudHh0VVQFAANlG2pYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgADwwiSkUmHTnRJwAAy6oAAAwAGAAAAAAAAQAAAKSBOAMDAHJlc3VsdHMu
aHRtbFVUBQADLR5qWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAAoMIkoAAAAAAAAAAAAAAAAI
ABgAAAAAAAAAEADtQU8rAwByZXRyaWVzL1VUBQADJB5qWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAAoMIkoAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQZErAwByZXRyaWVzL2Zhc3QvVVQFAAMk
HmpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAACgwiSgAAAAAAAAAAAAAAABMAGAAAAAAAAAAQ
AO1B2CsDAHJldHJpZXMvZmFzdC9mb3Jtcy9VVAUAAyQealh1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAAAKDCJKAAAAAAAAAAAAAAAAGAAYAAAAAAAAABAA7UElLAMAcmV0cmllcy9mYXN0L2Zvcm1z
L2ZpbGUvVVQFAAMkHmpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACgwiSs1Z/D2YRAAAD/oA
ADwAGAAAAAAAAQAAAKSBdywDAHJldHJpZXMvZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtd3Jp
dGUtZmlsZXMtY3Jhc2gtbG9nLnR4dFVUBQADJB5qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AA8MIko0yVHZ0ocIAEfxLgAKABgAAAAAAAEAAACkgYVxAwBzdGF0cy5qc29uVVQFAAMtHmpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2AsiSjUTU6RjZAIAK7k9ABkAGAAAAAAAAQAAAKSBm/kL
AHdwdHdrX3Byb2Nlc3NfbG9nLm91dC50eHRVVAUAA8cdalh1eAsAAQT1AQAABBQAAABQSwUGAAAA
AGIAYgBZJwAAUV4OAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>297886</attachid>
            <date>2017-01-02 02:22:13 -0800</date>
            <delta_ts>2017-01-02 10:28:28 -0800</delta_ts>
            <desc>Archive of layout-test-results from ews114 for mac-elcapitan</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>1743381</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
OId5YjdLdi0Gzylzn6/6Lqs96WrWviplJ3nhg1z4/fVs4NWLRT/043N4u3TSoT2djKwk6PTXh1Gs
6K/Ll3GnXA/zyfXWc2rZ2lHuRhm7iny2vci2881oMO2V53t4mwh/dX9ZZU+itTzU1a6rDJVbNM+W
ysaNgsvZVPOw5pq3E3cm9dX5tTO5Da1R0ll2nGV3/ybyRl2J6svBcs6O3uy+D/YvXeN8fnMsI7Si
Q3N+uiXt2q4Rq6vZcxSWl9dX0Z8slPZ6wo39Tm9OX2R98dZtxse6e52H+mrHmei2enISuU/3gSY0
xVdrhp3Lk8iRr039uNP2c2U42E3Ty9Gr17tjbVD0o6y5TP24UQaeM3Tck9biYdBahE5JlUtqfjls
hk7oOqlVtodLbzZiA9dd+k1fj0ab/sbcPmt4e9Be5eW6rDd3RWdWhP6yMg7KYb0Weorzp82ncWvX
vjtJOMrLFh0wHHqe21Ff5kERt27rWtJ6ucYHViSt2T1pY0+skk7o5NUJXolNUWJre87EXfVn7fHU
9zyn665Wmbvym+4w9mrO5L+7K2++N5fvJIapmX43U56eJnVxcTN5NMym2qy/HrCiFcbNe8eued36
LNvezE7QX4lh76V5Xc/0fm/7uj09Xy6229/dJ+Ztu6o7+9IslMC6Ot10cPAyP++tj9t5bZuGZfv5
cBDHp3OSq0pQnO6tw+wyvdhv1wNLB7E3PN/yndZZtN1x8jqLIlWk+81T01fy1MlrexGcG6fxLXgN
Pey65whLtvRY33Djt1fm72Nl3N7Wy1TNz2Wc2iEbH0s29rfyIp1sJsdZbX5n5458PW2TMjJbt8OK
idmy17munqbNRmDcsu1+aHVXbfnZ2uS3ddaJ3NvuueeE+cBcvTwNatFiN0uvhTN86e7Zeo0tYpjy
le9nx/5o03hRmqvWyG1dkmGbT8/zuJeU3769M5Tf937np/8AUEsDBBQAAgAIACgKIkqOmO6ORAUA
ANcGAAAUABwAX3dwdF9jZXJ0cy9jYWtleS5wZW1VVAkAA5saalibGmpYdXgLAAEE9QEAAAQUAAAA
bZW3loNqAoN7nmJ63zmYDLcj+ycnkzpyzgYMT7+zW69adfp0pN/fP3GiDIwfx2V/LAf4rCf+qGL0
X+MXstYp+/Wuufj3B/9HNHgnsjxRgARR/QVjOf37I4juryiI2C/P8f+wIsU+uSeCkaxASwIBQRl/
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
CgAAAAAANQoiSgAAAAAAAAAAAAAAAA4AHABjcnlwdG8vc3VidGxlL1VUCQADthpqWG8ealh1eAsA
AQT1AQAABBQAAABQSwMECgACAAAANAoiSiXg0wgsAAAALAAAAD4AHABjcnlwdG8vc3VidGxlL3Jz
YS1nZW5lcmF0ZS1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUCQADtBpqWLQa
alh1eAsAAQT1AQAABBQAAABDb3VsZCBub3QgZ2VuZXJhdGUgYSBrZXkgcGFpciwgc3RhdHVzIC00
MzA0ClBLAwQUAAIACAA1CiJKMDu4sUsAAABoAAAAPAAcAGNyeXB0by9zdWJ0bGUvcnNhLWltcG9y
dC1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUCQADthpqWLYaalh1eAsAAQT1
AQAABBQAAABty7ENgDAMRNGeKW4fGlawZEuxgDhyLkRsDw0d9X9/S7+Eht3ujuksMQhRdXpUOaBC
gaShBtFHa5E0XdaP44w3skgFZ6Cln9Z/hgdQSwMECgAAAAAAMgoiSgAAAAAAAAAAAAAAAA8AHABj
cnlwdG8vd29ya2Vycy9VVAkAA7AaalhvHmpYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAADIKIkoA
AAAAAAAAAAAAAAAWABwAY3J5cHRvL3dvcmtlcnMvc3VidGxlL1VUCQADsBpqWG8ealh1eAsAAQT1
AQAABBQAAABQSwMECgACAAAAMgoiSiXg0wgsAAAALAAAADEAHABjcnlwdG8vd29ya2Vycy9zdWJ0
bGUvcnNhLWdlbmVyYXRlLWtleS1zdGRlcnIudHh0VVQJAAOwGmpYsBpqWHV4CwABBPUBAAAEFAAA
AENvdWxkIG5vdCBnZW5lcmF0ZSBhIGtleSBwYWlyLCBzdGF0dXMgLTQzMDQKUEsDBAoAAAAAADgK
IkoAAAAAAAAAAAAAAAANABwAZGlzcGxheWxpc3RzL1VUCQADuxpqWG8ealh1eAsAAQT1AQAABBQA
AABQSwMEFAACAAgANwoiSqNX/ehQAAAAjgAAADIAHABkaXNwbGF5bGlzdHMvZXh0ZW50LWluY2x1
ZGVzLXRyYW5zZm9ybXMtc3RkZXJyLnR4dFVUCQADuhpqWLoaalh1eAsAAQT1AQAABBQAAABzL0os
yMhMLnbOzytJrSixskpPLXEO8dXQVMgsVsjLL1GoTC1RSM7PLUgsyUzKSVUozyzJUChKTc4vSsnM
SwfKgLUV63G5oxtUjGYQMYYAAFBLAwQUAAIACAA4CiJK8paV1UcAAABJAAAAKQAcAGRpc3BsYXls
aXN0cy9sYXllci1kaXNwYXktbGlzdC1zdGRlcnIudHh0VVQJAAO7GmpYuxpqWHV4CwABBPUBAAAE
FAAAAHMvSizIyEwuds7PK0mtKLGySk8tcQ7x1dBUyCxWyMsvUahMLVFIzs8tSCzJTMpJVSjPLMlQ
KEpNzi9KycxLB8qAtRXrcQEAUEsDBAoAAAAAAHoKIkoAAAAAAAAAAAAAAAAIABwAZWRpdGluZy9V
VAkAAzgbalhvHmpYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAHoKIkoAAAAAAAAAAAAAAAARABwA
ZWRpdGluZy9kZWxldGluZy9VVAkAAzgbalhvHmpYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAHoK
Ikp5DG5XvAEAAAYTAAAoABwAZWRpdGluZy9kZWxldGluZy9kZWxldGUtZW1vamktc3RkZXJyLnR4
dFVUCQADOBtqWDgbalh1eAsAAQT1AQAABBQAAADtlk9q3DAUxtf1KYSXw0zQk2VJNulAMyF0lUXG
XYUsNJI8McR/sGWYNBhKL9B1b9Lz5AK9QuU0CSkMFIqhXkg7PUnf+6QfH4hg4CsMK0wQhhRECuSE
EUDnfdlcmUqbNmuNuQZgMUsFTxhJbtCmbk1mDjZFi8UCfapK2TRGo/Dx+5efP76F6HSTXdSVW8YH
nic4UQlhlOP1QyVLg96jbbatq70tVtlmdWX2/Z1sl6grPo9rwE7w01iiUtq2OLgaPriZNp1qi8bW
ras8dzh/rb32EgowgOslrTu9663pnvZfnMmuUB9ld/t2J6YYXY/zPOdRJGNK8c36wd43o5Wyt3J3
Z5AulF0iVfeVHQ0uA1M56VF3HbwjKB3Vt65S7dGzFNBE8/yYtHKu3fHRU3i5He9w6d7kw4vXcPht
9k+5KGKUir/JHXnVcAiGYD0MATmGOWL/ivnrUcxCg9rlHvPMMDM+bZqFBMW1xzwzzCKeOM0SYvBp
nhlmjqOJ0ywc5thjnhlmEBOnWUXKYI95ZpgjOnGaNYmY8JhnhjnG06aZAijtMc8NM2PTppnymCjw
mGeGWcDEaebuB+Z/2v8R8y9QSwMECgAAAAAAWgoiSgAAAAAAAAAAAAAAABMAHABlZGl0aW5nL3Bh
c3RlYm9hcmQvVVQJAAP8GmpYbx5qWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABMCiJKfqnxIOkA
AACCAQAAMAAcAGVkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXJlc29sdmVzLXVybHMtc3RkZXJyLnR4
dFVUCQAD3xpqWN8aalh1eAsAAQT1AQAABBQAAAB1j0FLw0AQhe/9FXOSRKTjQS9LCRRtLhaVpDTn
ye4kLqSZsDsR+u9NbEQRepz3vvdmZlcUb4WBnHzHDlSAgv3wnwxxrANHGYNlaCRAMwEGEY/SjSeO
+ExKuKtKrLh+8Yp7OsuoB44akZ1X37c4UFSuhYLDn66IVPN66NvV1abyG5ynJwmMnZDjgMtdaBvc
c0v2PPnbi7a2w5A8PtynYCAqqbdQcPOuYbN0GPM/ksFVyxgbmJQTK31UqA65MaWG6R+4ufuN5YFO
PCsX7MhW5c/CV3EMt9kMRHXGNGNv1Uu/qUU6SJZ0mqWrL1BLAwQUAAIACABaCiJKVxgTSdoAAABQ
AQAALAAcAGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1ub3BsdWdpbi1zdGRlcnIudHh0VVQJAAP7
GmpY+xpqWHV4CwABBPUBAAAEFAAAAHWNT0vDQBDF7/0Uc5JEpJODggwlULS5KCqJNOfNZtIsbDNh
d1Lx29vYgCJ4fH9+7+3K8rUkKIzz3IIKmGB7d2KIUxM4yhQsQycBetWREL1Y43uJSvdZliGfnF/H
j26Fe/HTkSM+GjW4qyusuXlyitX3xKweJPCZNy0HXF7QdvjMB2M/z/n24q3tOCZ3t1kKBFGNOgsl
d28aNssG0V8kh38jIhvYKCdWhqhQvxdElQY3HODq5gcrgjny7Fxqe7Yqvw5fpGW4zudC1Jaomwar
ToZNI+IhWeg0T1dfUEsDBBQAAgAIAFoKIkpXGBNJ2gAAAFABAAAyABwAZWRpdGluZy9wYXN0ZWJv
YXJkL3Bhc3RlLW5vcGx1Z2luLXhodG1sLXN0ZGVyci50eHRVVAkAA/saalj7GmpYdXgLAAEE9QEA
AAQUAAAAdY1PS8NAEMXv/RRzkkSkk4OCDCVQtLkoKok0581m0ixsM2F3UvHb29iAInh8f37v7cry
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
dC9kb20vTXV0YXRpb25PYnNlcnZlci9VVAkAAwobalhvHmpYdXgLAAEE9QEAAAQUAAAAUEsDBBQA
AgAIAGMKIkpLG4E1pwAAANIAAAA/ABwAZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9kYXRhYmFz
ZS1jYWxsYmFjay1kZWxpdmVyeS1zdGRlcnIudHh0VVQJAAMKG2pYChtqWHV4CwABBPUBAAAEFAAA
ADXMzQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pC
wASenOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k9
0PaztGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsD
BAoAAAAAAKEKIkoAAAAAAAAAAAAAAAALABwAZmFzdC9mb3Jtcy9VVAkAA34balhvHmpYdXgLAAEE
9QEAAAQUAAAAUEsDBBQAAgAIAGkKIkouX9jvewEAAPg5AAAzABwAZmFzdC9mb3Jtcy9WYWxpZGl0
eVN0YXRlLXBhdHRlcm5NaXNtYXRjaC1zdGRlcnIudHh0VVQJAAMVG2pYFRtqWHV4CwABBPUBAAAE
FAAAAO3YTUsDMRAG4Lu/Yk62grjehCCC1gpWirJbLIIiY3baBnaTNZmt7b83fhwKXvTm4b2EfM1u
5jkkIeOyvC0NlbLsG47jTRclJRe8oYfzsiQb2s41QgvOZU1vTlc0uPZrblxN8SuIZCeq9y2rXeW5
HUfxupIkabBX3IembyUVl6xcjOdVMZeXG6dFFfpopZjwmisbXaejEKXYcozFjzUd2a4bnhwfkKGk
tTG9d6+9PHcaTyfVyJiHHGXMxVbFhlruWFWiP6OdsZ9pmrvo1qxizHeqQxt8UprProypNDq/pP3D
r+ZMNjriJJX45NStnW4Pd78+7Rt1jfMyzb8/2BuDFrSgBS1oQQta0IIWtKAFLWhBC1rQgha0oP0F
7SOxkviawiLjfiYHWMACFrCABez/hm1druTl5Kxa51k/6k+0CJHsiiPb3E+24YS7ArjBDW5wgxvc
4AY3uMENbnCDG6/NoAUtaPF+h4MN3ODGjgxa0IIW9wgcbOAG99+53wFQSwMECgAAAAAAoQoiSgAA
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
QrEG4gSGAEVYyoW6ccgjTupkklFV16oO7dkn1XIWh592ZEF14T6HmT3Q9rO0ZsLv5BNWLsZis92W
oKF6OozJM9Wyu7Pv9/B70PrPtY4oA8tYR6QD9TcUP7wKyxzKxRtQSwMECgAAAAAAeAoiSgAAAAAA
AAAAAAAAAAwAHABmYXN0L2ltYWdlcy9VVAkAAzQbalhvHmpYdXgLAAEE9QEAAAQUAAAAUEsDBBQA
AgAIAHgKIkohj704MgAAADMAAAAsABwAZmFzdC9pbWFnZXMvcGRmLWFzLWltYWdlLWNyb3AtYm94
LXN0ZGVyci50eHRVVAkAAzQbalg0G2pYdXgLAAEE9QEAAAQUAAAAc8tJLEl1SU3OT0m1UkgB0Zl5
6QqpRUX5RVYKmXnJ+UVFqcklCimJJYkKyRmpydl6XABQSwMECgAAAAAAkAoiSgAAAAAAAAAAAAAA
AAoAHABmYXN0L3RleHQvVVQJAANfG2pYbx5qWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACQCiJK
766nIXgBAACICQAAIwAcAGZhc3QvdGV4dC9lbW9qaS1nZW5kZXItMi1zdGRlcnIudHh0VVQJAANf
G2pYXxtqWHV4CwABBPUBAAAEFAAAAO2Uy0rDQBSG1+YphixLU2Yml0mCFrSluOqiiSvpYpKc1EBz
IZlAtQR8A9e+ic/jC/gKztRqEQpuAnbR2Z3L/Oef88FQTJiBiYEpwsSn2DfJyCEmmrZ5tYAigTqs
Ae4JcZjlu8zzXLZEk7KGEDbCR4PBAN0VOa8qSJD+/vr88faio8tJOCsLWcYblgIlqWel2MHjbcFz
QFcoCIOyWInMCCfGAlbtmtdD1GRPqkYwHuHdGaKcizrbyCTeyCiBJq6zSpS1zOxHTH9yh2GRaYMa
xoW8HbUCml3/7IY3WXzLm4dDJ2ayE92rOE2ZaXLbsvByvBWPlfKSt4JHa0BJFoshisu2EMrhUINC
SivdsXZBka/UA5kpVmgvRSwvYekx6Vi6lteVJ30eqDfM5VKuv73q3ZfZ33Km6ViW+5fckbXqndZp
467T6DHOJu2ZM9jUS8+cT42zTfrlnFDHTtmZ86lxdtyeOWMrAXrmfGqcXa/nfztiNLHPnP+R8ydQ
SwMECgAAAAAAkgoiSgAAAAAAAAAAAAAAAAkAHABmYXN0L3hzbC9VVAkAA2QbalhvHmpYdXgLAAEE
9QEAAAQUAAAAUEsDBBQAAgAIAJAKIkpO+yD4iAAAAOcAAAAlABwAZmFzdC94c2wvdHJhbnNmb3Jt
LXhoci1kb2Mtc3RkZXJyLnR4dFVUCQADYBtqWGAbalh1eAsAAQT1AQAABBQAAACljrEOwjAMRPd+
hX+geGDLDBNsIDq7rSsiOXHlOFL5ewLlD1hOJ9/J7yZNaxTyqBnYTC3AEoW/EhDxoVITFzyRE56H
Gw48XqLjlV5a/c7FCy5UHLciaFy02tTq29P6WadDu4LEzHAEFk6cHWJa1bxrSdgtBKiZxgZ1BVGa
f/D/0P3+nOfPhu4NUEsDBBQAAgAIAJEKIkr9oi5kjwAAAO4AAAAnABwAZmFzdC94c2wveHNsdC1i
YWQtaW1wb3J0LXVyaS1zdGRlcnIudHh0VVQJAANhG2pYYRtqWHV4CwABBPUBAAAEFAAAAJ2OMQ7C
MAxF957CFyge2DLDBBuIzm7rikhOXDmOVG5PoJyA5cv/f9t6k6Y1CnnUDGymFmCJwl8JiPhQqYkL
nsgJz8MNBx4v0fFKL61+5+IFFyqOWxE0LlptauvNeT/S3Me0qnlfLR5aBhIzwxFYOHF22NuuNWEf
IUDNNDYAVxCl+QfyJ0bWUqfn50W7E+neUEsDBBQAAgAIAJEKIkrPj2YOUAAAAKAAAAAkABwAZmFz
dC94c2wveHNsdC1jb250ZW50VHlwZS1zdGRlcnIudHh0VVQJAANhG2pYYRtqWHV4CwABBPUBAAAE
FAAAAK3MsQ3AIAwF0Z4p/gZR2myDwAhLNkaWiTJ+yA5prrtXTCdLDrYBcje/0FgIEB6EEySkNAK2
Yq5IPO4sXLG7CM0cStGt7ssslb+wp4fK8ZEvUEsDBBQAAgAIAJIKIkqBSnetSwAAAKwAAAA0ABwA
ZmFzdC94c2wveHNsdC10cmFuc2Zvcm0tdG8tZnJhZ21lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUCQAD
ZBtqWGQbalh1eAsAAQT1AQAABBQAAAC1zLENgDAMRNE+U9wKtGzjwAVZcmxkLOZHomAD6q/3t5in
mpSGg5mRK4YaAVMnFtA46YVbUqUbW3LnUNdXxMBh0cW+juJVbfvl+gBQSwMEFAACAAgAMQwiSnRm
pM+CAQAAVwIAABEAHABmdWxsX3Jlc3VsdHMuanNvblVUCQADbh5qWG8ealh1eAsAAQT1AQAABBQA
AAB9kVuPmzAQhf8K8lMrQYEQbVX2CTXpbdOLAu22T2gCw2LFGMset0Gr/PfapqoqrdQnj8fj7xyd
qXa79rivvx6a+tkjIzRkWPnIJuw5+II0dOe/RcJlcgLZJ4YWgS9GmoR/06hmTaxkbw7V3Q8WM7wo
7Ah71/pS1bXrQEcW3DBr9t+bKDSv12vMBjDkEcOsp6A8cIH+5FJZSvwt+aU5YSjNU8nj/q3zX7//
/On/uq+PVf3Oa3pVc+ZK+bFik7+KmbRTq/FBozF8ls5GHrOZRtRtp8GMGIzt7KSOKHvUjUZM8iK7
yV3f47gk1NqqoDyAMLgyJ+6A8oGVWcwELLOlNiTc9lw7S+m3WdgJTboDgnR/X6f3eLrjlB7CbBOW
EbOfqL0tVm5XqgJjvKVtsd3exEzxC4o/XJRwEv+Y6IFcmCzLy6KoPkazjD6AtKCXKNvE0SbLXzr+
CKZVGokWh6ZuZCVp6z4P/OJpPqRNvkoPAs5LiMc6C+0aN5APrV0X579en9/+BlBLAwQKAAAAAACU
CiJKAAAAAAAAAAAAAAAABQAcAGh0dHAvVVQJAANoG2pYbx5qWHV4CwABBPUBAAAEFAAAAFBLAwQK
AAAAAADXCiJKAAAAAAAAAAAAAAAACwAcAGh0dHAvdGVzdHMvVVQJAAPmG2pYbx5qWHV4CwABBPUB
AAAEFAAAAFBLAwQKAAAAAACVCiJKAAAAAAAAAAAAAAAALwAcAGh0dHAvdGVzdHMvY29udGVudGRp
c3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvVVQJAANqG2pYbx5qWHV4CwABBPUBAAAEFAAAAFBL
AwQUAAIACACVCiJK3Jhv7zYAAAA6AAAAUQAcAGh0dHAvdGVzdHMvY29udGVudGRpc3Bvc2l0aW9u
YXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtc3RkZXJyLnR4dFVUCQAD
ahtqWGobalh1eAsAAQT1AQAABBQAAAArzUtJTcvMS02xUvAKVnANCvIPUgipLEh1LSrKL7JSKIVJ
K2QWK+Tllygk5inkJ2WlJpdwAQBQSwMEFAACAAgAlAoiStyYb+82AAAAOgAAAGoAHABodHRwL3Rl
c3RzL2NvbnRlbnRkaXNwb3NpdGlvbmF0dGFjaG1lbnRzYW5kYm94L3JlZmVyZXItaGVhZGVyLXN0
cmlwcGVkLXdpdGgtbWV0YS1yZWZlcmVyLWFsd2F5cy1zdGRlcnIudHh0VVQJAANoG2pYaBtqWHV4
CwABBPUBAAAEFAAAACvNS0lNy8xLTbFS8ApWcA0K8g9SCKksSHUtKsovslIohUkrZBYr5OWXKCTm
KeQnZaUml3ABAFBLAwQUAAIACACUCiJK3Jhv7zYAAAA6AAAAawAcAGh0dHAvdGVzdHMvY29udGVu
dGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtd2l0
aC1tZXRhLXJlZmVyZXItZGVmYXVsdC1zdGRlcnIudHh0VVQJAANoG2pYaBtqWHV4CwABBPUBAAAE
FAAAACvNS0lNy8xLTbFS8ApWcA0K8g9SCKksSHUtKsovslIohUkrZBYr5OWXKCTmKeQnZaUml3AB
AFBLAwQUAAIACACUCiJK3Jhv7zYAAAA6AAAAaQAcAGh0dHAvdGVzdHMvY29udGVudGRpc3Bvc2l0
aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtd2l0aC1tZXRhLXJl
ZmVyZXItbmV2ZXItc3RkZXJyLnR4dFVUCQADaBtqWGgbalh1eAsAAQT1AQAABBQAAAArzUtJTcvM
S02xUvAKVnANCvIPUgipLEh1LSrKL7JSKIVJK2QWK+Tllygk5inkJ2WlJpdwAQBQSwMEFAACAAgA
lQoiStyYb+82AAAAOgAAAG8AHABodHRwL3Rlc3RzL2NvbnRlbnRkaXNwb3NpdGlvbmF0dGFjaG1l
bnRzYW5kYm94L3JlZmVyZXItaGVhZGVyLXN0cmlwcGVkLXdpdGgtbWV0YS1yZWZlcmVyLW5vLXJl
ZmVycmVyLXN0ZGVyci50eHRVVAkAA2kbalhpG2pYdXgLAAEE9QEAAAQUAAAAK81LSU3LzEtNsVLw
ClZwDQryD1IIqSxIdS0qyi+yUiiFSStkFivk5ZcoJOYp5CdlpSaXcAEAUEsDBBQAAgAIAJUKIkrc
mG/vNgAAADoAAAB+ABwAaHR0cC90ZXN0cy9jb250ZW50ZGlzcG9zaXRpb25hdHRhY2htZW50c2Fu
ZGJveC9yZWZlcmVyLWhlYWRlci1zdHJpcHBlZC13aXRoLW1ldGEtcmVmZXJlci1uby1yZWZlcnJl
ci13aGVuLWRvd25ncmFkZS1zdGRlcnIudHh0VVQJAANpG2pYaRtqWHV4CwABBPUBAAAEFAAAACvN
S0lNy8xLTbFS8ApWcA0K8g9SCKksSHUtKsovslIohUkrZBYr5OWXKCTmKeQnZaUml3ABAFBLAwQU
AAIACACVCiJK3Jhv7zYAAAA6AAAAagAcAGh0dHAvdGVzdHMvY29udGVudGRpc3Bvc2l0aW9uYXR0
YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtd2l0aC1tZXRhLXJlZmVyZXIt
b3JpZ2luLXN0ZGVyci50eHRVVAkAA2kbalhpG2pYdXgLAAEE9QEAAAQUAAAAK81LSU3LzEtNsVLw
ClZwDQryD1IIqSxIdS0qyi+yUiiFSStkFivk5ZcoJOYp5CdlpSaXcAEAUEsDBBQAAgAIAJUKIkrc
mG/vNgAAADoAAABuABwAaHR0cC90ZXN0cy9jb250ZW50ZGlzcG9zaXRpb25hdHRhY2htZW50c2Fu
ZGJveC9yZWZlcmVyLWhlYWRlci1zdHJpcHBlZC13aXRoLW1ldGEtcmVmZXJlci11bnNhZmUtdXJs
LXN0ZGVyci50eHRVVAkAA2kbalhpG2pYdXgLAAEE9QEAAAQUAAAAK81LSU3LzEtNsVLwClZwDQry
D1IIqSxIdS0qyi+yUiiFSStkFivk5ZcoJOYp5CdlpSaXcAEAUEsDBAoAAAAAAMkKIkoAAAAAAAAA
AAAAAAAQABwAaHR0cC90ZXN0cy9taXNjL1VUCQADyhtqWG8ealh1eAsAAQT1AQAABBQAAABQSwME
FAACAAgApwoiSl6E9GnmAAAAYgEAAC0AHABodHRwL3Rlc3RzL21pc2MvY29weS1yZXNvbHZlcy11
cmxzLXN0ZGVyci50eHRVVAkAA4kbaliJG2pYdXgLAAEE9QEAAAQUAAAAdY1BS8NAEIXv/RVzkkSk
k4qiDCUg2lwUlUTa83YzSVeSTNidCP57ExtRCjKn99735m3y/CUnyIxruAQVMN4e3AdDGPaegwze
MlTi4aDaE+Lq8maZjLei2yRJsHXB4g8X0ErbmxCW7329wK00QzuaD0YNbnYF7nj/6BSLb3hS9+IZ
GzEle5x30Vb4xLWxn2N+d/SWtu+j66skBoKgRp2FnKtX9ev5B9FpJYV/IyLr2ShHVrqgsHvLiAr1
rqvh7OK3lnnT8uQcsS1blT+Dz1IynKcTELQkqobOqpNuvRdpIJrbcRovvgBQSwMEFAACAAgAyQoi
ShU1NZJ6AAAAvAAAACoAHABodHRwL3Rlc3RzL21pc2MveHNsdC1iYWQtaW1wb3J0LXN0ZGVyci50
eHRVVAkAA8obaljKG2pYdXgLAAEE9QEAAAQUAAAAjY5BDsMgDATveYU/QCDtoRW/IcRVLBmMjJH6
/BLlA9VeVjuH2SylEScjqYCqohE+xAinWYveb4/XGma2+A4h+EI9e8UuQzN2/+1sbk+Ho9JEzQ2l
dW7AVBGegIwFq8FNl0niXSHCqGmfGhNgScd/uip95PO6lywxLz9QSwMECgAAAAAAzAoiSgAAAAAA
AAAAAAAAABQAHABodHRwL3Rlc3RzL3NlY3VyaXR5L1VUCQAD0BtqWG8ealh1eAsAAQT1AQAABBQA
AABQSwMECgAAAAAAuwoiSgAAAAAAAAAAAAAAACoAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9VVAkAA7EbalhvHmpYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALoK
IkpjqqxsggAAAKgAAABAABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUCQADsBtqWLAbalh1eAsAAQT1AQAABBQAAAAtjUEK
wzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZzXK2wpsXqQRV0UR7YdDh3lIIy22d48iS
7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpoJTDOIdAP2AH4NGh6Q21cJ5LKnZY50o7N
rzFEm4Lsak3U8Zq+UEsDBBQAAgAIALsKIkpjqqxsggAAAKgAAABSABwAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXVuYWZmZWN0ZWQtYnktc3R5bGUtc3JjLTIt
c3RkZXJyLnR4dFVUCQADsRtqWLEbalh1eAsAAQT1AQAABBQAAAAtjUEKwzAMBO95hV4QO72k+BWF
viC4G2JQLCMppf59TSl7WobZzXK2wpsXqQRV0UR7YdDh3lIIy22d48iS7jHGYMiXFu8hS3VUf/77
Q7jkHhQml2ZYMO+M+WNMXCpoJTDOIdAP2AH4NGh6Q21cJ5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsD
BBQAAgAIALEKIkqviBzXrQAAAKQBAAA6ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmln
aW4td2Vic3FsLWFsbG93ZWQtc3RkZXJyLnR4dFVUCQADnRtqWJ0balh1eAsAAQT1AQAABBQAAADd
j80KwjAQhO99ij22B40gXoIIoj2JFCrqOUm3EEh3wzap+vb+oC/hbQa+b2Dqtm1aDWcyNiAkhpSF
gAk8OcEBKZkAJieeTcblPEC5AOIEhgBFWKpCXTjkAUe1N8mo+npSV7QHn9SJszh8tx0LqiN3Obyw
G9ruRVoz4kd5h7mLsVyuVhVoqO8OY/JMjawn9t0Gvgta/3CtI0rPMjQRaUvdBcX3j9Iyh6qo/+7R
E1BLAwQUAAIACACxCiJKSxuBNacAAADSAAAAMgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
b3JpZ2luLXdlYnNxbC1zdGRlcnIudHh0VVQJAAOdG2pYnRtqWHV4CwABBPUBAAAEFAAAADXMzQrC
MBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCI
lEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC
7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAI
AMQKIkpLG4E1pwAAANIAAAA/ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9zdG9yYWdlLWJsb2NraW5n
LWxvb3NlbmVkLXdlYnNxbC1zdGRlcnIudHh0VVQJAAPAG2pYwBtqWHV4CwABBPUBAAAEFAAAADXM
zQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASe
nOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90Paz
tGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQA
AgAIAMUKIkpLG4E1pwAAANIAAABDABwAaHR0cC90ZXN0cy9zZWN1cml0eS9zdG9yYWdlLWJsb2Nr
aW5nLXN0cmVuZ3RoZW5lZC13ZWJzcWwtc3RkZXJyLnR4dFVUCQADwRtqWMEbalh1eAsAAQT1AQAA
BBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQ
EkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXh
PoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrF
G1BLAwQUAAIACADMCiJKYEtmEJEAAAD7AQAARQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURF
TklFRC14c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4dFVUCQAD0BtqWNAbalh1
eAsAAQT1AQAABBQAAADtjjEOgzAMRXdO4QuEBJZWmWHo0p4BBVMimSSynQpuXzr0Bh2rv76v90Le
SqRJY06AzJk9LJEQVtXire36S+vOdf7qnLOCoXLUw+4iZhjvt3Ewu5CZc6gbJjVf4MHxGVO7bwQU
E0IPSPghQPQglBVRm/PpX8hyuj3kRAd0rYMFJ62MAhMjSC0ls+LchH/oj0PfUEsDBAoAAAAAAKgK
IkoAAAAAAAAAAAAAAAATABwAaHR0cC90ZXN0cy9zdG9yYWdlL1VUCQADixtqWG8ealh1eAsAAQT1
AQAABBQAAABQSwMEFAACAAgAqAoiSksbgTWnAAAA0gAAAEUAHABodHRwL3Rlc3RzL3N0b3JhZ2Uv
Y2FsbGJhY2tzLWFyZS1jYWxsZWQtaW4tY29ycmVjdC1jb250ZXh0LXN0ZGVyci50eHRVVAkAA4sb
aliLG2pYdXgLAAEE9QEAAAQUAAAANczNCsIwEATgu0+xx/agEcRLEEG0J5FCi/acpFsIpLthm/jz
9lbR2wx8M1XT1I2GKxkbEBJDykLABJ6c4IiUTACTEy/vxuU8QrEG4gSGAEVYyoW6ccgjTupkklFV
16oO7dkn1XIWh592ZEF14T6HmT3Q9rO0ZsLv5BNWLsZis92WoKF6OozJM9Wyu7Pv9/B70PrPtY4o
A8tYR6QD9TcUP7wKyxzKxRtQSwMECgAAAAAA1woiSgAAAAAAAAAAAAAAABoAHABodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L1VUCQAD5htqWG8ealh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA1woi
Sn5/7RexAAAAAQEAAEEAHABodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250
ZW50LXR5cGUtYXN5bmMtc3RkZXJyLnR4dFVUCQAD5htqWOYbalh1eAsAAQT1AQAABBQAAABljbEK
wkAQRPt8xVaioB42ggdWJoJYKImYQiwuySqHudtjs1H8ew0EVCxneDMvSdNdqmHj76a2FazIC3qZ
HJ4Bx2D7Nhg2DgUZ3rnFaaSOVLcOGxUbMSrJM5VjsbWiMmq5xC6tiFGF2siF2CmP8iC+qb3hBqve
0kmmZQjD2WI+Ag0FUQ39VOvQoV/ksCTfCOSHtdaZsPVXGIwhxRLtHbkjYDCC00+x/NzFrXPPP/05
egFQSwMEFAACAAgA1woiSn5/7RexAAAAAQEAAEAAHABodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUtc3luYy1zdGRlcnIudHh0VVQJAAPmG2pY5htqWHV4CwAB
BPUBAAAEFAAAAGWNsQrCQBBE+3zFVqKgHjaCB1YmglgoiZhCLC7JKoe522OzUfx7DQRULGd4My9J
012qYePvprYVrMgLepkcngHHYPs2GDYOBRneucVppI5Utw4bFRsxKskzlWOxtaIyarnELq2IUYXa
yIXYKY/yIL6pveEGq97SSaZlCMPZYj4CDQVRDf1U69ChX+SwJN8I5Ie11pmw9VcYjCHFEu0duSNg
MILTT7H83MWtc88//Tl6AVBLAwQUAAIACAAmCiJKWwRYDqIFAABNEAAACgAcAGh0dHBkLmNvbmZV
VAkAA5gaalgSHmpYdXgLAAEE9QEAAAQUAAAArVdtb9s2EP6uX0G4MLAVk5y4cecVQQDXcZYsSZ1Z
TgMsSQ1aoiTWEqmRVGJ76377jpTlF8lRA2wOEInH57k7HY/Ho0vEExEjzhVqtDIpGpZ1nSkyRwGN
yYeWStLWHZleUmXdUP8MZADbCFuRUqnvpNRvWK7HBfnIsXgRJjViqhFgZUwTwjOF3h0cWJeEpL2Y
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
CiJKVALJsjYAAADAAgAAUAAcAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkv
dGVzdF9mYWlsdXJlc19SU0FTU0EtUEtDUzEtdjFfNS1zdGRlcnIudHh0VVQJAAPgG2pY4BtqWHV4
CwABBPUBAAAEFAAAAHPOL81JUcjLL1FIT81LLUosSVVIVMhOrVQoSMws0lEoLkksKS1W0DUxNjDh
ch5VO6p2kKkFAFBLAwQKAAAAAADSCiJKAAAAAAAAAAAAAAAAIAAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvVVQJAAPbG2pYbx5qWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADzCiJK
AAAAAAAAAAAAAAAAKgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L1VUCQADGhxqWG8ealh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA0AoiSkZoG9uZAAAAxQAAAEgA
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfaXRl
cmF0aW5nLXN0ZGVyci50eHRVVAkAA9cbaljXG2pYdXgLAAEE9QEAAAQUAAAAXY6xCsIwFEX3fsUb
28UgikI2bTuIitiAHSVN3hBI+0L6Uvx8a+nkeOGcw62b5tFIODFjHxiYQNtJDwZBg6E+eGS0YFIc
KWbiRT71OIpKsxZ1q0SL3dWxUJSiwd8qKaK4k01+xtxg8YPWdmLEOGEU6nlzjJfqXC7BjQkh322P
BUjoiDysASlnRC2KlH+OlOvBPLmBD/s3F9kXUEsDBBQAAgAIANkKIkod0Y8mowAAAE8CAABGABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVu
MTEtc3RkZXJyLnR4dFVUCQAD6RtqWOkbalh1eAsAAQT1AQAABBQAAADtj7EKwjAURfd+xRvbxSCK
QjZtO4iK2IIdJU3eEEj7QvpS/Hxr6eQXODheOOdyb1lVt0rCgRk7z8AEyoyq1wgKNHXeIaMBHcNA
IREPcrHDQRSKlSibWjTYni2LmmLQ+Ek5BRRXMtFNmO0NvtCYVgwYRgyivl8s46k45nPhSnufbtb7
DCS0RA6WAiknpJ4VKb8cKZeBabQ977ZPzpLyf+JHTrwBUEsDBBQAAgAIANoKIkpGaBvbmQAAAMUA
AABDABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhf
Y291bnQtc3RkZXJyLnR4dFVUCQAD7BtqWOwbalh1eAsAAQT1AQAABBQAAABdjrEKwjAURfd+xRvb
xSCKQjZtO4iK2IAdJU3eEEj7QvpS/Hxr6eR44ZzDrZvm0Ug4MWMfGJhA20kPBkGDoT54ZLRgUhwp
ZuJFPvU4ikqzFnWrRIvd1bFQlKLB3yoporiTTX7G3GDxg9Z2YsQ4YRTqeXOMl+pcLsGNCSHfbY8F
SOiIPKwBKWdELYqUf46U68E8uYEP+zcX2RdQSwMEFAACAAgA2goiSkZoG9uZAAAAxQAAAEQAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9jb3VudDIt
c3RkZXJyLnR4dFVUCQAD6xtqWOsbalh1eAsAAQT1AQAABBQAAABdjrEKwjAURfd+xRvbxSCKQjZt
O4iK2IAdJU3eEEj7QvpS/Hxr6eR44ZzDrZvm0Ug4MWMfGJhA20kPBkGDoT54ZLRgUhwpZuJFPvU4
ikqzFnWrRIvd1bFQlKLB3yoporiTTX7G3GDxg9Z2YsQ4YRTqeXOMl+pcLsGNCSHfbY8FSOiIPKwB
KWdELYqUf46U68E8uYEP+zcX2RdQSwMEFAACAAgA2goiSkZoG9uZAAAAxQAAAEQAHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9jb3VudDMtc3RkZXJy
LnR4dFVUCQAD6xtqWOsbalh1eAsAAQT1AQAABBQAAABdjrEKwjAURfd+xRvbxSCKQjZtO4iK2IAd
JU3eEEj7QvpS/Hxr6eR44ZzDrZvm0Ug4MWMfGJhA20kPBkGDoT54ZLRgUhwpZuJFPvU4ikqzFnWr
RIvd1bFQlKLB3yoporiTTX7G3GDxg9Z2YsQ4YRTqeXOMl+pcLsGNCSHfbY8FSOiIPKwBKWdELYqU
f46U68E8uYEP+zcX2RdQSwMEFAACAAgA5AoiSkZoG9uZAAAAxQAAAEkAHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jb3VudC1zdGRlcnIu
dHh0VVQJAAP7G2pY+xtqWHV4CwABBPUBAAAEFAAAAF2OsQrCMBRF937FG9vFIIpCNm07iIrYgB0l
Td4QSPtC+lL8fGvp5HjhnMOtm+bRSDgxYx8YmEDbSQ8GQYOhPnhktGBSHClm4kU+9TiKSrMWdatE
i93VsVCUosHfKimiuJNNfsbcYPGD1nZixDhhFOp5c4yX6lwuwY0JId9tjwVI6Ig8rAEpZ0QtipR/
jpTrwTy5gQ/7NxfZF1BLAwQUAAIACADjCiJKRmgb25kAAADFAAAASgAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NvdW50Mi1zdGRlcnIu
dHh0VVQJAAP6G2pY+htqWHV4CwABBPUBAAAEFAAAAF2OsQrCMBRF937FG9vFIIpCNm07iIrYgB0l
Td4QSPtC+lL8fGvp5HjhnMOtm+bRSDgxYx8YmEDbSQ8GQYOhPnhktGBSHClm4kU+9TiKSrMWdatE
i93VsVCUosHfKimiuJNNfsbcYPGD1nZixDhhFOp5c4yX6lwuwY0JId9tjwVI6Ig8rAEpZ0QtipR/
jpTrwTy5gQ/7NxfZF1BLAwQUAAIACADjCiJKMD2FN58AAACKAQAASgAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NvdW50My1zdGRlcnIu
dHh0VVQJAAP6G2pY+htqWHV4CwABBPUBAAAEFAAAAN2PsQrCMBRF937FG9vFIIpCNrUdREVswI6S
Jm8IpH0hfSl+vrV08hMcL5x7uLeq63st4cCMXWBgAm1H3RsEDYa64JHRgklxoJiJJ/nU4SBKzVpU
jRINthfHQlGKBr/pRBHFjWzyE+Z6i2+0thUDxhGjUI+rYzyXx9MsXJkQ8s16X4CElsjDIpByQtRc
kfKnI+UyME+u5932xUVW/cOJD1BLAwQUAAIACADmCiJKRmgb25kAAADFAAAASwAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTUt
c3RkZXJyLnR4dFVUCQAD/xtqWP8balh1eAsAAQT1AQAABBQAAABdjrEKwjAURfd+xRvbxSCKQjZt
O4iK2IAdJU3eEEj7QvpS/Hxr6eR44ZzDrZvm0Ug4MWMfGJhA20kPBkGDoT54ZLRgUhwpZuJFPvU4
ikqzFnWrRIvd1bFQlKLB3yoporiTTX7G3GDxg9Z2YsQ4YRTqeXOMl+pcLsGNCSHfbY8FSOiIPKwB
KWdELYqUf46U68E8uYEP+zcX2RdQSwMEFAACAAgA6goiSkZoG9uZAAAAxQAAAE4AHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJ0cmFuc2FjdGlvbi1vbmNvbXBs
ZXRlLXN0ZGVyci50eHRVVAkAAwgcalgIHGpYdXgLAAEE9QEAAAQUAAAAXY6xCsIwFEX3fsUb28Ug
ikI2bTuIitiAHSVN3hBI+0L6Uvx8a+nkeOGcw62b5tFIODFjHxiYQNtJDwZBg6E+eGS0YFIcKWbi
RT71OIpKsxZ1q0SL3dWxUJSiwd8qKaK4k01+xtxg8YPWdmLEOGEU6nlzjJfqXC7BjQkh322PBUjo
iDysASlnRC2KlH+OlOvBPLmBD/s3F9kXUEsDBBQAAgAIAPIKIkowPYU3nwAAAIoBAABYABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvdHJhbnNhY3Rpb24tY3JlYXRl
X2luX3ZlcnNpb25jaGFuZ2Utc3RkZXJyLnR4dFVUCQADGBxqWBgcalh1eAsAAQT1AQAABBQAAADd
j7EKwjAURfd+xRvbxSCKQja1HURFbMCOkiZvCKR9IX0pfr61dPITHC+ce7i3qut7LeHAjF1gYAJt
R90bBA2GuuCR0YJJcaCYiSf51OEgSs1aVI0SDbYXx0JRiga/6UQRxY1s8hPmeotvtLYVA8YRo1CP
q2M8l8fTLFyZEPLNel+AhJbIwyKQckLUXJHypyPlMjBPrufd9sVFVv3DiQ9QSwMEFAACAAgA8woi
SkZoG9uZAAAAxQAAAEYAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi93cml0ZXItc3RhcnZhdGlvbi1zdGRlcnIudHh0VVQJAAMaHGpYGhxqWHV4CwABBPUBAAAEFAAA
AF2OsQrCMBRF937FG9vFIIpCNm07iIrYgB0lTd4QSPtC+lL8fGvp5HjhnMOtm+bRSDgxYx8YmEDb
SQ8GQYOhPnhktGBSHClm4kU+9TiKSrMWdatEi93VsVCUosHfKimiuJNNfsbcYPGD1nZixDhhFOp5
c4yX6lwuwY0JId9tjwVI6Ig8rAEpZ0QtipR/jpTrwTy5gQ/7NxfZF1BLAwQKAAAAAADSCiJKAAAA
AAAAAAAAAAAAJgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvVVQJAAPb
G2pYbx5qWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADSCiJKAAAAAAAAAAAAAAAAKgAcAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL1VUCQAD2xtqWG8ealh1eAsAAQT1
AQAABBQAAABQSwMECgAAAAAA1woiSgAAAAAAAAAAAAAAAC8AHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL1VUCQAD5htqWG8ealh1eAsAAQT1AQAABBQAAABQ
SwMEFAACAAgA0goiSnnmOO4MAgAAvQwAAEUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtb3JpZ2luLXN0ZGVyci50eHRVVAkAA9sbaljbG2pYdXgL
AAEE9QEAAAQUAAAA7ZZba9tAEIXf+yv0Er+NtbuavRlMEa6TFto64PY57NU2VbzGUmnz77tySFqH
QJya0hYH6UlazdF+nJ0zk9nH+ez9tPgwnc/ri+momG1Xi9W6WHbdZlSWTXKmWaa2GylFSLFqi3Xq
CtM06Vvwhb0paudC28IkrbttaqDu38BtjeGrycPi56Fzy6K+fFc4s+4rNcn4Oy3K5JDki+60ytiv
Lc1mVW5Dm75us0652YbYrBbLbri5ed2lL2E9Zppwi85CIKQC1CjBBK2Be2uj88H4yAbX5vuVWYQx
GaTdr417ybOqPmPn+b4Xzk966cFuf1fXoVsm344vpp+GfxbL32O+p0UPZU4YQYGSAbfGAjKFoJzl
YCuGjjiBrrJPML8XvmVOT4j5ns8PZl5p1IJZAU4oBWgNByWQQSWE04RKQln1PJ+fDPN2D7pGrA6F
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
dXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAHQLIkod0Y8mowAAAE8CAAApABwAc3RvcmFnZS9pbmRl
eGVkZGIvaW5kZXgtYmFzaWNzLXN0ZGVyci50eHRVVAkAAwsdalgLHWpYdXgLAAEE9QEAAAQUAAAA
7Y+xCsIwFEX3fsUb28UgikI2bTuIitiCHSVN3hBI+0L6Uvx8a+nkFzg4Xjjncm9ZVbdKwoEZO8/A
BMqMqtcICjR13iGjAR3DQCERD3Kxw0EUipUom1o02J4ti5pi0PhJOQUUVzLRTZjtDb7QmFYMGEYM
or5fLOOpOOZz4Up7n27W+wwktEQOlgIpJ6SeFSm/HCmXgWm0Pe+2T86S8n/iR068AVBLAwQUAAIA
CABzCyJKHdGPJqMAAABPAgAAMQAcAHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWJhc2ljcy13b3Jr
ZXJzLXN0ZGVyci50eHRVVAkAAwodalgKHWpYdXgLAAEE9QEAAAQUAAAA7Y+xCsIwFEX3fsUb28Ug
ikI2bTuIitiCHSVN3hBI+0L6Uvx8a+nkFzg4Xjjncm9ZVbdKwoEZO8/ABMqMqtcICjR13iGjAR3D
QCERD3Kxw0EUipUom1o02J4ti5pi0PhJOQUUVzLRTZjtDb7QmFYMGEYMor5fLOOpOOZz4Up7n27W
+wwktEQOlgIpJ6SeFSm/HCmXgWm0Pe+2T86S8n/iR068AVBLAwQUAAIACAB0CyJKbU2yna8AAAAB
CgAAKAAcAHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWNvdW50LXN0ZGVyci50eHRVVAkAAwwdalgM
HWpYdXgLAAEE9QEAAAQUAAAA7c/BCoJAEAbgu08xR720RFGwt0oPUREp5DHW3TkI6sg6Kz1+Jp46
9QBzHPj/n/myPL/nGg7M2PYMTGDcaDqLYMBS2zfI6MAGP5CP1JOa0OKgUsNGZWWhSqwuNauCgrf4
vU7kUd3IhWaK1Z3DNzpXqQH9iF4Vj2vNeE6Pp3lwZfs+3qz3CWioiBpYBrSeIsVc0fqno/XyYBzq
jnfbFydRJghBCEIQghCEIAQhiL8RH1BLAwQUAAIACAB4CyJK1sOmDqQAAAAUAwAALQAcAHN0b3Jh
Z2UvaW5kZXhlZGRiL2luZGV4LW11bHRpZW50cnktc3RkZXJyLnR4dFVUCQADFB1qWBQdalh1eAsA
AQT1AQAABBQAAADtj7EKwjAURfd+xRvbxSCKQjZtO4iK2IIdJU3eEEj7QvpS/Hxr6eTs6Hjh3sM9
ZVXdKgkHZuw8AxMoM6peIyjQ1HmHjAZ0DAOFRDzIxQ4HUShWomxq0WB7tixqikHjJ+UUUFzJRDfV
bG/whca0YsAwYhD1/WIZT8Uxn4Er7X26We8zkNASOVgAUk6Vep5I+bWRcjmYRtvzbvvkLCn/En+J
30m8AVBLAwQUAAIACAB4CyJKRmgb25kAAADFAAAALQAcAHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4
LXBvcHVsYXRpb24tc3RkZXJyLnR4dFVUCQADFB1qWBQdalh1eAsAAQT1AQAABBQAAABdjrEKwjAU
Rfd+xRvbxSCKQjZtO4iK2IAdJU3eEEj7QvpS/Hxr6eR44ZzDrZvm0Ug4MWMfGJhA20kPBkGDoT54
ZLRgUhwpZuJFPvU4ikqzFnWrRIvd1bFQlKLB3yoporiTTX7G3GDxg9Z2YsQ4YRTqeXOMl+pcLsGN
CSHfbY8FSOiIPKwBKWdELYqUf46U68E8uYEP+zcX2RdQSwMEFAACAAgAfAsiSr5Yqn3oBQAAMTIA
AEUAHABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4taW4tdXBncmFkZW5lZWRlZC1w
cml2YXRlLXN0ZGVyci50eHRVVAkAAxsdalgbHWpYdXgLAAEE9QEAAAQUAAAA7Vpfc9o4EH/PEx/B
jzDTzPi/DW/ENHN5uNJp0nsXtkh8BZmznaR5uc9+KxsbyZZkQyBh5uhMp0XsrnZX+9tdrbib3dyi
ME/St8kkwiuc4xnK0QJlWLvWBld3s5sgIQSHeZyQh+Qepy84lVEqvv1J4n+eMdBUq5NJa2k40ob6
b2+5XDq+40YW0kfAOVyjmIw0gYAnRKIVnhWbdZNtP883OEXUmAz0enjCKdYQ/DVs39R9x3N1bYNJ
FJPHq/1EfU82GxxpiGhJtfxFI8mrlqv26NI6eE5TTPJ6JwUDkCyTdL3lKL1S8xVnMIwWQs7yuG5Q
+AtUuodQUHkziqNZm545/HCVZLjFKPLmv10RYFhFBMhisNKk3gMIwWIyu/mBQW6WTyZp+Z8gWW8o
ZSQgSQgv5f45DHGWgSrXWlg6U4P9MurFOIND1D3Ldj3Hhn88kwqsRUVxtkF5+PT1hTKBy1lrQmus
jyh5DTcIFCIzjn7HAkgbDsA3tqubnj529VKSiPggpC0KPws4Wck7NY8FNs89PdiYPU4GNhpRO6ix
njWXcFIy3FHnsigqOHX6B2PP8SmnCobzBvtxTsXyDPMTPRYirLQ7y1Ga/1XCMQAlHvFDikiGyrhs
MexiFhJTilGOZbwFyK5ZeOu2a0vPboEfY8Kw3/FH8SdeA8SBg11tc4nCPiYvya/dGU1JxDA8xGuc
DlUOShSMt3EKKfAoYWIYvl2HiTxBz9nM1C8979RhPoAGAT0+2E2LqrWB9hrnT3VyZjOzabhaWKuk
7fImjbUFRZjpGjrCvhOa1uiqf4iV5YhZKNRsxJGwyvzcPKYowt8wjnDUq7roPiQ1/CpYP6Dq7Owr
cTBf/A3OKfPONVQXbTBqWdai/Jzy9WFFqGn/dr0WsAMR52Lb13v4bk5Ke2UuEzqbF1nBpFMhh3dw
W3TLaR3nLve1gFaSMqsK0GKQJEtRnKKIHog2v6/AfzfTDNMybMcyvLHle6a+FcfK4owDEd/wKyMW
0mk3y9ffcUazT1tvZmUyeU3jnOW9p7lEmXMhSX6XOWbPU9KGIVqtFmDFSF0JYc9AFG2SJB4cPzI5
btEWLFo44rq+1UVjToJVDKnvuPBN1us45xPna7xaBcW6uiC8f9/OXNHUgkN768uOOCpNVUC8ZbPq
NlnBXMgkg7qCWIrKkqlGrxKHtzGJs6e+QBRq08eJeyFQtAvfgRpQnA5uERV4FkVPC5ECAAi1Hkho
5ul0kaQdUFnGFOoVlM+vrW14hWm0BD0eNWY7PZguc5xyPWSwjdaqPzy4fcsV5yZuRTkS2BMtVgCG
rhxTEzYCRagJbDWNInolh48vWMubpy4JxRKXf9ADAo9L73VMdhOqpcSaiKONNQu8LcIaJrDyjDuz
QX9U7m2+eMNGOlGIEhg7tlx1KlSIe4/tR6uT+/CeV1Y50aSL2+MT5jaGrvQ0SfJ4+baL2Wy+bMbo
Lj5d3/RMhbAiySCuwDfmLwfPVdRNzbRzY0mqo6WBs7esIX3HRJwuYlmCeQILeLhzf9G24xaIJynJ
HkOTU8LqFAHqNCspX3mHTPyNHVMf8Ykkao1R6DsHF7bO2DVcabFrpe3vJVgDKocXvUZvC1ys322L
dGMfx/WVRVUYbGzpUSrD1wpbt/2OwapQym2arMuLWbv+2BBMrVIoVLq77EnA0Kp4jnklK3X9dq6T
WBlpP6rZZaVPYXU0LyNcqBPXbuj+Caa/u0vM9GQ5Un0RAg2qrfulRmAopiQd95GCpnXVaHIq34vP
Oi1dJhf/w8nFZRrx2dOI3kXXs6yx2b+4l8XgM+cdH5WrWlORLqcc3l6U/J2NhSofKEUNueO27dGp
mwDTtY9Xhs/g6fhUMXcOvwdwfR26+zP9PcBhD1jHH27s8SR2+dHAR/9o4Oym63vOwM+iRX7fU+el
wb48DV6a8cvT4DGfBt/9tCb9AVelSYBIiFcredGWU7MVMtnwDZVJW/+OmSoQlaPCE89UXYMOCN97
vdvaODiq5fvbINVpv7MTi/kPUEsDBBQAAgAIAHwLIkr4MoFP/gUAAN41AAA9ABwAc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLWluLXVwZ3JhZGVuZWVkZWQtc3RkZXJyLnR4dFVUCQAD
HB1qWBwdalh1eAsAAQT1AQAABBQAAADtW0tz4kYQvnPiJ8xtoWpdNXoiuGG8rlCVijbBm7uQBqNY
jIgk2/Elvz0zEhIazUPCgE0SDj4g+qV+fN3Tg+d3twuUvKBkMgnC4D7EYbr+ycNBFOLH31GShjGe
rT38iB4SD6een5EH4Ab0ez9w+Oczmt/d3nmZt/RSNIsxRvn3baIoP/nTTDgyTHtkmSNjbNi9wcYL
8RBwgtvE9QQcIX6Jn5C7RYlHLZrioGb/Q7hByWDYm+/fPd4ifHf7GyJy0mzmYR9FEQpEksWUuUvO
KC/gnPwd4YB4YhbFKWKdaULTUYfHF0q5T+LNLAoRzvgAmRBCtT25iOD9lhT8rTbIk6RF1KCeboZp
Di8pbWpaJpNtEZPKilzvfZgQ8gH8a7RarSzHsn3TgUOFO2LFS+TCFLxrWmao/FwZkhJzH9YoQcAj
f5rp6NDRNMcEO4vpm9wTNXHyRjIERSirZJQvuo/9Q1zlkpBS8a3AYu7RYFh3VmB4cEg4W185V3Ya
z1gjG1aeOUzU93i7JdH2MKii+BXg+BVkKh1tVs+ek4RUQ6VJwUBIVnGy2XEUXqn48hgMgqUYqnPa
W89/IiYtSCqg3uLXn8OMUtWfTiaPKHOTbylhjAiylxLmeBUTBSW+EE0Sdl4RyB+RT2AVRgh86X8B
xNggTJ/UreWON7mWfz4FE45RFNC/25JQM/IklJVBaUmlgxC6ddiYTJIdfsSbLaUMBCQxZqUsnn0f
pSkx5Qb4RTzBS9E+QZgyTdgc6VRgJYq4butl/vrbSwWiNfwxxnDIVDyFONnL5fBXq2Ew6BPfmDbU
R3BsQ8ijqsLRrcW+zP0sQ2GuDZ2q3kf2+eu9puNs9U4zal/tdc/qK9pzJKVPncvUI+UkPRuSHLMs
2q2ORAJlFbsN7acJqjHS9E90uO8hZZMnPksy2ZjeMnklyMuQasRnpy9o2qY09Ev0GOIa+xx36QBN
Lllz7zqVSVDVrcNJN0zd6659IObNqNNoh9lnJXgNs3WFqHU41TUb7IdSsAc7GuElqQuk2xr0kGP5
ujHsdQ+sYGZkP5czFNcafmwfEy9AvyAUoKBTS4AOQSL0Knh+ebPngY2rdnTIa8Fd/kFCVUDXDWlQ
oD/k/MxRfk4H/LA+dszZpNV3Li7eV+YyobNZkWXRthpksQ7mRXNOa4m74iDK00pgs+wCHIMEMEV5
6gU0IMBdlFA0vwOabmimZeiGAU1dN9WN87vMiAM9Aga+F0VLYvCwdTk0E0VWAt+z02cBwy1SUc9M
hrhCtqpduLhYMpy2VOLNJsxYkHoNo2iWP1e3guP1ttZl0wqmsrgvW/KoeFXVXqf5zqrzZ1lSQiZZ
WamJDzO3VlFCsV28cVApibSwo5tGEP0Mc9VMlAZcaQkyWWh1X0LjJtNlnLTk/CqkNVvW5OVNJg2v
1KYTwZhGX2Z3ap+uMpQwY2DhlHx06x8182SKuImnSYYElce1NrCoCBuJIrSEqJoGAT0Kk48vCGTN
qEtSsdu9RR2mhGYpa03EIbjJIN4W1RrC5MkzOuFp5/98bXOyhvfv3bWfacPE6PiEhYcGlZ7GcRau
3vY5m7qrZo7u89N29JGuEJaDDBn85IuL96Zoy3QybVV8yMZEAou0jTC+qfrN3h4xjWAtUC96clj9
CnZbE5JTUpIDdh/nLK1zJKnV7KZs963dNdpjS4dDFkwCbv/AXeJaY1uzpQ1PeRnMit54b0uUP5/v
GnVDj2U7ysYqS6KLvZmWGt3e+iTFwHU9S+/J2l03zRWQFZlWXgs3brDdIsOFNjEjB3Tej1QdDjLT
s+Gk+jBELChVN/TJE3ZBF6ctZ5KchjtuNDmVFw4XDUvXNcR1DXFdQ3zMGqJzpx0Zxljv3tGLDvCZ
i46PAihuHfIf/43ZKTu/bpun671HTwyXm3OXcINuO5CM9O+8QX9vsA45R55l83m9k7/eyR+wn76I
0fW4+8Tr4HsdfK/3b9f7NyG+HX1/VW9H8ZYdMHQ6CrcsFglRsS/rfHCxNbrvajpxp72v/LkT/58R
HyDmZB468+q18uuhB8ID/PQPUEsDBBQAAgAIAHwLIkodUrBKcQQAALUYAABBABwAc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1wcml2YXRlLXN0ZGVyci50eHRV
VAkAAxwdalgcHWpYdXgLAAEE9QEAAAQUAAAAzVhLc+I4EL5zyk/QEVdtqvzCBm6JmdRy2CG1JHMX
dhO0Y2RWdsLMZX/7SjY2MpJlSEjNUMUB0+/u71Nb89n9EtgbsOk0IckDoSTf/IlpkhL68g1YTjIa
bTB9gSeGaY7jgj9At+hm8EzJv68wn93PcIFXOIcooxTK//tMCX3+dXw79PwgHPmhN/GCwXCLCbWQ
YrjP3ECjQehb9h0WO2BYRHRHEyn+J7IFNrQG82Pu2Q7o7P5v4HbyIsI0hjSFRGdZL1mW5BPtJUqR
H4EmvBJRmuXQLqZv+2Nze2KtlQeWbaOUAC3UBvm2bZvjKU0k74+k0u+NoXtIekwN5XHzfN/6ncZG
8jKd7qqeNFGUfh8I4+JD+0e4Xq9H41EQ+2PbMpQjMyRRGpPziEXFFCO6PP5Tng2tVli8zFaV1AP3
mLGffFgghQJq+Trn4xg8Zc1YaSUN/2oi7Akw8XAZYHflNoJkYFY66xc7/G66lfO4njbAAGH+dfyx
a49HYWCjQ1sHl5l6zHY73nhMUdPQPxDN9qgw+eiLOnpljAOj8WRQ4CLrjG0PGlVVGr2yB8NkpWft
UvYex995SEs+CmCm+Jkq/ykjmjhePaLaGawjaXxwwYUM3+mUHXCcbXdCMtGIZLRtZfkax5DnPJRb
FFfFRG/VMYZI3joM/dAVBhtTCcl3uIg3X94aMpMA501sqwU3QTVdyZU0JAEIDW94bfzAdkN7Eti2
ym6GQvcibVXWuYsNlePgWmALg88Hm+Tj08AmJuoINbmy7lpwfwfuRHFlFJWatvgAhCPzqcGHf3Gi
fp2ueKHj/sKKxRiMeecFZkXXvtuzwjDABZh25fYaY/uB39m7FbwQKqnP2634C7Yc4lxDfqpqvXu1
+cg6cZUxcZyx34xJN0EvZGY6j56P4Ug/eASRaB/3huqVlvdrT4pNQ84yM7tOgI57Jjryppi1lUCY
Gzg2hvEodj1rcP6IadbA9u96F1JOmefdC8MJfAVIIDnrdLHHnNRgr3n+jlNH2r9LHCxW//DiVLxz
y08XdGMpmSmSH1qBe60vaDU5XfPUH05cD1JvQKP2CaqaVuDRUxnD+44q20EqNUcqCh10ouskTkRD
0GJZw2M+Q47rOf7Ic8KJNw5d+2BOttVKjpv4CnvJLCecfpUvP0gu8KnGLT2ZTveMFLLuUqDNyEqc
Rh67CnNhl9Awxmm64llYvfcikW7aOmguuv5ktrR1LmS0tISbE6Ch1QWt3q+vC99suyVFm1r2JE2j
8rmZMj/ut5crTqNooV35s2eOqlRNVxqnOZvet2qYa5W6oG4Q7kRlpdSg14jD6t7uXCBqozmniBch
UOelvaM5fL//yP1QF55106MgUgMAbdQ3HTILdrfKWA9U1kRAvYby77f4nVRFWkU0W5BI5vB+fbcu
gLW2rOgwrfUGdeGC09HK827KlUzyItuZLsA6LhRPFsnSxnFcA1fcs7aZQ7kW5kLVFa42IeP1ctv0
Fv9cQfl8fiDLth9nMnLP91Pd1V5Yjv8BUEsDBBQAAgAIAHwLIkrzA7G0bAQAAFUYAAA5ABwAc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1zdGRlcnIudHh0VVQJ
AAMcHWpYHB1qWHV4CwABBPUBAAAEFAAAAM1YS3PiOBC+c+In6Da4alMlPyHcEjOppWpryS6ZvQtb
gDZGZmUn2bnsbx/JxkZGD0PC1ObAwaZf6u7v67bms/slZq+YTacpSR8IJcX2V0TTjNDNX5gVJKfx
FtENfmKIFigp+QtwA4aDb5T884Lns/sZKtEKFTjOKcXV/32mhD7/uQEc+0E0DoOxf+tHg9EOEeoA
xXCfuYFGg9DX/Bkv9pghEdEdTaX4n8gOs5EzmB/Pnu8xnd3/ibmdoowRTXCW4VRnWS9ZpUSylypJ
ecQ05ZHHWV7g7uEDGEzs6Uy0Vh5YvoszgmmpJjSAENrjqUyk74+k1u+NwVzUHlMjuT38IHA+U5kl
L9Ppvq5JG0Xl94EwLj6C/47X63U4CaMkmEDHko7ccojKmEV3K2CBm+c2kIKH+7TFDAPEf24w8eDE
dScBOEQsTvLA3eTsO+8QnOGytdEc9Fj7p7ztJa2k5V9NxMqrkSMnK/URdLhm75ErZ9fJTDiOYJuZ
y0w95vs9rzaioK3iL4Dmb6C0+eiLOn5hjKOh9WRR4CLrnO0OGnVWWr2qBqN0pafWSvYeJc88pCVv
BTxY/vEbKYWU/HY63eBywb4WXDHjTNxYmNN1zh00/MI9GdRVR6B6xZ/AmmQYfBl+ATzYlBTP9lEw
U0OW+i8RZKIo6gr6X18Tun7VhCYYNJG0PrjgQqaN6ZQd+CPf7YVkqhHJadfK8iVJcFHwUG5AUtcT
vNbjDpCiMzSDsScMtqZ46vaoTLZfX1sSlfjHv4VOB/GC4kyHq+hPwjAYDXluggh6Y3gbQaiyqiXR
vWBfVXk2sbAyhq6F93H08/Eu+fhpeBcddUS7nFlvLWaOAfoiuR08Ck0+syHvsTAU0+qDTGBF8eLE
+3WK6o9d739MeIKwdcjznLHStFb3bF4MoxLbVvLu9gWDKDCWfoU3hErq824p3rtpGfrl1Jt1uag7
40JOPcYpPXA3sUiamDDHrgRvpNy2jCrTqedG4LiUgiPZiQqvOC6wF7kQ4UmYeL4zOL+wmp2x+9wk
RBkN3/YbhlL8O8YpTs8aCXDCmQi/ad5/vt3zwsElfTpUWFis/ualqqnrhg8oMHSUPCuSH9ree60v
aN3Hpu7uDydp2ro3oLA7hFXTSrF6MmP5VFNlDcTS8KSiYKAGXSVRKgoCFssGrPMZcD3fDULf830Y
eF5gHy2PpiAuzAgYJSjLVjxgp/e6I9ZV1kBw8fW7oKOtcyF3Zke4xX5LqAtaf4ZfFyr5bkfKLozf
SJbF1Xs7WX7cby8uT6PoIEv5s6eP6qPabj5Oz2z7QmsgpVUywcoufFm4EqK0Zs/JxkVQ0nnpLjcu
36s/ch9kAqauDRRoaTpZG/XQILNgd6uc9fT8mgjMNpj8fLP7JCvS/NYsMuIwh+/au3WJWWdRqpNS
LTfDd2wFhlKed5OtnKQo871tPTVcIF4sLW+Olcdjc0eeuIXtEoZyacyF6gte7fGtl89d0zv0fYWr
9/MDR3b9uLehd76f+iZ38ANQSwMEFAACAAgAfAsiSrYN1fknBQAAzTsAAFEAHABzdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLXBlbmRpbmctdmVyc2lvbi1jaGFuZ2VzLWFzY2VuZGluZy1wcml2
YXRlLXN0ZGVyci50eHRVVAkAAxwdalgcHWpYdXgLAAEE9QEAAAQUAAAA7VtNc6M4EL37lJ/A0a6a
qRIYMPYtxpPaHHad2mTmLoMcU8HCK0iyuexvX/FpCYRwHBM7NUpVDsat7lZ363Xrkdwu5veIvCAy
m/mBfxPgIN78AbEfBvjxFyJxEGF3A/EjeiAQx9BL6APtu3Y1+ImDf57R7WK+gAlcwRi5EcYo+75L
Vbqe/uommIxNe2KZk/F0bA+GWxjgkdZQ3KVuIFgR4JfoCS13iMDUo2vsM/4/BFtEhqPB7X7v0Q7h
xfxvRPXEiQuxh8IQ+SLNYsksJD3q8xtBvkPYp5FwwyhGfDBNYDry9HhCLTck2rphgHDSTJAJAJD7
k6nwj/ckX9/pQ3uRdKgasuU2Ns3RR8qGeTqb7fIYVqsyuZuA0GgMwb+T9XptOZbtmQ4YSdyPJEYz
ZWz4vXSHDSWiHf3XeDYccW7RsIzyWruhFiPyRpOLQpSgUr4sxX3aHqKqDISSkm8FHnY46I9h5mB7
5DYpKKBFZqxbrPhcZSumfj1sEEEapL+66RjAsSY20Iq0Dt6n6i7a7WjiIdaqhH7TcPSqJTIbXV67
z4TQQq4sSRZQkXVEtsWKPCrVuiwHQ38lRtlMdg69J+rSPS0FJIfkRVO+lxL19XFZosIaLD2pbFDB
JYuqsxkp4DXa7lJJXyASYV7L/bPnoTimrnzXvDyY2kvedrQg5pqXOTFShZUqP4h3MPE2P14q8GEO
3HgKRtxxSztA2+ay7sAcIG14RWNj2sCYgKkNQLOJSQLdedJWWZzbmlQDvk912CZ2/4eNsdHbYUsr
an/U2Mga6xT7W85dGlz2FGUrQfqD0MSSdw1a/Mva8tNkZTzRjTNGzINIuu84gSRpm087Rg6CYIJk
sy0/dgDTNltzt0KPAWaW3/KpOHbE+BNtKTTQday2prUPjRMnKRNdd8yqTNoBeski02HwvHeH+UA9
cNP0UWtaOYLSfL0GyaYCZxaZDd3W9nOhtsfNtNZW6QkzbB1A5FieMR4NDi+xvB1xYyD/uZyFGl3m
5+6RQB/9hZCP/IO6C3AoqKFXwfMjus7Rk2t9rRdtt0HCh+w1CEM3ey4PlVcmutOy1YvXS5zXZlvF
evU9cINN48vGERIFSnZxqUdMNqWVACpc1IIbnkSYlRT4PezoPncydw4JjDb0YBiuqBejTk5BaIVH
a512+o/c7FoAzBVVBLebSmhQD1HLiRDILMn1KiIdh2dNK32JS6y8vBZQiwoDSgI8TDdTTNrX6wQR
Dm/dogJLLD3bgH06TS3ldRjv9p5Z/9Mm9gv36XckNc/CTp0eS3q6C3I2znCz0YE00jhKgvXbvu7i
5bpeZ/sasx0j5x5EuJJiK7e0AuG9NbGMYChl65qC2TetmNlpyFtFjp28eXhniFt7ahmApy9NvwNY
22LQLdQNBi2xa+CAZQzaAOAwy1VZ5Fkp3xbUGO9lfhSFPrH+OPnNoSVk9+m9p9Z1xPe1eRh5T/lt
7Z2tmRl+G+8vaKWYoNU/6XsQXvUWvq1Q9vy2mPdrdvSpcbidPMTqncynv5M5ZeUbtnl0Yz12XZ9N
tY/2ZF0I8WY7QD/+KnckYfdx4k2RZ1+FPLu4m7Oi8hSVp6g8ReUpKq8OdSejzRQdpOggRQcpOkjR
QV+FDrKmhul8Ah1E7QCg6CBFByk66ILpoC/3d1iKDlJ0kKKDFB2k6CBFByk66FLoILYzRTt+zjBA
ft+QvqM2imH78LfNenrtqwexsH4l/aL1j82a/1943q2dzHTfb/5Lh9971TtRinqT/h9QSwMEFAAC
AAgAfQsiSo0YyStLBQAADz0AAEkAHABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXBlbmRp
bmctdmVyc2lvbi1jaGFuZ2VzLWFzY2VuZGluZy1zdGRlcnIudHh0VVQJAAMdHWpYHR1qWHV4CwAB
BPUBAAAEFAAAAO1bwXLiOBC9c8on6DZQNVMlG9sYbgmZ1FK1tcxsMnsXthxcMTIrO8nmst++kg1G
tiUZGEjYXR1ywEjdrdfdr1ttMru9ucf0BdPJJIzDu5jE2fIXRMIkJo9/YJrFKZkuEXnEDxSRDAU5
ewC+gKveDxL/+Yxntze3KEcLlOFpSgguvu8SxfezP8uBo6HjjVxnNBwPvV5/hWIyAC3BXeJ6kh0x
eUmf8HyNKeIWXZNQsP8hXmHaH/Rmu7Ona0xub37HTE6WTxEJcJLgUCZZvrKARJAXtkD5hknILJ8m
aYbrh3eg4+vhDKRS7mi6miYxJnkbUAdCqLenEBEeb0m5v9MGtVM7RPXF8Bg6zuAS3Xyp8gQUJpN1
GTMVSgUudzFly/vwr1EURa7veoHjw4HGXakG5EKYZu+Spy3efq4MyZi5D0tMMUDsz3J8G/qW5Ttg
YzE/yR1Tk9I3FsE4wXklY3vQXWw+pFWsS1dqvpVY3HrUH4hghUMEB2xn55ELZadBxh15sELmMFHf
0vWaeRsRUHnxMyDpK8h1Orqsnj5TyrK10qTZwJZEKV1tdpSoVPsKH/TDhZz6i7U3KHhiJt2zUMC9
+++/xjlfJT6dTB5xPqdfM7YxYZViK2FGopQp2PIf06TY3lYEikfsE4jiBINPV58AMzaMsyd9qbpt
myzEX8DJrrVR5tC/u4LQGhZBqEqDrSWVDrZwLtLGZEI3/JGu1nxlKFmSkrqU++cgwFnGTPkCgtKf
4KUsxyDOakXdGdlcYCWKQbdGebD8+lKRvMA/wzEc1DKeU5zqcAX9CTkM+lcMG8eD9giOPQjbrK8B
ujPZFwXOKhZulclT5fvIO3++CzrOlu88onbZLiJrR7zmKFKfg1vLR76T9RSQxZjr8mr1k0ygzeJ5
Q/tpnDocWfYHAh4grC3yDDOaq9r+js6QYpRj3ZWh3h1Cx3OUrl/gx5gI22d1VxzbCSripalN21yU
kXEgp+7sFD4wNVMOGq8wu6gEr3G+rBhVpFPb8sCuaQY7suMeXrC8wLZnQYR9N7CHg97+jpX0jPXP
W0BapeHH+pGiEP+GcYjDvUoC9BkT4VfJ88vrPQ8sXEc33c29QbpaxXndga9xkkyL53rHBduw69Ts
nsXqOSkzRZU/QfMMtd6o9WXLoTKgdHfMJmK6XnNLotJNCu4I9IsPM5eRyzedDfugAfoBSpIFM3LQ
OaORaqnTtMU6hJ+5eSs4dCoLg9ppqkW9JkSKNJCsmdPrRUo7MiZi4T0nW7q+PBZqoCIwkYSS+WE2
Hfp1lGNao/wSlIKmrz60MT+dJEV47TfHPOSO8G6d/oXb9H8cEv9HpmlnukPWdHzAlcaCWqRJmsfR
2y7usnnUjLNdjHm+Xc4sZLzCubW2tSLhnTb5GklfLMY1I7PPYHNtYJArlxzb/NfpXRise2PXhoN6
3IYdxKrCoHtRNxkosGvxgGv3VASwn+YqLEqvbMfojTcS8zIVpTaJ9vjs8qKG7J5fvRpVR35lvEnS
4Km8MB5YmoWOt/V+iUWKA5X2ad9T1UWv0NsCF89nmya/occa2/vrKSE278ze/Z3ZKSPf9pyjC+ux
+85ZVM9RntwLmbh5PrSOv8odOak7ZOJ2ltuTmeGZGZ6Z4ZkZnpnhmRmemeGdbl5m5kBmDmTmQGYO
ZOZA/5Y5kDu2Hf8d5kBMD4RmDmTmQGYOZOZAJ/3xXK3DML/lMnMgMwcycyAzBzJzIDMHevc5kPIX
W+3/Xjt4dQ2lLE/XuiKuFiNWzEKG0APZsLwLaV+c2xC+y4tzi19kj7gwKXG6NAAPh+KjVP8DUEsD
BBQAAgAIAH0LIkpxSnyn/wQAANYuAABSABwAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1w
ZW5kaW5nLXZlcnNpb24tY2hhbmdlcy1kZXNjZW5kaW5nLXByaXZhdGUtc3RkZXJyLnR4dFVUCQAD
HR1qWB0dalh1eAsAAQT1AQAABBQAAADtWs1zqkgQv3t6fwJHrXqvakC+9BZxU5vDrqlN3t5HaCMV
HNyBJJvL/u07gOAAM4MajaaeqcpB7Onu6Y9ff+DddPIA9BXoeByEwW1IwmT5OyZBFJKnv4EmYUy8
JSZP8EgxSbCfsgfaD+1b7ycJ/3mBu+lkilM8xwl4MSGQf9/FKjvP/nUTOUPTdizTGY6Gdq+/wiEZ
aC3GXex6ghMheY2fYbYGijONbkjA6f8YroD2B7277d3jNZDp5C9gfJLUw8SHKIJAxFlMmZvkC/EL
Wk67BxIwy3pRnEDdOSYyXbW7fSGXWxqvvCgEkrYdbiKE1PrkLILDNSnOd+ogD7oOVn0+fIemObik
MOSkjMfrwieVFrnc25Ay8j7611ksFpZr2b7pooHCHLHiEjkz/h5+ZrEWE9E9/ms96w9qajEzD4pL
3TKJMX1nwQIRpFDSl3fehsFjXIWVkFLxrUDDDgWDIc4VlFtumYEWTHNh3WSbz5W3EqbX4xIoaJj9
66ZrINdybKRt3Nrbj9V9vF4zx2OiVQ79rpH4TUtVMrq09l4oZYlRSVIcYCSLmK42JwqrVOdyH/SD
ubgK5LQT7D8zlR5YKIC6ZEzb9CcJ0UAfliEqjMFSk0oGI5zx6Tse000ex6t1RhkISGJS5/Lw4vuQ
JEyVH5pfGFN7LcqiFia14mo6RsawYhWEyRqn/vK31wrMuIQbjtCglm4Z1Mgul8MQl0Ba/xuzjWkj
w0EjG6E2uikM3Zlp89zOMjRslYNjJZtjnz7ZOBknS7YsorapxlvWWGTYL8m7zLh8FuUnUfYH4Fjq
qsGCf9Y4fhyvDB3dOKPFfAzKeycppqmsf+5oYSjgFFS9d72NQaZtHtx7fKTeH8WPuu6alR/lCDrj
oWM3/Nyqw31gGniZfZk0rew5mUHfwnRZoScPnYZua9tGUNsCWxYM8ywFDFtHGFzLN4aD3u4xIOjT
6p/LZqVVBn6unygO4E+AAIKd4B+5DHXgTfD8gLJwcGvZPOvHq1WY1k32FkaRlz9Xm8ovHd0p2TqJ
1jNSxKYsYv3mHWqdR+vLVgqJDKWaVJoWU7VRc3gKCUd8V0fnP2DFqj47wT9tn5KyLwFUqJOEua8g
5ikFZul3VJ97lTq72F3r+ziK5kyLQefOQyiljtY6q/QfmRQl+OiJAq52m4qo1zSRJOEENDN6M49p
R24uWCLNSAnFl1dhGlbhME8At9llNp32zSIFWoNzbxOBJVSfrcE+HidJeO22F9yn1/+0jv3CdfoV
l65n2U4dH0tONAvWZJxhstGR0tIkTsPF+zbuktmiGWfbGLNdo9g9iHAlw9ba0QqEt9LENIKel49r
Bmbftc1IwEwuJTm0sa/DO7cItkeWgerrSzPoAFaZDbqJusFAYrsWDlhGTwYAu0muwqLwSrmWbmzQ
Z0UqCnXi9XGLwURisodsrGpUHfE4OIli/7kYBvcszVxv3XofwiLFRFL9lO9V6qxX+H0O+fO7zTjR
kKOPjN3lFCa+vuP59Hc8x4x84wOrnEtcAZ2iPFkXsnizXaTbh07Zhzpr5+n8upv78ru5i5ucr5vC
X2tTeF3lXVd511XeR+cFa2SY7ifMC0wOQofMC0fb+V0Hjov8Udl+K8brfu4r7OeOX3b27eK/encq
fUXS/vnl3tS1BErSeF1mFj+A5E+5cdJARZlQ7p6MDcTtvkXSs+3e8W6wH5tz3fd/UEsDBBQAAgAI
AH0LIkqpDx/7GQUAAC0sAABKABwAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZW5kaW5n
LXZlcnNpb24tY2hhbmdlcy1kZXNjZW5kaW5nLXN0ZGVyci50eHRVVAkAAx0dalgdHWpYdXgLAAEE
9QEAAAQUAAAA7Vpbb+o4EH7niZ/gtwPSqeSEJATeCpxqkVZLd+nZ95A4NGqw2SRtty/723eckBux
DaTQdrVUOqownou/mfnsmdP5bLIk0QuJxmO2JXQ2+YP89UziZOpQl4Qh8To/aQAr89lk5iTOyomJ
bCe6Qd3O/P+n785xExa9jcceCUlCcrH86ymjlLhJwOgDy02Ldyq+FTjVWOr1UQ//PfR937RNyxs4
uA+SvY0T0D4SKHh0qBeSWWrs8Lbd58WWRA4/TAx+PTySiCAH/mmGrWPbHFoYAVZeQNed01Tds+0W
IHUoYvnyd0TZK0pUNg55PX2OIkKTwpJCALb4LNrsJDJUCrk0Bj1vJZTMwjVx3CdwaQmpQDrL338N
Er6rujoer0myiH7EIBgG8WOuYU59Bga8PN5dmXjTEEqX4BPyg5Cgb91vCJz1gvhJcVIv8GZNlyv5
54YsJg1BUUD/OZSE2iBNQlkZ5J4UNmDjolps43G0qzq22fKdnmALo3Uty2fXJXEMrtwgN4snAnsx
D2QQQx7h4cCwhqYBv4Y6V1ioAui2TuI+/njhQhD16mncwQj3axXPiUF2uJQ0KjWMel3AxrCwPsQj
C2eaRJtbFfsqxVnGXbtPpZvnqvehdfl6r9i4WL3zjCqrvYqs7kOkZKXPwa3VI5fE8AM5Zpo2SL6T
CZRVvNizfp6gDoaa/omAuw7hgEvVAGZR8mdWzVNwYk0eIofGTpbWDYEy5YHXIuIkRCab1uhNlR2w
YRnS0K/IOqAV8Xk9FAKJgL6wpxL7W+pVxB+CDYl60nzZt6Z8XGSZcSKnln5WPoCZKQeN3zBlVqLX
IHksGLVKp7pmIbdwCZVkxyO8groguqVhh9imqw/6neMDm522spC6KQCkcTX83K4jxyO/EeIR76gr
AdvARORVsK5IS6YI610QAcZnKU5Ns42iOE+/uGoA7tQU9kpfa7KGLZB12WYTJPUAvgZhOE3X1YFz
87Q7aNm8iNcLmlWKrH7c/TPU3kaNLxsBFQElD35DofKtmZOoUEjCHa5682nuArncq3w4Bg3Uc50w
XIGTfTVhgzGhlTpNa/BCaM23cg6ditKgdppiU2cfIkkZCPYsotsViw5UjA/pvaA5XX89FtpDpcJE
Akrmh9m90G/9hEQ1ys9ASWm6+6kP8/NpkqTXXUDh5fcLBx1QlD5oTugRPuyl/8V9OhpcMWHtEZBC
VZOKBqOBpSZPhbr3cFjrK/JrccmFesiajU9oaTSsRJqyJPDfyryLF/5+npU5Ztl6NrMQ8Qrn1ppo
QcKlNfEewbu4mtdAZt/Rrm0AyKVb2j7+6/Teqxx3ZOq4X89b7wCxyjA4vOkwGUiwa/CAqXdkBHCc
5SItsqjkw+fCnykf0nmLrBSFPlX9saF5kUO25K3X3q0jbhknIXOfsobxxKu58uLlntdzGusGlvrX
CMV9VskpAnXVG+dtRdL1+e6Rv2dHG+nH28kgrmWO0pc65gY27APzCKGWu4htpmEgzCsDqkjtT+Zz
e08y+YM+qPoZpapeNSsHhtG/dObrltH6Ym0rd8lL9RLXk/lFJm6WjbX2rVzLSd0pE7eLdE/XGd51
hned4V1neNcZ3nWGd53hKRsFc6Qb9gc0CmAH4zaNwtmGfddO40M6jWP5pd1s8TqY+y8M5s5/7Zz6
dH9PrC/yd1su1E7/newdJ2xb7+50nJG3chSk74jn+KGOxodt+6W2s95V/tdN848/L7xb6uInwnbC
Cf4FUEsDBBQAAgAIAH0LIkovqYCP2QQAAAErAABMABwAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVy
c2lvbi1wZW5kaW5nLXZlcnNpb24tY2hhbmdlcy1zYW1lLXByaXZhdGUtc3RkZXJyLnR4dFVUCQAD
Hh1qWB4dalh1eAsAAQT1AQAABBQAAADtWktv6jgU3rPqT8gySLeSE0II7Npwq+lihmraO3uTmBI1
2EySttPN/Pax87QT2wEGbukVlaqK5Lx8/J3Px6fcz28fUfKGktmMbBGe3/6J/n5FaeZDHKA4RuHg
/mdJ3MEgI8nHbBaiGGVoDjO4hCkyro0r9tonGKMgiwh+IpUxuaTm7Q8cUcdUpno6m3UemUPDBP9M
VqvV2Bu74QiCIdU0NzDCQ0NiYA1xGKN57qxfrPy82KIEssWkNK6nNUqQAemv5Xg28MYTFxg0T2GE
nwf7mXog2y0KDYgNUj3+ZmDybmQ6H31R+69JgnBWe9IoUJEVSTalRpGVWi/fAzNcSjWL7bqFwQsN
6ZFCQZfNMArnXXlu84OYpKijKMvmv30IsEY5AlQYrCKpfVDBBY/y2Swp4U42WyYZSkQIFq08vgYB
SlMayrURFMk0qL+UZTFK6SaCychxJ2OH/pnYzGBtKozSLcyC9fc3pkRTzq8mGE3BUCg3VpGqxeXV
yhWQYV7R3DgusCdg6oLCkkz4oEpb5nmWaPKWmzCPVWwT9/TFxvk4WbExRDWlxmfWXtGdUtUdSy5f
RbkmYD8ITcYe09SV4aKlfpxdGU0s+xMzFkCkXXeawST7qyhHnwbxjJ4SiFNY4LKj0GCWElOCYIZU
unmRXfPlDRzXUe7dEj1HmFO/F7dCohHhN/LS5P4Gh5z6U7RBiTkc/I42lBqoHm+t602TIKJxcBcl
lAKPAhPL8pwaJmqCXvDMtBs9N+FwH2gEPts+6s0Iq2dXxnuUrWty5pnZtlwjqEMyGt5kWFuyCrNd
C0DkjQN7NBzsDrHiOOIe5GG2cCQ9ZX5snxMYoj8QClG40+kCPEpq6F3y/IBTRwi53Lh6hxt0CLqO
J9ENyGYTZWLK3qM49vPn+lQF1Ub3eh6fJOoFLrCpQmzQXoPQ2HRedkpIlih1uXUMaru0ikClSgre
CDTCvKQkbrPn9HnQhbNLYgwzgHG8pFEM9bxNnUm9iGxt0ZP+YNpVE5gvQ4Swmlpo0E6RoiIkMovk
ZkmSnuJZUaQvcMWV53cEtLLCkZKED9liyk77ZpWhROBbv0RgxaWf1mAfz5ICXncRjtL1byzpNIvK
vmaPXv+ndexnHtPOyZUTVouANKa6VDSajlw9eWrM/R8OO/i0PC8uOdFdUPDxCTcbC2gzjUkWrT4a
3KWLVRtnDcZczy5mDzJeYdwqqNYk3HiTy0iaUh7XlMy+GWXPTlOuFDm08xbp3eSWOx3bYCjiNuwh
VlUO+oX6yUCRuw4PjO2BigB281zDotiVanpbx+OzYVu4KEpRGhMfj1fcHBQpe2T3ntapI7+v3cYk
eClua3sezVzzyyIXMQ1sByjj62zFQ1HJeQZE0xv4sUT58/uy32/5sab27n6KFAvI0cYi5twBjtcz
lpBauUvIxo8jKa4cWkX6eIqYD4+k0O+NQXe10ZoyeVSOHGd4auTbrnPwwXqo3ikP1VMcT+MzGby5
HrDcrzd4uwzPvsrw7OxuzpdR3mWUdxnlXUZ5l1Fem+qONja7jIMu46AzHAcdn+UOaBo73Vb9FZjj
tZQe2Kel/OodGt8Pk614u7HZPbxvFGKXV/zdhxoWGzYd0/WppzBVwPtOYX75BSr/xyT98uYppYUD
pMz2lfbFHvb/A1BLAwQUAAIACAB9CyJKJxwf5yEFAAApMAAARAAcAHN0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tcGVuZGluZy12ZXJzaW9uLWNoYW5nZXMtc2FtZS1zdGRlcnIudHh0VVQJAAMe
HWpYHh1qWHV4CwABBPUBAAAEFAAAAO1aS3OjOBC++5SfoNvYVTNV4mniW+JMal21tc5uMnvHIBIq
WHiAJJvL/vZtgQ0CJGEnJvHWcPDBWP3Q192fWo0XV5e3JHkmyWzmu5m7clMyjyklXhbG9IZQP6T3
8yhOCfqGNBNPDdOeWubUxKYz+kHDn09kcXV51ZKczTyhluskXs+jkNAM9J01dWI8Wqj8yVX4b/ek
kO/0Ybx2QzpBLaWdqsacJsMwzclIoCOkz/EjWW5I4jJFF9S/S1yaurnau3BNkvFEDcMQlhMIS7wh
9OryLwJ60mzuUo9EEfFFmsUrmWe/nD55CGMF8NdhApbksg8u9SOy+16GMAWTdw8kIciFj2Y6OnY0
zTHRpsh8trtrMBMnr5DVJCJZqWO3+Spf7+Iy/4UrFb8KPG49Gk/QGP8zDYLAcizbN1w8UcK13XJu
7DjIWFMbl8gcpuom3mwgwC5FZRS/Ihq/oExlo8vr+VOSQAWXlhQCsCSIk/VWokCllCsSz18JJYtw
XbreI7h0C6lARrd//h5mbBX/dDa7J9ky+Z6CYBSmDzsNCxrEYGDHiWBJIt42hPJH8A0FYUTQl7Mv
CJz1w/RRsVM/9K/aLnP55zECbAmKAvpvVxJqRp6EsjLYeVLagIVLvvRns2TLAfF6w1b6giUxrWu5
ffI8kqbgyjfkFfFEYC9lgQxT/kwwzKnOFJaqALqNm3kP359L4q924xnneFKreEZTss3lFMbVMBqf
ATamjfUpPrcxbp8ECqA7i32V4yxj0tbReax6n9r91ztno7d6ZxlVVTuPrB5ApGSlz8Ct1SOThD4D
Q45ZlgOS72QCZRUvG9aPE1RjqumfCLjnEga4VA1glmR/F9U8ByfuCXfUd3SLCXEzIpNtd4zYtM33
tHkSylvytb4f4VW2uS/g7JztiNF/lTLoJcweSrrjuU7XbFR1uahiIgb/CpKW6LaGXeJYnm5MRvuj
XhA89yB3swGtkLd/bO4T1yd/EOITfy++xg7QBHkRPD+9xvDAU6UG4FZNaa/ytSZrOgJZL16vw6we
wJcwiub5c3XgvF3adVq2evF6SYtKkdWP19xDrXFp/dgKqAgoGbuvyH1IOYEF3afJa0p1XFpaPit7
zR2JCoUkDnnqxUJEVMfOjcqHfQBHY8+NohU4OVETNhgTWqnTtAYdQg80PRdlWm035aJREyJJpQnW
LJOLVZx0FGUAFbSkuxPh9IiugQpHdgLWZ5vZdugXQUaS2qlSgJKfBGef2pgfT5Mkva5DCp3fbwx0
QFHa0BxwR/iwTv/EfdobXDFhNQhIoapNRca5YavJU6HuPRz25lP4tLikpztkzcYnXGk0rESaxlkY
vFZ5ly6DZp5VOWY7ejGzEPEK49aaaEnClTXxGkHrzec1kNlXtL2ZAOTSJW+9X9TpnRu22+eWjif1
vPU7iFWGQfeibjKQYNfiAUsfyQhgP8tlWhRR2Y3CG28plkUpCn3i/XHgfiSH7Jbd7hqnjvhWehnF
3mNxJz3waOY63tY7J8gUE0v9U767qqteu68rkj9fbO8RDTvaub6/nQLi4T3ah79HO2bm6++Y4bxV
rs9DtY/jyTqRiZvtYM3uAfV3XG2GGd7HzvA+cxQzjAmHMaFqTDjM8IYZ3jDD63uGd7R52TAHGuZA
JzgHOokXyq0urvzPzPFaVQcf0qr+39sy6fuB9v8dD15dq+o0izc7auWb+/wpd5fS2a2/a/CibwcK
fQ9eNDYQe8PgZdjgvhs83FVpVvWWyv8BUEsDBBQAAgAIAH0LIkp97jBrRAQAAB4dAAA7ABwAc3Rv
cmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZXJzaXN0ZW5jZS1wcml2YXRlLXN0ZGVyci50eHRV
VAkAAx4dalgeHWpYdXgLAAEE9QEAAAQUAAAA7VlNb9s4EL3n5J+gow00APUt+5bIDerD1sE63Tsl
jWO2MuWllLi99LcvZcqyZIqUnXjRFE2AHMJyhm8+3iM1nU1vF8CegU0m2Qbo9PZv+PcJ8iLENIY0
heTqCyV8ZTa9neICRzgH1U7j2hhczf4/f0m1P8wohbggGb0HmhD6GKZZDny36SDfdjzfdXwHOYF8
0sFyMok7vdyxbB2mBGhRnn7sEyE9np2L5OVIhH0vhuEaEzoyOhLZ42rY8GTbjjPqKgahz9k3mG+A
4dLRDU0eGKY53rl9IGtgw9F7Wd58Wd4km9UpyjSB3RHGT2pgicssSk66sPyU1oYjY4i++8vl0g1c
L+apH4lA7/iJGfsh8JcLh2Z4yFpZqDyJ2g24P8dDlo/GHkJyCTTgerAldrTDpkqx1LOa9K4wTVLY
/113Uc5jeFgBAwPzX9MJLBS4vu8ZG0G+q/Nc3WebDa80pkZdzg8GzbZGoTujD3X4xBinSn2SxoBv
WWZsfbCgtVUrs9aSV2qYRKpWpLc4/saxLXhHwM4SlT8AvhuUlkoACUnmR+aXqYrtm9YvzFiMQRt3
XmBW/AMsLzWOg3iEBol7dJYBLkBlK2stcjxHWbsIHgltmM/apXiprv4Fay4N3K7pTT5NpRpVV9Ra
wLfNmyI5mbBKLbP1JoVCqN0BY+MPnouwTBgHYexvOp6hLSlWxrPIYTNZtmV6xuH6MQ5KVVY3Knva
8kyEIXBjyx5dnV5UIZqNhR3Mo8p1RJrRL5tHhhP4DJBAwiXv2ohF99UBkLwVg4MCLiOw7Vh/1Y1y
EWKaZuDUxJw1Ak1IvsFFvPr4XN/zDT7ZY3SUbcGDefSVl0rozjW/XYzBSMqztFPaUeGpgR+CboFw
AnSC9zkVfazq7n448b6tewG57RtUdi0VqyczmkeZvFchKnuNlAwUstBVSZyUBTHmiz1ZZ1PDtGzT
cW3TH9uBb6HKXdNXKzju4jNsG25rYdKZfPxO8lItZNyNlclky0jRtF2U3NdyhIvavSoxZ1bJGMY4
TSMexUh/V/Azw65uU4huePnObFl3HdFkS2tzrUe1yM+p+Ai4LH2z9ZoUbWnZkjQNd+t6AX/9ub1a
cYyixXbpH3v6SISq++46jnn3EdJD804jFdU1m5WsFEY1e7U8vCOU5KtTidiJ5pQknsXArlPabzST
v+9f8xGr4nNX90iM7CBAJ+qBYs+c3UQZ66HKkpRU31P57T1DjrLSeIp0vMnKYBZPcQx5frMsgLXe
fGHVrfv33MsfONI8yB1bTqCst3au1Ha9xj8i2K3PKgE6PkfMiE47RwxpLjsTUHS0oPenss48MuUH
1Pu47bcYt2lmPe8TmwtMbC4xrT6Vc3u5e/ED6c1dCZebTEif9NXlMRxdbm4RoDPnFn/SvdSc0WSb
lk/PQgK7LkC+SRx8MlTPHLuWxIfq9IH2apT/0+DXRnAG0P8AUEsDBBQAAgAIAH0LIkoKy5YmGQQA
AFQaAAAzABwAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZXJzaXN0ZW5jZS1zdGRlcnIu
dHh0VVQJAAMeHWpYHh1qWHV4CwABBPUBAAAEFAAAAO1ZS3ObSBC++6SfwFFUxVXDU1g3G8W1qkoF
b+TsfYCWNAmaYQdsJ/9+BxCI14BkUxVvJQcdNOrn193fPLRe3W2APwNfLkOcYh8n4DJKIUgJow9A
Q0J3bsQSUK4VzUQLw7QXlrkwkelcfaXk3ydYr+5WHc3lMui1cs/ZwY0I0FTYm7VtInS1HoonNxG+
PpJCfzSG+QETqiodo6Om5jVLhmGa6lWPDUKf2XfwYuA4M3RLw0eOaYJzs4/kAHyu1mFgMdDV3RcQ
dpLUxTSAKIKwz3K/ZBbZ5PbkELGBxO4JF57kuntMwwjK7xVEiXD5uAcOChYfzXR05GiaYypx0VlZ
dvfCDeM/i6CzhVMHPLJG6kfrRcFmqjI3baQv0I2NUBf3o3AfOp2lubCFfiy2263lWHZo+EgVSMlw
7TTqNLhYi4Vd4XKZqQcWx6K8mCpVDT8olL0o6ZCPsajdJ87FfFSeBhSEyJbxw0mDVloNZPWtqNQ8
9GX9R+9w8F3EthEdAbmmmGokZtOyHKG5+fsTSTOluthyuYPU4x8TYSciyb40uKZbJrApuWiw9UMS
ei3v0xTVWGj6LwQ8wJABLjUjMOPpP8CTjBdFEDuoDf4IN3PAKch0u/yMTNuUlt6HHaE19XWzFK/l
Ykm/tL2VPNtHPMfOqOhEiHl1cl0u+ZFl2SGOIBUs2Yiz9kW4cTPQRCC1rlReSLpXngsc64AZumYr
p21LOZFdVmFfzAXotoYwOFagG+rV+YUtsq0t5GH2ANLKlNGv8Y7jED4DhBAK1rxWgqIDqwRI0sjB
RI5gInjpWX9/O1GVaEiSGKfB/uNzdT6ozZRxg1poF7Pg+d9EqQrquhYblDJTOzh3JDsSx3iqwE9J
N4IwHXSGdY8WfSzr7vFwgrKtRwOymptw13SnWCPIDBzmurISYil5sqMgoYa+SuIwK4jibcphXa8U
TTc00zJ0w0CmrpvDW8uDLIgLEVHmAY4iXwSsDnOz8On2VVZCcO70XdDQ7nNR78yGcDX7FaF6tDio
Tzsq7HAgaXOMX0gUufn6MFm+3e/oXLajaExW58eRPipSHbobtXPOLwojI9WrJBurYeHLwq1NVK/Z
c9C4aJT6vDQPN5o4V7/lxigbzL426IxWTyf3Rj2TyHj81md8pOe3JJvZcibf397dQqW2f/ccZLJk
Nk9BAElyu02BNw5KBSj54Wb2tlNB5/HFutFNR1rvwUecpukD/ulDvr4+MknbT/Egc56f4kVk2ru4
pKPvCRVXtL+yOovMpDeP9Z+3rf/D29bAG8ufl5IJXkomqNPZM1fS3atPOu9uS5juOt+5Bx83j7k6
3WXfQRde9n+nfanRlEnK4rJb6y8e+erJma2jIqmhzIVQEdHZOdjajaX/YtfSXbn758Bl0v8BUEsD
BBQAAgAIAIALIkrM09LGhAUAAPssAAA/ABwAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1y
ZXZlcnQtb24tYWJvcnQtcHJpdmF0ZS1zdGRlcnIudHh0VVQJAAMfHWpYHx1qWHV4CwABBPUBAAAE
FAAAAO1aS3PiOBC+55Sf4CNUbar8tsONmKSGww6pTWbuwhaJZ4zMyk6YuexvX8nGRkYP22B2Mluk
ikphulutVn+fuhvms7sniN8hnkwikIMlyGCQIgTDPE7RI0RRjF6CJM2gdqMZtu5Ztus5tmfrtn/1
BcV/v8H57G7GaU4modDKA07XQRJDlBN714c2df1qrvKnMBEd70mp3+rDaA1iNNY4o62mRowly7Lt
8ZXARoze0+9wsYEYUENTFD1jgDJQmH2O1xCPxmwY0g1Es7u/ILGT5QFAIUwSGIksiyWpZ4Pbk4co
VWzsIcZkJcaXkEaRMyLy5R/u2WisjfQf3mq1cnzHDUnox+VGH8iKKf5JEggmMIeVfBWHfWo8p3Wq
CSUVnwo8bHEwskDhoDxyrwBFCZwVi7WL7d7XeZQRv55fIYYaIC/D9k3ddzxX1zYl/K76mXpMNxty
1gBp9YH+oaF0q+WqNdq8Dt4wJmCpV1IoEJFVitc7jTIqtV6Zg9FSqFke1x0IvxOXnkgqqKIZxdGM
lz9LikaGVaWoMAcrT+o1iOCCheBkgndYTNcbKhkJRFLUtPL0FoYwy4grN1pYBlMj62U0inHGcp9l
eyY1WJuK4mwD8vD1/r0mOAZw1q0+bsCN0oVscwWVMADSRtckNrarm55+6+o6z3iKQLcibVnEWcZo
3BUxFNg89/xgY9Y4G9hoRu2hxkbWXJGTkuGOBpdFUaGp0z8IPcenmioYLg7UhzkVyzPMXxixEEDl
vrMc4PxrCceAOPECmTuzpazBEORQpsuXNrrt2tKzW8KXGDHq8+ZRHFvG/AnXhBqIHmuNX+2kcmKQ
NDEM367TRE7QC5aZutHz3h3mDfEgoMdHVtOqMpec1zbOX2tyZpnZNFxtX3tqe96kubakCDNdQwfQ
d0LTGl91T7HyOmIeFG4e5JHwlvmyecEggp8hjGDU6XbRfUJqcCt4fsStw9TkBQ4Wy28kOCXv3JDb
RbseczvjJDmJXQbUqbJPs4YTtq93sL5AZebI8qndnbBKpFaHnOYNypvm4NESGUUPxMtKSKXiSE5B
QguikwQRPRBt8VTBYz7TDNMybMcyvFvL90x9Z4611dgcMfEZbhmzNTGpVO5/xBnFJ+8382Qy2eI4
Z3WfKNqUrERo5FEWmJ6npI1CkCRLsoux+q4gawaibJPQXDB8Zja0RUuwaGkI1zdATasLVPbcw8I3
Xa/jvEkt2zhJguK5mjJPX7eVKw69aKCd+7Alj8qtqsYch3tW9VsVzIVKMqgrhKWoLJVq9Cpx+BCj
OHvtCkShN12C2AuBolWaNZpB6vtTZkYyPIuyh0OkAABCr68lMgs8Xaa4BSqrmEK9gvLHK/wOosKU
IoIqiG5m119PVznEjSor2GVrVUEdX+Bw41fn1rR96Xkrx7hN02vwcwmL5/MdAR2uU45ku61TzkSH
nQlIMrqE9yd6zmRn0gZqfplu/w7TbcWs5zKxGWJi8xHmD6Zj+sfOH7rOEU6bU/RtB1g0d6Ukps7p
1EecUmpepiqXqcpHmKoAWhZyT2NEKiYEkmn1abPv6lBLntJ2FT5VXRdBQfn15i5cmSxZwYFTYrNz
9IjTF0yqwj06ztkDS71TdzDlsciBfmiuSxM4FelI2BvIZeVMTHV6doDnodB99yjcc4fQ9+kdRWsc
tI6mrx99//0uN8W0DX+VDNeiiumkcydE/vn+MZ1Qjz65hzOW6Us663r3glb1HuMUCxtVyink/b5Z
vXQp4/ZpwC/7ovy0pvjDgf3SC/6HveAAPXu/ZufSwXT72U79Q53h+htf79nf9GQ0KYHxPy/sLc22
WummcUO4pl6OP1UzUiJUDtw6X6uuceuY/5elzzwZrh3uWw/1S4IGcewicj2UmX8BUEsDBBQAAgAI
AIALIkoni5xNhgUAAJEuAAA3ABwAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1yZXZlcnQt
b24tYWJvcnQtc3RkZXJyLnR4dFVUCQADHx1qWB8dalh1eAsAAQT1AQAABBQAAADtWklz4kYUvvvE
T+jboKq4SivI3LCwK1SlghN7cm+kBisWLdKS7cwlv32eJLR3awEUM1M+uFyIt/XbvxbLxe0jYW+E
zWb+ntDF7Z/kn1cShBamNvE84lx9pS48WS5uFzjEaxwQESW6RqOr5XDynAO95VNK7ND16QOhjku3
lucHBKgVXZ5q+mRq6FNd1s26ppxzNrO5Uu6Zv7M8l9Aw0l6VKcvN9sQinOMtSfhbbRjvsEslxHFk
i6hxQZKm6brEC4ZL3/wXstoThiNBc+o8MUwDHIt9cneEjaUhw3wWeWIX+Q0Hu3cZaBLzPmPqeCT9
nLkoAJVPz4QRhOFP0U1VNhXF1NE+yazodPegxmffIGuIR8JMRnr4PB+e/Cy/uJQN33Isrj0aS2gs
/zvdbDaGaUwcDctSo7sOR46VncczxnQiZ57pJ+rB3+8hwJiiLIq/IOq/o7BJR5vV1itjUCGZpgYG
INn4bHfgSLyS8SWJ56y5nEm4brH9AiY9QiqQq8c/fnPDiKr4dDbbknDF7gJg9NzgOZWwpBsfFKQ9
BzQJ2OuKUPwIPqGN6xH0ZfQFgbGOG7w0nNRxnUXd5EL+2VGDqTHyAvpfWxIqWpyEojJILcl0AOGq
WPqzGTv0AH+3jygdDolPy1IeX22bBAGYco3sJJ4I9AVRIN2g2HM1fapGAjNR4Lo9Du3nu7essean
sbUbWSpVfNSmRIeLW1ihhtF4BL7RJ7I6lW8mslzvtA2Obi32dexnUSetjaZz1ft0Mny9F3QMVu9R
RuXVXvSsuoFIiUo/cm6pHiNOmOMy5JhhmMB5YidorOJVRft5gqpNFfUDHW5jEjlcKAZ8xsK/kmq2
wIgtKYz6lm2MERwSEW99I5P1iS4M/ZpsXVpgX9IuE6DKJRruXTc1QVddFdtJt56a6y58APOsyGnR
hMmzEr274XPWUYvtVFUmKF9UUd7sogivoS6IOlFkTEzDVjXpqntgkxlSeBCbWXUkbzR83W8Zdsjv
hDjE6TQSZBM6EXnnPL+83bPn4CrAibgWVuu/IVRJ67qGAYVGUs3PNcoaxcGezPD80CUjdFPuIH1F
kzwWZXe7OXaa1q0GGeUhXBddC1aLZxrgW51W0FjSPlljELQUXiSxEwUErR7TYl0ukKJqim5oqqbJ
uqrqzaPlQWRET4+gsY09bw0GS829GXRavMgKGpx1/iwocfNUFDOzRJzVftZQVzSB5uctFX+3c8Ny
Gb+7nmfFz5ub5el6W+uyakWpsmpftuRRctSm25DqmZsQWlpSXCZRWTUT9zO3UFFcsV280auUeFrK
y40Ce/UAm4fFS4NaaXEymWv1SECzYvO1z1pyfuNGNZvW5OXN7opXCvObs8hEhzng2vkmJKy0KCVO
iZeb0WlbQe261bhRdVMY78Zr27LoHf62JvHz5aGTVPUkV7Dd9CR3oOfF4oKMvncpQLRfozjDyYTI
4/M2+4e4zW64Y/m8KTnHTcklAHfVUM0LB+69G0za249e6y5u/n3eXfyvdxeXcluAo82t9tSlsNRQ
7M3Tb8sYp8O6dwrEiW1KEQ5UQfLG8eCuQJSsuGIUX+ySPjB/y2Bxy6tjSLwptK4ZZCRhERd6VVwX
wDXn8QgaLFf+MP0uR2NcAzv4qQ8W4+moQDHVlI+eJT9KW5+3FUtKU4N8/NrvjCzgn2kegyx64M4e
xmiqKUCq2ek50O+OMZ9xgV/UAOBzDv4+t36pHV1/2Avf00DmKcU+yAt+G0ImcX7k8/kq+1IB2tHY
48PegQ+2BPzE789/9m3iCJBYQ1fZz4TOByFNuSeE7DmHhGOn/qPK3tSlGgtCf58uFEWYGz/NjzxR
5eR2uOkKGYiS+8jOW9JEuTHUoc/7gcca3tUD39Y3Bki4U38HUEsDBBQAAgAIAIALIkpP6lsRAgQA
AOgZAABFABwAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi10d28tb3BlbnMtbm8tdmVyc2lv
bnMtcHJpdmF0ZS1zdGRlcnIudHh0VVQJAAMfHWpYHx1qWHV4CwABBPUBAAAEFAAAAOVYS3PaOhTe
s8pP8BLPtDPyA9thl5ibKYuWTJPevZAPQVNb9pWdpN30t1d+ImNZEArT3nuZYYE4j0/n8elIy8Xt
A/AX4PN5mgFb3H6Gf54hL0LMCMQxRJMvjIqV5eJ2gQu8xjmMSRrvjavJ8v9rL2rkw5QxIAVN2T2w
iLKnME5zENKWi3zH9fyZ67vIDYaedprzOVFaueNpEsYUWFF637eJkB5PZSI6HUmtfxDDNMGUmYYi
kAdMTSVLjuO6pioZlL2kX2GVAceloRsWPXLMclyZfaQJ8KmpgZBqFO8oFwUghZCUKAdGVKh+DNam
pjFF3/zNZjMLZh4RWzPrerkTHlP+XSQIYiiglW/LaRf6x7RLpVJS868C4QGAkYMrgOOR22IWxbCo
nB0Wa353ecoFrsctcDCw+FpuYKNg5nvIyOrynrzN1H2aZaKUMTO6hL4zWPpqFDofh1CHz5yLYuw8
aRSEyCblSaNRR6XTq3IwjdZKzTpdt5h8FZAeRCnoohnRaDGUv0iJRpbTlqiyBlsknQ8huJKZcT7n
DUWmSVZKRgqRlPWtPDwTAnkuoLw3SB1MQ/jLyyjSXOYWx/Xt0mBnKqJ5hguy/eulIxCp4ZxrZPba
rWTxsc1VDC81kDG9ErFxPWT76NpD57akEj6pZ9dVxsaOrAGZn6ttfe/ybSv5uFjblrW5a1o5svZG
k6mxzi6F5D6tLKLyA+DPAmSeJVOiEVd7js6TV8e37N8Yc4IB6U7uvMC8+LumhlCAeALp/D4wwnDA
BYzpDscY5HruaJbX8ESZpL7sp+LUkeUjJIJchJ5sbehNQ88ruUaPI+cdRumHiEVYBkyAMNohUkTo
lRbbjpplXrYtz9hNdsaO68rsrsvqtz0LYQhmxHbMyfFJrQ8jaaGCuZc55RnzJXviOIJPABFER50t
KBBEBK+K9V8aJs/SmJYVuF1jvv0E7AWwMdP522Ht6bqBQpekSUKLfgJfaRyH1bo+caQtu4OeZxdB
vWJ1p4z1D9nfQ2/IGvw5SKgqULqL0H7EdBNjS6BKpRHeIBphWVKBW3t/Ejxzr4NzTGCMKcFxvBYo
TD1vC2dKL322tsSscDLtjtNpqKqI3m46ocl+iEY6QiGz4jfrlB9ono2o9BVrmfvPI6S9qEikpGDn
cjPN1H+zKYD32D9sKrBl9jdS3Ugq7yij+fZDuUGBeHSGkO/Uxyqpi36viDWmhuXsXDuevgE15n6l
D05m3D+rHi90I+n5+A3TsYWQeQGWO2FoHExb3R3+fCNlgN4yUv7bJzR5Hk6zHh14dvlA2x8eBu/J
Qqh++1UmWfsu3Ted4O9rqNaXzbzU92Ndz+zj/dSPvANqafZ4pX1CGT7MX1j6v52Dn1BLAwQUAAIA
CACACyJKLDoS+DUEAADfGwAAPQAcAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tdHdvLW9w
ZW5zLW5vLXZlcnNpb25zLXN0ZGVyci50eHRVVAkAAx8dalgfHWpYdXgLAAEE9QEAAAQUAAAA7VlL
c+I4EL5z4ifoNrhqp0p+YDvcEpjUULW1ZDaZvQu7AVWMzMhOsnPZ375tG4wfsoAM1DBVc8jBovvr
Vj8+tZTp5O4R5CvI0ShkKZuzBMaxEBCkPBYPIEIuluMoToB8JKZDPdtxvaHjOdTxe18F//YC08nd
pKU5GgVKlHsZr8cRB5EiXr+JSWlvqvMnhwjf70mhf9CHwZpxYZAW6EGoQQXJth3H6CkwuHiNn2G2
AckyoFsRPkkmEpbDPvE1yIFRDUO8ATG5+xsQJ0nHTAQQRRCqkNWSmWe/Et7vMryeMux2IdYo3nOJ
BdCtu2IijGD3XbqQoPNPK5BAGP6Zjm9R3zR9h2yKzGVJuUczsfyOWYEI0hJjV0P7eD/FZf6Ukppf
FR63lgYGGdB/vcViMfSHbmgzaqDmwS3nxs4TmaHn0jIyp0E9xJsN1i8TpMziH0TEbyTV2Tjk9fhF
SqzA0pJGAUUWsVxvNYqolHp5DgbhXKlZpOuOBc/o0iOWAvQev/zJ00yqujoaLSGdyU8JKkY8We0Q
pmIRo4FdT6OlDvW2IZIv4RdZ8AjIh/4Hgs6GPHnW7DTk4aTtcqX+gqyBW4qqhP53qAhNOy/CrjbY
eVLaQMFZlZFHI7ml5ni9ySRDhUgs6iiPL0EASYKufCRBkU+C9pIskTypcprteFYGWEJh6DYsDVaf
Xkvi2u8msG+oUev47PTo2lx+slR6mAz6GBvHpZZHb1x6biSV8LtoY55nrOuobB0i52IOz708c1Rs
XIw5strc80Y1stZCk6kucsmEah2fIeJJTLGKh0OfGidk6gdZScsos4af5ykL2zOtn5iygAHVDRwY
M5n+UzDLGJ1YQmXsODB5SWApdOm2py/quE5nkcxhyUVFfSqOOY2aWl2DxrGXgw6Gn1XL/Dh+39uu
fKB74yxo2Wm3r0ryxtNVye5VardMl+yHUrKnyyzDc+wgsFyTMvCHgWUbveMTW5xnlYXczWYgVcfU
181SshD+AgghPOp4oj5yGbwp1q9vDj7xEK0FcAtT2tv7WtN1fIVuEK/XPK0n8I1H0Thf1ycu2JXd
QcvDi3g9E0WndPVP0NxDbU5r/dhKqCpQujtcM2K6uXdHokqlDs4J9MKnuYvk8qDz4ZhokEHAomiO
Thp6wkZjSit1mjZxxrgAh45VZVDbTSnUa4aoow0UMjN5O4/lgY5ZYHnPxI6ur4+FGlGpMJGCkrPN
bG8Lt4sUZI3yi6DkNN1/B791pPKeC5yyPmcbRI87h4fqc8CxSuqibxSxBqpdzvaN7eobUAP3I33w
bpq9rnq80E2mZuMnjMUmpcZ1TIqtEau8+59vjvTpKXPkrz6WVYfgeFOjA9fKHpTrE0Pr/RuFirdq
ZZK17+h16DX7Pod8fbodkup2zJuhdbyd4lFa+8LS/n/B73A0w3GadI3Ft/Hr9/4HUEsDBBQAAgAI
AIALIkq2V+yhUQUAADlHAAA4ABwAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi11cGdyYWRl
cy1wcml2YXRlLXN0ZGVyci50eHRVVAkAAyAdalggHWpYdXgLAAEE9QEAAAQUAAAA7VtLc+I4EL5z
yk/wEapmquQnhltiNrUcdkltMnMXtgiuMTJrO8nmsr995SeyLclATAKsUpUDRupu9eNT67OYz+4e
UfSKounUgwlcwhg5IcbITfwQPyDs+fjZCcIYKd8V1QBj3bDGpjE2gGEPfmD/7xc0n93NWjOnU5cp
5T4KN07gI5wQeTdNmQAM5iJ7MhHe8Zbk8zttGG6gj0dKS2inqCElSdcNYzRgyPDxa/gLLbYogqmg
W+w9RRDHMBP75G9QNBzRbgi3CM/u/kJETpw4ELsoCJDHkswemVomdqsM8xWGuRd5fBeFgoXd+xHR
RNnipl5sCWHZ8m/r2XCkDME/49VqZdqm5RLXj/KF3hONYfROEggFKEHl+NIPu9R4CqtUY44UfMuw
sMNAT4eZgXzPrSH2AjTLlHUPKz5XeRQTu57WKEIKJP+qYWvANscWULZ5+Q0OE/UQbrck1hArVUC/
KTh8UxKRji6rnZcoIsVSaRJMIENWYbQpZuReqeblOegtmTPzcN1B9xcx6ZGkgsibnu/N2uNPkqKe
qpcpyszB0pJKBxm4oEtwOo2KWgw323SkxxgS4rqUxxfXRXFMTPmuuLkzFaIvTr3oxzT26cZYSwVW
ojw/3sLEXf/2WgEcVXD6BIxq5ZbCBW9xGZRQBaQMb4hvDAtoYzCxAGgjnsDRnZW2zPzMQ7TWFtFX
sY2t0xcbpeNkxZZm1K7UaM9qKxIpXt2lzqWrKJsJ0j+ExqadzhSV4aIxvZ+o6GNV+0KPuRAJ1x0n
MEp+5uXoECOeEbVndrQ1EYIJ4s1ttzbAsAxu7Jbo2cfU9Hk9FMe2MX+gDYEGMo+W1tb2oXailzRR
Vduo0oQP0AsamfaD55051AdigZOGj2hTyjaXxOvNT9YVONPIrKmWsus9lR1uprm2TCtMs1QAkW26
mj4a7J9i+XZEPcjMbOQRc5f5sX2OoIf+RMhD3l67C7AJqKE3xvMjdp2ayUXgqgjvsqM217AZc91w
s/GTusve/CBwsudiV7lloDs1myexeoHz3ORlrNtcQ62xaX3ZKiGWo0SHo6bHRF1aCaDMSRzccAWD
6ZEMu4cdu8+DyJx9HKMMXRgES2LFSIzbRBlTSx2tVbLTf+T0yAEwh5URtdVUgwZNF3EqgjFmEd0u
w6ijeFYk0xe4xMrz2wIaXqFAiYGH6WKKTvt2laCohrdOkYElln5Zg81Jinsf+/H699RVZO3cbuSA
Dv3T+mz6lL7vQtgl3ShRgah2seoT3RLDi0DcR6r86P3kvKrtRKelmo4v6P1VIPQ0DhN/9b7Lu3ix
aubZLscsW8tP56waTtGnNrWCqZ029hhG20bnNQGOb0rR1RKXc4cc25vWAZCiT62JqYE6wWd4oDHb
bfHS5sRSLS7SCfntuugNfF+i7Pm86LEaekzL3l9PThYLEZgXQEnOfyo5X9RkXhIl892Qu8hxkFlM
tUMbOW8fi+09vDfgp9Upwf8UMGqeCYVi2YCgy5EUyr5UyLGRlzTI5dMgZ3cGkqSMJGUkKSNJGUnK
SFJGkjKSlLkWUqZ/DD+iJW71ktVVjf4aZhsc0jBfev8ppoY0w/4UakjLmZJDqaGLNr7/S0CS8DrL
26gyLOd7Sfgcer9rvvjWPzV38bebzv6uqEz8Pm58nsP9Rc3U7Msj3+X9RXl/UVLlkiqXVLmkyv+n
VLkkNvrl+eURXB7B5RH8Y/ei9n4ldT3vc6783cXh+xIXyds/jj94NH18Cbf1W2QayLc80b5IBuUg
u/cOZ6kTU7viZV2MR3sz9MQtkXB5opaohofFGm++OERcm7hfnKxM/gNQSwMEFAACAAgAgAsiShp+
k+eEBQAAOkkAADAAHABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXVwZ3JhZGVzLXN0ZGVy
ci50eHRVVAkAAyAdalggHWpYdXgLAAEE9QEAAAQUAAAA7VxJb+M2FL7nlJ/A29jADECtln1LnAlq
oKjTJtO7LFGxEJlyJSVpLv3tfZJsrSS9RE4Ug4c5mHkb3/Lx6ZGY2c31PYleSDSZhGtCb67/Iv88
kziZ2tQhQUDci1/Uh5XZzfWNndgLOyY8SvQDXV7MpLyu5Lkb+mlIKXESP6R3hLo+fZwGYUyAWtHx
SNPNkaGPdKxbbU0l52TiMKXcRuFqGviEJqn2pkyMxfZkItzjLcn5d9owWNk+HSKGI3eIGlQkaZqu
D1nB8OlL+ETmaxLZqaAr6j5ENo3tTOyDvyLRYNj7tOG7KBRs7NaPQBOfd2lTNyDb34WLYlD5sCQR
QTb8U3RLxZaiWDpa55mV7u4W1ITRG2QNCUhSyNhuvsyHh7DILyal4K8Mi1tLgyEa4H9HnucZlmG6
mo2HQndttpwp68YzxsjEhWcOE3UXrtcQYJuiIorfEQ1fUSLSscvq6XMUQYUUmgQMQOKF0WrDkXul
4MsTz10wOfNwXdvOE5h0D6lALu7//N1PUqrq6mTySJJ59DMGxsCPl1sJM+qFoGCLOaCJw95WhLIl
+IU8PyDo2+U3BMa6fvwk2Knruzdtkyv556QA02JkBfS/XUmoaFkS8spga0mhAwjn1dKfTKINBoSr
dUrpMkhCWpdy/+w4JI7BlB/IyeOJQF+cBtKPq5ir6SM1FViIAtet7cRZ/nwpgLXcjaON8bBW8SlM
8TaXQVilhtHgEnyjm1gd4bGJcRtpBY7eWeyLzM88JG0dTV3V+8g8fb1XdJys3tOMKqu96lnVg0jx
Sj91bq0eU044xzHkmGFYwPlOJBBW8byhvZugaiNF/USHOzZJHc4VAz6Lkr/zap6CEY+kctTv6MYi
YieEx9vuyLBu6tzQL8ijTyvss3ooju2+OPnS1CZsLvLMOBBTSzsrP0DNNHVaesKUWYle/WRZIGoV
TlXFRGWjikqwSyO8gLogqqlgm1iGo2rDi/0Dm++2spCZyXBI62j4tX6MbJf8QYhL3L2OBGwBEpFX
xnr/es8DD66aAzdiCn2lrTVe3WLwOuFq5Sf1AL76QTDN1sWBc7Zpt1OzcRKr5zSvFF79OM091Hqj
1h9bAWU5SvRd1/SYqNfcgiiTiYMdjpj4MHMBXO5ENuzjDTRw7CBYgJFDMWCDMqaWOkwr0CG852uX
g6FTVhrUdlMQXTRdxCkDBs08ulqE0Y6K8SC953QL1/1DoYZXKkjEgOR0M5sO/cpLSFSD/NwpGUxf
fmpjzkmKW59Cv/Zb6irYO7cNOaCz/7D+vDpg2Hcj7JJulKhAVLtYtbFmiuFFIO49VX70IdKvajvR
V1ZNxyc0/QoWepqGie+9lXkXz71mnpU5Zlpq/lXPquEUfWqsBUyV2tg0jM6xmtcAHN/RprEGl3NJ
jm2P6wBYGfeaY0PFw3reurjB7bTm6MbYVEwu0gnn8XXRK/ttQbL12aaxaugxTGt/PflwW4jAvADK
y4QPvUzY1GReEttJfUPuPMdBZjHVvhvhQ/tYbO/gnoOfVqcE/1PAqNGT2YlpYeX4pvwkTaoclchR
yb6fEkcO/Q4c3slpjJzGyGmMnMbIaYycxshpjJzG9Gsa0z2GH9Fqt3rU4m1Hd424hQ9pxL/6FaB4
JqTq1ofMhNR8RHLoTOhLG9/9qyE56erls1kZlv6+Zu5D73fOL+W6H/ntPlZP8nTVgRQcdv3ISr4z
ldUj35nKd6bdvTM9ZOT8Gdgsr3K+/lWOfGcqbzbkzYa82ZA3G2cxROvhtYycmMiJiZyYvO/92t43
iOdz/XbmV03v7LvjJFxvA1794MhWK0/1VJyfV6JDDYhyhNz7eDKVsaEKT5f2fwRxMHVn2zrxWS10
xn4XXmcVty+RE6d2GbdYe1fF/wNQSwMEFAACAAgAgQsiShNCzdQ8AwAAmREAADEAHABzdG9yYWdl
L2luZGV4ZWRkYi9pbnZhbGlkLWtleXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQJAAMhHWpYIR1qWHV4
CwABBPUBAAAEFAAAAO1XTXPaMBC9c8pP0BHPNDPyB7bDLUAzw6El05DeZWsBNUZyZROaS397ZRts
gT9IaJhcwgwH27tvV7v7nqTpZPQA8hnkcChi4JPRD/i9gSQdEx5CFAHtPXKm3kwnowlJSUASaLNE
1+iqN70cHt3ZjwXnEKZM8HvglPHlOBIJKGvTwZ7tuN7A8Rzs+PVIledwGDai3EmxHkcMeJpFP8bE
uDufHIKen0nhfzKH/powbqCGQp6A6mtItu04RlMzGH8WTzCLQZIM6JbTuSQ8ITnsnK1B9o1LtvkT
7wy89pEQHY28Y1JF0nIJs6mpgTTl8rf2rm+gPv7jLRaLgT9wQzVqRrHQOxVRyBdFGIgghb39vg4V
FeaipFajZcfXhgxPJEhtkifYXrkV4TSCSR7stNnuueRNovKar0ACIupvOr6F/YHnYhQXctN7G9S9
iGPVa8JR2dAviIstSrtinMp6vJFSiUMZqcNBmSyEXO88iqqUfsUM0qDRs2jXiIRPKqUHNQpd1aSM
Tur2FxlRatr7EW2cwX0mZQxlONMpOBzKHRfFOs4saYOJ4IcoD5swhCRRqVyjsCgmUvGSrIos0bXe
djwrAyyhKEtikoarr8+loGuEs2+wcUC3TC7aFpdLiUYg1L9StXFcbHn4xsW4rvAdhT7JtCCvc5ui
1bbE9yKb516ebFqMi5Etm6iKanplrYXqVBvvsuLqLMo9cfYD8AZ+5tlFw9mR+/t0xfZM6wMrFhLo
XHeSEpn+LOg4VkksQdszTxzjJJAU2nzrRznsuE5r7wJYMq65Tw9bce6x7RuslTQoPx2tHu2/jhPv
Miam6TvlmLQL9ExXptfJc5WO9qAyGGftU9HQ/liv+rVl6aoUZ12ZLdNF1VkbVbqZzVqQMcxyTUzA
H4SWbfReP2LFdqS9yNM8mqPGXeYxXkpC4TsABfqq3QX7StRg2/D+jF1Hu4PkPJgFv1RxCt25VrsL
ujJqK6tZ5gurHhWrN+lM3lL6+eHDPuiDK+IDCXOt7G573NWdWX2QGU9BchLdBkKmh9BbFhWva1TQ
5qp2y1fxixt5ZbQmLwHkd98pL3Ti0MO8GVitetJyn+9cYevhqn6je5v1P1BLAwQUAAIACACBCyJK
CkZ1ZNYDAAAhEwAAKQAcAHN0b3JhZ2UvaW5kZXhlZGRiL2ludmFsaWQta2V5cy1zdGRlcnIudHh0
VVQJAAMhHWpYIR1qWHV4CwABBPUBAAAEFAAAAO1YS3PbNhC+66SfgFuomWYGfIiUdbOleEYzbeXW
Tu8QuZJYU4AK0nZz6W/vgk+QIOnIcSY99MADyN1v3w9ws765B/kMcrmMWMZ2LIWV4BzCLBZ8lYgU
IvKR2B4NXM8P5l7gUW8x+czjv55gs75ZGzzLZdjhv5XitEpi4BkiTbtolE6sE4v5jBigr0JZGpLr
et5sBIrthMweJOMpywEVwGTTWC/OwNc3vwPypdmK8RCSBKKJFe164c4g90KervtQe8j70XPqX+Ak
5BekvmHhY8wP95mQb9e3QNOhNIwS1ZpdqCLStVCQMkL4LTqBqTcP8QnkbSyR3KJ/B/v9fr6Y+6G3
oDODN9dgywszrnlUSCrFpoq8yaUHUVnb9UY/7IbfSXGQkKa1aqlBGcXRSgLLYLv7E8XkPqr0MYhF
hbMSp3MCGURbXiSgQRrWFK+5ZV64ZdA2IzimpZcm+jA5uuPuslyO+bN4hNpKjKHGlNtszb4pZYaV
FSNCc7AR3iPjUQLVuUkQNPPhCBIIw8f2Fg5d2PbCI6XGypJbFINVhc4CFeEKo6qNvoTtpxz52qOx
8cqa6c6KXEZno7EtTc6FvY9n5oFPa89cBnUnzmeMNuOkjuJPhIsXko3JeE3r1ZOUWI21pBGGsmWX
HIVXar6iSgaafREuvalO7n/7Oc7A6NoHyLbyU4qMSZweK4QN3wsUUA1YlDTAbgoi+Ss8kX2cAPkw
/UBQ2ShOH8drem2qrOVfqKapwdgX0H9eS0LbzZNwqAwqTWoZSLjVJ81yKcuRU/XPHhLB2yj3T2GI
XR5V+UjCIp4E5aUqkHGqLxiuFzgKsIZC151ZFh4/PddbhNZ/3KuiN9cVr6bikHH5xNRqmFhT9I3n
UyegVz5td3md+E3Fvsv9PDS4jT3sveo98L9/vWsyvlu9q4xqql33rLNXM2eg9JVzW/WoOHFppZhj
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
slmOyBEvvREuBvpcgCvm/t3rujNR3/WWXVUxNbJd9Pe0381SIrseA7nFJQw7LtzGsWaIglH10TOG
yo60NlJzjUmHBN3pqQWT8Gp8MpE8oG2ZgBFvKNnCQ0r+gPcLEdmFUcH5ie3GKgWQLuZVIEbTPtsZ
5L9D/gjZNsmZnpaWxaoP/q8ZePpnLdXdKrT4HzXK3P7ayoEwIfKHagzz9gqK8LbqUuFzE5Q37vU6
rC409y/N1Dntpi/aoPLvpZ/abvoqzP2KdvM6alHrPa33tN7Tek/rPa33tN7Tek/rPa33tN7Tek/r
Pa33tN7Tek/rPa33tN7Tek/rPa33tN7Tek/rPa33tN7Tek/rPa33tN7Tek/rPa33tN7Tek/rvTMZ
eL0+MV2v47ypAHdxkkzLce4VL+lLufyXAE5XyvJ0o3p5Xu6GfQmt9HF872tkF99taPaT3GcmqFH1
SQghrJSfq2i6XqP3JZTjsz1GmutYd0O79y9QSwMEFAACAAgAiAsiSs1o9ntIBgAAz0kAAC4AHABz
dG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWZldGNoLWtleS1zdGRlcnIudHh0VVQJAAMwHWpYMB1q
WHV4CwABBPUBAAAEFAAAAO1cS3PiOBC+c+InqOYyUJWp8gtD5pZA2KJqd2Hz2LuxReKNsVjZwOSy
v31bsjEysmUIZDO1pcPUFHK3Wurur7s/p2Ayun3AdIPp9+9khePR7T3+e42TdOjFPo4iHLSe4hBW
JqPbkZd6cy/BdZLoG2q3OksvjLuoQskncYz9NCTxMCIJDsaULIdRiOOUKaKO6Rh923H7Padvm+6g
q9jKmxOaPlIvTjy+Ibc8abxJJ5hXbrfCdEHo8qZq19Nu/xteEvoG0ree/xrGzw8poUecN8j3HhYu
muE4AH3uKZAWfOMYziC3IxoRds/tdbry4fcGxHiIxg6icmDaMOquSGF5g6fzv2BLvjQm9E9MExbu
Fy9+xty7Z2qDXumePlmuIpziYAoh9NjaY7jEdBxSiEfH+NFfLBa9Qc/1nZ7RvbDtVea0RsuDi1uG
Wy/DdBpn2cMe78P6SHY5lUkJivkpBHOQeJi57x77hAZVz70gyB8K2Xr6zlIeVtxHbV5VVg5OIwDx
nXe9tPKWhql45XEYh8kL/jlk6z0bhMHstMoYxhvyigtI3MSBoMQB0lGVdaJQ5MhS6AJeggjvPhdH
SOCojy+YYuTBP9MZWMbANAcOyuHL8noMZsBduyDv9tgV6SpwVUsqnlacWFrqdMXKEdie0VU21PzK
3NhlPNPru0bhmdO2mpHVCkqfF6MiilcoJluUqmw0nXq4phRaUWFJoZA38Vwj80qhl40mNe0/C5dY
mlsPf/wKcJEK9jNOp/QuAcUIwLPbYRIvCBjYNXGwVKMuG0J8CT6hRRhh9LX9FcFhgzB5VeNyJB9Z
LNCskUuKVQH9pykJTZsnYR0MdicpbIDgVByPWJPL5qRdq64QIXF5l4e17+MkgaN8Q34WT7TJ+iIK
E3EisZ2+xTYstgLXrbzUf7nbFHOl0Izta2jGIuLZKFd3OT7mCRhGnTb4xnENq29cu0a2U5Xwu8A+
536umzal8e1SeO+7H493wcaH4Z1l1B7tometBUSqDvrMuSU8Mk2Ycg3IsV6PjW5nVgIliqcH1i8T
VLtvWp/ocN/DhqrJg89oWppyxUlSzVgo9lJcpyvzFcNxndrQz/FzGAvqk3Io3jvd1OTLoTXlcJFl
xok1dX9O4QOYGTKnsQ6zz0q0DdOXoqKK5dQyXbTnhWhf7FiE54ALbLmm4eFBz7fsbuv4wGa3LY39
5c87h0it4Wn1TL0A/45xgIOjWoIxgEqEtxXrP9/seWLjEmgPx4Iw4oNOp43aXZkuHkpyN4vcYLWG
YnYTBJJqnmezuuencODGYzUS2qp7nPE6QByYpK0bGKskr+Cnsqz6NdRQUqipKVUpADyUYX36sEP5
ZIRMyzadnm3ZtuFYlnMU4xue6xHU8b0omsOBG15Dgc1hVWRrKuPw8llQ0q4yIWZmSbgoGkUlnsbZ
y7OLQmWHzyaEiDiW1tTxK8QU/b8QUedvUS1q0vYVv939CJM0mcTl3IUHqH2FCF9ECV8VctdyHUPN
rO5Z04GNKP9ftZVjug1b8Zc5zYcy3fqdindCR9zNtoyjcDk7LZwiCusxVVvfz4bSrCJzhd6eE70T
cXVsz1xkZyq1OjbwwwSbEFrX7Kb1EudgeG+4CcXlI1asqkMvCCqnnUJIjWbBHcUk6fPPWX+B3Eeg
CmQafWl/aWWibPSah9xZKCJbTHn+s7cbMCmhNTDHYuXMnCuglxlmoNuwv8jwQXFI1pAXAswY8q8O
F9ACQw7B5pSDNXnHHY5B7vT0AB6HXkXCno3faXXW5r5OcPoLTu9xso5SYS7nte4zkH74Sk81JVRK
/I/Ga+l+TWWn0iH1D9U5LMsrICLLqkvSSFJQtvJyEOs6sH3tDtT7PMXrBAe3EZmPwygfEJIzIXdM
4Rid6/tTRvFRVRYoX/1+6Cg+UmXxZ4zil2Gtmndq3ql5p+admndq3ql55+fwzo9gjuflseadmndq
3ql5p+admndq3ql5p+admndq3ql5p+admndq3ql5p+admndq3ql5p+admndq3ql5p+admndq3ql5
p+admnf+p0i/3HSZ/fJHKZLbMIqG0m96tJXf0pZ/6udkafF7jGRV+h6pa7Gf3CkPm9Lv8oCQYdRm
j/L3fcpbL723OebrkzwVynbM654lOTI/c7v1L1BLAwQUAAIACACICyJK/rUeU44HAAApaAAAQQAc
AHN0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtaW50cmluc2ljLXByb3BlcnRpZXMtcHJpdmF0ZS1z
dGRlcnIudHh0VVQJAAMwHWpYMB1qWHV4CwABBPUBAAAEFAAAAO1dS3ObSBC+++SfwFGqSqp4CWTd
bBTvqnY3aG1n7whGNhsJtIDs+JLfvjO8NDAPQCBZVZlU5SDUr+nur7tnwGgxv3sE0SuIZrNwB4L5
3QP4bw/ixHICF2w2wLv6FvjwymJ+N3cSZ+XEgEUpfZaurxYDyxttHT8YSxQmNwwC4CZ+GFibMAbe
fRRurY0PggQxSiNFl01NN8yJbmqKMR1zRDmrMEqeIieInVRgfSVeTmmVKpcg8PzgOdUMqTFduqxP
r0beiqpoB6J1GG1vafoI8oM2fLG45tqSa3bI8tXj33/6CZJ557jfIddjEkac9WKXkMrtbgMS4NnQ
agdde/K3ILr3IxiakfzDXK/Xk+nEcPWJPCa4d5mZjbxTCi/UvPUTO8jcj74+uOIpLIKSUWGMeMTI
Lwn3UlRys60msCE7Pd9bdgn2bOYHr+F3UDrsNvAwptR9I14OhxzG1O8V96DsIYTQrPpJXBuNKxGE
KTfOsuceagyjd7h2gPKmoC+SixZDOiXnW4qFDQZ6mpMayPbcixN4GzBPlTWT5Z/LOMXQrqcXEAHJ
gf8VfarK04lpyFKOgKtuopbhbgcx4gRSGdBPUhC+SQlPR5PV1j6KYJUoNXEY8hKVc2ReKfmypGcU
tyxceKXh42NO0p8kRT1FK1KUmoOFJaUOSGjjHWk2i/LWVJRECkkYVKU87l0XxDE05bPkZs6UoL4Y
edGP8Uqt6aaKBJaiPD/eOYn78uW1bGYY4LSbrGSWcEPdk7W4tLNiAJJG19A3uiGrpnxjyJkkGvFR
SFulfmY1eKKtDQU20zg92DAdJwMbyqgD1HDPqmsYKRbukHNxFKWcMvoHgDlBDZYLQ7vGPkxUNFNR
P9BjrgO4644TJ0r+yeBoQSOeAXdWqIxiEXASwOIlBzFZN3Rm7Fbg2Q8w9kU1FH+BLYQ4Mb/VuT5k
nBgkTRRlqpdpwi7QNl6Z2pXngznYB2iBhcIHtUnFUA/j9eYnL2VxxiuzqhjSYfSWDnUT5doKIUw1
FNkB04mrauOr9ilGmbern4tZiOgy33bPkeOBrwB4wGvVXeQpLGrgjXL9iK6DTcQpDuzVv9A5Wd35
DLuLdE2Z5+uU6cIOHwuKReCBH7SdyOHbfpzD7VDqK2rcrNBc0G+7xRbdsNUh6Dm7HpKWv7O1CAZG
CaNlj+OhgEj2YwHJxVxSVE3RJ5pi3mhTU5VzcbisyuKgiK/gDRMLi1wzy5cffoxqAml3JdfeIriZ
xngfEcK5lfCwC7T6Rkkauc5ms4KrGPP7E9Rp0bKNUVqt4TOzwk1TgaOlQlx2nbKU20F2wHEC+KZl
oR1wywpCu9wmkBllE9ByqjYQy0i54MJJWDWzHZ5S0k5IalpvHRgdPdkdDGUEuTCgd4qBAEDkm0h9
kfoi9c+X+tkZbyUYb/5mYxFHu9e/6nF2A/yoTCwgcoiZMMqYSrhxp697P/Djl7bjF9WaNk7shDea
luppgGKaxtHbdQ6GadlDYJECAKrV1wwaOyJuZpBQWftowCugfHlHDDWvYJteyn4bLSY/yb1dJyCq
7OetPFuLvfrRW+mEEzf6sUCFBOp0VhsIhqYaUxLWEoVqCVR163noeBR+fAVSwo16yNnd7/YoczyP
YMrPbZbY978co1/03bRHZqe51j6Kw4glyq5QMApCVh1/RzCBec886cR6DDU5uBWPxkFWPA3mPK3i
gQBe2YOh7ozi9w3bLr/5vjtfFGWxN5rBb0gccX3WPti00oX3smo75/kOVMGcyvRQO2g/+gC94UGP
RsVtT/g/8BDrsmKJPVhxsqjy50JoQaF60fbO2WXdTklj3jAspjTEHFjnHHirVHTRpkGG2W2FAHyC
aBJRnTUIwXwYlGScm7WYiYT0htK57GgFo5BmD6U8pO21haGUgolLoK2DzQLcMOprPyzsuZzjrD/w
nz/CJ5GO5SxfPkbIrcsFUR6AbArfReGrjyYzZwMTMb34B3hvRdM2r9u0uGWH7G7nbfw4oyHZmxKb
3V+WrZO6KWN7HEaeO54tQtTT4f28Kfwh/HEB/rCJilu3l16TsyuzGXGJMoJiJQgfgbCnaPIzvS63
IjrV6+7FWIjvKd7uPhjgKjqc3677/71DU+O8ABKbfRDZ+67g8Og8b/iEN4Q3hDfO7w2bfrSRjwYx
SH4DyQOI95sEey72O3iv3Z87k98Ku9wwSPxgD+73QXZoNkrCzCpykX6CDACMwtvH+RXJTSdDhBn0
L/iNtkrL7uE1Ov78uKgQM0ZIn0aET5E5gVQE4pOkTAx1oqlTyQ33aNprmOojsAYwAQZpkG2mm8Wx
fq/NOIxmv+CmXW/cLpi5J6AroCugK6AroCugK6AroCugK6AroCugK6AroCugexboDvo48mAQ7vsU
08meE7mA+5vDQ67/zbMPuIskToNFhxQdUnRIAV0BXQFdAV0BXQFdAV0BXQFdAV0BXQFdAV0BXQHd
D3zY8+jXLYnfHhAvaxIvaxIva2p4WRPzjffkr87UZcVJuCtepoS/szm9ekgBQ0U/51JFI/GbL5BI
lpnx5v52TFX01nlfgfT6Ii9AVT3KzURtryf7WZyh/PQ/UEsDBBQAAgAIAIkLIkpDEsGVFAgAAP13
AAA5ABwAc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1pbnRyaW5zaWMtcHJvcGVydGllcy1zdGRl
cnIudHh0VVQJAAMxHWpYMR1qWHV4CwABBPUBAAAEFAAAAO1dS3PiOBCu2iMnfoJqLgNVSZVfGMIt
IZNdareW7CSzd2OL4I2xWdskk8v+9m1b2Mi2JNsBQlLRYWoKudXd6sfXLcmB6fXVHQ6fcDgeB2vs
X199x/9ucBRPLN/Gnoedzg/fhZHp9dW1FVtzK8I8SnSOup3pjp+zpZ8Evo/t2A38W+w7rv8w8YII
A7VqKEPdMIcDY2goxqgqaTdzPLaZXG7CYDXxXOzHifQyT0UR65OycF6vCZlfq0NvZbl+HzEMWcOq
R3HSdcPos5zh+k/BI56tcWgljC595z60/MhK2d67Kxz2+rQZDuJm/pICgSI3bgiS+HOXlu94OPuc
LykCkfdLHGJkwT/VGGnKSFVHBlqTSEhWdwNigvAFvIw9HOc8spjc+e8+yOOBSSl4ytC4MtTro57y
c7hYLAajgenoltIXmmu75FTYYSwzGJpKbpl2rG6D9RocbPko9+IZ8oNnFItk1Gk92YQhRHQuSTAB
SBZBuNrOIFbJ55HAc+bMmcRdV5b9CCrdQSjgzt1ff7hxQkWPjscPOJ6F3yKY6LnRMuMw9RcBCMgw
AiRxplcFoXQIPqGF62H0tfsVgbKOGz0KVuq4znVVZSr+7AQQKhNZDv2vLghVPQ1CXhpkmuQygHBG
p/54HG4xIFitE0qHQRL4RS53G9vGUQSqnCOb+BOBvChxpBvRGKkbQy1hmLMC062t2F5+e8qBcLca
W79Q+oWMT2CKt7gUwqgcRr0u2MYwFW2oXJiKUkVGgaFrk32e2pmHpJVScqh8H5rHz3dKxtHyPYmo
XbbTltUW4Cle6ifGLeRjMhPqrgIxNhiMYOaeSCDM4llJ+mGcqg9V7YQGty2cGJzLBmwWxn+TbJ6A
Eg+YKvU13VOIrRjz5lY7KMUwDa7r5/jB9anpU79JBSjP4hX3pp0VB1VnNJw0w9SdbOoDqDdJjJZU
mF1Uomc3XuaISsOppppo11iiHdglHp5DXmDNVBULjwa2pvc7zR1Lagg1kKpZNiSrNPxYP4SWg//E
2MFOo5KgjACJ8DNj/P31ni0LF9X+p7kwm/8DriLQdQ4FCnX7FTtXKFMz7z5mFFPfwT8ZfqKe7jez
8Gxrg9xYO0MXFm6MlAYrmvkkd3gZxTRBkWWWSrUKDYqFv8q6EiA13hBs8aq0HDDLsLkygQNjrOix
nMQhaHaXAcT0GqmarhoDXdN1xdA0Q1zObnlKtLQI6tmW581B4b64HoDMCcuzHFCdHD4KCrNZIujI
LBDneJOD+Mwn2/cjpEqags2SJM9W1nATRxLKuqDeUjUJZ0IqDGQCQOeIDiIqdPWhYZwhQlQa7uTl
EapKFIQk8kEYAp1gh4C+dL90JuQR1JO5m7oCecEzDtEjfkm3bAD/aAPtcD6y05ZMHY8t5yk5BEnr
1yTYAMRTimiGopyVB9ACQzkAH4fYDkIneoUWzbO1pXvbZ2geVsLcZJeKA2VlJQlkPsp8lPn4yfMx
WK3cuNhaP7ueN0nHxRuY/eXWQkBZiwIQVB7WxAtZquhGobxm0alphgnMSTx0EBO3U5fKGSbbJtZo
lTgsKcUDB3U4NI9wGjBhhUElqRiRzNS6y6GZhZfzIKyJ+YWb9LRZTr6//XTJKtSemnG4kCxme9Z8
uYhxWDi8IEZJC0R3r516LPAb+wykQIKzQ8Y6sMgJS4HC1AREXTpOcoALH58wioVeDwSHB+tNEjmO
U5m0PaS6pZ5/uoluVkDTYkfOm0nfwGM1K1BwAOHG9cHPvyVpAnHPPUyligUzOISIx5pRRTwdYp6F
eNiHkQ0+4Elp6+WzBZZAXcCKsdgL3RQXJAG7fdZ+sLajzdz3he18jimCQT/JP8t/reVrWp/LWsFt
LhE+irl3bdfl0Qwvbt1Ag0z0tOn92YnaEQ5+3yVXJTX9XEpTadXKMw+8LckKXV2vwS2IkgFd5OtY
FNuBCmNxGuRkgitbSkXJ/bTcKV+L+VOEQjzLicRVKu9NhS8lfd92PGH6f/cMkZYfReWzO81QzRpW
6fkY8EqOvQScVJPPyXKcpmw0XVN4bDa+vcT2I3bACGkH/jvwOkc9Wgt9aPYT/r80ZpJrBrO6pxTd
1PNNirkMk+P6qhmm0OdRHyCwZKx8VkiRnpeel57/FJ6nTiTfw+VsEjtn5YE3upy9bbdDoKu5ZL8n
+1n7/RMtgn8YQx/efwCSGf8KYe+L+VvG0Qf1Ku72rqzlXX3Ti7OF0j/0Fbu0hrSGtIa0xttaY8Y+
/902NxGOf8XxdxxtvJj6Y4a0PT2F3TK97MCH1m6Db6BbJH/TEwdEq+oioV0DBTCnDO1j/ALnuuPz
ihrsB+J2oUjL70RKdOKeeVog5rTlLpuoURdsqEaxC04GKl1w3Z4uxOkMsZprDlWmZ/acKEoaL8uD
nYLzgpZWVFDSHGpvouR+OX34JTbob6evjdlCI/1ZHf45leTvEqZChN67xE25MC2rnKxyssoxU3WP
FHyzAiIRRSKKRBSJKBJRJKJIRJGIIhFFIopEFIkoElEkohz8r9sOhiz7vnF/qnezP+SrNfslwXFe
zDnayyHHfNtC3hPKXkL2Em/VS7RaYvvO40RGkfeEUkl5TyirnKxyssrJHbNEFIkoElEkokhEkYgi
EUUiikQUiSgSUSSiSET5yH+N9eovaN7P7PLrneXXO8uvd/5IX+9ceBrFwVr0E56c3zJtTc0VSv8y
Vjq6iyRTS34ptpidlR+2BSLyI7TMsBH+QG6R9cp6meN0fLoFpKIc9WKgNZdDfm228z9QSwMEFAAC
AAgAiQsiSg809v/oAAAA0AIAAC0AHABzdG9yYWdlL2luZGV4ZWRkYi9rZXlyYW5nZS1wcml2YXRl
LXN0ZGVyci50eHRVVAkAAzEdalgxHWpYdXgLAAEE9QEAAAQUAAAAtZK/boMwEIf3TH0ERnuI5AoT
EFsBITG1yp8HcOyjsgpnamiUKc8ek0RKVAhIlbqefvfd5/MVWbIBewAbx6YBzJI1fP9A26UCJVQV
qMUOtasUWZKJTuxFC8+S3tJ7WRT/x1O3fGoQQXba4Aeg0viZVqYFl37lLPT5Kgx4yBmPhpPunXEs
Rym5NXVaacCun/6bydi0zwWh/m5y7Z91ILXQSL2RRc6gyAPJ9zmnY5+h8WC+4L0BK3rQG6qtFdiK
C3ara7CETiiYicZcW3cADyuUveUAMmZ1GtQI9Qg7hmVZBlGwku5p1N3LGVBLAwQUAAIACACKCyJK
vTNDbOUIAABMjAAAOgAcAHN0b3JhZ2UvaW5kZXhlZGRiL2xhenktaW5kZXgtcG9wdWxhdGlvbi1w
cml2YXRlLXN0ZGVyci50eHRVVAkAAzMdalgzHWpYdXgLAAEE9QEAAAQUAAAA7V1Lc+JGEL7vyT9B
R6iKq4R4yb5hsCtUKoFaezdnIQ22siARIdu7l/z2zOjFiHnqBTKeVKV2Ed3z6O6vRzNfDzuf3T1Y
dugHv25vHbABIZhZobWy9kC71q6+zGd3U9/zgB26vvfkP4LgDQQsSc633zz331cAZdKnt7fEo05X
6+g/x+v1emgOR07f0rtQs7O1XK+rURp4sTxnA2ZRZ2Kx5PNiBwILTWYPx/X0AgKgWfD/3sA0dHM4
HunaDniO6z1/KdbU0t/tgKNZnuanj3/TPP9dC3l9iEY9fQ0C4IVZTxwFKLL2g22iEVsl04t80HFW
VM3YXXeW/QMO6RGGAs+ajuvMSHnM+fbG3wNCkWbN/0QR0OtHEcCKwXQkWR9QEM7Ym919BbDdfXh7
G8R/mfrbHZJ0KCK+l2/l8dW2wX4Ph3Kt2bExNdjfHlnR3UMn6uP+YDQeDuAfYwM1mDXluPudFdov
929ICZocn43dv9G7SDyDGwwUjzU59B0OIK1zBW0zGOnGWL8Z6XFLNOFSSFtFdqZo4i0fhlkX2Maj
5sGG9dEY2FBEHaCGW9ZYQ0+xcIeMi6Mo0tTRfwCMhybS5MFwcaRej1f6455xRovZFuDOex9aQfg9
huMUDuIZPAWWt7fiuCQUDjELE1MArBCwdCOQXePw1gejAdN3K/Dsepj6PO+KP8EWQhxq4E9JLVrY
u96b/+Pgo4nnYApP7hYEHZ6BfI7igxvAFFhLmPR65iALE3aCXuCZSS49H4aDfYAjmCL3wd40J312
pb274UuWnPHMbPRGmp0NSTvkTRRrK4QwY9TTLWAObaPf/SIfYvFyhD2IhnkUR9RV5tvuObAc8BcA
DnCkVhfdhEkNvFOel1h1DvOLcbBY/QONE+eda7i6aFddYmaEZDSxw8dUYu454CfFMti3xHdJ7GRB
dgjQ3PAHpi4xroUXxxwrEqkTyTeZhqBwQMP82ks2TQBLYFM2HimyjHSUZldCgZGIaDFgOcgh2uIx
BdZ8pvWMfm8w7PfGN31zbOhJc3hbucnBJv4C71izMFWJVe5/unuEbHLcuVh7D9wQ131EOOXmM5iA
lizDFPSS1rGtzWYFZ9HlrzKwzykt2hgJclp/ZOa0aV3gaMkJZ2tHlpAX3nTjwrTSAHyjtCAH3CyD
0B7LODKWFAEtkZKBWCzKBRcuwsqZcniKRAshSTTfY2AUtGRxMGQe5MKAvlLUBAAi3s4S+v5264b5
9fjd3Wym0XP+e0b1foVoOx5FDnPEl4J4iafKAR0xZ94hRQo/qhILiBxhJoxipQxu3CXowfXc/Yvs
GkQdjYwRC+GN1kt+Y9ODm+LSOw8OhmnRQ2CRAgDqqK8YMotgsvIDAVTWLlrlUii3b7d0ZBXs/Z2y
dUCTSQ6lJusQBLmtyTSJ1nTbUXpXEHL8Rt/h5ERgn9ZqA8EgyjGZ4FGgUEcCu5o4DjrpgR/fgBZy
ve5zNiq7VxQ5jkMoJVvQJfZ9aUUGMOIs8TsKF+h/5uEFlmupRuIin6ZBIr8PfU9DPvDgk1cgzE3y
OaLw9OkdHiU3TlOUyd70R/zEzGmuytxrW7WL6LYrx7FbjJBs5VbRo7Oz0mdi/DeHibBj2UO7M+5o
2+XLw7vNpDGv8t+P4AjSrueyh+HtOiGNfC54aYpkiPehY82atwzpwida0JkLZJkGiGd892diHN4h
E+GnhyVvFIzMEBOnX6P1ggJv/GvJebBbAbYfMAcCU04iIGEISh8H/aQDtFeGKoH/5qI10dpA80QP
/wC/pC0pYTWZ3LIUG6eAifG9VGVrc03JxvySBZliRx0yvqJkkyUFlxhPkWw1ipyQFPJicTcV2Nas
9cpvYM36rLg/7oPAL3peVcVcFtpez+BmwH+w3A1wkrYIOdeDe1EYbdF2nDzRktilV1mdolGmFoML
+dTybLBJxrpn+dE6GhS92bm3DPznAILgsMDjywLRCj+kI3HeG/GxpSSOwSY0HVa6Ysuy32GRTkc6
Q8YpKIAf3sC9FwYu2P/thi/frc0rQFlIYskR9SGvXOmQjmpYCf8WOaKj9XF0QmeY+sXXBkxEYExl
iDdfem6pdliY9cQ/m8OOr1GdW85tw5uEmqdOmIiFZWyhKWon3/TW+rUC0fN5kuGO+umPdPl+ooac
ZirP+LPKB/VAH5iCCh1qKw+Bv42XNhIoA13X+eOJZ19+JLG+cAw8moPbVAc/seoPBt06Tt1EBYGq
rK+Osr42FKkZQ8Nsukit8fMuVQWnquBOXQUXv2LyCm+oEi0oozs9r1Xbro0wqehsUOyl0oV7ZNOC
o2ZCnrOfIGX5+7kZocA9PBPk2VhIvghoVtUURXY/M5pLufc7Gq2Om/FC8nzVcVWLW1V5qipPVeWp
qjxVlaeq8tTPy/nSWpdlLwsxtlWo4XKUbY1E5QfmfEWGKcsJN2lKCY6xeUL1pBRmCUpZjog9IS2s
OF/F+X4mzpdoMmZ3sbz34OdL0eOg+IiMccS3fYVBBD/F5wEO8/WYyS4rJlox0QQTLWBy4R+mWYbJ
LcB1FxhM3zBF7Djlbkq0WFFvpqBFCn4+3E5RNG1XXGJwtp+TqXZ9pXVgV2S4IsM/ERle+tLV5dw6
Ugy8YuBLMvAn4dFb8NM5ioFXDLxi4BUDrxh4xcC3loE/Cw1Zcw3AGW+wSnBw7EuuDVNtFfm1Ypxv
o3UYjVN0bbuIWI7FK0JL1RjgFYO5YpSevkaHTzmXuSlczzFALWBoY6VQNehJYPscpUhnzwCtIull
CrNOx5yf6N1LkewXQ7Ir9vxDs+eKrz4vX/3BfjXyg9LGqipAXd5WfHX7/oWRxk9lq/DViuU9Nct7
ORUCn5yvPs1Vc8VXK75a8dWKr1Z8teKrFV/96enms7Jxl3gxX7HPl8Q9yVO46qcY1E8xtPrX89u+
GEj91sGnS67qvrmiwtV9c8WYq/vm6r65um+u7pvzCJELuyWesw3MyDsex+jj0Ri/DmyAU1wap/+i
Hg/eHhkoCgX/0gAUin/3Xhpso97N0KhxvmecwRm7LmYjpqk//gzoX/wPUEsDBBQAAgAIAIoLIkrT
8/bhTgkAAOaOAAAyABwAc3RvcmFnZS9pbmRleGVkZGIvbGF6eS1pbmRleC1wb3B1bGF0aW9uLXN0
ZGVyci50eHRVVAkAAzQdalg0HWpYdXgLAAEE9QEAAAQUAAAA7R1db+I4ULrHPvETrH1ZkFopJCFQ
3ljY6tCdDm7bvfeQmDbXkHBJaHdf7rff5JMEO84nFDhXqirMeDyeL489Y3c++/KInTfsjMe6oT8Y
luG+/KpaumlYz39hxzVsa/qiWs/4yVEtV9U8aEB3qHMz33e0t9iaffmG/9lh15uqloZNE+s33y0D
WgBupnrqSnVxHiTH1w6+lIjGY4DUQYaLLXZUv+XJ2GDnwXAAvCv8GK7X68FooGjySOj5fR+gn+38
BC3AJvZwPGSMempbFg4wP9mJvlAhGd9SJkQ0dXtp8nRJFXrQs7tRDauHKAhefF3Fs2CwYrDoc8IU
F+h6esEORir89uWRKIwGQ0VAEfduqqFa2tst8Fe1kB033yLLfkcea4wiqqc7x8GWl4zE6AAga9vZ
RD1CriT9Ahl09RW1ZyiuL6r2CiQ9girgm8c/fzc8HyrdOh4/Y2/hfHWhowm+IsYwt9Y2DKDH8u7k
dScHQkETfEJrw8Toc+czAmJ1w31lzBSc1YwkOaV/mmm7mOhIE+i/RUrYlwIlzDODmJJkDABcpA11
PHYii7U3Wx9Sp4DYVhbL407TsOsCKXdIC+WJ3kKHjAwX9EgYSrIyHMjwZyj6CBNUwLqt6mkvX9/8
TiD1jMVL9wcW7zuVvMkFDidlw6jbAd7IiiAOhXtFCDHRgGsZ+yrgc57fiz7tyWzL3ofK8e09NcbR
7N3XqL21pzkrrkFSeabvMzdjj35PAX5AxwYDf31o6AmYVrw4GL0doUrDvviBDNdU7DM8Fw3wzPHy
witSCfcqD37NwaqHWaEZ/Ka8gyArcq7oV/jZsFLd51lRUHoY1pv9uuf9xNJT3YMYo5urL4ejMYOL
UDMq+tQ9nakPMMzUZ5q/wuy1Er0b3kviUdPuVOwrSEtIQntn50t4BXaBRaUvqHg00ESpd1NesJQo
Lfs5ZgixNHzfPjuqjv/AWMd6qSVBGIEnwu+UdoZa2gyxBqFjO8bZ74/kxDirL1z7MUNbWKz+BlGF
rusOFijU6RF8JiADNu8/xhBzS8c/KHJKfds00mbTtbBCC8izC+pEsihjgygkaJBdvknUhJgLeJqv
HRTYHJcUe1iiQ45ToemAqvsCQYvH2MznM9QXpb48kERJEmRRlNmL0jKPiIocQV1NNc0VENxje3UY
c0qTbI5rnLavBZnetCHSmpkBTrxG4ooX1tQ0wISPYCqBCZYzksRaac1lBBlCFil1BFVGnUNQpiKH
DugOpZUopbrSUJZvUQh00HyTLHKwNri2E2o+DIaAJojz0afOp5tp+BWsCisjEAUy7XfsoFf8M9h4
gRNHOwhqk5Y9tWHX8VjV3/yDh2AVmto7cNQpQkRZEG4PG9Aag1MHGTtYsx3drUFFeWutKN7qFpqo
FdM26UtFS1ZJGMGH2KO92RhedkF+N0xzGrSzw57m4xa6gEMqMo6A+LJAX8KpMjwBMWfWWUvsE6id
8rwDG7gauSmboaItw41KhkMbJbtN6cMOufZ+g2GMNDUgjIqiyVSqOzkwC2eysp0CnV8b/hoa2+T5
ReEHXElF4pQtiT+Z6IRqsvawk9nyhEwJFohOo/jeY8iNvnPKgOD4aKLIWSSAB4pCpQSGmui6f+wD
H98w8phStxlbju3O1xxdJzpFW9tl6vvaHXMMo1ymJ+00qUxiWj6tB2n5EsieZvnYgpYdLvRN5X1E
vURXkXNjoKJM9l5S2I6Zga7J3Ftbfqv0PS8fl48xsGSIq9o/CSsIASaFA1c5SrsUdu/Dj8nRGM8O
YYCCeOh52dPnD1qWc/z3o3/QWBDXBDBEyHLYs+XwPF6bitbc3DWsDgKijS3+BIxx0M/CXmDVy4pU
MDOl36KFxAn+dm5RGFEg9/BoQJT7SpkJsUcLdugwnL/xZgzWV2CwHEyqrpdFI0qikIdmZ2kvWHvF
OrAz2PD+BrjuUDdNhTRUej7+X0ojSSiDXp3Sgizjy5ZHEOd1yqqcWaQ3mJX4Xx19vpstEUkv8xxZ
48OeJcUTppJC0f6r4vlP2c3YWui1fWxzVG58dRzbOSEvVH/HP4P9if2gGibWI1wEnGHB9thSzeCE
gDwtK3Fw0ITrAZUxxyBwCWvGIlrdPK1WD4iio51bS8d+dkAF9wFNerkksLANMwBnBemHnCpxxDah
9clzhVT8ZYJYWscSc61ygkYb4+AATRwJ9bcpFxL1TooUM4Yhol66nTU7y0tGYh+dpY6J/Zq0jNgG
935GPm/ChC4sQw5NfTxZ1Bv15woH7fPI2g/GkRSh/DgBIv04VWLsWWWVWhbkUUE5DBXLg2NvQjdP
GoosCAKbnnD29SkJ+xfSwEonMFF10wdKkiz32jgUKyre4yV4bZTgnUNFmDgQR3UrwqocR137YsTr
045Tn9YkYxTujFmFMVSIMygpO31mqLVNBsHSoqO7YinVLmIjURecBBPwjJCfhGVvP2ZEB+aBTlbr
8s5hpHtlxMbz3dpB0PDFtFcPsDP9FhXdlNnKzJpyr8qeZkbTAuYNi6MWvM1YWvxxBW9Na0N5dSev
7uTVnby6k1d38upOnsatlcZtMaHXSka4St6vfkL4CtO4PDNbwP4j51l5GpencXkal6dxeRqXp3GP
k8YtSIPCn9GoThq0QqK4AjGSOCpKLVPuXQQuknrrwneN8Hl/84LnOHvF+fkPezel2dWMJsZ+lHdy
NBBZj/KyFX8R5vpehKl9m6bhUzLHuY3Cn6E562doeNEBLzrgRQcliw5OUjpwBi/n8KIDXnTAiw54
0QEvOuBFBxeV5Gy57IFfeT3lldcT1Zu0lBPkeVHhUkp3KqVGL7XOp3pKt35WW+oPxDpZ7XoVCA1m
VkoikiKJt4cNhEROxq0zKcaqmNb/iJIunvzn3GhS7ne6+oQTxdy8lIGXMjR60pEXD5yieODCnqe8
0Bw+L9Hg19D5NfSz/ccktf8zHk/enjp5eyVvlPI09GkuzfM0NE9D8zQ0T0PzNDRPQ19+Gvoss8g8
+Sic7HmCKgmuCgnR1vJ1jVOo/N5mRR9zzc9FtJLmrJfnPUbWtpni8rczruLtDL4Q/+9fRzjDNY7f
xucpbJ7C5rfxeUKd38Y/z9v413uHPp2Cs7cZaSqirxsF/1oAgMKH7kubgNK/H4iEhKLRO8wyiVhs
4VJoYp2J5gOnVm0G1aAvX2KXP1/6F/8BUEsDBBQAAgAIAIoLIkrmA7eURAcAAG9jAAA1ABwAc3Rv
cmFnZS9pbmRleGVkZGIvbGF6eS1pbmRleC10eXBlcy1wcml2YXRlLXN0ZGVyci50eHRVVAkAAzQd
alg0HWpYdXgLAAEE9QEAAAQUAAAA7V1Lc+I4EL7nlJ/gI1RtqszThFtCJllqagOVZGbPwhbBO8Zm
bRMml/nt2/ILGUuyDGYhE6UqlULubrW+fglJVsZ3t8/Yf8P+cGjZ1r3t2sHiT+Raju2+fsd+YHvu
aIHcV/ziIzdAZggN2pV2eTHeMnor7N7dPuF/1zgIR8g1seNg65woKOWHQ6CyYHSTFfYRaXmxl9i/
t31saQ39pzGfz3uDXt/sDvQm4b0HPs9/B3ywg0N8h0I0QwFOQRh5rosjyS9ehiSTUvD0m2uD0kCT
tg6HhaZGk1bP6iC9CZyNJbLdpsYQsCBWxHdRZ+VkyecMlAD0ellgH2sIflvdQVsf9Iy+riXoXVQT
NfVWK8AXuZqXNv+hud5GC0V9lGk9Wvs+dsOsJwEDkMw9f5lwxKhkfJENGtaMyRmb6xaZP0ClZ3AF
EZoQQ3dFesr4puMFuMDIQvNXmQe0OpEH8Hww1STrAwgndIQMh34SKt5yRSgtBonn5qU8r00TBwGo
cqWZMZjaW5wnNDsAI+pGp9s3el34Y7SJwEyUZQcrFJqLL2+ECSDPhVvneifcSDTzBhdFOhVAWuMS
sOn29bahX/f1WBKLeK9Im0U4MzhpyVs16wo2o3/8YKP6OFqwEY/ahhqNbHsOluLFHQGXjqKIUyc/
GBs9kpyFYTjZYa/HKh2j1T4hYibCwnEHIfJDXtkuetHWZyEx+RiFWFTy4ZcKb73b73JtN8Ovtkux
j/OmYHDY7pv3Y4v9jWtR7FGFbjQv/sJLSA3AR0sr9iYAyBN0EE0B6nGTVmvQzdyEn6AndGaSS89b
dagPoMGImA9606y07VLb2OEiS850Zm63+pqZqaRt8ybxtRmJsHa/pSM86JntTvNC3sXicpSbbeU/
p3OhQpX5tnr1kYUfMbawJVVd9AEkNbxhtO9Rdbbji+NgMvsHwInzzhVUF+2yWRhZgTIa2PZjSjF2
LfyTgQz1tMC5WocT/8YqTl4Tn5hSzxWjYvxcjJXi6pDvfuJ4n7hxLudleGaCyItMU3upQr38nLYo
ulCwSnIVv84xaDllPp21FBg4hZqVW5FFDKJNntOCNb7TWu1Oq9vrtIzrzsBo64k4WlZucCDiEW8o
sdlUQcTy5acdkIpZ1DvnaxvfDmneZ1L/hPMEKOxTHjAVraQ1TOQ4MxhFUzx7gz5HLG/jTDxG9Xtm
jpvVBR0tOeJsTpZNdCbuyLGhXB8hfKO0IBe4WQZhNcsYMqYsC7SESibEYlJhcNEkvJwpF08RaaVI
KhvvbmBURLJ6MGQWFIYBu1LUFAAFfzuF66eFtszvuQVZCVAClICaBBxeiDLR4tyZkQnWnSglC9JL
atK0ohacuvWKXZLS8Ff8/rhezgAMCXU5suK1+ieyKsEcEaMu0iyVBsKSgk3Ptw7QH4ppIkNS+y1D
fa6Q6EacDlp9780m6y/IAXtHjWCog5xR0qv2R7HoUXw0hS50sD9EUqQHwveoCvpX9gihV+2ZOWRc
qGZ3kfYFCbuXGLTMWqWWEUIug50CRYGiQFGg1AqKmiR+tEmi0Ob71uVPFxwqGxwwO1NJQyUNVVEV
KKdNLBV2UiRzi1m+4VIlvUiIq2BFmS2WqWxOkTMIvfly8sg5xm6YWCFF8xFpTrjDWXEKQ4eXEq/E
K/FK/LmJP5NDG/SpQEXyO5Mc9XjOlLGNT51HT95zqnhiR/bU+Zx1SOeQs20KDYWGQkOhodBQaCg0
FBoKDYWGQkOhodD4ndE4o1dMYCxLO8y/Sr2xHWcUtYtfET+839Jz9Lta5DYPCw9LVrfioQo2+wpj
Ft0vk+5pMZl4u1sCYu4+RsyU7XcI33KML4KSfc2RqY0MiJVWB1m95O+kaBlGf+/LJQTrUCzvKcQi
IwCYWl9yaCCvzTy/JFTmNnmRMg3l87voYgcVKp0ybn0gg0ky9s08xH7uVolR4q3pjRF7X+gQCuzG
vpwiRwJ9opkDwVCWYzLCHUdhagJdQRUjl/TAxzeshUKre4I7Jux0eTTZEDW9NSO1Z1eJwEOtkVI3
65fGCSG5i+XorMyEU5gjWBzFHNEBL2HlCOxCyxqXZjH5bLLfvXplaVAgijHY605fnMIF4g4Ze32v
rlbgPa9syJcYxTzK1duaLkgqmWPclHb8MW9Ykpmk3BwNdPFEBzRIux7LXkh2XrdURTdelMx+IprC
xGaXs+a5/yuOS1BZZU7pahFQaBObPyPjW0wovSSiHypqwT3KKK8l6zQdeXDv+V/xO31+kZ5D0E+j
9u/IWeOE3/E2ULzh+d92uIiPCY7dp7SkKfoT08v6oEwafpD1RDmHpr9A8jPYAy8BHLwC88DIIJ9k
PUrlgU+XB6rEt4rfU8Tv3muwhyGpVnD/3xXcz7Mq+1G+JJ3vGnHpqmzuaRB6K+Y6KP2AeyU7858v
0HcHRzK2vtFv693Bzv275IL8XSJd50JfcMtpbKsRkZMXvUTvMxy1j5Nsk++ndd1ry/cTCbIqwvEf
UEsDBBQAAgAIAIoLIkoxRd01jQgAABN6AAAtABwAc3RvcmFnZS9pbmRleGVkZGIvbGF6eS1pbmRl
eC10eXBlcy1zdGRlcnIudHh0VVQJAAM0HWpYNB1qWHV4CwABBPUBAAAEFAAAAO1dS3PiOBCu2iMn
foJqLgtVycYvDOGWkGSWmt0hGzIzxy1ji8QbsFnbJJPL/vZt2djIWPIDTAIzOqRSiFZ3qx9ft2Vb
DK8ux9h7xl6/7y6wc3V5h/9dYj8YGI6JZzNsNb44NowMry6vjMCYGD7mUaJT1GwM1/ysFf3AdRxs
Brbr3GLHsp2Hwcz1MVDLmtRVNb3b0bqapPWyktYz+32TyeXGc+eDmY2dgEjf5ClJ+fqELKztNYnm
F+rQmhu200YMQxawalGcVFXT2ixn2M6z+4RHC+wZhNGFY917huMbIdt7e469Vps2Qy1u5i/JzVHk
xvZAEn/uo+FYMxx/Tpbkg8j7R+xhZMCfrPUUqSfLPQ0tokggq7sBMa73Cl7GMxwkPOKYXPvv3k3i
gUmZ8y1D48xQq41a0vfudDrt9Dq6pRpSO9dcqyWHwuqxTKerS4llqrG6dRcLcLDhoMSLJ8hxX1CQ
J6NI68HS8yCiE0k5E4Bk6nrz1YzIKsm8KPCsCXNm5K5Lw3wClcYQCrgx/usPOyBU9Gi//4CDkXft
w8SZ7T/GHIbO1AUBMUaAJM70rCAUDsEnNLVnGP3a/BWBspbtP+Ws1LKtq6zKVPyZBBAyE1kO/a8o
CGU1DEJeGsSaJDKAcESnfr/vrTDAnS8IpcUgcZ00l/HSNLHvgyqnyIz8iUCeTxxp+zRGqlpXIQwT
VmC6hRGYj9fPCRCuV2Oq51I7lfEEpniLCyGMymHUaoJtNF1SutK5LklZZMwxdGGyT0I785A0U0rq
yveuvv98p2TsLd9JRK2znbasMgVP8VKfGDeVj2Qm1F0JYqzT6cHMHZEgN4tHG9LrcaralZV3NLhp
YGJwLhuwmRd8jbJ5AEo8YKrUF3RPHjYCzJub7aAkTde4rp/gB9uhpg+dMhVgcxavuJftrDioOqLh
pBymrmVTH0C9ATEaqTDrqEQvdvCYICoNp4qso3VjidZgRzw8gbzAii5LBu51TEVtN8o7Nqoh1ECo
5qYhWaXhy+LBMyz8GWMLW6VKgtQDJMIvjPHD6z0rFi6q/Q9zYTT5B1wVQdcpFCjUbGfsnKEMzbz+
GFMMHQt/Z/iJ+jYzc7EEGLywrMykVYTeUt+LiWLizzWxUl6lvlshRAIlaxhKwYLWk0rk+8iJKguv
3jABIs0yLjSFCnXSbXGWdQY+C7AqZwMkS8sp9XHnkpnAKfIsbDUs4hA0Gsflc3iFZEWVtY6qqKqk
KYqW3+zd8pSoaBHUMo3ZbAIKt/O7JZA5YHmW03IM6o+C1GyWCDoyU8RJNU5anJETbW7tIVXCFCyX
JEm2sobLODKiLArqFVWZcI5IcwM5AqBTRAcRFbpqV9NOUES0MdxImkfouXzXiyIfhCHQCa6f0Yfm
h8Yg+gq6rYkdugLN3BfsoSf8Gm5oQHOElnCxmIystY2m9vuG9Uy2CMPubuAuoQGiFFE0STrZHEBT
DM0S+NjDputZ/hZalM/Wiu6tnqFJWOXmJrtU1JSVmSR4j3yMK21RMnIrsmAgGAgGNTHYvTomrPOx
MyHL2XyilMxwLyiUSX/O3ctzCFbhT/j183I+gVXuV93cuwN3ZOMEyqAX/m+eIDes2sjfLNuKJutl
Fc2XGFZQEEkKY45AWQeBHE7QHZdlo6iKtK3l9usXwV1wF9wPmvs+L7c40LZ04DrDfMIWlJGQEMoE
2WulkVHt6m2Ceb+UZpKgJcxq1l/Aylzb3O6hHh1cofmRnCr8JPwk/CT8JPwk/CT8JPwk/CT8dKx+
EsZ666D+OSxebteBvkN3jD6q4/J+213vErbbJgRq3LE4iniptN7atKwYjlV0fKebMPSi32vXq+7E
qRLAdaxZ1CPRAYjniXZ9nmh7H6lyR9np0qOaAVRdVU42BzIGEMsRyxHLEcsRyzmW5RysiYRiQrEj
UmzPF56CvWB/SOwP5B0H+i06QfIjk+z1bZZbxlPv1Nvkq6NFKr7gUvYt7SnrnZZd3k8T1hDWENYQ
1hDWENYQ1hDWENYQ1hDWENYQ1viRrXFAJzLAWuZ2kD567MWezQbheP4Bb7vLLXztfFOL1LuCmS8L
dreipeaduLy55tPix34HzEm85yvyiaupS+3wMdmWsUalbT6WlPSBjHK3q+/htMQBKwwyScWIZKbW
TQ4NANTE9QpifmqTU43inDy88wY3rELhIuPwRbKYFfReTAPspQ53jIwS3mdp7nSSYZDjN/YZkSkS
HB/CWgQWCeFGoDA1AVFQjsgBt/DxGaMg1+tuzuGKdrzPGeI5SawlA6OTEz3JHatWTN2unxsnhW5s
ByzzOwksiBTu8awUvDLNmYsRrBlZjFAhSlgYgR0YWeIaz16tvHy2wA0YzGHFWOy5WvAIZw67XdZe
35FNFeYeFhryOYY5Dx0Y/3TgbS1f0CxcFAqucizxsZh73ahc7M3w+c0OaBCLHpY9kfudCjgHv8fk
8OWCDiikyTQ3mzNrbuQfcFSGiqpzTFcLg8xYvvsTMr7HcrkXZPXHmI5/lnxUqU+5D4FrSlcpu4gy
z1iXWOjeH8M+V3onmwN1PoZdSgtN1tMPg5OBHR+xEzwFz7fleX13N7rro4sgwPNFgAIXrZgiAyW7
USs8aJx9dWfLOfbPSNKfXX8bn33Dk092cDZ2l56JyacBwM/Zn661nAFZeMmBLWty5ofAd7axgt/M
xaKlyt026qOJ687QikF49RZjJXfVS9sJdO3voP1WKFqmD/lYBUsFUJZ9dDJxEetNuANPMX7rlQ1M
gWoCfY8NfWu/ifGR0bfvdkunEnJXR6K3vWNUBCZH4I/3vcW29W2p3SwpbmqJm1riptYx3dTi/rZj
9odsK1OnJMP1xoJ5i4r+gv69tHB0HUm6Qn4/OJ2dmZ87BqLop4mZYZP7s8lp1nPjdYLD8eEKkNJy
5POOUl5O9BvEjf8BUEsDBBQAAgAIAIsLIkoPNPb/6AAAANACAAA1ABwAc3RvcmFnZS9pbmRleGVk
ZGIvbGVnYWN5LWNvbnN0YW50cy1wcml2YXRlLXN0ZGVyci50eHRVVAkAAzUdalg1HWpYdXgLAAEE
9QEAAAQUAAAAtZK/boMwEIf3TH0ERnuI5AoTEFsBITG1yp8HcOyjsgpnamiUKc8ek0RKVAhIlbqe
fvfd5/MVWbIBewAbx6YBzJI1fP9A26UCJVQVqMUOtasUWZKJTuxFC8+S3tJ7WRT/x1O3fGoQQXba
4Aeg0viZVqYFl37lLPT5Kgx4yBmPhpPunXEsRym5NXVaacCun/6bydi0zwWh/m5y7Z91ILXQSL2R
Rc6gyAPJ9zmnY5+h8WC+4L0BK3rQG6qtFdiKC3ara7CETiiYicZcW3cADyuUveUAMmZ1GtQI9Qg7
hmVZBlGwku5p1N3LGVBLAwQUAAIACACLCyJKRsfTirQFAABjlQAAMgAcAHN0b3JhZ2UvaW5kZXhl
ZGRiL2xpc3Qtb3JkZXJpbmctcHJpdmF0ZS1zdGRlcnIudHh0VVQJAAM1HWpYNR1qWHV4CwABBPUB
AAAEFAAAAO2dTW+jSBCG7znlJ3C0pY0EGAPxLcGJ1ocdR+PM3NtQjtngxgskzlz2t28DNm5CA/Zs
ov3QO5I143ZVdXf1+1TRI8WZTW/vmZ/FyY/JJKCIMpqyjC1ZStqVdnkxm956MefkZ2HMH+MFJa+U
tFl2fPqNh3+8kLA5jE4mjaHBUBvob85qtRq7YzsYMX0oPAcbFvKhpgiwZjyIaFpM1m+2fz/fUsLy
zaRiXY9rSkhj4mVYrqm7Y8fWtS3xIORPF+eFeoi3Wwo0xrX4MPyLxuOdlnXN0bdq7yVJiGfVTB0O
wmQVJ5u9R5mVyq84g0GwVHqWx3XL/GexpIWQQlc2gzCYNu2lw/ejOKWGoyqbf/YpwBgVCmjT4GEl
1RzCUOyYT2+/koibZpNJUv7Dizfb3DJQmMS8HmXx4vuUpmIpV5pfJlMT86V5FsNUHKLujCzbGVvi
L8fMA1ahgjDdssxf373mTiLl8m780bU+zM0r3IRQeNvm8s9kgLTBpciNZeumo1/behlJZfxTpC2L
PCs85cjHZX4UbI79+bBJc3wabLmijqjJmTVX4qTauMuTK1NUeOr5HyJn7OaeXRjO37l/zKmMHMP8
BzPmM+rcd5qxJPte4uiJRTzRY8J4ykpdNhyOmhWFKSGWUZtvAdmVjLdu2Vbr2S3pKeSS+6x+FL/R
RiAuPOTRppdK9iF/jZ+PZ3TDA8nhMdxQMuhKUNzheB8mogR+iEwMw7UqmbQX6LlcmU4rz8flSG/E
Crz8+MRsWnAYu9R2YbauirNcmU3D1vxqSdqxbuZaW+aEmbahM3LHvjkaXpwusbIdSQPFMt/pSNll
vm2fEhbQF6KAgpO6i+6KokY7xfhPdJ3j/koO5svfRXLKunMluot2OWzsrGGJQAiEQAiEQF2BpLcH
ixkP6E3RO6RP4QlPeP5fPWuf7Z+bqwfs48N57dHNcvUTKs6cl8/bbU/hyhJVD3l4/O5d0Lj+/w7N
0I1LRU+1bL+LKGxbrmKHm2XDoeUSpqruLMgPRJsvDpeK2VQzzJFhjUeGcz1yHVPfh5Nj1TYnQnyh
nRRWXNP6Xe7ewjS/1TTXXdPaLgkz2XeR31E673Li8vXQlpgzT0kb+CyKlmIXw+4btpjTU6mt5XLo
fbwya96qKWRaasbVvbm6jM65F4XiSvUvxBcAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAI
AAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAE
gAAQAAJAAAgAASAA/BwAiy/KOA296js1VMOnHGRp2Qfa3uoUxErTTrhkk7ZvETmNp8L0LJL69vse
jDMzeT4M1Ql2YqD+7pQPAqChN0gf0of0IX1IH9KH9CF9SB/Sh/QhfUgf0of0IX1IH9KH9CF9SB/S
h/QhfUgf0of0IX1IH9KH9CF9SB/Sh/QhfUgf0of0IX1IH9KH9CF9SB/Sh/QhfUgf0v8vSz/ebMKs
/mvSd2EUecW4ZKr4Vch/f95e2t6vosZc48MevZRb7YCusecrses+/JRObSB2GLdiVDpVuHX+tOR9
yMN0TQFsYQtbhe1JLUhJ6SnF5aw+pJpFvAxLd0aW7Ywtx3Ac+0Kx1JC/xs9U1d0bHkhhiio8GHb1
NlVVbfQoRWNQrvqyxWae3CzjpKeFrML8B5UPLa7jdOKOzRYtp8N3zXgQ0eF9lbZUJPtxTQlpTLwM
yzV11zBcS9v3NUVW0i3L/PXd674Li1B8evuVxIRpVm5m8eL7lKY3q4yS75SkeQMX8z+Rt6/ihZZm
klctaqEBuXmOrvWuoyx1/Wu+QbHi2oRd55tm8fawEFXkWN6Yx7hPUSRSXMvqPsZRrrapW27dxo/i
lN4b6XrrhhqkPJRH4eVx6qE37MeSivHZ/iGiPo9xPTZPn6cIFJyZjr8AUEsDBBQAAgAIAIsLIkra
k3LvggYAAFWWAAAqABwAc3RvcmFnZS9pbmRleGVkZGIvbGlzdC1vcmRlcmluZy1zdGRlcnIudHh0
VVQJAAM2HWpYNh1qWHV4CwABBPUBAAAEFAAAAO2dz2/iOBTH75z6J1hzGZCmkvMDQrm1YapBWi3d
aWfuITEl2+CwTminl/nb10kgOI2TQKejrVbfA4cE+73n976fZ4cKOpte3TLxyMRkEoTBdcjDZPXF
40EU8vvvTCRhzN2Vx+/ZnfB44vmpvEHOyVnvGw//2bLZ9Grqpd7CS5gbc87y97tMZfPly7CpY9kj
Z2g71oU16vXXXsgHpGa4y1xPMyPkj/EDm2+Y8LKILnmgxH8XrpnoD3qzw9rjDePTq69M2klS1+M+
iyIW6CzrR+YpUewFtaTcMB7IyN0oTlh18Ta1x+3p9LVWrkW8dqOQ8bSeUJtS2h5PbiJ4fSTF/M4Y
movaYaqvysOy7cF7KrPiZTLZFDUpo8j9XodCDu/TH85yuRyOhyPfHtNBSzrilkXkxlrmrjIs2P66
DCSR4d6tmGDEky/DHpt0bBhjm+wizlZyLd3E4lkqhEUsLW3sF3qo/V1cakk7suVdTcS1W/2BmqzA
8uhAzuxccu7sbTIzdEa0zMxppm7izUZW2+OkrOInwuMnkrb56Ira3QohaSg9tUyQQ5axWO9mFFkp
5+U16AcLfWvNx155/oMM6VZKgfVu//ojTLNR6t3J5J6lc/E5kRMj2Yn3FmZ8GUsH+/4iPTVMrzsi
+S15RZZhxMjHs49EBhuEyUP7VjCth6zoz8+aSW2irqA/u0RoWLkImzDYR1L6kAPnatuYTMSuf8Tr
TTYy0AyJedXK7db3WZLIUM6JX9STPBbbHQmTyqZpO2ZmsDQlU7fxUn/1+bFsokr/sS7ooEJ81uKa
Fpe3P4Vh0j+TubFH1HToxYjSeldtSXQn7Is8z01duLYNvRXvzuj38674+G28Z4o60K5m1lxme04D
+llyKzxmM+WeTaXGhsNst/rFTtBK8fyF97cpquUY5n+YcN9jrZu8zJlIm47VHScvwbyUtR3Jq6cv
ao/sxtIv2H3Ilemzailee9Jq0MtLb62Hi0IZJ/bUQ5zKhXTjZknLdpiDKslTmK7Kjqq2U9MYkcOh
lByaXVbhheSCmSODemw89E1r0Du+sJozY/V6n5Da1vBtcy+8gP3JWMCCo7YEOpadiD1p7r+/s+eJ
G5fy6JCzMF/8LUtVtK5zuUGRs0Etz7WRMARDMARDMNRmSLncj5jxgP3Q7GTKu5iJmZj5f5356s88
OzvOnBen/6ZnAm2LqprcPwx0BjSsfnRRN1074nZ0y5YPuOtjGx7H9k+XtQkND1S67u4FWUHI/Hb/
iDObEsO0DHtomZZFbdO02x/Ib5qCODEjpO97UbSQAQ86/0jk6irb8Fjovr0KKrN1LlRlVgaXT0zl
Y+icF3+8eIeoQOwQO8QOsUPsEDvEDrFD7BA7xA6xQ+wQO8QOsUPsEDvEDrFD7BA7xA6xQ+wQO8QO
sUPsEDvEDrFD7BA7xA6xQ+wQO8QOsUPsEDvEDrFD7BA7xA6xQ+wQO8QOse++LHiczMvvFepuH1PI
YmSXqHejjpFzMbRVyMVXJc+JKiJFupZj259IMejF7V75UyT+ViSxKJQvnREZk3iekA9nH3pu8VaY
kEWYl4JE8RMT5IE95z+P5fGAbDebw51DtMXUycQLHrMfq8t/K8SNtzxVAzFtSj+9vEGWLPVXssaC
+bEIkldEcTytJ5b3dEJLWbWyqf9S6xtRWYMAPIJH8AgewSN4BI/gETyCR/AIHsEjeASP4BE8gkfw
CB7BI3gEj+ARPIJH8AgewSN4BI/gETyCR/AIHsEjeASP4BE8gkfwCB7BI3gEj+ARPIJH8AgewSN4
BI/gETyCR/AIHt8Vj/F6HabVf1L+FEaRm99Xhmr+EfGv++1sAS+jqDSC2psdeimW2tIJams+l6vu
6gnaSU3doX3waeEqzGjNHpONk8DReZEvw6aOZY+coe0YjjPqaUIN+WP8wEqhXPJAMZPLpj9og1En
gxpUGiVroz5rGDMXl4tYdGh+GWa/6bFnsqU6cctic0Za5q5k64zY/rpMWyKTfbdici/xsv3EHpt0
bBhjm+xA1GQl2XiyaX9+3LUNaYpPr74y6TBJi8Xcbn2fJcnlMmXiOxNJ1nGk/3tWJCXfIPI0lLMq
VnMNqLRbF7StlNchD5PVl2yBMuKKw7b6Jmm82QeisxyrC3OznS2KZIpPHn2owc7jQdwjk9rj6hg/
ihP2chCljcuvcXVTFM7N7FRNr73nBcvvz3Y9surHuBiax/vJDQW9fwFQSwMEFAACAAgAiwsiSsuN
IS9YBgAAAlgAAC0AHABzdG9yYWdlL2luZGV4ZWRkYi9tZXRhZGF0YS1wcml2YXRlLXN0ZGVyci50
eHRVVAkAAzYdalg2HWpYdXgLAAEE9QEAAAQUAAAA7VxLc+I4EL5zyk/wEao2VX5hG24EkloOO6Q2
mb0LWwTvgMzKTshc9rev/ERGD9s8NuyWpio1hWm1Wq3+utWflcxnDy8Qf0A8Hgdh8BSiMF7/ClCw
CdHbHxDHYYSma4De4CsGKAZ+Qh5o99pd7zsK/3qH89nDDCRgCWI4jRCC2fdNqtLx5MewddeyHXdo
u9bIcnr9LQjRQGMUN6nrcUaE6CP6ARc7iEFq0QQFlP2v4Rbi/qA3P6w92kE0e/gdEj1xMgXIh5sN
DHia+ZKZS66oL2Cc/AxRQDwx3UQxrDvT1m1Pvj0+V8sTjrbTTQhRwm6Qreu63J5MRXC6Jfn4RhvE
QdKgqk+Hm2Xbg3PChno6Hu9yH1ajMrmnEBNv9PVPd7VaDb2h49uePpCYH0kmzZTR7vfTFTJKeCv6
m3nWH9TMIm4Z5LH2RGaM8E+yuXADE1jKl6F42LbXqAoDrqTkW46FDQYGFsgMFHtunSYFOMsmaxYr
Ple7FRO7XtcQQw2QH8P2TN0buo6uFdva66bqOdrtyMYDpFUb+ouGor2WyOZosnr6jjEJ5GomyQAi
sorwthiRe6Ual+1BP1jys2wm+wD8H8SkFxIKUJ6SZ6z8VUI0MKwyRLkxWFpSzUEEF3RWHY9xkV6j
7S6VDDgiEapreXn3fRjHxJR7zc+dqX3kZUcL41rxsl0zVVipCsJ4BxJ//fhRJR8KcNZIH9TgllYA
0eKy6kABSOvfEd/Yjm66+sjRdbaISRzdiLRl5mdRkWLS96XA5jrXBxs1x9XAlkbUAWq0Z81VmvsF
uEudS6MoG6mn/yB0h/KqQYJ/cTT8MrtiuYb5hR7zAZSuO04ATkTn04YjB4YggbKzbf3YoduOLdy7
JXwLETV8Xt+KU48Yv8EtSQ1kHK2Nne2s48RFwsQwPLsKE3GCXtCZqV16PphDfSAWTNPtI7Np5RGU
7Nc+TNZVcqYzs2k42uFcqB3yZhpryxRhpmPoAHpD37QGvfYhlpej2jGw/rk8CzFV5vvuDYMAfoMw
gEGr6qJ7JKnBPef5CVWHOi9nOFgs/yTOyfPOPaku2h17wGUks4UdPpYScxTAT45nqG/POjw32rVA
ecyJIpG7kLrKMgQbDRrWay+rmgFWg08lnQ0rK0hHZXZlBggSCi8GQJBuiLZ4KYE1n2mGaRn20DLc
keW5pl6oo3XVFkdUfIN7Sm2V0mRDHj/DOEU2a3ct1vY4TOixLylOpfmMJKBnkWM67pLW98FmsySr
GDQyIFNetAkS5PTykVkbzZuCRktNuKodVUJeoLyTvgJ8s7TQDrhVBuE9brORuWQT0AqpNhDLRaXg
okVEObMdnjLRTkhqWu8xMDp6sjsYqh2UwoBfKS4EACbeviT0o+02TOr1eB9uNtPsufyccf68jWg7
tqKGOebLhnjJlyrj7Y7XLCMpSvhxB4mAKBEWwigfVMFNWoJycrptDeJa08aJnfDGm6Xe2BikKT6H
BBVhmBc9DBY5AOBafSeQWeDJMsINUFmFaZUroXx73dKRV6jzO6d1SBdTkFKTVQJxrTWZFtFath2n
dwXM+4ThyLQ94X5L30vUVW/BzyXMns+LBHQ8T/6Ood08Ocl/WSJNENHt3oqp1zU3+7qmLUGqaM5L
0Jy3QNqZQ9M7lbRrS76dR+517YTnp76o79BCf9WbTUVFKiryDCqy3sEpmlLRlIqmVDSloikVTalo
SkVTKpqSoSkVpakoTUVpKkpTUZqK0lSUpqI0v4jS7MZMnsN+XtcyxZkqzlRxpsx3ID3NMk9DRA56
CGwm5bf11rLFEficzjKzqWwsCbbyX7grNiEWQQAcGcVXO0fPOHrD5DB7wNy/xnBdhDgQrlfeyuUb
LU5Ix+radM4T3hhBGQNiWXHiT8dcsW2+Tlk4tNxc/7TYpi4NN2+Oo37b9PSTDw3/leo3aUJ/KcP0
9fxk1rp9JP953intYwdyoYMxlukJ6Ihq9Zz+/hHjCHO7+zT/kM+HDl+1doNmCuUaNEh3QuNWCIqb
yyGqL1d9ubpq1Nw2q75c9eWqL1d3mdRdJnWXSd1lUneZ1F0mdZdJ3WVSd5muepdJ3XtS957Uvacb
vvd09m0lus+MdjWjHFM/ZjtZDxGh3PLWa3WM0dBkIqCY/U5KjbJ/H/RGV/CFNnVz3v94Bd3UdJD+
B1BLAwQUAAIACACLCyJKB8HjVi8FAAD5IAAAMgAcAHN0b3JhZ2UvaW5kZXhlZGRiL21ldGFkYXRh
LXJhY2UtcHJpdmF0ZS1zdGRlcnIudHh0VVQJAAM2HWpYNh1qWHV4CwABBPUBAAAEFAAAAO1aS3Pi
OBC+55Sf4COu2lT5BSbcEpjUctghtcnMXdhN0I6RWdmBzGV/+0o2NpIly4aQmlTtTtUcsLtb/fq+
luTMZ/dPQHdAJ5MY5WiJMpimhECU45Q8AokxeZkmaQbWjeUGTugHo3AYhIETjK++Efz3K8xn9zNF
czKJtFYeaLqZJhhIzuxdN206ztXc5E9hIj7fk1K/04fBBmFiW4rRTlMDwZLvB4F9pbGByS79AYst
UMQN3ZH4mSKSocLsM94AHdhSGnD8gAnO1r8jEicskd+BZtyDNSIvIOhyF0TFdAtkdv8nMAeyfIpI
BEkCsc4lveT/9i5jTyjRZLItwVCXvyj4A6ZMfOC8havVajgejqJg7NiGPkwN3VMYM+iueRtB9bt2
JGPuPq+BgoXYfzcYe87YdceBdfCYR/LAlknpT9aTkEBe26gCPYLuOa27VytpeKvxWHk0sMVkxT5y
bKbZGXKx2GUyMwxHTp2Z00w9ptstqzYiVl3F3yyS7q3ctEaX19NXShkN1SsZFJjIKqWbg0aZlVqv
qMEgXmo1y3Ldo+gHc+mJtYIpm4y3Zqq8UPyIU6iiqMvmP10d4PpFB7T1YOVJvQYTXIiYnUzoAbzp
ZsslY41ISmQrT69RBFnGXLmxojKZ1q7kZgtn4lTxg9DjBmtTMc62KI/WX3b16BDA7986tgQ3zi9t
wRXcIwDIGlyz3AQjxwud25Hj2AqlGRLdibRlkec2ClSG76XAFo4+HmzCGh8GNt5RR6iJmfVWnPBb
cMeTK6Ko0HT4P4BwaB4VrPkXDfXLVMUPXe8XZixCYIw7yxHN27ZKHRtGCigH0zZL3jQ6wShord0S
XjAR1OdyKf6ADYM40xCfqlpnbyQ/3R6ihaAXIjP1o+ejO8IP5sGUl4+tZlUHCFavPc7XNTmLzOy5
I+u4q7eOvMl7bckR5o1cB8F4GHm+fdW/xTR7P/l3tRdSpsy37QtFMXwFiCHuNV2cMSM12GuenzF1
hNNOgYPF8i+WnJJ3bth0sa5tJTJFsgjs+LOSmJMY3jSZEd4q71KDVazVOGWP3RnJgpRd2ta72tBl
k1XTdjo0lKe1alqBYkcVDCdZVbaFwCo+VhRaqEvXNSjmBbEWTxUU5zPL9Xw3GPpueOuPQ885mBNt
ScExE19hL5hl5Nat8uUNZ5wLVL+lPtpTnIu6TxzZRgZklPXYlpgTq2QNIpQkSxaFbZ5LbM2prtta
KHV6+c6UtHVLiGiRUVytUFP4gpQ3Jx8A34JI+gG35hzd4z6FLCW7gHaQ6gOxUtQILlGkjWX74akQ
PQlJXfE2gXFiJk8HQ11BIwz0s+VCAFD67Ze0frrZ4Fye4HucJNPiuXln8v51O9HW9ELCnPKyo1/K
UE33tM2YTdcaFfy0Sm1ANAi3wqhUquFmHEHlnW/fGaT1pk8ST8KbbhX5KOSyY/R7Lr3bMKzrHgWL
GgBovb5ukVnQu2VKO6CywnzKVVD+fOerRlaEHb8cdW5Ipv6gIomwAwVaJqxDu4BfCzaqp/WELXUX
x/zChv3cgZUbS9HrZNA4XvHyHS7u7lY5UOn4Nj3gs3lNrY3BiBadhooWn5GqDi1A2JNX6MRzf1y9
h+3PPj/+V1qshbT6fbX7ZAzSbrHIF5JmVOMu6+w7KvNcvutcuO8lWrO6WZ5uTR+vWr4AmsxILzBh
DENQUowVdWfWY9pc1vRpMYoXXYUXR+Yaefyru7zlUv5IgAmVH/S1+DD+sYFseoN+LqF4Pj8wgbyO
ezv0+q9Tfrm/+hdQSwMEFAACAAgAjAsiSotCt3EXBgAA7CUAACoAHABzdG9yYWdlL2luZGV4ZWRk
Yi9tZXRhZGF0YS1yYWNlLXN0ZGVyci50eHRVVAkAAzcdalg3HWpYdXgLAAEE9QEAAAQUAAAA5VpL
b+M2EL775J9A7GVtIAFkSX7Et0TeoAbaOq2z7ZmWaFuNTLqU7Gwu/e0dPU2JFCXHDnaLHgLE1Lw4
M9/MkNJ89rAk/Ej4dErCCK8CP9w+c0xD7EY+o52v1P/7QOazhxmGpzgkDqOUJM/UHOgWdeFvYBtj
yx6Nh/bYmgxHshzgprByIBVeFaVPj+yFLPaE45jsnnoC07O/I7zX78xPO/F879GnYNdPmHqBTzd/
EB4CqbPFdNOsUNyiXpRis3fWqNPbYZ/2kWInenHX2DvbEzp7+J2AnDByMHVJEBBPJVlNmbjkA+V5
kpOfCPXAE07AQlJ2pm3YE314XKWUR852TuATGskBsg3D0NuTiPDeb0nK32hDfZI0iOqJ6WbZdl82
TEiR6RSvGI/+9KMtO0BYgmCF3ReN9oS8ipGet1ISQ1quGd/dq3h+ITvG34D8ARRCaJYR47XydYh5
ypQA+RFH4ubmVJSdaRSXZEf0+u9Gmd7NYGhuYcWsVptTeeWCclAybZ9io+BK6B59DlneM76N1+v1
EGq0a0+My3jrN8o0BifCNLzbuFSS/HdhSAguet4SThCGv4E9MY3JYDCxUWbxpV44gfuZCY1lGeFS
oCQ1OU2nGukqZ1oXrxaoJLsXNDUV3JxW4Kwch3U7qqJRLXZOnzjbcBKGJ/eLRVQl5RH+BTTC1klA
oiJ+eT9QuldJqXmqyBZpqdcXfedZ2OhrC06Wbomy62TlcDwyiqw8T9QT2+8h+JiiAkE3iLJXFOl0
NFntHDiHblJo0jBkBT7jSL1S8GlbQxquUiFc/vazHxGpI2xItOBf8lkylzCnawYK8v4MmmrYZUUo
WYJfaO0HBH3ufkZgrOeHL/paPJNNFvLPjZuxxKgK6D9NSTiwkiSsrzKzUq7HhAtxuppOeTZmsd0+
pvQUJIyWpSwPrgsIBlNukZvGEx3T8RP5YWmItcdmLLAQBa7b48jdfjkWQ4hQjqy7tBwViI8nwbrN
JVOigGHU64Jv7JFhjo27kWHIw6zG0Y1gXyV+rhtWpTHuWngfjz4e74KOD8N7nFEntIueNddxv6+B
fuzcEh5jTph5Dcix4TBuXhdWAi2KFxXt1wmqNR6Y39HhLibaASuMh4u6Y27DyYUTmFl1R+Ty6cWw
R/a7R9O6lFmRjU/rJ/v6SrkQS0RNWlWF55NFi5p6slD4AfxO7LS4w5yyEr3CGauoqGI5NQcjdDrU
oVOxiyO8AlwQczQwMJkMXdPqd9oHVjFCln/X7JTRr/sNxx75lRCPeK1agjGBSkReFes/3tx/ZuMS
jt4JFharvyBUaem6hQaFuvK4LVEmbj79zCnm1CPfFHESnkrPmEaqr+S45OAg7SQ/RNShTrn1ssgc
Qo0GDcsNXxatP3TL9JprFZlWf6vhSAw19UWVNdiLA4IWy7wwzGdoYFoDe2iZlmXYpmm3uhhwLvUI
6rnZpU+/8arTUUW2pvA618+C6jna0WVmGTG5hqJ4L2h6ZfYBUElA2w4kBb5Vy20CmVI2JXVG1Sad
U1JtIqcl6xaJSSSkrjW27RuUElWWO0VbhG4SMp5mPihDYBOcDNCn7qeOkz6CPrLyk1CggL0Sjl7I
W3JUg7KPDjAGFysna1PW6RR7x/h2I+lbDjtAaRcMMW3DuKkuoDWBNgAx5sRl3AvfYUV7tJ4Z3vMR
WqSVFpvq5nIlVEog+C54ZLudX7lpe/WDwEnWP+6uLdXbWAKqVpQKgfSwIV/SrereGlT33OLi3lEy
1VUHPfF55gqYUYpt442zgKPSUj7YDOBMfcmdex0YVWkggUqRyUqruzU0Cy69QpBzfu3HPTTH5A9+
X1+a3cu7jjTOVB+ASiTFe+smBCtfiddZAqruPS++vYlfAxEUaUPRasavHNvi8GW3ePfriPDSsTBN
g6Qllq7N//uv9S8p2+8+Cf5fUqymaLX7fuIHqyCal9qN746vfaG1b/vS+sw7K/FmiO1LkByZ8VcK
1SzIyOT08CmUEIqDpG/IM1SLdnJd0cIoI30KAltLP9tQpqv2k5Ky6B1+W5FkfZ4Bs6xncDc02+tJ
v8/QvuqQP505m7qdz5sf/AtQSwMEFAACAAgAjAsiSnbnQsoZBwAACVwAACUAHABzdG9yYWdlL2lu
ZGV4ZWRkYi9tZXRhZGF0YS1zdGRlcnIudHh0VVQJAAM3HWpYNx1qWHV4CwABBPUBAAAEFAAAAO1c
X3OjNhB/95M/guZezp65zGDANvFbgi9Tz3TqtMm1zxjkhMYWrsBJ76WfvQsyGJAQ4D+J70YPmRvD
ane12l3t/pBuNr19wPQV08kEh5GzWPnh8yN1SOi4kR+Qzjfi/7PFs+nt1IG3TojtgBCcvBOPQFeo
C38DUxsb5mg8NMeGNRzxfGA0gSdbXBorovTJa/CC5xtMnZjshni5QY/+GtNevzPbz8TzvTufgF6/
OMRb+eTpT0xDILWfHfJULzA/RTkrwWSvjVGnt3Z80keCmcjZnWTu3CTuMfFAkr0KQlxU1tRMSz59
V8jljgZre+VjEvEGMDVNk+uTsPAO14SNr9WhehFqWPXyy2mYZp9XLLcEk4mzCGj0lx89B9vIdlar
heO+SKQn5GUfzBks2GAyvf0Dw7gQ+BEXr1bY6/S8hZAdOMYyoOsbEVcBuZh7Qx3a8ZNGwf1ObVD2
1YnyBp2RWzAguNpDFNDDQ0K+ZqBBKrokD0YUKDfM7zNpCf87n8Ike9q/4+VyOYT85pqW1j9qbLW1
AslEE2aSsc9xmsHp70yREBbo8RlTjBz4G5iWrlmDgWWincbHWmEfuI9BLik/RE7BSTkxKU2n7C7l
kcxdT7ZQSUzOCVMVzMwceefVYdWMypEsZjsj9zR4ojgM9+bPxxrHpUG2aZteHn7/1Y9iuryrV9A2
CtuG2aZRpF6c59+BmIB+hwnjFY4yHmmSFDq3kFLyVqAx96jXz3uuZzhaX7o+uyknwk5jmeF4pGWW
acfqPthsIPQcgrJV/IJI8IYimYw6re0tpbBPZ5IkA3Yb424Es0o2jnl6xZbKlquwK1QE0BOO5vRr
WgWnHGZkGYCAtPKpjj9eEEoewS+09FcYfe5+RqCs54cv8ric8irn/M+NyxxuoGhB/6tzwoGROGF1
jp8WfD0mnOdLhMmE7mqFYL2JKT0BSUCKXB62rgv5E1S5Qi5bT/TKCmfkh4Xy2xzrMcOMFZhu40Tu
89fXrLzLbQbGNdsMsoiPy5mqySWlTi6GUa8LtjFHmj7Wrkea1ucqKImha4N9kdi5quLiCuRTxft4
dP54z8k4W7zHHrWP9rxl9WVcbVWEfmzcQjzGI6Gb0MDHhsO4dDgyE0ijeF6SfppFNcYD/QMN7jpY
Wt6GcWlX1aDX9IQUQwEva+6LfaFmjszKpV/gJ5+cvg+p8JeyNGlxwTyjZU7d65n7AWLs2GjxDrP3
SvQG3WuWUfPpVB+M0L5dRvtkF6/wAuIC66OB5mBr6OpGv9N8YQUFfPF3ahBua/i2eaKOh3/D2MNe
oy1BsyAT4TfB88urPVtuXDlQI4mF+eJvWCqWuq5gg0JdvtnhKBMz73+mFDPi4X8F65R7e9ImjNMr
bciq4kI4kSLLNCBqFRoWt2+etbwr4+kl8BNPK8d2bG5ARVIR+YDjxQuC5g9pmM+maKAbA3No6Iah
mbpuNmr57GMtgnruDhzr10KutmhlK1KjfXovKGMStswzC8RZ1shS8ZwwaPEMoZKEYLMgyaJV9LjJ
QjLKOqfeUTVxZ0YqdWSWgK5Q3olyrmuMTfMLYkSlx51sk4O9IQwo83wQhkAnqPPRp+6njs1ewa6w
8JOlQKvgDVP0gr8njRckcbSFojZ7steWDZ1MHO81RoqSXcgOtpCoc4ropqZ9KT9ASwxJHdaYYjeg
XniAFs2jteXyto/QzK2ksSneKk4UlVwQfEg8Buu1X0It3/zVyk6enw+3ZHJrU0BZi0Ii4F7W+Aub
quzrSnnOMqwlzQnCQVXZQU7cTt1czAjZNrFGq8ARSSm2KQPokI/5FFgVjCI34IJK4MlCrbsVNHPK
gcO8zy/9eA9NY/LCv30UKnFBSxJPZodQ3SwjTAstDzNKskF0j6vvuc+3w2vdtCrXW/oZuMh67Xxf
4OT5bJdJynLYJ91mctg31dOiahUe3ewjv/o6/s5fx9sfWqhDSxXmeQrM8xIgOH2oW4dCcG2gtHc/
RfRTfftXKOS7opAfiPsVuyWFCSpMUGGCChNUmKDCBBUmqDBBhQkqTFBhggoTVJigwgQVJqgwQYUJ
KkxQYYIKEzwaE2S3mMpPfQKlEnFWN+nbYufUoIj80S6BvQuqdJK++D2vqx1y17XNFbfz5OW21+N4
O7XpGUUySi2jbmk/z6W8iu3npi78UhquNRVnk8YdEPxjWYd0QC364xbKGLpV0VFnsxe0qF8pDaiw
QY0TAPzeN6mqO+nXowDn6OTb9+SX0mMfk0POcnvRBWP1Bf/Tgbqnd6n96cGt14dd8DtbbaEuB17u
5cD3QCEUIKAAAXVISB0SUoeE1CEhdUhIHRJSh4TUISF1SEgdElKHhNQhoZ/skNDRR3vynV2wKSg1
0rUyrspbCIiY5o3nOhpcD3Up1sr/d6pnpv5AI3yg6EIE7qR3fyjjVc6g/YsWc/4fUEsDBAoAAAAA
AIALIkoAAAAAAAAAAAAAAAAZABwAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL1VUCQADIB1qWG8e
alh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAUgsiSmb2JexkBwAAfnQAADcAHABzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vYXV0b2luY3JlbWVudC1hYm9ydC1zdGRlcnIudHh0VVQJAAPMHGpYzBxq
WHV4CwABBPUBAAAEFAAAAO1dW3PaOBR+7xM/QW+FmWbGN8DwRqCdzexOYZt03wUSiTcgs7aTbF72
t69kY5CxJNvYJNCoM50WW+eic9OxPmFuJtff4CLyg9fhEOEVjvAERnAOQwyuQOvTzeR67BOCF5Hn
kzv/FgfPOJCNVNz9Sbx/njAdk14dDnOX2h3QNv7tL5fLLsY904ZGh1K219AjHSBg8AAJWuFJLKx4
2PbzdIMDyCYTUr3uHnCAAaR/ze7AMu2+4bpggwnyyP2naqxm/maDEYAE+OnlL4D4LyBSySjSevwU
BJhEO0kKAjpk6QfrLUVilR1d7IM2mgspE3ddw8UjVemWhgL+dPvnH17ERvFXh8N7HE2DryElXHnh
Q8rhhix9KgCl/m7JyPOCQHyJfgJLb4XB59ZnQJVFXviomCny0CSvMhd/i5Uf4hyhyKH/FQWhacdB
KEuDVJOdDDqQGp1Mrn9gyjeMhsMg+c/YX2/YSCQY4pMsl9unxQKHIVXlCiwSfwIqL2SO9EJgOkbf
dvput2s5rmEwhjtW1HQbGC0evj4zIup1fjaGPTA6bPgu42msEtnk2D0+h0G7RW3jOAOr13XMfq/D
m5wffFSyz2M7Cyh5zns1G8p303BOnu+8jJPlO4uofbbzlrWW1Oey1GfGzeQjozToH9Nx3a5LKWtW
AmUWTw+kN+PUruEY72hwA2JmcCkbarMg+ivJ5jFV4h7fBZCEMAnrHME+5GldCzCMsIw2ztErvjqY
/YEldf0c33uEI78hZVaAQyrZ4u6RZ/9x76cRQRzRnbfGQbujqKpTvpyUq6l72dwHqt6YGY2tMPuo
BC9e9LCrqHw57ToOWOxUAvtixzwMkWE4Du4PXBv1HZiU0pKOTdYQ7kKs5qEhRUvDz819ABH+jjHC
qMyS0Ld7tBLhF8F1RVj6Cld98wJq40aS0+qa1i45qy9ce5lJLkznf1NXJaXrii5QoNXJ2Tk3Mjdi
q89O8f2kM0o4rlGC+5QkcSyL7mJ1FmlYFyrUNTKLcJ51zlkFlpH7WDBWUljSOpkjkJQUkSchYg4B
09s0WW8mwLRs0+nalu06Bmt7lEvLTKZERYuA9gKuVnOqcEddm6nMscizkgI3bj4KMtQiEXxkZgbv
cn9XUKdkvPJoIjabKv567UXZNH7xVqtxfF1dLOvLLczLQy0ymZW7WRBHyVQV6ZSbs+oJLU0pIZEs
rdSDq6nLZZSQbRlrVEolkZRsc2PTvvoEncdYFAa51BJEslDrlmTMNBjN/aAg5pcey9k0J89v7T6w
Crd+Z2cdKYwpboIyQ3D6lFGUwbuBB94TakJFjRBiT3D04zMGkdIVfrZQc0WVJucTcydCOaJtlzrj
7mtCFWG29WXhv90JGS0jHGRa6ySN4nY4s/UojAFltRFR5KtN13SF1QYTeuUJN/hEVGfZq9hNS0rg
N49Qc/zGCgOVLX1UPa96JOcYJzjthOTPusd6q2C5HhUK5vfMy9pdteaXezo/WGsVYgV5YPUcdZ+g
YPcuaXEpYbpvsUYnC1h1m0Y1SEXn41RSK27ZpkdBtxSPyTVCh5TKzcJz6HDqPIKky2BRCyNdLjWD
4xjkrqlTYDdMsQ2s4l6wIswqaiHdfCcsBvHv+PX703pOLXGkukqc7sd2BQjif1tfQNIEgzDeF9nv
xtjuYGDVnNFWIl74AaIiH/GrUqDJ9rWLpywRBhEqLckd9N4hjC6Fe9lwL7PqzSoHfbl58NsO8nVs
Jis6tbfhZoKqxW3vb59wKu7JlW30l3IE75gkby57G0rNsgFYOqbO0lh1OpGmDF0lg6sn5qnZNx0m
9apEg0FWoqI1GodHCtN5rYvgeRjrAtb3C6+1p2Vfsfmp+RBfoltsZsgv1nM2DN9qa2hrfBBrQIYL
5656JMIBgatRejd7gqIEmFzHyrFOqYVGBI0hWeDVdpahrMLBA6XEbG/ILPDvA2rk/c4sv2uR46Je
MhLzKcCgQ0uVOHYxEtHI2hEh/zKb/iLCEnOtcqpCJCML71g9wz0eDju37XvJujsqCsx0TA6zEOdZ
vfMdI2HC6+MU+lRETUJ9JEIfUah/RKHKSQMNtdeH2i9lEW0U+NdQu4baNdSuofZaYVQbi94cAwNd
LnZ/2n3aC8a4Pgb+Xxc4qdSHX9g5EY0WotNA3MISWpTcp0eU6pUXjR5rqF0bS0PtGmrXULuGU7U1
tDU+hDWOfpdBPUvqNyHoNyHoNyHoNyFo6F5D9xq619C9hu41dK+he83gF4TuG0Z4akC/R8KWFU8B
VNmjrXcIoLmvf2pHNws+lw2Zqh58+y/9V5jMh3P0+xy+OLcvfX/cUwG/6Ne2Tw7AHHt4QbT9XOWI
whuijG9+ULB8iFcMunc4pHTO+PwJ3uJx3u9wuHTwW8PNGlLU1tDW0NbQ4LsG3zX43jz4fimIwfke
BSgE3zN3aaO6ESLr/A3pb+Gl9S55/cUKIyUb/oeh4qv7oDFtu987+Dkj9pOFh4MsV+qTXLzOEieO
GZ8s6zV8neP4+s229hzIsVyjvJyYEWrKgP8DUEsDBBQAAgAIAFILIkoczzaWPgUAAFAgAAA1ABwA
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jhc2ljLWFkZC1wcml2YXRlLXN0ZGVyci50eHRVVAkA
A8wcaljMHGpYdXgLAAEE9QEAAAQUAAAA1VnLcuo4EN1nlU/wEqomVX5iYJeYkKKm5kJdcmcv7AY8
MTIjm3CzmW8f+S1jSTaveaQqC+TuVqt1zpHank1elkA+gYzH4R7w5OU7/HmAKHYQdiEIwHv4gX06
Mpu8TFCMVigCkaXypDw+zKp4Xm7vhBiDG/shXgD2fLxxgjACaq2Zqm2Y9tCydMuwB82ZKs/x2OVG
mZJw5wQ+4DiZ/TSmPpTnk4bwLs8k82/NobdDPu4rnEK2hOoxkcyBrfd5m+Hjz/AD5nsgKAn0jL13
gnCE0rDv/g5Ir8+W4SbbLF5SKElk6hM6E5OLm6y6EYSXy1+NsV5f6ak/7fV6bQEMVFqqfoa/KZ0x
JF90wyGAGAr7Ap7VVr6HJTS4lpKnnAxbEtQMlCYortwWYS+ASTpZu1n+u9z3iOb1vgUCCqL/mjXS
NcNWh0Nln9Hl4bxQi3C/p3uNsFJu6C8KDo9KLJujLWvnQAgFdzmTxIGarEOyyz2yqpR+GQa9Fdcz
264X5H7QlJYUCrJqer43adrfBaKaZhQQ5WKwyKScgxrOWQqOxyTnYrjbJ5YexyTE9SjLg+tCFNFU
nhQ3K6ZC54uSKvoRq1XmUFWTgGUoz4/2KHa3r5+lIDGEM0Zqv0a3RC5Ei0ulhCGQ0nuktTHNkT6w
TM0eNBVKUuhWpq3SOosUrSHpNyKbppp3Jxs7x93IliCqohpbWX1N91zEu6S4LItSTzX5GximNUw8
ZTScn7jfZlcs1VT/xYqpCKTrjmJE4t8zOjo0iQ0wZ2bLNYQAikHk27yKaPZIF+7dCjY+Ztxn9a34
DXaU4tSDHW16XXw9ueY6cROY6JamlzARC/ScVaZu8lylw/ygGTjJ9tHZlOJaSvfr6MfbUpxZZbZM
U6nuikqlmwnWkKeqpgn2aGh4tokyVe4Isew4YgbSNE9wxD1lfuw3BHnwDcADr8vpYhsDKmpw5Ixf
cOowd+iUB/PVH7Q4me480dNFeew3VtawTBdW/aSsPsRz8ux5Ddd8ZxfM84sda89zzJXgrIBdW7Y5
VDusZ44zrIoQzC1APWQB3daELLV2ZjdDNwjZsheSLqlpK5CxQpUbDgIB42EHecmGKPNlQcjZRNF0
QzMtg151tcGIdnRZODZWbXE0xDc4MmGpxLW7vP70o0QRmnnXoHYkfsz6LhN+S3WQCtdCVJgzd0np
uSgIVnQVffnpROd0eGgTCKtze2TWvHlTsGypGZdnTinkc5x15Telb6EZbawVasslARpjcgCUZpKb
UGkiJ+VCloWAnx/wlbIimuEObM4av+/JEccjTrfH4IZEmA9lac2gFqB6+M/X9Lz6dZGKxXkAYYXh
zuHFKsJCrIPJbfVlwWEjc1/K+/AzxabrrWjN05drrhZ3rsYrISG5by1q3NxALLqavUGc0/aWBdwU
UdvEecNO3xyU06OyE3OOsZGLSVUIgZpsTgxqFf5EwQGmIfkVvq5EUxf5eDu3QN0ERIyFqwnxxgNE
CekoeRodgpimE5ODGx9oXCcIMfzfZWTnx/V+7egHgZOOy/vQ6yp+fdatzdTpGmrtUONhy0U7K5Ts
S9FpxWSvwIs+iOsk6oUkxsK2JXMq2xtpozL1sR9tu3Yq3Gy6FPGsFoU3S/21maGp5jWf3UQNDw89
jZaFQx9u1o8CG3oEr0LSQrS1n/RChW78997FnVSFETDOi6lkMblGPq9jILUXX06OVtmnQMHn0dM8
ojjcXxaGfTOXxqjAphnJx+c67xvfyqlR9l2biyzpN/d66B36WkE6Psul7mQefah2nyf7gP3wN1BL
AwQUAAIACABSCyJK4FwSq1QFAAAzIAAALQAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9iYXNp
Yy1hZGQtc3RkZXJyLnR4dFVUCQADzBxqWMwcalh1eAsAAQT1AQAABBQAAADVWVtvozgUfu9TfoLf
JpGmEtdA8tYmbRVptclOO/tOwEmZEpM1pJ2+7G/fYwhggm2gSbUzI1WjmHP3+T77wGJ++4jpK6bT
abzHZH77Df9zwEk684iPowgHV99JCCuL+e3cS721l2CZJLpGg6vFhe0Nd15IRkig5MeEYD8NYzKL
4gQH9zTezaIQk5QpoqFuaY5pOa5tG5Y1GY9EjkPyGr/g5R5Tjxm6IcET9UjiZWafwh2mwxGfUnDU
nJW+V5gEIdlmIYBfzqltOmO1bh63QEuedKwI9T6kUF657rNHgggXv8ukEwjg6RlTjDz40+2JoZuG
rRton6fGcrgHNzF9hyRwhNPSRrHjVUpPcZmuUFLxVBBxY2k4QkPtp7PZbGyMx7rpaSNljxxTzpxd
pjKO5rplZfqZWsX7PWy3R1C5i18Rid9QqvLRFvXsQCn0fOlJoQAim5jujhp5VUq9HG3BWqiZb9et
579ASI/QCvjq8a8/wpRJ8avT6RanS3qXgGIUJs+FhQXZxOCggAB4kqg3HaFsCX6hTRhh9GXwBUGw
QZi8KDINwmDeDJnrP59Br6Eo2tB/25pQN7MmlMGgiKT0AYJLnu+mU3okvni3Z5KBQCQmdSuPB9/H
SQKhXCM/308E/hK2kWHCE4rlahozWJqC0u291H++ey2psspGMyfaqIZ4xs2y5DLe5jCMhgOoDbCt
MbYt3RmPGseBotCtYF9ndZYdHw12vRDedc36dLzzPj4N76yjKrTzlTU2sOcy6LPi1vDINDX4p1uu
a7ugeSYTKFG8PPF+mU21NUv7HwuueZgVXGoGakbTv3M0zyCILeaO+mYTVi0PvEaxl2KZbobR2nVD
dybGhy9GspZZ421IOPkFOaVhCVMueYqQtNWp8eJm0YFTqwi5H6A/Y0VjJ0zVlegtTJ9LRuXp1LYs
VF09UUV2bIe9QNMsCzsT1wwcy8uptOPG5mlwC1mY7ZnG5Pt+S70A/4lxgIMuR4JjjoGJ8Jtg/de7
e/Y8uLgBIcPCcv0Dtiqnrms4oNBg1KhzQzIrc/UTkH0AMrsJgobqsc9W3PMPK9aeHytQlqoqcy1t
y9U65LMkOcpk2BMWoG6yAFJrQLZWO/abphvt0bIXihGwKSuhpIKZGwoSlhH1jhewDUHLx4IeFnOk
G6Zu2aZhupbGLlrKw2wlC6JnRdDQ96JoDQGP1KcB+JyJdlZCv7PLd0FNW+SC78yacMk2JYUvST7e
XxQqBT7bECLF8UcMNNbUDVCKKW4eKustoFj1jEICmRf8fvczTNJkQeq4gQdo8BXF2SJKstUKNyZw
/rhLZsqJ8Rs7TMEXzf5XeHMncOFRm8J+TIP2uF1dbgmoorMZdzLuvENd6GX1mfvUrUV4guoVcn/z
cjbjT9YOIpfluZWAFbgb23F870l6XW9CGxHPnXOd+ORq3FEa08+tRe1OBpOp7Dr2gNMcuBct4Law
2nZIbHn3zUU1PCo5OeY4GTXlVIWQj/c1imtl3onrGGe2VhcueehbrW5sIm+Ms9HxIOqOsr8T9jQ5
RCmEk9KDnx7A7iyKCf7dOWUXpvWB7S2Molm2rh6Lz6v4+VG3TlOnOdTmocbDltt/XijVd7DTiqne
5BeDkFBJNgyphfuFy81BQrNdqtFrABJ5qb8EM3XNOufroGycErVBYyAS4EAY9UAiAwfrOqYtiNmE
bNIqCODXe8dzUhWOiQQvvFgyR7K72aSY1l6o5UXJXoINlJ8tmh+me0vXoobzbl845d/4ZatVs+nm
8bMwB+DGt2MQMlxpZym/QddN77z3Nc7WF0fOOvFjuFp3P/n36qv/AFBLAwQUAAIACABTCyJK4tXN
oQUFAADEHAAANQAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9iYXNpYy1wdXQtcHJpdmF0ZS1z
dGRlcnIudHh0VVQJAAPNHGpYzRxqWHV4CwABBPUBAAAEFAAAAN1ZS2+jSBC+55SfwNGWdiQw4Edu
CZ5E1mrH1iQz9zaUHXZw421wPLnsb9/i3W26Gzx2NNJGysFQ7/q+6gIW84dnYG/A7u7iPdD5w1f4
5wBJ6hHqQxRBcPONhnhlMX+Yk5SsSQIqSeOTcXsz2JGQDg2Jkh9TCn4axtSL4gSCRxbvvCgEmmaK
xsByzIntTKauO3Kc2XgocxzSt/gHLPfASGbongYvjNCE5GZfwh2wwfBmceWUOHtBKe/VuayABiHd
5imhNJeEa0/Get2iDhItdRFjTeqPIcPcOI9+Zr9lRJb9v61rg6ExMH9ONpuNCzA2McJhUYpH9Biz
d8wHIkihkq8q1WT3EteZSyU1dyURdgRo2SQPUF25V0KDCOa5s26x8neNtATjenkFBgbBf8udjSx7
Yk6nxr7o/815plbxfo+dJ9SoG/qHQeOjkep8dEXtHRhDOtWeNAoosonZrtQoqlLrFUQO1lLNol0P
xP+BIT0jFHTVDMJg3pb/EIhall1BVIrBKpLaBwouedLf3bGS/fFun0kGEpGYilaeD74PSYKhfDL8
opgG+kuyKoYJT2xnapqZwdpUECZ7kvqvn9/qEcgRzp6ZQ4Fu2YBSJZcPL45AxuAWa4NTdDR2HWsy
bs9ETaE7mbbO66yaoa0pdyWyWabz4WTjfXwY2TJENVTjKzvaYM9VvMuKy7Mo1zSzv7HtuNNMU0fD
5Yn6dbrimo75GytmEtDmnaSEpd8LOnoYxBa4M7ONogazOJgYkBRUujnJhHPbmsxGyt6tYRtSTn0h
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
+HPmz55Qd8x8XmKpokZRWtEVig2uKFvuVc+Ov8J96p2D5GWfyo0C3ZVSRdX5yzFVaw5klxWYrL3k
A9zJCzk50db5XCVjzJwI0FcFBqX/CsTW/QtQSwMEFAACAAgAYgsiSng2dXqMEQAAy/UCAEwAHABz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiY3Vyc29yLWNvbnRpbnVlLXByaW1hcnkta2V5LTEt
cHJpdmF0ZS1zdGRlcnIudHh0VVQJAAPoHGpY6BxqWHV4CwABBPUBAAAEFAAAAO2dSW/bSBqG7znl
J/BoAwmgXbZvHas9YwymFSTpudNSOeFEJjWUnHQu89ubFLWQIlks7oueBvoQqeoj+dZK+f2eepx9
+CzsH8K+u7PWwpx9+CT+9yo223vdXIjVSizfPKqUeNAXW8v+dXe3FCuxFTN9qz/pG6G91966X99b
pikWW8Myv1iHYNElJd/+aRrOhZ0yh0/v7kIfXV1rV72/ps/Pz2MhJv2h3rt2al696IZ5rUUE+Kab
y5WY7S6WXGz/7/la2Lr7MBvnvr58E7bQdOf//vh20B9Oezc3mqPT0jC/vkkX6qO1Xoulppuadfj4
nWZaP7Wt7BpJd33/atvC3B6vJKngFHm27Jd9DU+VY71dG1wtnyJres31QV98d27ps9MVZGoujeUs
XN7X+IuVtRGhilFq/j+pB/SHux4Q1wcPd3K8hlNw7u/ld3f2vrtbL2u35DKiiGUGo3x+XSzEZuPc
yntt4YmpOdfbuCoaG60/6k2Ho+nNeDwY3fR6bsBjqKWxWevbxbfff7iVHMn9T9Mb3vauA8PNHZFx
D7cbrb4BpF29dbQZjW4Hk/GoP51ch4a2ROjEkfa00zmipj/y6TYLGmz93qj0wea/RmmDze1Rp6Hm
V3bw7LR53LhzxfWPol3NnvvfZDga37g1ZcNwfla9mFYZ90a9GhXr6UL63Jutbm//4w3He+cmvoov
tm5udK9fhiqc+qwzMdlC34q4urtB9t4/vPvT20Fs2z2Jr4bpq/4YbIqIGob5w/p+0v43c+mr/sV4
EfbV9Zt/ixdnanDq+aOFryaZEuf+uUBtQjzdo+8fjhb3rmDOTWjLw2dvtZ/G9ttxOvTPhePRSFsc
b0k7zVRu6+rLXm80EtPbm+FyOtK9eVCxUb0FwPfB7jbPWi5yXv9z/dXWl+IPIZZiqTKfT4cTZxoR
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
waQqizNaMTP7ln5MOMGGAySZ2ZzPfhpQBPnXQKOgv7fqXYx57ou+rm6QI033p/P3V6HzM3TOzlrt
kJy//xz++yN0e7UoqYdmM8S//Zk00p98On9/HvWi66gb5q0svC28+e3TAy++W19rJUmo9xqt5DIk
cSP5Wmu2uiFdfVQunpbKp9VK5bhSOj2ZfqSHybOz+kzKx07rttZshKTXf/THzOPq4u0ZIOL1t2Q4
v3QbDm6jRnJYmBFyCepgjFQ+OT0+nLUzGsnP1vdw0Q6dqA/6PYm/dKKkGw2wXxq3oXNwOJ4hl908
X6m1YEM+NjrpI41tS71vPQWZtS3/m/rZwWHhoPj36c3NTSWEk2Ka6nB4/H1MH7HV+Sfd4aEZeuF+
/f3h+bArv7RGh8bMlQv+dcYWLtnAo1I02MD55b5FSdwM54MHW77s7r9H+72bbteXb6ETClH6/0eV
d8dHpdNitVpoD58uv62Gumy12+m+jpLCaIf+q5C0fhV6ix5j2VbXfnQ66cE9eqQFA+mSm1bn9m5i
WGU0NzwG4+uZk8Pd9T6qf0836So9FBbVjBvx+fT6rRyiR0el+0N05jF4vyWjx0gXXow/Bc/OOnfP
xdZtu78ynrGklUxSrn7U66HbTTflbaE+jFlIH6/br9jojr9WlavFYh84QsWNbjvq1b99+Dl6QRp7
wpXeFQ8nnm79l4t5coOXkrEnUOHgTdqmXH53fFIpH52eTL9CLQi99Jl2Peg87xVt6iU9pyfbUbG8
9Sfb+GNs7cnWP6IenmrjZY9v0n0+73nXjzv+LBpMFvv/d1IqV6r9yUVPw4tH4/nslUqxXHzGYsUo
LPTu9qJO76/h07GWbsTXMPY7c8nbkE6IemHe7PRbkaPTd8dz9911+NpIxsY/Te6Kdd92/Dvcpi8N
6dw4bfrRNno7kcthclw5Oh4dJvNfoC/GX5myvTw/bM7Yf6RbUOvvvvTRCvdvS9P99avR+zZ6cR5/
Za6Uy4WH94qFh9fN/rEWxcViuRxO31VL8Wk5Gr4qZzzEhr+Oxn4w2MxHx9HM3zJ/tr92ojj8EUIc
4iy/XU5LJ+mLWvg14+dr/NYZew89eB5cXP8njTN83Xmb/nYpvDmcMptaORB7+M/0Wf2jd9H5PY6n
Ru/27OXYvxs0aNCgQYMGDRo0aNCgQYMGDRo0aNCgQYMGDRo0aNCgQYMGDRo0aNCgQYMGDRo0aNCg
QYMGDRo0aNCgQYMGDRo0aNCgQYMGDRo0aNCgQYMGDRo0aNCgQYMGDRo0aNCgQYMGDRo0aNCgQYMG
DRo0aNCgQYMGDRo0aNCgQYMbDk78+91dFUe3X3y4dePEjf3K1WKGO/ZdJMO7Mc67R+PMW/xNIu9v
zrh0gyrFibvSTqOnbjm55G6DC+4DPr12zo067+87OjUw51abs+6OGMX9HVK4uLq/5eSn88LRcemo
XCkVq9Wjk3fH1TvcOGtCLkX8EX6NYUc3+1w08uHvRrd/z8vp7Z441H51Gr3x2av+HSwX3ukzbsSX
88KsuJcKB/Wo2bxOLQ4X3381fczarKNtzq1Da/kfmRPTsx5i/NkysXh0V9XRrUovkuF953N9+t6/
Zix71s59bQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4jYCpny0+/WO0bP65Jejo6Ojo
6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojoc+lLLvExuqDKnCt7fA//DK6n0f2UZLgOSBz6l3n4
HCVfZ15yI9s/h3qrM3d7ojieWDABePhH1qxZs2bNmjVr1qxZs2bNmjVr1qxZs2bNmjVr1qxZs2ad
v7XP5tHR0dHR0dHR0dHR0dHXPKc5wy36Lld72PEb8sHDw8PDw8PDw8PDj+Pn34B6/AbtllhiyU4s
WfrJc2bGnA+nn1I23/vZX864/vvnkL4gdntnZ63k6ke9HrrdzJ++P36E1v1m1UYbmtSajZD08v+g
fqVX/SWf6q/1S2HULW5021Gv/u3Dz1S08LbwZmJXlG5m7Ip2SOJUa+lurM6adR8DAAAAAAAAAAAA
AAAAAAAAAAAAAAAAgH0HbPw9y2VbsOyjrs38tvNFTkcOAAAAAAAAwAxAhnNrfOMIHR0dHR0dHR0d
HR0dHR0dHR0dHR0dfa/ou359a3sOHR0dHR0dHR0dHR0dHR0dHR0dHR3dfS9e8UWDn+X6nytc13OF
S4WucsHMHbyvpwt4AgAAAAAAAAAAAAAAAAAAAAAAAGx2Yvh2rpe366fDs2bNmjVr1qxZs2bNmjVr
1qxZs2bNmjVr1qxZs2b9bF8E2PXPF5/3hl9PdsewdUPNv6VYhmoLD60N7uV2P+/jdwAAAAAAAAAA
gFcKcF0EdHR0dHR0dHR0dHR0dHR09Bd+96aFH8Kv++hLPz1fb/Oe6s5OThZhzZo1a9asWbNmzZo1
a9asWbNmzZo1a9asWbNmzZo169dh7ZwCdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHT0R98ynbsk
bsSXjz6gzPawhYN61GxeR/Xvh/Dw8PDw8PDweeEznPG1+hYsOUdsjQ10Gl2e1mscU043XGCdxzNu
TqJ1n3ybRPX8dHIva9asWbNmzZo1a9asWbNmzZo1a9asWbNmzZr1Hnw2+cI+pVu2G5wjAQ8PDw8P
v/un3G3yFsj7SNasWbNmzZo1a9asWbNmzZo1a9asWbNmzZo1a9asWbNmzZo1a9asWbNmzZo1a9as
WbNmzZo163203vJ3XhxKrFmzZs2aNWvWrFmzftnWroMADw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8P
Dw8PDw8PDw8PDw8PD7/BDXScbsmaNWvWrFmzZs2aNWvWrFmzZs2aNWvWrFmzZs2aNWvWrJ/XevWP
x5d0yunT82GWdbfOwceaNWvWrFmzZs2aNWvWrFnvvvUaf0RwYLBmzZo1a9asWbNmzfq1Wfu2Njw8
PDw8PDw8PDz81vC7fWN4eHh4eHh4eHh4+Jzx6dqJNfXWbbv/B/n4oh06Uf9nXxq3ofOx0QnpXPHv
05ubm0oIJ8VypTg93d+kuwe5SK5C52fo9Nd8DulWdXtnZ63k6ke9HrrdqcnW/cPVRhuQ1JqNkPT6
S2utJAmDlV9aQ+zEY1liiSWWWGKJJZZYYoklllhiiSWWWGLJy16ynRN+1bbEEku2tSTDFwoyU9b+
zsFWVTKeSLRzvyfWN17/uyPb39W+SsSaNev9sPauwRJLLLFk9/7c4pQy+B09ne9VPmFHZxjGjW47
6tW/ffgZkl7hbeHNxEmLpZsZJy22QxKnb9CWnvBYnTU742zHWZvbHttWAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAIBdvkTN1Gbv40mL2U44WHASw/hOmyqCjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6O
jr7L9FwubrDyJyYZt3/pByuZBedfrcdxgY6Ovsd0F/thzZo1a9asWbNmzZo1a9asWbNmzZo1a9as
WbNmzZo1a9asWedsnfGEsIeB7Z5nkbXzZuekzdkdz3YGnjNj0NHR0dHR0dHR0dG3QH+qO3a5XRw8
PDw8PDw8PDw8PLy7TVtiiSWWZFyyB3cheKq/qr28GstOYNmk1man/OxB6+2/z3jCA9srwet+JVBD
DTXUUEMNNdRQQw011FBDDTXUUEONu3NLM35JcLNqvsDKmjVr1qxZs2bNmjVr1qxZs2bNmjVr1qxZ
s2bNmjVr1qxZr3cp4qWnKSz7xtaMcxjWPVtgwbkOeV1WeMa3tDLsh9W/yLVkz62xgfN387pbt/bT
Yctf5c949OSxk+ccP7kV9RLGmjVr1qxZs2bNmjVr1qxZs2bNmjVr1qxZs2bNmjVr1qxZs17lFId8
b+Sd4eSGnT35xq0s4OHh4eHh4eHh4eHh4eHh4eHh4eHhX+z9infrPoKWWGKJJZZYYoklu7PEaS1b
urLMzuzh7b/X3oM7BWXo6NZKbjSlhhpqqKFG7jUyX0gvQ6p1r7C3StLc33PmdNG73K/Il8cb+e0f
fyvs8hnH6Wo7c/MLM+b4vzV24h2+t89e+NVQQw011FBDDTXUUEMNNdRQQw011FBDjY1q5PtH+FVa
uuvMvD++b3CI5XIDKme/eAlTQw011FBDDTXUUEMNNdRQQw011FBDDTV2+zsL/jq/b3+dd0V+1qxZ
s2bNmjVr1qxZs2bNmjVr1qxZs2bNmjVr1qxZs94r6127+tzmvTY7w8EBxZo1a9asWbNm/aqtM99D
Zkcvlb2sYm4nto6l3XDzH0hr3FnRqcKz9vKWL5G94VNxlY3LuoNzk3i1V7zP72nsNwxr1qxZ76/1
9t6KrdYpjzdu2/rFmv9bsaX7LJfNX/N3/it5d+5W8/Dwz4t/jhfynP7n26v+M4t3fq/H+oX9SW3X
n/778D5ui2/t/bqEh4eHh4eHh4eHf4o7XVtiiSWWWGKJJbu7xIVsXdZXDTXUUEMNNRbVeJKLlWf/
aviaX13Pb2/t6if9mxxFzo1gzZo1a9asWbNmzZo1a9asWbNmzZo1a9asWbNmzZo1a9asWbPec+sX
eplNhxJr1qxZs2bNmjVr1qxZs2bNmjVr1qxZs2bNmjVr1qxZux/jPt2P0ZHK+klu7gAPDw8PDw8P
Dw8PDw8PDw8PDw8PDw8PD79nt7jbgxsLuKWRJZZYYoklllhiifstujeWGmqooYYaaqihhhpqqKGG
GmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpq
qKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqih
hhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYa
aqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqo
oYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGG
GmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpq
qKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqih
hhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYa
aqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqooYYaaqihhhpqqKGGGmqo
oYYaaqihhhpqqJF/jdvGYAvOo150HXXD2dmvRrNZG/x8bGnhzdRst9dq97ew/w+1VpKEwc+/tIZZ
BsbJyKwWJfXQbIZ48rHuGEfl4mmpfFqtVI5KpdOTyTX1ZqsbHi86rs572Phu8OHfLoeBan3OJPo2
+uc6DH7+6W5vPnqc42pxRb3/A1BLAwQUAAIACABoCyJKYs3EECIUAACv3gcAOQAcAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9pZGJrZXktYXJyYXktZXF1YWxpdHktc3RkZXJyLnR4dFVUCQAD9Bxq
WPQcalh1eAsAAQT1AQAABBQAAADt3V1TGluiBuD7XPkTuButmlShgqJ3OySpsmrmmBMzc9/Sy9gn
2DBATHJzfvs0qNjIt3wI+pyqqVPbrPdtfLpB6G7WOvv44SK0bkPr9LTRDOnHD1/Df36GdqcapbVQ
r4f43b/SJPvJ2ccPH6NOdBm1w7iRhfeFnXdnj33x/fhqI01DrZM00i8hjZP0e7XeaIds9H6peHxY
Oq6Uywflw+Oj4S09Jk9PayNbPrcaN9V6EtJOd+tPOw8q+cezlN9v9yZK0r3CiNDjA+w9svjJQ9vN
PbJS6eRob0JVdNlodb61orQd9QrvthxfjhzcDK2rRuvmr1GZbGDuR93HeNOsh06Iz7NU1P3Zt+Qm
tD4nrezX2y3+Pr66uiqHcFQslYt77/4ZbhqtP1nHh6j2IxO/6DRa4x7d0y0173bS1O1U+tvJb2Sg
qre93b1Rv8xN0jlP7/bvuEfbyn58G84v/y/bN70ffW60/h1a7e5+uo7S76EH1y1/PNq+NR6Ombtt
5DZ7v5lcX3agh67p11BrtOJR/x7F8fh/HAjnjtbhLQ/t+xEakzc/6eB9srXeTl3p7yosLCwsLCws
LCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCws
LLxZ4bOPHz5Hteynfx5SDxN0PEyxMmqKkhEjyQsLCwsLCwsLCwsLCwsLCwsLCwsLC29oOD+P/PAJ
7hEzWA/9aHcvP9P4/mFU3Js4f/t1lMb18LG3senD7v+7P795O3tc365DKxSi7H/75ZOD/cPjYqVS
uJ8I/d18VV8azWaIC1FaaDz8+O+FtPGr0Jm0jWmPuvqz1Qppp7+lCYH7WeXvE3cq/dzE+ejvdld+
EvbJR8LF//4j6YShedu/h85561M7a60n7euH+rP0qpFt/WFpAdc6hIWFhYWFhYWFhYWFhYWFhYWF
hYWFhYWFhYWFnx3+1Uo6+XWXPydp0r4Ok5ZWjpP4y4QlukckkvS28ePxautfaZwL9RbS3p20enhj
QrC3Avdyrm4flPcP+leex1zEHb4WXOj9KPuvwlVSD4W/7fytkEHESfvHZMKPw1eV84tld1dcHwqO
sv3/afcJ7B/27hMY92W7h0fS30Y28Dy/XHx3xfG7deMf1lofMaSRDrZc/KzVQrudPZT3hdrdJffC
7d0i5YWknV/UvlQpFruF/aqMrhl1atefbvsrzefWVz88Ke4NfK+wu7T9uF+ut+x97jaLwu5OZlMq
nRwclUv7x0d7efL84Gfdj3HZcx59/PabHx/mkm7J2C+WVn5LRn4bK7slo3tEPd6QkZc9uMr2+bi7
M7q4A8/HbrKY/d9+qVIpV7LkgvdjTHwWnz/Z+nJ2arlYKr4geDEKxUmvx5lZq/Pvu2dzNXsQ3/N/
QIYPwsdDPntda4WoE8Zle8/R9/lXh/3jk4Oxu/4yfE/SXPxscFeM2e9PUwv90Rr/qnqefzmZ7TX1
cdu5/8geXrWL1v0L83hUFn4lnev+K2r+5bRcKhVq/YdUeHyx6+7hKC4WS6VwfFI5jI9L0d1L6Yw7
9u5vSO4HvYf5FHLUn4Z/Nb+3ojj8TwhxiGf5k3B8eJS9EoVfI36+YW8T5v/D9bjNu+dC7t1Yltnd
KezsDTkPjewx59/GNX9mL2Z/xfFQ9P44+5L7d0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUHBBYMD/36/xl9/McDHhQQHFvYrVYozrNh3nt6tDTluxciR
S/wNVj4sFTn1AZWLAwvbDlcPLYA4ZbXB8esmjhg7ZrHOh7VHhwJjlukctTpiFHd3SOH84mEBzLOP
hf2Dw/1S+fDgsFIqdpcSnmXd6uqiIoXdWlSvX2YPeG/yeqfZNquj9uyYRUOryz8KBtKjNpE/MgcG
99fT7C9Sep5W60lIO0t9qjw8P6c9Q8Y+jxUoUKBAgQIFChQoUKBAgQIFChQoUKBAgQIFChQoUKBA
gQIFb7Fg6GeTb//oDxt/b4l27dq1a9euXbt27dq1a9euXbt27dq1a9euXbt27dq1a9eufWT7lIkk
+tN2jJk/4kf48+l30u60z9LBSSSyfyjs/L3Q6P2w0O799HESicOTg/0je0W7du3atWvXrl27du3a
tWtfoH3MZ/U4dKcX/Bql37sf0Fu9/z/hI3rl5ORgSlWoNVrx9A/7lf3xTVEcz1xTOTma+XzFLBNU
bsDJjfwUl0vcbePnvvwy20Eyz55dbPLMJR0XI+bg/PL0OyuzHjvZP369m7X29LSRXvys1UK7Pc/E
nXMdfPMfKPnHFyftZtSpXX+6zTacWe0MCB9ejZoK1DSiChQoUKBAgQIFChQoUKBAgQIFChQoUKBA
wSsuWMV1LxcfuXLlypUrV65cuXLlypUrV65cuXLlypUrV64b6erikAIFChQoUKBgIwumfcPXF+S1
a9euXbt27dq1a9euXbt27dq1a9euXbv29bQv6YaN17smjNtsuHLlypUrV65cuXLlypUrV65cuXLl
ynXT1+S2hxz5XLly5cqVK1euXLly5cqVK1euXLlyXY3rAjc32yUOda5cuXLlypUrV65cuXLlypUr
V65cN9L1Nc/MsLz2WQ+bOag25L7jOR6xFwAvrFy5cuXKlStXrly5cuXKlStXrlzNfmDiYu3atWvX
rl27du3atWvXrl27du3atb/Z9vFD4iT+8uTE7WybLezWonr9Mqr92FOvXr169erVq1evXr169erf
Tr17vtxLx5UrV65cuXLlypUrV65cuXLlypUr1+ecil3FnnDuW7169erVq1evXr169erVq1evXr16
9Zten42tNtI09IZ8azx8j7Tbnft6qSGGGGKIIYYYYoghhhhiiCGzDVnifTtZycCHulrjptltic+b
oRX1HkJyE1qfk1bIPugVfx9fXV2VQzgqlsrFvSXe9fP0ceR+3fP0zsAdVyu64yrr+BoyjXbn9LSR
Xvys1UK7PbRHGg8HRLV/iKTVehLSztJ2zIpPfcy435fxVVu35XnyceXKlStXrly5cuXKlStXrly5
cuW6hiVI3bumXr169Zt5v2z/0luctJtRp3b96TaknexPwM7A9dbDq+Le0DW5Zkjj7I/J1Gu1lVHZ
p5dXx1x4zq8Lo0CBAgUKFChQoECBAgUKFChQoECBAgUKFEz72s6buvw7DXEVl4ftWTdMcOXKlStX
rly5cuXKlStXrly5cuXKdRHXaSdRX9J94TPAnhCeEFy5cuXKlStXrly5cuXKlStXrm/UdcGbI+ec
n91dyAoUKFCgQIGCN1hgJShDljxk6DCbbQK3CZPCNbVr165du3bt2rVr165du3bt2rem3dVeV9G5
cuXKlStXrly5cuXKlStXrly5cl2W6/STmXPMtb2W+bUd5ly5cuXKlStXrly5cuXKlStXrlzfqOti
9xg+g3+G04fLm+95zTdsznpMLIa+0KHjNlrt2rVr165du3bt2rVr165du3bt2rVr165du3bt2rVv
WPv4Id2Jg591ubWwW4vq9cuo9mNPvXr16tWrV+8uPndHcuXKlStXrly5cuXKlStXrly5cuXKlStX
rly5cuXKlStXrly5cuXKles2uW7SXXv2secOV65cuXLlypUrV65cuXLlypUrV66+POwJxJUrV65c
uXLlypUrV65cuXLlypUr13W6btCNpMtdonaGM72OCs82rly5cuXKlStXrly5cuXKlStXrly5cuXK
lStXrly5cuXKlStXrly5cuXKlStXrly5cuXKlStXrly5cuXKlStXrm/tW9Pb9bXmTfpCuCk9PZm5
cuXKlStXrly5cuXKlStXrly5cn1rZznVq1evXr169erVq1evXr169erVq1evXr169erVq1evXr16
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
jSnIKMgoyCjIKMgoyCjIKMgoyCjIKMgoyCjIKMgoyCjIKMgoyCjIKMh8qfethJ9pYL8Nc7A0+dfH
0ZY68DSs7IM99OtNzPeFsFDxLSBubUi/U0Sb3oDXJcyvz8opbvgxhzqTyDLmS/GNfwFQSwMEFAAC
AAgAbQsiStsTcT+uBgAAKk8AADsAHABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0
c3RvcmUtZ2V0YWxsLTEtc3RkZXJyLnR4dFVUCQAD/RxqWP0calh1eAsAAQT1AQAABBQAAADtXN1z
okgQf8+Tf8K8rVZtqkBRMW+JbnJW3Z3emr13lDHhgoMHJNm83N9+PSA4MB9AxE1M2KqtLaG/prt/
3c0wy3RytcD+E/YvLrwtJpOr7/jfRxyEY4ussOti++wHceDKdHI1sUJraQVYRonOUetsejx59o5+
7BGCV6HjkTkmtkPuxq4XYKDWDW3YM4Zmv9/t94YDXtOe8+JiJZRy7XubsetgElLteZldk9pz61sk
sFIxm62LQ2zPtti36LVbZ4P9a8eHBbS1n8P1et3HeKAZfa3DcW9j1YW8poAXNG+ccEZi99Db++Xd
eonTYiqGkfUof5NzmUDlWXtjOaSDBIHkBEYxbNtLITWseu35m7GQ6Q+88fwXoL+yVg/go0Xo+VIN
MTFLKbC73VFYbjv2XGVOGceg9spy3SVY0VHnHigTasnkm26OBpoILQ558h5wmjOXxGbERBnU7sjS
QaSZy6yU6CzvIt7qloRm5l8uPV9FurFeljgC3XSXw1m4GcOuJl0G59RIkM0tZQ1YmpHxDqTqahKL
eH0difkLK4gKPUpRbdY5g2G38+rkkJvgKRijuqTgvbeI7eLkd2pCAMbf3mMfIwv+6v1RV+91+3oX
7YofDco1qAEAQ1QwjVMiI+kAwhQQUiruCizmLrU7bN3Ve5bWofWraMmRsno8M9RMM/VMNVFzb7uF
/LUISqP4FRHvGYUqHUVWjx99HzIw1aRgSOp5zBF7JeVTdoI4XGz9Plv89bsTYq7+32EoLd8CYHSd
4D6RMCVrDxQkmAZNEnZeEYouwS+0dlyMvrS+IDDWdoIHdbeY8CaznZUCmGMUBfS/oiTUe1ESygv6
JJPrlHDGzlMXF/5usEpGFQGJR7JSFo+rFQ4CMOUcreJ4ItAX0EA6QaZMm1pUplNR4LqtFa7uvz2l
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
tuvpr+lET7NtRs0g3xzPnyIyv7yBheJfyaj2jXv6tzdqfbNfw92o0i93sr/MUVuab6X/AFBLAwQU
AAIACABtCyJKC1rBar4GAAAkSAAAOwAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmpl
Y3RzdG9yZS1nZXRrZXktMS1zdGRlcnIudHh0VVQJAAP+HGpY/hxqWHV4CwABBPUBAAAEFAAAAO1c
3XOiSBB/z1P+hHlbrbqtAkHBvCW62bPuQ2+TvXeU1nBR8IAkm5f7268BgcH5ABRjdpetSm0B/THT
3b/unmFkMr65A/8Z/Ksr2wqtuRXAyHNdWISO587AtR13NVp7AZCPRNUVQ9MNs9/v9TVjcPHVdf59
gsn4ZsxwXl0tuFJufW8zWjvghijvcl9mz7yY5OPxtuCOb74A6gjCkeUuYL0Gm9Uqoow0nELevW+5
gZVNc7NdQwj2dAu+Fd27dzbg3zo+MnSUb8ZyuewDDBS9r3QZ7m1imlJek8OLmjdOOHWT6UWPc/Pf
e+mkEyqKkbYI+5AxBkflRWdjOW6XcAzHCIxt1rHnXGqc9dLzNyMu0x+w8fxXpL+xFo9oo7vQ84Ua
EmKakjPuTlcyctuxZ7LhVDEM6Sys9XqOo+jKsYHKuFqKeNBURedFp+M+e4+Qxcy1a1Ni4gjqdEXh
wNPMRFZGdLFvInbUlwKaqX8993wZ6cZ6nUOcFCa7GC5OXzd6inAajFFjQTYzlSViaeqOdiCV+N+T
mDMGpIT3wXLtNaTXmWMCnM/9A/hALPxT+8OeqvX6ao/sUE8jUTShw7Nuwl+ab2VYlorq0K4aGL3u
waH67pxyi2ownaBXIIqaVEaa/7kByaWUPOWMmLnV6dJVQNUspRtl07IpQ0mo17CMoZhmZpl6ombe
dovxa7kk8+IvxPVeSCjTUTbq0ZPvYwRmmiQMaXVJOBKrZHzSupS4i64mF3d//e6EwFSjFWCi+xQg
49oJHlIJE3fpoYIU06hJwM4qIvEtvCJLZw3kw+UHgoO1neBRXrvG7JDpOh8BmGHkOfS/siBUtTgI
xeVlXIj1iHBKd1NXV/6urUobJw6J5xal3D0tFhAEOJSPZJH4k6C+IHKkExSKhqnERSMThabbWuHi
4dNzlrioxkobJo1Vhvio8xNNLu4KKQyTziXaRteHvUFfV41Bl2k2JYYuBfs8trOoOWVSf0N4x5bj
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
QeVrtmp+ZV3/aq3k9pXdHzzKGLSNm7ty19Ls4s6uRxzeuld2PU5MV2RndO1emYj0FX45weJ5lZDx
pytrYoHOkgMhn6rZwQjkX/IcgsU574CKIqmKKr5VNtaxD0dIxgNJOcs2tHCEpCbeBjf0Zhr4iy6Q
CTJBJsgEmUcp8/rubnZ3iT74Pl4sfeQ7KBKKNJSUZ1HSPLn46lirBfYuaIq9uP52f/ENzz+b/sW9
s3J1TH9NSIa++N0xVhYhM2lhhg1jfuEFZcRFpge/6stlp98bddElmjuOhSIBwe30ceXB7fXKtP2h
8rdf+kHMbM/KgKEknWUb3ukk6ad6RWLdSzMYT1et/qqdufzElKSCP9rAuba68TrjU0Fx/4O8PC/w
xqx4pRLNfQ/7xF132FtZPvPnIoKj5rvwW2yX7tgk8lf4ZmWHf/KiQ8AusCrfSRLNxAC8hVvQU5LL
Fno5M4ofiEMtTcuP4gydGFKnKWLOAs4sJqqYvWTpLNuQA8myTzhcHHCIzVxyqGI74+ehoSFoaRZJ
JMYbetI81sierLS9dVUFdqebToc6d9TshS/BSDASjNwMhDh101SY6xoXC1NuwoN6AeoFqBcOtl4A
RAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFE
AUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRNkHRGkYBoBHrX1lCIgCiAI1
CmAC1CiAKIAogCiAKIAogCiAKIAogCiAKIAogCiAKIeJKG3ebLkwAwvWo/pqWtYkaGdIw37y7tZP
OjCh8WRZ2Mhp8nxnSftTX8zaskhGj17Mq4zUwaDX74+GaRrdcjycJZJV7uTK/VGI29CdEyonLXqh
vc1x0D6N5khGj6xKJ/8DUEsDBBQAAgAIAHELIkqTdD2DHwYAAM0mAAAzABwAc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2luZGV4LTUtcHJpdmF0ZS1zdGRlcnIudHh0VVQJAAMGHWpYBh1qWHV4CwAB
BPUBAAAEFAAAANVaS3PiOBC+55Sf4CNUbaps/AByIybsUrs7sENm7wKLxDtGZmWTx2V++0qWbWTr
YQNOMjtVqRqs7larH1+3HvPp3QriZ4hvb+M9RNO7r/DfA0xSH6ANjCIYXH1DIfkyn95NQQrWIIEq
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
sAFiHVY7m6wqkibS5epLezOtX7Gr9lnNd1uqiYx/Njekrxn1fTkpNfUdKz11FRzfcyeBb/2Xkn4d
70N/A1BLAwQUAAIACAB7CyJKzuEx8TMBAABpBgAAOAAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9vcGVuZGF0YWJhc2UtcmVxdWVzdC1zdGRlcnIudHh0VVQJAAMZHWpYGR1qWHV4CwABBPUBAAAE
FAAAAO2Ty26DMBBF96z4BC9BaiXeBJaAKrFK1aQfYPDQoJIxNaSPv6+tiqRtyAMparuoJRYezT0z
zPXkWbIA8QwijnkLmNGeFrQD7R7rpw3kWTJE4ngvZJjEsF7Dqqp8gMB2C8sk+pjyMznliFD2NUfN
WNMaTTIiWFFkDQz3eQuCKkVHrslyBQIIlZ/tR47thrblEclnNT5o01C3vG2BEYqED+ErgvyF9Mdq
nOo63QgB2G8rHRHIlIqL9U6BW9WXyTqVZWr5AacMVozCVVJCy0fZ86Ln8l8U0VIncD1/Jon/Hv91
j5M7kLyuTymW0DTALuv2eA05Nf2MTqbxDg+I1Wz+rfnLvBprFgVnOPoz9SXkhpYS/vYxJhXYrcmS
j622GhwxdLmBnhc5ge/ZYWD+Fmn/AUzLfgdQSwMEFAACAAgAewsiSrZcd1kxBAAA3SQAAFQAHABz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXN1Y2Nlc3MtYWZ0ZXItdmVyc2lv
bmNoYW5nZS1wcml2YXRlLXN0ZGVyci50eHRVVAkAAxkdalgZHWpYdXgLAAEE9QEAAAQUAAAA7VnN
c9o4FL9z6p+gI8xsZvyJDbeENLPM7C7pJt27sB+gqZFY2Um2l/3bV7axLduSMZS2tEtmckDo/d73
7z2b+f3dE/BX4NMp2wG9xwle4hgGHyn5+wXm93fFyXTaOhqO0ND4x1utVi7A2LSXxgi9U0nKyDNG
KQQJYXQw3GJCR0ghsME0jKD4vNgBx6lEjG7Q8wY4ICz+TXdimbZnGg4S+CGh68FxUI9st4MQYYpY
cfwLouwNJV06Dlk9e+EcaFJq6hAQV1aMbysJWkrVImutjNFgrsnUMFwqwdNLdzj4JGx+SpjwJUU0
xJ/p+L7rC8Rrji8tx08ffiNJKi8nbjpdQ7Lg72MBGZF4U2DP6YoJD8P9R5GWZonc/QnCnDiZYRpA
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
06bPQH+NqMl36of4AVtNZ56MqTTdhzNPfMDMupC6rovvVirX1PmSD1M8n86HqItM3hMp/5fufr/Z
Bcm/nY8kbcP2cS2exfSs0cioEZX0dSDrmb4pJelySbbjNBZjjQaN2J+3cz1/fpUn6VzWkR79PGcu
yDLuOfH+cNXy4U7Tk9ZKYNOpGvNfncPjMuU9UZxK+sp2IXVuPH9x53p7uSGCj+Aj+Ag+go/gI/gI
PoKP4CP4CD6Cj+Aj+Ag+go/gI/gIPoKP4CP4CD6Cj+Aj+Ag+go/gI/gIPoKP4CP4CD6Cj+Aj+Ag+
go/gI/gIPoKP4CP4CD6Cj+Aj+Ag+go/gI/gIPoKP4CP4CD6Cj+Aj+Ag+go/gI/gIPoKP4CP4CP55
g/+zXsN+nCfxJe74End8ifsv/gpc9Yvjz+QFufiC2BbfAXhvr2tdZ6+ar9tN1vw76asX1QEsxsmd
zo1R533xdnz599hKTVptuzmyhkYjAD63XW+zZk3+vv+ju7XPovjm3VYY3w13XgTmRMFuGe1A7sTz
GcWuDrs67Op+dlf3Xra38+0xaz/NI/3aa/XT1oeyYB/ZCj890+hGO8X8pxUTGUWK6b34U+NlbCtf
RodB6VfMhRFUfmG9LHpjvy1ocn26r1QHegxLa64n/Vz5xb9QSwMEFAACAAgAfQsiStxkTq4iBwAA
llQAAEMAHABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTUt
cHJpdmF0ZS1zdGRlcnIudHh0VVQJAAMdHWpYHR1qWHV4CwABBPUBAAAEFAAAAO0cy3KjOPA+p3wC
R7tqpwoMfiS3xE6yrq0duyaZvctGdtjB4BU4mbnst08DBktGEgJDbE+cqhyAVner1S+pWx6P7p4w
ecXk5sZfY2909xX/t8FBOETeHLsutj998xx4Mx7djVCIZijAIkjts3b1adwcPnsLP/Q9D89Dx/em
2LMdbzl0/QADtGHpfdPqD7rdTtfs9/KUdiNvbuZcLA/EXw1dB3thRH0fZ2cg5ydGYVfnJBlfyENr
hRyvrXEEWYCqRWGyev1Om7cYjvfqf8eTNSYoQnTr2c8EeQGK0T47K0xabQkLvmTgg0NAASgRziMu
c0h4XP2fe9dqay39R3+xWHQx7ukwtXaiLw9A0Sc/YYGwi0OcwqfqtBP9s58tJRdS8pXDYQGDholi
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
JiDyloxwunSk8Vh3k1vSRt13FTPKvJaNLbln4vlLxQT7kVRE7FNpBOO40jN5jw04uHErOF4CMO+i
RaXIxqu9Jqbnc/tDHSojkKlg/bKK19zWUzbrI3yL564IOxv6bYFdMevv8ghb0+qrrrKz3Cqbywns
DbuqWj1bhs0KrJWV0xsqw36zB82Gc/Kyw3mzHYeTtHTUmZc4cJ/fgRvZq1tkr9aDFNvkuvK2sQJh
7o4zKZTuTIV7zGvbtYOnps7MQCtNoJVtkUlVJINs6MNAJCCtT4+0kA1flA2PvOr26fPOTKcLnCma
9m++7/lfZyHxM666tAX6OXaxy+OLlGdFdmvaGSdmJTvH3yKdUmVwd1UgyUdEktlYW3UGC7/zWMcF
gK+Br4Gvga+Br4Gvga+Br4GvT+HHF2oB6XqAHPgamYF7yQwEvga+Br4Gvga+Br4Gvga+PmV8vTWq
Bfcu5N7A18DXwNfA18DXwNfA18DXwNfIvm4adm+Lmg8BxIGvkX0NfA18DXwNfA18DXwNfA18fcjs
6615N/A18DXwNfA18DXwNfA18DXwNfD1yWdfb5NQjR8PAb4Gvga+Br4Gvga+Br4Gvga+Br5G9jXw
NfA18DXwNfA18DXwNfA18DXwNbKv62df17b3Zgg6fjwEPx4CfA18DXwNfA18DXwNfA18DXwNfA18
DXwNfA18DXwNfF0LXwNCNwGhjwG0KT1lsG/Qtvft1Q6HxhOH+WBin56Jnd0vwe/j2wX1j+3ZPZSA
+ERrIQ34gefzmI++lvg8dwdNRse1issipGAy6gX3UwmsQN+b8y52FK+KL7JC4nDHuDYnxnmbEkzw
SJ6PRpwXaSzMxJtXw3kh157/O3kH/C+ONefL0qusH3p9X6iGNvRMcP1oDN4sTNGLl5SlQwYk/JWE
dyR4cUJmg/ZM3pO4tzN2+fg/oVif9ZwPXgHOAM44fN7Qh98yAWcAZwBnAGcAZwBnAGdUwBmADSWw
ofYpe3k6Kjxnx2Gv/AsCjZ1qP/rAWukUvd1BsCwaCqrKx8XusNsXT4GguqMIqCdNA44uNAMTABMA
EwATABMAEwATABMAEwATABMAEwATABMAEwATABMAEwATHPbLEbvBBWACYAJgAmACYAJgAmACYAJg
AmACYAJgAmACYAJgAmQTABMAEwATABMAEwATABMAEwATABMAEwATABMAEwATABMAEwATABMAEwAT
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
63x52nw5/h3BBZecvdvB+tVpvCvQAJwzZn668hrh0H9Zh7U5fA51WLtC5o/usBafkM/tsP8CUEsD
BBQAAgAIAJ0LIkrR1v678wQAALokAABOABwAc3RvcmFnZS9pbmRleGVkZGIvcGVuZGluZy12ZXJz
aW9uLWNoYW5nZS1zdHVjay13b3Jrcy13aXRoLXRlcm1pbmF0ZS1zdGRlcnIudHh0VVQJAANaHWpY
Wh1qWHV4CwABBPUBAAAEFAAAAO1ZS5PiNhC+c+In6LZQtVslP/FwG2CnQlUqTMJs7kaWwTVGJrZn
JnPJb0/LBj8lGVjIzqY4cLDol/rxdUuazyZLGr/SeDyOdpTNJn/Qv15okk5dRmgYUq/3jQWwMp9N
Zm7qrtyEyijRF9TvzUt53p5+GjFGSRpE7JEyL2DraRglFKg1E48M0x5Z5sjEptPWVHKOx0Qo5SGO
ttMwoCzl2psyMVbbk4nwzrck5++0YbB1AzZEAkd2iBpUJBmGaQ5FwQjYa/RMFzsau1zQPfOeYpcl
bib2KdjSeDBUmBApGB+CGBJAzrtxmRfSw3dhQgLGP21oTJELP810dOxommOiXR45HpQHUBPF7xAV
GtK0kHHIodLfT1ERPyGl4l+Bxa2lwRAN8N8j3/ctx7I9w8VD4OzccqbsMp6xRjYuPHOaqMdot4P8
dRkqovgZsegNpSodXVZPX+IYMrDQpGAAEj+Kt3uO3CsFXxaDgbcScubhmrjkGUxaQirQ3vL3X4OU
U1VXx+M1TRfx1wQYwyDZHCTMmR+BgkNNgyYJe1sRypbgC/lBSNGn/icExnpB8qzYqRd4s7bJlfwj
vIBbjKKA/tOVhJqRJaGsDA6WFDqAcFFF5PE43kNztN1xSk9AErG6lOULITRJwJQviOTxRKAv4YEM
kiqmGeZI5wILUeC6nZuSzdfXArjK3RDjDg9rFc+7h2xzWWep1DAa9ME3po31Eb6zcS5JRHxWsa8y
P8saXAv6L1XvI/v69V7RcbV65xlVVnvVs7oPkZKVPndurR45J/RJDDlmWQ5wficSKKt40dB+maAa
I03/gQ4nLsWqJg8+i9M/82qeghFrWmn1HdNOTN2UynjbEw82bfP8MUWSMiu6DliFfs6O6RxNLuVw
kWfGiZhaWlj5ADVT7jTeYcqsRG9BuikQtQqnumajchBEJdjxCK+gLqhua9iljkV0Y9g7PrD5bisL
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
8Wa6I2RQKx0cM21mcwPxM6fOeR8FayIk1GqzJkL8XKf4mdc48i3dlry9vyEH+2sJTbK/7AIuJ3pl
4snnihsJXw7X8UVj4mfiZ75+xdev6vP1K96dBRkgA2/VgwyQoT1v1YMMpzmBcYK3NkEGYoaWvW+z
Gq9v4YhX9ddn2GXGntPjvEwTPnPQ7jQH7TgrA5/hM9n4OmTjm/hapTb2bnJukKFh63TVnllDBshA
Np51uhp//YopI2/FbvyaSKGor98r7VkTYfs82+dZLYUMkKGCZCDbQ7aHvZfssCLbQ7YHMkAGyAAZ
IANkgAyQoc5kYEsaZIAMkIE3B3GSi5MCVUtksjbB2gSrlpABMtTyxcXsN+NDBXt+06LRc7oy3yyY
Z0bISYF2n8Fv3JcST4r6xr9Em5fvNueNWrwQvfpH/Bv6LbDmfPGH+Jk1EfZRsI+iEq/IL/H7ftKG
OVnajmXvw6KJLWSF5qOi+UWUV8N9UqQmirRuv10pn88+Fz60re5OMRxlaviPrcytV2H7On85+6Ko
pq4sF4uPXz4aaVXUa54X1dREpyvlnVhLKXOgQTyn/br9gzITskmknrbfrM4BrpL9vvfL7Jwk+5qF
Tns0bsDr0oW1NhduBbmnnxuFe07VW6U232RCDdRADdRADdRADdRADdRADdRADdRADdRADdRADdRA
DdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRA
DdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRA
DdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRADdRA
DdRADdRADdRADdRADdRADdRADdRAjRqrIcuZk6XtWHZQj9UvV1eOcP8h3F/CWc69h9GWtu091m/x
ppydQrf1fWmW6RrmUvxcmn41Sse1VncVfUjD9W5ArIoWKn7Ickg+yzSFf9GDtfo15jbi//CXaUhF
5J+vVVedqo5IeZbOs2qYXSVSJHKdPo29Sj7zzLKfb1IFyuZh9//+p6xb2viuar+lrveuZUfuZ3PR
ujlV/UU1NdHpyoafWEvpAP3BsD86Hw6Gw96oPxp93f5BmQnpLPIObKFZtu7sesY7W/gltu8gfJuL
hKvW97n+++pG/R8VdW4LVX9TnlQndJPji0H0JhMbzONSXGtke6wMzqN0NHU+n8rH755MjTo0WUJv
lu2Vp6FO9zA5+nYZjxgzIt3EUrW93rfPUFyXhyFeqEO8UCombuJDAeKFQuKFAyOAfUe5wqcfN4ld
ghkIM5AGz0Cyd+39GJR3CnDsuBmiQBSIcrwYJQd3ikIDMQpEgSjEKMQoEAWiEKMQo0AUiAJRiFGI
USAKRIEoEAWiQBRmPcx6IApEgSjEKBAFokAUYhRiFIgCUSAKRIEoEAWiQBSIAlHKIMpeTCgIOxAF
okAUiFJSlFG9Y88QBaJAFGY9nD2GKBAFojDrIUaBKMx6mPVAFIgCUYhRytrhBlEgCkSBKBAFokAU
Vo/JzEIUiEKMwloPRIEoxCjEKBAFokAUYhTOHkMUiMLXNdiPQmYWohCjEKNAFIgCUcjMEqNAFIhC
ZpbMLESBKMQorB5DFIhCjNK8cz3kUSAKRGk6UWoRZeTEHjEKRIEovMONzCxEgSjkUdjhBlEgCkQh
RiFGgSjMeuo26zlaQuN06R6IAlGIUdgzS4wCUYhR2OHGfhSIAlHIo5BHgSgQBaKw1kMeBaJAFIgC
USAKRIEoZGYhCkSBKBAFokAUiEJmFqJAFIhCjEIeBaJAFIgCUSAKRIEoEAWiQBSIwttV2DMLUSAK
mVkysxAFonCuh1kPRIEoxCgQBaJAFIgCUSAKRIEoEAWiQBSIAlHYhU9mFqJAFGIUYhSIAlFYPWb1
GKJAFIhCjEKMAlEgCkSBKBAFojDrYdYDUSAKRCFGgSgQBaJAFIgCUSAKRIEoEAWiQBSIAlEgCkSB
KBAFokAUduGz1gNRIApEIUaBKBAForAfBaJAFN7hBlEgCkSBKC17KyREgSgQhTwKeRSIAlEgCkSB
KBAFopCZZdYDUSAKMQoxCkSBKBAFokAUiAJRIApEgSgQBaKQR4EoEAWiEKNAFIjCDjdiFGIUiEKM
QoxCjAJRIApEgSgQBaJAFIgCUSAKRGHPLHkUiAJRiFGIUSAKRIEoEAWiQBSIAlEgCkSBKBAFokAU
iAJRIApEgSjsmYUoEAWiEKOweszqMUSBKMx6iFEgCkSBKBAFokAUiAJRIApEITPL2wzIo0AUiAJR
iFEgCkRh1gNRIApEIUaBKBAFohCjEKNAFIgCUYhRIApEgSjEKBAFokAUiAJRIEoViXI7/Y9U6b01
deGZW0MlUrG9Mn3tX/XLl7p6UNIDd7eLSfrWk5RAt1AV6d0jdGlKD9266QI4ms6O6/3uy9iHF+83
r5qPQrqk7f//7Kti+V6oON5FYdT1B58mst9Lx3r0OosHglfDfVKkfUXegf12pXw++/zpnRGGo0wN
33eUufUqbN/9vpx9UVRTV5aLxccvGSE8uBhfft3+IYKdsu9i1Ov1vm7/ELkLbGITm9jEJjaxeVqb
R01m0xrYxCY2sYlNbGITm9jEJjaxiU1sYhOb2MQmNrGJTWxiE5vYxCY2sYlNbGITm9jEJjaxiU1s
YhOb2MQmNrGJTWxiE5vYxCY2sYlNbGITm/vajH0Jhn+RNO6/IiX5HRjDYX+Qbukvc+kI/fvcmv40
5u92qZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzK
qZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzK
qZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKqZzKj1p5R592lb9M43+XXrlr1VWnqiPLLIQ9
s+znG1fYqitWH4ZIsm+ELuo8q4YZa1M39LuV2evAs2X9/ER/NPq6/UPk8xOR2h9s1XRUzTUsc0va
jqbO51P5QN1PE1uornwuRfPvRHk13CdF3p4ibdlvV8rns8+fvPu0TFP4ph6se2G/CNt/ttBDrZ5F
MRxlapi6Z3NuvQrbb8YvZ18U1dSV5WLx8csBJeSthB5Ls54X3i3otwuvQbz7M56F/dOwpTKd3t8X
s9ns/PJ8rI3Oe91I6a0nuDVXj7bLQ+5s4Yv/3vrykl9CXuq4V1eWeb/UNOEkuvgiXDbiCOu/rzxh
pY86l42kvylPqhPygvHFIOIF249orXWZbJQyJ3NDmO5eXhvuDOkuFuoTQR8LCqQbzkKVt/zjRd6C
fMSzUCsNZzGttBC+b+xs4ctV2QRXDT9J4X4UMr9xpEDDOsL9h3B/CWc5955bdjfbU8BnXIILZWjL
7BJ/tLb7UUekyvC/PWORS2Sd6nRuOE+hp45phM2FD+EKY+9EVvVN16X43j9fhBL8U/QeVkOE38W8
v91+/FO6z9K9taWtSCF7Jdhd4O8UpCAFKUhBClKQghSkIAUpSEEKUpCCFKQgBSlIQQpSkIIUpCAF
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
sMTGssTycyxK0AWWwBJYAktgCSyBJbAElsASWAJLYAksgSXe9iKOKhdoYAksgSWwBJbAElgCS2AJ
LIElsASWwBJYwmwJiziwBJbAElgCS2AJLIElsASWwBJYAktgCSzxI8+WsOUllsASWAJLYAksgSWw
BJbAElgCS2AJLPHcLFFEFaogjExuWAosqgeGstMynlhDAbV4TQ/4CKWSFIYkkASSQBJIAkkgCSSB
JJAEkkASSAJJnhFJ1v66UkgCSSAJJIEkkASSQBJIAkkgCSSBJJAEkljg8tILXDYCSSxwscAFS2AJ
LIElsASWwBJYAktgCSyBJbCE7UBtB4olsASWwBJYAktgCSyBJbAElsASWAJLmC1R8WwJLIElsASW
wBJYAktgCSyBJbAElsASWAJLYAmzJbAElsASWAJLYAksgSWwBJbAElgCS2AJLGFvCXtLYAksgSWw
BJbAElgCS2AJLIElsASWwBJYYmNnS5TQgmLuYbYElsASWAJLYAksgSWwBJbAElgCS2AJLOF1paXV
oJrVIut4XSmWwBJYAktgCSyBJbAElsASWAJLYAksYbbEpi3iqHKBRpmVGWZLYAksgSWwBJbAElgC
S2AJLIElsASWwBJYAktgCSyBJbAElsASWAJLYAksgSWwBJbAEvaW8CYOLIElsASWwBJYAktgCSyB
JbAElsASWAJLmC1htgSWwBJYAktgCSyBJbAElsASWAJLYAksYcvLl9ny0gtCsQSWwBJYAktgCSyB
JbAElsASWAJLYAmzJTZmtoRFHFgCS2AJLIElsASWwBJYAktgCSyBJbCEvSXWurdEiUkMj+6BJbAE
lsASWAJLYAksgSWwBJbAElgCS2AJsyXsLYElsASWwBJYAktgCSyBJbAElsASWAJLYImKZks8xwyI
pX3EbAksgSWwBJbAElgCS2AJLIElsASWwBJYwpaXtrzEElgCS2AJLIElsASWwBJYAktgCSyBJcyW
eAN7S+Shhy0vsQSWwBJYAktgCSyBJbAElsASWAJLYAksgSWwBJbAElgCS2AJLIElsASWwBJYAktg
CSxhy0tbXmIJLIElsASWwBJYAktgCSyBJbAElsAS5VmiNC+smoTr3fKyOHp4QSiWwBJYAktgCSyB
JbAElsASWAJLYAksYRGHN3FgCSyBJbAElsASWAJLYAksgSWwBJbAEljCIg6LOLAElsASWAJLYAks
gSWwBJbAElgCS2CJH54lyk1SKPcS0VXUYO0zPF7TAz5CqSSFIQkkgSSQBJJAEkgCSSAJJIEkkASS
bC6SFDGOKkAlc07GqgCShCnVzO9IpJUSW2qYu2HuBpbAElgCS2AJLIElsASWwBJYAktgiVe7pARL
YAksgSWwBJbAElgCS2AJLIElsASWwBJYovAGnMX5YgVYyJyLUWIXCxtwYgksgSWwBJbAElgCS2AJ
LIElsASWwBLeC+K9IFgCS2AJLIElsASWwBJYAktgCSyBJbAElsASWAJLYAksgSWwBJbAElgCS2AJ
LIElsASWsIjDIg4sgSWwBJbAElgCS2AJLIElsASWwBJYwpaXz7DlZZXbWa5sDba8xBJYAktgCSyB
JbAElsASWAJLYAksgSXe7myJl2CJ0jMqzJbAElgCS2AJLIElsASWwBJYAktgCSyBJbwgtPC8h7Kr
RZ5YQwHgeE0P+K+TUJ6JJTY7IyEJJIEkkASSQBJIAkkgCSSBJJAEklhSYu6GuRvmbmAJLIElsASW
wBJYAktgCSyBJbAElsASWAJLYAksgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAElsASWAJL
YAksgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAElsASG/hekGr2xXyKGSXIYeUdPrEElsAS
WAJLYAksgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAElsASWAJLYAksYRHH+l9XWuVCj4yX
nC6rHFgCS2AJLIElsASWwBJYAktgCSyBJbAEljBbwmwJLIElsASWwBJYAktgCSyBJbAElsASWOIH
ZYmVqaEgZqw0iaHYdAwsgSWwBJbAElgCS2AJLIElsASWwBJYAkt4E4c3cWAJLIElsASWwBJYAktg
CSyBJbAElsASWKJilrCIA0tgCSyBJbAElsASWAJLYAksgSWwBJbAEvaWwBJYAktgCSyBJbAElsAS
WAJLYAksgSWwBJbIZwl7S2AJLIElsASWwBJYAktgCSyBJbAElsASFnHYWwJLYAksgSWwBJbAElgC
S2AJLIElsASWwBJYAktgCSyBJbAElsASWAJLYAksgSWwBJbAElhi41migDWUWC2CJbAElsASWAJL
YAksgSWwBJbAElgCS2AJe0vYWwJLYAksgSWwBJbAElgCS2AJLIElsASWeHGWKKIFVcysyJwFsRRu
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
m/jz9lbR2wx8M1XT1I2GKxkbEBJDykLABJ6c4IiUTACTEy/vxuU8QrEG4gSGAEVYyoW6ccgjTupk
klFV16oO7dkn1XIWh592ZEF14T6HmT3Q9rO0ZsLv5BNWLsZis92WoKF6OozJM9Wyu7Pv9/B70PrP
tY4oA8tYR6QD9TcUP7wKyxzKxRtQSwMEFAACAAgAUQsiSksbgTWnAAAA0gAAADUAHABzdG9yYWdl
L3dlYnNxbC9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1c2Utc3RkZXJyLnR4dFVUCQADyhxqWMoc
alh1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHb
DHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t
2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hH
pAP1NxQ/vArLHMrFG1BLAwQUAAIACABSCyJKSxuBNacAAADSAAAARgAcAHN0b3JhZ2Uvd2Vic3Fs
L2NoYW5nZS12ZXJzaW9uLW5vLWNyYXNoLW9uLXByZWZsaWdodC1mYWlsdXJlLXN0ZGVyci50eHRV
VAkAA8scaljLHGpYdXgLAAEE9QEAAAQUAAAANczNCsIwEATgu0+xx/agEcRLEEG0J5FCi/acpFsI
pLthm/jz9lbR2wx8M1XT1I2GKxkbEBJDykLABJ6c4IiUTACTEy/vxuU8QrEG4gSGAEVYyoW6ccgj
TupkklFV16oO7dkn1XIWh592ZEF14T6HmT3Q9rO0ZsLv5BNWLsZis92WoKF6OozJM9Wyu7Pv9/B7
0PrPtY4oA8tYR6QD9TcUP7wKyxzKxRtQSwMEFAACAAgAUgsiSos2fx2yAAAASAMAACgAHABzdG9y
YWdlL3dlYnNxbC9jaGFuZ2UtdmVyc2lvbi1zdGRlcnIudHh0VVQJAAPLHGpYyxxqWHV4CwABBPUB
AAAEFAAAAO2PzQrCMBCE7z7FHtuDRhAvQQTRnkQKFes5SVcIpLthm/jz9lrRV/DkbQa+Gfiqpqkb
DScyNiAkhpSFgAk8OcEeKZkAJieeXo3LuYdiDsQJDAGKsJQT1XLIPQ5qZ5JR1fmozmj3PqkjZ3E4
ti0LqgN3ObywG9ruRVoz4HsyhpmLsVgslyVoqO4OY/JMtayu7Ls1fB60/uJaR5QLS19HpA11LYq/
PArLHMpJ9Tf6G/3c6AlQSwMEFAACAAgAUgsiSksbgTWnAAAA0gAAADIAHABzdG9yYWdlL3dlYnNx
bC9jbG9zZS1kdXJpbmctc3RyZXNzLXRlc3Qtc3RkZXJyLnR4dFVUCQADzBxqWMwcalh1eAsAAQT1
AQAABBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYr
GRsQEkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3Zk
QXXhPoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArL
HMrFG1BLAwQUAAIACABSCyJKr4gc160AAACkAQAANAAcAHN0b3JhZ2Uvd2Vic3FsL2RhdGFiYXNl
LWxvY2stYWZ0ZXItcmVsb2FkLXN0ZGVyci50eHRVVAkAA8wcaljMHGpYdXgLAAEE9QEAAAQUAAAA
3Y/NCsIwEITvfYo9tgeNIF6CCKI9iRQq6jlJtxBId8M2qfr2/qAv4W0Gvm9g6rZtWg1nMjYgJIaU
hYAJPDnBASmZACYnnk3G5TxAuQDiBIYARViqQl045AFHtTfJqPp6Ule0B5/UibM4fLcdC6ojdzm8
sBva7kVaM+JHeYe5i7FcrlYVaKjvDmPyTI2sJ/bdBr4LWv9wrSNKzzI0EWlL3QXF94/SMoeqqP/u
0RNQSwMEFAACAAgAUgsiSksbgTWnAAAA0gAAACkAHABzdG9yYWdlL3dlYnNxbC9lbXB0eS1zdGF0
ZW1lbnQtc3RkZXJyLnR4dFVUCQADzBxqWMwcalh1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH
9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G
5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz
3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQUAAIACABTCyJKSxuB
NacAAADSAAAAKgAcAHN0b3JhZ2Uvd2Vic3FsL2V4ZWN1dGUtc3FsLWFyZ3Mtc3RkZXJyLnR4dFVU
CQADzRxqWM0calh1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL9pykWwik
u2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYARVjKhbpxyCNO
6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7s+/38HvQ
+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQUAAIACABTCyJKSxuBNacAAADSAAAAMgAcAHN0b3Jh
Z2Uvd2Vic3FsL2V4ZWN1dGUtc3FsLXJvd3NBZmZlY3RlZC1zdGRlcnIudHh0VVQJAAPNHGpYzRxq
WHV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsM
fDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3Z
J9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEek
A/U3FD+8CsscysUbUEsDBBQAAgAIAFMLIkpLG4E1pwAAANIAAAA/ABwAc3RvcmFnZS93ZWJzcWwv
ZXhlY3V0ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1zdGRlcnIudHh0VVQJAAPNHGpY
zRxqWHV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW
0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeq
Du3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPL
WEekA/U3FD+8CsscysUbUEsDBBQAAgAIAFQLIkpLG4E1pwAAANIAAAAuABwAc3RvcmFnZS93ZWJz
cWwvaGFzaC1jaGFuZ2Utd2l0aC14aHItc3RkZXJyLnR4dFVUCQADzxxqWM8calh1eAsAAQT1AQAA
BBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQ
EkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXh
PoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrF
G1BLAwQUAAIACABUCyJKr4gc160AAACkAQAAPwAcAHN0b3JhZ2Uvd2Vic3FsL211bHRpcGxlLWRh
dGFiYXNlcy1nYXJiYWdlLWNvbGxlY3Rpb24tc3RkZXJyLnR4dFVUCQADzxxqWM8calh1eAsAAQT1
AQAABBQAAADdj80KwjAQhO99ij22B40gXoIIoj2JFCrqOUm3EEh3wzap+vb+oC/hbQa+b2Dqtm1a
DWcyNiAkhpSFgAk8OcEBKZkAJieeTcblPEC5AOIEhgBFWKpCXTjkAUe1N8mo+npSV7QHn9SJszh8
tx0LqiN3ObywG9ruRVoz4kd5h7mLsVyuVhVoqO8OY/JMjawn9t0Gvgta/3CtI0rPMjQRaUvdBcX3
j9Iyh6qo/+7RE1BLAwQUAAIACABUCyJKaKQ3ObAAAAB2AgAARAAcAHN0b3JhZ2Uvd2Vic3FsL211
bHRpcGxlLXRyYW5zYWN0aW9ucy1vbi1kaWZmZXJlbnQtaGFuZGxlcy1zdGRlcnIudHh0VVQJAAPQ
HGpY0BxqWHV4CwABBPUBAAAEFAAAAO2PzQrCMBCE7z7FHtuDRhAvQQTRnkQKFes5SVcIpLthm/jz
9lrRd/DgbQa+GfiqpqkbDScyNiAkhpSFgAk8OcEeKZkAJieeXo3LuYdiDsQJDAGKsJQT1XLIPQ5q
Z5JR1fmozmj3PqkjZ3E4ti0LqgN3ObywG9ruRVoz4HsyhpmLsVgslyVoqO4OY/JMtayu7Ls1fB60
/uJaR5QLS19HpA11LYq/PArLHMpJ9Tf6eaMnUEsDBBQAAgAIAFQLIkpLG4E1pwAAANIAAAAvABwA
c3RvcmFnZS93ZWJzcWwvbXVsdGlwbGUtdHJhbnNhY3Rpb25zLXN0ZGVyci50eHRVVAkAA9AcaljQ
HGpYdXgLAAEE9QEAAAQUAAAANczNCsIwEATgu0+xx/agEcRLEEG0J5FCi/acpFsIpLthm/jz9lbR
2wx8M1XT1I2GKxkbEBJDykLABJ6c4IiUTACTEy/vxuU8QrEG4gSGAEVYyoW6ccgjTupkklFV16oO
7dkn1XIWh592ZEF14T6HmT3Q9rO0ZsLv5BNWLsZis92WoKF6OozJM9Wyu7Pv9/B70PrPtY4oA8tY
R6QD9TcUP7wKyxzKxRtQSwMEFAACAAgAVAsiSksbgTWnAAAA0gAAACgAHABzdG9yYWdlL3dlYnNx
bC9udWxsLWNhbGxiYWNrcy1zdGRlcnIudHh0VVQJAAPQHGpY0BxqWHV4CwABBPUBAAAEFAAAADXM
zQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASe
nOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90Paz
tGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQA
AgAIAFQLIkqviBzXrQAAAKQBAABIABwAc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1jcmVh
dGlvbi1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1zdGRlcnIudHh0VVQJAAPQHGpY0BxqWHV4CwAB
BPUBAAAEFAAAAN2PzQrCMBCE732KPbYHjSBeggiiPYkUKuo5SbcQSHfDNqn69v6gL+FtBr5vYOq2
bVoNZzI2ICSGlIWACTw5wQEpmQAmJ55NxuU8QLkA4gSGAEVYqkJdOOQBR7U3yaj6elJXtAef1Imz
OHy3HQuqI3c5vLAb2u5FWjPiR3mHuYuxXK5WFWio7w5j8kyNrCf23Qa+C1r/cK0jSs8yNBFpS90F
xfeP0jKHqqj/7tETUEsDBBQAAgAIAFULIkqLNn8dsgAAAEgDAAA5ABwAc3RvcmFnZS93ZWJzcWwv
b3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFjay1zdGRlcnIudHh0VVQJAAPRHGpY0RxqWHV4
CwABBPUBAAAEFAAAAO2PzQrCMBCE7z7FHtuDRhAvQQTRnkQKFes5SVcIpLthm/jz9lrRV/DkbQa+
GfiqpqkbDScyNiAkhpSFgAk8OcEeKZkAJieeXo3LuYdiDsQJDAGKsJQT1XLIPQ5qZ5JR1fmozmj3
PqkjZ3E4ti0LqgN3ObywG9ruRVoz4HsyhpmLsVgslyVoqO4OY/JMtayu7Ls1fB60/uJaR5QLS19H
pA11LYq/PArLHMpJ9Tf6G/3c6AlQSwMEFAACAAgAVQsiSksbgTWnAAAA0gAAADUAHABzdG9yYWdl
L3dlYnNxbC9vcGVuLWRhdGFiYXNlLWVtcHR5LXZlcnNpb24tc3RkZXJyLnR4dFVUCQAD0RxqWNEc
alh1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHb
DHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t
2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hH
pAP1NxQ/vArLHMrFG1BLAwQUAAIACABVCyJKSxuBNacAAADSAAAANAAcAHN0b3JhZ2Uvd2Vic3Fs
L29wZW4tZGF0YWJhc2UtZXhwYW5kLXF1b3RhLXN0ZGVyci50eHRVVAkAA9EcaljRHGpYdXgLAAEE
9QEAAAQUAAAANczNCsIwEATgu0+xx/agEcRLEEG0J5FCi/acpFsIpLthm/jz9lbR2wx8M1XT1I2G
KxkbEBJDykLABJ6c4IiUTACTEy/vxuU8QrEG4gSGAEVYyoW6ccgjTupkklFV16oO7dkn1XIWh592
ZEF14T6HmT3Q9rO0ZsLv5BNWLsZis92WoKF6OozJM9Wyu7Pv9/B70PrPtY4oA8tYR6QD9TcUP7wK
yxzKxRtQSwMEFAACAAgAVQsiSglw3hMKAQAAuAIAADkAHABzdG9yYWdlL3dlYnNxbC9vcGVuLWRh
dGFiYXNlLXNldC1lbXB0eS12ZXJzaW9uLXN0ZGVyci50eHRVVAkAA9EcaljRHGpYdXgLAAEE9QEA
AAQUAAAA3ZFPS8NAEMXv/RRzkgTUlEpBFhHE5iQSSLQ9ls1mIoubmTDZjfbbm41/DhU89eRtl3nv
8eY3eVkWpYJn0rVD8AyCXiyOCM4OHriFRntd6wGBdIcDtCzAYl8sQWsd7vfLRbZlF6ZZtpmkWb6r
sh3WD9ZnFQcxGH/3LJg9chPcJHvD+jt0tsTHk2jzinJp+j65Xq1SUFAzO/jyKnUkVKpBhx6LuUpi
mKa2P+IKTRDrD5/TaIWz8z+yNjHLMk0NMV3kx0x8EAImsGQEOySvHejg+WLUJoQOkiUQe9AEKMKS
noTIjOJqvY4o8neDfSxYyM3Itrn9vYtSPcp0nK7oke6o2aLY9pBEiP9xow9QSwMEFAACAAgAVQsi
Sq+IHNetAAAApAEAAEUAHABzdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLXdoaWxlLXRyYW5z
YWN0aW9uLWluLXByb2dyZXNzLXN0ZGVyci50eHRVVAkAA9IcaljSHGpYdXgLAAEE9QEAAAQUAAAA
3Y/NCsIwEITvfYo9tgeNIF6CCKI9iRQq6jlJtxBId8M2qfr2/qAv4W0Gvm9g6rZtWg1nMjYgJIaU
hYAJPDnBASmZACYnnk3G5TxAuQDiBIYARViqQl045AFHtTfJqPp6Ule0B5/UibM4fLcdC6ojdzm8
sBva7kVaM+JHeYe5i7FcrlYVaKjvDmPyTI2sJ/bdBr4LWv9wrSNKzzI0EWlL3QXF94/SMoeqqP/u
0RNQSwMEFAACAAgAVQsiSksbgTWnAAAA0gAAADkAHABzdG9yYWdlL3dlYnNxbC9wcml2YXRlLWJy
b3dzaW5nLW5vcmVhZC1ub3dyaXRlLXN0ZGVyci50eHRVVAkAA9IcaljSHGpYdXgLAAEE9QEAAAQU
AAAANczNCsIwEATgu0+xx/agEcRLEEG0J5FCi/acpFsIpLthm/jz9lbR2wx8M1XT1I2GKxkbEBJD
ykLABJ6c4IiUTACTEy/vxuU8QrEG4gSGAEVYyoW6ccgjTupkklFV16oO7dkn1XIWh592ZEF14T6H
mT3Q9rO0ZsLv5BNWLsZis92WoKF6OozJM9Wyu7Pv9/B70PrPtY4oA8tYR6QD9TcUP7wKyxzKxRtQ
SwMEFAACAAgAVQsiSmikNzmwAAAAdgIAAEcAHABzdG9yYWdlL3dlYnNxbC9yZWFkLWFuZC13cml0
ZS10cmFuc2FjdGlvbnMtZG9udC1ydW4tdG9nZXRoZXItc3RkZXJyLnR4dFVUCQAD0hxqWNIcalh1
eAsAAQT1AQAABBQAAADtj80KwjAQhO8+xR7bg0YQL0EE0Z5EChXrOUlXCKS7YZv48/Za0Xfw4G0G
vhn4qqapGw0nMjYgJIaUhYAJPDnBHimZACYnnl6Ny7mHYg7ECQwBirCUE9VyyD0OameSUdX5qM5o
9z6pI2dxOLYtC6oDdzm8sBva7kVaM+B7MoaZi7FYLJclaKjuDmPyTLWsruy7NXwetP7iWkeUC0tf
R6QNdS2KvzwKyxzKSfU3+nmjJ1BLAwQUAAIACABVCyJKr4gc160AAACkAQAAQAAcAHN0b3JhZ2Uv
d2Vic3FsL3JlYWQtdHJhbnNhY3Rpb25zLXJ1bm5pbmctY29uY3VycmVudGx5LXN0ZGVyci50eHRV
VAkAA9IcaljSHGpYdXgLAAEE9QEAAAQUAAAA3Y/NCsIwEITvfYo9tgeNIF6CCKI9iRQq6jlJtxBI
d8M2qfr2/qAv4W0Gvm9g6rZtWg1nMjYgJIaUhYAJPDnBASmZACYnnk3G5TxAuQDiBIYARViqQl04
5AFHtTfJqPp6Ule0B5/UibM4fLcdC6ojdzm8sBva7kVaM+JHeYe5i7FcrlYVaKjvDmPyTI2sJ/bd
Br4LWv9wrSNKzzI0EWlL3QXF94/SMoeqqP/u0RNQSwMEFAACAAgAVgsiSksbgTWnAAAA0gAAACgA
HABzdG9yYWdlL3dlYnNxbC9zcWwtZGF0YS10eXBlcy1zdGRlcnIudHh0VVQJAAPTHGpY0xxqWHV4
CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV
09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9Vy
FoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3
FD+8CsscysUbUEsDBBQAAgAIAFYLIkqviBzXrQAAAKQBAABBABwAc3RvcmFnZS93ZWJzcWwvc3Rh
dGVtZW50LWVycm9yLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLXN0ZGVyci50eHRVVAkAA9McaljT
HGpYdXgLAAEE9QEAAAQUAAAA3Y/NCsIwEITvfYo9tgeNIF6CCKI9iRQq6jlJtxBId8M2qfr2/qAv
4W0Gvm9g6rZtWg1nMjYgJIaUhYAJPDnBASmZACYnnk3G5TxAuQDiBIYARViqQl045AFHtTfJqPp6
Ule0B5/UibM4fLcdC6ojdzm8sBva7kVaM+JHeYe5i7FcrlYVaKjvDmPyTI2sJ/bdBr4LWv9wrSNK
zzI0EWlL3QXF94/SMoeqqP/u0RNQSwMEFAACAAgAVgsiSksbgTWnAAAA0gAAADIAHABzdG9yYWdl
L3dlYnNxbC9zdGF0ZW1lbnQtZXJyb3ItY2FsbGJhY2stc3RkZXJyLnR4dFVUCQAD0xxqWNMcalh1
eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwz
VdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfV
chaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1
NxQ/vArLHMrFG1BLAwQUAAIACABWCyJKr4gc160AAACkAQAAQwAcAHN0b3JhZ2Uvd2Vic3FsL3N0
YXRlbWVudC1zdWNjZXNzLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLXN0ZGVyci50eHRVVAkAA9Qc
aljUHGpYdXgLAAEE9QEAAAQUAAAA3Y/NCsIwEITvfYo9tgeNIF6CCKI9iRQq6jlJtxBId8M2qfr2
/qAv4W0Gvm9g6rZtWg1nMjYgJIaUhYAJPDnBASmZACYnnk3G5TxAuQDiBIYARViqQl045AFHtTfJ
qPp6Ule0B5/UibM4fLcdC6ojdzm8sBva7kVaM+JHeYe5i7FcrlYVaKjvDmPyTI2sJ/bdBr4LWv9w
rSNKzzI0EWlL3QXF94/SMoeqqP/u0RNQSwMEFAACAAgAVgsiSksbgTWnAAAA0gAAACoAHABzdG9y
YWdlL3dlYnNxbC9zdWNjZXNzLWNhbGxiYWNrLXN0ZGVyci50eHRVVAkAA9QcaljUHGpYdXgLAAEE
9QEAAAQUAAAANczNCsIwEATgu0+xx/agEcRLEEG0J5FCi/acpFsIpLthm/jz9lbR2wx8M1XT1I2G
KxkbEBJDykLABJ6c4IiUTACTEy/vxuU8QrEG4gSGAEVYyoW6ccgjTupkklFV16oO7dkn1XIWh592
ZEF14T6HmT3Q9rO0ZsLv5BNWLsZis92WoKF6OozJM9Wyu7Pv9/B70PrPtY4oA8tYR6QD9TcUP7wK
yxzKxRtQSwMEFAACAAgAVgsiSksbgTWnAAAA0gAAAEMAHABzdG9yYWdlL3dlYnNxbC9zdWNjZXNz
LWNhbGxiYWNrLXdoZW4tcGFnZS1kZWZlcnMtbG9hZGluZy1zdGRlcnIudHh0VVQJAAPUHGpY1Bxq
WHV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsM
fDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3Z
J9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEek
A/U3FD+8CsscysUbUEsDBBQAAgAIAFcLIkpLG4E1pwAAANIAAAApABwAc3RvcmFnZS93ZWJzcWwv
dGVzdC1hdXRob3JpemVyLXN0ZGVyci50eHRVVAkAA9UcaljVHGpYdXgLAAEE9QEAAAQUAAAANczN
CsIwEATgu0+xx/agEcRLEEG0J5FCi/acpFsIpLthm/jz9lbR2wx8M1XT1I2GKxkbEBJDykLABJ6c
4IiUTACTEy/vxuU8QrEG4gSGAEVYyoW6ccgjTupkklFV16oO7dkn1XIWh592ZEF14T6HmT3Q9rO0
ZsLv5BNWLsZis92WoKF6OozJM9Wyu7Pv9/B70PrPtY4oA8tYR6QD9TcUP7wKyxzKxRtQSwMEFAAC
AAgAVwsiSksbgTWnAAAA0gAAAD4AHABzdG9yYWdlL3dlYnNxbC90cmFuc2FjdGlvbi1jYWxsYmFj
ay1leGNlcHRpb24tY3Jhc2gtc3RkZXJyLnR4dFVUCQAD1RxqWNUcalh1eAsAAQT1AQAABBQAAAA1
zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAE
npzgiJRMAJMTL+/G5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2
s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQU
AAIACABXCyJKr4gc160AAACkAQAAPQAcAHN0b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9uLWNhbGxi
YWNrLWlzb2xhdGVkLXdvcmxkLXN0ZGVyci50eHRVVAkAA9YcaljWHGpYdXgLAAEE9QEAAAQUAAAA
3Y/NCsIwEITvfYo9tgeNIF6CCKI9iRQq6jlJtxBId8M2qfr2/qAv4W0Gvm9g6rZtWg1nMjYgJIaU
hYAJPDnBASmZACYnnk3G5TxAuQDiBIYARViqQl045AFHtTfJqPp6Ule0B5/UibM4fLcdC6ojdzm8
sBva7kVaM+JHeYe5i7FcrlYVaKjvDmPyTI2sJ/bdBr4LWv9wrSNKzzI0EWlL3QXF94/SMoeqqP/u
0RNQSwMEFAACAAgAVwsiSq+IHNetAAAApAEAAEMAHABzdG9yYWdlL3dlYnNxbC90cmFuc2FjdGlv
bi1lcnJvci1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1zdGRlcnIudHh0VVQJAAPWHGpY1hxqWHV4
CwABBPUBAAAEFAAAAN2PzQrCMBCE732KPbYHjSBeggiiPYkUKuo5SbcQSHfDNqn69v6gL+FtBr5v
YOq2bVoNZzI2ICSGlIWACTw5wQEpmQAmJ55NxuU8QLkA4gSGAEVYqkJdOOQBR7U3yaj6elJXtAef
1ImzOHy3HQuqI3c5vLAb2u5FWjPiR3mHuYuxXK5WFWio7w5j8kyNrCf23Qa+C1r/cK0jSs8yNBFp
S90FxfeP0jKHqqj/7tETUEsDBBQAAgAIAFgLIkpLG4E1pwAAANIAAAA0ABwAc3RvcmFnZS93ZWJz
cWwvdHJhbnNhY3Rpb24tZXJyb3ItY2FsbGJhY2stc3RkZXJyLnR4dFVUCQAD1xxqWNccalh1eAsA
AQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPU
jYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaH
n3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/
vArLHMrFG1BLAwQUAAIACABYCyJKSxuBNacAAADSAAAALwAcAHN0b3JhZ2Uvd2Vic3FsL3RyYW5z
YWN0aW9uLXByb3RvdHlwZS1zdGRlcnIudHh0VVQJAAPXHGpY1xxqWHV4CwABBPUBAAAEFAAAADXM
zQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASe
nOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90Paz
tGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQA
AgAIAFgLIkqviBzXrQAAAKQBAABFABwAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tc3VjY2Vz
cy1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1zdGRlcnIudHh0VVQJAAPYHGpY2BxqWHV4CwABBPUB
AAAEFAAAAN2PzQrCMBCE732KPbYHjSBeggiiPYkUKuo5SbcQSHfDNqn69v6gL+FtBr5vYOq2bVoN
ZzI2ICSGlIWACTw5wQEpmQAmJ55NxuU8QLkA4gSGAEVYqkJdOOQBR7U3yaj6elJXtAef1ImzOHy3
HQuqI3c5vLAb2u5FWjPiR3mHuYuxXK5WFWio7w5j8kyNrCf23Qa+C1r/cK0jSs8yNBFpS90FxfeP
0jKHqqj/7tETUEsDBBQAAgAIANkLIkpnGILIt18CAAybPgAZABwAd3B0d2tfcHJvY2Vzc19sb2cu
b3V0LnR4dFVUCQADyR1qWJsaalh1eAsAAQT1AQAABBQAAADsvWlz5DaWKPrdv0Ifnj12T6GKAMFN
8fQ6ylX2dM94C5f79o14824FF6REVyqZQzJrmZgf/8DMlJSScgFJLAdMeHpslVRKHBycfX37w/f/
+LfLTyxDy3nazqr6FrWsaZvLf6vKxfVFW12sGnaxrOr2IvDiiH71tt8vBF/9/Zcff93799mC1Wnb
/dKCfbp48/qiXFy8+l/VfHXLmldv0zZ99cM/3736J8v+o2y3//l+Vc6LV29Ztrp+NU+/VKt2/WGo
Zs1q3jav3n9atu9zVrfNETgfzk0viEfji6xsL35/9/piWZcf05ZdfGBfvnr5r//6r1+97PdP9yuf
6vL+Sjuf1+HlX6Rd7lWe8s98uWS3//IV6v756vB1/9F04OTVYlZer7p7V4uLWV3dykP1q2rJFk0z
f5nPrr96c8PyDxftTdryf7GLmv3Xiv/WxW3a5jesWX+vKa8Xabuq2Vfv7r66qD589YZ/Vjkr8w5j
b1mblvPm8quL7T/vWF2m84tfVrcZqy8vcBwGF996nyOafHf/d/5XOi+Lsv1y/43un1+q9uJ7xvHB
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
a2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLXN0ZGVyci50eHRVVAUAA7Qaalh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAA1CiJKMDu4sUsAAABoAAAAPAAYAAAAAAABAAAApIEYYgIAY3J5cHRvL3N1
YnRsZS9yc2EtaW1wb3J0LWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1zdGRlcnIudHh0VVQFAAO2
GmpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAMgoiSgAAAAAAAAAAAAAAAA8AGAAAAAAAAAAQ
AO1B2WICAGNyeXB0by93b3JrZXJzL1VUBQADsBpqWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
ADIKIkoAAAAAAAAAAAAAAAAWABgAAAAAAAAAEADtQSJjAgBjcnlwdG8vd29ya2Vycy9zdWJ0bGUv
VVQFAAOwGmpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgACAAAAMgoiSiXg0wgsAAAALAAAADEAGAAA
AAAAAQAAAKSBcmMCAGNyeXB0by93b3JrZXJzL3N1YnRsZS9yc2EtZ2VuZXJhdGUta2V5LXN0ZGVy
ci50eHRVVAUAA7Aaalh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAA4CiJKAAAAAAAAAAAAAAAA
DQAYAAAAAAAAABAA7UEJZAIAZGlzcGxheWxpc3RzL1VUBQADuxpqWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIADcKIkqjV/3oUAAAAI4AAAAyABgAAAAAAAEAAACkgVBkAgBkaXNwbGF5bGlzdHMv
ZXh0ZW50LWluY2x1ZGVzLXRyYW5zZm9ybXMtc3RkZXJyLnR4dFVUBQADuhpqWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIADgKIkrylpXVRwAAAEkAAAApABgAAAAAAAEAAACkgQxlAgBkaXNwbGF5
bGlzdHMvbGF5ZXItZGlzcGF5LWxpc3Qtc3RkZXJyLnR4dFVUBQADuxpqWHV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAHoKIkoAAAAAAAAAAAAAAAAIABgAAAAAAAAAEADtQbZlAgBlZGl0aW5nL1VU
BQADOBtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHoKIkoAAAAAAAAAAAAAAAARABgAAAAA
AAAAEADtQfhlAgBlZGl0aW5nL2RlbGV0aW5nL1VUBQADOBtqWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAHoKIkp5DG5XvAEAAAYTAAAoABgAAAAAAAEAAACkgUNmAgBlZGl0aW5nL2RlbGV0aW5n
L2RlbGV0ZS1lbW9qaS1zdGRlcnIudHh0VVQFAAM4G2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAWgoiSgAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BYWgCAGVkaXRpbmcvcGFzdGVib2FyZC9V
VAUAA/waalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABMCiJKfqnxIOkAAACCAQAAMAAYAAAA
AAABAAAApIGuaAIAZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktcmVzb2x2ZXMtdXJscy1zdGRlcnIu
dHh0VVQFAAPfGmpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWgoiSlcYE0naAAAAUAEAACwA
GAAAAAAAAQAAAKSBAWoCAGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1ub3BsdWdpbi1zdGRlcnIu
dHh0VVQFAAP7GmpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWgoiSlcYE0naAAAAUAEAADIA
GAAAAAAAAQAAAKSBQWsCAGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1ub3BsdWdpbi14aHRtbC1z
dGRlcnIudHh0VVQFAAP7GmpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWgoiSndNix3jAAAA
dwEAACwAGAAAAAAAAQAAAKSBh2wCAGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1ub3NjcmlwdC1z
dGRlcnIudHh0VVQFAAP8GmpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWgoiSkouPjDiAAAA
ewEAADIAGAAAAAAAAQAAAKSB0G0CAGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1ub3NjcmlwdC14
aHRtbC1zdGRlcnIudHh0VVQFAAP8GmpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAAQwiSmx7
MK4iCwAACzsAAA0AGAAAAAAAAQAAAKSBHm8CAGVycm9yX2xvZy50eHRVVAUAAxIealh1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAADDCiJKAAAAAAAAAAAAAAAABQAYAAAAAAAAABAA7UGHegIAZmFz
dC9VVAUAA70balh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABqCiJKAAAAAAAAAAAAAAAADAAY
AAAAAAAAABAA7UHGegIAZmFzdC9jYW52YXMvVVQFAAMXG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAagoiSoLCDRx7AAAAAgEAACYAGAAAAAAAAQAAAKSBDHsCAGZhc3QvY2FudmFzL2NhbnZh
cy1saW5lRGFzaC1zdGRlcnIudHh0VVQFAAMXG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
wwoiSgAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1B53sCAGZhc3QvY3NzL1VUBQADvRtqWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAMMKIkoFESfcsgAAAM4BAAA2ABgAAAAAAAEAAACkgSp8AgBm
YXN0L2Nzcy9wZXJzcGVjdGl2ZS1vcmlnaW4taW5pdGlhbC1pbmhlcml0LXN0ZGVyci50eHRVVAUA
A70balh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABjCiJKAAAAAAAAAAAAAAAACQAYAAAAAAAA
ABAA7UFMfQIAZmFzdC9kb20vVVQFAAMKG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAYwoi
SgAAAAAAAAAAAAAAABoAGAAAAAAAAAAQAO1Bj30CAGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIv
VVQFAAMKG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYwoiSksbgTWnAAAA0gAAAD8AGAAA
AAAAAQAAAKSB430CAGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvZGF0YWJhc2UtY2FsbGJhY2st
ZGVsaXZlcnktc3RkZXJyLnR4dFVUBQADChtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAKEK
IkoAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQQN/AgBmYXN0L2Zvcm1zL1VUBQADfhtqWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAGkKIkouX9jvewEAAPg5AAAzABgAAAAAAAEAAACkgUh/AgBm
YXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcGF0dGVybk1pc21hdGNoLXN0ZGVyci50eHRVVAUAAxUb
alh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAChCiJKAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA
7UEwgQIAZmFzdC9mb3Jtcy9maWxlL1VUBQADfhtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ADAMIkqkq0rXyUcAAOsKAQA0ABgAAAAAAAEAAACkgXqBAgBmYXN0L2Zvcm1zL2ZpbGUvaW5wdXQt
ZmlsZS13cml0ZS1maWxlcy1jcmFzaC1sb2cudHh0VVQFAANsHmpYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAqgoiSgAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BsckCAGZhc3QvZnJhbWVzL1VU
BQADjxtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKoKIkpLG4E1pwAAANIAAAAvABgAAAAA
AAEAAACkgffJAgBmYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLXN0b3JhZ2Utc3RkZXJyLnR4
dFVUBQADjxtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHAKIkoAAAAAAAAAAAAAAAANABgA
AAAAAAAAEADtQQfLAgBmYXN0L2hpc3RvcnkvVVQFAAMkG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAcAoiSksbgTWnAAAA0gAAAEAAGAAAAAAAAQAAAKSBTssCAGZhc3QvaGlzdG9yeS9wYWdl
LWNhY2hlLXdlYmRhdGFiYXNlLW5vLXRyYW5zYWN0aW9uLWRiLXN0ZGVyci50eHRVVAUAAyQbalh1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAB4CiJKAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UFv
zAIAZmFzdC9pbWFnZXMvVVQFAAM0G2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAeAoiSiGP
vTgyAAAAMwAAACwAGAAAAAAAAQAAAKSBtcwCAGZhc3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS1jcm9w
LWJveC1zdGRlcnIudHh0VVQFAAM0G2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAkAoiSgAA
AAAAAAAAAAAAAAoAGAAAAAAAAAAQAO1BTc0CAGZhc3QvdGV4dC9VVAUAA18balh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACQCiJK766nIXgBAACICQAAIwAYAAAAAAABAAAApIGRzQIAZmFzdC90
ZXh0L2Vtb2ppLWdlbmRlci0yLXN0ZGVyci50eHRVVAUAA18balh1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAACSCiJKAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UFmzwIAZmFzdC94c2wvVVQFAANk
G2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAkAoiSk77IPiIAAAA5wAAACUAGAAAAAAAAQAA
AKSBqc8CAGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0ZGVyci50eHRVVAUAA2Abalh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACACRCiJK/aIuZI8AAADuAAAAJwAYAAAAAAABAAAApIGQ0AIA
ZmFzdC94c2wveHNsdC1iYWQtaW1wb3J0LXVyaS1zdGRlcnIudHh0VVQFAANhG2pYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAkQoiSs+PZg5QAAAAoAAAACQAGAAAAAAAAQAAAKSBgNECAGZhc3Qv
eHNsL3hzbHQtY29udGVudFR5cGUtc3RkZXJyLnR4dFVUBQADYRtqWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAJIKIkqBSnetSwAAAKwAAAA0ABgAAAAAAAEAAACkgS7SAgBmYXN0L3hzbC94c2x0
LXRyYW5zZm9ybS10by1mcmFnbWVudC1jcmFzaC1zdGRlcnIudHh0VVQFAANkG2pYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAMQwiSnRmpM+CAQAAVwIAABEAGAAAAAAAAQAAAKSB59ICAGZ1bGxf
cmVzdWx0cy5qc29uVVQFAANuHmpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAlAoiSgAAAAAA
AAAAAAAAAAUAGAAAAAAAAAAQAO1BtNQCAGh0dHAvVVQFAANoG2pYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAA1woiSgAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1B89QCAGh0dHAvdGVzdHMvVVQF
AAPmG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAlQoiSgAAAAAAAAAAAAAAAC8AGAAAAAAA
AAAQAO1BONUCAGh0dHAvdGVzdHMvY29udGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gv
VVQFAANqG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAlQoiStyYb+82AAAAOgAAAFEAGAAA
AAAAAQAAAKSBodUCAGh0dHAvdGVzdHMvY29udGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRi
b3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtc3RkZXJyLnR4dFVUBQADahtqWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAJQKIkrcmG/vNgAAADoAAABqABgAAAAAAAEAAACkgWLWAgBodHRwL3Rl
c3RzL2NvbnRlbnRkaXNwb3NpdGlvbmF0dGFjaG1lbnRzYW5kYm94L3JlZmVyZXItaGVhZGVyLXN0
cmlwcGVkLXdpdGgtbWV0YS1yZWZlcmVyLWFsd2F5cy1zdGRlcnIudHh0VVQFAANoG2pYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAlAoiStyYb+82AAAAOgAAAGsAGAAAAAAAAQAAAKSBPNcCAGh0
dHAvdGVzdHMvY29udGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFk
ZXItc3RyaXBwZWQtd2l0aC1tZXRhLXJlZmVyZXItZGVmYXVsdC1zdGRlcnIudHh0VVQFAANoG2pY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAlAoiStyYb+82AAAAOgAAAGkAGAAAAAAAAQAAAKSB
F9gCAGh0dHAvdGVzdHMvY29udGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJl
ci1oZWFkZXItc3RyaXBwZWQtd2l0aC1tZXRhLXJlZmVyZXItbmV2ZXItc3RkZXJyLnR4dFVUBQAD
aBtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJUKIkrcmG/vNgAAADoAAABvABgAAAAAAAEA
AACkgfDYAgBodHRwL3Rlc3RzL2NvbnRlbnRkaXNwb3NpdGlvbmF0dGFjaG1lbnRzYW5kYm94L3Jl
ZmVyZXItaGVhZGVyLXN0cmlwcGVkLXdpdGgtbWV0YS1yZWZlcmVyLW5vLXJlZmVycmVyLXN0ZGVy
ci50eHRVVAUAA2kbalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACVCiJK3Jhv7zYAAAA6AAAA
fgAYAAAAAAABAAAApIHP2QIAaHR0cC90ZXN0cy9jb250ZW50ZGlzcG9zaXRpb25hdHRhY2htZW50
c2FuZGJveC9yZWZlcmVyLWhlYWRlci1zdHJpcHBlZC13aXRoLW1ldGEtcmVmZXJlci1uby1yZWZl
cnJlci13aGVuLWRvd25ncmFkZS1zdGRlcnIudHh0VVQFAANpG2pYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAlQoiStyYb+82AAAAOgAAAGoAGAAAAAAAAQAAAKSBvdoCAGh0dHAvdGVzdHMvY29u
dGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQt
d2l0aC1tZXRhLXJlZmVyZXItb3JpZ2luLXN0ZGVyci50eHRVVAUAA2kbalh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACVCiJK3Jhv7zYAAAA6AAAAbgAYAAAAAAABAAAApIGX2wIAaHR0cC90ZXN0
cy9jb250ZW50ZGlzcG9zaXRpb25hdHRhY2htZW50c2FuZGJveC9yZWZlcmVyLWhlYWRlci1zdHJp
cHBlZC13aXRoLW1ldGEtcmVmZXJlci11bnNhZmUtdXJsLXN0ZGVyci50eHRVVAUAA2kbalh1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAADJCiJKAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA7UF13AIA
aHR0cC90ZXN0cy9taXNjL1VUBQADyhtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKcKIkpe
hPRp5gAAAGIBAAAtABgAAAAAAAEAAACkgb/cAgBodHRwL3Rlc3RzL21pc2MvY29weS1yZXNvbHZl
cy11cmxzLXN0ZGVyci50eHRVVAUAA4kbalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADJCiJK
FTU1knoAAAC8AAAAKgAYAAAAAAABAAAApIEM3gIAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWlt
cG9ydC1zdGRlcnIudHh0VVQFAAPKG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAzAoiSgAA
AAAAAAAAAAAAABQAGAAAAAAAAAAQAO1B6t4CAGh0dHAvdGVzdHMvc2VjdXJpdHkvVVQFAAPQG2pY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAuwoiSgAAAAAAAAAAAAAAACoAGAAAAAAAAAAQAO1B
ON8CAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L1VUBQADsRtqWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALoKIkpjqqxsggAAAKgAAABAABgAAAAAAAEAAACkgZzf
AgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtYWxsb3dlZC1z
dGRlcnIudHh0VVQFAAOwG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAuwoiSmOqrGyCAAAA
qAAAAFIAGAAAAAAAAQAAAKSBmOACAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3hzbC11bmFmZmVjdGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAUAA7Ebalh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACxCiJKr4gc160AAACkAQAAOgAYAAAAAAABAAAApIGm
4QIAaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2Vic3FsLWFsbG93ZWQtc3RkZXJy
LnR4dFVUBQADnRtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALEKIkpLG4E1pwAAANIAAAAy
ABgAAAAAAAEAAACkgcfiAgBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13ZWJzcWwt
c3RkZXJyLnR4dFVUBQADnRtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMQKIkpLG4E1pwAA
ANIAAAA/ABgAAAAAAAEAAACkgdrjAgBodHRwL3Rlc3RzL3NlY3VyaXR5L3N0b3JhZ2UtYmxvY2tp
bmctbG9vc2VuZWQtd2Vic3FsLXN0ZGVyci50eHRVVAUAA8Abalh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADFCiJKSxuBNacAAADSAAAAQwAYAAAAAAABAAAApIH65AIAaHR0cC90ZXN0cy9zZWN1
cml0eS9zdG9yYWdlLWJsb2NraW5nLXN0cmVuZ3RoZW5lZC13ZWJzcWwtc3RkZXJyLnR4dFVUBQAD
wRtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMwKIkpgS2YQkQAAAPsBAABFABgAAAAAAAEA
AACkgR7mAgBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQteHNsLWRvY3VtZW50LXNlY3Vy
aXR5T3JpZ2luLXN0ZGVyci50eHRVVAUAA9Abalh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACo
CiJKAAAAAAAAAAAAAAAAEwAYAAAAAAAAABAA7UEu5wIAaHR0cC90ZXN0cy9zdG9yYWdlL1VUBQAD
ixtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKgKIkpLG4E1pwAAANIAAABFABgAAAAAAAEA
AACkgXvnAgBodHRwL3Rlc3RzL3N0b3JhZ2UvY2FsbGJhY2tzLWFyZS1jYWxsZWQtaW4tY29ycmVj
dC1jb250ZXh0LXN0ZGVyci50eHRVVAUAA4sbalh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADX
CiJKAAAAAAAAAAAAAAAAGgAYAAAAAAAAABAA7UGh6AIAaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9VVAUAA+Ybalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADXCiJKfn/tF7EAAAABAQAAQQAY
AAAAAAABAAAApIH16AIAaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVu
dC10eXBlLWFzeW5jLXN0ZGVyci50eHRVVAUAA+Ybalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADXCiJKfn/tF7EAAAABAQAAQAAYAAAAAAABAAAApIEh6gIAaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLXN5bmMtc3RkZXJyLnR4dFVUBQAD5htqWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIACYKIkpbBFgOogUAAE0QAAAKABgAAAAAAAEAAACkgUzrAgBo
dHRwZC5jb25mVVQFAAOYGmpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA0AoiSgAAAAAAAAAA
AAAAAAkAGAAAAAAAAAAQAO1BMvECAGltcG9ydGVkL1VUBQAD1xtqWHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAANEKIkoAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQXXxAgBpbXBvcnRlZC93M2Mv
VVQFAAPZG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA0QoiSgAAAAAAAAAAAAAAABoAGAAA
AAAAAAAQAO1BvPECAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvVVQFAAPZG2pYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAA1AoiSgAAAAAAAAAAAAAAACYAGAAAAAAAAAAQAO1BEPICAGltcG9y
dGVkL3czYy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvVVQFAAPgG2pYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA0QoiSo80GnBEAAAAoAkAAEcAGAAAAAAAAQAAAKSBcPICAGltcG9ydGVkL3cz
Yy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19SU0EtT0FFUC1zdGRlcnIu
dHh0VVQFAAPZG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1AoiSlQCybI2AAAAwAIAAFAA
GAAAAAAAAQAAAKSBNfMCAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVz
dF9mYWlsdXJlc19SU0FTU0EtUEtDUzEtdjFfNS1zdGRlcnIudHh0VVQFAAPgG2pYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAA0goiSgAAAAAAAAAAAAAAACAAGAAAAAAAAAAQAO1B9fMCAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvVVQFAAPbG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAA8woiSgAAAAAAAAAAAAAAACoAGAAAAAAAAAAQAO1BT/QCAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL1VUBQADGhxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIANAKIkpGaBvbmQAAAMUAAABIABgAAAAAAAEAAACkgbP0AgBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJjdXJzb3JfaXRlcmF0aW5nLXN0ZGVyci50eHRVVAUA
A9cbalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADZCiJKHdGPJqMAAABPAgAARgAYAAAAAAAB
AAAApIHO9QIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFj
dG9yeV9vcGVuMTEtc3RkZXJyLnR4dFVUBQAD6RtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ANoKIkpGaBvbmQAAAMUAAABDABgAAAAAAAEAAACkgfH2AgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9jb3VudC1zdGRlcnIudHh0VVQFAAPsG2pYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2goiSkZoG9uZAAAAxQAAAEQAGAAAAAAAAQAAAKSBB/gC
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2NvdW50
Mi1zdGRlcnIudHh0VVQFAAPrG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2goiSkZoG9uZ
AAAAxQAAAEQAGAAAAAAAAQAAAKSBHvkCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmluZGV4X2NvdW50My1zdGRlcnIudHh0VVQFAAPrG2pYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA5AoiSkZoG9uZAAAAxQAAAEkAGAAAAAAAAQAAAKSBNfoCAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NvdW50LXN0
ZGVyci50eHRVVAUAA/sbalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADjCiJKRmgb25kAAADF
AAAASgAYAAAAAAABAAAApIFR+wIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRib2JqZWN0c3RvcmVfY291bnQyLXN0ZGVyci50eHRVVAUAA/obalh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADjCiJKMD2FN58AAACKAQAASgAYAAAAAAABAAAApIFu/AIAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY291bnQz
LXN0ZGVyci50eHRVVAUAA/obalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADmCiJKRmgb25kA
AADFAAAASwAYAAAAAAABAAAApIGR/QIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNS1zdGRlcnIudHh0VVQFAAP/G2pYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA6goiSkZoG9uZAAAAxQAAAE4AGAAAAAAAAQAAAKSBr/4CAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYnRyYW5zYWN0aW9uLW9u
Y29tcGxldGUtc3RkZXJyLnR4dFVUBQADCBxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPIK
IkowPYU3nwAAAIoBAABYABgAAAAAAAEAAACkgdD/AgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNoYW5nZS1zdGRl
cnIudHh0VVQFAAMYHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8woiSkZoG9uZAAAAxQAA
AEYAGAAAAAAAAQAAAKSBAQEDAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL3dyaXRlci1zdGFydmF0aW9uLXN0ZGVyci50eHRVVAUAAxocalh1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAADSCiJKAAAAAAAAAAAAAAAAJgAYAAAAAAAAABAA7UEaAgMAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9VVAUAA9sbalh1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAADSCiJKAAAAAAAAAAAAAAAAKgAYAAAAAAAAABAA7UF6AgMAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvVVQFAAPbG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAA1woiSgAAAAAAAAAAAAAAAC8AGAAAAAAAAAAQAO1B3gIDAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvVVQFAAPmG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA0goiSnnmOO4MAgAAvQwAAEUAGAAAAAAAAQAAAKSBRwMDAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1vcmlnaW4tc3RkZXJyLnR4dFVUBQAD
2xtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANIKIkoqtLcRPQEAABEEAABRABgAAAAAAAEA
AACkgdIFAwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2Nv
cnMtcHJlZmxpZ2h0LXJlZGlyZWN0LXN0ZGVyci50eHRVVAUAA9wbalh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADUCiJKCfnELYsCAADODwAATwAYAAAAAAABAAAApIGaBwMAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC1zdGF0dXMt
c3RkZXJyLnR4dFVUBQAD3xtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANUKIkqu8axalwEA
AN4FAABIABgAAAAAAAEAAACkga4KAwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXN0ZGVyci50eHRVVAUAA+Ebalh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADXCiJKKMlFRsYCAAC/EwAAUQAYAAAAAAABAAAApIHHDAMAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXJlZGlyZWN0LXBy
ZWZsaWdodC1zdGRlcnIudHh0VVQFAAPmG2pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAADgsi
SgAAAAAAAAAAAAAAAAMAGAAAAAAAAAAQAO1BGBADAGpzL1VUBQADTBxqWHV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAEELIkoAAAAAAAAAAAAAAAAHABgAAAAAAAAAEADtQVUQAwBqcy9kb20vVVQF
AAOqHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADgsiSksbgTWnAAAA0gAAADUAGAAAAAAA
AQAAAKSBlhADAGpzL2RvbS9jYWxsYmFjay1mdW5jdGlvbi13aXRoLWhhbmRsZS1ldmVudC1zdGRl
cnIudHh0VVQFAANMHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAQQsiSksbgTWnAAAA0gAA
ADAAGAAAAAAAAQAAAKSBrBEDAGpzL2RvbS9leGNlcHRpb25zLXRocm93bi1pbi1jYWxsYmFja3Mt
c3RkZXJyLnR4dFVUBQADqhxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAEgLIkoAAAAAAAAA
AAAAAAAGABgAAAAAAAAAEADtQb0SAwBtZWRpYS9VVAUAA7ccalh1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAABICyJKAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UH9EgMAbWVkaWEvdHJhY2svVVQF
AAO3HGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgASAsiSo3pGFRLAQAAVAIAACoAGAAAAAAA
AQAAAKSBQxMDAG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUtYWN0dWFsLnR4dFVUBQAD
txxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEgLIkoTzMGGbwEAALkCAAAoABgAAAAAAAEA
AACkgfIUAwBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLWRpZmYudHh0VVQFAAO3HGpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgASAsiSgz65Oo2AQAAMwIAACwAGAAAAAAAAQAAAKSB
wxYDAG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUtZXhwZWN0ZWQudHh0VVQFAAO3HGpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgASAsiSssm5ouVCAAAziAAADAAGAAAAAAAAQAAAKSB
XxgDAG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUtcHJldHR5LWRpZmYuaHRtbFVUBQAD
txxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACsLIkoAAAAAAAAAAAAAAAAIABgAAAAAAAAA
EADtQV4hAwBwbHVnaW5zL1VUBQADgRxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACsLIkqV
Dhw/rQAAAPEAAAAvABgAAAAAAAEAAACkgaAhAwBwbHVnaW5zL21vdXNlLWNsaWNrLWlmcmFtZS10
by1wbHVnaW4tc3RkZXJyLnR4dFVUBQADgRxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALkK
IkoqNqNtZQIAAKIVAAAaABgAAAAAAAEAAACkgbYiAwBweXdlYnNvY2tldC53cy5sb2ctZXJyLnR4
dFVUBQADrRtqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALkKIkp8/IdMCAEAAI8CAAAaABgA
AAAAAAEAAACkgW8lAwBweXdlYnNvY2tldC53cy5sb2ctb3V0LnR4dFVUBQADrRtqWHV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAACcKIkoAAAAAAAAAAAAAAAAbABgAAAAAAAAAAACkgcsmAwBweXdl
YnNvY2tldC53c3MubG9nLWVyci50eHRVVAUAA5oaalh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AAAnCiJKAAAAAAAAAAAAAAAAGwAYAAAAAAAAAAAApIEgJwMAcHl3ZWJzb2NrZXQud3NzLmxvZy1v
dXQudHh0VVQFAAOaGmpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMQwiSkUmHTnRJwAAy6oA
AAwAGAAAAAAAAQAAAKSBdScDAHJlc3VsdHMuaHRtbFVUBQADbh5qWHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAC8MIkoAAAAAAAAAAAAAAAAIABgAAAAAAAAAEADtQYxPAwByZXRyaWVzL1VUBQAD
ah5qWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAC8MIkoAAAAAAAAAAAAAAAANABgAAAAAAAAA
EADtQc5PAwByZXRyaWVzL2Zhc3QvVVQFAANqHmpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
LwwiSgAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BFVADAHJldHJpZXMvZmFzdC9mb3Jtcy9VVAUA
A2oealh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAvDCJKAAAAAAAAAAAAAAAAGAAYAAAAAAAA
ABAA7UFiUAMAcmV0cmllcy9mYXN0L2Zvcm1zL2ZpbGUvVVQFAANqHmpYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgALwwiSqSrStfJRwAA6woBADwAGAAAAAAAAQAAAKSBtFADAHJldHJpZXMvZmFz
dC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtd3JpdGUtZmlsZXMtY3Jhc2gtbG9nLnR4dFVUBQADah5q
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADEMIkpqJo1B2hoJAERDMAAKABgAAAAAAAEAAACk
gfOYAwBzdGF0cy5qc29uVVQFAANuHmpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAUgsiSgAA
AAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1BEbQMAHN0b3JhZ2UvVVQFAAPMHGpYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAArwsiSgAAAAAAAAAAAAAAABIAGAAAAAAAAAAQAO1BU7QMAHN0b3JhZ2Uv
aW5kZXhlZGRiL1VUBQADeR1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHQLIkod0Y8mowAA
AE8CAAApABgAAAAAAAEAAACkgZ+0DABzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1iYXNpY3Mtc3Rk
ZXJyLnR4dFVUBQADCx1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHMLIkod0Y8mowAAAE8C
AAAxABgAAAAAAAEAAACkgaW1DABzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1iYXNpY3Mtd29ya2Vy
cy1zdGRlcnIudHh0VVQFAAMKHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAdAsiSm1Nsp2v
AAAAAQoAACgAGAAAAAAAAQAAAKSBs7YMAHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWNvdW50LXN0
ZGVyci50eHRVVAUAAwwdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB4CyJK1sOmDqQAAAAU
AwAALQAYAAAAAAABAAAApIHEtwwAc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtbXVsdGllbnRyeS1z
dGRlcnIudHh0VVQFAAMUHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAeAsiSkZoG9uZAAAA
xQAAAC0AGAAAAAAAAQAAAKSBz7gMAHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LXBvcHVsYXRpb24t
c3RkZXJyLnR4dFVUBQADFB1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHwLIkq+WKp96AUA
ADEyAABFABgAAAAAAAAAAACkgc+5DABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4t
aW4tdXBncmFkZW5lZWRlZC1wcml2YXRlLXN0ZGVyci50eHRVVAUAAxsdalh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAB8CyJK+DKBT/4FAADeNQAAPQAYAAAAAAAAAAAApIE2wAwAc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLWluLXVwZ3JhZGVuZWVkZWQtc3RkZXJyLnR4dFVUBQAD
HB1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHwLIkodUrBKcQQAALUYAABBABgAAAAAAAAA
AACkgavGDABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLXBy
aXZhdGUtc3RkZXJyLnR4dFVUBQADHB1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHwLIkrz
A7G0bAQAAFUYAAA5ABgAAAAAAAAAAACkgZfLDABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9u
LW9wZW4td2l0aC12ZXJzaW9uLXN0ZGVyci50eHRVVAUAAxwdalh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAB8CyJKtg3V+ScFAADNOwAAUQAYAAAAAAAAAAAApIF20AwAc3RvcmFnZS9pbmRleGVk
ZGIvaW50dmVyc2lvbi1wZW5kaW5nLXZlcnNpb24tY2hhbmdlcy1hc2NlbmRpbmctcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAAMcHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAfQsiSo0YyStLBQAA
Dz0AAEkAGAAAAAAAAAAAAKSBKNYMAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tcGVuZGlu
Zy12ZXJzaW9uLWNoYW5nZXMtYXNjZW5kaW5nLXN0ZGVyci50eHRVVAUAAx0dalh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAB9CyJKcUp8p/8EAADWLgAAUgAYAAAAAAAAAAAApIH22wwAc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZW5kaW5nLXZlcnNpb24tY2hhbmdlcy1kZXNjZW5kaW5n
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADHR1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAH0L
IkqpDx/7GQUAAC0sAABKABgAAAAAAAAAAACkgYHhDABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLXBlbmRpbmctdmVyc2lvbi1jaGFuZ2VzLWRlc2NlbmRpbmctc3RkZXJyLnR4dFVUBQADHR1q
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAH0LIkovqYCP2QQAAAErAABMABgAAAAAAAAAAACk
gR7nDABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXBlbmRpbmctdmVyc2lvbi1jaGFuZ2Vz
LXNhbWUtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMeHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAfQsiSiccH+chBQAAKTAAAEQAGAAAAAAAAAAAAKSBfewMAHN0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tcGVuZGluZy12ZXJzaW9uLWNoYW5nZXMtc2FtZS1zdGRlcnIudHh0VVQFAAMeHWpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAfQsiSn3uMGtEBAAAHh0AADsAGAAAAAAAAAAAAKSB
HPIMAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tcGVyc2lzdGVuY2UtcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAAMeHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAfQsiSgrLliYZBAAAVBoA
ADMAGAAAAAAAAAAAAKSB1fYMAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tcGVyc2lzdGVu
Y2Utc3RkZXJyLnR4dFVUBQADHh1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIALIkrM09LG
hAUAAPssAAA/ABgAAAAAAAAAAACkgVv7DABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXJl
dmVydC1vbi1hYm9ydC1wcml2YXRlLXN0ZGVyci50eHRVVAUAAx8dalh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACACyJKJ4ucTYYFAACRLgAANwAYAAAAAAAAAAAApIFYAQ0Ac3RvcmFnZS9pbmRl
eGVkZGIvaW50dmVyc2lvbi1yZXZlcnQtb24tYWJvcnQtc3RkZXJyLnR4dFVUBQADHx1qWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAIALIkpP6lsRAgQAAOgZAABFABgAAAAAAAAAAACkgU8HDQBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXR3by1vcGVucy1uby12ZXJzaW9ucy1wcml2YXRl
LXN0ZGVyci50eHRVVAUAAx8dalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACACyJKLDoS+DUE
AADfGwAAPQAYAAAAAAAAAAAApIHQCw0Ac3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi10d28t
b3BlbnMtbm8tdmVyc2lvbnMtc3RkZXJyLnR4dFVUBQADHx1qWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAIALIkq2V+yhUQUAADlHAAA4ABgAAAAAAAAAAACkgXwQDQBzdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLXVwZ3JhZGVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADIB1qWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAIALIkoafpPnhAUAADpJAAAwABgAAAAAAAAAAACkgT8WDQBzdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXVwZ3JhZGVzLXN0ZGVyci50eHRVVAUAAyAdalh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACACBCyJKE0LN1DwDAACZEQAAMQAYAAAAAAAAAAAApIEtHA0A
c3RvcmFnZS9pbmRleGVkZGIvaW52YWxpZC1rZXlzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADIR1q
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIELIkoKRnVk1gMAACETAAApABgAAAAAAAAAAACk
gdQfDQBzdG9yYWdlL2luZGV4ZWRkYi9pbnZhbGlkLWtleXMtc3RkZXJyLnR4dFVUBQADIR1qWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIELIkowNGkfEw8AAHTGAQAyABgAAAAAAAAAAACkgQ0k
DQBzdG9yYWdlL2luZGV4ZWRkYi9rZXktZ2VuZXJhdG9yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD
Ih1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIILIkrEynPNdg4AAIbQAQAqABgAAAAAAAAA
AACkgYwzDQBzdG9yYWdlL2luZGV4ZWRkYi9rZXktZ2VuZXJhdG9yLXN0ZGVyci50eHRVVAUAAyQd
alh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACCCyJKfkOEwl8FAACsPgAAQAAYAAAAAAAAAAAA
pIFmQg0Ac3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3JkZXItYWNyb3NzLXR5cGVzLXByaXZh
dGUtc3RkZXJyLnR4dFVUBQADJB1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIMLIkqmeKEn
XgYAAIxFAAA4ABgAAAAAAAAAAACkgT9IDQBzdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRl
ci1hY3Jvc3MtdHlwZXMtc3RkZXJyLnR4dFVUBQADJR1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAIMLIkrxfoOwdQUAAKg0AAA4ABgAAAAAAAAAAACkgQ9PDQBzdG9yYWdlL2luZGV4ZWRkYi9r
ZXktc29ydC1vcmRlci1kYXRlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADJR1qWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAIMLIkoWmhf2OgYAAFo8AAAwABgAAAAAAAAAAACkgfZUDQBzdG9yYWdl
L2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1kYXRlLXN0ZGVyci50eHRVVAUAAyUdalh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACECyJKl8HfTXYIAAD+2gAAMwAYAAAAAAAAAAAApIGaWw0Ac3Rv
cmFnZS9pbmRleGVkZGIva2V5LXR5cGUtYXJyYXktcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMnHWpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhAsiSnVPHz87BgAAHEEAADQAGAAAAAAAAAAAAKSB
fWQNAHN0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWJpbmFyeS1wcml2YXRlLXN0ZGVyci50eHRV
VAUAAycdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACECyJKxrbI8hoGAABKQgAALAAYAAAA
AAAAAAAApIEmaw0Ac3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUtYmluYXJ5LXN0ZGVyci50eHRV
VAUAAygdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACECyJKwFUJkmAEAAAYGgAANgAYAAAA
AAAAAAAApIGmcQ0Ac3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUtaW5maW5pdHktcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAAMoHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhAsiShy6VzPsBAAA
wxwAAC4AGAAAAAAAAAAAAKSBdnYNAHN0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWluZmluaXR5
LXN0ZGVyci50eHRVVAUAAygdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACECyJKS700ukoH
AABkPQAAMwAYAAAAAAAAAAAApIHKew0Ac3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1hcnJheXMt
cHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMoHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhQsi
SmBogmOABwAAYUAAACsAGAAAAAAAAAAAAKSBgYMNAHN0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgt
YXJyYXlzLXN0ZGVyci50eHRVVAUAAykdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACGCyJK
evGbjLgDAAA7UAAAMwAYAAAAAAAAAAAApIFmiw0Ac3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1i
YXNpY3MtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMrHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAhwsiSsILrYnzBAAA/JQAACsAGAAAAAAAAAAAAKSBi48NAHN0b3JhZ2UvaW5kZXhlZGRiL2tl
eXBhdGgtYmFzaWNzLXN0ZGVyci50eHRVVAUAAy4dalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACHCyJKwIkattoGAACdfwAAMgAYAAAAAAAAAAAApIHjlA0Ac3RvcmFnZS9pbmRleGVkZGIva2V5
cGF0aC1lZGdlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAAy4dalh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACICyJKu3metfUFAAAYOwAAKgAYAAAAAAAAAAAApIEpnA0Ac3RvcmFnZS9pbmRleGVk
ZGIva2V5cGF0aC1lZGdlcy1zdGRlcnIudHh0VVQFAAMvHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAiAsiSoOHG05OBQAAC0MAADYAGAAAAAAAAAAAAKSBgqINAHN0b3JhZ2UvaW5kZXhlZGRi
L2tleXBhdGgtZmV0Y2gta2V5LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADLx1qWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAIgLIkrNaPZ7SAYAAM9JAAAuABgAAAAAAAAAAACkgUCoDQBzdG9yYWdl
L2luZGV4ZWRkYi9rZXlwYXRoLWZldGNoLWtleS1zdGRlcnIudHh0VVQFAAMwHWpYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAiAsiSv61HlOOBwAAKWgAAEEAGAAAAAAAAAAAAKSB8K4NAHN0b3Jh
Z2UvaW5kZXhlZGRiL2tleXBhdGgtaW50cmluc2ljLXByb3BlcnRpZXMtcHJpdmF0ZS1zdGRlcnIu
dHh0VVQFAAMwHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAiQsiSkMSwZUUCAAA/XcAADkA
GAAAAAAAAAAAAKSB+bYNAHN0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtaW50cmluc2ljLXByb3Bl
cnRpZXMtc3RkZXJyLnR4dFVUBQADMR1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIkLIkoP
NPb/6AAAANACAAAtABgAAAAAAAAAAACkgYC/DQBzdG9yYWdlL2luZGV4ZWRkYi9rZXlyYW5nZS1w
cml2YXRlLXN0ZGVyci50eHRVVAUAAzEdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACKCyJK
vTNDbOUIAABMjAAAOgAYAAAAAAAAAAAApIHPwA0Ac3RvcmFnZS9pbmRleGVkZGIvbGF6eS1pbmRl
eC1wb3B1bGF0aW9uLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADMx1qWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAIoLIkrT8/bhTgkAAOaOAAAyABgAAAAAAAAAAACkgSjKDQBzdG9yYWdlL2luZGV4
ZWRkYi9sYXp5LWluZGV4LXBvcHVsYXRpb24tc3RkZXJyLnR4dFVUBQADNB1qWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAIoLIkrmA7eURAcAAG9jAAA1ABgAAAAAAAAAAACkgeLTDQBzdG9yYWdl
L2luZGV4ZWRkYi9sYXp5LWluZGV4LXR5cGVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADNB1qWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIoLIkoxRd01jQgAABN6AAAtABgAAAAAAAAAAACkgZXb
DQBzdG9yYWdlL2luZGV4ZWRkYi9sYXp5LWluZGV4LXR5cGVzLXN0ZGVyci50eHRVVAUAAzQdalh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACLCyJKDzT2/+gAAADQAgAANQAYAAAAAAAAAAAApIGJ
5A0Ac3RvcmFnZS9pbmRleGVkZGIvbGVnYWN5LWNvbnN0YW50cy1wcml2YXRlLXN0ZGVyci50eHRV
VAUAAzUdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACLCyJKRsfTirQFAABjlQAAMgAYAAAA
AAAAAAAApIHg5Q0Ac3RvcmFnZS9pbmRleGVkZGIvbGlzdC1vcmRlcmluZy1wcml2YXRlLXN0ZGVy
ci50eHRVVAUAAzUdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACLCyJK2pNy74IGAABVlgAA
KgAYAAAAAAAAAAAApIEA7A0Ac3RvcmFnZS9pbmRleGVkZGIvbGlzdC1vcmRlcmluZy1zdGRlcnIu
dHh0VVQFAAM2HWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAiwsiSsuNIS9YBgAAAlgAAC0A
GAAAAAAAAAAAAKSB5vINAHN0b3JhZ2UvaW5kZXhlZGRiL21ldGFkYXRhLXByaXZhdGUtc3RkZXJy
LnR4dFVUBQADNh1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIsLIkoHweNWLwUAAPkgAAAy
ABgAAAAAAAAAAACkgaX5DQBzdG9yYWdlL2luZGV4ZWRkYi9tZXRhZGF0YS1yYWNlLXByaXZhdGUt
c3RkZXJyLnR4dFVUBQADNh1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIwLIkqLQrdxFwYA
AOwlAAAqABgAAAAAAAAAAACkgUD/DQBzdG9yYWdlL2luZGV4ZWRkYi9tZXRhZGF0YS1yYWNlLXN0
ZGVyci50eHRVVAUAAzcdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACMCyJKdudCyhkHAAAJ
XAAAJQAYAAAAAAAAAAAApIG7BQ4Ac3RvcmFnZS9pbmRleGVkZGIvbWV0YWRhdGEtc3RkZXJyLnR4
dFVUBQADNx1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIALIkoAAAAAAAAAAAAAAAAZABgA
AAAAAAAAEADtQTMNDgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vVVQFAAMgHWpYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAUgsiSmb2JexkBwAAfnQAADcAGAAAAAAAAAAAAKSBhg0OAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9hdXRvaW5jcmVtZW50LWFib3J0LXN0ZGVyci50eHRVVAUAA8wc
alh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABSCyJKHM82lj4FAABQIAAANQAYAAAAAAAAAAAA
pIFbFQ4Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jhc2ljLWFkZC1wcml2YXRlLXN0ZGVyci50
eHRVVAUAA8wcalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABSCyJK4FwSq1QFAAAzIAAALQAY
AAAAAAAAAAAApIEIGw4Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jhc2ljLWFkZC1zdGRlcnIu
dHh0VVQFAAPMHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUwsiSuLVzaEFBQAAxBwAADUA
GAAAAAAAAAAAAKSBwyAOAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9iYXNpYy1wdXQtcHJpdmF0
ZS1zdGRlcnIudHh0VVQFAAPNHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUwsiSq1TqfUY
BQAA/RwAAC0AGAAAAAAAAAAAAKSBNyYOAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9iYXNpYy1w
dXQtc3RkZXJyLnR4dFVUBQADzRxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFMLIkpXNWTv
SgYAADcyAAA5ABgAAAAAAAAAAACkgbYrDgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYmluYXJ5
LWtleXMtMS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA80calh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACABTCyJKAvcSLiEHAACXNQAAMQAYAAAAAAAAAAAApIFzMg4Ac3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2JpbmFyeS1rZXlzLTEtc3RkZXJyLnR4dFVUBQADzhxqWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAFQLIkpDglKoqwcAAOxHAAAvABgAAAAAAAAAAACkgf85DgBzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vYmxvYi1jdXJzb3Itc3RkZXJyLnR4dFVUBQADzxxqWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAFULIkqmWTJNZQoAAAi8AAAvABgAAAAAAAAAAACkgRNCDgBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vYmxvYi1zaW1wbGUtc3RkZXJyLnR4dFVUBQAD0RxqWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAFQLIkoKa7qkzwoAAK28AAA3ABgAAAAAAAAAAACkgeFMDgBzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vYmxvYi1zaW1wbGUtd29ya2Vycy1zdGRlcnIudHh0VVQFAAPQHGpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVQsiSgG5xElGBgAAgjcAADIAGAAAAAAAAAAAAKSB
IVgOAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9ibG9iLXN2Zy1pbWFnZS1zdGRlcnIudHh0VVQF
AAPSHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVQsiSs7mNxOVBgAA/DUAAEQAGAAAAAAA
AAAAAKSB014OAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9ibG9ja2VkLW9wZW4tZGItcmVxdWVz
dHMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPSHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
VQsiSqOfT27lBgAArDYAADwAGAAAAAAAAAAAAKSB5mUOAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9ibG9ja2VkLW9wZW4tZGItcmVxdWVzdHMtc3RkZXJyLnR4dFVUBQAD0hxqWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAFYLIkrdrb+AeAYAACozAABBABgAAAAAAAAAAACkgUFtDgBzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vY3JlYXRlLWluZGV4LWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQAD0xxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFYLIkpfJ4PMhgYAAEAwAAA5ABgA
AAAAAAAAAACkgTR0DgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3JlYXRlLWluZGV4LWZhaWx1
cmVzLXN0ZGVyci50eHRVVAUAA9Mcalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABWCyJKFA5m
OGEGAAAZSQAAQwAYAAAAAAAAAAAApIEtew4Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2NyZWF0
ZW9iamVjdHN0b3JlLWJhc2ljLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD0xxqWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAFYLIkrZhqOKkwYAAJxKAAA7ABgAAAAAAAAAAACkgQuCDgBzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vY3JlYXRlb2JqZWN0c3RvcmUtYmFzaWMtc3RkZXJyLnR4dFVUBQAD
1BxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFYLIkqe6BdB0gQAAPAbAABGABgAAAAAAAAA
AACkgROJDgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3JlYXRlb2JqZWN0c3RvcmUtZmFpbHVy
ZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPUHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
VgsiSshyO3uBBAAAPxkAAD4AGAAAAAAAAAAAAKSBZY4OAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9jcmVhdGVvYmplY3RzdG9yZS1mYWlsdXJlcy1zdGRlcnIudHh0VVQFAAPUHGpYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAVwsiSloL8/QjBwAAonAAADQAGAAAAAAAAAAAAKSBXpMOAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItMS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA9Ucalh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABXCyJKDWFdrx0HAABwewAALAAYAAAAAAAAAAAApIHv
mg4Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci0xLXN0ZGVyci50eHRVVAUAA9Ucalh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABXCyJKtBsANoQHAADRkwAANAAYAAAAAAAAAAAApIFy
og4Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci0yLXByaXZhdGUtc3RkZXJyLnR4dFVU
BQAD1hxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFgLIkru7r81+wcAAGmrAAAsABgAAAAA
AAAAAACkgWSqDgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTItc3RkZXJyLnR4dFVU
BQAD1xxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFgLIkoI9C2wlQYAAKFmAAA0ABgAAAAA
AAAAAACkgcWyDgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTMtcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAAPXHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWAsiSpCnDHJtBwAAEXkA
ACwAGAAAAAAAAAAAAKSByLkOAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItMy1zdGRl
cnIudHh0VVQFAAPYHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWAsiSq4gSIbCBgAAwV4A
ADQAGAAAAAAAAAAAAKSBm8EOAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItNC1wcml2
YXRlLXN0ZGVyci50eHRVVAUAA9gcalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABZCyJKPb+o
1gwHAACucAAALAAYAAAAAAAAAAAApIHLyA4Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNv
ci00LXN0ZGVyci50eHRVVAUAA9kcalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABZCyJKuKkI
8U8GAACDNAAANAAYAAAAAAAAAAAApIE90A4Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNv
ci01LXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD2RxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AFkLIkqJkpGD9AYAAG05AAAsABgAAAAAAAAAAACkgfrWDgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vY3Vyc29yLTUtc3RkZXJyLnR4dFVUBQAD2RxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AFkLIkrOtFJMeAYAACU1AAA0ABgAAAAAAAAAAACkgVTeDgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vY3Vyc29yLTYtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPZHGpYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAWQsiSoaS46AkBwAAezkAACwAGAAAAAAAAAAAAKSBOuUOAHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9jdXJzb3ItNi1zdGRlcnIudHh0VVQFAAPaHGpYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAWQsiSuK8kGcWBgAAJi4AADQAGAAAAAAAAAAAAKSBxOwOAHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9jdXJzb3ItNy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA9ocalh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABZCyJKhdpgXX8GAAC/MAAALAAYAAAAAAAAAAAApIFI8w4Ac3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci03LXN0ZGVyci50eHRVVAUAA9ocalh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABaCyJK+//Q0ywGAACELQAANAAYAAAAAAAAAAAApIEt+g4Ac3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci04LXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD2xxqWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFoLIkog/qDGqAYAAM0wAAAsABgAAAAAAAAAAACkgccA
DwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTgtc3RkZXJyLnR4dFVUBQAD2xxqWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFoLIkrjaRKxpAYAAC5HAAA2ABgAAAAAAAAAAACkgdUH
DwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGF0ZS1iYXNpYy1wcml2YXRlLXN0ZGVyci50eHRV
VAUAA9scalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABaCyJKcc7qt7gGAACtSQAALgAYAAAA
AAAAAAAApIHpDg8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RhdGUtYmFzaWMtc3RkZXJyLnR4
dFVUBQAD3BxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFoLIkpuBA2NrQUAAMcwAAA8ABgA
AAAAAAAAAACkgQkWDwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2UtMS1w
cml2YXRlLXN0ZGVyci50eHRVVAUAA9wcalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABaCyJK
ooM/6sIFAAAPMgAANAAYAAAAAAAAAAAApIEsHA8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Rl
bGV0ZWRhdGFiYXNlLTEtc3RkZXJyLnR4dFVUBQAD3BxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAFsLIkqkOTWQTQYAAJ80AAA8ABgAAAAAAAAAAACkgVwiDwBzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vZGVsZXRlZGF0YWJhc2UtMi1wcml2YXRlLXN0ZGVyci50eHRVVAUAA90calh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABbCyJKh77rZn8GAACyNAAANAAYAAAAAAAAAAAApIEfKQ8Ac3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWRhdGFiYXNlLTItc3RkZXJyLnR4dFVUBQAD3Rxq
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFsLIkqKBEKp4AAAAM4CAABOABgAAAAAAAAAAACk
gQwwDwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2UtbnVsbC1uYW1lLWV4
Y2VwdGlvbi1wcml2YXRlLXN0ZGVyci50eHRVVAUAA90calh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACABbCyJKl0bJWk8BAACdAwAASAAYAAAAAAAAAAAApIF0MQ8Ac3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2RlbGV0ZWRhdGFiYXNlLXJlcXVlc3QtZXZlbnQtcHJpdmF0ZS1zdGRlcnIudHh0VVQF
AAPdHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWwsiSt4LlZGKAQAAQgQAAEAAGAAAAAAA
AAAAAKSBRTMPAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFzZS1yZXF1ZXN0
LWV2ZW50LXN0ZGVyci50eHRVVAUAA94calh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABbCyJK
YDb0MlYAAACZAAAAQgAYAAAAAAAAAAAApIFJNQ8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Rl
bGV0ZWRhdGFiYXNlLXJlcXVlc3QtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPeHGpYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAWwsiSrMO0hYOAQAAIQMAADoAGAAAAAAAAAAAAKSBGzYPAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFzZS1yZXF1ZXN0LXN0ZGVyci50eHRVVAUA
A94calh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABbCyJKgVTIJKEHAACEPQAAOQAYAAAAAAAA
AAAApIGdNw8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTEtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAAPeHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAXAsiSqONC8+4CAAA
9UMAADEAGAAAAAAAAAAAAKSBsT8PAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVpbmRl
eC0xLXN0ZGVyci50eHRVVAUAA98calh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABcCyJKsQ4Y
8EwIAACyWgAAOQAYAAAAAAAAAAAApIHUSA8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0
ZWluZGV4LTItcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPfHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAXAsiSoZuhAqVCQAAeWYAADEAGAAAAAAAAAAAAKSBk1EPAHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9kZWxldGVpbmRleC0yLXN0ZGVyci50eHRVVAUAA+Acalh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABcCyJKW1tjl6sFAAC7JwAAOQAYAAAAAAAAAAAApIGTWw8Ac3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPgHGpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAXAsiSuJpNdsrBgAAWSsAADEAGAAAAAAAAAAAAKSBsWEP
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVpbmRleC0zLXN0ZGVyci50eHRVVAUAA+Ac
alh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABdCyJK5kQ+4dAFAAC1MQAAOQAYAAAAAAAAAAAA
pIFHaA8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTQtcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAAPhHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAXQsiSk/2vkowCAAAWXQA
AD8AGAAAAAAAAAAAAKSBim4PAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVvYmplY3Rz
dG9yZS0xLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD4RxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAF0LIkr1sV2fGAgAAC56AAA3ABgAAAAAAAAAAACkgTN3DwBzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vZGVsZXRlb2JqZWN0c3RvcmUtMS1zdGRlcnIudHh0VVQFAAPiHGpYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAXQsiSnDpn/XiAwAAfhUAADgAGAAAAAAAAAAAAKSBvH8PAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9kb3VibGUtYWJvcnQtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPiHGpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAXQsiSlzsGAoDBAAAzRMAADAAGAAAAAAAAAAAAKSB
EIQPAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kb3VibGUtYWJvcnQtc3RkZXJyLnR4dFVUBQAD
4hxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAF0LIkq4t05baQMAAJQTAAA3ABgAAAAAAAAA
AACkgX2IDwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZG91YmxlLW9wZW4tcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAAPiHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAXQsiSkdwo5+6AwAAbxcA
AC8AGAAAAAAAAAAAAKSBV4wPAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kb3VibGUtb3Blbi1z
dGRlcnIudHh0VVQFAAPiHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYAsiSprOWqW1BAAA
TCYAAD4AGAAAAAAAAAAAAKSBepAPAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9nYy1jbG9zZXMt
ZGF0YWJhc2UtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPjHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAYAsiSm2DVYbiBAAAliYAADYAGAAAAAAAAAAAAKSBp5UPAHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9nYy1jbG9zZXMtZGF0YWJhc2Utc3RkZXJyLnR4dFVUBQAD4xxqWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAGALIkpW+zn2bgYAAL46AAA+ABgAAAAAAAAAAACkgfmaDwBzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vZ2V0LWluZGV4LWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4dFVU
BQAD5BxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGALIkqwB2xM4QYAAFE5AAA2ABgAAAAA
AAAAAACkgd+hDwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZ2V0LWluZGV4LWZhaWx1cmVzLXN0
ZGVyci50eHRVVAUAA+Qcalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABhCyJK8UpAw+ULAAD2
PAIAOAAYAAAAAAAAAAAApIEwqQ8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2dldC1rZXlyYW5n
ZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA+Ucalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABh
CyJKcUPXpvgLAAAGWwIAMAAYAAAAAAAAAAAApIGHtQ8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L2dldC1rZXlyYW5nZS1zdGRlcnIudHh0VVQFAAPmHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAYgsiSn5AlivaBQAAOiUAADYAGAAAAAAAAAAAAKSB6cEPAHN0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9oYW5kbGUtdXNlci1kZWxldGUtc3RkZXJyLnR4dFVUBQAD5xxqWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAGILIkp4NnV6jBEAAMv1AgBMABgAAAAAAAAAAACkgTPIDwBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vaWRiY3Vyc29yLWNvbnRpbnVlLXByaW1hcnkta2V5LTEtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAAPoHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZAsiShAnNZavFAAA
mmADAEQAGAAAAAAAAAAAAKSBRdoPAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJjdXJzb3It
Y29udGludWUtcHJpbWFyeS1rZXktMS1zdGRlcnIudHh0VVQFAAPrHGpYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAZAsiSviSFqXPBgAAyUQAAFIAGAAAAAAAAAAAAKSBcu8PAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9pZGJkYXRhYmFzZS1kZWxldGVvYmplY3RzdG9yZS1mYWlsdXJlcy1wcml2
YXRlLXN0ZGVyci50eHRVVAUAA+scalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABkCyJKNzgl
N2oGAACcOgAASgAYAAAAAAAAAAAApIHN9g8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYmRh
dGFiYXNlLWRlbGV0ZW9iamVjdHN0b3JlLWZhaWx1cmVzLXN0ZGVyci50eHRVVAUAA+wcalh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABkCyJKUC6F188EAABRGwAATAAYAAAAAAAAAAAApIG7/Q8A
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYmRhdGFiYXNlLXRyYW5zYWN0aW9uLWZhaWx1cmVz
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD7BxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGQL
IkpNn6aM3wQAAC0bAABEABgAAAAAAAAAAACkgRADEABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
aWRiZGF0YWJhc2UtdHJhbnNhY3Rpb24tZmFpbHVyZXMtc3RkZXJyLnR4dFVUBQAD7BxqWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAGULIkoGPzykRAcAAMhbAAA9ABgAAAAAAAAAAACkgW0IEABz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiaW5kZXgtZ2V0YWxsLTEtcHJpdmF0ZS1zdGRlcnIu
dHh0VVQFAAPtHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZQsiSs1dcDwVCAAAGXUAADUA
GAAAAAAAAAAAAKSBKBAQAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJpbmRleC1nZXRhbGwt
MS1zdGRlcnIudHh0VVQFAAPtHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZQsiSnUJw2Ys
BwAA610AAEEAGAAAAAAAAAAAAKSBrBgQAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJpbmRl
eC1nZXRhbGxrZXlzLTEtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPuHGpYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAZQsiSgMxwm8oCAAA/XMAADkAGAAAAAAAAAAAAKSBUyAQAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9pZGJpbmRleC1nZXRhbGxrZXlzLTEtc3RkZXJyLnR4dFVUBQAD7hxqWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGYLIkqKMgW/7AUAALg7AABFABgAAAAAAAAAAACkge4o
EABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiaW5kZXgtcHJvcGVydGllcy1iYXNpYy1wcml2
YXRlLXN0ZGVyci50eHRVVAUAA+8calh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABmCyJKbWNA
AO8FAABPPQAAPQAYAAAAAAAAAAAApIFZLxAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYmlu
ZGV4LXByb3BlcnRpZXMtYmFzaWMtc3RkZXJyLnR4dFVUBQAD7xxqWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAGcLIkqR29qBahAAAPOlBgBBABgAAAAAAAAAAACkgb81EABzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vaWRia2V5LWFycmF5LWVxdWFsaXR5LXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD
8RxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGgLIkpizcQQIhQAAK/eBwA5ABgAAAAAAAAA
AACkgaRGEABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRia2V5LWFycmF5LWVxdWFsaXR5LXN0
ZGVyci50eHRVVAUAA/Qcalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABpCyJKBARvW+QHAAB2
ggAAQgAYAAAAAAAAAAAApIE5WxAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0
b3JlLWNsZWFyLTEtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAP1HGpYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAaQsiShClY33hBwAA/IIAADoAGAAAAAAAAAAAAKSBmWMQAHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1jbGVhci0xLXN0ZGVyci50eHRVVAUAA/Ucalh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABpCyJKs9whwUIJAAArrQAAQgAYAAAAAAAAAAAApIHuaxAA
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWNsZWFyLTItcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAAP1HGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAaQsiSjKzKkW6CAAA
wbEAADoAGAAAAAAAAAAAAKSBrHUQAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3Rz
dG9yZS1jbGVhci0yLXN0ZGVyci50eHRVVAUAA/Ycalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABpCyJKT75b3QYIAACgyAAAQgAYAAAAAAAAAAAApIHafhAAc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL2lkYm9iamVjdHN0b3JlLWNvdW50LTEtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAP2HGpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAagsiSh04HMbDCQAAG1IBADoAGAAAAAAAAAAAAKSBXIcQ
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1jb3VudC0xLXN0ZGVyci50
eHRVVAUAA/ccalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABqCyJK2DKa7TAGAADPMgAASQAY
AAAAAAAAAAAApIGTkRAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWNv
dW50LWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD+BxqWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAGoLIkq6D5/XUgYAAHEzAABBABgAAAAAAAAAAACkgUaYEABzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtY291bnQtZmFpbHVyZXMtc3RkZXJyLnR4dFVUBQAD
+BxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGsLIkqMQUwlbg0AAB3dAQBDABgAAAAAAAAA
AACkgROfEABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVsZXRlLTEt
cHJpdmF0ZS1zdGRlcnIudHh0VVQFAAP5HGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAawsi
Sv+TKjxkEQAAkIUDADsAGAAAAAAAAAAAAKSB/qwQAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9p
ZGJvYmplY3RzdG9yZS1kZWxldGUtMS1zdGRlcnIudHh0VVQFAAP6HGpYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAawsiSj6OExPXBgAA+DkAAEMAGAAAAAAAAAAAAKSB174QAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1kZWxldGUtMi1wcml2YXRlLXN0ZGVyci50eHRV
VAUAA/ocalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABrCyJKktpP6+cGAACwOQAAOwAYAAAA
AAAAAAAApIErxhAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWRlbGV0
ZS0yLXN0ZGVyci50eHRVVAUAA/ocalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABsCyJKOLZL
YHgGAAB5PQAASgAYAAAAAAAAAAAApIGHzRAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9i
amVjdHN0b3JlLWRlbGV0ZS1mYWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA/scalh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABsCyJKI13sHsQGAADJPQAAQgAYAAAAAAAAAAAApIGD1BAA
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS1mYWlsdXJlcy1z
dGRlcnIudHh0VVQFAAP7HGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbAsiSmuySns5BgAA
bzMAAEcAGAAAAAAAAAAAAKSBw9sQAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3Rz
dG9yZS1nZXQtZmFpbHVyZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAP7HGpYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAbAsiSoU1WbdLBgAAbzMAAD8AGAAAAAAAAAAAAKSBfeIQAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1nZXQtZmFpbHVyZXMtc3RkZXJyLnR4dFVU
BQAD/BxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGwLIkofxH3OPQYAADZJAABDABgAAAAA
AAAAAACkgUHpEABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZ2V0YWxs
LTEtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAP8HGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
bQsiStsTcT+uBgAAKk8AADsAGAAAAAAAAAAAAKSB++8QAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9pZGJvYmplY3RzdG9yZS1nZXRhbGwtMS1zdGRlcnIudHh0VVQFAAP9HGpYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAbQsiSsfaS6uHBgAAjUwAAEcAGAAAAAAAAAAAAKSBHvcQAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1nZXRhbGxrZXlzLTEtcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAAP9HGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbQsiStFw1u7DBgAAzk4A
AD8AGAAAAAAAAAAAAKSBJv4QAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9y
ZS1nZXRhbGxrZXlzLTEtc3RkZXJyLnR4dFVUBQAD/RxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAG0LIkqlTmKIZQYAAONEAABDABgAAAAAAAAAAACkgWIFEQBzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vaWRib2JqZWN0c3RvcmUtZ2V0a2V5LTEtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAP+HGpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbQsiSgtawWq+BgAAJEgAADsAGAAAAAAAAAAAAKSB
RAwRAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1nZXRrZXktMS1zdGRl
cnIudHh0VVQFAAP+HGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbQsiSteUcgihBgAAwUEA
AFEAGAAAAAAAAAAAAKSBdxMRAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9y
ZS1wdXQtYW5kLWNsZWFyLWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD/hxqWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAG4LIkqZk6jgwwYAAEI9AABJABgAAAAAAAAAAACkgaMaEQBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtcHV0LWFuZC1jbGVhci1mYWls
dXJlcy1zdGRlcnIudHh0VVQFAAP/HGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbgsiSoAP
Mum2AwAAfRIAAE8AGAAAAAAAAAAAAKSB6SERAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJ0
cmFuc2FjdGlvbi1vYmplY3RzdG9yZS1mYWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA/8c
alh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABuCyJKLPj2gDwEAAC8FAAARwAYAAAAAAAAAAAA
pIEoJhEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYnRyYW5zYWN0aW9uLW9iamVjdHN0b3Jl
LWZhaWx1cmVzLXN0ZGVyci50eHRVVAUAA/8calh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABu
CyJKBJZ/2jsFAAChKQAASQAYAAAAAAAAAAAApIHlKhEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L2lkYnRyYW5zYWN0aW9uLW9iamVjdHN0b3Jlcy0xLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD/xxq
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAG4LIkp7IAMIKgUAAP4nAABBABgAAAAAAAAAAACk
gaMwEQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRidHJhbnNhY3Rpb24tb2JqZWN0c3RvcmVz
LTEtc3RkZXJyLnR4dFVUBQADAB1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAG4LIkqC2NK5
IQEAAJkEAABFABgAAAAAAAAAAACkgUg2EQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRidmVy
c2lvbmNoYW5nZWV2ZW50LWNvbnN0cnVjdG9yLXN0ZGVyci50eHRVVAUAAwAdalh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABvCyJK2BYi1HsLAACViQEAMwAYAAAAAAAAAAAApIHoNxEAc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTEtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMBHWpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbwsiSn1rvkgsDAAA4qcBACsAGAAAAAAAAAAAAKSB0EMR
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC0xLXN0ZGVyci50eHRVVAUAAwIdalh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABwCyJKTKp/WZwPAADkowEAMwAYAAAAAAAAAAAApIFhUBEA
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTItcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMD
HWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAcAsiSnh1WdRnDwAA07MBACsAGAAAAAAAAAAA
AKSBamARAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC0yLXN0ZGVyci50eHRVVAUAAwQd
alh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABwCyJKgavxtUwHAAAwVQAAMwAYAAAAAAAAAAAA
pIE2cBEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTMtcHJpdmF0ZS1zdGRlcnIudHh0
VVQFAAMEHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAcQsiSgeQ/LhLCAAAtGMAACsAGAAA
AAAAAAAAAKSB73cRAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC0zLXN0ZGVyci50eHRV
VAUAAwUdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABxCyJKjaMvszQHAAAMnAAAMwAYAAAA
AAAAAAAApIGfgBEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTQtcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAAMFHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAcQsiSl4apeX2CQAAdssA
ACsAGAAAAAAAAAAAAKSBQIgRAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC00LXN0ZGVy
ci50eHRVVAUAAwYdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABxCyJKk3Q9gx8GAADNJgAA
MwAYAAAAAAAAAAAApIGbkhEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTUtcHJpdmF0
ZS1zdGRlcnIudHh0VVQFAAMGHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAcQsiSiXVbaQ4
BgAAxCQAACsAGAAAAAAAAAAAAKSBJ5kRAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC01
LXN0ZGVyci50eHRVVAUAAwYdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAByCyJKf6iG0N4I
AACsUAEAOgAYAAAAAAAAAAAApIHEnxEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LWN1
cnNvci0xLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADBx1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAHMLIkpirBhN8woAACWzAQAyABgAAAAAAAAAAACkgRapEQBzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vaW5kZXgtY3Vyc29yLTEtc3RkZXJyLnR4dFVUBQADCR1qWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAHMLIkqDbF3bVgkAAOtzAQA6ABgAAAAAAAAAAACkgXW0EQBzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vaW5kZXgtY3Vyc29yLTItcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMKHWpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAdAsiSvBG3VSICwAA8tMBADIAGAAAAAAAAAAAAKSBP74R
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1jdXJzb3ItMi1zdGRlcnIudHh0VVQFAAML
HWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAdQsiSlEp5siMEQAA0G8CADoAGAAAAAAAAAAA
AKSBM8oRAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1jdXJzb3ItMy1wcml2YXRlLXN0
ZGVyci50eHRVVAUAAw0dalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB2CyJKh5bGbt8WAABS
OQMAMgAYAAAAAAAAAAAApIEz3BEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LWN1cnNv
ci0zLXN0ZGVyci50eHRVVAUAAw8dalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB2CyJKRsOf
CjgGAAAmKQAAQQAYAAAAAAAAAAAApIF+8xEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4
LWdldC1jb3VudC1iYXNpYy1wcml2YXRlLXN0ZGVyci50eHRVVAUAAw8dalh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAB2CyJKzC/fXdUGAAAJKgAAOQAYAAAAAAAAAAAApIEx+hEAc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2luZGV4LWdldC1jb3VudC1iYXNpYy1zdGRlcnIudHh0VVQFAAMPHWpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAdgsiSunxosS9BgAAazkAAEQAGAAAAAAAAAAAAKSB
eQESAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1nZXQtY291bnQtZmFpbHVyZXMtcHJp
dmF0ZS1zdGRlcnIudHh0VVQFAAMQHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAdgsiSk2X
VL+wBwAALTwAADwAGAAAAAAAAAAAAKSBtAgSAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRl
eC1nZXQtY291bnQtZmFpbHVyZXMtc3RkZXJyLnR4dFVUBQADEB1qWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAHYLIkpV2/fAIAcAAGpJAAA6ABgAAAAAAAAAAACkgdoQEgBzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vaW5kZXgtcmVuYW1lLTEtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMQHWpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAdwsiSkqSUGeoBwAAukwAADIAGAAAAAAAAAAAAKSBbhgS
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1yZW5hbWUtMS1zdGRlcnIudHh0VVQFAAMR
HWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAdwsiStX88usoBQAAFCkAADkAGAAAAAAAAAAA
AKSBgiASAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9rZXlwYXRoLWJhc2ljLXByaXZhdGUtc3Rk
ZXJyLnR4dFVUBQADER1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHcLIkpd/W8rGgUAAG0n
AAAxABgAAAAAAAAAAACkgR0mEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4va2V5cGF0aC1iYXNp
Yy1zdGRlcnIudHh0VVQFAAMRHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAdwsiSpuORhEv
BQAAeiMAACoAGAAAAAAAAAAAAKSBoisSAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9sZWFrLTEt
c3RkZXJyLnR4dFVUBQADEh1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHgLIkpBlHYJuAgA
AJ8NAgBVABgAAAAAAAAAAACkgTUxEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vbWVtb3J5LWlu
ZGV4LW5vdC1kZWxldGVkLXdpdGgtb2JqZWN0c3RvcmUtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMT
HWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAeAsiSgwdAnCBCQAAsxoCAE0AGAAAAAAAAAAA
AKSBfDoSAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9tZW1vcnktaW5kZXgtbm90LWRlbGV0ZWQt
d2l0aC1vYmplY3RzdG9yZS1zdGRlcnIudHh0VVQFAAMUHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAeAsiShyUkoYGCAAAG3EAAFcAGAAAAAAAAAAAAKSBhEQSAHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9tdWx0aXBsZS1vYmplY3RzdG9yZS1pbmRleC1jdXJzb3ItY29sbGlzaW9uLXByaXZh
dGUtc3RkZXJyLnR4dFVUBQADFB1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHgLIkpfJFoF
wwgAAL6DAABPABgAAAAAAAAAAACkgRtNEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vbXVsdGlw
bGUtb2JqZWN0c3RvcmUtaW5kZXgtY3Vyc29yLWNvbGxpc2lvbi1zdGRlcnIudHh0VVQFAAMUHWpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAeQsiSjZEalcOBgAA/y8AAEIAGAAAAAAAAAAAAKSB
Z1YSAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9uZXctZGF0YWJhc2UtYWZ0ZXItdXNlci1kZWxl
dGUtc3RkZXJyLnR4dFVUBQADFR1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHkLIkppSBGW
uwUAAOwwAABCABgAAAAAAAAAAACkgfFcEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb2JqZWN0
c3RvcmUtYXR0cmlidXRlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAAxUdalh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAB5CyJKSaNPM9EFAADDMAAAOgAYAAAAAAAAAAAApIEoYxIAc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWF0dHJpYnV0ZXMtc3RkZXJyLnR4dFVUBQADFh1q
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHkLIkoSIWCDRgkAAMOdAABPABgAAAAAAAAAAACk
gW1pEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb2JqZWN0c3RvcmUtY3Vyc29yLWFkdmFuY2Ut
ZmFpbHVyZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMWHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAeQsiSlv0pB8qCgAAK6kAAEcAGAAAAAAAAAAAAKSBPHMSAHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9vYmplY3RzdG9yZS1jdXJzb3ItYWR2YW5jZS1mYWlsdXJlcy1zdGRlcnIudHh0VVQF
AAMWHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAegsiSsO55ONbCQAADaIAAFAAGAAAAAAA
AAAAAKSB530SAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vYmplY3RzdG9yZS1jdXJzb3ItY29u
dGludWUtZmFpbHVyZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMXHWpYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAegsiSiOt788UCgAAn60AAEgAGAAAAAAAAAAAAKSBzIcSAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9vYmplY3RzdG9yZS1jdXJzb3ItY29udGludWUtZmFpbHVyZXMtc3RkZXJy
LnR4dFVUBQADFx1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHoLIkpoxb73eQYAAAA/AABA
ABgAAAAAAAAAAACkgWKSEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb2JqZWN0c3RvcmUtcmVu
YW1lLTEtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMXHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAegsiSpqQvFaLBgAAYT8AADgAGAAAAAAAAAAAAKSBVZkSAHN0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9vYmplY3RzdG9yZS1yZW5hbWUtMS1zdGRlcnIudHh0VVQFAAMYHWpYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAegsiSht/O2y4BgAAWTsAAD8AGAAAAAAAAAAAAKSBUqASAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9vcGVuY3Vyc29yLWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4dFVU
BQADGB1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHoLIko/iGFpQAcAAAA9AAA3ABgAAAAA
AAAAAACkgYOnEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmN1cnNvci1mYWlsdXJlcy1z
dGRlcnIudHh0VVQFAAMYHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAegsiSsGVbQilAgAA
pAoAAEYAGAAAAAAAAAAAAKSBNK8SAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuZGF0YWJh
c2UtcmVxdWVzdC1ldmVudC1wcml2YXRlLXN0ZGVyci50eHRVVAUAAxgdalh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAB7CyJKKMVvBQUDAAA8DAAAPgAYAAAAAAAAAAAApIFZshIAc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL29wZW5kYXRhYmFzZS1yZXF1ZXN0LWV2ZW50LXN0ZGVyci50eHRVVAUA
Axkdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB7CyJKqTEIU30BAABuBQAAQAAYAAAAAAAA
AAAApIHWtRIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRhYmFzZS1yZXF1ZXN0LXBy
aXZhdGUtc3RkZXJyLnR4dFVUBQADGR1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHsLIkrO
4THxMwEAAGkGAAA4ABgAAAAAAAAAAACkgc23EgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3Bl
bmRhdGFiYXNlLXJlcXVlc3Qtc3RkZXJyLnR4dFVUBQADGR1qWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAHsLIkq2XHdZMQQAAN0kAABUABgAAAAAAAAAAACkgXK5EgBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXN1Y2Nlc3MtYWZ0ZXItdmVyc2lvbmNoYW5nZS1wcml2YXRl
LXN0ZGVyci50eHRVVAUAAxkdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB7CyJK/h47TGcE
AABcJgAATAAYAAAAAAAAAAAApIExvhIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRh
YmFzZS1zdWNjZXNzLWFmdGVyLXZlcnNpb25jaGFuZ2Utc3RkZXJyLnR4dFVUBQADGR1qWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAHsLIkri/z7gggQAACAxAABBABgAAAAAAAAAAACkgR7DEgBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXZlcnNpb25zLXByaXZhdGUtc3Rk
ZXJyLnR4dFVUBQADGh1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHsLIkqsNvx4jAQAALks
AAA5ABgAAAAAAAAAAACkgRvIEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNl
LXZlcnNpb25zLXN0ZGVyci50eHRVVAUAAxodalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB7
CyJKQ03aAwcFAACsHgAAPgAYAAAAAAAAAAAApIEazRIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L3JlcXVlc3QtcmVhZHlzdGF0ZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAAxodalh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAB7CyJKR4vEJ34FAADQIQAANgAYAAAAAAAAAAAApIGZ0hIAc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL3JlcXVlc3QtcmVhZHlzdGF0ZS1zdGRlcnIudHh0VVQFAAMaHWpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAfAsiSh6byW1jBgAAnDcAAEMAGAAAAAAAAAAAAKSB
h9gSAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbi1zY2hlZHVsZXItMS1wcml2
YXRlLXN0ZGVyci50eHRVVAUAAxsdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB8CyJKJwTI
zSoHAAD/SQAAQwAYAAAAAAAAAAAApIFn3xIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5z
YWN0aW9uLXNjaGVkdWxlci0yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADGx1qWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAHwLIkpJCZHEEgcAAA5LAABDABgAAAAAAAAAAACkgQ7nEgBzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTMtcHJpdmF0ZS1zdGRlcnIu
dHh0VVQFAAMbHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAfAsiSjGT6LCqBgAAOkAAADsA
GAAAAAAAAAAAAKSBne4SAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbi1zY2hl
ZHVsZXItMy1zdGRlcnIudHh0VVQFAAMcHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAfAsi
Smnb0ZCjBgAAQXUAAEMAGAAAAAAAAAAAAKSBvPUSAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90
cmFuc2FjdGlvbi1zY2hlZHVsZXItNC1wcml2YXRlLXN0ZGVyci50eHRVVAUAAxwdalh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAB8CyJKK0g5U/oGAAA+fgAAOwAYAAAAAAAAAAAApIHc/BIAc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVkdWxlci00LXN0ZGVyci50eHRV
VAUAAxwdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB9CyJK3GROriIHAACWVAAAQwAYAAAA
AAAAAAAApIFLBBMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVkdWxl
ci01LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADHR1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AH0LIkpcQj1angYAAGFJAABDABgAAAAAAAAAAACkgeoLEwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTYtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMdHWpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAfQsiSmUyzu9WBQAAhDIAAEsAGAAAAAAAAAAAAKSBBRMT
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbnMtc3RvcC1vbi1uYXZpZ2F0aW9u
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADHR1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAH0L
IkqB7JMhxAoAAKlgAQBDABgAAAAAAAAAAACkgeAYEwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
dHJhbnNhY3Rpb25zLXN0b3Atb24tbmF2aWdhdGlvbi1zdGRlcnIudHh0VVQFAAMeHWpYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAfQsiSimFrSrzBAAAMDUAAEsAGAAAAAAAAAAAAKSBISQTAHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLXBy
aXZhdGUtc3RkZXJyLnR4dFVUBQADHh1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIALIkpI
oxtUhAUAAGk+AABDABgAAAAAAAAAAACkgZkpEwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVy
c2lvbmNoYW5nZS1hYm9ydC10aGVuLXJlb3Blbi1zdGRlcnIudHh0VVQFAAMfHWpYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAgAsiSvmKPYE3BQAAkCsAAD8AGAAAAAAAAAAAAKSBmi8TAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWV2ZW50LXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADHx1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIALIkpJ0M3pWwUAAJYrAAA3ABgA
AAAAAAAAAACkgUo1EwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1ldmVu
dC1zdGRlcnIudHh0VVQFAAMfHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAgAsiSv7E2SVe
AQAAXQUAADQAGAAAAAAAAAAAAKSBFjsTAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi93b3JrZXJz
LWRpc2FibGVkLXN0ZGVyci50eHRVVAUAAyAdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACM
CyJKIFnxiXMHAABKdAAANAAYAAAAAAAAAAAApIHiPBMAc3RvcmFnZS9pbmRleGVkZGIvbXV0YXRp
bmctY3Vyc29yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADNx1qWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAIwLIkqmISduBwgAAJuCAAAsABgAAAAAAAAAAACkgcNEEwBzdG9yYWdlL2luZGV4ZWRk
Yi9tdXRhdGluZy1jdXJzb3Itc3RkZXJyLnR4dFVUBQADOB1qWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAIwLIkq2E6w8XwQAAF8XAABEABgAAAAAAAAAAACkgTBNEwBzdG9yYWdlL2luZGV4ZWRk
Yi9vYmplY3QtbG9va3Vwcy1pbi12ZXJzaW9uY2hhbmdlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD
OB1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI0LIkppjvo1dwQAAIcYAAA8ABgAAAAAAAAA
AACkgQ1SEwBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3QtbG9va3Vwcy1pbi12ZXJzaW9uY2hhbmdl
LXN0ZGVyci50eHRVVAUAAzkdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACNCyJKof+11FID
AACYDwAAQwAYAAAAAAAAAAAApIH6VhMAc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0U3RvcmUtcmVx
dWlyZWQtYXJndW1lbnRzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADOR1qWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAI0LIkpQQtUazQMAAMMRAAA7ABgAAAAAAAAAAACkgclaEwBzdG9yYWdlL2lu
ZGV4ZWRkYi9vYmplY3RTdG9yZS1yZXF1aXJlZC1hcmd1bWVudHMtc3RkZXJyLnR4dFVUBQADOR1q
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI0LIkqIbzvNMwgAADN6AAA+ABgAAAAAAAAAAACk
gQtfEwBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50LXByaXZhdGUt
c3RkZXJyLnR4dFVUBQADOh1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI0LIkqkZPunhQgA
AMF7AAA2ABgAAAAAAAAAAACkgbZnEwBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1hdXRv
aW5jcmVtZW50LXN0ZGVyci50eHRVVAUAAzodalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACO
CyJK+tbGes8JAAAVlQAANwAYAAAAAAAAAAAApIGrcBMAc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0
c3RvcmUtYmFzaWNzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADOx1qWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAI8LIkq1AYaZoQoAANabAAAvABgAAAAAAAAAAACkget6EwBzdG9yYWdlL2luZGV4
ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3Mtc3RkZXJyLnR4dFVUBQADPh1qWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAI8LIkpw6sJvIQsAAOScAAA3ABgAAAAAAAAAAACkgfWFEwBzdG9yYWdlL2lu
ZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3Mtd29ya2Vycy1zdGRlcnIudHh0VVQFAAM9HWpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjwsiSpaJ62dQBwAABz4AADYAGAAAAAAAAAAAAKSBh5ET
AHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNsZWFyLXByaXZhdGUtc3RkZXJyLnR4dFVU
BQADPh1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJALIkrjnmhWpAcAAAFAAAAuABgAAAAA
AAAAAACkgUeZEwBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jbGVhci1zdGRlcnIudHh0
VVQFAAM/HWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAkAsiShQk8GPqCgAA3rIBADYAGAAA
AAAAAAAAAKSBU6ETAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNvdW50LXByaXZhdGUt
c3RkZXJyLnR4dFVUBQADQB1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJELIko+lFVfWA4A
AN4RAwAuABgAAAAAAAAAAACkga2sEwBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jb3Vu
dC1zdGRlcnIudHh0VVQFAANBHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAlAsiSsA+Ijw8
EQAAqUEHADcAGAAAAAAAAAAAAKSBbbsTAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWN1
cnNvci1wcml2YXRlLXN0ZGVyci50eHRVVAUAA0gdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACXCyJKqr7oiN8VAACy9QgALwAYAAAAAAAAAAAApIEazRMAc3RvcmFnZS9pbmRleGVkZGIvb2Jq
ZWN0c3RvcmUtY3Vyc29yLXN0ZGVyci50eHRVVAUAA00dalh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACXCyJKKoGA5joHAADZTAAAQgAYAAAAAAAAAAAApIFi4xMAc3RvcmFnZS9pbmRleGVkZGIv
b2JqZWN0c3RvcmUtcmVtb3Zlb2JqZWN0c3RvcmUtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANNHWpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAlwsiSoWl3OLYBwAAMVAAADoAGAAAAAAAAAAAAKSB
GOsTAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLXJlbW92ZW9iamVjdHN0b3JlLXN0ZGVy
ci50eHRVVAUAA04dalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACXCyJKg6KbD30IAAC9CQEA
MAAYAAAAAAAAAAAApIFk8xMAc3RvcmFnZS9pbmRleGVkZGIvb2RkLXN0cmluZ3MtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAANOHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAmAsiSqETZaNHBAAA
3jMAADYAGAAAAAAAAAAAAKSBS/wTAHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tYmFkLXZlcnNpb25z
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADTx1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJgL
IkpWIzD25gMAAIUiAAAuABgAAAAAAAAAAACkgQIBFABzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWJh
ZC12ZXJzaW9ucy1zdGRlcnIudHh0VVQFAANQHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
mQsiSr+P6H/TBAAAgSMAADAAGAAAAAAAAAAAAKSBUAUUAHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4t
Y3Vyc29yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADUR1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAJkLIkoLkrzznwUAAH4oAAAoABgAAAAAAAAAAACkgY0KFABzdG9yYWdlL2luZGV4ZWRkYi9v
cGVuLWN1cnNvci1zdGRlcnIudHh0VVQFAANRHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
mQsiSp6pwx1OBgAAVD0AADwAGAAAAAAAAAAAAKSBjhAUAHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4t
ZHVyaW5nLXRyYW5zYWN0aW9uLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADUR1qWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAJkLIkp2Z7Z+QwYAAAVBAAA0ABgAAAAAAAAAAACkgVIXFABzdG9yYWdl
L2luZGV4ZWRkYi9vcGVuLWR1cmluZy10cmFuc2FjdGlvbi1zdGRlcnIudHh0VVQFAANRHWpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAmQsiSgFwuksEBQAA6jgAADIAGAAAAAAAAAAAAKSBAx4U
AHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tb3JkZXJpbmctcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANS
HWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAmQsiSuCQmswoBQAAHToAACoAGAAAAAAAAAAA
AKSBcyMUAHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tb3JkZXJpbmctc3RkZXJyLnR4dFVUBQADUh1q
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJkLIkrnUkjf4AMAABwiAAAvABgAAAAAAAAAAACk
gf8oFABzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLXR3aWNlLXdvcmtlcnMtc3RkZXJyLnR4dFVUBQAD
Uh1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJkLIkoKHz1aKQkAAAWcAAAzABgAAAAAAAAA
AACkgUgtFABzdG9yYWdlL2luZGV4ZWRkYi9vcGVuY3Vyc29yLWtleS1wcml2YXRlLXN0ZGVyci50
eHRVVAUAA1Idalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACaCyJKmD0PbbMJAACovgAAKwAY
AAAAAAAAAAAApIHeNhQAc3RvcmFnZS9pbmRleGVkZGIvb3BlbmN1cnNvci1rZXktc3RkZXJyLnR4
dFVUBQADUx1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJoLIkqcziU3tgoAAIkeAQA3ABgA
AAAAAAAAAACkgfZAFABzdG9yYWdlL2luZGV4ZWRkYi9vcHRpb25hbC1hcmd1bWVudHMtcHJpdmF0
ZS1zdGRlcnIudHh0VVQFAANUHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAmgsiSp5brcVW
DAAAomkBAC8AGAAAAAAAAAAAAKSBHUwUAHN0b3JhZ2UvaW5kZXhlZGRiL29wdGlvbmFsLWFyZ3Vt
ZW50cy1zdGRlcnIudHh0VVQFAANUHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAmwsiSkM0
NAHWBgAAoj4AADUAGAAAAAAAAAAAAKSB3FgUAHN0b3JhZ2UvaW5kZXhlZGRiL3BlbmRpbmctYWN0
aXZpdHktcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANWHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAnQsiSnPPd9tnBwAA3kEAAC0AGAAAAAAAAAAAAKSBIWAUAHN0b3JhZ2UvaW5kZXhlZGRiL3Bl
bmRpbmctYWN0aXZpdHktc3RkZXJyLnR4dFVUBQADWR1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAJwLIkq/69cc0AcAAHxFAAA1ABgAAAAAAAAAAACkge9nFABzdG9yYWdlL2luZGV4ZWRkYi9w
ZW5kaW5nLWFjdGl2aXR5LXdvcmtlcnMtc3RkZXJyLnR4dFVUBQADVx1qWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAJ0LIkozmAjN/QQAANAlAABDABgAAAAAAAAAAACkgS5wFABzdG9yYWdlL2lu
ZGV4ZWRkYi9wZW5kaW5nLXZlcnNpb24tY2hhbmdlLW9uLWV4aXQtcHJpdmF0ZS1zdGRlcnIudHh0
VVQFAANZHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAnQsiSsAM+v/fBAAAsh8AADsAGAAA
AAAAAAAAAKSBqHUUAHN0b3JhZ2UvaW5kZXhlZGRiL3BlbmRpbmctdmVyc2lvbi1jaGFuZ2Utb24t
ZXhpdC1zdGRlcnIudHh0VVQFAANZHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAnQsiSpnk
wUeNBAAAvx8AAEEAGAAAAAAAAAAAAKSB/HoUAHN0b3JhZ2UvaW5kZXhlZGRiL3BlbmRpbmctdmVy
c2lvbi1jaGFuZ2Utc3R1Y2stcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANaHWpYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAnQsiSiOqoI69BAAACiQAADkAGAAAAAAAAAAAAKSBBIAUAHN0b3JhZ2Uv
aW5kZXhlZGRiL3BlbmRpbmctdmVyc2lvbi1jaGFuZ2Utc3R1Y2stc3RkZXJyLnR4dFVUBQADWh1q
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJ0LIkqzYpl7sgQAAEkiAABWABgAAAAAAAAAAACk
gTSFFABzdG9yYWdlL2luZGV4ZWRkYi9wZW5kaW5nLXZlcnNpb24tY2hhbmdlLXN0dWNrLXdvcmtz
LXdpdGgtdGVybWluYXRlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADWh1qWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAJ0LIkrR1v678wQAALokAABOABgAAAAAAAAAAACkgXaKFABzdG9yYWdlL2lu
ZGV4ZWRkYi9wZW5kaW5nLXZlcnNpb24tY2hhbmdlLXN0dWNrLXdvcmtzLXdpdGgtdGVybWluYXRl
LXN0ZGVyci50eHRVVAUAA1odalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACgCyJKr/xYt2MG
AACfZwAAMAAYAAAAAAAAAAAApIHxjxQAc3RvcmFnZS9pbmRleGVkZGIvcGVyc2lzdGVuY2UtcHJp
dmF0ZS1zdGRlcnIudHh0VVQFAANbHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAoAsiSu0M
I8ZmBgAAVWcAACgAGAAAAAAAAAAAAKSBvpYUAHN0b3JhZ2UvaW5kZXhlZGRiL3BlcnNpc3RlbmNl
LXN0ZGVyci50eHRVVAUAA1sdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACgCyJKM4DHU60I
AACwdgAAOwAYAAAAAAAAAAAApIGGnRQAc3RvcmFnZS9pbmRleGVkZGIvcHJlZmV0Y2gtYnVnZml4
LTEwODA3MS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA1sdalh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACgCyJKCcb+lHIJAADhggAAMwAYAAAAAAAAAAAApIGophQAc3RvcmFnZS9pbmRleGVkZGIv
cHJlZmV0Y2gtYnVnZml4LTEwODA3MS1zdGRlcnIudHh0VVQFAANbHWpYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAoQsiSm1n24pOHwAA8EMIADoAGAAAAAAAAAAAAKSBh7AUAHN0b3JhZ2UvaW5k
ZXhlZGRiL3ByZWZldGNoLWludmFsaWRhdGlvbi1wcml2YXRlLXN0ZGVyci50eHRVVAUAA10dalh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACiCyJK5fo8RHolAAA2oAkAMgAYAAAAAAAAAAAApIFJ
0BQAc3RvcmFnZS9pbmRleGVkZGIvcHJlZmV0Y2gtaW52YWxpZGF0aW9uLXN0ZGVyci50eHRVVAUA
A18dalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACiCyJKoJkHoo4HAAAHZQAAMgAYAAAAAAAA
AAAApIEv9hQAc3RvcmFnZS9pbmRleGVkZGIvcHJlZmV0Y2gtcmFjZS1wcml2YXRlLXN0ZGVyci50
eHRVVAUAA18dalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACiCyJKpo9o6ukHAACaawAAKgAY
AAAAAAAAAAAApIEp/hQAc3RvcmFnZS9pbmRleGVkZGIvcHJlZmV0Y2gtcmFjZS1zdGRlcnIudHh0
VVQFAANgHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAogsiSnWO+mxYBgAAbEQAAEYAGAAA
AAAAAAAAAKSBdgYVAHN0b3JhZ2UvaW5kZXhlZGRiL3ByaW1hcnkta2V5LXVuaXF1ZS10by1vYmpl
Y3RzdG9yZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA2Adalh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACiCyJK1eH4oIQGAABwTwAAPgAYAAAAAAAAAAAApIFODRUAc3RvcmFnZS9pbmRleGVkZGIv
cHJpbWFyeS1rZXktdW5pcXVlLXRvLW9iamVjdHN0b3JlLXN0ZGVyci50eHRVVAUAA2Adalh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACACiCyJKdNN9mlMFAADZIwAANAAYAAAAAAAAAAAApIFKFBUA
c3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD
YB1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKILIkqqeiJE6QUAABwmAAAsABgAAAAAAAAA
AACkgQsaFQBzdG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQtY29tbWFuZHMtc3RkZXJyLnR4dFVUBQAD
YB1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKMLIkoYmm5LpAUAAPgiAAAtABgAAAAAAAAA
AACkgVogFQBzdG9yYWdlL2luZGV4ZWRkYi9yZWFkb25seS1wcml2YXRlLXN0ZGVyci50eHRVVAUA
A2Edalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACjCyJKaIf+PkoDAACNDwAAOAAYAAAAAAAA
AAAApIFlJhUAc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHktcHJvcGVydGllcy1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA2Edalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACjCyJKSyCUkskDAADD
EQAAMAAYAAAAAAAAAAAApIEhKhUAc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHktcHJvcGVydGll
cy1zdGRlcnIudHh0VVQFAANhHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAowsiSvEJaMEv
BgAAXCUAACUAGAAAAAAAAAAAAKSBVC4VAHN0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5LXN0ZGVy
ci50eHRVVAUAA2Edalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACjCyJKUZBBFroGAACnLwAA
OwAYAAAAAAAAAAAApIHiNBUAc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1jb250aW51ZS1hYm9y
dC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA2Edalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACj
CyJKmvuzDNgGAABhLgAAMwAYAAAAAAAAAAAApIERPBUAc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVz
dC1jb250aW51ZS1hYm9ydC1zdGRlcnIudHh0VVQFAANiHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAowsiSjKvmnNcBgAAl0QAAD4AGAAAAAAAAAAAAKSBVkMVAHN0b3JhZ2UvaW5kZXhlZGRi
L3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24tcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANiHWpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAowsiSjeAdUtuBgAAo0MAADYAGAAAAAAAAAAAAKSBKkoV
AHN0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24tc3RkZXJyLnR4dFVU
BQADYh1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKQLIkqBG7PqQwYAAOcsAAA5ABgAAAAA
AAAAAACkgQhRFQBzdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LXJlc3VsdC1jYWNoZS1wcml2YXRl
LXN0ZGVyci50eHRVVAUAA2Mdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACkCyJKUoQUJasG
AAAVLgAAMQAYAAAAAAAAAAAApIG+VxUAc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1yZXN1bHQt
Y2FjaGUtc3RkZXJyLnR4dFVUBQADYx1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKQLIkqK
6wqQygQAAMYhAAA4ABgAAAAAAAAAAACkgdReFQBzdG9yYWdlL2luZGV4ZWRkYi9zZXRfdmVyc2lv
bl9ibG9ja2VkLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADYx1qWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAKQLIkpvYbEHUAUAAKQkAAAwABgAAAAAAAAAAACkgRBkFQBzdG9yYWdlL2luZGV4ZWRk
Yi9zZXRfdmVyc2lvbl9ibG9ja2VkLXN0ZGVyci50eHRVVAUAA2Mdalh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACkCyJKK69oe74EAACIKQAATgAYAAAAAAAAAAAApIHKaRUAc3RvcmFnZS9pbmRl
eGVkZGIvc2V0dmVyc2lvbi1ibG9ja2VkLWJ5LXZlcnNpb25jaGFuZ2UtY2xvc2UtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAANjHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgApAsiSgG5w4aNBAAA
ySoAAEYAGAAAAAAAAAAAAKSBEG8VAHN0b3JhZ2UvaW5kZXhlZGRiL3NldHZlcnNpb24tYmxvY2tl
ZC1ieS12ZXJzaW9uY2hhbmdlLWNsb3NlLXN0ZGVyci50eHRVVAUAA2Mdalh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACkCyJKhxcZ4bAEAADFJwAAOwAYAAAAAAAAAAAApIEddBUAc3RvcmFnZS9p
bmRleGVkZGIvc2V0dmVyc2lvbi1ub3QtYmxvY2tlZC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA2Qd
alh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACkCyJK93fo1dgEAAC/JwAAMwAYAAAAAAAAAAAA
pIFCeRUAc3RvcmFnZS9pbmRleGVkZGIvc2V0dmVyc2lvbi1ub3QtYmxvY2tlZC1zdGRlcnIudHh0
VVQFAANkHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgApQsiSp7F1V57EAAAfMsEADUAGAAA
AAAAAAAAAKSBh34VAHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAANmHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgApgsiSv93JQXbDwAA
4tYEAC0AGAAAAAAAAAAAAKSBcY8VAHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUt
c3RkZXJyLnR4dFVUBQADaB1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKYLIkooz/hCGAYA
AEAoAAAuABgAAAAAAAAAAACkgbOfFQBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9y
dC1zdGRlcnIudHh0VVQFAANoHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgApwsiSiL6jnRE
DAAAfPMAADwAGAAAAAAAAAAAAKSBM6YVAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFj
dGl2ZS1mbGFnLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADaR1qWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAKcLIkpxsIk1PQ8AAOYcAQA0ABgAAAAAAAAAAACkge2yFQBzdG9yYWdlL2luZGV4ZWRk
Yi90cmFuc2FjdGlvbi1hY3RpdmUtZmxhZy1zdGRlcnIudHh0VVQFAANqHWpYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgApwsiSpgkhBHxBQAALz4AADwAGAAAAAAAAAAAAKSBmMIVAHN0b3JhZ2Uv
aW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFmdGVyLWNsb3NlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD
ah1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKcLIkpHllEGAgYAAPs9AAA0ABgAAAAAAAAA
AACkgf/IFQBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hZnRlci1jbG9zZS1zdGRlcnIu
dHh0VVQFAANqHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgApwsiSmnZf0Q6BwAAx3QAAEYA
GAAAAAAAAAAAAKSBb88VAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3Rz
dG9yZS1jYWxscy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA2odalh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACoCyJKFqoy9FIHAABKfwAAPgAYAAAAAAAAAAAApIEp1xUAc3RvcmFnZS9pbmRleGVk
ZGIvdHJhbnNhY3Rpb24tYW5kLW9iamVjdHN0b3JlLWNhbGxzLXN0ZGVyci50eHRVVAUAA2sdalh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACoCyJK2drGTKwIAABGrAAANwAYAAAAAAAAAAAApIHz
3hUAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYmFzaWNzLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADax1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKgLIkrlaf6JLgkAAESzAAAvABgA
AAAAAAAAAACkgRDoFQBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1iYXNpY3Mtc3RkZXJy
LnR4dFVUBQADbB1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKgLIkq2GwAhOgUAAI8qAABX
ABgAAAAAAAAAAACkgafxFQBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jb21wbGV0ZS13
aXRoLWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFtZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA2wdalh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACoCyJKzlqh0LsFAACVKQAATwAYAAAAAAAAAAAApIFy
9xUAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY29tcGxldGUtd2l0aC1qcy1yZWN1cnNp
b24tY3Jvc3MtZnJhbWUtc3RkZXJyLnR4dFVUBQADbB1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAKgLIkqexcElhAUAAO0pAABLABgAAAAAAAAAAACkgbb9FQBzdG9yYWdlL2luZGV4ZWRkYi90
cmFuc2FjdGlvbi1jb21wbGV0ZS13aXRoLWpzLXJlY3Vyc2lvbi1wcml2YXRlLXN0ZGVyci50eHRV
VAUAA2wdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACpCyJKGSWHU8AFAAA8KgAAQwAYAAAA
AAAAAAAApIG/AxYAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY29tcGxldGUtd2l0aC1q
cy1yZWN1cnNpb24tc3RkZXJyLnR4dFVUBQADbR1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AKkLIkq9/XhokgYAAC5WAABBABgAAAAAAAAAAACkgfwJFgBzdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1jb21wbGV0ZS13b3JrZXJzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADbR1qWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAKkLIkp1QTr6ggYAAL5UAAA5ABgAAAAAAAAAAACkgQkRFgBz
dG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jb21wbGV0ZS13b3JrZXJzLXN0ZGVyci50eHRV
VAUAA20dalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACpCyJK87gRWp0GAACMUQAATgAYAAAA
AAAAAAAApIH+FxYAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY29vcmRpbmF0aW9uLWFj
cm9zcy1kYXRhYmFzZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANtHWpYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAqQsiSnjtnsGXBgAAqFMAAEYAGAAAAAAAAAAAAKSBIx8WAHN0b3JhZ2UvaW5k
ZXhlZGRiL3RyYW5zYWN0aW9uLWNvb3JkaW5hdGlvbi1hY3Jvc3MtZGF0YWJhc2VzLXN0ZGVyci50
eHRVVAUAA24dalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACpCyJKwFzc5VcGAADfOgAATQAY
AAAAAAAAAAAApIE6JhYAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY29vcmRpbmF0aW9u
LXdpdGhpbi1kYXRhYmFzZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA24dalh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACpCyJKeAa5zRMBAAC1AwAAPwAYAAAAAAAAAAAApIEYLRYAc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gtaW4tdGFza3MtcHJpdmF0ZS1zdGRlcnIudHh0VVQF
AANuHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAqQsiSiA3pMkvAQAANgQAADcAGAAAAAAA
AAAAAKSBpC4WAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNyYXNoLWluLXRhc2tzLXN0
ZGVyci50eHRVVAUAA24dalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACqCyJKkFP5a4MEAADP
GAAAPwAYAAAAAAAAAAAApIFEMBYAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gt
b24tYWJvcnQtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANvHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAqgsiSq9VFxGwBAAA2RkAADcAGAAAAAAAAAAAAKSBQDUWAHN0b3JhZ2UvaW5kZXhlZGRi
L3RyYW5zYWN0aW9uLWNyYXNoLW9uLWFib3J0LXN0ZGVyci50eHRVVAUAA3Adalh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACqCyJKPOsCtaMHAAAYZQAANgAYAAAAAAAAAAAApIFhOhYAc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXJyb3ItcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANwHWpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAqgsiSpmDIcg4CAAAT2QAAC4AGAAAAAAAAAAAAKSB
dEIWAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWVycm9yLXN0ZGVyci50eHRVVAUAA3Ad
alh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACqCyJKNOBfKDEGAACGNwAAQgAYAAAAAAAAAAAA
pIEUSxYAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFnYXRpb24tcHJp
dmF0ZS1zdGRlcnIudHh0VVQFAANwHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAqwsiSvke
zXdDBgAA5zYAADoAGAAAAAAAAAAAAKSBwVEWAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9u
LWV2ZW50LXByb3BhZ2F0aW9uLXN0ZGVyci50eHRVVAUAA3Edalh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACrCyJKI19v7qEFAABNMgAAOQAYAAAAAAAAAAAApIF4WBYAc3RvcmFnZS9pbmRleGVk
ZGIvdHJhbnNhY3Rpb24tb3JkZXJpbmctcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANxHWpYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAqwsiSpaUZIvSBQAAEzIAADEAGAAAAAAAAAAAAKSBjF4WAHN0
b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLW9yZGVyaW5nLXN0ZGVyci50eHRVVAUAA3Edalh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACrCyJKWfQzwlYGAAAPOAAAPAAYAAAAAAAAAAAApIHJ
ZBYAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tb3ZlcmxhcHBpbmctcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAANxHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAqwsiSlwumK2jBgAA5lQA
ADQAGAAAAAAAAAAAAKSBlWsWAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLW92ZXJsYXBw
aW5nLXN0ZGVyci50eHRVVAUAA3Edalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACrCyJK+vU6
IkAGAAC+NQAAOgAYAAAAAAAAAAAApIGmchYAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24t
cmVhZC1vbmx5LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADch1qWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAKsLIkrU366i1QYAAJQ+AAAyABgAAAAAAAAAAACkgVp5FgBzdG9yYWdlL2luZGV4ZWRk
Yi90cmFuc2FjdGlvbi1yZWFkLW9ubHktc3RkZXJyLnR4dFVUBQADch1qWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAKsLIkpdlUrKSQYAAJVKAABEABgAAAAAAAAAAACkgZuAFgBzdG9yYWdlL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1yZWFkd3JpdGUtZXhjbHVzaXZlLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADch1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKsLIkpiLyy/XAYAAIJJAAA8ABgA
AAAAAAAAAACkgWKHFgBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZWFkd3JpdGUtZXhj
bHVzaXZlLXN0ZGVyci50eHRVVAUAA3Idalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACsCyJK
mDiwm7wGAACeNAAAOQAYAAAAAAAAAAAApIE0jhYAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tcm9sbGJhY2stcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANzHWpYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgArAsiSmVfMZwsBwAA4TYAADEAGAAAAAAAAAAAAKSBY5UWAHN0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLXJvbGxiYWNrLXN0ZGVyci50eHRVVAUAA3Mdalh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACsCyJKWht5FzkGAACITAAAQQAYAAAAAAAAAAAApIH6nBYAc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tc2NvcGUtc2VxdWVuY2luZy1wcml2YXRlLXN0ZGVyci50eHRV
VAUAA3Mdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACsCyJKrupueRcGAADQRAAAOQAYAAAA
AAAAAAAApIGuoxYAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc2NvcGUtc2VxdWVuY2lu
Zy1zdGRlcnIudHh0VVQFAANzHWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgArAsiShyEB4IN
AwAAFw4AAEQAGAAAAAAAAAAAAKSBOKoWAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXN0
b3JlTmFtZXMtcmVxdWlyZWQtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANzHWpYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgArAsiSg9+yw6gAwAA5hAAADwAGAAAAAAAAAAAAKSBw60WAHN0b3JhZ2Uv
aW5kZXhlZGRiL3RyYW5zYWN0aW9uLXN0b3JlTmFtZXMtcmVxdWlyZWQtc3RkZXJyLnR4dFVUBQAD
cx1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKwLIkqzkkoA1QQAADUiAAA+ABgAAAAAAAAA
AACkgdmxFgBzdG9yYWdlL2luZGV4ZWRkYi91bmJsb2NrZWQtdmVyc2lvbi1jaGFuZ2VzLXByaXZh
dGUtc3RkZXJyLnR4dFVUBQADdB1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKwLIkrzQ8Ml
5AQAALAiAAA2ABgAAAAAAAAAAACkgSa3FgBzdG9yYWdlL2luZGV4ZWRkYi91bmJsb2NrZWQtdmVy
c2lvbi1jaGFuZ2VzLXN0ZGVyci50eHRVVAUAA3Qdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACsCyJKrv/a9yQBAABYBAAALQAYAAAAAAAAAAAApIF6vBYAc3RvcmFnZS9pbmRleGVkZGIvdW5w
cmVmaXgtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAN0HWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgArAsiSufmEkCfBAAAphkAADQAGAAAAAAAAAAAAKSBBb4WAHN0b3JhZ2UvaW5kZXhlZGRiL3Zh
bHVlLXVuZGVmaW5lZC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA3Qdalh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACtCyJKrKnsL7oFAAC6HwAALAAYAAAAAAAAAAAApIESwxYAc3RvcmFnZS9pbmRl
eGVkZGIvdmFsdWUtdW5kZWZpbmVkLXN0ZGVyci50eHRVVAUAA3Udalh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACtCyJKqFw13IgFAABMNQAANQAYAAAAAAAAAAAApIEyyRYAc3RvcmFnZS9pbmRl
eGVkZGIvdmFsdWVzLW9kZC10eXBlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA3Udalh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACtCyJKvKds20gGAAD+PAAALQAYAAAAAAAAAAAApIEpzxYAc3Rv
cmFnZS9pbmRleGVkZGIvdmFsdWVzLW9kZC10eXBlcy1zdGRlcnIudHh0VVQFAAN1HWpYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgArQsiSlBItRfrBQAAoS8AADkAGAAAAAAAAAAAAKSB2NUWAHN0
b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0LXByaXZhdGUtc3RkZXJyLnR4dFVU
BQADdR1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAK0LIkrRtd53sAUAAL8vAAAxABgAAAAA
AAAAAACkgTbcFgBzdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC1zdGRlcnIu
dHh0VVQFAAN1HWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgArQsiSis3vNTtAgAAfxoAAD8A
GAAAAAAAAAAAAKSBUeIWAHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWV2ZW50LWJh
c2ljLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADdR1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AK0LIko99fux5gMAANsnAAA3ABgAAAAAAAAAAACkgbflFgBzdG9yYWdlL2luZGV4ZWRkYi92ZXJz
aW9uLWNoYW5nZS1ldmVudC1iYXNpYy1zdGRlcnIudHh0VVQFAAN2HWpYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgArQsiSo+zzk/YBQAABDMAADkAGAAAAAAAAAAAAKSBDuoWAHN0b3JhZ2UvaW5k
ZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWV2ZW50LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADdh1qWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAK0LIkqL77I6SQUAAPUqAAAxABgAAAAAAAAAAACkgVnw
FgBzdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1ldmVudC1zdGRlcnIudHh0VVQFAAN2
HWpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgArQsiSiJIYQh0BQAAK0EAAD0AGAAAAAAAAAAA
AKSBDfYWAHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWV4Y2x1c2l2ZS1wcml2YXRl
LXN0ZGVyci50eHRVVAUAA3Ydalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACuCyJKS1JVgogF
AADSQwAANQAYAAAAAAAAAAAApIH4+xYAc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2Ut
ZXhjbHVzaXZlLXN0ZGVyci50eHRVVAUAA3cdalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACu
CyJKTNEP5sIDAAAeFQAASQAYAAAAAAAAAAAApIHvARcAc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lv
bmNoYW5nZXJlcXVlc3QtYWN0aXZlZG9tb2JqZWN0LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADeB1q
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAK8LIkoTjdamAAQAAB8VAABBABgAAAAAAAAAAACk
gTQGFwBzdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uY2hhbmdlcmVxdWVzdC1hY3RpdmVkb21vYmpl
Y3Qtc3RkZXJyLnR4dFVUBQADeR1qWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFgLIkoAAAAA
AAAAAAAAAAAPABgAAAAAAAAAEADtQa8KFwBzdG9yYWdlL3dlYnNxbC9VVAUAA9gcalh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABRCyJKSxuBNacAAADSAAAALQAYAAAAAAABAAAApIH4ChcAc3Rv
cmFnZS93ZWJzcWwvYWx0ZXItdG8taW5mby10YWJsZS1zdGRlcnIudHh0VVQFAAPKHGpYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAUQsiSksbgTWnAAAA0gAAADUAGAAAAAAAAQAAAKSBBgwXAHN0
b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS1zdGRlcnIudHh0VVQFAAPK
HGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUgsiSksbgTWnAAAA0gAAAEYAGAAAAAAAAQAA
AKSBHA0XAHN0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9uLW5vLWNyYXNoLW9uLXByZWZsaWdo
dC1mYWlsdXJlLXN0ZGVyci50eHRVVAUAA8scalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABS
CyJKizZ/HbIAAABIAwAAKAAYAAAAAAABAAAApIFDDhcAc3RvcmFnZS93ZWJzcWwvY2hhbmdlLXZl
cnNpb24tc3RkZXJyLnR4dFVUBQADyxxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFILIkpL
G4E1pwAAANIAAAAyABgAAAAAAAEAAACkgVcPFwBzdG9yYWdlL3dlYnNxbC9jbG9zZS1kdXJpbmct
c3RyZXNzLXRlc3Qtc3RkZXJyLnR4dFVUBQADzBxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AFILIkqviBzXrQAAAKQBAAA0ABgAAAAAAAEAAACkgWoQFwBzdG9yYWdlL3dlYnNxbC9kYXRhYmFz
ZS1sb2NrLWFmdGVyLXJlbG9hZC1zdGRlcnIudHh0VVQFAAPMHGpYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAUgsiSksbgTWnAAAA0gAAACkAGAAAAAAAAQAAAKSBhREXAHN0b3JhZ2Uvd2Vic3Fs
L2VtcHR5LXN0YXRlbWVudC1zdGRlcnIudHh0VVQFAAPMHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAUwsiSksbgTWnAAAA0gAAACoAGAAAAAAAAQAAAKSBjxIXAHN0b3JhZ2Uvd2Vic3FsL2V4
ZWN1dGUtc3FsLWFyZ3Mtc3RkZXJyLnR4dFVUBQADzRxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAFMLIkpLG4E1pwAAANIAAAAyABgAAAAAAAEAAACkgZoTFwBzdG9yYWdlL3dlYnNxbC9leGVj
dXRlLXNxbC1yb3dzQWZmZWN0ZWQtc3RkZXJyLnR4dFVUBQADzRxqWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAFMLIkpLG4E1pwAAANIAAAA/ABgAAAAAAAEAAACkga0UFwBzdG9yYWdlL3dlYnNx
bC9leGVjdXRlc3FsLWFjY2VwdHMtb25seS1vbmUtc3RhdGVtZW50LXN0ZGVyci50eHRVVAUAA80c
alh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABUCyJKSxuBNacAAADSAAAALgAYAAAAAAABAAAA
pIHNFRcAc3RvcmFnZS93ZWJzcWwvaGFzaC1jaGFuZ2Utd2l0aC14aHItc3RkZXJyLnR4dFVUBQAD
zxxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFQLIkqviBzXrQAAAKQBAAA/ABgAAAAAAAEA
AACkgdwWFwBzdG9yYWdlL3dlYnNxbC9tdWx0aXBsZS1kYXRhYmFzZXMtZ2FyYmFnZS1jb2xsZWN0
aW9uLXN0ZGVyci50eHRVVAUAA88calh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABUCyJKaKQ3
ObAAAAB2AgAARAAYAAAAAAABAAAApIECGBcAc3RvcmFnZS93ZWJzcWwvbXVsdGlwbGUtdHJhbnNh
Y3Rpb25zLW9uLWRpZmZlcmVudC1oYW5kbGVzLXN0ZGVyci50eHRVVAUAA9Acalh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABUCyJKSxuBNacAAADSAAAALwAYAAAAAAABAAAApIEwGRcAc3RvcmFn
ZS93ZWJzcWwvbXVsdGlwbGUtdHJhbnNhY3Rpb25zLXN0ZGVyci50eHRVVAUAA9Acalh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABUCyJKSxuBNacAAADSAAAAKAAYAAAAAAABAAAApIFAGhcAc3Rv
cmFnZS93ZWJzcWwvbnVsbC1jYWxsYmFja3Mtc3RkZXJyLnR4dFVUBQAD0BxqWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAFQLIkqviBzXrQAAAKQBAABIABgAAAAAAAEAAACkgUkbFwBzdG9yYWdl
L3dlYnNxbC9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLXN0
ZGVyci50eHRVVAUAA9Acalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABVCyJKizZ/HbIAAABI
AwAAOQAYAAAAAAABAAAApIF4HBcAc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1jcmVhdGlv
bi1jYWxsYmFjay1zdGRlcnIudHh0VVQFAAPRHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
VQsiSksbgTWnAAAA0gAAADUAGAAAAAAAAQAAAKSBnR0XAHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0
YWJhc2UtZW1wdHktdmVyc2lvbi1zdGRlcnIudHh0VVQFAAPRHGpYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAVQsiSksbgTWnAAAA0gAAADQAGAAAAAAAAQAAAKSBsx4XAHN0b3JhZ2Uvd2Vic3Fs
L29wZW4tZGF0YWJhc2UtZXhwYW5kLXF1b3RhLXN0ZGVyci50eHRVVAUAA9Ecalh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABVCyJKCXDeEwoBAAC4AgAAOQAYAAAAAAABAAAApIHIHxcAc3RvcmFn
ZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lvbi1zdGRlcnIudHh0VVQFAAPR
HGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVQsiSq+IHNetAAAApAEAAEUAGAAAAAAAAQAA
AKSBRSEXAHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2Utd2hpbGUtdHJhbnNhY3Rpb24taW4t
cHJvZ3Jlc3Mtc3RkZXJyLnR4dFVUBQAD0hxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFUL
IkpLG4E1pwAAANIAAAA5ABgAAAAAAAEAAACkgXEiFwBzdG9yYWdlL3dlYnNxbC9wcml2YXRlLWJy
b3dzaW5nLW5vcmVhZC1ub3dyaXRlLXN0ZGVyci50eHRVVAUAA9Icalh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABVCyJKaKQ3ObAAAAB2AgAARwAYAAAAAAABAAAApIGLIxcAc3RvcmFnZS93ZWJz
cWwvcmVhZC1hbmQtd3JpdGUtdHJhbnNhY3Rpb25zLWRvbnQtcnVuLXRvZ2V0aGVyLXN0ZGVyci50
eHRVVAUAA9Icalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABVCyJKr4gc160AAACkAQAAQAAY
AAAAAAABAAAApIG8JBcAc3RvcmFnZS93ZWJzcWwvcmVhZC10cmFuc2FjdGlvbnMtcnVubmluZy1j
b25jdXJyZW50bHktc3RkZXJyLnR4dFVUBQAD0hxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AFYLIkpLG4E1pwAAANIAAAAoABgAAAAAAAEAAACkgeMlFwBzdG9yYWdlL3dlYnNxbC9zcWwtZGF0
YS10eXBlcy1zdGRlcnIudHh0VVQFAAPTHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVgsi
Sq+IHNetAAAApAEAAEEAGAAAAAAAAQAAAKSB7CYXAHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1l
cnJvci1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1zdGRlcnIudHh0VVQFAAPTHGpYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAVgsiSksbgTWnAAAA0gAAADIAGAAAAAAAAQAAAKSBFCgXAHN0b3Jh
Z2Uvd2Vic3FsL3N0YXRlbWVudC1lcnJvci1jYWxsYmFjay1zdGRlcnIudHh0VVQFAAPTHGpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVgsiSq+IHNetAAAApAEAAEMAGAAAAAAAAQAAAKSBJykX
AHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1zdWNjZXNzLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxk
LXN0ZGVyci50eHRVVAUAA9Qcalh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABWCyJKSxuBNacA
AADSAAAAKgAYAAAAAAABAAAApIFRKhcAc3RvcmFnZS93ZWJzcWwvc3VjY2Vzcy1jYWxsYmFjay1z
dGRlcnIudHh0VVQFAAPUHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVgsiSksbgTWnAAAA
0gAAAEMAGAAAAAAAAQAAAKSBXCsXAHN0b3JhZ2Uvd2Vic3FsL3N1Y2Nlc3MtY2FsbGJhY2std2hl
bi1wYWdlLWRlZmVycy1sb2FkaW5nLXN0ZGVyci50eHRVVAUAA9Qcalh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABXCyJKSxuBNacAAADSAAAAKQAYAAAAAAABAAAApIGALBcAc3RvcmFnZS93ZWJz
cWwvdGVzdC1hdXRob3JpemVyLXN0ZGVyci50eHRVVAUAA9Ucalh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABXCyJKSxuBNacAAADSAAAAPgAYAAAAAAABAAAApIGKLRcAc3RvcmFnZS93ZWJzcWwv
dHJhbnNhY3Rpb24tY2FsbGJhY2stZXhjZXB0aW9uLWNyYXNoLXN0ZGVyci50eHRVVAUAA9Ucalh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABXCyJKr4gc160AAACkAQAAPQAYAAAAAAABAAAApIGp
LhcAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tY2FsbGJhY2staXNvbGF0ZWQtd29ybGQtc3Rk
ZXJyLnR4dFVUBQAD1hxqWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFcLIkqviBzXrQAAAKQB
AABDABgAAAAAAAEAAACkgc0vFwBzdG9yYWdlL3dlYnNxbC90cmFuc2FjdGlvbi1lcnJvci1jYWxs
YmFjay1pc29sYXRlZC13b3JsZC1zdGRlcnIudHh0VVQFAAPWHGpYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAWAsiSksbgTWnAAAA0gAAADQAGAAAAAAAAQAAAKSB9zAXAHN0b3JhZ2Uvd2Vic3Fs
L3RyYW5zYWN0aW9uLWVycm9yLWNhbGxiYWNrLXN0ZGVyci50eHRVVAUAA9ccalh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABYCyJKSxuBNacAAADSAAAALwAYAAAAAAABAAAApIEMMhcAc3RvcmFn
ZS93ZWJzcWwvdHJhbnNhY3Rpb24tcHJvdG90eXBlLXN0ZGVyci50eHRVVAUAA9ccalh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABYCyJKr4gc160AAACkAQAARQAYAAAAAAABAAAApIEcMxcAc3Rv
cmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tc3VjY2Vzcy1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1z
dGRlcnIudHh0VVQFAAPYHGpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2QsiSmcYgsi3XwIA
DJs+ABkAGAAAAAAAAQAAAKSBSDQXAHdwdHdrX3Byb2Nlc3NfbG9nLm91dC50eHRVVAUAA8kdalh1
eAsAAQT1AQAABBQAAABQSwUGAAAAACECIQKtBQEAUpQZAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297904</attachid>
            <date>2017-01-02 10:28:05 -0800</date>
            <delta_ts>2017-01-02 18:17:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166635-20170102102641.patch</filename>
            <type>text/plain</type>
            <size>490997</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI3MWNlMGZjMmNkYzZmOGM1YWU3YmVh
NTA2YjA0ZTY1MGI0YmU4ZGMuLjMyNjE1Zjk5MGQ3ZDgzZDVmOTg2MDk2ZTg2ZmFhN2Q2M2ZiYjU2
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDEtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRt
bCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpt
YWtlUmVmUHRyKTogQWRkZWQuCisKIDIwMTYtMTItMjIgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIERlLWR1cGxpY2F0ZSBmaW5hbGx5IGJsb2Nrcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0MjdlYzkwNWM1NGZmNzdlNGUwY2JmYmRkY2QxMDA1NmFhMTg2NWMzLi4wNjEzNzM5YmZh
YTkxYThlMjc4N2I0NmY0NzIzZjdkMzZkYTFmYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTctMDEtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRtbCIgZGlyZWN0b3J5LCBvdGhlciBp
bXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vIGNoYW5nZSBsb2cgeWV0OiBKdXN0IHVwbG9hZGluZyBmb3IgRVdTIGZvciBub3cuCisK
IDIwMTctMDEtMDEgIEplZmYgTWlsbGVyICA8amVmZm1AYXBwbGUuY29tPgogCiAgICAgICAgIFVw
ZGF0ZSB1c2VyLXZpc2libGUgY29weXJpZ2h0IHN0cmluZ3MgdG8gaW5jbHVkZSAyMDE3CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKaW5kZXggOGYyZWM3MzM3MDIwM2ZhMzdmZGM4ZmIxNDRlYWEwYjY4NDQ4OWZlOS4u
M2JmMDdmMTY2ODk4ODg1Mzc0NGZlNjQyNGNmMTdkYzEzMGUxMDc3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAxLTAyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciB1c2UgZnJvbSB0aGUgImh0bWwiIGRp
cmVjdG9yeSwgb3RoZXIgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdl
YkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVh
ZCBvZiBhIHBvaW50ZXIuCisKIDIwMTctMDEtMDEgIEplZmYgTWlsbGVyICA8amVmZm1AYXBwbGUu
Y29tPgogCiAgICAgICAgIFVwZGF0ZSB1c2VyLXZpc2libGUgY29weXJpZ2h0IHN0cmluZ3MgdG8g
aW5jbHVkZSAyMDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjg5NWRjMjc4YTNhZTAwMzcxMWVlMDMzYWI5N2Ey
ZGMyMzAxMWI4Yy4uOTIyMzQ4Yjc4ODY0MTM1ZGQ0YmQ3Y2ZmZmRhNjQ4YWQwNGRlMDA0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAxLTAyICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciB1c2UgZnJvbSB0aGUgImh0
bWwiIGRpcmVjdG9yeSwgb3RoZXIgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2MzUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpsb2Fk
SWNvbkZvckZpbGVzKTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgcG9pbnRlci4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOiBEaXR0
by4KKwogMjAxNy0wMS0wMSAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIHVzZXItdmlzaWJsZSBjb3B5cmlnaHQgc3RyaW5ncyB0byBpbmNsdWRlIDIwMTcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oIGIvU291cmNlL1dURi93dGYvUmVm
UHRyLmgKaW5kZXggODdmYzQ1NmYzNzA0MDQ5YmY0ZWNjY2JmM2E0ZmY1NzY5NzllNjc3Zi4uYWVk
NzJmZjBmMGQ4Y2NlMjg1ODQxYzRhMjk5MjhlZmVhN2QxZTY5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvUmVmUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYvUmVmUHRyLmgKQEAgLTI0Miwx
MCArMjQyLDIxIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4gYWRvcHRS
ZWYoVCogcCkKICAgICByZXR1cm4gUmVmUHRyPFQ+KHAsIFJlZlB0cjxUPjo6QWRvcHQpOwogfQog
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVmUHRyPFQ+IG1ha2VSZWZQdHIoVCogcG9p
bnRlcikKK3sKKyAgICByZXR1cm4gcG9pbnRlcjsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lIFJlZlB0cjxUPiBtYWtlUmVmUHRyKFQmIHJlZmVyZW5jZSkKK3sKKyAgICByZXR1cm4g
JnJlZmVyZW5jZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6UmVmUHRy
OwogdXNpbmcgV1RGOjphZG9wdFJlZjsKK3VzaW5nIFdURjo6bWFrZVJlZlB0cjsKIHVzaW5nIFdU
Rjo6c3RhdGljX3BvaW50ZXJfY2FzdDsKIAogI2VuZGlmIC8vIFdURl9SZWZQdHJfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCAwYzg1MWRlNDBmMTNlYWM3ZmI5YzdkODExZDE3ZWIyMTM0ZmVmZDJi
Li5jN2FhZTc3NmFiODU1OTRhY2FmODc4OWJhYzZjMDI2Mzg1YmE3ODk5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMTc4Niw2ICsxNzg2LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0
bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXIuY3BwCiAgICAgaHRtbC9jYW52YXMv
T0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCiAgICAgaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5jcHAKKyAgICBodG1sL2NhbnZhcy9XZWJHTEFueS5jcHAKICAgICBodG1sL2NhbnZh
cy9XZWJHTEJ1ZmZlci5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHAK
QEAgLTE3OTksNyArMTgwMCw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL2NhbnZh
cy9XZWJHTERyYXdCdWZmZXJzLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmNw
cAogICAgIGh0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCi0gICAgaHRtbC9jYW52YXMv
V2ViR0xHZXRJbmZvLmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuY3BwCiAg
ICAgaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3BwCiAgICAgaHRtbC9jYW52YXMvV2ViR0xQcm9n
cmFtLmNwcApAQCAtMzA3OCw2ICszMDc4LDcgQEAgaWYgKEVOQUJMRV9XRUJHTCkKICAgICAgICAg
aHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5jcHAKICAgICAgICAgaHRtbC9j
YW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuY3BwCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQW55LmNwcAog
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKICAgICAgICAgaHRtbC9jYW52YXMv
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcApAQCAtMzA5MSw3ICszMDkyLDYgQEAgaWYgKEVOQUJM
RV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xEcmF3QnVmZmVycy5jcHAKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dl
YkdMRnJhbWVidWZmZXIuY3BwCi0gICAgICAgIGh0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHAK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHAKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xPYmplY3QuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5jcHAKaW5kZXggNDNjMGQwMDBkOGU3MzU1NmZlZTE3MDQyYWY2MzllMDc5ZWQ5OTMwNC4uZGU4
ZDc2ZWFhY2Q1YWM4YmM1ZTIxNGZmNDk4OGQ3ZDI2ZTJmMDI1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTY5MywxOCAr
NjkzLDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZm
ZXIoU291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgYnVmZmVyLmFib3J0SWZVcGRhdGluZygpOwog
CiAgICAgLy8gNC4gTGV0IFNvdXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0IGVxdWFsIHRoZSBB
dWRpb1RyYWNrTGlzdCBvYmplY3QgcmV0dXJuZWQgYnkgc291cmNlQnVmZmVyLmF1ZGlvVHJhY2tz
LgotICAgIFJlZlB0cjxBdWRpb1RyYWNrTGlzdD4gYXVkaW9UcmFja3MgPSBidWZmZXIuYXVkaW9U
cmFja3MoKTsKKyAgICBhdXRvJiBhdWRpb1RyYWNrcyA9IGJ1ZmZlci5hdWRpb1RyYWNrcygpOwog
CiAgICAgLy8gNS4gSWYgdGhlIFNvdXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0IGlzIG5vdCBl
bXB0eSwgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAoYXVkaW9UcmFja3Mt
Pmxlbmd0aCgpKSB7CisgICAgaWYgKGF1ZGlvVHJhY2tzLmxlbmd0aCgpKSB7CiAgICAgICAgIC8v
IDUuMSBMZXQgSFRNTE1lZGlhRWxlbWVudCBhdWRpb1RyYWNrcyBsaXN0IGVxdWFsIHRoZSBBdWRp
b1RyYWNrTGlzdCBvYmplY3QgcmV0dXJuZWQgYnkgdGhlIGF1ZGlvVHJhY2tzCiAgICAgICAgIC8v
IGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAgICAgICAgLy8gNS4yIExldCB0
aGUgcmVtb3ZlZCBlbmFibGVkIGF1ZGlvIHRyYWNrIGZsYWcgZXF1YWwgZmFsc2UuCiAgICAgICAg
IGJvb2wgcmVtb3ZlZEVuYWJsZWRBdWRpb1RyYWNrID0gZmFsc2U7CiAKICAgICAgICAgLy8gNS4z
IEZvciBlYWNoIEF1ZGlvVHJhY2sgb2JqZWN0IGluIHRoZSBTb3VyY2VCdWZmZXIgYXVkaW9UcmFj
a3MgbGlzdCwgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgIHdoaWxlIChhdWRpb1Ry
YWNrcy0+bGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIGF1dG8mIHRyYWNrID0gKmF1ZGlvVHJhY2tz
LT5sYXN0SXRlbSgpOworICAgICAgICB3aGlsZSAoYXVkaW9UcmFja3MubGVuZ3RoKCkpIHsKKyAg
ICAgICAgICAgIGF1dG8mIHRyYWNrID0gKmF1ZGlvVHJhY2tzLmxhc3RJdGVtKCk7CiAKICAgICAg
ICAgICAgIC8vIDUuMy4xIFNldCB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGUgQXVk
aW9UcmFjayBvYmplY3QgdG8gbnVsbC4KICAgICAgICAgICAgIHRyYWNrLnNldFNvdXJjZUJ1ZmZl
cihudWxscHRyKTsKQEAgLTcyMyw3ICs3MjMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNv
dXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgICAgICAg
ICAgLy8gNS4zLjUgUmVtb3ZlIHRoZSBBdWRpb1RyYWNrIG9iamVjdCBmcm9tIHRoZSBTb3VyY2VC
dWZmZXIgYXVkaW9UcmFja3MgbGlzdC4KICAgICAgICAgICAgIC8vIDUuMy42IFF1ZXVlIGEgdGFz
ayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBuYW1lZCByZW1vdmV0cmFjaywgdGhhdCBkb2VzIG5v
dCBidWJibGUgYW5kIGlzIG5vdAogICAgICAgICAgICAgLy8gY2FuY2VsYWJsZSwgYW5kIHRoYXQg
dXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZhY2UsIGF0IHRoZSBTb3VyY2VCdWZmZXIgYXVkaW9U
cmFja3MgbGlzdC4KLSAgICAgICAgICAgIGF1ZGlvVHJhY2tzLT5yZW1vdmUodHJhY2spOworICAg
ICAgICAgICAgYXVkaW9UcmFja3MucmVtb3ZlKHRyYWNrKTsKICAgICAgICAgfQogCiAgICAgICAg
IC8vIDUuNCBJZiB0aGUgcmVtb3ZlZCBlbmFibGVkIGF1ZGlvIHRyYWNrIGZsYWcgZXF1YWxzIHRy
dWUsIHRoZW4gcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQKQEAgLTczMywxOCAr
NzMzLDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZm
ZXIoU291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgfQogCiAgICAgLy8gNi4gTGV0IFNvdXJjZUJ1
ZmZlciB2aWRlb1RyYWNrcyBsaXN0IGVxdWFsIHRoZSBWaWRlb1RyYWNrTGlzdCBvYmplY3QgcmV0
dXJuZWQgYnkgc291cmNlQnVmZmVyLnZpZGVvVHJhY2tzLgotICAgIFJlZlB0cjxWaWRlb1RyYWNr
TGlzdD4gdmlkZW9UcmFja3MgPSBidWZmZXIudmlkZW9UcmFja3MoKTsKKyAgICBhdXRvJiB2aWRl
b1RyYWNrcyA9IGJ1ZmZlci52aWRlb1RyYWNrcygpOwogCiAgICAgLy8gNy4gSWYgdGhlIFNvdXJj
ZUJ1ZmZlciB2aWRlb1RyYWNrcyBsaXN0IGlzIG5vdCBlbXB0eSwgdGhlbiBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczoKLSAgICBpZiAodmlkZW9UcmFja3MtPmxlbmd0aCgpKSB7CisgICAgaWYgKHZp
ZGVvVHJhY2tzLmxlbmd0aCgpKSB7CiAgICAgICAgIC8vIDcuMSBMZXQgSFRNTE1lZGlhRWxlbWVu
dCB2aWRlb1RyYWNrcyBsaXN0IGVxdWFsIHRoZSBWaWRlb1RyYWNrTGlzdCBvYmplY3QgcmV0dXJu
ZWQgYnkgdGhlIHZpZGVvVHJhY2tzCiAgICAgICAgIC8vIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1l
ZGlhRWxlbWVudC4KICAgICAgICAgLy8gNy4yIExldCB0aGUgcmVtb3ZlZCBzZWxlY3RlZCB2aWRl
byB0cmFjayBmbGFnIGVxdWFsIGZhbHNlLgogICAgICAgICBib29sIHJlbW92ZWRTZWxlY3RlZFZp
ZGVvVHJhY2sgPSBmYWxzZTsKIAogICAgICAgICAvLyA3LjMgRm9yIGVhY2ggVmlkZW9UcmFjayBv
YmplY3QgaW4gdGhlIFNvdXJjZUJ1ZmZlciB2aWRlb1RyYWNrcyBsaXN0LCBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczoKLSAgICAgICAgd2hpbGUgKHZpZGVvVHJhY2tzLT5sZW5ndGgoKSkgewotICAg
ICAgICAgICAgYXV0byYgdHJhY2sgPSAqdmlkZW9UcmFja3MtPmxhc3RJdGVtKCk7CisgICAgICAg
IHdoaWxlICh2aWRlb1RyYWNrcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byYgdHJhY2sg
PSAqdmlkZW9UcmFja3MubGFzdEl0ZW0oKTsKIAogICAgICAgICAgICAgLy8gNy4zLjEgU2V0IHRo
ZSBzb3VyY2VCdWZmZXIgYXR0cmlidXRlIG9uIHRoZSBWaWRlb1RyYWNrIG9iamVjdCB0byBudWxs
LgogICAgICAgICAgICAgdHJhY2suc2V0U291cmNlQnVmZmVyKG51bGxwdHIpOwpAQCAtNzYzLDcg
Kzc2Myw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZm
ZXIoU291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgICAgICAgICAvLyA3LjMuNSBSZW1vdmUgdGhl
IFZpZGVvVHJhY2sgb2JqZWN0IGZyb20gdGhlIFNvdXJjZUJ1ZmZlciB2aWRlb1RyYWNrcyBsaXN0
LgogICAgICAgICAgICAgLy8gNy4zLjYgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2
ZW50IG5hbWVkIHJlbW92ZXRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMgbm90CiAg
ICAgICAgICAgICAvLyBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGlu
dGVyZmFjZSwgYXQgdGhlIFNvdXJjZUJ1ZmZlciB2aWRlb1RyYWNrcyBsaXN0LgotICAgICAgICAg
ICAgdmlkZW9UcmFja3MtPnJlbW92ZSh0cmFjayk7CisgICAgICAgICAgICB2aWRlb1RyYWNrcy5y
ZW1vdmUodHJhY2spOwogICAgICAgICB9CiAKICAgICAgICAgLy8gNy40IElmIHRoZSByZW1vdmVk
IHNlbGVjdGVkIHZpZGVvIHRyYWNrIGZsYWcgZXF1YWxzIHRydWUsIHRoZW4gcXVldWUgYSB0YXNr
IHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQKQEAgLTc3MywxOCArNzczLDE4IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyJiBidWZm
ZXIpCiAgICAgfQogCiAgICAgLy8gOC4gTGV0IFNvdXJjZUJ1ZmZlciB0ZXh0VHJhY2tzIGxpc3Qg
ZXF1YWwgdGhlIFRleHRUcmFja0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5IHNvdXJjZUJ1ZmZlci50
ZXh0VHJhY2tzLgotICAgIFJlZlB0cjxUZXh0VHJhY2tMaXN0PiB0ZXh0VHJhY2tzID0gYnVmZmVy
LnRleHRUcmFja3MoKTsKKyAgICBhdXRvJiB0ZXh0VHJhY2tzID0gYnVmZmVyLnRleHRUcmFja3Mo
KTsKIAogICAgIC8vIDkuIElmIHRoZSBTb3VyY2VCdWZmZXIgdGV4dFRyYWNrcyBsaXN0IGlzIG5v
dCBlbXB0eSwgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAodGV4dFRyYWNr
cy0+bGVuZ3RoKCkpIHsKKyAgICBpZiAodGV4dFRyYWNrcy5sZW5ndGgoKSkgewogICAgICAgICAv
LyA5LjEgTGV0IEhUTUxNZWRpYUVsZW1lbnQgdGV4dFRyYWNrcyBsaXN0IGVxdWFsIHRoZSBUZXh0
VHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSB0aGUgdGV4dFRyYWNrcwogICAgICAgICAvLyBh
dHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgICAgIC8vIDkuMiBMZXQgdGhl
IHJlbW92ZWQgZW5hYmxlZCB0ZXh0IHRyYWNrIGZsYWcgZXF1YWwgZmFsc2UuCiAgICAgICAgIGJv
b2wgcmVtb3ZlZEVuYWJsZWRUZXh0VHJhY2sgPSBmYWxzZTsKIAogICAgICAgICAvLyA5LjMgRm9y
IGVhY2ggVGV4dFRyYWNrIG9iamVjdCBpbiB0aGUgU291cmNlQnVmZmVyIHRleHRUcmFja3MgbGlz
dCwgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgIHdoaWxlICh0ZXh0VHJhY2tzLT5s
ZW5ndGgoKSkgewotICAgICAgICAgICAgYXV0byYgdHJhY2sgPSAqdGV4dFRyYWNrcy0+bGFzdEl0
ZW0oKTsKKyAgICAgICAgd2hpbGUgKHRleHRUcmFja3MubGVuZ3RoKCkpIHsKKyAgICAgICAgICAg
IGF1dG8mIHRyYWNrID0gKnRleHRUcmFja3MubGFzdEl0ZW0oKTsKIAogICAgICAgICAgICAgLy8g
OS4zLjEgU2V0IHRoZSBzb3VyY2VCdWZmZXIgYXR0cmlidXRlIG9uIHRoZSBUZXh0VHJhY2sgb2Jq
ZWN0IHRvIG51bGwuCiAgICAgICAgICAgICB0cmFjay5zZXRTb3VyY2VCdWZmZXIobnVsbHB0cik7
CkBAIC04MDMsNyArODAzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6OnJlbW92
ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICAgICAgICAgIC8vIDkuMy41
IFJlbW92ZSB0aGUgVGV4dFRyYWNrIG9iamVjdCBmcm9tIHRoZSBTb3VyY2VCdWZmZXIgdGV4dFRy
YWNrcyBsaXN0LgogICAgICAgICAgICAgLy8gOS4zLjYgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0
cnVzdGVkIGV2ZW50IG5hbWVkIHJlbW92ZXRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQg
aXMgbm90CiAgICAgICAgICAgICAvLyBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFj
a0V2ZW50IGludGVyZmFjZSwgYXQgdGhlIFNvdXJjZUJ1ZmZlciB0ZXh0VHJhY2tzIGxpc3QuCi0g
ICAgICAgICAgICB0ZXh0VHJhY2tzLT5yZW1vdmUodHJhY2spOworICAgICAgICAgICAgdGV4dFRy
YWNrcy5yZW1vdmUodHJhY2spOwogICAgICAgICB9CiAKICAgICAgICAgLy8gOS40IElmIHRoZSBy
ZW1vdmVkIGVuYWJsZWQgdGV4dCB0cmFjayBmbGFnIGVxdWFscyB0cnVlLCB0aGVuIHF1ZXVlIGEg
dGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggN2ZlZTdlNjBiMjJlNDQ4MzQx
Y2FhMDlhZDk4OTk2ODA5YTVlNDI2Yy4uMmUxNGJlMmM5NmMzNWZkNjEzOTdlMGE3YTY1NTk1Njlk
OTM5YjAzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyLmNwcApAQCAtNDIxLDcgKzQyMSw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpz
ZWVrVG9UaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKICAgICB9CiB9CiAKLU1lZGlhVGltZSBT
b3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUo
U291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgdGFyZ2V0VGltZSwgY29uc3Qg
TWVkaWFUaW1lJiBuZWdhdGl2ZVRocmVzaG9sZCwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRo
cmVzaG9sZCkKK01lZGlhVGltZSBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0
U2Vla1RpbWVGb3JNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1lJiB0YXJnZXRUaW1lLCBjb25zdCBN
ZWRpYVRpbWUmIG5lZ2F0aXZlVGhyZXNob2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhy
ZXNob2xkKQogewogICAgIE1lZGlhVGltZSBzZWVrVGltZSA9IHRhcmdldFRpbWU7CiAgICAgTWVk
aWFUaW1lIGxvd2VyQm91bmRUaW1lID0gdGFyZ2V0VGltZSAtIG5lZ2F0aXZlVGhyZXNob2xkOwpA
QCAtNTY2LDcgKzU2Niw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZp
cmVkKCkKIAogICAgIC8vIDEuIExvb3AgVG9wOiBJZiB0aGUgaW5wdXQgYnVmZmVyIGlzIGVtcHR5
LCB0aGVuIGp1bXAgdG8gdGhlIG5lZWQgbW9yZSBkYXRhIHN0ZXAgYmVsb3cuCiAgICAgaWYgKCFt
X3BlbmRpbmdBcHBlbmREYXRhLnNpemUoKSkgewotICAgICAgICBzb3VyY2VCdWZmZXJQcml2YXRl
QXBwZW5kQ29tcGxldGUoJm1fcHJpdmF0ZS5nZXQoKSwgQXBwZW5kU3VjY2VlZGVkKTsKKyAgICAg
ICAgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKEFwcGVuZFN1Y2NlZWRlZCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTU3NCw3ICs1NzQsNyBAQCB2b2lkIFNvdXJjZUJ1
ZmZlcjo6YXBwZW5kQnVmZmVyVGltZXJGaXJlZCgpCiAgICAgbV9wZW5kaW5nQXBwZW5kRGF0YS5j
bGVhcigpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVu
ZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBcHBlbmRSZXN1bHQgcmVzdWx0KQordm9p
ZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShBcHBlbmRS
ZXN1bHQgcmVzdWx0KQogewogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtNjM1LDcgKzYzNSw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRl
QXBwZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIEFwcGVuCiAgICAgTE9HKE1lZGlh
LCAiU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoJXApIC0g
YnVmZmVyZWQgPSAlcyIsIHRoaXMsIHRvU3RyaW5nKG1fYnVmZmVyZWQtPnJhbmdlcygpKS51dGY4
KCkuZGF0YSgpKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoU291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvcikK
K3ZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmlu
Z0Vycm9yKGludCBlcnJvcikKIHsKICNpZiBMT0dfRElTQUJMRUQKICAgICBVTlVTRURfUEFSQU0o
ZXJyb3IpOwpAQCAtOTQ1LDM1ICs5NDUsMzIgQEAgc2l6ZV90IFNvdXJjZUJ1ZmZlcjo6bWF4aW11
bUJ1ZmZlclNpemUoKSBjb25zdAogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICBIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50ID0gbV9zb3VyY2UtPm1lZGlhRWxl
bWVudCgpOworICAgIGF1dG8qIGVsZW1lbnQgPSBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCk7CiAg
ICAgaWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHJldHVybiBlbGVtZW50
LT5tYXhpbXVtU291cmNlQnVmZmVyU2l6ZSgqdGhpcyk7CiB9CiAKLVZpZGVvVHJhY2tMaXN0KiBT
b3VyY2VCdWZmZXI6OnZpZGVvVHJhY2tzKCkKK1ZpZGVvVHJhY2tMaXN0JiBTb3VyY2VCdWZmZXI6
OnZpZGVvVHJhY2tzKCkKIHsKICAgICBpZiAoIW1fdmlkZW9UcmFja3MpCi0gICAgICAgIG1fdmlk
ZW9UcmFja3MgPSBWaWRlb1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQo
KSwgQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0gICAgcmV0
dXJuIG1fdmlkZW9UcmFja3MuZ2V0KCk7CisgICAgICAgIG1fdmlkZW9UcmFja3MgPSBWaWRlb1Ry
YWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKKyAgICByZXR1cm4gKm1fdmlkZW9UcmFja3M7CiB9CiAKLUF1ZGlvVHJhY2tM
aXN0KiBTb3VyY2VCdWZmZXI6OmF1ZGlvVHJhY2tzKCkKK0F1ZGlvVHJhY2tMaXN0JiBTb3VyY2VC
dWZmZXI6OmF1ZGlvVHJhY2tzKCkKIHsKICAgICBpZiAoIW1fYXVkaW9UcmFja3MpCi0gICAgICAg
IG1fYXVkaW9UcmFja3MgPSBBdWRpb1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVs
ZW1lbnQoKSwgQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0g
ICAgcmV0dXJuIG1fYXVkaW9UcmFja3MuZ2V0KCk7CisgICAgICAgIG1fYXVkaW9UcmFja3MgPSBB
dWRpb1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4gKm1fYXVkaW9UcmFja3M7CiB9CiAKLVRleHRU
cmFja0xpc3QqIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrcygpCitUZXh0VHJhY2tMaXN0JiBTb3Vy
Y2VCdWZmZXI6OnRleHRUcmFja3MoKQogewogICAgIGlmICghbV90ZXh0VHJhY2tzKQotICAgICAg
ICBtX3RleHRUcmFja3MgPSBUZXh0VHJhY2tMaXN0OjpjcmVhdGUobV9zb3VyY2UtPm1lZGlhRWxl
bWVudCgpLCBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0KLSAg
ICByZXR1cm4gbV90ZXh0VHJhY2tzLmdldCgpOworICAgICAgICBtX3RleHRUcmFja3MgPSBUZXh0
VHJhY2tMaXN0OjpjcmVhdGUobV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLCBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpOworICAgIHJldHVybiAqbV90ZXh0VHJhY2tzOwogfQogCiB2b2lkIFNvdXJj
ZUJ1ZmZlcjo6c2V0QWN0aXZlKGJvb2wgYWN0aXZlKQpAQCAtOTg3LDcgKzk4NCw3IEBAIHZvaWQg
U291cmNlQnVmZmVyOjpzZXRBY3RpdmUoYm9vbCBhY3RpdmUpCiAgICAgICAgIG1fc291cmNlLT5z
b3VyY2VCdWZmZXJEaWRDaGFuZ2VBY3RpdmVTdGF0ZSgqdGhpcywgYWN0aXZlKTsKIH0KIAotdm9p
ZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRp
b25TZWdtZW50KFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBJbml0aWFsaXphdGlvblNlZ21l
bnQmIHNlZ21lbnQpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJl
Y2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgSW5pdGlhbGl6YXRpb25TZWdtZW50JiBz
ZWdtZW50KQogewogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTAy
NCw0MCArMTAyMSw0MCBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURp
ZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgIC8vIDMuMiBBZGQgdGhlIGFwcHJvcHJpYXRlIHRyYWNr
IGRlc2NyaXB0aW9ucyBmcm9tIHRoaXMgaW5pdGlhbGl6YXRpb24gc2VnbWVudCB0byBlYWNoIG9m
IHRoZSB0cmFjayBidWZmZXJzLgotICAgICAgICBBU1NFUlQoc2VnbWVudC5hdWRpb1RyYWNrcy5z
aXplKCkgPT0gYXVkaW9UcmFja3MoKS0+bGVuZ3RoKCkpOworICAgICAgICBBU1NFUlQoc2VnbWVu
dC5hdWRpb1RyYWNrcy5zaXplKCkgPT0gYXVkaW9UcmFja3MoKS5sZW5ndGgoKSk7CiAgICAgICAg
IGZvciAoYXV0byYgYXVkaW9UcmFja0luZm8gOiBzZWdtZW50LmF1ZGlvVHJhY2tzKSB7Ci0gICAg
ICAgICAgICBpZiAoYXVkaW9UcmFja3MoKS0+bGVuZ3RoKCkgPT0gMSkgewotICAgICAgICAgICAg
ICAgIGF1ZGlvVHJhY2tzKCktPml0ZW0oMCktPnNldFByaXZhdGUoYXVkaW9UcmFja0luZm8udHJh
Y2spOworICAgICAgICAgICAgaWYgKGF1ZGlvVHJhY2tzKCkubGVuZ3RoKCkgPT0gMSkgeworICAg
ICAgICAgICAgICAgIGF1ZGlvVHJhY2tzKCkuaXRlbSgwKS0+c2V0UHJpdmF0ZSgqYXVkaW9UcmFj
a0luZm8udHJhY2spOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICBhdXRvIGF1ZGlvVHJhY2sgPSBhdWRpb1RyYWNrcygpLT5nZXRUcmFja0J5SWQo
YXVkaW9UcmFja0luZm8udHJhY2stPmlkKCkpOworICAgICAgICAgICAgYXV0byBhdWRpb1RyYWNr
ID0gYXVkaW9UcmFja3MoKS5nZXRUcmFja0J5SWQoYXVkaW9UcmFja0luZm8udHJhY2stPmlkKCkp
OwogICAgICAgICAgICAgQVNTRVJUKGF1ZGlvVHJhY2spOwotICAgICAgICAgICAgYXVkaW9UcmFj
ay0+c2V0UHJpdmF0ZShhdWRpb1RyYWNrSW5mby50cmFjayk7CisgICAgICAgICAgICBhdWRpb1Ry
YWNrLT5zZXRQcml2YXRlKCphdWRpb1RyYWNrSW5mby50cmFjayk7CiAgICAgICAgIH0KIAotICAg
ICAgICBBU1NFUlQoc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkgPT0gdmlkZW9UcmFja3MoKS0+
bGVuZ3RoKCkpOworICAgICAgICBBU1NFUlQoc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkgPT0g
dmlkZW9UcmFja3MoKS5sZW5ndGgoKSk7CiAgICAgICAgIGZvciAoYXV0byYgdmlkZW9UcmFja0lu
Zm8gOiBzZWdtZW50LnZpZGVvVHJhY2tzKSB7Ci0gICAgICAgICAgICBpZiAodmlkZW9UcmFja3Mo
KS0+bGVuZ3RoKCkgPT0gMSkgewotICAgICAgICAgICAgICAgIHZpZGVvVHJhY2tzKCktPml0ZW0o
MCktPnNldFByaXZhdGUodmlkZW9UcmFja0luZm8udHJhY2spOworICAgICAgICAgICAgaWYgKHZp
ZGVvVHJhY2tzKCkubGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgICAgIHZpZGVvVHJhY2tz
KCkuaXRlbSgwKS0+c2V0UHJpdmF0ZSgqdmlkZW9UcmFja0luZm8udHJhY2spOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBhdXRvIHZpZGVvVHJh
Y2sgPSB2aWRlb1RyYWNrcygpLT5nZXRUcmFja0J5SWQodmlkZW9UcmFja0luZm8udHJhY2stPmlk
KCkpOworICAgICAgICAgICAgYXV0byB2aWRlb1RyYWNrID0gdmlkZW9UcmFja3MoKS5nZXRUcmFj
a0J5SWQodmlkZW9UcmFja0luZm8udHJhY2stPmlkKCkpOwogICAgICAgICAgICAgQVNTRVJUKHZp
ZGVvVHJhY2spOwotICAgICAgICAgICAgdmlkZW9UcmFjay0+c2V0UHJpdmF0ZSh2aWRlb1RyYWNr
SW5mby50cmFjayk7CisgICAgICAgICAgICB2aWRlb1RyYWNrLT5zZXRQcml2YXRlKCp2aWRlb1Ry
YWNrSW5mby50cmFjayk7CiAgICAgICAgIH0KIAotICAgICAgICBBU1NFUlQoc2VnbWVudC50ZXh0
VHJhY2tzLnNpemUoKSA9PSB0ZXh0VHJhY2tzKCktPmxlbmd0aCgpKTsKKyAgICAgICAgQVNTRVJU
KHNlZ21lbnQudGV4dFRyYWNrcy5zaXplKCkgPT0gdGV4dFRyYWNrcygpLmxlbmd0aCgpKTsKICAg
ICAgICAgZm9yIChhdXRvJiB0ZXh0VHJhY2tJbmZvIDogc2VnbWVudC50ZXh0VHJhY2tzKSB7Ci0g
ICAgICAgICAgICBpZiAodGV4dFRyYWNrcygpLT5sZW5ndGgoKSA9PSAxKSB7Ci0gICAgICAgICAg
ICAgICAgZG93bmNhc3Q8SW5iYW5kVGV4dFRyYWNrPigqdGV4dFRyYWNrcygpLT5pdGVtKDApKS5z
ZXRQcml2YXRlKHRleHRUcmFja0luZm8udHJhY2spOworICAgICAgICAgICAgaWYgKHRleHRUcmFj
a3MoKS5sZW5ndGgoKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgZG93bmNhc3Q8SW5iYW5kVGV4
dFRyYWNrPigqdGV4dFRyYWNrcygpLml0ZW0oMCkpLnNldFByaXZhdGUoKnRleHRUcmFja0luZm8u
dHJhY2spOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICBhdXRvIHRleHRUcmFjayA9IHRleHRUcmFja3MoKS0+Z2V0VHJhY2tCeUlkKHRleHRUcmFj
a0luZm8udHJhY2stPmlkKCkpOworICAgICAgICAgICAgYXV0byB0ZXh0VHJhY2sgPSB0ZXh0VHJh
Y2tzKCkuZ2V0VHJhY2tCeUlkKHRleHRUcmFja0luZm8udHJhY2stPmlkKCkpOwogICAgICAgICAg
ICAgQVNTRVJUKHRleHRUcmFjayk7Ci0gICAgICAgICAgICBkb3duY2FzdDxJbmJhbmRUZXh0VHJh
Y2s+KCp0ZXh0VHJhY2spLnNldFByaXZhdGUodGV4dFRyYWNrSW5mby50cmFjayk7CisgICAgICAg
ICAgICBkb3duY2FzdDxJbmJhbmRUZXh0VHJhY2s+KCp0ZXh0VHJhY2spLnNldFByaXZhdGUoKnRl
eHRUcmFja0luZm8udHJhY2spOwogICAgICAgICB9CiAKICAgICAgICAgLy8gMy4zIFNldCB0aGUg
bmVlZCByYW5kb20gYWNjZXNzIHBvaW50IGZsYWcgb24gYWxsIHRyYWNrIGJ1ZmZlcnMgdG8gdHJ1
ZS4KQEAgLTEwNzYsMTYgKzEwNzMsMTQgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKIAogICAg
ICAgICAvLyA1LjIgRm9yIGVhY2ggYXVkaW8gdHJhY2sgaW4gdGhlIGluaXRpYWxpemF0aW9uIHNl
Z21lbnQsIHJ1biBmb2xsb3dpbmcgc3RlcHM6CiAgICAgICAgIGZvciAoYXV0byYgYXVkaW9UcmFj
a0luZm8gOiBzZWdtZW50LmF1ZGlvVHJhY2tzKSB7Ci0gICAgICAgICAgICBBdWRpb1RyYWNrUHJp
dmF0ZSogYXVkaW9UcmFja1ByaXZhdGUgPSBhdWRpb1RyYWNrSW5mby50cmFjay5nZXQoKTsKLQog
ICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBzdGVwcyA1LjIuMS01LjIuOC4xIGFzIHBl
ciBFZGl0b3IncyBEcmFmdCAwOSBKYW51YXJ5IDIwMTUsIGFuZCByZW9yZGVyIHRoaXMKICAgICAg
ICAgICAgIC8vIDUuMi4xIExldCBuZXcgYXVkaW8gdHJhY2sgYmUgYSBuZXcgQXVkaW9UcmFjayBv
YmplY3QuCiAgICAgICAgICAgICAvLyA1LjIuMiBHZW5lcmF0ZSBhIHVuaXF1ZSBJRCBhbmQgYXNz
aWduIGl0IHRvIHRoZSBpZCBwcm9wZXJ0eSBvbiBuZXcgdmlkZW8gdHJhY2suCi0gICAgICAgICAg
ICBhdXRvIG5ld0F1ZGlvVHJhY2sgPSBBdWRpb1RyYWNrOjpjcmVhdGUodGhpcywgYXVkaW9UcmFj
a1ByaXZhdGUpOworICAgICAgICAgICAgYXV0byBuZXdBdWRpb1RyYWNrID0gQXVkaW9UcmFjazo6
Y3JlYXRlKCp0aGlzLCAqYXVkaW9UcmFja0luZm8udHJhY2spOwogICAgICAgICAgICAgbmV3QXVk
aW9UcmFjay0+c2V0U291cmNlQnVmZmVyKHRoaXMpOwogCiAgICAgICAgICAgICAvLyA1LjIuMyBJ
ZiBhdWRpb1RyYWNrcy5sZW5ndGggZXF1YWxzIDAsIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3Rl
cHM6Ci0gICAgICAgICAgICBpZiAoIWF1ZGlvVHJhY2tzKCktPmxlbmd0aCgpKSB7CisgICAgICAg
ICAgICBpZiAoIWF1ZGlvVHJhY2tzKCkubGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICAvLyA1
LjIuMy4xIFNldCB0aGUgZW5hYmxlZCBwcm9wZXJ0eSBvbiBuZXcgYXVkaW8gdHJhY2sgdG8gdHJ1
ZS4KICAgICAgICAgICAgICAgICBuZXdBdWRpb1RyYWNrLT5zZXRFbmFibGVkKHRydWUpOwogCkBA
IC0xMDk3LDcgKzEwOTIsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogICAgICAgICAgICAg
Ly8gNS4yLjUgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRy
YWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMKICAgICAgICAgICAgIC8vIG5vdCBjYW5j
ZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGludGVyZmFjZSwgYXQgdGhlIEF1
ZGlvVHJhY2tMaXN0IG9iamVjdAogICAgICAgICAgICAgLy8gcmVmZXJlbmNlZCBieSB0aGUgYXVk
aW9UcmFja3MgYXR0cmlidXRlIG9uIHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4KLSAgICAgICAg
ICAgIGF1ZGlvVHJhY2tzKCktPmFwcGVuZChuZXdBdWRpb1RyYWNrLmNvcHlSZWYoKSk7CisgICAg
ICAgICAgICBhdWRpb1RyYWNrcygpLmFwcGVuZChuZXdBdWRpb1RyYWNrLmNvcHlSZWYoKSk7CiAK
ICAgICAgICAgICAgIC8vIDUuMi42IEFkZCBuZXcgYXVkaW8gdHJhY2sgdG8gdGhlIGF1ZGlvVHJh
Y2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAgICAgICAgICAgIC8vIDUu
Mi43IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0cmFjaywg
dGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCkBAIC0xMTA3LDcgKzExMDIsNyBAQCB2b2lkIFNv
dXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNl
Z21lbnQoU291cmNlQnVmZgogCiAgICAgICAgICAgICAvLyA1LjIuOCBDcmVhdGUgYSBuZXcgdHJh
Y2sgYnVmZmVyIHRvIHN0b3JlIGNvZGVkIGZyYW1lcyBmb3IgdGhpcyB0cmFjay4KICAgICAgICAg
ICAgIEFTU0VSVCghbV90cmFja0J1ZmZlck1hcC5jb250YWlucyhuZXdBdWRpb1RyYWNrLT5pZCgp
KSk7Ci0gICAgICAgICAgICBUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVmZmVy
TWFwLmFkZChuZXdBdWRpb1RyYWNrLT5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFs
dWU7CisgICAgICAgICAgICBhdXRvJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRk
KG5ld0F1ZGlvVHJhY2stPmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKIAog
ICAgICAgICAgICAgLy8gNS4yLjkgQWRkIHRoZSB0cmFjayBkZXNjcmlwdGlvbiBmb3IgdGhpcyB0
cmFjayB0byB0aGUgdHJhY2sgYnVmZmVyLgogICAgICAgICAgICAgdHJhY2tCdWZmZXIuZGVzY3Jp
cHRpb24gPSBhdWRpb1RyYWNrSW5mby5kZXNjcmlwdGlvbjsKQEAgLTExMTcsMTYgKzExMTIsMTQg
QEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlh
bGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKIAogICAgICAgICAvLyA1LjMgRm9yIGVhY2ggdmlk
ZW8gdHJhY2sgaW4gdGhlIGluaXRpYWxpemF0aW9uIHNlZ21lbnQsIHJ1biBmb2xsb3dpbmcgc3Rl
cHM6CiAgICAgICAgIGZvciAoYXV0byYgdmlkZW9UcmFja0luZm8gOiBzZWdtZW50LnZpZGVvVHJh
Y2tzKSB7Ci0gICAgICAgICAgICBWaWRlb1RyYWNrUHJpdmF0ZSogdmlkZW9UcmFja1ByaXZhdGUg
PSB2aWRlb1RyYWNrSW5mby50cmFjay5nZXQoKTsKLQogICAgICAgICAgICAgLy8gRklYTUU6IElt
cGxlbWVudCBzdGVwcyA1LjMuMS01LjMuOC4xIGFzIHBlciBFZGl0b3IncyBEcmFmdCAwOSBKYW51
YXJ5IDIwMTUsIGFuZCByZW9yZGVyIHRoaXMKICAgICAgICAgICAgIC8vIDUuMy4xIExldCBuZXcg
dmlkZW8gdHJhY2sgYmUgYSBuZXcgVmlkZW9UcmFjayBvYmplY3QuCiAgICAgICAgICAgICAvLyA1
LjMuMiBHZW5lcmF0ZSBhIHVuaXF1ZSBJRCBhbmQgYXNzaWduIGl0IHRvIHRoZSBpZCBwcm9wZXJ0
eSBvbiBuZXcgdmlkZW8gdHJhY2suCi0gICAgICAgICAgICBhdXRvIG5ld1ZpZGVvVHJhY2sgPSBW
aWRlb1RyYWNrOjpjcmVhdGUodGhpcywgdmlkZW9UcmFja1ByaXZhdGUpOworICAgICAgICAgICAg
YXV0byBuZXdWaWRlb1RyYWNrID0gVmlkZW9UcmFjazo6Y3JlYXRlKCp0aGlzLCAqdmlkZW9UcmFj
a0luZm8udHJhY2spOwogICAgICAgICAgICAgbmV3VmlkZW9UcmFjay0+c2V0U291cmNlQnVmZmVy
KHRoaXMpOwogCiAgICAgICAgICAgICAvLyA1LjMuMyBJZiB2aWRlb1RyYWNrcy5sZW5ndGggZXF1
YWxzIDAsIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgICAgICBpZiAoIXZp
ZGVvVHJhY2tzKCktPmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpZiAoIXZpZGVvVHJhY2tzKCku
bGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICAvLyA1LjMuMy4xIFNldCB0aGUgc2VsZWN0ZWQg
cHJvcGVydHkgb24gbmV3IHZpZGVvIHRyYWNrIHRvIHRydWUuCiAgICAgICAgICAgICAgICAgbmV3
VmlkZW9UcmFjay0+c2V0U2VsZWN0ZWQodHJ1ZSk7CiAKQEAgLTExMzgsNyArMTEzMSw3IEBAIHZv
aWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0
aW9uU2VnbWVudChTb3VyY2VCdWZmCiAgICAgICAgICAgICAvLyA1LjMuNSBRdWV1ZSBhIHRhc2sg
dG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgYWRkdHJhY2ssIHRoYXQgZG9lcyBub3QgYnVi
YmxlIGFuZCBpcwogICAgICAgICAgICAgLy8gbm90IGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMg
dGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0CiAg
ICAgICAgICAgICAvLyByZWZlcmVuY2VkIGJ5IHRoZSB2aWRlb1RyYWNrcyBhdHRyaWJ1dGUgb24g
dGhpcyBTb3VyY2VCdWZmZXIgb2JqZWN0LgotICAgICAgICAgICAgdmlkZW9UcmFja3MoKS0+YXBw
ZW5kKG5ld1ZpZGVvVHJhY2suY29weVJlZigpKTsKKyAgICAgICAgICAgIHZpZGVvVHJhY2tzKCku
YXBwZW5kKG5ld1ZpZGVvVHJhY2suY29weVJlZigpKTsKIAogICAgICAgICAgICAgLy8gNS4zLjYg
QWRkIG5ldyB2aWRlbyB0cmFjayB0byB0aGUgdmlkZW9UcmFja3MgYXR0cmlidXRlIG9uIHRoZSBI
VE1MTWVkaWFFbGVtZW50LgogICAgICAgICAgICAgLy8gNS4zLjcgUXVldWUgYSB0YXNrIHRvIGZp
cmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBh
bmQgaXMKQEAgLTExNDgsNyArMTE0MSw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZm
ZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmCiAKICAg
ICAgICAgICAgIC8vIDUuMy44IENyZWF0ZSBhIG5ldyB0cmFjayBidWZmZXIgdG8gc3RvcmUgY29k
ZWQgZnJhbWVzIGZvciB0aGlzIHRyYWNrLgogICAgICAgICAgICAgQVNTRVJUKCFtX3RyYWNrQnVm
ZmVyTWFwLmNvbnRhaW5zKG5ld1ZpZGVvVHJhY2stPmlkKCkpKTsKLSAgICAgICAgICAgIFRyYWNr
QnVmZmVyJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKG5ld1ZpZGVvVHJhY2st
PmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgICAgIGF1dG8m
IHRyYWNrQnVmZmVyID0gbV90cmFja0J1ZmZlck1hcC5hZGQobmV3VmlkZW9UcmFjay0+aWQoKSwg
VHJhY2tCdWZmZXIoKSkuaXRlcmF0b3ItPnZhbHVlOwogCiAgICAgICAgICAgICAvLyA1LjMuOSBB
ZGQgdGhlIHRyYWNrIGRlc2NyaXB0aW9uIGZvciB0aGlzIHRyYWNrIHRvIHRoZSB0cmFjayBidWZm
ZXIuCiAgICAgICAgICAgICB0cmFja0J1ZmZlci5kZXNjcmlwdGlvbiA9IHZpZGVvVHJhY2tJbmZv
LmRlc2NyaXB0aW9uOwpAQCAtMTE1OCwzMyArMTE1MSwzMyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6
c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNl
QnVmZgogCiAgICAgICAgIC8vIDUuNCBGb3IgZWFjaCB0ZXh0IHRyYWNrIGluIHRoZSBpbml0aWFs
aXphdGlvbiBzZWdtZW50LCBydW4gZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICBmb3IgKGF1dG8m
IHRleHRUcmFja0luZm8gOiBzZWdtZW50LnRleHRUcmFja3MpIHsKLSAgICAgICAgICAgIEluYmFu
ZFRleHRUcmFja1ByaXZhdGUqIHRleHRUcmFja1ByaXZhdGUgPSB0ZXh0VHJhY2tJbmZvLnRyYWNr
LmdldCgpOworICAgICAgICAgICAgYXV0byYgdGV4dFRyYWNrUHJpdmF0ZSA9ICp0ZXh0VHJhY2tJ
bmZvLnRyYWNrOwogCiAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHN0ZXBzIDUuNC4x
LTUuNC44LjEgYXMgcGVyIEVkaXRvcidzIERyYWZ0IDA5IEphbnVhcnkgMjAxNSwgYW5kIHJlb3Jk
ZXIgdGhpcwogICAgICAgICAgICAgLy8gNS40LjEgTGV0IG5ldyB0ZXh0IHRyYWNrIGJlIGEgbmV3
IFRleHRUcmFjayBvYmplY3Qgd2l0aCBpdHMgcHJvcGVydGllcyBwb3B1bGF0ZWQgd2l0aCB0aGUK
ICAgICAgICAgICAgIC8vIGFwcHJvcHJpYXRlIGluZm9ybWF0aW9uIGZyb20gdGhlIGluaXRpYWxp
emF0aW9uIHNlZ21lbnQuCi0gICAgICAgICAgICBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrPiBuZXdU
ZXh0VHJhY2sgPSBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCksIHRoaXMsIHRleHRUcmFja1ByaXZhdGUpOworICAgICAgICAgICAgYXV0byBuZXdUZXh0VHJh
Y2sgPSBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAq
dGhpcywgdGV4dFRyYWNrUHJpdmF0ZSk7CiAKICAgICAgICAgICAgIC8vIDUuNC4yIElmIHRoZSBt
b2RlIHByb3BlcnR5IG9uIG5ldyB0ZXh0IHRyYWNrIGVxdWFscyAic2hvd2luZyIgb3IgImhpZGRl
biIsIHRoZW4gc2V0IGFjdGl2ZQogICAgICAgICAgICAgLy8gdHJhY2sgZmxhZyB0byB0cnVlLgot
ICAgICAgICAgICAgaWYgKHRleHRUcmFja1ByaXZhdGUtPm1vZGUoKSAhPSBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlOjpEaXNhYmxlZCkKKyAgICAgICAgICAgIGlmICh0ZXh0VHJhY2tQcml2YXRlLm1v
ZGUoKSAhPSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpEaXNhYmxlZCkKICAgICAgICAgICAgICAg
ICBhY3RpdmVUcmFja0ZsYWcgPSB0cnVlOwogCiAgICAgICAgICAgICAvLyA1LjQuMyBBZGQgbmV3
IHRleHQgdHJhY2sgdG8gdGhlIHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoaXMgU291cmNlQnVm
ZmVyIG9iamVjdC4KICAgICAgICAgICAgIC8vIDUuNC40IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEg
dHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlz
CiAgICAgICAgICAgICAvLyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tF
dmVudCBpbnRlcmZhY2UsIGF0IHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoaXMKICAgICAgICAg
ICAgIC8vIFNvdXJjZUJ1ZmZlciBvYmplY3QuCi0gICAgICAgICAgICB0ZXh0VHJhY2tzKCktPmFw
cGVuZCgqbmV3VGV4dFRyYWNrKTsKKyAgICAgICAgICAgIHRleHRUcmFja3MoKS5hcHBlbmQobmV3
VGV4dFRyYWNrLmdldCgpKTsKIAogICAgICAgICAgICAgLy8gNS40LjUgQWRkIG5ldyB0ZXh0IHRy
YWNrIHRvIHRoZSB0ZXh0VHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4K
ICAgICAgICAgICAgIC8vIDUuNC42IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVu
dCBuYW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCiAgICAgICAgICAg
ICAvLyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZh
Y2UsIGF0IHRoZSBUZXh0VHJhY2tMaXN0IG9iamVjdAogICAgICAgICAgICAgLy8gcmVmZXJlbmNl
ZCBieSB0aGUgdGV4dFRyYWNrcyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCi0g
ICAgICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja3MoKS5hcHBlbmQo
bmV3VGV4dFRyYWNrLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgbV9zb3VyY2UtPm1l
ZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tzKCkuYXBwZW5kKFdURk1vdmUobmV3VGV4dFRyYWNrKSk7
CiAKICAgICAgICAgICAgIC8vIDUuNC43IENyZWF0ZSBhIG5ldyB0cmFjayBidWZmZXIgdG8gc3Rv
cmUgY29kZWQgZnJhbWVzIGZvciB0aGlzIHRyYWNrLgotICAgICAgICAgICAgQVNTRVJUKCFtX3Ry
YWNrQnVmZmVyTWFwLmNvbnRhaW5zKHRleHRUcmFja1ByaXZhdGUtPmlkKCkpKTsKLSAgICAgICAg
ICAgIFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKHRleHRU
cmFja1ByaXZhdGUtPmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAg
ICAgICAgIEFTU0VSVCghbV90cmFja0J1ZmZlck1hcC5jb250YWlucyh0ZXh0VHJhY2tQcml2YXRl
LmlkKCkpKTsKKyAgICAgICAgICAgIGF1dG8mIHRyYWNrQnVmZmVyID0gbV90cmFja0J1ZmZlck1h
cC5hZGQodGV4dFRyYWNrUHJpdmF0ZS5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFs
dWU7CiAKICAgICAgICAgICAgIC8vIDUuNC44IEFkZCB0aGUgdHJhY2sgZGVzY3JpcHRpb24gZm9y
IHRoaXMgdHJhY2sgdG8gdGhlIHRyYWNrIGJ1ZmZlci4KICAgICAgICAgICAgIHRyYWNrQnVmZmVy
LmRlc2NyaXB0aW9uID0gdGV4dFRyYWNrSW5mby5kZXNjcmlwdGlvbjsKQEAgLTEyMzEsOSArMTIy
NCw5IEBAIGJvb2wgU291cmNlQnVmZmVyOjp2YWxpZGF0ZUluaXRpYWxpemF0aW9uU2VnbWVudChj
b25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmIHNlCiAKICAgICAvLyBOb3RlOiB0aG9zZSBhcmUg
Y2hlY2tzIGZyb20gc3RlcCAzLjEKICAgICAvLyAgICogVGhlIG51bWJlciBvZiBhdWRpbywgdmlk
ZW8sIGFuZCB0ZXh0IHRyYWNrcyBtYXRjaCB3aGF0IHdhcyBpbiB0aGUgZmlyc3QgaW5pdGlhbGl6
YXRpb24gc2VnbWVudC4KLSAgICBpZiAoc2VnbWVudC5hdWRpb1RyYWNrcy5zaXplKCkgIT0gYXVk
aW9UcmFja3MoKS0+bGVuZ3RoKCkKLSAgICAgICAgfHwgc2VnbWVudC52aWRlb1RyYWNrcy5zaXpl
KCkgIT0gdmlkZW9UcmFja3MoKS0+bGVuZ3RoKCkKLSAgICAgICAgfHwgc2VnbWVudC50ZXh0VHJh
Y2tzLnNpemUoKSAhPSB0ZXh0VHJhY2tzKCktPmxlbmd0aCgpKQorICAgIGlmIChzZWdtZW50LmF1
ZGlvVHJhY2tzLnNpemUoKSAhPSBhdWRpb1RyYWNrcygpLmxlbmd0aCgpCisgICAgICAgIHx8IHNl
Z21lbnQudmlkZW9UcmFja3Muc2l6ZSgpICE9IHZpZGVvVHJhY2tzKCkubGVuZ3RoKCkKKyAgICAg
ICAgfHwgc2VnbWVudC50ZXh0VHJhY2tzLnNpemUoKSAhPSB0ZXh0VHJhY2tzKCkubGVuZ3RoKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vICAgKiBUaGUgY29kZWNzIGZvciBlYWNo
IHRyYWNrLCBtYXRjaCB3aGF0IHdhcyBzcGVjaWZpZWQgaW4gdGhlIGZpcnN0IGluaXRpYWxpemF0
aW9uIHNlZ21lbnQuCkBAIC0xMzE5LDcgKzEzMTIsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6YXBw
ZW5kRXJyb3IoYm9vbCBkZWNvZGVFcnJvclBhcmFtKQogICAgICAgICBtX3NvdXJjZS0+c3RyZWFt
RW5kZWRXaXRoRXJyb3IoTWVkaWFTb3VyY2U6OkVuZE9mU3RyZWFtRXJyb3I6OkRlY29kZSk7CiB9
CiAKLXZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBs
ZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgTWVkaWFTYW1wbGUmIHNhbXBsZSkKK3ZvaWQgU291cmNl
QnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYg
c2FtcGxlKQogewogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTY2
NiwzMCArMTY1OSwzMCBAQCBib29sIFNvdXJjZUJ1ZmZlcjo6aGFzVmlkZW8oKSBjb25zdAogICAg
IHJldHVybiBtX3ZpZGVvVHJhY2tzICYmIG1fdmlkZW9UcmFja3MtPmxlbmd0aCgpOwogfQogCi1i
b29sIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKGNvbnN0IFNvdXJj
ZUJ1ZmZlclByaXZhdGUqKSBjb25zdAorYm9vbCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclBy
aXZhdGVIYXNBdWRpbygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc0F1ZGlvKCk7CiB9CiAKLWJv
b2wgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8oY29uc3QgU291cmNl
QnVmZmVyUHJpdmF0ZSopIGNvbnN0Citib29sIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJp
dmF0ZUhhc1ZpZGVvKCkgY29uc3QKIHsKICAgICByZXR1cm4gaGFzVmlkZW8oKTsKIH0KIAotdm9p
ZCBTb3VyY2VCdWZmZXI6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayogdHJh
Y2spCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1Ry
YWNrJiB0cmFjaykKIHsKICAgICAvLyAyLjQuNSBDaGFuZ2VzIHRvIHNlbGVjdGVkL2VuYWJsZWQg
dHJhY2sgc3RhdGUKICAgICAvLyBJZiB0aGUgc2VsZWN0ZWQgdmlkZW8gdHJhY2sgY2hhbmdlcywg
dGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKICAgICAvLyAxLiBJZiB0aGUgU291cmNlQnVm
ZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCB2aWRlbyB0cmFjayBp
cyBub3QgYXNzb2NpYXRlZCB3aXRoCiAgICAgLy8gYW55IG90aGVyIGVuYWJsZWQgdHJhY2tzLCBy
dW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAoIXRyYWNrLT5zZWxlY3RlZCgpCisgICAg
aWYgKCF0cmFjay5zZWxlY3RlZCgpCiAgICAgICAgICYmICghbV92aWRlb1RyYWNrcyB8fCAhbV92
aWRlb1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX2F1ZGlvVHJh
Y2tzIHx8ICFtX2F1ZGlvVHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAgICAgICAmJiAo
IW1fdGV4dFRyYWNrcyB8fCAhbV90ZXh0VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKSkgewog
ICAgICAgICAvLyAxLjEgUmVtb3ZlIHRoZSBTb3VyY2VCdWZmZXIgZnJvbSBhY3RpdmVTb3VyY2VC
dWZmZXJzLgogICAgICAgICAvLyAxLjIgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZl
bnQgbmFtZWQgcmVtb3Zlc291cmNlYnVmZmVyIGF0IGFjdGl2ZVNvdXJjZUJ1ZmZlcnMKICAgICAg
ICAgc2V0QWN0aXZlKGZhbHNlKTsKLSAgICB9IGVsc2UgaWYgKHRyYWNrLT5zZWxlY3RlZCgpKSB7
CisgICAgfSBlbHNlIGlmICh0cmFjay5zZWxlY3RlZCgpKSB7CiAgICAgICAgIC8vIDIuIElmIHRo
ZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBuZXdseSBzZWxlY3RlZCB2aWRlbyB0
cmFjayBpcyBub3QgYWxyZWFkeSBpbiBhY3RpdmVTb3VyY2VCdWZmZXJzLAogICAgICAgICAvLyBy
dW4gdGhlIGZvbGxvd2luZyBzdGVwczoKICAgICAgICAgLy8gMi4xIEFkZCB0aGUgU291cmNlQnVm
ZmVyIHRvIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMuCkBAIC0xNjk3LDI2ICsxNjkwLDI2IEBAIHZvaWQg
U291cmNlQnVmZmVyOjp2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqIHRyYWNr
KQogICAgICAgICBzZXRBY3RpdmUodHJ1ZSk7CiAgICAgfQogCi0gICAgaWYgKG1fdmlkZW9UcmFj
a3MgJiYgbV92aWRlb1RyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV92aWRlb1Ry
YWNrcyAmJiBtX3ZpZGVvVHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fdmlkZW9U
cmFja3MtPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIGlmICghaXNSZW1vdmVkKCkpCiAg
ICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdl
ZCh0cmFjayk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjphdWRpb1RyYWNrRW5hYmxlZENoYW5n
ZWQoQXVkaW9UcmFjayogdHJhY2spCit2b2lkIFNvdXJjZUJ1ZmZlcjo6YXVkaW9UcmFja0VuYWJs
ZWRDaGFuZ2VkKEF1ZGlvVHJhY2smIHRyYWNrKQogewogICAgIC8vIDIuNC41IENoYW5nZXMgdG8g
c2VsZWN0ZWQvZW5hYmxlZCB0cmFjayBzdGF0ZQogICAgIC8vIElmIGFuIGF1ZGlvIHRyYWNrIGJl
Y29tZXMgZGlzYWJsZWQgYW5kIHRoZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMg
dHJhY2sgaXMgbm90CiAgICAgLy8gYXNzb2NpYXRlZCB3aXRoIGFueSBvdGhlciBlbmFibGVkIG9y
IHNlbGVjdGVkIHRyYWNrLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIGlmICgh
dHJhY2stPmVuYWJsZWQoKQorICAgIGlmICghdHJhY2suZW5hYmxlZCgpCiAgICAgICAgICYmICgh
bV92aWRlb1RyYWNrcyB8fCAhbV92aWRlb1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkKICAg
ICAgICAgJiYgKCFtX2F1ZGlvVHJhY2tzIHx8ICFtX2F1ZGlvVHJhY2tzLT5pc0FueVRyYWNrRW5h
YmxlZCgpKQogICAgICAgICAmJiAoIW1fdGV4dFRyYWNrcyB8fCAhbV90ZXh0VHJhY2tzLT5pc0Fu
eVRyYWNrRW5hYmxlZCgpKSkgewogICAgICAgICAvLyAxLiBSZW1vdmUgdGhlIFNvdXJjZUJ1ZmZl
ciBhc3NvY2lhdGVkIHdpdGggdGhlIGF1ZGlvIHRyYWNrIGZyb20gYWN0aXZlU291cmNlQnVmZmVy
cwogICAgICAgICAvLyAyLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1l
ZCByZW1vdmVzb3VyY2VidWZmZXIgYXQgYWN0aXZlU291cmNlQnVmZmVycwogICAgICAgICBzZXRB
Y3RpdmUoZmFsc2UpOwotICAgIH0gZWxzZSBpZiAodHJhY2stPmVuYWJsZWQoKSkgeworICAgIH0g
ZWxzZSBpZiAodHJhY2suZW5hYmxlZCgpKSB7CiAgICAgICAgIC8vIElmIGFuIGF1ZGlvIHRyYWNr
IGJlY29tZXMgZW5hYmxlZCBhbmQgdGhlIFNvdXJjZUJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhp
cyB0cmFjayBpcwogICAgICAgICAvLyBub3QgYWxyZWFkeSBpbiBhY3RpdmVTb3VyY2VCdWZmZXJz
LCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICAvLyAxLiBBZGQgdGhlIFNv
dXJjZUJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhlIGF1ZGlvIHRyYWNrIHRvIGFjdGl2ZVNvdXJj
ZUJ1ZmZlcnMKQEAgLTE3MjQsMTkgKzE3MTcsMTkgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OmF1ZGlv
VHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKiB0cmFjaykKICAgICAgICAgc2V0QWN0aXZl
KHRydWUpOwogICAgIH0KIAotICAgIGlmIChtX2F1ZGlvVHJhY2tzICYmIG1fYXVkaW9UcmFja3Mt
PmNvbnRhaW5zKCp0cmFjaykpCisgICAgaWYgKG1fYXVkaW9UcmFja3MgJiYgbV9hdWRpb1RyYWNr
cy0+Y29udGFpbnModHJhY2spKQogICAgICAgICBtX2F1ZGlvVHJhY2tzLT5zY2hlZHVsZUNoYW5n
ZUV2ZW50KCk7CiAKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVk
aWFFbGVtZW50KCktPmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCh0cmFjayk7CiB9CiAKLXZvaWQg
U291cmNlQnVmZmVyOjp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQordm9p
ZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7
CiAgICAgLy8gMi40LjUgQ2hhbmdlcyB0byBzZWxlY3RlZC9lbmFibGVkIHRyYWNrIHN0YXRlCiAg
ICAgLy8gSWYgYSB0ZXh0IHRyYWNrIG1vZGUgYmVjb21lcyAiZGlzYWJsZWQiIGFuZCB0aGUgU291
cmNlQnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYWNrIGlzIG5vdAogICAgIC8vIGFzc29j
aWF0ZWQgd2l0aCBhbnkgb3RoZXIgZW5hYmxlZCBvciBzZWxlY3RlZCB0cmFjaywgdGhlbiBydW4g
dGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAodHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6
Ok1vZGU6OkRpc2FibGVkCisgICAgaWYgKHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6
OkRpc2FibGVkCiAgICAgICAgICYmICghbV92aWRlb1RyYWNrcyB8fCAhbV92aWRlb1RyYWNrcy0+
aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX2F1ZGlvVHJhY2tzIHx8ICFtX2F1
ZGlvVHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAgICAgICAmJiAoIW1fdGV4dFRyYWNr
cyB8fCAhbV90ZXh0VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKSkgewpAQCAtMTc1MSw1NiAr
MTc0NCw1NiBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRy
YWNrKiB0cmFjaykKICAgICAgICAgc2V0QWN0aXZlKHRydWUpOwogICAgIH0KIAotICAgIGlmICht
X3RleHRUcmFja3MgJiYgbV90ZXh0VHJhY2tzLT5jb250YWlucygqdHJhY2spKQorICAgIGlmICht
X3RleHRUcmFja3MgJiYgbV90ZXh0VHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1f
dGV4dFRyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogCiAgICAgaWYgKCFpc1JlbW92ZWQo
KSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tNb2RlQ2hhbmdl
ZCh0cmFjayk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRy
YWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRy
YWNrQWRkQ3VlKFRleHRUcmFjayYgdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogewogICAgIGlm
ICghaXNSZW1vdmVkKCkpCiAgICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dGV4dFRy
YWNrQWRkQ3VlKHRyYWNrLCBjdWUpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNr
QWRkQ3VlcyhUZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWVMaXN0IGNvbnN0KiBjdWVMaXN0
KQordm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiB0cmFjaywg
Y29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYgY3VlTGlzdCkKIHsKICAgICBpZiAoIWlzUmVtb3ZlZCgp
KQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja0FkZEN1ZXModHJh
Y2ssIGN1ZUxpc3QpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3Vl
KFRleHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBTb3VyY2VCdWZmZXI6
OnRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkK
IHsKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50
KCktPnRleHRUcmFja1JlbW92ZUN1ZSh0cmFjaywgY3VlKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZm
ZXI6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlTGlz
dCBjb25zdCogY3VlTGlzdCkKK3ZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tSZW1vdmVDdWVz
KFRleHRUcmFjayYgdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZUxpc3QpCiB7CiAg
ICAgaWYgKCFpc1JlbW92ZWQoKSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50
ZXh0VHJhY2tSZW1vdmVDdWVzKHRyYWNrLCBjdWVMaXN0KTsKIH0KIAotdm9pZCBTb3VyY2VCdWZm
ZXI6OnRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIFNvdXJjZUJ1
ZmZlcjo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykKIHsKICAgICBpZiAo
IWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFj
a0tpbmRDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1ZmZlclByaXZhdGUq
LCBBdG9taWNTdHJpbmcgdHJhY2tJRCkKK3ZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQ
cml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRy
YWNrSUQpCiB7CiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyOjpzb3VyY2VCdWZm
ZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyglcCkiLCB0aGlzKTsKICAgICBh
dXRvIGl0ID0gbV90cmFja0J1ZmZlck1hcC5maW5kKHRyYWNrSUQpOwogICAgIGlmIChpdCA9PSBt
X3RyYWNrQnVmZmVyTWFwLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBUcmFja0J1ZmZl
ciYgdHJhY2tCdWZmZXIgPSBpdC0+dmFsdWU7CisgICAgYXV0byYgdHJhY2tCdWZmZXIgPSBpdC0+
dmFsdWU7CiAgICAgaWYgKCF0cmFja0J1ZmZlci5uZWVkc1JlZW5xdWV1ZWluZyAmJiAhbV9zb3Vy
Y2UtPmlzU2Vla2luZygpKQogICAgICAgICBwcm92aWRlTWVkaWFEYXRhKHRyYWNrQnVmZmVyLCB0
cmFja0lEKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoVHJhY2tC
dWZmZXImIHRyYWNrQnVmZmVyLCBBdG9taWNTdHJpbmcgdHJhY2tJRCkKK3ZvaWQgU291cmNlQnVm
ZmVyOjpwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgY29uc3QgQXRv
bWljU3RyaW5nJiB0cmFja0lEKQogewogICAgIGlmIChtX3NvdXJjZS0+aXNTZWVraW5nKCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTE4MzQsNyArMTgyNyw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpw
cm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5nIHRy
YWNrCiAKICAgICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSA9
IHNhbXBsZS0+cHJlc2VudGF0aW9uVGltZSgpOwogICAgICAgICB0cmFja0J1ZmZlci5sYXN0RW5x
dWV1ZWREZWNvZGVFbmRUaW1lID0gc2FtcGxlLT5kZWNvZGVUaW1lKCkgKyBzYW1wbGUtPmR1cmF0
aW9uKCk7Ci0gICAgICAgIG1fcHJpdmF0ZS0+ZW5xdWV1ZVNhbXBsZShXVEZNb3ZlKHNhbXBsZSks
IHRyYWNrSUQpOworICAgICAgICBtX3ByaXZhdGUtPmVucXVldWVTYW1wbGUoc2FtcGxlLnJlbGVh
c2VOb25OdWxsKCksIHRyYWNrSUQpOwogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgKytlbnF1
ZXVlZFNhbXBsZXM7CiAjZW5kaWYKQEAgLTE4NDMsNyArMTgzNiw3IEBAIHZvaWQgU291cmNlQnVm
ZmVyOjpwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3Ry
aW5nIHRyYWNrCiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyOjpwcm92aWRlTWVk
aWFEYXRhKCVwKSAtIEVucXVldWVkICV1IHNhbXBsZXMiLCB0aGlzLCBlbnF1ZXVlZFNhbXBsZXMp
OwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6cmVlbnF1ZXVlTWVkaWFGb3JUaW1lKFRyYWNrQnVm
ZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5nIHRyYWNrSUQsIGNvbnN0IE1lZGlhVGltZSYg
dGltZSkKK3ZvaWQgU291cmNlQnVmZmVyOjpyZWVucXVldWVNZWRpYUZvclRpbWUoVHJhY2tCdWZm
ZXImIHRyYWNrQnVmZmVyLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQsIGNvbnN0IE1lZGlh
VGltZSYgdGltZSkKIHsKICAgICBtX3ByaXZhdGUtPmZsdXNoKHRyYWNrSUQpOwogICAgIHRyYWNr
QnVmZmVyLmRlY29kZVF1ZXVlLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAppbmRleCBkOWUxNzQ3OTk5MjRhZmIwZTg4ZDc0
NzcyZThmOGE5MWEyY2YwMmIwLi4zOWQwNTE2Njk5YmNhOTVkYmIwN2UyZTY1ZmEwMTc1OGM1N2I1
NTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJj
ZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgQXVkaW9UcmFja0xpc3Q7CiBjbGFzcyBC
dWZmZXJTb3VyY2U7CiBjbGFzcyBNZWRpYVNvdXJjZTsKIGNsYXNzIFBsYXRmb3JtVGltZVJhbmdl
czsKK2NsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGU7CiBjbGFzcyBUZXh0VHJhY2tMaXN0OwogY2xh
c3MgVGltZVJhbmdlczsKIGNsYXNzIFZpZGVvVHJhY2tMaXN0OwpAQCAtNjQsOSArNjUsOSBAQCBw
dWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VGltZXN0YW1wT2Zmc2V0KGRvdWJsZSk7
CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgVmlkZW9UcmFja0xpc3QqIHZpZGVvVHJh
Y2tzKCk7Ci0gICAgQXVkaW9UcmFja0xpc3QqIGF1ZGlvVHJhY2tzKCk7Ci0gICAgVGV4dFRyYWNr
TGlzdCogdGV4dFRyYWNrcygpOworICAgIFZpZGVvVHJhY2tMaXN0JiB2aWRlb1RyYWNrcygpOwor
ICAgIEF1ZGlvVHJhY2tMaXN0JiBhdWRpb1RyYWNrcygpOworICAgIFRleHRUcmFja0xpc3QmIHRl
eHRUcmFja3MoKTsKICNlbmRpZgogCiAgICAgZG91YmxlIGFwcGVuZFdpbmRvd1N0YXJ0KCkgY29u
c3Q7CkBAIC0xMjQsMjUgKzEyNSwyNCBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1
bWVudFN1c3BlbnNpb24oKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgc291cmNlQnVmZmVyUHJp
dmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJpdmF0ZSos
IGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYpIGZpbmFsOwotICAgIHZvaWQgc291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIE1lZGlhU2Ft
cGxlJikgZmluYWw7Ci0gICAgYm9vbCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oY29uc3Qg
U291cmNlQnVmZmVyUHJpdmF0ZSopIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgc291cmNlQnVmZmVy
UHJpdmF0ZUhhc1ZpZGVvKGNvbnN0IFNvdXJjZUJ1ZmZlclByaXZhdGUqKSBjb25zdCBmaW5hbDsK
LSAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVz
KFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBdG9taWNTdHJpbmcgdHJhY2tJRCkgZmluYWw7Ci0gICAg
TWVkaWFUaW1lIHNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoU291
cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYgbmVn
YXRpdmVUaHJlc2hvbGQsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpdmVUaHJlc2hvbGQpIGZpbmFs
OwotICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFNvdXJjZUJ1ZmZl
clByaXZhdGUqLCBBcHBlbmRSZXN1bHQpIGZpbmFsOwotICAgIHZvaWQgc291cmNlQnVmZmVyUHJp
dmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihTb3VyY2VCdWZmZXJQcml2YXRlKiwgaW50IGVy
cm9yQ29kZSkgZmluYWw7Ci0KLSAgICB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRp
b1RyYWNrKikgZmluYWw7Ci0KLSAgICB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlk
ZW9UcmFjayopIGZpbmFsOwotCi0gICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJh
Y2sqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayopIGZp
bmFsOwotICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJh
Y2tDdWVMaXN0KikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFj
ayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0Fk
ZEN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFj
a1JlbW92ZUN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHNv
dXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IElu
aXRpYWxpemF0aW9uU2VnbWVudCYpIGZpbmFsOworICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmKSBmaW5hbDsKKyAgICBib29sIHNvdXJjZUJ1
ZmZlclByaXZhdGVIYXNBdWRpbygpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgc291cmNlQnVmZmVy
UHJpdmF0ZUhhc1ZpZGVvKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2
YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNr
SUQpIGZpbmFsOworICAgIE1lZGlhVGltZSBzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1l
Rm9yTWVkaWFUaW1lKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYgbmVnYXRpdmVU
aHJlc2hvbGQsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpdmVUaHJlc2hvbGQpIGZpbmFsOworICAg
IHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKEFwcGVuZFJlc3VsdCkgZmlu
YWw7CisgICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmluZ0Vycm9y
KGludCBlcnJvckNvZGUpIGZpbmFsOworCisgICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5n
ZWQoQXVkaW9UcmFjayYpIGZpbmFsOworICAgIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdl
ZChWaWRlb1RyYWNrJikgZmluYWw7CisKKyAgICB2b2lkIHRleHRUcmFja0tpbmRDaGFuZ2VkKFRl
eHRUcmFjayYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNr
JikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRl
eHRUcmFja0N1ZUxpc3QmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4
dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRy
YWNrQWRkQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYpIGZpbmFsOworICAgIHZvaWQgdGV4
dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYpIGZpbmFsOwogCiAgICAg
RXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBTb3VyY2VCdWZmZXJFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KIApAQCAtMTU3
LDggKzE1Nyw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIHZhbGlkYXRlSW5pdGlhbGl6YXRpb25T
ZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYpOwogCi0gICAgdm9pZCByZWVucXVl
dWVNZWRpYUZvclRpbWUoVHJhY2tCdWZmZXImLCBBdG9taWNTdHJpbmcgdHJhY2tJRCwgY29uc3Qg
TWVkaWFUaW1lJik7Ci0gICAgdm9pZCBwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiwgQXRv
bWljU3RyaW5nIHRyYWNrSUQpOworICAgIHZvaWQgcmVlbnF1ZXVlTWVkaWFGb3JUaW1lKFRyYWNr
QnVmZmVyJiwgY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lELCBjb25zdCBNZWRpYVRpbWUmKTsK
KyAgICB2b2lkIHByb3ZpZGVNZWRpYURhdGEoVHJhY2tCdWZmZXImLCBjb25zdCBBdG9taWNTdHJp
bmcmIHRyYWNrSUQpOwogICAgIHZvaWQgZGlkRHJvcFNhbXBsZSgpOwogICAgIHZvaWQgZXZpY3RD
b2RlZEZyYW1lcyhzaXplX3QgbmV3RGF0YVNpemUpOwogICAgIHNpemVfdCBtYXhpbXVtQnVmZmVy
U2l6ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGJlOTY0NTg5MzdhOTQyMWY1Njg5MDUyMmVlYWNkOTA4NmEwZjk3
YTkuLjA1ODIzNzljY2I1ZGFkMDc0MzE4YTdmMGUwMjkyZDliNGI4NjlhYWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2MTQs
OCArMjYxNCw4IEBACiAJCTZFM0ZBRThFMTQ3MzNGREIwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4
dHVyZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RTNGQUU4QzE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuY3BwICovOyB9Owog
CQk2RTNGQUU4RjE0NzMzRkRCMDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRThE
MTQ3MzNGREIwMEU0MjMwNiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oICovOyB9Owog
CQk2RTNGQUU4RjE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRThEMTQ3MzNGREIw
MEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVyZS5oICovOyB9OwotCQk2RTQ3RTY2MDEwQjc5NDRC
MDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZFNDdFNjVFMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldElu
Zm8uY3BwICovOyB9OwotCQk2RTQ3RTY2MTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZv
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTQ3RTY1
RjEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmggKi87IH07CisJCTZFNDdFNjYwMTBC
Nzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnku
Y3BwICovOyB9OworCQk2RTQ3RTY2MTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNDdFNjVGMTBCNzk0
NEIwMEIxODZDOCAvKiBXZWJHTEFueS5oICovOyB9OwogCQk2RTRBQkNENDEzOEVBMEI3MDA3MUQy
OTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkU0QUJDRDIxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVu
a25vd25FbGVtZW50LmNwcCAqLzsgfTsKIAkJNkU0QUJDRDUxMzhFQTBCNzAwNzFEMjkxIC8qIEpT
SFRNTFVua25vd25FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2RTRBQkNEMzEzOEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1l
bnQuaCAqLzsgfTsKIAkJNkU0RTkxQUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0
dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDZFNEU5MUFBMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk5MTUsOCAr
OTkxNSw4IEBACiAJCTZFM0ZBRThEMTQ3MzNGREIwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVy
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTERlcHRoVGV4dHVyZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTNGQUU5MDE0NzMzRkVBMDBFNDIzMDYg
LyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkUzRkFFOTAxNDczM0ZFQTAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHTERlcHRoVGV4dHVyZS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTZFNDdFNjVFMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldElu
Zm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR0xHZXRJbmZv
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkU0N0U2NUYxMEI3OTQ0QjAwQjE4
NkM4IC8qIFdlYkdMR2V0SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJHTEdldEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkU0N0U2NUUxMEI3
OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkdMQW55LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkU0
N0U2NUYxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkdMQW55Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZF
NEFCQ0QyMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtub3duRWxlbWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxVbmtub3duRWxlbWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFNEFCQ0QzMTM4RUEwQjcwMDcxRDI5MSAv
KiBKU0hUTUxVbmtub3duRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0hUTUxVbmtub3duRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RTRFOTFBQTEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjkyOCw4ICsxNjkyOCw4IEBACiAJCQkJNDlD
N0I5QUUxMDQyRDMyRTAwMDlENDQ3IC8qIFdlYkdMRnJhbWVidWZmZXIuY3BwICovLAogCQkJCTQ5
QzdCOUFGMTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmggKi8sCiAJCQkJNDlD
N0I5QjAxMDQyRDMyRTAwMDlENDQ3IC8qIFdlYkdMRnJhbWVidWZmZXIuaWRsICovLAotCQkJCTZF
NDdFNjVFMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldEluZm8uY3BwICovLAotCQkJCTZFNDdF
NjVGMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldEluZm8uaCAqLywKKwkJCQk2RTQ3RTY1RTEw
Qjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuY3BwICovLAorCQkJCTZFNDdFNjVGMTBCNzk0NEIw
MEIxODZDOCAvKiBXZWJHTEFueS5oICovLAogCQkJCTkzRjFENUI3MTJENTMyQzQwMDgzMkJFQyAv
KiBXZWJHTExvc2VDb250ZXh0LmNwcCAqLywKIAkJCQk5M0YxRDVCODEyRDUzMkM0MDA4MzJCRUMg
LyogV2ViR0xMb3NlQ29udGV4dC5oICovLAogCQkJCTkzRjFENUI5MTJENTMyQzQwMDgzMkJFQyAv
KiBXZWJHTExvc2VDb250ZXh0LmlkbCAqLywKQEAgLTI4MjQzLDcgKzI4MjQzLDcgQEAKIAkJCQk1
QjMwNjk1RTE4QjNEMzQ1MDA5OUQ1RTggLyogV2ViR0xEcmF3QnVmZmVycy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNkVCRjBFNTUxMkE4OTI5ODAwREIxNzA5IC8qIFdlYkdMRXh0ZW5zaW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0OUM3QjlDRjEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1
ZmZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdl
YkdMR2V0SW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4
IC8qIFdlYkdMQW55LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUZGQkYzRjExQzkzRUUzMDA2QTcx
MTggLyogV2ViR0xMYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMUQ1QkIxMkQ1MzJDNDAw
ODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOUQ1
MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTcz
Miw3ICszMTczMiw3IEBACiAJCQkJNUIzMDY5NUQxOEIzRDM0NTAwOTlENUU4IC8qIFdlYkdMRHJh
d0J1ZmZlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkVCRjBFNTQxMkE4OTI5ODAwREIxNzA5
IC8qIFdlYkdMRXh0ZW5zaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUNFMTA0MkQz
MkYwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTZF
NDdFNjYwMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldEluZm8uY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJNkU0N0U2NjAxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQ5RkZCRjQwMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTNGMUQ1QkExMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRl
eHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlDN0I5RDQxMDQyRDMyRjAwMDlENDQ3IC8qIFdl
YkdMT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3Bw
CmluZGV4IGUyMGIyMzg2ODY0ZGFjZGRhZDU2MmZjM2VlYzZhYTMzOTRmZjEwYTUuLmNjNjMzYmU3
ZTRhNDI2ZmY4N2I2MTExOGQzNzM3MThmMmQzMTY3YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1
c3RvbS5jcHAKQEAgLTY1LDkgKzY1LDkgQEAgc3RhdGljIENhbnZhc1N0eWxlIHRvSFRNTENhbnZh
c1N0eWxlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFsdWUpCiAgICAgICAgIHJldHVybiBDYW52YXNT
dHlsZSgpOwogICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7CiAgICAgaWYg
KG9iamVjdC0+aW5oZXJpdHMoSlNDYW52YXNHcmFkaWVudDo6aW5mbygpKSkKLSAgICAgICAgcmV0
dXJuIENhbnZhc1N0eWxlKCZqc0Nhc3Q8SlNDYW52YXNHcmFkaWVudCo+KG9iamVjdCktPndyYXBw
ZWQoKSk7CisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNDYW52YXNHcmFkaWVudCo+KG9iamVjdCkt
PndyYXBwZWQoKTsKICAgICBpZiAob2JqZWN0LT5pbmhlcml0cyhKU0NhbnZhc1BhdHRlcm46Omlu
Zm8oKSkpCi0gICAgICAgIHJldHVybiBDYW52YXNTdHlsZSgmanNDYXN0PEpTQ2FudmFzUGF0dGVy
bio+KG9iamVjdCktPndyYXBwZWQoKSk7CisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNDYW52YXNQ
YXR0ZXJuKj4ob2JqZWN0KS0+d3JhcHBlZCgpOwogICAgIHJldHVybiBDYW52YXNTdHlsZSgpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1l
bnRGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVt
ZW50RnVuY3Rpb25zLmNwcAppbmRleCBmNzhhMTE4NjIxOGM2YTliZDFkNzdiZTg3ODc0M2U5ZWFj
YmFjNzQ0Li4wYWUxYzBhNjJlNjQwZGUzMTBiZWRiYWU4MTU2NjNmMDcyM2MxMzVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0
aW9ucy5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgSW5zdGFuY2UqIHBsdWdpbkluc3RhbmNlKEhUTUxF
bGVtZW50JiBlbGVtZW50KQogICAgIC8vIFRoZSBwbHVnaW4gZWxlbWVudCBob2xkcyBhbiBvd25p
bmcgcmVmZXJlbmNlLCBzbyB3ZSBkb24ndCBoYXZlIHRvLgogICAgIGlmICghaXM8SFRNTFBsdWdJ
bkVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBJbnN0YW5j
ZSogaW5zdGFuY2UgPSBkb3duY2FzdDxIVE1MUGx1Z0luRWxlbWVudD4oZWxlbWVudCkuZ2V0SW5z
dGFuY2UoKS5nZXQoKTsKKyAgICBhdXRvKiBpbnN0YW5jZSA9IGRvd25jYXN0PEhUTUxQbHVnSW5F
bGVtZW50PihlbGVtZW50KS5iaW5kaW5nc0luc3RhbmNlKCk7CiAgICAgaWYgKCFpbnN0YW5jZSB8
fCAhaW5zdGFuY2UtPnJvb3RPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
cmV0dXJuIGluc3RhbmNlOwpAQCAtNzEsMjMgKzcxLDIzIEBAIEpTT2JqZWN0KiBwbHVnaW5TY3Jp
cHRPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0hUTUxFbGVtZW50KiBqc0hUTUxFbGVtZW50KQog
ICAgIGlmICghaXM8SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIEhUTUxQbHVnSW5FbGVtZW50JiBwbHVnaW5FbGVtZW50ID0gZG93bmNh
c3Q8SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpOworICAgIGF1dG8mIHBsdWdpbkVsZW1lbnQg
PSBkb3duY2FzdDxIVE1MUGx1Z0luRWxlbWVudD4oZWxlbWVudCk7CiAKICAgICAvLyBDaG9rZSBw
b2ludCBmb3Igc2NyaXB0L3BsdWdpbiBpbnRlcmFjdGlvbjsgbm90aWZ5IERPTVRpbWVyIG9mIHRo
ZSBldmVudC4KICAgICBET01UaW1lcjo6c2NyaXB0RGlkSW50ZXJhY3RXaXRoUGx1Z2luKHBsdWdp
bkVsZW1lbnQpOwogCiAgICAgLy8gRmlyc3QsIHNlZSBpZiB0aGUgZWxlbWVudCBoYXMgYSBwbHVn
LWluIHJlcGxhY2VtZW50IHdpdGggYSBzY3JpcHQuCi0gICAgaWYgKEpTT2JqZWN0KiBzY3JpcHRP
YmplY3QgPSBwbHVnaW5FbGVtZW50LnNjcmlwdE9iamVjdEZvclBsdWdpblJlcGxhY2VtZW50KCkp
CisgICAgaWYgKGF1dG8qIHNjcmlwdE9iamVjdCA9IHBsdWdpbkVsZW1lbnQuc2NyaXB0T2JqZWN0
Rm9yUGx1Z2luUmVwbGFjZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIHNjcmlwdE9iamVjdDsKICAg
ICAKICAgICAvLyBOZXh0LCBzZWUgaWYgd2UgY2FuIGFzayB0aGUgcGx1Zy1pbiB2aWV3IGZvciBp
dHMgc2NyaXB0IG9iamVjdC4KLSAgICBpZiAoSlNPYmplY3QqIHNjcmlwdE9iamVjdCA9IHBsdWdp
blNjcmlwdE9iamVjdEZyb21QbHVnaW5WaWV3QmFzZShwbHVnaW5FbGVtZW50LCBqc0hUTUxFbGVt
ZW50LT5nbG9iYWxPYmplY3QoKSkpCisgICAgaWYgKGF1dG8qIHNjcmlwdE9iamVjdCA9IHBsdWdp
blNjcmlwdE9iamVjdEZyb21QbHVnaW5WaWV3QmFzZShwbHVnaW5FbGVtZW50LCBqc0hUTUxFbGVt
ZW50LT5nbG9iYWxPYmplY3QoKSkpCiAgICAgICAgIHJldHVybiBzY3JpcHRPYmplY3Q7CiAKICAg
ICAvLyBPdGhlcndpc2UsIGZhbGwgYmFjayB0byBnZXR0aW5nIHRoZSBvYmplY3QgZnJvbSB0aGUg
aW5zdGFuY2UuCiAKICAgICAvLyBUaGUgcGx1Z2luIGVsZW1lbnQgaG9sZHMgYW4gb3duaW5nIHJl
ZmVyZW5jZSwgc28gd2UgZG9uJ3QgaGF2ZSB0by4KLSAgICBJbnN0YW5jZSogaW5zdGFuY2UgPSBw
bHVnaW5FbGVtZW50LmdldEluc3RhbmNlKCkuZ2V0KCk7CisgICAgYXV0byogaW5zdGFuY2UgPSBw
bHVnaW5FbGVtZW50LmJpbmRpbmdzSW5zdGFuY2UoKTsKICAgICBpZiAoIWluc3RhbmNlIHx8ICFp
bnN0YW5jZS0+cm9vdE9iamVjdCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5n
Q29udGV4dEN1c3RvbS5jcHAKaW5kZXggNzg4YWQyNDQ0NjkyMGQwZmEyZWFlZWI3NDhkNjQ5YmJl
MzY4YzQ3MS4uNWRmMjU4ZmVhNzVkMzEzY2MzZDEyMWI4NGNlNWI2MmE1MWMyM2U5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0zNiwzNyArMzYsNiBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEZJWE1FOiBUaGVyZSBpcyBhIGR1cGxp
Y2F0ZSB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24gaW4gSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlQ3VzdG9tLmNwcCwKLS8vIGJ1dCBpdCBpcyBub3QgZXhhY3RseSB0aGUgc2FtZSEgV2Ugc2hv
dWxkIG1lcmdlIHRoZXNlLgotc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBXZWJHTEdldEluZm8mIGluZm8p
Ci17Ci0gICAgc3dpdGNoIChpbmZvLmdldFR5cGUoKSkgewotICAgIGNhc2UgV2ViR0xHZXRJbmZv
OjprVHlwZUJvb2w6Ci0gICAgICAgIHJldHVybiBqc0Jvb2xlYW4oaW5mby5nZXRCb29sKCkpOwot
ICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZUJvb2xBcnJheTogewotICAgICAgICBNYXJrZWRB
cmd1bWVudEJ1ZmZlciBsaXN0OwotICAgICAgICBmb3IgKGF1dG8mIHZhbHVlIDogaW5mby5nZXRC
b29sQXJyYXkoKSkKLSAgICAgICAgICAgIGxpc3QuYXBwZW5kKGpzQm9vbGVhbih2YWx1ZSkpOwot
ICAgICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoc3RhdGUsIDAsIGdsb2JhbE9iamVjdCwgbGlz
dCk7Ci0gICAgfQotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZUZsb2F0OgotICAgICAgICBy
ZXR1cm4ganNOdW1iZXIoaW5mby5nZXRGbG9hdCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6
a1R5cGVJbnQ6Ci0gICAgICAgIHJldHVybiBqc051bWJlcihpbmZvLmdldEludCgpKTsKLSAgICBj
YXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVOdWxsOgotICAgICAgICByZXR1cm4ganNOdWxsKCk7Ci0g
ICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlU3RyaW5nOgotICAgICAgICByZXR1cm4ganNTdHJp
bmdXaXRoQ2FjaGUoc3RhdGUsIGluZm8uZ2V0U3RyaW5nKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJ
bmZvOjprVHlwZVVuc2lnbmVkSW50OgotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRV
bnNpZ25lZEludCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVJbnQ2NDoKLSAgICAg
ICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0SW50NjQoKSk7Ci0gICAgZGVmYXVsdDoKLSAgICAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAg
fQotfQotCiB2b2lkIEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRBZGRpdGlvbmFsQ2hp
bGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290
KCZ3cmFwcGVkKCkpOwpAQCAtMTA0LDcgKzczLDcgQEAgSlNWYWx1ZSBKU1dlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmdldEluZGV4ZWRQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwogICAgIHVuc2lnbmVkIGluZGV4ID0g
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBn
bG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldEluZGV4ZWRQYXJhbWV0ZXIocG5hbWUsIGluZGV4
KSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdl
dEluZGV4ZWRQYXJhbWV0ZXIocG5hbWUsIGluZGV4KSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIoRXhlY1N0YXRl
JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2VDdXN0b20uY3BwCmluZGV4IDgyNWQyNTA5NGQyY2M2MjIw
NmIwNDk5NmMxMGQ1MzFlNTQyOTgwOTEuLjJhMGFmMmVkOWJiZjYzYWQ4ZDgwZmI4NDY4ODdkMWIz
NWNjZmQxZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9tLmNwcApAQCAtMjksMTUgKzI5
LDEyIEBACiAKICNpbmNsdWRlICJKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKIAotI2lu
Y2x1ZGUgIkFOR0xFSW5zdGFuY2VkQXJyYXlzLmgiCiAjaW5jbHVkZSAiRVhUQmxlbmRNaW5NYXgu
aCIKICNpbmNsdWRlICJFWFRGcmFnRGVwdGguaCIKICNpbmNsdWRlICJFWFRTaGFkZXJUZXh0dXJl
TE9ELmgiCiAjaW5jbHVkZSAiRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVk
ZSAiRVhUc1JHQi5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJIVE1M
Q2FudmFzRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJKU0FOR0xFSW5zdGFuY2VkQXJyYXlzLmgiCiAjaW5jbHVkZSAiSlNFWFRCbGVuZE1pbk1heC5o
IgogI2luY2x1ZGUgIkpTRVhURnJhZ0RlcHRoLmgiCkBAIC03Myw3ICs3MCw2IEBACiAjaW5jbHVk
ZSAiSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNXZWJHTFZlcnRleEFy
cmF5T2JqZWN0T0VTLmgiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NNYXRyaXguaCIKLSNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk9FU0VsZW1lbnRJbmRleFVpbnQuaCIKICNp
bmNsdWRlICJPRVNTdGFuZGFyZERlcml2YXRpdmVzLmgiCiAjaW5jbHVkZSAiT0VTVGV4dHVyZUZs
b2F0LmgiCkBAIC05MSw3ICs4Nyw2IEBACiAjaW5jbHVkZSAiV2ViR0xEcmF3QnVmZmVycy5oIgog
I2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5o
IgotI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgogI2luY2x1ZGUgIldlYkdMTG9zZUNvbnRleHQu
aCIKICNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmgiCkBAIC0xMDUsNyArMTAwLDYgQEAKICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxv
Yy5oPgogCiAjaWYgRU5BQkxFKFZJREVPKQotI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIK
ICNpbmNsdWRlICJKU0hUTUxWaWRlb0VsZW1lbnQuaCIKICNlbmRpZgogCkBAIC0xMTcsNyArMTEx
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU0M6
OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiYmIG9iamVj
dCkKK0pTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBSZWY8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4mJiBvYmplY3Qp
CiB7CiAjaWYgRU5BQkxFKFdFQkdMMikKICAgICBpZiAoaXM8V2ViR0wyUmVuZGVyaW5nQ29udGV4
dD4ob2JqZWN0KSkKQEAgLTEzMSw2NCArMTI1LDcgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSog
c3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdlYkdMUmVuZGVyaW5nQ28K
ICAgICByZXR1cm4gd3JhcChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBvYmplY3QpOwogfQogICAgIAot
Ly8gRklYTUU6IFRoZXJlIGlzIGEgZHVwbGljYXRlIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiBp
biBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwLAotLy8gYnV0IGl0IGlzIG5vdCBl
eGFjdGx5IHRoZSBzYW1lISBXZSBzaG91bGQgbWVyZ2UgdGhlc2UuCi1zdGF0aWMgSlNWYWx1ZSB0
b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29u
c3QgV2ViR0xHZXRJbmZvJiBpbmZvKQotewotICAgIHN3aXRjaCAoaW5mby5nZXRUeXBlKCkpIHsK
LSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVCb29sOgotICAgICAgICByZXR1cm4ganNCb29s
ZWFuKGluZm8uZ2V0Qm9vbCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVCb29sQXJy
YXk6IHsKLSAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgbGlzdDsKLSAgICAgICAgZm9yIChh
dXRvJiB2YWx1ZSA6IGluZm8uZ2V0Qm9vbEFycmF5KCkpCi0gICAgICAgICAgICBsaXN0LmFwcGVu
ZChqc0Jvb2xlYW4odmFsdWUpKTsKLSAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5KGV4ZWMs
IDAsIGdsb2JhbE9iamVjdCwgbGlzdCk7Ci0gICAgfQotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjpr
VHlwZUZsb2F0OgotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRGbG9hdCgpKTsKLSAg
ICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVJbnQ6Ci0gICAgICAgIHJldHVybiBqc051bWJlcihp
bmZvLmdldEludCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVOdWxsOgotICAgICAg
ICByZXR1cm4ganNOdWxsKCk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlU3RyaW5nOgot
ICAgICAgICByZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoZXhlYywgaW5mby5nZXRTdHJpbmcoKSk7
Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlVW5zaWduZWRJbnQ6Ci0gICAgICAgIHJldHVy
biBqc051bWJlcihpbmZvLmdldFVuc2lnbmVkSW50KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZv
OjprVHlwZVdlYkdMQnVmZmVyOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmpl
Y3QsIGluZm8uZ2V0V2ViR0xCdWZmZXIoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBl
V2ViR0xGbG9hdEFycmF5OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3Qs
IGluZm8uZ2V0V2ViR0xGbG9hdEFycmF5KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlw
ZVdlYkdMRnJhbWVidWZmZXI6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgaW5mby5nZXRXZWJHTEZyYW1lYnVmZmVyKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjpr
VHlwZVdlYkdMSW50QXJyYXk6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgaW5mby5nZXRXZWJHTEludEFycmF5KCkpOwotICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50
IFdlYkdMT2JqZWN0QXJyYXkKLSAgICAgICAgLy8gY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2Vi
R0xPYmplY3RBcnJheToKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFByb2dyYW06
Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTFBy
b2dyYW0oKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xSZW5kZXJidWZmZXI6
Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTFJl
bmRlcmJ1ZmZlcigpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFRleHR1cmU6
Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTFRl
eHR1cmUoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xVbnNpZ25lZEJ5dGVB
cnJheToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdl
YkdMVW5zaWduZWRCeXRlQXJyYXkoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2Vi
R0xVbnNpZ25lZEludEFycmF5OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmpl
Y3QsIGluZm8uZ2V0V2ViR0xVbnNpZ25lZEludEFycmF5KCkpOwotI2lmIEVOQUJMRShXRUJHTDIp
Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDoKLSAg
ICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMVmVydGV4
QXJyYXlPYmplY3QoKSk7Ci0jZW5kaWYKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsIGluZm8uZ2V0V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygpKTsKLSAgICBkZWZhdWx0
OgotICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKLSAgICB9Ci19Ci0KLWVudW0gT2JqZWN0VHlwZSB7IGtCdWZmZXIsIGtSZW5kZXJidWZmZXIs
IGtUZXh0dXJlLCBrVmVydGV4QXR0cmliIH07Ci0KLXN0YXRpYyBKU1ZhbHVlIGdldE9iamVjdFBh
cmFtZXRlcihKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIG9iaiwgRXhlY1N0YXRlJiBzdGF0
ZSwgT2JqZWN0VHlwZSBvYmplY3RUeXBlKQorc3RhdGljIEpTVmFsdWUgb2JqZWN0UGFyYW1ldGVy
KEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwgRXhlY1N0YXRlJiBzdGF0ZSwg
V2ViR0xBbnkgKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OipnZXR0ZXIpKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGVudW0gcG5hbWUpKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk2LDkwICsxMzMsNjYg
QEAgc3RhdGljIEpTVmFsdWUgZ2V0T2JqZWN0UGFyYW1ldGVyKEpTV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSogb2JqLCBFeGVjU3RhdGUmIHMKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgp
ICE9IDIpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlJiBjb250ZXh0ID0gb2JqLT53cmFwcGVkKCk7Ci0gICAgdW5zaWduZWQg
dGFyZ2V0ID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkudG9JbnQzMigmc3RhdGUpOwotICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgdW5zaWduZWQgcG5h
bWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICBXZWJHTEdldEluZm8gaW5m
bzsKLSAgICBzd2l0Y2ggKG9iamVjdFR5cGUpIHsKLSAgICBjYXNlIGtCdWZmZXI6Ci0gICAgICAg
IGluZm8gPSBjb250ZXh0LmdldEJ1ZmZlclBhcmFtZXRlcih0YXJnZXQsIHBuYW1lKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBrUmVuZGVyYnVmZmVyOgotICAgICAgICBpbmZvID0gY29udGV4
dC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIodGFyZ2V0LCBwbmFtZSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2Uga1RleHR1cmU6Ci0gICAgICAgIGluZm8gPSBjb250ZXh0LmdldFRleFBhcmFt
ZXRlcih0YXJnZXQsIHBuYW1lKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBrVmVydGV4QXR0
cmliOgotICAgICAgICAvLyB0YXJnZXQgPT4gaW5kZXgKLSAgICAgICAgaW5mbyA9IGNvbnRleHQu
Z2V0VmVydGV4QXR0cmliKHRhcmdldCwgcG5hbWUpOwotICAgICAgICBicmVhazsKLSAgICBkZWZh
dWx0OgotICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0g
ICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBvYmotPmdsb2JhbE9iamVjdCgpLCBpbmZvKTsKKyAgICBh
dXRvIHRhcmdldCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsK
KyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIGF1dG8gcG5hbWUgPSBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmNvbnRleHQu
Z2xvYmFsT2JqZWN0KCksIChjb250ZXh0LndyYXBwZWQoKS4qZ2V0dGVyKSh0YXJnZXQsIHBuYW1l
KSk7CiB9CiAKLWVudW0gV2hpY2hQcm9ncmFtQ2FsbCB7Ci0gICAga1Byb2dyYW1QYXJhbWV0ZXIs
IGtVbmlmb3JtCi19OwotCi1zdGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgV2ViR0xFeHRlbnNpb24qIGV4dGVuc2lvbikK
K3N0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3Qm
IGdsb2JhbE9iamVjdCwgV2ViR0xFeHRlbnNpb24qIGV4dGVuc2lvbikKIHsKICAgICBpZiAoIWV4
dGVuc2lvbikKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAgIHN3aXRjaCAoZXh0ZW5zaW9u
LT5nZXROYW1lKCkpIHsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTExvc2VDb250ZXh0
TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxXZWJHTExvc2VDb250ZXh0Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZz
dGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xMb3NlQ29udGV4dCo+KGV4dGVu
c2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVFNoYWRlclRleHR1cmVMT0ROYW1l
OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVY
VFNoYWRlclRleHR1cmVMT0QqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRTaGFkZXJUZXh0dXJlTE9EKj4oZXh0
ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6RVhUVGV4dHVyZUZpbHRlckFuaXNv
dHJvcGljTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMqPihleHRlbnNpb24pKTsKKyAgICAg
ICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRUZXh0
dXJlRmlsdGVyQW5pc290cm9waWMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5z
aW9uOjpFWFRzUkdCTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
LCBzdGF0aWNfY2FzdDxFWFRzUkdCKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pT
KCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUc1JHQio+KGV4dGVuc2lvbikp
OwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVEZyYWdEZXB0aE5hbWU6Ci0gICAgICAgIHJl
dHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhURnJhZ0RlcHRoKj4o
ZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwg
c3RhdGljX2Nhc3Q8RVhURnJhZ0RlcHRoKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4
dGVuc2lvbjo6RVhUQmxlbmRNaW5NYXhOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVEJsZW5kTWluTWF4Kj4oZXh0ZW5zaW9uKSk7Cisg
ICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhU
QmxlbmRNaW5NYXgqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNT
dGFuZGFyZERlcml2YXRpdmVzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNTdGFuZGFyZERlcml2YXRpdmVzKj4oZXh0ZW5zaW9uKSk7
CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8
T0VTU3RhbmRhcmREZXJpdmF0aXZlcyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246Ok9FU1RleHR1cmVGbG9hdE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0Kj4oZXh0ZW5zaW9uKSk7Cisg
ICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VT
VGV4dHVyZUZsb2F0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VT
VGV4dHVyZUZsb2F0TGluZWFyTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlRmxvYXRMaW5lYXIqPihleHRlbnNpb24pKTsK
KyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxP
RVNUZXh0dXJlRmxvYXRMaW5lYXIqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5z
aW9uOjpPRVNUZXh0dXJlSGFsZkZsb2F0TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlSGFsZkZsb2F0Kj4oZXh0ZW5zaW9u
KSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8T0VTVGV4dHVyZUhhbGZGbG9hdCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246Ok9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXJOYW1lOgotICAgICAgICByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVIYWxmRmxvYXRMaW5l
YXIqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyKj4oZXh0ZW5zaW9uKSk7
CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTVmVydGV4QXJyYXlPYmplY3ROYW1lOgotICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1ZlcnRl
eEFycmF5T2JqZWN0Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwg
Jmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVmVydGV4QXJyYXlPYmplY3QqPihleHRlbnNp
b24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNFbGVtZW50SW5kZXhVaW50TmFtZToK
LSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNF
bGVtZW50SW5kZXhVaW50Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0
ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTRWxlbWVudEluZGV4VWludCo+KGV4dGVu
c2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVidWdSZW5kZXJlckluZm9O
YW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PFdlYkdMRGVidWdSZW5kZXJlckluZm8qPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRv
SlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlYnVnUmVuZGVyZXJJ
bmZvKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1No
YWRlcnNOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PFdlYkdMRGVidWdTaGFkZXJzKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0
b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1NoYWRlcnMq
PihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTENvbXByZXNzZWRU
ZXh0dXJlQVRDTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDKj4oZXh0ZW5zaW9uKSk7CisgICAg
ICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xD
b21wcmVzc2VkVGV4dHVyZUFUQyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNp
b246OldlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQ05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBW
UlRDKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9i
amVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKj4oZXh0ZW5zaW9u
KSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVENO
YW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVMzVEMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJH
TERlcHRoVGV4dHVyZU5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgc3RhdGljX2Nhc3Q8V2ViR0xEZXB0aFRleHR1cmUqPihleHRlbnNpb24pKTsKKyAgICAgICAg
cmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlcHRo
VGV4dHVyZSo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRHJh
d0J1ZmZlcnNOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0
YXRpY19jYXN0PFdlYkdMRHJhd0J1ZmZlcnMqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJu
IHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERyYXdCdWZmZXJz
Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6QU5HTEVJbnN0YW5jZWRB
cnJheXNOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PEFOR0xFSW5zdGFuY2VkQXJyYXlzKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8QU5HTEVJbnN0YW5jZWRB
cnJheXMqPihleHRlbnNpb24pKTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgcmV0dXJuIGpzTnVsbCgpOwogfQogCi1ib29sIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQorYm9vbCBKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSGFuZGxl
PFVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSoganNXZWJHTFJlbmRlcmluZ0NvbnRleHQgPSBqc0Nh
c3Q8SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkp
OwogICAgIHZvaWQqIHJvb3QgPSBXZWJDb3JlOjpyb290KGpzV2ViR0xSZW5kZXJpbmdDb250ZXh0
LT53cmFwcGVkKCkuY2FudmFzKCkpOwpAQCAtMzA2LDkgKzIxOSw5IEBAIEpTVmFsdWUgSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBdHRhY2hlZFNoYWRlcnMoRXhlY1N0YXRlJiBzdGF0
ZSkKICAgICBWZWN0b3I8UmVmUHRyPFdlYkdMU2hhZGVyPj4gc2hhZGVyczsKICAgICBpZiAoIWNv
bnRleHQuZ2V0QXR0YWNoZWRTaGFkZXJzKHByb2dyYW0sIHNoYWRlcnMpKQogICAgICAgICByZXR1
cm4ganNOdWxsKCk7Ci0gICAgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciBsaXN0OwotICAgIGZv
ciAoc2l6ZV90IGlpID0gMDsgaWkgPCBzaGFkZXJzLnNpemUoKTsgKytpaSkKLSAgICAgICAgbGlz
dC5hcHBlbmQodG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBzaGFkZXJzW2lpXS5nZXQoKSkp
OworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGxpc3Q7CisgICAgZm9yIChhdXRvJiBzaGFkZXIg
OiBzaGFkZXJzKQorICAgICAgICBsaXN0LmFwcGVuZCh0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0
KCksIHNoYWRlci5nZXQoKSkpOwogICAgIHJldHVybiBjb25zdHJ1Y3RBcnJheSgmc3RhdGUsIDAs
IGdsb2JhbE9iamVjdCgpLCBsaXN0KTsKIH0KIApAQCAtMzIwLDE0ICsyMzMsMTQgQEAgSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEV4dGVuc2lvbihFeGVjU3RhdGUmIHN0
YXRlKQogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4g
dGhyb3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3IoJnN0YXRlKSk7CiAgICAgCi0gICAgU3RyaW5nIG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgwKS50b1dURlN0cmluZygmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIEpTVmFsdWUoKSk7Ci0gICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwg
d3JhcHBlZCgpLmdldEV4dGVuc2lvbihuYW1lKSk7CisgICAgYXV0byBuYW1lID0gc3RhdGUudW5j
aGVja2VkQXJndW1lbnQoMCkudG9XVEZTdHJpbmcoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOworICAgIHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFsT2JqZWN0
KCksIHdyYXBwZWQoKS5nZXRFeHRlbnNpb24obmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVyUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUp
CiB7Ci0gICAgcmV0dXJuIGdldE9iamVjdFBhcmFtZXRlcih0aGlzLCBzdGF0ZSwga0J1ZmZlcik7
CisgICAgcmV0dXJuIG9iamVjdFBhcmFtZXRlcigqdGhpcywgc3RhdGUsICZXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRCdWZmZXJQYXJhbWV0ZXIpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEV4
ZWNTdGF0ZSYgc3RhdGUpCkBAIC0zMzgsMTMgKzI1MSwxMyBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEV4ZWNT
dGF0ZQogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgIT0gMykKICAgICAgICAgcmV0dXJu
IHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKCZzdGF0ZSkpOwogICAgIAotICAgIHVuc2lnbmVkIHRhcmdldCA9IHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBKU1ZhbHVlKCkpOwotICAgIHVuc2lnbmVkIGF0dGFjaG1lbnQgPSBzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgSlNWYWx1ZSgpKTsKLSAgICB1bnNpZ25lZCBwbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDIpLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHdy
YXBwZWQoKS5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIodGFyZ2V0LCBhdHRhY2ht
ZW50LCBwbmFtZSkpOworICAgIGF1dG8gdGFyZ2V0ID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MCkudG9JbnQzMigmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
CisgICAgYXV0byBhdHRhY2htZW50ID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQz
Migmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgYXV0
byBwbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpLnRvSW50MzIoJnN0YXRlKTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIHJldHVybiB0b0pTKHN0YXRl
LCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJh
bWV0ZXIodGFyZ2V0LCBhdHRhY2htZW50LCBwbmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC0z
NTUsOSArMjY4LDkgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFBh
cmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkg
IT0gMSkKICAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0
ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwogICAgIAotICAgIHVuc2lnbmVkIHBu
YW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkudG9JbnQzMigmc3RhdGUpOwotICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFBhcmFtZXRlcihwbmFtZSkpOworICAg
IGF1dG8gcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhz
dGF0ZSwgKmdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0UGFyYW1ldGVyKHBuYW1lKSk7CiB9
CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRQcm9ncmFtUGFyYW1l
dGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC0zNjgsMTcgKzI4MSwxNyBAQCBKU1ZhbHVlIEpTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJvZ3JhbVBhcmFtZXRlcihFeGVjU3RhdGUmIHN0
YXRlKQogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgIT0gMikKICAgICAgICAgcmV0dXJu
IHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKCZzdGF0ZSkpOwogICAgIAotICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IEpTV2ViR0xQ
cm9ncmFtOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIGF1dG8q
IHByb2dyYW0gPSBKU1dlYkdMUHJvZ3JhbTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDApKTsKICAgICBpZiAoIXByb2dyYW0gJiYgIXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDAp
LmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3Rh
dGUsIHNjb3BlKTsKLSAgICB1bnNpZ25lZCBwbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDEpLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1Zh
bHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQo
KS5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIHBuYW1lKSk7CisgICAgYXV0byBwbmFtZSA9
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFs
T2JqZWN0KCksIHdyYXBwZWQoKS5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIHBuYW1lKSk7
CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZm
ZXJQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4gZ2V0T2JqZWN0UGFy
YW1ldGVyKHRoaXMsIHN0YXRlLCBrUmVuZGVyYnVmZmVyKTsKKyAgICByZXR1cm4gb2JqZWN0UGFy
YW1ldGVyKCp0aGlzLCBzdGF0ZSwgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRl
cmJ1ZmZlclBhcmFtZXRlcik7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRTaGFkZXJQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKQEAgLTM5Myw4ICszMDYs
OCBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0U2hhZGVyUGFyYW1l
dGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3Rh
dGUsIHNjb3BlKTsKICAgICBXZWJHTFNoYWRlciogc2hhZGVyID0gSlNXZWJHTFNoYWRlcjo6dG9X
cmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICB1bnNpZ25lZCBwbmFtZSA9
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwg
Z2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRTaGFkZXJQYXJhbWV0ZXIoc2hhZGVyLCBwbmFt
ZSkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0dXJuIHRv
SlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFNoYWRlclBhcmFtZXRlcihz
aGFkZXIsIHBuYW1lKSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC00MTAsNyArMzIz
LDcgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFN1cHBvcnRlZEV4
dGVuc2lvbnMoRXhlY1N0YXRlJiBzdGF0ZSkKIAogSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmdldFRleFBhcmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJldHVy
biBnZXRPYmplY3RQYXJhbWV0ZXIodGhpcywgc3RhdGUsIGtUZXh0dXJlKTsKKyAgICByZXR1cm4g
b2JqZWN0UGFyYW1ldGVyKCp0aGlzLCBzdGF0ZSwgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldFRleFBhcmFtZXRlcik7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRVbmlmb3JtKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC00MjcsMzYgKzM0MCwzNSBAQCBK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybShFeGVjU3RhdGUm
IHN0YXRlKQogICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IEpTV2ViR0xVbmlm
b3JtTG9jYXRpb246OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAg
aWYgKCFsb2NhdGlvbiAmJiAhc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkuaXNVbmRlZmluZWRP
ck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwot
ICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRVbmlm
b3JtKHByb2dyYW0sIGxvY2F0aW9uKSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxP
YmplY3QoKSwgd3JhcHBlZCgpLmdldFVuaWZvcm0ocHJvZ3JhbSwgbG9jYXRpb24pKTsKIH0KIAog
SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0dHJpYihFeGVj
U3RhdGUmIHN0YXRlKQogewotICAgIHJldHVybiBnZXRPYmplY3RQYXJhbWV0ZXIodGhpcywgc3Rh
dGUsIGtWZXJ0ZXhBdHRyaWIpOworICAgIHJldHVybiBvYmplY3RQYXJhbWV0ZXIoKnRoaXMsIHN0
YXRlLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VmVydGV4QXR0cmliKTsKIH0KIAot
dGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5PgotYm9vbCB0b1ZlY3Rv
cihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgVmVjdG9yPFQsIGlu
bGluZUNhcGFjaXR5PiYgdmVjdG9yKQordGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4gYm9v
bCB0b051bWJlclZlY3RvcihFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlLCBWZWN0b3JU
eXBlJiB2ZWN0b3IpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBKU0M6OkpTT2JqZWN0KiBvYmplY3Qg
PSBhc09iamVjdCh2YWx1ZSk7Ci0gICAgaW50MzJfdCBsZW5ndGggPSBvYmplY3QtPmdldCgmc3Rh
dGUsIHN0YXRlLnZtKCkucHJvcGVydHlOYW1lcy0+bGVuZ3RoKS50b0ludDMyKCZzdGF0ZSk7Ci0g
ICAgCisKKyAgICBhdXRvJiBvYmplY3QgPSAqYXNPYmplY3QodmFsdWUpOworICAgIGludDMyX3Qg
bGVuZ3RoID0gb2JqZWN0LmdldCgmc3RhdGUsIHN0YXRlLnZtKCkucHJvcGVydHlOYW1lcy0+bGVu
Z3RoKS50b0ludDMyKCZzdGF0ZSk7CisKICAgICBpZiAoIXZlY3Rvci50cnlSZXNlcnZlQ2FwYWNp
dHkobGVuZ3RoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHZlY3Rvci5yZXNpemUobGVu
Z3RoKTsKLSAgICAKKwogICAgIGZvciAoaW50MzJfdCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7
Ci0gICAgICAgIEpTQzo6SlNWYWx1ZSB2ID0gb2JqZWN0LT5nZXQoJnN0YXRlLCBpKTsKKyAgICAg
ICAgYXV0byB2YWx1ZSA9IG9iamVjdC5nZXQoJnN0YXRlLCBpKTsKKyAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOworICAgICAgICB2ZWN0b3IudW5jaGVja2VkQXBwZW5k
KHZhbHVlLnRvTnVtYmVyKCZzdGF0ZSkpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBmYWxzZSk7Ci0gICAgICAgIHZlY3RvcltpXSA9IHN0YXRpY19jYXN0PFQ+KHYudG9OdW1i
ZXIoJnN0YXRlKSk7CiAgICAgfQotICAgIAorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTQ2
OSw3ICszODEsNyBAQCBlbnVtIERhdGFGdW5jdGlvbk1hdHJpeFRvQ2FsbCB7CiAgICAgZl91bmlm
b3JtTWF0cml4MmZ2LCBmX3VuaWZvcm1NYXRyaXgzZnYsIGZfdW5pZm9ybU1hdHJpeDRmdgogfTsK
IAotc3RhdGljIGJvb2wgZnVuY3Rpb25Gb3JVbmlmb3JtKERhdGFGdW5jdGlvblRvQ2FsbCBmKQor
c3RhdGljIGlubGluZSBib29sIGZ1bmN0aW9uRm9yVW5pZm9ybShEYXRhRnVuY3Rpb25Ub0NhbGwg
ZikKIHsKICAgICBzd2l0Y2ggKGYpIHsKICAgICBjYXNlIGZfdW5pZm9ybTF2OgpAQCAtNDc3LDEy
ICszODksMTIgQEAgc3RhdGljIGJvb2wgZnVuY3Rpb25Gb3JVbmlmb3JtKERhdGFGdW5jdGlvblRv
Q2FsbCBmKQogICAgIGNhc2UgZl91bmlmb3JtM3Y6CiAgICAgY2FzZSBmX3VuaWZvcm00djoKICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgZGVmYXVsdDogYnJlYWs7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRp
YyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uZihEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpF
eGVjU3RhdGUmIHN0YXRlLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQorc3Rh
dGljIEpTVmFsdWUgZGF0YUZ1bmN0aW9uZihEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgRXhlY1N0YXRl
JiBzdGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCkKIHsKICAgICBWTSYg
dm0gPSBzdGF0ZS52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTQ5MCwyMiArNDAyLDE5IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9u
ZihEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBXCiAgICAgaWYg
KHN0YXRlLmFyZ3VtZW50Q291bnQoKSAhPSAyKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRp
b24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7
CiAgICAgCi0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gMDsKLSAgICBsb25n
IGluZGV4ID0gLTE7Ci0gICAgCisgICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0g
bnVsbHB0cjsKKyAgICBHTHVpbnQgaW5kZXggPSAtMTsKKwogICAgIGlmIChmdW5jdGlvbkZvclVu
aWZvcm0oZikpIHsKICAgICAgICAgbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0
b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgICAgICBpZiAoIWxvY2F0
aW9uICYmICFzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQog
ICAgICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgIH0g
ZWxzZQorICAgIH0gZWxzZSB7CiAgICAgICAgIGluZGV4ID0gc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMCkudG9JbnQzMigmc3RhdGUpOwotICAgIAotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIEpTVmFsdWUoKSk7Ci0gICAgCi0gICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gd2ViR0xBcnJh
eSA9IHRvVW5zaGFyZWRGbG9hdDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpOwot
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgCi0gICAgaWYg
KHdlYkdMQXJyYXkpIHsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsK
KyAgICB9CisKKyAgICBpZiAoYXV0byB3ZWJHTEFycmF5ID0gdG9VbnNoYXJlZEZsb2F0MzJBcnJh
eShzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSkpIHsKICAgICAgICAgc3dpdGNoIChmKSB7CiAg
ICAgICAgIGNhc2UgZl91bmlmb3JtMXY6CiAgICAgICAgICAgICBjb250ZXh0LnVuaWZvcm0xZnYo
bG9jYXRpb24sICp3ZWJHTEFycmF5KTsKQEAgLTUzMiwxNCArNDQxLDEzIEBAIHN0YXRpYyBKU0M6
OkpTVmFsdWUgZGF0YUZ1bmN0aW9uZihEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3Rh
dGUmIHN0YXRlLCBXCiAgICAgICAgICAgICBjb250ZXh0LnZlcnRleEF0dHJpYjRmdihpbmRleCwg
KndlYkdMQXJyYXkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgCiAg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KLSAgICAKKwogICAgIFZlY3Rvcjxm
bG9hdCwgNjQ+IGFycmF5OwotICAgIGlmICghdG9WZWN0b3Ioc3RhdGUsIHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDEpLCBhcnJheSkpCisgICAgaWYgKCF0b051bWJlclZlY3RvcihzdGF0ZSwgc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMSksIGFycmF5KSkKICAgICAgICAgcmV0dXJuIHRocm93VHlw
ZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgIAorCiAgICAgc3dpdGNoIChmKSB7CiAgICAgY2Fz
ZSBmX3VuaWZvcm0xdjoKICAgICAgICAgY29udGV4dC51bmlmb3JtMWZ2KGxvY2F0aW9uLCBhcnJh
eS5kYXRhKCksIGFycmF5LnNpemUoKSk7CkBAIC01NjYsMjUgKzQ3NCwyMiBAQCBzdGF0aWMgSlND
OjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSwgVwogICAgICAgICBjb250ZXh0LnZlcnRleEF0dHJpYjRmdihpbmRleCwgYXJy
YXkuZGF0YSgpLCBhcnJheS5zaXplKCkpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgCiAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1
bmN0aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQorc3RhdGljIEpTVmFsdWUgZGF0YUZ1bmN0
aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgRXhlY1N0YXRlJiBzdGF0ZSwgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYgY29udGV4dCkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGlmIChzdGF0ZS5h
cmd1bWVudENvdW50KCkgIT0gMikKICAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0
ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotICAgIAot
ICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRp
b246OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisKKyAgICBhdXRvKiBs
b2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFsb2NhdGlvbiAmJiAhc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVy
cm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgIAotICAgIFJlZlB0cjxJbnQzMkFycmF5PiB3ZWJHTEFy
cmF5ID0gdG9VbnNoYXJlZEludDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpOwot
ICAgIAotICAgIGlmICh3ZWJHTEFycmF5KSB7CisKKyAgICBpZiAoYXV0byB3ZWJHTEFycmF5ID0g
dG9VbnNoYXJlZEludDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpKSB7CiAgICAg
ICAgIHN3aXRjaCAoZikgewogICAgICAgICBjYXNlIGZfdW5pZm9ybTF2OgogICAgICAgICAgICAg
Y29udGV4dC51bmlmb3JtMWl2KGxvY2F0aW9uLCAqd2ViR0xBcnJheSk7CkBAIC02MDEsMTUgKzUw
NiwxMyBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9D
YWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgVwogICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwogICAgIH0KLSAgICAKLSAgICAKKwogICAgIFZlY3RvcjxpbnQsIDY0PiBhcnJheTsK
LSAgICBpZiAoIXRvVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSwgYXJy
YXkpKQorICAgIGlmICghdG9OdW1iZXJWZWN0b3Ioc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpLCBhcnJheSkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNj
b3BlKTsKLSAgICAKKwogICAgIHN3aXRjaCAoZikgewogICAgIGNhc2UgZl91bmlmb3JtMXY6CiAg
ICAgICAgIGNvbnRleHQudW5pZm9ybTFpdihsb2NhdGlvbiwgYXJyYXkuZGF0YSgpLCBhcnJheS5z
aXplKCkpOwpAQCAtNjI2LDI4ICs1MjksMjUgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVu
Y3Rpb25pKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAg
ICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgCiAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uTWF0cml4KERh
dGFGdW5jdGlvbk1hdHJpeFRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCitzdGF0aWMgSlNWYWx1ZSBkYXRhRnVuY3Rpb25N
YXRyaXgoRGF0YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYsIEV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBpZiAo
c3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDMpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlv
bigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsK
LSAgICAKLSAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9y
bUxvY2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworCisgICAg
YXV0byogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUu
dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghbG9jYXRpb24gJiYgIXN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJv
d1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICAKKwogICAgIGJvb2wgdHJhbnNwb3NlID0g
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9Cb29sZWFuKCZzdGF0ZSk7Ci0gICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICAKLSAgICBSZWZQdHI8RmxvYXQz
MkFycmF5PiB3ZWJHTEFycmF5ID0gdG9VbnNoYXJlZEZsb2F0MzJBcnJheShzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgyKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAot
ICAgIGlmICh3ZWJHTEFycmF5KSB7CisgICAgaWYgKGF1dG8gd2ViR0xBcnJheSA9IHRvVW5zaGFy
ZWRGbG9hdDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpKSB7CiAgICAgICAgIHN3
aXRjaCAoZikgewogICAgICAgICBjYXNlIGZfdW5pZm9ybU1hdHJpeDJmdjoKICAgICAgICAgICAg
IGNvbnRleHQudW5pZm9ybU1hdHJpeDJmdihsb2NhdGlvbiwgdHJhbnNwb3NlLCAqd2ViR0xBcnJh
eSk7CkBAIC02NTksMTQgKzU1OSwxMyBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlv
bk1hdHJpeChEYXRhRnVuY3Rpb25NYXRyaXhUb0NhbGwgZiwgSlNDOjpFeGVjU3RhdAogICAgICAg
ICAgICAgY29udGV4dC51bmlmb3JtTWF0cml4NGZ2KGxvY2F0aW9uLCB0cmFuc3Bvc2UsICp3ZWJH
TEFycmF5KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0KICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CiAgICAgfQotICAgIAorCiAgICAgVmVjdG9yPGZsb2F0LCA2ND4gYXJy
YXk7Ci0gICAgaWYgKCF0b1ZlY3RvcihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMiks
IGFycmF5KSkKKyAgICBpZiAoIXRvTnVtYmVyVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgyKSwgYXJyYXkpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRl
LCBzY29wZSk7Ci0gICAgCisKICAgICBzd2l0Y2ggKGYpIHsKICAgICBjYXNlIGZfdW5pZm9ybU1h
dHJpeDJmdjoKICAgICAgICAgY29udGV4dC51bmlmb3JtTWF0cml4MmZ2KGxvY2F0aW9uLCB0cmFu
c3Bvc2UsIGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsKQEAgLTY3OCw4MSArNTc3LDgwIEBA
IHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uTWF0cml4KERhdGFGdW5jdGlvbk1hdHJp
eFRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0CiAgICAgICAgIGNvbnRleHQudW5pZm9ybU1hdHJpeDRm
dihsb2NhdGlvbiwgdHJhbnNwb3NlLCBhcnJheS5kYXRhKCksIGFycmF5LnNpemUoKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KLQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1KU0M6
OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtMWZ2KEpTQzo6RXhl
Y1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlm
b3JtMWZ2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmYoZl91
bmlmb3JtMXYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtMWl2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pT
VmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtMWl2KEV4ZWNTdGF0ZSYg
c3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmkoZl91bmlmb3JtMXYsIHN0YXRlLCB3
cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Ojp1bmlmb3JtMmZ2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtMmZ2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0
dXJuIGRhdGFGdW5jdGlvbmYoZl91bmlmb3JtMnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1K
U0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtMml2KEpTQzo6
RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1
bmlmb3JtMml2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmko
Zl91bmlmb3JtMnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtM2Z2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkK
K0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtM2Z2KEV4ZWNTdGF0
ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmYoZl91bmlmb3JtM3YsIHN0YXRl
LCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjp1bmlmb3JtM2l2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtM2l2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAg
cmV0dXJuIGRhdGFGdW5jdGlvbmkoZl91bmlmb3JtM3YsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQog
Ci1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtNGZ2KEpT
Qzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Ojp1bmlmb3JtNGZ2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlv
bmYoZl91bmlmb3JtNHYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtNGl2KEpTQzo6RXhlY1N0YXRlJiBzdGF0
ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtNGl2KEV4ZWNT
dGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmkoZl91bmlmb3JtNHYsIHN0
YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjp1bmlmb3JtTWF0cml4MmZ2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUg
SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtTWF0cml4MmZ2KEV4ZWNTdGF0ZSYg
c3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbk1hdHJpeChmX3VuaWZvcm1NYXRyaXgy
ZnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjp1bmlmb3JtTWF0cml4M2Z2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pT
VmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtTWF0cml4M2Z2KEV4ZWNT
dGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbk1hdHJpeChmX3VuaWZvcm1N
YXRyaXgzZnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtTWF0cml4NGZ2KEpTQzo6RXhlY1N0YXRlJiBzdGF0
ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtTWF0cml4NGZ2
KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbk1hdHJpeChmX3Vu
aWZvcm1NYXRyaXg0ZnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWIxZnYoSlNDOjpFeGVjU3RhdGUm
IHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJp
YjFmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdmVy
dGV4QXR0cmliMXYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWIyZnYoSlNDOjpFeGVjU3RhdGUmIHN0
YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJpYjJm
dihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdmVydGV4
QXR0cmliMnYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWIzZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRl
KQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJpYjNmdihF
eGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdmVydGV4QXR0
cmliM3YsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQogCi1KU0M6OkpTVmFsdWUgSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWI0ZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQor
SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJpYjRmdihFeGVj
U3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdmVydGV4QXR0cmli
NHYsIHN0YXRlLCB3cmFwcGVkKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKaW5kZXggOWZhMjk0MDc4YmJhY2EzZGMyNzYxMDcw
YTQ4YjI4YjViNzJjYzY0ZC4uNDBlNjcyNWQ1MzI1YjljZTIzZmZkZmJjY2Q0YzVmZGVhMGE2ZTBl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2Fk
ZXIuY3BwCkBAIC0xMzUsNiArMTM1LDEwIEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlw
dE1vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhCiAKIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0ds
b2JhbE9iamVjdCoganNHbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpT
TW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlLCBKU0M6OkpTVmFsdWUg
aW5pdGlhdG9yKQogeworICAgIC8vIEZJWE1FOiBXaGF0IGd1YXJhbnRlZXMgdGhlc2UgYXJlIHRy
dWU/IFdoeSBkb24ndCB3ZSBuZWVkIHRvIGNoZWNrPworICAgIEFTU0VSVChKU0M6OmpzRHluYW1p
Y0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKSk7CisgICAgQVNTRVJUKGlzU2NyaXB0RWxlbWVu
dChKU0M6OmpzRHluYW1pY0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKS0+d3JhcHBlZCgpKSk7
CisKICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihqc0dsb2JhbE9iamVjdCk7CiAgICAgYXV0byYganNQcm9taXNlID0gKkpTQzo6SlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsICZnbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gZGVmZXJyZWQgPSBEZWZlcnJlZFByb21pc2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGpzUHJv
bWlzZSk7CkBAIC0xNTYsMTcgKzE2MCwxMiBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3Jp
cHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogICAg
ICAgICByZXR1cm4ganNQcm9taXNlLnByb21pc2UoKTsKICAgICB9CiAKLSAgICBBU1NFUlRfV0lU
SF9NRVNTQUdFKEpTQzo6anNEeW5hbWljQ2FzdDxKU0VsZW1lbnQqPihpbml0aWF0b3IpLCAiSW5p
dGlhdG9yIHNob3VsZCBiZSBhbiBKU0VsZW1lbnQiKTsKLSAgICBhdXRvKiBzY3JpcHRFbGVtZW50
ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmSlNDOjpqc0Nhc3Q8SlNFbGVtZW50Kj4oaW5p
dGlhdG9yKS0+d3JhcHBlZCgpKTsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKHNjcmlwdEVsZW1l
bnQsICJJbml0aWF0b3Igc2hvdWxkIGJlIFNjcmlwdEVsZW1lbnQuIik7Ci0KICAgICBpZiAoYXV0
byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgYXV0byBsb2FkZXIgPSBD
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJyZWQuZ2V0KCkpOwog
ICAgICAgICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOwotICAgICAgICBpZiAoIWxv
YWRlci0+bG9hZCgqc2NyaXB0RWxlbWVudCwgY29tcGxldGVkVVJMKSkgeworICAgICAgICBpZiAo
IWxvYWRlci0+bG9hZChkb3duY2FzdFNjcmlwdEVsZW1lbnQoSlNDOjpqc0Nhc3Q8SlNFbGVtZW50
Kj4oaW5pdGlhdG9yKS0+d3JhcHBlZCgpKSwgY29tcGxldGVkVVJMKSkgewogICAgICAgICAgICAg
bG9hZGVyLT5jbGVhckNsaWVudCgpOwogICAgICAgICAgICAgbV9sb2FkZXJzLnJlbW92ZShXVEZN
b3ZlKGxvYWRlcikpOwotCiAgICAgICAgICAgICBkZWZlcnJlZC0+cmVqZWN0KGZyYW1lLT5zY3Jp
cHQoKS5tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgpKTsKICAgICAgICAg
ICAgIHJldHVybiBqc1Byb21pc2UucHJvbWlzZSgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IDRjNDNiZGQxZDdlNDgyNzYzOWVhYTNmNDU3YTg1NGE1NzI1NmUwYTAuLjcwNThj
YWI3OTYyZmQzMmY2NjJlOThmYzc2MGIwZjc3MGZkNTRjMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CkBAIC05OSw4ICs5OSw4IEBAIGNsYXNzIERvY3VtZW50UGFyc2VyOwogY2xhc3MgRG9jdW1lbnRT
aGFyZWRPYmplY3RQb29sOwogY2xhc3MgRG9jdW1lbnRUeXBlOwogY2xhc3MgRXh0ZW5zaW9uU3R5
bGVTaGVldHM7Ci1jbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBGbG9hdFF1YWQ7CitjbGFzcyBGbG9h
dFJlY3Q7CiBjbGFzcyBGb3JtQ29udHJvbGxlcjsKIGNsYXNzIEZyYW1lOwogY2xhc3MgRnJhbWVW
aWV3OwpAQCAtMTIxLDExICsxMjEsMTAgQEAgY2xhc3MgSFRNTFNjcmlwdEVsZW1lbnQ7CiBjbGFz
cyBIaXRUZXN0UmVxdWVzdDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBJbnRQb2ludDsK
K2NsYXNzIEpTTm9kZTsKIGNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGF5b3V0UmVjdDsKIGNs
YXNzIExpdmVOb2RlTGlzdDsKLWNsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKLWNsYXNzIEpTTm9k
ZTsKIGNsYXNzIExvY2FsZTsKIGNsYXNzIExvY2F0aW9uOwogY2xhc3MgTWVkaWFDYW5TdGFydExp
c3RlbmVyOwpAQCAtMTMzLDcgKzEzMiw2IEBAIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXQ7CiBj
bGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50OwogY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiBj
bGFzcyBNZWRpYVF1ZXJ5TWF0Y2hlcjsKLWNsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKIGNsYXNz
IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHM7CiBjbGFzcyBOYW1lZEZsb3dDb2xsZWN0aW9u
OwogY2xhc3MgTm9kZUZpbHRlcjsKQEAgLTE0MywyMyArMTQxLDI0IEBAIGNsYXNzIFBsYXRmb3Jt
TW91c2VFdmVudDsKIGNsYXNzIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjsKIGNsYXNzIFF1YWxpZmll
ZE5hbWU7CiBjbGFzcyBSYW5nZTsKLWNsYXNzIFJlbmRlclZpZXc7CiBjbGFzcyBSZW5kZXJGdWxs
U2NyZWVuOwotY2xhc3MgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyOworY2xhc3MgUmVuZGVyVmll
dzsKK2NsYXNzIFNWR0RvY3VtZW50RXh0ZW5zaW9uczsKK2NsYXNzIFNWR1NWR0VsZW1lbnQ7CiBj
bGFzcyBTY3JpcHRFbGVtZW50RGF0YTsKK2NsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKIGNsYXNz
IFNjcmlwdFJ1bm5lcjsKK2NsYXNzIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlcjsKIGNsYXNzIFNl
Y3VyaXR5T3JpZ2luOworY2xhc3MgU2VnbWVudGVkU3RyaW5nOwogY2xhc3MgU2VsZWN0b3JRdWVy
eTsKIGNsYXNzIFNlbGVjdG9yUXVlcnlDYWNoZTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTsKLWNsYXNzIFNlZ21lbnRlZFN0cmluZzsKIGNsYXNzIFNldHRpbmdzOwogY2xhc3MgU3R5bGVS
ZXNvbHZlcjsKIGNsYXNzIFN0eWxlU2hlZXQ7CiBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiBj
bGFzcyBTdHlsZVNoZWV0TGlzdDsKLWNsYXNzIFNWR0RvY3VtZW50RXh0ZW5zaW9uczsKLWNsYXNz
IFNWR1NWR0VsZW1lbnQ7CiBjbGFzcyBUZXh0OwogY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsK
IGNsYXNzIFRyZWVXYWxrZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGlu
Z1NjcmlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5jcHAKaW5kZXgg
MmJlMGUyZWI5MDMyZGQzODlhYjU3NGQ0ODA4NjA0ZjJlNmJmYjU0OS4uMTgzOGM0ZjVkMjBkYzNm
NjUyNmI4YTcyNjIzMjI4MmNkNDllYTE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1BlbmRpbmdTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0
LmNwcApAQCAtMjYsMzAgKzI2LDMwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
UGVuZGluZ1NjcmlwdC5oIgogCi0jaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIlBlbmRp
bmdTY3JpcHRDbGllbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotUmVmPFBlbmRpbmdTY3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShF
bGVtZW50JiBlbGVtZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQpCitSZWY8UGVu
ZGluZ1NjcmlwdD4gUGVuZGluZ1NjcmlwdDo6Y3JlYXRlKFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQs
IExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlwdCkKIHsKLSAgICBSZWY8UGVuZGluZ1Njcmlw
dD4gcGVuZGluZ1NjcmlwdCA9IGFkb3B0UmVmKCpuZXcgUGVuZGluZ1NjcmlwdChlbGVtZW50LCBs
b2FkYWJsZVNjcmlwdCkpOworICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IGFkb3B0UmVmKCpuZXcg
UGVuZGluZ1NjcmlwdChlbGVtZW50LCBsb2FkYWJsZVNjcmlwdCkpOwogICAgIGxvYWRhYmxlU2Ny
aXB0LmFkZENsaWVudChwZW5kaW5nU2NyaXB0LmdldCgpKTsKICAgICByZXR1cm4gcGVuZGluZ1Nj
cmlwdDsKIH0KIAotUmVmPFBlbmRpbmdTY3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShFbGVt
ZW50JiBlbGVtZW50LCBUZXh0UG9zaXRpb24gc2NyaXB0U3RhcnRQb3NpdGlvbikKK1JlZjxQZW5k
aW5nU2NyaXB0PiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoU2NyaXB0RWxlbWVudCYgZWxlbWVudCwg
VGV4dFBvc2l0aW9uIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUGVuZGluZ1NjcmlwdChlbGVtZW50LCBzY3JpcHRTdGFydFBvc2l0aW9uKSk7CiB9CiAK
LVBlbmRpbmdTY3JpcHQ6OlBlbmRpbmdTY3JpcHQoRWxlbWVudCYgZWxlbWVudCwgVGV4dFBvc2l0
aW9uIHN0YXJ0aW5nUG9zaXRpb24pCitQZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KFNjcmlw
dEVsZW1lbnQmIGVsZW1lbnQsIFRleHRQb3NpdGlvbiBzdGFydGluZ1Bvc2l0aW9uKQogICAgIDog
bV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX3N0YXJ0aW5nUG9zaXRpb24oc3RhcnRpbmdQb3Np
dGlvbikKIHsKIH0KIAotUGVuZGluZ1NjcmlwdDo6UGVuZGluZ1NjcmlwdChFbGVtZW50JiBlbGVt
ZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQpCitQZW5kaW5nU2NyaXB0OjpQZW5k
aW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJs
ZVNjcmlwdCkKICAgICA6IG1fZWxlbWVudChlbGVtZW50KQogICAgICwgbV9sb2FkYWJsZVNjcmlw
dCgmbG9hZGFibGVTY3JpcHQpCiB7CkBAIC02MSwxMSArNjEsNiBAQCBQZW5kaW5nU2NyaXB0Ojp+
UGVuZGluZ1NjcmlwdCgpCiAgICAgICAgIG1fbG9hZGFibGVTY3JpcHQtPnJlbW92ZUNsaWVudCgq
dGhpcyk7CiB9CiAKLUxvYWRhYmxlU2NyaXB0KiBQZW5kaW5nU2NyaXB0Ojpsb2FkYWJsZVNjcmlw
dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbG9hZGFibGVTY3JpcHQuZ2V0KCk7Ci19Ci0KIHZv
aWQgUGVuZGluZ1NjcmlwdDo6bm90aWZ5Q2xpZW50RmluaXNoZWQoKQogewogICAgIFJlZjxQZW5k
aW5nU2NyaXB0PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKQEAgLTg4LDEwICs4MywxMCBAQCBib29s
IFBlbmRpbmdTY3JpcHQ6OmVycm9yKCkgY29uc3QKICAgICByZXR1cm4gbV9sb2FkYWJsZVNjcmlw
dCAmJiBtX2xvYWRhYmxlU2NyaXB0LT5lcnJvcigpOwogfQogCi12b2lkIFBlbmRpbmdTY3JpcHQ6
OnNldENsaWVudChQZW5kaW5nU2NyaXB0Q2xpZW50KiBjbGllbnQpCit2b2lkIFBlbmRpbmdTY3Jp
cHQ6OnNldENsaWVudChQZW5kaW5nU2NyaXB0Q2xpZW50JiBjbGllbnQpCiB7CiAgICAgQVNTRVJU
KCFtX2NsaWVudCk7Ci0gICAgbV9jbGllbnQgPSBjbGllbnQ7CisgICAgbV9jbGllbnQgPSAmY2xp
ZW50OwogICAgIGlmIChpc0xvYWRlZCgpKQogICAgICAgICBub3RpZnlDbGllbnRGaW5pc2hlZCgp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKaW5kZXggOTkwZjI1MDgzYjAxYjAyN2M0
YWMwMTQxN2Y4ZjQ5MTZhOWU4ZTY2Ni4uZmM3NThkMDdkZDYwZGVjMzE4YmI4OGRhZDA3ODdmODQ4
ODJmODIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5oCkBAIC0zNCwxNSArMzQsMTUg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkU2NyaXB0OwotY2xhc3MgRWxl
bWVudDsKIGNsYXNzIFBlbmRpbmdTY3JpcHRDbGllbnQ7CitjbGFzcyBTY3JpcHRFbGVtZW50Owog
CiAvLyBBIGNvbnRhaW5lciBmb3Igc2NyaXB0cyB3aGljaCBtYXkgYmUgbG9hZGVkIGFuZCBleGVj
dXRlZC4KIC8vIFRoaXMgY2FuIGhvbGQgTG9hZGFibGVTY3JpcHQgYW5kIG5vbiBleHRlcm5hbCBp
bmxpbmUgc2NyaXB0LgogY2xhc3MgUGVuZGluZ1NjcmlwdCBmaW5hbCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFBlbmRpbmdTY3JpcHQ+LCBwdWJsaWMgTG9hZGFibGVTY3JpcHRDbGllbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8UGVuZGluZ1NjcmlwdD4gY3JlYXRlKEVsZW1lbnQmLCBMb2FkYWJs
ZVNjcmlwdCYpOwotICAgIHN0YXRpYyBSZWY8UGVuZGluZ1NjcmlwdD4gY3JlYXRlKEVsZW1lbnQm
LCBUZXh0UG9zaXRpb24gc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgc3RhdGljIFJlZjxQZW5k
aW5nU2NyaXB0PiBjcmVhdGUoU2NyaXB0RWxlbWVudCYsIExvYWRhYmxlU2NyaXB0Jik7CisgICAg
c3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0PiBjcmVhdGUoU2NyaXB0RWxlbWVudCYsIFRleHRQb3Np
dGlvbiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKIAogICAgIHZpcnR1YWwgflBlbmRpbmdTY3JpcHQo
KTsKIApAQCAtNTEsOCArNTEsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIHdhdGNoaW5nRm9yTG9h
ZCgpIGNvbnN0IHsgcmV0dXJuIG5lZWRzTG9hZGluZygpICYmIG1fY2xpZW50OyB9CiAKLSAgICBF
bGVtZW50JiBlbGVtZW50KCkgeyByZXR1cm4gbV9lbGVtZW50LmdldCgpOyB9Ci0gICAgY29uc3Qg
RWxlbWVudCYgZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudC5nZXQoKTsgfQorICAg
IFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0KKyAg
ICBjb25zdCBTY3JpcHRFbGVtZW50JiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50
LmdldCgpOyB9CiAKICAgICBMb2FkYWJsZVNjcmlwdCogbG9hZGFibGVTY3JpcHQoKSBjb25zdDsK
ICAgICBib29sIG5lZWRzTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuIGxvYWRhYmxlU2NyaXB0KCk7
IH0KQEAgLTYyLDE5ICs2MiwyNCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVk
KExvYWRhYmxlU2NyaXB0Jikgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNldENsaWVudChQZW5kaW5n
U2NyaXB0Q2xpZW50Kik7CisgICAgdm9pZCBzZXRDbGllbnQoUGVuZGluZ1NjcmlwdENsaWVudCYp
OwogICAgIHZvaWQgY2xlYXJDbGllbnQoKTsKIAogcHJpdmF0ZToKLSAgICBQZW5kaW5nU2NyaXB0
KEVsZW1lbnQmLCBMb2FkYWJsZVNjcmlwdCYpOwotICAgIFBlbmRpbmdTY3JpcHQoRWxlbWVudCYs
IFRleHRQb3NpdGlvbiBzdGFydGluZ1Bvc2l0aW9uKTsKKyAgICBQZW5kaW5nU2NyaXB0KFNjcmlw
dEVsZW1lbnQmLCBMb2FkYWJsZVNjcmlwdCYpOworICAgIFBlbmRpbmdTY3JpcHQoU2NyaXB0RWxl
bWVudCYsIFRleHRQb3NpdGlvbiBzdGFydGluZ1Bvc2l0aW9uKTsKIAogICAgIHZvaWQgbm90aWZ5
Q2xpZW50RmluaXNoZWQoKTsKIAotICAgIFJlZjxFbGVtZW50PiBtX2VsZW1lbnQ7CisgICAgUmVm
PFNjcmlwdEVsZW1lbnQ+IG1fZWxlbWVudDsKICAgICBUZXh0UG9zaXRpb24gbV9zdGFydGluZ1Bv
c2l0aW9uOyAvLyBPbmx5IHVzZWQgZm9yIGlubGluZSBzY3JpcHQgdGFncy4KICAgICBSZWZQdHI8
TG9hZGFibGVTY3JpcHQ+IG1fbG9hZGFibGVTY3JpcHQ7CiAgICAgUGVuZGluZ1NjcmlwdENsaWVu
dCogbV9jbGllbnQgeyBudWxscHRyIH07CiB9OwogCitpbmxpbmUgTG9hZGFibGVTY3JpcHQqIFBl
bmRpbmdTY3JpcHQ6OmxvYWRhYmxlU2NyaXB0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9sb2Fk
YWJsZVNjcmlwdC5nZXQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3Bw
CmluZGV4IDYxZjI0ODJmNTg3MWQ4YWQwYjc1MjZmNmY0NDViY2RiNzc0ZmM0OGYuLmQ4NDZjNTE4
OGMxNWY2NjAyMWYzZThlNGJlZTZjY2Q2MjRkMzNlMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAKQEAgLTI2MywxMSArMjYzLDExIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJl
cGFyZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2Fj
CiAgICAgfSBlbHNlIGlmICgoaXNDbGFzc2ljRXh0ZXJuYWxTY3JpcHQgfHwgc2NyaXB0VHlwZSA9
PSBTY3JpcHRUeXBlOjpNb2R1bGUpICYmICFhc3luY0F0dHJpYnV0ZVZhbHVlKCkgJiYgIW1fZm9y
Y2VBc3luYykgewogICAgICAgICBtX3dpbGxFeGVjdXRlSW5PcmRlciA9IHRydWU7CiAgICAgICAg
IEFTU0VSVChtX2xvYWRhYmxlU2NyaXB0KTsKLSAgICAgICAgZG9jdW1lbnQuc2NyaXB0UnVubmVy
KCktPnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKHRoaXMsICptX2xvYWRhYmxlU2NyaXB0LCBTY3Jp
cHRSdW5uZXI6OklOX09SREVSX0VYRUNVVElPTik7CisgICAgICAgIGRvY3VtZW50LnNjcmlwdFJ1
bm5lcigpLT5xdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbigqdGhpcywgKm1fbG9hZGFibGVTY3JpcHQs
IFNjcmlwdFJ1bm5lcjo6SU5fT1JERVJfRVhFQ1VUSU9OKTsKICAgICB9IGVsc2UgaWYgKGhhc1Nv
dXJjZUF0dHJpYnV0ZSgpIHx8IHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6TW9kdWxlKSB7CiAg
ICAgICAgIEFTU0VSVChtX2xvYWRhYmxlU2NyaXB0KTsKICAgICAgICAgQVNTRVJUKGFzeW5jQXR0
cmlidXRlVmFsdWUoKSB8fCBtX2ZvcmNlQXN5bmMpOwotICAgICAgICBkb2N1bWVudC5zY3JpcHRS
dW5uZXIoKS0+cXVldWVTY3JpcHRGb3JFeGVjdXRpb24odGhpcywgKm1fbG9hZGFibGVTY3JpcHQs
IFNjcmlwdFJ1bm5lcjo6QVNZTkNfRVhFQ1VUSU9OKTsKKyAgICAgICAgZG9jdW1lbnQuc2NyaXB0
UnVubmVyKCktPnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKCp0aGlzLCAqbV9sb2FkYWJsZVNjcmlw
dCwgU2NyaXB0UnVubmVyOjpBU1lOQ19FWEVDVVRJT04pOwogICAgIH0gZWxzZSBpZiAoIWhhc1Nv
dXJjZUF0dHJpYnV0ZSgpICYmIG1fcGFyc2VySW5zZXJ0ZWQgJiYgIWRvY3VtZW50LmhhdmVTdHls
ZXNoZWV0c0xvYWRlZCgpKSB7CiAgICAgICAgIEFTU0VSVChzY3JpcHRUeXBlID09IFNjcmlwdFR5
cGU6OkNsYXNzaWMpOwogICAgICAgICBtX3dpbGxCZVBhcnNlckV4ZWN1dGVkID0gdHJ1ZTsKQEAg
LTQ4NywxNSArNDg3LDI2IEBAIFN0cmluZyBTY3JpcHRFbGVtZW50OjpzY3JpcHRDb250ZW50KCkg
Y29uc3QKICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CiB9CiAKLVNjcmlwdEVsZW1lbnQq
IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgU2NyaXB0
RWxlbWVudDo6cmVmKCkKIHsKLSAgICBpZiAoaXM8SFRNTFNjcmlwdEVsZW1lbnQ+KCplbGVtZW50
KSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PEhUTUxTY3JpcHRFbGVtZW50PihlbGVtZW50KTsK
KyAgICBtX2VsZW1lbnQucmVmKCk7Cit9CiAKLSAgICBpZiAoaXM8U1ZHU2NyaXB0RWxlbWVudD4o
KmVsZW1lbnQpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8U1ZHU2NyaXB0RWxlbWVudD4oZWxl
bWVudCk7Cit2b2lkIFNjcmlwdEVsZW1lbnQ6OmRlcmVmKCkKK3sKKyAgICBtX2VsZW1lbnQuZGVy
ZWYoKTsKK30KIAotICAgIHJldHVybiBudWxscHRyOworYm9vbCBpc1NjcmlwdEVsZW1lbnQoRWxl
bWVudCYgZWxlbWVudCkKK3sKKyAgICByZXR1cm4gaXM8SFRNTFNjcmlwdEVsZW1lbnQ+KGVsZW1l
bnQpIHx8IGlzPFNWR1NjcmlwdEVsZW1lbnQ+KGVsZW1lbnQpOworfQorCitTY3JpcHRFbGVtZW50
JiBkb3duY2FzdFNjcmlwdEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAoaXM8
SFRNTFNjcmlwdEVsZW1lbnQ+KGVsZW1lbnQpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRN
TFNjcmlwdEVsZW1lbnQ+KGVsZW1lbnQpOworICAgIHJldHVybiBkb3duY2FzdDxTVkdTY3JpcHRF
bGVtZW50PihlbGVtZW50KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKaW5k
ZXggNDA3OWMxNzA5MzIxNzg0MDg3ZTllM2Y3MzIzNDZjNTU4MDBmN2IxNC4uYzA3MTA2M2VkNjJk
OThmYmQwZWZjYjc1OWMyMGJlMDQ1NWQyNWUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVu
dC5oCkBAIC0zMSwxMyArMzEsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBD
YWNoZWRNb2R1bGVTY3JpcHQ7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBDb250YWluZXJO
b2RlOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIFBlbmRpbmdTY3JpcHQ7Ci1jbGFzcyBTY3JpcHRF
bGVtZW50OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKLWNsYXNzIENhY2hlZE1vZHVsZVNjcmlw
dDsKIAogY2xhc3MgU2NyaXB0RWxlbWVudCB7CiBwdWJsaWM6CkBAIC03Myw2ICs3Miw5IEBAIHB1
YmxpYzoKICAgICBlbnVtIGNsYXNzIFNjcmlwdFR5cGUgeyBDbGFzc2ljLCBNb2R1bGUgfTsKICAg
ICBTY3JpcHRUeXBlIHNjcmlwdFR5cGUoKSBjb25zdCB7IHJldHVybiBtX2lzTW9kdWxlU2NyaXB0
ID8gU2NyaXB0VHlwZTo6TW9kdWxlIDogU2NyaXB0VHlwZTo6Q2xhc3NpYzsgfQogCisgICAgdm9p
ZCByZWYoKTsKKyAgICB2b2lkIGRlcmVmKCk7CisKIHByb3RlY3RlZDoKICAgICBTY3JpcHRFbGVt
ZW50KEVsZW1lbnQmLCBib29sIGNyZWF0ZWRCeVBhcnNlciwgYm9vbCBpc0V2YWx1YXRlZCk7CiAK
QEAgLTEyNyw3ICsxMjksOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxMb2FkYWJsZVNjcmlwdD4g
bV9sb2FkYWJsZVNjcmlwdDsKIH07CiAKLS8vIEZJWE1FOiByZXBsYWNlIHdpdGggZG93bmNhc3Q8
U2NyaXB0RWxlbWVudD4uCi1TY3JpcHRFbGVtZW50KiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxl
KEVsZW1lbnQqKTsKKy8vIEZJWE1FOiByZXBsYWNlIHdpdGggaXMvZG93bmNhc3Q8U2NyaXB0RWxl
bWVudD4uCitib29sIGlzU2NyaXB0RWxlbWVudChFbGVtZW50Jik7CitTY3JpcHRFbGVtZW50JiBk
b3duY2FzdFNjcmlwdEVsZW1lbnQoRWxlbWVudCYpOwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRS
dW5uZXIuY3BwCmluZGV4IDcwOTg5ZWI0MGMwNDVhZGU3NzRhZTU3ZDA5YTQwNDhiNTllMzg4MDQu
LjBlN2VmZDZjMjllMWJhOTU1ZjcxZmQ0OWM3OTllZTU4YTkxYzQwZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRSdW5uZXIuY3BwCkBAIC01NiwyNiArNTYsMjIgQEAgU2NyaXB0UnVubmVyOjp+U2Ny
aXB0UnVubmVyKCkKICAgICB9CiB9CiAKLXZvaWQgU2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZv
ckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBMb2FkYWJsZVNjcmlwdCYg
bG9hZGFibGVTY3JpcHQsIEV4ZWN1dGlvblR5cGUgZXhlY3V0aW9uVHlwZSkKK3ZvaWQgU2NyaXB0
UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVt
ZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQsIEV4ZWN1dGlvblR5cGUgZXhlY3V0
aW9uVHlwZSkKIHsKLSAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7Ci0KLSAgICBFbGVtZW50JiBl
bGVtZW50ID0gc2NyaXB0RWxlbWVudC0+ZWxlbWVudCgpOwotICAgIEFTU0VSVChlbGVtZW50Lmlu
RG9jdW1lbnQoKSk7CisgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQuZWxlbWVudCgpLmluRG9jdW1l
bnQoKSk7CiAKICAgICBtX2RvY3VtZW50LmluY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsK
IAotICAgIFJlZjxQZW5kaW5nU2NyaXB0PiBwZW5kaW5nU2NyaXB0ID0gUGVuZGluZ1NjcmlwdDo6
Y3JlYXRlKGVsZW1lbnQsIGxvYWRhYmxlU2NyaXB0KTsKKyAgICBhdXRvIHBlbmRpbmdTY3JpcHQg
PSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxlbWVudCwgbG9hZGFibGVTY3JpcHQpOwog
ICAgIHN3aXRjaCAoZXhlY3V0aW9uVHlwZSkgewogICAgIGNhc2UgQVNZTkNfRVhFQ1VUSU9OOgog
ICAgICAgICBtX3BlbmRpbmdBc3luY1NjcmlwdHMuYWRkKHBlbmRpbmdTY3JpcHQuY29weVJlZigp
KTsKICAgICAgICAgYnJlYWs7Ci0KICAgICBjYXNlIElOX09SREVSX0VYRUNVVElPTjoKICAgICAg
ICAgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5hcHBlbmQocGVuZGluZ1NjcmlwdC5jb3B5UmVm
KCkpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgcGVuZGluZ1NjcmlwdC0+c2V0Q2xpZW50
KHRoaXMpOworICAgIHBlbmRpbmdTY3JpcHQtPnNldENsaWVudCgqdGhpcyk7CiB9CiAKIHZvaWQg
U2NyaXB0UnVubmVyOjpzdXNwZW5kKCkKQEAgLTkxLDkgKzg3LDcgQEAgdm9pZCBTY3JpcHRSdW5u
ZXI6OnJlc3VtZSgpCiAKIHZvaWQgU2NyaXB0UnVubmVyOjpub3RpZnlGaW5pc2hlZChQZW5kaW5n
U2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogewotICAgIGF1dG8qIHNjcmlwdEVsZW1lbnQgPSB0b1Nj
cmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKSk7Ci0gICAgQVNT
RVJUKHNjcmlwdEVsZW1lbnQpOwotICAgIGlmIChzY3JpcHRFbGVtZW50LT53aWxsRXhlY3V0ZUlu
T3JkZXIoKSkKKyAgICBpZiAocGVuZGluZ1NjcmlwdC5lbGVtZW50KCkud2lsbEV4ZWN1dGVJbk9y
ZGVyKCkpCiAgICAgICAgIEFTU0VSVCghbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5pc0VtcHR5
KCkpOwogICAgIGVsc2UgewogICAgICAgICBBU1NFUlQobV9wZW5kaW5nQXN5bmNTY3JpcHRzLmNv
bnRhaW5zKHBlbmRpbmdTY3JpcHQpKTsKQEAgLTEyMiwxMCArMTE2LDggQEAgdm9pZCBTY3JpcHRS
dW5uZXI6OnRpbWVyRmlyZWQoKQogICAgICAgICAvLyBQYXBlciBvdmVyIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQwNTAKICAgICAgICAgaWYgKCFzY3JpcHQpCiAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgYXV0byogc2NyaXB0RWxlbWVudCA9IHRvU2Ny
aXB0RWxlbWVudElmUG9zc2libGUoJnNjcmlwdC0+ZWxlbWVudCgpKTsKLSAgICAgICAgQVNTRVJU
KHNjcmlwdEVsZW1lbnQpOwogICAgICAgICBBU1NFUlQoc2NyaXB0LT5uZWVkc0xvYWRpbmcoKSk7
Ci0gICAgICAgIHNjcmlwdEVsZW1lbnQtPmV4ZWN1dGVQZW5kaW5nU2NyaXB0KCpzY3JpcHQpOwor
ICAgICAgICBzY3JpcHQtPmVsZW1lbnQoKS5leGVjdXRlUGVuZGluZ1NjcmlwdCgqc2NyaXB0KTsK
ICAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAgICAg
fQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCmluZGV4IGRmY2YzYzVmYTkwZTRhNDUwOTQw
NDJkODc3ZGUzYmNlNDQ4MDBkOWEuLjJiOWU2Mjg1MGJkZDM1ZWE3MzRjN2I4ZmZmZWQ3OWJlYzEx
N2RiZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVi
bGljOgogICAgIH5TY3JpcHRSdW5uZXIoKTsKIAogICAgIGVudW0gRXhlY3V0aW9uVHlwZSB7IEFT
WU5DX0VYRUNVVElPTiwgSU5fT1JERVJfRVhFQ1VUSU9OIH07Ci0gICAgdm9pZCBxdWV1ZVNjcmlw
dEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiwgTG9hZGFibGVTY3JpcHQmLCBFeGVjdXRpb25U
eXBlKTsKKyAgICB2b2lkIHF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQmLCBM
b2FkYWJsZVNjcmlwdCYsIEV4ZWN1dGlvblR5cGUpOwogICAgIGJvb2wgaGFzUGVuZGluZ1Njcmlw
dHMoKSBjb25zdCB7IHJldHVybiAhbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkgfHwg
IW1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpIHx8ICFtX3BlbmRpbmdBc3luY1Nj
cmlwdHMuaXNFbXB0eSgpOyB9CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCByZXN1bWUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDEzNjdiNGYyMGVhMDkx
MWRmOWNkZGNmMWMxNjJlNzM5ZDFlMDI2ZTMuLjQxMTkzY2U4YTEwYzcyOGI4MDI1ZTZjMGYxN2Rk
MGUzMjg5M2ZmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMjIx
LDcgKzIyMSw3IEBAIGJvb2wgRmlsZUlucHV0VHlwZTo6Y2FuU2V0U3RyaW5nVmFsdWUoKSBjb25z
dAogCiBGaWxlTGlzdCogRmlsZUlucHV0VHlwZTo6ZmlsZXMoKQogewotICAgIHJldHVybiBtX2Zp
bGVMaXN0LmdldCgpOworICAgIHJldHVybiBtX2ZpbGVMaXN0LnB0cigpOwogfQogCiBib29sIEZp
bGVJbnB1dFR5cGU6OmNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC0yNTgsMTIg
KzI1OCwxMiBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJv
b2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpCiAgICAgZWxlbWVudCgpLmludmFsaWRhdGVTdHls
ZUZvclN1YnRyZWUoKTsKIH0KIAotUGFzc1JlZlB0cjxGaWxlTGlzdD4gRmlsZUlucHV0VHlwZTo6
Y3JlYXRlRmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBmaWxlcykg
Y29uc3QKK1JlZjxGaWxlTGlzdD4gRmlsZUlucHV0VHlwZTo6Y3JlYXRlRmlsZUxpc3QoY29uc3Qg
VmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBmaWxlcykKIHsKICAgICBWZWN0b3I8UmVmUHRy
PEZpbGU+PiBmaWxlT2JqZWN0czsKLSAgICBmb3IgKGNvbnN0IEZpbGVDaG9vc2VyRmlsZUluZm8m
IGluZm8gOiBmaWxlcykKLSAgICAgICAgZmlsZU9iamVjdHMuYXBwZW5kKEZpbGU6OmNyZWF0ZVdp
dGhOYW1lKGluZm8ucGF0aCwgaW5mby5kaXNwbGF5TmFtZSkpOwotCisgICAgZmlsZU9iamVjdHMu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShmaWxlcy5zaXplKCkpOworICAgIGZvciAoYXV0byYgaW5m
byA6IGZpbGVzKQorICAgICAgICBmaWxlT2JqZWN0cy51bmNoZWNrZWRBcHBlbmQoRmlsZTo6Y3Jl
YXRlV2l0aE5hbWUoaW5mby5wYXRoLCBpbmZvLmRpc3BsYXlOYW1lKSk7CiAgICAgcmV0dXJuIEZp
bGVMaXN0OjpjcmVhdGUoV1RGTW92ZShmaWxlT2JqZWN0cykpOwogfQogCkBAIC0zMDIsMjkgKzMw
MiwzMiBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6Om11bHRpcGxlQXR0cmlidXRlQ2hhbmdlZCgpCiAg
ICAgICAgIGJ1dHRvbi0+c2V0VmFsdWUoZWxlbWVudCgpLm11bHRpcGxlKCkgPyBmaWxlQnV0dG9u
Q2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkgOiBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkp
OwogfQogCisjaWYgIVBMQVRGT1JNKElPUykKKwogdm9pZCBGaWxlSW5wdXRUeXBlOjpyZXF1ZXN0
SWNvbihjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpCiB7Ci0jaWYgUExBVEZPUk0oSU9TKQot
ICAgIFVOVVNFRF9QQVJBTShwYXRocyk7Ci0jZWxzZQogICAgIGlmICghcGF0aHMuc2l6ZSgpKSB7
Ci0gICAgICAgIHVwZGF0ZVJlbmRlcmluZyhudWxscHRyKTsKKyAgICAgICAgaWNvbkxvYWRlZChu
dWxscHRyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIENocm9tZSogY2hyb21lID0g
dGhpcy0+Y2hyb21lKCk7Ci0gICAgaWYgKCFjaHJvbWUpCisgICAgYXV0byogY2hyb21lID0gdGhp
cy0+Y2hyb21lKCk7CisgICAgaWYgKCFjaHJvbWUpIHsKKyAgICAgICAgaWNvbkxvYWRlZChudWxs
cHRyKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGlmIChtX2ZpbGVJY29uTG9hZGVy
KQogICAgICAgICBtX2ZpbGVJY29uTG9hZGVyLT5pbnZhbGlkYXRlKCk7CiAKLSAgICBtX2ZpbGVJ
Y29uTG9hZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxGaWxlSWNvbkxvYWRlcj4oc3RhdGljX2Nhc3Q8
RmlsZUljb25Mb2FkZXJDbGllbnQmPigqdGhpcykpOworICAgIEZpbGVJY29uTG9hZGVyQ2xpZW50
JiBjbGllbnQgPSAqdGhpczsKKyAgICBtX2ZpbGVJY29uTG9hZGVyID0gc3RkOjptYWtlX3VuaXF1
ZTxGaWxlSWNvbkxvYWRlcj4oY2xpZW50KTsKIAotICAgIGNocm9tZS0+bG9hZEljb25Gb3JGaWxl
cyhwYXRocywgbV9maWxlSWNvbkxvYWRlci5nZXQoKSk7Ci0jZW5kaWYKKyAgICBjaHJvbWUtPmxv
YWRJY29uRm9yRmlsZXMocGF0aHMsICptX2ZpbGVJY29uTG9hZGVyKTsKIH0KIAorI2VuZGlmCisK
IHZvaWQgRmlsZUlucHV0VHlwZTo6YXBwbHlGaWxlQ2hvb3NlclNldHRpbmdzKGNvbnN0IEZpbGVD
aG9vc2VyU2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIGlmIChtX2ZpbGVDaG9vc2VyKQpAQCAt
MzMzLDE4ICszMzYsMjEgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjphcHBseUZpbGVDaG9vc2VyU2V0
dGluZ3MoY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0dGluZ3MKICAgICBtX2ZpbGVDaG9v
c2VyID0gRmlsZUNob29zZXI6OmNyZWF0ZSh0aGlzLCBzZXR0aW5ncyk7CiB9CiAKLXZvaWQgRmls
ZUlucHV0VHlwZTo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCit2b2lkIEZp
bGVJbnB1dFR5cGU6OnNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4mJiBmaWxlcykKIHsKICAgICBp
ZiAoIWZpbGVzKQogICAgICAgICByZXR1cm47CiAKICAgICBSZWY8SFRNTElucHV0RWxlbWVudD4g
aW5wdXQoZWxlbWVudCgpKTsKIAorICAgIHVuc2lnbmVkIGxlbmd0aCA9IGZpbGVzLT5sZW5ndGgo
KTsKKyAgICB1bnNpZ25lZCBvbGRMZW5ndGggPSBtX2ZpbGVMaXN0LT5sZW5ndGgoKTsKKwogICAg
IGJvb2wgcGF0aHNDaGFuZ2VkID0gZmFsc2U7Ci0gICAgaWYgKGZpbGVzLT5sZW5ndGgoKSAhPSBt
X2ZpbGVMaXN0LT5sZW5ndGgoKSkKKyAgICBpZiAobGVuZ3RoICE9IG9sZExlbmd0aCkKICAgICAg
ICAgcGF0aHNDaGFuZ2VkID0gdHJ1ZTsKICAgICBlbHNlIHsKLSAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGZpbGVzLT5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAgICAgICAgaWYgKGZpbGVzLT5pdGVt
KGkpLT5wYXRoKCkgIT0gbV9maWxlTGlzdC0+aXRlbShpKS0+cGF0aCgpKSB7CiAgICAgICAgICAg
ICAgICAgcGF0aHNDaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM1
MiwxNSArMzU4LDE3IEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6c2V0RmlsZXMoUGFzc1JlZlB0cjxG
aWxlTGlzdD4gZmlsZXMpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBtX2ZpbGVMaXN0ID0gZmls
ZXM7CisgICAgbV9maWxlTGlzdCA9IGZpbGVzLnJlbGVhc2VOb25OdWxsKCk7CiAKICAgICBpbnB1
dC0+c2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKICAgICBpbnB1dC0+
dXBkYXRlVmFsaWRpdHkoKTsKIAorI2lmICFQTEFURk9STShJT1MpCiAgICAgVmVjdG9yPFN0cmlu
Zz4gcGF0aHM7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZmlsZUxpc3QtPmxlbmd0
aCgpOyArK2kpCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQogICAg
ICAgICBwYXRocy5hcHBlbmQobV9maWxlTGlzdC0+aXRlbShpKS0+cGF0aCgpKTsKICAgICByZXF1
ZXN0SWNvbihwYXRocyk7CisjZW5kaWYKIAogICAgIGlmIChpbnB1dC0+cmVuZGVyZXIoKSkKICAg
ICAgICAgaW5wdXQtPnJlbmRlcmVyKCktPnJlcGFpbnQoKTsKQEAgLTM3NCwxNyArMzgyLDE5IEBA
IHZvaWQgRmlsZUlucHV0VHlwZTo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMp
CiB9CiAKICNpZiBQTEFURk9STShJT1MpCisKIHZvaWQgRmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9z
ZW4oY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBwYXRocywgY29uc3QgU3RyaW5n
JiBkaXNwbGF5U3RyaW5nLCBJY29uKiBpY29uKQogewogICAgIG1fZGlzcGxheVN0cmluZyA9IGRp
c3BsYXlTdHJpbmc7CiAgICAgZmlsZXNDaG9zZW4ocGF0aHMpOwotICAgIHVwZGF0ZVJlbmRlcmlu
ZyhpY29uKTsKKyAgICBpY29uTG9hZGVkKGljb24pOwogfQogCiBTdHJpbmcgRmlsZUlucHV0VHlw
ZTo6ZGlzcGxheVN0cmluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZGlzcGxheVN0cmluZzsK
IH0KKwogI2VuZGlmCiAKIHZvaWQgRmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4oY29uc3QgVmVj
dG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBmaWxlcykKQEAgLTM5MiwxMiArNDAyLDEyIEBAIHZv
aWQgRmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmls
ZUluZm8+JiBmaWxlcykKICAgICBzZXRGaWxlcyhjcmVhdGVGaWxlTGlzdChmaWxlcykpOwogfQog
Ci12b2lkIEZpbGVJbnB1dFR5cGU6OnVwZGF0ZVJlbmRlcmluZyhQYXNzUmVmUHRyPEljb24+IGlj
b24pCit2b2lkIEZpbGVJbnB1dFR5cGU6Omljb25Mb2FkZWQoUmVmUHRyPEljb24+JiYgaWNvbikK
IHsKICAgICBpZiAobV9pY29uID09IGljb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1faWNv
biA9IGljb247CisgICAgbV9pY29uID0gV1RGTW92ZShpY29uKTsKICAgICBpZiAoZWxlbWVudCgp
LnJlbmRlcmVyKCkpCiAgICAgICAgIGVsZW1lbnQoKS5yZW5kZXJlcigpLT5yZXBhaW50KCk7CiB9
CkBAIC00MzQsOCArNDQ0LDcgQEAgSWNvbiogRmlsZUlucHV0VHlwZTo6aWNvbigpIGNvbnN0CiAK
IFN0cmluZyBGaWxlSW5wdXRUeXBlOjpkZWZhdWx0VG9vbFRpcCgpIGNvbnN0CiB7Ci0gICAgRmls
ZUxpc3QqIGZpbGVMaXN0ID0gbV9maWxlTGlzdC5nZXQoKTsKLSAgICB1bnNpZ25lZCBsaXN0U2l6
ZSA9IGZpbGVMaXN0LT5sZW5ndGgoKTsKKyAgICB1bnNpZ25lZCBsaXN0U2l6ZSA9IG1fZmlsZUxp
c3QtPmxlbmd0aCgpOwogICAgIGlmICghbGlzdFNpemUpIHsKICAgICAgICAgaWYgKGVsZW1lbnQo
KS5tdWx0aXBsZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0
ZWRMYWJlbCgpOwpAQCAtNDQzLDggKzQ1Miw4IEBAIFN0cmluZyBGaWxlSW5wdXRUeXBlOjpkZWZh
dWx0VG9vbFRpcCgpIGNvbnN0CiAgICAgfQogCiAgICAgU3RyaW5nQnVpbGRlciBuYW1lczsKLSAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKLSAgICAgICAgbmFtZXMu
YXBwZW5kKGZpbGVMaXN0LT5pdGVtKGkpLT5uYW1lKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgIG5hbWVzLmFwcGVuZChtX2ZpbGVMaXN0
LT5pdGVtKGkpLT5uYW1lKCkpOwogICAgICAgICBpZiAoaSAhPSBsaXN0U2l6ZSAtIDEpCiAgICAg
ICAgICAgICBuYW1lcy5hcHBlbmQoJ1xuJyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1
dFR5cGUuaAppbmRleCBmOGEwZGZmMmQ4ZDNjMzA1ZjAxYTFkZjhjODkxYTI5MGUzNjU2M2YxLi5l
ZTQwNjQ4ZDY5NTFkYTZhZDI5MzlhMDJmNTM2ZTc3ODg2OWMyZjZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ZpbGVJbnB1dFR5cGUuaApAQCAtNTAsNDUgKzUwLDQ1IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
VmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+IGZpbGVzRnJvbUZvcm1Db250cm9sU3RhdGUoY29u
c3QgRm9ybUNvbnRyb2xTdGF0ZSYpOwogCiBwcml2YXRlOgotICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgRm9ybUNvbnRyb2xTdGF0
ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgcmVzdG9y
ZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIG92ZXJyaWRlOwotICAg
IGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgYm9vbCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgU3RyaW5nIHZhbHVlTWlzc2luZ1RleHQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGhh
bmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKLSAgICBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYmKSBvdmVycmlkZTsK
LSAgICBib29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgRmlsZUxp
c3QqIGZpbGVzKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVM
aXN0Pikgb3ZlcnJpZGU7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUo
KSBjb25zdCBmaW5hbDsKKyAgICBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRl
KCkgY29uc3QgZmluYWw7CisgICAgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBG
b3JtQ29udHJvbFN0YXRlJikgZmluYWw7CisgICAgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0
YUxpc3QmLCBib29sKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHZhbHVlTWlzc2luZyhjb25zdCBT
dHJpbmcmKSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcgdmFsdWVNaXNzaW5nVGV4dCgpIGNvbnN0
IGZpbmFsOworICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIGZpbmFsOwor
ICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0
eWxlJiYpIGZpbmFsOworICAgIGJvb2wgY2FuU2V0U3RyaW5nVmFsdWUoKSBjb25zdCBmaW5hbDsK
KyAgICBGaWxlTGlzdCogZmlsZXMoKSBmaW5hbDsKKyAgICB2b2lkIHNldEZpbGVzKFJlZlB0cjxG
aWxlTGlzdD4mJikgZmluYWw7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIFN0cmluZyBkaXNwbGF5
U3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgU3RyaW5nIGRpc3BsYXlTdHJpbmcoKSBjb25z
dCBmaW5hbDsKICNlbmRpZgotICAgIGJvb2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJikgb3Zl
cnJpZGU7Ci0gICAgYm9vbCBnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKSBvdmVycmlkZTsg
Ly8gQ2hlY2tlZCBmaXJzdCwgYmVmb3JlIGludGVybmFsIHN0b3JhZ2Ugb3IgdGhlIHZhbHVlIGF0
dHJpYnV0ZS4KLSAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFu
Z2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBvdmVycmlkZTsKKyAgICBib29sIGNhblNldFZh
bHVlKGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUo
U3RyaW5nJikgZmluYWw7IC8vIENoZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdl
IG9yIHRoZSB2YWx1ZSBhdHRyaWJ1dGUuCisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcm
LCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgZmluYWw7CiAKICNp
ZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIGJvb2wgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25z
dCBEcmFnRGF0YSYpIG92ZXJyaWRlOworICAgIGJvb2wgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25z
dCBEcmFnRGF0YSYpIGZpbmFsOwogI2VuZGlmCiAKLSAgICBJY29uKiBpY29uKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgYm9vbCBpc0ZpbGVVcGxvYWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lk
IGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2FibGVkQXR0cmli
dXRlQ2hhbmdlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgbXVsdGlwbGVBdHRyaWJ1dGVDaGFuZ2Vk
KCkgb3ZlcnJpZGU7Ci0gICAgU3RyaW5nIGRlZmF1bHRUb29sVGlwKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgSWNvbiogaWNvbigpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgaXNGaWxlVXBsb2FkKCkg
Y29uc3QgZmluYWw7CisgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgZmluYWw7CisgICAg
dm9pZCBkaXNhYmxlZEF0dHJpYnV0ZUNoYW5nZWQoKSBmaW5hbDsKKyAgICB2b2lkIG11bHRpcGxl
QXR0cmlidXRlQ2hhbmdlZCgpIGZpbmFsOworICAgIFN0cmluZyBkZWZhdWx0VG9vbFRpcCgpIGNv
bnN0IGZpbmFsOwogCiAgICAgLy8gRmlsZUNob29zZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCi0g
ICAgdm9pZCBmaWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mKSBv
dmVycmlkZTsKKyAgICB2b2lkIGZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZp
bGVJbmZvPiYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2b2lkIGZpbGVzQ2hvc2Vu
KGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYsIGNvbnN0IFN0cmluZyYgZGlzcGxh
eVN0cmluZywgSWNvbiopIG92ZXJyaWRlOworICAgIHZvaWQgZmlsZXNDaG9zZW4oY29uc3QgVmVj
dG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5U3RyaW5nLCBJ
Y29uKikgZmluYWw7CiAjZW5kaWYKIAogICAgIC8vIEZpbGVJY29uTG9hZGVyQ2xpZW50IGltcGxl
bWVudGF0aW9uLgotICAgIHZvaWQgdXBkYXRlUmVuZGVyaW5nKFBhc3NSZWZQdHI8SWNvbj4pIG92
ZXJyaWRlOworICAgIHZvaWQgaWNvbkxvYWRlZChSZWZQdHI8SWNvbj4mJikgZmluYWw7CiAKLSAg
ICBQYXNzUmVmUHRyPEZpbGVMaXN0PiBjcmVhdGVGaWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNo
b29zZXJGaWxlSW5mbz4mIGZpbGVzKSBjb25zdDsKKyAgICBzdGF0aWMgUmVmPEZpbGVMaXN0PiBj
cmVhdGVGaWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mKTsKICAgICB2
b2lkIHJlcXVlc3RJY29uKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAKICAgICB2b2lkIGFwcGx5
RmlsZUNob29zZXJTZXR0aW5ncyhjb25zdCBGaWxlQ2hvb3NlclNldHRpbmdzJik7CkBAIC05OCw3
ICs5OCw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEZpbGVJY29uTG9hZGVyPiBt
X2ZpbGVJY29uTG9hZGVyOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8RmlsZUxpc3Q+IG1fZmlsZUxp
c3Q7CisgICAgUmVmPEZpbGVMaXN0PiBtX2ZpbGVMaXN0OwogICAgIFJlZlB0cjxJY29uPiBtX2lj
b247CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFN0cmluZyBtX2Rpc3BsYXlTdHJpbmc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGY0YmU3MTU4YzUxMDA4NTgzMDU4MGI2YTcz
ODU4NzIwMzAzOWEzZDkuLjllZGM2MTA1NTQ1MTY0MzFlNjU5NDdiMTc0MDI3YjFiMTRmMzFkYzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC03NTIsNyArNzUyLDcgQEAgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVuZGVyU3R5bGUmJiBzdHlsZSwKICAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9y
KCp0aGlzLCBXVEZNb3ZlKHN0eWxlKSk7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTEVsZW1l
bnQ6OnZpcnR1YWxGb3JtKCkgY29uc3QKK0hUTUxGb3JtRWxlbWVudCogSFRNTEVsZW1lbnQ6OmZv
cm0oKSBjb25zdAogewogICAgIHJldHVybiBIVE1MRm9ybUVsZW1lbnQ6OmZpbmRDbG9zZXN0Rm9y
bUFuY2VzdG9yKCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAppbmRleCAzOWQ0
Y2I3MmI2NzYzNzI3NzU5MTEyNmE4YTE1MjUwNTQwMmRmZTBjLi4wMmQwN2VkODA1MGU5MTI5MGFl
YTQyZDBiYzI3NTI3Y2NkNDRhY2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCkBAIC03
MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVu
ZGVyU3R5bGUmKSBvdmVycmlkZTsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
IG92ZXJyaWRlOwogCi0gICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkgY29uc3QgeyByZXR1cm4g
dmlydHVhbEZvcm0oKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgSFRNTEZvcm1FbGVt
ZW50KiBmb3JtKCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBBdG9taWNTdHJp
bmcmIGRpcigpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RGlyKGNvbnN0IEF0
b21pY1N0cmluZyYpOwpAQCAtMTMzLDggKzEzMyw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIG1h
cExhbmd1YWdlQXR0cmlidXRlVG9Mb2NhbGUoY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0
eWxlUHJvcGVydGllcyYpOwogCi0gICAgdmlydHVhbCBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxG
b3JtKCkgY29uc3Q7Ci0KICAgICBFeGNlcHRpb25PcjxSZWY8RG9jdW1lbnRGcmFnbWVudD4+IHRl
eHRUb0ZyYWdtZW50KGNvbnN0IFN0cmluZyYpOwogCiAgICAgdm9pZCBkaXJBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggODQ1MTZjYjYyNDRjMzNiMWY3MDVlMDZkZTI4MjJh
ZWExMWU1MWJkOC4uN2JmZWNlYmE3MDA3YjNkZmQzY2M2Y2NjN2FlYmY4MTliYjFiMjM5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC01
OTMsMTEgKzU5Myw2IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hCbHVy
RXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1lCiAgICAgaGlkZVZpc2libGVW
YWxpZGF0aW9uTWVzc2FnZSgpOwogfQogCi1IVE1MRm9ybUVsZW1lbnQqIEhUTUxGb3JtQ29udHJv
bEVsZW1lbnQ6OnZpcnR1YWxGb3JtKCkgY29uc3QKLXsKLSAgICByZXR1cm4gRm9ybUFzc29jaWF0
ZWRFbGVtZW50Ojpmb3JtKCk7Ci19Ci0KICNpZiBFTkFCTEUoSU9TX0FVVE9DT1JSRUNUX0FORF9B
VVRPQ0FQSVRBTElaRSkKIAogLy8gRklYTUU6IFdlIHNob3VsZCBsb29rIHRvIHNoYXJlIHRoaXMg
Y29kZSB3aXRoIGNsYXNzIEhUTUxGb3JtRWxlbWVudCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIHRo
ZSBsb2dpYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9s
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgK
aW5kZXggNGZmNDg5NGYzNWZlNjFkMmVkZjBjMDg1NWU5MjI0NGFjZGM1YzRmYy4uZTE1MzVjNjNl
Yzk3M2M1Y2U1MGFmNGE3ZDliMTY5Y2I0ODNhNzBlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgSFRNTEZv
cm1Db250cm9sRWxlbWVudCA6IHB1YmxpYyBMYWJlbGFibGVFbGVtZW50LCBwdWJsaWMgRm9ybUFz
c29jaWF0ZWRFbGUKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5IVE1MRm9ybUNvbnRyb2xFbGVtZW50
KCk7CiAKLSAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCB7IHJldHVybiBGb3JtQXNz
b2NpYXRlZEVsZW1lbnQ6OmZvcm0oKTsgfQorICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybSgpOyB9CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZm9ybUVuY3R5cGUoKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldEZvcm1FbmN0eXBlKGNvbnN0IFN0cmluZyYpOwpAQCAtMTY5LDcgKzE2
OSw2IEBAIHByaXZhdGU6CiAKICAgICBpbnQgdGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKIAotICAg
IEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25zdCBvdmVycmlkZTsKICAgICBib29s
IGlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKSBjb25zdDsKIAogICAgIGJvb2wgY29tcHV0ZUlz
RGlzYWJsZWRCeUZpZWxkc2V0QW5jZXN0b3IoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGQ0M2Q0ZWY5ZTAxMTkyNmQwZThhMGViZGVjODc1MmQz
ZWZmZGZjMjQuLjE0NDgzODlhNGFmZDgyNTA2NzdhNjIyYjE5NTkxNzJjOWE3OTNhNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTE4NCwxMCArMTE4NCw5
IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZl
bnQpCiAgICAgICAgIGlmICh3YXNDaGFuZ2VkU2luY2VMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVu
dCgpKQogICAgICAgICAgICAgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCk7CiAKLSAg
ICAgICAgUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gZm9ybUZvclN1Ym1pc3Npb24gPSBtX2lucHV0
VHlwZS0+Zm9ybUZvclN1Ym1pc3Npb24oKTsKICAgICAgICAgLy8gRm9ybSBtYXkgbmV2ZXIgaGF2
ZSBiZWVuIHByZXNlbnQsIG9yIG1heSBoYXZlIGJlZW4gZGVzdHJveWVkIGJ5IGNvZGUgcmVzcG9u
ZGluZyB0byB0aGUgY2hhbmdlIGV2ZW50LgotICAgICAgICBpZiAoZm9ybUZvclN1Ym1pc3Npb24p
Ci0gICAgICAgICAgICBmb3JtRm9yU3VibWlzc2lvbi0+c3VibWl0SW1wbGljaXRseShldmVudCwg
Y2FuVHJpZ2dlckltcGxpY2l0U3VibWlzc2lvbigpKTsKKyAgICAgICAgaWYgKGF1dG8qIGZvcm1F
bGVtZW50ID0gZm9ybSgpKQorICAgICAgICAgICAgZm9ybUVsZW1lbnQtPnN1Ym1pdEltcGxpY2l0
bHkoZXZlbnQsIGNhblRyaWdnZXJJbXBsaWNpdFN1Ym1pc3Npb24oKSk7CiAKICAgICAgICAgZXZl
bnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTM0Miw5ICsxMzQx
LDkgQEAgRmlsZUxpc3QqIEhUTUxJbnB1dEVsZW1lbnQ6OmZpbGVzKCkKICAgICByZXR1cm4gbV9p
bnB1dFR5cGUtPmZpbGVzKCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0RmlsZXMo
UGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEZp
bGVzKFJlZlB0cjxGaWxlTGlzdD4mJiBmaWxlcykKIHsKLSAgICBtX2lucHV0VHlwZS0+c2V0Rmls
ZXMoZmlsZXMpOworICAgIG1faW5wdXRUeXBlLT5zZXRGaWxlcyhXVEZNb3ZlKGZpbGVzKSk7CiB9
CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpAQCAtMTg2OSw3ICsxODY4LDcgQEAgUmFkaW9C
dXR0b25Hcm91cHMqIEhUTUxJbnB1dEVsZW1lbnQ6OnJhZGlvQnV0dG9uR3JvdXBzKCkgY29uc3QK
IHsKICAgICBpZiAoIWlzUmFkaW9CdXR0b24oKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgaWYgKEhUTUxGb3JtRWxlbWVudCogZm9ybUVsZW1lbnQgPSBmb3JtKCkpCisgICAgaWYgKGF1
dG8qIGZvcm1FbGVtZW50ID0gZm9ybSgpKQogICAgICAgICByZXR1cm4gJmZvcm1FbGVtZW50LT5y
YWRpb0J1dHRvbkdyb3VwcygpOwogICAgIGlmIChpbkRvY3VtZW50KCkpCiAgICAgICAgIHJldHVy
biAmZG9jdW1lbnQoKS5mb3JtQ29udHJvbGxlcigpLnJhZGlvQnV0dG9uR3JvdXBzKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDhhZmZkOTgxMTc1NGQ5ZTQ5MjM2
MjU2ZTY1NWQ2ZGE1NTgzZjU2ZDYuLjE5OTkyYjU0OTBiY2I0YzFmOTc2NjE2YjhkZGNkYjA0N2Nk
OWRjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0yMzgsNyAr
MjM4LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2hvd0F1dG9GaWxs
QnV0dG9uKEF1dG9GaWxsQnV0dG9uVHlwZSk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBGaWxlTGlz
dCogZmlsZXMoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZpbGVzKFBhc3NSZWZQdHI8
RmlsZUxpc3Q+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZpbGVzKFJlZlB0cjxGaWxl
TGlzdD4mJik7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIC8vIFJldHVybnMgdHJ1
ZSBpZiB0aGUgZ2l2ZW4gRHJhZ0RhdGEgaGFzIG1vcmUgdGhhbiBvbmUgZHJvcHBlZCBmaWxlcy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCmluZGV4IGMyZDE4NWMzMTBh
MGI5MmI5MjBlOTc1MTA0Y2ExY2ViODU1MDVmYWQuLjhiNzkzYWZkOGM1NWVjNzlkM2U3ZTJlNmYx
YzM3ZTQ4MjVjNTY3ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVs
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNw
cApAQCAtNjMsMzAgKzYzLDI4IEBAIGJvb2wgSFRNTExhYmVsRWxlbWVudDo6aXNGb2N1c2FibGUo
KSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotTGFiZWxhYmxlRWxlbWVudCogSFRNTExh
YmVsRWxlbWVudDo6Y29udHJvbCgpCitMYWJlbGFibGVFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50
Ojpjb250cm9sKCkgY29uc3QKIHsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGNvbnRyb2xJZCA9
IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oZm9yQXR0cik7CisgICAgYXV0byYgY29u
dHJvbElkID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihmb3JBdHRyKTsKICAgICBp
ZiAoY29udHJvbElkLmlzTnVsbCgpKSB7CiAgICAgICAgIC8vIFNlYXJjaCB0aGUgY2hpbGRyZW4g
YW5kIGRlc2NlbmRhbnRzIG9mIHRoZSBsYWJlbCBlbGVtZW50IGZvciBhIGZvcm0gZWxlbWVudC4K
ICAgICAgICAgLy8gcGVyIGh0dHA6Ly9kZXYudzMub3JnL2h0bWw1L3NwZWMvT3ZlcnZpZXcuaHRt
bCN0aGUtbGFiZWwtZWxlbWVudAogICAgICAgICAvLyB0aGUgZm9ybSBlbGVtZW50IG11c3QgYmUg
ImxhYmVsYWJsZSBmb3JtLWFzc29jaWF0ZWQgZWxlbWVudCIuCiAgICAgICAgIGZvciAoYXV0byYg
bGFiZWxhYmxlRWxlbWVudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPExhYmVsYWJsZUVsZW1lbnQ+KCp0
aGlzKSkgewogICAgICAgICAgICAgaWYgKGxhYmVsYWJsZUVsZW1lbnQuc3VwcG9ydExhYmVscygp
KQotICAgICAgICAgICAgICAgIHJldHVybiAmbGFiZWxhYmxlRWxlbWVudDsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gY29uc3RfY2FzdDxMYWJlbGFibGVFbGVtZW50Kj4oJmxhYmVsYWJsZUVsZW1l
bnQpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICAKICAg
ICByZXR1cm4gaW5Eb2N1bWVudCgpID8gZmlyc3RFbGVtZW50V2l0aElkSWZMYWJlbGFibGUodHJl
ZVNjb3BlKCksIGNvbnRyb2xJZCkgOiBudWxscHRyOwogfQogCi1IVE1MRm9ybUVsZW1lbnQqIEhU
TUxMYWJlbEVsZW1lbnQ6OmZvcm0oKQorSFRNTEZvcm1FbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50
Ojpmb3JtKCkgY29uc3QKIHsKLSAgICBhdXRvKiBsYWJlbGVkQ29udHJvbCA9IGNvbnRyb2woKTsK
LSAgICBpZiAoIWxhYmVsZWRDb250cm9sKQorICAgIGF1dG8qIGNvbnRyb2wgPSB0aGlzLT5jb250
cm9sKCk7CisgICAgaWYgKCFpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Pihjb250cm9sKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICByZXR1cm4gaXM8SFRNTEZvcm1Db250cm9sRWxl
bWVudD4oKmxhYmVsZWRDb250cm9sKSA/IGRvd25jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+
KCpsYWJlbGVkQ29udHJvbCkuZm9ybSgpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gZG93bmNhc3Q8
SFRNTEZvcm1Db250cm9sRWxlbWVudD4oKmNvbnRyb2wpLmZvcm0oKTsKIH0KIAogdm9pZCBIVE1M
TGFiZWxFbGVtZW50OjpzZXRBY3RpdmUoYm9vbCBkb3duLCBib29sIHBhdXNlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAppbmRleCAxNGRkYzA4M2E2MThlNDc3ZjMyMWE1MTc2
YWQ2MTAzYWU5Mjk2ZDA2Li45ZTA1NjBiMzU5YWIzYTY4YzhjOTM3MDM2ZjkyM2Q1NWIyN2M3NzQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaApAQCAtMzEsOCArMzEsOCBA
QCBjbGFzcyBIVE1MTGFiZWxFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgUmVmPEhUTUxMYWJlbEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIExhYmVsYWJsZUVs
ZW1lbnQqIGNvbnRyb2woKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBIVE1MRm9ybUVsZW1lbnQqIGZv
cm0oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBMYWJlbGFibGVFbGVtZW50KiBjb250cm9sKCkgY29u
c3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkgY29uc3QgZmlu
YWw7CiAKICAgICBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgZmluYWw7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5jcHAKaW5kZXggZWE3OTczNTg2
NjEwZWY3ZDlhZjMzN2MxYmE3ZTk1MzE1OWU0Mzc2ZS4uNDZiNTZkNWEwZDZiODcxMzYzNmRhZTM2
ZjliODRjNmE3NmI5OTQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVn
ZW5kRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVu
dC5jcHAKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29p
dmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxs
ZXJAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgICAgICAgICAgKEMpIDIwMDYgQWxl
eGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTMxLDEzICsz
MSwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7Ci0KLQogaW5saW5lIEhUTUxMZWdlbmRFbGVtZW50OjpIVE1MTGVnZW5kRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBIVE1M
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKIHsKLSAgICBBU1NFUlQoaGFzVGFnTmFtZShsZWdl
bmRUYWcpKTsKKyAgICBBU1NFUlQoaGFzVGFnTmFtZShIVE1MTmFtZXM6OmxlZ2VuZFRhZykpOwog
fQogCiBSZWY8SFRNTExlZ2VuZEVsZW1lbnQ+IEhUTUxMZWdlbmRFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtNjEsMjcg
KzU4LDI2IEBAIHZvaWQgSFRNTExlZ2VuZEVsZW1lbnQ6OmZvY3VzKGJvb2wsIEZvY3VzRGlyZWN0
aW9uIGRpcmVjdGlvbikKIHsKICAgICBpZiAoaXNGb2N1c2FibGUoKSkKICAgICAgICAgRWxlbWVu
dDo6Zm9jdXModHJ1ZSwgZGlyZWN0aW9uKTsKLSAgICAgICAgCisKICAgICAvLyBUbyBtYXRjaCBv
dGhlciBicm93c2VycycgYmVoYXZpb3IsIG5ldmVyIHJlc3RvcmUgcHJldmlvdXMgc2VsZWN0aW9u
LgotICAgIGlmIChIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBjb250cm9sID0gYXNzb2NpYXRlZENv
bnRyb2woKSkKKyAgICBpZiAoYXV0byogY29udHJvbCA9IGFzc29jaWF0ZWRDb250cm9sKCkpCiAg
ICAgICAgIGNvbnRyb2wtPmZvY3VzKGZhbHNlLCBkaXJlY3Rpb24pOwogfQogCiB2b2lkIEhUTUxM
ZWdlbmRFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpCiB7Ci0g
ICAgaWYgKEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGNvbnRyb2wgPSBhc3NvY2lhdGVkQ29udHJv
bCgpKQorICAgIGlmIChhdXRvKiBjb250cm9sID0gYXNzb2NpYXRlZENvbnRyb2woKSkKICAgICAg
ICAgY29udHJvbC0+YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cyk7CiB9CiAKLUhUTUxG
b3JtRWxlbWVudCogSFRNTExlZ2VuZEVsZW1lbnQ6OnZpcnR1YWxGb3JtKCkgY29uc3QKK0hUTUxG
b3JtRWxlbWVudCogSFRNTExlZ2VuZEVsZW1lbnQ6OmZvcm0oKSBjb25zdAogewogICAgIC8vIEFj
Y29yZGluZyB0byB0aGUgc3BlY2lmaWNhdGlvbiwgSWYgdGhlIGxlZ2VuZCBoYXMgYSBmaWVsZHNl
dCBlbGVtZW50IGFzCiAgICAgLy8gaXRzIHBhcmVudCwgdGhlbiB0aGUgZm9ybSBhdHRyaWJ1dGUg
bXVzdCByZXR1cm4gdGhlIHNhbWUgdmFsdWUgYXMgdGhlCiAgICAgLy8gZm9ybSBhdHRyaWJ1dGUg
b24gdGhhdCBmaWVsZHNldCBlbGVtZW50LiBPdGhlcndpc2UsIGl0IG11c3QgcmV0dXJuIG51bGwu
Ci0gICAgQ29udGFpbmVyTm9kZSogZmllbGRzZXQgPSBwYXJlbnROb2RlKCk7CisgICAgYXV0byog
ZmllbGRzZXQgPSBwYXJlbnROb2RlKCk7CiAgICAgaWYgKCFpczxIVE1MRmllbGRTZXRFbGVtZW50
PihmaWVsZHNldCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotCiAgICAgcmV0dXJuIGRvd25j
YXN0PEhUTUxGaWVsZFNldEVsZW1lbnQ+KCpmaWVsZHNldCkuZm9ybSgpOwogfQogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCmluZGV4IDAzOGNjOWExNzZlYmMwZDcw
NjJlNjBlNWM5NTlhMTVlODM4NDZmMmYuLjhiMjdkOTk2MzIwNjFiZTU5ZWJhMDc2MDJiZTY4MjBj
NjJkZmQ5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgKQEAgLTIs
NyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9y
ZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9y
ZykKICAqICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykK
LSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMzLDE1ICszMywxNiBA
QCBjbGFzcyBIVE1MTGVnZW5kRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxIVE1MTGVnZW5kRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgSFRNTEZvcm1F
bGVtZW50KiBmb3JtKCkgY29uc3QgZmluYWw7CisKIHByaXZhdGU6CiAgICAgSFRNTExlZ2VuZEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICAvLyBDb250cm9s
IGluIHRoZSBsZWdlbmQncyBmaWVsZHNldCB0aGF0IGdldHMgZm9jdXMgYW5kIGFjY2VzcyBrZXku
CisgICAgLy8gQ29udHJvbCBpbiB0aGUgbGVnZW5kJ3MgZmllbGQgc2V0IHRoYXQgZ2V0cyBmb2N1
cyBhbmQgYWNjZXNzIGtleS4KICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBhc3NvY2lhdGVk
Q29udHJvbCgpOwogCiAgICAgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVu
dHMpIGZpbmFsOwogICAgIHZvaWQgZm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24s
IEZvY3VzRGlyZWN0aW9uKSBmaW5hbDsKLSAgICBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxGb3Jt
KCkgY29uc3QgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAwODRlZmM3ODA1NDNmZWRkMjE0ZTk1
NDY3OTg1MWM5ZDc2NTY1NDYzLi42OTEwY2I0MTAzMjYwMThmZjM2NTE0ZjRjMDFkZWYyOTRiNGY3
MDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTI2OSwy
MiArMjY5LDIzIEBAIHN0YXRpYyB2b2lkIHJlbW92ZUVsZW1lbnRGcm9tRG9jdW1lbnRNYXAoSFRN
TE1lZGlhRWxlbWVudCYgZWxlbWVudCwgRG9jdW1lbnQmIGRvCiB9CiAKICNpZiBFTkFCTEUoVklE
RU9fVFJBQ0spCisKIGNsYXNzIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHsKIHB1YmxpYzoKLSAg
ICBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZShIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQp
CisgICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUoSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkK
KyAgICAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKICAgICB7Ci0gICAgICAgIG1fbWVkaWFFbGVt
ZW50ID0gbWVkaWFFbGVtZW50OwotICAgICAgICBtX21lZGlhRWxlbWVudC0+YmVnaW5JZ25vcmlu
Z1RyYWNrRGlzcGxheVVwZGF0ZVJlcXVlc3RzKCk7CisgICAgICAgIG1fZWxlbWVudC5iZWdpbkln
bm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKTsKICAgICB9CiAgICAgflRyYWNrRGlz
cGxheVVwZGF0ZVNjb3BlKCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX21lZGlhRWxlbWVudCk7
Ci0gICAgICAgIG1fbWVkaWFFbGVtZW50LT5lbmRJZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0ZVJl
cXVlc3RzKCk7CisgICAgICAgIG1fZWxlbWVudC5lbmRJZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0
ZVJlcXVlc3RzKCk7CiAgICAgfQogICAgIAogcHJpdmF0ZToKLSAgICBIVE1MTWVkaWFFbGVtZW50
KiBtX21lZGlhRWxlbWVudDsKKyAgICBIVE1MTWVkaWFFbGVtZW50JiBtX2VsZW1lbnQ7CiB9Owor
CiAjZW5kaWYKIAogc3RydWN0IEhUTUxNZWRpYUVsZW1lbnQ6OlRyYWNrR3JvdXAgewpAQCAtMTU1
NCw3ICsxNTU1LDcgQEAgc3RhdGljIGJvb2wgZXZlbnRUaW1lQ3VlQ29tcGFyZShjb25zdCBzdGQ6
OnBhaXI8TWVkaWFUaW1lLCBUZXh0VHJhY2tDdWUqPiYgYSwgY28KICAgICAvLyAxMiAtIEZ1cnRo
ZXIgc29ydCB0YXNrcyBpbiBldmVudHMgdGhhdCBoYXZlIHRoZSBzYW1lIHRpbWUgYnkgdGhlCiAg
ICAgLy8gcmVsYXRpdmUgdGV4dCB0cmFjayBjdWUgb3JkZXIgb2YgdGhlIHRleHQgdHJhY2sgY3Vl
cyBhc3NvY2lhdGVkCiAgICAgLy8gd2l0aCB0aGVzZSB0YXNrcy4KLSAgICByZXR1cm4gYS5zZWNv
bmQtPmN1ZUluZGV4KCkgLSBiLnNlY29uZC0+Y3VlSW5kZXgoKSA8IDA7CisgICAgcmV0dXJuIGEu
c2Vjb25kLT5pc09yZGVyZWRCZWZvcmUoYi5zZWNvbmQpOwogfQogCiBzdGF0aWMgYm9vbCBjb21w
YXJlQ3VlSW50ZXJ2YWwoY29uc3QgQ3VlSW50ZXJ2YWwmIG9uZSwgY29uc3QgQ3VlSW50ZXJ2YWwm
IHR3bykKQEAgLTE4MTcsMjIgKzE4MTgsMjEgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0
VHJhY2tSZWFkeVN0YXRlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQogICAgIH0KIH0KIAotdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjphdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayog
dHJhY2spCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChB
dWRpb1RyYWNrJiB0cmFjaykKIHsKLSAgICBBU1NFUlQodHJhY2spOwotICAgIGlmIChtX2F1ZGlv
VHJhY2tzICYmIG1fYXVkaW9UcmFja3MtPmNvbnRhaW5zKCp0cmFjaykpCisgICAgaWYgKG1fYXVk
aW9UcmFja3MgJiYgbV9hdWRpb1RyYWNrcy0+Y29udGFpbnModHJhY2spKQogICAgICAgICBtX2F1
ZGlvVHJhY2tzLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAgICAgaWYgKFNjcmlwdENvbnRyb2xs
ZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCiAgICAgICAgIHJlbW92ZUJlaGF2
aW9yc1Jlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZShNZWRpYUVsZW1lbnRTZXNzaW9u
OjpBbGxSZXN0cmljdGlvbnMgJiB+TWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0
dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50
Ojp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQordm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2smIHRyYWNrKQogewogICAgIGJv
b2wgdHJhY2tJc0xvYWRlZCA9IHRydWU7Ci0gICAgaWYgKHRyYWNrLT50cmFja1R5cGUoKSA9PSBU
ZXh0VHJhY2s6OlRyYWNrRWxlbWVudCkgeworICAgIGlmICh0cmFjay50cmFja1R5cGUoKSA9PSBU
ZXh0VHJhY2s6OlRyYWNrRWxlbWVudCkgewogICAgICAgICB0cmFja0lzTG9hZGVkID0gZmFsc2U7
CiAgICAgICAgIGZvciAoYXV0byYgdHJhY2tFbGVtZW50IDogY2hpbGRyZW5PZlR5cGU8SFRNTFRy
YWNrRWxlbWVudD4oKnRoaXMpKSB7Ci0gICAgICAgICAgICBpZiAoJnRyYWNrRWxlbWVudC50cmFj
aygpID09IHRyYWNrKSB7CisgICAgICAgICAgICBpZiAoJnRyYWNrRWxlbWVudC50cmFjaygpID09
ICZ0cmFjaykgewogICAgICAgICAgICAgICAgIGlmICh0cmFja0VsZW1lbnQucmVhZHlTdGF0ZSgp
ID09IEhUTUxUcmFja0VsZW1lbnQ6OkxPQURJTkcgfHwgdHJhY2tFbGVtZW50LnJlYWR5U3RhdGUo
KSA9PSBIVE1MVHJhY2tFbGVtZW50OjpMT0FERUQpCiAgICAgICAgICAgICAgICAgICAgIHRyYWNr
SXNMb2FkZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTg0NSwzMyArMTg0
NSwzMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRU
cmFjayogdHJhY2spCiAgICAgICAgIG1fdGV4dFRyYWNrcyA9IFRleHRUcmFja0xpc3Q6OmNyZWF0
ZSh0aGlzLCBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAg
CiAgICAgLy8gTWFyayB0aGlzIHRyYWNrIGFzICJjb25maWd1cmVkIiBzbyBjb25maWd1cmVUZXh0
VHJhY2tzIHdvbid0IGNoYW5nZSB0aGUgbW9kZSBhZ2Fpbi4KLSAgICB0cmFjay0+c2V0SGFzQmVl
bkNvbmZpZ3VyZWQodHJ1ZSk7CisgICAgdHJhY2suc2V0SGFzQmVlbkNvbmZpZ3VyZWQodHJ1ZSk7
CiAgICAgCi0gICAgaWYgKHRyYWNrLT5tb2RlKCkgIT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxl
ZCAmJiB0cmFja0lzTG9hZGVkKQotICAgICAgICB0ZXh0VHJhY2tBZGRDdWVzKHRyYWNrLCB0cmFj
ay0+Y3VlcygpKTsKKyAgICBpZiAodHJhY2subW9kZSgpICE9IFRleHRUcmFjazo6TW9kZTo6RGlz
YWJsZWQgJiYgdHJhY2tJc0xvYWRlZCkKKyAgICAgICAgdGV4dFRyYWNrQWRkQ3Vlcyh0cmFjaywg
KnRyYWNrLmN1ZXMoKSk7CiAKICAgICBjb25maWd1cmVUZXh0VHJhY2tEaXNwbGF5KEFzc3VtZVRl
eHRUcmFja1Zpc2liaWxpdHlDaGFuZ2VkKTsKIAotICAgIGlmIChtX3RleHRUcmFja3MgJiYgbV90
ZXh0VHJhY2tzLT5jb250YWlucygqdHJhY2spKQorICAgIGlmIChtX3RleHRUcmFja3MgJiYgbV90
ZXh0VHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fdGV4dFRyYWNrcy0+c2NoZWR1
bGVDaGFuZ2VFdmVudCgpOwogCiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKLSAgICBpZiAodHJh
Y2stPnRyYWNrVHlwZSgpID09IFRleHRUcmFjazo6VHJhY2tFbGVtZW50ICYmIG1fcGxheWVyKQor
ICAgIGlmICh0cmFjay50cmFja1R5cGUoKSA9PSBUZXh0VHJhY2s6OlRyYWNrRWxlbWVudCAmJiBt
X3BsYXllcikKICAgICAgICAgbV9wbGF5ZXItPm5vdGlmeVRyYWNrTW9kZUNoYW5nZWQoKTsKICNl
bmRpZgogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5n
ZWQoVmlkZW9UcmFjayogdHJhY2spCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnZpZGVvVHJhY2tT
ZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayYgdHJhY2spCiB7Ci0gICAgQVNTRVJUKHRyYWNrKTsK
LSAgICBpZiAobV92aWRlb1RyYWNrcyAmJiBtX3ZpZGVvVHJhY2tzLT5jb250YWlucygqdHJhY2sp
KQorICAgIGlmIChtX3ZpZGVvVHJhY2tzICYmIG1fdmlkZW9UcmFja3MtPmNvbnRhaW5zKHRyYWNr
KSkKICAgICAgICAgbV92aWRlb1RyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogfQogCi12
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayogdHJh
Y2spCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFj
ayYgdHJhY2spCiB7Ci0gICAgaWYgKHRyYWNrLT5raW5kKCkgIT0gVGV4dFRyYWNrOjpLaW5kOjpD
YXB0aW9ucyAmJiB0cmFjay0+a2luZCgpICE9IFRleHRUcmFjazo6S2luZDo6U3VidGl0bGVzICYm
IHRyYWNrLT5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpTaG93aW5nKQotICAgICAgICB0cmFj
ay0+c2V0TW9kZShUZXh0VHJhY2s6Ok1vZGU6OkhpZGRlbik7CisgICAgaWYgKHRyYWNrLmtpbmQo
KSAhPSBUZXh0VHJhY2s6OktpbmQ6OkNhcHRpb25zICYmIHRyYWNrLmtpbmQoKSAhPSBUZXh0VHJh
Y2s6OktpbmQ6OlN1YnRpdGxlcyAmJiB0cmFjay5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpT
aG93aW5nKQorICAgICAgICB0cmFjay5zZXRNb2RlKFRleHRUcmFjazo6TW9kZTo6SGlkZGVuKTsK
IH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpiZWdpbklnbm9yaW5nVHJhY2tEaXNwbGF5VXBk
YXRlUmVxdWVzdHMoKQpAQCAtMTg4NywyNiArMTg4NiwyOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OmVuZElnbm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKQogICAgICAgICB1cGRh
dGVBY3RpdmVUZXh0VHJhY2tDdWVzKGN1cnJlbnRNZWRpYVRpbWUoKSk7CiB9CiAKLXZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sqIHRyYWNrLCBjb25zdCBU
ZXh0VHJhY2tDdWVMaXN0KiBjdWVzKSAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNr
QWRkQ3VlcyhUZXh0VHJhY2smIHRyYWNrLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JiBjdWVzKQog
ewotICAgIGlmICh0cmFjay0+bW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQpCisg
ICAgaWYgKHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSBzY29wZSh0aGlzKTsKLSAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGN1ZXMtPmxlbmd0aCgpOyArK2kpCi0gICAgICAgIHRl
eHRUcmFja0FkZEN1ZSh0cmFjaywgKmN1ZXMtPml0ZW0oaSkpOworICAgIFRyYWNrRGlzcGxheVVw
ZGF0ZVNjb3BlIHNjb3BlIHsgKnRoaXMgfTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
Y3Vlcy5sZW5ndGgoKTsgKytpKQorICAgICAgICB0ZXh0VHJhY2tBZGRDdWUodHJhY2ssICpjdWVz
Lml0ZW0oaSkpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1
ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCogY3VlcykKK3ZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJh
Y2tDdWVMaXN0JiBjdWVzKQogewotICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlKHRo
aXMpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY3Vlcy0+bGVuZ3RoKCk7ICsraSkKLSAg
ICAgICAgdGV4dFRyYWNrUmVtb3ZlQ3VlKGN1ZXMtPml0ZW0oaSktPnRyYWNrKCksICpjdWVzLT5p
dGVtKGkpKTsKKyAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSBzY29wZSB7ICp0aGlzIH07Cisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGN1ZXMubGVuZ3RoKCk7ICsraSkgeworICAgICAg
ICBhdXRvJiBjdWUgPSAqY3Vlcy5pdGVtKGkpOworICAgICAgICB0ZXh0VHJhY2tSZW1vdmVDdWUo
KmN1ZS50cmFjaygpLCBjdWUpOworICAgIH0KIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0
ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0
VHJhY2tDdWUmIGN1ZSkKIHsKLSAgICBpZiAodHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1v
ZGU6OkRpc2FibGVkKQorICAgIGlmICh0cmFjay5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpE
aXNhYmxlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gTmVnYXRpdmUgZHVyYXRpb24gY3Vl
cyBuZWVkIGJlIHRyZWF0ZWQgaW4gdGhlIGludGVydmFsIHRyZWUgYXMKQEAgLTE5MTksNyArMTky
MCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayog
dHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogICAgIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMo
Y3VycmVudE1lZGlhVGltZSgpKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJh
Y2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmIGN1
ZSkKIHsKICAgICAvLyBOZWdhdGl2ZSBkdXJhdGlvbiBjdWVzIG5lZWQgdG8gYmUgdHJlYXRlZCBp
biB0aGUgaW50ZXJ2YWwgdHJlZSBhcwogICAgIC8vIHplcm8tbGVuZ3RoIGN1ZXMuCkBAIC0zMjEy
LDYgKzMyMTMsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBhdXNlSW50ZXJuYWwoKQogfQog
CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkZXRh
Y2hNZWRpYVNvdXJjZSgpCiB7CiAgICAgaWYgKCFtX21lZGlhU291cmNlKQpAQCAtMzIyMCw2ICsz
MjIyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpkZXRhY2hNZWRpYVNvdXJjZSgpCiAgICAg
bV9tZWRpYVNvdXJjZS0+ZGV0YWNoRnJvbUVsZW1lbnQoKnRoaXMpOwogICAgIG1fbWVkaWFTb3Vy
Y2UgPSBudWxscHRyOwogfQorCiAjZW5kaWYKIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojpsb29w
KCkgY29uc3QKQEAgLTM1MDgsMTQgKzM1MTEsMTQgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpt
ZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJhY2soQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrKQogICAg
IGlmIChpc1BsYXlpbmcoKSAmJiAhbV9tZWRpYVNlc3Npb24tPnBsYXliYWNrUGVybWl0dGVkKCp0
aGlzKSkKICAgICAgICAgcGF1c2VJbnRlcm5hbCgpOwogCi0gICAgYWRkQXVkaW9UcmFjayhBdWRp
b1RyYWNrOjpjcmVhdGUodGhpcywgJnRyYWNrKSk7CisgICAgYWRkQXVkaW9UcmFjayhBdWRpb1Ry
YWNrOjpjcmVhdGUoKnRoaXMsIHRyYWNrKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2soSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2sp
CiB7CiAgICAgLy8gNC44LjEwLjEyLjIgU291cmNpbmcgaW4tYmFuZCB0ZXh0IHRyYWNrcwogICAg
IC8vIDEuIEFzc29jaWF0ZSB0aGUgcmVsZXZhbnQgZGF0YSB3aXRoIGEgbmV3IHRleHQgdHJhY2sg
YW5kIGl0cyBjb3JyZXNwb25kaW5nIG5ldyBUZXh0VHJhY2sgb2JqZWN0LgotICAgIFJlZlB0cjxJ
bmJhbmRUZXh0VHJhY2s+IHRleHRUcmFjayA9IEluYmFuZFRleHRUcmFjazo6Y3JlYXRlKEFjdGl2
ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0aGlzLCAmdHJhY2spOworICAg
IGF1dG8gdGV4dFRyYWNrID0gSW5iYW5kVGV4dFRyYWNrOjpjcmVhdGUoKkFjdGl2ZURPTU9iamVj
dDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgdHJhY2spOwogICAgIHRleHRUcmFj
ay0+c2V0TWVkaWFFbGVtZW50KHRoaXMpOwogICAgIAogICAgIC8vIDIuIFNldCB0aGUgbmV3IHRl
eHQgdHJhY2sncyBraW5kLCBsYWJlbCwgYW5kIGxhbmd1YWdlIGJhc2VkIG9uIHRoZSBzZW1hbnRp
Y3Mgb2YgdGhlIHJlbGV2YW50IGRhdGEsCkBAIC0zNTQxLDEyICszNTQ0LDEyIEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2soSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZSYgdHJhY2spCiAgICAgLy8gOS4gRmlyZSBhbiBldmVudCB3aXRoIHRoZSBuYW1lIGFk
ZHRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMgbm90IGNhbmNlbGFibGUsIGFuZCB0
aGF0IHVzZXMgdGhlIFRyYWNrRXZlbnQKICAgICAvLyBpbnRlcmZhY2UsIHdpdGggdGhlIHRyYWNr
IGF0dHJpYnV0ZSBpbml0aWFsaXplZCB0byB0aGUgdGV4dCB0cmFjaydzIFRleHRUcmFjayBvYmpl
Y3QsIGF0IHRoZSBtZWRpYSBlbGVtZW50J3MKICAgICAvLyB0ZXh0VHJhY2tzIGF0dHJpYnV0ZSdz
IFRleHRUcmFja0xpc3Qgb2JqZWN0LgotICAgIGFkZFRleHRUcmFjayh0ZXh0VHJhY2sucmVsZWFz
ZU5vbk51bGwoKSk7CisgICAgYWRkVGV4dFRyYWNrKFdURk1vdmUodGV4dFRyYWNrKSk7CiB9CiAK
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRWaWRlb1RyYWNrKFZpZGVv
VHJhY2tQcml2YXRlJiB0cmFjaykKIHsKLSAgICBhZGRWaWRlb1RyYWNrKFZpZGVvVHJhY2s6OmNy
ZWF0ZSh0aGlzLCAmdHJhY2spKTsKKyAgICBhZGRWaWRlb1RyYWNrKFZpZGVvVHJhY2s6OmNyZWF0
ZSgqdGhpcywgdHJhY2spKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXll
ckRpZFJlbW92ZUF1ZGlvVHJhY2soQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrKQpAQCAtMzYwMyw5
ICszNjA2LDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVBdWRpb1RyYWNrKEF1ZGlv
VHJhY2smIHRyYWNrKQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZVRleHRUcmFjayhU
ZXh0VHJhY2smIHRyYWNrLCBib29sIHNjaGVkdWxlRXZlbnQpCiB7Ci0gICAgVHJhY2tEaXNwbGF5
VXBkYXRlU2NvcGUgc2NvcGUodGhpcyk7Ci0gICAgaWYgKFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMg
PSB0cmFjay5jdWVzKCkpCi0gICAgICAgIHRleHRUcmFja1JlbW92ZUN1ZXMoJnRyYWNrLCBjdWVz
KTsKKyAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSBzY29wZSB7ICp0aGlzIH07CisgICAgaWYg
KGF1dG8qIGN1ZXMgPSB0cmFjay5jdWVzKCkpCisgICAgICAgIHRleHRUcmFja1JlbW92ZUN1ZXMo
dHJhY2ssICpjdWVzKTsKICAgICB0cmFjay5jbGVhckNsaWVudCgpOwogICAgIGlmIChtX3RleHRU
cmFja3MpCiAgICAgICAgIG1fdGV4dFRyYWNrcy0+cmVtb3ZlKHRyYWNrLCBzY2hlZHVsZUV2ZW50
KTsKQEAgLTM2MjUsNyArMzYyOCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Zm9yZ2V0UmVz
b3VyY2VTcGVjaWZpY1RyYWNrcygpCiAgICAgICAgIHJlbW92ZUF1ZGlvVHJhY2soKm1fYXVkaW9U
cmFja3MtPmxhc3RJdGVtKCkpOwogCiAgICAgaWYgKG1fdGV4dFRyYWNrcykgewotICAgICAgICBU
cmFja0Rpc3BsYXlVcGRhdGVTY29wZSBzY29wZSh0aGlzKTsKKyAgICAgICAgVHJhY2tEaXNwbGF5
VXBkYXRlU2NvcGUgc2NvcGUgeyAqdGhpcyB9OwogICAgICAgICBmb3IgKGludCBpID0gbV90ZXh0
VHJhY2tzLT5sZW5ndGgoKSAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgICAgICBhdXRvJiB0
cmFjayA9ICptX3RleHRUcmFja3MtPml0ZW0oaSk7CiAgICAgICAgICAgICBpZiAodHJhY2sudHJh
Y2tUeXBlKCkgPT0gVGV4dFRyYWNrOjpJbkJhbmQpCkBAIC02MDc4LDEyICs2MDgxLDEyIEBAIE1l
ZGlhQ29udHJvbGxlciogSFRNTE1lZGlhRWxlbWVudDo6Y29udHJvbGxlcigpIGNvbnN0CiAgICAg
cmV0dXJuIG1fbWVkaWFDb250cm9sbGVyLmdldCgpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OnNldENvbnRyb2xsZXIoUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xsZXI+IGNvbnRyb2xsZXIp
Cit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldENvbnRyb2xsZXIoUmVmUHRyPE1lZGlhQ29udHJv
bGxlcj4mJiBjb250cm9sbGVyKQogewogICAgIGlmIChtX21lZGlhQ29udHJvbGxlcikKICAgICAg
ICAgbV9tZWRpYUNvbnRyb2xsZXItPnJlbW92ZU1lZGlhRWxlbWVudCgqdGhpcyk7CiAKLSAgICBt
X21lZGlhQ29udHJvbGxlciA9IGNvbnRyb2xsZXI7CisgICAgbV9tZWRpYUNvbnRyb2xsZXIgPSBX
VEZNb3ZlKGNvbnRyb2xsZXIpOwogCiAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyKQogICAgICAg
ICBtX21lZGlhQ29udHJvbGxlci0+YWRkTWVkaWFFbGVtZW50KCp0aGlzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggMDIzY2MzMzYyODMzZmE4MDYxOTlhNDEzMDNh
ZmYxOTA1Y2JmNjVkZi4uZjMyZDAyMThmYzBmNTczMGMxOGVkZGVhOWE4MzAyYjM3NWEyZjFhMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTI3LDEwICsyNywxMCBA
QAogCiAjaWYgRU5BQkxFKFZJREVPKQogCi0jaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNs
dWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgog
I2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnRFbnVtcy5oIgogI2luY2x1ZGUgIk1lZGlhQ2FuU3Rh
cnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oIgpAQCAt
NjksOSArNjksNyBAQCBjbGFzcyBNZWRpYUNvbnRyb2xzOwogY2xhc3MgTWVkaWFDb250cm9sc0hv
c3Q7CiBjbGFzcyBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU7CiBjbGFzcyBNZWRpYUVycm9y
OwotI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiBjbGFzcyBNZWRpYUtleXM7Ci0jZW5kaWYK
IGNsYXNzIE1lZGlhUGxheWVyOwogY2xhc3MgTWVkaWFTZXNzaW9uOwogY2xhc3MgTWVkaWFTb3Vy
Y2U7CkBAIC04MSw3ICs3OSw2IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFz
cyBTb3VyY2VCdWZmZXI7CiBjbGFzcyBUZXh0VHJhY2tMaXN0OwogY2xhc3MgVGltZVJhbmdlczsK
LWNsYXNzIFVSTDsKIGNsYXNzIFZpZGVvUGxheWJhY2tRdWFsaXR5OwogY2xhc3MgVmlkZW9UcmFj
a0xpc3Q7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKQEAgLTMzMSwyMCArMzI4LDIwIEBAIHB1
YmxpYzoKICAgICB2b2lkIHVwZGF0ZVRleHRUcmFja0Rpc3BsYXkoKTsKIAogICAgIC8vIEF1ZGlv
VHJhY2tDbGllbnQKLSAgICB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNr
Kikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFj
ayYpIGZpbmFsOwogCiAgICAgdm9pZCB0ZXh0VHJhY2tSZWFkeVN0YXRlQ2hhbmdlZChUZXh0VHJh
Y2sqKTsKIAogICAgIC8vIFRleHRUcmFja0NsaWVudAotICAgIHZvaWQgdGV4dFRyYWNrS2luZENo
YW5nZWQoVGV4dFRyYWNrKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdl
ZChUZXh0VHJhY2sqKSBvdmVycmlkZTsKLSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRy
YWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCopIG92ZXJyaWRlOwotICAgIHZvaWQgdGV4dFRy
YWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0Kikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwgVGV4dFRy
YWNrQ3VlJikgb3ZlcnJpZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJh
Y2smKSBvdmVycmlkZTsKKyAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYp
IG92ZXJyaWRlOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBU
ZXh0VHJhY2tDdWVMaXN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVz
KFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBvdmVycmlkZTsKKyAgICB2b2lk
IHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBvdmVy
cmlkZTsKIAogICAgIC8vIFZpZGVvVHJhY2tDbGllbnQKLSAgICB2b2lkIHZpZGVvVHJhY2tTZWxl
Y3RlZENoYW5nZWQoVmlkZW9UcmFjayopIG92ZXJyaWRlOworICAgIHZvaWQgdmlkZW9UcmFja1Nl
bGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrJikgZmluYWw7CiAKICAgICBib29sIHJlcXVpcmVzVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldFRleHRUcmFja1JlcHJl
c2VudGF0aW9uKFRleHRUcmFja1JlcHJlc2VudGF0aW9uKik7CkBAIC00MjIsNyArNDE5LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0TWVkaWFHcm91cChjb25zdCBTdHJpbmcmKTsKIAogICAgIE1l
ZGlhQ29udHJvbGxlciogY29udHJvbGxlcigpIGNvbnN0OwotICAgIHZvaWQgc2V0Q29udHJvbGxl
cihQYXNzUmVmUHRyPE1lZGlhQ29udHJvbGxlcj4pOworICAgIHZvaWQgc2V0Q29udHJvbGxlcihS
ZWZQdHI8TWVkaWFDb250cm9sbGVyPiYmKTsKIAogICAgIHZvaWQgZW50ZXJlZE9yRXhpdGVkRnVs
bHNjcmVlbigpIHsgY29uZmlndXJlTWVkaWFDb250cm9scygpOyB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggYmRlNmFlMjM1ZmQyZDQ0NzlkYWZiNjg5
NDBmNzE5YjAyYzM0OGNmMy4uZTIyNGJmZTBhZTg1OGVmMmE5YWVhZDRhZWU4NTQ0MjdmNTQ4MTFj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTUxOSwx
MSArNTE5LDYgQEAgYm9vbCBIVE1MT2JqZWN0RWxlbWVudDo6YXBwZW5kRm9ybURhdGEoRm9ybURh
dGFMaXN0JiBlbmNvZGluZywgYm9vbCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSFRNTEZvcm1F
bGVtZW50KiBIVE1MT2JqZWN0RWxlbWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAotewotICAgIHJl
dHVybiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm0oKTsKLX0KLQogYm9vbCBIVE1MT2JqZWN0
RWxlbWVudDo6Y2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdAogewogICAgIC8vIENhbGwg
dGhyb3VnaCB0byBIVE1MRWxlbWVudCBiZWNhdXNlIHdlIG5lZWQgdG8gc2tpcCBIVE1MUGx1Z0lu
RWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCmluZGV4IGUzYzU1
ZTRmMDU1MWU2YzZmNTlkZjQ3NzU3OGZmOTY4MjJkYWZlZDkuLmMxNWVlNGRlNDRmODdhNWUwOTRm
YzE3OGRlYTczZmRmMjhkMmJjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9iamVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVt
ZW50LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHVzaW5nIEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQ6OnJlZjsKICAgICB1c2luZyBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpkZXJlZjsK
IAotICAgIHVzaW5nIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybTsKKyAgICBIVE1MRm9ybUVs
ZW1lbnQqIGZvcm0oKSBjb25zdCBmaW5hbCB7IHJldHVybiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6
OmZvcm0oKTsgfQogCiBwcml2YXRlOgogICAgIEhUTUxPYmplY3RFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRlZEJ5UGFy
c2VyKTsKQEAgLTkxLDcgKzkxLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVmRm9ybUFzc29j
aWF0ZWRFbGVtZW50KCkgZmluYWwgeyByZWYoKTsgfQogICAgIHZvaWQgZGVyZWZGb3JtQXNzb2Np
YXRlZEVsZW1lbnQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KLSAgICBIVE1MRm9ybUVsZW1lbnQqIHZp
cnR1YWxGb3JtKCkgY29uc3QgZmluYWw7CiAKICAgICBGb3JtTmFtZWRJdGVtKiBhc0Zvcm1OYW1l
ZEl0ZW0oKSBmaW5hbCB7IHJldHVybiB0aGlzOyB9CiAgICAgSFRNTE9iamVjdEVsZW1lbnQmIGFz
SFRNTEVsZW1lbnQoKSBmaW5hbCB7IHJldHVybiAqdGhpczsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25FbGVtZW50LmNwcAppbmRleCA5YTMwNWZmMWY3MjYwMjJiNWYzZjcyMDMyNzhj
MDY2YmQ0MWY1OWZkLi41NWRiYTk3NWJkMzVkNTYzMmFhOTFjZTdmODUyOWEzZjdjZGRiNjBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcApAQCAtMzM0LDcgKzMz
NCw3IEBAIFN0cmluZyBIVE1MT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvbklubmVyVGV4dCgp
IGNvbnN0CiAgICAgICAgIGlmIChpczxUZXh0Pigqbm9kZSkpCiAgICAgICAgICAgICB0ZXh0LmFw
cGVuZChub2RlLT5ub2RlVmFsdWUoKSk7CiAgICAgICAgIC8vIFRleHQgbm9kZXMgaW5zaWRlIHNj
cmlwdCBlbGVtZW50cyBhcmUgbm90IHBhcnQgb2YgdGhlIG9wdGlvbiB0ZXh0LgotICAgICAgICBp
ZiAoaXM8RWxlbWVudD4oKm5vZGUpICYmIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZG93bmNh
c3Q8RWxlbWVudD4obm9kZSkpKQorICAgICAgICBpZiAoaXM8RWxlbWVudD4oKm5vZGUpICYmIGlz
U2NyaXB0RWxlbWVudChkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkpKQogICAgICAgICAgICAgbm9k
ZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKCpub2RlLCB0aGlzKTsKICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoKm5vZGUs
IHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAppbmRleCBh
ODY0ZTg3ZWFmZDQyODNlNTRmMWU0MGJmZWNmOTIyNWE1Y2I1ZGQ2Li45ZmU0MmU3NDljYTU3MmJl
MWIxOWVlMzIwNzNkYWIyY2Q1YjY3YzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVn
SW5FbGVtZW50LmNwcApAQCAtMTA4LDIxICsxMDgsMjAgQEAgdm9pZCBIVE1MUGx1Z0luRWxlbWVu
dDo6cmVzZXRJbnN0YW5jZSgpCiAgICAgbV9pbnN0YW5jZSA9IG51bGxwdHI7CiB9CiAKLVBhc3NS
ZWZQdHI8SlNDOjpCaW5kaW5nczo6SW5zdGFuY2U+IEhUTUxQbHVnSW5FbGVtZW50OjpnZXRJbnN0
YW5jZSgpCitKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZSogSFRNTFBsdWdJbkVsZW1lbnQ6OmJpbmRp
bmdzSW5zdGFuY2UoKQogewotICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsK
KyAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQot
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBJZiB0
aGUgaG9zdCBkeW5hbWljYWxseSB0dXJucyBvZmYgSmF2YVNjcmlwdCAob3IgSmF2YSkgd2Ugd2ls
bCBzdGlsbCByZXR1cm4KICAgICAvLyB0aGUgY2FjaGVkIGFsbG9jYXRlZCBCaW5kaW5nczo6SW5z
dGFuY2UuICBOb3Qgc3VwcG9ydGluZyB0aGlzIGVkZ2UtY2FzZSBpcyBPSy4KLSAgICBpZiAobV9p
bnN0YW5jZSkKLSAgICAgICAgcmV0dXJuIG1faW5zdGFuY2U7Ci0KLSAgICBpZiAoV2lkZ2V0KiB3
aWRnZXQgPSBwbHVnaW5XaWRnZXQoKSkKLSAgICAgICAgbV9pbnN0YW5jZSA9IGZyYW1lLT5zY3Jp
cHQoKS5jcmVhdGVTY3JpcHRJbnN0YW5jZUZvcldpZGdldCh3aWRnZXQpOwogCi0gICAgcmV0dXJu
IG1faW5zdGFuY2U7CisgICAgaWYgKCFtX2luc3RhbmNlKSB7CisgICAgICAgIGlmIChhdXRvKiB3
aWRnZXQgPSBwbHVnaW5XaWRnZXQoKSkKKyAgICAgICAgICAgIG1faW5zdGFuY2UgPSBmcmFtZS0+
c2NyaXB0KCkuY3JlYXRlU2NyaXB0SW5zdGFuY2VGb3JXaWRnZXQod2lkZ2V0KTsKKyAgICB9Cisg
ICAgcmV0dXJuIG1faW5zdGFuY2UuZ2V0KCk7CiB9CiAKIGJvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6
Omd1YXJkZWREaXNwYXRjaEJlZm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAppbmRleCA1YjhjNWFkNDI4MmFi
Zjk1YTA1MjYyOGIyOGZlOWQ0MDFhOWM3NzgzLi42MTdiZDY5MWQ2ZDZjZGFjZmRhM2MxYjFmODE3
NmVmNDdkOTdkMDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5F
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCkBA
IC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVzZXRJbnN0YW5jZSgpOwogCi0g
ICAgUGFzc1JlZlB0cjxKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZT4gZ2V0SW5zdGFuY2UoKTsKKyAg
ICBKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZSogYmluZGluZ3NJbnN0YW5jZSgpOwogCiAgICAgZW51
bSBjbGFzcyBQbHVnaW5Mb2FkaW5nUG9saWN5IHsgRG9Ob3RMb2FkLCBMb2FkIH07CiAgICAgV0VC
Q09SRV9FWFBPUlQgV2lkZ2V0KiBwbHVnaW5XaWRnZXQoUGx1Z2luTG9hZGluZ1BvbGljeSA9IFBs
dWdpbkxvYWRpbmdQb2xpY3k6OkxvYWQpIGNvbnN0OwpAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6
CiAgICAgfTsKICAgICBEaXNwbGF5U3RhdGUgZGlzcGxheVN0YXRlKCkgY29uc3QgeyByZXR1cm4g
bV9kaXNwbGF5U3RhdGU7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0RGlzcGxheVN0YXRlKERpc3Bs
YXlTdGF0ZSk7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1h
Z2U+KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU25hcHNob3QoSW1hZ2UqKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hQZW5kaW5nTW91c2VDbGljaygpIHsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc1Jlc3RhcnRlZFBsdWdpbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCmluZGV4IGZh
MjM0N2I2MGE5NjJiNjA1ZTNlNzk4NjUwYzEzMWE4YjJiMjVhODguLmM0Y2MzNDgwMzU2MWYyZDlh
ZTM2NWYzOTU2NjMzZmFiZTcyMzIzYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmNwcApAQCAtMTcxLDcgKzE3MSw3IEBAIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVuZGVyU3R5CiAKICAgICBpZiAoZGlzcGxheVN0YXRlKCkgPT0gRGlzcGxheWluZ1NuYXBzaG90
KSB7CiAgICAgICAgIGF1dG8gcmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gPSBjcmVhdGVSZW5kZXJl
cjxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbj4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKLSAgICAg
ICAgcmVuZGVyU25hcHNob3R0ZWRQbHVnSW4tPnVwZGF0ZVNuYXBzaG90KG1fc25hcHNob3RJbWFn
ZSk7CisgICAgICAgIHJlbmRlclNuYXBzaG90dGVkUGx1Z0luLT51cGRhdGVTbmFwc2hvdChtX3Nu
YXBzaG90SW1hZ2UuZ2V0KCkpOwogICAgICAgICByZXR1cm4gV1RGTW92ZShyZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbik7CiAgICAgfQogCkBAIC0zMDEsNyArMzAxLDcgQEAgdm9pZCBIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50OjpzdGFydExvYWRpbmdJbWFnZSgpCiAgICAgbV9pbWFnZUxvYWRlci0+dXBk
YXRlRnJvbUVsZW1lbnQoKTsKIH0KIAotdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRh
dGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKK3ZvaWQgSFRNTFBsdWdJbkltYWdl
RWxlbWVudDo6dXBkYXRlU25hcHNob3QoSW1hZ2UqIGltYWdlKQogewogICAgIGlmIChkaXNwbGF5
U3RhdGUoKSA+IERpc3BsYXlpbmdTbmFwc2hvdCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAppbmRleCBhM2Y3ZTEwOGNmOTJl
MDVhOWJiOGRhNGRhNjkyYWY0MDBmZDA2YTQ2Li4zMzcwNTY4Mzg2NWE2MThlMjkxODY4MmVmMmMx
ODcyNzY0OTkzMDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5J
bWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuaApAQCAtMTE4LDcgKzExOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWZhdWx0RXZl
bnRIYW5kbGVyKEV2ZW50JikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFBlbmRpbmdNb3VzZUNs
aWNrKCkgZmluYWw7CiAKLSAgICB2b2lkIHVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+
KSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZVNuYXBzaG90KEltYWdlKikgZmluYWw7CiAKICAgICB2
b2lkIHN0YXJ0TG9hZGluZ0ltYWdlKCk7CiAgICAgdm9pZCB1cGRhdGVXaWRnZXRJZk5lY2Vzc2Fy
eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IGYyYmQ1MjVj
NzRkZGQzZDdiOGExZmMxZTk2OTI1MmU4NjNjZGY1NzUuLmNmYzczMTU1NmEyMWY5OWZlZmVkMzM3
MDc4MDQxMjBiNjIzYWQwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNj
cmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50
LmgKQEAgLTQzLDYgKzQzLDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
Q3Jvc3NPcmlnaW4oY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3Ry
aW5nIGNyb3NzT3JpZ2luKCkgY29uc3Q7CiAKKyAgICB1c2luZyBIVE1MRWxlbWVudDo6cmVmOwor
ICAgIHVzaW5nIEhUTUxFbGVtZW50OjpkZXJlZjsKKwogcHJpdmF0ZToKICAgICBIVE1MU2NyaXB0
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVk
QnlQYXJzZXIsIGJvb2wgYWxyZWFkeVN0YXJ0ZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDdkYjkxNGY3MDZiM2E2
ZmFmOTQzNGE4ZjI0ZWUxMjE4MTVhNzRkZjIuLjBlYjkzOWQ5NDU3N2FkMzBmZTlmYTM2NGM3ODIw
YjYzZGRmNjllMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwCkBAIC00MjcsNyArNDI3LDcgQEAgc3RhdGljIGlubGluZSB2b2lk
IHNldENvbnRhaW5lckFuZE9mZnNldEZvclJhbmdlKE5vZGUqIG5vZGUsIGludCBvZmZzZXQsIE5v
ZGUqJgogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxSYW5nZT4gSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNlbGVjdGlvbigpIGNvbnN0CitSZWZQdHI8UmFuZ2U+IEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50OjpzZWxlY3Rpb24oKSBjb25zdAogewogICAgIGlmICghcmVuZGVyZXIoKSB8fCAh
aXNUZXh0Rm9ybUNvbnRyb2woKSB8fCAhaGFzQ2FjaGVkU2VsZWN0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5oCmluZGV4IDRhNjNlOTcxYWFiMWZlYjVkMzQ2ZGM0MjIzMWI2YjEyNjZjMGI2
M2YuLjZlNGQ5YjgxNDc4NWM1YWVhYWJlMTE1MzBkZGJiMTMxZWJmZDExMDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTc0LDcg
Kzc0LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgRXhjZXB0aW9uT3I8
dm9pZD4gc2V0UmFuZ2VUZXh0KGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnQsIHVuc2lnbmVkIHN0
YXJ0LCB1bnNpZ25lZCBlbmQsIGNvbnN0IFN0cmluZyYgc2VsZWN0aW9uTW9kZSk7CiAgICAgdm9p
ZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3RhcnQsIGludCBlbmQsIGNvbnN0IFN0cmluZyYgZGly
ZWN0aW9uLCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgPSBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvblJhbmdlKGlu
dCBzdGFydCwgaW50IGVuZCwgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uID0gU2VsZWN0aW9u
SGFzTm9EaXJlY3Rpb24sIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KCkpOwotICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHNlbGVjdGlvbigpIGNv
bnN0OworICAgIFJlZlB0cjxSYW5nZT4gc2VsZWN0aW9uKCkgY29uc3Q7CiAgICAgU3RyaW5nIHNl
bGVjdGVkVGV4dCgpIGNvbnN0OwogCiAgICAgdm9pZCBkaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdl
RXZlbnQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNr
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCmlu
ZGV4IDA3ZjQyZDk5ZjhkN2I0OGE5YmEyNDFiNGM0NzFkNTc5ZjU1ZThiZDUuLjIyY2QwZTdlYjRm
ZmNhZWVjN2JkMDViMWY0Zjc5Mzg5MTZlNTBjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VHJhY2tFbGVtZW50LmNwcApAQCAtMjc5LDQzICsyNzksNDMgQEAgY29uc3QgQXRvbWljU3RyaW5n
JiBIVE1MVHJhY2tFbGVtZW50OjptZWRpYUVsZW1lbnRDcm9zc09yaWdpbkF0dHJpYnV0ZSgpIGNv
bnN0CiAgICAgcmV0dXJuIG51bGxBdG9tOwogfQogCi12b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRl
eHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIEhUTUxUcmFja0VsZW1l
bnQ6OnRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7Ci0gICAgaWYgKEhU
TUxNZWRpYUVsZW1lbnQqIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQorICAgIGlmIChhdXRvKiBw
YXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tLaW5kQ2hh
bmdlZCh0cmFjayk7CiB9CiAKLXZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNo
YW5nZWQoVGV4dFRyYWNrKiB0cmFjaykKK3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNr
TW9kZUNoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykKIHsKICAgICAvLyBTaW5jZSB3ZSd2ZSBtb3Zl
ZCB0byBhIG5ldyBwYXJlbnQsIHdlIG1heSBub3cgYmUgYWJsZSB0byBsb2FkLgogICAgIGlmIChy
ZWFkeVN0YXRlKCkgPT0gSFRNTFRyYWNrRWxlbWVudDo6Tk9ORSkKICAgICAgICAgc2NoZWR1bGVM
b2FkKCk7CiAKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50
KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJl
bnQtPnRleHRUcmFja01vZGVDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBIVE1MVHJhY2tFbGVt
ZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayogdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1
ZUxpc3QqIGN1ZXMpCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMoVGV4
dFRyYWNrJiB0cmFjaywgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAgICBpZiAo
SFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8q
IHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja0FkZEN1
ZXModHJhY2ssIGN1ZXMpOwogfQogICAgIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJh
Y2tSZW1vdmVDdWVzKFRleHRUcmFjayogdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1
ZXMpCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNr
JiB0cmFjaywgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAgICBpZiAoSFRNTE1l
ZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVu
dCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja1JlbW92ZUN1ZXMo
dHJhY2ssIGN1ZXMpOwogfQogICAgIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tB
ZGRDdWUoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIEhUTUxUcmFj
a0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUm
IGN1ZSkKIHsKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50
KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJl
bnQtPnRleHRUcmFja0FkZEN1ZSh0cmFjaywgY3VlKTsKIH0KICAgICAKLXZvaWQgSFRNTFRyYWNr
RWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1
ZSYgY3VlKQordm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRy
YWNrJiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCiB7Ci0gICAgaWYgKEhUTUxNZWRpYUVsZW1l
bnQqIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQorICAgIGlmIChhdXRvKiBwYXJlbnQgPSBtZWRp
YUVsZW1lbnQoKSkKICAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUodHJhY2ssIGN1
ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKaW5kZXggOWI0MjVk
Y2Q4NWQxZTBkNGYzNjBjODZkMmVhNjJkMTkwOGU0YjdiMC4uNzQ5ZWQxYjRlNzA4ZGZlMTU2NTgx
ZmQwZjhkOTdkNTVjNjQ1OGY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VHJhY2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50
LmgKQEAgLTc0LDEyICs3NCwxMiBAQCBwcml2YXRlOgogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1l
ZGlhRWxlbWVudCgpIGNvbnN0OwogCiAgICAgLy8gVGV4dFRyYWNrQ2xpZW50Ci0gICAgdm9pZCB0
ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFj
a0tpbmRDaGFuZ2VkKFRleHRUcmFjayopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3Vl
cyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KikgZmluYWw7Ci0gICAgdm9pZCB0
ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBm
aW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUm
KSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2sqLCBUZXh0VHJh
Y2tDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYp
IGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJikgZmluYWw7
CisgICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1
ZUxpc3QmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwg
Y29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3Vl
KFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrUmVt
b3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5M
b2FkVVJMKGNvbnN0IFVSTCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggZjZh
NmJiYzQ2NGI5YWZhMzhkNTdiNGQxZWM0N2NmM2NjYTkyNjZkNC4uMzcxNzVkYzQ2MzUyNzdhZThm
OGIzMjhhYzQ5NmIzMzAzZjBjYjg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAt
NDgyLDExICs0ODIsNiBAQCBib29sIElucHV0VHlwZTo6c2hvdWxkU3VibWl0SW1wbGljaXRseShF
dmVudCYgZXZlbnQpCiAgICAgcmV0dXJuIGlzPEtleWJvYXJkRXZlbnQ+KGV2ZW50KSAmJiBldmVu
dC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQgJiYgZG93bmNhc3Q8S2V5Ym9h
cmRFdmVudD4oZXZlbnQpLmNoYXJDb2RlKCkgPT0gJ1xyJzsKIH0KIAotUGFzc1JlZlB0cjxIVE1M
Rm9ybUVsZW1lbnQ+IElucHV0VHlwZTo6Zm9ybUZvclN1Ym1pc3Npb24oKSBjb25zdAotewotICAg
IHJldHVybiBlbGVtZW50KCkuZm9ybSgpOwotfQotCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
SW5wdXRUeXBlOjpjcmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUpCiB7CiAg
ICAgcmV0dXJuIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PihSZW5kZXJFbGVtZW50OjpjcmVhdGVG
b3IoZWxlbWVudCgpLCBXVEZNb3ZlKHN0eWxlKSkpOwpAQCAtNTUxLDcgKzU0Niw3IEBAIENocm9t
ZSogSW5wdXRUeXBlOjpjaHJvbWUoKSBjb25zdAogewogICAgIGlmIChQYWdlKiBwYWdlID0gZWxl
bWVudCgpLmRvY3VtZW50KCkucGFnZSgpKQogICAgICAgICByZXR1cm4gJnBhZ2UtPmNocm9tZSgp
OwotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBib29sIElucHV0VHlw
ZTo6Y2FuU2V0U3RyaW5nVmFsdWUoKSBjb25zdApAQCAtNjM2LDcgKzYzMSw3IEBAIGJvb2wgSW5w
dXRUeXBlOjpjYW5CZVN1Y2Nlc3NmdWxTdWJtaXRCdXR0b24oKQogCiBIVE1MRWxlbWVudCogSW5w
dXRUeXBlOjpwbGFjZWhvbGRlckVsZW1lbnQoKSBjb25zdAogewotICAgIHJldHVybiAwOworICAg
IHJldHVybiBudWxscHRyOwogfQogCiBib29sIElucHV0VHlwZTo6cmVuZGVyZXJJc05lZWRlZCgp
CkBAIC02NDYsMTAgKzY0MSwxMCBAQCBib29sIElucHV0VHlwZTo6cmVuZGVyZXJJc05lZWRlZCgp
CiAKIEZpbGVMaXN0KiBJbnB1dFR5cGU6OmZpbGVzKCkKIHsKLSAgICByZXR1cm4gMDsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8
RmlsZUxpc3Q+KQordm9pZCBJbnB1dFR5cGU6OnNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4mJikK
IHsKIH0KIApAQCAtNzMxLDI1ICs3MjYsMjkgQEAgU3RyaW5nIElucHV0VHlwZTo6c2FuaXRpemVW
YWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpIGNvbnN0CiB9CiAKICNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQorCiBib29sIElucHV0VHlwZTo6cmVjZWl2ZURyb3BwZWRGaWxlcyhjb25z
dCBEcmFnRGF0YSYpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZh
bHNlOwogfQorCiAjZW5kaWYKIAogSWNvbiogSW5wdXRUeXBlOjppY29uKCkgY29uc3QKIHsKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKKwogU3RyaW5nIElucHV0VHlwZTo6ZGlzcGxheVN0
cmluZygpIGNvbnN0CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFN0
cmluZygpOwogfQorCiAjZW5kaWYKIAogYm9vbCBJbnB1dFR5cGU6OnNob3VsZFJlc2V0T25Eb2N1
bWVudEFjdGl2YXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggYzRiZTczZDQwMDRk
NjhkOTEzMGI5YWI5NDZhMTcwMGU3MDMzZGUyNC4uMmYxYzMyOTdhZjA3ODZkZWRhNDJjZWNlYzk0
NWVhYTJkYjkwZmQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC0xOTIsNyArMTkyLDYg
QEAgcHVibGljOgogICAgIC8vIEhlbHBlcnMgZm9yIGV2ZW50IGhhbmRsZXJzLgogCiAgICAgdmly
dHVhbCBib29sIHNob3VsZFN1Ym1pdEltcGxpY2l0bHkoRXZlbnQmKTsKLSAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBmb3JtRm9yU3VibWlzc2lvbigpIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCBoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3Q7CiAgICAgdmlydHVhbCBi
b29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCYpIGNvbnN0OwogICAgIHZpcnR1
YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Q7CkBAIC0yMzksNyArMjM4LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBtYXhSZXN1bHRzQXR0cmlidXRlQ2hhbmdlZCgpOwogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0QWxpZ25BdHRyaWJ1dGUoKTsKICAgICB2aXJ0dWFs
IEZpbGVMaXN0KiBmaWxlcygpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRy
PEZpbGVMaXN0Pik7CisgICAgdmlydHVhbCB2b2lkIHNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4m
Jik7CiAgICAgdmlydHVhbCBJY29uKiBpY29uKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHNo
b3VsZFNlbmRDaGFuZ2VFdmVudEFmdGVyQ2hlY2tlZENoYW5nZWQoKTsKICAgICB2aXJ0dWFsIGJv
b2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9j
dW1lbnQuY3BwCmluZGV4IGYzNTFmOTc5NTE1ZjVjZWM5YTQ5OTRlMGQ3NWQwMWRjNDIxODk2MDUu
LmRjY2U5ZDM4YTg3NWE1MjllODE5NzE2YzhiNzEwYTUxNTNhYTc3MzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBQbHVnaW5E
b2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQogICAgIGlmIChhdXRvKiBs
b2FkZXIgPSBkb2N1bWVudC5sb2FkZXIoKSkKICAgICAgICAgbV9lbWJlZEVsZW1lbnQtPnNldEF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24odHlwZUF0dHIsIGxvYWRlci0+d3JpdGVyKCku
bWltZVR5cGUoKSk7CiAKLSAgICBkb2N1bWVudC5zZXRQbHVnaW5FbGVtZW50KG1fZW1iZWRFbGVt
ZW50KTsKKyAgICBkb2N1bWVudC5zZXRQbHVnaW5FbGVtZW50KCptX2VtYmVkRWxlbWVudCk7CiAK
ICAgICBib2R5LT5hcHBlbmRDaGlsZChlbWJlZEVsZW1lbnQpOwogfQpAQCAtMTYwLDkgKzE2MCw5
IEBAIFdpZGdldCogUGx1Z2luRG9jdW1lbnQ6OnBsdWdpbldpZGdldCgpCiAgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKLXZvaWQgUGx1Z2luRG9jdW1lbnQ6OnNldFBsdWdpbkVsZW1lbnQoUGFzc1Jl
ZlB0cjxIVE1MUGx1Z0luRWxlbWVudD4gZWxlbWVudCkKK3ZvaWQgUGx1Z2luRG9jdW1lbnQ6OnNl
dFBsdWdpbkVsZW1lbnQoSFRNTFBsdWdJbkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9wbHVn
aW5FbGVtZW50ID0gZWxlbWVudDsKKyAgICBtX3BsdWdpbkVsZW1lbnQgPSAmZWxlbWVudDsKIH0K
IAogdm9pZCBQbHVnaW5Eb2N1bWVudDo6ZGV0YWNoRnJvbVBsdWdpbkVsZW1lbnQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oCmluZGV4IDNjZDA2MTI1NTBmNmY4ZmJlOTZjODliNWI1
ZmI1ZTU2MTQzYzVmN2UuLmJlZmU1MWZjYWY1M2U0MzJhZTJlZDRkM2JjOTQ1YTg1ZDNkMDFmYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQbHVnaW5Eb2N1bWVudChmcmFtZSwg
dXJsKSk7CiAgICAgfQogCi0gICAgdm9pZCBzZXRQbHVnaW5FbGVtZW50KFBhc3NSZWZQdHI8SFRN
TFBsdWdJbkVsZW1lbnQ+KTsKKyAgICB2b2lkIHNldFBsdWdpbkVsZW1lbnQoSFRNTFBsdWdJbkVs
ZW1lbnQmKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFdpZGdldCogcGx1Z2luV2lkZ2V0KCk7CiAg
ICAgSFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdpbkVsZW1lbnQoKSB7IHJldHVybiBtX3BsdWdpbkVs
ZW1lbnQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmluZGV4IDk0ZThiNGRjZWM0NGZkOGZlNmFhOTIx
NGQ1NWQ5NTliNTg3MTlkZTUuLjZkYjI4Mjk5MmY0YTM3M2U0ZjhkNjk5YjgwOWI3MDI3MDU0NDZm
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmNwcApAQCAtNDE3LDcgKzQxNyw3IEBAIHZvaWQgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpzZXRTdHJva2VTdHlsZShDYW52YXNTdHlsZSBzdHlsZSkKICAgICBHcmFw
aGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAg
cmV0dXJuOwotICAgIHN0YXRlLnN0cm9rZVN0eWxlLmFwcGx5U3Ryb2tlQ29sb3IoYyk7CisgICAg
c3RhdGUuc3Ryb2tlU3R5bGUuYXBwbHlTdHJva2VDb2xvcigqYyk7CiAgICAgc3RhdGUudW5wYXJz
ZWRTdHJva2VDb2xvciA9IFN0cmluZygpOwogfQogCkBAIC00NDQsNyArNDQ0LDcgQEAgdm9pZCBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldEZpbGxTdHlsZShDYW52YXNTdHlsZSBzdHlsZSkK
ICAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykK
ICAgICAgICAgcmV0dXJuOwotICAgIHN0YXRlLmZpbGxTdHlsZS5hcHBseUZpbGxDb2xvcihjKTsK
KyAgICBzdGF0ZS5maWxsU3R5bGUuYXBwbHlGaWxsQ29sb3IoKmMpOwogICAgIHN0YXRlLnVucGFy
c2VkRmlsbENvbG9yID0gU3RyaW5nKCk7CiB9CiAKQEAgLTI0NDUsNyArMjQ0NSw3IEBAIHZvaWQg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYg
dGV4dCwgZmxvYXQgeCwgZmxvCiAKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBz
dGF0ZVNhdmVyKCpjKTsKICAgICAgICAgYy0+Y2xpcFRvSW1hZ2VCdWZmZXIoKm1hc2tJbWFnZSwg
bWFza1JlY3QpOwotICAgICAgICBkcmF3U3R5bGUuYXBwbHlGaWxsQ29sb3IoYyk7CisgICAgICAg
IGRyYXdTdHlsZS5hcHBseUZpbGxDb2xvcigqYyk7CiAgICAgICAgIGMtPmZpbGxSZWN0KG1hc2tS
ZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1N0eWxlLmNwcAppbmRleCA5YWEwYTA1MmY0NjFhZDZiMmM1ZWFjNmFmZWMzMjMxNTY1
ZTAyMTM2Li5iY2JlMmEwNTRjNDlhYTE0ZTZkMTkzNmYzYjc0ZTI2MjllZjM3MmQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwCkBAIC01Myw3ICs1Myw2IEBA
IHN0YXRpYyBDb2xvciBwYXJzZUNvbG9yKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIERvY3Vt
ZW50KiBkb2N1bWVudCA9IG51bGxwdHIpCiAgICAgQ29sb3IgY29sb3IgPSBDU1NQYXJzZXI6OnBh
cnNlQ29sb3IoY29sb3JTdHJpbmcpOwogICAgIGlmIChjb2xvci5pc1ZhbGlkKCkpCiAgICAgICAg
IHJldHVybiBjb2xvcjsKLQogICAgIHJldHVybiBDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3Io
Y29sb3JTdHJpbmcsIGRvY3VtZW50KTsKIH0KIApAQCAtNzYsMjA4ICs3NSwxNTAgQEAgQ29sb3Ig
cGFyc2VDb2xvck9yQ3VycmVudENvbG9yKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIEhUTUxD
YW52YXNFbGVtZW50KiBjYW4KIH0KIAogQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKENvbG9yIGNv
bG9yKQotICAgIDogbV9jb2xvcihjb2xvcikKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDogbV9z
dHlsZShjb2xvcikKIHsKIH0KIAogQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGZsb2F0IGdyYXlM
ZXZlbCwgZmxvYXQgYWxwaGEpCi0gICAgOiBtX2NvbG9yKENvbG9yKGdyYXlMZXZlbCwgZ3JheUxl
dmVsLCBncmF5TGV2ZWwsIGFscGhhKSkKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDogbV9zdHls
ZShDb2xvciB7IGdyYXlMZXZlbCwgZ3JheUxldmVsLCBncmF5TGV2ZWwsIGFscGhhIH0pCiB7CiB9
CiAKIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBm
bG9hdCBhKQotICAgIDogbV9jb2xvcihDb2xvcihyLCBnLCBiLCBhKSkKLSAgICAsIG1fdHlwZShS
R0JBKQorICAgIDogbV9zdHlsZShDb2xvciB7IHIsIGcsIGIsIGEgfSkKIHsKIH0KIAogQ2FudmFz
U3R5bGU6OkNhbnZhc1N0eWxlKGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZs
b2F0IGEpCi0gICAgOiBtX2NteWthKG5ldyBDTVlLQVZhbHVlcyhDb2xvcihjLCBtLCB5LCBrLCBh
KSwgYywgbSwgeSwgaywgYSkpCi0gICAgLCBtX3R5cGUoQ01ZS0EpCisgICAgOiBtX3N0eWxlKENN
WUtBQ29sb3IgeyBDb2xvciB7IGMsIG0sIHksIGssIGEgfSwgYywgbSwgeSwgaywgYSB9KQogewog
fQogCi1DYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoUGFzc1JlZlB0cjxDYW52YXNHcmFkaWVudD4g
Z3JhZGllbnQpCi0gICAgOiBtX2dyYWRpZW50KGdyYWRpZW50LmxlYWtSZWYoKSkKLSAgICAsIG1f
dHlwZShHcmFkaWVudCkKK0NhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShDYW52YXNHcmFkaWVudCYg
Z3JhZGllbnQpCisgICAgOiBtX3N0eWxlKG1ha2VSZWZQdHIoZ3JhZGllbnQpKQogewotICAgIGlm
ICghbV9ncmFkaWVudCkKLSAgICAgICAgbV90eXBlID0gSW52YWxpZDsKIH0KIAotQ2FudmFzU3R5
bGU6OkNhbnZhc1N0eWxlKFBhc3NSZWZQdHI8Q2FudmFzUGF0dGVybj4gcGF0dGVybikKLSAgICA6
IG1fcGF0dGVybihwYXR0ZXJuLmxlYWtSZWYoKSkKLSAgICAsIG1fdHlwZShJbWFnZVBhdHRlcm4p
CitDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoQ2FudmFzUGF0dGVybiYgcGF0dGVybikKKyAgICA6
IG1fc3R5bGUobWFrZVJlZlB0cihwYXR0ZXJuKSkKIHsKLSAgICBpZiAoIW1fcGF0dGVybikKLSAg
ICAgICAgbV90eXBlID0gSW52YWxpZDsKIH0KIAotQ2FudmFzU3R5bGU6On5DYW52YXNTdHlsZSgp
CitpbmxpbmUgQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKEN1cnJlbnRDb2xvciBjb2xvcikKKyAg
ICA6IG1fc3R5bGUoY29sb3IpCiB7Ci0gICAgaWYgKG1fdHlwZSA9PSBHcmFkaWVudCkKLSAgICAg
ICAgbV9ncmFkaWVudC0+ZGVyZWYoKTsKLSAgICBlbHNlIGlmIChtX3R5cGUgPT0gSW1hZ2VQYXR0
ZXJuKQotICAgICAgICBtX3BhdHRlcm4tPmRlcmVmKCk7Ci0gICAgZWxzZSBpZiAobV90eXBlID09
IENNWUtBKQotICAgICAgICBkZWxldGUgbV9jbXlrYTsKIH0KIAogQ2FudmFzU3R5bGUgQ2FudmFz
U3R5bGU6OmNyZWF0ZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZywgRG9jdW1l
bnQqIGRvY3VtZW50KQogewogICAgIGlmIChpc0N1cnJlbnRDb2xvclN0cmluZyhjb2xvclN0cmlu
ZykpCi0gICAgICAgIHJldHVybiBDYW52YXNTdHlsZShDb25zdHJ1Y3RDdXJyZW50Q29sb3IpOwor
ICAgICAgICByZXR1cm4gQ3VycmVudENvbG9yIHsgc3RkOjpudWxsb3B0IH07CiAKICAgICBDb2xv
ciBjb2xvciA9IHBhcnNlQ29sb3IoY29sb3JTdHJpbmcsIGRvY3VtZW50KTsKLSAgICBpZiAoY29s
b3IuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUoY29sb3IpOworICAgIGlm
ICghY29sb3IuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIENh
bnZhc1N0eWxlKCk7CisgICAgcmV0dXJuIGNvbG9yOwogfQogCiBDYW52YXNTdHlsZSBDYW52YXNT
dHlsZTo6Y3JlYXRlRnJvbVN0cmluZ1dpdGhPdmVycmlkZUFscGhhKGNvbnN0IFN0cmluZyYgY29s
b3JTdHJpbmcsIGZsb2F0IGFscGhhKQogewogICAgIGlmIChpc0N1cnJlbnRDb2xvclN0cmluZyhj
b2xvclN0cmluZykpCi0gICAgICAgIHJldHVybiBDYW52YXNTdHlsZShDdXJyZW50Q29sb3JXaXRo
T3ZlcnJpZGVBbHBoYSwgYWxwaGEpOworICAgICAgICByZXR1cm4gQ3VycmVudENvbG9yIHsgYWxw
aGEgfTsKIAogICAgIENvbG9yIGNvbG9yID0gcGFyc2VDb2xvcihjb2xvclN0cmluZyk7Ci0gICAg
aWYgKGNvbG9yLmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIENhbnZhc1N0eWxlKGNvbG9yV2l0
aE92ZXJyaWRlQWxwaGEoY29sb3IucmdiKCksIGFscGhhKSk7CisgICAgaWYgKCFjb2xvci5pc1Zh
bGlkKCkpCisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gQ2FudmFzU3R5bGUoKTsK
KyAgICByZXR1cm4gQ29sb3IgeyBjb2xvcldpdGhPdmVycmlkZUFscGhhKGNvbG9yLnJnYigpLCBh
bHBoYSkgfTsKIH0KIAogYm9vbCBDYW52YXNTdHlsZTo6aXNFcXVpdmFsZW50Q29sb3IoY29uc3Qg
Q2FudmFzU3R5bGUmIG90aGVyKSBjb25zdAogewotICAgIGlmIChtX3R5cGUgIT0gb3RoZXIubV90
eXBlKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJuYXRp
dmU8Q29sb3I+KG1fc3R5bGUpICYmIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG90aGVy
Lm1fc3R5bGUpKQorICAgICAgICByZXR1cm4gV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpID09IFdU
Rjo6Z2V0PENvbG9yPihvdGhlci5tX3N0eWxlKTsKIAotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0g
ICAgY2FzZSBSR0JBOgotICAgICAgICByZXR1cm4gbV9jb2xvciA9PSBvdGhlci5tX2NvbG9yOwot
ICAgIGNhc2UgQ01ZS0E6Ci0gICAgICAgIHJldHVybiBtX2NteWthLT5jID09IG90aGVyLm1fY215
a2EtPmMKLSAgICAgICAgICAgICYmIG1fY215a2EtPm0gPT0gb3RoZXIubV9jbXlrYS0+bQotICAg
ICAgICAgICAgJiYgbV9jbXlrYS0+eSA9PSBvdGhlci5tX2NteWthLT55Ci0gICAgICAgICAgICAm
JiBtX2NteWthLT5rID09IG90aGVyLm1fY215a2EtPmsKLSAgICAgICAgICAgICYmIG1fY215a2Et
PmEgPT0gb3RoZXIubV9jbXlrYS0+YTsKLSAgICBjYXNlIEdyYWRpZW50OgotICAgIGNhc2UgSW1h
Z2VQYXR0ZXJuOgotICAgIGNhc2UgQ3VycmVudENvbG9yOgotICAgIGNhc2UgQ3VycmVudENvbG9y
V2l0aE92ZXJyaWRlQWxwaGE6Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjYXNlIEludmFs
aWQ6Ci0gICAgICAgIGJyZWFrOworICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENNWUtB
Q29sb3I+KG1fc3R5bGUpICYmIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q01ZS0FDb2xvcj4ob3Ro
ZXIubV9zdHlsZSkpIHsKKyAgICAgICAgYXV0byYgYSA9IFdURjo6Z2V0PENNWUtBQ29sb3I+KG1f
c3R5bGUpOworICAgICAgICBhdXRvJiBiID0gV1RGOjpnZXQ8Q01ZS0FDb2xvcj4ob3RoZXIubV9z
dHlsZSk7CisgICAgICAgIHJldHVybiBhLmMgPT0gYi5jICYmIGEubSA9PSBiLm0gJiYgYS55ID09
IGIueSAmJiBhLmsgPT0gYi5rICYmIGEuYSA9PSBiLmE7CiAgICAgfQogCi0gICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIENhbnZhc1N0eWxlOjpp
c0VxdWl2YWxlbnRSR0JBKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGEpIGNvbnN0
CiB7Ci0gICAgaWYgKG1fdHlwZSAhPSBSR0JBKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICByZXR1cm4gbV9jb2xvciA9PSBDb2xvcihyLCBnLCBiLCBhKTsKKyAgICByZXR1cm4gV1RGOjpo
b2xkc19hbHRlcm5hdGl2ZTxDb2xvcj4obV9zdHlsZSkgJiYgV1RGOjpnZXQ8Q29sb3I+KG1fc3R5
bGUpID09IENvbG9yIHsgciwgZywgYiwgYSB9OwogfQogCiBib29sIENhbnZhc1N0eWxlOjppc0Vx
dWl2YWxlbnRDTVlLQShmbG9hdCBjLCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBh
KSBjb25zdAogewotICAgIGlmIChtX3R5cGUgIT0gQ01ZS0EpCisgICAgaWYgKCFXVEY6OmhvbGRz
X2FsdGVybmF0aXZlPENNWUtBQ29sb3I+KG1fc3R5bGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICByZXR1cm4gYyA9PSBtX2NteWthLT5jCi0gICAgICAgICYmIG0gPT0gbV9jbXlrYS0+
bQotICAgICAgICAmJiB5ID09IG1fY215a2EtPnkKLSAgICAgICAgJiYgayA9PSBtX2NteWthLT5r
Ci0gICAgICAgICYmIGEgPT0gbV9jbXlrYS0+YTsKLX0KLQotQ2FudmFzU3R5bGU6OkNhbnZhc1N0
eWxlKGNvbnN0IENhbnZhc1N0eWxlJiBvdGhlcikKLXsKLSAgICBtZW1jcHkodGhpcywgJm90aGVy
LCBzaXplb2YoQ2FudmFzU3R5bGUpKTsKLSAgICBpZiAobV90eXBlID09IEdyYWRpZW50KQotICAg
ICAgICBtX2dyYWRpZW50LT5yZWYoKTsKLSAgICBlbHNlIGlmIChtX3R5cGUgPT0gSW1hZ2VQYXR0
ZXJuKQotICAgICAgICBtX3BhdHRlcm4tPnJlZigpOwotICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBD
TVlLQSkKLSAgICAgICAgbV9jbXlrYSA9IG5ldyBDTVlLQVZhbHVlcyhvdGhlci5tX2NteWthLT5j
b2xvciwgb3RoZXIubV9jbXlrYS0+Yywgb3RoZXIubV9jbXlrYS0+bSwgb3RoZXIubV9jbXlrYS0+
eSwgb3RoZXIubV9jbXlrYS0+aywgb3RoZXIubV9jbXlrYS0+YSk7Ci19Ci0KLUNhbnZhc1N0eWxl
JiBDYW52YXNTdHlsZTo6b3BlcmF0b3I9KGNvbnN0IENhbnZhc1N0eWxlJiBvdGhlcikKLXsKLSAg
ICBpZiAodGhpcyAhPSAmb3RoZXIpIHsKLSAgICAgICAgdGhpcy0+fkNhbnZhc1N0eWxlKCk7Ci0g
ICAgICAgIG5ldyAodGhpcykgQ2FudmFzU3R5bGUob3RoZXIpOwotICAgIH0KLSAgICByZXR1cm4g
KnRoaXM7CisgICAgYXV0byYgY2hhbm5lbHMgPSBXVEY6OmdldDxDTVlLQUNvbG9yPihtX3N0eWxl
KTsKKyAgICByZXR1cm4gYyA9PSBjaGFubmVscy5jICYmIG0gPT0gY2hhbm5lbHMubSAmJiB5ID09
IGNoYW5uZWxzLnkgJiYgayA9PSBjaGFubmVscy5rICYmIGEgPT0gY2hhbm5lbHMuYTsKIH0KIAot
dm9pZCBDYW52YXNTdHlsZTo6YXBwbHlTdHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQpIGNvbnN0Cit2b2lkIENhbnZhc1N0eWxlOjphcHBseVN0cm9rZUNvbG9yKEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCkgY29uc3QKIHsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVy
bjsKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgUkdCQToKLSAgICAgICAgY29udGV4
dC0+c2V0U3Ryb2tlQ29sb3IobV9jb2xvcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ01Z
S0E6IHsKLSAgICAgICAgLy8gRklYTUU6IERvIHRoaXMgdGhyb3VnaCBwbGF0Zm9ybS1pbmRlcGVu
ZGVudCBHcmFwaGljc0NvbnRleHQgQVBJLgotICAgICAgICAvLyBXZSdsbCBuZWVkIGEgZmFuY2ll
ciBDb2xvciBhYnN0cmFjdGlvbiB0byBzdXBwb3J0IENNWUtBIGNvcnJlY3RseQorICAgIFdURjo6
c3dpdGNoT24obV9zdHlsZSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgQ29sb3ImIGNvbG9y
KSB7CisgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9yKTsKKyAgICAgICAg
fSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgQ01ZS0FDb2xvciYgY29sb3IpIHsKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBEbyB0aGlzIHRocm91Z2ggcGxhdGZvcm0taW5kZXBlbmRlbnQgR3Jh
cGhpY3NDb250ZXh0IEFQSS4KKyAgICAgICAgICAgIC8vIFdlJ2xsIG5lZWQgYSBmYW5jaWVyIENv
bG9yIGFic3RyYWN0aW9uIHRvIHN1cHBvcnQgQ01ZS0EgY29ycmVjdGx5CiAjaWYgVVNFKENHKQot
ICAgICAgICBDR0NvbnRleHRTZXRDTVlLU3Ryb2tlQ29sb3IoY29udGV4dC0+cGxhdGZvcm1Db250
ZXh0KCksIG1fY215a2EtPmMsIG1fY215a2EtPm0sIG1fY215a2EtPnksIG1fY215a2EtPmssIG1f
Y215a2EtPmEpOworICAgICAgICAgICAgQ0dDb250ZXh0U2V0Q01ZS1N0cm9rZUNvbG9yKGNvbnRl
eHQucGxhdGZvcm1Db250ZXh0KCksIGNvbG9yLmMsIGNvbG9yLm0sIGNvbG9yLnksIGNvbG9yLmss
IGNvbG9yLmEpOwogI2Vsc2UKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3IobV9jbXlr
YS0+Y29sb3IpOworICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihjb2xvci5jb2xv
cik7CiAjZW5kaWYKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgR3JhZGllbnQ6Ci0g
ICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUdyYWRpZW50KGNhbnZhc0dyYWRpZW50KCktPmdyYWRp
ZW50KCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEltYWdlUGF0dGVybjoKLSAgICAgICAg
Y29udGV4dC0+c2V0U3Ryb2tlUGF0dGVybihjYW52YXNQYXR0ZXJuKCktPnBhdHRlcm4oKSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ3VycmVudENvbG9yOgotICAgIGNhc2UgQ3VycmVudENv
bG9yV2l0aE92ZXJyaWRlQWxwaGE6Ci0gICAgY2FzZSBJbnZhbGlkOgotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi12b2lkIENhbnZhc1N0
eWxlOjphcHBseUZpbGxDb2xvcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpIGNvbnN0Ci17Ci0g
ICAgaWYgKCFjb250ZXh0KQotICAgICAgICByZXR1cm47Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsK
LSAgICBjYXNlIFJHQkE6Ci0gICAgICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihtX2NvbG9yKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDTVlLQTogewotICAgICAgICAvLyBGSVhNRTogRG8g
dGhpcyB0aHJvdWdoIHBsYXRmb3JtLWluZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCi0g
ICAgICAgIC8vIFdlJ2xsIG5lZWQgYSBmYW5jaWVyIENvbG9yIGFic3RyYWN0aW9uIHRvIHN1cHBv
cnQgQ01ZS0EgY29ycmVjdGx5CisgICAgICAgIH0sCisgICAgICAgIFsmY29udGV4dF0gKGNvbnN0
IFJlZlB0cjxDYW52YXNHcmFkaWVudD4mIGdyYWRpZW50KSB7CisgICAgICAgICAgICBjb250ZXh0
LnNldFN0cm9rZUdyYWRpZW50KGdyYWRpZW50LT5ncmFkaWVudCgpKTsKKyAgICAgICAgfSwKKyAg
ICAgICAgWyZjb250ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZhc1BhdHRlcm4+JiBwYXR0ZXJuKSB7
CisgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZVBhdHRlcm4ocGF0dGVybi0+cGF0dGVybigp
KTsKKyAgICAgICAgfSwKKyAgICAgICAgW10gKGNvbnN0IEN1cnJlbnRDb2xvciYpIHsKKyAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9LAorICAgICAgICBbXSAoY29u
c3QgSW52YWxpZCYpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICB9CisgICAgKTsKK30KKwordm9pZCBDYW52YXNTdHlsZTo6YXBwbHlGaWxsQ29sb3IoR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIFdURjo6c3dpdGNoT24obV9zdHlsZSwK
KyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgQ29sb3ImIGNvbG9yKSB7CisgICAgICAgICAgICBj
b250ZXh0LnNldEZpbGxDb2xvcihjb2xvcik7CisgICAgICAgIH0sCisgICAgICAgIFsmY29udGV4
dF0gKGNvbnN0IENNWUtBQ29sb3ImIGNvbG9yKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogRG8g
dGhpcyB0aHJvdWdoIHBsYXRmb3JtLWluZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCisg
ICAgICAgICAgICAvLyBXZSdsbCBuZWVkIGEgZmFuY2llciBDb2xvciBhYnN0cmFjdGlvbiB0byBz
dXBwb3J0IENNWUtBIGNvcnJlY3RseQogI2lmIFVTRShDRykKLSAgICAgICAgQ0dDb250ZXh0U2V0
Q01ZS0ZpbGxDb2xvcihjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgbV9jbXlrYS0+YywgbV9j
bXlrYS0+bSwgbV9jbXlrYS0+eSwgbV9jbXlrYS0+aywgbV9jbXlrYS0+YSk7CisgICAgICAgICAg
ICBDR0NvbnRleHRTZXRDTVlLRmlsbENvbG9yKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIGNv
bG9yLmMsIGNvbG9yLm0sIGNvbG9yLnksIGNvbG9yLmssIGNvbG9yLmEpOwogI2Vsc2UKLSAgICAg
ICAgY29udGV4dC0+c2V0RmlsbENvbG9yKG1fY215a2EtPmNvbG9yKTsKKyAgICAgICAgICAgIGNv
bnRleHQuc2V0RmlsbENvbG9yKGNvbG9yLmNvbG9yKTsKICNlbmRpZgotICAgICAgICBicmVhazsK
LSAgICB9Ci0gICAgY2FzZSBHcmFkaWVudDoKLSAgICAgICAgY29udGV4dC0+c2V0RmlsbEdyYWRp
ZW50KGNhbnZhc0dyYWRpZW50KCktPmdyYWRpZW50KCkpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIEltYWdlUGF0dGVybjoKLSAgICAgICAgY29udGV4dC0+c2V0RmlsbFBhdHRlcm4oY2FudmFz
UGF0dGVybigpLT5wYXR0ZXJuKCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEN1cnJlbnRD
b2xvcjoKLSAgICBjYXNlIEN1cnJlbnRDb2xvcldpdGhPdmVycmlkZUFscGhhOgotICAgIGNhc2Ug
SW52YWxpZDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZh
c0dyYWRpZW50PiYgZ3JhZGllbnQpIHsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbEdyYWRp
ZW50KGdyYWRpZW50LT5ncmFkaWVudCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0
XSAoY29uc3QgUmVmUHRyPENhbnZhc1BhdHRlcm4+JiBwYXR0ZXJuKSB7CisgICAgICAgICAgICBj
b250ZXh0LnNldEZpbGxQYXR0ZXJuKHBhdHRlcm4tPnBhdHRlcm4oKSk7CisgICAgICAgIH0sCisg
ICAgICAgIFtdIChjb25zdCBDdXJyZW50Q29sb3ImKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10gKGNvbnN0IEludmFsaWQmKSB7Cisg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgICk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oCmluZGV4IGI2YmY0N2M0
MDNjM2Q5ZTk1NjA1NjkxNGEwNGJiYzMwYTBhYWJhMmIuLjI3NzRhN2E1NTg0MmEyYmQxNjVhNTBj
NTk3MWVmN2JlNTMzNTcwYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1N0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5
bGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dApAQCAtMjYsMTM1ICsyNiwxMDAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlICJDYW52YXNHcmFkaWVudC5oIgorI2luY2x1ZGUgIkNhbnZhc1BhdHRlcm4uaCIKICNpbmNs
dWRlICJDb2xvci5oIgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi0gICAgY2xhc3MgQ2FudmFzR3JhZGllbnQ7Ci0gICAgY2xhc3MgQ2FudmFz
UGF0dGVybjsKLSAgICBjbGFzcyBEb2N1bWVudDsKLSAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7
Ci0gICAgY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQ7Ci0KLSAgICBjbGFzcyBDYW52YXNTdHlsZSB7
Ci0gICAgcHVibGljOgotICAgICAgICBDYW52YXNTdHlsZSgpOwotICAgICAgICBleHBsaWNpdCBD
YW52YXNTdHlsZShDb2xvcik7Ci0gICAgICAgIENhbnZhc1N0eWxlKGZsb2F0IGdyYXlMZXZlbCwg
ZmxvYXQgYWxwaGEpOwotICAgICAgICBDYW52YXNTdHlsZShmbG9hdCByLCBmbG9hdCBnLCBmbG9h
dCBiLCBmbG9hdCBhbHBoYSk7Ci0gICAgICAgIENhbnZhc1N0eWxlKGZsb2F0IGMsIGZsb2F0IG0s
IGZsb2F0IHksIGZsb2F0IGssIGZsb2F0IGFscGhhKTsKLSAgICAgICAgZXhwbGljaXQgQ2FudmFz
U3R5bGUoUGFzc1JlZlB0cjxDYW52YXNHcmFkaWVudD4pOwotICAgICAgICBleHBsaWNpdCBDYW52
YXNTdHlsZShQYXNzUmVmUHRyPENhbnZhc1BhdHRlcm4+KTsKLSAgICAgICAgfkNhbnZhc1N0eWxl
KCk7Ci0KLSAgICAgICAgc3RhdGljIENhbnZhc1N0eWxlIGNyZWF0ZUZyb21TdHJpbmcoY29uc3Qg
U3RyaW5nJiBjb2xvciwgRG9jdW1lbnQqID0gMCk7Ci0gICAgICAgIHN0YXRpYyBDYW52YXNTdHls
ZSBjcmVhdGVGcm9tU3RyaW5nV2l0aE92ZXJyaWRlQWxwaGEoY29uc3QgU3RyaW5nJiBjb2xvciwg
ZmxvYXQgYWxwaGEpOwotCi0gICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1f
dHlwZSAhPSBJbnZhbGlkOyB9Ci0gICAgICAgIGJvb2wgaXNDdXJyZW50Q29sb3IoKSBjb25zdCB7
IHJldHVybiBtX3R5cGUgPT0gQ3VycmVudENvbG9yIHx8IG1fdHlwZSA9PSBDdXJyZW50Q29sb3JX
aXRoT3ZlcnJpZGVBbHBoYTsgfQotICAgICAgICBib29sIGhhc092ZXJyaWRlQWxwaGEoKSBjb25z
dCB7IHJldHVybiBtX3R5cGUgPT0gQ3VycmVudENvbG9yV2l0aE92ZXJyaWRlQWxwaGE7IH0KLSAg
ICAgICAgZmxvYXQgb3ZlcnJpZGVBbHBoYSgpIGNvbnN0IHsgQVNTRVJUKG1fdHlwZSA9PSBDdXJy
ZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBoYSk7IHJldHVybiBtX292ZXJyaWRlQWxwaGE7IH0KLQot
ICAgICAgICBTdHJpbmcgY29sb3IoKSBjb25zdDsKLSAgICAgICAgQ2FudmFzR3JhZGllbnQqIGNh
bnZhc0dyYWRpZW50KCkgY29uc3Q7Ci0gICAgICAgIENhbnZhc1BhdHRlcm4qIGNhbnZhc1BhdHRl
cm4oKSBjb25zdDsKLQotICAgICAgICB2b2lkIGFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29udGV4
dCopIGNvbnN0OwotICAgICAgICB2b2lkIGFwcGx5U3Ryb2tlQ29sb3IoR3JhcGhpY3NDb250ZXh0
KikgY29uc3Q7Ci0KLSAgICAgICAgYm9vbCBpc0VxdWl2YWxlbnRDb2xvcihjb25zdCBDYW52YXNT
dHlsZSYpIGNvbnN0OwotICAgICAgICBib29sIGlzRXF1aXZhbGVudFJHQkEoZmxvYXQgciwgZmxv
YXQgZywgZmxvYXQgYiwgZmxvYXQgYSkgY29uc3Q7Ci0gICAgICAgIGJvb2wgaXNFcXVpdmFsZW50
Q01ZS0EoZmxvYXQgYywgZmxvYXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYSkgY29uc3Q7
Ci0KLSAgICAgICAgQ2FudmFzU3R5bGUoY29uc3QgQ2FudmFzU3R5bGUmKTsKLSAgICAgICAgQ2Fu
dmFzU3R5bGUmIG9wZXJhdG9yPShjb25zdCBDYW52YXNTdHlsZSYpOwotICAgICAgICBDYW52YXNT
dHlsZShDYW52YXNTdHlsZSYmKTsKLSAgICAgICAgQ2FudmFzU3R5bGUmIG9wZXJhdG9yPShDYW52
YXNTdHlsZSYmKTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGVudW0gVHlwZSB7IFJHQkEsIENN
WUtBLCBHcmFkaWVudCwgSW1hZ2VQYXR0ZXJuLCBDdXJyZW50Q29sb3IsIEN1cnJlbnRDb2xvcldp
dGhPdmVycmlkZUFscGhhLCBJbnZhbGlkIH07Ci0gICAgICAgIHN0cnVjdCBDTVlLQVZhbHVlcyB7
Ci0gICAgICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICAgICAgICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKENNWUtBVmFsdWVzKTsKLSAgICAgICAgcHVibGljOgotICAgICAgICAg
ICAgQ01ZS0FWYWx1ZXMoKQotICAgICAgICAgICAgICAgIDogY29sb3IoKSwgYygwKSwgbSgwKSwg
eSgwKSwgaygwKSwgYSgwKQotICAgICAgICAgICAgeyB9Ci0KLSAgICAgICAgICAgIENNWUtBVmFs
dWVzKENvbG9yIGNvbG9yLCBmbG9hdCBjeWFuLCBmbG9hdCBtYWdlbnRhLCBmbG9hdCB5ZWxsb3cs
IGZsb2F0IGJsYWNrLCBmbG9hdCBhbHBoYSkKLSAgICAgICAgICAgICAgICA6IGNvbG9yKGNvbG9y
KSwgYyhjeWFuKSwgbShtYWdlbnRhKSwgeSh5ZWxsb3cpLCBrKGJsYWNrKSwgYShhbHBoYSkKLSAg
ICAgICAgICAgIHsgfQotICAgICAgICAgICAgQ29sb3IgY29sb3I7Ci0gICAgICAgICAgICBmbG9h
dCBjOwotICAgICAgICAgICAgZmxvYXQgbTsKLSAgICAgICAgICAgIGZsb2F0IHk7Ci0gICAgICAg
ICAgICBmbG9hdCBrOwotICAgICAgICAgICAgZmxvYXQgYTsKLSAgICAgICAgfTsKLQotICAgICAg
ICBlbnVtIENvbnN0cnVjdEN1cnJlbnRDb2xvclRhZyB7IENvbnN0cnVjdEN1cnJlbnRDb2xvciB9
OwotICAgICAgICBDYW52YXNTdHlsZShDb25zdHJ1Y3RDdXJyZW50Q29sb3JUYWcpIDogbV90eXBl
KEN1cnJlbnRDb2xvcikgeyB9Ci0gICAgICAgIENhbnZhc1N0eWxlKFR5cGUgdHlwZSwgZmxvYXQg
b3ZlcnJpZGVBbHBoYSkKLSAgICAgICAgICAgIDogbV9vdmVycmlkZUFscGhhKG92ZXJyaWRlQWxw
aGEpCi0gICAgICAgICAgICAsIG1fdHlwZSh0eXBlKQorY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBH
cmFwaGljc0NvbnRleHQ7CitjbGFzcyBIVE1MQ2FudmFzRWxlbWVudDsKKworY2xhc3MgQ2FudmFz
U3R5bGUgeworcHVibGljOgorICAgIENhbnZhc1N0eWxlKCk7CisgICAgQ2FudmFzU3R5bGUoQ29s
b3IpOworICAgIENhbnZhc1N0eWxlKGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQgYWxwaGEpOworICAg
IENhbnZhc1N0eWxlKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGFscGhhKTsKKyAg
ICBDYW52YXNTdHlsZShmbG9hdCBjLCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBh
bHBoYSk7CisgICAgQ2FudmFzU3R5bGUoQ2FudmFzR3JhZGllbnQmKTsKKyAgICBDYW52YXNTdHls
ZShDYW52YXNQYXR0ZXJuJik7CisKKyAgICBzdGF0aWMgQ2FudmFzU3R5bGUgY3JlYXRlRnJvbVN0
cmluZyhjb25zdCBTdHJpbmcmIGNvbG9yLCBEb2N1bWVudCogPSBudWxscHRyKTsKKyAgICBzdGF0
aWMgQ2FudmFzU3R5bGUgY3JlYXRlRnJvbVN0cmluZ1dpdGhPdmVycmlkZUFscGhhKGNvbnN0IFN0
cmluZyYgY29sb3IsIGZsb2F0IGFscGhhKTsKKworICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsg
cmV0dXJuICFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPEludmFsaWQ+KG1fc3R5bGUpOyB9CisgICAg
Ym9vbCBpc0N1cnJlbnRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRp
dmU8Q3VycmVudENvbG9yPihtX3N0eWxlKTsgfQorICAgIGJvb2wgaGFzT3ZlcnJpZGVBbHBoYSgp
IGNvbnN0IHsgcmV0dXJuIGlzQ3VycmVudENvbG9yKCkgJiYgV1RGOjpnZXQ8Q3VycmVudENvbG9y
PihtX3N0eWxlKS5vdmVycmlkZUFscGhhOyB9CisgICAgZmxvYXQgb3ZlcnJpZGVBbHBoYSgpIGNv
bnN0IHsgcmV0dXJuIFdURjo6Z2V0PEN1cnJlbnRDb2xvcj4obV9zdHlsZSkub3ZlcnJpZGVBbHBo
YS52YWx1ZSgpOyB9CisKKyAgICBTdHJpbmcgY29sb3IoKSBjb25zdDsKKyAgICBDYW52YXNHcmFk
aWVudCogY2FudmFzR3JhZGllbnQoKSBjb25zdDsKKyAgICBDYW52YXNQYXR0ZXJuKiBjYW52YXNQ
YXR0ZXJuKCkgY29uc3Q7CisKKyAgICB2b2lkIGFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29udGV4
dCYpIGNvbnN0OworICAgIHZvaWQgYXBwbHlTdHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQmKSBj
b25zdDsKKworICAgIGJvb2wgaXNFcXVpdmFsZW50Q29sb3IoY29uc3QgQ2FudmFzU3R5bGUmKSBj
b25zdDsKKyAgICBib29sIGlzRXF1aXZhbGVudFJHQkEoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwg
ZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpIGNvbnN0OworICAgIGJvb2wgaXNFcXVpdmFsZW50Q01Z
S0EoZmxvYXQgY3lhbiwgZmxvYXQgbWFnZW50YSwgZmxvYXQgeWVsbG93LCBmbG9hdCBibGFjaywg
ZmxvYXQgYWxwaGEpIGNvbnN0OworCitwcml2YXRlOgorICAgIHN0cnVjdCBJbnZhbGlkIHsgfTsK
KworICAgIHN0cnVjdCBDTVlLQUNvbG9yIHsKKyAgICAgICAgQ01ZS0FDb2xvcigpID0gZGVmYXVs
dDsKKworICAgICAgICBDTVlLQUNvbG9yKENvbG9yIGNvbG9yLCBmbG9hdCBjeWFuLCBmbG9hdCBt
YWdlbnRhLCBmbG9hdCB5ZWxsb3csIGZsb2F0IGJsYWNrLCBmbG9hdCBhbHBoYSkKKyAgICAgICAg
ICAgIDogY29sb3IoY29sb3IpLCBjKGN5YW4pLCBtKG1hZ2VudGEpLCB5KHllbGxvdyksIGsoYmxh
Y2spLCBhKGFscGhhKQogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICB1bmlvbiB7Ci0g
ICAgICAgICAgICBDb2xvciBtX2NvbG9yOwotICAgICAgICAgICAgZmxvYXQgbV9vdmVycmlkZUFs
cGhhOwotICAgICAgICAgICAgQ2FudmFzR3JhZGllbnQqIG1fZ3JhZGllbnQ7Ci0gICAgICAgICAg
ICBDYW52YXNQYXR0ZXJuKiBtX3BhdHRlcm47Ci0gICAgICAgICAgICBDTVlLQVZhbHVlcyogbV9j
bXlrYTsKLSAgICAgICAgfTsKLSAgICAgICAgVHlwZSBtX3R5cGU7CisgICAgICAgIENvbG9yIGNv
bG9yOworICAgICAgICBmbG9hdCBjIHsgMCB9OworICAgICAgICBmbG9hdCBtIHsgMCB9OworICAg
ICAgICBmbG9hdCB5IHsgMCB9OworICAgICAgICBmbG9hdCBrIHsgMCB9OworICAgICAgICBmbG9h
dCBhIHsgMCB9OwogICAgIH07CiAKLSAgICBDb2xvciBjdXJyZW50Q29sb3IoSFRNTENhbnZhc0Vs
ZW1lbnQqKTsKLSAgICBDb2xvciBwYXJzZUNvbG9yT3JDdXJyZW50Q29sb3IoY29uc3QgU3RyaW5n
JiBjb2xvclN0cmluZywgSFRNTENhbnZhc0VsZW1lbnQqKTsKLQotICAgIGlubGluZSBDYW52YXNT
dHlsZTo6Q2FudmFzU3R5bGUoKQotICAgICAgICA6IG1fdHlwZShJbnZhbGlkKQotICAgIHsKLSAg
ICB9Ci0KLSAgICBpbmxpbmUgQ2FudmFzR3JhZGllbnQqIENhbnZhc1N0eWxlOjpjYW52YXNHcmFk
aWVudCgpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAobV90eXBlID09IEdyYWRpZW50KQotICAg
ICAgICAgICAgcmV0dXJuIG1fZ3JhZGllbnQ7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQot
ICAgIGlubGluZSBDYW52YXNQYXR0ZXJuKiBDYW52YXNTdHlsZTo6Y2FudmFzUGF0dGVybigpIGNv
bnN0Ci0gICAgewotICAgICAgICBpZiAobV90eXBlID09IEltYWdlUGF0dGVybikKLSAgICAgICAg
ICAgIHJldHVybiBtX3BhdHRlcm47Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGlu
bGluZSBTdHJpbmcgQ2FudmFzU3R5bGU6OmNvbG9yKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFT
U0VSVChtX3R5cGUgPT0gUkdCQSB8fCBtX3R5cGUgPT0gQ01ZS0EpOwotICAgICAgICBpZiAobV90
eXBlID09IFJHQkEpCi0gICAgICAgICAgICByZXR1cm4gbV9jb2xvci5zZXJpYWxpemVkKCk7Ci0g
ICAgICAgIHJldHVybiBtX2NteWthLT5jb2xvci5zZXJpYWxpemVkKCk7Ci0gICAgfQotCi0gICAg
aW5saW5lIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShDYW52YXNTdHlsZSYmIG90aGVyKQotICAg
IHsKLSAgICAgICAgbWVtY3B5KHRoaXMsICZvdGhlciwgc2l6ZW9mKENhbnZhc1N0eWxlKSk7Ci0g
ICAgICAgIG90aGVyLm1fdHlwZSA9IEludmFsaWQ7Ci0gICAgfQotCi0gICAgaW5saW5lIENhbnZh
c1N0eWxlJiBDYW52YXNTdHlsZTo6b3BlcmF0b3I9KENhbnZhc1N0eWxlJiYgb3RoZXIpCi0gICAg
ewotICAgICAgICBpZiAodGhpcyAhPSAmb3RoZXIpIHsKLSAgICAgICAgICAgIG1lbWNweSh0aGlz
LCAmb3RoZXIsIHNpemVvZihDYW52YXNTdHlsZSkpOwotICAgICAgICAgICAgb3RoZXIubV90eXBl
ID0gSW52YWxpZDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQorICAg
IHN0cnVjdCBDdXJyZW50Q29sb3IgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBvdmVy
cmlkZUFscGhhOworICAgIH07CisKKyAgICBDYW52YXNTdHlsZShDdXJyZW50Q29sb3IpOworCisg
ICAgVmFyaWFudDxJbnZhbGlkLCBDb2xvciwgQ01ZS0FDb2xvciwgUmVmUHRyPENhbnZhc0dyYWRp
ZW50PiwgUmVmUHRyPENhbnZhc1BhdHRlcm4+LCBDdXJyZW50Q29sb3I+IG1fc3R5bGU7Cit9Owor
CitDb2xvciBjdXJyZW50Q29sb3IoSFRNTENhbnZhc0VsZW1lbnQqKTsKK0NvbG9yIHBhcnNlQ29s
b3JPckN1cnJlbnRDb2xvcihjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBIVE1MQ2FudmFzRWxl
bWVudCopOworCitpbmxpbmUgQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKCkKKyAgICA6IG1fc3R5
bGUoSW52YWxpZCB7IH0pCit7Cit9CisKK2lubGluZSBDYW52YXNHcmFkaWVudCogQ2FudmFzU3R5
bGU6OmNhbnZhc0dyYWRpZW50KCkgY29uc3QKK3sKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJu
YXRpdmU8UmVmUHRyPENhbnZhc0dyYWRpZW50Pj4obV9zdHlsZSkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIHJldHVybiBXVEY6OmdldDxSZWZQdHI8Q2FudmFzR3JhZGllbnQ+PihtX3N0
eWxlKS5nZXQoKTsKK30KKworaW5saW5lIENhbnZhc1BhdHRlcm4qIENhbnZhc1N0eWxlOjpjYW52
YXNQYXR0ZXJuKCkgY29uc3QKK3sKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVm
UHRyPENhbnZhc1BhdHRlcm4+PihtX3N0eWxlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgcmV0dXJuIFdURjo6Z2V0PFJlZlB0cjxDYW52YXNQYXR0ZXJuPj4obV9zdHlsZSkuZ2V0KCk7
Cit9CisKK2lubGluZSBTdHJpbmcgQ2FudmFzU3R5bGU6OmNvbG9yKCkgY29uc3QKK3sKKyAgICBh
dXRvJiBjb2xvciA9IFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG1fc3R5bGUpID8gV1RG
OjpnZXQ8Q29sb3I+KG1fc3R5bGUpIDogV1RGOjpnZXQ8Q01ZS0FDb2xvcj4obV9zdHlsZSkuY29s
b3I7CisgICAgcmV0dXJuIGNvbG9yLnNlcmlhbGl6ZWQoKTsKK30KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4
QXJyYXlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJy
YXlPYmplY3QuY3BwCmluZGV4IGM4YjEwZjdiZmJjNjgxZDhhYTg1OTU5YTNmMWUyN2Q2Mzc4ZTY5
YWUuLjFlZjgzMzE3NGZlYjljMzFhYjBlOGQ5MmZmZGY0YzMwNTBiNGI4YWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKQEAg
LTQ5LDggKzQ5LDggQEAgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IE9FU1ZlcnRl
eEFycmF5T2JqZWN0OjpjcmVhdGVWZXJ0ZXhBcnJheU9FUygpCiAgICAgaWYgKG1fY29udGV4dC5p
c0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBvYmpl
Y3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUobV9jb250ZXh0LCBXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTOjpWQU9UeXBlVXNlcik7Ci0gICAgbV9jb250ZXh0LmFkZENvbnRl
eHRPYmplY3Qob2JqZWN0LnB0cigpKTsKKyAgICBhdXRvIG9iamVjdCA9IFdlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVM6OmNyZWF0ZShtX2NvbnRleHQsIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6
OlR5cGU6OlVzZXIpOworICAgIG1fY29udGV4dC5hZGRDb250ZXh0T2JqZWN0KG9iamVjdC5nZXQo
KSk7CiAgICAgcmV0dXJuIFdURk1vdmUob2JqZWN0KTsKIH0KIApAQCAtNTgsOSArNTgsOSBAQCB2
b2lkIE9FU1ZlcnRleEFycmF5T2JqZWN0OjpkZWxldGVWZXJ0ZXhBcnJheU9FUyhXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTKiBhcnJheQogewogICAgIGlmICghYXJyYXlPYmplY3QgfHwgbV9jb250
ZXh0LmlzQ29udGV4dExvc3QoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGlmICghYXJy
YXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpICYmIGFycmF5T2JqZWN0ID09IHN0YXRpY19jYXN0
PFdlYkdMUmVuZGVyaW5nQ29udGV4dCo+KCZtX2NvbnRleHQpLT5tX2JvdW5kVmVydGV4QXJyYXlP
YmplY3QpCi0gICAgICAgIHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCo+KCZtX2Nv
bnRleHQpLT5zZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KDApOworCisgICAgaWYgKCFhcnJheU9i
amVjdC0+aXNEZWZhdWx0T2JqZWN0KCkgJiYgYXJyYXlPYmplY3QgPT0gc3RhdGljX2Nhc3Q8V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Jj4obV9jb250ZXh0KS5tX2JvdW5kVmVydGV4QXJyYXlPYmplY3Qp
CisgICAgICAgIHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCY+KG1fY29udGV4dCku
c2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChudWxscHRyKTsKIAogICAgIGFycmF5T2JqZWN0LT5k
ZWxldGVPYmplY3QobV9jb250ZXh0LmdyYXBoaWNzQ29udGV4dDNEKCkpOwogfQpAQCAtODksNyAr
ODksNyBAQCB2b2lkIE9FU1ZlcnRleEFycmF5T2JqZWN0OjpiaW5kVmVydGV4QXJyYXlPRVMoV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdE9FUyogYXJyYXlPYgogICAgICAgICBjb250ZXh0LnNldEJvdW5k
VmVydGV4QXJyYXlPYmplY3QoYXJyYXlPYmplY3QpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGV4
dGVuc2lvbnMuYmluZFZlcnRleEFycmF5T0VTKDApOwotICAgICAgICBjb250ZXh0LnNldEJvdW5k
VmVydGV4QXJyYXlPYmplY3QoMCk7CisgICAgICAgIGNvbnRleHQuc2V0Qm91bmRWZXJ0ZXhBcnJh
eU9iamVjdChudWxscHRyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggNDgwYTBjYTk1YjUx
ODMxMjM4MGM5Y2VmYjg0NDhmMjU5MTA4MTgxNy4uZmY1OTkxOGJkY2FmZGJjZDZjMzQ3ODZjODcy
MWVmZmI4ODYyMTYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI0LDkgKzI0LDkgQEAKICAqLwogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oIgogCiAj
aWYgRU5BQkxFKFdFQkdMKSAmJiBFTkFCTEUoV0VCR0wyKQotI2luY2x1ZGUgIldlYkdMMlJlbmRl
cmluZ0NvbnRleHQuaCIKIAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiRVhU
VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmgiCkBAIC02Myw3ICs2Myw3IEBAIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBh
c3NlZENhbnZhcywKIHsKIH0KIAotV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6V2ViR0wyUmVuZGVy
aW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLCBSZWZQdHI8R3JhcGhp
Y3NDb250ZXh0M0Q+JiYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJp
YnV0ZXMpCitXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0KEhU
TUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFJlZjxHcmFwaGljc0NvbnRleHQzRD4mJiBj
b250ZXh0LCBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICA6IFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UocGFzc2VkQ2FudmFzLCBXVEZNb3ZlKGNvbnRleHQpLCBh
dHRyaWJ1dGVzKQogewogICAgIGluaXRpYWxpemVTaGFkZXJFeHRlbnNpb25zKCk7CkBAIC03Miw4
ICs3Miw4IEBAIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQo
SFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywKIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0Ojppbml0aWFsaXplVmVydGV4QXJyYXlPYmplY3RzKCkKIHsKLSAgICBtX2RlZmF1bHRW
ZXJ0ZXhBcnJheU9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZSgqdGhpcywg
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6VkFPVHlwZURlZmF1bHQpOwotICAgIGFkZENvbnRleHRP
YmplY3QobV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QuZ2V0KCkpOworICAgIG1fZGVmYXVsdFZl
cnRleEFycmF5T2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlKCp0aGlzLCBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0OjpUeXBlOjpEZWZhdWx0KTsKKyAgICBhZGRDb250ZXh0T2Jq
ZWN0KCptX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCk7CiAgICAgbV9ib3VuZFZlcnRleEFycmF5
T2JqZWN0ID0gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiAgICAgaWYgKCFpc0dMRVMyQ29t
cGxpYW50KCkpCiAgICAgICAgIGluaXRWZXJ0ZXhBdHRyaWIwKCk7CkBAIC0yMDMsNyArMjAzLDcg
QEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpjb3B5QnVmZmVyU3ViRGF0YShHQzNEZW51
bSByZWFkVGFyZ2V0LCBHQzNEZW51bSB3cmkKICAgICB9CiAKICAgICBtX2NvbnRleHQtPm1vdmVF
cnJvcnNUb1N5bnRoZXRpY0Vycm9yTGlzdCgpOwotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZP
Uk0oSU9TKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIG1fY29udGV4dC0+Y29weUJ1ZmZlclN1
YkRhdGEocmVhZFRhcmdldCwgd3JpdGVUYXJnZXQsIGNoZWNrZWRSZWFkT2Zmc2V0LnVuc2FmZUdl
dCgpLCBjaGVja2VkV3JpdGVPZmZzZXQudW5zYWZlR2V0KCksIGNoZWNrZWRTaXplLnVuc2FmZUdl
dCgpKTsKICNlbmRpZgogICAgIGlmIChtX2NvbnRleHQtPm1vdmVFcnJvcnNUb1N5bnRoZXRpY0Vy
cm9yTGlzdCgpKSB7CkBAIC0yNzIsNyArMjcyLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpnZXRCdWZmZXJTdWJEYXRhKEdDM0RlbnVtIHRhcmdldCwgbG9uZyBsb25nIHNyY0J5dGUK
ICAgICB9CiAKICAgICBtX2NvbnRleHQtPm1vdmVFcnJvcnNUb1N5bnRoZXRpY0Vycm9yTGlzdCgp
OwotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIC8vIEZJWE1FOiBDb2FsZXNjZSBtdWx0aXBsZSBnZXRCdWZmZXJTdWJEYXRhKCkgY2Fs
bHMgdG8gdXNlIGEgc2luZ2xlIG1hcCgpIGNhbGwKICAgICB2b2lkKiBwdHIgPSBtX2NvbnRleHQt
Pm1hcEJ1ZmZlclJhbmdlKHRhcmdldCwgY2hlY2tlZFNyY0J5dGVPZmZzZXQudW5zYWZlR2V0KCks
IHN0YXRpY19jYXN0PEdDM0RzaXplaXB0cj4oY2hlY2tlZENvcHlMZW5ndGhQdHIudW5zYWZlR2V0
KCkgKiBjaGVja2VkRWxlbWVudFNpemUudW5zYWZlR2V0KCkpLCBHcmFwaGljc0NvbnRleHQzRDo6
TUFQX1JFQURfQklUKTsKICAgICBtZW1jcHkoc3RhdGljX2Nhc3Q8Y2hhcio+KGRzdERhdGEtPmJh
c2VBZGRyZXNzKCkpICsgZHN0RGF0YS0+Ynl0ZU9mZnNldCgpICsgZHN0T2Zmc2V0ICogZWxlbWVu
dFNpemUsIHB0ciwgY29weUxlbmd0aCAqIGVsZW1lbnRTaXplKTsKQEAgLTI5MCw5ICsyOTAsOSBA
QCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmZyYW1lYnVmZmVyVGV4dHVyZUxheWVyKEdD
M0RlbnVtLCBHQzNEZW51bSwgR0MzRHVpbgogewogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoR0MzRGVudW0sIEdDM0Rl
bnVtLCBHQzNEZW51bSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEludGVy
bmFsZm9ybWF0UGFyYW1ldGVyKEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGVudW0pCiB7Ci0gICAg
cmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiB2b2lkIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmludmFsaWRhdGVGcmFtZWJ1ZmZlcihHQzNEZW51bSwgVmVj
dG9yPEdDM0RlbnVtPikKQEAgLTQwNyw3ICs0MDcsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OnRleFN0b3JhZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdD
MwogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIFdlYkdMVGV4dHVyZSogdGV4dHVyZSA9IHZhbGlkYXRlVGV4dHVyZUJpbmRpbmcoInRleFN0
b3JhZ2UyRCIsIHRhcmdldCwgZmFsc2UpOworICAgIGF1dG8qIHRleHR1cmUgPSB2YWxpZGF0ZVRl
eHR1cmVCaW5kaW5nKCJ0ZXhTdG9yYWdlMkQiLCB0YXJnZXQsIGZhbHNlKTsKICAgICBpZiAoIXRl
eHR1cmUpCiAgICAgICAgIHJldHVybjsKIApAQCAtNzgyLDkgKzc4Miw5IEBAIFJlZlB0cjxXZWJH
TFF1ZXJ5PiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRRdWVyeShHQzNEZW51bSwgR0MzRGVu
dW0pCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpnZXRRdWVyeVBhcmFtZXRlcihXZWJHTFF1ZXJ5KiwgR0MzRGVudW0pCitXZWJH
TEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRRdWVyeVBhcmFtZXRlcihXZWJHTFF1ZXJ5
KiwgR0MzRGVudW0pCiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIHJldHVybiBu
dWxscHRyOwogfQogCiBSZWZQdHI8V2ViR0xTYW1wbGVyPiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
OjpjcmVhdGVTYW1wbGVyKCkKQEAgLTgxMyw5ICs4MTMsOSBAQCB2b2lkIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OnNhbXBsZXJQYXJhbWV0ZXJmKFdlYkdMU2FtcGxlciosIEdDM0RlbnVtLCBHQzNE
ZmxvYQogewogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2Ft
cGxlclBhcmFtZXRlcihXZWJHTFNhbXBsZXIqLCBHQzNEZW51bSkKK1dlYkdMQW55IFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OmdldFNhbXBsZXJQYXJhbWV0ZXIoV2ViR0xTYW1wbGVyKiwgR0MzRGVu
dW0pCiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIHJldHVybiBudWxscHRyOwog
fQogCiBSZWZQdHI8V2ViR0xTeW5jPiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpmZW5jZVN5bmMo
R0MzRGVudW0sIEdDM0RiaXRmaWVsZCkKQEAgLTg0MSw5ICs4NDEsOSBAQCB2b2lkIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OndhaXRTeW5jKFdlYkdMU3luYyosIEdDM0RiaXRmaWVsZCwgR0MzRHVp
bnQ2NCkKIHsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFN5
bmNQYXJhbWV0ZXIoV2ViR0xTeW5jKiwgR0MzRGVudW0pCitXZWJHTEFueSBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpnZXRTeW5jUGFyYW1ldGVyKFdlYkdMU3luYyosIEdDM0RlbnVtKQogewotICAg
IHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVmUHRy
PFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVRy
YW5zZm9ybUZlZWRiYWNrKCkKQEAgLTg5Nyw3ICs4OTcsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmJpbmRCdWZmZXJSYW5nZShHQzNEZW51bSwgR0MzRHVpbnQsIFdlYkdMQnVmZmVy
KiwgRwogewogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5k
ZXhlZFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50KQorV2ViR0xBbnkgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdD
M0R1aW50KQogewogICAgIHN3aXRjaCAodGFyZ2V0KSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HOgpAQCAtOTA3LDEzICs5MDcs
MTEgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEluZGV4ZWRQYXJh
bWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpVTklGT1JNX0JVRkZFUl9TSVpFOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOSUZP
Uk1fQlVGRkVSX1NUQVJUOgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0SW5kZXhlZFBhcmFtZXRlciIsICJwYXJhbWV0ZXIgbmFt
ZSBub3QgeWV0IHN1cHBvcnRlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRJbmRleGVkUGFyYW1l
dGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOwotICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CiB9CiAKIFVpbnQzMkFycmF5KiBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpnZXRVbmlmb3JtSW5kaWNlcyhXZWJHTFByb2dyYW0qLCBWZWN0b3I8U3RyaW5n
PikKQEAgLTkzMSwxNCArOTI5LDE0IEBAIEdDM0R1aW50IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmdldFVuaWZvcm1CbG9ja0luZGV4KFdlYkdMUHJvZ3JhbSosIFN0cmluZykKICAgICByZXR1cm4g
MDsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVu
aWZvcm1CbG9ja1BhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNEdWludCwgR0MzRGVudW0pCitX
ZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJh
bWV0ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQsIEdDM0RlbnVtKQogewotICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotV2ViR0xHZXRJbmZvIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUoV2ViR0xQcm9n
cmFtKiwgR0MzRHVpbnQpCitXZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRBY3Rp
dmVVbmlmb3JtQmxvY2tOYW1lKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50KQogewotICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0Ojp1bmlmb3JtQmxvY2tCaW5kaW5nKFdlYkdMUHJvZ3JhbSosIEdDM0R1
aW50LCBHQzNEdWludCkKQEAgLTk1MCw4ICs5NDgsOCBAQCBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdD4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlVmVydGV4QXJyYXkoKQogICAg
IGlmIChpc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIAotICAg
IGF1dG8gb2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlKCp0aGlzLCBXZWJH
TFZlcnRleEFycmF5T2JqZWN0OjpWQU9UeXBlVXNlcik7Ci0gICAgYWRkQ29udGV4dE9iamVjdChv
YmplY3QucHRyKCkpOworICAgIGF1dG8gb2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6
Y3JlYXRlKCp0aGlzLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpUeXBlOjpVc2VyKTsKKyAgICBh
ZGRDb250ZXh0T2JqZWN0KG9iamVjdC5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUob2JqZWN0
KTsKIH0KIApAQCAtOTY0LDcgKzk2Miw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
ZGVsZXRlVmVydGV4QXJyYXkoV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCogYXJyYXlPYmplCiAgICAg
ICAgIHJldHVybjsKICAgICAKICAgICBpZiAoIWFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3Qo
KSAmJiBhcnJheU9iamVjdCA9PSBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QpCi0gICAgICAgIHNl
dEJvdW5kVmVydGV4QXJyYXlPYmplY3QoMCk7CisgICAgICAgIHNldEJvdW5kVmVydGV4QXJyYXlP
YmplY3QobnVsbHB0cik7CiAgICAgCiAgICAgYXJyYXlPYmplY3QtPmRlbGV0ZU9iamVjdChncmFw
aGljc0NvbnRleHQzRCgpKTsKIH0KQEAgLTk3MiwxMCArOTcwLDEwIEBAIHZvaWQgV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6ZGVsZXRlVmVydGV4QXJyYXkoV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCog
YXJyYXlPYmplCiBHQzNEYm9vbGVhbiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppc1ZlcnRleEFy
cmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIGFycmF5T2JqZWN0KQogewogICAgIGlmICghYXJy
YXlPYmplY3QgfHwgaXNDb250ZXh0TG9zdCgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIAogICAgIGlmICghYXJyYXlPYmplY3QtPmhhc0V2ZXJCZWVuQm91
bmQoKSB8fCAhYXJyYXlPYmplY3QtPnZhbGlkYXRlKDAsICp0aGlzKSkKLSAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICByZXR1cm4gbV9jb250ZXh0LT5p
c1ZlcnRleEFycmF5KGFycmF5T2JqZWN0LT5vYmplY3QoKSk7CiB9CkBAIC05OTYsNyArOTk0LDcg
QEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiaW5kVmVydGV4QXJyYXkoV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdCogYXJyYXlPYmplY3QKICAgICAgICAgc2V0Qm91bmRWZXJ0ZXhBcnJheU9i
amVjdChhcnJheU9iamVjdCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9jb250ZXh0LT5iaW5k
VmVydGV4QXJyYXkobV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QtPm9iamVjdCgpKTsKLSAgICAg
ICAgc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCk7
CisgICAgICAgIHNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QobV9kZWZhdWx0VmVydGV4QXJyYXlP
YmplY3QuZ2V0KCkpOwogICAgIH0KIH0KIApAQCAtMTAwNSw0MyArMTAwMyw0OCBAQCBXZWJHTEV4
dGVuc2lvbiogV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmlu
ZyYgbmFtZSkKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAotICAgIGlmICgoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhU
X3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShu
YW1lLCAiV0VCS0lUX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKQotICAgICAgICAm
JiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX3RleHR1cmVfZmls
dGVyX2FuaXNvdHJvcGljIikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1l
LCAiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShuYW1lLCAiV0VCS0lUX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKSB7CiAg
ICAgICAgIGlmICghbV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMpIHsKLSAgICAgICAgICAg
IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX0VYVF90ZXh0dXJl
X2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOwotICAgICAgICAgICAgbV9leHRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWMgPSBzdGQ6Om1ha2VfdW5pcXVlPEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYz4o
KnRoaXMpOworICAgICAgICAgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBv
cnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0p
KSB7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5h
YmxlZChBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIiB9
KTsKKyAgICAgICAgICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IHN0ZDo6
bWFrZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcyk7CisgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fZXh0VGV4dHVyZUZpbHRlckFuaXNv
dHJvcGljLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1l
LCAiT0VTX3RleHR1cmVfZmxvYXQiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfZmxvYXQiKSkgeworICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdCIpKSB7CiAgICAgICAgIGlm
ICghbV9vZXNUZXh0dXJlRmxvYXQpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2Zsb2F0Iik7Ci0gICAgICAgICAg
ICBtX29lc1RleHR1cmVGbG9hdCA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0Pigq
dGhpcyk7CisgICAgICAgICAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2Zsb2F0IiB9KSkgeworICAgICAgICAg
ICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoQVNDSUlMaXRl
cmFsIHsgIkdMX09FU190ZXh0dXJlX2Zsb2F0IiB9KTsKKyAgICAgICAgICAgICAgICBtX29lc1Rl
eHR1cmVGbG9hdCA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0PigqdGhpcyk7Cisg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUZsb2F0
LmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VT
X3RleHR1cmVfZmxvYXRfbGluZWFyIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7CisgICAgaWYg
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIp
KSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIpIHsKLSAgICAgICAgICAg
IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190ZXh0dXJl
X2Zsb2F0X2xpbmVhciIpOwotICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIgPSBz
dGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdExpbmVhcj4oKnRoaXMpOworICAgICAgICAg
ICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7
ICJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiIH0pKSB7CisgICAgICAgICAgICAgICAgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyAiR0xf
T0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9KTsKKyAgICAgICAgICAgICAgICBtX29lc1RleHR1
cmVGbG9hdExpbmVhciA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0TGluZWFyPigq
dGhpcyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4
dHVyZUZsb2F0TGluZWFyLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpCi0gICAgICAgICYmIG1fY29udGV4
dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0Iikp
IHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFs
Zl9mbG9hdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlSGFsZkZsb2F0KSB7Ci0gICAg
ICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNf
dGV4dHVyZV9oYWxmX2Zsb2F0Iik7Ci0gICAgICAgICAgICBtX29lc1RleHR1cmVIYWxmRmxvYXQg
PSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+KCp0aGlzKTsKKyAgICAgICAg
ICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwg
eyAiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIgfSkpIHsKKyAgICAgICAgICAgICAgICBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0ZXJhbCB7ICJHTF9P
RVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiB9KTsKKyAgICAgICAgICAgICAgICBtX29lc1RleHR1cmVI
YWxmRmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+KCp0aGlzKTsK
KyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlSGFs
ZkZsb2F0LmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1l
LCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKQotICAgICAgICAmJiBtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5l
YXIiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVy
ZV9oYWxmX2Zsb2F0X2xpbmVhciIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlSGFsZkZs
b2F0TGluZWFyKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1
cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpOwotICAgICAgICAg
ICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0
dXJlSGFsZkZsb2F0TGluZWFyPigqdGhpcyk7CisgICAgICAgICAgICBpZiAobV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2hh
bGZfZmxvYXRfbGluZWFyIiB9KSkgeworICAgICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2hh
bGZfZmxvYXRfbGluZWFyIiB9KTsKKyAgICAgICAgICAgICAgICBtX29lc1RleHR1cmVIYWxmRmxv
YXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXI+KCp0
aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0
dXJlSGFsZkZsb2F0TGluZWFyLmdldCgpOwogICAgIH0KQEAgLTEwNTAsMjggKzEwNTMsMzIgQEAg
V2ViR0xFeHRlbnNpb24qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihjb25z
dCBTdHJpbmcmIG5hbWUpCiAgICAgICAgICAgICBtX3dlYmdsTG9zZUNvbnRleHQgPSBzdGQ6Om1h
a2VfdW5pcXVlPFdlYkdMTG9zZUNvbnRleHQ+KCp0aGlzKTsKICAgICAgICAgcmV0dXJuIG1fd2Vi
Z2xMb3NlQ29udGV4dC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKChlcXVhbElnbm9yaW5nQVNDSUlD
YXNlKG5hbWUsICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpKQotICAgICAg
ICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0gICAg
ICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDKQotICAgICAgICAgICAgbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlQVRDID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRU
ZXh0dXJlQVRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwg
IldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIikpIHsKKyAgICAgICAgaWYgKCFt
X3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMpIHsKKyAgICAgICAgICAgIGlmIChXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMpKQorICAgICAgICAgICAgICAgIG1fd2Vi
Z2xDb21wcmVzc2VkVGV4dHVyZUFUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2Vk
VGV4dHVyZUFUQz4oKnRoaXMpOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3dlYmdsQ29t
cHJlc3NlZFRleHR1cmVBVEMuZ2V0KCk7CiAgICAgfQotICAgIGlmICgoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpKQot
ICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OnN1cHBvcnRlZCgqdGhpcykp
IHsKLSAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQykKLSAgICAgICAg
ICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJH
TENvbXByZXNzZWRUZXh0dXJlUFZSVEM+KCp0aGlzKTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpKSB7
CisgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMpIHsKKyAgICAgICAg
ICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OnN1cHBvcnRlZCgqdGhpcykpCisg
ICAgICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQz4oKnRoaXMpOworICAgICAgICB9CiAg
ICAgICAgIHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5nZXQoKTsKICAgICB9
Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2NvbXByZXNzZWRf
dGV4dHVyZV9zM3RjIikKLSAgICAgICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1
cHBvcnRlZCgqdGhpcykpIHsKLSAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVT
M1RDKQotICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQyA9IHN0ZDo6bWFr
ZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM+KCp0aGlzKTsKKyAgICBpZiAoZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMi
KSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMpIHsKKyAgICAg
ICAgICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKCp0aGlzKSkK
KyAgICAgICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDID0gc3RkOjptYWtl
X3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQz4oKnRoaXMpOworICAgICAgICB9CiAg
ICAgICAgIHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDLmdldCgpOwogICAgIH0K
LSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVwdGhfdGV4dHVy
ZSIpCi0gICAgICAgICYmIFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoKmdyYXBoaWNzQ29u
dGV4dDNEKCkpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERlcHRoVGV4dHVyZSkKLSAgICAgICAg
ICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVwdGhUZXh0
dXJlPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdM
X2RlcHRoX3RleHR1cmUiKSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xEZXB0aFRleHR1cmUpIHsK
KyAgICAgICAgICAgIGlmIChXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCpncmFwaGljc0Nv
bnRleHQzRCgpKSkKKyAgICAgICAgICAgICAgICBtX3dlYmdsRGVwdGhUZXh0dXJlID0gc3RkOjpt
YWtlX3VuaXF1ZTxXZWJHTERlcHRoVGV4dHVyZT4oKnRoaXMpOworICAgICAgICB9CiAgICAgICAg
IHJldHVybiBtX3dlYmdsRGVwdGhUZXh0dXJlLmdldCgpOwogICAgIH0KICAgICBpZiAoZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpKSB7CkBA
IC0xMDc5LDEwICsxMDg2LDExIEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICAgICAgbV93ZWJn
bERlYnVnUmVuZGVyZXJJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnUmVuZGVyZXJJ
bmZvPigqdGhpcyk7CiAgICAgICAgIHJldHVybiBtX3dlYmdsRGVidWdSZW5kZXJlckluZm8uZ2V0
KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9k
ZWJ1Z19zaGFkZXJzIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3Vw
cG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIpKSB7Ci0gICAgICAgIGlm
ICghbV93ZWJnbERlYnVnU2hhZGVycykKLSAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMg
PSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVidWdTaGFkZXJzPigqdGhpcyk7CisgICAgaWYgKGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlYnVnX3NoYWRlcnMiKSkgeworICAg
ICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1NoYWRlcnMpIHsKKyAgICAgICAgICAgIGlmIChtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfQU5HTEVfdHJh
bnNsYXRlZF9zaGFkZXJfc291cmNlIiB9KSkKKyAgICAgICAgICAgICAgICBtX3dlYmdsRGVidWdT
aGFkZXJzID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnU2hhZGVycz4oKnRoaXMpOworICAg
ICAgICB9CiAgICAgICAgIHJldHVybiBtX3dlYmdsRGVidWdTaGFkZXJzLmdldCgpOwogICAgIH0K
IApAQCAtMTA5Niw5MCArMTEwNCw5MCBAQCBWZWN0b3I8U3RyaW5nPiBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkKICAgICBpZiAobV9pc1BlbmRpbmdQb2xp
Y3lSZXNvbHV0aW9uKQogICAgICAgICByZXR1cm4gcmVzdWx0OwogCi0gICAgaWYgKG1fY29udGV4
dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpKQotICAg
ICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdGV4dHVyZV9mbG9hdCIpOwotICAgIGlmIChtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFy
IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpOwot
ICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1
cmVfaGFsZl9mbG9hdCIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdGV4dHVyZV9oYWxm
X2Zsb2F0Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJH
TF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpKQotICAgICAgICByZXN1bHQuYXBwZW5k
KCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpOwotICAgIGlmIChtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGlj
IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5p
c290cm9waWMiKTsKKyAgICBhdXRvJiBleHRlbnNpb25zID0gbV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCk7CisgICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09F
U190ZXh0dXJlX2Zsb2F0IiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwg
eyAiT0VTX3RleHR1cmVfZmxvYXQiIH0pOworICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKEFT
Q0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiIH0pKQorICAgICAgICBy
ZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiIH0p
OworICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4
dHVyZV9oYWxmX2Zsb2F0IiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwg
eyAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIgfSk7CisgICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9y
dHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIiB9KSkK
KyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfaGFsZl9m
bG9hdF9saW5lYXIiIH0pOworICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJh
bCB7ICJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pKQorICAgICAgICByZXN1
bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNv
dHJvcGljIiB9KTsKICAgICBpZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVk
KCp0aGlzKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRf
dGV4dHVyZV9hdGMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VC
S0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiIH0pOwogICAgIGlmIChXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUFZSVEM6OnN1cHBvcnRlZCgqdGhpcykpCi0gICAgICAgIHJlc3VsdC5hcHBl
bmQoIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKTsKKyAgICAgICAgcmVz
dWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVy
ZV9wdnJ0YyIgfSk7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0
ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9jb21wcmVzc2VkX3RleHR1
cmVfczN0YyIpOworICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9j
b21wcmVzc2VkX3RleHR1cmVfczN0YyIgfSk7CiAgICAgaWYgKFdlYkdMRGVwdGhUZXh0dXJlOjpz
dXBwb3J0ZWQoKmdyYXBoaWNzQ29udGV4dDNEKCkpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJX
RUJHTF9kZXB0aF90ZXh0dXJlIik7Ci0gICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfbG9zZV9jb250
ZXh0Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9B
TkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgi
V0VCR0xfZGVidWdfc2hhZGVycyIpOwotICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlYnVnX3Jl
bmRlcmVyX2luZm8iKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VC
R0xfZGVwdGhfdGV4dHVyZSIgfSk7CisgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAi
V0VCR0xfbG9zZV9jb250ZXh0IiB9KTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJ
SUxpdGVyYWwgeyAiR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIiB9KSkKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfZGVidWdfc2hhZGVycyIgfSk7
CisgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfZGVidWdfcmVuZGVyZXJf
aW5mbyIgfSk7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1XZWJHTEdldEluZm8gV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFu
eSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0
ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBwbmFtZSkK
IHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZUZyYW1lYnVm
ZmVyRnVuY1BhcmFtZXRlcnMoImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsIHRh
cmdldCwgYXR0YWNobWVudCkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCiAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmluZGluZyB8
fCAhbV9mcmFtZWJ1ZmZlckJpbmRpbmctPm9iamVjdCgpKSB7CiAgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgImdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJubyBmcmFtZWJ1ZmZlciBib3VuZCIpOwotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0K
ICAgICAKLSAgICBXZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0ID0gbV9mcmFtZWJ1ZmZlckJpbmRp
bmctPmdldEF0dGFjaG1lbnRPYmplY3QoYXR0YWNobWVudCk7CisgICAgYXV0byogb2JqZWN0ID0g
bV9mcmFtZWJ1ZmZlckJpbmRpbmctPmdldEF0dGFjaG1lbnRPYmplY3QoYXR0YWNobWVudCk7CiAg
ICAgaWYgKCFvYmplY3QpIHsKICAgICAgICAgaWYgKHBuYW1lID09IEdyYXBoaWNzQ29udGV4dDNE
OjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKQotICAgICAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSk7Ci0gICAgICAgIC8vIE9wZW5H
TCBFUyAyLjAgc3BlY2lmaWVzIElOVkFMSURfRU5VTSBpbiB0aGlzIGNhc2UsIHdoaWxlIGRlc2t0
b3AgR0wKLSAgICAgICAgLy8gc3BlY2lmaWVzIElOVkFMSURfT1BFUkFUSU9OLgorICAgICAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSk7
CisgICAgICAgIC8vIE9wZW5HTCBFUyAyLjAgc3BlY2lmaWVzIElOVkFMSURfRU5VTSBpbiB0aGlz
IGNhc2UsIHdoaWxlIGRlc2t0b3AgR0wgc3BlY2lmaWVzIElOVkFMSURfT1BFUkFUSU9OLgogICAg
ICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAi
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5h
bWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICB9CiAgICAgCi0gICAgQVNTRVJUKG9iamVjdC0+aXNUZXh0dXJlKCkgfHwgb2Jq
ZWN0LT5pc1JlbmRlcmJ1ZmZlcigpKTsKICAgICBpZiAob2JqZWN0LT5pc1RleHR1cmUoKSkgewog
ICAgICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEU6Ci0gICAgICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFKTsKKyAgICAgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUpOwog
ICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09C
SkVDVF9OQU1FOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhyZWludGVycHJldF9j
YXN0PFdlYkdMVGV4dHVyZSo+KG9iamVjdCkpOworICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWZQ
dHIocmVpbnRlcnByZXRfY2FzdDxXZWJHTFRleHR1cmUmPigqb2JqZWN0KSk7CiAgICAgICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MRVZF
TDoKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVO
VF9URVhUVVJFX0NVQkVfTUFQX0ZBQ0U6CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkc6IHsKICAgICAgICAgICAgIEdD
M0RpbnQgdmFsdWUgPSAwOwogICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXJpdih0YXJnZXQsIGF0dGFjaG1lbnQsIHBuYW1lLCAmdmFsdWUpOwot
ICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAgICAgICByZXR1
cm4gdmFsdWU7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBmb3IgdGV4
dHVyZSBhdHRhY2htZW50Iik7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CisgICAg
ICAgIEFTU0VSVChvYmplY3QtPmlzUmVuZGVyYnVmZmVyKCkpOwogICAgICAgICBzd2l0Y2ggKHBu
YW1lKSB7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfT0JKRUNUX1RZUEU6Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBo
aWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVIpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSKTsKICAgICAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFN
RToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8ocmVpbnRlcnByZXRfY2FzdDxXZWJH
TFJlbmRlcmJ1ZmZlcio+KG9iamVjdCkpOworICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIo
cmVpbnRlcnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZlciY+KCpvYmplY3QpKTsKICAgICAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNP
RElORyA6IHsKLSAgICAgICAgICAgIFdlYkdMUmVuZGVyYnVmZmVyKiByZW5kZXJCdWZmZXIgPSBy
ZWludGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyKj4ob2JqZWN0KTsKLSAgICAgICAgICAg
IEdDM0RlbnVtIHJlbmRlckJ1ZmZlckZvcm1hdCA9IHJlbmRlckJ1ZmZlci0+Z2V0SW50ZXJuYWxG
b3JtYXQoKTsKLSAgICAgICAgICAgIGlmIChyZW5kZXJCdWZmZXJGb3JtYXQgPT0gR3JhcGhpY3ND
b250ZXh0M0Q6OlNSR0I4X0FMUEhBOAotICAgICAgICAgICAgICAgIHx8IHJlbmRlckJ1ZmZlckZv
cm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9TUkdCOF9FVEMyCi0gICAgICAg
ICAgICAgICAgfHwgcmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01Q
UkVTU0VEX1NSR0I4X0FMUEhBOF9FVEMyX0VBQwotICAgICAgICAgICAgICAgIHx8IHJlbmRlckJ1
ZmZlckZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9TUkdCOF9QVU5DSFRI
Uk9VR0hfQUxQSEExX0VUQzIpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCKTsKKyAgICAgICAgICAgIGF1dG8mIHJlbmRlckJ1ZmZl
ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5kZXJidWZmZXImPigqb2JqZWN0KTsKKyAgICAg
ICAgICAgIGF1dG8gZm9ybWF0ID0gcmVuZGVyQnVmZmVyLmdldEludGVybmFsRm9ybWF0KCk7Cisg
ICAgICAgICAgICBpZiAoZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCOF9BTFBIQTgK
KyAgICAgICAgICAgICAgICB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNT
RURfU1JHQjhfRVRDMgorICAgICAgICAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRl
eHQzRDo6Q09NUFJFU1NFRF9TUkdCOF9BTFBIQThfRVRDMl9FQUMKKyAgICAgICAgICAgICAgICB8
fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfUFVOQ0hUSFJP
VUdIX0FMUEhBMV9FVEMyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihHcmFwaGljc0NvbnRleHQzRDo6U1JHQik7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOworICAg
ICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihHcmFwaGljc0NvbnRleHQzRDo6
TElORUFSKTsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgc3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIGZvciByZW5k
ZXJidWZmZXIgYXR0YWNobWVudCIpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygp
OworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0x
MTkxLDE5ICsxMTk5LDE2IEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVG
cmFtZWJ1ZmZlckZ1bmNQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGZ1bmN0CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAgICAgc3dpdGNoIChhdHRhY2htZW50KSB7Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDA6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6REVQVEhfQVRUQUNITUVOVDoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVO
Q0lMX0FUVEFDSE1FTlQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfU1RFTkNJ
TF9BVFRBQ0hNRU5UOgotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ZGVmYXVsdDoKLSAgICAgICAgaWYgKGF0dGFjaG1lbnQgPiBHcmFwaGljc0NvbnRleHQzRDo6Q09M
T1JfQVRUQUNITUVOVDAKLSAgICAgICAgICAgICYmIGF0dGFjaG1lbnQgPCBzdGF0aWNfY2FzdDxH
QzNEZW51bT4oR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwICsgZ2V0TWF4Q29s
b3JBdHRhY2htZW50cygpKSkKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBpZiAoYXR0YWNo
bWVudCA+PSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAgJiYgYXR0YWNobWVu
dCA8IHN0YXRpY19jYXN0PEdDM0RlbnVtPihHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNI
TUVOVDAgKyBnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkpKQorICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElE
X0VOVU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgYXR0YWNobWVudCIpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiB0cnVlOwogfQogCiBHQzNEaW50IFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OmdldE1heERyYXdCdWZmZXJzKCkKQEAgLTEzOTUsNyArMTQwMCw3IEBA
IEdDM0RlbnVtIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJhc2VJbnRlcm5hbEZvcm1hdEZyb21J
bnRlcm5hbEZvcm1hdChHQzNEZW51bSBpCiBib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6Omlz
SW50ZWdlckZvcm1hdChHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCkKIHsKICAgICAvLyBGSVhNRTog
YmFzZUludGVybmFsRm9ybWF0RnJvbUludGVybmFsRm9ybWF0KCkgbmV2ZXIgcmV0dXJucyBhbnkg
b2YgdGhlc2UgZW51bXMuCi0gICAgLy8gQ3VycmVudGx5LCBUaGlzIGZ1bmN0aW9uIGVycm9uZW91
c2x5IGFsd2F5cyByZXR1cm5zIGZhbHNlLgorICAgIC8vIEJlY2F1c2Ugb2YgdGhhdCwgdGhpcyBm
dW5jdGlvbiBlcnJvbmVvdXNseSBhbHdheXMgcmV0dXJucyBmYWxzZSEKICAgICBzd2l0Y2ggKGJh
c2VJbnRlcm5hbEZvcm1hdEZyb21JbnRlcm5hbEZvcm1hdChpbnRlcm5hbGZvcm1hdCkpIHsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRURfSU5URUdFUjoKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpSR19JTlRFR0VSOgpAQCAtMTQwNiwxMSArMTQxMSwxMCBAQCBib29sIFdlYkdM
MlJlbmRlcmluZ0NvbnRleHQ6OmlzSW50ZWdlckZvcm1hdChHQzNEZW51bSBpbnRlcm5hbGZvcm1h
dCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlz
Q29udGV4dExvc3RPclBlbmRpbmcoKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwot
ICAgIGNvbnN0IGludCBpbnRaZXJvID0gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
c3dpdGNoIChwbmFtZSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFDVElWRV9URVhU
VVJFOgogICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwpAQCAt
MTQyMSw3ICsxNDI1LDcgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6Omdl
dFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpB
TFBIQV9CSVRTOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9CVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhtX2JvdW5kQXJyYXlCdWZmZXIuZ2V0KCkpOworICAgICAgICByZXR1
cm4gbV9ib3VuZEFycmF5QnVmZmVyOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkJMRU5E
OgogICAgICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6QkxFTkRfQ09MT1I6CkBAIC0xNDQ1LDE2ICsxNDQ5LDE2IEBAIFdl
YkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0g
cG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfV1JJVEVNQVNLOgogICAg
ICAgICByZXR1cm4gZ2V0Qm9vbGVhbkFycmF5UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUzoKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFVpbnQzMkFycmF5PihVaW50MzJBcnJheTo6Y3Jl
YXRlKG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLmRhdGEoKSwgbV9jb21wcmVzc2VkVGV4dHVy
ZUZvcm1hdHMuc2l6ZSgpKSkpOworICAgICAgICByZXR1cm4gVWludDMyQXJyYXk6OmNyZWF0ZSht
X2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5kYXRhKCksIG1fY29tcHJlc3NlZFRleHR1cmVGb3Jt
YXRzLnNpemUoKSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VMTF9GQUNFOgogICAg
ICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6Q1VMTF9GQUNFX01PREU6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZElu
dFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VSUkVOVF9Q
Uk9HUkFNOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fY3VycmVudFByb2dyYW0uZ2V0
KCkpOworICAgICAgICByZXR1cm4gbV9jdXJyZW50UHJvZ3JhbTsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpERVBUSF9CSVRTOgogICAgICAgICBpZiAoIW1fZnJhbWVidWZmZXJCaW5kaW5n
ICYmICFtX2F0dHJpYnV0ZXMuZGVwdGgpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KGludFplcm8pOworICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIHJldHVybiBnZXRJbnRQ
YXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NMRUFS
X1ZBTFVFOgogICAgICAgICByZXR1cm4gZ2V0RmxvYXRQYXJhbWV0ZXIocG5hbWUpOwpAQCAtMTQ2
OSw5ICsxNDczLDkgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBh
cmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpESVRI
RVI6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpFTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HOgotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVu
dEFycmF5QnVmZmVyKCkpOworICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihtX2JvdW5kVmVydGV4
QXJyYXlPYmplY3QtPmdldEVsZW1lbnRBcnJheUJ1ZmZlcigpKTsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpGUkFNRUJVRkZFUl9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKG1fZnJhbWVidWZmZXJCaW5kaW5nLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIG1fZnJhbWVi
dWZmZXJCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZST05UX0ZBQ0U6CiAg
ICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6R0VORVJBVEVfTUlQTUFQX0hJTlQ6CkBAIC0xNTE5LDkgKzE1MjMs
OSBAQCBXZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdD
M0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFRF9CSVRTOgogICAg
ICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpSRU5ERVJCVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhtX3JlbmRlcmJ1ZmZlckJpbmRpbmcuZ2V0KCkpOworICAgICAgICByZXR1cm4gbV9yZW5kZXJi
dWZmZXJCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkVSOgotICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFN0cmluZygiV2ViS2l0IFdlYkdMIikpOworICAgICAg
ICByZXR1cm4gU3RyaW5nIHsgQVNDSUlMaXRlcmFsIHsgIldlYktpdCBXZWJHTCIgfSB9OwogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNBTVBMRV9CVUZGRVJTOgogICAgICAgICByZXR1cm4g
Z2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTQU1Q
TEVfQ09WRVJBR0VfSU5WRVJUOgpAQCAtMTUzNSw3ICsxNTM5LDcgQEAgV2ViR0xHZXRJbmZvIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTQ0lTU09SX1RFU1Q6CiAgICAgICAgIHJldHVybiBnZXRC
b29sZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTSEFE
SU5HX0xBTkdVQUdFX1ZFUlNJT046Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oIldlYkdM
IEdMU0wgRVMgMS4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6
OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTikgKyAiKSIpOworICAgICAgICByZXR1cm4gIldlYkdM
IEdMU0wgRVMgMS4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6
OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTikgKyAiKSI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6U1RFTkNJTF9CQUNLX0ZBSUw6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBh
cmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9CQUNL
X0ZVTkM6CkBAIC0xNTUyLDcgKzE1NTYsNyBAQCBXZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgICAgICByZXR1cm4gZ2V0
VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlNURU5DSUxfQklUUzoKICAgICAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAhbV9h
dHRyaWJ1dGVzLnN0ZW5jaWwpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKGludFpl
cm8pOworICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0
ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQ0xFQVJfVkFM
VUU6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwpAQCAtMTU3NSwzOCAr
MTU3OSwzOCBAQCBXZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1l
dGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNVQlBJWEVM
X0JJVFM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfQklORElOR18yRDoKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlMkRC
aW5kaW5nLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIG1fdGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4
dHVyZVVuaXRdLnRleHR1cmUyREJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
VEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1f
dGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmVDdWJlTWFwQmluZGluZy5n
ZXQoKSk7CisgICAgICAgIHJldHVybiBtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0
XS50ZXh0dXJlQ3ViZU1hcEJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5Q
QUNLX0FMSUdOTUVOVDoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0ZMSVBfWV9XRUJHTDoKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhtX3VucGFja0ZsaXBZKTsKKyAgICAgICAgcmV0dXJuIG1fdW5w
YWNrRmxpcFk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX1BSRU1VTFRJUExZ
X0FMUEhBX1dFQkdMOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdW5wYWNrUHJlbXVs
dGlwbHlBbHBoYSk7CisgICAgICAgIHJldHVybiBtX3VucGFja1ByZW11bHRpcGx5QWxwaGE7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9X
RUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3VucGFja0NvbG9yc3BhY2VDb252
ZXJzaW9uKTsKKyAgICAgICAgcmV0dXJuIG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb247CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVORE9SOgotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKFN0cmluZygiV2ViS2l0IikpOworICAgICAgICByZXR1cm4gU3RyaW5nIHsgQVNDSUlM
aXRlcmFsIHsgIldlYktpdCIgfSB9OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlNJ
T046Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oIldlYkdMIDIuMCAoIiArIG1fY29udGV4
dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRVJTSU9OKSArICIpIik7CisgICAgICAg
IHJldHVybiAiV2ViR0wgMi4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250
ZXh0M0Q6OlZFUlNJT04pICsgIikiOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZJRVdQ
T1JUOgogICAgICAgICByZXR1cm4gZ2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihwbmFtZSk7CiAg
ICAgY2FzZSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTDoK
ICAgICAgICAgaWYgKG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbykKLSAgICAgICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8obV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlJF
TkRFUkVSKSk7CisgICAgICAgICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhp
Y3NDb250ZXh0M0Q6OlJFTkRFUkVSKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhp
Y3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFt
ZXRlciBuYW1lLCBXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIG5vdCBlbmFibGVkIik7Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
Y2FzZSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpVTk1BU0tFRF9WRU5ET1JfV0VCR0w6CiAgICAg
ICAgIGlmIChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCi0gICAgICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1Ip
KTsKKyAgICAgICAgICAgIHJldHVybiBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRl
eHQzRDo6VkVORE9SKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1l
LCBXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBFeHRl
bnNpb25zM0Q6Ok1BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVDogLy8gRVhUX3RleHR1cmVf
ZmlsdGVyX2FuaXNvdHJvcGljCiAgICAgICAgIGlmIChtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ry
b3BpYykKICAgICAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihFeHRlbnNp
b25zM0Q6Ok1BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCk7CiAgICAgICAgIHN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIi
LCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGlj
IG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBR01FTlRfU0hB
REVSX0RFUklWQVRJVkVfSElOVDoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFt
ZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TUFYXzNEX1RFWFRVUkVfU0laRToKQEAg
LTE2ODksMTIgKzE2OTMsMTAgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5Q
YXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOSUZPUk1fQlVG
RkVSX09GRlNFVF9BTElHTk1FTlQ6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5h
bWUpOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BUlJBWV9CSU5ESU5HOiB7
Ci0gICAgICAgIGlmICghbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3Qo
KSkKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8V2ViR0xWZXJ0
ZXhBcnJheU9iamVjdCo+KG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKSkpOwotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX0FSUkFZX0JJTkRJTkc6CisgICAgICAgIGlm
IChtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpKQorICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHN0YXRpY19jYXN0
PFdlYkdMVmVydGV4QXJyYXlPYmplY3QmPigqbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0KSk7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RFJBV19CVUZGRVIwOgogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpE
UkFXX0JVRkZFUjI6CkBAIC0xNzEwLDE0ICsxNzEyLDEwIEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6RFJBV19CVUZGRVIxMjoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpEUkFXX0JVRkZFUjEzOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVG
RkVSMTQ6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RFJBV19CVUZGRVIxNTogewotICAg
ICAgICBHQzNEaW50IHZhbHVlID0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkU7CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6RFJBV19CVUZGRVIxNToKICAgICAgICAgaWYgKG1fZnJhbWVidWZm
ZXJCaW5kaW5nKQotICAgICAgICAgICAgdmFsdWUgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0
RHJhd0J1ZmZlcihwbmFtZSk7Ci0gICAgICAgIGVsc2UgLy8gZW11bGF0ZWQgYmFja2J1ZmZlcgot
ICAgICAgICAgICAgdmFsdWUgPSBtX2JhY2tEcmF3QnVmZmVyOwotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKHZhbHVlKTsKLSAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG1fZnJhbWVi
dWZmZXJCaW5kaW5nLT5nZXREcmF3QnVmZmVyKHBuYW1lKTsKKyAgICAgICAgcmV0dXJuIG1fYmFj
a0RyYXdCdWZmZXI7IC8vIGVtdWxhdGVkIGJhY2tidWZmZXIKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpDT1BZX1JFQURfQlVGRkVSOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNP
UFlfV1JJVEVfQlVGRkVSOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlBJWEVMX1BBQ0tf
QlVGRkVSX0JJTkRJTkc6ICAgCkBAIC0xNzMwLDEwICsxNzI4LDEwIEBAIFdlYkdMR2V0SW5mbyBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5H
OgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOSUZPUk1fQlVGRkVSX0JJTkRJTkc6CiAg
ICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0s
ICJnZXRQYXJhbWV0ZXIiLCAicGFyYW1ldGVyIG5hbWUgbm90IHlldCBzdXBwb3J0ZWQiKTsKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6
SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICB9CiB9CiAKQEAgLTE3NTQsNyArMTc1Miw3IEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6dmFsaWRhdGVJbmRleEFycmF5Q29uc2VydmF0aXZlKEdDM0RlbnVtIHR5cGUsIHVuc2ln
CiAgICAgLy8gVGhlIGNhc2UgY291bnQ9PTAgaXMgYWxyZWFkeSBkZWFsdCB3aXRoIGluIGRyYXdF
bGVtZW50cyBiZWZvcmUgdmFsaWRhdGVJbmRleEFycmF5Q29uc2VydmF0aXZlLgogICAgIGlmICgh
bnVtRWxlbWVudHMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjb25zdCBBcnJheUJ1ZmZl
ciogYnVmZmVyID0gZWxlbWVudEFycmF5QnVmZmVyLT5lbGVtZW50QXJyYXlCdWZmZXIoKTsKKyAg
ICBhdXRvKiBidWZmZXIgPSBlbGVtZW50QXJyYXlCdWZmZXItPmVsZW1lbnRBcnJheUJ1ZmZlcigp
OwogICAgIEFTU0VSVChidWZmZXIpOwogICAgIAogICAgIGludCBtYXhJbmRleCA9IGVsZW1lbnRB
cnJheUJ1ZmZlci0+Z2V0Q2FjaGVkTWF4SW5kZXgodHlwZSk7CkBAIC0xODA2LDcgKzE4MDQsNiBA
QCBib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlQmxlbmRFcXVhdGlvbihjb25z
dCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDMwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6Ok1J
TjoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpNQVg6CiAgICAgICAgIHJldHVybiB0cnVl
OwotICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlk
IG1vZGUiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDc1NWRlNmJiZGQyNjk4
MTY3ZDNiYWEwZmRkZDM0YmJlMDYxMTVkNTkuLjhiY2YwYmUzZDM1ZDI3OTRiMjYwNzEyNmIzOGE4
MDU1Y2JmNjVmMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TDJSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdDsKIGNsYXNzIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSB7CiBwdWJsaWM6CiAgICAgV2ViR0wyUmVuZGVyaW5n
Q29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwotICAg
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWZQdHI8R3JhcGhp
Y3NDb250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOworICAgIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYs
IFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwogCiAgICAgLyogQnVmZmVyIG9iamVjdHMgKi8KICAg
ICB1c2luZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpidWZmZXJEYXRhOwpAQCAtNTIsMTAg
KzUyLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGdldEJ1ZmZlclN1YkRhdGEoR0MzRGVudW0gdGFy
Z2V0LCBsb25nIGxvbmcgc3JjQnl0ZU9mZnNldCwgUmVmUHRyPEFycmF5QnVmZmVyVmlldz4mJiBk
c3REYXRhLCBHQzNEdWludCBkc3RPZmZzZXQgPSAwLCBHQzNEdWludCBsZW5ndGggPSAwKTsKICAg
ICAKICAgICAvKiBGcmFtZWJ1ZmZlciBvYmplY3RzICovCi0gICAgV2ViR0xHZXRJbmZvIGdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0
dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKKyAgICBXZWJHTEFueSBnZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2ht
ZW50LCBHQzNEZW51bSBwbmFtZSkgZmluYWw7CiAgICAgdm9pZCBibGl0RnJhbWVidWZmZXIoR0Mz
RGludCBzcmNYMCwgR0MzRGludCBzcmNZMCwgR0MzRGludCBzcmNYMSwgR0MzRGludCBzcmNZMSwg
R0MzRGludCBkc3RYMCwgR0MzRGludCBkc3RZMCwgR0MzRGludCBkc3RYMSwgR0MzRGludCBkc3RZ
MSwgR0MzRGJpdGZpZWxkIG1hc2ssIEdDM0RlbnVtIGZpbHRlcik7CiAgICAgdm9pZCBmcmFtZWJ1
ZmZlclRleHR1cmVMYXllcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdD
M0R1aW50IHRleHR1cmUsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgbGF5ZXIpOwotICAgIFdlYkdM
R2V0SW5mbyBnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0Rl
bnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0SW50
ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRlcm5hbGZv
cm1hdCwgR0MzRGVudW0gcG5hbWUpOwogICAgIHZvaWQgaW52YWxpZGF0ZUZyYW1lYnVmZmVyKEdD
M0RlbnVtIHRhcmdldCwgVmVjdG9yPEdDM0RlbnVtPiBhdHRhY2htZW50cyk7CiAgICAgdm9pZCBp
bnZhbGlkYXRlU3ViRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBWZWN0b3I8R0MzRGVudW0+
IGF0dGFjaG1lbnRzLCBHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNE
c2l6ZWkgaGVpZ2h0KTsKICAgICB2b2lkIHJlYWRCdWZmZXIoR0MzRGVudW0gc3JjKTsKQEAgLTEx
NiwyOSArMTE2LDI5IEBAIHB1YmxpYzoKICAgICAKICAgICAvKiBRdWVyeSBPYmplY3RzICovCiAg
ICAgUmVmUHRyPFdlYkdMUXVlcnk+IGNyZWF0ZVF1ZXJ5KCk7Ci0gICAgdm9pZCBkZWxldGVRdWVy
eShXZWJHTFF1ZXJ5KiBxdWVyeSk7Ci0gICAgR0MzRGJvb2xlYW4gaXNRdWVyeShXZWJHTFF1ZXJ5
KiBxdWVyeSk7Ci0gICAgdm9pZCBiZWdpblF1ZXJ5KEdDM0RlbnVtIHRhcmdldCwgV2ViR0xRdWVy
eSogcXVlcnkpOworICAgIHZvaWQgZGVsZXRlUXVlcnkoV2ViR0xRdWVyeSopOworICAgIEdDM0Ri
b29sZWFuIGlzUXVlcnkoV2ViR0xRdWVyeSopOworICAgIHZvaWQgYmVnaW5RdWVyeShHQzNEZW51
bSB0YXJnZXQsIFdlYkdMUXVlcnkqKTsKICAgICB2b2lkIGVuZFF1ZXJ5KEdDM0RlbnVtIHRhcmdl
dCk7CiAgICAgUmVmUHRyPFdlYkdMUXVlcnk+IGdldFF1ZXJ5KEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGVudW0gcG5hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRRdWVyeVBhcmFtZXRlcihXZWJHTFF1
ZXJ5KiBxdWVyeSwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldFF1ZXJ5UGFyYW1l
dGVyKFdlYkdMUXVlcnkqLCBHQzNEZW51bSBwbmFtZSk7CiAgICAgCiAgICAgLyogU2FtcGxlciBP
YmplY3RzICovCiAgICAgUmVmUHRyPFdlYkdMU2FtcGxlcj4gY3JlYXRlU2FtcGxlcigpOwotICAg
IHZvaWQgZGVsZXRlU2FtcGxlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIpOwotICAgIEdDM0Rib29s
ZWFuIGlzU2FtcGxlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIpOwotICAgIHZvaWQgYmluZFNhbXBs
ZXIoR0MzRHVpbnQgdW5pdCwgV2ViR0xTYW1wbGVyKiBzYW1wbGVyKTsKLSAgICB2b2lkIHNhbXBs
ZXJQYXJhbWV0ZXJpKFdlYkdMU2FtcGxlciogc2FtcGxlciwgR0MzRGVudW0gcG5hbWUsIEdDM0Rp
bnQgcGFyYW0pOwotICAgIHZvaWQgc2FtcGxlclBhcmFtZXRlcmYoV2ViR0xTYW1wbGVyKiBzYW1w
bGVyLCBHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0IHBhcmFtKTsKLSAgICBXZWJHTEdldEluZm8g
Z2V0U2FtcGxlclBhcmFtZXRlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIsIEdDM0RlbnVtIHBuYW1l
KTsKKyAgICB2b2lkIGRlbGV0ZVNhbXBsZXIoV2ViR0xTYW1wbGVyKik7CisgICAgR0MzRGJvb2xl
YW4gaXNTYW1wbGVyKFdlYkdMU2FtcGxlciopOworICAgIHZvaWQgYmluZFNhbXBsZXIoR0MzRHVp
bnQgdW5pdCwgV2ViR0xTYW1wbGVyKik7CisgICAgdm9pZCBzYW1wbGVyUGFyYW1ldGVyaShXZWJH
TFNhbXBsZXIqLCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7CisgICAgdm9pZCBzYW1w
bGVyUGFyYW1ldGVyZihXZWJHTFNhbXBsZXIqLCBHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0IHBh
cmFtKTsKKyAgICBXZWJHTEFueSBnZXRTYW1wbGVyUGFyYW1ldGVyKFdlYkdMU2FtcGxlciosIEdD
M0RlbnVtIHBuYW1lKTsKICAgICAKICAgICAvKiBTeW5jIG9iamVjdHMgKi8KICAgICBSZWZQdHI8
V2ViR0xTeW5jPiBmZW5jZVN5bmMoR0MzRGVudW0gY29uZGl0aW9uLCBHQzNEYml0ZmllbGQgZmxh
Z3MpOwotICAgIEdDM0Rib29sZWFuIGlzU3luYyhXZWJHTFN5bmMqIHN5bmMpOwotICAgIHZvaWQg
ZGVsZXRlU3luYyhXZWJHTFN5bmMqIHN5bmMpOwotICAgIEdDM0RlbnVtIGNsaWVudFdhaXRTeW5j
KFdlYkdMU3luYyogc3luYywgR0MzRGJpdGZpZWxkIGZsYWdzLCBHQzNEdWludDY0IHRpbWVvdXQp
OwotICAgIHZvaWQgd2FpdFN5bmMoV2ViR0xTeW5jKiBzeW5jLCBHQzNEYml0ZmllbGQgZmxhZ3Ms
IEdDM0R1aW50NjQgdGltZW91dCk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFN5bmNQYXJhbWV0ZXIo
V2ViR0xTeW5jKiBzeW5jLCBHQzNEZW51bSBwbmFtZSk7CisgICAgR0MzRGJvb2xlYW4gaXNTeW5j
KFdlYkdMU3luYyopOworICAgIHZvaWQgZGVsZXRlU3luYyhXZWJHTFN5bmMqKTsKKyAgICBHQzNE
ZW51bSBjbGllbnRXYWl0U3luYyhXZWJHTFN5bmMqLCBHQzNEYml0ZmllbGQgZmxhZ3MsIEdDM0R1
aW50NjQgdGltZW91dCk7CisgICAgdm9pZCB3YWl0U3luYyhXZWJHTFN5bmMqLCBHQzNEYml0Zmll
bGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7CisgICAgV2ViR0xBbnkgZ2V0U3luY1BhcmFt
ZXRlcihXZWJHTFN5bmMqLCBHQzNEZW51bSBwbmFtZSk7CiAgICAgCiAgICAgLyogVHJhbnNmb3Jt
IEZlZWRiYWNrICovCiAgICAgUmVmUHRyPFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+IGNyZWF0ZVRy
YW5zZm9ybUZlZWRiYWNrKCk7CkBAIC0xNTUsMTIgKzE1NSwxMiBAQCBwdWJsaWM6CiAgICAgLyog
VW5pZm9ybSBCdWZmZXIgT2JqZWN0cyBhbmQgVHJhbnNmb3JtIEZlZWRiYWNrIEJ1ZmZlcnMgKi8K
ICAgICB2b2lkIGJpbmRCdWZmZXJCYXNlKEdDM0RlbnVtIHRhcmdldCwgR0MzRHVpbnQgaW5kZXgs
IFdlYkdMQnVmZmVyKiBidWZmZXIpOwogICAgIHZvaWQgYmluZEJ1ZmZlclJhbmdlKEdDM0RlbnVt
IHRhcmdldCwgR0MzRHVpbnQgaW5kZXgsIFdlYkdMQnVmZmVyKiBidWZmZXIsIEdDM0RpbnQ2NCBv
ZmZzZXQsIEdDM0RpbnQ2NCBzaXplKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4KTsKKyAgICBXZWJHTEFueSBnZXRJ
bmRleGVkUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRHVpbnQgaW5kZXgpOwogICAgIFVp
bnQzMkFycmF5KiBnZXRVbmlmb3JtSW5kaWNlcyhXZWJHTFByb2dyYW0qLCBWZWN0b3I8U3RyaW5n
PiB1bmlmb3JtTmFtZXMpOwogICAgIEludDMyQXJyYXkqIGdldEFjdGl2ZVVuaWZvcm1zKFdlYkdM
UHJvZ3JhbSosIFJlZlB0cjxVaW50MzJBcnJheT4mJiB1bmlmb3JtSW5kaWNlcywgR0MzRGVudW0g
cG5hbWUpOwogICAgIEdDM0R1aW50IGdldFVuaWZvcm1CbG9ja0luZGV4KFdlYkdMUHJvZ3JhbSos
IFN0cmluZyB1bmlmb3JtQmxvY2tOYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0QWN0aXZlVW5p
Zm9ybUJsb2NrUGFyYW1ldGVyKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50IHVuaWZvcm1CbG9ja0lu
ZGV4LCBHQzNEZW51bSBwbmFtZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEFjdGl2ZVVuaWZvcm1C
bG9ja05hbWUoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgpOworICAg
IFdlYkdMQW55IGdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBH
QzNEdWludCB1bmlmb3JtQmxvY2tJbmRleCwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55
IGdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9y
bUJsb2NrSW5kZXgpOwogICAgIHZvaWQgdW5pZm9ybUJsb2NrQmluZGluZyhXZWJHTFByb2dyYW0q
LCBHQzNEdWludCB1bmlmb3JtQmxvY2tJbmRleCwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrQmluZGlu
Zyk7CiAgICAgCiAgICAgLyogVmVydGV4IEFycmF5IE9iamVjdHMgKi8KQEAgLTE3NSw3ICsxNzUs
NyBAQCBwcml2YXRlOgogICAgIC8qIEV4dGVuc2lvbnMgKi8KICAgICBXZWJHTEV4dGVuc2lvbiog
Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYpIGZpbmFsOwogICAgIFZlY3RvcjxTdHJpbmc+IGdl
dFN1cHBvcnRlZEV4dGVuc2lvbnMoKSBmaW5hbDsKLSAgICBXZWJHTEdldEluZm8gZ2V0UGFyYW1l
dGVyKEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKKyAgICBXZWJHTEFueSBnZXRQYXJhbWV0ZXIoR0Mz
RGVudW0gcG5hbWUpIGZpbmFsOwogCiAgICAgdm9pZCByZW5kZXJidWZmZXJTdG9yYWdlKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCkgZmluYWw7CiAgICAgdm9pZCBoaW50KEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGVudW0gbW9kZSkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTEFueS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTQ0ZWQ5NDVhM2I5M2JlYjc4NDYwZjRhYmEyODVlMWYzNDBiMmZlMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQW55LmNwcApA
QCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTEFueS5oIgorCisjaW5j
bHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNXZWJHTEJ1ZmZlci5oIgorI2luY2x1
ZGUgIkpTV2ViR0xGcmFtZWJ1ZmZlci5oIgorI2luY2x1ZGUgIkpTV2ViR0xQcm9ncmFtLmgiCisj
aW5jbHVkZSAiSlNXZWJHTFJlbmRlcmJ1ZmZlci5oIgorI2luY2x1ZGUgIkpTV2ViR0xUZXh0dXJl
LmgiCisjaW5jbHVkZSAiSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgiCisKKyNpZiBFTkFC
TEUoV0VCR0wyKQorI2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oIgorI2VuZGlm
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworLy8gRklY
TUU6IFRoaXMgbGlrZWx5IGNhbiBiZSBhdXRvZ2VuZXJhdGVkIHdpdGggYSBiaXQgb2Ygd29yay4K
K0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUmIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFs
T2JqZWN0LCBjb25zdCBXZWJHTEFueSYgYW55KQoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9u
KGFueSwKKyAgICAgICAgW10gKHN0ZDo6bnVsbHB0cl90KSB7CisgICAgICAgICAgICByZXR1cm4g
anNOdWxsKCk7CisgICAgICAgIH0sCisgICAgICAgIFtdIChib29sIHZhbHVlKSB7CisgICAgICAg
ICAgICByZXR1cm4ganNCb29sZWFuKHZhbHVlKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10gKGlu
dCB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHZhbHVlKTsKKyAgICAgICAg
fSwKKyAgICAgICAgW10gKHVuc2lnbmVkIHZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4ganNO
dW1iZXIodmFsdWUpOworICAgICAgICB9LAorICAgICAgICBbXSAobG9uZyBsb25nIHZhbHVlKSB7
CisgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIodmFsdWUpOworICAgICAgICB9LAorICAgICAg
ICBbXSAoZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBqc051bWJlcih2YWx1ZSk7
CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgU3RyaW5nJiB2YWx1ZSkgeworICAgICAg
ICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKCZzdGF0ZSwgdmFsdWUpOworICAgICAgICB9
LAorICAgICAgICBbJl0gKGNvbnN0IFZlY3Rvcjxib29sPiYgdmFsdWVzKSB7CisgICAgICAgICAg
ICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBsaXN0OworICAgICAgICAgICAgZm9yIChhdXRvJiB2YWx1
ZSA6IHZhbHVlcykKKyAgICAgICAgICAgICAgICBsaXN0LmFwcGVuZChqc0Jvb2xlYW4odmFsdWUp
KTsKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RBcnJheSgmc3RhdGUsIDAsICZnbG9iYWxP
YmplY3QsIGxpc3QpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxGbG9h
dDMyQXJyYXk+JiBhcnJheSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xv
YmFsT2JqZWN0LCBhcnJheS5nZXQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3Qg
UmVmUHRyPEludDMyQXJyYXk+JiBhcnJheSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCAmZ2xvYmFsT2JqZWN0LCBhcnJheS5nZXQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsm
XSAoY29uc3QgUmVmUHRyPFVpbnQ4QXJyYXk+JiBhcnJheSkgeworICAgICAgICAgICAgcmV0dXJu
IHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBhcnJheS5nZXQoKSk7CisgICAgICAgIH0sCisg
ICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFVpbnQzMkFycmF5PiYgYXJyYXkpIHsKKyAgICAgICAg
ICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAg
ICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTEJ1ZmZlcj4mIGJ1ZmZlcikg
eworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBidWZmZXIu
Z2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTEZyYW1l
YnVmZmVyPiYgYnVmZmVyKSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9i
YWxPYmplY3QsIGJ1ZmZlci5nZXQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3Qg
UmVmUHRyPFdlYkdMUHJvZ3JhbT4mIHByb2dyYW0pIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pT
KCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgcHJvZ3JhbS5nZXQoKSk7CisgICAgICAgIH0sCisgICAg
ICAgIFsmXSAoY29uc3QgUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPiYgYnVmZmVyKSB7CisgICAg
ICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIGJ1ZmZlci5nZXQoKSk7
CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdlYkdMVGV4dHVyZT4mIHRl
eHR1cmUpIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwg
dGV4dHVyZS5nZXQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVM+JiBhcnJheSkgeworICAgICAgICAgICAgcmV0dXJuIHRv
SlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBhcnJheS5nZXQoKSk7CisgICAgICAgIH0KKyNpZiBF
TkFCTEUoV0VCR0wyKQorICAgICAgICAsCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdlYkdM
VmVydGV4QXJyYXlPYmplY3Q+JiBhcnJheSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCAmZ2xvYmFsT2JqZWN0LCBhcnJheS5nZXQoKSk7CisgICAgICAgIH0KKyNlbmRpZgorICAg
ICk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
QW55LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmFhM2EyMTMzN2IwYzc5ZTNiZGUyN2MzODA5ODYwYzk2NWQ1YWI4MzUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5oCkBAIC0wLDAgKzEsNzAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCisjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1
ZmZlci5oIgorI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgorI2luY2x1ZGUgIldlYkdMUmVuZGVy
YnVmZmVyLmgiCisjaW5jbHVkZSAiV2ViR0xUZXh0dXJlLmgiCisjaW5jbHVkZSAiV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUy5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvRmxvYXQzMkFycmF5Lmg+Cisj
aW5jbHVkZSA8cnVudGltZS9JbnQzMkFycmF5Lmg+CisjaW5jbHVkZSA8cnVudGltZS9VaW50MzJB
cnJheS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvVWludDhBcnJheS5oPgorCisjaWYgRU5BQkxFKFdF
QkdMMikKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0LmgiCisjZW5kaWYKKworbmFt
ZXNwYWNlIEpTQyB7CitjbGFzcyBFeGVjU3RhdGU7CitjbGFzcyBKU1ZhbHVlOworfQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworCit1c2luZyBXZWJH
TEFueSA9IFZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIGJvb2wsIGludCwgdW5zaWduZWQsIGxvbmcg
bG9uZywgZmxvYXQsIFN0cmluZywgVmVjdG9yPGJvb2w+LAorICAgIFJlZlB0cjxGbG9hdDMyQXJy
YXk+LAorICAgIFJlZlB0cjxJbnQzMkFycmF5PiwKKyAgICBSZWZQdHI8VWludDMyQXJyYXk+LAor
ICAgIFJlZlB0cjxVaW50OEFycmF5PiwKKyAgICBSZWZQdHI8V2ViR0xCdWZmZXI+LAorICAgIFJl
ZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiwKKyAgICBSZWZQdHI8V2ViR0xQcm9ncmFtPiwKKyAgICBS
ZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+LAorICAgIFJlZlB0cjxXZWJHTFRleHR1cmU+LAorICAg
IFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPgorI2lmIEVOQUJMRShXRUJHTDIpCisg
ICAgLCBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4KKyNlbmRpZgorPjsKKworSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUmLCBKU0RPTUdsb2JhbE9iamVjdCYsIGNvbnN0IFdl
YkdMQW55Jik7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAppbmRleCAyMTMzZjMzZWZjOGNlMDk4
N2I0OTgzM2NiYzEwZmM3NTkxMmEwODIyLi5iNzlhN2I2ZmE3NTIzYjMyYmNlMmM4YzFlMWNiNjZk
MWM3MWVjNGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENv
bnRleHRHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0R3JvdXAuY3BwCkBAIC00OSw0MyArNDksNDAgQEAgV2ViR0xDb250ZXh0R3JvdXA6On5XZWJH
TENvbnRleHRHcm91cCgpCiAgICAgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpOwogfQogCi1H
cmFwaGljc0NvbnRleHQzRCogV2ViR0xDb250ZXh0R3JvdXA6OmdldEFHcmFwaGljc0NvbnRleHQz
RCgpCitHcmFwaGljc0NvbnRleHQzRCYgV2ViR0xDb250ZXh0R3JvdXA6OmdldEFHcmFwaGljc0Nv
bnRleHQzRCgpCiB7CiAgICAgQVNTRVJUKCFtX2NvbnRleHRzLmlzRW1wdHkoKSk7Ci0gICAgSGFz
aFNldDxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKj46Oml0ZXJhdG9yIGl0ID0gbV9jb250ZXh0
cy5iZWdpbigpOwotICAgIHJldHVybiAoKml0KS0+Z3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICBy
ZXR1cm4gKigqbV9jb250ZXh0cy5iZWdpbigpKS0+Z3JhcGhpY3NDb250ZXh0M0QoKTsKIH0KIAot
dm9pZCBXZWJHTENvbnRleHRHcm91cDo6YWRkQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlKiBjb250ZXh0KQordm9pZCBXZWJHTENvbnRleHRHcm91cDo6YWRkQ29udGV4dChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQogewotICAgIG1fY29udGV4dHMuYWRkKGNvbnRl
eHQpOworICAgIG1fY29udGV4dHMuYWRkKCZjb250ZXh0KTsKIH0KIAotdm9pZCBXZWJHTENvbnRl
eHRHcm91cDo6cmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjb250ZXh0
KQordm9pZCBXZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJiBjb250ZXh0KQogewogICAgIC8vIFdlIG11c3QgY2FsbCBkZXRhY2hBbmRSZW1v
dmVBbGxPYmplY3RzIGJlZm9yZSByZW1vdmluZyB0aGUgbGFzdCBjb250ZXh0LgotICAgIGlmICht
X2NvbnRleHRzLnNpemUoKSA9PSAxICYmIG1fY29udGV4dHMuY29udGFpbnMoY29udGV4dCkpCisg
ICAgaWYgKG1fY29udGV4dHMuc2l6ZSgpID09IDEgJiYgbV9jb250ZXh0cy5jb250YWlucygmY29u
dGV4dCkpCiAgICAgICAgIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMoKTsKIAotICAgIG1fY29u
dGV4dHMucmVtb3ZlKGNvbnRleHQpOworICAgIG1fY29udGV4dHMucmVtb3ZlKCZjb250ZXh0KTsK
IH0KIAotdm9pZCBXZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlT2JqZWN0KFdlYkdMU2hhcmVkT2Jq
ZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMQ29udGV4dEdyb3VwOjpyZW1vdmVPYmplY3QoV2ViR0xT
aGFyZWRPYmplY3QmIG9iamVjdCkKIHsKLSAgICBtX2dyb3VwT2JqZWN0cy5yZW1vdmUob2JqZWN0
KTsKKyAgICBtX2dyb3VwT2JqZWN0cy5yZW1vdmUoJm9iamVjdCk7CiB9CiAKLXZvaWQgV2ViR0xD
b250ZXh0R3JvdXA6OmFkZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0KQordm9pZCBX
ZWJHTENvbnRleHRHcm91cDo6YWRkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0JiBvYmplY3QpCiB7
Ci0gICAgbV9ncm91cE9iamVjdHMuYWRkKG9iamVjdCk7CisgICAgbV9ncm91cE9iamVjdHMuYWRk
KCZvYmplY3QpOwogfQogCiB2b2lkIFdlYkdMQ29udGV4dEdyb3VwOjpkZXRhY2hBbmRSZW1vdmVB
bGxPYmplY3RzKCkKIHsKLSAgICB3aGlsZSAoIW1fZ3JvdXBPYmplY3RzLmlzRW1wdHkoKSkgewot
ICAgICAgICBIYXNoU2V0PFdlYkdMU2hhcmVkT2JqZWN0Kj46Oml0ZXJhdG9yIGl0ID0gbV9ncm91
cE9iamVjdHMuYmVnaW4oKTsKLSAgICAgICAgKCppdCktPmRldGFjaENvbnRleHRHcm91cCgpOwot
ICAgIH0KKyAgICB3aGlsZSAoIW1fZ3JvdXBPYmplY3RzLmlzRW1wdHkoKSkKKyAgICAgICAgKCpt
X2dyb3VwT2JqZWN0cy5iZWdpbigpKS0+ZGV0YWNoQ29udGV4dEdyb3VwKCk7CiB9CiAKIHZvaWQg
V2ViR0xDb250ZXh0R3JvdXA6Omxvc2VDb250ZXh0R3JvdXAoV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6TG9zdENvbnRleHRNb2RlIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xDb250ZXh0R3JvdXAuaAppbmRleCA5ZDAxMGJmY2MyMDk5NmExNDY0ODU3YWZjZWVm
M2M0YWE3YTZiOWI3Li5iMGFmNjJmZDRhZWE2ZDdjYmUxYzZjNjJhYmUxNDVlYzU3NjIwM2Q1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKQEAg
LTI2LDI4ICsyNiwyMSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdyYXBoaWNzQ29u
dGV4dDNEOwotY2xhc3MgV2ViR0xFeHRlbnNpb247Ci1jbGFzcyBXZWJHTFNoYXJlZE9iamVjdDsK
LWNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7Ci0KIGNsYXNzIFdlYkdMQ29udGV4dEdy
b3VwIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR0xDb250ZXh0R3JvdXA+IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPFdlYkdMQ29udGV4dEdyb3VwPiBjcmVhdGUoKTsKICAgICB+V2Vi
R0xDb250ZXh0R3JvdXAoKTsKIAotICAgIHZvaWQgYWRkQ29udGV4dChXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlKik7Ci0gICAgdm9pZCByZW1vdmVDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UqKTsKKyAgICB2b2lkIGFkZENvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYp
OworICAgIHZvaWQgcmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CiAK
LSAgICB2b2lkIGFkZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCopOwotICAgIHZvaWQgcmVtb3Zl
T2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Kik7CisgICAgdm9pZCBhZGRPYmplY3QoV2ViR0xTaGFy
ZWRPYmplY3QmKTsKKyAgICB2b2lkIHJlbW92ZU9iamVjdChXZWJHTFNoYXJlZE9iamVjdCYpOwog
Ci0gICAgR3JhcGhpY3NDb250ZXh0M0QqIGdldEFHcmFwaGljc0NvbnRleHQzRCgpOworICAgIEdy
YXBoaWNzQ29udGV4dDNEJiBnZXRBR3JhcGhpY3NDb250ZXh0M0QoKTsKIAogICAgIHZvaWQgbG9z
ZUNvbnRleHRHcm91cChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpMb3N0Q29udGV4dE1vZGUp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0
LmNwcAppbmRleCA1MjNlNmU2NDJkNzQ5YjYwMjJmMzc3M2E4OGVkZjRlYTBlY2I5YmI4Li4wYjg3
Y2ZiNGQyNDNjOTUzZTkwY2VjOWM0NDc3YzJmZWQ5MjhkZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgV2ViR0xDb250ZXh0T2JqZWN0OjpXZWJHTENvbnRleHRPYmplY3QoV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYgY29udGV4dCkKIFdlYkdMQ29udGV4dE9iamVjdDo6fldlYkdMQ29udGV4dE9i
amVjdCgpCiB7CiAgICAgaWYgKG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5yZW1vdmVD
b250ZXh0T2JqZWN0KHRoaXMpOworICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNvbnRleHRPYmpl
Y3QoKnRoaXMpOwogfQogCiB2b2lkIFdlYkdMQ29udGV4dE9iamVjdDo6ZGV0YWNoQ29udGV4dCgp
CkBAIC01MCw4ICs1MCw4IEBAIHZvaWQgV2ViR0xDb250ZXh0T2JqZWN0OjpkZXRhY2hDb250ZXh0
KCkKICAgICBkZXRhY2goKTsKICAgICBpZiAobV9jb250ZXh0KSB7CiAgICAgICAgIGRlbGV0ZU9i
amVjdChtX2NvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNEKCkpOwotICAgICAgICBtX2NvbnRleHQt
PnJlbW92ZUNvbnRleHRPYmplY3QodGhpcyk7Ci0gICAgICAgIG1fY29udGV4dCA9IDA7CisgICAg
ICAgIG1fY29udGV4dC0+cmVtb3ZlQ29udGV4dE9iamVjdCgqdGhpcyk7CisgICAgICAgIG1fY29u
dGV4dCA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xHZXRJbmZvLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGVhZDFjZmQ2
Mzc0MmIwMGQ1MjQyZGU3MTk1NzIzYWIzZWYzZDFlYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdl
dEluZm8uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lm
IEVOQUJMRShXRUJHTCkKLQotI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgotCi0jaW5jbHVkZSA8
cnVudGltZS9GbG9hdDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL0ludDMyQXJyYXkuaD4K
LSNpbmNsdWRlIDxydW50aW1lL1VpbnQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9VaW50
OEFycmF5Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdl
dEluZm8oYm9vbCB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZUJvb2wpCi0gICAgLCBtX2Jvb2wo
dmFsdWUpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25l
ZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0
SW5mbyhjb25zdCBib29sKiB2YWx1ZSwgaW50IHNpemUpCi0gICAgOiBtX3R5cGUoa1R5cGVCb29s
QXJyYXkpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2lu
dCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotewotICAgIGlm
ICghdmFsdWUgfHwgc2l6ZSA8PTApCi0gICAgICAgIHJldHVybjsKLSAgICBtX2Jvb2xBcnJheS5y
ZXNpemUoc2l6ZSk7Ci0gICAgZm9yIChpbnQgaWkgPSAwOyBpaSA8IHNpemU7ICsraWkpCi0gICAg
ICAgIG1fYm9vbEFycmF5W2lpXSA9IHZhbHVlW2lpXTsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJH
TEdldEluZm8oZmxvYXQgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVGbG9hdCkKLSAgICAsIG1f
Ym9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQodmFsdWUpCi0gICAgLCBtX2ludCgwKQotICAgICwg
bV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86
OldlYkdMR2V0SW5mbyhpbnQgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVJbnQpCi0gICAgLCBt
X2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCh2YWx1ZSkKLSAgICAs
IG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLXsKLX0KLQotV2ViR0xHZXRJbmZv
OjpXZWJHTEdldEluZm8oKQotICAgIDogbV90eXBlKGtUeXBlTnVsbCkKLSAgICAsIG1fYm9vbChm
YWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVk
SW50KDApCi0gICAgLCBtX2ludDY0KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJ
bmZvKGNvbnN0IFN0cmluZyYgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVTdHJpbmcpCi0gICAg
LCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwg
bV9zdHJpbmcodmFsdWUpCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDAp
Ci17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKHVuc2lnbmVkIGludCB2YWx1ZSkK
LSAgICA6IG1fdHlwZShrVHlwZVVuc2lnbmVkSW50KQotICAgICwgbV9ib29sKGZhbHNlKQotICAg
ICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQodmFsdWUp
Ci0gICAgLCBtX2ludDY0KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKGxv
bmcgbG9uZyB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZUludDY0KQotICAgICwgbV9ib29sKGZh
bHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJ
bnQoMCkKLSAgICAsIG1faW50NjQodmFsdWUpCi17Ci19Ci0KLQotV2ViR0xHZXRJbmZvOjpXZWJH
TEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5
cGVXZWJHTEJ1ZmZlcikKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAg
ICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0g
ICAgLCBtX3dlYmdsQnVmZmVyKHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0
SW5mbyhQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVX
ZWJHTEZsb2F0QXJyYXkpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0g
ICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQot
ICAgICwgbV93ZWJnbEZsb2F0QXJyYXkodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2Vi
R0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4gdmFsdWUpCi0gICAgOiBtX3R5
cGUoa1R5cGVXZWJHTEZyYW1lYnVmZmVyKQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9m
bG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1f
aW50NjQoMCkKLSAgICAsIG1fd2ViZ2xGcmFtZWJ1ZmZlcih2YWx1ZSkKLXsKLX0KLQotV2ViR0xH
ZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxJbnQzMkFycmF5PiB2YWx1ZSkKLSAgICA6
IG1fdHlwZShrVHlwZVdlYkdMSW50QXJyYXkpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBt
X2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwg
bV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbEludEFycmF5KHZhbHVlKQotewotfQotCi1XZWJHTEdl
dEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUHJvZ3JhbT4gdmFsdWUpCi0gICAg
OiBtX3R5cGUoa1R5cGVXZWJHTFByb2dyYW0pCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBt
X2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwg
bV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbFByb2dyYW0odmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0
SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+IHZhbHVlKQot
ICAgIDogbV90eXBlKGtUeXBlV2ViR0xSZW5kZXJidWZmZXIpCi0gICAgLCBtX2Jvb2woZmFsc2Up
Ci0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgw
KQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbFJlbmRlcmJ1ZmZlcih2YWx1ZSkKLXsK
LX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+
IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xUZXh0dXJlKQotICAgICwgbV9ib29sKGZh
bHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJ
bnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xUZXh0dXJlKHZhbHVlKQotewot
fQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHZh
bHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xVbnNpZ25lZEJ5dGVBcnJheSkKLSAgICAsIG1f
Ym9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vu
c2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmdsVW5zaWduZWRCeXRl
QXJyYXkodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQ
dHI8VWludDMyQXJyYXk+IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xVbnNpZ25lZElu
dEFycmF5KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9p
bnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1f
d2ViZ2xVbnNpZ25lZEludEFycmF5KHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdM
R2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IHZhbHVlKQotICAg
IDogbV90eXBlKGtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUykKLSAgICAsIG1fYm9vbChm
YWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVk
SW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3RP
RVModmFsdWUpCi17Ci19Ci0KLSNpZiBFTkFCTEUoV0VCR0wyKQotV2ViR0xHZXRJbmZvOjpXZWJH
TEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiB2YWx1ZSkKLSAgICA6
IG1fdHlwZShrVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3QpCi0gICAgLCBtX2Jvb2woZmFsc2Up
Ci0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgw
KQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbFZlcnRleEFycmF5T2JqZWN0KHZhbHVl
KQotewotfQotI2VuZGlmCi0KLVdlYkdMR2V0SW5mbzo6fldlYkdMR2V0SW5mbygpCi17Ci19Ci0K
LVdlYkdMR2V0SW5mbzo6VHlwZSBXZWJHTEdldEluZm86OmdldFR5cGUoKSBjb25zdAotewotICAg
IHJldHVybiBtX3R5cGU7Ci19Ci0KLWJvb2wgV2ViR0xHZXRJbmZvOjpnZXRCb29sKCkgY29uc3QK
LXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlQm9vbCk7Ci0gICAgcmV0dXJuIG1fYm9v
bDsKLX0KLQotY29uc3QgVmVjdG9yPGJvb2w+JiBXZWJHTEdldEluZm86OmdldEJvb2xBcnJheSgp
IGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZUJvb2xBcnJheSk7Ci0gICAg
cmV0dXJuIG1fYm9vbEFycmF5OwotfQotCi1mbG9hdCBXZWJHTEdldEluZm86OmdldEZsb2F0KCkg
Y29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlRmxvYXQpOwotICAgIHJldHVy
biBtX2Zsb2F0OwotfQotCi1pbnQgV2ViR0xHZXRJbmZvOjpnZXRJbnQoKSBjb25zdAotewotICAg
IEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVJbnQpOwotICAgIHJldHVybiBtX2ludDsKLX0KLQot
Y29uc3QgU3RyaW5nJiBXZWJHTEdldEluZm86OmdldFN0cmluZygpIGNvbnN0Ci17Ci0gICAgQVNT
RVJUKGdldFR5cGUoKSA9PSBrVHlwZVN0cmluZyk7Ci0gICAgcmV0dXJuIG1fc3RyaW5nOwotfQot
Ci11bnNpZ25lZCBpbnQgV2ViR0xHZXRJbmZvOjpnZXRVbnNpZ25lZEludCgpIGNvbnN0Ci17Ci0g
ICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVVuc2lnbmVkSW50KTsKLSAgICByZXR1cm4gbV91
bnNpZ25lZEludDsKLX0KLQotbG9uZyBsb25nIFdlYkdMR2V0SW5mbzo6Z2V0SW50NjQoKSBjb25z
dAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVJbnQ2NCk7Ci0gICAgcmV0dXJuIG1f
aW50NjQ7Ci19Ci0KLVdlYkdMQnVmZmVyKiBXZWJHTEdldEluZm86OmdldFdlYkdMQnVmZmVyKCkg
Y29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xCdWZmZXIpOwotICAg
IHJldHVybiBtX3dlYmdsQnVmZmVyLmdldCgpOwotfQotCi1GbG9hdDMyQXJyYXkqIFdlYkdMR2V0
SW5mbzo6Z2V0V2ViR0xGbG9hdEFycmF5KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgp
ID09IGtUeXBlV2ViR0xGbG9hdEFycmF5KTsKLSAgICByZXR1cm4gbV93ZWJnbEZsb2F0QXJyYXku
Z2V0KCk7Ci19Ci0KLVdlYkdMRnJhbWVidWZmZXIqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xGcmFt
ZWJ1ZmZlcigpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMRnJh
bWVidWZmZXIpOwotICAgIHJldHVybiBtX3dlYmdsRnJhbWVidWZmZXIuZ2V0KCk7Ci19Ci0KLUlu
dDMyQXJyYXkqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xJbnRBcnJheSgpIGNvbnN0Ci17Ci0gICAg
QVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMSW50QXJyYXkpOwotICAgIHJldHVybiBtX3dl
YmdsSW50QXJyYXkuZ2V0KCk7Ci19Ci0KLVdlYkdMUHJvZ3JhbSogV2ViR0xHZXRJbmZvOjpnZXRX
ZWJHTFByb2dyYW0oKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJH
TFByb2dyYW0pOwotICAgIHJldHVybiBtX3dlYmdsUHJvZ3JhbS5nZXQoKTsKLX0KLQotV2ViR0xS
ZW5kZXJidWZmZXIqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xSZW5kZXJidWZmZXIoKSBjb25zdAot
ewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTFJlbmRlcmJ1ZmZlcik7Ci0gICAg
cmV0dXJuIG1fd2ViZ2xSZW5kZXJidWZmZXIuZ2V0KCk7Ci19Ci0KLVdlYkdMVGV4dHVyZSogV2Vi
R0xHZXRJbmZvOjpnZXRXZWJHTFRleHR1cmUoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBl
KCkgPT0ga1R5cGVXZWJHTFRleHR1cmUpOwotICAgIHJldHVybiBtX3dlYmdsVGV4dHVyZS5nZXQo
KTsKLX0KLQotVWludDhBcnJheSogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTFVuc2lnbmVkQnl0ZUFy
cmF5KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xVbnNpZ25l
ZEJ5dGVBcnJheSk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xVbnNpZ25lZEJ5dGVBcnJheS5nZXQoKTsK
LX0KLQotVWludDMyQXJyYXkqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xVbnNpZ25lZEludEFycmF5
KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xVbnNpZ25lZElu
dEFycmF5KTsKLSAgICByZXR1cm4gbV93ZWJnbFVuc2lnbmVkSW50QXJyYXkuZ2V0KCk7Ci19Ci0K
LVdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMpOwotICAgIHJldHVybiBtX3dlYmdsVmVydGV4QXJyYXlP
YmplY3RPRVMuZ2V0KCk7Ci19Ci0KLSNpZiBFTkFCTEUoV0VCR0wyKQotV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdCogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTFZlcnRleEFycmF5T2JqZWN0KCkgY29uc3QK
LXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCk7
Ci0gICAgcmV0dXJuIG1fd2ViZ2xWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKTsKLX0KLSNlbmRpZgot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyNmY2OTNjNWQ3NjM2MjIzZWQ1Y2FlM2MzOWZiNjAwM2JhZjc4ZmNhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oCisrKyAvZGV2L251bGwKQEAgLTEsMTU2ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKLSNpbmNsdWRlICJXZWJHTEZyYW1lYnVm
ZmVyLmgiCi0jaW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCi0jaW5jbHVkZSAiV2ViR0xSZW5kZXJi
dWZmZXIuaCIKLSNpbmNsdWRlICJXZWJHTFRleHR1cmUuaCIKLSNpZiBFTkFCTEUoV0VCR0wyKQot
I2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIKLSNlbmRpZgotI2luY2x1ZGUgIldl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Zsb2F0MzJBcnJh
eS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSW50MzJBcnJheS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUv
VWludDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL1VpbnQ4QXJyYXkuaD4KLSNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBBIHRhZ2dl
ZCB1bmlvbiByZXByZXNlbnRpbmcgdGhlIHJlc3VsdCBvZiBnZXQgcXVlcmllcyBsaWtlCi0vLyBn
ZXRQYXJhbWV0ZXIgKGVuY29tcGFzc2luZyBnZXRCb29sZWFudiwgZ2V0SW50ZWdlcnYsIGdldEZs
b2F0dikgYW5kCi0vLyBzaW1pbGFyIHZhcmlhbnRzLiBGb3IgcmVmZXJlbmNlIGNvdW50ZWQgdHlw
ZXMsIGluY3JlbWVudHMgYW5kCi0vLyBkZWNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgb2Yg
dGhlIHRhcmdldCBvYmplY3QuCi0KLWNsYXNzIFdlYkdMR2V0SW5mbyBmaW5hbCB7Ci1wdWJsaWM6
Ci0gICAgZW51bSBUeXBlIHsKLSAgICAgICAga1R5cGVCb29sLAotICAgICAgICBrVHlwZUJvb2xB
cnJheSwKLSAgICAgICAga1R5cGVGbG9hdCwKLSAgICAgICAga1R5cGVJbnQsCi0gICAgICAgIGtU
eXBlTnVsbCwKLSAgICAgICAga1R5cGVTdHJpbmcsCi0gICAgICAgIGtUeXBlVW5zaWduZWRJbnQs
Ci0gICAgICAgIGtUeXBlSW50NjQsCi0gICAgICAgIGtUeXBlV2ViR0xCdWZmZXIsCi0gICAgICAg
IGtUeXBlV2ViR0xGbG9hdEFycmF5LAotICAgICAgICBrVHlwZVdlYkdMRnJhbWVidWZmZXIsCi0g
ICAgICAgIGtUeXBlV2ViR0xJbnRBcnJheSwKLSAgICAgICAga1R5cGVXZWJHTE9iamVjdEFycmF5
LAotICAgICAgICBrVHlwZVdlYkdMUHJvZ3JhbSwKLSAgICAgICAga1R5cGVXZWJHTFJlbmRlcmJ1
ZmZlciwKLSAgICAgICAga1R5cGVXZWJHTFRleHR1cmUsCi0gICAgICAgIGtUeXBlV2ViR0xVbnNp
Z25lZEJ5dGVBcnJheSwKLSAgICAgICAga1R5cGVXZWJHTFVuc2lnbmVkSW50QXJyYXksCi0gICAg
ICAgIGtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUywKLSAgICAgICAga1R5cGVXZWJHTFZl
cnRleEFycmF5T2JqZWN0LAotICAgIH07Ci0KLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oYm9v
bCB2YWx1ZSk7Ci0gICAgV2ViR0xHZXRJbmZvKGNvbnN0IGJvb2wqIHZhbHVlLCBpbnQgc2l6ZSk7
Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKGZsb2F0IHZhbHVlKTsKLSAgICBleHBsaWNpdCBX
ZWJHTEdldEluZm8oaW50IHZhbHVlKTsKLSAgICAvLyBSZXByZXNlbnRzIHRoZSBudWxsIHZhbHVl
IGFuZCB0eXBlLgotICAgIFdlYkdMR2V0SW5mbygpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5m
byhjb25zdCBTdHJpbmcmIHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8odW5zaWdu
ZWQgaW50IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8obG9uZyBsb25nIHZhbHVl
KTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gdmFs
dWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4g
dmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMRnJhbWVi
dWZmZXI+IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxJbnQz
MkFycmF5PiB2YWx1ZSk7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudCBXZWJHTE9iamVjdEFycmF5
Ci0gICAgLy8gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xPYmplY3RBcnJheT4gdmFsdWUp
OwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUHJvZ3JhbT4gdmFs
dWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUmVuZGVyYnVm
ZmVyPiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xU
ZXh0dXJlPiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWlu
dDhBcnJheT4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFVp
bnQzMkFycmF5PiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gdmFsdWUpOwotI2lmIEVOQUJMRShXRUJHTDIpCi0g
ICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dD4gdmFsdWUpOwotI2VuZGlmCi0KLSAgICB+V2ViR0xHZXRJbmZvKCk7Ci0KLSAgICBUeXBlIGdl
dFR5cGUoKSBjb25zdDsKLQotICAgIGJvb2wgZ2V0Qm9vbCgpIGNvbnN0OwotICAgIGNvbnN0IFZl
Y3Rvcjxib29sPiYgZ2V0Qm9vbEFycmF5KCkgY29uc3Q7Ci0gICAgZmxvYXQgZ2V0RmxvYXQoKSBj
b25zdDsKLSAgICBpbnQgZ2V0SW50KCkgY29uc3Q7Ci0gICAgY29uc3QgU3RyaW5nJiBnZXRTdHJp
bmcoKSBjb25zdDsKLSAgICB1bnNpZ25lZCBpbnQgZ2V0VW5zaWduZWRJbnQoKSBjb25zdDsKLSAg
ICBsb25nIGxvbmcgZ2V0SW50NjQoKSBjb25zdDsKLSAgICBXZWJHTEJ1ZmZlciogZ2V0V2ViR0xC
dWZmZXIoKSBjb25zdDsKLSAgICBGbG9hdDMyQXJyYXkqIGdldFdlYkdMRmxvYXRBcnJheSgpIGNv
bnN0OwotICAgIFdlYkdMRnJhbWVidWZmZXIqIGdldFdlYkdMRnJhbWVidWZmZXIoKSBjb25zdDsK
LSAgICBJbnQzMkFycmF5KiBnZXRXZWJHTEludEFycmF5KCkgY29uc3Q7Ci0gICAgLy8gRklYTUU6
IGltcGxlbWVudCBXZWJHTE9iamVjdEFycmF5Ci0gICAgLy8gV2ViR0xPYmplY3RBcnJheSogZ2V0
V2ViR0xPYmplY3RBcnJheSgpIGNvbnN0OwotICAgIFdlYkdMUHJvZ3JhbSogZ2V0V2ViR0xQcm9n
cmFtKCkgY29uc3Q7Ci0gICAgV2ViR0xSZW5kZXJidWZmZXIqIGdldFdlYkdMUmVuZGVyYnVmZmVy
KCkgY29uc3Q7Ci0gICAgV2ViR0xUZXh0dXJlKiBnZXRXZWJHTFRleHR1cmUoKSBjb25zdDsKLSAg
ICBVaW50OEFycmF5KiBnZXRXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KCkgY29uc3Q7Ci0gICAgVWlu
dDMyQXJyYXkqIGdldFdlYkdMVW5zaWduZWRJbnRBcnJheSgpIGNvbnN0OwotICAgIFdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMqIGdldFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKSBjb25zdDsK
LSNpZiBFTkFCTEUoV0VCR0wyKQotICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIGdldFdlYkdM
VmVydGV4QXJyYXlPYmplY3QoKSBjb25zdDsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIFR5cGUg
bV90eXBlOwotICAgIGJvb2wgbV9ib29sOwotICAgIFZlY3Rvcjxib29sPiBtX2Jvb2xBcnJheTsK
LSAgICBmbG9hdCBtX2Zsb2F0OwotICAgIGludCBtX2ludDsKLSAgICBTdHJpbmcgbV9zdHJpbmc7
Ci0gICAgdW5zaWduZWQgaW50IG1fdW5zaWduZWRJbnQ7Ci0gICAgbG9uZyBsb25nIG1faW50NjQ7
Ci0gICAgUmVmUHRyPFdlYkdMQnVmZmVyPiBtX3dlYmdsQnVmZmVyOwotICAgIFJlZlB0cjxGbG9h
dDMyQXJyYXk+IG1fd2ViZ2xGbG9hdEFycmF5OwotICAgIFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVy
PiBtX3dlYmdsRnJhbWVidWZmZXI7Ci0gICAgUmVmUHRyPEludDMyQXJyYXk+IG1fd2ViZ2xJbnRB
cnJheTsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50IFdlYkdMT2JqZWN0QXJyYXkKLSAgICAvLyBS
ZWZQdHI8V2ViR0xPYmplY3RBcnJheT4gbV93ZWJnbE9iamVjdEFycmF5OwotICAgIFJlZlB0cjxX
ZWJHTFByb2dyYW0+IG1fd2ViZ2xQcm9ncmFtOwotICAgIFJlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZl
cj4gbV93ZWJnbFJlbmRlcmJ1ZmZlcjsKLSAgICBSZWZQdHI8V2ViR0xUZXh0dXJlPiBtX3dlYmds
VGV4dHVyZTsKLSAgICBSZWZQdHI8VWludDhBcnJheT4gbV93ZWJnbFVuc2lnbmVkQnl0ZUFycmF5
OwotICAgIFJlZlB0cjxVaW50MzJBcnJheT4gbV93ZWJnbFVuc2lnbmVkSW50QXJyYXk7Ci0gICAg
UmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IG1fd2ViZ2xWZXJ0ZXhBcnJheU9iamVj
dE9FUzsKLSNpZiBFTkFCTEUoV0VCR0wyKQotICAgIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0PiBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3Q7Ci0jZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGIwNmQ2YzljODZhMzE2YzIwMTk5MzVjZTg0MTM0ODA5
ZTMzNDE2YWYuLjc4NGFiYjQ0NjNmODBlYmFhNjYzNjQ0YWYxODYxZDk0MDQ2NTQ5OGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmNwcApAQCAtMjQsOSArMjQsOSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKLSNpbmNs
dWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKIAogI2luY2x1ZGUgIkFOR0xFSW5zdGFuY2Vk
QXJyYXlzLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKQEAgLTcwLDExOSArNzAsMTIxIEBA
IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6V2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNF
bGVtZW50JiBwYXNzZWRDYW52YXMsIEdyCiB7CiB9CiAKLVdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFBh
c3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsCi0gICAgR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpIDogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShwYXNz
ZWRDYW52YXMsIGNvbnRleHQsIGF0dHJpYnV0ZXMpCitXZWJHTFJlbmRlcmluZ0NvbnRleHQ6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLCBSZWY8
R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
IGF0dHJpYnV0ZXMpCisgICAgOiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKHBhc3NlZENhbnZh
cywgV1RGTW92ZShjb250ZXh0KSwgYXR0cmlidXRlcykKIHsKICAgICBpbml0aWFsaXplVmVydGV4
QXJyYXlPYmplY3RzKCk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFs
aXplVmVydGV4QXJyYXlPYmplY3RzKCkKIHsKLSAgICBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVj
dCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmNyZWF0ZSgqdGhpcywgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUzo6VkFPVHlwZURlZmF1bHQpOwotICAgIGFkZENvbnRleHRPYmplY3QobV9k
ZWZhdWx0VmVydGV4QXJyYXlPYmplY3QuZ2V0KCkpOworICAgIG1fZGVmYXVsdFZlcnRleEFycmF5
T2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKCp0aGlzLCBXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTOjpUeXBlOjpEZWZhdWx0KTsKKyAgICBhZGRDb250ZXh0T2JqZWN0
KCptX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCk7CiAgICAgbV9ib3VuZFZlcnRleEFycmF5T2Jq
ZWN0ID0gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiAgICAgaWYgKCFpc0dMRVMyQ29tcGxp
YW50KCkpCiAgICAgICAgIGluaXRWZXJ0ZXhBdHRyaWIwKCk7CiB9CiAKK3N0YXRpYyBib29sIGVu
YWJsZVN1cHBvcnRlZEV4dGVuc2lvbihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0
LCBjb25zdCBjaGFyKiBsaXRlcmFsKQoreworICAgIEFTU0VSVChjb250ZXh0LmdyYXBoaWNzQ29u
dGV4dDNEKCkpOworICAgIGF1dG8mIGV4dGVuc2lvbnMgPSBjb250ZXh0LmdyYXBoaWNzQ29udGV4
dDNEKCktPmdldEV4dGVuc2lvbnMoKTsKKyAgICBpZiAoIWV4dGVuc2lvbnMuc3VwcG9ydHMoQVND
SUlMaXRlcmFsIHsgbGl0ZXJhbCB9KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGV4dGVu
c2lvbnMuZW5zdXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyBsaXRlcmFsIH0pOworICAgIHJldHVy
biB0cnVlOworfQorCiBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRF
eHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQ
ZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIAotICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfYmxlbmRfbWlubWF4IikKLSAgICAgICAgJiYgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9ibGVuZF9taW5tYXgiKSkg
eworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfYmxlbmRfbWlubWF4
IikpIHsKICAgICAgICAgaWYgKCFtX2V4dEJsZW5kTWluTWF4KSB7Ci0gICAgICAgICAgICBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9FWFRfYmxlbmRfbWlubWF4
Iik7Ci0gICAgICAgICAgICBtX2V4dEJsZW5kTWluTWF4ID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRC
bGVuZE1pbk1heD4oKnRoaXMpOworICAgICAgICAgICAgbV9leHRCbGVuZE1pbk1heCA9IGVuYWJs
ZVN1cHBvcnRlZEV4dGVuc2lvbigqdGhpcywgIkdMX0VYVF9ibGVuZF9taW5tYXgiKQorICAgICAg
ICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRCbGVuZE1pbk1heD4oKnRoaXMpIDogbnVs
bHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9leHRCbGVuZE1pbk1heC5nZXQoKTsK
ICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9zUkdCIikK
LSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9z
UkdCIikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX3NSR0Ii
KSkgewogICAgICAgICBpZiAoIW1fZXh0c1JHQikgewotICAgICAgICAgICAgbV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3NSR0IiKTsKLSAgICAgICAgICAg
IG1fZXh0c1JHQiA9IHN0ZDo6bWFrZV91bmlxdWU8RVhUc1JHQj4oKnRoaXMpOworICAgICAgICAg
ICAgbV9leHRzUkdCID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCp0aGlzLCAiR0xfRVhUX3NS
R0IiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRzUkdCPigqdGhpcykg
OiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dHNSR0IuZ2V0KCk7CiAg
ICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfZnJhZ19kZXB0
aCIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9F
WFRfZnJhZ19kZXB0aCIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwg
IkVYVF9mcmFnX2RlcHRoIikpIHsKICAgICAgICAgaWYgKCFtX2V4dEZyYWdEZXB0aCkgewotICAg
ICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhU
X2ZyYWdfZGVwdGgiKTsKLSAgICAgICAgICAgIG1fZXh0RnJhZ0RlcHRoID0gc3RkOjptYWtlX3Vu
aXF1ZTxFWFRGcmFnRGVwdGg+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fZXh0RnJhZ0RlcHRoID0g
ZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCp0aGlzLCAiR0xfRVhUX2ZyYWdfZGVwdGgiKQorICAg
ICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRGcmFnRGVwdGg+KCp0aGlzKSA6IG51
bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fZXh0RnJhZ0RlcHRoLmdldCgpOwog
ICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX3NoYWRlcl90
ZXh0dXJlX2xvZCIpCi0gICAgICAgICYmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cygiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpIHx8IG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLnN1cHBvcnRzKCJHTF9BUkJfc2hhZGVyX3RleHR1cmVfbG9kIikpKSB7CisgICAgaWYg
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKSkg
ewogICAgICAgICBpZiAoIW1fZXh0U2hhZGVyVGV4dHVyZUxPRCkgewotICAgICAgICAgICAgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3NoYWRlcl90ZXh0
dXJlX2xvZCIpOwotICAgICAgICAgICAgbV9leHRTaGFkZXJUZXh0dXJlTE9EID0gc3RkOjptYWtl
X3VuaXF1ZTxFWFRTaGFkZXJUZXh0dXJlTE9EPigqdGhpcyk7CisgICAgICAgICAgICBpZiAoISht
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhU
X3NoYWRlcl90ZXh0dXJlX2xvZCIgfSkgfHwgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3Vw
cG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0FSQl9zaGFkZXJfdGV4dHVyZV9sb2QiIH0pKSkKKyAg
ICAgICAgICAgICAgICBtX2V4dFNoYWRlclRleHR1cmVMT0QgPSBudWxscHRyOworICAgICAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5z
dXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIgfSk7
CisgICAgICAgICAgICAgICAgbV9leHRTaGFkZXJUZXh0dXJlTE9EID0gc3RkOjptYWtlX3VuaXF1
ZTxFWFRTaGFkZXJUZXh0dXJlTE9EPigqdGhpcyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIG1fZXh0U2hhZGVyVGV4dHVyZUxPRC5nZXQoKTsKICAgICB9Ci0gICAg
aWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0ZXJfYW5p
c290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfRVhUX3Rl
eHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkg
eworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0
ZXJfYW5pc290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRf
RVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpIHsKICAgICAgICAgaWYgKCFtX2V4dFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGlj
Iik7Ci0gICAgICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IHN0ZDo6bWFr
ZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcyk7CisgICAgICAgICAg
ICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lv
bigqdGhpcywgIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpCisgICAgICAgICAg
ICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYz4oKnRo
aXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9leHRUZXh0dXJlRmls
dGVyQW5pc290cm9waWMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlD
YXNlKG5hbWUsICJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKQotICAgICAgICAmJiBtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVz
IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3N0YW5kYXJk
X2Rlcml2YXRpdmVzIikpIHsKICAgICAgICAgaWYgKCFtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMp
IHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQo
IkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpOwotICAgICAgICAgICAgbV9vZXNTdGFuZGFy
ZERlcml2YXRpdmVzID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNTdGFuZGFyZERlcml2YXRpdmVzPigq
dGhpcyk7CisgICAgICAgICAgICBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMgPSBlbmFibGVTdXBw
b3J0ZWRFeHRlbnNpb24oKnRoaXMsICJHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKQorICAg
ICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNTdGFuZGFyZERlcml2YXRpdmVzPigq
dGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1N0YW5kYXJk
RGVyaXZhdGl2ZXMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdCIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpKSB7CisgICAgaWYgKGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0IikpIHsKICAgICAg
ICAgaWYgKCFtX29lc1RleHR1cmVGbG9hdCkgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVfZmxvYXQiKTsKLSAgICAg
ICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0ID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxv
YXQ+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0ID0gZW5hYmxlU3VwcG9y
dGVkRXh0ZW5zaW9uKCp0aGlzLCAiR0xfT0VTX3RleHR1cmVfZmxvYXQiKQorICAgICAgICAgICAg
ICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXQ+KCp0aGlzKSA6IG51bGxwdHI7
CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUZsb2F0LmdldCgpOwogICAg
IH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxv
YXRfbGluZWFyIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7CisgICAgaWYgKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7CiAgICAgICAg
IGlmICghbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVh
ciIpOwotICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5p
cXVlPE9FU1RleHR1cmVGbG9hdExpbmVhcj4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0
dXJlRmxvYXRMaW5lYXIgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oKnRoaXMsICJHTF9PRVNf
dGV4dHVyZV9mbG9hdF9saW5lYXIiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1
ZTxPRVNUZXh0dXJlRmxvYXRMaW5lYXI+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyLmdldCgpOwogICAgIH0KLSAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIp
Ci0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNf
dGV4dHVyZV9oYWxmX2Zsb2F0IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShu
YW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0
dXJlSGFsZkZsb2F0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5l
bnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0Iik7Ci0gICAgICAgICAgICBt
X29lc1RleHR1cmVIYWxmRmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxv
YXQ+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdCA9IGVuYWJsZVN1
cHBvcnRlZEV4dGVuc2lvbigqdGhpcywgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiKQorICAg
ICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZsb2F0PigqdGhp
cykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVIYWxm
RmxvYXQuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUs
ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpCi0gICAgICAgICYmIG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVh
ciIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJl
X2hhbGZfZmxvYXRfbGluZWFyIikpIHsKICAgICAgICAgaWYgKCFtX29lc1RleHR1cmVIYWxmRmxv
YXRMaW5lYXIpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3Vy
ZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik7Ci0gICAgICAgICAg
ICBtX29lc1RleHR1cmVIYWxmRmxvYXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1
cmVIYWxmRmxvYXRMaW5lYXI+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZG
bG9hdExpbmVhciA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigqdGhpcywgIkdMX09FU190ZXh0
dXJlX2hhbGZfZmxvYXRfbGluZWFyIikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlx
dWU8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcj4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAg
fQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyLmdldCgpOwogICAg
IH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3ZlcnRleF9hcnJh
eV9vYmplY3QiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0
cygiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKG5hbWUsICJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpKSB7CiAgICAgICAgIGlm
ICghbV9vZXNWZXJ0ZXhBcnJheU9iamVjdCkgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTsK
LSAgICAgICAgICAgIG1fb2VzVmVydGV4QXJyYXlPYmplY3QgPSBzdGQ6Om1ha2VfdW5pcXVlPE9F
U1ZlcnRleEFycmF5T2JqZWN0PigqdGhpcyk7CisgICAgICAgICAgICBtX29lc1ZlcnRleEFycmF5
T2JqZWN0ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCp0aGlzLCAiR0xfT0VTX3ZlcnRleF9h
cnJheV9vYmplY3QiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNWZXJ0
ZXhBcnJheU9iamVjdD4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gbV9vZXNWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKQotICAgICAgICAm
JiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX2VsZW1lbnRfaW5k
ZXhfdWludCIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU19l
bGVtZW50X2luZGV4X3VpbnQiKSkgewogICAgICAgICBpZiAoIW1fb2VzRWxlbWVudEluZGV4VWlu
dCkgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxl
ZCgiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpOwotICAgICAgICAgICAgbV9vZXNFbGVtZW50
SW5kZXhVaW50ID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNFbGVtZW50SW5kZXhVaW50PigqdGhpcyk7
CisgICAgICAgICAgICBtX29lc0VsZW1lbnRJbmRleFVpbnQgPSBlbmFibGVTdXBwb3J0ZWRFeHRl
bnNpb24oKnRoaXMsICJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50IikKKyAgICAgICAgICAgICAg
ICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTRWxlbWVudEluZGV4VWludD4oKnRoaXMpIDogbnVsbHB0
cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNFbGVtZW50SW5kZXhVaW50LmdldCgp
OwogICAgIH0KQEAgLTE5MSw0MSArMTkzLDUzIEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgICAg
ICBtX3dlYmdsTG9zZUNvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMTG9zZUNvbnRleHQ+
KCp0aGlzKTsKICAgICAgICAgcmV0dXJuIG1fd2ViZ2xMb3NlQ29udGV4dC5nZXQoKTsKICAgICB9
Ci0gICAgaWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfV0VCR0xfY29t
cHJlc3NlZF90ZXh0dXJlX2F0YyIpKQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRU
ZXh0dXJlQVRDKQotICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDID0gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDPigqdGhpcyk7CisgICAgaWYg
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3Rl
eHR1cmVfYXRjIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMp
IHsKKyAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQyA9IFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZCgqdGhpcykKKyAgICAgICAgICAgICAgICA/IHN0ZDo6
bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQz4oKnRoaXMpIDogbnVsbHB0cjsK
KyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDLmdl
dCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJ
VF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSkKLSAgICAgICAgJiYgV2ViR0xDb21w
cmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbV93
ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMpCi0gICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBW
UlRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJ
VF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSkgeworICAgICAgICBpZiAoIW1fd2Vi
Z2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKSB7CisgICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0
aGlzKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRU
ZXh0dXJlUFZSVEM+KCp0aGlzKSA6IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJu
IG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMi
KQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKCp0aGlz
KSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMpCi0gICAgICAg
ICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJH
TENvbXByZXNzZWRUZXh0dXJlUzNUQz4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVND
SUlDYXNlKG5hbWUsICJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpKSB7CisgICAgICAg
IGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQykgeworICAgICAgICAgICAgbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlUzNUQyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBw
b3J0ZWQoKnRoaXMpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVTM1RDPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAgICAg
IHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDLmdldCgpOwogICAgIH0KLSAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVwdGhfdGV4dHVyZSIpCi0g
ICAgICAgICYmIFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoKmdyYXBoaWNzQ29udGV4dDNE
KCkpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERlcHRoVGV4dHVyZSkKLSAgICAgICAgICAgIG1f
d2ViZ2xEZXB0aFRleHR1cmUgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVwdGhUZXh0dXJlPigq
dGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlcHRo
X3RleHR1cmUiKSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xEZXB0aFRleHR1cmUpIHsKKyAgICAg
ICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUgPSBXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVk
KCptX2NvbnRleHQpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVw
dGhUZXh0dXJlPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBt
X3dlYmdsRGVwdGhUZXh0dXJlLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiV0VCR0xfZHJhd19idWZmZXJzIikgJiYgc3VwcG9ydHNEcmF3QnVmZmVy
cygpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RyYXdf
YnVmZmVycyIpKSB7CiAgICAgICAgIGlmICghbV93ZWJnbERyYXdCdWZmZXJzKSB7Ci0gICAgICAg
ICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9FWFRfZHJh
d19idWZmZXJzIik7Ci0gICAgICAgICAgICBtX3dlYmdsRHJhd0J1ZmZlcnMgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkdMRHJhd0J1ZmZlcnM+KCp0aGlzKTsKKyAgICAgICAgICAgIGlmICghc3VwcG9y
dHNEcmF3QnVmZmVycygpKQorICAgICAgICAgICAgICAgIG1fd2ViZ2xEcmF3QnVmZmVycyA9IG51
bGxwdHI7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfZHJhd19i
dWZmZXJzIiB9KTsKKyAgICAgICAgICAgICAgICBtX3dlYmdsRHJhd0J1ZmZlcnMgPSBzdGQ6Om1h
a2VfdW5pcXVlPFdlYkdMRHJhd0J1ZmZlcnM+KCp0aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbERyYXdCdWZmZXJzLmdldCgpOwogICAgIH0KLSAg
ICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiQU5HTEVfaW5zdGFuY2VkX2FycmF5
cyIpICYmIEFOR0xFSW5zdGFuY2VkQXJyYXlzOjpzdXBwb3J0ZWQoKnRoaXMpKSB7CisgICAgaWYg
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSkg
ewogICAgICAgICBpZiAoIW1fYW5nbGVJbnN0YW5jZWRBcnJheXMpIHsKLSAgICAgICAgICAgIG1f
Y29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX0FOR0xFX2luc3RhbmNl
ZF9hcnJheXMiKTsKLSAgICAgICAgICAgIG1fYW5nbGVJbnN0YW5jZWRBcnJheXMgPSBzdGQ6Om1h
a2VfdW5pcXVlPEFOR0xFSW5zdGFuY2VkQXJyYXlzPigqdGhpcyk7CisgICAgICAgICAgICBpZiAo
IUFOR0xFSW5zdGFuY2VkQXJyYXlzOjpzdXBwb3J0ZWQoKnRoaXMpKQorICAgICAgICAgICAgICAg
IG1fYW5nbGVJbnN0YW5jZWRBcnJheXMgPSBudWxscHRyOworICAgICAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZChB
U0NJSUxpdGVyYWwgeyAiR0xfQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIgfSk7CisgICAgICAgICAg
ICAgICAgbV9hbmdsZUluc3RhbmNlZEFycmF5cyA9IHN0ZDo6bWFrZV91bmlxdWU8QU5HTEVJbnN0
YW5jZWRBcnJheXM+KCp0aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gbV9hbmdsZUluc3RhbmNlZEFycmF5cy5nZXQoKTsKICAgICB9CkBAIC0yMzQsMTAgKzI0
OCwxMSBAQCBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNp
b24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICAgICAgbV93ZWJnbERlYnVnUmVuZGVyZXJJ
bmZvID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnUmVuZGVyZXJJbmZvPigqdGhpcyk7CiAg
ICAgICAgIHJldHVybiBtX3dlYmdsRGVidWdSZW5kZXJlckluZm8uZ2V0KCk7CiAgICAgfQotICAg
IGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19zaGFkZXJzIikK
LSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FOR0xF
X3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERlYnVn
U2hhZGVycykKLSAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBzdGQ6Om1ha2VfdW5p
cXVlPFdlYkdMRGVidWdTaGFkZXJzPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UobmFtZSwgIldFQkdMX2RlYnVnX3NoYWRlcnMiKSkgeworICAgICAgICBpZiAoIW1fd2Vi
Z2xEZWJ1Z1NoYWRlcnMpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfQU5HTEVf
dHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIiB9KQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtl
X3VuaXF1ZTxXZWJHTERlYnVnU2hhZGVycz4oKnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAgfQog
ICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnU2hhZGVycy5nZXQoKTsKICAgICB9CiAKQEAgLTI1
MSwxMDkgKzI2NiwxMDkgQEAgVmVjdG9yPFN0cmluZz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkKICAgICBpZiAobV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0
aW9uKQogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIAotICAgIGlmIChtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX2JsZW5kX21pbm1heCIpKQotICAgICAgICBy
ZXN1bHQuYXBwZW5kKCJFWFRfYmxlbmRfbWlubWF4Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0
RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfc1JHQiIpKQotICAgICAgICByZXN1bHQuYXBw
ZW5kKCJFWFRfc1JHQiIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cygiR0xfRVhUX2ZyYWdfZGVwdGgiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiRVhUX2Zy
YWdfZGVwdGgiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMo
IkdMX09FU190ZXh0dXJlX2Zsb2F0IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0
dXJlX2Zsb2F0Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRz
KCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgi
T0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpCi0gICAgICAgIHJl
c3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKTsKLSAgICBpZiAobV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGlu
ZWFyIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGlu
ZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9P
RVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3N0
YW5kYXJkX2Rlcml2YXRpdmVzIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LnN1cHBvcnRzKCJHTF9FWFRfc2hhZGVyX3RleHR1cmVfbG9kIikgfHwgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FSQl9zaGFkZXJfdGV4dHVyZV9sb2QiKSkKLSAgICAg
ICAgcmVzdWx0LmFwcGVuZCgiRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpOwotICAgIGlmIChtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2Fu
aXNvdHJvcGljIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIkVYVF90ZXh0dXJlX2ZpbHRlcl9h
bmlzb3Ryb3BpYyIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0
cygiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgi
T0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoIkdMX09FU19lbGVtZW50X2luZGV4X3VpbnQiKSkKLSAgICAgICAgcmVz
dWx0LmFwcGVuZCgiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpOwotICAgIHJlc3VsdC5hcHBlbmQo
IldFQkdMX2xvc2VfY29udGV4dCIpOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX2JsZW5kX21pbm1heCIgfSkpCisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIkVYVF9ibGVuZF9taW5tYXgiIH0pOwor
ICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwg
eyAiR0xfRVhUX3NSR0IiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7
ICJFWFRfc1JHQiIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBv
cnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfZnJhZ19kZXB0aCIgfSkpCisgICAgICAgIHJlc3Vs
dC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIkVYVF9mcmFnX2RlcHRoIiB9KTsKKyAgICBpZiAobV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190
ZXh0dXJlX2Zsb2F0IiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAi
T0VTX3RleHR1cmVfZmxvYXQiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9
KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfZmxv
YXRfbGluZWFyIiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pKQorICAgICAg
ICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiB9
KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRl
cmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIiB9KSkKKyAgICAgICAgcmVz
dWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIi
IH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxp
dGVyYWwgeyAiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIiB9KSkKKyAgICAgICAgcmVzdWx0
LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIiB9KTsKKyAg
ICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsg
IkdMX0VYVF9zaGFkZXJfdGV4dHVyZV9sb2QiIH0pIHx8IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9BUkJfc2hhZGVyX3RleHR1cmVfbG9kIiB9
KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiRVhUX3NoYWRlcl90ZXh0
dXJlX2xvZCIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRz
KEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pKQor
ICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJFWFRfdGV4dHVyZV9maWx0ZXJf
YW5pc290cm9waWMiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiIH0pKQorICAg
ICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdmVydGV4X2FycmF5X29iamVj
dCIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJ
TGl0ZXJhbCB7ICJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50IiB9KSkKKyAgICAgICAgcmVzdWx0
LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIgfSk7CisgICAg
cmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfbG9zZV9jb250ZXh0IiB9KTsKICAg
ICBpZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkKLSAgICAg
ICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKTsK
KyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCS0lUX1dFQkdMX2NvbXBy
ZXNzZWRfdGV4dHVyZV9hdGMiIH0pOwogICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZS
VEM6OnN1cHBvcnRlZCgqdGhpcykpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJH
TF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJ
SUxpdGVyYWwgeyAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIgfSk7CiAg
ICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpKQogICAg
ICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpOwotICAg
IGlmIChXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCpncmFwaGljc0NvbnRleHQzRCgpKSkK
LSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfZGVwdGhfdGV4dHVyZSIpOworICAgIGlmIChX
ZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCptX2NvbnRleHQpKQorICAgICAgICByZXN1bHQu
YXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9kZXB0aF90ZXh0dXJlIiB9KTsKICAgICBpZiAo
c3VwcG9ydHNEcmF3QnVmZmVycygpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kcmF3
X2J1ZmZlcnMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xf
ZHJhd19idWZmZXJzIiB9KTsKICAgICBpZiAoQU5HTEVJbnN0YW5jZWRBcnJheXM6OnN1cHBvcnRl
ZCgqdGhpcykpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMi
KTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FOR0xF
X3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJH
TF9kZWJ1Z19zaGFkZXJzIik7Ci0gICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfZGVidWdfcmVuZGVy
ZXJfaW5mbyIpOworICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJBTkdMRV9p
bnN0YW5jZWRfYXJyYXlzIiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
c3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJj
ZSIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RlYnVn
X3NoYWRlcnMiIH0pOworICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2Rl
YnVnX3JlbmRlcmVyX2luZm8iIH0pOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotV2ViR0xH
ZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5h
bWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNo
bWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0Rl
bnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlk
YXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycygiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyIiwgdGFyZ2V0LCBhdHRhY2htZW50KSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBpZiAoIW1fZnJhbWVidWZm
ZXJCaW5kaW5nIHx8ICFtX2ZyYW1lYnVmZmVyQmluZGluZy0+b2JqZWN0KCkpIHsKICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAi
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgIm5vIGZyYW1lYnVmZmVyIGJvdW5k
Iik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogICAgIAotICAgIFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QgPSBtX2ZyYW1l
YnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVudE9iamVjdChhdHRhY2htZW50KTsKKyAgICBhdXRv
KiBvYmplY3QgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVudE9iamVjdChhdHRh
Y2htZW50KTsKICAgICBpZiAoIW9iamVjdCkgewogICAgICAgICBpZiAocG5hbWUgPT0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpCi0gICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKTsKKyAgICAg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6Ok5P
TkUpOwogICAgICAgICAvLyBPcGVuR0wgRVMgMi4wIHNwZWNpZmllcyBJTlZBTElEX0VOVU0gaW4g
dGhpcyBjYXNlLCB3aGlsZSBkZXNrdG9wIEdMCiAgICAgICAgIC8vIHNwZWNpZmllcyBJTlZBTElE
X09QRVJBVElPTi4KICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZh
bGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIEFTU0VSVChvYmplY3QtPmlz
VGV4dHVyZSgpIHx8IG9iamVjdC0+aXNSZW5kZXJidWZmZXIoKSk7CiAgICAgaWYgKG9iamVjdC0+
aXNUZXh0dXJlKCkpIHsKICAgICAgICAgc3dpdGNoIChwbmFtZSkgewogICAgICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFOgotICAg
ICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRSk7
CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4
dDNEOjpURVhUVVJFKTsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJl
Kj4ob2JqZWN0KSkpOworICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIocmVpbnRlcnByZXRf
Y2FzdDxXZWJHTFRleHR1cmUmPigqb2JqZWN0KSk7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MRVZFTDoKICAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NVQkVf
TUFQX0ZBQ0U6CiAgICAgICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX0NPTE9SX0VOQ09ESU5HX0VYVDogewogICAgICAgICAgICAgR0MzRGludCB2YWx1ZSA9IDA7
CiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
cml2KHRhcmdldCwgYXR0YWNobWVudCwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAg
ICAgfQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBh
cmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIGZvciB0ZXh0dXJlIGF0dGFjaG1lbnQi
KTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG9iamVj
dC0+aXNSZW5kZXJidWZmZXIoKSk7CiAgICAgICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQ
RToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlJF
TkRFUkJVRkZFUik7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdy
YXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVIpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FOgotICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPihyZWludGVy
cHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyKj4ob2JqZWN0KSkpOworICAgICAgICAgICAgcmV0
dXJuIG1ha2VSZWZQdHIocmVpbnRlcnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZlciY+KCpvYmpl
Y3QpKTsKICAgICAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
Q09MT1JfRU5DT0RJTkdfRVhUOiB7CiAgICAgICAgICAgICBpZiAoIW1fZXh0c1JHQikgewogICAg
ICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElE
X0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJh
bWV0ZXIgbmFtZSBmb3IgcmVuZGVyYnVmZmVyIGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBXZWJHTFJlbmRlcmJ1ZmZlciogcmVuZGVyQnVm
ZmVyID0gcmVpbnRlcnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZlcio+KG9iamVjdCk7CiAgICAg
ICAgICAgICBHQzNEZW51bSByZW5kZXJCdWZmZXJGb3JtYXQgPSByZW5kZXJCdWZmZXItPmdldElu
dGVybmFsRm9ybWF0KCk7CiAgICAgICAgICAgICBBU1NFUlQocmVuZGVyQnVmZmVyRm9ybWF0ICE9
IEV4dGVuc2lvbnMzRDo6U1JHQl9FWFQgJiYgcmVuZGVyQnVmZmVyRm9ybWF0ICE9IEV4dGVuc2lv
bnMzRDo6U1JHQl9BTFBIQV9FWFQpOwogICAgICAgICAgICAgaWYgKHJlbmRlckJ1ZmZlckZvcm1h
dCA9PSBFeHRlbnNpb25zM0Q6OlNSR0I4X0FMUEhBOF9FWFQpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhFeHRlbnNpb25zM0Q6OlNSR0JfRVhUKTsKLSAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihFeHRlbnNpb25zM0Q6OlNSR0JfRVhU
KTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250
ZXh0M0Q6OkxJTkVBUik7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBm
b3IgcmVuZGVyYnVmZmVyIGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CiAgICAgfQog
fQpAQCAtMzY5LDE2ICszODQsMTUgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlk
YXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdGkKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5UOgogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlNURU5DSUxfQVRUQUNITUVOVDoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAobV93ZWJnbERyYXdCdWZmZXJzCi0g
ICAgICAgICAgICAmJiBhdHRhY2htZW50ID4gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFD
SE1FTlQwCisgICAgICAgICAgICAmJiBhdHRhY2htZW50ID49IEdyYXBoaWNzQ29udGV4dDNEOjpD
T0xPUl9BVFRBQ0hNRU5UMAogICAgICAgICAgICAgJiYgYXR0YWNobWVudCA8IHN0YXRpY19jYXN0
PEdDM0RlbnVtPihHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAgKyBnZXRNYXhD
b2xvckF0dGFjaG1lbnRzKCkpKQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklO
VkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCBhdHRhY2htZW50Iik7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIHRydWU7CiB9CiAgICAgCiB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6cmVuZGVyYnVmZmVyU3RvcmFnZShHQzNEZW51bSB0YXJnZXQs
IEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWln
aHQpCkBAIC00NTUsNyArNDY5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNsZWFy
KEdDM0RiaXRmaWVsZCBtYXNrKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNvbnN0IGNo
YXIqIHJlYXNvbiA9ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKLSAgICBpZiAobV9mcmFtZWJ1
ZmZlckJpbmRpbmcgJiYgIW1fZnJhbWVidWZmZXJCaW5kaW5nLT5vbkFjY2VzcyhncmFwaGljc0Nv
bnRleHQzRCgpLCAmcmVhc29uKSkgeworICAgIGlmIChtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAh
bV9mcmFtZWJ1ZmZlckJpbmRpbmctPm9uQWNjZXNzKG1fY29udGV4dC5nZXQoKSwgJnJlYXNvbikp
IHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
RlJBTUVCVUZGRVJfT1BFUkFUSU9OLCAiY2xlYXIiLCByZWFzb24pOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtNDY0LDEwICs0NzgsMTAgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmNsZWFyKEdDM0RiaXRmaWVsZCBtYXNrKQogICAgIG1hcmtDb250ZXh0Q2hhbmdlZCgpOwogfQog
Ci1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVu
dW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IGNvbnN0IGludCBpbnRaZXJvID0gMDsKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6QUNUSVZFX1RFWFRVUkU6CkBAIC00NzksNyArNDkzLDcgQEAgV2Vi
R0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBu
YW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBX0JJVFM6CiAgICAgICAgIHJl
dHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkFSUkFZX0JVRkZFUl9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NS
ZWZQdHI8V2ViR0xCdWZmZXI+KG1fYm91bmRBcnJheUJ1ZmZlcikpOworICAgICAgICByZXR1cm4g
bV9ib3VuZEFycmF5QnVmZmVyOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkJMRU5EOgog
ICAgICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6QkxFTkRfQ09MT1I6CkBAIC01MDMsMTYgKzUxNywxNiBAQCBXZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUp
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfV1JJVEVNQVNLOgogICAgICAgICBy
ZXR1cm4gZ2V0Qm9vbGVhbkFycmF5UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUzoKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhQYXNzUmVmUHRyPFVpbnQzMkFycmF5PihVaW50MzJBcnJheTo6Y3JlYXRlKG1f
Y29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLmRhdGEoKSwgbV9jb21wcmVzc2VkVGV4dHVyZUZvcm1h
dHMuc2l6ZSgpKSkpOworICAgICAgICByZXR1cm4gVWludDMyQXJyYXk6OmNyZWF0ZShtX2NvbXBy
ZXNzZWRUZXh0dXJlRm9ybWF0cy5kYXRhKCksIG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLnNp
emUoKSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VMTF9GQUNFOgogICAgICAgICBy
ZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6Q1VMTF9GQUNFX01PREU6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFt
ZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VSUkVOVF9QUk9HUkFN
OgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xQcm9ncmFtPiht
X2N1cnJlbnRQcm9ncmFtKSk7CisgICAgICAgIHJldHVybiBtX2N1cnJlbnRQcm9ncmFtOwogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JJVFM6CiAgICAgICAgIGlmICghbV9mcmFt
ZWJ1ZmZlckJpbmRpbmcgJiYgIW1fYXR0cmlidXRlcy5kZXB0aCkKLSAgICAgICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oaW50WmVybyk7CisgICAgICAgICAgICByZXR1cm4gaW50WmVybzsKICAg
ICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6REVQVEhfQ0xFQVJfVkFMVUU6CiAgICAgICAgIHJldHVybiBnZXRGbG9hdFBhcmFt
ZXRlcihwbmFtZSk7CkBAIC01MjcsOSArNTQxLDkgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVy
aW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRJVEhFUjoKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIo
cG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVS
X0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1
ZmZlcj4obV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKSkp
OworICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdl
dEVsZW1lbnRBcnJheUJ1ZmZlcigpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUl9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8
V2ViR0xGcmFtZWJ1ZmZlcj4obV9mcmFtZWJ1ZmZlckJpbmRpbmcpKTsKKyAgICAgICAgcmV0dXJu
IG1fZnJhbWVidWZmZXJCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZST05U
X0ZBQ0U6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6R0VORVJBVEVfTUlQTUFQX0hJTlQ6CkBAIC01Nzcs
OSArNTkxLDkgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1l
dGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFRF9CSVRT
OgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPihtX3JlbmRlcmJ1ZmZlckJpbmRp
bmcpKTsKKyAgICAgICAgcmV0dXJuIG1fcmVuZGVyYnVmZmVyQmluZGluZzsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpSRU5ERVJFUjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhT
dHJpbmcoIldlYktpdCBXZWJHTCIpKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMQW55KFN0cmluZygi
V2ViS2l0IFdlYkdMIikpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNBTVBMRV9CVUZG
RVJTOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpTQU1QTEVfQ09WRVJBR0VfSU5WRVJUOgpAQCAtNTkzLDcgKzYwNyw3
IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNE
ZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTQ0lTU09SX1RFU1Q6CiAg
ICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpTSEFESU5HX0xBTkdVQUdFX1ZFUlNJT046Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oIldlYkdMIEdMU0wgRVMgMS4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmco
R3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTikgKyAiKSIpOworICAg
ICAgICByZXR1cm4gV2ViR0xBbnkoIldlYkdMIEdMU0wgRVMgMS4wICgiICsgbV9jb250ZXh0LT5n
ZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTikgKyAi
KSIpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQkFDS19GQUlMOgogICAg
ICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQkFDS19GVU5DOgpAQCAtNjEwLDcgKzYyNCw3IEBAIFdl
YkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBw
bmFtZSkKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JJVFM6CiAgICAgICAgIGlmICghbV9m
cmFtZWJ1ZmZlckJpbmRpbmcgJiYgIW1fYXR0cmlidXRlcy5zdGVuY2lsKQotICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhpbnRaZXJvKTsKKyAgICAgICAgICAgIHJldHVybiBXZWJHTEFu
eShpbnRaZXJvKTsKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9DTEVBUl9WQUxVRToKICAgICAgICAgcmV0
dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CkBAIC02MzMsNjEgKzY0Nyw2MSBAQCBXZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUp
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1VCUElYRUxfQklUUzoKICAgICAgICAgcmV0
dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
VEVYVFVSRV9CSU5ESU5HXzJEOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQ
dHI8V2ViR0xUZXh0dXJlPihtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0
dXJlMkRCaW5kaW5nKSk7CisgICAgICAgIHJldHVybiBtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRl
eHR1cmVVbml0XS50ZXh0dXJlMkRCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfQklORElOR19DVUJFX01BUDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQ
YXNzUmVmUHRyPFdlYkdMVGV4dHVyZT4obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5p
dF0udGV4dHVyZUN1YmVNYXBCaW5kaW5nKSk7CisgICAgICAgIHJldHVybiBtX3RleHR1cmVVbml0
c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlQ3ViZU1hcEJpbmRpbmc7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0FMSUdOTUVOVDoKICAgICAgICAgcmV0dXJuIGdldElu
dFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0ZM
SVBfWV9XRUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3VucGFja0ZsaXBZKTsK
KyAgICAgICAgcmV0dXJuIG1fdW5wYWNrRmxpcFk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6VU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMOgotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgIHJldHVybiBtX3VucGFj
a1ByZW11bHRpcGx5QWxwaGE7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0NP
TE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyht
X3VucGFja0NvbG9yc3BhY2VDb252ZXJzaW9uKTsKKyAgICAgICAgcmV0dXJuIG1fdW5wYWNrQ29s
b3JzcGFjZUNvbnZlcnNpb247CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVORE9SOgot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFN0cmluZygiV2ViS2l0IikpOworICAgICAgICBy
ZXR1cm4gU3RyaW5nIHsgQVNDSUlMaXRlcmFsIHsgIldlYktpdCIgfSB9OwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlZFUlNJT046Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oIldl
YkdMIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRVJT
SU9OKSArICIpIik7CisgICAgICAgIHJldHVybiAiV2ViR0wgMS4wICgiICsgbV9jb250ZXh0LT5n
ZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlNJT04pICsgIikiOwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlZJRVdQT1JUOgogICAgICAgICByZXR1cm4gZ2V0V2ViR0xJbnRBcnJh
eVBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkZSQUdNRU5UX1NIQURF
Ul9ERVJJVkFUSVZFX0hJTlRfT0VTOiAvLyBPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMKICAgICAg
ICAgaWYgKG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcykKICAgICAgICAgICAgIHJldHVybiBnZXRV
bnNpZ25lZEludFBhcmFtZXRlcihFeHRlbnNpb25zM0Q6OkZSQUdNRU5UX1NIQURFUl9ERVJJVkFU
SVZFX0hJTlRfT0VTKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1l
LCBPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIFdlYkdM
RGVidWdSZW5kZXJlckluZm86OlVOTUFTS0VEX1JFTkRFUkVSX1dFQkdMOgogICAgICAgICBpZiAo
bV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpKTsKKyAg
ICAgICAgICAgIHJldHVybiBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6
UkVOREVSRVIpOwogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6
SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdF
QkdMX2RlYnVnX3JlbmRlcmVyX2luZm8gbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIFdlYkdMRGVi
dWdSZW5kZXJlckluZm86OlVOTUFTS0VEX1ZFTkRPUl9XRUJHTDoKICAgICAgICAgaWYgKG1fd2Vi
Z2xEZWJ1Z1JlbmRlcmVySW5mbykKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9j
b250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFTkRPUikpOworICAgICAgICAg
ICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1Ip
OwogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVn
X3JlbmRlcmVyX2luZm8gbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6VkVS
VEVYX0FSUkFZX0JJTkRJTkdfT0VTOiAvLyBPRVNfdmVydGV4X2FycmF5X29iamVjdAogICAgICAg
ICBpZiAobV9vZXNWZXJ0ZXhBcnJheU9iamVjdCkgewotICAgICAgICAgICAgaWYgKCFtX2JvdW5k
VmVydGV4QXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpKQotICAgICAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPihz
dGF0aWNfY2FzdDxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKj4obV9ib3VuZFZlcnRleEFycmF5
T2JqZWN0LmdldCgpKSkpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAg
ICAgICAgICAgaWYgKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gbWFr
ZVJlZlB0cihzdGF0aWNfY2FzdDxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTJj4oKm1fYm91bmRW
ZXJ0ZXhBcnJheU9iamVjdCkpOwogICAgICAgICB9CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9y
KEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxp
ZCBwYXJhbWV0ZXIgbmFtZSwgT0VTX3ZlcnRleF9hcnJheV9vYmplY3Qgbm90IGVuYWJsZWQiKTsK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUOiAv
LyBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMKICAgICAgICAgaWYgKG1fZXh0VGV4dHVy
ZUZpbHRlckFuaXNvdHJvcGljKQogICAgICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFy
YW1ldGVyKEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUKTsKICAg
ICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwg
ImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfdGV4dHVyZV9maWx0
ZXJfYW5pc290cm9waWMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFY
X0NPTE9SX0FUVEFDSE1FTlRTX0VYVDogLy8gRVhUX2RyYXdfYnVmZmVycyBCRUdJTgogICAgICAg
ICBpZiAobV93ZWJnbERyYXdCdWZmZXJzKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkpOworICAgICAgICAgICAgcmV0dXJuIFdlYkdMQW55
KGdldE1heENvbG9yQXR0YWNobWVudHMoKSk7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBw
YXJhbWV0ZXIgbmFtZSwgV0VCR0xfZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6Ok1BWF9EUkFXX0JVRkZFUlNfRVhUOgogICAgICAgICBpZiAobV93ZWJn
bERyYXdCdWZmZXJzKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhnZXRNYXhEcmF3
QnVmZmVycygpKTsKKyAgICAgICAgICAgIHJldHVybiBXZWJHTEFueShnZXRNYXhEcmF3QnVmZmVy
cygpKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBXRUJHTF9k
cmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAobV93
ZWJnbERyYXdCdWZmZXJzCiAgICAgICAgICAgICAmJiBwbmFtZSA+PSBFeHRlbnNpb25zM0Q6OkRS
QVdfQlVGRkVSMF9FWFQKQEAgLTY5NywxMCArNzExLDEwIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICAgICAgICAg
ICAgICB2YWx1ZSA9IG1fZnJhbWVidWZmZXJCaW5kaW5nLT5nZXREcmF3QnVmZmVyKHBuYW1lKTsK
ICAgICAgICAgICAgIGVsc2UgLy8gZW11bGF0ZWQgYmFja2J1ZmZlcgogICAgICAgICAgICAgICAg
IHZhbHVlID0gbV9iYWNrRHJhd0J1ZmZlcjsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8odmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIFdlYkdMQW55KHZhbHVlKTsKICAgICAgICAg
fQogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmgKaW5kZXggMTg3NGZlNWE1YzM4MzExOThmNDNiOTRjMjA5NmI5ZWViZTQzZTQ3MC4uY2Uz
YWZiZTE4Nzc1MmJmODFmNGFiNzYyZDE5OTRlNDdmMTBhMmQ0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTMyLDE2ICsz
MiwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQg
ZmluYWwgOiBwdWJsaWMgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSB7CiBwdWJsaWM6CiAgICAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiwgR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzKTsKLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1l
bnQmLCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiwgR3JhcGhpY3NDb250ZXh0M0RBdHRy
aWJ1dGVzKTsKKyAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmLCBS
ZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyk7CiAK
IHByaXZhdGU6CiAgICAgYm9vbCBpc1dlYkdMMSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KIAogICAgIFdlYkdMRXh0ZW5zaW9uKiBnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJikgZmlu
YWw7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkgZmluYWw7
CisgICAgV2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKICAgICBW
ZWN0b3I8U3RyaW5nPiBnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkgZmluYWw7CiAKLSAgICBXZWJH
TEdldEluZm8gZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdl
dCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpIGZpbmFsOworICAgIFdlYkdM
QW55IGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdD
M0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKICAgICB2b2lkIHJlbmRl
cmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwg
R0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSBmaW5hbDsKICAgICBib29sIHZhbGlk
YXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCkgZmluYWw7CiAgICAgdm9pZCBoaW50
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gbW9kZSkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmlu
ZGV4IDI3NzBkYzFiNmUxZjM4M2VmY2M3NzI1MDMyYWU1MDUyZTc5YjNjZjYuLmI1ZDBlZTc3YmRk
ZGEwOTQ4YmM4NGExZjAzYzJhNzc5ZjU2NDM1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC0yNCw5
ICsyNCw5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKLSNpbmNsdWRlICJXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAKICNpbmNsdWRlICJBTkdMRUluc3RhbmNlZEFycmF5
cy5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCkBAIC00MjAsMTcgKzQyMCwxNSBAQCBzdGQ6
OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4gV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Y3JlYXRlKEhUTQogICAgICAgICByZXR1cm4gcmVuZGVyaW5nQ29udGV4dDsKICAg
ICB9CiAKLSAgICBIb3N0V2luZG93KiBob3N0V2luZG93ID0gZG9jdW1lbnQudmlldygpLT5yb290
KCktPmhvc3RXaW5kb3coKTsKLSAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQo
R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShhdHRyaWJ1dGVzLCBob3N0V2luZG93KSk7Ci0KKyAg
ICBhdXRvIGNvbnRleHQgPSBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKGF0dHJpYnV0ZXMsIGRv
Y3VtZW50LnZpZXcoKS0+cm9vdCgpLT5ob3N0V2luZG93KCkpOwogICAgIGlmICghY29udGV4dCB8
fCAhY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpIHsKICAgICAgICAgY2FudmFzLmRpc3Bh
dGNoRXZlbnQoV2ViR0xDb250ZXh0RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2ViZ2xjb250
ZXh0Y3JlYXRpb25lcnJvckV2ZW50LCBmYWxzZSwgdHJ1ZSwgIkNvdWxkIG5vdCBjcmVhdGUgYSBX
ZWJHTCBjb250ZXh0LiIpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAg
RXh0ZW5zaW9uczNEJiBleHRlbnNpb25zID0gY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpOwotICAg
IGlmIChleHRlbnNpb25zLnN1cHBvcnRzKCJHTF9FWFRfZGVidWdfbWFya2VyIikpCi0gICAgICAg
IGV4dGVuc2lvbnMucHVzaEdyb3VwTWFya2VyRVhUKCJXZWJHTFJlbmRlcmluZ0NvbnRleHQiKTsK
KyAgICBhdXRvJiBleHRlbnNpb25zID0gY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpOworICAgIGlm
IChleHRlbnNpb25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfZGVidWdfbWFya2Vy
IiB9KSkKKyAgICAgICAgZXh0ZW5zaW9ucy5wdXNoR3JvdXBNYXJrZXJFWFQoQVNDSUlMaXRlcmFs
IHsgIldlYkdMUmVuZGVyaW5nQ29udGV4dCIgfSk7CiAKICNpZiBFTkFCTEUoV0VCR0wyKSAmJiBQ
TEFURk9STShNQUMpCiAgICAgLy8gZ2xUZXhTdG9yYWdlKCkgd2FzIG9ubHkgYWRkZWQgdG8gQ29y
ZSBpbiBPcGVuR0wgNC4yLgpAQCAtNDM5LDEzICs0MzcsMTMgQEAgc3RkOjp1bmlxdWVfcHRyPFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0
ZShIVE0KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKIAotICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiByZW5kZXJpbmdDb250ZXh0ID0gbnVsbHB0
cjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4gcmVuZGVy
aW5nQ29udGV4dDsKICNpZiBFTkFCTEUoV0VCR0wyKQogICAgIGlmICh0eXBlID09ICJ3ZWJnbDIi
KQotICAgICAgICByZW5kZXJpbmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0PihjYW52YXMsIFdURk1vdmUoY29udGV4dCksIGF0dHJpYnV0ZXMpOworICAg
ICAgICByZW5kZXJpbmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTDJSZW5kZXJpbmdD
b250ZXh0PihjYW52YXMsIGNvbnRleHQucmVsZWFzZU5vbk51bGwoKSwgYXR0cmlidXRlcyk7CiAg
ICAgZWxzZQogI2VuZGlmCi0gICAgICAgIHJlbmRlcmluZ0NvbnRleHQgPSBzdGQ6Om1ha2VfdW5p
cXVlPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oY2FudmFzLCBXVEZNb3ZlKGNvbnRleHQpLCBhdHRy
aWJ1dGVzKTsKKyAgICAgICAgcmVuZGVyaW5nQ29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8V2Vi
R0xSZW5kZXJpbmdDb250ZXh0PihjYW52YXMsIGNvbnRleHQucmVsZWFzZU5vbk51bGwoKSwgYXR0
cmlidXRlcyk7CiAgICAgcmVuZGVyaW5nQ29udGV4dC0+c3VzcGVuZElmTmVlZGVkKCk7CiAKICAg
ICByZXR1cm4gcmVuZGVyaW5nQ29udGV4dDsKQEAgLTQ1NCw0NCArNDUyLDI5IEBAIHN0ZDo6dW5p
cXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpjcmVhdGUoSFRNCiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlKEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFdlYkdMQ29udGV4
dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICA6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQocGFz
c2VkQ2FudmFzKQogICAgICwgQWN0aXZlRE9NT2JqZWN0KCZwYXNzZWRDYW52YXMuZG9jdW1lbnQo
KSkKLSAgICAsIG1fY29udGV4dChudWxscHRyKQogICAgICwgbV9kaXNwYXRjaENvbnRleHRMb3N0
RXZlbnRUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29u
dGV4dExvc3RFdmVudCkKLSAgICAsIG1fcmVzdG9yZUFsbG93ZWQoZmFsc2UpCiAgICAgLCBtX3Jl
c3RvcmVUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9y
ZUNvbnRleHQpCi0gICAgLCBtX2dlbmVyYXRlZEltYWdlQ2FjaGUoMCkKLSAgICAsIG1fY29udGV4
dExvc3QoZmFsc2UpCi0gICAgLCBtX2NvbnRleHRMb3N0TW9kZShTeW50aGV0aWNMb3N0Q29udGV4
dCkKICAgICAsIG1fYXR0cmlidXRlcyhhdHRyaWJ1dGVzKQotICAgICwgbV9zeW50aGVzaXplZEVy
cm9yc1RvQ29uc29sZSh0cnVlKQogICAgICwgbV9udW1HTEVycm9yc1RvQ29uc29sZUFsbG93ZWQo
bWF4R0xFcnJvcnNBbGxvd2VkVG9Db25zb2xlKQogICAgICwgbV9pc1BlbmRpbmdQb2xpY3lSZXNv
bHV0aW9uKHRydWUpCi0gICAgLCBtX2hhc1JlcXVlc3RlZFBvbGljeVJlc29sdXRpb24oZmFsc2Up
CiB7CiB9CiAKLVdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiYmIGNvbnRleHQsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKK1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENh
bnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRl
eHQsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICA6IENhbnZhc1JlbmRl
cmluZ0NvbnRleHQocGFzc2VkQ2FudmFzKQogICAgICwgQWN0aXZlRE9NT2JqZWN0KCZwYXNzZWRD
YW52YXMuZG9jdW1lbnQoKSkKICAgICAsIG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQogICAg
ICwgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dExvc3RFdmVudCkKLSAgICAsIG1fcmVzdG9yZUFs
bG93ZWQoZmFsc2UpCiAgICAgLCBtX3Jlc3RvcmVUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQpCiAgICAgLCBtX2dlbmVyYXRlZEltYWdl
Q2FjaGUoNCkKLSAgICAsIG1fY29udGV4dExvc3QoZmFsc2UpCi0gICAgLCBtX2NvbnRleHRMb3N0
TW9kZShTeW50aGV0aWNMb3N0Q29udGV4dCkKICAgICAsIG1fYXR0cmlidXRlcyhhdHRyaWJ1dGVz
KQotICAgICwgbV9zeW50aGVzaXplZEVycm9yc1RvQ29uc29sZSh0cnVlKQogICAgICwgbV9udW1H
TEVycm9yc1RvQ29uc29sZUFsbG93ZWQobWF4R0xFcnJvcnNBbGxvd2VkVG9Db25zb2xlKQotICAg
ICwgbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKGZhbHNlKQotICAgICwgbV9oYXNSZXF1ZXN0
ZWRQb2xpY3lSZXNvbHV0aW9uKGZhbHNlKQogewotICAgIEFTU0VSVChtX2NvbnRleHQpOwogICAg
IG1fY29udGV4dEdyb3VwID0gV2ViR0xDb250ZXh0R3JvdXA6OmNyZWF0ZSgpOwotICAgIG1fY29u
dGV4dEdyb3VwLT5hZGRDb250ZXh0KHRoaXMpOworICAgIG1fY29udGV4dEdyb3VwLT5hZGRDb250
ZXh0KCp0aGlzKTsKICAgICAKICAgICBtX2NvbnRleHQtPnNldFdlYkdMQ29udGV4dCh0aGlzKTsK
IAotICAgIG1fbWF4Vmlld3BvcnREaW1zWzBdID0gbV9tYXhWaWV3cG9ydERpbXNbMV0gPSAwOwog
ICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6Ok1BWF9WSUVXUE9S
VF9ESU1TLCBtX21heFZpZXdwb3J0RGltcyk7CiAKICAgICBzZXR1cEZsYWdzKCk7CkBAIC02MTks
NyArNjAyLDcgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6fldlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UoKQogICAgIGlmICghbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKSB7CiAgICAg
ICAgIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMoKTsKICAgICAgICAgZGVzdHJveUdyYXBoaWNz
Q29udGV4dDNEKCk7Ci0gICAgICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVDb250ZXh0KHRoaXMp
OworICAgICAgICBtX2NvbnRleHRHcm91cC0+cmVtb3ZlQ29udGV4dCgqdGhpcyk7CiAgICAgfQog
fQogCkBAIC05MTMsNyArODk2LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpi
aW5kQnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgV2ViR0xCdWZmZXIqIGJ1ZmZlcikKICAgICBpZiAo
IWNoZWNrT2JqZWN0VG9CZUJvdW5kKCJiaW5kQnVmZmVyIiwgYnVmZmVyLCBkZWxldGVkKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIGlmIChkZWxldGVkKQotICAgICAgICBidWZmZXIgPSAwOworICAg
ICAgICBidWZmZXIgPSBudWxscHRyOwogICAgIGlmIChidWZmZXIgJiYgYnVmZmVyLT5nZXRUYXJn
ZXQoKSAmJiBidWZmZXItPmdldFRhcmdldCgpICE9IHRhcmdldCkgewogICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJiaW5kQnVm
ZmVyIiwgImJ1ZmZlcnMgY2FuIG5vdCBiZSB1c2VkIHdpdGggbXVsdGlwbGUgdGFyZ2V0cyIpOwog
ICAgICAgICByZXR1cm47CkBAIC0xMzk1LDcgKzEzNzgsNyBAQCBSZWZQdHI8V2ViR0xCdWZmZXI+
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZUJ1ZmZlcigpCiAgICAgaWYgKGlzQ29u
dGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBi
dWZmZXIgPSBXZWJHTEJ1ZmZlcjo6Y3JlYXRlKCp0aGlzKTsKLSAgICBhZGRTaGFyZWRPYmplY3Qo
YnVmZmVyLnB0cigpKTsKKyAgICBhZGRTaGFyZWRPYmplY3QoYnVmZmVyLmdldCgpKTsKICAgICBy
ZXR1cm4gV1RGTW92ZShidWZmZXIpOwogfQogCkBAIC0xNDA0LDcgKzEzODcsNyBAQCBSZWZQdHI8
V2ViR0xGcmFtZWJ1ZmZlcj4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlRnJhbWVi
dWZmZXIoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIGF1dG8gYnVmZmVyID0gV2ViR0xGcmFtZWJ1ZmZlcjo6Y3JlYXRlKCp0
aGlzKTsKLSAgICBhZGRDb250ZXh0T2JqZWN0KGJ1ZmZlci5wdHIoKSk7CisgICAgYWRkQ29udGV4
dE9iamVjdChidWZmZXIuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKGJ1ZmZlcik7CiB9CiAK
QEAgLTE0MTMsNyArMTM5Niw3IEBAIFJlZlB0cjxXZWJHTFRleHR1cmU+IFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmNyZWF0ZVRleHR1cmUoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5k
aW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gdGV4dHVyZSA9IFdlYkdM
VGV4dHVyZTo6Y3JlYXRlKCp0aGlzKTsKLSAgICBhZGRTaGFyZWRPYmplY3QodGV4dHVyZS5wdHIo
KSk7CisgICAgYWRkU2hhcmVkT2JqZWN0KHRleHR1cmUuZ2V0KCkpOwogICAgIHJldHVybiBXVEZN
b3ZlKHRleHR1cmUpOwogfQogCkBAIC0xNDIyLDcgKzE0MDUsNyBAQCBSZWZQdHI8V2ViR0xQcm9n
cmFtPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVQcm9ncmFtKCkKICAgICBpZiAo
aXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBh
dXRvIHByb2dyYW0gPSBXZWJHTFByb2dyYW06OmNyZWF0ZSgqdGhpcyk7Ci0gICAgYWRkU2hhcmVk
T2JqZWN0KHByb2dyYW0ucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdChwcm9ncmFtLmdldCgp
KTsKICAgICByZXR1cm4gV1RGTW92ZShwcm9ncmFtKTsKIH0KIApAQCAtMTQzMSw3ICsxNDE0LDcg
QEAgUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpj
cmVhdGVSZW5kZXJidWZmZXIoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gYnVmZmVyID0gV2ViR0xSZW5kZXJidWZm
ZXI6OmNyZWF0ZSgqdGhpcyk7Ci0gICAgYWRkU2hhcmVkT2JqZWN0KGJ1ZmZlci5wdHIoKSk7Cisg
ICAgYWRkU2hhcmVkT2JqZWN0KGJ1ZmZlci5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUoYnVm
ZmVyKTsKIH0KIApAQCAtMTQ0NSw3ICsxNDI4LDcgQEAgUmVmUHRyPFdlYkdMU2hhZGVyPiBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVTaGFkZXIoR0MzRGVudW0gdHlwZSkKICAgICB9
CiAKICAgICBhdXRvIHNoYWRlciA9IFdlYkdMU2hhZGVyOjpjcmVhdGUoKnRoaXMsIHR5cGUpOwot
ICAgIGFkZFNoYXJlZE9iamVjdChzaGFkZXIucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdChz
aGFkZXIuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKHNoYWRlcik7CiB9CiAKQEAgLTE0Nzgs
NyArMTQ2MSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlQnVmZmVy
KFdlYkdMQnVmZmVyKiBidWZmZXIpCiAgICAgaWYgKG1fYm91bmRBcnJheUJ1ZmZlciA9PSBidWZm
ZXIpCiAgICAgICAgIG1fYm91bmRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAKLSAgICBtX2JvdW5k
VmVydGV4QXJyYXlPYmplY3QtPnVuYmluZEJ1ZmZlcihidWZmZXIpOworICAgIG1fYm91bmRWZXJ0
ZXhBcnJheU9iamVjdC0+dW5iaW5kQnVmZmVyKCpidWZmZXIpOwogfQogCiB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZUZyYW1lYnVmZmVyKFdlYkdMRnJhbWVidWZmZXIqIGZy
YW1lYnVmZmVyKQpAQCAtMjE4NCwxMCArMjE2NywxMCBAQCBHQzNEaW50IFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldEF0dHJpYkxvY2F0aW9uKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29u
cwogICAgIHJldHVybiBtX2NvbnRleHQtPmdldEF0dHJpYkxvY2F0aW9uKG9iamVjdE9yWmVybyhw
cm9ncmFtKSwgbmFtZSk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRCdWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSkK
K1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFtZXRlcihH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0
T3JQZW5kaW5nKCkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICBib29sIHZhbGlkID0gZmFsc2U7CiAgICAgaWYgKHRhcmdldCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSIHx8IHRhcmdldCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVIpCkBAIC0yMjA3LDE5ICsyMTkwLDE5IEBAIFdl
YkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCdWZmZXJQYXJhbWV0ZXIo
R0MzRGVudW0gdGFyZ2V0LCBHQzNECiAjZW5kaWYKICAgICBpZiAoIXZhbGlkKSB7CiAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRC
dWZmZXJQYXJhbWV0ZXIiLCAiaW52YWxpZCB0YXJnZXQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAocG5h
bWUgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OkJVRkZFUl9TSVpFICYmIHBuYW1lICE9IEdyYXBoaWNz
Q29udGV4dDNEOjpCVUZGRVJfVVNBR0UpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEJ1ZmZlclBhcmFtZXRlciIsICJpbnZh
bGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAg
ICAgbV9jb250ZXh0LT5nZXRCdWZmZXJQYXJhbWV0ZXJpdih0YXJnZXQsIHBuYW1lLCAmdmFsdWUp
OwogICAgIGlmIChwbmFtZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6QlVGRkVSX1NJWkUpCi0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8o
c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2YWx1ZSkpOworICAgICAgICByZXR1cm4gdmFsdWU7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZSk7CiB9CiAKIHN0ZDo6b3B0
aW9uYWw8V2ViR0xDb250ZXh0QXR0cmlidXRlcz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKQpAQCAtMjI0NiwzMCArMjIyOSwzMCBAQCBHQzNEZW51bSBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRFcnJvcigpCiAgICAgcmV0dXJuIG1fY29udGV4
dC0+Z2V0RXJyb3IoKTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldFByb2dyYW1QYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBHQzNEZW51bSBw
bmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJh
bWV0ZXIoV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAo
aXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJnZXRQcm9n
cmFtUGFyYW1ldGVyIiwgcHJvZ3JhbSkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBz
d2l0Y2ggKHBuYW1lKSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVMRVRFX1NUQVRV
UzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhwcm9ncmFtLT5pc0RlbGV0ZWQoKSk7Cisg
ICAgICAgIHJldHVybiBwcm9ncmFtLT5pc0RlbGV0ZWQoKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpWQUxJREFURV9TVEFUVVM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0UHJvZ3JhbWl2
KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGJvb2w+KHZhbHVlKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5L
X1NUQVRVUzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhwcm9ncmFtLT5nZXRMaW5rU3Rh
dHVzKCkpOworICAgICAgICByZXR1cm4gcHJvZ3JhbS0+Z2V0TGlua1N0YXR1cygpOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFUVEFDSEVEX1NIQURFUlM6CiAgICAgICAgIG1fY29udGV4
dC0+Z2V0UHJvZ3JhbWl2KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgcG5hbWUsICZ2YWx1ZSk7Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICByZXR1cm4gdmFsdWU7
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUNUSVZFX0FUVFJJQlVURVM6CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6QUNUSVZFX1VOSUZPUk1TOgogICAgICAgICBtX2NvbnRleHQt
PmdldE5vbkJ1aWx0SW5BY3RpdmVTeW1ib2xDb3VudChvYmplY3RPclplcm8ocHJvZ3JhbSksIHBu
YW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICAg
ICAgcmV0dXJuIHZhbHVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9y
KEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQcm9ncmFtUGFyYW1ldGVyIiwg
ImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTIyODAsMTcgKzIyNjMs
MTcgQEAgU3RyaW5nIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1JbmZvTG9n
KFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSkKICAgICByZXR1cm4gZW5zdXJlTm90TnVsbChtX2NvbnRl
eHQtPmdldFByb2dyYW1JbmZvTG9nKG9iamVjdE9yWmVybyhwcm9ncmFtKSkpOwogfQogCi1XZWJH
TEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1l
dGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIGlmICh0YXJnZXQgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUikgewogICAg
ICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAi
Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIiwgImludmFsaWQgdGFyZ2V0Iik7Ci0gICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAg
IGlmICghbV9yZW5kZXJidWZmZXJCaW5kaW5nIHx8ICFtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPm9i
amVjdCgpKSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlZBTElEX09QRVJBVElPTiwgImdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlciIsICJubyByZW5kZXJi
dWZmZXIgYm91bmQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAobV9yZW5kZXJidWZmZXJCaW5kaW5nLT5n
ZXRJbnRlcm5hbEZvcm1hdCgpID09IEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMCkBA
IC0yMzE3LDEyICsyMzAwLDEyIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0CiAgICAgICAgICAg
ICB2YWx1ZSA9IDg7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVDoKLSAgICAgICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8obV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgp
KTsKKyAgICAgICAgICAgIHJldHVybiBtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdldEludGVybmFs
Rm9ybWF0KCk7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UmVuZGVyYnVmZmVyUGFyYW1l
dGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICByZXR1cm4gdmFsdWU7CiAg
ICAgfQogCiAgICAgR0MzRGludCB2YWx1ZSA9IDA7CkBAIC0yMzM2LDMyICsyMzE5LDMyIEBAIFdl
YkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoR0MzRGVudW0gdGFyZ2V0CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVS
QlVGRkVSX0RFUFRIX1NJWkU6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVG
RkVSX1NURU5DSUxfU0laRToKICAgICAgICAgbV9jb250ZXh0LT5nZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXJpdih0YXJnZXQsIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQ6Ci0gICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8obV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgpKTsKKyAg
ICAgICAgcmV0dXJuIG1fcmVuZGVyYnVmZmVyQmluZGluZy0+Z2V0SW50ZXJuYWxGb3JtYXQoKTsK
ICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQz
RDo6SU5WQUxJRF9FTlVNLCAiZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIiwgImludmFsaWQgcGFy
YW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRTaGFkZXJQYXJhbWV0ZXIoV2ViR0xTaGFkZXIqIHNoYWRlciwgR0MzRGVu
dW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRTaGFkZXJQ
YXJhbWV0ZXIoV2ViR0xTaGFkZXIqIHNoYWRlciwgR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYg
KGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0U2hh
ZGVyUGFyYW1ldGVyIiwgc2hhZGVyKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBzd2l0
Y2ggKHBuYW1lKSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVMRVRFX1NUQVRVUzoK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzaGFkZXItPmlzRGVsZXRlZCgpKTsKKyAgICAg
ICAgcmV0dXJuIHNoYWRlci0+aXNEZWxldGVkKCk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6Q09NUElMRV9TVEFUVVM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0U2hhZGVyaXYob2JqZWN0
T3JaZXJvKHNoYWRlciksIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHN0YXRpY19jYXN0PGJvb2w+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxib29sPih2YWx1ZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0hBREVSX1RZUEU6
CiAgICAgICAgIG1fY29udGV4dC0+Z2V0U2hhZGVyaXYob2JqZWN0T3JaZXJvKHNoYWRlciksIHBu
YW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVu
c2lnbmVkIGludD4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVk
Pih2YWx1ZSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhp
Y3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFNoYWRlclBhcmFtZXRlciIsICJpbnZhbGlk
IHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogfQogCkBAIC0yNDEwLDEzICsyMzkzLDEzIEBAIFN0
cmluZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRTaGFkZXJTb3VyY2UoV2ViR0xTaGFk
ZXIqIHNoYWRlcikKICAgICByZXR1cm4gZW5zdXJlTm90TnVsbChzaGFkZXItPmdldFNvdXJjZSgp
KTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFRleFBh
cmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKLSAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBX
ZWJHTFRleHR1cmUqIHRleCA9IHZhbGlkYXRlVGV4dHVyZUJpbmRpbmcoImdldFRleFBhcmFtZXRl
ciIsIHRhcmdldCwgZmFsc2UpOwogICAgIGlmICghdGV4KQotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIEdDM0RpbnQgdmFsdWUgPSAw
OwogICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFX01BR19GSUxURVI6CkBAIC0yNDI0LDI3ICsyNDA3LDI3IEBAIFdlYkdMR2V0SW5mbyBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEZW51CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1M6CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1Q6CiAgICAgICAgIG1fY29udGV4
dC0+Z2V0VGV4UGFyYW1ldGVyaXYodGFyZ2V0LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZhbHVlKSk7CisgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmFsdWUpOwogICAgIGNhc2UgRXh0ZW5z
aW9uczNEOjpURVhUVVJFX01BWF9BTklTT1RST1BZX0VYVDogLy8gRVhUX3RleHR1cmVfZmlsdGVy
X2FuaXNvdHJvcGljCiAgICAgICAgIGlmIChtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykg
ewogICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRUZXhQYXJhbWV0ZXJpdih0YXJnZXQsIHBuYW1l
LCAmdmFsdWUpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDx1
bnNpZ25lZCBpbnQ+KHZhbHVlKSk7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHZhbHVlKTsKICAgICAgICAgfQogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0VGV4UGFyYW1ldGVyIiwgImludmFsaWQg
cGFyYW1ldGVyIG5hbWUsIEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyBub3QgZW5hYmxl
ZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRUZXhQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0
ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIH0KIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdCBXZWJHTFVuaWZv
cm1Mb2NhdGlvbiogdW5pZm9ybUxvY2F0aW9uKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0IFdlYkdMVW5p
Zm9ybUxvY2F0aW9uKiB1bmlmb3JtTG9jYXRpb24pCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RP
clBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0VW5pZm9ybSIsIHByb2dyYW0p
KQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIGlmICghdW5pZm9ybUxvY2F0aW9uIHx8IHVuaWZvcm1Mb2NhdGlvbi0+cHJvZ3JhbSgp
ICE9IHByb2dyYW0pIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAiZ2V0VW5pZm9ybSIsICJubyB1bmlmb3JtbG9jYXRpb24g
b3Igbm90IHZhbGlkIGZvciB0aGlzIHByb2dyYW0iKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgR0MzRGludCBsb2Nh
dGlvbiA9IHVuaWZvcm1Mb2NhdGlvbi0+bG9jYXRpb24oKTsKIApAQCAtMjUxOSw3ICsyNTAyLDcg
QEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2Vi
R0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdAogICAgIGRlZmF1bHQ6CiAgICAgICAgIC8vIENhbid0
IGhhbmRsZSB0aGlzIHR5cGUKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfVkFMVUUsICJnZXRVbmlmb3JtIiwgInVuaGFuZGxlZCB0eXBlIik7Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogICAgIHN3aXRjaCAoYmFzZVR5cGUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpGTE9BVDogewpAQCAtMjUyOSw4ICsyNTEyLDggQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdAog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1mdihvYmplY3RP
clplcm8ocHJvZ3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGggPT0g
MSkKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWVbMF0pOwotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PihGbG9hdDMyQXJyYXk6
OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlWzBdOwor
ICAgICAgICByZXR1cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCk7CiAgICAg
fQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OklOVDogewogICAgICAgICBHQzNEaW50IHZh
bHVlWzRdID0gezB9OwpAQCAtMjUzOSw4ICsyNTIyLDggQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25z
dAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1pdihvYmpl
Y3RPclplcm8ocHJvZ3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGgg
PT0gMSkKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWVbMF0pOwotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8SW50MzJBcnJheT4oSW50MzJBcnJheTo6
Y3JlYXRlKHZhbHVlLCBsZW5ndGgpKSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVbMF07Cisg
ICAgICAgIHJldHVybiBJbnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCk7CiAgICAgfQog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkJPT0w6IHsKICAgICAgICAgR0MzRGludCB2YWx1
ZVs0XSA9IHswfTsKQEAgLTI1NDksMTIgKzI1MzIsMTIgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25z
dAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1pdihvYmpl
Y3RPclplcm8ocHJvZ3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGgg
PiAxKSB7Ci0gICAgICAgICAgICBib29sIGJvb2xWYWx1ZVsxNl0gPSB7MH07CisgICAgICAgICAg
ICBWZWN0b3I8Ym9vbD4gdmVjdG9yKGxlbmd0aCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGogPSAwOyBqIDwgbGVuZ3RoOyBqKyspCi0gICAgICAgICAgICAgICAgYm9vbFZhbHVlW2pdID0g
c3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWVbal0pOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhib29sVmFsdWUsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgdmVjdG9yW2pdID0gdmFs
dWVbal07CisgICAgICAgICAgICByZXR1cm4gV1RGTW92ZSh2ZWN0b3IpOwogICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWVbMF0pKTsK
KyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJvb2w+KHZhbHVlWzBdKTsKICAgICB9CiAgICAg
ZGVmYXVsdDoKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTI1NjIsNyArMjU0NSw3IEBA
IFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdM
UHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QKIAogICAgIC8vIElmIHdlIGdldCBoZXJlLCBzb21ldGhp
bmcgd2VudCB3cm9uZyBpbiBvdXIgdW5mb3J0dW5hdGVseSBjb21wbGV4IGxvZ2ljIGFib3ZlCiAg
ICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUsICJn
ZXRVbmlmb3JtIiwgInVua25vd24gZXJyb3IiKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZlB0cjxXZWJHTFVuaWZvcm1Mb2NhdGlvbj4g
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybUxvY2F0aW9uKFdlYkdMUHJvZ3Jh
bSogcHJvZ3JhbSwgY29uc3QgU3RyaW5nJiBuYW1lKQpAQCAtMjYwMyw0MyArMjU4Niw0MyBAQCBS
ZWZQdHI8V2ViR0xVbmlmb3JtTG9jYXRpb24+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omdl
dFVuaWZvcm1Mb2NhdGlvbihXZWJHTAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1XZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VmVydGV4QXR0cmliKEdDM0R1aW50
IGluZGV4LCBHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldFZlcnRleEF0dHJpYihHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUpCiB7CiAg
ICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmIChpbmRleCA+PSBtX21h
eFZlcnRleEF0dHJpYnMpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfVkFMVUUsICJnZXRWZXJ0ZXhBdHRyaWIiLCAiaW5kZXggb3V0IG9mIHJh
bmdlIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogCiAgICAgY29uc3QgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OlZl
cnRleEF0dHJpYlN0YXRlJiBzdGF0ZSA9IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0VmVy
dGV4QXR0cmliU3RhdGUoaW5kZXgpOwogCiAgICAgaWYgKChpc1dlYkdMMigpIHx8IG1fYW5nbGVJ
bnN0YW5jZWRBcnJheXMpICYmIHBuYW1lID09IEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRU
UklCX0FSUkFZX0RJVklTT1JfQU5HTEUpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3Rh
dGUuZGl2aXNvcik7CisgICAgICAgIHJldHVybiBzdGF0ZS5kaXZpc29yOwogCiAgICAgc3dpdGNo
IChwbmFtZSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJS
QVlfQlVGRkVSX0JJTkRJTkc6CiAgICAgICAgIGlmICgoIWlzR0xFUzJDb21wbGlhbnQoKSAmJiAh
aW5kZXggJiYgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRWZXJ0ZXhBdHRyaWJTdGF0ZSgw
KS5idWZmZXJCaW5kaW5nID09IG1fdmVydGV4QXR0cmliMEJ1ZmZlcikKICAgICAgICAgICAgIHx8
ICFzdGF0ZS5idWZmZXJCaW5kaW5nCiAgICAgICAgICAgICB8fCAhc3RhdGUuYnVmZmVyQmluZGlu
Zy0+b2JqZWN0KCkpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4oc3RhdGUuYnVmZmVy
QmluZGluZykpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBz
dGF0ZS5idWZmZXJCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9B
VFRSSUJfQVJSQVlfRU5BQkxFRDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS5l
bmFibGVkKTsKKyAgICAgICAgcmV0dXJuIHN0YXRlLmVuYWJsZWQ7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEOgotICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKHN0YXRlLm5vcm1hbGl6ZWQpOworICAgICAgICByZXR1cm4gc3RhdGUu
bm9ybWFsaXplZDsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FS
UkFZX1NJWkU6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGUuc2l6ZSk7CisgICAg
ICAgIHJldHVybiBzdGF0ZS5zaXplOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRF
WF9BVFRSSUJfQVJSQVlfU1RSSURFOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRl
Lm9yaWdpbmFsU3RyaWRlKTsKKyAgICAgICAgcmV0dXJuIHN0YXRlLm9yaWdpbmFsU3RyaWRlOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRToKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS50eXBlKTsKKyAgICAgICAgcmV0dXJuIHN0
YXRlLnR5cGU7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VSUkVOVF9WRVJURVhfQVRU
UklCOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5
PihGbG9hdDMyQXJyYXk6OmNyZWF0ZShtX3ZlcnRleEF0dHJpYlZhbHVlW2luZGV4XS52YWx1ZSwg
NCkpKTsKKyAgICAgICAgcmV0dXJuIEZsb2F0MzJBcnJheTo6Y3JlYXRlKG1fdmVydGV4QXR0cmli
VmFsdWVbaW5kZXhdLnZhbHVlLCA0KTsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0VmVydGV4QXR0cmli
IiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTI2NDcsOCArMjYz
MCw3IEBAIGxvbmcgbG9uZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRy
aWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RP
clBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgR0MzRHNpemVpcHRyIHJlc3VsdCA9
IG1fY29udGV4dC0+Z2V0VmVydGV4QXR0cmliT2Zmc2V0KGluZGV4LCBwbmFtZSk7Ci0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4ocmVzdWx0KTsKKyAgICByZXR1cm4gbV9jb250ZXh0
LT5nZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoaW5kZXgsIHBuYW1lKTsKIH0KIAogR0MzRGJvb2xlYW4g
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6aXNCdWZmZXIoV2ViR0xCdWZmZXIqIGJ1ZmZlcikK
QEAgLTMxMTAsOCArMzA5Miw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVh
ZFBpeGVscyhHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoCiAjdW5kZWYgUEFD
S0VEX0lOVEVSTkFMX0ZPUk1BVF9DSEVDSwogCiAgICAgLy8gQ2FsY3VsYXRlIGFycmF5IHNpemUs
IHRha2luZyBpbnRvIGNvbnNpZGVyYXRpb24gb2YgUEFDS19BTElHTk1FTlQuCi0gICAgdW5zaWdu
ZWQgaW50IHRvdGFsQnl0ZXNSZXF1aXJlZCA9IDA7Ci0gICAgdW5zaWduZWQgaW50IHBhZGRpbmcg
PSAwOworICAgIHVuc2lnbmVkIHRvdGFsQnl0ZXNSZXF1aXJlZCA9IDA7CisgICAgdW5zaWduZWQg
cGFkZGluZyA9IDA7CiAgICAgaWYgKCFtX2lzUm9idXN0bmVzc0VYVFN1cHBvcnRlZCkgewogICAg
ICAgICBHQzNEZW51bSBlcnJvciA9IG1fY29udGV4dC0+Y29tcHV0ZUltYWdlU2l6ZUluQnl0ZXMo
Zm9ybWF0LCB0eXBlLCB3aWR0aCwgaGVpZ2h0LCBtX3BhY2tBbGlnbm1lbnQsICZ0b3RhbEJ5dGVz
UmVxdWlyZWQsICZwYWRkaW5nKTsKICAgICAgICAgaWYgKGVycm9yICE9IEdyYXBoaWNzQ29udGV4
dDNEOjpOT19FUlJPUikgewpAQCAtNDU4Nyw3ICs0NTY5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50
IHNpemUKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAvLyBEZXRlcm1pbmUgdGhlIG51bWJl
ciBvZiBlbGVtZW50cyB0aGUgYm91bmQgYnVmZmVyIGNhbiBob2xkLCBnaXZlbiB0aGUgb2Zmc2V0
LCBzaXplLCB0eXBlIGFuZCBzdHJpZGUKLSAgICB1bnNpZ25lZCBpbnQgdHlwZVNpemUgPSBzaXpl
SW5CeXRlcyh0eXBlKTsKKyAgICBhdXRvIHR5cGVTaXplID0gc2l6ZUluQnl0ZXModHlwZSk7CiAg
ICAgaWYgKCF0eXBlU2l6ZSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9FTlVNLCAidmVydGV4QXR0cmliUG9pbnRlciIsICJpbnZhbGlkIHR5
cGUiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNDU5OCw3ICs0NTgwLDcgQEAgdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBH
QzNEaW50IHNpemUKICAgICB9CiAgICAgR0MzRHNpemVpIGJ5dGVzUGVyRWxlbWVudCA9IHNpemUg
KiB0eXBlU2l6ZTsKIAotICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+c2V0VmVydGV4QXR0
cmliU3RhdGUoaW5kZXgsIGJ5dGVzUGVyRWxlbWVudCwgc2l6ZSwgdHlwZSwgbm9ybWFsaXplZCwg
c3RyaWRlLCBzdGF0aWNfY2FzdDxHQzNEaW50cHRyPihvZmZzZXQpLCBtX2JvdW5kQXJyYXlCdWZm
ZXIpOworICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+c2V0VmVydGV4QXR0cmliU3RhdGUo
aW5kZXgsIGJ5dGVzUGVyRWxlbWVudCwgc2l6ZSwgdHlwZSwgbm9ybWFsaXplZCwgc3RyaWRlLCBz
dGF0aWNfY2FzdDxHQzNEaW50cHRyPihvZmZzZXQpLCAqbV9ib3VuZEFycmF5QnVmZmVyKTsKICAg
ICBtX2NvbnRleHQtPnZlcnRleEF0dHJpYlBvaW50ZXIoaW5kZXgsIHNpemUsIHR5cGUsIG5vcm1h
bGl6ZWQsIHN0cmlkZSwgc3RhdGljX2Nhc3Q8R0MzRGludHB0cj4ob2Zmc2V0KSk7CiB9CiAKQEAg
LTQ2ODksNyArNDY3MSw3IEBAIFBsYXRmb3JtTGF5ZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogICAgIHJldHVybiAoIWlzQ29udGV4dExvc3QoKSAm
JiAhbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKSA/IG1fY29udGV4dC0+cGxhdGZvcm1MYXll
cigpIDogMDsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVTaGFy
ZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6cmVtb3ZlU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0JiBvYmplY3Qp
CiB7CiAgICAgaWYgKG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikKICAgICAgICAgcmV0dXJu
OwpAQCAtNDY5Nyw3ICs0Njc5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpy
ZW1vdmVTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCkKICAgICBtX2NvbnRl
eHRHcm91cC0+cmVtb3ZlT2JqZWN0KG9iamVjdCk7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6YWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QpCit2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZFNoYXJlZE9iamVjdChXZWJHTFNoYXJl
ZE9iamVjdCYgb2JqZWN0KQogewogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24p
CiAgICAgICAgIHJldHVybjsKQEAgLTQ3MDYsMjEgKzQ2ODgsMjEgQEAgdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjphZGRTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVj
dCkKICAgICBtX2NvbnRleHRHcm91cC0+YWRkT2JqZWN0KG9iamVjdCk7CiB9CiAKLXZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVtb3ZlQ29udGV4dE9iamVjdChXZWJHTENvbnRleHRP
YmplY3QqIG9iamVjdCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVtb3ZlQ29u
dGV4dE9iamVjdChXZWJHTENvbnRleHRPYmplY3QmIG9iamVjdCkKIHsKICAgICBpZiAobV9pc1Bl
bmRpbmdQb2xpY3lSZXNvbHV0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NvbnRleHRP
YmplY3RzLnJlbW92ZShvYmplY3QpOworICAgIG1fY29udGV4dE9iamVjdHMucmVtb3ZlKCZvYmpl
Y3QpOwogfQogCi12b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZENvbnRleHRPYmpl
Y3QoV2ViR0xDb250ZXh0T2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmFkZENvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0JiBvYmplY3QpCiB7CiAg
ICAgaWYgKG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgQVNTRVJUKCFpc0NvbnRleHRMb3N0KCkpOwotICAgIG1fY29udGV4dE9iamVjdHMuYWRkKG9i
amVjdCk7CisgICAgbV9jb250ZXh0T2JqZWN0cy5hZGQoJm9iamVjdCk7CiB9CiAKIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpCkBAIC00
NzU4LDU2ICs0NzQwLDU2IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2FuU3Vz
cGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Qm9vbGVhblBhcmFt
ZXRlcihHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGJvb2xlYW4g
dmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0Qm9vbGVhbnYocG5hbWUsICZ2YWx1ZSk7Ci0g
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxib29sPih2YWx1ZSkpOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxib29sPih2YWx1ZSk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5h
bWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuQXJyYXlQ
YXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKHBuYW1lICE9IEdyYXBoaWNzQ29u
dGV4dDNEOjpDT0xPUl9XUklURU1BU0spIHsKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygwLCAwKTsKKyAgICAgICAgcmV0dXJuIFZlY3Rvcjxi
b29sPiB7IH07CiAgICAgfQotICAgIEdDM0Rib29sZWFuIHZhbHVlWzRdID0gezB9OworICAgIEdD
M0Rib29sZWFuIHZhbHVlWzRdID0geyAwIH07CiAgICAgbV9jb250ZXh0LT5nZXRCb29sZWFudihw
bmFtZSwgdmFsdWUpOwotICAgIGJvb2wgYm9vbFZhbHVlWzRdOwotICAgIGZvciAoaW50IGlpID0g
MDsgaWkgPCA0OyArK2lpKQotICAgICAgICBib29sVmFsdWVbaWldID0gc3RhdGljX2Nhc3Q8Ym9v
bD4odmFsdWVbaWldKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKGJvb2xWYWx1ZSwgNCk7Cisg
ICAgVmVjdG9yPGJvb2w+IHZlY3Rvcig0KTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
NDsgKytpKQorICAgICAgICB2ZWN0b3JbaV0gPSB2YWx1ZVtpXTsKKyAgICByZXR1cm4gV1RGTW92
ZSh2ZWN0b3IpOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0RmxvYXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRGbG9hdFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBH
QzNEZmxvYXQgdmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0RmxvYXR2KHBuYW1lLCAmdmFs
dWUpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgIHJldHVybiB2YWx1ZTsK
IH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEludFBhcmFt
ZXRlcihHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldEludFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNEaW50IHZhbHVlID0g
MDsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KHBuYW1lLCAmdmFsdWUpOwotICAgIHJldHVy
biBXZWJHTEdldEluZm8odmFsdWUpOworICAgIHJldHVybiB2YWx1ZTsKIH0KIAotV2ViR0xHZXRJ
bmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEdD
M0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5z
aWduZWRJbnRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGludCB2YWx1ZSA9
IDA7CiAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihwbmFtZSwgJnZhbHVlKTsKLSAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odmFsdWUpKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVlKTsKIH0KIAotV2ViR0xHZXRJbmZvIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEludDY0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0SW50NjRQYXJhbWV0ZXIo
R0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGludDY0IHZhbHVlID0gMDsKICAgICBtX2NvbnRl
eHQtPmdldEludGVnZXI2NHYocG5hbWUsICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5m
byh2YWx1ZSk7CisgICAgcmV0dXJuIHZhbHVlOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBu
YW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xGbG9hdEFy
cmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdDM0RmbG9hdCB2YWx1ZVs0XSA9
IHswfTsKICAgICBtX2NvbnRleHQtPmdldEZsb2F0dihwbmFtZSwgdmFsdWUpOwpAQCAtNDgyNSwx
MCArNDgwNywxMCBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYQogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgfQotICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFz
c1JlZlB0cjxGbG9hdDMyQXJyYXk+KEZsb2F0MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgp
KSk7CisgICAgcmV0dXJuIEZsb2F0MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgpOwogfQog
Ci1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJh
eVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAg
R0MzRGludCB2YWx1ZVs0XSA9IHswfTsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KHBuYW1l
LCB2YWx1ZSk7CkBAIC00ODQ0LDcgKzQ4MjYsNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZQog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgfQotICAgIHJldHVy
biBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxJbnQzMkFycmF5PihJbnQzMkFycmF5OjpjcmVhdGUo
dmFsdWUsIGxlbmd0aCkpKTsKKyAgICByZXR1cm4gSW50MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBs
ZW5ndGgpOwogfQogCiBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrVGV4dHVy
ZUNvbXBsZXRlbmVzcyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIGJvb2wgcHJlcGFyZVRvRHJh
dykKQEAgLTUwNjgsNyArNTA1MCw3IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
dmFsaWRhdGVDb21wcmVzc2VkVGV4RnVuY0RhdGEoY29uc3QgY2hhciogZnVuY3RpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICB1bnNpZ25lZCBpbnQgYnl0ZXNSZXF1aXJlZCA9
IDA7CisgICAgdW5zaWduZWQgYnl0ZXNSZXF1aXJlZCA9IDA7CiAKICAgICBzd2l0Y2ggKGZvcm1h
dCkgewogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhU
OgpAQCAtNTMyNSwxNyArNTMwNywxNiBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OnZhbGlkYXRlVW5pZm9ybU1hdHJpeFBhcmFtZXRlcnMoY29uc3QgY2hhciogZnVuYwogCiBXZWJH
TEJ1ZmZlciogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVCdWZmZXJEYXRhUGFy
YW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDM0RlbnVtIHRhcmdldCwgR0MzRGVu
dW0gdXNhZ2UpCiB7Ci0gICAgV2ViR0xCdWZmZXIqIGJ1ZmZlciA9IDA7CisgICAgc3RkOjpvcHRp
b25hbDxXZWJHTEJ1ZmZlcio+IGJ1ZmZlcjsKICAgICBzd2l0Y2ggKHRhcmdldCkgewogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVSOgotICAgICAgICBidWZm
ZXIgPSBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1lbnRBcnJheUJ1ZmZlcigpLmdl
dCgpOworICAgICAgICBidWZmZXIgPSBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1l
bnRBcnJheUJ1ZmZlcigpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpBUlJBWV9CVUZGRVI6CiAgICAgICAgIGJ1ZmZlciA9IG1fYm91bmRBcnJheUJ1ZmZlci5n
ZXQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICNpZiBFTkFCTEUoV0VCR0wyKQot
ICAgICAgICBib29sIHN1Y2Nlc3MgPSB0cnVlOwogICAgICAgICBpZiAoaXNXZWJHTDIoKSkgewog
ICAgICAgICAgICAgc3dpdGNoICh0YXJnZXQpIHsKICAgICAgICAgICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkNPUFlfUkVBRF9CVUZGRVI6CkBAIC01MzU2LDE5ICs1MzM3LDE1IEBAIFdlYkdM
QnVmZmVyKiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxpZGF0ZUJ1ZmZlckRhdGFQYXJh
bWV0ZXJzKGNvbnN0IGNoYXIqCiAgICAgICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpV
TklGT1JNX0JVRkZFUjoKICAgICAgICAgICAgICAgICBidWZmZXIgPSBtX2JvdW5kVW5pZm9ybUJ1
ZmZlci5nZXQoKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBm
YWxzZTsKLSAgICAgICAgaWYgKHN1Y2Nlc3MpCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGlmIChidWZmZXIpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICNlbmRp
ZgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIHRhcmdldCIpOwogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICB9Ci0gICAgaWYgKCFidWZmZXIpIHsKKyAgICBpZiAoIWJ1ZmZlciB8fCAhYnVm
ZmVyLnZhbHVlKCkpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfT1BFUkFUSU9OLCBmdW5jdGlvbk5hbWUsICJubyBidWZmZXIiKTsKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtNTM3Niw3ICs1MzUzLDcgQEAgV2ViR0xCdWZm
ZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlQnVmZmVyRGF0YVBhcmFtZXRl
cnMoY29uc3QgY2hhcioKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVFJFQU1fRFJBVzoK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEFUSUNfRFJBVzoKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEWU5BTUlDX0RSQVc6Ci0gICAgICAgIHJldHVybiBidWZmZXI7CisgICAg
ICAgIHJldHVybiBidWZmZXIudmFsdWUoKTsKICAgICB9CiAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCB1
c2FnZSIpOwogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IDczOTNhMzg2Mjgz
M2ZjYjg2YmIxNzFiMjA2YjI3YmNlZDliMzllY2YuLmQ5MWI4NDNiNzlkY2YzMmEyYzRkNDFjZmI1
Y2M0NjhhNTNkN2U2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTMwLDEzICszMCwxMCBAQAogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNs
dWRlICJUaW1lci5oIgorI2luY2x1ZGUgIldlYkdMQW55LmgiCiAjaW5jbHVkZSAiV2ViR0xDb250
ZXh0QXR0cmlidXRlcy5oIgotI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgotI2luY2x1ZGUgIldl
YkdMT2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViR0xUZXh0dXJlLmgiCiAjaW5jbHVkZSA8bWVtb3J5
PgotI2luY2x1ZGUgPHJ1bnRpbWUvRmxvYXQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9J
bnQzMkFycmF5Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDgsNyArNDUsNiBAQCBj
bGFzcyBFWFRzUkdCOwogY2xhc3MgRVhURnJhZ0RlcHRoOwogY2xhc3MgSFRNTEltYWdlRWxlbWVu
dDsKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7Ci1jbGFzcyBJbWFnZUJ1ZmZlcjsKIGNsYXNzIElt
YWdlRGF0YTsKIGNsYXNzIEludFNpemU7CiBjbGFzcyBPRVNTdGFuZGFyZERlcml2YXRpdmVzOwpA
QCAtMTkxLDI0ICsxODcsMjQgQEAgcHVibGljOgogICAgIFJlZlB0cjxXZWJHTEFjdGl2ZUluZm8+
IGdldEFjdGl2ZVVuaWZvcm0oV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgaW5kZXgpOwogICAgIGJv
b2wgZ2V0QXR0YWNoZWRTaGFkZXJzKFdlYkdMUHJvZ3JhbSosIFZlY3RvcjxSZWZQdHI8V2ViR0xT
aGFkZXI+PiYpOwogICAgIEdDM0RpbnQgZ2V0QXR0cmliTG9jYXRpb24oV2ViR0xQcm9ncmFtKiwg
Y29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0QnVmZmVyUGFyYW1ldGVy
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldEJ1ZmZl
clBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKTsKICAgICBzdGQ6Om9w
dGlvbmFsPFdlYkdMQ29udGV4dEF0dHJpYnV0ZXM+IGdldENvbnRleHRBdHRyaWJ1dGVzKCk7CiAg
ICAgR0MzRGVudW0gZ2V0RXJyb3IoKTsKICAgICB2aXJ0dWFsIFdlYkdMRXh0ZW5zaW9uKiBnZXRF
eHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKSA9IDA7Ci0gICAgdmlydHVhbCBXZWJHTEdldElu
Zm8gZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpID0gMDsKLSAgICB2aXJ0dWFsIFdlYkdM
R2V0SW5mbyBnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpID0gMDsKLSAgICBXZWJHTEdldElu
Zm8gZ2V0UHJvZ3JhbVBhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNEZW51bSBwbmFtZSk7Cisg
ICAgdmlydHVhbCBXZWJHTEFueSBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBwbmFtZSkgPSAwOwor
ICAgIHZpcnR1YWwgV2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSA9IDA7Cisg
ICAgV2ViR0xBbnkgZ2V0UHJvZ3JhbVBhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNEZW51bSBw
bmFtZSk7CiAgICAgU3RyaW5nIGdldFByb2dyYW1JbmZvTG9nKFdlYkdMUHJvZ3JhbSopOwotICAg
IFdlYkdMR2V0SW5mbyBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEZW51bSBwbmFtZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFNoYWRlclBhcmFtZXRlcihXZWJH
TFNoYWRlciosIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBnZXRSZW5kZXJidWZmZXJQ
YXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkg
Z2V0U2hhZGVyUGFyYW1ldGVyKFdlYkdMU2hhZGVyKiwgR0MzRGVudW0gcG5hbWUpOwogICAgIFN0
cmluZyBnZXRTaGFkZXJJbmZvTG9nKFdlYkdMU2hhZGVyKik7CiAgICAgUmVmUHRyPFdlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0PiBnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hh
ZGVyVHlwZSwgR0MzRGVudW0gcHJlY2lzaW9uVHlwZSk7CiAgICAgU3RyaW5nIGdldFNoYWRlclNv
dXJjZShXZWJHTFNoYWRlciopOwogICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gZ2V0U3VwcG9y
dGVkRXh0ZW5zaW9ucygpID0gMDsKLSAgICBXZWJHTEdldEluZm8gZ2V0VGV4UGFyYW1ldGVyKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRVbmlm
b3JtKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKik7CisgICAgV2Vi
R0xBbnkgZ2V0VGV4UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOwor
ICAgIFdlYkdMQW55IGdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiwgY29uc3QgV2ViR0xVbmlmb3Jt
TG9jYXRpb24qKTsKICAgICBSZWZQdHI8V2ViR0xVbmlmb3JtTG9jYXRpb24+IGdldFVuaWZvcm1M
b2NhdGlvbihXZWJHTFByb2dyYW0qLCBjb25zdCBTdHJpbmcmKTsKLSAgICBXZWJHTEdldEluZm8g
Z2V0VmVydGV4QXR0cmliKEdDM0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2Vi
R0xBbnkgZ2V0VmVydGV4QXR0cmliKEdDM0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSk7CiAg
ICAgbG9uZyBsb25nIGdldFZlcnRleEF0dHJpYk9mZnNldChHQzNEdWludCBpbmRleCwgR0MzRGVu
dW0gcG5hbWUpOwogCiAgICAgdmlydHVhbCB2b2lkIGhpbnQoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
ZW51bSBtb2RlKSA9IDA7CkBAIC0zMjMsOCArMzE5LDggQEAgcHVibGljOgogICAgIHZvaWQgcGFp
bnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKSBvdmVycmlkZTsKICAgICBSZWZQdHI8SW1hZ2VE
YXRhPiBwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSgpOwogCi0gICAgdm9pZCByZW1v
dmVTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqKTsKLSAgICB2b2lkIHJlbW92ZUNvbnRl
eHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0Kik7CisgICAgdm9pZCByZW1vdmVTaGFyZWRPYmpl
Y3QoV2ViR0xTaGFyZWRPYmplY3QmKTsKKyAgICB2b2lkIHJlbW92ZUNvbnRleHRPYmplY3QoV2Vi
R0xDb250ZXh0T2JqZWN0Jik7CiAgICAgCiAgICAgdW5zaWduZWQgZ2V0TWF4VmVydGV4QXR0cmli
cygpIGNvbnN0IHsgcmV0dXJuIG1fbWF4VmVydGV4QXR0cmliczsgfQogCkBAIC0zMzUsNyArMzMx
LDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZShIVE1MQ2FudmFzRWxlbWVudCYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwotICAgIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWZQdHI8R3JhcGhpY3ND
b250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOworICAgIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYs
IFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwogCiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMRHJhd0J1
ZmZlcnM7CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMRnJhbWVidWZmZXI7CkBAIC0zNjAsOCArMzU2
LDggQEAgcHJvdGVjdGVkOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdCBvdmVycmlkZTsKICAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24o
KSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgYWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVk
T2JqZWN0Kik7Ci0gICAgdm9pZCBhZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCop
OworICAgIHZvaWQgYWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Jik7CisgICAgdm9p
ZCBhZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCYpOwogICAgIHZvaWQgZGV0YWNo
QW5kUmVtb3ZlQWxsT2JqZWN0cygpOwogCiAgICAgdm9pZCBkZXN0cm95R3JhcGhpY3NDb250ZXh0
M0QoKTsKQEAgLTQxNCw3ICs0MTAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gb24gaG93IGV4YWN0
bHkgdGhlIHBsYXRmb3JtIGRpc2NvdmVycyB0aGF0IHRoZSBjb250ZXh0IHdhcyBsb3N0LiBGb3Ig
YmV0dGVyCiAgICAgLy8gcG9ydGFiaWxpdHkgd2UgYWx3YXlzIGRlZmVyIHRoZSBkaXNwYXRjaCBv
ZiB0aGUgZXZlbnQuCiAgICAgVGltZXIgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lcjsK
LSAgICBib29sIG1fcmVzdG9yZUFsbG93ZWQ7CisgICAgYm9vbCBtX3Jlc3RvcmVBbGxvd2VkIHsg
ZmFsc2UgfTsKICAgICBUaW1lciBtX3Jlc3RvcmVUaW1lcjsKIAogICAgIGJvb2wgbV9uZWVkc1Vw
ZGF0ZTsKQEAgLTQzMiwxMiArNDI4LDEwIEBAIHByb3RlY3RlZDoKIAogICAgIFJlZlB0cjxXZWJH
TFZlcnRleEFycmF5T2JqZWN0QmFzZT4gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiAgICAg
UmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlPiBtX2JvdW5kVmVydGV4QXJyYXlPYmpl
Y3Q7Ci0gICAgdm9pZCBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KFBhc3NSZWZQdHI8V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2U+IGFycmF5T2JqZWN0KQorCisgICAgdm9pZCBzZXRCb3VuZFZl
cnRleEFycmF5T2JqZWN0KFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKiBhcnJheU9iamVjdCkK
ICAgICB7Ci0gICAgICAgIGlmIChhcnJheU9iamVjdCkKLSAgICAgICAgICAgIG1fYm91bmRWZXJ0
ZXhBcnJheU9iamVjdCA9IGFycmF5T2JqZWN0OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBt
X2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdDsKKyAg
ICAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0ID0gYXJyYXlPYmplY3QgPyBhcnJheU9iamVj
dCA6IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OwogICAgIH0KICAgICAKICAgICBjbGFzcyBW
ZXJ0ZXhBdHRyaWJWYWx1ZSB7CkBAIC00OTMsMTIgKzQ4NywxMiBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+W10+IG1fYnVm
ZmVyczsKICAgICAgICAgaW50IG1fY2FwYWNpdHk7CiAgICAgfTsKLSAgICBMUlVJbWFnZUJ1ZmZl
ckNhY2hlIG1fZ2VuZXJhdGVkSW1hZ2VDYWNoZTsKKyAgICBMUlVJbWFnZUJ1ZmZlckNhY2hlIG1f
Z2VuZXJhdGVkSW1hZ2VDYWNoZSB7IDAgfTsKIAogICAgIEdDM0RpbnQgbV9tYXhUZXh0dXJlU2l6
ZTsKICAgICBHQzNEaW50IG1fbWF4Q3ViZU1hcFRleHR1cmVTaXplOwogICAgIEdDM0RpbnQgbV9t
YXhSZW5kZXJidWZmZXJTaXplOwotICAgIEdDM0RpbnQgbV9tYXhWaWV3cG9ydERpbXNbMl07Cisg
ICAgR0MzRGludCBtX21heFZpZXdwb3J0RGltc1syXSB7IDAsIDAgfTsKICAgICBHQzNEaW50IG1f
bWF4VGV4dHVyZUxldmVsOwogICAgIEdDM0RpbnQgbV9tYXhDdWJlTWFwVGV4dHVyZUxldmVsOwog
CkBAIC01MTMsOCArNTA3LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV91bnBhY2tGbGlwWTsK
ICAgICBib29sIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYTsKICAgICBHQzNEZW51bSBtX3VucGFj
a0NvbG9yc3BhY2VDb252ZXJzaW9uOwotICAgIGJvb2wgbV9jb250ZXh0TG9zdDsKLSAgICBMb3N0
Q29udGV4dE1vZGUgbV9jb250ZXh0TG9zdE1vZGU7CisgICAgYm9vbCBtX2NvbnRleHRMb3N0IHsg
ZmFsc2UgfTsKKyAgICBMb3N0Q29udGV4dE1vZGUgbV9jb250ZXh0TG9zdE1vZGUgeyBTeW50aGV0
aWNMb3N0Q29udGV4dCB9OwogICAgIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgbV9hdHRyaWJ1dGVz
OwogCiAgICAgYm9vbCBtX2xheWVyQ2xlYXJlZDsKQEAgLTUzNSwxNCArNTI5LDE0IEBAIHByb3Rl
Y3RlZDoKICAgICBib29sIG1faXNEZXB0aFN0ZW5jaWxTdXBwb3J0ZWQ7CiAgICAgYm9vbCBtX2lz
Um9idXN0bmVzc0VYVFN1cHBvcnRlZDsKIAotICAgIGJvb2wgbV9zeW50aGVzaXplZEVycm9yc1Rv
Q29uc29sZTsKKyAgICBib29sIG1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUgeyB0cnVlIH07
CiAgICAgaW50IG1fbnVtR0xFcnJvcnNUb0NvbnNvbGVBbGxvd2VkOwogCiAgICAgLy8gQSBXZWJH
TFJlbmRlcmluZ0NvbnRleHQgY2FuIGJlIGNyZWF0ZWQgaW4gYSBzdGF0ZSB3aGVyZSBpdCBhcHBl
YXJzIGFzCiAgICAgLy8gYSB2YWxpZCBhbmQgYWN0aXZlIGNvbnRleHQsIGJ1dCB3aWxsIG5vdCBl
eGVjdXRlIGFueSBpbXBvcnRhbnQgb3BlcmF0aW9ucwogICAgIC8vIHVudGlsIGl0cyBsb2FkIHBv
bGljeSBpcyBjb21wbGV0ZWx5IHJlc29sdmVkLgotICAgIGJvb2wgbV9pc1BlbmRpbmdQb2xpY3lS
ZXNvbHV0aW9uOwotICAgIGJvb2wgbV9oYXNSZXF1ZXN0ZWRQb2xpY3lSZXNvbHV0aW9uOworICAg
IGJvb2wgbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uIHsgZmFsc2UgfTsKKyAgICBib29sIG1f
aGFzUmVxdWVzdGVkUG9saWN5UmVzb2x1dGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCk7CiAKICAgICAvLyBFbmFibGVkIGV4dGVuc2lvbiBvYmplY3RzLiBG
SVhNRTogTW92ZSB0aGVzZSB0byBXZWJHTDFSZW5kZXJpbmdDb250ZXh0LCBub3QgbmVlZGVkIGZv
ciBXZWJHTDIKQEAgLTU2OSwxNCArNTYzLDE0IEBAIHByb3RlY3RlZDoKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8QU5HTEVJbnN0YW5jZWRBcnJheXM+IG1fYW5nbGVJbnN0YW5jZWRBcnJheXM7CiAKICAg
ICAvLyBIZWxwZXJzIGZvciBnZXRQYXJhbWV0ZXIgYW5kIG90aGVycwotICAgIFdlYkdMR2V0SW5m
byBnZXRCb29sZWFuUGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0Qm9v
bGVhbkFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0RmxvYXRQ
YXJhbWV0ZXIoR0MzRGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRJbnRQYXJhbWV0ZXIoR0Mz
RGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihHQzNEZW51
bSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEludDY0UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBX
ZWJHTEdldEluZm8gZ2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBX
ZWJHTEdldEluZm8gZ2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgV2Vi
R0xBbnkgZ2V0Qm9vbGVhblBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgV2ViR0xBbnkgZ2V0Qm9v
bGVhbkFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBXZWJHTEFueSBnZXRGbG9hdFBhcmFt
ZXRlcihHQzNEZW51bSk7CisgICAgV2ViR0xBbnkgZ2V0SW50UGFyYW1ldGVyKEdDM0RlbnVtKTsK
KyAgICBXZWJHTEFueSBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgV2Vi
R0xBbnkgZ2V0SW50NjRQYXJhbWV0ZXIoR0MzRGVudW0pOworICAgIFdlYkdMQW55IGdldFdlYkdM
RmxvYXRBcnJheVBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgV2ViR0xBbnkgZ2V0V2ViR0xJbnRB
cnJheVBhcmFtZXRlcihHQzNEZW51bSk7CiAKICAgICAvLyBDbGVhciB0aGUgYmFja2J1ZmZlciBp
ZiBpdCB3YXMgY29tcG9zaXRlZCBzaW5jZSB0aGUgbGFzdCBvcGVyYXRpb24uCiAgICAgLy8gY2xl
YXJNYXNrIGlzIHNldCB0byB0aGUgYml0ZmllbGQgb2YgYW55IGNsZWFyIHRoYXQgd291bGQgaGFw
cGVuIGFueXdheSBhdCB0aGlzIHRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMU2hhcmVkT2JqZWN0LmNwcAppbmRleCAzNmRjMTVkM2EwZTdlNWY2YTk3MDYxZTRjM2Jk
M2MyNDFjMWI4NGU5Li45MzA1NTk3ZDEyZTRlYTZiZGRlNjdhOWJlNTUxNTM2MTQzNzdkZjk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3Bw
CkBAIC00MywyMiArNDMsMjIgQEAgV2ViR0xTaGFyZWRPYmplY3Q6OldlYkdMU2hhcmVkT2JqZWN0
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiBXZWJHTFNoYXJlZE9iamVjdDo6
fldlYkdMU2hhcmVkT2JqZWN0KCkKIHsKICAgICBpZiAobV9jb250ZXh0R3JvdXApCi0gICAgICAg
IG1fY29udGV4dEdyb3VwLT5yZW1vdmVPYmplY3QodGhpcyk7CisgICAgICAgIG1fY29udGV4dEdy
b3VwLT5yZW1vdmVPYmplY3QoKnRoaXMpOwogfQogCiB2b2lkIFdlYkdMU2hhcmVkT2JqZWN0Ojpk
ZXRhY2hDb250ZXh0R3JvdXAoKQogewogICAgIGRldGFjaCgpOwogICAgIGlmIChtX2NvbnRleHRH
cm91cCkgewotICAgICAgICBkZWxldGVPYmplY3QoMCk7Ci0gICAgICAgIG1fY29udGV4dEdyb3Vw
LT5yZW1vdmVPYmplY3QodGhpcyk7Ci0gICAgICAgIG1fY29udGV4dEdyb3VwID0gMDsKKyAgICAg
ICAgZGVsZXRlT2JqZWN0KG51bGxwdHIpOworICAgICAgICBtX2NvbnRleHRHcm91cC0+cmVtb3Zl
T2JqZWN0KCp0aGlzKTsKKyAgICAgICAgbV9jb250ZXh0R3JvdXAgPSBudWxscHRyOwogICAgIH0K
IH0KIAogR3JhcGhpY3NDb250ZXh0M0QqIFdlYkdMU2hhcmVkT2JqZWN0OjpnZXRBR3JhcGhpY3ND
b250ZXh0M0QoKSBjb25zdAogewotICAgIHJldHVybiBtX2NvbnRleHRHcm91cCA/IG1fY29udGV4
dEdyb3VwLT5nZXRBR3JhcGhpY3NDb250ZXh0M0QoKSA6IDA7CisgICAgcmV0dXJuIG1fY29udGV4
dEdyb3VwID8gJm1fY29udGV4dEdyb3VwLT5nZXRBR3JhcGhpY3NDb250ZXh0M0QoKSA6IG51bGxw
dHI7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
U2hhcmVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9i
amVjdC5oCmluZGV4IGFiZTQ4MDMzMzcyYzk1NmNjNzEzMGViN2Y3YmZmZmRjZDFhOWY1N2IuLjAx
MDhiOTQyMTFjZTVhMzFjNjk2NmY1MzQwZGQ5NTQxNGQyYTMwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaApAQCAtNDksNyArNDksNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzU2hhZGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTeW5jKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNUZXh0dXJlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNUcmFuc2Zvcm1GZWVkYmFjaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzVmVydGV4QXJyYXlPYmplY3QoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCiAgICAgYm9vbCB2YWxpZGF0ZShjb25zdCBXZWJHTENvbnRleHRHcm91cCogY29u
dGV4dEdyb3VwLCBjb25zdCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJikgY29uc3Qgb3ZlcnJp
ZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3Jt
RmVlZGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVl
ZGJhY2suaAppbmRleCA2OWNmOGU3YmI1NDE4ZWFhOWU0NTY5MjExNDA4ZjQ3NmIyNmE2Nzg2Li45
Y2NmMDNiOGRlYjZhYjZlOWEwZGNjNmJlNzU1M2IxMTFkMzQ1NDA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCkBAIC0zOSw5
ICszOSw2IEBAIHByb3RlY3RlZDoKICAgICBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmKTsKIAogICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGlj
c0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAg
IGJvb2wgaXNUcmFuc2Zvcm1GZWVkYmFjaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKaW5kZXggN2ZhNjljOWE0
OTRkYmVlYTlkYmViZjg5ZTg1ZjQzZjljZmQwMjg0OS4uMTU4ZmZkZjg2YmJiMTgwNjhiOGU0ZjE0
MjZhMzVlNDk2MzEwNGMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKQEAgLTMzLDIzICszMywyMyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgCi1SZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4gV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwg
VkFPVHlwZSB0eXBlKQorUmVmPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IFdlYkdMVmVydGV4QXJy
YXlPYmplY3Q6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIFR5cGUgdHlw
ZSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTFZlcnRleEFycmF5T2JqZWN0KGN0
eCwgdHlwZSkpOwogfQogCiBXZWJHTFZlcnRleEFycmF5T2JqZWN0Ojp+V2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdCgpCiB7Ci0gICAgZGVsZXRlT2JqZWN0KDApOworICAgIGRlbGV0ZU9iamVjdChudWxs
cHRyKTsKIH0KIAotV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIFZBT1R5cGUgdHlwZSkKK1dlYkdMVmVy
dGV4QXJyYXlPYmplY3Q6OldlYkdMVmVydGV4QXJyYXlPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYgY3R4LCBUeXBlIHR5cGUpCiAgICAgOiBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFz
ZShjdHgsIHR5cGUpCiB7CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVE
ZWZhdWx0OgorICAgIGNhc2UgVHlwZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVm
YXVsdDoKKyAgICBjYXNlIFR5cGU6OlVzZXI6CiAgICAgICAgIHNldE9iamVjdChjb250ZXh0KCkt
PmdyYXBoaWNzQ29udGV4dDNEKCktPmNyZWF0ZVZlcnRleEFycmF5KCkpOwogICAgICAgICBicmVh
azsKICAgICB9CkBAIC01OCw5ICs1OCw5IEBAIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OldlYkdM
VmVydGV4QXJyYXlPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWCiB2b2lk
IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0
M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamVjdCBvYmplY3QpCiB7CiAgICAgc3dpdGNoICht
X3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVEZWZhdWx0OgorICAgIGNhc2UgVHlwZTo6RGVmYXVs
dDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKKyAgICBjYXNlIFR5cGU6OlVzZXI6CiAg
ICAgICAgIGNvbnRleHQzZC0+ZGVsZXRlVmVydGV4QXJyYXkob2JqZWN0KTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdC5oCmluZGV4IDViNDljNzA4YTQ2MjU0ZGU1OTBlMWMwNmRjYzk4NjJhNjY0
YzMxNDIuLjliMzFmMDE2MzE0OGFhNjBkYjM2OGVlNTcwNTJjZDQ1ZDJhN2U5NzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmgK
QEAgLTI3LDggKzI3LDYgQEAKIAogI2lmIEVOQUJMRShXRUJHTDIpCiAKLSNpbmNsdWRlICJXZWJH
TEJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkdMQ29udGV4dE9iamVjdC5oIgogI2luY2x1ZGUgIldl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM3
LDEyICszNSwxMSBAQCBjbGFzcyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OwogCiBjbGFzcyBXZWJH
TFZlcnRleEFycmF5T2JqZWN0IGZpbmFsIDogcHVibGljIFdlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IGNy
ZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVkFPVHlwZSk7CisgICAgc3RhdGljIFJl
ZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSYsIFR5cGUpOwogICAgIHZpcnR1YWwgfldlYkdMVmVydGV4QXJyYXlPYmplY3QoKTsKIHByaXZh
dGU6Ci0gICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
JiwgVkFPVHlwZSk7Ci0gICAgYm9vbCBpc1RyYW5zZm9ybUZlZWRiYWNrKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQotICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCos
IFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3Qo
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFR5cGUpOworICAgIHZvaWQgZGVsZXRlT2JqZWN0
SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIGZpbmFsOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCmluZGV4IDY5NjQ5YzYyZjZl
MWRiZWYyZjllZGE2MTdjNDI0MjRkZjczZjE3NWYuLmUxYWZiYjJhZGJjYjY3MTRhYmQ0MDYxM2Iz
OThiZTdjNGNiNGJjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKQEAgLTI0LDI0ICsyNCwyMiBAQAog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0QmFzZS5oIgogCiAjaWYgRU5BQkxFKFdFQkdMKQotI2luY2x1ZGUgIldlYkdMVmVydGV4QXJy
YXlPYmplY3RCYXNlLmgiCiAKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6Oldl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwg
VkFPVHlwZSB0eXBlKQotICAgIDogV2ViR0xDb250ZXh0T2JqZWN0KGN0eCkKK1dlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiBjb250ZXh0LCBUeXBlIHR5cGUpCisgICAgOiBXZWJHTENvbnRleHRPYmpl
Y3QoY29udGV4dCkKICAgICAsIG1fdHlwZSh0eXBlKQotICAgICwgbV9oYXNFdmVyQmVlbkJvdW5k
KGZhbHNlKQotICAgICwgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlcigwKQogewotICAgIG1fdmVy
dGV4QXR0cmliU3RhdGUucmVzaXplKGN0eC5nZXRNYXhWZXJ0ZXhBdHRyaWJzKCkpOworICAgIG1f
dmVydGV4QXR0cmliU3RhdGUucmVzaXplKGNvbnRleHQuZ2V0TWF4VmVydGV4QXR0cmlicygpKTsK
IH0KIAotdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0RWxlbWVudEFycmF5QnVm
ZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKK3ZvaWQgV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdEJhc2U6OnNldEVsZW1lbnRBcnJheUJ1ZmZlcihXZWJHTEJ1ZmZlciogYnVmZmVyKQog
ewogICAgIGlmIChidWZmZXIpCiAgICAgICAgIGJ1ZmZlci0+b25BdHRhY2hlZCgpOwpAQCAtNTEs
MTggKzQ5LDE3IEBAIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldEVsZW1lbnRB
cnJheUJ1ZmZlcihQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBiCiAgICAgCiB9CiAKLXZvaWQgV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1aW50IGlu
ZGV4LCBHQzNEc2l6ZWkgYnl0ZXNQZXJFbGVtZW50LCBHQzNEaW50IHNpemUsIEdDM0RlbnVtIHR5
cGUsIEdDM0Rib29sZWFuIG5vcm1hbGl6ZWQsIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIg
b2Zmc2V0LCBQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBidWZmZXIpCit2b2lkIFdlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShHQzNEdWludCBpbmRleCwgR0Mz
RHNpemVpIGJ5dGVzUGVyRWxlbWVudCwgR0MzRGludCBzaXplLCBHQzNEZW51bSB0eXBlLCBHQzNE
Ym9vbGVhbiBub3JtYWxpemVkLCBHQzNEc2l6ZWkgc3RyaWRlLCBHQzNEaW50cHRyIG9mZnNldCwg
V2ViR0xCdWZmZXImIGJ1ZmZlcikKIHsKICAgICBHQzNEc2l6ZWkgdmFsaWRhdGVkU3RyaWRlID0g
c3RyaWRlID8gc3RyaWRlIDogYnl0ZXNQZXJFbGVtZW50OwogICAgIAotICAgIFZlcnRleEF0dHJp
YlN0YXRlJiBzdGF0ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOworICAgIGF1dG8mIHN0
YXRlID0gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF07CiAgICAgCi0gICAgaWYgKGJ1ZmZlcikK
LSAgICAgICAgYnVmZmVyLT5vbkF0dGFjaGVkKCk7CisgICAgYnVmZmVyLm9uQXR0YWNoZWQoKTsK
ICAgICBpZiAoc3RhdGUuYnVmZmVyQmluZGluZykKICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGlu
Zy0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOwogICAgIAotICAg
IHN0YXRlLmJ1ZmZlckJpbmRpbmcgPSBidWZmZXI7CisgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9
ICZidWZmZXI7CiAgICAgc3RhdGUuYnl0ZXNQZXJFbGVtZW50ID0gYnl0ZXNQZXJFbGVtZW50Owog
ICAgIHN0YXRlLnNpemUgPSBzaXplOwogICAgIHN0YXRlLnR5cGUgPSB0eXBlOwpAQCAtNzIsMTcg
KzY5LDE3IEBAIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJp
YlN0YXRlKEdDM0R1aW50IGluZGV4LCBHQzNEc2l6ZWkKICAgICBzdGF0ZS5vZmZzZXQgPSBvZmZz
ZXQ7CiB9CiAKLXZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZlcihQ
YXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBidWZmZXIpCit2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3RCYXNlOjp1bmJpbmRCdWZmZXIoV2ViR0xCdWZmZXImIGJ1ZmZlcikKIHsKLSAgICBpZiAobV9i
b3VuZEVsZW1lbnRBcnJheUJ1ZmZlciA9PSBidWZmZXIpIHsKKyAgICBpZiAobV9ib3VuZEVsZW1l
bnRBcnJheUJ1ZmZlciA9PSAmYnVmZmVyKSB7CiAgICAgICAgIG1fYm91bmRFbGVtZW50QXJyYXlC
dWZmZXItPm9uRGV0YWNoZWQoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpKTsKICAgICAg
ICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCk7ICsraSkg
ewotICAgICAgICBWZXJ0ZXhBdHRyaWJTdGF0ZSYgc3RhdGUgPSBtX3ZlcnRleEF0dHJpYlN0YXRl
W2ldOwotICAgICAgICBpZiAoc3RhdGUuYnVmZmVyQmluZGluZyA9PSBidWZmZXIpIHsKLSAgICAg
ICAgICAgIGJ1ZmZlci0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkp
OworICAgICAgICBhdXRvJiBzdGF0ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaV07CisgICAgICAg
IGlmIChzdGF0ZS5idWZmZXJCaW5kaW5nID09ICZidWZmZXIpIHsKKyAgICAgICAgICAgIGJ1ZmZl
ci5vbkRldGFjaGVkKGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKSk7CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIGlmICghaSAmJiAhY29udGV4dCgpLT5pc0dMRVMyQ29tcGxpYW50KCkp
IHsKICAgICAgICAgICAgICAgICBzdGF0ZS5idWZmZXJCaW5kaW5nID0gY29udGV4dCgpLT5tX3Zl
cnRleEF0dHJpYjBCdWZmZXI7CkBAIC0xMDIsOCArOTksNyBAQCB2b2lkIFdlYkdMVmVydGV4QXJy
YXlPYmplY3RCYXNlOjp1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVmZmVy
KQogCiB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJEaXZp
c29yKEdDM0R1aW50IGluZGV4LCBHQzNEdWludCBkaXZpc29yKQogewotICAgIFZlcnRleEF0dHJp
YlN0YXRlJiBzdGF0ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOwotICAgIHN0YXRlLmRp
dmlzb3IgPSBkaXZpc29yOworICAgIG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdLmRpdmlzb3Ig
PSBkaXZpc29yOwogfQogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgKaW5kZXggMjkwYWI4ZDNkNzBmMzM3
YTg2MzVhMjMxNjI3NmQ5MWRjNDNkNGFhOS4uMDBiZTVmYmVmYjFjY2VjM2Y0YTE3MWJiNDQzYmU2
ZTI2ZGFmNjllOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oCkBAIC0zMiw2NSArMzIsNDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSA6IHB1YmxpYyBX
ZWJHTENvbnRleHRPYmplY3QgewogcHVibGljOgotICAgIGVudW0gVkFPVHlwZSB7Ci0gICAgICAg
IFZBT1R5cGVEZWZhdWx0LAotICAgICAgICBWQU9UeXBlVXNlciwKLSAgICB9OwotICAgIAotICAg
IHZpcnR1YWwgfldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKCkgeyB9CisgICAgZW51bSBjbGFz
cyBUeXBlIHsgRGVmYXVsdCwgVXNlciB9OwogCiAgICAgLy8gQ2FjaGVkIHZhbHVlcyBmb3IgdmVy
dGV4IGF0dHJpYiByYW5nZSBjaGVja3MKICAgICBzdHJ1Y3QgVmVydGV4QXR0cmliU3RhdGUgewot
ICAgICAgICBWZXJ0ZXhBdHRyaWJTdGF0ZSgpCi0gICAgICAgICAgICA6IGVuYWJsZWQoZmFsc2Up
Ci0gICAgICAgICAgICAsIGJ5dGVzUGVyRWxlbWVudCgwKQotICAgICAgICAgICAgLCBzaXplKDQp
Ci0gICAgICAgICAgICAsIHR5cGUoR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUKQotICAgICAgICAg
ICAgLCBub3JtYWxpemVkKGZhbHNlKQotICAgICAgICAgICAgLCBzdHJpZGUoMTYpCi0gICAgICAg
ICAgICAsIG9yaWdpbmFsU3RyaWRlKDApCi0gICAgICAgICAgICAsIG9mZnNldCgwKQotICAgICAg
ICAgICAgLCBkaXZpc29yKDApCi0gICAgICAgIHsKLSAgICAgICAgfQotICAgICAgICAKICAgICAg
ICAgYm9vbCBpc0JvdW5kKCkgY29uc3QgeyByZXR1cm4gYnVmZmVyQmluZGluZyAmJiBidWZmZXJC
aW5kaW5nLT5vYmplY3QoKTsgfQogICAgICAgICBib29sIHZhbGlkYXRlQmluZGluZygpIGNvbnN0
IHsgcmV0dXJuICFlbmFibGVkIHx8IGlzQm91bmQoKTsgfQogICAgICAgICAKLSAgICAgICAgYm9v
bCBlbmFibGVkOworICAgICAgICBib29sIGVuYWJsZWQgeyBmYWxzZSB9OwogICAgICAgICBSZWZQ
dHI8V2ViR0xCdWZmZXI+IGJ1ZmZlckJpbmRpbmc7Ci0gICAgICAgIEdDM0RzaXplaSBieXRlc1Bl
ckVsZW1lbnQ7Ci0gICAgICAgIEdDM0RpbnQgc2l6ZTsKLSAgICAgICAgR0MzRGVudW0gdHlwZTsK
LSAgICAgICAgYm9vbCBub3JtYWxpemVkOwotICAgICAgICBHQzNEc2l6ZWkgc3RyaWRlOwotICAg
ICAgICBHQzNEc2l6ZWkgb3JpZ2luYWxTdHJpZGU7Ci0gICAgICAgIEdDM0RpbnRwdHIgb2Zmc2V0
OwotICAgICAgICBHQzNEdWludCBkaXZpc29yOworICAgICAgICBHQzNEc2l6ZWkgYnl0ZXNQZXJF
bGVtZW50IHsgMCB9OworICAgICAgICBHQzNEaW50IHNpemUgeyA0IH07CisgICAgICAgIEdDM0Rl
bnVtIHR5cGUgeyBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQgfTsKKyAgICAgICAgYm9vbCBub3Jt
YWxpemVkIHsgZmFsc2UgfTsKKyAgICAgICAgR0MzRHNpemVpIHN0cmlkZSB7IDE2IH07CisgICAg
ICAgIEdDM0RzaXplaSBvcmlnaW5hbFN0cmlkZSB7IDAgfTsKKyAgICAgICAgR0MzRGludHB0ciBv
ZmZzZXQgeyAwIH07CisgICAgICAgIEdDM0R1aW50IGRpdmlzb3IgeyAwIH07CiAgICAgfTsKLSAg
ICAKLSAgICBib29sIGlzRGVmYXVsdE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBW
QU9UeXBlRGVmYXVsdDsgfQotICAgIAorCisgICAgYm9vbCBpc0RlZmF1bHRPYmplY3QoKSBjb25z
dCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6RGVmYXVsdDsgfQorCiAgICAgYm9vbCBoYXNFdmVy
QmVlbkJvdW5kKCkgY29uc3QgeyByZXR1cm4gb2JqZWN0KCkgJiYgbV9oYXNFdmVyQmVlbkJvdW5k
OyB9CiAgICAgdm9pZCBzZXRIYXNFdmVyQmVlbkJvdW5kKCkgeyBtX2hhc0V2ZXJCZWVuQm91bmQg
PSB0cnVlOyB9Ci0gICAgCi0gICAgUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gZ2V0RWxlbWVudEFy
cmF5QnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlcjsgfQot
ICAgIHZvaWQgc2V0RWxlbWVudEFycmF5QnVmZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+KTsK
LSAgICAKKworICAgIFdlYkdMQnVmZmVyKiBnZXRFbGVtZW50QXJyYXlCdWZmZXIoKSBjb25zdCB7
IHJldHVybiBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyLmdldCgpOyB9CisgICAgdm9pZCBzZXRF
bGVtZW50QXJyYXlCdWZmZXIoV2ViR0xCdWZmZXIqKTsKKwogICAgIFZlcnRleEF0dHJpYlN0YXRl
JiBnZXRWZXJ0ZXhBdHRyaWJTdGF0ZShpbnQgaW5kZXgpIHsgcmV0dXJuIG1fdmVydGV4QXR0cmli
U3RhdGVbaW5kZXhdOyB9Ci0gICAgdm9pZCBzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShHQzNEdWludCwg
R0MzRHNpemVpLCBHQzNEaW50LCBHQzNEZW51bSwgR0MzRGJvb2xlYW4sIEdDM0RzaXplaSwgR0Mz
RGludHB0ciwgUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4pOwotICAgIHZvaWQgdW5iaW5kQnVmZmVy
KFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+KTsKLSAgICAKKyAgICB2b2lkIHNldFZlcnRleEF0dHJp
YlN0YXRlKEdDM0R1aW50LCBHQzNEc2l6ZWksIEdDM0RpbnQsIEdDM0RlbnVtLCBHQzNEYm9vbGVh
biwgR0MzRHNpemVpLCBHQzNEaW50cHRyLCBXZWJHTEJ1ZmZlciYpOworICAgIHZvaWQgdW5iaW5k
QnVmZmVyKFdlYkdMQnVmZmVyJik7CisKICAgICB2b2lkIHNldFZlcnRleEF0dHJpYkRpdmlzb3Io
R0MzRHVpbnQgaW5kZXgsIEdDM0R1aW50IGRpdmlzb3IpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFZBT1R5
cGUpOworICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UmLCBUeXBlKTsKICAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0
M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZSA9IDA7Ci0gICAgCi0gICAgVkFPVHlwZSBt
X3R5cGU7Ci0gICAgYm9vbCBtX2hhc0V2ZXJCZWVuQm91bmQ7CisKKyAgICBUeXBlIG1fdHlwZTsK
KyAgICBib29sIG1faGFzRXZlckJlZW5Cb3VuZCB7IGZhbHNlIH07CiAgICAgUmVmUHRyPFdlYkdM
QnVmZmVyPiBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyOwogICAgIFZlY3RvcjxWZXJ0ZXhBdHRy
aWJTdGF0ZT4gbV92ZXJ0ZXhBdHRyaWJTdGF0ZTsKIH07Ci0gICAgCisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKaW5kZXggNWYzYjY1NTdhNzBiNWNiODQyYzBjMmVhNzc4
MTc4YWZhNjRjMDFmZi4uYWY1NTY1Y2Q5NDQ0MjRiNTNiODM1N2RiMmMwMTkwYmUxY2U1YjQ2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUy5jcHAKQEAgLTM0LDM3ICszNCwzNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVJlZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWQU9UeXBlIHR5
cGUpCitSZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUzo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIFR5cGUgdHlw
ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
KGN0eCwgdHlwZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdMVmVydGV4QXJyYXlP
YmplY3RPRVMoY29udGV4dCwgdHlwZSkpOwogfQogCi1XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0
eCwgVkFPVHlwZSB0eXBlKQotICAgIDogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoY3R4LCB0
eXBlKQorV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9F
UyhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBUeXBlIHR5cGUpCisgICAgOiBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShjb250ZXh0LCB0eXBlKQogewotICAgIEV4dGVuc2lv
bnMzRCYgZXh0ZW5zaW9ucyA9IGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+Z2V0RXh0
ZW5zaW9ucygpOwotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBWQU9UeXBlRGVmYXVs
dDoKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFR5cGU6OkRlZmF1bHQ6CiAgICAgICAg
IGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHNldE9iamVjdChleHRlbnNpb25zLmNyZWF0
ZVZlcnRleEFycmF5T0VTKCkpOworICAgIGNhc2UgVHlwZTo6VXNlcjoKKyAgICAgICAgc2V0T2Jq
ZWN0KHRoaXMtPmNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9ucygp
LmNyZWF0ZVZlcnRleEFycmF5T0VTKCkpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIFdl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVM6On5XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKCkKIHsK
LSAgICBkZWxldGVPYmplY3QoMCk7CisgICAgZGVsZXRlT2JqZWN0KG51bGxwdHIpOwogfQogCiB2
b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3ND
b250ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamVjdCBvYmplY3QpCiB7Ci0gICAgRXh0
ZW5zaW9uczNEJiBleHRlbnNpb25zID0gY29udGV4dDNkLT5nZXRFeHRlbnNpb25zKCk7CiAgICAg
c3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVEZWZhdWx0OgorICAgIGNhc2UgVHlw
ZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgZXh0ZW5z
aW9ucy5kZWxldGVWZXJ0ZXhBcnJheU9FUyhvYmplY3QpOworICAgIGNhc2UgVHlwZTo6VXNlcjoK
KyAgICAgICAgY29udGV4dDNkLT5nZXRFeHRlbnNpb25zKCkuZGVsZXRlVmVydGV4QXJyYXlPRVMo
b2JqZWN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgKaW5kZXggZDA4ZDIy
M2UzNTcwNjY5NGU5MWNhZTZhY2RjOGM0YmNhOWYxNjdlOS4uZjlhMmE1OGVjMjc0N2MyZDUwNjMw
YjViNmY2Y2ZmMDVhNjM2MGM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaApAQCAtMjUsMTkgKzI1LDE3IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKLSNpbmNsdWRlICJXZWJH
TENvbnRleHRPYmplY3QuaCIKICNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdMVmVydGV4QXJyYXlPYmplY3RP
RVMgZmluYWwgOiBwdWJsaWMgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gY3JlYXRlKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmLCBWQU9UeXBlKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVM+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVHlwZSk7
CiAgICAgdmlydHVhbCB+V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygpOwogcHJpdmF0ZToKLSAg
ICBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBW
QU9UeXBlKTsKLSAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQ
bGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBlKTsKKyAgICB2b2lkIGRlbGV0ZU9iamVj
dEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBmaW5hbDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Zm9ybXMvRmlsZUljb25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxl
SWNvbkxvYWRlci5jcHAKaW5kZXggOWJjZDQ3Zjc3OWUwNTFmYWE0MDU5MGM3OTNmYjIzZmM1MWIy
ZGUxZS4uNmM3M2UzMWFhZWY5ZTg2MDQ0OWE5OThjOGVlNzllNTU1Mzg0MDQwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5jcHAKQEAgLTM3LDEzICszNywx
MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB2b2lkIEZpbGVJY29uTG9hZGVyOjppbnZhbGlkYXRl
KCkKIHsKICAgICBBU1NFUlQobV9jbGllbnQpOwotICAgIG1fY2xpZW50ID0gMDsKKyAgICBtX2Ns
aWVudCA9IG51bGxwdHI7CiB9CiAKLXZvaWQgRmlsZUljb25Mb2FkZXI6Om5vdGlmeUZpbmlzaGVk
KFBhc3NSZWZQdHI8SWNvbj4gaWNvbikKK3ZvaWQgRmlsZUljb25Mb2FkZXI6Omljb25Mb2FkZWQo
UmVmUHRyPEljb24+JiYgaWNvbikKIHsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xp
ZW50LT51cGRhdGVSZW5kZXJpbmcoaWNvbik7CisgICAgICAgIG1fY2xpZW50LT5pY29uTG9hZGVk
KFdURk1vdmUoaWNvbikpOwogfQogCiBGaWxlSWNvbkxvYWRlcjo6RmlsZUljb25Mb2FkZXIoRmls
ZUljb25Mb2FkZXJDbGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmls
ZUljb25Mb2FkZXIuaAppbmRleCAzNTMxM2RlM2EyODUzNjBkOTg2N2I4MmE1YWFjYmMwN2QwNWU3
YmQ1Li4zMzY1MjM4YWNlZjdkOWNiNzk2M2VjZDliMmFlOTdkZjlhYjRiZTBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5oCkBAIC0zNCwxMyArMzQsMTIgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBGaWxlSWNvbkxvYWRlcjsKIGNsYXNzIElj
b247CiAKIGNsYXNzIEZpbGVJY29uTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5GaWxlSWNvbkxvYWRlckNsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZW5k
ZXJpbmcoUGFzc1JlZlB0cjxJY29uPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBpY29uTG9hZGVk
KFJlZlB0cjxJY29uPiYmKSA9IDA7CiB9OwogCiBjbGFzcyBGaWxlSWNvbkxvYWRlciB7CkBAIC00
OCw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBGaWxlSWNvbkxvYWRlcihGaWxlSWNv
bkxvYWRlckNsaWVudCYpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBub3RpZnlGaW5pc2hlZChQYXNzUmVmUHRyPEljb24+KTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGljb25Mb2FkZWQoUmVmUHRyPEljb24+JiYpOwogCiBwcml2YXRlOgogICAg
IEZpbGVJY29uTG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRleCA0NjdhMTM0ZDM2YmE1
M2E3MmJjMmQ3MGEyZWI5NzY4MWViOGY5M2ZiLi5mYjBlMTU1YjkwOTJhNzcxNWVmNjQyMjgzZGE2
MjdlNTg1MGU5NjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
Q29uc3RydWN0aW9uU2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC0xNzQsNyArMTc0LDcgQEAgc3RhdGljIGlubGluZSB2
b2lkIGV4ZWN1dGVUYXNrKEhUTUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYgdGFzaykKIAogdm9pZCBI
VE1MQ29uc3RydWN0aW9uU2l0ZTo6YXR0YWNoTGF0ZXIoQ29udGFpbmVyTm9kZSYgcGFyZW50LCBS
ZWY8Tm9kZT4mJiBjaGlsZCwgYm9vbCBzZWxmQ2xvc2luZykKIHsKLSAgICBBU1NFUlQoc2NyaXB0
aW5nQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpIHx8ICFpczxFbGVtZW50
PihjaGlsZC5nZXQoKSkgfHwgIXRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZG93bmNhc3Q8RWxl
bWVudD4oY2hpbGQucHRyKCkpKSk7CisgICAgQVNTRVJUKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93
ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSB8fCAhaXM8RWxlbWVudD4oY2hpbGQuZ2V0KCkpIHx8
ICFpc1NjcmlwdEVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4oY2hpbGQuZ2V0KCkpKSk7CiAgICAg
QVNTRVJUKHBsdWdpbkNvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSB8fCAh
Y2hpbGQtPmlzUGx1Z2luRWxlbWVudCgpKTsKIAogICAgIGlmIChzaG91bGRGb3N0ZXJQYXJlbnQo
KSkgewpAQCAtNTQxLDcgKzU0MSw3IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2Vy
dEZvcmVpZ25FbGVtZW50KEF0b21pY0hUTUxUb2tlbiYmIHRva2VuLCBjb25zdCBBCiAgICAgbm90
SW1wbGVtZW50ZWQoKTsgLy8gcGFyc2VFcnJvciB3aGVuIHhtbG5zIG9yIHhtbG5zOnhsaW5rIGFy
ZSB3cm9uZy4KIAogICAgIGF1dG8gZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQodG9rZW4sIG5hbWVz
cGFjZVVSSSk7Ci0gICAgaWYgKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250
ZW50UG9saWN5KSB8fCAhdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShlbGVtZW50LnB0cigpKSkK
KyAgICBpZiAoc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kp
IHx8ICFpc1NjcmlwdEVsZW1lbnQoZWxlbWVudC5nZXQoKSkpCiAgICAgICAgIGF0dGFjaExhdGVy
KGN1cnJlbnROb2RlKCksIGVsZW1lbnQuY29weVJlZigpLCB0b2tlbi5zZWxmQ2xvc2luZygpKTsK
ICAgICBpZiAoIXRva2VuLnNlbGZDbG9zaW5nKCkpCiAgICAgICAgIG1fb3BlbkVsZW1lbnRzLnB1
c2goSFRNTFN0YWNrSXRlbTo6Y3JlYXRlKFdURk1vdmUoZWxlbWVudCksIFdURk1vdmUodG9rZW4p
LCBuYW1lc3BhY2VVUkkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
RG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IGFjZWEwYWFhZDJjZGY0ODE3YTY1ZTdhZjlkN2M5ZmQz
NTdkZmMzMzcuLjdlMzAyMzhkMzVkN2ZkNmE1ZmQ2N2Q3ZGQwMDEyMGIzMDAzNzY2MjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApA
QCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSFRN
TFVua25vd25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgi
CisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTIwNSw3ICsyMDYsNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBh
dXNlZFRyZWVCdWlsZGVyKCkKICAgICAgICAgQVNTRVJUKCFtX3RyZWVCdWlsZGVyLT5oYXNQYXJz
ZXJCbG9ja2luZ1NjcmlwdFdvcmsoKSk7CiAgICAgICAgIC8vIFdlIHdpbGwgbm90IGhhdmUgYSBz
Y3JpcHRSdW5uZXIgd2hlbiBwYXJzaW5nIGEgRG9jdW1lbnRGcmFnbWVudC4KICAgICAgICAgaWYg
KG1fc2NyaXB0UnVubmVyKQotICAgICAgICAgICAgbV9zY3JpcHRSdW5uZXItPmV4ZWN1dGUoV1RG
TW92ZShzY3JpcHRFbGVtZW50KSwgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgICAgICAgICBt
X3NjcmlwdFJ1bm5lci0+ZXhlY3V0ZShzY3JpcHRFbGVtZW50LnJlbGVhc2VOb25OdWxsKCksIHNj
cmlwdFN0YXJ0UG9zaXRpb24pOwogICAgIH0KIH0KIApAQCAtNTAwLDcgKzUwMSw3IEBAIHZvaWQg
SFRNTERvY3VtZW50UGFyc2VyOjp3YXRjaEZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1Nj
cmlwdCkKICAgICAvLyBzZXRDbGllbnQgd291bGQgY2FsbCBub3RpZnlGaW5pc2hlZCBpZiB0aGUg
bG9hZCB3ZXJlIGNvbXBsZXRlLgogICAgIC8vIENhbGxlcnMgZG8gbm90IGV4cGVjdCB0byBiZSBy
ZS1lbnRlcmVkIGZyb20gdGhpcyBjYWxsLCBzbyB0aGV5IHNob3VsZAogICAgIC8vIG5vdCBhbiBh
bHJlYWR5LWxvYWRlZCBQZW5kaW5nU2NyaXB0LgotICAgIHBlbmRpbmdTY3JpcHQuc2V0Q2xpZW50
KHRoaXMpOworICAgIHBlbmRpbmdTY3JpcHQuc2V0Q2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBI
VE1MRG9jdW1lbnRQYXJzZXI6OnN0b3BXYXRjaGluZ0ZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVu
ZGluZ1NjcmlwdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxT
Y3JpcHRSdW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1
bm5lci5jcHAKaW5kZXggYzI1NmI0Mjk1NmNlNDgxMWE5NGYwY2IzNGI4ZWQ3MjU3MjVlOGY1NC4u
MWM4YzE2YzM3ZTU4YjY2MTIxMTljMDU5NTA5MzY4NWMzZWNlNDcwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKQEAgLTk5LDI5ICs5OSwy
OCBAQCBib29sIEhUTUxTY3JpcHRSdW5uZXI6OmlzUGVuZGluZ1NjcmlwdFJlYWR5KGNvbnN0IFBl
bmRpbmdTY3JpcHQmIHNjcmlwdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBIVE1MU2Ny
aXB0UnVubmVyOjpleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0KCkKK2lubGluZSB2b2lkIEhU
TUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQYXJzaW5nQmxvY2tpbmdTY3JpcHQoKQogewotICAgIEFT
U0VSVChtX2RvY3VtZW50KTsKLSAgICBBU1NFUlQoIWlzRXhlY3V0aW5nU2NyaXB0KCkpOwotICAg
IEFTU0VSVChtX2RvY3VtZW50LT5oYXZlU3R5bGVzaGVldHNMb2FkZWQoKSk7CisgICAgQVNTRVJU
KG1fcGFyc2VyQmxvY2tpbmdTY3JpcHQpOwogICAgIEFTU0VSVChpc1BlbmRpbmdTY3JpcHRSZWFk
eSgqbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCkpOworICAgIEFTU0VSVCghaXNFeGVjdXRpbmdTY3Jp
cHQoKSk7CiAKICAgICBJbnNlcnRpb25Qb2ludFJlY29yZCBpbnNlcnRpb25Qb2ludFJlY29yZCht
X2hvc3QuaW5wdXRTdHJlYW0oKSk7Ci0gICAgZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRj
aEV2ZW50KFdURk1vdmUobV9wYXJzZXJCbG9ja2luZ1NjcmlwdCkpOworICAgIGV4ZWN1dGVQZW5k
aW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChtX3BhcnNlckJsb2NraW5nU2NyaXB0LnJlbGVhc2VO
b25OdWxsKCkuZ2V0KCkpOwogfQogCi12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQZW5k
aW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChSZWZQdHI8UGVuZGluZ1NjcmlwdD4gcGVuZGluZ1Nj
cmlwdCkKK3ZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNw
YXRjaEV2ZW50KFBlbmRpbmdTY3JpcHQmIHBlbmRpbmdTY3JpcHQpCiB7CiAgICAgLy8gU3RvcCB3
YXRjaGluZyBsb2FkcyBiZWZvcmUgZXhlY3V0ZVNjcmlwdCB0byBwcmV2ZW50IHJlY3Vyc2lvbiBp
ZiB0aGUgc2NyaXB0IHJlbG9hZHMgaXRzZWxmLgotICAgIGlmIChwZW5kaW5nU2NyaXB0LT53YXRj
aGluZ0ZvckxvYWQoKSkKLSAgICAgICAgc3RvcFdhdGNoaW5nRm9yTG9hZCgqcGVuZGluZ1Njcmlw
dCk7CisgICAgaWYgKHBlbmRpbmdTY3JpcHQud2F0Y2hpbmdGb3JMb2FkKCkpCisgICAgICAgIHN0
b3BXYXRjaGluZ0ZvckxvYWQocGVuZGluZ1NjcmlwdCk7CiAKICAgICBpZiAoIWlzRXhlY3V0aW5n
U2NyaXB0KCkpCiAgICAgICAgIE1pY3JvdGFza1F1ZXVlOjptYWluVGhyZWFkUXVldWUoKS5wZXJm
b3JtTWljcm90YXNrQ2hlY2twb2ludCgpOwogCi0gICAgaWYgKGF1dG8qIHNjcmlwdEVsZW1lbnQg
PSB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5nU2NyaXB0LT5lbGVtZW50KCkpKSB7
CisgICAgewogICAgICAgICBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlciBuZXN0aW5nTGV2ZWxJbmNy
ZW1lbnRlcihtX3NjcmlwdE5lc3RpbmdMZXZlbCk7Ci0gICAgICAgIHNjcmlwdEVsZW1lbnQtPmV4
ZWN1dGVQZW5kaW5nU2NyaXB0KCpwZW5kaW5nU2NyaXB0KTsKKyAgICAgICAgcGVuZGluZ1Njcmlw
dC5lbGVtZW50KCkuZXhlY3V0ZVBlbmRpbmdTY3JpcHQocGVuZGluZ1NjcmlwdCk7CiAgICAgfQog
ICAgIEFTU0VSVCghaXNFeGVjdXRpbmdTY3JpcHQoKSk7CiB9CkBAIC0xNDAsMTUgKzEzOSwxNCBA
QCB2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnN0b3BXYXRjaGluZ0ZvckxvYWQoUGVuZGluZ1Njcmlw
dCYgcGVuZGluZ1NjcmlwdCkKIAogLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgbWF0Y2ggMTAuMi41
LjExICJBbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICdzY3JpcHQnIgogLy8gU2NyaXB0IGhh
bmRsaW5nIGxpdmVzIG91dHNpZGUgdGhlIHRyZWUgYnVpbGRlciB0byBrZWVwIHRoZSBlYWNoIGNs
YXNzIHNpbXBsZS4KLXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZShQYXNzUmVmUHRyPEVs
ZW1lbnQ+IHNjcmlwdEVsZW1lbnQsIGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3Np
dGlvbikKK3ZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZShSZWY8U2NyaXB0RWxlbWVudD4m
JiBlbGVtZW50LCBjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiB7Ci0g
ICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOwogICAgIC8vIEZJWE1FOiBJZiBzY3JpcHRpbmcgaXMg
ZGlzYWJsZWQsIGFsd2F5cyBqdXN0IHJldHVybi4KIAogICAgIGJvb2wgaGFkUHJlbG9hZFNjYW5u
ZXIgPSBtX2hvc3QuaGFzUHJlbG9hZFNjYW5uZXIoKTsKIAogICAgIC8vIFRyeSB0byBleGVjdXRl
IHRoZSBzY3JpcHQgZ2l2ZW4gdG8gdXMuCi0gICAgcnVuU2NyaXB0KHNjcmlwdEVsZW1lbnQuZ2V0
KCksIHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgIHJ1blNjcmlwdChlbGVtZW50LmdldCgpLCBz
Y3JpcHRTdGFydFBvc2l0aW9uKTsKIAogICAgIGlmIChoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdCgp
KSB7CiAgICAgICAgIGlmIChpc0V4ZWN1dGluZ1NjcmlwdCgpKQpAQCAtMjAxLDcgKzE5OSw3IEBA
IGJvb2wgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9yUGFyc2luZygp
CiAgICAgICAgICAgICB3YXRjaEZvckxvYWQobV9zY3JpcHRzVG9FeGVjdXRlQWZ0ZXJQYXJzaW5n
LmZpcnN0KCkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0gICAgICAg
IGV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChtX3NjcmlwdHNUb0V4ZWN1dGVB
ZnRlclBhcnNpbmcudGFrZUZpcnN0KCkpOworICAgICAgICBleGVjdXRlUGVuZGluZ1NjcmlwdEFu
ZERpc3BhdGNoRXZlbnQobV9zY3JpcHRzVG9FeGVjdXRlQWZ0ZXJQYXJzaW5nLnRha2VGaXJzdCgp
LmdldCgpKTsKICAgICAgICAgLy8gRklYTUU6IFdoYXQgaXMgdGhpcyBtX2RvY3VtZW50IGNoZWNr
IGZvcj8KICAgICAgICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMjA5LDE4ICsyMDcsMTcgQEAgYm9vbCBIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlU2Ny
aXB0c1dhaXRpbmdGb3JQYXJzaW5nKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIFJl
ZjxQZW5kaW5nU2NyaXB0PiByZXF1ZXN0UGVuZGluZ1NjcmlwdChFbGVtZW50KiBzY3JpcHQpCitz
dGF0aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IHJlcXVlc3RQZW5kaW5nU2NyaXB0KFNjcmlwdEVsZW1l
bnQmIHNjcmlwdEVsZW1lbnQpCiB7Ci0gICAgYXV0byYgc2NyaXB0RWxlbWVudCA9ICp0b1Njcmlw
dEVsZW1lbnRJZlBvc3NpYmxlKHNjcmlwdCk7CiAgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQud2ls
bEJlUGFyc2VyRXhlY3V0ZWQoKSk7CiAgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQubG9hZGFibGVT
Y3JpcHQoKSk7Ci0gICAgcmV0dXJuIFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZSgqc2NyaXB0LCAqc2Ny
aXB0RWxlbWVudC5sb2FkYWJsZVNjcmlwdCgpKTsKKyAgICByZXR1cm4gUGVuZGluZ1NjcmlwdDo6
Y3JlYXRlKHNjcmlwdEVsZW1lbnQsICpzY3JpcHRFbGVtZW50LmxvYWRhYmxlU2NyaXB0KCkpOwog
fQogCi12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQo
RWxlbWVudCogZWxlbWVudCkKK3ZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6cmVxdWVzdFBhcnNpbmdC
bG9ja2luZ1NjcmlwdChTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVtZW50KQogewogICAgIEFTU0VS
VCghbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCk7Ci0gICAgbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCA9
IHJlcXVlc3RQZW5kaW5nU2NyaXB0KGVsZW1lbnQpOworICAgIG1fcGFyc2VyQmxvY2tpbmdTY3Jp
cHQgPSByZXF1ZXN0UGVuZGluZ1NjcmlwdChzY3JpcHRFbGVtZW50KTsKICAgICBBU1NFUlQobV9w
YXJzZXJCbG9ja2luZ1NjcmlwdC0+bmVlZHNMb2FkaW5nKCkpOwogCiAgICAgLy8gV2Ugb25seSBj
YXJlIGFib3V0IGEgbG9hZCBjYWxsYmFjayBpZiBMb2FkYWJsZVNjcmlwdCBpcyBub3QgYWxyZWFk
eQpAQCAtMjMwLDU1ICsyMjcsNDQgQEAgdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0UGFy
c2luZ0Jsb2NraW5nU2NyaXB0KEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIHdhdGNoRm9yTG9h
ZCgqbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCk7CiB9CiAKLXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6
cmVxdWVzdERlZmVycmVkU2NyaXB0KEVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIEhUTUxTY3JpcHRS
dW5uZXI6OnJlcXVlc3REZWZlcnJlZFNjcmlwdChTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVtZW50
KQogewotICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IHJlcXVlc3RQZW5kaW5nU2NyaXB0KGVsZW1l
bnQpOworICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IHJlcXVlc3RQZW5kaW5nU2NyaXB0KHNjcmlw
dEVsZW1lbnQpOwogICAgIEFTU0VSVChwZW5kaW5nU2NyaXB0LT5uZWVkc0xvYWRpbmcoKSk7CiAg
ICAgbV9zY3JpcHRzVG9FeGVjdXRlQWZ0ZXJQYXJzaW5nLmFwcGVuZChXVEZNb3ZlKHBlbmRpbmdT
Y3JpcHQpKTsKIH0KIAogLy8gVGhpcyBtZXRob2QgaXMgbWVhbnQgdG8gbWF0Y2ggdGhlIEhUTUw1
IGRlZmluaXRpb24gb2YgInJ1bm5pbmcgYSBzY3JpcHQiCiAvLyBodHRwOi8vd3d3LndoYXR3Zy5v
cmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9zY3JpcHRpbmctMS5odG1s
I3J1bm5pbmctYS1zY3JpcHQKLXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6cnVuU2NyaXB0KEVsZW1l
bnQqIHNjcmlwdCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQordm9p
ZCBIVE1MU2NyaXB0UnVubmVyOjpydW5TY3JpcHQoU2NyaXB0RWxlbWVudCYgc2NyaXB0RWxlbWVu
dCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogewogICAgIEFTU0VS
VChtX2RvY3VtZW50KTsKICAgICBBU1NFUlQoIWhhc1BhcnNlckJsb2NraW5nU2NyaXB0KCkpOwot
ICAgIHsKLSAgICAgICAgU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxl
bWVudElmUG9zc2libGUoc2NyaXB0KTsKLQotICAgICAgICAvLyBUaGlzIGNvbnRhaW5zIGJvdGgg
YW5kIEFTU0VSVElPTiBhbmQgYSBudWxsIGNoZWNrIHNpbmNlIHdlIHNob3VsZCBub3QKLSAgICAg
ICAgLy8gYmUgZ2V0dGluZyBpbnRvIHRoZSBjYXNlIG9mIGEgbnVsbCBzY3JpcHQgZWxlbWVudCwg
YnV0IHNlZW0gdG8gYmUgZnJvbQotICAgICAgICAvLyB0aW1lIHRvIHRpbWUuIFRoZSBhc3NlcnRp
b24gaXMgbGVmdCBpbiB0byBoZWxwIGZpbmQgdGhvc2UgY2FzZXMgYW5kCi0gICAgICAgIC8vIGlz
IGJlaW5nIHRyYWNrZWQgYnkgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MDU1OT4uCi0gICAgICAgIEFTU0VSVChzY3JpcHRFbGVtZW50KTsKLSAgICAgICAgaWYgKCFz
Y3JpcHRFbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vIEZJWE1FOiBU
aGlzIG1heSBiZSB0b28gYWdyZXNzaXZlIGFzIHdlIGFsd2F5cyBkZWxpdmVyIG11dGF0aW9ucyBh
dAotICAgICAgICAvLyBldmVyeSBzY3JpcHQgZWxlbWVudCwgZXZlbiBpZiBpdCdzIG5vdCByZWFk
eSB0byBleGVjdXRlIHlldC4gVGhlcmUncwotICAgICAgICAvLyB1bmZvcnR1YW50ZWx5IG5vIG9i
dmlvdXMgd2F5IHRvIHRlbGwgaWYgcHJlcGFyZVNjcmlwdCBpcyBnb2luZyB0bwotICAgICAgICAv
LyBleGVjdXRlIHRoZSBzY3JpcHQgZnJvbSBvdXQgaGVyZS4KLSAgICAgICAgaWYgKCFpc0V4ZWN1
dGluZ1NjcmlwdCgpKQotICAgICAgICAgICAgTWljcm90YXNrUXVldWU6Om1haW5UaHJlYWRRdWV1
ZSgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7Ci0KLSAgICAgICAgSW5zZXJ0aW9uUG9p
bnRSZWNvcmQgaW5zZXJ0aW9uUG9pbnRSZWNvcmQobV9ob3N0LmlucHV0U3RyZWFtKCkpOwotICAg
ICAgICBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlciBuZXN0aW5nTGV2ZWxJbmNyZW1lbnRlcihtX3Nj
cmlwdE5lc3RpbmdMZXZlbCk7Ci0KLSAgICAgICAgc2NyaXB0RWxlbWVudC0+cHJlcGFyZVNjcmlw
dChzY3JpcHRTdGFydFBvc2l0aW9uKTsKIAotICAgICAgICBpZiAoIXNjcmlwdEVsZW1lbnQtPndp
bGxCZVBhcnNlckV4ZWN1dGVkKCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6
IFRoaXMgbWF5IGJlIHRvbyBhZ3Jlc3NpdmUgYXMgd2UgYWx3YXlzIGRlbGl2ZXIgbXV0YXRpb25z
IGF0CisgICAgLy8gZXZlcnkgc2NyaXB0IGVsZW1lbnQsIGV2ZW4gaWYgaXQncyBub3QgcmVhZHkg
dG8gZXhlY3V0ZSB5ZXQuIFRoZXJlJ3MKKyAgICAvLyB1bmZvcnR1YW50ZWx5IG5vIG9idmlvdXMg
d2F5IHRvIHRlbGwgaWYgcHJlcGFyZVNjcmlwdCBpcyBnb2luZyB0bworICAgIC8vIGV4ZWN1dGUg
dGhlIHNjcmlwdCBmcm9tIG91dCBoZXJlLgorICAgIGlmICghaXNFeGVjdXRpbmdTY3JpcHQoKSkK
KyAgICAgICAgTWljcm90YXNrUXVldWU6Om1haW5UaHJlYWRRdWV1ZSgpLnBlcmZvcm1NaWNyb3Rh
c2tDaGVja3BvaW50KCk7CiAKLSAgICAgICAgaWYgKHNjcmlwdEVsZW1lbnQtPndpbGxFeGVjdXRl
V2hlbkRvY3VtZW50RmluaXNoZWRQYXJzaW5nKCkpCi0gICAgICAgICAgICByZXF1ZXN0RGVmZXJy
ZWRTY3JpcHQoc2NyaXB0KTsKLSAgICAgICAgZWxzZSBpZiAoc2NyaXB0RWxlbWVudC0+cmVhZHlU
b0JlUGFyc2VyRXhlY3V0ZWQoKSkgewotICAgICAgICAgICAgaWYgKG1fc2NyaXB0TmVzdGluZ0xl
dmVsID09IDEpCi0gICAgICAgICAgICAgICAgbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCA9IFBlbmRp
bmdTY3JpcHQ6OmNyZWF0ZSgqc2NyaXB0LCBzY3JpcHRTdGFydFBvc2l0aW9uKTsKLSAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzY3JpcHRFbGVtZW50LT5leGVjdXRlQ2xhc3NpY1Nj
cmlwdChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdC0+dGV4dENvbnRlbnQoKSwgZG9jdW1lbnRVUkxG
b3JTY3JpcHRFeGVjdXRpb24obV9kb2N1bWVudCksIHNjcmlwdFN0YXJ0UG9zaXRpb24pKTsKLSAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICByZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KHNj
cmlwdCk7Ci0gICAgfQorICAgIEluc2VydGlvblBvaW50UmVjb3JkIGluc2VydGlvblBvaW50UmVj
b3JkKG1faG9zdC5pbnB1dFN0cmVhbSgpKTsKKyAgICBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlciBu
ZXN0aW5nTGV2ZWxJbmNyZW1lbnRlcihtX3NjcmlwdE5lc3RpbmdMZXZlbCk7CisKKyAgICBzY3Jp
cHRFbGVtZW50LnByZXBhcmVTY3JpcHQoc2NyaXB0U3RhcnRQb3NpdGlvbik7CisKKyAgICBpZiAo
IXNjcmlwdEVsZW1lbnQud2lsbEJlUGFyc2VyRXhlY3V0ZWQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKHNjcmlwdEVsZW1lbnQud2lsbEV4ZWN1dGVXaGVuRG9jdW1lbnRGaW5pc2hlZFBh
cnNpbmcoKSkKKyAgICAgICAgcmVxdWVzdERlZmVycmVkU2NyaXB0KHNjcmlwdEVsZW1lbnQpOwor
ICAgIGVsc2UgaWYgKHNjcmlwdEVsZW1lbnQucmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQoKSkgewor
ICAgICAgICBpZiAobV9zY3JpcHROZXN0aW5nTGV2ZWwgPT0gMSkKKyAgICAgICAgICAgIG1fcGFy
c2VyQmxvY2tpbmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxlbWVudCwg
c2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNjcmlwdEVs
ZW1lbnQuZXhlY3V0ZUNsYXNzaWNTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRFbGVtZW50
LmVsZW1lbnQoKS50ZXh0Q29udGVudCgpLCBkb2N1bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlvbiht
X2RvY3VtZW50KSwgc2NyaXB0U3RhcnRQb3NpdGlvbikpOworICAgIH0gZWxzZQorICAgICAgICBy
ZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KHNjcmlwdEVsZW1lbnQpOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmgKaW5kZXggNzY4MDBk
NzEzY2U3ZDJlNDYzNWE2NjIzNWIxNjdjMTlmNDU3YzgwMy4uYzNlMTU0NzI0YzRkNjFkYTc0ZmFh
ZWMxMzdjOWRiMDFjNDY0YWVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFNjcmlwdFJ1bm5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxTY3JpcHRSdW5uZXIuaApAQCAtMzIsOSArMzIsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBEb2N1bWVudDsKLWNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEhU
TUxTY3JpcHRSdW5uZXJIb3N0OworY2xhc3MgU2NyaXB0RWxlbWVudDsKIGNsYXNzIFNjcmlwdFNv
dXJjZUNvZGU7CiAKIGNsYXNzIEhUTUxTY3JpcHRSdW5uZXIgewpAQCAtNDYsNyArNDYsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkZXRhY2goKTsKIAogICAgIC8vIFByb2Nlc3NlcyB0aGUgcGFzc2Vk
IGluIHNjcmlwdCBhbmQgYW55IHBlbmRpbmcgc2NyaXB0cyBpZiBwb3NzaWJsZS4KLSAgICB2b2lk
IGV4ZWN1dGUoUGFzc1JlZlB0cjxFbGVtZW50PiBzY3JpcHRUb1Byb2Nlc3MsIGNvbnN0IFRleHRQ
b3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgdm9pZCBleGVjdXRlKFJlZjxTY3Jp
cHRFbGVtZW50PiYmLCBjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pOwog
CiAgICAgdm9pZCBleGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JMb2FkKFBlbmRpbmdTY3JpcHQmKTsK
ICAgICBib29sIGhhc1NjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHMoKSBjb25zdCB7IHJldHVy
biBtX2hhc1NjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHM7IH0KQEAgLTYwLDEzICs2MCwxMyBA
QCBwcml2YXRlOgogICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OwogCiAgICAgdm9pZCBleGVjdXRl
UGFyc2luZ0Jsb2NraW5nU2NyaXB0KCk7Ci0gICAgdm9pZCBleGVjdXRlUGVuZGluZ1NjcmlwdEFu
ZERpc3BhdGNoRXZlbnQoUmVmUHRyPFBlbmRpbmdTY3JpcHQ+KTsKKyAgICB2b2lkIGV4ZWN1dGVQ
ZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChQZW5kaW5nU2NyaXB0Jik7CiAgICAgdm9pZCBl
eGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0cygpOwogCi0gICAgdm9pZCByZXF1ZXN0UGFyc2lu
Z0Jsb2NraW5nU2NyaXB0KEVsZW1lbnQqKTsKLSAgICB2b2lkIHJlcXVlc3REZWZlcnJlZFNjcmlw
dChFbGVtZW50Kik7CisgICAgdm9pZCByZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KFNjcmlw
dEVsZW1lbnQmKTsKKyAgICB2b2lkIHJlcXVlc3REZWZlcnJlZFNjcmlwdChTY3JpcHRFbGVtZW50
Jik7CiAKLSAgICB2b2lkIHJ1blNjcmlwdChFbGVtZW50KiwgY29uc3QgVGV4dFBvc2l0aW9uJiBz
Y3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICB2b2lkIHJ1blNjcmlwdChTY3JpcHRFbGVtZW50Jiwg
Y29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKIAogICAgIC8vIEhlbHBl
cnMgZm9yIGRlYWxpbmcgd2l0aCBIVE1MU2NyaXB0UnVubmVySG9zdAogICAgIHZvaWQgd2F0Y2hG
b3JMb2FkKFBlbmRpbmdTY3JpcHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4IDQ1MjRjMWVhYWNmZDkzMjkwMjZjNjZjYjcyYWI1NGIw
MDhmNjJhNGMuLjY3NmFiOWVmNmI4MWFjZjYwNGExYTM3MGE5ZDA2MGM5YTAwM2QxMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtMzUs
MTAgKzM1LDEyIEBACiAjaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2lu
Y2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlRWxlbWVudC5o
IgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkxvY2Fs
aXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlNW
R1NjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJYTGlua05hbWVzLmgiCiAjaW5jbHVkZSAiWE1M
TlNOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCkBAIC01NywxMCArNTksMTIgQEAgQ3Vz
dG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGE6OkN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRh
KFJlZjxKU0N1c3RvbUVsZW1lbnQKICAgICA6IGVsZW1lbnRJbnRlcmZhY2UoV1RGTW92ZShjdXN0
b21FbGVtZW50SW50ZXJmYWNlKSkKICAgICAsIG5hbWUobmFtZSkKICAgICAsIGF0dHJpYnV0ZXMo
V1RGTW92ZShhdHRyaWJ1dGVzKSkKLXsgfQoreworfQogCiBDdXN0b21FbGVtZW50Q29uc3RydWN0
aW9uRGF0YTo6fkN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhKCkKLXsgfQoreworfQogCiBu
YW1lc3BhY2UgewogCkBAIC0zMTgsNyArMzIyLDcgQEAgaW5saW5lIEhUTUxTdGFja0l0ZW0mIEhU
TUxUcmVlQnVpbGRlcjo6RnJhZ21lbnRQYXJzaW5nQ29udGV4dDo6Y29udGV4dEVsZW1lbnRTdGEK
ICAgICByZXR1cm4gKm1fY29udGV4dEVsZW1lbnRTdGFja0l0ZW07CiB9CiAKLVJlZlB0cjxFbGVt
ZW50PiBIVE1MVHJlZUJ1aWxkZXI6OnRha2VTY3JpcHRUb1Byb2Nlc3MoVGV4dFBvc2l0aW9uJiBz
Y3JpcHRTdGFydFBvc2l0aW9uKQorUmVmUHRyPFNjcmlwdEVsZW1lbnQ+IEhUTUxUcmVlQnVpbGRl
cjo6dGFrZVNjcmlwdFRvUHJvY2VzcyhUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24p
CiB7CiAgICAgQVNTRVJUKCFtX2Rlc3Ryb3llZCk7CiAKQEAgLTIwNTcsNyArMjA2MSw3IEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiYmIHRva2Vu
KQogICAgICAgICAgICAgLy8gUGF1c2Ugb3Vyc2VsdmVzIHNvIHRoYXQgcGFyc2luZyBzdG9wcyB1
bnRpbCB0aGUgc2NyaXB0IGNhbiBiZSBwcm9jZXNzZWQgYnkgdGhlIGNhbGxlci4KICAgICAgICAg
ICAgIEFTU0VSVChtX3RyZWUuY3VycmVudFN0YWNrSXRlbSgpLmhhc1RhZ05hbWUoc2NyaXB0VGFn
KSk7CiAgICAgICAgICAgICBpZiAoc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChtX3RyZWUucGFy
c2VyQ29udGVudFBvbGljeSgpKSkKLSAgICAgICAgICAgICAgICBtX3NjcmlwdFRvUHJvY2VzcyA9
ICZtX3RyZWUuY3VycmVudEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBtX3NjcmlwdFRvUHJv
Y2VzcyA9ICZkb3duY2FzdDxIVE1MU2NyaXB0RWxlbWVudD4obV90cmVlLmN1cnJlbnRFbGVtZW50
KCkpOwogICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLnBvcCgpOwogICAgICAgICAg
ICAgbV9pbnNlcnRpb25Nb2RlID0gbV9vcmlnaW5hbEluc2VydGlvbk1vZGU7CiAKQEAgLTI3ODcs
NyArMjc5MSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVG9rZW5JbkZvcmVpZ25D
b250ZW50KEF0b21pY0hUTUxUb2tlbiYmIHRva2VuKQogCiAgICAgICAgIGlmICh0b2tlbi5uYW1l
KCkgPT0gU1ZHTmFtZXM6OnNjcmlwdFRhZyAmJiBtX3RyZWUuY3VycmVudFN0YWNrSXRlbSgpLmhh
c1RhZ05hbWUoU1ZHTmFtZXM6OnNjcmlwdFRhZykpIHsKICAgICAgICAgICAgIGlmIChzY3JpcHRp
bmdDb250ZW50SXNBbGxvd2VkKG1fdHJlZS5wYXJzZXJDb250ZW50UG9saWN5KCkpKQotICAgICAg
ICAgICAgICAgIG1fc2NyaXB0VG9Qcm9jZXNzID0gJm1fdHJlZS5jdXJyZW50RWxlbWVudCgpOwor
ICAgICAgICAgICAgICAgIG1fc2NyaXB0VG9Qcm9jZXNzID0gJmRvd25jYXN0PFNWR1NjcmlwdEVs
ZW1lbnQ+KG1fdHJlZS5jdXJyZW50RWxlbWVudCgpKTsKICAgICAgICAgICAgIG1fdHJlZS5vcGVu
RWxlbWVudHMoKS5wb3AoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAppbmRleCBkNzA5MjlmNjBh
NjBiYzY1OTZmNjc5MGNkMDBkZWYxNmY5ODU1OWE1Li4yMTNiZDI3OTRmODM3YWY4MjA0MGJlNGE2
Yzc0NGZlNmRmYzg0M2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJl
ZUJ1aWxkZXIuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zNSw2ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlOwogY2xhc3MgSFRNTERvY3VtZW50UGFyc2VyOwor
Y2xhc3MgU2NyaXB0RWxlbWVudDsKIAogc3RydWN0IEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25E
YXRhIHsKICAgICBDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YShSZWY8SlNDdXN0b21FbGVt
ZW50SW50ZXJmYWNlPiYmLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxBdHRyaWJ1
dGU+JiYpOwpAQCAtNjIsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNQYXJzZXJCbG9j
a2luZ1NjcmlwdFdvcmsoKSBjb25zdDsKIAogICAgIC8vIE11c3QgYmUgY2FsbGVkIHRvIHRha2Ug
dGhlIHBhcnNlci1ibG9ja2luZyBzY3JpcHQgYmVmb3JlIGNhbGxpbmcgdGhlIHBhcnNlciBhZ2Fp
bi4KLSAgICBSZWZQdHI8RWxlbWVudD4gdGFrZVNjcmlwdFRvUHJvY2VzcyhUZXh0UG9zaXRpb24m
IHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgIFJlZlB0cjxTY3JpcHRFbGVtZW50PiB0YWtlU2Ny
aXB0VG9Qcm9jZXNzKFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8Q3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGE+IHRha2VDdXN0b21F
bGVtZW50Q29uc3RydWN0aW9uRGF0YSgpIHsgcmV0dXJuIFdURk1vdmUobV9jdXN0b21FbGVtZW50
VG9Db25zdHJ1Y3QpOyB9CiAgICAgdm9pZCBkaWRDcmVhdGVDdXN0b21PckNhbGxiYWNrRWxlbWVu
dChSZWY8RWxlbWVudD4mJiwgQ3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGEmKTsKQEAgLTIw
Niw3ICsyMDcsNyBAQCBwcml2YXRlOgogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5v
cmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2NvbmNlcHQtcGVuZGluZy10YWJsZS1jaGFyLXRva2Vu
cwogICAgIFN0cmluZ0J1aWxkZXIgbV9wZW5kaW5nVGFibGVDaGFyYWN0ZXJzOwogCi0gICAgUmVm
UHRyPEVsZW1lbnQ+IG1fc2NyaXB0VG9Qcm9jZXNzOyAvLyA8c2NyaXB0PiB0YWcgd2hpY2ggbmVl
ZHMgcHJvY2Vzc2luZyBiZWZvcmUgcmVzdW1pbmcgdGhlIHBhcnNlci4KKyAgICBSZWZQdHI8U2Ny
aXB0RWxlbWVudD4gbV9zY3JpcHRUb1Byb2Nlc3M7IC8vIDxzY3JpcHQ+IHRhZyB3aGljaCBuZWVk
cyBwcm9jZXNzaW5nIGJlZm9yZSByZXN1bWluZyB0aGUgcGFyc2VyLgogICAgIFRleHRQb3NpdGlv
biBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0UG9zaXRpb247IC8vIFN0YXJ0aW5nIGxpbmUgbnVtYmVy
IG9mIHRoZSBzY3JpcHQgdGFnIG5lZWRpbmcgcHJvY2Vzc2luZy4KIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YT4gbV9jdXN0b21FbGVtZW50VG9Db25z
dHJ1Y3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1l
bnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFy
c2VyLmNwcAppbmRleCBhZDVmNmU3OGUzODFhYWRjY2M2YjkxYmE5N2NhNDI1NTgwNGNiOTcwLi5m
OTg4MjViMjA2MDk3ZjJjNGE4YzFmZTg0YjQwYjZkOGYwYTVlYWNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAKQEAgLTI2LDYgKzI2
LDcgQEAKICNpbmNsdWRlICJUZXh0RG9jdW1lbnRQYXJzZXIuaCIKIAogI2luY2x1ZGUgIkhUTUxU
cmVlQnVpbGRlci5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRp
dG9yRGVsZWdhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRl
bGVnYXRlLmNwcAppbmRleCAzZjQzZTA0ZDVkZWViN2QyOTMxMTZlOGRlYzIzYzdiMGJmN2ZiNzc5
Li5mMjk3NDRiZmYxNzQ1YzliMTYwOWQ0Zjg1MzA4MTVmOTQ5YmU1NDBkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKQEAgLTY5LDIy
ICs2OSwyMiBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBidWlsZENvbnNvbGVFcnJvcihjb25zdCBY
U1NJbmZvJiB4c3NJbmZvKQogICAgIHJldHVybiBtZXNzYWdlLnRvU3RyaW5nKCk7CiB9CiAKLVBh
c3NSZWZQdHI8Rm9ybURhdGE+IFhTU0F1ZGl0b3JEZWxlZ2F0ZTo6Z2VuZXJhdGVWaW9sYXRpb25S
ZXBvcnQoY29uc3QgWFNTSW5mbyYgeHNzSW5mbykKK1JlZjxGb3JtRGF0YT4gWFNTQXVkaXRvckRl
bGVnYXRlOjpnZW5lcmF0ZVZpb2xhdGlvblJlcG9ydChjb25zdCBYU1NJbmZvJiB4c3NJbmZvKQog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBGcmFtZUxvYWRlciYgZnJhbWVM
b2FkZXIgPSBtX2RvY3VtZW50LmZyYW1lKCktPmxvYWRlcigpOworICAgIGF1dG8mIGZyYW1lTG9h
ZGVyID0gbV9kb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKTsKICAgICBTdHJpbmcgaHR0cEJvZHk7
CiAgICAgaWYgKGZyYW1lTG9hZGVyLmRvY3VtZW50TG9hZGVyKCkpIHsKLSAgICAgICAgaWYgKEZv
cm1EYXRhKiBmb3JtRGF0YSA9IGZyYW1lTG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPm9yaWdpbmFs
UmVxdWVzdCgpLmh0dHBCb2R5KCkpCisgICAgICAgIGlmIChhdXRvKiBmb3JtRGF0YSA9IGZyYW1l
TG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPm9yaWdpbmFsUmVxdWVzdCgpLmh0dHBCb2R5KCkpCiAg
ICAgICAgICAgICBodHRwQm9keSA9IGZvcm1EYXRhLT5mbGF0dGVuVG9TdHJpbmcoKTsKICAgICB9
CiAKLSAgICBSZWY8SW5zcGVjdG9yT2JqZWN0PiByZXBvcnREZXRhaWxzID0gSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKTsKKyAgICBhdXRvIHJlcG9ydERldGFpbHMgPSBJbnNwZWN0b3JPYmplY3Q6
OmNyZWF0ZSgpOwogICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygicmVxdWVzdC11cmwiLCB4
c3NJbmZvLm1fb3JpZ2luYWxVUkwpOwogICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygicmVx
dWVzdC1ib2R5IiwgaHR0cEJvZHkpOwogCi0gICAgUmVmPEluc3BlY3Rvck9iamVjdD4gcmVwb3J0
T2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBhdXRvIHJlcG9ydE9iamVj
dCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAgICAgcmVwb3J0T2JqZWN0LT5zZXRPYmpl
Y3QoInhzcy1yZXBvcnQiLCBXVEZNb3ZlKHJlcG9ydERldGFpbHMpKTsKIAogICAgIHJldHVybiBG
b3JtRGF0YTo6Y3JlYXRlKHJlcG9ydE9iamVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVs
ZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5o
CmluZGV4IDBhZTI3NGIzMTkyZGZhNDdhNjNjZTk2YTJhOTc5NDY1ZWM4ODA4ZWYuLjk3YzgwZGM2
ZTM1MmI5ZGViOTE3YzMyM2Y5YzA2MDUzMjNmZTU3NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oCkBAIC01OSw3ICs1OSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFJlcG9ydFVSTChjb25zdCBVUkwmIHVybCkgeyBtX3JlcG9ydFVSTCA9
IHVybDsgfQogCiBwcml2YXRlOgotICAgIFBhc3NSZWZQdHI8Rm9ybURhdGE+IGdlbmVyYXRlVmlv
bGF0aW9uUmVwb3J0KGNvbnN0IFhTU0luZm8mKTsKKyAgICBSZWY8Rm9ybURhdGE+IGdlbmVyYXRl
VmlvbGF0aW9uUmVwb3J0KGNvbnN0IFhTU0luZm8mKTsKIAogICAgIERvY3VtZW50JiBtX2RvY3Vt
ZW50OwogICAgIGJvb2wgbV9kaWRTZW5kTm90aWZpY2F0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2suY3BwCmluZGV4IDhjMzU2Zjc5MTVkNDk4Y2UzNDEyZjc5ODgyZjhk
MDYwYjA4NTYxOTIuLjUxYWJjMzZmYmMwY2RjOTJjYzlmNWM5YzhmZGE0MTczY2E5NWUwOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcApAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC0zMCwxMyArMzAsMTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
QXVkaW9UcmFjay5oIgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiQXVk
aW9UcmFjay5oIgotCi0jaW5jbHVkZSAiQXVkaW9UcmFja0xpc3QuaCIKLSNpbmNsdWRlICJFdmVu
dC5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KIApAQCAtNzgsMTAgKzc1LDEwIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgQXVk
aW9UcmFjazo6Y29tbWVudGFyeUtleXdvcmQoKQogICAgIHJldHVybiBjb21tZW50YXJ5OwogfQog
Ci1BdWRpb1RyYWNrOjpBdWRpb1RyYWNrKEF1ZGlvVHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1Jl
ZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQotICAgIDogTWVkaWFUcmFja0Jh
c2UoTWVkaWFUcmFja0Jhc2U6OkF1ZGlvVHJhY2ssIHRyYWNrUHJpdmF0ZS0+aWQoKSwgdHJhY2tQ
cml2YXRlLT5sYWJlbCgpLCB0cmFja1ByaXZhdGUtPmxhbmd1YWdlKCkpCi0gICAgLCBtX2VuYWJs
ZWQodHJhY2tQcml2YXRlLT5lbmFibGVkKCkpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCitBdWRp
b1RyYWNrOjpBdWRpb1RyYWNrKEF1ZGlvVHJhY2tDbGllbnQmIGNsaWVudCwgQXVkaW9UcmFja1By
aXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAgICA6IE1lZGlhVHJhY2tCYXNlKE1lZGlhVHJhY2tCYXNl
OjpBdWRpb1RyYWNrLCB0cmFja1ByaXZhdGUuaWQoKSwgdHJhY2tQcml2YXRlLmxhYmVsKCksIHRy
YWNrUHJpdmF0ZS5sYW5ndWFnZSgpKQorICAgICwgbV9lbmFibGVkKHRyYWNrUHJpdmF0ZS5lbmFi
bGVkKCkpCisgICAgLCBtX2NsaWVudCgmY2xpZW50KQogICAgICwgbV9wcml2YXRlKHRyYWNrUHJp
dmF0ZSkKIHsKICAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKQEAgLTkzLDE5ICs5MCwx
NiBAQCBBdWRpb1RyYWNrOjp+QXVkaW9UcmFjaygpCiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQo
bnVsbHB0cik7CiB9CiAKLXZvaWQgQXVkaW9UcmFjazo6c2V0UHJpdmF0ZShQYXNzUmVmUHRyPEF1
ZGlvVHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCit2b2lkIEF1ZGlvVHJhY2s6OnNldFByaXZh
dGUoQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKLSAgICBBU1NFUlQobV9wcml2
YXRlKTsKLSAgICBBU1NFUlQodHJhY2tQcml2YXRlKTsKLQotICAgIGlmIChtX3ByaXZhdGUgPT0g
dHJhY2tQcml2YXRlKQorICAgIGlmIChtX3ByaXZhdGUucHRyKCkgPT0gJnRyYWNrUHJpdmF0ZSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiAg
ICAgbV9wcml2YXRlID0gdHJhY2tQcml2YXRlOworICAgIG1fcHJpdmF0ZS0+c2V0RW5hYmxlZCht
X2VuYWJsZWQpOwogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwogCi0gICAgbV9wcml2
YXRlLT5zZXRFbmFibGVkKG1fZW5hYmxlZCk7CiAgICAgdXBkYXRlS2luZEZyb21Qcml2YXRlKCk7
CiB9CiAKQEAgLTExOSw1NCArMTEzLDQ3IEBAIGJvb2wgQXVkaW9UcmFjazo6aXNWYWxpZEtpbmQo
Y29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkgY29uc3QKICAgICAgICAgfHwgdmFsdWUgPT0gY29t
bWVudGFyeUtleXdvcmQoKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjpzZXRFbmFibGVkKGNvbnN0
IGJvb2wgZW5hYmxlZCkKK3ZvaWQgQXVkaW9UcmFjazo6c2V0RW5hYmxlZChib29sIGVuYWJsZWQp
CiB7CiAgICAgaWYgKG1fZW5hYmxlZCA9PSBlbmFibGVkKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtX2VuYWJsZWQgPSBlbmFibGVkOwogICAgIG1fcHJpdmF0ZS0+c2V0RW5hYmxlZChlbmFibGVk
KTsKLQotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmF1ZGlvVHJhY2tFbmFi
bGVkQ2hhbmdlZCh0aGlzKTsKIH0KIAotc2l6ZV90IEF1ZGlvVHJhY2s6OmluYmFuZFRyYWNrSW5k
ZXgoKQorc2l6ZV90IEF1ZGlvVHJhY2s6OmluYmFuZFRyYWNrSW5kZXgoKSBjb25zdAogewotICAg
IEFTU0VSVChtX3ByaXZhdGUpOwogICAgIHJldHVybiBtX3ByaXZhdGUtPnRyYWNrSW5kZXgoKTsK
IH0KIAotdm9pZCBBdWRpb1RyYWNrOjplbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrUHJpdmF0ZSog
dHJhY2tQcml2YXRlLCBib29sIGVuYWJsZWQpCit2b2lkIEF1ZGlvVHJhY2s6OmVuYWJsZWRDaGFu
Z2VkKGJvb2wgZW5hYmxlZCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJh
Y2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CisgICAgaWYgKG1fZW5hYmxlZCA9PSBlbmFibGVkKQor
ICAgICAgICByZXR1cm47CisKICAgICBtX2VuYWJsZWQgPSBlbmFibGVkOwogCiAgICAgaWYgKG1f
Y2xpZW50KQotICAgICAgICBtX2NsaWVudC0+YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKHRoaXMp
OworICAgICAgICBtX2NsaWVudC0+YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKCp0aGlzKTsKIH0K
IAotdm9pZCBBdWRpb1RyYWNrOjppZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2
YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkKQordm9pZCBBdWRpb1RyYWNrOjppZENoYW5nZWQo
Y29uc3QgQXRvbWljU3RyaW5nJiBpZCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0
ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0SWQoaWQpOwogfQogCi12b2lk
IEF1ZGlvVHJhY2s6OmxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUs
IGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpCit2b2lkIEF1ZGlvVHJhY2s6OmxhYmVsQ2hhbmdl
ZChjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQ
cml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRMYWJlbChsYWJlbCk7
CiB9CiAKLXZvaWQgQXVkaW9UcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2Uq
IHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKK3ZvaWQgQXVkaW9U
cmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiB7Ci0g
ICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUp
OwogICAgIHNldExhbmd1YWdlKGxhbmd1YWdlKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjp3aWxs
UmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSkKK3ZvaWQgQXVkaW9UcmFjazo6
d2lsbFJlbW92ZSgpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJp
dmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIG1lZGlhRWxlbWVudCgpLT5yZW1vdmVBdWRpb1RyYWNr
KCp0aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRp
b1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAppbmRleCA2
MWM1YjJjZDQyOThkNTc0ZjdmNzE1YmMxYzE5MjAwNzkxZGQyM2FhLi41ZWQyNDRiZmFjMmMyYjk0
YThlY2Y3ZTFkMWNmOWExYTBiZTg4NGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlv
VHJhY2suaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwg
MjAxMyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yOSw5ICsyOSw3IEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQogCiAjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUV4
cG9ydE1hY3Jvcy5oIgogI2luY2x1ZGUgIlRyYWNrQmFzZS5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDEyICszOCwxMiBA
QCBjbGFzcyBBdWRpb1RyYWNrOwogY2xhc3MgQXVkaW9UcmFja0NsaWVudCB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+QXVkaW9UcmFja0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhdWRp
b1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2smKSA9IDA7CiB9OwogCi1jbGFzcyBB
dWRpb1RyYWNrIGZpbmFsIDogcHVibGljIE1lZGlhVHJhY2tCYXNlLCBwdWJsaWMgQXVkaW9UcmFj
a1ByaXZhdGVDbGllbnQgeworY2xhc3MgQXVkaW9UcmFjayBmaW5hbCA6IHB1YmxpYyBNZWRpYVRy
YWNrQmFzZSwgcHJpdmF0ZSBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxBdWRpb1RyYWNrPiBjcmVhdGUoQXVkaW9UcmFja0NsaWVudCogY2xpZW50LCBQ
YXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCisgICAgc3RhdGljIFJl
ZjxBdWRpb1RyYWNrPiBjcmVhdGUoQXVkaW9UcmFja0NsaWVudCYgY2xpZW50LCBBdWRpb1RyYWNr
UHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQXVkaW9UcmFjayhjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogICAgIH0KQEAgLTU3LDM5ICs1
NSwzOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbWFpbkRlc2NL
ZXl3b3JkKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhbnNsYXRpb25LZXl3
b3JkKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29tbWVudGFyeUtleXdvcmQo
KTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGRlZmF1bHRLaW5kS2V5d29yZCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGVtcHR5QXRvbTsgfQogCi0gICAgYm9vbCBlbmFibGVkKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9lbmFibGVkOyB9CisgICAgYm9vbCBlbmFibGVkKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9lbmFibGVkOyB9CiAgICAgdm9pZCBzZXRFbmFibGVkKGNvbnN0IGJv
b2wpOwogCi0gICAgdm9pZCBjbGVhckNsaWVudCgpIG92ZXJyaWRlIHsgbV9jbGllbnQgPSBudWxs
cHRyOyB9CisgICAgdm9pZCBjbGVhckNsaWVudCgpIGZpbmFsIHsgbV9jbGllbnQgPSBudWxscHRy
OyB9CiAgICAgQXVkaW9UcmFja0NsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGll
bnQ7IH0KIAotICAgIHNpemVfdCBpbmJhbmRUcmFja0luZGV4KCk7CisgICAgc2l6ZV90IGluYmFu
ZFRyYWNrSW5kZXgoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0UHJpdmF0ZShQYXNzUmVmUHRyPEF1
ZGlvVHJhY2tQcml2YXRlPik7Ci0KLXByb3RlY3RlZDoKLSAgICBBdWRpb1RyYWNrKEF1ZGlvVHJh
Y2tDbGllbnQqLCBQYXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPik7CisgICAgdm9pZCBzZXRQ
cml2YXRlKEF1ZGlvVHJhY2tQcml2YXRlJik7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBpc1ZhbGlk
S2luZChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKKyAgICBBdWRpb1RyYWNr
KEF1ZGlvVHJhY2tDbGllbnQmLCBBdWRpb1RyYWNrUHJpdmF0ZSYpOworCisgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBkZWZhdWx0S2luZEtleXdvcmQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBlbXB0
eUF0b207IH0KKyAgICBib29sIGlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0
IGZpbmFsOwogCiAgICAgLy8gQXVkaW9UcmFja1ByaXZhdGVDbGllbnQKLSAgICB2b2lkIGVuYWJs
ZWRDaGFuZ2VkKEF1ZGlvVHJhY2tQcml2YXRlKiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBl
bmFibGVkQ2hhbmdlZChib29sKSBmaW5hbDsKIAogICAgIC8vIFRyYWNrUHJpdmF0ZUJhc2VDbGll
bnQKLSAgICB2b2lkIGlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSos
IGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2Vk
KFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2
b2lkIHdpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSopIG92ZXJyaWRlOworICAgIHZvaWQgaWRD
aGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgbGFiZWxDaGFuZ2Vk
KGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNv
bnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgd2lsbFJlbW92ZSgpIGZpbmFsOwog
CiAgICAgdm9pZCB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIAogICAgIGJvb2wgbV9lbmFibGVk
OwogICAgIEF1ZGlvVHJhY2tDbGllbnQqIG1fY2xpZW50OwogCi0gICAgUmVmUHRyPEF1ZGlvVHJh
Y2tQcml2YXRlPiBtX3ByaXZhdGU7CisgICAgUmVmPEF1ZGlvVHJhY2tQcml2YXRlPiBtX3ByaXZh
dGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAppbmRleCBiZTU4Y2M4MTE5YmZlNmQ2
MGYwMzBiYTAxOTNjMGNkZTUyODQ5MTk4Li45ODU1ZDJiZjJlYjQ2Y2QyZGI3NTUyYThiZTFlYzk1
Y2UzM2NhZDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERh
dGFUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0
YVRleHRUcmFjay5jcHAKQEAgLTM3LDMxICszNywzMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLVJlZjxJbmJhbmREYXRhVGV4dFRyYWNrPiBJbmJhbmREYXRhVGV4dFRyYWNrOjpjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQs
IFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiYmIHRyYWNrUHJpdmF0ZSkKK2lubGluZSBJ
bmJhbmREYXRhVGV4dFRyYWNrOjpJbmJhbmREYXRhVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xp
ZW50LCB0cmFja1ByaXZhdGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kRGF0
YVRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIFdURk1vdmUodHJhY2tQcml2YXRlKSkpOwogfQog
Ci1JbmJhbmREYXRhVGV4dFRyYWNrOjpJbmJhbmREYXRhVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZT4mJiB0cmFja1ByaXZhdGUpCi0gICAgOiBJbmJhbmRUZXh0VHJhY2so
Y29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCitSZWY8SW5iYW5kRGF0YVRleHRUcmFjaz4g
SW5iYW5kRGF0YVRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFj
a1ByaXZhdGUpCiB7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kRGF0YVRleHRUcmFj
ayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogfQogCiBJbmJhbmREYXRhVGV4dFRy
YWNrOjp+SW5iYW5kRGF0YVRleHRUcmFjaygpCiB7CiB9CiAKLXZvaWQgSW5iYW5kRGF0YVRleHRU
cmFjazo6YWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1l
JiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVk
IGxlbmd0aCkKK3ZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZShjb25zdCBNZWRp
YVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9pZCogZGF0YSwgdW5z
aWduZWQgbGVuZ3RoKQogewogICAgIGFkZEN1ZShEYXRhQ3VlOjpjcmVhdGUoKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgc3RhcnQsIGVuZCwgZGF0YSwgbGVuZ3RoKSk7CiB9CiAKICNpZiBFTkFC
TEUoREFUQUNVRV9WQUxVRSkKIAotdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3Vl
KEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBN
ZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlv
bj4gcHJwUGxhdGZvcm1WYWx1ZSwgY29uc3QgU3RyaW5nJiB0eXBlKQordm9pZCBJbmJhbmREYXRh
VGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlh
VGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+JiYgcGxhdGZv
cm1WYWx1ZSwgY29uc3QgU3RyaW5nJiB0eXBlKQogewotICAgIFJlZlB0cjxTZXJpYWxpemVkUGxh
dGZvcm1SZXByZXNlbnRhdGlvbj4gcGxhdGZvcm1WYWx1ZSA9IHBycFBsYXRmb3JtVmFsdWU7Ci0g
ICAgaWYgKG1faW5jb21wbGV0ZUN1ZU1hcC5maW5kKHBsYXRmb3JtVmFsdWUuZ2V0KCkpICE9IG1f
aW5jb21wbGV0ZUN1ZU1hcC5lbmQoKSkKKyAgICBpZiAobV9pbmNvbXBsZXRlQ3VlTWFwLmNvbnRh
aW5zKHBsYXRmb3JtVmFsdWUucHRyKCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGN1
ZSA9IERhdGFDdWU6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdGFydCwgZW5k
LCBwbGF0Zm9ybVZhbHVlLmNvcHlSZWYoKSwgdHlwZSk7CkBAIC03OCwyNSArNzcsMTkgQEAgdm9p
ZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUq
LCBjb25zdCBNZWRpYVRpbWUmIHMKICAgICBhZGRDdWUoV1RGTW92ZShjdWUpKTsKIH0KIAotdm9p
ZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZh
dGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGluRW5kLCBQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwcnBQbGF0Zm9ybVZhbHVl
KQordm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGlt
ZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgaW5FbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJl
c2VudGF0aW9uJiBwbGF0Zm9ybVZhbHVlKQogewotICAgIE1lZGlhVGltZSBlbmQgPSBpbkVuZDsK
LQotICAgIFJlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcGxhdGZvcm1W
YWx1ZSA9IHBycFBsYXRmb3JtVmFsdWU7Ci0gICAgYXV0byBpdGVyID0gbV9pbmNvbXBsZXRlQ3Vl
TWFwLmZpbmQocGxhdGZvcm1WYWx1ZS5nZXQoKSk7Ci0gICAgaWYgKGl0ZXIgPT0gbV9pbmNvbXBs
ZXRlQ3VlTWFwLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZWZQdHI8RGF0YUN1ZT4g
Y3VlID0gaXRlci0+dmFsdWU7CisgICAgUmVmUHRyPERhdGFDdWU+IGN1ZSA9IG1faW5jb21wbGV0
ZUN1ZU1hcC5nZXQoJnBsYXRmb3JtVmFsdWUpOwogICAgIGlmICghY3VlKQogICAgICAgICByZXR1
cm47CiAKICAgICBjdWUtPndpbGxDaGFuZ2UoKTsKIAorICAgIE1lZGlhVGltZSBlbmQgPSBpbkVu
ZDsKICAgICBpZiAoZW5kLmlzUG9zaXRpdmVJbmZpbml0ZSgpICYmIG1lZGlhRWxlbWVudCgpKQog
ICAgICAgICBlbmQgPSBtZWRpYUVsZW1lbnQoKS0+ZHVyYXRpb25NZWRpYVRpbWUoKTsKICAgICBl
bHNlCi0gICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUocGxhdGZvcm1WYWx1ZS5nZXQo
KSk7CisgICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUoJnBsYXRmb3JtVmFsdWUpOwog
CiAgICAgTE9HKE1lZGlhLCAiSW5iYW5kRGF0YVRleHRUcmFjazo6dXBkYXRlRGF0YUN1ZTogd2Fz
IHN0YXJ0PSVzLCBlbmQ9JXMsIHdpbGwgYmUgc3RhcnQ9JXMsIGVuZD0lc1xuIiwgdG9TdHJpbmco
Y3VlLT5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoY3VlLT5lbmRUaW1lKCkp
LnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKHN0YXJ0KS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhl
bmQpLnV0ZjgoKS5kYXRhKCkpOwogCkBAIC0xMDYsMTQgKzk5LDkgQEAgdm9pZCBJbmJhbmREYXRh
VGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBN
ZWRpYVRpbWUKICAgICBjdWUtPmRpZENoYW5nZSgpOwogfQogCi12b2lkIEluYmFuZERhdGFUZXh0
VHJhY2s6OnJlbW92ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlh
VGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVw
cmVzZW50YXRpb24+IHBycFBsYXRmb3JtVmFsdWUpCit2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6
OnJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgU2VyaWFs
aXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24mIHBsYXRmb3JtVmFsdWUpCiB7Ci0gICAgUmVmUHRy
PFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwbGF0Zm9ybVZhbHVlID0gcHJwUGxh
dGZvcm1WYWx1ZTsKLSAgICBhdXRvIGl0ZXIgPSBtX2luY29tcGxldGVDdWVNYXAuZmluZChwbGF0
Zm9ybVZhbHVlLmdldCgpKTsKLSAgICBpZiAoaXRlciA9PSBtX2luY29tcGxldGVDdWVNYXAuZW5k
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChSZWZQdHI8RGF0YUN1ZT4gY3VlID0gaXRl
ci0+dmFsdWUpIHsKKyAgICBpZiAoYXV0byogY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLmdldCgm
cGxhdGZvcm1WYWx1ZSkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kRGF0YVRleHRUcmFj
azo6cmVtb3ZlRGF0YUN1ZSByZW1vdmluZyBjdWU6IHN0YXJ0PSVzLCBlbmQ9JXNcbiIsIHRvU3Ry
aW5nKGN1ZS0+c3RhcnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZS0+ZW5kVGlt
ZSgpKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmVtb3ZlQ3VlKCpjdWUpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKaW5kZXgg
MjdhOGRiNjE2OWQwYjQ3NmM1NGQzMmU0ODE0Mjg2MjFkYjJhMzA4My4uODI0YTI5ZjZhODY2YWQz
NDVjNWM0YTk0NDhkZmZiOGI2YmE3MTY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKQEAgLTMzLDIzICszMywyMSBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBEYXRhQ3VlOwotY2xhc3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZTsKLWNsYXNzIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uOwogCiBjbGFzcyBJbmJh
bmREYXRhVGV4dFRyYWNrIGZpbmFsIDogcHVibGljIEluYmFuZFRleHRUcmFjayB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxJbmJhbmREYXRhVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2
YXRlPiYmKTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZERhdGFUZXh0VHJhY2s+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSYpOwogICAgIHZpcnR1YWwgfkluYmFuZERhdGFUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToK
LSAgICBJbmJhbmREYXRhVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJh
Y2tDbGllbnQqLCBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4mJik7CisgICAgSW5iYW5k
RGF0YVRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50Jiwg
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogCi0gICAgdm9pZCBhZGREYXRhQ3VlKEluYmFuZFRl
eHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUm
IGVuZCwgY29uc3Qgdm9pZCosIHVuc2lnbmVkKSBmaW5hbDsKKyAgICB2b2lkIGFkZERhdGFDdWUo
Y29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQq
LCB1bnNpZ25lZCkgZmluYWw7CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLSAgICB2b2lk
IGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3Rh
cnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJl
cHJlc2VudGF0aW9uPiwgY29uc3QgU3RyaW5nJikgZmluYWw7Ci0gICAgdm9pZCB1cGRhdGVEYXRh
Q3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25z
dCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRh
dGlvbj4pIGZpbmFsOwotICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2
YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+KSBmaW5hbDsKKyAgICB2b2lk
IGFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQs
IFJlZjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4mJiwgY29uc3QgU3RyaW5nJikg
ZmluYWw7CisgICAgdm9pZCB1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNv
bnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbiYpIGZp
bmFsOworICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25z
dCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24mKSBmaW5h
bDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiByZW1vdmVDdWUoVGV4dFRyYWNrQ3VlJikgZmluYWw7
CiAKICAgICBIYXNoTWFwPFJlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4s
IFJlZlB0cjxEYXRhQ3VlPj4gbV9pbmNvbXBsZXRlQ3VlTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHAKaW5kZXggMDkxYTVk
MmIxODUyNjBiNThmNjhlMmZiY2Y4OWI4NzZjNzU2NWMyZS4uZDQ3OGFlNjExZjIzNzYwMzE3YjVk
MDRjNjI5N2MyMWMwNDE4ZmM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwCkBAIC02NSwxMDIgKzY1LDk5IEBAIHZvaWQg
R2VuZXJpY1RleHRUcmFja0N1ZU1hcDo6cmVtb3ZlKFRleHRUcmFja0N1ZSYgY3VlKQogICAgICAg
ICBtX2RhdGFUb0N1ZU1hcC5yZW1vdmUoZGF0YSk7CiB9CiAKLVJlZjxJbmJhbmRHZW5lcmljVGV4
dFRyYWNrPiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKK2lubGluZSBJbmJhbmRHZW5lcmljVGV4
dFRyYWNrOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0
cmFja1ByaXZhdGUpCisgICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFj
a1ByaXZhdGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kR2VuZXJpY1RleHRU
cmFjayhjb250ZXh0LCBjbGllbnQsIHBsYXllclByaXZhdGUpKTsKIH0KIAotSW5iYW5kR2VuZXJp
Y1RleHRUcmFjazo6SW5iYW5kR2VuZXJpY1RleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0
VHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCi0gICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4
dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCitSZWY8SW5iYW5kR2VuZXJpY1RleHRUcmFjaz4gSW5i
YW5kR2VuZXJpY1RleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFj
a1ByaXZhdGUpCiB7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kR2VuZXJpY1RleHRU
cmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogfQogCiBJbmJhbmRHZW5lcmlj
VGV4dFRyYWNrOjp+SW5iYW5kR2VuZXJpY1RleHRUcmFjaygpCiB7CiB9CiAKLXZvaWQgSW5iYW5k
R2VuZXJpY1RleHRUcmFjazo6dXBkYXRlQ3VlRnJvbUN1ZURhdGEoVGV4dFRyYWNrQ3VlR2VuZXJp
YyogY3VlLCBHZW5lcmljQ3VlRGF0YSogY3VlRGF0YSkKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRU
cmFjazo6dXBkYXRlQ3VlRnJvbUN1ZURhdGEoVGV4dFRyYWNrQ3VlR2VuZXJpYyYgY3VlLCBHZW5l
cmljQ3VlRGF0YSYgY3VlRGF0YSkKIHsKLSAgICBjdWUtPndpbGxDaGFuZ2UoKTsKKyAgICBjdWUu
d2lsbENoYW5nZSgpOwogCi0gICAgY3VlLT5zZXRTdGFydFRpbWUoY3VlRGF0YS0+c3RhcnRUaW1l
KCkpOwotICAgIE1lZGlhVGltZSBlbmRUaW1lID0gY3VlRGF0YS0+ZW5kVGltZSgpOworICAgIGN1
ZS5zZXRTdGFydFRpbWUoY3VlRGF0YS5zdGFydFRpbWUoKSk7CisgICAgTWVkaWFUaW1lIGVuZFRp
bWUgPSBjdWVEYXRhLmVuZFRpbWUoKTsKICAgICBpZiAoZW5kVGltZS5pc1Bvc2l0aXZlSW5maW5p
dGUoKSAmJiBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAgZW5kVGltZSA9IG1lZGlhRWxlbWVudCgp
LT5kdXJhdGlvbk1lZGlhVGltZSgpOwotICAgIGN1ZS0+c2V0RW5kVGltZShlbmRUaW1lKTsKLSAg
ICBjdWUtPnNldFRleHQoY3VlRGF0YS0+Y29udGVudCgpKTsKLSAgICBjdWUtPnNldElkKGN1ZURh
dGEtPmlkKCkpOwotICAgIGN1ZS0+c2V0QmFzZUZvbnRTaXplUmVsYXRpdmVUb1ZpZGVvSGVpZ2h0
KGN1ZURhdGEtPmJhc2VGb250U2l6ZSgpKTsKLSAgICBjdWUtPnNldEZvbnRTaXplTXVsdGlwbGll
cihjdWVEYXRhLT5yZWxhdGl2ZUZvbnRTaXplKCkpOwotICAgIGN1ZS0+c2V0Rm9udE5hbWUoY3Vl
RGF0YS0+Zm9udE5hbWUoKSk7Ci0KLSAgICBpZiAoY3VlRGF0YS0+cG9zaXRpb24oKSA+IDApCi0g
ICAgICAgIGN1ZS0+c2V0UG9zaXRpb24oc3RkOjpyb3VuZChjdWVEYXRhLT5wb3NpdGlvbigpKSk7
Ci0gICAgaWYgKGN1ZURhdGEtPmxpbmUoKSA+IDApCi0gICAgICAgIGN1ZS0+c2V0TGluZShzdGQ6
OnJvdW5kKGN1ZURhdGEtPmxpbmUoKSkpOwotICAgIGlmIChjdWVEYXRhLT5zaXplKCkgPiAwKQot
ICAgICAgICBjdWUtPnNldFNpemUoc3RkOjpyb3VuZChjdWVEYXRhLT5zaXplKCkpKTsKLSAgICBp
ZiAoY3VlRGF0YS0+YmFja2dyb3VuZENvbG9yKCkuaXNWYWxpZCgpKQotICAgICAgICBjdWUtPnNl
dEJhY2tncm91bmRDb2xvcihjdWVEYXRhLT5iYWNrZ3JvdW5kQ29sb3IoKS5yZ2IoKSk7Ci0gICAg
aWYgKGN1ZURhdGEtPmZvcmVncm91bmRDb2xvcigpLmlzVmFsaWQoKSkKLSAgICAgICAgY3VlLT5z
ZXRGb3JlZ3JvdW5kQ29sb3IoY3VlRGF0YS0+Zm9yZWdyb3VuZENvbG9yKCkucmdiKCkpOwotICAg
IGlmIChjdWVEYXRhLT5oaWdobGlnaHRDb2xvcigpLmlzVmFsaWQoKSkKLSAgICAgICAgY3VlLT5z
ZXRIaWdobGlnaHRDb2xvcihjdWVEYXRhLT5oaWdobGlnaHRDb2xvcigpLnJnYigpKTsKLQotICAg
IGlmIChjdWVEYXRhLT5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpTdGFydCkKLSAgICAgICAg
Y3VlLT5zZXRBbGlnbihBU0NJSUxpdGVyYWwoInN0YXJ0IikpOwotICAgIGVsc2UgaWYgKGN1ZURh
dGEtPmFsaWduKCkgPT0gR2VuZXJpY0N1ZURhdGE6Ok1pZGRsZSkKLSAgICAgICAgY3VlLT5zZXRB
bGlnbihBU0NJSUxpdGVyYWwoIm1pZGRsZSIpKTsKLSAgICBlbHNlIGlmIChjdWVEYXRhLT5hbGln
bigpID09IEdlbmVyaWNDdWVEYXRhOjpFbmQpCi0gICAgICAgIGN1ZS0+c2V0QWxpZ24oQVNDSUlM
aXRlcmFsKCJlbmQiKSk7Ci0gICAgY3VlLT5zZXRTbmFwVG9MaW5lcyhmYWxzZSk7Ci0KLSAgICBj
dWUtPmRpZENoYW5nZSgpOwotfQotCi12b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmFkZEdl
bmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSogdHJhY2tQcml2YXRlLCBQYXNzUmVmUHRy
PEdlbmVyaWNDdWVEYXRhPiBwcnBDdWVEYXRhKQotewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQ
cml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKLQotICAgIFJlZlB0cjxHZW5lcmlj
Q3VlRGF0YT4gY3VlRGF0YSA9IHBycEN1ZURhdGE7Ci0gICAgaWYgKG1fY3VlTWFwLmZpbmQoKmN1
ZURhdGEpKQorICAgIGN1ZS5zZXRFbmRUaW1lKGVuZFRpbWUpOworICAgIGN1ZS5zZXRUZXh0KGN1
ZURhdGEuY29udGVudCgpKTsKKyAgICBjdWUuc2V0SWQoY3VlRGF0YS5pZCgpKTsKKyAgICBjdWUu
c2V0QmFzZUZvbnRTaXplUmVsYXRpdmVUb1ZpZGVvSGVpZ2h0KGN1ZURhdGEuYmFzZUZvbnRTaXpl
KCkpOworICAgIGN1ZS5zZXRGb250U2l6ZU11bHRpcGxpZXIoY3VlRGF0YS5yZWxhdGl2ZUZvbnRT
aXplKCkpOworICAgIGN1ZS5zZXRGb250TmFtZShjdWVEYXRhLmZvbnROYW1lKCkpOworCisgICAg
aWYgKGN1ZURhdGEucG9zaXRpb24oKSA+IDApCisgICAgICAgIGN1ZS5zZXRQb3NpdGlvbihzdGQ6
OnJvdW5kKGN1ZURhdGEucG9zaXRpb24oKSkpOworICAgIGlmIChjdWVEYXRhLmxpbmUoKSA+IDAp
CisgICAgICAgIGN1ZS5zZXRMaW5lKHN0ZDo6cm91bmQoY3VlRGF0YS5saW5lKCkpKTsKKyAgICBp
ZiAoY3VlRGF0YS5zaXplKCkgPiAwKQorICAgICAgICBjdWUuc2V0U2l6ZShzdGQ6OnJvdW5kKGN1
ZURhdGEuc2l6ZSgpKSk7CisgICAgaWYgKGN1ZURhdGEuYmFja2dyb3VuZENvbG9yKCkuaXNWYWxp
ZCgpKQorICAgICAgICBjdWUuc2V0QmFja2dyb3VuZENvbG9yKGN1ZURhdGEuYmFja2dyb3VuZENv
bG9yKCkucmdiKCkpOworICAgIGlmIChjdWVEYXRhLmZvcmVncm91bmRDb2xvcigpLmlzVmFsaWQo
KSkKKyAgICAgICAgY3VlLnNldEZvcmVncm91bmRDb2xvcihjdWVEYXRhLmZvcmVncm91bmRDb2xv
cigpLnJnYigpKTsKKyAgICBpZiAoY3VlRGF0YS5oaWdobGlnaHRDb2xvcigpLmlzVmFsaWQoKSkK
KyAgICAgICAgY3VlLnNldEhpZ2hsaWdodENvbG9yKGN1ZURhdGEuaGlnaGxpZ2h0Q29sb3IoKS5y
Z2IoKSk7CisKKyAgICBpZiAoY3VlRGF0YS5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpTdGFy
dCkKKyAgICAgICAgY3VlLnNldEFsaWduKEFTQ0lJTGl0ZXJhbCgic3RhcnQiKSk7CisgICAgZWxz
ZSBpZiAoY3VlRGF0YS5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpNaWRkbGUpCisgICAgICAg
IGN1ZS5zZXRBbGlnbihBU0NJSUxpdGVyYWwoIm1pZGRsZSIpKTsKKyAgICBlbHNlIGlmIChjdWVE
YXRhLmFsaWduKCkgPT0gR2VuZXJpY0N1ZURhdGE6OkVuZCkKKyAgICAgICAgY3VlLnNldEFsaWdu
KEFTQ0lJTGl0ZXJhbCgiZW5kIikpOworICAgIGN1ZS5zZXRTbmFwVG9MaW5lcyhmYWxzZSk7CisK
KyAgICBjdWUuZGlkQ2hhbmdlKCk7Cit9CisKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6
YWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYgY3VlRGF0YSkKK3sKKyAgICBpZiAobV9jdWVN
YXAuZmluZChjdWVEYXRhKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBjdWUgPSBUZXh0
VHJhY2tDdWVHZW5lcmljOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgY3VlRGF0
YS0+c3RhcnRUaW1lKCksIGN1ZURhdGEtPmVuZFRpbWUoKSwgY3VlRGF0YS0+Y29udGVudCgpKTsK
LSAgICB1cGRhdGVDdWVGcm9tQ3VlRGF0YShjdWUucHRyKCksIGN1ZURhdGEuZ2V0KCkpOworICAg
IGF1dG8gY3VlID0gVGV4dFRyYWNrQ3VlR2VuZXJpYzo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksIGN1ZURhdGEuc3RhcnRUaW1lKCksIGN1ZURhdGEuZW5kVGltZSgpLCBjdWVEYXRh
LmNvbnRlbnQoKSk7CisgICAgdXBkYXRlQ3VlRnJvbUN1ZURhdGEoY3VlLmdldCgpLCBjdWVEYXRh
KTsKICAgICBpZiAoaGFzQ3VlKGN1ZS5wdHIoKSwgVGV4dFRyYWNrQ3VlOjpJZ25vcmVEdXJhdGlv
bikpIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2Vu
ZXJpY0N1ZSBpZ25vcmluZyBhbHJlYWR5IGFkZGVkIGN1ZTogc3RhcnQ9JXMsIGVuZD0lcywgY29u
dGVudD1cIiVzXCJcbiIsIHRvU3RyaW5nKGN1ZURhdGEtPnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0
YSgpLCB0b1N0cmluZyhjdWVEYXRhLT5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEt
PmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSBpZ25vcmluZyBhbHJlYWR5IGFkZGVkIGN1ZTog
c3RhcnQ9JXMsIGVuZD0lcywgY29udGVudD1cIiVzXCJcbiIsIHRvU3RyaW5nKGN1ZURhdGEuc3Rh
cnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZURhdGEuZW5kVGltZSgpKS51dGY4
KCkuZGF0YSgpLCBjdWVEYXRhLmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmFk
ZEdlbmVyaWNDdWUgYWRkZWQgY3VlOiBzdGFydD0lLjJmLCBlbmQ9JS4yZiwgY29udGVudD1cIiVz
XCJcbiIsIGN1ZURhdGEtPnN0YXJ0VGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEtPmVuZFRpbWUo
KS50b0RvdWJsZSgpLCBjdWVEYXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CisgICAgTE9H
KE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSBhZGRlZCBjdWU6
IHN0YXJ0PSUuMmYsIGVuZD0lLjJmLCBjb250ZW50PVwiJXNcIlxuIiwgY3VlRGF0YS5zdGFydFRp
bWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLmVuZFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLmNv
bnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgIGlmIChjdWVEYXRhLT5zdGF0dXMoKSAhPSBH
ZW5lcmljQ3VlRGF0YTo6Q29tcGxldGUpCi0gICAgICAgIG1fY3VlTWFwLmFkZCgqY3VlRGF0YSwg
Y3VlKTsKKyAgICBpZiAoY3VlRGF0YS5zdGF0dXMoKSAhPSBHZW5lcmljQ3VlRGF0YTo6Q29tcGxl
dGUpCisgICAgICAgIG1fY3VlTWFwLmFkZChjdWVEYXRhLCBjdWUpOwogCiAgICAgYWRkQ3VlKFdU
Rk1vdmUoY3VlKSk7CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6dXBkYXRlR2Vu
ZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqIGN1ZURhdGEp
Cit2b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnVwZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1
ZURhdGEmIGN1ZURhdGEpCiB7Ci0gICAgYXV0byogY3VlID0gbV9jdWVNYXAuZmluZCgqY3VlRGF0
YSk7CisgICAgYXV0byogY3VlID0gbV9jdWVNYXAuZmluZChjdWVEYXRhKTsKICAgICBpZiAoIWN1
ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQ3VlRnJvbUN1ZURhdGEoY3VlLCBjdWVE
YXRhKTsKKyAgICB1cGRhdGVDdWVGcm9tQ3VlRGF0YSgqY3VlLCBjdWVEYXRhKTsKIAotICAgIGlm
IChjdWVEYXRhLT5zdGF0dXMoKSA9PSBHZW5lcmljQ3VlRGF0YTo6Q29tcGxldGUpCi0gICAgICAg
IG1fY3VlTWFwLnJlbW92ZSgqY3VlRGF0YSk7CisgICAgaWYgKGN1ZURhdGEuc3RhdHVzKCkgPT0g
R2VuZXJpY0N1ZURhdGE6OkNvbXBsZXRlKQorICAgICAgICBtX2N1ZU1hcC5yZW1vdmUoY3VlRGF0
YSk7CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1ZShJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqIGN1ZURhdGEpCit2b2lkIElu
YmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmIGN1
ZURhdGEpCiB7Ci0gICAgYXV0byogY3VlID0gbV9jdWVNYXAuZmluZCgqY3VlRGF0YSk7CisgICAg
YXV0byogY3VlID0gbV9jdWVNYXAuZmluZChjdWVEYXRhKTsKICAgICBpZiAoY3VlKSB7Ci0gICAg
ICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVyaWNDdWUg
cmVtb3ZpbmcgY3VlOiBzdGFydD0lcywgZW5kPSVzLCBjb250ZW50PVwiJXNcIlxuIiwgIHRvU3Ry
aW5nKGN1ZURhdGEtPnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWVEYXRh
LT5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0
YSgpKTsKKyAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3Zl
R2VuZXJpY0N1ZSByZW1vdmluZyBjdWU6IHN0YXJ0PSVzLCBlbmQ9JXMsIGNvbnRlbnQ9XCIlc1wi
XG4iLCAgdG9TdHJpbmcoY3VlRGF0YS5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJp
bmcoY3VlRGF0YS5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEuY29udGVudCgpLnV0
ZjgoKS5kYXRhKCkpOwogICAgICAgICByZW1vdmVDdWUoKmN1ZSk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1
ZSBVTkFCTEUgdG8gZmluZCBjdWU6IHN0YXJ0PSUuMmYsIGVuZD0lLjJmLCBjb250ZW50PVwiJXNc
IlxuIiwgY3VlRGF0YS0+c3RhcnRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS0+ZW5kVGltZSgp
LnRvRG91YmxlKCksIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAg
TE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1ZSBVTkFC
TEUgdG8gZmluZCBjdWU6IHN0YXJ0PSUuMmYsIGVuZD0lLjJmLCBjb250ZW50PVwiJXNcIlxuIiwg
Y3VlRGF0YS5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLmVuZFRpbWUoKS50b0RvdWJs
ZSgpLCBjdWVEYXRhLmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKICAgICB9CiB9CiAKQEAgLTE3
OSwxNSArMTc2LDEzIEBAIFdlYlZUVFBhcnNlciYgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cGFy
c2VyKCkKICAgICByZXR1cm4gKm1fd2ViVlRUUGFyc2VyOwogfQogCi12b2lkIEluYmFuZEdlbmVy
aWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiB0
cmFja1ByaXZhdGUsIGNvbnN0IElTT1dlYlZUVEN1ZSYgY3VlRGF0YSkKK3ZvaWQgSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IElTT1dlYlZUVEN1ZSYgY3Vl
RGF0YSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09
IG1fcHJpdmF0ZSk7CiAgICAgcGFyc2VyKCkucGFyc2VDdWVEYXRhKGN1ZURhdGEpOwogfQogCi12
b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRURmlsZUhlYWRlcihJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIFN0cmluZyYmIGhlYWRlcikKK3ZvaWQgSW5i
YW5kR2VuZXJpY1RleHRUcmFjazo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmIGhlYWRl
cikKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1f
cHJpdmF0ZSk7CiAgICAgcGFyc2VyKCkucGFyc2VGaWxlSGVhZGVyKFdURk1vdmUoaGVhZGVyKSk7
CiB9CiAKQEAgLTIxNCw3ICsyMDksNyBAQCB2b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6Om5l
d1JlZ2lvbnNQYXJzZWQoKQogCiAgICAgZm9yIChhdXRvJiByZWdpb24gOiBuZXdSZWdpb25zKSB7
CiAgICAgICAgIHJlZ2lvbi0+c2V0VHJhY2sodGhpcyk7Ci0gICAgICAgIHJlZ2lvbnMoKS0+YWRk
KHJlZ2lvbik7CisgICAgICAgIHJlZ2lvbnMoKS0+YWRkKHJlZ2lvbi5yZWxlYXNlTm9uTnVsbCgp
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kR2VuZXJpY1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRH
ZW5lcmljVGV4dFRyYWNrLmgKaW5kZXggMWMzNDhiMmRhNTUxMDNlYmJmY2E4NzhkNDBiN2Y5MDc4
OWJkNDQ2My4uM2RjZWVhNDVmMGRjNTQ1NjIwOTBkNTI5MTU4OWIyMGM4YjRkYzQ5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmgK
QEAgLTMzLDkgKzMzLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEb2N1bWVu
dDsKLWNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGU7Ci0KIGNsYXNzIEdlbmVyaWNUZXh0VHJh
Y2tDdWVNYXAgewogcHVibGljOgogICAgIHZvaWQgYWRkKEdlbmVyaWNDdWVEYXRhJiwgVGV4dFRy
YWNrQ3VlR2VuZXJpYyYpOwpAQCAtNTYsMjMgKzUzLDIyIEBAIHByaXZhdGU6CiAKIGNsYXNzIElu
YmFuZEdlbmVyaWNUZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgSW5iYW5kVGV4dFRyYWNrLCBwcml2
YXRlIFdlYlZUVFBhcnNlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbmJhbmRH
ZW5lcmljVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFj
a0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHN0YXRp
YyBSZWY8SW5iYW5kR2VuZXJpY1RleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CiAgICAgdmly
dHVhbCB+SW5iYW5kR2VuZXJpY1RleHRUcmFjaygpOwogCiBwcml2YXRlOgotICAgIEluYmFuZEdl
bmVyaWNUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCos
IFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIEluYmFuZEdlbmVyaWNU
ZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRleHRUcmFja0NsaWVudCYsIEluYmFu
ZFRleHRUcmFja1ByaXZhdGUmKTsKIAotICAgIHZvaWQgYWRkR2VuZXJpY0N1ZShJbmJhbmRUZXh0
VHJhY2tQcml2YXRlKiwgUGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0YT4pIGZpbmFsOwotICAgIHZv
aWQgdXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURh
dGEqKSBmaW5hbDsKLSAgICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgZmluYWw7CisgICAgdm9pZCBhZGRHZW5lcmljQ3VlKEdl
bmVyaWNDdWVEYXRhJikgZmluYWw7CisgICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWND
dWVEYXRhJikgZmluYWw7CisgICAgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRh
JikgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVtb3ZlQ3VlKFRleHRUcmFja0N1ZSYp
IGZpbmFsOwogCi0gICAgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVHZW5lcmljPiBjcmVhdGVDdWUo
UGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0YT4pOwotICAgIHZvaWQgdXBkYXRlQ3VlRnJvbUN1ZURh
dGEoVGV4dFRyYWNrQ3VlR2VuZXJpYyosIEdlbmVyaWNDdWVEYXRhKik7CisgICAgdm9pZCB1cGRh
dGVDdWVGcm9tQ3VlRGF0YShUZXh0VHJhY2tDdWVHZW5lcmljJiwgR2VuZXJpY0N1ZURhdGEmKTsK
IAogICAgIFdlYlZUVFBhcnNlciYgcGFyc2VyKCk7Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURh
dGEoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IElTT1dlYlZUVEN1ZSYpIGZpbmFsOwot
ICAgIHZvaWQgcGFyc2VXZWJWVFRGaWxlSGVhZGVyKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBT
dHJpbmcmJikgZmluYWw7CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2Vi
VlRUQ3VlJikgZmluYWw7CisgICAgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYp
IGZpbmFsOwogCiAgICAgdm9pZCBuZXdDdWVzUGFyc2VkKCkgZmluYWw7CiAgICAgdm9pZCBuZXdS
ZWdpb25zUGFyc2VkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0luYmFuZFRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFu
ZFRleHRUcmFjay5jcHAKaW5kZXggZjJlZWVhZTBmYzAwOTRlNDI4YTg3YTY1ZDE4MzE3ZDNjZmY0
NDA3OS4uODdkMWRjNWM2YTllNDAyM2Q3OThjNmRmNDQ3OWFkNzRiZDJjYzUwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcApAQCAtNDMsMjQgKzQz
LDIyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJh
Y2s+IEluYmFuZFRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsCi0gICAgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQorUmVmPEluYmFuZFRleHRUcmFjaz4gSW5iYW5kVGV4
dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNr
Q2xpZW50JiBjbGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsK
LSAgICBzd2l0Y2ggKHRyYWNrUHJpdmF0ZS0+Y3VlRm9ybWF0KCkpIHsKKyAgICBzd2l0Y2ggKHRy
YWNrUHJpdmF0ZS5jdWVGb3JtYXQoKSkgewogICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZTo6RGF0YToKICAgICAgICAgcmV0dXJuIEluYmFuZERhdGFUZXh0VHJhY2s6OmNyZWF0ZShjb250
ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSk7CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlOjpHZW5lcmljOgogICAgICAgICByZXR1cm4gSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6Y3Jl
YXRlKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKTsKICAgICBjYXNlIEluYmFuZFRleHRU
cmFja1ByaXZhdGU6OldlYlZUVDoKICAgICAgICAgcmV0dXJuIEluYmFuZFdlYlZUVFRleHRUcmFj
azo6Y3JlYXRlKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKTsKLSAgICBkZWZhdWx0Ogot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIDA7CiAgICAgfQor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBJbmJhbmREYXRhVGV4dFRyYWNr
OjpjcmVhdGUoY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpOwogfQogCi1JbmJhbmRUZXh0
VHJhY2s6OkluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBU
ZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRl
PiB0cmFja1ByaXZhdGUpCi0gICAgOiBUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBlbXB0eUF0
b20sIHRyYWNrUHJpdmF0ZS0+aWQoKSwgdHJhY2tQcml2YXRlLT5sYWJlbCgpLCB0cmFja1ByaXZh
dGUtPmxhbmd1YWdlKCksIEluQmFuZCkKK0luYmFuZFRleHRUcmFjazo6SW5iYW5kVGV4dFRyYWNr
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50
LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgOiBUZXh0VHJhY2so
JmNvbnRleHQsICZjbGllbnQsIGVtcHR5QXRvbSwgdHJhY2tQcml2YXRlLmlkKCksIHRyYWNrUHJp
dmF0ZS5sYWJlbCgpLCB0cmFja1ByaXZhdGUubGFuZ3VhZ2UoKSwgSW5CYW5kKQogICAgICwgbV9w
cml2YXRlKHRyYWNrUHJpdmF0ZSkKIHsKICAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsK
QEAgLTcyLDEyICs3MCw5IEBAIEluYmFuZFRleHRUcmFjazo6fkluYmFuZFRleHRUcmFjaygpCiAg
ICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiB9CiAKLXZvaWQgSW5iYW5kVGV4dFRy
YWNrOjpzZXRQcml2YXRlKFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2tQ
cml2YXRlKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6OnNldFByaXZhdGUoSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIEFT
U0VSVCh0cmFja1ByaXZhdGUpOwotCi0gICAgaWYgKG1fcHJpdmF0ZSA9PSB0cmFja1ByaXZhdGUp
CisgICAgaWYgKG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKQEAgLTExNSw4MCArMTEw
LDYwIEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrOjpzZXRNb2RlSW50ZXJuYWwoTW9kZSBtb2RlKQog
CiBib29sIEluYmFuZFRleHRUcmFjazo6aXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0CiB7Ci0gICAg
aWYgKCFtX3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIHJldHVybiBtX3By
aXZhdGUtPmlzQ2xvc2VkQ2FwdGlvbnMoKTsKIH0KIAogYm9vbCBJbmJhbmRUZXh0VHJhY2s6Omlz
U0RIKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPmlzU0RIKCk7CiB9CiAKIGJvb2wgSW5iYW5k
VGV4dFRyYWNrOjpjb250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMoKSBjb25zdAogewotICAgIGlm
ICghbV9wcml2YXRlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCiAgICAgcmV0dXJuIG1f
cHJpdmF0ZS0+Y29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCk7CiB9CiAKIGJvb2wgSW5iYW5k
VGV4dFRyYWNrOjppc01haW5Qcm9ncmFtQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3By
aXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKICAgICByZXR1cm4gbV9wcml2YXRl
LT5pc01haW5Qcm9ncmFtQ29udGVudCgpOwogfQogCiBib29sIEluYmFuZFRleHRUcmFjazo6aXNF
YXN5VG9SZWFkKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPmlzRWFzeVRvUmVhZCgpOwogfQog
ICAgIAogc2l6ZV90IEluYmFuZFRleHRUcmFjazo6aW5iYW5kVHJhY2tJbmRleCgpCiB7Ci0gICAg
QVNTRVJUKG1fcHJpdmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dHJhY2tJbmRleCgpOwog
fQogCiBBdG9taWNTdHJpbmcgSW5iYW5kVGV4dFRyYWNrOjppbkJhbmRNZXRhZGF0YVRyYWNrRGlz
cGF0Y2hUeXBlKCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKICAgICByZXR1cm4g
bV9wcml2YXRlLT5pbkJhbmRNZXRhZGF0YVRyYWNrRGlzcGF0Y2hUeXBlKCk7CiB9CiAKLXZvaWQg
SW5iYW5kVGV4dFRyYWNrOjppZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRl
LCBjb25zdCBBdG9taWNTdHJpbmcmIGlkKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6OmlkQ2hhbmdl
ZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2
YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRJZChpZCk7CiB9CiAKLXZv
aWQgSW5iYW5kVGV4dFRyYWNrOjpsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQ
cml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6
OmxhYmVsQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQogewotICAgIEFTU0VSVF9V
TlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRM
YWJlbChsYWJlbCk7CiB9CiAKLXZvaWQgSW5iYW5kVGV4dFRyYWNrOjpsYW5ndWFnZUNoYW5nZWQo
VHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1
YWdlKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6Omxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9taWNT
dHJpbmcmIGxhbmd1YWdlKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFj
a1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRMYW5ndWFnZShsYW5ndWFnZSk7CiB9CiAK
LXZvaWQgSW5iYW5kVGV4dFRyYWNrOjp3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNr
UHJpdmF0ZSkKK3ZvaWQgSW5iYW5kVGV4dFRyYWNrOjp3aWxsUmVtb3ZlKCkKIHsKLSAgICBpZiAo
IW1lZGlhRWxlbWVudCgpKQorICAgIGF1dG8qIGVsZW1lbnQgPSBtZWRpYUVsZW1lbnQoKTsKKyAg
ICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNr
UHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7Ci0gICAgbWVkaWFFbGVtZW50KCkt
PnJlbW92ZVRleHRUcmFjaygqdGhpcyk7CisgICAgZWxlbWVudC0+cmVtb3ZlVGV4dFRyYWNrKCp0
aGlzKTsKIH0KIAogdm9pZCBJbmJhbmRUZXh0VHJhY2s6OnVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgp
CkBAIC0xOTYsMzQgKzE3MSwzMCBAQCB2b2lkIEluYmFuZFRleHRUcmFjazo6dXBkYXRlS2luZEZy
b21Qcml2YXRlKCkKICAgICBzd2l0Y2ggKG1fcHJpdmF0ZS0+a2luZCgpKSB7CiAgICAgY2FzZSBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlOjpTdWJ0aXRsZXM6CiAgICAgICAgIHNldEtpbmQoS2luZDo6
U3VidGl0bGVzKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIElu
YmFuZFRleHRUcmFja1ByaXZhdGU6OkNhcHRpb25zOgogICAgICAgICBzZXRLaW5kKEtpbmQ6OkNh
cHRpb25zKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluYmFu
ZFRleHRUcmFja1ByaXZhdGU6OkRlc2NyaXB0aW9uczoKICAgICAgICAgc2V0S2luZChLaW5kOjpE
ZXNjcmlwdGlvbnMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6Q2hhcHRlcnM6CiAgICAgICAgIHNldEtpbmQoS2luZDo6
Q2hhcHRlcnMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZTo6TWV0YWRhdGE6CiAgICAgICAgIHNldEtpbmQoS2luZDo6TWV0
YWRhdGEpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZTo6Rm9yY2VkOgogICAgICAgICBzZXRLaW5kKEtpbmQ6OkZvcmNlZCk7
Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlOjpOb25lOgotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9
CiAKIE1lZGlhVGltZSBJbmJhbmRUZXh0VHJhY2s6OnN0YXJ0VGltZVZhcmlhbmNlKCkgY29uc3QK
IHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1Rp
bWUoKTsKLSAgICAKICAgICByZXR1cm4gbV9wcml2YXRlLT5zdGFydFRpbWVWYXJpYW5jZSgpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFj
ay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suaAppbmRleCA5
Y2QwMjdjMzZjODViMGFhNTE1NjdlZTY5NmUxMjY2ZDA4NDVmMzNlLi44NjQ4MmMyOGJkMDIyOTYw
NGIzYWYyNjk1YTE3M2U1NzI0OTk0NmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0luYmFuZFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
SW5iYW5kVGV4dFRyYWNrLmgKQEAgLTM1LDkgKzM1LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBJbmJhbmRUZXh0VHJhY2sgOiBwdWJsaWMgVGV4dFRyYWNrLCBwdWJsaWMgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCB7CitjbGFzcyBJbmJhbmRUZXh0VHJhY2sgOiBwdWJs
aWMgVGV4dFRyYWNrLCBwcml2YXRlIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gY3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRl
eHRUcmFja1ByaXZhdGU+KTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZFRleHRUcmFjaz4gY3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlJik7CiAgICAgdmlydHVhbCB+SW5iYW5kVGV4dFRyYWNrKCk7CiAKICAgICBib29s
IGlzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdCBvdmVycmlkZTsKQEAgLTUwLDM4ICs1MCwzOCBAQCBw
dWJsaWM6CiAKICAgICBBdG9taWNTdHJpbmcgaW5CYW5kTWV0YWRhdGFUcmFja0Rpc3BhdGNoVHlw
ZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZXRQcml2YXRlKFBhc3NSZWZQdHI8SW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHZvaWQgc2V0UHJpdmF0ZShJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlJik7CiAKIHByb3RlY3RlZDoKLSAgICBJbmJhbmRUZXh0VHJhY2soU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZT4pOworICAgIEluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogCiAgICAgdm9p
ZCBzZXRNb2RlSW50ZXJuYWwoTW9kZSk7CiAgICAgdm9pZCB1cGRhdGVLaW5kRnJvbVByaXZhdGUo
KTsKIAotICAgIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiBtX3ByaXZhdGU7CisgICAg
UmVmPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IG1fcHJpdmF0ZTsKIAogcHJpdmF0ZToKICAgICBi
b29sIGlzSW5iYW5kKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQgaWRD
aGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsK
LSAgICB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRlQmFz
ZSosIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbFJlbW92ZShU
cmFja1ByaXZhdGVCYXNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRv
bWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBsYWJlbENoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgb3ZlcnJpZGU7CiAKLSAg
ICB2b2lkIGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGlt
ZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkgb3ZlcnJpZGUgeyBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRp
bWUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpIG92ZXJyaWRlIHsg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQotICAg
IHZvaWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1l
JiwgY29uc3QgTWVkaWFUaW1lJiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNl
bnRhdGlvbj4sIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7
IH0KLSAgICB2b2lkIHVwZGF0ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0
IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRm
b3JtUmVwcmVzZW50YXRpb24+KSBvdmVycmlkZSAgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQot
ICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1S
ZXByZXNlbnRhdGlvbj4pIG92ZXJyaWRlICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAg
dm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFJlZjxT
ZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4mJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShjb25z
dCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNl
bnRhdGlvbiYpIG92ZXJyaWRlICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBy
ZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNlcmlhbGl6
ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uJikgb3ZlcnJpZGUgIHsgQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KICNlbmRpZgogCi0gICAgdm9pZCBhZGRHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1By
aXZhdGUqLCBQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsgfQotICAgIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9Ci0gICAgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBH
ZW5lcmljQ3VlRGF0YSopIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2
b2lkIGFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9CisgICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikg
b3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgcmVtb3ZlR2VuZXJp
Y0N1ZShHZW5lcmljQ3VlRGF0YSYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
IAotICAgIHZvaWQgcGFyc2VXZWJWVFRGaWxlSGVhZGVyKEluYmFuZFRleHRUcmFja1ByaXZhdGUq
LCBTdHJpbmcmJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZvaWQg
cGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBjaGFyKiwg
dW5zaWduZWQpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2b2lkIHBh
cnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNPV2ViVlRU
Q3VlJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgcGFyc2VX
ZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgY2hhciosIHVuc2lnbmVkKSBv
dmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1
ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogCiAgICAgTWVkaWFUaW1lIHN0YXJ0VGltZVZhcmlhbmNlKCkgY29uc3Qgb3ZlcnJpZGU7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRU
ZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0
VHJhY2suY3BwCmluZGV4IGU1NDBlNDk0MWFlY2E4NmMwZmZlYTc1MzRiN2FhMjI2YjEyY2MyYTYu
LmM5ODEyNTE0ZjViYzJmZmZkMzhjYjM4ZjhjNmY5YTI4NTc5ZTk5MTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAKQEAgLTI0
LDI3ICsyNCwyNSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmJh
bmRXZWJWVFRUZXh0VHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotI2luY2x1
ZGUgIkluYmFuZFdlYlZUVFRleHRUcmFjay5oIgotCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgogI2luY2x1ZGUgIlZUVFJlZ2lvbkxpc3QuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPEluYmFuZFRleHRUcmFjaz4gSW5i
YW5kV2ViVlRUVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZT4gcGxheWVyUHJpdmF0ZSkKK2lubGluZSBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OkluYmFu
ZFdlYlZUVFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUZXh0VHJh
Y2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQor
ICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKQogewot
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZFdlYlZUVFRleHRUcmFjayhjb250ZXh0LCBj
bGllbnQsIHBsYXllclByaXZhdGUpKTsKIH0KIAotSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpJbmJh
bmRXZWJWVFRUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRy
YWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJh
Y2tQcml2YXRlKQotICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQ
cml2YXRlKQorUmVmPEluYmFuZFRleHRUcmFjaz4gSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50JiBjbGll
bnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBJbmJhbmRXZWJWVFRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFj
a1ByaXZhdGUpKTsKIH0KIAogSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjp+SW5iYW5kV2ViVlRUVGV4
dFRyYWNrKCkKQEAgLTU4LDE1ICs1NiwxMyBAQCBXZWJWVFRQYXJzZXImIEluYmFuZFdlYlZUVFRl
eHRUcmFjazo6cGFyc2VyKCkKICAgICByZXR1cm4gKm1fd2ViVlRUUGFyc2VyOwogfQogCi12b2lk
IEluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFj
a1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3Ro
KQordm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBj
aGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1By
aXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHBhcnNlcigpLnBhcnNlQnl0
ZXMoZGF0YSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBhcnNl
V2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIGNvbnN0
IElTT1dlYlZUVEN1ZSYgY3VlRGF0YSkKK3ZvaWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpwYXJz
ZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJiBjdWVEYXRhKQogewotICAgIEFTU0VS
VF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBw
YXJzZXIoKS5wYXJzZUN1ZURhdGEoY3VlRGF0YSk7CiB9CiAKQEAgLTc0LDEwICs3MCw4IEBAIHZv
aWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpuZXdDdWVzUGFyc2VkKCkKIHsKICAgICBWZWN0b3I8
UmVmUHRyPFdlYlZUVEN1ZURhdGE+PiBjdWVzOwogICAgIHBhcnNlcigpLmdldE5ld0N1ZXMoY3Vl
cyk7Ci0KICAgICBmb3IgKGF1dG8mIGN1ZURhdGEgOiBjdWVzKSB7CiAgICAgICAgIGF1dG8gdnR0
Q3VlID0gVlRUQ3VlOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKmN1ZURhdGEp
OwotCiAgICAgICAgIGlmIChoYXNDdWUodnR0Q3VlLnB0cigpLCBUZXh0VHJhY2tDdWU6Oklnbm9y
ZUR1cmF0aW9uKSkgewogICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kV2ViVlRUVGV4dFRy
YWNrOjpuZXdDdWVzUGFyc2VkIGlnbm9yaW5nIGFscmVhZHkgYWRkZWQgY3VlOiBzdGFydD0lLjJm
LCBlbmQ9JS4yZiwgY29udGVudD1cIiVzXCJcbiIsIHZ0dEN1ZS0+c3RhcnRUaW1lKCksIHZ0dEN1
ZS0+ZW5kVGltZSgpLCB2dHRDdWUtPnRleHQoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTkwLDEzICs4NCwxMiBAQCB2b2lkIEluYmFuZFdlYlZUVFRleHRUcmFjazo6
bmV3UmVnaW9uc1BhcnNlZCgpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxWVFRSZWdpb24+PiBuZXdS
ZWdpb25zOwogICAgIHBhcnNlcigpLmdldE5ld1JlZ2lvbnMobmV3UmVnaW9ucyk7Ci0KICAgICBm
b3IgKGF1dG8mIHJlZ2lvbiA6IG5ld1JlZ2lvbnMpIHsKICAgICAgICAgcmVnaW9uLT5zZXRUcmFj
ayh0aGlzKTsKLSAgICAgICAgcmVnaW9ucygpLT5hZGQocmVnaW9uKTsKKyAgICAgICAgcmVnaW9u
cygpLT5hZGQocmVnaW9uLnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KIH0KLSAgICAKKwogdm9p
ZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmZpbGVGYWlsZWRUb1BhcnNlKCkKIHsKICAgICBMT0co
TWVkaWEsICJFcnJvciBwYXJzaW5nIFdlYlZUVCBzdHJlYW0uIik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suaAppbmRleCA4Y2M3N2E5Y2Vk
YTNjMzdiYjFmNmUxZDVhNTkzZDI2M2MzZDI0OWVmLi4yYTUxZTM4NWE5ZjJhNDQ5ZjhlOTljZGY0
YjNhYjRjMGJhZmVjZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0lu
YmFuZFdlYlZUVFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kV2ViVlRUVGV4dFRyYWNrLmgKQEAgLTMwLDI1ICszMCwyNCBAQAogI2luY2x1ZGUgIkluYmFu
ZFRleHRUcmFjay5oIgogI2luY2x1ZGUgIldlYlZUVFBhcnNlci5oIgogI2luY2x1ZGUgPG1lbW9y
eT4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgSW5iYW5kV2ViVlRUVGV4dFRyYWNrIGZpbmFsIDogcHVibGljIEluYmFuZFRleHRUcmFjaywg
cHJpdmF0ZSBXZWJWVFRQYXJzZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SW5i
YW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0Ns
aWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHN0YXRpYyBS
ZWY8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRleHRU
cmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKICAgICB2aXJ0dWFsIH5JbmJh
bmRXZWJWVFRUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKLSAgICBJbmJhbmRXZWJWVFRUZXh0VHJh
Y2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIEluYmFuZFdlYlZUVFRleHRUcmFjayhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSYpOwogCiAgICAgV2ViVlRUUGFyc2VyJiBwYXJzZXIoKTsKLSAgICB2b2lkIHBhcnNlV2Vi
VlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgY2hhciogZGF0YSwgdW5z
aWduZWQgbGVuZ3RoKSBvdmVycmlkZTsKLSAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJh
bmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNPV2ViVlRUQ3VlJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3Ro
KSBmaW5hbDsKKyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUm
KSBmaW5hbDsKIAotICAgIHZvaWQgbmV3Q3Vlc1BhcnNlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQg
bmV3UmVnaW9uc1BhcnNlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgZmlsZUZhaWxlZFRvUGFyc2Uo
KSBvdmVycmlkZTsKKyAgICB2b2lkIG5ld0N1ZXNQYXJzZWQoKSBmaW5hbDsKKyAgICB2b2lkIG5l
d1JlZ2lvbnNQYXJzZWQoKSBmaW5hbDsKKyAgICB2b2lkIGZpbGVGYWlsZWRUb1BhcnNlKCkgZmlu
YWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViVlRUUGFyc2VyPiBtX3dlYlZUVFBhcnNlcjsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRy
YWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3Bw
CmluZGV4IDIxMGY2YTlkZjVhYzc3MTc1YTk4MTJhYzA1MTA0MjIzMmEzNDBmMzMuLmNlZmEzZmJl
MGIxMzkyNmM2MjdmMGY2NGVlM2Q4ZDQ0NmNhYTA4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3BwCkBAIC05NiwxMSArOTYsMTEgQEAgdm9p
ZCBMb2FkYWJsZVRleHRUcmFjazo6bmV3Q3Vlc0F2YWlsYWJsZShUZXh0VHJhY2tMb2FkZXIqIGxv
YWRlcikKIAogICAgIGZvciAoYXV0byYgbmV3Q3VlIDogbmV3Q3VlcykgewogICAgICAgICBuZXdD
dWUtPnNldFRyYWNrKHRoaXMpOwotICAgICAgICBtX2N1ZXMtPmFkZChuZXdDdWUpOworICAgICAg
ICBtX2N1ZXMtPmFkZChuZXdDdWUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogCiAgICAgaWYg
KGNsaWVudCgpKQotICAgICAgICBjbGllbnQoKS0+dGV4dFRyYWNrQWRkQ3Vlcyh0aGlzLCBtX2N1
ZXMuZ2V0KCkpOworICAgICAgICBjbGllbnQoKS0+dGV4dFRyYWNrQWRkQ3VlcygqdGhpcywgKm1f
Y3Vlcyk7CiB9CiAKIHZvaWQgTG9hZGFibGVUZXh0VHJhY2s6OmN1ZUxvYWRpbmdDb21wbGV0ZWQo
VGV4dFRyYWNrTG9hZGVyKiBsb2FkZXIsIGJvb2wgbG9hZGluZ0ZhaWxlZCkKQEAgLTEyMiw3ICsx
MjIsNyBAQCB2b2lkIExvYWRhYmxlVGV4dFRyYWNrOjpuZXdSZWdpb25zQXZhaWxhYmxlKFRleHRU
cmFja0xvYWRlciogbG9hZGVyKQogCiAgICAgZm9yIChhdXRvJiBuZXdSZWdpb24gOiBuZXdSZWdp
b25zKSB7CiAgICAgICAgIG5ld1JlZ2lvbi0+c2V0VHJhY2sodGhpcyk7Ci0gICAgICAgIHJlZ2lv
bnMoKS0+YWRkKG5ld1JlZ2lvbik7CisgICAgICAgIHJlZ2lvbnMoKS0+YWRkKG5ld1JlZ2lvbi5y
ZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrLmNwcAppbmRleCA5NmJjZDdlZDM1MGQyOGUwNDJlYWU2OGNlZDUyMDFhNzFmM2M1ZjA5
Li5iMGM4NjAwMDNkZmYxYzgwZDhlNjkzMjQ1N2ZiYzEzOWU0ZTJiN2QyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCkBAIC0xMjAsOCArMTIwLDcgQEAgVGV4dFRyYWNr
Ojp+VGV4dFRyYWNrKCkKIHsKICAgICBpZiAobV9jdWVzKSB7CiAgICAgICAgIGlmIChtX2NsaWVu
dCkKLSAgICAgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKHRoaXMsIG1fY3Vl
cy5nZXQoKSk7Ci0KKyAgICAgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKCp0
aGlzLCAqbV9jdWVzKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2N1ZXMtPmxl
bmd0aCgpOyArK2kpCiAgICAgICAgICAgICBtX2N1ZXMtPml0ZW0oaSktPnNldFRyYWNrKG51bGxw
dHIpOwogICAgIH0KQEAgLTE4OSw3ICsxODgsNyBAQCB2b2lkIFRleHRUcmFjazo6c2V0S2luZChL
aW5kIG5ld0tpbmQpCiAgICAgLy8gMy4gSWYgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24g
dGhpcyB0cmFjayBpcyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBs
ZQogICAgIC8vIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCBzb3VyY2VCdWZmZXIudGV4dFRyYWNrcy4K
ICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVmZmVyLT50ZXh0VHJh
Y2tzKCktPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXItPnRl
eHRUcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICAgICAvLyA0LiBRdWV1ZSBhIHRh
c2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2UgYXQgdGhlIFRleHRUcmFja0xp
c3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdGV4dFRyYWNrcyBhdHRyaWJ1dGUg
b24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCkBAIC0xOTgsNyArMTk3LDcgQEAgdm9pZCBUZXh0VHJh
Y2s6OnNldEtpbmQoS2luZCBuZXdLaW5kKQogI2VuZGlmCiAKICAgICBpZiAobV9jbGllbnQgJiYg
b2xkS2luZCAhPSBtX2tpbmQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tLaW5kQ2hhbmdl
ZCh0aGlzKTsKKyAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja0tpbmRDaGFuZ2VkKCp0aGlzKTsK
IH0KIAogdm9pZCBUZXh0VHJhY2s6OnNldEtpbmRLZXl3b3JkSWdub3JpbmdBU0NJSUNhc2UoU3Ry
aW5nVmlldyBrZXl3b3JkKQpAQCAtMjM2LDcgKzIzNSw3IEBAIHZvaWQgVGV4dFRyYWNrOjpzZXRN
b2RlKE1vZGUgbW9kZSkKICAgICAvLyBJZiBtb2RlIGNoYW5nZXMgdG8gZGlzYWJsZWQsIHJlbW92
ZSB0aGlzIHRyYWNrJ3MgY3VlcyBmcm9tIHRoZSBjbGllbnQKICAgICAvLyBiZWNhdXNlIHRoZXkg
d2lsbCBubyBsb25nZXIgYmUgYWNjZXNzaWJsZSBmcm9tIHRoZSBjdWVzKCkgZnVuY3Rpb24uCiAg
ICAgaWYgKG1vZGUgPT0gTW9kZTo6RGlzYWJsZWQgJiYgbV9jbGllbnQgJiYgbV9jdWVzKQotICAg
ICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0aGlzLCBtX2N1ZXMuZ2V0KCkpOwor
ICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlcygqdGhpcywgKm1fY3Vlcyk7CiAK
ICAgICBpZiAobW9kZSAhPSBNb2RlOjpTaG93aW5nICYmIG1fY3VlcykgewogICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkgewpAQCAtMjQ5LDcgKzI0
OCw3IEBAIHZvaWQgVGV4dFRyYWNrOjpzZXRNb2RlKE1vZGUgbW9kZSkKICAgICBtX21vZGUgPSBt
b2RlOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrTW9k
ZUNoYW5nZWQodGhpcyk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tNb2RlQ2hhbmdlZCgq
dGhpcyk7CiB9CiAKIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6Y3VlcygpCkBAIC0yNzAs
NyArMjY5LDcgQEAgdm9pZCBUZXh0VHJhY2s6OnJlbW92ZUFsbEN1ZXMoKQogICAgICAgICByZXR1
cm47CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1v
dmVDdWVzKHRoaXMsIG1fY3Vlcy5nZXQoKSk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tS
ZW1vdmVDdWVzKCp0aGlzLCAqbV9jdWVzKTsKICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkKICAgICAgICAgbV9jdWVzLT5pdGVtKGkpLT5zZXRU
cmFjayhudWxscHRyKTsKQEAgLTI4OCw3ICsyODcsNyBAQCBUZXh0VHJhY2tDdWVMaXN0KiBUZXh0
VHJhY2s6OmFjdGl2ZUN1ZXMoKSBjb25zdAogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9z
cGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI2RvbS10ZXh0dHJhY2stYWN0aXZlY3VlcwogICAg
IGlmICghbV9jdWVzIHx8IG1fbW9kZSA9PSBNb2RlOjpEaXNhYmxlZCkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgcmV0dXJuIG1fY3Vlcy0+YWN0aXZlQ3VlcygpOworICAgIHJldHVybiAm
bV9jdWVzLT5hY3RpdmVDdWVzKCk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFRleHRUcmFjazo6
YWRkQ3VlKFJlZjxUZXh0VHJhY2tDdWU+JiYgY3VlKQpAQCAtMzE4LDEwICszMTcsMTAgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gVGV4dFRyYWNrOjphZGRDdWUoUmVmPFRleHRUcmFja0N1ZT4mJiBjdWUp
CiAKICAgICAvLyAyLiBBZGQgY3VlIHRvIHRoZSBtZXRob2QncyBUZXh0VHJhY2sgb2JqZWN0J3Mg
dGV4dCB0cmFjaydzIHRleHQgdHJhY2sgbGlzdCBvZiBjdWVzLgogICAgIGN1ZS0+c2V0VHJhY2so
dGhpcyk7Ci0gICAgZW5zdXJlVGV4dFRyYWNrQ3VlTGlzdCgpLmFkZChjdWUucHRyKCkpOworICAg
IGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKS5hZGQoY3VlLmNvcHlSZWYoKSk7CiAgICAgCiAgICAg
aWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrQWRkQ3VlKHRoaXMsIGN1
ZSk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tBZGRDdWUoKnRoaXMsIGN1ZSk7CiAKICAg
ICByZXR1cm4geyB9OwogfQpAQCAtMzM4LDEyICszMzcsMTIgQEAgRXhjZXB0aW9uT3I8dm9pZD4g
VGV4dFRyYWNrOjpyZW1vdmVDdWUoVGV4dFRyYWNrQ3VlJiBjdWUpCiAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOT1RfRk9VTkRfRVJSIH07CiAKICAgICAvLyAyLiBSZW1vdmUgY3VlIGZyb20g
dGhlIG1ldGhvZCdzIFRleHRUcmFjayBvYmplY3QncyB0ZXh0IHRyYWNrJ3MgdGV4dCB0cmFjayBs
aXN0IG9mIGN1ZXMuCi0gICAgaWYgKCFtX2N1ZXMgfHwgIW1fY3Vlcy0+cmVtb3ZlKCZjdWUpKQot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFURV9FUlIgfTsKLQorICAgIEFT
U0VSVChtX2N1ZXMpOworICAgIG1fY3Vlcy0+cmVtb3ZlKGN1ZSk7CisgICAgY3VlLnNldElzQWN0
aXZlKGZhbHNlKTsKICAgICBjdWUuc2V0VHJhY2sobnVsbHB0cik7CiAgICAgaWYgKG1fY2xpZW50
KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKHRoaXMsIGN1ZSk7CisgICAg
ICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUoKnRoaXMsIGN1ZSk7CiAKICAgICByZXR1
cm4geyB9OwogfQpAQCAtMzkyLDEwICszOTEsOSBAQCB2b2lkIFRleHRUcmFjazo6YWRkUmVnaW9u
KFJlZlB0cjxWVFRSZWdpb24+JiYgcmVnaW9uKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgLy8gT3RoZXJ3aXNlOiBhZGQgcmVnaW9uIHRvIHRoZSBtZXRob2QncyBUZXh0VHJhY2sgb2Jq
ZWN0J3MgdGV4dCB0cmFjawotICAgIC8vIGxpc3Qgb2YgcmVnaW9ucy4KKyAgICAvLyBPdGhlcndp
c2U6IGFkZCByZWdpb24gdG8gdGhlIG1ldGhvZCdzIFRleHRUcmFjayBvYmplY3QncyB0ZXh0IHRy
YWNrIGxpc3Qgb2YgcmVnaW9ucy4KICAgICByZWdpb24tPnNldFRyYWNrKHRoaXMpOwotICAgIHJl
Z2lvbkxpc3QuYWRkKFdURk1vdmUocmVnaW9uKSk7CisgICAgcmVnaW9uTGlzdC5hZGQocmVnaW9u
LnJlbGVhc2VOb25OdWxsKCkpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBUZXh0VHJhY2s6OnJl
bW92ZVJlZ2lvbihWVFRSZWdpb24qIHJlZ2lvbikKQEAgLTQwOCw5ICs0MDYsOCBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBUZXh0VHJhY2s6OnJlbW92ZVJlZ2lvbihWVFRSZWdpb24qIHJlZ2lvbikKICAg
ICBpZiAocmVnaW9uLT50cmFjaygpICE9IHRoaXMpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOT1RfRk9VTkRfRVJSIH07CiAKLSAgICBpZiAoIW1fcmVnaW9ucyB8fCAhbV9yZWdpb25zLT5y
ZW1vdmUocmVnaW9uKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfU1RBVEVf
RVJSIH07Ci0KKyAgICBBU1NFUlQobV9yZWdpb25zKTsKKyAgICBtX3JlZ2lvbnMtPnJlbW92ZSgq
cmVnaW9uKTsKICAgICByZWdpb24tPnNldFRyYWNrKG51bGxwdHIpOwogICAgIHJldHVybiB7IH07
CiB9CkBAIC00MjIsNyArNDE5LDcgQEAgdm9pZCBUZXh0VHJhY2s6OmN1ZVdpbGxDaGFuZ2UoVGV4
dFRyYWNrQ3VlKiBjdWUpCiAKICAgICAvLyBUaGUgY3VlIG1heSBuZWVkIHRvIGJlIHJlcG9zaXRp
b25lZCBpbiB0aGUgbWVkaWEgZWxlbWVudCdzIGludGVydmFsIHRyZWUsIG1heSBuZWVkIHRvCiAg
ICAgLy8gYmUgcmUtcmVuZGVyZWQsIGV0Yywgc28gcmVtb3ZlIGl0IGJlZm9yZSB0aGUgbW9kaWZp
Y2F0aW9uLi4uCi0gICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZSh0aGlzLCAqY3VlKTsK
KyAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKCp0aGlzLCAqY3VlKTsKIH0KIAogdm9p
ZCBUZXh0VHJhY2s6OmN1ZURpZENoYW5nZShUZXh0VHJhY2tDdWUqIGN1ZSkKQEAgLTQzMSwxMCAr
NDI4LDEwIEBAIHZvaWQgVGV4dFRyYWNrOjpjdWVEaWRDaGFuZ2UoVGV4dFRyYWNrQ3VlKiBjdWUp
CiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE1ha2Ugc3VyZSB0aGUgVGV4dFRyYWNrQ3VlTGlz
dCBvcmRlciBpcyB1cC10by1kYXRlLgotICAgIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKS51cGRh
dGVDdWVJbmRleChjdWUpOworICAgIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKS51cGRhdGVDdWVJ
bmRleCgqY3VlKTsKIAogICAgIC8vIC4uLiBhbmQgYWRkIGl0IGJhY2sgYWdhaW4uCi0gICAgbV9j
bGllbnQtPnRleHRUcmFja0FkZEN1ZSh0aGlzLCAqY3VlKTsKKyAgICBtX2NsaWVudC0+dGV4dFRy
YWNrQWRkQ3VlKCp0aGlzLCAqY3VlKTsKIH0KIAogaW50IFRleHRUcmFjazo6dHJhY2tJbmRleCgp
CkBAIC01NjQsNyArNTYxLDcgQEAgdm9pZCBUZXh0VHJhY2s6OnNldExhbmd1YWdlKGNvbnN0IEF0
b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiAgICAgLy8gMy4gSWYgdGhlIHNvdXJjZUJ1ZmZlciBhdHRy
aWJ1dGUgb24gdGhpcyB0cmFjayBpcyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmly
ZSBhIHNpbXBsZQogICAgIC8vIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCBzb3VyY2VCdWZmZXIudGV4
dFRyYWNrcy4KICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVmZmVy
LT50ZXh0VHJhY2tzKCktPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKKyAgICAgICAgbV9zb3VyY2VC
dWZmZXItPnRleHRUcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICAgICAvLyA0LiBR
dWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2UgYXQgdGhlIFRl
eHRUcmFja0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdGV4dFRyYWNrcyBh
dHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2suaAppbmRleCBiODA0OWM3MGNhZTFhYTk3ODVjMDRhNTQ5OWJjN2FlNmM4MzBjZWRi
Li5kY2UyMDEwNWY5ODc5YmVjM2IyN2E2ODk0YjlkNzg1YTIxN2UwYjM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKQEAgLTQ0LDEyICs0NCwxMiBAQCBjbGFzcyBWVFRSZWdp
b25MaXN0OwogY2xhc3MgVGV4dFRyYWNrQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5U
ZXh0VHJhY2tDbGllbnQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrS2luZENoYW5n
ZWQoVGV4dFRyYWNrKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdl
ZChUZXh0VHJhY2sqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4
dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0Kikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgVGV4dFRy
YWNrQ3VlJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRy
YWNrKiwgVGV4dFRyYWNrQ3VlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tLaW5k
Q2hhbmdlZChUZXh0VHJhY2smKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja01vZGVD
aGFuZ2VkKFRleHRUcmFjayYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3Vl
cyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxp
c3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2smLCBU
ZXh0VHJhY2tDdWUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShU
ZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSA9IDA7CiB9OwogCiBjbGFzcyBUZXh0VHJhY2sgOiBw
dWJsaWMgVHJhY2tCYXNlLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXggZmNiYTE5ZDBkYmJh
ZDRlMDA0NzkwOTFlY2Q1NmU4MjcyZGNlNThlZC4uM2RhNjZlMDVlMjc2NzlmZjUxMjM0M2I4OWU0
YTMzMzQ0ZjQ0YmRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3Vl
LmNwcApAQCAtNDksOCArNDksNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBj
b25zdCBpbnQgaW52YWxpZEN1ZUluZGV4ID0gLTE7Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4
dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21pY1N0cmluZz4gY3VlKCJjdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKQEAgLTYwLDkgKzU4LDYgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0
VHJhY2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lkKCkKIFRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3Vl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW5kKQogICAgIDogbV9zdGFydFRpbWUoc3RhcnQpCiAgICAgLCBt
X2VuZFRpbWUoZW5kKQotICAgICwgbV9jdWVJbmRleChpbnZhbGlkQ3VlSW5kZXgpCi0gICAgLCBt
X3Byb2Nlc3NpbmdDdWVDaGFuZ2VzKDApCi0gICAgLCBtX3RyYWNrKDApCiAgICAgLCBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkKICAgICAsIG1faXNBY3RpdmUoZmFsc2UpCiAgICAg
LCBtX3BhdXNlT25FeGl0KGZhbHNlKQpAQCAtMTQ5LDIzICsxNDQsNiBAQCB2b2lkIFRleHRUcmFj
a0N1ZTo6c2V0UGF1c2VPbkV4aXQoYm9vbCB2YWx1ZSkKICAgICBtX3BhdXNlT25FeGl0ID0gdmFs
dWU7CiB9CiAKLWludCBUZXh0VHJhY2tDdWU6OmN1ZUluZGV4KCkKLXsKLSAgICBpZiAobV9jdWVJ
bmRleCA9PSBpbnZhbGlkQ3VlSW5kZXgpIHsKLSAgICAgICAgQVNTRVJUKHRyYWNrKCkpOwotICAg
ICAgICBBU1NFUlQodHJhY2soKS0+Y3VlcygpKTsKLSAgICAgICAgaWYgKFRleHRUcmFja0N1ZUxp
c3QqIGN1ZUxpc3QgPSB0cmFjaygpLT5jdWVzKCkpCi0gICAgICAgICAgICBtX2N1ZUluZGV4ID0g
Y3VlTGlzdC0+Z2V0Q3VlSW5kZXgodGhpcyk7Ci0gICAgfQotCi0gICAgcmV0dXJuIG1fY3VlSW5k
ZXg7Ci19Ci0KLXZvaWQgVGV4dFRyYWNrQ3VlOjppbnZhbGlkYXRlQ3VlSW5kZXgoKQotewotICAg
IG1fY3VlSW5kZXggPSBpbnZhbGlkQ3VlSW5kZXg7Ci19Ci0KIGJvb2wgVGV4dFRyYWNrQ3VlOjpk
aXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCkKIHsKICAgICAvLyBXaGVuIGEgVGV4dFRyYWNrJ3Mg
bW9kZSBpcyBkaXNhYmxlZDogbm8gY3VlcyBhcmUgYWN0aXZlLCBubyBldmVudHMgZmlyZWQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAppbmRleCA1NzM1MWRjNjBlMmI2
ZWFmNTA4MGYwMzA5YTQ1MTY4Zjc4MzBhNzM0Li4zNTZiNjMzNTk3NDYwNDdkNmIxZDFmOGY3ZmRh
MDhkMjg0NmI3OGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0N1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgK
QEAgLTY1LDkgKzY1LDYgQEAgcHVibGljOgogICAgIE1lZGlhVGltZSBlbmRNZWRpYVRpbWUoKSBj
b25zdCB7IHJldHVybiBtX2VuZFRpbWU7IH0KICAgICB2b2lkIHNldEVuZFRpbWUoY29uc3QgTWVk
aWFUaW1lJik7CiAKLSAgICBpbnQgY3VlSW5kZXgoKTsKLSAgICB2b2lkIGludmFsaWRhdGVDdWVJ
bmRleCgpOwotCiAgICAgYm9vbCBpc0FjdGl2ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJc0Fj
dGl2ZShib29sKTsKIApAQCAtMTExLDEwICsxMDgsOSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBt
X2lkOwogICAgIE1lZGlhVGltZSBtX3N0YXJ0VGltZTsKICAgICBNZWRpYVRpbWUgbV9lbmRUaW1l
OwotICAgIGludCBtX2N1ZUluZGV4OwotICAgIGludCBtX3Byb2Nlc3NpbmdDdWVDaGFuZ2VzOwor
ICAgIGludCBtX3Byb2Nlc3NpbmdDdWVDaGFuZ2VzIHsgMCB9OwogCi0gICAgVGV4dFRyYWNrKiBt
X3RyYWNrOworICAgIFRleHRUcmFjayogbV90cmFjayB7IG51bGxwdHIgfTsKIAogICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5jcHAKaW5kZXggZmZkOGVhZTRk
OTkzNjQ4MGE2YTViYzM1OTJmZTA4MGI3MTZlMTNhMS4uYTE5NmU0MzFlYmFiZmFiYWJjYTVmZDhh
N2EzNWM5MTY5YTUwYTFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tDdWVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0N1ZUxpc3QuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjksMTE3ICszMCwxMDMgQEAKIAogI2luY2x1ZGUgIlRleHRUcmFja0N1ZUxp
c3QuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworLy8gQ2hlY2tpbmcgc29ydGluZyBpcyB0b28g
c2xvdyBmb3IgZ2VuZXJhbCB1c2U7IHR1cm4gaXQgb24gZXhwbGljaXRseSB3aGVuIHdvcmtpbmcg
b24gdGhpcyBjbGFzcy4KKyN1bmRlZiBDSEVDS19TT1JUSU5HCiAKLVRleHRUcmFja0N1ZUxpc3Q6
OlRleHRUcmFja0N1ZUxpc3QoKQotewotfQorI2lmZGVmIENIRUNLX1NPUlRJTkcKKyNkZWZpbmUg
QVNTRVJUX1NPUlRFRChiZWdpbiwgZW5kLCBjb21wYXJhdG9yKSBBU1NFUlQoc3RkOjppc19zb3J0
ZWQoYmVnaW4sIGVuZCwgY29tcGFyYXRvcikpCisjZWxzZQorI2RlZmluZSBBU1NFUlRfU09SVEVE
KGJlZ2luLCBlbmQsIGNvbXBhcmF0b3IpICgodm9pZCkwKQorI2VuZGlmCiAKLXVuc2lnbmVkIGxv
bmcgVGV4dFRyYWNrQ3VlTGlzdDo6bGVuZ3RoKCkgY29uc3QKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVDdWVzKGNvbnN0IFJlZlB0cjxUZXh0VHJhY2tD
dWU+JiBhLCBjb25zdCBSZWZQdHI8VGV4dFRyYWNrQ3VlPiYgYikKIHsKLSAgICByZXR1cm4gbV9s
aXN0LnNpemUoKTsKKyAgICByZXR1cm4gYS0+aXNPcmRlcmVkQmVmb3JlKGIuZ2V0KCkpOwogfQog
Ci11bnNpZ25lZCBsb25nIFRleHRUcmFja0N1ZUxpc3Q6OmdldEN1ZUluZGV4KFRleHRUcmFja0N1
ZSogY3VlKSBjb25zdAordW5zaWduZWQgVGV4dFRyYWNrQ3VlTGlzdDo6Y3VlSW5kZXgoVGV4dFRy
YWNrQ3VlJiBjdWUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbGlzdC5maW5kKGN1ZSk7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMCwgc2l6ZSA9IG1fdmVjdG9yLnNpemUoKTsgaSA8IHNpemU7ICsr
aSkgeworICAgICAgICBpZiAobV92ZWN0b3JbaV0gPT0gJmN1ZSkKKyAgICAgICAgICAgIHJldHVy
biBpOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKIH0K
IAogVGV4dFRyYWNrQ3VlKiBUZXh0VHJhY2tDdWVMaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KSBj
b25zdAogewotICAgIGlmIChpbmRleCA8IG1fbGlzdC5zaXplKCkpCi0gICAgICAgIHJldHVybiBt
X2xpc3RbaW5kZXhdLmdldCgpOwotICAgIHJldHVybiAwOworICAgIGlmIChpbmRleCA+PSBtX3Zl
Y3Rvci5zaXplKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBtX3ZlY3Rv
cltpbmRleF0uZ2V0KCk7CiB9CiAKIFRleHRUcmFja0N1ZSogVGV4dFRyYWNrQ3VlTGlzdDo6Z2V0
Q3VlQnlJZChjb25zdCBTdHJpbmcmIGlkKSBjb25zdAogewotICAgIGZvciAoYXV0byYgY3VlIDog
bV9saXN0KSB7CisgICAgZm9yIChhdXRvJiBjdWUgOiBtX3ZlY3RvcikgewogICAgICAgICBpZiAo
Y3VlLT5pZCgpID09IGlkKQogICAgICAgICAgICAgcmV0dXJuIGN1ZS5nZXQoKTsKICAgICB9Ci0g
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVRleHRUcmFja0N1ZUxpc3Qq
IFRleHRUcmFja0N1ZUxpc3Q6OmFjdGl2ZUN1ZXMoKQorVGV4dFRyYWNrQ3VlTGlzdCYgVGV4dFRy
YWNrQ3VlTGlzdDo6YWN0aXZlQ3VlcygpCiB7CiAgICAgaWYgKCFtX2FjdGl2ZUN1ZXMpCiAgICAg
ICAgIG1fYWN0aXZlQ3VlcyA9IGNyZWF0ZSgpOwogCi0gICAgbV9hY3RpdmVDdWVzLT5jbGVhcigp
OwotICAgIGZvciAoYXV0byYgY3VlIDogbV9saXN0KSB7CisgICAgVmVjdG9yPFJlZlB0cjxUZXh0
VHJhY2tDdWU+PiBhY3RpdmVDdWVzVmVjdG9yOworICAgIGZvciAoYXV0byYgY3VlIDogbV92ZWN0
b3IpIHsKICAgICAgICAgaWYgKGN1ZS0+aXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1fYWN0aXZl
Q3Vlcy0+YWRkKGN1ZSk7CisgICAgICAgICAgICBhY3RpdmVDdWVzVmVjdG9yLmFwcGVuZChjdWUp
OwogICAgIH0KLSAgICByZXR1cm4gbV9hY3RpdmVDdWVzLmdldCgpOworICAgIEFTU0VSVF9TT1JU
RUQoYWN0aXZlQ3Vlc1ZlY3Rvci5iZWdpbigpLCBhY3RpdmVDdWVzVmVjdG9yLmVuZCgpLCBjb21w
YXJlQ3Vlcyk7CisgICAgbV9hY3RpdmVDdWVzLT5tX3ZlY3RvciA9IFdURk1vdmUoYWN0aXZlQ3Vl
c1ZlY3Rvcik7CisKKyAgICAvLyBGSVhNRTogVGhpcyBsaXN0IG9mIGFjdGl2ZSBjdWVzIGlzIG5v
dCB1cGRhdGVkIGFzIGN1ZXMgYXJlIGFkZGVkLCByZW1vdmVkLCBiZWNvbWUgYWN0aXZlLCBhbmQg
YmVjb21lIGluYWN0aXZlLgorICAgIC8vIEluc3RlYWQgaXQgaXMgb25seSB1cGRhdGVkIGVhY2gg
dGltZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBhZ2Fpbi4gVGhhdCBpcyBub3QgY29uc2lzdGVu
dCB3aXRoIG90aGVyIGR5bmFtaWMgRE9NIGxpc3RzLgorICAgIHJldHVybiAqbV9hY3RpdmVDdWVz
OwogfQogCi1ib29sIFRleHRUcmFja0N1ZUxpc3Q6OmFkZChQYXNzUmVmUHRyPFRleHRUcmFja0N1
ZT4gY3VlKQordm9pZCBUZXh0VHJhY2tDdWVMaXN0OjphZGQoUmVmPFRleHRUcmFja0N1ZT4mJiBj
dWUpCiB7CiAgICAgQVNTRVJUKGN1ZS0+c3RhcnRNZWRpYVRpbWUoKSA+PSBNZWRpYVRpbWU6Onpl
cm9UaW1lKCkpOwogICAgIEFTU0VSVChjdWUtPmVuZE1lZGlhVGltZSgpID49IE1lZGlhVGltZTo6
emVyb1RpbWUoKSk7CiAKLSAgICByZXR1cm4gYWRkKGN1ZSwgMCwgbV9saXN0LnNpemUoKSk7Cisg
ICAgUmVmUHRyPFRleHRUcmFja0N1ZT4gY3VlUmVmUHRyIHsgV1RGTW92ZShjdWUpIH07CisgICAg
dW5zaWduZWQgaW5zZXJ0aW9uUG9zaXRpb24gPSBzdGQ6OnVwcGVyX2JvdW5kKG1fdmVjdG9yLmJl
Z2luKCksIG1fdmVjdG9yLmVuZCgpLCBjdWVSZWZQdHIsIGNvbXBhcmVDdWVzKSAtIG1fdmVjdG9y
LmJlZ2luKCk7CisgICAgQVNTRVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5l
bmQoKSwgY29tcGFyZUN1ZXMpOworICAgIG1fdmVjdG9yLmluc2VydChpbnNlcnRpb25Qb3NpdGlv
biwgV1RGTW92ZShjdWVSZWZQdHIpKTsKKyAgICBBU1NFUlRfU09SVEVEKG1fdmVjdG9yLmJlZ2lu
KCksIG1fdmVjdG9yLmVuZCgpLCBjb21wYXJlQ3Vlcyk7CiB9CiAKLWJvb2wgVGV4dFRyYWNrQ3Vl
TGlzdDo6YWRkKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBwcnBDdWUsIHNpemVfdCBzdGFydCwg
c2l6ZV90IGVuZCkKK3ZvaWQgVGV4dFRyYWNrQ3VlTGlzdDo6cmVtb3ZlKFRleHRUcmFja0N1ZSYg
Y3VlKQogewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHN0YXJ0IDw9IG1f
bGlzdC5zaXplKCkpOwotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGVuZCA8
PSBtX2xpc3Quc2l6ZSgpKTsKLQotICAgIC8vIE1haW50YWluIHRleHQgdHJhY2sgY3VlIG9yZGVy
OgotICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdv
cmsvI3RleHQtdHJhY2stY3VlLW9yZGVyCi0gICAgUmVmUHRyPFRleHRUcmFja0N1ZT4gY3VlID0g
cHJwQ3VlOwotICAgIGlmIChzdGFydCA9PSBlbmQpIHsKLSAgICAgICAgaWYgKCFtX2xpc3QuaXNF
bXB0eSgpICYmIChzdGFydCA+IDApICYmIChtX2xpc3Rbc3RhcnQgLSAxXS5nZXQoKSA9PSBjdWUu
Z2V0KCkpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIG1fbGlzdC5pbnNl
cnQoc3RhcnQsIGN1ZSk7Ci0gICAgICAgIGludmFsaWRhdGVDdWVJbmRleGVzKHN0YXJ0KTsKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgc2l6ZV90IGluZGV4ID0gKHN0YXJ0ICsg
ZW5kKSAvIDI7Ci0gICAgaWYgKGN1ZS0+aXNPcmRlcmVkQmVmb3JlKG1fbGlzdFtpbmRleF0uZ2V0
KCkpKQotICAgICAgICByZXR1cm4gYWRkKFdURk1vdmUoY3VlKSwgc3RhcnQsIGluZGV4KTsKLQot
ICAgIHJldHVybiBhZGQoV1RGTW92ZShjdWUpLCBpbmRleCArIDEsIGVuZCk7CisgICAgQVNTRVJU
X1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSwgY29tcGFyZUN1ZXMpOwor
ICAgIG1fdmVjdG9yLnJlbW92ZShjdWVJbmRleChjdWUpKTsKKyAgICBBU1NFUlRfU09SVEVEKG1f
dmVjdG9yLmJlZ2luKCksIG1fdmVjdG9yLmVuZCgpLCBjb21wYXJlQ3Vlcyk7CiB9CiAKLWJvb2wg
VGV4dFRyYWNrQ3VlTGlzdDo6cmVtb3ZlKFRleHRUcmFja0N1ZSogY3VlKQordm9pZCBUZXh0VHJh
Y2tDdWVMaXN0Ojp1cGRhdGVDdWVJbmRleChUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKLSAgICBzaXpl
X3QgaW5kZXggPSBtX2xpc3QuZmluZChjdWUpOwotICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgY3VlLT5zZXRJc0FjdGl2ZShmYWxzZSk7Ci0g
ICAgbV9saXN0LnJlbW92ZShpbmRleCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgVGV4
dFRyYWNrQ3VlTGlzdDo6Y29udGFpbnMoVGV4dFRyYWNrQ3VlKiBjdWUpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fbGlzdC5jb250YWlucyhjdWUpOwotfQotCi1ib29sIFRleHRUcmFja0N1ZUxpc3Q6
OnVwZGF0ZUN1ZUluZGV4KFRleHRUcmFja0N1ZSogY3VlKQotewotICAgIGlmICghY29udGFpbnMo
Y3VlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHJlbW92ZShjdWUpOwotICAg
IHJldHVybiBhZGQoY3VlKTsKLX0KLQotdm9pZCBUZXh0VHJhY2tDdWVMaXN0OjpjbGVhcigpCi17
Ci0gICAgbV9saXN0LmNsZWFyKCk7Ci19CisgICAgYXV0byBjdWVQb3NpdGlvbiA9IG1fdmVjdG9y
LmJlZ2luKCkgKyBjdWVJbmRleChjdWUpOworICAgIGF1dG8gYWZ0ZXJDdWVQb3NpdGlvbiA9IGN1
ZVBvc2l0aW9uICsgMTsKKworICAgIEFTU0VSVF9TT1JURUQobV92ZWN0b3IuYmVnaW4oKSwgY3Vl
UG9zaXRpb24sIGNvbXBhcmVDdWVzKTsKKyAgICBBU1NFUlRfU09SVEVEKGFmdGVyQ3VlUG9zaXRp
b24sIG1fdmVjdG9yLmVuZCgpLCBjb21wYXJlQ3Vlcyk7CisKKyAgICBhdXRvIHJlaW5zZXJ0aW9u
UG9zaXRpb24gPSBzdGQ6OnVwcGVyX2JvdW5kKG1fdmVjdG9yLmJlZ2luKCksIGN1ZVBvc2l0aW9u
LCAqY3VlUG9zaXRpb24sIGNvbXBhcmVDdWVzKTsKKyAgICBpZiAocmVpbnNlcnRpb25Qb3NpdGlv
biAhPSBjdWVQb3NpdGlvbikKKyAgICAgICAgc3RkOjpyb3RhdGUocmVpbnNlcnRpb25Qb3NpdGlv
biwgY3VlUG9zaXRpb24sIGFmdGVyQ3VlUG9zaXRpb24pOworICAgIGVsc2UgeworICAgICAgICBy
ZWluc2VydGlvblBvc2l0aW9uID0gc3RkOjp1cHBlcl9ib3VuZChhZnRlckN1ZVBvc2l0aW9uLCBt
X3ZlY3Rvci5lbmQoKSwgKmN1ZVBvc2l0aW9uLCBjb21wYXJlQ3Vlcyk7CisgICAgICAgIGlmIChy
ZWluc2VydGlvblBvc2l0aW9uICE9IGFmdGVyQ3VlUG9zaXRpb24pCisgICAgICAgICAgICBzdGQ6
OnJvdGF0ZShjdWVQb3NpdGlvbiwgYWZ0ZXJDdWVQb3NpdGlvbiwgcmVpbnNlcnRpb25Qb3NpdGlv
bik7CisgICAgfQogCi12b2lkIFRleHRUcmFja0N1ZUxpc3Q6OmludmFsaWRhdGVDdWVJbmRleGVz
KHNpemVfdCBzdGFydCkKLXsKLSAgICBmb3IgKHNpemVfdCBpID0gc3RhcnQ7IGkgPCBtX2xpc3Qu
c2l6ZSgpOyArK2kpCi0gICAgICAgIG1fbGlzdFtpXS0+aW52YWxpZGF0ZUN1ZUluZGV4KCk7Cisg
ICAgQVNTRVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSwgY29tcGFy
ZUN1ZXMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5oCmluZGV4IGEyMThmYjY5MDg5NjI0YzFmMjgzOWM3
NTNhYzEyNWZmMGRiM2MyOTkuLjZlN2Y0MmI5OWI4NDAyODVhYTUwMjY4YzgyYjQwYTk4MjAyYzk0
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlz
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5oCkBA
IC0yOCw0NCArMjgsNDEgQEAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKICNpbmNsdWRlICJU
ZXh0VHJhY2tDdWUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFRleHRUcmFja0N1ZUxpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxUZXh0
VHJhY2tDdWVMaXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxUZXh0VHJhY2tDdWVMaXN0
PiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNr
Q3VlTGlzdCk7Ci0gICAgfQotCi0gICAgflRleHRUcmFja0N1ZUxpc3QoKSB7IH0KLQotICAgIHVu
c2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgbG9uZyBnZXRDdWVJbmRl
eChUZXh0VHJhY2tDdWUqKSBjb25zdDsKLQorICAgIHN0YXRpYyBSZWY8VGV4dFRyYWNrQ3VlTGlz
dD4gY3JlYXRlKCk7CisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CiAgICAgVGV4dFRyYWNr
Q3VlKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKICAgICBUZXh0VHJhY2tDdWUqIGdldEN1
ZUJ5SWQoY29uc3QgU3RyaW5nJikgY29uc3Q7Ci0gICAgVGV4dFRyYWNrQ3VlTGlzdCogYWN0aXZl
Q3VlcygpOwogCi0gICAgYm9vbCBhZGQoUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+KTsKLSAgICBi
b29sIHJlbW92ZShUZXh0VHJhY2tDdWUqKTsKLSAgICBib29sIGNvbnRhaW5zKFRleHRUcmFja0N1
ZSopIGNvbnN0OwotICAgIAotICAgIGJvb2wgdXBkYXRlQ3VlSW5kZXgoVGV4dFRyYWNrQ3VlKik7
CisgICAgdW5zaWduZWQgY3VlSW5kZXgoVGV4dFRyYWNrQ3VlJikgY29uc3Q7CisgICAgVGV4dFRy
YWNrQ3VlTGlzdCYgYWN0aXZlQ3VlcygpOworCisgICAgdm9pZCBhZGQoUmVmPFRleHRUcmFja0N1
ZT4mJik7CisgICAgdm9pZCByZW1vdmUoVGV4dFRyYWNrQ3VlJik7CisKKyAgICB2b2lkIHVwZGF0
ZUN1ZUluZGV4KFRleHRUcmFja0N1ZSYpOwogCiBwcml2YXRlOgotICAgIFRleHRUcmFja0N1ZUxp
c3QoKTsKLSAgICBib29sIGFkZChQYXNzUmVmUHRyPFRleHRUcmFja0N1ZT4sIHNpemVfdCwgc2l6
ZV90KTsKLSAgICB2b2lkIGNsZWFyKCk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlQ3VlSW5kZXhlcyhz
aXplX3QpOworICAgIFRleHRUcmFja0N1ZUxpc3QoKSA9IGRlZmF1bHQ7CiAKLSAgICBWZWN0b3I8
UmVmUHRyPFRleHRUcmFja0N1ZT4+IG1fbGlzdDsKKyAgICBWZWN0b3I8UmVmUHRyPFRleHRUcmFj
a0N1ZT4+IG1fdmVjdG9yOwogICAgIFJlZlB0cjxUZXh0VHJhY2tDdWVMaXN0PiBtX2FjdGl2ZUN1
ZXM7CiB9OwogCitpbmxpbmUgUmVmPFRleHRUcmFja0N1ZUxpc3Q+IFRleHRUcmFja0N1ZUxpc3Q6
OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrQ3VlTGlzdCk7
Cit9CisKK2lubGluZSB1bnNpZ25lZCBUZXh0VHJhY2tDdWVMaXN0OjpsZW5ndGgoKSBjb25zdAor
eworICAgIHJldHVybiBtX3ZlY3Rvci5zaXplKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZUVFJlZ2lvbkxpc3QuY3BwCmluZGV4IGI3ZTc5ZDBmN2U2YmJjNzRlNDFhNzFmZDVi
ZWU3NDFkYzEyZDdkZDIuLmUyYjA1YzgxMmJiYzRmMjI0ZjI3NzQzNmE0YzI2MjFjN2Q5MzBkYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNwcApAQCAtMSw2
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw1NyAr
MjksNDEgQEAKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVZUVFJlZ2lvbkxpc3Q6OlZUVFJlZ2lvbkxpc3QoKQotewotfQotCi11bnNpZ25lZCBs
b25nIFZUVFJlZ2lvbkxpc3Q6Omxlbmd0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbGlzdC5z
aXplKCk7Ci19Ci0KIFZUVFJlZ2lvbiogVlRUUmVnaW9uTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRl
eCkgY29uc3QKIHsKLSAgICBpZiAoaW5kZXggPCBtX2xpc3Quc2l6ZSgpKQotICAgICAgICByZXR1
cm4gbV9saXN0W2luZGV4XS5nZXQoKTsKLQotICAgIHJldHVybiAwOworICAgIGlmIChpbmRleCA+
PSBtX3ZlY3Rvci5zaXplKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBj
b25zdF9jYXN0PFZUVFJlZ2lvbio+KG1fdmVjdG9yW2luZGV4XS5wdHIoKSk7CiB9CiAKIFZUVFJl
Z2lvbiogVlRUUmVnaW9uTGlzdDo6Z2V0UmVnaW9uQnlJZChjb25zdCBTdHJpbmcmIGlkKSBjb25z
dAogeworICAgIC8vIEZJWE1FOiBXaHkgaXMgdGhpcyBzcGVjaWFsIGNhc2UgbmVlZGVkPwogICAg
IGlmIChpZC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgZm9yIChjb25zdCBh
dXRvJiByZWdpb24gOiBtX2xpc3QpIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgZm9y
IChhdXRvJiByZWdpb24gOiBtX3ZlY3RvcikgewogICAgICAgICBpZiAocmVnaW9uLT5pZCgpID09
IGlkKQotICAgICAgICAgICAgcmV0dXJuIHJlZ2lvbi5nZXQoKTsKKyAgICAgICAgICAgIHJldHVy
biBjb25zdF9jYXN0PFZUVFJlZ2lvbio+KHJlZ2lvbi5wdHIoKSk7CiAgICAgfQotCi0gICAgcmV0
dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgVlRUUmVnaW9uTGlzdDo6YWRk
KFBhc3NSZWZQdHI8VlRUUmVnaW9uPiByZWdpb24pCit2b2lkIFZUVFJlZ2lvbkxpc3Q6OmFkZChS
ZWY8VlRUUmVnaW9uPiYmIHJlZ2lvbikKIHsKLSAgICBtX2xpc3QuYXBwZW5kKHJlZ2lvbik7Cisg
ICAgbV92ZWN0b3IuYXBwZW5kKFdURk1vdmUocmVnaW9uKSk7CiB9CiAKLWJvb2wgVlRUUmVnaW9u
TGlzdDo6cmVtb3ZlKFZUVFJlZ2lvbiogcmVnaW9uKQordm9pZCBWVFRSZWdpb25MaXN0OjpyZW1v
dmUoVlRUUmVnaW9uJiByZWdpb24pCiB7Ci0gICAgc2l6ZV90IGluZGV4ID0gbV9saXN0LmZpbmQo
cmVnaW9uKTsKLSAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIG1fbGlzdC5yZW1vdmUoaW5kZXgpOwotICAgIHJldHVybiB0cnVlOwotfQotCi12
b2lkIFZUVFJlZ2lvbkxpc3Q6OmNsZWFyKCkKLXsKLSAgICBtX2xpc3QuY2xlYXIoKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwLCBzaXplID0gbV92ZWN0b3Iuc2l6ZSgpOyBpIDwgc2l6ZTsgKytp
KSB7CisgICAgICAgIGlmIChtX3ZlY3RvcltpXS5wdHIoKSA9PSAmcmVnaW9uKSB7CisgICAgICAg
ICAgICBtX3ZlY3Rvci5yZW1vdmUoaSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlz
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmgKaW5kZXggMmZk
ZGRjMmVkMTlhNTZlNDgxYWFjZjQ2NWJjODhhN2IyYjdmY2NlMy4uZWQwZmM0YzllZjdiN2U0M2I5
MTAxZTQ3NGRkNTNkNGE5ZGQ5ZjIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WVFRSZWdpb25MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRS
ZWdpb25MaXN0LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjksMzYgKzI5LDQzIEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAj
aW5jbHVkZSAiVlRUUmVnaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBWVFRSZWdpb25MaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8
VlRUUmVnaW9uTGlzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VlRUUmVnaW9uTGlzdD4g
Y3JlYXRlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZUVFJlZ2lvbkxp
c3QpOwotICAgIH0KLQotICAgIH5WVFRSZWdpb25MaXN0KCkgeyB9Ci0KLSAgICB1bnNpZ25lZCBs
b25nIGxlbmd0aCgpIGNvbnN0OworICAgIHN0YXRpYyBSZWY8VlRUUmVnaW9uTGlzdD4gY3JlYXRl
KCk7CiAKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKICAgICBWVFRSZWdpb24qIGl0ZW0o
dW5zaWduZWQgaW5kZXgpIGNvbnN0OwogICAgIFZUVFJlZ2lvbiogZ2V0UmVnaW9uQnlJZChjb25z
dCBTdHJpbmcmKSBjb25zdDsKIAotICAgIHZvaWQgYWRkKFBhc3NSZWZQdHI8VlRUUmVnaW9uPik7
Ci0gICAgYm9vbCByZW1vdmUoVlRUUmVnaW9uKik7CisgICAgdm9pZCBhZGQoUmVmPFZUVFJlZ2lv
bj4mJik7CisgICAgdm9pZCByZW1vdmUoVlRUUmVnaW9uJik7CiAKIHByaXZhdGU6Ci0gICAgVlRU
UmVnaW9uTGlzdCgpOworICAgIFZUVFJlZ2lvbkxpc3QoKSA9IGRlZmF1bHQ7CisKICAgICB2b2lk
IGNsZWFyKCk7CiAKLSAgICBWZWN0b3I8UmVmUHRyPFZUVFJlZ2lvbj4+IG1fbGlzdDsKKyAgICBW
ZWN0b3I8UmVmPFZUVFJlZ2lvbj4+IG1fdmVjdG9yOwogfTsKIAoraW5saW5lIFJlZjxWVFRSZWdp
b25MaXN0PiBWVFRSZWdpb25MaXN0OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFZUVFJlZ2lvbkxpc3QpOworfQorCitpbmxpbmUgdW5zaWduZWQgVlRUUmVnaW9uTGlzdDo6
bGVuZ3RoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92ZWN0b3Iuc2l6ZSgpOworfQorCitpbmxp
bmUgdm9pZCBWVFRSZWdpb25MaXN0OjpjbGVhcigpCit7CisgICAgbV92ZWN0b3IuY2xlYXIoKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RS
QUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5pZGwKaW5kZXgg
NTM4MWQzOWM2NmYxY2ZjM2QwMjFiMWRjNDBlYzMyODE0MmM3YmNkMS4uNDg1YTkxNWU3ZDdmMDdi
Mzg1OGViMGM3YjE4NWFiYWE5NzhhOTM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRSZWdpb25MaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZUVFJlZ2lvbkxpc3QuaWRsCkBAIC0yNCwxMiArMjQsMTEgQEAKICAqLwogCiBbCi0gICAgTm9J
bnRlcmZhY2VPYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9VklERU9fVFJBQ0ssCiAgICAgSW1wbGVt
ZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKIF0gaW50ZXJmYWNl
IFZUVFJlZ2lvbkxpc3QgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxl
bmd0aDsKICAgICBnZXR0ZXIgVlRUUmVnaW9uIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAg
ICAgVlRUUmVnaW9uIGdldFJlZ2lvbkJ5SWQoRE9NU3RyaW5nIGlkKTsKIH07Ci0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCmluZGV4IGY4MGJjMTBhOGNjOGRlMjgyZDlm
YWYzMTk0NmQ2MWNkZTBjYmM0MzEuLjQ3NzYyYjQxZTVmMTU1MzU3NDEzNjNjYjVlYjg1ZGEwMDI3
M2FlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcApAQCAtODEs
MTAgKzgxLDEwIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgVmlkZW9UcmFjazo6Y29tbWVudGFyeUtl
eXdvcmQoKQogICAgIHJldHVybiBjb21tZW50YXJ5OwogfQogCi1WaWRlb1RyYWNrOjpWaWRlb1Ry
YWNrKFZpZGVvVHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0
ZT4gdHJhY2tQcml2YXRlKQotICAgIDogTWVkaWFUcmFja0Jhc2UoTWVkaWFUcmFja0Jhc2U6OlZp
ZGVvVHJhY2ssIHRyYWNrUHJpdmF0ZS0+aWQoKSwgdHJhY2tQcml2YXRlLT5sYWJlbCgpLCB0cmFj
a1ByaXZhdGUtPmxhbmd1YWdlKCkpCi0gICAgLCBtX3NlbGVjdGVkKHRyYWNrUHJpdmF0ZS0+c2Vs
ZWN0ZWQoKSkKLSAgICAsIG1fY2xpZW50KGNsaWVudCkKK1ZpZGVvVHJhY2s6OlZpZGVvVHJhY2so
VmlkZW9UcmFja0NsaWVudCYgY2xpZW50LCBWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRl
KQorICAgIDogTWVkaWFUcmFja0Jhc2UoTWVkaWFUcmFja0Jhc2U6OlZpZGVvVHJhY2ssIHRyYWNr
UHJpdmF0ZS5pZCgpLCB0cmFja1ByaXZhdGUubGFiZWwoKSwgdHJhY2tQcml2YXRlLmxhbmd1YWdl
KCkpCisgICAgLCBtX3NlbGVjdGVkKHRyYWNrUHJpdmF0ZS5zZWxlY3RlZCgpKQorICAgICwgbV9j
bGllbnQoJmNsaWVudCkKICAgICAsIG1fcHJpdmF0ZSh0cmFja1ByaXZhdGUpCiB7CiAgICAgbV9w
cml2YXRlLT5zZXRDbGllbnQodGhpcyk7CkBAIC05MywxNSArOTMsMTIgQEAgVmlkZW9UcmFjazo6
VmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8VmlkZW9UcmFj
a1ByaXZhdGU+IHQKIAogVmlkZW9UcmFjazo6flZpZGVvVHJhY2soKQogewotICAgIG1fcHJpdmF0
ZS0+c2V0Q2xpZW50KDApOworICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwogfQog
Ci12b2lkIFZpZGVvVHJhY2s6OnNldFByaXZhdGUoUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0
ZT4gdHJhY2tQcml2YXRlKQordm9pZCBWaWRlb1RyYWNrOjpzZXRQcml2YXRlKFZpZGVvVHJhY2tQ
cml2YXRlJiB0cmFja1ByaXZhdGUpCiB7Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7Ci0gICAgQVNT
RVJUKHRyYWNrUHJpdmF0ZSk7Ci0KLSAgICBpZiAobV9wcml2YXRlID09IHRyYWNrUHJpdmF0ZSkK
KyAgICBpZiAobV9wcml2YXRlLnB0cigpID09ICZ0cmFja1ByaXZhdGUpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwpAQCAtMTM5LDQ2ICsxMzYs
NDUgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZXRTZWxlY3RlZChjb25zdCBib29sIHNlbGVjdGVkKQog
ICAgIG1fcHJpdmF0ZS0+c2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOwogCiAgICAgaWYgKG1fY2xpZW50
KQotICAgICAgICBtX2NsaWVudC0+dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCh0aGlzKTsKKyAg
ICAgICAgbV9jbGllbnQtPnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoKnRoaXMpOwogfQogCiBz
aXplX3QgVmlkZW9UcmFjazo6aW5iYW5kVHJhY2tJbmRleCgpCiB7Ci0gICAgQVNTRVJUKG1fcHJp
dmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dHJhY2tJbmRleCgpOwogfQogCiB2b2lkIFZp
ZGVvVHJhY2s6OnNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrUHJpdmF0ZSogdHJhY2tQcml2YXRl
LCBib29sIHNlbGVjdGVkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFj
a1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKKyAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwg
dHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZS5wdHIoKSk7CiAgICAgc2V0U2VsZWN0ZWQoc2VsZWN0
ZWQpOwogfQogCi12b2lkIFZpZGVvVHJhY2s6OmlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0
cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCit2b2lkIFZpZGVvVHJhY2s6Omlk
Q2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJh
Y2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRJZChpZCk7CiB9
CiAKLXZvaWQgVmlkZW9UcmFjazo6bGFiZWxDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNr
UHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkKK3ZvaWQgVmlkZW9UcmFjazo6bGFi
ZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpCiB7Ci0gICAgQVNTRVJUX1VOVVNF
RCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldExhYmVs
KGxhYmVsKTsKIH0KIAotdm9pZCBWaWRlb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2
YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKQordm9p
ZCBWaWRlb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFn
ZSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1f
cHJpdmF0ZSk7CiAgICAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2UpOwogfQogCi12b2lkIFZpZGVvVHJh
Y2s6OndpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlKQordm9pZCBWaWRl
b1RyYWNrOjp3aWxsUmVtb3ZlKCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwg
dHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7Ci0gICAgbWVkaWFFbGVtZW50KCktPnJlbW92ZVZp
ZGVvVHJhY2soKnRoaXMpOworICAgIGF1dG8qIGVsZW1lbnQgPSBtZWRpYUVsZW1lbnQoKTsKKyAg
ICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKyAgICBlbGVtZW50LT5yZW1vdmVWaWRl
b1RyYWNrKCp0aGlzKTsKIH0KIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKIHZvaWQgVmlk
ZW9UcmFjazo6c2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQpCiB7CiAgICAgLy8gMTAu
MSBraW5kLCBvbiBzZXR0aW5nOgpAQCAtMTkzLDcgKzE4OSw3IEBAIHZvaWQgVmlkZW9UcmFjazo6
c2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQpCiAgICAgLy8gMy4gSWYgdGhlIHNvdXJj
ZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhpcyB0cmFjayBpcyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBh
IHRhc2sgdG8gZmlyZSBhIHNpbXBsZQogICAgIC8vIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCBzb3Vy
Y2VCdWZmZXIudmlkZW9UcmFja3MuCiAgICAgaWYgKG1fc291cmNlQnVmZmVyKQotICAgICAgICBt
X3NvdXJjZUJ1ZmZlci0+dmlkZW9UcmFja3MoKS0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOworICAg
ICAgICBtX3NvdXJjZUJ1ZmZlci0+dmlkZW9UcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7
CiAKICAgICAvLyA0LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBj
aGFuZ2UgYXQgdGhlIFZpZGVvVHJhY2tMaXN0IG9iamVjdCByZWZlcmVuY2VkIGJ5CiAgICAgLy8g
dGhlIHZpZGVvVHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KQEAgLTIx
MywxMiArMjA5LDEzIEBAIHZvaWQgVmlkZW9UcmFjazo6c2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWlj
U3RyaW5nJiBsYW5ndWFnZSkKICAgICAvLyAzLiBJZiB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0
ZSBvbiB0aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1ZXVlIGEgdGFzayB0byBmaXJlIGEg
c2ltcGxlCiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHNvdXJjZUJ1ZmZlci52aWRlb1Ry
YWNrcy4KICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVmZmVyLT52
aWRlb1RyYWNrcygpLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CisgICAgICAgIG1fc291cmNlQnVm
ZmVyLT52aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIC8vIDQuIFF1
ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCB0aGUgVmlk
ZW9UcmFja0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdmlkZW9UcmFja3Mg
YXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAgIG1lZGlhRWxlbWVudCgpLT52
aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQg
VmlkZW9UcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WaWRlb1RyYWNrLmgKaW5kZXggYzUyZjliM2IxMmZjNjk2ODhkYTdmZDY3MDMzNzAxZmIxYjg0
ZjMyYy4uNzFhMjU0MGZlZTg5NjIyNDFkNDQ5MTcyNWE4MmUzOTEwOGQzOTcyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDEyICszOSwxMiBA
QCBjbGFzcyBWaWRlb1RyYWNrOwogY2xhc3MgVmlkZW9UcmFja0NsaWVudCB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+VmlkZW9UcmFja0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB2aWRl
b1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayYpID0gMDsKIH07CiAKLWNsYXNz
IFZpZGVvVHJhY2sgZmluYWwgOiBwdWJsaWMgTWVkaWFUcmFja0Jhc2UsIHB1YmxpYyBWaWRlb1Ry
YWNrUHJpdmF0ZUNsaWVudCB7CitjbGFzcyBWaWRlb1RyYWNrIGZpbmFsIDogcHVibGljIE1lZGlh
VHJhY2tCYXNlLCBwcml2YXRlIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFZpZGVvVHJhY2s+IGNyZWF0ZShWaWRlb1RyYWNrQ2xpZW50KiBjbGllbnQs
IFBhc3NSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKKyAgICBzdGF0aWMg
UmVmPFZpZGVvVHJhY2s+IGNyZWF0ZShWaWRlb1RyYWNrQ2xpZW50JiBjbGllbnQsIFZpZGVvVHJh
Y2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBWaWRlb1RyYWNrKGNsaWVudCwgdHJhY2tQcml2YXRlKSk7CiAgICAgfQpAQCAtNTYsNDgg
KzU2LDQ3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzaWduS2V5
d29yZCgpOwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1YnRpdGxlc0tleXdvcmQo
KTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjb21tZW50YXJ5S2V5d29yZCgpOwot
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZGVmYXVsdEtpbmRLZXl3b3JkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gZW1wdHlBdG9tOyB9CiAKICAgICBib29sIHNlbGVjdGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZWxlY3RlZDsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZChjb25zdCBi
b29sKTsKIAotICAgIHZvaWQgY2xlYXJDbGllbnQoKSBvdmVycmlkZSB7IG1fY2xpZW50ID0gMDsg
fQorICAgIHZvaWQgY2xlYXJDbGllbnQoKSBmaW5hbCB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQog
ICAgIFZpZGVvVHJhY2tDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9
CiAKICAgICBzaXplX3QgaW5iYW5kVHJhY2tJbmRleCgpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NP
VVJDRSkKLSAgICB2b2lkIHNldEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNldEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBzZXRMYW5n
dWFnZShjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKICNlbmRpZgogCiAgICAgY29uc3QgTWVk
aWFEZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24oKSBjb25zdDsKIAotICAgIHZvaWQgc2V0UHJpdmF0
ZShQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPik7Ci0KLXByb3RlY3RlZDoKLSAgICBWaWRl
b1RyYWNrKFZpZGVvVHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPiBw
cml2YXRlVHJhY2spOworICAgIHZvaWQgc2V0UHJpdmF0ZShWaWRlb1RyYWNrUHJpdmF0ZSYpOwog
CiBwcml2YXRlOgotICAgIGJvb2wgaXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgVmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50JiwgVmlkZW9UcmFj
a1ByaXZhdGUmKTsKKworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZGVmYXVsdEtpbmRLZXl3b3Jk
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZW1wdHlBdG9tOyB9CisgICAgYm9vbCBpc1ZhbGlkS2lu
ZChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIFZpZGVvVHJhY2tQ
cml2YXRlQ2xpZW50Ci0gICAgdm9pZCBzZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFja1ByaXZhdGUq
LCBib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIHNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrUHJp
dmF0ZSosIGJvb2wpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAotICAg
IHZvaWQgaWRDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBv
dmVycmlkZTsKLSAgICB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3Qg
QXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQ
cml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2ls
bFJlbW92ZShUcmFja1ByaXZhdGVCYXNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBpZENoYW5nZWQo
Y29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYWJlbENoYW5nZWQoY29uc3Qg
QXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRv
bWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAKLSAgICBi
b29sIGVuYWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzZWxlY3RlZCgpOyB9CisgICAg
Ym9vbCBlbmFibGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gc2VsZWN0ZWQoKTsgfQogCiAgICAg
dm9pZCB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIAogICAgIGJvb2wgbV9zZWxlY3RlZDsKICAg
ICBWaWRlb1RyYWNrQ2xpZW50KiBtX2NsaWVudDsKIAotICAgIFJlZlB0cjxWaWRlb1RyYWNrUHJp
dmF0ZT4gbV9wcml2YXRlOworICAgIFJlZjxWaWRlb1RyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oCmluZGV4IDJjMTIzOTVmYTY2MWQxNWJiNTQ1MDg4OTRmYzBhYWNkZDU1Y2U2ZTcuLmIxNTE1
Njk3YjMyMjRhNWZiMDQ5MzYxYjhlMzU5ODQ5OTNmMDMwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgKQEAgLTE3Miw3ICsxNzIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAg
IHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pIG92ZXJy
aWRlOwotICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZp
bGVJY29uTG9hZGVyKikgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXImKSBvdmVycmlkZSB7IH0KIAogICAg
IHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IE5vZGUqKSBvdmVycmlkZSB7IH0KICAgICB2b2lk
IGVsZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUqKSBvdmVycmlkZSB7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9QaW5nTG9hZGVyLmNwcAppbmRleCAwMTg4OTQ2ZTdkOGRmNDI1MmMxZWQ0OTRhZDdhOTkxNjc2
OTExNjhiLi4zYmYzNWIyMzNiMGEyZGM2YTY1ZDQwNGIxMjY0NjZkN2FiMzNlZTAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBQaW5n
TG9hZGVyOjpzZW5kUGluZyhGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcGluZ1VSTCwgY29uc3Qg
VVJMJiBkZXN0aW5hdGkKICAgICBzdGFydFBpbmdMb2FkKGZyYW1lLCByZXF1ZXN0LCBTaG91bGRG
b2xsb3dSZWRpcmVjdHM6Olllcyk7CiB9CiAKLXZvaWQgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlv
blJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBSZWZQdHI8Rm9ybURh
dGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBlIHJlcG9ydFR5cGUpCit2b2lkIFBpbmdM
b2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHJlcG9y
dFVSTCwgUmVmPEZvcm1EYXRhPiYmIHJlcG9ydCwgVmlvbGF0aW9uUmVwb3J0VHlwZSByZXBvcnRU
eXBlKQogewogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHJlcG9ydFVSTCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUGluZ0xvYWRlci5oCmluZGV4IGNmNjU3N2MzMzU2ZWEwNTgxYjUzOTE4OTE5OGZk
ZTg3NjRmYjk5MzcuLmY5N2Y5NTcxYWViYzE5NjhkMTc0MGMxZjY5YTY1YTVmOWMyMmI5NWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaApAQCAtNDksNyArNDksNyBAQCBjbGFzcyBQaW5n
TG9hZGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBsb2FkSW1hZ2UoRnJhbWUmLCBjb25z
dCBVUkwmKTsKICAgICBzdGF0aWMgdm9pZCBzZW5kUGluZyhGcmFtZSYsIGNvbnN0IFVSTCYgcGlu
Z1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCk7Ci0gICAgc3RhdGljIHZvaWQgc2VuZFZp
b2xhdGlvblJlcG9ydChGcmFtZSYsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBSZWZQdHI8Rm9ybURh
dGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBlKTsKKyAgICBzdGF0aWMgdm9pZCBzZW5k
VmlvbGF0aW9uUmVwb3J0KEZyYW1lJiwgY29uc3QgVVJMJiByZXBvcnRVUkwsIFJlZjxGb3JtRGF0
YT4mJiByZXBvcnQsIFZpb2xhdGlvblJlcG9ydFR5cGUpOwogCiBwcml2YXRlOgogICAgIGVudW0g
Y2xhc3MgU2hvdWxkRm9sbG93UmVkaXJlY3RzIHsgTm8sIFllcyB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
Y3BwCmluZGV4IDVjMDI1NDRhNWU3YmQzZjA2ZmIxYWJhYjAxZWUyNmM4YTM0NDZmM2UuLjZjYTk5
YzFmOTZjNDQzOGUzYTU1ODYwMTdiZWM1NWQ3Zjk3MzRjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5j
cHAKQEAgLTQzOCw3ICs0MzgsNyBAQCB2b2lkIENocm9tZTo6cnVuT3BlblBhbmVsKEZyYW1lKiBm
cmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIpCiAgICAgbV9jbGllbnQu
cnVuT3BlblBhbmVsKGZyYW1lLCBmaWxlQ2hvb3Nlcik7CiB9CiAKLXZvaWQgQ2hyb21lOjpsb2Fk
SWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9h
ZGVyKiBsb2FkZXIpCit2b2lkIENocm9tZTo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciYgbG9hZGVyKQogewogICAgIG1fY2xp
ZW50LmxvYWRJY29uRm9yRmlsZXMoZmlsZW5hbWVzLCBsb2FkZXIpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmgKaW5kZXggZjJmMmIwYjFjM2MwYTlmM2EyNzVkMTRmMDJkM2RjMWE4ZWRhNGVhMS4uZjY2MzU5
MjhhZDVkYTdhZGIyMzRlMzI4NGQ0YmVhY2Y4ZmVkMTg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBA
IC0xNTksNyArMTU5LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHJ1bk9wZW5QYW5l
bChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KTsKLSAgICB2b2lkIGxvYWRJY29uRm9y
RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciopOworICAgIHZvaWQg
bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJik7
CiAKICAgICB2b2lkIGRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZp
ZXdwb3J0QXJndW1lbnRzJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmlu
ZGV4IDQ1ZmVjNTk5ODA0ZTQzZTZlN2QxODlhMDhlNmNlYjgwMjI5ZDM2ZmQuLjU5OGU1OWY2ZGEy
MTllMTgzOTE0N2FhODZkODA1MjBjNmJlM2Q1ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaApAQCAtMjc1LDcgKzI3NSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBydW5P
cGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgPSAwOwogICAgIC8vIEFz
eW5jaHJvbm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Igc3BlY2lmaWVkIGZpbGVuYW1l
cy4KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYsIEZpbGVJY29uTG9hZGVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZp
bGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXImKSA9IDA7CiAgICAgICAg
IAogICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgTm9kZSopIHsgfTsKICAg
ICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9kZSopIHsgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IGNi
NzhkMDZhN2VmMTQzZjI2ZWU1NDk2MzliMjQ5NTY1YzQ2YWEwNjguLmY4ZmJmMmQzNjA1NTQxNDBj
MWQ1ZjJlYWQ3M2E4NDBjYWExMWY3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Y3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9j
c3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtNjI1LDggKzYyNSw4IEBAIHZvaWQgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3Rp
dmVWaW9sYXRlZERpcmVjCiAKICAgICBBU1NFUlQoIW1fZnJhbWUgfHwgZWZmZWN0aXZlVmlvbGF0
ZWREaXJlY3RpdmUgPT0gQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXM6OmZyYW1l
QW5jZXN0b3JzKTsKIAotICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGlzPERvY3VtZW50PihtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50KCk7Ci0gICAgRnJhbWUqIGZyYW1lID0g
ZG9jdW1lbnQuZnJhbWUoKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9IGlzPERvY3VtZW50PihtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAgYXV0byogZnJhbWUgPSBk
b2N1bWVudC5mcmFtZSgpOwogICAgIEFTU0VSVCghbV9mcmFtZSB8fCBtX2ZyYW1lID09IGZyYW1l
KTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC02NDYsMTMgKzY0NiwxNCBA
QCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmlu
ZyYgZWZmZWN0aXZlVmlvbGF0ZWREaXJlYwogICAgIFN0cmluZyBvcmlnaW5hbFBvbGljeSA9IHZp
b2xhdGVkRGlyZWN0aXZlTGlzdC5oZWFkZXIoKTsKICAgICBTdHJpbmcgcmVmZXJyZXIgPSBkb2N1
bWVudC5yZWZlcnJlcigpOwogICAgIEFTU0VSVChkb2N1bWVudC5sb2FkZXIoKSk7CisgICAgLy8g
RklYTUU6IElzIGl0IHBvbGljeSB0byBub3QgdXNlIHRoZSBzdGF0dXMgY29kZSBmb3IgSFRUUFMs
IG9yIGlzIHRoYXQgYSBidWc/CiAgICAgdW5zaWduZWQgc2hvcnQgc3RhdHVzQ29kZSA9IGRvY3Vt
ZW50LnVybCgpLnByb3RvY29sSXMoImh0dHAiKSAmJiBkb2N1bWVudC5sb2FkZXIoKSA/IGRvY3Vt
ZW50LmxvYWRlcigpLT5yZXNwb25zZSgpLmh0dHBTdGF0dXNDb2RlKCkgOiAwOwogCiAgICAgU3Ry
aW5nIHNvdXJjZUZpbGU7CiAgICAgaW50IGxpbmVOdW1iZXIgPSAwOwogICAgIGludCBjb2x1bW5O
dW1iZXIgPSAwOwotICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrID0gY3JlYXRlU2Ny
aXB0Q2FsbFN0YWNrKEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCksIDIpOwot
ICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2stPmZpcnN0Tm9uTmF0
aXZlQ2FsbEZyYW1lKCk7CisgICAgYXV0byBzdGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhK
U01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCAyKTsKKyAgICBhdXRvKiBjYWxs
RnJhbWUgPSBzdGFjay0+Zmlyc3ROb25OYXRpdmVDYWxsRnJhbWUoKTsKICAgICBpZiAoY2FsbEZy
YW1lICYmIGNhbGxGcmFtZS0+bGluZU51bWJlcigpKSB7CiAgICAgICAgIHNvdXJjZUZpbGUgPSBz
dHJpcFVSTEZvclVzZUluUmVwb3J0KGRvY3VtZW50LCBVUkwoVVJMKCksIGNhbGxGcmFtZS0+c291
cmNlVVJMKCkpKTsKICAgICAgICAgbGluZU51bWJlciA9IGNhbGxGcmFtZS0+bGluZU51bWJlcigp
OwpAQCAtNjY1LDcgKzY2Niw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRW
aW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAgICAgZG9jdW1l
bnQuZW5xdWV1ZURvY3VtZW50RXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5zZWN1cml0eXBvbGljeXZpb2xhdGlvbkV2ZW50LCBjYW5CdWJibGUs
IGNhbmNlbGFibGUsIGRvY3VtZW50VVJJLCByZWZlcnJlciwgYmxvY2tlZFVSSSwgdmlvbGF0ZWRE
aXJlY3RpdmVUZXh0LCBlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZSwgb3JpZ2luYWxQb2xpY3ks
IHNvdXJjZUZpbGUsIHN0YXR1c0NvZGUsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikpOwogCiAg
ICAgLy8gMi4gU2VuZCB2aW9sYXRpb24gcmVwb3J0IChpZiBhcHBsaWNhYmxlKS4KLSAgICBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgcmVwb3J0VVJJcyA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5yZXBv
cnRVUklzKCk7CisgICAgYXV0byYgcmVwb3J0VVJJcyA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5y
ZXBvcnRVUklzKCk7CiAgICAgaWYgKHJlcG9ydFVSSXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CiAKQEAgLTY5MywxMCArNjk0LDEwIEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5Ojpy
ZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAgICAg
ICAgIGNzcFJlcG9ydC0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwoImNvbHVtbi1udW1iZXIiKSwg
Y29sdW1uTnVtYmVyKTsKICAgICB9CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXBv
cnRPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGF1dG8gcmVwb3J0T2Jq
ZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKICAgICByZXBvcnRPYmplY3QtPnNldE9i
amVjdChBU0NJSUxpdGVyYWwoImNzcC1yZXBvcnQiKSwgV1RGTW92ZShjc3BSZXBvcnQpKTsKIAot
ICAgIFJlZlB0cjxGb3JtRGF0YT4gcmVwb3J0ID0gRm9ybURhdGE6OmNyZWF0ZShyZXBvcnRPYmpl
Y3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7CisgICAgYXV0byByZXBvcnQgPSBGb3JtRGF0YTo6
Y3JlYXRlKHJlcG9ydE9iamVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgpKTsKICAgICBmb3IgKGNv
bnN0IGF1dG8mIHVybCA6IHJlcG9ydFVSSXMpCiAgICAgICAgIFBpbmdMb2FkZXI6OnNlbmRWaW9s
YXRpb25SZXBvcnQoKmZyYW1lLCBpczxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
KSA/IGRvY3VtZW50LmNvbXBsZXRlVVJMKHVybCkgOiBkb2N1bWVudC5jb21wbGV0ZVVSTCh1cmws
IGJsb2NrZWRVUkwpLCByZXBvcnQuY29weVJlZigpLCBWaW9sYXRpb25SZXBvcnRUeXBlOjpDb250
ZW50U2VjdXJpdHlQb2xpY3kpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVu
dC5tbQppbmRleCBiMTBmMmU5ZWI3OGQ1OWUwMjZiYmRiNGRmZDcwZTRkYTUzYjlhNDcwLi4xNGRj
YmE0NzcwNmQ3ZWRlMzlmYzMwZmM4MTVmZDkwYjY4YTJlZjc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Np
b25Nb2RlbE1lZGlhRWxlbWVudC5tbQpAQCAtMjMzLDE3ICsyMzMsOCBAQCB2b2lkIFdlYlBsYXli
YWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2
NF90IHNlbGVjdAogICAgIGlmICghbV9tZWRpYUVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIEFTU0VSVChzZWxlY3RlZEF1ZGlvSW5kZXggPCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVf
dD46Om1heCgpKTsKLSAgICBBdWRpb1RyYWNrKiBzZWxlY3RlZEF1ZGlvVHJhY2sgPSBudWxscHRy
OwotCi0gICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IG1fYXVkaW9UcmFja3NGb3JN
ZW51LnNpemUoKTsgKytpbmRleCkgewotICAgICAgICBhdXRvJiBhdWRpb1RyYWNrID0gbV9hdWRp
b1RyYWNrc0Zvck1lbnVbaW5kZXhdOwotICAgICAgICBhdWRpb1RyYWNrLT5zZXRFbmFibGVkKGlu
ZGV4ID09IHN0YXRpY19jYXN0PHNpemVfdD4oc2VsZWN0ZWRBdWRpb0luZGV4KSk7Ci0gICAgICAg
IGlmIChhdWRpb1RyYWNrLT5lbmFibGVkKCkpCi0gICAgICAgICAgICBzZWxlY3RlZEF1ZGlvVHJh
Y2sgPSBhdWRpb1RyYWNrLmdldCgpOwotICAgIH0KLQotICAgIG1fbWVkaWFFbGVtZW50LT5hdWRp
b1RyYWNrRW5hYmxlZENoYW5nZWQoc2VsZWN0ZWRBdWRpb1RyYWNrKTsKKyAgICBmb3IgKHNpemVf
dCBpID0gMCwgc2l6ZSA9IG1fYXVkaW9UcmFja3NGb3JNZW51LnNpemUoKTsgaSA8IHNpemU7ICsr
aSkKKyAgICAgICAgbV9hdWRpb1RyYWNrc0Zvck1lbnVbaV0tPnNldEVuYWJsZWQoaSA9PSBzZWxl
Y3RlZEF1ZGlvSW5kZXgpOwogfQogCiB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFF
bGVtZW50OjpzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCkBAIC0yNTEs
OSArMjQyLDcgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6c2Vs
ZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGUKICAgICBpZiAoIW1fbWVkaWFFbGVt
ZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoaW5kZXggPCBzdGQ6Om51bWVyaWNf
bGltaXRzPHNpemVfdD46Om1heCgpKTsKLSAgICBUZXh0VHJhY2sqIHRleHRUcmFjayA9IG51bGxw
dHI7Ci0KKyAgICBUZXh0VHJhY2sqIHRleHRUcmFjazsKICAgICBpZiAoaW5kZXggPCBtX2xlZ2li
bGVUcmFja3NGb3JNZW51LnNpemUoKSkKICAgICAgICAgdGV4dFRyYWNrID0gbV9sZWdpYmxlVHJh
Y2tzRm9yTWVudVtzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KV0uZ2V0KCk7CiAgICAgZWxzZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1By
aXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2
YXRlLmgKaW5kZXggM2JjOTdlZDcwMmFiMDRhZGJlMTQxNWFkZjliZTM1Mjk4ZGZhZGRkYi4uNWVi
YTRlZWM0NTcwOTk0MWMxNTEwZDQxZDhkZWYwZGIyYzQ1YjM0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCkBAIC0yMyw4
ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgQXVkaW9UcmFja1ByaXZh
dGVfaAotI2RlZmluZSBBdWRpb1RyYWNrUHJpdmF0ZV9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIlRyYWNrUHJpdmF0ZUJhc2UuaCIKIApAQCAtMzYsNyArMzUsNyBAQCBjbGFzcyBBdWRpb1Ry
YWNrUHJpdmF0ZTsKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJh
Y2tQcml2YXRlQmFzZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIGVuYWJsZWRD
aGFuZ2VkKEF1ZGlvVHJhY2tQcml2YXRlKiwgYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBl
bmFibGVkQ2hhbmdlZChib29sKSA9IDA7CiB9OwogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZSA6
IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlIHsKQEAgLTU1LDI2ICs1NCwyMiBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CiAgICAgICAg
IGlmIChtX2NsaWVudCkKLSAgICAgICAgICAgIG1fY2xpZW50LT5lbmFibGVkQ2hhbmdlZCh0aGlz
LCBlbmFibGVkKTsKLSAgICB9OwotICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9lbmFibGVkOyB9CisgICAgICAgICAgICBtX2NsaWVudC0+ZW5hYmxlZENoYW5nZWQo
ZW5hYmxlZCk7CisgICAgfQorCisgICAgYm9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9l
bmFibGVkOyB9CiAKICAgICBlbnVtIEtpbmQgeyBBbHRlcm5hdGl2ZSwgRGVzY3JpcHRpb24sIE1h
aW4sIE1haW5EZXNjLCBUcmFuc2xhdGlvbiwgQ29tbWVudGFyeSwgTm9uZSB9OwogICAgIHZpcnR1
YWwgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gTm9uZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAg
QXVkaW9UcmFja1ByaXZhdGUoKQotICAgICAgICA6IG1fY2xpZW50KDApCi0gICAgICAgICwgbV9l
bmFibGVkKGZhbHNlKQotICAgIHsKLSAgICB9CisgICAgQXVkaW9UcmFja1ByaXZhdGUoKSA9IGRl
ZmF1bHQ7CiAKIHByaXZhdGU6Ci0gICAgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQqIG1fY2xpZW50
OwotICAgIGJvb2wgbV9lbmFibGVkOworICAgIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50KiBtX2Ns
aWVudCB7IG51bGxwdHIgfTsKKyAgICBib29sIG1fZW5hYmxlZCB7IGZhbHNlIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlQ2xpZW50LmgKaW5kZXggNzYwZjY3OWQxMzUwYTcxOTAwNDQ3MGE3Y2I3YTc0MTdhOGJjNDkx
NS4uMjEwMmZlM2ViNWM0YjVjYzNjYWQwZTBiYjgwZDhjODk2ZjJiZDk5NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRU
cmFja1ByaXZhdGVDbGllbnQuaApAQCAtNDMsOSArNDMsNyBAQCBjbGFzcyBJU09XZWJWVFRDdWU7
CiAKIGNsYXNzIEdlbmVyaWNDdWVEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8R2VuZXJpY0N1ZURh
dGE+IHsKIHB1YmxpYzoKLQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPiBj
cmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgR2VuZXJpY0N1ZURhdGEoKSk7IH0KLSAgICB2
aXJ0dWFsIH5HZW5lcmljQ3VlRGF0YSgpIHsgfQorICAgIHN0YXRpYyBSZWY8R2VuZXJpY0N1ZURh
dGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR2VuZXJpY0N1ZURhdGEpOyB9CiAK
ICAgICBNZWRpYVRpbWUgc3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFRpbWU7IH0K
ICAgICB2b2lkIHNldFN0YXJ0VGltZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0VGltZSkgeyBtX3N0
YXJ0VGltZSA9IHN0YXJ0VGltZTsgfQpAQCAtNjgsMTIgKzY2LDcgQEAgcHVibGljOgogICAgIGRv
dWJsZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgdm9pZCBzZXRTaXplKGRv
dWJsZSBzaXplKSB7IG1fc2l6ZSA9IHNpemU7IH0KIAotICAgIGVudW0gQWxpZ25tZW50IHsKLSAg
ICAgICAgTm9uZSwKLSAgICAgICAgU3RhcnQsCi0gICAgICAgIE1pZGRsZSwKLSAgICAgICAgRW5k
Ci0gICAgfTsKKyAgICBlbnVtIEFsaWdubWVudCB7IE5vbmUsIFN0YXJ0LCBNaWRkbGUsIEVuZCB9
OwogICAgIEFsaWdubWVudCBhbGlnbigpIGNvbnN0IHsgcmV0dXJuIG1fYWxpZ247IH0KICAgICB2
b2lkIHNldEFsaWduKEFsaWdubWVudCBhbGlnbikgeyBtX2FsaWduID0gYWxpZ247IH0KIApAQCAt
OTUsNDMgKzg4LDMwIEBAIHB1YmxpYzoKICAgICBjb25zdCBDb2xvciYgaGlnaGxpZ2h0Q29sb3Io
KSBjb25zdCB7IHJldHVybiBtX2hpZ2hsaWdodENvbG9yOyB9CiAgICAgdm9pZCBzZXRIaWdobGln
aHRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpIHsgbV9oaWdobGlnaHRDb2xvciA9IGNvbG9yOyB9
CiAKLSAgICBlbnVtIFN0YXR1cyB7Ci0gICAgICAgIFVuaW5pdGlhbGl6ZWQsCi0gICAgICAgIFBh
cnRpYWwsCi0gICAgICAgIENvbXBsZXRlLAotICAgIH07CisgICAgZW51bSBTdGF0dXMgeyBVbmlu
aXRpYWxpemVkLCBQYXJ0aWFsLCBDb21wbGV0ZSB9OwogICAgIFN0YXR1cyBzdGF0dXMoKSB7IHJl
dHVybiBtX3N0YXR1czsgfQogICAgIHZvaWQgc2V0U3RhdHVzKFN0YXR1cyBzdGF0dXMpIHsgbV9z
dGF0dXMgPSBzdGF0dXM7IH0KIAogICAgIGJvb2wgZG9lc0V4dGVuZEN1ZURhdGEoY29uc3QgR2Vu
ZXJpY0N1ZURhdGEmKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBHZW5lcmljQ3VlRGF0YSgpCi0g
ICAgICAgIDogbV9saW5lKC0xKQotICAgICAgICAsIG1fcG9zaXRpb24oLTEpCi0gICAgICAgICwg
bV9zaXplKC0xKQotICAgICAgICAsIG1fYWxpZ24oTm9uZSkKLSAgICAgICAgLCBtX2Jhc2VGb250
U2l6ZSgwKQotICAgICAgICAsIG1fcmVsYXRpdmVGb250U2l6ZSgwKQotICAgICAgICAsIG1fc3Rh
dHVzKFVuaW5pdGlhbGl6ZWQpCi0gICAgewotICAgIH0KKyAgICBHZW5lcmljQ3VlRGF0YSgpID0g
ZGVmYXVsdDsKIAogICAgIE1lZGlhVGltZSBtX3N0YXJ0VGltZTsKICAgICBNZWRpYVRpbWUgbV9l
bmRUaW1lOwogICAgIFN0cmluZyBtX2lkOwogICAgIFN0cmluZyBtX2NvbnRlbnQ7Ci0gICAgZG91
YmxlIG1fbGluZTsKLSAgICBkb3VibGUgbV9wb3NpdGlvbjsKLSAgICBkb3VibGUgbV9zaXplOwot
ICAgIEFsaWdubWVudCBtX2FsaWduOworICAgIGRvdWJsZSBtX2xpbmUgeyAtMSB9OworICAgIGRv
dWJsZSBtX3Bvc2l0aW9uIHsgLTEgfTsKKyAgICBkb3VibGUgbV9zaXplIHsgLTEgfTsKKyAgICBB
bGlnbm1lbnQgbV9hbGlnbiB7IE5vbmUgfTsKICAgICBTdHJpbmcgbV9mb250TmFtZTsKLSAgICBk
b3VibGUgbV9iYXNlRm9udFNpemU7Ci0gICAgZG91YmxlIG1fcmVsYXRpdmVGb250U2l6ZTsKKyAg
ICBkb3VibGUgbV9iYXNlRm9udFNpemUgeyAwIH07CisgICAgZG91YmxlIG1fcmVsYXRpdmVGb250
U2l6ZSB7IDAgfTsKICAgICBDb2xvciBtX2ZvcmVncm91bmRDb2xvcjsKICAgICBDb2xvciBtX2Jh
Y2tncm91bmRDb2xvcjsKICAgICBDb2xvciBtX2hpZ2hsaWdodENvbG9yOwotICAgIFN0YXR1cyBt
X3N0YXR1czsKKyAgICBTdGF0dXMgbV9zdGF0dXMgeyBVbmluaXRpYWxpemVkIH07CiB9OwogCiBp
bmxpbmUgYm9vbCBHZW5lcmljQ3VlRGF0YTo6ZG9lc0V4dGVuZEN1ZURhdGEoY29uc3QgR2VuZXJp
Y0N1ZURhdGEmIG90aGVyKSBjb25zdApAQCAtMTY4LDIxICsxNDgsMjEgQEAgY2xhc3MgSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50KCkgeyB9
CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwg
Y29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQq
LCB1bnNpZ25lZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlh
VGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWduZWQp
ID0gMDsKIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQotICAgIHZpcnR1YWwgdm9pZCBhZGRE
YXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBj
b25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNl
bnRhdGlvbj4sIGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRGF0
YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50
YXRpb24+KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZURhdGFDdWUoSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5k
LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1l
ZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+JiYsIGNv
bnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3Jt
UmVwcmVzZW50YXRpb24mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZURhdGFDdWUoY29u
c3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0
Zm9ybVJlcHJlc2VudGF0aW9uJikgPSAwOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRk
R2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgUGFzc1JlZlB0cjxHZW5lcmljQ3Vl
RGF0YT4pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0
VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJl
bW92ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGRHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAw
OwogCi0gICAgdmlydHVhbCB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlKiwgU3RyaW5nJiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25z
dCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBJU09XZWJWVFRD
dWUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihTdHJpbmcm
JikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZU
VEN1ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUmKSA9IDA7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKaW5kZXggMDhlNjJjMzQ4NjJh
ZGQ5NGZhMDg0YjQyNWM1ODdhYTRmYmQzNjRiZC4uNDNkMDY3NDBmNTVlZDA4NDVlNWRmMzc3Mzg2
YjVmZTc4MmE5NDdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAxMy0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI4LDIxICsyOCwxNyBAQAogICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCi0jaWZuZGVmIFNvdXJjZUJ1ZmZlclBy
aXZhdGVfaAotI2RlZmluZSBTb3VyY2VCdWZmZXJQcml2YXRlX2gKKworI3ByYWdtYSBvbmNlCiAK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKLSNp
bmNsdWRlICJUaW1lUmFuZ2VzLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFT
YW1wbGU7CiBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OwotY2xhc3MgVGltZVJhbmdl
czsKIAogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFNvdXJj
ZUJ1ZmZlclByaXZhdGU+IHsKIHB1YmxpYzoKQEAgLTU4LDE3ICs1NCwxNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRl
KSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZmx1c2goQXRvbWljU3RyaW5nKSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiwgQXRvbWlj
U3RyaW5nKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21p
Y1N0cmluZykgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2goY29uc3Qg
QXRvbWljU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGVucXVldWVTYW1wbGUoUmVmPE1l
ZGlhU2FtcGxlPiYmLCBjb25zdCBBdG9taWNTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
aXNSZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYpIHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgc3RvcEFza2luZ0Zvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykg
eyB9CisgICAgdmlydHVhbCB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9t
aWNTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9y
TW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgeyB9CiAKLSAgICB2aXJ0dWFsIFZlY3Rv
cjxTdHJpbmc+IGVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoQXRvbWljU3RyaW5nKSB7IHJldHVy
biB7fTsgfQorICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gZW5xdWV1ZWRTYW1wbGVzRm9yVHJh
Y2tJRChjb25zdCBBdG9taWNTdHJpbmcmKSB7IHJldHVybiB7IH07IH0KIH07CiAKIH0KIAogI2Vu
ZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaAppbmRleCAyOTRhZDY1ZjQ2MzM1ZGYw
NjkxNTNmNGFjYjM5NzAzYmYxYzlmMGYyLi4zM2QyYWQ5MzMwNTk2OWUxNTk3ODc5NmFmYTJjNzYy
ODQyOWNiMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oCkBAIC0zMiwxMiArMzIsMTEgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlOwogY2xh
c3MgQXVkaW9UcmFja1ByaXZhdGU7Ci1jbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIElu
YmFuZFRleHRUcmFja1ByaXZhdGU7CiBjbGFzcyBNZWRpYVNhbXBsZTsKIGNsYXNzIE1lZGlhRGVz
Y3JpcHRpb247CitjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIAogY2xhc3MgU291cmNlQnVmZmVy
UHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6CkBAIC02NCwyMyArNjMsMTkgQEAgcHVibGljOgogICAg
ICAgICB9OwogICAgICAgICBWZWN0b3I8VGV4dFRyYWNrSW5mb3JtYXRpb24+IHRleHRUcmFja3M7
CiAgICAgfTsKLSAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJ
bml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IEluaXRpYWxp
emF0aW9uU2VnbWVudCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVTYW1wbGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIE1lZGlhU2FtcGxlJikgPSAw
OwotICAgIHZpcnR1YWwgYm9vbCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oY29uc3QgU291
cmNlQnVmZmVyUHJpdmF0ZSopIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgc291cmNlQnVm
ZmVyUHJpdmF0ZUhhc1ZpZGVvKGNvbnN0IFNvdXJjZUJ1ZmZlclByaXZhdGUqKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6
YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUm
KSA9IDA7CisgICAgdmlydHVhbCBib29sIHNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCkg
Y29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNv
bWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBdG9taWNTdHJpbmcg
dHJhY2tJRCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVj
b21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpID0gMDsK
IAotICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVG
b3JNZWRpYVRpbWUoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgdGltZSwg
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJikgeyByZXR1cm4gdGltZTsgfQotICAg
IHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGltZShTb3VyY2VCdWZmZXJQ
cml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJikgeyB9OworICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNv
dXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1l
JiB0aW1lLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmKSB7IHJldHVybiB0aW1l
OyB9CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKGNvbnN0
IE1lZGlhVGltZSYpIHsgfTsKIAotICAgIGVudW0gQXBwZW5kUmVzdWx0IHsKLSAgICAgICAgQXBw
ZW5kU3VjY2VlZGVkLAotICAgICAgICBSZWFkU3RyZWFtRmFpbGVkLAotICAgICAgICBQYXJzaW5n
RmFpbGVkLAotICAgIH07Ci0gICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBl
bmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXBwZW5kUmVzdWx0KSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3Io
U291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvY0NvZGUpID0gMDsKKyAgICBlbnVtIEFwcGVu
ZFJlc3VsdCB7IEFwcGVuZFN1Y2NlZWRlZCwgUmVhZFN0cmVhbUZhaWxlZCwgUGFyc2luZ0ZhaWxl
ZCB9OworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUo
QXBwZW5kUmVzdWx0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoaW50IGVycm9yQ29kZSkgPSAwOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFz
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5o
CmluZGV4IDczMWFhOGQ5MzZhNWFhZWEwZDFjMDNhYTY4YTJhYzZiMmIyYjllNjQuLmE1NDcwNTJi
YTFmZTgyZDg3OWZmZGUzOTQ3Mjk1MzkzOGU5MGE4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgKQEAgLTI1LDM0ICsyNSwy
OSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFRyYWNrUHJpdmF0ZUJhc2VfaAot
I2RlZmluZSBUcmFja1ByaXZhdGVCYXNlX2gKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQogCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTWVk
aWFUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAotI2lmIEVO
QUJMRShWSURFT19UUkFDSykKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBUcmFja1By
aXZhdGVCYXNlOwotCiBjbGFzcyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5UcmFja1ByaXZhdGVCYXNlQ2xpZW50KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lk
IGlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0
b21pY1N0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKFRyYWNr
UHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHdpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaWRD
aGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGFiZWxD
aGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGFuZ3Vh
Z2VDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2ls
bFJlbW92ZSgpID0gMDsKIH07CiAKIGNsYXNzIFRyYWNrUHJpdmF0ZUJhc2UgOiBwdWJsaWMgUmVm
Q291bnRlZDxUcmFja1ByaXZhdGVCYXNlPiB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVHJh
Y2tQcml2YXRlQmFzZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFRyYWNrUHJpdmF0ZUJhc2UpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIHZpcnR1YWwgflRyYWNrUHJpdmF0ZUJhc2UoKSB7IH0KKyAgICB2aXJ0
dWFsIH5UcmFja1ByaXZhdGVCYXNlKCkgPSBkZWZhdWx0OwogCiAgICAgdmlydHVhbCBUcmFja1By
aXZhdGVCYXNlQ2xpZW50KiBjbGllbnQoKSBjb25zdCA9IDA7CiAKQEAgLTY2LDE1ICs2MSwxNCBA
QCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCB3aWxsQmVSZW1vdmVkKCkKICAgICB7Ci0gICAgICAg
IGlmIChUcmFja1ByaXZhdGVCYXNlQ2xpZW50KiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAg
ICAgICAgICAgIGNsaWVudC0+d2lsbFJlbW92ZSh0aGlzKTsKKyAgICAgICAgaWYgKGF1dG8qIGNs
aWVudCA9IHRoaXMtPmNsaWVudCgpKQorICAgICAgICAgICAgY2xpZW50LT53aWxsUmVtb3ZlKCk7
CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgVHJhY2tQcml2YXRlQmFzZSgpIHsgfQorICAgIFRy
YWNrUHJpdmF0ZUJhc2UoKSA9IGRlZmF1bHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFja1ByaXZhdGVBVkYuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1RyYWNrUHJpdmF0ZUFWRi5o
CmluZGV4IDEzMWZkNTFiNGMxNjkzNDA4YjRmOGE0YjU5NmViMjZmYmQ2ZDI5NmIuLjE2ZjU3ZmFh
ODZmNDA1OWE4YTI3ZTRhOTMyMTlkODdjYmM0NjA2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1RyYWNrUHJpdmF0ZUFWRi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRp
b1RyYWNrUHJpdmF0ZUFWRi5oCkBAIC0zNSw3ICszNSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlQVZGIDogcHVibGljIEF1ZGlvVHJhY2tQcml2YXRlIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1RyYWNrUHJpdmF0ZUFWRikKIHB1YmxpYzoK
LQogICAgIHZpcnR1YWwgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gbV9raW5kOyB9CiAgICAg
dmlydHVhbCBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAgICAgdmly
dHVhbCBBdG9taWNTdHJpbmcgbGFiZWwoKSBjb25zdCB7IHJldHVybiBtX2xhYmVsOyB9CkBAIC00
NCw5ICs0Myw5IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0S2luZChLaW5k
IGtpbmQpIHsgbV9raW5kID0ga2luZDsgfQotICAgIHZvaWQgc2V0SWQoQXRvbWljU3RyaW5nIG5l
d0lkKSB7IG1faWQgPSBuZXdJZDsgfQotICAgIHZvaWQgc2V0TGFiZWwoQXRvbWljU3RyaW5nIGxh
YmVsKSB7IG1fbGFiZWwgPSBsYWJlbDsgfQotICAgIHZvaWQgc2V0TGFuZ3VhZ2UoQXRvbWljU3Ry
aW5nIGxhbmd1YWdlKSB7IG1fbGFuZ3VhZ2UgPSBsYW5ndWFnZTsgfQorICAgIHZvaWQgc2V0SWQo
Y29uc3QgQXRvbWljU3RyaW5nJiBuZXdJZCkgeyBtX2lkID0gbmV3SWQ7IH0KKyAgICB2b2lkIHNl
dExhYmVsKGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpIHsgbV9sYWJlbCA9IGxhYmVsOyB9Cisg
ICAgdm9pZCBzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKSB7IG1fbGFu
Z3VhZ2UgPSBsYW5ndWFnZTsgfQogICAgIHZvaWQgc2V0VHJhY2tJbmRleChpbnQgaW5kZXgpIHsg
bV9pbmRleCA9IGluZGV4OyB9CiAKICAgICBLaW5kIG1fa2luZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRNZXRhZGF0YVRl
eHRUcmFja1ByaXZhdGVBVkYuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKaW5kZXgg
OWM2Y2E4N2IwYzBmOTAwNjcxMTdmNDQyZDNlNjZkOTQxMzNhZjE0MC4uNmQyYzkxOWExMTc4MzYy
NjViZDYzMzkyZTFiMmIzYzlhMWU3MzdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0
ZUFWRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKQEAgLTU0LDYgKzU0LDcg
QEAgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjp+SW5iYW5kTWV0YWRhdGFUZXh0
VHJhY2tQcml2YXRlQVZGKCkKIH0KIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQorCiB2b2lk
IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6YWRkRGF0YUN1ZShjb25zdCBNZWRp
YVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVk
UGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcHJwQ3VlRGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKQog
ewogICAgIEFTU0VSVChjdWVGb3JtYXQoKSA9PSBEYXRhKTsKQEAgLTY2LDcgKzY3LDcgQEAgdm9p
ZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OmFkZERhdGFDdWUoY29uc3QgTWVk
aWFUaW1lJiBzdGFydCwgY29uc3QKICAgICBtX2N1cnJlbnRDdWVTdGFydFRpbWUgPSBzdGFydDsK
ICAgICBpZiAoZW5kLmlzUG9zaXRpdmVJbmZpbml0ZSgpKQogICAgICAgICBtX2luY29tcGxldGVD
dWVzLmFwcGVuZChJbmNvbXBsZXRlTWV0YURhdGFDdWUgeyBjdWVEYXRhLmdldCgpLCBzdGFydCB9
KTsKLSAgICBjbGllbnQoKS0+YWRkRGF0YUN1ZSh0aGlzLCBzdGFydCwgZW5kLCBjdWVEYXRhLCB0
eXBlKTsKKyAgICBjbGllbnQoKS0+YWRkRGF0YUN1ZShzdGFydCwgZW5kLCBjdWVEYXRhLnJlbGVh
c2VOb25OdWxsKCksIHR5cGUpOwogfQogCiB2b2lkIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJp
dmF0ZUFWRjo6dXBkYXRlUGVuZGluZ0N1ZUVuZFRpbWVzKGNvbnN0IE1lZGlhVGltZSYgdGltZSkK
QEAgLTc3LDcgKzc4LDcgQEAgdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6
OnVwZGF0ZVBlbmRpbmdDdWVFbmRUaW1lcyhjb25zdCBNZWRpYVRpbWUKICAgICAgICAgaWYgKGNs
aWVudCgpKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIHBhcnRpYWxDdWUgOiBtX2luY29tcGxl
dGVDdWVzKSB7CiAgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kTWV0YWRhdGFUZXh0
VHJhY2tQcml2YXRlQVZGOjp1cGRhdGVQZW5kaW5nQ3VlRW5kVGltZXMoJXApIC0gdXBkYXRpbmcg
Y3VlOiBzdGFydD0lcywgZW5kPSVzIiwgdGhpcywgdG9TdHJpbmcocGFydGlhbEN1ZS5zdGFydFRp
bWUpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAg
ICAgICAgICAgIGNsaWVudCgpLT51cGRhdGVEYXRhQ3VlKHRoaXMsIHBhcnRpYWxDdWUuc3RhcnRU
aW1lLCB0aW1lLCBwYXJ0aWFsQ3VlLmN1ZURhdGEpOworICAgICAgICAgICAgICAgIGNsaWVudCgp
LT51cGRhdGVEYXRhQ3VlKHBhcnRpYWxDdWUuc3RhcnRUaW1lLCB0aW1lLCAqcGFydGlhbEN1ZS5j
dWVEYXRhKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZQpAQCAtODYsNiAr
ODcsNyBAQCB2b2lkIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6dXBkYXRlUGVu
ZGluZ0N1ZUVuZFRpbWVzKGNvbnN0IE1lZGlhVGltZQogICAgIG1faW5jb21wbGV0ZUN1ZXMucmVz
aXplKDApOwogICAgIG1fY3VycmVudEN1ZVN0YXJ0VGltZSA9IE1lZGlhVGltZTo6emVyb1RpbWUo
KTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZG
OjpmbHVzaFBhcnRpYWxDdWVzKCkKQEAgLTk1LDcgKzk3LDcgQEAgdm9pZCBJbmJhbmRNZXRhZGF0
YVRleHRUcmFja1ByaXZhdGVBVkY6OmZsdXNoUGFydGlhbEN1ZXMoKQogCiAgICAgaWYgKGNsaWVu
dCgpKSB7CiAgICAgICAgIGZvciAoYXV0byYgcGFydGlhbEN1ZSA6IG1faW5jb21wbGV0ZUN1ZXMp
Ci0gICAgICAgICAgICBjbGllbnQoKS0+cmVtb3ZlRGF0YUN1ZSh0aGlzLCBwYXJ0aWFsQ3VlLnN0
YXJ0VGltZSwgTWVkaWFUaW1lOjpwb3NpdGl2ZUluZmluaXRlVGltZSgpLCBwYXJ0aWFsQ3VlLmN1
ZURhdGEpOworICAgICAgICAgICAgY2xpZW50KCktPnJlbW92ZURhdGFDdWUocGFydGlhbEN1ZS5z
dGFydFRpbWUsIE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKSwgKnBhcnRpYWxDdWUu
Y3VlRGF0YSk7CiAgICAgfQogCiAgICAgbV9pbmNvbXBsZXRlQ3Vlcy5yZXNpemUoMCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKaW5kZXggM2I3
YmRhODY2ZDJlNjBkOTMyZWI4ZTYwOTZlZjhhOTMzMzdjNjZjMC4uZWU0N2Y3N2ViZjRkNzVjODkw
M2I4NmU3NTM2N2JiMTkwZmI5YWMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcApAQCAtMzIzLDMzICszMjMsMzMgQEAgdm9pZCBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQXR0cmlidXRlZFN0cmluZ3MoQ0ZBcnJheVJlZiBh
dHRyaWJ1dGVkU3QKIHsKICAgICBMT0coTWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZG
Ojpwcm9jZXNzQ3VlIC0gJWxpIGN1ZXMgYXQgdGltZSAlc1xuIiwgYXR0cmlidXRlZFN0cmluZ3Mg
PyBDRkFycmF5R2V0Q291bnQoYXR0cmlidXRlZFN0cmluZ3MpIDogMCwgdG9TdHJpbmcodGltZSku
dXRmOCgpLmRhdGEoKSk7CiAKLSAgICBWZWN0b3I8UmVmUHRyPEdlbmVyaWNDdWVEYXRhPj4gYXJy
aXZpbmdDdWVzOworICAgIFZlY3RvcjxSZWY8R2VuZXJpY0N1ZURhdGE+PiBhcnJpdmluZ0N1ZXM7
CiAgICAgaWYgKGF0dHJpYnV0ZWRTdHJpbmdzKSB7CiAgICAgICAgIENGSW5kZXggY291bnQgPSBD
RkFycmF5R2V0Q291bnQoYXR0cmlidXRlZFN0cmluZ3MpOwogICAgICAgICBmb3IgKENGSW5kZXgg
aSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAgICAgICAgICAgICBDRkF0dHJpYnV0ZWRTdHJpbmdS
ZWYgYXR0cmlidXRlZFN0cmluZyA9IHN0YXRpY19jYXN0PENGQXR0cmlidXRlZFN0cmluZ1JlZj4o
Q0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRyaWJ1dGVkU3RyaW5ncywgaSkpOwotICAgICAgICAg
ICAgCisKICAgICAgICAgICAgIGlmICghYXR0cmlidXRlZFN0cmluZyB8fCAhQ0ZBdHRyaWJ1dGVk
U3RyaW5nR2V0TGVuZ3RoKGF0dHJpYnV0ZWRTdHJpbmcpKQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBSZWZQdHI8R2VuZXJpY0N1ZURhdGE+IGN1
ZURhdGEgPSBHZW5lcmljQ3VlRGF0YTo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICBwcm9jZXNzQ3Vl
QXR0cmlidXRlcyhhdHRyaWJ1dGVkU3RyaW5nLCAqY3VlRGF0YS5nZXQoKSk7CisKKyAgICAgICAg
ICAgIGF1dG8gY3VlRGF0YSA9IEdlbmVyaWNDdWVEYXRhOjpjcmVhdGUoKTsKKyAgICAgICAgICAg
IHByb2Nlc3NDdWVBdHRyaWJ1dGVzKGF0dHJpYnV0ZWRTdHJpbmcsIGN1ZURhdGEuZ2V0KCkpOwog
ICAgICAgICAgICAgaWYgKCFjdWVEYXRhLT5jb250ZW50KCkubGVuZ3RoKCkpCiAgICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGFycml2aW5nQ3Vlcy5h
cHBlbmQoY3VlRGF0YSk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgY3VlRGF0YS0+c2V0
U3RhcnRUaW1lKHRpbWUpOwogICAgICAgICAgICAgY3VlRGF0YS0+c2V0RW5kVGltZShNZWRpYVRp
bWU6OnBvc2l0aXZlSW5maW5pdGVUaW1lKCkpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAg
IC8vIEFWRm91bmRhdGlvbiBjdWUgInBvc2l0aW9uIiBpcyB0byB0aGUgY2VudGVyIG9mIHRoZSB0
ZXh0IHNvIGFkanVzdCByZWxhdGl2ZSB0byB0aGUgZWRnZSBiZWNhdXNlIHdlIHdpbGwgdXNlIGl0
IHRvCiAgICAgICAgICAgICAvLyBzZXQgQ1NTICJsZWZ0Ii4KICAgICAgICAgICAgIGlmIChjdWVE
YXRhLT5wb3NpdGlvbigpID49IDAgJiYgY3VlRGF0YS0+c2l6ZSgpID4gMCkKICAgICAgICAgICAg
ICAgICBjdWVEYXRhLT5zZXRQb3NpdGlvbihjdWVEYXRhLT5wb3NpdGlvbigpIC0gY3VlRGF0YS0+
c2l6ZSgpIC8gMik7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSglcCkgLSBjb25zaWRlcmluZyBjdWUg
KFwiJXNcIikgZm9yIHRpbWUgPSAlcywgcG9zaXRpb24gPSAgJS4yZiwgbGluZSA9ICAlLjJmIiwg
dGhpcywgY3VlRGF0YS0+Y29udGVudCgpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZURhdGEt
PnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLT5wb3NpdGlvbigpLCBjdWVEYXRh
LT5saW5lKCkpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIGN1ZURhdGEtPnNldFN0YXR1
cyhHZW5lcmljQ3VlRGF0YTo6UGFydGlhbCk7CisKKyAgICAgICAgICAgIGFycml2aW5nQ3Vlcy5h
cHBlbmQoV1RGTW92ZShjdWVEYXRhKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTM2MCwxNyAr
MzYwLDE3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0F0dHJpYnV0
ZWRTdHJpbmdzKENGQXJyYXlSZWYgYXR0cmlidXRlZFN0CiAgICAgICAgIGlmIChtX2N1cnJlbnRD
dWVFbmRUaW1lID49IG1fY3VycmVudEN1ZVN0YXJ0VGltZSkgewogICAgICAgICAgICAgZm9yIChh
dXRvJiBjdWVEYXRhIDogbV9jdWVzKSB7CiAgICAgICAgICAgICAgICAgLy8gU2VlIGlmIG9uZSBv
ZiB0aGUgbmV3bHktYXJyaXZlZCBjdWVzIGlzIGFuIGV4dGVuc2lvbiBvZiB0aGlzIGN1ZS4KLSAg
ICAgICAgICAgICAgICBWZWN0b3I8UmVmUHRyPEdlbmVyaWNDdWVEYXRhPj4gbm9uRXh0ZW5zaW9u
Q3VlczsKKyAgICAgICAgICAgICAgICBWZWN0b3I8UmVmPEdlbmVyaWNDdWVEYXRhPj4gbm9uRXh0
ZW5zaW9uQ3VlczsKICAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGFycml2aW5nQ3VlIDogYXJy
aXZpbmdDdWVzKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghYXJyaXZpbmdDdWUtPmRvZXNF
eHRlbmRDdWVEYXRhKCpjdWVEYXRhKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vbkV4dGVu
c2lvbkN1ZXMuYXBwZW5kKGFycml2aW5nQ3VlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5v
bkV4dGVuc2lvbkN1ZXMuYXBwZW5kKFdURk1vdmUoYXJyaXZpbmdDdWUpKTsKICAgICAgICAgICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSglcCkgLSBmb3VuZCBhbiBleHRlbnNpb24g
Y3VlIChcIiVzXCIpIGZvciB0aW1lID0gJS4yZiwgZW5kID0gJS4yZiwgcG9zaXRpb24gPSAgJS4y
ZiwgbGluZSA9ICAlLjJmIiwgdGhpcywgYXJyaXZpbmdDdWUtPmNvbnRlbnQoKS51dGY4KCkuZGF0
YSgpLCBhcnJpdmluZ0N1ZS0+c3RhcnRUaW1lKCkudG9Eb3VibGUoKSwgYXJyaXZpbmdDdWUtPmVu
ZFRpbWUoKS50b0RvdWJsZSgpLCBhcnJpdmluZ0N1ZS0+cG9zaXRpb24oKSwgYXJyaXZpbmdDdWUt
PmxpbmUoKSk7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgYm9vbCBjdXJy
ZW50Q3VlSXNFeHRlbmRlZCA9IChhcnJpdmluZ0N1ZXMuc2l6ZSgpICE9IG5vbkV4dGVuc2lvbkN1
ZXMuc2l6ZSgpKTsKIAotICAgICAgICAgICAgICAgIGFycml2aW5nQ3VlcyA9IG5vbkV4dGVuc2lv
bkN1ZXM7CisgICAgICAgICAgICAgICAgYXJyaXZpbmdDdWVzID0gV1RGTW92ZShub25FeHRlbnNp
b25DdWVzKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAoY3VycmVudEN1
ZUlzRXh0ZW5kZWQpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMzgwLDcgKzM4
MCw3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0F0dHJpYnV0ZWRT
dHJpbmdzKENGQXJyYXlSZWYgYXR0cmlidXRlZFN0CiAgICAgICAgICAgICAgICAgICAgIGN1ZURh
dGEtPnNldFN0YXR1cyhHZW5lcmljQ3VlRGF0YTo6Q29tcGxldGUpOwogCiAgICAgICAgICAgICAg
ICAgICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWUo
JXApIC0gdXBkYXRpbmcgY3VlIFwiJXNcIjogc3RhcnQ9JS4yZiwgZW5kPSUuMmYiLCB0aGlzLCBj
dWVEYXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS0+c3RhcnRUaW1lKCkudG9E
b3VibGUoKSwgbV9jdXJyZW50Q3VlRW5kVGltZS50b0RvdWJsZSgpKTsKLSAgICAgICAgICAgICAg
ICAgICAgY2xpZW50KCktPnVwZGF0ZUdlbmVyaWNDdWUodGhpcywgY3VlRGF0YS5nZXQoKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGNsaWVudCgpLT51cGRhdGVHZW5lcmljQ3VlKCpjdWVEYXRhKTsK
ICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZl
IHRvIGFzc3VtZSB0aGF0IHRoZSBpbXBsaWNpdCBkdXJhdGlvbiBpcyBpbnZhbGlkIGZvciBjdWVz
IGRlbGl2ZXJlZCBkdXJpbmcgYSBzZWVrIGJlY2F1c2UgdGhlIEFWRiBkZWNvZGUgcGlwZWxpbmUg
bWF5IG5vdAogICAgICAgICAgICAgICAgICAgICAvLyBzZWUgZXZlcnkgY3VlLCBzbyBETyBOT1Qg
dXBkYXRlIGN1ZSBkdXJhdGlvbiB3aGlsZSBzZWVraW5nLgpAQCAtMzk5LDEyICszOTksMTEgQEAg
dm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQXR0cmlidXRlZFN0cmluZ3Mo
Q0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3QKICAgICBtX2N1cnJlbnRDdWVTdGFydFRpbWUgPSB0aW1l
OwogCiAgICAgZm9yIChhdXRvJiBjdWVEYXRhIDogYXJyaXZpbmdDdWVzKSB7Ci0KLSAgICAgICAg
bV9jdWVzLmFwcGVuZChjdWVEYXRhKTsKKyAgICAgICAgbV9jdWVzLmFwcGVuZChjdWVEYXRhLnB0
cigpKTsKICAgICAgICAgCiAgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRUcmFja1ByaXZh
dGVBVkY6OnByb2Nlc3NDdWUoJXApIC0gYWRkaW5nIGN1ZSBcIiVzXCIgZm9yIHRpbWUgPSAlLjJm
LCBlbmQgPSAlLjJmLCBwb3NpdGlvbiA9ICAlLjJmLCBsaW5lID0gICUuMmYiLCB0aGlzLCBjdWVE
YXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS0+c3RhcnRUaW1lKCkudG9Eb3Vi
bGUoKSwgY3VlRGF0YS0+ZW5kVGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEtPnBvc2l0aW9uKCks
IGN1ZURhdGEtPmxpbmUoKSk7CiAKLSAgICAgICAgY2xpZW50KCktPmFkZEdlbmVyaWNDdWUodGhp
cywgV1RGTW92ZShjdWVEYXRhKSk7CisgICAgICAgIGNsaWVudCgpLT5hZGRHZW5lcmljQ3VlKFdU
Rk1vdmUoY3VlRGF0YSkpOwogICAgIH0KIAogICAgIG1fcGVuZGluZ0N1ZVN0YXR1cyA9IHNlZWtp
bmcoKSA/IERlbGl2ZXJlZER1cmluZ1NlZWsgOiBWYWxpZDsKQEAgLTQ1MSw5ICs0NTAsOSBAQCB2
b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnJlc2V0Q3VlVmFsdWVzKCkKICAgICBpZiAo
bV9jdXJyZW50Q3VlRW5kVGltZSAmJiBtX2N1ZXMuc2l6ZSgpKQogICAgICAgICBMT0coTWVkaWEs
ICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpyZXNldEN1ZVZhbHVlcyBmbHVzaGluZyBkYXRh
IGZvciBjdWVzOiBzdGFydD0lc1xuIiwgdG9TdHJpbmcobV9jdXJyZW50Q3VlU3RhcnRUaW1lKS51
dGY4KCkuZGF0YSgpKTsKIAotICAgIGlmIChjbGllbnQoKSkgewotICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG1fY3Vlcy5zaXplKCk7IGkrKykKLSAgICAgICAgICAgIGNsaWVudCgpLT5y
ZW1vdmVHZW5lcmljQ3VlKHRoaXMsIG1fY3Vlc1tpXS5nZXQoKSk7CisgICAgaWYgKGF1dG8qIGNs
aWVudCA9IHRoaXMtPmNsaWVudCgpKSB7CisgICAgICAgIGZvciAoYXV0byYgY3VlIDogbV9jdWVz
KQorICAgICAgICAgICAgY2xpZW50LT5yZW1vdmVHZW5lcmljQ3VlKCpjdWUpOwogICAgIH0KIAog
ICAgIG1fY3Vlcy5yZXNpemUoMCk7CkBAIC01MDksNyArNTA4LDcgQEAgdm9pZCBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzTmF0aXZlU2FtcGxlcyhDRkFycmF5UmVmIG5hdGl2ZVNh
bXBsZXMsIGMKICAgICAgICAgICAgIExPRyhNZWRpYSwgIiAgICBpZCA9IFwiJXNcIiwgc2V0dGlu
Z3MgPSBcIiVzXCIsIGN1ZSB0ZXh0ID0gXCIlc1wiIiwgY3VlRGF0YS5pZCgpLnV0ZjgoKS5kYXRh
KCksIGN1ZURhdGEuc2V0dGluZ3MoKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLmN1ZVRleHQoKS51
dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAgIExPRyhNZWRpYSwgIiAgICBzb3VyY2VJRCA9IFwi
JXNcIiwgb3JpZ2luYWxTdGFydFRpbWUgPSBcIiVzXCIiLCBjdWVEYXRhLnNvdXJjZUlEKCkudXRm
OCgpLmRhdGEoKSwgY3VlRGF0YS5vcmlnaW5hbFN0YXJ0VGltZSgpLnV0ZjgoKS5kYXRhKCkpOwog
Ci0gICAgICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRDdWVEYXRhKHRoaXMsIGN1ZURhdGEp
OworICAgICAgICAgICAgY2xpZW50KCktPnBhcnNlV2ViVlRUQ3VlRGF0YShjdWVEYXRhKTsKICAg
ICAgICAgfQogCiAgICAgICAgIGRvIHsKQEAgLTU0Miw3ICs1NDEsNyBAQCB2b2lkIEluYmFuZFRl
eHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NOYXRpdmVTYW1wbGVzKENGQXJyYXlSZWYgbmF0aXZl
U2FtcGxlcywgYwogICAgICAgICAgICAgaGVhZGVyLmFwcGVuZCgiXG5cbiIpOwogCiAgICAgICAg
ICAgICBMT0coTWVkaWEsICIgICAgdnR0IGhlYWRlciA9IFxuJXMiLCBoZWFkZXIudG9TdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEZpbGVI
ZWFkZXIodGhpcywgaGVhZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgY2xpZW50KCktPnBh
cnNlV2ViVlRURmlsZUhlYWRlcihoZWFkZXIudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICBtX2hh
dmVSZXBvcnRlZFZUVEhlYWRlciA9IHRydWU7CiAgICAgICAgIH0gd2hpbGUgKDApOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5jcHAKaW5kZXggZmU5MzQ0YjYzMWYwMzVmOWVkZTczNTc0NDA3ZjM0
MzlhYTI0ZTUwMi4uOGM5NDkzY2E1Yjc5N2U0NDhhMDAyMjM5NDdlOWI1MWIzYzlhODRkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcApAQCAtMzYsOCArMzYsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6QXVkaW9UcmFja1By
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaywgU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMqIHBhcmVudCkKICAgICA6IG1faW1wbChzdGQ6Om1ha2VfdW5pcXVlPEFW
VHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKICAgICAsIG1fcGFyZW50KHBhcmVudCkK
LSAgICAsIG1fdHJhY2tJRCgtMSkKLSAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKICAgICByZXNl
dFByb3BlcnRpZXNGcm9tVHJhY2soKTsKIH0KQEAgLTYzLDE3ICs2MSwxMiBAQCBBVkFzc2V0VHJh
Y2sqIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphc3NldFRyYWNrKCkKICAg
ICByZXR1cm4gbV9pbXBsLT5hc3NldFRyYWNrKCk7CiB9CiAKLWJvb2wgQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmVuYWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX2Vu
YWJsZWQ7Ci19Ci0KIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNl
dEVuYWJsZWQoYm9vbCBlbmFibGVkKQogewotICAgIGlmIChtX2VuYWJsZWQgPT0gZW5hYmxlZCkK
KyAgICBpZiAoZW5hYmxlZCA9PSB0aGlzLT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgQXVkaW9UcmFja1ByaXZhdGVBVkY6OnNldEVu
YWJsZWQoZW5hYmxlZCk7CiAgICAgbV9wYXJlbnQtPnRyYWNrRGlkQ2hhbmdlRW5hYmxlZCh0aGlz
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggYmJlODljZGRhMTNiMDgyZGNmODNm
MDI1ZmNjODVjNDI4ZmRjOTE0Ny4uMTdjMTlhMDA2YTc2N2I4NWZmMWJhZDQxYjI4MzAyN2M4NWFm
MGNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKICAqLwogCi0jaWZuZGVmIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDX2gKLSNkZWZpbmUgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakNfaAorI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZUFWRi5oIgogCkBAIC00Niw4
ICs0NSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyh0cmFjaywgcGFyZW50KSk7CiAgICAgfQogCi0gICAg
Ym9vbCBlbmFibGVkKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRFbmFibGVkKGJvb2wp
IG92ZXJyaWRlOworICAgIHZvaWQgc2V0RW5hYmxlZChib29sKSBmaW5hbDsKIAogICAgIHZvaWQg
c2V0QXNzZXRUcmFjayhBVkFzc2V0VHJhY2sqKTsKICAgICBBVkFzc2V0VHJhY2sqIGFzc2V0VHJh
Y2soKTsKQEAgLTYyLDExICs2MCw4IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFW
VHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+IG1faW1wbDsKICAgICBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyogbV9wYXJlbnQ7CiAgICAgaW50IG1fdHJhY2tJRDsKLSAgICBib29sIG1fZW5hYmxl
ZDsKIH07CiAKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEVOQUJMRShW
SURFT19UUkFDSykKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaAppbmRleCAxZjc1ODJlMThiYjY4Y2NiOGMwNjU3NmY0
MGMxYzE5NTM3ZmE3ZTdhLi4zZGFlNGIxMzA4NThmNDYzN2JkZDJmNTFhMmMzNDY4NDI3ZjgyYmEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDLmgKQEAgLTExNCwxOCArMTE0LDE4IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQyopOwogCiAg
ICAgLy8gU291cmNlQnVmZmVyUHJpdmF0ZSBvdmVycmlkZXMKLSAgICB2b2lkIHNldENsaWVudChT
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Kikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBhcHBlbmQoY29u
c3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBvdmVycmlkZTsKLSAgICB2
b2lkIGFib3J0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKCkgb3ZlcnJpZGU7Ci0gICAgTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZv
aWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBmbHVzaChBdG9taWNTdHJpbmcgdHJhY2tJRCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBlbnF1
ZXVlU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+LCBBdG9taWNTdHJpbmcgdHJhY2tJRCkg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRy
YWNrSUQpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIG92ZXJyaWRlOwotICAg
IHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRy
YWNrSUQpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVD
bGllbnQqKSBmaW5hbDsKKyAgICB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgpIGZpbmFsOworICAgIHZvaWQgYWJvcnQoKSBmaW5hbDsKKyAgICB2
b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZWRGcm9tTWVkaWFT
b3VyY2UoKSBmaW5hbDsKKyAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkg
Y29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0
YXRlKSBmaW5hbDsKKyAgICB2b2lkIGZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkg
ZmluYWw7CisgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiwgY29uc3Qg
QXRvbWljU3RyaW5nJiB0cmFja0lEKSBmaW5hbDsKKyAgICBib29sIGlzUmVhZHlGb3JNb3JlU2Ft
cGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpIGZpbmFsOworICAgIHZvaWQgc2V0QWN0
aXZlKGJvb2wpIGZpbmFsOworICAgIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNh
bXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKSBmaW5hbDsKIAogICAgIHZvaWQgZGlk
QmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhpbnQgdHJhY2tJRCk7CiAgICAgdm9pZCBhcHBlbmRD
b21wbGV0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMubW0KaW5kZXggM2IwZDY4Y2MyYmYyZDIyYjc4YjM5MmJmMzgyOGZlNjEz
OGU5YjAxOC4uY2M5MmVkMTU4ZjU1M2MxMTYwZGE0M2YyN2ExYTA4OWE5NTczMjhkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW0KQEAgLTUxMiw3ICs1MTIsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpk
aWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0KEFWQXNzZXQqIGFzc2V0KQogICAgICAgICBtX21lZGlh
U291cmNlLT5wbGF5ZXIoKS0+Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOwogCiAgICAgaWYgKG1f
Y2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJ
bml0aWFsaXphdGlvblNlZ21lbnQodGhpcywgc2VnbWVudCk7CisgICAgICAgIG1fY2xpZW50LT5z
b3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChzZWdtZW50
KTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkRmFpbFRvUGFyc2VT
dHJlYW1EYXRhV2l0aEVycm9yKE5TRXJyb3IqIGVycm9yKQpAQCAtNTQ5LDcgKzU0OSw3IEBAIGJv
b2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnByb2Nlc3NDb2RlZEZyYW1lKGludCB0cmFj
a0lELCBDTVNhbXBsZUJ1ZmZlclJlCiAgICAgaWYgKG1fY2xpZW50KSB7CiAgICAgICAgIFJlZjxN
ZWRpYVNhbXBsZT4gbWVkaWFTYW1wbGUgPSBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShzYW1w
bGVCdWZmZXIsIHRyYWNrSUQpOwogICAgICAgICBMT0coTWVkaWFTb3VyY2VTYW1wbGVzLCAiU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnByb2Nlc3NDb2RlZEZyYW1lKCVwKSAtIHNhbXBsZSgl
cykiLCB0aGlzLCB0b1N0cmluZyhtZWRpYVNhbXBsZS5nZXQoKSkudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSh0aGlz
LCBtZWRpYVNhbXBsZSk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlk
UmVjZWl2ZVNhbXBsZShtZWRpYVNhbXBsZSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CkBA
IC02NTksNyArNjU5LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5k
Q29tcGxldGVkKCkKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldExvYWRpbmdQ
cm9ncmVzc3NlZCh0cnVlKTsKIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQt
PnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCBtX3BhcnNpbmdTdWNjZWVk
ZWQgPyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQgOiBTb3VyY2VC
dWZmZXJQcml2YXRlQ2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKKyAgICAgICAgbV9jbGllbnQtPnNv
dXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShtX3BhcnNpbmdTdWNjZWVkZWQgPyBTb3Vy
Y2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQgOiBTb3VyY2VCdWZmZXJQcml2
YXRlQ2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6YWJvcnQoKQpAQCAtNzM1LDE4ICs3MzUsMTIgQEAgdm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFk
eVN0YXQKIAogYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6aGFzVmlkZW8oKSBjb25z
dAogewotICAgIGlmICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJl
dHVybiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKHRoaXMpOworICAgIHJl
dHVybiBtX2NsaWVudCAmJiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCk7
CiB9CiAKIGJvb2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Omhhc0F1ZGlvKCkgY29uc3QK
IHsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1
cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyh0aGlzKTsKKyAgICByZXR1
cm4gbV9jbGllbnQgJiYgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygpOwog
fQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0cmFja0RpZENoYW5nZUVuYWJs
ZWQoVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMqIHRyYWNrKQpAQCAtODc0LDcg
Kzg2OCw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmxheWVyRGlkUmVjZWl2
ZUVycm9yKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyCiAgICAgaW50IGVycm9yQ29kZSA9IFtb
W2Vycm9yIHVzZXJJbmZvXSB2YWx1ZUZvcktleTpAIk9TU3RhdHVzIl0gaW50VmFsdWVdOwogCiAg
ICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURp
ZFJlY2VpdmVSZW5kZXJpbmdFcnJvcih0aGlzLCBlcnJvckNvZGUpOworICAgICAgICBtX2NsaWVu
dC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihlcnJvckNvZGUp
OwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlckRpZFJlY2Vp
dmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKnJlbmRlcmVyLCBOU0Vycm9yICpl
cnJvcikKQEAgLTg5NSw3ICs4ODksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjpyZW5kZXJlckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZAogICAgICAg
ICByZXR1cm47CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmZsdXNoKEF0
b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6Zmx1c2goY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAgIGludCB0
cmFja0lEID0gdHJhY2tJRFN0cmluZy50b0ludCgpOwogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVzaCglcCkgLSB0cmFja0lkOiAlZCIsIHRoaXMs
IHRyYWNrSUQpOwpAQCAtOTI1LDE5ICs5MTksMTcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6Zmx1c2goQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICpyZW5kZXJlcikKICAg
ICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxl
KHJlbmRlcmVyLCBmYWxzZSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OmVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJwTWVkaWFTYW1wbGUsIEF0
b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdCBBdG9taWNT
dHJpbmcmIHRyYWNrSURTdHJpbmcpCiB7CiAgICAgaW50IHRyYWNrSUQgPSB0cmFja0lEU3RyaW5n
LnRvSW50KCk7CiAgICAgaWYgKHRyYWNrSUQgIT0gbV9lbmFibGVkVmlkZW9UcmFja0lEICYmICFt
X2F1ZGlvUmVuZGVyZXJzLmNvbnRhaW5zKHRyYWNrSUQpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBSZWZQdHI8TWVkaWFTYW1wbGU+IG1lZGlhU2FtcGxlID0gcHJwTWVkaWFTYW1wbGU7Ci0KLSAg
ICBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBsZSA9IG1lZGlhU2FtcGxlLT5wbGF0Zm9ybVNh
bXBsZSgpOworICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlID0gc2FtcGxlLT5wbGF0
Zm9ybVNhbXBsZSgpOwogICAgIGlmIChwbGF0Zm9ybVNhbXBsZS50eXBlICE9IFBsYXRmb3JtU2Ft
cGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIExPRyhNZWRp
YVNvdXJjZVNhbXBsZXMsICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBs
ZSglcCkgLSBzYW1wbGUoJXMpIiwgdGhpcywgdG9TdHJpbmcoKm1lZGlhU2FtcGxlKS51dGY4KCku
ZGF0YSgpKTsKKyAgICBMT0coTWVkaWFTb3VyY2VTYW1wbGVzLCAiU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoJXApIC0gc2FtcGxlKCVzKSIsIHRoaXMsIHRvU3RyaW5n
KHNhbXBsZS5nZXQoKSkudXRmOCgpLmRhdGEoKSk7CiAKICAgICBpZiAodHJhY2tJRCA9PSBtX2Vu
YWJsZWRWaWRlb1RyYWNrSUQpIHsKICAgICAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3Jt
YXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxhdGZv
cm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKQEAgLTk1MCwyMiArOTQyLDIyIEBAIHZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxN
ZWRpYVNhbXBsZT4gcHJwTWVkaWFTCiAgICAgICAgICAgICAgICAgaWYgKHNpemVXYXNOdWxsKQog
ICAgICAgICAgICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2V0TmF0dXJhbFNp
emUoZm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg
ICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2l6ZVdpbGxDaGFuZ2VBdFRpbWUobWVkaWFTYW1w
bGUtPnByZXNlbnRhdGlvblRpbWUoKSwgZm9ybWF0U2l6ZSk7CisgICAgICAgICAgICAgICAgICAg
IG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zaXplV2lsbENoYW5nZUF0VGltZShzYW1wbGUtPnBy
ZXNlbnRhdGlvblRpbWUoKSwgZm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
IAogICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZW5xdWV1ZVNhbXBsZUJ1ZmZlcjpwbGF0Zm9ybVNh
bXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXJdOwogICAgICAgICBpZiAobV9tZWRpYVNvdXJjZSkK
LSAgICAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zZXRIYXNBdmFpbGFibGVWaWRl
b0ZyYW1lKCFtZWRpYVNhbXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOworICAgICAgICAgICAgbV9t
ZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoIXNhbXBsZS0+
aXNOb25EaXNwbGF5aW5nKCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8gcmVuZGVyZXIg
PSBtX2F1ZGlvUmVuZGVyZXJzLmdldCh0cmFja0lEKTsKICAgICAgICAgW3JlbmRlcmVyIGVucXVl
dWVTYW1wbGVCdWZmZXI6cGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyXTsKICAg
ICAgICAgaWYgKG1fbWVkaWFTb3VyY2UpCi0gICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5
ZXIoKS0+c2V0SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUocmVuZGVyZXIuZ2V0KCksICFtZWRpYVNh
bXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOworICAgICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxh
eWVyKCktPnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxlKHJlbmRlcmVyLmdldCgpLCAhc2FtcGxl
LT5pc05vbkRpc3BsYXlpbmcoKSk7CiAgICAgfQogfQogCi1ib29sIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSURTdHJp
bmcpCitib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjppc1JlYWR5Rm9yTW9yZVNhbXBs
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAgIGludCB0cmFja0lE
ID0gdHJhY2tJRFN0cmluZy50b0ludCgpOwogICAgIGlmICh0cmFja0lEID09IG1fZW5hYmxlZFZp
ZGVvVHJhY2tJRCkKQEAgLTk4NCw5ICs5NzYsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpzZXRBY3RpdmUoYm9vbCBpc0FjdGl2ZSkKIAogTWVkaWFUaW1lIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjpmYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoTWVkaWFUaW1lIHRpbWUs
IE1lZGlhVGltZSBuZWdhdGl2ZVRocmVzaG9sZCwgTWVkaWFUaW1lIHBvc2l0aXZlVGhyZXNob2xk
KQogewotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgcmV0dXJuIG1fY2xpZW50LT5zb3VyY2VC
dWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRoaXMsIHRpbWUsIG5lZ2F0aXZl
VGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7Ci0gICAgcmV0dXJuIHRpbWU7CisgICAgaWYg
KCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuIHRpbWU7CisgICAgcmV0dXJuIG1fY2xpZW50LT5z
b3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRpbWUsIG5lZ2F0aXZl
VGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OndpbGxTZWVrKCkKQEAgLTEwMDEsNyArOTkzLDcgQEAgdm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6d2lsbFNlZWsoKQogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6c2Vla1RvVGltZShNZWRpYVRpbWUgdGltZSkKIHsKICAgICBpZiAobV9jbGllbnQp
Ci0gICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGltZSh0aGlzLCB0
aW1lKTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKHRp
bWUpOwogfQogCiBGbG9hdFNpemUgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om5hdHVyYWxT
aXplKCkKQEAgLTEwMjEsMTAgKzEwMTMsMTAgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6ZGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhpbnQgdHJhY2tJRCkKICAgICB9CiAK
ICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRl
RGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyh0aGlzLCBBdG9taWNTdHJpbmc6Om51bWJlcih0
cmFja0lEKSk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21l
UmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmc6Om51bWJlcih0cmFja0lEKSk7CiB9CiAK
LXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZv
ck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29u
c3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAgIGludCB0cmFja0lEID0gdHJh
Y2tJRFN0cmluZy50b0ludCgpOwogICAgIGlmICh0cmFja0lEID09IG1fZW5hYmxlZFZpZGVvVHJh
Y2tJRCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAppbmRleCAwMDUxMmU2M2M3
MzJlMzkzZWY2NTE2MDEwZDFlNjdlZTZmZWRiYjM4Li44NDkyNjdmMjFlMDY5OGZiNWQyYWRkZWFl
NTA5MWIzYzVkMDkyZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcApAQCAt
Njc2LDcgKzY3Niw3IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtOZXdTYW1wbGUoR3N0
U2FtcGxlKiBzYW1wbGUpCiAgICAgICAgICAgICBtZWRpYVNhbXBsZS0+YXBwbHlQdHNPZmZzZXQo
TWVkaWFUaW1lOjp6ZXJvVGltZSgpKTsKICAgICAgICAgfQogCi0gICAgICAgIG1fc291cmNlQnVm
ZmVyUHJpdmF0ZS0+ZGlkUmVjZWl2ZVNhbXBsZShtZWRpYVNhbXBsZSk7CisgICAgICAgIG1fc291
cmNlQnVmZmVyUHJpdmF0ZS0+ZGlkUmVjZWl2ZVNhbXBsZSgqbWVkaWFTYW1wbGUpOwogICAgICAg
ICBzZXRBcHBlbmRTdGF0ZShBcHBlbmRTdGF0ZTo6U2FtcGxpbmcpOwogICAgICAgICBtX2Zsb3dS
ZXR1cm4gPSBHU1RfRkxPV19PSzsKICAgICAgICAgbV9uZXdTYW1wbGVDb25kaXRpb24ubm90aWZ5
T25lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyLmNwcAppbmRleCA3ZjU0NWVlMzVlNDhhYTA2YjAyYTk5NjNlMTFhY2JjYmRjYTc3OTQx
Li5lNGIxMDdmNzBmNWM4YzY5ODE3NDE1ZWJjYTRkNjU1YjNhYjVlYzA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTc2
LDcgKzc2LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjphcHBlbmQoY29u
c3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGUKICAgICBpZiAobV9jbGllbnQtPmFw
cGVuZCh0aGlzLCBkYXRhLCBsZW5ndGgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3NvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0
aGlzLCBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpSZWFkU3RyZWFtRmFpbGVkKTsKKyAgICBt
X3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21w
bGV0ZShTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpSZWFkU3RyZWFtRmFpbGVkKTsKIH0KIAog
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjphYm9ydCgpCkBAIC0xMDYsMjAgKzEw
NiwxOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnNldFJlYWR5U3RhdGUo
TWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgc3RhdGUpCiAgICAgbV9tZWRpYVNvdXJjZS0+c2V0UmVh
ZHlTdGF0ZShzdGF0ZSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6
Zmx1c2goQXRvbWljU3RyaW5nIHRyYWNrSWQpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXI6OmZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJZCkKIHsKICAgICBtX2NsaWVu
dC0+Zmx1c2godHJhY2tJZCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
cjo6ZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUsIEF0b21p
Y1N0cmluZykKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZW5xdWV1ZVNhbXBs
ZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAg
IG1fbm90aWZ5V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMgPSBmYWxzZTsKIAotICAgIFJlZlB0cjxN
ZWRpYVNhbXBsZT4gcHJvdGVjdGVkUHJwU2FtcGxlID0gcHJwU2FtcGxlOwotICAgIG1fY2xpZW50
LT5lbnF1ZXVlU2FtcGxlKHByb3RlY3RlZFBycFNhbXBsZSk7CisgICAgbV9jbGllbnQtPmVucXVl
dWVTYW1wbGUoV1RGTW92ZShzYW1wbGUpKTsKIH0KIAotYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKQorYm9vbCBTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRv
bWljU3RyaW5nJikKIHsKICAgICByZXR1cm4gbV9pc1JlYWR5Rm9yTW9yZVNhbXBsZXM7CiB9CkBA
IC0xMzUsNyArMTM0LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpub3Rp
ZnlSZWFkeUZvck1vcmVTYW1wbGVzKCkKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7
CiAgICAgc2V0UmVhZHlGb3JNb3JlU2FtcGxlcyh0cnVlKTsKICAgICBpZiAobV9ub3RpZnlXaGVu
UmVhZHlGb3JNb3JlU2FtcGxlcykKLSAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50
LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyh0aGlzLCBt
X3RyYWNrSWQpOworICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1
ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKG1fdHJhY2tJZCk7CiB9CiAK
IHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0QWN0aXZlKGJvb2wgaXNBY3Rp
dmUpCkBAIC0xNDQsMTIgKzE0MywxMiBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXI6OnNldEFjdGl2ZShib29sIGlzQWN0aXZlKQogICAgICAgICBtX21lZGlhU291cmNlLT5zb3Vy
Y2VCdWZmZXJQcml2YXRlRGlkQ2hhbmdlQWN0aXZlU3RhdGUodGhpcywgaXNBY3RpdmUpOwogfQog
Ci12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnN0b3BBc2tpbmdGb3JNb3JlU2Ft
cGxlcyhBdG9taWNTdHJpbmcpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnN0
b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90
aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSWQpCit2
b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZv
ck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJZCkKIHsKICAgICBBU1NFUlQo
V1RGOjppc01haW5UaHJlYWQoKSk7CiAgICAgbV9ub3RpZnlXaGVuUmVhZHlGb3JNb3JlU2FtcGxl
cyA9IHRydWU7CkBAIC0xNTksMjAgKzE1OCwxOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXI6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cgog
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlSW5pdGlhbGl6YXRp
b25TZWdtZW50KGNvbnN0IFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9u
U2VnbWVudCYgaW5pdGlhbGl6YXRpb25TZWdtZW50KQogewogICAgIGlmIChtX3NvdXJjZUJ1ZmZl
clByaXZhdGVDbGllbnQpCi0gICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC0+c291
cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQodGhpcywgaW5p
dGlhbGl6YXRpb25TZWdtZW50KTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50
LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChpbml0
aWFsaXphdGlvblNlZ21lbnQpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXI6OmRpZFJlY2VpdmVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJwU2FtcGxlKQor
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlU2FtcGxlKE1lZGlh
U2FtcGxlJiBzYW1wbGUpCiB7Ci0gICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBwcm90ZWN0ZWRQcnBT
YW1wbGUgPSBwcnBTYW1wbGU7CiAgICAgaWYgKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCkK
LSAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRl
RGlkUmVjZWl2ZVNhbXBsZSh0aGlzLCAqcHJvdGVjdGVkUHJwU2FtcGxlKTsKKyAgICAgICAgbV9z
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNh
bXBsZShzYW1wbGUpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRp
ZFJlY2VpdmVBbGxQZW5kaW5nU2FtcGxlcygpCiB7CiAgICAgaWYgKG1fc291cmNlQnVmZmVyUHJp
dmF0ZUNsaWVudCkKLSAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VC
dWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUodGhpcywgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVu
dDo6QXBwZW5kU3VjY2VlZGVkKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50
LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJpdmF0ZUNs
aWVudDo6QXBwZW5kU3VjY2VlZGVkKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCAzMDg0MjVkNTAzY2FhNGViODY4
YjM4OTk5YjVkNDY3NjhkZDU0OTg3Li5iZDFjMmY2NzZlNmYxNDJjMDE0MGU1NjI2ZDk5MWY2MTdl
YjVlZjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuaApAQCAtNTQsMjYgKzU0LDI2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2xlYXJN
ZWRpYVNvdXJjZSgpIHsgbV9tZWRpYVNvdXJjZSA9IG51bGxwdHI7IH0KIAotICAgIHZvaWQgc2V0
Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqKSBvdmVycmlkZTsKLSAgICB2b2lkIGFw
cGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQpIG92ZXJyaWRlOwotICAgIHZvaWQg
YWJvcnQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBvdmVycmlkZTsK
LSAgICB2b2lkIHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKSBvdmVycmlkZTsKLSAgICBNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBz
ZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsKLQotICAgIHZv
aWQgZmx1c2goQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIGVucXVldWVTYW1wbGUo
UGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4sIEF0b21pY1N0cmluZykgb3ZlcnJpZGU7Ci0gICAgYm9v
bCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKLSAgICB2b2lk
IHNldEFjdGl2ZShib29sKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2Ft
cGxlcyhBdG9taWNTdHJpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJl
YWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldENs
aWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KikgZmluYWw7CisgICAgdm9pZCBhcHBlbmQo
Y29uc3QgdW5zaWduZWQgY2hhciosIHVuc2lnbmVkKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KCkg
ZmluYWw7CisgICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkgZmluYWw7CisgICAgdm9pZCByZW1v
dmVkRnJvbU1lZGlhU291cmNlKCkgZmluYWw7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUg
cmVhZHlTdGF0ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZSkgZmluYWw7CisKKyAgICB2b2lkIGZsdXNoKGVucXVldWVTYW1wbGUp
IGZpbmFsOworICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYsIEF0b21p
Y1N0cmluZykgZmluYWw7CisgICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRv
bWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBzZXRBY3RpdmUoYm9vbCkgZmluYWw7CisgICAg
dm9pZCBzdG9wQXNraW5nRm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7
CisgICAgdm9pZCBub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9t
aWNTdHJpbmcmKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0UmVhZHlGb3JNb3JlU2FtcGxlcyhib29s
KTsKICAgICB2b2lkIG5vdGlmeVJlYWR5Rm9yTW9yZVNhbXBsZXMoKTsKIAogICAgIHZvaWQgZGlk
UmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBTb3VyY2VCdWZmZXJQcml2YXRlQ2xp
ZW50OjpJbml0aWFsaXphdGlvblNlZ21lbnQmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTYW1wbGUo
UGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4pOworICAgIHZvaWQgZGlkUmVjZWl2ZVNhbXBsZShNZWRp
YVNhbXBsZSYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUFsbFBlbmRpbmdTYW1wbGVzKCk7CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291
cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCmluZGV4IDQ4ZGY0
YmNjNGMzYmI4ZGEyYzVmNDkwMGUxNzUwNjAwNzkxODU2ZjMuLjE1MGQyYzMyNmEwYWZjZDNhY2Vj
YzgwNThmNGM5ZmQ2MjA1ZjA3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZh
dGUuY3BwCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZUNs
aWVudC5oIgogI2luY2x1ZGUgPG1hcD4KICNpbmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVyLmg+
Ci0jaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50
U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE2NSw3ICsxNjQsNyBAQCB2b2lk
IE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjphcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0
YSwgdW5zaWduZWQgbGVuZ3RoKQogICAgIH0KIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAg
bV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCByZXN1bHQp
OworICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKHJl
c3VsdCk7CiB9CiAKIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVJbml0
aWFsaXphdGlvblNlZ21lbnQoY29uc3QgTW9ja0luaXRpYWxpemF0aW9uQm94JiBpbml0Qm94KQpA
QCAtMTk2LDcgKzE5NSw3IEBAIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2Vp
dmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgTW9ja0luaXRpYWxpCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFs
aXphdGlvblNlZ21lbnQodGhpcywgc2VnbWVudCk7CisgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KHNlZ21lbnQpOwogfQogCiAK
QEAgLTIwNSw3ICsyMDQsNyBAQCB2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNl
aXZlU2FtcGxlKGNvbnN0IE1vY2tTYW1wbGVCb3gmIHNhbXBsZUJveCkKICAgICBpZiAoIW1fY2xp
ZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVTYW1wbGUodGhpcywgTW9ja01lZGlhU2FtcGxlOjpjcmVhdGUoc2FtcGxlQm94
KSk7CisgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKE1v
Y2tNZWRpYVNhbXBsZTo6Y3JlYXRlKHNhbXBsZUJveCkpOwogfQogCiB2b2lkIE1vY2tTb3VyY2VC
dWZmZXJQcml2YXRlOjphYm9ydCgpCkBAIC0yMzksMjIgKzIzOCwyMSBAQCB2b2lkIE1vY2tTb3Vy
Y2VCdWZmZXJQcml2YXRlOjpzZXRBY3RpdmUoYm9vbCBpc0FjdGl2ZSkKICAgICAgICAgbV9tZWRp
YVNvdXJjZS0+c291cmNlQnVmZmVyUHJpdmF0ZURpZENoYW5nZUFjdGl2ZVN0YXRlKHRoaXMsIGlz
QWN0aXZlKTsKIH0KIAotVmVjdG9yPFN0cmluZz4gTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmVu
cXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoQXRvbWljU3RyaW5nKQorVmVjdG9yPFN0cmluZz4gTW9j
a1NvdXJjZUJ1ZmZlclByaXZhdGU6OmVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoY29uc3QgQXRv
bWljU3RyaW5nJikKIHsKICAgICByZXR1cm4gbV9lbnF1ZXVlZFNhbXBsZXM7CiB9CiAKLXZvaWQg
TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNh
bXBsZT4gcHJwU2FtcGxlLCBBdG9taWNTdHJpbmcpCit2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2
YXRlOjplbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0IEF0b21p
Y1N0cmluZyYpCiB7Ci0gICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBzYW1wbGUgPSBwcnBTYW1wbGU7
Ci0gICAgaWYgKCFtX21lZGlhU291cmNlIHx8ICFzYW1wbGUpCisgICAgaWYgKCFtX21lZGlhU291
cmNlKQogICAgICAgICByZXR1cm47CiAKICAgICBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBs
ZSA9IHNhbXBsZS0+cGxhdGZvcm1TYW1wbGUoKTsKICAgICBpZiAocGxhdGZvcm1TYW1wbGUudHlw
ZSAhPSBQbGF0Zm9ybVNhbXBsZTo6TW9ja1NhbXBsZUJveFR5cGUpCiAgICAgICAgIHJldHVybjsK
IAotICAgIE1vY2tTYW1wbGVCb3gqIGJveCA9IHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5tb2NrU2Ft
cGxlQm94OworICAgIGF1dG8qIGJveCA9IHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5tb2NrU2FtcGxl
Qm94OwogICAgIGlmICghYm94KQogICAgICAgICByZXR1cm47CiAKQEAgLTI2NiwzNyArMjY0LDMw
IEBAIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmVucXVldWVTYW1wbGUoUGFzc1JlZlB0
cjxNZWRpYVNhbXBsZT4gcHJwU2FtcGxlLCBBCiAgICAgaWYgKGJveC0+aXNEZWxheWVkKCkpCiAg
ICAgICAgIG1fbWVkaWFTb3VyY2UtPmluY3JlbWVudFRvdGFsRnJhbWVEZWxheUJ5KE1lZGlhVGlt
ZSgxLCAxKSk7CiAKLSAgICBtX2VucXVldWVkU2FtcGxlcy5hcHBlbmQodG9TdHJpbmcoc2FtcGxl
KSk7CisgICAgbV9lbnF1ZXVlZFNhbXBsZXMuYXBwZW5kKHRvU3RyaW5nKHNhbXBsZS5nZXQoKSkp
OwogfQogCiBib29sIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpoYXNWaWRlbygpIGNvbnN0CiB7
Ci0gICAgaWYgKCFtX2NsaWVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJu
IG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8odGhpcyk7CisgICAgcmV0dXJu
IG1fY2xpZW50ICYmIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8oKTsKIH0K
IAogYm9vbCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6aGFzQXVkaW8oKSBjb25zdAogewotICAg
IGlmICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBtX2Ns
aWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKHRoaXMpOworICAgIHJldHVybiBtX2Ns
aWVudCAmJiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKCk7CiB9CiAKLQog
TWVkaWFUaW1lIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpmYXN0U2Vla1RpbWVGb3JNZWRpYVRp
bWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZlVGhyZXNo
b2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKQogewogICAgIGlmIChtX2Ns
aWVudCkKLSAgICAgICAgcmV0dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNl
ZWtUaW1lRm9yTWVkaWFUaW1lKHRoaXMsIHRpbWUsIG5lZ2F0aXZlVGhyZXNob2xkLCBwb3NpdGl2
ZVRocmVzaG9sZCk7CisgICAgICAgIHJldHVybiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0
ZUZhc3RTZWVrVGltZUZvck1lZGlhVGltZSh0aW1lLCBuZWdhdGl2ZVRocmVzaG9sZCwgcG9zaXRp
dmVUaHJlc2hvbGQpOwogICAgIHJldHVybiB0aW1lOwogfQogCiB2b2lkIE1vY2tTb3VyY2VCdWZm
ZXJQcml2YXRlOjpzZWVrVG9UaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKIHsKICAgICBpZiAo
bV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGlt
ZSh0aGlzLCB0aW1lKTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVTZWVr
VG9UaW1lKHRpbWUpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmgK
aW5kZXggNzQ0YjRjMTA3YzMxMDI2ZmE0MjlhOGYxMmQyNTYzYmZjMzYzMmQyOC4uNjE3NDVmYjVh
ODU4NTFmYWNmZDdlNzVkODMxYjNhMGVmYmRhNjY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1
ZmZlclByaXZhdGUuaApAQCAtMjMsMTUgKzIzLDEyIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwog
Ci0jaWZuZGVmIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlX2gKLSNkZWZpbmUgTW9ja1NvdXJjZUJ1
ZmZlclByaXZhdGVfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQog
CiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRp
bWUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY4LDEyICs2NSwxMiBAQCBwcml2YXRlOgogICAg
IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpIG92ZXJyaWRlOwog
Ci0gICAgdm9pZCBmbHVzaChBdG9taWNTdHJpbmcpIG92ZXJyaWRlIHsgbV9lbnF1ZXVlZFNhbXBs
ZXMuY2xlYXIoKTsgfQotICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2Ft
cGxlPiwgQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKLSAgICBib29sIGlzUmVhZHlGb3JNb3JlU2Ft
cGxlcyhBdG9taWNTdHJpbmcpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIGZs
dXNoKGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlIHsgbV9lbnF1ZXVlZFNhbXBsZXMuY2xl
YXIoKTsgfQorICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOworICAgIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVz
KGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lk
IHNldEFjdGl2ZShib29sKSBvdmVycmlkZTsKIAotICAgIFZlY3RvcjxTdHJpbmc+IGVucXVldWVk
U2FtcGxlc0ZvclRyYWNrSUQoQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKKyAgICBWZWN0b3I8U3Ry
aW5nPiBlbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJy
aWRlOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IE1v
Y2tJbml0aWFsaXphdGlvbkJveCYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVNhbXBsZShjb25zdCBN
b2NrU2FtcGxlQm94Jik7CkBAIC04OCw2ICs4NSwzIEBAIHByaXZhdGU6CiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotCi0jZW5kaWYKLQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1
Z0luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bi5jcHAKaW5kZXggMzNmZTQzOTYwMmNjZDA3NTBhZTNjM2NiMGM0ZDc4MGNmNzFiZWM4My4uOGVm
NDg5ZDc4MjZkY2MwMTMxYmIzMmRjZTliYjYzNTQzODllOGE4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCkBAIC04Miwx
MyArODIsMTMgQEAgdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6bGF5b3V0KCkKICAgICB2
aWV3KCkuZnJhbWVWaWV3KCkuYWRkRW1iZWRkZWRPYmplY3RUb1VwZGF0ZSgqdGhpcyk7CiB9CiAK
LXZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8
SW1hZ2U+IGltYWdlKQordm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6dXBkYXRlU25hcHNo
b3QoSW1hZ2UqIGltYWdlKQogewogICAgIC8vIFplcm8tc2l6ZSBwbHVnaW5zIHdpbGwgaGF2ZSBu
byBpbWFnZS4KICAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3NuYXBz
aG90UmVzb3VyY2UtPnNldENhY2hlZEltYWdlKG5ldyBDYWNoZWRJbWFnZShpbWFnZS5nZXQoKSwg
dmlldygpLmZyYW1lVmlldygpLmZyYW1lKCkucGFnZSgpLT5zZXNzaW9uSUQoKSkpOworICAgIG1f
c25hcHNob3RSZXNvdXJjZS0+c2V0Q2FjaGVkSW1hZ2UobmV3IENhY2hlZEltYWdlKGltYWdlLCB2
aWV3KCkuZnJhbWVWaWV3KCkuZnJhbWUoKS5wYWdlKCktPnNlc3Npb25JRCgpKSk7CiAgICAgcmVw
YWludCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbi5oCmluZGV4IDEzNGRiODMzYjc5OGVlNWMzN2IxYmEyN2RhNTQ4ZmM1NDNl
Zjg2NDcuLmMxNzk3YTBkNjIzMWVjOTg2ZjFkYzJkMzAwZWFlZWNmMjE1ZTU2NzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCkBA
IC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKIAogICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmIHBs
dWdJbkltYWdlRWxlbWVudCgpIGNvbnN0OwogCi0gICAgdm9pZCB1cGRhdGVTbmFwc2hvdChQYXNz
UmVmUHRyPEltYWdlPik7CisgICAgdm9pZCB1cGRhdGVTbmFwc2hvdChJbWFnZSopOwogCiAgICAg
dm9pZCBoYW5kbGVFdmVudChFdmVudCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1l
bnQuaAppbmRleCA4YjdkOTI0NTY0YTY0ZjAxYzk2ZDBiZTI0MzA4Y2VhYTk4NmQxNmU5Li44ZGQw
ZmQ4ZTM4MjE0OGE0YTU0MDIzYjM0ZGNlNzJjZWIzOWIyZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTY3JpcHRFbGVtZW50LmgKQEAgLTI5LDEzICsyOSwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBTVkdVUklSZWZlcmVuY2UKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBTY3JpcHRFbGVt
ZW50IHsKK2NsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudCwg
cHVibGljIFNWR1VSSVJlZmVyZW5jZSwgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNWR1Nj
cmlwdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29s
IHdhc0luc2VydGVkQnlQYXJzZXIpOwogCisgICAgdXNpbmcgU1ZHRWxlbWVudDo6cmVmOworICAg
IHVzaW5nIFNWR0VsZW1lbnQ6OmRlcmVmOworCiBwcml2YXRlOgogICAgIFNWR1NjcmlwdEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFy
c2VyLCBib29sIGFscmVhZHlTdGFydGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFy
c2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCA5MjYwNWZjMDIzNWM3YWVmYmU3NmFjODYx
ZTBmODVmNmU4YTVkYThmLi4xNzVhNTlmZTVkNTJiMzAzZTA3MTNkMDNhY2ExY2MyZGNmOTQ5MGEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNw
cApAQCAtMjM3LDggKzIzNyw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6Om5vdGlmeUZpbmlz
aGVkKFBlbmRpbmdTY3JpcHQmIHBlbmRpbmdTY3JpcHQpCiAgICAgbV9wZW5kaW5nU2NyaXB0ID0g
bnVsbHB0cjsKICAgICBwZW5kaW5nU2NyaXB0LmNsZWFyQ2xpZW50KCk7CiAKLSAgICBhdXRvJiBz
Y3JpcHRFbGVtZW50ID0gKnRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJnBlbmRpbmdTY3JpcHQu
ZWxlbWVudCgpKTsKLSAgICBzY3JpcHRFbGVtZW50LmV4ZWN1dGVQZW5kaW5nU2NyaXB0KHBlbmRp
bmdTY3JpcHQpOworICAgIHBlbmRpbmdTY3JpcHQuZWxlbWVudCgpLmV4ZWN1dGVQZW5kaW5nU2Ny
aXB0KHBlbmRpbmdTY3JpcHQpOwogCiAgICAgaWYgKCFpc0RldGFjaGVkKCkgJiYgIW1fcmVxdWVz
dGluZ1NjcmlwdCkKICAgICAgICAgcmVzdW1lUGFyc2luZygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvU291cmNl
L1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCmluZGV4IDcw
Njc2NzZkZDE3YTc0ZDllNDI3MjlkM2QyOWQzZGQ4ZThhN2Y4Y2UuLmZlNDJhMmJjMmNmODRkYzNj
YTY3MDg2ZjM3Y2RkZTkwZWY2ZDA3Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTc5OSw4ICs3OTksNyBA
QCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpzdGFydEVsZW1lbnROcyhjb25zdCB4bWxDaGFyKiB4
bWxMb2NhbE5hbWUsIGNvbnN0IHhtbENoYQogCiAgICAgbmV3RWxlbWVudC0+YmVnaW5QYXJzaW5n
Q2hpbGRyZW4oKTsKIAotICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSB0b1Njcmlw
dEVsZW1lbnRJZlBvc3NpYmxlKG5ld0VsZW1lbnQucHRyKCkpOwotICAgIGlmIChzY3JpcHRFbGVt
ZW50KQorICAgIGlmIChpc1NjcmlwdEVsZW1lbnQobmV3RWxlbWVudC5nZXQoKSkpCiAgICAgICAg
IG1fc2NyaXB0U3RhcnRQb3NpdGlvbiA9IHRleHRQb3NpdGlvbigpOwogCiAgICAgbV9jdXJyZW50
Tm9kZS0+cGFyc2VyQXBwZW5kQ2hpbGQobmV3RWxlbWVudCk7CkBAIC04NDMsNyArODQyLDcgQEAg
dm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKCkKICAgICBpZiAoaGFja0Fyb3Vu
ZExpYlhNTEVudGl0eVBhcnNpbmdCdWcoKSAmJiBjb250ZXh0KCktPmRlcHRoIDw9IGRlcHRoVHJp
Z2dlcmluZ0VudGl0eUV4cGFuc2lvbigpKQogICAgICAgICBzZXREZXB0aFRyaWdnZXJpbmdFbnRp
dHlFeHBhbnNpb24oLTEpOwogCi0gICAgaWYgKCFzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKHBh
cnNlckNvbnRlbnRQb2xpY3koKSkgJiYgaXM8RWxlbWVudD4oKm5vZGUpICYmIHRvU2NyaXB0RWxl
bWVudElmUG9zc2libGUoZG93bmNhc3Q8RWxlbWVudD4obm9kZS5nZXQoKSkpKSB7CisgICAgaWYg
KCFzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKHBhcnNlckNvbnRlbnRQb2xpY3koKSkgJiYgaXM8
RWxlbWVudD4oKm5vZGUpICYmIGlzU2NyaXB0RWxlbWVudChkb3duY2FzdDxFbGVtZW50Pigqbm9k
ZSkpKSB7CiAgICAgICAgIHBvcEN1cnJlbnROb2RlKCk7CiAgICAgICAgIG5vZGUtPnJlbW92ZSgp
OwogICAgICAgICByZXR1cm47CkBAIC04NTQsNyArODUzLDcgQEAgdm9pZCBYTUxEb2N1bWVudFBh
cnNlcjo6ZW5kRWxlbWVudE5zKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEVsZW1l
bnQmIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7CisgICAgYXV0byYgZWxlbWVu
dCA9IGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKTsKIAogICAgIC8vIFRoZSBlbGVtZW50J3MgcGFy
ZW50IG1heSBoYXZlIGFscmVhZHkgYmVlbiByZW1vdmVkIGZyb20gZG9jdW1lbnQuCiAgICAgLy8g
UGFyc2luZyBjb250aW51ZXMgaW4gdGhpcyBjYXNlLCBidXQgc2NyaXB0cyBhcmVuJ3QgZXhlY3V0
ZWQuCkBAIC04NjMsOCArODYyLDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVu
dE5zKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlw
dEVsZW1lbnQgPSB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZlbGVtZW50KTsKLSAgICBpZiAo
IXNjcmlwdEVsZW1lbnQpIHsKKyAgICBpZiAoIWlzU2NyaXB0RWxlbWVudChlbGVtZW50KSkgewog
ICAgICAgICBwb3BDdXJyZW50Tm9kZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtODcz
LDE1ICs4NzEsMTYgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKCkKICAg
ICBBU1NFUlQoIW1fcGVuZGluZ1NjcmlwdCk7CiAgICAgbV9yZXF1ZXN0aW5nU2NyaXB0ID0gdHJ1
ZTsKIAotICAgIGlmIChzY3JpcHRFbGVtZW50LT5wcmVwYXJlU2NyaXB0KG1fc2NyaXB0U3RhcnRQ
b3NpdGlvbiwgU2NyaXB0RWxlbWVudDo6QWxsb3dMZWdhY3lUeXBlSW5UeXBlQXR0cmlidXRlKSkg
eworICAgIGF1dG8mIHNjcmlwdEVsZW1lbnQgPSBkb3duY2FzdFNjcmlwdEVsZW1lbnQoZWxlbWVu
dCk7CisgICAgaWYgKHNjcmlwdEVsZW1lbnQucHJlcGFyZVNjcmlwdChtX3NjcmlwdFN0YXJ0UG9z
aXRpb24sIFNjcmlwdEVsZW1lbnQ6OkFsbG93TGVnYWN5VHlwZUluVHlwZUF0dHJpYnV0ZSkpIHsK
ICAgICAgICAgLy8gRklYTUU6IFNjcmlwdCBleGVjdXRpb24gc2hvdWxkIGJlIHNoYXJlZCBiZXR3
ZWVuCiAgICAgICAgIC8vIHRoZSBsaWJ4bWwyIGFuZCBRdCBYTUxEb2N1bWVudFBhcnNlciBpbXBs
ZW1lbnRhdGlvbnMuCiAKLSAgICAgICAgaWYgKHNjcmlwdEVsZW1lbnQtPnJlYWR5VG9CZVBhcnNl
ckV4ZWN1dGVkKCkpCi0gICAgICAgICAgICBzY3JpcHRFbGVtZW50LT5leGVjdXRlQ2xhc3NpY1Nj
cmlwdChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdEVsZW1lbnQtPnNjcmlwdENvbnRlbnQoKSwgZG9j
dW1lbnQoKS0+dXJsKCksIG1fc2NyaXB0U3RhcnRQb3NpdGlvbikpOwotICAgICAgICBlbHNlIGlm
IChzY3JpcHRFbGVtZW50LT53aWxsQmVQYXJzZXJFeGVjdXRlZCgpICYmIHNjcmlwdEVsZW1lbnQt
PmxvYWRhYmxlU2NyaXB0KCkpIHsKLSAgICAgICAgICAgIG1fcGVuZGluZ1NjcmlwdCA9IFBlbmRp
bmdTY3JpcHQ6OmNyZWF0ZShlbGVtZW50LCAqc2NyaXB0RWxlbWVudC0+bG9hZGFibGVTY3JpcHQo
KSk7Ci0gICAgICAgICAgICBtX3BlbmRpbmdTY3JpcHQtPnNldENsaWVudCh0aGlzKTsKKyAgICAg
ICAgaWYgKHNjcmlwdEVsZW1lbnQucmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQoKSkKKyAgICAgICAg
ICAgIHNjcmlwdEVsZW1lbnQuZXhlY3V0ZUNsYXNzaWNTY3JpcHQoU2NyaXB0U291cmNlQ29kZShz
Y3JpcHRFbGVtZW50LnNjcmlwdENvbnRlbnQoKSwgZG9jdW1lbnQoKS0+dXJsKCksIG1fc2NyaXB0
U3RhcnRQb3NpdGlvbikpOworICAgICAgICBlbHNlIGlmIChzY3JpcHRFbGVtZW50LndpbGxCZVBh
cnNlckV4ZWN1dGVkKCkgJiYgc2NyaXB0RWxlbWVudC5sb2FkYWJsZVNjcmlwdCgpKSB7CisgICAg
ICAgICAgICBtX3BlbmRpbmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxl
bWVudCwgKnNjcmlwdEVsZW1lbnQubG9hZGFibGVTY3JpcHQoKSk7CisgICAgICAgICAgICBtX3Bl
bmRpbmdTY3JpcHQtPnNldENsaWVudCgqdGhpcyk7CiAKICAgICAgICAgICAgIC8vIG1fcGVuZGlu
Z1NjcmlwdCB3aWxsIGJlIG51bGxwdHIgaWYgc2NyaXB0IHdhcyBhbHJlYWR5IGxvYWRlZCBhbmQg
c2V0Q2xpZW50KCkgZXhlY3V0ZWQgaXQuCiAgICAgICAgICAgICBpZiAobV9wZW5kaW5nU2NyaXB0
KQpAQCAtODk2LDE5ICs4OTUsMTkgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVu
dE5zKCkKICAgICBwb3BDdXJyZW50Tm9kZSgpOwogfQogCi12b2lkIFhNTERvY3VtZW50UGFyc2Vy
OjpjaGFyYWN0ZXJzKGNvbnN0IHhtbENoYXIqIHMsIGludCBsZW4pCit2b2lkIFhNTERvY3VtZW50
UGFyc2VyOjpjaGFyYWN0ZXJzKGNvbnN0IHhtbENoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgp
CiB7CiAgICAgaWYgKGlzU3RvcHBlZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9w
YXJzZXJQYXVzZWQpIHsKLSAgICAgICAgbV9wZW5kaW5nQ2FsbGJhY2tzLT5hcHBlbmRDaGFyYWN0
ZXJzQ2FsbGJhY2socywgbGVuKTsKKyAgICAgICAgbV9wZW5kaW5nQ2FsbGJhY2tzLT5hcHBlbmRD
aGFyYWN0ZXJzQ2FsbGJhY2soY2hhcmFjdGVycywgbGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIGlmICghbV9sZWFmVGV4dE5vZGUpCiAgICAgICAgIGNyZWF0ZUxlYWZUZXh0
Tm9kZSgpOwotICAgIG1fYnVmZmVyZWRUZXh0LmFwcGVuZChzLCBsZW4pOworICAgIG1fYnVmZmVy
ZWRUZXh0LmFwcGVuZChjaGFyYWN0ZXJzLCBsZW5ndGgpOwogfQogCiB2b2lkIFhNTERvY3VtZW50
UGFyc2VyOjplcnJvcihYTUxFcnJvcnM6OkVycm9yVHlwZSB0eXBlLCBjb25zdCBjaGFyKiBtZXNz
YWdlLCB2YV9saXN0IGFyZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGMxMDE5MjRlYTVmMWQ2NjI5M2IxOTlhMzAwMTI0
ZGIyYzIzZjU3YjQuLjlmYWQ3ZGRiYmZlNGNjMGYzMzI1YzliODlkMWZiYTNhZTFhODI1Y2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCkBAIC0xMjUsNyArMTI1LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHJ1bk9w
ZW5QYW5lbChXZWJDb3JlOjpGcmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+
KSBvdmVycmlkZTsKLSAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6
U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBs
b2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxl
SWNvbkxvYWRlciYpIG92ZXJyaWRlOwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICB2b2lkIHNl
dEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCBiY2Vh
ZmQ1MTE2NTMyMmIzYWRiYTc5NGMwYzFmNThkYjVjZTE5YThiLi5lOTdhOThmZThiMWI2NWRlNmYw
NThhMGI4OWNjZTgxZjkwZWM4MjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC03NTcsOSArNzU3LDkgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29z
ZXI+IGNob29zZXIpCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZp
bGVuYW1lcywgRmlsZUljb25Mb2FkZXIqIGljb25Mb2FkZXIpCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxl
SWNvbkxvYWRlciYgaWNvbkxvYWRlcikKIHsKLSAgICBpY29uTG9hZGVyLT5ub3RpZnlGaW5pc2hl
ZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7CisgICAgaWNvbkxvYWRlci5p
Y29uTG9hZGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogI2lm
ICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggN2YwZTc1ZGNiOTgy
M2JiMmRkYzEwY2U2MDkxZDE5NDRhZDkyMmE3NS4uNzc3ZTllMGE1OWE1OTNjNjI4N2Q2YWNlOWZm
NTlkZDNlM2IwZGIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNzYxLDkgKzc2MSw5
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNz
UmVmUHRyPEZpbGVDaG9vc2VyPiBwcnBGaWxlCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlJ1bk9wZW5QYW5lbCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9y
aWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIGZpbGVDaG9vc2VyLT5zZXR0aW5ncygpKSk7CiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9hZGVyKiBsb2FkZXIpCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVz
LCBGaWxlSWNvbkxvYWRlciYgbG9hZGVyKQogewotICAgIGxvYWRlci0+bm90aWZ5RmluaXNoZWQo
SWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOworICAgIGxvYWRlci5pY29uTG9h
ZGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogI2lmICFQTEFU
Rk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAwNWU0YjM1YTFkZTE4YjllYmVmODU0
MDUyNmFmYjJhNWVmZGZkNzZjLi5kNjRjZDk5MGI3OGViY2NhOTA0Zjc1NTc3OTg5YTMzNTY1NDE4
NWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE4Miw3ICsxODIsNyBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSosIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KSBvdmVycmlkZTsKLSAgICB2b2lkIGxvYWRJY29uRm9y
RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciopIG92
ZXJyaWRlOworICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYs
IFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJikgb3ZlcnJpZGU7CiAKICNpZiAhUExBVEZPUk0oSU9T
KQogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpIG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297919</attachid>
            <date>2017-01-02 18:17:22 -0800</date>
            <delta_ts>2017-01-02 19:01:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166635-20170102181558.patch</filename>
            <type>text/plain</type>
            <size>495044</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDAyNzFmYTc0NWFjMmE2MmEzN2E0NWFm
ZmI2Njk5MDUwYTAzYTQ0MTkuLjFhNjRlMTEzZjNlNDNkOTQ2ZjM4ZjhkOWMyMzEwNTRiYmQ2ZTFl
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDEtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRt
bCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpt
YWtlUmVmUHRyKTogQWRkZWQuCisKIDIwMTctMDEtMDIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgVXNlIFN0YXRpY1N0cmluZ0ltcGwgaW5zdGVhZCBv
ZiBTdGF0aWNBU0NJSUxpdGVyYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3ZTIzNzFlZGEyNDQxMjk2OGNkYzA3
NzU3NWVlY2I4Y2M5YmIyYjgwLi42NjM3NDhlOGU2MTY1YWFhNWNhZGMzODIxN2Y3NTYyOTM2OGEz
NzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDEtMDIgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9t
IHRoZSAiaHRtbCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZSBsb2cgeWV0OiBKdXN0
IHVwbG9hZGluZyBmb3IgRVdTIGZvciBub3cuCisKIDIwMTctMDEtMDIgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgVXNlIFN0YXRpY1N0cmluZ0ltcGwg
aW5zdGVhZCBvZiBTdGF0aWNBU0NJSUxpdGVyYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4ZjJlYzcz
MzcwMjAzZmEzN2ZkYzhmYjE0NGVhYTBiNjg0NDg5ZmU5Li4zYmYwN2YxNjY4OTg4ODUzNzQ0ZmU2
NDI0Y2YxN2RjMTMwZTEwNzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTctMDEtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92
ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRtbCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3Zl
bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNv
bkZvckZpbGVzKTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgcG9pbnRlci4KKwogMjAx
Ny0wMS0wMSAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRl
IHVzZXItdmlzaWJsZSBjb3B5cmlnaHQgc3RyaW5ncyB0byBpbmNsdWRlIDIwMTcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCBiODk1ZGMyNzhhM2FlMDAzNzExZWUwMzNhYjk3YTJkYzIzMDExYjhjLi45MjIzNDhiNzg4
NjQxMzVkZDRiZDdjZmZmZGE2NDhhZDA0ZGUwMDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTctMDEtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRtbCIgZGlyZWN0b3J5LCBvdGhlciBp
bXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMpOiBUYWtlIGEg
cmVmZXJlbmNlIGluc3RlYWQgb2YgYSBwb2ludGVyLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6IERpdHRvLgorCiAyMDE3LTAxLTAxICBKZWZm
IE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgdXNlci12aXNpYmxl
IGNvcHlyaWdodCBzdHJpbmdzIHRvIGluY2x1ZGUgMjAxNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvUmVmUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAppbmRleCA4N2ZjNDU2ZjM3
MDQwNDliZjRlY2NjYmYzYTRmZjU3Njk3OWU2NzdmLi5hZWQ3MmZmMGYwZDhjY2UyODU4NDFjNGEy
OTkyOGVmZWE3ZDFlNjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaApAQCAtMjQyLDEwICsyNDIsMjEgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gaW5saW5lIFJlZlB0cjxUPiBhZG9wdFJlZihUKiBwKQogICAgIHJldHVybiBS
ZWZQdHI8VD4ocCwgUmVmUHRyPFQ+OjpBZG9wdCk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+
IGlubGluZSBSZWZQdHI8VD4gbWFrZVJlZlB0cihUKiBwb2ludGVyKQoreworICAgIHJldHVybiBw
b2ludGVyOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVmUHRyPFQ+IG1ha2VS
ZWZQdHIoVCYgcmVmZXJlbmNlKQoreworICAgIHJldHVybiAmcmVmZXJlbmNlOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXVEYKIAogdXNpbmcgV1RGOjpSZWZQdHI7CiB1c2luZyBXVEY6OmFkb3B0UmVm
OwordXNpbmcgV1RGOjptYWtlUmVmUHRyOwogdXNpbmcgV1RGOjpzdGF0aWNfcG9pbnRlcl9jYXN0
OwogCiAjZW5kaWYgLy8gV1RGX1JlZlB0cl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDBjODUx
ZGU0MGYxM2VhYzdmYjljN2Q4MTFkMTdlYjIxMzRmZWZkMmIuLjg3NzhjYzQyNWI2NzEwN2U0ZmQz
ZDBjOTY1YjU5NjZkZWE1NDYwODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNzY0LDcgKzE3
NjQsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5j
cHAKICAgICBodG1sL1dlZWtJbnB1dFR5cGUuY3BwCiAKLSAgICBodG1sL2NhbnZhcy9BTkdMRUlu
c3RhbmNlZEFycmF5cy5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5jcHAKICAg
ICBodG1sL2NhbnZhcy9DYW52YXNQYXRoLmNwcAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1BhdHRl
cm4uY3BwCkBAIC0xNzczLDUxICsxNzcyLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKICAgICBodG1sL2NhbnZhcy9D
YW52YXNTdHlsZS5jcHAKICAgICBodG1sL2NhbnZhcy9ET01QYXRoLmNwcAotICAgIGh0bWwvY2Fu
dmFzL0VYVEJsZW5kTWluTWF4LmNwcAotICAgIGh0bWwvY2FudmFzL0VYVEZyYWdEZXB0aC5jcHAK
LSAgICBodG1sL2NhbnZhcy9FWFRTaGFkZXJUZXh0dXJlTE9ELmNwcAotICAgIGh0bWwvY2FudmFz
L0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAKLSAgICBodG1sL2NhbnZhcy9FWFRzUkdC
LmNwcAotICAgIGh0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuY3BwCi0gICAgaHRtbC9j
YW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAKLSAgICBodG1sL2NhbnZhcy9PRVNUZXh0
dXJlRmxvYXQuY3BwCi0gICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0TGluZWFyLmNwcAot
ICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXQuY3BwCi0gICAgaHRtbC9jYW52YXMv
T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5jcHAKLSAgICBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhB
cnJheU9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNw
cAotICAgIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVBVEMuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVBWUlRDLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVT
M1RDLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmNwcAotICAgIGh0bWwv
Y2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4
dE9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcAot
ICAgIGh0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcAotICAgIGh0bWwvY2FudmFzL1dl
YkdMRGVwdGhUZXh0dXJlLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMRHJhd0J1ZmZlcnMuY3Bw
Ci0gICAgaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwCi0gICAgaHRtbC9jYW52YXMvV2Vi
R0xGcmFtZWJ1ZmZlci5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwCi0gICAg
aHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTE9i
amVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCi0gICAgaHRtbC9jYW52
YXMvV2ViR0xRdWVyeS5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5jcHAK
LSAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCi0gICAgaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFNh
bXBsZXIuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuY3BwCi0gICAgaHRtbC9jYW52
YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xT
aGFyZWRPYmplY3QuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xTeW5jLmNwcAotICAgIGh0bWwv
Y2FudmFzL1dlYkdMVGV4dHVyZS5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZl
ZWRiYWNrLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9uLmNwcAotICAg
IGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwCi0gICAgaHRtbC9jYW52YXMv
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUy5jcHAKIAogICAgIGh0bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuY3Bw
CiAKQEAgLTMwNzgsNiArMzAzMiw3IEBAIGlmIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwv
Y2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXIuY3BwCiAgICAgICAgIGh0bWwvY2FudmFz
L09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0LmNwcAorICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEFueS5jcHAKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVBVEMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJl
c3NlZFRleHR1cmVQVlJUQy5jcHAKQEAgLTMwOTEsNyArMzA0Niw2IEBAIGlmIChFTkFCTEVfV0VC
R0wpCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRHJhd0J1ZmZlcnMuY3BwCiAgICAgICAgIGh0
bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEZy
YW1lYnVmZmVyLmNwcAotICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwCiAgICAg
ICAgIGh0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuY3BwCiAgICAgICAgIGh0bWwvY2FudmFz
L1dlYkdMT2JqZWN0LmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3Bw
CmluZGV4IDQzYzBkMDAwZDhlNzM1NTZmZWUxNzA0MmFmNjM5ZTA3OWVkOTkzMDQuLmRlOGQ3NmVh
YWNkNWFjOGJjNWUyMTRmZjQ5ODhkN2QyNmUyZjAyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC02OTMsMTggKzY5Mywx
OCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNv
dXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgIGJ1ZmZlci5hYm9ydElmVXBkYXRpbmcoKTsKIAogICAg
IC8vIDQuIExldCBTb3VyY2VCdWZmZXIgYXVkaW9UcmFja3MgbGlzdCBlcXVhbCB0aGUgQXVkaW9U
cmFja0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5IHNvdXJjZUJ1ZmZlci5hdWRpb1RyYWNrcy4KLSAg
ICBSZWZQdHI8QXVkaW9UcmFja0xpc3Q+IGF1ZGlvVHJhY2tzID0gYnVmZmVyLmF1ZGlvVHJhY2tz
KCk7CisgICAgYXV0byYgYXVkaW9UcmFja3MgPSBidWZmZXIuYXVkaW9UcmFja3MoKTsKIAogICAg
IC8vIDUuIElmIHRoZSBTb3VyY2VCdWZmZXIgYXVkaW9UcmFja3MgbGlzdCBpcyBub3QgZW1wdHks
IHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKGF1ZGlvVHJhY2tzLT5sZW5n
dGgoKSkgeworICAgIGlmIChhdWRpb1RyYWNrcy5sZW5ndGgoKSkgewogICAgICAgICAvLyA1LjEg
TGV0IEhUTUxNZWRpYUVsZW1lbnQgYXVkaW9UcmFja3MgbGlzdCBlcXVhbCB0aGUgQXVkaW9UcmFj
a0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5IHRoZSBhdWRpb1RyYWNrcwogICAgICAgICAvLyBhdHRy
aWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgICAgIC8vIDUuMiBMZXQgdGhlIHJl
bW92ZWQgZW5hYmxlZCBhdWRpbyB0cmFjayBmbGFnIGVxdWFsIGZhbHNlLgogICAgICAgICBib29s
IHJlbW92ZWRFbmFibGVkQXVkaW9UcmFjayA9IGZhbHNlOwogCiAgICAgICAgIC8vIDUuMyBGb3Ig
ZWFjaCBBdWRpb1RyYWNrIG9iamVjdCBpbiB0aGUgU291cmNlQnVmZmVyIGF1ZGlvVHJhY2tzIGxp
c3QsIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICB3aGlsZSAoYXVkaW9UcmFja3Mt
Pmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiB0cmFjayA9ICphdWRpb1RyYWNrcy0+bGFz
dEl0ZW0oKTsKKyAgICAgICAgd2hpbGUgKGF1ZGlvVHJhY2tzLmxlbmd0aCgpKSB7CisgICAgICAg
ICAgICBhdXRvJiB0cmFjayA9ICphdWRpb1RyYWNrcy5sYXN0SXRlbSgpOwogCiAgICAgICAgICAg
ICAvLyA1LjMuMSBTZXQgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhlIEF1ZGlvVHJh
Y2sgb2JqZWN0IHRvIG51bGwuCiAgICAgICAgICAgICB0cmFjay5zZXRTb3VyY2VCdWZmZXIobnVs
bHB0cik7CkBAIC03MjMsNyArNzIzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6
OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICAgICAgICAgIC8v
IDUuMy41IFJlbW92ZSB0aGUgQXVkaW9UcmFjayBvYmplY3QgZnJvbSB0aGUgU291cmNlQnVmZmVy
IGF1ZGlvVHJhY2tzIGxpc3QuCiAgICAgICAgICAgICAvLyA1LjMuNiBRdWV1ZSBhIHRhc2sgdG8g
ZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgcmVtb3ZldHJhY2ssIHRoYXQgZG9lcyBub3QgYnVi
YmxlIGFuZCBpcyBub3QKICAgICAgICAgICAgIC8vIGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMg
dGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgU291cmNlQnVmZmVyIGF1ZGlvVHJhY2tz
IGxpc3QuCi0gICAgICAgICAgICBhdWRpb1RyYWNrcy0+cmVtb3ZlKHRyYWNrKTsKKyAgICAgICAg
ICAgIGF1ZGlvVHJhY2tzLnJlbW92ZSh0cmFjayk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyA1
LjQgSWYgdGhlIHJlbW92ZWQgZW5hYmxlZCBhdWRpbyB0cmFjayBmbGFnIGVxdWFscyB0cnVlLCB0
aGVuIHF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50CkBAIC03MzMsMTggKzczMywx
OCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNv
dXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgIH0KIAogICAgIC8vIDYuIExldCBTb3VyY2VCdWZmZXIg
dmlkZW9UcmFja3MgbGlzdCBlcXVhbCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0IHJldHVybmVk
IGJ5IHNvdXJjZUJ1ZmZlci52aWRlb1RyYWNrcy4KLSAgICBSZWZQdHI8VmlkZW9UcmFja0xpc3Q+
IHZpZGVvVHJhY2tzID0gYnVmZmVyLnZpZGVvVHJhY2tzKCk7CisgICAgYXV0byYgdmlkZW9UcmFj
a3MgPSBidWZmZXIudmlkZW9UcmFja3MoKTsKIAogICAgIC8vIDcuIElmIHRoZSBTb3VyY2VCdWZm
ZXIgdmlkZW9UcmFja3MgbGlzdCBpcyBub3QgZW1wdHksIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcg
c3RlcHM6Ci0gICAgaWYgKHZpZGVvVHJhY2tzLT5sZW5ndGgoKSkgeworICAgIGlmICh2aWRlb1Ry
YWNrcy5sZW5ndGgoKSkgewogICAgICAgICAvLyA3LjEgTGV0IEhUTUxNZWRpYUVsZW1lbnQgdmlk
ZW9UcmFja3MgbGlzdCBlcXVhbCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5
IHRoZSB2aWRlb1RyYWNrcwogICAgICAgICAvLyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVs
ZW1lbnQuCiAgICAgICAgIC8vIDcuMiBMZXQgdGhlIHJlbW92ZWQgc2VsZWN0ZWQgdmlkZW8gdHJh
Y2sgZmxhZyBlcXVhbCBmYWxzZS4KICAgICAgICAgYm9vbCByZW1vdmVkU2VsZWN0ZWRWaWRlb1Ry
YWNrID0gZmFsc2U7CiAKICAgICAgICAgLy8gNy4zIEZvciBlYWNoIFZpZGVvVHJhY2sgb2JqZWN0
IGluIHRoZSBTb3VyY2VCdWZmZXIgdmlkZW9UcmFja3MgbGlzdCwgcnVuIHRoZSBmb2xsb3dpbmcg
c3RlcHM6Ci0gICAgICAgIHdoaWxlICh2aWRlb1RyYWNrcy0+bGVuZ3RoKCkpIHsKLSAgICAgICAg
ICAgIGF1dG8mIHRyYWNrID0gKnZpZGVvVHJhY2tzLT5sYXN0SXRlbSgpOworICAgICAgICB3aGls
ZSAodmlkZW9UcmFja3MubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHRyYWNrID0gKnZp
ZGVvVHJhY2tzLmxhc3RJdGVtKCk7CiAKICAgICAgICAgICAgIC8vIDcuMy4xIFNldCB0aGUgc291
cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGUgVmlkZW9UcmFjayBvYmplY3QgdG8gbnVsbC4KICAg
ICAgICAgICAgIHRyYWNrLnNldFNvdXJjZUJ1ZmZlcihudWxscHRyKTsKQEAgLTc2Myw3ICs3NjMs
NyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNv
dXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgICAgICAgICAgLy8gNy4zLjUgUmVtb3ZlIHRoZSBWaWRl
b1RyYWNrIG9iamVjdCBmcm9tIHRoZSBTb3VyY2VCdWZmZXIgdmlkZW9UcmFja3MgbGlzdC4KICAg
ICAgICAgICAgIC8vIDcuMy42IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBu
YW1lZCByZW1vdmV0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzIG5vdAogICAgICAg
ICAgICAgLy8gY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZh
Y2UsIGF0IHRoZSBTb3VyY2VCdWZmZXIgdmlkZW9UcmFja3MgbGlzdC4KLSAgICAgICAgICAgIHZp
ZGVvVHJhY2tzLT5yZW1vdmUodHJhY2spOworICAgICAgICAgICAgdmlkZW9UcmFja3MucmVtb3Zl
KHRyYWNrKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIDcuNCBJZiB0aGUgcmVtb3ZlZCBzZWxl
Y3RlZCB2aWRlbyB0cmFjayBmbGFnIGVxdWFscyB0cnVlLCB0aGVuIHF1ZXVlIGEgdGFzayB0byBm
aXJlIGEgc2ltcGxlIGV2ZW50CkBAIC03NzMsMTggKzc3MywxOCBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciYgYnVmZmVyKQog
ICAgIH0KIAogICAgIC8vIDguIExldCBTb3VyY2VCdWZmZXIgdGV4dFRyYWNrcyBsaXN0IGVxdWFs
IHRoZSBUZXh0VHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSBzb3VyY2VCdWZmZXIudGV4dFRy
YWNrcy4KLSAgICBSZWZQdHI8VGV4dFRyYWNrTGlzdD4gdGV4dFRyYWNrcyA9IGJ1ZmZlci50ZXh0
VHJhY2tzKCk7CisgICAgYXV0byYgdGV4dFRyYWNrcyA9IGJ1ZmZlci50ZXh0VHJhY2tzKCk7CiAK
ICAgICAvLyA5LiBJZiB0aGUgU291cmNlQnVmZmVyIHRleHRUcmFja3MgbGlzdCBpcyBub3QgZW1w
dHksIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKHRleHRUcmFja3MtPmxl
bmd0aCgpKSB7CisgICAgaWYgKHRleHRUcmFja3MubGVuZ3RoKCkpIHsKICAgICAgICAgLy8gOS4x
IExldCBIVE1MTWVkaWFFbGVtZW50IHRleHRUcmFja3MgbGlzdCBlcXVhbCB0aGUgVGV4dFRyYWNr
TGlzdCBvYmplY3QgcmV0dXJuZWQgYnkgdGhlIHRleHRUcmFja3MKICAgICAgICAgLy8gYXR0cmli
dXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAgICAgICAvLyA5LjIgTGV0IHRoZSByZW1v
dmVkIGVuYWJsZWQgdGV4dCB0cmFjayBmbGFnIGVxdWFsIGZhbHNlLgogICAgICAgICBib29sIHJl
bW92ZWRFbmFibGVkVGV4dFRyYWNrID0gZmFsc2U7CiAKICAgICAgICAgLy8gOS4zIEZvciBlYWNo
IFRleHRUcmFjayBvYmplY3QgaW4gdGhlIFNvdXJjZUJ1ZmZlciB0ZXh0VHJhY2tzIGxpc3QsIHJ1
biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICB3aGlsZSAodGV4dFRyYWNrcy0+bGVuZ3Ro
KCkpIHsKLSAgICAgICAgICAgIGF1dG8mIHRyYWNrID0gKnRleHRUcmFja3MtPmxhc3RJdGVtKCk7
CisgICAgICAgIHdoaWxlICh0ZXh0VHJhY2tzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRv
JiB0cmFjayA9ICp0ZXh0VHJhY2tzLmxhc3RJdGVtKCk7CiAKICAgICAgICAgICAgIC8vIDkuMy4x
IFNldCB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGUgVGV4dFRyYWNrIG9iamVjdCB0
byBudWxsLgogICAgICAgICAgICAgdHJhY2suc2V0U291cmNlQnVmZmVyKG51bGxwdHIpOwpAQCAt
ODAzLDcgKzgwMyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3Vy
Y2VCdWZmZXIoU291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgICAgICAgICAvLyA5LjMuNSBSZW1v
dmUgdGhlIFRleHRUcmFjayBvYmplY3QgZnJvbSB0aGUgU291cmNlQnVmZmVyIHRleHRUcmFja3Mg
bGlzdC4KICAgICAgICAgICAgIC8vIDkuMy42IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3Rl
ZCBldmVudCBuYW1lZCByZW1vdmV0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzIG5v
dAogICAgICAgICAgICAgLy8gY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVu
dCBpbnRlcmZhY2UsIGF0IHRoZSBTb3VyY2VCdWZmZXIgdGV4dFRyYWNrcyBsaXN0LgotICAgICAg
ICAgICAgdGV4dFRyYWNrcy0+cmVtb3ZlKHRyYWNrKTsKKyAgICAgICAgICAgIHRleHRUcmFja3Mu
cmVtb3ZlKHRyYWNrKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIDkuNCBJZiB0aGUgcmVtb3Zl
ZCBlbmFibGVkIHRleHQgdHJhY2sgZmxhZyBlcXVhbHMgdHJ1ZSwgdGhlbiBxdWV1ZSBhIHRhc2sg
dG8gZmlyZSBhIHNpbXBsZSBldmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IDdmZWU3ZTYwYjIyZTQ0ODM0MWNhYTA5
YWQ5ODk5NjgwOWE1ZTQyNmMuLjJlMTRiZTJjOTZjMzVmZDYxMzk3ZTBhN2E2NTU5NTY5ZDkzOWIw
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJj
ZUJ1ZmZlci5jcHAKQEAgLTQyMSw3ICs0MjEsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c2Vla1Rv
VGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUpCiAgICAgfQogfQogCi1NZWRpYVRpbWUgU291cmNl
QnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKFNvdXJj
ZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHRhcmdldFRpbWUsIGNvbnN0IE1lZGlh
VGltZSYgbmVnYXRpdmVUaHJlc2hvbGQsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpdmVUaHJlc2hv
bGQpCitNZWRpYVRpbWUgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtU
aW1lRm9yTWVkaWFUaW1lKGNvbnN0IE1lZGlhVGltZSYgdGFyZ2V0VGltZSwgY29uc3QgTWVkaWFU
aW1lJiBuZWdhdGl2ZVRocmVzaG9sZCwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRocmVzaG9s
ZCkKIHsKICAgICBNZWRpYVRpbWUgc2Vla1RpbWUgPSB0YXJnZXRUaW1lOwogICAgIE1lZGlhVGlt
ZSBsb3dlckJvdW5kVGltZSA9IHRhcmdldFRpbWUgLSBuZWdhdGl2ZVRocmVzaG9sZDsKQEAgLTU2
Niw3ICs1NjYsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6YXBwZW5kQnVmZmVyVGltZXJGaXJlZCgp
CiAKICAgICAvLyAxLiBMb29wIFRvcDogSWYgdGhlIGlucHV0IGJ1ZmZlciBpcyBlbXB0eSwgdGhl
biBqdW1wIHRvIHRoZSBuZWVkIG1vcmUgZGF0YSBzdGVwIGJlbG93LgogICAgIGlmICghbV9wZW5k
aW5nQXBwZW5kRGF0YS5zaXplKCkpIHsKLSAgICAgICAgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVu
ZENvbXBsZXRlKCZtX3ByaXZhdGUuZ2V0KCksIEFwcGVuZFN1Y2NlZWRlZCk7CisgICAgICAgIHNv
dXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShBcHBlbmRTdWNjZWVkZWQpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC01NzQsNyArNTc0LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6
OmFwcGVuZEJ1ZmZlclRpbWVyRmlyZWQoKQogICAgIG1fcGVuZGluZ0FwcGVuZERhdGEuY2xlYXIo
KTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21w
bGV0ZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXBwZW5kUmVzdWx0IHJlc3VsdCkKK3ZvaWQgU291
cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoQXBwZW5kUmVzdWx0
IHJlc3VsdCkKIHsKICAgICBpZiAoaXNSZW1vdmVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTYz
NSw3ICs2MzUsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVu
ZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBcHBlbgogICAgIExPRyhNZWRpYSwgIlNv
dXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKCVwKSAtIGJ1ZmZl
cmVkID0gJXMiLCB0aGlzLCB0b1N0cmluZyhtX2J1ZmZlcmVkLT5yYW5nZXMoKSkudXRmOCgpLmRh
dGEoKSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVj
ZWl2ZVJlbmRlcmluZ0Vycm9yKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBpbnQgZXJyb3IpCit2b2lk
IFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJv
cihpbnQgZXJyb3IpCiB7CiAjaWYgTE9HX0RJU0FCTEVECiAgICAgVU5VU0VEX1BBUkFNKGVycm9y
KTsKQEAgLTk0NSwzNSArOTQ1LDMyIEBAIHNpemVfdCBTb3VyY2VCdWZmZXI6Om1heGltdW1CdWZm
ZXJTaXplKCkgY29uc3QKICAgICBpZiAoaXNSZW1vdmVkKCkpCiAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgSFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCA9IG1fc291cmNlLT5tZWRpYUVsZW1lbnQo
KTsKKyAgICBhdXRvKiBlbGVtZW50ID0gbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpOwogICAgIGlm
ICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICByZXR1cm4gZWxlbWVudC0+bWF4
aW11bVNvdXJjZUJ1ZmZlclNpemUoKnRoaXMpOwogfQogCi1WaWRlb1RyYWNrTGlzdCogU291cmNl
QnVmZmVyOjp2aWRlb1RyYWNrcygpCitWaWRlb1RyYWNrTGlzdCYgU291cmNlQnVmZmVyOjp2aWRl
b1RyYWNrcygpCiB7CiAgICAgaWYgKCFtX3ZpZGVvVHJhY2tzKQotICAgICAgICBtX3ZpZGVvVHJh
Y2tzID0gVmlkZW9UcmFja0xpc3Q6OmNyZWF0ZShtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCksIEFj
dGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLQotICAgIHJldHVybiBt
X3ZpZGVvVHJhY2tzLmdldCgpOworICAgICAgICBtX3ZpZGVvVHJhY2tzID0gVmlkZW9UcmFja0xp
c3Q6OmNyZWF0ZShtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCksIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSk7CisgICAgcmV0dXJuICptX3ZpZGVvVHJhY2tzOwogfQogCi1BdWRpb1RyYWNrTGlzdCog
U291cmNlQnVmZmVyOjphdWRpb1RyYWNrcygpCitBdWRpb1RyYWNrTGlzdCYgU291cmNlQnVmZmVy
OjphdWRpb1RyYWNrcygpCiB7CiAgICAgaWYgKCFtX2F1ZGlvVHJhY2tzKQotICAgICAgICBtX2F1
ZGlvVHJhY2tzID0gQXVkaW9UcmFja0xpc3Q6OmNyZWF0ZShtX3NvdXJjZS0+bWVkaWFFbGVtZW50
KCksIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLQotICAgIHJl
dHVybiBtX2F1ZGlvVHJhY2tzLmdldCgpOworICAgICAgICBtX2F1ZGlvVHJhY2tzID0gQXVkaW9U
cmFja0xpc3Q6OmNyZWF0ZShtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCksIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSk7CisgICAgcmV0dXJuICptX2F1ZGlvVHJhY2tzOwogfQogCi1UZXh0VHJhY2tM
aXN0KiBTb3VyY2VCdWZmZXI6OnRleHRUcmFja3MoKQorVGV4dFRyYWNrTGlzdCYgU291cmNlQnVm
ZmVyOjp0ZXh0VHJhY2tzKCkKIHsKICAgICBpZiAoIW1fdGV4dFRyYWNrcykKLSAgICAgICAgbV90
ZXh0VHJhY2tzID0gVGV4dFRyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQo
KSwgQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0gICAgcmV0
dXJuIG1fdGV4dFRyYWNrcy5nZXQoKTsKKyAgICAgICAgbV90ZXh0VHJhY2tzID0gVGV4dFRyYWNr
TGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKTsKKyAgICByZXR1cm4gKm1fdGV4dFRyYWNrczsKIH0KIAogdm9pZCBTb3VyY2VCdWZm
ZXI6OnNldEFjdGl2ZShib29sIGFjdGl2ZSkKQEAgLTk4Nyw3ICs5ODQsNyBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlcjo6c2V0QWN0aXZlKGJvb2wgYWN0aXZlKQogICAgICAgICBtX3NvdXJjZS0+c291cmNl
QnVmZmVyRGlkQ2hhbmdlQWN0aXZlU3RhdGUoKnRoaXMsIGFjdGl2ZSk7CiB9CiAKLXZvaWQgU291
cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2Vn
bWVudChTb3VyY2VCdWZmZXJQcml2YXRlKiwgY29uc3QgSW5pdGlhbGl6YXRpb25TZWdtZW50JiBz
ZWdtZW50KQordm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZl
SW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYgc2VnbWVu
dCkKIHsKICAgICBpZiAoaXNSZW1vdmVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEwMjQsNDAg
KzEwMjEsNDAgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNl
aXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgICAgICAvLyAzLjIgQWRkIHRoZSBhcHByb3ByaWF0ZSB0cmFjayBkZXNj
cmlwdGlvbnMgZnJvbSB0aGlzIGluaXRpYWxpemF0aW9uIHNlZ21lbnQgdG8gZWFjaCBvZiB0aGUg
dHJhY2sgYnVmZmVycy4KLSAgICAgICAgQVNTRVJUKHNlZ21lbnQuYXVkaW9UcmFja3Muc2l6ZSgp
ID09IGF1ZGlvVHJhY2tzKCktPmxlbmd0aCgpKTsKKyAgICAgICAgQVNTRVJUKHNlZ21lbnQuYXVk
aW9UcmFja3Muc2l6ZSgpID09IGF1ZGlvVHJhY2tzKCkubGVuZ3RoKCkpOwogICAgICAgICBmb3Ig
KGF1dG8mIGF1ZGlvVHJhY2tJbmZvIDogc2VnbWVudC5hdWRpb1RyYWNrcykgewotICAgICAgICAg
ICAgaWYgKGF1ZGlvVHJhY2tzKCktPmxlbmd0aCgpID09IDEpIHsKLSAgICAgICAgICAgICAgICBh
dWRpb1RyYWNrcygpLT5pdGVtKDApLT5zZXRQcml2YXRlKGF1ZGlvVHJhY2tJbmZvLnRyYWNrKTsK
KyAgICAgICAgICAgIGlmIChhdWRpb1RyYWNrcygpLmxlbmd0aCgpID09IDEpIHsKKyAgICAgICAg
ICAgICAgICBhdWRpb1RyYWNrcygpLml0ZW0oMCktPnNldFByaXZhdGUoKmF1ZGlvVHJhY2tJbmZv
LnRyYWNrKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAotICAgICAg
ICAgICAgYXV0byBhdWRpb1RyYWNrID0gYXVkaW9UcmFja3MoKS0+Z2V0VHJhY2tCeUlkKGF1ZGlv
VHJhY2tJbmZvLnRyYWNrLT5pZCgpKTsKKyAgICAgICAgICAgIGF1dG8gYXVkaW9UcmFjayA9IGF1
ZGlvVHJhY2tzKCkuZ2V0VHJhY2tCeUlkKGF1ZGlvVHJhY2tJbmZvLnRyYWNrLT5pZCgpKTsKICAg
ICAgICAgICAgIEFTU0VSVChhdWRpb1RyYWNrKTsKLSAgICAgICAgICAgIGF1ZGlvVHJhY2stPnNl
dFByaXZhdGUoYXVkaW9UcmFja0luZm8udHJhY2spOworICAgICAgICAgICAgYXVkaW9UcmFjay0+
c2V0UHJpdmF0ZSgqYXVkaW9UcmFja0luZm8udHJhY2spOwogICAgICAgICB9CiAKLSAgICAgICAg
QVNTRVJUKHNlZ21lbnQudmlkZW9UcmFja3Muc2l6ZSgpID09IHZpZGVvVHJhY2tzKCktPmxlbmd0
aCgpKTsKKyAgICAgICAgQVNTRVJUKHNlZ21lbnQudmlkZW9UcmFja3Muc2l6ZSgpID09IHZpZGVv
VHJhY2tzKCkubGVuZ3RoKCkpOwogICAgICAgICBmb3IgKGF1dG8mIHZpZGVvVHJhY2tJbmZvIDog
c2VnbWVudC52aWRlb1RyYWNrcykgewotICAgICAgICAgICAgaWYgKHZpZGVvVHJhY2tzKCktPmxl
bmd0aCgpID09IDEpIHsKLSAgICAgICAgICAgICAgICB2aWRlb1RyYWNrcygpLT5pdGVtKDApLT5z
ZXRQcml2YXRlKHZpZGVvVHJhY2tJbmZvLnRyYWNrKTsKKyAgICAgICAgICAgIGlmICh2aWRlb1Ry
YWNrcygpLmxlbmd0aCgpID09IDEpIHsKKyAgICAgICAgICAgICAgICB2aWRlb1RyYWNrcygpLml0
ZW0oMCktPnNldFByaXZhdGUoKnZpZGVvVHJhY2tJbmZvLnRyYWNrKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byB2aWRlb1RyYWNrID0g
dmlkZW9UcmFja3MoKS0+Z2V0VHJhY2tCeUlkKHZpZGVvVHJhY2tJbmZvLnRyYWNrLT5pZCgpKTsK
KyAgICAgICAgICAgIGF1dG8gdmlkZW9UcmFjayA9IHZpZGVvVHJhY2tzKCkuZ2V0VHJhY2tCeUlk
KHZpZGVvVHJhY2tJbmZvLnRyYWNrLT5pZCgpKTsKICAgICAgICAgICAgIEFTU0VSVCh2aWRlb1Ry
YWNrKTsKLSAgICAgICAgICAgIHZpZGVvVHJhY2stPnNldFByaXZhdGUodmlkZW9UcmFja0luZm8u
dHJhY2spOworICAgICAgICAgICAgdmlkZW9UcmFjay0+c2V0UHJpdmF0ZSgqdmlkZW9UcmFja0lu
Zm8udHJhY2spOwogICAgICAgICB9CiAKLSAgICAgICAgQVNTRVJUKHNlZ21lbnQudGV4dFRyYWNr
cy5zaXplKCkgPT0gdGV4dFRyYWNrcygpLT5sZW5ndGgoKSk7CisgICAgICAgIEFTU0VSVChzZWdt
ZW50LnRleHRUcmFja3Muc2l6ZSgpID09IHRleHRUcmFja3MoKS5sZW5ndGgoKSk7CiAgICAgICAg
IGZvciAoYXV0byYgdGV4dFRyYWNrSW5mbyA6IHNlZ21lbnQudGV4dFRyYWNrcykgewotICAgICAg
ICAgICAgaWYgKHRleHRUcmFja3MoKS0+bGVuZ3RoKCkgPT0gMSkgewotICAgICAgICAgICAgICAg
IGRvd25jYXN0PEluYmFuZFRleHRUcmFjaz4oKnRleHRUcmFja3MoKS0+aXRlbSgwKSkuc2V0UHJp
dmF0ZSh0ZXh0VHJhY2tJbmZvLnRyYWNrKTsKKyAgICAgICAgICAgIGlmICh0ZXh0VHJhY2tzKCku
bGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgICAgIGRvd25jYXN0PEluYmFuZFRleHRUcmFj
az4oKnRleHRUcmFja3MoKS5pdGVtKDApKS5zZXRQcml2YXRlKCp0ZXh0VHJhY2tJbmZvLnRyYWNr
KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
YXV0byB0ZXh0VHJhY2sgPSB0ZXh0VHJhY2tzKCktPmdldFRyYWNrQnlJZCh0ZXh0VHJhY2tJbmZv
LnRyYWNrLT5pZCgpKTsKKyAgICAgICAgICAgIGF1dG8gdGV4dFRyYWNrID0gdGV4dFRyYWNrcygp
LmdldFRyYWNrQnlJZCh0ZXh0VHJhY2tJbmZvLnRyYWNrLT5pZCgpKTsKICAgICAgICAgICAgIEFT
U0VSVCh0ZXh0VHJhY2spOwotICAgICAgICAgICAgZG93bmNhc3Q8SW5iYW5kVGV4dFRyYWNrPigq
dGV4dFRyYWNrKS5zZXRQcml2YXRlKHRleHRUcmFja0luZm8udHJhY2spOworICAgICAgICAgICAg
ZG93bmNhc3Q8SW5iYW5kVGV4dFRyYWNrPigqdGV4dFRyYWNrKS5zZXRQcml2YXRlKCp0ZXh0VHJh
Y2tJbmZvLnRyYWNrKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIDMuMyBTZXQgdGhlIG5lZWQg
cmFuZG9tIGFjY2VzcyBwb2ludCBmbGFnIG9uIGFsbCB0cmFjayBidWZmZXJzIHRvIHRydWUuCkBA
IC0xMDc2LDE2ICsxMDczLDE0IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2
YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmCiAKICAgICAgICAg
Ly8gNS4yIEZvciBlYWNoIGF1ZGlvIHRyYWNrIGluIHRoZSBpbml0aWFsaXphdGlvbiBzZWdtZW50
LCBydW4gZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2tJbmZv
IDogc2VnbWVudC5hdWRpb1RyYWNrcykgewotICAgICAgICAgICAgQXVkaW9UcmFja1ByaXZhdGUq
IGF1ZGlvVHJhY2tQcml2YXRlID0gYXVkaW9UcmFja0luZm8udHJhY2suZ2V0KCk7Ci0KICAgICAg
ICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgc3RlcHMgNS4yLjEtNS4yLjguMSBhcyBwZXIgRWRp
dG9yJ3MgRHJhZnQgMDkgSmFudWFyeSAyMDE1LCBhbmQgcmVvcmRlciB0aGlzCiAgICAgICAgICAg
ICAvLyA1LjIuMSBMZXQgbmV3IGF1ZGlvIHRyYWNrIGJlIGEgbmV3IEF1ZGlvVHJhY2sgb2JqZWN0
LgogICAgICAgICAgICAgLy8gNS4yLjIgR2VuZXJhdGUgYSB1bmlxdWUgSUQgYW5kIGFzc2lnbiBp
dCB0byB0aGUgaWQgcHJvcGVydHkgb24gbmV3IHZpZGVvIHRyYWNrLgotICAgICAgICAgICAgYXV0
byBuZXdBdWRpb1RyYWNrID0gQXVkaW9UcmFjazo6Y3JlYXRlKHRoaXMsIGF1ZGlvVHJhY2tQcml2
YXRlKTsKKyAgICAgICAgICAgIGF1dG8gbmV3QXVkaW9UcmFjayA9IEF1ZGlvVHJhY2s6OmNyZWF0
ZSgqdGhpcywgKmF1ZGlvVHJhY2tJbmZvLnRyYWNrKTsKICAgICAgICAgICAgIG5ld0F1ZGlvVHJh
Y2stPnNldFNvdXJjZUJ1ZmZlcih0aGlzKTsKIAogICAgICAgICAgICAgLy8gNS4yLjMgSWYgYXVk
aW9UcmFja3MubGVuZ3RoIGVxdWFscyAwLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgot
ICAgICAgICAgICAgaWYgKCFhdWRpb1RyYWNrcygpLT5sZW5ndGgoKSkgeworICAgICAgICAgICAg
aWYgKCFhdWRpb1RyYWNrcygpLmxlbmd0aCgpKSB7CiAgICAgICAgICAgICAgICAgLy8gNS4yLjMu
MSBTZXQgdGhlIGVuYWJsZWQgcHJvcGVydHkgb24gbmV3IGF1ZGlvIHRyYWNrIHRvIHRydWUuCiAg
ICAgICAgICAgICAgICAgbmV3QXVkaW9UcmFjay0+c2V0RW5hYmxlZCh0cnVlKTsKIApAQCAtMTA5
Nyw3ICsxMDkyLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRS
ZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKICAgICAgICAgICAgIC8vIDUu
Mi41IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0cmFjaywg
dGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCiAgICAgICAgICAgICAvLyBub3QgY2FuY2VsYWJs
ZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZhY2UsIGF0IHRoZSBBdWRpb1Ry
YWNrTGlzdCBvYmplY3QKICAgICAgICAgICAgIC8vIHJlZmVyZW5jZWQgYnkgdGhlIGF1ZGlvVHJh
Y2tzIGF0dHJpYnV0ZSBvbiB0aGlzIFNvdXJjZUJ1ZmZlciBvYmplY3QuCi0gICAgICAgICAgICBh
dWRpb1RyYWNrcygpLT5hcHBlbmQobmV3QXVkaW9UcmFjay5jb3B5UmVmKCkpOworICAgICAgICAg
ICAgYXVkaW9UcmFja3MoKS5hcHBlbmQobmV3QXVkaW9UcmFjay5jb3B5UmVmKCkpOwogCiAgICAg
ICAgICAgICAvLyA1LjIuNiBBZGQgbmV3IGF1ZGlvIHRyYWNrIHRvIHRoZSBhdWRpb1RyYWNrcyBh
dHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgICAgICAgICAvLyA1LjIuNyBR
dWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgYWRkdHJhY2ssIHRoYXQg
ZG9lcyBub3QgYnViYmxlIGFuZCBpcwpAQCAtMTEwNyw3ICsxMTAyLDcgQEAgdm9pZCBTb3VyY2VC
dWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50
KFNvdXJjZUJ1ZmYKIAogICAgICAgICAgICAgLy8gNS4yLjggQ3JlYXRlIGEgbmV3IHRyYWNrIGJ1
ZmZlciB0byBzdG9yZSBjb2RlZCBmcmFtZXMgZm9yIHRoaXMgdHJhY2suCiAgICAgICAgICAgICBB
U1NFUlQoIW1fdHJhY2tCdWZmZXJNYXAuY29udGFpbnMobmV3QXVkaW9UcmFjay0+aWQoKSkpOwot
ICAgICAgICAgICAgVHJhY2tCdWZmZXImIHRyYWNrQnVmZmVyID0gbV90cmFja0J1ZmZlck1hcC5h
ZGQobmV3QXVkaW9UcmFjay0+aWQoKSwgVHJhY2tCdWZmZXIoKSkuaXRlcmF0b3ItPnZhbHVlOwor
ICAgICAgICAgICAgYXV0byYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVmZmVyTWFwLmFkZChuZXdB
dWRpb1RyYWNrLT5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFsdWU7CiAKICAgICAg
ICAgICAgIC8vIDUuMi45IEFkZCB0aGUgdHJhY2sgZGVzY3JpcHRpb24gZm9yIHRoaXMgdHJhY2sg
dG8gdGhlIHRyYWNrIGJ1ZmZlci4KICAgICAgICAgICAgIHRyYWNrQnVmZmVyLmRlc2NyaXB0aW9u
ID0gYXVkaW9UcmFja0luZm8uZGVzY3JpcHRpb247CkBAIC0xMTE3LDE2ICsxMTEyLDE0IEBAIHZv
aWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0
aW9uU2VnbWVudChTb3VyY2VCdWZmCiAKICAgICAgICAgLy8gNS4zIEZvciBlYWNoIHZpZGVvIHRy
YWNrIGluIHRoZSBpbml0aWFsaXphdGlvbiBzZWdtZW50LCBydW4gZm9sbG93aW5nIHN0ZXBzOgog
ICAgICAgICBmb3IgKGF1dG8mIHZpZGVvVHJhY2tJbmZvIDogc2VnbWVudC52aWRlb1RyYWNrcykg
ewotICAgICAgICAgICAgVmlkZW9UcmFja1ByaXZhdGUqIHZpZGVvVHJhY2tQcml2YXRlID0gdmlk
ZW9UcmFja0luZm8udHJhY2suZ2V0KCk7Ci0KICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgc3RlcHMgNS4zLjEtNS4zLjguMSBhcyBwZXIgRWRpdG9yJ3MgRHJhZnQgMDkgSmFudWFyeSAy
MDE1LCBhbmQgcmVvcmRlciB0aGlzCiAgICAgICAgICAgICAvLyA1LjMuMSBMZXQgbmV3IHZpZGVv
IHRyYWNrIGJlIGEgbmV3IFZpZGVvVHJhY2sgb2JqZWN0LgogICAgICAgICAgICAgLy8gNS4zLjIg
R2VuZXJhdGUgYSB1bmlxdWUgSUQgYW5kIGFzc2lnbiBpdCB0byB0aGUgaWQgcHJvcGVydHkgb24g
bmV3IHZpZGVvIHRyYWNrLgotICAgICAgICAgICAgYXV0byBuZXdWaWRlb1RyYWNrID0gVmlkZW9U
cmFjazo6Y3JlYXRlKHRoaXMsIHZpZGVvVHJhY2tQcml2YXRlKTsKKyAgICAgICAgICAgIGF1dG8g
bmV3VmlkZW9UcmFjayA9IFZpZGVvVHJhY2s6OmNyZWF0ZSgqdGhpcywgKnZpZGVvVHJhY2tJbmZv
LnRyYWNrKTsKICAgICAgICAgICAgIG5ld1ZpZGVvVHJhY2stPnNldFNvdXJjZUJ1ZmZlcih0aGlz
KTsKIAogICAgICAgICAgICAgLy8gNS4zLjMgSWYgdmlkZW9UcmFja3MubGVuZ3RoIGVxdWFscyAw
LCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICAgICAgaWYgKCF2aWRlb1Ry
YWNrcygpLT5sZW5ndGgoKSkgeworICAgICAgICAgICAgaWYgKCF2aWRlb1RyYWNrcygpLmxlbmd0
aCgpKSB7CiAgICAgICAgICAgICAgICAgLy8gNS4zLjMuMSBTZXQgdGhlIHNlbGVjdGVkIHByb3Bl
cnR5IG9uIG5ldyB2aWRlbyB0cmFjayB0byB0cnVlLgogICAgICAgICAgICAgICAgIG5ld1ZpZGVv
VHJhY2stPnNldFNlbGVjdGVkKHRydWUpOwogCkBAIC0xMTM4LDcgKzExMzEsNyBAQCB2b2lkIFNv
dXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNl
Z21lbnQoU291cmNlQnVmZgogICAgICAgICAgICAgLy8gNS4zLjUgUXVldWUgYSB0YXNrIHRvIGZp
cmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBh
bmQgaXMKICAgICAgICAgICAgIC8vIG5vdCBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBU
cmFja0V2ZW50IGludGVyZmFjZSwgYXQgdGhlIFZpZGVvVHJhY2tMaXN0IG9iamVjdAogICAgICAg
ICAgICAgLy8gcmVmZXJlbmNlZCBieSB0aGUgdmlkZW9UcmFja3MgYXR0cmlidXRlIG9uIHRoaXMg
U291cmNlQnVmZmVyIG9iamVjdC4KLSAgICAgICAgICAgIHZpZGVvVHJhY2tzKCktPmFwcGVuZChu
ZXdWaWRlb1RyYWNrLmNvcHlSZWYoKSk7CisgICAgICAgICAgICB2aWRlb1RyYWNrcygpLmFwcGVu
ZChuZXdWaWRlb1RyYWNrLmNvcHlSZWYoKSk7CiAKICAgICAgICAgICAgIC8vIDUuMy42IEFkZCBu
ZXcgdmlkZW8gdHJhY2sgdG8gdGhlIHZpZGVvVHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1l
ZGlhRWxlbWVudC4KICAgICAgICAgICAgIC8vIDUuMy43IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEg
dHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlz
CkBAIC0xMTQ4LDcgKzExNDEsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJp
dmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogCiAgICAgICAg
ICAgICAvLyA1LjMuOCBDcmVhdGUgYSBuZXcgdHJhY2sgYnVmZmVyIHRvIHN0b3JlIGNvZGVkIGZy
YW1lcyBmb3IgdGhpcyB0cmFjay4KICAgICAgICAgICAgIEFTU0VSVCghbV90cmFja0J1ZmZlck1h
cC5jb250YWlucyhuZXdWaWRlb1RyYWNrLT5pZCgpKSk7Ci0gICAgICAgICAgICBUcmFja0J1ZmZl
ciYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVmZmVyTWFwLmFkZChuZXdWaWRlb1RyYWNrLT5pZCgp
LCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFsdWU7CisgICAgICAgICAgICBhdXRvJiB0cmFj
a0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKG5ld1ZpZGVvVHJhY2stPmlkKCksIFRyYWNr
QnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKIAogICAgICAgICAgICAgLy8gNS4zLjkgQWRkIHRo
ZSB0cmFjayBkZXNjcmlwdGlvbiBmb3IgdGhpcyB0cmFjayB0byB0aGUgdHJhY2sgYnVmZmVyLgog
ICAgICAgICAgICAgdHJhY2tCdWZmZXIuZGVzY3JpcHRpb24gPSB2aWRlb1RyYWNrSW5mby5kZXNj
cmlwdGlvbjsKQEAgLTExNTgsMzMgKzExNTEsMzMgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJj
ZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYK
IAogICAgICAgICAvLyA1LjQgRm9yIGVhY2ggdGV4dCB0cmFjayBpbiB0aGUgaW5pdGlhbGl6YXRp
b24gc2VnbWVudCwgcnVuIGZvbGxvd2luZyBzdGVwczoKICAgICAgICAgZm9yIChhdXRvJiB0ZXh0
VHJhY2tJbmZvIDogc2VnbWVudC50ZXh0VHJhY2tzKSB7Ci0gICAgICAgICAgICBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlKiB0ZXh0VHJhY2tQcml2YXRlID0gdGV4dFRyYWNrSW5mby50cmFjay5nZXQo
KTsKKyAgICAgICAgICAgIGF1dG8mIHRleHRUcmFja1ByaXZhdGUgPSAqdGV4dFRyYWNrSW5mby50
cmFjazsKIAogICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBzdGVwcyA1LjQuMS01LjQu
OC4xIGFzIHBlciBFZGl0b3IncyBEcmFmdCAwOSBKYW51YXJ5IDIwMTUsIGFuZCByZW9yZGVyIHRo
aXMKICAgICAgICAgICAgIC8vIDUuNC4xIExldCBuZXcgdGV4dCB0cmFjayBiZSBhIG5ldyBUZXh0
VHJhY2sgb2JqZWN0IHdpdGggaXRzIHByb3BlcnRpZXMgcG9wdWxhdGVkIHdpdGggdGhlCiAgICAg
ICAgICAgICAvLyBhcHByb3ByaWF0ZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBpbml0aWFsaXphdGlv
biBzZWdtZW50LgotICAgICAgICAgICAgUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gbmV3VGV4dFRy
YWNrID0gSW5iYW5kVGV4dFRyYWNrOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0
aGlzLCB0ZXh0VHJhY2tQcml2YXRlKTsKKyAgICAgICAgICAgIGF1dG8gbmV3VGV4dFRyYWNrID0g
SW5iYW5kVGV4dFRyYWNrOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMs
IHRleHRUcmFja1ByaXZhdGUpOwogCiAgICAgICAgICAgICAvLyA1LjQuMiBJZiB0aGUgbW9kZSBw
cm9wZXJ0eSBvbiBuZXcgdGV4dCB0cmFjayBlcXVhbHMgInNob3dpbmciIG9yICJoaWRkZW4iLCB0
aGVuIHNldCBhY3RpdmUKICAgICAgICAgICAgIC8vIHRyYWNrIGZsYWcgdG8gdHJ1ZS4KLSAgICAg
ICAgICAgIGlmICh0ZXh0VHJhY2tQcml2YXRlLT5tb2RlKCkgIT0gSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZTo6RGlzYWJsZWQpCisgICAgICAgICAgICBpZiAodGV4dFRyYWNrUHJpdmF0ZS5tb2RlKCkg
IT0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6RGlzYWJsZWQpCiAgICAgICAgICAgICAgICAgYWN0
aXZlVHJhY2tGbGFnID0gdHJ1ZTsKIAogICAgICAgICAgICAgLy8gNS40LjMgQWRkIG5ldyB0ZXh0
IHRyYWNrIHRvIHRoZSB0ZXh0VHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGlzIFNvdXJjZUJ1ZmZlciBv
YmplY3QuCiAgICAgICAgICAgICAvLyA1LjQuNCBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHRydXN0
ZWQgZXZlbnQgbmFtZWQgYWRkdHJhY2ssIHRoYXQgZG9lcyBub3QgYnViYmxlIGFuZCBpcwogICAg
ICAgICAgICAgLy8gbm90IGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMgdGhlIFRyYWNrRXZlbnQg
aW50ZXJmYWNlLCBhdCB0ZXh0VHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGlzCiAgICAgICAgICAgICAv
LyBTb3VyY2VCdWZmZXIgb2JqZWN0LgotICAgICAgICAgICAgdGV4dFRyYWNrcygpLT5hcHBlbmQo
Km5ld1RleHRUcmFjayk7CisgICAgICAgICAgICB0ZXh0VHJhY2tzKCkuYXBwZW5kKG5ld1RleHRU
cmFjay5nZXQoKSk7CiAKICAgICAgICAgICAgIC8vIDUuNC41IEFkZCBuZXcgdGV4dCB0cmFjayB0
byB0aGUgdGV4dFRyYWNrcyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAg
ICAgICAgICAvLyA1LjQuNiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFt
ZWQgYWRkdHJhY2ssIHRoYXQgZG9lcyBub3QgYnViYmxlIGFuZCBpcwogICAgICAgICAgICAgLy8g
bm90IGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMgdGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBh
dCB0aGUgVGV4dFRyYWNrTGlzdCBvYmplY3QKICAgICAgICAgICAgIC8vIHJlZmVyZW5jZWQgYnkg
dGhlIHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgotICAgICAg
ICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tzKCkuYXBwZW5kKG5ld1Rl
eHRUcmFjay5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAgIG1fc291cmNlLT5tZWRpYUVs
ZW1lbnQoKS0+dGV4dFRyYWNrcygpLmFwcGVuZChXVEZNb3ZlKG5ld1RleHRUcmFjaykpOwogCiAg
ICAgICAgICAgICAvLyA1LjQuNyBDcmVhdGUgYSBuZXcgdHJhY2sgYnVmZmVyIHRvIHN0b3JlIGNv
ZGVkIGZyYW1lcyBmb3IgdGhpcyB0cmFjay4KLSAgICAgICAgICAgIEFTU0VSVCghbV90cmFja0J1
ZmZlck1hcC5jb250YWlucyh0ZXh0VHJhY2tQcml2YXRlLT5pZCgpKSk7Ci0gICAgICAgICAgICBU
cmFja0J1ZmZlciYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVmZmVyTWFwLmFkZCh0ZXh0VHJhY2tQ
cml2YXRlLT5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFsdWU7CisgICAgICAgICAg
ICBBU1NFUlQoIW1fdHJhY2tCdWZmZXJNYXAuY29udGFpbnModGV4dFRyYWNrUHJpdmF0ZS5pZCgp
KSk7CisgICAgICAgICAgICBhdXRvJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRk
KHRleHRUcmFja1ByaXZhdGUuaWQoKSwgVHJhY2tCdWZmZXIoKSkuaXRlcmF0b3ItPnZhbHVlOwog
CiAgICAgICAgICAgICAvLyA1LjQuOCBBZGQgdGhlIHRyYWNrIGRlc2NyaXB0aW9uIGZvciB0aGlz
IHRyYWNrIHRvIHRoZSB0cmFjayBidWZmZXIuCiAgICAgICAgICAgICB0cmFja0J1ZmZlci5kZXNj
cmlwdGlvbiA9IHRleHRUcmFja0luZm8uZGVzY3JpcHRpb247CkBAIC0xMjMxLDkgKzEyMjQsOSBA
QCBib29sIFNvdXJjZUJ1ZmZlcjo6dmFsaWRhdGVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3Qg
SW5pdGlhbGl6YXRpb25TZWdtZW50JiBzZQogCiAgICAgLy8gTm90ZTogdGhvc2UgYXJlIGNoZWNr
cyBmcm9tIHN0ZXAgMy4xCiAgICAgLy8gICAqIFRoZSBudW1iZXIgb2YgYXVkaW8sIHZpZGVvLCBh
bmQgdGV4dCB0cmFja3MgbWF0Y2ggd2hhdCB3YXMgaW4gdGhlIGZpcnN0IGluaXRpYWxpemF0aW9u
IHNlZ21lbnQuCi0gICAgaWYgKHNlZ21lbnQuYXVkaW9UcmFja3Muc2l6ZSgpICE9IGF1ZGlvVHJh
Y2tzKCktPmxlbmd0aCgpCi0gICAgICAgIHx8IHNlZ21lbnQudmlkZW9UcmFja3Muc2l6ZSgpICE9
IHZpZGVvVHJhY2tzKCktPmxlbmd0aCgpCi0gICAgICAgIHx8IHNlZ21lbnQudGV4dFRyYWNrcy5z
aXplKCkgIT0gdGV4dFRyYWNrcygpLT5sZW5ndGgoKSkKKyAgICBpZiAoc2VnbWVudC5hdWRpb1Ry
YWNrcy5zaXplKCkgIT0gYXVkaW9UcmFja3MoKS5sZW5ndGgoKQorICAgICAgICB8fCBzZWdtZW50
LnZpZGVvVHJhY2tzLnNpemUoKSAhPSB2aWRlb1RyYWNrcygpLmxlbmd0aCgpCisgICAgICAgIHx8
IHNlZ21lbnQudGV4dFRyYWNrcy5zaXplKCkgIT0gdGV4dFRyYWNrcygpLmxlbmd0aCgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyAgICogVGhlIGNvZGVjcyBmb3IgZWFjaCB0cmFj
aywgbWF0Y2ggd2hhdCB3YXMgc3BlY2lmaWVkIGluIHRoZSBmaXJzdCBpbml0aWFsaXphdGlvbiBz
ZWdtZW50LgpAQCAtMTMxOSw3ICsxMzEyLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OmFwcGVuZEVy
cm9yKGJvb2wgZGVjb2RlRXJyb3JQYXJhbSkKICAgICAgICAgbV9zb3VyY2UtPnN0cmVhbUVuZGVk
V2l0aEVycm9yKE1lZGlhU291cmNlOjpFbmRPZlN0cmVhbUVycm9yOjpEZWNvZGUpOwogfQogCi12
b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoU291
cmNlQnVmZmVyUHJpdmF0ZSosIE1lZGlhU2FtcGxlJiBzYW1wbGUpCit2b2lkIFNvdXJjZUJ1ZmZl
cjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBs
ZSkKIHsKICAgICBpZiAoaXNSZW1vdmVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE2NjYsMzAg
KzE2NTksMzAgQEAgYm9vbCBTb3VyY2VCdWZmZXI6Omhhc1ZpZGVvKCkgY29uc3QKICAgICByZXR1
cm4gbV92aWRlb1RyYWNrcyAmJiBtX3ZpZGVvVHJhY2tzLT5sZW5ndGgoKTsKIH0KIAotYm9vbCBT
b3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyhjb25zdCBTb3VyY2VCdWZm
ZXJQcml2YXRlKikgY29uc3QKK2Jvb2wgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRl
SGFzQXVkaW8oKSBjb25zdAogewogICAgIHJldHVybiBoYXNBdWRpbygpOwogfQogCi1ib29sIFNv
dXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKGNvbnN0IFNvdXJjZUJ1ZmZl
clByaXZhdGUqKSBjb25zdAorYm9vbCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVI
YXNWaWRlbygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc1ZpZGVvKCk7CiB9CiAKLXZvaWQgU291
cmNlQnVmZmVyOjp2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqIHRyYWNrKQor
dm9pZCBTb3VyY2VCdWZmZXI6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayYg
dHJhY2spCiB7CiAgICAgLy8gMi40LjUgQ2hhbmdlcyB0byBzZWxlY3RlZC9lbmFibGVkIHRyYWNr
IHN0YXRlCiAgICAgLy8gSWYgdGhlIHNlbGVjdGVkIHZpZGVvIHRyYWNrIGNoYW5nZXMsIHRoZW4g
cnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6CiAgICAgLy8gMS4gSWYgdGhlIFNvdXJjZUJ1ZmZlciBh
c3NvY2lhdGVkIHdpdGggdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgdmlkZW8gdHJhY2sgaXMgbm90
IGFzc29jaWF0ZWQgd2l0aAogICAgIC8vIGFueSBvdGhlciBlbmFibGVkIHRyYWNrcywgcnVuIHRo
ZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKCF0cmFjay0+c2VsZWN0ZWQoKQorICAgIGlmICgh
dHJhY2suc2VsZWN0ZWQoKQogICAgICAgICAmJiAoIW1fdmlkZW9UcmFja3MgfHwgIW1fdmlkZW9U
cmFja3MtPmlzQW55VHJhY2tFbmFibGVkKCkpCiAgICAgICAgICYmICghbV9hdWRpb1RyYWNrcyB8
fCAhbV9hdWRpb1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX3Rl
eHRUcmFja3MgfHwgIW1fdGV4dFRyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkpIHsKICAgICAg
ICAgLy8gMS4xIFJlbW92ZSB0aGUgU291cmNlQnVmZmVyIGZyb20gYWN0aXZlU291cmNlQnVmZmVy
cy4KICAgICAgICAgLy8gMS4yIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5h
bWVkIHJlbW92ZXNvdXJjZWJ1ZmZlciBhdCBhY3RpdmVTb3VyY2VCdWZmZXJzCiAgICAgICAgIHNl
dEFjdGl2ZShmYWxzZSk7Ci0gICAgfSBlbHNlIGlmICh0cmFjay0+c2VsZWN0ZWQoKSkgeworICAg
IH0gZWxzZSBpZiAodHJhY2suc2VsZWN0ZWQoKSkgewogICAgICAgICAvLyAyLiBJZiB0aGUgU291
cmNlQnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgbmV3bHkgc2VsZWN0ZWQgdmlkZW8gdHJhY2sg
aXMgbm90IGFscmVhZHkgaW4gYWN0aXZlU291cmNlQnVmZmVycywKICAgICAgICAgLy8gcnVuIHRo
ZSBmb2xsb3dpbmcgc3RlcHM6CiAgICAgICAgIC8vIDIuMSBBZGQgdGhlIFNvdXJjZUJ1ZmZlciB0
byBhY3RpdmVTb3VyY2VCdWZmZXJzLgpAQCAtMTY5NywyNiArMTY5MCwyNiBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlcjo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrKiB0cmFjaykKICAg
ICAgICAgc2V0QWN0aXZlKHRydWUpOwogICAgIH0KIAotICAgIGlmIChtX3ZpZGVvVHJhY2tzICYm
IG1fdmlkZW9UcmFja3MtPmNvbnRhaW5zKCp0cmFjaykpCisgICAgaWYgKG1fdmlkZW9UcmFja3Mg
JiYgbV92aWRlb1RyYWNrcy0+Y29udGFpbnModHJhY2spKQogICAgICAgICBtX3ZpZGVvVHJhY2tz
LT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAg
ICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQodHJh
Y2spOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1
ZGlvVHJhY2sqIHRyYWNrKQordm9pZCBTb3VyY2VCdWZmZXI6OmF1ZGlvVHJhY2tFbmFibGVkQ2hh
bmdlZChBdWRpb1RyYWNrJiB0cmFjaykKIHsKICAgICAvLyAyLjQuNSBDaGFuZ2VzIHRvIHNlbGVj
dGVkL2VuYWJsZWQgdHJhY2sgc3RhdGUKICAgICAvLyBJZiBhbiBhdWRpbyB0cmFjayBiZWNvbWVz
IGRpc2FibGVkIGFuZCB0aGUgU291cmNlQnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYWNr
IGlzIG5vdAogICAgIC8vIGFzc29jaWF0ZWQgd2l0aCBhbnkgb3RoZXIgZW5hYmxlZCBvciBzZWxl
Y3RlZCB0cmFjaywgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAoIXRyYWNr
LT5lbmFibGVkKCkKKyAgICBpZiAoIXRyYWNrLmVuYWJsZWQoKQogICAgICAgICAmJiAoIW1fdmlk
ZW9UcmFja3MgfHwgIW1fdmlkZW9UcmFja3MtPmlzQW55VHJhY2tFbmFibGVkKCkpCiAgICAgICAg
ICYmICghbV9hdWRpb1RyYWNrcyB8fCAhbV9hdWRpb1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQo
KSkKICAgICAgICAgJiYgKCFtX3RleHRUcmFja3MgfHwgIW1fdGV4dFRyYWNrcy0+aXNBbnlUcmFj
a0VuYWJsZWQoKSkpIHsKICAgICAgICAgLy8gMS4gUmVtb3ZlIHRoZSBTb3VyY2VCdWZmZXIgYXNz
b2NpYXRlZCB3aXRoIHRoZSBhdWRpbyB0cmFjayBmcm9tIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMKICAg
ICAgICAgLy8gMi4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgcmVt
b3Zlc291cmNlYnVmZmVyIGF0IGFjdGl2ZVNvdXJjZUJ1ZmZlcnMKICAgICAgICAgc2V0QWN0aXZl
KGZhbHNlKTsKLSAgICB9IGVsc2UgaWYgKHRyYWNrLT5lbmFibGVkKCkpIHsKKyAgICB9IGVsc2Ug
aWYgKHRyYWNrLmVuYWJsZWQoKSkgewogICAgICAgICAvLyBJZiBhbiBhdWRpbyB0cmFjayBiZWNv
bWVzIGVuYWJsZWQgYW5kIHRoZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdHJh
Y2sgaXMKICAgICAgICAgLy8gbm90IGFscmVhZHkgaW4gYWN0aXZlU291cmNlQnVmZmVycywgdGhl
biBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKICAgICAgICAgLy8gMS4gQWRkIHRoZSBTb3VyY2VC
dWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBhdWRpbyB0cmFjayB0byBhY3RpdmVTb3VyY2VCdWZm
ZXJzCkBAIC0xNzI0LDE5ICsxNzE3LDE5IEBAIHZvaWQgU291cmNlQnVmZmVyOjphdWRpb1RyYWNr
RW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayogdHJhY2spCiAgICAgICAgIHNldEFjdGl2ZSh0cnVl
KTsKICAgICB9CiAKLSAgICBpZiAobV9hdWRpb1RyYWNrcyAmJiBtX2F1ZGlvVHJhY2tzLT5jb250
YWlucygqdHJhY2spKQorICAgIGlmIChtX2F1ZGlvVHJhY2tzICYmIG1fYXVkaW9UcmFja3MtPmNv
bnRhaW5zKHRyYWNrKSkKICAgICAgICAgbV9hdWRpb1RyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVu
dCgpOwogCiAgICAgaWYgKCFpc1JlbW92ZWQoKSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxl
bWVudCgpLT5hdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQodHJhY2spOwogfQogCi12b2lkIFNvdXJj
ZUJ1ZmZlcjo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykKK3ZvaWQgU291
cmNlQnVmZmVyOjp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2smIHRyYWNrKQogewogICAg
IC8vIDIuNC41IENoYW5nZXMgdG8gc2VsZWN0ZWQvZW5hYmxlZCB0cmFjayBzdGF0ZQogICAgIC8v
IElmIGEgdGV4dCB0cmFjayBtb2RlIGJlY29tZXMgImRpc2FibGVkIiBhbmQgdGhlIFNvdXJjZUJ1
ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhpcyB0cmFjayBpcyBub3QKICAgICAvLyBhc3NvY2lhdGVk
IHdpdGggYW55IG90aGVyIGVuYWJsZWQgb3Igc2VsZWN0ZWQgdHJhY2ssIHRoZW4gcnVuIHRoZSBm
b2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKHRyYWNrLT5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2Rl
OjpEaXNhYmxlZAorICAgIGlmICh0cmFjay5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNh
YmxlZAogICAgICAgICAmJiAoIW1fdmlkZW9UcmFja3MgfHwgIW1fdmlkZW9UcmFja3MtPmlzQW55
VHJhY2tFbmFibGVkKCkpCiAgICAgICAgICYmICghbV9hdWRpb1RyYWNrcyB8fCAhbV9hdWRpb1Ry
YWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX3RleHRUcmFja3MgfHwg
IW1fdGV4dFRyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkpIHsKQEAgLTE3NTEsNTYgKzE3NDQs
NTYgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayog
dHJhY2spCiAgICAgICAgIHNldEFjdGl2ZSh0cnVlKTsKICAgICB9CiAKLSAgICBpZiAobV90ZXh0
VHJhY2tzICYmIG1fdGV4dFRyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV90ZXh0
VHJhY2tzICYmIG1fdGV4dFRyYWNrcy0+Y29udGFpbnModHJhY2spKQogICAgICAgICBtX3RleHRU
cmFja3MtPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIGlmICghaXNSZW1vdmVkKCkpCiAg
ICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dGV4dFRyYWNrTW9kZUNoYW5nZWQodHJh
Y2spOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayog
dHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja0Fk
ZEN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKICAgICBpZiAoIWlz
UmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja0Fk
ZEN1ZSh0cmFjaywgY3VlKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja0FkZEN1
ZXMoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlTGlzdCBjb25zdCogY3VlTGlzdCkKK3Zv
aWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYgdHJhY2ssIGNvbnN0
IFRleHRUcmFja0N1ZUxpc3QmIGN1ZUxpc3QpCiB7CiAgICAgaWYgKCFpc1JlbW92ZWQoKSkKICAg
ICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tBZGRDdWVzKHRyYWNrLCBj
dWVMaXN0KTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja1JlbW92ZUN1ZShUZXh0
VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKK3ZvaWQgU291cmNlQnVmZmVyOjp0ZXh0
VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCiB7CiAg
ICAgaWYgKCFpc1JlbW92ZWQoKSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50
ZXh0VHJhY2tSZW1vdmVDdWUodHJhY2ssIGN1ZSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjp0
ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1ZUxpc3QgY29u
c3QqIGN1ZUxpc3QpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0
VHJhY2smIHRyYWNrLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JiBjdWVMaXN0KQogewogICAgIGlm
ICghaXNSZW1vdmVkKCkpCiAgICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dGV4dFRy
YWNrUmVtb3ZlQ3Vlcyh0cmFjaywgY3VlTGlzdCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjp0
ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQordm9pZCBTb3VyY2VCdWZmZXI6
OnRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7CiAgICAgaWYgKCFpc1Jl
bW92ZWQoKSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tLaW5k
Q2hhbmdlZCh0cmFjayk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2
YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXRv
bWljU3RyaW5nIHRyYWNrSUQpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0
ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lE
KQogewogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJp
dmF0ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoJXApIiwgdGhpcyk7CiAgICAgYXV0byBp
dCA9IG1fdHJhY2tCdWZmZXJNYXAuZmluZCh0cmFja0lEKTsKICAgICBpZiAoaXQgPT0gbV90cmFj
a0J1ZmZlck1hcC5lbmQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVHJhY2tCdWZmZXImIHRy
YWNrQnVmZmVyID0gaXQtPnZhbHVlOworICAgIGF1dG8mIHRyYWNrQnVmZmVyID0gaXQtPnZhbHVl
OwogICAgIGlmICghdHJhY2tCdWZmZXIubmVlZHNSZWVucXVldWVpbmcgJiYgIW1fc291cmNlLT5p
c1NlZWtpbmcoKSkKICAgICAgICAgcHJvdmlkZU1lZGlhRGF0YSh0cmFja0J1ZmZlciwgdHJhY2tJ
RCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjpwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVy
JiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5nIHRyYWNrSUQpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6
cHJvdmlkZU1lZGlhRGF0YShUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIsIGNvbnN0IEF0b21pY1N0
cmluZyYgdHJhY2tJRCkKIHsKICAgICBpZiAobV9zb3VyY2UtPmlzU2Vla2luZygpKQogICAgICAg
ICByZXR1cm47CkBAIC0xODM0LDcgKzE4MjcsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6cHJvdmlk
ZU1lZGlhRGF0YShUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIsIEF0b21pY1N0cmluZyB0cmFjawog
CiAgICAgICAgIHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUgPSBzYW1w
bGUtPnByZXNlbnRhdGlvblRpbWUoKTsKICAgICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVk
RGVjb2RlRW5kVGltZSA9IHNhbXBsZS0+ZGVjb2RlVGltZSgpICsgc2FtcGxlLT5kdXJhdGlvbigp
OwotICAgICAgICBtX3ByaXZhdGUtPmVucXVldWVTYW1wbGUoV1RGTW92ZShzYW1wbGUpLCB0cmFj
a0lEKTsKKyAgICAgICAgbV9wcml2YXRlLT5lbnF1ZXVlU2FtcGxlKHNhbXBsZS5yZWxlYXNlTm9u
TnVsbCgpLCB0cmFja0lEKTsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgICAgICsrZW5xdWV1ZWRT
YW1wbGVzOwogI2VuZGlmCkBAIC0xODQzLDcgKzE4MzYsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6
cHJvdmlkZU1lZGlhRGF0YShUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIsIEF0b21pY1N0cmluZyB0
cmFjawogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlcjo6cHJvdmlkZU1lZGlhRGF0
YSglcCkgLSBFbnF1ZXVlZCAldSBzYW1wbGVzIiwgdGhpcywgZW5xdWV1ZWRTYW1wbGVzKTsKIH0K
IAotdm9pZCBTb3VyY2VCdWZmZXI6OnJlZW5xdWV1ZU1lZGlhRm9yVGltZShUcmFja0J1ZmZlciYg
dHJhY2tCdWZmZXIsIEF0b21pY1N0cmluZyB0cmFja0lELCBjb25zdCBNZWRpYVRpbWUmIHRpbWUp
Cit2b2lkIFNvdXJjZUJ1ZmZlcjo6cmVlbnF1ZXVlTWVkaWFGb3JUaW1lKFRyYWNrQnVmZmVyJiB0
cmFja0J1ZmZlciwgY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lELCBjb25zdCBNZWRpYVRpbWUm
IHRpbWUpCiB7CiAgICAgbV9wcml2YXRlLT5mbHVzaCh0cmFja0lEKTsKICAgICB0cmFja0J1ZmZl
ci5kZWNvZGVRdWV1ZS5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyLmgKaW5kZXggZDllMTc0Nzk5OTI0YWZiMGU4OGQ3NDc3MmU4
ZjhhOTFhMmNmMDJiMC4uMzlkMDUxNjY5OWJjYTk1ZGJiMDdlMmU2NWZhMDE3NThjNTdiNTU1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5oCkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIEF1ZGlvVHJhY2tMaXN0OwogY2xhc3MgQnVmZmVy
U291cmNlOwogY2xhc3MgTWVkaWFTb3VyY2U7CiBjbGFzcyBQbGF0Zm9ybVRpbWVSYW5nZXM7Citj
bGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlOwogY2xhc3MgVGV4dFRyYWNrTGlzdDsKIGNsYXNzIFRp
bWVSYW5nZXM7CiBjbGFzcyBWaWRlb1RyYWNrTGlzdDsKQEAgLTY0LDkgKzY1LDkgQEAgcHVibGlj
OgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFRpbWVzdGFtcE9mZnNldChkb3VibGUpOwogCiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIFZpZGVvVHJhY2tMaXN0KiB2aWRlb1RyYWNrcygp
OwotICAgIEF1ZGlvVHJhY2tMaXN0KiBhdWRpb1RyYWNrcygpOwotICAgIFRleHRUcmFja0xpc3Qq
IHRleHRUcmFja3MoKTsKKyAgICBWaWRlb1RyYWNrTGlzdCYgdmlkZW9UcmFja3MoKTsKKyAgICBB
dWRpb1RyYWNrTGlzdCYgYXVkaW9UcmFja3MoKTsKKyAgICBUZXh0VHJhY2tMaXN0JiB0ZXh0VHJh
Y2tzKCk7CiAjZW5kaWYKIAogICAgIGRvdWJsZSBhcHBlbmRXaW5kb3dTdGFydCgpIGNvbnN0OwpA
QCAtMTI0LDI1ICsxMjUsMjQgQEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01P
YmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRT
dXNwZW5zaW9uKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25z
dCBJbml0aWFsaXphdGlvblNlZ21lbnQmKSBmaW5hbDsKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRSZWNlaXZlU2FtcGxlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBNZWRpYVNhbXBsZSYp
IGZpbmFsOwotICAgIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKGNvbnN0IFNvdXJj
ZUJ1ZmZlclByaXZhdGUqKSBjb25zdCBmaW5hbDsKLSAgICBib29sIHNvdXJjZUJ1ZmZlclByaXZh
dGVIYXNWaWRlbyhjb25zdCBTb3VyY2VCdWZmZXJQcml2YXRlKikgY29uc3QgZmluYWw7Ci0gICAg
dm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhTb3Vy
Y2VCdWZmZXJQcml2YXRlKiwgQXRvbWljU3RyaW5nIHRyYWNrSUQpIGZpbmFsOwotICAgIE1lZGlh
VGltZSBzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKFNvdXJjZUJ1
ZmZlclByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZl
VGhyZXNob2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKSBmaW5hbDsKLSAg
ICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2
YXRlKiwgQXBwZW5kUmVzdWx0KSBmaW5hbDsKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoU291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvckNv
ZGUpIGZpbmFsOwotCi0gICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFj
ayopIGZpbmFsOwotCi0gICAgdm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJh
Y2sqKSBmaW5hbDsKLQotICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrKikg
ZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqKSBmaW5hbDsK
LSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3Vl
TGlzdCopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBj
b25zdCBUZXh0VHJhY2tDdWVMaXN0KikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWUo
VGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1v
dmVDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgZmluYWw7CisgICAgdm9pZCBzb3VyY2VC
dWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBJbml0aWFs
aXphdGlvblNlZ21lbnQmKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRS
ZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJikgZmluYWw7CisgICAgYm9vbCBzb3VyY2VCdWZmZXJQ
cml2YXRlSGFzQXVkaW8oKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHNvdXJjZUJ1ZmZlclByaXZh
dGVIYXNWaWRlbygpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURp
ZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKSBm
aW5hbDsKKyAgICBNZWRpYVRpbWUgc291cmNlQnVmZmVyUHJpdmF0ZUZhc3RTZWVrVGltZUZvck1l
ZGlhVGltZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZlVGhyZXNo
b2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKSBmaW5hbDsKKyAgICB2b2lk
IHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShBcHBlbmRSZXN1bHQpIGZpbmFsOwor
ICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihpbnQg
ZXJyb3JDb2RlKSBmaW5hbDsKKworICAgIHZvaWQgYXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1
ZGlvVHJhY2smKSBmaW5hbDsKKyAgICB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlk
ZW9UcmFjayYpIGZpbmFsOworCisgICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJh
Y2smKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIGZp
bmFsOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJh
Y2tDdWVMaXN0JikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFj
ayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja0Fk
ZEN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFj
a1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKIAogICAgIEV2ZW50
VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gU291cmNlQnVmZmVyRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAKQEAgLTE1Nyw4ICsx
NTcsOCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCB2YWxpZGF0ZUluaXRpYWxpemF0aW9uU2VnbWVu
dChjb25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmKTsKIAotICAgIHZvaWQgcmVlbnF1ZXVlTWVk
aWFGb3JUaW1lKFRyYWNrQnVmZmVyJiwgQXRvbWljU3RyaW5nIHRyYWNrSUQsIGNvbnN0IE1lZGlh
VGltZSYpOwotICAgIHZvaWQgcHJvdmlkZU1lZGlhRGF0YShUcmFja0J1ZmZlciYsIEF0b21pY1N0
cmluZyB0cmFja0lEKTsKKyAgICB2b2lkIHJlZW5xdWV1ZU1lZGlhRm9yVGltZShUcmFja0J1ZmZl
ciYsIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCwgY29uc3QgTWVkaWFUaW1lJik7CisgICAg
dm9pZCBwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiwgY29uc3QgQXRvbWljU3RyaW5nJiB0
cmFja0lEKTsKICAgICB2b2lkIGRpZERyb3BTYW1wbGUoKTsKICAgICB2b2lkIGV2aWN0Q29kZWRG
cmFtZXMoc2l6ZV90IG5ld0RhdGFTaXplKTsKICAgICBzaXplX3QgbWF4aW11bUJ1ZmZlclNpemUo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBiZTk2NDU4OTM3YTk0MjFmNTY4OTA1MjJlZWFjZDkwODZhMGY5N2E5Li4w
NTgyMzc5Y2NiNWRhZDA3NDMxOGE3ZjBlMDI5MmQ5YjRiODY5YWFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjE0LDggKzI2
MTQsOCBAQAogCQk2RTNGQUU4RTE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUzRkFF
OEMxNDczM0ZEQjAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmNwcCAqLzsgfTsKIAkJNkUz
RkFFOEYxNDczM0ZEQjAwRTQyMzA2IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4RDE0NzMz
RkRCMDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCAqLzsgfTsKIAkJNkUz
RkFFOEYxNDczM0ZEQjAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4RDE0NzMzRkRCMDBFNDIz
MDcgLyogV2ViR0xEZXB0aFRleHR1cmUuaCAqLzsgfTsKLQkJNkU0N0U2NjAxMEI3OTQ0QjAwQjE4
NkM4IC8qIFdlYkdMR2V0SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNw
cCAqLzsgfTsKLQkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU0N0U2NUYxMEI3
OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5oICovOyB9OworCQk2RTQ3RTY2MDEwQjc5NDRC
MDBCMTg2QzggLyogV2ViR0xBbnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkU0N0U2NUUxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmNwcCAq
LzsgfTsKKwkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTQ3RTY1RjEwQjc5NDRCMDBC
MTg2QzggLyogV2ViR0xBbnkuaCAqLzsgfTsKIAkJNkU0QUJDRDQxMzhFQTBCNzAwNzFEMjkxIC8q
IEpTSFRNTFVua25vd25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZFNEFCQ0QyMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtub3du
RWxlbWVudC5jcHAgKi87IH07CiAJCTZFNEFCQ0Q1MTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxV
bmtub3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkU0QUJDRDMxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50Lmgg
Ki87IH07CiAJCTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1
dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTRF
OTFBQTEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05OTE1LDggKzk5MTUs
OCBAQAogCQk2RTNGQUU4RDE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xEZXB0aFRleHR1cmUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFFOTAxNDczM0ZFQTAwRTQyMzA2IC8qIFdl
YkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJH
TENvbXByZXNzZWRUZXh0dXJlUzNUQy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZFM0ZBRTkwMTQ3MzNGRUEwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVyZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gV2ViR0xEZXB0aFRleHR1cmUuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMR2V0SW5mby5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFNDdFNjVGMTBCNzk0NEIwMEIxODZDOCAv
KiBXZWJHTEdldEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xH
ZXRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFNDdFNjVFMTBCNzk0NEIw
MEIxODZDOCAvKiBXZWJHTEFueS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJHTEFueS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFNDdFNjVG
MTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJHTEFueS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTRBQkNE
MjEzOEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTRBQkNEMzEzOEVBMEI3MDA3MUQyOTEgLyogSlNI
VE1MVW5rbm93bkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNI
VE1MVW5rbm93bkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkU0RTkx
QUExMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY5MjgsOCArMTY5MjgsOCBAQAogCQkJCTQ5QzdCOUFF
MTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmNwcCAqLywKIAkJCQk0OUM3QjlB
RjEwNDJEMzJFMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5oICovLAogCQkJCTQ5QzdCOUIw
MTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmlkbCAqLywKLQkJCQk2RTQ3RTY1
RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCAqLywKLQkJCQk2RTQ3RTY1RjEw
Qjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmggKi8sCisJCQkJNkU0N0U2NUUxMEI3OTQ0
QjAwQjE4NkM4IC8qIFdlYkdMQW55LmNwcCAqLywKKwkJCQk2RTQ3RTY1RjEwQjc5NDRCMDBCMTg2
QzggLyogV2ViR0xBbnkuaCAqLywKIAkJCQk5M0YxRDVCNzEyRDUzMkM0MDA4MzJCRUMgLyogV2Vi
R0xMb3NlQ29udGV4dC5jcHAgKi8sCiAJCQkJOTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdl
YkdMTG9zZUNvbnRleHQuaCAqLywKIAkJCQk5M0YxRDVCOTEyRDUzMkM0MDA4MzJCRUMgLyogV2Vi
R0xMb3NlQ29udGV4dC5pZGwgKi8sCkBAIC0yODI0Myw3ICsyODI0Myw3IEBACiAJCQkJNUIzMDY5
NUUxOEIzRDM0NTAwOTlENUU4IC8qIFdlYkdMRHJhd0J1ZmZlcnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTZFQkYwRTU1MTJBODkyOTgwMERCMTcwOSAvKiBXZWJHTEV4dGVuc2lvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDlDN0I5Q0YxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMRnJhbWVidWZmZXIu
aCBpbiBIZWFkZXJzICovLAotCQkJCTZFNDdFNjYxMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdl
dEluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTZFNDdFNjYxMTBCNzk0NEIwMEIxODZDOCAvKiBX
ZWJHTEFueS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlGRkJGM0YxMUM5M0VFMzAwNkE3MTE4IC8q
IFdlYkdMTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjFENUJCMTJENTMyQzQwMDgzMkJF
QyAvKiBXZWJHTExvc2VDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3QjlENTEwNDJE
MzJGMDAwOUQ0NDcgLyogV2ViR0xPYmplY3QuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3MzIsNyAr
MzE3MzIsNyBAQAogCQkJCTVCMzA2OTVEMThCM0QzNDUwMDk5RDVFOCAvKiBXZWJHTERyYXdCdWZm
ZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFQkYwRTU0MTJBODkyOTgwMERCMTcwOSAvKiBX
ZWJHTEV4dGVuc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUM3QjlDRTEwNDJEMzJGMDAw
OUQ0NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk2RTQ3RTY2
MDEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTZFNDdFNjYwMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk0OUZGQkY0MDExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzRjFENUJBMTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUQ0MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTE9i
amVjdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAppbmRl
eCBlMjBiMjM4Njg2NGRhY2RkYWQ1NjJmYzNlZWM2YWEzMzk0ZmYxMGE1Li5jYzYzM2JlN2U0YTQy
NmZmODdiNjExMThkMzczNzE4ZjJkMzE2N2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20u
Y3BwCkBAIC02NSw5ICs2NSw5IEBAIHN0YXRpYyBDYW52YXNTdHlsZSB0b0hUTUxDYW52YXNTdHls
ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVlKQogICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUo
KTsKICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QodmFsdWUpOwogICAgIGlmIChvYmpl
Y3QtPmluaGVyaXRzKEpTQ2FudmFzR3JhZGllbnQ6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBD
YW52YXNTdHlsZSgmanNDYXN0PEpTQ2FudmFzR3JhZGllbnQqPihvYmplY3QpLT53cmFwcGVkKCkp
OworICAgICAgICByZXR1cm4ganNDYXN0PEpTQ2FudmFzR3JhZGllbnQqPihvYmplY3QpLT53cmFw
cGVkKCk7CiAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHMoSlNDYW52YXNQYXR0ZXJuOjppbmZvKCkp
KQotICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUoJmpzQ2FzdDxKU0NhbnZhc1BhdHRlcm4qPihv
YmplY3QpLT53cmFwcGVkKCkpOworICAgICAgICByZXR1cm4ganNDYXN0PEpTQ2FudmFzUGF0dGVy
bio+KG9iamVjdCktPndyYXBwZWQoKTsKICAgICByZXR1cm4gQ2FudmFzU3R5bGUoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVu
Y3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1
bmN0aW9ucy5jcHAKaW5kZXggZjc4YTExODYyMThjNmE5YmQxZDc3YmU4Nzg3NDNlOWVhY2JhYzc0
NC4uMGFlMWMwYTYyZTY0MGRlMzEwYmVkYmFlODE1NjYzZjA3MjNjMTM1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
Y3BwCkBAIC00MCw3ICs0MCw3IEBAIEluc3RhbmNlKiBwbHVnaW5JbnN0YW5jZShIVE1MRWxlbWVu
dCYgZWxlbWVudCkKICAgICAvLyBUaGUgcGx1Z2luIGVsZW1lbnQgaG9sZHMgYW4gb3duaW5nIHJl
ZmVyZW5jZSwgc28gd2UgZG9uJ3QgaGF2ZSB0by4KICAgICBpZiAoIWlzPEhUTUxQbHVnSW5FbGVt
ZW50PihlbGVtZW50KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgSW5zdGFuY2UqIGlu
c3RhbmNlID0gZG93bmNhc3Q8SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpLmdldEluc3RhbmNl
KCkuZ2V0KCk7CisgICAgYXV0byogaW5zdGFuY2UgPSBkb3duY2FzdDxIVE1MUGx1Z0luRWxlbWVu
dD4oZWxlbWVudCkuYmluZGluZ3NJbnN0YW5jZSgpOwogICAgIGlmICghaW5zdGFuY2UgfHwgIWlu
c3RhbmNlLT5yb290T2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVy
biBpbnN0YW5jZTsKQEAgLTcxLDIzICs3MSwyMyBAQCBKU09iamVjdCogcGx1Z2luU2NyaXB0T2Jq
ZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNIVE1MRWxlbWVudCoganNIVE1MRWxlbWVudCkKICAgICBp
ZiAoIWlzPEhUTUxQbHVnSW5FbGVtZW50PihlbGVtZW50KSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKLSAgICBIVE1MUGx1Z0luRWxlbWVudCYgcGx1Z2luRWxlbWVudCA9IGRvd25jYXN0PEhU
TUxQbHVnSW5FbGVtZW50PihlbGVtZW50KTsKKyAgICBhdXRvJiBwbHVnaW5FbGVtZW50ID0gZG93
bmNhc3Q8SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpOwogCiAgICAgLy8gQ2hva2UgcG9pbnQg
Zm9yIHNjcmlwdC9wbHVnaW4gaW50ZXJhY3Rpb247IG5vdGlmeSBET01UaW1lciBvZiB0aGUgZXZl
bnQuCiAgICAgRE9NVGltZXI6OnNjcmlwdERpZEludGVyYWN0V2l0aFBsdWdpbihwbHVnaW5FbGVt
ZW50KTsKIAogICAgIC8vIEZpcnN0LCBzZWUgaWYgdGhlIGVsZW1lbnQgaGFzIGEgcGx1Zy1pbiBy
ZXBsYWNlbWVudCB3aXRoIGEgc2NyaXB0LgotICAgIGlmIChKU09iamVjdCogc2NyaXB0T2JqZWN0
ID0gcGx1Z2luRWxlbWVudC5zY3JpcHRPYmplY3RGb3JQbHVnaW5SZXBsYWNlbWVudCgpKQorICAg
IGlmIChhdXRvKiBzY3JpcHRPYmplY3QgPSBwbHVnaW5FbGVtZW50LnNjcmlwdE9iamVjdEZvclBs
dWdpblJlcGxhY2VtZW50KCkpCiAgICAgICAgIHJldHVybiBzY3JpcHRPYmplY3Q7CiAgICAgCiAg
ICAgLy8gTmV4dCwgc2VlIGlmIHdlIGNhbiBhc2sgdGhlIHBsdWctaW4gdmlldyBmb3IgaXRzIHNj
cmlwdCBvYmplY3QuCi0gICAgaWYgKEpTT2JqZWN0KiBzY3JpcHRPYmplY3QgPSBwbHVnaW5TY3Jp
cHRPYmplY3RGcm9tUGx1Z2luVmlld0Jhc2UocGx1Z2luRWxlbWVudCwganNIVE1MRWxlbWVudC0+
Z2xvYmFsT2JqZWN0KCkpKQorICAgIGlmIChhdXRvKiBzY3JpcHRPYmplY3QgPSBwbHVnaW5TY3Jp
cHRPYmplY3RGcm9tUGx1Z2luVmlld0Jhc2UocGx1Z2luRWxlbWVudCwganNIVE1MRWxlbWVudC0+
Z2xvYmFsT2JqZWN0KCkpKQogICAgICAgICByZXR1cm4gc2NyaXB0T2JqZWN0OwogCiAgICAgLy8g
T3RoZXJ3aXNlLCBmYWxsIGJhY2sgdG8gZ2V0dGluZyB0aGUgb2JqZWN0IGZyb20gdGhlIGluc3Rh
bmNlLgogCiAgICAgLy8gVGhlIHBsdWdpbiBlbGVtZW50IGhvbGRzIGFuIG93bmluZyByZWZlcmVu
Y2UsIHNvIHdlIGRvbid0IGhhdmUgdG8uCi0gICAgSW5zdGFuY2UqIGluc3RhbmNlID0gcGx1Z2lu
RWxlbWVudC5nZXRJbnN0YW5jZSgpLmdldCgpOworICAgIGF1dG8qIGluc3RhbmNlID0gcGx1Z2lu
RWxlbWVudC5iaW5kaW5nc0luc3RhbmNlKCk7CiAgICAgaWYgKCFpbnN0YW5jZSB8fCAhaW5zdGFu
Y2UtPnJvb3RPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRl
eHRDdXN0b20uY3BwCmluZGV4IDc4OGFkMjQ0NDY5MjBkMGZhMmVhZWViNzQ4ZDY0OWJiZTM2OGM0
NzEuLjVkZjI1OGZlYTc1ZDMxM2NjM2QxMjFiODRjZTViNjJhNTFjMjNlOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdD
b250ZXh0Q3VzdG9tLmNwcApAQCAtMzYsMzcgKzM2LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBGSVhNRTogVGhlcmUgaXMgYSBkdXBsaWNhdGUg
dmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIGluIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1
c3RvbS5jcHAsCi0vLyBidXQgaXQgaXMgbm90IGV4YWN0bHkgdGhlIHNhbWUhIFdlIHNob3VsZCBt
ZXJnZSB0aGVzZS4KLXN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgV2ViR0xHZXRJbmZvJiBpbmZvKQotewot
ICAgIHN3aXRjaCAoaW5mby5nZXRUeXBlKCkpIHsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5
cGVCb29sOgotICAgICAgICByZXR1cm4ganNCb29sZWFuKGluZm8uZ2V0Qm9vbCgpKTsKLSAgICBj
YXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVCb29sQXJyYXk6IHsKLSAgICAgICAgTWFya2VkQXJndW1l
bnRCdWZmZXIgbGlzdDsKLSAgICAgICAgZm9yIChhdXRvJiB2YWx1ZSA6IGluZm8uZ2V0Qm9vbEFy
cmF5KCkpCi0gICAgICAgICAgICBsaXN0LmFwcGVuZChqc0Jvb2xlYW4odmFsdWUpKTsKLSAgICAg
ICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5KHN0YXRlLCAwLCBnbG9iYWxPYmplY3QsIGxpc3QpOwot
ICAgIH0KLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVGbG9hdDoKLSAgICAgICAgcmV0dXJu
IGpzTnVtYmVyKGluZm8uZ2V0RmxvYXQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBl
SW50OgotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRJbnQoKSk7Ci0gICAgY2FzZSBX
ZWJHTEdldEluZm86OmtUeXBlTnVsbDoKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIGNh
c2UgV2ViR0xHZXRJbmZvOjprVHlwZVN0cmluZzoKLSAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0
aENhY2hlKHN0YXRlLCBpbmZvLmdldFN0cmluZygpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6
a1R5cGVVbnNpZ25lZEludDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0VW5zaWdu
ZWRJbnQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlSW50NjQ6Ci0gICAgICAgIHJl
dHVybiBqc051bWJlcihpbmZvLmdldEludDY0KCkpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLX0K
LQogdm9pZCBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVu
KFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCgmd3Jh
cHBlZCgpKTsKQEAgLTEwNCw3ICs3Myw3IEBAIEpTVmFsdWUgSlNXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKICAgICB1bnNpZ25lZCBpbmRleCA9IHN0YXRl
LnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0YXRlKTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFs
T2JqZWN0KCksIHdyYXBwZWQoKS5nZXRJbmRleGVkUGFyYW1ldGVyKHBuYW1lLCBpbmRleCkpOwor
ICAgIHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRJbmRl
eGVkUGFyYW1ldGVyKHBuYW1lLCBpbmRleCkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKEV4ZWNTdGF0ZSYpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2VDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9tLmNwcAppbmRleCA4MjVkMjUwOTRkMmNjNjIyMDZiMDQ5
OTZjMTBkNTMxZTU0Mjk4MDkxLi4yYTBhZjJlZDliYmY2M2FkOGQ4MGZiODQ2ODg3ZDFiMzVjY2Zk
MWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2VDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHAKQEAgLTI5LDE1ICsyOSwxMiBA
QAogCiAjaW5jbHVkZSAiSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAKLSNpbmNsdWRl
ICJBTkdMRUluc3RhbmNlZEFycmF5cy5oIgogI2luY2x1ZGUgIkVYVEJsZW5kTWluTWF4LmgiCiAj
aW5jbHVkZSAiRVhURnJhZ0RlcHRoLmgiCiAjaW5jbHVkZSAiRVhUU2hhZGVyVGV4dHVyZUxPRC5o
IgogI2luY2x1ZGUgIkVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIgogI2luY2x1ZGUgIkVY
VHNSR0IuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiSFRNTENhbnZh
c0VsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNB
TkdMRUluc3RhbmNlZEFycmF5cy5oIgogI2luY2x1ZGUgIkpTRVhUQmxlbmRNaW5NYXguaCIKICNp
bmNsdWRlICJKU0VYVEZyYWdEZXB0aC5oIgpAQCAtNzMsNyArNzAsNiBAQAogI2luY2x1ZGUgIkpT
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oIgogI2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUy5oIgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTTWF0cml4LmgiCi0jaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJPRVNFbGVtZW50SW5kZXhVaW50LmgiCiAjaW5jbHVk
ZSAiT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIgogI2luY2x1ZGUgIk9FU1RleHR1cmVGbG9hdC5o
IgpAQCAtOTEsNyArODcsNiBAQAogI2luY2x1ZGUgIldlYkdMRHJhd0J1ZmZlcnMuaCIKICNpbmNs
dWRlICJXZWJHTEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIldlYkdMRnJhbWVidWZmZXIuaCIKLSNp
bmNsdWRlICJXZWJHTEdldEluZm8uaCIKICNpbmNsdWRlICJXZWJHTExvc2VDb250ZXh0LmgiCiAj
aW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5oIgpAQCAtMTA1LDcgKzEwMCw2IEBACiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4K
IAogI2lmIEVOQUJMRShWSURFTykKLSNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW5j
bHVkZSAiSlNIVE1MVmlkZW9FbGVtZW50LmgiCiAjZW5kaWYKIApAQCAtMTE3LDcgKzExMSw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNDOjpKU1Zh
bHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBSZWY8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4mJiBvYmplY3QpCitK
U1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgUmVmPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+JiYgb2JqZWN0KQogewog
I2lmIEVOQUJMRShXRUJHTDIpCiAgICAgaWYgKGlzPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KG9i
amVjdCkpCkBAIC0xMzEsNjQgKzEyNSw3IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRl
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBXZWJHTFJlbmRlcmluZ0NvCiAgICAg
cmV0dXJuIHdyYXAoc3RhdGUsIGdsb2JhbE9iamVjdCwgb2JqZWN0KTsKIH0KICAgICAKLS8vIEZJ
WE1FOiBUaGVyZSBpcyBhIGR1cGxpY2F0ZSB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24gaW4gSlNX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCwKLS8vIGJ1dCBpdCBpcyBub3QgZXhhY3Rs
eSB0aGUgc2FtZSEgV2Ugc2hvdWxkIG1lcmdlIHRoZXNlLgotc3RhdGljIEpTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFdl
YkdMR2V0SW5mbyYgaW5mbykKLXsKLSAgICBzd2l0Y2ggKGluZm8uZ2V0VHlwZSgpKSB7Ci0gICAg
Y2FzZSBXZWJHTEdldEluZm86OmtUeXBlQm9vbDoKLSAgICAgICAgcmV0dXJuIGpzQm9vbGVhbihp
bmZvLmdldEJvb2woKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlQm9vbEFycmF5OiB7
Ci0gICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGxpc3Q7Ci0gICAgICAgIGZvciAoYXV0byYg
dmFsdWUgOiBpbmZvLmdldEJvb2xBcnJheSgpKQotICAgICAgICAgICAgbGlzdC5hcHBlbmQoanNC
b29sZWFuKHZhbHVlKSk7Ci0gICAgICAgIHJldHVybiBjb25zdHJ1Y3RBcnJheShleGVjLCAwLCBn
bG9iYWxPYmplY3QsIGxpc3QpOwotICAgIH0KLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVG
bG9hdDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0RmxvYXQoKSk7Ci0gICAgY2Fz
ZSBXZWJHTEdldEluZm86OmtUeXBlSW50OgotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5n
ZXRJbnQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlTnVsbDoKLSAgICAgICAgcmV0
dXJuIGpzTnVsbCgpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVN0cmluZzoKLSAgICAg
ICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIGluZm8uZ2V0U3RyaW5nKCkpOwotICAg
IGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVVuc2lnbmVkSW50OgotICAgICAgICByZXR1cm4ganNO
dW1iZXIoaW5mby5nZXRVbnNpZ25lZEludCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5
cGVXZWJHTEJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBp
bmZvLmdldFdlYkdMQnVmZmVyKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdM
RmxvYXRBcnJheToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbmZv
LmdldFdlYkdMRmxvYXRBcnJheSgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJH
TEZyYW1lYnVmZmVyOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGlu
Zm8uZ2V0V2ViR0xGcmFtZWJ1ZmZlcigpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVX
ZWJHTEludEFycmF5OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGlu
Zm8uZ2V0V2ViR0xJbnRBcnJheSgpKTsKLSAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCBXZWJH
TE9iamVjdEFycmF5Ci0gICAgICAgIC8vIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMT2Jq
ZWN0QXJyYXk6Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xQcm9ncmFtOgotICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xQcm9ncmFt
KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMUmVuZGVyYnVmZmVyOgotICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xSZW5kZXJi
dWZmZXIoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xUZXh0dXJlOgotICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xUZXh0dXJl
KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVW5zaWduZWRCeXRlQXJyYXk6
Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTFVu
c2lnbmVkQnl0ZUFycmF5KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVW5z
aWduZWRJbnRBcnJheToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBp
bmZvLmdldFdlYkdMVW5zaWduZWRJbnRBcnJheSgpKTsKLSNpZiBFTkFCTEUoV0VCR0wyKQotICAg
IGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3Q6Ci0gICAgICAg
IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTFZlcnRleEFycmF5
T2JqZWN0KCkpOwotI2VuZGlmCi0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUzoKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
LCBpbmZvLmdldFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKSk7Ci0gICAgZGVmYXVsdDoKLSAg
ICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0g
ICAgfQotfQotCi1lbnVtIE9iamVjdFR5cGUgeyBrQnVmZmVyLCBrUmVuZGVyYnVmZmVyLCBrVGV4
dHVyZSwga1ZlcnRleEF0dHJpYiB9OwotCi1zdGF0aWMgSlNWYWx1ZSBnZXRPYmplY3RQYXJhbWV0
ZXIoSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBvYmosIEV4ZWNTdGF0ZSYgc3RhdGUsIE9i
amVjdFR5cGUgb2JqZWN0VHlwZSkKK3N0YXRpYyBKU1ZhbHVlIG9iamVjdFBhcmFtZXRlcihKU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIEV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdM
QW55IChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjoqZ2V0dGVyKShHQzNEZW51bSB0YXJnZXQs
IEdDM0RlbnVtIHBuYW1lKSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5Niw5MCArMTMzLDY2IEBAIHN0
YXRpYyBKU1ZhbHVlIGdldE9iamVjdFBhcmFtZXRlcihKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UqIG9iaiwgRXhlY1N0YXRlJiBzCiAgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSAhPSAy
KQogICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CiAgICAgCi0gICAgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYgY29udGV4dCA9IG9iai0+d3JhcHBlZCgpOwotICAgIHVuc2lnbmVkIHRhcmdl
dCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHVuc2lnbmVkIHBuYW1lID0g
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOwotICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgV2ViR0xHZXRJbmZvIGluZm87Ci0g
ICAgc3dpdGNoIChvYmplY3RUeXBlKSB7Ci0gICAgY2FzZSBrQnVmZmVyOgotICAgICAgICBpbmZv
ID0gY29udGV4dC5nZXRCdWZmZXJQYXJhbWV0ZXIodGFyZ2V0LCBwbmFtZSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2Uga1JlbmRlcmJ1ZmZlcjoKLSAgICAgICAgaW5mbyA9IGNvbnRleHQuZ2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyKHRhcmdldCwgcG5hbWUpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIGtUZXh0dXJlOgotICAgICAgICBpbmZvID0gY29udGV4dC5nZXRUZXhQYXJhbWV0ZXIo
dGFyZ2V0LCBwbmFtZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Uga1ZlcnRleEF0dHJpYjoK
LSAgICAgICAgLy8gdGFyZ2V0ID0+IGluZGV4Ci0gICAgICAgIGluZm8gPSBjb250ZXh0LmdldFZl
cnRleEF0dHJpYih0YXJnZXQsIHBuYW1lKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoK
LSAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJl
dHVybiB0b0pTKCZzdGF0ZSwgb2JqLT5nbG9iYWxPYmplY3QoKSwgaW5mbyk7CisgICAgYXV0byB0
YXJnZXQgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBhdXRvIHBuYW1lID0gc3RhdGUu
dW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsICpjb250ZXh0Lmdsb2Jh
bE9iamVjdCgpLCAoY29udGV4dC53cmFwcGVkKCkuKmdldHRlcikodGFyZ2V0LCBwbmFtZSkpOwog
fQogCi1lbnVtIFdoaWNoUHJvZ3JhbUNhbGwgewotICAgIGtQcm9ncmFtUGFyYW1ldGVyLCBrVW5p
Zm9ybQotfTsKLQotc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdlYkdMRXh0ZW5zaW9uKiBleHRlbnNpb24pCitzdGF0
aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QsIFdlYkdMRXh0ZW5zaW9uKiBleHRlbnNpb24pCiB7CiAgICAgaWYgKCFleHRlbnNp
b24pCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKICAgICBzd2l0Y2ggKGV4dGVuc2lvbi0+Z2V0
TmFtZSgpKSB7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xMb3NlQ29udGV4dE5hbWU6
Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2Vi
R0xMb3NlQ29udGV4dCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUs
ICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMTG9zZUNvbnRleHQqPihleHRlbnNpb24p
KTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRTaGFkZXJUZXh0dXJlTE9ETmFtZToKLSAg
ICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRTaGFk
ZXJUZXh0dXJlTE9EKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwg
Jmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUU2hhZGVyVGV4dHVyZUxPRCo+KGV4dGVuc2lv
bikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Y05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJl
dHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUVGV4dHVyZUZp
bHRlckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6
RVhUc1JHQk5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3Rh
dGljX2Nhc3Q8RVhUc1JHQio+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3Rh
dGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVHNSR0IqPihleHRlbnNpb24pKTsKICAg
ICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRGcmFnRGVwdGhOYW1lOgotICAgICAgICByZXR1cm4g
dG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVEZyYWdEZXB0aCo+KGV4dGVu
c2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PEVYVEZyYWdEZXB0aCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNp
b246OkVYVEJsZW5kTWluTWF4TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRCbGVuZE1pbk1heCo+KGV4dGVuc2lvbikpOworICAgICAg
ICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVEJsZW5k
TWluTWF4Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTU3RhbmRh
cmREZXJpdmF0aXZlc05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgc3RhdGljX2Nhc3Q8T0VTU3RhbmRhcmREZXJpdmF0aXZlcyo+KGV4dGVuc2lvbikpOworICAg
ICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9u
OjpPRVNUZXh0dXJlRmxvYXROYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVGbG9hdCo+KGV4dGVuc2lvbikpOworICAgICAg
ICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1
cmVGbG9hdCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1RleHR1
cmVGbG9hdExpbmVhck5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0TGluZWFyKj4oZXh0ZW5zaW9uKSk7CisgICAg
ICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4
dHVyZUZsb2F0TGluZWFyKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6
T0VTVGV4dHVyZUhhbGZGbG9hdE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUhhbGZGbG9hdCo+KGV4dGVuc2lvbikpOwor
ICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9F
U1RleHR1cmVIYWxmRmxvYXQqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9u
OjpPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyKj4o
ZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwg
c3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcio+KGV4dGVuc2lvbikpOwogICAg
IGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1ZlcnRleEFycmF5T2JqZWN0TmFtZToKLSAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNWZXJ0ZXhBcnJh
eU9iamVjdCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9i
YWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0Kj4oZXh0ZW5zaW9uKSk7
CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTRWxlbWVudEluZGV4VWludE5hbWU6Ci0gICAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTRWxlbWVu
dEluZGV4VWludCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU0VsZW1lbnRJbmRleFVpbnQqPihleHRlbnNpb24p
KTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnUmVuZGVyZXJJbmZvTmFtZToK
LSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJH
TERlYnVnUmVuZGVyZXJJbmZvKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZz
dGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyo+
KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVidWdTaGFkZXJz
TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxXZWJHTERlYnVnU2hhZGVycyo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygm
c3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVidWdTaGFkZXJzKj4oZXh0
ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQ05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGlj
X2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQyo+KGV4dGVuc2lvbikpOworICAgICAgICBy
ZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVBVEMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVENOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVj
LCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQyo+
KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3Qs
IHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQyo+KGV4dGVuc2lvbikpOwog
ICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDTmFtZToK
LSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJH
TENvbXByZXNzZWRUZXh0dXJlUzNUQyo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9K
Uygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVTM1RDKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZXB0
aFRleHR1cmVOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0
YXRpY19jYXN0PFdlYkdMRGVwdGhUZXh0dXJlKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZXB0aFRleHR1
cmUqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERyYXdCdWZm
ZXJzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNf
Y2FzdDxXZWJHTERyYXdCdWZmZXJzKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pT
KCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEcmF3QnVmZmVycyo+KGV4
dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkFOR0xFSW5zdGFuY2VkQXJyYXlz
TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxBTkdMRUluc3RhbmNlZEFycmF5cyo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9K
Uygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEFOR0xFSW5zdGFuY2VkQXJyYXlz
Kj4oZXh0ZW5zaW9uKSk7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJl
dHVybiBqc051bGwoKTsKIH0KIAotYm9vbCBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2VPd25l
cjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK2Jvb2wgSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEhhbmRsZTxVbmtu
b3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UqIGpzV2ViR0xSZW5kZXJpbmdDb250ZXh0ID0ganNDYXN0PEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAg
ICB2b2lkKiByb290ID0gV2ViQ29yZTo6cm9vdChqc1dlYkdMUmVuZGVyaW5nQ29udGV4dC0+d3Jh
cHBlZCgpLmNhbnZhcygpKTsKQEAgLTMwNiw5ICsyMTksOSBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0QXR0YWNoZWRTaGFkZXJzKEV4ZWNTdGF0ZSYgc3RhdGUpCiAg
ICAgVmVjdG9yPFJlZlB0cjxXZWJHTFNoYWRlcj4+IHNoYWRlcnM7CiAgICAgaWYgKCFjb250ZXh0
LmdldEF0dGFjaGVkU2hhZGVycyhwcm9ncmFtLCBzaGFkZXJzKSkKICAgICAgICAgcmV0dXJuIGpz
TnVsbCgpOwotICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgbGlzdDsKLSAgICBmb3IgKHNp
emVfdCBpaSA9IDA7IGlpIDwgc2hhZGVycy5zaXplKCk7ICsraWkpCi0gICAgICAgIGxpc3QuYXBw
ZW5kKHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgc2hhZGVyc1tpaV0uZ2V0KCkpKTsKKyAg
ICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBsaXN0OworICAgIGZvciAoYXV0byYgc2hhZGVyIDogc2hh
ZGVycykKKyAgICAgICAgbGlzdC5hcHBlbmQodG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBz
aGFkZXIuZ2V0KCkpKTsKICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoJnN0YXRlLCAwLCBnbG9i
YWxPYmplY3QoKSwgbGlzdCk7CiB9CiAKQEAgLTMyMCwxNCArMjMzLDE0IEBAIEpTVmFsdWUgSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRFeHRlbnNpb24oRXhlY1N0YXRlJiBzdGF0ZSkK
ICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93
RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZz
dGF0ZSkpOwogICAgIAotICAgIFN0cmluZyBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MCkudG9XVEZTdHJpbmcoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBK
U1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHdyYXBw
ZWQoKS5nZXRFeHRlbnNpb24obmFtZSkpOworICAgIGF1dG8gbmFtZSA9IHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDApLnRvV1RGU3RyaW5nKCZzdGF0ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmdsb2JhbE9iamVjdCgpLCB3
cmFwcGVkKCkuZ2V0RXh0ZW5zaW9uKG5hbWUpKTsKIH0KIAogSlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQogewot
ICAgIHJldHVybiBnZXRPYmplY3RQYXJhbWV0ZXIodGhpcywgc3RhdGUsIGtCdWZmZXIpOworICAg
IHJldHVybiBvYmplY3RQYXJhbWV0ZXIoKnRoaXMsIHN0YXRlLCAmV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Z2V0QnVmZmVyUGFyYW1ldGVyKTsKIH0KIAogSlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihFeGVjU3Rh
dGUmIHN0YXRlKQpAQCAtMzM4LDEzICsyNTEsMTMgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihFeGVjU3RhdGUK
ICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDMpCiAgICAgICAgIHJldHVybiB0aHJv
d0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigm
c3RhdGUpKTsKICAgICAKLSAgICB1bnNpZ25lZCB0YXJnZXQgPSBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
SlNWYWx1ZSgpKTsKLSAgICB1bnNpZ25lZCBhdHRhY2htZW50ID0gc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IEpTVmFsdWUoKSk7Ci0gICAgdW5zaWduZWQgcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVu
dCgyKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNW
YWx1ZSgpKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVk
KCkuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKHRhcmdldCwgYXR0YWNobWVudCwg
cG5hbWUpKTsKKyAgICBhdXRvIHRhcmdldCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRv
SW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAg
IGF1dG8gYXR0YWNobWVudCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0
YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIGF1dG8gcG5h
bWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKS50b0ludDMyKCZzdGF0ZSk7CisgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmds
b2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVy
KHRhcmdldCwgYXR0YWNobWVudCwgcG5hbWUpKTsKIH0KIAogSlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmdldFBhcmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQpAQCAtMzU1LDkg
KzI2OCw5IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRQYXJhbWV0
ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDEp
CiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICB1bnNpZ25lZCBwbmFtZSA9
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwg
Z2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRQYXJhbWV0ZXIocG5hbWUpKTsKKyAgICBhdXRv
IHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkudG9JbnQzMigmc3RhdGUpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUs
ICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFBhcmFtZXRlcihwbmFtZSkpOwogfQogCiBK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJvZ3JhbVBhcmFtZXRlcihF
eGVjU3RhdGUmIHN0YXRlKQpAQCAtMzY4LDE3ICsyODEsMTcgQEAgSlNWYWx1ZSBKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkK
ICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDIpCiAgICAgICAgIHJldHVybiB0aHJv
d0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigm
c3RhdGUpKTsKICAgICAKLSAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSBKU1dlYkdMUHJvZ3Jh
bTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBhdXRvKiBwcm9n
cmFtID0gSlNXZWJHTFByb2dyYW06OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgw
KSk7CiAgICAgaWYgKCFwcm9ncmFtICYmICFzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1Vu
ZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBz
Y29wZSk7Ci0gICAgdW5zaWduZWQgcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50
b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgp
KTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0
UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBwbmFtZSkpOworICAgIGF1dG8gcG5hbWUgPSBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7CisgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmdsb2JhbE9iamVj
dCgpLCB3cmFwcGVkKCkuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBwbmFtZSkpOwogfQog
CiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFy
YW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGdldE9iamVjdFBhcmFtZXRl
cih0aGlzLCBzdGF0ZSwga1JlbmRlcmJ1ZmZlcik7CisgICAgcmV0dXJuIG9iamVjdFBhcmFtZXRl
cigqdGhpcywgc3RhdGUsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZm
ZXJQYXJhbWV0ZXIpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0U2hhZGVyUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC0zOTMsOCArMzA2LDggQEAg
SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNoYWRlclBhcmFtZXRlcihF
eGVjU3RhdGUmIHN0YXRlKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBz
Y29wZSk7CiAgICAgV2ViR0xTaGFkZXIqIHNoYWRlciA9IEpTV2ViR0xTaGFkZXI6OnRvV3JhcHBl
ZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgdW5zaWduZWQgcG5hbWUgPSBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2Jh
bE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0U2hhZGVyUGFyYW1ldGVyKHNoYWRlciwgcG5hbWUpKTsK
KyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIHJldHVybiB0b0pTKHN0
YXRlLCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRTaGFkZXJQYXJhbWV0ZXIoc2hhZGVy
LCBwbmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
U3VwcG9ydGVkRXh0ZW5zaW9ucyhFeGVjU3RhdGUmIHN0YXRlKQpAQCAtNDEwLDcgKzMyMyw3IEBA
IEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRTdXBwb3J0ZWRFeHRlbnNp
b25zKEV4ZWNTdGF0ZSYgc3RhdGUpCiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRUZXhQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4gZ2V0
T2JqZWN0UGFyYW1ldGVyKHRoaXMsIHN0YXRlLCBrVGV4dHVyZSk7CisgICAgcmV0dXJuIG9iamVj
dFBhcmFtZXRlcigqdGhpcywgc3RhdGUsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRU
ZXhQYXJhbWV0ZXIpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0VW5pZm9ybShFeGVjU3RhdGUmIHN0YXRlKQpAQCAtNDI3LDM2ICszNDAsMzUgQEAgSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oRXhlY1N0YXRlJiBzdGF0
ZSkKICAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxv
Y2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICgh
bG9jYXRpb24gJiYgIXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLmlzVW5kZWZpbmVkT3JOdWxs
KCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICBy
ZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0VW5pZm9ybShw
cm9ncmFtLCBsb2NhdGlvbikpOworICAgIHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFsT2JqZWN0
KCksIHdyYXBwZWQoKS5nZXRVbmlmb3JtKHByb2dyYW0sIGxvY2F0aW9uKSk7CiB9CiAKIEpTVmFs
dWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRyaWIoRXhlY1N0YXRl
JiBzdGF0ZSkKIHsKLSAgICByZXR1cm4gZ2V0T2JqZWN0UGFyYW1ldGVyKHRoaXMsIHN0YXRlLCBr
VmVydGV4QXR0cmliKTsKKyAgICByZXR1cm4gb2JqZWN0UGFyYW1ldGVyKCp0aGlzLCBzdGF0ZSwg
JldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0dHJpYik7CiB9CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eT4KLWJvb2wgdG9WZWN0b3IoSlND
OjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFZlY3RvcjxULCBpbmxpbmVD
YXBhY2l0eT4mIHZlY3RvcikKK3RlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IGJvb2wgdG9O
dW1iZXJWZWN0b3IoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSwgVmVjdG9yVHlwZSYg
dmVjdG9yKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgSlNDOjpKU09iamVjdCogb2JqZWN0ID0gYXNP
YmplY3QodmFsdWUpOwotICAgIGludDMyX3QgbGVuZ3RoID0gb2JqZWN0LT5nZXQoJnN0YXRlLCBz
dGF0ZS52bSgpLnByb3BlcnR5TmFtZXMtPmxlbmd0aCkudG9JbnQzMigmc3RhdGUpOwotICAgIAor
CisgICAgYXV0byYgb2JqZWN0ID0gKmFzT2JqZWN0KHZhbHVlKTsKKyAgICBpbnQzMl90IGxlbmd0
aCA9IG9iamVjdC5nZXQoJnN0YXRlLCBzdGF0ZS52bSgpLnByb3BlcnR5TmFtZXMtPmxlbmd0aCku
dG9JbnQzMigmc3RhdGUpOworCiAgICAgaWYgKCF2ZWN0b3IudHJ5UmVzZXJ2ZUNhcGFjaXR5KGxl
bmd0aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB2ZWN0b3IucmVzaXplKGxlbmd0aCk7
Ci0gICAgCisKICAgICBmb3IgKGludDMyX3QgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewotICAg
ICAgICBKU0M6OkpTVmFsdWUgdiA9IG9iamVjdC0+Z2V0KCZzdGF0ZSwgaSk7CisgICAgICAgIGF1
dG8gdmFsdWUgPSBvYmplY3QuZ2V0KCZzdGF0ZSwgaSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICAgICAgdmVjdG9yLnVuY2hlY2tlZEFwcGVuZCh2YWx1
ZS50b051bWJlcigmc3RhdGUpKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
ZmFsc2UpOwotICAgICAgICB2ZWN0b3JbaV0gPSBzdGF0aWNfY2FzdDxUPih2LnRvTnVtYmVyKCZz
dGF0ZSkpOwogICAgIH0KLSAgICAKKwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC00NjksNyAr
MzgxLDcgQEAgZW51bSBEYXRhRnVuY3Rpb25NYXRyaXhUb0NhbGwgewogICAgIGZfdW5pZm9ybU1h
dHJpeDJmdiwgZl91bmlmb3JtTWF0cml4M2Z2LCBmX3VuaWZvcm1NYXRyaXg0ZnYKIH07CiAKLXN0
YXRpYyBib29sIGZ1bmN0aW9uRm9yVW5pZm9ybShEYXRhRnVuY3Rpb25Ub0NhbGwgZikKK3N0YXRp
YyBpbmxpbmUgYm9vbCBmdW5jdGlvbkZvclVuaWZvcm0oRGF0YUZ1bmN0aW9uVG9DYWxsIGYpCiB7
CiAgICAgc3dpdGNoIChmKSB7CiAgICAgY2FzZSBmX3VuaWZvcm0xdjoKQEAgLTQ3NywxMiArMzg5
LDEyIEBAIHN0YXRpYyBib29sIGZ1bmN0aW9uRm9yVW5pZm9ybShEYXRhRnVuY3Rpb25Ub0NhbGwg
ZikKICAgICBjYXNlIGZfdW5pZm9ybTN2OgogICAgIGNhc2UgZl91bmlmb3JtNHY6CiAgICAgICAg
IHJldHVybiB0cnVlOwotICAgIGRlZmF1bHQ6IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgSlND
OjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCkKK3N0YXRpYyBK
U1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEV4ZWNTdGF0ZSYgc3Rh
dGUsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiB7CiAgICAgVk0mIHZtID0g
c3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC00OTAsMjIgKzQwMiwxOSBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0
YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgVwogICAgIGlmIChzdGF0
ZS5hcmd1bWVudENvdW50KCkgIT0gMikKICAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZz
dGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwogICAg
IAotICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IDA7Ci0gICAgbG9uZyBpbmRl
eCA9IC0xOwotICAgIAorICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IG51bGxw
dHI7CisgICAgR0x1aW50IGluZGV4ID0gLTE7CisKICAgICBpZiAoZnVuY3Rpb25Gb3JVbmlmb3Jt
KGYpKSB7CiAgICAgICAgIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFw
cGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICAgICAgaWYgKCFsb2NhdGlvbiAm
JiAhc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAg
ICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICB9IGVsc2UK
KyAgICB9IGVsc2UgewogICAgICAgICBpbmRleCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDAp
LnRvSW50MzIoJnN0YXRlKTsKLSAgICAKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBK
U1ZhbHVlKCkpOwotICAgIAotICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IHdlYkdMQXJyYXkgPSB0
b1Vuc2hhcmVkRmxvYXQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKLSAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIAotICAgIGlmICh3ZWJH
TEFycmF5KSB7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAg
fQorCisgICAgaWYgKGF1dG8gd2ViR0xBcnJheSA9IHRvVW5zaGFyZWRGbG9hdDMyQXJyYXkoc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMSkpKSB7CiAgICAgICAgIHN3aXRjaCAoZikgewogICAgICAg
ICBjYXNlIGZfdW5pZm9ybTF2OgogICAgICAgICAgICAgY29udGV4dC51bmlmb3JtMWZ2KGxvY2F0
aW9uLCAqd2ViR0xBcnJheSk7CkBAIC01MzIsMTQgKzQ0MSwxMyBAQCBzdGF0aWMgSlNDOjpKU1Zh
bHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBz
dGF0ZSwgVwogICAgICAgICAgICAgY29udGV4dC52ZXJ0ZXhBdHRyaWI0ZnYoaW5kZXgsICp3ZWJH
TEFycmF5KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIAogICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgCisKICAgICBWZWN0b3I8ZmxvYXQs
IDY0PiBhcnJheTsKLSAgICBpZiAoIXRvVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgxKSwgYXJyYXkpKQorICAgIGlmICghdG9OdW1iZXJWZWN0b3Ioc3RhdGUsIHN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDEpLCBhcnJheSkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJv
cigmc3RhdGUsIHNjb3BlKTsKLSAgICAKKwogICAgIHN3aXRjaCAoZikgewogICAgIGNhc2UgZl91
bmlmb3JtMXY6CiAgICAgICAgIGNvbnRleHQudW5pZm9ybTFmdihsb2NhdGlvbiwgYXJyYXkuZGF0
YSgpLCBhcnJheS5zaXplKCkpOwpAQCAtNTY2LDI1ICs0NzQsMjIgQEAgc3RhdGljIEpTQzo6SlNW
YWx1ZSBkYXRhRnVuY3Rpb25mKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYg
c3RhdGUsIFcKICAgICAgICAgY29udGV4dC52ZXJ0ZXhBdHRyaWI0ZnYoaW5kZXgsIGFycmF5LmRh
dGEoKSwgYXJyYXkuc2l6ZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIAogICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlv
bmkoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCkKK3N0YXRpYyBKU1ZhbHVlIGRhdGFGdW5jdGlvbmko
RGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UmIGNvbnRleHQpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBpZiAoc3RhdGUuYXJndW1l
bnRDb3VudCgpICE9IDIpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNj
b3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKLSAgICAKLSAgICBX
ZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0
b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworCisgICAgYXV0byogbG9jYXRp
b24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMCkpOwogICAgIGlmICghbG9jYXRpb24gJiYgIXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigm
c3RhdGUsIHNjb3BlKTsKLSAgICAKLSAgICBSZWZQdHI8SW50MzJBcnJheT4gd2ViR0xBcnJheSA9
IHRvVW5zaGFyZWRJbnQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKLSAgICAK
LSAgICBpZiAod2ViR0xBcnJheSkgeworCisgICAgaWYgKGF1dG8gd2ViR0xBcnJheSA9IHRvVW5z
aGFyZWRJbnQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKSkgewogICAgICAgICBz
d2l0Y2ggKGYpIHsKICAgICAgICAgY2FzZSBmX3VuaWZvcm0xdjoKICAgICAgICAgICAgIGNvbnRl
eHQudW5pZm9ybTFpdihsb2NhdGlvbiwgKndlYkdMQXJyYXkpOwpAQCAtNjAxLDE1ICs1MDYsMTMg
QEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25pKERhdGFGdW5jdGlvblRvQ2FsbCBm
LCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKICAgICB9Ci0gICAgCi0gICAgCisKICAgICBWZWN0b3I8aW50LCA2ND4gYXJyYXk7Ci0gICAg
aWYgKCF0b1ZlY3RvcihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSksIGFycmF5KSkK
KyAgICBpZiAoIXRvTnVtYmVyVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgx
KSwgYXJyYXkpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7
Ci0gICAgCisKICAgICBzd2l0Y2ggKGYpIHsKICAgICBjYXNlIGZfdW5pZm9ybTF2OgogICAgICAg
ICBjb250ZXh0LnVuaWZvcm0xaXYobG9jYXRpb24sIGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgp
KTsKQEAgLTYyNiwyOCArNTI5LDI1IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9u
aShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBXCiAgICAgZGVm
YXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIAogICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwogfQogCi1zdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbk1hdHJpeChEYXRhRnVu
Y3Rpb25NYXRyaXhUb0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiBjb250ZXh0KQorc3RhdGljIEpTVmFsdWUgZGF0YUZ1bmN0aW9uTWF0cml4
KERhdGFGdW5jdGlvbk1hdHJpeFRvQ2FsbCBmLCBFeGVjU3RhdGUmIHN0YXRlLCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKHN0YXRl
LmFyZ3VtZW50Q291bnQoKSAhPSAzKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0
YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0gICAg
Ci0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2Nh
dGlvbjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKworICAgIGF1dG8q
IGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIWxvY2F0aW9uICYmICFzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgCisKICAgICBib29sIHRyYW5zcG9zZSA9IHN0YXRl
LnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvQm9vbGVhbigmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgCi0gICAgUmVmUHRyPEZsb2F0MzJBcnJh
eT4gd2ViR0xBcnJheSA9IHRvVW5zaGFyZWRGbG9hdDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMikpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKLSAgICBp
ZiAod2ViR0xBcnJheSkgeworICAgIGlmIChhdXRvIHdlYkdMQXJyYXkgPSB0b1Vuc2hhcmVkRmxv
YXQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKSkgewogICAgICAgICBzd2l0Y2gg
KGYpIHsKICAgICAgICAgY2FzZSBmX3VuaWZvcm1NYXRyaXgyZnY6CiAgICAgICAgICAgICBjb250
ZXh0LnVuaWZvcm1NYXRyaXgyZnYobG9jYXRpb24sIHRyYW5zcG9zZSwgKndlYkdMQXJyYXkpOwpA
QCAtNjU5LDE0ICs1NTksMTMgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25NYXRy
aXgoRGF0YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYsIEpTQzo6RXhlY1N0YXQKICAgICAgICAgICAg
IGNvbnRleHQudW5pZm9ybU1hdHJpeDRmdihsb2NhdGlvbiwgdHJhbnNwb3NlLCAqd2ViR0xBcnJh
eSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotCiAgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwogICAgIH0KLSAgICAKKwogICAgIFZlY3RvcjxmbG9hdCwgNjQ+IGFycmF5Owot
ICAgIGlmICghdG9WZWN0b3Ioc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpLCBhcnJh
eSkpCisgICAgaWYgKCF0b051bWJlclZlY3RvcihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMiksIGFycmF5KSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2Nv
cGUpOwotICAgIAorCiAgICAgc3dpdGNoIChmKSB7CiAgICAgY2FzZSBmX3VuaWZvcm1NYXRyaXgy
ZnY6CiAgICAgICAgIGNvbnRleHQudW5pZm9ybU1hdHJpeDJmdihsb2NhdGlvbiwgdHJhbnNwb3Nl
LCBhcnJheS5kYXRhKCksIGFycmF5LnNpemUoKSk7CkBAIC02NzgsODEgKzU3Nyw4MCBAQCBzdGF0
aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbk1hdHJpeChEYXRhRnVuY3Rpb25NYXRyaXhUb0Nh
bGwgZiwgSlNDOjpFeGVjU3RhdAogICAgICAgICBjb250ZXh0LnVuaWZvcm1NYXRyaXg0ZnYobG9j
YXRpb24sIHRyYW5zcG9zZSwgYXJyYXkuZGF0YSgpLCBhcnJheS5zaXplKCkpOwogICAgICAgICBi
cmVhazsKICAgICB9Ci0KICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAotSlNDOjpKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFmdihKU0M6OkV4ZWNTdGF0
ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFm
dihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdW5pZm9y
bTF2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6dW5pZm9ybTFpdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFpdihFeGVjU3RhdGUmIHN0YXRl
KQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5pZm9ybTF2LCBzdGF0ZSwgd3JhcHBl
ZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5p
Zm9ybTJmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dW5pZm9ybTJmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBk
YXRhRnVuY3Rpb25mKGZfdW5pZm9ybTJ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTJpdihKU0M6OkV4ZWNT
dGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9y
bTJpdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5p
Zm9ybTJ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTNmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTNmdihFeGVjU3RhdGUmIHN0
YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdW5pZm9ybTN2LCBzdGF0ZSwgd3Jh
cHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
dW5pZm9ybTNpdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6dW5pZm9ybTNpdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVy
biBkYXRhRnVuY3Rpb25pKGZfdW5pZm9ybTN2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlND
OjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTRmdihKU0M6OkV4
ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5p
Zm9ybTRmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZf
dW5pZm9ybTR2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTRpdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTRpdihFeGVjU3RhdGUm
IHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5pZm9ybTR2LCBzdGF0ZSwg
d3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6dW5pZm9ybU1hdHJpeDJmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDJmdihFeGVjU3RhdGUmIHN0YXRl
KQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25NYXRyaXgoZl91bmlmb3JtTWF0cml4MmZ2LCBz
dGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDNmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDNmdihFeGVjU3RhdGUm
IHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25NYXRyaXgoZl91bmlmb3JtTWF0cml4
M2Z2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDRmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDRmdihFeGVj
U3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25NYXRyaXgoZl91bmlmb3Jt
TWF0cml4NGZ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMWZ2KEpTQzo6RXhlY1N0YXRlJiBzdGF0
ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWIxZnYo
RXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3ZlcnRleEF0
dHJpYjF2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMmZ2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkK
K0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWIyZnYoRXhl
Y1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3ZlcnRleEF0dHJp
YjJ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliM2Z2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pT
VmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWIzZnYoRXhlY1N0
YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3ZlcnRleEF0dHJpYjN2
LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dmVydGV4QXR0cmliNGZ2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFs
dWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWI0ZnYoRXhlY1N0YXRl
JiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3ZlcnRleEF0dHJpYjR2LCBz
dGF0ZSwgd3JhcHBlZCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IDlmYTI5NDA3OGJiYWNhM2RjMjc2MTA3MGE0OGIy
OGI1YjcyY2M2NGQuLjQwZTY3MjVkNTMyNWI5Y2UyM2ZmZGZiY2NkNGM1ZmRlYTBhNmUwZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNw
cApAQCAtMTM1LDYgKzEzNSwxMCBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1
bGVMb2FkZXI6OnJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYQogCiBKU0M6OkpT
SW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxP
YmplY3QqIGpzR2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVs
ZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSwgSlNDOjpKU1ZhbHVlIGluaXRp
YXRvcikKIHsKKyAgICAvLyBGSVhNRTogV2hhdCBndWFyYW50ZWVzIHRoZXNlIGFyZSB0cnVlPyBX
aHkgZG9uJ3Qgd2UgbmVlZCB0byBjaGVjaz8KKyAgICBBU1NFUlQoSlNDOjpqc0R5bmFtaWNDYXN0
PEpTRWxlbWVudCo+KGluaXRpYXRvcikpOworICAgIEFTU0VSVChpc1NjcmlwdEVsZW1lbnQoSlND
Ojpqc0R5bmFtaWNDYXN0PEpTRWxlbWVudCo+KGluaXRpYXRvciktPndyYXBwZWQoKSkpOworCiAg
ICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKkpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
anNHbG9iYWxPYmplY3QpOwogICAgIGF1dG8mIGpzUHJvbWlzZSA9ICpKU0M6OkpTSW50ZXJuYWxQ
cm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCAmZ2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIGRl
ZmVycmVkID0gRGVmZXJyZWRQcm9taXNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBqc1Byb21pc2Up
OwpAQCAtMTU2LDE3ICsxNjAsMTIgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9k
dWxlTG9hZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE8KICAgICAgICAg
cmV0dXJuIGpzUHJvbWlzZS5wcm9taXNlKCk7CiAgICAgfQogCi0gICAgQVNTRVJUX1dJVEhfTUVT
U0FHRShKU0M6OmpzRHluYW1pY0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKSwgIkluaXRpYXRv
ciBzaG91bGQgYmUgYW4gSlNFbGVtZW50Iik7Ci0gICAgYXV0byogc2NyaXB0RWxlbWVudCA9IHRv
U2NyaXB0RWxlbWVudElmUG9zc2libGUoJkpTQzo6anNDYXN0PEpTRWxlbWVudCo+KGluaXRpYXRv
ciktPndyYXBwZWQoKSk7Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRShzY3JpcHRFbGVtZW50LCAi
SW5pdGlhdG9yIHNob3VsZCBiZSBTY3JpcHRFbGVtZW50LiIpOwotCiAgICAgaWYgKGF1dG8qIGZy
YW1lID0gbV9kb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGF1dG8gbG9hZGVyID0gQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdldCgpKTsKICAgICAg
ICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKLSAgICAgICAgaWYgKCFsb2FkZXIt
PmxvYWQoKnNjcmlwdEVsZW1lbnQsIGNvbXBsZXRlZFVSTCkpIHsKKyAgICAgICAgaWYgKCFsb2Fk
ZXItPmxvYWQoZG93bmNhc3RTY3JpcHRFbGVtZW50KEpTQzo6anNDYXN0PEpTRWxlbWVudCo+KGlu
aXRpYXRvciktPndyYXBwZWQoKSksIGNvbXBsZXRlZFVSTCkpIHsKICAgICAgICAgICAgIGxvYWRl
ci0+Y2xlYXJDbGllbnQoKTsKICAgICAgICAgICAgIG1fbG9hZGVycy5yZW1vdmUoV1RGTW92ZShs
b2FkZXIpKTsKLQogICAgICAgICAgICAgZGVmZXJyZWQtPnJlamVjdChmcmFtZS0+c2NyaXB0KCku
bW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2woKSk7CiAgICAgICAgICAgICBy
ZXR1cm4ganNQcm9taXNlLnByb21pc2UoKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApp
bmRleCA0YzQzYmRkMWQ3ZTQ4Mjc2MzllYWEzZjQ1N2E4NTRhNTcyNTZlMGEwLi43MDU4Y2FiNzk2
MmZkMzJmNjYyZTk4ZmM3NjBiMGY3NzBmZDU0YzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
OTksOCArOTksOCBAQCBjbGFzcyBEb2N1bWVudFBhcnNlcjsKIGNsYXNzIERvY3VtZW50U2hhcmVk
T2JqZWN0UG9vbDsKIGNsYXNzIERvY3VtZW50VHlwZTsKIGNsYXNzIEV4dGVuc2lvblN0eWxlU2hl
ZXRzOwotY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgRmxvYXRRdWFkOworY2xhc3MgRmxvYXRSZWN0
OwogY2xhc3MgRm9ybUNvbnRyb2xsZXI7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1lVmlldzsK
QEAgLTEyMSwxMSArMTIxLDEwIEBAIGNsYXNzIEhUTUxTY3JpcHRFbGVtZW50OwogY2xhc3MgSGl0
VGVzdFJlcXVlc3Q7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xhc3MgSW50UG9pbnQ7CitjbGFz
cyBKU05vZGU7CiBjbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExheW91dFJlY3Q7CiBjbGFzcyBM
aXZlTm9kZUxpc3Q7Ci1jbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXI7Ci1jbGFzcyBKU05vZGU7CiBj
bGFzcyBMb2NhbGU7CiBjbGFzcyBMb2NhdGlvbjsKIGNsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0ZW5l
cjsKQEAgLTEzMyw3ICsxMzIsNiBAQCBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0OwogY2xhc3Mg
TWVkaWFQbGF5YmFja1RhcmdldENsaWVudDsKIGNsYXNzIE1lZGlhUXVlcnlMaXN0OwogY2xhc3Mg
TWVkaWFRdWVyeU1hdGNoZXI7Ci1jbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXI7CiBjbGFzcyBNb3Vz
ZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3MgTmFtZWRGbG93Q29sbGVjdGlvbjsKIGNs
YXNzIE5vZGVGaWx0ZXI7CkBAIC0xNDMsMjMgKzE0MSwyNCBAQCBjbGFzcyBQbGF0Zm9ybU1vdXNl
RXZlbnQ7CiBjbGFzcyBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb247CiBjbGFzcyBRdWFsaWZpZWROYW1l
OwogY2xhc3MgUmFuZ2U7Ci1jbGFzcyBSZW5kZXJWaWV3OwogY2xhc3MgUmVuZGVyRnVsbFNjcmVl
bjsKLWNsYXNzIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlcjsKK2NsYXNzIFJlbmRlclZpZXc7Citj
bGFzcyBTVkdEb2N1bWVudEV4dGVuc2lvbnM7CitjbGFzcyBTVkdTVkdFbGVtZW50OwogY2xhc3Mg
U2NyaXB0RWxlbWVudERhdGE7CitjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXI7CiBjbGFzcyBTY3Jp
cHRSdW5uZXI7CitjbGFzcyBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBTZWN1cml0
eU9yaWdpbjsKK2NsYXNzIFNlZ21lbnRlZFN0cmluZzsKIGNsYXNzIFNlbGVjdG9yUXVlcnk7CiBj
bGFzcyBTZWxlY3RvclF1ZXJ5Q2FjaGU7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7Ci1j
bGFzcyBTZWdtZW50ZWRTdHJpbmc7CiBjbGFzcyBTZXR0aW5nczsKIGNsYXNzIFN0eWxlUmVzb2x2
ZXI7CiBjbGFzcyBTdHlsZVNoZWV0OwogY2xhc3MgU3R5bGVTaGVldENvbnRlbnRzOwogY2xhc3Mg
U3R5bGVTaGVldExpc3Q7Ci1jbGFzcyBTVkdEb2N1bWVudEV4dGVuc2lvbnM7Ci1jbGFzcyBTVkdT
VkdFbGVtZW50OwogY2xhc3MgVGV4dDsKIGNsYXNzIFRleHRSZXNvdXJjZURlY29kZXI7CiBjbGFz
cyBUcmVlV2Fsa2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3Jp
cHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuY3BwCmluZGV4IDJiZTBl
MmViOTAzMmRkMzg5YWI1NzRkNDgwODYwNGYyZTZiZmI1NDkuLjE4MzhjNGY1ZDIwZGMzZjY1MjZi
OGE3MjYyMzIyODJjZDQ5ZWExODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5k
aW5nU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5jcHAK
QEAgLTI2LDMwICsyNiwzMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBlbmRp
bmdTY3JpcHQuaCIKIAotI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJQZW5kaW5nU2Ny
aXB0Q2xpZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVJlZjxQZW5kaW5nU2NyaXB0PiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoRWxlbWVu
dCYgZWxlbWVudCwgTG9hZGFibGVTY3JpcHQmIGxvYWRhYmxlU2NyaXB0KQorUmVmPFBlbmRpbmdT
Y3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShTY3JpcHRFbGVtZW50JiBlbGVtZW50LCBMb2Fk
YWJsZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQpCiB7Ci0gICAgUmVmPFBlbmRpbmdTY3JpcHQ+IHBl
bmRpbmdTY3JpcHQgPSBhZG9wdFJlZigqbmV3IFBlbmRpbmdTY3JpcHQoZWxlbWVudCwgbG9hZGFi
bGVTY3JpcHQpKTsKKyAgICBhdXRvIHBlbmRpbmdTY3JpcHQgPSBhZG9wdFJlZigqbmV3IFBlbmRp
bmdTY3JpcHQoZWxlbWVudCwgbG9hZGFibGVTY3JpcHQpKTsKICAgICBsb2FkYWJsZVNjcmlwdC5h
ZGRDbGllbnQocGVuZGluZ1NjcmlwdC5nZXQoKSk7CiAgICAgcmV0dXJuIHBlbmRpbmdTY3JpcHQ7
CiB9CiAKLVJlZjxQZW5kaW5nU2NyaXB0PiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoRWxlbWVudCYg
ZWxlbWVudCwgVGV4dFBvc2l0aW9uIHNjcmlwdFN0YXJ0UG9zaXRpb24pCitSZWY8UGVuZGluZ1Nj
cmlwdD4gUGVuZGluZ1NjcmlwdDo6Y3JlYXRlKFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQsIFRleHRQ
b3NpdGlvbiBzY3JpcHRTdGFydFBvc2l0aW9uKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFBlbmRpbmdTY3JpcHQoZWxlbWVudCwgc2NyaXB0U3RhcnRQb3NpdGlvbikpOwogfQogCi1QZW5k
aW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KEVsZW1lbnQmIGVsZW1lbnQsIFRleHRQb3NpdGlvbiBz
dGFydGluZ1Bvc2l0aW9uKQorUGVuZGluZ1NjcmlwdDo6UGVuZGluZ1NjcmlwdChTY3JpcHRFbGVt
ZW50JiBlbGVtZW50LCBUZXh0UG9zaXRpb24gc3RhcnRpbmdQb3NpdGlvbikKICAgICA6IG1fZWxl
bWVudChlbGVtZW50KQogICAgICwgbV9zdGFydGluZ1Bvc2l0aW9uKHN0YXJ0aW5nUG9zaXRpb24p
CiB7CiB9CiAKLVBlbmRpbmdTY3JpcHQ6OlBlbmRpbmdTY3JpcHQoRWxlbWVudCYgZWxlbWVudCwg
TG9hZGFibGVTY3JpcHQmIGxvYWRhYmxlU2NyaXB0KQorUGVuZGluZ1NjcmlwdDo6UGVuZGluZ1Nj
cmlwdChTY3JpcHRFbGVtZW50JiBlbGVtZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9hZGFibGVTY3Jp
cHQpCiAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKICAgICAsIG1fbG9hZGFibGVTY3JpcHQoJmxv
YWRhYmxlU2NyaXB0KQogewpAQCAtNjEsMTEgKzYxLDYgQEAgUGVuZGluZ1NjcmlwdDo6flBlbmRp
bmdTY3JpcHQoKQogICAgICAgICBtX2xvYWRhYmxlU2NyaXB0LT5yZW1vdmVDbGllbnQoKnRoaXMp
OwogfQogCi1Mb2FkYWJsZVNjcmlwdCogUGVuZGluZ1NjcmlwdDo6bG9hZGFibGVTY3JpcHQoKSBj
b25zdAotewotICAgIHJldHVybiBtX2xvYWRhYmxlU2NyaXB0LmdldCgpOwotfQotCiB2b2lkIFBl
bmRpbmdTY3JpcHQ6Om5vdGlmeUNsaWVudEZpbmlzaGVkKCkKIHsKICAgICBSZWY8UGVuZGluZ1Nj
cmlwdD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CkBAIC04OCwxMCArODMsMTAgQEAgYm9vbCBQZW5k
aW5nU2NyaXB0OjplcnJvcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fbG9hZGFibGVTY3JpcHQgJiYg
bV9sb2FkYWJsZVNjcmlwdC0+ZXJyb3IoKTsKIH0KIAotdm9pZCBQZW5kaW5nU2NyaXB0OjpzZXRD
bGllbnQoUGVuZGluZ1NjcmlwdENsaWVudCogY2xpZW50KQordm9pZCBQZW5kaW5nU2NyaXB0Ojpz
ZXRDbGllbnQoUGVuZGluZ1NjcmlwdENsaWVudCYgY2xpZW50KQogewogICAgIEFTU0VSVCghbV9j
bGllbnQpOwotICAgIG1fY2xpZW50ID0gY2xpZW50OworICAgIG1fY2xpZW50ID0gJmNsaWVudDsK
ICAgICBpZiAoaXNMb2FkZWQoKSkKICAgICAgICAgbm90aWZ5Q2xpZW50RmluaXNoZWQoKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5oCmluZGV4IDk5MGYyNTA4M2IwMWIwMjdjNGFjMDE0
MTdmOGY0OTE2YTllOGU2NjYuLmZjNzU4ZDA3ZGQ2MGRlYzMxOGJiODhkYWQwNzg3Zjg0ODgyZjgy
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaApAQCAtMzQsMTUgKzM0LDE1IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFNjcmlwdDsKLWNsYXNzIEVsZW1lbnQ7
CiBjbGFzcyBQZW5kaW5nU2NyaXB0Q2xpZW50OworY2xhc3MgU2NyaXB0RWxlbWVudDsKIAogLy8g
QSBjb250YWluZXIgZm9yIHNjcmlwdHMgd2hpY2ggbWF5IGJlIGxvYWRlZCBhbmQgZXhlY3V0ZWQu
CiAvLyBUaGlzIGNhbiBob2xkIExvYWRhYmxlU2NyaXB0IGFuZCBub24gZXh0ZXJuYWwgaW5saW5l
IHNjcmlwdC4KIGNsYXNzIFBlbmRpbmdTY3JpcHQgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxQ
ZW5kaW5nU2NyaXB0PiwgcHVibGljIExvYWRhYmxlU2NyaXB0Q2xpZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IGNyZWF0ZShFbGVtZW50JiwgTG9hZGFibGVTY3Jp
cHQmKTsKLSAgICBzdGF0aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IGNyZWF0ZShFbGVtZW50JiwgVGV4
dFBvc2l0aW9uIHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgIHN0YXRpYyBSZWY8UGVuZGluZ1Nj
cmlwdD4gY3JlYXRlKFNjcmlwdEVsZW1lbnQmLCBMb2FkYWJsZVNjcmlwdCYpOworICAgIHN0YXRp
YyBSZWY8UGVuZGluZ1NjcmlwdD4gY3JlYXRlKFNjcmlwdEVsZW1lbnQmLCBUZXh0UG9zaXRpb24g
c2NyaXB0U3RhcnRQb3NpdGlvbik7CiAKICAgICB2aXJ0dWFsIH5QZW5kaW5nU2NyaXB0KCk7CiAK
QEAgLTUxLDggKzUxLDggQEAgcHVibGljOgogCiAgICAgYm9vbCB3YXRjaGluZ0ZvckxvYWQoKSBj
b25zdCB7IHJldHVybiBuZWVkc0xvYWRpbmcoKSAmJiBtX2NsaWVudDsgfQogCi0gICAgRWxlbWVu
dCYgZWxlbWVudCgpIHsgcmV0dXJuIG1fZWxlbWVudC5nZXQoKTsgfQotICAgIGNvbnN0IEVsZW1l
bnQmIGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0KKyAgICBTY3Jp
cHRFbGVtZW50JiBlbGVtZW50KCkgeyByZXR1cm4gbV9lbGVtZW50LmdldCgpOyB9CisgICAgY29u
c3QgU2NyaXB0RWxlbWVudCYgZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudC5nZXQo
KTsgfQogCiAgICAgTG9hZGFibGVTY3JpcHQqIGxvYWRhYmxlU2NyaXB0KCkgY29uc3Q7CiAgICAg
Ym9vbCBuZWVkc0xvYWRpbmcoKSBjb25zdCB7IHJldHVybiBsb2FkYWJsZVNjcmlwdCgpOyB9CkBA
IC02MiwxOSArNjIsMjQgQEAgcHVibGljOgogCiAgICAgdm9pZCBub3RpZnlGaW5pc2hlZChMb2Fk
YWJsZVNjcmlwdCYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZXRDbGllbnQoUGVuZGluZ1Njcmlw
dENsaWVudCopOworICAgIHZvaWQgc2V0Q2xpZW50KFBlbmRpbmdTY3JpcHRDbGllbnQmKTsKICAg
ICB2b2lkIGNsZWFyQ2xpZW50KCk7CiAKIHByaXZhdGU6Ci0gICAgUGVuZGluZ1NjcmlwdChFbGVt
ZW50JiwgTG9hZGFibGVTY3JpcHQmKTsKLSAgICBQZW5kaW5nU2NyaXB0KEVsZW1lbnQmLCBUZXh0
UG9zaXRpb24gc3RhcnRpbmdQb3NpdGlvbik7CisgICAgUGVuZGluZ1NjcmlwdChTY3JpcHRFbGVt
ZW50JiwgTG9hZGFibGVTY3JpcHQmKTsKKyAgICBQZW5kaW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQm
LCBUZXh0UG9zaXRpb24gc3RhcnRpbmdQb3NpdGlvbik7CiAKICAgICB2b2lkIG5vdGlmeUNsaWVu
dEZpbmlzaGVkKCk7CiAKLSAgICBSZWY8RWxlbWVudD4gbV9lbGVtZW50OworICAgIFJlZjxTY3Jp
cHRFbGVtZW50PiBtX2VsZW1lbnQ7CiAgICAgVGV4dFBvc2l0aW9uIG1fc3RhcnRpbmdQb3NpdGlv
bjsgLy8gT25seSB1c2VkIGZvciBpbmxpbmUgc2NyaXB0IHRhZ3MuCiAgICAgUmVmUHRyPExvYWRh
YmxlU2NyaXB0PiBtX2xvYWRhYmxlU2NyaXB0OwogICAgIFBlbmRpbmdTY3JpcHRDbGllbnQqIG1f
Y2xpZW50IHsgbnVsbHB0ciB9OwogfTsKIAoraW5saW5lIExvYWRhYmxlU2NyaXB0KiBQZW5kaW5n
U2NyaXB0Ojpsb2FkYWJsZVNjcmlwdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbG9hZGFibGVT
Y3JpcHQuZ2V0KCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRl
eCA2MWYyNDgyZjU4NzFkOGFkMGI3NTI2ZjZmNDQ1YmNkYjc3NGZjNDhmLi5kODQ2YzUxODhjMTVm
NjYwMjFmM2U4ZTRiZWU2Y2NkNjI0ZDMzZTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuY3BwCkBAIC0yNjMsMTEgKzI2MywxMSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnByZXBhcmVT
Y3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uLCBMZWdhYwogICAg
IH0gZWxzZSBpZiAoKGlzQ2xhc3NpY0V4dGVybmFsU2NyaXB0IHx8IHNjcmlwdFR5cGUgPT0gU2Ny
aXB0VHlwZTo6TW9kdWxlKSAmJiAhYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpICYmICFtX2ZvcmNlQXN5
bmMpIHsKICAgICAgICAgbV93aWxsRXhlY3V0ZUluT3JkZXIgPSB0cnVlOwogICAgICAgICBBU1NF
UlQobV9sb2FkYWJsZVNjcmlwdCk7Ci0gICAgICAgIGRvY3VtZW50LnNjcmlwdFJ1bm5lcigpLT5x
dWV1ZVNjcmlwdEZvckV4ZWN1dGlvbih0aGlzLCAqbV9sb2FkYWJsZVNjcmlwdCwgU2NyaXB0UnVu
bmVyOjpJTl9PUkRFUl9FWEVDVVRJT04pOworICAgICAgICBkb2N1bWVudC5zY3JpcHRSdW5uZXIo
KS0+cXVldWVTY3JpcHRGb3JFeGVjdXRpb24oKnRoaXMsICptX2xvYWRhYmxlU2NyaXB0LCBTY3Jp
cHRSdW5uZXI6OklOX09SREVSX0VYRUNVVElPTik7CiAgICAgfSBlbHNlIGlmIChoYXNTb3VyY2VB
dHRyaWJ1dGUoKSB8fCBzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6Ok1vZHVsZSkgewogICAgICAg
ICBBU1NFUlQobV9sb2FkYWJsZVNjcmlwdCk7CiAgICAgICAgIEFTU0VSVChhc3luY0F0dHJpYnV0
ZVZhbHVlKCkgfHwgbV9mb3JjZUFzeW5jKTsKLSAgICAgICAgZG9jdW1lbnQuc2NyaXB0UnVubmVy
KCktPnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKHRoaXMsICptX2xvYWRhYmxlU2NyaXB0LCBTY3Jp
cHRSdW5uZXI6OkFTWU5DX0VYRUNVVElPTik7CisgICAgICAgIGRvY3VtZW50LnNjcmlwdFJ1bm5l
cigpLT5xdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbigqdGhpcywgKm1fbG9hZGFibGVTY3JpcHQsIFNj
cmlwdFJ1bm5lcjo6QVNZTkNfRVhFQ1VUSU9OKTsKICAgICB9IGVsc2UgaWYgKCFoYXNTb3VyY2VB
dHRyaWJ1dGUoKSAmJiBtX3BhcnNlckluc2VydGVkICYmICFkb2N1bWVudC5oYXZlU3R5bGVzaGVl
dHNMb2FkZWQoKSkgewogICAgICAgICBBU1NFUlQoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpD
bGFzc2ljKTsKICAgICAgICAgbV93aWxsQmVQYXJzZXJFeGVjdXRlZCA9IHRydWU7CkBAIC00ODcs
MTUgKzQ4NywyNiBAQCBTdHJpbmcgU2NyaXB0RWxlbWVudDo6c2NyaXB0Q29udGVudCgpIGNvbnN0
CiAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwogfQogCi1TY3JpcHRFbGVtZW50KiB0b1Nj
cmlwdEVsZW1lbnRJZlBvc3NpYmxlKEVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIFNjcmlwdEVsZW1l
bnQ6OnJlZigpCiB7Ci0gICAgaWYgKGlzPEhUTUxTY3JpcHRFbGVtZW50PigqZWxlbWVudCkpCi0g
ICAgICAgIHJldHVybiBkb3duY2FzdDxIVE1MU2NyaXB0RWxlbWVudD4oZWxlbWVudCk7CisgICAg
bV9lbGVtZW50LnJlZigpOworfQogCi0gICAgaWYgKGlzPFNWR1NjcmlwdEVsZW1lbnQ+KCplbGVt
ZW50KSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PFNWR1NjcmlwdEVsZW1lbnQ+KGVsZW1lbnQp
Owordm9pZCBTY3JpcHRFbGVtZW50OjpkZXJlZigpCit7CisgICAgbV9lbGVtZW50LmRlcmVmKCk7
Cit9CiAKLSAgICByZXR1cm4gbnVsbHB0cjsKK2Jvb2wgaXNTY3JpcHRFbGVtZW50KEVsZW1lbnQm
IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIGlzPEhUTUxTY3JpcHRFbGVtZW50PihlbGVtZW50KSB8
fCBpczxTVkdTY3JpcHRFbGVtZW50PihlbGVtZW50KTsKK30KKworU2NyaXB0RWxlbWVudCYgZG93
bmNhc3RTY3JpcHRFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgaWYgKGlzPEhUTUxT
Y3JpcHRFbGVtZW50PihlbGVtZW50KSkKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PEhUTUxTY3Jp
cHRFbGVtZW50PihlbGVtZW50KTsKKyAgICByZXR1cm4gZG93bmNhc3Q8U1ZHU2NyaXB0RWxlbWVu
dD4oZWxlbWVudCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCmluZGV4IDQw
NzljMTcwOTMyMTc4NDA4N2U5ZTNmNzMyMzQ2YzU1ODAwZjdiMTQuLmMwNzEwNjNlZDYyZDk4ZmJk
MGVmY2I3NTljMjBiZTA0NTVkMjVlMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaApA
QCAtMzEsMTMgKzMxLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVk
TW9kdWxlU2NyaXB0OwogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ29udGFpbmVyTm9kZTsK
IGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBQZW5kaW5nU2NyaXB0OwotY2xhc3MgU2NyaXB0RWxlbWVu
dDsKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7Ci1jbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHQ7CiAK
IGNsYXNzIFNjcmlwdEVsZW1lbnQgewogcHVibGljOgpAQCAtNzMsNiArNzIsOSBAQCBwdWJsaWM6
CiAgICAgZW51bSBjbGFzcyBTY3JpcHRUeXBlIHsgQ2xhc3NpYywgTW9kdWxlIH07CiAgICAgU2Ny
aXB0VHlwZSBzY3JpcHRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9pc01vZHVsZVNjcmlwdCA/IFNj
cmlwdFR5cGU6Ok1vZHVsZSA6IFNjcmlwdFR5cGU6OkNsYXNzaWM7IH0KIAorICAgIHZvaWQgcmVm
KCk7CisgICAgdm9pZCBkZXJlZigpOworCiBwcm90ZWN0ZWQ6CiAgICAgU2NyaXB0RWxlbWVudChF
bGVtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIsIGJvb2wgaXNFdmFsdWF0ZWQpOwogCkBAIC0x
MjcsNyArMTI5LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TG9hZGFibGVTY3JpcHQ+IG1fbG9h
ZGFibGVTY3JpcHQ7CiB9OwogCi0vLyBGSVhNRTogcmVwbGFjZSB3aXRoIGRvd25jYXN0PFNjcmlw
dEVsZW1lbnQ+LgotU2NyaXB0RWxlbWVudCogdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShFbGVt
ZW50Kik7CisvLyBGSVhNRTogcmVwbGFjZSB3aXRoIGlzL2Rvd25jYXN0PFNjcmlwdEVsZW1lbnQ+
LgorYm9vbCBpc1NjcmlwdEVsZW1lbnQoRWxlbWVudCYpOworU2NyaXB0RWxlbWVudCYgZG93bmNh
c3RTY3JpcHRFbGVtZW50KEVsZW1lbnQmKTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVy
LmNwcAppbmRleCA3MDk4OWViNDBjMDQ1YWRlNzc0YWU1N2QwOWE0MDQ4YjU5ZTM4ODA0Li4wZTdl
ZmQ2YzI5ZTFiYTk1NWY3MWZkNDljNzk5ZWU1OGE5MWM0MGU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0UnVubmVyLmNwcApAQCAtNTYsMjYgKzU2LDIyIEBAIFNjcmlwdFJ1bm5lcjo6flNjcmlwdFJ1
bm5lcigpCiAgICAgfQogfQogCi12b2lkIFNjcmlwdFJ1bm5lcjo6cXVldWVTY3JpcHRGb3JFeGVj
dXRpb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgTG9hZGFibGVTY3JpcHQmIGxvYWRh
YmxlU2NyaXB0LCBFeGVjdXRpb25UeXBlIGV4ZWN1dGlvblR5cGUpCit2b2lkIFNjcmlwdFJ1bm5l
cjo6cXVldWVTY3JpcHRGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCYgc2NyaXB0RWxlbWVudCwg
TG9hZGFibGVTY3JpcHQmIGxvYWRhYmxlU2NyaXB0LCBFeGVjdXRpb25UeXBlIGV4ZWN1dGlvblR5
cGUpCiB7Ci0gICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOwotCi0gICAgRWxlbWVudCYgZWxlbWVu
dCA9IHNjcmlwdEVsZW1lbnQtPmVsZW1lbnQoKTsKLSAgICBBU1NFUlQoZWxlbWVudC5pbkRvY3Vt
ZW50KCkpOworICAgIEFTU0VSVChzY3JpcHRFbGVtZW50LmVsZW1lbnQoKS5pbkRvY3VtZW50KCkp
OwogCiAgICAgbV9kb2N1bWVudC5pbmNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAKLSAg
ICBSZWY8UGVuZGluZ1NjcmlwdD4gcGVuZGluZ1NjcmlwdCA9IFBlbmRpbmdTY3JpcHQ6OmNyZWF0
ZShlbGVtZW50LCBsb2FkYWJsZVNjcmlwdCk7CisgICAgYXV0byBwZW5kaW5nU2NyaXB0ID0gUGVu
ZGluZ1NjcmlwdDo6Y3JlYXRlKHNjcmlwdEVsZW1lbnQsIGxvYWRhYmxlU2NyaXB0KTsKICAgICBz
d2l0Y2ggKGV4ZWN1dGlvblR5cGUpIHsKICAgICBjYXNlIEFTWU5DX0VYRUNVVElPTjoKICAgICAg
ICAgbV9wZW5kaW5nQXN5bmNTY3JpcHRzLmFkZChwZW5kaW5nU2NyaXB0LmNvcHlSZWYoKSk7CiAg
ICAgICAgIGJyZWFrOwotCiAgICAgY2FzZSBJTl9PUkRFUl9FWEVDVVRJT046CiAgICAgICAgIG1f
c2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuYXBwZW5kKHBlbmRpbmdTY3JpcHQuY29weVJlZigpKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIHBlbmRpbmdTY3JpcHQtPnNldENsaWVudCh0aGlz
KTsKKyAgICBwZW5kaW5nU2NyaXB0LT5zZXRDbGllbnQoKnRoaXMpOwogfQogCiB2b2lkIFNjcmlw
dFJ1bm5lcjo6c3VzcGVuZCgpCkBAIC05MSw5ICs4Nyw3IEBAIHZvaWQgU2NyaXB0UnVubmVyOjpy
ZXN1bWUoKQogCiB2b2lkIFNjcmlwdFJ1bm5lcjo6bm90aWZ5RmluaXNoZWQoUGVuZGluZ1Njcmlw
dCYgcGVuZGluZ1NjcmlwdCkKIHsKLSAgICBhdXRvKiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRF
bGVtZW50SWZQb3NzaWJsZSgmcGVuZGluZ1NjcmlwdC5lbGVtZW50KCkpOwotICAgIEFTU0VSVChz
Y3JpcHRFbGVtZW50KTsKLSAgICBpZiAoc2NyaXB0RWxlbWVudC0+d2lsbEV4ZWN1dGVJbk9yZGVy
KCkpCisgICAgaWYgKHBlbmRpbmdTY3JpcHQuZWxlbWVudCgpLndpbGxFeGVjdXRlSW5PcmRlcigp
KQogICAgICAgICBBU1NFUlQoIW1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpKTsK
ICAgICBlbHNlIHsKICAgICAgICAgQVNTRVJUKG1fcGVuZGluZ0FzeW5jU2NyaXB0cy5jb250YWlu
cyhwZW5kaW5nU2NyaXB0KSk7CkBAIC0xMjIsMTAgKzExNiw4IEBAIHZvaWQgU2NyaXB0UnVubmVy
Ojp0aW1lckZpcmVkKCkKICAgICAgICAgLy8gUGFwZXIgb3ZlciBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MDUwCiAgICAgICAgIGlmICghc2NyaXB0KQogICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgIGF1dG8qIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVs
ZW1lbnRJZlBvc3NpYmxlKCZzY3JpcHQtPmVsZW1lbnQoKSk7Ci0gICAgICAgIEFTU0VSVChzY3Jp
cHRFbGVtZW50KTsKICAgICAgICAgQVNTRVJUKHNjcmlwdC0+bmVlZHNMb2FkaW5nKCkpOwotICAg
ICAgICBzY3JpcHRFbGVtZW50LT5leGVjdXRlUGVuZGluZ1NjcmlwdCgqc2NyaXB0KTsKKyAgICAg
ICAgc2NyaXB0LT5lbGVtZW50KCkuZXhlY3V0ZVBlbmRpbmdTY3JpcHQoKnNjcmlwdCk7CiAgICAg
ICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaAppbmRleCBkZmNmM2M1ZmE5MGU0YTQ1MDk0MDQyZDg3
N2RlM2JjZTQ0ODAwZDlhLi4yYjllNjI4NTBiZGQzNWVhNzM0YzdiOGZmZmVkNzliZWMxMTdkYmZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoK
ICAgICB+U2NyaXB0UnVubmVyKCk7CiAKICAgICBlbnVtIEV4ZWN1dGlvblR5cGUgeyBBU1lOQ19F
WEVDVVRJT04sIElOX09SREVSX0VYRUNVVElPTiB9OwotICAgIHZvaWQgcXVldWVTY3JpcHRGb3JF
eGVjdXRpb24oU2NyaXB0RWxlbWVudCosIExvYWRhYmxlU2NyaXB0JiwgRXhlY3V0aW9uVHlwZSk7
CisgICAgdm9pZCBxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50JiwgTG9hZGFi
bGVTY3JpcHQmLCBFeGVjdXRpb25UeXBlKTsKICAgICBib29sIGhhc1BlbmRpbmdTY3JpcHRzKCkg
Y29uc3QgeyByZXR1cm4gIW1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3Nj
cmlwdHNUb0V4ZWN1dGVJbk9yZGVyLmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5nQXN5bmNTY3JpcHRz
LmlzRW1wdHkoKTsgfQogICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCAxMzY3YjRmMjBlYTA5MTFkZjlj
ZGRjZjFjMTYyZTczOWQxZTAyNmUzLi40MTE5M2NlOGExMGM3MjhiODAyNWU2YzBmMTdkZDBlMzI4
OTNmZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTIyMSw3ICsy
MjEsNyBAQCBib29sIEZpbGVJbnB1dFR5cGU6OmNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3QKIAog
RmlsZUxpc3QqIEZpbGVJbnB1dFR5cGU6OmZpbGVzKCkKIHsKLSAgICByZXR1cm4gbV9maWxlTGlz
dC5nZXQoKTsKKyAgICByZXR1cm4gbV9maWxlTGlzdC5wdHIoKTsKIH0KIAogYm9vbCBGaWxlSW5w
dXRUeXBlOjpjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtMjU4LDEyICsyNTgs
MTIgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBU
ZXh0RmllbGRFdmVudEJlaGF2aW9yKQogICAgIGVsZW1lbnQoKS5pbnZhbGlkYXRlU3R5bGVGb3JT
dWJ0cmVlKCk7CiB9CiAKLVBhc3NSZWZQdHI8RmlsZUxpc3Q+IEZpbGVJbnB1dFR5cGU6OmNyZWF0
ZUZpbGVMaXN0KGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpIGNvbnN0
CitSZWY8RmlsZUxpc3Q+IEZpbGVJbnB1dFR5cGU6OmNyZWF0ZUZpbGVMaXN0KGNvbnN0IFZlY3Rv
cjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxGaWxl
Pj4gZmlsZU9iamVjdHM7Ci0gICAgZm9yIChjb25zdCBGaWxlQ2hvb3NlckZpbGVJbmZvJiBpbmZv
IDogZmlsZXMpCi0gICAgICAgIGZpbGVPYmplY3RzLmFwcGVuZChGaWxlOjpjcmVhdGVXaXRoTmFt
ZShpbmZvLnBhdGgsIGluZm8uZGlzcGxheU5hbWUpKTsKLQorICAgIGZpbGVPYmplY3RzLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkoZmlsZXMuc2l6ZSgpKTsKKyAgICBmb3IgKGF1dG8mIGluZm8gOiBm
aWxlcykKKyAgICAgICAgZmlsZU9iamVjdHMudW5jaGVja2VkQXBwZW5kKEZpbGU6OmNyZWF0ZVdp
dGhOYW1lKGluZm8ucGF0aCwgaW5mby5kaXNwbGF5TmFtZSkpOwogICAgIHJldHVybiBGaWxlTGlz
dDo6Y3JlYXRlKFdURk1vdmUoZmlsZU9iamVjdHMpKTsKIH0KIApAQCAtMzAyLDI5ICszMDIsMzIg
QEAgdm9pZCBGaWxlSW5wdXRUeXBlOjptdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQoKQogICAgICAg
ICBidXR0b24tPnNldFZhbHVlKGVsZW1lbnQoKS5tdWx0aXBsZSgpID8gZmlsZUJ1dHRvbkNob29z
ZU11bHRpcGxlRmlsZXNMYWJlbCgpIDogZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpKTsKIH0K
IAorI2lmICFQTEFURk9STShJT1MpCisKIHZvaWQgRmlsZUlucHV0VHlwZTo6cmVxdWVzdEljb24o
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKQogewotI2lmIFBMQVRGT1JNKElPUykKLSAgICBV
TlVTRURfUEFSQU0ocGF0aHMpOwotI2Vsc2UKICAgICBpZiAoIXBhdGhzLnNpemUoKSkgewotICAg
ICAgICB1cGRhdGVSZW5kZXJpbmcobnVsbHB0cik7CisgICAgICAgIGljb25Mb2FkZWQobnVsbHB0
cik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBDaHJvbWUqIGNocm9tZSA9IHRoaXMt
PmNocm9tZSgpOwotICAgIGlmICghY2hyb21lKQorICAgIGF1dG8qIGNocm9tZSA9IHRoaXMtPmNo
cm9tZSgpOworICAgIGlmICghY2hyb21lKSB7CisgICAgICAgIGljb25Mb2FkZWQobnVsbHB0cik7
CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBpZiAobV9maWxlSWNvbkxvYWRlcikKICAg
ICAgICAgbV9maWxlSWNvbkxvYWRlci0+aW52YWxpZGF0ZSgpOwogCi0gICAgbV9maWxlSWNvbkxv
YWRlciA9IHN0ZDo6bWFrZV91bmlxdWU8RmlsZUljb25Mb2FkZXI+KHN0YXRpY19jYXN0PEZpbGVJ
Y29uTG9hZGVyQ2xpZW50Jj4oKnRoaXMpKTsKKyAgICBGaWxlSWNvbkxvYWRlckNsaWVudCYgY2xp
ZW50ID0gKnRoaXM7CisgICAgbV9maWxlSWNvbkxvYWRlciA9IHN0ZDo6bWFrZV91bmlxdWU8Rmls
ZUljb25Mb2FkZXI+KGNsaWVudCk7CiAKLSAgICBjaHJvbWUtPmxvYWRJY29uRm9yRmlsZXMocGF0
aHMsIG1fZmlsZUljb25Mb2FkZXIuZ2V0KCkpOwotI2VuZGlmCisgICAgY2hyb21lLT5sb2FkSWNv
bkZvckZpbGVzKHBhdGhzLCAqbV9maWxlSWNvbkxvYWRlcik7CiB9CiAKKyNlbmRpZgorCiB2b2lk
IEZpbGVJbnB1dFR5cGU6OmFwcGx5RmlsZUNob29zZXJTZXR0aW5ncyhjb25zdCBGaWxlQ2hvb3Nl
clNldHRpbmdzJiBzZXR0aW5ncykKIHsKICAgICBpZiAobV9maWxlQ2hvb3NlcikKQEAgLTMzMywx
OCArMzM2LDIxIEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6YXBwbHlGaWxlQ2hvb3NlclNldHRpbmdz
KGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRpbmdzCiAgICAgbV9maWxlQ2hvb3NlciA9
IEZpbGVDaG9vc2VyOjpjcmVhdGUodGhpcywgc2V0dGluZ3MpOwogfQogCi12b2lkIEZpbGVJbnB1
dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+IGZpbGVzKQordm9pZCBGaWxlSW5w
dXRUeXBlOjpzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+JiYgZmlsZXMpCiB7CiAgICAgaWYgKCFm
aWxlcykKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0
KGVsZW1lbnQoKSk7CiAKKyAgICB1bnNpZ25lZCBsZW5ndGggPSBmaWxlcy0+bGVuZ3RoKCk7Cisg
ICAgdW5zaWduZWQgb2xkTGVuZ3RoID0gbV9maWxlTGlzdC0+bGVuZ3RoKCk7CisKICAgICBib29s
IHBhdGhzQ2hhbmdlZCA9IGZhbHNlOwotICAgIGlmIChmaWxlcy0+bGVuZ3RoKCkgIT0gbV9maWxl
TGlzdC0+bGVuZ3RoKCkpCisgICAgaWYgKGxlbmd0aCAhPSBvbGRMZW5ndGgpCiAgICAgICAgIHBh
dGhzQ2hhbmdlZCA9IHRydWU7CiAgICAgZWxzZSB7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBmaWxlcy0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIGlmIChmaWxlcy0+aXRlbShpKS0+
cGF0aCgpICE9IG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSkgewogICAgICAgICAgICAgICAg
IHBhdGhzQ2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0zNTIsMTUg
KzM1OCwxNyBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxp
c3Q+IGZpbGVzKQogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9maWxlTGlzdCA9IGZpbGVzOwor
ICAgIG1fZmlsZUxpc3QgPSBmaWxlcy5yZWxlYXNlTm9uTnVsbCgpOwogCiAgICAgaW5wdXQtPnNl
dEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CiAgICAgaW5wdXQtPnVwZGF0
ZVZhbGlkaXR5KCk7CiAKKyNpZiAhUExBVEZPUk0oSU9TKQogICAgIFZlY3RvcjxTdHJpbmc+IHBh
dGhzOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2ZpbGVMaXN0LT5sZW5ndGgoKTsg
KytpKQorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKICAgICAgICAg
cGF0aHMuYXBwZW5kKG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSk7CiAgICAgcmVxdWVzdElj
b24ocGF0aHMpOworI2VuZGlmCiAKICAgICBpZiAoaW5wdXQtPnJlbmRlcmVyKCkpCiAgICAgICAg
IGlucHV0LT5yZW5kZXJlcigpLT5yZXBhaW50KCk7CkBAIC0zNzQsMTcgKzM4MiwxOSBAQCB2b2lk
IEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+IGZpbGVzKQogfQog
CiAjaWYgUExBVEZPUk0oSU9TKQorCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKGNv
bnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgcGF0aHMsIGNvbnN0IFN0cmluZyYgZGlz
cGxheVN0cmluZywgSWNvbiogaWNvbikKIHsKICAgICBtX2Rpc3BsYXlTdHJpbmcgPSBkaXNwbGF5
U3RyaW5nOwogICAgIGZpbGVzQ2hvc2VuKHBhdGhzKTsKLSAgICB1cGRhdGVSZW5kZXJpbmcoaWNv
bik7CisgICAgaWNvbkxvYWRlZChpY29uKTsKIH0KIAogU3RyaW5nIEZpbGVJbnB1dFR5cGU6OmRp
c3BsYXlTdHJpbmcoKSBjb25zdAogewogICAgIHJldHVybiBtX2Rpc3BsYXlTdHJpbmc7CiB9CisK
ICNlbmRpZgogCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxG
aWxlQ2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpCkBAIC0zOTIsMTIgKzQwMiwxMiBAQCB2b2lkIEZp
bGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZv
PiYgZmlsZXMpCiAgICAgc2V0RmlsZXMoY3JlYXRlRmlsZUxpc3QoZmlsZXMpKTsKIH0KIAotdm9p
ZCBGaWxlSW5wdXRUeXBlOjp1cGRhdGVSZW5kZXJpbmcoUGFzc1JlZlB0cjxJY29uPiBpY29uKQor
dm9pZCBGaWxlSW5wdXRUeXBlOjppY29uTG9hZGVkKFJlZlB0cjxJY29uPiYmIGljb24pCiB7CiAg
ICAgaWYgKG1faWNvbiA9PSBpY29uKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2ljb24gPSBp
Y29uOworICAgIG1faWNvbiA9IFdURk1vdmUoaWNvbik7CiAgICAgaWYgKGVsZW1lbnQoKS5yZW5k
ZXJlcigpKQogICAgICAgICBlbGVtZW50KCkucmVuZGVyZXIoKS0+cmVwYWludCgpOwogfQpAQCAt
NDM0LDggKzQ0NCw3IEBAIEljb24qIEZpbGVJbnB1dFR5cGU6Omljb24oKSBjb25zdAogCiBTdHJp
bmcgRmlsZUlucHV0VHlwZTo6ZGVmYXVsdFRvb2xUaXAoKSBjb25zdAogewotICAgIEZpbGVMaXN0
KiBmaWxlTGlzdCA9IG1fZmlsZUxpc3QuZ2V0KCk7Ci0gICAgdW5zaWduZWQgbGlzdFNpemUgPSBm
aWxlTGlzdC0+bGVuZ3RoKCk7CisgICAgdW5zaWduZWQgbGlzdFNpemUgPSBtX2ZpbGVMaXN0LT5s
ZW5ndGgoKTsKICAgICBpZiAoIWxpc3RTaXplKSB7CiAgICAgICAgIGlmIChlbGVtZW50KCkubXVs
dGlwbGUoKSkKICAgICAgICAgICAgIHJldHVybiBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFi
ZWwoKTsKQEAgLTQ0Myw4ICs0NTIsOCBAQCBTdHJpbmcgRmlsZUlucHV0VHlwZTo6ZGVmYXVsdFRv
b2xUaXAoKSBjb25zdAogICAgIH0KIAogICAgIFN0cmluZ0J1aWxkZXIgbmFtZXM7Ci0gICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7Ci0gICAgICAgIG5hbWVzLmFwcGVu
ZChmaWxlTGlzdC0+aXRlbShpKS0+bmFtZSgpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbGlzdFNpemU7ICsraSkgeworICAgICAgICBuYW1lcy5hcHBlbmQobV9maWxlTGlzdC0+aXRl
bShpKS0+bmFtZSgpKTsKICAgICAgICAgaWYgKGkgIT0gbGlzdFNpemUgLSAxKQogICAgICAgICAg
ICAgbmFtZXMuYXBwZW5kKCdcbicpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmlsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBl
LmgKaW5kZXggZjhhMGRmZjJkOGQzYzMwNWYwMWExZGY4Yzg5MWEyOTBlMzY1NjNmMS4uZWU0MDY0
OGQ2OTUxZGE2YWQyOTM5YTAyZjUzNmU3Nzg4NjljMmY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmgKQEAgLTUwLDQ1ICs1MCw0NSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFZlY3Rv
cjxGaWxlQ2hvb3NlckZpbGVJbmZvPiBmaWxlc0Zyb21Gb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZv
cm1Db250cm9sU3RhdGUmKTsKIAogcHJpdmF0ZToKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGZv
cm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIEZvcm1Db250cm9sU3RhdGUgc2F2
ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHJlc3RvcmVGb3Jt
Q29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKSBvdmVycmlkZTsKLSAgICBib29s
IGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0IG92ZXJyaWRlOwotICAg
IGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwotICAgIFN0
cmluZyB2YWx1ZU1pc3NpbmdUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoYW5kbGVE
T01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7Ci0gICAgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUlucHV0UmVuZGVyZXIoUmVuZGVyU3R5bGUmJikgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBjYW5TZXRTdHJpbmdWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIEZpbGVMaXN0KiBm
aWxlcygpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4p
IG92ZXJyaWRlOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29u
c3QgZmluYWw7CisgICAgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNv
bnN0IGZpbmFsOworICAgIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNv
bnRyb2xTdGF0ZSYpIGZpbmFsOworICAgIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0
JiwgYm9vbCkgY29uc3QgZmluYWw7CisgICAgYm9vbCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5n
JikgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIHZhbHVlTWlzc2luZ1RleHQoKSBjb25zdCBmaW5h
bDsKKyAgICB2b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBmaW5hbDsKKyAgICBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYm
KSBmaW5hbDsKKyAgICBib29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3QgZmluYWw7CisgICAg
RmlsZUxpc3QqIGZpbGVzKCkgZmluYWw7CisgICAgdm9pZCBzZXRGaWxlcyhSZWZQdHI8RmlsZUxp
c3Q+JiYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICBTdHJpbmcgZGlzcGxheVN0cmlu
ZygpIGNvbnN0IG92ZXJyaWRlOworICAgIFN0cmluZyBkaXNwbGF5U3RyaW5nKCkgY29uc3QgZmlu
YWw7CiAjZW5kaWYKLSAgICBib29sIGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRl
OwotICAgIGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5nJikgb3ZlcnJpZGU7IC8vIENo
ZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdlIG9yIHRoZSB2YWx1ZSBhdHRyaWJ1
dGUuCi0gICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwg
VGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TZXRWYWx1ZShj
b25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIGdldFR5cGVTcGVjaWZpY1ZhbHVlKFN0cmlu
ZyYpIGZpbmFsOyAvLyBDaGVja2VkIGZpcnN0LCBiZWZvcmUgaW50ZXJuYWwgc3RvcmFnZSBvciB0
aGUgdmFsdWUgYXR0cmlidXRlLgorICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9v
bCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIGZpbmFsOwogCiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKLSAgICBib29sIHJlY2VpdmVEcm9wcGVkRmlsZXMoY29uc3QgRHJh
Z0RhdGEmKSBvdmVycmlkZTsKKyAgICBib29sIHJlY2VpdmVEcm9wcGVkRmlsZXMoY29uc3QgRHJh
Z0RhdGEmKSBmaW5hbDsKICNlbmRpZgogCi0gICAgSWNvbiogaWNvbigpIGNvbnN0IG92ZXJyaWRl
OwotICAgIGJvb2wgaXNGaWxlVXBsb2FkKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjcmVh
dGVTaGFkb3dTdWJ0cmVlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNhYmxlZEF0dHJpYnV0ZUNo
YW5nZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIG11bHRpcGxlQXR0cmlidXRlQ2hhbmdlZCgpIG92
ZXJyaWRlOwotICAgIFN0cmluZyBkZWZhdWx0VG9vbFRpcCgpIGNvbnN0IG92ZXJyaWRlOworICAg
IEljb24qIGljb24oKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGlzRmlsZVVwbG9hZCgpIGNvbnN0
IGZpbmFsOworICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOworICAgIHZvaWQg
ZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2VkKCkgZmluYWw7CisgICAgdm9pZCBtdWx0aXBsZUF0dHJp
YnV0ZUNoYW5nZWQoKSBmaW5hbDsKKyAgICBTdHJpbmcgZGVmYXVsdFRvb2xUaXAoKSBjb25zdCBm
aW5hbDsKIAogICAgIC8vIEZpbGVDaG9vc2VyQ2xpZW50IGltcGxlbWVudGF0aW9uLgotICAgIHZv
aWQgZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+Jikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBmaWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5m
bz4mKSBmaW5hbDsKICNpZiBQTEFURk9STShJT1MpCi0gICAgdm9pZCBmaWxlc0Nob3Nlbihjb25z
dCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlTdHJp
bmcsIEljb24qKSBvdmVycmlkZTsKKyAgICB2b2lkIGZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxG
aWxlQ2hvb3NlckZpbGVJbmZvPiYsIGNvbnN0IFN0cmluZyYgZGlzcGxheVN0cmluZywgSWNvbiop
IGZpbmFsOwogI2VuZGlmCiAKICAgICAvLyBGaWxlSWNvbkxvYWRlckNsaWVudCBpbXBsZW1lbnRh
dGlvbi4KLSAgICB2b2lkIHVwZGF0ZVJlbmRlcmluZyhQYXNzUmVmUHRyPEljb24+KSBvdmVycmlk
ZTsKKyAgICB2b2lkIGljb25Mb2FkZWQoUmVmUHRyPEljb24+JiYpIGZpbmFsOwogCi0gICAgUGFz
c1JlZlB0cjxGaWxlTGlzdD4gY3JlYXRlRmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2Vy
RmlsZUluZm8+JiBmaWxlcykgY29uc3Q7CisgICAgc3RhdGljIFJlZjxGaWxlTGlzdD4gY3JlYXRl
RmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+Jik7CiAgICAgdm9pZCBy
ZXF1ZXN0SWNvbihjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogCiAgICAgdm9pZCBhcHBseUZpbGVD
aG9vc2VyU2V0dGluZ3MoY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYpOwpAQCAtOTgsNyArOTgs
NyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWxlSWNvbkxvYWRlcj4gbV9maWxl
SWNvbkxvYWRlcjsKICNlbmRpZgogCi0gICAgUmVmUHRyPEZpbGVMaXN0PiBtX2ZpbGVMaXN0Owor
ICAgIFJlZjxGaWxlTGlzdD4gbV9maWxlTGlzdDsKICAgICBSZWZQdHI8SWNvbj4gbV9pY29uOwog
I2lmIFBMQVRGT1JNKElPUykKICAgICBTdHJpbmcgbV9kaXNwbGF5U3RyaW5nOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCBmNGJlNzE1OGM1MTAwODU4MzA1ODBiNmE3Mzg1ODcy
MDMwMzlhM2Q5Li45ZWRjNjEwNTU0NTE2NDMxZTY1OTQ3YjE3NDAyN2IxYjE0ZjMxZGM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtNzUyLDcgKzc1Miw3IEBAIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBIVE1MRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRl
clN0eWxlJiYgc3R5bGUsCiAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhp
cywgV1RGTW92ZShzdHlsZSkpOwogfQogCi1IVE1MRm9ybUVsZW1lbnQqIEhUTUxFbGVtZW50Ojp2
aXJ0dWFsRm9ybSgpIGNvbnN0CitIVE1MRm9ybUVsZW1lbnQqIEhUTUxFbGVtZW50Ojpmb3JtKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gSFRNTEZvcm1FbGVtZW50OjpmaW5kQ2xvc2VzdEZvcm1BbmNl
c3RvcigqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKaW5kZXggMzlkNGNiNzJi
Njc2MzcyNzc1OTExMjZhOGExNTI1MDU0MDJkZmUwYy4uMDJkMDdlZDgwNTBlOTEyOTBhZWE0MmQw
YmMyNzUyN2NjZDQ0YWNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApAQCAtNzAsNyAr
NzAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0
eWxlJikgb3ZlcnJpZGU7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVy
cmlkZTsKIAotICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IHsgcmV0dXJuIHZpcnR1
YWxGb3JtKCk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEhUTUxGb3JtRWxlbWVudCog
Zm9ybSgpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgQXRvbWljU3RyaW5nJiBk
aXIoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERpcihjb25zdCBBdG9taWNT
dHJpbmcmKTsKQEAgLTEzMyw4ICsxMzMsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBtYXBMYW5n
dWFnZUF0dHJpYnV0ZVRvTG9jYWxlKGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVBy
b3BlcnRpZXMmKTsKIAotICAgIHZpcnR1YWwgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFsRm9ybSgp
IGNvbnN0OwotCiAgICAgRXhjZXB0aW9uT3I8UmVmPERvY3VtZW50RnJhZ21lbnQ+PiB0ZXh0VG9G
cmFnbWVudChjb25zdCBTdHJpbmcmKTsKIAogICAgIHZvaWQgZGlyQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBBdG9taWNTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwCmluZGV4IDg0NTE2Y2I2MjQ0YzMzYjFmNzA1ZTA2ZGUyODIyYWVhMTFl
NTFiZDguLjdiZmVjZWJhNzAwN2IzZGZkM2NjNmNjYzdhZWJmODE5YmIxYjIzOTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTkzLDEx
ICs1OTMsNiBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50
KFJlZlB0cjxFbGVtZW50PiYmIG5ld0ZvY3VzZWRFbGVtZQogICAgIGhpZGVWaXNpYmxlVmFsaWRh
dGlvbk1lc3NhZ2UoKTsKIH0KIAotSFRNTEZvcm1FbGVtZW50KiBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50Ojp2aXJ0dWFsRm9ybSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEZvcm1Bc3NvY2lhdGVkRWxl
bWVudDo6Zm9ybSgpOwotfQotCiAjaWYgRU5BQkxFKElPU19BVVRPQ09SUkVDVF9BTkRfQVVUT0NB
UElUQUxJWkUpCiAKIC8vIEZJWE1FOiBXZSBzaG91bGQgbG9vayB0byBzaGFyZSB0aGlzIGNvZGUg
d2l0aCBjbGFzcyBIVE1MRm9ybUVsZW1lbnQgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyB0aGUgbG9n
aWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4
IDRmZjQ4OTRmMzVmZTYxZDJlZGYwYzA4NTVlOTIyNDRhY2RjNWM0ZmMuLmUxNTM1YzYzZWM5NzNj
NWNlNTBhZjRhN2Q5YjE2OWNiNDgzYTcwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQgOiBwdWJsaWMgTGFiZWxhYmxlRWxlbWVudCwgcHVibGljIEZvcm1Bc3NvY2lh
dGVkRWxlCiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SFRNTEZvcm1Db250cm9sRWxlbWVudCgpOwog
Ci0gICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkgY29uc3QgeyByZXR1cm4gRm9ybUFzc29jaWF0
ZWRFbGVtZW50Ojpmb3JtKCk7IH0KKyAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCBm
aW5hbCB7IHJldHVybiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm0oKTsgfQogCiAgICAgV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIGZvcm1FbmN0eXBlKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRGb3JtRW5jdHlwZShjb25zdCBTdHJpbmcmKTsKQEAgLTE2OSw3ICsxNjksNiBA
QCBwcml2YXRlOgogCiAgICAgaW50IHRhYkluZGV4KCkgY29uc3QgZmluYWw7CiAKLSAgICBIVE1M
Rm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1Zh
bGlkRm9ybUNvbnRyb2xFbGVtZW50KCkgY29uc3Q7CiAKICAgICBib29sIGNvbXB1dGVJc0Rpc2Fi
bGVkQnlGaWVsZHNldEFuY2VzdG9yKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcAppbmRleCBkNDNkNGVmOWUwMTE5MjZkMGU4YTBlYmRlYzg3NTJkM2VmZmRm
YzI0Li4xNDQ4Mzg5YTRhZmQ4MjUwNjc3YTYyMmIxOTU5MTcyYzlhNzkzYTViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTExODQsMTAgKzExODQsOSBAQCB2
b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQog
ICAgICAgICBpZiAod2FzQ2hhbmdlZFNpbmNlTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKSkK
ICAgICAgICAgICAgIGRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwogCi0gICAgICAg
IFJlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IGZvcm1Gb3JTdWJtaXNzaW9uID0gbV9pbnB1dFR5cGUt
PmZvcm1Gb3JTdWJtaXNzaW9uKCk7CiAgICAgICAgIC8vIEZvcm0gbWF5IG5ldmVyIGhhdmUgYmVl
biBwcmVzZW50LCBvciBtYXkgaGF2ZSBiZWVuIGRlc3Ryb3llZCBieSBjb2RlIHJlc3BvbmRpbmcg
dG8gdGhlIGNoYW5nZSBldmVudC4KLSAgICAgICAgaWYgKGZvcm1Gb3JTdWJtaXNzaW9uKQotICAg
ICAgICAgICAgZm9ybUZvclN1Ym1pc3Npb24tPnN1Ym1pdEltcGxpY2l0bHkoZXZlbnQsIGNhblRy
aWdnZXJJbXBsaWNpdFN1Ym1pc3Npb24oKSk7CisgICAgICAgIGlmIChhdXRvKiBmb3JtRWxlbWVu
dCA9IGZvcm0oKSkKKyAgICAgICAgICAgIGZvcm1FbGVtZW50LT5zdWJtaXRJbXBsaWNpdGx5KGV2
ZW50LCBjYW5UcmlnZ2VySW1wbGljaXRTdWJtaXNzaW9uKCkpOwogCiAgICAgICAgIGV2ZW50LnNl
dERlZmF1bHRIYW5kbGVkKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTEzNDIsOSArMTM0MSw5IEBA
IEZpbGVMaXN0KiBIVE1MSW5wdXRFbGVtZW50OjpmaWxlcygpCiAgICAgcmV0dXJuIG1faW5wdXRU
eXBlLT5maWxlcygpOwogfQogCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEZpbGVzKFBhc3NS
ZWZQdHI8RmlsZUxpc3Q+IGZpbGVzKQordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRGaWxlcyhS
ZWZQdHI8RmlsZUxpc3Q+JiYgZmlsZXMpCiB7Ci0gICAgbV9pbnB1dFR5cGUtPnNldEZpbGVzKGZp
bGVzKTsKKyAgICBtX2lucHV0VHlwZS0+c2V0RmlsZXMoV1RGTW92ZShmaWxlcykpOwogfQogCiAj
aWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKQEAgLTE4NjksNyArMTg2OCw3IEBAIFJhZGlvQnV0dG9u
R3JvdXBzKiBIVE1MSW5wdXRFbGVtZW50OjpyYWRpb0J1dHRvbkdyb3VwcygpIGNvbnN0CiB7CiAg
ICAgaWYgKCFpc1JhZGlvQnV0dG9uKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGlm
IChIVE1MRm9ybUVsZW1lbnQqIGZvcm1FbGVtZW50ID0gZm9ybSgpKQorICAgIGlmIChhdXRvKiBm
b3JtRWxlbWVudCA9IGZvcm0oKSkKICAgICAgICAgcmV0dXJuICZmb3JtRWxlbWVudC0+cmFkaW9C
dXR0b25Hcm91cHMoKTsKICAgICBpZiAoaW5Eb2N1bWVudCgpKQogICAgICAgICByZXR1cm4gJmRv
Y3VtZW50KCkuZm9ybUNvbnRyb2xsZXIoKS5yYWRpb0J1dHRvbkdyb3VwcygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA4YWZmZDk4MTE3NTRkOWU0OTIzNjI1NmU2
NTVkNmRhNTU4M2Y1NmQ2Li4xOTk5MmI1NDkwYmNiNGMxZjk3NjYxNmI4ZGRjZGIwNDdjZDlkYzQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMjM4LDcgKzIzOCw3
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNob3dBdXRvRmlsbEJ1dHRv
bihBdXRvRmlsbEJ1dHRvblR5cGUpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgRmlsZUxpc3QqIGZp
bGVzKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVM
aXN0Pik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+
JiYpOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICAvLyBSZXR1cm5zIHRydWUgaWYg
dGhlIGdpdmVuIERyYWdEYXRhIGhhcyBtb3JlIHRoYW4gb25lIGRyb3BwZWQgZmlsZXMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcAppbmRleCBjMmQxODVjMzEwYTBiOTJi
OTIwZTk3NTEwNGNhMWNlYjg1NTA1ZmFkLi44Yjc5M2FmZDhjNTVlYzc5ZDNlN2UyZTZmMWMzN2U0
ODI1YzU2Nzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAKQEAg
LTYzLDMwICs2MywyOCBAQCBib29sIEhUTUxMYWJlbEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29u
c3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUxhYmVsYWJsZUVsZW1lbnQqIEhUTUxMYWJlbEVs
ZW1lbnQ6OmNvbnRyb2woKQorTGFiZWxhYmxlRWxlbWVudCogSFRNTExhYmVsRWxlbWVudDo6Y29u
dHJvbCgpIGNvbnN0CiB7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBjb250cm9sSWQgPSBhdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGZvckF0dHIpOworICAgIGF1dG8mIGNvbnRyb2xJ
ZCA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oZm9yQXR0cik7CiAgICAgaWYgKGNv
bnRyb2xJZC5pc051bGwoKSkgewogICAgICAgICAvLyBTZWFyY2ggdGhlIGNoaWxkcmVuIGFuZCBk
ZXNjZW5kYW50cyBvZiB0aGUgbGFiZWwgZWxlbWVudCBmb3IgYSBmb3JtIGVsZW1lbnQuCiAgICAg
ICAgIC8vIHBlciBodHRwOi8vZGV2LnczLm9yZy9odG1sNS9zcGVjL092ZXJ2aWV3Lmh0bWwjdGhl
LWxhYmVsLWVsZW1lbnQKICAgICAgICAgLy8gdGhlIGZvcm0gZWxlbWVudCBtdXN0IGJlICJsYWJl
bGFibGUgZm9ybS1hc3NvY2lhdGVkIGVsZW1lbnQiLgogICAgICAgICBmb3IgKGF1dG8mIGxhYmVs
YWJsZUVsZW1lbnQgOiBkZXNjZW5kYW50c09mVHlwZTxMYWJlbGFibGVFbGVtZW50PigqdGhpcykp
IHsKICAgICAgICAgICAgIGlmIChsYWJlbGFibGVFbGVtZW50LnN1cHBvcnRMYWJlbHMoKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gJmxhYmVsYWJsZUVsZW1lbnQ7CisgICAgICAgICAgICAgICAg
cmV0dXJuIGNvbnN0X2Nhc3Q8TGFiZWxhYmxlRWxlbWVudCo+KCZsYWJlbGFibGVFbGVtZW50KTsK
ICAgICAgICAgfQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgCiAgICAgcmV0
dXJuIGluRG9jdW1lbnQoKSA/IGZpcnN0RWxlbWVudFdpdGhJZElmTGFiZWxhYmxlKHRyZWVTY29w
ZSgpLCBjb250cm9sSWQpIDogbnVsbHB0cjsKIH0KIAotSFRNTEZvcm1FbGVtZW50KiBIVE1MTGFi
ZWxFbGVtZW50Ojpmb3JtKCkKK0hUTUxGb3JtRWxlbWVudCogSFRNTExhYmVsRWxlbWVudDo6Zm9y
bSgpIGNvbnN0CiB7Ci0gICAgYXV0byogbGFiZWxlZENvbnRyb2wgPSBjb250cm9sKCk7Ci0gICAg
aWYgKCFsYWJlbGVkQ29udHJvbCkKKyAgICBhdXRvKiBjb250cm9sID0gdGhpcy0+Y29udHJvbCgp
OworICAgIGlmICghaXM8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oY29udHJvbCkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+
KCpsYWJlbGVkQ29udHJvbCkgPyBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PigqbGFi
ZWxlZENvbnRyb2wpLmZvcm0oKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIGRvd25jYXN0PEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQ+KCpjb250cm9sKS5mb3JtKCk7CiB9CiAKIHZvaWQgSFRNTExhYmVs
RWxlbWVudDo6c2V0QWN0aXZlKGJvb2wgZG93biwgYm9vbCBwYXVzZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGFiZWxFbGVtZW50LmgKaW5kZXggMTRkZGMwODNhNjE4ZTQ3N2YzMjFhNTE3NmFkNjEw
M2FlOTI5NmQwNi4uOWUwNTYwYjM1OWFiM2E2OGM4YzkzNzAzNmY5MjNkNTViMjdjNzc0NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKQEAgLTMxLDggKzMxLDggQEAgY2xh
c3MgSFRNTExhYmVsRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxIVE1MTGFiZWxFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBMYWJlbGFibGVFbGVtZW50
KiBjb250cm9sKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgTGFiZWxhYmxlRWxlbWVudCogY29udHJvbCgpIGNvbnN0Owor
ICAgIFdFQkNPUkVfRVhQT1JUIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IGZpbmFsOwog
CiAgICAgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIGZpbmFsOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwCmluZGV4IGVhNzk3MzU4NjYxMGVm
N2Q5YWYzMzdjMWJhN2U5NTMxNTllNDM3NmUuLjQ2YjU2ZDVhMGQ2Yjg3MTM2MzZkYWUzNmY5Yjg0
YzZhNzZiOTk0M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3Bw
CkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xs
QGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3Rv
QGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtk
ZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQ
cm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zMSwxMyArMzEsMTAg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwot
Ci0KIGlubGluZSBIVE1MTGVnZW5kRWxlbWVudDo6SFRNTExlZ2VuZEVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRNTEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7Ci0gICAgQVNTRVJUKGhhc1RhZ05hbWUobGVnZW5kVGFn
KSk7CisgICAgQVNTRVJUKGhhc1RhZ05hbWUoSFRNTE5hbWVzOjpsZWdlbmRUYWcpKTsKIH0KIAog
UmVmPEhUTUxMZWdlbmRFbGVtZW50PiBIVE1MTGVnZW5kRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTYxLDI3ICs1OCwy
NiBAQCB2b2lkIEhUTUxMZWdlbmRFbGVtZW50Ojpmb2N1cyhib29sLCBGb2N1c0RpcmVjdGlvbiBk
aXJlY3Rpb24pCiB7CiAgICAgaWYgKGlzRm9jdXNhYmxlKCkpCiAgICAgICAgIEVsZW1lbnQ6OmZv
Y3VzKHRydWUsIGRpcmVjdGlvbik7Ci0gICAgICAgIAorCiAgICAgLy8gVG8gbWF0Y2ggb3RoZXIg
YnJvd3NlcnMnIGJlaGF2aW9yLCBuZXZlciByZXN0b3JlIHByZXZpb3VzIHNlbGVjdGlvbi4KLSAg
ICBpZiAoSFRNTEZvcm1Db250cm9sRWxlbWVudCogY29udHJvbCA9IGFzc29jaWF0ZWRDb250cm9s
KCkpCisgICAgaWYgKGF1dG8qIGNvbnRyb2wgPSBhc3NvY2lhdGVkQ29udHJvbCgpKQogICAgICAg
ICBjb250cm9sLT5mb2N1cyhmYWxzZSwgZGlyZWN0aW9uKTsKIH0KIAogdm9pZCBIVE1MTGVnZW5k
RWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQogewotICAgIGlm
IChIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBjb250cm9sID0gYXNzb2NpYXRlZENvbnRyb2woKSkK
KyAgICBpZiAoYXV0byogY29udHJvbCA9IGFzc29jaWF0ZWRDb250cm9sKCkpCiAgICAgICAgIGNv
bnRyb2wtPmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMpOwogfQogCi1IVE1MRm9ybUVs
ZW1lbnQqIEhUTUxMZWdlbmRFbGVtZW50Ojp2aXJ0dWFsRm9ybSgpIGNvbnN0CitIVE1MRm9ybUVs
ZW1lbnQqIEhUTUxMZWdlbmRFbGVtZW50Ojpmb3JtKCkgY29uc3QKIHsKICAgICAvLyBBY2NvcmRp
bmcgdG8gdGhlIHNwZWNpZmljYXRpb24sIElmIHRoZSBsZWdlbmQgaGFzIGEgZmllbGRzZXQgZWxl
bWVudCBhcwogICAgIC8vIGl0cyBwYXJlbnQsIHRoZW4gdGhlIGZvcm0gYXR0cmlidXRlIG11c3Qg
cmV0dXJuIHRoZSBzYW1lIHZhbHVlIGFzIHRoZQogICAgIC8vIGZvcm0gYXR0cmlidXRlIG9uIHRo
YXQgZmllbGRzZXQgZWxlbWVudC4gT3RoZXJ3aXNlLCBpdCBtdXN0IHJldHVybiBudWxsLgotICAg
IENvbnRhaW5lck5vZGUqIGZpZWxkc2V0ID0gcGFyZW50Tm9kZSgpOworICAgIGF1dG8qIGZpZWxk
c2V0ID0gcGFyZW50Tm9kZSgpOwogICAgIGlmICghaXM8SFRNTEZpZWxkU2V0RWxlbWVudD4oZmll
bGRzZXQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgIHJldHVybiBkb3duY2FzdDxI
VE1MRmllbGRTZXRFbGVtZW50PigqZmllbGRzZXQpLmZvcm0oKTsKIH0KICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaAppbmRleCAwMzhjYzlhMTc2ZWJjMGQ3MDYyZTYw
ZTVjOTU5YTE1ZTgzODQ2ZjJmLi44YjI3ZDk5NjMyMDYxYmU1OWViYTA3NjAyYmU2ODIwYzYyZGZk
OWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCkBAIC0yLDcgKzIs
NyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAg
KiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAg
KiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMywxNSArMzMsMTYgQEAgY2xh
c3MgSFRNTExlZ2VuZEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8SFRNTExlZ2VuZEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIEhUTUxGb3JtRWxlbWVu
dCogZm9ybSgpIGNvbnN0IGZpbmFsOworCiBwcml2YXRlOgogICAgIEhUTUxMZWdlbmRFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgLy8gQ29udHJvbCBpbiB0
aGUgbGVnZW5kJ3MgZmllbGRzZXQgdGhhdCBnZXRzIGZvY3VzIGFuZCBhY2Nlc3Mga2V5LgorICAg
IC8vIENvbnRyb2wgaW4gdGhlIGxlZ2VuZCdzIGZpZWxkIHNldCB0aGF0IGdldHMgZm9jdXMgYW5k
IGFjY2VzcyBrZXkuCiAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogYXNzb2NpYXRlZENvbnRy
b2woKTsKIAogICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBm
aW5hbDsKICAgICB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1
c0RpcmVjdGlvbikgZmluYWw7Ci0gICAgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFsRm9ybSgpIGNv
bnN0IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMDg0ZWZjNzgwNTQzZmVkZDIxNGU5NTQ2Nzk4
NTFjOWQ3NjU2NTQ2My4uNjkxMGNiNDEwMzI2MDE4ZmYzNjUxNGY0YzAxZGVmMjk0YjRmNzA3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0yNjksMjIgKzI2
OSwyMyBAQCBzdGF0aWMgdm9pZCByZW1vdmVFbGVtZW50RnJvbURvY3VtZW50TWFwKEhUTUxNZWRp
YUVsZW1lbnQmIGVsZW1lbnQsIERvY3VtZW50JiBkbwogfQogCiAjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQorCiBjbGFzcyBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSB7CiBwdWJsaWM6Ci0gICAgVHJh
Y2tEaXNwbGF5VXBkYXRlU2NvcGUoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQorICAg
IFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpCisgICAg
ICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCiAgICAgewotICAgICAgICBtX21lZGlhRWxlbWVudCA9
IG1lZGlhRWxlbWVudDsKLSAgICAgICAgbV9tZWRpYUVsZW1lbnQtPmJlZ2luSWdub3JpbmdUcmFj
a0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpOworICAgICAgICBtX2VsZW1lbnQuYmVnaW5JZ25vcmlu
Z1RyYWNrRGlzcGxheVVwZGF0ZVJlcXVlc3RzKCk7CiAgICAgfQogICAgIH5UcmFja0Rpc3BsYXlV
cGRhdGVTY29wZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV9tZWRpYUVsZW1lbnQpOwotICAg
ICAgICBtX21lZGlhRWxlbWVudC0+ZW5kSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0
cygpOworICAgICAgICBtX2VsZW1lbnQuZW5kSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1
ZXN0cygpOwogICAgIH0KICAgICAKIHByaXZhdGU6Ci0gICAgSFRNTE1lZGlhRWxlbWVudCogbV9t
ZWRpYUVsZW1lbnQ7CisgICAgSFRNTE1lZGlhRWxlbWVudCYgbV9lbGVtZW50OwogfTsKKwogI2Vu
ZGlmCiAKIHN0cnVjdCBIVE1MTWVkaWFFbGVtZW50OjpUcmFja0dyb3VwIHsKQEAgLTE1NTQsNyAr
MTU1NSw3IEBAIHN0YXRpYyBib29sIGV2ZW50VGltZUN1ZUNvbXBhcmUoY29uc3Qgc3RkOjpwYWly
PE1lZGlhVGltZSwgVGV4dFRyYWNrQ3VlKj4mIGEsIGNvCiAgICAgLy8gMTIgLSBGdXJ0aGVyIHNv
cnQgdGFza3MgaW4gZXZlbnRzIHRoYXQgaGF2ZSB0aGUgc2FtZSB0aW1lIGJ5IHRoZQogICAgIC8v
IHJlbGF0aXZlIHRleHQgdHJhY2sgY3VlIG9yZGVyIG9mIHRoZSB0ZXh0IHRyYWNrIGN1ZXMgYXNz
b2NpYXRlZAogICAgIC8vIHdpdGggdGhlc2UgdGFza3MuCi0gICAgcmV0dXJuIGEuc2Vjb25kLT5j
dWVJbmRleCgpIC0gYi5zZWNvbmQtPmN1ZUluZGV4KCkgPCAwOworICAgIHJldHVybiBhLnNlY29u
ZC0+aXNPcmRlcmVkQmVmb3JlKGIuc2Vjb25kKTsKIH0KIAogc3RhdGljIGJvb2wgY29tcGFyZUN1
ZUludGVydmFsKGNvbnN0IEN1ZUludGVydmFsJiBvbmUsIGNvbnN0IEN1ZUludGVydmFsJiB0d28p
CkBAIC0xODE3LDIyICsxODE4LDIxIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNr
UmVhZHlTdGF0ZUNoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykKICAgICB9CiB9CiAKLXZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2sqIHRyYWNr
KQordm9pZCBIVE1MTWVkaWFFbGVtZW50OjphdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9U
cmFjayYgdHJhY2spCiB7Ci0gICAgQVNTRVJUKHRyYWNrKTsKLSAgICBpZiAobV9hdWRpb1RyYWNr
cyAmJiBtX2F1ZGlvVHJhY2tzLT5jb250YWlucygqdHJhY2spKQorICAgIGlmIChtX2F1ZGlvVHJh
Y2tzICYmIG1fYXVkaW9UcmFja3MtPmNvbnRhaW5zKHRyYWNrKSkKICAgICAgICAgbV9hdWRpb1Ry
YWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogICAgIGlmIChTY3JpcHRDb250cm9sbGVyOjpw
cm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQogICAgICAgICByZW1vdmVCZWhhdmlvcnNS
ZXN0cmljdGlvbnNBZnRlckZpcnN0VXNlckdlc3R1cmUoTWVkaWFFbGVtZW50U2Vzc2lvbjo6QWxs
UmVzdHJpY3Rpb25zICYgfk1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZVRv
Q29udHJvbENvbnRyb2xzTWFuYWdlcik7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4
dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykKK3ZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykKIHsKICAgICBib29sIHRy
YWNrSXNMb2FkZWQgPSB0cnVlOwotICAgIGlmICh0cmFjay0+dHJhY2tUeXBlKCkgPT0gVGV4dFRy
YWNrOjpUcmFja0VsZW1lbnQpIHsKKyAgICBpZiAodHJhY2sudHJhY2tUeXBlKCkgPT0gVGV4dFRy
YWNrOjpUcmFja0VsZW1lbnQpIHsKICAgICAgICAgdHJhY2tJc0xvYWRlZCA9IGZhbHNlOwogICAg
ICAgICBmb3IgKGF1dG8mIHRyYWNrRWxlbWVudCA6IGNoaWxkcmVuT2ZUeXBlPEhUTUxUcmFja0Vs
ZW1lbnQ+KCp0aGlzKSkgewotICAgICAgICAgICAgaWYgKCZ0cmFja0VsZW1lbnQudHJhY2soKSA9
PSB0cmFjaykgeworICAgICAgICAgICAgaWYgKCZ0cmFja0VsZW1lbnQudHJhY2soKSA9PSAmdHJh
Y2spIHsKICAgICAgICAgICAgICAgICBpZiAodHJhY2tFbGVtZW50LnJlYWR5U3RhdGUoKSA9PSBI
VE1MVHJhY2tFbGVtZW50OjpMT0FESU5HIHx8IHRyYWNrRWxlbWVudC5yZWFkeVN0YXRlKCkgPT0g
SFRNTFRyYWNrRWxlbWVudDo6TE9BREVEKQogICAgICAgICAgICAgICAgICAgICB0cmFja0lzTG9h
ZGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTE4NDUsMzMgKzE4NDUsMzIg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sq
IHRyYWNrKQogICAgICAgICBtX3RleHRUcmFja3MgPSBUZXh0VHJhY2tMaXN0OjpjcmVhdGUodGhp
cywgQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAgIAogICAg
IC8vIE1hcmsgdGhpcyB0cmFjayBhcyAiY29uZmlndXJlZCIgc28gY29uZmlndXJlVGV4dFRyYWNr
cyB3b24ndCBjaGFuZ2UgdGhlIG1vZGUgYWdhaW4uCi0gICAgdHJhY2stPnNldEhhc0JlZW5Db25m
aWd1cmVkKHRydWUpOworICAgIHRyYWNrLnNldEhhc0JlZW5Db25maWd1cmVkKHRydWUpOwogICAg
IAotICAgIGlmICh0cmFjay0+bW9kZSgpICE9IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQgJiYg
dHJhY2tJc0xvYWRlZCkKLSAgICAgICAgdGV4dFRyYWNrQWRkQ3Vlcyh0cmFjaywgdHJhY2stPmN1
ZXMoKSk7CisgICAgaWYgKHRyYWNrLm1vZGUoKSAhPSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVk
ICYmIHRyYWNrSXNMb2FkZWQpCisgICAgICAgIHRleHRUcmFja0FkZEN1ZXModHJhY2ssICp0cmFj
ay5jdWVzKCkpOwogCiAgICAgY29uZmlndXJlVGV4dFRyYWNrRGlzcGxheShBc3N1bWVUZXh0VHJh
Y2tWaXNpYmlsaXR5Q2hhbmdlZCk7CiAKLSAgICBpZiAobV90ZXh0VHJhY2tzICYmIG1fdGV4dFRy
YWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV90ZXh0VHJhY2tzICYmIG1fdGV4dFRy
YWNrcy0+Y29udGFpbnModHJhY2spKQogICAgICAgICBtX3RleHRUcmFja3MtPnNjaGVkdWxlQ2hh
bmdlRXZlbnQoKTsKIAogI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCi0gICAgaWYgKHRyYWNrLT50
cmFja1R5cGUoKSA9PSBUZXh0VHJhY2s6OlRyYWNrRWxlbWVudCAmJiBtX3BsYXllcikKKyAgICBp
ZiAodHJhY2sudHJhY2tUeXBlKCkgPT0gVGV4dFRyYWNrOjpUcmFja0VsZW1lbnQgJiYgbV9wbGF5
ZXIpCiAgICAgICAgIG1fcGxheWVyLT5ub3RpZnlUcmFja01vZGVDaGFuZ2VkKCk7CiAjZW5kaWYK
IH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZp
ZGVvVHJhY2sqIHRyYWNrKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp2aWRlb1RyYWNrU2VsZWN0
ZWRDaGFuZ2VkKFZpZGVvVHJhY2smIHRyYWNrKQogewotICAgIEFTU0VSVCh0cmFjayk7Ci0gICAg
aWYgKG1fdmlkZW9UcmFja3MgJiYgbV92aWRlb1RyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAg
ICBpZiAobV92aWRlb1RyYWNrcyAmJiBtX3ZpZGVvVHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAg
ICAgICAgIG1fdmlkZW9UcmFja3MtPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIH0KIAotdm9pZCBI
VE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQor
dm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2smIHRy
YWNrKQogewotICAgIGlmICh0cmFjay0+a2luZCgpICE9IFRleHRUcmFjazo6S2luZDo6Q2FwdGlv
bnMgJiYgdHJhY2stPmtpbmQoKSAhPSBUZXh0VHJhY2s6OktpbmQ6OlN1YnRpdGxlcyAmJiB0cmFj
ay0+bW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6U2hvd2luZykKLSAgICAgICAgdHJhY2stPnNl
dE1vZGUoVGV4dFRyYWNrOjpNb2RlOjpIaWRkZW4pOworICAgIGlmICh0cmFjay5raW5kKCkgIT0g
VGV4dFRyYWNrOjpLaW5kOjpDYXB0aW9ucyAmJiB0cmFjay5raW5kKCkgIT0gVGV4dFRyYWNrOjpL
aW5kOjpTdWJ0aXRsZXMgJiYgdHJhY2subW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6U2hvd2lu
ZykKKyAgICAgICAgdHJhY2suc2V0TW9kZShUZXh0VHJhY2s6Ok1vZGU6OkhpZGRlbik7CiB9CiAK
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YmVnaW5JZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0ZVJl
cXVlc3RzKCkKQEAgLTE4ODcsMjYgKzE4ODYsMjggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpl
bmRJZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0ZVJlcXVlc3RzKCkKICAgICAgICAgdXBkYXRlQWN0
aXZlVGV4dFRyYWNrQ3VlcyhjdXJyZW50TWVkaWFUaW1lKCkpOwogfQogCi12b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiB0cmFjaywgY29uc3QgVGV4dFRy
YWNrQ3VlTGlzdCogY3VlcykgCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1
ZXMoVGV4dFRyYWNrJiB0cmFjaywgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAg
ICBpZiAodHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkKQorICAgIGlm
ICh0cmFjay5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUodGhpcyk7Ci0gICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBjdWVzLT5sZW5ndGgoKTsgKytpKQotICAgICAgICB0ZXh0VHJh
Y2tBZGRDdWUodHJhY2ssICpjdWVzLT5pdGVtKGkpKTsKKyAgICBUcmFja0Rpc3BsYXlVcGRhdGVT
Y29wZSBzY29wZSB7ICp0aGlzIH07CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGN1ZXMu
bGVuZ3RoKCk7ICsraSkKKyAgICAgICAgdGV4dFRyYWNrQWRkQ3VlKHRyYWNrLCAqY3Vlcy5pdGVt
KGkpKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRl
eHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMpCit2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3Vl
TGlzdCYgY3VlcykKIHsKLSAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSBzY29wZSh0aGlzKTsK
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGN1ZXMtPmxlbmd0aCgpOyArK2kpCi0gICAgICAg
IHRleHRUcmFja1JlbW92ZUN1ZShjdWVzLT5pdGVtKGkpLT50cmFjaygpLCAqY3Vlcy0+aXRlbShp
KSk7CisgICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUgeyAqdGhpcyB9OworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBjdWVzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgYXV0
byYgY3VlID0gKmN1ZXMuaXRlbShpKTsKKyAgICAgICAgdGV4dFRyYWNrUmVtb3ZlQ3VlKCpjdWUu
dHJhY2soKSwgY3VlKTsKKyAgICB9CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRy
YWNrQWRkQ3VlKFRleHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBIVE1M
TWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrJiB0cmFjaywgVGV4dFRyYWNr
Q3VlJiBjdWUpCiB7Ci0gICAgaWYgKHRyYWNrLT5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpE
aXNhYmxlZCkKKyAgICBpZiAodHJhY2subW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJs
ZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZ2F0aXZlIGR1cmF0aW9uIGN1ZXMgbmVl
ZCBiZSB0cmVhdGVkIGluIHRoZSBpbnRlcnZhbCB0cmVlIGFzCkBAIC0xOTE5LDcgKzE5MjAsNyBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqIHRyYWNr
LCBUZXh0VHJhY2tDdWUmIGN1ZSkKICAgICB1cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKGN1cnJl
bnRNZWRpYVRpbWUoKSk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVt
b3ZlQ3VlKFRleHRUcmFjayosIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBIVE1MTWVkaWFFbGVt
ZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJiBjdWUpCiB7
CiAgICAgLy8gTmVnYXRpdmUgZHVyYXRpb24gY3VlcyBuZWVkIHRvIGJlIHRyZWF0ZWQgaW4gdGhl
IGludGVydmFsIHRyZWUgYXMKICAgICAvLyB6ZXJvLWxlbmd0aCBjdWVzLgpAQCAtMzIxMiw2ICsz
MjEzLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUludGVybmFsKCkKIH0KIAogI2lm
IEVOQUJMRShNRURJQV9TT1VSQ0UpCisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZGV0YWNoTWVk
aWFTb3VyY2UoKQogewogICAgIGlmICghbV9tZWRpYVNvdXJjZSkKQEAgLTMyMjAsNiArMzIyMiw3
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZGV0YWNoTWVkaWFTb3VyY2UoKQogICAgIG1fbWVk
aWFTb3VyY2UtPmRldGFjaEZyb21FbGVtZW50KCp0aGlzKTsKICAgICBtX21lZGlhU291cmNlID0g
bnVsbHB0cjsKIH0KKwogI2VuZGlmCiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6bG9vcCgpIGNv
bnN0CkBAIC0zNTA4LDE0ICszNTExLDE0IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQ
bGF5ZXJEaWRBZGRBdWRpb1RyYWNrKEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFjaykKICAgICBpZiAo
aXNQbGF5aW5nKCkgJiYgIW1fbWVkaWFTZXNzaW9uLT5wbGF5YmFja1Blcm1pdHRlZCgqdGhpcykp
CiAgICAgICAgIHBhdXNlSW50ZXJuYWwoKTsKIAotICAgIGFkZEF1ZGlvVHJhY2soQXVkaW9UcmFj
azo6Y3JlYXRlKHRoaXMsICZ0cmFjaykpOworICAgIGFkZEF1ZGlvVHJhY2soQXVkaW9UcmFjazo6
Y3JlYXRlKCp0aGlzLCB0cmFjaykpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlh
UGxheWVyRGlkQWRkVGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrKQogewog
ICAgIC8vIDQuOC4xMC4xMi4yIFNvdXJjaW5nIGluLWJhbmQgdGV4dCB0cmFja3MKICAgICAvLyAx
LiBBc3NvY2lhdGUgdGhlIHJlbGV2YW50IGRhdGEgd2l0aCBhIG5ldyB0ZXh0IHRyYWNrIGFuZCBp
dHMgY29ycmVzcG9uZGluZyBuZXcgVGV4dFRyYWNrIG9iamVjdC4KLSAgICBSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrPiB0ZXh0VHJhY2sgPSBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZShBY3RpdmVET01P
YmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgdGhpcywgJnRyYWNrKTsKKyAgICBhdXRv
IHRleHRUcmFjayA9IEluYmFuZFRleHRUcmFjazo6Y3JlYXRlKCpBY3RpdmVET01PYmplY3Q6OnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsIHRyYWNrKTsKICAgICB0ZXh0VHJhY2stPnNl
dE1lZGlhRWxlbWVudCh0aGlzKTsKICAgICAKICAgICAvLyAyLiBTZXQgdGhlIG5ldyB0ZXh0IHRy
YWNrJ3Mga2luZCwgbGFiZWwsIGFuZCBsYW5ndWFnZSBiYXNlZCBvbiB0aGUgc2VtYW50aWNzIG9m
IHRoZSByZWxldmFudCBkYXRhLApAQCAtMzU0MSwxMiArMzU0NCwxMiBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkQWRkVGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXZh
dGUmIHRyYWNrKQogICAgIC8vIDkuIEZpcmUgYW4gZXZlbnQgd2l0aCB0aGUgbmFtZSBhZGR0cmFj
aywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzIG5vdCBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1
c2VzIHRoZSBUcmFja0V2ZW50CiAgICAgLy8gaW50ZXJmYWNlLCB3aXRoIHRoZSB0cmFjayBhdHRy
aWJ1dGUgaW5pdGlhbGl6ZWQgdG8gdGhlIHRleHQgdHJhY2sncyBUZXh0VHJhY2sgb2JqZWN0LCBh
dCB0aGUgbWVkaWEgZWxlbWVudCdzCiAgICAgLy8gdGV4dFRyYWNrcyBhdHRyaWJ1dGUncyBUZXh0
VHJhY2tMaXN0IG9iamVjdC4KLSAgICBhZGRUZXh0VHJhY2sodGV4dFRyYWNrLnJlbGVhc2VOb25O
dWxsKCkpOworICAgIGFkZFRleHRUcmFjayhXVEZNb3ZlKHRleHRUcmFjaykpOwogfQogCiB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFjayhWaWRlb1RyYWNr
UHJpdmF0ZSYgdHJhY2spCiB7Ci0gICAgYWRkVmlkZW9UcmFjayhWaWRlb1RyYWNrOjpjcmVhdGUo
dGhpcywgJnRyYWNrKSk7CisgICAgYWRkVmlkZW9UcmFjayhWaWRlb1RyYWNrOjpjcmVhdGUoKnRo
aXMsIHRyYWNrKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRS
ZW1vdmVBdWRpb1RyYWNrKEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFjaykKQEAgLTM2MDMsOSArMzYw
Niw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlQXVkaW9UcmFjayhBdWRpb1RyYWNr
JiB0cmFjaykKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVUZXh0VHJhY2soVGV4dFRy
YWNrJiB0cmFjaywgYm9vbCBzY2hlZHVsZUV2ZW50KQogewotICAgIFRyYWNrRGlzcGxheVVwZGF0
ZVNjb3BlIHNjb3BlKHRoaXMpOwotICAgIGlmIChUZXh0VHJhY2tDdWVMaXN0KiBjdWVzID0gdHJh
Y2suY3VlcygpKQotICAgICAgICB0ZXh0VHJhY2tSZW1vdmVDdWVzKCZ0cmFjaywgY3Vlcyk7Cisg
ICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUgeyAqdGhpcyB9OworICAgIGlmIChhdXRv
KiBjdWVzID0gdHJhY2suY3VlcygpKQorICAgICAgICB0ZXh0VHJhY2tSZW1vdmVDdWVzKHRyYWNr
LCAqY3Vlcyk7CiAgICAgdHJhY2suY2xlYXJDbGllbnQoKTsKICAgICBpZiAobV90ZXh0VHJhY2tz
KQogICAgICAgICBtX3RleHRUcmFja3MtPnJlbW92ZSh0cmFjaywgc2NoZWR1bGVFdmVudCk7CkBA
IC0zNjI1LDcgKzM2MjgsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmZvcmdldFJlc291cmNl
U3BlY2lmaWNUcmFja3MoKQogICAgICAgICByZW1vdmVBdWRpb1RyYWNrKCptX2F1ZGlvVHJhY2tz
LT5sYXN0SXRlbSgpKTsKIAogICAgIGlmIChtX3RleHRUcmFja3MpIHsKLSAgICAgICAgVHJhY2tE
aXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUodGhpcyk7CisgICAgICAgIFRyYWNrRGlzcGxheVVwZGF0
ZVNjb3BlIHNjb3BlIHsgKnRoaXMgfTsKICAgICAgICAgZm9yIChpbnQgaSA9IG1fdGV4dFRyYWNr
cy0+bGVuZ3RoKCkgLSAxOyBpID49IDA7IC0taSkgewogICAgICAgICAgICAgYXV0byYgdHJhY2sg
PSAqbV90ZXh0VHJhY2tzLT5pdGVtKGkpOwogICAgICAgICAgICAgaWYgKHRyYWNrLnRyYWNrVHlw
ZSgpID09IFRleHRUcmFjazo6SW5CYW5kKQpAQCAtNjA3OCwxMiArNjA4MSwxMiBAQCBNZWRpYUNv
bnRyb2xsZXIqIEhUTUxNZWRpYUVsZW1lbnQ6OmNvbnRyb2xsZXIoKSBjb25zdAogICAgIHJldHVy
biBtX21lZGlhQ29udHJvbGxlci5nZXQoKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpz
ZXRDb250cm9sbGVyKFBhc3NSZWZQdHI8TWVkaWFDb250cm9sbGVyPiBjb250cm9sbGVyKQordm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyKFJlZlB0cjxNZWRpYUNvbnRyb2xsZXI+
JiYgY29udHJvbGxlcikKIHsKICAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXIpCiAgICAgICAgIG1f
bWVkaWFDb250cm9sbGVyLT5yZW1vdmVNZWRpYUVsZW1lbnQoKnRoaXMpOwogCi0gICAgbV9tZWRp
YUNvbnRyb2xsZXIgPSBjb250cm9sbGVyOworICAgIG1fbWVkaWFDb250cm9sbGVyID0gV1RGTW92
ZShjb250cm9sbGVyKTsKIAogICAgIGlmIChtX21lZGlhQ29udHJvbGxlcikKICAgICAgICAgbV9t
ZWRpYUNvbnRyb2xsZXItPmFkZE1lZGlhRWxlbWVudCgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDAyM2NjMzM2MjgzM2ZhODA2MTk5YTQxMzAzYWZmMTkw
NWNiZjY1ZGYuLmYzMmQwMjE4ZmMwZjU3MzBjMThlZGRlYTlhODMwMmIzNzVhMmYxYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0yNywxMCArMjcsMTAgQEAKIAog
I2lmIEVOQUJMRShWSURFTykKIAotI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAi
QWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiR2VuZXJpY0V2ZW50UXVldWUuaCIKICNpbmNs
dWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MTWVkaWFFbGVtZW50RW51bXMuaCIKICNpbmNsdWRlICJNZWRpYUNhblN0YXJ0TGlz
dGVuZXIuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCIKQEAgLTY5LDkg
KzY5LDcgQEAgY2xhc3MgTWVkaWFDb250cm9sczsKIGNsYXNzIE1lZGlhQ29udHJvbHNIb3N0Owog
Y2xhc3MgTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlOwogY2xhc3MgTWVkaWFFcnJvcjsKLSNp
ZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogY2xhc3MgTWVkaWFLZXlzOwotI2VuZGlmCiBjbGFz
cyBNZWRpYVBsYXllcjsKIGNsYXNzIE1lZGlhU2Vzc2lvbjsKIGNsYXNzIE1lZGlhU291cmNlOwpA
QCAtODEsNyArNzksNiBAQCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgU291
cmNlQnVmZmVyOwogY2xhc3MgVGV4dFRyYWNrTGlzdDsKIGNsYXNzIFRpbWVSYW5nZXM7Ci1jbGFz
cyBVUkw7CiBjbGFzcyBWaWRlb1BsYXliYWNrUXVhbGl0eTsKIGNsYXNzIFZpZGVvVHJhY2tMaXN0
OwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7CkBAIC0zMzEsMjAgKzMyOCwyMCBAQCBwdWJsaWM6
CiAgICAgdm9pZCB1cGRhdGVUZXh0VHJhY2tEaXNwbGF5KCk7CiAKICAgICAvLyBBdWRpb1RyYWNr
Q2xpZW50Ci0gICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayopIG92
ZXJyaWRlOworICAgIHZvaWQgYXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2smKSBm
aW5hbDsKIAogICAgIHZvaWQgdGV4dFRyYWNrUmVhZHlTdGF0ZUNoYW5nZWQoVGV4dFRyYWNrKik7
CiAKICAgICAvLyBUZXh0VHJhY2tDbGllbnQKLSAgICB2b2lkIHRleHRUcmFja0tpbmRDaGFuZ2Vk
KFRleHRUcmFjayopIG92ZXJyaWRlOwotICAgIHZvaWQgdGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4
dFRyYWNrKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayos
IGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBvdmVycmlkZTsKLSAgICB2b2lkIHRleHRUcmFja1Jl
bW92ZUN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCopIG92ZXJyaWRlOwot
ICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayosIFRleHRUcmFja0N1ZSYpIG92ZXJy
aWRlOwotICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayosIFRleHRUcmFja0N1
ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJikg
b3ZlcnJpZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2smKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRy
YWNrQ3VlTGlzdCYpIG92ZXJyaWRlOworICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0
VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCB0ZXh0
VHJhY2tBZGRDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgb3ZlcnJpZGU7
CiAKICAgICAvLyBWaWRlb1RyYWNrQ2xpZW50Ci0gICAgdm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRD
aGFuZ2VkKFZpZGVvVHJhY2sqKSBvdmVycmlkZTsKKyAgICB2b2lkIHZpZGVvVHJhY2tTZWxlY3Rl
ZENoYW5nZWQoVmlkZW9UcmFjayYpIGZpbmFsOwogCiAgICAgYm9vbCByZXF1aXJlc1RleHRUcmFj
a1JlcHJlc2VudGF0aW9uKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbihUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiopOwpAQCAtNDIyLDcgKzQxOSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldE1lZGlhR3JvdXAoY29uc3QgU3RyaW5nJik7CiAKICAgICBNZWRpYUNv
bnRyb2xsZXIqIGNvbnRyb2xsZXIoKSBjb25zdDsKLSAgICB2b2lkIHNldENvbnRyb2xsZXIoUGFz
c1JlZlB0cjxNZWRpYUNvbnRyb2xsZXI+KTsKKyAgICB2b2lkIHNldENvbnRyb2xsZXIoUmVmUHRy
PE1lZGlhQ29udHJvbGxlcj4mJik7CiAKICAgICB2b2lkIGVudGVyZWRPckV4aXRlZEZ1bGxzY3Jl
ZW4oKSB7IGNvbmZpZ3VyZU1lZGlhQ29udHJvbHMoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9iamVjdEVsZW1lbnQuY3BwCmluZGV4IGJkZTZhZTIzNWZkMmQ0NDc5ZGFmYjY4OTQwZjcx
OWIwMmMzNDhjZjMuLmUyMjRiZmUwYWU4NThlZjJhOWFlYWQ0YWVlODU0NDI3ZjU0ODExY2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBAIC01MTksMTEgKzUx
OSw2IEBAIGJvb2wgSFRNTE9iamVjdEVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlz
dCYgZW5jb2RpbmcsIGJvb2wpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUhUTUxGb3JtRWxlbWVu
dCogSFRNTE9iamVjdEVsZW1lbnQ6OnZpcnR1YWxGb3JtKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtKCk7Ci19Ci0KIGJvb2wgSFRNTE9iamVjdEVsZW1l
bnQ6OmNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3QKIHsKICAgICAvLyBDYWxsIHRocm91
Z2ggdG8gSFRNTEVsZW1lbnQgYmVjYXVzZSB3ZSBuZWVkIHRvIHNraXAgSFRNTFBsdWdJbkVsZW1l
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAppbmRleCBlM2M1NWU0ZjA1
NTFlNmM2ZjU5ZGY0Nzc1NzhmZjk2ODIyZGFmZWQ5Li5jMTVlZTRkZTQ0Zjg3YTVlMDk0ZmMxNzhk
ZWE3M2ZkZjI4ZDJiY2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmpl
Y3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5o
CkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50OjpyZWY7CiAgICAgdXNpbmcgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6ZGVyZWY7CiAKLSAg
ICB1c2luZyBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm07CisgICAgSFRNTEZvcm1FbGVtZW50
KiBmb3JtKCkgY29uc3QgZmluYWwgeyByZXR1cm4gRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3Jt
KCk7IH0KIAogcHJpdmF0ZToKICAgICBIVE1MT2JqZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7
CkBAIC05MSw3ICs5MSw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlZkZvcm1Bc3NvY2lhdGVk
RWxlbWVudCgpIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2b2lkIGRlcmVmRm9ybUFzc29jaWF0ZWRF
bGVtZW50KCkgZmluYWwgeyBkZXJlZigpOyB9Ci0gICAgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFs
Rm9ybSgpIGNvbnN0IGZpbmFsOwogCiAgICAgRm9ybU5hbWVkSXRlbSogYXNGb3JtTmFtZWRJdGVt
KCkgZmluYWwgeyByZXR1cm4gdGhpczsgfQogICAgIEhUTUxPYmplY3RFbGVtZW50JiBhc0hUTUxF
bGVtZW50KCkgZmluYWwgeyByZXR1cm4gKnRoaXM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T3B0aW9uRWxlbWVudC5jcHAKaW5kZXggOWEzMDVmZjFmNzI2MDIyYjVmM2Y3MjAzMjc4YzA2NmJk
NDFmNTlmZC4uNTVkYmE5NzViZDM1ZDU2MzJhYTkxY2U3Zjg1MjlhM2Y3Y2RkYjYwYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTMzNCw3ICszMzQsNyBA
QCBTdHJpbmcgSFRNTE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25Jbm5lclRleHQoKSBjb25z
dAogICAgICAgICBpZiAoaXM8VGV4dD4oKm5vZGUpKQogICAgICAgICAgICAgdGV4dC5hcHBlbmQo
bm9kZS0+bm9kZVZhbHVlKCkpOwogICAgICAgICAvLyBUZXh0IG5vZGVzIGluc2lkZSBzY3JpcHQg
ZWxlbWVudHMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBvcHRpb24gdGV4dC4KLSAgICAgICAgaWYgKGlz
PEVsZW1lbnQ+KCpub2RlKSAmJiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGRvd25jYXN0PEVs
ZW1lbnQ+KG5vZGUpKSkKKyAgICAgICAgaWYgKGlzPEVsZW1lbnQ+KCpub2RlKSAmJiBpc1Njcmlw
dEVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpKSkKICAgICAgICAgICAgIG5vZGUgPSBO
b2RlVHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdDaGlsZHJlbigqbm9kZSwgdGhpcyk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpub2RlLCB0aGlz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKaW5kZXggYTg2NGU4
N2VhZmQ0MjgzZTU0ZjFlNDBiZmVjZjkyMjVhNWNiNWRkNi4uOWZlNDJlNzQ5Y2E1NzJiZTFiMTll
ZTMyMDczZGFiMmNkNWI2N2M3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGx1Z0luRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5jcHAKQEAgLTEwOCwyMSArMTA4LDIwIEBAIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OnJl
c2V0SW5zdGFuY2UoKQogICAgIG1faW5zdGFuY2UgPSBudWxscHRyOwogfQogCi1QYXNzUmVmUHRy
PEpTQzo6QmluZGluZ3M6Okluc3RhbmNlPiBIVE1MUGx1Z0luRWxlbWVudDo6Z2V0SW5zdGFuY2Uo
KQorSlNDOjpCaW5kaW5nczo6SW5zdGFuY2UqIEhUTUxQbHVnSW5FbGVtZW50OjpiaW5kaW5nc0lu
c3RhbmNlKCkKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7CisgICAg
YXV0byogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKLSAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gSWYgdGhlIGhv
c3QgZHluYW1pY2FsbHkgdHVybnMgb2ZmIEphdmFTY3JpcHQgKG9yIEphdmEpIHdlIHdpbGwgc3Rp
bGwgcmV0dXJuCiAgICAgLy8gdGhlIGNhY2hlZCBhbGxvY2F0ZWQgQmluZGluZ3M6Okluc3RhbmNl
LiAgTm90IHN1cHBvcnRpbmcgdGhpcyBlZGdlLWNhc2UgaXMgT0suCi0gICAgaWYgKG1faW5zdGFu
Y2UpCi0gICAgICAgIHJldHVybiBtX2luc3RhbmNlOwotCi0gICAgaWYgKFdpZGdldCogd2lkZ2V0
ID0gcGx1Z2luV2lkZ2V0KCkpCi0gICAgICAgIG1faW5zdGFuY2UgPSBmcmFtZS0+c2NyaXB0KCku
Y3JlYXRlU2NyaXB0SW5zdGFuY2VGb3JXaWRnZXQod2lkZ2V0KTsKIAotICAgIHJldHVybiBtX2lu
c3RhbmNlOworICAgIGlmICghbV9pbnN0YW5jZSkgeworICAgICAgICBpZiAoYXV0byogd2lkZ2V0
ID0gcGx1Z2luV2lkZ2V0KCkpCisgICAgICAgICAgICBtX2luc3RhbmNlID0gZnJhbWUtPnNjcmlw
dCgpLmNyZWF0ZVNjcmlwdEluc3RhbmNlRm9yV2lkZ2V0KHdpZGdldCk7CisgICAgfQorICAgIHJl
dHVybiBtX2luc3RhbmNlLmdldCgpOwogfQogCiBib29sIEhUTUxQbHVnSW5FbGVtZW50OjpndWFy
ZGVkRGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKaW5kZXggNWI4YzVhZDQyODJhYmY5NWEw
NTI2MjhiMjhmZTlkNDAxYTljNzc4My4uNjE3YmQ2OTFkNmQ2Y2RhY2ZkYTNjMWIxZjgxNzZlZjQ3
ZDk3ZDA4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaApAQCAtNDQs
NyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0SW5zdGFuY2UoKTsKIAotICAgIFBh
c3NSZWZQdHI8SlNDOjpCaW5kaW5nczo6SW5zdGFuY2U+IGdldEluc3RhbmNlKCk7CisgICAgSlND
OjpCaW5kaW5nczo6SW5zdGFuY2UqIGJpbmRpbmdzSW5zdGFuY2UoKTsKIAogICAgIGVudW0gY2xh
c3MgUGx1Z2luTG9hZGluZ1BvbGljeSB7IERvTm90TG9hZCwgTG9hZCB9OwogICAgIFdFQkNPUkVf
RVhQT1JUIFdpZGdldCogcGx1Z2luV2lkZ2V0KFBsdWdpbkxvYWRpbmdQb2xpY3kgPSBQbHVnaW5M
b2FkaW5nUG9saWN5OjpMb2FkKSBjb25zdDsKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAg
IH07CiAgICAgRGlzcGxheVN0YXRlIGRpc3BsYXlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlz
cGxheVN0YXRlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldERpc3BsYXlTdGF0ZShEaXNwbGF5U3Rh
dGUpOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPikg
eyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNuYXBzaG90KEltYWdlKikgeyB9CiAgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoUGVuZGluZ01vdXNlQ2xpY2soKSB7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNSZXN0YXJ0ZWRQbHVnaW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAppbmRleCBmYTIzNDdi
NjBhOTYyYjYwNWUzZTc5ODY1MGMxMzFhOGIyYjI1YTg4Li5jNGNjMzQ4MDM1NjFmMmQ5YWUzNjVm
Mzk1NjYzM2ZhYmU3MjMyM2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5jcHAKQEAgLTE3MSw3ICsxNzEsNyBAQCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRl
clN0eQogCiAgICAgaWYgKGRpc3BsYXlTdGF0ZSgpID09IERpc3BsYXlpbmdTbmFwc2hvdCkgewog
ICAgICAgICBhdXRvIHJlbmRlclNuYXBzaG90dGVkUGx1Z0luID0gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4+KCp0aGlzLCBXVEZNb3ZlKHN0eWxlKSk7Ci0gICAgICAgIHJl
bmRlclNuYXBzaG90dGVkUGx1Z0luLT51cGRhdGVTbmFwc2hvdChtX3NuYXBzaG90SW1hZ2UpOwor
ICAgICAgICByZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi0+dXBkYXRlU25hcHNob3QobV9zbmFwc2hv
dEltYWdlLmdldCgpKTsKICAgICAgICAgcmV0dXJuIFdURk1vdmUocmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW4pOwogICAgIH0KIApAQCAtMzAxLDcgKzMwMSw3IEBAIHZvaWQgSFRNTFBsdWdJbkltYWdl
RWxlbWVudDo6c3RhcnRMb2FkaW5nSW1hZ2UoKQogICAgIG1faW1hZ2VMb2FkZXItPnVwZGF0ZUZy
b21FbGVtZW50KCk7CiB9CiAKLXZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlU25h
cHNob3QoUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UpCit2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQ6OnVwZGF0ZVNuYXBzaG90KEltYWdlKiBpbWFnZSkKIHsKICAgICBpZiAoZGlzcGxheVN0YXRl
KCkgPiBEaXNwbGF5aW5nU25hcHNob3QpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKaW5kZXggYTNmN2UxMDhjZjkyZTA1YTli
YjhkYTRkYTY5MmFmNDAwZmQwNmE0Ni4uMzM3MDU2ODM4NjVhNjE4ZTI5MTg2ODJlZjJjMTg3Mjc2
NDk5MzAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmgKQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hQZW5kaW5nTW91c2VDbGljaygp
IGZpbmFsOwogCi0gICAgdm9pZCB1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPikgZmlu
YWw7CisgICAgdm9pZCB1cGRhdGVTbmFwc2hvdChJbWFnZSopIGZpbmFsOwogCiAgICAgdm9pZCBz
dGFydExvYWRpbmdJbWFnZSgpOwogICAgIHZvaWQgdXBkYXRlV2lkZ2V0SWZOZWNlc3NhcnkoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAppbmRleCBmMmJkNTI1Yzc0ZGRk
M2Q3YjhhMWZjMWU5NjkyNTJlODYzY2RmNTc1Li5jZmM3MzE1NTZhMjFmOTlmZWZlZDMzNzA3ODA0
MTIwYjYyM2FkMDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCkBA
IC00Myw2ICs0Myw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENyb3Nz
T3JpZ2luKGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBj
cm9zc09yaWdpbigpIGNvbnN0OwogCisgICAgdXNpbmcgSFRNTEVsZW1lbnQ6OnJlZjsKKyAgICB1
c2luZyBIVE1MRWxlbWVudDo6ZGVyZWY7CisKIHByaXZhdGU6CiAgICAgSFRNTFNjcmlwdEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFy
c2VyLCBib29sIGFscmVhZHlTdGFydGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA3ZGI5MTRmNzA2YjNhNmZhZjk0
MzRhOGYyNGVlMTIxODE1YTc0ZGYyLi4wZWI5MzlkOTQ1NzdhZDMwZmU5ZmEzNjRjNzgyMGI2M2Rk
ZjY5ZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcApAQCAtNDI3LDcgKzQyNyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRD
b250YWluZXJBbmRPZmZzZXRGb3JSYW5nZShOb2RlKiBub2RlLCBpbnQgb2Zmc2V0LCBOb2RlKiYK
ICAgICB9CiB9CiAKLVBhc3NSZWZQdHI8UmFuZ2U+IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
OjpzZWxlY3Rpb24oKSBjb25zdAorUmVmUHRyPFJhbmdlPiBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2VsZWN0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoIXJlbmRlcmVyKCkgfHwgIWlzVGV4
dEZvcm1Db250cm9sKCkgfHwgIWhhc0NhY2hlZFNlbGVjdGlvbigpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuaAppbmRleCA0YTYzZTk3MWFhYjFmZWI1ZDM0NmRjNDIyMzFiNmIxMjY2YzBiNjNmLi42
ZTRkOWI4MTQ3ODVjNWFlYWFiZTExNTMwZGRiYjEzMWViZmQxMTA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC03NCw3ICs3NCw3
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50LCB1bnNpZ25lZCBzdGFydCwg
dW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcmIHNlbGVjdGlvbk1vZGUpOwogICAgIHZvaWQgc2V0
U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlv
biwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoKSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3Rh
cnQsIGludCBlbmQsIFRleHRGaWVsZFNlbGVjdGlvbkRpcmVjdGlvbiA9IFNlbGVjdGlvbkhhc05v
RGlyZWN0aW9uLCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgPSBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCgpKTsKLSAgICBQYXNzUmVmUHRyPFJhbmdlPiBzZWxlY3Rpb24oKSBjb25zdDsK
KyAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGlvbigpIGNvbnN0OwogICAgIFN0cmluZyBzZWxlY3Rl
ZFRleHQoKSBjb25zdDsKIAogICAgIHZvaWQgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50
KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAppbmRleCAw
N2Y0MmQ5OWY4ZDdiNDhhOWJhMjQxYjRjNDcxZDU3OWY1NWU4YmQ1Li4yMmNkMGU3ZWI0ZmZjYWVl
YzdiZDA1YjFmNGY3OTM4OTE2ZTUwYzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUcmFja0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNr
RWxlbWVudC5jcHAKQEAgLTI3OSw0MyArMjc5LDQzIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSFRN
TFRyYWNrRWxlbWVudDo6bWVkaWFFbGVtZW50Q3Jvc3NPcmlnaW5BdHRyaWJ1dGUoKSBjb25zdAog
ICAgIHJldHVybiBudWxsQXRvbTsKIH0KIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJh
Y2tLaW5kQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQordm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0
ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2smIHRyYWNrKQogewotICAgIGlmIChIVE1MTWVk
aWFFbGVtZW50KiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKKyAgICBpZiAoYXV0byogcGFyZW50
ID0gbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIHBhcmVudC0+dGV4dFRyYWNrS2luZENoYW5nZWQo
dHJhY2spOwogfQogCi12b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja01vZGVDaGFuZ2Vk
KFRleHRUcmFjayogdHJhY2spCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja01vZGVD
aGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7CiAgICAgLy8gU2luY2Ugd2UndmUgbW92ZWQgdG8g
YSBuZXcgcGFyZW50LCB3ZSBtYXkgbm93IGJlIGFibGUgdG8gbG9hZC4KICAgICBpZiAocmVhZHlT
dGF0ZSgpID09IEhUTUxUcmFja0VsZW1lbnQ6Ok5PTkUpCiAgICAgICAgIHNjaGVkdWxlTG9hZCgp
OwogCi0gICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQor
ICAgIGlmIChhdXRvKiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAgcGFyZW50LT50
ZXh0VHJhY2tNb2RlQ2hhbmdlZCh0cmFjayk7CiB9CiAKLXZvaWQgSFRNTFRyYWNrRWxlbWVudDo6
dGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sqIHRyYWNrLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0
KiBjdWVzKQordm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFj
ayYgdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZXMpCiB7Ci0gICAgaWYgKEhUTUxN
ZWRpYUVsZW1lbnQqIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQorICAgIGlmIChhdXRvKiBwYXJl
bnQgPSBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tBZGRDdWVzKHRy
YWNrLCBjdWVzKTsKIH0KICAgICAKLXZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrUmVt
b3ZlQ3VlcyhUZXh0VHJhY2sqIHRyYWNrLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KiBjdWVzKQor
dm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYgdHJh
Y2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZXMpCiB7Ci0gICAgaWYgKEhUTUxNZWRpYUVs
ZW1lbnQqIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQorICAgIGlmIChhdXRvKiBwYXJlbnQgPSBt
ZWRpYUVsZW1lbnQoKSkKICAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKHRyYWNr
LCBjdWVzKTsKIH0KICAgICAKLXZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3Vl
KFRleHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBIVE1MVHJhY2tFbGVt
ZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrJiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUp
CiB7Ci0gICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQor
ICAgIGlmIChhdXRvKiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAgcGFyZW50LT50
ZXh0VHJhY2tBZGRDdWUodHJhY2ssIGN1ZSk7CiB9CiAgICAgCi12b2lkIEhUTUxUcmFja0VsZW1l
bnQ6OnRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1
ZSkKK3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayYg
dHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogewotICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBw
YXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKKyAgICBpZiAoYXV0byogcGFyZW50ID0gbWVkaWFFbGVt
ZW50KCkpCiAgICAgICAgIHBhcmVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKHRyYWNrLCBjdWUpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCmluZGV4IDliNDI1ZGNkODVk
MWUwZDRmMzYwYzg2ZDJlYTYyZDE5MDhlNGI3YjAuLjc0OWVkMWI0ZTcwOGRmZTE1NjU4MWZkMGY4
ZDk3ZDU1YzY0NThmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNr
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCkBA
IC03NCwxMiArNzQsMTIgQEAgcHJpdmF0ZToKICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVs
ZW1lbnQoKSBjb25zdDsKIAogICAgIC8vIFRleHRUcmFja0NsaWVudAotICAgIHZvaWQgdGV4dFRy
YWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tLaW5k
Q2hhbmdlZChUZXh0VHJhY2sqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4
dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRy
YWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KikgZmluYWw7
Ci0gICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgZmlu
YWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3Vl
JikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2smKSBmaW5h
bDsKKyAgICB2b2lkIHRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayYpIGZpbmFsOworICAg
IHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0
JikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0
IFRleHRUcmFja0N1ZUxpc3QmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0
VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1
ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKIAogICAgIGJvb2wgY2FuTG9hZFVS
TChjb25zdCBVUkwmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IGY2YTZiYmM0
NjRiOWFmYTM4ZDU3YjRkMWVjNDdjZjNjY2E5MjY2ZDQuLjM3MTc1ZGM0NjM1Mjc3YWU4ZjhiMzI4
YWM0OTZiMzMwM2YwY2I4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTQ4Miwx
MSArNDgyLDYgQEAgYm9vbCBJbnB1dFR5cGU6OnNob3VsZFN1Ym1pdEltcGxpY2l0bHkoRXZlbnQm
IGV2ZW50KQogICAgIHJldHVybiBpczxLZXlib2FyZEV2ZW50PihldmVudCkgJiYgZXZlbnQudHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50ICYmIGRvd25jYXN0PEtleWJvYXJkRXZl
bnQ+KGV2ZW50KS5jaGFyQ29kZSgpID09ICdccic7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTEZvcm1F
bGVtZW50PiBJbnB1dFR5cGU6OmZvcm1Gb3JTdWJtaXNzaW9uKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gZWxlbWVudCgpLmZvcm0oKTsKLX0KLQogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IElucHV0
VHlwZTo6Y3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlKQogewogICAgIHJl
dHVybiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4oUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKGVs
ZW1lbnQoKSwgV1RGTW92ZShzdHlsZSkpKTsKQEAgLTU1MSw3ICs1NDYsNyBAQCBDaHJvbWUqIElu
cHV0VHlwZTo6Y2hyb21lKCkgY29uc3QKIHsKICAgICBpZiAoUGFnZSogcGFnZSA9IGVsZW1lbnQo
KS5kb2N1bWVudCgpLnBhZ2UoKSkKICAgICAgICAgcmV0dXJuICZwYWdlLT5jaHJvbWUoKTsKLSAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnB1dFR5cGU6OmNh
blNldFN0cmluZ1ZhbHVlKCkgY29uc3QKQEAgLTYzNiw3ICs2MzEsNyBAQCBib29sIElucHV0VHlw
ZTo6Y2FuQmVTdWNjZXNzZnVsU3VibWl0QnV0dG9uKCkKIAogSFRNTEVsZW1lbnQqIElucHV0VHlw
ZTo6cGxhY2Vob2xkZXJFbGVtZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnB1dFR5cGU6OnJlbmRlcmVySXNOZWVkZWQoKQpAQCAt
NjQ2LDEwICs2NDEsMTAgQEAgYm9vbCBJbnB1dFR5cGU6OnJlbmRlcmVySXNOZWVkZWQoKQogCiBG
aWxlTGlzdCogSW5wdXRUeXBlOjpmaWxlcygpCiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVM
aXN0PikKK3ZvaWQgSW5wdXRUeXBlOjpzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+JiYpCiB7CiB9
CiAKQEAgLTczMSwyNSArNzI2LDI5IEBAIFN0cmluZyBJbnB1dFR5cGU6OnNhbml0aXplVmFsdWUo
Y29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zdAogfQogCiAjaWYgRU5BQkxFKERSQUdf
U1VQUE9SVCkKKwogYm9vbCBJbnB1dFR5cGU6OnJlY2VpdmVEcm9wcGVkRmlsZXMoY29uc3QgRHJh
Z0RhdGEmKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsK
IH0KKwogI2VuZGlmCiAKIEljb24qIElucHV0VHlwZTo6aWNvbigpIGNvbnN0CiB7CiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKICNpZiBQTEFURk9STShJT1MpCisKIFN0cmluZyBJbnB1dFR5cGU6OmRpc3BsYXlTdHJpbmco
KSBjb25zdAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBTdHJpbmco
KTsKIH0KKwogI2VuZGlmCiAKIGJvb2wgSW5wdXRUeXBlOjpzaG91bGRSZXNldE9uRG9jdW1lbnRB
Y3RpdmF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGM0YmU3M2Q0MDA0ZDY4ZDkx
MzBiOWFiOTQ2YTE3MDBlNzAzM2RlMjQuLjJmMWMzMjk3YWYwNzg2ZGVkYTQyY2VjZWM5NDVlYWEy
ZGI5MGZkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMTkyLDcgKzE5Miw2IEBAIHB1
YmxpYzoKICAgICAvLyBIZWxwZXJzIGZvciBldmVudCBoYW5kbGVycy4KIAogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRTdWJtaXRJbXBsaWNpdGx5KEV2ZW50Jik7Ci0gICAgdmlydHVhbCBQYXNzUmVm
UHRyPEhUTUxGb3JtRWxlbWVudD4gZm9ybUZvclN1Ym1pc3Npb24oKSBjb25zdDsKICAgICB2aXJ0
dWFsIGJvb2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBp
c0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJv
b2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0OwpAQCAtMjM5LDcgKzIzOCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgbWF4UmVzdWx0c0F0dHJpYnV0ZUNoYW5nZWQoKTsKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUmVzcGVjdEFsaWduQXR0cmlidXRlKCk7CiAgICAgdmlydHVhbCBGaWxl
TGlzdCogZmlsZXMoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxl
TGlzdD4pOworICAgIHZpcnR1YWwgdm9pZCBzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+JiYpOwog
ICAgIHZpcnR1YWwgSWNvbiogaWNvbigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRT
ZW5kQ2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCBib29sIGNh
blNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9QbHVnaW5Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50
LmNwcAppbmRleCBmMzUxZjk3OTUxNWY1Y2VjOWE0OTk0ZTBkNzVkMDFkYzQyMTg5NjA1Li5kY2Nl
OWQzOGE4NzVhNTI5ZTgxOTcxNmM4YjcxMGE1MTUzYWE3NzM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1BsdWdpbkRvY3VtZW50LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgUGx1Z2luRG9jdW1l
bnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICAgICBpZiAoYXV0byogbG9hZGVy
ID0gZG9jdW1lbnQubG9hZGVyKCkpCiAgICAgICAgIG1fZW1iZWRFbGVtZW50LT5zZXRBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHR5cGVBdHRyLCBsb2FkZXItPndyaXRlcigpLm1pbWVU
eXBlKCkpOwogCi0gICAgZG9jdW1lbnQuc2V0UGx1Z2luRWxlbWVudChtX2VtYmVkRWxlbWVudCk7
CisgICAgZG9jdW1lbnQuc2V0UGx1Z2luRWxlbWVudCgqbV9lbWJlZEVsZW1lbnQpOwogCiAgICAg
Ym9keS0+YXBwZW5kQ2hpbGQoZW1iZWRFbGVtZW50KTsKIH0KQEAgLTE2MCw5ICsxNjAsOSBAQCBX
aWRnZXQqIFBsdWdpbkRvY3VtZW50OjpwbHVnaW5XaWRnZXQoKQogICAgIHJldHVybiBudWxscHRy
OwogfQogCi12b2lkIFBsdWdpbkRvY3VtZW50OjpzZXRQbHVnaW5FbGVtZW50KFBhc3NSZWZQdHI8
SFRNTFBsdWdJbkVsZW1lbnQ+IGVsZW1lbnQpCit2b2lkIFBsdWdpbkRvY3VtZW50OjpzZXRQbHVn
aW5FbGVtZW50KEhUTUxQbHVnSW5FbGVtZW50JiBlbGVtZW50KQogewotICAgIG1fcGx1Z2luRWxl
bWVudCA9IGVsZW1lbnQ7CisgICAgbV9wbHVnaW5FbGVtZW50ID0gJmVsZW1lbnQ7CiB9CiAKIHZv
aWQgUGx1Z2luRG9jdW1lbnQ6OmRldGFjaEZyb21QbHVnaW5FbGVtZW50KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUGx1Z2luRG9jdW1lbnQuaAppbmRleCAzY2QwNjEyNTUwZjZmOGZiZTk2Yzg5YjViNWZiNWU1
NjE0M2M1ZjdlLi5iZWZlNTFmY2FmNTNlNDMyYWUyZWQ0ZDNiYzk0NWE4NWQzZDAxZmEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGx1Z2luRG9jdW1lbnQoZnJhbWUsIHVybCkp
OwogICAgIH0KIAotICAgIHZvaWQgc2V0UGx1Z2luRWxlbWVudChQYXNzUmVmUHRyPEhUTUxQbHVn
SW5FbGVtZW50Pik7CisgICAgdm9pZCBzZXRQbHVnaW5FbGVtZW50KEhUTUxQbHVnSW5FbGVtZW50
Jik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBXaWRnZXQqIHBsdWdpbldpZGdldCgpOwogICAgIEhU
TUxQbHVnSW5FbGVtZW50KiBwbHVnaW5FbGVtZW50KCkgeyByZXR1cm4gbV9wbHVnaW5FbGVtZW50
LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCA5NGU4YjRkY2VjNDRmZDhmZTZhYTkyMTRkNTVk
OTU5YjU4NzE5ZGU1Li42ZGIyODI5OTJmNGEzNzNlNGY4ZDY5OWI4MDliNzAyNzA1NDQ2ZmNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5jcHAKQEAgLTQxNyw3ICs0MTcsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6c2V0U3Ryb2tlU3R5bGUoQ2FudmFzU3R5bGUgc3R5bGUpCiAgICAgR3JhcGhpY3ND
b250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVy
bjsKLSAgICBzdGF0ZS5zdHJva2VTdHlsZS5hcHBseVN0cm9rZUNvbG9yKGMpOworICAgIHN0YXRl
LnN0cm9rZVN0eWxlLmFwcGx5U3Ryb2tlQ29sb3IoKmMpOwogICAgIHN0YXRlLnVucGFyc2VkU3Ry
b2tlQ29sb3IgPSBTdHJpbmcoKTsKIH0KIApAQCAtNDQ0LDcgKzQ0NCw3IEBAIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpzZXRGaWxsU3R5bGUoQ2FudmFzU3R5bGUgc3R5bGUpCiAgICAg
R3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAg
ICAgIHJldHVybjsKLSAgICBzdGF0ZS5maWxsU3R5bGUuYXBwbHlGaWxsQ29sb3IoYyk7CisgICAg
c3RhdGUuZmlsbFN0eWxlLmFwcGx5RmlsbENvbG9yKCpjKTsKICAgICBzdGF0ZS51bnBhcnNlZEZp
bGxDb2xvciA9IFN0cmluZygpOwogfQogCkBAIC0yNDQ1LDcgKzI0NDUsNyBAQCB2b2lkIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQs
IGZsb2F0IHgsIGZsbwogCiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVT
YXZlcigqYyk7CiAgICAgICAgIGMtPmNsaXBUb0ltYWdlQnVmZmVyKCptYXNrSW1hZ2UsIG1hc2tS
ZWN0KTsKLSAgICAgICAgZHJhd1N0eWxlLmFwcGx5RmlsbENvbG9yKGMpOworICAgICAgICBkcmF3
U3R5bGUuYXBwbHlGaWxsQ29sb3IoKmMpOwogICAgICAgICBjLT5maWxsUmVjdChtYXNrUmVjdCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNTdHlsZS5jcHAKaW5kZXggOWFhMGEwNTJmNDYxYWQ2YjJjNWVhYzZhZmVjMzIzMTU2NWUwMjEz
Ni4uYmNiZTJhMDU0YzQ5YWExNGU2ZDE5MzZmM2I3NGUyNjI5ZWYzNzJkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcApAQCAtNTMsNyArNTMsNiBAQCBzdGF0
aWMgQ29sb3IgcGFyc2VDb2xvcihjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBEb2N1bWVudCog
ZG9jdW1lbnQgPSBudWxscHRyKQogICAgIENvbG9yIGNvbG9yID0gQ1NTUGFyc2VyOjpwYXJzZUNv
bG9yKGNvbG9yU3RyaW5nKTsKICAgICBpZiAoY29sb3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1
cm4gY29sb3I7Ci0KICAgICByZXR1cm4gQ1NTUGFyc2VyOjpwYXJzZVN5c3RlbUNvbG9yKGNvbG9y
U3RyaW5nLCBkb2N1bWVudCk7CiB9CiAKQEAgLTc2LDIwOCArNzUsMTUwIEBAIENvbG9yIHBhcnNl
Q29sb3JPckN1cnJlbnRDb2xvcihjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBIVE1MQ2FudmFz
RWxlbWVudCogY2FuCiB9CiAKIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShDb2xvciBjb2xvcikK
LSAgICA6IG1fY29sb3IoY29sb3IpCi0gICAgLCBtX3R5cGUoUkdCQSkKKyAgICA6IG1fc3R5bGUo
Y29sb3IpCiB7CiB9CiAKIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShmbG9hdCBncmF5TGV2ZWws
IGZsb2F0IGFscGhhKQotICAgIDogbV9jb2xvcihDb2xvcihncmF5TGV2ZWwsIGdyYXlMZXZlbCwg
Z3JheUxldmVsLCBhbHBoYSkpCi0gICAgLCBtX3R5cGUoUkdCQSkKKyAgICA6IG1fc3R5bGUoQ29s
b3IgeyBncmF5TGV2ZWwsIGdyYXlMZXZlbCwgZ3JheUxldmVsLCBhbHBoYSB9KQogewogfQogCiBD
YW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQg
YSkKLSAgICA6IG1fY29sb3IoQ29sb3IociwgZywgYiwgYSkpCi0gICAgLCBtX3R5cGUoUkdCQSkK
KyAgICA6IG1fc3R5bGUoQ29sb3IgeyByLCBnLCBiLCBhIH0pCiB7CiB9CiAKIENhbnZhc1N0eWxl
OjpDYW52YXNTdHlsZShmbG9hdCBjLCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBh
KQotICAgIDogbV9jbXlrYShuZXcgQ01ZS0FWYWx1ZXMoQ29sb3IoYywgbSwgeSwgaywgYSksIGMs
IG0sIHksIGssIGEpKQotICAgICwgbV90eXBlKENNWUtBKQorICAgIDogbV9zdHlsZShDTVlLQUNv
bG9yIHsgQ29sb3IgeyBjLCBtLCB5LCBrLCBhIH0sIGMsIG0sIHksIGssIGEgfSkKIHsKIH0KIAot
Q2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKFBhc3NSZWZQdHI8Q2FudmFzR3JhZGllbnQ+IGdyYWRp
ZW50KQotICAgIDogbV9ncmFkaWVudChncmFkaWVudC5sZWFrUmVmKCkpCi0gICAgLCBtX3R5cGUo
R3JhZGllbnQpCitDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoQ2FudmFzR3JhZGllbnQmIGdyYWRp
ZW50KQorICAgIDogbV9zdHlsZShtYWtlUmVmUHRyKGdyYWRpZW50KSkKIHsKLSAgICBpZiAoIW1f
Z3JhZGllbnQpCi0gICAgICAgIG1fdHlwZSA9IEludmFsaWQ7CiB9CiAKLUNhbnZhc1N0eWxlOjpD
YW52YXNTdHlsZShQYXNzUmVmUHRyPENhbnZhc1BhdHRlcm4+IHBhdHRlcm4pCi0gICAgOiBtX3Bh
dHRlcm4ocGF0dGVybi5sZWFrUmVmKCkpCi0gICAgLCBtX3R5cGUoSW1hZ2VQYXR0ZXJuKQorQ2Fu
dmFzU3R5bGU6OkNhbnZhc1N0eWxlKENhbnZhc1BhdHRlcm4mIHBhdHRlcm4pCisgICAgOiBtX3N0
eWxlKG1ha2VSZWZQdHIocGF0dGVybikpCiB7Ci0gICAgaWYgKCFtX3BhdHRlcm4pCi0gICAgICAg
IG1fdHlwZSA9IEludmFsaWQ7CiB9CiAKLUNhbnZhc1N0eWxlOjp+Q2FudmFzU3R5bGUoKQoraW5s
aW5lIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShDdXJyZW50Q29sb3IgY29sb3IpCisgICAgOiBt
X3N0eWxlKGNvbG9yKQogewotICAgIGlmIChtX3R5cGUgPT0gR3JhZGllbnQpCi0gICAgICAgIG1f
Z3JhZGllbnQtPmRlcmVmKCk7Ci0gICAgZWxzZSBpZiAobV90eXBlID09IEltYWdlUGF0dGVybikK
LSAgICAgICAgbV9wYXR0ZXJuLT5kZXJlZigpOwotICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBDTVlL
QSkKLSAgICAgICAgZGVsZXRlIG1fY215a2E7CiB9CiAKIENhbnZhc1N0eWxlIENhbnZhc1N0eWxl
OjpjcmVhdGVGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIERvY3VtZW50KiBk
b2N1bWVudCkKIHsKICAgICBpZiAoaXNDdXJyZW50Q29sb3JTdHJpbmcoY29sb3JTdHJpbmcpKQot
ICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUoQ29uc3RydWN0Q3VycmVudENvbG9yKTsKKyAgICAg
ICAgcmV0dXJuIEN1cnJlbnRDb2xvciB7IHN0ZDo6bnVsbG9wdCB9OwogCiAgICAgQ29sb3IgY29s
b3IgPSBwYXJzZUNvbG9yKGNvbG9yU3RyaW5nLCBkb2N1bWVudCk7Ci0gICAgaWYgKGNvbG9yLmlz
VmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIENhbnZhc1N0eWxlKGNvbG9yKTsKKyAgICBpZiAoIWNv
bG9yLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBDYW52YXNT
dHlsZSgpOworICAgIHJldHVybiBjb2xvcjsKIH0KIAogQ2FudmFzU3R5bGUgQ2FudmFzU3R5bGU6
OmNyZWF0ZUZyb21TdHJpbmdXaXRoT3ZlcnJpZGVBbHBoYShjb25zdCBTdHJpbmcmIGNvbG9yU3Ry
aW5nLCBmbG9hdCBhbHBoYSkKIHsKICAgICBpZiAoaXNDdXJyZW50Q29sb3JTdHJpbmcoY29sb3JT
dHJpbmcpKQotICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUoQ3VycmVudENvbG9yV2l0aE92ZXJy
aWRlQWxwaGEsIGFscGhhKTsKKyAgICAgICAgcmV0dXJuIEN1cnJlbnRDb2xvciB7IGFscGhhIH07
CiAKICAgICBDb2xvciBjb2xvciA9IHBhcnNlQ29sb3IoY29sb3JTdHJpbmcpOwotICAgIGlmIChj
b2xvci5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiBDYW52YXNTdHlsZShjb2xvcldpdGhPdmVy
cmlkZUFscGhhKGNvbG9yLnJnYigpLCBhbHBoYSkpOworICAgIGlmICghY29sb3IuaXNWYWxpZCgp
KQorICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIENhbnZhc1N0eWxlKCk7CisgICAg
cmV0dXJuIENvbG9yIHsgY29sb3JXaXRoT3ZlcnJpZGVBbHBoYShjb2xvci5yZ2IoKSwgYWxwaGEp
IH07CiB9CiAKIGJvb2wgQ2FudmFzU3R5bGU6OmlzRXF1aXZhbGVudENvbG9yKGNvbnN0IENhbnZh
c1N0eWxlJiBvdGhlcikgY29uc3QKIHsKLSAgICBpZiAobV90eXBlICE9IG90aGVyLm1fdHlwZSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENv
bG9yPihtX3N0eWxlKSAmJiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENvbG9yPihvdGhlci5tX3N0
eWxlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6Z2V0PENvbG9yPihtX3N0eWxlKSA9PSBXVEY6Omdl
dDxDb2xvcj4ob3RoZXIubV9zdHlsZSk7CiAKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNh
c2UgUkdCQToKLSAgICAgICAgcmV0dXJuIG1fY29sb3IgPT0gb3RoZXIubV9jb2xvcjsKLSAgICBj
YXNlIENNWUtBOgotICAgICAgICByZXR1cm4gbV9jbXlrYS0+YyA9PSBvdGhlci5tX2NteWthLT5j
Ci0gICAgICAgICAgICAmJiBtX2NteWthLT5tID09IG90aGVyLm1fY215a2EtPm0KLSAgICAgICAg
ICAgICYmIG1fY215a2EtPnkgPT0gb3RoZXIubV9jbXlrYS0+eQotICAgICAgICAgICAgJiYgbV9j
bXlrYS0+ayA9PSBvdGhlci5tX2NteWthLT5rCi0gICAgICAgICAgICAmJiBtX2NteWthLT5hID09
IG90aGVyLm1fY215a2EtPmE7Ci0gICAgY2FzZSBHcmFkaWVudDoKLSAgICBjYXNlIEltYWdlUGF0
dGVybjoKLSAgICBjYXNlIEN1cnJlbnRDb2xvcjoKLSAgICBjYXNlIEN1cnJlbnRDb2xvcldpdGhP
dmVycmlkZUFscGhhOgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBJbnZhbGlkOgot
ICAgICAgICBicmVhazsKKyAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDTVlLQUNvbG9y
PihtX3N0eWxlKSAmJiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENNWUtBQ29sb3I+KG90aGVyLm1f
c3R5bGUpKSB7CisgICAgICAgIGF1dG8mIGEgPSBXVEY6OmdldDxDTVlLQUNvbG9yPihtX3N0eWxl
KTsKKyAgICAgICAgYXV0byYgYiA9IFdURjo6Z2V0PENNWUtBQ29sb3I+KG90aGVyLm1fc3R5bGUp
OworICAgICAgICByZXR1cm4gYS5jID09IGIuYyAmJiBhLm0gPT0gYi5tICYmIGEueSA9PSBiLnkg
JiYgYS5rID09IGIuayAmJiBhLmEgPT0gYi5hOwogICAgIH0KIAotICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBDYW52YXNTdHlsZTo6aXNFcXVp
dmFsZW50UkdCQShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhKSBjb25zdAogewot
ICAgIGlmIChtX3R5cGUgIT0gUkdCQSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0
dXJuIG1fY29sb3IgPT0gQ29sb3IociwgZywgYiwgYSk7CisgICAgcmV0dXJuIFdURjo6aG9sZHNf
YWx0ZXJuYXRpdmU8Q29sb3I+KG1fc3R5bGUpICYmIFdURjo6Z2V0PENvbG9yPihtX3N0eWxlKSA9
PSBDb2xvciB7IHIsIGcsIGIsIGEgfTsKIH0KIAogYm9vbCBDYW52YXNTdHlsZTo6aXNFcXVpdmFs
ZW50Q01ZS0EoZmxvYXQgYywgZmxvYXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYSkgY29u
c3QKIHsKLSAgICBpZiAobV90eXBlICE9IENNWUtBKQorICAgIGlmICghV1RGOjpob2xkc19hbHRl
cm5hdGl2ZTxDTVlLQUNvbG9yPihtX3N0eWxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgcmV0dXJuIGMgPT0gbV9jbXlrYS0+YwotICAgICAgICAmJiBtID09IG1fY215a2EtPm0KLSAg
ICAgICAgJiYgeSA9PSBtX2NteWthLT55Ci0gICAgICAgICYmIGsgPT0gbV9jbXlrYS0+awotICAg
ICAgICAmJiBhID09IG1fY215a2EtPmE7Ci19Ci0KLUNhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShj
b25zdCBDYW52YXNTdHlsZSYgb3RoZXIpCi17Ci0gICAgbWVtY3B5KHRoaXMsICZvdGhlciwgc2l6
ZW9mKENhbnZhc1N0eWxlKSk7Ci0gICAgaWYgKG1fdHlwZSA9PSBHcmFkaWVudCkKLSAgICAgICAg
bV9ncmFkaWVudC0+cmVmKCk7Ci0gICAgZWxzZSBpZiAobV90eXBlID09IEltYWdlUGF0dGVybikK
LSAgICAgICAgbV9wYXR0ZXJuLT5yZWYoKTsKLSAgICBlbHNlIGlmIChtX3R5cGUgPT0gQ01ZS0Ep
Ci0gICAgICAgIG1fY215a2EgPSBuZXcgQ01ZS0FWYWx1ZXMob3RoZXIubV9jbXlrYS0+Y29sb3Is
IG90aGVyLm1fY215a2EtPmMsIG90aGVyLm1fY215a2EtPm0sIG90aGVyLm1fY215a2EtPnksIG90
aGVyLm1fY215a2EtPmssIG90aGVyLm1fY215a2EtPmEpOwotfQotCi1DYW52YXNTdHlsZSYgQ2Fu
dmFzU3R5bGU6Om9wZXJhdG9yPShjb25zdCBDYW52YXNTdHlsZSYgb3RoZXIpCi17Ci0gICAgaWYg
KHRoaXMgIT0gJm90aGVyKSB7Ci0gICAgICAgIHRoaXMtPn5DYW52YXNTdHlsZSgpOwotICAgICAg
ICBuZXcgKHRoaXMpIENhbnZhc1N0eWxlKG90aGVyKTsKLSAgICB9Ci0gICAgcmV0dXJuICp0aGlz
OworICAgIGF1dG8mIGNoYW5uZWxzID0gV1RGOjpnZXQ8Q01ZS0FDb2xvcj4obV9zdHlsZSk7Cisg
ICAgcmV0dXJuIGMgPT0gY2hhbm5lbHMuYyAmJiBtID09IGNoYW5uZWxzLm0gJiYgeSA9PSBjaGFu
bmVscy55ICYmIGsgPT0gY2hhbm5lbHMuayAmJiBhID09IGNoYW5uZWxzLmE7CiB9CiAKLXZvaWQg
Q2FudmFzU3R5bGU6OmFwcGx5U3Ryb2tlQ29sb3IoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KSBj
b25zdAordm9pZCBDYW52YXNTdHlsZTo6YXBwbHlTdHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQpIGNvbnN0CiB7Ci0gICAgaWYgKCFjb250ZXh0KQotICAgICAgICByZXR1cm47Ci0g
ICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFJHQkE6Ci0gICAgICAgIGNvbnRleHQtPnNl
dFN0cm9rZUNvbG9yKG1fY29sb3IpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENNWUtBOiB7
Ci0gICAgICAgIC8vIEZJWE1FOiBEbyB0aGlzIHRocm91Z2ggcGxhdGZvcm0taW5kZXBlbmRlbnQg
R3JhcGhpY3NDb250ZXh0IEFQSS4KLSAgICAgICAgLy8gV2UnbGwgbmVlZCBhIGZhbmNpZXIgQ29s
b3IgYWJzdHJhY3Rpb24gdG8gc3VwcG9ydCBDTVlLQSBjb3JyZWN0bHkKKyAgICBXVEY6OnN3aXRj
aE9uKG1fc3R5bGUsCisgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IENvbG9yJiBjb2xvcikgewor
ICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihjb2xvcik7CisgICAgICAgIH0sCisg
ICAgICAgIFsmY29udGV4dF0gKGNvbnN0IENNWUtBQ29sb3ImIGNvbG9yKSB7CisgICAgICAgICAg
ICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdoIHBsYXRmb3JtLWluZGVwZW5kZW50IEdyYXBoaWNz
Q29udGV4dCBBUEkuCisgICAgICAgICAgICAvLyBXZSdsbCBuZWVkIGEgZmFuY2llciBDb2xvciBh
YnN0cmFjdGlvbiB0byBzdXBwb3J0IENNWUtBIGNvcnJlY3RseQogI2lmIFVTRShDRykKLSAgICAg
ICAgQ0dDb250ZXh0U2V0Q01ZS1N0cm9rZUNvbG9yKGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgp
LCBtX2NteWthLT5jLCBtX2NteWthLT5tLCBtX2NteWthLT55LCBtX2NteWthLT5rLCBtX2NteWth
LT5hKTsKKyAgICAgICAgICAgIENHQ29udGV4dFNldENNWUtTdHJva2VDb2xvcihjb250ZXh0LnBs
YXRmb3JtQ29udGV4dCgpLCBjb2xvci5jLCBjb2xvci5tLCBjb2xvci55LCBjb2xvci5rLCBjb2xv
ci5hKTsKICNlbHNlCi0gICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKG1fY215a2EtPmNv
bG9yKTsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IoY29sb3IuY29sb3IpOwog
I2VuZGlmCi0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIEdyYWRpZW50OgotICAgICAg
ICBjb250ZXh0LT5zZXRTdHJva2VHcmFkaWVudChjYW52YXNHcmFkaWVudCgpLT5ncmFkaWVudCgp
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbWFnZVBhdHRlcm46Ci0gICAgICAgIGNvbnRl
eHQtPnNldFN0cm9rZVBhdHRlcm4oY2FudmFzUGF0dGVybigpLT5wYXR0ZXJuKCkpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEN1cnJlbnRDb2xvcjoKLSAgICBjYXNlIEN1cnJlbnRDb2xvcldp
dGhPdmVycmlkZUFscGhhOgotICAgIGNhc2UgSW52YWxpZDoKLSAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotdm9pZCBDYW52YXNTdHlsZTo6
YXBwbHlGaWxsQ29sb3IoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KSBjb25zdAotewotICAgIGlm
ICghY29udGV4dCkKLSAgICAgICAgcmV0dXJuOwotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAg
Y2FzZSBSR0JBOgotICAgICAgICBjb250ZXh0LT5zZXRGaWxsQ29sb3IobV9jb2xvcik7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgQ01ZS0E6IHsKLSAgICAgICAgLy8gRklYTUU6IERvIHRoaXMg
dGhyb3VnaCBwbGF0Zm9ybS1pbmRlcGVuZGVudCBHcmFwaGljc0NvbnRleHQgQVBJLgotICAgICAg
ICAvLyBXZSdsbCBuZWVkIGEgZmFuY2llciBDb2xvciBhYnN0cmFjdGlvbiB0byBzdXBwb3J0IENN
WUtBIGNvcnJlY3RseQorICAgICAgICB9LAorICAgICAgICBbJmNvbnRleHRdIChjb25zdCBSZWZQ
dHI8Q2FudmFzR3JhZGllbnQ+JiBncmFkaWVudCkgeworICAgICAgICAgICAgY29udGV4dC5zZXRT
dHJva2VHcmFkaWVudChncmFkaWVudC0+Z3JhZGllbnQoKSk7CisgICAgICAgIH0sCisgICAgICAg
IFsmY29udGV4dF0gKGNvbnN0IFJlZlB0cjxDYW52YXNQYXR0ZXJuPiYgcGF0dGVybikgeworICAg
ICAgICAgICAgY29udGV4dC5zZXRTdHJva2VQYXR0ZXJuKHBhdHRlcm4tPnBhdHRlcm4oKSk7Cisg
ICAgICAgIH0sCisgICAgICAgIFtdIChjb25zdCBDdXJyZW50Q29sb3ImKSB7CisgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10gKGNvbnN0IElu
dmFsaWQmKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQor
ICAgICk7Cit9CisKK3ZvaWQgQ2FudmFzU3R5bGU6OmFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCkgY29uc3QKK3sKKyAgICBXVEY6OnN3aXRjaE9uKG1fc3R5bGUsCisgICAg
ICAgIFsmY29udGV4dF0gKGNvbnN0IENvbG9yJiBjb2xvcikgeworICAgICAgICAgICAgY29udGV4
dC5zZXRGaWxsQ29sb3IoY29sb3IpOworICAgICAgICB9LAorICAgICAgICBbJmNvbnRleHRdIChj
b25zdCBDTVlLQUNvbG9yJiBjb2xvcikgeworICAgICAgICAgICAgLy8gRklYTUU6IERvIHRoaXMg
dGhyb3VnaCBwbGF0Zm9ybS1pbmRlcGVuZGVudCBHcmFwaGljc0NvbnRleHQgQVBJLgorICAgICAg
ICAgICAgLy8gV2UnbGwgbmVlZCBhIGZhbmNpZXIgQ29sb3IgYWJzdHJhY3Rpb24gdG8gc3VwcG9y
dCBDTVlLQSBjb3JyZWN0bHkKICNpZiBVU0UoQ0cpCi0gICAgICAgIENHQ29udGV4dFNldENNWUtG
aWxsQ29sb3IoY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIG1fY215a2EtPmMsIG1fY215a2Et
Pm0sIG1fY215a2EtPnksIG1fY215a2EtPmssIG1fY215a2EtPmEpOworICAgICAgICAgICAgQ0dD
b250ZXh0U2V0Q01ZS0ZpbGxDb2xvcihjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBjb2xvci5j
LCBjb2xvci5tLCBjb2xvci55LCBjb2xvci5rLCBjb2xvci5hKTsKICNlbHNlCi0gICAgICAgIGNv
bnRleHQtPnNldEZpbGxDb2xvcihtX2NteWthLT5jb2xvcik7CisgICAgICAgICAgICBjb250ZXh0
LnNldEZpbGxDb2xvcihjb2xvci5jb2xvcik7CiAjZW5kaWYKLSAgICAgICAgYnJlYWs7Ci0gICAg
fQotICAgIGNhc2UgR3JhZGllbnQ6Ci0gICAgICAgIGNvbnRleHQtPnNldEZpbGxHcmFkaWVudChj
YW52YXNHcmFkaWVudCgpLT5ncmFkaWVudCgpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJ
bWFnZVBhdHRlcm46Ci0gICAgICAgIGNvbnRleHQtPnNldEZpbGxQYXR0ZXJuKGNhbnZhc1BhdHRl
cm4oKS0+cGF0dGVybigpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDdXJyZW50Q29sb3I6
Ci0gICAgY2FzZSBDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBoYToKLSAgICBjYXNlIEludmFs
aWQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9
CisgICAgICAgIH0sCisgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IFJlZlB0cjxDYW52YXNHcmFk
aWVudD4mIGdyYWRpZW50KSB7CisgICAgICAgICAgICBjb250ZXh0LnNldEZpbGxHcmFkaWVudChn
cmFkaWVudC0+Z3JhZGllbnQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsmY29udGV4dF0gKGNv
bnN0IFJlZlB0cjxDYW52YXNQYXR0ZXJuPiYgcGF0dGVybikgeworICAgICAgICAgICAgY29udGV4
dC5zZXRGaWxsUGF0dGVybihwYXR0ZXJuLT5wYXR0ZXJuKCkpOworICAgICAgICB9LAorICAgICAg
ICBbXSAoY29uc3QgQ3VycmVudENvbG9yJikgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIH0sCisgICAgICAgIFtdIChjb25zdCBJbnZhbGlkJikgeworICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICApOwogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuaAppbmRleCBiNmJmNDdjNDAzYzNk
OWU5NTYwNTY5MTRhMDRiYmMzMGEwYWFiYTJiLi4yNzc0YTdhNTU4NDJhMmJkMTY1YTUwYzU5NzFl
ZjdiZTUzMzU3MGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4LCAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKQEAgLTI2LDEzNSArMjYsMTAwIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAi
Q2FudmFzR3JhZGllbnQuaCIKKyNpbmNsdWRlICJDYW52YXNQYXR0ZXJuLmgiCiAjaW5jbHVkZSAi
Q29sb3IuaCIKLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotICAgIGNsYXNzIENhbnZhc0dyYWRpZW50OwotICAgIGNsYXNzIENhbnZhc1BhdHRl
cm47Ci0gICAgY2xhc3MgRG9jdW1lbnQ7Ci0gICAgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwotICAg
IGNsYXNzIEhUTUxDYW52YXNFbGVtZW50OwotCi0gICAgY2xhc3MgQ2FudmFzU3R5bGUgewotICAg
IHB1YmxpYzoKLSAgICAgICAgQ2FudmFzU3R5bGUoKTsKLSAgICAgICAgZXhwbGljaXQgQ2FudmFz
U3R5bGUoQ29sb3IpOwotICAgICAgICBDYW52YXNTdHlsZShmbG9hdCBncmF5TGV2ZWwsIGZsb2F0
IGFscGhhKTsKLSAgICAgICAgQ2FudmFzU3R5bGUoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQgYiwg
ZmxvYXQgYWxwaGEpOwotICAgICAgICBDYW52YXNTdHlsZShmbG9hdCBjLCBmbG9hdCBtLCBmbG9h
dCB5LCBmbG9hdCBrLCBmbG9hdCBhbHBoYSk7Ci0gICAgICAgIGV4cGxpY2l0IENhbnZhc1N0eWxl
KFBhc3NSZWZQdHI8Q2FudmFzR3JhZGllbnQ+KTsKLSAgICAgICAgZXhwbGljaXQgQ2FudmFzU3R5
bGUoUGFzc1JlZlB0cjxDYW52YXNQYXR0ZXJuPik7Ci0gICAgICAgIH5DYW52YXNTdHlsZSgpOwot
Ci0gICAgICAgIHN0YXRpYyBDYW52YXNTdHlsZSBjcmVhdGVGcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgY29sb3IsIERvY3VtZW50KiA9IDApOwotICAgICAgICBzdGF0aWMgQ2FudmFzU3R5bGUgY3Jl
YXRlRnJvbVN0cmluZ1dpdGhPdmVycmlkZUFscGhhKGNvbnN0IFN0cmluZyYgY29sb3IsIGZsb2F0
IGFscGhhKTsKLQotICAgICAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUg
IT0gSW52YWxpZDsgfQotICAgICAgICBib29sIGlzQ3VycmVudENvbG9yKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlID09IEN1cnJlbnRDb2xvciB8fCBtX3R5cGUgPT0gQ3VycmVudENvbG9yV2l0aE92
ZXJyaWRlQWxwaGE7IH0KLSAgICAgICAgYm9vbCBoYXNPdmVycmlkZUFscGhhKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlID09IEN1cnJlbnRDb2xvcldpdGhPdmVycmlkZUFscGhhOyB9Ci0gICAgICAg
IGZsb2F0IG92ZXJyaWRlQWxwaGEoKSBjb25zdCB7IEFTU0VSVChtX3R5cGUgPT0gQ3VycmVudENv
bG9yV2l0aE92ZXJyaWRlQWxwaGEpOyByZXR1cm4gbV9vdmVycmlkZUFscGhhOyB9Ci0KLSAgICAg
ICAgU3RyaW5nIGNvbG9yKCkgY29uc3Q7Ci0gICAgICAgIENhbnZhc0dyYWRpZW50KiBjYW52YXNH
cmFkaWVudCgpIGNvbnN0OwotICAgICAgICBDYW52YXNQYXR0ZXJuKiBjYW52YXNQYXR0ZXJuKCkg
Y29uc3Q7Ci0KLSAgICAgICAgdm9pZCBhcHBseUZpbGxDb2xvcihHcmFwaGljc0NvbnRleHQqKSBj
b25zdDsKLSAgICAgICAgdm9pZCBhcHBseVN0cm9rZUNvbG9yKEdyYXBoaWNzQ29udGV4dCopIGNv
bnN0OwotCi0gICAgICAgIGJvb2wgaXNFcXVpdmFsZW50Q29sb3IoY29uc3QgQ2FudmFzU3R5bGUm
KSBjb25zdDsKLSAgICAgICAgYm9vbCBpc0VxdWl2YWxlbnRSR0JBKGZsb2F0IHIsIGZsb2F0IGcs
IGZsb2F0IGIsIGZsb2F0IGEpIGNvbnN0OwotICAgICAgICBib29sIGlzRXF1aXZhbGVudENNWUtB
KGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZsb2F0IGEpIGNvbnN0OwotCi0g
ICAgICAgIENhbnZhc1N0eWxlKGNvbnN0IENhbnZhc1N0eWxlJik7Ci0gICAgICAgIENhbnZhc1N0
eWxlJiBvcGVyYXRvcj0oY29uc3QgQ2FudmFzU3R5bGUmKTsKLSAgICAgICAgQ2FudmFzU3R5bGUo
Q2FudmFzU3R5bGUmJik7Ci0gICAgICAgIENhbnZhc1N0eWxlJiBvcGVyYXRvcj0oQ2FudmFzU3R5
bGUmJik7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBlbnVtIFR5cGUgeyBSR0JBLCBDTVlLQSwg
R3JhZGllbnQsIEltYWdlUGF0dGVybiwgQ3VycmVudENvbG9yLCBDdXJyZW50Q29sb3JXaXRoT3Zl
cnJpZGVBbHBoYSwgSW52YWxpZCB9OwotICAgICAgICBzdHJ1Y3QgQ01ZS0FWYWx1ZXMgewotICAg
ICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAgICAgICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShDTVlLQVZhbHVlcyk7Ci0gICAgICAgIHB1YmxpYzoKLSAgICAgICAgICAgIENN
WUtBVmFsdWVzKCkKLSAgICAgICAgICAgICAgICA6IGNvbG9yKCksIGMoMCksIG0oMCksIHkoMCks
IGsoMCksIGEoMCkKLSAgICAgICAgICAgIHsgfQotCi0gICAgICAgICAgICBDTVlLQVZhbHVlcyhD
b2xvciBjb2xvciwgZmxvYXQgY3lhbiwgZmxvYXQgbWFnZW50YSwgZmxvYXQgeWVsbG93LCBmbG9h
dCBibGFjaywgZmxvYXQgYWxwaGEpCi0gICAgICAgICAgICAgICAgOiBjb2xvcihjb2xvciksIGMo
Y3lhbiksIG0obWFnZW50YSksIHkoeWVsbG93KSwgayhibGFjayksIGEoYWxwaGEpCi0gICAgICAg
ICAgICB7IH0KLSAgICAgICAgICAgIENvbG9yIGNvbG9yOwotICAgICAgICAgICAgZmxvYXQgYzsK
LSAgICAgICAgICAgIGZsb2F0IG07Ci0gICAgICAgICAgICBmbG9hdCB5OwotICAgICAgICAgICAg
ZmxvYXQgazsKLSAgICAgICAgICAgIGZsb2F0IGE7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgZW51
bSBDb25zdHJ1Y3RDdXJyZW50Q29sb3JUYWcgeyBDb25zdHJ1Y3RDdXJyZW50Q29sb3IgfTsKLSAg
ICAgICAgQ2FudmFzU3R5bGUoQ29uc3RydWN0Q3VycmVudENvbG9yVGFnKSA6IG1fdHlwZShDdXJy
ZW50Q29sb3IpIHsgfQotICAgICAgICBDYW52YXNTdHlsZShUeXBlIHR5cGUsIGZsb2F0IG92ZXJy
aWRlQWxwaGEpCi0gICAgICAgICAgICA6IG1fb3ZlcnJpZGVBbHBoYShvdmVycmlkZUFscGhhKQot
ICAgICAgICAgICAgLCBtX3R5cGUodHlwZSkKK2NsYXNzIERvY3VtZW50OworY2xhc3MgR3JhcGhp
Y3NDb250ZXh0OworY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQ7CisKK2NsYXNzIENhbnZhc1N0eWxl
IHsKK3B1YmxpYzoKKyAgICBDYW52YXNTdHlsZSgpOworICAgIENhbnZhc1N0eWxlKENvbG9yKTsK
KyAgICBDYW52YXNTdHlsZShmbG9hdCBncmF5TGV2ZWwsIGZsb2F0IGFscGhhKTsKKyAgICBDYW52
YXNTdHlsZShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhbHBoYSk7CisgICAgQ2Fu
dmFzU3R5bGUoZmxvYXQgYywgZmxvYXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYWxwaGEp
OworICAgIENhbnZhc1N0eWxlKENhbnZhc0dyYWRpZW50Jik7CisgICAgQ2FudmFzU3R5bGUoQ2Fu
dmFzUGF0dGVybiYpOworCisgICAgc3RhdGljIENhbnZhc1N0eWxlIGNyZWF0ZUZyb21TdHJpbmco
Y29uc3QgU3RyaW5nJiBjb2xvciwgRG9jdW1lbnQqID0gbnVsbHB0cik7CisgICAgc3RhdGljIENh
bnZhc1N0eWxlIGNyZWF0ZUZyb21TdHJpbmdXaXRoT3ZlcnJpZGVBbHBoYShjb25zdCBTdHJpbmcm
IGNvbG9yLCBmbG9hdCBhbHBoYSk7CisKKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVy
biAhV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxJbnZhbGlkPihtX3N0eWxlKTsgfQorICAgIGJvb2wg
aXNDdXJyZW50Q29sb3IoKSBjb25zdCB7IHJldHVybiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPEN1
cnJlbnRDb2xvcj4obV9zdHlsZSk7IH0KKyAgICBib29sIGhhc092ZXJyaWRlQWxwaGEoKSBjb25z
dCB7IHJldHVybiBpc0N1cnJlbnRDb2xvcigpICYmIFdURjo6Z2V0PEN1cnJlbnRDb2xvcj4obV9z
dHlsZSkub3ZlcnJpZGVBbHBoYTsgfQorICAgIGZsb2F0IG92ZXJyaWRlQWxwaGEoKSBjb25zdCB7
IHJldHVybiBXVEY6OmdldDxDdXJyZW50Q29sb3I+KG1fc3R5bGUpLm92ZXJyaWRlQWxwaGEudmFs
dWUoKTsgfQorCisgICAgU3RyaW5nIGNvbG9yKCkgY29uc3Q7CisgICAgQ2FudmFzR3JhZGllbnQq
IGNhbnZhc0dyYWRpZW50KCkgY29uc3Q7CisgICAgQ2FudmFzUGF0dGVybiogY2FudmFzUGF0dGVy
bigpIGNvbnN0OworCisgICAgdm9pZCBhcHBseUZpbGxDb2xvcihHcmFwaGljc0NvbnRleHQmKSBj
b25zdDsKKyAgICB2b2lkIGFwcGx5U3Ryb2tlQ29sb3IoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7
CisKKyAgICBib29sIGlzRXF1aXZhbGVudENvbG9yKGNvbnN0IENhbnZhc1N0eWxlJikgY29uc3Q7
CisgICAgYm9vbCBpc0VxdWl2YWxlbnRSR0JBKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0
IGJsdWUsIGZsb2F0IGFscGhhKSBjb25zdDsKKyAgICBib29sIGlzRXF1aXZhbGVudENNWUtBKGZs
b2F0IGN5YW4sIGZsb2F0IG1hZ2VudGEsIGZsb2F0IHllbGxvdywgZmxvYXQgYmxhY2ssIGZsb2F0
IGFscGhhKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgSW52YWxpZCB7IH07CisKKyAg
ICBzdHJ1Y3QgQ01ZS0FDb2xvciB7CisgICAgICAgIENNWUtBQ29sb3IoKSA9IGRlZmF1bHQ7CisK
KyAgICAgICAgQ01ZS0FDb2xvcihDb2xvciBjb2xvciwgZmxvYXQgY3lhbiwgZmxvYXQgbWFnZW50
YSwgZmxvYXQgeWVsbG93LCBmbG9hdCBibGFjaywgZmxvYXQgYWxwaGEpCisgICAgICAgICAgICA6
IGNvbG9yKGNvbG9yKSwgYyhjeWFuKSwgbShtYWdlbnRhKSwgeSh5ZWxsb3cpLCBrKGJsYWNrKSwg
YShhbHBoYSkKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgdW5pb24gewotICAgICAg
ICAgICAgQ29sb3IgbV9jb2xvcjsKLSAgICAgICAgICAgIGZsb2F0IG1fb3ZlcnJpZGVBbHBoYTsK
LSAgICAgICAgICAgIENhbnZhc0dyYWRpZW50KiBtX2dyYWRpZW50OwotICAgICAgICAgICAgQ2Fu
dmFzUGF0dGVybiogbV9wYXR0ZXJuOwotICAgICAgICAgICAgQ01ZS0FWYWx1ZXMqIG1fY215a2E7
Ci0gICAgICAgIH07Ci0gICAgICAgIFR5cGUgbV90eXBlOworICAgICAgICBDb2xvciBjb2xvcjsK
KyAgICAgICAgZmxvYXQgYyB7IDAgfTsKKyAgICAgICAgZmxvYXQgbSB7IDAgfTsKKyAgICAgICAg
ZmxvYXQgeSB7IDAgfTsKKyAgICAgICAgZmxvYXQgayB7IDAgfTsKKyAgICAgICAgZmxvYXQgYSB7
IDAgfTsKICAgICB9OwogCi0gICAgQ29sb3IgY3VycmVudENvbG9yKEhUTUxDYW52YXNFbGVtZW50
Kik7Ci0gICAgQ29sb3IgcGFyc2VDb2xvck9yQ3VycmVudENvbG9yKGNvbnN0IFN0cmluZyYgY29s
b3JTdHJpbmcsIEhUTUxDYW52YXNFbGVtZW50Kik7Ci0KLSAgICBpbmxpbmUgQ2FudmFzU3R5bGU6
OkNhbnZhc1N0eWxlKCkKLSAgICAgICAgOiBtX3R5cGUoSW52YWxpZCkKLSAgICB7Ci0gICAgfQot
Ci0gICAgaW5saW5lIENhbnZhc0dyYWRpZW50KiBDYW52YXNTdHlsZTo6Y2FudmFzR3JhZGllbnQo
KSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKG1fdHlwZSA9PSBHcmFkaWVudCkKLSAgICAgICAg
ICAgIHJldHVybiBtX2dyYWRpZW50OwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgQ2FudmFzUGF0dGVybiogQ2FudmFzU3R5bGU6OmNhbnZhc1BhdHRlcm4oKSBjb25zdAot
ICAgIHsKLSAgICAgICAgaWYgKG1fdHlwZSA9PSBJbWFnZVBhdHRlcm4pCi0gICAgICAgICAgICBy
ZXR1cm4gbV9wYXR0ZXJuOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
U3RyaW5nIENhbnZhc1N0eWxlOjpjb2xvcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQo
bV90eXBlID09IFJHQkEgfHwgbV90eXBlID09IENNWUtBKTsKLSAgICAgICAgaWYgKG1fdHlwZSA9
PSBSR0JBKQotICAgICAgICAgICAgcmV0dXJuIG1fY29sb3Iuc2VyaWFsaXplZCgpOwotICAgICAg
ICByZXR1cm4gbV9jbXlrYS0+Y29sb3Iuc2VyaWFsaXplZCgpOwotICAgIH0KLQotICAgIGlubGlu
ZSBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoQ2FudmFzU3R5bGUmJiBvdGhlcikKLSAgICB7Ci0g
ICAgICAgIG1lbWNweSh0aGlzLCAmb3RoZXIsIHNpemVvZihDYW52YXNTdHlsZSkpOwotICAgICAg
ICBvdGhlci5tX3R5cGUgPSBJbnZhbGlkOwotICAgIH0KLQotICAgIGlubGluZSBDYW52YXNTdHls
ZSYgQ2FudmFzU3R5bGU6Om9wZXJhdG9yPShDYW52YXNTdHlsZSYmIG90aGVyKQotICAgIHsKLSAg
ICAgICAgaWYgKHRoaXMgIT0gJm90aGVyKSB7Ci0gICAgICAgICAgICBtZW1jcHkodGhpcywgJm90
aGVyLCBzaXplb2YoQ2FudmFzU3R5bGUpKTsKLSAgICAgICAgICAgIG90aGVyLm1fdHlwZSA9IElu
dmFsaWQ7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KKyAgICBzdHJ1
Y3QgQ3VycmVudENvbG9yIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gb3ZlcnJpZGVB
bHBoYTsKKyAgICB9OworCisgICAgQ2FudmFzU3R5bGUoQ3VycmVudENvbG9yKTsKKworICAgIFZh
cmlhbnQ8SW52YWxpZCwgQ29sb3IsIENNWUtBQ29sb3IsIFJlZlB0cjxDYW52YXNHcmFkaWVudD4s
IFJlZlB0cjxDYW52YXNQYXR0ZXJuPiwgQ3VycmVudENvbG9yPiBtX3N0eWxlOworfTsKKworQ29s
b3IgY3VycmVudENvbG9yKEhUTUxDYW52YXNFbGVtZW50Kik7CitDb2xvciBwYXJzZUNvbG9yT3JD
dXJyZW50Q29sb3IoY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZywgSFRNTENhbnZhc0VsZW1lbnQq
KTsKKworaW5saW5lIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZSgpCisgICAgOiBtX3N0eWxlKElu
dmFsaWQgeyB9KQoreworfQorCitpbmxpbmUgQ2FudmFzR3JhZGllbnQqIENhbnZhc1N0eWxlOjpj
YW52YXNHcmFkaWVudCgpIGNvbnN0Cit7CisgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZl
PFJlZlB0cjxDYW52YXNHcmFkaWVudD4+KG1fc3R5bGUpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gV1RGOjpnZXQ8UmVmUHRyPENhbnZhc0dyYWRpZW50Pj4obV9zdHlsZSku
Z2V0KCk7Cit9CisKK2lubGluZSBDYW52YXNQYXR0ZXJuKiBDYW52YXNTdHlsZTo6Y2FudmFzUGF0
dGVybigpIGNvbnN0Cit7CisgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFJlZlB0cjxD
YW52YXNQYXR0ZXJuPj4obV9zdHlsZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBXVEY6OmdldDxSZWZQdHI8Q2FudmFzUGF0dGVybj4+KG1fc3R5bGUpLmdldCgpOworfQor
CitpbmxpbmUgU3RyaW5nIENhbnZhc1N0eWxlOjpjb2xvcigpIGNvbnN0Cit7CisgICAgYXV0byYg
Y29sb3IgPSBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENvbG9yPihtX3N0eWxlKSA/IFdURjo6Z2V0
PENvbG9yPihtX3N0eWxlKSA6IFdURjo6Z2V0PENNWUtBQ29sb3I+KG1fc3R5bGUpLmNvbG9yOwor
ICAgIHJldHVybiBjb2xvci5zZXJpYWxpemVkKCk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2Jq
ZWN0LmNwcAppbmRleCBjOGIxMGY3YmZiYzY4MWQ4YWE4NTk1OWEzZjFlMjdkNjM3OGU2OWFlLi4x
ZWY4MzMxNzRmZWI5YzMxYWIwZThkOTJmZmRmNGMzMDUwYjRiOGFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCkBAIC00OSw4
ICs0OSw4IEBAIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiBPRVNWZXJ0ZXhBcnJh
eU9iamVjdDo6Y3JlYXRlVmVydGV4QXJyYXlPRVMoKQogICAgIGlmIChtX2NvbnRleHQuaXNDb250
ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gb2JqZWN0ID0g
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKG1fY29udGV4dCwgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUzo6VkFPVHlwZVVzZXIpOwotICAgIG1fY29udGV4dC5hZGRDb250ZXh0T2Jq
ZWN0KG9iamVjdC5wdHIoKSk7CisgICAgYXV0byBvYmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTOjpjcmVhdGUobV9jb250ZXh0LCBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpUeXBl
OjpVc2VyKTsKKyAgICBtX2NvbnRleHQuYWRkQ29udGV4dE9iamVjdChvYmplY3QuZ2V0KCkpOwog
ICAgIHJldHVybiBXVEZNb3ZlKG9iamVjdCk7CiB9CiAKQEAgLTU4LDkgKzU4LDkgQEAgdm9pZCBP
RVNWZXJ0ZXhBcnJheU9iamVjdDo6ZGVsZXRlVmVydGV4QXJyYXlPRVMoV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdE9FUyogYXJyYXkKIHsKICAgICBpZiAoIWFycmF5T2JqZWN0IHx8IG1fY29udGV4dC5p
c0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICBpZiAoIWFycmF5T2Jq
ZWN0LT5pc0RlZmF1bHRPYmplY3QoKSAmJiBhcnJheU9iamVjdCA9PSBzdGF0aWNfY2FzdDxXZWJH
TFJlbmRlcmluZ0NvbnRleHQqPigmbV9jb250ZXh0KS0+bV9ib3VuZFZlcnRleEFycmF5T2JqZWN0
KQotICAgICAgICBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQqPigmbV9jb250ZXh0
KS0+c2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdCgwKTsKKworICAgIGlmICghYXJyYXlPYmplY3Qt
PmlzRGVmYXVsdE9iamVjdCgpICYmIGFycmF5T2JqZWN0ID09IHN0YXRpY19jYXN0PFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCY+KG1fY29udGV4dCkubV9ib3VuZFZlcnRleEFycmF5T2JqZWN0KQorICAg
ICAgICBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQmPihtX2NvbnRleHQpLnNldEJv
dW5kVmVydGV4QXJyYXlPYmplY3QobnVsbHB0cik7CiAKICAgICBhcnJheU9iamVjdC0+ZGVsZXRl
T2JqZWN0KG1fY29udGV4dC5ncmFwaGljc0NvbnRleHQzRCgpKTsKIH0KQEAgLTg5LDcgKzg5LDcg
QEAgdm9pZCBPRVNWZXJ0ZXhBcnJheU9iamVjdDo6YmluZFZlcnRleEFycmF5T0VTKFdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMqIGFycmF5T2IKICAgICAgICAgY29udGV4dC5zZXRCb3VuZFZlcnRl
eEFycmF5T2JqZWN0KGFycmF5T2JqZWN0KTsKICAgICB9IGVsc2UgewogICAgICAgICBleHRlbnNp
b25zLmJpbmRWZXJ0ZXhBcnJheU9FUygwKTsKLSAgICAgICAgY29udGV4dC5zZXRCb3VuZFZlcnRl
eEFycmF5T2JqZWN0KDApOworICAgICAgICBjb250ZXh0LnNldEJvdW5kVmVydGV4QXJyYXlPYmpl
Y3QobnVsbHB0cik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDQ4MGEwY2E5NWI1MTgzMTIz
ODBjOWNlZmI4NDQ4ZjI1OTEwODE4MTcuLmZmNTk5MThiZGNhZmRiY2Q2YzM0Nzg2Yzg3MjFlZmZi
ODg2MjE2MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJl
bmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0yNCw5ICsyNCw5IEBACiAgKi8KIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCIKIAogI2lmIEVO
QUJMRShXRUJHTCkgJiYgRU5BQkxFKFdFQkdMMikKLSNpbmNsdWRlICJXZWJHTDJSZW5kZXJpbmdD
b250ZXh0LmgiCiAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkVYVFRleHR1
cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIgpAQCAtNjMsNyArNjMsNyBAQCBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRD
YW52YXMsCiB7CiB9CiAKLVdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OldlYkdMMlJlbmRlcmluZ0Nv
bnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiYmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVz
KQorV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2Fu
dmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29udGV4
dCwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgOiBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlKHBhc3NlZENhbnZhcywgV1RGTW92ZShjb250ZXh0KSwgYXR0cmli
dXRlcykKIHsKICAgICBpbml0aWFsaXplU2hhZGVyRXh0ZW5zaW9ucygpOwpAQCAtNzIsOCArNzIs
OCBAQCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0KEhUTUxD
YW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsCiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cygpCiB7Ci0gICAgbV9kZWZhdWx0VmVydGV4
QXJyYXlPYmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdM
VmVydGV4QXJyYXlPYmplY3Q6OlZBT1R5cGVEZWZhdWx0KTsKLSAgICBhZGRDb250ZXh0T2JqZWN0
KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0LmdldCgpKTsKKyAgICBtX2RlZmF1bHRWZXJ0ZXhB
cnJheU9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZSgqdGhpcywgV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdDo6VHlwZTo6RGVmYXVsdCk7CisgICAgYWRkQ29udGV4dE9iamVjdCgq
bV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QpOwogICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVj
dCA9IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OwogICAgIGlmICghaXNHTEVTMkNvbXBsaWFu
dCgpKQogICAgICAgICBpbml0VmVydGV4QXR0cmliMCgpOwpAQCAtMjAzLDcgKzIwMyw3IEBAIHZv
aWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y29weUJ1ZmZlclN1YkRhdGEoR0MzRGVudW0gcmVh
ZFRhcmdldCwgR0MzRGVudW0gd3JpCiAgICAgfQogCiAgICAgbV9jb250ZXh0LT5tb3ZlRXJyb3Jz
VG9TeW50aGV0aWNFcnJvckxpc3QoKTsKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElP
UykKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBtX2NvbnRleHQtPmNvcHlCdWZmZXJTdWJEYXRh
KHJlYWRUYXJnZXQsIHdyaXRlVGFyZ2V0LCBjaGVja2VkUmVhZE9mZnNldC51bnNhZmVHZXQoKSwg
Y2hlY2tlZFdyaXRlT2Zmc2V0LnVuc2FmZUdldCgpLCBjaGVja2VkU2l6ZS51bnNhZmVHZXQoKSk7
CiAjZW5kaWYKICAgICBpZiAobV9jb250ZXh0LT5tb3ZlRXJyb3JzVG9TeW50aGV0aWNFcnJvckxp
c3QoKSkgewpAQCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
Z2V0QnVmZmVyU3ViRGF0YShHQzNEZW51bSB0YXJnZXQsIGxvbmcgbG9uZyBzcmNCeXRlCiAgICAg
fQogCiAgICAgbV9jb250ZXh0LT5tb3ZlRXJyb3JzVG9TeW50aGV0aWNFcnJvckxpc3QoKTsKLSNp
ZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShDT0NPQSkKICAg
ICAvLyBGSVhNRTogQ29hbGVzY2UgbXVsdGlwbGUgZ2V0QnVmZmVyU3ViRGF0YSgpIGNhbGxzIHRv
IHVzZSBhIHNpbmdsZSBtYXAoKSBjYWxsCiAgICAgdm9pZCogcHRyID0gbV9jb250ZXh0LT5tYXBC
dWZmZXJSYW5nZSh0YXJnZXQsIGNoZWNrZWRTcmNCeXRlT2Zmc2V0LnVuc2FmZUdldCgpLCBzdGF0
aWNfY2FzdDxHQzNEc2l6ZWlwdHI+KGNoZWNrZWRDb3B5TGVuZ3RoUHRyLnVuc2FmZUdldCgpICog
Y2hlY2tlZEVsZW1lbnRTaXplLnVuc2FmZUdldCgpKSwgR3JhcGhpY3NDb250ZXh0M0Q6Ok1BUF9S
RUFEX0JJVCk7CiAgICAgbWVtY3B5KHN0YXRpY19jYXN0PGNoYXIqPihkc3REYXRhLT5iYXNlQWRk
cmVzcygpKSArIGRzdERhdGEtPmJ5dGVPZmZzZXQoKSArIGRzdE9mZnNldCAqIGVsZW1lbnRTaXpl
LCBwdHIsIGNvcHlMZW5ndGggKiBlbGVtZW50U2l6ZSk7CkBAIC0yOTAsOSArMjkwLDkgQEAgdm9p
ZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpmcmFtZWJ1ZmZlclRleHR1cmVMYXllcihHQzNEZW51
bSwgR0MzRGVudW0sIEdDM0R1aW4KIHsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKEdDM0RlbnVtLCBHQzNEZW51bSwg
R0MzRGVudW0pCitXZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbnRlcm5hbGZv
cm1hdFBhcmFtZXRlcihHQzNEZW51bSwgR0MzRGVudW0sIEdDM0RlbnVtKQogewotICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjppbnZhbGlkYXRlRnJhbWVidWZmZXIoR0MzRGVudW0sIFZlY3RvcjxH
QzNEZW51bT4pCkBAIC00MDcsNyArNDA3LDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
Ojp0ZXhTdG9yYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzMKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBX
ZWJHTFRleHR1cmUqIHRleHR1cmUgPSB2YWxpZGF0ZVRleHR1cmVCaW5kaW5nKCJ0ZXhTdG9yYWdl
MkQiLCB0YXJnZXQsIGZhbHNlKTsKKyAgICBhdXRvKiB0ZXh0dXJlID0gdmFsaWRhdGVUZXh0dXJl
QmluZGluZygidGV4U3RvcmFnZTJEIiwgdGFyZ2V0LCBmYWxzZSk7CiAgICAgaWYgKCF0ZXh0dXJl
KQogICAgICAgICByZXR1cm47CiAKQEAgLTc4Miw5ICs3ODIsOSBAQCBSZWZQdHI8V2ViR0xRdWVy
eT4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnkoR0MzRGVudW0sIEdDM0RlbnVtKQog
ICAgIHJldHVybiBudWxscHRyOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0UXVlcnlQYXJhbWV0ZXIoV2ViR0xRdWVyeSosIEdDM0RlbnVtKQorV2ViR0xBbnkg
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnlQYXJhbWV0ZXIoV2ViR0xRdWVyeSosIEdD
M0RlbnVtKQogewotICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAogUmVmUHRyPFdlYkdMU2FtcGxlcj4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y3Jl
YXRlU2FtcGxlcigpCkBAIC04MTMsOSArODEzLDkgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpzYW1wbGVyUGFyYW1ldGVyZihXZWJHTFNhbXBsZXIqLCBHQzNEZW51bSwgR0MzRGZsb2EK
IHsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFNhbXBsZXJQ
YXJhbWV0ZXIoV2ViR0xTYW1wbGVyKiwgR0MzRGVudW0pCitXZWJHTEFueSBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpnZXRTYW1wbGVyUGFyYW1ldGVyKFdlYkdMU2FtcGxlciosIEdDM0RlbnVtKQog
ewotICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAog
UmVmUHRyPFdlYkdMU3luYz4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZmVuY2VTeW5jKEdDM0Rl
bnVtLCBHQzNEYml0ZmllbGQpCkBAIC04NDEsOSArODQxLDkgQEAgdm9pZCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0Ojp3YWl0U3luYyhXZWJHTFN5bmMqLCBHQzNEYml0ZmllbGQsIEdDM0R1aW50NjQp
CiB7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRTeW5jUGFy
YW1ldGVyKFdlYkdMU3luYyosIEdDM0RlbnVtKQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0U3luY1BhcmFtZXRlcihXZWJHTFN5bmMqLCBHQzNEZW51bSkKIHsKLSAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZlB0cjxXZWJH
TFRyYW5zZm9ybUZlZWRiYWNrPiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVUcmFuc2Zv
cm1GZWVkYmFjaygpCkBAIC04OTcsNyArODk3LDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpiaW5kQnVmZmVyUmFuZ2UoR0MzRGVudW0sIEdDM0R1aW50LCBXZWJHTEJ1ZmZlciosIEcK
IHsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEluZGV4ZWRQ
YXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWludCkKK1dlYkdMQW55IFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmdldEluZGV4ZWRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWlu
dCkKIHsKICAgICBzd2l0Y2ggKHRhcmdldCkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORzoKQEAgLTkwNywxMyArOTA3LDExIEBA
IFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVy
KEdDM0RlbnVtIHRhcmdldCwgR0MzRHVpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5J
Rk9STV9CVUZGRVJfU0laRToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTklGT1JNX0JV
RkZFUl9TVEFSVDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfRU5VTSwgImdldEluZGV4ZWRQYXJhbWV0ZXIiLCAicGFyYW1ldGVyIG5hbWUgbm90
IHlldCBzdXBwb3J0ZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0SW5kZXhlZFBhcmFtZXRlciIs
ICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
KTsKLSAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOwogfQogCiBVaW50MzJBcnJheSogV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0VW5pZm9ybUluZGljZXMoV2ViR0xQcm9ncmFtKiwgVmVjdG9yPFN0cmluZz4pCkBA
IC05MzEsMTQgKzkyOSwxNCBAQCBHQzNEdWludCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRV
bmlmb3JtQmxvY2tJbmRleChXZWJHTFByb2dyYW0qLCBTdHJpbmcpCiAgICAgcmV0dXJuIDA7CiB9
CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3Jt
QmxvY2tQYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQsIEdDM0RlbnVtKQorV2ViR0xB
bnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVy
KFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50LCBHQzNEZW51bSkKIHsKLSAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKFdlYkdMUHJvZ3JhbSos
IEdDM0R1aW50KQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5p
Zm9ybUJsb2NrTmFtZShXZWJHTFByb2dyYW0qLCBHQzNEdWludCkKIHsKLSAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6dW5pZm9ybUJsb2NrQmluZGluZyhXZWJHTFByb2dyYW0qLCBHQzNEdWludCwg
R0MzRHVpbnQpCkBAIC05NTAsOCArOTQ4LDggQEAgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3Q+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVZlcnRleEFycmF5KCkKICAgICBpZiAo
aXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKLSAgICBhdXRv
IG9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZSgqdGhpcywgV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdDo6VkFPVHlwZVVzZXIpOwotICAgIGFkZENvbnRleHRPYmplY3Qob2JqZWN0
LnB0cigpKTsKKyAgICBhdXRvIG9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0
ZSgqdGhpcywgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6VHlwZTo6VXNlcik7CisgICAgYWRkQ29u
dGV4dE9iamVjdChvYmplY3QuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKG9iamVjdCk7CiB9
CiAKQEAgLTk2NCw3ICs5NjIsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0
ZVZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIGFycmF5T2JqZQogICAgICAgICBy
ZXR1cm47CiAgICAgCiAgICAgaWYgKCFhcnJheU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkgJiYg
YXJyYXlPYmplY3QgPT0gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0KQotICAgICAgICBzZXRCb3Vu
ZFZlcnRleEFycmF5T2JqZWN0KDApOworICAgICAgICBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0
KG51bGxwdHIpOwogICAgIAogICAgIGFycmF5T2JqZWN0LT5kZWxldGVPYmplY3QoZ3JhcGhpY3ND
b250ZXh0M0QoKSk7CiB9CkBAIC05NzIsMTAgKzk3MCwxMCBAQCB2b2lkIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmRlbGV0ZVZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIGFycmF5
T2JqZQogR0MzRGJvb2xlYW4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNWZXJ0ZXhBcnJheShX
ZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamVjdCkKIHsKICAgICBpZiAoIWFycmF5T2Jq
ZWN0IHx8IGlzQ29udGV4dExvc3QoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAKICAgICBpZiAoIWFycmF5T2JqZWN0LT5oYXNFdmVyQmVlbkJvdW5kKCkg
fHwgIWFycmF5T2JqZWN0LT52YWxpZGF0ZSgwLCAqdGhpcykpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgcmV0dXJuIG1fY29udGV4dC0+aXNWZXJ0
ZXhBcnJheShhcnJheU9iamVjdC0+b2JqZWN0KCkpOwogfQpAQCAtOTk2LDcgKzk5NCw3IEBAIHZv
aWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmluZFZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJy
YXlPYmplY3QqIGFycmF5T2JqZWN0CiAgICAgICAgIHNldEJvdW5kVmVydGV4QXJyYXlPYmplY3Qo
YXJyYXlPYmplY3QpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fY29udGV4dC0+YmluZFZlcnRl
eEFycmF5KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0LT5vYmplY3QoKSk7Ci0gICAgICAgIHNl
dEJvdW5kVmVydGV4QXJyYXlPYmplY3QobV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QpOworICAg
ICAgICBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0
LmdldCgpKTsKICAgICB9CiB9CiAKQEAgLTEwMDUsNDMgKzEwMDMsNDggQEAgV2ViR0xFeHRlbnNp
b24qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5h
bWUpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICBpZiAoKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF90ZXh0
dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpIHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwg
IldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkKLSAgICAgICAgJiYgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9h
bmlzb3Ryb3BpYyIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVY
VF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpIHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
bmFtZSwgIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkgewogICAgICAg
ICBpZiAoIW1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKSB7Ci0gICAgICAgICAgICBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9FWFRfdGV4dHVyZV9maWx0
ZXJfYW5pc290cm9waWMiKTsKLSAgICAgICAgICAgIG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJv
cGljID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWM+KCp0aGlz
KTsKKyAgICAgICAgICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhB
U0NJSUxpdGVyYWwgeyAiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIiB9KSkgewor
ICAgICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQo
QVNDSUlMaXRlcmFsIHsgIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIgfSk7Cisg
ICAgICAgICAgICAgICAgbV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMgPSBzdGQ6Om1ha2Vf
dW5pcXVlPEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYz4oKnRoaXMpOworICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Yy5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9F
U190ZXh0dXJlX2Zsb2F0IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
c3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxvYXQiKSkgewogICAgICAgICBpZiAoIW1f
b2VzVGV4dHVyZUZsb2F0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpOwotICAgICAgICAgICAgbV9v
ZXNUZXh0dXJlRmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdD4oKnRoaXMp
OworICAgICAgICAgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFT
Q0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9mbG9hdCIgfSkpIHsKKyAgICAgICAgICAgICAg
ICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0ZXJhbCB7
ICJHTF9PRVNfdGV4dHVyZV9mbG9hdCIgfSk7CisgICAgICAgICAgICAgICAgbV9vZXNUZXh0dXJl
RmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdD4oKnRoaXMpOworICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVGbG9hdC5nZXQo
KTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0
dXJlX2Zsb2F0X2xpbmVhciIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkgeworICAgIGlmIChlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkgewog
ICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUZsb2F0TGluZWFyKSB7Ci0gICAgICAgICAgICBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9mbG9h
dF9saW5lYXIiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyID0gc3RkOjpt
YWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXRMaW5lYXI+KCp0aGlzKTsKKyAgICAgICAgICAgIGlm
IChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xf
T0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9KSkgeworICAgICAgICAgICAgICAgIG1fY29udGV4
dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190
ZXh0dXJlX2Zsb2F0X2xpbmVhciIgfSk7CisgICAgICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxv
YXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdExpbmVhcj4oKnRoaXMp
OworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVG
bG9hdExpbmVhci5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
bmFtZSwgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpKSB7Cisg
ICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2hhbGZfZmxv
YXQiKSkgewogICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUhhbGZGbG9hdCkgewotICAgICAgICAg
ICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1
cmVfaGFsZl9mbG9hdCIpOwotICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0ID0gc3Rk
OjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZsb2F0PigqdGhpcyk7CisgICAgICAgICAgICBp
ZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdM
X09FU190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pKSB7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3Rl
eHR1cmVfaGFsZl9mbG9hdCIgfSk7CisgICAgICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZs
b2F0ID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZsb2F0PigqdGhpcyk7CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUhhbGZGbG9h
dC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9F
U190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikp
IHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFs
Zl9mbG9hdF9saW5lYXIiKSkgewogICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUhhbGZGbG9hdExp
bmVhcikgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5h
YmxlZCgiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKTsKLSAgICAgICAgICAgIG1f
b2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhciA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUhh
bGZGbG9hdExpbmVhcj4oKnRoaXMpOworICAgICAgICAgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zs
b2F0X2xpbmVhciIgfSkpIHsKKyAgICAgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zs
b2F0X2xpbmVhciIgfSk7CisgICAgICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGlu
ZWFyID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyPigqdGhpcyk7
CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUhh
bGZGbG9hdExpbmVhci5nZXQoKTsKICAgICB9CkBAIC0xMDUwLDI4ICsxMDUzLDMyIEBAIFdlYkdM
RXh0ZW5zaW9uKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3Ry
aW5nJiBuYW1lKQogICAgICAgICAgICAgbV93ZWJnbExvc2VDb250ZXh0ID0gc3RkOjptYWtlX3Vu
aXF1ZTxXZWJHTExvc2VDb250ZXh0PigqdGhpcyk7CiAgICAgICAgIHJldHVybiBtX3dlYmdsTG9z
ZUNvbnRleHQuZ2V0KCk7CiAgICAgfQotICAgIGlmICgoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShu
YW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKSkKLSAgICAgICAgJiYg
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAgICBp
ZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQykKLSAgICAgICAgICAgIG1fd2ViZ2xDb21w
cmVzc2VkVGV4dHVyZUFUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQz4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJL
SVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlQVRDKSB7CisgICAgICAgICAgICBpZiAoV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkKKyAgICAgICAgICAgICAgICBtX3dlYmdsQ29t
cHJlc3NlZFRleHR1cmVBVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVBVEM+KCp0aGlzKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNz
ZWRUZXh0dXJlQVRDLmdldCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSkKLSAgICAg
ICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0g
ICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMpCi0gICAgICAgICAgICBt
X3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21w
cmVzc2VkVGV4dHVyZVBWUlRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSkgeworICAg
ICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKSB7CisgICAgICAgICAgICBp
ZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpKQorICAgICAg
ICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDID0gc3RkOjptYWtlX3VuaXF1
ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM+KCp0aGlzKTsKKyAgICAgICAgfQogICAgICAg
ICByZXR1cm4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMuZ2V0KCk7CiAgICAgfQotICAg
IGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9jb21wcmVzc2VkX3RleHR1
cmVfczN0YyIpCi0gICAgICAgICYmIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0
ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQykK
LSAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMgPSBzdGQ6Om1ha2VfdW5p
cXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIikpIHsK
KyAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDKSB7CisgICAgICAgICAg
ICBpZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhpcykpCisgICAg
ICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQyA9IHN0ZDo6bWFrZV91bmlx
dWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM+KCp0aGlzKTsKKyAgICAgICAgfQogICAgICAg
ICByZXR1cm4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQy5nZXQoKTsKICAgICB9Ci0gICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlcHRoX3RleHR1cmUiKQot
ICAgICAgICAmJiBXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCpncmFwaGljc0NvbnRleHQz
RCgpKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xEZXB0aFRleHR1cmUpCi0gICAgICAgICAgICBt
X3dlYmdsRGVwdGhUZXh0dXJlID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlcHRoVGV4dHVyZT4o
KnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZXB0
aF90ZXh0dXJlIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsRGVwdGhUZXh0dXJlKSB7CisgICAg
ICAgICAgICBpZiAoV2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqZ3JhcGhpY3NDb250ZXh0
M0QoKSkpCisgICAgICAgICAgICAgICAgbV93ZWJnbERlcHRoVGV4dHVyZSA9IHN0ZDo6bWFrZV91
bmlxdWU8V2ViR0xEZXB0aFRleHR1cmU+KCp0aGlzKTsKKyAgICAgICAgfQogICAgICAgICByZXR1
cm4gbV93ZWJnbERlcHRoVGV4dHVyZS5nZXQoKTsKICAgICB9CiAgICAgaWYgKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKSkgewpAQCAtMTA3
OSwxMCArMTA4NiwxMSBAQCBXZWJHTEV4dGVuc2lvbiogV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgICAgIG1fd2ViZ2xEZWJ1
Z1JlbmRlcmVySW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4o
KnRoaXMpOwogICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvLmdldCgpOwog
ICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVidWdf
c2hhZGVycyIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRz
KCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkgewotICAgICAgICBpZiAoIW1f
d2ViZ2xEZWJ1Z1NoYWRlcnMpCi0gICAgICAgICAgICBtX3dlYmdsRGVidWdTaGFkZXJzID0gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnU2hhZGVycz4oKnRoaXMpOworICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19zaGFkZXJzIikpIHsKKyAgICAgICAg
aWYgKCFtX3dlYmdsRGVidWdTaGFkZXJzKSB7CisgICAgICAgICAgICBpZiAobV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0FOR0xFX3RyYW5zbGF0
ZWRfc2hhZGVyX3NvdXJjZSIgfSkpCisgICAgICAgICAgICAgICAgbV93ZWJnbERlYnVnU2hhZGVy
cyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1Z1NoYWRlcnM+KCp0aGlzKTsKKyAgICAgICAg
fQogICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnU2hhZGVycy5nZXQoKTsKICAgICB9CiAKQEAg
LTEwOTYsOTAgKzExMDQsOTAgQEAgVmVjdG9yPFN0cmluZz4gV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpCiAgICAgaWYgKG1faXNQZW5kaW5nUG9saWN5UmVz
b2x1dGlvbikKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAotICAgIGlmIChtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfZmxvYXQiKSkKLSAgICAgICAg
cmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVfZmxvYXQiKTsKLSAgICBpZiAobV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKQot
ICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKTsKLSAgICBp
ZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hh
bGZfZmxvYXQiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVfaGFsZl9mbG9h
dCIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VT
X3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VT
X3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKQot
ICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJv
cGljIik7CisgICAgYXV0byYgZXh0ZW5zaW9ucyA9IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
OworICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4
dHVyZV9mbG9hdCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9F
U190ZXh0dXJlX2Zsb2F0IiB9KTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxp
dGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9KSkKKyAgICAgICAgcmVzdWx0
LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9KTsKKyAg
ICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVf
aGFsZl9mbG9hdCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9F
U190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pOworICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKEFT
Q0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIgfSkpCisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRf
bGluZWFyIiB9KTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAi
R0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIiB9KSkKKyAgICAgICAgcmVzdWx0LmFw
cGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCS0lUX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3Bp
YyIgfSk7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZCgqdGhp
cykpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1
cmVfYXRjIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQktJVF9X
RUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIiB9KTsKICAgICBpZiAoV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJX
RUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIik7CisgICAgICAgIHJlc3VsdC5h
cHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZy
dGMiIH0pOwogICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKCp0
aGlzKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3Mz
dGMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfY29tcHJl
c3NlZF90ZXh0dXJlX3MzdGMiIH0pOwogICAgIGlmIChXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9y
dGVkKCpncmFwaGljc0NvbnRleHQzRCgpKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xf
ZGVwdGhfdGV4dHVyZSIpOwotICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2xvc2VfY29udGV4dCIp
OwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfQU5HTEVf
dHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdM
X2RlYnVnX3NoYWRlcnMiKTsKLSAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19yZW5kZXJl
cl9pbmZvIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2Rl
cHRoX3RleHR1cmUiIH0pOworICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdM
X2xvc2VfY29udGV4dCIgfSk7CisgICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRl
cmFsIHsgIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIgfSkpCisgICAgICAgIHJl
c3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RlYnVnX3NoYWRlcnMiIH0pOworICAg
IHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8i
IH0pOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpCiB7CiAg
ICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVGcmFtZWJ1ZmZlckZ1
bmNQYXJhbWV0ZXJzKCJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLCB0YXJnZXQs
IGF0dGFjaG1lbnQpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIAogICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgfHwgIW1f
ZnJhbWVidWZmZXJCaW5kaW5nLT5vYmplY3QoKSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIiLCAibm8gZnJhbWVidWZmZXIgYm91bmQiKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAg
Ci0gICAgV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCA9IG1fZnJhbWVidWZmZXJCaW5kaW5nLT5n
ZXRBdHRhY2htZW50T2JqZWN0KGF0dGFjaG1lbnQpOworICAgIGF1dG8qIG9iamVjdCA9IG1fZnJh
bWVidWZmZXJCaW5kaW5nLT5nZXRBdHRhY2htZW50T2JqZWN0KGF0dGFjaG1lbnQpOwogICAgIGlm
ICghb2JqZWN0KSB7CiAgICAgICAgIGlmIChwbmFtZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6RlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSkKLSAgICAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpOwotICAgICAgICAvLyBPcGVuR0wgRVMg
Mi4wIHNwZWNpZmllcyBJTlZBTElEX0VOVU0gaW4gdGhpcyBjYXNlLCB3aGlsZSBkZXNrdG9wIEdM
Ci0gICAgICAgIC8vIHNwZWNpZmllcyBJTlZBTElEX09QRVJBVElPTi4KKyAgICAgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpOworICAg
ICAgICAvLyBPcGVuR0wgRVMgMi4wIHNwZWNpZmllcyBJTlZBTElEX0VOVU0gaW4gdGhpcyBjYXNl
LCB3aGlsZSBkZXNrdG9wIEdMIHNwZWNpZmllcyBJTlZBTElEX09QRVJBVElPTi4KICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQogICAgIAotICAgIEFTU0VSVChvYmplY3QtPmlzVGV4dHVyZSgpIHx8IG9iamVjdC0+
aXNSZW5kZXJidWZmZXIoKSk7CiAgICAgaWYgKG9iamVjdC0+aXNUZXh0dXJlKCkpIHsKICAgICAg
ICAgc3dpdGNoIChwbmFtZSkgewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRSk7CisgICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFKTsKICAgICAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
TkFNRToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8ocmVpbnRlcnByZXRfY2FzdDxX
ZWJHTFRleHR1cmUqPihvYmplY3QpKTsKKyAgICAgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHJl
aW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJlJj4oKm9iamVjdCkpOwogICAgICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEVWRUw6CiAg
ICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVY
VFVSRV9DVUJFX01BUF9GQUNFOgogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HOiB7CiAgICAgICAgICAgICBHQzNEaW50
IHZhbHVlID0gMDsKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RnJhbWVidWZmZXJBdHRhY2ht
ZW50UGFyYW1ldGVyaXYodGFyZ2V0LCBhdHRhY2htZW50LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHZh
bHVlOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUgZm9yIHRleHR1cmUg
YXR0YWNobWVudCIpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9IGVsc2UgeworICAgICAgICBB
U1NFUlQob2JqZWN0LT5pc1JlbmRlcmJ1ZmZlcigpKTsKICAgICAgICAgc3dpdGNoIChwbmFtZSkg
ewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X09CSkVDVF9UWVBFOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGljc0Nv
bnRleHQzRDo6UkVOREVSQlVGRkVSKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUik7CiAgICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUU6Ci0g
ICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5k
ZXJidWZmZXIqPihvYmplY3QpKTsKKyAgICAgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5kZXJidWZmZXImPigqb2JqZWN0KSk7CiAgICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcg
OiB7Ci0gICAgICAgICAgICBXZWJHTFJlbmRlcmJ1ZmZlciogcmVuZGVyQnVmZmVyID0gcmVpbnRl
cnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZlcio+KG9iamVjdCk7Ci0gICAgICAgICAgICBHQzNE
ZW51bSByZW5kZXJCdWZmZXJGb3JtYXQgPSByZW5kZXJCdWZmZXItPmdldEludGVybmFsRm9ybWF0
KCk7Ci0gICAgICAgICAgICBpZiAocmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4
dDNEOjpTUkdCOF9BTFBIQTgKLSAgICAgICAgICAgICAgICB8fCByZW5kZXJCdWZmZXJGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfRVRDMgotICAgICAgICAgICAg
ICAgIHx8IHJlbmRlckJ1ZmZlckZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NF
RF9TUkdCOF9BTFBIQThfRVRDMl9FQUMKLSAgICAgICAgICAgICAgICB8fCByZW5kZXJCdWZmZXJG
b3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfUFVOQ0hUSFJPVUdI
X0FMUEhBMV9FVEMyKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFw
aGljc0NvbnRleHQzRDo6U1JHQik7CisgICAgICAgICAgICBhdXRvJiByZW5kZXJCdWZmZXIgPSBy
ZWludGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyJj4oKm9iamVjdCk7CisgICAgICAgICAg
ICBhdXRvIGZvcm1hdCA9IHJlbmRlckJ1ZmZlci5nZXRJbnRlcm5hbEZvcm1hdCgpOworICAgICAg
ICAgICAgaWYgKGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6U1JHQjhfQUxQSEE4CisgICAg
ICAgICAgICAgICAgfHwgZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NS
R0I4X0VUQzIKKyAgICAgICAgICAgICAgICB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6
OkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJfRUFDCisgICAgICAgICAgICAgICAgfHwgZm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NSR0I4X1BVTkNIVEhST1VHSF9B
TFBIQTFfRVRDMikgeworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oR3JhcGhpY3NDb250ZXh0M0Q6OlNSR0IpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKKyAgICAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVB
Uik7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBmb3IgcmVuZGVyYnVm
ZmVyIGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMTE5MSwx
OSArMTE5OSwxNiBAQCBib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlRnJhbWVi
dWZmZXJGdW5jUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdAogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogICAgIHN3aXRjaCAoYXR0YWNobWVudCkgewotICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkRFUFRIX0FUVEFDSE1FTlQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9B
VFRBQ0hNRU5UOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUxfQVRU
QUNITUVOVDoKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1
bHQ6Ci0gICAgICAgIGlmIChhdHRhY2htZW50ID4gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FU
VEFDSE1FTlQwCi0gICAgICAgICAgICAmJiBhdHRhY2htZW50IDwgc3RhdGljX2Nhc3Q8R0MzRGVu
dW0+KEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCArIGdldE1heENvbG9yQXR0
YWNobWVudHMoKSkpCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgaWYgKGF0dGFjaG1lbnQg
Pj0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwICYmIGF0dGFjaG1lbnQgPCBz
dGF0aWNfY2FzdDxHQzNEZW51bT4oR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQw
ICsgZ2V0TWF4Q29sb3JBdHRhY2htZW50cygpKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVN
LCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIGF0dGFjaG1lbnQiKTsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKIH0KIAogR0MzRGludCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpnZXRNYXhEcmF3QnVmZmVycygpCkBAIC0xMzk1LDcgKzE0MDAsNyBAQCBHQzNE
ZW51bSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiYXNlSW50ZXJuYWxGb3JtYXRGcm9tSW50ZXJu
YWxGb3JtYXQoR0MzRGVudW0gaQogYm9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppc0ludGVn
ZXJGb3JtYXQoR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQpCiB7CiAgICAgLy8gRklYTUU6IGJhc2VJ
bnRlcm5hbEZvcm1hdEZyb21JbnRlcm5hbEZvcm1hdCgpIG5ldmVyIHJldHVybnMgYW55IG9mIHRo
ZXNlIGVudW1zLgotICAgIC8vIEN1cnJlbnRseSwgVGhpcyBmdW5jdGlvbiBlcnJvbmVvdXNseSBh
bHdheXMgcmV0dXJucyBmYWxzZS4KKyAgICAvLyBCZWNhdXNlIG9mIHRoYXQsIHRoaXMgZnVuY3Rp
b24gZXJyb25lb3VzbHkgYWx3YXlzIHJldHVybnMgZmFsc2UhCiAgICAgc3dpdGNoIChiYXNlSW50
ZXJuYWxGb3JtYXRGcm9tSW50ZXJuYWxGb3JtYXQoaW50ZXJuYWxmb3JtYXQpKSB7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkVEX0lOVEVHRVI6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdfSU5URUdFUjoKQEAgLTE0MDYsMTEgKzE0MTEsMTAgQEAgYm9vbCBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0Ojppc0ludGVnZXJGb3JtYXQoR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQpCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKLSAgICBj
b25zdCBpbnQgaW50WmVybyA9IDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHN3aXRj
aCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVfVEVYVFVSRToK
ICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKQEAgLTE0MjEs
NyArMTQyNSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJh
bWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUxQSEFf
QklUUzoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8obV9ib3VuZEFycmF5QnVmZmVyLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIG1f
Ym91bmRBcnJheUJ1ZmZlcjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORDoKICAg
ICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkJMRU5EX0NPTE9SOgpAQCAtMTQ0NSwxNiArMTQ0OSwxNiBAQCBXZWJHTEdl
dEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX1dSSVRFTUFTSzoKICAgICAgICAg
cmV0dXJuIGdldEJvb2xlYW5BcnJheVBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6Q09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFM6Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oUGFzc1JlZlB0cjxVaW50MzJBcnJheT4oVWludDMyQXJyYXk6OmNyZWF0ZSht
X2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5kYXRhKCksIG1fY29tcHJlc3NlZFRleHR1cmVGb3Jt
YXRzLnNpemUoKSkpKTsKKyAgICAgICAgcmV0dXJuIFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21w
cmVzc2VkVGV4dHVyZUZvcm1hdHMuZGF0YSgpLCBtX2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5z
aXplKCkpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNVTExfRkFDRToKICAgICAgICAg
cmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkNVTExfRkFDRV9NT0RFOgogICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJh
bWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNVUlJFTlRfUFJPR1JB
TToKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2N1cnJlbnRQcm9ncmFtLmdldCgpKTsK
KyAgICAgICAgcmV0dXJuIG1fY3VycmVudFByb2dyYW07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6REVQVEhfQklUUzoKICAgICAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAh
bV9hdHRyaWJ1dGVzLmRlcHRoKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhpbnRa
ZXJvKTsKKyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1l
dGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DTEVBUl9WQUxV
RToKICAgICAgICAgcmV0dXJuIGdldEZsb2F0UGFyYW1ldGVyKHBuYW1lKTsKQEAgLTE0NjksOSAr
MTQ3Myw5IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0
ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RElUSEVSOgog
ICAgICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1lbnRBcnJh
eUJ1ZmZlcigpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIobV9ib3VuZFZlcnRleEFycmF5
T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyht
X2ZyYW1lYnVmZmVyQmluZGluZy5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX2ZyYW1lYnVmZmVy
QmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUk9OVF9GQUNFOgogICAgICAg
ICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkdFTkVSQVRFX01JUE1BUF9ISU5UOgpAQCAtMTUxOSw5ICsxNTIzLDkgQEAg
V2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51
bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRURfQklUUzoKICAgICAgICAg
cmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkVOREVSQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9y
ZW5kZXJidWZmZXJCaW5kaW5nLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIG1fcmVuZGVyYnVmZmVy
QmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJFUjoKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhTdHJpbmcoIldlYktpdCBXZWJHTCIpKTsKKyAgICAgICAgcmV0
dXJuIFN0cmluZyB7IEFTQ0lJTGl0ZXJhbCB7ICJXZWJLaXQgV2ViR0wiIH0gfTsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTQU1QTEVfQlVGRkVSUzoKICAgICAgICAgcmV0dXJuIGdldElu
dFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0FNUExFX0NP
VkVSQUdFX0lOVkVSVDoKQEAgLTE1MzUsNyArMTUzOSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6U0NJU1NPUl9URVNUOgogICAgICAgICByZXR1cm4gZ2V0Qm9vbGVh
blBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0hBRElOR19M
QU5HVUFHRV9WRVJTSU9OOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCJXZWJHTCBHTFNM
IEVTIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpTSEFE
SU5HX0xBTkdVQUdFX1ZFUlNJT04pICsgIikiKTsKKyAgICAgICAgcmV0dXJuICJXZWJHTCBHTFNM
IEVTIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpTSEFE
SU5HX0xBTkdVQUdFX1ZFUlNJT04pICsgIikiOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlNURU5DSUxfQkFDS19GQUlMOgogICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0
ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQkFDS19GVU5D
OgpAQCAtMTU1Miw3ICsxNTU2LDcgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICAgICAgcmV0dXJuIGdldFVuc2ln
bmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVO
Q0lMX0JJVFM6CiAgICAgICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgJiYgIW1fYXR0cmli
dXRlcy5zdGVuY2lsKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhpbnRaZXJvKTsK
KyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBu
YW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0NMRUFSX1ZBTFVFOgog
ICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKQEAgLTE1NzUsMzggKzE1Nzks
MzggQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVUJQSVhFTF9CSVRT
OgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfMkQ6Ci0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4dHVyZTJEQmluZGlu
Zy5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVV
bml0XS50ZXh0dXJlMkRCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkVfQklORElOR19DVUJFX01BUDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3RleHR1
cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlQ3ViZU1hcEJpbmRpbmcuZ2V0KCkp
OworICAgICAgICByZXR1cm4gbV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4
dHVyZUN1YmVNYXBCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19B
TElHTk1FTlQ6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19GTElQX1lfV0VCR0w6Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8obV91bnBhY2tGbGlwWSk7CisgICAgICAgIHJldHVybiBtX3VucGFja0Zs
aXBZOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19QUkVNVUxUSVBMWV9BTFBI
QV9XRUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3VucGFja1ByZW11bHRpcGx5
QWxwaGEpOworICAgICAgICByZXR1cm4gbV91bnBhY2tQcmVtdWx0aXBseUFscGhhOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19DT0xPUlNQQUNFX0NPTlZFUlNJT05fV0VCR0w6
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lv
bik7CisgICAgICAgIHJldHVybiBtX3VucGFja0NvbG9yc3BhY2VDb252ZXJzaW9uOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFTkRPUjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhTdHJpbmcoIldlYktpdCIpKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZyB7IEFTQ0lJTGl0ZXJh
bCB7ICJXZWJLaXQiIH0gfTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJTSU9OOgot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCJXZWJHTCAyLjAgKCIgKyBtX2NvbnRleHQtPmdl
dFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTikgKyAiKSIpOworICAgICAgICByZXR1
cm4gIldlYkdMIDIuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNE
OjpWRVJTSU9OKSArICIpIjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWSUVXUE9SVDoK
ICAgICAgICAgcmV0dXJuIGdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNh
c2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURfUkVOREVSRVJfV0VCR0w6CiAgICAg
ICAgIGlmIChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCi0gICAgICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJF
UikpOworICAgICAgICAgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29u
dGV4dDNEOjpSRU5ERVJFUik7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIg
bmFtZSwgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBub3QgZW5hYmxlZCIpOwotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2Ug
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURfVkVORE9SX1dFQkdMOgogICAgICAgICBp
ZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVORE9SKSk7Cisg
ICAgICAgICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6
OlZFTkRPUik7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgV0VC
R0xfZGVidWdfcmVuZGVyZXJfaW5mbyBub3QgZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2UgRXh0ZW5zaW9u
czNEOjpNQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQ6IC8vIEVYVF90ZXh0dXJlX2ZpbHRl
cl9hbmlzb3Ryb3BpYwogICAgICAgICBpZiAobV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMp
CiAgICAgICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoRXh0ZW5zaW9uczNE
OjpNQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQpOwogICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImlu
dmFsaWQgcGFyYW1ldGVyIG5hbWUsIEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyBub3Qg
ZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQUdNRU5UX1NIQURFUl9E
RVJJVkFUSVZFX0hJTlQ6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6Ok1BWF8zRF9URVhUVVJFX1NJWkU6CkBAIC0xNjg5
LDEyICsxNjkzLDEwIEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQ
YXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1l
dGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTklGT1JNX0JVRkZFUl9P
RkZTRVRfQUxJR05NRU5UOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsK
LSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVJSQVlfQklORElORzogewotICAg
ICAgICBpZiAoIW1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkpCi0g
ICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PFdlYkdMVmVydGV4QXJy
YXlPYmplY3QqPihtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QuZ2V0KCkpKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOworICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BUlJBWV9CSU5ESU5HOgorICAgICAgICBpZiAobV9i
b3VuZFZlcnRleEFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3QoKSkKKyAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihzdGF0aWNfY2FzdDxXZWJH
TFZlcnRleEFycmF5T2JqZWN0Jj4oKm1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCkpOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMDoKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpEUkFXX0JVRkZFUjE6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RFJBV19C
VUZGRVIyOgpAQCAtMTcxMCwxNCArMTcxMiwxMCBAQCBXZWJHTEdldEluZm8gV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTI6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RFJBV19CVUZGRVIxMzoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JVRkZFUjE0
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTU6IHsKLSAgICAgICAg
R0MzRGludCB2YWx1ZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FOworICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTU6CiAgICAgICAgIGlmIChtX2ZyYW1lYnVmZmVyQmlu
ZGluZykKLSAgICAgICAgICAgIHZhbHVlID0gbV9mcmFtZWJ1ZmZlckJpbmRpbmctPmdldERyYXdC
dWZmZXIocG5hbWUpOwotICAgICAgICBlbHNlIC8vIGVtdWxhdGVkIGJhY2tidWZmZXIKLSAgICAg
ICAgICAgIHZhbHVlID0gbV9iYWNrRHJhd0J1ZmZlcjsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyh2YWx1ZSk7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBtX2ZyYW1lYnVmZmVy
QmluZGluZy0+Z2V0RHJhd0J1ZmZlcihwbmFtZSk7CisgICAgICAgIHJldHVybiBtX2JhY2tEcmF3
QnVmZmVyOyAvLyBlbXVsYXRlZCBiYWNrYnVmZmVyCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6Q09QWV9SRUFEX0JVRkZFUjoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT1BZX1dS
SVRFX0JVRkZFUjoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpQSVhFTF9QQUNLX0JVRkZF
Ul9CSU5ESU5HOiAgIApAQCAtMTczMCwxMCArMTcyOCwxMCBAQCBXZWJHTEdldEluZm8gV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORzoKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTklGT1JNX0JVRkZFUl9CSU5ESU5HOgogICAgICAg
ICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0
UGFyYW1ldGVyIiwgInBhcmFtZXRlciBuYW1lIG5vdCB5ZXQgc3VwcG9ydGVkIik7Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogfQogCkBAIC0xNzU0LDcgKzE3NTIsNyBAQCBib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OnZhbGlkYXRlSW5kZXhBcnJheUNvbnNlcnZhdGl2ZShHQzNEZW51bSB0eXBlLCB1bnNpZwogICAg
IC8vIFRoZSBjYXNlIGNvdW50PT0wIGlzIGFscmVhZHkgZGVhbHQgd2l0aCBpbiBkcmF3RWxlbWVu
dHMgYmVmb3JlIHZhbGlkYXRlSW5kZXhBcnJheUNvbnNlcnZhdGl2ZS4KICAgICBpZiAoIW51bUVs
ZW1lbnRzKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY29uc3QgQXJyYXlCdWZmZXIqIGJ1
ZmZlciA9IGVsZW1lbnRBcnJheUJ1ZmZlci0+ZWxlbWVudEFycmF5QnVmZmVyKCk7CisgICAgYXV0
byogYnVmZmVyID0gZWxlbWVudEFycmF5QnVmZmVyLT5lbGVtZW50QXJyYXlCdWZmZXIoKTsKICAg
ICBBU1NFUlQoYnVmZmVyKTsKICAgICAKICAgICBpbnQgbWF4SW5kZXggPSBlbGVtZW50QXJyYXlC
dWZmZXItPmdldENhY2hlZE1heEluZGV4KHR5cGUpOwpAQCAtMTgwNiw3ICsxODA0LDYgQEAgYm9v
bCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUJsZW5kRXF1YXRpb24oY29uc3QgY2hh
ciogZnVuY3Rpb25OYW1lLCBHQzMKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpNSU46CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TUFYOgogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCBtb2Rl
Iik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaAppbmRleCA3NTVkZTZiYmRkMjY5ODE2N2Qz
YmFhMGZkZGQzNGJiZTA2MTE1ZDU5Li44YmNmMGJlM2QzNWQyNzk0YjI2MDcxMjZiMzhhODA1NWNi
ZjY1ZjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dC5oCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIFdlYkdMVmVydGV4QXJyYXlP
YmplY3Q7CiBjbGFzcyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0IGZpbmFsIDogcHVibGljIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UgewogcHVibGljOgogICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQoSFRNTENhbnZhc0VsZW1lbnQmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKLSAgICBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiwgUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiYmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKKyAgICBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiwgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmLCBXZWJH
TENvbnRleHRBdHRyaWJ1dGVzKTsKIAogICAgIC8qIEJ1ZmZlciBvYmplY3RzICovCiAgICAgdXNp
bmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YnVmZmVyRGF0YTsKQEAgLTUyLDEwICs1Miwx
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRCdWZmZXJTdWJEYXRhKEdDM0RlbnVtIHRhcmdldCwg
bG9uZyBsb25nIHNyY0J5dGVPZmZzZXQsIFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+JiYgZHN0RGF0
YSwgR0MzRHVpbnQgZHN0T2Zmc2V0ID0gMCwgR0MzRHVpbnQgbGVuZ3RoID0gMCk7CiAgICAgCiAg
ICAgLyogRnJhbWVidWZmZXIgb2JqZWN0cyAqLwotICAgIFdlYkdMR2V0SW5mbyBnZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2ht
ZW50LCBHQzNEZW51bSBwbmFtZSkgZmluYWw7CisgICAgV2ViR0xBbnkgZ2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwg
R0MzRGVudW0gcG5hbWUpIGZpbmFsOwogICAgIHZvaWQgYmxpdEZyYW1lYnVmZmVyKEdDM0RpbnQg
c3JjWDAsIEdDM0RpbnQgc3JjWTAsIEdDM0RpbnQgc3JjWDEsIEdDM0RpbnQgc3JjWTEsIEdDM0Rp
bnQgZHN0WDAsIEdDM0RpbnQgZHN0WTAsIEdDM0RpbnQgZHN0WDEsIEdDM0RpbnQgZHN0WTEsIEdD
M0RiaXRmaWVsZCBtYXNrLCBHQzNEZW51bSBmaWx0ZXIpOwogICAgIHZvaWQgZnJhbWVidWZmZXJU
ZXh0dXJlTGF5ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEdWlu
dCB0ZXh0dXJlLCBHQzNEaW50IGxldmVsLCBHQzNEaW50IGxheWVyKTsKLSAgICBXZWJHTEdldElu
Zm8gZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldEludGVybmFs
Zm9ybWF0UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQs
IEdDM0RlbnVtIHBuYW1lKTsKICAgICB2b2lkIGludmFsaWRhdGVGcmFtZWJ1ZmZlcihHQzNEZW51
bSB0YXJnZXQsIFZlY3RvcjxHQzNEZW51bT4gYXR0YWNobWVudHMpOwogICAgIHZvaWQgaW52YWxp
ZGF0ZVN1YkZyYW1lYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgVmVjdG9yPEdDM0RlbnVtPiBhdHRh
Y2htZW50cywgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVp
IGhlaWdodCk7CiAgICAgdm9pZCByZWFkQnVmZmVyKEdDM0RlbnVtIHNyYyk7CkBAIC0xMTYsMjkg
KzExNiwyOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgLyogUXVlcnkgT2JqZWN0cyAqLwogICAgIFJl
ZlB0cjxXZWJHTFF1ZXJ5PiBjcmVhdGVRdWVyeSgpOwotICAgIHZvaWQgZGVsZXRlUXVlcnkoV2Vi
R0xRdWVyeSogcXVlcnkpOwotICAgIEdDM0Rib29sZWFuIGlzUXVlcnkoV2ViR0xRdWVyeSogcXVl
cnkpOwotICAgIHZvaWQgYmVnaW5RdWVyeShHQzNEZW51bSB0YXJnZXQsIFdlYkdMUXVlcnkqIHF1
ZXJ5KTsKKyAgICB2b2lkIGRlbGV0ZVF1ZXJ5KFdlYkdMUXVlcnkqKTsKKyAgICBHQzNEYm9vbGVh
biBpc1F1ZXJ5KFdlYkdMUXVlcnkqKTsKKyAgICB2b2lkIGJlZ2luUXVlcnkoR0MzRGVudW0gdGFy
Z2V0LCBXZWJHTFF1ZXJ5Kik7CiAgICAgdm9pZCBlbmRRdWVyeShHQzNEZW51bSB0YXJnZXQpOwog
ICAgIFJlZlB0cjxXZWJHTFF1ZXJ5PiBnZXRRdWVyeShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IHBuYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0UXVlcnlQYXJhbWV0ZXIoV2ViR0xRdWVyeSog
cXVlcnksIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBnZXRRdWVyeVBhcmFtZXRlcihX
ZWJHTFF1ZXJ5KiwgR0MzRGVudW0gcG5hbWUpOwogICAgIAogICAgIC8qIFNhbXBsZXIgT2JqZWN0
cyAqLwogICAgIFJlZlB0cjxXZWJHTFNhbXBsZXI+IGNyZWF0ZVNhbXBsZXIoKTsKLSAgICB2b2lk
IGRlbGV0ZVNhbXBsZXIoV2ViR0xTYW1wbGVyKiBzYW1wbGVyKTsKLSAgICBHQzNEYm9vbGVhbiBp
c1NhbXBsZXIoV2ViR0xTYW1wbGVyKiBzYW1wbGVyKTsKLSAgICB2b2lkIGJpbmRTYW1wbGVyKEdD
M0R1aW50IHVuaXQsIFdlYkdMU2FtcGxlciogc2FtcGxlcik7Ci0gICAgdm9pZCBzYW1wbGVyUGFy
YW1ldGVyaShXZWJHTFNhbXBsZXIqIHNhbXBsZXIsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50IHBh
cmFtKTsKLSAgICB2b2lkIHNhbXBsZXJQYXJhbWV0ZXJmKFdlYkdMU2FtcGxlciogc2FtcGxlciwg
R0MzRGVudW0gcG5hbWUsIEdDM0RmbG9hdCBwYXJhbSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFNh
bXBsZXJQYXJhbWV0ZXIoV2ViR0xTYW1wbGVyKiBzYW1wbGVyLCBHQzNEZW51bSBwbmFtZSk7Cisg
ICAgdm9pZCBkZWxldGVTYW1wbGVyKFdlYkdMU2FtcGxlciopOworICAgIEdDM0Rib29sZWFuIGlz
U2FtcGxlcihXZWJHTFNhbXBsZXIqKTsKKyAgICB2b2lkIGJpbmRTYW1wbGVyKEdDM0R1aW50IHVu
aXQsIFdlYkdMU2FtcGxlciopOworICAgIHZvaWQgc2FtcGxlclBhcmFtZXRlcmkoV2ViR0xTYW1w
bGVyKiwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQgcGFyYW0pOworICAgIHZvaWQgc2FtcGxlclBh
cmFtZXRlcmYoV2ViR0xTYW1wbGVyKiwgR0MzRGVudW0gcG5hbWUsIEdDM0RmbG9hdCBwYXJhbSk7
CisgICAgV2ViR0xBbnkgZ2V0U2FtcGxlclBhcmFtZXRlcihXZWJHTFNhbXBsZXIqLCBHQzNEZW51
bSBwbmFtZSk7CiAgICAgCiAgICAgLyogU3luYyBvYmplY3RzICovCiAgICAgUmVmUHRyPFdlYkdM
U3luYz4gZmVuY2VTeW5jKEdDM0RlbnVtIGNvbmRpdGlvbiwgR0MzRGJpdGZpZWxkIGZsYWdzKTsK
LSAgICBHQzNEYm9vbGVhbiBpc1N5bmMoV2ViR0xTeW5jKiBzeW5jKTsKLSAgICB2b2lkIGRlbGV0
ZVN5bmMoV2ViR0xTeW5jKiBzeW5jKTsKLSAgICBHQzNEZW51bSBjbGllbnRXYWl0U3luYyhXZWJH
TFN5bmMqIHN5bmMsIEdDM0RiaXRmaWVsZCBmbGFncywgR0MzRHVpbnQ2NCB0aW1lb3V0KTsKLSAg
ICB2b2lkIHdhaXRTeW5jKFdlYkdMU3luYyogc3luYywgR0MzRGJpdGZpZWxkIGZsYWdzLCBHQzNE
dWludDY0IHRpbWVvdXQpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRTeW5jUGFyYW1ldGVyKFdlYkdM
U3luYyogc3luYywgR0MzRGVudW0gcG5hbWUpOworICAgIEdDM0Rib29sZWFuIGlzU3luYyhXZWJH
TFN5bmMqKTsKKyAgICB2b2lkIGRlbGV0ZVN5bmMoV2ViR0xTeW5jKik7CisgICAgR0MzRGVudW0g
Y2xpZW50V2FpdFN5bmMoV2ViR0xTeW5jKiwgR0MzRGJpdGZpZWxkIGZsYWdzLCBHQzNEdWludDY0
IHRpbWVvdXQpOworICAgIHZvaWQgd2FpdFN5bmMoV2ViR0xTeW5jKiwgR0MzRGJpdGZpZWxkIGZs
YWdzLCBHQzNEdWludDY0IHRpbWVvdXQpOworICAgIFdlYkdMQW55IGdldFN5bmNQYXJhbWV0ZXIo
V2ViR0xTeW5jKiwgR0MzRGVudW0gcG5hbWUpOwogICAgIAogICAgIC8qIFRyYW5zZm9ybSBGZWVk
YmFjayAqLwogICAgIFJlZlB0cjxXZWJHTFRyYW5zZm9ybUZlZWRiYWNrPiBjcmVhdGVUcmFuc2Zv
cm1GZWVkYmFjaygpOwpAQCAtMTU1LDEyICsxNTUsMTIgQEAgcHVibGljOgogICAgIC8qIFVuaWZv
cm0gQnVmZmVyIE9iamVjdHMgYW5kIFRyYW5zZm9ybSBGZWVkYmFjayBCdWZmZXJzICovCiAgICAg
dm9pZCBiaW5kQnVmZmVyQmFzZShHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4LCBXZWJH
TEJ1ZmZlciogYnVmZmVyKTsKICAgICB2b2lkIGJpbmRCdWZmZXJSYW5nZShHQzNEZW51bSB0YXJn
ZXQsIEdDM0R1aW50IGluZGV4LCBXZWJHTEJ1ZmZlciogYnVmZmVyLCBHQzNEaW50NjQgb2Zmc2V0
LCBHQzNEaW50NjQgc2l6ZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEluZGV4ZWRQYXJhbWV0ZXIo
R0MzRGVudW0gdGFyZ2V0LCBHQzNEdWludCBpbmRleCk7CisgICAgV2ViR0xBbnkgZ2V0SW5kZXhl
ZFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4KTsKICAgICBVaW50MzJB
cnJheSogZ2V0VW5pZm9ybUluZGljZXMoV2ViR0xQcm9ncmFtKiwgVmVjdG9yPFN0cmluZz4gdW5p
Zm9ybU5hbWVzKTsKICAgICBJbnQzMkFycmF5KiBnZXRBY3RpdmVVbmlmb3JtcyhXZWJHTFByb2dy
YW0qLCBSZWZQdHI8VWludDMyQXJyYXk+JiYgdW5pZm9ybUluZGljZXMsIEdDM0RlbnVtIHBuYW1l
KTsKICAgICBHQzNEdWludCBnZXRVbmlmb3JtQmxvY2tJbmRleChXZWJHTFByb2dyYW0qLCBTdHJp
bmcgdW5pZm9ybUJsb2NrTmFtZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEFjdGl2ZVVuaWZvcm1C
bG9ja1BhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNEdWludCB1bmlmb3JtQmxvY2tJbmRleCwg
R0MzRGVudW0gcG5hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRBY3RpdmVVbmlmb3JtQmxvY2tO
YW1lKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50IHVuaWZvcm1CbG9ja0luZGV4KTsKKyAgICBXZWJH
TEFueSBnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRHVp
bnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBnZXRB
Y3RpdmVVbmlmb3JtQmxvY2tOYW1lKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50IHVuaWZvcm1CbG9j
a0luZGV4KTsKICAgICB2b2lkIHVuaWZvcm1CbG9ja0JpbmRpbmcoV2ViR0xQcm9ncmFtKiwgR0Mz
RHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdDM0R1aW50IHVuaWZvcm1CbG9ja0JpbmRpbmcpOwog
ICAgIAogICAgIC8qIFZlcnRleCBBcnJheSBPYmplY3RzICovCkBAIC0xNzUsNyArMTc1LDcgQEAg
cHJpdmF0ZToKICAgICAvKiBFeHRlbnNpb25zICovCiAgICAgV2ViR0xFeHRlbnNpb24qIGdldEV4
dGVuc2lvbihjb25zdCBTdHJpbmcmKSBmaW5hbDsKICAgICBWZWN0b3I8U3RyaW5nPiBnZXRTdXBw
b3J0ZWRFeHRlbnNpb25zKCkgZmluYWw7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFBhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSkgZmluYWw7CisgICAgV2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0RlbnVt
IHBuYW1lKSBmaW5hbDsKIAogICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZShHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXpl
aSBoZWlnaHQpIGZpbmFsOwogICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IG1vZGUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xBbnkuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk4MmFlZGJmOGM0NDU2MDA0YTMyMDYwMzU5MmViYjJkYTY5MzY5NWUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5jcHAKQEAgLTAs
MCArMSwxMTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xBbnkuaCIKKworI2lmIEVOQUJM
RShXRUJHTCkKKworI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTV2ViR0xC
dWZmZXIuaCIKKyNpbmNsdWRlICJKU1dlYkdMRnJhbWVidWZmZXIuaCIKKyNpbmNsdWRlICJKU1dl
YkdMUHJvZ3JhbS5oIgorI2luY2x1ZGUgIkpTV2ViR0xSZW5kZXJidWZmZXIuaCIKKyNpbmNsdWRl
ICJKU1dlYkdMVGV4dHVyZS5oIgorI2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9F
Uy5oIgorCisjaWYgRU5BQkxFKFdFQkdMMikKKyNpbmNsdWRlICJKU1dlYkdMVmVydGV4QXJyYXlP
YmplY3QuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFj
ZSBKU0M7CisKKy8vIEZJWE1FOiBUaGlzIGxpa2VseSBjYW4gYmUgYXV0b2dlbmVyYXRlZCB3aXRo
IGEgYml0IG9mIHdvcmsuCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCwgY29uc3QgV2ViR0xBbnkmIGFueSkKK3sKKyAgICByZXR1
cm4gV1RGOjpzd2l0Y2hPbihhbnksCisgICAgICAgIFtdIChzdGQ6Om51bGxwdHJfdCkgeworICAg
ICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOworICAgICAgICB9LAorICAgICAgICBbXSAoYm9vbCB2
YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIGpzQm9vbGVhbih2YWx1ZSk7CisgICAgICAgIH0s
CisgICAgICAgIFtdIChpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBqc051bWJlcih2
YWx1ZSk7CisgICAgICAgIH0sCisgICAgICAgIFtdICh1bnNpZ25lZCB2YWx1ZSkgeworICAgICAg
ICAgICAgcmV0dXJuIGpzTnVtYmVyKHZhbHVlKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10gKGxv
bmcgbG9uZyB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHZhbHVlKTsKKyAg
ICAgICAgfSwKKyAgICAgICAgW10gKGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4g
anNOdW1iZXIodmFsdWUpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFN0cmluZyYg
dmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBqc1N0cmluZ1dpdGhDYWNoZSgmc3RhdGUsIHZh
bHVlKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBWZWN0b3I8Ym9vbD4mIHZhbHVl
cykgeworICAgICAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgbGlzdDsKKyAgICAgICAgICAg
IGZvciAoYXV0byYgdmFsdWUgOiB2YWx1ZXMpCisgICAgICAgICAgICAgICAgbGlzdC5hcHBlbmQo
anNCb29sZWFuKHZhbHVlKSk7CisgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoJnN0
YXRlLCAwLCAmZ2xvYmFsT2JqZWN0LCBsaXN0KTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChj
b25zdCBSZWZQdHI8RmxvYXQzMkFycmF5PiYgYXJyYXkpIHsKKyAgICAgICAgICAgIHJldHVybiB0
b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAgICB9LAorICAg
ICAgICBbJl0gKGNvbnN0IFJlZlB0cjxJbnQzMkFycmF5PiYgYXJyYXkpIHsKKyAgICAgICAgICAg
IHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAg
ICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxVaW50OEFycmF5PiYgYXJyYXkpIHsKKyAg
ICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkp
OworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxVaW50MzJBcnJheT4mIGFy
cmF5KSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIGFy
cmF5LmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2ViR0xC
dWZmZXI+JiBidWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2Jh
bE9iamVjdCwgYnVmZmVyLmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBS
ZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4mIGJ1ZmZlcikgeworICAgICAgICAgICAgcmV0dXJuIHRv
SlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBidWZmZXIuZ2V0KCkpOworICAgICAgICB9LAorICAg
ICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTFByb2dyYW0+JiBwcm9ncmFtKSB7CisgICAgICAg
ICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHByb2dyYW0uZ2V0KCkpOwor
ICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4m
IGJ1ZmZlcikgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0
LCBidWZmZXIuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxX
ZWJHTFRleHR1cmU+JiB0ZXh0dXJlKSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUs
ICZnbG9iYWxPYmplY3QsIHRleHR1cmUuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0g
KGNvbnN0IFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiYgYXJyYXkpIHsKKyAgICAg
ICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOwor
ICAgICAgICB9CisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAgICAgLAorICAgICAgICBbJl0gKGNv
bnN0IFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiYgYXJyYXkpIHsKKyAgICAgICAgICAg
IHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAg
ICB9CisjZW5kaWYKKyAgICApOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMQW55LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjEwZDBlZjY2Y2E0NTZlODJlMDA3OWMzM2ExZjE3
NmJmMWQ1ZTNhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQW55LmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdMKQorCisj
aW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKKyNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCisj
aW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJidWZmZXIuaCIK
KyNpbmNsdWRlICJXZWJHTFRleHR1cmUuaCIKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTLmgiCisjaW5jbHVkZSA8cnVudGltZS9GbG9hdDMyQXJyYXkuaD4KKyNpbmNsdWRlIDxy
dW50aW1lL0ludDMyQXJyYXkuaD4KKyNpbmNsdWRlIDxydW50aW1lL1VpbnQzMkFycmF5Lmg+Cisj
aW5jbHVkZSA8cnVudGltZS9VaW50OEFycmF5Lmg+CisKKyNpZiBFTkFCTEUoV0VCR0wyKQorI2lu
Y2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgSlND
IHsKK2NsYXNzIEV4ZWNTdGF0ZTsKK2NsYXNzIEpTVmFsdWU7Cit9CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CisKK3VzaW5nIFdlYkdMQW55ID0gVmFy
aWFudDxzdGQ6Om51bGxwdHJfdCwgYm9vbCwgaW50LCB1bnNpZ25lZCwgbG9uZyBsb25nLCBmbG9h
dCwgU3RyaW5nLCBWZWN0b3I8Ym9vbD4sCisgICAgUmVmUHRyPEZsb2F0MzJBcnJheT4sCisgICAg
UmVmUHRyPEludDMyQXJyYXk+LAorICAgIFJlZlB0cjxVaW50MzJBcnJheT4sCisgICAgUmVmUHRy
PFVpbnQ4QXJyYXk+LAorICAgIFJlZlB0cjxXZWJHTEJ1ZmZlcj4sCisgICAgUmVmUHRyPFdlYkdM
RnJhbWVidWZmZXI+LAorICAgIFJlZlB0cjxXZWJHTFByb2dyYW0+LAorICAgIFJlZlB0cjxXZWJH
TFJlbmRlcmJ1ZmZlcj4sCisgICAgUmVmUHRyPFdlYkdMVGV4dHVyZT4sCisgICAgUmVmUHRyPFdl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVM+CisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAsIFJlZlB0
cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PgorI2VuZGlmCis+OworCitKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSYsIEpTRE9NR2xvYmFsT2JqZWN0JiwgY29uc3QgV2ViR0xBbnkmKTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAppbmRleCAyMTMzZjMzZWZjOGNlMDk4
N2I0OTgzM2NiYzEwZmM3NTkxMmEwODIyLi5iNzlhN2I2ZmE3NTIzYjMyYmNlMmM4YzFlMWNiNjZk
MWM3MWVjNGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENv
bnRleHRHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0R3JvdXAuY3BwCkBAIC00OSw0MyArNDksNDAgQEAgV2ViR0xDb250ZXh0R3JvdXA6On5XZWJH
TENvbnRleHRHcm91cCgpCiAgICAgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpOwogfQogCi1H
cmFwaGljc0NvbnRleHQzRCogV2ViR0xDb250ZXh0R3JvdXA6OmdldEFHcmFwaGljc0NvbnRleHQz
RCgpCitHcmFwaGljc0NvbnRleHQzRCYgV2ViR0xDb250ZXh0R3JvdXA6OmdldEFHcmFwaGljc0Nv
bnRleHQzRCgpCiB7CiAgICAgQVNTRVJUKCFtX2NvbnRleHRzLmlzRW1wdHkoKSk7Ci0gICAgSGFz
aFNldDxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKj46Oml0ZXJhdG9yIGl0ID0gbV9jb250ZXh0
cy5iZWdpbigpOwotICAgIHJldHVybiAoKml0KS0+Z3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICBy
ZXR1cm4gKigqbV9jb250ZXh0cy5iZWdpbigpKS0+Z3JhcGhpY3NDb250ZXh0M0QoKTsKIH0KIAot
dm9pZCBXZWJHTENvbnRleHRHcm91cDo6YWRkQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlKiBjb250ZXh0KQordm9pZCBXZWJHTENvbnRleHRHcm91cDo6YWRkQ29udGV4dChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQogewotICAgIG1fY29udGV4dHMuYWRkKGNvbnRl
eHQpOworICAgIG1fY29udGV4dHMuYWRkKCZjb250ZXh0KTsKIH0KIAotdm9pZCBXZWJHTENvbnRl
eHRHcm91cDo6cmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjb250ZXh0
KQordm9pZCBXZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJiBjb250ZXh0KQogewogICAgIC8vIFdlIG11c3QgY2FsbCBkZXRhY2hBbmRSZW1v
dmVBbGxPYmplY3RzIGJlZm9yZSByZW1vdmluZyB0aGUgbGFzdCBjb250ZXh0LgotICAgIGlmICht
X2NvbnRleHRzLnNpemUoKSA9PSAxICYmIG1fY29udGV4dHMuY29udGFpbnMoY29udGV4dCkpCisg
ICAgaWYgKG1fY29udGV4dHMuc2l6ZSgpID09IDEgJiYgbV9jb250ZXh0cy5jb250YWlucygmY29u
dGV4dCkpCiAgICAgICAgIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMoKTsKIAotICAgIG1fY29u
dGV4dHMucmVtb3ZlKGNvbnRleHQpOworICAgIG1fY29udGV4dHMucmVtb3ZlKCZjb250ZXh0KTsK
IH0KIAotdm9pZCBXZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlT2JqZWN0KFdlYkdMU2hhcmVkT2Jq
ZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMQ29udGV4dEdyb3VwOjpyZW1vdmVPYmplY3QoV2ViR0xT
aGFyZWRPYmplY3QmIG9iamVjdCkKIHsKLSAgICBtX2dyb3VwT2JqZWN0cy5yZW1vdmUob2JqZWN0
KTsKKyAgICBtX2dyb3VwT2JqZWN0cy5yZW1vdmUoJm9iamVjdCk7CiB9CiAKLXZvaWQgV2ViR0xD
b250ZXh0R3JvdXA6OmFkZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0KQordm9pZCBX
ZWJHTENvbnRleHRHcm91cDo6YWRkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0JiBvYmplY3QpCiB7
Ci0gICAgbV9ncm91cE9iamVjdHMuYWRkKG9iamVjdCk7CisgICAgbV9ncm91cE9iamVjdHMuYWRk
KCZvYmplY3QpOwogfQogCiB2b2lkIFdlYkdMQ29udGV4dEdyb3VwOjpkZXRhY2hBbmRSZW1vdmVB
bGxPYmplY3RzKCkKIHsKLSAgICB3aGlsZSAoIW1fZ3JvdXBPYmplY3RzLmlzRW1wdHkoKSkgewot
ICAgICAgICBIYXNoU2V0PFdlYkdMU2hhcmVkT2JqZWN0Kj46Oml0ZXJhdG9yIGl0ID0gbV9ncm91
cE9iamVjdHMuYmVnaW4oKTsKLSAgICAgICAgKCppdCktPmRldGFjaENvbnRleHRHcm91cCgpOwot
ICAgIH0KKyAgICB3aGlsZSAoIW1fZ3JvdXBPYmplY3RzLmlzRW1wdHkoKSkKKyAgICAgICAgKCpt
X2dyb3VwT2JqZWN0cy5iZWdpbigpKS0+ZGV0YWNoQ29udGV4dEdyb3VwKCk7CiB9CiAKIHZvaWQg
V2ViR0xDb250ZXh0R3JvdXA6Omxvc2VDb250ZXh0R3JvdXAoV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6TG9zdENvbnRleHRNb2RlIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xDb250ZXh0R3JvdXAuaAppbmRleCA5ZDAxMGJmY2MyMDk5NmExNDY0ODU3YWZjZWVm
M2M0YWE3YTZiOWI3Li5iMGFmNjJmZDRhZWE2ZDdjYmUxYzZjNjJhYmUxNDVlYzU3NjIwM2Q1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKQEAg
LTI2LDI4ICsyNiwyMSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdyYXBoaWNzQ29u
dGV4dDNEOwotY2xhc3MgV2ViR0xFeHRlbnNpb247Ci1jbGFzcyBXZWJHTFNoYXJlZE9iamVjdDsK
LWNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7Ci0KIGNsYXNzIFdlYkdMQ29udGV4dEdy
b3VwIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR0xDb250ZXh0R3JvdXA+IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPFdlYkdMQ29udGV4dEdyb3VwPiBjcmVhdGUoKTsKICAgICB+V2Vi
R0xDb250ZXh0R3JvdXAoKTsKIAotICAgIHZvaWQgYWRkQ29udGV4dChXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlKik7Ci0gICAgdm9pZCByZW1vdmVDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UqKTsKKyAgICB2b2lkIGFkZENvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYp
OworICAgIHZvaWQgcmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CiAK
LSAgICB2b2lkIGFkZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCopOwotICAgIHZvaWQgcmVtb3Zl
T2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Kik7CisgICAgdm9pZCBhZGRPYmplY3QoV2ViR0xTaGFy
ZWRPYmplY3QmKTsKKyAgICB2b2lkIHJlbW92ZU9iamVjdChXZWJHTFNoYXJlZE9iamVjdCYpOwog
Ci0gICAgR3JhcGhpY3NDb250ZXh0M0QqIGdldEFHcmFwaGljc0NvbnRleHQzRCgpOworICAgIEdy
YXBoaWNzQ29udGV4dDNEJiBnZXRBR3JhcGhpY3NDb250ZXh0M0QoKTsKIAogICAgIHZvaWQgbG9z
ZUNvbnRleHRHcm91cChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpMb3N0Q29udGV4dE1vZGUp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0
LmNwcAppbmRleCA1MjNlNmU2NDJkNzQ5YjYwMjJmMzc3M2E4OGVkZjRlYTBlY2I5YmI4Li4wYjg3
Y2ZiNGQyNDNjOTUzZTkwY2VjOWM0NDc3YzJmZWQ5MjhkZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgV2ViR0xDb250ZXh0T2JqZWN0OjpXZWJHTENvbnRleHRPYmplY3QoV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYgY29udGV4dCkKIFdlYkdMQ29udGV4dE9iamVjdDo6fldlYkdMQ29udGV4dE9i
amVjdCgpCiB7CiAgICAgaWYgKG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5yZW1vdmVD
b250ZXh0T2JqZWN0KHRoaXMpOworICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNvbnRleHRPYmpl
Y3QoKnRoaXMpOwogfQogCiB2b2lkIFdlYkdMQ29udGV4dE9iamVjdDo6ZGV0YWNoQ29udGV4dCgp
CkBAIC01MCw4ICs1MCw4IEBAIHZvaWQgV2ViR0xDb250ZXh0T2JqZWN0OjpkZXRhY2hDb250ZXh0
KCkKICAgICBkZXRhY2goKTsKICAgICBpZiAobV9jb250ZXh0KSB7CiAgICAgICAgIGRlbGV0ZU9i
amVjdChtX2NvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNEKCkpOwotICAgICAgICBtX2NvbnRleHQt
PnJlbW92ZUNvbnRleHRPYmplY3QodGhpcyk7Ci0gICAgICAgIG1fY29udGV4dCA9IDA7CisgICAg
ICAgIG1fY29udGV4dC0+cmVtb3ZlQ29udGV4dE9iamVjdCgqdGhpcyk7CisgICAgICAgIG1fY29u
dGV4dCA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xHZXRJbmZvLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGVhZDFjZmQ2
Mzc0MmIwMGQ1MjQyZGU3MTk1NzIzYWIzZWYzZDFlYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdl
dEluZm8uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lm
IEVOQUJMRShXRUJHTCkKLQotI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgotCi0jaW5jbHVkZSA8
cnVudGltZS9GbG9hdDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL0ludDMyQXJyYXkuaD4K
LSNpbmNsdWRlIDxydW50aW1lL1VpbnQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9VaW50
OEFycmF5Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdl
dEluZm8oYm9vbCB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZUJvb2wpCi0gICAgLCBtX2Jvb2wo
dmFsdWUpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25l
ZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0
SW5mbyhjb25zdCBib29sKiB2YWx1ZSwgaW50IHNpemUpCi0gICAgOiBtX3R5cGUoa1R5cGVCb29s
QXJyYXkpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2lu
dCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotewotICAgIGlm
ICghdmFsdWUgfHwgc2l6ZSA8PTApCi0gICAgICAgIHJldHVybjsKLSAgICBtX2Jvb2xBcnJheS5y
ZXNpemUoc2l6ZSk7Ci0gICAgZm9yIChpbnQgaWkgPSAwOyBpaSA8IHNpemU7ICsraWkpCi0gICAg
ICAgIG1fYm9vbEFycmF5W2lpXSA9IHZhbHVlW2lpXTsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJH
TEdldEluZm8oZmxvYXQgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVGbG9hdCkKLSAgICAsIG1f
Ym9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQodmFsdWUpCi0gICAgLCBtX2ludCgwKQotICAgICwg
bV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86
OldlYkdMR2V0SW5mbyhpbnQgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVJbnQpCi0gICAgLCBt
X2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCh2YWx1ZSkKLSAgICAs
IG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLXsKLX0KLQotV2ViR0xHZXRJbmZv
OjpXZWJHTEdldEluZm8oKQotICAgIDogbV90eXBlKGtUeXBlTnVsbCkKLSAgICAsIG1fYm9vbChm
YWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVk
SW50KDApCi0gICAgLCBtX2ludDY0KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJ
bmZvKGNvbnN0IFN0cmluZyYgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVTdHJpbmcpCi0gICAg
LCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwg
bV9zdHJpbmcodmFsdWUpCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDAp
Ci17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKHVuc2lnbmVkIGludCB2YWx1ZSkK
LSAgICA6IG1fdHlwZShrVHlwZVVuc2lnbmVkSW50KQotICAgICwgbV9ib29sKGZhbHNlKQotICAg
ICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQodmFsdWUp
Ci0gICAgLCBtX2ludDY0KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKGxv
bmcgbG9uZyB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZUludDY0KQotICAgICwgbV9ib29sKGZh
bHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJ
bnQoMCkKLSAgICAsIG1faW50NjQodmFsdWUpCi17Ci19Ci0KLQotV2ViR0xHZXRJbmZvOjpXZWJH
TEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5
cGVXZWJHTEJ1ZmZlcikKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAg
ICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0g
ICAgLCBtX3dlYmdsQnVmZmVyKHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0
SW5mbyhQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVX
ZWJHTEZsb2F0QXJyYXkpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0g
ICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQot
ICAgICwgbV93ZWJnbEZsb2F0QXJyYXkodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2Vi
R0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4gdmFsdWUpCi0gICAgOiBtX3R5
cGUoa1R5cGVXZWJHTEZyYW1lYnVmZmVyKQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9m
bG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1f
aW50NjQoMCkKLSAgICAsIG1fd2ViZ2xGcmFtZWJ1ZmZlcih2YWx1ZSkKLXsKLX0KLQotV2ViR0xH
ZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxJbnQzMkFycmF5PiB2YWx1ZSkKLSAgICA6
IG1fdHlwZShrVHlwZVdlYkdMSW50QXJyYXkpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBt
X2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwg
bV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbEludEFycmF5KHZhbHVlKQotewotfQotCi1XZWJHTEdl
dEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUHJvZ3JhbT4gdmFsdWUpCi0gICAg
OiBtX3R5cGUoa1R5cGVXZWJHTFByb2dyYW0pCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBt
X2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwg
bV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbFByb2dyYW0odmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0
SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+IHZhbHVlKQot
ICAgIDogbV90eXBlKGtUeXBlV2ViR0xSZW5kZXJidWZmZXIpCi0gICAgLCBtX2Jvb2woZmFsc2Up
Ci0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgw
KQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbFJlbmRlcmJ1ZmZlcih2YWx1ZSkKLXsK
LX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+
IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xUZXh0dXJlKQotICAgICwgbV9ib29sKGZh
bHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJ
bnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xUZXh0dXJlKHZhbHVlKQotewot
fQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHZh
bHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xVbnNpZ25lZEJ5dGVBcnJheSkKLSAgICAsIG1f
Ym9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vu
c2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmdsVW5zaWduZWRCeXRl
QXJyYXkodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQ
dHI8VWludDMyQXJyYXk+IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xVbnNpZ25lZElu
dEFycmF5KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9p
bnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1f
d2ViZ2xVbnNpZ25lZEludEFycmF5KHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdM
R2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IHZhbHVlKQotICAg
IDogbV90eXBlKGtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUykKLSAgICAsIG1fYm9vbChm
YWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVk
SW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3RP
RVModmFsdWUpCi17Ci19Ci0KLSNpZiBFTkFCTEUoV0VCR0wyKQotV2ViR0xHZXRJbmZvOjpXZWJH
TEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiB2YWx1ZSkKLSAgICA6
IG1fdHlwZShrVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3QpCi0gICAgLCBtX2Jvb2woZmFsc2Up
Ci0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgw
KQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbFZlcnRleEFycmF5T2JqZWN0KHZhbHVl
KQotewotfQotI2VuZGlmCi0KLVdlYkdMR2V0SW5mbzo6fldlYkdMR2V0SW5mbygpCi17Ci19Ci0K
LVdlYkdMR2V0SW5mbzo6VHlwZSBXZWJHTEdldEluZm86OmdldFR5cGUoKSBjb25zdAotewotICAg
IHJldHVybiBtX3R5cGU7Ci19Ci0KLWJvb2wgV2ViR0xHZXRJbmZvOjpnZXRCb29sKCkgY29uc3QK
LXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlQm9vbCk7Ci0gICAgcmV0dXJuIG1fYm9v
bDsKLX0KLQotY29uc3QgVmVjdG9yPGJvb2w+JiBXZWJHTEdldEluZm86OmdldEJvb2xBcnJheSgp
IGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZUJvb2xBcnJheSk7Ci0gICAg
cmV0dXJuIG1fYm9vbEFycmF5OwotfQotCi1mbG9hdCBXZWJHTEdldEluZm86OmdldEZsb2F0KCkg
Y29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlRmxvYXQpOwotICAgIHJldHVy
biBtX2Zsb2F0OwotfQotCi1pbnQgV2ViR0xHZXRJbmZvOjpnZXRJbnQoKSBjb25zdAotewotICAg
IEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVJbnQpOwotICAgIHJldHVybiBtX2ludDsKLX0KLQot
Y29uc3QgU3RyaW5nJiBXZWJHTEdldEluZm86OmdldFN0cmluZygpIGNvbnN0Ci17Ci0gICAgQVNT
RVJUKGdldFR5cGUoKSA9PSBrVHlwZVN0cmluZyk7Ci0gICAgcmV0dXJuIG1fc3RyaW5nOwotfQot
Ci11bnNpZ25lZCBpbnQgV2ViR0xHZXRJbmZvOjpnZXRVbnNpZ25lZEludCgpIGNvbnN0Ci17Ci0g
ICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVVuc2lnbmVkSW50KTsKLSAgICByZXR1cm4gbV91
bnNpZ25lZEludDsKLX0KLQotbG9uZyBsb25nIFdlYkdMR2V0SW5mbzo6Z2V0SW50NjQoKSBjb25z
dAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVJbnQ2NCk7Ci0gICAgcmV0dXJuIG1f
aW50NjQ7Ci19Ci0KLVdlYkdMQnVmZmVyKiBXZWJHTEdldEluZm86OmdldFdlYkdMQnVmZmVyKCkg
Y29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xCdWZmZXIpOwotICAg
IHJldHVybiBtX3dlYmdsQnVmZmVyLmdldCgpOwotfQotCi1GbG9hdDMyQXJyYXkqIFdlYkdMR2V0
SW5mbzo6Z2V0V2ViR0xGbG9hdEFycmF5KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgp
ID09IGtUeXBlV2ViR0xGbG9hdEFycmF5KTsKLSAgICByZXR1cm4gbV93ZWJnbEZsb2F0QXJyYXku
Z2V0KCk7Ci19Ci0KLVdlYkdMRnJhbWVidWZmZXIqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xGcmFt
ZWJ1ZmZlcigpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMRnJh
bWVidWZmZXIpOwotICAgIHJldHVybiBtX3dlYmdsRnJhbWVidWZmZXIuZ2V0KCk7Ci19Ci0KLUlu
dDMyQXJyYXkqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xJbnRBcnJheSgpIGNvbnN0Ci17Ci0gICAg
QVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMSW50QXJyYXkpOwotICAgIHJldHVybiBtX3dl
YmdsSW50QXJyYXkuZ2V0KCk7Ci19Ci0KLVdlYkdMUHJvZ3JhbSogV2ViR0xHZXRJbmZvOjpnZXRX
ZWJHTFByb2dyYW0oKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJH
TFByb2dyYW0pOwotICAgIHJldHVybiBtX3dlYmdsUHJvZ3JhbS5nZXQoKTsKLX0KLQotV2ViR0xS
ZW5kZXJidWZmZXIqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xSZW5kZXJidWZmZXIoKSBjb25zdAot
ewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTFJlbmRlcmJ1ZmZlcik7Ci0gICAg
cmV0dXJuIG1fd2ViZ2xSZW5kZXJidWZmZXIuZ2V0KCk7Ci19Ci0KLVdlYkdMVGV4dHVyZSogV2Vi
R0xHZXRJbmZvOjpnZXRXZWJHTFRleHR1cmUoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBl
KCkgPT0ga1R5cGVXZWJHTFRleHR1cmUpOwotICAgIHJldHVybiBtX3dlYmdsVGV4dHVyZS5nZXQo
KTsKLX0KLQotVWludDhBcnJheSogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTFVuc2lnbmVkQnl0ZUFy
cmF5KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xVbnNpZ25l
ZEJ5dGVBcnJheSk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xVbnNpZ25lZEJ5dGVBcnJheS5nZXQoKTsK
LX0KLQotVWludDMyQXJyYXkqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xVbnNpZ25lZEludEFycmF5
KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xVbnNpZ25lZElu
dEFycmF5KTsKLSAgICByZXR1cm4gbV93ZWJnbFVuc2lnbmVkSW50QXJyYXkuZ2V0KCk7Ci19Ci0K
LVdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMpOwotICAgIHJldHVybiBtX3dlYmdsVmVydGV4QXJyYXlP
YmplY3RPRVMuZ2V0KCk7Ci19Ci0KLSNpZiBFTkFCTEUoV0VCR0wyKQotV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdCogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTFZlcnRleEFycmF5T2JqZWN0KCkgY29uc3QK
LXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCk7
Ci0gICAgcmV0dXJuIG1fd2ViZ2xWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKTsKLX0KLSNlbmRpZgot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyNmY2OTNjNWQ3NjM2MjIzZWQ1Y2FlM2MzOWZiNjAwM2JhZjc4ZmNhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oCisrKyAvZGV2L251bGwKQEAgLTEsMTU2ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKLSNpbmNsdWRlICJXZWJHTEZyYW1lYnVm
ZmVyLmgiCi0jaW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCi0jaW5jbHVkZSAiV2ViR0xSZW5kZXJi
dWZmZXIuaCIKLSNpbmNsdWRlICJXZWJHTFRleHR1cmUuaCIKLSNpZiBFTkFCTEUoV0VCR0wyKQot
I2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIKLSNlbmRpZgotI2luY2x1ZGUgIldl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Zsb2F0MzJBcnJh
eS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSW50MzJBcnJheS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUv
VWludDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL1VpbnQ4QXJyYXkuaD4KLSNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBBIHRhZ2dl
ZCB1bmlvbiByZXByZXNlbnRpbmcgdGhlIHJlc3VsdCBvZiBnZXQgcXVlcmllcyBsaWtlCi0vLyBn
ZXRQYXJhbWV0ZXIgKGVuY29tcGFzc2luZyBnZXRCb29sZWFudiwgZ2V0SW50ZWdlcnYsIGdldEZs
b2F0dikgYW5kCi0vLyBzaW1pbGFyIHZhcmlhbnRzLiBGb3IgcmVmZXJlbmNlIGNvdW50ZWQgdHlw
ZXMsIGluY3JlbWVudHMgYW5kCi0vLyBkZWNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgb2Yg
dGhlIHRhcmdldCBvYmplY3QuCi0KLWNsYXNzIFdlYkdMR2V0SW5mbyBmaW5hbCB7Ci1wdWJsaWM6
Ci0gICAgZW51bSBUeXBlIHsKLSAgICAgICAga1R5cGVCb29sLAotICAgICAgICBrVHlwZUJvb2xB
cnJheSwKLSAgICAgICAga1R5cGVGbG9hdCwKLSAgICAgICAga1R5cGVJbnQsCi0gICAgICAgIGtU
eXBlTnVsbCwKLSAgICAgICAga1R5cGVTdHJpbmcsCi0gICAgICAgIGtUeXBlVW5zaWduZWRJbnQs
Ci0gICAgICAgIGtUeXBlSW50NjQsCi0gICAgICAgIGtUeXBlV2ViR0xCdWZmZXIsCi0gICAgICAg
IGtUeXBlV2ViR0xGbG9hdEFycmF5LAotICAgICAgICBrVHlwZVdlYkdMRnJhbWVidWZmZXIsCi0g
ICAgICAgIGtUeXBlV2ViR0xJbnRBcnJheSwKLSAgICAgICAga1R5cGVXZWJHTE9iamVjdEFycmF5
LAotICAgICAgICBrVHlwZVdlYkdMUHJvZ3JhbSwKLSAgICAgICAga1R5cGVXZWJHTFJlbmRlcmJ1
ZmZlciwKLSAgICAgICAga1R5cGVXZWJHTFRleHR1cmUsCi0gICAgICAgIGtUeXBlV2ViR0xVbnNp
Z25lZEJ5dGVBcnJheSwKLSAgICAgICAga1R5cGVXZWJHTFVuc2lnbmVkSW50QXJyYXksCi0gICAg
ICAgIGtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUywKLSAgICAgICAga1R5cGVXZWJHTFZl
cnRleEFycmF5T2JqZWN0LAotICAgIH07Ci0KLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oYm9v
bCB2YWx1ZSk7Ci0gICAgV2ViR0xHZXRJbmZvKGNvbnN0IGJvb2wqIHZhbHVlLCBpbnQgc2l6ZSk7
Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKGZsb2F0IHZhbHVlKTsKLSAgICBleHBsaWNpdCBX
ZWJHTEdldEluZm8oaW50IHZhbHVlKTsKLSAgICAvLyBSZXByZXNlbnRzIHRoZSBudWxsIHZhbHVl
IGFuZCB0eXBlLgotICAgIFdlYkdMR2V0SW5mbygpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5m
byhjb25zdCBTdHJpbmcmIHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8odW5zaWdu
ZWQgaW50IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8obG9uZyBsb25nIHZhbHVl
KTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gdmFs
dWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4g
dmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMRnJhbWVi
dWZmZXI+IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxJbnQz
MkFycmF5PiB2YWx1ZSk7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudCBXZWJHTE9iamVjdEFycmF5
Ci0gICAgLy8gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xPYmplY3RBcnJheT4gdmFsdWUp
OwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUHJvZ3JhbT4gdmFs
dWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUmVuZGVyYnVm
ZmVyPiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xU
ZXh0dXJlPiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWlu
dDhBcnJheT4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFVp
bnQzMkFycmF5PiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gdmFsdWUpOwotI2lmIEVOQUJMRShXRUJHTDIpCi0g
ICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dD4gdmFsdWUpOwotI2VuZGlmCi0KLSAgICB+V2ViR0xHZXRJbmZvKCk7Ci0KLSAgICBUeXBlIGdl
dFR5cGUoKSBjb25zdDsKLQotICAgIGJvb2wgZ2V0Qm9vbCgpIGNvbnN0OwotICAgIGNvbnN0IFZl
Y3Rvcjxib29sPiYgZ2V0Qm9vbEFycmF5KCkgY29uc3Q7Ci0gICAgZmxvYXQgZ2V0RmxvYXQoKSBj
b25zdDsKLSAgICBpbnQgZ2V0SW50KCkgY29uc3Q7Ci0gICAgY29uc3QgU3RyaW5nJiBnZXRTdHJp
bmcoKSBjb25zdDsKLSAgICB1bnNpZ25lZCBpbnQgZ2V0VW5zaWduZWRJbnQoKSBjb25zdDsKLSAg
ICBsb25nIGxvbmcgZ2V0SW50NjQoKSBjb25zdDsKLSAgICBXZWJHTEJ1ZmZlciogZ2V0V2ViR0xC
dWZmZXIoKSBjb25zdDsKLSAgICBGbG9hdDMyQXJyYXkqIGdldFdlYkdMRmxvYXRBcnJheSgpIGNv
bnN0OwotICAgIFdlYkdMRnJhbWVidWZmZXIqIGdldFdlYkdMRnJhbWVidWZmZXIoKSBjb25zdDsK
LSAgICBJbnQzMkFycmF5KiBnZXRXZWJHTEludEFycmF5KCkgY29uc3Q7Ci0gICAgLy8gRklYTUU6
IGltcGxlbWVudCBXZWJHTE9iamVjdEFycmF5Ci0gICAgLy8gV2ViR0xPYmplY3RBcnJheSogZ2V0
V2ViR0xPYmplY3RBcnJheSgpIGNvbnN0OwotICAgIFdlYkdMUHJvZ3JhbSogZ2V0V2ViR0xQcm9n
cmFtKCkgY29uc3Q7Ci0gICAgV2ViR0xSZW5kZXJidWZmZXIqIGdldFdlYkdMUmVuZGVyYnVmZmVy
KCkgY29uc3Q7Ci0gICAgV2ViR0xUZXh0dXJlKiBnZXRXZWJHTFRleHR1cmUoKSBjb25zdDsKLSAg
ICBVaW50OEFycmF5KiBnZXRXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KCkgY29uc3Q7Ci0gICAgVWlu
dDMyQXJyYXkqIGdldFdlYkdMVW5zaWduZWRJbnRBcnJheSgpIGNvbnN0OwotICAgIFdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMqIGdldFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKSBjb25zdDsK
LSNpZiBFTkFCTEUoV0VCR0wyKQotICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIGdldFdlYkdM
VmVydGV4QXJyYXlPYmplY3QoKSBjb25zdDsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIFR5cGUg
bV90eXBlOwotICAgIGJvb2wgbV9ib29sOwotICAgIFZlY3Rvcjxib29sPiBtX2Jvb2xBcnJheTsK
LSAgICBmbG9hdCBtX2Zsb2F0OwotICAgIGludCBtX2ludDsKLSAgICBTdHJpbmcgbV9zdHJpbmc7
Ci0gICAgdW5zaWduZWQgaW50IG1fdW5zaWduZWRJbnQ7Ci0gICAgbG9uZyBsb25nIG1faW50NjQ7
Ci0gICAgUmVmUHRyPFdlYkdMQnVmZmVyPiBtX3dlYmdsQnVmZmVyOwotICAgIFJlZlB0cjxGbG9h
dDMyQXJyYXk+IG1fd2ViZ2xGbG9hdEFycmF5OwotICAgIFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVy
PiBtX3dlYmdsRnJhbWVidWZmZXI7Ci0gICAgUmVmUHRyPEludDMyQXJyYXk+IG1fd2ViZ2xJbnRB
cnJheTsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50IFdlYkdMT2JqZWN0QXJyYXkKLSAgICAvLyBS
ZWZQdHI8V2ViR0xPYmplY3RBcnJheT4gbV93ZWJnbE9iamVjdEFycmF5OwotICAgIFJlZlB0cjxX
ZWJHTFByb2dyYW0+IG1fd2ViZ2xQcm9ncmFtOwotICAgIFJlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZl
cj4gbV93ZWJnbFJlbmRlcmJ1ZmZlcjsKLSAgICBSZWZQdHI8V2ViR0xUZXh0dXJlPiBtX3dlYmds
VGV4dHVyZTsKLSAgICBSZWZQdHI8VWludDhBcnJheT4gbV93ZWJnbFVuc2lnbmVkQnl0ZUFycmF5
OwotICAgIFJlZlB0cjxVaW50MzJBcnJheT4gbV93ZWJnbFVuc2lnbmVkSW50QXJyYXk7Ci0gICAg
UmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IG1fd2ViZ2xWZXJ0ZXhBcnJheU9iamVj
dE9FUzsKLSNpZiBFTkFCTEUoV0VCR0wyKQotICAgIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0PiBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3Q7Ci0jZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGIwNmQ2YzljODZhMzE2YzIwMTk5MzVjZTg0MTM0ODA5
ZTMzNDE2YWYuLjc4NGFiYjQ0NjNmODBlYmFhNjYzNjQ0YWYxODYxZDk0MDQ2NTQ5OGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmNwcApAQCAtMjQsOSArMjQsOSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKLSNpbmNs
dWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKIAogI2luY2x1ZGUgIkFOR0xFSW5zdGFuY2Vk
QXJyYXlzLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKQEAgLTcwLDExOSArNzAsMTIxIEBA
IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6V2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNF
bGVtZW50JiBwYXNzZWRDYW52YXMsIEdyCiB7CiB9CiAKLVdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFBh
c3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsCi0gICAgR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpIDogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShwYXNz
ZWRDYW52YXMsIGNvbnRleHQsIGF0dHJpYnV0ZXMpCitXZWJHTFJlbmRlcmluZ0NvbnRleHQ6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLCBSZWY8
R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
IGF0dHJpYnV0ZXMpCisgICAgOiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKHBhc3NlZENhbnZh
cywgV1RGTW92ZShjb250ZXh0KSwgYXR0cmlidXRlcykKIHsKICAgICBpbml0aWFsaXplVmVydGV4
QXJyYXlPYmplY3RzKCk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFs
aXplVmVydGV4QXJyYXlPYmplY3RzKCkKIHsKLSAgICBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVj
dCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmNyZWF0ZSgqdGhpcywgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUzo6VkFPVHlwZURlZmF1bHQpOwotICAgIGFkZENvbnRleHRPYmplY3QobV9k
ZWZhdWx0VmVydGV4QXJyYXlPYmplY3QuZ2V0KCkpOworICAgIG1fZGVmYXVsdFZlcnRleEFycmF5
T2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKCp0aGlzLCBXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTOjpUeXBlOjpEZWZhdWx0KTsKKyAgICBhZGRDb250ZXh0T2JqZWN0
KCptX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCk7CiAgICAgbV9ib3VuZFZlcnRleEFycmF5T2Jq
ZWN0ID0gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiAgICAgaWYgKCFpc0dMRVMyQ29tcGxp
YW50KCkpCiAgICAgICAgIGluaXRWZXJ0ZXhBdHRyaWIwKCk7CiB9CiAKK3N0YXRpYyBib29sIGVu
YWJsZVN1cHBvcnRlZEV4dGVuc2lvbihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0
LCBjb25zdCBjaGFyKiBsaXRlcmFsKQoreworICAgIEFTU0VSVChjb250ZXh0LmdyYXBoaWNzQ29u
dGV4dDNEKCkpOworICAgIGF1dG8mIGV4dGVuc2lvbnMgPSBjb250ZXh0LmdyYXBoaWNzQ29udGV4
dDNEKCktPmdldEV4dGVuc2lvbnMoKTsKKyAgICBpZiAoIWV4dGVuc2lvbnMuc3VwcG9ydHMoQVND
SUlMaXRlcmFsIHsgbGl0ZXJhbCB9KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGV4dGVu
c2lvbnMuZW5zdXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyBsaXRlcmFsIH0pOworICAgIHJldHVy
biB0cnVlOworfQorCiBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRF
eHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQ
ZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIAotICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfYmxlbmRfbWlubWF4IikKLSAgICAgICAgJiYgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9ibGVuZF9taW5tYXgiKSkg
eworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfYmxlbmRfbWlubWF4
IikpIHsKICAgICAgICAgaWYgKCFtX2V4dEJsZW5kTWluTWF4KSB7Ci0gICAgICAgICAgICBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9FWFRfYmxlbmRfbWlubWF4
Iik7Ci0gICAgICAgICAgICBtX2V4dEJsZW5kTWluTWF4ID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRC
bGVuZE1pbk1heD4oKnRoaXMpOworICAgICAgICAgICAgbV9leHRCbGVuZE1pbk1heCA9IGVuYWJs
ZVN1cHBvcnRlZEV4dGVuc2lvbigqdGhpcywgIkdMX0VYVF9ibGVuZF9taW5tYXgiKQorICAgICAg
ICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRCbGVuZE1pbk1heD4oKnRoaXMpIDogbnVs
bHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9leHRCbGVuZE1pbk1heC5nZXQoKTsK
ICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9zUkdCIikK
LSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9z
UkdCIikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX3NSR0Ii
KSkgewogICAgICAgICBpZiAoIW1fZXh0c1JHQikgewotICAgICAgICAgICAgbV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3NSR0IiKTsKLSAgICAgICAgICAg
IG1fZXh0c1JHQiA9IHN0ZDo6bWFrZV91bmlxdWU8RVhUc1JHQj4oKnRoaXMpOworICAgICAgICAg
ICAgbV9leHRzUkdCID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCp0aGlzLCAiR0xfRVhUX3NS
R0IiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRzUkdCPigqdGhpcykg
OiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dHNSR0IuZ2V0KCk7CiAg
ICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfZnJhZ19kZXB0
aCIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9F
WFRfZnJhZ19kZXB0aCIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwg
IkVYVF9mcmFnX2RlcHRoIikpIHsKICAgICAgICAgaWYgKCFtX2V4dEZyYWdEZXB0aCkgewotICAg
ICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhU
X2ZyYWdfZGVwdGgiKTsKLSAgICAgICAgICAgIG1fZXh0RnJhZ0RlcHRoID0gc3RkOjptYWtlX3Vu
aXF1ZTxFWFRGcmFnRGVwdGg+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fZXh0RnJhZ0RlcHRoID0g
ZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCp0aGlzLCAiR0xfRVhUX2ZyYWdfZGVwdGgiKQorICAg
ICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRGcmFnRGVwdGg+KCp0aGlzKSA6IG51
bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fZXh0RnJhZ0RlcHRoLmdldCgpOwog
ICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX3NoYWRlcl90
ZXh0dXJlX2xvZCIpCi0gICAgICAgICYmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cygiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpIHx8IG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLnN1cHBvcnRzKCJHTF9BUkJfc2hhZGVyX3RleHR1cmVfbG9kIikpKSB7CisgICAgaWYg
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKSkg
ewogICAgICAgICBpZiAoIW1fZXh0U2hhZGVyVGV4dHVyZUxPRCkgewotICAgICAgICAgICAgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3NoYWRlcl90ZXh0
dXJlX2xvZCIpOwotICAgICAgICAgICAgbV9leHRTaGFkZXJUZXh0dXJlTE9EID0gc3RkOjptYWtl
X3VuaXF1ZTxFWFRTaGFkZXJUZXh0dXJlTE9EPigqdGhpcyk7CisgICAgICAgICAgICBpZiAoISht
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhU
X3NoYWRlcl90ZXh0dXJlX2xvZCIgfSkgfHwgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3Vw
cG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0FSQl9zaGFkZXJfdGV4dHVyZV9sb2QiIH0pKSkKKyAg
ICAgICAgICAgICAgICBtX2V4dFNoYWRlclRleHR1cmVMT0QgPSBudWxscHRyOworICAgICAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5z
dXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIgfSk7
CisgICAgICAgICAgICAgICAgbV9leHRTaGFkZXJUZXh0dXJlTE9EID0gc3RkOjptYWtlX3VuaXF1
ZTxFWFRTaGFkZXJUZXh0dXJlTE9EPigqdGhpcyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIG1fZXh0U2hhZGVyVGV4dHVyZUxPRC5nZXQoKTsKICAgICB9Ci0gICAg
aWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0ZXJfYW5p
c290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfRVhUX3Rl
eHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkg
eworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0
ZXJfYW5pc290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRf
RVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpIHsKICAgICAgICAgaWYgKCFtX2V4dFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGlj
Iik7Ci0gICAgICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IHN0ZDo6bWFr
ZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcyk7CisgICAgICAgICAg
ICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lv
bigqdGhpcywgIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpCisgICAgICAgICAg
ICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYz4oKnRo
aXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9leHRUZXh0dXJlRmls
dGVyQW5pc290cm9waWMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlD
YXNlKG5hbWUsICJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKQotICAgICAgICAmJiBtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVz
IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3N0YW5kYXJk
X2Rlcml2YXRpdmVzIikpIHsKICAgICAgICAgaWYgKCFtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMp
IHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQo
IkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpOwotICAgICAgICAgICAgbV9vZXNTdGFuZGFy
ZERlcml2YXRpdmVzID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNTdGFuZGFyZERlcml2YXRpdmVzPigq
dGhpcyk7CisgICAgICAgICAgICBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMgPSBlbmFibGVTdXBw
b3J0ZWRFeHRlbnNpb24oKnRoaXMsICJHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKQorICAg
ICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNTdGFuZGFyZERlcml2YXRpdmVzPigq
dGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1N0YW5kYXJk
RGVyaXZhdGl2ZXMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdCIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpKSB7CisgICAgaWYgKGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0IikpIHsKICAgICAg
ICAgaWYgKCFtX29lc1RleHR1cmVGbG9hdCkgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVfZmxvYXQiKTsKLSAgICAg
ICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0ID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxv
YXQ+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0ID0gZW5hYmxlU3VwcG9y
dGVkRXh0ZW5zaW9uKCp0aGlzLCAiR0xfT0VTX3RleHR1cmVfZmxvYXQiKQorICAgICAgICAgICAg
ICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXQ+KCp0aGlzKSA6IG51bGxwdHI7
CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUZsb2F0LmdldCgpOwogICAg
IH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxv
YXRfbGluZWFyIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7CisgICAgaWYgKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7CiAgICAgICAg
IGlmICghbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVh
ciIpOwotICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5p
cXVlPE9FU1RleHR1cmVGbG9hdExpbmVhcj4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0
dXJlRmxvYXRMaW5lYXIgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oKnRoaXMsICJHTF9PRVNf
dGV4dHVyZV9mbG9hdF9saW5lYXIiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1
ZTxPRVNUZXh0dXJlRmxvYXRMaW5lYXI+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyLmdldCgpOwogICAgIH0KLSAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIp
Ci0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNf
dGV4dHVyZV9oYWxmX2Zsb2F0IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShu
YW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0
dXJlSGFsZkZsb2F0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5l
bnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0Iik7Ci0gICAgICAgICAgICBt
X29lc1RleHR1cmVIYWxmRmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxv
YXQ+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdCA9IGVuYWJsZVN1
cHBvcnRlZEV4dGVuc2lvbigqdGhpcywgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiKQorICAg
ICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZsb2F0PigqdGhp
cykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVIYWxm
RmxvYXQuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUs
ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpCi0gICAgICAgICYmIG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVh
ciIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJl
X2hhbGZfZmxvYXRfbGluZWFyIikpIHsKICAgICAgICAgaWYgKCFtX29lc1RleHR1cmVIYWxmRmxv
YXRMaW5lYXIpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3Vy
ZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik7Ci0gICAgICAgICAg
ICBtX29lc1RleHR1cmVIYWxmRmxvYXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1
cmVIYWxmRmxvYXRMaW5lYXI+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZG
bG9hdExpbmVhciA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigqdGhpcywgIkdMX09FU190ZXh0
dXJlX2hhbGZfZmxvYXRfbGluZWFyIikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlx
dWU8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcj4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAg
fQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyLmdldCgpOwogICAg
IH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3ZlcnRleF9hcnJh
eV9vYmplY3QiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0
cygiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKG5hbWUsICJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpKSB7CiAgICAgICAgIGlm
ICghbV9vZXNWZXJ0ZXhBcnJheU9iamVjdCkgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTsK
LSAgICAgICAgICAgIG1fb2VzVmVydGV4QXJyYXlPYmplY3QgPSBzdGQ6Om1ha2VfdW5pcXVlPE9F
U1ZlcnRleEFycmF5T2JqZWN0PigqdGhpcyk7CisgICAgICAgICAgICBtX29lc1ZlcnRleEFycmF5
T2JqZWN0ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCp0aGlzLCAiR0xfT0VTX3ZlcnRleF9h
cnJheV9vYmplY3QiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNWZXJ0
ZXhBcnJheU9iamVjdD4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gbV9vZXNWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKQotICAgICAgICAm
JiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX2VsZW1lbnRfaW5k
ZXhfdWludCIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU19l
bGVtZW50X2luZGV4X3VpbnQiKSkgewogICAgICAgICBpZiAoIW1fb2VzRWxlbWVudEluZGV4VWlu
dCkgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxl
ZCgiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpOwotICAgICAgICAgICAgbV9vZXNFbGVtZW50
SW5kZXhVaW50ID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNFbGVtZW50SW5kZXhVaW50PigqdGhpcyk7
CisgICAgICAgICAgICBtX29lc0VsZW1lbnRJbmRleFVpbnQgPSBlbmFibGVTdXBwb3J0ZWRFeHRl
bnNpb24oKnRoaXMsICJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50IikKKyAgICAgICAgICAgICAg
ICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTRWxlbWVudEluZGV4VWludD4oKnRoaXMpIDogbnVsbHB0
cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNFbGVtZW50SW5kZXhVaW50LmdldCgp
OwogICAgIH0KQEAgLTE5MSw0MSArMTkzLDUzIEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgICAg
ICBtX3dlYmdsTG9zZUNvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMTG9zZUNvbnRleHQ+
KCp0aGlzKTsKICAgICAgICAgcmV0dXJuIG1fd2ViZ2xMb3NlQ29udGV4dC5nZXQoKTsKICAgICB9
Ci0gICAgaWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfV0VCR0xfY29t
cHJlc3NlZF90ZXh0dXJlX2F0YyIpKQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRU
ZXh0dXJlQVRDKQotICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDID0gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDPigqdGhpcyk7CisgICAgaWYg
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3Rl
eHR1cmVfYXRjIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMp
IHsKKyAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQyA9IFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZCgqdGhpcykKKyAgICAgICAgICAgICAgICA/IHN0ZDo6
bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQz4oKnRoaXMpIDogbnVsbHB0cjsK
KyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDLmdl
dCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJ
VF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSkKLSAgICAgICAgJiYgV2ViR0xDb21w
cmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbV93
ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMpCi0gICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBW
UlRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJ
VF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSkgeworICAgICAgICBpZiAoIW1fd2Vi
Z2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKSB7CisgICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0
aGlzKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRU
ZXh0dXJlUFZSVEM+KCp0aGlzKSA6IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJu
IG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMi
KQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKCp0aGlz
KSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMpCi0gICAgICAg
ICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJH
TENvbXByZXNzZWRUZXh0dXJlUzNUQz4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVND
SUlDYXNlKG5hbWUsICJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpKSB7CisgICAgICAg
IGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQykgeworICAgICAgICAgICAgbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlUzNUQyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBw
b3J0ZWQoKnRoaXMpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVTM1RDPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAgICAg
IHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDLmdldCgpOwogICAgIH0KLSAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVwdGhfdGV4dHVyZSIpCi0g
ICAgICAgICYmIFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoKmdyYXBoaWNzQ29udGV4dDNE
KCkpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERlcHRoVGV4dHVyZSkKLSAgICAgICAgICAgIG1f
d2ViZ2xEZXB0aFRleHR1cmUgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVwdGhUZXh0dXJlPigq
dGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlcHRo
X3RleHR1cmUiKSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xEZXB0aFRleHR1cmUpIHsKKyAgICAg
ICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUgPSBXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVk
KCptX2NvbnRleHQpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVw
dGhUZXh0dXJlPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBt
X3dlYmdsRGVwdGhUZXh0dXJlLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiV0VCR0xfZHJhd19idWZmZXJzIikgJiYgc3VwcG9ydHNEcmF3QnVmZmVy
cygpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RyYXdf
YnVmZmVycyIpKSB7CiAgICAgICAgIGlmICghbV93ZWJnbERyYXdCdWZmZXJzKSB7Ci0gICAgICAg
ICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9FWFRfZHJh
d19idWZmZXJzIik7Ci0gICAgICAgICAgICBtX3dlYmdsRHJhd0J1ZmZlcnMgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkdMRHJhd0J1ZmZlcnM+KCp0aGlzKTsKKyAgICAgICAgICAgIGlmICghc3VwcG9y
dHNEcmF3QnVmZmVycygpKQorICAgICAgICAgICAgICAgIG1fd2ViZ2xEcmF3QnVmZmVycyA9IG51
bGxwdHI7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfZHJhd19i
dWZmZXJzIiB9KTsKKyAgICAgICAgICAgICAgICBtX3dlYmdsRHJhd0J1ZmZlcnMgPSBzdGQ6Om1h
a2VfdW5pcXVlPFdlYkdMRHJhd0J1ZmZlcnM+KCp0aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbERyYXdCdWZmZXJzLmdldCgpOwogICAgIH0KLSAg
ICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiQU5HTEVfaW5zdGFuY2VkX2FycmF5
cyIpICYmIEFOR0xFSW5zdGFuY2VkQXJyYXlzOjpzdXBwb3J0ZWQoKnRoaXMpKSB7CisgICAgaWYg
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSkg
ewogICAgICAgICBpZiAoIW1fYW5nbGVJbnN0YW5jZWRBcnJheXMpIHsKLSAgICAgICAgICAgIG1f
Y29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX0FOR0xFX2luc3RhbmNl
ZF9hcnJheXMiKTsKLSAgICAgICAgICAgIG1fYW5nbGVJbnN0YW5jZWRBcnJheXMgPSBzdGQ6Om1h
a2VfdW5pcXVlPEFOR0xFSW5zdGFuY2VkQXJyYXlzPigqdGhpcyk7CisgICAgICAgICAgICBpZiAo
IUFOR0xFSW5zdGFuY2VkQXJyYXlzOjpzdXBwb3J0ZWQoKnRoaXMpKQorICAgICAgICAgICAgICAg
IG1fYW5nbGVJbnN0YW5jZWRBcnJheXMgPSBudWxscHRyOworICAgICAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZChB
U0NJSUxpdGVyYWwgeyAiR0xfQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIgfSk7CisgICAgICAgICAg
ICAgICAgbV9hbmdsZUluc3RhbmNlZEFycmF5cyA9IHN0ZDo6bWFrZV91bmlxdWU8QU5HTEVJbnN0
YW5jZWRBcnJheXM+KCp0aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gbV9hbmdsZUluc3RhbmNlZEFycmF5cy5nZXQoKTsKICAgICB9CkBAIC0yMzQsMTAgKzI0
OCwxMSBAQCBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNp
b24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICAgICAgbV93ZWJnbERlYnVnUmVuZGVyZXJJ
bmZvID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnUmVuZGVyZXJJbmZvPigqdGhpcyk7CiAg
ICAgICAgIHJldHVybiBtX3dlYmdsRGVidWdSZW5kZXJlckluZm8uZ2V0KCk7CiAgICAgfQotICAg
IGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19zaGFkZXJzIikK
LSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FOR0xF
X3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERlYnVn
U2hhZGVycykKLSAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBzdGQ6Om1ha2VfdW5p
cXVlPFdlYkdMRGVidWdTaGFkZXJzPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UobmFtZSwgIldFQkdMX2RlYnVnX3NoYWRlcnMiKSkgeworICAgICAgICBpZiAoIW1fd2Vi
Z2xEZWJ1Z1NoYWRlcnMpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfQU5HTEVf
dHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIiB9KQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtl
X3VuaXF1ZTxXZWJHTERlYnVnU2hhZGVycz4oKnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAgfQog
ICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnU2hhZGVycy5nZXQoKTsKICAgICB9CiAKQEAgLTI1
MSwxMDkgKzI2NiwxMDkgQEAgVmVjdG9yPFN0cmluZz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkKICAgICBpZiAobV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0
aW9uKQogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIAotICAgIGlmIChtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX2JsZW5kX21pbm1heCIpKQotICAgICAgICBy
ZXN1bHQuYXBwZW5kKCJFWFRfYmxlbmRfbWlubWF4Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0
RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfc1JHQiIpKQotICAgICAgICByZXN1bHQuYXBw
ZW5kKCJFWFRfc1JHQiIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cygiR0xfRVhUX2ZyYWdfZGVwdGgiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiRVhUX2Zy
YWdfZGVwdGgiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMo
IkdMX09FU190ZXh0dXJlX2Zsb2F0IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0
dXJlX2Zsb2F0Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRz
KCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgi
T0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpCi0gICAgICAgIHJl
c3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKTsKLSAgICBpZiAobV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGlu
ZWFyIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGlu
ZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9P
RVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3N0
YW5kYXJkX2Rlcml2YXRpdmVzIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LnN1cHBvcnRzKCJHTF9FWFRfc2hhZGVyX3RleHR1cmVfbG9kIikgfHwgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FSQl9zaGFkZXJfdGV4dHVyZV9sb2QiKSkKLSAgICAg
ICAgcmVzdWx0LmFwcGVuZCgiRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpOwotICAgIGlmIChtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2Fu
aXNvdHJvcGljIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIkVYVF90ZXh0dXJlX2ZpbHRlcl9h
bmlzb3Ryb3BpYyIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0
cygiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgi
T0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoIkdMX09FU19lbGVtZW50X2luZGV4X3VpbnQiKSkKLSAgICAgICAgcmVz
dWx0LmFwcGVuZCgiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpOwotICAgIHJlc3VsdC5hcHBlbmQo
IldFQkdMX2xvc2VfY29udGV4dCIpOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX2JsZW5kX21pbm1heCIgfSkpCisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIkVYVF9ibGVuZF9taW5tYXgiIH0pOwor
ICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwg
eyAiR0xfRVhUX3NSR0IiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7
ICJFWFRfc1JHQiIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBv
cnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfZnJhZ19kZXB0aCIgfSkpCisgICAgICAgIHJlc3Vs
dC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIkVYVF9mcmFnX2RlcHRoIiB9KTsKKyAgICBpZiAobV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190
ZXh0dXJlX2Zsb2F0IiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAi
T0VTX3RleHR1cmVfZmxvYXQiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9
KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfZmxv
YXRfbGluZWFyIiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pKQorICAgICAg
ICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiB9
KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRl
cmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIiB9KSkKKyAgICAgICAgcmVz
dWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIi
IH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxp
dGVyYWwgeyAiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIiB9KSkKKyAgICAgICAgcmVzdWx0
LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIiB9KTsKKyAg
ICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsg
IkdMX0VYVF9zaGFkZXJfdGV4dHVyZV9sb2QiIH0pIHx8IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9BUkJfc2hhZGVyX3RleHR1cmVfbG9kIiB9
KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiRVhUX3NoYWRlcl90ZXh0
dXJlX2xvZCIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRz
KEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pKQor
ICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJFWFRfdGV4dHVyZV9maWx0ZXJf
YW5pc290cm9waWMiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiIH0pKQorICAg
ICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdmVydGV4X2FycmF5X29iamVj
dCIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJ
TGl0ZXJhbCB7ICJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50IiB9KSkKKyAgICAgICAgcmVzdWx0
LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIgfSk7CisgICAg
cmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfbG9zZV9jb250ZXh0IiB9KTsKICAg
ICBpZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkKLSAgICAg
ICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKTsK
KyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCS0lUX1dFQkdMX2NvbXBy
ZXNzZWRfdGV4dHVyZV9hdGMiIH0pOwogICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZS
VEM6OnN1cHBvcnRlZCgqdGhpcykpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJH
TF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJ
SUxpdGVyYWwgeyAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIgfSk7CiAg
ICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpKQogICAg
ICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpOwotICAg
IGlmIChXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCpncmFwaGljc0NvbnRleHQzRCgpKSkK
LSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfZGVwdGhfdGV4dHVyZSIpOworICAgIGlmIChX
ZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCptX2NvbnRleHQpKQorICAgICAgICByZXN1bHQu
YXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9kZXB0aF90ZXh0dXJlIiB9KTsKICAgICBpZiAo
c3VwcG9ydHNEcmF3QnVmZmVycygpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kcmF3
X2J1ZmZlcnMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xf
ZHJhd19idWZmZXJzIiB9KTsKICAgICBpZiAoQU5HTEVJbnN0YW5jZWRBcnJheXM6OnN1cHBvcnRl
ZCgqdGhpcykpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMi
KTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FOR0xF
X3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJH
TF9kZWJ1Z19zaGFkZXJzIik7Ci0gICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfZGVidWdfcmVuZGVy
ZXJfaW5mbyIpOworICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJBTkdMRV9p
bnN0YW5jZWRfYXJyYXlzIiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
c3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJj
ZSIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RlYnVn
X3NoYWRlcnMiIH0pOworICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2Rl
YnVnX3JlbmRlcmVyX2luZm8iIH0pOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotV2ViR0xH
ZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5h
bWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNo
bWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0Rl
bnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlk
YXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycygiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyIiwgdGFyZ2V0LCBhdHRhY2htZW50KSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBpZiAoIW1fZnJhbWVidWZm
ZXJCaW5kaW5nIHx8ICFtX2ZyYW1lYnVmZmVyQmluZGluZy0+b2JqZWN0KCkpIHsKICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAi
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgIm5vIGZyYW1lYnVmZmVyIGJvdW5k
Iik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogICAgIAotICAgIFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QgPSBtX2ZyYW1l
YnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVudE9iamVjdChhdHRhY2htZW50KTsKKyAgICBhdXRv
KiBvYmplY3QgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVudE9iamVjdChhdHRh
Y2htZW50KTsKICAgICBpZiAoIW9iamVjdCkgewogICAgICAgICBpZiAocG5hbWUgPT0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpCi0gICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKTsKKyAgICAg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6Ok5P
TkUpOwogICAgICAgICAvLyBPcGVuR0wgRVMgMi4wIHNwZWNpZmllcyBJTlZBTElEX0VOVU0gaW4g
dGhpcyBjYXNlLCB3aGlsZSBkZXNrdG9wIEdMCiAgICAgICAgIC8vIHNwZWNpZmllcyBJTlZBTElE
X09QRVJBVElPTi4KICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZh
bGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIEFTU0VSVChvYmplY3QtPmlz
VGV4dHVyZSgpIHx8IG9iamVjdC0+aXNSZW5kZXJidWZmZXIoKSk7CiAgICAgaWYgKG9iamVjdC0+
aXNUZXh0dXJlKCkpIHsKICAgICAgICAgc3dpdGNoIChwbmFtZSkgewogICAgICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFOgotICAg
ICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRSk7
CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4
dDNEOjpURVhUVVJFKTsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJl
Kj4ob2JqZWN0KSkpOworICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIocmVpbnRlcnByZXRf
Y2FzdDxXZWJHTFRleHR1cmUmPigqb2JqZWN0KSk7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MRVZFTDoKICAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NVQkVf
TUFQX0ZBQ0U6CiAgICAgICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX0NPTE9SX0VOQ09ESU5HX0VYVDogewogICAgICAgICAgICAgR0MzRGludCB2YWx1ZSA9IDA7
CiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
cml2KHRhcmdldCwgYXR0YWNobWVudCwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAg
ICAgfQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBh
cmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIGZvciB0ZXh0dXJlIGF0dGFjaG1lbnQi
KTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG9iamVj
dC0+aXNSZW5kZXJidWZmZXIoKSk7CiAgICAgICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQ
RToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlJF
TkRFUkJVRkZFUik7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdy
YXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVIpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FOgotICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPihyZWludGVy
cHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyKj4ob2JqZWN0KSkpOworICAgICAgICAgICAgcmV0
dXJuIG1ha2VSZWZQdHIocmVpbnRlcnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZlciY+KCpvYmpl
Y3QpKTsKICAgICAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
Q09MT1JfRU5DT0RJTkdfRVhUOiB7CiAgICAgICAgICAgICBpZiAoIW1fZXh0c1JHQikgewogICAg
ICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElE
X0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJh
bWV0ZXIgbmFtZSBmb3IgcmVuZGVyYnVmZmVyIGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBXZWJHTFJlbmRlcmJ1ZmZlciogcmVuZGVyQnVm
ZmVyID0gcmVpbnRlcnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZlcio+KG9iamVjdCk7CiAgICAg
ICAgICAgICBHQzNEZW51bSByZW5kZXJCdWZmZXJGb3JtYXQgPSByZW5kZXJCdWZmZXItPmdldElu
dGVybmFsRm9ybWF0KCk7CiAgICAgICAgICAgICBBU1NFUlQocmVuZGVyQnVmZmVyRm9ybWF0ICE9
IEV4dGVuc2lvbnMzRDo6U1JHQl9FWFQgJiYgcmVuZGVyQnVmZmVyRm9ybWF0ICE9IEV4dGVuc2lv
bnMzRDo6U1JHQl9BTFBIQV9FWFQpOwogICAgICAgICAgICAgaWYgKHJlbmRlckJ1ZmZlckZvcm1h
dCA9PSBFeHRlbnNpb25zM0Q6OlNSR0I4X0FMUEhBOF9FWFQpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhFeHRlbnNpb25zM0Q6OlNSR0JfRVhUKTsKLSAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihFeHRlbnNpb25zM0Q6OlNSR0JfRVhU
KTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250
ZXh0M0Q6OkxJTkVBUik7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBm
b3IgcmVuZGVyYnVmZmVyIGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CiAgICAgfQog
fQpAQCAtMzY5LDE2ICszODQsMTUgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlk
YXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdGkKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5UOgogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlNURU5DSUxfQVRUQUNITUVOVDoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAobV93ZWJnbERyYXdCdWZmZXJzCi0g
ICAgICAgICAgICAmJiBhdHRhY2htZW50ID4gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFD
SE1FTlQwCisgICAgICAgICAgICAmJiBhdHRhY2htZW50ID49IEdyYXBoaWNzQ29udGV4dDNEOjpD
T0xPUl9BVFRBQ0hNRU5UMAogICAgICAgICAgICAgJiYgYXR0YWNobWVudCA8IHN0YXRpY19jYXN0
PEdDM0RlbnVtPihHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAgKyBnZXRNYXhD
b2xvckF0dGFjaG1lbnRzKCkpKQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklO
VkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCBhdHRhY2htZW50Iik7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIHRydWU7CiB9CiAgICAgCiB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6cmVuZGVyYnVmZmVyU3RvcmFnZShHQzNEZW51bSB0YXJnZXQs
IEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWln
aHQpCkBAIC00NTUsNyArNDY5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNsZWFy
KEdDM0RiaXRmaWVsZCBtYXNrKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNvbnN0IGNo
YXIqIHJlYXNvbiA9ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKLSAgICBpZiAobV9mcmFtZWJ1
ZmZlckJpbmRpbmcgJiYgIW1fZnJhbWVidWZmZXJCaW5kaW5nLT5vbkFjY2VzcyhncmFwaGljc0Nv
bnRleHQzRCgpLCAmcmVhc29uKSkgeworICAgIGlmIChtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAh
bV9mcmFtZWJ1ZmZlckJpbmRpbmctPm9uQWNjZXNzKG1fY29udGV4dC5nZXQoKSwgJnJlYXNvbikp
IHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
RlJBTUVCVUZGRVJfT1BFUkFUSU9OLCAiY2xlYXIiLCByZWFzb24pOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtNDY0LDEwICs0NzgsMTAgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmNsZWFyKEdDM0RiaXRmaWVsZCBtYXNrKQogICAgIG1hcmtDb250ZXh0Q2hhbmdlZCgpOwogfQog
Ci1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVu
dW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IGNvbnN0IGludCBpbnRaZXJvID0gMDsKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6QUNUSVZFX1RFWFRVUkU6CkBAIC00NzksNyArNDkzLDcgQEAgV2Vi
R0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBu
YW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBX0JJVFM6CiAgICAgICAgIHJl
dHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkFSUkFZX0JVRkZFUl9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NS
ZWZQdHI8V2ViR0xCdWZmZXI+KG1fYm91bmRBcnJheUJ1ZmZlcikpOworICAgICAgICByZXR1cm4g
bV9ib3VuZEFycmF5QnVmZmVyOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkJMRU5EOgog
ICAgICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6QkxFTkRfQ09MT1I6CkBAIC01MDMsMTYgKzUxNywxNiBAQCBXZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUp
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfV1JJVEVNQVNLOgogICAgICAgICBy
ZXR1cm4gZ2V0Qm9vbGVhbkFycmF5UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUzoKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhQYXNzUmVmUHRyPFVpbnQzMkFycmF5PihVaW50MzJBcnJheTo6Y3JlYXRlKG1f
Y29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLmRhdGEoKSwgbV9jb21wcmVzc2VkVGV4dHVyZUZvcm1h
dHMuc2l6ZSgpKSkpOworICAgICAgICByZXR1cm4gVWludDMyQXJyYXk6OmNyZWF0ZShtX2NvbXBy
ZXNzZWRUZXh0dXJlRm9ybWF0cy5kYXRhKCksIG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLnNp
emUoKSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VMTF9GQUNFOgogICAgICAgICBy
ZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6Q1VMTF9GQUNFX01PREU6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFt
ZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VSUkVOVF9QUk9HUkFN
OgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xQcm9ncmFtPiht
X2N1cnJlbnRQcm9ncmFtKSk7CisgICAgICAgIHJldHVybiBtX2N1cnJlbnRQcm9ncmFtOwogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JJVFM6CiAgICAgICAgIGlmICghbV9mcmFt
ZWJ1ZmZlckJpbmRpbmcgJiYgIW1fYXR0cmlidXRlcy5kZXB0aCkKLSAgICAgICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oaW50WmVybyk7CisgICAgICAgICAgICByZXR1cm4gaW50WmVybzsKICAg
ICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6REVQVEhfQ0xFQVJfVkFMVUU6CiAgICAgICAgIHJldHVybiBnZXRGbG9hdFBhcmFt
ZXRlcihwbmFtZSk7CkBAIC01MjcsOSArNTQxLDkgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVy
aW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRJVEhFUjoKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIo
cG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVS
X0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1
ZmZlcj4obV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKSkp
OworICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdl
dEVsZW1lbnRBcnJheUJ1ZmZlcigpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUl9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8
V2ViR0xGcmFtZWJ1ZmZlcj4obV9mcmFtZWJ1ZmZlckJpbmRpbmcpKTsKKyAgICAgICAgcmV0dXJu
IG1fZnJhbWVidWZmZXJCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZST05U
X0ZBQ0U6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6R0VORVJBVEVfTUlQTUFQX0hJTlQ6CkBAIC01Nzcs
OSArNTkxLDkgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1l
dGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFRF9CSVRT
OgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPihtX3JlbmRlcmJ1ZmZlckJpbmRp
bmcpKTsKKyAgICAgICAgcmV0dXJuIG1fcmVuZGVyYnVmZmVyQmluZGluZzsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpSRU5ERVJFUjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhT
dHJpbmcoIldlYktpdCBXZWJHTCIpKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMQW55KFN0cmluZygi
V2ViS2l0IFdlYkdMIikpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNBTVBMRV9CVUZG
RVJTOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpTQU1QTEVfQ09WRVJBR0VfSU5WRVJUOgpAQCAtNTkzLDcgKzYwNyw3
IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNE
ZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTQ0lTU09SX1RFU1Q6CiAg
ICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpTSEFESU5HX0xBTkdVQUdFX1ZFUlNJT046Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oIldlYkdMIEdMU0wgRVMgMS4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmco
R3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTikgKyAiKSIpOworICAg
ICAgICByZXR1cm4gV2ViR0xBbnkoIldlYkdMIEdMU0wgRVMgMS4wICgiICsgbV9jb250ZXh0LT5n
ZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTikgKyAi
KSIpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQkFDS19GQUlMOgogICAg
ICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQkFDS19GVU5DOgpAQCAtNjEwLDcgKzYyNCw3IEBAIFdl
YkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBw
bmFtZSkKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JJVFM6CiAgICAgICAgIGlmICghbV9m
cmFtZWJ1ZmZlckJpbmRpbmcgJiYgIW1fYXR0cmlidXRlcy5zdGVuY2lsKQotICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhpbnRaZXJvKTsKKyAgICAgICAgICAgIHJldHVybiBXZWJHTEFu
eShpbnRaZXJvKTsKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9DTEVBUl9WQUxVRToKICAgICAgICAgcmV0
dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CkBAIC02MzMsNjEgKzY0Nyw2MSBAQCBXZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUp
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1VCUElYRUxfQklUUzoKICAgICAgICAgcmV0
dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
VEVYVFVSRV9CSU5ESU5HXzJEOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQ
dHI8V2ViR0xUZXh0dXJlPihtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0
dXJlMkRCaW5kaW5nKSk7CisgICAgICAgIHJldHVybiBtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRl
eHR1cmVVbml0XS50ZXh0dXJlMkRCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfQklORElOR19DVUJFX01BUDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQ
YXNzUmVmUHRyPFdlYkdMVGV4dHVyZT4obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5p
dF0udGV4dHVyZUN1YmVNYXBCaW5kaW5nKSk7CisgICAgICAgIHJldHVybiBtX3RleHR1cmVVbml0
c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlQ3ViZU1hcEJpbmRpbmc7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0FMSUdOTUVOVDoKICAgICAgICAgcmV0dXJuIGdldElu
dFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0ZM
SVBfWV9XRUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3VucGFja0ZsaXBZKTsK
KyAgICAgICAgcmV0dXJuIG1fdW5wYWNrRmxpcFk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6VU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMOgotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgIHJldHVybiBtX3VucGFj
a1ByZW11bHRpcGx5QWxwaGE7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0NP
TE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyht
X3VucGFja0NvbG9yc3BhY2VDb252ZXJzaW9uKTsKKyAgICAgICAgcmV0dXJuIG1fdW5wYWNrQ29s
b3JzcGFjZUNvbnZlcnNpb247CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVORE9SOgot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFN0cmluZygiV2ViS2l0IikpOworICAgICAgICBy
ZXR1cm4gU3RyaW5nIHsgQVNDSUlMaXRlcmFsIHsgIldlYktpdCIgfSB9OwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlZFUlNJT046Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oIldl
YkdMIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRVJT
SU9OKSArICIpIik7CisgICAgICAgIHJldHVybiAiV2ViR0wgMS4wICgiICsgbV9jb250ZXh0LT5n
ZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlNJT04pICsgIikiOwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlZJRVdQT1JUOgogICAgICAgICByZXR1cm4gZ2V0V2ViR0xJbnRBcnJh
eVBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkZSQUdNRU5UX1NIQURF
Ul9ERVJJVkFUSVZFX0hJTlRfT0VTOiAvLyBPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMKICAgICAg
ICAgaWYgKG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcykKICAgICAgICAgICAgIHJldHVybiBnZXRV
bnNpZ25lZEludFBhcmFtZXRlcihFeHRlbnNpb25zM0Q6OkZSQUdNRU5UX1NIQURFUl9ERVJJVkFU
SVZFX0hJTlRfT0VTKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1l
LCBPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIFdlYkdM
RGVidWdSZW5kZXJlckluZm86OlVOTUFTS0VEX1JFTkRFUkVSX1dFQkdMOgogICAgICAgICBpZiAo
bV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpKTsKKyAg
ICAgICAgICAgIHJldHVybiBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6
UkVOREVSRVIpOwogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6
SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdF
QkdMX2RlYnVnX3JlbmRlcmVyX2luZm8gbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIFdlYkdMRGVi
dWdSZW5kZXJlckluZm86OlVOTUFTS0VEX1ZFTkRPUl9XRUJHTDoKICAgICAgICAgaWYgKG1fd2Vi
Z2xEZWJ1Z1JlbmRlcmVySW5mbykKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9j
b250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFTkRPUikpOworICAgICAgICAg
ICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1Ip
OwogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVn
X3JlbmRlcmVyX2luZm8gbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6VkVS
VEVYX0FSUkFZX0JJTkRJTkdfT0VTOiAvLyBPRVNfdmVydGV4X2FycmF5X29iamVjdAogICAgICAg
ICBpZiAobV9vZXNWZXJ0ZXhBcnJheU9iamVjdCkgewotICAgICAgICAgICAgaWYgKCFtX2JvdW5k
VmVydGV4QXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpKQotICAgICAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPihz
dGF0aWNfY2FzdDxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKj4obV9ib3VuZFZlcnRleEFycmF5
T2JqZWN0LmdldCgpKSkpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAg
ICAgICAgICAgaWYgKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gbWFr
ZVJlZlB0cihzdGF0aWNfY2FzdDxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTJj4oKm1fYm91bmRW
ZXJ0ZXhBcnJheU9iamVjdCkpOwogICAgICAgICB9CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9y
KEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxp
ZCBwYXJhbWV0ZXIgbmFtZSwgT0VTX3ZlcnRleF9hcnJheV9vYmplY3Qgbm90IGVuYWJsZWQiKTsK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUOiAv
LyBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMKICAgICAgICAgaWYgKG1fZXh0VGV4dHVy
ZUZpbHRlckFuaXNvdHJvcGljKQogICAgICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFy
YW1ldGVyKEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUKTsKICAg
ICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwg
ImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfdGV4dHVyZV9maWx0
ZXJfYW5pc290cm9waWMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFY
X0NPTE9SX0FUVEFDSE1FTlRTX0VYVDogLy8gRVhUX2RyYXdfYnVmZmVycyBCRUdJTgogICAgICAg
ICBpZiAobV93ZWJnbERyYXdCdWZmZXJzKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkpOworICAgICAgICAgICAgcmV0dXJuIFdlYkdMQW55
KGdldE1heENvbG9yQXR0YWNobWVudHMoKSk7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBw
YXJhbWV0ZXIgbmFtZSwgV0VCR0xfZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6Ok1BWF9EUkFXX0JVRkZFUlNfRVhUOgogICAgICAgICBpZiAobV93ZWJn
bERyYXdCdWZmZXJzKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhnZXRNYXhEcmF3
QnVmZmVycygpKTsKKyAgICAgICAgICAgIHJldHVybiBXZWJHTEFueShnZXRNYXhEcmF3QnVmZmVy
cygpKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBXRUJHTF9k
cmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAobV93
ZWJnbERyYXdCdWZmZXJzCiAgICAgICAgICAgICAmJiBwbmFtZSA+PSBFeHRlbnNpb25zM0Q6OkRS
QVdfQlVGRkVSMF9FWFQKQEAgLTY5NywxMCArNzExLDEwIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICAgICAgICAg
ICAgICB2YWx1ZSA9IG1fZnJhbWVidWZmZXJCaW5kaW5nLT5nZXREcmF3QnVmZmVyKHBuYW1lKTsK
ICAgICAgICAgICAgIGVsc2UgLy8gZW11bGF0ZWQgYmFja2J1ZmZlcgogICAgICAgICAgICAgICAg
IHZhbHVlID0gbV9iYWNrRHJhd0J1ZmZlcjsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8odmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIFdlYkdMQW55KHZhbHVlKTsKICAgICAgICAg
fQogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmgKaW5kZXggMTg3NGZlNWE1YzM4MzExOThmNDNiOTRjMjA5NmI5ZWViZTQzZTQ3MC4uY2Uz
YWZiZTE4Nzc1MmJmODFmNGFiNzYyZDE5OTRlNDdmMTBhMmQ0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTMyLDE2ICsz
MiwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQg
ZmluYWwgOiBwdWJsaWMgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSB7CiBwdWJsaWM6CiAgICAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiwgR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzKTsKLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1l
bnQmLCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiwgR3JhcGhpY3NDb250ZXh0M0RBdHRy
aWJ1dGVzKTsKKyAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmLCBS
ZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyk7CiAK
IHByaXZhdGU6CiAgICAgYm9vbCBpc1dlYkdMMSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KIAogICAgIFdlYkdMRXh0ZW5zaW9uKiBnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJikgZmlu
YWw7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkgZmluYWw7
CisgICAgV2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKICAgICBW
ZWN0b3I8U3RyaW5nPiBnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkgZmluYWw7CiAKLSAgICBXZWJH
TEdldEluZm8gZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdl
dCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpIGZpbmFsOworICAgIFdlYkdM
QW55IGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdD
M0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKICAgICB2b2lkIHJlbmRl
cmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwg
R0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSBmaW5hbDsKICAgICBib29sIHZhbGlk
YXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCkgZmluYWw7CiAgICAgdm9pZCBoaW50
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gbW9kZSkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmlu
ZGV4IDI3NzBkYzFiNmUxZjM4M2VmY2M3NzI1MDMyYWU1MDUyZTc5YjNjZjYuLmI1ZDBlZTc3YmRk
ZGEwOTQ4YmM4NGExZjAzYzJhNzc5ZjU2NDM1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC0yNCw5
ICsyNCw5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKLSNpbmNsdWRlICJXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAKICNpbmNsdWRlICJBTkdMRUluc3RhbmNlZEFycmF5
cy5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCkBAIC00MjAsMTcgKzQyMCwxNSBAQCBzdGQ6
OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4gV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Y3JlYXRlKEhUTQogICAgICAgICByZXR1cm4gcmVuZGVyaW5nQ29udGV4dDsKICAg
ICB9CiAKLSAgICBIb3N0V2luZG93KiBob3N0V2luZG93ID0gZG9jdW1lbnQudmlldygpLT5yb290
KCktPmhvc3RXaW5kb3coKTsKLSAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQo
R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShhdHRyaWJ1dGVzLCBob3N0V2luZG93KSk7Ci0KKyAg
ICBhdXRvIGNvbnRleHQgPSBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKGF0dHJpYnV0ZXMsIGRv
Y3VtZW50LnZpZXcoKS0+cm9vdCgpLT5ob3N0V2luZG93KCkpOwogICAgIGlmICghY29udGV4dCB8
fCAhY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpIHsKICAgICAgICAgY2FudmFzLmRpc3Bh
dGNoRXZlbnQoV2ViR0xDb250ZXh0RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2ViZ2xjb250
ZXh0Y3JlYXRpb25lcnJvckV2ZW50LCBmYWxzZSwgdHJ1ZSwgIkNvdWxkIG5vdCBjcmVhdGUgYSBX
ZWJHTCBjb250ZXh0LiIpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAg
RXh0ZW5zaW9uczNEJiBleHRlbnNpb25zID0gY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpOwotICAg
IGlmIChleHRlbnNpb25zLnN1cHBvcnRzKCJHTF9FWFRfZGVidWdfbWFya2VyIikpCi0gICAgICAg
IGV4dGVuc2lvbnMucHVzaEdyb3VwTWFya2VyRVhUKCJXZWJHTFJlbmRlcmluZ0NvbnRleHQiKTsK
KyAgICBhdXRvJiBleHRlbnNpb25zID0gY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpOworICAgIGlm
IChleHRlbnNpb25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfZGVidWdfbWFya2Vy
IiB9KSkKKyAgICAgICAgZXh0ZW5zaW9ucy5wdXNoR3JvdXBNYXJrZXJFWFQoQVNDSUlMaXRlcmFs
IHsgIldlYkdMUmVuZGVyaW5nQ29udGV4dCIgfSk7CiAKICNpZiBFTkFCTEUoV0VCR0wyKSAmJiBQ
TEFURk9STShNQUMpCiAgICAgLy8gZ2xUZXhTdG9yYWdlKCkgd2FzIG9ubHkgYWRkZWQgdG8gQ29y
ZSBpbiBPcGVuR0wgNC4yLgpAQCAtNDM5LDEzICs0MzcsMTMgQEAgc3RkOjp1bmlxdWVfcHRyPFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0
ZShIVE0KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKIAotICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiByZW5kZXJpbmdDb250ZXh0ID0gbnVsbHB0
cjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4gcmVuZGVy
aW5nQ29udGV4dDsKICNpZiBFTkFCTEUoV0VCR0wyKQogICAgIGlmICh0eXBlID09ICJ3ZWJnbDIi
KQotICAgICAgICByZW5kZXJpbmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0PihjYW52YXMsIFdURk1vdmUoY29udGV4dCksIGF0dHJpYnV0ZXMpOworICAg
ICAgICByZW5kZXJpbmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTDJSZW5kZXJpbmdD
b250ZXh0PihjYW52YXMsIGNvbnRleHQucmVsZWFzZU5vbk51bGwoKSwgYXR0cmlidXRlcyk7CiAg
ICAgZWxzZQogI2VuZGlmCi0gICAgICAgIHJlbmRlcmluZ0NvbnRleHQgPSBzdGQ6Om1ha2VfdW5p
cXVlPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oY2FudmFzLCBXVEZNb3ZlKGNvbnRleHQpLCBhdHRy
aWJ1dGVzKTsKKyAgICAgICAgcmVuZGVyaW5nQ29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8V2Vi
R0xSZW5kZXJpbmdDb250ZXh0PihjYW52YXMsIGNvbnRleHQucmVsZWFzZU5vbk51bGwoKSwgYXR0
cmlidXRlcyk7CiAgICAgcmVuZGVyaW5nQ29udGV4dC0+c3VzcGVuZElmTmVlZGVkKCk7CiAKICAg
ICByZXR1cm4gcmVuZGVyaW5nQ29udGV4dDsKQEAgLTQ1NCw0NCArNDUyLDI5IEBAIHN0ZDo6dW5p
cXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpjcmVhdGUoSFRNCiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlKEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFdlYkdMQ29udGV4
dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICA6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQocGFz
c2VkQ2FudmFzKQogICAgICwgQWN0aXZlRE9NT2JqZWN0KCZwYXNzZWRDYW52YXMuZG9jdW1lbnQo
KSkKLSAgICAsIG1fY29udGV4dChudWxscHRyKQogICAgICwgbV9kaXNwYXRjaENvbnRleHRMb3N0
RXZlbnRUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29u
dGV4dExvc3RFdmVudCkKLSAgICAsIG1fcmVzdG9yZUFsbG93ZWQoZmFsc2UpCiAgICAgLCBtX3Jl
c3RvcmVUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9y
ZUNvbnRleHQpCi0gICAgLCBtX2dlbmVyYXRlZEltYWdlQ2FjaGUoMCkKLSAgICAsIG1fY29udGV4
dExvc3QoZmFsc2UpCi0gICAgLCBtX2NvbnRleHRMb3N0TW9kZShTeW50aGV0aWNMb3N0Q29udGV4
dCkKICAgICAsIG1fYXR0cmlidXRlcyhhdHRyaWJ1dGVzKQotICAgICwgbV9zeW50aGVzaXplZEVy
cm9yc1RvQ29uc29sZSh0cnVlKQogICAgICwgbV9udW1HTEVycm9yc1RvQ29uc29sZUFsbG93ZWQo
bWF4R0xFcnJvcnNBbGxvd2VkVG9Db25zb2xlKQogICAgICwgbV9pc1BlbmRpbmdQb2xpY3lSZXNv
bHV0aW9uKHRydWUpCi0gICAgLCBtX2hhc1JlcXVlc3RlZFBvbGljeVJlc29sdXRpb24oZmFsc2Up
CiB7CiB9CiAKLVdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiYmIGNvbnRleHQsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKK1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENh
bnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRl
eHQsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICA6IENhbnZhc1JlbmRl
cmluZ0NvbnRleHQocGFzc2VkQ2FudmFzKQogICAgICwgQWN0aXZlRE9NT2JqZWN0KCZwYXNzZWRD
YW52YXMuZG9jdW1lbnQoKSkKICAgICAsIG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQogICAg
ICwgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dExvc3RFdmVudCkKLSAgICAsIG1fcmVzdG9yZUFs
bG93ZWQoZmFsc2UpCiAgICAgLCBtX3Jlc3RvcmVUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQpCiAgICAgLCBtX2dlbmVyYXRlZEltYWdl
Q2FjaGUoNCkKLSAgICAsIG1fY29udGV4dExvc3QoZmFsc2UpCi0gICAgLCBtX2NvbnRleHRMb3N0
TW9kZShTeW50aGV0aWNMb3N0Q29udGV4dCkKICAgICAsIG1fYXR0cmlidXRlcyhhdHRyaWJ1dGVz
KQotICAgICwgbV9zeW50aGVzaXplZEVycm9yc1RvQ29uc29sZSh0cnVlKQogICAgICwgbV9udW1H
TEVycm9yc1RvQ29uc29sZUFsbG93ZWQobWF4R0xFcnJvcnNBbGxvd2VkVG9Db25zb2xlKQotICAg
ICwgbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKGZhbHNlKQotICAgICwgbV9oYXNSZXF1ZXN0
ZWRQb2xpY3lSZXNvbHV0aW9uKGZhbHNlKQogewotICAgIEFTU0VSVChtX2NvbnRleHQpOwogICAg
IG1fY29udGV4dEdyb3VwID0gV2ViR0xDb250ZXh0R3JvdXA6OmNyZWF0ZSgpOwotICAgIG1fY29u
dGV4dEdyb3VwLT5hZGRDb250ZXh0KHRoaXMpOworICAgIG1fY29udGV4dEdyb3VwLT5hZGRDb250
ZXh0KCp0aGlzKTsKICAgICAKICAgICBtX2NvbnRleHQtPnNldFdlYkdMQ29udGV4dCh0aGlzKTsK
IAotICAgIG1fbWF4Vmlld3BvcnREaW1zWzBdID0gbV9tYXhWaWV3cG9ydERpbXNbMV0gPSAwOwog
ICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6Ok1BWF9WSUVXUE9S
VF9ESU1TLCBtX21heFZpZXdwb3J0RGltcyk7CiAKICAgICBzZXR1cEZsYWdzKCk7CkBAIC02MTks
NyArNjAyLDcgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6fldlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UoKQogICAgIGlmICghbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKSB7CiAgICAg
ICAgIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMoKTsKICAgICAgICAgZGVzdHJveUdyYXBoaWNz
Q29udGV4dDNEKCk7Ci0gICAgICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVDb250ZXh0KHRoaXMp
OworICAgICAgICBtX2NvbnRleHRHcm91cC0+cmVtb3ZlQ29udGV4dCgqdGhpcyk7CiAgICAgfQog
fQogCkBAIC05MTMsNyArODk2LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpi
aW5kQnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgV2ViR0xCdWZmZXIqIGJ1ZmZlcikKICAgICBpZiAo
IWNoZWNrT2JqZWN0VG9CZUJvdW5kKCJiaW5kQnVmZmVyIiwgYnVmZmVyLCBkZWxldGVkKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIGlmIChkZWxldGVkKQotICAgICAgICBidWZmZXIgPSAwOworICAg
ICAgICBidWZmZXIgPSBudWxscHRyOwogICAgIGlmIChidWZmZXIgJiYgYnVmZmVyLT5nZXRUYXJn
ZXQoKSAmJiBidWZmZXItPmdldFRhcmdldCgpICE9IHRhcmdldCkgewogICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJiaW5kQnVm
ZmVyIiwgImJ1ZmZlcnMgY2FuIG5vdCBiZSB1c2VkIHdpdGggbXVsdGlwbGUgdGFyZ2V0cyIpOwog
ICAgICAgICByZXR1cm47CkBAIC0xMzk1LDcgKzEzNzgsNyBAQCBSZWZQdHI8V2ViR0xCdWZmZXI+
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZUJ1ZmZlcigpCiAgICAgaWYgKGlzQ29u
dGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBi
dWZmZXIgPSBXZWJHTEJ1ZmZlcjo6Y3JlYXRlKCp0aGlzKTsKLSAgICBhZGRTaGFyZWRPYmplY3Qo
YnVmZmVyLnB0cigpKTsKKyAgICBhZGRTaGFyZWRPYmplY3QoYnVmZmVyLmdldCgpKTsKICAgICBy
ZXR1cm4gV1RGTW92ZShidWZmZXIpOwogfQogCkBAIC0xNDA0LDcgKzEzODcsNyBAQCBSZWZQdHI8
V2ViR0xGcmFtZWJ1ZmZlcj4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlRnJhbWVi
dWZmZXIoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIGF1dG8gYnVmZmVyID0gV2ViR0xGcmFtZWJ1ZmZlcjo6Y3JlYXRlKCp0
aGlzKTsKLSAgICBhZGRDb250ZXh0T2JqZWN0KGJ1ZmZlci5wdHIoKSk7CisgICAgYWRkQ29udGV4
dE9iamVjdChidWZmZXIuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKGJ1ZmZlcik7CiB9CiAK
QEAgLTE0MTMsNyArMTM5Niw3IEBAIFJlZlB0cjxXZWJHTFRleHR1cmU+IFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmNyZWF0ZVRleHR1cmUoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5k
aW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gdGV4dHVyZSA9IFdlYkdM
VGV4dHVyZTo6Y3JlYXRlKCp0aGlzKTsKLSAgICBhZGRTaGFyZWRPYmplY3QodGV4dHVyZS5wdHIo
KSk7CisgICAgYWRkU2hhcmVkT2JqZWN0KHRleHR1cmUuZ2V0KCkpOwogICAgIHJldHVybiBXVEZN
b3ZlKHRleHR1cmUpOwogfQogCkBAIC0xNDIyLDcgKzE0MDUsNyBAQCBSZWZQdHI8V2ViR0xQcm9n
cmFtPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVQcm9ncmFtKCkKICAgICBpZiAo
aXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBh
dXRvIHByb2dyYW0gPSBXZWJHTFByb2dyYW06OmNyZWF0ZSgqdGhpcyk7Ci0gICAgYWRkU2hhcmVk
T2JqZWN0KHByb2dyYW0ucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdChwcm9ncmFtLmdldCgp
KTsKICAgICByZXR1cm4gV1RGTW92ZShwcm9ncmFtKTsKIH0KIApAQCAtMTQzMSw3ICsxNDE0LDcg
QEAgUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpj
cmVhdGVSZW5kZXJidWZmZXIoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gYnVmZmVyID0gV2ViR0xSZW5kZXJidWZm
ZXI6OmNyZWF0ZSgqdGhpcyk7Ci0gICAgYWRkU2hhcmVkT2JqZWN0KGJ1ZmZlci5wdHIoKSk7Cisg
ICAgYWRkU2hhcmVkT2JqZWN0KGJ1ZmZlci5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUoYnVm
ZmVyKTsKIH0KIApAQCAtMTQ0NSw3ICsxNDI4LDcgQEAgUmVmUHRyPFdlYkdMU2hhZGVyPiBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVTaGFkZXIoR0MzRGVudW0gdHlwZSkKICAgICB9
CiAKICAgICBhdXRvIHNoYWRlciA9IFdlYkdMU2hhZGVyOjpjcmVhdGUoKnRoaXMsIHR5cGUpOwot
ICAgIGFkZFNoYXJlZE9iamVjdChzaGFkZXIucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdChz
aGFkZXIuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKHNoYWRlcik7CiB9CiAKQEAgLTE0Nzgs
NyArMTQ2MSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlQnVmZmVy
KFdlYkdMQnVmZmVyKiBidWZmZXIpCiAgICAgaWYgKG1fYm91bmRBcnJheUJ1ZmZlciA9PSBidWZm
ZXIpCiAgICAgICAgIG1fYm91bmRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAKLSAgICBtX2JvdW5k
VmVydGV4QXJyYXlPYmplY3QtPnVuYmluZEJ1ZmZlcihidWZmZXIpOworICAgIG1fYm91bmRWZXJ0
ZXhBcnJheU9iamVjdC0+dW5iaW5kQnVmZmVyKCpidWZmZXIpOwogfQogCiB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZUZyYW1lYnVmZmVyKFdlYkdMRnJhbWVidWZmZXIqIGZy
YW1lYnVmZmVyKQpAQCAtMjE4NCwxMCArMjE2NywxMCBAQCBHQzNEaW50IFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldEF0dHJpYkxvY2F0aW9uKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29u
cwogICAgIHJldHVybiBtX2NvbnRleHQtPmdldEF0dHJpYkxvY2F0aW9uKG9iamVjdE9yWmVybyhw
cm9ncmFtKSwgbmFtZSk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRCdWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSkK
K1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFtZXRlcihH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0
T3JQZW5kaW5nKCkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICBib29sIHZhbGlkID0gZmFsc2U7CiAgICAgaWYgKHRhcmdldCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSIHx8IHRhcmdldCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVIpCkBAIC0yMjA3LDE5ICsyMTkwLDE5IEBAIFdl
YkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCdWZmZXJQYXJhbWV0ZXIo
R0MzRGVudW0gdGFyZ2V0LCBHQzNECiAjZW5kaWYKICAgICBpZiAoIXZhbGlkKSB7CiAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRC
dWZmZXJQYXJhbWV0ZXIiLCAiaW52YWxpZCB0YXJnZXQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAocG5h
bWUgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OkJVRkZFUl9TSVpFICYmIHBuYW1lICE9IEdyYXBoaWNz
Q29udGV4dDNEOjpCVUZGRVJfVVNBR0UpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEJ1ZmZlclBhcmFtZXRlciIsICJpbnZh
bGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAg
ICAgbV9jb250ZXh0LT5nZXRCdWZmZXJQYXJhbWV0ZXJpdih0YXJnZXQsIHBuYW1lLCAmdmFsdWUp
OwogICAgIGlmIChwbmFtZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6QlVGRkVSX1NJWkUpCi0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8o
c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2YWx1ZSkpOworICAgICAgICByZXR1cm4gdmFsdWU7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZSk7CiB9CiAKIHN0ZDo6b3B0
aW9uYWw8V2ViR0xDb250ZXh0QXR0cmlidXRlcz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKQpAQCAtMjI0NiwzMCArMjIyOSwzMCBAQCBHQzNEZW51bSBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRFcnJvcigpCiAgICAgcmV0dXJuIG1fY29udGV4
dC0+Z2V0RXJyb3IoKTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldFByb2dyYW1QYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBHQzNEZW51bSBw
bmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJh
bWV0ZXIoV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAo
aXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJnZXRQcm9n
cmFtUGFyYW1ldGVyIiwgcHJvZ3JhbSkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBz
d2l0Y2ggKHBuYW1lKSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVMRVRFX1NUQVRV
UzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhwcm9ncmFtLT5pc0RlbGV0ZWQoKSk7Cisg
ICAgICAgIHJldHVybiBwcm9ncmFtLT5pc0RlbGV0ZWQoKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpWQUxJREFURV9TVEFUVVM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0UHJvZ3JhbWl2
KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGJvb2w+KHZhbHVlKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5L
X1NUQVRVUzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhwcm9ncmFtLT5nZXRMaW5rU3Rh
dHVzKCkpOworICAgICAgICByZXR1cm4gcHJvZ3JhbS0+Z2V0TGlua1N0YXR1cygpOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFUVEFDSEVEX1NIQURFUlM6CiAgICAgICAgIG1fY29udGV4
dC0+Z2V0UHJvZ3JhbWl2KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgcG5hbWUsICZ2YWx1ZSk7Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICByZXR1cm4gdmFsdWU7
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUNUSVZFX0FUVFJJQlVURVM6CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6QUNUSVZFX1VOSUZPUk1TOgogICAgICAgICBtX2NvbnRleHQt
PmdldE5vbkJ1aWx0SW5BY3RpdmVTeW1ib2xDb3VudChvYmplY3RPclplcm8ocHJvZ3JhbSksIHBu
YW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICAg
ICAgcmV0dXJuIHZhbHVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9y
KEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQcm9ncmFtUGFyYW1ldGVyIiwg
ImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTIyODAsMTcgKzIyNjMs
MTcgQEAgU3RyaW5nIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1JbmZvTG9n
KFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSkKICAgICByZXR1cm4gZW5zdXJlTm90TnVsbChtX2NvbnRl
eHQtPmdldFByb2dyYW1JbmZvTG9nKG9iamVjdE9yWmVybyhwcm9ncmFtKSkpOwogfQogCi1XZWJH
TEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1l
dGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIGlmICh0YXJnZXQgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUikgewogICAg
ICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAi
Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIiwgImludmFsaWQgdGFyZ2V0Iik7Ci0gICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAg
IGlmICghbV9yZW5kZXJidWZmZXJCaW5kaW5nIHx8ICFtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPm9i
amVjdCgpKSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlZBTElEX09QRVJBVElPTiwgImdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlciIsICJubyByZW5kZXJi
dWZmZXIgYm91bmQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAobV9yZW5kZXJidWZmZXJCaW5kaW5nLT5n
ZXRJbnRlcm5hbEZvcm1hdCgpID09IEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMCkBA
IC0yMzE3LDEyICsyMzAwLDEyIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0CiAgICAgICAgICAg
ICB2YWx1ZSA9IDg7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVDoKLSAgICAgICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8obV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgp
KTsKKyAgICAgICAgICAgIHJldHVybiBtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdldEludGVybmFs
Rm9ybWF0KCk7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UmVuZGVyYnVmZmVyUGFyYW1l
dGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICByZXR1cm4gdmFsdWU7CiAg
ICAgfQogCiAgICAgR0MzRGludCB2YWx1ZSA9IDA7CkBAIC0yMzM2LDMyICsyMzE5LDMyIEBAIFdl
YkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoR0MzRGVudW0gdGFyZ2V0CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVS
QlVGRkVSX0RFUFRIX1NJWkU6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVG
RkVSX1NURU5DSUxfU0laRToKICAgICAgICAgbV9jb250ZXh0LT5nZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXJpdih0YXJnZXQsIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQ6Ci0gICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8obV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgpKTsKKyAg
ICAgICAgcmV0dXJuIG1fcmVuZGVyYnVmZmVyQmluZGluZy0+Z2V0SW50ZXJuYWxGb3JtYXQoKTsK
ICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQz
RDo6SU5WQUxJRF9FTlVNLCAiZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIiwgImludmFsaWQgcGFy
YW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRTaGFkZXJQYXJhbWV0ZXIoV2ViR0xTaGFkZXIqIHNoYWRlciwgR0MzRGVu
dW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRTaGFkZXJQ
YXJhbWV0ZXIoV2ViR0xTaGFkZXIqIHNoYWRlciwgR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYg
KGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0U2hh
ZGVyUGFyYW1ldGVyIiwgc2hhZGVyKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBzd2l0
Y2ggKHBuYW1lKSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVMRVRFX1NUQVRVUzoK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzaGFkZXItPmlzRGVsZXRlZCgpKTsKKyAgICAg
ICAgcmV0dXJuIHNoYWRlci0+aXNEZWxldGVkKCk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6Q09NUElMRV9TVEFUVVM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0U2hhZGVyaXYob2JqZWN0
T3JaZXJvKHNoYWRlciksIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHN0YXRpY19jYXN0PGJvb2w+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxib29sPih2YWx1ZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0hBREVSX1RZUEU6
CiAgICAgICAgIG1fY29udGV4dC0+Z2V0U2hhZGVyaXYob2JqZWN0T3JaZXJvKHNoYWRlciksIHBu
YW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVu
c2lnbmVkIGludD4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVk
Pih2YWx1ZSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhp
Y3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFNoYWRlclBhcmFtZXRlciIsICJpbnZhbGlk
IHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogfQogCkBAIC0yNDEwLDEzICsyMzkzLDEzIEBAIFN0
cmluZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRTaGFkZXJTb3VyY2UoV2ViR0xTaGFk
ZXIqIHNoYWRlcikKICAgICByZXR1cm4gZW5zdXJlTm90TnVsbChzaGFkZXItPmdldFNvdXJjZSgp
KTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFRleFBh
cmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKLSAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBX
ZWJHTFRleHR1cmUqIHRleCA9IHZhbGlkYXRlVGV4dHVyZUJpbmRpbmcoImdldFRleFBhcmFtZXRl
ciIsIHRhcmdldCwgZmFsc2UpOwogICAgIGlmICghdGV4KQotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIEdDM0RpbnQgdmFsdWUgPSAw
OwogICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFX01BR19GSUxURVI6CkBAIC0yNDI0LDI3ICsyNDA3LDI3IEBAIFdlYkdMR2V0SW5mbyBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEZW51CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1M6CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1Q6CiAgICAgICAgIG1fY29udGV4
dC0+Z2V0VGV4UGFyYW1ldGVyaXYodGFyZ2V0LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZhbHVlKSk7CisgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmFsdWUpOwogICAgIGNhc2UgRXh0ZW5z
aW9uczNEOjpURVhUVVJFX01BWF9BTklTT1RST1BZX0VYVDogLy8gRVhUX3RleHR1cmVfZmlsdGVy
X2FuaXNvdHJvcGljCiAgICAgICAgIGlmIChtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykg
ewogICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRUZXhQYXJhbWV0ZXJpdih0YXJnZXQsIHBuYW1l
LCAmdmFsdWUpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDx1
bnNpZ25lZCBpbnQ+KHZhbHVlKSk7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHZhbHVlKTsKICAgICAgICAgfQogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0VGV4UGFyYW1ldGVyIiwgImludmFsaWQg
cGFyYW1ldGVyIG5hbWUsIEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyBub3QgZW5hYmxl
ZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRUZXhQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0
ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIH0KIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdCBXZWJHTFVuaWZv
cm1Mb2NhdGlvbiogdW5pZm9ybUxvY2F0aW9uKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0IFdlYkdMVW5p
Zm9ybUxvY2F0aW9uKiB1bmlmb3JtTG9jYXRpb24pCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RP
clBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0VW5pZm9ybSIsIHByb2dyYW0p
KQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIGlmICghdW5pZm9ybUxvY2F0aW9uIHx8IHVuaWZvcm1Mb2NhdGlvbi0+cHJvZ3JhbSgp
ICE9IHByb2dyYW0pIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAiZ2V0VW5pZm9ybSIsICJubyB1bmlmb3JtbG9jYXRpb24g
b3Igbm90IHZhbGlkIGZvciB0aGlzIHByb2dyYW0iKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgR0MzRGludCBsb2Nh
dGlvbiA9IHVuaWZvcm1Mb2NhdGlvbi0+bG9jYXRpb24oKTsKIApAQCAtMjUxOSw3ICsyNTAyLDcg
QEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2Vi
R0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdAogICAgIGRlZmF1bHQ6CiAgICAgICAgIC8vIENhbid0
IGhhbmRsZSB0aGlzIHR5cGUKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfVkFMVUUsICJnZXRVbmlmb3JtIiwgInVuaGFuZGxlZCB0eXBlIik7Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogICAgIHN3aXRjaCAoYmFzZVR5cGUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpGTE9BVDogewpAQCAtMjUyOSw4ICsyNTEyLDggQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdAog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1mdihvYmplY3RP
clplcm8ocHJvZ3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGggPT0g
MSkKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWVbMF0pOwotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PihGbG9hdDMyQXJyYXk6
OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlWzBdOwor
ICAgICAgICByZXR1cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCk7CiAgICAg
fQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OklOVDogewogICAgICAgICBHQzNEaW50IHZh
bHVlWzRdID0gezB9OwpAQCAtMjUzOSw4ICsyNTIyLDggQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25z
dAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1pdihvYmpl
Y3RPclplcm8ocHJvZ3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGgg
PT0gMSkKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWVbMF0pOwotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8SW50MzJBcnJheT4oSW50MzJBcnJheTo6
Y3JlYXRlKHZhbHVlLCBsZW5ndGgpKSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVbMF07Cisg
ICAgICAgIHJldHVybiBJbnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCk7CiAgICAgfQog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkJPT0w6IHsKICAgICAgICAgR0MzRGludCB2YWx1
ZVs0XSA9IHswfTsKQEAgLTI1NDksMTIgKzI1MzIsMTIgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25z
dAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1pdihvYmpl
Y3RPclplcm8ocHJvZ3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGgg
PiAxKSB7Ci0gICAgICAgICAgICBib29sIGJvb2xWYWx1ZVsxNl0gPSB7MH07CisgICAgICAgICAg
ICBWZWN0b3I8Ym9vbD4gdmVjdG9yKGxlbmd0aCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGogPSAwOyBqIDwgbGVuZ3RoOyBqKyspCi0gICAgICAgICAgICAgICAgYm9vbFZhbHVlW2pdID0g
c3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWVbal0pOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhib29sVmFsdWUsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgdmVjdG9yW2pdID0gdmFs
dWVbal07CisgICAgICAgICAgICByZXR1cm4gV1RGTW92ZSh2ZWN0b3IpOwogICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWVbMF0pKTsK
KyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJvb2w+KHZhbHVlWzBdKTsKICAgICB9CiAgICAg
ZGVmYXVsdDoKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTI1NjIsNyArMjU0NSw3IEBA
IFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdM
UHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QKIAogICAgIC8vIElmIHdlIGdldCBoZXJlLCBzb21ldGhp
bmcgd2VudCB3cm9uZyBpbiBvdXIgdW5mb3J0dW5hdGVseSBjb21wbGV4IGxvZ2ljIGFib3ZlCiAg
ICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUsICJn
ZXRVbmlmb3JtIiwgInVua25vd24gZXJyb3IiKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZlB0cjxXZWJHTFVuaWZvcm1Mb2NhdGlvbj4g
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybUxvY2F0aW9uKFdlYkdMUHJvZ3Jh
bSogcHJvZ3JhbSwgY29uc3QgU3RyaW5nJiBuYW1lKQpAQCAtMjYwMyw0MyArMjU4Niw0MyBAQCBS
ZWZQdHI8V2ViR0xVbmlmb3JtTG9jYXRpb24+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omdl
dFVuaWZvcm1Mb2NhdGlvbihXZWJHTAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1XZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VmVydGV4QXR0cmliKEdDM0R1aW50
IGluZGV4LCBHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldFZlcnRleEF0dHJpYihHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUpCiB7CiAg
ICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmIChpbmRleCA+PSBtX21h
eFZlcnRleEF0dHJpYnMpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfVkFMVUUsICJnZXRWZXJ0ZXhBdHRyaWIiLCAiaW5kZXggb3V0IG9mIHJh
bmdlIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogCiAgICAgY29uc3QgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OlZl
cnRleEF0dHJpYlN0YXRlJiBzdGF0ZSA9IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0VmVy
dGV4QXR0cmliU3RhdGUoaW5kZXgpOwogCiAgICAgaWYgKChpc1dlYkdMMigpIHx8IG1fYW5nbGVJ
bnN0YW5jZWRBcnJheXMpICYmIHBuYW1lID09IEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRU
UklCX0FSUkFZX0RJVklTT1JfQU5HTEUpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3Rh
dGUuZGl2aXNvcik7CisgICAgICAgIHJldHVybiBzdGF0ZS5kaXZpc29yOwogCiAgICAgc3dpdGNo
IChwbmFtZSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJS
QVlfQlVGRkVSX0JJTkRJTkc6CiAgICAgICAgIGlmICgoIWlzR0xFUzJDb21wbGlhbnQoKSAmJiAh
aW5kZXggJiYgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRWZXJ0ZXhBdHRyaWJTdGF0ZSgw
KS5idWZmZXJCaW5kaW5nID09IG1fdmVydGV4QXR0cmliMEJ1ZmZlcikKICAgICAgICAgICAgIHx8
ICFzdGF0ZS5idWZmZXJCaW5kaW5nCiAgICAgICAgICAgICB8fCAhc3RhdGUuYnVmZmVyQmluZGlu
Zy0+b2JqZWN0KCkpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4oc3RhdGUuYnVmZmVy
QmluZGluZykpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBz
dGF0ZS5idWZmZXJCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9B
VFRSSUJfQVJSQVlfRU5BQkxFRDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS5l
bmFibGVkKTsKKyAgICAgICAgcmV0dXJuIHN0YXRlLmVuYWJsZWQ7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEOgotICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKHN0YXRlLm5vcm1hbGl6ZWQpOworICAgICAgICByZXR1cm4gc3RhdGUu
bm9ybWFsaXplZDsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FS
UkFZX1NJWkU6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGUuc2l6ZSk7CisgICAg
ICAgIHJldHVybiBzdGF0ZS5zaXplOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRF
WF9BVFRSSUJfQVJSQVlfU1RSSURFOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRl
Lm9yaWdpbmFsU3RyaWRlKTsKKyAgICAgICAgcmV0dXJuIHN0YXRlLm9yaWdpbmFsU3RyaWRlOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRToKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS50eXBlKTsKKyAgICAgICAgcmV0dXJuIHN0
YXRlLnR5cGU7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VSUkVOVF9WRVJURVhfQVRU
UklCOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5
PihGbG9hdDMyQXJyYXk6OmNyZWF0ZShtX3ZlcnRleEF0dHJpYlZhbHVlW2luZGV4XS52YWx1ZSwg
NCkpKTsKKyAgICAgICAgcmV0dXJuIEZsb2F0MzJBcnJheTo6Y3JlYXRlKG1fdmVydGV4QXR0cmli
VmFsdWVbaW5kZXhdLnZhbHVlLCA0KTsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0VmVydGV4QXR0cmli
IiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTI2NDcsOCArMjYz
MCw3IEBAIGxvbmcgbG9uZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRy
aWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RP
clBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgR0MzRHNpemVpcHRyIHJlc3VsdCA9
IG1fY29udGV4dC0+Z2V0VmVydGV4QXR0cmliT2Zmc2V0KGluZGV4LCBwbmFtZSk7Ci0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4ocmVzdWx0KTsKKyAgICByZXR1cm4gbV9jb250ZXh0
LT5nZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoaW5kZXgsIHBuYW1lKTsKIH0KIAogR0MzRGJvb2xlYW4g
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6aXNCdWZmZXIoV2ViR0xCdWZmZXIqIGJ1ZmZlcikK
QEAgLTMxMTAsOCArMzA5Miw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVh
ZFBpeGVscyhHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoCiAjdW5kZWYgUEFD
S0VEX0lOVEVSTkFMX0ZPUk1BVF9DSEVDSwogCiAgICAgLy8gQ2FsY3VsYXRlIGFycmF5IHNpemUs
IHRha2luZyBpbnRvIGNvbnNpZGVyYXRpb24gb2YgUEFDS19BTElHTk1FTlQuCi0gICAgdW5zaWdu
ZWQgaW50IHRvdGFsQnl0ZXNSZXF1aXJlZCA9IDA7Ci0gICAgdW5zaWduZWQgaW50IHBhZGRpbmcg
PSAwOworICAgIHVuc2lnbmVkIHRvdGFsQnl0ZXNSZXF1aXJlZCA9IDA7CisgICAgdW5zaWduZWQg
cGFkZGluZyA9IDA7CiAgICAgaWYgKCFtX2lzUm9idXN0bmVzc0VYVFN1cHBvcnRlZCkgewogICAg
ICAgICBHQzNEZW51bSBlcnJvciA9IG1fY29udGV4dC0+Y29tcHV0ZUltYWdlU2l6ZUluQnl0ZXMo
Zm9ybWF0LCB0eXBlLCB3aWR0aCwgaGVpZ2h0LCBtX3BhY2tBbGlnbm1lbnQsICZ0b3RhbEJ5dGVz
UmVxdWlyZWQsICZwYWRkaW5nKTsKICAgICAgICAgaWYgKGVycm9yICE9IEdyYXBoaWNzQ29udGV4
dDNEOjpOT19FUlJPUikgewpAQCAtNDU4Nyw3ICs0NTY5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50
IHNpemUKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAvLyBEZXRlcm1pbmUgdGhlIG51bWJl
ciBvZiBlbGVtZW50cyB0aGUgYm91bmQgYnVmZmVyIGNhbiBob2xkLCBnaXZlbiB0aGUgb2Zmc2V0
LCBzaXplLCB0eXBlIGFuZCBzdHJpZGUKLSAgICB1bnNpZ25lZCBpbnQgdHlwZVNpemUgPSBzaXpl
SW5CeXRlcyh0eXBlKTsKKyAgICBhdXRvIHR5cGVTaXplID0gc2l6ZUluQnl0ZXModHlwZSk7CiAg
ICAgaWYgKCF0eXBlU2l6ZSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9FTlVNLCAidmVydGV4QXR0cmliUG9pbnRlciIsICJpbnZhbGlkIHR5
cGUiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNDU5OCw3ICs0NTgwLDcgQEAgdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBH
QzNEaW50IHNpemUKICAgICB9CiAgICAgR0MzRHNpemVpIGJ5dGVzUGVyRWxlbWVudCA9IHNpemUg
KiB0eXBlU2l6ZTsKIAotICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+c2V0VmVydGV4QXR0
cmliU3RhdGUoaW5kZXgsIGJ5dGVzUGVyRWxlbWVudCwgc2l6ZSwgdHlwZSwgbm9ybWFsaXplZCwg
c3RyaWRlLCBzdGF0aWNfY2FzdDxHQzNEaW50cHRyPihvZmZzZXQpLCBtX2JvdW5kQXJyYXlCdWZm
ZXIpOworICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+c2V0VmVydGV4QXR0cmliU3RhdGUo
aW5kZXgsIGJ5dGVzUGVyRWxlbWVudCwgc2l6ZSwgdHlwZSwgbm9ybWFsaXplZCwgc3RyaWRlLCBz
dGF0aWNfY2FzdDxHQzNEaW50cHRyPihvZmZzZXQpLCAqbV9ib3VuZEFycmF5QnVmZmVyKTsKICAg
ICBtX2NvbnRleHQtPnZlcnRleEF0dHJpYlBvaW50ZXIoaW5kZXgsIHNpemUsIHR5cGUsIG5vcm1h
bGl6ZWQsIHN0cmlkZSwgc3RhdGljX2Nhc3Q8R0MzRGludHB0cj4ob2Zmc2V0KSk7CiB9CiAKQEAg
LTQ2ODksNyArNDY3MSw3IEBAIFBsYXRmb3JtTGF5ZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogICAgIHJldHVybiAoIWlzQ29udGV4dExvc3QoKSAm
JiAhbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKSA/IG1fY29udGV4dC0+cGxhdGZvcm1MYXll
cigpIDogMDsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVTaGFy
ZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6cmVtb3ZlU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0JiBvYmplY3Qp
CiB7CiAgICAgaWYgKG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikKICAgICAgICAgcmV0dXJu
OwpAQCAtNDY5Nyw3ICs0Njc5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpy
ZW1vdmVTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCkKICAgICBtX2NvbnRl
eHRHcm91cC0+cmVtb3ZlT2JqZWN0KG9iamVjdCk7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6YWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QpCit2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZFNoYXJlZE9iamVjdChXZWJHTFNoYXJl
ZE9iamVjdCYgb2JqZWN0KQogewogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24p
CiAgICAgICAgIHJldHVybjsKQEAgLTQ3MDYsMjEgKzQ2ODgsMjEgQEAgdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjphZGRTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVj
dCkKICAgICBtX2NvbnRleHRHcm91cC0+YWRkT2JqZWN0KG9iamVjdCk7CiB9CiAKLXZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVtb3ZlQ29udGV4dE9iamVjdChXZWJHTENvbnRleHRP
YmplY3QqIG9iamVjdCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVtb3ZlQ29u
dGV4dE9iamVjdChXZWJHTENvbnRleHRPYmplY3QmIG9iamVjdCkKIHsKICAgICBpZiAobV9pc1Bl
bmRpbmdQb2xpY3lSZXNvbHV0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NvbnRleHRP
YmplY3RzLnJlbW92ZShvYmplY3QpOworICAgIG1fY29udGV4dE9iamVjdHMucmVtb3ZlKCZvYmpl
Y3QpOwogfQogCi12b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZENvbnRleHRPYmpl
Y3QoV2ViR0xDb250ZXh0T2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmFkZENvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0JiBvYmplY3QpCiB7CiAg
ICAgaWYgKG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgQVNTRVJUKCFpc0NvbnRleHRMb3N0KCkpOwotICAgIG1fY29udGV4dE9iamVjdHMuYWRkKG9i
amVjdCk7CisgICAgbV9jb250ZXh0T2JqZWN0cy5hZGQoJm9iamVjdCk7CiB9CiAKIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpCkBAIC00
NzU4LDU2ICs0NzQwLDU2IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2FuU3Vz
cGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Qm9vbGVhblBhcmFt
ZXRlcihHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGJvb2xlYW4g
dmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0Qm9vbGVhbnYocG5hbWUsICZ2YWx1ZSk7Ci0g
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxib29sPih2YWx1ZSkpOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxib29sPih2YWx1ZSk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5h
bWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuQXJyYXlQ
YXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKHBuYW1lICE9IEdyYXBoaWNzQ29u
dGV4dDNEOjpDT0xPUl9XUklURU1BU0spIHsKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygwLCAwKTsKKyAgICAgICAgcmV0dXJuIFZlY3Rvcjxi
b29sPiB7IH07CiAgICAgfQotICAgIEdDM0Rib29sZWFuIHZhbHVlWzRdID0gezB9OworICAgIEdD
M0Rib29sZWFuIHZhbHVlWzRdID0geyAwIH07CiAgICAgbV9jb250ZXh0LT5nZXRCb29sZWFudihw
bmFtZSwgdmFsdWUpOwotICAgIGJvb2wgYm9vbFZhbHVlWzRdOwotICAgIGZvciAoaW50IGlpID0g
MDsgaWkgPCA0OyArK2lpKQotICAgICAgICBib29sVmFsdWVbaWldID0gc3RhdGljX2Nhc3Q8Ym9v
bD4odmFsdWVbaWldKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKGJvb2xWYWx1ZSwgNCk7Cisg
ICAgVmVjdG9yPGJvb2w+IHZlY3Rvcig0KTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
NDsgKytpKQorICAgICAgICB2ZWN0b3JbaV0gPSB2YWx1ZVtpXTsKKyAgICByZXR1cm4gV1RGTW92
ZSh2ZWN0b3IpOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0RmxvYXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRGbG9hdFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBH
QzNEZmxvYXQgdmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0RmxvYXR2KHBuYW1lLCAmdmFs
dWUpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgIHJldHVybiB2YWx1ZTsK
IH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEludFBhcmFt
ZXRlcihHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldEludFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNEaW50IHZhbHVlID0g
MDsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KHBuYW1lLCAmdmFsdWUpOwotICAgIHJldHVy
biBXZWJHTEdldEluZm8odmFsdWUpOworICAgIHJldHVybiB2YWx1ZTsKIH0KIAotV2ViR0xHZXRJ
bmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEdD
M0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5z
aWduZWRJbnRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGludCB2YWx1ZSA9
IDA7CiAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihwbmFtZSwgJnZhbHVlKTsKLSAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odmFsdWUpKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVlKTsKIH0KIAotV2ViR0xHZXRJbmZvIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEludDY0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0SW50NjRQYXJhbWV0ZXIo
R0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGludDY0IHZhbHVlID0gMDsKICAgICBtX2NvbnRl
eHQtPmdldEludGVnZXI2NHYocG5hbWUsICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5m
byh2YWx1ZSk7CisgICAgcmV0dXJuIHZhbHVlOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBu
YW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xGbG9hdEFy
cmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdDM0RmbG9hdCB2YWx1ZVs0XSA9
IHswfTsKICAgICBtX2NvbnRleHQtPmdldEZsb2F0dihwbmFtZSwgdmFsdWUpOwpAQCAtNDgyNSwx
MCArNDgwNywxMCBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYQogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgfQotICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFz
c1JlZlB0cjxGbG9hdDMyQXJyYXk+KEZsb2F0MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgp
KSk7CisgICAgcmV0dXJuIEZsb2F0MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgpOwogfQog
Ci1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJh
eVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAg
R0MzRGludCB2YWx1ZVs0XSA9IHswfTsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KHBuYW1l
LCB2YWx1ZSk7CkBAIC00ODQ0LDcgKzQ4MjYsNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZQog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgfQotICAgIHJldHVy
biBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxJbnQzMkFycmF5PihJbnQzMkFycmF5OjpjcmVhdGUo
dmFsdWUsIGxlbmd0aCkpKTsKKyAgICByZXR1cm4gSW50MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBs
ZW5ndGgpOwogfQogCiBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrVGV4dHVy
ZUNvbXBsZXRlbmVzcyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIGJvb2wgcHJlcGFyZVRvRHJh
dykKQEAgLTUwNjgsNyArNTA1MCw3IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
dmFsaWRhdGVDb21wcmVzc2VkVGV4RnVuY0RhdGEoY29uc3QgY2hhciogZnVuY3RpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICB1bnNpZ25lZCBpbnQgYnl0ZXNSZXF1aXJlZCA9
IDA7CisgICAgdW5zaWduZWQgYnl0ZXNSZXF1aXJlZCA9IDA7CiAKICAgICBzd2l0Y2ggKGZvcm1h
dCkgewogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhU
OgpAQCAtNTMyNSwxNyArNTMwNywxNiBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OnZhbGlkYXRlVW5pZm9ybU1hdHJpeFBhcmFtZXRlcnMoY29uc3QgY2hhciogZnVuYwogCiBXZWJH
TEJ1ZmZlciogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVCdWZmZXJEYXRhUGFy
YW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDM0RlbnVtIHRhcmdldCwgR0MzRGVu
dW0gdXNhZ2UpCiB7Ci0gICAgV2ViR0xCdWZmZXIqIGJ1ZmZlciA9IDA7CisgICAgc3RkOjpvcHRp
b25hbDxXZWJHTEJ1ZmZlcio+IGJ1ZmZlcjsKICAgICBzd2l0Y2ggKHRhcmdldCkgewogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVSOgotICAgICAgICBidWZm
ZXIgPSBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1lbnRBcnJheUJ1ZmZlcigpLmdl
dCgpOworICAgICAgICBidWZmZXIgPSBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1l
bnRBcnJheUJ1ZmZlcigpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpBUlJBWV9CVUZGRVI6CiAgICAgICAgIGJ1ZmZlciA9IG1fYm91bmRBcnJheUJ1ZmZlci5n
ZXQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICNpZiBFTkFCTEUoV0VCR0wyKQot
ICAgICAgICBib29sIHN1Y2Nlc3MgPSB0cnVlOwogICAgICAgICBpZiAoaXNXZWJHTDIoKSkgewog
ICAgICAgICAgICAgc3dpdGNoICh0YXJnZXQpIHsKICAgICAgICAgICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkNPUFlfUkVBRF9CVUZGRVI6CkBAIC01MzU2LDE5ICs1MzM3LDE1IEBAIFdlYkdM
QnVmZmVyKiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxpZGF0ZUJ1ZmZlckRhdGFQYXJh
bWV0ZXJzKGNvbnN0IGNoYXIqCiAgICAgICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpV
TklGT1JNX0JVRkZFUjoKICAgICAgICAgICAgICAgICBidWZmZXIgPSBtX2JvdW5kVW5pZm9ybUJ1
ZmZlci5nZXQoKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBm
YWxzZTsKLSAgICAgICAgaWYgKHN1Y2Nlc3MpCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGlmIChidWZmZXIpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICNlbmRp
ZgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIHRhcmdldCIpOwogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICB9Ci0gICAgaWYgKCFidWZmZXIpIHsKKyAgICBpZiAoIWJ1ZmZlciB8fCAhYnVm
ZmVyLnZhbHVlKCkpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfT1BFUkFUSU9OLCBmdW5jdGlvbk5hbWUsICJubyBidWZmZXIiKTsKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtNTM3Niw3ICs1MzUzLDcgQEAgV2ViR0xCdWZm
ZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlQnVmZmVyRGF0YVBhcmFtZXRl
cnMoY29uc3QgY2hhcioKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVFJFQU1fRFJBVzoK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEFUSUNfRFJBVzoKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEWU5BTUlDX0RSQVc6Ci0gICAgICAgIHJldHVybiBidWZmZXI7CisgICAg
ICAgIHJldHVybiBidWZmZXIudmFsdWUoKTsKICAgICB9CiAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCB1
c2FnZSIpOwogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IDczOTNhMzg2Mjgz
M2ZjYjg2YmIxNzFiMjA2YjI3YmNlZDliMzllY2YuLmQ5MWI4NDNiNzlkY2YzMmEyYzRkNDFjZmI1
Y2M0NjhhNTNkN2U2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTMwLDEzICszMCwxMCBAQAogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNs
dWRlICJUaW1lci5oIgorI2luY2x1ZGUgIldlYkdMQW55LmgiCiAjaW5jbHVkZSAiV2ViR0xDb250
ZXh0QXR0cmlidXRlcy5oIgotI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgotI2luY2x1ZGUgIldl
YkdMT2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViR0xUZXh0dXJlLmgiCiAjaW5jbHVkZSA8bWVtb3J5
PgotI2luY2x1ZGUgPHJ1bnRpbWUvRmxvYXQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9J
bnQzMkFycmF5Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDgsNyArNDUsNiBAQCBj
bGFzcyBFWFRzUkdCOwogY2xhc3MgRVhURnJhZ0RlcHRoOwogY2xhc3MgSFRNTEltYWdlRWxlbWVu
dDsKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7Ci1jbGFzcyBJbWFnZUJ1ZmZlcjsKIGNsYXNzIElt
YWdlRGF0YTsKIGNsYXNzIEludFNpemU7CiBjbGFzcyBPRVNTdGFuZGFyZERlcml2YXRpdmVzOwpA
QCAtMTkxLDI0ICsxODcsMjQgQEAgcHVibGljOgogICAgIFJlZlB0cjxXZWJHTEFjdGl2ZUluZm8+
IGdldEFjdGl2ZVVuaWZvcm0oV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgaW5kZXgpOwogICAgIGJv
b2wgZ2V0QXR0YWNoZWRTaGFkZXJzKFdlYkdMUHJvZ3JhbSosIFZlY3RvcjxSZWZQdHI8V2ViR0xT
aGFkZXI+PiYpOwogICAgIEdDM0RpbnQgZ2V0QXR0cmliTG9jYXRpb24oV2ViR0xQcm9ncmFtKiwg
Y29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0QnVmZmVyUGFyYW1ldGVy
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldEJ1ZmZl
clBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKTsKICAgICBzdGQ6Om9w
dGlvbmFsPFdlYkdMQ29udGV4dEF0dHJpYnV0ZXM+IGdldENvbnRleHRBdHRyaWJ1dGVzKCk7CiAg
ICAgR0MzRGVudW0gZ2V0RXJyb3IoKTsKICAgICB2aXJ0dWFsIFdlYkdMRXh0ZW5zaW9uKiBnZXRF
eHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKSA9IDA7Ci0gICAgdmlydHVhbCBXZWJHTEdldElu
Zm8gZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpID0gMDsKLSAgICB2aXJ0dWFsIFdlYkdM
R2V0SW5mbyBnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpID0gMDsKLSAgICBXZWJHTEdldElu
Zm8gZ2V0UHJvZ3JhbVBhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNEZW51bSBwbmFtZSk7Cisg
ICAgdmlydHVhbCBXZWJHTEFueSBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBwbmFtZSkgPSAwOwor
ICAgIHZpcnR1YWwgV2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSA9IDA7Cisg
ICAgV2ViR0xBbnkgZ2V0UHJvZ3JhbVBhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNEZW51bSBw
bmFtZSk7CiAgICAgU3RyaW5nIGdldFByb2dyYW1JbmZvTG9nKFdlYkdMUHJvZ3JhbSopOwotICAg
IFdlYkdMR2V0SW5mbyBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEZW51bSBwbmFtZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFNoYWRlclBhcmFtZXRlcihXZWJH
TFNoYWRlciosIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBnZXRSZW5kZXJidWZmZXJQ
YXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkg
Z2V0U2hhZGVyUGFyYW1ldGVyKFdlYkdMU2hhZGVyKiwgR0MzRGVudW0gcG5hbWUpOwogICAgIFN0
cmluZyBnZXRTaGFkZXJJbmZvTG9nKFdlYkdMU2hhZGVyKik7CiAgICAgUmVmUHRyPFdlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0PiBnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hh
ZGVyVHlwZSwgR0MzRGVudW0gcHJlY2lzaW9uVHlwZSk7CiAgICAgU3RyaW5nIGdldFNoYWRlclNv
dXJjZShXZWJHTFNoYWRlciopOwogICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gZ2V0U3VwcG9y
dGVkRXh0ZW5zaW9ucygpID0gMDsKLSAgICBXZWJHTEdldEluZm8gZ2V0VGV4UGFyYW1ldGVyKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRVbmlm
b3JtKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKik7CisgICAgV2Vi
R0xBbnkgZ2V0VGV4UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOwor
ICAgIFdlYkdMQW55IGdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiwgY29uc3QgV2ViR0xVbmlmb3Jt
TG9jYXRpb24qKTsKICAgICBSZWZQdHI8V2ViR0xVbmlmb3JtTG9jYXRpb24+IGdldFVuaWZvcm1M
b2NhdGlvbihXZWJHTFByb2dyYW0qLCBjb25zdCBTdHJpbmcmKTsKLSAgICBXZWJHTEdldEluZm8g
Z2V0VmVydGV4QXR0cmliKEdDM0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2Vi
R0xBbnkgZ2V0VmVydGV4QXR0cmliKEdDM0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSk7CiAg
ICAgbG9uZyBsb25nIGdldFZlcnRleEF0dHJpYk9mZnNldChHQzNEdWludCBpbmRleCwgR0MzRGVu
dW0gcG5hbWUpOwogCiAgICAgdmlydHVhbCB2b2lkIGhpbnQoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
ZW51bSBtb2RlKSA9IDA7CkBAIC0zMjMsOCArMzE5LDggQEAgcHVibGljOgogICAgIHZvaWQgcGFp
bnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKSBvdmVycmlkZTsKICAgICBSZWZQdHI8SW1hZ2VE
YXRhPiBwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSgpOwogCi0gICAgdm9pZCByZW1v
dmVTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqKTsKLSAgICB2b2lkIHJlbW92ZUNvbnRl
eHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0Kik7CisgICAgdm9pZCByZW1vdmVTaGFyZWRPYmpl
Y3QoV2ViR0xTaGFyZWRPYmplY3QmKTsKKyAgICB2b2lkIHJlbW92ZUNvbnRleHRPYmplY3QoV2Vi
R0xDb250ZXh0T2JqZWN0Jik7CiAgICAgCiAgICAgdW5zaWduZWQgZ2V0TWF4VmVydGV4QXR0cmli
cygpIGNvbnN0IHsgcmV0dXJuIG1fbWF4VmVydGV4QXR0cmliczsgfQogCkBAIC0zMzUsNyArMzMx
LDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZShIVE1MQ2FudmFzRWxlbWVudCYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwotICAgIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWZQdHI8R3JhcGhpY3ND
b250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOworICAgIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYs
IFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwogCiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMRHJhd0J1
ZmZlcnM7CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMRnJhbWVidWZmZXI7CkBAIC0zNjAsOCArMzU2
LDggQEAgcHJvdGVjdGVkOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdCBvdmVycmlkZTsKICAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24o
KSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgYWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVk
T2JqZWN0Kik7Ci0gICAgdm9pZCBhZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCop
OworICAgIHZvaWQgYWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Jik7CisgICAgdm9p
ZCBhZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCYpOwogICAgIHZvaWQgZGV0YWNo
QW5kUmVtb3ZlQWxsT2JqZWN0cygpOwogCiAgICAgdm9pZCBkZXN0cm95R3JhcGhpY3NDb250ZXh0
M0QoKTsKQEAgLTQxNCw3ICs0MTAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gb24gaG93IGV4YWN0
bHkgdGhlIHBsYXRmb3JtIGRpc2NvdmVycyB0aGF0IHRoZSBjb250ZXh0IHdhcyBsb3N0LiBGb3Ig
YmV0dGVyCiAgICAgLy8gcG9ydGFiaWxpdHkgd2UgYWx3YXlzIGRlZmVyIHRoZSBkaXNwYXRjaCBv
ZiB0aGUgZXZlbnQuCiAgICAgVGltZXIgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lcjsK
LSAgICBib29sIG1fcmVzdG9yZUFsbG93ZWQ7CisgICAgYm9vbCBtX3Jlc3RvcmVBbGxvd2VkIHsg
ZmFsc2UgfTsKICAgICBUaW1lciBtX3Jlc3RvcmVUaW1lcjsKIAogICAgIGJvb2wgbV9uZWVkc1Vw
ZGF0ZTsKQEAgLTQzMiwxMiArNDI4LDEwIEBAIHByb3RlY3RlZDoKIAogICAgIFJlZlB0cjxXZWJH
TFZlcnRleEFycmF5T2JqZWN0QmFzZT4gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiAgICAg
UmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlPiBtX2JvdW5kVmVydGV4QXJyYXlPYmpl
Y3Q7Ci0gICAgdm9pZCBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KFBhc3NSZWZQdHI8V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2U+IGFycmF5T2JqZWN0KQorCisgICAgdm9pZCBzZXRCb3VuZFZl
cnRleEFycmF5T2JqZWN0KFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKiBhcnJheU9iamVjdCkK
ICAgICB7Ci0gICAgICAgIGlmIChhcnJheU9iamVjdCkKLSAgICAgICAgICAgIG1fYm91bmRWZXJ0
ZXhBcnJheU9iamVjdCA9IGFycmF5T2JqZWN0OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBt
X2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdDsKKyAg
ICAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0ID0gYXJyYXlPYmplY3QgPyBhcnJheU9iamVj
dCA6IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OwogICAgIH0KICAgICAKICAgICBjbGFzcyBW
ZXJ0ZXhBdHRyaWJWYWx1ZSB7CkBAIC00OTMsMTIgKzQ4NywxMiBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+W10+IG1fYnVm
ZmVyczsKICAgICAgICAgaW50IG1fY2FwYWNpdHk7CiAgICAgfTsKLSAgICBMUlVJbWFnZUJ1ZmZl
ckNhY2hlIG1fZ2VuZXJhdGVkSW1hZ2VDYWNoZTsKKyAgICBMUlVJbWFnZUJ1ZmZlckNhY2hlIG1f
Z2VuZXJhdGVkSW1hZ2VDYWNoZSB7IDAgfTsKIAogICAgIEdDM0RpbnQgbV9tYXhUZXh0dXJlU2l6
ZTsKICAgICBHQzNEaW50IG1fbWF4Q3ViZU1hcFRleHR1cmVTaXplOwogICAgIEdDM0RpbnQgbV9t
YXhSZW5kZXJidWZmZXJTaXplOwotICAgIEdDM0RpbnQgbV9tYXhWaWV3cG9ydERpbXNbMl07Cisg
ICAgR0MzRGludCBtX21heFZpZXdwb3J0RGltc1syXSB7IDAsIDAgfTsKICAgICBHQzNEaW50IG1f
bWF4VGV4dHVyZUxldmVsOwogICAgIEdDM0RpbnQgbV9tYXhDdWJlTWFwVGV4dHVyZUxldmVsOwog
CkBAIC01MTMsOCArNTA3LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV91bnBhY2tGbGlwWTsK
ICAgICBib29sIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYTsKICAgICBHQzNEZW51bSBtX3VucGFj
a0NvbG9yc3BhY2VDb252ZXJzaW9uOwotICAgIGJvb2wgbV9jb250ZXh0TG9zdDsKLSAgICBMb3N0
Q29udGV4dE1vZGUgbV9jb250ZXh0TG9zdE1vZGU7CisgICAgYm9vbCBtX2NvbnRleHRMb3N0IHsg
ZmFsc2UgfTsKKyAgICBMb3N0Q29udGV4dE1vZGUgbV9jb250ZXh0TG9zdE1vZGUgeyBTeW50aGV0
aWNMb3N0Q29udGV4dCB9OwogICAgIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgbV9hdHRyaWJ1dGVz
OwogCiAgICAgYm9vbCBtX2xheWVyQ2xlYXJlZDsKQEAgLTUzNSwxNCArNTI5LDE0IEBAIHByb3Rl
Y3RlZDoKICAgICBib29sIG1faXNEZXB0aFN0ZW5jaWxTdXBwb3J0ZWQ7CiAgICAgYm9vbCBtX2lz
Um9idXN0bmVzc0VYVFN1cHBvcnRlZDsKIAotICAgIGJvb2wgbV9zeW50aGVzaXplZEVycm9yc1Rv
Q29uc29sZTsKKyAgICBib29sIG1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUgeyB0cnVlIH07
CiAgICAgaW50IG1fbnVtR0xFcnJvcnNUb0NvbnNvbGVBbGxvd2VkOwogCiAgICAgLy8gQSBXZWJH
TFJlbmRlcmluZ0NvbnRleHQgY2FuIGJlIGNyZWF0ZWQgaW4gYSBzdGF0ZSB3aGVyZSBpdCBhcHBl
YXJzIGFzCiAgICAgLy8gYSB2YWxpZCBhbmQgYWN0aXZlIGNvbnRleHQsIGJ1dCB3aWxsIG5vdCBl
eGVjdXRlIGFueSBpbXBvcnRhbnQgb3BlcmF0aW9ucwogICAgIC8vIHVudGlsIGl0cyBsb2FkIHBv
bGljeSBpcyBjb21wbGV0ZWx5IHJlc29sdmVkLgotICAgIGJvb2wgbV9pc1BlbmRpbmdQb2xpY3lS
ZXNvbHV0aW9uOwotICAgIGJvb2wgbV9oYXNSZXF1ZXN0ZWRQb2xpY3lSZXNvbHV0aW9uOworICAg
IGJvb2wgbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uIHsgZmFsc2UgfTsKKyAgICBib29sIG1f
aGFzUmVxdWVzdGVkUG9saWN5UmVzb2x1dGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCk7CiAKICAgICAvLyBFbmFibGVkIGV4dGVuc2lvbiBvYmplY3RzLiBG
SVhNRTogTW92ZSB0aGVzZSB0byBXZWJHTDFSZW5kZXJpbmdDb250ZXh0LCBub3QgbmVlZGVkIGZv
ciBXZWJHTDIKQEAgLTU2OSwxNCArNTYzLDE0IEBAIHByb3RlY3RlZDoKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8QU5HTEVJbnN0YW5jZWRBcnJheXM+IG1fYW5nbGVJbnN0YW5jZWRBcnJheXM7CiAKICAg
ICAvLyBIZWxwZXJzIGZvciBnZXRQYXJhbWV0ZXIgYW5kIG90aGVycwotICAgIFdlYkdMR2V0SW5m
byBnZXRCb29sZWFuUGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0Qm9v
bGVhbkFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0RmxvYXRQ
YXJhbWV0ZXIoR0MzRGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRJbnRQYXJhbWV0ZXIoR0Mz
RGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihHQzNEZW51
bSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEludDY0UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBX
ZWJHTEdldEluZm8gZ2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBX
ZWJHTEdldEluZm8gZ2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgV2Vi
R0xBbnkgZ2V0Qm9vbGVhblBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgV2ViR0xBbnkgZ2V0Qm9v
bGVhbkFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBXZWJHTEFueSBnZXRGbG9hdFBhcmFt
ZXRlcihHQzNEZW51bSk7CisgICAgV2ViR0xBbnkgZ2V0SW50UGFyYW1ldGVyKEdDM0RlbnVtKTsK
KyAgICBXZWJHTEFueSBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgV2Vi
R0xBbnkgZ2V0SW50NjRQYXJhbWV0ZXIoR0MzRGVudW0pOworICAgIFdlYkdMQW55IGdldFdlYkdM
RmxvYXRBcnJheVBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgV2ViR0xBbnkgZ2V0V2ViR0xJbnRB
cnJheVBhcmFtZXRlcihHQzNEZW51bSk7CiAKICAgICAvLyBDbGVhciB0aGUgYmFja2J1ZmZlciBp
ZiBpdCB3YXMgY29tcG9zaXRlZCBzaW5jZSB0aGUgbGFzdCBvcGVyYXRpb24uCiAgICAgLy8gY2xl
YXJNYXNrIGlzIHNldCB0byB0aGUgYml0ZmllbGQgb2YgYW55IGNsZWFyIHRoYXQgd291bGQgaGFw
cGVuIGFueXdheSBhdCB0aGlzIHRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMU2hhcmVkT2JqZWN0LmNwcAppbmRleCAzNmRjMTVkM2EwZTdlNWY2YTk3MDYxZTRjM2Jk
M2MyNDFjMWI4NGU5Li45MzA1NTk3ZDEyZTRlYTZiZGRlNjdhOWJlNTUxNTM2MTQzNzdkZjk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3Bw
CkBAIC00MywyMiArNDMsMjIgQEAgV2ViR0xTaGFyZWRPYmplY3Q6OldlYkdMU2hhcmVkT2JqZWN0
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiBXZWJHTFNoYXJlZE9iamVjdDo6
fldlYkdMU2hhcmVkT2JqZWN0KCkKIHsKICAgICBpZiAobV9jb250ZXh0R3JvdXApCi0gICAgICAg
IG1fY29udGV4dEdyb3VwLT5yZW1vdmVPYmplY3QodGhpcyk7CisgICAgICAgIG1fY29udGV4dEdy
b3VwLT5yZW1vdmVPYmplY3QoKnRoaXMpOwogfQogCiB2b2lkIFdlYkdMU2hhcmVkT2JqZWN0Ojpk
ZXRhY2hDb250ZXh0R3JvdXAoKQogewogICAgIGRldGFjaCgpOwogICAgIGlmIChtX2NvbnRleHRH
cm91cCkgewotICAgICAgICBkZWxldGVPYmplY3QoMCk7Ci0gICAgICAgIG1fY29udGV4dEdyb3Vw
LT5yZW1vdmVPYmplY3QodGhpcyk7Ci0gICAgICAgIG1fY29udGV4dEdyb3VwID0gMDsKKyAgICAg
ICAgZGVsZXRlT2JqZWN0KG51bGxwdHIpOworICAgICAgICBtX2NvbnRleHRHcm91cC0+cmVtb3Zl
T2JqZWN0KCp0aGlzKTsKKyAgICAgICAgbV9jb250ZXh0R3JvdXAgPSBudWxscHRyOwogICAgIH0K
IH0KIAogR3JhcGhpY3NDb250ZXh0M0QqIFdlYkdMU2hhcmVkT2JqZWN0OjpnZXRBR3JhcGhpY3ND
b250ZXh0M0QoKSBjb25zdAogewotICAgIHJldHVybiBtX2NvbnRleHRHcm91cCA/IG1fY29udGV4
dEdyb3VwLT5nZXRBR3JhcGhpY3NDb250ZXh0M0QoKSA6IDA7CisgICAgcmV0dXJuIG1fY29udGV4
dEdyb3VwID8gJm1fY29udGV4dEdyb3VwLT5nZXRBR3JhcGhpY3NDb250ZXh0M0QoKSA6IG51bGxw
dHI7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
U2hhcmVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9i
amVjdC5oCmluZGV4IGFiZTQ4MDMzMzcyYzk1NmNjNzEzMGViN2Y3YmZmZmRjZDFhOWY1N2IuLjAx
MDhiOTQyMTFjZTVhMzFjNjk2NmY1MzQwZGQ5NTQxNGQyYTMwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaApAQCAtNDksNyArNDksNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzU2hhZGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTeW5jKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNUZXh0dXJlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNUcmFuc2Zvcm1GZWVkYmFjaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzVmVydGV4QXJyYXlPYmplY3QoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCiAgICAgYm9vbCB2YWxpZGF0ZShjb25zdCBXZWJHTENvbnRleHRHcm91cCogY29u
dGV4dEdyb3VwLCBjb25zdCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJikgY29uc3Qgb3ZlcnJp
ZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3Jt
RmVlZGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVl
ZGJhY2suaAppbmRleCA2OWNmOGU3YmI1NDE4ZWFhOWU0NTY5MjExNDA4ZjQ3NmIyNmE2Nzg2Li45
Y2NmMDNiOGRlYjZhYjZlOWEwZGNjNmJlNzU1M2IxMTFkMzQ1NDA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCkBAIC0zOSw5
ICszOSw2IEBAIHByb3RlY3RlZDoKICAgICBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmKTsKIAogICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGlj
c0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAg
IGJvb2wgaXNUcmFuc2Zvcm1GZWVkYmFjaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKaW5kZXggN2ZhNjljOWE0
OTRkYmVlYTlkYmViZjg5ZTg1ZjQzZjljZmQwMjg0OS4uMTU4ZmZkZjg2YmJiMTgwNjhiOGU0ZjE0
MjZhMzVlNDk2MzEwNGMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKQEAgLTMzLDIzICszMywyMyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgCi1SZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4gV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwg
VkFPVHlwZSB0eXBlKQorUmVmPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IFdlYkdMVmVydGV4QXJy
YXlPYmplY3Q6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIFR5cGUgdHlw
ZSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTFZlcnRleEFycmF5T2JqZWN0KGN0
eCwgdHlwZSkpOwogfQogCiBXZWJHTFZlcnRleEFycmF5T2JqZWN0Ojp+V2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdCgpCiB7Ci0gICAgZGVsZXRlT2JqZWN0KDApOworICAgIGRlbGV0ZU9iamVjdChudWxs
cHRyKTsKIH0KIAotV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIFZBT1R5cGUgdHlwZSkKK1dlYkdMVmVy
dGV4QXJyYXlPYmplY3Q6OldlYkdMVmVydGV4QXJyYXlPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYgY3R4LCBUeXBlIHR5cGUpCiAgICAgOiBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFz
ZShjdHgsIHR5cGUpCiB7CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVE
ZWZhdWx0OgorICAgIGNhc2UgVHlwZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVm
YXVsdDoKKyAgICBjYXNlIFR5cGU6OlVzZXI6CiAgICAgICAgIHNldE9iamVjdChjb250ZXh0KCkt
PmdyYXBoaWNzQ29udGV4dDNEKCktPmNyZWF0ZVZlcnRleEFycmF5KCkpOwogICAgICAgICBicmVh
azsKICAgICB9CkBAIC01OCw5ICs1OCw5IEBAIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OldlYkdM
VmVydGV4QXJyYXlPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWCiB2b2lk
IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0
M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamVjdCBvYmplY3QpCiB7CiAgICAgc3dpdGNoICht
X3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVEZWZhdWx0OgorICAgIGNhc2UgVHlwZTo6RGVmYXVs
dDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKKyAgICBjYXNlIFR5cGU6OlVzZXI6CiAg
ICAgICAgIGNvbnRleHQzZC0+ZGVsZXRlVmVydGV4QXJyYXkob2JqZWN0KTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdC5oCmluZGV4IDViNDljNzA4YTQ2MjU0ZGU1OTBlMWMwNmRjYzk4NjJhNjY0
YzMxNDIuLjliMzFmMDE2MzE0OGFhNjBkYjM2OGVlNTcwNTJjZDQ1ZDJhN2U5NzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmgK
QEAgLTI3LDggKzI3LDYgQEAKIAogI2lmIEVOQUJMRShXRUJHTDIpCiAKLSNpbmNsdWRlICJXZWJH
TEJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkdMQ29udGV4dE9iamVjdC5oIgogI2luY2x1ZGUgIldl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM3
LDEyICszNSwxMSBAQCBjbGFzcyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OwogCiBjbGFzcyBXZWJH
TFZlcnRleEFycmF5T2JqZWN0IGZpbmFsIDogcHVibGljIFdlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IGNy
ZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVkFPVHlwZSk7CisgICAgc3RhdGljIFJl
ZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSYsIFR5cGUpOwogICAgIHZpcnR1YWwgfldlYkdMVmVydGV4QXJyYXlPYmplY3QoKTsKIHByaXZh
dGU6Ci0gICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
JiwgVkFPVHlwZSk7Ci0gICAgYm9vbCBpc1RyYW5zZm9ybUZlZWRiYWNrKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQotICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCos
IFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3Qo
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFR5cGUpOworICAgIHZvaWQgZGVsZXRlT2JqZWN0
SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIGZpbmFsOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCmluZGV4IDY5NjQ5YzYyZjZl
MWRiZWYyZjllZGE2MTdjNDI0MjRkZjczZjE3NWYuLmUxYWZiYjJhZGJjYjY3MTRhYmQ0MDYxM2Iz
OThiZTdjNGNiNGJjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKQEAgLTI0LDI0ICsyNCwyMiBAQAog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0QmFzZS5oIgogCiAjaWYgRU5BQkxFKFdFQkdMKQotI2luY2x1ZGUgIldlYkdMVmVydGV4QXJy
YXlPYmplY3RCYXNlLmgiCiAKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6Oldl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwg
VkFPVHlwZSB0eXBlKQotICAgIDogV2ViR0xDb250ZXh0T2JqZWN0KGN0eCkKK1dlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiBjb250ZXh0LCBUeXBlIHR5cGUpCisgICAgOiBXZWJHTENvbnRleHRPYmpl
Y3QoY29udGV4dCkKICAgICAsIG1fdHlwZSh0eXBlKQotICAgICwgbV9oYXNFdmVyQmVlbkJvdW5k
KGZhbHNlKQotICAgICwgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlcigwKQogewotICAgIG1fdmVy
dGV4QXR0cmliU3RhdGUucmVzaXplKGN0eC5nZXRNYXhWZXJ0ZXhBdHRyaWJzKCkpOworICAgIG1f
dmVydGV4QXR0cmliU3RhdGUucmVzaXplKGNvbnRleHQuZ2V0TWF4VmVydGV4QXR0cmlicygpKTsK
IH0KIAotdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0RWxlbWVudEFycmF5QnVm
ZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKK3ZvaWQgV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdEJhc2U6OnNldEVsZW1lbnRBcnJheUJ1ZmZlcihXZWJHTEJ1ZmZlciogYnVmZmVyKQog
ewogICAgIGlmIChidWZmZXIpCiAgICAgICAgIGJ1ZmZlci0+b25BdHRhY2hlZCgpOwpAQCAtNTEs
MTggKzQ5LDE3IEBAIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldEVsZW1lbnRB
cnJheUJ1ZmZlcihQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBiCiAgICAgCiB9CiAKLXZvaWQgV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1aW50IGlu
ZGV4LCBHQzNEc2l6ZWkgYnl0ZXNQZXJFbGVtZW50LCBHQzNEaW50IHNpemUsIEdDM0RlbnVtIHR5
cGUsIEdDM0Rib29sZWFuIG5vcm1hbGl6ZWQsIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIg
b2Zmc2V0LCBQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBidWZmZXIpCit2b2lkIFdlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShHQzNEdWludCBpbmRleCwgR0Mz
RHNpemVpIGJ5dGVzUGVyRWxlbWVudCwgR0MzRGludCBzaXplLCBHQzNEZW51bSB0eXBlLCBHQzNE
Ym9vbGVhbiBub3JtYWxpemVkLCBHQzNEc2l6ZWkgc3RyaWRlLCBHQzNEaW50cHRyIG9mZnNldCwg
V2ViR0xCdWZmZXImIGJ1ZmZlcikKIHsKICAgICBHQzNEc2l6ZWkgdmFsaWRhdGVkU3RyaWRlID0g
c3RyaWRlID8gc3RyaWRlIDogYnl0ZXNQZXJFbGVtZW50OwogICAgIAotICAgIFZlcnRleEF0dHJp
YlN0YXRlJiBzdGF0ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOworICAgIGF1dG8mIHN0
YXRlID0gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF07CiAgICAgCi0gICAgaWYgKGJ1ZmZlcikK
LSAgICAgICAgYnVmZmVyLT5vbkF0dGFjaGVkKCk7CisgICAgYnVmZmVyLm9uQXR0YWNoZWQoKTsK
ICAgICBpZiAoc3RhdGUuYnVmZmVyQmluZGluZykKICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGlu
Zy0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOwogICAgIAotICAg
IHN0YXRlLmJ1ZmZlckJpbmRpbmcgPSBidWZmZXI7CisgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9
ICZidWZmZXI7CiAgICAgc3RhdGUuYnl0ZXNQZXJFbGVtZW50ID0gYnl0ZXNQZXJFbGVtZW50Owog
ICAgIHN0YXRlLnNpemUgPSBzaXplOwogICAgIHN0YXRlLnR5cGUgPSB0eXBlOwpAQCAtNzIsMTcg
KzY5LDE3IEBAIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJp
YlN0YXRlKEdDM0R1aW50IGluZGV4LCBHQzNEc2l6ZWkKICAgICBzdGF0ZS5vZmZzZXQgPSBvZmZz
ZXQ7CiB9CiAKLXZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZlcihQ
YXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBidWZmZXIpCit2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3RCYXNlOjp1bmJpbmRCdWZmZXIoV2ViR0xCdWZmZXImIGJ1ZmZlcikKIHsKLSAgICBpZiAobV9i
b3VuZEVsZW1lbnRBcnJheUJ1ZmZlciA9PSBidWZmZXIpIHsKKyAgICBpZiAobV9ib3VuZEVsZW1l
bnRBcnJheUJ1ZmZlciA9PSAmYnVmZmVyKSB7CiAgICAgICAgIG1fYm91bmRFbGVtZW50QXJyYXlC
dWZmZXItPm9uRGV0YWNoZWQoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpKTsKICAgICAg
ICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCk7ICsraSkg
ewotICAgICAgICBWZXJ0ZXhBdHRyaWJTdGF0ZSYgc3RhdGUgPSBtX3ZlcnRleEF0dHJpYlN0YXRl
W2ldOwotICAgICAgICBpZiAoc3RhdGUuYnVmZmVyQmluZGluZyA9PSBidWZmZXIpIHsKLSAgICAg
ICAgICAgIGJ1ZmZlci0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkp
OworICAgICAgICBhdXRvJiBzdGF0ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaV07CisgICAgICAg
IGlmIChzdGF0ZS5idWZmZXJCaW5kaW5nID09ICZidWZmZXIpIHsKKyAgICAgICAgICAgIGJ1ZmZl
ci5vbkRldGFjaGVkKGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKSk7CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIGlmICghaSAmJiAhY29udGV4dCgpLT5pc0dMRVMyQ29tcGxpYW50KCkp
IHsKICAgICAgICAgICAgICAgICBzdGF0ZS5idWZmZXJCaW5kaW5nID0gY29udGV4dCgpLT5tX3Zl
cnRleEF0dHJpYjBCdWZmZXI7CkBAIC0xMDIsOCArOTksNyBAQCB2b2lkIFdlYkdMVmVydGV4QXJy
YXlPYmplY3RCYXNlOjp1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVmZmVy
KQogCiB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJEaXZp
c29yKEdDM0R1aW50IGluZGV4LCBHQzNEdWludCBkaXZpc29yKQogewotICAgIFZlcnRleEF0dHJp
YlN0YXRlJiBzdGF0ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOwotICAgIHN0YXRlLmRp
dmlzb3IgPSBkaXZpc29yOworICAgIG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdLmRpdmlzb3Ig
PSBkaXZpc29yOwogfQogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgKaW5kZXggMjkwYWI4ZDNkNzBmMzM3
YTg2MzVhMjMxNjI3NmQ5MWRjNDNkNGFhOS4uMDBiZTVmYmVmYjFjY2VjM2Y0YTE3MWJiNDQzYmU2
ZTI2ZGFmNjllOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oCkBAIC0zMiw2NSArMzIsNDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSA6IHB1YmxpYyBX
ZWJHTENvbnRleHRPYmplY3QgewogcHVibGljOgotICAgIGVudW0gVkFPVHlwZSB7Ci0gICAgICAg
IFZBT1R5cGVEZWZhdWx0LAotICAgICAgICBWQU9UeXBlVXNlciwKLSAgICB9OwotICAgIAotICAg
IHZpcnR1YWwgfldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKCkgeyB9CisgICAgZW51bSBjbGFz
cyBUeXBlIHsgRGVmYXVsdCwgVXNlciB9OwogCiAgICAgLy8gQ2FjaGVkIHZhbHVlcyBmb3IgdmVy
dGV4IGF0dHJpYiByYW5nZSBjaGVja3MKICAgICBzdHJ1Y3QgVmVydGV4QXR0cmliU3RhdGUgewot
ICAgICAgICBWZXJ0ZXhBdHRyaWJTdGF0ZSgpCi0gICAgICAgICAgICA6IGVuYWJsZWQoZmFsc2Up
Ci0gICAgICAgICAgICAsIGJ5dGVzUGVyRWxlbWVudCgwKQotICAgICAgICAgICAgLCBzaXplKDQp
Ci0gICAgICAgICAgICAsIHR5cGUoR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUKQotICAgICAgICAg
ICAgLCBub3JtYWxpemVkKGZhbHNlKQotICAgICAgICAgICAgLCBzdHJpZGUoMTYpCi0gICAgICAg
ICAgICAsIG9yaWdpbmFsU3RyaWRlKDApCi0gICAgICAgICAgICAsIG9mZnNldCgwKQotICAgICAg
ICAgICAgLCBkaXZpc29yKDApCi0gICAgICAgIHsKLSAgICAgICAgfQotICAgICAgICAKICAgICAg
ICAgYm9vbCBpc0JvdW5kKCkgY29uc3QgeyByZXR1cm4gYnVmZmVyQmluZGluZyAmJiBidWZmZXJC
aW5kaW5nLT5vYmplY3QoKTsgfQogICAgICAgICBib29sIHZhbGlkYXRlQmluZGluZygpIGNvbnN0
IHsgcmV0dXJuICFlbmFibGVkIHx8IGlzQm91bmQoKTsgfQogICAgICAgICAKLSAgICAgICAgYm9v
bCBlbmFibGVkOworICAgICAgICBib29sIGVuYWJsZWQgeyBmYWxzZSB9OwogICAgICAgICBSZWZQ
dHI8V2ViR0xCdWZmZXI+IGJ1ZmZlckJpbmRpbmc7Ci0gICAgICAgIEdDM0RzaXplaSBieXRlc1Bl
ckVsZW1lbnQ7Ci0gICAgICAgIEdDM0RpbnQgc2l6ZTsKLSAgICAgICAgR0MzRGVudW0gdHlwZTsK
LSAgICAgICAgYm9vbCBub3JtYWxpemVkOwotICAgICAgICBHQzNEc2l6ZWkgc3RyaWRlOwotICAg
ICAgICBHQzNEc2l6ZWkgb3JpZ2luYWxTdHJpZGU7Ci0gICAgICAgIEdDM0RpbnRwdHIgb2Zmc2V0
OwotICAgICAgICBHQzNEdWludCBkaXZpc29yOworICAgICAgICBHQzNEc2l6ZWkgYnl0ZXNQZXJF
bGVtZW50IHsgMCB9OworICAgICAgICBHQzNEaW50IHNpemUgeyA0IH07CisgICAgICAgIEdDM0Rl
bnVtIHR5cGUgeyBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQgfTsKKyAgICAgICAgYm9vbCBub3Jt
YWxpemVkIHsgZmFsc2UgfTsKKyAgICAgICAgR0MzRHNpemVpIHN0cmlkZSB7IDE2IH07CisgICAg
ICAgIEdDM0RzaXplaSBvcmlnaW5hbFN0cmlkZSB7IDAgfTsKKyAgICAgICAgR0MzRGludHB0ciBv
ZmZzZXQgeyAwIH07CisgICAgICAgIEdDM0R1aW50IGRpdmlzb3IgeyAwIH07CiAgICAgfTsKLSAg
ICAKLSAgICBib29sIGlzRGVmYXVsdE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBW
QU9UeXBlRGVmYXVsdDsgfQotICAgIAorCisgICAgYm9vbCBpc0RlZmF1bHRPYmplY3QoKSBjb25z
dCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6RGVmYXVsdDsgfQorCiAgICAgYm9vbCBoYXNFdmVy
QmVlbkJvdW5kKCkgY29uc3QgeyByZXR1cm4gb2JqZWN0KCkgJiYgbV9oYXNFdmVyQmVlbkJvdW5k
OyB9CiAgICAgdm9pZCBzZXRIYXNFdmVyQmVlbkJvdW5kKCkgeyBtX2hhc0V2ZXJCZWVuQm91bmQg
PSB0cnVlOyB9Ci0gICAgCi0gICAgUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gZ2V0RWxlbWVudEFy
cmF5QnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlcjsgfQot
ICAgIHZvaWQgc2V0RWxlbWVudEFycmF5QnVmZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+KTsK
LSAgICAKKworICAgIFdlYkdMQnVmZmVyKiBnZXRFbGVtZW50QXJyYXlCdWZmZXIoKSBjb25zdCB7
IHJldHVybiBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyLmdldCgpOyB9CisgICAgdm9pZCBzZXRF
bGVtZW50QXJyYXlCdWZmZXIoV2ViR0xCdWZmZXIqKTsKKwogICAgIFZlcnRleEF0dHJpYlN0YXRl
JiBnZXRWZXJ0ZXhBdHRyaWJTdGF0ZShpbnQgaW5kZXgpIHsgcmV0dXJuIG1fdmVydGV4QXR0cmli
U3RhdGVbaW5kZXhdOyB9Ci0gICAgdm9pZCBzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShHQzNEdWludCwg
R0MzRHNpemVpLCBHQzNEaW50LCBHQzNEZW51bSwgR0MzRGJvb2xlYW4sIEdDM0RzaXplaSwgR0Mz
RGludHB0ciwgUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4pOwotICAgIHZvaWQgdW5iaW5kQnVmZmVy
KFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+KTsKLSAgICAKKyAgICB2b2lkIHNldFZlcnRleEF0dHJp
YlN0YXRlKEdDM0R1aW50LCBHQzNEc2l6ZWksIEdDM0RpbnQsIEdDM0RlbnVtLCBHQzNEYm9vbGVh
biwgR0MzRHNpemVpLCBHQzNEaW50cHRyLCBXZWJHTEJ1ZmZlciYpOworICAgIHZvaWQgdW5iaW5k
QnVmZmVyKFdlYkdMQnVmZmVyJik7CisKICAgICB2b2lkIHNldFZlcnRleEF0dHJpYkRpdmlzb3Io
R0MzRHVpbnQgaW5kZXgsIEdDM0R1aW50IGRpdmlzb3IpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFZBT1R5
cGUpOworICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UmLCBUeXBlKTsKICAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0
M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZSA9IDA7Ci0gICAgCi0gICAgVkFPVHlwZSBt
X3R5cGU7Ci0gICAgYm9vbCBtX2hhc0V2ZXJCZWVuQm91bmQ7CisKKyAgICBUeXBlIG1fdHlwZTsK
KyAgICBib29sIG1faGFzRXZlckJlZW5Cb3VuZCB7IGZhbHNlIH07CiAgICAgUmVmUHRyPFdlYkdM
QnVmZmVyPiBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyOwogICAgIFZlY3RvcjxWZXJ0ZXhBdHRy
aWJTdGF0ZT4gbV92ZXJ0ZXhBdHRyaWJTdGF0ZTsKIH07Ci0gICAgCisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKaW5kZXggNWYzYjY1NTdhNzBiNWNiODQyYzBjMmVhNzc4
MTc4YWZhNjRjMDFmZi4uYWY1NTY1Y2Q5NDQ0MjRiNTNiODM1N2RiMmMwMTkwYmUxY2U1YjQ2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUy5jcHAKQEAgLTM0LDM3ICszNCwzNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVJlZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWQU9UeXBlIHR5
cGUpCitSZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUzo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIFR5cGUgdHlw
ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
KGN0eCwgdHlwZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdMVmVydGV4QXJyYXlP
YmplY3RPRVMoY29udGV4dCwgdHlwZSkpOwogfQogCi1XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0
eCwgVkFPVHlwZSB0eXBlKQotICAgIDogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoY3R4LCB0
eXBlKQorV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9F
UyhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBUeXBlIHR5cGUpCisgICAgOiBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShjb250ZXh0LCB0eXBlKQogewotICAgIEV4dGVuc2lv
bnMzRCYgZXh0ZW5zaW9ucyA9IGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+Z2V0RXh0
ZW5zaW9ucygpOwotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBWQU9UeXBlRGVmYXVs
dDoKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFR5cGU6OkRlZmF1bHQ6CiAgICAgICAg
IGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHNldE9iamVjdChleHRlbnNpb25zLmNyZWF0
ZVZlcnRleEFycmF5T0VTKCkpOworICAgIGNhc2UgVHlwZTo6VXNlcjoKKyAgICAgICAgc2V0T2Jq
ZWN0KHRoaXMtPmNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9ucygp
LmNyZWF0ZVZlcnRleEFycmF5T0VTKCkpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIFdl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVM6On5XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKCkKIHsK
LSAgICBkZWxldGVPYmplY3QoMCk7CisgICAgZGVsZXRlT2JqZWN0KG51bGxwdHIpOwogfQogCiB2
b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3ND
b250ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamVjdCBvYmplY3QpCiB7Ci0gICAgRXh0
ZW5zaW9uczNEJiBleHRlbnNpb25zID0gY29udGV4dDNkLT5nZXRFeHRlbnNpb25zKCk7CiAgICAg
c3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVEZWZhdWx0OgorICAgIGNhc2UgVHlw
ZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgZXh0ZW5z
aW9ucy5kZWxldGVWZXJ0ZXhBcnJheU9FUyhvYmplY3QpOworICAgIGNhc2UgVHlwZTo6VXNlcjoK
KyAgICAgICAgY29udGV4dDNkLT5nZXRFeHRlbnNpb25zKCkuZGVsZXRlVmVydGV4QXJyYXlPRVMo
b2JqZWN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgKaW5kZXggZDA4ZDIy
M2UzNTcwNjY5NGU5MWNhZTZhY2RjOGM0YmNhOWYxNjdlOS4uZjlhMmE1OGVjMjc0N2MyZDUwNjMw
YjViNmY2Y2ZmMDVhNjM2MGM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaApAQCAtMjUsMTkgKzI1LDE3IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKLSNpbmNsdWRlICJXZWJH
TENvbnRleHRPYmplY3QuaCIKICNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdMVmVydGV4QXJyYXlPYmplY3RP
RVMgZmluYWwgOiBwdWJsaWMgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gY3JlYXRlKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmLCBWQU9UeXBlKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVM+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVHlwZSk7
CiAgICAgdmlydHVhbCB+V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygpOwogcHJpdmF0ZToKLSAg
ICBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBW
QU9UeXBlKTsKLSAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQ
bGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBlKTsKKyAgICB2b2lkIGRlbGV0ZU9iamVj
dEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBmaW5hbDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Zm9ybXMvRmlsZUljb25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxl
SWNvbkxvYWRlci5jcHAKaW5kZXggOWJjZDQ3Zjc3OWUwNTFmYWE0MDU5MGM3OTNmYjIzZmM1MWIy
ZGUxZS4uNmM3M2UzMWFhZWY5ZTg2MDQ0OWE5OThjOGVlNzllNTU1Mzg0MDQwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5jcHAKQEAgLTM3LDEzICszNywx
MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB2b2lkIEZpbGVJY29uTG9hZGVyOjppbnZhbGlkYXRl
KCkKIHsKICAgICBBU1NFUlQobV9jbGllbnQpOwotICAgIG1fY2xpZW50ID0gMDsKKyAgICBtX2Ns
aWVudCA9IG51bGxwdHI7CiB9CiAKLXZvaWQgRmlsZUljb25Mb2FkZXI6Om5vdGlmeUZpbmlzaGVk
KFBhc3NSZWZQdHI8SWNvbj4gaWNvbikKK3ZvaWQgRmlsZUljb25Mb2FkZXI6Omljb25Mb2FkZWQo
UmVmUHRyPEljb24+JiYgaWNvbikKIHsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xp
ZW50LT51cGRhdGVSZW5kZXJpbmcoaWNvbik7CisgICAgICAgIG1fY2xpZW50LT5pY29uTG9hZGVk
KFdURk1vdmUoaWNvbikpOwogfQogCiBGaWxlSWNvbkxvYWRlcjo6RmlsZUljb25Mb2FkZXIoRmls
ZUljb25Mb2FkZXJDbGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmls
ZUljb25Mb2FkZXIuaAppbmRleCAzNTMxM2RlM2EyODUzNjBkOTg2N2I4MmE1YWFjYmMwN2QwNWU3
YmQ1Li4zMzY1MjM4YWNlZjdkOWNiNzk2M2VjZDliMmFlOTdkZjlhYjRiZTBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5oCkBAIC0zNCwxMyArMzQsMTIgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBGaWxlSWNvbkxvYWRlcjsKIGNsYXNzIElj
b247CiAKIGNsYXNzIEZpbGVJY29uTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5GaWxlSWNvbkxvYWRlckNsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZW5k
ZXJpbmcoUGFzc1JlZlB0cjxJY29uPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBpY29uTG9hZGVk
KFJlZlB0cjxJY29uPiYmKSA9IDA7CiB9OwogCiBjbGFzcyBGaWxlSWNvbkxvYWRlciB7CkBAIC00
OCw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBGaWxlSWNvbkxvYWRlcihGaWxlSWNv
bkxvYWRlckNsaWVudCYpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBub3RpZnlGaW5pc2hlZChQYXNzUmVmUHRyPEljb24+KTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGljb25Mb2FkZWQoUmVmUHRyPEljb24+JiYpOwogCiBwcml2YXRlOgogICAg
IEZpbGVJY29uTG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRleCA0NjdhMTM0ZDM2YmE1
M2E3MmJjMmQ3MGEyZWI5NzY4MWViOGY5M2ZiLi5mYjBlMTU1YjkwOTJhNzcxNWVmNjQyMjgzZGE2
MjdlNTg1MGU5NjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
Q29uc3RydWN0aW9uU2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC0xNzQsNyArMTc0LDcgQEAgc3RhdGljIGlubGluZSB2
b2lkIGV4ZWN1dGVUYXNrKEhUTUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYgdGFzaykKIAogdm9pZCBI
VE1MQ29uc3RydWN0aW9uU2l0ZTo6YXR0YWNoTGF0ZXIoQ29udGFpbmVyTm9kZSYgcGFyZW50LCBS
ZWY8Tm9kZT4mJiBjaGlsZCwgYm9vbCBzZWxmQ2xvc2luZykKIHsKLSAgICBBU1NFUlQoc2NyaXB0
aW5nQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpIHx8ICFpczxFbGVtZW50
PihjaGlsZC5nZXQoKSkgfHwgIXRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZG93bmNhc3Q8RWxl
bWVudD4oY2hpbGQucHRyKCkpKSk7CisgICAgQVNTRVJUKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93
ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSB8fCAhaXM8RWxlbWVudD4oY2hpbGQuZ2V0KCkpIHx8
ICFpc1NjcmlwdEVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4oY2hpbGQuZ2V0KCkpKSk7CiAgICAg
QVNTRVJUKHBsdWdpbkNvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSB8fCAh
Y2hpbGQtPmlzUGx1Z2luRWxlbWVudCgpKTsKIAogICAgIGlmIChzaG91bGRGb3N0ZXJQYXJlbnQo
KSkgewpAQCAtNTQxLDcgKzU0MSw3IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2Vy
dEZvcmVpZ25FbGVtZW50KEF0b21pY0hUTUxUb2tlbiYmIHRva2VuLCBjb25zdCBBCiAgICAgbm90
SW1wbGVtZW50ZWQoKTsgLy8gcGFyc2VFcnJvciB3aGVuIHhtbG5zIG9yIHhtbG5zOnhsaW5rIGFy
ZSB3cm9uZy4KIAogICAgIGF1dG8gZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQodG9rZW4sIG5hbWVz
cGFjZVVSSSk7Ci0gICAgaWYgKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250
ZW50UG9saWN5KSB8fCAhdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShlbGVtZW50LnB0cigpKSkK
KyAgICBpZiAoc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kp
IHx8ICFpc1NjcmlwdEVsZW1lbnQoZWxlbWVudC5nZXQoKSkpCiAgICAgICAgIGF0dGFjaExhdGVy
KGN1cnJlbnROb2RlKCksIGVsZW1lbnQuY29weVJlZigpLCB0b2tlbi5zZWxmQ2xvc2luZygpKTsK
ICAgICBpZiAoIXRva2VuLnNlbGZDbG9zaW5nKCkpCiAgICAgICAgIG1fb3BlbkVsZW1lbnRzLnB1
c2goSFRNTFN0YWNrSXRlbTo6Y3JlYXRlKFdURk1vdmUoZWxlbWVudCksIFdURk1vdmUodG9rZW4p
LCBuYW1lc3BhY2VVUkkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
RG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IGFjZWEwYWFhZDJjZGY0ODE3YTY1ZTdhZjlkN2M5ZmQz
NTdkZmMzMzcuLjdlMzAyMzhkMzVkN2ZkNmE1ZmQ2N2Q3ZGQwMDEyMGIzMDAzNzY2MjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApA
QCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSFRN
TFVua25vd25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgi
CisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTIwNSw3ICsyMDYsNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBh
dXNlZFRyZWVCdWlsZGVyKCkKICAgICAgICAgQVNTRVJUKCFtX3RyZWVCdWlsZGVyLT5oYXNQYXJz
ZXJCbG9ja2luZ1NjcmlwdFdvcmsoKSk7CiAgICAgICAgIC8vIFdlIHdpbGwgbm90IGhhdmUgYSBz
Y3JpcHRSdW5uZXIgd2hlbiBwYXJzaW5nIGEgRG9jdW1lbnRGcmFnbWVudC4KICAgICAgICAgaWYg
KG1fc2NyaXB0UnVubmVyKQotICAgICAgICAgICAgbV9zY3JpcHRSdW5uZXItPmV4ZWN1dGUoV1RG
TW92ZShzY3JpcHRFbGVtZW50KSwgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgICAgICAgICBt
X3NjcmlwdFJ1bm5lci0+ZXhlY3V0ZShzY3JpcHRFbGVtZW50LnJlbGVhc2VOb25OdWxsKCksIHNj
cmlwdFN0YXJ0UG9zaXRpb24pOwogICAgIH0KIH0KIApAQCAtNTAwLDcgKzUwMSw3IEBAIHZvaWQg
SFRNTERvY3VtZW50UGFyc2VyOjp3YXRjaEZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1Nj
cmlwdCkKICAgICAvLyBzZXRDbGllbnQgd291bGQgY2FsbCBub3RpZnlGaW5pc2hlZCBpZiB0aGUg
bG9hZCB3ZXJlIGNvbXBsZXRlLgogICAgIC8vIENhbGxlcnMgZG8gbm90IGV4cGVjdCB0byBiZSBy
ZS1lbnRlcmVkIGZyb20gdGhpcyBjYWxsLCBzbyB0aGV5IHNob3VsZAogICAgIC8vIG5vdCBhbiBh
bHJlYWR5LWxvYWRlZCBQZW5kaW5nU2NyaXB0LgotICAgIHBlbmRpbmdTY3JpcHQuc2V0Q2xpZW50
KHRoaXMpOworICAgIHBlbmRpbmdTY3JpcHQuc2V0Q2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBI
VE1MRG9jdW1lbnRQYXJzZXI6OnN0b3BXYXRjaGluZ0ZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVu
ZGluZ1NjcmlwdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxT
Y3JpcHRSdW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1
bm5lci5jcHAKaW5kZXggYzI1NmI0Mjk1NmNlNDgxMWE5NGYwY2IzNGI4ZWQ3MjU3MjVlOGY1NC4u
MWM4YzE2YzM3ZTU4YjY2MTIxMTljMDU5NTA5MzY4NWMzZWNlNDcwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKQEAgLTk5LDI5ICs5OSwy
OCBAQCBib29sIEhUTUxTY3JpcHRSdW5uZXI6OmlzUGVuZGluZ1NjcmlwdFJlYWR5KGNvbnN0IFBl
bmRpbmdTY3JpcHQmIHNjcmlwdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBIVE1MU2Ny
aXB0UnVubmVyOjpleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0KCkKK2lubGluZSB2b2lkIEhU
TUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQYXJzaW5nQmxvY2tpbmdTY3JpcHQoKQogewotICAgIEFT
U0VSVChtX2RvY3VtZW50KTsKLSAgICBBU1NFUlQoIWlzRXhlY3V0aW5nU2NyaXB0KCkpOwotICAg
IEFTU0VSVChtX2RvY3VtZW50LT5oYXZlU3R5bGVzaGVldHNMb2FkZWQoKSk7CisgICAgQVNTRVJU
KG1fcGFyc2VyQmxvY2tpbmdTY3JpcHQpOwogICAgIEFTU0VSVChpc1BlbmRpbmdTY3JpcHRSZWFk
eSgqbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCkpOworICAgIEFTU0VSVCghaXNFeGVjdXRpbmdTY3Jp
cHQoKSk7CiAKICAgICBJbnNlcnRpb25Qb2ludFJlY29yZCBpbnNlcnRpb25Qb2ludFJlY29yZCht
X2hvc3QuaW5wdXRTdHJlYW0oKSk7Ci0gICAgZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRj
aEV2ZW50KFdURk1vdmUobV9wYXJzZXJCbG9ja2luZ1NjcmlwdCkpOworICAgIGV4ZWN1dGVQZW5k
aW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChtX3BhcnNlckJsb2NraW5nU2NyaXB0LnJlbGVhc2VO
b25OdWxsKCkuZ2V0KCkpOwogfQogCi12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQZW5k
aW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChSZWZQdHI8UGVuZGluZ1NjcmlwdD4gcGVuZGluZ1Nj
cmlwdCkKK3ZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNw
YXRjaEV2ZW50KFBlbmRpbmdTY3JpcHQmIHBlbmRpbmdTY3JpcHQpCiB7CiAgICAgLy8gU3RvcCB3
YXRjaGluZyBsb2FkcyBiZWZvcmUgZXhlY3V0ZVNjcmlwdCB0byBwcmV2ZW50IHJlY3Vyc2lvbiBp
ZiB0aGUgc2NyaXB0IHJlbG9hZHMgaXRzZWxmLgotICAgIGlmIChwZW5kaW5nU2NyaXB0LT53YXRj
aGluZ0ZvckxvYWQoKSkKLSAgICAgICAgc3RvcFdhdGNoaW5nRm9yTG9hZCgqcGVuZGluZ1Njcmlw
dCk7CisgICAgaWYgKHBlbmRpbmdTY3JpcHQud2F0Y2hpbmdGb3JMb2FkKCkpCisgICAgICAgIHN0
b3BXYXRjaGluZ0ZvckxvYWQocGVuZGluZ1NjcmlwdCk7CiAKICAgICBpZiAoIWlzRXhlY3V0aW5n
U2NyaXB0KCkpCiAgICAgICAgIE1pY3JvdGFza1F1ZXVlOjptYWluVGhyZWFkUXVldWUoKS5wZXJm
b3JtTWljcm90YXNrQ2hlY2twb2ludCgpOwogCi0gICAgaWYgKGF1dG8qIHNjcmlwdEVsZW1lbnQg
PSB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5nU2NyaXB0LT5lbGVtZW50KCkpKSB7
CisgICAgewogICAgICAgICBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlciBuZXN0aW5nTGV2ZWxJbmNy
ZW1lbnRlcihtX3NjcmlwdE5lc3RpbmdMZXZlbCk7Ci0gICAgICAgIHNjcmlwdEVsZW1lbnQtPmV4
ZWN1dGVQZW5kaW5nU2NyaXB0KCpwZW5kaW5nU2NyaXB0KTsKKyAgICAgICAgcGVuZGluZ1Njcmlw
dC5lbGVtZW50KCkuZXhlY3V0ZVBlbmRpbmdTY3JpcHQocGVuZGluZ1NjcmlwdCk7CiAgICAgfQog
ICAgIEFTU0VSVCghaXNFeGVjdXRpbmdTY3JpcHQoKSk7CiB9CkBAIC0xNDAsMTUgKzEzOSwxNCBA
QCB2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnN0b3BXYXRjaGluZ0ZvckxvYWQoUGVuZGluZ1Njcmlw
dCYgcGVuZGluZ1NjcmlwdCkKIAogLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgbWF0Y2ggMTAuMi41
LjExICJBbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICdzY3JpcHQnIgogLy8gU2NyaXB0IGhh
bmRsaW5nIGxpdmVzIG91dHNpZGUgdGhlIHRyZWUgYnVpbGRlciB0byBrZWVwIHRoZSBlYWNoIGNs
YXNzIHNpbXBsZS4KLXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZShQYXNzUmVmUHRyPEVs
ZW1lbnQ+IHNjcmlwdEVsZW1lbnQsIGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3Np
dGlvbikKK3ZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZShSZWY8U2NyaXB0RWxlbWVudD4m
JiBlbGVtZW50LCBjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiB7Ci0g
ICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOwogICAgIC8vIEZJWE1FOiBJZiBzY3JpcHRpbmcgaXMg
ZGlzYWJsZWQsIGFsd2F5cyBqdXN0IHJldHVybi4KIAogICAgIGJvb2wgaGFkUHJlbG9hZFNjYW5u
ZXIgPSBtX2hvc3QuaGFzUHJlbG9hZFNjYW5uZXIoKTsKIAogICAgIC8vIFRyeSB0byBleGVjdXRl
IHRoZSBzY3JpcHQgZ2l2ZW4gdG8gdXMuCi0gICAgcnVuU2NyaXB0KHNjcmlwdEVsZW1lbnQuZ2V0
KCksIHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgIHJ1blNjcmlwdChlbGVtZW50LmdldCgpLCBz
Y3JpcHRTdGFydFBvc2l0aW9uKTsKIAogICAgIGlmIChoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdCgp
KSB7CiAgICAgICAgIGlmIChpc0V4ZWN1dGluZ1NjcmlwdCgpKQpAQCAtMjAxLDcgKzE5OSw3IEBA
IGJvb2wgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9yUGFyc2luZygp
CiAgICAgICAgICAgICB3YXRjaEZvckxvYWQobV9zY3JpcHRzVG9FeGVjdXRlQWZ0ZXJQYXJzaW5n
LmZpcnN0KCkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0gICAgICAg
IGV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChtX3NjcmlwdHNUb0V4ZWN1dGVB
ZnRlclBhcnNpbmcudGFrZUZpcnN0KCkpOworICAgICAgICBleGVjdXRlUGVuZGluZ1NjcmlwdEFu
ZERpc3BhdGNoRXZlbnQobV9zY3JpcHRzVG9FeGVjdXRlQWZ0ZXJQYXJzaW5nLnRha2VGaXJzdCgp
LmdldCgpKTsKICAgICAgICAgLy8gRklYTUU6IFdoYXQgaXMgdGhpcyBtX2RvY3VtZW50IGNoZWNr
IGZvcj8KICAgICAgICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMjA5LDE4ICsyMDcsMTcgQEAgYm9vbCBIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlU2Ny
aXB0c1dhaXRpbmdGb3JQYXJzaW5nKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIFJl
ZjxQZW5kaW5nU2NyaXB0PiByZXF1ZXN0UGVuZGluZ1NjcmlwdChFbGVtZW50KiBzY3JpcHQpCitz
dGF0aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IHJlcXVlc3RQZW5kaW5nU2NyaXB0KFNjcmlwdEVsZW1l
bnQmIHNjcmlwdEVsZW1lbnQpCiB7Ci0gICAgYXV0byYgc2NyaXB0RWxlbWVudCA9ICp0b1Njcmlw
dEVsZW1lbnRJZlBvc3NpYmxlKHNjcmlwdCk7CiAgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQud2ls
bEJlUGFyc2VyRXhlY3V0ZWQoKSk7CiAgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQubG9hZGFibGVT
Y3JpcHQoKSk7Ci0gICAgcmV0dXJuIFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZSgqc2NyaXB0LCAqc2Ny
aXB0RWxlbWVudC5sb2FkYWJsZVNjcmlwdCgpKTsKKyAgICByZXR1cm4gUGVuZGluZ1NjcmlwdDo6
Y3JlYXRlKHNjcmlwdEVsZW1lbnQsICpzY3JpcHRFbGVtZW50LmxvYWRhYmxlU2NyaXB0KCkpOwog
fQogCi12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQo
RWxlbWVudCogZWxlbWVudCkKK3ZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6cmVxdWVzdFBhcnNpbmdC
bG9ja2luZ1NjcmlwdChTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVtZW50KQogewogICAgIEFTU0VS
VCghbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCk7Ci0gICAgbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCA9
IHJlcXVlc3RQZW5kaW5nU2NyaXB0KGVsZW1lbnQpOworICAgIG1fcGFyc2VyQmxvY2tpbmdTY3Jp
cHQgPSByZXF1ZXN0UGVuZGluZ1NjcmlwdChzY3JpcHRFbGVtZW50KTsKICAgICBBU1NFUlQobV9w
YXJzZXJCbG9ja2luZ1NjcmlwdC0+bmVlZHNMb2FkaW5nKCkpOwogCiAgICAgLy8gV2Ugb25seSBj
YXJlIGFib3V0IGEgbG9hZCBjYWxsYmFjayBpZiBMb2FkYWJsZVNjcmlwdCBpcyBub3QgYWxyZWFk
eQpAQCAtMjMwLDU1ICsyMjcsNDQgQEAgdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0UGFy
c2luZ0Jsb2NraW5nU2NyaXB0KEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIHdhdGNoRm9yTG9h
ZCgqbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCk7CiB9CiAKLXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6
cmVxdWVzdERlZmVycmVkU2NyaXB0KEVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIEhUTUxTY3JpcHRS
dW5uZXI6OnJlcXVlc3REZWZlcnJlZFNjcmlwdChTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVtZW50
KQogewotICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IHJlcXVlc3RQZW5kaW5nU2NyaXB0KGVsZW1l
bnQpOworICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IHJlcXVlc3RQZW5kaW5nU2NyaXB0KHNjcmlw
dEVsZW1lbnQpOwogICAgIEFTU0VSVChwZW5kaW5nU2NyaXB0LT5uZWVkc0xvYWRpbmcoKSk7CiAg
ICAgbV9zY3JpcHRzVG9FeGVjdXRlQWZ0ZXJQYXJzaW5nLmFwcGVuZChXVEZNb3ZlKHBlbmRpbmdT
Y3JpcHQpKTsKIH0KIAogLy8gVGhpcyBtZXRob2QgaXMgbWVhbnQgdG8gbWF0Y2ggdGhlIEhUTUw1
IGRlZmluaXRpb24gb2YgInJ1bm5pbmcgYSBzY3JpcHQiCiAvLyBodHRwOi8vd3d3LndoYXR3Zy5v
cmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9zY3JpcHRpbmctMS5odG1s
I3J1bm5pbmctYS1zY3JpcHQKLXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6cnVuU2NyaXB0KEVsZW1l
bnQqIHNjcmlwdCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQordm9p
ZCBIVE1MU2NyaXB0UnVubmVyOjpydW5TY3JpcHQoU2NyaXB0RWxlbWVudCYgc2NyaXB0RWxlbWVu
dCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogewogICAgIEFTU0VS
VChtX2RvY3VtZW50KTsKICAgICBBU1NFUlQoIWhhc1BhcnNlckJsb2NraW5nU2NyaXB0KCkpOwot
ICAgIHsKLSAgICAgICAgU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxl
bWVudElmUG9zc2libGUoc2NyaXB0KTsKLQotICAgICAgICAvLyBUaGlzIGNvbnRhaW5zIGJvdGgg
YW5kIEFTU0VSVElPTiBhbmQgYSBudWxsIGNoZWNrIHNpbmNlIHdlIHNob3VsZCBub3QKLSAgICAg
ICAgLy8gYmUgZ2V0dGluZyBpbnRvIHRoZSBjYXNlIG9mIGEgbnVsbCBzY3JpcHQgZWxlbWVudCwg
YnV0IHNlZW0gdG8gYmUgZnJvbQotICAgICAgICAvLyB0aW1lIHRvIHRpbWUuIFRoZSBhc3NlcnRp
b24gaXMgbGVmdCBpbiB0byBoZWxwIGZpbmQgdGhvc2UgY2FzZXMgYW5kCi0gICAgICAgIC8vIGlz
IGJlaW5nIHRyYWNrZWQgYnkgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MDU1OT4uCi0gICAgICAgIEFTU0VSVChzY3JpcHRFbGVtZW50KTsKLSAgICAgICAgaWYgKCFz
Y3JpcHRFbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vIEZJWE1FOiBU
aGlzIG1heSBiZSB0b28gYWdyZXNzaXZlIGFzIHdlIGFsd2F5cyBkZWxpdmVyIG11dGF0aW9ucyBh
dAotICAgICAgICAvLyBldmVyeSBzY3JpcHQgZWxlbWVudCwgZXZlbiBpZiBpdCdzIG5vdCByZWFk
eSB0byBleGVjdXRlIHlldC4gVGhlcmUncwotICAgICAgICAvLyB1bmZvcnR1YW50ZWx5IG5vIG9i
dmlvdXMgd2F5IHRvIHRlbGwgaWYgcHJlcGFyZVNjcmlwdCBpcyBnb2luZyB0bwotICAgICAgICAv
LyBleGVjdXRlIHRoZSBzY3JpcHQgZnJvbSBvdXQgaGVyZS4KLSAgICAgICAgaWYgKCFpc0V4ZWN1
dGluZ1NjcmlwdCgpKQotICAgICAgICAgICAgTWljcm90YXNrUXVldWU6Om1haW5UaHJlYWRRdWV1
ZSgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7Ci0KLSAgICAgICAgSW5zZXJ0aW9uUG9p
bnRSZWNvcmQgaW5zZXJ0aW9uUG9pbnRSZWNvcmQobV9ob3N0LmlucHV0U3RyZWFtKCkpOwotICAg
ICAgICBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlciBuZXN0aW5nTGV2ZWxJbmNyZW1lbnRlcihtX3Nj
cmlwdE5lc3RpbmdMZXZlbCk7Ci0KLSAgICAgICAgc2NyaXB0RWxlbWVudC0+cHJlcGFyZVNjcmlw
dChzY3JpcHRTdGFydFBvc2l0aW9uKTsKIAotICAgICAgICBpZiAoIXNjcmlwdEVsZW1lbnQtPndp
bGxCZVBhcnNlckV4ZWN1dGVkKCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6
IFRoaXMgbWF5IGJlIHRvbyBhZ3Jlc3NpdmUgYXMgd2UgYWx3YXlzIGRlbGl2ZXIgbXV0YXRpb25z
IGF0CisgICAgLy8gZXZlcnkgc2NyaXB0IGVsZW1lbnQsIGV2ZW4gaWYgaXQncyBub3QgcmVhZHkg
dG8gZXhlY3V0ZSB5ZXQuIFRoZXJlJ3MKKyAgICAvLyB1bmZvcnR1YW50ZWx5IG5vIG9idmlvdXMg
d2F5IHRvIHRlbGwgaWYgcHJlcGFyZVNjcmlwdCBpcyBnb2luZyB0bworICAgIC8vIGV4ZWN1dGUg
dGhlIHNjcmlwdCBmcm9tIG91dCBoZXJlLgorICAgIGlmICghaXNFeGVjdXRpbmdTY3JpcHQoKSkK
KyAgICAgICAgTWljcm90YXNrUXVldWU6Om1haW5UaHJlYWRRdWV1ZSgpLnBlcmZvcm1NaWNyb3Rh
c2tDaGVja3BvaW50KCk7CiAKLSAgICAgICAgaWYgKHNjcmlwdEVsZW1lbnQtPndpbGxFeGVjdXRl
V2hlbkRvY3VtZW50RmluaXNoZWRQYXJzaW5nKCkpCi0gICAgICAgICAgICByZXF1ZXN0RGVmZXJy
ZWRTY3JpcHQoc2NyaXB0KTsKLSAgICAgICAgZWxzZSBpZiAoc2NyaXB0RWxlbWVudC0+cmVhZHlU
b0JlUGFyc2VyRXhlY3V0ZWQoKSkgewotICAgICAgICAgICAgaWYgKG1fc2NyaXB0TmVzdGluZ0xl
dmVsID09IDEpCi0gICAgICAgICAgICAgICAgbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCA9IFBlbmRp
bmdTY3JpcHQ6OmNyZWF0ZSgqc2NyaXB0LCBzY3JpcHRTdGFydFBvc2l0aW9uKTsKLSAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzY3JpcHRFbGVtZW50LT5leGVjdXRlQ2xhc3NpY1Nj
cmlwdChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdC0+dGV4dENvbnRlbnQoKSwgZG9jdW1lbnRVUkxG
b3JTY3JpcHRFeGVjdXRpb24obV9kb2N1bWVudCksIHNjcmlwdFN0YXJ0UG9zaXRpb24pKTsKLSAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICByZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KHNj
cmlwdCk7Ci0gICAgfQorICAgIEluc2VydGlvblBvaW50UmVjb3JkIGluc2VydGlvblBvaW50UmVj
b3JkKG1faG9zdC5pbnB1dFN0cmVhbSgpKTsKKyAgICBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlciBu
ZXN0aW5nTGV2ZWxJbmNyZW1lbnRlcihtX3NjcmlwdE5lc3RpbmdMZXZlbCk7CisKKyAgICBzY3Jp
cHRFbGVtZW50LnByZXBhcmVTY3JpcHQoc2NyaXB0U3RhcnRQb3NpdGlvbik7CisKKyAgICBpZiAo
IXNjcmlwdEVsZW1lbnQud2lsbEJlUGFyc2VyRXhlY3V0ZWQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKHNjcmlwdEVsZW1lbnQud2lsbEV4ZWN1dGVXaGVuRG9jdW1lbnRGaW5pc2hlZFBh
cnNpbmcoKSkKKyAgICAgICAgcmVxdWVzdERlZmVycmVkU2NyaXB0KHNjcmlwdEVsZW1lbnQpOwor
ICAgIGVsc2UgaWYgKHNjcmlwdEVsZW1lbnQucmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQoKSkgewor
ICAgICAgICBpZiAobV9zY3JpcHROZXN0aW5nTGV2ZWwgPT0gMSkKKyAgICAgICAgICAgIG1fcGFy
c2VyQmxvY2tpbmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxlbWVudCwg
c2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNjcmlwdEVs
ZW1lbnQuZXhlY3V0ZUNsYXNzaWNTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRFbGVtZW50
LmVsZW1lbnQoKS50ZXh0Q29udGVudCgpLCBkb2N1bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlvbiht
X2RvY3VtZW50KSwgc2NyaXB0U3RhcnRQb3NpdGlvbikpOworICAgIH0gZWxzZQorICAgICAgICBy
ZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KHNjcmlwdEVsZW1lbnQpOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmgKaW5kZXggNzY4MDBk
NzEzY2U3ZDJlNDYzNWE2NjIzNWIxNjdjMTlmNDU3YzgwMy4uYzNlMTU0NzI0YzRkNjFkYTc0ZmFh
ZWMxMzdjOWRiMDFjNDY0YWVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFNjcmlwdFJ1bm5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxTY3JpcHRSdW5uZXIuaApAQCAtMzIsOSArMzIsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBEb2N1bWVudDsKLWNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEhU
TUxTY3JpcHRSdW5uZXJIb3N0OworY2xhc3MgU2NyaXB0RWxlbWVudDsKIGNsYXNzIFNjcmlwdFNv
dXJjZUNvZGU7CiAKIGNsYXNzIEhUTUxTY3JpcHRSdW5uZXIgewpAQCAtNDYsNyArNDYsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkZXRhY2goKTsKIAogICAgIC8vIFByb2Nlc3NlcyB0aGUgcGFzc2Vk
IGluIHNjcmlwdCBhbmQgYW55IHBlbmRpbmcgc2NyaXB0cyBpZiBwb3NzaWJsZS4KLSAgICB2b2lk
IGV4ZWN1dGUoUGFzc1JlZlB0cjxFbGVtZW50PiBzY3JpcHRUb1Byb2Nlc3MsIGNvbnN0IFRleHRQ
b3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgdm9pZCBleGVjdXRlKFJlZjxTY3Jp
cHRFbGVtZW50PiYmLCBjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pOwog
CiAgICAgdm9pZCBleGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JMb2FkKFBlbmRpbmdTY3JpcHQmKTsK
ICAgICBib29sIGhhc1NjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHMoKSBjb25zdCB7IHJldHVy
biBtX2hhc1NjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHM7IH0KQEAgLTYwLDEzICs2MCwxMyBA
QCBwcml2YXRlOgogICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OwogCiAgICAgdm9pZCBleGVjdXRl
UGFyc2luZ0Jsb2NraW5nU2NyaXB0KCk7Ci0gICAgdm9pZCBleGVjdXRlUGVuZGluZ1NjcmlwdEFu
ZERpc3BhdGNoRXZlbnQoUmVmUHRyPFBlbmRpbmdTY3JpcHQ+KTsKKyAgICB2b2lkIGV4ZWN1dGVQ
ZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChQZW5kaW5nU2NyaXB0Jik7CiAgICAgdm9pZCBl
eGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0cygpOwogCi0gICAgdm9pZCByZXF1ZXN0UGFyc2lu
Z0Jsb2NraW5nU2NyaXB0KEVsZW1lbnQqKTsKLSAgICB2b2lkIHJlcXVlc3REZWZlcnJlZFNjcmlw
dChFbGVtZW50Kik7CisgICAgdm9pZCByZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KFNjcmlw
dEVsZW1lbnQmKTsKKyAgICB2b2lkIHJlcXVlc3REZWZlcnJlZFNjcmlwdChTY3JpcHRFbGVtZW50
Jik7CiAKLSAgICB2b2lkIHJ1blNjcmlwdChFbGVtZW50KiwgY29uc3QgVGV4dFBvc2l0aW9uJiBz
Y3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICB2b2lkIHJ1blNjcmlwdChTY3JpcHRFbGVtZW50Jiwg
Y29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKIAogICAgIC8vIEhlbHBl
cnMgZm9yIGRlYWxpbmcgd2l0aCBIVE1MU2NyaXB0UnVubmVySG9zdAogICAgIHZvaWQgd2F0Y2hG
b3JMb2FkKFBlbmRpbmdTY3JpcHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4IDQ1MjRjMWVhYWNmZDkzMjkwMjZjNjZjYjcyYWI1NGIw
MDhmNjJhNGMuLjY3NmFiOWVmNmI4MWFjZjYwNGExYTM3MGE5ZDA2MGM5YTAwM2QxMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtMzUs
MTAgKzM1LDEyIEBACiAjaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2lu
Y2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlRWxlbWVudC5o
IgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkxvY2Fs
aXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlNW
R1NjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJYTGlua05hbWVzLmgiCiAjaW5jbHVkZSAiWE1M
TlNOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCkBAIC01NywxMCArNTksMTIgQEAgQ3Vz
dG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGE6OkN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRh
KFJlZjxKU0N1c3RvbUVsZW1lbnQKICAgICA6IGVsZW1lbnRJbnRlcmZhY2UoV1RGTW92ZShjdXN0
b21FbGVtZW50SW50ZXJmYWNlKSkKICAgICAsIG5hbWUobmFtZSkKICAgICAsIGF0dHJpYnV0ZXMo
V1RGTW92ZShhdHRyaWJ1dGVzKSkKLXsgfQoreworfQogCiBDdXN0b21FbGVtZW50Q29uc3RydWN0
aW9uRGF0YTo6fkN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhKCkKLXsgfQoreworfQogCiBu
YW1lc3BhY2UgewogCkBAIC0zMTgsNyArMzIyLDcgQEAgaW5saW5lIEhUTUxTdGFja0l0ZW0mIEhU
TUxUcmVlQnVpbGRlcjo6RnJhZ21lbnRQYXJzaW5nQ29udGV4dDo6Y29udGV4dEVsZW1lbnRTdGEK
ICAgICByZXR1cm4gKm1fY29udGV4dEVsZW1lbnRTdGFja0l0ZW07CiB9CiAKLVJlZlB0cjxFbGVt
ZW50PiBIVE1MVHJlZUJ1aWxkZXI6OnRha2VTY3JpcHRUb1Byb2Nlc3MoVGV4dFBvc2l0aW9uJiBz
Y3JpcHRTdGFydFBvc2l0aW9uKQorUmVmUHRyPFNjcmlwdEVsZW1lbnQ+IEhUTUxUcmVlQnVpbGRl
cjo6dGFrZVNjcmlwdFRvUHJvY2VzcyhUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24p
CiB7CiAgICAgQVNTRVJUKCFtX2Rlc3Ryb3llZCk7CiAKQEAgLTIwNTcsNyArMjA2MSw3IEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiYmIHRva2Vu
KQogICAgICAgICAgICAgLy8gUGF1c2Ugb3Vyc2VsdmVzIHNvIHRoYXQgcGFyc2luZyBzdG9wcyB1
bnRpbCB0aGUgc2NyaXB0IGNhbiBiZSBwcm9jZXNzZWQgYnkgdGhlIGNhbGxlci4KICAgICAgICAg
ICAgIEFTU0VSVChtX3RyZWUuY3VycmVudFN0YWNrSXRlbSgpLmhhc1RhZ05hbWUoc2NyaXB0VGFn
KSk7CiAgICAgICAgICAgICBpZiAoc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChtX3RyZWUucGFy
c2VyQ29udGVudFBvbGljeSgpKSkKLSAgICAgICAgICAgICAgICBtX3NjcmlwdFRvUHJvY2VzcyA9
ICZtX3RyZWUuY3VycmVudEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBtX3NjcmlwdFRvUHJv
Y2VzcyA9ICZkb3duY2FzdDxIVE1MU2NyaXB0RWxlbWVudD4obV90cmVlLmN1cnJlbnRFbGVtZW50
KCkpOwogICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLnBvcCgpOwogICAgICAgICAg
ICAgbV9pbnNlcnRpb25Nb2RlID0gbV9vcmlnaW5hbEluc2VydGlvbk1vZGU7CiAKQEAgLTI3ODcs
NyArMjc5MSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVG9rZW5JbkZvcmVpZ25D
b250ZW50KEF0b21pY0hUTUxUb2tlbiYmIHRva2VuKQogCiAgICAgICAgIGlmICh0b2tlbi5uYW1l
KCkgPT0gU1ZHTmFtZXM6OnNjcmlwdFRhZyAmJiBtX3RyZWUuY3VycmVudFN0YWNrSXRlbSgpLmhh
c1RhZ05hbWUoU1ZHTmFtZXM6OnNjcmlwdFRhZykpIHsKICAgICAgICAgICAgIGlmIChzY3JpcHRp
bmdDb250ZW50SXNBbGxvd2VkKG1fdHJlZS5wYXJzZXJDb250ZW50UG9saWN5KCkpKQotICAgICAg
ICAgICAgICAgIG1fc2NyaXB0VG9Qcm9jZXNzID0gJm1fdHJlZS5jdXJyZW50RWxlbWVudCgpOwor
ICAgICAgICAgICAgICAgIG1fc2NyaXB0VG9Qcm9jZXNzID0gJmRvd25jYXN0PFNWR1NjcmlwdEVs
ZW1lbnQ+KG1fdHJlZS5jdXJyZW50RWxlbWVudCgpKTsKICAgICAgICAgICAgIG1fdHJlZS5vcGVu
RWxlbWVudHMoKS5wb3AoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAppbmRleCBkNzA5MjlmNjBh
NjBiYzY1OTZmNjc5MGNkMDBkZWYxNmY5ODU1OWE1Li4yMTNiZDI3OTRmODM3YWY4MjA0MGJlNGE2
Yzc0NGZlNmRmYzg0M2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJl
ZUJ1aWxkZXIuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zNSw2ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlOwogY2xhc3MgSFRNTERvY3VtZW50UGFyc2VyOwor
Y2xhc3MgU2NyaXB0RWxlbWVudDsKIAogc3RydWN0IEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25E
YXRhIHsKICAgICBDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YShSZWY8SlNDdXN0b21FbGVt
ZW50SW50ZXJmYWNlPiYmLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxBdHRyaWJ1
dGU+JiYpOwpAQCAtNjIsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNQYXJzZXJCbG9j
a2luZ1NjcmlwdFdvcmsoKSBjb25zdDsKIAogICAgIC8vIE11c3QgYmUgY2FsbGVkIHRvIHRha2Ug
dGhlIHBhcnNlci1ibG9ja2luZyBzY3JpcHQgYmVmb3JlIGNhbGxpbmcgdGhlIHBhcnNlciBhZ2Fp
bi4KLSAgICBSZWZQdHI8RWxlbWVudD4gdGFrZVNjcmlwdFRvUHJvY2VzcyhUZXh0UG9zaXRpb24m
IHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgIFJlZlB0cjxTY3JpcHRFbGVtZW50PiB0YWtlU2Ny
aXB0VG9Qcm9jZXNzKFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8Q3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGE+IHRha2VDdXN0b21F
bGVtZW50Q29uc3RydWN0aW9uRGF0YSgpIHsgcmV0dXJuIFdURk1vdmUobV9jdXN0b21FbGVtZW50
VG9Db25zdHJ1Y3QpOyB9CiAgICAgdm9pZCBkaWRDcmVhdGVDdXN0b21PckNhbGxiYWNrRWxlbWVu
dChSZWY8RWxlbWVudD4mJiwgQ3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGEmKTsKQEAgLTIw
Niw3ICsyMDcsNyBAQCBwcml2YXRlOgogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5v
cmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2NvbmNlcHQtcGVuZGluZy10YWJsZS1jaGFyLXRva2Vu
cwogICAgIFN0cmluZ0J1aWxkZXIgbV9wZW5kaW5nVGFibGVDaGFyYWN0ZXJzOwogCi0gICAgUmVm
UHRyPEVsZW1lbnQ+IG1fc2NyaXB0VG9Qcm9jZXNzOyAvLyA8c2NyaXB0PiB0YWcgd2hpY2ggbmVl
ZHMgcHJvY2Vzc2luZyBiZWZvcmUgcmVzdW1pbmcgdGhlIHBhcnNlci4KKyAgICBSZWZQdHI8U2Ny
aXB0RWxlbWVudD4gbV9zY3JpcHRUb1Byb2Nlc3M7IC8vIDxzY3JpcHQ+IHRhZyB3aGljaCBuZWVk
cyBwcm9jZXNzaW5nIGJlZm9yZSByZXN1bWluZyB0aGUgcGFyc2VyLgogICAgIFRleHRQb3NpdGlv
biBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0UG9zaXRpb247IC8vIFN0YXJ0aW5nIGxpbmUgbnVtYmVy
IG9mIHRoZSBzY3JpcHQgdGFnIG5lZWRpbmcgcHJvY2Vzc2luZy4KIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YT4gbV9jdXN0b21FbGVtZW50VG9Db25z
dHJ1Y3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1l
bnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFy
c2VyLmNwcAppbmRleCBhZDVmNmU3OGUzODFhYWRjY2M2YjkxYmE5N2NhNDI1NTgwNGNiOTcwLi5m
OTg4MjViMjA2MDk3ZjJjNGE4YzFmZTg0YjQwYjZkOGYwYTVlYWNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAKQEAgLTI2LDYgKzI2
LDcgQEAKICNpbmNsdWRlICJUZXh0RG9jdW1lbnRQYXJzZXIuaCIKIAogI2luY2x1ZGUgIkhUTUxU
cmVlQnVpbGRlci5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRp
dG9yRGVsZWdhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRl
bGVnYXRlLmNwcAppbmRleCAzZjQzZTA0ZDVkZWViN2QyOTMxMTZlOGRlYzIzYzdiMGJmN2ZiNzc5
Li5mMjk3NDRiZmYxNzQ1YzliMTYwOWQ0Zjg1MzA4MTVmOTQ5YmU1NDBkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKQEAgLTY5LDIy
ICs2OSwyMiBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBidWlsZENvbnNvbGVFcnJvcihjb25zdCBY
U1NJbmZvJiB4c3NJbmZvKQogICAgIHJldHVybiBtZXNzYWdlLnRvU3RyaW5nKCk7CiB9CiAKLVBh
c3NSZWZQdHI8Rm9ybURhdGE+IFhTU0F1ZGl0b3JEZWxlZ2F0ZTo6Z2VuZXJhdGVWaW9sYXRpb25S
ZXBvcnQoY29uc3QgWFNTSW5mbyYgeHNzSW5mbykKK1JlZjxGb3JtRGF0YT4gWFNTQXVkaXRvckRl
bGVnYXRlOjpnZW5lcmF0ZVZpb2xhdGlvblJlcG9ydChjb25zdCBYU1NJbmZvJiB4c3NJbmZvKQog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBGcmFtZUxvYWRlciYgZnJhbWVM
b2FkZXIgPSBtX2RvY3VtZW50LmZyYW1lKCktPmxvYWRlcigpOworICAgIGF1dG8mIGZyYW1lTG9h
ZGVyID0gbV9kb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKTsKICAgICBTdHJpbmcgaHR0cEJvZHk7
CiAgICAgaWYgKGZyYW1lTG9hZGVyLmRvY3VtZW50TG9hZGVyKCkpIHsKLSAgICAgICAgaWYgKEZv
cm1EYXRhKiBmb3JtRGF0YSA9IGZyYW1lTG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPm9yaWdpbmFs
UmVxdWVzdCgpLmh0dHBCb2R5KCkpCisgICAgICAgIGlmIChhdXRvKiBmb3JtRGF0YSA9IGZyYW1l
TG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPm9yaWdpbmFsUmVxdWVzdCgpLmh0dHBCb2R5KCkpCiAg
ICAgICAgICAgICBodHRwQm9keSA9IGZvcm1EYXRhLT5mbGF0dGVuVG9TdHJpbmcoKTsKICAgICB9
CiAKLSAgICBSZWY8SW5zcGVjdG9yT2JqZWN0PiByZXBvcnREZXRhaWxzID0gSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKTsKKyAgICBhdXRvIHJlcG9ydERldGFpbHMgPSBJbnNwZWN0b3JPYmplY3Q6
OmNyZWF0ZSgpOwogICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygicmVxdWVzdC11cmwiLCB4
c3NJbmZvLm1fb3JpZ2luYWxVUkwpOwogICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygicmVx
dWVzdC1ib2R5IiwgaHR0cEJvZHkpOwogCi0gICAgUmVmPEluc3BlY3Rvck9iamVjdD4gcmVwb3J0
T2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBhdXRvIHJlcG9ydE9iamVj
dCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAgICAgcmVwb3J0T2JqZWN0LT5zZXRPYmpl
Y3QoInhzcy1yZXBvcnQiLCBXVEZNb3ZlKHJlcG9ydERldGFpbHMpKTsKIAogICAgIHJldHVybiBG
b3JtRGF0YTo6Y3JlYXRlKHJlcG9ydE9iamVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVs
ZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5o
CmluZGV4IDBhZTI3NGIzMTkyZGZhNDdhNjNjZTk2YTJhOTc5NDY1ZWM4ODA4ZWYuLjk3YzgwZGM2
ZTM1MmI5ZGViOTE3YzMyM2Y5YzA2MDUzMjNmZTU3NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oCkBAIC01OSw3ICs1OSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFJlcG9ydFVSTChjb25zdCBVUkwmIHVybCkgeyBtX3JlcG9ydFVSTCA9
IHVybDsgfQogCiBwcml2YXRlOgotICAgIFBhc3NSZWZQdHI8Rm9ybURhdGE+IGdlbmVyYXRlVmlv
bGF0aW9uUmVwb3J0KGNvbnN0IFhTU0luZm8mKTsKKyAgICBSZWY8Rm9ybURhdGE+IGdlbmVyYXRl
VmlvbGF0aW9uUmVwb3J0KGNvbnN0IFhTU0luZm8mKTsKIAogICAgIERvY3VtZW50JiBtX2RvY3Vt
ZW50OwogICAgIGJvb2wgbV9kaWRTZW5kTm90aWZpY2F0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2suY3BwCmluZGV4IDhjMzU2Zjc5MTVkNDk4Y2UzNDEyZjc5ODgyZjhk
MDYwYjA4NTYxOTIuLjUxYWJjMzZmYmMwY2RjOTJjYzlmNWM5YzhmZGE0MTczY2E5NWUwOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcApAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC0zMCwxMyArMzAsMTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
QXVkaW9UcmFjay5oIgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiQXVk
aW9UcmFjay5oIgotCi0jaW5jbHVkZSAiQXVkaW9UcmFja0xpc3QuaCIKLSNpbmNsdWRlICJFdmVu
dC5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KIApAQCAtNzgsMTAgKzc1LDEwIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgQXVk
aW9UcmFjazo6Y29tbWVudGFyeUtleXdvcmQoKQogICAgIHJldHVybiBjb21tZW50YXJ5OwogfQog
Ci1BdWRpb1RyYWNrOjpBdWRpb1RyYWNrKEF1ZGlvVHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1Jl
ZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQotICAgIDogTWVkaWFUcmFja0Jh
c2UoTWVkaWFUcmFja0Jhc2U6OkF1ZGlvVHJhY2ssIHRyYWNrUHJpdmF0ZS0+aWQoKSwgdHJhY2tQ
cml2YXRlLT5sYWJlbCgpLCB0cmFja1ByaXZhdGUtPmxhbmd1YWdlKCkpCi0gICAgLCBtX2VuYWJs
ZWQodHJhY2tQcml2YXRlLT5lbmFibGVkKCkpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCitBdWRp
b1RyYWNrOjpBdWRpb1RyYWNrKEF1ZGlvVHJhY2tDbGllbnQmIGNsaWVudCwgQXVkaW9UcmFja1By
aXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAgICA6IE1lZGlhVHJhY2tCYXNlKE1lZGlhVHJhY2tCYXNl
OjpBdWRpb1RyYWNrLCB0cmFja1ByaXZhdGUuaWQoKSwgdHJhY2tQcml2YXRlLmxhYmVsKCksIHRy
YWNrUHJpdmF0ZS5sYW5ndWFnZSgpKQorICAgICwgbV9lbmFibGVkKHRyYWNrUHJpdmF0ZS5lbmFi
bGVkKCkpCisgICAgLCBtX2NsaWVudCgmY2xpZW50KQogICAgICwgbV9wcml2YXRlKHRyYWNrUHJp
dmF0ZSkKIHsKICAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKQEAgLTkzLDE5ICs5MCwx
NiBAQCBBdWRpb1RyYWNrOjp+QXVkaW9UcmFjaygpCiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQo
bnVsbHB0cik7CiB9CiAKLXZvaWQgQXVkaW9UcmFjazo6c2V0UHJpdmF0ZShQYXNzUmVmUHRyPEF1
ZGlvVHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCit2b2lkIEF1ZGlvVHJhY2s6OnNldFByaXZh
dGUoQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKLSAgICBBU1NFUlQobV9wcml2
YXRlKTsKLSAgICBBU1NFUlQodHJhY2tQcml2YXRlKTsKLQotICAgIGlmIChtX3ByaXZhdGUgPT0g
dHJhY2tQcml2YXRlKQorICAgIGlmIChtX3ByaXZhdGUucHRyKCkgPT0gJnRyYWNrUHJpdmF0ZSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiAg
ICAgbV9wcml2YXRlID0gdHJhY2tQcml2YXRlOworICAgIG1fcHJpdmF0ZS0+c2V0RW5hYmxlZCht
X2VuYWJsZWQpOwogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwogCi0gICAgbV9wcml2
YXRlLT5zZXRFbmFibGVkKG1fZW5hYmxlZCk7CiAgICAgdXBkYXRlS2luZEZyb21Qcml2YXRlKCk7
CiB9CiAKQEAgLTExOSw1NCArMTEzLDQ3IEBAIGJvb2wgQXVkaW9UcmFjazo6aXNWYWxpZEtpbmQo
Y29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkgY29uc3QKICAgICAgICAgfHwgdmFsdWUgPT0gY29t
bWVudGFyeUtleXdvcmQoKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjpzZXRFbmFibGVkKGNvbnN0
IGJvb2wgZW5hYmxlZCkKK3ZvaWQgQXVkaW9UcmFjazo6c2V0RW5hYmxlZChib29sIGVuYWJsZWQp
CiB7CiAgICAgaWYgKG1fZW5hYmxlZCA9PSBlbmFibGVkKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtX2VuYWJsZWQgPSBlbmFibGVkOwogICAgIG1fcHJpdmF0ZS0+c2V0RW5hYmxlZChlbmFibGVk
KTsKLQotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmF1ZGlvVHJhY2tFbmFi
bGVkQ2hhbmdlZCh0aGlzKTsKIH0KIAotc2l6ZV90IEF1ZGlvVHJhY2s6OmluYmFuZFRyYWNrSW5k
ZXgoKQorc2l6ZV90IEF1ZGlvVHJhY2s6OmluYmFuZFRyYWNrSW5kZXgoKSBjb25zdAogewotICAg
IEFTU0VSVChtX3ByaXZhdGUpOwogICAgIHJldHVybiBtX3ByaXZhdGUtPnRyYWNrSW5kZXgoKTsK
IH0KIAotdm9pZCBBdWRpb1RyYWNrOjplbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrUHJpdmF0ZSog
dHJhY2tQcml2YXRlLCBib29sIGVuYWJsZWQpCit2b2lkIEF1ZGlvVHJhY2s6OmVuYWJsZWRDaGFu
Z2VkKGJvb2wgZW5hYmxlZCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJh
Y2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CisgICAgaWYgKG1fZW5hYmxlZCA9PSBlbmFibGVkKQor
ICAgICAgICByZXR1cm47CisKICAgICBtX2VuYWJsZWQgPSBlbmFibGVkOwogCiAgICAgaWYgKG1f
Y2xpZW50KQotICAgICAgICBtX2NsaWVudC0+YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKHRoaXMp
OworICAgICAgICBtX2NsaWVudC0+YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKCp0aGlzKTsKIH0K
IAotdm9pZCBBdWRpb1RyYWNrOjppZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2
YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkKQordm9pZCBBdWRpb1RyYWNrOjppZENoYW5nZWQo
Y29uc3QgQXRvbWljU3RyaW5nJiBpZCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0
ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0SWQoaWQpOwogfQogCi12b2lk
IEF1ZGlvVHJhY2s6OmxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUs
IGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpCit2b2lkIEF1ZGlvVHJhY2s6OmxhYmVsQ2hhbmdl
ZChjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQ
cml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRMYWJlbChsYWJlbCk7
CiB9CiAKLXZvaWQgQXVkaW9UcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2Uq
IHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKK3ZvaWQgQXVkaW9U
cmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiB7Ci0g
ICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUp
OwogICAgIHNldExhbmd1YWdlKGxhbmd1YWdlKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjp3aWxs
UmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSkKK3ZvaWQgQXVkaW9UcmFjazo6
d2lsbFJlbW92ZSgpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJp
dmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIG1lZGlhRWxlbWVudCgpLT5yZW1vdmVBdWRpb1RyYWNr
KCp0aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRp
b1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAppbmRleCA2
MWM1YjJjZDQyOThkNTc0ZjdmNzE1YmMxYzE5MjAwNzkxZGQyM2FhLi41ZWQyNDRiZmFjMmMyYjk0
YThlY2Y3ZTFkMWNmOWExYTBiZTg4NGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlv
VHJhY2suaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwg
MjAxMyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yOSw5ICsyOSw3IEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQogCiAjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUV4
cG9ydE1hY3Jvcy5oIgogI2luY2x1ZGUgIlRyYWNrQmFzZS5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDEyICszOCwxMiBA
QCBjbGFzcyBBdWRpb1RyYWNrOwogY2xhc3MgQXVkaW9UcmFja0NsaWVudCB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+QXVkaW9UcmFja0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhdWRp
b1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2smKSA9IDA7CiB9OwogCi1jbGFzcyBB
dWRpb1RyYWNrIGZpbmFsIDogcHVibGljIE1lZGlhVHJhY2tCYXNlLCBwdWJsaWMgQXVkaW9UcmFj
a1ByaXZhdGVDbGllbnQgeworY2xhc3MgQXVkaW9UcmFjayBmaW5hbCA6IHB1YmxpYyBNZWRpYVRy
YWNrQmFzZSwgcHJpdmF0ZSBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxBdWRpb1RyYWNrPiBjcmVhdGUoQXVkaW9UcmFja0NsaWVudCogY2xpZW50LCBQ
YXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCisgICAgc3RhdGljIFJl
ZjxBdWRpb1RyYWNrPiBjcmVhdGUoQXVkaW9UcmFja0NsaWVudCYgY2xpZW50LCBBdWRpb1RyYWNr
UHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQXVkaW9UcmFjayhjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogICAgIH0KQEAgLTU3LDM5ICs1
NSwzOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbWFpbkRlc2NL
ZXl3b3JkKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhbnNsYXRpb25LZXl3
b3JkKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29tbWVudGFyeUtleXdvcmQo
KTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGRlZmF1bHRLaW5kS2V5d29yZCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGVtcHR5QXRvbTsgfQogCi0gICAgYm9vbCBlbmFibGVkKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9lbmFibGVkOyB9CisgICAgYm9vbCBlbmFibGVkKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9lbmFibGVkOyB9CiAgICAgdm9pZCBzZXRFbmFibGVkKGNvbnN0IGJv
b2wpOwogCi0gICAgdm9pZCBjbGVhckNsaWVudCgpIG92ZXJyaWRlIHsgbV9jbGllbnQgPSBudWxs
cHRyOyB9CisgICAgdm9pZCBjbGVhckNsaWVudCgpIGZpbmFsIHsgbV9jbGllbnQgPSBudWxscHRy
OyB9CiAgICAgQXVkaW9UcmFja0NsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGll
bnQ7IH0KIAotICAgIHNpemVfdCBpbmJhbmRUcmFja0luZGV4KCk7CisgICAgc2l6ZV90IGluYmFu
ZFRyYWNrSW5kZXgoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0UHJpdmF0ZShQYXNzUmVmUHRyPEF1
ZGlvVHJhY2tQcml2YXRlPik7Ci0KLXByb3RlY3RlZDoKLSAgICBBdWRpb1RyYWNrKEF1ZGlvVHJh
Y2tDbGllbnQqLCBQYXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPik7CisgICAgdm9pZCBzZXRQ
cml2YXRlKEF1ZGlvVHJhY2tQcml2YXRlJik7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBpc1ZhbGlk
S2luZChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKKyAgICBBdWRpb1RyYWNr
KEF1ZGlvVHJhY2tDbGllbnQmLCBBdWRpb1RyYWNrUHJpdmF0ZSYpOworCisgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBkZWZhdWx0S2luZEtleXdvcmQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBlbXB0
eUF0b207IH0KKyAgICBib29sIGlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0
IGZpbmFsOwogCiAgICAgLy8gQXVkaW9UcmFja1ByaXZhdGVDbGllbnQKLSAgICB2b2lkIGVuYWJs
ZWRDaGFuZ2VkKEF1ZGlvVHJhY2tQcml2YXRlKiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBl
bmFibGVkQ2hhbmdlZChib29sKSBmaW5hbDsKIAogICAgIC8vIFRyYWNrUHJpdmF0ZUJhc2VDbGll
bnQKLSAgICB2b2lkIGlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSos
IGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2Vk
KFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2
b2lkIHdpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSopIG92ZXJyaWRlOworICAgIHZvaWQgaWRD
aGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgbGFiZWxDaGFuZ2Vk
KGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNv
bnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgd2lsbFJlbW92ZSgpIGZpbmFsOwog
CiAgICAgdm9pZCB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIAogICAgIGJvb2wgbV9lbmFibGVk
OwogICAgIEF1ZGlvVHJhY2tDbGllbnQqIG1fY2xpZW50OwogCi0gICAgUmVmUHRyPEF1ZGlvVHJh
Y2tQcml2YXRlPiBtX3ByaXZhdGU7CisgICAgUmVmPEF1ZGlvVHJhY2tQcml2YXRlPiBtX3ByaXZh
dGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAppbmRleCBiZTU4Y2M4MTE5YmZlNmQ2
MGYwMzBiYTAxOTNjMGNkZTUyODQ5MTk4Li45ODU1ZDJiZjJlYjQ2Y2QyZGI3NTUyYThiZTFlYzk1
Y2UzM2NhZDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERh
dGFUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0
YVRleHRUcmFjay5jcHAKQEAgLTM3LDMxICszNywzMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLVJlZjxJbmJhbmREYXRhVGV4dFRyYWNrPiBJbmJhbmREYXRhVGV4dFRyYWNrOjpjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQs
IFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiYmIHRyYWNrUHJpdmF0ZSkKK2lubGluZSBJ
bmJhbmREYXRhVGV4dFRyYWNrOjpJbmJhbmREYXRhVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xp
ZW50LCB0cmFja1ByaXZhdGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kRGF0
YVRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIFdURk1vdmUodHJhY2tQcml2YXRlKSkpOwogfQog
Ci1JbmJhbmREYXRhVGV4dFRyYWNrOjpJbmJhbmREYXRhVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZT4mJiB0cmFja1ByaXZhdGUpCi0gICAgOiBJbmJhbmRUZXh0VHJhY2so
Y29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCitSZWY8SW5iYW5kRGF0YVRleHRUcmFjaz4g
SW5iYW5kRGF0YVRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFj
a1ByaXZhdGUpCiB7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kRGF0YVRleHRUcmFj
ayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogfQogCiBJbmJhbmREYXRhVGV4dFRy
YWNrOjp+SW5iYW5kRGF0YVRleHRUcmFjaygpCiB7CiB9CiAKLXZvaWQgSW5iYW5kRGF0YVRleHRU
cmFjazo6YWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1l
JiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVk
IGxlbmd0aCkKK3ZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZShjb25zdCBNZWRp
YVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9pZCogZGF0YSwgdW5z
aWduZWQgbGVuZ3RoKQogewogICAgIGFkZEN1ZShEYXRhQ3VlOjpjcmVhdGUoKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgc3RhcnQsIGVuZCwgZGF0YSwgbGVuZ3RoKSk7CiB9CiAKICNpZiBFTkFC
TEUoREFUQUNVRV9WQUxVRSkKIAotdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3Vl
KEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBN
ZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlv
bj4gcHJwUGxhdGZvcm1WYWx1ZSwgY29uc3QgU3RyaW5nJiB0eXBlKQordm9pZCBJbmJhbmREYXRh
VGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlh
VGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+JiYgcGxhdGZv
cm1WYWx1ZSwgY29uc3QgU3RyaW5nJiB0eXBlKQogewotICAgIFJlZlB0cjxTZXJpYWxpemVkUGxh
dGZvcm1SZXByZXNlbnRhdGlvbj4gcGxhdGZvcm1WYWx1ZSA9IHBycFBsYXRmb3JtVmFsdWU7Ci0g
ICAgaWYgKG1faW5jb21wbGV0ZUN1ZU1hcC5maW5kKHBsYXRmb3JtVmFsdWUuZ2V0KCkpICE9IG1f
aW5jb21wbGV0ZUN1ZU1hcC5lbmQoKSkKKyAgICBpZiAobV9pbmNvbXBsZXRlQ3VlTWFwLmNvbnRh
aW5zKHBsYXRmb3JtVmFsdWUucHRyKCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGN1
ZSA9IERhdGFDdWU6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdGFydCwgZW5k
LCBwbGF0Zm9ybVZhbHVlLmNvcHlSZWYoKSwgdHlwZSk7CkBAIC03OCwyNSArNzcsMTkgQEAgdm9p
ZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUq
LCBjb25zdCBNZWRpYVRpbWUmIHMKICAgICBhZGRDdWUoV1RGTW92ZShjdWUpKTsKIH0KIAotdm9p
ZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZh
dGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGluRW5kLCBQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwcnBQbGF0Zm9ybVZhbHVl
KQordm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGlt
ZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgaW5FbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJl
c2VudGF0aW9uJiBwbGF0Zm9ybVZhbHVlKQogewotICAgIE1lZGlhVGltZSBlbmQgPSBpbkVuZDsK
LQotICAgIFJlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcGxhdGZvcm1W
YWx1ZSA9IHBycFBsYXRmb3JtVmFsdWU7Ci0gICAgYXV0byBpdGVyID0gbV9pbmNvbXBsZXRlQ3Vl
TWFwLmZpbmQocGxhdGZvcm1WYWx1ZS5nZXQoKSk7Ci0gICAgaWYgKGl0ZXIgPT0gbV9pbmNvbXBs
ZXRlQ3VlTWFwLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZWZQdHI8RGF0YUN1ZT4g
Y3VlID0gaXRlci0+dmFsdWU7CisgICAgUmVmUHRyPERhdGFDdWU+IGN1ZSA9IG1faW5jb21wbGV0
ZUN1ZU1hcC5nZXQoJnBsYXRmb3JtVmFsdWUpOwogICAgIGlmICghY3VlKQogICAgICAgICByZXR1
cm47CiAKICAgICBjdWUtPndpbGxDaGFuZ2UoKTsKIAorICAgIE1lZGlhVGltZSBlbmQgPSBpbkVu
ZDsKICAgICBpZiAoZW5kLmlzUG9zaXRpdmVJbmZpbml0ZSgpICYmIG1lZGlhRWxlbWVudCgpKQog
ICAgICAgICBlbmQgPSBtZWRpYUVsZW1lbnQoKS0+ZHVyYXRpb25NZWRpYVRpbWUoKTsKICAgICBl
bHNlCi0gICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUocGxhdGZvcm1WYWx1ZS5nZXQo
KSk7CisgICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUoJnBsYXRmb3JtVmFsdWUpOwog
CiAgICAgTE9HKE1lZGlhLCAiSW5iYW5kRGF0YVRleHRUcmFjazo6dXBkYXRlRGF0YUN1ZTogd2Fz
IHN0YXJ0PSVzLCBlbmQ9JXMsIHdpbGwgYmUgc3RhcnQ9JXMsIGVuZD0lc1xuIiwgdG9TdHJpbmco
Y3VlLT5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoY3VlLT5lbmRUaW1lKCkp
LnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKHN0YXJ0KS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhl
bmQpLnV0ZjgoKS5kYXRhKCkpOwogCkBAIC0xMDYsMTQgKzk5LDkgQEAgdm9pZCBJbmJhbmREYXRh
VGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBN
ZWRpYVRpbWUKICAgICBjdWUtPmRpZENoYW5nZSgpOwogfQogCi12b2lkIEluYmFuZERhdGFUZXh0
VHJhY2s6OnJlbW92ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlh
VGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVw
cmVzZW50YXRpb24+IHBycFBsYXRmb3JtVmFsdWUpCit2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6
OnJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgU2VyaWFs
aXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24mIHBsYXRmb3JtVmFsdWUpCiB7Ci0gICAgUmVmUHRy
PFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwbGF0Zm9ybVZhbHVlID0gcHJwUGxh
dGZvcm1WYWx1ZTsKLSAgICBhdXRvIGl0ZXIgPSBtX2luY29tcGxldGVDdWVNYXAuZmluZChwbGF0
Zm9ybVZhbHVlLmdldCgpKTsKLSAgICBpZiAoaXRlciA9PSBtX2luY29tcGxldGVDdWVNYXAuZW5k
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChSZWZQdHI8RGF0YUN1ZT4gY3VlID0gaXRl
ci0+dmFsdWUpIHsKKyAgICBpZiAoYXV0byogY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLmdldCgm
cGxhdGZvcm1WYWx1ZSkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kRGF0YVRleHRUcmFj
azo6cmVtb3ZlRGF0YUN1ZSByZW1vdmluZyBjdWU6IHN0YXJ0PSVzLCBlbmQ9JXNcbiIsIHRvU3Ry
aW5nKGN1ZS0+c3RhcnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZS0+ZW5kVGlt
ZSgpKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmVtb3ZlQ3VlKCpjdWUpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKaW5kZXgg
MjdhOGRiNjE2OWQwYjQ3NmM1NGQzMmU0ODE0Mjg2MjFkYjJhMzA4My4uODI0YTI5ZjZhODY2YWQz
NDVjNWM0YTk0NDhkZmZiOGI2YmE3MTY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKQEAgLTMzLDIzICszMywyMSBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBEYXRhQ3VlOwotY2xhc3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZTsKLWNsYXNzIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uOwogCiBjbGFzcyBJbmJh
bmREYXRhVGV4dFRyYWNrIGZpbmFsIDogcHVibGljIEluYmFuZFRleHRUcmFjayB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxJbmJhbmREYXRhVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2
YXRlPiYmKTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZERhdGFUZXh0VHJhY2s+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSYpOwogICAgIHZpcnR1YWwgfkluYmFuZERhdGFUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToK
LSAgICBJbmJhbmREYXRhVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJh
Y2tDbGllbnQqLCBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4mJik7CisgICAgSW5iYW5k
RGF0YVRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50Jiwg
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogCi0gICAgdm9pZCBhZGREYXRhQ3VlKEluYmFuZFRl
eHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUm
IGVuZCwgY29uc3Qgdm9pZCosIHVuc2lnbmVkKSBmaW5hbDsKKyAgICB2b2lkIGFkZERhdGFDdWUo
Y29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQq
LCB1bnNpZ25lZCkgZmluYWw7CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLSAgICB2b2lk
IGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3Rh
cnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJl
cHJlc2VudGF0aW9uPiwgY29uc3QgU3RyaW5nJikgZmluYWw7Ci0gICAgdm9pZCB1cGRhdGVEYXRh
Q3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25z
dCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRh
dGlvbj4pIGZpbmFsOwotICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2
YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+KSBmaW5hbDsKKyAgICB2b2lk
IGFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQs
IFJlZjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4mJiwgY29uc3QgU3RyaW5nJikg
ZmluYWw7CisgICAgdm9pZCB1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNv
bnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbiYpIGZp
bmFsOworICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25z
dCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24mKSBmaW5h
bDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiByZW1vdmVDdWUoVGV4dFRyYWNrQ3VlJikgZmluYWw7
CiAKICAgICBIYXNoTWFwPFJlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4s
IFJlZlB0cjxEYXRhQ3VlPj4gbV9pbmNvbXBsZXRlQ3VlTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHAKaW5kZXggMDkxYTVk
MmIxODUyNjBiNThmNjhlMmZiY2Y4OWI4NzZjNzU2NWMyZS4uZDQ3OGFlNjExZjIzNzYwMzE3YjVk
MDRjNjI5N2MyMWMwNDE4ZmM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwCkBAIC02NSwxMDIgKzY1LDk5IEBAIHZvaWQg
R2VuZXJpY1RleHRUcmFja0N1ZU1hcDo6cmVtb3ZlKFRleHRUcmFja0N1ZSYgY3VlKQogICAgICAg
ICBtX2RhdGFUb0N1ZU1hcC5yZW1vdmUoZGF0YSk7CiB9CiAKLVJlZjxJbmJhbmRHZW5lcmljVGV4
dFRyYWNrPiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKK2lubGluZSBJbmJhbmRHZW5lcmljVGV4
dFRyYWNrOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0
cmFja1ByaXZhdGUpCisgICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFj
a1ByaXZhdGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kR2VuZXJpY1RleHRU
cmFjayhjb250ZXh0LCBjbGllbnQsIHBsYXllclByaXZhdGUpKTsKIH0KIAotSW5iYW5kR2VuZXJp
Y1RleHRUcmFjazo6SW5iYW5kR2VuZXJpY1RleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0
VHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCi0gICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4
dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCitSZWY8SW5iYW5kR2VuZXJpY1RleHRUcmFjaz4gSW5i
YW5kR2VuZXJpY1RleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFj
a1ByaXZhdGUpCiB7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kR2VuZXJpY1RleHRU
cmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogfQogCiBJbmJhbmRHZW5lcmlj
VGV4dFRyYWNrOjp+SW5iYW5kR2VuZXJpY1RleHRUcmFjaygpCiB7CiB9CiAKLXZvaWQgSW5iYW5k
R2VuZXJpY1RleHRUcmFjazo6dXBkYXRlQ3VlRnJvbUN1ZURhdGEoVGV4dFRyYWNrQ3VlR2VuZXJp
YyogY3VlLCBHZW5lcmljQ3VlRGF0YSogY3VlRGF0YSkKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRU
cmFjazo6dXBkYXRlQ3VlRnJvbUN1ZURhdGEoVGV4dFRyYWNrQ3VlR2VuZXJpYyYgY3VlLCBHZW5l
cmljQ3VlRGF0YSYgY3VlRGF0YSkKIHsKLSAgICBjdWUtPndpbGxDaGFuZ2UoKTsKKyAgICBjdWUu
d2lsbENoYW5nZSgpOwogCi0gICAgY3VlLT5zZXRTdGFydFRpbWUoY3VlRGF0YS0+c3RhcnRUaW1l
KCkpOwotICAgIE1lZGlhVGltZSBlbmRUaW1lID0gY3VlRGF0YS0+ZW5kVGltZSgpOworICAgIGN1
ZS5zZXRTdGFydFRpbWUoY3VlRGF0YS5zdGFydFRpbWUoKSk7CisgICAgTWVkaWFUaW1lIGVuZFRp
bWUgPSBjdWVEYXRhLmVuZFRpbWUoKTsKICAgICBpZiAoZW5kVGltZS5pc1Bvc2l0aXZlSW5maW5p
dGUoKSAmJiBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAgZW5kVGltZSA9IG1lZGlhRWxlbWVudCgp
LT5kdXJhdGlvbk1lZGlhVGltZSgpOwotICAgIGN1ZS0+c2V0RW5kVGltZShlbmRUaW1lKTsKLSAg
ICBjdWUtPnNldFRleHQoY3VlRGF0YS0+Y29udGVudCgpKTsKLSAgICBjdWUtPnNldElkKGN1ZURh
dGEtPmlkKCkpOwotICAgIGN1ZS0+c2V0QmFzZUZvbnRTaXplUmVsYXRpdmVUb1ZpZGVvSGVpZ2h0
KGN1ZURhdGEtPmJhc2VGb250U2l6ZSgpKTsKLSAgICBjdWUtPnNldEZvbnRTaXplTXVsdGlwbGll
cihjdWVEYXRhLT5yZWxhdGl2ZUZvbnRTaXplKCkpOwotICAgIGN1ZS0+c2V0Rm9udE5hbWUoY3Vl
RGF0YS0+Zm9udE5hbWUoKSk7Ci0KLSAgICBpZiAoY3VlRGF0YS0+cG9zaXRpb24oKSA+IDApCi0g
ICAgICAgIGN1ZS0+c2V0UG9zaXRpb24oc3RkOjpyb3VuZChjdWVEYXRhLT5wb3NpdGlvbigpKSk7
Ci0gICAgaWYgKGN1ZURhdGEtPmxpbmUoKSA+IDApCi0gICAgICAgIGN1ZS0+c2V0TGluZShzdGQ6
OnJvdW5kKGN1ZURhdGEtPmxpbmUoKSkpOwotICAgIGlmIChjdWVEYXRhLT5zaXplKCkgPiAwKQot
ICAgICAgICBjdWUtPnNldFNpemUoc3RkOjpyb3VuZChjdWVEYXRhLT5zaXplKCkpKTsKLSAgICBp
ZiAoY3VlRGF0YS0+YmFja2dyb3VuZENvbG9yKCkuaXNWYWxpZCgpKQotICAgICAgICBjdWUtPnNl
dEJhY2tncm91bmRDb2xvcihjdWVEYXRhLT5iYWNrZ3JvdW5kQ29sb3IoKS5yZ2IoKSk7Ci0gICAg
aWYgKGN1ZURhdGEtPmZvcmVncm91bmRDb2xvcigpLmlzVmFsaWQoKSkKLSAgICAgICAgY3VlLT5z
ZXRGb3JlZ3JvdW5kQ29sb3IoY3VlRGF0YS0+Zm9yZWdyb3VuZENvbG9yKCkucmdiKCkpOwotICAg
IGlmIChjdWVEYXRhLT5oaWdobGlnaHRDb2xvcigpLmlzVmFsaWQoKSkKLSAgICAgICAgY3VlLT5z
ZXRIaWdobGlnaHRDb2xvcihjdWVEYXRhLT5oaWdobGlnaHRDb2xvcigpLnJnYigpKTsKLQotICAg
IGlmIChjdWVEYXRhLT5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpTdGFydCkKLSAgICAgICAg
Y3VlLT5zZXRBbGlnbihBU0NJSUxpdGVyYWwoInN0YXJ0IikpOwotICAgIGVsc2UgaWYgKGN1ZURh
dGEtPmFsaWduKCkgPT0gR2VuZXJpY0N1ZURhdGE6Ok1pZGRsZSkKLSAgICAgICAgY3VlLT5zZXRB
bGlnbihBU0NJSUxpdGVyYWwoIm1pZGRsZSIpKTsKLSAgICBlbHNlIGlmIChjdWVEYXRhLT5hbGln
bigpID09IEdlbmVyaWNDdWVEYXRhOjpFbmQpCi0gICAgICAgIGN1ZS0+c2V0QWxpZ24oQVNDSUlM
aXRlcmFsKCJlbmQiKSk7Ci0gICAgY3VlLT5zZXRTbmFwVG9MaW5lcyhmYWxzZSk7Ci0KLSAgICBj
dWUtPmRpZENoYW5nZSgpOwotfQotCi12b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmFkZEdl
bmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSogdHJhY2tQcml2YXRlLCBQYXNzUmVmUHRy
PEdlbmVyaWNDdWVEYXRhPiBwcnBDdWVEYXRhKQotewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQ
cml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKLQotICAgIFJlZlB0cjxHZW5lcmlj
Q3VlRGF0YT4gY3VlRGF0YSA9IHBycEN1ZURhdGE7Ci0gICAgaWYgKG1fY3VlTWFwLmZpbmQoKmN1
ZURhdGEpKQorICAgIGN1ZS5zZXRFbmRUaW1lKGVuZFRpbWUpOworICAgIGN1ZS5zZXRUZXh0KGN1
ZURhdGEuY29udGVudCgpKTsKKyAgICBjdWUuc2V0SWQoY3VlRGF0YS5pZCgpKTsKKyAgICBjdWUu
c2V0QmFzZUZvbnRTaXplUmVsYXRpdmVUb1ZpZGVvSGVpZ2h0KGN1ZURhdGEuYmFzZUZvbnRTaXpl
KCkpOworICAgIGN1ZS5zZXRGb250U2l6ZU11bHRpcGxpZXIoY3VlRGF0YS5yZWxhdGl2ZUZvbnRT
aXplKCkpOworICAgIGN1ZS5zZXRGb250TmFtZShjdWVEYXRhLmZvbnROYW1lKCkpOworCisgICAg
aWYgKGN1ZURhdGEucG9zaXRpb24oKSA+IDApCisgICAgICAgIGN1ZS5zZXRQb3NpdGlvbihzdGQ6
OnJvdW5kKGN1ZURhdGEucG9zaXRpb24oKSkpOworICAgIGlmIChjdWVEYXRhLmxpbmUoKSA+IDAp
CisgICAgICAgIGN1ZS5zZXRMaW5lKHN0ZDo6cm91bmQoY3VlRGF0YS5saW5lKCkpKTsKKyAgICBp
ZiAoY3VlRGF0YS5zaXplKCkgPiAwKQorICAgICAgICBjdWUuc2V0U2l6ZShzdGQ6OnJvdW5kKGN1
ZURhdGEuc2l6ZSgpKSk7CisgICAgaWYgKGN1ZURhdGEuYmFja2dyb3VuZENvbG9yKCkuaXNWYWxp
ZCgpKQorICAgICAgICBjdWUuc2V0QmFja2dyb3VuZENvbG9yKGN1ZURhdGEuYmFja2dyb3VuZENv
bG9yKCkucmdiKCkpOworICAgIGlmIChjdWVEYXRhLmZvcmVncm91bmRDb2xvcigpLmlzVmFsaWQo
KSkKKyAgICAgICAgY3VlLnNldEZvcmVncm91bmRDb2xvcihjdWVEYXRhLmZvcmVncm91bmRDb2xv
cigpLnJnYigpKTsKKyAgICBpZiAoY3VlRGF0YS5oaWdobGlnaHRDb2xvcigpLmlzVmFsaWQoKSkK
KyAgICAgICAgY3VlLnNldEhpZ2hsaWdodENvbG9yKGN1ZURhdGEuaGlnaGxpZ2h0Q29sb3IoKS5y
Z2IoKSk7CisKKyAgICBpZiAoY3VlRGF0YS5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpTdGFy
dCkKKyAgICAgICAgY3VlLnNldEFsaWduKEFTQ0lJTGl0ZXJhbCgic3RhcnQiKSk7CisgICAgZWxz
ZSBpZiAoY3VlRGF0YS5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpNaWRkbGUpCisgICAgICAg
IGN1ZS5zZXRBbGlnbihBU0NJSUxpdGVyYWwoIm1pZGRsZSIpKTsKKyAgICBlbHNlIGlmIChjdWVE
YXRhLmFsaWduKCkgPT0gR2VuZXJpY0N1ZURhdGE6OkVuZCkKKyAgICAgICAgY3VlLnNldEFsaWdu
KEFTQ0lJTGl0ZXJhbCgiZW5kIikpOworICAgIGN1ZS5zZXRTbmFwVG9MaW5lcyhmYWxzZSk7CisK
KyAgICBjdWUuZGlkQ2hhbmdlKCk7Cit9CisKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6
YWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYgY3VlRGF0YSkKK3sKKyAgICBpZiAobV9jdWVN
YXAuZmluZChjdWVEYXRhKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBjdWUgPSBUZXh0
VHJhY2tDdWVHZW5lcmljOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgY3VlRGF0
YS0+c3RhcnRUaW1lKCksIGN1ZURhdGEtPmVuZFRpbWUoKSwgY3VlRGF0YS0+Y29udGVudCgpKTsK
LSAgICB1cGRhdGVDdWVGcm9tQ3VlRGF0YShjdWUucHRyKCksIGN1ZURhdGEuZ2V0KCkpOworICAg
IGF1dG8gY3VlID0gVGV4dFRyYWNrQ3VlR2VuZXJpYzo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksIGN1ZURhdGEuc3RhcnRUaW1lKCksIGN1ZURhdGEuZW5kVGltZSgpLCBjdWVEYXRh
LmNvbnRlbnQoKSk7CisgICAgdXBkYXRlQ3VlRnJvbUN1ZURhdGEoY3VlLmdldCgpLCBjdWVEYXRh
KTsKICAgICBpZiAoaGFzQ3VlKGN1ZS5wdHIoKSwgVGV4dFRyYWNrQ3VlOjpJZ25vcmVEdXJhdGlv
bikpIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2Vu
ZXJpY0N1ZSBpZ25vcmluZyBhbHJlYWR5IGFkZGVkIGN1ZTogc3RhcnQ9JXMsIGVuZD0lcywgY29u
dGVudD1cIiVzXCJcbiIsIHRvU3RyaW5nKGN1ZURhdGEtPnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0
YSgpLCB0b1N0cmluZyhjdWVEYXRhLT5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEt
PmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSBpZ25vcmluZyBhbHJlYWR5IGFkZGVkIGN1ZTog
c3RhcnQ9JXMsIGVuZD0lcywgY29udGVudD1cIiVzXCJcbiIsIHRvU3RyaW5nKGN1ZURhdGEuc3Rh
cnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZURhdGEuZW5kVGltZSgpKS51dGY4
KCkuZGF0YSgpLCBjdWVEYXRhLmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmFk
ZEdlbmVyaWNDdWUgYWRkZWQgY3VlOiBzdGFydD0lLjJmLCBlbmQ9JS4yZiwgY29udGVudD1cIiVz
XCJcbiIsIGN1ZURhdGEtPnN0YXJ0VGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEtPmVuZFRpbWUo
KS50b0RvdWJsZSgpLCBjdWVEYXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CisgICAgTE9H
KE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSBhZGRlZCBjdWU6
IHN0YXJ0PSUuMmYsIGVuZD0lLjJmLCBjb250ZW50PVwiJXNcIlxuIiwgY3VlRGF0YS5zdGFydFRp
bWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLmVuZFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLmNv
bnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgIGlmIChjdWVEYXRhLT5zdGF0dXMoKSAhPSBH
ZW5lcmljQ3VlRGF0YTo6Q29tcGxldGUpCi0gICAgICAgIG1fY3VlTWFwLmFkZCgqY3VlRGF0YSwg
Y3VlKTsKKyAgICBpZiAoY3VlRGF0YS5zdGF0dXMoKSAhPSBHZW5lcmljQ3VlRGF0YTo6Q29tcGxl
dGUpCisgICAgICAgIG1fY3VlTWFwLmFkZChjdWVEYXRhLCBjdWUpOwogCiAgICAgYWRkQ3VlKFdU
Rk1vdmUoY3VlKSk7CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6dXBkYXRlR2Vu
ZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqIGN1ZURhdGEp
Cit2b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnVwZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1
ZURhdGEmIGN1ZURhdGEpCiB7Ci0gICAgYXV0byogY3VlID0gbV9jdWVNYXAuZmluZCgqY3VlRGF0
YSk7CisgICAgYXV0byogY3VlID0gbV9jdWVNYXAuZmluZChjdWVEYXRhKTsKICAgICBpZiAoIWN1
ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQ3VlRnJvbUN1ZURhdGEoY3VlLCBjdWVE
YXRhKTsKKyAgICB1cGRhdGVDdWVGcm9tQ3VlRGF0YSgqY3VlLCBjdWVEYXRhKTsKIAotICAgIGlm
IChjdWVEYXRhLT5zdGF0dXMoKSA9PSBHZW5lcmljQ3VlRGF0YTo6Q29tcGxldGUpCi0gICAgICAg
IG1fY3VlTWFwLnJlbW92ZSgqY3VlRGF0YSk7CisgICAgaWYgKGN1ZURhdGEuc3RhdHVzKCkgPT0g
R2VuZXJpY0N1ZURhdGE6OkNvbXBsZXRlKQorICAgICAgICBtX2N1ZU1hcC5yZW1vdmUoY3VlRGF0
YSk7CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1ZShJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqIGN1ZURhdGEpCit2b2lkIElu
YmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmIGN1
ZURhdGEpCiB7Ci0gICAgYXV0byogY3VlID0gbV9jdWVNYXAuZmluZCgqY3VlRGF0YSk7CisgICAg
YXV0byogY3VlID0gbV9jdWVNYXAuZmluZChjdWVEYXRhKTsKICAgICBpZiAoY3VlKSB7Ci0gICAg
ICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVyaWNDdWUg
cmVtb3ZpbmcgY3VlOiBzdGFydD0lcywgZW5kPSVzLCBjb250ZW50PVwiJXNcIlxuIiwgIHRvU3Ry
aW5nKGN1ZURhdGEtPnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWVEYXRh
LT5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0
YSgpKTsKKyAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3Zl
R2VuZXJpY0N1ZSByZW1vdmluZyBjdWU6IHN0YXJ0PSVzLCBlbmQ9JXMsIGNvbnRlbnQ9XCIlc1wi
XG4iLCAgdG9TdHJpbmcoY3VlRGF0YS5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJp
bmcoY3VlRGF0YS5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEuY29udGVudCgpLnV0
ZjgoKS5kYXRhKCkpOwogICAgICAgICByZW1vdmVDdWUoKmN1ZSk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1
ZSBVTkFCTEUgdG8gZmluZCBjdWU6IHN0YXJ0PSUuMmYsIGVuZD0lLjJmLCBjb250ZW50PVwiJXNc
IlxuIiwgY3VlRGF0YS0+c3RhcnRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS0+ZW5kVGltZSgp
LnRvRG91YmxlKCksIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAg
TE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1ZSBVTkFC
TEUgdG8gZmluZCBjdWU6IHN0YXJ0PSUuMmYsIGVuZD0lLjJmLCBjb250ZW50PVwiJXNcIlxuIiwg
Y3VlRGF0YS5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLmVuZFRpbWUoKS50b0RvdWJs
ZSgpLCBjdWVEYXRhLmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKICAgICB9CiB9CiAKQEAgLTE3
OSwxNSArMTc2LDEzIEBAIFdlYlZUVFBhcnNlciYgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cGFy
c2VyKCkKICAgICByZXR1cm4gKm1fd2ViVlRUUGFyc2VyOwogfQogCi12b2lkIEluYmFuZEdlbmVy
aWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiB0
cmFja1ByaXZhdGUsIGNvbnN0IElTT1dlYlZUVEN1ZSYgY3VlRGF0YSkKK3ZvaWQgSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IElTT1dlYlZUVEN1ZSYgY3Vl
RGF0YSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09
IG1fcHJpdmF0ZSk7CiAgICAgcGFyc2VyKCkucGFyc2VDdWVEYXRhKGN1ZURhdGEpOwogfQogCi12
b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRURmlsZUhlYWRlcihJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIFN0cmluZyYmIGhlYWRlcikKK3ZvaWQgSW5i
YW5kR2VuZXJpY1RleHRUcmFjazo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmIGhlYWRl
cikKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1f
cHJpdmF0ZSk7CiAgICAgcGFyc2VyKCkucGFyc2VGaWxlSGVhZGVyKFdURk1vdmUoaGVhZGVyKSk7
CiB9CiAKQEAgLTIxNCw3ICsyMDksNyBAQCB2b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6Om5l
d1JlZ2lvbnNQYXJzZWQoKQogCiAgICAgZm9yIChhdXRvJiByZWdpb24gOiBuZXdSZWdpb25zKSB7
CiAgICAgICAgIHJlZ2lvbi0+c2V0VHJhY2sodGhpcyk7Ci0gICAgICAgIHJlZ2lvbnMoKS0+YWRk
KHJlZ2lvbik7CisgICAgICAgIHJlZ2lvbnMoKS0+YWRkKHJlZ2lvbi5yZWxlYXNlTm9uTnVsbCgp
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kR2VuZXJpY1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRH
ZW5lcmljVGV4dFRyYWNrLmgKaW5kZXggMWMzNDhiMmRhNTUxMDNlYmJmY2E4NzhkNDBiN2Y5MDc4
OWJkNDQ2My4uM2RjZWVhNDVmMGRjNTQ1NjIwOTBkNTI5MTU4OWIyMGM4YjRkYzQ5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmgK
QEAgLTMzLDkgKzMzLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEb2N1bWVu
dDsKLWNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGU7Ci0KIGNsYXNzIEdlbmVyaWNUZXh0VHJh
Y2tDdWVNYXAgewogcHVibGljOgogICAgIHZvaWQgYWRkKEdlbmVyaWNDdWVEYXRhJiwgVGV4dFRy
YWNrQ3VlR2VuZXJpYyYpOwpAQCAtNTYsMjMgKzUzLDIyIEBAIHByaXZhdGU6CiAKIGNsYXNzIElu
YmFuZEdlbmVyaWNUZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgSW5iYW5kVGV4dFRyYWNrLCBwcml2
YXRlIFdlYlZUVFBhcnNlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbmJhbmRH
ZW5lcmljVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFj
a0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHN0YXRp
YyBSZWY8SW5iYW5kR2VuZXJpY1RleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CiAgICAgdmly
dHVhbCB+SW5iYW5kR2VuZXJpY1RleHRUcmFjaygpOwogCiBwcml2YXRlOgotICAgIEluYmFuZEdl
bmVyaWNUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCos
IFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIEluYmFuZEdlbmVyaWNU
ZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRleHRUcmFja0NsaWVudCYsIEluYmFu
ZFRleHRUcmFja1ByaXZhdGUmKTsKIAotICAgIHZvaWQgYWRkR2VuZXJpY0N1ZShJbmJhbmRUZXh0
VHJhY2tQcml2YXRlKiwgUGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0YT4pIGZpbmFsOwotICAgIHZv
aWQgdXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURh
dGEqKSBmaW5hbDsKLSAgICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgZmluYWw7CisgICAgdm9pZCBhZGRHZW5lcmljQ3VlKEdl
bmVyaWNDdWVEYXRhJikgZmluYWw7CisgICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWND
dWVEYXRhJikgZmluYWw7CisgICAgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRh
JikgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVtb3ZlQ3VlKFRleHRUcmFja0N1ZSYp
IGZpbmFsOwogCi0gICAgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVHZW5lcmljPiBjcmVhdGVDdWUo
UGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0YT4pOwotICAgIHZvaWQgdXBkYXRlQ3VlRnJvbUN1ZURh
dGEoVGV4dFRyYWNrQ3VlR2VuZXJpYyosIEdlbmVyaWNDdWVEYXRhKik7CisgICAgdm9pZCB1cGRh
dGVDdWVGcm9tQ3VlRGF0YShUZXh0VHJhY2tDdWVHZW5lcmljJiwgR2VuZXJpY0N1ZURhdGEmKTsK
IAogICAgIFdlYlZUVFBhcnNlciYgcGFyc2VyKCk7Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURh
dGEoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IElTT1dlYlZUVEN1ZSYpIGZpbmFsOwot
ICAgIHZvaWQgcGFyc2VXZWJWVFRGaWxlSGVhZGVyKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBT
dHJpbmcmJikgZmluYWw7CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2Vi
VlRUQ3VlJikgZmluYWw7CisgICAgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYp
IGZpbmFsOwogCiAgICAgdm9pZCBuZXdDdWVzUGFyc2VkKCkgZmluYWw7CiAgICAgdm9pZCBuZXdS
ZWdpb25zUGFyc2VkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0luYmFuZFRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFu
ZFRleHRUcmFjay5jcHAKaW5kZXggZjJlZWVhZTBmYzAwOTRlNDI4YTg3YTY1ZDE4MzE3ZDNjZmY0
NDA3OS4uODdkMWRjNWM2YTllNDAyM2Q3OThjNmRmNDQ3OWFkNzRiZDJjYzUwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcApAQCAtNDMsMjQgKzQz
LDIyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJh
Y2s+IEluYmFuZFRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsCi0gICAgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQorUmVmPEluYmFuZFRleHRUcmFjaz4gSW5iYW5kVGV4
dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNr
Q2xpZW50JiBjbGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsK
LSAgICBzd2l0Y2ggKHRyYWNrUHJpdmF0ZS0+Y3VlRm9ybWF0KCkpIHsKKyAgICBzd2l0Y2ggKHRy
YWNrUHJpdmF0ZS5jdWVGb3JtYXQoKSkgewogICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZTo6RGF0YToKICAgICAgICAgcmV0dXJuIEluYmFuZERhdGFUZXh0VHJhY2s6OmNyZWF0ZShjb250
ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSk7CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlOjpHZW5lcmljOgogICAgICAgICByZXR1cm4gSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6Y3Jl
YXRlKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKTsKICAgICBjYXNlIEluYmFuZFRleHRU
cmFja1ByaXZhdGU6OldlYlZUVDoKICAgICAgICAgcmV0dXJuIEluYmFuZFdlYlZUVFRleHRUcmFj
azo6Y3JlYXRlKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKTsKLSAgICBkZWZhdWx0Ogot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIDA7CiAgICAgfQor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBJbmJhbmREYXRhVGV4dFRyYWNr
OjpjcmVhdGUoY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpOwogfQogCi1JbmJhbmRUZXh0
VHJhY2s6OkluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBU
ZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRl
PiB0cmFja1ByaXZhdGUpCi0gICAgOiBUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBlbXB0eUF0
b20sIHRyYWNrUHJpdmF0ZS0+aWQoKSwgdHJhY2tQcml2YXRlLT5sYWJlbCgpLCB0cmFja1ByaXZh
dGUtPmxhbmd1YWdlKCksIEluQmFuZCkKK0luYmFuZFRleHRUcmFjazo6SW5iYW5kVGV4dFRyYWNr
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50
LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgOiBUZXh0VHJhY2so
JmNvbnRleHQsICZjbGllbnQsIGVtcHR5QXRvbSwgdHJhY2tQcml2YXRlLmlkKCksIHRyYWNrUHJp
dmF0ZS5sYWJlbCgpLCB0cmFja1ByaXZhdGUubGFuZ3VhZ2UoKSwgSW5CYW5kKQogICAgICwgbV9w
cml2YXRlKHRyYWNrUHJpdmF0ZSkKIHsKICAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsK
QEAgLTcyLDEyICs3MCw5IEBAIEluYmFuZFRleHRUcmFjazo6fkluYmFuZFRleHRUcmFjaygpCiAg
ICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiB9CiAKLXZvaWQgSW5iYW5kVGV4dFRy
YWNrOjpzZXRQcml2YXRlKFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2tQ
cml2YXRlKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6OnNldFByaXZhdGUoSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIEFT
U0VSVCh0cmFja1ByaXZhdGUpOwotCi0gICAgaWYgKG1fcHJpdmF0ZSA9PSB0cmFja1ByaXZhdGUp
CisgICAgaWYgKG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKQEAgLTExNSw4MCArMTEw
LDYwIEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrOjpzZXRNb2RlSW50ZXJuYWwoTW9kZSBtb2RlKQog
CiBib29sIEluYmFuZFRleHRUcmFjazo6aXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0CiB7Ci0gICAg
aWYgKCFtX3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIHJldHVybiBtX3By
aXZhdGUtPmlzQ2xvc2VkQ2FwdGlvbnMoKTsKIH0KIAogYm9vbCBJbmJhbmRUZXh0VHJhY2s6Omlz
U0RIKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPmlzU0RIKCk7CiB9CiAKIGJvb2wgSW5iYW5k
VGV4dFRyYWNrOjpjb250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMoKSBjb25zdAogewotICAgIGlm
ICghbV9wcml2YXRlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCiAgICAgcmV0dXJuIG1f
cHJpdmF0ZS0+Y29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCk7CiB9CiAKIGJvb2wgSW5iYW5k
VGV4dFRyYWNrOjppc01haW5Qcm9ncmFtQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3By
aXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKICAgICByZXR1cm4gbV9wcml2YXRl
LT5pc01haW5Qcm9ncmFtQ29udGVudCgpOwogfQogCiBib29sIEluYmFuZFRleHRUcmFjazo6aXNF
YXN5VG9SZWFkKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPmlzRWFzeVRvUmVhZCgpOwogfQog
ICAgIAogc2l6ZV90IEluYmFuZFRleHRUcmFjazo6aW5iYW5kVHJhY2tJbmRleCgpCiB7Ci0gICAg
QVNTRVJUKG1fcHJpdmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dHJhY2tJbmRleCgpOwog
fQogCiBBdG9taWNTdHJpbmcgSW5iYW5kVGV4dFRyYWNrOjppbkJhbmRNZXRhZGF0YVRyYWNrRGlz
cGF0Y2hUeXBlKCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKICAgICByZXR1cm4g
bV9wcml2YXRlLT5pbkJhbmRNZXRhZGF0YVRyYWNrRGlzcGF0Y2hUeXBlKCk7CiB9CiAKLXZvaWQg
SW5iYW5kVGV4dFRyYWNrOjppZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRl
LCBjb25zdCBBdG9taWNTdHJpbmcmIGlkKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6OmlkQ2hhbmdl
ZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2
YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRJZChpZCk7CiB9CiAKLXZv
aWQgSW5iYW5kVGV4dFRyYWNrOjpsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQ
cml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6
OmxhYmVsQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQogewotICAgIEFTU0VSVF9V
TlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRM
YWJlbChsYWJlbCk7CiB9CiAKLXZvaWQgSW5iYW5kVGV4dFRyYWNrOjpsYW5ndWFnZUNoYW5nZWQo
VHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1
YWdlKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6Omxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9taWNT
dHJpbmcmIGxhbmd1YWdlKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFj
a1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRMYW5ndWFnZShsYW5ndWFnZSk7CiB9CiAK
LXZvaWQgSW5iYW5kVGV4dFRyYWNrOjp3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNr
UHJpdmF0ZSkKK3ZvaWQgSW5iYW5kVGV4dFRyYWNrOjp3aWxsUmVtb3ZlKCkKIHsKLSAgICBpZiAo
IW1lZGlhRWxlbWVudCgpKQorICAgIGF1dG8qIGVsZW1lbnQgPSBtZWRpYUVsZW1lbnQoKTsKKyAg
ICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNr
UHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7Ci0gICAgbWVkaWFFbGVtZW50KCkt
PnJlbW92ZVRleHRUcmFjaygqdGhpcyk7CisgICAgZWxlbWVudC0+cmVtb3ZlVGV4dFRyYWNrKCp0
aGlzKTsKIH0KIAogdm9pZCBJbmJhbmRUZXh0VHJhY2s6OnVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgp
CkBAIC0xOTYsMzQgKzE3MSwzMCBAQCB2b2lkIEluYmFuZFRleHRUcmFjazo6dXBkYXRlS2luZEZy
b21Qcml2YXRlKCkKICAgICBzd2l0Y2ggKG1fcHJpdmF0ZS0+a2luZCgpKSB7CiAgICAgY2FzZSBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlOjpTdWJ0aXRsZXM6CiAgICAgICAgIHNldEtpbmQoS2luZDo6
U3VidGl0bGVzKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIElu
YmFuZFRleHRUcmFja1ByaXZhdGU6OkNhcHRpb25zOgogICAgICAgICBzZXRLaW5kKEtpbmQ6OkNh
cHRpb25zKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluYmFu
ZFRleHRUcmFja1ByaXZhdGU6OkRlc2NyaXB0aW9uczoKICAgICAgICAgc2V0S2luZChLaW5kOjpE
ZXNjcmlwdGlvbnMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6Q2hhcHRlcnM6CiAgICAgICAgIHNldEtpbmQoS2luZDo6
Q2hhcHRlcnMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZTo6TWV0YWRhdGE6CiAgICAgICAgIHNldEtpbmQoS2luZDo6TWV0
YWRhdGEpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZTo6Rm9yY2VkOgogICAgICAgICBzZXRLaW5kKEtpbmQ6OkZvcmNlZCk7
Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlOjpOb25lOgotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9
CiAKIE1lZGlhVGltZSBJbmJhbmRUZXh0VHJhY2s6OnN0YXJ0VGltZVZhcmlhbmNlKCkgY29uc3QK
IHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1Rp
bWUoKTsKLSAgICAKICAgICByZXR1cm4gbV9wcml2YXRlLT5zdGFydFRpbWVWYXJpYW5jZSgpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFj
ay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suaAppbmRleCA5
Y2QwMjdjMzZjODViMGFhNTE1NjdlZTY5NmUxMjY2ZDA4NDVmMzNlLi44NjQ4MmMyOGJkMDIyOTYw
NGIzYWYyNjk1YTE3M2U1NzI0OTk0NmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0luYmFuZFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
SW5iYW5kVGV4dFRyYWNrLmgKQEAgLTM1LDkgKzM1LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBJbmJhbmRUZXh0VHJhY2sgOiBwdWJsaWMgVGV4dFRyYWNrLCBwdWJsaWMgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCB7CitjbGFzcyBJbmJhbmRUZXh0VHJhY2sgOiBwdWJs
aWMgVGV4dFRyYWNrLCBwcml2YXRlIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gY3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRl
eHRUcmFja1ByaXZhdGU+KTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZFRleHRUcmFjaz4gY3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlJik7CiAgICAgdmlydHVhbCB+SW5iYW5kVGV4dFRyYWNrKCk7CiAKICAgICBib29s
IGlzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdCBvdmVycmlkZTsKQEAgLTUwLDM4ICs1MCwzOCBAQCBw
dWJsaWM6CiAKICAgICBBdG9taWNTdHJpbmcgaW5CYW5kTWV0YWRhdGFUcmFja0Rpc3BhdGNoVHlw
ZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZXRQcml2YXRlKFBhc3NSZWZQdHI8SW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHZvaWQgc2V0UHJpdmF0ZShJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlJik7CiAKIHByb3RlY3RlZDoKLSAgICBJbmJhbmRUZXh0VHJhY2soU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZT4pOworICAgIEluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogCiAgICAgdm9p
ZCBzZXRNb2RlSW50ZXJuYWwoTW9kZSk7CiAgICAgdm9pZCB1cGRhdGVLaW5kRnJvbVByaXZhdGUo
KTsKIAotICAgIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiBtX3ByaXZhdGU7CisgICAg
UmVmPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IG1fcHJpdmF0ZTsKIAogcHJpdmF0ZToKICAgICBi
b29sIGlzSW5iYW5kKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQgaWRD
aGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsK
LSAgICB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRlQmFz
ZSosIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbFJlbW92ZShU
cmFja1ByaXZhdGVCYXNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRv
bWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBsYWJlbENoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgb3ZlcnJpZGU7CiAKLSAg
ICB2b2lkIGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGlt
ZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkgb3ZlcnJpZGUgeyBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRp
bWUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpIG92ZXJyaWRlIHsg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQotICAg
IHZvaWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1l
JiwgY29uc3QgTWVkaWFUaW1lJiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNl
bnRhdGlvbj4sIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7
IH0KLSAgICB2b2lkIHVwZGF0ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0
IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRm
b3JtUmVwcmVzZW50YXRpb24+KSBvdmVycmlkZSAgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQot
ICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1S
ZXByZXNlbnRhdGlvbj4pIG92ZXJyaWRlICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAg
dm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFJlZjxT
ZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4mJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShjb25z
dCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNl
bnRhdGlvbiYpIG92ZXJyaWRlICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBy
ZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNlcmlhbGl6
ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uJikgb3ZlcnJpZGUgIHsgQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KICNlbmRpZgogCi0gICAgdm9pZCBhZGRHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1By
aXZhdGUqLCBQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsgfQotICAgIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9Ci0gICAgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBH
ZW5lcmljQ3VlRGF0YSopIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2
b2lkIGFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9CisgICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikg
b3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgcmVtb3ZlR2VuZXJp
Y0N1ZShHZW5lcmljQ3VlRGF0YSYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
IAotICAgIHZvaWQgcGFyc2VXZWJWVFRGaWxlSGVhZGVyKEluYmFuZFRleHRUcmFja1ByaXZhdGUq
LCBTdHJpbmcmJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZvaWQg
cGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBjaGFyKiwg
dW5zaWduZWQpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2b2lkIHBh
cnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNPV2ViVlRU
Q3VlJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgcGFyc2VX
ZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgY2hhciosIHVuc2lnbmVkKSBv
dmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1
ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogCiAgICAgTWVkaWFUaW1lIHN0YXJ0VGltZVZhcmlhbmNlKCkgY29uc3Qgb3ZlcnJpZGU7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRU
ZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0
VHJhY2suY3BwCmluZGV4IGU1NDBlNDk0MWFlY2E4NmMwZmZlYTc1MzRiN2FhMjI2YjEyY2MyYTYu
LmM5ODEyNTE0ZjViYzJmZmZkMzhjYjM4ZjhjNmY5YTI4NTc5ZTk5MTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAKQEAgLTI0
LDI3ICsyNCwyNSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmJh
bmRXZWJWVFRUZXh0VHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotI2luY2x1
ZGUgIkluYmFuZFdlYlZUVFRleHRUcmFjay5oIgotCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgogI2luY2x1ZGUgIlZUVFJlZ2lvbkxpc3QuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPEluYmFuZFRleHRUcmFjaz4gSW5i
YW5kV2ViVlRUVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZT4gcGxheWVyUHJpdmF0ZSkKK2lubGluZSBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OkluYmFu
ZFdlYlZUVFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUZXh0VHJh
Y2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQor
ICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKQogewot
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZFdlYlZUVFRleHRUcmFjayhjb250ZXh0LCBj
bGllbnQsIHBsYXllclByaXZhdGUpKTsKIH0KIAotSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpJbmJh
bmRXZWJWVFRUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRy
YWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJh
Y2tQcml2YXRlKQotICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQ
cml2YXRlKQorUmVmPEluYmFuZFRleHRUcmFjaz4gSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50JiBjbGll
bnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBJbmJhbmRXZWJWVFRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFj
a1ByaXZhdGUpKTsKIH0KIAogSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjp+SW5iYW5kV2ViVlRUVGV4
dFRyYWNrKCkKQEAgLTU4LDE1ICs1NiwxMyBAQCBXZWJWVFRQYXJzZXImIEluYmFuZFdlYlZUVFRl
eHRUcmFjazo6cGFyc2VyKCkKICAgICByZXR1cm4gKm1fd2ViVlRUUGFyc2VyOwogfQogCi12b2lk
IEluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFj
a1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3Ro
KQordm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBj
aGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1By
aXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHBhcnNlcigpLnBhcnNlQnl0
ZXMoZGF0YSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBhcnNl
V2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIGNvbnN0
IElTT1dlYlZUVEN1ZSYgY3VlRGF0YSkKK3ZvaWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpwYXJz
ZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJiBjdWVEYXRhKQogewotICAgIEFTU0VS
VF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBw
YXJzZXIoKS5wYXJzZUN1ZURhdGEoY3VlRGF0YSk7CiB9CiAKQEAgLTc0LDEwICs3MCw4IEBAIHZv
aWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpuZXdDdWVzUGFyc2VkKCkKIHsKICAgICBWZWN0b3I8
UmVmUHRyPFdlYlZUVEN1ZURhdGE+PiBjdWVzOwogICAgIHBhcnNlcigpLmdldE5ld0N1ZXMoY3Vl
cyk7Ci0KICAgICBmb3IgKGF1dG8mIGN1ZURhdGEgOiBjdWVzKSB7CiAgICAgICAgIGF1dG8gdnR0
Q3VlID0gVlRUQ3VlOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKmN1ZURhdGEp
OwotCiAgICAgICAgIGlmIChoYXNDdWUodnR0Q3VlLnB0cigpLCBUZXh0VHJhY2tDdWU6Oklnbm9y
ZUR1cmF0aW9uKSkgewogICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kV2ViVlRUVGV4dFRy
YWNrOjpuZXdDdWVzUGFyc2VkIGlnbm9yaW5nIGFscmVhZHkgYWRkZWQgY3VlOiBzdGFydD0lLjJm
LCBlbmQ9JS4yZiwgY29udGVudD1cIiVzXCJcbiIsIHZ0dEN1ZS0+c3RhcnRUaW1lKCksIHZ0dEN1
ZS0+ZW5kVGltZSgpLCB2dHRDdWUtPnRleHQoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTkwLDEzICs4NCwxMiBAQCB2b2lkIEluYmFuZFdlYlZUVFRleHRUcmFjazo6
bmV3UmVnaW9uc1BhcnNlZCgpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxWVFRSZWdpb24+PiBuZXdS
ZWdpb25zOwogICAgIHBhcnNlcigpLmdldE5ld1JlZ2lvbnMobmV3UmVnaW9ucyk7Ci0KICAgICBm
b3IgKGF1dG8mIHJlZ2lvbiA6IG5ld1JlZ2lvbnMpIHsKICAgICAgICAgcmVnaW9uLT5zZXRUcmFj
ayh0aGlzKTsKLSAgICAgICAgcmVnaW9ucygpLT5hZGQocmVnaW9uKTsKKyAgICAgICAgcmVnaW9u
cygpLT5hZGQocmVnaW9uLnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KIH0KLSAgICAKKwogdm9p
ZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmZpbGVGYWlsZWRUb1BhcnNlKCkKIHsKICAgICBMT0co
TWVkaWEsICJFcnJvciBwYXJzaW5nIFdlYlZUVCBzdHJlYW0uIik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suaAppbmRleCA4Y2M3N2E5Y2Vk
YTNjMzdiYjFmNmUxZDVhNTkzZDI2M2MzZDI0OWVmLi4yYTUxZTM4NWE5ZjJhNDQ5ZjhlOTljZGY0
YjNhYjRjMGJhZmVjZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0lu
YmFuZFdlYlZUVFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kV2ViVlRUVGV4dFRyYWNrLmgKQEAgLTMwLDI1ICszMCwyNCBAQAogI2luY2x1ZGUgIkluYmFu
ZFRleHRUcmFjay5oIgogI2luY2x1ZGUgIldlYlZUVFBhcnNlci5oIgogI2luY2x1ZGUgPG1lbW9y
eT4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgSW5iYW5kV2ViVlRUVGV4dFRyYWNrIGZpbmFsIDogcHVibGljIEluYmFuZFRleHRUcmFjaywg
cHJpdmF0ZSBXZWJWVFRQYXJzZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SW5i
YW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0Ns
aWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHN0YXRpYyBS
ZWY8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRleHRU
cmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKICAgICB2aXJ0dWFsIH5JbmJh
bmRXZWJWVFRUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKLSAgICBJbmJhbmRXZWJWVFRUZXh0VHJh
Y2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIEluYmFuZFdlYlZUVFRleHRUcmFjayhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSYpOwogCiAgICAgV2ViVlRUUGFyc2VyJiBwYXJzZXIoKTsKLSAgICB2b2lkIHBhcnNlV2Vi
VlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgY2hhciogZGF0YSwgdW5z
aWduZWQgbGVuZ3RoKSBvdmVycmlkZTsKLSAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJh
bmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNPV2ViVlRUQ3VlJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3Ro
KSBmaW5hbDsKKyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUm
KSBmaW5hbDsKIAotICAgIHZvaWQgbmV3Q3Vlc1BhcnNlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQg
bmV3UmVnaW9uc1BhcnNlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgZmlsZUZhaWxlZFRvUGFyc2Uo
KSBvdmVycmlkZTsKKyAgICB2b2lkIG5ld0N1ZXNQYXJzZWQoKSBmaW5hbDsKKyAgICB2b2lkIG5l
d1JlZ2lvbnNQYXJzZWQoKSBmaW5hbDsKKyAgICB2b2lkIGZpbGVGYWlsZWRUb1BhcnNlKCkgZmlu
YWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViVlRUUGFyc2VyPiBtX3dlYlZUVFBhcnNlcjsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRy
YWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3Bw
CmluZGV4IDIxMGY2YTlkZjVhYzc3MTc1YTk4MTJhYzA1MTA0MjIzMmEzNDBmMzMuLmNlZmEzZmJl
MGIxMzkyNmM2MjdmMGY2NGVlM2Q4ZDQ0NmNhYTA4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3BwCkBAIC05NiwxMSArOTYsMTEgQEAgdm9p
ZCBMb2FkYWJsZVRleHRUcmFjazo6bmV3Q3Vlc0F2YWlsYWJsZShUZXh0VHJhY2tMb2FkZXIqIGxv
YWRlcikKIAogICAgIGZvciAoYXV0byYgbmV3Q3VlIDogbmV3Q3VlcykgewogICAgICAgICBuZXdD
dWUtPnNldFRyYWNrKHRoaXMpOwotICAgICAgICBtX2N1ZXMtPmFkZChuZXdDdWUpOworICAgICAg
ICBtX2N1ZXMtPmFkZChuZXdDdWUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogCiAgICAgaWYg
KGNsaWVudCgpKQotICAgICAgICBjbGllbnQoKS0+dGV4dFRyYWNrQWRkQ3Vlcyh0aGlzLCBtX2N1
ZXMuZ2V0KCkpOworICAgICAgICBjbGllbnQoKS0+dGV4dFRyYWNrQWRkQ3VlcygqdGhpcywgKm1f
Y3Vlcyk7CiB9CiAKIHZvaWQgTG9hZGFibGVUZXh0VHJhY2s6OmN1ZUxvYWRpbmdDb21wbGV0ZWQo
VGV4dFRyYWNrTG9hZGVyKiBsb2FkZXIsIGJvb2wgbG9hZGluZ0ZhaWxlZCkKQEAgLTEyMiw3ICsx
MjIsNyBAQCB2b2lkIExvYWRhYmxlVGV4dFRyYWNrOjpuZXdSZWdpb25zQXZhaWxhYmxlKFRleHRU
cmFja0xvYWRlciogbG9hZGVyKQogCiAgICAgZm9yIChhdXRvJiBuZXdSZWdpb24gOiBuZXdSZWdp
b25zKSB7CiAgICAgICAgIG5ld1JlZ2lvbi0+c2V0VHJhY2sodGhpcyk7Ci0gICAgICAgIHJlZ2lv
bnMoKS0+YWRkKG5ld1JlZ2lvbik7CisgICAgICAgIHJlZ2lvbnMoKS0+YWRkKG5ld1JlZ2lvbi5y
ZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrLmNwcAppbmRleCA5NmJjZDdlZDM1MGQyOGUwNDJlYWU2OGNlZDUyMDFhNzFmM2M1ZjA5
Li5iMGM4NjAwMDNkZmYxYzgwZDhlNjkzMjQ1N2ZiYzEzOWU0ZTJiN2QyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCkBAIC0xMjAsOCArMTIwLDcgQEAgVGV4dFRyYWNr
Ojp+VGV4dFRyYWNrKCkKIHsKICAgICBpZiAobV9jdWVzKSB7CiAgICAgICAgIGlmIChtX2NsaWVu
dCkKLSAgICAgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKHRoaXMsIG1fY3Vl
cy5nZXQoKSk7Ci0KKyAgICAgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKCp0
aGlzLCAqbV9jdWVzKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2N1ZXMtPmxl
bmd0aCgpOyArK2kpCiAgICAgICAgICAgICBtX2N1ZXMtPml0ZW0oaSktPnNldFRyYWNrKG51bGxw
dHIpOwogICAgIH0KQEAgLTE4OSw3ICsxODgsNyBAQCB2b2lkIFRleHRUcmFjazo6c2V0S2luZChL
aW5kIG5ld0tpbmQpCiAgICAgLy8gMy4gSWYgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24g
dGhpcyB0cmFjayBpcyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBs
ZQogICAgIC8vIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCBzb3VyY2VCdWZmZXIudGV4dFRyYWNrcy4K
ICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVmZmVyLT50ZXh0VHJh
Y2tzKCktPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXItPnRl
eHRUcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICAgICAvLyA0LiBRdWV1ZSBhIHRh
c2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2UgYXQgdGhlIFRleHRUcmFja0xp
c3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdGV4dFRyYWNrcyBhdHRyaWJ1dGUg
b24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCkBAIC0xOTgsNyArMTk3LDcgQEAgdm9pZCBUZXh0VHJh
Y2s6OnNldEtpbmQoS2luZCBuZXdLaW5kKQogI2VuZGlmCiAKICAgICBpZiAobV9jbGllbnQgJiYg
b2xkS2luZCAhPSBtX2tpbmQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tLaW5kQ2hhbmdl
ZCh0aGlzKTsKKyAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja0tpbmRDaGFuZ2VkKCp0aGlzKTsK
IH0KIAogdm9pZCBUZXh0VHJhY2s6OnNldEtpbmRLZXl3b3JkSWdub3JpbmdBU0NJSUNhc2UoU3Ry
aW5nVmlldyBrZXl3b3JkKQpAQCAtMjM2LDcgKzIzNSw3IEBAIHZvaWQgVGV4dFRyYWNrOjpzZXRN
b2RlKE1vZGUgbW9kZSkKICAgICAvLyBJZiBtb2RlIGNoYW5nZXMgdG8gZGlzYWJsZWQsIHJlbW92
ZSB0aGlzIHRyYWNrJ3MgY3VlcyBmcm9tIHRoZSBjbGllbnQKICAgICAvLyBiZWNhdXNlIHRoZXkg
d2lsbCBubyBsb25nZXIgYmUgYWNjZXNzaWJsZSBmcm9tIHRoZSBjdWVzKCkgZnVuY3Rpb24uCiAg
ICAgaWYgKG1vZGUgPT0gTW9kZTo6RGlzYWJsZWQgJiYgbV9jbGllbnQgJiYgbV9jdWVzKQotICAg
ICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0aGlzLCBtX2N1ZXMuZ2V0KCkpOwor
ICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlcygqdGhpcywgKm1fY3Vlcyk7CiAK
ICAgICBpZiAobW9kZSAhPSBNb2RlOjpTaG93aW5nICYmIG1fY3VlcykgewogICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkgewpAQCAtMjQ5LDcgKzI0
OCw3IEBAIHZvaWQgVGV4dFRyYWNrOjpzZXRNb2RlKE1vZGUgbW9kZSkKICAgICBtX21vZGUgPSBt
b2RlOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrTW9k
ZUNoYW5nZWQodGhpcyk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tNb2RlQ2hhbmdlZCgq
dGhpcyk7CiB9CiAKIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6Y3VlcygpCkBAIC0yNzAs
NyArMjY5LDcgQEAgdm9pZCBUZXh0VHJhY2s6OnJlbW92ZUFsbEN1ZXMoKQogICAgICAgICByZXR1
cm47CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1v
dmVDdWVzKHRoaXMsIG1fY3Vlcy5nZXQoKSk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tS
ZW1vdmVDdWVzKCp0aGlzLCAqbV9jdWVzKTsKICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkKICAgICAgICAgbV9jdWVzLT5pdGVtKGkpLT5zZXRU
cmFjayhudWxscHRyKTsKQEAgLTI4OCw3ICsyODcsNyBAQCBUZXh0VHJhY2tDdWVMaXN0KiBUZXh0
VHJhY2s6OmFjdGl2ZUN1ZXMoKSBjb25zdAogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9z
cGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI2RvbS10ZXh0dHJhY2stYWN0aXZlY3VlcwogICAg
IGlmICghbV9jdWVzIHx8IG1fbW9kZSA9PSBNb2RlOjpEaXNhYmxlZCkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgcmV0dXJuIG1fY3Vlcy0+YWN0aXZlQ3VlcygpOworICAgIHJldHVybiAm
bV9jdWVzLT5hY3RpdmVDdWVzKCk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFRleHRUcmFjazo6
YWRkQ3VlKFJlZjxUZXh0VHJhY2tDdWU+JiYgY3VlKQpAQCAtMzE4LDEwICszMTcsMTAgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gVGV4dFRyYWNrOjphZGRDdWUoUmVmPFRleHRUcmFja0N1ZT4mJiBjdWUp
CiAKICAgICAvLyAyLiBBZGQgY3VlIHRvIHRoZSBtZXRob2QncyBUZXh0VHJhY2sgb2JqZWN0J3Mg
dGV4dCB0cmFjaydzIHRleHQgdHJhY2sgbGlzdCBvZiBjdWVzLgogICAgIGN1ZS0+c2V0VHJhY2so
dGhpcyk7Ci0gICAgZW5zdXJlVGV4dFRyYWNrQ3VlTGlzdCgpLmFkZChjdWUucHRyKCkpOworICAg
IGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKS5hZGQoY3VlLmNvcHlSZWYoKSk7CiAgICAgCiAgICAg
aWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrQWRkQ3VlKHRoaXMsIGN1
ZSk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tBZGRDdWUoKnRoaXMsIGN1ZSk7CiAKICAg
ICByZXR1cm4geyB9OwogfQpAQCAtMzM4LDEyICszMzcsMTIgQEAgRXhjZXB0aW9uT3I8dm9pZD4g
VGV4dFRyYWNrOjpyZW1vdmVDdWUoVGV4dFRyYWNrQ3VlJiBjdWUpCiAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOT1RfRk9VTkRfRVJSIH07CiAKICAgICAvLyAyLiBSZW1vdmUgY3VlIGZyb20g
dGhlIG1ldGhvZCdzIFRleHRUcmFjayBvYmplY3QncyB0ZXh0IHRyYWNrJ3MgdGV4dCB0cmFjayBs
aXN0IG9mIGN1ZXMuCi0gICAgaWYgKCFtX2N1ZXMgfHwgIW1fY3Vlcy0+cmVtb3ZlKCZjdWUpKQot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFURV9FUlIgfTsKLQorICAgIEFT
U0VSVChtX2N1ZXMpOworICAgIG1fY3Vlcy0+cmVtb3ZlKGN1ZSk7CisgICAgY3VlLnNldElzQWN0
aXZlKGZhbHNlKTsKICAgICBjdWUuc2V0VHJhY2sobnVsbHB0cik7CiAgICAgaWYgKG1fY2xpZW50
KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKHRoaXMsIGN1ZSk7CisgICAg
ICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUoKnRoaXMsIGN1ZSk7CiAKICAgICByZXR1
cm4geyB9OwogfQpAQCAtMzkyLDEwICszOTEsOSBAQCB2b2lkIFRleHRUcmFjazo6YWRkUmVnaW9u
KFJlZlB0cjxWVFRSZWdpb24+JiYgcmVnaW9uKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgLy8gT3RoZXJ3aXNlOiBhZGQgcmVnaW9uIHRvIHRoZSBtZXRob2QncyBUZXh0VHJhY2sgb2Jq
ZWN0J3MgdGV4dCB0cmFjawotICAgIC8vIGxpc3Qgb2YgcmVnaW9ucy4KKyAgICAvLyBPdGhlcndp
c2U6IGFkZCByZWdpb24gdG8gdGhlIG1ldGhvZCdzIFRleHRUcmFjayBvYmplY3QncyB0ZXh0IHRy
YWNrIGxpc3Qgb2YgcmVnaW9ucy4KICAgICByZWdpb24tPnNldFRyYWNrKHRoaXMpOwotICAgIHJl
Z2lvbkxpc3QuYWRkKFdURk1vdmUocmVnaW9uKSk7CisgICAgcmVnaW9uTGlzdC5hZGQocmVnaW9u
LnJlbGVhc2VOb25OdWxsKCkpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBUZXh0VHJhY2s6OnJl
bW92ZVJlZ2lvbihWVFRSZWdpb24qIHJlZ2lvbikKQEAgLTQwOCw5ICs0MDYsOCBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBUZXh0VHJhY2s6OnJlbW92ZVJlZ2lvbihWVFRSZWdpb24qIHJlZ2lvbikKICAg
ICBpZiAocmVnaW9uLT50cmFjaygpICE9IHRoaXMpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOT1RfRk9VTkRfRVJSIH07CiAKLSAgICBpZiAoIW1fcmVnaW9ucyB8fCAhbV9yZWdpb25zLT5y
ZW1vdmUocmVnaW9uKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfU1RBVEVf
RVJSIH07Ci0KKyAgICBBU1NFUlQobV9yZWdpb25zKTsKKyAgICBtX3JlZ2lvbnMtPnJlbW92ZSgq
cmVnaW9uKTsKICAgICByZWdpb24tPnNldFRyYWNrKG51bGxwdHIpOwogICAgIHJldHVybiB7IH07
CiB9CkBAIC00MjIsNyArNDE5LDcgQEAgdm9pZCBUZXh0VHJhY2s6OmN1ZVdpbGxDaGFuZ2UoVGV4
dFRyYWNrQ3VlKiBjdWUpCiAKICAgICAvLyBUaGUgY3VlIG1heSBuZWVkIHRvIGJlIHJlcG9zaXRp
b25lZCBpbiB0aGUgbWVkaWEgZWxlbWVudCdzIGludGVydmFsIHRyZWUsIG1heSBuZWVkIHRvCiAg
ICAgLy8gYmUgcmUtcmVuZGVyZWQsIGV0Yywgc28gcmVtb3ZlIGl0IGJlZm9yZSB0aGUgbW9kaWZp
Y2F0aW9uLi4uCi0gICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZSh0aGlzLCAqY3VlKTsK
KyAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKCp0aGlzLCAqY3VlKTsKIH0KIAogdm9p
ZCBUZXh0VHJhY2s6OmN1ZURpZENoYW5nZShUZXh0VHJhY2tDdWUqIGN1ZSkKQEAgLTQzMSwxMCAr
NDI4LDEwIEBAIHZvaWQgVGV4dFRyYWNrOjpjdWVEaWRDaGFuZ2UoVGV4dFRyYWNrQ3VlKiBjdWUp
CiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE1ha2Ugc3VyZSB0aGUgVGV4dFRyYWNrQ3VlTGlz
dCBvcmRlciBpcyB1cC10by1kYXRlLgotICAgIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKS51cGRh
dGVDdWVJbmRleChjdWUpOworICAgIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKS51cGRhdGVDdWVJ
bmRleCgqY3VlKTsKIAogICAgIC8vIC4uLiBhbmQgYWRkIGl0IGJhY2sgYWdhaW4uCi0gICAgbV9j
bGllbnQtPnRleHRUcmFja0FkZEN1ZSh0aGlzLCAqY3VlKTsKKyAgICBtX2NsaWVudC0+dGV4dFRy
YWNrQWRkQ3VlKCp0aGlzLCAqY3VlKTsKIH0KIAogaW50IFRleHRUcmFjazo6dHJhY2tJbmRleCgp
CkBAIC01NjQsNyArNTYxLDcgQEAgdm9pZCBUZXh0VHJhY2s6OnNldExhbmd1YWdlKGNvbnN0IEF0
b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiAgICAgLy8gMy4gSWYgdGhlIHNvdXJjZUJ1ZmZlciBhdHRy
aWJ1dGUgb24gdGhpcyB0cmFjayBpcyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmly
ZSBhIHNpbXBsZQogICAgIC8vIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCBzb3VyY2VCdWZmZXIudGV4
dFRyYWNrcy4KICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVmZmVy
LT50ZXh0VHJhY2tzKCktPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKKyAgICAgICAgbV9zb3VyY2VC
dWZmZXItPnRleHRUcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICAgICAvLyA0LiBR
dWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2UgYXQgdGhlIFRl
eHRUcmFja0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdGV4dFRyYWNrcyBh
dHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2suaAppbmRleCBiODA0OWM3MGNhZTFhYTk3ODVjMDRhNTQ5OWJjN2FlNmM4MzBjZWRi
Li5kY2UyMDEwNWY5ODc5YmVjM2IyN2E2ODk0YjlkNzg1YTIxN2UwYjM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKQEAgLTQ0LDEyICs0NCwxMiBAQCBjbGFzcyBWVFRSZWdp
b25MaXN0OwogY2xhc3MgVGV4dFRyYWNrQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5U
ZXh0VHJhY2tDbGllbnQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrS2luZENoYW5n
ZWQoVGV4dFRyYWNrKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdl
ZChUZXh0VHJhY2sqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4
dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0Kikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgVGV4dFRy
YWNrQ3VlJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRy
YWNrKiwgVGV4dFRyYWNrQ3VlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tLaW5k
Q2hhbmdlZChUZXh0VHJhY2smKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja01vZGVD
aGFuZ2VkKFRleHRUcmFjayYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3Vl
cyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxp
c3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2smLCBU
ZXh0VHJhY2tDdWUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShU
ZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSA9IDA7CiB9OwogCiBjbGFzcyBUZXh0VHJhY2sgOiBw
dWJsaWMgVHJhY2tCYXNlLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXggZmNiYTE5ZDBkYmJh
ZDRlMDA0NzkwOTFlY2Q1NmU4MjcyZGNlNThlZC4uM2RhNjZlMDVlMjc2NzlmZjUxMjM0M2I4OWU0
YTMzMzQ0ZjQ0YmRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3Vl
LmNwcApAQCAtNDksOCArNDksNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBj
b25zdCBpbnQgaW52YWxpZEN1ZUluZGV4ID0gLTE7Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4
dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21pY1N0cmluZz4gY3VlKCJjdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKQEAgLTYwLDkgKzU4LDYgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0
VHJhY2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lkKCkKIFRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3Vl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW5kKQogICAgIDogbV9zdGFydFRpbWUoc3RhcnQpCiAgICAgLCBt
X2VuZFRpbWUoZW5kKQotICAgICwgbV9jdWVJbmRleChpbnZhbGlkQ3VlSW5kZXgpCi0gICAgLCBt
X3Byb2Nlc3NpbmdDdWVDaGFuZ2VzKDApCi0gICAgLCBtX3RyYWNrKDApCiAgICAgLCBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkKICAgICAsIG1faXNBY3RpdmUoZmFsc2UpCiAgICAg
LCBtX3BhdXNlT25FeGl0KGZhbHNlKQpAQCAtMTQ5LDIzICsxNDQsNiBAQCB2b2lkIFRleHRUcmFj
a0N1ZTo6c2V0UGF1c2VPbkV4aXQoYm9vbCB2YWx1ZSkKICAgICBtX3BhdXNlT25FeGl0ID0gdmFs
dWU7CiB9CiAKLWludCBUZXh0VHJhY2tDdWU6OmN1ZUluZGV4KCkKLXsKLSAgICBpZiAobV9jdWVJ
bmRleCA9PSBpbnZhbGlkQ3VlSW5kZXgpIHsKLSAgICAgICAgQVNTRVJUKHRyYWNrKCkpOwotICAg
ICAgICBBU1NFUlQodHJhY2soKS0+Y3VlcygpKTsKLSAgICAgICAgaWYgKFRleHRUcmFja0N1ZUxp
c3QqIGN1ZUxpc3QgPSB0cmFjaygpLT5jdWVzKCkpCi0gICAgICAgICAgICBtX2N1ZUluZGV4ID0g
Y3VlTGlzdC0+Z2V0Q3VlSW5kZXgodGhpcyk7Ci0gICAgfQotCi0gICAgcmV0dXJuIG1fY3VlSW5k
ZXg7Ci19Ci0KLXZvaWQgVGV4dFRyYWNrQ3VlOjppbnZhbGlkYXRlQ3VlSW5kZXgoKQotewotICAg
IG1fY3VlSW5kZXggPSBpbnZhbGlkQ3VlSW5kZXg7Ci19Ci0KIGJvb2wgVGV4dFRyYWNrQ3VlOjpk
aXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCkKIHsKICAgICAvLyBXaGVuIGEgVGV4dFRyYWNrJ3Mg
bW9kZSBpcyBkaXNhYmxlZDogbm8gY3VlcyBhcmUgYWN0aXZlLCBubyBldmVudHMgZmlyZWQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAppbmRleCA1NzM1MWRjNjBlMmI2
ZWFmNTA4MGYwMzA5YTQ1MTY4Zjc4MzBhNzM0Li4zNTZiNjMzNTk3NDYwNDdkNmIxZDFmOGY3ZmRh
MDhkMjg0NmI3OGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0N1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgK
QEAgLTY1LDkgKzY1LDYgQEAgcHVibGljOgogICAgIE1lZGlhVGltZSBlbmRNZWRpYVRpbWUoKSBj
b25zdCB7IHJldHVybiBtX2VuZFRpbWU7IH0KICAgICB2b2lkIHNldEVuZFRpbWUoY29uc3QgTWVk
aWFUaW1lJik7CiAKLSAgICBpbnQgY3VlSW5kZXgoKTsKLSAgICB2b2lkIGludmFsaWRhdGVDdWVJ
bmRleCgpOwotCiAgICAgYm9vbCBpc0FjdGl2ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJc0Fj
dGl2ZShib29sKTsKIApAQCAtMTExLDEwICsxMDgsOSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBt
X2lkOwogICAgIE1lZGlhVGltZSBtX3N0YXJ0VGltZTsKICAgICBNZWRpYVRpbWUgbV9lbmRUaW1l
OwotICAgIGludCBtX2N1ZUluZGV4OwotICAgIGludCBtX3Byb2Nlc3NpbmdDdWVDaGFuZ2VzOwor
ICAgIGludCBtX3Byb2Nlc3NpbmdDdWVDaGFuZ2VzIHsgMCB9OwogCi0gICAgVGV4dFRyYWNrKiBt
X3RyYWNrOworICAgIFRleHRUcmFjayogbV90cmFjayB7IG51bGxwdHIgfTsKIAogICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5jcHAKaW5kZXggZmZkOGVhZTRk
OTkzNjQ4MGE2YTViYzM1OTJmZTA4MGI3MTZlMTNhMS4uYTE5NmU0MzFlYmFiZmFiYWJjYTVmZDhh
N2EzNWM5MTY5YTUwYTFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tDdWVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0N1ZUxpc3QuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjksMTE3ICszMCwxMDMgQEAKIAogI2luY2x1ZGUgIlRleHRUcmFja0N1ZUxp
c3QuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworLy8gQ2hlY2tpbmcgc29ydGluZyBpcyB0b28g
c2xvdyBmb3IgZ2VuZXJhbCB1c2U7IHR1cm4gaXQgb24gZXhwbGljaXRseSB3aGVuIHdvcmtpbmcg
b24gdGhpcyBjbGFzcy4KKyN1bmRlZiBDSEVDS19TT1JUSU5HCiAKLVRleHRUcmFja0N1ZUxpc3Q6
OlRleHRUcmFja0N1ZUxpc3QoKQotewotfQorI2lmZGVmIENIRUNLX1NPUlRJTkcKKyNkZWZpbmUg
QVNTRVJUX1NPUlRFRChiZWdpbiwgZW5kLCBjb21wYXJhdG9yKSBBU1NFUlQoc3RkOjppc19zb3J0
ZWQoYmVnaW4sIGVuZCwgY29tcGFyYXRvcikpCisjZWxzZQorI2RlZmluZSBBU1NFUlRfU09SVEVE
KGJlZ2luLCBlbmQsIGNvbXBhcmF0b3IpICgodm9pZCkwKQorI2VuZGlmCiAKLXVuc2lnbmVkIGxv
bmcgVGV4dFRyYWNrQ3VlTGlzdDo6bGVuZ3RoKCkgY29uc3QKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVDdWVzKGNvbnN0IFJlZlB0cjxUZXh0VHJhY2tD
dWU+JiBhLCBjb25zdCBSZWZQdHI8VGV4dFRyYWNrQ3VlPiYgYikKIHsKLSAgICByZXR1cm4gbV9s
aXN0LnNpemUoKTsKKyAgICByZXR1cm4gYS0+aXNPcmRlcmVkQmVmb3JlKGIuZ2V0KCkpOwogfQog
Ci11bnNpZ25lZCBsb25nIFRleHRUcmFja0N1ZUxpc3Q6OmdldEN1ZUluZGV4KFRleHRUcmFja0N1
ZSogY3VlKSBjb25zdAordW5zaWduZWQgVGV4dFRyYWNrQ3VlTGlzdDo6Y3VlSW5kZXgoVGV4dFRy
YWNrQ3VlJiBjdWUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbGlzdC5maW5kKGN1ZSk7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMCwgc2l6ZSA9IG1fdmVjdG9yLnNpemUoKTsgaSA8IHNpemU7ICsr
aSkgeworICAgICAgICBpZiAobV92ZWN0b3JbaV0gPT0gJmN1ZSkKKyAgICAgICAgICAgIHJldHVy
biBpOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKIH0K
IAogVGV4dFRyYWNrQ3VlKiBUZXh0VHJhY2tDdWVMaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KSBj
b25zdAogewotICAgIGlmIChpbmRleCA8IG1fbGlzdC5zaXplKCkpCi0gICAgICAgIHJldHVybiBt
X2xpc3RbaW5kZXhdLmdldCgpOwotICAgIHJldHVybiAwOworICAgIGlmIChpbmRleCA+PSBtX3Zl
Y3Rvci5zaXplKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBtX3ZlY3Rv
cltpbmRleF0uZ2V0KCk7CiB9CiAKIFRleHRUcmFja0N1ZSogVGV4dFRyYWNrQ3VlTGlzdDo6Z2V0
Q3VlQnlJZChjb25zdCBTdHJpbmcmIGlkKSBjb25zdAogewotICAgIGZvciAoYXV0byYgY3VlIDog
bV9saXN0KSB7CisgICAgZm9yIChhdXRvJiBjdWUgOiBtX3ZlY3RvcikgewogICAgICAgICBpZiAo
Y3VlLT5pZCgpID09IGlkKQogICAgICAgICAgICAgcmV0dXJuIGN1ZS5nZXQoKTsKICAgICB9Ci0g
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVRleHRUcmFja0N1ZUxpc3Qq
IFRleHRUcmFja0N1ZUxpc3Q6OmFjdGl2ZUN1ZXMoKQorVGV4dFRyYWNrQ3VlTGlzdCYgVGV4dFRy
YWNrQ3VlTGlzdDo6YWN0aXZlQ3VlcygpCiB7CiAgICAgaWYgKCFtX2FjdGl2ZUN1ZXMpCiAgICAg
ICAgIG1fYWN0aXZlQ3VlcyA9IGNyZWF0ZSgpOwogCi0gICAgbV9hY3RpdmVDdWVzLT5jbGVhcigp
OwotICAgIGZvciAoYXV0byYgY3VlIDogbV9saXN0KSB7CisgICAgVmVjdG9yPFJlZlB0cjxUZXh0
VHJhY2tDdWU+PiBhY3RpdmVDdWVzVmVjdG9yOworICAgIGZvciAoYXV0byYgY3VlIDogbV92ZWN0
b3IpIHsKICAgICAgICAgaWYgKGN1ZS0+aXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1fYWN0aXZl
Q3Vlcy0+YWRkKGN1ZSk7CisgICAgICAgICAgICBhY3RpdmVDdWVzVmVjdG9yLmFwcGVuZChjdWUp
OwogICAgIH0KLSAgICByZXR1cm4gbV9hY3RpdmVDdWVzLmdldCgpOworICAgIEFTU0VSVF9TT1JU
RUQoYWN0aXZlQ3Vlc1ZlY3Rvci5iZWdpbigpLCBhY3RpdmVDdWVzVmVjdG9yLmVuZCgpLCBjb21w
YXJlQ3Vlcyk7CisgICAgbV9hY3RpdmVDdWVzLT5tX3ZlY3RvciA9IFdURk1vdmUoYWN0aXZlQ3Vl
c1ZlY3Rvcik7CisKKyAgICAvLyBGSVhNRTogVGhpcyBsaXN0IG9mIGFjdGl2ZSBjdWVzIGlzIG5v
dCB1cGRhdGVkIGFzIGN1ZXMgYXJlIGFkZGVkLCByZW1vdmVkLCBiZWNvbWUgYWN0aXZlLCBhbmQg
YmVjb21lIGluYWN0aXZlLgorICAgIC8vIEluc3RlYWQgaXQgaXMgb25seSB1cGRhdGVkIGVhY2gg
dGltZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBhZ2Fpbi4gVGhhdCBpcyBub3QgY29uc2lzdGVu
dCB3aXRoIG90aGVyIGR5bmFtaWMgRE9NIGxpc3RzLgorICAgIHJldHVybiAqbV9hY3RpdmVDdWVz
OwogfQogCi1ib29sIFRleHRUcmFja0N1ZUxpc3Q6OmFkZChQYXNzUmVmUHRyPFRleHRUcmFja0N1
ZT4gY3VlKQordm9pZCBUZXh0VHJhY2tDdWVMaXN0OjphZGQoUmVmPFRleHRUcmFja0N1ZT4mJiBj
dWUpCiB7CiAgICAgQVNTRVJUKGN1ZS0+c3RhcnRNZWRpYVRpbWUoKSA+PSBNZWRpYVRpbWU6Onpl
cm9UaW1lKCkpOwogICAgIEFTU0VSVChjdWUtPmVuZE1lZGlhVGltZSgpID49IE1lZGlhVGltZTo6
emVyb1RpbWUoKSk7CiAKLSAgICByZXR1cm4gYWRkKGN1ZSwgMCwgbV9saXN0LnNpemUoKSk7Cisg
ICAgUmVmUHRyPFRleHRUcmFja0N1ZT4gY3VlUmVmUHRyIHsgV1RGTW92ZShjdWUpIH07CisgICAg
dW5zaWduZWQgaW5zZXJ0aW9uUG9zaXRpb24gPSBzdGQ6OnVwcGVyX2JvdW5kKG1fdmVjdG9yLmJl
Z2luKCksIG1fdmVjdG9yLmVuZCgpLCBjdWVSZWZQdHIsIGNvbXBhcmVDdWVzKSAtIG1fdmVjdG9y
LmJlZ2luKCk7CisgICAgQVNTRVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5l
bmQoKSwgY29tcGFyZUN1ZXMpOworICAgIG1fdmVjdG9yLmluc2VydChpbnNlcnRpb25Qb3NpdGlv
biwgV1RGTW92ZShjdWVSZWZQdHIpKTsKKyAgICBBU1NFUlRfU09SVEVEKG1fdmVjdG9yLmJlZ2lu
KCksIG1fdmVjdG9yLmVuZCgpLCBjb21wYXJlQ3Vlcyk7CiB9CiAKLWJvb2wgVGV4dFRyYWNrQ3Vl
TGlzdDo6YWRkKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBwcnBDdWUsIHNpemVfdCBzdGFydCwg
c2l6ZV90IGVuZCkKK3ZvaWQgVGV4dFRyYWNrQ3VlTGlzdDo6cmVtb3ZlKFRleHRUcmFja0N1ZSYg
Y3VlKQogewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHN0YXJ0IDw9IG1f
bGlzdC5zaXplKCkpOwotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGVuZCA8
PSBtX2xpc3Quc2l6ZSgpKTsKLQotICAgIC8vIE1haW50YWluIHRleHQgdHJhY2sgY3VlIG9yZGVy
OgotICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdv
cmsvI3RleHQtdHJhY2stY3VlLW9yZGVyCi0gICAgUmVmUHRyPFRleHRUcmFja0N1ZT4gY3VlID0g
cHJwQ3VlOwotICAgIGlmIChzdGFydCA9PSBlbmQpIHsKLSAgICAgICAgaWYgKCFtX2xpc3QuaXNF
bXB0eSgpICYmIChzdGFydCA+IDApICYmIChtX2xpc3Rbc3RhcnQgLSAxXS5nZXQoKSA9PSBjdWUu
Z2V0KCkpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIG1fbGlzdC5pbnNl
cnQoc3RhcnQsIGN1ZSk7Ci0gICAgICAgIGludmFsaWRhdGVDdWVJbmRleGVzKHN0YXJ0KTsKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgc2l6ZV90IGluZGV4ID0gKHN0YXJ0ICsg
ZW5kKSAvIDI7Ci0gICAgaWYgKGN1ZS0+aXNPcmRlcmVkQmVmb3JlKG1fbGlzdFtpbmRleF0uZ2V0
KCkpKQotICAgICAgICByZXR1cm4gYWRkKFdURk1vdmUoY3VlKSwgc3RhcnQsIGluZGV4KTsKLQot
ICAgIHJldHVybiBhZGQoV1RGTW92ZShjdWUpLCBpbmRleCArIDEsIGVuZCk7CisgICAgQVNTRVJU
X1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSwgY29tcGFyZUN1ZXMpOwor
ICAgIG1fdmVjdG9yLnJlbW92ZShjdWVJbmRleChjdWUpKTsKKyAgICBBU1NFUlRfU09SVEVEKG1f
dmVjdG9yLmJlZ2luKCksIG1fdmVjdG9yLmVuZCgpLCBjb21wYXJlQ3Vlcyk7CiB9CiAKLWJvb2wg
VGV4dFRyYWNrQ3VlTGlzdDo6cmVtb3ZlKFRleHRUcmFja0N1ZSogY3VlKQordm9pZCBUZXh0VHJh
Y2tDdWVMaXN0Ojp1cGRhdGVDdWVJbmRleChUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKLSAgICBzaXpl
X3QgaW5kZXggPSBtX2xpc3QuZmluZChjdWUpOwotICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgY3VlLT5zZXRJc0FjdGl2ZShmYWxzZSk7Ci0g
ICAgbV9saXN0LnJlbW92ZShpbmRleCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgVGV4
dFRyYWNrQ3VlTGlzdDo6Y29udGFpbnMoVGV4dFRyYWNrQ3VlKiBjdWUpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fbGlzdC5jb250YWlucyhjdWUpOwotfQotCi1ib29sIFRleHRUcmFja0N1ZUxpc3Q6
OnVwZGF0ZUN1ZUluZGV4KFRleHRUcmFja0N1ZSogY3VlKQotewotICAgIGlmICghY29udGFpbnMo
Y3VlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHJlbW92ZShjdWUpOwotICAg
IHJldHVybiBhZGQoY3VlKTsKLX0KLQotdm9pZCBUZXh0VHJhY2tDdWVMaXN0OjpjbGVhcigpCi17
Ci0gICAgbV9saXN0LmNsZWFyKCk7Ci19CisgICAgYXV0byBjdWVQb3NpdGlvbiA9IG1fdmVjdG9y
LmJlZ2luKCkgKyBjdWVJbmRleChjdWUpOworICAgIGF1dG8gYWZ0ZXJDdWVQb3NpdGlvbiA9IGN1
ZVBvc2l0aW9uICsgMTsKKworICAgIEFTU0VSVF9TT1JURUQobV92ZWN0b3IuYmVnaW4oKSwgY3Vl
UG9zaXRpb24sIGNvbXBhcmVDdWVzKTsKKyAgICBBU1NFUlRfU09SVEVEKGFmdGVyQ3VlUG9zaXRp
b24sIG1fdmVjdG9yLmVuZCgpLCBjb21wYXJlQ3Vlcyk7CisKKyAgICBhdXRvIHJlaW5zZXJ0aW9u
UG9zaXRpb24gPSBzdGQ6OnVwcGVyX2JvdW5kKG1fdmVjdG9yLmJlZ2luKCksIGN1ZVBvc2l0aW9u
LCAqY3VlUG9zaXRpb24sIGNvbXBhcmVDdWVzKTsKKyAgICBpZiAocmVpbnNlcnRpb25Qb3NpdGlv
biAhPSBjdWVQb3NpdGlvbikKKyAgICAgICAgc3RkOjpyb3RhdGUocmVpbnNlcnRpb25Qb3NpdGlv
biwgY3VlUG9zaXRpb24sIGFmdGVyQ3VlUG9zaXRpb24pOworICAgIGVsc2UgeworICAgICAgICBy
ZWluc2VydGlvblBvc2l0aW9uID0gc3RkOjp1cHBlcl9ib3VuZChhZnRlckN1ZVBvc2l0aW9uLCBt
X3ZlY3Rvci5lbmQoKSwgKmN1ZVBvc2l0aW9uLCBjb21wYXJlQ3Vlcyk7CisgICAgICAgIGlmIChy
ZWluc2VydGlvblBvc2l0aW9uICE9IGFmdGVyQ3VlUG9zaXRpb24pCisgICAgICAgICAgICBzdGQ6
OnJvdGF0ZShjdWVQb3NpdGlvbiwgYWZ0ZXJDdWVQb3NpdGlvbiwgcmVpbnNlcnRpb25Qb3NpdGlv
bik7CisgICAgfQogCi12b2lkIFRleHRUcmFja0N1ZUxpc3Q6OmludmFsaWRhdGVDdWVJbmRleGVz
KHNpemVfdCBzdGFydCkKLXsKLSAgICBmb3IgKHNpemVfdCBpID0gc3RhcnQ7IGkgPCBtX2xpc3Qu
c2l6ZSgpOyArK2kpCi0gICAgICAgIG1fbGlzdFtpXS0+aW52YWxpZGF0ZUN1ZUluZGV4KCk7Cisg
ICAgQVNTRVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSwgY29tcGFy
ZUN1ZXMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5oCmluZGV4IGEyMThmYjY5MDg5NjI0YzFmMjgzOWM3
NTNhYzEyNWZmMGRiM2MyOTkuLjZlN2Y0MmI5OWI4NDAyODVhYTUwMjY4YzgyYjQwYTk4MjAyYzk0
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlz
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5oCkBA
IC0yOCw0NCArMjgsNDEgQEAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKICNpbmNsdWRlICJU
ZXh0VHJhY2tDdWUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFRleHRUcmFja0N1ZUxpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxUZXh0
VHJhY2tDdWVMaXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxUZXh0VHJhY2tDdWVMaXN0
PiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNr
Q3VlTGlzdCk7Ci0gICAgfQotCi0gICAgflRleHRUcmFja0N1ZUxpc3QoKSB7IH0KLQotICAgIHVu
c2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgbG9uZyBnZXRDdWVJbmRl
eChUZXh0VHJhY2tDdWUqKSBjb25zdDsKLQorICAgIHN0YXRpYyBSZWY8VGV4dFRyYWNrQ3VlTGlz
dD4gY3JlYXRlKCk7CisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CiAgICAgVGV4dFRyYWNr
Q3VlKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKICAgICBUZXh0VHJhY2tDdWUqIGdldEN1
ZUJ5SWQoY29uc3QgU3RyaW5nJikgY29uc3Q7Ci0gICAgVGV4dFRyYWNrQ3VlTGlzdCogYWN0aXZl
Q3VlcygpOwogCi0gICAgYm9vbCBhZGQoUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+KTsKLSAgICBi
b29sIHJlbW92ZShUZXh0VHJhY2tDdWUqKTsKLSAgICBib29sIGNvbnRhaW5zKFRleHRUcmFja0N1
ZSopIGNvbnN0OwotICAgIAotICAgIGJvb2wgdXBkYXRlQ3VlSW5kZXgoVGV4dFRyYWNrQ3VlKik7
CisgICAgdW5zaWduZWQgY3VlSW5kZXgoVGV4dFRyYWNrQ3VlJikgY29uc3Q7CisgICAgVGV4dFRy
YWNrQ3VlTGlzdCYgYWN0aXZlQ3VlcygpOworCisgICAgdm9pZCBhZGQoUmVmPFRleHRUcmFja0N1
ZT4mJik7CisgICAgdm9pZCByZW1vdmUoVGV4dFRyYWNrQ3VlJik7CisKKyAgICB2b2lkIHVwZGF0
ZUN1ZUluZGV4KFRleHRUcmFja0N1ZSYpOwogCiBwcml2YXRlOgotICAgIFRleHRUcmFja0N1ZUxp
c3QoKTsKLSAgICBib29sIGFkZChQYXNzUmVmUHRyPFRleHRUcmFja0N1ZT4sIHNpemVfdCwgc2l6
ZV90KTsKLSAgICB2b2lkIGNsZWFyKCk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlQ3VlSW5kZXhlcyhz
aXplX3QpOworICAgIFRleHRUcmFja0N1ZUxpc3QoKSA9IGRlZmF1bHQ7CiAKLSAgICBWZWN0b3I8
UmVmUHRyPFRleHRUcmFja0N1ZT4+IG1fbGlzdDsKKyAgICBWZWN0b3I8UmVmUHRyPFRleHRUcmFj
a0N1ZT4+IG1fdmVjdG9yOwogICAgIFJlZlB0cjxUZXh0VHJhY2tDdWVMaXN0PiBtX2FjdGl2ZUN1
ZXM7CiB9OwogCitpbmxpbmUgUmVmPFRleHRUcmFja0N1ZUxpc3Q+IFRleHRUcmFja0N1ZUxpc3Q6
OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrQ3VlTGlzdCk7
Cit9CisKK2lubGluZSB1bnNpZ25lZCBUZXh0VHJhY2tDdWVMaXN0OjpsZW5ndGgoKSBjb25zdAor
eworICAgIHJldHVybiBtX3ZlY3Rvci5zaXplKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZUVFJlZ2lvbkxpc3QuY3BwCmluZGV4IGI3ZTc5ZDBmN2U2YmJjNzRlNDFhNzFmZDVi
ZWU3NDFkYzEyZDdkZDIuLmUyYjA1YzgxMmJiYzRmMjI0ZjI3NzQzNmE0YzI2MjFjN2Q5MzBkYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNwcApAQCAtMSw2
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw1NyAr
MjksNDEgQEAKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVZUVFJlZ2lvbkxpc3Q6OlZUVFJlZ2lvbkxpc3QoKQotewotfQotCi11bnNpZ25lZCBs
b25nIFZUVFJlZ2lvbkxpc3Q6Omxlbmd0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbGlzdC5z
aXplKCk7Ci19Ci0KIFZUVFJlZ2lvbiogVlRUUmVnaW9uTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRl
eCkgY29uc3QKIHsKLSAgICBpZiAoaW5kZXggPCBtX2xpc3Quc2l6ZSgpKQotICAgICAgICByZXR1
cm4gbV9saXN0W2luZGV4XS5nZXQoKTsKLQotICAgIHJldHVybiAwOworICAgIGlmIChpbmRleCA+
PSBtX3ZlY3Rvci5zaXplKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBj
b25zdF9jYXN0PFZUVFJlZ2lvbio+KG1fdmVjdG9yW2luZGV4XS5wdHIoKSk7CiB9CiAKIFZUVFJl
Z2lvbiogVlRUUmVnaW9uTGlzdDo6Z2V0UmVnaW9uQnlJZChjb25zdCBTdHJpbmcmIGlkKSBjb25z
dAogeworICAgIC8vIEZJWE1FOiBXaHkgaXMgdGhpcyBzcGVjaWFsIGNhc2UgbmVlZGVkPwogICAg
IGlmIChpZC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgZm9yIChjb25zdCBh
dXRvJiByZWdpb24gOiBtX2xpc3QpIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgZm9y
IChhdXRvJiByZWdpb24gOiBtX3ZlY3RvcikgewogICAgICAgICBpZiAocmVnaW9uLT5pZCgpID09
IGlkKQotICAgICAgICAgICAgcmV0dXJuIHJlZ2lvbi5nZXQoKTsKKyAgICAgICAgICAgIHJldHVy
biBjb25zdF9jYXN0PFZUVFJlZ2lvbio+KHJlZ2lvbi5wdHIoKSk7CiAgICAgfQotCi0gICAgcmV0
dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgVlRUUmVnaW9uTGlzdDo6YWRk
KFBhc3NSZWZQdHI8VlRUUmVnaW9uPiByZWdpb24pCit2b2lkIFZUVFJlZ2lvbkxpc3Q6OmFkZChS
ZWY8VlRUUmVnaW9uPiYmIHJlZ2lvbikKIHsKLSAgICBtX2xpc3QuYXBwZW5kKHJlZ2lvbik7Cisg
ICAgbV92ZWN0b3IuYXBwZW5kKFdURk1vdmUocmVnaW9uKSk7CiB9CiAKLWJvb2wgVlRUUmVnaW9u
TGlzdDo6cmVtb3ZlKFZUVFJlZ2lvbiogcmVnaW9uKQordm9pZCBWVFRSZWdpb25MaXN0OjpyZW1v
dmUoVlRUUmVnaW9uJiByZWdpb24pCiB7Ci0gICAgc2l6ZV90IGluZGV4ID0gbV9saXN0LmZpbmQo
cmVnaW9uKTsKLSAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIG1fbGlzdC5yZW1vdmUoaW5kZXgpOwotICAgIHJldHVybiB0cnVlOwotfQotCi12
b2lkIFZUVFJlZ2lvbkxpc3Q6OmNsZWFyKCkKLXsKLSAgICBtX2xpc3QuY2xlYXIoKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwLCBzaXplID0gbV92ZWN0b3Iuc2l6ZSgpOyBpIDwgc2l6ZTsgKytp
KSB7CisgICAgICAgIGlmIChtX3ZlY3RvcltpXS5wdHIoKSA9PSAmcmVnaW9uKSB7CisgICAgICAg
ICAgICBtX3ZlY3Rvci5yZW1vdmUoaSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlz
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmgKaW5kZXggMmZk
ZGRjMmVkMTlhNTZlNDgxYWFjZjQ2NWJjODhhN2IyYjdmY2NlMy4uZWQwZmM0YzllZjdiN2U0M2I5
MTAxZTQ3NGRkNTNkNGE5ZGQ5ZjIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WVFRSZWdpb25MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRS
ZWdpb25MaXN0LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjksMzYgKzI5LDQzIEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAj
aW5jbHVkZSAiVlRUUmVnaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBWVFRSZWdpb25MaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8
VlRUUmVnaW9uTGlzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VlRUUmVnaW9uTGlzdD4g
Y3JlYXRlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZUVFJlZ2lvbkxp
c3QpOwotICAgIH0KLQotICAgIH5WVFRSZWdpb25MaXN0KCkgeyB9Ci0KLSAgICB1bnNpZ25lZCBs
b25nIGxlbmd0aCgpIGNvbnN0OworICAgIHN0YXRpYyBSZWY8VlRUUmVnaW9uTGlzdD4gY3JlYXRl
KCk7CiAKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKICAgICBWVFRSZWdpb24qIGl0ZW0o
dW5zaWduZWQgaW5kZXgpIGNvbnN0OwogICAgIFZUVFJlZ2lvbiogZ2V0UmVnaW9uQnlJZChjb25z
dCBTdHJpbmcmKSBjb25zdDsKIAotICAgIHZvaWQgYWRkKFBhc3NSZWZQdHI8VlRUUmVnaW9uPik7
Ci0gICAgYm9vbCByZW1vdmUoVlRUUmVnaW9uKik7CisgICAgdm9pZCBhZGQoUmVmPFZUVFJlZ2lv
bj4mJik7CisgICAgdm9pZCByZW1vdmUoVlRUUmVnaW9uJik7CiAKIHByaXZhdGU6Ci0gICAgVlRU
UmVnaW9uTGlzdCgpOworICAgIFZUVFJlZ2lvbkxpc3QoKSA9IGRlZmF1bHQ7CisKICAgICB2b2lk
IGNsZWFyKCk7CiAKLSAgICBWZWN0b3I8UmVmUHRyPFZUVFJlZ2lvbj4+IG1fbGlzdDsKKyAgICBW
ZWN0b3I8UmVmPFZUVFJlZ2lvbj4+IG1fdmVjdG9yOwogfTsKIAoraW5saW5lIFJlZjxWVFRSZWdp
b25MaXN0PiBWVFRSZWdpb25MaXN0OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFZUVFJlZ2lvbkxpc3QpOworfQorCitpbmxpbmUgdW5zaWduZWQgVlRUUmVnaW9uTGlzdDo6
bGVuZ3RoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92ZWN0b3Iuc2l6ZSgpOworfQorCitpbmxp
bmUgdm9pZCBWVFRSZWdpb25MaXN0OjpjbGVhcigpCit7CisgICAgbV92ZWN0b3IuY2xlYXIoKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RS
QUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5pZGwKaW5kZXgg
NTM4MWQzOWM2NmYxY2ZjM2QwMjFiMWRjNDBlYzMyODE0MmM3YmNkMS4uNDg1YTkxNWU3ZDdmMDdi
Mzg1OGViMGM3YjE4NWFiYWE5NzhhOTM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRSZWdpb25MaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZUVFJlZ2lvbkxpc3QuaWRsCkBAIC0yNCwxMiArMjQsMTEgQEAKICAqLwogCiBbCi0gICAgTm9J
bnRlcmZhY2VPYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9VklERU9fVFJBQ0ssCiAgICAgSW1wbGVt
ZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKIF0gaW50ZXJmYWNl
IFZUVFJlZ2lvbkxpc3QgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxl
bmd0aDsKICAgICBnZXR0ZXIgVlRUUmVnaW9uIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAg
ICAgVlRUUmVnaW9uIGdldFJlZ2lvbkJ5SWQoRE9NU3RyaW5nIGlkKTsKIH07Ci0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCmluZGV4IGY4MGJjMTBhOGNjOGRlMjgyZDlm
YWYzMTk0NmQ2MWNkZTBjYmM0MzEuLjQ3NzYyYjQxZTVmMTU1MzU3NDEzNjNjYjVlYjg1ZGEwMDI3
M2FlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcApAQCAtODEs
MTAgKzgxLDEwIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgVmlkZW9UcmFjazo6Y29tbWVudGFyeUtl
eXdvcmQoKQogICAgIHJldHVybiBjb21tZW50YXJ5OwogfQogCi1WaWRlb1RyYWNrOjpWaWRlb1Ry
YWNrKFZpZGVvVHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0
ZT4gdHJhY2tQcml2YXRlKQotICAgIDogTWVkaWFUcmFja0Jhc2UoTWVkaWFUcmFja0Jhc2U6OlZp
ZGVvVHJhY2ssIHRyYWNrUHJpdmF0ZS0+aWQoKSwgdHJhY2tQcml2YXRlLT5sYWJlbCgpLCB0cmFj
a1ByaXZhdGUtPmxhbmd1YWdlKCkpCi0gICAgLCBtX3NlbGVjdGVkKHRyYWNrUHJpdmF0ZS0+c2Vs
ZWN0ZWQoKSkKLSAgICAsIG1fY2xpZW50KGNsaWVudCkKK1ZpZGVvVHJhY2s6OlZpZGVvVHJhY2so
VmlkZW9UcmFja0NsaWVudCYgY2xpZW50LCBWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRl
KQorICAgIDogTWVkaWFUcmFja0Jhc2UoTWVkaWFUcmFja0Jhc2U6OlZpZGVvVHJhY2ssIHRyYWNr
UHJpdmF0ZS5pZCgpLCB0cmFja1ByaXZhdGUubGFiZWwoKSwgdHJhY2tQcml2YXRlLmxhbmd1YWdl
KCkpCisgICAgLCBtX3NlbGVjdGVkKHRyYWNrUHJpdmF0ZS5zZWxlY3RlZCgpKQorICAgICwgbV9j
bGllbnQoJmNsaWVudCkKICAgICAsIG1fcHJpdmF0ZSh0cmFja1ByaXZhdGUpCiB7CiAgICAgbV9w
cml2YXRlLT5zZXRDbGllbnQodGhpcyk7CkBAIC05MywxNSArOTMsMTIgQEAgVmlkZW9UcmFjazo6
VmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8VmlkZW9UcmFj
a1ByaXZhdGU+IHQKIAogVmlkZW9UcmFjazo6flZpZGVvVHJhY2soKQogewotICAgIG1fcHJpdmF0
ZS0+c2V0Q2xpZW50KDApOworICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwogfQog
Ci12b2lkIFZpZGVvVHJhY2s6OnNldFByaXZhdGUoUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0
ZT4gdHJhY2tQcml2YXRlKQordm9pZCBWaWRlb1RyYWNrOjpzZXRQcml2YXRlKFZpZGVvVHJhY2tQ
cml2YXRlJiB0cmFja1ByaXZhdGUpCiB7Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7Ci0gICAgQVNT
RVJUKHRyYWNrUHJpdmF0ZSk7Ci0KLSAgICBpZiAobV9wcml2YXRlID09IHRyYWNrUHJpdmF0ZSkK
KyAgICBpZiAobV9wcml2YXRlLnB0cigpID09ICZ0cmFja1ByaXZhdGUpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwpAQCAtMTM5LDQ2ICsxMzYs
NDUgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZXRTZWxlY3RlZChjb25zdCBib29sIHNlbGVjdGVkKQog
ICAgIG1fcHJpdmF0ZS0+c2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOwogCiAgICAgaWYgKG1fY2xpZW50
KQotICAgICAgICBtX2NsaWVudC0+dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCh0aGlzKTsKKyAg
ICAgICAgbV9jbGllbnQtPnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoKnRoaXMpOwogfQogCiBz
aXplX3QgVmlkZW9UcmFjazo6aW5iYW5kVHJhY2tJbmRleCgpCiB7Ci0gICAgQVNTRVJUKG1fcHJp
dmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dHJhY2tJbmRleCgpOwogfQogCiB2b2lkIFZp
ZGVvVHJhY2s6OnNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrUHJpdmF0ZSogdHJhY2tQcml2YXRl
LCBib29sIHNlbGVjdGVkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFj
a1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKKyAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwg
dHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZS5wdHIoKSk7CiAgICAgc2V0U2VsZWN0ZWQoc2VsZWN0
ZWQpOwogfQogCi12b2lkIFZpZGVvVHJhY2s6OmlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0
cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCit2b2lkIFZpZGVvVHJhY2s6Omlk
Q2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJh
Y2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRJZChpZCk7CiB9
CiAKLXZvaWQgVmlkZW9UcmFjazo6bGFiZWxDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNr
UHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkKK3ZvaWQgVmlkZW9UcmFjazo6bGFi
ZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpCiB7Ci0gICAgQVNTRVJUX1VOVVNF
RCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldExhYmVs
KGxhYmVsKTsKIH0KIAotdm9pZCBWaWRlb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2
YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKQordm9p
ZCBWaWRlb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFn
ZSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1f
cHJpdmF0ZSk7CiAgICAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2UpOwogfQogCi12b2lkIFZpZGVvVHJh
Y2s6OndpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlKQordm9pZCBWaWRl
b1RyYWNrOjp3aWxsUmVtb3ZlKCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwg
dHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7Ci0gICAgbWVkaWFFbGVtZW50KCktPnJlbW92ZVZp
ZGVvVHJhY2soKnRoaXMpOworICAgIGF1dG8qIGVsZW1lbnQgPSBtZWRpYUVsZW1lbnQoKTsKKyAg
ICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKyAgICBlbGVtZW50LT5yZW1vdmVWaWRl
b1RyYWNrKCp0aGlzKTsKIH0KIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKIHZvaWQgVmlk
ZW9UcmFjazo6c2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQpCiB7CiAgICAgLy8gMTAu
MSBraW5kLCBvbiBzZXR0aW5nOgpAQCAtMTkzLDcgKzE4OSw3IEBAIHZvaWQgVmlkZW9UcmFjazo6
c2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQpCiAgICAgLy8gMy4gSWYgdGhlIHNvdXJj
ZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhpcyB0cmFjayBpcyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBh
IHRhc2sgdG8gZmlyZSBhIHNpbXBsZQogICAgIC8vIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCBzb3Vy
Y2VCdWZmZXIudmlkZW9UcmFja3MuCiAgICAgaWYgKG1fc291cmNlQnVmZmVyKQotICAgICAgICBt
X3NvdXJjZUJ1ZmZlci0+dmlkZW9UcmFja3MoKS0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOworICAg
ICAgICBtX3NvdXJjZUJ1ZmZlci0+dmlkZW9UcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7
CiAKICAgICAvLyA0LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBj
aGFuZ2UgYXQgdGhlIFZpZGVvVHJhY2tMaXN0IG9iamVjdCByZWZlcmVuY2VkIGJ5CiAgICAgLy8g
dGhlIHZpZGVvVHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KQEAgLTIx
MywxMiArMjA5LDEzIEBAIHZvaWQgVmlkZW9UcmFjazo6c2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWlj
U3RyaW5nJiBsYW5ndWFnZSkKICAgICAvLyAzLiBJZiB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0
ZSBvbiB0aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1ZXVlIGEgdGFzayB0byBmaXJlIGEg
c2ltcGxlCiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHNvdXJjZUJ1ZmZlci52aWRlb1Ry
YWNrcy4KICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVmZmVyLT52
aWRlb1RyYWNrcygpLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CisgICAgICAgIG1fc291cmNlQnVm
ZmVyLT52aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIC8vIDQuIFF1
ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCB0aGUgVmlk
ZW9UcmFja0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdmlkZW9UcmFja3Mg
YXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAgIG1lZGlhRWxlbWVudCgpLT52
aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQg
VmlkZW9UcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WaWRlb1RyYWNrLmgKaW5kZXggYzUyZjliM2IxMmZjNjk2ODhkYTdmZDY3MDMzNzAxZmIxYjg0
ZjMyYy4uNzFhMjU0MGZlZTg5NjIyNDFkNDQ5MTcyNWE4MmUzOTEwOGQzOTcyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDEyICszOSwxMiBA
QCBjbGFzcyBWaWRlb1RyYWNrOwogY2xhc3MgVmlkZW9UcmFja0NsaWVudCB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+VmlkZW9UcmFja0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB2aWRl
b1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayYpID0gMDsKIH07CiAKLWNsYXNz
IFZpZGVvVHJhY2sgZmluYWwgOiBwdWJsaWMgTWVkaWFUcmFja0Jhc2UsIHB1YmxpYyBWaWRlb1Ry
YWNrUHJpdmF0ZUNsaWVudCB7CitjbGFzcyBWaWRlb1RyYWNrIGZpbmFsIDogcHVibGljIE1lZGlh
VHJhY2tCYXNlLCBwcml2YXRlIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFZpZGVvVHJhY2s+IGNyZWF0ZShWaWRlb1RyYWNrQ2xpZW50KiBjbGllbnQs
IFBhc3NSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKKyAgICBzdGF0aWMg
UmVmPFZpZGVvVHJhY2s+IGNyZWF0ZShWaWRlb1RyYWNrQ2xpZW50JiBjbGllbnQsIFZpZGVvVHJh
Y2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBWaWRlb1RyYWNrKGNsaWVudCwgdHJhY2tQcml2YXRlKSk7CiAgICAgfQpAQCAtNTYsNDgg
KzU2LDQ3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzaWduS2V5
d29yZCgpOwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1YnRpdGxlc0tleXdvcmQo
KTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjb21tZW50YXJ5S2V5d29yZCgpOwot
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZGVmYXVsdEtpbmRLZXl3b3JkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gZW1wdHlBdG9tOyB9CiAKICAgICBib29sIHNlbGVjdGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZWxlY3RlZDsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZChjb25zdCBi
b29sKTsKIAotICAgIHZvaWQgY2xlYXJDbGllbnQoKSBvdmVycmlkZSB7IG1fY2xpZW50ID0gMDsg
fQorICAgIHZvaWQgY2xlYXJDbGllbnQoKSBmaW5hbCB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQog
ICAgIFZpZGVvVHJhY2tDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9
CiAKICAgICBzaXplX3QgaW5iYW5kVHJhY2tJbmRleCgpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NP
VVJDRSkKLSAgICB2b2lkIHNldEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNldEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBzZXRMYW5n
dWFnZShjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKICNlbmRpZgogCiAgICAgY29uc3QgTWVk
aWFEZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24oKSBjb25zdDsKIAotICAgIHZvaWQgc2V0UHJpdmF0
ZShQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPik7Ci0KLXByb3RlY3RlZDoKLSAgICBWaWRl
b1RyYWNrKFZpZGVvVHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPiBw
cml2YXRlVHJhY2spOworICAgIHZvaWQgc2V0UHJpdmF0ZShWaWRlb1RyYWNrUHJpdmF0ZSYpOwog
CiBwcml2YXRlOgotICAgIGJvb2wgaXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgVmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50JiwgVmlkZW9UcmFj
a1ByaXZhdGUmKTsKKworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZGVmYXVsdEtpbmRLZXl3b3Jk
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZW1wdHlBdG9tOyB9CisgICAgYm9vbCBpc1ZhbGlkS2lu
ZChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIFZpZGVvVHJhY2tQ
cml2YXRlQ2xpZW50Ci0gICAgdm9pZCBzZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFja1ByaXZhdGUq
LCBib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIHNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrUHJp
dmF0ZSosIGJvb2wpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAotICAg
IHZvaWQgaWRDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBv
dmVycmlkZTsKLSAgICB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3Qg
QXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQ
cml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2ls
bFJlbW92ZShUcmFja1ByaXZhdGVCYXNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBpZENoYW5nZWQo
Y29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYWJlbENoYW5nZWQoY29uc3Qg
QXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRv
bWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAKLSAgICBi
b29sIGVuYWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzZWxlY3RlZCgpOyB9CisgICAg
Ym9vbCBlbmFibGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gc2VsZWN0ZWQoKTsgfQogCiAgICAg
dm9pZCB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIAogICAgIGJvb2wgbV9zZWxlY3RlZDsKICAg
ICBWaWRlb1RyYWNrQ2xpZW50KiBtX2NsaWVudDsKIAotICAgIFJlZlB0cjxWaWRlb1RyYWNrUHJp
dmF0ZT4gbV9wcml2YXRlOworICAgIFJlZjxWaWRlb1RyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oCmluZGV4IDJjMTIzOTVmYTY2MWQxNWJiNTQ1MDg4OTRmYzBhYWNkZDU1Y2U2ZTcuLmIxNTE1
Njk3YjMyMjRhNWZiMDQ5MzYxYjhlMzU5ODQ5OTNmMDMwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgKQEAgLTE3Miw3ICsxNzIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAg
IHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pIG92ZXJy
aWRlOwotICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZp
bGVJY29uTG9hZGVyKikgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXImKSBvdmVycmlkZSB7IH0KIAogICAg
IHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IE5vZGUqKSBvdmVycmlkZSB7IH0KICAgICB2b2lk
IGVsZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUqKSBvdmVycmlkZSB7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9QaW5nTG9hZGVyLmNwcAppbmRleCAwMTg4OTQ2ZTdkOGRmNDI1MmMxZWQ0OTRhZDdhOTkxNjc2
OTExNjhiLi4zYmYzNWIyMzNiMGEyZGM2YTY1ZDQwNGIxMjY0NjZkN2FiMzNlZTAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBQaW5n
TG9hZGVyOjpzZW5kUGluZyhGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcGluZ1VSTCwgY29uc3Qg
VVJMJiBkZXN0aW5hdGkKICAgICBzdGFydFBpbmdMb2FkKGZyYW1lLCByZXF1ZXN0LCBTaG91bGRG
b2xsb3dSZWRpcmVjdHM6Olllcyk7CiB9CiAKLXZvaWQgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlv
blJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBSZWZQdHI8Rm9ybURh
dGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBlIHJlcG9ydFR5cGUpCit2b2lkIFBpbmdM
b2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHJlcG9y
dFVSTCwgUmVmPEZvcm1EYXRhPiYmIHJlcG9ydCwgVmlvbGF0aW9uUmVwb3J0VHlwZSByZXBvcnRU
eXBlKQogewogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHJlcG9ydFVSTCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUGluZ0xvYWRlci5oCmluZGV4IGNmNjU3N2MzMzU2ZWEwNTgxYjUzOTE4OTE5OGZk
ZTg3NjRmYjk5MzcuLmY5N2Y5NTcxYWViYzE5NjhkMTc0MGMxZjY5YTY1YTVmOWMyMmI5NWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaApAQCAtNDksNyArNDksNyBAQCBjbGFzcyBQaW5n
TG9hZGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBsb2FkSW1hZ2UoRnJhbWUmLCBjb25z
dCBVUkwmKTsKICAgICBzdGF0aWMgdm9pZCBzZW5kUGluZyhGcmFtZSYsIGNvbnN0IFVSTCYgcGlu
Z1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCk7Ci0gICAgc3RhdGljIHZvaWQgc2VuZFZp
b2xhdGlvblJlcG9ydChGcmFtZSYsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBSZWZQdHI8Rm9ybURh
dGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBlKTsKKyAgICBzdGF0aWMgdm9pZCBzZW5k
VmlvbGF0aW9uUmVwb3J0KEZyYW1lJiwgY29uc3QgVVJMJiByZXBvcnRVUkwsIFJlZjxGb3JtRGF0
YT4mJiByZXBvcnQsIFZpb2xhdGlvblJlcG9ydFR5cGUpOwogCiBwcml2YXRlOgogICAgIGVudW0g
Y2xhc3MgU2hvdWxkRm9sbG93UmVkaXJlY3RzIHsgTm8sIFllcyB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
Y3BwCmluZGV4IDVjMDI1NDRhNWU3YmQzZjA2ZmIxYWJhYjAxZWUyNmM4YTM0NDZmM2UuLjZjYTk5
YzFmOTZjNDQzOGUzYTU1ODYwMTdiZWM1NWQ3Zjk3MzRjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5j
cHAKQEAgLTQzOCw3ICs0MzgsNyBAQCB2b2lkIENocm9tZTo6cnVuT3BlblBhbmVsKEZyYW1lKiBm
cmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIpCiAgICAgbV9jbGllbnQu
cnVuT3BlblBhbmVsKGZyYW1lLCBmaWxlQ2hvb3Nlcik7CiB9CiAKLXZvaWQgQ2hyb21lOjpsb2Fk
SWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9h
ZGVyKiBsb2FkZXIpCit2b2lkIENocm9tZTo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciYgbG9hZGVyKQogewogICAgIG1fY2xp
ZW50LmxvYWRJY29uRm9yRmlsZXMoZmlsZW5hbWVzLCBsb2FkZXIpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmgKaW5kZXggZjJmMmIwYjFjM2MwYTlmM2EyNzVkMTRmMDJkM2RjMWE4ZWRhNGVhMS4uZjY2MzU5
MjhhZDVkYTdhZGIyMzRlMzI4NGQ0YmVhY2Y4ZmVkMTg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBA
IC0xNTksNyArMTU5LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHJ1bk9wZW5QYW5l
bChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KTsKLSAgICB2b2lkIGxvYWRJY29uRm9y
RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciopOworICAgIHZvaWQg
bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJik7
CiAKICAgICB2b2lkIGRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZp
ZXdwb3J0QXJndW1lbnRzJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmlu
ZGV4IDQ1ZmVjNTk5ODA0ZTQzZTZlN2QxODlhMDhlNmNlYjgwMjI5ZDM2ZmQuLjU5OGU1OWY2ZGEy
MTllMTgzOTE0N2FhODZkODA1MjBjNmJlM2Q1ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaApAQCAtMjc1LDcgKzI3NSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBydW5P
cGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgPSAwOwogICAgIC8vIEFz
eW5jaHJvbm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Igc3BlY2lmaWVkIGZpbGVuYW1l
cy4KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYsIEZpbGVJY29uTG9hZGVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZp
bGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXImKSA9IDA7CiAgICAgICAg
IAogICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgTm9kZSopIHsgfTsKICAg
ICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9kZSopIHsgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IGNi
NzhkMDZhN2VmMTQzZjI2ZWU1NDk2MzliMjQ5NTY1YzQ2YWEwNjguLmY4ZmJmMmQzNjA1NTQxNDBj
MWQ1ZjJlYWQ3M2E4NDBjYWExMWY3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Y3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9j
c3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtNjI1LDggKzYyNSw4IEBAIHZvaWQgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3Rp
dmVWaW9sYXRlZERpcmVjCiAKICAgICBBU1NFUlQoIW1fZnJhbWUgfHwgZWZmZWN0aXZlVmlvbGF0
ZWREaXJlY3RpdmUgPT0gQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXM6OmZyYW1l
QW5jZXN0b3JzKTsKIAotICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGlzPERvY3VtZW50PihtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50KCk7Ci0gICAgRnJhbWUqIGZyYW1lID0g
ZG9jdW1lbnQuZnJhbWUoKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9IGlzPERvY3VtZW50PihtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAgYXV0byogZnJhbWUgPSBk
b2N1bWVudC5mcmFtZSgpOwogICAgIEFTU0VSVCghbV9mcmFtZSB8fCBtX2ZyYW1lID09IGZyYW1l
KTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC02NDYsMTMgKzY0NiwxNCBA
QCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmlu
ZyYgZWZmZWN0aXZlVmlvbGF0ZWREaXJlYwogICAgIFN0cmluZyBvcmlnaW5hbFBvbGljeSA9IHZp
b2xhdGVkRGlyZWN0aXZlTGlzdC5oZWFkZXIoKTsKICAgICBTdHJpbmcgcmVmZXJyZXIgPSBkb2N1
bWVudC5yZWZlcnJlcigpOwogICAgIEFTU0VSVChkb2N1bWVudC5sb2FkZXIoKSk7CisgICAgLy8g
RklYTUU6IElzIGl0IHBvbGljeSB0byBub3QgdXNlIHRoZSBzdGF0dXMgY29kZSBmb3IgSFRUUFMs
IG9yIGlzIHRoYXQgYSBidWc/CiAgICAgdW5zaWduZWQgc2hvcnQgc3RhdHVzQ29kZSA9IGRvY3Vt
ZW50LnVybCgpLnByb3RvY29sSXMoImh0dHAiKSAmJiBkb2N1bWVudC5sb2FkZXIoKSA/IGRvY3Vt
ZW50LmxvYWRlcigpLT5yZXNwb25zZSgpLmh0dHBTdGF0dXNDb2RlKCkgOiAwOwogCiAgICAgU3Ry
aW5nIHNvdXJjZUZpbGU7CiAgICAgaW50IGxpbmVOdW1iZXIgPSAwOwogICAgIGludCBjb2x1bW5O
dW1iZXIgPSAwOwotICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrID0gY3JlYXRlU2Ny
aXB0Q2FsbFN0YWNrKEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCksIDIpOwot
ICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2stPmZpcnN0Tm9uTmF0
aXZlQ2FsbEZyYW1lKCk7CisgICAgYXV0byBzdGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhK
U01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCAyKTsKKyAgICBhdXRvKiBjYWxs
RnJhbWUgPSBzdGFjay0+Zmlyc3ROb25OYXRpdmVDYWxsRnJhbWUoKTsKICAgICBpZiAoY2FsbEZy
YW1lICYmIGNhbGxGcmFtZS0+bGluZU51bWJlcigpKSB7CiAgICAgICAgIHNvdXJjZUZpbGUgPSBz
dHJpcFVSTEZvclVzZUluUmVwb3J0KGRvY3VtZW50LCBVUkwoVVJMKCksIGNhbGxGcmFtZS0+c291
cmNlVVJMKCkpKTsKICAgICAgICAgbGluZU51bWJlciA9IGNhbGxGcmFtZS0+bGluZU51bWJlcigp
OwpAQCAtNjY1LDcgKzY2Niw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRW
aW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAgICAgZG9jdW1l
bnQuZW5xdWV1ZURvY3VtZW50RXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5zZWN1cml0eXBvbGljeXZpb2xhdGlvbkV2ZW50LCBjYW5CdWJibGUs
IGNhbmNlbGFibGUsIGRvY3VtZW50VVJJLCByZWZlcnJlciwgYmxvY2tlZFVSSSwgdmlvbGF0ZWRE
aXJlY3RpdmVUZXh0LCBlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZSwgb3JpZ2luYWxQb2xpY3ks
IHNvdXJjZUZpbGUsIHN0YXR1c0NvZGUsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikpOwogCiAg
ICAgLy8gMi4gU2VuZCB2aW9sYXRpb24gcmVwb3J0IChpZiBhcHBsaWNhYmxlKS4KLSAgICBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgcmVwb3J0VVJJcyA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5yZXBv
cnRVUklzKCk7CisgICAgYXV0byYgcmVwb3J0VVJJcyA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5y
ZXBvcnRVUklzKCk7CiAgICAgaWYgKHJlcG9ydFVSSXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CiAKQEAgLTY5MywxMCArNjk0LDEwIEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5Ojpy
ZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAgICAg
ICAgIGNzcFJlcG9ydC0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwoImNvbHVtbi1udW1iZXIiKSwg
Y29sdW1uTnVtYmVyKTsKICAgICB9CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXBv
cnRPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGF1dG8gcmVwb3J0T2Jq
ZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKICAgICByZXBvcnRPYmplY3QtPnNldE9i
amVjdChBU0NJSUxpdGVyYWwoImNzcC1yZXBvcnQiKSwgV1RGTW92ZShjc3BSZXBvcnQpKTsKIAot
ICAgIFJlZlB0cjxGb3JtRGF0YT4gcmVwb3J0ID0gRm9ybURhdGE6OmNyZWF0ZShyZXBvcnRPYmpl
Y3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7CisgICAgYXV0byByZXBvcnQgPSBGb3JtRGF0YTo6
Y3JlYXRlKHJlcG9ydE9iamVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgpKTsKICAgICBmb3IgKGNv
bnN0IGF1dG8mIHVybCA6IHJlcG9ydFVSSXMpCiAgICAgICAgIFBpbmdMb2FkZXI6OnNlbmRWaW9s
YXRpb25SZXBvcnQoKmZyYW1lLCBpczxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
KSA/IGRvY3VtZW50LmNvbXBsZXRlVVJMKHVybCkgOiBkb2N1bWVudC5jb21wbGV0ZVVSTCh1cmws
IGJsb2NrZWRVUkwpLCByZXBvcnQuY29weVJlZigpLCBWaW9sYXRpb25SZXBvcnRUeXBlOjpDb250
ZW50U2VjdXJpdHlQb2xpY3kpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVu
dC5tbQppbmRleCBiMTBmMmU5ZWI3OGQ1OWUwMjZiYmRiNGRmZDcwZTRkYTUzYjlhNDcwLi4xNGRj
YmE0NzcwNmQ3ZWRlMzlmYzMwZmM4MTVmZDkwYjY4YTJlZjc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Np
b25Nb2RlbE1lZGlhRWxlbWVudC5tbQpAQCAtMjMzLDE3ICsyMzMsOCBAQCB2b2lkIFdlYlBsYXli
YWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2
NF90IHNlbGVjdAogICAgIGlmICghbV9tZWRpYUVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIEFTU0VSVChzZWxlY3RlZEF1ZGlvSW5kZXggPCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVf
dD46Om1heCgpKTsKLSAgICBBdWRpb1RyYWNrKiBzZWxlY3RlZEF1ZGlvVHJhY2sgPSBudWxscHRy
OwotCi0gICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IG1fYXVkaW9UcmFja3NGb3JN
ZW51LnNpemUoKTsgKytpbmRleCkgewotICAgICAgICBhdXRvJiBhdWRpb1RyYWNrID0gbV9hdWRp
b1RyYWNrc0Zvck1lbnVbaW5kZXhdOwotICAgICAgICBhdWRpb1RyYWNrLT5zZXRFbmFibGVkKGlu
ZGV4ID09IHN0YXRpY19jYXN0PHNpemVfdD4oc2VsZWN0ZWRBdWRpb0luZGV4KSk7Ci0gICAgICAg
IGlmIChhdWRpb1RyYWNrLT5lbmFibGVkKCkpCi0gICAgICAgICAgICBzZWxlY3RlZEF1ZGlvVHJh
Y2sgPSBhdWRpb1RyYWNrLmdldCgpOwotICAgIH0KLQotICAgIG1fbWVkaWFFbGVtZW50LT5hdWRp
b1RyYWNrRW5hYmxlZENoYW5nZWQoc2VsZWN0ZWRBdWRpb1RyYWNrKTsKKyAgICBmb3IgKHNpemVf
dCBpID0gMCwgc2l6ZSA9IG1fYXVkaW9UcmFja3NGb3JNZW51LnNpemUoKTsgaSA8IHNpemU7ICsr
aSkKKyAgICAgICAgbV9hdWRpb1RyYWNrc0Zvck1lbnVbaV0tPnNldEVuYWJsZWQoaSA9PSBzZWxl
Y3RlZEF1ZGlvSW5kZXgpOwogfQogCiB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFF
bGVtZW50OjpzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCkBAIC0yNTEs
OSArMjQyLDcgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6c2Vs
ZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGUKICAgICBpZiAoIW1fbWVkaWFFbGVt
ZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoaW5kZXggPCBzdGQ6Om51bWVyaWNf
bGltaXRzPHNpemVfdD46Om1heCgpKTsKLSAgICBUZXh0VHJhY2sqIHRleHRUcmFjayA9IG51bGxw
dHI7Ci0KKyAgICBUZXh0VHJhY2sqIHRleHRUcmFjazsKICAgICBpZiAoaW5kZXggPCBtX2xlZ2li
bGVUcmFja3NGb3JNZW51LnNpemUoKSkKICAgICAgICAgdGV4dFRyYWNrID0gbV9sZWdpYmxlVHJh
Y2tzRm9yTWVudVtzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KV0uZ2V0KCk7CiAgICAgZWxzZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1By
aXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2
YXRlLmgKaW5kZXggM2JjOTdlZDcwMmFiMDRhZGJlMTQxNWFkZjliZTM1Mjk4ZGZhZGRkYi4uNWVi
YTRlZWM0NTcwOTk0MWMxNTEwZDQxZDhkZWYwZGIyYzQ1YjM0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCkBAIC0yMyw4
ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgQXVkaW9UcmFja1ByaXZh
dGVfaAotI2RlZmluZSBBdWRpb1RyYWNrUHJpdmF0ZV9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIlRyYWNrUHJpdmF0ZUJhc2UuaCIKIApAQCAtMzYsNyArMzUsNyBAQCBjbGFzcyBBdWRpb1Ry
YWNrUHJpdmF0ZTsKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJh
Y2tQcml2YXRlQmFzZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIGVuYWJsZWRD
aGFuZ2VkKEF1ZGlvVHJhY2tQcml2YXRlKiwgYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBl
bmFibGVkQ2hhbmdlZChib29sKSA9IDA7CiB9OwogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZSA6
IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlIHsKQEAgLTU1LDI2ICs1NCwyMiBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CiAgICAgICAg
IGlmIChtX2NsaWVudCkKLSAgICAgICAgICAgIG1fY2xpZW50LT5lbmFibGVkQ2hhbmdlZCh0aGlz
LCBlbmFibGVkKTsKLSAgICB9OwotICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9lbmFibGVkOyB9CisgICAgICAgICAgICBtX2NsaWVudC0+ZW5hYmxlZENoYW5nZWQo
ZW5hYmxlZCk7CisgICAgfQorCisgICAgYm9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9l
bmFibGVkOyB9CiAKICAgICBlbnVtIEtpbmQgeyBBbHRlcm5hdGl2ZSwgRGVzY3JpcHRpb24sIE1h
aW4sIE1haW5EZXNjLCBUcmFuc2xhdGlvbiwgQ29tbWVudGFyeSwgTm9uZSB9OwogICAgIHZpcnR1
YWwgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gTm9uZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAg
QXVkaW9UcmFja1ByaXZhdGUoKQotICAgICAgICA6IG1fY2xpZW50KDApCi0gICAgICAgICwgbV9l
bmFibGVkKGZhbHNlKQotICAgIHsKLSAgICB9CisgICAgQXVkaW9UcmFja1ByaXZhdGUoKSA9IGRl
ZmF1bHQ7CiAKIHByaXZhdGU6Ci0gICAgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQqIG1fY2xpZW50
OwotICAgIGJvb2wgbV9lbmFibGVkOworICAgIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50KiBtX2Ns
aWVudCB7IG51bGxwdHIgfTsKKyAgICBib29sIG1fZW5hYmxlZCB7IGZhbHNlIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlQ2xpZW50LmgKaW5kZXggNzYwZjY3OWQxMzUwYTcxOTAwNDQ3MGE3Y2I3YTc0MTdhOGJjNDkx
NS4uMjEwMmZlM2ViNWM0YjVjYzNjYWQwZTBiYjgwZDhjODk2ZjJiZDk5NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRU
cmFja1ByaXZhdGVDbGllbnQuaApAQCAtNDMsOSArNDMsNyBAQCBjbGFzcyBJU09XZWJWVFRDdWU7
CiAKIGNsYXNzIEdlbmVyaWNDdWVEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8R2VuZXJpY0N1ZURh
dGE+IHsKIHB1YmxpYzoKLQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPiBj
cmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgR2VuZXJpY0N1ZURhdGEoKSk7IH0KLSAgICB2
aXJ0dWFsIH5HZW5lcmljQ3VlRGF0YSgpIHsgfQorICAgIHN0YXRpYyBSZWY8R2VuZXJpY0N1ZURh
dGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR2VuZXJpY0N1ZURhdGEpOyB9CiAK
ICAgICBNZWRpYVRpbWUgc3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFRpbWU7IH0K
ICAgICB2b2lkIHNldFN0YXJ0VGltZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0VGltZSkgeyBtX3N0
YXJ0VGltZSA9IHN0YXJ0VGltZTsgfQpAQCAtNjgsMTIgKzY2LDcgQEAgcHVibGljOgogICAgIGRv
dWJsZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgdm9pZCBzZXRTaXplKGRv
dWJsZSBzaXplKSB7IG1fc2l6ZSA9IHNpemU7IH0KIAotICAgIGVudW0gQWxpZ25tZW50IHsKLSAg
ICAgICAgTm9uZSwKLSAgICAgICAgU3RhcnQsCi0gICAgICAgIE1pZGRsZSwKLSAgICAgICAgRW5k
Ci0gICAgfTsKKyAgICBlbnVtIEFsaWdubWVudCB7IE5vbmUsIFN0YXJ0LCBNaWRkbGUsIEVuZCB9
OwogICAgIEFsaWdubWVudCBhbGlnbigpIGNvbnN0IHsgcmV0dXJuIG1fYWxpZ247IH0KICAgICB2
b2lkIHNldEFsaWduKEFsaWdubWVudCBhbGlnbikgeyBtX2FsaWduID0gYWxpZ247IH0KIApAQCAt
OTUsNDMgKzg4LDMwIEBAIHB1YmxpYzoKICAgICBjb25zdCBDb2xvciYgaGlnaGxpZ2h0Q29sb3Io
KSBjb25zdCB7IHJldHVybiBtX2hpZ2hsaWdodENvbG9yOyB9CiAgICAgdm9pZCBzZXRIaWdobGln
aHRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpIHsgbV9oaWdobGlnaHRDb2xvciA9IGNvbG9yOyB9
CiAKLSAgICBlbnVtIFN0YXR1cyB7Ci0gICAgICAgIFVuaW5pdGlhbGl6ZWQsCi0gICAgICAgIFBh
cnRpYWwsCi0gICAgICAgIENvbXBsZXRlLAotICAgIH07CisgICAgZW51bSBTdGF0dXMgeyBVbmlu
aXRpYWxpemVkLCBQYXJ0aWFsLCBDb21wbGV0ZSB9OwogICAgIFN0YXR1cyBzdGF0dXMoKSB7IHJl
dHVybiBtX3N0YXR1czsgfQogICAgIHZvaWQgc2V0U3RhdHVzKFN0YXR1cyBzdGF0dXMpIHsgbV9z
dGF0dXMgPSBzdGF0dXM7IH0KIAogICAgIGJvb2wgZG9lc0V4dGVuZEN1ZURhdGEoY29uc3QgR2Vu
ZXJpY0N1ZURhdGEmKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBHZW5lcmljQ3VlRGF0YSgpCi0g
ICAgICAgIDogbV9saW5lKC0xKQotICAgICAgICAsIG1fcG9zaXRpb24oLTEpCi0gICAgICAgICwg
bV9zaXplKC0xKQotICAgICAgICAsIG1fYWxpZ24oTm9uZSkKLSAgICAgICAgLCBtX2Jhc2VGb250
U2l6ZSgwKQotICAgICAgICAsIG1fcmVsYXRpdmVGb250U2l6ZSgwKQotICAgICAgICAsIG1fc3Rh
dHVzKFVuaW5pdGlhbGl6ZWQpCi0gICAgewotICAgIH0KKyAgICBHZW5lcmljQ3VlRGF0YSgpID0g
ZGVmYXVsdDsKIAogICAgIE1lZGlhVGltZSBtX3N0YXJ0VGltZTsKICAgICBNZWRpYVRpbWUgbV9l
bmRUaW1lOwogICAgIFN0cmluZyBtX2lkOwogICAgIFN0cmluZyBtX2NvbnRlbnQ7Ci0gICAgZG91
YmxlIG1fbGluZTsKLSAgICBkb3VibGUgbV9wb3NpdGlvbjsKLSAgICBkb3VibGUgbV9zaXplOwot
ICAgIEFsaWdubWVudCBtX2FsaWduOworICAgIGRvdWJsZSBtX2xpbmUgeyAtMSB9OworICAgIGRv
dWJsZSBtX3Bvc2l0aW9uIHsgLTEgfTsKKyAgICBkb3VibGUgbV9zaXplIHsgLTEgfTsKKyAgICBB
bGlnbm1lbnQgbV9hbGlnbiB7IE5vbmUgfTsKICAgICBTdHJpbmcgbV9mb250TmFtZTsKLSAgICBk
b3VibGUgbV9iYXNlRm9udFNpemU7Ci0gICAgZG91YmxlIG1fcmVsYXRpdmVGb250U2l6ZTsKKyAg
ICBkb3VibGUgbV9iYXNlRm9udFNpemUgeyAwIH07CisgICAgZG91YmxlIG1fcmVsYXRpdmVGb250
U2l6ZSB7IDAgfTsKICAgICBDb2xvciBtX2ZvcmVncm91bmRDb2xvcjsKICAgICBDb2xvciBtX2Jh
Y2tncm91bmRDb2xvcjsKICAgICBDb2xvciBtX2hpZ2hsaWdodENvbG9yOwotICAgIFN0YXR1cyBt
X3N0YXR1czsKKyAgICBTdGF0dXMgbV9zdGF0dXMgeyBVbmluaXRpYWxpemVkIH07CiB9OwogCiBp
bmxpbmUgYm9vbCBHZW5lcmljQ3VlRGF0YTo6ZG9lc0V4dGVuZEN1ZURhdGEoY29uc3QgR2VuZXJp
Y0N1ZURhdGEmIG90aGVyKSBjb25zdApAQCAtMTY4LDIxICsxNDgsMjEgQEAgY2xhc3MgSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50KCkgeyB9
CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwg
Y29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQq
LCB1bnNpZ25lZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlh
VGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWduZWQp
ID0gMDsKIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQotICAgIHZpcnR1YWwgdm9pZCBhZGRE
YXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBj
b25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNl
bnRhdGlvbj4sIGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRGF0
YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50
YXRpb24+KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZURhdGFDdWUoSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5k
LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1l
ZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+JiYsIGNv
bnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3Jt
UmVwcmVzZW50YXRpb24mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZURhdGFDdWUoY29u
c3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0
Zm9ybVJlcHJlc2VudGF0aW9uJikgPSAwOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRk
R2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgUGFzc1JlZlB0cjxHZW5lcmljQ3Vl
RGF0YT4pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0
VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJl
bW92ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGRHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAw
OwogCi0gICAgdmlydHVhbCB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlKiwgU3RyaW5nJiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25z
dCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBJU09XZWJWVFRD
dWUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihTdHJpbmcm
JikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZU
VEN1ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUmKSA9IDA7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKaW5kZXggMDhlNjJjMzQ4NjJh
ZGQ5NGZhMDg0YjQyNWM1ODdhYTRmYmQzNjRiZC4uNDNkMDY3NDBmNTVlZDA4NDVlNWRmMzc3Mzg2
YjVmZTc4MmE5NDdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAxMy0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI4LDIxICsyOCwxNyBAQAogICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCi0jaWZuZGVmIFNvdXJjZUJ1ZmZlclBy
aXZhdGVfaAotI2RlZmluZSBTb3VyY2VCdWZmZXJQcml2YXRlX2gKKworI3ByYWdtYSBvbmNlCiAK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKLSNp
bmNsdWRlICJUaW1lUmFuZ2VzLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFT
YW1wbGU7CiBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OwotY2xhc3MgVGltZVJhbmdl
czsKIAogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFNvdXJj
ZUJ1ZmZlclByaXZhdGU+IHsKIHB1YmxpYzoKQEAgLTU4LDE3ICs1NCwxNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRl
KSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZmx1c2goQXRvbWljU3RyaW5nKSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiwgQXRvbWlj
U3RyaW5nKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21p
Y1N0cmluZykgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2goY29uc3Qg
QXRvbWljU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGVucXVldWVTYW1wbGUoUmVmPE1l
ZGlhU2FtcGxlPiYmLCBjb25zdCBBdG9taWNTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
aXNSZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYpIHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgc3RvcEFza2luZ0Zvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykg
eyB9CisgICAgdmlydHVhbCB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9t
aWNTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9y
TW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgeyB9CiAKLSAgICB2aXJ0dWFsIFZlY3Rv
cjxTdHJpbmc+IGVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoQXRvbWljU3RyaW5nKSB7IHJldHVy
biB7fTsgfQorICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gZW5xdWV1ZWRTYW1wbGVzRm9yVHJh
Y2tJRChjb25zdCBBdG9taWNTdHJpbmcmKSB7IHJldHVybiB7IH07IH0KIH07CiAKIH0KIAogI2Vu
ZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaAppbmRleCAyOTRhZDY1ZjQ2MzM1ZGYw
NjkxNTNmNGFjYjM5NzAzYmYxYzlmMGYyLi4zM2QyYWQ5MzMwNTk2OWUxNTk3ODc5NmFmYTJjNzYy
ODQyOWNiMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oCkBAIC0zMiwxMiArMzIsMTEgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlOwogY2xh
c3MgQXVkaW9UcmFja1ByaXZhdGU7Ci1jbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIElu
YmFuZFRleHRUcmFja1ByaXZhdGU7CiBjbGFzcyBNZWRpYVNhbXBsZTsKIGNsYXNzIE1lZGlhRGVz
Y3JpcHRpb247CitjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIAogY2xhc3MgU291cmNlQnVmZmVy
UHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6CkBAIC02NCwyMyArNjMsMTkgQEAgcHVibGljOgogICAg
ICAgICB9OwogICAgICAgICBWZWN0b3I8VGV4dFRyYWNrSW5mb3JtYXRpb24+IHRleHRUcmFja3M7
CiAgICAgfTsKLSAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJ
bml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IEluaXRpYWxp
emF0aW9uU2VnbWVudCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVTYW1wbGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIE1lZGlhU2FtcGxlJikgPSAw
OwotICAgIHZpcnR1YWwgYm9vbCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oY29uc3QgU291
cmNlQnVmZmVyUHJpdmF0ZSopIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgc291cmNlQnVm
ZmVyUHJpdmF0ZUhhc1ZpZGVvKGNvbnN0IFNvdXJjZUJ1ZmZlclByaXZhdGUqKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6
YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUm
KSA9IDA7CisgICAgdmlydHVhbCBib29sIHNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCkg
Y29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNv
bWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBdG9taWNTdHJpbmcg
dHJhY2tJRCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVj
b21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpID0gMDsK
IAotICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVG
b3JNZWRpYVRpbWUoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgdGltZSwg
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJikgeyByZXR1cm4gdGltZTsgfQotICAg
IHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGltZShTb3VyY2VCdWZmZXJQ
cml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJikgeyB9OworICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNv
dXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1l
JiB0aW1lLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmKSB7IHJldHVybiB0aW1l
OyB9CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKGNvbnN0
IE1lZGlhVGltZSYpIHsgfTsKIAotICAgIGVudW0gQXBwZW5kUmVzdWx0IHsKLSAgICAgICAgQXBw
ZW5kU3VjY2VlZGVkLAotICAgICAgICBSZWFkU3RyZWFtRmFpbGVkLAotICAgICAgICBQYXJzaW5n
RmFpbGVkLAotICAgIH07Ci0gICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBl
bmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXBwZW5kUmVzdWx0KSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3Io
U291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvY0NvZGUpID0gMDsKKyAgICBlbnVtIEFwcGVu
ZFJlc3VsdCB7IEFwcGVuZFN1Y2NlZWRlZCwgUmVhZFN0cmVhbUZhaWxlZCwgUGFyc2luZ0ZhaWxl
ZCB9OworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUo
QXBwZW5kUmVzdWx0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoaW50IGVycm9yQ29kZSkgPSAwOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFz
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5o
CmluZGV4IDczMWFhOGQ5MzZhNWFhZWEwZDFjMDNhYTY4YTJhYzZiMmIyYjllNjQuLmE1NDcwNTJi
YTFmZTgyZDg3OWZmZGUzOTQ3Mjk1MzkzOGU5MGE4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgKQEAgLTI1LDM0ICsyNSwy
OSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFRyYWNrUHJpdmF0ZUJhc2VfaAot
I2RlZmluZSBUcmFja1ByaXZhdGVCYXNlX2gKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQogCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTWVk
aWFUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAotI2lmIEVO
QUJMRShWSURFT19UUkFDSykKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBUcmFja1By
aXZhdGVCYXNlOwotCiBjbGFzcyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5UcmFja1ByaXZhdGVCYXNlQ2xpZW50KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lk
IGlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0
b21pY1N0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKFRyYWNr
UHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHdpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaWRD
aGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGFiZWxD
aGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGFuZ3Vh
Z2VDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2ls
bFJlbW92ZSgpID0gMDsKIH07CiAKIGNsYXNzIFRyYWNrUHJpdmF0ZUJhc2UgOiBwdWJsaWMgUmVm
Q291bnRlZDxUcmFja1ByaXZhdGVCYXNlPiB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVHJh
Y2tQcml2YXRlQmFzZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFRyYWNrUHJpdmF0ZUJhc2UpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIHZpcnR1YWwgflRyYWNrUHJpdmF0ZUJhc2UoKSB7IH0KKyAgICB2aXJ0
dWFsIH5UcmFja1ByaXZhdGVCYXNlKCkgPSBkZWZhdWx0OwogCiAgICAgdmlydHVhbCBUcmFja1By
aXZhdGVCYXNlQ2xpZW50KiBjbGllbnQoKSBjb25zdCA9IDA7CiAKQEAgLTY2LDE1ICs2MSwxNCBA
QCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCB3aWxsQmVSZW1vdmVkKCkKICAgICB7Ci0gICAgICAg
IGlmIChUcmFja1ByaXZhdGVCYXNlQ2xpZW50KiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAg
ICAgICAgICAgIGNsaWVudC0+d2lsbFJlbW92ZSh0aGlzKTsKKyAgICAgICAgaWYgKGF1dG8qIGNs
aWVudCA9IHRoaXMtPmNsaWVudCgpKQorICAgICAgICAgICAgY2xpZW50LT53aWxsUmVtb3ZlKCk7
CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgVHJhY2tQcml2YXRlQmFzZSgpIHsgfQorICAgIFRy
YWNrUHJpdmF0ZUJhc2UoKSA9IGRlZmF1bHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFja1ByaXZhdGVBVkYuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1RyYWNrUHJpdmF0ZUFWRi5o
CmluZGV4IDEzMWZkNTFiNGMxNjkzNDA4YjRmOGE0YjU5NmViMjZmYmQ2ZDI5NmIuLjE2ZjU3ZmFh
ODZmNDA1OWE4YTI3ZTRhOTMyMTlkODdjYmM0NjA2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1RyYWNrUHJpdmF0ZUFWRi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRp
b1RyYWNrUHJpdmF0ZUFWRi5oCkBAIC0zNSw3ICszNSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlQVZGIDogcHVibGljIEF1ZGlvVHJhY2tQcml2YXRlIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1RyYWNrUHJpdmF0ZUFWRikKIHB1YmxpYzoK
LQogICAgIHZpcnR1YWwgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gbV9raW5kOyB9CiAgICAg
dmlydHVhbCBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAgICAgdmly
dHVhbCBBdG9taWNTdHJpbmcgbGFiZWwoKSBjb25zdCB7IHJldHVybiBtX2xhYmVsOyB9CkBAIC00
NCw5ICs0Myw5IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0S2luZChLaW5k
IGtpbmQpIHsgbV9raW5kID0ga2luZDsgfQotICAgIHZvaWQgc2V0SWQoQXRvbWljU3RyaW5nIG5l
d0lkKSB7IG1faWQgPSBuZXdJZDsgfQotICAgIHZvaWQgc2V0TGFiZWwoQXRvbWljU3RyaW5nIGxh
YmVsKSB7IG1fbGFiZWwgPSBsYWJlbDsgfQotICAgIHZvaWQgc2V0TGFuZ3VhZ2UoQXRvbWljU3Ry
aW5nIGxhbmd1YWdlKSB7IG1fbGFuZ3VhZ2UgPSBsYW5ndWFnZTsgfQorICAgIHZvaWQgc2V0SWQo
Y29uc3QgQXRvbWljU3RyaW5nJiBuZXdJZCkgeyBtX2lkID0gbmV3SWQ7IH0KKyAgICB2b2lkIHNl
dExhYmVsKGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpIHsgbV9sYWJlbCA9IGxhYmVsOyB9Cisg
ICAgdm9pZCBzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKSB7IG1fbGFu
Z3VhZ2UgPSBsYW5ndWFnZTsgfQogICAgIHZvaWQgc2V0VHJhY2tJbmRleChpbnQgaW5kZXgpIHsg
bV9pbmRleCA9IGluZGV4OyB9CiAKICAgICBLaW5kIG1fa2luZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRNZXRhZGF0YVRl
eHRUcmFja1ByaXZhdGVBVkYuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKaW5kZXgg
OWM2Y2E4N2IwYzBmOTAwNjcxMTdmNDQyZDNlNjZkOTQxMzNhZjE0MC4uNmQyYzkxOWExMTc4MzYy
NjViZDYzMzkyZTFiMmIzYzlhMWU3MzdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0
ZUFWRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKQEAgLTU0LDYgKzU0LDcg
QEAgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjp+SW5iYW5kTWV0YWRhdGFUZXh0
VHJhY2tQcml2YXRlQVZGKCkKIH0KIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQorCiB2b2lk
IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6YWRkRGF0YUN1ZShjb25zdCBNZWRp
YVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVk
UGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcHJwQ3VlRGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKQog
ewogICAgIEFTU0VSVChjdWVGb3JtYXQoKSA9PSBEYXRhKTsKQEAgLTY2LDcgKzY3LDcgQEAgdm9p
ZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OmFkZERhdGFDdWUoY29uc3QgTWVk
aWFUaW1lJiBzdGFydCwgY29uc3QKICAgICBtX2N1cnJlbnRDdWVTdGFydFRpbWUgPSBzdGFydDsK
ICAgICBpZiAoZW5kLmlzUG9zaXRpdmVJbmZpbml0ZSgpKQogICAgICAgICBtX2luY29tcGxldGVD
dWVzLmFwcGVuZChJbmNvbXBsZXRlTWV0YURhdGFDdWUgeyBjdWVEYXRhLmdldCgpLCBzdGFydCB9
KTsKLSAgICBjbGllbnQoKS0+YWRkRGF0YUN1ZSh0aGlzLCBzdGFydCwgZW5kLCBjdWVEYXRhLCB0
eXBlKTsKKyAgICBjbGllbnQoKS0+YWRkRGF0YUN1ZShzdGFydCwgZW5kLCBjdWVEYXRhLnJlbGVh
c2VOb25OdWxsKCksIHR5cGUpOwogfQogCiB2b2lkIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJp
dmF0ZUFWRjo6dXBkYXRlUGVuZGluZ0N1ZUVuZFRpbWVzKGNvbnN0IE1lZGlhVGltZSYgdGltZSkK
QEAgLTc3LDcgKzc4LDcgQEAgdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6
OnVwZGF0ZVBlbmRpbmdDdWVFbmRUaW1lcyhjb25zdCBNZWRpYVRpbWUKICAgICAgICAgaWYgKGNs
aWVudCgpKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIHBhcnRpYWxDdWUgOiBtX2luY29tcGxl
dGVDdWVzKSB7CiAgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kTWV0YWRhdGFUZXh0
VHJhY2tQcml2YXRlQVZGOjp1cGRhdGVQZW5kaW5nQ3VlRW5kVGltZXMoJXApIC0gdXBkYXRpbmcg
Y3VlOiBzdGFydD0lcywgZW5kPSVzIiwgdGhpcywgdG9TdHJpbmcocGFydGlhbEN1ZS5zdGFydFRp
bWUpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAg
ICAgICAgICAgIGNsaWVudCgpLT51cGRhdGVEYXRhQ3VlKHRoaXMsIHBhcnRpYWxDdWUuc3RhcnRU
aW1lLCB0aW1lLCBwYXJ0aWFsQ3VlLmN1ZURhdGEpOworICAgICAgICAgICAgICAgIGNsaWVudCgp
LT51cGRhdGVEYXRhQ3VlKHBhcnRpYWxDdWUuc3RhcnRUaW1lLCB0aW1lLCAqcGFydGlhbEN1ZS5j
dWVEYXRhKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZQpAQCAtODYsNiAr
ODcsNyBAQCB2b2lkIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6dXBkYXRlUGVu
ZGluZ0N1ZUVuZFRpbWVzKGNvbnN0IE1lZGlhVGltZQogICAgIG1faW5jb21wbGV0ZUN1ZXMucmVz
aXplKDApOwogICAgIG1fY3VycmVudEN1ZVN0YXJ0VGltZSA9IE1lZGlhVGltZTo6emVyb1RpbWUo
KTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZG
OjpmbHVzaFBhcnRpYWxDdWVzKCkKQEAgLTk1LDcgKzk3LDcgQEAgdm9pZCBJbmJhbmRNZXRhZGF0
YVRleHRUcmFja1ByaXZhdGVBVkY6OmZsdXNoUGFydGlhbEN1ZXMoKQogCiAgICAgaWYgKGNsaWVu
dCgpKSB7CiAgICAgICAgIGZvciAoYXV0byYgcGFydGlhbEN1ZSA6IG1faW5jb21wbGV0ZUN1ZXMp
Ci0gICAgICAgICAgICBjbGllbnQoKS0+cmVtb3ZlRGF0YUN1ZSh0aGlzLCBwYXJ0aWFsQ3VlLnN0
YXJ0VGltZSwgTWVkaWFUaW1lOjpwb3NpdGl2ZUluZmluaXRlVGltZSgpLCBwYXJ0aWFsQ3VlLmN1
ZURhdGEpOworICAgICAgICAgICAgY2xpZW50KCktPnJlbW92ZURhdGFDdWUocGFydGlhbEN1ZS5z
dGFydFRpbWUsIE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKSwgKnBhcnRpYWxDdWUu
Y3VlRGF0YSk7CiAgICAgfQogCiAgICAgbV9pbmNvbXBsZXRlQ3Vlcy5yZXNpemUoMCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKaW5kZXggM2I3
YmRhODY2ZDJlNjBkOTMyZWI4ZTYwOTZlZjhhOTMzMzdjNjZjMC4uZWU0N2Y3N2ViZjRkNzVjODkw
M2I4NmU3NTM2N2JiMTkwZmI5YWMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcApAQCAtMzIzLDMzICszMjMsMzMgQEAgdm9pZCBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQXR0cmlidXRlZFN0cmluZ3MoQ0ZBcnJheVJlZiBh
dHRyaWJ1dGVkU3QKIHsKICAgICBMT0coTWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZG
Ojpwcm9jZXNzQ3VlIC0gJWxpIGN1ZXMgYXQgdGltZSAlc1xuIiwgYXR0cmlidXRlZFN0cmluZ3Mg
PyBDRkFycmF5R2V0Q291bnQoYXR0cmlidXRlZFN0cmluZ3MpIDogMCwgdG9TdHJpbmcodGltZSku
dXRmOCgpLmRhdGEoKSk7CiAKLSAgICBWZWN0b3I8UmVmUHRyPEdlbmVyaWNDdWVEYXRhPj4gYXJy
aXZpbmdDdWVzOworICAgIFZlY3RvcjxSZWY8R2VuZXJpY0N1ZURhdGE+PiBhcnJpdmluZ0N1ZXM7
CiAgICAgaWYgKGF0dHJpYnV0ZWRTdHJpbmdzKSB7CiAgICAgICAgIENGSW5kZXggY291bnQgPSBD
RkFycmF5R2V0Q291bnQoYXR0cmlidXRlZFN0cmluZ3MpOwogICAgICAgICBmb3IgKENGSW5kZXgg
aSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAgICAgICAgICAgICBDRkF0dHJpYnV0ZWRTdHJpbmdS
ZWYgYXR0cmlidXRlZFN0cmluZyA9IHN0YXRpY19jYXN0PENGQXR0cmlidXRlZFN0cmluZ1JlZj4o
Q0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRyaWJ1dGVkU3RyaW5ncywgaSkpOwotICAgICAgICAg
ICAgCisKICAgICAgICAgICAgIGlmICghYXR0cmlidXRlZFN0cmluZyB8fCAhQ0ZBdHRyaWJ1dGVk
U3RyaW5nR2V0TGVuZ3RoKGF0dHJpYnV0ZWRTdHJpbmcpKQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBSZWZQdHI8R2VuZXJpY0N1ZURhdGE+IGN1
ZURhdGEgPSBHZW5lcmljQ3VlRGF0YTo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICBwcm9jZXNzQ3Vl
QXR0cmlidXRlcyhhdHRyaWJ1dGVkU3RyaW5nLCAqY3VlRGF0YS5nZXQoKSk7CisKKyAgICAgICAg
ICAgIGF1dG8gY3VlRGF0YSA9IEdlbmVyaWNDdWVEYXRhOjpjcmVhdGUoKTsKKyAgICAgICAgICAg
IHByb2Nlc3NDdWVBdHRyaWJ1dGVzKGF0dHJpYnV0ZWRTdHJpbmcsIGN1ZURhdGEuZ2V0KCkpOwog
ICAgICAgICAgICAgaWYgKCFjdWVEYXRhLT5jb250ZW50KCkubGVuZ3RoKCkpCiAgICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGFycml2aW5nQ3Vlcy5h
cHBlbmQoY3VlRGF0YSk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgY3VlRGF0YS0+c2V0
U3RhcnRUaW1lKHRpbWUpOwogICAgICAgICAgICAgY3VlRGF0YS0+c2V0RW5kVGltZShNZWRpYVRp
bWU6OnBvc2l0aXZlSW5maW5pdGVUaW1lKCkpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAg
IC8vIEFWRm91bmRhdGlvbiBjdWUgInBvc2l0aW9uIiBpcyB0byB0aGUgY2VudGVyIG9mIHRoZSB0
ZXh0IHNvIGFkanVzdCByZWxhdGl2ZSB0byB0aGUgZWRnZSBiZWNhdXNlIHdlIHdpbGwgdXNlIGl0
IHRvCiAgICAgICAgICAgICAvLyBzZXQgQ1NTICJsZWZ0Ii4KICAgICAgICAgICAgIGlmIChjdWVE
YXRhLT5wb3NpdGlvbigpID49IDAgJiYgY3VlRGF0YS0+c2l6ZSgpID4gMCkKICAgICAgICAgICAg
ICAgICBjdWVEYXRhLT5zZXRQb3NpdGlvbihjdWVEYXRhLT5wb3NpdGlvbigpIC0gY3VlRGF0YS0+
c2l6ZSgpIC8gMik7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSglcCkgLSBjb25zaWRlcmluZyBjdWUg
KFwiJXNcIikgZm9yIHRpbWUgPSAlcywgcG9zaXRpb24gPSAgJS4yZiwgbGluZSA9ICAlLjJmIiwg
dGhpcywgY3VlRGF0YS0+Y29udGVudCgpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZURhdGEt
PnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLT5wb3NpdGlvbigpLCBjdWVEYXRh
LT5saW5lKCkpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIGN1ZURhdGEtPnNldFN0YXR1
cyhHZW5lcmljQ3VlRGF0YTo6UGFydGlhbCk7CisKKyAgICAgICAgICAgIGFycml2aW5nQ3Vlcy5h
cHBlbmQoV1RGTW92ZShjdWVEYXRhKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTM2MCwxNyAr
MzYwLDE3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0F0dHJpYnV0
ZWRTdHJpbmdzKENGQXJyYXlSZWYgYXR0cmlidXRlZFN0CiAgICAgICAgIGlmIChtX2N1cnJlbnRD
dWVFbmRUaW1lID49IG1fY3VycmVudEN1ZVN0YXJ0VGltZSkgewogICAgICAgICAgICAgZm9yIChh
dXRvJiBjdWVEYXRhIDogbV9jdWVzKSB7CiAgICAgICAgICAgICAgICAgLy8gU2VlIGlmIG9uZSBv
ZiB0aGUgbmV3bHktYXJyaXZlZCBjdWVzIGlzIGFuIGV4dGVuc2lvbiBvZiB0aGlzIGN1ZS4KLSAg
ICAgICAgICAgICAgICBWZWN0b3I8UmVmUHRyPEdlbmVyaWNDdWVEYXRhPj4gbm9uRXh0ZW5zaW9u
Q3VlczsKKyAgICAgICAgICAgICAgICBWZWN0b3I8UmVmPEdlbmVyaWNDdWVEYXRhPj4gbm9uRXh0
ZW5zaW9uQ3VlczsKICAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGFycml2aW5nQ3VlIDogYXJy
aXZpbmdDdWVzKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghYXJyaXZpbmdDdWUtPmRvZXNF
eHRlbmRDdWVEYXRhKCpjdWVEYXRhKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vbkV4dGVu
c2lvbkN1ZXMuYXBwZW5kKGFycml2aW5nQ3VlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5v
bkV4dGVuc2lvbkN1ZXMuYXBwZW5kKFdURk1vdmUoYXJyaXZpbmdDdWUpKTsKICAgICAgICAgICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSglcCkgLSBmb3VuZCBhbiBleHRlbnNpb24g
Y3VlIChcIiVzXCIpIGZvciB0aW1lID0gJS4yZiwgZW5kID0gJS4yZiwgcG9zaXRpb24gPSAgJS4y
ZiwgbGluZSA9ICAlLjJmIiwgdGhpcywgYXJyaXZpbmdDdWUtPmNvbnRlbnQoKS51dGY4KCkuZGF0
YSgpLCBhcnJpdmluZ0N1ZS0+c3RhcnRUaW1lKCkudG9Eb3VibGUoKSwgYXJyaXZpbmdDdWUtPmVu
ZFRpbWUoKS50b0RvdWJsZSgpLCBhcnJpdmluZ0N1ZS0+cG9zaXRpb24oKSwgYXJyaXZpbmdDdWUt
PmxpbmUoKSk7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgYm9vbCBjdXJy
ZW50Q3VlSXNFeHRlbmRlZCA9IChhcnJpdmluZ0N1ZXMuc2l6ZSgpICE9IG5vbkV4dGVuc2lvbkN1
ZXMuc2l6ZSgpKTsKIAotICAgICAgICAgICAgICAgIGFycml2aW5nQ3VlcyA9IG5vbkV4dGVuc2lv
bkN1ZXM7CisgICAgICAgICAgICAgICAgYXJyaXZpbmdDdWVzID0gV1RGTW92ZShub25FeHRlbnNp
b25DdWVzKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAoY3VycmVudEN1
ZUlzRXh0ZW5kZWQpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMzgwLDcgKzM4
MCw3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0F0dHJpYnV0ZWRT
dHJpbmdzKENGQXJyYXlSZWYgYXR0cmlidXRlZFN0CiAgICAgICAgICAgICAgICAgICAgIGN1ZURh
dGEtPnNldFN0YXR1cyhHZW5lcmljQ3VlRGF0YTo6Q29tcGxldGUpOwogCiAgICAgICAgICAgICAg
ICAgICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWUo
JXApIC0gdXBkYXRpbmcgY3VlIFwiJXNcIjogc3RhcnQ9JS4yZiwgZW5kPSUuMmYiLCB0aGlzLCBj
dWVEYXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS0+c3RhcnRUaW1lKCkudG9E
b3VibGUoKSwgbV9jdXJyZW50Q3VlRW5kVGltZS50b0RvdWJsZSgpKTsKLSAgICAgICAgICAgICAg
ICAgICAgY2xpZW50KCktPnVwZGF0ZUdlbmVyaWNDdWUodGhpcywgY3VlRGF0YS5nZXQoKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGNsaWVudCgpLT51cGRhdGVHZW5lcmljQ3VlKCpjdWVEYXRhKTsK
ICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZl
IHRvIGFzc3VtZSB0aGF0IHRoZSBpbXBsaWNpdCBkdXJhdGlvbiBpcyBpbnZhbGlkIGZvciBjdWVz
IGRlbGl2ZXJlZCBkdXJpbmcgYSBzZWVrIGJlY2F1c2UgdGhlIEFWRiBkZWNvZGUgcGlwZWxpbmUg
bWF5IG5vdAogICAgICAgICAgICAgICAgICAgICAvLyBzZWUgZXZlcnkgY3VlLCBzbyBETyBOT1Qg
dXBkYXRlIGN1ZSBkdXJhdGlvbiB3aGlsZSBzZWVraW5nLgpAQCAtMzk5LDEyICszOTksMTEgQEAg
dm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQXR0cmlidXRlZFN0cmluZ3Mo
Q0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3QKICAgICBtX2N1cnJlbnRDdWVTdGFydFRpbWUgPSB0aW1l
OwogCiAgICAgZm9yIChhdXRvJiBjdWVEYXRhIDogYXJyaXZpbmdDdWVzKSB7Ci0KLSAgICAgICAg
bV9jdWVzLmFwcGVuZChjdWVEYXRhKTsKKyAgICAgICAgbV9jdWVzLmFwcGVuZChjdWVEYXRhLnB0
cigpKTsKICAgICAgICAgCiAgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRUcmFja1ByaXZh
dGVBVkY6OnByb2Nlc3NDdWUoJXApIC0gYWRkaW5nIGN1ZSBcIiVzXCIgZm9yIHRpbWUgPSAlLjJm
LCBlbmQgPSAlLjJmLCBwb3NpdGlvbiA9ICAlLjJmLCBsaW5lID0gICUuMmYiLCB0aGlzLCBjdWVE
YXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS0+c3RhcnRUaW1lKCkudG9Eb3Vi
bGUoKSwgY3VlRGF0YS0+ZW5kVGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEtPnBvc2l0aW9uKCks
IGN1ZURhdGEtPmxpbmUoKSk7CiAKLSAgICAgICAgY2xpZW50KCktPmFkZEdlbmVyaWNDdWUodGhp
cywgV1RGTW92ZShjdWVEYXRhKSk7CisgICAgICAgIGNsaWVudCgpLT5hZGRHZW5lcmljQ3VlKFdU
Rk1vdmUoY3VlRGF0YSkpOwogICAgIH0KIAogICAgIG1fcGVuZGluZ0N1ZVN0YXR1cyA9IHNlZWtp
bmcoKSA/IERlbGl2ZXJlZER1cmluZ1NlZWsgOiBWYWxpZDsKQEAgLTQ1MSw5ICs0NTAsOSBAQCB2
b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnJlc2V0Q3VlVmFsdWVzKCkKICAgICBpZiAo
bV9jdXJyZW50Q3VlRW5kVGltZSAmJiBtX2N1ZXMuc2l6ZSgpKQogICAgICAgICBMT0coTWVkaWEs
ICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpyZXNldEN1ZVZhbHVlcyBmbHVzaGluZyBkYXRh
IGZvciBjdWVzOiBzdGFydD0lc1xuIiwgdG9TdHJpbmcobV9jdXJyZW50Q3VlU3RhcnRUaW1lKS51
dGY4KCkuZGF0YSgpKTsKIAotICAgIGlmIChjbGllbnQoKSkgewotICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG1fY3Vlcy5zaXplKCk7IGkrKykKLSAgICAgICAgICAgIGNsaWVudCgpLT5y
ZW1vdmVHZW5lcmljQ3VlKHRoaXMsIG1fY3Vlc1tpXS5nZXQoKSk7CisgICAgaWYgKGF1dG8qIGNs
aWVudCA9IHRoaXMtPmNsaWVudCgpKSB7CisgICAgICAgIGZvciAoYXV0byYgY3VlIDogbV9jdWVz
KQorICAgICAgICAgICAgY2xpZW50LT5yZW1vdmVHZW5lcmljQ3VlKCpjdWUpOwogICAgIH0KIAog
ICAgIG1fY3Vlcy5yZXNpemUoMCk7CkBAIC01MDksNyArNTA4LDcgQEAgdm9pZCBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzTmF0aXZlU2FtcGxlcyhDRkFycmF5UmVmIG5hdGl2ZVNh
bXBsZXMsIGMKICAgICAgICAgICAgIExPRyhNZWRpYSwgIiAgICBpZCA9IFwiJXNcIiwgc2V0dGlu
Z3MgPSBcIiVzXCIsIGN1ZSB0ZXh0ID0gXCIlc1wiIiwgY3VlRGF0YS5pZCgpLnV0ZjgoKS5kYXRh
KCksIGN1ZURhdGEuc2V0dGluZ3MoKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLmN1ZVRleHQoKS51
dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAgIExPRyhNZWRpYSwgIiAgICBzb3VyY2VJRCA9IFwi
JXNcIiwgb3JpZ2luYWxTdGFydFRpbWUgPSBcIiVzXCIiLCBjdWVEYXRhLnNvdXJjZUlEKCkudXRm
OCgpLmRhdGEoKSwgY3VlRGF0YS5vcmlnaW5hbFN0YXJ0VGltZSgpLnV0ZjgoKS5kYXRhKCkpOwog
Ci0gICAgICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRDdWVEYXRhKHRoaXMsIGN1ZURhdGEp
OworICAgICAgICAgICAgY2xpZW50KCktPnBhcnNlV2ViVlRUQ3VlRGF0YShjdWVEYXRhKTsKICAg
ICAgICAgfQogCiAgICAgICAgIGRvIHsKQEAgLTU0Miw3ICs1NDEsNyBAQCB2b2lkIEluYmFuZFRl
eHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NOYXRpdmVTYW1wbGVzKENGQXJyYXlSZWYgbmF0aXZl
U2FtcGxlcywgYwogICAgICAgICAgICAgaGVhZGVyLmFwcGVuZCgiXG5cbiIpOwogCiAgICAgICAg
ICAgICBMT0coTWVkaWEsICIgICAgdnR0IGhlYWRlciA9IFxuJXMiLCBoZWFkZXIudG9TdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEZpbGVI
ZWFkZXIodGhpcywgaGVhZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgY2xpZW50KCktPnBh
cnNlV2ViVlRURmlsZUhlYWRlcihoZWFkZXIudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICBtX2hh
dmVSZXBvcnRlZFZUVEhlYWRlciA9IHRydWU7CiAgICAgICAgIH0gd2hpbGUgKDApOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5jcHAKaW5kZXggZmU5MzQ0YjYzMWYwMzVmOWVkZTczNTc0NDA3ZjM0
MzlhYTI0ZTUwMi4uOGM5NDkzY2E1Yjc5N2U0NDhhMDAyMjM5NDdlOWI1MWIzYzlhODRkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcApAQCAtMzYsOCArMzYsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6QXVkaW9UcmFja1By
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaywgU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMqIHBhcmVudCkKICAgICA6IG1faW1wbChzdGQ6Om1ha2VfdW5pcXVlPEFW
VHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKICAgICAsIG1fcGFyZW50KHBhcmVudCkK
LSAgICAsIG1fdHJhY2tJRCgtMSkKLSAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKICAgICByZXNl
dFByb3BlcnRpZXNGcm9tVHJhY2soKTsKIH0KQEAgLTYzLDE3ICs2MSwxMiBAQCBBVkFzc2V0VHJh
Y2sqIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphc3NldFRyYWNrKCkKICAg
ICByZXR1cm4gbV9pbXBsLT5hc3NldFRyYWNrKCk7CiB9CiAKLWJvb2wgQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmVuYWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX2Vu
YWJsZWQ7Ci19Ci0KIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNl
dEVuYWJsZWQoYm9vbCBlbmFibGVkKQogewotICAgIGlmIChtX2VuYWJsZWQgPT0gZW5hYmxlZCkK
KyAgICBpZiAoZW5hYmxlZCA9PSB0aGlzLT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgQXVkaW9UcmFja1ByaXZhdGVBVkY6OnNldEVu
YWJsZWQoZW5hYmxlZCk7CiAgICAgbV9wYXJlbnQtPnRyYWNrRGlkQ2hhbmdlRW5hYmxlZCh0aGlz
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggYmJlODljZGRhMTNiMDgyZGNmODNm
MDI1ZmNjODVjNDI4ZmRjOTE0Ny4uMTdjMTlhMDA2YTc2N2I4NWZmMWJhZDQxYjI4MzAyN2M4NWFm
MGNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKICAqLwogCi0jaWZuZGVmIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDX2gKLSNkZWZpbmUgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakNfaAorI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZUFWRi5oIgogCkBAIC00Niw4
ICs0NSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyh0cmFjaywgcGFyZW50KSk7CiAgICAgfQogCi0gICAg
Ym9vbCBlbmFibGVkKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRFbmFibGVkKGJvb2wp
IG92ZXJyaWRlOworICAgIHZvaWQgc2V0RW5hYmxlZChib29sKSBmaW5hbDsKIAogICAgIHZvaWQg
c2V0QXNzZXRUcmFjayhBVkFzc2V0VHJhY2sqKTsKICAgICBBVkFzc2V0VHJhY2sqIGFzc2V0VHJh
Y2soKTsKQEAgLTYyLDExICs2MCw4IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFW
VHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+IG1faW1wbDsKICAgICBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyogbV9wYXJlbnQ7CiAgICAgaW50IG1fdHJhY2tJRDsKLSAgICBib29sIG1fZW5hYmxl
ZDsKIH07CiAKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEVOQUJMRShW
SURFT19UUkFDSykKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaAppbmRleCAxZjc1ODJlMThiYjY4Y2NiOGMwNjU3NmY0
MGMxYzE5NTM3ZmE3ZTdhLi4zZGFlNGIxMzA4NThmNDYzN2JkZDJmNTFhMmMzNDY4NDI3ZjgyYmEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDLmgKQEAgLTExNCwxOCArMTE0LDE4IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQyopOwogCiAg
ICAgLy8gU291cmNlQnVmZmVyUHJpdmF0ZSBvdmVycmlkZXMKLSAgICB2b2lkIHNldENsaWVudChT
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Kikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBhcHBlbmQoY29u
c3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBvdmVycmlkZTsKLSAgICB2
b2lkIGFib3J0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKCkgb3ZlcnJpZGU7Ci0gICAgTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZv
aWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBmbHVzaChBdG9taWNTdHJpbmcgdHJhY2tJRCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBlbnF1
ZXVlU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+LCBBdG9taWNTdHJpbmcgdHJhY2tJRCkg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRy
YWNrSUQpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIG92ZXJyaWRlOwotICAg
IHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRy
YWNrSUQpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVD
bGllbnQqKSBmaW5hbDsKKyAgICB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgpIGZpbmFsOworICAgIHZvaWQgYWJvcnQoKSBmaW5hbDsKKyAgICB2
b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZWRGcm9tTWVkaWFT
b3VyY2UoKSBmaW5hbDsKKyAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkg
Y29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0
YXRlKSBmaW5hbDsKKyAgICB2b2lkIGZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkg
ZmluYWw7CisgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiwgY29uc3Qg
QXRvbWljU3RyaW5nJiB0cmFja0lEKSBmaW5hbDsKKyAgICBib29sIGlzUmVhZHlGb3JNb3JlU2Ft
cGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpIGZpbmFsOworICAgIHZvaWQgc2V0QWN0
aXZlKGJvb2wpIGZpbmFsOworICAgIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNh
bXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKSBmaW5hbDsKIAogICAgIHZvaWQgZGlk
QmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhpbnQgdHJhY2tJRCk7CiAgICAgdm9pZCBhcHBlbmRD
b21wbGV0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMubW0KaW5kZXggM2IwZDY4Y2MyYmYyZDIyYjc4YjM5MmJmMzgyOGZlNjEz
OGU5YjAxOC4uY2M5MmVkMTU4ZjU1M2MxMTYwZGE0M2YyN2ExYTA4OWE5NTczMjhkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW0KQEAgLTUxMiw3ICs1MTIsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpk
aWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0KEFWQXNzZXQqIGFzc2V0KQogICAgICAgICBtX21lZGlh
U291cmNlLT5wbGF5ZXIoKS0+Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOwogCiAgICAgaWYgKG1f
Y2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJ
bml0aWFsaXphdGlvblNlZ21lbnQodGhpcywgc2VnbWVudCk7CisgICAgICAgIG1fY2xpZW50LT5z
b3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChzZWdtZW50
KTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkRmFpbFRvUGFyc2VT
dHJlYW1EYXRhV2l0aEVycm9yKE5TRXJyb3IqIGVycm9yKQpAQCAtNTQ5LDcgKzU0OSw3IEBAIGJv
b2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnByb2Nlc3NDb2RlZEZyYW1lKGludCB0cmFj
a0lELCBDTVNhbXBsZUJ1ZmZlclJlCiAgICAgaWYgKG1fY2xpZW50KSB7CiAgICAgICAgIFJlZjxN
ZWRpYVNhbXBsZT4gbWVkaWFTYW1wbGUgPSBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShzYW1w
bGVCdWZmZXIsIHRyYWNrSUQpOwogICAgICAgICBMT0coTWVkaWFTb3VyY2VTYW1wbGVzLCAiU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnByb2Nlc3NDb2RlZEZyYW1lKCVwKSAtIHNhbXBsZSgl
cykiLCB0aGlzLCB0b1N0cmluZyhtZWRpYVNhbXBsZS5nZXQoKSkudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSh0aGlz
LCBtZWRpYVNhbXBsZSk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlk
UmVjZWl2ZVNhbXBsZShtZWRpYVNhbXBsZSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CkBA
IC02NTksNyArNjU5LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5k
Q29tcGxldGVkKCkKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldExvYWRpbmdQ
cm9ncmVzc3NlZCh0cnVlKTsKIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQt
PnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCBtX3BhcnNpbmdTdWNjZWVk
ZWQgPyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQgOiBTb3VyY2VC
dWZmZXJQcml2YXRlQ2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKKyAgICAgICAgbV9jbGllbnQtPnNv
dXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShtX3BhcnNpbmdTdWNjZWVkZWQgPyBTb3Vy
Y2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQgOiBTb3VyY2VCdWZmZXJQcml2
YXRlQ2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6YWJvcnQoKQpAQCAtNzM1LDE4ICs3MzUsMTIgQEAgdm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFk
eVN0YXQKIAogYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6aGFzVmlkZW8oKSBjb25z
dAogewotICAgIGlmICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJl
dHVybiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKHRoaXMpOworICAgIHJl
dHVybiBtX2NsaWVudCAmJiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCk7
CiB9CiAKIGJvb2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Omhhc0F1ZGlvKCkgY29uc3QK
IHsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1
cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyh0aGlzKTsKKyAgICByZXR1
cm4gbV9jbGllbnQgJiYgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygpOwog
fQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0cmFja0RpZENoYW5nZUVuYWJs
ZWQoVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMqIHRyYWNrKQpAQCAtODc0LDcg
Kzg2OCw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmxheWVyRGlkUmVjZWl2
ZUVycm9yKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyCiAgICAgaW50IGVycm9yQ29kZSA9IFtb
W2Vycm9yIHVzZXJJbmZvXSB2YWx1ZUZvcktleTpAIk9TU3RhdHVzIl0gaW50VmFsdWVdOwogCiAg
ICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURp
ZFJlY2VpdmVSZW5kZXJpbmdFcnJvcih0aGlzLCBlcnJvckNvZGUpOworICAgICAgICBtX2NsaWVu
dC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihlcnJvckNvZGUp
OwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlckRpZFJlY2Vp
dmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKnJlbmRlcmVyLCBOU0Vycm9yICpl
cnJvcikKQEAgLTg5NSw3ICs4ODksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjpyZW5kZXJlckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZAogICAgICAg
ICByZXR1cm47CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmZsdXNoKEF0
b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6Zmx1c2goY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAgIGludCB0
cmFja0lEID0gdHJhY2tJRFN0cmluZy50b0ludCgpOwogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVzaCglcCkgLSB0cmFja0lkOiAlZCIsIHRoaXMs
IHRyYWNrSUQpOwpAQCAtOTI1LDE5ICs5MTksMTcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6Zmx1c2goQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICpyZW5kZXJlcikKICAg
ICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxl
KHJlbmRlcmVyLCBmYWxzZSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OmVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJwTWVkaWFTYW1wbGUsIEF0
b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdCBBdG9taWNT
dHJpbmcmIHRyYWNrSURTdHJpbmcpCiB7CiAgICAgaW50IHRyYWNrSUQgPSB0cmFja0lEU3RyaW5n
LnRvSW50KCk7CiAgICAgaWYgKHRyYWNrSUQgIT0gbV9lbmFibGVkVmlkZW9UcmFja0lEICYmICFt
X2F1ZGlvUmVuZGVyZXJzLmNvbnRhaW5zKHRyYWNrSUQpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBSZWZQdHI8TWVkaWFTYW1wbGU+IG1lZGlhU2FtcGxlID0gcHJwTWVkaWFTYW1wbGU7Ci0KLSAg
ICBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBsZSA9IG1lZGlhU2FtcGxlLT5wbGF0Zm9ybVNh
bXBsZSgpOworICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlID0gc2FtcGxlLT5wbGF0
Zm9ybVNhbXBsZSgpOwogICAgIGlmIChwbGF0Zm9ybVNhbXBsZS50eXBlICE9IFBsYXRmb3JtU2Ft
cGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIExPRyhNZWRp
YVNvdXJjZVNhbXBsZXMsICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBs
ZSglcCkgLSBzYW1wbGUoJXMpIiwgdGhpcywgdG9TdHJpbmcoKm1lZGlhU2FtcGxlKS51dGY4KCku
ZGF0YSgpKTsKKyAgICBMT0coTWVkaWFTb3VyY2VTYW1wbGVzLCAiU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoJXApIC0gc2FtcGxlKCVzKSIsIHRoaXMsIHRvU3RyaW5n
KHNhbXBsZS5nZXQoKSkudXRmOCgpLmRhdGEoKSk7CiAKICAgICBpZiAodHJhY2tJRCA9PSBtX2Vu
YWJsZWRWaWRlb1RyYWNrSUQpIHsKICAgICAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3Jt
YXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxhdGZv
cm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKQEAgLTk1MCwyMiArOTQyLDIyIEBAIHZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxN
ZWRpYVNhbXBsZT4gcHJwTWVkaWFTCiAgICAgICAgICAgICAgICAgaWYgKHNpemVXYXNOdWxsKQog
ICAgICAgICAgICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2V0TmF0dXJhbFNp
emUoZm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg
ICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2l6ZVdpbGxDaGFuZ2VBdFRpbWUobWVkaWFTYW1w
bGUtPnByZXNlbnRhdGlvblRpbWUoKSwgZm9ybWF0U2l6ZSk7CisgICAgICAgICAgICAgICAgICAg
IG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zaXplV2lsbENoYW5nZUF0VGltZShzYW1wbGUtPnBy
ZXNlbnRhdGlvblRpbWUoKSwgZm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
IAogICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZW5xdWV1ZVNhbXBsZUJ1ZmZlcjpwbGF0Zm9ybVNh
bXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXJdOwogICAgICAgICBpZiAobV9tZWRpYVNvdXJjZSkK
LSAgICAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zZXRIYXNBdmFpbGFibGVWaWRl
b0ZyYW1lKCFtZWRpYVNhbXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOworICAgICAgICAgICAgbV9t
ZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoIXNhbXBsZS0+
aXNOb25EaXNwbGF5aW5nKCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8gcmVuZGVyZXIg
PSBtX2F1ZGlvUmVuZGVyZXJzLmdldCh0cmFja0lEKTsKICAgICAgICAgW3JlbmRlcmVyIGVucXVl
dWVTYW1wbGVCdWZmZXI6cGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyXTsKICAg
ICAgICAgaWYgKG1fbWVkaWFTb3VyY2UpCi0gICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5
ZXIoKS0+c2V0SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUocmVuZGVyZXIuZ2V0KCksICFtZWRpYVNh
bXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOworICAgICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxh
eWVyKCktPnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxlKHJlbmRlcmVyLmdldCgpLCAhc2FtcGxl
LT5pc05vbkRpc3BsYXlpbmcoKSk7CiAgICAgfQogfQogCi1ib29sIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSURTdHJp
bmcpCitib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjppc1JlYWR5Rm9yTW9yZVNhbXBs
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAgIGludCB0cmFja0lE
ID0gdHJhY2tJRFN0cmluZy50b0ludCgpOwogICAgIGlmICh0cmFja0lEID09IG1fZW5hYmxlZFZp
ZGVvVHJhY2tJRCkKQEAgLTk4NCw5ICs5NzYsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpzZXRBY3RpdmUoYm9vbCBpc0FjdGl2ZSkKIAogTWVkaWFUaW1lIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjpmYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoTWVkaWFUaW1lIHRpbWUs
IE1lZGlhVGltZSBuZWdhdGl2ZVRocmVzaG9sZCwgTWVkaWFUaW1lIHBvc2l0aXZlVGhyZXNob2xk
KQogewotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgcmV0dXJuIG1fY2xpZW50LT5zb3VyY2VC
dWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRoaXMsIHRpbWUsIG5lZ2F0aXZl
VGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7Ci0gICAgcmV0dXJuIHRpbWU7CisgICAgaWYg
KCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuIHRpbWU7CisgICAgcmV0dXJuIG1fY2xpZW50LT5z
b3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRpbWUsIG5lZ2F0aXZl
VGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OndpbGxTZWVrKCkKQEAgLTEwMDEsNyArOTkzLDcgQEAgdm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6d2lsbFNlZWsoKQogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6c2Vla1RvVGltZShNZWRpYVRpbWUgdGltZSkKIHsKICAgICBpZiAobV9jbGllbnQp
Ci0gICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGltZSh0aGlzLCB0
aW1lKTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKHRp
bWUpOwogfQogCiBGbG9hdFNpemUgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om5hdHVyYWxT
aXplKCkKQEAgLTEwMjEsMTAgKzEwMTMsMTAgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6ZGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhpbnQgdHJhY2tJRCkKICAgICB9CiAK
ICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRl
RGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyh0aGlzLCBBdG9taWNTdHJpbmc6Om51bWJlcih0
cmFja0lEKSk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21l
UmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmc6Om51bWJlcih0cmFja0lEKSk7CiB9CiAK
LXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZv
ck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29u
c3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAgIGludCB0cmFja0lEID0gdHJh
Y2tJRFN0cmluZy50b0ludCgpOwogICAgIGlmICh0cmFja0lEID09IG1fZW5hYmxlZFZpZGVvVHJh
Y2tJRCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZE1ldGFkYXRhVGV4dFRy
YWNrUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IGY2NjZiZWJjMmI3ZjQzMmFiYzU2ZmI4ODZjODk5
NzZmNzlhMzU0YWQuLjdjOWM2YzczNDZhYTY1NmYzODU3ZmFjZGFiMzA3MzhlNDU0Y2EyMDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJh
bmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2
YXRlR1N0cmVhbWVyLmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkR2Vu
ZXJpY0N1ZShQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPiBkYXRhKQogICAgIHsKICAgICAgICAg
QVNTRVJUKGN1ZUZvcm1hdCgpID09IEdlbmVyaWMpOwotICAgICAgICBjbGllbnQoKS0+YWRkR2Vu
ZXJpY0N1ZSh0aGlzLCBkYXRhKTsKKyAgICAgICAgY2xpZW50KCktPmFkZEdlbmVyaWNDdWUoKmRh
dGEpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA2YjFmZmFiOTNjMzQ4ZmNjYzc3YzYzMGZl
YjZiZTgyZTEwMTlkYWQ2Li4xZDk0NTI3OGJhNGQwMmMwNDdmMzJhMTU3NDk1ZGJkZTY4Y2ZhMDZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFt
ZXIuY3BwCkBAIC0xMTMsNyArMTEzLDcgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0
cmVhbWVyOjpub3RpZnlUcmFja09mU2FtcGxlKCkKIAogICAgICAgICBHU1RfSU5GTygiVHJhY2sg
JWQgcGFyc2luZyBzYW1wbGU6ICUuKnMiLCBtX2luZGV4LCBzdGF0aWNfY2FzdDxpbnQ+KGluZm8u
c2l6ZSksCiAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNoYXIqPihpbmZvLmRhdGEpKTsK
LSAgICAgICAgY2xpZW50KCktPnBhcnNlV2ViVlRUQ3VlRGF0YSh0aGlzLCByZWludGVycHJldF9j
YXN0PGNoYXIqPihpbmZvLmRhdGEpLCBpbmZvLnNpemUpOworICAgICAgICBjbGllbnQoKS0+cGFy
c2VXZWJWVFRDdWVEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGluZm8uZGF0YSksIGluZm8u
c2l6ZSk7CiAgICAgICAgIGdzdF9idWZmZXJfdW5tYXAoYnVmZmVyLCAmaW5mbyk7CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCmluZGV4IDYx
OWYyY2E2MWNhYmU1OTQwYWVjM2QxM2VjZjdkZGY1NzM1ZmQ3MjEuLjE1OTM0Y2I4ZTMxMDc5Mjlj
OTJjOThmM2UyNDQ5ODhhZDNjODZjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRl
QmFzZUdTdHJlYW1lci5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIFRyYWNrUHJpdmF0ZUJh
c2VHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCgpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGlmIChnZXRUYWcodGFncy5nZXQoKSwgR1NUX1RBR19USVRMRSwgbV9sYWJlbCkpCi0g
ICAgICAgIGNsaWVudC0+bGFiZWxDaGFuZ2VkKG1fb3duZXIsIG1fbGFiZWwpOworICAgICAgICBj
bGllbnQtPmxhYmVsQ2hhbmdlZChtX2xhYmVsKTsKIAogICAgIEF0b21pY1N0cmluZyBsYW5ndWFn
ZTsKICAgICBpZiAoIWdldExhbmd1YWdlQ29kZSh0YWdzLmdldCgpLCBsYW5ndWFnZSkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0Fw
cGVuZFBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwCmluZGV4IDAwNTEyZTYzYzczMmUzOTNlZjY1MTYw
MTBkMWU2N2VlNmZlZGJiMzguLjg0OTI2N2YyMWUwNjk4ZmI1ZDJhZGRlYWU1MDkxYjNjNWQwOTJm
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwCkBAIC02NzYsNyArNjc2LDcg
QEAgdm9pZCBBcHBlbmRQaXBlbGluZTo6YXBwc2lua05ld1NhbXBsZShHc3RTYW1wbGUqIHNhbXBs
ZSkKICAgICAgICAgICAgIG1lZGlhU2FtcGxlLT5hcHBseVB0c09mZnNldChNZWRpYVRpbWU6Onpl
cm9UaW1lKCkpOwogICAgICAgICB9CiAKLSAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlLT5k
aWRSZWNlaXZlU2FtcGxlKG1lZGlhU2FtcGxlKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2
YXRlLT5kaWRSZWNlaXZlU2FtcGxlKCptZWRpYVNhbXBsZSk7CiAgICAgICAgIHNldEFwcGVuZFN0
YXRlKEFwcGVuZFN0YXRlOjpTYW1wbGluZyk7CiAgICAgICAgIG1fZmxvd1JldHVybiA9IEdTVF9G
TE9XX09LOwogICAgICAgICBtX25ld1NhbXBsZUNvbmRpdGlvbi5ub3RpZnlPbmUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCmlu
ZGV4IDdmNTQ1ZWUzNWU0OGFhMDZiMDJhOTk2M2UxMWFjYmNiZGNhNzc5NDEuLmU0YjEwN2Y3MGY1
YzhjNjk4MTc0MTVlYmNhNGQ2NTViM2FiNWVjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtNzYsNyArNzYsNyBAQCB2
b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmFwcGVuZChjb25zdCB1bnNpZ25lZCBj
aGFyKiBkYXRhLCB1bnNpZ25lZCBsZQogICAgIGlmIChtX2NsaWVudC0+YXBwZW5kKHRoaXMsIGRh
dGEsIGxlbmd0aCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fc291cmNlQnVmZmVyUHJpdmF0
ZUNsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKHRoaXMsIFNvdXJjZUJ1
ZmZlclByaXZhdGVDbGllbnQ6OlJlYWRTdHJlYW1GYWlsZWQpOworICAgIG1fc291cmNlQnVmZmVy
UHJpdmF0ZUNsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFNvdXJjZUJ1
ZmZlclByaXZhdGVDbGllbnQ6OlJlYWRTdHJlYW1GYWlsZWQpOwogfQogCiB2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXI6OmFib3J0KCkKQEAgLTEwNiwyMCArMTA2LDE5IEBAIHZvaWQg
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSBzdGF0ZSkKICAgICBtX21lZGlhU291cmNlLT5zZXRSZWFkeVN0YXRlKHN0YXRl
KTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpmbHVzaChBdG9taWNT
dHJpbmcgdHJhY2tJZCkKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Zmx1c2go
Y29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lkKQogewogICAgIG1fY2xpZW50LT5mbHVzaCh0cmFj
a0lkKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjplbnF1ZXVlU2Ft
cGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+IHBycFNhbXBsZSwgQXRvbWljU3RyaW5nKQordm9p
ZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjplbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNh
bXBsZT4mJiBzYW1wbGUsIGNvbnN0IEF0b21pY1N0cmluZyYpCiB7CiAgICAgbV9ub3RpZnlXaGVu
UmVhZHlGb3JNb3JlU2FtcGxlcyA9IGZhbHNlOwogCi0gICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBw
cm90ZWN0ZWRQcnBTYW1wbGUgPSBwcnBTYW1wbGU7Ci0gICAgbV9jbGllbnQtPmVucXVldWVTYW1w
bGUocHJvdGVjdGVkUHJwU2FtcGxlKTsKKyAgICBtX2NsaWVudC0+ZW5xdWV1ZVNhbXBsZShXVEZN
b3ZlKHNhbXBsZSkpOwogfQogCi1ib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6Omlz
UmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpCitib29sIFNvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXI6OmlzUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmKQog
ewogICAgIHJldHVybiBtX2lzUmVhZHlGb3JNb3JlU2FtcGxlczsKIH0KQEAgLTEzNSw3ICsxMzQs
NyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVJlYWR5Rm9yTW9y
ZVNhbXBsZXMoKQogICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKICAgICBzZXRSZWFk
eUZvck1vcmVTYW1wbGVzKHRydWUpOwogICAgIGlmIChtX25vdGlmeVdoZW5SZWFkeUZvck1vcmVT
YW1wbGVzKQotICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKHRoaXMsIG1fdHJhY2tJZCk7Cisg
ICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURp
ZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMobV90cmFja0lkKTsKIH0KIAogdm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRBY3RpdmUoYm9vbCBpc0FjdGl2ZSkKQEAgLTE0NCwx
MiArMTQzLDEyIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0QWN0aXZl
KGJvb2wgaXNBY3RpdmUpCiAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnNvdXJjZUJ1ZmZlclByaXZh
dGVEaWRDaGFuZ2VBY3RpdmVTdGF0ZSh0aGlzLCBpc0FjdGl2ZSk7CiB9CiAKLXZvaWQgU291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6c3RvcEFza2luZ0Zvck1vcmVTYW1wbGVzKEF0b21pY1N0
cmluZykKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6c3RvcEFza2luZ0Zvck1v
cmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlDbGllbnRXaGVu
UmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcgdHJhY2tJZCkKK3ZvaWQgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMo
Y29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lkKQogewogICAgIEFTU0VSVChXVEY6OmlzTWFpblRo
cmVhZCgpKTsKICAgICBtX25vdGlmeVdoZW5SZWFkeUZvck1vcmVTYW1wbGVzID0gdHJ1ZTsKQEAg
LTE1OSwyMCArMTU4LDE5IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90
aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyCiB2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29u
c3QgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZW50JiBpbml0
aWFsaXphdGlvblNlZ21lbnQpCiB7CiAgICAgaWYgKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVu
dCkKLSAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2
YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudCh0aGlzLCBpbml0aWFsaXphdGlvblNl
Z21lbnQpOworICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGluaXRpYWxpemF0aW9uU2Vn
bWVudCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGlkUmVjZWl2
ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUpCit2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBs
ZSkKIHsKLSAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IHByb3RlY3RlZFBycFNhbXBsZSA9IHBycFNh
bXBsZTsKICAgICBpZiAobV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KQotICAgICAgICBtX3Nv
dXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2Ft
cGxlKHRoaXMsICpwcm90ZWN0ZWRQcnBTYW1wbGUpOworICAgICAgICBtX3NvdXJjZUJ1ZmZlclBy
aXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKHNhbXBsZSk7
CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGlkUmVjZWl2ZUFsbFBl
bmRpbmdTYW1wbGVzKCkKIHsKICAgICBpZiAobV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KQot
ICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVB
cHBlbmRDb21wbGV0ZSh0aGlzLCBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNj
ZWVkZWQpOworICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZl
clByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRT
dWNjZWVkZWQpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDMwODQyNWQ1MDNjYWE0ZWI4NjhiMzg5OTliNWQ0Njc2
OGRkNTQ5ODcuLjU2NzEzMTBmZjgyYzgzZjk4YzI2MGU4N2I0OGYxMzQxZWM4YWY2MWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oCkBA
IC01NCwyNiArNTQsMjYgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbGVhck1lZGlhU291cmNlKCkg
eyBtX21lZGlhU291cmNlID0gbnVsbHB0cjsgfQogCi0gICAgdm9pZCBzZXRDbGllbnQoU291cmNl
QnVmZmVyUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwotICAgIHZvaWQgYXBwZW5kKGNvbnN0IHVu
c2lnbmVkIGNoYXIqLCB1bnNpZ25lZCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBhYm9ydCgpIG92ZXJy
aWRlOwotICAgIHZvaWQgcmVzZXRQYXJzZXJTdGF0ZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVt
b3ZlZEZyb21NZWRpYVNvdXJjZSgpIG92ZXJyaWRlOwotICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0
YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFJlYWR5U3RhdGUo
TWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBmbHVzaChBdG9t
aWNTdHJpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1l
ZGlhU2FtcGxlPiwgQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKLSAgICBib29sIGlzUmVhZHlGb3JN
b3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0QWN0aXZlKGJv
b2wpIG92ZXJyaWRlOwotICAgIHZvaWQgc3RvcEFza2luZ0Zvck1vcmVTYW1wbGVzKEF0b21pY1N0
cmluZykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2Ft
cGxlcyhBdG9taWNTdHJpbmcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1
ZmZlclByaXZhdGVDbGllbnQqKSBmaW5hbDsKKyAgICB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25l
ZCBjaGFyKiwgdW5zaWduZWQpIGZpbmFsOworICAgIHZvaWQgYWJvcnQoKSBmaW5hbDsKKyAgICB2
b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZWRGcm9tTWVkaWFT
b3VyY2UoKSBmaW5hbDsKKyAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkg
Y29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0
YXRlKSBmaW5hbDsKKworICAgIHZvaWQgZmx1c2goY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7
CisgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiwgY29uc3QgQXRvbWlj
U3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRv
bWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBzZXRBY3RpdmUoYm9vbCkgZmluYWw7CisgICAg
dm9pZCBzdG9wQXNraW5nRm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7
CisgICAgdm9pZCBub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9t
aWNTdHJpbmcmKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0UmVhZHlGb3JNb3JlU2FtcGxlcyhib29s
KTsKICAgICB2b2lkIG5vdGlmeVJlYWR5Rm9yTW9yZVNhbXBsZXMoKTsKIAogICAgIHZvaWQgZGlk
UmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBTb3VyY2VCdWZmZXJQcml2YXRlQ2xp
ZW50OjpJbml0aWFsaXphdGlvblNlZ21lbnQmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTYW1wbGUo
UGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4pOworICAgIHZvaWQgZGlkUmVjZWl2ZVNhbXBsZShNZWRp
YVNhbXBsZSYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUFsbFBlbmRpbmdTYW1wbGVzKCk7CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291
cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCmluZGV4IDQ4ZGY0
YmNjNGMzYmI4ZGEyYzVmNDkwMGUxNzUwNjAwNzkxODU2ZjMuLjE1MGQyYzMyNmEwYWZjZDNhY2Vj
YzgwNThmNGM5ZmQ2MjA1ZjA3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZh
dGUuY3BwCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZUNs
aWVudC5oIgogI2luY2x1ZGUgPG1hcD4KICNpbmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVyLmg+
Ci0jaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50
U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE2NSw3ICsxNjQsNyBAQCB2b2lk
IE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjphcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0
YSwgdW5zaWduZWQgbGVuZ3RoKQogICAgIH0KIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAg
bV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCByZXN1bHQp
OworICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKHJl
c3VsdCk7CiB9CiAKIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVJbml0
aWFsaXphdGlvblNlZ21lbnQoY29uc3QgTW9ja0luaXRpYWxpemF0aW9uQm94JiBpbml0Qm94KQpA
QCAtMTk2LDcgKzE5NSw3IEBAIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2Vp
dmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgTW9ja0luaXRpYWxpCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFs
aXphdGlvblNlZ21lbnQodGhpcywgc2VnbWVudCk7CisgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KHNlZ21lbnQpOwogfQogCiAK
QEAgLTIwNSw3ICsyMDQsNyBAQCB2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNl
aXZlU2FtcGxlKGNvbnN0IE1vY2tTYW1wbGVCb3gmIHNhbXBsZUJveCkKICAgICBpZiAoIW1fY2xp
ZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVTYW1wbGUodGhpcywgTW9ja01lZGlhU2FtcGxlOjpjcmVhdGUoc2FtcGxlQm94
KSk7CisgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKE1v
Y2tNZWRpYVNhbXBsZTo6Y3JlYXRlKHNhbXBsZUJveCkpOwogfQogCiB2b2lkIE1vY2tTb3VyY2VC
dWZmZXJQcml2YXRlOjphYm9ydCgpCkBAIC0yMzksMjIgKzIzOCwyMSBAQCB2b2lkIE1vY2tTb3Vy
Y2VCdWZmZXJQcml2YXRlOjpzZXRBY3RpdmUoYm9vbCBpc0FjdGl2ZSkKICAgICAgICAgbV9tZWRp
YVNvdXJjZS0+c291cmNlQnVmZmVyUHJpdmF0ZURpZENoYW5nZUFjdGl2ZVN0YXRlKHRoaXMsIGlz
QWN0aXZlKTsKIH0KIAotVmVjdG9yPFN0cmluZz4gTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmVu
cXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoQXRvbWljU3RyaW5nKQorVmVjdG9yPFN0cmluZz4gTW9j
a1NvdXJjZUJ1ZmZlclByaXZhdGU6OmVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoY29uc3QgQXRv
bWljU3RyaW5nJikKIHsKICAgICByZXR1cm4gbV9lbnF1ZXVlZFNhbXBsZXM7CiB9CiAKLXZvaWQg
TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNh
bXBsZT4gcHJwU2FtcGxlLCBBdG9taWNTdHJpbmcpCit2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2
YXRlOjplbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0IEF0b21p
Y1N0cmluZyYpCiB7Ci0gICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBzYW1wbGUgPSBwcnBTYW1wbGU7
Ci0gICAgaWYgKCFtX21lZGlhU291cmNlIHx8ICFzYW1wbGUpCisgICAgaWYgKCFtX21lZGlhU291
cmNlKQogICAgICAgICByZXR1cm47CiAKICAgICBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBs
ZSA9IHNhbXBsZS0+cGxhdGZvcm1TYW1wbGUoKTsKICAgICBpZiAocGxhdGZvcm1TYW1wbGUudHlw
ZSAhPSBQbGF0Zm9ybVNhbXBsZTo6TW9ja1NhbXBsZUJveFR5cGUpCiAgICAgICAgIHJldHVybjsK
IAotICAgIE1vY2tTYW1wbGVCb3gqIGJveCA9IHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5tb2NrU2Ft
cGxlQm94OworICAgIGF1dG8qIGJveCA9IHBsYXRmb3JtU2FtcGxlLnNhbXBsZS5tb2NrU2FtcGxl
Qm94OwogICAgIGlmICghYm94KQogICAgICAgICByZXR1cm47CiAKQEAgLTI2NiwzNyArMjY0LDMw
IEBAIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmVucXVldWVTYW1wbGUoUGFzc1JlZlB0
cjxNZWRpYVNhbXBsZT4gcHJwU2FtcGxlLCBBCiAgICAgaWYgKGJveC0+aXNEZWxheWVkKCkpCiAg
ICAgICAgIG1fbWVkaWFTb3VyY2UtPmluY3JlbWVudFRvdGFsRnJhbWVEZWxheUJ5KE1lZGlhVGlt
ZSgxLCAxKSk7CiAKLSAgICBtX2VucXVldWVkU2FtcGxlcy5hcHBlbmQodG9TdHJpbmcoc2FtcGxl
KSk7CisgICAgbV9lbnF1ZXVlZFNhbXBsZXMuYXBwZW5kKHRvU3RyaW5nKHNhbXBsZS5nZXQoKSkp
OwogfQogCiBib29sIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpoYXNWaWRlbygpIGNvbnN0CiB7
Ci0gICAgaWYgKCFtX2NsaWVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJu
IG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8odGhpcyk7CisgICAgcmV0dXJu
IG1fY2xpZW50ICYmIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8oKTsKIH0K
IAogYm9vbCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6aGFzQXVkaW8oKSBjb25zdAogewotICAg
IGlmICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBtX2Ns
aWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKHRoaXMpOworICAgIHJldHVybiBtX2Ns
aWVudCAmJiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKCk7CiB9CiAKLQog
TWVkaWFUaW1lIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpmYXN0U2Vla1RpbWVGb3JNZWRpYVRp
bWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZlVGhyZXNo
b2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKQogewogICAgIGlmIChtX2Ns
aWVudCkKLSAgICAgICAgcmV0dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNl
ZWtUaW1lRm9yTWVkaWFUaW1lKHRoaXMsIHRpbWUsIG5lZ2F0aXZlVGhyZXNob2xkLCBwb3NpdGl2
ZVRocmVzaG9sZCk7CisgICAgICAgIHJldHVybiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0
ZUZhc3RTZWVrVGltZUZvck1lZGlhVGltZSh0aW1lLCBuZWdhdGl2ZVRocmVzaG9sZCwgcG9zaXRp
dmVUaHJlc2hvbGQpOwogICAgIHJldHVybiB0aW1lOwogfQogCiB2b2lkIE1vY2tTb3VyY2VCdWZm
ZXJQcml2YXRlOjpzZWVrVG9UaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKIHsKICAgICBpZiAo
bV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGlt
ZSh0aGlzLCB0aW1lKTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVTZWVr
VG9UaW1lKHRpbWUpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmgK
aW5kZXggNzQ0YjRjMTA3YzMxMDI2ZmE0MjlhOGYxMmQyNTYzYmZjMzYzMmQyOC4uNjE3NDVmYjVh
ODU4NTFmYWNmZDdlNzVkODMxYjNhMGVmYmRhNjY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1
ZmZlclByaXZhdGUuaApAQCAtMjMsMTUgKzIzLDEyIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwog
Ci0jaWZuZGVmIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlX2gKLSNkZWZpbmUgTW9ja1NvdXJjZUJ1
ZmZlclByaXZhdGVfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQog
CiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRp
bWUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY4LDEyICs2NSwxMiBAQCBwcml2YXRlOgogICAg
IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpIG92ZXJyaWRlOwog
Ci0gICAgdm9pZCBmbHVzaChBdG9taWNTdHJpbmcpIG92ZXJyaWRlIHsgbV9lbnF1ZXVlZFNhbXBs
ZXMuY2xlYXIoKTsgfQotICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2Ft
cGxlPiwgQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKLSAgICBib29sIGlzUmVhZHlGb3JNb3JlU2Ft
cGxlcyhBdG9taWNTdHJpbmcpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIGZs
dXNoKGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlIHsgbV9lbnF1ZXVlZFNhbXBsZXMuY2xl
YXIoKTsgfQorICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOworICAgIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVz
KGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lk
IHNldEFjdGl2ZShib29sKSBvdmVycmlkZTsKIAotICAgIFZlY3RvcjxTdHJpbmc+IGVucXVldWVk
U2FtcGxlc0ZvclRyYWNrSUQoQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKKyAgICBWZWN0b3I8U3Ry
aW5nPiBlbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJy
aWRlOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IE1v
Y2tJbml0aWFsaXphdGlvbkJveCYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVNhbXBsZShjb25zdCBN
b2NrU2FtcGxlQm94Jik7CkBAIC04OCw2ICs4NSwzIEBAIHByaXZhdGU6CiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotCi0jZW5kaWYKLQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1
Z0luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bi5jcHAKaW5kZXggMzNmZTQzOTYwMmNjZDA3NTBhZTNjM2NiMGM0ZDc4MGNmNzFiZWM4My4uOGVm
NDg5ZDc4MjZkY2MwMTMxYmIzMmRjZTliYjYzNTQzODllOGE4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCkBAIC04Miwx
MyArODIsMTMgQEAgdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6bGF5b3V0KCkKICAgICB2
aWV3KCkuZnJhbWVWaWV3KCkuYWRkRW1iZWRkZWRPYmplY3RUb1VwZGF0ZSgqdGhpcyk7CiB9CiAK
LXZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8
SW1hZ2U+IGltYWdlKQordm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6dXBkYXRlU25hcHNo
b3QoSW1hZ2UqIGltYWdlKQogewogICAgIC8vIFplcm8tc2l6ZSBwbHVnaW5zIHdpbGwgaGF2ZSBu
byBpbWFnZS4KICAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3NuYXBz
aG90UmVzb3VyY2UtPnNldENhY2hlZEltYWdlKG5ldyBDYWNoZWRJbWFnZShpbWFnZS5nZXQoKSwg
dmlldygpLmZyYW1lVmlldygpLmZyYW1lKCkucGFnZSgpLT5zZXNzaW9uSUQoKSkpOworICAgIG1f
c25hcHNob3RSZXNvdXJjZS0+c2V0Q2FjaGVkSW1hZ2UobmV3IENhY2hlZEltYWdlKGltYWdlLCB2
aWV3KCkuZnJhbWVWaWV3KCkuZnJhbWUoKS5wYWdlKCktPnNlc3Npb25JRCgpKSk7CiAgICAgcmVw
YWludCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbi5oCmluZGV4IDEzNGRiODMzYjc5OGVlNWMzN2IxYmEyN2RhNTQ4ZmM1NDNl
Zjg2NDcuLmMxNzk3YTBkNjIzMWVjOTg2ZjFkYzJkMzAwZWFlZWNmMjE1ZTU2NzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCkBA
IC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKIAogICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmIHBs
dWdJbkltYWdlRWxlbWVudCgpIGNvbnN0OwogCi0gICAgdm9pZCB1cGRhdGVTbmFwc2hvdChQYXNz
UmVmUHRyPEltYWdlPik7CisgICAgdm9pZCB1cGRhdGVTbmFwc2hvdChJbWFnZSopOwogCiAgICAg
dm9pZCBoYW5kbGVFdmVudChFdmVudCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1l
bnQuaAppbmRleCA4YjdkOTI0NTY0YTY0ZjAxYzk2ZDBiZTI0MzA4Y2VhYTk4NmQxNmU5Li44ZGQw
ZmQ4ZTM4MjE0OGE0YTU0MDIzYjM0ZGNlNzJjZWIzOWIyZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTY3JpcHRFbGVtZW50LmgKQEAgLTI5LDEzICsyOSwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBTVkdVUklSZWZlcmVuY2UKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBTY3JpcHRFbGVt
ZW50IHsKK2NsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudCwg
cHVibGljIFNWR1VSSVJlZmVyZW5jZSwgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNWR1Nj
cmlwdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29s
IHdhc0luc2VydGVkQnlQYXJzZXIpOwogCisgICAgdXNpbmcgU1ZHRWxlbWVudDo6cmVmOworICAg
IHVzaW5nIFNWR0VsZW1lbnQ6OmRlcmVmOworCiBwcml2YXRlOgogICAgIFNWR1NjcmlwdEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFy
c2VyLCBib29sIGFscmVhZHlTdGFydGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFy
c2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCA5MjYwNWZjMDIzNWM3YWVmYmU3NmFjODYx
ZTBmODVmNmU4YTVkYThmLi4xNzVhNTlmZTVkNTJiMzAzZTA3MTNkMDNhY2ExY2MyZGNmOTQ5MGEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNw
cApAQCAtMjM3LDggKzIzNyw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6Om5vdGlmeUZpbmlz
aGVkKFBlbmRpbmdTY3JpcHQmIHBlbmRpbmdTY3JpcHQpCiAgICAgbV9wZW5kaW5nU2NyaXB0ID0g
bnVsbHB0cjsKICAgICBwZW5kaW5nU2NyaXB0LmNsZWFyQ2xpZW50KCk7CiAKLSAgICBhdXRvJiBz
Y3JpcHRFbGVtZW50ID0gKnRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJnBlbmRpbmdTY3JpcHQu
ZWxlbWVudCgpKTsKLSAgICBzY3JpcHRFbGVtZW50LmV4ZWN1dGVQZW5kaW5nU2NyaXB0KHBlbmRp
bmdTY3JpcHQpOworICAgIHBlbmRpbmdTY3JpcHQuZWxlbWVudCgpLmV4ZWN1dGVQZW5kaW5nU2Ny
aXB0KHBlbmRpbmdTY3JpcHQpOwogCiAgICAgaWYgKCFpc0RldGFjaGVkKCkgJiYgIW1fcmVxdWVz
dGluZ1NjcmlwdCkKICAgICAgICAgcmVzdW1lUGFyc2luZygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvU291cmNl
L1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCmluZGV4IDcw
Njc2NzZkZDE3YTc0ZDllNDI3MjlkM2QyOWQzZGQ4ZThhN2Y4Y2UuLmZlNDJhMmJjMmNmODRkYzNj
YTY3MDg2ZjM3Y2RkZTkwZWY2ZDA3Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTc5OSw4ICs3OTksNyBA
QCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpzdGFydEVsZW1lbnROcyhjb25zdCB4bWxDaGFyKiB4
bWxMb2NhbE5hbWUsIGNvbnN0IHhtbENoYQogCiAgICAgbmV3RWxlbWVudC0+YmVnaW5QYXJzaW5n
Q2hpbGRyZW4oKTsKIAotICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSB0b1Njcmlw
dEVsZW1lbnRJZlBvc3NpYmxlKG5ld0VsZW1lbnQucHRyKCkpOwotICAgIGlmIChzY3JpcHRFbGVt
ZW50KQorICAgIGlmIChpc1NjcmlwdEVsZW1lbnQobmV3RWxlbWVudC5nZXQoKSkpCiAgICAgICAg
IG1fc2NyaXB0U3RhcnRQb3NpdGlvbiA9IHRleHRQb3NpdGlvbigpOwogCiAgICAgbV9jdXJyZW50
Tm9kZS0+cGFyc2VyQXBwZW5kQ2hpbGQobmV3RWxlbWVudCk7CkBAIC04NDMsNyArODQyLDcgQEAg
dm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKCkKICAgICBpZiAoaGFja0Fyb3Vu
ZExpYlhNTEVudGl0eVBhcnNpbmdCdWcoKSAmJiBjb250ZXh0KCktPmRlcHRoIDw9IGRlcHRoVHJp
Z2dlcmluZ0VudGl0eUV4cGFuc2lvbigpKQogICAgICAgICBzZXREZXB0aFRyaWdnZXJpbmdFbnRp
dHlFeHBhbnNpb24oLTEpOwogCi0gICAgaWYgKCFzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKHBh
cnNlckNvbnRlbnRQb2xpY3koKSkgJiYgaXM8RWxlbWVudD4oKm5vZGUpICYmIHRvU2NyaXB0RWxl
bWVudElmUG9zc2libGUoZG93bmNhc3Q8RWxlbWVudD4obm9kZS5nZXQoKSkpKSB7CisgICAgaWYg
KCFzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKHBhcnNlckNvbnRlbnRQb2xpY3koKSkgJiYgaXM8
RWxlbWVudD4oKm5vZGUpICYmIGlzU2NyaXB0RWxlbWVudChkb3duY2FzdDxFbGVtZW50Pigqbm9k
ZSkpKSB7CiAgICAgICAgIHBvcEN1cnJlbnROb2RlKCk7CiAgICAgICAgIG5vZGUtPnJlbW92ZSgp
OwogICAgICAgICByZXR1cm47CkBAIC04NTQsNyArODUzLDcgQEAgdm9pZCBYTUxEb2N1bWVudFBh
cnNlcjo6ZW5kRWxlbWVudE5zKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEVsZW1l
bnQmIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7CisgICAgYXV0byYgZWxlbWVu
dCA9IGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKTsKIAogICAgIC8vIFRoZSBlbGVtZW50J3MgcGFy
ZW50IG1heSBoYXZlIGFscmVhZHkgYmVlbiByZW1vdmVkIGZyb20gZG9jdW1lbnQuCiAgICAgLy8g
UGFyc2luZyBjb250aW51ZXMgaW4gdGhpcyBjYXNlLCBidXQgc2NyaXB0cyBhcmVuJ3QgZXhlY3V0
ZWQuCkBAIC04NjMsOCArODYyLDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVu
dE5zKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlw
dEVsZW1lbnQgPSB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZlbGVtZW50KTsKLSAgICBpZiAo
IXNjcmlwdEVsZW1lbnQpIHsKKyAgICBpZiAoIWlzU2NyaXB0RWxlbWVudChlbGVtZW50KSkgewog
ICAgICAgICBwb3BDdXJyZW50Tm9kZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtODcz
LDE1ICs4NzEsMTYgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKCkKICAg
ICBBU1NFUlQoIW1fcGVuZGluZ1NjcmlwdCk7CiAgICAgbV9yZXF1ZXN0aW5nU2NyaXB0ID0gdHJ1
ZTsKIAotICAgIGlmIChzY3JpcHRFbGVtZW50LT5wcmVwYXJlU2NyaXB0KG1fc2NyaXB0U3RhcnRQ
b3NpdGlvbiwgU2NyaXB0RWxlbWVudDo6QWxsb3dMZWdhY3lUeXBlSW5UeXBlQXR0cmlidXRlKSkg
eworICAgIGF1dG8mIHNjcmlwdEVsZW1lbnQgPSBkb3duY2FzdFNjcmlwdEVsZW1lbnQoZWxlbWVu
dCk7CisgICAgaWYgKHNjcmlwdEVsZW1lbnQucHJlcGFyZVNjcmlwdChtX3NjcmlwdFN0YXJ0UG9z
aXRpb24sIFNjcmlwdEVsZW1lbnQ6OkFsbG93TGVnYWN5VHlwZUluVHlwZUF0dHJpYnV0ZSkpIHsK
ICAgICAgICAgLy8gRklYTUU6IFNjcmlwdCBleGVjdXRpb24gc2hvdWxkIGJlIHNoYXJlZCBiZXR3
ZWVuCiAgICAgICAgIC8vIHRoZSBsaWJ4bWwyIGFuZCBRdCBYTUxEb2N1bWVudFBhcnNlciBpbXBs
ZW1lbnRhdGlvbnMuCiAKLSAgICAgICAgaWYgKHNjcmlwdEVsZW1lbnQtPnJlYWR5VG9CZVBhcnNl
ckV4ZWN1dGVkKCkpCi0gICAgICAgICAgICBzY3JpcHRFbGVtZW50LT5leGVjdXRlQ2xhc3NpY1Nj
cmlwdChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdEVsZW1lbnQtPnNjcmlwdENvbnRlbnQoKSwgZG9j
dW1lbnQoKS0+dXJsKCksIG1fc2NyaXB0U3RhcnRQb3NpdGlvbikpOwotICAgICAgICBlbHNlIGlm
IChzY3JpcHRFbGVtZW50LT53aWxsQmVQYXJzZXJFeGVjdXRlZCgpICYmIHNjcmlwdEVsZW1lbnQt
PmxvYWRhYmxlU2NyaXB0KCkpIHsKLSAgICAgICAgICAgIG1fcGVuZGluZ1NjcmlwdCA9IFBlbmRp
bmdTY3JpcHQ6OmNyZWF0ZShlbGVtZW50LCAqc2NyaXB0RWxlbWVudC0+bG9hZGFibGVTY3JpcHQo
KSk7Ci0gICAgICAgICAgICBtX3BlbmRpbmdTY3JpcHQtPnNldENsaWVudCh0aGlzKTsKKyAgICAg
ICAgaWYgKHNjcmlwdEVsZW1lbnQucmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQoKSkKKyAgICAgICAg
ICAgIHNjcmlwdEVsZW1lbnQuZXhlY3V0ZUNsYXNzaWNTY3JpcHQoU2NyaXB0U291cmNlQ29kZShz
Y3JpcHRFbGVtZW50LnNjcmlwdENvbnRlbnQoKSwgZG9jdW1lbnQoKS0+dXJsKCksIG1fc2NyaXB0
U3RhcnRQb3NpdGlvbikpOworICAgICAgICBlbHNlIGlmIChzY3JpcHRFbGVtZW50LndpbGxCZVBh
cnNlckV4ZWN1dGVkKCkgJiYgc2NyaXB0RWxlbWVudC5sb2FkYWJsZVNjcmlwdCgpKSB7CisgICAg
ICAgICAgICBtX3BlbmRpbmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxl
bWVudCwgKnNjcmlwdEVsZW1lbnQubG9hZGFibGVTY3JpcHQoKSk7CisgICAgICAgICAgICBtX3Bl
bmRpbmdTY3JpcHQtPnNldENsaWVudCgqdGhpcyk7CiAKICAgICAgICAgICAgIC8vIG1fcGVuZGlu
Z1NjcmlwdCB3aWxsIGJlIG51bGxwdHIgaWYgc2NyaXB0IHdhcyBhbHJlYWR5IGxvYWRlZCBhbmQg
c2V0Q2xpZW50KCkgZXhlY3V0ZWQgaXQuCiAgICAgICAgICAgICBpZiAobV9wZW5kaW5nU2NyaXB0
KQpAQCAtODk2LDE5ICs4OTUsMTkgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVu
dE5zKCkKICAgICBwb3BDdXJyZW50Tm9kZSgpOwogfQogCi12b2lkIFhNTERvY3VtZW50UGFyc2Vy
OjpjaGFyYWN0ZXJzKGNvbnN0IHhtbENoYXIqIHMsIGludCBsZW4pCit2b2lkIFhNTERvY3VtZW50
UGFyc2VyOjpjaGFyYWN0ZXJzKGNvbnN0IHhtbENoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgp
CiB7CiAgICAgaWYgKGlzU3RvcHBlZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9w
YXJzZXJQYXVzZWQpIHsKLSAgICAgICAgbV9wZW5kaW5nQ2FsbGJhY2tzLT5hcHBlbmRDaGFyYWN0
ZXJzQ2FsbGJhY2socywgbGVuKTsKKyAgICAgICAgbV9wZW5kaW5nQ2FsbGJhY2tzLT5hcHBlbmRD
aGFyYWN0ZXJzQ2FsbGJhY2soY2hhcmFjdGVycywgbGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIGlmICghbV9sZWFmVGV4dE5vZGUpCiAgICAgICAgIGNyZWF0ZUxlYWZUZXh0
Tm9kZSgpOwotICAgIG1fYnVmZmVyZWRUZXh0LmFwcGVuZChzLCBsZW4pOworICAgIG1fYnVmZmVy
ZWRUZXh0LmFwcGVuZChjaGFyYWN0ZXJzLCBsZW5ndGgpOwogfQogCiB2b2lkIFhNTERvY3VtZW50
UGFyc2VyOjplcnJvcihYTUxFcnJvcnM6OkVycm9yVHlwZSB0eXBlLCBjb25zdCBjaGFyKiBtZXNz
YWdlLCB2YV9saXN0IGFyZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGMxMDE5MjRlYTVmMWQ2NjI5M2IxOTlhMzAwMTI0
ZGIyYzIzZjU3YjQuLjlmYWQ3ZGRiYmZlNGNjMGYzMzI1YzliODlkMWZiYTNhZTFhODI1Y2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCkBAIC0xMjUsNyArMTI1LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHJ1bk9w
ZW5QYW5lbChXZWJDb3JlOjpGcmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+
KSBvdmVycmlkZTsKLSAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6
U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBs
b2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxl
SWNvbkxvYWRlciYpIG92ZXJyaWRlOwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICB2b2lkIHNl
dEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCBiY2Vh
ZmQ1MTE2NTMyMmIzYWRiYTc5NGMwYzFmNThkYjVjZTE5YThiLi5lOTdhOThmZThiMWI2NWRlNmYw
NThhMGI4OWNjZTgxZjkwZWM4MjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC03NTcsOSArNzU3LDkgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29z
ZXI+IGNob29zZXIpCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZp
bGVuYW1lcywgRmlsZUljb25Mb2FkZXIqIGljb25Mb2FkZXIpCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxl
SWNvbkxvYWRlciYgaWNvbkxvYWRlcikKIHsKLSAgICBpY29uTG9hZGVyLT5ub3RpZnlGaW5pc2hl
ZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7CisgICAgaWNvbkxvYWRlci5p
Y29uTG9hZGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogI2lm
ICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggN2YwZTc1ZGNiOTgy
M2JiMmRkYzEwY2U2MDkxZDE5NDRhZDkyMmE3NS4uNzc3ZTllMGE1OWE1OTNjNjI4N2Q2YWNlOWZm
NTlkZDNlM2IwZGIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNzYxLDkgKzc2MSw5
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNz
UmVmUHRyPEZpbGVDaG9vc2VyPiBwcnBGaWxlCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlJ1bk9wZW5QYW5lbCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9y
aWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIGZpbGVDaG9vc2VyLT5zZXR0aW5ncygpKSk7CiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9hZGVyKiBsb2FkZXIpCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVz
LCBGaWxlSWNvbkxvYWRlciYgbG9hZGVyKQogewotICAgIGxvYWRlci0+bm90aWZ5RmluaXNoZWQo
SWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOworICAgIGxvYWRlci5pY29uTG9h
ZGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogI2lmICFQTEFU
Rk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAwNWU0YjM1YTFkZTE4YjllYmVmODU0
MDUyNmFmYjJhNWVmZGZkNzZjLi5kNjRjZDk5MGI3OGViY2NhOTA0Zjc1NTc3OTg5YTMzNTY1NDE4
NWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE4Miw3ICsxODIsNyBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSosIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KSBvdmVycmlkZTsKLSAgICB2b2lkIGxvYWRJY29uRm9y
RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciopIG92
ZXJyaWRlOworICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYs
IFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJikgb3ZlcnJpZGU7CiAKICNpZiAhUExBVEZPUk0oSU9T
KQogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpIG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297921</attachid>
            <date>2017-01-02 19:02:03 -0800</date>
            <delta_ts>2017-01-03 23:42:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166635-20170102190038.patch</filename>
            <type>text/plain</type>
            <size>497838</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDAyNzFmYTc0NWFjMmE2MmEzN2E0NWFm
ZmI2Njk5MDUwYTAzYTQ0MTkuLjFhNjRlMTEzZjNlNDNkOTQ2ZjM4ZjhkOWMyMzEwNTRiYmQ2ZTFl
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDEtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRt
bCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpt
YWtlUmVmUHRyKTogQWRkZWQuCisKIDIwMTctMDEtMDIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgVXNlIFN0YXRpY1N0cmluZ0ltcGwgaW5zdGVhZCBv
ZiBTdGF0aWNBU0NJSUxpdGVyYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3ZTIzNzFlZGEyNDQxMjk2OGNkYzA3
NzU3NWVlY2I4Y2M5YmIyYjgwLi42NjM3NDhlOGU2MTY1YWFhNWNhZGMzODIxN2Y3NTYyOTM2OGEz
NzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDEtMDIgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9t
IHRoZSAiaHRtbCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZSBsb2cgeWV0OiBKdXN0
IHVwbG9hZGluZyBmb3IgRVdTIGZvciBub3cuCisKIDIwMTctMDEtMDIgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgVXNlIFN0YXRpY1N0cmluZ0ltcGwg
aW5zdGVhZCBvZiBTdGF0aWNBU0NJSUxpdGVyYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4ZjJlYzcz
MzcwMjAzZmEzN2ZkYzhmYjE0NGVhYTBiNjg0NDg5ZmU5Li4zYmYwN2YxNjY4OTg4ODUzNzQ0ZmU2
NDI0Y2YxN2RjMTMwZTEwNzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTctMDEtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92
ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRtbCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3Zl
bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNv
bkZvckZpbGVzKTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgcG9pbnRlci4KKwogMjAx
Ny0wMS0wMSAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRl
IHVzZXItdmlzaWJsZSBjb3B5cmlnaHQgc3RyaW5ncyB0byBpbmNsdWRlIDIwMTcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCBiODk1ZGMyNzhhM2FlMDAzNzExZWUwMzNhYjk3YTJkYzIzMDExYjhjLi45MjIzNDhiNzg4
NjQxMzVkZDRiZDdjZmZmZGE2NDhhZDA0ZGUwMDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTctMDEtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRtbCIgZGlyZWN0b3J5LCBvdGhlciBp
bXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMpOiBUYWtlIGEg
cmVmZXJlbmNlIGluc3RlYWQgb2YgYSBwb2ludGVyLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6IERpdHRvLgorCiAyMDE3LTAxLTAxICBKZWZm
IE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgdXNlci12aXNpYmxl
IGNvcHlyaWdodCBzdHJpbmdzIHRvIGluY2x1ZGUgMjAxNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvUmVmUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAppbmRleCA4N2ZjNDU2ZjM3
MDQwNDliZjRlY2NjYmYzYTRmZjU3Njk3OWU2NzdmLi5hZWQ3MmZmMGYwZDhjY2UyODU4NDFjNGEy
OTkyOGVmZWE3ZDFlNjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaApAQCAtMjQyLDEwICsyNDIsMjEgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gaW5saW5lIFJlZlB0cjxUPiBhZG9wdFJlZihUKiBwKQogICAgIHJldHVybiBS
ZWZQdHI8VD4ocCwgUmVmUHRyPFQ+OjpBZG9wdCk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+
IGlubGluZSBSZWZQdHI8VD4gbWFrZVJlZlB0cihUKiBwb2ludGVyKQoreworICAgIHJldHVybiBw
b2ludGVyOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVmUHRyPFQ+IG1ha2VS
ZWZQdHIoVCYgcmVmZXJlbmNlKQoreworICAgIHJldHVybiAmcmVmZXJlbmNlOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXVEYKIAogdXNpbmcgV1RGOjpSZWZQdHI7CiB1c2luZyBXVEY6OmFkb3B0UmVm
OwordXNpbmcgV1RGOjptYWtlUmVmUHRyOwogdXNpbmcgV1RGOjpzdGF0aWNfcG9pbnRlcl9jYXN0
OwogCiAjZW5kaWYgLy8gV1RGX1JlZlB0cl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDBjODUx
ZGU0MGYxM2VhYzdmYjljN2Q4MTFkMTdlYjIxMzRmZWZkMmIuLjg3NzhjYzQyNWI2NzEwN2U0ZmQz
ZDBjOTY1YjU5NjZkZWE1NDYwODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNzY0LDcgKzE3
NjQsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5j
cHAKICAgICBodG1sL1dlZWtJbnB1dFR5cGUuY3BwCiAKLSAgICBodG1sL2NhbnZhcy9BTkdMRUlu
c3RhbmNlZEFycmF5cy5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5jcHAKICAg
ICBodG1sL2NhbnZhcy9DYW52YXNQYXRoLmNwcAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1BhdHRl
cm4uY3BwCkBAIC0xNzczLDUxICsxNzcyLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKICAgICBodG1sL2NhbnZhcy9D
YW52YXNTdHlsZS5jcHAKICAgICBodG1sL2NhbnZhcy9ET01QYXRoLmNwcAotICAgIGh0bWwvY2Fu
dmFzL0VYVEJsZW5kTWluTWF4LmNwcAotICAgIGh0bWwvY2FudmFzL0VYVEZyYWdEZXB0aC5jcHAK
LSAgICBodG1sL2NhbnZhcy9FWFRTaGFkZXJUZXh0dXJlTE9ELmNwcAotICAgIGh0bWwvY2FudmFz
L0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAKLSAgICBodG1sL2NhbnZhcy9FWFRzUkdC
LmNwcAotICAgIGh0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuY3BwCi0gICAgaHRtbC9j
YW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAKLSAgICBodG1sL2NhbnZhcy9PRVNUZXh0
dXJlRmxvYXQuY3BwCi0gICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0TGluZWFyLmNwcAot
ICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXQuY3BwCi0gICAgaHRtbC9jYW52YXMv
T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5jcHAKLSAgICBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhB
cnJheU9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNw
cAotICAgIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVBVEMuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVBWUlRDLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVT
M1RDLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmNwcAotICAgIGh0bWwv
Y2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4
dE9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcAot
ICAgIGh0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcAotICAgIGh0bWwvY2FudmFzL1dl
YkdMRGVwdGhUZXh0dXJlLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMRHJhd0J1ZmZlcnMuY3Bw
Ci0gICAgaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwCi0gICAgaHRtbC9jYW52YXMvV2Vi
R0xGcmFtZWJ1ZmZlci5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwCi0gICAg
aHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTE9i
amVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCi0gICAgaHRtbC9jYW52
YXMvV2ViR0xRdWVyeS5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5jcHAK
LSAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCi0gICAgaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFNh
bXBsZXIuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuY3BwCi0gICAgaHRtbC9jYW52
YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xT
aGFyZWRPYmplY3QuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xTeW5jLmNwcAotICAgIGh0bWwv
Y2FudmFzL1dlYkdMVGV4dHVyZS5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZl
ZWRiYWNrLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9uLmNwcAotICAg
IGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwCi0gICAgaHRtbC9jYW52YXMv
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUy5jcHAKIAogICAgIGh0bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuY3Bw
CiAKQEAgLTMwNzgsNiArMzAzMiw3IEBAIGlmIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwv
Y2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXIuY3BwCiAgICAgICAgIGh0bWwvY2FudmFz
L09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0LmNwcAorICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEFueS5jcHAKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVBVEMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJl
c3NlZFRleHR1cmVQVlJUQy5jcHAKQEAgLTMwOTEsNyArMzA0Niw2IEBAIGlmIChFTkFCTEVfV0VC
R0wpCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRHJhd0J1ZmZlcnMuY3BwCiAgICAgICAgIGh0
bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEZy
YW1lYnVmZmVyLmNwcAotICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwCiAgICAg
ICAgIGh0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuY3BwCiAgICAgICAgIGh0bWwvY2FudmFz
L1dlYkdMT2JqZWN0LmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3Bw
CmluZGV4IDQzYzBkMDAwZDhlNzM1NTZmZWUxNzA0MmFmNjM5ZTA3OWVkOTkzMDQuLmRlOGQ3NmVh
YWNkNWFjOGJjNWUyMTRmZjQ5ODhkN2QyNmUyZjAyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC02OTMsMTggKzY5Mywx
OCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNv
dXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgIGJ1ZmZlci5hYm9ydElmVXBkYXRpbmcoKTsKIAogICAg
IC8vIDQuIExldCBTb3VyY2VCdWZmZXIgYXVkaW9UcmFja3MgbGlzdCBlcXVhbCB0aGUgQXVkaW9U
cmFja0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5IHNvdXJjZUJ1ZmZlci5hdWRpb1RyYWNrcy4KLSAg
ICBSZWZQdHI8QXVkaW9UcmFja0xpc3Q+IGF1ZGlvVHJhY2tzID0gYnVmZmVyLmF1ZGlvVHJhY2tz
KCk7CisgICAgYXV0byYgYXVkaW9UcmFja3MgPSBidWZmZXIuYXVkaW9UcmFja3MoKTsKIAogICAg
IC8vIDUuIElmIHRoZSBTb3VyY2VCdWZmZXIgYXVkaW9UcmFja3MgbGlzdCBpcyBub3QgZW1wdHks
IHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKGF1ZGlvVHJhY2tzLT5sZW5n
dGgoKSkgeworICAgIGlmIChhdWRpb1RyYWNrcy5sZW5ndGgoKSkgewogICAgICAgICAvLyA1LjEg
TGV0IEhUTUxNZWRpYUVsZW1lbnQgYXVkaW9UcmFja3MgbGlzdCBlcXVhbCB0aGUgQXVkaW9UcmFj
a0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5IHRoZSBhdWRpb1RyYWNrcwogICAgICAgICAvLyBhdHRy
aWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgICAgIC8vIDUuMiBMZXQgdGhlIHJl
bW92ZWQgZW5hYmxlZCBhdWRpbyB0cmFjayBmbGFnIGVxdWFsIGZhbHNlLgogICAgICAgICBib29s
IHJlbW92ZWRFbmFibGVkQXVkaW9UcmFjayA9IGZhbHNlOwogCiAgICAgICAgIC8vIDUuMyBGb3Ig
ZWFjaCBBdWRpb1RyYWNrIG9iamVjdCBpbiB0aGUgU291cmNlQnVmZmVyIGF1ZGlvVHJhY2tzIGxp
c3QsIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICB3aGlsZSAoYXVkaW9UcmFja3Mt
Pmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiB0cmFjayA9ICphdWRpb1RyYWNrcy0+bGFz
dEl0ZW0oKTsKKyAgICAgICAgd2hpbGUgKGF1ZGlvVHJhY2tzLmxlbmd0aCgpKSB7CisgICAgICAg
ICAgICBhdXRvJiB0cmFjayA9ICphdWRpb1RyYWNrcy5sYXN0SXRlbSgpOwogCiAgICAgICAgICAg
ICAvLyA1LjMuMSBTZXQgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhlIEF1ZGlvVHJh
Y2sgb2JqZWN0IHRvIG51bGwuCiAgICAgICAgICAgICB0cmFjay5zZXRTb3VyY2VCdWZmZXIobnVs
bHB0cik7CkBAIC03MjMsNyArNzIzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6
OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICAgICAgICAgIC8v
IDUuMy41IFJlbW92ZSB0aGUgQXVkaW9UcmFjayBvYmplY3QgZnJvbSB0aGUgU291cmNlQnVmZmVy
IGF1ZGlvVHJhY2tzIGxpc3QuCiAgICAgICAgICAgICAvLyA1LjMuNiBRdWV1ZSBhIHRhc2sgdG8g
ZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgcmVtb3ZldHJhY2ssIHRoYXQgZG9lcyBub3QgYnVi
YmxlIGFuZCBpcyBub3QKICAgICAgICAgICAgIC8vIGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMg
dGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgU291cmNlQnVmZmVyIGF1ZGlvVHJhY2tz
IGxpc3QuCi0gICAgICAgICAgICBhdWRpb1RyYWNrcy0+cmVtb3ZlKHRyYWNrKTsKKyAgICAgICAg
ICAgIGF1ZGlvVHJhY2tzLnJlbW92ZSh0cmFjayk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyA1
LjQgSWYgdGhlIHJlbW92ZWQgZW5hYmxlZCBhdWRpbyB0cmFjayBmbGFnIGVxdWFscyB0cnVlLCB0
aGVuIHF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50CkBAIC03MzMsMTggKzczMywx
OCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNv
dXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgIH0KIAogICAgIC8vIDYuIExldCBTb3VyY2VCdWZmZXIg
dmlkZW9UcmFja3MgbGlzdCBlcXVhbCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0IHJldHVybmVk
IGJ5IHNvdXJjZUJ1ZmZlci52aWRlb1RyYWNrcy4KLSAgICBSZWZQdHI8VmlkZW9UcmFja0xpc3Q+
IHZpZGVvVHJhY2tzID0gYnVmZmVyLnZpZGVvVHJhY2tzKCk7CisgICAgYXV0byYgdmlkZW9UcmFj
a3MgPSBidWZmZXIudmlkZW9UcmFja3MoKTsKIAogICAgIC8vIDcuIElmIHRoZSBTb3VyY2VCdWZm
ZXIgdmlkZW9UcmFja3MgbGlzdCBpcyBub3QgZW1wdHksIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcg
c3RlcHM6Ci0gICAgaWYgKHZpZGVvVHJhY2tzLT5sZW5ndGgoKSkgeworICAgIGlmICh2aWRlb1Ry
YWNrcy5sZW5ndGgoKSkgewogICAgICAgICAvLyA3LjEgTGV0IEhUTUxNZWRpYUVsZW1lbnQgdmlk
ZW9UcmFja3MgbGlzdCBlcXVhbCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5
IHRoZSB2aWRlb1RyYWNrcwogICAgICAgICAvLyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVs
ZW1lbnQuCiAgICAgICAgIC8vIDcuMiBMZXQgdGhlIHJlbW92ZWQgc2VsZWN0ZWQgdmlkZW8gdHJh
Y2sgZmxhZyBlcXVhbCBmYWxzZS4KICAgICAgICAgYm9vbCByZW1vdmVkU2VsZWN0ZWRWaWRlb1Ry
YWNrID0gZmFsc2U7CiAKICAgICAgICAgLy8gNy4zIEZvciBlYWNoIFZpZGVvVHJhY2sgb2JqZWN0
IGluIHRoZSBTb3VyY2VCdWZmZXIgdmlkZW9UcmFja3MgbGlzdCwgcnVuIHRoZSBmb2xsb3dpbmcg
c3RlcHM6Ci0gICAgICAgIHdoaWxlICh2aWRlb1RyYWNrcy0+bGVuZ3RoKCkpIHsKLSAgICAgICAg
ICAgIGF1dG8mIHRyYWNrID0gKnZpZGVvVHJhY2tzLT5sYXN0SXRlbSgpOworICAgICAgICB3aGls
ZSAodmlkZW9UcmFja3MubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHRyYWNrID0gKnZp
ZGVvVHJhY2tzLmxhc3RJdGVtKCk7CiAKICAgICAgICAgICAgIC8vIDcuMy4xIFNldCB0aGUgc291
cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGUgVmlkZW9UcmFjayBvYmplY3QgdG8gbnVsbC4KICAg
ICAgICAgICAgIHRyYWNrLnNldFNvdXJjZUJ1ZmZlcihudWxscHRyKTsKQEAgLTc2Myw3ICs3NjMs
NyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNv
dXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgICAgICAgICAgLy8gNy4zLjUgUmVtb3ZlIHRoZSBWaWRl
b1RyYWNrIG9iamVjdCBmcm9tIHRoZSBTb3VyY2VCdWZmZXIgdmlkZW9UcmFja3MgbGlzdC4KICAg
ICAgICAgICAgIC8vIDcuMy42IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBu
YW1lZCByZW1vdmV0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzIG5vdAogICAgICAg
ICAgICAgLy8gY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZh
Y2UsIGF0IHRoZSBTb3VyY2VCdWZmZXIgdmlkZW9UcmFja3MgbGlzdC4KLSAgICAgICAgICAgIHZp
ZGVvVHJhY2tzLT5yZW1vdmUodHJhY2spOworICAgICAgICAgICAgdmlkZW9UcmFja3MucmVtb3Zl
KHRyYWNrKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIDcuNCBJZiB0aGUgcmVtb3ZlZCBzZWxl
Y3RlZCB2aWRlbyB0cmFjayBmbGFnIGVxdWFscyB0cnVlLCB0aGVuIHF1ZXVlIGEgdGFzayB0byBm
aXJlIGEgc2ltcGxlIGV2ZW50CkBAIC03NzMsMTggKzc3MywxOCBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciYgYnVmZmVyKQog
ICAgIH0KIAogICAgIC8vIDguIExldCBTb3VyY2VCdWZmZXIgdGV4dFRyYWNrcyBsaXN0IGVxdWFs
IHRoZSBUZXh0VHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSBzb3VyY2VCdWZmZXIudGV4dFRy
YWNrcy4KLSAgICBSZWZQdHI8VGV4dFRyYWNrTGlzdD4gdGV4dFRyYWNrcyA9IGJ1ZmZlci50ZXh0
VHJhY2tzKCk7CisgICAgYXV0byYgdGV4dFRyYWNrcyA9IGJ1ZmZlci50ZXh0VHJhY2tzKCk7CiAK
ICAgICAvLyA5LiBJZiB0aGUgU291cmNlQnVmZmVyIHRleHRUcmFja3MgbGlzdCBpcyBub3QgZW1w
dHksIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKHRleHRUcmFja3MtPmxl
bmd0aCgpKSB7CisgICAgaWYgKHRleHRUcmFja3MubGVuZ3RoKCkpIHsKICAgICAgICAgLy8gOS4x
IExldCBIVE1MTWVkaWFFbGVtZW50IHRleHRUcmFja3MgbGlzdCBlcXVhbCB0aGUgVGV4dFRyYWNr
TGlzdCBvYmplY3QgcmV0dXJuZWQgYnkgdGhlIHRleHRUcmFja3MKICAgICAgICAgLy8gYXR0cmli
dXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAgICAgICAvLyA5LjIgTGV0IHRoZSByZW1v
dmVkIGVuYWJsZWQgdGV4dCB0cmFjayBmbGFnIGVxdWFsIGZhbHNlLgogICAgICAgICBib29sIHJl
bW92ZWRFbmFibGVkVGV4dFRyYWNrID0gZmFsc2U7CiAKICAgICAgICAgLy8gOS4zIEZvciBlYWNo
IFRleHRUcmFjayBvYmplY3QgaW4gdGhlIFNvdXJjZUJ1ZmZlciB0ZXh0VHJhY2tzIGxpc3QsIHJ1
biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICB3aGlsZSAodGV4dFRyYWNrcy0+bGVuZ3Ro
KCkpIHsKLSAgICAgICAgICAgIGF1dG8mIHRyYWNrID0gKnRleHRUcmFja3MtPmxhc3RJdGVtKCk7
CisgICAgICAgIHdoaWxlICh0ZXh0VHJhY2tzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRv
JiB0cmFjayA9ICp0ZXh0VHJhY2tzLmxhc3RJdGVtKCk7CiAKICAgICAgICAgICAgIC8vIDkuMy4x
IFNldCB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGUgVGV4dFRyYWNrIG9iamVjdCB0
byBudWxsLgogICAgICAgICAgICAgdHJhY2suc2V0U291cmNlQnVmZmVyKG51bGxwdHIpOwpAQCAt
ODAzLDcgKzgwMyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3Vy
Y2VCdWZmZXIoU291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgICAgICAgICAvLyA5LjMuNSBSZW1v
dmUgdGhlIFRleHRUcmFjayBvYmplY3QgZnJvbSB0aGUgU291cmNlQnVmZmVyIHRleHRUcmFja3Mg
bGlzdC4KICAgICAgICAgICAgIC8vIDkuMy42IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3Rl
ZCBldmVudCBuYW1lZCByZW1vdmV0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzIG5v
dAogICAgICAgICAgICAgLy8gY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVu
dCBpbnRlcmZhY2UsIGF0IHRoZSBTb3VyY2VCdWZmZXIgdGV4dFRyYWNrcyBsaXN0LgotICAgICAg
ICAgICAgdGV4dFRyYWNrcy0+cmVtb3ZlKHRyYWNrKTsKKyAgICAgICAgICAgIHRleHRUcmFja3Mu
cmVtb3ZlKHRyYWNrKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIDkuNCBJZiB0aGUgcmVtb3Zl
ZCBlbmFibGVkIHRleHQgdHJhY2sgZmxhZyBlcXVhbHMgdHJ1ZSwgdGhlbiBxdWV1ZSBhIHRhc2sg
dG8gZmlyZSBhIHNpbXBsZSBldmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IDdmZWU3ZTYwYjIyZTQ0ODM0MWNhYTA5
YWQ5ODk5NjgwOWE1ZTQyNmMuLjJlMTRiZTJjOTZjMzVmZDYxMzk3ZTBhN2E2NTU5NTY5ZDkzOWIw
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJj
ZUJ1ZmZlci5jcHAKQEAgLTQyMSw3ICs0MjEsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c2Vla1Rv
VGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUpCiAgICAgfQogfQogCi1NZWRpYVRpbWUgU291cmNl
QnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKFNvdXJj
ZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHRhcmdldFRpbWUsIGNvbnN0IE1lZGlh
VGltZSYgbmVnYXRpdmVUaHJlc2hvbGQsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpdmVUaHJlc2hv
bGQpCitNZWRpYVRpbWUgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtU
aW1lRm9yTWVkaWFUaW1lKGNvbnN0IE1lZGlhVGltZSYgdGFyZ2V0VGltZSwgY29uc3QgTWVkaWFU
aW1lJiBuZWdhdGl2ZVRocmVzaG9sZCwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRocmVzaG9s
ZCkKIHsKICAgICBNZWRpYVRpbWUgc2Vla1RpbWUgPSB0YXJnZXRUaW1lOwogICAgIE1lZGlhVGlt
ZSBsb3dlckJvdW5kVGltZSA9IHRhcmdldFRpbWUgLSBuZWdhdGl2ZVRocmVzaG9sZDsKQEAgLTU2
Niw3ICs1NjYsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6YXBwZW5kQnVmZmVyVGltZXJGaXJlZCgp
CiAKICAgICAvLyAxLiBMb29wIFRvcDogSWYgdGhlIGlucHV0IGJ1ZmZlciBpcyBlbXB0eSwgdGhl
biBqdW1wIHRvIHRoZSBuZWVkIG1vcmUgZGF0YSBzdGVwIGJlbG93LgogICAgIGlmICghbV9wZW5k
aW5nQXBwZW5kRGF0YS5zaXplKCkpIHsKLSAgICAgICAgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVu
ZENvbXBsZXRlKCZtX3ByaXZhdGUuZ2V0KCksIEFwcGVuZFN1Y2NlZWRlZCk7CisgICAgICAgIHNv
dXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShBcHBlbmRTdWNjZWVkZWQpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC01NzQsNyArNTc0LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6
OmFwcGVuZEJ1ZmZlclRpbWVyRmlyZWQoKQogICAgIG1fcGVuZGluZ0FwcGVuZERhdGEuY2xlYXIo
KTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21w
bGV0ZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXBwZW5kUmVzdWx0IHJlc3VsdCkKK3ZvaWQgU291
cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoQXBwZW5kUmVzdWx0
IHJlc3VsdCkKIHsKICAgICBpZiAoaXNSZW1vdmVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTYz
NSw3ICs2MzUsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVu
ZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBcHBlbgogICAgIExPRyhNZWRpYSwgIlNv
dXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKCVwKSAtIGJ1ZmZl
cmVkID0gJXMiLCB0aGlzLCB0b1N0cmluZyhtX2J1ZmZlcmVkLT5yYW5nZXMoKSkudXRmOCgpLmRh
dGEoKSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVj
ZWl2ZVJlbmRlcmluZ0Vycm9yKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBpbnQgZXJyb3IpCit2b2lk
IFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJv
cihpbnQgZXJyb3IpCiB7CiAjaWYgTE9HX0RJU0FCTEVECiAgICAgVU5VU0VEX1BBUkFNKGVycm9y
KTsKQEAgLTk0NSwzNSArOTQ1LDMyIEBAIHNpemVfdCBTb3VyY2VCdWZmZXI6Om1heGltdW1CdWZm
ZXJTaXplKCkgY29uc3QKICAgICBpZiAoaXNSZW1vdmVkKCkpCiAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgSFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCA9IG1fc291cmNlLT5tZWRpYUVsZW1lbnQo
KTsKKyAgICBhdXRvKiBlbGVtZW50ID0gbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpOwogICAgIGlm
ICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICByZXR1cm4gZWxlbWVudC0+bWF4
aW11bVNvdXJjZUJ1ZmZlclNpemUoKnRoaXMpOwogfQogCi1WaWRlb1RyYWNrTGlzdCogU291cmNl
QnVmZmVyOjp2aWRlb1RyYWNrcygpCitWaWRlb1RyYWNrTGlzdCYgU291cmNlQnVmZmVyOjp2aWRl
b1RyYWNrcygpCiB7CiAgICAgaWYgKCFtX3ZpZGVvVHJhY2tzKQotICAgICAgICBtX3ZpZGVvVHJh
Y2tzID0gVmlkZW9UcmFja0xpc3Q6OmNyZWF0ZShtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCksIEFj
dGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLQotICAgIHJldHVybiBt
X3ZpZGVvVHJhY2tzLmdldCgpOworICAgICAgICBtX3ZpZGVvVHJhY2tzID0gVmlkZW9UcmFja0xp
c3Q6OmNyZWF0ZShtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCksIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSk7CisgICAgcmV0dXJuICptX3ZpZGVvVHJhY2tzOwogfQogCi1BdWRpb1RyYWNrTGlzdCog
U291cmNlQnVmZmVyOjphdWRpb1RyYWNrcygpCitBdWRpb1RyYWNrTGlzdCYgU291cmNlQnVmZmVy
OjphdWRpb1RyYWNrcygpCiB7CiAgICAgaWYgKCFtX2F1ZGlvVHJhY2tzKQotICAgICAgICBtX2F1
ZGlvVHJhY2tzID0gQXVkaW9UcmFja0xpc3Q6OmNyZWF0ZShtX3NvdXJjZS0+bWVkaWFFbGVtZW50
KCksIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLQotICAgIHJl
dHVybiBtX2F1ZGlvVHJhY2tzLmdldCgpOworICAgICAgICBtX2F1ZGlvVHJhY2tzID0gQXVkaW9U
cmFja0xpc3Q6OmNyZWF0ZShtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCksIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSk7CisgICAgcmV0dXJuICptX2F1ZGlvVHJhY2tzOwogfQogCi1UZXh0VHJhY2tM
aXN0KiBTb3VyY2VCdWZmZXI6OnRleHRUcmFja3MoKQorVGV4dFRyYWNrTGlzdCYgU291cmNlQnVm
ZmVyOjp0ZXh0VHJhY2tzKCkKIHsKICAgICBpZiAoIW1fdGV4dFRyYWNrcykKLSAgICAgICAgbV90
ZXh0VHJhY2tzID0gVGV4dFRyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQo
KSwgQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0gICAgcmV0
dXJuIG1fdGV4dFRyYWNrcy5nZXQoKTsKKyAgICAgICAgbV90ZXh0VHJhY2tzID0gVGV4dFRyYWNr
TGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKTsKKyAgICByZXR1cm4gKm1fdGV4dFRyYWNrczsKIH0KIAogdm9pZCBTb3VyY2VCdWZm
ZXI6OnNldEFjdGl2ZShib29sIGFjdGl2ZSkKQEAgLTk4Nyw3ICs5ODQsNyBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlcjo6c2V0QWN0aXZlKGJvb2wgYWN0aXZlKQogICAgICAgICBtX3NvdXJjZS0+c291cmNl
QnVmZmVyRGlkQ2hhbmdlQWN0aXZlU3RhdGUoKnRoaXMsIGFjdGl2ZSk7CiB9CiAKLXZvaWQgU291
cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2Vn
bWVudChTb3VyY2VCdWZmZXJQcml2YXRlKiwgY29uc3QgSW5pdGlhbGl6YXRpb25TZWdtZW50JiBz
ZWdtZW50KQordm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZl
SW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYgc2VnbWVu
dCkKIHsKICAgICBpZiAoaXNSZW1vdmVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEwMjQsNDAg
KzEwMjEsNDAgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNl
aXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgICAgICAvLyAzLjIgQWRkIHRoZSBhcHByb3ByaWF0ZSB0cmFjayBkZXNj
cmlwdGlvbnMgZnJvbSB0aGlzIGluaXRpYWxpemF0aW9uIHNlZ21lbnQgdG8gZWFjaCBvZiB0aGUg
dHJhY2sgYnVmZmVycy4KLSAgICAgICAgQVNTRVJUKHNlZ21lbnQuYXVkaW9UcmFja3Muc2l6ZSgp
ID09IGF1ZGlvVHJhY2tzKCktPmxlbmd0aCgpKTsKKyAgICAgICAgQVNTRVJUKHNlZ21lbnQuYXVk
aW9UcmFja3Muc2l6ZSgpID09IGF1ZGlvVHJhY2tzKCkubGVuZ3RoKCkpOwogICAgICAgICBmb3Ig
KGF1dG8mIGF1ZGlvVHJhY2tJbmZvIDogc2VnbWVudC5hdWRpb1RyYWNrcykgewotICAgICAgICAg
ICAgaWYgKGF1ZGlvVHJhY2tzKCktPmxlbmd0aCgpID09IDEpIHsKLSAgICAgICAgICAgICAgICBh
dWRpb1RyYWNrcygpLT5pdGVtKDApLT5zZXRQcml2YXRlKGF1ZGlvVHJhY2tJbmZvLnRyYWNrKTsK
KyAgICAgICAgICAgIGlmIChhdWRpb1RyYWNrcygpLmxlbmd0aCgpID09IDEpIHsKKyAgICAgICAg
ICAgICAgICBhdWRpb1RyYWNrcygpLml0ZW0oMCktPnNldFByaXZhdGUoKmF1ZGlvVHJhY2tJbmZv
LnRyYWNrKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAotICAgICAg
ICAgICAgYXV0byBhdWRpb1RyYWNrID0gYXVkaW9UcmFja3MoKS0+Z2V0VHJhY2tCeUlkKGF1ZGlv
VHJhY2tJbmZvLnRyYWNrLT5pZCgpKTsKKyAgICAgICAgICAgIGF1dG8gYXVkaW9UcmFjayA9IGF1
ZGlvVHJhY2tzKCkuZ2V0VHJhY2tCeUlkKGF1ZGlvVHJhY2tJbmZvLnRyYWNrLT5pZCgpKTsKICAg
ICAgICAgICAgIEFTU0VSVChhdWRpb1RyYWNrKTsKLSAgICAgICAgICAgIGF1ZGlvVHJhY2stPnNl
dFByaXZhdGUoYXVkaW9UcmFja0luZm8udHJhY2spOworICAgICAgICAgICAgYXVkaW9UcmFjay0+
c2V0UHJpdmF0ZSgqYXVkaW9UcmFja0luZm8udHJhY2spOwogICAgICAgICB9CiAKLSAgICAgICAg
QVNTRVJUKHNlZ21lbnQudmlkZW9UcmFja3Muc2l6ZSgpID09IHZpZGVvVHJhY2tzKCktPmxlbmd0
aCgpKTsKKyAgICAgICAgQVNTRVJUKHNlZ21lbnQudmlkZW9UcmFja3Muc2l6ZSgpID09IHZpZGVv
VHJhY2tzKCkubGVuZ3RoKCkpOwogICAgICAgICBmb3IgKGF1dG8mIHZpZGVvVHJhY2tJbmZvIDog
c2VnbWVudC52aWRlb1RyYWNrcykgewotICAgICAgICAgICAgaWYgKHZpZGVvVHJhY2tzKCktPmxl
bmd0aCgpID09IDEpIHsKLSAgICAgICAgICAgICAgICB2aWRlb1RyYWNrcygpLT5pdGVtKDApLT5z
ZXRQcml2YXRlKHZpZGVvVHJhY2tJbmZvLnRyYWNrKTsKKyAgICAgICAgICAgIGlmICh2aWRlb1Ry
YWNrcygpLmxlbmd0aCgpID09IDEpIHsKKyAgICAgICAgICAgICAgICB2aWRlb1RyYWNrcygpLml0
ZW0oMCktPnNldFByaXZhdGUoKnZpZGVvVHJhY2tJbmZvLnRyYWNrKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byB2aWRlb1RyYWNrID0g
dmlkZW9UcmFja3MoKS0+Z2V0VHJhY2tCeUlkKHZpZGVvVHJhY2tJbmZvLnRyYWNrLT5pZCgpKTsK
KyAgICAgICAgICAgIGF1dG8gdmlkZW9UcmFjayA9IHZpZGVvVHJhY2tzKCkuZ2V0VHJhY2tCeUlk
KHZpZGVvVHJhY2tJbmZvLnRyYWNrLT5pZCgpKTsKICAgICAgICAgICAgIEFTU0VSVCh2aWRlb1Ry
YWNrKTsKLSAgICAgICAgICAgIHZpZGVvVHJhY2stPnNldFByaXZhdGUodmlkZW9UcmFja0luZm8u
dHJhY2spOworICAgICAgICAgICAgdmlkZW9UcmFjay0+c2V0UHJpdmF0ZSgqdmlkZW9UcmFja0lu
Zm8udHJhY2spOwogICAgICAgICB9CiAKLSAgICAgICAgQVNTRVJUKHNlZ21lbnQudGV4dFRyYWNr
cy5zaXplKCkgPT0gdGV4dFRyYWNrcygpLT5sZW5ndGgoKSk7CisgICAgICAgIEFTU0VSVChzZWdt
ZW50LnRleHRUcmFja3Muc2l6ZSgpID09IHRleHRUcmFja3MoKS5sZW5ndGgoKSk7CiAgICAgICAg
IGZvciAoYXV0byYgdGV4dFRyYWNrSW5mbyA6IHNlZ21lbnQudGV4dFRyYWNrcykgewotICAgICAg
ICAgICAgaWYgKHRleHRUcmFja3MoKS0+bGVuZ3RoKCkgPT0gMSkgewotICAgICAgICAgICAgICAg
IGRvd25jYXN0PEluYmFuZFRleHRUcmFjaz4oKnRleHRUcmFja3MoKS0+aXRlbSgwKSkuc2V0UHJp
dmF0ZSh0ZXh0VHJhY2tJbmZvLnRyYWNrKTsKKyAgICAgICAgICAgIGlmICh0ZXh0VHJhY2tzKCku
bGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgICAgIGRvd25jYXN0PEluYmFuZFRleHRUcmFj
az4oKnRleHRUcmFja3MoKS5pdGVtKDApKS5zZXRQcml2YXRlKCp0ZXh0VHJhY2tJbmZvLnRyYWNr
KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
YXV0byB0ZXh0VHJhY2sgPSB0ZXh0VHJhY2tzKCktPmdldFRyYWNrQnlJZCh0ZXh0VHJhY2tJbmZv
LnRyYWNrLT5pZCgpKTsKKyAgICAgICAgICAgIGF1dG8gdGV4dFRyYWNrID0gdGV4dFRyYWNrcygp
LmdldFRyYWNrQnlJZCh0ZXh0VHJhY2tJbmZvLnRyYWNrLT5pZCgpKTsKICAgICAgICAgICAgIEFT
U0VSVCh0ZXh0VHJhY2spOwotICAgICAgICAgICAgZG93bmNhc3Q8SW5iYW5kVGV4dFRyYWNrPigq
dGV4dFRyYWNrKS5zZXRQcml2YXRlKHRleHRUcmFja0luZm8udHJhY2spOworICAgICAgICAgICAg
ZG93bmNhc3Q8SW5iYW5kVGV4dFRyYWNrPigqdGV4dFRyYWNrKS5zZXRQcml2YXRlKCp0ZXh0VHJh
Y2tJbmZvLnRyYWNrKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIDMuMyBTZXQgdGhlIG5lZWQg
cmFuZG9tIGFjY2VzcyBwb2ludCBmbGFnIG9uIGFsbCB0cmFjayBidWZmZXJzIHRvIHRydWUuCkBA
IC0xMDc2LDE2ICsxMDczLDE0IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2
YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmCiAKICAgICAgICAg
Ly8gNS4yIEZvciBlYWNoIGF1ZGlvIHRyYWNrIGluIHRoZSBpbml0aWFsaXphdGlvbiBzZWdtZW50
LCBydW4gZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2tJbmZv
IDogc2VnbWVudC5hdWRpb1RyYWNrcykgewotICAgICAgICAgICAgQXVkaW9UcmFja1ByaXZhdGUq
IGF1ZGlvVHJhY2tQcml2YXRlID0gYXVkaW9UcmFja0luZm8udHJhY2suZ2V0KCk7Ci0KICAgICAg
ICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgc3RlcHMgNS4yLjEtNS4yLjguMSBhcyBwZXIgRWRp
dG9yJ3MgRHJhZnQgMDkgSmFudWFyeSAyMDE1LCBhbmQgcmVvcmRlciB0aGlzCiAgICAgICAgICAg
ICAvLyA1LjIuMSBMZXQgbmV3IGF1ZGlvIHRyYWNrIGJlIGEgbmV3IEF1ZGlvVHJhY2sgb2JqZWN0
LgogICAgICAgICAgICAgLy8gNS4yLjIgR2VuZXJhdGUgYSB1bmlxdWUgSUQgYW5kIGFzc2lnbiBp
dCB0byB0aGUgaWQgcHJvcGVydHkgb24gbmV3IHZpZGVvIHRyYWNrLgotICAgICAgICAgICAgYXV0
byBuZXdBdWRpb1RyYWNrID0gQXVkaW9UcmFjazo6Y3JlYXRlKHRoaXMsIGF1ZGlvVHJhY2tQcml2
YXRlKTsKKyAgICAgICAgICAgIGF1dG8gbmV3QXVkaW9UcmFjayA9IEF1ZGlvVHJhY2s6OmNyZWF0
ZSgqdGhpcywgKmF1ZGlvVHJhY2tJbmZvLnRyYWNrKTsKICAgICAgICAgICAgIG5ld0F1ZGlvVHJh
Y2stPnNldFNvdXJjZUJ1ZmZlcih0aGlzKTsKIAogICAgICAgICAgICAgLy8gNS4yLjMgSWYgYXVk
aW9UcmFja3MubGVuZ3RoIGVxdWFscyAwLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgot
ICAgICAgICAgICAgaWYgKCFhdWRpb1RyYWNrcygpLT5sZW5ndGgoKSkgeworICAgICAgICAgICAg
aWYgKCFhdWRpb1RyYWNrcygpLmxlbmd0aCgpKSB7CiAgICAgICAgICAgICAgICAgLy8gNS4yLjMu
MSBTZXQgdGhlIGVuYWJsZWQgcHJvcGVydHkgb24gbmV3IGF1ZGlvIHRyYWNrIHRvIHRydWUuCiAg
ICAgICAgICAgICAgICAgbmV3QXVkaW9UcmFjay0+c2V0RW5hYmxlZCh0cnVlKTsKIApAQCAtMTA5
Nyw3ICsxMDkyLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRS
ZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKICAgICAgICAgICAgIC8vIDUu
Mi41IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0cmFjaywg
dGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCiAgICAgICAgICAgICAvLyBub3QgY2FuY2VsYWJs
ZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZhY2UsIGF0IHRoZSBBdWRpb1Ry
YWNrTGlzdCBvYmplY3QKICAgICAgICAgICAgIC8vIHJlZmVyZW5jZWQgYnkgdGhlIGF1ZGlvVHJh
Y2tzIGF0dHJpYnV0ZSBvbiB0aGlzIFNvdXJjZUJ1ZmZlciBvYmplY3QuCi0gICAgICAgICAgICBh
dWRpb1RyYWNrcygpLT5hcHBlbmQobmV3QXVkaW9UcmFjay5jb3B5UmVmKCkpOworICAgICAgICAg
ICAgYXVkaW9UcmFja3MoKS5hcHBlbmQobmV3QXVkaW9UcmFjay5jb3B5UmVmKCkpOwogCiAgICAg
ICAgICAgICAvLyA1LjIuNiBBZGQgbmV3IGF1ZGlvIHRyYWNrIHRvIHRoZSBhdWRpb1RyYWNrcyBh
dHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgICAgICAgICAvLyA1LjIuNyBR
dWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgYWRkdHJhY2ssIHRoYXQg
ZG9lcyBub3QgYnViYmxlIGFuZCBpcwpAQCAtMTEwNyw3ICsxMTAyLDcgQEAgdm9pZCBTb3VyY2VC
dWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50
KFNvdXJjZUJ1ZmYKIAogICAgICAgICAgICAgLy8gNS4yLjggQ3JlYXRlIGEgbmV3IHRyYWNrIGJ1
ZmZlciB0byBzdG9yZSBjb2RlZCBmcmFtZXMgZm9yIHRoaXMgdHJhY2suCiAgICAgICAgICAgICBB
U1NFUlQoIW1fdHJhY2tCdWZmZXJNYXAuY29udGFpbnMobmV3QXVkaW9UcmFjay0+aWQoKSkpOwot
ICAgICAgICAgICAgVHJhY2tCdWZmZXImIHRyYWNrQnVmZmVyID0gbV90cmFja0J1ZmZlck1hcC5h
ZGQobmV3QXVkaW9UcmFjay0+aWQoKSwgVHJhY2tCdWZmZXIoKSkuaXRlcmF0b3ItPnZhbHVlOwor
ICAgICAgICAgICAgYXV0byYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVmZmVyTWFwLmFkZChuZXdB
dWRpb1RyYWNrLT5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFsdWU7CiAKICAgICAg
ICAgICAgIC8vIDUuMi45IEFkZCB0aGUgdHJhY2sgZGVzY3JpcHRpb24gZm9yIHRoaXMgdHJhY2sg
dG8gdGhlIHRyYWNrIGJ1ZmZlci4KICAgICAgICAgICAgIHRyYWNrQnVmZmVyLmRlc2NyaXB0aW9u
ID0gYXVkaW9UcmFja0luZm8uZGVzY3JpcHRpb247CkBAIC0xMTE3LDE2ICsxMTEyLDE0IEBAIHZv
aWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0
aW9uU2VnbWVudChTb3VyY2VCdWZmCiAKICAgICAgICAgLy8gNS4zIEZvciBlYWNoIHZpZGVvIHRy
YWNrIGluIHRoZSBpbml0aWFsaXphdGlvbiBzZWdtZW50LCBydW4gZm9sbG93aW5nIHN0ZXBzOgog
ICAgICAgICBmb3IgKGF1dG8mIHZpZGVvVHJhY2tJbmZvIDogc2VnbWVudC52aWRlb1RyYWNrcykg
ewotICAgICAgICAgICAgVmlkZW9UcmFja1ByaXZhdGUqIHZpZGVvVHJhY2tQcml2YXRlID0gdmlk
ZW9UcmFja0luZm8udHJhY2suZ2V0KCk7Ci0KICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgc3RlcHMgNS4zLjEtNS4zLjguMSBhcyBwZXIgRWRpdG9yJ3MgRHJhZnQgMDkgSmFudWFyeSAy
MDE1LCBhbmQgcmVvcmRlciB0aGlzCiAgICAgICAgICAgICAvLyA1LjMuMSBMZXQgbmV3IHZpZGVv
IHRyYWNrIGJlIGEgbmV3IFZpZGVvVHJhY2sgb2JqZWN0LgogICAgICAgICAgICAgLy8gNS4zLjIg
R2VuZXJhdGUgYSB1bmlxdWUgSUQgYW5kIGFzc2lnbiBpdCB0byB0aGUgaWQgcHJvcGVydHkgb24g
bmV3IHZpZGVvIHRyYWNrLgotICAgICAgICAgICAgYXV0byBuZXdWaWRlb1RyYWNrID0gVmlkZW9U
cmFjazo6Y3JlYXRlKHRoaXMsIHZpZGVvVHJhY2tQcml2YXRlKTsKKyAgICAgICAgICAgIGF1dG8g
bmV3VmlkZW9UcmFjayA9IFZpZGVvVHJhY2s6OmNyZWF0ZSgqdGhpcywgKnZpZGVvVHJhY2tJbmZv
LnRyYWNrKTsKICAgICAgICAgICAgIG5ld1ZpZGVvVHJhY2stPnNldFNvdXJjZUJ1ZmZlcih0aGlz
KTsKIAogICAgICAgICAgICAgLy8gNS4zLjMgSWYgdmlkZW9UcmFja3MubGVuZ3RoIGVxdWFscyAw
LCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICAgICAgaWYgKCF2aWRlb1Ry
YWNrcygpLT5sZW5ndGgoKSkgeworICAgICAgICAgICAgaWYgKCF2aWRlb1RyYWNrcygpLmxlbmd0
aCgpKSB7CiAgICAgICAgICAgICAgICAgLy8gNS4zLjMuMSBTZXQgdGhlIHNlbGVjdGVkIHByb3Bl
cnR5IG9uIG5ldyB2aWRlbyB0cmFjayB0byB0cnVlLgogICAgICAgICAgICAgICAgIG5ld1ZpZGVv
VHJhY2stPnNldFNlbGVjdGVkKHRydWUpOwogCkBAIC0xMTM4LDcgKzExMzEsNyBAQCB2b2lkIFNv
dXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNl
Z21lbnQoU291cmNlQnVmZgogICAgICAgICAgICAgLy8gNS4zLjUgUXVldWUgYSB0YXNrIHRvIGZp
cmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBh
bmQgaXMKICAgICAgICAgICAgIC8vIG5vdCBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBU
cmFja0V2ZW50IGludGVyZmFjZSwgYXQgdGhlIFZpZGVvVHJhY2tMaXN0IG9iamVjdAogICAgICAg
ICAgICAgLy8gcmVmZXJlbmNlZCBieSB0aGUgdmlkZW9UcmFja3MgYXR0cmlidXRlIG9uIHRoaXMg
U291cmNlQnVmZmVyIG9iamVjdC4KLSAgICAgICAgICAgIHZpZGVvVHJhY2tzKCktPmFwcGVuZChu
ZXdWaWRlb1RyYWNrLmNvcHlSZWYoKSk7CisgICAgICAgICAgICB2aWRlb1RyYWNrcygpLmFwcGVu
ZChuZXdWaWRlb1RyYWNrLmNvcHlSZWYoKSk7CiAKICAgICAgICAgICAgIC8vIDUuMy42IEFkZCBu
ZXcgdmlkZW8gdHJhY2sgdG8gdGhlIHZpZGVvVHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1l
ZGlhRWxlbWVudC4KICAgICAgICAgICAgIC8vIDUuMy43IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEg
dHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlz
CkBAIC0xMTQ4LDcgKzExNDEsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJp
dmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogCiAgICAgICAg
ICAgICAvLyA1LjMuOCBDcmVhdGUgYSBuZXcgdHJhY2sgYnVmZmVyIHRvIHN0b3JlIGNvZGVkIGZy
YW1lcyBmb3IgdGhpcyB0cmFjay4KICAgICAgICAgICAgIEFTU0VSVCghbV90cmFja0J1ZmZlck1h
cC5jb250YWlucyhuZXdWaWRlb1RyYWNrLT5pZCgpKSk7Ci0gICAgICAgICAgICBUcmFja0J1ZmZl
ciYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVmZmVyTWFwLmFkZChuZXdWaWRlb1RyYWNrLT5pZCgp
LCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFsdWU7CisgICAgICAgICAgICBhdXRvJiB0cmFj
a0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKG5ld1ZpZGVvVHJhY2stPmlkKCksIFRyYWNr
QnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKIAogICAgICAgICAgICAgLy8gNS4zLjkgQWRkIHRo
ZSB0cmFjayBkZXNjcmlwdGlvbiBmb3IgdGhpcyB0cmFjayB0byB0aGUgdHJhY2sgYnVmZmVyLgog
ICAgICAgICAgICAgdHJhY2tCdWZmZXIuZGVzY3JpcHRpb24gPSB2aWRlb1RyYWNrSW5mby5kZXNj
cmlwdGlvbjsKQEAgLTExNTgsMzMgKzExNTEsMzMgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJj
ZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYK
IAogICAgICAgICAvLyA1LjQgRm9yIGVhY2ggdGV4dCB0cmFjayBpbiB0aGUgaW5pdGlhbGl6YXRp
b24gc2VnbWVudCwgcnVuIGZvbGxvd2luZyBzdGVwczoKICAgICAgICAgZm9yIChhdXRvJiB0ZXh0
VHJhY2tJbmZvIDogc2VnbWVudC50ZXh0VHJhY2tzKSB7Ci0gICAgICAgICAgICBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlKiB0ZXh0VHJhY2tQcml2YXRlID0gdGV4dFRyYWNrSW5mby50cmFjay5nZXQo
KTsKKyAgICAgICAgICAgIGF1dG8mIHRleHRUcmFja1ByaXZhdGUgPSAqdGV4dFRyYWNrSW5mby50
cmFjazsKIAogICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBzdGVwcyA1LjQuMS01LjQu
OC4xIGFzIHBlciBFZGl0b3IncyBEcmFmdCAwOSBKYW51YXJ5IDIwMTUsIGFuZCByZW9yZGVyIHRo
aXMKICAgICAgICAgICAgIC8vIDUuNC4xIExldCBuZXcgdGV4dCB0cmFjayBiZSBhIG5ldyBUZXh0
VHJhY2sgb2JqZWN0IHdpdGggaXRzIHByb3BlcnRpZXMgcG9wdWxhdGVkIHdpdGggdGhlCiAgICAg
ICAgICAgICAvLyBhcHByb3ByaWF0ZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBpbml0aWFsaXphdGlv
biBzZWdtZW50LgotICAgICAgICAgICAgUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gbmV3VGV4dFRy
YWNrID0gSW5iYW5kVGV4dFRyYWNrOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0
aGlzLCB0ZXh0VHJhY2tQcml2YXRlKTsKKyAgICAgICAgICAgIGF1dG8gbmV3VGV4dFRyYWNrID0g
SW5iYW5kVGV4dFRyYWNrOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMs
IHRleHRUcmFja1ByaXZhdGUpOwogCiAgICAgICAgICAgICAvLyA1LjQuMiBJZiB0aGUgbW9kZSBw
cm9wZXJ0eSBvbiBuZXcgdGV4dCB0cmFjayBlcXVhbHMgInNob3dpbmciIG9yICJoaWRkZW4iLCB0
aGVuIHNldCBhY3RpdmUKICAgICAgICAgICAgIC8vIHRyYWNrIGZsYWcgdG8gdHJ1ZS4KLSAgICAg
ICAgICAgIGlmICh0ZXh0VHJhY2tQcml2YXRlLT5tb2RlKCkgIT0gSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZTo6RGlzYWJsZWQpCisgICAgICAgICAgICBpZiAodGV4dFRyYWNrUHJpdmF0ZS5tb2RlKCkg
IT0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6RGlzYWJsZWQpCiAgICAgICAgICAgICAgICAgYWN0
aXZlVHJhY2tGbGFnID0gdHJ1ZTsKIAogICAgICAgICAgICAgLy8gNS40LjMgQWRkIG5ldyB0ZXh0
IHRyYWNrIHRvIHRoZSB0ZXh0VHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGlzIFNvdXJjZUJ1ZmZlciBv
YmplY3QuCiAgICAgICAgICAgICAvLyA1LjQuNCBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHRydXN0
ZWQgZXZlbnQgbmFtZWQgYWRkdHJhY2ssIHRoYXQgZG9lcyBub3QgYnViYmxlIGFuZCBpcwogICAg
ICAgICAgICAgLy8gbm90IGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMgdGhlIFRyYWNrRXZlbnQg
aW50ZXJmYWNlLCBhdCB0ZXh0VHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGlzCiAgICAgICAgICAgICAv
LyBTb3VyY2VCdWZmZXIgb2JqZWN0LgotICAgICAgICAgICAgdGV4dFRyYWNrcygpLT5hcHBlbmQo
Km5ld1RleHRUcmFjayk7CisgICAgICAgICAgICB0ZXh0VHJhY2tzKCkuYXBwZW5kKG5ld1RleHRU
cmFjay5nZXQoKSk7CiAKICAgICAgICAgICAgIC8vIDUuNC41IEFkZCBuZXcgdGV4dCB0cmFjayB0
byB0aGUgdGV4dFRyYWNrcyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAg
ICAgICAgICAvLyA1LjQuNiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFt
ZWQgYWRkdHJhY2ssIHRoYXQgZG9lcyBub3QgYnViYmxlIGFuZCBpcwogICAgICAgICAgICAgLy8g
bm90IGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMgdGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBh
dCB0aGUgVGV4dFRyYWNrTGlzdCBvYmplY3QKICAgICAgICAgICAgIC8vIHJlZmVyZW5jZWQgYnkg
dGhlIHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgotICAgICAg
ICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tzKCkuYXBwZW5kKG5ld1Rl
eHRUcmFjay5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAgIG1fc291cmNlLT5tZWRpYUVs
ZW1lbnQoKS0+dGV4dFRyYWNrcygpLmFwcGVuZChXVEZNb3ZlKG5ld1RleHRUcmFjaykpOwogCiAg
ICAgICAgICAgICAvLyA1LjQuNyBDcmVhdGUgYSBuZXcgdHJhY2sgYnVmZmVyIHRvIHN0b3JlIGNv
ZGVkIGZyYW1lcyBmb3IgdGhpcyB0cmFjay4KLSAgICAgICAgICAgIEFTU0VSVCghbV90cmFja0J1
ZmZlck1hcC5jb250YWlucyh0ZXh0VHJhY2tQcml2YXRlLT5pZCgpKSk7Ci0gICAgICAgICAgICBU
cmFja0J1ZmZlciYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVmZmVyTWFwLmFkZCh0ZXh0VHJhY2tQ
cml2YXRlLT5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFsdWU7CisgICAgICAgICAg
ICBBU1NFUlQoIW1fdHJhY2tCdWZmZXJNYXAuY29udGFpbnModGV4dFRyYWNrUHJpdmF0ZS5pZCgp
KSk7CisgICAgICAgICAgICBhdXRvJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRk
KHRleHRUcmFja1ByaXZhdGUuaWQoKSwgVHJhY2tCdWZmZXIoKSkuaXRlcmF0b3ItPnZhbHVlOwog
CiAgICAgICAgICAgICAvLyA1LjQuOCBBZGQgdGhlIHRyYWNrIGRlc2NyaXB0aW9uIGZvciB0aGlz
IHRyYWNrIHRvIHRoZSB0cmFjayBidWZmZXIuCiAgICAgICAgICAgICB0cmFja0J1ZmZlci5kZXNj
cmlwdGlvbiA9IHRleHRUcmFja0luZm8uZGVzY3JpcHRpb247CkBAIC0xMjMxLDkgKzEyMjQsOSBA
QCBib29sIFNvdXJjZUJ1ZmZlcjo6dmFsaWRhdGVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3Qg
SW5pdGlhbGl6YXRpb25TZWdtZW50JiBzZQogCiAgICAgLy8gTm90ZTogdGhvc2UgYXJlIGNoZWNr
cyBmcm9tIHN0ZXAgMy4xCiAgICAgLy8gICAqIFRoZSBudW1iZXIgb2YgYXVkaW8sIHZpZGVvLCBh
bmQgdGV4dCB0cmFja3MgbWF0Y2ggd2hhdCB3YXMgaW4gdGhlIGZpcnN0IGluaXRpYWxpemF0aW9u
IHNlZ21lbnQuCi0gICAgaWYgKHNlZ21lbnQuYXVkaW9UcmFja3Muc2l6ZSgpICE9IGF1ZGlvVHJh
Y2tzKCktPmxlbmd0aCgpCi0gICAgICAgIHx8IHNlZ21lbnQudmlkZW9UcmFja3Muc2l6ZSgpICE9
IHZpZGVvVHJhY2tzKCktPmxlbmd0aCgpCi0gICAgICAgIHx8IHNlZ21lbnQudGV4dFRyYWNrcy5z
aXplKCkgIT0gdGV4dFRyYWNrcygpLT5sZW5ndGgoKSkKKyAgICBpZiAoc2VnbWVudC5hdWRpb1Ry
YWNrcy5zaXplKCkgIT0gYXVkaW9UcmFja3MoKS5sZW5ndGgoKQorICAgICAgICB8fCBzZWdtZW50
LnZpZGVvVHJhY2tzLnNpemUoKSAhPSB2aWRlb1RyYWNrcygpLmxlbmd0aCgpCisgICAgICAgIHx8
IHNlZ21lbnQudGV4dFRyYWNrcy5zaXplKCkgIT0gdGV4dFRyYWNrcygpLmxlbmd0aCgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyAgICogVGhlIGNvZGVjcyBmb3IgZWFjaCB0cmFj
aywgbWF0Y2ggd2hhdCB3YXMgc3BlY2lmaWVkIGluIHRoZSBmaXJzdCBpbml0aWFsaXphdGlvbiBz
ZWdtZW50LgpAQCAtMTMxOSw3ICsxMzEyLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OmFwcGVuZEVy
cm9yKGJvb2wgZGVjb2RlRXJyb3JQYXJhbSkKICAgICAgICAgbV9zb3VyY2UtPnN0cmVhbUVuZGVk
V2l0aEVycm9yKE1lZGlhU291cmNlOjpFbmRPZlN0cmVhbUVycm9yOjpEZWNvZGUpOwogfQogCi12
b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoU291
cmNlQnVmZmVyUHJpdmF0ZSosIE1lZGlhU2FtcGxlJiBzYW1wbGUpCit2b2lkIFNvdXJjZUJ1ZmZl
cjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBs
ZSkKIHsKICAgICBpZiAoaXNSZW1vdmVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE2NjYsMzAg
KzE2NTksMzAgQEAgYm9vbCBTb3VyY2VCdWZmZXI6Omhhc1ZpZGVvKCkgY29uc3QKICAgICByZXR1
cm4gbV92aWRlb1RyYWNrcyAmJiBtX3ZpZGVvVHJhY2tzLT5sZW5ndGgoKTsKIH0KIAotYm9vbCBT
b3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyhjb25zdCBTb3VyY2VCdWZm
ZXJQcml2YXRlKikgY29uc3QKK2Jvb2wgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRl
SGFzQXVkaW8oKSBjb25zdAogewogICAgIHJldHVybiBoYXNBdWRpbygpOwogfQogCi1ib29sIFNv
dXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKGNvbnN0IFNvdXJjZUJ1ZmZl
clByaXZhdGUqKSBjb25zdAorYm9vbCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVI
YXNWaWRlbygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc1ZpZGVvKCk7CiB9CiAKLXZvaWQgU291
cmNlQnVmZmVyOjp2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqIHRyYWNrKQor
dm9pZCBTb3VyY2VCdWZmZXI6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayYg
dHJhY2spCiB7CiAgICAgLy8gMi40LjUgQ2hhbmdlcyB0byBzZWxlY3RlZC9lbmFibGVkIHRyYWNr
IHN0YXRlCiAgICAgLy8gSWYgdGhlIHNlbGVjdGVkIHZpZGVvIHRyYWNrIGNoYW5nZXMsIHRoZW4g
cnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6CiAgICAgLy8gMS4gSWYgdGhlIFNvdXJjZUJ1ZmZlciBh
c3NvY2lhdGVkIHdpdGggdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgdmlkZW8gdHJhY2sgaXMgbm90
IGFzc29jaWF0ZWQgd2l0aAogICAgIC8vIGFueSBvdGhlciBlbmFibGVkIHRyYWNrcywgcnVuIHRo
ZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKCF0cmFjay0+c2VsZWN0ZWQoKQorICAgIGlmICgh
dHJhY2suc2VsZWN0ZWQoKQogICAgICAgICAmJiAoIW1fdmlkZW9UcmFja3MgfHwgIW1fdmlkZW9U
cmFja3MtPmlzQW55VHJhY2tFbmFibGVkKCkpCiAgICAgICAgICYmICghbV9hdWRpb1RyYWNrcyB8
fCAhbV9hdWRpb1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX3Rl
eHRUcmFja3MgfHwgIW1fdGV4dFRyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkpIHsKICAgICAg
ICAgLy8gMS4xIFJlbW92ZSB0aGUgU291cmNlQnVmZmVyIGZyb20gYWN0aXZlU291cmNlQnVmZmVy
cy4KICAgICAgICAgLy8gMS4yIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5h
bWVkIHJlbW92ZXNvdXJjZWJ1ZmZlciBhdCBhY3RpdmVTb3VyY2VCdWZmZXJzCiAgICAgICAgIHNl
dEFjdGl2ZShmYWxzZSk7Ci0gICAgfSBlbHNlIGlmICh0cmFjay0+c2VsZWN0ZWQoKSkgeworICAg
IH0gZWxzZSBpZiAodHJhY2suc2VsZWN0ZWQoKSkgewogICAgICAgICAvLyAyLiBJZiB0aGUgU291
cmNlQnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgbmV3bHkgc2VsZWN0ZWQgdmlkZW8gdHJhY2sg
aXMgbm90IGFscmVhZHkgaW4gYWN0aXZlU291cmNlQnVmZmVycywKICAgICAgICAgLy8gcnVuIHRo
ZSBmb2xsb3dpbmcgc3RlcHM6CiAgICAgICAgIC8vIDIuMSBBZGQgdGhlIFNvdXJjZUJ1ZmZlciB0
byBhY3RpdmVTb3VyY2VCdWZmZXJzLgpAQCAtMTY5NywyNiArMTY5MCwyNiBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlcjo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrKiB0cmFjaykKICAg
ICAgICAgc2V0QWN0aXZlKHRydWUpOwogICAgIH0KIAotICAgIGlmIChtX3ZpZGVvVHJhY2tzICYm
IG1fdmlkZW9UcmFja3MtPmNvbnRhaW5zKCp0cmFjaykpCisgICAgaWYgKG1fdmlkZW9UcmFja3Mg
JiYgbV92aWRlb1RyYWNrcy0+Y29udGFpbnModHJhY2spKQogICAgICAgICBtX3ZpZGVvVHJhY2tz
LT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAg
ICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQodHJh
Y2spOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1
ZGlvVHJhY2sqIHRyYWNrKQordm9pZCBTb3VyY2VCdWZmZXI6OmF1ZGlvVHJhY2tFbmFibGVkQ2hh
bmdlZChBdWRpb1RyYWNrJiB0cmFjaykKIHsKICAgICAvLyAyLjQuNSBDaGFuZ2VzIHRvIHNlbGVj
dGVkL2VuYWJsZWQgdHJhY2sgc3RhdGUKICAgICAvLyBJZiBhbiBhdWRpbyB0cmFjayBiZWNvbWVz
IGRpc2FibGVkIGFuZCB0aGUgU291cmNlQnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYWNr
IGlzIG5vdAogICAgIC8vIGFzc29jaWF0ZWQgd2l0aCBhbnkgb3RoZXIgZW5hYmxlZCBvciBzZWxl
Y3RlZCB0cmFjaywgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAoIXRyYWNr
LT5lbmFibGVkKCkKKyAgICBpZiAoIXRyYWNrLmVuYWJsZWQoKQogICAgICAgICAmJiAoIW1fdmlk
ZW9UcmFja3MgfHwgIW1fdmlkZW9UcmFja3MtPmlzQW55VHJhY2tFbmFibGVkKCkpCiAgICAgICAg
ICYmICghbV9hdWRpb1RyYWNrcyB8fCAhbV9hdWRpb1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQo
KSkKICAgICAgICAgJiYgKCFtX3RleHRUcmFja3MgfHwgIW1fdGV4dFRyYWNrcy0+aXNBbnlUcmFj
a0VuYWJsZWQoKSkpIHsKICAgICAgICAgLy8gMS4gUmVtb3ZlIHRoZSBTb3VyY2VCdWZmZXIgYXNz
b2NpYXRlZCB3aXRoIHRoZSBhdWRpbyB0cmFjayBmcm9tIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMKICAg
ICAgICAgLy8gMi4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgcmVt
b3Zlc291cmNlYnVmZmVyIGF0IGFjdGl2ZVNvdXJjZUJ1ZmZlcnMKICAgICAgICAgc2V0QWN0aXZl
KGZhbHNlKTsKLSAgICB9IGVsc2UgaWYgKHRyYWNrLT5lbmFibGVkKCkpIHsKKyAgICB9IGVsc2Ug
aWYgKHRyYWNrLmVuYWJsZWQoKSkgewogICAgICAgICAvLyBJZiBhbiBhdWRpbyB0cmFjayBiZWNv
bWVzIGVuYWJsZWQgYW5kIHRoZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdHJh
Y2sgaXMKICAgICAgICAgLy8gbm90IGFscmVhZHkgaW4gYWN0aXZlU291cmNlQnVmZmVycywgdGhl
biBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKICAgICAgICAgLy8gMS4gQWRkIHRoZSBTb3VyY2VC
dWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBhdWRpbyB0cmFjayB0byBhY3RpdmVTb3VyY2VCdWZm
ZXJzCkBAIC0xNzI0LDE5ICsxNzE3LDE5IEBAIHZvaWQgU291cmNlQnVmZmVyOjphdWRpb1RyYWNr
RW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayogdHJhY2spCiAgICAgICAgIHNldEFjdGl2ZSh0cnVl
KTsKICAgICB9CiAKLSAgICBpZiAobV9hdWRpb1RyYWNrcyAmJiBtX2F1ZGlvVHJhY2tzLT5jb250
YWlucygqdHJhY2spKQorICAgIGlmIChtX2F1ZGlvVHJhY2tzICYmIG1fYXVkaW9UcmFja3MtPmNv
bnRhaW5zKHRyYWNrKSkKICAgICAgICAgbV9hdWRpb1RyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVu
dCgpOwogCiAgICAgaWYgKCFpc1JlbW92ZWQoKSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxl
bWVudCgpLT5hdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQodHJhY2spOwogfQogCi12b2lkIFNvdXJj
ZUJ1ZmZlcjo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykKK3ZvaWQgU291
cmNlQnVmZmVyOjp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2smIHRyYWNrKQogewogICAg
IC8vIDIuNC41IENoYW5nZXMgdG8gc2VsZWN0ZWQvZW5hYmxlZCB0cmFjayBzdGF0ZQogICAgIC8v
IElmIGEgdGV4dCB0cmFjayBtb2RlIGJlY29tZXMgImRpc2FibGVkIiBhbmQgdGhlIFNvdXJjZUJ1
ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhpcyB0cmFjayBpcyBub3QKICAgICAvLyBhc3NvY2lhdGVk
IHdpdGggYW55IG90aGVyIGVuYWJsZWQgb3Igc2VsZWN0ZWQgdHJhY2ssIHRoZW4gcnVuIHRoZSBm
b2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKHRyYWNrLT5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2Rl
OjpEaXNhYmxlZAorICAgIGlmICh0cmFjay5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNh
YmxlZAogICAgICAgICAmJiAoIW1fdmlkZW9UcmFja3MgfHwgIW1fdmlkZW9UcmFja3MtPmlzQW55
VHJhY2tFbmFibGVkKCkpCiAgICAgICAgICYmICghbV9hdWRpb1RyYWNrcyB8fCAhbV9hdWRpb1Ry
YWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX3RleHRUcmFja3MgfHwg
IW1fdGV4dFRyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkpIHsKQEAgLTE3NTEsNTYgKzE3NDQs
NTYgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayog
dHJhY2spCiAgICAgICAgIHNldEFjdGl2ZSh0cnVlKTsKICAgICB9CiAKLSAgICBpZiAobV90ZXh0
VHJhY2tzICYmIG1fdGV4dFRyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV90ZXh0
VHJhY2tzICYmIG1fdGV4dFRyYWNrcy0+Y29udGFpbnModHJhY2spKQogICAgICAgICBtX3RleHRU
cmFja3MtPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIGlmICghaXNSZW1vdmVkKCkpCiAg
ICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dGV4dFRyYWNrTW9kZUNoYW5nZWQodHJh
Y2spOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayog
dHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja0Fk
ZEN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKICAgICBpZiAoIWlz
UmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja0Fk
ZEN1ZSh0cmFjaywgY3VlKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja0FkZEN1
ZXMoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlTGlzdCBjb25zdCogY3VlTGlzdCkKK3Zv
aWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYgdHJhY2ssIGNvbnN0
IFRleHRUcmFja0N1ZUxpc3QmIGN1ZUxpc3QpCiB7CiAgICAgaWYgKCFpc1JlbW92ZWQoKSkKICAg
ICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tBZGRDdWVzKHRyYWNrLCBj
dWVMaXN0KTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja1JlbW92ZUN1ZShUZXh0
VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKK3ZvaWQgU291cmNlQnVmZmVyOjp0ZXh0
VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCiB7CiAg
ICAgaWYgKCFpc1JlbW92ZWQoKSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50
ZXh0VHJhY2tSZW1vdmVDdWUodHJhY2ssIGN1ZSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjp0
ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1ZUxpc3QgY29u
c3QqIGN1ZUxpc3QpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0
VHJhY2smIHRyYWNrLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JiBjdWVMaXN0KQogewogICAgIGlm
ICghaXNSZW1vdmVkKCkpCiAgICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dGV4dFRy
YWNrUmVtb3ZlQ3Vlcyh0cmFjaywgY3VlTGlzdCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjp0
ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQordm9pZCBTb3VyY2VCdWZmZXI6
OnRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7CiAgICAgaWYgKCFpc1Jl
bW92ZWQoKSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tLaW5k
Q2hhbmdlZCh0cmFjayk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2
YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXRv
bWljU3RyaW5nIHRyYWNrSUQpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0
ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lE
KQogewogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJp
dmF0ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoJXApIiwgdGhpcyk7CiAgICAgYXV0byBp
dCA9IG1fdHJhY2tCdWZmZXJNYXAuZmluZCh0cmFja0lEKTsKICAgICBpZiAoaXQgPT0gbV90cmFj
a0J1ZmZlck1hcC5lbmQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVHJhY2tCdWZmZXImIHRy
YWNrQnVmZmVyID0gaXQtPnZhbHVlOworICAgIGF1dG8mIHRyYWNrQnVmZmVyID0gaXQtPnZhbHVl
OwogICAgIGlmICghdHJhY2tCdWZmZXIubmVlZHNSZWVucXVldWVpbmcgJiYgIW1fc291cmNlLT5p
c1NlZWtpbmcoKSkKICAgICAgICAgcHJvdmlkZU1lZGlhRGF0YSh0cmFja0J1ZmZlciwgdHJhY2tJ
RCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjpwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVy
JiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5nIHRyYWNrSUQpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6
cHJvdmlkZU1lZGlhRGF0YShUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIsIGNvbnN0IEF0b21pY1N0
cmluZyYgdHJhY2tJRCkKIHsKICAgICBpZiAobV9zb3VyY2UtPmlzU2Vla2luZygpKQogICAgICAg
ICByZXR1cm47CkBAIC0xODM0LDcgKzE4MjcsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6cHJvdmlk
ZU1lZGlhRGF0YShUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIsIEF0b21pY1N0cmluZyB0cmFjawog
CiAgICAgICAgIHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUgPSBzYW1w
bGUtPnByZXNlbnRhdGlvblRpbWUoKTsKICAgICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVk
RGVjb2RlRW5kVGltZSA9IHNhbXBsZS0+ZGVjb2RlVGltZSgpICsgc2FtcGxlLT5kdXJhdGlvbigp
OwotICAgICAgICBtX3ByaXZhdGUtPmVucXVldWVTYW1wbGUoV1RGTW92ZShzYW1wbGUpLCB0cmFj
a0lEKTsKKyAgICAgICAgbV9wcml2YXRlLT5lbnF1ZXVlU2FtcGxlKHNhbXBsZS5yZWxlYXNlTm9u
TnVsbCgpLCB0cmFja0lEKTsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgICAgICsrZW5xdWV1ZWRT
YW1wbGVzOwogI2VuZGlmCkBAIC0xODQzLDcgKzE4MzYsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6
cHJvdmlkZU1lZGlhRGF0YShUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIsIEF0b21pY1N0cmluZyB0
cmFjawogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlcjo6cHJvdmlkZU1lZGlhRGF0
YSglcCkgLSBFbnF1ZXVlZCAldSBzYW1wbGVzIiwgdGhpcywgZW5xdWV1ZWRTYW1wbGVzKTsKIH0K
IAotdm9pZCBTb3VyY2VCdWZmZXI6OnJlZW5xdWV1ZU1lZGlhRm9yVGltZShUcmFja0J1ZmZlciYg
dHJhY2tCdWZmZXIsIEF0b21pY1N0cmluZyB0cmFja0lELCBjb25zdCBNZWRpYVRpbWUmIHRpbWUp
Cit2b2lkIFNvdXJjZUJ1ZmZlcjo6cmVlbnF1ZXVlTWVkaWFGb3JUaW1lKFRyYWNrQnVmZmVyJiB0
cmFja0J1ZmZlciwgY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lELCBjb25zdCBNZWRpYVRpbWUm
IHRpbWUpCiB7CiAgICAgbV9wcml2YXRlLT5mbHVzaCh0cmFja0lEKTsKICAgICB0cmFja0J1ZmZl
ci5kZWNvZGVRdWV1ZS5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyLmgKaW5kZXggZDllMTc0Nzk5OTI0YWZiMGU4OGQ3NDc3MmU4
ZjhhOTFhMmNmMDJiMC4uMzlkMDUxNjY5OWJjYTk1ZGJiMDdlMmU2NWZhMDE3NThjNTdiNTU1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5oCkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIEF1ZGlvVHJhY2tMaXN0OwogY2xhc3MgQnVmZmVy
U291cmNlOwogY2xhc3MgTWVkaWFTb3VyY2U7CiBjbGFzcyBQbGF0Zm9ybVRpbWVSYW5nZXM7Citj
bGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlOwogY2xhc3MgVGV4dFRyYWNrTGlzdDsKIGNsYXNzIFRp
bWVSYW5nZXM7CiBjbGFzcyBWaWRlb1RyYWNrTGlzdDsKQEAgLTY0LDkgKzY1LDkgQEAgcHVibGlj
OgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFRpbWVzdGFtcE9mZnNldChkb3VibGUpOwogCiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIFZpZGVvVHJhY2tMaXN0KiB2aWRlb1RyYWNrcygp
OwotICAgIEF1ZGlvVHJhY2tMaXN0KiBhdWRpb1RyYWNrcygpOwotICAgIFRleHRUcmFja0xpc3Qq
IHRleHRUcmFja3MoKTsKKyAgICBWaWRlb1RyYWNrTGlzdCYgdmlkZW9UcmFja3MoKTsKKyAgICBB
dWRpb1RyYWNrTGlzdCYgYXVkaW9UcmFja3MoKTsKKyAgICBUZXh0VHJhY2tMaXN0JiB0ZXh0VHJh
Y2tzKCk7CiAjZW5kaWYKIAogICAgIGRvdWJsZSBhcHBlbmRXaW5kb3dTdGFydCgpIGNvbnN0OwpA
QCAtMTI0LDI1ICsxMjUsMjQgQEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01P
YmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRT
dXNwZW5zaW9uKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25z
dCBJbml0aWFsaXphdGlvblNlZ21lbnQmKSBmaW5hbDsKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRSZWNlaXZlU2FtcGxlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBNZWRpYVNhbXBsZSYp
IGZpbmFsOwotICAgIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKGNvbnN0IFNvdXJj
ZUJ1ZmZlclByaXZhdGUqKSBjb25zdCBmaW5hbDsKLSAgICBib29sIHNvdXJjZUJ1ZmZlclByaXZh
dGVIYXNWaWRlbyhjb25zdCBTb3VyY2VCdWZmZXJQcml2YXRlKikgY29uc3QgZmluYWw7Ci0gICAg
dm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhTb3Vy
Y2VCdWZmZXJQcml2YXRlKiwgQXRvbWljU3RyaW5nIHRyYWNrSUQpIGZpbmFsOwotICAgIE1lZGlh
VGltZSBzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKFNvdXJjZUJ1
ZmZlclByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZl
VGhyZXNob2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKSBmaW5hbDsKLSAg
ICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2
YXRlKiwgQXBwZW5kUmVzdWx0KSBmaW5hbDsKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoU291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvckNv
ZGUpIGZpbmFsOwotCi0gICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFj
ayopIGZpbmFsOwotCi0gICAgdm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJh
Y2sqKSBmaW5hbDsKLQotICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrKikg
ZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqKSBmaW5hbDsK
LSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3Vl
TGlzdCopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBj
b25zdCBUZXh0VHJhY2tDdWVMaXN0KikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWUo
VGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1v
dmVDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgZmluYWw7CisgICAgdm9pZCBzb3VyY2VC
dWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBJbml0aWFs
aXphdGlvblNlZ21lbnQmKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRS
ZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJikgZmluYWw7CisgICAgYm9vbCBzb3VyY2VCdWZmZXJQ
cml2YXRlSGFzQXVkaW8oKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHNvdXJjZUJ1ZmZlclByaXZh
dGVIYXNWaWRlbygpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURp
ZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKSBm
aW5hbDsKKyAgICBNZWRpYVRpbWUgc291cmNlQnVmZmVyUHJpdmF0ZUZhc3RTZWVrVGltZUZvck1l
ZGlhVGltZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZlVGhyZXNo
b2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKSBmaW5hbDsKKyAgICB2b2lk
IHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShBcHBlbmRSZXN1bHQpIGZpbmFsOwor
ICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihpbnQg
ZXJyb3JDb2RlKSBmaW5hbDsKKworICAgIHZvaWQgYXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1
ZGlvVHJhY2smKSBmaW5hbDsKKyAgICB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlk
ZW9UcmFjayYpIGZpbmFsOworCisgICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJh
Y2smKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIGZp
bmFsOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJh
Y2tDdWVMaXN0JikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFj
ayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja0Fk
ZEN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFj
a1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKIAogICAgIEV2ZW50
VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gU291cmNlQnVmZmVyRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAKQEAgLTE1Nyw4ICsx
NTcsOCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCB2YWxpZGF0ZUluaXRpYWxpemF0aW9uU2VnbWVu
dChjb25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmKTsKIAotICAgIHZvaWQgcmVlbnF1ZXVlTWVk
aWFGb3JUaW1lKFRyYWNrQnVmZmVyJiwgQXRvbWljU3RyaW5nIHRyYWNrSUQsIGNvbnN0IE1lZGlh
VGltZSYpOwotICAgIHZvaWQgcHJvdmlkZU1lZGlhRGF0YShUcmFja0J1ZmZlciYsIEF0b21pY1N0
cmluZyB0cmFja0lEKTsKKyAgICB2b2lkIHJlZW5xdWV1ZU1lZGlhRm9yVGltZShUcmFja0J1ZmZl
ciYsIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCwgY29uc3QgTWVkaWFUaW1lJik7CisgICAg
dm9pZCBwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiwgY29uc3QgQXRvbWljU3RyaW5nJiB0
cmFja0lEKTsKICAgICB2b2lkIGRpZERyb3BTYW1wbGUoKTsKICAgICB2b2lkIGV2aWN0Q29kZWRG
cmFtZXMoc2l6ZV90IG5ld0RhdGFTaXplKTsKICAgICBzaXplX3QgbWF4aW11bUJ1ZmZlclNpemUo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBiZTk2NDU4OTM3YTk0MjFmNTY4OTA1MjJlZWFjZDkwODZhMGY5N2E5Li4w
NTgyMzc5Y2NiNWRhZDA3NDMxOGE3ZjBlMDI5MmQ5YjRiODY5YWFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjE0LDggKzI2
MTQsOCBAQAogCQk2RTNGQUU4RTE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUzRkFF
OEMxNDczM0ZEQjAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmNwcCAqLzsgfTsKIAkJNkUz
RkFFOEYxNDczM0ZEQjAwRTQyMzA2IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4RDE0NzMz
RkRCMDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCAqLzsgfTsKIAkJNkUz
RkFFOEYxNDczM0ZEQjAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4RDE0NzMzRkRCMDBFNDIz
MDcgLyogV2ViR0xEZXB0aFRleHR1cmUuaCAqLzsgfTsKLQkJNkU0N0U2NjAxMEI3OTQ0QjAwQjE4
NkM4IC8qIFdlYkdMR2V0SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNw
cCAqLzsgfTsKLQkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU0N0U2NUYxMEI3
OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5oICovOyB9OworCQk2RTQ3RTY2MDEwQjc5NDRC
MDBCMTg2QzggLyogV2ViR0xBbnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkU0N0U2NUUxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmNwcCAq
LzsgfTsKKwkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTQ3RTY1RjEwQjc5NDRCMDBC
MTg2QzggLyogV2ViR0xBbnkuaCAqLzsgfTsKIAkJNkU0QUJDRDQxMzhFQTBCNzAwNzFEMjkxIC8q
IEpTSFRNTFVua25vd25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZFNEFCQ0QyMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtub3du
RWxlbWVudC5jcHAgKi87IH07CiAJCTZFNEFCQ0Q1MTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxV
bmtub3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkU0QUJDRDMxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50Lmgg
Ki87IH07CiAJCTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1
dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTRF
OTFBQTEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05OTE1LDggKzk5MTUs
OCBAQAogCQk2RTNGQUU4RDE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xEZXB0aFRleHR1cmUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFFOTAxNDczM0ZFQTAwRTQyMzA2IC8qIFdl
YkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJH
TENvbXByZXNzZWRUZXh0dXJlUzNUQy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZFM0ZBRTkwMTQ3MzNGRUEwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVyZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gV2ViR0xEZXB0aFRleHR1cmUuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMR2V0SW5mby5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFNDdFNjVGMTBCNzk0NEIwMEIxODZDOCAv
KiBXZWJHTEdldEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xH
ZXRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFNDdFNjVFMTBCNzk0NEIw
MEIxODZDOCAvKiBXZWJHTEFueS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJHTEFueS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFNDdFNjVG
MTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJHTEFueS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTRBQkNE
MjEzOEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTRBQkNEMzEzOEVBMEI3MDA3MUQyOTEgLyogSlNI
VE1MVW5rbm93bkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNI
VE1MVW5rbm93bkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkU0RTkx
QUExMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY5MjgsOCArMTY5MjgsOCBAQAogCQkJCTQ5QzdCOUFF
MTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmNwcCAqLywKIAkJCQk0OUM3QjlB
RjEwNDJEMzJFMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5oICovLAogCQkJCTQ5QzdCOUIw
MTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmlkbCAqLywKLQkJCQk2RTQ3RTY1
RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCAqLywKLQkJCQk2RTQ3RTY1RjEw
Qjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmggKi8sCisJCQkJNkU0N0U2NUUxMEI3OTQ0
QjAwQjE4NkM4IC8qIFdlYkdMQW55LmNwcCAqLywKKwkJCQk2RTQ3RTY1RjEwQjc5NDRCMDBCMTg2
QzggLyogV2ViR0xBbnkuaCAqLywKIAkJCQk5M0YxRDVCNzEyRDUzMkM0MDA4MzJCRUMgLyogV2Vi
R0xMb3NlQ29udGV4dC5jcHAgKi8sCiAJCQkJOTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdl
YkdMTG9zZUNvbnRleHQuaCAqLywKIAkJCQk5M0YxRDVCOTEyRDUzMkM0MDA4MzJCRUMgLyogV2Vi
R0xMb3NlQ29udGV4dC5pZGwgKi8sCkBAIC0yODI0Myw3ICsyODI0Myw3IEBACiAJCQkJNUIzMDY5
NUUxOEIzRDM0NTAwOTlENUU4IC8qIFdlYkdMRHJhd0J1ZmZlcnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTZFQkYwRTU1MTJBODkyOTgwMERCMTcwOSAvKiBXZWJHTEV4dGVuc2lvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDlDN0I5Q0YxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMRnJhbWVidWZmZXIu
aCBpbiBIZWFkZXJzICovLAotCQkJCTZFNDdFNjYxMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdl
dEluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTZFNDdFNjYxMTBCNzk0NEIwMEIxODZDOCAvKiBX
ZWJHTEFueS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlGRkJGM0YxMUM5M0VFMzAwNkE3MTE4IC8q
IFdlYkdMTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjFENUJCMTJENTMyQzQwMDgzMkJF
QyAvKiBXZWJHTExvc2VDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3QjlENTEwNDJE
MzJGMDAwOUQ0NDcgLyogV2ViR0xPYmplY3QuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3MzIsNyAr
MzE3MzIsNyBAQAogCQkJCTVCMzA2OTVEMThCM0QzNDUwMDk5RDVFOCAvKiBXZWJHTERyYXdCdWZm
ZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFQkYwRTU0MTJBODkyOTgwMERCMTcwOSAvKiBX
ZWJHTEV4dGVuc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUM3QjlDRTEwNDJEMzJGMDAw
OUQ0NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk2RTQ3RTY2
MDEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTZFNDdFNjYwMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk0OUZGQkY0MDExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzRjFENUJBMTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUQ0MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTE9i
amVjdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAppbmRl
eCBlMjBiMjM4Njg2NGRhY2RkYWQ1NjJmYzNlZWM2YWEzMzk0ZmYxMGE1Li5jYzYzM2JlN2U0YTQy
NmZmODdiNjExMThkMzczNzE4ZjJkMzE2N2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20u
Y3BwCkBAIC02NSw5ICs2NSw5IEBAIHN0YXRpYyBDYW52YXNTdHlsZSB0b0hUTUxDYW52YXNTdHls
ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVlKQogICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUo
KTsKICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QodmFsdWUpOwogICAgIGlmIChvYmpl
Y3QtPmluaGVyaXRzKEpTQ2FudmFzR3JhZGllbnQ6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBD
YW52YXNTdHlsZSgmanNDYXN0PEpTQ2FudmFzR3JhZGllbnQqPihvYmplY3QpLT53cmFwcGVkKCkp
OworICAgICAgICByZXR1cm4ganNDYXN0PEpTQ2FudmFzR3JhZGllbnQqPihvYmplY3QpLT53cmFw
cGVkKCk7CiAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHMoSlNDYW52YXNQYXR0ZXJuOjppbmZvKCkp
KQotICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUoJmpzQ2FzdDxKU0NhbnZhc1BhdHRlcm4qPihv
YmplY3QpLT53cmFwcGVkKCkpOworICAgICAgICByZXR1cm4ganNDYXN0PEpTQ2FudmFzUGF0dGVy
bio+KG9iamVjdCktPndyYXBwZWQoKTsKICAgICByZXR1cm4gQ2FudmFzU3R5bGUoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVu
Y3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1
bmN0aW9ucy5jcHAKaW5kZXggZjc4YTExODYyMThjNmE5YmQxZDc3YmU4Nzg3NDNlOWVhY2JhYzc0
NC4uMGFlMWMwYTYyZTY0MGRlMzEwYmVkYmFlODE1NjYzZjA3MjNjMTM1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
Y3BwCkBAIC00MCw3ICs0MCw3IEBAIEluc3RhbmNlKiBwbHVnaW5JbnN0YW5jZShIVE1MRWxlbWVu
dCYgZWxlbWVudCkKICAgICAvLyBUaGUgcGx1Z2luIGVsZW1lbnQgaG9sZHMgYW4gb3duaW5nIHJl
ZmVyZW5jZSwgc28gd2UgZG9uJ3QgaGF2ZSB0by4KICAgICBpZiAoIWlzPEhUTUxQbHVnSW5FbGVt
ZW50PihlbGVtZW50KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgSW5zdGFuY2UqIGlu
c3RhbmNlID0gZG93bmNhc3Q8SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpLmdldEluc3RhbmNl
KCkuZ2V0KCk7CisgICAgYXV0byogaW5zdGFuY2UgPSBkb3duY2FzdDxIVE1MUGx1Z0luRWxlbWVu
dD4oZWxlbWVudCkuYmluZGluZ3NJbnN0YW5jZSgpOwogICAgIGlmICghaW5zdGFuY2UgfHwgIWlu
c3RhbmNlLT5yb290T2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVy
biBpbnN0YW5jZTsKQEAgLTcxLDIzICs3MSwyMyBAQCBKU09iamVjdCogcGx1Z2luU2NyaXB0T2Jq
ZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNIVE1MRWxlbWVudCoganNIVE1MRWxlbWVudCkKICAgICBp
ZiAoIWlzPEhUTUxQbHVnSW5FbGVtZW50PihlbGVtZW50KSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKLSAgICBIVE1MUGx1Z0luRWxlbWVudCYgcGx1Z2luRWxlbWVudCA9IGRvd25jYXN0PEhU
TUxQbHVnSW5FbGVtZW50PihlbGVtZW50KTsKKyAgICBhdXRvJiBwbHVnaW5FbGVtZW50ID0gZG93
bmNhc3Q8SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpOwogCiAgICAgLy8gQ2hva2UgcG9pbnQg
Zm9yIHNjcmlwdC9wbHVnaW4gaW50ZXJhY3Rpb247IG5vdGlmeSBET01UaW1lciBvZiB0aGUgZXZl
bnQuCiAgICAgRE9NVGltZXI6OnNjcmlwdERpZEludGVyYWN0V2l0aFBsdWdpbihwbHVnaW5FbGVt
ZW50KTsKIAogICAgIC8vIEZpcnN0LCBzZWUgaWYgdGhlIGVsZW1lbnQgaGFzIGEgcGx1Zy1pbiBy
ZXBsYWNlbWVudCB3aXRoIGEgc2NyaXB0LgotICAgIGlmIChKU09iamVjdCogc2NyaXB0T2JqZWN0
ID0gcGx1Z2luRWxlbWVudC5zY3JpcHRPYmplY3RGb3JQbHVnaW5SZXBsYWNlbWVudCgpKQorICAg
IGlmIChhdXRvKiBzY3JpcHRPYmplY3QgPSBwbHVnaW5FbGVtZW50LnNjcmlwdE9iamVjdEZvclBs
dWdpblJlcGxhY2VtZW50KCkpCiAgICAgICAgIHJldHVybiBzY3JpcHRPYmplY3Q7CiAgICAgCiAg
ICAgLy8gTmV4dCwgc2VlIGlmIHdlIGNhbiBhc2sgdGhlIHBsdWctaW4gdmlldyBmb3IgaXRzIHNj
cmlwdCBvYmplY3QuCi0gICAgaWYgKEpTT2JqZWN0KiBzY3JpcHRPYmplY3QgPSBwbHVnaW5TY3Jp
cHRPYmplY3RGcm9tUGx1Z2luVmlld0Jhc2UocGx1Z2luRWxlbWVudCwganNIVE1MRWxlbWVudC0+
Z2xvYmFsT2JqZWN0KCkpKQorICAgIGlmIChhdXRvKiBzY3JpcHRPYmplY3QgPSBwbHVnaW5TY3Jp
cHRPYmplY3RGcm9tUGx1Z2luVmlld0Jhc2UocGx1Z2luRWxlbWVudCwganNIVE1MRWxlbWVudC0+
Z2xvYmFsT2JqZWN0KCkpKQogICAgICAgICByZXR1cm4gc2NyaXB0T2JqZWN0OwogCiAgICAgLy8g
T3RoZXJ3aXNlLCBmYWxsIGJhY2sgdG8gZ2V0dGluZyB0aGUgb2JqZWN0IGZyb20gdGhlIGluc3Rh
bmNlLgogCiAgICAgLy8gVGhlIHBsdWdpbiBlbGVtZW50IGhvbGRzIGFuIG93bmluZyByZWZlcmVu
Y2UsIHNvIHdlIGRvbid0IGhhdmUgdG8uCi0gICAgSW5zdGFuY2UqIGluc3RhbmNlID0gcGx1Z2lu
RWxlbWVudC5nZXRJbnN0YW5jZSgpLmdldCgpOworICAgIGF1dG8qIGluc3RhbmNlID0gcGx1Z2lu
RWxlbWVudC5iaW5kaW5nc0luc3RhbmNlKCk7CiAgICAgaWYgKCFpbnN0YW5jZSB8fCAhaW5zdGFu
Y2UtPnJvb3RPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRl
eHRDdXN0b20uY3BwCmluZGV4IDc4OGFkMjQ0NDY5MjBkMGZhMmVhZWViNzQ4ZDY0OWJiZTM2OGM0
NzEuLjVkZjI1OGZlYTc1ZDMxM2NjM2QxMjFiODRjZTViNjJhNTFjMjNlOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdD
b250ZXh0Q3VzdG9tLmNwcApAQCAtMzYsMzcgKzM2LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBGSVhNRTogVGhlcmUgaXMgYSBkdXBsaWNhdGUg
dmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIGluIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1
c3RvbS5jcHAsCi0vLyBidXQgaXQgaXMgbm90IGV4YWN0bHkgdGhlIHNhbWUhIFdlIHNob3VsZCBt
ZXJnZSB0aGVzZS4KLXN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgV2ViR0xHZXRJbmZvJiBpbmZvKQotewot
ICAgIHN3aXRjaCAoaW5mby5nZXRUeXBlKCkpIHsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5
cGVCb29sOgotICAgICAgICByZXR1cm4ganNCb29sZWFuKGluZm8uZ2V0Qm9vbCgpKTsKLSAgICBj
YXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVCb29sQXJyYXk6IHsKLSAgICAgICAgTWFya2VkQXJndW1l
bnRCdWZmZXIgbGlzdDsKLSAgICAgICAgZm9yIChhdXRvJiB2YWx1ZSA6IGluZm8uZ2V0Qm9vbEFy
cmF5KCkpCi0gICAgICAgICAgICBsaXN0LmFwcGVuZChqc0Jvb2xlYW4odmFsdWUpKTsKLSAgICAg
ICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5KHN0YXRlLCAwLCBnbG9iYWxPYmplY3QsIGxpc3QpOwot
ICAgIH0KLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVGbG9hdDoKLSAgICAgICAgcmV0dXJu
IGpzTnVtYmVyKGluZm8uZ2V0RmxvYXQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBl
SW50OgotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRJbnQoKSk7Ci0gICAgY2FzZSBX
ZWJHTEdldEluZm86OmtUeXBlTnVsbDoKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIGNh
c2UgV2ViR0xHZXRJbmZvOjprVHlwZVN0cmluZzoKLSAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0
aENhY2hlKHN0YXRlLCBpbmZvLmdldFN0cmluZygpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6
a1R5cGVVbnNpZ25lZEludDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0VW5zaWdu
ZWRJbnQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlSW50NjQ6Ci0gICAgICAgIHJl
dHVybiBqc051bWJlcihpbmZvLmdldEludDY0KCkpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLX0K
LQogdm9pZCBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVu
KFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCgmd3Jh
cHBlZCgpKTsKQEAgLTEwNCw3ICs3Myw3IEBAIEpTVmFsdWUgSlNXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKICAgICB1bnNpZ25lZCBpbmRleCA9IHN0YXRl
LnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0YXRlKTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFs
T2JqZWN0KCksIHdyYXBwZWQoKS5nZXRJbmRleGVkUGFyYW1ldGVyKHBuYW1lLCBpbmRleCkpOwor
ICAgIHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRJbmRl
eGVkUGFyYW1ldGVyKHBuYW1lLCBpbmRleCkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKEV4ZWNTdGF0ZSYpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2VDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9tLmNwcAppbmRleCA4MjVkMjUwOTRkMmNjNjIyMDZiMDQ5
OTZjMTBkNTMxZTU0Mjk4MDkxLi4yYTBhZjJlZDliYmY2M2FkOGQ4MGZiODQ2ODg3ZDFiMzVjY2Zk
MWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2VDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHAKQEAgLTI5LDE1ICsyOSwxMiBA
QAogCiAjaW5jbHVkZSAiSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAKLSNpbmNsdWRl
ICJBTkdMRUluc3RhbmNlZEFycmF5cy5oIgogI2luY2x1ZGUgIkVYVEJsZW5kTWluTWF4LmgiCiAj
aW5jbHVkZSAiRVhURnJhZ0RlcHRoLmgiCiAjaW5jbHVkZSAiRVhUU2hhZGVyVGV4dHVyZUxPRC5o
IgogI2luY2x1ZGUgIkVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIgogI2luY2x1ZGUgIkVY
VHNSR0IuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiSFRNTENhbnZh
c0VsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNB
TkdMRUluc3RhbmNlZEFycmF5cy5oIgogI2luY2x1ZGUgIkpTRVhUQmxlbmRNaW5NYXguaCIKICNp
bmNsdWRlICJKU0VYVEZyYWdEZXB0aC5oIgpAQCAtNzMsNyArNzAsNiBAQAogI2luY2x1ZGUgIkpT
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oIgogI2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUy5oIgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTTWF0cml4LmgiCi0jaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJPRVNFbGVtZW50SW5kZXhVaW50LmgiCiAjaW5jbHVk
ZSAiT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIgogI2luY2x1ZGUgIk9FU1RleHR1cmVGbG9hdC5o
IgpAQCAtOTEsNyArODcsNiBAQAogI2luY2x1ZGUgIldlYkdMRHJhd0J1ZmZlcnMuaCIKICNpbmNs
dWRlICJXZWJHTEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIldlYkdMRnJhbWVidWZmZXIuaCIKLSNp
bmNsdWRlICJXZWJHTEdldEluZm8uaCIKICNpbmNsdWRlICJXZWJHTExvc2VDb250ZXh0LmgiCiAj
aW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5oIgpAQCAtMTA1LDcgKzEwMCw2IEBACiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4K
IAogI2lmIEVOQUJMRShWSURFTykKLSNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW5j
bHVkZSAiSlNIVE1MVmlkZW9FbGVtZW50LmgiCiAjZW5kaWYKIApAQCAtMTE3LDcgKzExMSw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNDOjpKU1Zh
bHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBSZWY8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4mJiBvYmplY3QpCitK
U1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgUmVmPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+JiYgb2JqZWN0KQogewog
I2lmIEVOQUJMRShXRUJHTDIpCiAgICAgaWYgKGlzPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KG9i
amVjdCkpCkBAIC0xMzEsNjQgKzEyNSw3IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRl
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBXZWJHTFJlbmRlcmluZ0NvCiAgICAg
cmV0dXJuIHdyYXAoc3RhdGUsIGdsb2JhbE9iamVjdCwgb2JqZWN0KTsKIH0KICAgICAKLS8vIEZJ
WE1FOiBUaGVyZSBpcyBhIGR1cGxpY2F0ZSB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24gaW4gSlNX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCwKLS8vIGJ1dCBpdCBpcyBub3QgZXhhY3Rs
eSB0aGUgc2FtZSEgV2Ugc2hvdWxkIG1lcmdlIHRoZXNlLgotc3RhdGljIEpTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFdl
YkdMR2V0SW5mbyYgaW5mbykKLXsKLSAgICBzd2l0Y2ggKGluZm8uZ2V0VHlwZSgpKSB7Ci0gICAg
Y2FzZSBXZWJHTEdldEluZm86OmtUeXBlQm9vbDoKLSAgICAgICAgcmV0dXJuIGpzQm9vbGVhbihp
bmZvLmdldEJvb2woKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlQm9vbEFycmF5OiB7
Ci0gICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGxpc3Q7Ci0gICAgICAgIGZvciAoYXV0byYg
dmFsdWUgOiBpbmZvLmdldEJvb2xBcnJheSgpKQotICAgICAgICAgICAgbGlzdC5hcHBlbmQoanNC
b29sZWFuKHZhbHVlKSk7Ci0gICAgICAgIHJldHVybiBjb25zdHJ1Y3RBcnJheShleGVjLCAwLCBn
bG9iYWxPYmplY3QsIGxpc3QpOwotICAgIH0KLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVG
bG9hdDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0RmxvYXQoKSk7Ci0gICAgY2Fz
ZSBXZWJHTEdldEluZm86OmtUeXBlSW50OgotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5n
ZXRJbnQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlTnVsbDoKLSAgICAgICAgcmV0
dXJuIGpzTnVsbCgpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVN0cmluZzoKLSAgICAg
ICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIGluZm8uZ2V0U3RyaW5nKCkpOwotICAg
IGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVVuc2lnbmVkSW50OgotICAgICAgICByZXR1cm4ganNO
dW1iZXIoaW5mby5nZXRVbnNpZ25lZEludCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5
cGVXZWJHTEJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBp
bmZvLmdldFdlYkdMQnVmZmVyKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdM
RmxvYXRBcnJheToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbmZv
LmdldFdlYkdMRmxvYXRBcnJheSgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJH
TEZyYW1lYnVmZmVyOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGlu
Zm8uZ2V0V2ViR0xGcmFtZWJ1ZmZlcigpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVX
ZWJHTEludEFycmF5OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGlu
Zm8uZ2V0V2ViR0xJbnRBcnJheSgpKTsKLSAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCBXZWJH
TE9iamVjdEFycmF5Ci0gICAgICAgIC8vIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMT2Jq
ZWN0QXJyYXk6Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xQcm9ncmFtOgotICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xQcm9ncmFt
KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMUmVuZGVyYnVmZmVyOgotICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xSZW5kZXJi
dWZmZXIoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xUZXh0dXJlOgotICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xUZXh0dXJl
KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVW5zaWduZWRCeXRlQXJyYXk6
Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTFVu
c2lnbmVkQnl0ZUFycmF5KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVW5z
aWduZWRJbnRBcnJheToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBp
bmZvLmdldFdlYkdMVW5zaWduZWRJbnRBcnJheSgpKTsKLSNpZiBFTkFCTEUoV0VCR0wyKQotICAg
IGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3Q6Ci0gICAgICAg
IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTFZlcnRleEFycmF5
T2JqZWN0KCkpOwotI2VuZGlmCi0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUzoKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
LCBpbmZvLmdldFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKSk7Ci0gICAgZGVmYXVsdDoKLSAg
ICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0g
ICAgfQotfQotCi1lbnVtIE9iamVjdFR5cGUgeyBrQnVmZmVyLCBrUmVuZGVyYnVmZmVyLCBrVGV4
dHVyZSwga1ZlcnRleEF0dHJpYiB9OwotCi1zdGF0aWMgSlNWYWx1ZSBnZXRPYmplY3RQYXJhbWV0
ZXIoSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBvYmosIEV4ZWNTdGF0ZSYgc3RhdGUsIE9i
amVjdFR5cGUgb2JqZWN0VHlwZSkKK3N0YXRpYyBKU1ZhbHVlIG9iamVjdFBhcmFtZXRlcihKU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIEV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdM
QW55IChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjoqZ2V0dGVyKShHQzNEZW51bSB0YXJnZXQs
IEdDM0RlbnVtIHBuYW1lKSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5Niw5MCArMTMzLDY2IEBAIHN0
YXRpYyBKU1ZhbHVlIGdldE9iamVjdFBhcmFtZXRlcihKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UqIG9iaiwgRXhlY1N0YXRlJiBzCiAgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSAhPSAy
KQogICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CiAgICAgCi0gICAgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYgY29udGV4dCA9IG9iai0+d3JhcHBlZCgpOwotICAgIHVuc2lnbmVkIHRhcmdl
dCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHVuc2lnbmVkIHBuYW1lID0g
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOwotICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgV2ViR0xHZXRJbmZvIGluZm87Ci0g
ICAgc3dpdGNoIChvYmplY3RUeXBlKSB7Ci0gICAgY2FzZSBrQnVmZmVyOgotICAgICAgICBpbmZv
ID0gY29udGV4dC5nZXRCdWZmZXJQYXJhbWV0ZXIodGFyZ2V0LCBwbmFtZSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2Uga1JlbmRlcmJ1ZmZlcjoKLSAgICAgICAgaW5mbyA9IGNvbnRleHQuZ2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyKHRhcmdldCwgcG5hbWUpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIGtUZXh0dXJlOgotICAgICAgICBpbmZvID0gY29udGV4dC5nZXRUZXhQYXJhbWV0ZXIo
dGFyZ2V0LCBwbmFtZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Uga1ZlcnRleEF0dHJpYjoK
LSAgICAgICAgLy8gdGFyZ2V0ID0+IGluZGV4Ci0gICAgICAgIGluZm8gPSBjb250ZXh0LmdldFZl
cnRleEF0dHJpYih0YXJnZXQsIHBuYW1lKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoK
LSAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJl
dHVybiB0b0pTKCZzdGF0ZSwgb2JqLT5nbG9iYWxPYmplY3QoKSwgaW5mbyk7CisgICAgYXV0byB0
YXJnZXQgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBhdXRvIHBuYW1lID0gc3RhdGUu
dW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsICpjb250ZXh0Lmdsb2Jh
bE9iamVjdCgpLCAoY29udGV4dC53cmFwcGVkKCkuKmdldHRlcikodGFyZ2V0LCBwbmFtZSkpOwog
fQogCi1lbnVtIFdoaWNoUHJvZ3JhbUNhbGwgewotICAgIGtQcm9ncmFtUGFyYW1ldGVyLCBrVW5p
Zm9ybQotfTsKLQotc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdlYkdMRXh0ZW5zaW9uKiBleHRlbnNpb24pCitzdGF0
aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QsIFdlYkdMRXh0ZW5zaW9uKiBleHRlbnNpb24pCiB7CiAgICAgaWYgKCFleHRlbnNp
b24pCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKICAgICBzd2l0Y2ggKGV4dGVuc2lvbi0+Z2V0
TmFtZSgpKSB7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xMb3NlQ29udGV4dE5hbWU6
Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2Vi
R0xMb3NlQ29udGV4dCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUs
ICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMTG9zZUNvbnRleHQqPihleHRlbnNpb24p
KTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRTaGFkZXJUZXh0dXJlTE9ETmFtZToKLSAg
ICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRTaGFk
ZXJUZXh0dXJlTE9EKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwg
Jmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUU2hhZGVyVGV4dHVyZUxPRCo+KGV4dGVuc2lv
bikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Y05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJl
dHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUVGV4dHVyZUZp
bHRlckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6
RVhUc1JHQk5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3Rh
dGljX2Nhc3Q8RVhUc1JHQio+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3Rh
dGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVHNSR0IqPihleHRlbnNpb24pKTsKICAg
ICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRGcmFnRGVwdGhOYW1lOgotICAgICAgICByZXR1cm4g
dG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVEZyYWdEZXB0aCo+KGV4dGVu
c2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PEVYVEZyYWdEZXB0aCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNp
b246OkVYVEJsZW5kTWluTWF4TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRCbGVuZE1pbk1heCo+KGV4dGVuc2lvbikpOworICAgICAg
ICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVEJsZW5k
TWluTWF4Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTU3RhbmRh
cmREZXJpdmF0aXZlc05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgc3RhdGljX2Nhc3Q8T0VTU3RhbmRhcmREZXJpdmF0aXZlcyo+KGV4dGVuc2lvbikpOworICAg
ICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9u
OjpPRVNUZXh0dXJlRmxvYXROYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVGbG9hdCo+KGV4dGVuc2lvbikpOworICAgICAg
ICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1
cmVGbG9hdCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1RleHR1
cmVGbG9hdExpbmVhck5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0TGluZWFyKj4oZXh0ZW5zaW9uKSk7CisgICAg
ICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4
dHVyZUZsb2F0TGluZWFyKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6
T0VTVGV4dHVyZUhhbGZGbG9hdE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUhhbGZGbG9hdCo+KGV4dGVuc2lvbikpOwor
ICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9F
U1RleHR1cmVIYWxmRmxvYXQqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9u
OjpPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyKj4o
ZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwg
c3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcio+KGV4dGVuc2lvbikpOwogICAg
IGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1ZlcnRleEFycmF5T2JqZWN0TmFtZToKLSAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNWZXJ0ZXhBcnJh
eU9iamVjdCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9i
YWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0Kj4oZXh0ZW5zaW9uKSk7
CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTRWxlbWVudEluZGV4VWludE5hbWU6Ci0gICAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTRWxlbWVu
dEluZGV4VWludCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU0VsZW1lbnRJbmRleFVpbnQqPihleHRlbnNpb24p
KTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnUmVuZGVyZXJJbmZvTmFtZToK
LSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJH
TERlYnVnUmVuZGVyZXJJbmZvKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZz
dGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyo+
KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVidWdTaGFkZXJz
TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxXZWJHTERlYnVnU2hhZGVycyo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygm
c3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVidWdTaGFkZXJzKj4oZXh0
ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQ05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGlj
X2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQyo+KGV4dGVuc2lvbikpOworICAgICAgICBy
ZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVBVEMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVENOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVj
LCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQyo+
KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3Qs
IHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQyo+KGV4dGVuc2lvbikpOwog
ICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDTmFtZToK
LSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJH
TENvbXByZXNzZWRUZXh0dXJlUzNUQyo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9K
Uygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVTM1RDKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZXB0
aFRleHR1cmVOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0
YXRpY19jYXN0PFdlYkdMRGVwdGhUZXh0dXJlKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZXB0aFRleHR1
cmUqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERyYXdCdWZm
ZXJzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNf
Y2FzdDxXZWJHTERyYXdCdWZmZXJzKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pT
KCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEcmF3QnVmZmVycyo+KGV4
dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkFOR0xFSW5zdGFuY2VkQXJyYXlz
TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxBTkdMRUluc3RhbmNlZEFycmF5cyo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9K
Uygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEFOR0xFSW5zdGFuY2VkQXJyYXlz
Kj4oZXh0ZW5zaW9uKSk7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJl
dHVybiBqc051bGwoKTsKIH0KIAotYm9vbCBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2VPd25l
cjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK2Jvb2wgSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEhhbmRsZTxVbmtu
b3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UqIGpzV2ViR0xSZW5kZXJpbmdDb250ZXh0ID0ganNDYXN0PEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAg
ICB2b2lkKiByb290ID0gV2ViQ29yZTo6cm9vdChqc1dlYkdMUmVuZGVyaW5nQ29udGV4dC0+d3Jh
cHBlZCgpLmNhbnZhcygpKTsKQEAgLTMwNiw5ICsyMTksOSBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0QXR0YWNoZWRTaGFkZXJzKEV4ZWNTdGF0ZSYgc3RhdGUpCiAg
ICAgVmVjdG9yPFJlZlB0cjxXZWJHTFNoYWRlcj4+IHNoYWRlcnM7CiAgICAgaWYgKCFjb250ZXh0
LmdldEF0dGFjaGVkU2hhZGVycyhwcm9ncmFtLCBzaGFkZXJzKSkKICAgICAgICAgcmV0dXJuIGpz
TnVsbCgpOwotICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgbGlzdDsKLSAgICBmb3IgKHNp
emVfdCBpaSA9IDA7IGlpIDwgc2hhZGVycy5zaXplKCk7ICsraWkpCi0gICAgICAgIGxpc3QuYXBw
ZW5kKHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgc2hhZGVyc1tpaV0uZ2V0KCkpKTsKKyAg
ICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBsaXN0OworICAgIGZvciAoYXV0byYgc2hhZGVyIDogc2hh
ZGVycykKKyAgICAgICAgbGlzdC5hcHBlbmQodG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBz
aGFkZXIuZ2V0KCkpKTsKICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoJnN0YXRlLCAwLCBnbG9i
YWxPYmplY3QoKSwgbGlzdCk7CiB9CiAKQEAgLTMyMCwxNCArMjMzLDE0IEBAIEpTVmFsdWUgSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRFeHRlbnNpb24oRXhlY1N0YXRlJiBzdGF0ZSkK
ICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93
RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZz
dGF0ZSkpOwogICAgIAotICAgIFN0cmluZyBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MCkudG9XVEZTdHJpbmcoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBK
U1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHdyYXBw
ZWQoKS5nZXRFeHRlbnNpb24obmFtZSkpOworICAgIGF1dG8gbmFtZSA9IHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDApLnRvV1RGU3RyaW5nKCZzdGF0ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmdsb2JhbE9iamVjdCgpLCB3
cmFwcGVkKCkuZ2V0RXh0ZW5zaW9uKG5hbWUpKTsKIH0KIAogSlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQogewot
ICAgIHJldHVybiBnZXRPYmplY3RQYXJhbWV0ZXIodGhpcywgc3RhdGUsIGtCdWZmZXIpOworICAg
IHJldHVybiBvYmplY3RQYXJhbWV0ZXIoKnRoaXMsIHN0YXRlLCAmV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Z2V0QnVmZmVyUGFyYW1ldGVyKTsKIH0KIAogSlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihFeGVjU3Rh
dGUmIHN0YXRlKQpAQCAtMzM4LDEzICsyNTEsMTMgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihFeGVjU3RhdGUK
ICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDMpCiAgICAgICAgIHJldHVybiB0aHJv
d0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigm
c3RhdGUpKTsKICAgICAKLSAgICB1bnNpZ25lZCB0YXJnZXQgPSBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
SlNWYWx1ZSgpKTsKLSAgICB1bnNpZ25lZCBhdHRhY2htZW50ID0gc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IEpTVmFsdWUoKSk7Ci0gICAgdW5zaWduZWQgcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVu
dCgyKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNW
YWx1ZSgpKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVk
KCkuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKHRhcmdldCwgYXR0YWNobWVudCwg
cG5hbWUpKTsKKyAgICBhdXRvIHRhcmdldCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRv
SW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAg
IGF1dG8gYXR0YWNobWVudCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0
YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIGF1dG8gcG5h
bWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKS50b0ludDMyKCZzdGF0ZSk7CisgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmds
b2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVy
KHRhcmdldCwgYXR0YWNobWVudCwgcG5hbWUpKTsKIH0KIAogSlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmdldFBhcmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQpAQCAtMzU1LDkg
KzI2OCw5IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRQYXJhbWV0
ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDEp
CiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICB1bnNpZ25lZCBwbmFtZSA9
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwg
Z2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRQYXJhbWV0ZXIocG5hbWUpKTsKKyAgICBhdXRv
IHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkudG9JbnQzMigmc3RhdGUpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUs
ICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFBhcmFtZXRlcihwbmFtZSkpOwogfQogCiBK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJvZ3JhbVBhcmFtZXRlcihF
eGVjU3RhdGUmIHN0YXRlKQpAQCAtMzY4LDE3ICsyODEsMTcgQEAgSlNWYWx1ZSBKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkK
ICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDIpCiAgICAgICAgIHJldHVybiB0aHJv
d0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigm
c3RhdGUpKTsKICAgICAKLSAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSBKU1dlYkdMUHJvZ3Jh
bTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBhdXRvKiBwcm9n
cmFtID0gSlNXZWJHTFByb2dyYW06OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgw
KSk7CiAgICAgaWYgKCFwcm9ncmFtICYmICFzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1Vu
ZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBz
Y29wZSk7Ci0gICAgdW5zaWduZWQgcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50
b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgp
KTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0
UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBwbmFtZSkpOworICAgIGF1dG8gcG5hbWUgPSBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7CisgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmdsb2JhbE9iamVj
dCgpLCB3cmFwcGVkKCkuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBwbmFtZSkpOwogfQog
CiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFy
YW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGdldE9iamVjdFBhcmFtZXRl
cih0aGlzLCBzdGF0ZSwga1JlbmRlcmJ1ZmZlcik7CisgICAgcmV0dXJuIG9iamVjdFBhcmFtZXRl
cigqdGhpcywgc3RhdGUsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZm
ZXJQYXJhbWV0ZXIpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0U2hhZGVyUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC0zOTMsOCArMzA2LDggQEAg
SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNoYWRlclBhcmFtZXRlcihF
eGVjU3RhdGUmIHN0YXRlKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBz
Y29wZSk7CiAgICAgV2ViR0xTaGFkZXIqIHNoYWRlciA9IEpTV2ViR0xTaGFkZXI6OnRvV3JhcHBl
ZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgdW5zaWduZWQgcG5hbWUgPSBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2Jh
bE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0U2hhZGVyUGFyYW1ldGVyKHNoYWRlciwgcG5hbWUpKTsK
KyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIHJldHVybiB0b0pTKHN0
YXRlLCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRTaGFkZXJQYXJhbWV0ZXIoc2hhZGVy
LCBwbmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
U3VwcG9ydGVkRXh0ZW5zaW9ucyhFeGVjU3RhdGUmIHN0YXRlKQpAQCAtNDEwLDcgKzMyMyw3IEBA
IEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRTdXBwb3J0ZWRFeHRlbnNp
b25zKEV4ZWNTdGF0ZSYgc3RhdGUpCiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRUZXhQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4gZ2V0
T2JqZWN0UGFyYW1ldGVyKHRoaXMsIHN0YXRlLCBrVGV4dHVyZSk7CisgICAgcmV0dXJuIG9iamVj
dFBhcmFtZXRlcigqdGhpcywgc3RhdGUsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRU
ZXhQYXJhbWV0ZXIpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0VW5pZm9ybShFeGVjU3RhdGUmIHN0YXRlKQpAQCAtNDI3LDM2ICszNDAsMzUgQEAgSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oRXhlY1N0YXRlJiBzdGF0
ZSkKICAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxv
Y2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICgh
bG9jYXRpb24gJiYgIXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLmlzVW5kZWZpbmVkT3JOdWxs
KCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICBy
ZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0VW5pZm9ybShw
cm9ncmFtLCBsb2NhdGlvbikpOworICAgIHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFsT2JqZWN0
KCksIHdyYXBwZWQoKS5nZXRVbmlmb3JtKHByb2dyYW0sIGxvY2F0aW9uKSk7CiB9CiAKIEpTVmFs
dWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRyaWIoRXhlY1N0YXRl
JiBzdGF0ZSkKIHsKLSAgICByZXR1cm4gZ2V0T2JqZWN0UGFyYW1ldGVyKHRoaXMsIHN0YXRlLCBr
VmVydGV4QXR0cmliKTsKKyAgICByZXR1cm4gb2JqZWN0UGFyYW1ldGVyKCp0aGlzLCBzdGF0ZSwg
JldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0dHJpYik7CiB9CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eT4KLWJvb2wgdG9WZWN0b3IoSlND
OjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFZlY3RvcjxULCBpbmxpbmVD
YXBhY2l0eT4mIHZlY3RvcikKK3RlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IGJvb2wgdG9O
dW1iZXJWZWN0b3IoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSwgVmVjdG9yVHlwZSYg
dmVjdG9yKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgSlNDOjpKU09iamVjdCogb2JqZWN0ID0gYXNP
YmplY3QodmFsdWUpOwotICAgIGludDMyX3QgbGVuZ3RoID0gb2JqZWN0LT5nZXQoJnN0YXRlLCBz
dGF0ZS52bSgpLnByb3BlcnR5TmFtZXMtPmxlbmd0aCkudG9JbnQzMigmc3RhdGUpOwotICAgIAor
CisgICAgYXV0byYgb2JqZWN0ID0gKmFzT2JqZWN0KHZhbHVlKTsKKyAgICBpbnQzMl90IGxlbmd0
aCA9IG9iamVjdC5nZXQoJnN0YXRlLCBzdGF0ZS52bSgpLnByb3BlcnR5TmFtZXMtPmxlbmd0aCku
dG9JbnQzMigmc3RhdGUpOworCiAgICAgaWYgKCF2ZWN0b3IudHJ5UmVzZXJ2ZUNhcGFjaXR5KGxl
bmd0aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB2ZWN0b3IucmVzaXplKGxlbmd0aCk7
Ci0gICAgCisKICAgICBmb3IgKGludDMyX3QgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewotICAg
ICAgICBKU0M6OkpTVmFsdWUgdiA9IG9iamVjdC0+Z2V0KCZzdGF0ZSwgaSk7CisgICAgICAgIGF1
dG8gdmFsdWUgPSBvYmplY3QuZ2V0KCZzdGF0ZSwgaSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICAgICAgdmVjdG9yLnVuY2hlY2tlZEFwcGVuZCh2YWx1
ZS50b051bWJlcigmc3RhdGUpKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
ZmFsc2UpOwotICAgICAgICB2ZWN0b3JbaV0gPSBzdGF0aWNfY2FzdDxUPih2LnRvTnVtYmVyKCZz
dGF0ZSkpOwogICAgIH0KLSAgICAKKwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC00NjksNyAr
MzgxLDcgQEAgZW51bSBEYXRhRnVuY3Rpb25NYXRyaXhUb0NhbGwgewogICAgIGZfdW5pZm9ybU1h
dHJpeDJmdiwgZl91bmlmb3JtTWF0cml4M2Z2LCBmX3VuaWZvcm1NYXRyaXg0ZnYKIH07CiAKLXN0
YXRpYyBib29sIGZ1bmN0aW9uRm9yVW5pZm9ybShEYXRhRnVuY3Rpb25Ub0NhbGwgZikKK3N0YXRp
YyBpbmxpbmUgYm9vbCBmdW5jdGlvbkZvclVuaWZvcm0oRGF0YUZ1bmN0aW9uVG9DYWxsIGYpCiB7
CiAgICAgc3dpdGNoIChmKSB7CiAgICAgY2FzZSBmX3VuaWZvcm0xdjoKQEAgLTQ3NywxMiArMzg5
LDEyIEBAIHN0YXRpYyBib29sIGZ1bmN0aW9uRm9yVW5pZm9ybShEYXRhRnVuY3Rpb25Ub0NhbGwg
ZikKICAgICBjYXNlIGZfdW5pZm9ybTN2OgogICAgIGNhc2UgZl91bmlmb3JtNHY6CiAgICAgICAg
IHJldHVybiB0cnVlOwotICAgIGRlZmF1bHQ6IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgSlND
OjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCkKK3N0YXRpYyBK
U1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEV4ZWNTdGF0ZSYgc3Rh
dGUsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiB7CiAgICAgVk0mIHZtID0g
c3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC00OTAsMjIgKzQwMiwxOSBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0
YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgVwogICAgIGlmIChzdGF0
ZS5hcmd1bWVudENvdW50KCkgIT0gMikKICAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZz
dGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwogICAg
IAotICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IDA7Ci0gICAgbG9uZyBpbmRl
eCA9IC0xOwotICAgIAorICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IG51bGxw
dHI7CisgICAgR0x1aW50IGluZGV4ID0gLTE7CisKICAgICBpZiAoZnVuY3Rpb25Gb3JVbmlmb3Jt
KGYpKSB7CiAgICAgICAgIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFw
cGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICAgICAgaWYgKCFsb2NhdGlvbiAm
JiAhc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAg
ICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICB9IGVsc2UK
KyAgICB9IGVsc2UgewogICAgICAgICBpbmRleCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDAp
LnRvSW50MzIoJnN0YXRlKTsKLSAgICAKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBK
U1ZhbHVlKCkpOwotICAgIAotICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IHdlYkdMQXJyYXkgPSB0
b1Vuc2hhcmVkRmxvYXQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKLSAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIAotICAgIGlmICh3ZWJH
TEFycmF5KSB7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAg
fQorCisgICAgaWYgKGF1dG8gd2ViR0xBcnJheSA9IHRvVW5zaGFyZWRGbG9hdDMyQXJyYXkoc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMSkpKSB7CiAgICAgICAgIHN3aXRjaCAoZikgewogICAgICAg
ICBjYXNlIGZfdW5pZm9ybTF2OgogICAgICAgICAgICAgY29udGV4dC51bmlmb3JtMWZ2KGxvY2F0
aW9uLCAqd2ViR0xBcnJheSk7CkBAIC01MzIsMTQgKzQ0MSwxMyBAQCBzdGF0aWMgSlNDOjpKU1Zh
bHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBz
dGF0ZSwgVwogICAgICAgICAgICAgY29udGV4dC52ZXJ0ZXhBdHRyaWI0ZnYoaW5kZXgsICp3ZWJH
TEFycmF5KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIAogICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgCisKICAgICBWZWN0b3I8ZmxvYXQs
IDY0PiBhcnJheTsKLSAgICBpZiAoIXRvVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgxKSwgYXJyYXkpKQorICAgIGlmICghdG9OdW1iZXJWZWN0b3Ioc3RhdGUsIHN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDEpLCBhcnJheSkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJv
cigmc3RhdGUsIHNjb3BlKTsKLSAgICAKKwogICAgIHN3aXRjaCAoZikgewogICAgIGNhc2UgZl91
bmlmb3JtMXY6CiAgICAgICAgIGNvbnRleHQudW5pZm9ybTFmdihsb2NhdGlvbiwgYXJyYXkuZGF0
YSgpLCBhcnJheS5zaXplKCkpOwpAQCAtNTY2LDI1ICs0NzQsMjIgQEAgc3RhdGljIEpTQzo6SlNW
YWx1ZSBkYXRhRnVuY3Rpb25mKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYg
c3RhdGUsIFcKICAgICAgICAgY29udGV4dC52ZXJ0ZXhBdHRyaWI0ZnYoaW5kZXgsIGFycmF5LmRh
dGEoKSwgYXJyYXkuc2l6ZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIAogICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlv
bmkoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCkKK3N0YXRpYyBKU1ZhbHVlIGRhdGFGdW5jdGlvbmko
RGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UmIGNvbnRleHQpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBpZiAoc3RhdGUuYXJndW1l
bnRDb3VudCgpICE9IDIpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNj
b3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKLSAgICAKLSAgICBX
ZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0
b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworCisgICAgYXV0byogbG9jYXRp
b24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMCkpOwogICAgIGlmICghbG9jYXRpb24gJiYgIXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigm
c3RhdGUsIHNjb3BlKTsKLSAgICAKLSAgICBSZWZQdHI8SW50MzJBcnJheT4gd2ViR0xBcnJheSA9
IHRvVW5zaGFyZWRJbnQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKLSAgICAK
LSAgICBpZiAod2ViR0xBcnJheSkgeworCisgICAgaWYgKGF1dG8gd2ViR0xBcnJheSA9IHRvVW5z
aGFyZWRJbnQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKSkgewogICAgICAgICBz
d2l0Y2ggKGYpIHsKICAgICAgICAgY2FzZSBmX3VuaWZvcm0xdjoKICAgICAgICAgICAgIGNvbnRl
eHQudW5pZm9ybTFpdihsb2NhdGlvbiwgKndlYkdMQXJyYXkpOwpAQCAtNjAxLDE1ICs1MDYsMTMg
QEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25pKERhdGFGdW5jdGlvblRvQ2FsbCBm
LCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKICAgICB9Ci0gICAgCi0gICAgCisKICAgICBWZWN0b3I8aW50LCA2ND4gYXJyYXk7Ci0gICAg
aWYgKCF0b1ZlY3RvcihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSksIGFycmF5KSkK
KyAgICBpZiAoIXRvTnVtYmVyVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgx
KSwgYXJyYXkpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7
Ci0gICAgCisKICAgICBzd2l0Y2ggKGYpIHsKICAgICBjYXNlIGZfdW5pZm9ybTF2OgogICAgICAg
ICBjb250ZXh0LnVuaWZvcm0xaXYobG9jYXRpb24sIGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgp
KTsKQEAgLTYyNiwyOCArNTI5LDI1IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9u
aShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBXCiAgICAgZGVm
YXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIAogICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwogfQogCi1zdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbk1hdHJpeChEYXRhRnVu
Y3Rpb25NYXRyaXhUb0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiBjb250ZXh0KQorc3RhdGljIEpTVmFsdWUgZGF0YUZ1bmN0aW9uTWF0cml4
KERhdGFGdW5jdGlvbk1hdHJpeFRvQ2FsbCBmLCBFeGVjU3RhdGUmIHN0YXRlLCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKHN0YXRl
LmFyZ3VtZW50Q291bnQoKSAhPSAzKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0
YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0gICAg
Ci0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2Nh
dGlvbjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKworICAgIGF1dG8q
IGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIWxvY2F0aW9uICYmICFzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgCisKICAgICBib29sIHRyYW5zcG9zZSA9IHN0YXRl
LnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvQm9vbGVhbigmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgCi0gICAgUmVmUHRyPEZsb2F0MzJBcnJh
eT4gd2ViR0xBcnJheSA9IHRvVW5zaGFyZWRGbG9hdDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMikpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKLSAgICBp
ZiAod2ViR0xBcnJheSkgeworICAgIGlmIChhdXRvIHdlYkdMQXJyYXkgPSB0b1Vuc2hhcmVkRmxv
YXQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKSkgewogICAgICAgICBzd2l0Y2gg
KGYpIHsKICAgICAgICAgY2FzZSBmX3VuaWZvcm1NYXRyaXgyZnY6CiAgICAgICAgICAgICBjb250
ZXh0LnVuaWZvcm1NYXRyaXgyZnYobG9jYXRpb24sIHRyYW5zcG9zZSwgKndlYkdMQXJyYXkpOwpA
QCAtNjU5LDE0ICs1NTksMTMgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25NYXRy
aXgoRGF0YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYsIEpTQzo6RXhlY1N0YXQKICAgICAgICAgICAg
IGNvbnRleHQudW5pZm9ybU1hdHJpeDRmdihsb2NhdGlvbiwgdHJhbnNwb3NlLCAqd2ViR0xBcnJh
eSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotCiAgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwogICAgIH0KLSAgICAKKwogICAgIFZlY3RvcjxmbG9hdCwgNjQ+IGFycmF5Owot
ICAgIGlmICghdG9WZWN0b3Ioc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpLCBhcnJh
eSkpCisgICAgaWYgKCF0b051bWJlclZlY3RvcihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMiksIGFycmF5KSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2Nv
cGUpOwotICAgIAorCiAgICAgc3dpdGNoIChmKSB7CiAgICAgY2FzZSBmX3VuaWZvcm1NYXRyaXgy
ZnY6CiAgICAgICAgIGNvbnRleHQudW5pZm9ybU1hdHJpeDJmdihsb2NhdGlvbiwgdHJhbnNwb3Nl
LCBhcnJheS5kYXRhKCksIGFycmF5LnNpemUoKSk7CkBAIC02NzgsODEgKzU3Nyw4MCBAQCBzdGF0
aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbk1hdHJpeChEYXRhRnVuY3Rpb25NYXRyaXhUb0Nh
bGwgZiwgSlNDOjpFeGVjU3RhdAogICAgICAgICBjb250ZXh0LnVuaWZvcm1NYXRyaXg0ZnYobG9j
YXRpb24sIHRyYW5zcG9zZSwgYXJyYXkuZGF0YSgpLCBhcnJheS5zaXplKCkpOwogICAgICAgICBi
cmVhazsKICAgICB9Ci0KICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAotSlNDOjpKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFmdihKU0M6OkV4ZWNTdGF0
ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFm
dihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdW5pZm9y
bTF2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6dW5pZm9ybTFpdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFpdihFeGVjU3RhdGUmIHN0YXRl
KQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5pZm9ybTF2LCBzdGF0ZSwgd3JhcHBl
ZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5p
Zm9ybTJmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dW5pZm9ybTJmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBk
YXRhRnVuY3Rpb25mKGZfdW5pZm9ybTJ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTJpdihKU0M6OkV4ZWNT
dGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9y
bTJpdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5p
Zm9ybTJ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTNmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTNmdihFeGVjU3RhdGUmIHN0
YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdW5pZm9ybTN2LCBzdGF0ZSwgd3Jh
cHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
dW5pZm9ybTNpdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6dW5pZm9ybTNpdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVy
biBkYXRhRnVuY3Rpb25pKGZfdW5pZm9ybTN2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlND
OjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTRmdihKU0M6OkV4
ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5p
Zm9ybTRmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZf
dW5pZm9ybTR2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTRpdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTRpdihFeGVjU3RhdGUm
IHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5pZm9ybTR2LCBzdGF0ZSwg
d3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6dW5pZm9ybU1hdHJpeDJmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDJmdihFeGVjU3RhdGUmIHN0YXRl
KQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25NYXRyaXgoZl91bmlmb3JtTWF0cml4MmZ2LCBz
dGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDNmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDNmdihFeGVjU3RhdGUm
IHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25NYXRyaXgoZl91bmlmb3JtTWF0cml4
M2Z2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDRmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDRmdihFeGVj
U3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25NYXRyaXgoZl91bmlmb3Jt
TWF0cml4NGZ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMWZ2KEpTQzo6RXhlY1N0YXRlJiBzdGF0
ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWIxZnYo
RXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3ZlcnRleEF0
dHJpYjF2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMmZ2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkK
K0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWIyZnYoRXhl
Y1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3ZlcnRleEF0dHJp
YjJ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliM2Z2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pT
VmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWIzZnYoRXhlY1N0
YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3ZlcnRleEF0dHJpYjN2
LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dmVydGV4QXR0cmliNGZ2KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFs
dWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWI0ZnYoRXhlY1N0YXRl
JiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3ZlcnRleEF0dHJpYjR2LCBz
dGF0ZSwgd3JhcHBlZCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IDlmYTI5NDA3OGJiYWNhM2RjMjc2MTA3MGE0OGIy
OGI1YjcyY2M2NGQuLjQwZTY3MjVkNTMyNWI5Y2UyM2ZmZGZiY2NkNGM1ZmRlYTBhNmUwZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNw
cApAQCAtMTM1LDYgKzEzNSwxMCBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1
bGVMb2FkZXI6OnJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYQogCiBKU0M6OkpT
SW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxP
YmplY3QqIGpzR2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVs
ZUxvYWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSwgSlNDOjpKU1ZhbHVlIGluaXRp
YXRvcikKIHsKKyAgICAvLyBGSVhNRTogV2hhdCBndWFyYW50ZWVzIHRoZXNlIGFyZSB0cnVlPyBX
aHkgZG9uJ3Qgd2UgbmVlZCB0byBjaGVjaz8KKyAgICBBU1NFUlQoSlNDOjpqc0R5bmFtaWNDYXN0
PEpTRWxlbWVudCo+KGluaXRpYXRvcikpOworICAgIEFTU0VSVChpc1NjcmlwdEVsZW1lbnQoSlND
Ojpqc0R5bmFtaWNDYXN0PEpTRWxlbWVudCo+KGluaXRpYXRvciktPndyYXBwZWQoKSkpOworCiAg
ICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKkpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
anNHbG9iYWxPYmplY3QpOwogICAgIGF1dG8mIGpzUHJvbWlzZSA9ICpKU0M6OkpTSW50ZXJuYWxQ
cm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCAmZ2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIGRl
ZmVycmVkID0gRGVmZXJyZWRQcm9taXNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBqc1Byb21pc2Up
OwpAQCAtMTU2LDE3ICsxNjAsMTIgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9k
dWxlTG9hZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE8KICAgICAgICAg
cmV0dXJuIGpzUHJvbWlzZS5wcm9taXNlKCk7CiAgICAgfQogCi0gICAgQVNTRVJUX1dJVEhfTUVT
U0FHRShKU0M6OmpzRHluYW1pY0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKSwgIkluaXRpYXRv
ciBzaG91bGQgYmUgYW4gSlNFbGVtZW50Iik7Ci0gICAgYXV0byogc2NyaXB0RWxlbWVudCA9IHRv
U2NyaXB0RWxlbWVudElmUG9zc2libGUoJkpTQzo6anNDYXN0PEpTRWxlbWVudCo+KGluaXRpYXRv
ciktPndyYXBwZWQoKSk7Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRShzY3JpcHRFbGVtZW50LCAi
SW5pdGlhdG9yIHNob3VsZCBiZSBTY3JpcHRFbGVtZW50LiIpOwotCiAgICAgaWYgKGF1dG8qIGZy
YW1lID0gbV9kb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGF1dG8gbG9hZGVyID0gQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdldCgpKTsKICAgICAg
ICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKLSAgICAgICAgaWYgKCFsb2FkZXIt
PmxvYWQoKnNjcmlwdEVsZW1lbnQsIGNvbXBsZXRlZFVSTCkpIHsKKyAgICAgICAgaWYgKCFsb2Fk
ZXItPmxvYWQoZG93bmNhc3RTY3JpcHRFbGVtZW50KEpTQzo6anNDYXN0PEpTRWxlbWVudCo+KGlu
aXRpYXRvciktPndyYXBwZWQoKSksIGNvbXBsZXRlZFVSTCkpIHsKICAgICAgICAgICAgIGxvYWRl
ci0+Y2xlYXJDbGllbnQoKTsKICAgICAgICAgICAgIG1fbG9hZGVycy5yZW1vdmUoV1RGTW92ZShs
b2FkZXIpKTsKLQogICAgICAgICAgICAgZGVmZXJyZWQtPnJlamVjdChmcmFtZS0+c2NyaXB0KCku
bW9kdWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2woKSk7CiAgICAgICAgICAgICBy
ZXR1cm4ganNQcm9taXNlLnByb21pc2UoKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApp
bmRleCA0YzQzYmRkMWQ3ZTQ4Mjc2MzllYWEzZjQ1N2E4NTRhNTcyNTZlMGEwLi43MDU4Y2FiNzk2
MmZkMzJmNjYyZTk4ZmM3NjBiMGY3NzBmZDU0YzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
OTksOCArOTksOCBAQCBjbGFzcyBEb2N1bWVudFBhcnNlcjsKIGNsYXNzIERvY3VtZW50U2hhcmVk
T2JqZWN0UG9vbDsKIGNsYXNzIERvY3VtZW50VHlwZTsKIGNsYXNzIEV4dGVuc2lvblN0eWxlU2hl
ZXRzOwotY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgRmxvYXRRdWFkOworY2xhc3MgRmxvYXRSZWN0
OwogY2xhc3MgRm9ybUNvbnRyb2xsZXI7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1lVmlldzsK
QEAgLTEyMSwxMSArMTIxLDEwIEBAIGNsYXNzIEhUTUxTY3JpcHRFbGVtZW50OwogY2xhc3MgSGl0
VGVzdFJlcXVlc3Q7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xhc3MgSW50UG9pbnQ7CitjbGFz
cyBKU05vZGU7CiBjbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExheW91dFJlY3Q7CiBjbGFzcyBM
aXZlTm9kZUxpc3Q7Ci1jbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXI7Ci1jbGFzcyBKU05vZGU7CiBj
bGFzcyBMb2NhbGU7CiBjbGFzcyBMb2NhdGlvbjsKIGNsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0ZW5l
cjsKQEAgLTEzMyw3ICsxMzIsNiBAQCBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0OwogY2xhc3Mg
TWVkaWFQbGF5YmFja1RhcmdldENsaWVudDsKIGNsYXNzIE1lZGlhUXVlcnlMaXN0OwogY2xhc3Mg
TWVkaWFRdWVyeU1hdGNoZXI7Ci1jbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXI7CiBjbGFzcyBNb3Vz
ZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3MgTmFtZWRGbG93Q29sbGVjdGlvbjsKIGNs
YXNzIE5vZGVGaWx0ZXI7CkBAIC0xNDMsMjMgKzE0MSwyNCBAQCBjbGFzcyBQbGF0Zm9ybU1vdXNl
RXZlbnQ7CiBjbGFzcyBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb247CiBjbGFzcyBRdWFsaWZpZWROYW1l
OwogY2xhc3MgUmFuZ2U7Ci1jbGFzcyBSZW5kZXJWaWV3OwogY2xhc3MgUmVuZGVyRnVsbFNjcmVl
bjsKLWNsYXNzIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlcjsKK2NsYXNzIFJlbmRlclZpZXc7Citj
bGFzcyBTVkdEb2N1bWVudEV4dGVuc2lvbnM7CitjbGFzcyBTVkdTVkdFbGVtZW50OwogY2xhc3Mg
U2NyaXB0RWxlbWVudERhdGE7CitjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXI7CiBjbGFzcyBTY3Jp
cHRSdW5uZXI7CitjbGFzcyBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBTZWN1cml0
eU9yaWdpbjsKK2NsYXNzIFNlZ21lbnRlZFN0cmluZzsKIGNsYXNzIFNlbGVjdG9yUXVlcnk7CiBj
bGFzcyBTZWxlY3RvclF1ZXJ5Q2FjaGU7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7Ci1j
bGFzcyBTZWdtZW50ZWRTdHJpbmc7CiBjbGFzcyBTZXR0aW5nczsKIGNsYXNzIFN0eWxlUmVzb2x2
ZXI7CiBjbGFzcyBTdHlsZVNoZWV0OwogY2xhc3MgU3R5bGVTaGVldENvbnRlbnRzOwogY2xhc3Mg
U3R5bGVTaGVldExpc3Q7Ci1jbGFzcyBTVkdEb2N1bWVudEV4dGVuc2lvbnM7Ci1jbGFzcyBTVkdT
VkdFbGVtZW50OwogY2xhc3MgVGV4dDsKIGNsYXNzIFRleHRSZXNvdXJjZURlY29kZXI7CiBjbGFz
cyBUcmVlV2Fsa2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3Jp
cHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuY3BwCmluZGV4IDJiZTBl
MmViOTAzMmRkMzg5YWI1NzRkNDgwODYwNGYyZTZiZmI1NDkuLjE4MzhjNGY1ZDIwZGMzZjY1MjZi
OGE3MjYyMzIyODJjZDQ5ZWExODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5k
aW5nU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5jcHAK
QEAgLTI2LDMwICsyNiwzMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBlbmRp
bmdTY3JpcHQuaCIKIAotI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJQZW5kaW5nU2Ny
aXB0Q2xpZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVJlZjxQZW5kaW5nU2NyaXB0PiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoRWxlbWVu
dCYgZWxlbWVudCwgTG9hZGFibGVTY3JpcHQmIGxvYWRhYmxlU2NyaXB0KQorUmVmPFBlbmRpbmdT
Y3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShTY3JpcHRFbGVtZW50JiBlbGVtZW50LCBMb2Fk
YWJsZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQpCiB7Ci0gICAgUmVmPFBlbmRpbmdTY3JpcHQ+IHBl
bmRpbmdTY3JpcHQgPSBhZG9wdFJlZigqbmV3IFBlbmRpbmdTY3JpcHQoZWxlbWVudCwgbG9hZGFi
bGVTY3JpcHQpKTsKKyAgICBhdXRvIHBlbmRpbmdTY3JpcHQgPSBhZG9wdFJlZigqbmV3IFBlbmRp
bmdTY3JpcHQoZWxlbWVudCwgbG9hZGFibGVTY3JpcHQpKTsKICAgICBsb2FkYWJsZVNjcmlwdC5h
ZGRDbGllbnQocGVuZGluZ1NjcmlwdC5nZXQoKSk7CiAgICAgcmV0dXJuIHBlbmRpbmdTY3JpcHQ7
CiB9CiAKLVJlZjxQZW5kaW5nU2NyaXB0PiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoRWxlbWVudCYg
ZWxlbWVudCwgVGV4dFBvc2l0aW9uIHNjcmlwdFN0YXJ0UG9zaXRpb24pCitSZWY8UGVuZGluZ1Nj
cmlwdD4gUGVuZGluZ1NjcmlwdDo6Y3JlYXRlKFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQsIFRleHRQ
b3NpdGlvbiBzY3JpcHRTdGFydFBvc2l0aW9uKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFBlbmRpbmdTY3JpcHQoZWxlbWVudCwgc2NyaXB0U3RhcnRQb3NpdGlvbikpOwogfQogCi1QZW5k
aW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KEVsZW1lbnQmIGVsZW1lbnQsIFRleHRQb3NpdGlvbiBz
dGFydGluZ1Bvc2l0aW9uKQorUGVuZGluZ1NjcmlwdDo6UGVuZGluZ1NjcmlwdChTY3JpcHRFbGVt
ZW50JiBlbGVtZW50LCBUZXh0UG9zaXRpb24gc3RhcnRpbmdQb3NpdGlvbikKICAgICA6IG1fZWxl
bWVudChlbGVtZW50KQogICAgICwgbV9zdGFydGluZ1Bvc2l0aW9uKHN0YXJ0aW5nUG9zaXRpb24p
CiB7CiB9CiAKLVBlbmRpbmdTY3JpcHQ6OlBlbmRpbmdTY3JpcHQoRWxlbWVudCYgZWxlbWVudCwg
TG9hZGFibGVTY3JpcHQmIGxvYWRhYmxlU2NyaXB0KQorUGVuZGluZ1NjcmlwdDo6UGVuZGluZ1Nj
cmlwdChTY3JpcHRFbGVtZW50JiBlbGVtZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9hZGFibGVTY3Jp
cHQpCiAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKICAgICAsIG1fbG9hZGFibGVTY3JpcHQoJmxv
YWRhYmxlU2NyaXB0KQogewpAQCAtNjEsMTEgKzYxLDYgQEAgUGVuZGluZ1NjcmlwdDo6flBlbmRp
bmdTY3JpcHQoKQogICAgICAgICBtX2xvYWRhYmxlU2NyaXB0LT5yZW1vdmVDbGllbnQoKnRoaXMp
OwogfQogCi1Mb2FkYWJsZVNjcmlwdCogUGVuZGluZ1NjcmlwdDo6bG9hZGFibGVTY3JpcHQoKSBj
b25zdAotewotICAgIHJldHVybiBtX2xvYWRhYmxlU2NyaXB0LmdldCgpOwotfQotCiB2b2lkIFBl
bmRpbmdTY3JpcHQ6Om5vdGlmeUNsaWVudEZpbmlzaGVkKCkKIHsKICAgICBSZWY8UGVuZGluZ1Nj
cmlwdD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CkBAIC04OCwxMCArODMsMTAgQEAgYm9vbCBQZW5k
aW5nU2NyaXB0OjplcnJvcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fbG9hZGFibGVTY3JpcHQgJiYg
bV9sb2FkYWJsZVNjcmlwdC0+ZXJyb3IoKTsKIH0KIAotdm9pZCBQZW5kaW5nU2NyaXB0OjpzZXRD
bGllbnQoUGVuZGluZ1NjcmlwdENsaWVudCogY2xpZW50KQordm9pZCBQZW5kaW5nU2NyaXB0Ojpz
ZXRDbGllbnQoUGVuZGluZ1NjcmlwdENsaWVudCYgY2xpZW50KQogewogICAgIEFTU0VSVCghbV9j
bGllbnQpOwotICAgIG1fY2xpZW50ID0gY2xpZW50OworICAgIG1fY2xpZW50ID0gJmNsaWVudDsK
ICAgICBpZiAoaXNMb2FkZWQoKSkKICAgICAgICAgbm90aWZ5Q2xpZW50RmluaXNoZWQoKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5oCmluZGV4IDk5MGYyNTA4M2IwMWIwMjdjNGFjMDE0
MTdmOGY0OTE2YTllOGU2NjYuLmZjNzU4ZDA3ZGQ2MGRlYzMxOGJiODhkYWQwNzg3Zjg0ODgyZjgy
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaApAQCAtMzQsMTUgKzM0LDE1IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFNjcmlwdDsKLWNsYXNzIEVsZW1lbnQ7
CiBjbGFzcyBQZW5kaW5nU2NyaXB0Q2xpZW50OworY2xhc3MgU2NyaXB0RWxlbWVudDsKIAogLy8g
QSBjb250YWluZXIgZm9yIHNjcmlwdHMgd2hpY2ggbWF5IGJlIGxvYWRlZCBhbmQgZXhlY3V0ZWQu
CiAvLyBUaGlzIGNhbiBob2xkIExvYWRhYmxlU2NyaXB0IGFuZCBub24gZXh0ZXJuYWwgaW5saW5l
IHNjcmlwdC4KIGNsYXNzIFBlbmRpbmdTY3JpcHQgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxQ
ZW5kaW5nU2NyaXB0PiwgcHVibGljIExvYWRhYmxlU2NyaXB0Q2xpZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IGNyZWF0ZShFbGVtZW50JiwgTG9hZGFibGVTY3Jp
cHQmKTsKLSAgICBzdGF0aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IGNyZWF0ZShFbGVtZW50JiwgVGV4
dFBvc2l0aW9uIHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgIHN0YXRpYyBSZWY8UGVuZGluZ1Nj
cmlwdD4gY3JlYXRlKFNjcmlwdEVsZW1lbnQmLCBMb2FkYWJsZVNjcmlwdCYpOworICAgIHN0YXRp
YyBSZWY8UGVuZGluZ1NjcmlwdD4gY3JlYXRlKFNjcmlwdEVsZW1lbnQmLCBUZXh0UG9zaXRpb24g
c2NyaXB0U3RhcnRQb3NpdGlvbik7CiAKICAgICB2aXJ0dWFsIH5QZW5kaW5nU2NyaXB0KCk7CiAK
QEAgLTUxLDggKzUxLDggQEAgcHVibGljOgogCiAgICAgYm9vbCB3YXRjaGluZ0ZvckxvYWQoKSBj
b25zdCB7IHJldHVybiBuZWVkc0xvYWRpbmcoKSAmJiBtX2NsaWVudDsgfQogCi0gICAgRWxlbWVu
dCYgZWxlbWVudCgpIHsgcmV0dXJuIG1fZWxlbWVudC5nZXQoKTsgfQotICAgIGNvbnN0IEVsZW1l
bnQmIGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0KKyAgICBTY3Jp
cHRFbGVtZW50JiBlbGVtZW50KCkgeyByZXR1cm4gbV9lbGVtZW50LmdldCgpOyB9CisgICAgY29u
c3QgU2NyaXB0RWxlbWVudCYgZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudC5nZXQo
KTsgfQogCiAgICAgTG9hZGFibGVTY3JpcHQqIGxvYWRhYmxlU2NyaXB0KCkgY29uc3Q7CiAgICAg
Ym9vbCBuZWVkc0xvYWRpbmcoKSBjb25zdCB7IHJldHVybiBsb2FkYWJsZVNjcmlwdCgpOyB9CkBA
IC02MiwxOSArNjIsMjQgQEAgcHVibGljOgogCiAgICAgdm9pZCBub3RpZnlGaW5pc2hlZChMb2Fk
YWJsZVNjcmlwdCYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZXRDbGllbnQoUGVuZGluZ1Njcmlw
dENsaWVudCopOworICAgIHZvaWQgc2V0Q2xpZW50KFBlbmRpbmdTY3JpcHRDbGllbnQmKTsKICAg
ICB2b2lkIGNsZWFyQ2xpZW50KCk7CiAKIHByaXZhdGU6Ci0gICAgUGVuZGluZ1NjcmlwdChFbGVt
ZW50JiwgTG9hZGFibGVTY3JpcHQmKTsKLSAgICBQZW5kaW5nU2NyaXB0KEVsZW1lbnQmLCBUZXh0
UG9zaXRpb24gc3RhcnRpbmdQb3NpdGlvbik7CisgICAgUGVuZGluZ1NjcmlwdChTY3JpcHRFbGVt
ZW50JiwgTG9hZGFibGVTY3JpcHQmKTsKKyAgICBQZW5kaW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQm
LCBUZXh0UG9zaXRpb24gc3RhcnRpbmdQb3NpdGlvbik7CiAKICAgICB2b2lkIG5vdGlmeUNsaWVu
dEZpbmlzaGVkKCk7CiAKLSAgICBSZWY8RWxlbWVudD4gbV9lbGVtZW50OworICAgIFJlZjxTY3Jp
cHRFbGVtZW50PiBtX2VsZW1lbnQ7CiAgICAgVGV4dFBvc2l0aW9uIG1fc3RhcnRpbmdQb3NpdGlv
bjsgLy8gT25seSB1c2VkIGZvciBpbmxpbmUgc2NyaXB0IHRhZ3MuCiAgICAgUmVmUHRyPExvYWRh
YmxlU2NyaXB0PiBtX2xvYWRhYmxlU2NyaXB0OwogICAgIFBlbmRpbmdTY3JpcHRDbGllbnQqIG1f
Y2xpZW50IHsgbnVsbHB0ciB9OwogfTsKIAoraW5saW5lIExvYWRhYmxlU2NyaXB0KiBQZW5kaW5n
U2NyaXB0Ojpsb2FkYWJsZVNjcmlwdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbG9hZGFibGVT
Y3JpcHQuZ2V0KCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRl
eCA2MWYyNDgyZjU4NzFkOGFkMGI3NTI2ZjZmNDQ1YmNkYjc3NGZjNDhmLi5kODQ2YzUxODhjMTVm
NjYwMjFmM2U4ZTRiZWU2Y2NkNjI0ZDMzZTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuY3BwCkBAIC0yNjMsMTEgKzI2MywxMSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnByZXBhcmVT
Y3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uLCBMZWdhYwogICAg
IH0gZWxzZSBpZiAoKGlzQ2xhc3NpY0V4dGVybmFsU2NyaXB0IHx8IHNjcmlwdFR5cGUgPT0gU2Ny
aXB0VHlwZTo6TW9kdWxlKSAmJiAhYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpICYmICFtX2ZvcmNlQXN5
bmMpIHsKICAgICAgICAgbV93aWxsRXhlY3V0ZUluT3JkZXIgPSB0cnVlOwogICAgICAgICBBU1NF
UlQobV9sb2FkYWJsZVNjcmlwdCk7Ci0gICAgICAgIGRvY3VtZW50LnNjcmlwdFJ1bm5lcigpLT5x
dWV1ZVNjcmlwdEZvckV4ZWN1dGlvbih0aGlzLCAqbV9sb2FkYWJsZVNjcmlwdCwgU2NyaXB0UnVu
bmVyOjpJTl9PUkRFUl9FWEVDVVRJT04pOworICAgICAgICBkb2N1bWVudC5zY3JpcHRSdW5uZXIo
KS0+cXVldWVTY3JpcHRGb3JFeGVjdXRpb24oKnRoaXMsICptX2xvYWRhYmxlU2NyaXB0LCBTY3Jp
cHRSdW5uZXI6OklOX09SREVSX0VYRUNVVElPTik7CiAgICAgfSBlbHNlIGlmIChoYXNTb3VyY2VB
dHRyaWJ1dGUoKSB8fCBzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6Ok1vZHVsZSkgewogICAgICAg
ICBBU1NFUlQobV9sb2FkYWJsZVNjcmlwdCk7CiAgICAgICAgIEFTU0VSVChhc3luY0F0dHJpYnV0
ZVZhbHVlKCkgfHwgbV9mb3JjZUFzeW5jKTsKLSAgICAgICAgZG9jdW1lbnQuc2NyaXB0UnVubmVy
KCktPnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKHRoaXMsICptX2xvYWRhYmxlU2NyaXB0LCBTY3Jp
cHRSdW5uZXI6OkFTWU5DX0VYRUNVVElPTik7CisgICAgICAgIGRvY3VtZW50LnNjcmlwdFJ1bm5l
cigpLT5xdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbigqdGhpcywgKm1fbG9hZGFibGVTY3JpcHQsIFNj
cmlwdFJ1bm5lcjo6QVNZTkNfRVhFQ1VUSU9OKTsKICAgICB9IGVsc2UgaWYgKCFoYXNTb3VyY2VB
dHRyaWJ1dGUoKSAmJiBtX3BhcnNlckluc2VydGVkICYmICFkb2N1bWVudC5oYXZlU3R5bGVzaGVl
dHNMb2FkZWQoKSkgewogICAgICAgICBBU1NFUlQoc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpD
bGFzc2ljKTsKICAgICAgICAgbV93aWxsQmVQYXJzZXJFeGVjdXRlZCA9IHRydWU7CkBAIC00ODcs
MTUgKzQ4NywyNiBAQCBTdHJpbmcgU2NyaXB0RWxlbWVudDo6c2NyaXB0Q29udGVudCgpIGNvbnN0
CiAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwogfQogCi1TY3JpcHRFbGVtZW50KiB0b1Nj
cmlwdEVsZW1lbnRJZlBvc3NpYmxlKEVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIFNjcmlwdEVsZW1l
bnQ6OnJlZigpCiB7Ci0gICAgaWYgKGlzPEhUTUxTY3JpcHRFbGVtZW50PigqZWxlbWVudCkpCi0g
ICAgICAgIHJldHVybiBkb3duY2FzdDxIVE1MU2NyaXB0RWxlbWVudD4oZWxlbWVudCk7CisgICAg
bV9lbGVtZW50LnJlZigpOworfQogCi0gICAgaWYgKGlzPFNWR1NjcmlwdEVsZW1lbnQ+KCplbGVt
ZW50KSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PFNWR1NjcmlwdEVsZW1lbnQ+KGVsZW1lbnQp
Owordm9pZCBTY3JpcHRFbGVtZW50OjpkZXJlZigpCit7CisgICAgbV9lbGVtZW50LmRlcmVmKCk7
Cit9CiAKLSAgICByZXR1cm4gbnVsbHB0cjsKK2Jvb2wgaXNTY3JpcHRFbGVtZW50KEVsZW1lbnQm
IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIGlzPEhUTUxTY3JpcHRFbGVtZW50PihlbGVtZW50KSB8
fCBpczxTVkdTY3JpcHRFbGVtZW50PihlbGVtZW50KTsKK30KKworU2NyaXB0RWxlbWVudCYgZG93
bmNhc3RTY3JpcHRFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgaWYgKGlzPEhUTUxT
Y3JpcHRFbGVtZW50PihlbGVtZW50KSkKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PEhUTUxTY3Jp
cHRFbGVtZW50PihlbGVtZW50KTsKKyAgICByZXR1cm4gZG93bmNhc3Q8U1ZHU2NyaXB0RWxlbWVu
dD4oZWxlbWVudCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCmluZGV4IDQw
NzljMTcwOTMyMTc4NDA4N2U5ZTNmNzMyMzQ2YzU1ODAwZjdiMTQuLmMwNzEwNjNlZDYyZDk4ZmJk
MGVmY2I3NTljMjBiZTA0NTVkMjVlMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaApA
QCAtMzEsMTMgKzMxLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVk
TW9kdWxlU2NyaXB0OwogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ29udGFpbmVyTm9kZTsK
IGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBQZW5kaW5nU2NyaXB0OwotY2xhc3MgU2NyaXB0RWxlbWVu
dDsKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7Ci1jbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHQ7CiAK
IGNsYXNzIFNjcmlwdEVsZW1lbnQgewogcHVibGljOgpAQCAtNzMsNiArNzIsOSBAQCBwdWJsaWM6
CiAgICAgZW51bSBjbGFzcyBTY3JpcHRUeXBlIHsgQ2xhc3NpYywgTW9kdWxlIH07CiAgICAgU2Ny
aXB0VHlwZSBzY3JpcHRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9pc01vZHVsZVNjcmlwdCA/IFNj
cmlwdFR5cGU6Ok1vZHVsZSA6IFNjcmlwdFR5cGU6OkNsYXNzaWM7IH0KIAorICAgIHZvaWQgcmVm
KCk7CisgICAgdm9pZCBkZXJlZigpOworCiBwcm90ZWN0ZWQ6CiAgICAgU2NyaXB0RWxlbWVudChF
bGVtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIsIGJvb2wgaXNFdmFsdWF0ZWQpOwogCkBAIC0x
MjcsNyArMTI5LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TG9hZGFibGVTY3JpcHQ+IG1fbG9h
ZGFibGVTY3JpcHQ7CiB9OwogCi0vLyBGSVhNRTogcmVwbGFjZSB3aXRoIGRvd25jYXN0PFNjcmlw
dEVsZW1lbnQ+LgotU2NyaXB0RWxlbWVudCogdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShFbGVt
ZW50Kik7CisvLyBGSVhNRTogcmVwbGFjZSB3aXRoIGlzL2Rvd25jYXN0PFNjcmlwdEVsZW1lbnQ+
LgorYm9vbCBpc1NjcmlwdEVsZW1lbnQoRWxlbWVudCYpOworU2NyaXB0RWxlbWVudCYgZG93bmNh
c3RTY3JpcHRFbGVtZW50KEVsZW1lbnQmKTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVy
LmNwcAppbmRleCA3MDk4OWViNDBjMDQ1YWRlNzc0YWU1N2QwOWE0MDQ4YjU5ZTM4ODA0Li4wZTdl
ZmQ2YzI5ZTFiYTk1NWY3MWZkNDljNzk5ZWU1OGE5MWM0MGU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0UnVubmVyLmNwcApAQCAtNTYsMjYgKzU2LDIyIEBAIFNjcmlwdFJ1bm5lcjo6flNjcmlwdFJ1
bm5lcigpCiAgICAgfQogfQogCi12b2lkIFNjcmlwdFJ1bm5lcjo6cXVldWVTY3JpcHRGb3JFeGVj
dXRpb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgTG9hZGFibGVTY3JpcHQmIGxvYWRh
YmxlU2NyaXB0LCBFeGVjdXRpb25UeXBlIGV4ZWN1dGlvblR5cGUpCit2b2lkIFNjcmlwdFJ1bm5l
cjo6cXVldWVTY3JpcHRGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCYgc2NyaXB0RWxlbWVudCwg
TG9hZGFibGVTY3JpcHQmIGxvYWRhYmxlU2NyaXB0LCBFeGVjdXRpb25UeXBlIGV4ZWN1dGlvblR5
cGUpCiB7Ci0gICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOwotCi0gICAgRWxlbWVudCYgZWxlbWVu
dCA9IHNjcmlwdEVsZW1lbnQtPmVsZW1lbnQoKTsKLSAgICBBU1NFUlQoZWxlbWVudC5pbkRvY3Vt
ZW50KCkpOworICAgIEFTU0VSVChzY3JpcHRFbGVtZW50LmVsZW1lbnQoKS5pbkRvY3VtZW50KCkp
OwogCiAgICAgbV9kb2N1bWVudC5pbmNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAKLSAg
ICBSZWY8UGVuZGluZ1NjcmlwdD4gcGVuZGluZ1NjcmlwdCA9IFBlbmRpbmdTY3JpcHQ6OmNyZWF0
ZShlbGVtZW50LCBsb2FkYWJsZVNjcmlwdCk7CisgICAgYXV0byBwZW5kaW5nU2NyaXB0ID0gUGVu
ZGluZ1NjcmlwdDo6Y3JlYXRlKHNjcmlwdEVsZW1lbnQsIGxvYWRhYmxlU2NyaXB0KTsKICAgICBz
d2l0Y2ggKGV4ZWN1dGlvblR5cGUpIHsKICAgICBjYXNlIEFTWU5DX0VYRUNVVElPTjoKICAgICAg
ICAgbV9wZW5kaW5nQXN5bmNTY3JpcHRzLmFkZChwZW5kaW5nU2NyaXB0LmNvcHlSZWYoKSk7CiAg
ICAgICAgIGJyZWFrOwotCiAgICAgY2FzZSBJTl9PUkRFUl9FWEVDVVRJT046CiAgICAgICAgIG1f
c2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuYXBwZW5kKHBlbmRpbmdTY3JpcHQuY29weVJlZigpKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIHBlbmRpbmdTY3JpcHQtPnNldENsaWVudCh0aGlz
KTsKKyAgICBwZW5kaW5nU2NyaXB0LT5zZXRDbGllbnQoKnRoaXMpOwogfQogCiB2b2lkIFNjcmlw
dFJ1bm5lcjo6c3VzcGVuZCgpCkBAIC05MSw5ICs4Nyw3IEBAIHZvaWQgU2NyaXB0UnVubmVyOjpy
ZXN1bWUoKQogCiB2b2lkIFNjcmlwdFJ1bm5lcjo6bm90aWZ5RmluaXNoZWQoUGVuZGluZ1Njcmlw
dCYgcGVuZGluZ1NjcmlwdCkKIHsKLSAgICBhdXRvKiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRF
bGVtZW50SWZQb3NzaWJsZSgmcGVuZGluZ1NjcmlwdC5lbGVtZW50KCkpOwotICAgIEFTU0VSVChz
Y3JpcHRFbGVtZW50KTsKLSAgICBpZiAoc2NyaXB0RWxlbWVudC0+d2lsbEV4ZWN1dGVJbk9yZGVy
KCkpCisgICAgaWYgKHBlbmRpbmdTY3JpcHQuZWxlbWVudCgpLndpbGxFeGVjdXRlSW5PcmRlcigp
KQogICAgICAgICBBU1NFUlQoIW1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpKTsK
ICAgICBlbHNlIHsKICAgICAgICAgQVNTRVJUKG1fcGVuZGluZ0FzeW5jU2NyaXB0cy5jb250YWlu
cyhwZW5kaW5nU2NyaXB0KSk7CkBAIC0xMjIsMTAgKzExNiw4IEBAIHZvaWQgU2NyaXB0UnVubmVy
Ojp0aW1lckZpcmVkKCkKICAgICAgICAgLy8gUGFwZXIgb3ZlciBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0MDUwCiAgICAgICAgIGlmICghc2NyaXB0KQogICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgIGF1dG8qIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVs
ZW1lbnRJZlBvc3NpYmxlKCZzY3JpcHQtPmVsZW1lbnQoKSk7Ci0gICAgICAgIEFTU0VSVChzY3Jp
cHRFbGVtZW50KTsKICAgICAgICAgQVNTRVJUKHNjcmlwdC0+bmVlZHNMb2FkaW5nKCkpOwotICAg
ICAgICBzY3JpcHRFbGVtZW50LT5leGVjdXRlUGVuZGluZ1NjcmlwdCgqc2NyaXB0KTsKKyAgICAg
ICAgc2NyaXB0LT5lbGVtZW50KCkuZXhlY3V0ZVBlbmRpbmdTY3JpcHQoKnNjcmlwdCk7CiAgICAg
ICAgIG1fZG9jdW1lbnQuZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaAppbmRleCBkZmNmM2M1ZmE5MGU0YTQ1MDk0MDQyZDg3
N2RlM2JjZTQ0ODAwZDlhLi4yYjllNjI4NTBiZGQzNWVhNzM0YzdiOGZmZmVkNzliZWMxMTdkYmZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoK
ICAgICB+U2NyaXB0UnVubmVyKCk7CiAKICAgICBlbnVtIEV4ZWN1dGlvblR5cGUgeyBBU1lOQ19F
WEVDVVRJT04sIElOX09SREVSX0VYRUNVVElPTiB9OwotICAgIHZvaWQgcXVldWVTY3JpcHRGb3JF
eGVjdXRpb24oU2NyaXB0RWxlbWVudCosIExvYWRhYmxlU2NyaXB0JiwgRXhlY3V0aW9uVHlwZSk7
CisgICAgdm9pZCBxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50JiwgTG9hZGFi
bGVTY3JpcHQmLCBFeGVjdXRpb25UeXBlKTsKICAgICBib29sIGhhc1BlbmRpbmdTY3JpcHRzKCkg
Y29uc3QgeyByZXR1cm4gIW1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3Nj
cmlwdHNUb0V4ZWN1dGVJbk9yZGVyLmlzRW1wdHkoKSB8fCAhbV9wZW5kaW5nQXN5bmNTY3JpcHRz
LmlzRW1wdHkoKTsgfQogICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCAxMzY3YjRmMjBlYTA5MTFkZjlj
ZGRjZjFjMTYyZTczOWQxZTAyNmUzLi40MTE5M2NlOGExMGM3MjhiODAyNWU2YzBmMTdkZDBlMzI4
OTNmZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTIyMSw3ICsy
MjEsNyBAQCBib29sIEZpbGVJbnB1dFR5cGU6OmNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3QKIAog
RmlsZUxpc3QqIEZpbGVJbnB1dFR5cGU6OmZpbGVzKCkKIHsKLSAgICByZXR1cm4gbV9maWxlTGlz
dC5nZXQoKTsKKyAgICByZXR1cm4gbV9maWxlTGlzdC5wdHIoKTsKIH0KIAogYm9vbCBGaWxlSW5w
dXRUeXBlOjpjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtMjU4LDEyICsyNTgs
MTIgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBU
ZXh0RmllbGRFdmVudEJlaGF2aW9yKQogICAgIGVsZW1lbnQoKS5pbnZhbGlkYXRlU3R5bGVGb3JT
dWJ0cmVlKCk7CiB9CiAKLVBhc3NSZWZQdHI8RmlsZUxpc3Q+IEZpbGVJbnB1dFR5cGU6OmNyZWF0
ZUZpbGVMaXN0KGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpIGNvbnN0
CitSZWY8RmlsZUxpc3Q+IEZpbGVJbnB1dFR5cGU6OmNyZWF0ZUZpbGVMaXN0KGNvbnN0IFZlY3Rv
cjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxGaWxl
Pj4gZmlsZU9iamVjdHM7Ci0gICAgZm9yIChjb25zdCBGaWxlQ2hvb3NlckZpbGVJbmZvJiBpbmZv
IDogZmlsZXMpCi0gICAgICAgIGZpbGVPYmplY3RzLmFwcGVuZChGaWxlOjpjcmVhdGVXaXRoTmFt
ZShpbmZvLnBhdGgsIGluZm8uZGlzcGxheU5hbWUpKTsKLQorICAgIGZpbGVPYmplY3RzLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkoZmlsZXMuc2l6ZSgpKTsKKyAgICBmb3IgKGF1dG8mIGluZm8gOiBm
aWxlcykKKyAgICAgICAgZmlsZU9iamVjdHMudW5jaGVja2VkQXBwZW5kKEZpbGU6OmNyZWF0ZVdp
dGhOYW1lKGluZm8ucGF0aCwgaW5mby5kaXNwbGF5TmFtZSkpOwogICAgIHJldHVybiBGaWxlTGlz
dDo6Y3JlYXRlKFdURk1vdmUoZmlsZU9iamVjdHMpKTsKIH0KIApAQCAtMzAyLDI5ICszMDIsMzIg
QEAgdm9pZCBGaWxlSW5wdXRUeXBlOjptdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQoKQogICAgICAg
ICBidXR0b24tPnNldFZhbHVlKGVsZW1lbnQoKS5tdWx0aXBsZSgpID8gZmlsZUJ1dHRvbkNob29z
ZU11bHRpcGxlRmlsZXNMYWJlbCgpIDogZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpKTsKIH0K
IAorI2lmICFQTEFURk9STShJT1MpCisKIHZvaWQgRmlsZUlucHV0VHlwZTo6cmVxdWVzdEljb24o
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKQogewotI2lmIFBMQVRGT1JNKElPUykKLSAgICBV
TlVTRURfUEFSQU0ocGF0aHMpOwotI2Vsc2UKICAgICBpZiAoIXBhdGhzLnNpemUoKSkgewotICAg
ICAgICB1cGRhdGVSZW5kZXJpbmcobnVsbHB0cik7CisgICAgICAgIGljb25Mb2FkZWQobnVsbHB0
cik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBDaHJvbWUqIGNocm9tZSA9IHRoaXMt
PmNocm9tZSgpOwotICAgIGlmICghY2hyb21lKQorICAgIGF1dG8qIGNocm9tZSA9IHRoaXMtPmNo
cm9tZSgpOworICAgIGlmICghY2hyb21lKSB7CisgICAgICAgIGljb25Mb2FkZWQobnVsbHB0cik7
CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBpZiAobV9maWxlSWNvbkxvYWRlcikKICAg
ICAgICAgbV9maWxlSWNvbkxvYWRlci0+aW52YWxpZGF0ZSgpOwogCi0gICAgbV9maWxlSWNvbkxv
YWRlciA9IHN0ZDo6bWFrZV91bmlxdWU8RmlsZUljb25Mb2FkZXI+KHN0YXRpY19jYXN0PEZpbGVJ
Y29uTG9hZGVyQ2xpZW50Jj4oKnRoaXMpKTsKKyAgICBGaWxlSWNvbkxvYWRlckNsaWVudCYgY2xp
ZW50ID0gKnRoaXM7CisgICAgbV9maWxlSWNvbkxvYWRlciA9IHN0ZDo6bWFrZV91bmlxdWU8Rmls
ZUljb25Mb2FkZXI+KGNsaWVudCk7CiAKLSAgICBjaHJvbWUtPmxvYWRJY29uRm9yRmlsZXMocGF0
aHMsIG1fZmlsZUljb25Mb2FkZXIuZ2V0KCkpOwotI2VuZGlmCisgICAgY2hyb21lLT5sb2FkSWNv
bkZvckZpbGVzKHBhdGhzLCAqbV9maWxlSWNvbkxvYWRlcik7CiB9CiAKKyNlbmRpZgorCiB2b2lk
IEZpbGVJbnB1dFR5cGU6OmFwcGx5RmlsZUNob29zZXJTZXR0aW5ncyhjb25zdCBGaWxlQ2hvb3Nl
clNldHRpbmdzJiBzZXR0aW5ncykKIHsKICAgICBpZiAobV9maWxlQ2hvb3NlcikKQEAgLTMzMywx
OCArMzM2LDIxIEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6YXBwbHlGaWxlQ2hvb3NlclNldHRpbmdz
KGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRpbmdzCiAgICAgbV9maWxlQ2hvb3NlciA9
IEZpbGVDaG9vc2VyOjpjcmVhdGUodGhpcywgc2V0dGluZ3MpOwogfQogCi12b2lkIEZpbGVJbnB1
dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+IGZpbGVzKQordm9pZCBGaWxlSW5w
dXRUeXBlOjpzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+JiYgZmlsZXMpCiB7CiAgICAgaWYgKCFm
aWxlcykKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0
KGVsZW1lbnQoKSk7CiAKKyAgICB1bnNpZ25lZCBsZW5ndGggPSBmaWxlcy0+bGVuZ3RoKCk7Cisg
ICAgdW5zaWduZWQgb2xkTGVuZ3RoID0gbV9maWxlTGlzdC0+bGVuZ3RoKCk7CisKICAgICBib29s
IHBhdGhzQ2hhbmdlZCA9IGZhbHNlOwotICAgIGlmIChmaWxlcy0+bGVuZ3RoKCkgIT0gbV9maWxl
TGlzdC0+bGVuZ3RoKCkpCisgICAgaWYgKGxlbmd0aCAhPSBvbGRMZW5ndGgpCiAgICAgICAgIHBh
dGhzQ2hhbmdlZCA9IHRydWU7CiAgICAgZWxzZSB7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBmaWxlcy0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIGlmIChmaWxlcy0+aXRlbShpKS0+
cGF0aCgpICE9IG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSkgewogICAgICAgICAgICAgICAg
IHBhdGhzQ2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0zNTIsMTUg
KzM1OCwxNyBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxp
c3Q+IGZpbGVzKQogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9maWxlTGlzdCA9IGZpbGVzOwor
ICAgIG1fZmlsZUxpc3QgPSBmaWxlcy5yZWxlYXNlTm9uTnVsbCgpOwogCiAgICAgaW5wdXQtPnNl
dEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CiAgICAgaW5wdXQtPnVwZGF0
ZVZhbGlkaXR5KCk7CiAKKyNpZiAhUExBVEZPUk0oSU9TKQogICAgIFZlY3RvcjxTdHJpbmc+IHBh
dGhzOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2ZpbGVMaXN0LT5sZW5ndGgoKTsg
KytpKQorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKICAgICAgICAg
cGF0aHMuYXBwZW5kKG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSk7CiAgICAgcmVxdWVzdElj
b24ocGF0aHMpOworI2VuZGlmCiAKICAgICBpZiAoaW5wdXQtPnJlbmRlcmVyKCkpCiAgICAgICAg
IGlucHV0LT5yZW5kZXJlcigpLT5yZXBhaW50KCk7CkBAIC0zNzQsMTcgKzM4MiwxOSBAQCB2b2lk
IEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+IGZpbGVzKQogfQog
CiAjaWYgUExBVEZPUk0oSU9TKQorCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKGNv
bnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgcGF0aHMsIGNvbnN0IFN0cmluZyYgZGlz
cGxheVN0cmluZywgSWNvbiogaWNvbikKIHsKICAgICBtX2Rpc3BsYXlTdHJpbmcgPSBkaXNwbGF5
U3RyaW5nOwogICAgIGZpbGVzQ2hvc2VuKHBhdGhzKTsKLSAgICB1cGRhdGVSZW5kZXJpbmcoaWNv
bik7CisgICAgaWNvbkxvYWRlZChpY29uKTsKIH0KIAogU3RyaW5nIEZpbGVJbnB1dFR5cGU6OmRp
c3BsYXlTdHJpbmcoKSBjb25zdAogewogICAgIHJldHVybiBtX2Rpc3BsYXlTdHJpbmc7CiB9CisK
ICNlbmRpZgogCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxG
aWxlQ2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpCkBAIC0zOTIsMTIgKzQwMiwxMiBAQCB2b2lkIEZp
bGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZv
PiYgZmlsZXMpCiAgICAgc2V0RmlsZXMoY3JlYXRlRmlsZUxpc3QoZmlsZXMpKTsKIH0KIAotdm9p
ZCBGaWxlSW5wdXRUeXBlOjp1cGRhdGVSZW5kZXJpbmcoUGFzc1JlZlB0cjxJY29uPiBpY29uKQor
dm9pZCBGaWxlSW5wdXRUeXBlOjppY29uTG9hZGVkKFJlZlB0cjxJY29uPiYmIGljb24pCiB7CiAg
ICAgaWYgKG1faWNvbiA9PSBpY29uKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2ljb24gPSBp
Y29uOworICAgIG1faWNvbiA9IFdURk1vdmUoaWNvbik7CiAgICAgaWYgKGVsZW1lbnQoKS5yZW5k
ZXJlcigpKQogICAgICAgICBlbGVtZW50KCkucmVuZGVyZXIoKS0+cmVwYWludCgpOwogfQpAQCAt
NDM0LDggKzQ0NCw3IEBAIEljb24qIEZpbGVJbnB1dFR5cGU6Omljb24oKSBjb25zdAogCiBTdHJp
bmcgRmlsZUlucHV0VHlwZTo6ZGVmYXVsdFRvb2xUaXAoKSBjb25zdAogewotICAgIEZpbGVMaXN0
KiBmaWxlTGlzdCA9IG1fZmlsZUxpc3QuZ2V0KCk7Ci0gICAgdW5zaWduZWQgbGlzdFNpemUgPSBm
aWxlTGlzdC0+bGVuZ3RoKCk7CisgICAgdW5zaWduZWQgbGlzdFNpemUgPSBtX2ZpbGVMaXN0LT5s
ZW5ndGgoKTsKICAgICBpZiAoIWxpc3RTaXplKSB7CiAgICAgICAgIGlmIChlbGVtZW50KCkubXVs
dGlwbGUoKSkKICAgICAgICAgICAgIHJldHVybiBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFi
ZWwoKTsKQEAgLTQ0Myw4ICs0NTIsOCBAQCBTdHJpbmcgRmlsZUlucHV0VHlwZTo6ZGVmYXVsdFRv
b2xUaXAoKSBjb25zdAogICAgIH0KIAogICAgIFN0cmluZ0J1aWxkZXIgbmFtZXM7Ci0gICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7Ci0gICAgICAgIG5hbWVzLmFwcGVu
ZChmaWxlTGlzdC0+aXRlbShpKS0+bmFtZSgpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbGlzdFNpemU7ICsraSkgeworICAgICAgICBuYW1lcy5hcHBlbmQobV9maWxlTGlzdC0+aXRl
bShpKS0+bmFtZSgpKTsKICAgICAgICAgaWYgKGkgIT0gbGlzdFNpemUgLSAxKQogICAgICAgICAg
ICAgbmFtZXMuYXBwZW5kKCdcbicpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmlsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBl
LmgKaW5kZXggZjhhMGRmZjJkOGQzYzMwNWYwMWExZGY4Yzg5MWEyOTBlMzY1NjNmMS4uZWU0MDY0
OGQ2OTUxZGE2YWQyOTM5YTAyZjUzNmU3Nzg4NjljMmY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmgKQEAgLTUwLDQ1ICs1MCw0NSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFZlY3Rv
cjxGaWxlQ2hvb3NlckZpbGVJbmZvPiBmaWxlc0Zyb21Gb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZv
cm1Db250cm9sU3RhdGUmKTsKIAogcHJpdmF0ZToKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGZv
cm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIEZvcm1Db250cm9sU3RhdGUgc2F2
ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHJlc3RvcmVGb3Jt
Q29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKSBvdmVycmlkZTsKLSAgICBib29s
IGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0IG92ZXJyaWRlOwotICAg
IGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwotICAgIFN0
cmluZyB2YWx1ZU1pc3NpbmdUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoYW5kbGVE
T01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7Ci0gICAgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUlucHV0UmVuZGVyZXIoUmVuZGVyU3R5bGUmJikgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBjYW5TZXRTdHJpbmdWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIEZpbGVMaXN0KiBm
aWxlcygpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4p
IG92ZXJyaWRlOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29u
c3QgZmluYWw7CisgICAgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNv
bnN0IGZpbmFsOworICAgIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNv
bnRyb2xTdGF0ZSYpIGZpbmFsOworICAgIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0
JiwgYm9vbCkgY29uc3QgZmluYWw7CisgICAgYm9vbCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5n
JikgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIHZhbHVlTWlzc2luZ1RleHQoKSBjb25zdCBmaW5h
bDsKKyAgICB2b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBmaW5hbDsKKyAgICBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYm
KSBmaW5hbDsKKyAgICBib29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3QgZmluYWw7CisgICAg
RmlsZUxpc3QqIGZpbGVzKCkgZmluYWw7CisgICAgdm9pZCBzZXRGaWxlcyhSZWZQdHI8RmlsZUxp
c3Q+JiYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICBTdHJpbmcgZGlzcGxheVN0cmlu
ZygpIGNvbnN0IG92ZXJyaWRlOworICAgIFN0cmluZyBkaXNwbGF5U3RyaW5nKCkgY29uc3QgZmlu
YWw7CiAjZW5kaWYKLSAgICBib29sIGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRl
OwotICAgIGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5nJikgb3ZlcnJpZGU7IC8vIENo
ZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdlIG9yIHRoZSB2YWx1ZSBhdHRyaWJ1
dGUuCi0gICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwg
VGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TZXRWYWx1ZShj
b25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIGdldFR5cGVTcGVjaWZpY1ZhbHVlKFN0cmlu
ZyYpIGZpbmFsOyAvLyBDaGVja2VkIGZpcnN0LCBiZWZvcmUgaW50ZXJuYWwgc3RvcmFnZSBvciB0
aGUgdmFsdWUgYXR0cmlidXRlLgorICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9v
bCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIGZpbmFsOwogCiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKLSAgICBib29sIHJlY2VpdmVEcm9wcGVkRmlsZXMoY29uc3QgRHJh
Z0RhdGEmKSBvdmVycmlkZTsKKyAgICBib29sIHJlY2VpdmVEcm9wcGVkRmlsZXMoY29uc3QgRHJh
Z0RhdGEmKSBmaW5hbDsKICNlbmRpZgogCi0gICAgSWNvbiogaWNvbigpIGNvbnN0IG92ZXJyaWRl
OwotICAgIGJvb2wgaXNGaWxlVXBsb2FkKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjcmVh
dGVTaGFkb3dTdWJ0cmVlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNhYmxlZEF0dHJpYnV0ZUNo
YW5nZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIG11bHRpcGxlQXR0cmlidXRlQ2hhbmdlZCgpIG92
ZXJyaWRlOwotICAgIFN0cmluZyBkZWZhdWx0VG9vbFRpcCgpIGNvbnN0IG92ZXJyaWRlOworICAg
IEljb24qIGljb24oKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGlzRmlsZVVwbG9hZCgpIGNvbnN0
IGZpbmFsOworICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOworICAgIHZvaWQg
ZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2VkKCkgZmluYWw7CisgICAgdm9pZCBtdWx0aXBsZUF0dHJp
YnV0ZUNoYW5nZWQoKSBmaW5hbDsKKyAgICBTdHJpbmcgZGVmYXVsdFRvb2xUaXAoKSBjb25zdCBm
aW5hbDsKIAogICAgIC8vIEZpbGVDaG9vc2VyQ2xpZW50IGltcGxlbWVudGF0aW9uLgotICAgIHZv
aWQgZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+Jikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBmaWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5m
bz4mKSBmaW5hbDsKICNpZiBQTEFURk9STShJT1MpCi0gICAgdm9pZCBmaWxlc0Nob3Nlbihjb25z
dCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlTdHJp
bmcsIEljb24qKSBvdmVycmlkZTsKKyAgICB2b2lkIGZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxG
aWxlQ2hvb3NlckZpbGVJbmZvPiYsIGNvbnN0IFN0cmluZyYgZGlzcGxheVN0cmluZywgSWNvbiop
IGZpbmFsOwogI2VuZGlmCiAKICAgICAvLyBGaWxlSWNvbkxvYWRlckNsaWVudCBpbXBsZW1lbnRh
dGlvbi4KLSAgICB2b2lkIHVwZGF0ZVJlbmRlcmluZyhQYXNzUmVmUHRyPEljb24+KSBvdmVycmlk
ZTsKKyAgICB2b2lkIGljb25Mb2FkZWQoUmVmUHRyPEljb24+JiYpIGZpbmFsOwogCi0gICAgUGFz
c1JlZlB0cjxGaWxlTGlzdD4gY3JlYXRlRmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2Vy
RmlsZUluZm8+JiBmaWxlcykgY29uc3Q7CisgICAgc3RhdGljIFJlZjxGaWxlTGlzdD4gY3JlYXRl
RmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+Jik7CiAgICAgdm9pZCBy
ZXF1ZXN0SWNvbihjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogCiAgICAgdm9pZCBhcHBseUZpbGVD
aG9vc2VyU2V0dGluZ3MoY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYpOwpAQCAtOTgsNyArOTgs
NyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWxlSWNvbkxvYWRlcj4gbV9maWxl
SWNvbkxvYWRlcjsKICNlbmRpZgogCi0gICAgUmVmUHRyPEZpbGVMaXN0PiBtX2ZpbGVMaXN0Owor
ICAgIFJlZjxGaWxlTGlzdD4gbV9maWxlTGlzdDsKICAgICBSZWZQdHI8SWNvbj4gbV9pY29uOwog
I2lmIFBMQVRGT1JNKElPUykKICAgICBTdHJpbmcgbV9kaXNwbGF5U3RyaW5nOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCBmNGJlNzE1OGM1MTAwODU4MzA1ODBiNmE3Mzg1ODcy
MDMwMzlhM2Q5Li45ZWRjNjEwNTU0NTE2NDMxZTY1OTQ3YjE3NDAyN2IxYjE0ZjMxZGM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtNzUyLDcgKzc1Miw3IEBAIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBIVE1MRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRl
clN0eWxlJiYgc3R5bGUsCiAgICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhp
cywgV1RGTW92ZShzdHlsZSkpOwogfQogCi1IVE1MRm9ybUVsZW1lbnQqIEhUTUxFbGVtZW50Ojp2
aXJ0dWFsRm9ybSgpIGNvbnN0CitIVE1MRm9ybUVsZW1lbnQqIEhUTUxFbGVtZW50Ojpmb3JtKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gSFRNTEZvcm1FbGVtZW50OjpmaW5kQ2xvc2VzdEZvcm1BbmNl
c3RvcigqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKaW5kZXggMzlkNGNiNzJi
Njc2MzcyNzc1OTExMjZhOGExNTI1MDU0MDJkZmUwYy4uMDJkMDdlZDgwNTBlOTEyOTBhZWE0MmQw
YmMyNzUyN2NjZDQ0YWNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApAQCAtNzAsNyAr
NzAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0
eWxlJikgb3ZlcnJpZGU7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVy
cmlkZTsKIAotICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IHsgcmV0dXJuIHZpcnR1
YWxGb3JtKCk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEhUTUxGb3JtRWxlbWVudCog
Zm9ybSgpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgQXRvbWljU3RyaW5nJiBk
aXIoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERpcihjb25zdCBBdG9taWNT
dHJpbmcmKTsKQEAgLTEzMyw4ICsxMzMsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBtYXBMYW5n
dWFnZUF0dHJpYnV0ZVRvTG9jYWxlKGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVBy
b3BlcnRpZXMmKTsKIAotICAgIHZpcnR1YWwgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFsRm9ybSgp
IGNvbnN0OwotCiAgICAgRXhjZXB0aW9uT3I8UmVmPERvY3VtZW50RnJhZ21lbnQ+PiB0ZXh0VG9G
cmFnbWVudChjb25zdCBTdHJpbmcmKTsKIAogICAgIHZvaWQgZGlyQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBBdG9taWNTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwCmluZGV4IDg0NTE2Y2I2MjQ0YzMzYjFmNzA1ZTA2ZGUyODIyYWVhMTFl
NTFiZDguLjdiZmVjZWJhNzAwN2IzZGZkM2NjNmNjYzdhZWJmODE5YmIxYjIzOTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNTkzLDEx
ICs1OTMsNiBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50
KFJlZlB0cjxFbGVtZW50PiYmIG5ld0ZvY3VzZWRFbGVtZQogICAgIGhpZGVWaXNpYmxlVmFsaWRh
dGlvbk1lc3NhZ2UoKTsKIH0KIAotSFRNTEZvcm1FbGVtZW50KiBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50Ojp2aXJ0dWFsRm9ybSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEZvcm1Bc3NvY2lhdGVkRWxl
bWVudDo6Zm9ybSgpOwotfQotCiAjaWYgRU5BQkxFKElPU19BVVRPQ09SUkVDVF9BTkRfQVVUT0NB
UElUQUxJWkUpCiAKIC8vIEZJWE1FOiBXZSBzaG91bGQgbG9vayB0byBzaGFyZSB0aGlzIGNvZGUg
d2l0aCBjbGFzcyBIVE1MRm9ybUVsZW1lbnQgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyB0aGUgbG9n
aWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4
IDRmZjQ4OTRmMzVmZTYxZDJlZGYwYzA4NTVlOTIyNDRhY2RjNWM0ZmMuLmUxNTM1YzYzZWM5NzNj
NWNlNTBhZjRhN2Q5YjE2OWNiNDgzYTcwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQgOiBwdWJsaWMgTGFiZWxhYmxlRWxlbWVudCwgcHVibGljIEZvcm1Bc3NvY2lh
dGVkRWxlCiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SFRNTEZvcm1Db250cm9sRWxlbWVudCgpOwog
Ci0gICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkgY29uc3QgeyByZXR1cm4gRm9ybUFzc29jaWF0
ZWRFbGVtZW50Ojpmb3JtKCk7IH0KKyAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCBm
aW5hbCB7IHJldHVybiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm0oKTsgfQogCiAgICAgV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIGZvcm1FbmN0eXBlKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRGb3JtRW5jdHlwZShjb25zdCBTdHJpbmcmKTsKQEAgLTE2OSw3ICsxNjksNiBA
QCBwcml2YXRlOgogCiAgICAgaW50IHRhYkluZGV4KCkgY29uc3QgZmluYWw7CiAKLSAgICBIVE1M
Rm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1Zh
bGlkRm9ybUNvbnRyb2xFbGVtZW50KCkgY29uc3Q7CiAKICAgICBib29sIGNvbXB1dGVJc0Rpc2Fi
bGVkQnlGaWVsZHNldEFuY2VzdG9yKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcAppbmRleCBkNDNkNGVmOWUwMTE5MjZkMGU4YTBlYmRlYzg3NTJkM2VmZmRm
YzI0Li4xNDQ4Mzg5YTRhZmQ4MjUwNjc3YTYyMmIxOTU5MTcyYzlhNzkzYTViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTExODQsMTAgKzExODQsOSBAQCB2
b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQog
ICAgICAgICBpZiAod2FzQ2hhbmdlZFNpbmNlTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKSkK
ICAgICAgICAgICAgIGRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwogCi0gICAgICAg
IFJlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IGZvcm1Gb3JTdWJtaXNzaW9uID0gbV9pbnB1dFR5cGUt
PmZvcm1Gb3JTdWJtaXNzaW9uKCk7CiAgICAgICAgIC8vIEZvcm0gbWF5IG5ldmVyIGhhdmUgYmVl
biBwcmVzZW50LCBvciBtYXkgaGF2ZSBiZWVuIGRlc3Ryb3llZCBieSBjb2RlIHJlc3BvbmRpbmcg
dG8gdGhlIGNoYW5nZSBldmVudC4KLSAgICAgICAgaWYgKGZvcm1Gb3JTdWJtaXNzaW9uKQotICAg
ICAgICAgICAgZm9ybUZvclN1Ym1pc3Npb24tPnN1Ym1pdEltcGxpY2l0bHkoZXZlbnQsIGNhblRy
aWdnZXJJbXBsaWNpdFN1Ym1pc3Npb24oKSk7CisgICAgICAgIGlmIChhdXRvKiBmb3JtRWxlbWVu
dCA9IGZvcm0oKSkKKyAgICAgICAgICAgIGZvcm1FbGVtZW50LT5zdWJtaXRJbXBsaWNpdGx5KGV2
ZW50LCBjYW5UcmlnZ2VySW1wbGljaXRTdWJtaXNzaW9uKCkpOwogCiAgICAgICAgIGV2ZW50LnNl
dERlZmF1bHRIYW5kbGVkKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTEzNDIsOSArMTM0MSw5IEBA
IEZpbGVMaXN0KiBIVE1MSW5wdXRFbGVtZW50OjpmaWxlcygpCiAgICAgcmV0dXJuIG1faW5wdXRU
eXBlLT5maWxlcygpOwogfQogCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEZpbGVzKFBhc3NS
ZWZQdHI8RmlsZUxpc3Q+IGZpbGVzKQordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRGaWxlcyhS
ZWZQdHI8RmlsZUxpc3Q+JiYgZmlsZXMpCiB7Ci0gICAgbV9pbnB1dFR5cGUtPnNldEZpbGVzKGZp
bGVzKTsKKyAgICBtX2lucHV0VHlwZS0+c2V0RmlsZXMoV1RGTW92ZShmaWxlcykpOwogfQogCiAj
aWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKQEAgLTE4NjksNyArMTg2OCw3IEBAIFJhZGlvQnV0dG9u
R3JvdXBzKiBIVE1MSW5wdXRFbGVtZW50OjpyYWRpb0J1dHRvbkdyb3VwcygpIGNvbnN0CiB7CiAg
ICAgaWYgKCFpc1JhZGlvQnV0dG9uKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGlm
IChIVE1MRm9ybUVsZW1lbnQqIGZvcm1FbGVtZW50ID0gZm9ybSgpKQorICAgIGlmIChhdXRvKiBm
b3JtRWxlbWVudCA9IGZvcm0oKSkKICAgICAgICAgcmV0dXJuICZmb3JtRWxlbWVudC0+cmFkaW9C
dXR0b25Hcm91cHMoKTsKICAgICBpZiAoaW5Eb2N1bWVudCgpKQogICAgICAgICByZXR1cm4gJmRv
Y3VtZW50KCkuZm9ybUNvbnRyb2xsZXIoKS5yYWRpb0J1dHRvbkdyb3VwcygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA4YWZmZDk4MTE3NTRkOWU0OTIzNjI1NmU2
NTVkNmRhNTU4M2Y1NmQ2Li4xOTk5MmI1NDkwYmNiNGMxZjk3NjYxNmI4ZGRjZGIwNDdjZDlkYzQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMjM4LDcgKzIzOCw3
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNob3dBdXRvRmlsbEJ1dHRv
bihBdXRvRmlsbEJ1dHRvblR5cGUpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgRmlsZUxpc3QqIGZp
bGVzKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVM
aXN0Pik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+
JiYpOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICAvLyBSZXR1cm5zIHRydWUgaWYg
dGhlIGdpdmVuIERyYWdEYXRhIGhhcyBtb3JlIHRoYW4gb25lIGRyb3BwZWQgZmlsZXMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcAppbmRleCBjMmQxODVjMzEwYTBiOTJi
OTIwZTk3NTEwNGNhMWNlYjg1NTA1ZmFkLi44Yjc5M2FmZDhjNTVlYzc5ZDNlN2UyZTZmMWMzN2U0
ODI1YzU2Nzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAKQEAg
LTYzLDMwICs2MywyOCBAQCBib29sIEhUTUxMYWJlbEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29u
c3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUxhYmVsYWJsZUVsZW1lbnQqIEhUTUxMYWJlbEVs
ZW1lbnQ6OmNvbnRyb2woKQorTGFiZWxhYmxlRWxlbWVudCogSFRNTExhYmVsRWxlbWVudDo6Y29u
dHJvbCgpIGNvbnN0CiB7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBjb250cm9sSWQgPSBhdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGZvckF0dHIpOworICAgIGF1dG8mIGNvbnRyb2xJ
ZCA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oZm9yQXR0cik7CiAgICAgaWYgKGNv
bnRyb2xJZC5pc051bGwoKSkgewogICAgICAgICAvLyBTZWFyY2ggdGhlIGNoaWxkcmVuIGFuZCBk
ZXNjZW5kYW50cyBvZiB0aGUgbGFiZWwgZWxlbWVudCBmb3IgYSBmb3JtIGVsZW1lbnQuCiAgICAg
ICAgIC8vIHBlciBodHRwOi8vZGV2LnczLm9yZy9odG1sNS9zcGVjL092ZXJ2aWV3Lmh0bWwjdGhl
LWxhYmVsLWVsZW1lbnQKICAgICAgICAgLy8gdGhlIGZvcm0gZWxlbWVudCBtdXN0IGJlICJsYWJl
bGFibGUgZm9ybS1hc3NvY2lhdGVkIGVsZW1lbnQiLgogICAgICAgICBmb3IgKGF1dG8mIGxhYmVs
YWJsZUVsZW1lbnQgOiBkZXNjZW5kYW50c09mVHlwZTxMYWJlbGFibGVFbGVtZW50PigqdGhpcykp
IHsKICAgICAgICAgICAgIGlmIChsYWJlbGFibGVFbGVtZW50LnN1cHBvcnRMYWJlbHMoKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gJmxhYmVsYWJsZUVsZW1lbnQ7CisgICAgICAgICAgICAgICAg
cmV0dXJuIGNvbnN0X2Nhc3Q8TGFiZWxhYmxlRWxlbWVudCo+KCZsYWJlbGFibGVFbGVtZW50KTsK
ICAgICAgICAgfQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgCiAgICAgcmV0
dXJuIGluRG9jdW1lbnQoKSA/IGZpcnN0RWxlbWVudFdpdGhJZElmTGFiZWxhYmxlKHRyZWVTY29w
ZSgpLCBjb250cm9sSWQpIDogbnVsbHB0cjsKIH0KIAotSFRNTEZvcm1FbGVtZW50KiBIVE1MTGFi
ZWxFbGVtZW50Ojpmb3JtKCkKK0hUTUxGb3JtRWxlbWVudCogSFRNTExhYmVsRWxlbWVudDo6Zm9y
bSgpIGNvbnN0CiB7Ci0gICAgYXV0byogbGFiZWxlZENvbnRyb2wgPSBjb250cm9sKCk7Ci0gICAg
aWYgKCFsYWJlbGVkQ29udHJvbCkKKyAgICBhdXRvKiBjb250cm9sID0gdGhpcy0+Y29udHJvbCgp
OworICAgIGlmICghaXM8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oY29udHJvbCkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIGlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+
KCpsYWJlbGVkQ29udHJvbCkgPyBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PigqbGFi
ZWxlZENvbnRyb2wpLmZvcm0oKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIGRvd25jYXN0PEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQ+KCpjb250cm9sKS5mb3JtKCk7CiB9CiAKIHZvaWQgSFRNTExhYmVs
RWxlbWVudDo6c2V0QWN0aXZlKGJvb2wgZG93biwgYm9vbCBwYXVzZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGFiZWxFbGVtZW50LmgKaW5kZXggMTRkZGMwODNhNjE4ZTQ3N2YzMjFhNTE3NmFkNjEw
M2FlOTI5NmQwNi4uOWUwNTYwYjM1OWFiM2E2OGM4YzkzNzAzNmY5MjNkNTViMjdjNzc0NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKQEAgLTMxLDggKzMxLDggQEAgY2xh
c3MgSFRNTExhYmVsRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxIVE1MTGFiZWxFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBMYWJlbGFibGVFbGVtZW50
KiBjb250cm9sKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgTGFiZWxhYmxlRWxlbWVudCogY29udHJvbCgpIGNvbnN0Owor
ICAgIFdFQkNPUkVfRVhQT1JUIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IGZpbmFsOwog
CiAgICAgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIGZpbmFsOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwCmluZGV4IGVhNzk3MzU4NjYxMGVm
N2Q5YWYzMzdjMWJhN2U5NTMxNTllNDM3NmUuLjQ2YjU2ZDVhMGQ2Yjg3MTM2MzZkYWUzNmY5Yjg0
YzZhNzZiOTk0M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3Bw
CkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xs
QGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3Rv
QGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtk
ZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQ
cm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zMSwxMyArMzEsMTAg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwot
Ci0KIGlubGluZSBIVE1MTGVnZW5kRWxlbWVudDo6SFRNTExlZ2VuZEVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRNTEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7Ci0gICAgQVNTRVJUKGhhc1RhZ05hbWUobGVnZW5kVGFn
KSk7CisgICAgQVNTRVJUKGhhc1RhZ05hbWUoSFRNTE5hbWVzOjpsZWdlbmRUYWcpKTsKIH0KIAog
UmVmPEhUTUxMZWdlbmRFbGVtZW50PiBIVE1MTGVnZW5kRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTYxLDI3ICs1OCwy
NiBAQCB2b2lkIEhUTUxMZWdlbmRFbGVtZW50Ojpmb2N1cyhib29sLCBGb2N1c0RpcmVjdGlvbiBk
aXJlY3Rpb24pCiB7CiAgICAgaWYgKGlzRm9jdXNhYmxlKCkpCiAgICAgICAgIEVsZW1lbnQ6OmZv
Y3VzKHRydWUsIGRpcmVjdGlvbik7Ci0gICAgICAgIAorCiAgICAgLy8gVG8gbWF0Y2ggb3RoZXIg
YnJvd3NlcnMnIGJlaGF2aW9yLCBuZXZlciByZXN0b3JlIHByZXZpb3VzIHNlbGVjdGlvbi4KLSAg
ICBpZiAoSFRNTEZvcm1Db250cm9sRWxlbWVudCogY29udHJvbCA9IGFzc29jaWF0ZWRDb250cm9s
KCkpCisgICAgaWYgKGF1dG8qIGNvbnRyb2wgPSBhc3NvY2lhdGVkQ29udHJvbCgpKQogICAgICAg
ICBjb250cm9sLT5mb2N1cyhmYWxzZSwgZGlyZWN0aW9uKTsKIH0KIAogdm9pZCBIVE1MTGVnZW5k
RWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQogewotICAgIGlm
IChIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBjb250cm9sID0gYXNzb2NpYXRlZENvbnRyb2woKSkK
KyAgICBpZiAoYXV0byogY29udHJvbCA9IGFzc29jaWF0ZWRDb250cm9sKCkpCiAgICAgICAgIGNv
bnRyb2wtPmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMpOwogfQogCi1IVE1MRm9ybUVs
ZW1lbnQqIEhUTUxMZWdlbmRFbGVtZW50Ojp2aXJ0dWFsRm9ybSgpIGNvbnN0CitIVE1MRm9ybUVs
ZW1lbnQqIEhUTUxMZWdlbmRFbGVtZW50Ojpmb3JtKCkgY29uc3QKIHsKICAgICAvLyBBY2NvcmRp
bmcgdG8gdGhlIHNwZWNpZmljYXRpb24sIElmIHRoZSBsZWdlbmQgaGFzIGEgZmllbGRzZXQgZWxl
bWVudCBhcwogICAgIC8vIGl0cyBwYXJlbnQsIHRoZW4gdGhlIGZvcm0gYXR0cmlidXRlIG11c3Qg
cmV0dXJuIHRoZSBzYW1lIHZhbHVlIGFzIHRoZQogICAgIC8vIGZvcm0gYXR0cmlidXRlIG9uIHRo
YXQgZmllbGRzZXQgZWxlbWVudC4gT3RoZXJ3aXNlLCBpdCBtdXN0IHJldHVybiBudWxsLgotICAg
IENvbnRhaW5lck5vZGUqIGZpZWxkc2V0ID0gcGFyZW50Tm9kZSgpOworICAgIGF1dG8qIGZpZWxk
c2V0ID0gcGFyZW50Tm9kZSgpOwogICAgIGlmICghaXM8SFRNTEZpZWxkU2V0RWxlbWVudD4oZmll
bGRzZXQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgIHJldHVybiBkb3duY2FzdDxI
VE1MRmllbGRTZXRFbGVtZW50PigqZmllbGRzZXQpLmZvcm0oKTsKIH0KICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaAppbmRleCAwMzhjYzlhMTc2ZWJjMGQ3MDYyZTYw
ZTVjOTU5YTE1ZTgzODQ2ZjJmLi44YjI3ZDk5NjMyMDYxYmU1OWViYTA3NjAyYmU2ODIwYzYyZGZk
OWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCkBAIC0yLDcgKzIs
NyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAg
KiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAg
KiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMywxNSArMzMsMTYgQEAgY2xh
c3MgSFRNTExlZ2VuZEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8SFRNTExlZ2VuZEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIEhUTUxGb3JtRWxlbWVu
dCogZm9ybSgpIGNvbnN0IGZpbmFsOworCiBwcml2YXRlOgogICAgIEhUTUxMZWdlbmRFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgLy8gQ29udHJvbCBpbiB0
aGUgbGVnZW5kJ3MgZmllbGRzZXQgdGhhdCBnZXRzIGZvY3VzIGFuZCBhY2Nlc3Mga2V5LgorICAg
IC8vIENvbnRyb2wgaW4gdGhlIGxlZ2VuZCdzIGZpZWxkIHNldCB0aGF0IGdldHMgZm9jdXMgYW5k
IGFjY2VzcyBrZXkuCiAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogYXNzb2NpYXRlZENvbnRy
b2woKTsKIAogICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBm
aW5hbDsKICAgICB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1
c0RpcmVjdGlvbikgZmluYWw7Ci0gICAgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFsRm9ybSgpIGNv
bnN0IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMDg0ZWZjNzgwNTQzZmVkZDIxNGU5NTQ2Nzk4
NTFjOWQ3NjU2NTQ2My4uNjkxMGNiNDEwMzI2MDE4ZmYzNjUxNGY0YzAxZGVmMjk0YjRmNzA3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0yNjksMjIgKzI2
OSwyMyBAQCBzdGF0aWMgdm9pZCByZW1vdmVFbGVtZW50RnJvbURvY3VtZW50TWFwKEhUTUxNZWRp
YUVsZW1lbnQmIGVsZW1lbnQsIERvY3VtZW50JiBkbwogfQogCiAjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQorCiBjbGFzcyBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSB7CiBwdWJsaWM6Ci0gICAgVHJh
Y2tEaXNwbGF5VXBkYXRlU2NvcGUoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQorICAg
IFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpCisgICAg
ICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCiAgICAgewotICAgICAgICBtX21lZGlhRWxlbWVudCA9
IG1lZGlhRWxlbWVudDsKLSAgICAgICAgbV9tZWRpYUVsZW1lbnQtPmJlZ2luSWdub3JpbmdUcmFj
a0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpOworICAgICAgICBtX2VsZW1lbnQuYmVnaW5JZ25vcmlu
Z1RyYWNrRGlzcGxheVVwZGF0ZVJlcXVlc3RzKCk7CiAgICAgfQogICAgIH5UcmFja0Rpc3BsYXlV
cGRhdGVTY29wZSgpCiAgICAgewotICAgICAgICBBU1NFUlQobV9tZWRpYUVsZW1lbnQpOwotICAg
ICAgICBtX21lZGlhRWxlbWVudC0+ZW5kSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0
cygpOworICAgICAgICBtX2VsZW1lbnQuZW5kSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1
ZXN0cygpOwogICAgIH0KICAgICAKIHByaXZhdGU6Ci0gICAgSFRNTE1lZGlhRWxlbWVudCogbV9t
ZWRpYUVsZW1lbnQ7CisgICAgSFRNTE1lZGlhRWxlbWVudCYgbV9lbGVtZW50OwogfTsKKwogI2Vu
ZGlmCiAKIHN0cnVjdCBIVE1MTWVkaWFFbGVtZW50OjpUcmFja0dyb3VwIHsKQEAgLTE1NTQsNyAr
MTU1NSw3IEBAIHN0YXRpYyBib29sIGV2ZW50VGltZUN1ZUNvbXBhcmUoY29uc3Qgc3RkOjpwYWly
PE1lZGlhVGltZSwgVGV4dFRyYWNrQ3VlKj4mIGEsIGNvCiAgICAgLy8gMTIgLSBGdXJ0aGVyIHNv
cnQgdGFza3MgaW4gZXZlbnRzIHRoYXQgaGF2ZSB0aGUgc2FtZSB0aW1lIGJ5IHRoZQogICAgIC8v
IHJlbGF0aXZlIHRleHQgdHJhY2sgY3VlIG9yZGVyIG9mIHRoZSB0ZXh0IHRyYWNrIGN1ZXMgYXNz
b2NpYXRlZAogICAgIC8vIHdpdGggdGhlc2UgdGFza3MuCi0gICAgcmV0dXJuIGEuc2Vjb25kLT5j
dWVJbmRleCgpIC0gYi5zZWNvbmQtPmN1ZUluZGV4KCkgPCAwOworICAgIHJldHVybiBhLnNlY29u
ZC0+aXNPcmRlcmVkQmVmb3JlKGIuc2Vjb25kKTsKIH0KIAogc3RhdGljIGJvb2wgY29tcGFyZUN1
ZUludGVydmFsKGNvbnN0IEN1ZUludGVydmFsJiBvbmUsIGNvbnN0IEN1ZUludGVydmFsJiB0d28p
CkBAIC0xODE3LDIyICsxODE4LDIxIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNr
UmVhZHlTdGF0ZUNoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykKICAgICB9CiB9CiAKLXZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2sqIHRyYWNr
KQordm9pZCBIVE1MTWVkaWFFbGVtZW50OjphdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9U
cmFjayYgdHJhY2spCiB7Ci0gICAgQVNTRVJUKHRyYWNrKTsKLSAgICBpZiAobV9hdWRpb1RyYWNr
cyAmJiBtX2F1ZGlvVHJhY2tzLT5jb250YWlucygqdHJhY2spKQorICAgIGlmIChtX2F1ZGlvVHJh
Y2tzICYmIG1fYXVkaW9UcmFja3MtPmNvbnRhaW5zKHRyYWNrKSkKICAgICAgICAgbV9hdWRpb1Ry
YWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogICAgIGlmIChTY3JpcHRDb250cm9sbGVyOjpw
cm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQogICAgICAgICByZW1vdmVCZWhhdmlvcnNS
ZXN0cmljdGlvbnNBZnRlckZpcnN0VXNlckdlc3R1cmUoTWVkaWFFbGVtZW50U2Vzc2lvbjo6QWxs
UmVzdHJpY3Rpb25zICYgfk1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZVRv
Q29udHJvbENvbnRyb2xzTWFuYWdlcik7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4
dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykKK3ZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykKIHsKICAgICBib29sIHRy
YWNrSXNMb2FkZWQgPSB0cnVlOwotICAgIGlmICh0cmFjay0+dHJhY2tUeXBlKCkgPT0gVGV4dFRy
YWNrOjpUcmFja0VsZW1lbnQpIHsKKyAgICBpZiAodHJhY2sudHJhY2tUeXBlKCkgPT0gVGV4dFRy
YWNrOjpUcmFja0VsZW1lbnQpIHsKICAgICAgICAgdHJhY2tJc0xvYWRlZCA9IGZhbHNlOwogICAg
ICAgICBmb3IgKGF1dG8mIHRyYWNrRWxlbWVudCA6IGNoaWxkcmVuT2ZUeXBlPEhUTUxUcmFja0Vs
ZW1lbnQ+KCp0aGlzKSkgewotICAgICAgICAgICAgaWYgKCZ0cmFja0VsZW1lbnQudHJhY2soKSA9
PSB0cmFjaykgeworICAgICAgICAgICAgaWYgKCZ0cmFja0VsZW1lbnQudHJhY2soKSA9PSAmdHJh
Y2spIHsKICAgICAgICAgICAgICAgICBpZiAodHJhY2tFbGVtZW50LnJlYWR5U3RhdGUoKSA9PSBI
VE1MVHJhY2tFbGVtZW50OjpMT0FESU5HIHx8IHRyYWNrRWxlbWVudC5yZWFkeVN0YXRlKCkgPT0g
SFRNTFRyYWNrRWxlbWVudDo6TE9BREVEKQogICAgICAgICAgICAgICAgICAgICB0cmFja0lzTG9h
ZGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTE4NDUsMzMgKzE4NDUsMzIg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sq
IHRyYWNrKQogICAgICAgICBtX3RleHRUcmFja3MgPSBUZXh0VHJhY2tMaXN0OjpjcmVhdGUodGhp
cywgQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAgIAogICAg
IC8vIE1hcmsgdGhpcyB0cmFjayBhcyAiY29uZmlndXJlZCIgc28gY29uZmlndXJlVGV4dFRyYWNr
cyB3b24ndCBjaGFuZ2UgdGhlIG1vZGUgYWdhaW4uCi0gICAgdHJhY2stPnNldEhhc0JlZW5Db25m
aWd1cmVkKHRydWUpOworICAgIHRyYWNrLnNldEhhc0JlZW5Db25maWd1cmVkKHRydWUpOwogICAg
IAotICAgIGlmICh0cmFjay0+bW9kZSgpICE9IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQgJiYg
dHJhY2tJc0xvYWRlZCkKLSAgICAgICAgdGV4dFRyYWNrQWRkQ3Vlcyh0cmFjaywgdHJhY2stPmN1
ZXMoKSk7CisgICAgaWYgKHRyYWNrLm1vZGUoKSAhPSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVk
ICYmIHRyYWNrSXNMb2FkZWQpCisgICAgICAgIHRleHRUcmFja0FkZEN1ZXModHJhY2ssICp0cmFj
ay5jdWVzKCkpOwogCiAgICAgY29uZmlndXJlVGV4dFRyYWNrRGlzcGxheShBc3N1bWVUZXh0VHJh
Y2tWaXNpYmlsaXR5Q2hhbmdlZCk7CiAKLSAgICBpZiAobV90ZXh0VHJhY2tzICYmIG1fdGV4dFRy
YWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV90ZXh0VHJhY2tzICYmIG1fdGV4dFRy
YWNrcy0+Y29udGFpbnModHJhY2spKQogICAgICAgICBtX3RleHRUcmFja3MtPnNjaGVkdWxlQ2hh
bmdlRXZlbnQoKTsKIAogI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCi0gICAgaWYgKHRyYWNrLT50
cmFja1R5cGUoKSA9PSBUZXh0VHJhY2s6OlRyYWNrRWxlbWVudCAmJiBtX3BsYXllcikKKyAgICBp
ZiAodHJhY2sudHJhY2tUeXBlKCkgPT0gVGV4dFRyYWNrOjpUcmFja0VsZW1lbnQgJiYgbV9wbGF5
ZXIpCiAgICAgICAgIG1fcGxheWVyLT5ub3RpZnlUcmFja01vZGVDaGFuZ2VkKCk7CiAjZW5kaWYK
IH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZp
ZGVvVHJhY2sqIHRyYWNrKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp2aWRlb1RyYWNrU2VsZWN0
ZWRDaGFuZ2VkKFZpZGVvVHJhY2smIHRyYWNrKQogewotICAgIEFTU0VSVCh0cmFjayk7Ci0gICAg
aWYgKG1fdmlkZW9UcmFja3MgJiYgbV92aWRlb1RyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAg
ICBpZiAobV92aWRlb1RyYWNrcyAmJiBtX3ZpZGVvVHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAg
ICAgICAgIG1fdmlkZW9UcmFja3MtPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIH0KIAotdm9pZCBI
VE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQor
dm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2smIHRy
YWNrKQogewotICAgIGlmICh0cmFjay0+a2luZCgpICE9IFRleHRUcmFjazo6S2luZDo6Q2FwdGlv
bnMgJiYgdHJhY2stPmtpbmQoKSAhPSBUZXh0VHJhY2s6OktpbmQ6OlN1YnRpdGxlcyAmJiB0cmFj
ay0+bW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6U2hvd2luZykKLSAgICAgICAgdHJhY2stPnNl
dE1vZGUoVGV4dFRyYWNrOjpNb2RlOjpIaWRkZW4pOworICAgIGlmICh0cmFjay5raW5kKCkgIT0g
VGV4dFRyYWNrOjpLaW5kOjpDYXB0aW9ucyAmJiB0cmFjay5raW5kKCkgIT0gVGV4dFRyYWNrOjpL
aW5kOjpTdWJ0aXRsZXMgJiYgdHJhY2subW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6U2hvd2lu
ZykKKyAgICAgICAgdHJhY2suc2V0TW9kZShUZXh0VHJhY2s6Ok1vZGU6OkhpZGRlbik7CiB9CiAK
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YmVnaW5JZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0ZVJl
cXVlc3RzKCkKQEAgLTE4ODcsMjYgKzE4ODYsMjggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpl
bmRJZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0ZVJlcXVlc3RzKCkKICAgICAgICAgdXBkYXRlQWN0
aXZlVGV4dFRyYWNrQ3VlcyhjdXJyZW50TWVkaWFUaW1lKCkpOwogfQogCi12b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiB0cmFjaywgY29uc3QgVGV4dFRy
YWNrQ3VlTGlzdCogY3VlcykgCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1
ZXMoVGV4dFRyYWNrJiB0cmFjaywgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAg
ICBpZiAodHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkKQorICAgIGlm
ICh0cmFjay5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUodGhpcyk7Ci0gICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBjdWVzLT5sZW5ndGgoKTsgKytpKQotICAgICAgICB0ZXh0VHJh
Y2tBZGRDdWUodHJhY2ssICpjdWVzLT5pdGVtKGkpKTsKKyAgICBUcmFja0Rpc3BsYXlVcGRhdGVT
Y29wZSBzY29wZSB7ICp0aGlzIH07CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGN1ZXMu
bGVuZ3RoKCk7ICsraSkKKyAgICAgICAgdGV4dFRyYWNrQWRkQ3VlKHRyYWNrLCAqY3Vlcy5pdGVt
KGkpKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRl
eHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMpCit2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3Vl
TGlzdCYgY3VlcykKIHsKLSAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSBzY29wZSh0aGlzKTsK
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGN1ZXMtPmxlbmd0aCgpOyArK2kpCi0gICAgICAg
IHRleHRUcmFja1JlbW92ZUN1ZShjdWVzLT5pdGVtKGkpLT50cmFjaygpLCAqY3Vlcy0+aXRlbShp
KSk7CisgICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUgeyAqdGhpcyB9OworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBjdWVzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgYXV0
byYgY3VlID0gKmN1ZXMuaXRlbShpKTsKKyAgICAgICAgdGV4dFRyYWNrUmVtb3ZlQ3VlKCpjdWUu
dHJhY2soKSwgY3VlKTsKKyAgICB9CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRy
YWNrQWRkQ3VlKFRleHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBIVE1M
TWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrJiB0cmFjaywgVGV4dFRyYWNr
Q3VlJiBjdWUpCiB7Ci0gICAgaWYgKHRyYWNrLT5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpE
aXNhYmxlZCkKKyAgICBpZiAodHJhY2subW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJs
ZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5lZ2F0aXZlIGR1cmF0aW9uIGN1ZXMgbmVl
ZCBiZSB0cmVhdGVkIGluIHRoZSBpbnRlcnZhbCB0cmVlIGFzCkBAIC0xOTE5LDcgKzE5MjAsNyBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqIHRyYWNr
LCBUZXh0VHJhY2tDdWUmIGN1ZSkKICAgICB1cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKGN1cnJl
bnRNZWRpYVRpbWUoKSk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVt
b3ZlQ3VlKFRleHRUcmFjayosIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBIVE1MTWVkaWFFbGVt
ZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJiBjdWUpCiB7
CiAgICAgLy8gTmVnYXRpdmUgZHVyYXRpb24gY3VlcyBuZWVkIHRvIGJlIHRyZWF0ZWQgaW4gdGhl
IGludGVydmFsIHRyZWUgYXMKICAgICAvLyB6ZXJvLWxlbmd0aCBjdWVzLgpAQCAtMzIxMiw2ICsz
MjEzLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUludGVybmFsKCkKIH0KIAogI2lm
IEVOQUJMRShNRURJQV9TT1VSQ0UpCisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZGV0YWNoTWVk
aWFTb3VyY2UoKQogewogICAgIGlmICghbV9tZWRpYVNvdXJjZSkKQEAgLTMyMjAsNiArMzIyMiw3
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZGV0YWNoTWVkaWFTb3VyY2UoKQogICAgIG1fbWVk
aWFTb3VyY2UtPmRldGFjaEZyb21FbGVtZW50KCp0aGlzKTsKICAgICBtX21lZGlhU291cmNlID0g
bnVsbHB0cjsKIH0KKwogI2VuZGlmCiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6bG9vcCgpIGNv
bnN0CkBAIC0zNTA4LDE0ICszNTExLDE0IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQ
bGF5ZXJEaWRBZGRBdWRpb1RyYWNrKEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFjaykKICAgICBpZiAo
aXNQbGF5aW5nKCkgJiYgIW1fbWVkaWFTZXNzaW9uLT5wbGF5YmFja1Blcm1pdHRlZCgqdGhpcykp
CiAgICAgICAgIHBhdXNlSW50ZXJuYWwoKTsKIAotICAgIGFkZEF1ZGlvVHJhY2soQXVkaW9UcmFj
azo6Y3JlYXRlKHRoaXMsICZ0cmFjaykpOworICAgIGFkZEF1ZGlvVHJhY2soQXVkaW9UcmFjazo6
Y3JlYXRlKCp0aGlzLCB0cmFjaykpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlh
UGxheWVyRGlkQWRkVGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrKQogewog
ICAgIC8vIDQuOC4xMC4xMi4yIFNvdXJjaW5nIGluLWJhbmQgdGV4dCB0cmFja3MKICAgICAvLyAx
LiBBc3NvY2lhdGUgdGhlIHJlbGV2YW50IGRhdGEgd2l0aCBhIG5ldyB0ZXh0IHRyYWNrIGFuZCBp
dHMgY29ycmVzcG9uZGluZyBuZXcgVGV4dFRyYWNrIG9iamVjdC4KLSAgICBSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrPiB0ZXh0VHJhY2sgPSBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZShBY3RpdmVET01P
YmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgdGhpcywgJnRyYWNrKTsKKyAgICBhdXRv
IHRleHRUcmFjayA9IEluYmFuZFRleHRUcmFjazo6Y3JlYXRlKCpBY3RpdmVET01PYmplY3Q6OnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsIHRyYWNrKTsKICAgICB0ZXh0VHJhY2stPnNl
dE1lZGlhRWxlbWVudCh0aGlzKTsKICAgICAKICAgICAvLyAyLiBTZXQgdGhlIG5ldyB0ZXh0IHRy
YWNrJ3Mga2luZCwgbGFiZWwsIGFuZCBsYW5ndWFnZSBiYXNlZCBvbiB0aGUgc2VtYW50aWNzIG9m
IHRoZSByZWxldmFudCBkYXRhLApAQCAtMzU0MSwxMiArMzU0NCwxMiBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkQWRkVGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXZh
dGUmIHRyYWNrKQogICAgIC8vIDkuIEZpcmUgYW4gZXZlbnQgd2l0aCB0aGUgbmFtZSBhZGR0cmFj
aywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzIG5vdCBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1
c2VzIHRoZSBUcmFja0V2ZW50CiAgICAgLy8gaW50ZXJmYWNlLCB3aXRoIHRoZSB0cmFjayBhdHRy
aWJ1dGUgaW5pdGlhbGl6ZWQgdG8gdGhlIHRleHQgdHJhY2sncyBUZXh0VHJhY2sgb2JqZWN0LCBh
dCB0aGUgbWVkaWEgZWxlbWVudCdzCiAgICAgLy8gdGV4dFRyYWNrcyBhdHRyaWJ1dGUncyBUZXh0
VHJhY2tMaXN0IG9iamVjdC4KLSAgICBhZGRUZXh0VHJhY2sodGV4dFRyYWNrLnJlbGVhc2VOb25O
dWxsKCkpOworICAgIGFkZFRleHRUcmFjayhXVEZNb3ZlKHRleHRUcmFjaykpOwogfQogCiB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFjayhWaWRlb1RyYWNr
UHJpdmF0ZSYgdHJhY2spCiB7Ci0gICAgYWRkVmlkZW9UcmFjayhWaWRlb1RyYWNrOjpjcmVhdGUo
dGhpcywgJnRyYWNrKSk7CisgICAgYWRkVmlkZW9UcmFjayhWaWRlb1RyYWNrOjpjcmVhdGUoKnRo
aXMsIHRyYWNrKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRS
ZW1vdmVBdWRpb1RyYWNrKEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFjaykKQEAgLTM2MDMsOSArMzYw
Niw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlQXVkaW9UcmFjayhBdWRpb1RyYWNr
JiB0cmFjaykKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVUZXh0VHJhY2soVGV4dFRy
YWNrJiB0cmFjaywgYm9vbCBzY2hlZHVsZUV2ZW50KQogewotICAgIFRyYWNrRGlzcGxheVVwZGF0
ZVNjb3BlIHNjb3BlKHRoaXMpOwotICAgIGlmIChUZXh0VHJhY2tDdWVMaXN0KiBjdWVzID0gdHJh
Y2suY3VlcygpKQotICAgICAgICB0ZXh0VHJhY2tSZW1vdmVDdWVzKCZ0cmFjaywgY3Vlcyk7Cisg
ICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUgeyAqdGhpcyB9OworICAgIGlmIChhdXRv
KiBjdWVzID0gdHJhY2suY3VlcygpKQorICAgICAgICB0ZXh0VHJhY2tSZW1vdmVDdWVzKHRyYWNr
LCAqY3Vlcyk7CiAgICAgdHJhY2suY2xlYXJDbGllbnQoKTsKICAgICBpZiAobV90ZXh0VHJhY2tz
KQogICAgICAgICBtX3RleHRUcmFja3MtPnJlbW92ZSh0cmFjaywgc2NoZWR1bGVFdmVudCk7CkBA
IC0zNjI1LDcgKzM2MjgsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmZvcmdldFJlc291cmNl
U3BlY2lmaWNUcmFja3MoKQogICAgICAgICByZW1vdmVBdWRpb1RyYWNrKCptX2F1ZGlvVHJhY2tz
LT5sYXN0SXRlbSgpKTsKIAogICAgIGlmIChtX3RleHRUcmFja3MpIHsKLSAgICAgICAgVHJhY2tE
aXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUodGhpcyk7CisgICAgICAgIFRyYWNrRGlzcGxheVVwZGF0
ZVNjb3BlIHNjb3BlIHsgKnRoaXMgfTsKICAgICAgICAgZm9yIChpbnQgaSA9IG1fdGV4dFRyYWNr
cy0+bGVuZ3RoKCkgLSAxOyBpID49IDA7IC0taSkgewogICAgICAgICAgICAgYXV0byYgdHJhY2sg
PSAqbV90ZXh0VHJhY2tzLT5pdGVtKGkpOwogICAgICAgICAgICAgaWYgKHRyYWNrLnRyYWNrVHlw
ZSgpID09IFRleHRUcmFjazo6SW5CYW5kKQpAQCAtNjA3OCwxMiArNjA4MSwxMiBAQCBNZWRpYUNv
bnRyb2xsZXIqIEhUTUxNZWRpYUVsZW1lbnQ6OmNvbnRyb2xsZXIoKSBjb25zdAogICAgIHJldHVy
biBtX21lZGlhQ29udHJvbGxlci5nZXQoKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpz
ZXRDb250cm9sbGVyKFBhc3NSZWZQdHI8TWVkaWFDb250cm9sbGVyPiBjb250cm9sbGVyKQordm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyKFJlZlB0cjxNZWRpYUNvbnRyb2xsZXI+
JiYgY29udHJvbGxlcikKIHsKICAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXIpCiAgICAgICAgIG1f
bWVkaWFDb250cm9sbGVyLT5yZW1vdmVNZWRpYUVsZW1lbnQoKnRoaXMpOwogCi0gICAgbV9tZWRp
YUNvbnRyb2xsZXIgPSBjb250cm9sbGVyOworICAgIG1fbWVkaWFDb250cm9sbGVyID0gV1RGTW92
ZShjb250cm9sbGVyKTsKIAogICAgIGlmIChtX21lZGlhQ29udHJvbGxlcikKICAgICAgICAgbV9t
ZWRpYUNvbnRyb2xsZXItPmFkZE1lZGlhRWxlbWVudCgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDAyM2NjMzM2MjgzM2ZhODA2MTk5YTQxMzAzYWZmMTkw
NWNiZjY1ZGYuLmYzMmQwMjE4ZmMwZjU3MzBjMThlZGRlYTlhODMwMmIzNzVhMmYxYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0yNywxMCArMjcsMTAgQEAKIAog
I2lmIEVOQUJMRShWSURFTykKIAotI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAi
QWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiR2VuZXJpY0V2ZW50UXVldWUuaCIKICNpbmNs
dWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MTWVkaWFFbGVtZW50RW51bXMuaCIKICNpbmNsdWRlICJNZWRpYUNhblN0YXJ0TGlz
dGVuZXIuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCIKQEAgLTY5LDkg
KzY5LDcgQEAgY2xhc3MgTWVkaWFDb250cm9sczsKIGNsYXNzIE1lZGlhQ29udHJvbHNIb3N0Owog
Y2xhc3MgTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlOwogY2xhc3MgTWVkaWFFcnJvcjsKLSNp
ZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogY2xhc3MgTWVkaWFLZXlzOwotI2VuZGlmCiBjbGFz
cyBNZWRpYVBsYXllcjsKIGNsYXNzIE1lZGlhU2Vzc2lvbjsKIGNsYXNzIE1lZGlhU291cmNlOwpA
QCAtODEsNyArNzksNiBAQCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgU291
cmNlQnVmZmVyOwogY2xhc3MgVGV4dFRyYWNrTGlzdDsKIGNsYXNzIFRpbWVSYW5nZXM7Ci1jbGFz
cyBVUkw7CiBjbGFzcyBWaWRlb1BsYXliYWNrUXVhbGl0eTsKIGNsYXNzIFZpZGVvVHJhY2tMaXN0
OwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7CkBAIC0zMzEsMjAgKzMyOCwyMCBAQCBwdWJsaWM6
CiAgICAgdm9pZCB1cGRhdGVUZXh0VHJhY2tEaXNwbGF5KCk7CiAKICAgICAvLyBBdWRpb1RyYWNr
Q2xpZW50Ci0gICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayopIG92
ZXJyaWRlOworICAgIHZvaWQgYXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2smKSBm
aW5hbDsKIAogICAgIHZvaWQgdGV4dFRyYWNrUmVhZHlTdGF0ZUNoYW5nZWQoVGV4dFRyYWNrKik7
CiAKICAgICAvLyBUZXh0VHJhY2tDbGllbnQKLSAgICB2b2lkIHRleHRUcmFja0tpbmRDaGFuZ2Vk
KFRleHRUcmFjayopIG92ZXJyaWRlOwotICAgIHZvaWQgdGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4
dFRyYWNrKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayos
IGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBvdmVycmlkZTsKLSAgICB2b2lkIHRleHRUcmFja1Jl
bW92ZUN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCopIG92ZXJyaWRlOwot
ICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayosIFRleHRUcmFja0N1ZSYpIG92ZXJy
aWRlOwotICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayosIFRleHRUcmFja0N1
ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJikg
b3ZlcnJpZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2smKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRy
YWNrQ3VlTGlzdCYpIG92ZXJyaWRlOworICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0
VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCB0ZXh0
VHJhY2tBZGRDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgb3ZlcnJpZGU7
CiAKICAgICAvLyBWaWRlb1RyYWNrQ2xpZW50Ci0gICAgdm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRD
aGFuZ2VkKFZpZGVvVHJhY2sqKSBvdmVycmlkZTsKKyAgICB2b2lkIHZpZGVvVHJhY2tTZWxlY3Rl
ZENoYW5nZWQoVmlkZW9UcmFjayYpIGZpbmFsOwogCiAgICAgYm9vbCByZXF1aXJlc1RleHRUcmFj
a1JlcHJlc2VudGF0aW9uKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbihUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiopOwpAQCAtNDIyLDcgKzQxOSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldE1lZGlhR3JvdXAoY29uc3QgU3RyaW5nJik7CiAKICAgICBNZWRpYUNv
bnRyb2xsZXIqIGNvbnRyb2xsZXIoKSBjb25zdDsKLSAgICB2b2lkIHNldENvbnRyb2xsZXIoUGFz
c1JlZlB0cjxNZWRpYUNvbnRyb2xsZXI+KTsKKyAgICB2b2lkIHNldENvbnRyb2xsZXIoUmVmUHRy
PE1lZGlhQ29udHJvbGxlcj4mJik7CiAKICAgICB2b2lkIGVudGVyZWRPckV4aXRlZEZ1bGxzY3Jl
ZW4oKSB7IGNvbmZpZ3VyZU1lZGlhQ29udHJvbHMoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9iamVjdEVsZW1lbnQuY3BwCmluZGV4IGJkZTZhZTIzNWZkMmQ0NDc5ZGFmYjY4OTQwZjcx
OWIwMmMzNDhjZjMuLmUyMjRiZmUwYWU4NThlZjJhOWFlYWQ0YWVlODU0NDI3ZjU0ODExY2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBAIC01MTksMTEgKzUx
OSw2IEBAIGJvb2wgSFRNTE9iamVjdEVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlz
dCYgZW5jb2RpbmcsIGJvb2wpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUhUTUxGb3JtRWxlbWVu
dCogSFRNTE9iamVjdEVsZW1lbnQ6OnZpcnR1YWxGb3JtKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtKCk7Ci19Ci0KIGJvb2wgSFRNTE9iamVjdEVsZW1l
bnQ6OmNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3QKIHsKICAgICAvLyBDYWxsIHRocm91
Z2ggdG8gSFRNTEVsZW1lbnQgYmVjYXVzZSB3ZSBuZWVkIHRvIHNraXAgSFRNTFBsdWdJbkVsZW1l
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAppbmRleCBlM2M1NWU0ZjA1
NTFlNmM2ZjU5ZGY0Nzc1NzhmZjk2ODIyZGFmZWQ5Li5jMTVlZTRkZTQ0Zjg3YTVlMDk0ZmMxNzhk
ZWE3M2ZkZjI4ZDJiY2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmpl
Y3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5o
CkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50OjpyZWY7CiAgICAgdXNpbmcgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6ZGVyZWY7CiAKLSAg
ICB1c2luZyBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm07CisgICAgSFRNTEZvcm1FbGVtZW50
KiBmb3JtKCkgY29uc3QgZmluYWwgeyByZXR1cm4gRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3Jt
KCk7IH0KIAogcHJpdmF0ZToKICAgICBIVE1MT2JqZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7
CkBAIC05MSw3ICs5MSw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlZkZvcm1Bc3NvY2lhdGVk
RWxlbWVudCgpIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2b2lkIGRlcmVmRm9ybUFzc29jaWF0ZWRF
bGVtZW50KCkgZmluYWwgeyBkZXJlZigpOyB9Ci0gICAgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFs
Rm9ybSgpIGNvbnN0IGZpbmFsOwogCiAgICAgRm9ybU5hbWVkSXRlbSogYXNGb3JtTmFtZWRJdGVt
KCkgZmluYWwgeyByZXR1cm4gdGhpczsgfQogICAgIEhUTUxPYmplY3RFbGVtZW50JiBhc0hUTUxF
bGVtZW50KCkgZmluYWwgeyByZXR1cm4gKnRoaXM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T3B0aW9uRWxlbWVudC5jcHAKaW5kZXggOWEzMDVmZjFmNzI2MDIyYjVmM2Y3MjAzMjc4YzA2NmJk
NDFmNTlmZC4uNTVkYmE5NzViZDM1ZDU2MzJhYTkxY2U3Zjg1MjlhM2Y3Y2RkYjYwYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTMzNCw3ICszMzQsNyBA
QCBTdHJpbmcgSFRNTE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25Jbm5lclRleHQoKSBjb25z
dAogICAgICAgICBpZiAoaXM8VGV4dD4oKm5vZGUpKQogICAgICAgICAgICAgdGV4dC5hcHBlbmQo
bm9kZS0+bm9kZVZhbHVlKCkpOwogICAgICAgICAvLyBUZXh0IG5vZGVzIGluc2lkZSBzY3JpcHQg
ZWxlbWVudHMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBvcHRpb24gdGV4dC4KLSAgICAgICAgaWYgKGlz
PEVsZW1lbnQ+KCpub2RlKSAmJiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGRvd25jYXN0PEVs
ZW1lbnQ+KG5vZGUpKSkKKyAgICAgICAgaWYgKGlzPEVsZW1lbnQ+KCpub2RlKSAmJiBpc1Njcmlw
dEVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpKSkKICAgICAgICAgICAgIG5vZGUgPSBO
b2RlVHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdDaGlsZHJlbigqbm9kZSwgdGhpcyk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpub2RlLCB0aGlz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKaW5kZXggYTg2NGU4
N2VhZmQ0MjgzZTU0ZjFlNDBiZmVjZjkyMjVhNWNiNWRkNi4uOWZlNDJlNzQ5Y2E1NzJiZTFiMTll
ZTMyMDczZGFiMmNkNWI2N2M3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGx1Z0luRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5jcHAKQEAgLTEwOCwyMSArMTA4LDIwIEBAIHZvaWQgSFRNTFBsdWdJbkVsZW1lbnQ6OnJl
c2V0SW5zdGFuY2UoKQogICAgIG1faW5zdGFuY2UgPSBudWxscHRyOwogfQogCi1QYXNzUmVmUHRy
PEpTQzo6QmluZGluZ3M6Okluc3RhbmNlPiBIVE1MUGx1Z0luRWxlbWVudDo6Z2V0SW5zdGFuY2Uo
KQorSlNDOjpCaW5kaW5nczo6SW5zdGFuY2UqIEhUTUxQbHVnSW5FbGVtZW50OjpiaW5kaW5nc0lu
c3RhbmNlKCkKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7CisgICAg
YXV0byogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKLSAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gSWYgdGhlIGhv
c3QgZHluYW1pY2FsbHkgdHVybnMgb2ZmIEphdmFTY3JpcHQgKG9yIEphdmEpIHdlIHdpbGwgc3Rp
bGwgcmV0dXJuCiAgICAgLy8gdGhlIGNhY2hlZCBhbGxvY2F0ZWQgQmluZGluZ3M6Okluc3RhbmNl
LiAgTm90IHN1cHBvcnRpbmcgdGhpcyBlZGdlLWNhc2UgaXMgT0suCi0gICAgaWYgKG1faW5zdGFu
Y2UpCi0gICAgICAgIHJldHVybiBtX2luc3RhbmNlOwotCi0gICAgaWYgKFdpZGdldCogd2lkZ2V0
ID0gcGx1Z2luV2lkZ2V0KCkpCi0gICAgICAgIG1faW5zdGFuY2UgPSBmcmFtZS0+c2NyaXB0KCku
Y3JlYXRlU2NyaXB0SW5zdGFuY2VGb3JXaWRnZXQod2lkZ2V0KTsKIAotICAgIHJldHVybiBtX2lu
c3RhbmNlOworICAgIGlmICghbV9pbnN0YW5jZSkgeworICAgICAgICBpZiAoYXV0byogd2lkZ2V0
ID0gcGx1Z2luV2lkZ2V0KCkpCisgICAgICAgICAgICBtX2luc3RhbmNlID0gZnJhbWUtPnNjcmlw
dCgpLmNyZWF0ZVNjcmlwdEluc3RhbmNlRm9yV2lkZ2V0KHdpZGdldCk7CisgICAgfQorICAgIHJl
dHVybiBtX2luc3RhbmNlLmdldCgpOwogfQogCiBib29sIEhUTUxQbHVnSW5FbGVtZW50OjpndWFy
ZGVkRGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKaW5kZXggNWI4YzVhZDQyODJhYmY5NWEw
NTI2MjhiMjhmZTlkNDAxYTljNzc4My4uNjE3YmQ2OTFkNmQ2Y2RhY2ZkYTNjMWIxZjgxNzZlZjQ3
ZDk3ZDA4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaApAQCAtNDQs
NyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0SW5zdGFuY2UoKTsKIAotICAgIFBh
c3NSZWZQdHI8SlNDOjpCaW5kaW5nczo6SW5zdGFuY2U+IGdldEluc3RhbmNlKCk7CisgICAgSlND
OjpCaW5kaW5nczo6SW5zdGFuY2UqIGJpbmRpbmdzSW5zdGFuY2UoKTsKIAogICAgIGVudW0gY2xh
c3MgUGx1Z2luTG9hZGluZ1BvbGljeSB7IERvTm90TG9hZCwgTG9hZCB9OwogICAgIFdFQkNPUkVf
RVhQT1JUIFdpZGdldCogcGx1Z2luV2lkZ2V0KFBsdWdpbkxvYWRpbmdQb2xpY3kgPSBQbHVnaW5M
b2FkaW5nUG9saWN5OjpMb2FkKSBjb25zdDsKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAg
IH07CiAgICAgRGlzcGxheVN0YXRlIGRpc3BsYXlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlz
cGxheVN0YXRlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldERpc3BsYXlTdGF0ZShEaXNwbGF5U3Rh
dGUpOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPikg
eyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNuYXBzaG90KEltYWdlKikgeyB9CiAgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoUGVuZGluZ01vdXNlQ2xpY2soKSB7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNSZXN0YXJ0ZWRQbHVnaW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAppbmRleCBmYTIzNDdi
NjBhOTYyYjYwNWUzZTc5ODY1MGMxMzFhOGIyYjI1YTg4Li5jNGNjMzQ4MDM1NjFmMmQ5YWUzNjVm
Mzk1NjYzM2ZhYmU3MjMyM2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5jcHAKQEAgLTE3MSw3ICsxNzEsNyBAQCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRl
clN0eQogCiAgICAgaWYgKGRpc3BsYXlTdGF0ZSgpID09IERpc3BsYXlpbmdTbmFwc2hvdCkgewog
ICAgICAgICBhdXRvIHJlbmRlclNuYXBzaG90dGVkUGx1Z0luID0gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4+KCp0aGlzLCBXVEZNb3ZlKHN0eWxlKSk7Ci0gICAgICAgIHJl
bmRlclNuYXBzaG90dGVkUGx1Z0luLT51cGRhdGVTbmFwc2hvdChtX3NuYXBzaG90SW1hZ2UpOwor
ICAgICAgICByZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi0+dXBkYXRlU25hcHNob3QobV9zbmFwc2hv
dEltYWdlLmdldCgpKTsKICAgICAgICAgcmV0dXJuIFdURk1vdmUocmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW4pOwogICAgIH0KIApAQCAtMzAxLDcgKzMwMSw3IEBAIHZvaWQgSFRNTFBsdWdJbkltYWdl
RWxlbWVudDo6c3RhcnRMb2FkaW5nSW1hZ2UoKQogICAgIG1faW1hZ2VMb2FkZXItPnVwZGF0ZUZy
b21FbGVtZW50KCk7CiB9CiAKLXZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlU25h
cHNob3QoUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UpCit2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQ6OnVwZGF0ZVNuYXBzaG90KEltYWdlKiBpbWFnZSkKIHsKICAgICBpZiAoZGlzcGxheVN0YXRl
KCkgPiBEaXNwbGF5aW5nU25hcHNob3QpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKaW5kZXggYTNmN2UxMDhjZjkyZTA1YTli
YjhkYTRkYTY5MmFmNDAwZmQwNmE0Ni4uMzM3MDU2ODM4NjVhNjE4ZTI5MTg2ODJlZjJjMTg3Mjc2
NDk5MzAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmgKQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hQZW5kaW5nTW91c2VDbGljaygp
IGZpbmFsOwogCi0gICAgdm9pZCB1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPikgZmlu
YWw7CisgICAgdm9pZCB1cGRhdGVTbmFwc2hvdChJbWFnZSopIGZpbmFsOwogCiAgICAgdm9pZCBz
dGFydExvYWRpbmdJbWFnZSgpOwogICAgIHZvaWQgdXBkYXRlV2lkZ2V0SWZOZWNlc3NhcnkoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAppbmRleCBmMmJkNTI1Yzc0ZGRk
M2Q3YjhhMWZjMWU5NjkyNTJlODYzY2RmNTc1Li5jZmM3MzE1NTZhMjFmOTlmZWZlZDMzNzA3ODA0
MTIwYjYyM2FkMDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCkBA
IC00Myw2ICs0Myw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENyb3Nz
T3JpZ2luKGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBj
cm9zc09yaWdpbigpIGNvbnN0OwogCisgICAgdXNpbmcgSFRNTEVsZW1lbnQ6OnJlZjsKKyAgICB1
c2luZyBIVE1MRWxlbWVudDo6ZGVyZWY7CisKIHByaXZhdGU6CiAgICAgSFRNTFNjcmlwdEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFy
c2VyLCBib29sIGFscmVhZHlTdGFydGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA3ZGI5MTRmNzA2YjNhNmZhZjk0
MzRhOGYyNGVlMTIxODE1YTc0ZGYyLi4wZWI5MzlkOTQ1NzdhZDMwZmU5ZmEzNjRjNzgyMGI2M2Rk
ZjY5ZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcApAQCAtNDI3LDcgKzQyNyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRD
b250YWluZXJBbmRPZmZzZXRGb3JSYW5nZShOb2RlKiBub2RlLCBpbnQgb2Zmc2V0LCBOb2RlKiYK
ICAgICB9CiB9CiAKLVBhc3NSZWZQdHI8UmFuZ2U+IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
OjpzZWxlY3Rpb24oKSBjb25zdAorUmVmUHRyPFJhbmdlPiBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2VsZWN0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoIXJlbmRlcmVyKCkgfHwgIWlzVGV4
dEZvcm1Db250cm9sKCkgfHwgIWhhc0NhY2hlZFNlbGVjdGlvbigpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuaAppbmRleCA0YTYzZTk3MWFhYjFmZWI1ZDM0NmRjNDIyMzFiNmIxMjY2YzBiNjNmLi42
ZTRkOWI4MTQ3ODVjNWFlYWFiZTExNTMwZGRiYjEzMWViZmQxMTA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC03NCw3ICs3NCw3
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50LCB1bnNpZ25lZCBzdGFydCwg
dW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcmIHNlbGVjdGlvbk1vZGUpOwogICAgIHZvaWQgc2V0
U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlv
biwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQoKSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3Rh
cnQsIGludCBlbmQsIFRleHRGaWVsZFNlbGVjdGlvbkRpcmVjdGlvbiA9IFNlbGVjdGlvbkhhc05v
RGlyZWN0aW9uLCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgPSBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCgpKTsKLSAgICBQYXNzUmVmUHRyPFJhbmdlPiBzZWxlY3Rpb24oKSBjb25zdDsK
KyAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGlvbigpIGNvbnN0OwogICAgIFN0cmluZyBzZWxlY3Rl
ZFRleHQoKSBjb25zdDsKIAogICAgIHZvaWQgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50
KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAppbmRleCAw
N2Y0MmQ5OWY4ZDdiNDhhOWJhMjQxYjRjNDcxZDU3OWY1NWU4YmQ1Li4yMmNkMGU3ZWI0ZmZjYWVl
YzdiZDA1YjFmNGY3OTM4OTE2ZTUwYzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUcmFja0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNr
RWxlbWVudC5jcHAKQEAgLTI3OSw0MyArMjc5LDQzIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSFRN
TFRyYWNrRWxlbWVudDo6bWVkaWFFbGVtZW50Q3Jvc3NPcmlnaW5BdHRyaWJ1dGUoKSBjb25zdAog
ICAgIHJldHVybiBudWxsQXRvbTsKIH0KIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJh
Y2tLaW5kQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQordm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0
ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2smIHRyYWNrKQogewotICAgIGlmIChIVE1MTWVk
aWFFbGVtZW50KiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKKyAgICBpZiAoYXV0byogcGFyZW50
ID0gbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIHBhcmVudC0+dGV4dFRyYWNrS2luZENoYW5nZWQo
dHJhY2spOwogfQogCi12b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja01vZGVDaGFuZ2Vk
KFRleHRUcmFjayogdHJhY2spCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja01vZGVD
aGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7CiAgICAgLy8gU2luY2Ugd2UndmUgbW92ZWQgdG8g
YSBuZXcgcGFyZW50LCB3ZSBtYXkgbm93IGJlIGFibGUgdG8gbG9hZC4KICAgICBpZiAocmVhZHlT
dGF0ZSgpID09IEhUTUxUcmFja0VsZW1lbnQ6Ok5PTkUpCiAgICAgICAgIHNjaGVkdWxlTG9hZCgp
OwogCi0gICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQor
ICAgIGlmIChhdXRvKiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAgcGFyZW50LT50
ZXh0VHJhY2tNb2RlQ2hhbmdlZCh0cmFjayk7CiB9CiAKLXZvaWQgSFRNTFRyYWNrRWxlbWVudDo6
dGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sqIHRyYWNrLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0
KiBjdWVzKQordm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFj
ayYgdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZXMpCiB7Ci0gICAgaWYgKEhUTUxN
ZWRpYUVsZW1lbnQqIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQorICAgIGlmIChhdXRvKiBwYXJl
bnQgPSBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tBZGRDdWVzKHRy
YWNrLCBjdWVzKTsKIH0KICAgICAKLXZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrUmVt
b3ZlQ3VlcyhUZXh0VHJhY2sqIHRyYWNrLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KiBjdWVzKQor
dm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYgdHJh
Y2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZXMpCiB7Ci0gICAgaWYgKEhUTUxNZWRpYUVs
ZW1lbnQqIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQorICAgIGlmIChhdXRvKiBwYXJlbnQgPSBt
ZWRpYUVsZW1lbnQoKSkKICAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKHRyYWNr
LCBjdWVzKTsKIH0KICAgICAKLXZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3Vl
KFRleHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBIVE1MVHJhY2tFbGVt
ZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrJiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUp
CiB7Ci0gICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQor
ICAgIGlmIChhdXRvKiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAgcGFyZW50LT50
ZXh0VHJhY2tBZGRDdWUodHJhY2ssIGN1ZSk7CiB9CiAgICAgCi12b2lkIEhUTUxUcmFja0VsZW1l
bnQ6OnRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1
ZSkKK3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayYg
dHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogewotICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBw
YXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKKyAgICBpZiAoYXV0byogcGFyZW50ID0gbWVkaWFFbGVt
ZW50KCkpCiAgICAgICAgIHBhcmVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKHRyYWNrLCBjdWUpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCmluZGV4IDliNDI1ZGNkODVk
MWUwZDRmMzYwYzg2ZDJlYTYyZDE5MDhlNGI3YjAuLjc0OWVkMWI0ZTcwOGRmZTE1NjU4MWZkMGY4
ZDk3ZDU1YzY0NThmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNr
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCkBA
IC03NCwxMiArNzQsMTIgQEAgcHJpdmF0ZToKICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVs
ZW1lbnQoKSBjb25zdDsKIAogICAgIC8vIFRleHRUcmFja0NsaWVudAotICAgIHZvaWQgdGV4dFRy
YWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tLaW5k
Q2hhbmdlZChUZXh0VHJhY2sqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4
dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRy
YWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KikgZmluYWw7
Ci0gICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgZmlu
YWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3Vl
JikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2smKSBmaW5h
bDsKKyAgICB2b2lkIHRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayYpIGZpbmFsOworICAg
IHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0
JikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0
IFRleHRUcmFja0N1ZUxpc3QmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0
VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1
ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKIAogICAgIGJvb2wgY2FuTG9hZFVS
TChjb25zdCBVUkwmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IGY2YTZiYmM0
NjRiOWFmYTM4ZDU3YjRkMWVjNDdjZjNjY2E5MjY2ZDQuLjM3MTc1ZGM0NjM1Mjc3YWU4ZjhiMzI4
YWM0OTZiMzMwM2YwY2I4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTQ4Miwx
MSArNDgyLDYgQEAgYm9vbCBJbnB1dFR5cGU6OnNob3VsZFN1Ym1pdEltcGxpY2l0bHkoRXZlbnQm
IGV2ZW50KQogICAgIHJldHVybiBpczxLZXlib2FyZEV2ZW50PihldmVudCkgJiYgZXZlbnQudHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50ICYmIGRvd25jYXN0PEtleWJvYXJkRXZl
bnQ+KGV2ZW50KS5jaGFyQ29kZSgpID09ICdccic7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTEZvcm1F
bGVtZW50PiBJbnB1dFR5cGU6OmZvcm1Gb3JTdWJtaXNzaW9uKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gZWxlbWVudCgpLmZvcm0oKTsKLX0KLQogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IElucHV0
VHlwZTo6Y3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlKQogewogICAgIHJl
dHVybiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4oUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKGVs
ZW1lbnQoKSwgV1RGTW92ZShzdHlsZSkpKTsKQEAgLTU1MSw3ICs1NDYsNyBAQCBDaHJvbWUqIElu
cHV0VHlwZTo6Y2hyb21lKCkgY29uc3QKIHsKICAgICBpZiAoUGFnZSogcGFnZSA9IGVsZW1lbnQo
KS5kb2N1bWVudCgpLnBhZ2UoKSkKICAgICAgICAgcmV0dXJuICZwYWdlLT5jaHJvbWUoKTsKLSAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnB1dFR5cGU6OmNh
blNldFN0cmluZ1ZhbHVlKCkgY29uc3QKQEAgLTYzNiw3ICs2MzEsNyBAQCBib29sIElucHV0VHlw
ZTo6Y2FuQmVTdWNjZXNzZnVsU3VibWl0QnV0dG9uKCkKIAogSFRNTEVsZW1lbnQqIElucHV0VHlw
ZTo6cGxhY2Vob2xkZXJFbGVtZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnB1dFR5cGU6OnJlbmRlcmVySXNOZWVkZWQoKQpAQCAt
NjQ2LDEwICs2NDEsMTAgQEAgYm9vbCBJbnB1dFR5cGU6OnJlbmRlcmVySXNOZWVkZWQoKQogCiBG
aWxlTGlzdCogSW5wdXRUeXBlOjpmaWxlcygpCiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVM
aXN0PikKK3ZvaWQgSW5wdXRUeXBlOjpzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+JiYpCiB7CiB9
CiAKQEAgLTczMSwyNSArNzI2LDI5IEBAIFN0cmluZyBJbnB1dFR5cGU6OnNhbml0aXplVmFsdWUo
Y29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zdAogfQogCiAjaWYgRU5BQkxFKERSQUdf
U1VQUE9SVCkKKwogYm9vbCBJbnB1dFR5cGU6OnJlY2VpdmVEcm9wcGVkRmlsZXMoY29uc3QgRHJh
Z0RhdGEmKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsK
IH0KKwogI2VuZGlmCiAKIEljb24qIElucHV0VHlwZTo6aWNvbigpIGNvbnN0CiB7CiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKICNpZiBQTEFURk9STShJT1MpCisKIFN0cmluZyBJbnB1dFR5cGU6OmRpc3BsYXlTdHJpbmco
KSBjb25zdAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBTdHJpbmco
KTsKIH0KKwogI2VuZGlmCiAKIGJvb2wgSW5wdXRUeXBlOjpzaG91bGRSZXNldE9uRG9jdW1lbnRB
Y3RpdmF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGM0YmU3M2Q0MDA0ZDY4ZDkx
MzBiOWFiOTQ2YTE3MDBlNzAzM2RlMjQuLjJmMWMzMjk3YWYwNzg2ZGVkYTQyY2VjZWM5NDVlYWEy
ZGI5MGZkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMTkyLDcgKzE5Miw2IEBAIHB1
YmxpYzoKICAgICAvLyBIZWxwZXJzIGZvciBldmVudCBoYW5kbGVycy4KIAogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRTdWJtaXRJbXBsaWNpdGx5KEV2ZW50Jik7Ci0gICAgdmlydHVhbCBQYXNzUmVm
UHRyPEhUTUxGb3JtRWxlbWVudD4gZm9ybUZvclN1Ym1pc3Npb24oKSBjb25zdDsKICAgICB2aXJ0
dWFsIGJvb2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBp
c0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJv
b2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0OwpAQCAtMjM5LDcgKzIzOCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgbWF4UmVzdWx0c0F0dHJpYnV0ZUNoYW5nZWQoKTsKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUmVzcGVjdEFsaWduQXR0cmlidXRlKCk7CiAgICAgdmlydHVhbCBGaWxl
TGlzdCogZmlsZXMoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxl
TGlzdD4pOworICAgIHZpcnR1YWwgdm9pZCBzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+JiYpOwog
ICAgIHZpcnR1YWwgSWNvbiogaWNvbigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRT
ZW5kQ2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCBib29sIGNh
blNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9QbHVnaW5Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50
LmNwcAppbmRleCBmMzUxZjk3OTUxNWY1Y2VjOWE0OTk0ZTBkNzVkMDFkYzQyMTg5NjA1Li5kY2Nl
OWQzOGE4NzVhNTI5ZTgxOTcxNmM4YjcxMGE1MTUzYWE3NzM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1BsdWdpbkRvY3VtZW50LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgUGx1Z2luRG9jdW1l
bnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKICAgICBpZiAoYXV0byogbG9hZGVy
ID0gZG9jdW1lbnQubG9hZGVyKCkpCiAgICAgICAgIG1fZW1iZWRFbGVtZW50LT5zZXRBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHR5cGVBdHRyLCBsb2FkZXItPndyaXRlcigpLm1pbWVU
eXBlKCkpOwogCi0gICAgZG9jdW1lbnQuc2V0UGx1Z2luRWxlbWVudChtX2VtYmVkRWxlbWVudCk7
CisgICAgZG9jdW1lbnQuc2V0UGx1Z2luRWxlbWVudCgqbV9lbWJlZEVsZW1lbnQpOwogCiAgICAg
Ym9keS0+YXBwZW5kQ2hpbGQoZW1iZWRFbGVtZW50KTsKIH0KQEAgLTE2MCw5ICsxNjAsOSBAQCBX
aWRnZXQqIFBsdWdpbkRvY3VtZW50OjpwbHVnaW5XaWRnZXQoKQogICAgIHJldHVybiBudWxscHRy
OwogfQogCi12b2lkIFBsdWdpbkRvY3VtZW50OjpzZXRQbHVnaW5FbGVtZW50KFBhc3NSZWZQdHI8
SFRNTFBsdWdJbkVsZW1lbnQ+IGVsZW1lbnQpCit2b2lkIFBsdWdpbkRvY3VtZW50OjpzZXRQbHVn
aW5FbGVtZW50KEhUTUxQbHVnSW5FbGVtZW50JiBlbGVtZW50KQogewotICAgIG1fcGx1Z2luRWxl
bWVudCA9IGVsZW1lbnQ7CisgICAgbV9wbHVnaW5FbGVtZW50ID0gJmVsZW1lbnQ7CiB9CiAKIHZv
aWQgUGx1Z2luRG9jdW1lbnQ6OmRldGFjaEZyb21QbHVnaW5FbGVtZW50KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUGx1Z2luRG9jdW1lbnQuaAppbmRleCAzY2QwNjEyNTUwZjZmOGZiZTk2Yzg5YjViNWZiNWU1
NjE0M2M1ZjdlLi5iZWZlNTFmY2FmNTNlNDMyYWUyZWQ0ZDNiYzk0NWE4NWQzZDAxZmEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGx1Z2luRG9jdW1lbnQoZnJhbWUsIHVybCkp
OwogICAgIH0KIAotICAgIHZvaWQgc2V0UGx1Z2luRWxlbWVudChQYXNzUmVmUHRyPEhUTUxQbHVn
SW5FbGVtZW50Pik7CisgICAgdm9pZCBzZXRQbHVnaW5FbGVtZW50KEhUTUxQbHVnSW5FbGVtZW50
Jik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBXaWRnZXQqIHBsdWdpbldpZGdldCgpOwogICAgIEhU
TUxQbHVnSW5FbGVtZW50KiBwbHVnaW5FbGVtZW50KCkgeyByZXR1cm4gbV9wbHVnaW5FbGVtZW50
LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCA5NGU4YjRkY2VjNDRmZDhmZTZhYTkyMTRkNTVk
OTU5YjU4NzE5ZGU1Li42ZGIyODI5OTJmNGEzNzNlNGY4ZDY5OWI4MDliNzAyNzA1NDQ2ZmNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5jcHAKQEAgLTQxNyw3ICs0MTcsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6c2V0U3Ryb2tlU3R5bGUoQ2FudmFzU3R5bGUgc3R5bGUpCiAgICAgR3JhcGhpY3ND
b250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVy
bjsKLSAgICBzdGF0ZS5zdHJva2VTdHlsZS5hcHBseVN0cm9rZUNvbG9yKGMpOworICAgIHN0YXRl
LnN0cm9rZVN0eWxlLmFwcGx5U3Ryb2tlQ29sb3IoKmMpOwogICAgIHN0YXRlLnVucGFyc2VkU3Ry
b2tlQ29sb3IgPSBTdHJpbmcoKTsKIH0KIApAQCAtNDQ0LDcgKzQ0NCw3IEBAIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpzZXRGaWxsU3R5bGUoQ2FudmFzU3R5bGUgc3R5bGUpCiAgICAg
R3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAg
ICAgIHJldHVybjsKLSAgICBzdGF0ZS5maWxsU3R5bGUuYXBwbHlGaWxsQ29sb3IoYyk7CisgICAg
c3RhdGUuZmlsbFN0eWxlLmFwcGx5RmlsbENvbG9yKCpjKTsKICAgICBzdGF0ZS51bnBhcnNlZEZp
bGxDb2xvciA9IFN0cmluZygpOwogfQogCkBAIC0yNDQ1LDcgKzI0NDUsNyBAQCB2b2lkIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQs
IGZsb2F0IHgsIGZsbwogCiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVT
YXZlcigqYyk7CiAgICAgICAgIGMtPmNsaXBUb0ltYWdlQnVmZmVyKCptYXNrSW1hZ2UsIG1hc2tS
ZWN0KTsKLSAgICAgICAgZHJhd1N0eWxlLmFwcGx5RmlsbENvbG9yKGMpOworICAgICAgICBkcmF3
U3R5bGUuYXBwbHlGaWxsQ29sb3IoKmMpOwogICAgICAgICBjLT5maWxsUmVjdChtYXNrUmVjdCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNTdHlsZS5jcHAKaW5kZXggOWFhMGEwNTJmNDYxYWQ2YjJjNWVhYzZhZmVjMzIzMTU2NWUwMjEz
Ni4uYmNiZTJhMDU0YzQ5YWExNGU2ZDE5MzZmM2I3NGUyNjI5ZWYzNzJkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcApAQCAtNTMsNyArNTMsNiBAQCBzdGF0
aWMgQ29sb3IgcGFyc2VDb2xvcihjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBEb2N1bWVudCog
ZG9jdW1lbnQgPSBudWxscHRyKQogICAgIENvbG9yIGNvbG9yID0gQ1NTUGFyc2VyOjpwYXJzZUNv
bG9yKGNvbG9yU3RyaW5nKTsKICAgICBpZiAoY29sb3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1
cm4gY29sb3I7Ci0KICAgICByZXR1cm4gQ1NTUGFyc2VyOjpwYXJzZVN5c3RlbUNvbG9yKGNvbG9y
U3RyaW5nLCBkb2N1bWVudCk7CiB9CiAKQEAgLTc2LDIwOCArNzUsMTUwIEBAIENvbG9yIHBhcnNl
Q29sb3JPckN1cnJlbnRDb2xvcihjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBIVE1MQ2FudmFz
RWxlbWVudCogY2FuCiB9CiAKIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShDb2xvciBjb2xvcikK
LSAgICA6IG1fY29sb3IoY29sb3IpCi0gICAgLCBtX3R5cGUoUkdCQSkKKyAgICA6IG1fc3R5bGUo
Y29sb3IpCiB7CiB9CiAKIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShmbG9hdCBncmF5TGV2ZWws
IGZsb2F0IGFscGhhKQotICAgIDogbV9jb2xvcihDb2xvcihncmF5TGV2ZWwsIGdyYXlMZXZlbCwg
Z3JheUxldmVsLCBhbHBoYSkpCi0gICAgLCBtX3R5cGUoUkdCQSkKKyAgICA6IG1fc3R5bGUoQ29s
b3IgeyBncmF5TGV2ZWwsIGdyYXlMZXZlbCwgZ3JheUxldmVsLCBhbHBoYSB9KQogewogfQogCiBD
YW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQg
YSkKLSAgICA6IG1fY29sb3IoQ29sb3IociwgZywgYiwgYSkpCi0gICAgLCBtX3R5cGUoUkdCQSkK
KyAgICA6IG1fc3R5bGUoQ29sb3IgeyByLCBnLCBiLCBhIH0pCiB7CiB9CiAKIENhbnZhc1N0eWxl
OjpDYW52YXNTdHlsZShmbG9hdCBjLCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBh
KQotICAgIDogbV9jbXlrYShuZXcgQ01ZS0FWYWx1ZXMoQ29sb3IoYywgbSwgeSwgaywgYSksIGMs
IG0sIHksIGssIGEpKQotICAgICwgbV90eXBlKENNWUtBKQorICAgIDogbV9zdHlsZShDTVlLQUNv
bG9yIHsgQ29sb3IgeyBjLCBtLCB5LCBrLCBhIH0sIGMsIG0sIHksIGssIGEgfSkKIHsKIH0KIAot
Q2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKFBhc3NSZWZQdHI8Q2FudmFzR3JhZGllbnQ+IGdyYWRp
ZW50KQotICAgIDogbV9ncmFkaWVudChncmFkaWVudC5sZWFrUmVmKCkpCi0gICAgLCBtX3R5cGUo
R3JhZGllbnQpCitDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoQ2FudmFzR3JhZGllbnQmIGdyYWRp
ZW50KQorICAgIDogbV9zdHlsZShtYWtlUmVmUHRyKGdyYWRpZW50KSkKIHsKLSAgICBpZiAoIW1f
Z3JhZGllbnQpCi0gICAgICAgIG1fdHlwZSA9IEludmFsaWQ7CiB9CiAKLUNhbnZhc1N0eWxlOjpD
YW52YXNTdHlsZShQYXNzUmVmUHRyPENhbnZhc1BhdHRlcm4+IHBhdHRlcm4pCi0gICAgOiBtX3Bh
dHRlcm4ocGF0dGVybi5sZWFrUmVmKCkpCi0gICAgLCBtX3R5cGUoSW1hZ2VQYXR0ZXJuKQorQ2Fu
dmFzU3R5bGU6OkNhbnZhc1N0eWxlKENhbnZhc1BhdHRlcm4mIHBhdHRlcm4pCisgICAgOiBtX3N0
eWxlKG1ha2VSZWZQdHIocGF0dGVybikpCiB7Ci0gICAgaWYgKCFtX3BhdHRlcm4pCi0gICAgICAg
IG1fdHlwZSA9IEludmFsaWQ7CiB9CiAKLUNhbnZhc1N0eWxlOjp+Q2FudmFzU3R5bGUoKQoraW5s
aW5lIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShDdXJyZW50Q29sb3IgY29sb3IpCisgICAgOiBt
X3N0eWxlKGNvbG9yKQogewotICAgIGlmIChtX3R5cGUgPT0gR3JhZGllbnQpCi0gICAgICAgIG1f
Z3JhZGllbnQtPmRlcmVmKCk7Ci0gICAgZWxzZSBpZiAobV90eXBlID09IEltYWdlUGF0dGVybikK
LSAgICAgICAgbV9wYXR0ZXJuLT5kZXJlZigpOwotICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBDTVlL
QSkKLSAgICAgICAgZGVsZXRlIG1fY215a2E7CiB9CiAKIENhbnZhc1N0eWxlIENhbnZhc1N0eWxl
OjpjcmVhdGVGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIERvY3VtZW50KiBk
b2N1bWVudCkKIHsKICAgICBpZiAoaXNDdXJyZW50Q29sb3JTdHJpbmcoY29sb3JTdHJpbmcpKQot
ICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUoQ29uc3RydWN0Q3VycmVudENvbG9yKTsKKyAgICAg
ICAgcmV0dXJuIEN1cnJlbnRDb2xvciB7IHN0ZDo6bnVsbG9wdCB9OwogCiAgICAgQ29sb3IgY29s
b3IgPSBwYXJzZUNvbG9yKGNvbG9yU3RyaW5nLCBkb2N1bWVudCk7Ci0gICAgaWYgKGNvbG9yLmlz
VmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIENhbnZhc1N0eWxlKGNvbG9yKTsKKyAgICBpZiAoIWNv
bG9yLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBDYW52YXNT
dHlsZSgpOworICAgIHJldHVybiBjb2xvcjsKIH0KIAogQ2FudmFzU3R5bGUgQ2FudmFzU3R5bGU6
OmNyZWF0ZUZyb21TdHJpbmdXaXRoT3ZlcnJpZGVBbHBoYShjb25zdCBTdHJpbmcmIGNvbG9yU3Ry
aW5nLCBmbG9hdCBhbHBoYSkKIHsKICAgICBpZiAoaXNDdXJyZW50Q29sb3JTdHJpbmcoY29sb3JT
dHJpbmcpKQotICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUoQ3VycmVudENvbG9yV2l0aE92ZXJy
aWRlQWxwaGEsIGFscGhhKTsKKyAgICAgICAgcmV0dXJuIEN1cnJlbnRDb2xvciB7IGFscGhhIH07
CiAKICAgICBDb2xvciBjb2xvciA9IHBhcnNlQ29sb3IoY29sb3JTdHJpbmcpOwotICAgIGlmIChj
b2xvci5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiBDYW52YXNTdHlsZShjb2xvcldpdGhPdmVy
cmlkZUFscGhhKGNvbG9yLnJnYigpLCBhbHBoYSkpOworICAgIGlmICghY29sb3IuaXNWYWxpZCgp
KQorICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIENhbnZhc1N0eWxlKCk7CisgICAg
cmV0dXJuIENvbG9yIHsgY29sb3JXaXRoT3ZlcnJpZGVBbHBoYShjb2xvci5yZ2IoKSwgYWxwaGEp
IH07CiB9CiAKIGJvb2wgQ2FudmFzU3R5bGU6OmlzRXF1aXZhbGVudENvbG9yKGNvbnN0IENhbnZh
c1N0eWxlJiBvdGhlcikgY29uc3QKIHsKLSAgICBpZiAobV90eXBlICE9IG90aGVyLm1fdHlwZSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENv
bG9yPihtX3N0eWxlKSAmJiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENvbG9yPihvdGhlci5tX3N0
eWxlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6Z2V0PENvbG9yPihtX3N0eWxlKSA9PSBXVEY6Omdl
dDxDb2xvcj4ob3RoZXIubV9zdHlsZSk7CiAKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNh
c2UgUkdCQToKLSAgICAgICAgcmV0dXJuIG1fY29sb3IgPT0gb3RoZXIubV9jb2xvcjsKLSAgICBj
YXNlIENNWUtBOgotICAgICAgICByZXR1cm4gbV9jbXlrYS0+YyA9PSBvdGhlci5tX2NteWthLT5j
Ci0gICAgICAgICAgICAmJiBtX2NteWthLT5tID09IG90aGVyLm1fY215a2EtPm0KLSAgICAgICAg
ICAgICYmIG1fY215a2EtPnkgPT0gb3RoZXIubV9jbXlrYS0+eQotICAgICAgICAgICAgJiYgbV9j
bXlrYS0+ayA9PSBvdGhlci5tX2NteWthLT5rCi0gICAgICAgICAgICAmJiBtX2NteWthLT5hID09
IG90aGVyLm1fY215a2EtPmE7Ci0gICAgY2FzZSBHcmFkaWVudDoKLSAgICBjYXNlIEltYWdlUGF0
dGVybjoKLSAgICBjYXNlIEN1cnJlbnRDb2xvcjoKLSAgICBjYXNlIEN1cnJlbnRDb2xvcldpdGhP
dmVycmlkZUFscGhhOgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBJbnZhbGlkOgot
ICAgICAgICBicmVhazsKKyAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDTVlLQUNvbG9y
PihtX3N0eWxlKSAmJiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENNWUtBQ29sb3I+KG90aGVyLm1f
c3R5bGUpKSB7CisgICAgICAgIGF1dG8mIGEgPSBXVEY6OmdldDxDTVlLQUNvbG9yPihtX3N0eWxl
KTsKKyAgICAgICAgYXV0byYgYiA9IFdURjo6Z2V0PENNWUtBQ29sb3I+KG90aGVyLm1fc3R5bGUp
OworICAgICAgICByZXR1cm4gYS5jID09IGIuYyAmJiBhLm0gPT0gYi5tICYmIGEueSA9PSBiLnkg
JiYgYS5rID09IGIuayAmJiBhLmEgPT0gYi5hOwogICAgIH0KIAotICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBDYW52YXNTdHlsZTo6aXNFcXVp
dmFsZW50UkdCQShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhKSBjb25zdAogewot
ICAgIGlmIChtX3R5cGUgIT0gUkdCQSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0
dXJuIG1fY29sb3IgPT0gQ29sb3IociwgZywgYiwgYSk7CisgICAgcmV0dXJuIFdURjo6aG9sZHNf
YWx0ZXJuYXRpdmU8Q29sb3I+KG1fc3R5bGUpICYmIFdURjo6Z2V0PENvbG9yPihtX3N0eWxlKSA9
PSBDb2xvciB7IHIsIGcsIGIsIGEgfTsKIH0KIAogYm9vbCBDYW52YXNTdHlsZTo6aXNFcXVpdmFs
ZW50Q01ZS0EoZmxvYXQgYywgZmxvYXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYSkgY29u
c3QKIHsKLSAgICBpZiAobV90eXBlICE9IENNWUtBKQorICAgIGlmICghV1RGOjpob2xkc19hbHRl
cm5hdGl2ZTxDTVlLQUNvbG9yPihtX3N0eWxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgcmV0dXJuIGMgPT0gbV9jbXlrYS0+YwotICAgICAgICAmJiBtID09IG1fY215a2EtPm0KLSAg
ICAgICAgJiYgeSA9PSBtX2NteWthLT55Ci0gICAgICAgICYmIGsgPT0gbV9jbXlrYS0+awotICAg
ICAgICAmJiBhID09IG1fY215a2EtPmE7Ci19Ci0KLUNhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShj
b25zdCBDYW52YXNTdHlsZSYgb3RoZXIpCi17Ci0gICAgbWVtY3B5KHRoaXMsICZvdGhlciwgc2l6
ZW9mKENhbnZhc1N0eWxlKSk7Ci0gICAgaWYgKG1fdHlwZSA9PSBHcmFkaWVudCkKLSAgICAgICAg
bV9ncmFkaWVudC0+cmVmKCk7Ci0gICAgZWxzZSBpZiAobV90eXBlID09IEltYWdlUGF0dGVybikK
LSAgICAgICAgbV9wYXR0ZXJuLT5yZWYoKTsKLSAgICBlbHNlIGlmIChtX3R5cGUgPT0gQ01ZS0Ep
Ci0gICAgICAgIG1fY215a2EgPSBuZXcgQ01ZS0FWYWx1ZXMob3RoZXIubV9jbXlrYS0+Y29sb3Is
IG90aGVyLm1fY215a2EtPmMsIG90aGVyLm1fY215a2EtPm0sIG90aGVyLm1fY215a2EtPnksIG90
aGVyLm1fY215a2EtPmssIG90aGVyLm1fY215a2EtPmEpOwotfQotCi1DYW52YXNTdHlsZSYgQ2Fu
dmFzU3R5bGU6Om9wZXJhdG9yPShjb25zdCBDYW52YXNTdHlsZSYgb3RoZXIpCi17Ci0gICAgaWYg
KHRoaXMgIT0gJm90aGVyKSB7Ci0gICAgICAgIHRoaXMtPn5DYW52YXNTdHlsZSgpOwotICAgICAg
ICBuZXcgKHRoaXMpIENhbnZhc1N0eWxlKG90aGVyKTsKLSAgICB9Ci0gICAgcmV0dXJuICp0aGlz
OworICAgIGF1dG8mIGNoYW5uZWxzID0gV1RGOjpnZXQ8Q01ZS0FDb2xvcj4obV9zdHlsZSk7Cisg
ICAgcmV0dXJuIGMgPT0gY2hhbm5lbHMuYyAmJiBtID09IGNoYW5uZWxzLm0gJiYgeSA9PSBjaGFu
bmVscy55ICYmIGsgPT0gY2hhbm5lbHMuayAmJiBhID09IGNoYW5uZWxzLmE7CiB9CiAKLXZvaWQg
Q2FudmFzU3R5bGU6OmFwcGx5U3Ryb2tlQ29sb3IoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KSBj
b25zdAordm9pZCBDYW52YXNTdHlsZTo6YXBwbHlTdHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQpIGNvbnN0CiB7Ci0gICAgaWYgKCFjb250ZXh0KQotICAgICAgICByZXR1cm47Ci0g
ICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFJHQkE6Ci0gICAgICAgIGNvbnRleHQtPnNl
dFN0cm9rZUNvbG9yKG1fY29sb3IpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENNWUtBOiB7
Ci0gICAgICAgIC8vIEZJWE1FOiBEbyB0aGlzIHRocm91Z2ggcGxhdGZvcm0taW5kZXBlbmRlbnQg
R3JhcGhpY3NDb250ZXh0IEFQSS4KLSAgICAgICAgLy8gV2UnbGwgbmVlZCBhIGZhbmNpZXIgQ29s
b3IgYWJzdHJhY3Rpb24gdG8gc3VwcG9ydCBDTVlLQSBjb3JyZWN0bHkKKyAgICBXVEY6OnN3aXRj
aE9uKG1fc3R5bGUsCisgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IENvbG9yJiBjb2xvcikgewor
ICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihjb2xvcik7CisgICAgICAgIH0sCisg
ICAgICAgIFsmY29udGV4dF0gKGNvbnN0IENNWUtBQ29sb3ImIGNvbG9yKSB7CisgICAgICAgICAg
ICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdoIHBsYXRmb3JtLWluZGVwZW5kZW50IEdyYXBoaWNz
Q29udGV4dCBBUEkuCisgICAgICAgICAgICAvLyBXZSdsbCBuZWVkIGEgZmFuY2llciBDb2xvciBh
YnN0cmFjdGlvbiB0byBzdXBwb3J0IENNWUtBIGNvcnJlY3RseQogI2lmIFVTRShDRykKLSAgICAg
ICAgQ0dDb250ZXh0U2V0Q01ZS1N0cm9rZUNvbG9yKGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgp
LCBtX2NteWthLT5jLCBtX2NteWthLT5tLCBtX2NteWthLT55LCBtX2NteWthLT5rLCBtX2NteWth
LT5hKTsKKyAgICAgICAgICAgIENHQ29udGV4dFNldENNWUtTdHJva2VDb2xvcihjb250ZXh0LnBs
YXRmb3JtQ29udGV4dCgpLCBjb2xvci5jLCBjb2xvci5tLCBjb2xvci55LCBjb2xvci5rLCBjb2xv
ci5hKTsKICNlbHNlCi0gICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKG1fY215a2EtPmNv
bG9yKTsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IoY29sb3IuY29sb3IpOwog
I2VuZGlmCi0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIEdyYWRpZW50OgotICAgICAg
ICBjb250ZXh0LT5zZXRTdHJva2VHcmFkaWVudChjYW52YXNHcmFkaWVudCgpLT5ncmFkaWVudCgp
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbWFnZVBhdHRlcm46Ci0gICAgICAgIGNvbnRl
eHQtPnNldFN0cm9rZVBhdHRlcm4oY2FudmFzUGF0dGVybigpLT5wYXR0ZXJuKCkpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEN1cnJlbnRDb2xvcjoKLSAgICBjYXNlIEN1cnJlbnRDb2xvcldp
dGhPdmVycmlkZUFscGhhOgotICAgIGNhc2UgSW52YWxpZDoKLSAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotdm9pZCBDYW52YXNTdHlsZTo6
YXBwbHlGaWxsQ29sb3IoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KSBjb25zdAotewotICAgIGlm
ICghY29udGV4dCkKLSAgICAgICAgcmV0dXJuOwotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAg
Y2FzZSBSR0JBOgotICAgICAgICBjb250ZXh0LT5zZXRGaWxsQ29sb3IobV9jb2xvcik7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgQ01ZS0E6IHsKLSAgICAgICAgLy8gRklYTUU6IERvIHRoaXMg
dGhyb3VnaCBwbGF0Zm9ybS1pbmRlcGVuZGVudCBHcmFwaGljc0NvbnRleHQgQVBJLgotICAgICAg
ICAvLyBXZSdsbCBuZWVkIGEgZmFuY2llciBDb2xvciBhYnN0cmFjdGlvbiB0byBzdXBwb3J0IENN
WUtBIGNvcnJlY3RseQorICAgICAgICB9LAorICAgICAgICBbJmNvbnRleHRdIChjb25zdCBSZWZQ
dHI8Q2FudmFzR3JhZGllbnQ+JiBncmFkaWVudCkgeworICAgICAgICAgICAgY29udGV4dC5zZXRT
dHJva2VHcmFkaWVudChncmFkaWVudC0+Z3JhZGllbnQoKSk7CisgICAgICAgIH0sCisgICAgICAg
IFsmY29udGV4dF0gKGNvbnN0IFJlZlB0cjxDYW52YXNQYXR0ZXJuPiYgcGF0dGVybikgeworICAg
ICAgICAgICAgY29udGV4dC5zZXRTdHJva2VQYXR0ZXJuKHBhdHRlcm4tPnBhdHRlcm4oKSk7Cisg
ICAgICAgIH0sCisgICAgICAgIFtdIChjb25zdCBDdXJyZW50Q29sb3ImKSB7CisgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10gKGNvbnN0IElu
dmFsaWQmKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQor
ICAgICk7Cit9CisKK3ZvaWQgQ2FudmFzU3R5bGU6OmFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCkgY29uc3QKK3sKKyAgICBXVEY6OnN3aXRjaE9uKG1fc3R5bGUsCisgICAg
ICAgIFsmY29udGV4dF0gKGNvbnN0IENvbG9yJiBjb2xvcikgeworICAgICAgICAgICAgY29udGV4
dC5zZXRGaWxsQ29sb3IoY29sb3IpOworICAgICAgICB9LAorICAgICAgICBbJmNvbnRleHRdIChj
b25zdCBDTVlLQUNvbG9yJiBjb2xvcikgeworICAgICAgICAgICAgLy8gRklYTUU6IERvIHRoaXMg
dGhyb3VnaCBwbGF0Zm9ybS1pbmRlcGVuZGVudCBHcmFwaGljc0NvbnRleHQgQVBJLgorICAgICAg
ICAgICAgLy8gV2UnbGwgbmVlZCBhIGZhbmNpZXIgQ29sb3IgYWJzdHJhY3Rpb24gdG8gc3VwcG9y
dCBDTVlLQSBjb3JyZWN0bHkKICNpZiBVU0UoQ0cpCi0gICAgICAgIENHQ29udGV4dFNldENNWUtG
aWxsQ29sb3IoY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIG1fY215a2EtPmMsIG1fY215a2Et
Pm0sIG1fY215a2EtPnksIG1fY215a2EtPmssIG1fY215a2EtPmEpOworICAgICAgICAgICAgQ0dD
b250ZXh0U2V0Q01ZS0ZpbGxDb2xvcihjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBjb2xvci5j
LCBjb2xvci5tLCBjb2xvci55LCBjb2xvci5rLCBjb2xvci5hKTsKICNlbHNlCi0gICAgICAgIGNv
bnRleHQtPnNldEZpbGxDb2xvcihtX2NteWthLT5jb2xvcik7CisgICAgICAgICAgICBjb250ZXh0
LnNldEZpbGxDb2xvcihjb2xvci5jb2xvcik7CiAjZW5kaWYKLSAgICAgICAgYnJlYWs7Ci0gICAg
fQotICAgIGNhc2UgR3JhZGllbnQ6Ci0gICAgICAgIGNvbnRleHQtPnNldEZpbGxHcmFkaWVudChj
YW52YXNHcmFkaWVudCgpLT5ncmFkaWVudCgpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJ
bWFnZVBhdHRlcm46Ci0gICAgICAgIGNvbnRleHQtPnNldEZpbGxQYXR0ZXJuKGNhbnZhc1BhdHRl
cm4oKS0+cGF0dGVybigpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDdXJyZW50Q29sb3I6
Ci0gICAgY2FzZSBDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBoYToKLSAgICBjYXNlIEludmFs
aWQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9
CisgICAgICAgIH0sCisgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IFJlZlB0cjxDYW52YXNHcmFk
aWVudD4mIGdyYWRpZW50KSB7CisgICAgICAgICAgICBjb250ZXh0LnNldEZpbGxHcmFkaWVudChn
cmFkaWVudC0+Z3JhZGllbnQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsmY29udGV4dF0gKGNv
bnN0IFJlZlB0cjxDYW52YXNQYXR0ZXJuPiYgcGF0dGVybikgeworICAgICAgICAgICAgY29udGV4
dC5zZXRGaWxsUGF0dGVybihwYXR0ZXJuLT5wYXR0ZXJuKCkpOworICAgICAgICB9LAorICAgICAg
ICBbXSAoY29uc3QgQ3VycmVudENvbG9yJikgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIH0sCisgICAgICAgIFtdIChjb25zdCBJbnZhbGlkJikgeworICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICApOwogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuaAppbmRleCBiNmJmNDdjNDAzYzNk
OWU5NTYwNTY5MTRhMDRiYmMzMGEwYWFiYTJiLi4yNzc0YTdhNTU4NDJhMmJkMTY1YTUwYzU5NzFl
ZjdiZTUzMzU3MGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4LCAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKQEAgLTI2LDEzNSArMjYsMTAwIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAi
Q2FudmFzR3JhZGllbnQuaCIKKyNpbmNsdWRlICJDYW52YXNQYXR0ZXJuLmgiCiAjaW5jbHVkZSAi
Q29sb3IuaCIKLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotICAgIGNsYXNzIENhbnZhc0dyYWRpZW50OwotICAgIGNsYXNzIENhbnZhc1BhdHRl
cm47Ci0gICAgY2xhc3MgRG9jdW1lbnQ7Ci0gICAgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwotICAg
IGNsYXNzIEhUTUxDYW52YXNFbGVtZW50OwotCi0gICAgY2xhc3MgQ2FudmFzU3R5bGUgewotICAg
IHB1YmxpYzoKLSAgICAgICAgQ2FudmFzU3R5bGUoKTsKLSAgICAgICAgZXhwbGljaXQgQ2FudmFz
U3R5bGUoQ29sb3IpOwotICAgICAgICBDYW52YXNTdHlsZShmbG9hdCBncmF5TGV2ZWwsIGZsb2F0
IGFscGhhKTsKLSAgICAgICAgQ2FudmFzU3R5bGUoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQgYiwg
ZmxvYXQgYWxwaGEpOwotICAgICAgICBDYW52YXNTdHlsZShmbG9hdCBjLCBmbG9hdCBtLCBmbG9h
dCB5LCBmbG9hdCBrLCBmbG9hdCBhbHBoYSk7Ci0gICAgICAgIGV4cGxpY2l0IENhbnZhc1N0eWxl
KFBhc3NSZWZQdHI8Q2FudmFzR3JhZGllbnQ+KTsKLSAgICAgICAgZXhwbGljaXQgQ2FudmFzU3R5
bGUoUGFzc1JlZlB0cjxDYW52YXNQYXR0ZXJuPik7Ci0gICAgICAgIH5DYW52YXNTdHlsZSgpOwot
Ci0gICAgICAgIHN0YXRpYyBDYW52YXNTdHlsZSBjcmVhdGVGcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgY29sb3IsIERvY3VtZW50KiA9IDApOwotICAgICAgICBzdGF0aWMgQ2FudmFzU3R5bGUgY3Jl
YXRlRnJvbVN0cmluZ1dpdGhPdmVycmlkZUFscGhhKGNvbnN0IFN0cmluZyYgY29sb3IsIGZsb2F0
IGFscGhhKTsKLQotICAgICAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUg
IT0gSW52YWxpZDsgfQotICAgICAgICBib29sIGlzQ3VycmVudENvbG9yKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlID09IEN1cnJlbnRDb2xvciB8fCBtX3R5cGUgPT0gQ3VycmVudENvbG9yV2l0aE92
ZXJyaWRlQWxwaGE7IH0KLSAgICAgICAgYm9vbCBoYXNPdmVycmlkZUFscGhhKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlID09IEN1cnJlbnRDb2xvcldpdGhPdmVycmlkZUFscGhhOyB9Ci0gICAgICAg
IGZsb2F0IG92ZXJyaWRlQWxwaGEoKSBjb25zdCB7IEFTU0VSVChtX3R5cGUgPT0gQ3VycmVudENv
bG9yV2l0aE92ZXJyaWRlQWxwaGEpOyByZXR1cm4gbV9vdmVycmlkZUFscGhhOyB9Ci0KLSAgICAg
ICAgU3RyaW5nIGNvbG9yKCkgY29uc3Q7Ci0gICAgICAgIENhbnZhc0dyYWRpZW50KiBjYW52YXNH
cmFkaWVudCgpIGNvbnN0OwotICAgICAgICBDYW52YXNQYXR0ZXJuKiBjYW52YXNQYXR0ZXJuKCkg
Y29uc3Q7Ci0KLSAgICAgICAgdm9pZCBhcHBseUZpbGxDb2xvcihHcmFwaGljc0NvbnRleHQqKSBj
b25zdDsKLSAgICAgICAgdm9pZCBhcHBseVN0cm9rZUNvbG9yKEdyYXBoaWNzQ29udGV4dCopIGNv
bnN0OwotCi0gICAgICAgIGJvb2wgaXNFcXVpdmFsZW50Q29sb3IoY29uc3QgQ2FudmFzU3R5bGUm
KSBjb25zdDsKLSAgICAgICAgYm9vbCBpc0VxdWl2YWxlbnRSR0JBKGZsb2F0IHIsIGZsb2F0IGcs
IGZsb2F0IGIsIGZsb2F0IGEpIGNvbnN0OwotICAgICAgICBib29sIGlzRXF1aXZhbGVudENNWUtB
KGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZsb2F0IGEpIGNvbnN0OwotCi0g
ICAgICAgIENhbnZhc1N0eWxlKGNvbnN0IENhbnZhc1N0eWxlJik7Ci0gICAgICAgIENhbnZhc1N0
eWxlJiBvcGVyYXRvcj0oY29uc3QgQ2FudmFzU3R5bGUmKTsKLSAgICAgICAgQ2FudmFzU3R5bGUo
Q2FudmFzU3R5bGUmJik7Ci0gICAgICAgIENhbnZhc1N0eWxlJiBvcGVyYXRvcj0oQ2FudmFzU3R5
bGUmJik7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBlbnVtIFR5cGUgeyBSR0JBLCBDTVlLQSwg
R3JhZGllbnQsIEltYWdlUGF0dGVybiwgQ3VycmVudENvbG9yLCBDdXJyZW50Q29sb3JXaXRoT3Zl
cnJpZGVBbHBoYSwgSW52YWxpZCB9OwotICAgICAgICBzdHJ1Y3QgQ01ZS0FWYWx1ZXMgewotICAg
ICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAgICAgICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShDTVlLQVZhbHVlcyk7Ci0gICAgICAgIHB1YmxpYzoKLSAgICAgICAgICAgIENN
WUtBVmFsdWVzKCkKLSAgICAgICAgICAgICAgICA6IGNvbG9yKCksIGMoMCksIG0oMCksIHkoMCks
IGsoMCksIGEoMCkKLSAgICAgICAgICAgIHsgfQotCi0gICAgICAgICAgICBDTVlLQVZhbHVlcyhD
b2xvciBjb2xvciwgZmxvYXQgY3lhbiwgZmxvYXQgbWFnZW50YSwgZmxvYXQgeWVsbG93LCBmbG9h
dCBibGFjaywgZmxvYXQgYWxwaGEpCi0gICAgICAgICAgICAgICAgOiBjb2xvcihjb2xvciksIGMo
Y3lhbiksIG0obWFnZW50YSksIHkoeWVsbG93KSwgayhibGFjayksIGEoYWxwaGEpCi0gICAgICAg
ICAgICB7IH0KLSAgICAgICAgICAgIENvbG9yIGNvbG9yOwotICAgICAgICAgICAgZmxvYXQgYzsK
LSAgICAgICAgICAgIGZsb2F0IG07Ci0gICAgICAgICAgICBmbG9hdCB5OwotICAgICAgICAgICAg
ZmxvYXQgazsKLSAgICAgICAgICAgIGZsb2F0IGE7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgZW51
bSBDb25zdHJ1Y3RDdXJyZW50Q29sb3JUYWcgeyBDb25zdHJ1Y3RDdXJyZW50Q29sb3IgfTsKLSAg
ICAgICAgQ2FudmFzU3R5bGUoQ29uc3RydWN0Q3VycmVudENvbG9yVGFnKSA6IG1fdHlwZShDdXJy
ZW50Q29sb3IpIHsgfQotICAgICAgICBDYW52YXNTdHlsZShUeXBlIHR5cGUsIGZsb2F0IG92ZXJy
aWRlQWxwaGEpCi0gICAgICAgICAgICA6IG1fb3ZlcnJpZGVBbHBoYShvdmVycmlkZUFscGhhKQot
ICAgICAgICAgICAgLCBtX3R5cGUodHlwZSkKK2NsYXNzIERvY3VtZW50OworY2xhc3MgR3JhcGhp
Y3NDb250ZXh0OworY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQ7CisKK2NsYXNzIENhbnZhc1N0eWxl
IHsKK3B1YmxpYzoKKyAgICBDYW52YXNTdHlsZSgpOworICAgIENhbnZhc1N0eWxlKENvbG9yKTsK
KyAgICBDYW52YXNTdHlsZShmbG9hdCBncmF5TGV2ZWwsIGZsb2F0IGFscGhhKTsKKyAgICBDYW52
YXNTdHlsZShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhbHBoYSk7CisgICAgQ2Fu
dmFzU3R5bGUoZmxvYXQgYywgZmxvYXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYWxwaGEp
OworICAgIENhbnZhc1N0eWxlKENhbnZhc0dyYWRpZW50Jik7CisgICAgQ2FudmFzU3R5bGUoQ2Fu
dmFzUGF0dGVybiYpOworCisgICAgc3RhdGljIENhbnZhc1N0eWxlIGNyZWF0ZUZyb21TdHJpbmco
Y29uc3QgU3RyaW5nJiBjb2xvciwgRG9jdW1lbnQqID0gbnVsbHB0cik7CisgICAgc3RhdGljIENh
bnZhc1N0eWxlIGNyZWF0ZUZyb21TdHJpbmdXaXRoT3ZlcnJpZGVBbHBoYShjb25zdCBTdHJpbmcm
IGNvbG9yLCBmbG9hdCBhbHBoYSk7CisKKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVy
biAhV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxJbnZhbGlkPihtX3N0eWxlKTsgfQorICAgIGJvb2wg
aXNDdXJyZW50Q29sb3IoKSBjb25zdCB7IHJldHVybiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPEN1
cnJlbnRDb2xvcj4obV9zdHlsZSk7IH0KKyAgICBib29sIGhhc092ZXJyaWRlQWxwaGEoKSBjb25z
dCB7IHJldHVybiBpc0N1cnJlbnRDb2xvcigpICYmIFdURjo6Z2V0PEN1cnJlbnRDb2xvcj4obV9z
dHlsZSkub3ZlcnJpZGVBbHBoYTsgfQorICAgIGZsb2F0IG92ZXJyaWRlQWxwaGEoKSBjb25zdCB7
IHJldHVybiBXVEY6OmdldDxDdXJyZW50Q29sb3I+KG1fc3R5bGUpLm92ZXJyaWRlQWxwaGEudmFs
dWUoKTsgfQorCisgICAgU3RyaW5nIGNvbG9yKCkgY29uc3Q7CisgICAgQ2FudmFzR3JhZGllbnQq
IGNhbnZhc0dyYWRpZW50KCkgY29uc3Q7CisgICAgQ2FudmFzUGF0dGVybiogY2FudmFzUGF0dGVy
bigpIGNvbnN0OworCisgICAgdm9pZCBhcHBseUZpbGxDb2xvcihHcmFwaGljc0NvbnRleHQmKSBj
b25zdDsKKyAgICB2b2lkIGFwcGx5U3Ryb2tlQ29sb3IoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7
CisKKyAgICBib29sIGlzRXF1aXZhbGVudENvbG9yKGNvbnN0IENhbnZhc1N0eWxlJikgY29uc3Q7
CisgICAgYm9vbCBpc0VxdWl2YWxlbnRSR0JBKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0
IGJsdWUsIGZsb2F0IGFscGhhKSBjb25zdDsKKyAgICBib29sIGlzRXF1aXZhbGVudENNWUtBKGZs
b2F0IGN5YW4sIGZsb2F0IG1hZ2VudGEsIGZsb2F0IHllbGxvdywgZmxvYXQgYmxhY2ssIGZsb2F0
IGFscGhhKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgSW52YWxpZCB7IH07CisKKyAg
ICBzdHJ1Y3QgQ01ZS0FDb2xvciB7CisgICAgICAgIENNWUtBQ29sb3IoKSA9IGRlZmF1bHQ7CisK
KyAgICAgICAgQ01ZS0FDb2xvcihDb2xvciBjb2xvciwgZmxvYXQgY3lhbiwgZmxvYXQgbWFnZW50
YSwgZmxvYXQgeWVsbG93LCBmbG9hdCBibGFjaywgZmxvYXQgYWxwaGEpCisgICAgICAgICAgICA6
IGNvbG9yKGNvbG9yKSwgYyhjeWFuKSwgbShtYWdlbnRhKSwgeSh5ZWxsb3cpLCBrKGJsYWNrKSwg
YShhbHBoYSkKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgdW5pb24gewotICAgICAg
ICAgICAgQ29sb3IgbV9jb2xvcjsKLSAgICAgICAgICAgIGZsb2F0IG1fb3ZlcnJpZGVBbHBoYTsK
LSAgICAgICAgICAgIENhbnZhc0dyYWRpZW50KiBtX2dyYWRpZW50OwotICAgICAgICAgICAgQ2Fu
dmFzUGF0dGVybiogbV9wYXR0ZXJuOwotICAgICAgICAgICAgQ01ZS0FWYWx1ZXMqIG1fY215a2E7
Ci0gICAgICAgIH07Ci0gICAgICAgIFR5cGUgbV90eXBlOworICAgICAgICBDb2xvciBjb2xvcjsK
KyAgICAgICAgZmxvYXQgYyB7IDAgfTsKKyAgICAgICAgZmxvYXQgbSB7IDAgfTsKKyAgICAgICAg
ZmxvYXQgeSB7IDAgfTsKKyAgICAgICAgZmxvYXQgayB7IDAgfTsKKyAgICAgICAgZmxvYXQgYSB7
IDAgfTsKICAgICB9OwogCi0gICAgQ29sb3IgY3VycmVudENvbG9yKEhUTUxDYW52YXNFbGVtZW50
Kik7Ci0gICAgQ29sb3IgcGFyc2VDb2xvck9yQ3VycmVudENvbG9yKGNvbnN0IFN0cmluZyYgY29s
b3JTdHJpbmcsIEhUTUxDYW52YXNFbGVtZW50Kik7Ci0KLSAgICBpbmxpbmUgQ2FudmFzU3R5bGU6
OkNhbnZhc1N0eWxlKCkKLSAgICAgICAgOiBtX3R5cGUoSW52YWxpZCkKLSAgICB7Ci0gICAgfQot
Ci0gICAgaW5saW5lIENhbnZhc0dyYWRpZW50KiBDYW52YXNTdHlsZTo6Y2FudmFzR3JhZGllbnQo
KSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKG1fdHlwZSA9PSBHcmFkaWVudCkKLSAgICAgICAg
ICAgIHJldHVybiBtX2dyYWRpZW50OwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgQ2FudmFzUGF0dGVybiogQ2FudmFzU3R5bGU6OmNhbnZhc1BhdHRlcm4oKSBjb25zdAot
ICAgIHsKLSAgICAgICAgaWYgKG1fdHlwZSA9PSBJbWFnZVBhdHRlcm4pCi0gICAgICAgICAgICBy
ZXR1cm4gbV9wYXR0ZXJuOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
U3RyaW5nIENhbnZhc1N0eWxlOjpjb2xvcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQo
bV90eXBlID09IFJHQkEgfHwgbV90eXBlID09IENNWUtBKTsKLSAgICAgICAgaWYgKG1fdHlwZSA9
PSBSR0JBKQotICAgICAgICAgICAgcmV0dXJuIG1fY29sb3Iuc2VyaWFsaXplZCgpOwotICAgICAg
ICByZXR1cm4gbV9jbXlrYS0+Y29sb3Iuc2VyaWFsaXplZCgpOwotICAgIH0KLQotICAgIGlubGlu
ZSBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoQ2FudmFzU3R5bGUmJiBvdGhlcikKLSAgICB7Ci0g
ICAgICAgIG1lbWNweSh0aGlzLCAmb3RoZXIsIHNpemVvZihDYW52YXNTdHlsZSkpOwotICAgICAg
ICBvdGhlci5tX3R5cGUgPSBJbnZhbGlkOwotICAgIH0KLQotICAgIGlubGluZSBDYW52YXNTdHls
ZSYgQ2FudmFzU3R5bGU6Om9wZXJhdG9yPShDYW52YXNTdHlsZSYmIG90aGVyKQotICAgIHsKLSAg
ICAgICAgaWYgKHRoaXMgIT0gJm90aGVyKSB7Ci0gICAgICAgICAgICBtZW1jcHkodGhpcywgJm90
aGVyLCBzaXplb2YoQ2FudmFzU3R5bGUpKTsKLSAgICAgICAgICAgIG90aGVyLm1fdHlwZSA9IElu
dmFsaWQ7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KKyAgICBzdHJ1
Y3QgQ3VycmVudENvbG9yIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxmbG9hdD4gb3ZlcnJpZGVB
bHBoYTsKKyAgICB9OworCisgICAgQ2FudmFzU3R5bGUoQ3VycmVudENvbG9yKTsKKworICAgIFZh
cmlhbnQ8SW52YWxpZCwgQ29sb3IsIENNWUtBQ29sb3IsIFJlZlB0cjxDYW52YXNHcmFkaWVudD4s
IFJlZlB0cjxDYW52YXNQYXR0ZXJuPiwgQ3VycmVudENvbG9yPiBtX3N0eWxlOworfTsKKworQ29s
b3IgY3VycmVudENvbG9yKEhUTUxDYW52YXNFbGVtZW50Kik7CitDb2xvciBwYXJzZUNvbG9yT3JD
dXJyZW50Q29sb3IoY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZywgSFRNTENhbnZhc0VsZW1lbnQq
KTsKKworaW5saW5lIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZSgpCisgICAgOiBtX3N0eWxlKElu
dmFsaWQgeyB9KQoreworfQorCitpbmxpbmUgQ2FudmFzR3JhZGllbnQqIENhbnZhc1N0eWxlOjpj
YW52YXNHcmFkaWVudCgpIGNvbnN0Cit7CisgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZl
PFJlZlB0cjxDYW52YXNHcmFkaWVudD4+KG1fc3R5bGUpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gV1RGOjpnZXQ8UmVmUHRyPENhbnZhc0dyYWRpZW50Pj4obV9zdHlsZSku
Z2V0KCk7Cit9CisKK2lubGluZSBDYW52YXNQYXR0ZXJuKiBDYW52YXNTdHlsZTo6Y2FudmFzUGF0
dGVybigpIGNvbnN0Cit7CisgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFJlZlB0cjxD
YW52YXNQYXR0ZXJuPj4obV9zdHlsZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBXVEY6OmdldDxSZWZQdHI8Q2FudmFzUGF0dGVybj4+KG1fc3R5bGUpLmdldCgpOworfQor
CitpbmxpbmUgU3RyaW5nIENhbnZhc1N0eWxlOjpjb2xvcigpIGNvbnN0Cit7CisgICAgYXV0byYg
Y29sb3IgPSBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENvbG9yPihtX3N0eWxlKSA/IFdURjo6Z2V0
PENvbG9yPihtX3N0eWxlKSA6IFdURjo6Z2V0PENNWUtBQ29sb3I+KG1fc3R5bGUpLmNvbG9yOwor
ICAgIHJldHVybiBjb2xvci5zZXJpYWxpemVkKCk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2Jq
ZWN0LmNwcAppbmRleCBjOGIxMGY3YmZiYzY4MWQ4YWE4NTk1OWEzZjFlMjdkNjM3OGU2OWFlLi4x
ZWY4MzMxNzRmZWI5YzMxYWIwZThkOTJmZmRmNGMzMDUwYjRiOGFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCkBAIC00OSw4
ICs0OSw4IEBAIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiBPRVNWZXJ0ZXhBcnJh
eU9iamVjdDo6Y3JlYXRlVmVydGV4QXJyYXlPRVMoKQogICAgIGlmIChtX2NvbnRleHQuaXNDb250
ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gb2JqZWN0ID0g
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKG1fY29udGV4dCwgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUzo6VkFPVHlwZVVzZXIpOwotICAgIG1fY29udGV4dC5hZGRDb250ZXh0T2Jq
ZWN0KG9iamVjdC5wdHIoKSk7CisgICAgYXV0byBvYmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTOjpjcmVhdGUobV9jb250ZXh0LCBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpUeXBl
OjpVc2VyKTsKKyAgICBtX2NvbnRleHQuYWRkQ29udGV4dE9iamVjdChvYmplY3QuZ2V0KCkpOwog
ICAgIHJldHVybiBXVEZNb3ZlKG9iamVjdCk7CiB9CiAKQEAgLTU4LDkgKzU4LDkgQEAgdm9pZCBP
RVNWZXJ0ZXhBcnJheU9iamVjdDo6ZGVsZXRlVmVydGV4QXJyYXlPRVMoV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdE9FUyogYXJyYXkKIHsKICAgICBpZiAoIWFycmF5T2JqZWN0IHx8IG1fY29udGV4dC5p
c0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICBpZiAoIWFycmF5T2Jq
ZWN0LT5pc0RlZmF1bHRPYmplY3QoKSAmJiBhcnJheU9iamVjdCA9PSBzdGF0aWNfY2FzdDxXZWJH
TFJlbmRlcmluZ0NvbnRleHQqPigmbV9jb250ZXh0KS0+bV9ib3VuZFZlcnRleEFycmF5T2JqZWN0
KQotICAgICAgICBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQqPigmbV9jb250ZXh0
KS0+c2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdCgwKTsKKworICAgIGlmICghYXJyYXlPYmplY3Qt
PmlzRGVmYXVsdE9iamVjdCgpICYmIGFycmF5T2JqZWN0ID09IHN0YXRpY19jYXN0PFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCY+KG1fY29udGV4dCkubV9ib3VuZFZlcnRleEFycmF5T2JqZWN0KQorICAg
ICAgICBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQmPihtX2NvbnRleHQpLnNldEJv
dW5kVmVydGV4QXJyYXlPYmplY3QobnVsbHB0cik7CiAKICAgICBhcnJheU9iamVjdC0+ZGVsZXRl
T2JqZWN0KG1fY29udGV4dC5ncmFwaGljc0NvbnRleHQzRCgpKTsKIH0KQEAgLTg5LDcgKzg5LDcg
QEAgdm9pZCBPRVNWZXJ0ZXhBcnJheU9iamVjdDo6YmluZFZlcnRleEFycmF5T0VTKFdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMqIGFycmF5T2IKICAgICAgICAgY29udGV4dC5zZXRCb3VuZFZlcnRl
eEFycmF5T2JqZWN0KGFycmF5T2JqZWN0KTsKICAgICB9IGVsc2UgewogICAgICAgICBleHRlbnNp
b25zLmJpbmRWZXJ0ZXhBcnJheU9FUygwKTsKLSAgICAgICAgY29udGV4dC5zZXRCb3VuZFZlcnRl
eEFycmF5T2JqZWN0KDApOworICAgICAgICBjb250ZXh0LnNldEJvdW5kVmVydGV4QXJyYXlPYmpl
Y3QobnVsbHB0cik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDQ4MGEwY2E5NWI1MTgzMTIz
ODBjOWNlZmI4NDQ4ZjI1OTEwODE4MTcuLmZmNTk5MThiZGNhZmRiY2Q2YzM0Nzg2Yzg3MjFlZmZi
ODg2MjE2MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJl
bmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0yNCw5ICsyNCw5IEBACiAgKi8KIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCIKIAogI2lmIEVO
QUJMRShXRUJHTCkgJiYgRU5BQkxFKFdFQkdMMikKLSNpbmNsdWRlICJXZWJHTDJSZW5kZXJpbmdD
b250ZXh0LmgiCiAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkVYVFRleHR1
cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIgpAQCAtNjMsNyArNjMsNyBAQCBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRD
YW52YXMsCiB7CiB9CiAKLVdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OldlYkdMMlJlbmRlcmluZ0Nv
bnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiYmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVz
KQorV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2Fu
dmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29udGV4
dCwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgOiBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlKHBhc3NlZENhbnZhcywgV1RGTW92ZShjb250ZXh0KSwgYXR0cmli
dXRlcykKIHsKICAgICBpbml0aWFsaXplU2hhZGVyRXh0ZW5zaW9ucygpOwpAQCAtNzIsOCArNzIs
OCBAQCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0KEhUTUxD
YW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsCiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cygpCiB7Ci0gICAgbV9kZWZhdWx0VmVydGV4
QXJyYXlPYmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdM
VmVydGV4QXJyYXlPYmplY3Q6OlZBT1R5cGVEZWZhdWx0KTsKLSAgICBhZGRDb250ZXh0T2JqZWN0
KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0LmdldCgpKTsKKyAgICBtX2RlZmF1bHRWZXJ0ZXhB
cnJheU9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZSgqdGhpcywgV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdDo6VHlwZTo6RGVmYXVsdCk7CisgICAgYWRkQ29udGV4dE9iamVjdCgq
bV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QpOwogICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVj
dCA9IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OwogICAgIGlmICghaXNHTEVTMkNvbXBsaWFu
dCgpKQogICAgICAgICBpbml0VmVydGV4QXR0cmliMCgpOwpAQCAtMjAzLDcgKzIwMyw3IEBAIHZv
aWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y29weUJ1ZmZlclN1YkRhdGEoR0MzRGVudW0gcmVh
ZFRhcmdldCwgR0MzRGVudW0gd3JpCiAgICAgfQogCiAgICAgbV9jb250ZXh0LT5tb3ZlRXJyb3Jz
VG9TeW50aGV0aWNFcnJvckxpc3QoKTsKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElP
UykKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBtX2NvbnRleHQtPmNvcHlCdWZmZXJTdWJEYXRh
KHJlYWRUYXJnZXQsIHdyaXRlVGFyZ2V0LCBjaGVja2VkUmVhZE9mZnNldC51bnNhZmVHZXQoKSwg
Y2hlY2tlZFdyaXRlT2Zmc2V0LnVuc2FmZUdldCgpLCBjaGVja2VkU2l6ZS51bnNhZmVHZXQoKSk7
CiAjZW5kaWYKICAgICBpZiAobV9jb250ZXh0LT5tb3ZlRXJyb3JzVG9TeW50aGV0aWNFcnJvckxp
c3QoKSkgewpAQCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
Z2V0QnVmZmVyU3ViRGF0YShHQzNEZW51bSB0YXJnZXQsIGxvbmcgbG9uZyBzcmNCeXRlCiAgICAg
fQogCiAgICAgbV9jb250ZXh0LT5tb3ZlRXJyb3JzVG9TeW50aGV0aWNFcnJvckxpc3QoKTsKLSNp
ZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShDT0NPQSkKICAg
ICAvLyBGSVhNRTogQ29hbGVzY2UgbXVsdGlwbGUgZ2V0QnVmZmVyU3ViRGF0YSgpIGNhbGxzIHRv
IHVzZSBhIHNpbmdsZSBtYXAoKSBjYWxsCiAgICAgdm9pZCogcHRyID0gbV9jb250ZXh0LT5tYXBC
dWZmZXJSYW5nZSh0YXJnZXQsIGNoZWNrZWRTcmNCeXRlT2Zmc2V0LnVuc2FmZUdldCgpLCBzdGF0
aWNfY2FzdDxHQzNEc2l6ZWlwdHI+KGNoZWNrZWRDb3B5TGVuZ3RoUHRyLnVuc2FmZUdldCgpICog
Y2hlY2tlZEVsZW1lbnRTaXplLnVuc2FmZUdldCgpKSwgR3JhcGhpY3NDb250ZXh0M0Q6Ok1BUF9S
RUFEX0JJVCk7CiAgICAgbWVtY3B5KHN0YXRpY19jYXN0PGNoYXIqPihkc3REYXRhLT5iYXNlQWRk
cmVzcygpKSArIGRzdERhdGEtPmJ5dGVPZmZzZXQoKSArIGRzdE9mZnNldCAqIGVsZW1lbnRTaXpl
LCBwdHIsIGNvcHlMZW5ndGggKiBlbGVtZW50U2l6ZSk7CkBAIC0yOTAsOSArMjkwLDkgQEAgdm9p
ZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpmcmFtZWJ1ZmZlclRleHR1cmVMYXllcihHQzNEZW51
bSwgR0MzRGVudW0sIEdDM0R1aW4KIHsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKEdDM0RlbnVtLCBHQzNEZW51bSwg
R0MzRGVudW0pCitXZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbnRlcm5hbGZv
cm1hdFBhcmFtZXRlcihHQzNEZW51bSwgR0MzRGVudW0sIEdDM0RlbnVtKQogewotICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjppbnZhbGlkYXRlRnJhbWVidWZmZXIoR0MzRGVudW0sIFZlY3RvcjxH
QzNEZW51bT4pCkBAIC00MDcsNyArNDA3LDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
Ojp0ZXhTdG9yYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzMKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBX
ZWJHTFRleHR1cmUqIHRleHR1cmUgPSB2YWxpZGF0ZVRleHR1cmVCaW5kaW5nKCJ0ZXhTdG9yYWdl
MkQiLCB0YXJnZXQsIGZhbHNlKTsKKyAgICBhdXRvKiB0ZXh0dXJlID0gdmFsaWRhdGVUZXh0dXJl
QmluZGluZygidGV4U3RvcmFnZTJEIiwgdGFyZ2V0LCBmYWxzZSk7CiAgICAgaWYgKCF0ZXh0dXJl
KQogICAgICAgICByZXR1cm47CiAKQEAgLTc4Miw5ICs3ODIsOSBAQCBSZWZQdHI8V2ViR0xRdWVy
eT4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnkoR0MzRGVudW0sIEdDM0RlbnVtKQog
ICAgIHJldHVybiBudWxscHRyOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0UXVlcnlQYXJhbWV0ZXIoV2ViR0xRdWVyeSosIEdDM0RlbnVtKQorV2ViR0xBbnkg
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnlQYXJhbWV0ZXIoV2ViR0xRdWVyeSosIEdD
M0RlbnVtKQogewotICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAogUmVmUHRyPFdlYkdMU2FtcGxlcj4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y3Jl
YXRlU2FtcGxlcigpCkBAIC04MTMsOSArODEzLDkgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpzYW1wbGVyUGFyYW1ldGVyZihXZWJHTFNhbXBsZXIqLCBHQzNEZW51bSwgR0MzRGZsb2EK
IHsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFNhbXBsZXJQ
YXJhbWV0ZXIoV2ViR0xTYW1wbGVyKiwgR0MzRGVudW0pCitXZWJHTEFueSBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpnZXRTYW1wbGVyUGFyYW1ldGVyKFdlYkdMU2FtcGxlciosIEdDM0RlbnVtKQog
ewotICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAog
UmVmUHRyPFdlYkdMU3luYz4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZmVuY2VTeW5jKEdDM0Rl
bnVtLCBHQzNEYml0ZmllbGQpCkBAIC04NDEsOSArODQxLDkgQEAgdm9pZCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0Ojp3YWl0U3luYyhXZWJHTFN5bmMqLCBHQzNEYml0ZmllbGQsIEdDM0R1aW50NjQp
CiB7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRTeW5jUGFy
YW1ldGVyKFdlYkdMU3luYyosIEdDM0RlbnVtKQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0U3luY1BhcmFtZXRlcihXZWJHTFN5bmMqLCBHQzNEZW51bSkKIHsKLSAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZlB0cjxXZWJH
TFRyYW5zZm9ybUZlZWRiYWNrPiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVUcmFuc2Zv
cm1GZWVkYmFjaygpCkBAIC04OTcsNyArODk3LDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpiaW5kQnVmZmVyUmFuZ2UoR0MzRGVudW0sIEdDM0R1aW50LCBXZWJHTEJ1ZmZlciosIEcK
IHsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEluZGV4ZWRQ
YXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWludCkKK1dlYkdMQW55IFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmdldEluZGV4ZWRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWlu
dCkKIHsKICAgICBzd2l0Y2ggKHRhcmdldCkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORzoKQEAgLTkwNywxMyArOTA3LDExIEBA
IFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVy
KEdDM0RlbnVtIHRhcmdldCwgR0MzRHVpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5J
Rk9STV9CVUZGRVJfU0laRToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTklGT1JNX0JV
RkZFUl9TVEFSVDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfRU5VTSwgImdldEluZGV4ZWRQYXJhbWV0ZXIiLCAicGFyYW1ldGVyIG5hbWUgbm90
IHlldCBzdXBwb3J0ZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0SW5kZXhlZFBhcmFtZXRlciIs
ICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
KTsKLSAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOwogfQogCiBVaW50MzJBcnJheSogV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0VW5pZm9ybUluZGljZXMoV2ViR0xQcm9ncmFtKiwgVmVjdG9yPFN0cmluZz4pCkBA
IC05MzEsMTQgKzkyOSwxNCBAQCBHQzNEdWludCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRV
bmlmb3JtQmxvY2tJbmRleChXZWJHTFByb2dyYW0qLCBTdHJpbmcpCiAgICAgcmV0dXJuIDA7CiB9
CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3Jt
QmxvY2tQYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQsIEdDM0RlbnVtKQorV2ViR0xB
bnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVy
KFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50LCBHQzNEZW51bSkKIHsKLSAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKFdlYkdMUHJvZ3JhbSos
IEdDM0R1aW50KQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5p
Zm9ybUJsb2NrTmFtZShXZWJHTFByb2dyYW0qLCBHQzNEdWludCkKIHsKLSAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6dW5pZm9ybUJsb2NrQmluZGluZyhXZWJHTFByb2dyYW0qLCBHQzNEdWludCwg
R0MzRHVpbnQpCkBAIC05NTAsOCArOTQ4LDggQEAgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3Q+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVZlcnRleEFycmF5KCkKICAgICBpZiAo
aXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKLSAgICBhdXRv
IG9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZSgqdGhpcywgV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdDo6VkFPVHlwZVVzZXIpOwotICAgIGFkZENvbnRleHRPYmplY3Qob2JqZWN0
LnB0cigpKTsKKyAgICBhdXRvIG9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0
ZSgqdGhpcywgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6VHlwZTo6VXNlcik7CisgICAgYWRkQ29u
dGV4dE9iamVjdChvYmplY3QuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKG9iamVjdCk7CiB9
CiAKQEAgLTk2NCw3ICs5NjIsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0
ZVZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIGFycmF5T2JqZQogICAgICAgICBy
ZXR1cm47CiAgICAgCiAgICAgaWYgKCFhcnJheU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkgJiYg
YXJyYXlPYmplY3QgPT0gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0KQotICAgICAgICBzZXRCb3Vu
ZFZlcnRleEFycmF5T2JqZWN0KDApOworICAgICAgICBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0
KG51bGxwdHIpOwogICAgIAogICAgIGFycmF5T2JqZWN0LT5kZWxldGVPYmplY3QoZ3JhcGhpY3ND
b250ZXh0M0QoKSk7CiB9CkBAIC05NzIsMTAgKzk3MCwxMCBAQCB2b2lkIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmRlbGV0ZVZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIGFycmF5
T2JqZQogR0MzRGJvb2xlYW4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNWZXJ0ZXhBcnJheShX
ZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamVjdCkKIHsKICAgICBpZiAoIWFycmF5T2Jq
ZWN0IHx8IGlzQ29udGV4dExvc3QoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAKICAgICBpZiAoIWFycmF5T2JqZWN0LT5oYXNFdmVyQmVlbkJvdW5kKCkg
fHwgIWFycmF5T2JqZWN0LT52YWxpZGF0ZSgwLCAqdGhpcykpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgcmV0dXJuIG1fY29udGV4dC0+aXNWZXJ0
ZXhBcnJheShhcnJheU9iamVjdC0+b2JqZWN0KCkpOwogfQpAQCAtOTk2LDcgKzk5NCw3IEBAIHZv
aWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmluZFZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJy
YXlPYmplY3QqIGFycmF5T2JqZWN0CiAgICAgICAgIHNldEJvdW5kVmVydGV4QXJyYXlPYmplY3Qo
YXJyYXlPYmplY3QpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fY29udGV4dC0+YmluZFZlcnRl
eEFycmF5KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0LT5vYmplY3QoKSk7Ci0gICAgICAgIHNl
dEJvdW5kVmVydGV4QXJyYXlPYmplY3QobV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QpOworICAg
ICAgICBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0
LmdldCgpKTsKICAgICB9CiB9CiAKQEAgLTEwMDUsNDMgKzEwMDMsNDggQEAgV2ViR0xFeHRlbnNp
b24qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5h
bWUpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICBpZiAoKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF90ZXh0
dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpIHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwg
IldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkKLSAgICAgICAgJiYgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9h
bmlzb3Ryb3BpYyIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVY
VF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpIHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
bmFtZSwgIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkgewogICAgICAg
ICBpZiAoIW1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKSB7Ci0gICAgICAgICAgICBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9FWFRfdGV4dHVyZV9maWx0
ZXJfYW5pc290cm9waWMiKTsKLSAgICAgICAgICAgIG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJv
cGljID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWM+KCp0aGlz
KTsKKyAgICAgICAgICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhB
U0NJSUxpdGVyYWwgeyAiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIiB9KSkgewor
ICAgICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQo
QVNDSUlMaXRlcmFsIHsgIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIgfSk7Cisg
ICAgICAgICAgICAgICAgbV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMgPSBzdGQ6Om1ha2Vf
dW5pcXVlPEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYz4oKnRoaXMpOworICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Yy5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9F
U190ZXh0dXJlX2Zsb2F0IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
c3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxvYXQiKSkgewogICAgICAgICBpZiAoIW1f
b2VzVGV4dHVyZUZsb2F0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpOwotICAgICAgICAgICAgbV9v
ZXNUZXh0dXJlRmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdD4oKnRoaXMp
OworICAgICAgICAgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFT
Q0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9mbG9hdCIgfSkpIHsKKyAgICAgICAgICAgICAg
ICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0ZXJhbCB7
ICJHTF9PRVNfdGV4dHVyZV9mbG9hdCIgfSk7CisgICAgICAgICAgICAgICAgbV9vZXNUZXh0dXJl
RmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdD4oKnRoaXMpOworICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVGbG9hdC5nZXQo
KTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0
dXJlX2Zsb2F0X2xpbmVhciIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkgeworICAgIGlmIChlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkgewog
ICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUZsb2F0TGluZWFyKSB7Ci0gICAgICAgICAgICBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9mbG9h
dF9saW5lYXIiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyID0gc3RkOjpt
YWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXRMaW5lYXI+KCp0aGlzKTsKKyAgICAgICAgICAgIGlm
IChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xf
T0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9KSkgeworICAgICAgICAgICAgICAgIG1fY29udGV4
dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190
ZXh0dXJlX2Zsb2F0X2xpbmVhciIgfSk7CisgICAgICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxv
YXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdExpbmVhcj4oKnRoaXMp
OworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVG
bG9hdExpbmVhci5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
bmFtZSwgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpKSB7Cisg
ICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2hhbGZfZmxv
YXQiKSkgewogICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUhhbGZGbG9hdCkgewotICAgICAgICAg
ICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1
cmVfaGFsZl9mbG9hdCIpOwotICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0ID0gc3Rk
OjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZsb2F0PigqdGhpcyk7CisgICAgICAgICAgICBp
ZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdM
X09FU190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pKSB7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3Rl
eHR1cmVfaGFsZl9mbG9hdCIgfSk7CisgICAgICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZs
b2F0ID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZsb2F0PigqdGhpcyk7CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUhhbGZGbG9h
dC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9F
U190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikp
IHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFs
Zl9mbG9hdF9saW5lYXIiKSkgewogICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUhhbGZGbG9hdExp
bmVhcikgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5h
YmxlZCgiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKTsKLSAgICAgICAgICAgIG1f
b2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhciA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUhh
bGZGbG9hdExpbmVhcj4oKnRoaXMpOworICAgICAgICAgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zs
b2F0X2xpbmVhciIgfSkpIHsKKyAgICAgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zs
b2F0X2xpbmVhciIgfSk7CisgICAgICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGlu
ZWFyID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyPigqdGhpcyk7
CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUhh
bGZGbG9hdExpbmVhci5nZXQoKTsKICAgICB9CkBAIC0xMDUwLDI4ICsxMDUzLDMyIEBAIFdlYkdM
RXh0ZW5zaW9uKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3Ry
aW5nJiBuYW1lKQogICAgICAgICAgICAgbV93ZWJnbExvc2VDb250ZXh0ID0gc3RkOjptYWtlX3Vu
aXF1ZTxXZWJHTExvc2VDb250ZXh0PigqdGhpcyk7CiAgICAgICAgIHJldHVybiBtX3dlYmdsTG9z
ZUNvbnRleHQuZ2V0KCk7CiAgICAgfQotICAgIGlmICgoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShu
YW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKSkKLSAgICAgICAgJiYg
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAgICBp
ZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQykKLSAgICAgICAgICAgIG1fd2ViZ2xDb21w
cmVzc2VkVGV4dHVyZUFUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQz4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJL
SVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlQVRDKSB7CisgICAgICAgICAgICBpZiAoV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkKKyAgICAgICAgICAgICAgICBtX3dlYmdsQ29t
cHJlc3NlZFRleHR1cmVBVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVBVEM+KCp0aGlzKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNz
ZWRUZXh0dXJlQVRDLmdldCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSkKLSAgICAg
ICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0g
ICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMpCi0gICAgICAgICAgICBt
X3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21w
cmVzc2VkVGV4dHVyZVBWUlRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSkgeworICAg
ICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKSB7CisgICAgICAgICAgICBp
ZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpKQorICAgICAg
ICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDID0gc3RkOjptYWtlX3VuaXF1
ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM+KCp0aGlzKTsKKyAgICAgICAgfQogICAgICAg
ICByZXR1cm4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMuZ2V0KCk7CiAgICAgfQotICAg
IGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9jb21wcmVzc2VkX3RleHR1
cmVfczN0YyIpCi0gICAgICAgICYmIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0
ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQykK
LSAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMgPSBzdGQ6Om1ha2VfdW5p
cXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIikpIHsK
KyAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDKSB7CisgICAgICAgICAg
ICBpZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhpcykpCisgICAg
ICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQyA9IHN0ZDo6bWFrZV91bmlx
dWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM+KCp0aGlzKTsKKyAgICAgICAgfQogICAgICAg
ICByZXR1cm4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQy5nZXQoKTsKICAgICB9Ci0gICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlcHRoX3RleHR1cmUiKQot
ICAgICAgICAmJiBXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCpncmFwaGljc0NvbnRleHQz
RCgpKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xEZXB0aFRleHR1cmUpCi0gICAgICAgICAgICBt
X3dlYmdsRGVwdGhUZXh0dXJlID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlcHRoVGV4dHVyZT4o
KnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZXB0
aF90ZXh0dXJlIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsRGVwdGhUZXh0dXJlKSB7CisgICAg
ICAgICAgICBpZiAoV2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqZ3JhcGhpY3NDb250ZXh0
M0QoKSkpCisgICAgICAgICAgICAgICAgbV93ZWJnbERlcHRoVGV4dHVyZSA9IHN0ZDo6bWFrZV91
bmlxdWU8V2ViR0xEZXB0aFRleHR1cmU+KCp0aGlzKTsKKyAgICAgICAgfQogICAgICAgICByZXR1
cm4gbV93ZWJnbERlcHRoVGV4dHVyZS5nZXQoKTsKICAgICB9CiAgICAgaWYgKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKSkgewpAQCAtMTA3
OSwxMCArMTA4NiwxMSBAQCBXZWJHTEV4dGVuc2lvbiogV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgICAgIG1fd2ViZ2xEZWJ1
Z1JlbmRlcmVySW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4o
KnRoaXMpOwogICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvLmdldCgpOwog
ICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVidWdf
c2hhZGVycyIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRz
KCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkgewotICAgICAgICBpZiAoIW1f
d2ViZ2xEZWJ1Z1NoYWRlcnMpCi0gICAgICAgICAgICBtX3dlYmdsRGVidWdTaGFkZXJzID0gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnU2hhZGVycz4oKnRoaXMpOworICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19zaGFkZXJzIikpIHsKKyAgICAgICAg
aWYgKCFtX3dlYmdsRGVidWdTaGFkZXJzKSB7CisgICAgICAgICAgICBpZiAobV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0FOR0xFX3RyYW5zbGF0
ZWRfc2hhZGVyX3NvdXJjZSIgfSkpCisgICAgICAgICAgICAgICAgbV93ZWJnbERlYnVnU2hhZGVy
cyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1Z1NoYWRlcnM+KCp0aGlzKTsKKyAgICAgICAg
fQogICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnU2hhZGVycy5nZXQoKTsKICAgICB9CiAKQEAg
LTEwOTYsOTAgKzExMDQsOTAgQEAgVmVjdG9yPFN0cmluZz4gV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpCiAgICAgaWYgKG1faXNQZW5kaW5nUG9saWN5UmVz
b2x1dGlvbikKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAotICAgIGlmIChtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfZmxvYXQiKSkKLSAgICAgICAg
cmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVfZmxvYXQiKTsKLSAgICBpZiAobV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKQot
ICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKTsKLSAgICBp
ZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hh
bGZfZmxvYXQiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVfaGFsZl9mbG9h
dCIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VT
X3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VT
X3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKQot
ICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJv
cGljIik7CisgICAgYXV0byYgZXh0ZW5zaW9ucyA9IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
OworICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4
dHVyZV9mbG9hdCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9F
U190ZXh0dXJlX2Zsb2F0IiB9KTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxp
dGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9KSkKKyAgICAgICAgcmVzdWx0
LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9KTsKKyAg
ICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVf
aGFsZl9mbG9hdCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9F
U190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pOworICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKEFT
Q0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIgfSkpCisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRf
bGluZWFyIiB9KTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAi
R0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIiB9KSkKKyAgICAgICAgcmVzdWx0LmFw
cGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCS0lUX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3Bp
YyIgfSk7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZCgqdGhp
cykpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1
cmVfYXRjIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQktJVF9X
RUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIiB9KTsKICAgICBpZiAoV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJX
RUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIik7CisgICAgICAgIHJlc3VsdC5h
cHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZy
dGMiIH0pOwogICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKCp0
aGlzKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3Mz
dGMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfY29tcHJl
c3NlZF90ZXh0dXJlX3MzdGMiIH0pOwogICAgIGlmIChXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9y
dGVkKCpncmFwaGljc0NvbnRleHQzRCgpKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xf
ZGVwdGhfdGV4dHVyZSIpOwotICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2xvc2VfY29udGV4dCIp
OwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfQU5HTEVf
dHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdM
X2RlYnVnX3NoYWRlcnMiKTsKLSAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19yZW5kZXJl
cl9pbmZvIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2Rl
cHRoX3RleHR1cmUiIH0pOworICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdM
X2xvc2VfY29udGV4dCIgfSk7CisgICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRl
cmFsIHsgIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIgfSkpCisgICAgICAgIHJl
c3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RlYnVnX3NoYWRlcnMiIH0pOworICAg
IHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8i
IH0pOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpCiB7CiAg
ICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVGcmFtZWJ1ZmZlckZ1
bmNQYXJhbWV0ZXJzKCJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLCB0YXJnZXQs
IGF0dGFjaG1lbnQpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIAogICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgfHwgIW1f
ZnJhbWVidWZmZXJCaW5kaW5nLT5vYmplY3QoKSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIiLCAibm8gZnJhbWVidWZmZXIgYm91bmQiKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAg
Ci0gICAgV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCA9IG1fZnJhbWVidWZmZXJCaW5kaW5nLT5n
ZXRBdHRhY2htZW50T2JqZWN0KGF0dGFjaG1lbnQpOworICAgIGF1dG8qIG9iamVjdCA9IG1fZnJh
bWVidWZmZXJCaW5kaW5nLT5nZXRBdHRhY2htZW50T2JqZWN0KGF0dGFjaG1lbnQpOwogICAgIGlm
ICghb2JqZWN0KSB7CiAgICAgICAgIGlmIChwbmFtZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6RlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSkKLSAgICAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpOwotICAgICAgICAvLyBPcGVuR0wgRVMg
Mi4wIHNwZWNpZmllcyBJTlZBTElEX0VOVU0gaW4gdGhpcyBjYXNlLCB3aGlsZSBkZXNrdG9wIEdM
Ci0gICAgICAgIC8vIHNwZWNpZmllcyBJTlZBTElEX09QRVJBVElPTi4KKyAgICAgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpOworICAg
ICAgICAvLyBPcGVuR0wgRVMgMi4wIHNwZWNpZmllcyBJTlZBTElEX0VOVU0gaW4gdGhpcyBjYXNl
LCB3aGlsZSBkZXNrdG9wIEdMIHNwZWNpZmllcyBJTlZBTElEX09QRVJBVElPTi4KICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQogICAgIAotICAgIEFTU0VSVChvYmplY3QtPmlzVGV4dHVyZSgpIHx8IG9iamVjdC0+
aXNSZW5kZXJidWZmZXIoKSk7CiAgICAgaWYgKG9iamVjdC0+aXNUZXh0dXJlKCkpIHsKICAgICAg
ICAgc3dpdGNoIChwbmFtZSkgewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRSk7CisgICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFKTsKICAgICAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
TkFNRToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8ocmVpbnRlcnByZXRfY2FzdDxX
ZWJHTFRleHR1cmUqPihvYmplY3QpKTsKKyAgICAgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHJl
aW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJlJj4oKm9iamVjdCkpOwogICAgICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEVWRUw6CiAg
ICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVY
VFVSRV9DVUJFX01BUF9GQUNFOgogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HOiB7CiAgICAgICAgICAgICBHQzNEaW50
IHZhbHVlID0gMDsKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RnJhbWVidWZmZXJBdHRhY2ht
ZW50UGFyYW1ldGVyaXYodGFyZ2V0LCBhdHRhY2htZW50LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHZh
bHVlOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUgZm9yIHRleHR1cmUg
YXR0YWNobWVudCIpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9IGVsc2UgeworICAgICAgICBB
U1NFUlQob2JqZWN0LT5pc1JlbmRlcmJ1ZmZlcigpKTsKICAgICAgICAgc3dpdGNoIChwbmFtZSkg
ewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X09CSkVDVF9UWVBFOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGljc0Nv
bnRleHQzRDo6UkVOREVSQlVGRkVSKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUik7CiAgICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUU6Ci0g
ICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5k
ZXJidWZmZXIqPihvYmplY3QpKTsKKyAgICAgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5kZXJidWZmZXImPigqb2JqZWN0KSk7CiAgICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcg
OiB7Ci0gICAgICAgICAgICBXZWJHTFJlbmRlcmJ1ZmZlciogcmVuZGVyQnVmZmVyID0gcmVpbnRl
cnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZlcio+KG9iamVjdCk7Ci0gICAgICAgICAgICBHQzNE
ZW51bSByZW5kZXJCdWZmZXJGb3JtYXQgPSByZW5kZXJCdWZmZXItPmdldEludGVybmFsRm9ybWF0
KCk7Ci0gICAgICAgICAgICBpZiAocmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4
dDNEOjpTUkdCOF9BTFBIQTgKLSAgICAgICAgICAgICAgICB8fCByZW5kZXJCdWZmZXJGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfRVRDMgotICAgICAgICAgICAg
ICAgIHx8IHJlbmRlckJ1ZmZlckZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NF
RF9TUkdCOF9BTFBIQThfRVRDMl9FQUMKLSAgICAgICAgICAgICAgICB8fCByZW5kZXJCdWZmZXJG
b3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfUFVOQ0hUSFJPVUdI
X0FMUEhBMV9FVEMyKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFw
aGljc0NvbnRleHQzRDo6U1JHQik7CisgICAgICAgICAgICBhdXRvJiByZW5kZXJCdWZmZXIgPSBy
ZWludGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyJj4oKm9iamVjdCk7CisgICAgICAgICAg
ICBhdXRvIGZvcm1hdCA9IHJlbmRlckJ1ZmZlci5nZXRJbnRlcm5hbEZvcm1hdCgpOworICAgICAg
ICAgICAgaWYgKGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6U1JHQjhfQUxQSEE4CisgICAg
ICAgICAgICAgICAgfHwgZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NS
R0I4X0VUQzIKKyAgICAgICAgICAgICAgICB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6
OkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJfRUFDCisgICAgICAgICAgICAgICAgfHwgZm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NSR0I4X1BVTkNIVEhST1VHSF9B
TFBIQTFfRVRDMikgeworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oR3JhcGhpY3NDb250ZXh0M0Q6OlNSR0IpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKKyAgICAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVB
Uik7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBmb3IgcmVuZGVyYnVm
ZmVyIGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMTE5MSwx
OSArMTE5OSwxNiBAQCBib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlRnJhbWVi
dWZmZXJGdW5jUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdAogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogICAgIHN3aXRjaCAoYXR0YWNobWVudCkgewotICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkRFUFRIX0FUVEFDSE1FTlQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9B
VFRBQ0hNRU5UOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUxfQVRU
QUNITUVOVDoKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1
bHQ6Ci0gICAgICAgIGlmIChhdHRhY2htZW50ID4gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FU
VEFDSE1FTlQwCi0gICAgICAgICAgICAmJiBhdHRhY2htZW50IDwgc3RhdGljX2Nhc3Q8R0MzRGVu
dW0+KEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCArIGdldE1heENvbG9yQXR0
YWNobWVudHMoKSkpCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgaWYgKGF0dGFjaG1lbnQg
Pj0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwICYmIGF0dGFjaG1lbnQgPCBz
dGF0aWNfY2FzdDxHQzNEZW51bT4oR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQw
ICsgZ2V0TWF4Q29sb3JBdHRhY2htZW50cygpKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVN
LCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIGF0dGFjaG1lbnQiKTsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKIH0KIAogR0MzRGludCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpnZXRNYXhEcmF3QnVmZmVycygpCkBAIC0xMzk1LDcgKzE0MDAsNyBAQCBHQzNE
ZW51bSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiYXNlSW50ZXJuYWxGb3JtYXRGcm9tSW50ZXJu
YWxGb3JtYXQoR0MzRGVudW0gaQogYm9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppc0ludGVn
ZXJGb3JtYXQoR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQpCiB7CiAgICAgLy8gRklYTUU6IGJhc2VJ
bnRlcm5hbEZvcm1hdEZyb21JbnRlcm5hbEZvcm1hdCgpIG5ldmVyIHJldHVybnMgYW55IG9mIHRo
ZXNlIGVudW1zLgotICAgIC8vIEN1cnJlbnRseSwgVGhpcyBmdW5jdGlvbiBlcnJvbmVvdXNseSBh
bHdheXMgcmV0dXJucyBmYWxzZS4KKyAgICAvLyBCZWNhdXNlIG9mIHRoYXQsIHRoaXMgZnVuY3Rp
b24gZXJyb25lb3VzbHkgYWx3YXlzIHJldHVybnMgZmFsc2UhCiAgICAgc3dpdGNoIChiYXNlSW50
ZXJuYWxGb3JtYXRGcm9tSW50ZXJuYWxGb3JtYXQoaW50ZXJuYWxmb3JtYXQpKSB7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkVEX0lOVEVHRVI6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdfSU5URUdFUjoKQEAgLTE0MDYsMTEgKzE0MTEsMTAgQEAgYm9vbCBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0Ojppc0ludGVnZXJGb3JtYXQoR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQpCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKLSAgICBj
b25zdCBpbnQgaW50WmVybyA9IDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHN3aXRj
aCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVfVEVYVFVSRToK
ICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKQEAgLTE0MjEs
NyArMTQyNSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJh
bWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUxQSEFf
QklUUzoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8obV9ib3VuZEFycmF5QnVmZmVyLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIG1f
Ym91bmRBcnJheUJ1ZmZlcjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORDoKICAg
ICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkJMRU5EX0NPTE9SOgpAQCAtMTQ0NSwxNiArMTQ0OSwxNiBAQCBXZWJHTEdl
dEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX1dSSVRFTUFTSzoKICAgICAgICAg
cmV0dXJuIGdldEJvb2xlYW5BcnJheVBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6Q09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFM6Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oUGFzc1JlZlB0cjxVaW50MzJBcnJheT4oVWludDMyQXJyYXk6OmNyZWF0ZSht
X2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5kYXRhKCksIG1fY29tcHJlc3NlZFRleHR1cmVGb3Jt
YXRzLnNpemUoKSkpKTsKKyAgICAgICAgcmV0dXJuIFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21w
cmVzc2VkVGV4dHVyZUZvcm1hdHMuZGF0YSgpLCBtX2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5z
aXplKCkpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNVTExfRkFDRToKICAgICAgICAg
cmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkNVTExfRkFDRV9NT0RFOgogICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJh
bWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNVUlJFTlRfUFJPR1JB
TToKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2N1cnJlbnRQcm9ncmFtLmdldCgpKTsK
KyAgICAgICAgcmV0dXJuIG1fY3VycmVudFByb2dyYW07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6REVQVEhfQklUUzoKICAgICAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAh
bV9hdHRyaWJ1dGVzLmRlcHRoKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhpbnRa
ZXJvKTsKKyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1l
dGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DTEVBUl9WQUxV
RToKICAgICAgICAgcmV0dXJuIGdldEZsb2F0UGFyYW1ldGVyKHBuYW1lKTsKQEAgLTE0NjksOSAr
MTQ3Myw5IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0
ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RElUSEVSOgog
ICAgICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1lbnRBcnJh
eUJ1ZmZlcigpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIobV9ib3VuZFZlcnRleEFycmF5
T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyht
X2ZyYW1lYnVmZmVyQmluZGluZy5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX2ZyYW1lYnVmZmVy
QmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUk9OVF9GQUNFOgogICAgICAg
ICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkdFTkVSQVRFX01JUE1BUF9ISU5UOgpAQCAtMTUxOSw5ICsxNTIzLDkgQEAg
V2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51
bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRURfQklUUzoKICAgICAgICAg
cmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkVOREVSQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9y
ZW5kZXJidWZmZXJCaW5kaW5nLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIG1fcmVuZGVyYnVmZmVy
QmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJFUjoKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhTdHJpbmcoIldlYktpdCBXZWJHTCIpKTsKKyAgICAgICAgcmV0
dXJuIFN0cmluZyB7IEFTQ0lJTGl0ZXJhbCB7ICJXZWJLaXQgV2ViR0wiIH0gfTsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTQU1QTEVfQlVGRkVSUzoKICAgICAgICAgcmV0dXJuIGdldElu
dFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0FNUExFX0NP
VkVSQUdFX0lOVkVSVDoKQEAgLTE1MzUsNyArMTUzOSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6U0NJU1NPUl9URVNUOgogICAgICAgICByZXR1cm4gZ2V0Qm9vbGVh
blBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0hBRElOR19M
QU5HVUFHRV9WRVJTSU9OOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCJXZWJHTCBHTFNM
IEVTIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpTSEFE
SU5HX0xBTkdVQUdFX1ZFUlNJT04pICsgIikiKTsKKyAgICAgICAgcmV0dXJuICJXZWJHTCBHTFNM
IEVTIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpTSEFE
SU5HX0xBTkdVQUdFX1ZFUlNJT04pICsgIikiOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlNURU5DSUxfQkFDS19GQUlMOgogICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0
ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQkFDS19GVU5D
OgpAQCAtMTU1Miw3ICsxNTU2LDcgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICAgICAgcmV0dXJuIGdldFVuc2ln
bmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVO
Q0lMX0JJVFM6CiAgICAgICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgJiYgIW1fYXR0cmli
dXRlcy5zdGVuY2lsKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhpbnRaZXJvKTsK
KyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBu
YW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0NMRUFSX1ZBTFVFOgog
ICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKQEAgLTE1NzUsMzggKzE1Nzks
MzggQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVUJQSVhFTF9CSVRT
OgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfMkQ6Ci0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4dHVyZTJEQmluZGlu
Zy5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVV
bml0XS50ZXh0dXJlMkRCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkVfQklORElOR19DVUJFX01BUDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3RleHR1
cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlQ3ViZU1hcEJpbmRpbmcuZ2V0KCkp
OworICAgICAgICByZXR1cm4gbV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4
dHVyZUN1YmVNYXBCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19B
TElHTk1FTlQ6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19GTElQX1lfV0VCR0w6Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8obV91bnBhY2tGbGlwWSk7CisgICAgICAgIHJldHVybiBtX3VucGFja0Zs
aXBZOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19QUkVNVUxUSVBMWV9BTFBI
QV9XRUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3VucGFja1ByZW11bHRpcGx5
QWxwaGEpOworICAgICAgICByZXR1cm4gbV91bnBhY2tQcmVtdWx0aXBseUFscGhhOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19DT0xPUlNQQUNFX0NPTlZFUlNJT05fV0VCR0w6
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lv
bik7CisgICAgICAgIHJldHVybiBtX3VucGFja0NvbG9yc3BhY2VDb252ZXJzaW9uOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFTkRPUjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhTdHJpbmcoIldlYktpdCIpKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZyB7IEFTQ0lJTGl0ZXJh
bCB7ICJXZWJLaXQiIH0gfTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJTSU9OOgot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCJXZWJHTCAyLjAgKCIgKyBtX2NvbnRleHQtPmdl
dFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTikgKyAiKSIpOworICAgICAgICByZXR1
cm4gIldlYkdMIDIuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNE
OjpWRVJTSU9OKSArICIpIjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWSUVXUE9SVDoK
ICAgICAgICAgcmV0dXJuIGdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNh
c2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURfUkVOREVSRVJfV0VCR0w6CiAgICAg
ICAgIGlmIChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCi0gICAgICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJF
UikpOworICAgICAgICAgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29u
dGV4dDNEOjpSRU5ERVJFUik7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIg
bmFtZSwgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBub3QgZW5hYmxlZCIpOwotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2Ug
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURfVkVORE9SX1dFQkdMOgogICAgICAgICBp
ZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVORE9SKSk7Cisg
ICAgICAgICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6
OlZFTkRPUik7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgV0VC
R0xfZGVidWdfcmVuZGVyZXJfaW5mbyBub3QgZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2UgRXh0ZW5zaW9u
czNEOjpNQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQ6IC8vIEVYVF90ZXh0dXJlX2ZpbHRl
cl9hbmlzb3Ryb3BpYwogICAgICAgICBpZiAobV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMp
CiAgICAgICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoRXh0ZW5zaW9uczNE
OjpNQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQpOwogICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImlu
dmFsaWQgcGFyYW1ldGVyIG5hbWUsIEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyBub3Qg
ZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQUdNRU5UX1NIQURFUl9E
RVJJVkFUSVZFX0hJTlQ6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6Ok1BWF8zRF9URVhUVVJFX1NJWkU6CkBAIC0xNjg5
LDEyICsxNjkzLDEwIEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQ
YXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1l
dGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTklGT1JNX0JVRkZFUl9P
RkZTRVRfQUxJR05NRU5UOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsK
LSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVJSQVlfQklORElORzogewotICAg
ICAgICBpZiAoIW1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkpCi0g
ICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PFdlYkdMVmVydGV4QXJy
YXlPYmplY3QqPihtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QuZ2V0KCkpKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOworICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BUlJBWV9CSU5ESU5HOgorICAgICAgICBpZiAobV9i
b3VuZFZlcnRleEFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3QoKSkKKyAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihzdGF0aWNfY2FzdDxXZWJH
TFZlcnRleEFycmF5T2JqZWN0Jj4oKm1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCkpOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMDoKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpEUkFXX0JVRkZFUjE6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RFJBV19C
VUZGRVIyOgpAQCAtMTcxMCwxNCArMTcxMiwxMCBAQCBXZWJHTEdldEluZm8gV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTI6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RFJBV19CVUZGRVIxMzoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JVRkZFUjE0
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTU6IHsKLSAgICAgICAg
R0MzRGludCB2YWx1ZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FOworICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTU6CiAgICAgICAgIGlmIChtX2ZyYW1lYnVmZmVyQmlu
ZGluZykKLSAgICAgICAgICAgIHZhbHVlID0gbV9mcmFtZWJ1ZmZlckJpbmRpbmctPmdldERyYXdC
dWZmZXIocG5hbWUpOwotICAgICAgICBlbHNlIC8vIGVtdWxhdGVkIGJhY2tidWZmZXIKLSAgICAg
ICAgICAgIHZhbHVlID0gbV9iYWNrRHJhd0J1ZmZlcjsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyh2YWx1ZSk7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBtX2ZyYW1lYnVmZmVy
QmluZGluZy0+Z2V0RHJhd0J1ZmZlcihwbmFtZSk7CisgICAgICAgIHJldHVybiBtX2JhY2tEcmF3
QnVmZmVyOyAvLyBlbXVsYXRlZCBiYWNrYnVmZmVyCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6Q09QWV9SRUFEX0JVRkZFUjoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT1BZX1dS
SVRFX0JVRkZFUjoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpQSVhFTF9QQUNLX0JVRkZF
Ul9CSU5ESU5HOiAgIApAQCAtMTczMCwxMCArMTcyOCwxMCBAQCBXZWJHTEdldEluZm8gV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORzoKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTklGT1JNX0JVRkZFUl9CSU5ESU5HOgogICAgICAg
ICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0
UGFyYW1ldGVyIiwgInBhcmFtZXRlciBuYW1lIG5vdCB5ZXQgc3VwcG9ydGVkIik7Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogfQogCkBAIC0xNzU0LDcgKzE3NTIsNyBAQCBib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OnZhbGlkYXRlSW5kZXhBcnJheUNvbnNlcnZhdGl2ZShHQzNEZW51bSB0eXBlLCB1bnNpZwogICAg
IC8vIFRoZSBjYXNlIGNvdW50PT0wIGlzIGFscmVhZHkgZGVhbHQgd2l0aCBpbiBkcmF3RWxlbWVu
dHMgYmVmb3JlIHZhbGlkYXRlSW5kZXhBcnJheUNvbnNlcnZhdGl2ZS4KICAgICBpZiAoIW51bUVs
ZW1lbnRzKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY29uc3QgQXJyYXlCdWZmZXIqIGJ1
ZmZlciA9IGVsZW1lbnRBcnJheUJ1ZmZlci0+ZWxlbWVudEFycmF5QnVmZmVyKCk7CisgICAgYXV0
byogYnVmZmVyID0gZWxlbWVudEFycmF5QnVmZmVyLT5lbGVtZW50QXJyYXlCdWZmZXIoKTsKICAg
ICBBU1NFUlQoYnVmZmVyKTsKICAgICAKICAgICBpbnQgbWF4SW5kZXggPSBlbGVtZW50QXJyYXlC
dWZmZXItPmdldENhY2hlZE1heEluZGV4KHR5cGUpOwpAQCAtMTgwNiw3ICsxODA0LDYgQEAgYm9v
bCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUJsZW5kRXF1YXRpb24oY29uc3QgY2hh
ciogZnVuY3Rpb25OYW1lLCBHQzMKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpNSU46CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TUFYOgogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCBtb2Rl
Iik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaAppbmRleCA3NTVkZTZiYmRkMjY5ODE2N2Qz
YmFhMGZkZGQzNGJiZTA2MTE1ZDU5Li44YmNmMGJlM2QzNWQyNzk0YjI2MDcxMjZiMzhhODA1NWNi
ZjY1ZjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dC5oCkBAIC00MSw3ICs0MSw3IEBAIGNsYXNzIFdlYkdMVmVydGV4QXJyYXlP
YmplY3Q7CiBjbGFzcyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0IGZpbmFsIDogcHVibGljIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UgewogcHVibGljOgogICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQoSFRNTENhbnZhc0VsZW1lbnQmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKLSAgICBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiwgUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiYmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKKyAgICBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiwgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmLCBXZWJH
TENvbnRleHRBdHRyaWJ1dGVzKTsKIAogICAgIC8qIEJ1ZmZlciBvYmplY3RzICovCiAgICAgdXNp
bmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YnVmZmVyRGF0YTsKQEAgLTUyLDEwICs1Miwx
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRCdWZmZXJTdWJEYXRhKEdDM0RlbnVtIHRhcmdldCwg
bG9uZyBsb25nIHNyY0J5dGVPZmZzZXQsIFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+JiYgZHN0RGF0
YSwgR0MzRHVpbnQgZHN0T2Zmc2V0ID0gMCwgR0MzRHVpbnQgbGVuZ3RoID0gMCk7CiAgICAgCiAg
ICAgLyogRnJhbWVidWZmZXIgb2JqZWN0cyAqLwotICAgIFdlYkdMR2V0SW5mbyBnZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2ht
ZW50LCBHQzNEZW51bSBwbmFtZSkgZmluYWw7CisgICAgV2ViR0xBbnkgZ2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwg
R0MzRGVudW0gcG5hbWUpIGZpbmFsOwogICAgIHZvaWQgYmxpdEZyYW1lYnVmZmVyKEdDM0RpbnQg
c3JjWDAsIEdDM0RpbnQgc3JjWTAsIEdDM0RpbnQgc3JjWDEsIEdDM0RpbnQgc3JjWTEsIEdDM0Rp
bnQgZHN0WDAsIEdDM0RpbnQgZHN0WTAsIEdDM0RpbnQgZHN0WDEsIEdDM0RpbnQgZHN0WTEsIEdD
M0RiaXRmaWVsZCBtYXNrLCBHQzNEZW51bSBmaWx0ZXIpOwogICAgIHZvaWQgZnJhbWVidWZmZXJU
ZXh0dXJlTGF5ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEdWlu
dCB0ZXh0dXJlLCBHQzNEaW50IGxldmVsLCBHQzNEaW50IGxheWVyKTsKLSAgICBXZWJHTEdldElu
Zm8gZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldEludGVybmFs
Zm9ybWF0UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQs
IEdDM0RlbnVtIHBuYW1lKTsKICAgICB2b2lkIGludmFsaWRhdGVGcmFtZWJ1ZmZlcihHQzNEZW51
bSB0YXJnZXQsIFZlY3RvcjxHQzNEZW51bT4gYXR0YWNobWVudHMpOwogICAgIHZvaWQgaW52YWxp
ZGF0ZVN1YkZyYW1lYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgVmVjdG9yPEdDM0RlbnVtPiBhdHRh
Y2htZW50cywgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVp
IGhlaWdodCk7CiAgICAgdm9pZCByZWFkQnVmZmVyKEdDM0RlbnVtIHNyYyk7CkBAIC0xMTYsMjkg
KzExNiwyOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgLyogUXVlcnkgT2JqZWN0cyAqLwogICAgIFJl
ZlB0cjxXZWJHTFF1ZXJ5PiBjcmVhdGVRdWVyeSgpOwotICAgIHZvaWQgZGVsZXRlUXVlcnkoV2Vi
R0xRdWVyeSogcXVlcnkpOwotICAgIEdDM0Rib29sZWFuIGlzUXVlcnkoV2ViR0xRdWVyeSogcXVl
cnkpOwotICAgIHZvaWQgYmVnaW5RdWVyeShHQzNEZW51bSB0YXJnZXQsIFdlYkdMUXVlcnkqIHF1
ZXJ5KTsKKyAgICB2b2lkIGRlbGV0ZVF1ZXJ5KFdlYkdMUXVlcnkqKTsKKyAgICBHQzNEYm9vbGVh
biBpc1F1ZXJ5KFdlYkdMUXVlcnkqKTsKKyAgICB2b2lkIGJlZ2luUXVlcnkoR0MzRGVudW0gdGFy
Z2V0LCBXZWJHTFF1ZXJ5Kik7CiAgICAgdm9pZCBlbmRRdWVyeShHQzNEZW51bSB0YXJnZXQpOwog
ICAgIFJlZlB0cjxXZWJHTFF1ZXJ5PiBnZXRRdWVyeShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IHBuYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0UXVlcnlQYXJhbWV0ZXIoV2ViR0xRdWVyeSog
cXVlcnksIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBnZXRRdWVyeVBhcmFtZXRlcihX
ZWJHTFF1ZXJ5KiwgR0MzRGVudW0gcG5hbWUpOwogICAgIAogICAgIC8qIFNhbXBsZXIgT2JqZWN0
cyAqLwogICAgIFJlZlB0cjxXZWJHTFNhbXBsZXI+IGNyZWF0ZVNhbXBsZXIoKTsKLSAgICB2b2lk
IGRlbGV0ZVNhbXBsZXIoV2ViR0xTYW1wbGVyKiBzYW1wbGVyKTsKLSAgICBHQzNEYm9vbGVhbiBp
c1NhbXBsZXIoV2ViR0xTYW1wbGVyKiBzYW1wbGVyKTsKLSAgICB2b2lkIGJpbmRTYW1wbGVyKEdD
M0R1aW50IHVuaXQsIFdlYkdMU2FtcGxlciogc2FtcGxlcik7Ci0gICAgdm9pZCBzYW1wbGVyUGFy
YW1ldGVyaShXZWJHTFNhbXBsZXIqIHNhbXBsZXIsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50IHBh
cmFtKTsKLSAgICB2b2lkIHNhbXBsZXJQYXJhbWV0ZXJmKFdlYkdMU2FtcGxlciogc2FtcGxlciwg
R0MzRGVudW0gcG5hbWUsIEdDM0RmbG9hdCBwYXJhbSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFNh
bXBsZXJQYXJhbWV0ZXIoV2ViR0xTYW1wbGVyKiBzYW1wbGVyLCBHQzNEZW51bSBwbmFtZSk7Cisg
ICAgdm9pZCBkZWxldGVTYW1wbGVyKFdlYkdMU2FtcGxlciopOworICAgIEdDM0Rib29sZWFuIGlz
U2FtcGxlcihXZWJHTFNhbXBsZXIqKTsKKyAgICB2b2lkIGJpbmRTYW1wbGVyKEdDM0R1aW50IHVu
aXQsIFdlYkdMU2FtcGxlciopOworICAgIHZvaWQgc2FtcGxlclBhcmFtZXRlcmkoV2ViR0xTYW1w
bGVyKiwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQgcGFyYW0pOworICAgIHZvaWQgc2FtcGxlclBh
cmFtZXRlcmYoV2ViR0xTYW1wbGVyKiwgR0MzRGVudW0gcG5hbWUsIEdDM0RmbG9hdCBwYXJhbSk7
CisgICAgV2ViR0xBbnkgZ2V0U2FtcGxlclBhcmFtZXRlcihXZWJHTFNhbXBsZXIqLCBHQzNEZW51
bSBwbmFtZSk7CiAgICAgCiAgICAgLyogU3luYyBvYmplY3RzICovCiAgICAgUmVmUHRyPFdlYkdM
U3luYz4gZmVuY2VTeW5jKEdDM0RlbnVtIGNvbmRpdGlvbiwgR0MzRGJpdGZpZWxkIGZsYWdzKTsK
LSAgICBHQzNEYm9vbGVhbiBpc1N5bmMoV2ViR0xTeW5jKiBzeW5jKTsKLSAgICB2b2lkIGRlbGV0
ZVN5bmMoV2ViR0xTeW5jKiBzeW5jKTsKLSAgICBHQzNEZW51bSBjbGllbnRXYWl0U3luYyhXZWJH
TFN5bmMqIHN5bmMsIEdDM0RiaXRmaWVsZCBmbGFncywgR0MzRHVpbnQ2NCB0aW1lb3V0KTsKLSAg
ICB2b2lkIHdhaXRTeW5jKFdlYkdMU3luYyogc3luYywgR0MzRGJpdGZpZWxkIGZsYWdzLCBHQzNE
dWludDY0IHRpbWVvdXQpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRTeW5jUGFyYW1ldGVyKFdlYkdM
U3luYyogc3luYywgR0MzRGVudW0gcG5hbWUpOworICAgIEdDM0Rib29sZWFuIGlzU3luYyhXZWJH
TFN5bmMqKTsKKyAgICB2b2lkIGRlbGV0ZVN5bmMoV2ViR0xTeW5jKik7CisgICAgR0MzRGVudW0g
Y2xpZW50V2FpdFN5bmMoV2ViR0xTeW5jKiwgR0MzRGJpdGZpZWxkIGZsYWdzLCBHQzNEdWludDY0
IHRpbWVvdXQpOworICAgIHZvaWQgd2FpdFN5bmMoV2ViR0xTeW5jKiwgR0MzRGJpdGZpZWxkIGZs
YWdzLCBHQzNEdWludDY0IHRpbWVvdXQpOworICAgIFdlYkdMQW55IGdldFN5bmNQYXJhbWV0ZXIo
V2ViR0xTeW5jKiwgR0MzRGVudW0gcG5hbWUpOwogICAgIAogICAgIC8qIFRyYW5zZm9ybSBGZWVk
YmFjayAqLwogICAgIFJlZlB0cjxXZWJHTFRyYW5zZm9ybUZlZWRiYWNrPiBjcmVhdGVUcmFuc2Zv
cm1GZWVkYmFjaygpOwpAQCAtMTU1LDEyICsxNTUsMTIgQEAgcHVibGljOgogICAgIC8qIFVuaWZv
cm0gQnVmZmVyIE9iamVjdHMgYW5kIFRyYW5zZm9ybSBGZWVkYmFjayBCdWZmZXJzICovCiAgICAg
dm9pZCBiaW5kQnVmZmVyQmFzZShHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4LCBXZWJH
TEJ1ZmZlciogYnVmZmVyKTsKICAgICB2b2lkIGJpbmRCdWZmZXJSYW5nZShHQzNEZW51bSB0YXJn
ZXQsIEdDM0R1aW50IGluZGV4LCBXZWJHTEJ1ZmZlciogYnVmZmVyLCBHQzNEaW50NjQgb2Zmc2V0
LCBHQzNEaW50NjQgc2l6ZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEluZGV4ZWRQYXJhbWV0ZXIo
R0MzRGVudW0gdGFyZ2V0LCBHQzNEdWludCBpbmRleCk7CisgICAgV2ViR0xBbnkgZ2V0SW5kZXhl
ZFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4KTsKICAgICBVaW50MzJB
cnJheSogZ2V0VW5pZm9ybUluZGljZXMoV2ViR0xQcm9ncmFtKiwgVmVjdG9yPFN0cmluZz4gdW5p
Zm9ybU5hbWVzKTsKICAgICBJbnQzMkFycmF5KiBnZXRBY3RpdmVVbmlmb3JtcyhXZWJHTFByb2dy
YW0qLCBSZWZQdHI8VWludDMyQXJyYXk+JiYgdW5pZm9ybUluZGljZXMsIEdDM0RlbnVtIHBuYW1l
KTsKICAgICBHQzNEdWludCBnZXRVbmlmb3JtQmxvY2tJbmRleChXZWJHTFByb2dyYW0qLCBTdHJp
bmcgdW5pZm9ybUJsb2NrTmFtZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEFjdGl2ZVVuaWZvcm1C
bG9ja1BhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNEdWludCB1bmlmb3JtQmxvY2tJbmRleCwg
R0MzRGVudW0gcG5hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRBY3RpdmVVbmlmb3JtQmxvY2tO
YW1lKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50IHVuaWZvcm1CbG9ja0luZGV4KTsKKyAgICBXZWJH
TEFueSBnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRHVp
bnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBnZXRB
Y3RpdmVVbmlmb3JtQmxvY2tOYW1lKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50IHVuaWZvcm1CbG9j
a0luZGV4KTsKICAgICB2b2lkIHVuaWZvcm1CbG9ja0JpbmRpbmcoV2ViR0xQcm9ncmFtKiwgR0Mz
RHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdDM0R1aW50IHVuaWZvcm1CbG9ja0JpbmRpbmcpOwog
ICAgIAogICAgIC8qIFZlcnRleCBBcnJheSBPYmplY3RzICovCkBAIC0xNzUsNyArMTc1LDcgQEAg
cHJpdmF0ZToKICAgICAvKiBFeHRlbnNpb25zICovCiAgICAgV2ViR0xFeHRlbnNpb24qIGdldEV4
dGVuc2lvbihjb25zdCBTdHJpbmcmKSBmaW5hbDsKICAgICBWZWN0b3I8U3RyaW5nPiBnZXRTdXBw
b3J0ZWRFeHRlbnNpb25zKCkgZmluYWw7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFBhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSkgZmluYWw7CisgICAgV2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0RlbnVt
IHBuYW1lKSBmaW5hbDsKIAogICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZShHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXpl
aSBoZWlnaHQpIGZpbmFsOwogICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IG1vZGUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xBbnkuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk4MmFlZGJmOGM0NDU2MDA0YTMyMDYwMzU5MmViYjJkYTY5MzY5NWUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5jcHAKQEAgLTAs
MCArMSwxMTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xBbnkuaCIKKworI2lmIEVOQUJM
RShXRUJHTCkKKworI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTV2ViR0xC
dWZmZXIuaCIKKyNpbmNsdWRlICJKU1dlYkdMRnJhbWVidWZmZXIuaCIKKyNpbmNsdWRlICJKU1dl
YkdMUHJvZ3JhbS5oIgorI2luY2x1ZGUgIkpTV2ViR0xSZW5kZXJidWZmZXIuaCIKKyNpbmNsdWRl
ICJKU1dlYkdMVGV4dHVyZS5oIgorI2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9F
Uy5oIgorCisjaWYgRU5BQkxFKFdFQkdMMikKKyNpbmNsdWRlICJKU1dlYkdMVmVydGV4QXJyYXlP
YmplY3QuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFj
ZSBKU0M7CisKKy8vIEZJWE1FOiBUaGlzIGxpa2VseSBjYW4gYmUgYXV0b2dlbmVyYXRlZCB3aXRo
IGEgYml0IG9mIHdvcmsuCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCwgY29uc3QgV2ViR0xBbnkmIGFueSkKK3sKKyAgICByZXR1
cm4gV1RGOjpzd2l0Y2hPbihhbnksCisgICAgICAgIFtdIChzdGQ6Om51bGxwdHJfdCkgeworICAg
ICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOworICAgICAgICB9LAorICAgICAgICBbXSAoYm9vbCB2
YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIGpzQm9vbGVhbih2YWx1ZSk7CisgICAgICAgIH0s
CisgICAgICAgIFtdIChpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBqc051bWJlcih2
YWx1ZSk7CisgICAgICAgIH0sCisgICAgICAgIFtdICh1bnNpZ25lZCB2YWx1ZSkgeworICAgICAg
ICAgICAgcmV0dXJuIGpzTnVtYmVyKHZhbHVlKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10gKGxv
bmcgbG9uZyB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHZhbHVlKTsKKyAg
ICAgICAgfSwKKyAgICAgICAgW10gKGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4g
anNOdW1iZXIodmFsdWUpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFN0cmluZyYg
dmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBqc1N0cmluZ1dpdGhDYWNoZSgmc3RhdGUsIHZh
bHVlKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBWZWN0b3I8Ym9vbD4mIHZhbHVl
cykgeworICAgICAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgbGlzdDsKKyAgICAgICAgICAg
IGZvciAoYXV0byYgdmFsdWUgOiB2YWx1ZXMpCisgICAgICAgICAgICAgICAgbGlzdC5hcHBlbmQo
anNCb29sZWFuKHZhbHVlKSk7CisgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoJnN0
YXRlLCAwLCAmZ2xvYmFsT2JqZWN0LCBsaXN0KTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChj
b25zdCBSZWZQdHI8RmxvYXQzMkFycmF5PiYgYXJyYXkpIHsKKyAgICAgICAgICAgIHJldHVybiB0
b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAgICB9LAorICAg
ICAgICBbJl0gKGNvbnN0IFJlZlB0cjxJbnQzMkFycmF5PiYgYXJyYXkpIHsKKyAgICAgICAgICAg
IHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAg
ICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxVaW50OEFycmF5PiYgYXJyYXkpIHsKKyAg
ICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkp
OworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxVaW50MzJBcnJheT4mIGFy
cmF5KSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIGFy
cmF5LmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2ViR0xC
dWZmZXI+JiBidWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2Jh
bE9iamVjdCwgYnVmZmVyLmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBS
ZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4mIGJ1ZmZlcikgeworICAgICAgICAgICAgcmV0dXJuIHRv
SlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBidWZmZXIuZ2V0KCkpOworICAgICAgICB9LAorICAg
ICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTFByb2dyYW0+JiBwcm9ncmFtKSB7CisgICAgICAg
ICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHByb2dyYW0uZ2V0KCkpOwor
ICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4m
IGJ1ZmZlcikgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0
LCBidWZmZXIuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxX
ZWJHTFRleHR1cmU+JiB0ZXh0dXJlKSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUs
ICZnbG9iYWxPYmplY3QsIHRleHR1cmUuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0g
KGNvbnN0IFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiYgYXJyYXkpIHsKKyAgICAg
ICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOwor
ICAgICAgICB9CisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAgICAgLAorICAgICAgICBbJl0gKGNv
bnN0IFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiYgYXJyYXkpIHsKKyAgICAgICAgICAg
IHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAg
ICB9CisjZW5kaWYKKyAgICApOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMQW55LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjEwZDBlZjY2Y2E0NTZlODJlMDA3OWMzM2ExZjE3
NmJmMWQ1ZTNhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQW55LmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdMKQorCisj
aW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKKyNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCisj
aW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJidWZmZXIuaCIK
KyNpbmNsdWRlICJXZWJHTFRleHR1cmUuaCIKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTLmgiCisjaW5jbHVkZSA8cnVudGltZS9GbG9hdDMyQXJyYXkuaD4KKyNpbmNsdWRlIDxy
dW50aW1lL0ludDMyQXJyYXkuaD4KKyNpbmNsdWRlIDxydW50aW1lL1VpbnQzMkFycmF5Lmg+Cisj
aW5jbHVkZSA8cnVudGltZS9VaW50OEFycmF5Lmg+CisKKyNpZiBFTkFCTEUoV0VCR0wyKQorI2lu
Y2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgSlND
IHsKK2NsYXNzIEV4ZWNTdGF0ZTsKK2NsYXNzIEpTVmFsdWU7Cit9CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CisKK3VzaW5nIFdlYkdMQW55ID0gVmFy
aWFudDxzdGQ6Om51bGxwdHJfdCwgYm9vbCwgaW50LCB1bnNpZ25lZCwgbG9uZyBsb25nLCBmbG9h
dCwgU3RyaW5nLCBWZWN0b3I8Ym9vbD4sCisgICAgUmVmUHRyPEZsb2F0MzJBcnJheT4sCisgICAg
UmVmUHRyPEludDMyQXJyYXk+LAorICAgIFJlZlB0cjxVaW50MzJBcnJheT4sCisgICAgUmVmUHRy
PFVpbnQ4QXJyYXk+LAorICAgIFJlZlB0cjxXZWJHTEJ1ZmZlcj4sCisgICAgUmVmUHRyPFdlYkdM
RnJhbWVidWZmZXI+LAorICAgIFJlZlB0cjxXZWJHTFByb2dyYW0+LAorICAgIFJlZlB0cjxXZWJH
TFJlbmRlcmJ1ZmZlcj4sCisgICAgUmVmUHRyPFdlYkdMVGV4dHVyZT4sCisgICAgUmVmUHRyPFdl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVM+CisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAsIFJlZlB0
cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PgorI2VuZGlmCis+OworCitKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSYsIEpTRE9NR2xvYmFsT2JqZWN0JiwgY29uc3QgV2ViR0xBbnkmKTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAppbmRleCAyMTMzZjMzZWZjOGNlMDk4
N2I0OTgzM2NiYzEwZmM3NTkxMmEwODIyLi5iNzlhN2I2ZmE3NTIzYjMyYmNlMmM4YzFlMWNiNjZk
MWM3MWVjNGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENv
bnRleHRHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0R3JvdXAuY3BwCkBAIC00OSw0MyArNDksNDAgQEAgV2ViR0xDb250ZXh0R3JvdXA6On5XZWJH
TENvbnRleHRHcm91cCgpCiAgICAgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpOwogfQogCi1H
cmFwaGljc0NvbnRleHQzRCogV2ViR0xDb250ZXh0R3JvdXA6OmdldEFHcmFwaGljc0NvbnRleHQz
RCgpCitHcmFwaGljc0NvbnRleHQzRCYgV2ViR0xDb250ZXh0R3JvdXA6OmdldEFHcmFwaGljc0Nv
bnRleHQzRCgpCiB7CiAgICAgQVNTRVJUKCFtX2NvbnRleHRzLmlzRW1wdHkoKSk7Ci0gICAgSGFz
aFNldDxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKj46Oml0ZXJhdG9yIGl0ID0gbV9jb250ZXh0
cy5iZWdpbigpOwotICAgIHJldHVybiAoKml0KS0+Z3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICBy
ZXR1cm4gKigqbV9jb250ZXh0cy5iZWdpbigpKS0+Z3JhcGhpY3NDb250ZXh0M0QoKTsKIH0KIAot
dm9pZCBXZWJHTENvbnRleHRHcm91cDo6YWRkQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlKiBjb250ZXh0KQordm9pZCBXZWJHTENvbnRleHRHcm91cDo6YWRkQ29udGV4dChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQogewotICAgIG1fY29udGV4dHMuYWRkKGNvbnRl
eHQpOworICAgIG1fY29udGV4dHMuYWRkKCZjb250ZXh0KTsKIH0KIAotdm9pZCBXZWJHTENvbnRl
eHRHcm91cDo6cmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjb250ZXh0
KQordm9pZCBXZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJiBjb250ZXh0KQogewogICAgIC8vIFdlIG11c3QgY2FsbCBkZXRhY2hBbmRSZW1v
dmVBbGxPYmplY3RzIGJlZm9yZSByZW1vdmluZyB0aGUgbGFzdCBjb250ZXh0LgotICAgIGlmICht
X2NvbnRleHRzLnNpemUoKSA9PSAxICYmIG1fY29udGV4dHMuY29udGFpbnMoY29udGV4dCkpCisg
ICAgaWYgKG1fY29udGV4dHMuc2l6ZSgpID09IDEgJiYgbV9jb250ZXh0cy5jb250YWlucygmY29u
dGV4dCkpCiAgICAgICAgIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMoKTsKIAotICAgIG1fY29u
dGV4dHMucmVtb3ZlKGNvbnRleHQpOworICAgIG1fY29udGV4dHMucmVtb3ZlKCZjb250ZXh0KTsK
IH0KIAotdm9pZCBXZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlT2JqZWN0KFdlYkdMU2hhcmVkT2Jq
ZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMQ29udGV4dEdyb3VwOjpyZW1vdmVPYmplY3QoV2ViR0xT
aGFyZWRPYmplY3QmIG9iamVjdCkKIHsKLSAgICBtX2dyb3VwT2JqZWN0cy5yZW1vdmUob2JqZWN0
KTsKKyAgICBtX2dyb3VwT2JqZWN0cy5yZW1vdmUoJm9iamVjdCk7CiB9CiAKLXZvaWQgV2ViR0xD
b250ZXh0R3JvdXA6OmFkZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0KQordm9pZCBX
ZWJHTENvbnRleHRHcm91cDo6YWRkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0JiBvYmplY3QpCiB7
Ci0gICAgbV9ncm91cE9iamVjdHMuYWRkKG9iamVjdCk7CisgICAgbV9ncm91cE9iamVjdHMuYWRk
KCZvYmplY3QpOwogfQogCiB2b2lkIFdlYkdMQ29udGV4dEdyb3VwOjpkZXRhY2hBbmRSZW1vdmVB
bGxPYmplY3RzKCkKIHsKLSAgICB3aGlsZSAoIW1fZ3JvdXBPYmplY3RzLmlzRW1wdHkoKSkgewot
ICAgICAgICBIYXNoU2V0PFdlYkdMU2hhcmVkT2JqZWN0Kj46Oml0ZXJhdG9yIGl0ID0gbV9ncm91
cE9iamVjdHMuYmVnaW4oKTsKLSAgICAgICAgKCppdCktPmRldGFjaENvbnRleHRHcm91cCgpOwot
ICAgIH0KKyAgICB3aGlsZSAoIW1fZ3JvdXBPYmplY3RzLmlzRW1wdHkoKSkKKyAgICAgICAgKCpt
X2dyb3VwT2JqZWN0cy5iZWdpbigpKS0+ZGV0YWNoQ29udGV4dEdyb3VwKCk7CiB9CiAKIHZvaWQg
V2ViR0xDb250ZXh0R3JvdXA6Omxvc2VDb250ZXh0R3JvdXAoV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6TG9zdENvbnRleHRNb2RlIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xDb250ZXh0R3JvdXAuaAppbmRleCA5ZDAxMGJmY2MyMDk5NmExNDY0ODU3YWZjZWVm
M2M0YWE3YTZiOWI3Li5iMGFmNjJmZDRhZWE2ZDdjYmUxYzZjNjJhYmUxNDVlYzU3NjIwM2Q1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKQEAg
LTI2LDI4ICsyNiwyMSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdyYXBoaWNzQ29u
dGV4dDNEOwotY2xhc3MgV2ViR0xFeHRlbnNpb247Ci1jbGFzcyBXZWJHTFNoYXJlZE9iamVjdDsK
LWNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7Ci0KIGNsYXNzIFdlYkdMQ29udGV4dEdy
b3VwIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR0xDb250ZXh0R3JvdXA+IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPFdlYkdMQ29udGV4dEdyb3VwPiBjcmVhdGUoKTsKICAgICB+V2Vi
R0xDb250ZXh0R3JvdXAoKTsKIAotICAgIHZvaWQgYWRkQ29udGV4dChXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlKik7Ci0gICAgdm9pZCByZW1vdmVDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UqKTsKKyAgICB2b2lkIGFkZENvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYp
OworICAgIHZvaWQgcmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CiAK
LSAgICB2b2lkIGFkZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCopOwotICAgIHZvaWQgcmVtb3Zl
T2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Kik7CisgICAgdm9pZCBhZGRPYmplY3QoV2ViR0xTaGFy
ZWRPYmplY3QmKTsKKyAgICB2b2lkIHJlbW92ZU9iamVjdChXZWJHTFNoYXJlZE9iamVjdCYpOwog
Ci0gICAgR3JhcGhpY3NDb250ZXh0M0QqIGdldEFHcmFwaGljc0NvbnRleHQzRCgpOworICAgIEdy
YXBoaWNzQ29udGV4dDNEJiBnZXRBR3JhcGhpY3NDb250ZXh0M0QoKTsKIAogICAgIHZvaWQgbG9z
ZUNvbnRleHRHcm91cChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpMb3N0Q29udGV4dE1vZGUp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0
LmNwcAppbmRleCA1MjNlNmU2NDJkNzQ5YjYwMjJmMzc3M2E4OGVkZjRlYTBlY2I5YmI4Li4wYjg3
Y2ZiNGQyNDNjOTUzZTkwY2VjOWM0NDc3YzJmZWQ5MjhkZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgV2ViR0xDb250ZXh0T2JqZWN0OjpXZWJHTENvbnRleHRPYmplY3QoV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYgY29udGV4dCkKIFdlYkdMQ29udGV4dE9iamVjdDo6fldlYkdMQ29udGV4dE9i
amVjdCgpCiB7CiAgICAgaWYgKG1fY29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5yZW1vdmVD
b250ZXh0T2JqZWN0KHRoaXMpOworICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNvbnRleHRPYmpl
Y3QoKnRoaXMpOwogfQogCiB2b2lkIFdlYkdMQ29udGV4dE9iamVjdDo6ZGV0YWNoQ29udGV4dCgp
CkBAIC01MCw4ICs1MCw4IEBAIHZvaWQgV2ViR0xDb250ZXh0T2JqZWN0OjpkZXRhY2hDb250ZXh0
KCkKICAgICBkZXRhY2goKTsKICAgICBpZiAobV9jb250ZXh0KSB7CiAgICAgICAgIGRlbGV0ZU9i
amVjdChtX2NvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNEKCkpOwotICAgICAgICBtX2NvbnRleHQt
PnJlbW92ZUNvbnRleHRPYmplY3QodGhpcyk7Ci0gICAgICAgIG1fY29udGV4dCA9IDA7CisgICAg
ICAgIG1fY29udGV4dC0+cmVtb3ZlQ29udGV4dE9iamVjdCgqdGhpcyk7CisgICAgICAgIG1fY29u
dGV4dCA9IG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xHZXRJbmZvLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGVhZDFjZmQ2
Mzc0MmIwMGQ1MjQyZGU3MTk1NzIzYWIzZWYzZDFlYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdl
dEluZm8uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lm
IEVOQUJMRShXRUJHTCkKLQotI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgotCi0jaW5jbHVkZSA8
cnVudGltZS9GbG9hdDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL0ludDMyQXJyYXkuaD4K
LSNpbmNsdWRlIDxydW50aW1lL1VpbnQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9VaW50
OEFycmF5Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdl
dEluZm8oYm9vbCB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZUJvb2wpCi0gICAgLCBtX2Jvb2wo
dmFsdWUpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25l
ZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0
SW5mbyhjb25zdCBib29sKiB2YWx1ZSwgaW50IHNpemUpCi0gICAgOiBtX3R5cGUoa1R5cGVCb29s
QXJyYXkpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2lu
dCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotewotICAgIGlm
ICghdmFsdWUgfHwgc2l6ZSA8PTApCi0gICAgICAgIHJldHVybjsKLSAgICBtX2Jvb2xBcnJheS5y
ZXNpemUoc2l6ZSk7Ci0gICAgZm9yIChpbnQgaWkgPSAwOyBpaSA8IHNpemU7ICsraWkpCi0gICAg
ICAgIG1fYm9vbEFycmF5W2lpXSA9IHZhbHVlW2lpXTsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJH
TEdldEluZm8oZmxvYXQgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVGbG9hdCkKLSAgICAsIG1f
Ym9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQodmFsdWUpCi0gICAgLCBtX2ludCgwKQotICAgICwg
bV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86
OldlYkdMR2V0SW5mbyhpbnQgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVJbnQpCi0gICAgLCBt
X2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCh2YWx1ZSkKLSAgICAs
IG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLXsKLX0KLQotV2ViR0xHZXRJbmZv
OjpXZWJHTEdldEluZm8oKQotICAgIDogbV90eXBlKGtUeXBlTnVsbCkKLSAgICAsIG1fYm9vbChm
YWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVk
SW50KDApCi0gICAgLCBtX2ludDY0KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJ
bmZvKGNvbnN0IFN0cmluZyYgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVTdHJpbmcpCi0gICAg
LCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwg
bV9zdHJpbmcodmFsdWUpCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDAp
Ci17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKHVuc2lnbmVkIGludCB2YWx1ZSkK
LSAgICA6IG1fdHlwZShrVHlwZVVuc2lnbmVkSW50KQotICAgICwgbV9ib29sKGZhbHNlKQotICAg
ICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQodmFsdWUp
Ci0gICAgLCBtX2ludDY0KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKGxv
bmcgbG9uZyB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZUludDY0KQotICAgICwgbV9ib29sKGZh
bHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJ
bnQoMCkKLSAgICAsIG1faW50NjQodmFsdWUpCi17Ci19Ci0KLQotV2ViR0xHZXRJbmZvOjpXZWJH
TEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5
cGVXZWJHTEJ1ZmZlcikKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAg
ICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0g
ICAgLCBtX3dlYmdsQnVmZmVyKHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0
SW5mbyhQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVX
ZWJHTEZsb2F0QXJyYXkpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0g
ICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQot
ICAgICwgbV93ZWJnbEZsb2F0QXJyYXkodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2Vi
R0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4gdmFsdWUpCi0gICAgOiBtX3R5
cGUoa1R5cGVXZWJHTEZyYW1lYnVmZmVyKQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9m
bG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1f
aW50NjQoMCkKLSAgICAsIG1fd2ViZ2xGcmFtZWJ1ZmZlcih2YWx1ZSkKLXsKLX0KLQotV2ViR0xH
ZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxJbnQzMkFycmF5PiB2YWx1ZSkKLSAgICA6
IG1fdHlwZShrVHlwZVdlYkdMSW50QXJyYXkpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBt
X2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwg
bV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbEludEFycmF5KHZhbHVlKQotewotfQotCi1XZWJHTEdl
dEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUHJvZ3JhbT4gdmFsdWUpCi0gICAg
OiBtX3R5cGUoa1R5cGVXZWJHTFByb2dyYW0pCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBt
X2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwg
bV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbFByb2dyYW0odmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0
SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+IHZhbHVlKQot
ICAgIDogbV90eXBlKGtUeXBlV2ViR0xSZW5kZXJidWZmZXIpCi0gICAgLCBtX2Jvb2woZmFsc2Up
Ci0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgw
KQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbFJlbmRlcmJ1ZmZlcih2YWx1ZSkKLXsK
LX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+
IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xUZXh0dXJlKQotICAgICwgbV9ib29sKGZh
bHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJ
bnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xUZXh0dXJlKHZhbHVlKQotewot
fQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHZh
bHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xVbnNpZ25lZEJ5dGVBcnJheSkKLSAgICAsIG1f
Ym9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vu
c2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmdsVW5zaWduZWRCeXRl
QXJyYXkodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQ
dHI8VWludDMyQXJyYXk+IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xVbnNpZ25lZElu
dEFycmF5KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9p
bnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1f
d2ViZ2xVbnNpZ25lZEludEFycmF5KHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdM
R2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IHZhbHVlKQotICAg
IDogbV90eXBlKGtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUykKLSAgICAsIG1fYm9vbChm
YWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVk
SW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3RP
RVModmFsdWUpCi17Ci19Ci0KLSNpZiBFTkFCTEUoV0VCR0wyKQotV2ViR0xHZXRJbmZvOjpXZWJH
TEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiB2YWx1ZSkKLSAgICA6
IG1fdHlwZShrVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3QpCi0gICAgLCBtX2Jvb2woZmFsc2Up
Ci0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgw
KQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbFZlcnRleEFycmF5T2JqZWN0KHZhbHVl
KQotewotfQotI2VuZGlmCi0KLVdlYkdMR2V0SW5mbzo6fldlYkdMR2V0SW5mbygpCi17Ci19Ci0K
LVdlYkdMR2V0SW5mbzo6VHlwZSBXZWJHTEdldEluZm86OmdldFR5cGUoKSBjb25zdAotewotICAg
IHJldHVybiBtX3R5cGU7Ci19Ci0KLWJvb2wgV2ViR0xHZXRJbmZvOjpnZXRCb29sKCkgY29uc3QK
LXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlQm9vbCk7Ci0gICAgcmV0dXJuIG1fYm9v
bDsKLX0KLQotY29uc3QgVmVjdG9yPGJvb2w+JiBXZWJHTEdldEluZm86OmdldEJvb2xBcnJheSgp
IGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZUJvb2xBcnJheSk7Ci0gICAg
cmV0dXJuIG1fYm9vbEFycmF5OwotfQotCi1mbG9hdCBXZWJHTEdldEluZm86OmdldEZsb2F0KCkg
Y29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlRmxvYXQpOwotICAgIHJldHVy
biBtX2Zsb2F0OwotfQotCi1pbnQgV2ViR0xHZXRJbmZvOjpnZXRJbnQoKSBjb25zdAotewotICAg
IEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVJbnQpOwotICAgIHJldHVybiBtX2ludDsKLX0KLQot
Y29uc3QgU3RyaW5nJiBXZWJHTEdldEluZm86OmdldFN0cmluZygpIGNvbnN0Ci17Ci0gICAgQVNT
RVJUKGdldFR5cGUoKSA9PSBrVHlwZVN0cmluZyk7Ci0gICAgcmV0dXJuIG1fc3RyaW5nOwotfQot
Ci11bnNpZ25lZCBpbnQgV2ViR0xHZXRJbmZvOjpnZXRVbnNpZ25lZEludCgpIGNvbnN0Ci17Ci0g
ICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVVuc2lnbmVkSW50KTsKLSAgICByZXR1cm4gbV91
bnNpZ25lZEludDsKLX0KLQotbG9uZyBsb25nIFdlYkdMR2V0SW5mbzo6Z2V0SW50NjQoKSBjb25z
dAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVJbnQ2NCk7Ci0gICAgcmV0dXJuIG1f
aW50NjQ7Ci19Ci0KLVdlYkdMQnVmZmVyKiBXZWJHTEdldEluZm86OmdldFdlYkdMQnVmZmVyKCkg
Y29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xCdWZmZXIpOwotICAg
IHJldHVybiBtX3dlYmdsQnVmZmVyLmdldCgpOwotfQotCi1GbG9hdDMyQXJyYXkqIFdlYkdMR2V0
SW5mbzo6Z2V0V2ViR0xGbG9hdEFycmF5KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgp
ID09IGtUeXBlV2ViR0xGbG9hdEFycmF5KTsKLSAgICByZXR1cm4gbV93ZWJnbEZsb2F0QXJyYXku
Z2V0KCk7Ci19Ci0KLVdlYkdMRnJhbWVidWZmZXIqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xGcmFt
ZWJ1ZmZlcigpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMRnJh
bWVidWZmZXIpOwotICAgIHJldHVybiBtX3dlYmdsRnJhbWVidWZmZXIuZ2V0KCk7Ci19Ci0KLUlu
dDMyQXJyYXkqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xJbnRBcnJheSgpIGNvbnN0Ci17Ci0gICAg
QVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMSW50QXJyYXkpOwotICAgIHJldHVybiBtX3dl
YmdsSW50QXJyYXkuZ2V0KCk7Ci19Ci0KLVdlYkdMUHJvZ3JhbSogV2ViR0xHZXRJbmZvOjpnZXRX
ZWJHTFByb2dyYW0oKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJH
TFByb2dyYW0pOwotICAgIHJldHVybiBtX3dlYmdsUHJvZ3JhbS5nZXQoKTsKLX0KLQotV2ViR0xS
ZW5kZXJidWZmZXIqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xSZW5kZXJidWZmZXIoKSBjb25zdAot
ewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTFJlbmRlcmJ1ZmZlcik7Ci0gICAg
cmV0dXJuIG1fd2ViZ2xSZW5kZXJidWZmZXIuZ2V0KCk7Ci19Ci0KLVdlYkdMVGV4dHVyZSogV2Vi
R0xHZXRJbmZvOjpnZXRXZWJHTFRleHR1cmUoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBl
KCkgPT0ga1R5cGVXZWJHTFRleHR1cmUpOwotICAgIHJldHVybiBtX3dlYmdsVGV4dHVyZS5nZXQo
KTsKLX0KLQotVWludDhBcnJheSogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTFVuc2lnbmVkQnl0ZUFy
cmF5KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xVbnNpZ25l
ZEJ5dGVBcnJheSk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xVbnNpZ25lZEJ5dGVBcnJheS5nZXQoKTsK
LX0KLQotVWludDMyQXJyYXkqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xVbnNpZ25lZEludEFycmF5
KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xVbnNpZ25lZElu
dEFycmF5KTsKLSAgICByZXR1cm4gbV93ZWJnbFVuc2lnbmVkSW50QXJyYXkuZ2V0KCk7Ci19Ci0K
LVdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMpOwotICAgIHJldHVybiBtX3dlYmdsVmVydGV4QXJyYXlP
YmplY3RPRVMuZ2V0KCk7Ci19Ci0KLSNpZiBFTkFCTEUoV0VCR0wyKQotV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdCogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTFZlcnRleEFycmF5T2JqZWN0KCkgY29uc3QK
LXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCk7
Ci0gICAgcmV0dXJuIG1fd2ViZ2xWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKTsKLX0KLSNlbmRpZgot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyNmY2OTNjNWQ3NjM2MjIzZWQ1Y2FlM2MzOWZiNjAwM2JhZjc4ZmNhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oCisrKyAvZGV2L251bGwKQEAgLTEsMTU2ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKLSNpbmNsdWRlICJXZWJHTEZyYW1lYnVm
ZmVyLmgiCi0jaW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCi0jaW5jbHVkZSAiV2ViR0xSZW5kZXJi
dWZmZXIuaCIKLSNpbmNsdWRlICJXZWJHTFRleHR1cmUuaCIKLSNpZiBFTkFCTEUoV0VCR0wyKQot
I2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIKLSNlbmRpZgotI2luY2x1ZGUgIldl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Zsb2F0MzJBcnJh
eS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSW50MzJBcnJheS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUv
VWludDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL1VpbnQ4QXJyYXkuaD4KLSNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBBIHRhZ2dl
ZCB1bmlvbiByZXByZXNlbnRpbmcgdGhlIHJlc3VsdCBvZiBnZXQgcXVlcmllcyBsaWtlCi0vLyBn
ZXRQYXJhbWV0ZXIgKGVuY29tcGFzc2luZyBnZXRCb29sZWFudiwgZ2V0SW50ZWdlcnYsIGdldEZs
b2F0dikgYW5kCi0vLyBzaW1pbGFyIHZhcmlhbnRzLiBGb3IgcmVmZXJlbmNlIGNvdW50ZWQgdHlw
ZXMsIGluY3JlbWVudHMgYW5kCi0vLyBkZWNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgb2Yg
dGhlIHRhcmdldCBvYmplY3QuCi0KLWNsYXNzIFdlYkdMR2V0SW5mbyBmaW5hbCB7Ci1wdWJsaWM6
Ci0gICAgZW51bSBUeXBlIHsKLSAgICAgICAga1R5cGVCb29sLAotICAgICAgICBrVHlwZUJvb2xB
cnJheSwKLSAgICAgICAga1R5cGVGbG9hdCwKLSAgICAgICAga1R5cGVJbnQsCi0gICAgICAgIGtU
eXBlTnVsbCwKLSAgICAgICAga1R5cGVTdHJpbmcsCi0gICAgICAgIGtUeXBlVW5zaWduZWRJbnQs
Ci0gICAgICAgIGtUeXBlSW50NjQsCi0gICAgICAgIGtUeXBlV2ViR0xCdWZmZXIsCi0gICAgICAg
IGtUeXBlV2ViR0xGbG9hdEFycmF5LAotICAgICAgICBrVHlwZVdlYkdMRnJhbWVidWZmZXIsCi0g
ICAgICAgIGtUeXBlV2ViR0xJbnRBcnJheSwKLSAgICAgICAga1R5cGVXZWJHTE9iamVjdEFycmF5
LAotICAgICAgICBrVHlwZVdlYkdMUHJvZ3JhbSwKLSAgICAgICAga1R5cGVXZWJHTFJlbmRlcmJ1
ZmZlciwKLSAgICAgICAga1R5cGVXZWJHTFRleHR1cmUsCi0gICAgICAgIGtUeXBlV2ViR0xVbnNp
Z25lZEJ5dGVBcnJheSwKLSAgICAgICAga1R5cGVXZWJHTFVuc2lnbmVkSW50QXJyYXksCi0gICAg
ICAgIGtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUywKLSAgICAgICAga1R5cGVXZWJHTFZl
cnRleEFycmF5T2JqZWN0LAotICAgIH07Ci0KLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oYm9v
bCB2YWx1ZSk7Ci0gICAgV2ViR0xHZXRJbmZvKGNvbnN0IGJvb2wqIHZhbHVlLCBpbnQgc2l6ZSk7
Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKGZsb2F0IHZhbHVlKTsKLSAgICBleHBsaWNpdCBX
ZWJHTEdldEluZm8oaW50IHZhbHVlKTsKLSAgICAvLyBSZXByZXNlbnRzIHRoZSBudWxsIHZhbHVl
IGFuZCB0eXBlLgotICAgIFdlYkdMR2V0SW5mbygpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5m
byhjb25zdCBTdHJpbmcmIHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8odW5zaWdu
ZWQgaW50IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8obG9uZyBsb25nIHZhbHVl
KTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gdmFs
dWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4g
dmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMRnJhbWVi
dWZmZXI+IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxJbnQz
MkFycmF5PiB2YWx1ZSk7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudCBXZWJHTE9iamVjdEFycmF5
Ci0gICAgLy8gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xPYmplY3RBcnJheT4gdmFsdWUp
OwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUHJvZ3JhbT4gdmFs
dWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUmVuZGVyYnVm
ZmVyPiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xU
ZXh0dXJlPiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWlu
dDhBcnJheT4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFVp
bnQzMkFycmF5PiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gdmFsdWUpOwotI2lmIEVOQUJMRShXRUJHTDIpCi0g
ICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dD4gdmFsdWUpOwotI2VuZGlmCi0KLSAgICB+V2ViR0xHZXRJbmZvKCk7Ci0KLSAgICBUeXBlIGdl
dFR5cGUoKSBjb25zdDsKLQotICAgIGJvb2wgZ2V0Qm9vbCgpIGNvbnN0OwotICAgIGNvbnN0IFZl
Y3Rvcjxib29sPiYgZ2V0Qm9vbEFycmF5KCkgY29uc3Q7Ci0gICAgZmxvYXQgZ2V0RmxvYXQoKSBj
b25zdDsKLSAgICBpbnQgZ2V0SW50KCkgY29uc3Q7Ci0gICAgY29uc3QgU3RyaW5nJiBnZXRTdHJp
bmcoKSBjb25zdDsKLSAgICB1bnNpZ25lZCBpbnQgZ2V0VW5zaWduZWRJbnQoKSBjb25zdDsKLSAg
ICBsb25nIGxvbmcgZ2V0SW50NjQoKSBjb25zdDsKLSAgICBXZWJHTEJ1ZmZlciogZ2V0V2ViR0xC
dWZmZXIoKSBjb25zdDsKLSAgICBGbG9hdDMyQXJyYXkqIGdldFdlYkdMRmxvYXRBcnJheSgpIGNv
bnN0OwotICAgIFdlYkdMRnJhbWVidWZmZXIqIGdldFdlYkdMRnJhbWVidWZmZXIoKSBjb25zdDsK
LSAgICBJbnQzMkFycmF5KiBnZXRXZWJHTEludEFycmF5KCkgY29uc3Q7Ci0gICAgLy8gRklYTUU6
IGltcGxlbWVudCBXZWJHTE9iamVjdEFycmF5Ci0gICAgLy8gV2ViR0xPYmplY3RBcnJheSogZ2V0
V2ViR0xPYmplY3RBcnJheSgpIGNvbnN0OwotICAgIFdlYkdMUHJvZ3JhbSogZ2V0V2ViR0xQcm9n
cmFtKCkgY29uc3Q7Ci0gICAgV2ViR0xSZW5kZXJidWZmZXIqIGdldFdlYkdMUmVuZGVyYnVmZmVy
KCkgY29uc3Q7Ci0gICAgV2ViR0xUZXh0dXJlKiBnZXRXZWJHTFRleHR1cmUoKSBjb25zdDsKLSAg
ICBVaW50OEFycmF5KiBnZXRXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KCkgY29uc3Q7Ci0gICAgVWlu
dDMyQXJyYXkqIGdldFdlYkdMVW5zaWduZWRJbnRBcnJheSgpIGNvbnN0OwotICAgIFdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMqIGdldFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKSBjb25zdDsK
LSNpZiBFTkFCTEUoV0VCR0wyKQotICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIGdldFdlYkdM
VmVydGV4QXJyYXlPYmplY3QoKSBjb25zdDsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIFR5cGUg
bV90eXBlOwotICAgIGJvb2wgbV9ib29sOwotICAgIFZlY3Rvcjxib29sPiBtX2Jvb2xBcnJheTsK
LSAgICBmbG9hdCBtX2Zsb2F0OwotICAgIGludCBtX2ludDsKLSAgICBTdHJpbmcgbV9zdHJpbmc7
Ci0gICAgdW5zaWduZWQgaW50IG1fdW5zaWduZWRJbnQ7Ci0gICAgbG9uZyBsb25nIG1faW50NjQ7
Ci0gICAgUmVmUHRyPFdlYkdMQnVmZmVyPiBtX3dlYmdsQnVmZmVyOwotICAgIFJlZlB0cjxGbG9h
dDMyQXJyYXk+IG1fd2ViZ2xGbG9hdEFycmF5OwotICAgIFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVy
PiBtX3dlYmdsRnJhbWVidWZmZXI7Ci0gICAgUmVmUHRyPEludDMyQXJyYXk+IG1fd2ViZ2xJbnRB
cnJheTsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50IFdlYkdMT2JqZWN0QXJyYXkKLSAgICAvLyBS
ZWZQdHI8V2ViR0xPYmplY3RBcnJheT4gbV93ZWJnbE9iamVjdEFycmF5OwotICAgIFJlZlB0cjxX
ZWJHTFByb2dyYW0+IG1fd2ViZ2xQcm9ncmFtOwotICAgIFJlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZl
cj4gbV93ZWJnbFJlbmRlcmJ1ZmZlcjsKLSAgICBSZWZQdHI8V2ViR0xUZXh0dXJlPiBtX3dlYmds
VGV4dHVyZTsKLSAgICBSZWZQdHI8VWludDhBcnJheT4gbV93ZWJnbFVuc2lnbmVkQnl0ZUFycmF5
OwotICAgIFJlZlB0cjxVaW50MzJBcnJheT4gbV93ZWJnbFVuc2lnbmVkSW50QXJyYXk7Ci0gICAg
UmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IG1fd2ViZ2xWZXJ0ZXhBcnJheU9iamVj
dE9FUzsKLSNpZiBFTkFCTEUoV0VCR0wyKQotICAgIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0PiBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3Q7Ci0jZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGIwNmQ2YzljODZhMzE2YzIwMTk5MzVjZTg0MTM0ODA5
ZTMzNDE2YWYuLjc4NGFiYjQ0NjNmODBlYmFhNjYzNjQ0YWYxODYxZDk0MDQ2NTQ5OGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmNwcApAQCAtMjQsOSArMjQsOSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKLSNpbmNs
dWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKIAogI2luY2x1ZGUgIkFOR0xFSW5zdGFuY2Vk
QXJyYXlzLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKQEAgLTcwLDExOSArNzAsMTIxIEBA
IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6V2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNF
bGVtZW50JiBwYXNzZWRDYW52YXMsIEdyCiB7CiB9CiAKLVdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFBh
c3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsCi0gICAgR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpIDogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShwYXNz
ZWRDYW52YXMsIGNvbnRleHQsIGF0dHJpYnV0ZXMpCitXZWJHTFJlbmRlcmluZ0NvbnRleHQ6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLCBSZWY8
R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
IGF0dHJpYnV0ZXMpCisgICAgOiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKHBhc3NlZENhbnZh
cywgV1RGTW92ZShjb250ZXh0KSwgYXR0cmlidXRlcykKIHsKICAgICBpbml0aWFsaXplVmVydGV4
QXJyYXlPYmplY3RzKCk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFs
aXplVmVydGV4QXJyYXlPYmplY3RzKCkKIHsKLSAgICBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVj
dCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmNyZWF0ZSgqdGhpcywgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUzo6VkFPVHlwZURlZmF1bHQpOwotICAgIGFkZENvbnRleHRPYmplY3QobV9k
ZWZhdWx0VmVydGV4QXJyYXlPYmplY3QuZ2V0KCkpOworICAgIG1fZGVmYXVsdFZlcnRleEFycmF5
T2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKCp0aGlzLCBXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTOjpUeXBlOjpEZWZhdWx0KTsKKyAgICBhZGRDb250ZXh0T2JqZWN0
KCptX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCk7CiAgICAgbV9ib3VuZFZlcnRleEFycmF5T2Jq
ZWN0ID0gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiAgICAgaWYgKCFpc0dMRVMyQ29tcGxp
YW50KCkpCiAgICAgICAgIGluaXRWZXJ0ZXhBdHRyaWIwKCk7CiB9CiAKK3N0YXRpYyBib29sIGVu
YWJsZVN1cHBvcnRlZEV4dGVuc2lvbihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0
LCBjb25zdCBjaGFyKiBsaXRlcmFsKQoreworICAgIEFTU0VSVChjb250ZXh0LmdyYXBoaWNzQ29u
dGV4dDNEKCkpOworICAgIGF1dG8mIGV4dGVuc2lvbnMgPSBjb250ZXh0LmdyYXBoaWNzQ29udGV4
dDNEKCktPmdldEV4dGVuc2lvbnMoKTsKKyAgICBpZiAoIWV4dGVuc2lvbnMuc3VwcG9ydHMoQVND
SUlMaXRlcmFsIHsgbGl0ZXJhbCB9KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGV4dGVu
c2lvbnMuZW5zdXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyBsaXRlcmFsIH0pOworICAgIHJldHVy
biB0cnVlOworfQorCiBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRF
eHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQ
ZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIAotICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfYmxlbmRfbWlubWF4IikKLSAgICAgICAgJiYgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9ibGVuZF9taW5tYXgiKSkg
eworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfYmxlbmRfbWlubWF4
IikpIHsKICAgICAgICAgaWYgKCFtX2V4dEJsZW5kTWluTWF4KSB7Ci0gICAgICAgICAgICBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9FWFRfYmxlbmRfbWlubWF4
Iik7Ci0gICAgICAgICAgICBtX2V4dEJsZW5kTWluTWF4ID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRC
bGVuZE1pbk1heD4oKnRoaXMpOworICAgICAgICAgICAgbV9leHRCbGVuZE1pbk1heCA9IGVuYWJs
ZVN1cHBvcnRlZEV4dGVuc2lvbigqdGhpcywgIkdMX0VYVF9ibGVuZF9taW5tYXgiKQorICAgICAg
ICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRCbGVuZE1pbk1heD4oKnRoaXMpIDogbnVs
bHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9leHRCbGVuZE1pbk1heC5nZXQoKTsK
ICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9zUkdCIikK
LSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9z
UkdCIikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX3NSR0Ii
KSkgewogICAgICAgICBpZiAoIW1fZXh0c1JHQikgewotICAgICAgICAgICAgbV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3NSR0IiKTsKLSAgICAgICAgICAg
IG1fZXh0c1JHQiA9IHN0ZDo6bWFrZV91bmlxdWU8RVhUc1JHQj4oKnRoaXMpOworICAgICAgICAg
ICAgbV9leHRzUkdCID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCp0aGlzLCAiR0xfRVhUX3NS
R0IiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRzUkdCPigqdGhpcykg
OiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dHNSR0IuZ2V0KCk7CiAg
ICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfZnJhZ19kZXB0
aCIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9F
WFRfZnJhZ19kZXB0aCIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwg
IkVYVF9mcmFnX2RlcHRoIikpIHsKICAgICAgICAgaWYgKCFtX2V4dEZyYWdEZXB0aCkgewotICAg
ICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhU
X2ZyYWdfZGVwdGgiKTsKLSAgICAgICAgICAgIG1fZXh0RnJhZ0RlcHRoID0gc3RkOjptYWtlX3Vu
aXF1ZTxFWFRGcmFnRGVwdGg+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fZXh0RnJhZ0RlcHRoID0g
ZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCp0aGlzLCAiR0xfRVhUX2ZyYWdfZGVwdGgiKQorICAg
ICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRGcmFnRGVwdGg+KCp0aGlzKSA6IG51
bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fZXh0RnJhZ0RlcHRoLmdldCgpOwog
ICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX3NoYWRlcl90
ZXh0dXJlX2xvZCIpCi0gICAgICAgICYmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cygiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpIHx8IG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLnN1cHBvcnRzKCJHTF9BUkJfc2hhZGVyX3RleHR1cmVfbG9kIikpKSB7CisgICAgaWYg
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKSkg
ewogICAgICAgICBpZiAoIW1fZXh0U2hhZGVyVGV4dHVyZUxPRCkgewotICAgICAgICAgICAgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3NoYWRlcl90ZXh0
dXJlX2xvZCIpOwotICAgICAgICAgICAgbV9leHRTaGFkZXJUZXh0dXJlTE9EID0gc3RkOjptYWtl
X3VuaXF1ZTxFWFRTaGFkZXJUZXh0dXJlTE9EPigqdGhpcyk7CisgICAgICAgICAgICBpZiAoISht
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhU
X3NoYWRlcl90ZXh0dXJlX2xvZCIgfSkgfHwgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3Vw
cG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0FSQl9zaGFkZXJfdGV4dHVyZV9sb2QiIH0pKSkKKyAg
ICAgICAgICAgICAgICBtX2V4dFNoYWRlclRleHR1cmVMT0QgPSBudWxscHRyOworICAgICAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5z
dXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIgfSk7
CisgICAgICAgICAgICAgICAgbV9leHRTaGFkZXJUZXh0dXJlTE9EID0gc3RkOjptYWtlX3VuaXF1
ZTxFWFRTaGFkZXJUZXh0dXJlTE9EPigqdGhpcyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIG1fZXh0U2hhZGVyVGV4dHVyZUxPRC5nZXQoKTsKICAgICB9Ci0gICAg
aWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0ZXJfYW5p
c290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfRVhUX3Rl
eHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkg
eworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0
ZXJfYW5pc290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRf
RVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpIHsKICAgICAgICAgaWYgKCFtX2V4dFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGlj
Iik7Ci0gICAgICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IHN0ZDo6bWFr
ZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcyk7CisgICAgICAgICAg
ICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lv
bigqdGhpcywgIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpCisgICAgICAgICAg
ICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYz4oKnRo
aXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9leHRUZXh0dXJlRmls
dGVyQW5pc290cm9waWMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlD
YXNlKG5hbWUsICJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKQotICAgICAgICAmJiBtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVz
IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3N0YW5kYXJk
X2Rlcml2YXRpdmVzIikpIHsKICAgICAgICAgaWYgKCFtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMp
IHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQo
IkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpOwotICAgICAgICAgICAgbV9vZXNTdGFuZGFy
ZERlcml2YXRpdmVzID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNTdGFuZGFyZERlcml2YXRpdmVzPigq
dGhpcyk7CisgICAgICAgICAgICBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMgPSBlbmFibGVTdXBw
b3J0ZWRFeHRlbnNpb24oKnRoaXMsICJHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKQorICAg
ICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNTdGFuZGFyZERlcml2YXRpdmVzPigq
dGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1N0YW5kYXJk
RGVyaXZhdGl2ZXMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdCIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpKSB7CisgICAgaWYgKGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0IikpIHsKICAgICAg
ICAgaWYgKCFtX29lc1RleHR1cmVGbG9hdCkgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVfZmxvYXQiKTsKLSAgICAg
ICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0ID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxv
YXQ+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0ID0gZW5hYmxlU3VwcG9y
dGVkRXh0ZW5zaW9uKCp0aGlzLCAiR0xfT0VTX3RleHR1cmVfZmxvYXQiKQorICAgICAgICAgICAg
ICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXQ+KCp0aGlzKSA6IG51bGxwdHI7
CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUZsb2F0LmdldCgpOwogICAg
IH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxv
YXRfbGluZWFyIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7CisgICAgaWYgKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7CiAgICAgICAg
IGlmICghbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVh
ciIpOwotICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5p
cXVlPE9FU1RleHR1cmVGbG9hdExpbmVhcj4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0
dXJlRmxvYXRMaW5lYXIgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oKnRoaXMsICJHTF9PRVNf
dGV4dHVyZV9mbG9hdF9saW5lYXIiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1
ZTxPRVNUZXh0dXJlRmxvYXRMaW5lYXI+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyLmdldCgpOwogICAgIH0KLSAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIp
Ci0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNf
dGV4dHVyZV9oYWxmX2Zsb2F0IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShu
YW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0
dXJlSGFsZkZsb2F0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5l
bnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0Iik7Ci0gICAgICAgICAgICBt
X29lc1RleHR1cmVIYWxmRmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxv
YXQ+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdCA9IGVuYWJsZVN1
cHBvcnRlZEV4dGVuc2lvbigqdGhpcywgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiKQorICAg
ICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZsb2F0PigqdGhp
cykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVIYWxm
RmxvYXQuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUs
ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpCi0gICAgICAgICYmIG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVh
ciIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJl
X2hhbGZfZmxvYXRfbGluZWFyIikpIHsKICAgICAgICAgaWYgKCFtX29lc1RleHR1cmVIYWxmRmxv
YXRMaW5lYXIpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3Vy
ZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik7Ci0gICAgICAgICAg
ICBtX29lc1RleHR1cmVIYWxmRmxvYXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1
cmVIYWxmRmxvYXRMaW5lYXI+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZG
bG9hdExpbmVhciA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigqdGhpcywgIkdMX09FU190ZXh0
dXJlX2hhbGZfZmxvYXRfbGluZWFyIikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlx
dWU8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcj4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAg
fQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyLmdldCgpOwogICAg
IH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3ZlcnRleF9hcnJh
eV9vYmplY3QiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0
cygiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKG5hbWUsICJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpKSB7CiAgICAgICAgIGlm
ICghbV9vZXNWZXJ0ZXhBcnJheU9iamVjdCkgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTsK
LSAgICAgICAgICAgIG1fb2VzVmVydGV4QXJyYXlPYmplY3QgPSBzdGQ6Om1ha2VfdW5pcXVlPE9F
U1ZlcnRleEFycmF5T2JqZWN0PigqdGhpcyk7CisgICAgICAgICAgICBtX29lc1ZlcnRleEFycmF5
T2JqZWN0ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCp0aGlzLCAiR0xfT0VTX3ZlcnRleF9h
cnJheV9vYmplY3QiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNWZXJ0
ZXhBcnJheU9iamVjdD4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gbV9vZXNWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKQotICAgICAgICAm
JiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX2VsZW1lbnRfaW5k
ZXhfdWludCIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU19l
bGVtZW50X2luZGV4X3VpbnQiKSkgewogICAgICAgICBpZiAoIW1fb2VzRWxlbWVudEluZGV4VWlu
dCkgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxl
ZCgiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpOwotICAgICAgICAgICAgbV9vZXNFbGVtZW50
SW5kZXhVaW50ID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNFbGVtZW50SW5kZXhVaW50PigqdGhpcyk7
CisgICAgICAgICAgICBtX29lc0VsZW1lbnRJbmRleFVpbnQgPSBlbmFibGVTdXBwb3J0ZWRFeHRl
bnNpb24oKnRoaXMsICJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50IikKKyAgICAgICAgICAgICAg
ICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTRWxlbWVudEluZGV4VWludD4oKnRoaXMpIDogbnVsbHB0
cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNFbGVtZW50SW5kZXhVaW50LmdldCgp
OwogICAgIH0KQEAgLTE5MSw0MSArMTkzLDUzIEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgICAg
ICBtX3dlYmdsTG9zZUNvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMTG9zZUNvbnRleHQ+
KCp0aGlzKTsKICAgICAgICAgcmV0dXJuIG1fd2ViZ2xMb3NlQ29udGV4dC5nZXQoKTsKICAgICB9
Ci0gICAgaWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfV0VCR0xfY29t
cHJlc3NlZF90ZXh0dXJlX2F0YyIpKQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRU
ZXh0dXJlQVRDKQotICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDID0gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDPigqdGhpcyk7CisgICAgaWYg
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3Rl
eHR1cmVfYXRjIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMp
IHsKKyAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQyA9IFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZCgqdGhpcykKKyAgICAgICAgICAgICAgICA/IHN0ZDo6
bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQz4oKnRoaXMpIDogbnVsbHB0cjsK
KyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDLmdl
dCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJ
VF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSkKLSAgICAgICAgJiYgV2ViR0xDb21w
cmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbV93
ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMpCi0gICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBW
UlRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJ
VF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSkgeworICAgICAgICBpZiAoIW1fd2Vi
Z2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKSB7CisgICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0
aGlzKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRU
ZXh0dXJlUFZSVEM+KCp0aGlzKSA6IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJu
IG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMi
KQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKCp0aGlz
KSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMpCi0gICAgICAg
ICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJH
TENvbXByZXNzZWRUZXh0dXJlUzNUQz4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVND
SUlDYXNlKG5hbWUsICJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpKSB7CisgICAgICAg
IGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQykgeworICAgICAgICAgICAgbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlUzNUQyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBw
b3J0ZWQoKnRoaXMpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVTM1RDPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAgICAg
IHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDLmdldCgpOwogICAgIH0KLSAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVwdGhfdGV4dHVyZSIpCi0g
ICAgICAgICYmIFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoKmdyYXBoaWNzQ29udGV4dDNE
KCkpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERlcHRoVGV4dHVyZSkKLSAgICAgICAgICAgIG1f
d2ViZ2xEZXB0aFRleHR1cmUgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVwdGhUZXh0dXJlPigq
dGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlcHRo
X3RleHR1cmUiKSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xEZXB0aFRleHR1cmUpIHsKKyAgICAg
ICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUgPSBXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVk
KCptX2NvbnRleHQpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVw
dGhUZXh0dXJlPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBt
X3dlYmdsRGVwdGhUZXh0dXJlLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiV0VCR0xfZHJhd19idWZmZXJzIikgJiYgc3VwcG9ydHNEcmF3QnVmZmVy
cygpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RyYXdf
YnVmZmVycyIpKSB7CiAgICAgICAgIGlmICghbV93ZWJnbERyYXdCdWZmZXJzKSB7Ci0gICAgICAg
ICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9FWFRfZHJh
d19idWZmZXJzIik7Ci0gICAgICAgICAgICBtX3dlYmdsRHJhd0J1ZmZlcnMgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkdMRHJhd0J1ZmZlcnM+KCp0aGlzKTsKKyAgICAgICAgICAgIGlmICghc3VwcG9y
dHNEcmF3QnVmZmVycygpKQorICAgICAgICAgICAgICAgIG1fd2ViZ2xEcmF3QnVmZmVycyA9IG51
bGxwdHI7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfZHJhd19i
dWZmZXJzIiB9KTsKKyAgICAgICAgICAgICAgICBtX3dlYmdsRHJhd0J1ZmZlcnMgPSBzdGQ6Om1h
a2VfdW5pcXVlPFdlYkdMRHJhd0J1ZmZlcnM+KCp0aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbERyYXdCdWZmZXJzLmdldCgpOwogICAgIH0KLSAg
ICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiQU5HTEVfaW5zdGFuY2VkX2FycmF5
cyIpICYmIEFOR0xFSW5zdGFuY2VkQXJyYXlzOjpzdXBwb3J0ZWQoKnRoaXMpKSB7CisgICAgaWYg
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSkg
ewogICAgICAgICBpZiAoIW1fYW5nbGVJbnN0YW5jZWRBcnJheXMpIHsKLSAgICAgICAgICAgIG1f
Y29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX0FOR0xFX2luc3RhbmNl
ZF9hcnJheXMiKTsKLSAgICAgICAgICAgIG1fYW5nbGVJbnN0YW5jZWRBcnJheXMgPSBzdGQ6Om1h
a2VfdW5pcXVlPEFOR0xFSW5zdGFuY2VkQXJyYXlzPigqdGhpcyk7CisgICAgICAgICAgICBpZiAo
IUFOR0xFSW5zdGFuY2VkQXJyYXlzOjpzdXBwb3J0ZWQoKnRoaXMpKQorICAgICAgICAgICAgICAg
IG1fYW5nbGVJbnN0YW5jZWRBcnJheXMgPSBudWxscHRyOworICAgICAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZChB
U0NJSUxpdGVyYWwgeyAiR0xfQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIgfSk7CisgICAgICAgICAg
ICAgICAgbV9hbmdsZUluc3RhbmNlZEFycmF5cyA9IHN0ZDo6bWFrZV91bmlxdWU8QU5HTEVJbnN0
YW5jZWRBcnJheXM+KCp0aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gbV9hbmdsZUluc3RhbmNlZEFycmF5cy5nZXQoKTsKICAgICB9CkBAIC0yMzQsMTAgKzI0
OCwxMSBAQCBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNp
b24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICAgICAgbV93ZWJnbERlYnVnUmVuZGVyZXJJ
bmZvID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnUmVuZGVyZXJJbmZvPigqdGhpcyk7CiAg
ICAgICAgIHJldHVybiBtX3dlYmdsRGVidWdSZW5kZXJlckluZm8uZ2V0KCk7CiAgICAgfQotICAg
IGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19zaGFkZXJzIikK
LSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FOR0xF
X3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERlYnVn
U2hhZGVycykKLSAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBzdGQ6Om1ha2VfdW5p
cXVlPFdlYkdMRGVidWdTaGFkZXJzPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UobmFtZSwgIldFQkdMX2RlYnVnX3NoYWRlcnMiKSkgeworICAgICAgICBpZiAoIW1fd2Vi
Z2xEZWJ1Z1NoYWRlcnMpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfQU5HTEVf
dHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIiB9KQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtl
X3VuaXF1ZTxXZWJHTERlYnVnU2hhZGVycz4oKnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAgfQog
ICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnU2hhZGVycy5nZXQoKTsKICAgICB9CiAKQEAgLTI1
MSwxMDkgKzI2NiwxMDkgQEAgVmVjdG9yPFN0cmluZz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkKICAgICBpZiAobV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0
aW9uKQogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIAotICAgIGlmIChtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX2JsZW5kX21pbm1heCIpKQotICAgICAgICBy
ZXN1bHQuYXBwZW5kKCJFWFRfYmxlbmRfbWlubWF4Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0
RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfc1JHQiIpKQotICAgICAgICByZXN1bHQuYXBw
ZW5kKCJFWFRfc1JHQiIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cygiR0xfRVhUX2ZyYWdfZGVwdGgiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiRVhUX2Zy
YWdfZGVwdGgiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMo
IkdMX09FU190ZXh0dXJlX2Zsb2F0IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0
dXJlX2Zsb2F0Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRz
KCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgi
T0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpCi0gICAgICAgIHJl
c3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKTsKLSAgICBpZiAobV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGlu
ZWFyIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGlu
ZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9P
RVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3N0
YW5kYXJkX2Rlcml2YXRpdmVzIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LnN1cHBvcnRzKCJHTF9FWFRfc2hhZGVyX3RleHR1cmVfbG9kIikgfHwgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FSQl9zaGFkZXJfdGV4dHVyZV9sb2QiKSkKLSAgICAg
ICAgcmVzdWx0LmFwcGVuZCgiRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpOwotICAgIGlmIChtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2Fu
aXNvdHJvcGljIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIkVYVF90ZXh0dXJlX2ZpbHRlcl9h
bmlzb3Ryb3BpYyIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0
cygiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgi
T0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoIkdMX09FU19lbGVtZW50X2luZGV4X3VpbnQiKSkKLSAgICAgICAgcmVz
dWx0LmFwcGVuZCgiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpOwotICAgIHJlc3VsdC5hcHBlbmQo
IldFQkdMX2xvc2VfY29udGV4dCIpOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX2JsZW5kX21pbm1heCIgfSkpCisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIkVYVF9ibGVuZF9taW5tYXgiIH0pOwor
ICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwg
eyAiR0xfRVhUX3NSR0IiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7
ICJFWFRfc1JHQiIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBv
cnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfZnJhZ19kZXB0aCIgfSkpCisgICAgICAgIHJlc3Vs
dC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIkVYVF9mcmFnX2RlcHRoIiB9KTsKKyAgICBpZiAobV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190
ZXh0dXJlX2Zsb2F0IiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAi
T0VTX3RleHR1cmVfZmxvYXQiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9
KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfZmxv
YXRfbGluZWFyIiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pKQorICAgICAg
ICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiB9
KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRl
cmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIiB9KSkKKyAgICAgICAgcmVz
dWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIi
IH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxp
dGVyYWwgeyAiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIiB9KSkKKyAgICAgICAgcmVzdWx0
LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIiB9KTsKKyAg
ICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsg
IkdMX0VYVF9zaGFkZXJfdGV4dHVyZV9sb2QiIH0pIHx8IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9BUkJfc2hhZGVyX3RleHR1cmVfbG9kIiB9
KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiRVhUX3NoYWRlcl90ZXh0
dXJlX2xvZCIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRz
KEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pKQor
ICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJFWFRfdGV4dHVyZV9maWx0ZXJf
YW5pc290cm9waWMiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiIH0pKQorICAg
ICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdmVydGV4X2FycmF5X29iamVj
dCIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJ
TGl0ZXJhbCB7ICJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50IiB9KSkKKyAgICAgICAgcmVzdWx0
LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIgfSk7CisgICAg
cmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfbG9zZV9jb250ZXh0IiB9KTsKICAg
ICBpZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkKLSAgICAg
ICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKTsK
KyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCS0lUX1dFQkdMX2NvbXBy
ZXNzZWRfdGV4dHVyZV9hdGMiIH0pOwogICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZS
VEM6OnN1cHBvcnRlZCgqdGhpcykpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJH
TF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJ
SUxpdGVyYWwgeyAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIgfSk7CiAg
ICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpKQogICAg
ICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpOwotICAg
IGlmIChXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCpncmFwaGljc0NvbnRleHQzRCgpKSkK
LSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfZGVwdGhfdGV4dHVyZSIpOworICAgIGlmIChX
ZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCptX2NvbnRleHQpKQorICAgICAgICByZXN1bHQu
YXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9kZXB0aF90ZXh0dXJlIiB9KTsKICAgICBpZiAo
c3VwcG9ydHNEcmF3QnVmZmVycygpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kcmF3
X2J1ZmZlcnMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xf
ZHJhd19idWZmZXJzIiB9KTsKICAgICBpZiAoQU5HTEVJbnN0YW5jZWRBcnJheXM6OnN1cHBvcnRl
ZCgqdGhpcykpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMi
KTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FOR0xF
X3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJH
TF9kZWJ1Z19zaGFkZXJzIik7Ci0gICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfZGVidWdfcmVuZGVy
ZXJfaW5mbyIpOworICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJBTkdMRV9p
bnN0YW5jZWRfYXJyYXlzIiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
c3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJj
ZSIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RlYnVn
X3NoYWRlcnMiIH0pOworICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2Rl
YnVnX3JlbmRlcmVyX2luZm8iIH0pOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotV2ViR0xH
ZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5h
bWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNo
bWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0Rl
bnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlk
YXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycygiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyIiwgdGFyZ2V0LCBhdHRhY2htZW50KSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBpZiAoIW1fZnJhbWVidWZm
ZXJCaW5kaW5nIHx8ICFtX2ZyYW1lYnVmZmVyQmluZGluZy0+b2JqZWN0KCkpIHsKICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAi
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgIm5vIGZyYW1lYnVmZmVyIGJvdW5k
Iik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogICAgIAotICAgIFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QgPSBtX2ZyYW1l
YnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVudE9iamVjdChhdHRhY2htZW50KTsKKyAgICBhdXRv
KiBvYmplY3QgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVudE9iamVjdChhdHRh
Y2htZW50KTsKICAgICBpZiAoIW9iamVjdCkgewogICAgICAgICBpZiAocG5hbWUgPT0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpCi0gICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKTsKKyAgICAg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6Ok5P
TkUpOwogICAgICAgICAvLyBPcGVuR0wgRVMgMi4wIHNwZWNpZmllcyBJTlZBTElEX0VOVU0gaW4g
dGhpcyBjYXNlLCB3aGlsZSBkZXNrdG9wIEdMCiAgICAgICAgIC8vIHNwZWNpZmllcyBJTlZBTElE
X09QRVJBVElPTi4KICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZh
bGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIEFTU0VSVChvYmplY3QtPmlz
VGV4dHVyZSgpIHx8IG9iamVjdC0+aXNSZW5kZXJidWZmZXIoKSk7CiAgICAgaWYgKG9iamVjdC0+
aXNUZXh0dXJlKCkpIHsKICAgICAgICAgc3dpdGNoIChwbmFtZSkgewogICAgICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFOgotICAg
ICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRSk7
CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4
dDNEOjpURVhUVVJFKTsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJl
Kj4ob2JqZWN0KSkpOworICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIocmVpbnRlcnByZXRf
Y2FzdDxXZWJHTFRleHR1cmUmPigqb2JqZWN0KSk7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MRVZFTDoKICAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NVQkVf
TUFQX0ZBQ0U6CiAgICAgICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX0NPTE9SX0VOQ09ESU5HX0VYVDogewogICAgICAgICAgICAgR0MzRGludCB2YWx1ZSA9IDA7
CiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
cml2KHRhcmdldCwgYXR0YWNobWVudCwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAg
ICAgfQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBh
cmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIGZvciB0ZXh0dXJlIGF0dGFjaG1lbnQi
KTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG9iamVj
dC0+aXNSZW5kZXJidWZmZXIoKSk7CiAgICAgICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQ
RToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlJF
TkRFUkJVRkZFUik7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdy
YXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVIpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FOgotICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPihyZWludGVy
cHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyKj4ob2JqZWN0KSkpOworICAgICAgICAgICAgcmV0
dXJuIG1ha2VSZWZQdHIocmVpbnRlcnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZlciY+KCpvYmpl
Y3QpKTsKICAgICAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
Q09MT1JfRU5DT0RJTkdfRVhUOiB7CiAgICAgICAgICAgICBpZiAoIW1fZXh0c1JHQikgewogICAg
ICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElE
X0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJh
bWV0ZXIgbmFtZSBmb3IgcmVuZGVyYnVmZmVyIGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBXZWJHTFJlbmRlcmJ1ZmZlciogcmVuZGVyQnVm
ZmVyID0gcmVpbnRlcnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZlcio+KG9iamVjdCk7CiAgICAg
ICAgICAgICBHQzNEZW51bSByZW5kZXJCdWZmZXJGb3JtYXQgPSByZW5kZXJCdWZmZXItPmdldElu
dGVybmFsRm9ybWF0KCk7CiAgICAgICAgICAgICBBU1NFUlQocmVuZGVyQnVmZmVyRm9ybWF0ICE9
IEV4dGVuc2lvbnMzRDo6U1JHQl9FWFQgJiYgcmVuZGVyQnVmZmVyRm9ybWF0ICE9IEV4dGVuc2lv
bnMzRDo6U1JHQl9BTFBIQV9FWFQpOwogICAgICAgICAgICAgaWYgKHJlbmRlckJ1ZmZlckZvcm1h
dCA9PSBFeHRlbnNpb25zM0Q6OlNSR0I4X0FMUEhBOF9FWFQpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhFeHRlbnNpb25zM0Q6OlNSR0JfRVhUKTsKLSAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihFeHRlbnNpb25zM0Q6OlNSR0JfRVhU
KTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250
ZXh0M0Q6OkxJTkVBUik7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBm
b3IgcmVuZGVyYnVmZmVyIGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CiAgICAgfQog
fQpAQCAtMzY5LDE2ICszODQsMTUgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlk
YXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdGkKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5UOgogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlNURU5DSUxfQVRUQUNITUVOVDoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAobV93ZWJnbERyYXdCdWZmZXJzCi0g
ICAgICAgICAgICAmJiBhdHRhY2htZW50ID4gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFD
SE1FTlQwCisgICAgICAgICAgICAmJiBhdHRhY2htZW50ID49IEdyYXBoaWNzQ29udGV4dDNEOjpD
T0xPUl9BVFRBQ0hNRU5UMAogICAgICAgICAgICAgJiYgYXR0YWNobWVudCA8IHN0YXRpY19jYXN0
PEdDM0RlbnVtPihHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAgKyBnZXRNYXhD
b2xvckF0dGFjaG1lbnRzKCkpKQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklO
VkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCBhdHRhY2htZW50Iik7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIHRydWU7CiB9CiAgICAgCiB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6cmVuZGVyYnVmZmVyU3RvcmFnZShHQzNEZW51bSB0YXJnZXQs
IEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWln
aHQpCkBAIC00NTUsNyArNDY5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNsZWFy
KEdDM0RiaXRmaWVsZCBtYXNrKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNvbnN0IGNo
YXIqIHJlYXNvbiA9ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKLSAgICBpZiAobV9mcmFtZWJ1
ZmZlckJpbmRpbmcgJiYgIW1fZnJhbWVidWZmZXJCaW5kaW5nLT5vbkFjY2VzcyhncmFwaGljc0Nv
bnRleHQzRCgpLCAmcmVhc29uKSkgeworICAgIGlmIChtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAh
bV9mcmFtZWJ1ZmZlckJpbmRpbmctPm9uQWNjZXNzKG1fY29udGV4dC5nZXQoKSwgJnJlYXNvbikp
IHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
RlJBTUVCVUZGRVJfT1BFUkFUSU9OLCAiY2xlYXIiLCByZWFzb24pOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtNDY0LDEwICs0NzgsMTAgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmNsZWFyKEdDM0RiaXRmaWVsZCBtYXNrKQogICAgIG1hcmtDb250ZXh0Q2hhbmdlZCgpOwogfQog
Ci1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVu
dW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IGNvbnN0IGludCBpbnRaZXJvID0gMDsKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6QUNUSVZFX1RFWFRVUkU6CkBAIC00NzksNyArNDkzLDcgQEAgV2Vi
R0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBu
YW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBX0JJVFM6CiAgICAgICAgIHJl
dHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkFSUkFZX0JVRkZFUl9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NS
ZWZQdHI8V2ViR0xCdWZmZXI+KG1fYm91bmRBcnJheUJ1ZmZlcikpOworICAgICAgICByZXR1cm4g
bV9ib3VuZEFycmF5QnVmZmVyOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkJMRU5EOgog
ICAgICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6QkxFTkRfQ09MT1I6CkBAIC01MDMsMTYgKzUxNywxNiBAQCBXZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUp
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfV1JJVEVNQVNLOgogICAgICAgICBy
ZXR1cm4gZ2V0Qm9vbGVhbkFycmF5UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUzoKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhQYXNzUmVmUHRyPFVpbnQzMkFycmF5PihVaW50MzJBcnJheTo6Y3JlYXRlKG1f
Y29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLmRhdGEoKSwgbV9jb21wcmVzc2VkVGV4dHVyZUZvcm1h
dHMuc2l6ZSgpKSkpOworICAgICAgICByZXR1cm4gVWludDMyQXJyYXk6OmNyZWF0ZShtX2NvbXBy
ZXNzZWRUZXh0dXJlRm9ybWF0cy5kYXRhKCksIG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLnNp
emUoKSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VMTF9GQUNFOgogICAgICAgICBy
ZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6Q1VMTF9GQUNFX01PREU6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFt
ZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VSUkVOVF9QUk9HUkFN
OgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xQcm9ncmFtPiht
X2N1cnJlbnRQcm9ncmFtKSk7CisgICAgICAgIHJldHVybiBtX2N1cnJlbnRQcm9ncmFtOwogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JJVFM6CiAgICAgICAgIGlmICghbV9mcmFt
ZWJ1ZmZlckJpbmRpbmcgJiYgIW1fYXR0cmlidXRlcy5kZXB0aCkKLSAgICAgICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oaW50WmVybyk7CisgICAgICAgICAgICByZXR1cm4gaW50WmVybzsKICAg
ICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6REVQVEhfQ0xFQVJfVkFMVUU6CiAgICAgICAgIHJldHVybiBnZXRGbG9hdFBhcmFt
ZXRlcihwbmFtZSk7CkBAIC01MjcsOSArNTQxLDkgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVy
aW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRJVEhFUjoKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIo
cG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVS
X0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1
ZmZlcj4obV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKSkp
OworICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdl
dEVsZW1lbnRBcnJheUJ1ZmZlcigpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUl9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8
V2ViR0xGcmFtZWJ1ZmZlcj4obV9mcmFtZWJ1ZmZlckJpbmRpbmcpKTsKKyAgICAgICAgcmV0dXJu
IG1fZnJhbWVidWZmZXJCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZST05U
X0ZBQ0U6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6R0VORVJBVEVfTUlQTUFQX0hJTlQ6CkBAIC01Nzcs
OSArNTkxLDkgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1l
dGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFRF9CSVRT
OgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPihtX3JlbmRlcmJ1ZmZlckJpbmRp
bmcpKTsKKyAgICAgICAgcmV0dXJuIG1fcmVuZGVyYnVmZmVyQmluZGluZzsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpSRU5ERVJFUjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhT
dHJpbmcoIldlYktpdCBXZWJHTCIpKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMQW55KFN0cmluZygi
V2ViS2l0IFdlYkdMIikpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNBTVBMRV9CVUZG
RVJTOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpTQU1QTEVfQ09WRVJBR0VfSU5WRVJUOgpAQCAtNTkzLDcgKzYwNyw3
IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNE
ZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTQ0lTU09SX1RFU1Q6CiAg
ICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpTSEFESU5HX0xBTkdVQUdFX1ZFUlNJT046Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oIldlYkdMIEdMU0wgRVMgMS4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmco
R3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTikgKyAiKSIpOworICAg
ICAgICByZXR1cm4gV2ViR0xBbnkoIldlYkdMIEdMU0wgRVMgMS4wICgiICsgbV9jb250ZXh0LT5n
ZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTikgKyAi
KSIpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQkFDS19GQUlMOgogICAg
ICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQkFDS19GVU5DOgpAQCAtNjEwLDcgKzYyNCw3IEBAIFdl
YkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBw
bmFtZSkKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JJVFM6CiAgICAgICAgIGlmICghbV9m
cmFtZWJ1ZmZlckJpbmRpbmcgJiYgIW1fYXR0cmlidXRlcy5zdGVuY2lsKQotICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhpbnRaZXJvKTsKKyAgICAgICAgICAgIHJldHVybiBXZWJHTEFu
eShpbnRaZXJvKTsKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9DTEVBUl9WQUxVRToKICAgICAgICAgcmV0
dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CkBAIC02MzMsNjEgKzY0Nyw2MSBAQCBXZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUp
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1VCUElYRUxfQklUUzoKICAgICAgICAgcmV0
dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
VEVYVFVSRV9CSU5ESU5HXzJEOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQ
dHI8V2ViR0xUZXh0dXJlPihtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0
dXJlMkRCaW5kaW5nKSk7CisgICAgICAgIHJldHVybiBtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRl
eHR1cmVVbml0XS50ZXh0dXJlMkRCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfQklORElOR19DVUJFX01BUDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQ
YXNzUmVmUHRyPFdlYkdMVGV4dHVyZT4obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5p
dF0udGV4dHVyZUN1YmVNYXBCaW5kaW5nKSk7CisgICAgICAgIHJldHVybiBtX3RleHR1cmVVbml0
c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlQ3ViZU1hcEJpbmRpbmc7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0FMSUdOTUVOVDoKICAgICAgICAgcmV0dXJuIGdldElu
dFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0ZM
SVBfWV9XRUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3VucGFja0ZsaXBZKTsK
KyAgICAgICAgcmV0dXJuIG1fdW5wYWNrRmxpcFk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6VU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMOgotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgIHJldHVybiBtX3VucGFj
a1ByZW11bHRpcGx5QWxwaGE7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0NP
TE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyht
X3VucGFja0NvbG9yc3BhY2VDb252ZXJzaW9uKTsKKyAgICAgICAgcmV0dXJuIG1fdW5wYWNrQ29s
b3JzcGFjZUNvbnZlcnNpb247CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVORE9SOgot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFN0cmluZygiV2ViS2l0IikpOworICAgICAgICBy
ZXR1cm4gU3RyaW5nIHsgQVNDSUlMaXRlcmFsIHsgIldlYktpdCIgfSB9OwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlZFUlNJT046Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oIldl
YkdMIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRVJT
SU9OKSArICIpIik7CisgICAgICAgIHJldHVybiAiV2ViR0wgMS4wICgiICsgbV9jb250ZXh0LT5n
ZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlNJT04pICsgIikiOwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlZJRVdQT1JUOgogICAgICAgICByZXR1cm4gZ2V0V2ViR0xJbnRBcnJh
eVBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkZSQUdNRU5UX1NIQURF
Ul9ERVJJVkFUSVZFX0hJTlRfT0VTOiAvLyBPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMKICAgICAg
ICAgaWYgKG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcykKICAgICAgICAgICAgIHJldHVybiBnZXRV
bnNpZ25lZEludFBhcmFtZXRlcihFeHRlbnNpb25zM0Q6OkZSQUdNRU5UX1NIQURFUl9ERVJJVkFU
SVZFX0hJTlRfT0VTKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1l
LCBPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIFdlYkdM
RGVidWdSZW5kZXJlckluZm86OlVOTUFTS0VEX1JFTkRFUkVSX1dFQkdMOgogICAgICAgICBpZiAo
bV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpKTsKKyAg
ICAgICAgICAgIHJldHVybiBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6
UkVOREVSRVIpOwogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6
SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdF
QkdMX2RlYnVnX3JlbmRlcmVyX2luZm8gbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIFdlYkdMRGVi
dWdSZW5kZXJlckluZm86OlVOTUFTS0VEX1ZFTkRPUl9XRUJHTDoKICAgICAgICAgaWYgKG1fd2Vi
Z2xEZWJ1Z1JlbmRlcmVySW5mbykKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9j
b250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFTkRPUikpOworICAgICAgICAg
ICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1Ip
OwogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVn
X3JlbmRlcmVyX2luZm8gbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6VkVS
VEVYX0FSUkFZX0JJTkRJTkdfT0VTOiAvLyBPRVNfdmVydGV4X2FycmF5X29iamVjdAogICAgICAg
ICBpZiAobV9vZXNWZXJ0ZXhBcnJheU9iamVjdCkgewotICAgICAgICAgICAgaWYgKCFtX2JvdW5k
VmVydGV4QXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpKQotICAgICAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPihz
dGF0aWNfY2FzdDxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKj4obV9ib3VuZFZlcnRleEFycmF5
T2JqZWN0LmdldCgpKSkpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAg
ICAgICAgICAgaWYgKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gbWFr
ZVJlZlB0cihzdGF0aWNfY2FzdDxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTJj4oKm1fYm91bmRW
ZXJ0ZXhBcnJheU9iamVjdCkpOwogICAgICAgICB9CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9y
KEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxp
ZCBwYXJhbWV0ZXIgbmFtZSwgT0VTX3ZlcnRleF9hcnJheV9vYmplY3Qgbm90IGVuYWJsZWQiKTsK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUOiAv
LyBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMKICAgICAgICAgaWYgKG1fZXh0VGV4dHVy
ZUZpbHRlckFuaXNvdHJvcGljKQogICAgICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFy
YW1ldGVyKEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUKTsKICAg
ICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwg
ImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfdGV4dHVyZV9maWx0
ZXJfYW5pc290cm9waWMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFY
X0NPTE9SX0FUVEFDSE1FTlRTX0VYVDogLy8gRVhUX2RyYXdfYnVmZmVycyBCRUdJTgogICAgICAg
ICBpZiAobV93ZWJnbERyYXdCdWZmZXJzKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkpOworICAgICAgICAgICAgcmV0dXJuIFdlYkdMQW55
KGdldE1heENvbG9yQXR0YWNobWVudHMoKSk7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBw
YXJhbWV0ZXIgbmFtZSwgV0VCR0xfZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6Ok1BWF9EUkFXX0JVRkZFUlNfRVhUOgogICAgICAgICBpZiAobV93ZWJn
bERyYXdCdWZmZXJzKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhnZXRNYXhEcmF3
QnVmZmVycygpKTsKKyAgICAgICAgICAgIHJldHVybiBXZWJHTEFueShnZXRNYXhEcmF3QnVmZmVy
cygpKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBXRUJHTF9k
cmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAobV93
ZWJnbERyYXdCdWZmZXJzCiAgICAgICAgICAgICAmJiBwbmFtZSA+PSBFeHRlbnNpb25zM0Q6OkRS
QVdfQlVGRkVSMF9FWFQKQEAgLTY5NywxMCArNzExLDEwIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICAgICAgICAg
ICAgICB2YWx1ZSA9IG1fZnJhbWVidWZmZXJCaW5kaW5nLT5nZXREcmF3QnVmZmVyKHBuYW1lKTsK
ICAgICAgICAgICAgIGVsc2UgLy8gZW11bGF0ZWQgYmFja2J1ZmZlcgogICAgICAgICAgICAgICAg
IHZhbHVlID0gbV9iYWNrRHJhd0J1ZmZlcjsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8odmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIFdlYkdMQW55KHZhbHVlKTsKICAgICAgICAg
fQogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmgKaW5kZXggMTg3NGZlNWE1YzM4MzExOThmNDNiOTRjMjA5NmI5ZWViZTQzZTQ3MC4uY2Uz
YWZiZTE4Nzc1MmJmODFmNGFiNzYyZDE5OTRlNDdmMTBhMmQ0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTMyLDE2ICsz
MiwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQg
ZmluYWwgOiBwdWJsaWMgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSB7CiBwdWJsaWM6CiAgICAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiwgR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzKTsKLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1l
bnQmLCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiwgR3JhcGhpY3NDb250ZXh0M0RBdHRy
aWJ1dGVzKTsKKyAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmLCBS
ZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyk7CiAK
IHByaXZhdGU6CiAgICAgYm9vbCBpc1dlYkdMMSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KIAogICAgIFdlYkdMRXh0ZW5zaW9uKiBnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJikgZmlu
YWw7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkgZmluYWw7
CisgICAgV2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKICAgICBW
ZWN0b3I8U3RyaW5nPiBnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkgZmluYWw7CiAKLSAgICBXZWJH
TEdldEluZm8gZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdl
dCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpIGZpbmFsOworICAgIFdlYkdM
QW55IGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdD
M0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKICAgICB2b2lkIHJlbmRl
cmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwg
R0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSBmaW5hbDsKICAgICBib29sIHZhbGlk
YXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCkgZmluYWw7CiAgICAgdm9pZCBoaW50
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gbW9kZSkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmlu
ZGV4IDI3NzBkYzFiNmUxZjM4M2VmY2M3NzI1MDMyYWU1MDUyZTc5YjNjZjYuLmI1ZDBlZTc3YmRk
ZGEwOTQ4YmM4NGExZjAzYzJhNzc5ZjU2NDM1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC0yNCw5
ICsyNCw5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKLSNpbmNsdWRlICJXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAKICNpbmNsdWRlICJBTkdMRUluc3RhbmNlZEFycmF5
cy5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCkBAIC00MjAsMTcgKzQyMCwxNSBAQCBzdGQ6
OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4gV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Y3JlYXRlKEhUTQogICAgICAgICByZXR1cm4gcmVuZGVyaW5nQ29udGV4dDsKICAg
ICB9CiAKLSAgICBIb3N0V2luZG93KiBob3N0V2luZG93ID0gZG9jdW1lbnQudmlldygpLT5yb290
KCktPmhvc3RXaW5kb3coKTsKLSAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQo
R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShhdHRyaWJ1dGVzLCBob3N0V2luZG93KSk7Ci0KKyAg
ICBhdXRvIGNvbnRleHQgPSBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKGF0dHJpYnV0ZXMsIGRv
Y3VtZW50LnZpZXcoKS0+cm9vdCgpLT5ob3N0V2luZG93KCkpOwogICAgIGlmICghY29udGV4dCB8
fCAhY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpIHsKICAgICAgICAgY2FudmFzLmRpc3Bh
dGNoRXZlbnQoV2ViR0xDb250ZXh0RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2ViZ2xjb250
ZXh0Y3JlYXRpb25lcnJvckV2ZW50LCBmYWxzZSwgdHJ1ZSwgIkNvdWxkIG5vdCBjcmVhdGUgYSBX
ZWJHTCBjb250ZXh0LiIpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAg
RXh0ZW5zaW9uczNEJiBleHRlbnNpb25zID0gY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpOwotICAg
IGlmIChleHRlbnNpb25zLnN1cHBvcnRzKCJHTF9FWFRfZGVidWdfbWFya2VyIikpCi0gICAgICAg
IGV4dGVuc2lvbnMucHVzaEdyb3VwTWFya2VyRVhUKCJXZWJHTFJlbmRlcmluZ0NvbnRleHQiKTsK
KyAgICBhdXRvJiBleHRlbnNpb25zID0gY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpOworICAgIGlm
IChleHRlbnNpb25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfZGVidWdfbWFya2Vy
IiB9KSkKKyAgICAgICAgZXh0ZW5zaW9ucy5wdXNoR3JvdXBNYXJrZXJFWFQoQVNDSUlMaXRlcmFs
IHsgIldlYkdMUmVuZGVyaW5nQ29udGV4dCIgfSk7CiAKICNpZiBFTkFCTEUoV0VCR0wyKSAmJiBQ
TEFURk9STShNQUMpCiAgICAgLy8gZ2xUZXhTdG9yYWdlKCkgd2FzIG9ubHkgYWRkZWQgdG8gQ29y
ZSBpbiBPcGVuR0wgNC4yLgpAQCAtNDM5LDEzICs0MzcsMTMgQEAgc3RkOjp1bmlxdWVfcHRyPFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0
ZShIVE0KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKIAotICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiByZW5kZXJpbmdDb250ZXh0ID0gbnVsbHB0
cjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4gcmVuZGVy
aW5nQ29udGV4dDsKICNpZiBFTkFCTEUoV0VCR0wyKQogICAgIGlmICh0eXBlID09ICJ3ZWJnbDIi
KQotICAgICAgICByZW5kZXJpbmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0PihjYW52YXMsIFdURk1vdmUoY29udGV4dCksIGF0dHJpYnV0ZXMpOworICAg
ICAgICByZW5kZXJpbmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTDJSZW5kZXJpbmdD
b250ZXh0PihjYW52YXMsIGNvbnRleHQucmVsZWFzZU5vbk51bGwoKSwgYXR0cmlidXRlcyk7CiAg
ICAgZWxzZQogI2VuZGlmCi0gICAgICAgIHJlbmRlcmluZ0NvbnRleHQgPSBzdGQ6Om1ha2VfdW5p
cXVlPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oY2FudmFzLCBXVEZNb3ZlKGNvbnRleHQpLCBhdHRy
aWJ1dGVzKTsKKyAgICAgICAgcmVuZGVyaW5nQ29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8V2Vi
R0xSZW5kZXJpbmdDb250ZXh0PihjYW52YXMsIGNvbnRleHQucmVsZWFzZU5vbk51bGwoKSwgYXR0
cmlidXRlcyk7CiAgICAgcmVuZGVyaW5nQ29udGV4dC0+c3VzcGVuZElmTmVlZGVkKCk7CiAKICAg
ICByZXR1cm4gcmVuZGVyaW5nQ29udGV4dDsKQEAgLTQ1NCw0NCArNDUyLDI5IEBAIHN0ZDo6dW5p
cXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpjcmVhdGUoSFRNCiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlKEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFdlYkdMQ29udGV4
dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICA6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQocGFz
c2VkQ2FudmFzKQogICAgICwgQWN0aXZlRE9NT2JqZWN0KCZwYXNzZWRDYW52YXMuZG9jdW1lbnQo
KSkKLSAgICAsIG1fY29udGV4dChudWxscHRyKQogICAgICwgbV9kaXNwYXRjaENvbnRleHRMb3N0
RXZlbnRUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29u
dGV4dExvc3RFdmVudCkKLSAgICAsIG1fcmVzdG9yZUFsbG93ZWQoZmFsc2UpCiAgICAgLCBtX3Jl
c3RvcmVUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9y
ZUNvbnRleHQpCi0gICAgLCBtX2dlbmVyYXRlZEltYWdlQ2FjaGUoMCkKLSAgICAsIG1fY29udGV4
dExvc3QoZmFsc2UpCi0gICAgLCBtX2NvbnRleHRMb3N0TW9kZShTeW50aGV0aWNMb3N0Q29udGV4
dCkKICAgICAsIG1fYXR0cmlidXRlcyhhdHRyaWJ1dGVzKQotICAgICwgbV9zeW50aGVzaXplZEVy
cm9yc1RvQ29uc29sZSh0cnVlKQogICAgICwgbV9udW1HTEVycm9yc1RvQ29uc29sZUFsbG93ZWQo
bWF4R0xFcnJvcnNBbGxvd2VkVG9Db25zb2xlKQogICAgICwgbV9pc1BlbmRpbmdQb2xpY3lSZXNv
bHV0aW9uKHRydWUpCi0gICAgLCBtX2hhc1JlcXVlc3RlZFBvbGljeVJlc29sdXRpb24oZmFsc2Up
CiB7CiB9CiAKLVdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiYmIGNvbnRleHQsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKK1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENh
bnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRl
eHQsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICA6IENhbnZhc1JlbmRl
cmluZ0NvbnRleHQocGFzc2VkQ2FudmFzKQogICAgICwgQWN0aXZlRE9NT2JqZWN0KCZwYXNzZWRD
YW52YXMuZG9jdW1lbnQoKSkKICAgICAsIG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQogICAg
ICwgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dExvc3RFdmVudCkKLSAgICAsIG1fcmVzdG9yZUFs
bG93ZWQoZmFsc2UpCiAgICAgLCBtX3Jlc3RvcmVUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQpCiAgICAgLCBtX2dlbmVyYXRlZEltYWdl
Q2FjaGUoNCkKLSAgICAsIG1fY29udGV4dExvc3QoZmFsc2UpCi0gICAgLCBtX2NvbnRleHRMb3N0
TW9kZShTeW50aGV0aWNMb3N0Q29udGV4dCkKICAgICAsIG1fYXR0cmlidXRlcyhhdHRyaWJ1dGVz
KQotICAgICwgbV9zeW50aGVzaXplZEVycm9yc1RvQ29uc29sZSh0cnVlKQogICAgICwgbV9udW1H
TEVycm9yc1RvQ29uc29sZUFsbG93ZWQobWF4R0xFcnJvcnNBbGxvd2VkVG9Db25zb2xlKQotICAg
ICwgbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKGZhbHNlKQotICAgICwgbV9oYXNSZXF1ZXN0
ZWRQb2xpY3lSZXNvbHV0aW9uKGZhbHNlKQogewotICAgIEFTU0VSVChtX2NvbnRleHQpOwogICAg
IG1fY29udGV4dEdyb3VwID0gV2ViR0xDb250ZXh0R3JvdXA6OmNyZWF0ZSgpOwotICAgIG1fY29u
dGV4dEdyb3VwLT5hZGRDb250ZXh0KHRoaXMpOworICAgIG1fY29udGV4dEdyb3VwLT5hZGRDb250
ZXh0KCp0aGlzKTsKICAgICAKICAgICBtX2NvbnRleHQtPnNldFdlYkdMQ29udGV4dCh0aGlzKTsK
IAotICAgIG1fbWF4Vmlld3BvcnREaW1zWzBdID0gbV9tYXhWaWV3cG9ydERpbXNbMV0gPSAwOwog
ICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6Ok1BWF9WSUVXUE9S
VF9ESU1TLCBtX21heFZpZXdwb3J0RGltcyk7CiAKICAgICBzZXR1cEZsYWdzKCk7CkBAIC02MTks
NyArNjAyLDcgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6fldlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UoKQogICAgIGlmICghbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKSB7CiAgICAg
ICAgIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMoKTsKICAgICAgICAgZGVzdHJveUdyYXBoaWNz
Q29udGV4dDNEKCk7Ci0gICAgICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVDb250ZXh0KHRoaXMp
OworICAgICAgICBtX2NvbnRleHRHcm91cC0+cmVtb3ZlQ29udGV4dCgqdGhpcyk7CiAgICAgfQog
fQogCkBAIC05MTMsNyArODk2LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpi
aW5kQnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgV2ViR0xCdWZmZXIqIGJ1ZmZlcikKICAgICBpZiAo
IWNoZWNrT2JqZWN0VG9CZUJvdW5kKCJiaW5kQnVmZmVyIiwgYnVmZmVyLCBkZWxldGVkKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIGlmIChkZWxldGVkKQotICAgICAgICBidWZmZXIgPSAwOworICAg
ICAgICBidWZmZXIgPSBudWxscHRyOwogICAgIGlmIChidWZmZXIgJiYgYnVmZmVyLT5nZXRUYXJn
ZXQoKSAmJiBidWZmZXItPmdldFRhcmdldCgpICE9IHRhcmdldCkgewogICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJiaW5kQnVm
ZmVyIiwgImJ1ZmZlcnMgY2FuIG5vdCBiZSB1c2VkIHdpdGggbXVsdGlwbGUgdGFyZ2V0cyIpOwog
ICAgICAgICByZXR1cm47CkBAIC0xMzk1LDcgKzEzNzgsNyBAQCBSZWZQdHI8V2ViR0xCdWZmZXI+
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZUJ1ZmZlcigpCiAgICAgaWYgKGlzQ29u
dGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBi
dWZmZXIgPSBXZWJHTEJ1ZmZlcjo6Y3JlYXRlKCp0aGlzKTsKLSAgICBhZGRTaGFyZWRPYmplY3Qo
YnVmZmVyLnB0cigpKTsKKyAgICBhZGRTaGFyZWRPYmplY3QoYnVmZmVyLmdldCgpKTsKICAgICBy
ZXR1cm4gV1RGTW92ZShidWZmZXIpOwogfQogCkBAIC0xNDA0LDcgKzEzODcsNyBAQCBSZWZQdHI8
V2ViR0xGcmFtZWJ1ZmZlcj4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlRnJhbWVi
dWZmZXIoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIGF1dG8gYnVmZmVyID0gV2ViR0xGcmFtZWJ1ZmZlcjo6Y3JlYXRlKCp0
aGlzKTsKLSAgICBhZGRDb250ZXh0T2JqZWN0KGJ1ZmZlci5wdHIoKSk7CisgICAgYWRkQ29udGV4
dE9iamVjdChidWZmZXIuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKGJ1ZmZlcik7CiB9CiAK
QEAgLTE0MTMsNyArMTM5Niw3IEBAIFJlZlB0cjxXZWJHTFRleHR1cmU+IFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmNyZWF0ZVRleHR1cmUoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5k
aW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gdGV4dHVyZSA9IFdlYkdM
VGV4dHVyZTo6Y3JlYXRlKCp0aGlzKTsKLSAgICBhZGRTaGFyZWRPYmplY3QodGV4dHVyZS5wdHIo
KSk7CisgICAgYWRkU2hhcmVkT2JqZWN0KHRleHR1cmUuZ2V0KCkpOwogICAgIHJldHVybiBXVEZN
b3ZlKHRleHR1cmUpOwogfQogCkBAIC0xNDIyLDcgKzE0MDUsNyBAQCBSZWZQdHI8V2ViR0xQcm9n
cmFtPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVQcm9ncmFtKCkKICAgICBpZiAo
aXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBh
dXRvIHByb2dyYW0gPSBXZWJHTFByb2dyYW06OmNyZWF0ZSgqdGhpcyk7Ci0gICAgYWRkU2hhcmVk
T2JqZWN0KHByb2dyYW0ucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdChwcm9ncmFtLmdldCgp
KTsKICAgICByZXR1cm4gV1RGTW92ZShwcm9ncmFtKTsKIH0KIApAQCAtMTQzMSw3ICsxNDE0LDcg
QEAgUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpj
cmVhdGVSZW5kZXJidWZmZXIoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gYnVmZmVyID0gV2ViR0xSZW5kZXJidWZm
ZXI6OmNyZWF0ZSgqdGhpcyk7Ci0gICAgYWRkU2hhcmVkT2JqZWN0KGJ1ZmZlci5wdHIoKSk7Cisg
ICAgYWRkU2hhcmVkT2JqZWN0KGJ1ZmZlci5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUoYnVm
ZmVyKTsKIH0KIApAQCAtMTQ0NSw3ICsxNDI4LDcgQEAgUmVmUHRyPFdlYkdMU2hhZGVyPiBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVTaGFkZXIoR0MzRGVudW0gdHlwZSkKICAgICB9
CiAKICAgICBhdXRvIHNoYWRlciA9IFdlYkdMU2hhZGVyOjpjcmVhdGUoKnRoaXMsIHR5cGUpOwot
ICAgIGFkZFNoYXJlZE9iamVjdChzaGFkZXIucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdChz
aGFkZXIuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKHNoYWRlcik7CiB9CiAKQEAgLTE0Nzgs
NyArMTQ2MSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlQnVmZmVy
KFdlYkdMQnVmZmVyKiBidWZmZXIpCiAgICAgaWYgKG1fYm91bmRBcnJheUJ1ZmZlciA9PSBidWZm
ZXIpCiAgICAgICAgIG1fYm91bmRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAKLSAgICBtX2JvdW5k
VmVydGV4QXJyYXlPYmplY3QtPnVuYmluZEJ1ZmZlcihidWZmZXIpOworICAgIG1fYm91bmRWZXJ0
ZXhBcnJheU9iamVjdC0+dW5iaW5kQnVmZmVyKCpidWZmZXIpOwogfQogCiB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZUZyYW1lYnVmZmVyKFdlYkdMRnJhbWVidWZmZXIqIGZy
YW1lYnVmZmVyKQpAQCAtMjE4NCwxMCArMjE2NywxMCBAQCBHQzNEaW50IFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldEF0dHJpYkxvY2F0aW9uKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29u
cwogICAgIHJldHVybiBtX2NvbnRleHQtPmdldEF0dHJpYkxvY2F0aW9uKG9iamVjdE9yWmVybyhw
cm9ncmFtKSwgbmFtZSk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRCdWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSkK
K1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFtZXRlcihH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0
T3JQZW5kaW5nKCkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICBib29sIHZhbGlkID0gZmFsc2U7CiAgICAgaWYgKHRhcmdldCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSIHx8IHRhcmdldCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVIpCkBAIC0yMjA3LDE5ICsyMTkwLDE5IEBAIFdl
YkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCdWZmZXJQYXJhbWV0ZXIo
R0MzRGVudW0gdGFyZ2V0LCBHQzNECiAjZW5kaWYKICAgICBpZiAoIXZhbGlkKSB7CiAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRC
dWZmZXJQYXJhbWV0ZXIiLCAiaW52YWxpZCB0YXJnZXQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAocG5h
bWUgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OkJVRkZFUl9TSVpFICYmIHBuYW1lICE9IEdyYXBoaWNz
Q29udGV4dDNEOjpCVUZGRVJfVVNBR0UpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEJ1ZmZlclBhcmFtZXRlciIsICJpbnZh
bGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAg
ICAgbV9jb250ZXh0LT5nZXRCdWZmZXJQYXJhbWV0ZXJpdih0YXJnZXQsIHBuYW1lLCAmdmFsdWUp
OwogICAgIGlmIChwbmFtZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6QlVGRkVSX1NJWkUpCi0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8o
c3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2YWx1ZSkpOworICAgICAgICByZXR1cm4gdmFsdWU7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZSk7CiB9CiAKIHN0ZDo6b3B0
aW9uYWw8V2ViR0xDb250ZXh0QXR0cmlidXRlcz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKQpAQCAtMjI0NiwzMCArMjIyOSwzMCBAQCBHQzNEZW51bSBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRFcnJvcigpCiAgICAgcmV0dXJuIG1fY29udGV4
dC0+Z2V0RXJyb3IoKTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldFByb2dyYW1QYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBHQzNEZW51bSBw
bmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJh
bWV0ZXIoV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAo
aXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJnZXRQcm9n
cmFtUGFyYW1ldGVyIiwgcHJvZ3JhbSkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBz
d2l0Y2ggKHBuYW1lKSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVMRVRFX1NUQVRV
UzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhwcm9ncmFtLT5pc0RlbGV0ZWQoKSk7Cisg
ICAgICAgIHJldHVybiBwcm9ncmFtLT5pc0RlbGV0ZWQoKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpWQUxJREFURV9TVEFUVVM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0UHJvZ3JhbWl2
KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGJvb2w+KHZhbHVlKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5L
X1NUQVRVUzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhwcm9ncmFtLT5nZXRMaW5rU3Rh
dHVzKCkpOworICAgICAgICByZXR1cm4gcHJvZ3JhbS0+Z2V0TGlua1N0YXR1cygpOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFUVEFDSEVEX1NIQURFUlM6CiAgICAgICAgIG1fY29udGV4
dC0+Z2V0UHJvZ3JhbWl2KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgcG5hbWUsICZ2YWx1ZSk7Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICByZXR1cm4gdmFsdWU7
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUNUSVZFX0FUVFJJQlVURVM6CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6QUNUSVZFX1VOSUZPUk1TOgogICAgICAgICBtX2NvbnRleHQt
PmdldE5vbkJ1aWx0SW5BY3RpdmVTeW1ib2xDb3VudChvYmplY3RPclplcm8ocHJvZ3JhbSksIHBu
YW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICAg
ICAgcmV0dXJuIHZhbHVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9y
KEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQcm9ncmFtUGFyYW1ldGVyIiwg
ImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTIyODAsMTcgKzIyNjMs
MTcgQEAgU3RyaW5nIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1JbmZvTG9n
KFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSkKICAgICByZXR1cm4gZW5zdXJlTm90TnVsbChtX2NvbnRl
eHQtPmdldFByb2dyYW1JbmZvTG9nKG9iamVjdE9yWmVybyhwcm9ncmFtKSkpOwogfQogCi1XZWJH
TEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1l
dGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIGlmICh0YXJnZXQgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUikgewogICAg
ICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAi
Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIiwgImludmFsaWQgdGFyZ2V0Iik7Ci0gICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAg
IGlmICghbV9yZW5kZXJidWZmZXJCaW5kaW5nIHx8ICFtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPm9i
amVjdCgpKSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlZBTElEX09QRVJBVElPTiwgImdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlciIsICJubyByZW5kZXJi
dWZmZXIgYm91bmQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAobV9yZW5kZXJidWZmZXJCaW5kaW5nLT5n
ZXRJbnRlcm5hbEZvcm1hdCgpID09IEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMCkBA
IC0yMzE3LDEyICsyMzAwLDEyIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0CiAgICAgICAgICAg
ICB2YWx1ZSA9IDg7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVDoKLSAgICAgICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8obV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgp
KTsKKyAgICAgICAgICAgIHJldHVybiBtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdldEludGVybmFs
Rm9ybWF0KCk7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UmVuZGVyYnVmZmVyUGFyYW1l
dGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICByZXR1cm4gdmFsdWU7CiAg
ICAgfQogCiAgICAgR0MzRGludCB2YWx1ZSA9IDA7CkBAIC0yMzM2LDMyICsyMzE5LDMyIEBAIFdl
YkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoR0MzRGVudW0gdGFyZ2V0CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVS
QlVGRkVSX0RFUFRIX1NJWkU6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVG
RkVSX1NURU5DSUxfU0laRToKICAgICAgICAgbV9jb250ZXh0LT5nZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXJpdih0YXJnZXQsIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQ6Ci0gICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8obV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgpKTsKKyAg
ICAgICAgcmV0dXJuIG1fcmVuZGVyYnVmZmVyQmluZGluZy0+Z2V0SW50ZXJuYWxGb3JtYXQoKTsK
ICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQz
RDo6SU5WQUxJRF9FTlVNLCAiZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIiwgImludmFsaWQgcGFy
YW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRTaGFkZXJQYXJhbWV0ZXIoV2ViR0xTaGFkZXIqIHNoYWRlciwgR0MzRGVu
dW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRTaGFkZXJQ
YXJhbWV0ZXIoV2ViR0xTaGFkZXIqIHNoYWRlciwgR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYg
KGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0U2hh
ZGVyUGFyYW1ldGVyIiwgc2hhZGVyKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBzd2l0
Y2ggKHBuYW1lKSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVMRVRFX1NUQVRVUzoK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzaGFkZXItPmlzRGVsZXRlZCgpKTsKKyAgICAg
ICAgcmV0dXJuIHNoYWRlci0+aXNEZWxldGVkKCk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6Q09NUElMRV9TVEFUVVM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0U2hhZGVyaXYob2JqZWN0
T3JaZXJvKHNoYWRlciksIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHN0YXRpY19jYXN0PGJvb2w+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxib29sPih2YWx1ZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0hBREVSX1RZUEU6
CiAgICAgICAgIG1fY29udGV4dC0+Z2V0U2hhZGVyaXYob2JqZWN0T3JaZXJvKHNoYWRlciksIHBu
YW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVu
c2lnbmVkIGludD4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVk
Pih2YWx1ZSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhp
Y3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFNoYWRlclBhcmFtZXRlciIsICJpbnZhbGlk
IHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogfQogCkBAIC0yNDEwLDEzICsyMzkzLDEzIEBAIFN0
cmluZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRTaGFkZXJTb3VyY2UoV2ViR0xTaGFk
ZXIqIHNoYWRlcikKICAgICByZXR1cm4gZW5zdXJlTm90TnVsbChzaGFkZXItPmdldFNvdXJjZSgp
KTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFRleFBh
cmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKLSAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBX
ZWJHTFRleHR1cmUqIHRleCA9IHZhbGlkYXRlVGV4dHVyZUJpbmRpbmcoImdldFRleFBhcmFtZXRl
ciIsIHRhcmdldCwgZmFsc2UpOwogICAgIGlmICghdGV4KQotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIEdDM0RpbnQgdmFsdWUgPSAw
OwogICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFX01BR19GSUxURVI6CkBAIC0yNDI0LDI3ICsyNDA3LDI3IEBAIFdlYkdMR2V0SW5mbyBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEZW51CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1M6CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1Q6CiAgICAgICAgIG1fY29udGV4
dC0+Z2V0VGV4UGFyYW1ldGVyaXYodGFyZ2V0LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZhbHVlKSk7CisgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmFsdWUpOwogICAgIGNhc2UgRXh0ZW5z
aW9uczNEOjpURVhUVVJFX01BWF9BTklTT1RST1BZX0VYVDogLy8gRVhUX3RleHR1cmVfZmlsdGVy
X2FuaXNvdHJvcGljCiAgICAgICAgIGlmIChtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykg
ewogICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRUZXhQYXJhbWV0ZXJpdih0YXJnZXQsIHBuYW1l
LCAmdmFsdWUpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDx1
bnNpZ25lZCBpbnQ+KHZhbHVlKSk7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHZhbHVlKTsKICAgICAgICAgfQogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0VGV4UGFyYW1ldGVyIiwgImludmFsaWQg
cGFyYW1ldGVyIG5hbWUsIEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyBub3QgZW5hYmxl
ZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRUZXhQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0
ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIH0KIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdCBXZWJHTFVuaWZv
cm1Mb2NhdGlvbiogdW5pZm9ybUxvY2F0aW9uKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0IFdlYkdMVW5p
Zm9ybUxvY2F0aW9uKiB1bmlmb3JtTG9jYXRpb24pCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RP
clBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0VW5pZm9ybSIsIHByb2dyYW0p
KQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIGlmICghdW5pZm9ybUxvY2F0aW9uIHx8IHVuaWZvcm1Mb2NhdGlvbi0+cHJvZ3JhbSgp
ICE9IHByb2dyYW0pIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAiZ2V0VW5pZm9ybSIsICJubyB1bmlmb3JtbG9jYXRpb24g
b3Igbm90IHZhbGlkIGZvciB0aGlzIHByb2dyYW0iKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgR0MzRGludCBsb2Nh
dGlvbiA9IHVuaWZvcm1Mb2NhdGlvbi0+bG9jYXRpb24oKTsKIApAQCAtMjUxOSw3ICsyNTAyLDcg
QEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2Vi
R0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdAogICAgIGRlZmF1bHQ6CiAgICAgICAgIC8vIENhbid0
IGhhbmRsZSB0aGlzIHR5cGUKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfVkFMVUUsICJnZXRVbmlmb3JtIiwgInVuaGFuZGxlZCB0eXBlIik7Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogICAgIHN3aXRjaCAoYmFzZVR5cGUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpGTE9BVDogewpAQCAtMjUyOSw4ICsyNTEyLDggQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdAog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1mdihvYmplY3RP
clplcm8ocHJvZ3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGggPT0g
MSkKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWVbMF0pOwotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PihGbG9hdDMyQXJyYXk6
OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlWzBdOwor
ICAgICAgICByZXR1cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCk7CiAgICAg
fQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OklOVDogewogICAgICAgICBHQzNEaW50IHZh
bHVlWzRdID0gezB9OwpAQCAtMjUzOSw4ICsyNTIyLDggQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25z
dAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1pdihvYmpl
Y3RPclplcm8ocHJvZ3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGgg
PT0gMSkKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWVbMF0pOwotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8SW50MzJBcnJheT4oSW50MzJBcnJheTo6
Y3JlYXRlKHZhbHVlLCBsZW5ndGgpKSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVbMF07Cisg
ICAgICAgIHJldHVybiBJbnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCk7CiAgICAgfQog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkJPT0w6IHsKICAgICAgICAgR0MzRGludCB2YWx1
ZVs0XSA9IHswfTsKQEAgLTI1NDksMTIgKzI1MzIsMTIgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25z
dAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1pdihvYmpl
Y3RPclplcm8ocHJvZ3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGgg
PiAxKSB7Ci0gICAgICAgICAgICBib29sIGJvb2xWYWx1ZVsxNl0gPSB7MH07CisgICAgICAgICAg
ICBWZWN0b3I8Ym9vbD4gdmVjdG9yKGxlbmd0aCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGogPSAwOyBqIDwgbGVuZ3RoOyBqKyspCi0gICAgICAgICAgICAgICAgYm9vbFZhbHVlW2pdID0g
c3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWVbal0pOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhib29sVmFsdWUsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgdmVjdG9yW2pdID0gdmFs
dWVbal07CisgICAgICAgICAgICByZXR1cm4gV1RGTW92ZSh2ZWN0b3IpOwogICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWVbMF0pKTsK
KyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJvb2w+KHZhbHVlWzBdKTsKICAgICB9CiAgICAg
ZGVmYXVsdDoKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTI1NjIsNyArMjU0NSw3IEBA
IFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdM
UHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QKIAogICAgIC8vIElmIHdlIGdldCBoZXJlLCBzb21ldGhp
bmcgd2VudCB3cm9uZyBpbiBvdXIgdW5mb3J0dW5hdGVseSBjb21wbGV4IGxvZ2ljIGFib3ZlCiAg
ICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUsICJn
ZXRVbmlmb3JtIiwgInVua25vd24gZXJyb3IiKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZlB0cjxXZWJHTFVuaWZvcm1Mb2NhdGlvbj4g
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybUxvY2F0aW9uKFdlYkdMUHJvZ3Jh
bSogcHJvZ3JhbSwgY29uc3QgU3RyaW5nJiBuYW1lKQpAQCAtMjYwMyw0MyArMjU4Niw0MyBAQCBS
ZWZQdHI8V2ViR0xVbmlmb3JtTG9jYXRpb24+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omdl
dFVuaWZvcm1Mb2NhdGlvbihXZWJHTAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1XZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VmVydGV4QXR0cmliKEdDM0R1aW50
IGluZGV4LCBHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldFZlcnRleEF0dHJpYihHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUpCiB7CiAg
ICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmIChpbmRleCA+PSBtX21h
eFZlcnRleEF0dHJpYnMpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfVkFMVUUsICJnZXRWZXJ0ZXhBdHRyaWIiLCAiaW5kZXggb3V0IG9mIHJh
bmdlIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogCiAgICAgY29uc3QgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OlZl
cnRleEF0dHJpYlN0YXRlJiBzdGF0ZSA9IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0VmVy
dGV4QXR0cmliU3RhdGUoaW5kZXgpOwogCiAgICAgaWYgKChpc1dlYkdMMigpIHx8IG1fYW5nbGVJ
bnN0YW5jZWRBcnJheXMpICYmIHBuYW1lID09IEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRU
UklCX0FSUkFZX0RJVklTT1JfQU5HTEUpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3Rh
dGUuZGl2aXNvcik7CisgICAgICAgIHJldHVybiBzdGF0ZS5kaXZpc29yOwogCiAgICAgc3dpdGNo
IChwbmFtZSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJS
QVlfQlVGRkVSX0JJTkRJTkc6CiAgICAgICAgIGlmICgoIWlzR0xFUzJDb21wbGlhbnQoKSAmJiAh
aW5kZXggJiYgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRWZXJ0ZXhBdHRyaWJTdGF0ZSgw
KS5idWZmZXJCaW5kaW5nID09IG1fdmVydGV4QXR0cmliMEJ1ZmZlcikKICAgICAgICAgICAgIHx8
ICFzdGF0ZS5idWZmZXJCaW5kaW5nCiAgICAgICAgICAgICB8fCAhc3RhdGUuYnVmZmVyQmluZGlu
Zy0+b2JqZWN0KCkpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4oc3RhdGUuYnVmZmVy
QmluZGluZykpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBz
dGF0ZS5idWZmZXJCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9B
VFRSSUJfQVJSQVlfRU5BQkxFRDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS5l
bmFibGVkKTsKKyAgICAgICAgcmV0dXJuIHN0YXRlLmVuYWJsZWQ7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEOgotICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKHN0YXRlLm5vcm1hbGl6ZWQpOworICAgICAgICByZXR1cm4gc3RhdGUu
bm9ybWFsaXplZDsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FS
UkFZX1NJWkU6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGUuc2l6ZSk7CisgICAg
ICAgIHJldHVybiBzdGF0ZS5zaXplOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRF
WF9BVFRSSUJfQVJSQVlfU1RSSURFOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRl
Lm9yaWdpbmFsU3RyaWRlKTsKKyAgICAgICAgcmV0dXJuIHN0YXRlLm9yaWdpbmFsU3RyaWRlOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRToKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS50eXBlKTsKKyAgICAgICAgcmV0dXJuIHN0
YXRlLnR5cGU7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VSUkVOVF9WRVJURVhfQVRU
UklCOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5
PihGbG9hdDMyQXJyYXk6OmNyZWF0ZShtX3ZlcnRleEF0dHJpYlZhbHVlW2luZGV4XS52YWx1ZSwg
NCkpKTsKKyAgICAgICAgcmV0dXJuIEZsb2F0MzJBcnJheTo6Y3JlYXRlKG1fdmVydGV4QXR0cmli
VmFsdWVbaW5kZXhdLnZhbHVlLCA0KTsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0VmVydGV4QXR0cmli
IiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTI2NDcsOCArMjYz
MCw3IEBAIGxvbmcgbG9uZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRy
aWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RP
clBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgR0MzRHNpemVpcHRyIHJlc3VsdCA9
IG1fY29udGV4dC0+Z2V0VmVydGV4QXR0cmliT2Zmc2V0KGluZGV4LCBwbmFtZSk7Ci0gICAgcmV0
dXJuIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4ocmVzdWx0KTsKKyAgICByZXR1cm4gbV9jb250ZXh0
LT5nZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoaW5kZXgsIHBuYW1lKTsKIH0KIAogR0MzRGJvb2xlYW4g
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6aXNCdWZmZXIoV2ViR0xCdWZmZXIqIGJ1ZmZlcikK
QEAgLTMxMTAsOCArMzA5Miw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVh
ZFBpeGVscyhHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoCiAjdW5kZWYgUEFD
S0VEX0lOVEVSTkFMX0ZPUk1BVF9DSEVDSwogCiAgICAgLy8gQ2FsY3VsYXRlIGFycmF5IHNpemUs
IHRha2luZyBpbnRvIGNvbnNpZGVyYXRpb24gb2YgUEFDS19BTElHTk1FTlQuCi0gICAgdW5zaWdu
ZWQgaW50IHRvdGFsQnl0ZXNSZXF1aXJlZCA9IDA7Ci0gICAgdW5zaWduZWQgaW50IHBhZGRpbmcg
PSAwOworICAgIHVuc2lnbmVkIHRvdGFsQnl0ZXNSZXF1aXJlZCA9IDA7CisgICAgdW5zaWduZWQg
cGFkZGluZyA9IDA7CiAgICAgaWYgKCFtX2lzUm9idXN0bmVzc0VYVFN1cHBvcnRlZCkgewogICAg
ICAgICBHQzNEZW51bSBlcnJvciA9IG1fY29udGV4dC0+Y29tcHV0ZUltYWdlU2l6ZUluQnl0ZXMo
Zm9ybWF0LCB0eXBlLCB3aWR0aCwgaGVpZ2h0LCBtX3BhY2tBbGlnbm1lbnQsICZ0b3RhbEJ5dGVz
UmVxdWlyZWQsICZwYWRkaW5nKTsKICAgICAgICAgaWYgKGVycm9yICE9IEdyYXBoaWNzQ29udGV4
dDNEOjpOT19FUlJPUikgewpAQCAtNDU4Nyw3ICs0NTY5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50
IHNpemUKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAvLyBEZXRlcm1pbmUgdGhlIG51bWJl
ciBvZiBlbGVtZW50cyB0aGUgYm91bmQgYnVmZmVyIGNhbiBob2xkLCBnaXZlbiB0aGUgb2Zmc2V0
LCBzaXplLCB0eXBlIGFuZCBzdHJpZGUKLSAgICB1bnNpZ25lZCBpbnQgdHlwZVNpemUgPSBzaXpl
SW5CeXRlcyh0eXBlKTsKKyAgICBhdXRvIHR5cGVTaXplID0gc2l6ZUluQnl0ZXModHlwZSk7CiAg
ICAgaWYgKCF0eXBlU2l6ZSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9FTlVNLCAidmVydGV4QXR0cmliUG9pbnRlciIsICJpbnZhbGlkIHR5
cGUiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNDU5OCw3ICs0NTgwLDcgQEAgdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBH
QzNEaW50IHNpemUKICAgICB9CiAgICAgR0MzRHNpemVpIGJ5dGVzUGVyRWxlbWVudCA9IHNpemUg
KiB0eXBlU2l6ZTsKIAotICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+c2V0VmVydGV4QXR0
cmliU3RhdGUoaW5kZXgsIGJ5dGVzUGVyRWxlbWVudCwgc2l6ZSwgdHlwZSwgbm9ybWFsaXplZCwg
c3RyaWRlLCBzdGF0aWNfY2FzdDxHQzNEaW50cHRyPihvZmZzZXQpLCBtX2JvdW5kQXJyYXlCdWZm
ZXIpOworICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+c2V0VmVydGV4QXR0cmliU3RhdGUo
aW5kZXgsIGJ5dGVzUGVyRWxlbWVudCwgc2l6ZSwgdHlwZSwgbm9ybWFsaXplZCwgc3RyaWRlLCBz
dGF0aWNfY2FzdDxHQzNEaW50cHRyPihvZmZzZXQpLCAqbV9ib3VuZEFycmF5QnVmZmVyKTsKICAg
ICBtX2NvbnRleHQtPnZlcnRleEF0dHJpYlBvaW50ZXIoaW5kZXgsIHNpemUsIHR5cGUsIG5vcm1h
bGl6ZWQsIHN0cmlkZSwgc3RhdGljX2Nhc3Q8R0MzRGludHB0cj4ob2Zmc2V0KSk7CiB9CiAKQEAg
LTQ2ODksNyArNDY3MSw3IEBAIFBsYXRmb3JtTGF5ZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogICAgIHJldHVybiAoIWlzQ29udGV4dExvc3QoKSAm
JiAhbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKSA/IG1fY29udGV4dC0+cGxhdGZvcm1MYXll
cigpIDogMDsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVTaGFy
ZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6cmVtb3ZlU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0JiBvYmplY3Qp
CiB7CiAgICAgaWYgKG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikKICAgICAgICAgcmV0dXJu
OwpAQCAtNDY5Nyw3ICs0Njc5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpy
ZW1vdmVTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCkKICAgICBtX2NvbnRl
eHRHcm91cC0+cmVtb3ZlT2JqZWN0KG9iamVjdCk7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6YWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QpCit2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZFNoYXJlZE9iamVjdChXZWJHTFNoYXJl
ZE9iamVjdCYgb2JqZWN0KQogewogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24p
CiAgICAgICAgIHJldHVybjsKQEAgLTQ3MDYsMjEgKzQ2ODgsMjEgQEAgdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjphZGRTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVj
dCkKICAgICBtX2NvbnRleHRHcm91cC0+YWRkT2JqZWN0KG9iamVjdCk7CiB9CiAKLXZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVtb3ZlQ29udGV4dE9iamVjdChXZWJHTENvbnRleHRP
YmplY3QqIG9iamVjdCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVtb3ZlQ29u
dGV4dE9iamVjdChXZWJHTENvbnRleHRPYmplY3QmIG9iamVjdCkKIHsKICAgICBpZiAobV9pc1Bl
bmRpbmdQb2xpY3lSZXNvbHV0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NvbnRleHRP
YmplY3RzLnJlbW92ZShvYmplY3QpOworICAgIG1fY29udGV4dE9iamVjdHMucmVtb3ZlKCZvYmpl
Y3QpOwogfQogCi12b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZENvbnRleHRPYmpl
Y3QoV2ViR0xDb250ZXh0T2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmFkZENvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0JiBvYmplY3QpCiB7CiAg
ICAgaWYgKG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgQVNTRVJUKCFpc0NvbnRleHRMb3N0KCkpOwotICAgIG1fY29udGV4dE9iamVjdHMuYWRkKG9i
amVjdCk7CisgICAgbV9jb250ZXh0T2JqZWN0cy5hZGQoJm9iamVjdCk7CiB9CiAKIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpCkBAIC00
NzU4LDU2ICs0NzQwLDU2IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2FuU3Vz
cGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Qm9vbGVhblBhcmFt
ZXRlcihHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGJvb2xlYW4g
dmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0Qm9vbGVhbnYocG5hbWUsICZ2YWx1ZSk7Ci0g
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxib29sPih2YWx1ZSkpOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxib29sPih2YWx1ZSk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5h
bWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuQXJyYXlQ
YXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKHBuYW1lICE9IEdyYXBoaWNzQ29u
dGV4dDNEOjpDT0xPUl9XUklURU1BU0spIHsKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygwLCAwKTsKKyAgICAgICAgcmV0dXJuIFZlY3Rvcjxi
b29sPiB7IH07CiAgICAgfQotICAgIEdDM0Rib29sZWFuIHZhbHVlWzRdID0gezB9OworICAgIEdD
M0Rib29sZWFuIHZhbHVlWzRdID0geyAwIH07CiAgICAgbV9jb250ZXh0LT5nZXRCb29sZWFudihw
bmFtZSwgdmFsdWUpOwotICAgIGJvb2wgYm9vbFZhbHVlWzRdOwotICAgIGZvciAoaW50IGlpID0g
MDsgaWkgPCA0OyArK2lpKQotICAgICAgICBib29sVmFsdWVbaWldID0gc3RhdGljX2Nhc3Q8Ym9v
bD4odmFsdWVbaWldKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKGJvb2xWYWx1ZSwgNCk7Cisg
ICAgVmVjdG9yPGJvb2w+IHZlY3Rvcig0KTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
NDsgKytpKQorICAgICAgICB2ZWN0b3JbaV0gPSB2YWx1ZVtpXTsKKyAgICByZXR1cm4gV1RGTW92
ZSh2ZWN0b3IpOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0RmxvYXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRGbG9hdFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBH
QzNEZmxvYXQgdmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0RmxvYXR2KHBuYW1lLCAmdmFs
dWUpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgIHJldHVybiB2YWx1ZTsK
IH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEludFBhcmFt
ZXRlcihHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldEludFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNEaW50IHZhbHVlID0g
MDsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KHBuYW1lLCAmdmFsdWUpOwotICAgIHJldHVy
biBXZWJHTEdldEluZm8odmFsdWUpOworICAgIHJldHVybiB2YWx1ZTsKIH0KIAotV2ViR0xHZXRJ
bmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEdD
M0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5z
aWduZWRJbnRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGludCB2YWx1ZSA9
IDA7CiAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihwbmFtZSwgJnZhbHVlKTsKLSAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odmFsdWUpKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVlKTsKIH0KIAotV2ViR0xHZXRJbmZvIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEludDY0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0SW50NjRQYXJhbWV0ZXIo
R0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGludDY0IHZhbHVlID0gMDsKICAgICBtX2NvbnRl
eHQtPmdldEludGVnZXI2NHYocG5hbWUsICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5m
byh2YWx1ZSk7CisgICAgcmV0dXJuIHZhbHVlOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBu
YW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xGbG9hdEFy
cmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdDM0RmbG9hdCB2YWx1ZVs0XSA9
IHswfTsKICAgICBtX2NvbnRleHQtPmdldEZsb2F0dihwbmFtZSwgdmFsdWUpOwpAQCAtNDgyNSwx
MCArNDgwNywxMCBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYQogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgfQotICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFz
c1JlZlB0cjxGbG9hdDMyQXJyYXk+KEZsb2F0MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgp
KSk7CisgICAgcmV0dXJuIEZsb2F0MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgpOwogfQog
Ci1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJh
eVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAg
R0MzRGludCB2YWx1ZVs0XSA9IHswfTsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KHBuYW1l
LCB2YWx1ZSk7CkBAIC00ODQ0LDcgKzQ4MjYsNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZQog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgfQotICAgIHJldHVy
biBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxJbnQzMkFycmF5PihJbnQzMkFycmF5OjpjcmVhdGUo
dmFsdWUsIGxlbmd0aCkpKTsKKyAgICByZXR1cm4gSW50MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBs
ZW5ndGgpOwogfQogCiBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrVGV4dHVy
ZUNvbXBsZXRlbmVzcyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIGJvb2wgcHJlcGFyZVRvRHJh
dykKQEAgLTUwNjgsNyArNTA1MCw3IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
dmFsaWRhdGVDb21wcmVzc2VkVGV4RnVuY0RhdGEoY29uc3QgY2hhciogZnVuY3RpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICB1bnNpZ25lZCBpbnQgYnl0ZXNSZXF1aXJlZCA9
IDA7CisgICAgdW5zaWduZWQgYnl0ZXNSZXF1aXJlZCA9IDA7CiAKICAgICBzd2l0Y2ggKGZvcm1h
dCkgewogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhU
OgpAQCAtNTMyNSwxNyArNTMwNywxNiBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OnZhbGlkYXRlVW5pZm9ybU1hdHJpeFBhcmFtZXRlcnMoY29uc3QgY2hhciogZnVuYwogCiBXZWJH
TEJ1ZmZlciogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVCdWZmZXJEYXRhUGFy
YW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDM0RlbnVtIHRhcmdldCwgR0MzRGVu
dW0gdXNhZ2UpCiB7Ci0gICAgV2ViR0xCdWZmZXIqIGJ1ZmZlciA9IDA7CisgICAgc3RkOjpvcHRp
b25hbDxXZWJHTEJ1ZmZlcio+IGJ1ZmZlcjsKICAgICBzd2l0Y2ggKHRhcmdldCkgewogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVSOgotICAgICAgICBidWZm
ZXIgPSBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1lbnRBcnJheUJ1ZmZlcigpLmdl
dCgpOworICAgICAgICBidWZmZXIgPSBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1l
bnRBcnJheUJ1ZmZlcigpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpBUlJBWV9CVUZGRVI6CiAgICAgICAgIGJ1ZmZlciA9IG1fYm91bmRBcnJheUJ1ZmZlci5n
ZXQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICNpZiBFTkFCTEUoV0VCR0wyKQot
ICAgICAgICBib29sIHN1Y2Nlc3MgPSB0cnVlOwogICAgICAgICBpZiAoaXNXZWJHTDIoKSkgewog
ICAgICAgICAgICAgc3dpdGNoICh0YXJnZXQpIHsKICAgICAgICAgICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkNPUFlfUkVBRF9CVUZGRVI6CkBAIC01MzU2LDE5ICs1MzM3LDE1IEBAIFdlYkdM
QnVmZmVyKiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxpZGF0ZUJ1ZmZlckRhdGFQYXJh
bWV0ZXJzKGNvbnN0IGNoYXIqCiAgICAgICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpV
TklGT1JNX0JVRkZFUjoKICAgICAgICAgICAgICAgICBidWZmZXIgPSBtX2JvdW5kVW5pZm9ybUJ1
ZmZlci5nZXQoKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBm
YWxzZTsKLSAgICAgICAgaWYgKHN1Y2Nlc3MpCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGlmIChidWZmZXIpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICNlbmRp
ZgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIHRhcmdldCIpOwogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICB9Ci0gICAgaWYgKCFidWZmZXIpIHsKKyAgICBpZiAoIWJ1ZmZlciB8fCAhYnVm
ZmVyLnZhbHVlKCkpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfT1BFUkFUSU9OLCBmdW5jdGlvbk5hbWUsICJubyBidWZmZXIiKTsKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtNTM3Niw3ICs1MzUzLDcgQEAgV2ViR0xCdWZm
ZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlQnVmZmVyRGF0YVBhcmFtZXRl
cnMoY29uc3QgY2hhcioKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVFJFQU1fRFJBVzoK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEFUSUNfRFJBVzoKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEWU5BTUlDX0RSQVc6Ci0gICAgICAgIHJldHVybiBidWZmZXI7CisgICAg
ICAgIHJldHVybiBidWZmZXIudmFsdWUoKTsKICAgICB9CiAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCB1
c2FnZSIpOwogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IDczOTNhMzg2Mjgz
M2ZjYjg2YmIxNzFiMjA2YjI3YmNlZDliMzllY2YuLmQ5MWI4NDNiNzlkY2YzMmEyYzRkNDFjZmI1
Y2M0NjhhNTNkN2U2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTMwLDEzICszMCwxMCBAQAogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNs
dWRlICJUaW1lci5oIgorI2luY2x1ZGUgIldlYkdMQW55LmgiCiAjaW5jbHVkZSAiV2ViR0xDb250
ZXh0QXR0cmlidXRlcy5oIgotI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgotI2luY2x1ZGUgIldl
YkdMT2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViR0xUZXh0dXJlLmgiCiAjaW5jbHVkZSA8bWVtb3J5
PgotI2luY2x1ZGUgPHJ1bnRpbWUvRmxvYXQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9J
bnQzMkFycmF5Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDgsNyArNDUsNiBAQCBj
bGFzcyBFWFRzUkdCOwogY2xhc3MgRVhURnJhZ0RlcHRoOwogY2xhc3MgSFRNTEltYWdlRWxlbWVu
dDsKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7Ci1jbGFzcyBJbWFnZUJ1ZmZlcjsKIGNsYXNzIElt
YWdlRGF0YTsKIGNsYXNzIEludFNpemU7CiBjbGFzcyBPRVNTdGFuZGFyZERlcml2YXRpdmVzOwpA
QCAtMTkxLDI0ICsxODcsMjQgQEAgcHVibGljOgogICAgIFJlZlB0cjxXZWJHTEFjdGl2ZUluZm8+
IGdldEFjdGl2ZVVuaWZvcm0oV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgaW5kZXgpOwogICAgIGJv
b2wgZ2V0QXR0YWNoZWRTaGFkZXJzKFdlYkdMUHJvZ3JhbSosIFZlY3RvcjxSZWZQdHI8V2ViR0xT
aGFkZXI+PiYpOwogICAgIEdDM0RpbnQgZ2V0QXR0cmliTG9jYXRpb24oV2ViR0xQcm9ncmFtKiwg
Y29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0QnVmZmVyUGFyYW1ldGVy
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldEJ1ZmZl
clBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKTsKICAgICBzdGQ6Om9w
dGlvbmFsPFdlYkdMQ29udGV4dEF0dHJpYnV0ZXM+IGdldENvbnRleHRBdHRyaWJ1dGVzKCk7CiAg
ICAgR0MzRGVudW0gZ2V0RXJyb3IoKTsKICAgICB2aXJ0dWFsIFdlYkdMRXh0ZW5zaW9uKiBnZXRF
eHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKSA9IDA7Ci0gICAgdmlydHVhbCBXZWJHTEdldElu
Zm8gZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpID0gMDsKLSAgICB2aXJ0dWFsIFdlYkdM
R2V0SW5mbyBnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpID0gMDsKLSAgICBXZWJHTEdldElu
Zm8gZ2V0UHJvZ3JhbVBhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNEZW51bSBwbmFtZSk7Cisg
ICAgdmlydHVhbCBXZWJHTEFueSBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBwbmFtZSkgPSAwOwor
ICAgIHZpcnR1YWwgV2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSA9IDA7Cisg
ICAgV2ViR0xBbnkgZ2V0UHJvZ3JhbVBhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNEZW51bSBw
bmFtZSk7CiAgICAgU3RyaW5nIGdldFByb2dyYW1JbmZvTG9nKFdlYkdMUHJvZ3JhbSopOwotICAg
IFdlYkdMR2V0SW5mbyBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEZW51bSBwbmFtZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFNoYWRlclBhcmFtZXRlcihXZWJH
TFNoYWRlciosIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBnZXRSZW5kZXJidWZmZXJQ
YXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkg
Z2V0U2hhZGVyUGFyYW1ldGVyKFdlYkdMU2hhZGVyKiwgR0MzRGVudW0gcG5hbWUpOwogICAgIFN0
cmluZyBnZXRTaGFkZXJJbmZvTG9nKFdlYkdMU2hhZGVyKik7CiAgICAgUmVmUHRyPFdlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0PiBnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hh
ZGVyVHlwZSwgR0MzRGVudW0gcHJlY2lzaW9uVHlwZSk7CiAgICAgU3RyaW5nIGdldFNoYWRlclNv
dXJjZShXZWJHTFNoYWRlciopOwogICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gZ2V0U3VwcG9y
dGVkRXh0ZW5zaW9ucygpID0gMDsKLSAgICBXZWJHTEdldEluZm8gZ2V0VGV4UGFyYW1ldGVyKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRVbmlm
b3JtKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKik7CisgICAgV2Vi
R0xBbnkgZ2V0VGV4UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOwor
ICAgIFdlYkdMQW55IGdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiwgY29uc3QgV2ViR0xVbmlmb3Jt
TG9jYXRpb24qKTsKICAgICBSZWZQdHI8V2ViR0xVbmlmb3JtTG9jYXRpb24+IGdldFVuaWZvcm1M
b2NhdGlvbihXZWJHTFByb2dyYW0qLCBjb25zdCBTdHJpbmcmKTsKLSAgICBXZWJHTEdldEluZm8g
Z2V0VmVydGV4QXR0cmliKEdDM0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2Vi
R0xBbnkgZ2V0VmVydGV4QXR0cmliKEdDM0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSk7CiAg
ICAgbG9uZyBsb25nIGdldFZlcnRleEF0dHJpYk9mZnNldChHQzNEdWludCBpbmRleCwgR0MzRGVu
dW0gcG5hbWUpOwogCiAgICAgdmlydHVhbCB2b2lkIGhpbnQoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
ZW51bSBtb2RlKSA9IDA7CkBAIC0zMjMsOCArMzE5LDggQEAgcHVibGljOgogICAgIHZvaWQgcGFp
bnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKSBvdmVycmlkZTsKICAgICBSZWZQdHI8SW1hZ2VE
YXRhPiBwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSgpOwogCi0gICAgdm9pZCByZW1v
dmVTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqKTsKLSAgICB2b2lkIHJlbW92ZUNvbnRl
eHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0Kik7CisgICAgdm9pZCByZW1vdmVTaGFyZWRPYmpl
Y3QoV2ViR0xTaGFyZWRPYmplY3QmKTsKKyAgICB2b2lkIHJlbW92ZUNvbnRleHRPYmplY3QoV2Vi
R0xDb250ZXh0T2JqZWN0Jik7CiAgICAgCiAgICAgdW5zaWduZWQgZ2V0TWF4VmVydGV4QXR0cmli
cygpIGNvbnN0IHsgcmV0dXJuIG1fbWF4VmVydGV4QXR0cmliczsgfQogCkBAIC0zMzUsNyArMzMx
LDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZShIVE1MQ2FudmFzRWxlbWVudCYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwotICAgIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWZQdHI8R3JhcGhpY3ND
b250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOworICAgIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYs
IFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwogCiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMRHJhd0J1
ZmZlcnM7CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMRnJhbWVidWZmZXI7CkBAIC0zNjAsOCArMzU2
LDggQEAgcHJvdGVjdGVkOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdCBvdmVycmlkZTsKICAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24o
KSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgYWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVk
T2JqZWN0Kik7Ci0gICAgdm9pZCBhZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCop
OworICAgIHZvaWQgYWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Jik7CisgICAgdm9p
ZCBhZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCYpOwogICAgIHZvaWQgZGV0YWNo
QW5kUmVtb3ZlQWxsT2JqZWN0cygpOwogCiAgICAgdm9pZCBkZXN0cm95R3JhcGhpY3NDb250ZXh0
M0QoKTsKQEAgLTQxNCw3ICs0MTAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gb24gaG93IGV4YWN0
bHkgdGhlIHBsYXRmb3JtIGRpc2NvdmVycyB0aGF0IHRoZSBjb250ZXh0IHdhcyBsb3N0LiBGb3Ig
YmV0dGVyCiAgICAgLy8gcG9ydGFiaWxpdHkgd2UgYWx3YXlzIGRlZmVyIHRoZSBkaXNwYXRjaCBv
ZiB0aGUgZXZlbnQuCiAgICAgVGltZXIgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lcjsK
LSAgICBib29sIG1fcmVzdG9yZUFsbG93ZWQ7CisgICAgYm9vbCBtX3Jlc3RvcmVBbGxvd2VkIHsg
ZmFsc2UgfTsKICAgICBUaW1lciBtX3Jlc3RvcmVUaW1lcjsKIAogICAgIGJvb2wgbV9uZWVkc1Vw
ZGF0ZTsKQEAgLTQzMiwxMiArNDI4LDEwIEBAIHByb3RlY3RlZDoKIAogICAgIFJlZlB0cjxXZWJH
TFZlcnRleEFycmF5T2JqZWN0QmFzZT4gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiAgICAg
UmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlPiBtX2JvdW5kVmVydGV4QXJyYXlPYmpl
Y3Q7Ci0gICAgdm9pZCBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KFBhc3NSZWZQdHI8V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2U+IGFycmF5T2JqZWN0KQorCisgICAgdm9pZCBzZXRCb3VuZFZl
cnRleEFycmF5T2JqZWN0KFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKiBhcnJheU9iamVjdCkK
ICAgICB7Ci0gICAgICAgIGlmIChhcnJheU9iamVjdCkKLSAgICAgICAgICAgIG1fYm91bmRWZXJ0
ZXhBcnJheU9iamVjdCA9IGFycmF5T2JqZWN0OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBt
X2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdDsKKyAg
ICAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0ID0gYXJyYXlPYmplY3QgPyBhcnJheU9iamVj
dCA6IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OwogICAgIH0KICAgICAKICAgICBjbGFzcyBW
ZXJ0ZXhBdHRyaWJWYWx1ZSB7CkBAIC00OTMsMTIgKzQ4NywxMiBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+W10+IG1fYnVm
ZmVyczsKICAgICAgICAgaW50IG1fY2FwYWNpdHk7CiAgICAgfTsKLSAgICBMUlVJbWFnZUJ1ZmZl
ckNhY2hlIG1fZ2VuZXJhdGVkSW1hZ2VDYWNoZTsKKyAgICBMUlVJbWFnZUJ1ZmZlckNhY2hlIG1f
Z2VuZXJhdGVkSW1hZ2VDYWNoZSB7IDAgfTsKIAogICAgIEdDM0RpbnQgbV9tYXhUZXh0dXJlU2l6
ZTsKICAgICBHQzNEaW50IG1fbWF4Q3ViZU1hcFRleHR1cmVTaXplOwogICAgIEdDM0RpbnQgbV9t
YXhSZW5kZXJidWZmZXJTaXplOwotICAgIEdDM0RpbnQgbV9tYXhWaWV3cG9ydERpbXNbMl07Cisg
ICAgR0MzRGludCBtX21heFZpZXdwb3J0RGltc1syXSB7IDAsIDAgfTsKICAgICBHQzNEaW50IG1f
bWF4VGV4dHVyZUxldmVsOwogICAgIEdDM0RpbnQgbV9tYXhDdWJlTWFwVGV4dHVyZUxldmVsOwog
CkBAIC01MTMsOCArNTA3LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV91bnBhY2tGbGlwWTsK
ICAgICBib29sIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYTsKICAgICBHQzNEZW51bSBtX3VucGFj
a0NvbG9yc3BhY2VDb252ZXJzaW9uOwotICAgIGJvb2wgbV9jb250ZXh0TG9zdDsKLSAgICBMb3N0
Q29udGV4dE1vZGUgbV9jb250ZXh0TG9zdE1vZGU7CisgICAgYm9vbCBtX2NvbnRleHRMb3N0IHsg
ZmFsc2UgfTsKKyAgICBMb3N0Q29udGV4dE1vZGUgbV9jb250ZXh0TG9zdE1vZGUgeyBTeW50aGV0
aWNMb3N0Q29udGV4dCB9OwogICAgIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgbV9hdHRyaWJ1dGVz
OwogCiAgICAgYm9vbCBtX2xheWVyQ2xlYXJlZDsKQEAgLTUzNSwxNCArNTI5LDE0IEBAIHByb3Rl
Y3RlZDoKICAgICBib29sIG1faXNEZXB0aFN0ZW5jaWxTdXBwb3J0ZWQ7CiAgICAgYm9vbCBtX2lz
Um9idXN0bmVzc0VYVFN1cHBvcnRlZDsKIAotICAgIGJvb2wgbV9zeW50aGVzaXplZEVycm9yc1Rv
Q29uc29sZTsKKyAgICBib29sIG1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUgeyB0cnVlIH07
CiAgICAgaW50IG1fbnVtR0xFcnJvcnNUb0NvbnNvbGVBbGxvd2VkOwogCiAgICAgLy8gQSBXZWJH
TFJlbmRlcmluZ0NvbnRleHQgY2FuIGJlIGNyZWF0ZWQgaW4gYSBzdGF0ZSB3aGVyZSBpdCBhcHBl
YXJzIGFzCiAgICAgLy8gYSB2YWxpZCBhbmQgYWN0aXZlIGNvbnRleHQsIGJ1dCB3aWxsIG5vdCBl
eGVjdXRlIGFueSBpbXBvcnRhbnQgb3BlcmF0aW9ucwogICAgIC8vIHVudGlsIGl0cyBsb2FkIHBv
bGljeSBpcyBjb21wbGV0ZWx5IHJlc29sdmVkLgotICAgIGJvb2wgbV9pc1BlbmRpbmdQb2xpY3lS
ZXNvbHV0aW9uOwotICAgIGJvb2wgbV9oYXNSZXF1ZXN0ZWRQb2xpY3lSZXNvbHV0aW9uOworICAg
IGJvb2wgbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uIHsgZmFsc2UgfTsKKyAgICBib29sIG1f
aGFzUmVxdWVzdGVkUG9saWN5UmVzb2x1dGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCk7CiAKICAgICAvLyBFbmFibGVkIGV4dGVuc2lvbiBvYmplY3RzLiBG
SVhNRTogTW92ZSB0aGVzZSB0byBXZWJHTDFSZW5kZXJpbmdDb250ZXh0LCBub3QgbmVlZGVkIGZv
ciBXZWJHTDIKQEAgLTU2OSwxNCArNTYzLDE0IEBAIHByb3RlY3RlZDoKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8QU5HTEVJbnN0YW5jZWRBcnJheXM+IG1fYW5nbGVJbnN0YW5jZWRBcnJheXM7CiAKICAg
ICAvLyBIZWxwZXJzIGZvciBnZXRQYXJhbWV0ZXIgYW5kIG90aGVycwotICAgIFdlYkdMR2V0SW5m
byBnZXRCb29sZWFuUGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0Qm9v
bGVhbkFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0RmxvYXRQ
YXJhbWV0ZXIoR0MzRGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRJbnRQYXJhbWV0ZXIoR0Mz
RGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihHQzNEZW51
bSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEludDY0UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBX
ZWJHTEdldEluZm8gZ2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBX
ZWJHTEdldEluZm8gZ2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgV2Vi
R0xBbnkgZ2V0Qm9vbGVhblBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgV2ViR0xBbnkgZ2V0Qm9v
bGVhbkFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBXZWJHTEFueSBnZXRGbG9hdFBhcmFt
ZXRlcihHQzNEZW51bSk7CisgICAgV2ViR0xBbnkgZ2V0SW50UGFyYW1ldGVyKEdDM0RlbnVtKTsK
KyAgICBXZWJHTEFueSBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgV2Vi
R0xBbnkgZ2V0SW50NjRQYXJhbWV0ZXIoR0MzRGVudW0pOworICAgIFdlYkdMQW55IGdldFdlYkdM
RmxvYXRBcnJheVBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgV2ViR0xBbnkgZ2V0V2ViR0xJbnRB
cnJheVBhcmFtZXRlcihHQzNEZW51bSk7CiAKICAgICAvLyBDbGVhciB0aGUgYmFja2J1ZmZlciBp
ZiBpdCB3YXMgY29tcG9zaXRlZCBzaW5jZSB0aGUgbGFzdCBvcGVyYXRpb24uCiAgICAgLy8gY2xl
YXJNYXNrIGlzIHNldCB0byB0aGUgYml0ZmllbGQgb2YgYW55IGNsZWFyIHRoYXQgd291bGQgaGFw
cGVuIGFueXdheSBhdCB0aGlzIHRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMU2hhcmVkT2JqZWN0LmNwcAppbmRleCAzNmRjMTVkM2EwZTdlNWY2YTk3MDYxZTRjM2Jk
M2MyNDFjMWI4NGU5Li45MzA1NTk3ZDEyZTRlYTZiZGRlNjdhOWJlNTUxNTM2MTQzNzdkZjk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3Bw
CkBAIC00MywyMiArNDMsMjIgQEAgV2ViR0xTaGFyZWRPYmplY3Q6OldlYkdMU2hhcmVkT2JqZWN0
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiBXZWJHTFNoYXJlZE9iamVjdDo6
fldlYkdMU2hhcmVkT2JqZWN0KCkKIHsKICAgICBpZiAobV9jb250ZXh0R3JvdXApCi0gICAgICAg
IG1fY29udGV4dEdyb3VwLT5yZW1vdmVPYmplY3QodGhpcyk7CisgICAgICAgIG1fY29udGV4dEdy
b3VwLT5yZW1vdmVPYmplY3QoKnRoaXMpOwogfQogCiB2b2lkIFdlYkdMU2hhcmVkT2JqZWN0Ojpk
ZXRhY2hDb250ZXh0R3JvdXAoKQogewogICAgIGRldGFjaCgpOwogICAgIGlmIChtX2NvbnRleHRH
cm91cCkgewotICAgICAgICBkZWxldGVPYmplY3QoMCk7Ci0gICAgICAgIG1fY29udGV4dEdyb3Vw
LT5yZW1vdmVPYmplY3QodGhpcyk7Ci0gICAgICAgIG1fY29udGV4dEdyb3VwID0gMDsKKyAgICAg
ICAgZGVsZXRlT2JqZWN0KG51bGxwdHIpOworICAgICAgICBtX2NvbnRleHRHcm91cC0+cmVtb3Zl
T2JqZWN0KCp0aGlzKTsKKyAgICAgICAgbV9jb250ZXh0R3JvdXAgPSBudWxscHRyOwogICAgIH0K
IH0KIAogR3JhcGhpY3NDb250ZXh0M0QqIFdlYkdMU2hhcmVkT2JqZWN0OjpnZXRBR3JhcGhpY3ND
b250ZXh0M0QoKSBjb25zdAogewotICAgIHJldHVybiBtX2NvbnRleHRHcm91cCA/IG1fY29udGV4
dEdyb3VwLT5nZXRBR3JhcGhpY3NDb250ZXh0M0QoKSA6IDA7CisgICAgcmV0dXJuIG1fY29udGV4
dEdyb3VwID8gJm1fY29udGV4dEdyb3VwLT5nZXRBR3JhcGhpY3NDb250ZXh0M0QoKSA6IG51bGxw
dHI7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
U2hhcmVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9i
amVjdC5oCmluZGV4IGFiZTQ4MDMzMzcyYzk1NmNjNzEzMGViN2Y3YmZmZmRjZDFhOWY1N2IuLjAx
MDhiOTQyMTFjZTVhMzFjNjk2NmY1MzQwZGQ5NTQxNGQyYTMwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaApAQCAtNDksNyArNDksNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzU2hhZGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTeW5jKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNUZXh0dXJlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNUcmFuc2Zvcm1GZWVkYmFjaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzVmVydGV4QXJyYXlPYmplY3QoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCiAgICAgYm9vbCB2YWxpZGF0ZShjb25zdCBXZWJHTENvbnRleHRHcm91cCogY29u
dGV4dEdyb3VwLCBjb25zdCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJikgY29uc3Qgb3ZlcnJp
ZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3Jt
RmVlZGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVl
ZGJhY2suaAppbmRleCA2OWNmOGU3YmI1NDE4ZWFhOWU0NTY5MjExNDA4ZjQ3NmIyNmE2Nzg2Li45
Y2NmMDNiOGRlYjZhYjZlOWEwZGNjNmJlNzU1M2IxMTFkMzQ1NDA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCkBAIC0zOSw5
ICszOSw2IEBAIHByb3RlY3RlZDoKICAgICBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmKTsKIAogICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGlj
c0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAg
IGJvb2wgaXNUcmFuc2Zvcm1GZWVkYmFjaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKaW5kZXggN2ZhNjljOWE0
OTRkYmVlYTlkYmViZjg5ZTg1ZjQzZjljZmQwMjg0OS4uMTU4ZmZkZjg2YmJiMTgwNjhiOGU0ZjE0
MjZhMzVlNDk2MzEwNGMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKQEAgLTMzLDIzICszMywyMyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgCi1SZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4gV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwg
VkFPVHlwZSB0eXBlKQorUmVmPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IFdlYkdMVmVydGV4QXJy
YXlPYmplY3Q6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIFR5cGUgdHlw
ZSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTFZlcnRleEFycmF5T2JqZWN0KGN0
eCwgdHlwZSkpOwogfQogCiBXZWJHTFZlcnRleEFycmF5T2JqZWN0Ojp+V2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdCgpCiB7Ci0gICAgZGVsZXRlT2JqZWN0KDApOworICAgIGRlbGV0ZU9iamVjdChudWxs
cHRyKTsKIH0KIAotV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIFZBT1R5cGUgdHlwZSkKK1dlYkdMVmVy
dGV4QXJyYXlPYmplY3Q6OldlYkdMVmVydGV4QXJyYXlPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYgY3R4LCBUeXBlIHR5cGUpCiAgICAgOiBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFz
ZShjdHgsIHR5cGUpCiB7CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVE
ZWZhdWx0OgorICAgIGNhc2UgVHlwZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVm
YXVsdDoKKyAgICBjYXNlIFR5cGU6OlVzZXI6CiAgICAgICAgIHNldE9iamVjdChjb250ZXh0KCkt
PmdyYXBoaWNzQ29udGV4dDNEKCktPmNyZWF0ZVZlcnRleEFycmF5KCkpOwogICAgICAgICBicmVh
azsKICAgICB9CkBAIC01OCw5ICs1OCw5IEBAIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OldlYkdM
VmVydGV4QXJyYXlPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWCiB2b2lk
IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0
M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamVjdCBvYmplY3QpCiB7CiAgICAgc3dpdGNoICht
X3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVEZWZhdWx0OgorICAgIGNhc2UgVHlwZTo6RGVmYXVs
dDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKKyAgICBjYXNlIFR5cGU6OlVzZXI6CiAg
ICAgICAgIGNvbnRleHQzZC0+ZGVsZXRlVmVydGV4QXJyYXkob2JqZWN0KTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdC5oCmluZGV4IDViNDljNzA4YTQ2MjU0ZGU1OTBlMWMwNmRjYzk4NjJhNjY0
YzMxNDIuLjliMzFmMDE2MzE0OGFhNjBkYjM2OGVlNTcwNTJjZDQ1ZDJhN2U5NzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmgK
QEAgLTI3LDggKzI3LDYgQEAKIAogI2lmIEVOQUJMRShXRUJHTDIpCiAKLSNpbmNsdWRlICJXZWJH
TEJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkdMQ29udGV4dE9iamVjdC5oIgogI2luY2x1ZGUgIldl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM3
LDEyICszNSwxMSBAQCBjbGFzcyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OwogCiBjbGFzcyBXZWJH
TFZlcnRleEFycmF5T2JqZWN0IGZpbmFsIDogcHVibGljIFdlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IGNy
ZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVkFPVHlwZSk7CisgICAgc3RhdGljIFJl
ZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSYsIFR5cGUpOwogICAgIHZpcnR1YWwgfldlYkdMVmVydGV4QXJyYXlPYmplY3QoKTsKIHByaXZh
dGU6Ci0gICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
JiwgVkFPVHlwZSk7Ci0gICAgYm9vbCBpc1RyYW5zZm9ybUZlZWRiYWNrKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQotICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCos
IFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3Qo
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFR5cGUpOworICAgIHZvaWQgZGVsZXRlT2JqZWN0
SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIGZpbmFsOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCmluZGV4IDY5NjQ5YzYyZjZl
MWRiZWYyZjllZGE2MTdjNDI0MjRkZjczZjE3NWYuLmUxYWZiYjJhZGJjYjY3MTRhYmQ0MDYxM2Iz
OThiZTdjNGNiNGJjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKQEAgLTI0LDI0ICsyNCwyMiBAQAog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0QmFzZS5oIgogCiAjaWYgRU5BQkxFKFdFQkdMKQotI2luY2x1ZGUgIldlYkdMVmVydGV4QXJy
YXlPYmplY3RCYXNlLmgiCiAKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6Oldl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwg
VkFPVHlwZSB0eXBlKQotICAgIDogV2ViR0xDb250ZXh0T2JqZWN0KGN0eCkKK1dlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiBjb250ZXh0LCBUeXBlIHR5cGUpCisgICAgOiBXZWJHTENvbnRleHRPYmpl
Y3QoY29udGV4dCkKICAgICAsIG1fdHlwZSh0eXBlKQotICAgICwgbV9oYXNFdmVyQmVlbkJvdW5k
KGZhbHNlKQotICAgICwgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlcigwKQogewotICAgIG1fdmVy
dGV4QXR0cmliU3RhdGUucmVzaXplKGN0eC5nZXRNYXhWZXJ0ZXhBdHRyaWJzKCkpOworICAgIG1f
dmVydGV4QXR0cmliU3RhdGUucmVzaXplKGNvbnRleHQuZ2V0TWF4VmVydGV4QXR0cmlicygpKTsK
IH0KIAotdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0RWxlbWVudEFycmF5QnVm
ZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKK3ZvaWQgV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdEJhc2U6OnNldEVsZW1lbnRBcnJheUJ1ZmZlcihXZWJHTEJ1ZmZlciogYnVmZmVyKQog
ewogICAgIGlmIChidWZmZXIpCiAgICAgICAgIGJ1ZmZlci0+b25BdHRhY2hlZCgpOwpAQCAtNTEs
MTggKzQ5LDE3IEBAIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldEVsZW1lbnRB
cnJheUJ1ZmZlcihQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBiCiAgICAgCiB9CiAKLXZvaWQgV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1aW50IGlu
ZGV4LCBHQzNEc2l6ZWkgYnl0ZXNQZXJFbGVtZW50LCBHQzNEaW50IHNpemUsIEdDM0RlbnVtIHR5
cGUsIEdDM0Rib29sZWFuIG5vcm1hbGl6ZWQsIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIg
b2Zmc2V0LCBQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBidWZmZXIpCit2b2lkIFdlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShHQzNEdWludCBpbmRleCwgR0Mz
RHNpemVpIGJ5dGVzUGVyRWxlbWVudCwgR0MzRGludCBzaXplLCBHQzNEZW51bSB0eXBlLCBHQzNE
Ym9vbGVhbiBub3JtYWxpemVkLCBHQzNEc2l6ZWkgc3RyaWRlLCBHQzNEaW50cHRyIG9mZnNldCwg
V2ViR0xCdWZmZXImIGJ1ZmZlcikKIHsKICAgICBHQzNEc2l6ZWkgdmFsaWRhdGVkU3RyaWRlID0g
c3RyaWRlID8gc3RyaWRlIDogYnl0ZXNQZXJFbGVtZW50OwogICAgIAotICAgIFZlcnRleEF0dHJp
YlN0YXRlJiBzdGF0ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOworICAgIGF1dG8mIHN0
YXRlID0gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF07CiAgICAgCi0gICAgaWYgKGJ1ZmZlcikK
LSAgICAgICAgYnVmZmVyLT5vbkF0dGFjaGVkKCk7CisgICAgYnVmZmVyLm9uQXR0YWNoZWQoKTsK
ICAgICBpZiAoc3RhdGUuYnVmZmVyQmluZGluZykKICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGlu
Zy0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOwogICAgIAotICAg
IHN0YXRlLmJ1ZmZlckJpbmRpbmcgPSBidWZmZXI7CisgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9
ICZidWZmZXI7CiAgICAgc3RhdGUuYnl0ZXNQZXJFbGVtZW50ID0gYnl0ZXNQZXJFbGVtZW50Owog
ICAgIHN0YXRlLnNpemUgPSBzaXplOwogICAgIHN0YXRlLnR5cGUgPSB0eXBlOwpAQCAtNzIsMTcg
KzY5LDE3IEBAIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJp
YlN0YXRlKEdDM0R1aW50IGluZGV4LCBHQzNEc2l6ZWkKICAgICBzdGF0ZS5vZmZzZXQgPSBvZmZz
ZXQ7CiB9CiAKLXZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZlcihQ
YXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBidWZmZXIpCit2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3RCYXNlOjp1bmJpbmRCdWZmZXIoV2ViR0xCdWZmZXImIGJ1ZmZlcikKIHsKLSAgICBpZiAobV9i
b3VuZEVsZW1lbnRBcnJheUJ1ZmZlciA9PSBidWZmZXIpIHsKKyAgICBpZiAobV9ib3VuZEVsZW1l
bnRBcnJheUJ1ZmZlciA9PSAmYnVmZmVyKSB7CiAgICAgICAgIG1fYm91bmRFbGVtZW50QXJyYXlC
dWZmZXItPm9uRGV0YWNoZWQoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpKTsKICAgICAg
ICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCk7ICsraSkg
ewotICAgICAgICBWZXJ0ZXhBdHRyaWJTdGF0ZSYgc3RhdGUgPSBtX3ZlcnRleEF0dHJpYlN0YXRl
W2ldOwotICAgICAgICBpZiAoc3RhdGUuYnVmZmVyQmluZGluZyA9PSBidWZmZXIpIHsKLSAgICAg
ICAgICAgIGJ1ZmZlci0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkp
OworICAgICAgICBhdXRvJiBzdGF0ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaV07CisgICAgICAg
IGlmIChzdGF0ZS5idWZmZXJCaW5kaW5nID09ICZidWZmZXIpIHsKKyAgICAgICAgICAgIGJ1ZmZl
ci5vbkRldGFjaGVkKGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKSk7CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIGlmICghaSAmJiAhY29udGV4dCgpLT5pc0dMRVMyQ29tcGxpYW50KCkp
IHsKICAgICAgICAgICAgICAgICBzdGF0ZS5idWZmZXJCaW5kaW5nID0gY29udGV4dCgpLT5tX3Zl
cnRleEF0dHJpYjBCdWZmZXI7CkBAIC0xMDIsOCArOTksNyBAQCB2b2lkIFdlYkdMVmVydGV4QXJy
YXlPYmplY3RCYXNlOjp1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVmZmVy
KQogCiB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJEaXZp
c29yKEdDM0R1aW50IGluZGV4LCBHQzNEdWludCBkaXZpc29yKQogewotICAgIFZlcnRleEF0dHJp
YlN0YXRlJiBzdGF0ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOwotICAgIHN0YXRlLmRp
dmlzb3IgPSBkaXZpc29yOworICAgIG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdLmRpdmlzb3Ig
PSBkaXZpc29yOwogfQogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgKaW5kZXggMjkwYWI4ZDNkNzBmMzM3
YTg2MzVhMjMxNjI3NmQ5MWRjNDNkNGFhOS4uMDBiZTVmYmVmYjFjY2VjM2Y0YTE3MWJiNDQzYmU2
ZTI2ZGFmNjllOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oCkBAIC0zMiw2NSArMzIsNDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSA6IHB1YmxpYyBX
ZWJHTENvbnRleHRPYmplY3QgewogcHVibGljOgotICAgIGVudW0gVkFPVHlwZSB7Ci0gICAgICAg
IFZBT1R5cGVEZWZhdWx0LAotICAgICAgICBWQU9UeXBlVXNlciwKLSAgICB9OwotICAgIAotICAg
IHZpcnR1YWwgfldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKCkgeyB9CisgICAgZW51bSBjbGFz
cyBUeXBlIHsgRGVmYXVsdCwgVXNlciB9OwogCiAgICAgLy8gQ2FjaGVkIHZhbHVlcyBmb3IgdmVy
dGV4IGF0dHJpYiByYW5nZSBjaGVja3MKICAgICBzdHJ1Y3QgVmVydGV4QXR0cmliU3RhdGUgewot
ICAgICAgICBWZXJ0ZXhBdHRyaWJTdGF0ZSgpCi0gICAgICAgICAgICA6IGVuYWJsZWQoZmFsc2Up
Ci0gICAgICAgICAgICAsIGJ5dGVzUGVyRWxlbWVudCgwKQotICAgICAgICAgICAgLCBzaXplKDQp
Ci0gICAgICAgICAgICAsIHR5cGUoR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUKQotICAgICAgICAg
ICAgLCBub3JtYWxpemVkKGZhbHNlKQotICAgICAgICAgICAgLCBzdHJpZGUoMTYpCi0gICAgICAg
ICAgICAsIG9yaWdpbmFsU3RyaWRlKDApCi0gICAgICAgICAgICAsIG9mZnNldCgwKQotICAgICAg
ICAgICAgLCBkaXZpc29yKDApCi0gICAgICAgIHsKLSAgICAgICAgfQotICAgICAgICAKICAgICAg
ICAgYm9vbCBpc0JvdW5kKCkgY29uc3QgeyByZXR1cm4gYnVmZmVyQmluZGluZyAmJiBidWZmZXJC
aW5kaW5nLT5vYmplY3QoKTsgfQogICAgICAgICBib29sIHZhbGlkYXRlQmluZGluZygpIGNvbnN0
IHsgcmV0dXJuICFlbmFibGVkIHx8IGlzQm91bmQoKTsgfQogICAgICAgICAKLSAgICAgICAgYm9v
bCBlbmFibGVkOworICAgICAgICBib29sIGVuYWJsZWQgeyBmYWxzZSB9OwogICAgICAgICBSZWZQ
dHI8V2ViR0xCdWZmZXI+IGJ1ZmZlckJpbmRpbmc7Ci0gICAgICAgIEdDM0RzaXplaSBieXRlc1Bl
ckVsZW1lbnQ7Ci0gICAgICAgIEdDM0RpbnQgc2l6ZTsKLSAgICAgICAgR0MzRGVudW0gdHlwZTsK
LSAgICAgICAgYm9vbCBub3JtYWxpemVkOwotICAgICAgICBHQzNEc2l6ZWkgc3RyaWRlOwotICAg
ICAgICBHQzNEc2l6ZWkgb3JpZ2luYWxTdHJpZGU7Ci0gICAgICAgIEdDM0RpbnRwdHIgb2Zmc2V0
OwotICAgICAgICBHQzNEdWludCBkaXZpc29yOworICAgICAgICBHQzNEc2l6ZWkgYnl0ZXNQZXJF
bGVtZW50IHsgMCB9OworICAgICAgICBHQzNEaW50IHNpemUgeyA0IH07CisgICAgICAgIEdDM0Rl
bnVtIHR5cGUgeyBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQgfTsKKyAgICAgICAgYm9vbCBub3Jt
YWxpemVkIHsgZmFsc2UgfTsKKyAgICAgICAgR0MzRHNpemVpIHN0cmlkZSB7IDE2IH07CisgICAg
ICAgIEdDM0RzaXplaSBvcmlnaW5hbFN0cmlkZSB7IDAgfTsKKyAgICAgICAgR0MzRGludHB0ciBv
ZmZzZXQgeyAwIH07CisgICAgICAgIEdDM0R1aW50IGRpdmlzb3IgeyAwIH07CiAgICAgfTsKLSAg
ICAKLSAgICBib29sIGlzRGVmYXVsdE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBW
QU9UeXBlRGVmYXVsdDsgfQotICAgIAorCisgICAgYm9vbCBpc0RlZmF1bHRPYmplY3QoKSBjb25z
dCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6RGVmYXVsdDsgfQorCiAgICAgYm9vbCBoYXNFdmVy
QmVlbkJvdW5kKCkgY29uc3QgeyByZXR1cm4gb2JqZWN0KCkgJiYgbV9oYXNFdmVyQmVlbkJvdW5k
OyB9CiAgICAgdm9pZCBzZXRIYXNFdmVyQmVlbkJvdW5kKCkgeyBtX2hhc0V2ZXJCZWVuQm91bmQg
PSB0cnVlOyB9Ci0gICAgCi0gICAgUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gZ2V0RWxlbWVudEFy
cmF5QnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlcjsgfQot
ICAgIHZvaWQgc2V0RWxlbWVudEFycmF5QnVmZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+KTsK
LSAgICAKKworICAgIFdlYkdMQnVmZmVyKiBnZXRFbGVtZW50QXJyYXlCdWZmZXIoKSBjb25zdCB7
IHJldHVybiBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyLmdldCgpOyB9CisgICAgdm9pZCBzZXRF
bGVtZW50QXJyYXlCdWZmZXIoV2ViR0xCdWZmZXIqKTsKKwogICAgIFZlcnRleEF0dHJpYlN0YXRl
JiBnZXRWZXJ0ZXhBdHRyaWJTdGF0ZShpbnQgaW5kZXgpIHsgcmV0dXJuIG1fdmVydGV4QXR0cmli
U3RhdGVbaW5kZXhdOyB9Ci0gICAgdm9pZCBzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShHQzNEdWludCwg
R0MzRHNpemVpLCBHQzNEaW50LCBHQzNEZW51bSwgR0MzRGJvb2xlYW4sIEdDM0RzaXplaSwgR0Mz
RGludHB0ciwgUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4pOwotICAgIHZvaWQgdW5iaW5kQnVmZmVy
KFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+KTsKLSAgICAKKyAgICB2b2lkIHNldFZlcnRleEF0dHJp
YlN0YXRlKEdDM0R1aW50LCBHQzNEc2l6ZWksIEdDM0RpbnQsIEdDM0RlbnVtLCBHQzNEYm9vbGVh
biwgR0MzRHNpemVpLCBHQzNEaW50cHRyLCBXZWJHTEJ1ZmZlciYpOworICAgIHZvaWQgdW5iaW5k
QnVmZmVyKFdlYkdMQnVmZmVyJik7CisKICAgICB2b2lkIHNldFZlcnRleEF0dHJpYkRpdmlzb3Io
R0MzRHVpbnQgaW5kZXgsIEdDM0R1aW50IGRpdmlzb3IpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFZBT1R5
cGUpOworICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UmLCBUeXBlKTsKICAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0
M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZSA9IDA7Ci0gICAgCi0gICAgVkFPVHlwZSBt
X3R5cGU7Ci0gICAgYm9vbCBtX2hhc0V2ZXJCZWVuQm91bmQ7CisKKyAgICBUeXBlIG1fdHlwZTsK
KyAgICBib29sIG1faGFzRXZlckJlZW5Cb3VuZCB7IGZhbHNlIH07CiAgICAgUmVmUHRyPFdlYkdM
QnVmZmVyPiBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyOwogICAgIFZlY3RvcjxWZXJ0ZXhBdHRy
aWJTdGF0ZT4gbV92ZXJ0ZXhBdHRyaWJTdGF0ZTsKIH07Ci0gICAgCisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKaW5kZXggNWYzYjY1NTdhNzBiNWNiODQyYzBjMmVhNzc4
MTc4YWZhNjRjMDFmZi4uYWY1NTY1Y2Q5NDQ0MjRiNTNiODM1N2RiMmMwMTkwYmUxY2U1YjQ2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUy5jcHAKQEAgLTM0LDM3ICszNCwzNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVJlZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWQU9UeXBlIHR5
cGUpCitSZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUzo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIFR5cGUgdHlw
ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
KGN0eCwgdHlwZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdMVmVydGV4QXJyYXlP
YmplY3RPRVMoY29udGV4dCwgdHlwZSkpOwogfQogCi1XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0
eCwgVkFPVHlwZSB0eXBlKQotICAgIDogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoY3R4LCB0
eXBlKQorV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9F
UyhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBUeXBlIHR5cGUpCisgICAgOiBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShjb250ZXh0LCB0eXBlKQogewotICAgIEV4dGVuc2lv
bnMzRCYgZXh0ZW5zaW9ucyA9IGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+Z2V0RXh0
ZW5zaW9ucygpOwotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBWQU9UeXBlRGVmYXVs
dDoKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFR5cGU6OkRlZmF1bHQ6CiAgICAgICAg
IGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHNldE9iamVjdChleHRlbnNpb25zLmNyZWF0
ZVZlcnRleEFycmF5T0VTKCkpOworICAgIGNhc2UgVHlwZTo6VXNlcjoKKyAgICAgICAgc2V0T2Jq
ZWN0KHRoaXMtPmNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9ucygp
LmNyZWF0ZVZlcnRleEFycmF5T0VTKCkpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CiAKIFdl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVM6On5XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKCkKIHsK
LSAgICBkZWxldGVPYmplY3QoMCk7CisgICAgZGVsZXRlT2JqZWN0KG51bGxwdHIpOwogfQogCiB2
b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3ND
b250ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamVjdCBvYmplY3QpCiB7Ci0gICAgRXh0
ZW5zaW9uczNEJiBleHRlbnNpb25zID0gY29udGV4dDNkLT5nZXRFeHRlbnNpb25zKCk7CiAgICAg
c3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVEZWZhdWx0OgorICAgIGNhc2UgVHlw
ZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgZXh0ZW5z
aW9ucy5kZWxldGVWZXJ0ZXhBcnJheU9FUyhvYmplY3QpOworICAgIGNhc2UgVHlwZTo6VXNlcjoK
KyAgICAgICAgY29udGV4dDNkLT5nZXRFeHRlbnNpb25zKCkuZGVsZXRlVmVydGV4QXJyYXlPRVMo
b2JqZWN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgKaW5kZXggZDA4ZDIy
M2UzNTcwNjY5NGU5MWNhZTZhY2RjOGM0YmNhOWYxNjdlOS4uZjlhMmE1OGVjMjc0N2MyZDUwNjMw
YjViNmY2Y2ZmMDVhNjM2MGM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaApAQCAtMjUsMTkgKzI1LDE3IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKLSNpbmNsdWRlICJXZWJH
TENvbnRleHRPYmplY3QuaCIKICNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdMVmVydGV4QXJyYXlPYmplY3RP
RVMgZmluYWwgOiBwdWJsaWMgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gY3JlYXRlKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmLCBWQU9UeXBlKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVM+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVHlwZSk7
CiAgICAgdmlydHVhbCB+V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygpOwogcHJpdmF0ZToKLSAg
ICBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBW
QU9UeXBlKTsKLSAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQ
bGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBlKTsKKyAgICB2b2lkIGRlbGV0ZU9iamVj
dEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBmaW5hbDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Zm9ybXMvRmlsZUljb25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxl
SWNvbkxvYWRlci5jcHAKaW5kZXggOWJjZDQ3Zjc3OWUwNTFmYWE0MDU5MGM3OTNmYjIzZmM1MWIy
ZGUxZS4uNmM3M2UzMWFhZWY5ZTg2MDQ0OWE5OThjOGVlNzllNTU1Mzg0MDQwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5jcHAKQEAgLTM3LDEzICszNywx
MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB2b2lkIEZpbGVJY29uTG9hZGVyOjppbnZhbGlkYXRl
KCkKIHsKICAgICBBU1NFUlQobV9jbGllbnQpOwotICAgIG1fY2xpZW50ID0gMDsKKyAgICBtX2Ns
aWVudCA9IG51bGxwdHI7CiB9CiAKLXZvaWQgRmlsZUljb25Mb2FkZXI6Om5vdGlmeUZpbmlzaGVk
KFBhc3NSZWZQdHI8SWNvbj4gaWNvbikKK3ZvaWQgRmlsZUljb25Mb2FkZXI6Omljb25Mb2FkZWQo
UmVmUHRyPEljb24+JiYgaWNvbikKIHsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xp
ZW50LT51cGRhdGVSZW5kZXJpbmcoaWNvbik7CisgICAgICAgIG1fY2xpZW50LT5pY29uTG9hZGVk
KFdURk1vdmUoaWNvbikpOwogfQogCiBGaWxlSWNvbkxvYWRlcjo6RmlsZUljb25Mb2FkZXIoRmls
ZUljb25Mb2FkZXJDbGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmls
ZUljb25Mb2FkZXIuaAppbmRleCAzNTMxM2RlM2EyODUzNjBkOTg2N2I4MmE1YWFjYmMwN2QwNWU3
YmQ1Li4zMzY1MjM4YWNlZjdkOWNiNzk2M2VjZDliMmFlOTdkZjlhYjRiZTBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5oCkBAIC0zNCwxMyArMzQsMTIgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBGaWxlSWNvbkxvYWRlcjsKIGNsYXNzIElj
b247CiAKIGNsYXNzIEZpbGVJY29uTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5GaWxlSWNvbkxvYWRlckNsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZW5k
ZXJpbmcoUGFzc1JlZlB0cjxJY29uPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBpY29uTG9hZGVk
KFJlZlB0cjxJY29uPiYmKSA9IDA7CiB9OwogCiBjbGFzcyBGaWxlSWNvbkxvYWRlciB7CkBAIC00
OCw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBGaWxlSWNvbkxvYWRlcihGaWxlSWNv
bkxvYWRlckNsaWVudCYpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBub3RpZnlGaW5pc2hlZChQYXNzUmVmUHRyPEljb24+KTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGljb25Mb2FkZWQoUmVmUHRyPEljb24+JiYpOwogCiBwcml2YXRlOgogICAg
IEZpbGVJY29uTG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRleCA0NjdhMTM0ZDM2YmE1
M2E3MmJjMmQ3MGEyZWI5NzY4MWViOGY5M2ZiLi5mYjBlMTU1YjkwOTJhNzcxNWVmNjQyMjgzZGE2
MjdlNTg1MGU5NjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
Q29uc3RydWN0aW9uU2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC0xNzQsNyArMTc0LDcgQEAgc3RhdGljIGlubGluZSB2
b2lkIGV4ZWN1dGVUYXNrKEhUTUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYgdGFzaykKIAogdm9pZCBI
VE1MQ29uc3RydWN0aW9uU2l0ZTo6YXR0YWNoTGF0ZXIoQ29udGFpbmVyTm9kZSYgcGFyZW50LCBS
ZWY8Tm9kZT4mJiBjaGlsZCwgYm9vbCBzZWxmQ2xvc2luZykKIHsKLSAgICBBU1NFUlQoc2NyaXB0
aW5nQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpIHx8ICFpczxFbGVtZW50
PihjaGlsZC5nZXQoKSkgfHwgIXRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZG93bmNhc3Q8RWxl
bWVudD4oY2hpbGQucHRyKCkpKSk7CisgICAgQVNTRVJUKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93
ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSB8fCAhaXM8RWxlbWVudD4oY2hpbGQuZ2V0KCkpIHx8
ICFpc1NjcmlwdEVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4oY2hpbGQuZ2V0KCkpKSk7CiAgICAg
QVNTRVJUKHBsdWdpbkNvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSB8fCAh
Y2hpbGQtPmlzUGx1Z2luRWxlbWVudCgpKTsKIAogICAgIGlmIChzaG91bGRGb3N0ZXJQYXJlbnQo
KSkgewpAQCAtNTQxLDcgKzU0MSw3IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2Vy
dEZvcmVpZ25FbGVtZW50KEF0b21pY0hUTUxUb2tlbiYmIHRva2VuLCBjb25zdCBBCiAgICAgbm90
SW1wbGVtZW50ZWQoKTsgLy8gcGFyc2VFcnJvciB3aGVuIHhtbG5zIG9yIHhtbG5zOnhsaW5rIGFy
ZSB3cm9uZy4KIAogICAgIGF1dG8gZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQodG9rZW4sIG5hbWVz
cGFjZVVSSSk7Ci0gICAgaWYgKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250
ZW50UG9saWN5KSB8fCAhdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShlbGVtZW50LnB0cigpKSkK
KyAgICBpZiAoc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kp
IHx8ICFpc1NjcmlwdEVsZW1lbnQoZWxlbWVudC5nZXQoKSkpCiAgICAgICAgIGF0dGFjaExhdGVy
KGN1cnJlbnROb2RlKCksIGVsZW1lbnQuY29weVJlZigpLCB0b2tlbi5zZWxmQ2xvc2luZygpKTsK
ICAgICBpZiAoIXRva2VuLnNlbGZDbG9zaW5nKCkpCiAgICAgICAgIG1fb3BlbkVsZW1lbnRzLnB1
c2goSFRNTFN0YWNrSXRlbTo6Y3JlYXRlKFdURk1vdmUoZWxlbWVudCksIFdURk1vdmUodG9rZW4p
LCBuYW1lc3BhY2VVUkkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
RG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IGFjZWEwYWFhZDJjZGY0ODE3YTY1ZTdhZjlkN2M5ZmQz
NTdkZmMzMzcuLjdlMzAyMzhkMzVkN2ZkNmE1ZmQ2N2Q3ZGQwMDEyMGIzMDAzNzY2MjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApA
QCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSFRN
TFVua25vd25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgi
CisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTIwNSw3ICsyMDYsNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBh
dXNlZFRyZWVCdWlsZGVyKCkKICAgICAgICAgQVNTRVJUKCFtX3RyZWVCdWlsZGVyLT5oYXNQYXJz
ZXJCbG9ja2luZ1NjcmlwdFdvcmsoKSk7CiAgICAgICAgIC8vIFdlIHdpbGwgbm90IGhhdmUgYSBz
Y3JpcHRSdW5uZXIgd2hlbiBwYXJzaW5nIGEgRG9jdW1lbnRGcmFnbWVudC4KICAgICAgICAgaWYg
KG1fc2NyaXB0UnVubmVyKQotICAgICAgICAgICAgbV9zY3JpcHRSdW5uZXItPmV4ZWN1dGUoV1RG
TW92ZShzY3JpcHRFbGVtZW50KSwgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgICAgICAgICBt
X3NjcmlwdFJ1bm5lci0+ZXhlY3V0ZShzY3JpcHRFbGVtZW50LnJlbGVhc2VOb25OdWxsKCksIHNj
cmlwdFN0YXJ0UG9zaXRpb24pOwogICAgIH0KIH0KIApAQCAtNTAwLDcgKzUwMSw3IEBAIHZvaWQg
SFRNTERvY3VtZW50UGFyc2VyOjp3YXRjaEZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1Nj
cmlwdCkKICAgICAvLyBzZXRDbGllbnQgd291bGQgY2FsbCBub3RpZnlGaW5pc2hlZCBpZiB0aGUg
bG9hZCB3ZXJlIGNvbXBsZXRlLgogICAgIC8vIENhbGxlcnMgZG8gbm90IGV4cGVjdCB0byBiZSBy
ZS1lbnRlcmVkIGZyb20gdGhpcyBjYWxsLCBzbyB0aGV5IHNob3VsZAogICAgIC8vIG5vdCBhbiBh
bHJlYWR5LWxvYWRlZCBQZW5kaW5nU2NyaXB0LgotICAgIHBlbmRpbmdTY3JpcHQuc2V0Q2xpZW50
KHRoaXMpOworICAgIHBlbmRpbmdTY3JpcHQuc2V0Q2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBI
VE1MRG9jdW1lbnRQYXJzZXI6OnN0b3BXYXRjaGluZ0ZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVu
ZGluZ1NjcmlwdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxT
Y3JpcHRSdW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1
bm5lci5jcHAKaW5kZXggYzI1NmI0Mjk1NmNlNDgxMWE5NGYwY2IzNGI4ZWQ3MjU3MjVlOGY1NC4u
MWM4YzE2YzM3ZTU4YjY2MTIxMTljMDU5NTA5MzY4NWMzZWNlNDcwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKQEAgLTk5LDI5ICs5OSwy
OCBAQCBib29sIEhUTUxTY3JpcHRSdW5uZXI6OmlzUGVuZGluZ1NjcmlwdFJlYWR5KGNvbnN0IFBl
bmRpbmdTY3JpcHQmIHNjcmlwdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBIVE1MU2Ny
aXB0UnVubmVyOjpleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0KCkKK2lubGluZSB2b2lkIEhU
TUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQYXJzaW5nQmxvY2tpbmdTY3JpcHQoKQogewotICAgIEFT
U0VSVChtX2RvY3VtZW50KTsKLSAgICBBU1NFUlQoIWlzRXhlY3V0aW5nU2NyaXB0KCkpOwotICAg
IEFTU0VSVChtX2RvY3VtZW50LT5oYXZlU3R5bGVzaGVldHNMb2FkZWQoKSk7CisgICAgQVNTRVJU
KG1fcGFyc2VyQmxvY2tpbmdTY3JpcHQpOwogICAgIEFTU0VSVChpc1BlbmRpbmdTY3JpcHRSZWFk
eSgqbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCkpOworICAgIEFTU0VSVCghaXNFeGVjdXRpbmdTY3Jp
cHQoKSk7CiAKICAgICBJbnNlcnRpb25Qb2ludFJlY29yZCBpbnNlcnRpb25Qb2ludFJlY29yZCht
X2hvc3QuaW5wdXRTdHJlYW0oKSk7Ci0gICAgZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRj
aEV2ZW50KFdURk1vdmUobV9wYXJzZXJCbG9ja2luZ1NjcmlwdCkpOworICAgIGV4ZWN1dGVQZW5k
aW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChtX3BhcnNlckJsb2NraW5nU2NyaXB0LnJlbGVhc2VO
b25OdWxsKCkuZ2V0KCkpOwogfQogCi12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQZW5k
aW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChSZWZQdHI8UGVuZGluZ1NjcmlwdD4gcGVuZGluZ1Nj
cmlwdCkKK3ZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNw
YXRjaEV2ZW50KFBlbmRpbmdTY3JpcHQmIHBlbmRpbmdTY3JpcHQpCiB7CiAgICAgLy8gU3RvcCB3
YXRjaGluZyBsb2FkcyBiZWZvcmUgZXhlY3V0ZVNjcmlwdCB0byBwcmV2ZW50IHJlY3Vyc2lvbiBp
ZiB0aGUgc2NyaXB0IHJlbG9hZHMgaXRzZWxmLgotICAgIGlmIChwZW5kaW5nU2NyaXB0LT53YXRj
aGluZ0ZvckxvYWQoKSkKLSAgICAgICAgc3RvcFdhdGNoaW5nRm9yTG9hZCgqcGVuZGluZ1Njcmlw
dCk7CisgICAgaWYgKHBlbmRpbmdTY3JpcHQud2F0Y2hpbmdGb3JMb2FkKCkpCisgICAgICAgIHN0
b3BXYXRjaGluZ0ZvckxvYWQocGVuZGluZ1NjcmlwdCk7CiAKICAgICBpZiAoIWlzRXhlY3V0aW5n
U2NyaXB0KCkpCiAgICAgICAgIE1pY3JvdGFza1F1ZXVlOjptYWluVGhyZWFkUXVldWUoKS5wZXJm
b3JtTWljcm90YXNrQ2hlY2twb2ludCgpOwogCi0gICAgaWYgKGF1dG8qIHNjcmlwdEVsZW1lbnQg
PSB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5nU2NyaXB0LT5lbGVtZW50KCkpKSB7
CisgICAgewogICAgICAgICBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlciBuZXN0aW5nTGV2ZWxJbmNy
ZW1lbnRlcihtX3NjcmlwdE5lc3RpbmdMZXZlbCk7Ci0gICAgICAgIHNjcmlwdEVsZW1lbnQtPmV4
ZWN1dGVQZW5kaW5nU2NyaXB0KCpwZW5kaW5nU2NyaXB0KTsKKyAgICAgICAgcGVuZGluZ1Njcmlw
dC5lbGVtZW50KCkuZXhlY3V0ZVBlbmRpbmdTY3JpcHQocGVuZGluZ1NjcmlwdCk7CiAgICAgfQog
ICAgIEFTU0VSVCghaXNFeGVjdXRpbmdTY3JpcHQoKSk7CiB9CkBAIC0xNDAsMTUgKzEzOSwxNCBA
QCB2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnN0b3BXYXRjaGluZ0ZvckxvYWQoUGVuZGluZ1Njcmlw
dCYgcGVuZGluZ1NjcmlwdCkKIAogLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgbWF0Y2ggMTAuMi41
LjExICJBbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICdzY3JpcHQnIgogLy8gU2NyaXB0IGhh
bmRsaW5nIGxpdmVzIG91dHNpZGUgdGhlIHRyZWUgYnVpbGRlciB0byBrZWVwIHRoZSBlYWNoIGNs
YXNzIHNpbXBsZS4KLXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZShQYXNzUmVmUHRyPEVs
ZW1lbnQ+IHNjcmlwdEVsZW1lbnQsIGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3Np
dGlvbikKK3ZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZShSZWY8U2NyaXB0RWxlbWVudD4m
JiBlbGVtZW50LCBjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiB7Ci0g
ICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOwogICAgIC8vIEZJWE1FOiBJZiBzY3JpcHRpbmcgaXMg
ZGlzYWJsZWQsIGFsd2F5cyBqdXN0IHJldHVybi4KIAogICAgIGJvb2wgaGFkUHJlbG9hZFNjYW5u
ZXIgPSBtX2hvc3QuaGFzUHJlbG9hZFNjYW5uZXIoKTsKIAogICAgIC8vIFRyeSB0byBleGVjdXRl
IHRoZSBzY3JpcHQgZ2l2ZW4gdG8gdXMuCi0gICAgcnVuU2NyaXB0KHNjcmlwdEVsZW1lbnQuZ2V0
KCksIHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgIHJ1blNjcmlwdChlbGVtZW50LmdldCgpLCBz
Y3JpcHRTdGFydFBvc2l0aW9uKTsKIAogICAgIGlmIChoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdCgp
KSB7CiAgICAgICAgIGlmIChpc0V4ZWN1dGluZ1NjcmlwdCgpKQpAQCAtMjAxLDcgKzE5OSw3IEBA
IGJvb2wgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9yUGFyc2luZygp
CiAgICAgICAgICAgICB3YXRjaEZvckxvYWQobV9zY3JpcHRzVG9FeGVjdXRlQWZ0ZXJQYXJzaW5n
LmZpcnN0KCkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9Ci0gICAgICAg
IGV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChtX3NjcmlwdHNUb0V4ZWN1dGVB
ZnRlclBhcnNpbmcudGFrZUZpcnN0KCkpOworICAgICAgICBleGVjdXRlUGVuZGluZ1NjcmlwdEFu
ZERpc3BhdGNoRXZlbnQobV9zY3JpcHRzVG9FeGVjdXRlQWZ0ZXJQYXJzaW5nLnRha2VGaXJzdCgp
LmdldCgpKTsKICAgICAgICAgLy8gRklYTUU6IFdoYXQgaXMgdGhpcyBtX2RvY3VtZW50IGNoZWNr
IGZvcj8KICAgICAgICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMjA5LDE4ICsyMDcsMTcgQEAgYm9vbCBIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlU2Ny
aXB0c1dhaXRpbmdGb3JQYXJzaW5nKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIFJl
ZjxQZW5kaW5nU2NyaXB0PiByZXF1ZXN0UGVuZGluZ1NjcmlwdChFbGVtZW50KiBzY3JpcHQpCitz
dGF0aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IHJlcXVlc3RQZW5kaW5nU2NyaXB0KFNjcmlwdEVsZW1l
bnQmIHNjcmlwdEVsZW1lbnQpCiB7Ci0gICAgYXV0byYgc2NyaXB0RWxlbWVudCA9ICp0b1Njcmlw
dEVsZW1lbnRJZlBvc3NpYmxlKHNjcmlwdCk7CiAgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQud2ls
bEJlUGFyc2VyRXhlY3V0ZWQoKSk7CiAgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQubG9hZGFibGVT
Y3JpcHQoKSk7Ci0gICAgcmV0dXJuIFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZSgqc2NyaXB0LCAqc2Ny
aXB0RWxlbWVudC5sb2FkYWJsZVNjcmlwdCgpKTsKKyAgICByZXR1cm4gUGVuZGluZ1NjcmlwdDo6
Y3JlYXRlKHNjcmlwdEVsZW1lbnQsICpzY3JpcHRFbGVtZW50LmxvYWRhYmxlU2NyaXB0KCkpOwog
fQogCi12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQo
RWxlbWVudCogZWxlbWVudCkKK3ZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6cmVxdWVzdFBhcnNpbmdC
bG9ja2luZ1NjcmlwdChTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVtZW50KQogewogICAgIEFTU0VS
VCghbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCk7Ci0gICAgbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCA9
IHJlcXVlc3RQZW5kaW5nU2NyaXB0KGVsZW1lbnQpOworICAgIG1fcGFyc2VyQmxvY2tpbmdTY3Jp
cHQgPSByZXF1ZXN0UGVuZGluZ1NjcmlwdChzY3JpcHRFbGVtZW50KTsKICAgICBBU1NFUlQobV9w
YXJzZXJCbG9ja2luZ1NjcmlwdC0+bmVlZHNMb2FkaW5nKCkpOwogCiAgICAgLy8gV2Ugb25seSBj
YXJlIGFib3V0IGEgbG9hZCBjYWxsYmFjayBpZiBMb2FkYWJsZVNjcmlwdCBpcyBub3QgYWxyZWFk
eQpAQCAtMjMwLDU1ICsyMjcsNDQgQEAgdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0UGFy
c2luZ0Jsb2NraW5nU2NyaXB0KEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgICAgIHdhdGNoRm9yTG9h
ZCgqbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCk7CiB9CiAKLXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6
cmVxdWVzdERlZmVycmVkU2NyaXB0KEVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIEhUTUxTY3JpcHRS
dW5uZXI6OnJlcXVlc3REZWZlcnJlZFNjcmlwdChTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVtZW50
KQogewotICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IHJlcXVlc3RQZW5kaW5nU2NyaXB0KGVsZW1l
bnQpOworICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IHJlcXVlc3RQZW5kaW5nU2NyaXB0KHNjcmlw
dEVsZW1lbnQpOwogICAgIEFTU0VSVChwZW5kaW5nU2NyaXB0LT5uZWVkc0xvYWRpbmcoKSk7CiAg
ICAgbV9zY3JpcHRzVG9FeGVjdXRlQWZ0ZXJQYXJzaW5nLmFwcGVuZChXVEZNb3ZlKHBlbmRpbmdT
Y3JpcHQpKTsKIH0KIAogLy8gVGhpcyBtZXRob2QgaXMgbWVhbnQgdG8gbWF0Y2ggdGhlIEhUTUw1
IGRlZmluaXRpb24gb2YgInJ1bm5pbmcgYSBzY3JpcHQiCiAvLyBodHRwOi8vd3d3LndoYXR3Zy5v
cmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9zY3JpcHRpbmctMS5odG1s
I3J1bm5pbmctYS1zY3JpcHQKLXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6cnVuU2NyaXB0KEVsZW1l
bnQqIHNjcmlwdCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQordm9p
ZCBIVE1MU2NyaXB0UnVubmVyOjpydW5TY3JpcHQoU2NyaXB0RWxlbWVudCYgc2NyaXB0RWxlbWVu
dCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogewogICAgIEFTU0VS
VChtX2RvY3VtZW50KTsKICAgICBBU1NFUlQoIWhhc1BhcnNlckJsb2NraW5nU2NyaXB0KCkpOwot
ICAgIHsKLSAgICAgICAgU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxl
bWVudElmUG9zc2libGUoc2NyaXB0KTsKLQotICAgICAgICAvLyBUaGlzIGNvbnRhaW5zIGJvdGgg
YW5kIEFTU0VSVElPTiBhbmQgYSBudWxsIGNoZWNrIHNpbmNlIHdlIHNob3VsZCBub3QKLSAgICAg
ICAgLy8gYmUgZ2V0dGluZyBpbnRvIHRoZSBjYXNlIG9mIGEgbnVsbCBzY3JpcHQgZWxlbWVudCwg
YnV0IHNlZW0gdG8gYmUgZnJvbQotICAgICAgICAvLyB0aW1lIHRvIHRpbWUuIFRoZSBhc3NlcnRp
b24gaXMgbGVmdCBpbiB0byBoZWxwIGZpbmQgdGhvc2UgY2FzZXMgYW5kCi0gICAgICAgIC8vIGlz
IGJlaW5nIHRyYWNrZWQgYnkgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MDU1OT4uCi0gICAgICAgIEFTU0VSVChzY3JpcHRFbGVtZW50KTsKLSAgICAgICAgaWYgKCFz
Y3JpcHRFbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vIEZJWE1FOiBU
aGlzIG1heSBiZSB0b28gYWdyZXNzaXZlIGFzIHdlIGFsd2F5cyBkZWxpdmVyIG11dGF0aW9ucyBh
dAotICAgICAgICAvLyBldmVyeSBzY3JpcHQgZWxlbWVudCwgZXZlbiBpZiBpdCdzIG5vdCByZWFk
eSB0byBleGVjdXRlIHlldC4gVGhlcmUncwotICAgICAgICAvLyB1bmZvcnR1YW50ZWx5IG5vIG9i
dmlvdXMgd2F5IHRvIHRlbGwgaWYgcHJlcGFyZVNjcmlwdCBpcyBnb2luZyB0bwotICAgICAgICAv
LyBleGVjdXRlIHRoZSBzY3JpcHQgZnJvbSBvdXQgaGVyZS4KLSAgICAgICAgaWYgKCFpc0V4ZWN1
dGluZ1NjcmlwdCgpKQotICAgICAgICAgICAgTWljcm90YXNrUXVldWU6Om1haW5UaHJlYWRRdWV1
ZSgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7Ci0KLSAgICAgICAgSW5zZXJ0aW9uUG9p
bnRSZWNvcmQgaW5zZXJ0aW9uUG9pbnRSZWNvcmQobV9ob3N0LmlucHV0U3RyZWFtKCkpOwotICAg
ICAgICBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlciBuZXN0aW5nTGV2ZWxJbmNyZW1lbnRlcihtX3Nj
cmlwdE5lc3RpbmdMZXZlbCk7Ci0KLSAgICAgICAgc2NyaXB0RWxlbWVudC0+cHJlcGFyZVNjcmlw
dChzY3JpcHRTdGFydFBvc2l0aW9uKTsKIAotICAgICAgICBpZiAoIXNjcmlwdEVsZW1lbnQtPndp
bGxCZVBhcnNlckV4ZWN1dGVkKCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6
IFRoaXMgbWF5IGJlIHRvbyBhZ3Jlc3NpdmUgYXMgd2UgYWx3YXlzIGRlbGl2ZXIgbXV0YXRpb25z
IGF0CisgICAgLy8gZXZlcnkgc2NyaXB0IGVsZW1lbnQsIGV2ZW4gaWYgaXQncyBub3QgcmVhZHkg
dG8gZXhlY3V0ZSB5ZXQuIFRoZXJlJ3MKKyAgICAvLyB1bmZvcnR1YW50ZWx5IG5vIG9idmlvdXMg
d2F5IHRvIHRlbGwgaWYgcHJlcGFyZVNjcmlwdCBpcyBnb2luZyB0bworICAgIC8vIGV4ZWN1dGUg
dGhlIHNjcmlwdCBmcm9tIG91dCBoZXJlLgorICAgIGlmICghaXNFeGVjdXRpbmdTY3JpcHQoKSkK
KyAgICAgICAgTWljcm90YXNrUXVldWU6Om1haW5UaHJlYWRRdWV1ZSgpLnBlcmZvcm1NaWNyb3Rh
c2tDaGVja3BvaW50KCk7CiAKLSAgICAgICAgaWYgKHNjcmlwdEVsZW1lbnQtPndpbGxFeGVjdXRl
V2hlbkRvY3VtZW50RmluaXNoZWRQYXJzaW5nKCkpCi0gICAgICAgICAgICByZXF1ZXN0RGVmZXJy
ZWRTY3JpcHQoc2NyaXB0KTsKLSAgICAgICAgZWxzZSBpZiAoc2NyaXB0RWxlbWVudC0+cmVhZHlU
b0JlUGFyc2VyRXhlY3V0ZWQoKSkgewotICAgICAgICAgICAgaWYgKG1fc2NyaXB0TmVzdGluZ0xl
dmVsID09IDEpCi0gICAgICAgICAgICAgICAgbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCA9IFBlbmRp
bmdTY3JpcHQ6OmNyZWF0ZSgqc2NyaXB0LCBzY3JpcHRTdGFydFBvc2l0aW9uKTsKLSAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzY3JpcHRFbGVtZW50LT5leGVjdXRlQ2xhc3NpY1Nj
cmlwdChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdC0+dGV4dENvbnRlbnQoKSwgZG9jdW1lbnRVUkxG
b3JTY3JpcHRFeGVjdXRpb24obV9kb2N1bWVudCksIHNjcmlwdFN0YXJ0UG9zaXRpb24pKTsKLSAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICByZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KHNj
cmlwdCk7Ci0gICAgfQorICAgIEluc2VydGlvblBvaW50UmVjb3JkIGluc2VydGlvblBvaW50UmVj
b3JkKG1faG9zdC5pbnB1dFN0cmVhbSgpKTsKKyAgICBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlciBu
ZXN0aW5nTGV2ZWxJbmNyZW1lbnRlcihtX3NjcmlwdE5lc3RpbmdMZXZlbCk7CisKKyAgICBzY3Jp
cHRFbGVtZW50LnByZXBhcmVTY3JpcHQoc2NyaXB0U3RhcnRQb3NpdGlvbik7CisKKyAgICBpZiAo
IXNjcmlwdEVsZW1lbnQud2lsbEJlUGFyc2VyRXhlY3V0ZWQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKHNjcmlwdEVsZW1lbnQud2lsbEV4ZWN1dGVXaGVuRG9jdW1lbnRGaW5pc2hlZFBh
cnNpbmcoKSkKKyAgICAgICAgcmVxdWVzdERlZmVycmVkU2NyaXB0KHNjcmlwdEVsZW1lbnQpOwor
ICAgIGVsc2UgaWYgKHNjcmlwdEVsZW1lbnQucmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQoKSkgewor
ICAgICAgICBpZiAobV9zY3JpcHROZXN0aW5nTGV2ZWwgPT0gMSkKKyAgICAgICAgICAgIG1fcGFy
c2VyQmxvY2tpbmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxlbWVudCwg
c2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNjcmlwdEVs
ZW1lbnQuZXhlY3V0ZUNsYXNzaWNTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRFbGVtZW50
LmVsZW1lbnQoKS50ZXh0Q29udGVudCgpLCBkb2N1bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlvbiht
X2RvY3VtZW50KSwgc2NyaXB0U3RhcnRQb3NpdGlvbikpOworICAgIH0gZWxzZQorICAgICAgICBy
ZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KHNjcmlwdEVsZW1lbnQpOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmgKaW5kZXggNzY4MDBk
NzEzY2U3ZDJlNDYzNWE2NjIzNWIxNjdjMTlmNDU3YzgwMy4uYzNlMTU0NzI0YzRkNjFkYTc0ZmFh
ZWMxMzdjOWRiMDFjNDY0YWVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFNjcmlwdFJ1bm5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxTY3JpcHRSdW5uZXIuaApAQCAtMzIsOSArMzIsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBEb2N1bWVudDsKLWNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEhU
TUxTY3JpcHRSdW5uZXJIb3N0OworY2xhc3MgU2NyaXB0RWxlbWVudDsKIGNsYXNzIFNjcmlwdFNv
dXJjZUNvZGU7CiAKIGNsYXNzIEhUTUxTY3JpcHRSdW5uZXIgewpAQCAtNDYsNyArNDYsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkZXRhY2goKTsKIAogICAgIC8vIFByb2Nlc3NlcyB0aGUgcGFzc2Vk
IGluIHNjcmlwdCBhbmQgYW55IHBlbmRpbmcgc2NyaXB0cyBpZiBwb3NzaWJsZS4KLSAgICB2b2lk
IGV4ZWN1dGUoUGFzc1JlZlB0cjxFbGVtZW50PiBzY3JpcHRUb1Byb2Nlc3MsIGNvbnN0IFRleHRQ
b3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgdm9pZCBleGVjdXRlKFJlZjxTY3Jp
cHRFbGVtZW50PiYmLCBjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pOwog
CiAgICAgdm9pZCBleGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JMb2FkKFBlbmRpbmdTY3JpcHQmKTsK
ICAgICBib29sIGhhc1NjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHMoKSBjb25zdCB7IHJldHVy
biBtX2hhc1NjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHM7IH0KQEAgLTYwLDEzICs2MCwxMyBA
QCBwcml2YXRlOgogICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OwogCiAgICAgdm9pZCBleGVjdXRl
UGFyc2luZ0Jsb2NraW5nU2NyaXB0KCk7Ci0gICAgdm9pZCBleGVjdXRlUGVuZGluZ1NjcmlwdEFu
ZERpc3BhdGNoRXZlbnQoUmVmUHRyPFBlbmRpbmdTY3JpcHQ+KTsKKyAgICB2b2lkIGV4ZWN1dGVQ
ZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChQZW5kaW5nU2NyaXB0Jik7CiAgICAgdm9pZCBl
eGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0cygpOwogCi0gICAgdm9pZCByZXF1ZXN0UGFyc2lu
Z0Jsb2NraW5nU2NyaXB0KEVsZW1lbnQqKTsKLSAgICB2b2lkIHJlcXVlc3REZWZlcnJlZFNjcmlw
dChFbGVtZW50Kik7CisgICAgdm9pZCByZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KFNjcmlw
dEVsZW1lbnQmKTsKKyAgICB2b2lkIHJlcXVlc3REZWZlcnJlZFNjcmlwdChTY3JpcHRFbGVtZW50
Jik7CiAKLSAgICB2b2lkIHJ1blNjcmlwdChFbGVtZW50KiwgY29uc3QgVGV4dFBvc2l0aW9uJiBz
Y3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICB2b2lkIHJ1blNjcmlwdChTY3JpcHRFbGVtZW50Jiwg
Y29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKIAogICAgIC8vIEhlbHBl
cnMgZm9yIGRlYWxpbmcgd2l0aCBIVE1MU2NyaXB0UnVubmVySG9zdAogICAgIHZvaWQgd2F0Y2hG
b3JMb2FkKFBlbmRpbmdTY3JpcHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4IDQ1MjRjMWVhYWNmZDkzMjkwMjZjNjZjYjcyYWI1NGIw
MDhmNjJhNGMuLjY3NmFiOWVmNmI4MWFjZjYwNGExYTM3MGE5ZDA2MGM5YTAwM2QxMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtMzUs
MTAgKzM1LDEyIEBACiAjaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2lu
Y2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlRWxlbWVudC5o
IgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkxvY2Fs
aXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlNW
R1NjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJYTGlua05hbWVzLmgiCiAjaW5jbHVkZSAiWE1M
TlNOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCkBAIC01NywxMCArNTksMTIgQEAgQ3Vz
dG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGE6OkN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRh
KFJlZjxKU0N1c3RvbUVsZW1lbnQKICAgICA6IGVsZW1lbnRJbnRlcmZhY2UoV1RGTW92ZShjdXN0
b21FbGVtZW50SW50ZXJmYWNlKSkKICAgICAsIG5hbWUobmFtZSkKICAgICAsIGF0dHJpYnV0ZXMo
V1RGTW92ZShhdHRyaWJ1dGVzKSkKLXsgfQoreworfQogCiBDdXN0b21FbGVtZW50Q29uc3RydWN0
aW9uRGF0YTo6fkN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhKCkKLXsgfQoreworfQogCiBu
YW1lc3BhY2UgewogCkBAIC0zMTgsNyArMzIyLDcgQEAgaW5saW5lIEhUTUxTdGFja0l0ZW0mIEhU
TUxUcmVlQnVpbGRlcjo6RnJhZ21lbnRQYXJzaW5nQ29udGV4dDo6Y29udGV4dEVsZW1lbnRTdGEK
ICAgICByZXR1cm4gKm1fY29udGV4dEVsZW1lbnRTdGFja0l0ZW07CiB9CiAKLVJlZlB0cjxFbGVt
ZW50PiBIVE1MVHJlZUJ1aWxkZXI6OnRha2VTY3JpcHRUb1Byb2Nlc3MoVGV4dFBvc2l0aW9uJiBz
Y3JpcHRTdGFydFBvc2l0aW9uKQorUmVmUHRyPFNjcmlwdEVsZW1lbnQ+IEhUTUxUcmVlQnVpbGRl
cjo6dGFrZVNjcmlwdFRvUHJvY2VzcyhUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24p
CiB7CiAgICAgQVNTRVJUKCFtX2Rlc3Ryb3llZCk7CiAKQEAgLTIwNTcsNyArMjA2MSw3IEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiYmIHRva2Vu
KQogICAgICAgICAgICAgLy8gUGF1c2Ugb3Vyc2VsdmVzIHNvIHRoYXQgcGFyc2luZyBzdG9wcyB1
bnRpbCB0aGUgc2NyaXB0IGNhbiBiZSBwcm9jZXNzZWQgYnkgdGhlIGNhbGxlci4KICAgICAgICAg
ICAgIEFTU0VSVChtX3RyZWUuY3VycmVudFN0YWNrSXRlbSgpLmhhc1RhZ05hbWUoc2NyaXB0VGFn
KSk7CiAgICAgICAgICAgICBpZiAoc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChtX3RyZWUucGFy
c2VyQ29udGVudFBvbGljeSgpKSkKLSAgICAgICAgICAgICAgICBtX3NjcmlwdFRvUHJvY2VzcyA9
ICZtX3RyZWUuY3VycmVudEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBtX3NjcmlwdFRvUHJv
Y2VzcyA9ICZkb3duY2FzdDxIVE1MU2NyaXB0RWxlbWVudD4obV90cmVlLmN1cnJlbnRFbGVtZW50
KCkpOwogICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLnBvcCgpOwogICAgICAgICAg
ICAgbV9pbnNlcnRpb25Nb2RlID0gbV9vcmlnaW5hbEluc2VydGlvbk1vZGU7CiAKQEAgLTI3ODcs
NyArMjc5MSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVG9rZW5JbkZvcmVpZ25D
b250ZW50KEF0b21pY0hUTUxUb2tlbiYmIHRva2VuKQogCiAgICAgICAgIGlmICh0b2tlbi5uYW1l
KCkgPT0gU1ZHTmFtZXM6OnNjcmlwdFRhZyAmJiBtX3RyZWUuY3VycmVudFN0YWNrSXRlbSgpLmhh
c1RhZ05hbWUoU1ZHTmFtZXM6OnNjcmlwdFRhZykpIHsKICAgICAgICAgICAgIGlmIChzY3JpcHRp
bmdDb250ZW50SXNBbGxvd2VkKG1fdHJlZS5wYXJzZXJDb250ZW50UG9saWN5KCkpKQotICAgICAg
ICAgICAgICAgIG1fc2NyaXB0VG9Qcm9jZXNzID0gJm1fdHJlZS5jdXJyZW50RWxlbWVudCgpOwor
ICAgICAgICAgICAgICAgIG1fc2NyaXB0VG9Qcm9jZXNzID0gJmRvd25jYXN0PFNWR1NjcmlwdEVs
ZW1lbnQ+KG1fdHJlZS5jdXJyZW50RWxlbWVudCgpKTsKICAgICAgICAgICAgIG1fdHJlZS5vcGVu
RWxlbWVudHMoKS5wb3AoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAppbmRleCBkNzA5MjlmNjBh
NjBiYzY1OTZmNjc5MGNkMDBkZWYxNmY5ODU1OWE1Li4yMTNiZDI3OTRmODM3YWY4MjA0MGJlNGE2
Yzc0NGZlNmRmYzg0M2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJl
ZUJ1aWxkZXIuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zNSw2ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlOwogY2xhc3MgSFRNTERvY3VtZW50UGFyc2VyOwor
Y2xhc3MgU2NyaXB0RWxlbWVudDsKIAogc3RydWN0IEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25E
YXRhIHsKICAgICBDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YShSZWY8SlNDdXN0b21FbGVt
ZW50SW50ZXJmYWNlPiYmLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxBdHRyaWJ1
dGU+JiYpOwpAQCAtNjIsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNQYXJzZXJCbG9j
a2luZ1NjcmlwdFdvcmsoKSBjb25zdDsKIAogICAgIC8vIE11c3QgYmUgY2FsbGVkIHRvIHRha2Ug
dGhlIHBhcnNlci1ibG9ja2luZyBzY3JpcHQgYmVmb3JlIGNhbGxpbmcgdGhlIHBhcnNlciBhZ2Fp
bi4KLSAgICBSZWZQdHI8RWxlbWVudD4gdGFrZVNjcmlwdFRvUHJvY2VzcyhUZXh0UG9zaXRpb24m
IHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgIFJlZlB0cjxTY3JpcHRFbGVtZW50PiB0YWtlU2Ny
aXB0VG9Qcm9jZXNzKFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8Q3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGE+IHRha2VDdXN0b21F
bGVtZW50Q29uc3RydWN0aW9uRGF0YSgpIHsgcmV0dXJuIFdURk1vdmUobV9jdXN0b21FbGVtZW50
VG9Db25zdHJ1Y3QpOyB9CiAgICAgdm9pZCBkaWRDcmVhdGVDdXN0b21PckNhbGxiYWNrRWxlbWVu
dChSZWY8RWxlbWVudD4mJiwgQ3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGEmKTsKQEAgLTIw
Niw3ICsyMDcsNyBAQCBwcml2YXRlOgogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5v
cmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2NvbmNlcHQtcGVuZGluZy10YWJsZS1jaGFyLXRva2Vu
cwogICAgIFN0cmluZ0J1aWxkZXIgbV9wZW5kaW5nVGFibGVDaGFyYWN0ZXJzOwogCi0gICAgUmVm
UHRyPEVsZW1lbnQ+IG1fc2NyaXB0VG9Qcm9jZXNzOyAvLyA8c2NyaXB0PiB0YWcgd2hpY2ggbmVl
ZHMgcHJvY2Vzc2luZyBiZWZvcmUgcmVzdW1pbmcgdGhlIHBhcnNlci4KKyAgICBSZWZQdHI8U2Ny
aXB0RWxlbWVudD4gbV9zY3JpcHRUb1Byb2Nlc3M7IC8vIDxzY3JpcHQ+IHRhZyB3aGljaCBuZWVk
cyBwcm9jZXNzaW5nIGJlZm9yZSByZXN1bWluZyB0aGUgcGFyc2VyLgogICAgIFRleHRQb3NpdGlv
biBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0UG9zaXRpb247IC8vIFN0YXJ0aW5nIGxpbmUgbnVtYmVy
IG9mIHRoZSBzY3JpcHQgdGFnIG5lZWRpbmcgcHJvY2Vzc2luZy4KIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YT4gbV9jdXN0b21FbGVtZW50VG9Db25z
dHJ1Y3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1l
bnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFy
c2VyLmNwcAppbmRleCBhZDVmNmU3OGUzODFhYWRjY2M2YjkxYmE5N2NhNDI1NTgwNGNiOTcwLi5m
OTg4MjViMjA2MDk3ZjJjNGE4YzFmZTg0YjQwYjZkOGYwYTVlYWNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAKQEAgLTI2LDYgKzI2
LDcgQEAKICNpbmNsdWRlICJUZXh0RG9jdW1lbnRQYXJzZXIuaCIKIAogI2luY2x1ZGUgIkhUTUxU
cmVlQnVpbGRlci5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRp
dG9yRGVsZWdhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRl
bGVnYXRlLmNwcAppbmRleCAzZjQzZTA0ZDVkZWViN2QyOTMxMTZlOGRlYzIzYzdiMGJmN2ZiNzc5
Li5mMjk3NDRiZmYxNzQ1YzliMTYwOWQ0Zjg1MzA4MTVmOTQ5YmU1NDBkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKQEAgLTY5LDIy
ICs2OSwyMiBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBidWlsZENvbnNvbGVFcnJvcihjb25zdCBY
U1NJbmZvJiB4c3NJbmZvKQogICAgIHJldHVybiBtZXNzYWdlLnRvU3RyaW5nKCk7CiB9CiAKLVBh
c3NSZWZQdHI8Rm9ybURhdGE+IFhTU0F1ZGl0b3JEZWxlZ2F0ZTo6Z2VuZXJhdGVWaW9sYXRpb25S
ZXBvcnQoY29uc3QgWFNTSW5mbyYgeHNzSW5mbykKK1JlZjxGb3JtRGF0YT4gWFNTQXVkaXRvckRl
bGVnYXRlOjpnZW5lcmF0ZVZpb2xhdGlvblJlcG9ydChjb25zdCBYU1NJbmZvJiB4c3NJbmZvKQog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBGcmFtZUxvYWRlciYgZnJhbWVM
b2FkZXIgPSBtX2RvY3VtZW50LmZyYW1lKCktPmxvYWRlcigpOworICAgIGF1dG8mIGZyYW1lTG9h
ZGVyID0gbV9kb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKTsKICAgICBTdHJpbmcgaHR0cEJvZHk7
CiAgICAgaWYgKGZyYW1lTG9hZGVyLmRvY3VtZW50TG9hZGVyKCkpIHsKLSAgICAgICAgaWYgKEZv
cm1EYXRhKiBmb3JtRGF0YSA9IGZyYW1lTG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPm9yaWdpbmFs
UmVxdWVzdCgpLmh0dHBCb2R5KCkpCisgICAgICAgIGlmIChhdXRvKiBmb3JtRGF0YSA9IGZyYW1l
TG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPm9yaWdpbmFsUmVxdWVzdCgpLmh0dHBCb2R5KCkpCiAg
ICAgICAgICAgICBodHRwQm9keSA9IGZvcm1EYXRhLT5mbGF0dGVuVG9TdHJpbmcoKTsKICAgICB9
CiAKLSAgICBSZWY8SW5zcGVjdG9yT2JqZWN0PiByZXBvcnREZXRhaWxzID0gSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKTsKKyAgICBhdXRvIHJlcG9ydERldGFpbHMgPSBJbnNwZWN0b3JPYmplY3Q6
OmNyZWF0ZSgpOwogICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygicmVxdWVzdC11cmwiLCB4
c3NJbmZvLm1fb3JpZ2luYWxVUkwpOwogICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygicmVx
dWVzdC1ib2R5IiwgaHR0cEJvZHkpOwogCi0gICAgUmVmPEluc3BlY3Rvck9iamVjdD4gcmVwb3J0
T2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBhdXRvIHJlcG9ydE9iamVj
dCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAgICAgcmVwb3J0T2JqZWN0LT5zZXRPYmpl
Y3QoInhzcy1yZXBvcnQiLCBXVEZNb3ZlKHJlcG9ydERldGFpbHMpKTsKIAogICAgIHJldHVybiBG
b3JtRGF0YTo6Y3JlYXRlKHJlcG9ydE9iamVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVs
ZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5o
CmluZGV4IDBhZTI3NGIzMTkyZGZhNDdhNjNjZTk2YTJhOTc5NDY1ZWM4ODA4ZWYuLjk3YzgwZGM2
ZTM1MmI5ZGViOTE3YzMyM2Y5YzA2MDUzMjNmZTU3NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oCkBAIC01OSw3ICs1OSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFJlcG9ydFVSTChjb25zdCBVUkwmIHVybCkgeyBtX3JlcG9ydFVSTCA9
IHVybDsgfQogCiBwcml2YXRlOgotICAgIFBhc3NSZWZQdHI8Rm9ybURhdGE+IGdlbmVyYXRlVmlv
bGF0aW9uUmVwb3J0KGNvbnN0IFhTU0luZm8mKTsKKyAgICBSZWY8Rm9ybURhdGE+IGdlbmVyYXRl
VmlvbGF0aW9uUmVwb3J0KGNvbnN0IFhTU0luZm8mKTsKIAogICAgIERvY3VtZW50JiBtX2RvY3Vt
ZW50OwogICAgIGJvb2wgbV9kaWRTZW5kTm90aWZpY2F0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2suY3BwCmluZGV4IDhjMzU2Zjc5MTVkNDk4Y2UzNDEyZjc5ODgyZjhk
MDYwYjA4NTYxOTIuLjUxYWJjMzZmYmMwY2RjOTJjYzlmNWM5YzhmZGE0MTczY2E5NWUwOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcApAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC0zMCwxMyArMzAsMTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
QXVkaW9UcmFjay5oIgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiQXVk
aW9UcmFjay5oIgotCi0jaW5jbHVkZSAiQXVkaW9UcmFja0xpc3QuaCIKLSNpbmNsdWRlICJFdmVu
dC5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KIApAQCAtNzgsMTAgKzc1LDEwIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgQXVk
aW9UcmFjazo6Y29tbWVudGFyeUtleXdvcmQoKQogICAgIHJldHVybiBjb21tZW50YXJ5OwogfQog
Ci1BdWRpb1RyYWNrOjpBdWRpb1RyYWNrKEF1ZGlvVHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1Jl
ZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQotICAgIDogTWVkaWFUcmFja0Jh
c2UoTWVkaWFUcmFja0Jhc2U6OkF1ZGlvVHJhY2ssIHRyYWNrUHJpdmF0ZS0+aWQoKSwgdHJhY2tQ
cml2YXRlLT5sYWJlbCgpLCB0cmFja1ByaXZhdGUtPmxhbmd1YWdlKCkpCi0gICAgLCBtX2VuYWJs
ZWQodHJhY2tQcml2YXRlLT5lbmFibGVkKCkpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCitBdWRp
b1RyYWNrOjpBdWRpb1RyYWNrKEF1ZGlvVHJhY2tDbGllbnQmIGNsaWVudCwgQXVkaW9UcmFja1By
aXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAgICA6IE1lZGlhVHJhY2tCYXNlKE1lZGlhVHJhY2tCYXNl
OjpBdWRpb1RyYWNrLCB0cmFja1ByaXZhdGUuaWQoKSwgdHJhY2tQcml2YXRlLmxhYmVsKCksIHRy
YWNrUHJpdmF0ZS5sYW5ndWFnZSgpKQorICAgICwgbV9lbmFibGVkKHRyYWNrUHJpdmF0ZS5lbmFi
bGVkKCkpCisgICAgLCBtX2NsaWVudCgmY2xpZW50KQogICAgICwgbV9wcml2YXRlKHRyYWNrUHJp
dmF0ZSkKIHsKICAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKQEAgLTkzLDE5ICs5MCwx
NiBAQCBBdWRpb1RyYWNrOjp+QXVkaW9UcmFjaygpCiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQo
bnVsbHB0cik7CiB9CiAKLXZvaWQgQXVkaW9UcmFjazo6c2V0UHJpdmF0ZShQYXNzUmVmUHRyPEF1
ZGlvVHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCit2b2lkIEF1ZGlvVHJhY2s6OnNldFByaXZh
dGUoQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKLSAgICBBU1NFUlQobV9wcml2
YXRlKTsKLSAgICBBU1NFUlQodHJhY2tQcml2YXRlKTsKLQotICAgIGlmIChtX3ByaXZhdGUgPT0g
dHJhY2tQcml2YXRlKQorICAgIGlmIChtX3ByaXZhdGUucHRyKCkgPT0gJnRyYWNrUHJpdmF0ZSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiAg
ICAgbV9wcml2YXRlID0gdHJhY2tQcml2YXRlOworICAgIG1fcHJpdmF0ZS0+c2V0RW5hYmxlZCht
X2VuYWJsZWQpOwogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwogCi0gICAgbV9wcml2
YXRlLT5zZXRFbmFibGVkKG1fZW5hYmxlZCk7CiAgICAgdXBkYXRlS2luZEZyb21Qcml2YXRlKCk7
CiB9CiAKQEAgLTExOSw1NCArMTEzLDQ3IEBAIGJvb2wgQXVkaW9UcmFjazo6aXNWYWxpZEtpbmQo
Y29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkgY29uc3QKICAgICAgICAgfHwgdmFsdWUgPT0gY29t
bWVudGFyeUtleXdvcmQoKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjpzZXRFbmFibGVkKGNvbnN0
IGJvb2wgZW5hYmxlZCkKK3ZvaWQgQXVkaW9UcmFjazo6c2V0RW5hYmxlZChib29sIGVuYWJsZWQp
CiB7CiAgICAgaWYgKG1fZW5hYmxlZCA9PSBlbmFibGVkKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtX2VuYWJsZWQgPSBlbmFibGVkOwogICAgIG1fcHJpdmF0ZS0+c2V0RW5hYmxlZChlbmFibGVk
KTsKLQotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmF1ZGlvVHJhY2tFbmFi
bGVkQ2hhbmdlZCh0aGlzKTsKIH0KIAotc2l6ZV90IEF1ZGlvVHJhY2s6OmluYmFuZFRyYWNrSW5k
ZXgoKQorc2l6ZV90IEF1ZGlvVHJhY2s6OmluYmFuZFRyYWNrSW5kZXgoKSBjb25zdAogewotICAg
IEFTU0VSVChtX3ByaXZhdGUpOwogICAgIHJldHVybiBtX3ByaXZhdGUtPnRyYWNrSW5kZXgoKTsK
IH0KIAotdm9pZCBBdWRpb1RyYWNrOjplbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrUHJpdmF0ZSog
dHJhY2tQcml2YXRlLCBib29sIGVuYWJsZWQpCit2b2lkIEF1ZGlvVHJhY2s6OmVuYWJsZWRDaGFu
Z2VkKGJvb2wgZW5hYmxlZCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJh
Y2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CisgICAgaWYgKG1fZW5hYmxlZCA9PSBlbmFibGVkKQor
ICAgICAgICByZXR1cm47CisKICAgICBtX2VuYWJsZWQgPSBlbmFibGVkOwogCiAgICAgaWYgKG1f
Y2xpZW50KQotICAgICAgICBtX2NsaWVudC0+YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKHRoaXMp
OworICAgICAgICBtX2NsaWVudC0+YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKCp0aGlzKTsKIH0K
IAotdm9pZCBBdWRpb1RyYWNrOjppZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2
YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkKQordm9pZCBBdWRpb1RyYWNrOjppZENoYW5nZWQo
Y29uc3QgQXRvbWljU3RyaW5nJiBpZCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0
ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0SWQoaWQpOwogfQogCi12b2lk
IEF1ZGlvVHJhY2s6OmxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUs
IGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpCit2b2lkIEF1ZGlvVHJhY2s6OmxhYmVsQ2hhbmdl
ZChjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQ
cml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRMYWJlbChsYWJlbCk7
CiB9CiAKLXZvaWQgQXVkaW9UcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2Uq
IHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKK3ZvaWQgQXVkaW9U
cmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiB7Ci0g
ICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUp
OwogICAgIHNldExhbmd1YWdlKGxhbmd1YWdlKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjp3aWxs
UmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSkKK3ZvaWQgQXVkaW9UcmFjazo6
d2lsbFJlbW92ZSgpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJp
dmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIG1lZGlhRWxlbWVudCgpLT5yZW1vdmVBdWRpb1RyYWNr
KCp0aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRp
b1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAppbmRleCA2
MWM1YjJjZDQyOThkNTc0ZjdmNzE1YmMxYzE5MjAwNzkxZGQyM2FhLi41ZWQyNDRiZmFjMmMyYjk0
YThlY2Y3ZTFkMWNmOWExYTBiZTg4NGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlv
VHJhY2suaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwg
MjAxMyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yOSw5ICsyOSw3IEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQogCiAjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUV4
cG9ydE1hY3Jvcy5oIgogI2luY2x1ZGUgIlRyYWNrQmFzZS5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDEyICszOCwxMiBA
QCBjbGFzcyBBdWRpb1RyYWNrOwogY2xhc3MgQXVkaW9UcmFja0NsaWVudCB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+QXVkaW9UcmFja0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhdWRp
b1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2smKSA9IDA7CiB9OwogCi1jbGFzcyBB
dWRpb1RyYWNrIGZpbmFsIDogcHVibGljIE1lZGlhVHJhY2tCYXNlLCBwdWJsaWMgQXVkaW9UcmFj
a1ByaXZhdGVDbGllbnQgeworY2xhc3MgQXVkaW9UcmFjayBmaW5hbCA6IHB1YmxpYyBNZWRpYVRy
YWNrQmFzZSwgcHJpdmF0ZSBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxBdWRpb1RyYWNrPiBjcmVhdGUoQXVkaW9UcmFja0NsaWVudCogY2xpZW50LCBQ
YXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCisgICAgc3RhdGljIFJl
ZjxBdWRpb1RyYWNrPiBjcmVhdGUoQXVkaW9UcmFja0NsaWVudCYgY2xpZW50LCBBdWRpb1RyYWNr
UHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQXVkaW9UcmFjayhjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogICAgIH0KQEAgLTU3LDM5ICs1
NSwzOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbWFpbkRlc2NL
ZXl3b3JkKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhbnNsYXRpb25LZXl3
b3JkKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29tbWVudGFyeUtleXdvcmQo
KTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGRlZmF1bHRLaW5kS2V5d29yZCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGVtcHR5QXRvbTsgfQogCi0gICAgYm9vbCBlbmFibGVkKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9lbmFibGVkOyB9CisgICAgYm9vbCBlbmFibGVkKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9lbmFibGVkOyB9CiAgICAgdm9pZCBzZXRFbmFibGVkKGNvbnN0IGJv
b2wpOwogCi0gICAgdm9pZCBjbGVhckNsaWVudCgpIG92ZXJyaWRlIHsgbV9jbGllbnQgPSBudWxs
cHRyOyB9CisgICAgdm9pZCBjbGVhckNsaWVudCgpIGZpbmFsIHsgbV9jbGllbnQgPSBudWxscHRy
OyB9CiAgICAgQXVkaW9UcmFja0NsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGll
bnQ7IH0KIAotICAgIHNpemVfdCBpbmJhbmRUcmFja0luZGV4KCk7CisgICAgc2l6ZV90IGluYmFu
ZFRyYWNrSW5kZXgoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0UHJpdmF0ZShQYXNzUmVmUHRyPEF1
ZGlvVHJhY2tQcml2YXRlPik7Ci0KLXByb3RlY3RlZDoKLSAgICBBdWRpb1RyYWNrKEF1ZGlvVHJh
Y2tDbGllbnQqLCBQYXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPik7CisgICAgdm9pZCBzZXRQ
cml2YXRlKEF1ZGlvVHJhY2tQcml2YXRlJik7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBpc1ZhbGlk
S2luZChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKKyAgICBBdWRpb1RyYWNr
KEF1ZGlvVHJhY2tDbGllbnQmLCBBdWRpb1RyYWNrUHJpdmF0ZSYpOworCisgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBkZWZhdWx0S2luZEtleXdvcmQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBlbXB0
eUF0b207IH0KKyAgICBib29sIGlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0
IGZpbmFsOwogCiAgICAgLy8gQXVkaW9UcmFja1ByaXZhdGVDbGllbnQKLSAgICB2b2lkIGVuYWJs
ZWRDaGFuZ2VkKEF1ZGlvVHJhY2tQcml2YXRlKiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBl
bmFibGVkQ2hhbmdlZChib29sKSBmaW5hbDsKIAogICAgIC8vIFRyYWNrUHJpdmF0ZUJhc2VDbGll
bnQKLSAgICB2b2lkIGlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSos
IGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2Vk
KFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2
b2lkIHdpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSopIG92ZXJyaWRlOworICAgIHZvaWQgaWRD
aGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgbGFiZWxDaGFuZ2Vk
KGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNv
bnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgd2lsbFJlbW92ZSgpIGZpbmFsOwog
CiAgICAgdm9pZCB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIAogICAgIGJvb2wgbV9lbmFibGVk
OwogICAgIEF1ZGlvVHJhY2tDbGllbnQqIG1fY2xpZW50OwogCi0gICAgUmVmUHRyPEF1ZGlvVHJh
Y2tQcml2YXRlPiBtX3ByaXZhdGU7CisgICAgUmVmPEF1ZGlvVHJhY2tQcml2YXRlPiBtX3ByaXZh
dGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAppbmRleCBiZTU4Y2M4MTE5YmZlNmQ2
MGYwMzBiYTAxOTNjMGNkZTUyODQ5MTk4Li45ODU1ZDJiZjJlYjQ2Y2QyZGI3NTUyYThiZTFlYzk1
Y2UzM2NhZDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERh
dGFUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0
YVRleHRUcmFjay5jcHAKQEAgLTM3LDMxICszNywzMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLVJlZjxJbmJhbmREYXRhVGV4dFRyYWNrPiBJbmJhbmREYXRhVGV4dFRyYWNrOjpjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQs
IFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiYmIHRyYWNrUHJpdmF0ZSkKK2lubGluZSBJ
bmJhbmREYXRhVGV4dFRyYWNrOjpJbmJhbmREYXRhVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xp
ZW50LCB0cmFja1ByaXZhdGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kRGF0
YVRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIFdURk1vdmUodHJhY2tQcml2YXRlKSkpOwogfQog
Ci1JbmJhbmREYXRhVGV4dFRyYWNrOjpJbmJhbmREYXRhVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZT4mJiB0cmFja1ByaXZhdGUpCi0gICAgOiBJbmJhbmRUZXh0VHJhY2so
Y29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCitSZWY8SW5iYW5kRGF0YVRleHRUcmFjaz4g
SW5iYW5kRGF0YVRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFj
a1ByaXZhdGUpCiB7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kRGF0YVRleHRUcmFj
ayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogfQogCiBJbmJhbmREYXRhVGV4dFRy
YWNrOjp+SW5iYW5kRGF0YVRleHRUcmFjaygpCiB7CiB9CiAKLXZvaWQgSW5iYW5kRGF0YVRleHRU
cmFjazo6YWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1l
JiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVk
IGxlbmd0aCkKK3ZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZShjb25zdCBNZWRp
YVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9pZCogZGF0YSwgdW5z
aWduZWQgbGVuZ3RoKQogewogICAgIGFkZEN1ZShEYXRhQ3VlOjpjcmVhdGUoKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgc3RhcnQsIGVuZCwgZGF0YSwgbGVuZ3RoKSk7CiB9CiAKICNpZiBFTkFC
TEUoREFUQUNVRV9WQUxVRSkKIAotdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3Vl
KEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBN
ZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlv
bj4gcHJwUGxhdGZvcm1WYWx1ZSwgY29uc3QgU3RyaW5nJiB0eXBlKQordm9pZCBJbmJhbmREYXRh
VGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlh
VGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+JiYgcGxhdGZv
cm1WYWx1ZSwgY29uc3QgU3RyaW5nJiB0eXBlKQogewotICAgIFJlZlB0cjxTZXJpYWxpemVkUGxh
dGZvcm1SZXByZXNlbnRhdGlvbj4gcGxhdGZvcm1WYWx1ZSA9IHBycFBsYXRmb3JtVmFsdWU7Ci0g
ICAgaWYgKG1faW5jb21wbGV0ZUN1ZU1hcC5maW5kKHBsYXRmb3JtVmFsdWUuZ2V0KCkpICE9IG1f
aW5jb21wbGV0ZUN1ZU1hcC5lbmQoKSkKKyAgICBpZiAobV9pbmNvbXBsZXRlQ3VlTWFwLmNvbnRh
aW5zKHBsYXRmb3JtVmFsdWUucHRyKCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGN1
ZSA9IERhdGFDdWU6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdGFydCwgZW5k
LCBwbGF0Zm9ybVZhbHVlLmNvcHlSZWYoKSwgdHlwZSk7CkBAIC03OCwyNSArNzcsMTkgQEAgdm9p
ZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUq
LCBjb25zdCBNZWRpYVRpbWUmIHMKICAgICBhZGRDdWUoV1RGTW92ZShjdWUpKTsKIH0KIAotdm9p
ZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZh
dGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGluRW5kLCBQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwcnBQbGF0Zm9ybVZhbHVl
KQordm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGlt
ZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgaW5FbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJl
c2VudGF0aW9uJiBwbGF0Zm9ybVZhbHVlKQogewotICAgIE1lZGlhVGltZSBlbmQgPSBpbkVuZDsK
LQotICAgIFJlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcGxhdGZvcm1W
YWx1ZSA9IHBycFBsYXRmb3JtVmFsdWU7Ci0gICAgYXV0byBpdGVyID0gbV9pbmNvbXBsZXRlQ3Vl
TWFwLmZpbmQocGxhdGZvcm1WYWx1ZS5nZXQoKSk7Ci0gICAgaWYgKGl0ZXIgPT0gbV9pbmNvbXBs
ZXRlQ3VlTWFwLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZWZQdHI8RGF0YUN1ZT4g
Y3VlID0gaXRlci0+dmFsdWU7CisgICAgUmVmUHRyPERhdGFDdWU+IGN1ZSA9IG1faW5jb21wbGV0
ZUN1ZU1hcC5nZXQoJnBsYXRmb3JtVmFsdWUpOwogICAgIGlmICghY3VlKQogICAgICAgICByZXR1
cm47CiAKICAgICBjdWUtPndpbGxDaGFuZ2UoKTsKIAorICAgIE1lZGlhVGltZSBlbmQgPSBpbkVu
ZDsKICAgICBpZiAoZW5kLmlzUG9zaXRpdmVJbmZpbml0ZSgpICYmIG1lZGlhRWxlbWVudCgpKQog
ICAgICAgICBlbmQgPSBtZWRpYUVsZW1lbnQoKS0+ZHVyYXRpb25NZWRpYVRpbWUoKTsKICAgICBl
bHNlCi0gICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUocGxhdGZvcm1WYWx1ZS5nZXQo
KSk7CisgICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUoJnBsYXRmb3JtVmFsdWUpOwog
CiAgICAgTE9HKE1lZGlhLCAiSW5iYW5kRGF0YVRleHRUcmFjazo6dXBkYXRlRGF0YUN1ZTogd2Fz
IHN0YXJ0PSVzLCBlbmQ9JXMsIHdpbGwgYmUgc3RhcnQ9JXMsIGVuZD0lc1xuIiwgdG9TdHJpbmco
Y3VlLT5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoY3VlLT5lbmRUaW1lKCkp
LnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKHN0YXJ0KS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhl
bmQpLnV0ZjgoKS5kYXRhKCkpOwogCkBAIC0xMDYsMTQgKzk5LDkgQEAgdm9pZCBJbmJhbmREYXRh
VGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBN
ZWRpYVRpbWUKICAgICBjdWUtPmRpZENoYW5nZSgpOwogfQogCi12b2lkIEluYmFuZERhdGFUZXh0
VHJhY2s6OnJlbW92ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlh
VGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVw
cmVzZW50YXRpb24+IHBycFBsYXRmb3JtVmFsdWUpCit2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6
OnJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgU2VyaWFs
aXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24mIHBsYXRmb3JtVmFsdWUpCiB7Ci0gICAgUmVmUHRy
PFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwbGF0Zm9ybVZhbHVlID0gcHJwUGxh
dGZvcm1WYWx1ZTsKLSAgICBhdXRvIGl0ZXIgPSBtX2luY29tcGxldGVDdWVNYXAuZmluZChwbGF0
Zm9ybVZhbHVlLmdldCgpKTsKLSAgICBpZiAoaXRlciA9PSBtX2luY29tcGxldGVDdWVNYXAuZW5k
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChSZWZQdHI8RGF0YUN1ZT4gY3VlID0gaXRl
ci0+dmFsdWUpIHsKKyAgICBpZiAoYXV0byogY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLmdldCgm
cGxhdGZvcm1WYWx1ZSkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kRGF0YVRleHRUcmFj
azo6cmVtb3ZlRGF0YUN1ZSByZW1vdmluZyBjdWU6IHN0YXJ0PSVzLCBlbmQ9JXNcbiIsIHRvU3Ry
aW5nKGN1ZS0+c3RhcnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZS0+ZW5kVGlt
ZSgpKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmVtb3ZlQ3VlKCpjdWUpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKaW5kZXgg
MjdhOGRiNjE2OWQwYjQ3NmM1NGQzMmU0ODE0Mjg2MjFkYjJhMzA4My4uODI0YTI5ZjZhODY2YWQz
NDVjNWM0YTk0NDhkZmZiOGI2YmE3MTY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKQEAgLTMzLDIzICszMywyMSBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBEYXRhQ3VlOwotY2xhc3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZTsKLWNsYXNzIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uOwogCiBjbGFzcyBJbmJh
bmREYXRhVGV4dFRyYWNrIGZpbmFsIDogcHVibGljIEluYmFuZFRleHRUcmFjayB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxJbmJhbmREYXRhVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2
YXRlPiYmKTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZERhdGFUZXh0VHJhY2s+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSYpOwogICAgIHZpcnR1YWwgfkluYmFuZERhdGFUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToK
LSAgICBJbmJhbmREYXRhVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJh
Y2tDbGllbnQqLCBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4mJik7CisgICAgSW5iYW5k
RGF0YVRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50Jiwg
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogCi0gICAgdm9pZCBhZGREYXRhQ3VlKEluYmFuZFRl
eHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUm
IGVuZCwgY29uc3Qgdm9pZCosIHVuc2lnbmVkKSBmaW5hbDsKKyAgICB2b2lkIGFkZERhdGFDdWUo
Y29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQq
LCB1bnNpZ25lZCkgZmluYWw7CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLSAgICB2b2lk
IGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3Rh
cnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJl
cHJlc2VudGF0aW9uPiwgY29uc3QgU3RyaW5nJikgZmluYWw7Ci0gICAgdm9pZCB1cGRhdGVEYXRh
Q3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25z
dCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRh
dGlvbj4pIGZpbmFsOwotICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2
YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+KSBmaW5hbDsKKyAgICB2b2lk
IGFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQs
IFJlZjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4mJiwgY29uc3QgU3RyaW5nJikg
ZmluYWw7CisgICAgdm9pZCB1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNv
bnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbiYpIGZp
bmFsOworICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25z
dCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24mKSBmaW5h
bDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiByZW1vdmVDdWUoVGV4dFRyYWNrQ3VlJikgZmluYWw7
CiAKICAgICBIYXNoTWFwPFJlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4s
IFJlZlB0cjxEYXRhQ3VlPj4gbV9pbmNvbXBsZXRlQ3VlTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHAKaW5kZXggMDkxYTVk
MmIxODUyNjBiNThmNjhlMmZiY2Y4OWI4NzZjNzU2NWMyZS4uZDQ3OGFlNjExZjIzNzYwMzE3YjVk
MDRjNjI5N2MyMWMwNDE4ZmM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwCkBAIC02NSwxMDIgKzY1LDk5IEBAIHZvaWQg
R2VuZXJpY1RleHRUcmFja0N1ZU1hcDo6cmVtb3ZlKFRleHRUcmFja0N1ZSYgY3VlKQogICAgICAg
ICBtX2RhdGFUb0N1ZU1hcC5yZW1vdmUoZGF0YSk7CiB9CiAKLVJlZjxJbmJhbmRHZW5lcmljVGV4
dFRyYWNrPiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKK2lubGluZSBJbmJhbmRHZW5lcmljVGV4
dFRyYWNrOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0
cmFja1ByaXZhdGUpCisgICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFj
a1ByaXZhdGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kR2VuZXJpY1RleHRU
cmFjayhjb250ZXh0LCBjbGllbnQsIHBsYXllclByaXZhdGUpKTsKIH0KIAotSW5iYW5kR2VuZXJp
Y1RleHRUcmFjazo6SW5iYW5kR2VuZXJpY1RleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0
VHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCi0gICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4
dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCitSZWY8SW5iYW5kR2VuZXJpY1RleHRUcmFjaz4gSW5i
YW5kR2VuZXJpY1RleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFj
a1ByaXZhdGUpCiB7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kR2VuZXJpY1RleHRU
cmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogfQogCiBJbmJhbmRHZW5lcmlj
VGV4dFRyYWNrOjp+SW5iYW5kR2VuZXJpY1RleHRUcmFjaygpCiB7CiB9CiAKLXZvaWQgSW5iYW5k
R2VuZXJpY1RleHRUcmFjazo6dXBkYXRlQ3VlRnJvbUN1ZURhdGEoVGV4dFRyYWNrQ3VlR2VuZXJp
YyogY3VlLCBHZW5lcmljQ3VlRGF0YSogY3VlRGF0YSkKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRU
cmFjazo6dXBkYXRlQ3VlRnJvbUN1ZURhdGEoVGV4dFRyYWNrQ3VlR2VuZXJpYyYgY3VlLCBHZW5l
cmljQ3VlRGF0YSYgY3VlRGF0YSkKIHsKLSAgICBjdWUtPndpbGxDaGFuZ2UoKTsKKyAgICBjdWUu
d2lsbENoYW5nZSgpOwogCi0gICAgY3VlLT5zZXRTdGFydFRpbWUoY3VlRGF0YS0+c3RhcnRUaW1l
KCkpOwotICAgIE1lZGlhVGltZSBlbmRUaW1lID0gY3VlRGF0YS0+ZW5kVGltZSgpOworICAgIGN1
ZS5zZXRTdGFydFRpbWUoY3VlRGF0YS5zdGFydFRpbWUoKSk7CisgICAgTWVkaWFUaW1lIGVuZFRp
bWUgPSBjdWVEYXRhLmVuZFRpbWUoKTsKICAgICBpZiAoZW5kVGltZS5pc1Bvc2l0aXZlSW5maW5p
dGUoKSAmJiBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAgZW5kVGltZSA9IG1lZGlhRWxlbWVudCgp
LT5kdXJhdGlvbk1lZGlhVGltZSgpOwotICAgIGN1ZS0+c2V0RW5kVGltZShlbmRUaW1lKTsKLSAg
ICBjdWUtPnNldFRleHQoY3VlRGF0YS0+Y29udGVudCgpKTsKLSAgICBjdWUtPnNldElkKGN1ZURh
dGEtPmlkKCkpOwotICAgIGN1ZS0+c2V0QmFzZUZvbnRTaXplUmVsYXRpdmVUb1ZpZGVvSGVpZ2h0
KGN1ZURhdGEtPmJhc2VGb250U2l6ZSgpKTsKLSAgICBjdWUtPnNldEZvbnRTaXplTXVsdGlwbGll
cihjdWVEYXRhLT5yZWxhdGl2ZUZvbnRTaXplKCkpOwotICAgIGN1ZS0+c2V0Rm9udE5hbWUoY3Vl
RGF0YS0+Zm9udE5hbWUoKSk7Ci0KLSAgICBpZiAoY3VlRGF0YS0+cG9zaXRpb24oKSA+IDApCi0g
ICAgICAgIGN1ZS0+c2V0UG9zaXRpb24oc3RkOjpyb3VuZChjdWVEYXRhLT5wb3NpdGlvbigpKSk7
Ci0gICAgaWYgKGN1ZURhdGEtPmxpbmUoKSA+IDApCi0gICAgICAgIGN1ZS0+c2V0TGluZShzdGQ6
OnJvdW5kKGN1ZURhdGEtPmxpbmUoKSkpOwotICAgIGlmIChjdWVEYXRhLT5zaXplKCkgPiAwKQot
ICAgICAgICBjdWUtPnNldFNpemUoc3RkOjpyb3VuZChjdWVEYXRhLT5zaXplKCkpKTsKLSAgICBp
ZiAoY3VlRGF0YS0+YmFja2dyb3VuZENvbG9yKCkuaXNWYWxpZCgpKQotICAgICAgICBjdWUtPnNl
dEJhY2tncm91bmRDb2xvcihjdWVEYXRhLT5iYWNrZ3JvdW5kQ29sb3IoKS5yZ2IoKSk7Ci0gICAg
aWYgKGN1ZURhdGEtPmZvcmVncm91bmRDb2xvcigpLmlzVmFsaWQoKSkKLSAgICAgICAgY3VlLT5z
ZXRGb3JlZ3JvdW5kQ29sb3IoY3VlRGF0YS0+Zm9yZWdyb3VuZENvbG9yKCkucmdiKCkpOwotICAg
IGlmIChjdWVEYXRhLT5oaWdobGlnaHRDb2xvcigpLmlzVmFsaWQoKSkKLSAgICAgICAgY3VlLT5z
ZXRIaWdobGlnaHRDb2xvcihjdWVEYXRhLT5oaWdobGlnaHRDb2xvcigpLnJnYigpKTsKLQotICAg
IGlmIChjdWVEYXRhLT5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpTdGFydCkKLSAgICAgICAg
Y3VlLT5zZXRBbGlnbihBU0NJSUxpdGVyYWwoInN0YXJ0IikpOwotICAgIGVsc2UgaWYgKGN1ZURh
dGEtPmFsaWduKCkgPT0gR2VuZXJpY0N1ZURhdGE6Ok1pZGRsZSkKLSAgICAgICAgY3VlLT5zZXRB
bGlnbihBU0NJSUxpdGVyYWwoIm1pZGRsZSIpKTsKLSAgICBlbHNlIGlmIChjdWVEYXRhLT5hbGln
bigpID09IEdlbmVyaWNDdWVEYXRhOjpFbmQpCi0gICAgICAgIGN1ZS0+c2V0QWxpZ24oQVNDSUlM
aXRlcmFsKCJlbmQiKSk7Ci0gICAgY3VlLT5zZXRTbmFwVG9MaW5lcyhmYWxzZSk7Ci0KLSAgICBj
dWUtPmRpZENoYW5nZSgpOwotfQotCi12b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmFkZEdl
bmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSogdHJhY2tQcml2YXRlLCBQYXNzUmVmUHRy
PEdlbmVyaWNDdWVEYXRhPiBwcnBDdWVEYXRhKQotewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQ
cml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKLQotICAgIFJlZlB0cjxHZW5lcmlj
Q3VlRGF0YT4gY3VlRGF0YSA9IHBycEN1ZURhdGE7Ci0gICAgaWYgKG1fY3VlTWFwLmZpbmQoKmN1
ZURhdGEpKQorICAgIGN1ZS5zZXRFbmRUaW1lKGVuZFRpbWUpOworICAgIGN1ZS5zZXRUZXh0KGN1
ZURhdGEuY29udGVudCgpKTsKKyAgICBjdWUuc2V0SWQoY3VlRGF0YS5pZCgpKTsKKyAgICBjdWUu
c2V0QmFzZUZvbnRTaXplUmVsYXRpdmVUb1ZpZGVvSGVpZ2h0KGN1ZURhdGEuYmFzZUZvbnRTaXpl
KCkpOworICAgIGN1ZS5zZXRGb250U2l6ZU11bHRpcGxpZXIoY3VlRGF0YS5yZWxhdGl2ZUZvbnRT
aXplKCkpOworICAgIGN1ZS5zZXRGb250TmFtZShjdWVEYXRhLmZvbnROYW1lKCkpOworCisgICAg
aWYgKGN1ZURhdGEucG9zaXRpb24oKSA+IDApCisgICAgICAgIGN1ZS5zZXRQb3NpdGlvbihzdGQ6
OnJvdW5kKGN1ZURhdGEucG9zaXRpb24oKSkpOworICAgIGlmIChjdWVEYXRhLmxpbmUoKSA+IDAp
CisgICAgICAgIGN1ZS5zZXRMaW5lKHN0ZDo6cm91bmQoY3VlRGF0YS5saW5lKCkpKTsKKyAgICBp
ZiAoY3VlRGF0YS5zaXplKCkgPiAwKQorICAgICAgICBjdWUuc2V0U2l6ZShzdGQ6OnJvdW5kKGN1
ZURhdGEuc2l6ZSgpKSk7CisgICAgaWYgKGN1ZURhdGEuYmFja2dyb3VuZENvbG9yKCkuaXNWYWxp
ZCgpKQorICAgICAgICBjdWUuc2V0QmFja2dyb3VuZENvbG9yKGN1ZURhdGEuYmFja2dyb3VuZENv
bG9yKCkucmdiKCkpOworICAgIGlmIChjdWVEYXRhLmZvcmVncm91bmRDb2xvcigpLmlzVmFsaWQo
KSkKKyAgICAgICAgY3VlLnNldEZvcmVncm91bmRDb2xvcihjdWVEYXRhLmZvcmVncm91bmRDb2xv
cigpLnJnYigpKTsKKyAgICBpZiAoY3VlRGF0YS5oaWdobGlnaHRDb2xvcigpLmlzVmFsaWQoKSkK
KyAgICAgICAgY3VlLnNldEhpZ2hsaWdodENvbG9yKGN1ZURhdGEuaGlnaGxpZ2h0Q29sb3IoKS5y
Z2IoKSk7CisKKyAgICBpZiAoY3VlRGF0YS5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpTdGFy
dCkKKyAgICAgICAgY3VlLnNldEFsaWduKEFTQ0lJTGl0ZXJhbCgic3RhcnQiKSk7CisgICAgZWxz
ZSBpZiAoY3VlRGF0YS5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpNaWRkbGUpCisgICAgICAg
IGN1ZS5zZXRBbGlnbihBU0NJSUxpdGVyYWwoIm1pZGRsZSIpKTsKKyAgICBlbHNlIGlmIChjdWVE
YXRhLmFsaWduKCkgPT0gR2VuZXJpY0N1ZURhdGE6OkVuZCkKKyAgICAgICAgY3VlLnNldEFsaWdu
KEFTQ0lJTGl0ZXJhbCgiZW5kIikpOworICAgIGN1ZS5zZXRTbmFwVG9MaW5lcyhmYWxzZSk7CisK
KyAgICBjdWUuZGlkQ2hhbmdlKCk7Cit9CisKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6
YWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYgY3VlRGF0YSkKK3sKKyAgICBpZiAobV9jdWVN
YXAuZmluZChjdWVEYXRhKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBjdWUgPSBUZXh0
VHJhY2tDdWVHZW5lcmljOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgY3VlRGF0
YS0+c3RhcnRUaW1lKCksIGN1ZURhdGEtPmVuZFRpbWUoKSwgY3VlRGF0YS0+Y29udGVudCgpKTsK
LSAgICB1cGRhdGVDdWVGcm9tQ3VlRGF0YShjdWUucHRyKCksIGN1ZURhdGEuZ2V0KCkpOworICAg
IGF1dG8gY3VlID0gVGV4dFRyYWNrQ3VlR2VuZXJpYzo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksIGN1ZURhdGEuc3RhcnRUaW1lKCksIGN1ZURhdGEuZW5kVGltZSgpLCBjdWVEYXRh
LmNvbnRlbnQoKSk7CisgICAgdXBkYXRlQ3VlRnJvbUN1ZURhdGEoY3VlLmdldCgpLCBjdWVEYXRh
KTsKICAgICBpZiAoaGFzQ3VlKGN1ZS5wdHIoKSwgVGV4dFRyYWNrQ3VlOjpJZ25vcmVEdXJhdGlv
bikpIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2Vu
ZXJpY0N1ZSBpZ25vcmluZyBhbHJlYWR5IGFkZGVkIGN1ZTogc3RhcnQ9JXMsIGVuZD0lcywgY29u
dGVudD1cIiVzXCJcbiIsIHRvU3RyaW5nKGN1ZURhdGEtPnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0
YSgpLCB0b1N0cmluZyhjdWVEYXRhLT5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEt
PmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSBpZ25vcmluZyBhbHJlYWR5IGFkZGVkIGN1ZTog
c3RhcnQ9JXMsIGVuZD0lcywgY29udGVudD1cIiVzXCJcbiIsIHRvU3RyaW5nKGN1ZURhdGEuc3Rh
cnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZURhdGEuZW5kVGltZSgpKS51dGY4
KCkuZGF0YSgpLCBjdWVEYXRhLmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmFk
ZEdlbmVyaWNDdWUgYWRkZWQgY3VlOiBzdGFydD0lLjJmLCBlbmQ9JS4yZiwgY29udGVudD1cIiVz
XCJcbiIsIGN1ZURhdGEtPnN0YXJ0VGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEtPmVuZFRpbWUo
KS50b0RvdWJsZSgpLCBjdWVEYXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CisgICAgTE9H
KE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSBhZGRlZCBjdWU6
IHN0YXJ0PSUuMmYsIGVuZD0lLjJmLCBjb250ZW50PVwiJXNcIlxuIiwgY3VlRGF0YS5zdGFydFRp
bWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLmVuZFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLmNv
bnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgIGlmIChjdWVEYXRhLT5zdGF0dXMoKSAhPSBH
ZW5lcmljQ3VlRGF0YTo6Q29tcGxldGUpCi0gICAgICAgIG1fY3VlTWFwLmFkZCgqY3VlRGF0YSwg
Y3VlKTsKKyAgICBpZiAoY3VlRGF0YS5zdGF0dXMoKSAhPSBHZW5lcmljQ3VlRGF0YTo6Q29tcGxl
dGUpCisgICAgICAgIG1fY3VlTWFwLmFkZChjdWVEYXRhLCBjdWUpOwogCiAgICAgYWRkQ3VlKFdU
Rk1vdmUoY3VlKSk7CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6dXBkYXRlR2Vu
ZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqIGN1ZURhdGEp
Cit2b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnVwZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1
ZURhdGEmIGN1ZURhdGEpCiB7Ci0gICAgYXV0byogY3VlID0gbV9jdWVNYXAuZmluZCgqY3VlRGF0
YSk7CisgICAgYXV0byogY3VlID0gbV9jdWVNYXAuZmluZChjdWVEYXRhKTsKICAgICBpZiAoIWN1
ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlQ3VlRnJvbUN1ZURhdGEoY3VlLCBjdWVE
YXRhKTsKKyAgICB1cGRhdGVDdWVGcm9tQ3VlRGF0YSgqY3VlLCBjdWVEYXRhKTsKIAotICAgIGlm
IChjdWVEYXRhLT5zdGF0dXMoKSA9PSBHZW5lcmljQ3VlRGF0YTo6Q29tcGxldGUpCi0gICAgICAg
IG1fY3VlTWFwLnJlbW92ZSgqY3VlRGF0YSk7CisgICAgaWYgKGN1ZURhdGEuc3RhdHVzKCkgPT0g
R2VuZXJpY0N1ZURhdGE6OkNvbXBsZXRlKQorICAgICAgICBtX2N1ZU1hcC5yZW1vdmUoY3VlRGF0
YSk7CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1ZShJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqIGN1ZURhdGEpCit2b2lkIElu
YmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmIGN1
ZURhdGEpCiB7Ci0gICAgYXV0byogY3VlID0gbV9jdWVNYXAuZmluZCgqY3VlRGF0YSk7CisgICAg
YXV0byogY3VlID0gbV9jdWVNYXAuZmluZChjdWVEYXRhKTsKICAgICBpZiAoY3VlKSB7Ci0gICAg
ICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVyaWNDdWUg
cmVtb3ZpbmcgY3VlOiBzdGFydD0lcywgZW5kPSVzLCBjb250ZW50PVwiJXNcIlxuIiwgIHRvU3Ry
aW5nKGN1ZURhdGEtPnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWVEYXRh
LT5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0
YSgpKTsKKyAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3Zl
R2VuZXJpY0N1ZSByZW1vdmluZyBjdWU6IHN0YXJ0PSVzLCBlbmQ9JXMsIGNvbnRlbnQ9XCIlc1wi
XG4iLCAgdG9TdHJpbmcoY3VlRGF0YS5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJp
bmcoY3VlRGF0YS5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEuY29udGVudCgpLnV0
ZjgoKS5kYXRhKCkpOwogICAgICAgICByZW1vdmVDdWUoKmN1ZSk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1
ZSBVTkFCTEUgdG8gZmluZCBjdWU6IHN0YXJ0PSUuMmYsIGVuZD0lLjJmLCBjb250ZW50PVwiJXNc
IlxuIiwgY3VlRGF0YS0+c3RhcnRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS0+ZW5kVGltZSgp
LnRvRG91YmxlKCksIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAg
TE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1ZSBVTkFC
TEUgdG8gZmluZCBjdWU6IHN0YXJ0PSUuMmYsIGVuZD0lLjJmLCBjb250ZW50PVwiJXNcIlxuIiwg
Y3VlRGF0YS5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLmVuZFRpbWUoKS50b0RvdWJs
ZSgpLCBjdWVEYXRhLmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKICAgICB9CiB9CiAKQEAgLTE3
OSwxNSArMTc2LDEzIEBAIFdlYlZUVFBhcnNlciYgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cGFy
c2VyKCkKICAgICByZXR1cm4gKm1fd2ViVlRUUGFyc2VyOwogfQogCi12b2lkIEluYmFuZEdlbmVy
aWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiB0
cmFja1ByaXZhdGUsIGNvbnN0IElTT1dlYlZUVEN1ZSYgY3VlRGF0YSkKK3ZvaWQgSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IElTT1dlYlZUVEN1ZSYgY3Vl
RGF0YSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09
IG1fcHJpdmF0ZSk7CiAgICAgcGFyc2VyKCkucGFyc2VDdWVEYXRhKGN1ZURhdGEpOwogfQogCi12
b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRURmlsZUhlYWRlcihJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIFN0cmluZyYmIGhlYWRlcikKK3ZvaWQgSW5i
YW5kR2VuZXJpY1RleHRUcmFjazo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmIGhlYWRl
cikKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1f
cHJpdmF0ZSk7CiAgICAgcGFyc2VyKCkucGFyc2VGaWxlSGVhZGVyKFdURk1vdmUoaGVhZGVyKSk7
CiB9CiAKQEAgLTIxNCw3ICsyMDksNyBAQCB2b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6Om5l
d1JlZ2lvbnNQYXJzZWQoKQogCiAgICAgZm9yIChhdXRvJiByZWdpb24gOiBuZXdSZWdpb25zKSB7
CiAgICAgICAgIHJlZ2lvbi0+c2V0VHJhY2sodGhpcyk7Ci0gICAgICAgIHJlZ2lvbnMoKS0+YWRk
KHJlZ2lvbik7CisgICAgICAgIHJlZ2lvbnMoKS0+YWRkKHJlZ2lvbi5yZWxlYXNlTm9uTnVsbCgp
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kR2VuZXJpY1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRH
ZW5lcmljVGV4dFRyYWNrLmgKaW5kZXggMWMzNDhiMmRhNTUxMDNlYmJmY2E4NzhkNDBiN2Y5MDc4
OWJkNDQ2My4uM2RjZWVhNDVmMGRjNTQ1NjIwOTBkNTI5MTU4OWIyMGM4YjRkYzQ5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmgK
QEAgLTMzLDkgKzMzLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEb2N1bWVu
dDsKLWNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGU7Ci0KIGNsYXNzIEdlbmVyaWNUZXh0VHJh
Y2tDdWVNYXAgewogcHVibGljOgogICAgIHZvaWQgYWRkKEdlbmVyaWNDdWVEYXRhJiwgVGV4dFRy
YWNrQ3VlR2VuZXJpYyYpOwpAQCAtNTYsMjMgKzUzLDIyIEBAIHByaXZhdGU6CiAKIGNsYXNzIElu
YmFuZEdlbmVyaWNUZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgSW5iYW5kVGV4dFRyYWNrLCBwcml2
YXRlIFdlYlZUVFBhcnNlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbmJhbmRH
ZW5lcmljVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFj
a0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHN0YXRp
YyBSZWY8SW5iYW5kR2VuZXJpY1RleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CiAgICAgdmly
dHVhbCB+SW5iYW5kR2VuZXJpY1RleHRUcmFjaygpOwogCiBwcml2YXRlOgotICAgIEluYmFuZEdl
bmVyaWNUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCos
IFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIEluYmFuZEdlbmVyaWNU
ZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRleHRUcmFja0NsaWVudCYsIEluYmFu
ZFRleHRUcmFja1ByaXZhdGUmKTsKIAotICAgIHZvaWQgYWRkR2VuZXJpY0N1ZShJbmJhbmRUZXh0
VHJhY2tQcml2YXRlKiwgUGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0YT4pIGZpbmFsOwotICAgIHZv
aWQgdXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURh
dGEqKSBmaW5hbDsKLSAgICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgZmluYWw7CisgICAgdm9pZCBhZGRHZW5lcmljQ3VlKEdl
bmVyaWNDdWVEYXRhJikgZmluYWw7CisgICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWND
dWVEYXRhJikgZmluYWw7CisgICAgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRh
JikgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVtb3ZlQ3VlKFRleHRUcmFja0N1ZSYp
IGZpbmFsOwogCi0gICAgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVHZW5lcmljPiBjcmVhdGVDdWUo
UGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0YT4pOwotICAgIHZvaWQgdXBkYXRlQ3VlRnJvbUN1ZURh
dGEoVGV4dFRyYWNrQ3VlR2VuZXJpYyosIEdlbmVyaWNDdWVEYXRhKik7CisgICAgdm9pZCB1cGRh
dGVDdWVGcm9tQ3VlRGF0YShUZXh0VHJhY2tDdWVHZW5lcmljJiwgR2VuZXJpY0N1ZURhdGEmKTsK
IAogICAgIFdlYlZUVFBhcnNlciYgcGFyc2VyKCk7Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURh
dGEoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IElTT1dlYlZUVEN1ZSYpIGZpbmFsOwot
ICAgIHZvaWQgcGFyc2VXZWJWVFRGaWxlSGVhZGVyKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBT
dHJpbmcmJikgZmluYWw7CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2Vi
VlRUQ3VlJikgZmluYWw7CisgICAgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYp
IGZpbmFsOwogCiAgICAgdm9pZCBuZXdDdWVzUGFyc2VkKCkgZmluYWw7CiAgICAgdm9pZCBuZXdS
ZWdpb25zUGFyc2VkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0luYmFuZFRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFu
ZFRleHRUcmFjay5jcHAKaW5kZXggZjJlZWVhZTBmYzAwOTRlNDI4YTg3YTY1ZDE4MzE3ZDNjZmY0
NDA3OS4uODdkMWRjNWM2YTllNDAyM2Q3OThjNmRmNDQ3OWFkNzRiZDJjYzUwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcApAQCAtNDMsMjQgKzQz
LDIyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJh
Y2s+IEluYmFuZFRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsCi0gICAgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQorUmVmPEluYmFuZFRleHRUcmFjaz4gSW5iYW5kVGV4
dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNr
Q2xpZW50JiBjbGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsK
LSAgICBzd2l0Y2ggKHRyYWNrUHJpdmF0ZS0+Y3VlRm9ybWF0KCkpIHsKKyAgICBzd2l0Y2ggKHRy
YWNrUHJpdmF0ZS5jdWVGb3JtYXQoKSkgewogICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZTo6RGF0YToKICAgICAgICAgcmV0dXJuIEluYmFuZERhdGFUZXh0VHJhY2s6OmNyZWF0ZShjb250
ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSk7CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlOjpHZW5lcmljOgogICAgICAgICByZXR1cm4gSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6Y3Jl
YXRlKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKTsKICAgICBjYXNlIEluYmFuZFRleHRU
cmFja1ByaXZhdGU6OldlYlZUVDoKICAgICAgICAgcmV0dXJuIEluYmFuZFdlYlZUVFRleHRUcmFj
azo6Y3JlYXRlKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKTsKLSAgICBkZWZhdWx0Ogot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIDA7CiAgICAgfQor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBJbmJhbmREYXRhVGV4dFRyYWNr
OjpjcmVhdGUoY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpOwogfQogCi1JbmJhbmRUZXh0
VHJhY2s6OkluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBU
ZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRl
PiB0cmFja1ByaXZhdGUpCi0gICAgOiBUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBlbXB0eUF0
b20sIHRyYWNrUHJpdmF0ZS0+aWQoKSwgdHJhY2tQcml2YXRlLT5sYWJlbCgpLCB0cmFja1ByaXZh
dGUtPmxhbmd1YWdlKCksIEluQmFuZCkKK0luYmFuZFRleHRUcmFjazo6SW5iYW5kVGV4dFRyYWNr
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50
LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgOiBUZXh0VHJhY2so
JmNvbnRleHQsICZjbGllbnQsIGVtcHR5QXRvbSwgdHJhY2tQcml2YXRlLmlkKCksIHRyYWNrUHJp
dmF0ZS5sYWJlbCgpLCB0cmFja1ByaXZhdGUubGFuZ3VhZ2UoKSwgSW5CYW5kKQogICAgICwgbV9w
cml2YXRlKHRyYWNrUHJpdmF0ZSkKIHsKICAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsK
QEAgLTcyLDEyICs3MCw5IEBAIEluYmFuZFRleHRUcmFjazo6fkluYmFuZFRleHRUcmFjaygpCiAg
ICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiB9CiAKLXZvaWQgSW5iYW5kVGV4dFRy
YWNrOjpzZXRQcml2YXRlKFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2tQ
cml2YXRlKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6OnNldFByaXZhdGUoSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIEFT
U0VSVCh0cmFja1ByaXZhdGUpOwotCi0gICAgaWYgKG1fcHJpdmF0ZSA9PSB0cmFja1ByaXZhdGUp
CisgICAgaWYgKG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKQEAgLTExNSw4MCArMTEw
LDYwIEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrOjpzZXRNb2RlSW50ZXJuYWwoTW9kZSBtb2RlKQog
CiBib29sIEluYmFuZFRleHRUcmFjazo6aXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0CiB7Ci0gICAg
aWYgKCFtX3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIHJldHVybiBtX3By
aXZhdGUtPmlzQ2xvc2VkQ2FwdGlvbnMoKTsKIH0KIAogYm9vbCBJbmJhbmRUZXh0VHJhY2s6Omlz
U0RIKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPmlzU0RIKCk7CiB9CiAKIGJvb2wgSW5iYW5k
VGV4dFRyYWNrOjpjb250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMoKSBjb25zdAogewotICAgIGlm
ICghbV9wcml2YXRlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCiAgICAgcmV0dXJuIG1f
cHJpdmF0ZS0+Y29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCk7CiB9CiAKIGJvb2wgSW5iYW5k
VGV4dFRyYWNrOjppc01haW5Qcm9ncmFtQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3By
aXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKICAgICByZXR1cm4gbV9wcml2YXRl
LT5pc01haW5Qcm9ncmFtQ29udGVudCgpOwogfQogCiBib29sIEluYmFuZFRleHRUcmFjazo6aXNF
YXN5VG9SZWFkKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPmlzRWFzeVRvUmVhZCgpOwogfQog
ICAgIAogc2l6ZV90IEluYmFuZFRleHRUcmFjazo6aW5iYW5kVHJhY2tJbmRleCgpCiB7Ci0gICAg
QVNTRVJUKG1fcHJpdmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dHJhY2tJbmRleCgpOwog
fQogCiBBdG9taWNTdHJpbmcgSW5iYW5kVGV4dFRyYWNrOjppbkJhbmRNZXRhZGF0YVRyYWNrRGlz
cGF0Y2hUeXBlKCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKICAgICByZXR1cm4g
bV9wcml2YXRlLT5pbkJhbmRNZXRhZGF0YVRyYWNrRGlzcGF0Y2hUeXBlKCk7CiB9CiAKLXZvaWQg
SW5iYW5kVGV4dFRyYWNrOjppZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRl
LCBjb25zdCBBdG9taWNTdHJpbmcmIGlkKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6OmlkQ2hhbmdl
ZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2
YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRJZChpZCk7CiB9CiAKLXZv
aWQgSW5iYW5kVGV4dFRyYWNrOjpsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQ
cml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6
OmxhYmVsQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQogewotICAgIEFTU0VSVF9V
TlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRM
YWJlbChsYWJlbCk7CiB9CiAKLXZvaWQgSW5iYW5kVGV4dFRyYWNrOjpsYW5ndWFnZUNoYW5nZWQo
VHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1
YWdlKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6Omxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9taWNT
dHJpbmcmIGxhbmd1YWdlKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFj
a1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRMYW5ndWFnZShsYW5ndWFnZSk7CiB9CiAK
LXZvaWQgSW5iYW5kVGV4dFRyYWNrOjp3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNr
UHJpdmF0ZSkKK3ZvaWQgSW5iYW5kVGV4dFRyYWNrOjp3aWxsUmVtb3ZlKCkKIHsKLSAgICBpZiAo
IW1lZGlhRWxlbWVudCgpKQorICAgIGF1dG8qIGVsZW1lbnQgPSBtZWRpYUVsZW1lbnQoKTsKKyAg
ICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNr
UHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7Ci0gICAgbWVkaWFFbGVtZW50KCkt
PnJlbW92ZVRleHRUcmFjaygqdGhpcyk7CisgICAgZWxlbWVudC0+cmVtb3ZlVGV4dFRyYWNrKCp0
aGlzKTsKIH0KIAogdm9pZCBJbmJhbmRUZXh0VHJhY2s6OnVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgp
CkBAIC0xOTYsMzQgKzE3MSwzMCBAQCB2b2lkIEluYmFuZFRleHRUcmFjazo6dXBkYXRlS2luZEZy
b21Qcml2YXRlKCkKICAgICBzd2l0Y2ggKG1fcHJpdmF0ZS0+a2luZCgpKSB7CiAgICAgY2FzZSBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlOjpTdWJ0aXRsZXM6CiAgICAgICAgIHNldEtpbmQoS2luZDo6
U3VidGl0bGVzKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIElu
YmFuZFRleHRUcmFja1ByaXZhdGU6OkNhcHRpb25zOgogICAgICAgICBzZXRLaW5kKEtpbmQ6OkNh
cHRpb25zKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluYmFu
ZFRleHRUcmFja1ByaXZhdGU6OkRlc2NyaXB0aW9uczoKICAgICAgICAgc2V0S2luZChLaW5kOjpE
ZXNjcmlwdGlvbnMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6Q2hhcHRlcnM6CiAgICAgICAgIHNldEtpbmQoS2luZDo6
Q2hhcHRlcnMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZTo6TWV0YWRhdGE6CiAgICAgICAgIHNldEtpbmQoS2luZDo6TWV0
YWRhdGEpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZTo6Rm9yY2VkOgogICAgICAgICBzZXRLaW5kKEtpbmQ6OkZvcmNlZCk7
Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlOjpOb25lOgotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9
CiAKIE1lZGlhVGltZSBJbmJhbmRUZXh0VHJhY2s6OnN0YXJ0VGltZVZhcmlhbmNlKCkgY29uc3QK
IHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1Rp
bWUoKTsKLSAgICAKICAgICByZXR1cm4gbV9wcml2YXRlLT5zdGFydFRpbWVWYXJpYW5jZSgpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFj
ay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suaAppbmRleCA5
Y2QwMjdjMzZjODViMGFhNTE1NjdlZTY5NmUxMjY2ZDA4NDVmMzNlLi44NjQ4MmMyOGJkMDIyOTYw
NGIzYWYyNjk1YTE3M2U1NzI0OTk0NmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0luYmFuZFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
SW5iYW5kVGV4dFRyYWNrLmgKQEAgLTM1LDkgKzM1LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBJbmJhbmRUZXh0VHJhY2sgOiBwdWJsaWMgVGV4dFRyYWNrLCBwdWJsaWMgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCB7CitjbGFzcyBJbmJhbmRUZXh0VHJhY2sgOiBwdWJs
aWMgVGV4dFRyYWNrLCBwcml2YXRlIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gY3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRl
eHRUcmFja1ByaXZhdGU+KTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZFRleHRUcmFjaz4gY3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlJik7CiAgICAgdmlydHVhbCB+SW5iYW5kVGV4dFRyYWNrKCk7CiAKICAgICBib29s
IGlzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdCBvdmVycmlkZTsKQEAgLTUwLDM4ICs1MCwzOCBAQCBw
dWJsaWM6CiAKICAgICBBdG9taWNTdHJpbmcgaW5CYW5kTWV0YWRhdGFUcmFja0Rpc3BhdGNoVHlw
ZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZXRQcml2YXRlKFBhc3NSZWZQdHI8SW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHZvaWQgc2V0UHJpdmF0ZShJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlJik7CiAKIHByb3RlY3RlZDoKLSAgICBJbmJhbmRUZXh0VHJhY2soU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZT4pOworICAgIEluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogCiAgICAgdm9p
ZCBzZXRNb2RlSW50ZXJuYWwoTW9kZSk7CiAgICAgdm9pZCB1cGRhdGVLaW5kRnJvbVByaXZhdGUo
KTsKIAotICAgIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiBtX3ByaXZhdGU7CisgICAg
UmVmPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IG1fcHJpdmF0ZTsKIAogcHJpdmF0ZToKICAgICBi
b29sIGlzSW5iYW5kKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQgaWRD
aGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsK
LSAgICB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRlQmFz
ZSosIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbFJlbW92ZShU
cmFja1ByaXZhdGVCYXNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRv
bWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBsYWJlbENoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgb3ZlcnJpZGU7CiAKLSAg
ICB2b2lkIGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGlt
ZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkgb3ZlcnJpZGUgeyBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRp
bWUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpIG92ZXJyaWRlIHsg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQotICAg
IHZvaWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1l
JiwgY29uc3QgTWVkaWFUaW1lJiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNl
bnRhdGlvbj4sIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7
IH0KLSAgICB2b2lkIHVwZGF0ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0
IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRm
b3JtUmVwcmVzZW50YXRpb24+KSBvdmVycmlkZSAgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQot
ICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1S
ZXByZXNlbnRhdGlvbj4pIG92ZXJyaWRlICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAg
dm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFJlZjxT
ZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4mJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShjb25z
dCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNl
bnRhdGlvbiYpIG92ZXJyaWRlICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBy
ZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNlcmlhbGl6
ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uJikgb3ZlcnJpZGUgIHsgQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KICNlbmRpZgogCi0gICAgdm9pZCBhZGRHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1By
aXZhdGUqLCBQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsgfQotICAgIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9Ci0gICAgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBH
ZW5lcmljQ3VlRGF0YSopIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2
b2lkIGFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9CisgICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikg
b3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgcmVtb3ZlR2VuZXJp
Y0N1ZShHZW5lcmljQ3VlRGF0YSYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
IAotICAgIHZvaWQgcGFyc2VXZWJWVFRGaWxlSGVhZGVyKEluYmFuZFRleHRUcmFja1ByaXZhdGUq
LCBTdHJpbmcmJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZvaWQg
cGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBjaGFyKiwg
dW5zaWduZWQpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2b2lkIHBh
cnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNPV2ViVlRU
Q3VlJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgcGFyc2VX
ZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgY2hhciosIHVuc2lnbmVkKSBv
dmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1
ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogCiAgICAgTWVkaWFUaW1lIHN0YXJ0VGltZVZhcmlhbmNlKCkgY29uc3Qgb3ZlcnJpZGU7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRU
ZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0
VHJhY2suY3BwCmluZGV4IGU1NDBlNDk0MWFlY2E4NmMwZmZlYTc1MzRiN2FhMjI2YjEyY2MyYTYu
LmM5ODEyNTE0ZjViYzJmZmZkMzhjYjM4ZjhjNmY5YTI4NTc5ZTk5MTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAKQEAgLTI0
LDI3ICsyNCwyNSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmJh
bmRXZWJWVFRUZXh0VHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotI2luY2x1
ZGUgIkluYmFuZFdlYlZUVFRleHRUcmFjay5oIgotCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgogI2luY2x1ZGUgIlZUVFJlZ2lvbkxpc3QuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPEluYmFuZFRleHRUcmFjaz4gSW5i
YW5kV2ViVlRUVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZT4gcGxheWVyUHJpdmF0ZSkKK2lubGluZSBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OkluYmFu
ZFdlYlZUVFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUZXh0VHJh
Y2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQor
ICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKQogewot
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZFdlYlZUVFRleHRUcmFjayhjb250ZXh0LCBj
bGllbnQsIHBsYXllclByaXZhdGUpKTsKIH0KIAotSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpJbmJh
bmRXZWJWVFRUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRy
YWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJh
Y2tQcml2YXRlKQotICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQ
cml2YXRlKQorUmVmPEluYmFuZFRleHRUcmFjaz4gSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50JiBjbGll
bnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBJbmJhbmRXZWJWVFRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFj
a1ByaXZhdGUpKTsKIH0KIAogSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjp+SW5iYW5kV2ViVlRUVGV4
dFRyYWNrKCkKQEAgLTU4LDE1ICs1NiwxMyBAQCBXZWJWVFRQYXJzZXImIEluYmFuZFdlYlZUVFRl
eHRUcmFjazo6cGFyc2VyKCkKICAgICByZXR1cm4gKm1fd2ViVlRUUGFyc2VyOwogfQogCi12b2lk
IEluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFj
a1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3Ro
KQordm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBj
aGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1By
aXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHBhcnNlcigpLnBhcnNlQnl0
ZXMoZGF0YSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBhcnNl
V2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIGNvbnN0
IElTT1dlYlZUVEN1ZSYgY3VlRGF0YSkKK3ZvaWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpwYXJz
ZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJiBjdWVEYXRhKQogewotICAgIEFTU0VS
VF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBw
YXJzZXIoKS5wYXJzZUN1ZURhdGEoY3VlRGF0YSk7CiB9CiAKQEAgLTc0LDEwICs3MCw4IEBAIHZv
aWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpuZXdDdWVzUGFyc2VkKCkKIHsKICAgICBWZWN0b3I8
UmVmUHRyPFdlYlZUVEN1ZURhdGE+PiBjdWVzOwogICAgIHBhcnNlcigpLmdldE5ld0N1ZXMoY3Vl
cyk7Ci0KICAgICBmb3IgKGF1dG8mIGN1ZURhdGEgOiBjdWVzKSB7CiAgICAgICAgIGF1dG8gdnR0
Q3VlID0gVlRUQ3VlOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKmN1ZURhdGEp
OwotCiAgICAgICAgIGlmIChoYXNDdWUodnR0Q3VlLnB0cigpLCBUZXh0VHJhY2tDdWU6Oklnbm9y
ZUR1cmF0aW9uKSkgewogICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kV2ViVlRUVGV4dFRy
YWNrOjpuZXdDdWVzUGFyc2VkIGlnbm9yaW5nIGFscmVhZHkgYWRkZWQgY3VlOiBzdGFydD0lLjJm
LCBlbmQ9JS4yZiwgY29udGVudD1cIiVzXCJcbiIsIHZ0dEN1ZS0+c3RhcnRUaW1lKCksIHZ0dEN1
ZS0+ZW5kVGltZSgpLCB2dHRDdWUtPnRleHQoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTkwLDEzICs4NCwxMiBAQCB2b2lkIEluYmFuZFdlYlZUVFRleHRUcmFjazo6
bmV3UmVnaW9uc1BhcnNlZCgpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxWVFRSZWdpb24+PiBuZXdS
ZWdpb25zOwogICAgIHBhcnNlcigpLmdldE5ld1JlZ2lvbnMobmV3UmVnaW9ucyk7Ci0KICAgICBm
b3IgKGF1dG8mIHJlZ2lvbiA6IG5ld1JlZ2lvbnMpIHsKICAgICAgICAgcmVnaW9uLT5zZXRUcmFj
ayh0aGlzKTsKLSAgICAgICAgcmVnaW9ucygpLT5hZGQocmVnaW9uKTsKKyAgICAgICAgcmVnaW9u
cygpLT5hZGQocmVnaW9uLnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KIH0KLSAgICAKKwogdm9p
ZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmZpbGVGYWlsZWRUb1BhcnNlKCkKIHsKICAgICBMT0co
TWVkaWEsICJFcnJvciBwYXJzaW5nIFdlYlZUVCBzdHJlYW0uIik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suaAppbmRleCA4Y2M3N2E5Y2Vk
YTNjMzdiYjFmNmUxZDVhNTkzZDI2M2MzZDI0OWVmLi4yYTUxZTM4NWE5ZjJhNDQ5ZjhlOTljZGY0
YjNhYjRjMGJhZmVjZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0lu
YmFuZFdlYlZUVFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kV2ViVlRUVGV4dFRyYWNrLmgKQEAgLTMwLDI1ICszMCwyNCBAQAogI2luY2x1ZGUgIkluYmFu
ZFRleHRUcmFjay5oIgogI2luY2x1ZGUgIldlYlZUVFBhcnNlci5oIgogI2luY2x1ZGUgPG1lbW9y
eT4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgSW5iYW5kV2ViVlRUVGV4dFRyYWNrIGZpbmFsIDogcHVibGljIEluYmFuZFRleHRUcmFjaywg
cHJpdmF0ZSBXZWJWVFRQYXJzZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SW5i
YW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0Ns
aWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHN0YXRpYyBS
ZWY8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRleHRU
cmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKICAgICB2aXJ0dWFsIH5JbmJh
bmRXZWJWVFRUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKLSAgICBJbmJhbmRXZWJWVFRUZXh0VHJh
Y2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIEluYmFuZFdlYlZUVFRleHRUcmFjayhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSYpOwogCiAgICAgV2ViVlRUUGFyc2VyJiBwYXJzZXIoKTsKLSAgICB2b2lkIHBhcnNlV2Vi
VlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgY2hhciogZGF0YSwgdW5z
aWduZWQgbGVuZ3RoKSBvdmVycmlkZTsKLSAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJh
bmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNPV2ViVlRUQ3VlJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3Ro
KSBmaW5hbDsKKyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUm
KSBmaW5hbDsKIAotICAgIHZvaWQgbmV3Q3Vlc1BhcnNlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQg
bmV3UmVnaW9uc1BhcnNlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgZmlsZUZhaWxlZFRvUGFyc2Uo
KSBvdmVycmlkZTsKKyAgICB2b2lkIG5ld0N1ZXNQYXJzZWQoKSBmaW5hbDsKKyAgICB2b2lkIG5l
d1JlZ2lvbnNQYXJzZWQoKSBmaW5hbDsKKyAgICB2b2lkIGZpbGVGYWlsZWRUb1BhcnNlKCkgZmlu
YWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViVlRUUGFyc2VyPiBtX3dlYlZUVFBhcnNlcjsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRy
YWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3Bw
CmluZGV4IDIxMGY2YTlkZjVhYzc3MTc1YTk4MTJhYzA1MTA0MjIzMmEzNDBmMzMuLmNlZmEzZmJl
MGIxMzkyNmM2MjdmMGY2NGVlM2Q4ZDQ0NmNhYTA4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3BwCkBAIC05NiwxMSArOTYsMTEgQEAgdm9p
ZCBMb2FkYWJsZVRleHRUcmFjazo6bmV3Q3Vlc0F2YWlsYWJsZShUZXh0VHJhY2tMb2FkZXIqIGxv
YWRlcikKIAogICAgIGZvciAoYXV0byYgbmV3Q3VlIDogbmV3Q3VlcykgewogICAgICAgICBuZXdD
dWUtPnNldFRyYWNrKHRoaXMpOwotICAgICAgICBtX2N1ZXMtPmFkZChuZXdDdWUpOworICAgICAg
ICBtX2N1ZXMtPmFkZChuZXdDdWUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogCiAgICAgaWYg
KGNsaWVudCgpKQotICAgICAgICBjbGllbnQoKS0+dGV4dFRyYWNrQWRkQ3Vlcyh0aGlzLCBtX2N1
ZXMuZ2V0KCkpOworICAgICAgICBjbGllbnQoKS0+dGV4dFRyYWNrQWRkQ3VlcygqdGhpcywgKm1f
Y3Vlcyk7CiB9CiAKIHZvaWQgTG9hZGFibGVUZXh0VHJhY2s6OmN1ZUxvYWRpbmdDb21wbGV0ZWQo
VGV4dFRyYWNrTG9hZGVyKiBsb2FkZXIsIGJvb2wgbG9hZGluZ0ZhaWxlZCkKQEAgLTEyMiw3ICsx
MjIsNyBAQCB2b2lkIExvYWRhYmxlVGV4dFRyYWNrOjpuZXdSZWdpb25zQXZhaWxhYmxlKFRleHRU
cmFja0xvYWRlciogbG9hZGVyKQogCiAgICAgZm9yIChhdXRvJiBuZXdSZWdpb24gOiBuZXdSZWdp
b25zKSB7CiAgICAgICAgIG5ld1JlZ2lvbi0+c2V0VHJhY2sodGhpcyk7Ci0gICAgICAgIHJlZ2lv
bnMoKS0+YWRkKG5ld1JlZ2lvbik7CisgICAgICAgIHJlZ2lvbnMoKS0+YWRkKG5ld1JlZ2lvbi5y
ZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrLmNwcAppbmRleCA5NmJjZDdlZDM1MGQyOGUwNDJlYWU2OGNlZDUyMDFhNzFmM2M1ZjA5
Li5iMGM4NjAwMDNkZmYxYzgwZDhlNjkzMjQ1N2ZiYzEzOWU0ZTJiN2QyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCkBAIC0xMjAsOCArMTIwLDcgQEAgVGV4dFRyYWNr
Ojp+VGV4dFRyYWNrKCkKIHsKICAgICBpZiAobV9jdWVzKSB7CiAgICAgICAgIGlmIChtX2NsaWVu
dCkKLSAgICAgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKHRoaXMsIG1fY3Vl
cy5nZXQoKSk7Ci0KKyAgICAgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKCp0
aGlzLCAqbV9jdWVzKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2N1ZXMtPmxl
bmd0aCgpOyArK2kpCiAgICAgICAgICAgICBtX2N1ZXMtPml0ZW0oaSktPnNldFRyYWNrKG51bGxw
dHIpOwogICAgIH0KQEAgLTE4OSw3ICsxODgsNyBAQCB2b2lkIFRleHRUcmFjazo6c2V0S2luZChL
aW5kIG5ld0tpbmQpCiAgICAgLy8gMy4gSWYgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24g
dGhpcyB0cmFjayBpcyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBs
ZQogICAgIC8vIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCBzb3VyY2VCdWZmZXIudGV4dFRyYWNrcy4K
ICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVmZmVyLT50ZXh0VHJh
Y2tzKCktPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXItPnRl
eHRUcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICAgICAvLyA0LiBRdWV1ZSBhIHRh
c2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2UgYXQgdGhlIFRleHRUcmFja0xp
c3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdGV4dFRyYWNrcyBhdHRyaWJ1dGUg
b24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCkBAIC0xOTgsNyArMTk3LDcgQEAgdm9pZCBUZXh0VHJh
Y2s6OnNldEtpbmQoS2luZCBuZXdLaW5kKQogI2VuZGlmCiAKICAgICBpZiAobV9jbGllbnQgJiYg
b2xkS2luZCAhPSBtX2tpbmQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tLaW5kQ2hhbmdl
ZCh0aGlzKTsKKyAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja0tpbmRDaGFuZ2VkKCp0aGlzKTsK
IH0KIAogdm9pZCBUZXh0VHJhY2s6OnNldEtpbmRLZXl3b3JkSWdub3JpbmdBU0NJSUNhc2UoU3Ry
aW5nVmlldyBrZXl3b3JkKQpAQCAtMjM2LDcgKzIzNSw3IEBAIHZvaWQgVGV4dFRyYWNrOjpzZXRN
b2RlKE1vZGUgbW9kZSkKICAgICAvLyBJZiBtb2RlIGNoYW5nZXMgdG8gZGlzYWJsZWQsIHJlbW92
ZSB0aGlzIHRyYWNrJ3MgY3VlcyBmcm9tIHRoZSBjbGllbnQKICAgICAvLyBiZWNhdXNlIHRoZXkg
d2lsbCBubyBsb25nZXIgYmUgYWNjZXNzaWJsZSBmcm9tIHRoZSBjdWVzKCkgZnVuY3Rpb24uCiAg
ICAgaWYgKG1vZGUgPT0gTW9kZTo6RGlzYWJsZWQgJiYgbV9jbGllbnQgJiYgbV9jdWVzKQotICAg
ICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0aGlzLCBtX2N1ZXMuZ2V0KCkpOwor
ICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlcygqdGhpcywgKm1fY3Vlcyk7CiAK
ICAgICBpZiAobW9kZSAhPSBNb2RlOjpTaG93aW5nICYmIG1fY3VlcykgewogICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkgewpAQCAtMjQ5LDcgKzI0
OCw3IEBAIHZvaWQgVGV4dFRyYWNrOjpzZXRNb2RlKE1vZGUgbW9kZSkKICAgICBtX21vZGUgPSBt
b2RlOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrTW9k
ZUNoYW5nZWQodGhpcyk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tNb2RlQ2hhbmdlZCgq
dGhpcyk7CiB9CiAKIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6Y3VlcygpCkBAIC0yNzAs
NyArMjY5LDcgQEAgdm9pZCBUZXh0VHJhY2s6OnJlbW92ZUFsbEN1ZXMoKQogICAgICAgICByZXR1
cm47CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1v
dmVDdWVzKHRoaXMsIG1fY3Vlcy5nZXQoKSk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tS
ZW1vdmVDdWVzKCp0aGlzLCAqbV9jdWVzKTsKICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkKICAgICAgICAgbV9jdWVzLT5pdGVtKGkpLT5zZXRU
cmFjayhudWxscHRyKTsKQEAgLTI4OCw3ICsyODcsNyBAQCBUZXh0VHJhY2tDdWVMaXN0KiBUZXh0
VHJhY2s6OmFjdGl2ZUN1ZXMoKSBjb25zdAogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9z
cGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI2RvbS10ZXh0dHJhY2stYWN0aXZlY3VlcwogICAg
IGlmICghbV9jdWVzIHx8IG1fbW9kZSA9PSBNb2RlOjpEaXNhYmxlZCkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgcmV0dXJuIG1fY3Vlcy0+YWN0aXZlQ3VlcygpOworICAgIHJldHVybiAm
bV9jdWVzLT5hY3RpdmVDdWVzKCk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFRleHRUcmFjazo6
YWRkQ3VlKFJlZjxUZXh0VHJhY2tDdWU+JiYgY3VlKQpAQCAtMzE4LDEwICszMTcsMTAgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gVGV4dFRyYWNrOjphZGRDdWUoUmVmPFRleHRUcmFja0N1ZT4mJiBjdWUp
CiAKICAgICAvLyAyLiBBZGQgY3VlIHRvIHRoZSBtZXRob2QncyBUZXh0VHJhY2sgb2JqZWN0J3Mg
dGV4dCB0cmFjaydzIHRleHQgdHJhY2sgbGlzdCBvZiBjdWVzLgogICAgIGN1ZS0+c2V0VHJhY2so
dGhpcyk7Ci0gICAgZW5zdXJlVGV4dFRyYWNrQ3VlTGlzdCgpLmFkZChjdWUucHRyKCkpOworICAg
IGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKS5hZGQoY3VlLmNvcHlSZWYoKSk7CiAgICAgCiAgICAg
aWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrQWRkQ3VlKHRoaXMsIGN1
ZSk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tBZGRDdWUoKnRoaXMsIGN1ZSk7CiAKICAg
ICByZXR1cm4geyB9OwogfQpAQCAtMzM4LDEyICszMzcsMTIgQEAgRXhjZXB0aW9uT3I8dm9pZD4g
VGV4dFRyYWNrOjpyZW1vdmVDdWUoVGV4dFRyYWNrQ3VlJiBjdWUpCiAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOT1RfRk9VTkRfRVJSIH07CiAKICAgICAvLyAyLiBSZW1vdmUgY3VlIGZyb20g
dGhlIG1ldGhvZCdzIFRleHRUcmFjayBvYmplY3QncyB0ZXh0IHRyYWNrJ3MgdGV4dCB0cmFjayBs
aXN0IG9mIGN1ZXMuCi0gICAgaWYgKCFtX2N1ZXMgfHwgIW1fY3Vlcy0+cmVtb3ZlKCZjdWUpKQot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFURV9FUlIgfTsKLQorICAgIEFT
U0VSVChtX2N1ZXMpOworICAgIG1fY3Vlcy0+cmVtb3ZlKGN1ZSk7CisgICAgY3VlLnNldElzQWN0
aXZlKGZhbHNlKTsKICAgICBjdWUuc2V0VHJhY2sobnVsbHB0cik7CiAgICAgaWYgKG1fY2xpZW50
KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKHRoaXMsIGN1ZSk7CisgICAg
ICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUoKnRoaXMsIGN1ZSk7CiAKICAgICByZXR1
cm4geyB9OwogfQpAQCAtMzkyLDEwICszOTEsOSBAQCB2b2lkIFRleHRUcmFjazo6YWRkUmVnaW9u
KFJlZlB0cjxWVFRSZWdpb24+JiYgcmVnaW9uKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgLy8gT3RoZXJ3aXNlOiBhZGQgcmVnaW9uIHRvIHRoZSBtZXRob2QncyBUZXh0VHJhY2sgb2Jq
ZWN0J3MgdGV4dCB0cmFjawotICAgIC8vIGxpc3Qgb2YgcmVnaW9ucy4KKyAgICAvLyBPdGhlcndp
c2U6IGFkZCByZWdpb24gdG8gdGhlIG1ldGhvZCdzIFRleHRUcmFjayBvYmplY3QncyB0ZXh0IHRy
YWNrIGxpc3Qgb2YgcmVnaW9ucy4KICAgICByZWdpb24tPnNldFRyYWNrKHRoaXMpOwotICAgIHJl
Z2lvbkxpc3QuYWRkKFdURk1vdmUocmVnaW9uKSk7CisgICAgcmVnaW9uTGlzdC5hZGQocmVnaW9u
LnJlbGVhc2VOb25OdWxsKCkpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBUZXh0VHJhY2s6OnJl
bW92ZVJlZ2lvbihWVFRSZWdpb24qIHJlZ2lvbikKQEAgLTQwOCw5ICs0MDYsOCBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBUZXh0VHJhY2s6OnJlbW92ZVJlZ2lvbihWVFRSZWdpb24qIHJlZ2lvbikKICAg
ICBpZiAocmVnaW9uLT50cmFjaygpICE9IHRoaXMpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOT1RfRk9VTkRfRVJSIH07CiAKLSAgICBpZiAoIW1fcmVnaW9ucyB8fCAhbV9yZWdpb25zLT5y
ZW1vdmUocmVnaW9uKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfU1RBVEVf
RVJSIH07Ci0KKyAgICBBU1NFUlQobV9yZWdpb25zKTsKKyAgICBtX3JlZ2lvbnMtPnJlbW92ZSgq
cmVnaW9uKTsKICAgICByZWdpb24tPnNldFRyYWNrKG51bGxwdHIpOwogICAgIHJldHVybiB7IH07
CiB9CkBAIC00MjIsNyArNDE5LDcgQEAgdm9pZCBUZXh0VHJhY2s6OmN1ZVdpbGxDaGFuZ2UoVGV4
dFRyYWNrQ3VlKiBjdWUpCiAKICAgICAvLyBUaGUgY3VlIG1heSBuZWVkIHRvIGJlIHJlcG9zaXRp
b25lZCBpbiB0aGUgbWVkaWEgZWxlbWVudCdzIGludGVydmFsIHRyZWUsIG1heSBuZWVkIHRvCiAg
ICAgLy8gYmUgcmUtcmVuZGVyZWQsIGV0Yywgc28gcmVtb3ZlIGl0IGJlZm9yZSB0aGUgbW9kaWZp
Y2F0aW9uLi4uCi0gICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZSh0aGlzLCAqY3VlKTsK
KyAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKCp0aGlzLCAqY3VlKTsKIH0KIAogdm9p
ZCBUZXh0VHJhY2s6OmN1ZURpZENoYW5nZShUZXh0VHJhY2tDdWUqIGN1ZSkKQEAgLTQzMSwxMCAr
NDI4LDEwIEBAIHZvaWQgVGV4dFRyYWNrOjpjdWVEaWRDaGFuZ2UoVGV4dFRyYWNrQ3VlKiBjdWUp
CiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE1ha2Ugc3VyZSB0aGUgVGV4dFRyYWNrQ3VlTGlz
dCBvcmRlciBpcyB1cC10by1kYXRlLgotICAgIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKS51cGRh
dGVDdWVJbmRleChjdWUpOworICAgIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKS51cGRhdGVDdWVJ
bmRleCgqY3VlKTsKIAogICAgIC8vIC4uLiBhbmQgYWRkIGl0IGJhY2sgYWdhaW4uCi0gICAgbV9j
bGllbnQtPnRleHRUcmFja0FkZEN1ZSh0aGlzLCAqY3VlKTsKKyAgICBtX2NsaWVudC0+dGV4dFRy
YWNrQWRkQ3VlKCp0aGlzLCAqY3VlKTsKIH0KIAogaW50IFRleHRUcmFjazo6dHJhY2tJbmRleCgp
CkBAIC01NjQsNyArNTYxLDcgQEAgdm9pZCBUZXh0VHJhY2s6OnNldExhbmd1YWdlKGNvbnN0IEF0
b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiAgICAgLy8gMy4gSWYgdGhlIHNvdXJjZUJ1ZmZlciBhdHRy
aWJ1dGUgb24gdGhpcyB0cmFjayBpcyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmly
ZSBhIHNpbXBsZQogICAgIC8vIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCBzb3VyY2VCdWZmZXIudGV4
dFRyYWNrcy4KICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVmZmVy
LT50ZXh0VHJhY2tzKCktPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKKyAgICAgICAgbV9zb3VyY2VC
dWZmZXItPnRleHRUcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICAgICAvLyA0LiBR
dWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2UgYXQgdGhlIFRl
eHRUcmFja0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdGV4dFRyYWNrcyBh
dHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2suaAppbmRleCBiODA0OWM3MGNhZTFhYTk3ODVjMDRhNTQ5OWJjN2FlNmM4MzBjZWRi
Li5kY2UyMDEwNWY5ODc5YmVjM2IyN2E2ODk0YjlkNzg1YTIxN2UwYjM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKQEAgLTQ0LDEyICs0NCwxMiBAQCBjbGFzcyBWVFRSZWdp
b25MaXN0OwogY2xhc3MgVGV4dFRyYWNrQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5U
ZXh0VHJhY2tDbGllbnQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrS2luZENoYW5n
ZWQoVGV4dFRyYWNrKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdl
ZChUZXh0VHJhY2sqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4
dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0Kikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgVGV4dFRy
YWNrQ3VlJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRy
YWNrKiwgVGV4dFRyYWNrQ3VlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tLaW5k
Q2hhbmdlZChUZXh0VHJhY2smKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja01vZGVD
aGFuZ2VkKFRleHRUcmFjayYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3Vl
cyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxp
c3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2smLCBU
ZXh0VHJhY2tDdWUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShU
ZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSA9IDA7CiB9OwogCiBjbGFzcyBUZXh0VHJhY2sgOiBw
dWJsaWMgVHJhY2tCYXNlLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXggZmNiYTE5ZDBkYmJh
ZDRlMDA0NzkwOTFlY2Q1NmU4MjcyZGNlNThlZC4uM2RhNjZlMDVlMjc2NzlmZjUxMjM0M2I4OWU0
YTMzMzQ0ZjQ0YmRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3Vl
LmNwcApAQCAtNDksOCArNDksNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBj
b25zdCBpbnQgaW52YWxpZEN1ZUluZGV4ID0gLTE7Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4
dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPGNvbnN0IEF0b21pY1N0cmluZz4gY3VlKCJjdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKTsKQEAgLTYwLDkgKzU4LDYgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0
VHJhY2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lkKCkKIFRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3Vl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW5kKQogICAgIDogbV9zdGFydFRpbWUoc3RhcnQpCiAgICAgLCBt
X2VuZFRpbWUoZW5kKQotICAgICwgbV9jdWVJbmRleChpbnZhbGlkQ3VlSW5kZXgpCi0gICAgLCBt
X3Byb2Nlc3NpbmdDdWVDaGFuZ2VzKDApCi0gICAgLCBtX3RyYWNrKDApCiAgICAgLCBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkKICAgICAsIG1faXNBY3RpdmUoZmFsc2UpCiAgICAg
LCBtX3BhdXNlT25FeGl0KGZhbHNlKQpAQCAtMTQ5LDIzICsxNDQsNiBAQCB2b2lkIFRleHRUcmFj
a0N1ZTo6c2V0UGF1c2VPbkV4aXQoYm9vbCB2YWx1ZSkKICAgICBtX3BhdXNlT25FeGl0ID0gdmFs
dWU7CiB9CiAKLWludCBUZXh0VHJhY2tDdWU6OmN1ZUluZGV4KCkKLXsKLSAgICBpZiAobV9jdWVJ
bmRleCA9PSBpbnZhbGlkQ3VlSW5kZXgpIHsKLSAgICAgICAgQVNTRVJUKHRyYWNrKCkpOwotICAg
ICAgICBBU1NFUlQodHJhY2soKS0+Y3VlcygpKTsKLSAgICAgICAgaWYgKFRleHRUcmFja0N1ZUxp
c3QqIGN1ZUxpc3QgPSB0cmFjaygpLT5jdWVzKCkpCi0gICAgICAgICAgICBtX2N1ZUluZGV4ID0g
Y3VlTGlzdC0+Z2V0Q3VlSW5kZXgodGhpcyk7Ci0gICAgfQotCi0gICAgcmV0dXJuIG1fY3VlSW5k
ZXg7Ci19Ci0KLXZvaWQgVGV4dFRyYWNrQ3VlOjppbnZhbGlkYXRlQ3VlSW5kZXgoKQotewotICAg
IG1fY3VlSW5kZXggPSBpbnZhbGlkQ3VlSW5kZXg7Ci19Ci0KIGJvb2wgVGV4dFRyYWNrQ3VlOjpk
aXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCkKIHsKICAgICAvLyBXaGVuIGEgVGV4dFRyYWNrJ3Mg
bW9kZSBpcyBkaXNhYmxlZDogbm8gY3VlcyBhcmUgYWN0aXZlLCBubyBldmVudHMgZmlyZWQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAppbmRleCA1NzM1MWRjNjBlMmI2
ZWFmNTA4MGYwMzA5YTQ1MTY4Zjc4MzBhNzM0Li4zNTZiNjMzNTk3NDYwNDdkNmIxZDFmOGY3ZmRh
MDhkMjg0NmI3OGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0N1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgK
QEAgLTY1LDkgKzY1LDYgQEAgcHVibGljOgogICAgIE1lZGlhVGltZSBlbmRNZWRpYVRpbWUoKSBj
b25zdCB7IHJldHVybiBtX2VuZFRpbWU7IH0KICAgICB2b2lkIHNldEVuZFRpbWUoY29uc3QgTWVk
aWFUaW1lJik7CiAKLSAgICBpbnQgY3VlSW5kZXgoKTsKLSAgICB2b2lkIGludmFsaWRhdGVDdWVJ
bmRleCgpOwotCiAgICAgYm9vbCBpc0FjdGl2ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJc0Fj
dGl2ZShib29sKTsKIApAQCAtMTExLDEwICsxMDgsOSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBt
X2lkOwogICAgIE1lZGlhVGltZSBtX3N0YXJ0VGltZTsKICAgICBNZWRpYVRpbWUgbV9lbmRUaW1l
OwotICAgIGludCBtX2N1ZUluZGV4OwotICAgIGludCBtX3Byb2Nlc3NpbmdDdWVDaGFuZ2VzOwor
ICAgIGludCBtX3Byb2Nlc3NpbmdDdWVDaGFuZ2VzIHsgMCB9OwogCi0gICAgVGV4dFRyYWNrKiBt
X3RyYWNrOworICAgIFRleHRUcmFjayogbV90cmFjayB7IG51bGxwdHIgfTsKIAogICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5jcHAKaW5kZXggZmZkOGVhZTRk
OTkzNjQ4MGE2YTViYzM1OTJmZTA4MGI3MTZlMTNhMS4uYTE5NmU0MzFlYmFiZmFiYWJjYTVmZDhh
N2EzNWM5MTY5YTUwYTFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tDdWVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0N1ZUxpc3QuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjksMTE3ICszMCwxMDMgQEAKIAogI2luY2x1ZGUgIlRleHRUcmFja0N1ZUxp
c3QuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworLy8gQ2hlY2tpbmcgc29ydGluZyBpcyB0b28g
c2xvdyBmb3IgZ2VuZXJhbCB1c2U7IHR1cm4gaXQgb24gZXhwbGljaXRseSB3aGVuIHdvcmtpbmcg
b24gdGhpcyBjbGFzcy4KKyN1bmRlZiBDSEVDS19TT1JUSU5HCiAKLVRleHRUcmFja0N1ZUxpc3Q6
OlRleHRUcmFja0N1ZUxpc3QoKQotewotfQorI2lmZGVmIENIRUNLX1NPUlRJTkcKKyNkZWZpbmUg
QVNTRVJUX1NPUlRFRChiZWdpbiwgZW5kLCBjb21wYXJhdG9yKSBBU1NFUlQoc3RkOjppc19zb3J0
ZWQoYmVnaW4sIGVuZCwgY29tcGFyYXRvcikpCisjZWxzZQorI2RlZmluZSBBU1NFUlRfU09SVEVE
KGJlZ2luLCBlbmQsIGNvbXBhcmF0b3IpICgodm9pZCkwKQorI2VuZGlmCiAKLXVuc2lnbmVkIGxv
bmcgVGV4dFRyYWNrQ3VlTGlzdDo6bGVuZ3RoKCkgY29uc3QKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVDdWVzKGNvbnN0IFJlZlB0cjxUZXh0VHJhY2tD
dWU+JiBhLCBjb25zdCBSZWZQdHI8VGV4dFRyYWNrQ3VlPiYgYikKIHsKLSAgICByZXR1cm4gbV9s
aXN0LnNpemUoKTsKKyAgICByZXR1cm4gYS0+aXNPcmRlcmVkQmVmb3JlKGIuZ2V0KCkpOwogfQog
Ci11bnNpZ25lZCBsb25nIFRleHRUcmFja0N1ZUxpc3Q6OmdldEN1ZUluZGV4KFRleHRUcmFja0N1
ZSogY3VlKSBjb25zdAordW5zaWduZWQgVGV4dFRyYWNrQ3VlTGlzdDo6Y3VlSW5kZXgoVGV4dFRy
YWNrQ3VlJiBjdWUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbGlzdC5maW5kKGN1ZSk7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMCwgc2l6ZSA9IG1fdmVjdG9yLnNpemUoKTsgaSA8IHNpemU7ICsr
aSkgeworICAgICAgICBpZiAobV92ZWN0b3JbaV0gPT0gJmN1ZSkKKyAgICAgICAgICAgIHJldHVy
biBpOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKIH0K
IAogVGV4dFRyYWNrQ3VlKiBUZXh0VHJhY2tDdWVMaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KSBj
b25zdAogewotICAgIGlmIChpbmRleCA8IG1fbGlzdC5zaXplKCkpCi0gICAgICAgIHJldHVybiBt
X2xpc3RbaW5kZXhdLmdldCgpOwotICAgIHJldHVybiAwOworICAgIGlmIChpbmRleCA+PSBtX3Zl
Y3Rvci5zaXplKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBtX3ZlY3Rv
cltpbmRleF0uZ2V0KCk7CiB9CiAKIFRleHRUcmFja0N1ZSogVGV4dFRyYWNrQ3VlTGlzdDo6Z2V0
Q3VlQnlJZChjb25zdCBTdHJpbmcmIGlkKSBjb25zdAogewotICAgIGZvciAoYXV0byYgY3VlIDog
bV9saXN0KSB7CisgICAgZm9yIChhdXRvJiBjdWUgOiBtX3ZlY3RvcikgewogICAgICAgICBpZiAo
Y3VlLT5pZCgpID09IGlkKQogICAgICAgICAgICAgcmV0dXJuIGN1ZS5nZXQoKTsKICAgICB9Ci0g
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVRleHRUcmFja0N1ZUxpc3Qq
IFRleHRUcmFja0N1ZUxpc3Q6OmFjdGl2ZUN1ZXMoKQorVGV4dFRyYWNrQ3VlTGlzdCYgVGV4dFRy
YWNrQ3VlTGlzdDo6YWN0aXZlQ3VlcygpCiB7CiAgICAgaWYgKCFtX2FjdGl2ZUN1ZXMpCiAgICAg
ICAgIG1fYWN0aXZlQ3VlcyA9IGNyZWF0ZSgpOwogCi0gICAgbV9hY3RpdmVDdWVzLT5jbGVhcigp
OwotICAgIGZvciAoYXV0byYgY3VlIDogbV9saXN0KSB7CisgICAgVmVjdG9yPFJlZlB0cjxUZXh0
VHJhY2tDdWU+PiBhY3RpdmVDdWVzVmVjdG9yOworICAgIGZvciAoYXV0byYgY3VlIDogbV92ZWN0
b3IpIHsKICAgICAgICAgaWYgKGN1ZS0+aXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1fYWN0aXZl
Q3Vlcy0+YWRkKGN1ZSk7CisgICAgICAgICAgICBhY3RpdmVDdWVzVmVjdG9yLmFwcGVuZChjdWUp
OwogICAgIH0KLSAgICByZXR1cm4gbV9hY3RpdmVDdWVzLmdldCgpOworICAgIEFTU0VSVF9TT1JU
RUQoYWN0aXZlQ3Vlc1ZlY3Rvci5iZWdpbigpLCBhY3RpdmVDdWVzVmVjdG9yLmVuZCgpLCBjb21w
YXJlQ3Vlcyk7CisgICAgbV9hY3RpdmVDdWVzLT5tX3ZlY3RvciA9IFdURk1vdmUoYWN0aXZlQ3Vl
c1ZlY3Rvcik7CisKKyAgICAvLyBGSVhNRTogVGhpcyBsaXN0IG9mIGFjdGl2ZSBjdWVzIGlzIG5v
dCB1cGRhdGVkIGFzIGN1ZXMgYXJlIGFkZGVkLCByZW1vdmVkLCBiZWNvbWUgYWN0aXZlLCBhbmQg
YmVjb21lIGluYWN0aXZlLgorICAgIC8vIEluc3RlYWQgaXQgaXMgb25seSB1cGRhdGVkIGVhY2gg
dGltZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBhZ2Fpbi4gVGhhdCBpcyBub3QgY29uc2lzdGVu
dCB3aXRoIG90aGVyIGR5bmFtaWMgRE9NIGxpc3RzLgorICAgIHJldHVybiAqbV9hY3RpdmVDdWVz
OwogfQogCi1ib29sIFRleHRUcmFja0N1ZUxpc3Q6OmFkZChQYXNzUmVmUHRyPFRleHRUcmFja0N1
ZT4gY3VlKQordm9pZCBUZXh0VHJhY2tDdWVMaXN0OjphZGQoUmVmPFRleHRUcmFja0N1ZT4mJiBj
dWUpCiB7CiAgICAgQVNTRVJUKGN1ZS0+c3RhcnRNZWRpYVRpbWUoKSA+PSBNZWRpYVRpbWU6Onpl
cm9UaW1lKCkpOwogICAgIEFTU0VSVChjdWUtPmVuZE1lZGlhVGltZSgpID49IE1lZGlhVGltZTo6
emVyb1RpbWUoKSk7CiAKLSAgICByZXR1cm4gYWRkKGN1ZSwgMCwgbV9saXN0LnNpemUoKSk7Cisg
ICAgUmVmUHRyPFRleHRUcmFja0N1ZT4gY3VlUmVmUHRyIHsgV1RGTW92ZShjdWUpIH07CisgICAg
dW5zaWduZWQgaW5zZXJ0aW9uUG9zaXRpb24gPSBzdGQ6OnVwcGVyX2JvdW5kKG1fdmVjdG9yLmJl
Z2luKCksIG1fdmVjdG9yLmVuZCgpLCBjdWVSZWZQdHIsIGNvbXBhcmVDdWVzKSAtIG1fdmVjdG9y
LmJlZ2luKCk7CisgICAgQVNTRVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5l
bmQoKSwgY29tcGFyZUN1ZXMpOworICAgIG1fdmVjdG9yLmluc2VydChpbnNlcnRpb25Qb3NpdGlv
biwgV1RGTW92ZShjdWVSZWZQdHIpKTsKKyAgICBBU1NFUlRfU09SVEVEKG1fdmVjdG9yLmJlZ2lu
KCksIG1fdmVjdG9yLmVuZCgpLCBjb21wYXJlQ3Vlcyk7CiB9CiAKLWJvb2wgVGV4dFRyYWNrQ3Vl
TGlzdDo6YWRkKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBwcnBDdWUsIHNpemVfdCBzdGFydCwg
c2l6ZV90IGVuZCkKK3ZvaWQgVGV4dFRyYWNrQ3VlTGlzdDo6cmVtb3ZlKFRleHRUcmFja0N1ZSYg
Y3VlKQogewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHN0YXJ0IDw9IG1f
bGlzdC5zaXplKCkpOwotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGVuZCA8
PSBtX2xpc3Quc2l6ZSgpKTsKLQotICAgIC8vIE1haW50YWluIHRleHQgdHJhY2sgY3VlIG9yZGVy
OgotICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdv
cmsvI3RleHQtdHJhY2stY3VlLW9yZGVyCi0gICAgUmVmUHRyPFRleHRUcmFja0N1ZT4gY3VlID0g
cHJwQ3VlOwotICAgIGlmIChzdGFydCA9PSBlbmQpIHsKLSAgICAgICAgaWYgKCFtX2xpc3QuaXNF
bXB0eSgpICYmIChzdGFydCA+IDApICYmIChtX2xpc3Rbc3RhcnQgLSAxXS5nZXQoKSA9PSBjdWUu
Z2V0KCkpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIG1fbGlzdC5pbnNl
cnQoc3RhcnQsIGN1ZSk7Ci0gICAgICAgIGludmFsaWRhdGVDdWVJbmRleGVzKHN0YXJ0KTsKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgc2l6ZV90IGluZGV4ID0gKHN0YXJ0ICsg
ZW5kKSAvIDI7Ci0gICAgaWYgKGN1ZS0+aXNPcmRlcmVkQmVmb3JlKG1fbGlzdFtpbmRleF0uZ2V0
KCkpKQotICAgICAgICByZXR1cm4gYWRkKFdURk1vdmUoY3VlKSwgc3RhcnQsIGluZGV4KTsKLQot
ICAgIHJldHVybiBhZGQoV1RGTW92ZShjdWUpLCBpbmRleCArIDEsIGVuZCk7CisgICAgQVNTRVJU
X1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSwgY29tcGFyZUN1ZXMpOwor
ICAgIG1fdmVjdG9yLnJlbW92ZShjdWVJbmRleChjdWUpKTsKKyAgICBBU1NFUlRfU09SVEVEKG1f
dmVjdG9yLmJlZ2luKCksIG1fdmVjdG9yLmVuZCgpLCBjb21wYXJlQ3Vlcyk7CiB9CiAKLWJvb2wg
VGV4dFRyYWNrQ3VlTGlzdDo6cmVtb3ZlKFRleHRUcmFja0N1ZSogY3VlKQordm9pZCBUZXh0VHJh
Y2tDdWVMaXN0Ojp1cGRhdGVDdWVJbmRleChUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKLSAgICBzaXpl
X3QgaW5kZXggPSBtX2xpc3QuZmluZChjdWUpOwotICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgY3VlLT5zZXRJc0FjdGl2ZShmYWxzZSk7Ci0g
ICAgbV9saXN0LnJlbW92ZShpbmRleCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgVGV4
dFRyYWNrQ3VlTGlzdDo6Y29udGFpbnMoVGV4dFRyYWNrQ3VlKiBjdWUpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fbGlzdC5jb250YWlucyhjdWUpOwotfQotCi1ib29sIFRleHRUcmFja0N1ZUxpc3Q6
OnVwZGF0ZUN1ZUluZGV4KFRleHRUcmFja0N1ZSogY3VlKQotewotICAgIGlmICghY29udGFpbnMo
Y3VlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHJlbW92ZShjdWUpOwotICAg
IHJldHVybiBhZGQoY3VlKTsKLX0KLQotdm9pZCBUZXh0VHJhY2tDdWVMaXN0OjpjbGVhcigpCi17
Ci0gICAgbV9saXN0LmNsZWFyKCk7Ci19CisgICAgYXV0byBjdWVQb3NpdGlvbiA9IG1fdmVjdG9y
LmJlZ2luKCkgKyBjdWVJbmRleChjdWUpOworICAgIGF1dG8gYWZ0ZXJDdWVQb3NpdGlvbiA9IGN1
ZVBvc2l0aW9uICsgMTsKKworICAgIEFTU0VSVF9TT1JURUQobV92ZWN0b3IuYmVnaW4oKSwgY3Vl
UG9zaXRpb24sIGNvbXBhcmVDdWVzKTsKKyAgICBBU1NFUlRfU09SVEVEKGFmdGVyQ3VlUG9zaXRp
b24sIG1fdmVjdG9yLmVuZCgpLCBjb21wYXJlQ3Vlcyk7CisKKyAgICBhdXRvIHJlaW5zZXJ0aW9u
UG9zaXRpb24gPSBzdGQ6OnVwcGVyX2JvdW5kKG1fdmVjdG9yLmJlZ2luKCksIGN1ZVBvc2l0aW9u
LCAqY3VlUG9zaXRpb24sIGNvbXBhcmVDdWVzKTsKKyAgICBpZiAocmVpbnNlcnRpb25Qb3NpdGlv
biAhPSBjdWVQb3NpdGlvbikKKyAgICAgICAgc3RkOjpyb3RhdGUocmVpbnNlcnRpb25Qb3NpdGlv
biwgY3VlUG9zaXRpb24sIGFmdGVyQ3VlUG9zaXRpb24pOworICAgIGVsc2UgeworICAgICAgICBy
ZWluc2VydGlvblBvc2l0aW9uID0gc3RkOjp1cHBlcl9ib3VuZChhZnRlckN1ZVBvc2l0aW9uLCBt
X3ZlY3Rvci5lbmQoKSwgKmN1ZVBvc2l0aW9uLCBjb21wYXJlQ3Vlcyk7CisgICAgICAgIGlmIChy
ZWluc2VydGlvblBvc2l0aW9uICE9IGFmdGVyQ3VlUG9zaXRpb24pCisgICAgICAgICAgICBzdGQ6
OnJvdGF0ZShjdWVQb3NpdGlvbiwgYWZ0ZXJDdWVQb3NpdGlvbiwgcmVpbnNlcnRpb25Qb3NpdGlv
bik7CisgICAgfQogCi12b2lkIFRleHRUcmFja0N1ZUxpc3Q6OmludmFsaWRhdGVDdWVJbmRleGVz
KHNpemVfdCBzdGFydCkKLXsKLSAgICBmb3IgKHNpemVfdCBpID0gc3RhcnQ7IGkgPCBtX2xpc3Qu
c2l6ZSgpOyArK2kpCi0gICAgICAgIG1fbGlzdFtpXS0+aW52YWxpZGF0ZUN1ZUluZGV4KCk7Cisg
ICAgQVNTRVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSwgY29tcGFy
ZUN1ZXMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5oCmluZGV4IGEyMThmYjY5MDg5NjI0YzFmMjgzOWM3
NTNhYzEyNWZmMGRiM2MyOTkuLjZlN2Y0MmI5OWI4NDAyODVhYTUwMjY4YzgyYjQwYTk4MjAyYzk0
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlz
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5oCkBA
IC0yOCw0NCArMjgsNDEgQEAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKICNpbmNsdWRlICJU
ZXh0VHJhY2tDdWUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFRleHRUcmFja0N1ZUxpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxUZXh0
VHJhY2tDdWVMaXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxUZXh0VHJhY2tDdWVMaXN0
PiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNr
Q3VlTGlzdCk7Ci0gICAgfQotCi0gICAgflRleHRUcmFja0N1ZUxpc3QoKSB7IH0KLQotICAgIHVu
c2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgbG9uZyBnZXRDdWVJbmRl
eChUZXh0VHJhY2tDdWUqKSBjb25zdDsKLQorICAgIHN0YXRpYyBSZWY8VGV4dFRyYWNrQ3VlTGlz
dD4gY3JlYXRlKCk7CisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CiAgICAgVGV4dFRyYWNr
Q3VlKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKICAgICBUZXh0VHJhY2tDdWUqIGdldEN1
ZUJ5SWQoY29uc3QgU3RyaW5nJikgY29uc3Q7Ci0gICAgVGV4dFRyYWNrQ3VlTGlzdCogYWN0aXZl
Q3VlcygpOwogCi0gICAgYm9vbCBhZGQoUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+KTsKLSAgICBi
b29sIHJlbW92ZShUZXh0VHJhY2tDdWUqKTsKLSAgICBib29sIGNvbnRhaW5zKFRleHRUcmFja0N1
ZSopIGNvbnN0OwotICAgIAotICAgIGJvb2wgdXBkYXRlQ3VlSW5kZXgoVGV4dFRyYWNrQ3VlKik7
CisgICAgdW5zaWduZWQgY3VlSW5kZXgoVGV4dFRyYWNrQ3VlJikgY29uc3Q7CisgICAgVGV4dFRy
YWNrQ3VlTGlzdCYgYWN0aXZlQ3VlcygpOworCisgICAgdm9pZCBhZGQoUmVmPFRleHRUcmFja0N1
ZT4mJik7CisgICAgdm9pZCByZW1vdmUoVGV4dFRyYWNrQ3VlJik7CisKKyAgICB2b2lkIHVwZGF0
ZUN1ZUluZGV4KFRleHRUcmFja0N1ZSYpOwogCiBwcml2YXRlOgotICAgIFRleHRUcmFja0N1ZUxp
c3QoKTsKLSAgICBib29sIGFkZChQYXNzUmVmUHRyPFRleHRUcmFja0N1ZT4sIHNpemVfdCwgc2l6
ZV90KTsKLSAgICB2b2lkIGNsZWFyKCk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlQ3VlSW5kZXhlcyhz
aXplX3QpOworICAgIFRleHRUcmFja0N1ZUxpc3QoKSA9IGRlZmF1bHQ7CiAKLSAgICBWZWN0b3I8
UmVmUHRyPFRleHRUcmFja0N1ZT4+IG1fbGlzdDsKKyAgICBWZWN0b3I8UmVmUHRyPFRleHRUcmFj
a0N1ZT4+IG1fdmVjdG9yOwogICAgIFJlZlB0cjxUZXh0VHJhY2tDdWVMaXN0PiBtX2FjdGl2ZUN1
ZXM7CiB9OwogCitpbmxpbmUgUmVmPFRleHRUcmFja0N1ZUxpc3Q+IFRleHRUcmFja0N1ZUxpc3Q6
OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrQ3VlTGlzdCk7
Cit9CisKK2lubGluZSB1bnNpZ25lZCBUZXh0VHJhY2tDdWVMaXN0OjpsZW5ndGgoKSBjb25zdAor
eworICAgIHJldHVybiBtX3ZlY3Rvci5zaXplKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZUVFJlZ2lvbkxpc3QuY3BwCmluZGV4IGI3ZTc5ZDBmN2U2YmJjNzRlNDFhNzFmZDVi
ZWU3NDFkYzEyZDdkZDIuLmUyYjA1YzgxMmJiYzRmMjI0ZjI3NzQzNmE0YzI2MjFjN2Q5MzBkYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNwcApAQCAtMSw2
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw1NyAr
MjksNDEgQEAKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVZUVFJlZ2lvbkxpc3Q6OlZUVFJlZ2lvbkxpc3QoKQotewotfQotCi11bnNpZ25lZCBs
b25nIFZUVFJlZ2lvbkxpc3Q6Omxlbmd0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbGlzdC5z
aXplKCk7Ci19Ci0KIFZUVFJlZ2lvbiogVlRUUmVnaW9uTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRl
eCkgY29uc3QKIHsKLSAgICBpZiAoaW5kZXggPCBtX2xpc3Quc2l6ZSgpKQotICAgICAgICByZXR1
cm4gbV9saXN0W2luZGV4XS5nZXQoKTsKLQotICAgIHJldHVybiAwOworICAgIGlmIChpbmRleCA+
PSBtX3ZlY3Rvci5zaXplKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBj
b25zdF9jYXN0PFZUVFJlZ2lvbio+KG1fdmVjdG9yW2luZGV4XS5wdHIoKSk7CiB9CiAKIFZUVFJl
Z2lvbiogVlRUUmVnaW9uTGlzdDo6Z2V0UmVnaW9uQnlJZChjb25zdCBTdHJpbmcmIGlkKSBjb25z
dAogeworICAgIC8vIEZJWE1FOiBXaHkgaXMgdGhpcyBzcGVjaWFsIGNhc2UgbmVlZGVkPwogICAg
IGlmIChpZC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgZm9yIChjb25zdCBh
dXRvJiByZWdpb24gOiBtX2xpc3QpIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgZm9y
IChhdXRvJiByZWdpb24gOiBtX3ZlY3RvcikgewogICAgICAgICBpZiAocmVnaW9uLT5pZCgpID09
IGlkKQotICAgICAgICAgICAgcmV0dXJuIHJlZ2lvbi5nZXQoKTsKKyAgICAgICAgICAgIHJldHVy
biBjb25zdF9jYXN0PFZUVFJlZ2lvbio+KHJlZ2lvbi5wdHIoKSk7CiAgICAgfQotCi0gICAgcmV0
dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgVlRUUmVnaW9uTGlzdDo6YWRk
KFBhc3NSZWZQdHI8VlRUUmVnaW9uPiByZWdpb24pCit2b2lkIFZUVFJlZ2lvbkxpc3Q6OmFkZChS
ZWY8VlRUUmVnaW9uPiYmIHJlZ2lvbikKIHsKLSAgICBtX2xpc3QuYXBwZW5kKHJlZ2lvbik7Cisg
ICAgbV92ZWN0b3IuYXBwZW5kKFdURk1vdmUocmVnaW9uKSk7CiB9CiAKLWJvb2wgVlRUUmVnaW9u
TGlzdDo6cmVtb3ZlKFZUVFJlZ2lvbiogcmVnaW9uKQordm9pZCBWVFRSZWdpb25MaXN0OjpyZW1v
dmUoVlRUUmVnaW9uJiByZWdpb24pCiB7Ci0gICAgc2l6ZV90IGluZGV4ID0gbV9saXN0LmZpbmQo
cmVnaW9uKTsKLSAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIG1fbGlzdC5yZW1vdmUoaW5kZXgpOwotICAgIHJldHVybiB0cnVlOwotfQotCi12
b2lkIFZUVFJlZ2lvbkxpc3Q6OmNsZWFyKCkKLXsKLSAgICBtX2xpc3QuY2xlYXIoKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwLCBzaXplID0gbV92ZWN0b3Iuc2l6ZSgpOyBpIDwgc2l6ZTsgKytp
KSB7CisgICAgICAgIGlmIChtX3ZlY3RvcltpXS5wdHIoKSA9PSAmcmVnaW9uKSB7CisgICAgICAg
ICAgICBtX3ZlY3Rvci5yZW1vdmUoaSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlz
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmgKaW5kZXggMmZk
ZGRjMmVkMTlhNTZlNDgxYWFjZjQ2NWJjODhhN2IyYjdmY2NlMy4uZWQwZmM0YzllZjdiN2U0M2I5
MTAxZTQ3NGRkNTNkNGE5ZGQ5ZjIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WVFRSZWdpb25MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRS
ZWdpb25MaXN0LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjksMzYgKzI5LDQzIEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAj
aW5jbHVkZSAiVlRUUmVnaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBWVFRSZWdpb25MaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8
VlRUUmVnaW9uTGlzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VlRUUmVnaW9uTGlzdD4g
Y3JlYXRlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZUVFJlZ2lvbkxp
c3QpOwotICAgIH0KLQotICAgIH5WVFRSZWdpb25MaXN0KCkgeyB9Ci0KLSAgICB1bnNpZ25lZCBs
b25nIGxlbmd0aCgpIGNvbnN0OworICAgIHN0YXRpYyBSZWY8VlRUUmVnaW9uTGlzdD4gY3JlYXRl
KCk7CiAKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKICAgICBWVFRSZWdpb24qIGl0ZW0o
dW5zaWduZWQgaW5kZXgpIGNvbnN0OwogICAgIFZUVFJlZ2lvbiogZ2V0UmVnaW9uQnlJZChjb25z
dCBTdHJpbmcmKSBjb25zdDsKIAotICAgIHZvaWQgYWRkKFBhc3NSZWZQdHI8VlRUUmVnaW9uPik7
Ci0gICAgYm9vbCByZW1vdmUoVlRUUmVnaW9uKik7CisgICAgdm9pZCBhZGQoUmVmPFZUVFJlZ2lv
bj4mJik7CisgICAgdm9pZCByZW1vdmUoVlRUUmVnaW9uJik7CiAKIHByaXZhdGU6Ci0gICAgVlRU
UmVnaW9uTGlzdCgpOworICAgIFZUVFJlZ2lvbkxpc3QoKSA9IGRlZmF1bHQ7CisKICAgICB2b2lk
IGNsZWFyKCk7CiAKLSAgICBWZWN0b3I8UmVmUHRyPFZUVFJlZ2lvbj4+IG1fbGlzdDsKKyAgICBW
ZWN0b3I8UmVmPFZUVFJlZ2lvbj4+IG1fdmVjdG9yOwogfTsKIAoraW5saW5lIFJlZjxWVFRSZWdp
b25MaXN0PiBWVFRSZWdpb25MaXN0OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFZUVFJlZ2lvbkxpc3QpOworfQorCitpbmxpbmUgdW5zaWduZWQgVlRUUmVnaW9uTGlzdDo6
bGVuZ3RoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92ZWN0b3Iuc2l6ZSgpOworfQorCitpbmxp
bmUgdm9pZCBWVFRSZWdpb25MaXN0OjpjbGVhcigpCit7CisgICAgbV92ZWN0b3IuY2xlYXIoKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RS
QUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5pZGwKaW5kZXgg
NTM4MWQzOWM2NmYxY2ZjM2QwMjFiMWRjNDBlYzMyODE0MmM3YmNkMS4uNDg1YTkxNWU3ZDdmMDdi
Mzg1OGViMGM3YjE4NWFiYWE5NzhhOTM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9WVFRSZWdpb25MaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZUVFJlZ2lvbkxpc3QuaWRsCkBAIC0yNCwxMiArMjQsMTEgQEAKICAqLwogCiBbCi0gICAgTm9J
bnRlcmZhY2VPYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9VklERU9fVFJBQ0ssCiAgICAgSW1wbGVt
ZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKIF0gaW50ZXJmYWNl
IFZUVFJlZ2lvbkxpc3QgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxl
bmd0aDsKICAgICBnZXR0ZXIgVlRUUmVnaW9uIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAg
ICAgVlRUUmVnaW9uIGdldFJlZ2lvbkJ5SWQoRE9NU3RyaW5nIGlkKTsKIH07Ci0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCmluZGV4IGY4MGJjMTBhOGNjOGRlMjgyZDlm
YWYzMTk0NmQ2MWNkZTBjYmM0MzEuLjQ3NzYyYjQxZTVmMTU1MzU3NDEzNjNjYjVlYjg1ZGEwMDI3
M2FlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcApAQCAtODEs
MTAgKzgxLDEwIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgVmlkZW9UcmFjazo6Y29tbWVudGFyeUtl
eXdvcmQoKQogICAgIHJldHVybiBjb21tZW50YXJ5OwogfQogCi1WaWRlb1RyYWNrOjpWaWRlb1Ry
YWNrKFZpZGVvVHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0
ZT4gdHJhY2tQcml2YXRlKQotICAgIDogTWVkaWFUcmFja0Jhc2UoTWVkaWFUcmFja0Jhc2U6OlZp
ZGVvVHJhY2ssIHRyYWNrUHJpdmF0ZS0+aWQoKSwgdHJhY2tQcml2YXRlLT5sYWJlbCgpLCB0cmFj
a1ByaXZhdGUtPmxhbmd1YWdlKCkpCi0gICAgLCBtX3NlbGVjdGVkKHRyYWNrUHJpdmF0ZS0+c2Vs
ZWN0ZWQoKSkKLSAgICAsIG1fY2xpZW50KGNsaWVudCkKK1ZpZGVvVHJhY2s6OlZpZGVvVHJhY2so
VmlkZW9UcmFja0NsaWVudCYgY2xpZW50LCBWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRl
KQorICAgIDogTWVkaWFUcmFja0Jhc2UoTWVkaWFUcmFja0Jhc2U6OlZpZGVvVHJhY2ssIHRyYWNr
UHJpdmF0ZS5pZCgpLCB0cmFja1ByaXZhdGUubGFiZWwoKSwgdHJhY2tQcml2YXRlLmxhbmd1YWdl
KCkpCisgICAgLCBtX3NlbGVjdGVkKHRyYWNrUHJpdmF0ZS5zZWxlY3RlZCgpKQorICAgICwgbV9j
bGllbnQoJmNsaWVudCkKICAgICAsIG1fcHJpdmF0ZSh0cmFja1ByaXZhdGUpCiB7CiAgICAgbV9w
cml2YXRlLT5zZXRDbGllbnQodGhpcyk7CkBAIC05MywxNSArOTMsMTIgQEAgVmlkZW9UcmFjazo6
VmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8VmlkZW9UcmFj
a1ByaXZhdGU+IHQKIAogVmlkZW9UcmFjazo6flZpZGVvVHJhY2soKQogewotICAgIG1fcHJpdmF0
ZS0+c2V0Q2xpZW50KDApOworICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwogfQog
Ci12b2lkIFZpZGVvVHJhY2s6OnNldFByaXZhdGUoUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0
ZT4gdHJhY2tQcml2YXRlKQordm9pZCBWaWRlb1RyYWNrOjpzZXRQcml2YXRlKFZpZGVvVHJhY2tQ
cml2YXRlJiB0cmFja1ByaXZhdGUpCiB7Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7Ci0gICAgQVNT
RVJUKHRyYWNrUHJpdmF0ZSk7Ci0KLSAgICBpZiAobV9wcml2YXRlID09IHRyYWNrUHJpdmF0ZSkK
KyAgICBpZiAobV9wcml2YXRlLnB0cigpID09ICZ0cmFja1ByaXZhdGUpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwpAQCAtMTM5LDQ2ICsxMzYs
NDUgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZXRTZWxlY3RlZChjb25zdCBib29sIHNlbGVjdGVkKQog
ICAgIG1fcHJpdmF0ZS0+c2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOwogCiAgICAgaWYgKG1fY2xpZW50
KQotICAgICAgICBtX2NsaWVudC0+dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCh0aGlzKTsKKyAg
ICAgICAgbV9jbGllbnQtPnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoKnRoaXMpOwogfQogCiBz
aXplX3QgVmlkZW9UcmFjazo6aW5iYW5kVHJhY2tJbmRleCgpCiB7Ci0gICAgQVNTRVJUKG1fcHJp
dmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dHJhY2tJbmRleCgpOwogfQogCiB2b2lkIFZp
ZGVvVHJhY2s6OnNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrUHJpdmF0ZSogdHJhY2tQcml2YXRl
LCBib29sIHNlbGVjdGVkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFj
a1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKKyAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwg
dHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZS5wdHIoKSk7CiAgICAgc2V0U2VsZWN0ZWQoc2VsZWN0
ZWQpOwogfQogCi12b2lkIFZpZGVvVHJhY2s6OmlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0
cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCit2b2lkIFZpZGVvVHJhY2s6Omlk
Q2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJh
Y2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRJZChpZCk7CiB9
CiAKLXZvaWQgVmlkZW9UcmFjazo6bGFiZWxDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNr
UHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkKK3ZvaWQgVmlkZW9UcmFjazo6bGFi
ZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpCiB7Ci0gICAgQVNTRVJUX1VOVVNF
RCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldExhYmVs
KGxhYmVsKTsKIH0KIAotdm9pZCBWaWRlb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2
YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKQordm9p
ZCBWaWRlb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFn
ZSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1f
cHJpdmF0ZSk7CiAgICAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2UpOwogfQogCi12b2lkIFZpZGVvVHJh
Y2s6OndpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlKQordm9pZCBWaWRl
b1RyYWNrOjp3aWxsUmVtb3ZlKCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwg
dHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7Ci0gICAgbWVkaWFFbGVtZW50KCktPnJlbW92ZVZp
ZGVvVHJhY2soKnRoaXMpOworICAgIGF1dG8qIGVsZW1lbnQgPSBtZWRpYUVsZW1lbnQoKTsKKyAg
ICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKyAgICBlbGVtZW50LT5yZW1vdmVWaWRl
b1RyYWNrKCp0aGlzKTsKIH0KIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKIHZvaWQgVmlk
ZW9UcmFjazo6c2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQpCiB7CiAgICAgLy8gMTAu
MSBraW5kLCBvbiBzZXR0aW5nOgpAQCAtMTkzLDcgKzE4OSw3IEBAIHZvaWQgVmlkZW9UcmFjazo6
c2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQpCiAgICAgLy8gMy4gSWYgdGhlIHNvdXJj
ZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhpcyB0cmFjayBpcyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBh
IHRhc2sgdG8gZmlyZSBhIHNpbXBsZQogICAgIC8vIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCBzb3Vy
Y2VCdWZmZXIudmlkZW9UcmFja3MuCiAgICAgaWYgKG1fc291cmNlQnVmZmVyKQotICAgICAgICBt
X3NvdXJjZUJ1ZmZlci0+dmlkZW9UcmFja3MoKS0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOworICAg
ICAgICBtX3NvdXJjZUJ1ZmZlci0+dmlkZW9UcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7
CiAKICAgICAvLyA0LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBj
aGFuZ2UgYXQgdGhlIFZpZGVvVHJhY2tMaXN0IG9iamVjdCByZWZlcmVuY2VkIGJ5CiAgICAgLy8g
dGhlIHZpZGVvVHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KQEAgLTIx
MywxMiArMjA5LDEzIEBAIHZvaWQgVmlkZW9UcmFjazo6c2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWlj
U3RyaW5nJiBsYW5ndWFnZSkKICAgICAvLyAzLiBJZiB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0
ZSBvbiB0aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1ZXVlIGEgdGFzayB0byBmaXJlIGEg
c2ltcGxlCiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHNvdXJjZUJ1ZmZlci52aWRlb1Ry
YWNrcy4KICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVmZmVyLT52
aWRlb1RyYWNrcygpLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CisgICAgICAgIG1fc291cmNlQnVm
ZmVyLT52aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIC8vIDQuIFF1
ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCB0aGUgVmlk
ZW9UcmFja0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdmlkZW9UcmFja3Mg
YXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAgIG1lZGlhRWxlbWVudCgpLT52
aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQg
VmlkZW9UcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WaWRlb1RyYWNrLmgKaW5kZXggYzUyZjliM2IxMmZjNjk2ODhkYTdmZDY3MDMzNzAxZmIxYjg0
ZjMyYy4uNzFhMjU0MGZlZTg5NjIyNDFkNDQ5MTcyNWE4MmUzOTEwOGQzOTcyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDEyICszOSwxMiBA
QCBjbGFzcyBWaWRlb1RyYWNrOwogY2xhc3MgVmlkZW9UcmFja0NsaWVudCB7CiBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+VmlkZW9UcmFja0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB2aWRl
b1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayYpID0gMDsKIH07CiAKLWNsYXNz
IFZpZGVvVHJhY2sgZmluYWwgOiBwdWJsaWMgTWVkaWFUcmFja0Jhc2UsIHB1YmxpYyBWaWRlb1Ry
YWNrUHJpdmF0ZUNsaWVudCB7CitjbGFzcyBWaWRlb1RyYWNrIGZpbmFsIDogcHVibGljIE1lZGlh
VHJhY2tCYXNlLCBwcml2YXRlIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFZpZGVvVHJhY2s+IGNyZWF0ZShWaWRlb1RyYWNrQ2xpZW50KiBjbGllbnQs
IFBhc3NSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKKyAgICBzdGF0aWMg
UmVmPFZpZGVvVHJhY2s+IGNyZWF0ZShWaWRlb1RyYWNrQ2xpZW50JiBjbGllbnQsIFZpZGVvVHJh
Y2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBWaWRlb1RyYWNrKGNsaWVudCwgdHJhY2tQcml2YXRlKSk7CiAgICAgfQpAQCAtNTYsNDgg
KzU2LDQ3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzaWduS2V5
d29yZCgpOwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1YnRpdGxlc0tleXdvcmQo
KTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjb21tZW50YXJ5S2V5d29yZCgpOwot
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZGVmYXVsdEtpbmRLZXl3b3JkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gZW1wdHlBdG9tOyB9CiAKICAgICBib29sIHNlbGVjdGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZWxlY3RlZDsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZChjb25zdCBi
b29sKTsKIAotICAgIHZvaWQgY2xlYXJDbGllbnQoKSBvdmVycmlkZSB7IG1fY2xpZW50ID0gMDsg
fQorICAgIHZvaWQgY2xlYXJDbGllbnQoKSBmaW5hbCB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQog
ICAgIFZpZGVvVHJhY2tDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9
CiAKICAgICBzaXplX3QgaW5iYW5kVHJhY2tJbmRleCgpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NP
VVJDRSkKLSAgICB2b2lkIHNldEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNldEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBzZXRMYW5n
dWFnZShjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKICNlbmRpZgogCiAgICAgY29uc3QgTWVk
aWFEZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24oKSBjb25zdDsKIAotICAgIHZvaWQgc2V0UHJpdmF0
ZShQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPik7Ci0KLXByb3RlY3RlZDoKLSAgICBWaWRl
b1RyYWNrKFZpZGVvVHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPiBw
cml2YXRlVHJhY2spOworICAgIHZvaWQgc2V0UHJpdmF0ZShWaWRlb1RyYWNrUHJpdmF0ZSYpOwog
CiBwcml2YXRlOgotICAgIGJvb2wgaXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgVmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50JiwgVmlkZW9UcmFj
a1ByaXZhdGUmKTsKKworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZGVmYXVsdEtpbmRLZXl3b3Jk
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZW1wdHlBdG9tOyB9CisgICAgYm9vbCBpc1ZhbGlkS2lu
ZChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIFZpZGVvVHJhY2tQ
cml2YXRlQ2xpZW50Ci0gICAgdm9pZCBzZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFja1ByaXZhdGUq
LCBib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIHNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrUHJp
dmF0ZSosIGJvb2wpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAotICAg
IHZvaWQgaWRDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBv
dmVycmlkZTsKLSAgICB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3Qg
QXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQ
cml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2ls
bFJlbW92ZShUcmFja1ByaXZhdGVCYXNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBpZENoYW5nZWQo
Y29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYWJlbENoYW5nZWQoY29uc3Qg
QXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRv
bWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAKLSAgICBi
b29sIGVuYWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzZWxlY3RlZCgpOyB9CisgICAg
Ym9vbCBlbmFibGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gc2VsZWN0ZWQoKTsgfQogCiAgICAg
dm9pZCB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIAogICAgIGJvb2wgbV9zZWxlY3RlZDsKICAg
ICBWaWRlb1RyYWNrQ2xpZW50KiBtX2NsaWVudDsKIAotICAgIFJlZlB0cjxWaWRlb1RyYWNrUHJp
dmF0ZT4gbV9wcml2YXRlOworICAgIFJlZjxWaWRlb1RyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oCmluZGV4IDJjMTIzOTVmYTY2MWQxNWJiNTQ1MDg4OTRmYzBhYWNkZDU1Y2U2ZTcuLmIxNTE1
Njk3YjMyMjRhNWZiMDQ5MzYxYjhlMzU5ODQ5OTNmMDMwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgKQEAgLTE3Miw3ICsxNzIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAg
IHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pIG92ZXJy
aWRlOwotICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZp
bGVJY29uTG9hZGVyKikgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXImKSBvdmVycmlkZSB7IH0KIAogICAg
IHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IE5vZGUqKSBvdmVycmlkZSB7IH0KICAgICB2b2lk
IGVsZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUqKSBvdmVycmlkZSB7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9QaW5nTG9hZGVyLmNwcAppbmRleCAwMTg4OTQ2ZTdkOGRmNDI1MmMxZWQ0OTRhZDdhOTkxNjc2
OTExNjhiLi4zYmYzNWIyMzNiMGEyZGM2YTY1ZDQwNGIxMjY0NjZkN2FiMzNlZTAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBQaW5n
TG9hZGVyOjpzZW5kUGluZyhGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcGluZ1VSTCwgY29uc3Qg
VVJMJiBkZXN0aW5hdGkKICAgICBzdGFydFBpbmdMb2FkKGZyYW1lLCByZXF1ZXN0LCBTaG91bGRG
b2xsb3dSZWRpcmVjdHM6Olllcyk7CiB9CiAKLXZvaWQgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlv
blJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBSZWZQdHI8Rm9ybURh
dGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBlIHJlcG9ydFR5cGUpCit2b2lkIFBpbmdM
b2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHJlcG9y
dFVSTCwgUmVmPEZvcm1EYXRhPiYmIHJlcG9ydCwgVmlvbGF0aW9uUmVwb3J0VHlwZSByZXBvcnRU
eXBlKQogewogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHJlcG9ydFVSTCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUGluZ0xvYWRlci5oCmluZGV4IGNmNjU3N2MzMzU2ZWEwNTgxYjUzOTE4OTE5OGZk
ZTg3NjRmYjk5MzcuLmY5N2Y5NTcxYWViYzE5NjhkMTc0MGMxZjY5YTY1YTVmOWMyMmI5NWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaApAQCAtNDksNyArNDksNyBAQCBjbGFzcyBQaW5n
TG9hZGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBsb2FkSW1hZ2UoRnJhbWUmLCBjb25z
dCBVUkwmKTsKICAgICBzdGF0aWMgdm9pZCBzZW5kUGluZyhGcmFtZSYsIGNvbnN0IFVSTCYgcGlu
Z1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCk7Ci0gICAgc3RhdGljIHZvaWQgc2VuZFZp
b2xhdGlvblJlcG9ydChGcmFtZSYsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBSZWZQdHI8Rm9ybURh
dGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBlKTsKKyAgICBzdGF0aWMgdm9pZCBzZW5k
VmlvbGF0aW9uUmVwb3J0KEZyYW1lJiwgY29uc3QgVVJMJiByZXBvcnRVUkwsIFJlZjxGb3JtRGF0
YT4mJiByZXBvcnQsIFZpb2xhdGlvblJlcG9ydFR5cGUpOwogCiBwcml2YXRlOgogICAgIGVudW0g
Y2xhc3MgU2hvdWxkRm9sbG93UmVkaXJlY3RzIHsgTm8sIFllcyB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
Y3BwCmluZGV4IDVjMDI1NDRhNWU3YmQzZjA2ZmIxYWJhYjAxZWUyNmM4YTM0NDZmM2UuLjZjYTk5
YzFmOTZjNDQzOGUzYTU1ODYwMTdiZWM1NWQ3Zjk3MzRjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5j
cHAKQEAgLTQzOCw3ICs0MzgsNyBAQCB2b2lkIENocm9tZTo6cnVuT3BlblBhbmVsKEZyYW1lKiBm
cmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIpCiAgICAgbV9jbGllbnQu
cnVuT3BlblBhbmVsKGZyYW1lLCBmaWxlQ2hvb3Nlcik7CiB9CiAKLXZvaWQgQ2hyb21lOjpsb2Fk
SWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9h
ZGVyKiBsb2FkZXIpCit2b2lkIENocm9tZTo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciYgbG9hZGVyKQogewogICAgIG1fY2xp
ZW50LmxvYWRJY29uRm9yRmlsZXMoZmlsZW5hbWVzLCBsb2FkZXIpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmgKaW5kZXggZjJmMmIwYjFjM2MwYTlmM2EyNzVkMTRmMDJkM2RjMWE4ZWRhNGVhMS4uZjY2MzU5
MjhhZDVkYTdhZGIyMzRlMzI4NGQ0YmVhY2Y4ZmVkMTg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBA
IC0xNTksNyArMTU5LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHJ1bk9wZW5QYW5l
bChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KTsKLSAgICB2b2lkIGxvYWRJY29uRm9y
RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciopOworICAgIHZvaWQg
bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJik7
CiAKICAgICB2b2lkIGRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZp
ZXdwb3J0QXJndW1lbnRzJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmlu
ZGV4IDQ1ZmVjNTk5ODA0ZTQzZTZlN2QxODlhMDhlNmNlYjgwMjI5ZDM2ZmQuLjU5OGU1OWY2ZGEy
MTllMTgzOTE0N2FhODZkODA1MjBjNmJlM2Q1ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaApAQCAtMjc1LDcgKzI3NSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBydW5P
cGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgPSAwOwogICAgIC8vIEFz
eW5jaHJvbm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Igc3BlY2lmaWVkIGZpbGVuYW1l
cy4KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYsIEZpbGVJY29uTG9hZGVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZp
bGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXImKSA9IDA7CiAgICAgICAg
IAogICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgTm9kZSopIHsgfTsKICAg
ICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9kZSopIHsgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IGNi
NzhkMDZhN2VmMTQzZjI2ZWU1NDk2MzliMjQ5NTY1YzQ2YWEwNjguLmY4ZmJmMmQzNjA1NTQxNDBj
MWQ1ZjJlYWQ3M2E4NDBjYWExMWY3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Y3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9j
c3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtNjI1LDggKzYyNSw4IEBAIHZvaWQgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3Rp
dmVWaW9sYXRlZERpcmVjCiAKICAgICBBU1NFUlQoIW1fZnJhbWUgfHwgZWZmZWN0aXZlVmlvbGF0
ZWREaXJlY3RpdmUgPT0gQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXM6OmZyYW1l
QW5jZXN0b3JzKTsKIAotICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGlzPERvY3VtZW50PihtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50KCk7Ci0gICAgRnJhbWUqIGZyYW1lID0g
ZG9jdW1lbnQuZnJhbWUoKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9IGlzPERvY3VtZW50PihtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAgYXV0byogZnJhbWUgPSBk
b2N1bWVudC5mcmFtZSgpOwogICAgIEFTU0VSVCghbV9mcmFtZSB8fCBtX2ZyYW1lID09IGZyYW1l
KTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC02NDYsMTMgKzY0NiwxNCBA
QCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmlu
ZyYgZWZmZWN0aXZlVmlvbGF0ZWREaXJlYwogICAgIFN0cmluZyBvcmlnaW5hbFBvbGljeSA9IHZp
b2xhdGVkRGlyZWN0aXZlTGlzdC5oZWFkZXIoKTsKICAgICBTdHJpbmcgcmVmZXJyZXIgPSBkb2N1
bWVudC5yZWZlcnJlcigpOwogICAgIEFTU0VSVChkb2N1bWVudC5sb2FkZXIoKSk7CisgICAgLy8g
RklYTUU6IElzIGl0IHBvbGljeSB0byBub3QgdXNlIHRoZSBzdGF0dXMgY29kZSBmb3IgSFRUUFMs
IG9yIGlzIHRoYXQgYSBidWc/CiAgICAgdW5zaWduZWQgc2hvcnQgc3RhdHVzQ29kZSA9IGRvY3Vt
ZW50LnVybCgpLnByb3RvY29sSXMoImh0dHAiKSAmJiBkb2N1bWVudC5sb2FkZXIoKSA/IGRvY3Vt
ZW50LmxvYWRlcigpLT5yZXNwb25zZSgpLmh0dHBTdGF0dXNDb2RlKCkgOiAwOwogCiAgICAgU3Ry
aW5nIHNvdXJjZUZpbGU7CiAgICAgaW50IGxpbmVOdW1iZXIgPSAwOwogICAgIGludCBjb2x1bW5O
dW1iZXIgPSAwOwotICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrID0gY3JlYXRlU2Ny
aXB0Q2FsbFN0YWNrKEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCksIDIpOwot
ICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2stPmZpcnN0Tm9uTmF0
aXZlQ2FsbEZyYW1lKCk7CisgICAgYXV0byBzdGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhK
U01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCAyKTsKKyAgICBhdXRvKiBjYWxs
RnJhbWUgPSBzdGFjay0+Zmlyc3ROb25OYXRpdmVDYWxsRnJhbWUoKTsKICAgICBpZiAoY2FsbEZy
YW1lICYmIGNhbGxGcmFtZS0+bGluZU51bWJlcigpKSB7CiAgICAgICAgIHNvdXJjZUZpbGUgPSBz
dHJpcFVSTEZvclVzZUluUmVwb3J0KGRvY3VtZW50LCBVUkwoVVJMKCksIGNhbGxGcmFtZS0+c291
cmNlVVJMKCkpKTsKICAgICAgICAgbGluZU51bWJlciA9IGNhbGxGcmFtZS0+bGluZU51bWJlcigp
OwpAQCAtNjY1LDcgKzY2Niw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRW
aW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAgICAgZG9jdW1l
bnQuZW5xdWV1ZURvY3VtZW50RXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5zZWN1cml0eXBvbGljeXZpb2xhdGlvbkV2ZW50LCBjYW5CdWJibGUs
IGNhbmNlbGFibGUsIGRvY3VtZW50VVJJLCByZWZlcnJlciwgYmxvY2tlZFVSSSwgdmlvbGF0ZWRE
aXJlY3RpdmVUZXh0LCBlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZSwgb3JpZ2luYWxQb2xpY3ks
IHNvdXJjZUZpbGUsIHN0YXR1c0NvZGUsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikpOwogCiAg
ICAgLy8gMi4gU2VuZCB2aW9sYXRpb24gcmVwb3J0IChpZiBhcHBsaWNhYmxlKS4KLSAgICBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgcmVwb3J0VVJJcyA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5yZXBv
cnRVUklzKCk7CisgICAgYXV0byYgcmVwb3J0VVJJcyA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5y
ZXBvcnRVUklzKCk7CiAgICAgaWYgKHJlcG9ydFVSSXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CiAKQEAgLTY5MywxMCArNjk0LDEwIEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5Ojpy
ZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAgICAg
ICAgIGNzcFJlcG9ydC0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwoImNvbHVtbi1udW1iZXIiKSwg
Y29sdW1uTnVtYmVyKTsKICAgICB9CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXBv
cnRPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGF1dG8gcmVwb3J0T2Jq
ZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKICAgICByZXBvcnRPYmplY3QtPnNldE9i
amVjdChBU0NJSUxpdGVyYWwoImNzcC1yZXBvcnQiKSwgV1RGTW92ZShjc3BSZXBvcnQpKTsKIAot
ICAgIFJlZlB0cjxGb3JtRGF0YT4gcmVwb3J0ID0gRm9ybURhdGE6OmNyZWF0ZShyZXBvcnRPYmpl
Y3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7CisgICAgYXV0byByZXBvcnQgPSBGb3JtRGF0YTo6
Y3JlYXRlKHJlcG9ydE9iamVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgpKTsKICAgICBmb3IgKGNv
bnN0IGF1dG8mIHVybCA6IHJlcG9ydFVSSXMpCiAgICAgICAgIFBpbmdMb2FkZXI6OnNlbmRWaW9s
YXRpb25SZXBvcnQoKmZyYW1lLCBpczxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
KSA/IGRvY3VtZW50LmNvbXBsZXRlVVJMKHVybCkgOiBkb2N1bWVudC5jb21wbGV0ZVVSTCh1cmws
IGJsb2NrZWRVUkwpLCByZXBvcnQuY29weVJlZigpLCBWaW9sYXRpb25SZXBvcnRUeXBlOjpDb250
ZW50U2VjdXJpdHlQb2xpY3kpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVu
dC5tbQppbmRleCBiMTBmMmU5ZWI3OGQ1OWUwMjZiYmRiNGRmZDcwZTRkYTUzYjlhNDcwLi4xNGRj
YmE0NzcwNmQ3ZWRlMzlmYzMwZmM4MTVmZDkwYjY4YTJlZjc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Np
b25Nb2RlbE1lZGlhRWxlbWVudC5tbQpAQCAtMjMzLDE3ICsyMzMsOCBAQCB2b2lkIFdlYlBsYXli
YWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2
NF90IHNlbGVjdAogICAgIGlmICghbV9tZWRpYUVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIEFTU0VSVChzZWxlY3RlZEF1ZGlvSW5kZXggPCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVf
dD46Om1heCgpKTsKLSAgICBBdWRpb1RyYWNrKiBzZWxlY3RlZEF1ZGlvVHJhY2sgPSBudWxscHRy
OwotCi0gICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IG1fYXVkaW9UcmFja3NGb3JN
ZW51LnNpemUoKTsgKytpbmRleCkgewotICAgICAgICBhdXRvJiBhdWRpb1RyYWNrID0gbV9hdWRp
b1RyYWNrc0Zvck1lbnVbaW5kZXhdOwotICAgICAgICBhdWRpb1RyYWNrLT5zZXRFbmFibGVkKGlu
ZGV4ID09IHN0YXRpY19jYXN0PHNpemVfdD4oc2VsZWN0ZWRBdWRpb0luZGV4KSk7Ci0gICAgICAg
IGlmIChhdWRpb1RyYWNrLT5lbmFibGVkKCkpCi0gICAgICAgICAgICBzZWxlY3RlZEF1ZGlvVHJh
Y2sgPSBhdWRpb1RyYWNrLmdldCgpOwotICAgIH0KLQotICAgIG1fbWVkaWFFbGVtZW50LT5hdWRp
b1RyYWNrRW5hYmxlZENoYW5nZWQoc2VsZWN0ZWRBdWRpb1RyYWNrKTsKKyAgICBmb3IgKHNpemVf
dCBpID0gMCwgc2l6ZSA9IG1fYXVkaW9UcmFja3NGb3JNZW51LnNpemUoKTsgaSA8IHNpemU7ICsr
aSkKKyAgICAgICAgbV9hdWRpb1RyYWNrc0Zvck1lbnVbaV0tPnNldEVuYWJsZWQoaSA9PSBzZWxl
Y3RlZEF1ZGlvSW5kZXgpOwogfQogCiB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFF
bGVtZW50OjpzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCkBAIC0yNTEs
OSArMjQyLDcgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6c2Vs
ZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGUKICAgICBpZiAoIW1fbWVkaWFFbGVt
ZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoaW5kZXggPCBzdGQ6Om51bWVyaWNf
bGltaXRzPHNpemVfdD46Om1heCgpKTsKLSAgICBUZXh0VHJhY2sqIHRleHRUcmFjayA9IG51bGxw
dHI7Ci0KKyAgICBUZXh0VHJhY2sqIHRleHRUcmFjazsKICAgICBpZiAoaW5kZXggPCBtX2xlZ2li
bGVUcmFja3NGb3JNZW51LnNpemUoKSkKICAgICAgICAgdGV4dFRyYWNrID0gbV9sZWdpYmxlVHJh
Y2tzRm9yTWVudVtzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KV0uZ2V0KCk7CiAgICAgZWxzZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1By
aXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2
YXRlLmgKaW5kZXggM2JjOTdlZDcwMmFiMDRhZGJlMTQxNWFkZjliZTM1Mjk4ZGZhZGRkYi4uNWVi
YTRlZWM0NTcwOTk0MWMxNTEwZDQxZDhkZWYwZGIyYzQ1YjM0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCkBAIC0yMyw4
ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgQXVkaW9UcmFja1ByaXZh
dGVfaAotI2RlZmluZSBBdWRpb1RyYWNrUHJpdmF0ZV9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIlRyYWNrUHJpdmF0ZUJhc2UuaCIKIApAQCAtMzYsNyArMzUsNyBAQCBjbGFzcyBBdWRpb1Ry
YWNrUHJpdmF0ZTsKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJh
Y2tQcml2YXRlQmFzZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIGVuYWJsZWRD
aGFuZ2VkKEF1ZGlvVHJhY2tQcml2YXRlKiwgYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBl
bmFibGVkQ2hhbmdlZChib29sKSA9IDA7CiB9OwogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZSA6
IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlIHsKQEAgLTU1LDI2ICs1NCwyMiBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CiAgICAgICAg
IGlmIChtX2NsaWVudCkKLSAgICAgICAgICAgIG1fY2xpZW50LT5lbmFibGVkQ2hhbmdlZCh0aGlz
LCBlbmFibGVkKTsKLSAgICB9OwotICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9lbmFibGVkOyB9CisgICAgICAgICAgICBtX2NsaWVudC0+ZW5hYmxlZENoYW5nZWQo
ZW5hYmxlZCk7CisgICAgfQorCisgICAgYm9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9l
bmFibGVkOyB9CiAKICAgICBlbnVtIEtpbmQgeyBBbHRlcm5hdGl2ZSwgRGVzY3JpcHRpb24sIE1h
aW4sIE1haW5EZXNjLCBUcmFuc2xhdGlvbiwgQ29tbWVudGFyeSwgTm9uZSB9OwogICAgIHZpcnR1
YWwgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gTm9uZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAg
QXVkaW9UcmFja1ByaXZhdGUoKQotICAgICAgICA6IG1fY2xpZW50KDApCi0gICAgICAgICwgbV9l
bmFibGVkKGZhbHNlKQotICAgIHsKLSAgICB9CisgICAgQXVkaW9UcmFja1ByaXZhdGUoKSA9IGRl
ZmF1bHQ7CiAKIHByaXZhdGU6Ci0gICAgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQqIG1fY2xpZW50
OwotICAgIGJvb2wgbV9lbmFibGVkOworICAgIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50KiBtX2Ns
aWVudCB7IG51bGxwdHIgfTsKKyAgICBib29sIG1fZW5hYmxlZCB7IGZhbHNlIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlQ2xpZW50LmgKaW5kZXggNzYwZjY3OWQxMzUwYTcxOTAwNDQ3MGE3Y2I3YTc0MTdhOGJjNDkx
NS4uMjEwMmZlM2ViNWM0YjVjYzNjYWQwZTBiYjgwZDhjODk2ZjJiZDk5NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRU
cmFja1ByaXZhdGVDbGllbnQuaApAQCAtNDMsOSArNDMsNyBAQCBjbGFzcyBJU09XZWJWVFRDdWU7
CiAKIGNsYXNzIEdlbmVyaWNDdWVEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8R2VuZXJpY0N1ZURh
dGE+IHsKIHB1YmxpYzoKLQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPiBj
cmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgR2VuZXJpY0N1ZURhdGEoKSk7IH0KLSAgICB2
aXJ0dWFsIH5HZW5lcmljQ3VlRGF0YSgpIHsgfQorICAgIHN0YXRpYyBSZWY8R2VuZXJpY0N1ZURh
dGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR2VuZXJpY0N1ZURhdGEpOyB9CiAK
ICAgICBNZWRpYVRpbWUgc3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFRpbWU7IH0K
ICAgICB2b2lkIHNldFN0YXJ0VGltZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0VGltZSkgeyBtX3N0
YXJ0VGltZSA9IHN0YXJ0VGltZTsgfQpAQCAtNjgsMTIgKzY2LDcgQEAgcHVibGljOgogICAgIGRv
dWJsZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgdm9pZCBzZXRTaXplKGRv
dWJsZSBzaXplKSB7IG1fc2l6ZSA9IHNpemU7IH0KIAotICAgIGVudW0gQWxpZ25tZW50IHsKLSAg
ICAgICAgTm9uZSwKLSAgICAgICAgU3RhcnQsCi0gICAgICAgIE1pZGRsZSwKLSAgICAgICAgRW5k
Ci0gICAgfTsKKyAgICBlbnVtIEFsaWdubWVudCB7IE5vbmUsIFN0YXJ0LCBNaWRkbGUsIEVuZCB9
OwogICAgIEFsaWdubWVudCBhbGlnbigpIGNvbnN0IHsgcmV0dXJuIG1fYWxpZ247IH0KICAgICB2
b2lkIHNldEFsaWduKEFsaWdubWVudCBhbGlnbikgeyBtX2FsaWduID0gYWxpZ247IH0KIApAQCAt
OTUsNDMgKzg4LDMwIEBAIHB1YmxpYzoKICAgICBjb25zdCBDb2xvciYgaGlnaGxpZ2h0Q29sb3Io
KSBjb25zdCB7IHJldHVybiBtX2hpZ2hsaWdodENvbG9yOyB9CiAgICAgdm9pZCBzZXRIaWdobGln
aHRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpIHsgbV9oaWdobGlnaHRDb2xvciA9IGNvbG9yOyB9
CiAKLSAgICBlbnVtIFN0YXR1cyB7Ci0gICAgICAgIFVuaW5pdGlhbGl6ZWQsCi0gICAgICAgIFBh
cnRpYWwsCi0gICAgICAgIENvbXBsZXRlLAotICAgIH07CisgICAgZW51bSBTdGF0dXMgeyBVbmlu
aXRpYWxpemVkLCBQYXJ0aWFsLCBDb21wbGV0ZSB9OwogICAgIFN0YXR1cyBzdGF0dXMoKSB7IHJl
dHVybiBtX3N0YXR1czsgfQogICAgIHZvaWQgc2V0U3RhdHVzKFN0YXR1cyBzdGF0dXMpIHsgbV9z
dGF0dXMgPSBzdGF0dXM7IH0KIAogICAgIGJvb2wgZG9lc0V4dGVuZEN1ZURhdGEoY29uc3QgR2Vu
ZXJpY0N1ZURhdGEmKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBHZW5lcmljQ3VlRGF0YSgpCi0g
ICAgICAgIDogbV9saW5lKC0xKQotICAgICAgICAsIG1fcG9zaXRpb24oLTEpCi0gICAgICAgICwg
bV9zaXplKC0xKQotICAgICAgICAsIG1fYWxpZ24oTm9uZSkKLSAgICAgICAgLCBtX2Jhc2VGb250
U2l6ZSgwKQotICAgICAgICAsIG1fcmVsYXRpdmVGb250U2l6ZSgwKQotICAgICAgICAsIG1fc3Rh
dHVzKFVuaW5pdGlhbGl6ZWQpCi0gICAgewotICAgIH0KKyAgICBHZW5lcmljQ3VlRGF0YSgpID0g
ZGVmYXVsdDsKIAogICAgIE1lZGlhVGltZSBtX3N0YXJ0VGltZTsKICAgICBNZWRpYVRpbWUgbV9l
bmRUaW1lOwogICAgIFN0cmluZyBtX2lkOwogICAgIFN0cmluZyBtX2NvbnRlbnQ7Ci0gICAgZG91
YmxlIG1fbGluZTsKLSAgICBkb3VibGUgbV9wb3NpdGlvbjsKLSAgICBkb3VibGUgbV9zaXplOwot
ICAgIEFsaWdubWVudCBtX2FsaWduOworICAgIGRvdWJsZSBtX2xpbmUgeyAtMSB9OworICAgIGRv
dWJsZSBtX3Bvc2l0aW9uIHsgLTEgfTsKKyAgICBkb3VibGUgbV9zaXplIHsgLTEgfTsKKyAgICBB
bGlnbm1lbnQgbV9hbGlnbiB7IE5vbmUgfTsKICAgICBTdHJpbmcgbV9mb250TmFtZTsKLSAgICBk
b3VibGUgbV9iYXNlRm9udFNpemU7Ci0gICAgZG91YmxlIG1fcmVsYXRpdmVGb250U2l6ZTsKKyAg
ICBkb3VibGUgbV9iYXNlRm9udFNpemUgeyAwIH07CisgICAgZG91YmxlIG1fcmVsYXRpdmVGb250
U2l6ZSB7IDAgfTsKICAgICBDb2xvciBtX2ZvcmVncm91bmRDb2xvcjsKICAgICBDb2xvciBtX2Jh
Y2tncm91bmRDb2xvcjsKICAgICBDb2xvciBtX2hpZ2hsaWdodENvbG9yOwotICAgIFN0YXR1cyBt
X3N0YXR1czsKKyAgICBTdGF0dXMgbV9zdGF0dXMgeyBVbmluaXRpYWxpemVkIH07CiB9OwogCiBp
bmxpbmUgYm9vbCBHZW5lcmljQ3VlRGF0YTo6ZG9lc0V4dGVuZEN1ZURhdGEoY29uc3QgR2VuZXJp
Y0N1ZURhdGEmIG90aGVyKSBjb25zdApAQCAtMTY4LDIxICsxNDgsMjEgQEAgY2xhc3MgSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50KCkgeyB9
CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwg
Y29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQq
LCB1bnNpZ25lZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlh
VGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWduZWQp
ID0gMDsKIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQotICAgIHZpcnR1YWwgdm9pZCBhZGRE
YXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBj
b25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNl
bnRhdGlvbj4sIGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRGF0
YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50
YXRpb24+KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZURhdGFDdWUoSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5k
LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1l
ZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+JiYsIGNv
bnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3Jt
UmVwcmVzZW50YXRpb24mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZURhdGFDdWUoY29u
c3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0
Zm9ybVJlcHJlc2VudGF0aW9uJikgPSAwOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRk
R2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgUGFzc1JlZlB0cjxHZW5lcmljQ3Vl
RGF0YT4pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0
VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJl
bW92ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGRHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAw
OwogCi0gICAgdmlydHVhbCB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlKiwgU3RyaW5nJiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25z
dCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBJU09XZWJWVFRD
dWUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihTdHJpbmcm
JikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZU
VEN1ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUmKSA9IDA7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKaW5kZXggMDhlNjJjMzQ4NjJh
ZGQ5NGZhMDg0YjQyNWM1ODdhYTRmYmQzNjRiZC4uNDNkMDY3NDBmNTVlZDA4NDVlNWRmMzc3Mzg2
YjVmZTc4MmE5NDdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAxMy0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI4LDIxICsyOCwxNyBAQAogICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCi0jaWZuZGVmIFNvdXJjZUJ1ZmZlclBy
aXZhdGVfaAotI2RlZmluZSBTb3VyY2VCdWZmZXJQcml2YXRlX2gKKworI3ByYWdtYSBvbmNlCiAK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKLSNp
bmNsdWRlICJUaW1lUmFuZ2VzLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFT
YW1wbGU7CiBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OwotY2xhc3MgVGltZVJhbmdl
czsKIAogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFNvdXJj
ZUJ1ZmZlclByaXZhdGU+IHsKIHB1YmxpYzoKQEAgLTU4LDE3ICs1NCwxNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRl
KSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZmx1c2goQXRvbWljU3RyaW5nKSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiwgQXRvbWlj
U3RyaW5nKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21p
Y1N0cmluZykgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2goY29uc3Qg
QXRvbWljU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGVucXVldWVTYW1wbGUoUmVmPE1l
ZGlhU2FtcGxlPiYmLCBjb25zdCBBdG9taWNTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
aXNSZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYpIHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgc3RvcEFza2luZ0Zvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykg
eyB9CisgICAgdmlydHVhbCB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9t
aWNTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9y
TW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgeyB9CiAKLSAgICB2aXJ0dWFsIFZlY3Rv
cjxTdHJpbmc+IGVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoQXRvbWljU3RyaW5nKSB7IHJldHVy
biB7fTsgfQorICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gZW5xdWV1ZWRTYW1wbGVzRm9yVHJh
Y2tJRChjb25zdCBBdG9taWNTdHJpbmcmKSB7IHJldHVybiB7IH07IH0KIH07CiAKIH0KIAogI2Vu
ZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaAppbmRleCAyOTRhZDY1ZjQ2MzM1ZGYw
NjkxNTNmNGFjYjM5NzAzYmYxYzlmMGYyLi4zM2QyYWQ5MzMwNTk2OWUxNTk3ODc5NmFmYTJjNzYy
ODQyOWNiMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9T
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oCkBAIC0zMiwxMiArMzIsMTEgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlOwogY2xh
c3MgQXVkaW9UcmFja1ByaXZhdGU7Ci1jbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIElu
YmFuZFRleHRUcmFja1ByaXZhdGU7CiBjbGFzcyBNZWRpYVNhbXBsZTsKIGNsYXNzIE1lZGlhRGVz
Y3JpcHRpb247CitjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIAogY2xhc3MgU291cmNlQnVmZmVy
UHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6CkBAIC02NCwyMyArNjMsMTkgQEAgcHVibGljOgogICAg
ICAgICB9OwogICAgICAgICBWZWN0b3I8VGV4dFRyYWNrSW5mb3JtYXRpb24+IHRleHRUcmFja3M7
CiAgICAgfTsKLSAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJ
bml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IEluaXRpYWxp
emF0aW9uU2VnbWVudCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVTYW1wbGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIE1lZGlhU2FtcGxlJikgPSAw
OwotICAgIHZpcnR1YWwgYm9vbCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oY29uc3QgU291
cmNlQnVmZmVyUHJpdmF0ZSopIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgc291cmNlQnVm
ZmVyUHJpdmF0ZUhhc1ZpZGVvKGNvbnN0IFNvdXJjZUJ1ZmZlclByaXZhdGUqKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6
YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUm
KSA9IDA7CisgICAgdmlydHVhbCBib29sIHNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCkg
Y29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNv
bWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBdG9taWNTdHJpbmcg
dHJhY2tJRCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVj
b21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpID0gMDsK
IAotICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVG
b3JNZWRpYVRpbWUoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgdGltZSwg
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJikgeyByZXR1cm4gdGltZTsgfQotICAg
IHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGltZShTb3VyY2VCdWZmZXJQ
cml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJikgeyB9OworICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNv
dXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1l
JiB0aW1lLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmKSB7IHJldHVybiB0aW1l
OyB9CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKGNvbnN0
IE1lZGlhVGltZSYpIHsgfTsKIAotICAgIGVudW0gQXBwZW5kUmVzdWx0IHsKLSAgICAgICAgQXBw
ZW5kU3VjY2VlZGVkLAotICAgICAgICBSZWFkU3RyZWFtRmFpbGVkLAotICAgICAgICBQYXJzaW5n
RmFpbGVkLAotICAgIH07Ci0gICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBl
bmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXBwZW5kUmVzdWx0KSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3Io
U291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvY0NvZGUpID0gMDsKKyAgICBlbnVtIEFwcGVu
ZFJlc3VsdCB7IEFwcGVuZFN1Y2NlZWRlZCwgUmVhZFN0cmVhbUZhaWxlZCwgUGFyc2luZ0ZhaWxl
ZCB9OworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUo
QXBwZW5kUmVzdWx0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoaW50IGVycm9yQ29kZSkgPSAwOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFz
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5o
CmluZGV4IDczMWFhOGQ5MzZhNWFhZWEwZDFjMDNhYTY4YTJhYzZiMmIyYjllNjQuLmE1NDcwNTJi
YTFmZTgyZDg3OWZmZGUzOTQ3Mjk1MzkzOGU5MGE4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgKQEAgLTI1LDM0ICsyNSwy
OSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFRyYWNrUHJpdmF0ZUJhc2VfaAot
I2RlZmluZSBUcmFja1ByaXZhdGVCYXNlX2gKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQogCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTWVk
aWFUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAotI2lmIEVO
QUJMRShWSURFT19UUkFDSykKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBUcmFja1By
aXZhdGVCYXNlOwotCiBjbGFzcyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5UcmFja1ByaXZhdGVCYXNlQ2xpZW50KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lk
IGlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0
b21pY1N0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKFRyYWNr
UHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHdpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaWRD
aGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGFiZWxD
aGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGFuZ3Vh
Z2VDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2ls
bFJlbW92ZSgpID0gMDsKIH07CiAKIGNsYXNzIFRyYWNrUHJpdmF0ZUJhc2UgOiBwdWJsaWMgUmVm
Q291bnRlZDxUcmFja1ByaXZhdGVCYXNlPiB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVHJh
Y2tQcml2YXRlQmFzZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFRyYWNrUHJpdmF0ZUJhc2UpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIHZpcnR1YWwgflRyYWNrUHJpdmF0ZUJhc2UoKSB7IH0KKyAgICB2aXJ0
dWFsIH5UcmFja1ByaXZhdGVCYXNlKCkgPSBkZWZhdWx0OwogCiAgICAgdmlydHVhbCBUcmFja1By
aXZhdGVCYXNlQ2xpZW50KiBjbGllbnQoKSBjb25zdCA9IDA7CiAKQEAgLTY2LDE1ICs2MSwxNCBA
QCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCB3aWxsQmVSZW1vdmVkKCkKICAgICB7Ci0gICAgICAg
IGlmIChUcmFja1ByaXZhdGVCYXNlQ2xpZW50KiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKLSAg
ICAgICAgICAgIGNsaWVudC0+d2lsbFJlbW92ZSh0aGlzKTsKKyAgICAgICAgaWYgKGF1dG8qIGNs
aWVudCA9IHRoaXMtPmNsaWVudCgpKQorICAgICAgICAgICAgY2xpZW50LT53aWxsUmVtb3ZlKCk7
CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgVHJhY2tQcml2YXRlQmFzZSgpIHsgfQorICAgIFRy
YWNrUHJpdmF0ZUJhc2UoKSA9IGRlZmF1bHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFja1ByaXZhdGVBVkYuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1RyYWNrUHJpdmF0ZUFWRi5o
CmluZGV4IDEzMWZkNTFiNGMxNjkzNDA4YjRmOGE0YjU5NmViMjZmYmQ2ZDI5NmIuLjE2ZjU3ZmFh
ODZmNDA1OWE4YTI3ZTRhOTMyMTlkODdjYmM0NjA2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1RyYWNrUHJpdmF0ZUFWRi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRp
b1RyYWNrUHJpdmF0ZUFWRi5oCkBAIC0zNSw3ICszNSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlQVZGIDogcHVibGljIEF1ZGlvVHJhY2tQcml2YXRlIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1RyYWNrUHJpdmF0ZUFWRikKIHB1YmxpYzoK
LQogICAgIHZpcnR1YWwgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gbV9raW5kOyB9CiAgICAg
dmlydHVhbCBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAgICAgdmly
dHVhbCBBdG9taWNTdHJpbmcgbGFiZWwoKSBjb25zdCB7IHJldHVybiBtX2xhYmVsOyB9CkBAIC00
NCw5ICs0Myw5IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0S2luZChLaW5k
IGtpbmQpIHsgbV9raW5kID0ga2luZDsgfQotICAgIHZvaWQgc2V0SWQoQXRvbWljU3RyaW5nIG5l
d0lkKSB7IG1faWQgPSBuZXdJZDsgfQotICAgIHZvaWQgc2V0TGFiZWwoQXRvbWljU3RyaW5nIGxh
YmVsKSB7IG1fbGFiZWwgPSBsYWJlbDsgfQotICAgIHZvaWQgc2V0TGFuZ3VhZ2UoQXRvbWljU3Ry
aW5nIGxhbmd1YWdlKSB7IG1fbGFuZ3VhZ2UgPSBsYW5ndWFnZTsgfQorICAgIHZvaWQgc2V0SWQo
Y29uc3QgQXRvbWljU3RyaW5nJiBuZXdJZCkgeyBtX2lkID0gbmV3SWQ7IH0KKyAgICB2b2lkIHNl
dExhYmVsKGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpIHsgbV9sYWJlbCA9IGxhYmVsOyB9Cisg
ICAgdm9pZCBzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKSB7IG1fbGFu
Z3VhZ2UgPSBsYW5ndWFnZTsgfQogICAgIHZvaWQgc2V0VHJhY2tJbmRleChpbnQgaW5kZXgpIHsg
bV9pbmRleCA9IGluZGV4OyB9CiAKICAgICBLaW5kIG1fa2luZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRNZXRhZGF0YVRl
eHRUcmFja1ByaXZhdGVBVkYuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKaW5kZXgg
OWM2Y2E4N2IwYzBmOTAwNjcxMTdmNDQyZDNlNjZkOTQxMzNhZjE0MC4uNmQyYzkxOWExMTc4MzYy
NjViZDYzMzkyZTFiMmIzYzlhMWU3MzdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0
ZUFWRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKQEAgLTU0LDYgKzU0LDcg
QEAgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjp+SW5iYW5kTWV0YWRhdGFUZXh0
VHJhY2tQcml2YXRlQVZGKCkKIH0KIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQorCiB2b2lk
IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6YWRkRGF0YUN1ZShjb25zdCBNZWRp
YVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVk
UGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcHJwQ3VlRGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKQog
ewogICAgIEFTU0VSVChjdWVGb3JtYXQoKSA9PSBEYXRhKTsKQEAgLTY2LDcgKzY3LDcgQEAgdm9p
ZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OmFkZERhdGFDdWUoY29uc3QgTWVk
aWFUaW1lJiBzdGFydCwgY29uc3QKICAgICBtX2N1cnJlbnRDdWVTdGFydFRpbWUgPSBzdGFydDsK
ICAgICBpZiAoZW5kLmlzUG9zaXRpdmVJbmZpbml0ZSgpKQogICAgICAgICBtX2luY29tcGxldGVD
dWVzLmFwcGVuZChJbmNvbXBsZXRlTWV0YURhdGFDdWUgeyBjdWVEYXRhLmdldCgpLCBzdGFydCB9
KTsKLSAgICBjbGllbnQoKS0+YWRkRGF0YUN1ZSh0aGlzLCBzdGFydCwgZW5kLCBjdWVEYXRhLCB0
eXBlKTsKKyAgICBjbGllbnQoKS0+YWRkRGF0YUN1ZShzdGFydCwgZW5kLCBjdWVEYXRhLnJlbGVh
c2VOb25OdWxsKCksIHR5cGUpOwogfQogCiB2b2lkIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJp
dmF0ZUFWRjo6dXBkYXRlUGVuZGluZ0N1ZUVuZFRpbWVzKGNvbnN0IE1lZGlhVGltZSYgdGltZSkK
QEAgLTc3LDcgKzc4LDcgQEAgdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6
OnVwZGF0ZVBlbmRpbmdDdWVFbmRUaW1lcyhjb25zdCBNZWRpYVRpbWUKICAgICAgICAgaWYgKGNs
aWVudCgpKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIHBhcnRpYWxDdWUgOiBtX2luY29tcGxl
dGVDdWVzKSB7CiAgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kTWV0YWRhdGFUZXh0
VHJhY2tQcml2YXRlQVZGOjp1cGRhdGVQZW5kaW5nQ3VlRW5kVGltZXMoJXApIC0gdXBkYXRpbmcg
Y3VlOiBzdGFydD0lcywgZW5kPSVzIiwgdGhpcywgdG9TdHJpbmcocGFydGlhbEN1ZS5zdGFydFRp
bWUpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAg
ICAgICAgICAgIGNsaWVudCgpLT51cGRhdGVEYXRhQ3VlKHRoaXMsIHBhcnRpYWxDdWUuc3RhcnRU
aW1lLCB0aW1lLCBwYXJ0aWFsQ3VlLmN1ZURhdGEpOworICAgICAgICAgICAgICAgIGNsaWVudCgp
LT51cGRhdGVEYXRhQ3VlKHBhcnRpYWxDdWUuc3RhcnRUaW1lLCB0aW1lLCAqcGFydGlhbEN1ZS5j
dWVEYXRhKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZQpAQCAtODYsNiAr
ODcsNyBAQCB2b2lkIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6dXBkYXRlUGVu
ZGluZ0N1ZUVuZFRpbWVzKGNvbnN0IE1lZGlhVGltZQogICAgIG1faW5jb21wbGV0ZUN1ZXMucmVz
aXplKDApOwogICAgIG1fY3VycmVudEN1ZVN0YXJ0VGltZSA9IE1lZGlhVGltZTo6emVyb1RpbWUo
KTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZG
OjpmbHVzaFBhcnRpYWxDdWVzKCkKQEAgLTk1LDcgKzk3LDcgQEAgdm9pZCBJbmJhbmRNZXRhZGF0
YVRleHRUcmFja1ByaXZhdGVBVkY6OmZsdXNoUGFydGlhbEN1ZXMoKQogCiAgICAgaWYgKGNsaWVu
dCgpKSB7CiAgICAgICAgIGZvciAoYXV0byYgcGFydGlhbEN1ZSA6IG1faW5jb21wbGV0ZUN1ZXMp
Ci0gICAgICAgICAgICBjbGllbnQoKS0+cmVtb3ZlRGF0YUN1ZSh0aGlzLCBwYXJ0aWFsQ3VlLnN0
YXJ0VGltZSwgTWVkaWFUaW1lOjpwb3NpdGl2ZUluZmluaXRlVGltZSgpLCBwYXJ0aWFsQ3VlLmN1
ZURhdGEpOworICAgICAgICAgICAgY2xpZW50KCktPnJlbW92ZURhdGFDdWUocGFydGlhbEN1ZS5z
dGFydFRpbWUsIE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKSwgKnBhcnRpYWxDdWUu
Y3VlRGF0YSk7CiAgICAgfQogCiAgICAgbV9pbmNvbXBsZXRlQ3Vlcy5yZXNpemUoMCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKaW5kZXggM2I3
YmRhODY2ZDJlNjBkOTMyZWI4ZTYwOTZlZjhhOTMzMzdjNjZjMC4uZWU0N2Y3N2ViZjRkNzVjODkw
M2I4NmU3NTM2N2JiMTkwZmI5YWMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcApAQCAtMzIzLDMzICszMjMsMzMgQEAgdm9pZCBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQXR0cmlidXRlZFN0cmluZ3MoQ0ZBcnJheVJlZiBh
dHRyaWJ1dGVkU3QKIHsKICAgICBMT0coTWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZG
Ojpwcm9jZXNzQ3VlIC0gJWxpIGN1ZXMgYXQgdGltZSAlc1xuIiwgYXR0cmlidXRlZFN0cmluZ3Mg
PyBDRkFycmF5R2V0Q291bnQoYXR0cmlidXRlZFN0cmluZ3MpIDogMCwgdG9TdHJpbmcodGltZSku
dXRmOCgpLmRhdGEoKSk7CiAKLSAgICBWZWN0b3I8UmVmUHRyPEdlbmVyaWNDdWVEYXRhPj4gYXJy
aXZpbmdDdWVzOworICAgIFZlY3RvcjxSZWY8R2VuZXJpY0N1ZURhdGE+PiBhcnJpdmluZ0N1ZXM7
CiAgICAgaWYgKGF0dHJpYnV0ZWRTdHJpbmdzKSB7CiAgICAgICAgIENGSW5kZXggY291bnQgPSBD
RkFycmF5R2V0Q291bnQoYXR0cmlidXRlZFN0cmluZ3MpOwogICAgICAgICBmb3IgKENGSW5kZXgg
aSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAgICAgICAgICAgICBDRkF0dHJpYnV0ZWRTdHJpbmdS
ZWYgYXR0cmlidXRlZFN0cmluZyA9IHN0YXRpY19jYXN0PENGQXR0cmlidXRlZFN0cmluZ1JlZj4o
Q0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRyaWJ1dGVkU3RyaW5ncywgaSkpOwotICAgICAgICAg
ICAgCisKICAgICAgICAgICAgIGlmICghYXR0cmlidXRlZFN0cmluZyB8fCAhQ0ZBdHRyaWJ1dGVk
U3RyaW5nR2V0TGVuZ3RoKGF0dHJpYnV0ZWRTdHJpbmcpKQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBSZWZQdHI8R2VuZXJpY0N1ZURhdGE+IGN1
ZURhdGEgPSBHZW5lcmljQ3VlRGF0YTo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICBwcm9jZXNzQ3Vl
QXR0cmlidXRlcyhhdHRyaWJ1dGVkU3RyaW5nLCAqY3VlRGF0YS5nZXQoKSk7CisKKyAgICAgICAg
ICAgIGF1dG8gY3VlRGF0YSA9IEdlbmVyaWNDdWVEYXRhOjpjcmVhdGUoKTsKKyAgICAgICAgICAg
IHByb2Nlc3NDdWVBdHRyaWJ1dGVzKGF0dHJpYnV0ZWRTdHJpbmcsIGN1ZURhdGEuZ2V0KCkpOwog
ICAgICAgICAgICAgaWYgKCFjdWVEYXRhLT5jb250ZW50KCkubGVuZ3RoKCkpCiAgICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGFycml2aW5nQ3Vlcy5h
cHBlbmQoY3VlRGF0YSk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgY3VlRGF0YS0+c2V0
U3RhcnRUaW1lKHRpbWUpOwogICAgICAgICAgICAgY3VlRGF0YS0+c2V0RW5kVGltZShNZWRpYVRp
bWU6OnBvc2l0aXZlSW5maW5pdGVUaW1lKCkpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAg
IC8vIEFWRm91bmRhdGlvbiBjdWUgInBvc2l0aW9uIiBpcyB0byB0aGUgY2VudGVyIG9mIHRoZSB0
ZXh0IHNvIGFkanVzdCByZWxhdGl2ZSB0byB0aGUgZWRnZSBiZWNhdXNlIHdlIHdpbGwgdXNlIGl0
IHRvCiAgICAgICAgICAgICAvLyBzZXQgQ1NTICJsZWZ0Ii4KICAgICAgICAgICAgIGlmIChjdWVE
YXRhLT5wb3NpdGlvbigpID49IDAgJiYgY3VlRGF0YS0+c2l6ZSgpID4gMCkKICAgICAgICAgICAg
ICAgICBjdWVEYXRhLT5zZXRQb3NpdGlvbihjdWVEYXRhLT5wb3NpdGlvbigpIC0gY3VlRGF0YS0+
c2l6ZSgpIC8gMik7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSglcCkgLSBjb25zaWRlcmluZyBjdWUg
KFwiJXNcIikgZm9yIHRpbWUgPSAlcywgcG9zaXRpb24gPSAgJS4yZiwgbGluZSA9ICAlLjJmIiwg
dGhpcywgY3VlRGF0YS0+Y29udGVudCgpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZURhdGEt
PnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLT5wb3NpdGlvbigpLCBjdWVEYXRh
LT5saW5lKCkpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIGN1ZURhdGEtPnNldFN0YXR1
cyhHZW5lcmljQ3VlRGF0YTo6UGFydGlhbCk7CisKKyAgICAgICAgICAgIGFycml2aW5nQ3Vlcy5h
cHBlbmQoV1RGTW92ZShjdWVEYXRhKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTM2MCwxNyAr
MzYwLDE3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0F0dHJpYnV0
ZWRTdHJpbmdzKENGQXJyYXlSZWYgYXR0cmlidXRlZFN0CiAgICAgICAgIGlmIChtX2N1cnJlbnRD
dWVFbmRUaW1lID49IG1fY3VycmVudEN1ZVN0YXJ0VGltZSkgewogICAgICAgICAgICAgZm9yIChh
dXRvJiBjdWVEYXRhIDogbV9jdWVzKSB7CiAgICAgICAgICAgICAgICAgLy8gU2VlIGlmIG9uZSBv
ZiB0aGUgbmV3bHktYXJyaXZlZCBjdWVzIGlzIGFuIGV4dGVuc2lvbiBvZiB0aGlzIGN1ZS4KLSAg
ICAgICAgICAgICAgICBWZWN0b3I8UmVmUHRyPEdlbmVyaWNDdWVEYXRhPj4gbm9uRXh0ZW5zaW9u
Q3VlczsKKyAgICAgICAgICAgICAgICBWZWN0b3I8UmVmPEdlbmVyaWNDdWVEYXRhPj4gbm9uRXh0
ZW5zaW9uQ3VlczsKICAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGFycml2aW5nQ3VlIDogYXJy
aXZpbmdDdWVzKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghYXJyaXZpbmdDdWUtPmRvZXNF
eHRlbmRDdWVEYXRhKCpjdWVEYXRhKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vbkV4dGVu
c2lvbkN1ZXMuYXBwZW5kKGFycml2aW5nQ3VlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5v
bkV4dGVuc2lvbkN1ZXMuYXBwZW5kKFdURk1vdmUoYXJyaXZpbmdDdWUpKTsKICAgICAgICAgICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSglcCkgLSBmb3VuZCBhbiBleHRlbnNpb24g
Y3VlIChcIiVzXCIpIGZvciB0aW1lID0gJS4yZiwgZW5kID0gJS4yZiwgcG9zaXRpb24gPSAgJS4y
ZiwgbGluZSA9ICAlLjJmIiwgdGhpcywgYXJyaXZpbmdDdWUtPmNvbnRlbnQoKS51dGY4KCkuZGF0
YSgpLCBhcnJpdmluZ0N1ZS0+c3RhcnRUaW1lKCkudG9Eb3VibGUoKSwgYXJyaXZpbmdDdWUtPmVu
ZFRpbWUoKS50b0RvdWJsZSgpLCBhcnJpdmluZ0N1ZS0+cG9zaXRpb24oKSwgYXJyaXZpbmdDdWUt
PmxpbmUoKSk7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgYm9vbCBjdXJy
ZW50Q3VlSXNFeHRlbmRlZCA9IChhcnJpdmluZ0N1ZXMuc2l6ZSgpICE9IG5vbkV4dGVuc2lvbkN1
ZXMuc2l6ZSgpKTsKIAotICAgICAgICAgICAgICAgIGFycml2aW5nQ3VlcyA9IG5vbkV4dGVuc2lv
bkN1ZXM7CisgICAgICAgICAgICAgICAgYXJyaXZpbmdDdWVzID0gV1RGTW92ZShub25FeHRlbnNp
b25DdWVzKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAoY3VycmVudEN1
ZUlzRXh0ZW5kZWQpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMzgwLDcgKzM4
MCw3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0F0dHJpYnV0ZWRT
dHJpbmdzKENGQXJyYXlSZWYgYXR0cmlidXRlZFN0CiAgICAgICAgICAgICAgICAgICAgIGN1ZURh
dGEtPnNldFN0YXR1cyhHZW5lcmljQ3VlRGF0YTo6Q29tcGxldGUpOwogCiAgICAgICAgICAgICAg
ICAgICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWUo
JXApIC0gdXBkYXRpbmcgY3VlIFwiJXNcIjogc3RhcnQ9JS4yZiwgZW5kPSUuMmYiLCB0aGlzLCBj
dWVEYXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS0+c3RhcnRUaW1lKCkudG9E
b3VibGUoKSwgbV9jdXJyZW50Q3VlRW5kVGltZS50b0RvdWJsZSgpKTsKLSAgICAgICAgICAgICAg
ICAgICAgY2xpZW50KCktPnVwZGF0ZUdlbmVyaWNDdWUodGhpcywgY3VlRGF0YS5nZXQoKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGNsaWVudCgpLT51cGRhdGVHZW5lcmljQ3VlKCpjdWVEYXRhKTsK
ICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZl
IHRvIGFzc3VtZSB0aGF0IHRoZSBpbXBsaWNpdCBkdXJhdGlvbiBpcyBpbnZhbGlkIGZvciBjdWVz
IGRlbGl2ZXJlZCBkdXJpbmcgYSBzZWVrIGJlY2F1c2UgdGhlIEFWRiBkZWNvZGUgcGlwZWxpbmUg
bWF5IG5vdAogICAgICAgICAgICAgICAgICAgICAvLyBzZWUgZXZlcnkgY3VlLCBzbyBETyBOT1Qg
dXBkYXRlIGN1ZSBkdXJhdGlvbiB3aGlsZSBzZWVraW5nLgpAQCAtMzk5LDEyICszOTksMTEgQEAg
dm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQXR0cmlidXRlZFN0cmluZ3Mo
Q0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3QKICAgICBtX2N1cnJlbnRDdWVTdGFydFRpbWUgPSB0aW1l
OwogCiAgICAgZm9yIChhdXRvJiBjdWVEYXRhIDogYXJyaXZpbmdDdWVzKSB7Ci0KLSAgICAgICAg
bV9jdWVzLmFwcGVuZChjdWVEYXRhKTsKKyAgICAgICAgbV9jdWVzLmFwcGVuZChjdWVEYXRhLnB0
cigpKTsKICAgICAgICAgCiAgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRUcmFja1ByaXZh
dGVBVkY6OnByb2Nlc3NDdWUoJXApIC0gYWRkaW5nIGN1ZSBcIiVzXCIgZm9yIHRpbWUgPSAlLjJm
LCBlbmQgPSAlLjJmLCBwb3NpdGlvbiA9ICAlLjJmLCBsaW5lID0gICUuMmYiLCB0aGlzLCBjdWVE
YXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS0+c3RhcnRUaW1lKCkudG9Eb3Vi
bGUoKSwgY3VlRGF0YS0+ZW5kVGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEtPnBvc2l0aW9uKCks
IGN1ZURhdGEtPmxpbmUoKSk7CiAKLSAgICAgICAgY2xpZW50KCktPmFkZEdlbmVyaWNDdWUodGhp
cywgV1RGTW92ZShjdWVEYXRhKSk7CisgICAgICAgIGNsaWVudCgpLT5hZGRHZW5lcmljQ3VlKFdU
Rk1vdmUoY3VlRGF0YSkpOwogICAgIH0KIAogICAgIG1fcGVuZGluZ0N1ZVN0YXR1cyA9IHNlZWtp
bmcoKSA/IERlbGl2ZXJlZER1cmluZ1NlZWsgOiBWYWxpZDsKQEAgLTQ1MSw5ICs0NTAsOSBAQCB2
b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnJlc2V0Q3VlVmFsdWVzKCkKICAgICBpZiAo
bV9jdXJyZW50Q3VlRW5kVGltZSAmJiBtX2N1ZXMuc2l6ZSgpKQogICAgICAgICBMT0coTWVkaWEs
ICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpyZXNldEN1ZVZhbHVlcyBmbHVzaGluZyBkYXRh
IGZvciBjdWVzOiBzdGFydD0lc1xuIiwgdG9TdHJpbmcobV9jdXJyZW50Q3VlU3RhcnRUaW1lKS51
dGY4KCkuZGF0YSgpKTsKIAotICAgIGlmIChjbGllbnQoKSkgewotICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG1fY3Vlcy5zaXplKCk7IGkrKykKLSAgICAgICAgICAgIGNsaWVudCgpLT5y
ZW1vdmVHZW5lcmljQ3VlKHRoaXMsIG1fY3Vlc1tpXS5nZXQoKSk7CisgICAgaWYgKGF1dG8qIGNs
aWVudCA9IHRoaXMtPmNsaWVudCgpKSB7CisgICAgICAgIGZvciAoYXV0byYgY3VlIDogbV9jdWVz
KQorICAgICAgICAgICAgY2xpZW50LT5yZW1vdmVHZW5lcmljQ3VlKCpjdWUpOwogICAgIH0KIAog
ICAgIG1fY3Vlcy5yZXNpemUoMCk7CkBAIC01MDksNyArNTA4LDcgQEAgdm9pZCBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzTmF0aXZlU2FtcGxlcyhDRkFycmF5UmVmIG5hdGl2ZVNh
bXBsZXMsIGMKICAgICAgICAgICAgIExPRyhNZWRpYSwgIiAgICBpZCA9IFwiJXNcIiwgc2V0dGlu
Z3MgPSBcIiVzXCIsIGN1ZSB0ZXh0ID0gXCIlc1wiIiwgY3VlRGF0YS5pZCgpLnV0ZjgoKS5kYXRh
KCksIGN1ZURhdGEuc2V0dGluZ3MoKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLmN1ZVRleHQoKS51
dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAgIExPRyhNZWRpYSwgIiAgICBzb3VyY2VJRCA9IFwi
JXNcIiwgb3JpZ2luYWxTdGFydFRpbWUgPSBcIiVzXCIiLCBjdWVEYXRhLnNvdXJjZUlEKCkudXRm
OCgpLmRhdGEoKSwgY3VlRGF0YS5vcmlnaW5hbFN0YXJ0VGltZSgpLnV0ZjgoKS5kYXRhKCkpOwog
Ci0gICAgICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRDdWVEYXRhKHRoaXMsIGN1ZURhdGEp
OworICAgICAgICAgICAgY2xpZW50KCktPnBhcnNlV2ViVlRUQ3VlRGF0YShjdWVEYXRhKTsKICAg
ICAgICAgfQogCiAgICAgICAgIGRvIHsKQEAgLTU0Miw3ICs1NDEsNyBAQCB2b2lkIEluYmFuZFRl
eHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NOYXRpdmVTYW1wbGVzKENGQXJyYXlSZWYgbmF0aXZl
U2FtcGxlcywgYwogICAgICAgICAgICAgaGVhZGVyLmFwcGVuZCgiXG5cbiIpOwogCiAgICAgICAg
ICAgICBMT0coTWVkaWEsICIgICAgdnR0IGhlYWRlciA9IFxuJXMiLCBoZWFkZXIudG9TdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEZpbGVI
ZWFkZXIodGhpcywgaGVhZGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgY2xpZW50KCktPnBh
cnNlV2ViVlRURmlsZUhlYWRlcihoZWFkZXIudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICBtX2hh
dmVSZXBvcnRlZFZUVEhlYWRlciA9IHRydWU7CiAgICAgICAgIH0gd2hpbGUgKDApOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5jcHAKaW5kZXggZmU5MzQ0YjYzMWYwMzVmOWVkZTczNTc0NDA3ZjM0
MzlhYTI0ZTUwMi4uOGM5NDkzY2E1Yjc5N2U0NDhhMDAyMjM5NDdlOWI1MWIzYzlhODRkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcApAQCAtMzYsOCArMzYsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6QXVkaW9UcmFja1By
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaywgU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMqIHBhcmVudCkKICAgICA6IG1faW1wbChzdGQ6Om1ha2VfdW5pcXVlPEFW
VHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKICAgICAsIG1fcGFyZW50KHBhcmVudCkK
LSAgICAsIG1fdHJhY2tJRCgtMSkKLSAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKICAgICByZXNl
dFByb3BlcnRpZXNGcm9tVHJhY2soKTsKIH0KQEAgLTYzLDE3ICs2MSwxMiBAQCBBVkFzc2V0VHJh
Y2sqIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphc3NldFRyYWNrKCkKICAg
ICByZXR1cm4gbV9pbXBsLT5hc3NldFRyYWNrKCk7CiB9CiAKLWJvb2wgQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmVuYWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX2Vu
YWJsZWQ7Ci19Ci0KIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNl
dEVuYWJsZWQoYm9vbCBlbmFibGVkKQogewotICAgIGlmIChtX2VuYWJsZWQgPT0gZW5hYmxlZCkK
KyAgICBpZiAoZW5hYmxlZCA9PSB0aGlzLT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgQXVkaW9UcmFja1ByaXZhdGVBVkY6OnNldEVu
YWJsZWQoZW5hYmxlZCk7CiAgICAgbV9wYXJlbnQtPnRyYWNrRGlkQ2hhbmdlRW5hYmxlZCh0aGlz
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggYmJlODljZGRhMTNiMDgyZGNmODNm
MDI1ZmNjODVjNDI4ZmRjOTE0Ny4uMTdjMTlhMDA2YTc2N2I4NWZmMWJhZDQxYjI4MzAyN2M4NWFm
MGNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKICAqLwogCi0jaWZuZGVmIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDX2gKLSNkZWZpbmUgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakNfaAorI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZUFWRi5oIgogCkBAIC00Niw4
ICs0NSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyh0cmFjaywgcGFyZW50KSk7CiAgICAgfQogCi0gICAg
Ym9vbCBlbmFibGVkKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRFbmFibGVkKGJvb2wp
IG92ZXJyaWRlOworICAgIHZvaWQgc2V0RW5hYmxlZChib29sKSBmaW5hbDsKIAogICAgIHZvaWQg
c2V0QXNzZXRUcmFjayhBVkFzc2V0VHJhY2sqKTsKICAgICBBVkFzc2V0VHJhY2sqIGFzc2V0VHJh
Y2soKTsKQEAgLTYyLDExICs2MCw4IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFW
VHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+IG1faW1wbDsKICAgICBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyogbV9wYXJlbnQ7CiAgICAgaW50IG1fdHJhY2tJRDsKLSAgICBib29sIG1fZW5hYmxl
ZDsKIH07CiAKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEVOQUJMRShW
SURFT19UUkFDSykKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaAppbmRleCAxZjc1ODJlMThiYjY4Y2NiOGMwNjU3NmY0
MGMxYzE5NTM3ZmE3ZTdhLi4zZGFlNGIxMzA4NThmNDYzN2JkZDJmNTFhMmMzNDY4NDI3ZjgyYmEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDLmgKQEAgLTExNCwxOCArMTE0LDE4IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQyopOwogCiAg
ICAgLy8gU291cmNlQnVmZmVyUHJpdmF0ZSBvdmVycmlkZXMKLSAgICB2b2lkIHNldENsaWVudChT
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Kikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBhcHBlbmQoY29u
c3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBvdmVycmlkZTsKLSAgICB2
b2lkIGFib3J0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKCkgb3ZlcnJpZGU7Ci0gICAgTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZv
aWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBmbHVzaChBdG9taWNTdHJpbmcgdHJhY2tJRCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBlbnF1
ZXVlU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+LCBBdG9taWNTdHJpbmcgdHJhY2tJRCkg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRy
YWNrSUQpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIG92ZXJyaWRlOwotICAg
IHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRy
YWNrSUQpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVD
bGllbnQqKSBmaW5hbDsKKyAgICB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgpIGZpbmFsOworICAgIHZvaWQgYWJvcnQoKSBmaW5hbDsKKyAgICB2
b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZWRGcm9tTWVkaWFT
b3VyY2UoKSBmaW5hbDsKKyAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkg
Y29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0
YXRlKSBmaW5hbDsKKyAgICB2b2lkIGZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkg
ZmluYWw7CisgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiwgY29uc3Qg
QXRvbWljU3RyaW5nJiB0cmFja0lEKSBmaW5hbDsKKyAgICBib29sIGlzUmVhZHlGb3JNb3JlU2Ft
cGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpIGZpbmFsOworICAgIHZvaWQgc2V0QWN0
aXZlKGJvb2wpIGZpbmFsOworICAgIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNh
bXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKSBmaW5hbDsKIAogICAgIHZvaWQgZGlk
QmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhpbnQgdHJhY2tJRCk7CiAgICAgdm9pZCBhcHBlbmRD
b21wbGV0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMubW0KaW5kZXggM2IwZDY4Y2MyYmYyZDIyYjc4YjM5MmJmMzgyOGZlNjEz
OGU5YjAxOC4uY2M5MmVkMTU4ZjU1M2MxMTYwZGE0M2YyN2ExYTA4OWE5NTczMjhkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW0KQEAgLTUxMiw3ICs1MTIsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpk
aWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0KEFWQXNzZXQqIGFzc2V0KQogICAgICAgICBtX21lZGlh
U291cmNlLT5wbGF5ZXIoKS0+Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOwogCiAgICAgaWYgKG1f
Y2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJ
bml0aWFsaXphdGlvblNlZ21lbnQodGhpcywgc2VnbWVudCk7CisgICAgICAgIG1fY2xpZW50LT5z
b3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChzZWdtZW50
KTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkRmFpbFRvUGFyc2VT
dHJlYW1EYXRhV2l0aEVycm9yKE5TRXJyb3IqIGVycm9yKQpAQCAtNTQ5LDcgKzU0OSw3IEBAIGJv
b2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnByb2Nlc3NDb2RlZEZyYW1lKGludCB0cmFj
a0lELCBDTVNhbXBsZUJ1ZmZlclJlCiAgICAgaWYgKG1fY2xpZW50KSB7CiAgICAgICAgIFJlZjxN
ZWRpYVNhbXBsZT4gbWVkaWFTYW1wbGUgPSBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShzYW1w
bGVCdWZmZXIsIHRyYWNrSUQpOwogICAgICAgICBMT0coTWVkaWFTb3VyY2VTYW1wbGVzLCAiU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnByb2Nlc3NDb2RlZEZyYW1lKCVwKSAtIHNhbXBsZSgl
cykiLCB0aGlzLCB0b1N0cmluZyhtZWRpYVNhbXBsZS5nZXQoKSkudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSh0aGlz
LCBtZWRpYVNhbXBsZSk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlk
UmVjZWl2ZVNhbXBsZShtZWRpYVNhbXBsZSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CkBA
IC02NTksNyArNjU5LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5k
Q29tcGxldGVkKCkKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldExvYWRpbmdQ
cm9ncmVzc3NlZCh0cnVlKTsKIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQt
PnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCBtX3BhcnNpbmdTdWNjZWVk
ZWQgPyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQgOiBTb3VyY2VC
dWZmZXJQcml2YXRlQ2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKKyAgICAgICAgbV9jbGllbnQtPnNv
dXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShtX3BhcnNpbmdTdWNjZWVkZWQgPyBTb3Vy
Y2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQgOiBTb3VyY2VCdWZmZXJQcml2
YXRlQ2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6YWJvcnQoKQpAQCAtNzM1LDE4ICs3MzUsMTIgQEAgdm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFk
eVN0YXQKIAogYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6aGFzVmlkZW8oKSBjb25z
dAogewotICAgIGlmICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJl
dHVybiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKHRoaXMpOworICAgIHJl
dHVybiBtX2NsaWVudCAmJiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCk7
CiB9CiAKIGJvb2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Omhhc0F1ZGlvKCkgY29uc3QK
IHsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1
cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyh0aGlzKTsKKyAgICByZXR1
cm4gbV9jbGllbnQgJiYgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygpOwog
fQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0cmFja0RpZENoYW5nZUVuYWJs
ZWQoVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMqIHRyYWNrKQpAQCAtODc0LDcg
Kzg2OCw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmxheWVyRGlkUmVjZWl2
ZUVycm9yKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyCiAgICAgaW50IGVycm9yQ29kZSA9IFtb
W2Vycm9yIHVzZXJJbmZvXSB2YWx1ZUZvcktleTpAIk9TU3RhdHVzIl0gaW50VmFsdWVdOwogCiAg
ICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURp
ZFJlY2VpdmVSZW5kZXJpbmdFcnJvcih0aGlzLCBlcnJvckNvZGUpOworICAgICAgICBtX2NsaWVu
dC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihlcnJvckNvZGUp
OwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlckRpZFJlY2Vp
dmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKnJlbmRlcmVyLCBOU0Vycm9yICpl
cnJvcikKQEAgLTg5NSw3ICs4ODksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjpyZW5kZXJlckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZAogICAgICAg
ICByZXR1cm47CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmZsdXNoKEF0
b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6Zmx1c2goY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAgIGludCB0
cmFja0lEID0gdHJhY2tJRFN0cmluZy50b0ludCgpOwogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVzaCglcCkgLSB0cmFja0lkOiAlZCIsIHRoaXMs
IHRyYWNrSUQpOwpAQCAtOTI1LDE5ICs5MTksMTcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6Zmx1c2goQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICpyZW5kZXJlcikKICAg
ICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxl
KHJlbmRlcmVyLCBmYWxzZSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OmVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJwTWVkaWFTYW1wbGUsIEF0
b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdCBBdG9taWNT
dHJpbmcmIHRyYWNrSURTdHJpbmcpCiB7CiAgICAgaW50IHRyYWNrSUQgPSB0cmFja0lEU3RyaW5n
LnRvSW50KCk7CiAgICAgaWYgKHRyYWNrSUQgIT0gbV9lbmFibGVkVmlkZW9UcmFja0lEICYmICFt
X2F1ZGlvUmVuZGVyZXJzLmNvbnRhaW5zKHRyYWNrSUQpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBSZWZQdHI8TWVkaWFTYW1wbGU+IG1lZGlhU2FtcGxlID0gcHJwTWVkaWFTYW1wbGU7Ci0KLSAg
ICBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBsZSA9IG1lZGlhU2FtcGxlLT5wbGF0Zm9ybVNh
bXBsZSgpOworICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlID0gc2FtcGxlLT5wbGF0
Zm9ybVNhbXBsZSgpOwogICAgIGlmIChwbGF0Zm9ybVNhbXBsZS50eXBlICE9IFBsYXRmb3JtU2Ft
cGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIExPRyhNZWRp
YVNvdXJjZVNhbXBsZXMsICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBs
ZSglcCkgLSBzYW1wbGUoJXMpIiwgdGhpcywgdG9TdHJpbmcoKm1lZGlhU2FtcGxlKS51dGY4KCku
ZGF0YSgpKTsKKyAgICBMT0coTWVkaWFTb3VyY2VTYW1wbGVzLCAiU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoJXApIC0gc2FtcGxlKCVzKSIsIHRoaXMsIHRvU3RyaW5n
KHNhbXBsZS5nZXQoKSkudXRmOCgpLmRhdGEoKSk7CiAKICAgICBpZiAodHJhY2tJRCA9PSBtX2Vu
YWJsZWRWaWRlb1RyYWNrSUQpIHsKICAgICAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3Jt
YXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxhdGZv
cm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKQEAgLTk1MCwyMiArOTQyLDIyIEBAIHZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxN
ZWRpYVNhbXBsZT4gcHJwTWVkaWFTCiAgICAgICAgICAgICAgICAgaWYgKHNpemVXYXNOdWxsKQog
ICAgICAgICAgICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2V0TmF0dXJhbFNp
emUoZm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg
ICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2l6ZVdpbGxDaGFuZ2VBdFRpbWUobWVkaWFTYW1w
bGUtPnByZXNlbnRhdGlvblRpbWUoKSwgZm9ybWF0U2l6ZSk7CisgICAgICAgICAgICAgICAgICAg
IG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zaXplV2lsbENoYW5nZUF0VGltZShzYW1wbGUtPnBy
ZXNlbnRhdGlvblRpbWUoKSwgZm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
IAogICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZW5xdWV1ZVNhbXBsZUJ1ZmZlcjpwbGF0Zm9ybVNh
bXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXJdOwogICAgICAgICBpZiAobV9tZWRpYVNvdXJjZSkK
LSAgICAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zZXRIYXNBdmFpbGFibGVWaWRl
b0ZyYW1lKCFtZWRpYVNhbXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOworICAgICAgICAgICAgbV9t
ZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoIXNhbXBsZS0+
aXNOb25EaXNwbGF5aW5nKCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8gcmVuZGVyZXIg
PSBtX2F1ZGlvUmVuZGVyZXJzLmdldCh0cmFja0lEKTsKICAgICAgICAgW3JlbmRlcmVyIGVucXVl
dWVTYW1wbGVCdWZmZXI6cGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyXTsKICAg
ICAgICAgaWYgKG1fbWVkaWFTb3VyY2UpCi0gICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5
ZXIoKS0+c2V0SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUocmVuZGVyZXIuZ2V0KCksICFtZWRpYVNh
bXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOworICAgICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxh
eWVyKCktPnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxlKHJlbmRlcmVyLmdldCgpLCAhc2FtcGxl
LT5pc05vbkRpc3BsYXlpbmcoKSk7CiAgICAgfQogfQogCi1ib29sIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSURTdHJp
bmcpCitib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjppc1JlYWR5Rm9yTW9yZVNhbXBs
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAgIGludCB0cmFja0lE
ID0gdHJhY2tJRFN0cmluZy50b0ludCgpOwogICAgIGlmICh0cmFja0lEID09IG1fZW5hYmxlZFZp
ZGVvVHJhY2tJRCkKQEAgLTk4NCw5ICs5NzYsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpzZXRBY3RpdmUoYm9vbCBpc0FjdGl2ZSkKIAogTWVkaWFUaW1lIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjpmYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoTWVkaWFUaW1lIHRpbWUs
IE1lZGlhVGltZSBuZWdhdGl2ZVRocmVzaG9sZCwgTWVkaWFUaW1lIHBvc2l0aXZlVGhyZXNob2xk
KQogewotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgcmV0dXJuIG1fY2xpZW50LT5zb3VyY2VC
dWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRoaXMsIHRpbWUsIG5lZ2F0aXZl
VGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7Ci0gICAgcmV0dXJuIHRpbWU7CisgICAgaWYg
KCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuIHRpbWU7CisgICAgcmV0dXJuIG1fY2xpZW50LT5z
b3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRpbWUsIG5lZ2F0aXZl
VGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OndpbGxTZWVrKCkKQEAgLTEwMDEsNyArOTkzLDcgQEAgdm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6d2lsbFNlZWsoKQogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6c2Vla1RvVGltZShNZWRpYVRpbWUgdGltZSkKIHsKICAgICBpZiAobV9jbGllbnQp
Ci0gICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGltZSh0aGlzLCB0
aW1lKTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKHRp
bWUpOwogfQogCiBGbG9hdFNpemUgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om5hdHVyYWxT
aXplKCkKQEAgLTEwMjEsMTAgKzEwMTMsMTAgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6ZGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhpbnQgdHJhY2tJRCkKICAgICB9CiAK
ICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRl
RGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyh0aGlzLCBBdG9taWNTdHJpbmc6Om51bWJlcih0
cmFja0lEKSk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21l
UmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmc6Om51bWJlcih0cmFja0lEKSk7CiB9CiAK
LXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZv
ck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29u
c3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAgIGludCB0cmFja0lEID0gdHJh
Y2tJRFN0cmluZy50b0ludCgpOwogICAgIGlmICh0cmFja0lEID09IG1fZW5hYmxlZFZpZGVvVHJh
Y2tJRCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZE1ldGFkYXRhVGV4dFRy
YWNrUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IGY2NjZiZWJjMmI3ZjQzMmFiYzU2ZmI4ODZjODk5
NzZmNzlhMzU0YWQuLmU5NDJhMmM1ZmMwN2U3YjBhYTU2NTEzMWZhMTg1MThjYzVjNDRjZjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJh
bmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2
YXRlR1N0cmVhbWVyLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYg
SW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyX2gKLSNkZWZpbmUgSW5iYW5k
TWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyX2gKKyNwcmFnbWEgb25jZQogCiAjaWYg
RU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCiAK
QEAgLTUwLDEzICs0OSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1l
ZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiBkYXRhLCB1
bnNpZ25lZCBsZW5ndGgpCiAgICAgewogICAgICAgICBBU1NFUlQoY3VlRm9ybWF0KCkgPT0gRGF0
YSk7Ci0gICAgICAgIGNsaWVudCgpLT5hZGREYXRhQ3VlKHRoaXMsIHN0YXJ0LCBlbmQsIGRhdGEs
IGxlbmd0aCk7CisgICAgICAgIGNsaWVudCgpLT5hZGREYXRhQ3VlKHN0YXJ0LCBlbmQsIGRhdGEs
IGxlbmd0aCk7CiAgICAgfQogCiAgICAgdm9pZCBhZGRHZW5lcmljQ3VlKFBhc3NSZWZQdHI8R2Vu
ZXJpY0N1ZURhdGE+IGRhdGEpCiAgICAgewogICAgICAgICBBU1NFUlQoY3VlRm9ybWF0KCkgPT0g
R2VuZXJpYyk7Ci0gICAgICAgIGNsaWVudCgpLT5hZGRHZW5lcmljQ3VlKHRoaXMsIGRhdGEpOwor
ICAgICAgICBjbGllbnQoKS0+YWRkR2VuZXJpY0N1ZSgqZGF0YSk7CiAgICAgfQogCiBwcml2YXRl
OgpAQCAtNzYsNSArNzUsMyBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUoVklERU9f
VFJBQ0spCi0KLSNlbmRpZiAvLyBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVHU3RyZWFt
ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFt
ZXIuY3BwCmluZGV4IDZiMWZmYWI5M2MzNDhmY2NjNzdjNjMwZmViNmJlODJlMTAxOWRhZDYuLjFk
OTQ1Mjc4YmE0ZDAyYzA0N2YzMmExNTc0OTVkYmRlNjhjZmEwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTExMyw3ICsx
MTMsNyBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRyYWNr
T2ZTYW1wbGUoKQogCiAgICAgICAgIEdTVF9JTkZPKCJUcmFjayAlZCBwYXJzaW5nIHNhbXBsZTog
JS4qcyIsIG1faW5kZXgsIHN0YXRpY19jYXN0PGludD4oaW5mby5zaXplKSwKICAgICAgICAgICAg
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGluZm8uZGF0YSkpOwotICAgICAgICBjbGllbnQoKS0+
cGFyc2VXZWJWVFRDdWVEYXRhKHRoaXMsIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGluZm8uZGF0
YSksIGluZm8uc2l6ZSk7CisgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEN1ZURhdGEocmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4oaW5mby5kYXRhKSwgaW5mby5zaXplKTsKICAgICAgICAgZ3N0
X2J1ZmZlcl91bm1hcChidWZmZXIsICZpbmZvKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAKaW5kZXggNjE5ZjJjYTYxY2FiZTU5NDBhZWMz
ZDEzZWNmN2RkZjU3MzVmZDcyMS4uOWJlMWZlYTJkZmY1YTA2Y2U0MGU4NTFmYTUzYTAzZjY0ODRh
ZTVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApA
QCAtMTU3LDcgKzE1Nyw3IEBAIHZvaWQgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6bm90aWZ5
VHJhY2tPZlRhZ3NDaGFuZ2VkKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGdldFRhZyh0
YWdzLmdldCgpLCBHU1RfVEFHX1RJVExFLCBtX2xhYmVsKSkKLSAgICAgICAgY2xpZW50LT5sYWJl
bENoYW5nZWQobV9vd25lciwgbV9sYWJlbCk7CisgICAgICAgIGNsaWVudC0+bGFiZWxDaGFuZ2Vk
KG1fbGFiZWwpOwogCiAgICAgQXRvbWljU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmICghZ2V0TGFu
Z3VhZ2VDb2RlKHRhZ3MuZ2V0KCksIGxhbmd1YWdlKSkKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2b2lk
IFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCgpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIG1fbGFuZ3VhZ2UgPSBsYW5ndWFnZTsKLSAgICBjbGllbnQt
Pmxhbmd1YWdlQ2hhbmdlZChtX293bmVyLCBtX2xhbmd1YWdlKTsKKyAgICBjbGllbnQtPmxhbmd1
YWdlQ2hhbmdlZChtX2xhbmd1YWdlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9B
cHBlbmRQaXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAppbmRleCAwMDUxMmU2M2M3MzJlMzkzZWY2NTE2
MDEwZDFlNjdlZTZmZWRiYjM4Li44NDkyNjdmMjFlMDY5OGZiNWQyYWRkZWFlNTA5MWIzYzVkMDky
ZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcApAQCAtNjc2LDcgKzY3Niw3
IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtOZXdTYW1wbGUoR3N0U2FtcGxlKiBzYW1w
bGUpCiAgICAgICAgICAgICBtZWRpYVNhbXBsZS0+YXBwbHlQdHNPZmZzZXQoTWVkaWFUaW1lOjp6
ZXJvVGltZSgpKTsKICAgICAgICAgfQogCi0gICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZS0+
ZGlkUmVjZWl2ZVNhbXBsZShtZWRpYVNhbXBsZSk7CisgICAgICAgIG1fc291cmNlQnVmZmVyUHJp
dmF0ZS0+ZGlkUmVjZWl2ZVNhbXBsZSgqbWVkaWFTYW1wbGUpOwogICAgICAgICBzZXRBcHBlbmRT
dGF0ZShBcHBlbmRTdGF0ZTo6U2FtcGxpbmcpOwogICAgICAgICBtX2Zsb3dSZXR1cm4gPSBHU1Rf
RkxPV19PSzsKICAgICAgICAgbV9uZXdTYW1wbGVDb25kaXRpb24ubm90aWZ5T25lKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1Nv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcApp
bmRleCA3ZjU0NWVlMzVlNDhhYTA2YjAyYTk5NjNlMTFhY2JjYmRjYTc3OTQxLi5lNGIxMDdmNzBm
NWM4YzY5ODE3NDE1ZWJjYTRkNjU1YjNhYjVlYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTc2LDcgKzc2LDcgQEAg
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjphcHBlbmQoY29uc3QgdW5zaWduZWQg
Y2hhciogZGF0YSwgdW5zaWduZWQgbGUKICAgICBpZiAobV9jbGllbnQtPmFwcGVuZCh0aGlzLCBk
YXRhLCBsZW5ndGgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3NvdXJjZUJ1ZmZlclByaXZh
dGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCBTb3VyY2VC
dWZmZXJQcml2YXRlQ2xpZW50OjpSZWFkU3RyZWFtRmFpbGVkKTsKKyAgICBtX3NvdXJjZUJ1ZmZl
clByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VC
dWZmZXJQcml2YXRlQ2xpZW50OjpSZWFkU3RyZWFtRmFpbGVkKTsKIH0KIAogdm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyOjphYm9ydCgpCkBAIC0xMDYsMjAgKzEwNiwxOSBAQCB2b2lk
IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6
OlJlYWR5U3RhdGUgc3RhdGUpCiAgICAgbV9tZWRpYVNvdXJjZS0+c2V0UmVhZHlTdGF0ZShzdGF0
ZSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Zmx1c2goQXRvbWlj
U3RyaW5nIHRyYWNrSWQpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmZsdXNo
KGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJZCkKIHsKICAgICBtX2NsaWVudC0+Zmx1c2godHJh
Y2tJZCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZW5xdWV1ZVNh
bXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUsIEF0b21pY1N0cmluZykKK3Zv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFT
YW1wbGU+JiYgc2FtcGxlLCBjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAgIG1fbm90aWZ5V2hl
blJlYWR5Rm9yTW9yZVNhbXBsZXMgPSBmYWxzZTsKIAotICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4g
cHJvdGVjdGVkUHJwU2FtcGxlID0gcHJwU2FtcGxlOwotICAgIG1fY2xpZW50LT5lbnF1ZXVlU2Ft
cGxlKHByb3RlY3RlZFBycFNhbXBsZSk7CisgICAgbV9jbGllbnQtPmVucXVldWVTYW1wbGUoV1RG
TW92ZShzYW1wbGUpKTsKIH0KIAotYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpp
c1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKQorYm9vbCBTb3VyY2VCdWZmZXJQcml2
YXRlR1N0cmVhbWVyOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikK
IHsKICAgICByZXR1cm4gbV9pc1JlYWR5Rm9yTW9yZVNhbXBsZXM7CiB9CkBAIC0xMzUsNyArMTM0
LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlSZWFkeUZvck1v
cmVTYW1wbGVzKCkKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CiAgICAgc2V0UmVh
ZHlGb3JNb3JlU2FtcGxlcyh0cnVlKTsKICAgICBpZiAobV9ub3RpZnlXaGVuUmVhZHlGb3JNb3Jl
U2FtcGxlcykKLSAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZm
ZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyh0aGlzLCBtX3RyYWNrSWQpOwor
ICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKG1fdHJhY2tJZCk7CiB9CiAKIHZvaWQgU291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0QWN0aXZlKGJvb2wgaXNBY3RpdmUpCkBAIC0xNDQs
MTIgKzE0MywxMiBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnNldEFjdGl2
ZShib29sIGlzQWN0aXZlKQogICAgICAgICBtX21lZGlhU291cmNlLT5zb3VyY2VCdWZmZXJQcml2
YXRlRGlkQ2hhbmdlQWN0aXZlU3RhdGUodGhpcywgaXNBY3RpdmUpOwogfQogCi12b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhBdG9taWNT
dHJpbmcpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnN0b3BBc2tpbmdGb3JN
b3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5Q2xpZW50V2hl
blJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSWQpCit2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVz
KGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJZCkKIHsKICAgICBBU1NFUlQoV1RGOjppc01haW5U
aHJlYWQoKSk7CiAgICAgbV9ub3RpZnlXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyA9IHRydWU7CkBA
IC0xNTksMjAgKzE1OCwxOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6Om5v
dGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cgogdm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNv
bnN0IFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9uU2VnbWVudCYgaW5p
dGlhbGl6YXRpb25TZWdtZW50KQogewogICAgIGlmIChtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGll
bnQpCi0gICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC0+c291cmNlQnVmZmVyUHJp
dmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQodGhpcywgaW5pdGlhbGl6YXRpb25T
ZWdtZW50KTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZm
ZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChpbml0aWFsaXphdGlvblNl
Z21lbnQpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2Vp
dmVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJwU2FtcGxlKQordm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1w
bGUpCiB7Ci0gICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBwcm90ZWN0ZWRQcnBTYW1wbGUgPSBwcnBT
YW1wbGU7CiAgICAgaWYgKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCkKLSAgICAgICAgbV9z
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNh
bXBsZSh0aGlzLCAqcHJvdGVjdGVkUHJwU2FtcGxlKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQ
cml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShzYW1wbGUp
OwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVBbGxQ
ZW5kaW5nU2FtcGxlcygpCiB7CiAgICAgaWYgKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCkK
LSAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRl
QXBwZW5kQ29tcGxldGUodGhpcywgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBwZW5kU3Vj
Y2VlZGVkKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZm
ZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBwZW5k
U3VjY2VlZGVkKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXIuaAppbmRleCAzMDg0MjVkNTAzY2FhNGViODY4YjM4OTk5YjVkNDY3
NjhkZDU0OTg3Li41NjcxMzEwZmY4MmM4M2Y5OGMyNjBlODdiNDhmMTM0MWVjOGFmNjFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1Nv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaApA
QCAtNTQsMjYgKzU0LDI2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2xlYXJNZWRpYVNvdXJjZSgp
IHsgbV9tZWRpYVNvdXJjZSA9IG51bGxwdHI7IH0KIAotICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQqKSBvdmVycmlkZTsKLSAgICB2b2lkIGFwcGVuZChjb25zdCB1
bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQpIG92ZXJyaWRlOwotICAgIHZvaWQgYWJvcnQoKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJl
bW92ZWRGcm9tTWVkaWFTb3VyY2UoKSBvdmVycmlkZTsKLSAgICBNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRSZWFkeVN0YXRl
KE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsKLQotICAgIHZvaWQgZmx1c2goQXRv
bWljU3RyaW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIGVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxN
ZWRpYVNhbXBsZT4sIEF0b21pY1N0cmluZykgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWR5Rm9y
TW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldEFjdGl2ZShi
b29sKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhBdG9taWNT
dHJpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNh
bXBsZXMoQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldENsaWVudChTb3VyY2VC
dWZmZXJQcml2YXRlQ2xpZW50KikgZmluYWw7CisgICAgdm9pZCBhcHBlbmQoY29uc3QgdW5zaWdu
ZWQgY2hhciosIHVuc2lnbmVkKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KCkgZmluYWw7CisgICAg
dm9pZCByZXNldFBhcnNlclN0YXRlKCkgZmluYWw7CisgICAgdm9pZCByZW1vdmVkRnJvbU1lZGlh
U291cmNlKCkgZmluYWw7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZSkgZmluYWw7CisKKyAgICB2b2lkIGZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFs
OworICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYsIGNvbnN0IEF0b21p
Y1N0cmluZyYpIGZpbmFsOworICAgIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0
b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIGZpbmFsOworICAg
IHZvaWQgc3RvcEFza2luZ0Zvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFs
OworICAgIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRv
bWljU3RyaW5nJikgZmluYWw7CiAKICAgICB2b2lkIHNldFJlYWR5Rm9yTW9yZVNhbXBsZXMoYm9v
bCk7CiAgICAgdm9pZCBub3RpZnlSZWFkeUZvck1vcmVTYW1wbGVzKCk7CiAKICAgICB2b2lkIGRp
ZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgU291cmNlQnVmZmVyUHJpdmF0ZUNs
aWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZW50Jik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2FtcGxl
KFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTYW1wbGUoTWVk
aWFTYW1wbGUmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVBbGxQZW5kaW5nU2FtcGxlcygpOwogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNv
dXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcAppbmRleCA0OGRm
NGJjYzRjM2JiOGRhMmM1ZjQ5MDBlMTc1MDYwMDc5MTg1NmYzLi4xNTBkMmMzMjZhMGFmY2QzYWNl
Y2M4MDU4ZjRjOWZkNjIwNWYwNzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2
YXRlLmNwcApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVD
bGllbnQuaCIKICNpbmNsdWRlIDxtYXA+CiAjaW5jbHVkZSA8cnVudGltZS9BcnJheUJ1ZmZlci5o
PgotI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmlu
dFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNjUsNyArMTY0LDcgQEAgdm9p
ZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6YXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRh
dGEsIHVuc2lnbmVkIGxlbmd0aCkKICAgICB9CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAg
IG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUodGhpcywgcmVzdWx0
KTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShy
ZXN1bHQpOwogfQogCiB2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlSW5p
dGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IE1vY2tJbml0aWFsaXphdGlvbkJveCYgaW5pdEJveCkK
QEAgLTE5Niw3ICsxOTUsNyBAQCB2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNl
aXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IE1vY2tJbml0aWFsaQogICAgICAgICB9CiAg
ICAgfQogCi0gICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlh
bGl6YXRpb25TZWdtZW50KHRoaXMsIHNlZ21lbnQpOworICAgIG1fY2xpZW50LT5zb3VyY2VCdWZm
ZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChzZWdtZW50KTsKIH0KIAog
CkBAIC0yMDUsNyArMjA0LDcgQEAgdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVj
ZWl2ZVNhbXBsZShjb25zdCBNb2NrU2FtcGxlQm94JiBzYW1wbGVCb3gpCiAgICAgaWYgKCFtX2Ns
aWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZh
dGVEaWRSZWNlaXZlU2FtcGxlKHRoaXMsIE1vY2tNZWRpYVNhbXBsZTo6Y3JlYXRlKHNhbXBsZUJv
eCkpOworICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShN
b2NrTWVkaWFTYW1wbGU6OmNyZWF0ZShzYW1wbGVCb3gpKTsKIH0KIAogdm9pZCBNb2NrU291cmNl
QnVmZmVyUHJpdmF0ZTo6YWJvcnQoKQpAQCAtMjM5LDIyICsyMzgsMjEgQEAgdm9pZCBNb2NrU291
cmNlQnVmZmVyUHJpdmF0ZTo6c2V0QWN0aXZlKGJvb2wgaXNBY3RpdmUpCiAgICAgICAgIG1fbWVk
aWFTb3VyY2UtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRDaGFuZ2VBY3RpdmVTdGF0ZSh0aGlzLCBp
c0FjdGl2ZSk7CiB9CiAKLVZlY3RvcjxTdHJpbmc+IE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpl
bnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKEF0b21pY1N0cmluZykKK1ZlY3RvcjxTdHJpbmc+IE1v
Y2tTb3VyY2VCdWZmZXJQcml2YXRlOjplbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKGNvbnN0IEF0
b21pY1N0cmluZyYpCiB7CiAgICAgcmV0dXJuIG1fZW5xdWV1ZWRTYW1wbGVzOwogfQogCi12b2lk
IE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjplbnF1ZXVlU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFT
YW1wbGU+IHBycFNhbXBsZSwgQXRvbWljU3RyaW5nKQordm9pZCBNb2NrU291cmNlQnVmZmVyUHJp
dmF0ZTo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdCBBdG9t
aWNTdHJpbmcmKQogewotICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gc2FtcGxlID0gcHJwU2FtcGxl
OwotICAgIGlmICghbV9tZWRpYVNvdXJjZSB8fCAhc2FtcGxlKQorICAgIGlmICghbV9tZWRpYVNv
dXJjZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUGxhdGZvcm1TYW1wbGUgcGxhdGZvcm1TYW1w
bGUgPSBzYW1wbGUtPnBsYXRmb3JtU2FtcGxlKCk7CiAgICAgaWYgKHBsYXRmb3JtU2FtcGxlLnR5
cGUgIT0gUGxhdGZvcm1TYW1wbGU6Ok1vY2tTYW1wbGVCb3hUeXBlKQogICAgICAgICByZXR1cm47
CiAKLSAgICBNb2NrU2FtcGxlQm94KiBib3ggPSBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUubW9ja1Nh
bXBsZUJveDsKKyAgICBhdXRvKiBib3ggPSBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUubW9ja1NhbXBs
ZUJveDsKICAgICBpZiAoIWJveCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yNjYsMzcgKzI2NCwz
MCBAQCB2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjplbnF1ZXVlU2FtcGxlKFBhc3NSZWZQ
dHI8TWVkaWFTYW1wbGU+IHBycFNhbXBsZSwgQQogICAgIGlmIChib3gtPmlzRGVsYXllZCgpKQog
ICAgICAgICBtX21lZGlhU291cmNlLT5pbmNyZW1lbnRUb3RhbEZyYW1lRGVsYXlCeShNZWRpYVRp
bWUoMSwgMSkpOwogCi0gICAgbV9lbnF1ZXVlZFNhbXBsZXMuYXBwZW5kKHRvU3RyaW5nKHNhbXBs
ZSkpOworICAgIG1fZW5xdWV1ZWRTYW1wbGVzLmFwcGVuZCh0b1N0cmluZyhzYW1wbGUuZ2V0KCkp
KTsKIH0KIAogYm9vbCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6aGFzVmlkZW8oKSBjb25zdAog
ewotICAgIGlmICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVy
biBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKHRoaXMpOworICAgIHJldHVy
biBtX2NsaWVudCAmJiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCk7CiB9
CiAKIGJvb2wgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6Omhhc0F1ZGlvKCkgY29uc3QKIHsKLSAg
ICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9j
bGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyh0aGlzKTsKKyAgICByZXR1cm4gbV9j
bGllbnQgJiYgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygpOwogfQogCi0K
IE1lZGlhVGltZSBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZmFzdFNlZWtUaW1lRm9yTWVkaWFU
aW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgTWVkaWFUaW1lJiBuZWdhdGl2ZVRocmVz
aG9sZCwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRocmVzaG9sZCkKIHsKICAgICBpZiAobV9j
bGllbnQpCi0gICAgICAgIHJldHVybiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUZhc3RT
ZWVrVGltZUZvck1lZGlhVGltZSh0aGlzLCB0aW1lLCBuZWdhdGl2ZVRocmVzaG9sZCwgcG9zaXRp
dmVUaHJlc2hvbGQpOworICAgICAgICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZh
dGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUodGltZSwgbmVnYXRpdmVUaHJlc2hvbGQsIHBvc2l0
aXZlVGhyZXNob2xkKTsKICAgICByZXR1cm4gdGltZTsKIH0KIAogdm9pZCBNb2NrU291cmNlQnVm
ZmVyUHJpdmF0ZTo6c2Vla1RvVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUpCiB7CiAgICAgaWYg
KG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZVNlZWtUb1Rp
bWUodGhpcywgdGltZSk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlU2Vl
a1RvVGltZSh0aW1lKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5o
CmluZGV4IDc0NGI0YzEwN2MzMTAyNmZhNDI5YThmMTJkMjU2M2JmYzM2MzJkMjguLjYxNzQ1ZmI1
YTg1ODUxZmFjZmQ3ZTc1ZDgzMWIzYTBlZmJkYTY2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VC
dWZmZXJQcml2YXRlLmgKQEAgLTIzLDE1ICsyMywxMiBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8K
IAotI2lmbmRlZiBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZV9oCi0jZGVmaW5lIE1vY2tTb3VyY2VC
dWZmZXJQcml2YXRlX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
IAogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvTWVkaWFU
aW1lLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02OCwxMiArNjUsMTIgQEAgcHJpdmF0ZToKICAg
ICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsK
IAotICAgIHZvaWQgZmx1c2goQXRvbWljU3RyaW5nKSBvdmVycmlkZSB7IG1fZW5xdWV1ZWRTYW1w
bGVzLmNsZWFyKCk7IH0KLSAgICB2b2lkIGVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNh
bXBsZT4sIEF0b21pY1N0cmluZykgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNh
bXBsZXMoQXRvbWljU3RyaW5nKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdm9pZCBm
bHVzaChjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZSB7IG1fZW5xdWV1ZWRTYW1wbGVzLmNs
ZWFyKCk7IH0KKyAgICB2b2lkIGVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmLCBjb25z
dCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxl
cyhjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9p
ZCBzZXRBY3RpdmUoYm9vbCkgb3ZlcnJpZGU7CiAKLSAgICBWZWN0b3I8U3RyaW5nPiBlbnF1ZXVl
ZFNhbXBsZXNGb3JUcmFja0lEKEF0b21pY1N0cmluZykgb3ZlcnJpZGU7CisgICAgVmVjdG9yPFN0
cmluZz4gZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVy
cmlkZTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBN
b2NrSW5pdGlhbGl6YXRpb25Cb3gmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTYW1wbGUoY29uc3Qg
TW9ja1NhbXBsZUJveCYpOwpAQCAtODgsNiArODUsMyBAQCBwcml2YXRlOgogfQogCiAjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgVVNFKEFWRk9VTkRBVElPTikKLQotI2VuZGlmCi0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW4uY3BwCmluZGV4IDMzZmU0Mzk2MDJjY2QwNzUwYWUzYzNjYjBjNGQ3ODBjZjcxYmVjODMuLjhl
ZjQ4OWQ3ODI2ZGNjMDEzMWJiMzJkY2U5YmI2MzU0Mzg5ZThhOGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAtODIs
MTMgKzgyLDEzIEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmxheW91dCgpCiAgICAg
dmlldygpLmZyYW1lVmlldygpLmFkZEVtYmVkZGVkT2JqZWN0VG9VcGRhdGUoKnRoaXMpOwogfQog
Ci12b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRy
PEltYWdlPiBpbWFnZSkKK3ZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnVwZGF0ZVNuYXBz
aG90KEltYWdlKiBpbWFnZSkKIHsKICAgICAvLyBaZXJvLXNpemUgcGx1Z2lucyB3aWxsIGhhdmUg
bm8gaW1hZ2UuCiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9zbmFw
c2hvdFJlc291cmNlLT5zZXRDYWNoZWRJbWFnZShuZXcgQ2FjaGVkSW1hZ2UoaW1hZ2UuZ2V0KCks
IHZpZXcoKS5mcmFtZVZpZXcoKS5mcmFtZSgpLnBhZ2UoKS0+c2Vzc2lvbklEKCkpKTsKKyAgICBt
X3NuYXBzaG90UmVzb3VyY2UtPnNldENhY2hlZEltYWdlKG5ldyBDYWNoZWRJbWFnZShpbWFnZSwg
dmlldygpLmZyYW1lVmlldygpLmZyYW1lKCkucGFnZSgpLT5zZXNzaW9uSUQoKSkpOwogICAgIHJl
cGFpbnQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNuYXBzaG90dGVkUGx1Z0luLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4uaAppbmRleCAxMzRkYjgzM2I3OThlZTVjMzdiMWJhMjdkYTU0OGZjNTQz
ZWY4NjQ3Li5jMTc5N2EwZDYyMzFlYzk4NmYxZGMyZDMwMGVhZWVjZjIxNWU1Njc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaApA
QCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAKICAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBw
bHVnSW5JbWFnZUVsZW1lbnQoKSBjb25zdDsKIAotICAgIHZvaWQgdXBkYXRlU25hcHNob3QoUGFz
c1JlZlB0cjxJbWFnZT4pOworICAgIHZvaWQgdXBkYXRlU25hcHNob3QoSW1hZ2UqKTsKIAogICAg
IHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVt
ZW50LmgKaW5kZXggOGI3ZDkyNDU2NGE2NGYwMWM5NmQwYmUyNDMwOGNlYWE5ODZkMTZlOS4uOGRk
MGZkOGUzODIxNDhhNGE1NDAyM2IzNGRjZTcyY2ViMzliMmQ0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU2NyaXB0RWxlbWVudC5oCkBAIC0yOSwxMyArMjksMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBTVkdTY3JpcHRFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgU1ZHVVJJUmVmZXJlbmNlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgU2NyaXB0RWxl
bWVudCB7CitjbGFzcyBTVkdTY3JpcHRFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0VsZW1lbnQs
IHB1YmxpYyBTVkdVUklSZWZlcmVuY2UsIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkLCBwdWJsaWMgU2NyaXB0RWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTVkdT
Y3JpcHRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9v
bCB3YXNJbnNlcnRlZEJ5UGFyc2VyKTsKIAorICAgIHVzaW5nIFNWR0VsZW1lbnQ6OnJlZjsKKyAg
ICB1c2luZyBTVkdFbGVtZW50OjpkZXJlZjsKKwogcHJpdmF0ZToKICAgICBTVkdTY3JpcHRFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgd2FzSW5zZXJ0ZWRCeVBh
cnNlciwgYm9vbCBhbHJlYWR5U3RhcnRlZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3Bh
cnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggOTI2MDVmYzAyMzVjN2FlZmJlNzZhYzg2
MWUwZjg1ZjZlOGE1ZGE4Zi4uMTc1YTU5ZmU1ZDUyYjMwM2UwNzEzZDAzYWNhMWNjMmRjZjk0OTBh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5j
cHAKQEAgLTIzNyw4ICsyMzcsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpub3RpZnlGaW5p
c2hlZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogICAgIG1fcGVuZGluZ1NjcmlwdCA9
IG51bGxwdHI7CiAgICAgcGVuZGluZ1NjcmlwdC5jbGVhckNsaWVudCgpOwogCi0gICAgYXV0byYg
c2NyaXB0RWxlbWVudCA9ICp0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5nU2NyaXB0
LmVsZW1lbnQoKSk7Ci0gICAgc2NyaXB0RWxlbWVudC5leGVjdXRlUGVuZGluZ1NjcmlwdChwZW5k
aW5nU2NyaXB0KTsKKyAgICBwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKS5leGVjdXRlUGVuZGluZ1Nj
cmlwdChwZW5kaW5nU2NyaXB0KTsKIAogICAgIGlmICghaXNEZXRhY2hlZCgpICYmICFtX3JlcXVl
c3RpbmdTY3JpcHQpCiAgICAgICAgIHJlc3VtZVBhcnNpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCA3
MDY3Njc2ZGQxN2E3NGQ5ZTQyNzI5ZDNkMjlkM2RkOGU4YTdmOGNlLi5mZTQyYTJiYzJjZjg0ZGMz
Y2E2NzA4NmYzN2NkZGU5MGVmNmQwN2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
cGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC03OTksOCArNzk5LDcg
QEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50TnMoY29uc3QgeG1sQ2hhciog
eG1sTG9jYWxOYW1lLCBjb25zdCB4bWxDaGEKIAogICAgIG5ld0VsZW1lbnQtPmJlZ2luUGFyc2lu
Z0NoaWxkcmVuKCk7CiAKLSAgICBTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50ID0gdG9TY3Jp
cHRFbGVtZW50SWZQb3NzaWJsZShuZXdFbGVtZW50LnB0cigpKTsKLSAgICBpZiAoc2NyaXB0RWxl
bWVudCkKKyAgICBpZiAoaXNTY3JpcHRFbGVtZW50KG5ld0VsZW1lbnQuZ2V0KCkpKQogICAgICAg
ICBtX3NjcmlwdFN0YXJ0UG9zaXRpb24gPSB0ZXh0UG9zaXRpb24oKTsKIAogICAgIG1fY3VycmVu
dE5vZGUtPnBhcnNlckFwcGVuZENoaWxkKG5ld0VsZW1lbnQpOwpAQCAtODQzLDcgKzg0Miw3IEBA
IHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgaWYgKGhhY2tBcm91
bmRMaWJYTUxFbnRpdHlQYXJzaW5nQnVnKCkgJiYgY29udGV4dCgpLT5kZXB0aCA8PSBkZXB0aFRy
aWdnZXJpbmdFbnRpdHlFeHBhbnNpb24oKSkKICAgICAgICAgc2V0RGVwdGhUcmlnZ2VyaW5nRW50
aXR5RXhwYW5zaW9uKC0xKTsKIAotICAgIGlmICghc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChw
YXJzZXJDb250ZW50UG9saWN5KCkpICYmIGlzPEVsZW1lbnQ+KCpub2RlKSAmJiB0b1NjcmlwdEVs
ZW1lbnRJZlBvc3NpYmxlKGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUuZ2V0KCkpKSkgeworICAgIGlm
ICghc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChwYXJzZXJDb250ZW50UG9saWN5KCkpICYmIGlz
PEVsZW1lbnQ+KCpub2RlKSAmJiBpc1NjcmlwdEVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4oKm5v
ZGUpKSkgewogICAgICAgICBwb3BDdXJyZW50Tm9kZSgpOwogICAgICAgICBub2RlLT5yZW1vdmUo
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtODU0LDcgKzg1Myw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQ
YXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBFbGVt
ZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpOworICAgIGF1dG8mIGVsZW1l
bnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7CiAKICAgICAvLyBUaGUgZWxlbWVudCdzIHBh
cmVudCBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gcmVtb3ZlZCBmcm9tIGRvY3VtZW50LgogICAgIC8v
IFBhcnNpbmcgY29udGludWVzIGluIHRoaXMgY2FzZSwgYnV0IHNjcmlwdHMgYXJlbid0IGV4ZWN1
dGVkLgpAQCAtODYzLDggKzg2Miw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1l
bnROcygpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTY3JpcHRFbGVtZW50KiBzY3Jp
cHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmZWxlbWVudCk7Ci0gICAgaWYg
KCFzY3JpcHRFbGVtZW50KSB7CisgICAgaWYgKCFpc1NjcmlwdEVsZW1lbnQoZWxlbWVudCkpIHsK
ICAgICAgICAgcG9wQ3VycmVudE5vZGUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTg3
MywxNSArODcxLDE2IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAg
ICAgQVNTRVJUKCFtX3BlbmRpbmdTY3JpcHQpOwogICAgIG1fcmVxdWVzdGluZ1NjcmlwdCA9IHRy
dWU7CiAKLSAgICBpZiAoc2NyaXB0RWxlbWVudC0+cHJlcGFyZVNjcmlwdChtX3NjcmlwdFN0YXJ0
UG9zaXRpb24sIFNjcmlwdEVsZW1lbnQ6OkFsbG93TGVnYWN5VHlwZUluVHlwZUF0dHJpYnV0ZSkp
IHsKKyAgICBhdXRvJiBzY3JpcHRFbGVtZW50ID0gZG93bmNhc3RTY3JpcHRFbGVtZW50KGVsZW1l
bnQpOworICAgIGlmIChzY3JpcHRFbGVtZW50LnByZXBhcmVTY3JpcHQobV9zY3JpcHRTdGFydFBv
c2l0aW9uLCBTY3JpcHRFbGVtZW50OjpBbGxvd0xlZ2FjeVR5cGVJblR5cGVBdHRyaWJ1dGUpKSB7
CiAgICAgICAgIC8vIEZJWE1FOiBTY3JpcHQgZXhlY3V0aW9uIHNob3VsZCBiZSBzaGFyZWQgYmV0
d2VlbgogICAgICAgICAvLyB0aGUgbGlieG1sMiBhbmQgUXQgWE1MRG9jdW1lbnRQYXJzZXIgaW1w
bGVtZW50YXRpb25zLgogCi0gICAgICAgIGlmIChzY3JpcHRFbGVtZW50LT5yZWFkeVRvQmVQYXJz
ZXJFeGVjdXRlZCgpKQotICAgICAgICAgICAgc2NyaXB0RWxlbWVudC0+ZXhlY3V0ZUNsYXNzaWNT
Y3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRFbGVtZW50LT5zY3JpcHRDb250ZW50KCksIGRv
Y3VtZW50KCktPnVybCgpLCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24pKTsKLSAgICAgICAgZWxzZSBp
ZiAoc2NyaXB0RWxlbWVudC0+d2lsbEJlUGFyc2VyRXhlY3V0ZWQoKSAmJiBzY3JpcHRFbGVtZW50
LT5sb2FkYWJsZVNjcmlwdCgpKSB7Ci0gICAgICAgICAgICBtX3BlbmRpbmdTY3JpcHQgPSBQZW5k
aW5nU2NyaXB0OjpjcmVhdGUoZWxlbWVudCwgKnNjcmlwdEVsZW1lbnQtPmxvYWRhYmxlU2NyaXB0
KCkpOwotICAgICAgICAgICAgbV9wZW5kaW5nU2NyaXB0LT5zZXRDbGllbnQodGhpcyk7CisgICAg
ICAgIGlmIChzY3JpcHRFbGVtZW50LnJlYWR5VG9CZVBhcnNlckV4ZWN1dGVkKCkpCisgICAgICAg
ICAgICBzY3JpcHRFbGVtZW50LmV4ZWN1dGVDbGFzc2ljU2NyaXB0KFNjcmlwdFNvdXJjZUNvZGUo
c2NyaXB0RWxlbWVudC5zY3JpcHRDb250ZW50KCksIGRvY3VtZW50KCktPnVybCgpLCBtX3Njcmlw
dFN0YXJ0UG9zaXRpb24pKTsKKyAgICAgICAgZWxzZSBpZiAoc2NyaXB0RWxlbWVudC53aWxsQmVQ
YXJzZXJFeGVjdXRlZCgpICYmIHNjcmlwdEVsZW1lbnQubG9hZGFibGVTY3JpcHQoKSkgeworICAg
ICAgICAgICAgbV9wZW5kaW5nU2NyaXB0ID0gUGVuZGluZ1NjcmlwdDo6Y3JlYXRlKHNjcmlwdEVs
ZW1lbnQsICpzY3JpcHRFbGVtZW50LmxvYWRhYmxlU2NyaXB0KCkpOworICAgICAgICAgICAgbV9w
ZW5kaW5nU2NyaXB0LT5zZXRDbGllbnQoKnRoaXMpOwogCiAgICAgICAgICAgICAvLyBtX3BlbmRp
bmdTY3JpcHQgd2lsbCBiZSBudWxscHRyIGlmIHNjcmlwdCB3YXMgYWxyZWFkeSBsb2FkZWQgYW5k
IHNldENsaWVudCgpIGV4ZWN1dGVkIGl0LgogICAgICAgICAgICAgaWYgKG1fcGVuZGluZ1Njcmlw
dCkKQEAgLTg5NiwxOSArODk1LDE5IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1l
bnROcygpCiAgICAgcG9wQ3VycmVudE5vZGUoKTsKIH0KIAotdm9pZCBYTUxEb2N1bWVudFBhcnNl
cjo6Y2hhcmFjdGVycyhjb25zdCB4bWxDaGFyKiBzLCBpbnQgbGVuKQordm9pZCBYTUxEb2N1bWVu
dFBhcnNlcjo6Y2hhcmFjdGVycyhjb25zdCB4bWxDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3Ro
KQogewogICAgIGlmIChpc1N0b3BwZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1f
cGFyc2VyUGF1c2VkKSB7Ci0gICAgICAgIG1fcGVuZGluZ0NhbGxiYWNrcy0+YXBwZW5kQ2hhcmFj
dGVyc0NhbGxiYWNrKHMsIGxlbik7CisgICAgICAgIG1fcGVuZGluZ0NhbGxiYWNrcy0+YXBwZW5k
Q2hhcmFjdGVyc0NhbGxiYWNrKGNoYXJhY3RlcnMsIGxlbmd0aCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBpZiAoIW1fbGVhZlRleHROb2RlKQogICAgICAgICBjcmVhdGVMZWFmVGV4
dE5vZGUoKTsKLSAgICBtX2J1ZmZlcmVkVGV4dC5hcHBlbmQocywgbGVuKTsKKyAgICBtX2J1ZmZl
cmVkVGV4dC5hcHBlbmQoY2hhcmFjdGVycywgbGVuZ3RoKTsKIH0KIAogdm9pZCBYTUxEb2N1bWVu
dFBhcnNlcjo6ZXJyb3IoWE1MRXJyb3JzOjpFcnJvclR5cGUgdHlwZSwgY29uc3QgY2hhciogbWVz
c2FnZSwgdmFfbGlzdCBhcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBjMTAxOTI0ZWE1ZjFkNjYyOTNiMTk5YTMwMDEy
NGRiMmMyM2Y1N2I0Li45ZmFkN2RkYmJmZTRjYzBmMzMyNWM5Yjg5ZDFmYmEzYWUxYTgyNWNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaApAQCAtMTI1LDcgKzEyNSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBydW5P
cGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2Vy
Pikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6
OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciopIG92ZXJyaWRlOworICAgIHZvaWQg
bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6Rmls
ZUljb25Mb2FkZXImKSBvdmVycmlkZTsKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgdm9pZCBz
ZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggYmNl
YWZkNTExNjUzMjJiM2FkYmE3OTRjMGMxZjU4ZGI1Y2UxOWE4Yi4uZTk3YTk4ZmU4YjFiNjVkZTZm
MDU4YTBiODljY2U4MWY5MGVjODI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtNzU3LDkgKzc1Nyw5IEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9v
c2VyPiBjaG9vc2VyKQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKLXZvaWQg
V2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBm
aWxlbmFtZXMsIEZpbGVJY29uTG9hZGVyKiBpY29uTG9hZGVyKQordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmls
ZUljb25Mb2FkZXImIGljb25Mb2FkZXIpCiB7Ci0gICAgaWNvbkxvYWRlci0+bm90aWZ5RmluaXNo
ZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOworICAgIGljb25Mb2FkZXIu
aWNvbkxvYWRlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7CiB9CiAKICNp
ZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMDNkOGEyNmQ5MzhmMTI2NzA1YjAwZTYzMWE1
MzM4MjY2NzYzMzE3OS4uZjVmM2FjMmY2NDc1M2U4YjE3OTZlZTU0M2FhNDBmNTY1MDM3MjlhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCkBAIC02ODAsOSArNjgwLDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9w
ZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IHBycEZpbGVDaG9vc2UKICAg
ICAvLyBGSVhNRTogU2hvdyBzb21lIHNvcnQgb2YgZXJyb3IgaWYgdG9vIG1hbnkgZmlsZXMgYXJl
IHNlbGVjdGVkIGFuZCB0aGUgYnVmZmVyIGlzIHRvbyBzbWFsbC4gIEZvciBub3csIHRoaXMgd2ls
bCBmYWlsIHNpbGVudGx5LgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JG
aWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBmaWxlbmFtZXMsIFdlYkNvcmU6OkZpbGVJ
Y29uTG9hZGVyKiBsb2FkZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxl
cyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBmaWxlbmFtZXMsIFdlYkNvcmU6OkZpbGVJY29u
TG9hZGVyJiBsb2FkZXIpCiB7Ci0gICAgbG9hZGVyLT5ub3RpZnlGaW5pc2hlZChJY29uOjpjcmVh
dGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7CisgICAgbG9hZGVyLmljb25Mb2FkZWQoSWNvbjo6
Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYgY3Vyc29yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA4OWQ2Yzg3NGJkNDRm
OWNkNmVkNTViMDYwYmRmY2RiODczNmZjMjgyLi40ZWU0NThiNGZiMWU5YzEwNzVmMjBiODY2YWY4
NjgzNWI5ZGJjNmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTE2LDcgKzExNiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCk7CiAKICAgICB2aXJ0dWFsIHZv
aWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxl
Q2hvb3Nlcj4pOwotICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3Rv
cjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciopOworICAgIHZpcnR1YWwg
dm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3Jl
OjpGaWxlSWNvbkxvYWRlciYpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBX
ZWJDb3JlOjpDdXJzb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxN
b3VzZU1vdmVzKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDdmMGU3NWRjYjk4
MjNiYjJkZGMxMGNlNjA5MWQxOTQ0YWQ5MjJhNzUuLjc3N2U5ZTBhNTlhNTkzYzYyODdkNmFjZTlm
ZjU5ZGQzZTNiMGRiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTc2MSw5ICs3NjEs
OSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFz
c1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSdW5PcGVuUGFuZWwod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlP
cmlnaW5EYXRhOjpmcm9tRnJhbWUoZnJhbWUpLCBmaWxlQ2hvb3Nlci0+c2V0dGluZ3MoKSkpOwog
fQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciogbG9hZGVyKQordm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1l
cywgRmlsZUljb25Mb2FkZXImIGxvYWRlcikKIHsKLSAgICBsb2FkZXItPm5vdGlmeUZpbmlzaGVk
KEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKKyAgICBsb2FkZXIuaWNvbkxv
YWRlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7CiB9CiAKICNpZiAhUExB
VEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggMDVlNGIzNWExZGUxOGI5ZWJlZjg1
NDA1MjZhZmIyYTVlZmRmZDc2Yy4uZDY0Y2Q5OTBiNzhlYmNjYTkwNGY3NTU3Nzk4OWEzMzU2NTQx
ODVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xODIsNyArMTgyLDcgQEAgcHJpdmF0ZToK
ICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVm
UHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2FkSWNvbkZv
ckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKSBv
dmVycmlkZTsKKyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
LCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpIG92ZXJyaWRlOwogCiAjaWYgIVBMQVRGT1JNKElP
UykKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297994</attachid>
            <date>2017-01-03 23:42:49 -0800</date>
            <delta_ts>2017-01-03 23:53:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166635-20170103234122.patch</filename>
            <type>text/plain</type>
            <size>682430</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNkMmVmMDczZGE4NTc0MWVjNTUzM2Ex
MTA3ZTVmNWFhMTgzN2VkZTMuLmIwMGE4OGQ0MjBkMDdkYTIxZTA0NGM0ZDlhZTBkZTQ2NTRhYmFh
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDEtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRt
bCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpt
YWtlUmVmUHRyKTogQWRkZWQuCisKIDIwMTctMDEtMDIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgTGV2ZXJhZ2UgU3Vic3RyaW5nIHRvIGNyZWF0ZSBu
ZXcgQXRvbWljU3RyaW5nSW1wbCBmb3IgU3RhdGljU3RyaW5nSW1wbCBhbmQgU3ltYm9sSW1wbApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDRmY2IyYjhiMjc0MTBkYWZkY2I0MGNjMzVkZWU3NGNlZTg4ODlmZjQuLjA5
NjA5YjliNDE5ZDcxOTY5YjRhNmFhNDQyNjllMDM3NWVjZWUyODEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NzIgQEAKKzIwMTctMDEtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgor
CisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRtbCIgZGlyZWN0b3J5
LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IFJlbW92ZWQgdGhlIGR1cGxpY2F0ZSBjb3Bp
ZXMgb2YgYWxsIHRoZSBXZWJHTC1zcGVjaWZpYyBmaWxlcworICAgICAgICBpbiB0aGUgbWFpbiBs
aXN0IG9mIHNvdXJjZSBmaWxlczsgdGhlcmUgaXMgbm8gdmFsdWUgaW4gbGlzdGluZyB0aGVtIHR3
aWNlLgorICAgICAgICBSZXBsYWNlZCBXZWJHTEdldEluZm8uY3BwIHdpdGggV2ViR0xBbnkuY3Bw
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKTogVXBkYXRlcyBz
aW5jZSB0aGUgdHJhY2tzIGZ1bmN0aW9ucworICAgICAgICByZXR1cm4gcmVmZXJlbmNlcyBub3cu
CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1Rp
bWVGb3JNZWRpYVRpbWUpOiBSZW1vdmVkCisgICAgICAgIHVubmVlZGVkIFNvdXJjZUJ1ZmZlclBy
aXZhdGUqIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjphcHBlbmRC
dWZmZXJUaW1lckZpcmVkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6
OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmlu
Z0Vycm9yKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnZpZGVvVHJh
Y2tzKTogUmV0dXJuIGEgcmVmZXJlbmNlIHJhdGhlciB0aGFuIGEgcG9pbnRlci4KKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6YXVkaW9UcmFja3MpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0
aW9uU2VnbWVudCk6CisgICAgICAgIFJlbW92ZWQgdW5uZWVkZWQgU291cmNlQnVmZmVyUHJpdmF0
ZSogYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnZhbGlkYXRlSW5p
dGlhbGl6YXRpb25TZWdtZW50KTogVXBkYXRlZCBzaW5jZSB0cmFja3MKKyAgICAgICAgZnVuY3Rp
b25zIG5vdyByZXR1cm4gYSBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
Ojpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSk6IFJlbW92ZWQgdW5uZWVkZWQK
KyAgICAgICAgU291cmNlQnVmZmVyUHJpdmF0ZSogYXJndW1lbnQuCisgICAgICAgIChXZWJDb3Jl
OjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dmlkZW9UcmFja1NlbGVj
dGVkQ2hhbmdlZCk6IFRha2UgYSByZWZlcmVuY2UgcmF0aGVyIHRoYW4KKyAgICAgICAgYSBwb2lu
dGVyLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjphdWRpb1RyYWNrRW5hYmxlZENo
YW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNr
TW9kZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dGV4
dFRyYWNrQWRkQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnRl
eHRUcmFja0FkZEN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6
dGV4dFRyYWNrUmVtb3ZlQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXI6OnRleHRUcmFja1JlbW92ZUN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlcjo6dGV4dFRyYWNrS2luZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNh
bXBsZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6cHJvdmlkZU1l
ZGlhRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpyZWVucXVl
dWVNZWRpYUZvclRpbWUpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1Nv
dXJjZUJ1ZmZlci5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBSZXBsYWNlZCBXZWJHTEdldEluZm8gd2l0
aCBXZWJHTEFueS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTENhbnZhc1N0eWxlKTog
UmVtb3ZlZCBleHBsaWNpdCBjYXN0IHRvIENhbnZhc1N0eWxlIGFuZCB1bm5lZWRlZAorICAgICAg
ICBjb252ZXJzaW9uIHRvIGEgcG9pbnRlciBzaW5jZSBDYW52YXNTdHlsZSBjb25zdHJ1Y3RvcnMg
bm93IHRha2UgcmVmZXJlbmNlcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxl
bWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5JbnN0YW5jZSk6IFVw
ZGF0ZWQgc2luY2UgYmluZGluZ3NJbnN0YW5jZSBub3cgcmV0dXJucyBhIHJhdyBwb2ludGVyLgor
ICAgICAgICAoV2ViQ29yZTo6cGx1Z2luU2NyaXB0T2JqZWN0KTogRGl0dG8uCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dG9KUyk6IE1vdmVkIHRvIFdlYkdMQW55LmgvY3BwLgorICAgICAgICAoV2Vi
Q29yZTo6SlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVyKTogVXBk
YXRlZCBzaW5jZSB0aGUgdG9KUworICAgICAgICBmdW5jdGlvbiBpbiBXZWJHTEFueS5oIHRha2Vz
IHJlZmVyZW5jZXMsIG5vdCBwb2ludGVycy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHA6IFJlbW92ZWQgcXVpdGUgYSBmZXcgdW5u
ZWVkZWQKKyAgICAgICAgaW5jbHVkZXMgYW5kIGdvdCByaWQgb2YgYSBsb3Qgb2YgdW5uZWVkZWQg
SlNDIHByZWZpeGVzLgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IE1vdmVkIHRvIFdlYkdMQW55
LmgvY3BwLgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpvYmplY3RQYXJhbWV0ZXIpOiBSZW5hbWVkIGZyb20gZ2V0T2JqZWN0UGFyYW1ldGVy
IGFuZCBhbHNvIGNoYW5nZWQgdG8KKyAgICAgICAgdGFrZSBhIHBvaW50ZXIgdG8gbWVtYmVyIGZ1
bmN0aW9uIHNvIHdlIGRvbid0IG5lZWQgYW4gZW51bSBhbmQgYSBzd2l0Y2ggc3RhdGVtZW50Lgor
ICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IENoYW5nZWQgdG8gdGFrZSByZWZlcmVuY2VzIHJhdGhl
ciB0aGFuIHBvaW50ZXJzLgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRBdHRhY2hlZFNoYWRlcnMpOiBVc2UgYSBtb2Rlcm4gZm9yIGxvb3AuCisgICAg
ICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFt
ZXRlcik6IFVzZSBvYmplY3RQYXJhbWV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcik6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRy
aWIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnRvTnVtYmVyVmVjdG9yKTogUmVuYW1lZCBm
cm9tIHRvVmVjdG9yLCBzaW5jZSB0aGlzIGlzIHNwZWNpZmljYWxseSBmb3IKKyAgICAgICAgdmVj
dG9ycyBvZiBudW1iZXJzLiBVc2UgdW5jaGVja2VkQXBwZW5kIGluc3RlYWQgb2YgYXNzaWdubWVu
dC4KKyAgICAgICAgKFdlYkNvcmU6OmZ1bmN0aW9uRm9yVW5pZm9ybSk6IE1hcmtlZCB0aGlzIGlu
bGluZS4KKyAgICAgICAgKFdlYkNvcmU6OmRhdGFGdW5jdGlvbmYpOiBVcGRhdGVkIGZvciBhYm92
ZSBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uaSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uTWF0cml4KTogRGl0dG8uCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6IE1vdmVkIGFzc2VydGlvbnMgdG8gdGhlIHRvcCBvZiB0
aGUgZnVuY3Rpb24uCisgICAgICAgIEFsc28gYWRkZWQgYSBGSVhNRSBiZWNhdXNlIGl0J3MgdW5j
bGVhciB3aHkgdGhlc2UgYXNzZXJ0aW9ucyBhcmUgY29ycmVjdC4gVXBkYXRlZAorICAgICAgICB0
byB1c2UgZG93bmNhc3RTY3JpcHRFbGVtZW50IGluc3RlYWQgb2YgdG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOiBTb3J0ZWQgbGlzdCBvZiBmb3J3
YXJkLWRlY2xhcmVkIGNsYXNzZXMuIFJlbW92ZWQgZHVwbGljYXRlCisgICAgICAgIGZvcndhcmQg
ZGVjbGFyYXRpb24gb2YgU2NyaXB0TW9kdWxlTG9hZGVyLgorCisgICAgICAgICogZG9tL1BlbmRp
bmdTY3JpcHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ1NjcmlwdDo6Y3JlYXRlKTog
VGFrZSBhIFNjcmlwdEVsZW1lbnQgaW5zdGVhZCBvZiBhbiBFbGVtZW50LgorICAgICAgICAoV2Vi
Q29yZTo6UGVuZGluZ1NjcmlwdDo6UGVuZGluZ1NjcmlwdCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6UGVuZGluZ1NjcmlwdDo6bG9hZGFibGVTY3JpcHQpOiBNb3ZlZCBpbmxpbmUgdG8gaGVh
ZGVyIGFuZCBtYWRlIGlubGluZS4KKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdTY3JpcHQ6OnNl
dENsaWVudCk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisgICAgICAg
ICogZG9tL1BlbmRpbmdTY3JpcHQuaDogVVBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAg
ICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVs
ZW1lbnQ6OnByZXBhcmVTY3JpcHQpOiBQYXNzIGEgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBwb2lu
dGVyLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVmKTogQWRkZWQuIEZvcndh
cmRzIHJlZi9kZXJlZiB0byB0aGUgdW5kZXJseWluZyBlbGVtZW50CisgICAgICAgIHNvIHdlIGNh
biB1c2UgUmVmIGFuZCBSZWZQdHIgd2l0aCB0aGlzIGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0RWxlbWVudDo6ZGVyZWYpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmlzU2NyaXB0
RWxlbWVudCk6IEFkZGVkLiBSZXBsYWNlcyBvbmUgb2YgdGhlIHR3byB1c2VzIG9mCisgICAgICAg
IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUsIGFuZCBpcyBzaW1pbGFyIGluIHN0eWxlIHRvIGlz
PEVsZW1lbnQ+LgorICAgICAgICAoV2ViQ29yZTo6ZG93bmNhc3RTY3JpcHRFbGVtZW50KTogRGl0
dG8sIGJ1dCBmb3IgZG93bmNhc3QuCisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuaDogVXBk
YXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGRvbS9TY3JpcHRSdW5uZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlv
bik6IFRha2UgcmVmZXJlbmNlIHJhdGhlciB0aGFuCisgICAgICAgIHBvaW50ZXIsIGFuZCBwYXNz
IFNjcmlwdEVsZW1lbnQgcmF0aGVyIHRoYW4gRWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdFJ1bm5lcjo6bm90aWZ5RmluaXNoZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdFJ1bm5lcjo6dGltZXJGaXJlZCk6IERpdHRvLgorICAgICAgICAqIGRvbS9TY3JpcHRSdW5u
ZXIuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvRmlsZUlu
cHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpmaWxlcyk6IFVw
ZGF0ZWQgc2luY2UgbV9maWxlTGlzdCBpcyBhIFJlZi4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJ
bnB1dFR5cGU6OmNyZWF0ZUZpbGVMaXN0KTogVXBkYXRlZCB0byByZXR1cm4gYSBSZWYgaW5zdGVh
ZCBvZgorICAgICAgICBhIFBhc3NSZWZQdHIuIEFsc28gdXNlIHJlc2VydmVJbml0aWFsQ2FwYWNp
dHkvdW5jaGVja2VkQXBwZW5kLgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6cmVx
dWVzdEljb24pOiBVcGRhdGVkIHNpbmNlIHRoZSB1cGRhdGVSZW5kZXJpbmcKKyAgICAgICAgZnVu
Y3Rpb24gaXMgbm93IGNhbGxlZCBpY29uTG9hZGVkLiBBbHNvIHVzZSByZWZlcmVuY2VzIGluc3Rl
YWQgb2YgcG9pbnRlcnMuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpzZXRGaWxl
cyk6IFRha2UgYSBSZWZQdHImJiBpbnN0ZWQgb2YgYSBQYXNzUmVmUHRyLgorICAgICAgICBBbHNv
IHB1dCBzb21lIGNvbmRpdGlvbmFsIGNvZGUgaW5zaWRlIGFuICNpZi4KKyAgICAgICAgKFdlYkNv
cmU6OkZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKTogVXBkYXRlZCBmb3IgZnVuY3Rpb24gbmFt
ZSBjaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjppY29uTG9hZGVkKTog
UmVuYW1lZCBmcm9tIHVwZGF0ZVJlbmRlcmluZy4KKyAgICAgICAgQ2hhbmdlZCBhcmd1bWVudCB0
byBSZWZQdHImJiBmcm9tIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRU
eXBlOjpkZWZhdWx0VG9vbFRpcCk6IEdvdCByaWQgb2YgdW5uZWVkZWQgbG9jYWwgdmFyaWFibGUK
KyAgICAgICAgYW5kIHVzZWQgdGhlIGNvcnJlY3QgdHlwZSwgdW5zaWduZWQsIHJhdGhlciB0aGFu
IHNpemVfdC4KKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDogVXBkYXRlZCBmb3IgdGhl
IGFib3ZlIGNoYW5nZXMsIHVzZSBmaW5hbCBpbnN0ZWFkCisgICAgICAgIG9mIG92ZXJyaWRlLCBh
bmQgdXNlIFJlZiBpbnN0ZWFkIG9mIFJlZlB0ci4KKworICAgICAgICAqIGh0bWwvSFRNTEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmZvcm0pOiBSZW5hbWVkIGZy
b20gdmlydHVhbEZvcm0uCisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOiBSZXBsYWNlZCB0
aGUgZm9ybS92aXJ0dWFsRm9ybSBwYWlyIG9mIGZ1bmN0aW9ucyB3aXRoCisgICAgICAgIGp1c3Qg
YSBmb3JtIGZ1bmN0aW9uLiBUaGUgb2xkIGRlc2lnbiBkYXRlcyBiYWNrIGJlZm9yZSB3ZSBoYWQg
ImZpbmFsIiBmb3IKKyAgICAgICAgdmlydHVhbCBmdW5jdGlvbnMsIGFuZCBub3cgd2UgY2FuIGp1
c3QgdXNlIHRoYXQgaW5zdGVhZC4KKworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp2aXJ0
dWFsRm9ybSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
Lmg6IE1hcmsgdGhlIGZvcm0gZnVuY3Rpb24gZmluYWwsIHNpbmNlIGl0J3MKKyAgICAgICAgbm93
IGJvdGggYW4gaW5saW5lIGZ1bmN0aW9uIGluIHRoaXMgY2xhc3MsIGFuZCBhbiBvdmVycmlkZSBv
ZiBhIHZpcnR1YWwKKyAgICAgICAgZnVuY3Rpb24gaW5oZXJpdGVkIGZyb20gdGhlIGJhc2UgY2xh
c3MuIERlbGV0ZWQgdGhlIHZpcnR1YWxGb3JtIGZ1bmN0aW9uLgorCisgICAgICAgICogaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBSZW1vdmVkIHVzZSBvZiB0aGUKKyAgICAgICAgZm9ybUZv
clN1Ym1pc3Npb24gZnVuY3Rpb24sIHdoaWNoIHdhcyBqdXN0IGFub3RoZXIgd2F5IHRvIGdldCB0
aGUgc2FtZQorICAgICAgICB0aGluZyBhcyB0aGUgZm9ybSBmdW5jdGlvbjsgcGVyaGFwcyB0aGV5
IHdlcmUgZGlmZmVyZW50IGluIHRoZSBwYXN0LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0
RWxlbWVudDo6c2V0RmlsZXMpOiBUYWtlIGEgUmVmUHRyJiYgcmF0aGVyIHRoYW4gYSBQYXNzUmVm
UHRyLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOiBVcGRhdGVkIGZvciB0aGUg
YWJvdmUuCisKKyAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTExhYmVsRWxlbWVudDo6Y29udHJvbCk6IE1hZGUgdGhpcyBjb25zdC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxMYWJlbEVsZW1lbnQ6OmZvcm0pOiBNYWRlIHRoaXMgY29uc3Qs
IHNvIGl0IGNhbiBiZSB1c2VkIHRvCisgICAgICAgIG92ZXJyaWRlIHRoZSBjb25zdCBmb3JtIGZ1
bmN0aW9uIGZyb20gdGhlIGJhc2UgY2xhc3MuCisgICAgICAgICogaHRtbC9IVE1MTGFiZWxFbGVt
ZW50Lmg6IE1hcmtlZCB0aGUgZm9ybSBmdW5jdGlvbiBmaW5hbCwgc2luY2Ugd2Ugd2FudCBpdAor
ICAgICAgICB0byBvdmVycmlkZSB0aGUgZm9ybSBmdW5jdGlvbiBpbmhlcml0ZWQgZnJvbSBIVE1M
RWxlbWVudC4KKworICAgICAgICAqIGh0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTExlZ2VuZEVsZW1lbnQ6OmZvcm0pOiBSZW5hbWVkIGZyb20gdmlydHVh
bEZvcm0uCisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oOiBPdmVycmlkZSBmb3Jt
IGluc3RlYWQgb2YgdmlydHVhbEZvcm0gYW5kIG1hcmsgaXQgZmluYWwKKyAgICAgICAgVGhpcyBt
YWtlcyB0aGluZ3MgbW9yZSBlZmZpY2llbnQgaWYgc29tZW9uZSBjYWxscyBmb3JtIGRpcmVjdGx5
IG9uIHRoaXMgY2xhc3M7CisgICAgICAgIGJlZm9yZSBpdCB3b3VsZCBtYWtlIGFuIHVubmVjZXNz
YXJ5IHZpcnR1YWwgZnVuY3Rpb24gY2FsbC4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFja0Rpc3BsYXlVcGRhdGVTY29wZTo6VHJh
Y2tEaXNwbGF5VXBkYXRlU2NvcGUpOiBUYWtlIGEgcmVmZXJlbmNlCisgICAgICAgIHJhdGhlciB0
aGFuIGEgcG9pbnRlci4KKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrRGlzcGxheVVwZGF0ZVNjb3Bl
Ojp+VHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmV2
ZW50VGltZUN1ZUNvbXBhcmUpOiBDb21wYXJlIHRoZSBjdWVzIHRoZSBzYW1lIHdheSB0aGUgY3Vl
IGxpc3Qgd291bGQKKyAgICAgICAgcmF0aGVyIHRoYW4gdXNpbmcgY3VlSW5kZXguCisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQpOiBU
YWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dGV4
dFRyYWNrTW9kZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0tpbmRDaGFuZ2VkKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWVz
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tB
ZGRDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRU
cmFja1JlbW92ZUN1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKTogUGFzcyByZWZlcmVuY2VzLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2sp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVy
RGlkQWRkVmlkZW9UcmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6cmVtb3ZlVGV4dFRyYWNrKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50Ojpmb3JnZXRSZXNvdXJjZVNwZWNpZmljVHJhY2tzKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyKTogVGFrZSBhIFJlZlB0
ciYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvSFRNTE9i
amVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnZp
cnR1YWxGb3JtKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50Lmg6
IE1hZGUgdGhlIGZvcm0gZnVuY3Rpb24gaW5saW5lIGFuZCBmaW5hbCwgd2hpY2gKKyAgICAgICAg
YWNoaWV2ZXMgdGhlIHNhbWUgdGhpbmcgd2UgZGlkIGJlZm9yZSB3aXRoIHVzaW5nLCBidXQgd2l0
aG91dCByZXF1aXJpbmcgdGhlCisgICAgICAgIHNlcGFyYXRlIHZpcnR1YWxGb3JtIGZ1bmN0aW9u
LCBub3cgZGVsZXRlZC4KKworICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25Jbm5lclRl
eHQpOiBVc2UgaXNTY3JpcHRFbGVtZW50CisgICAgICAgIGluc3RlYWQgb2YgdG9TY3JpcHRFbGVt
ZW50SWZQb3NzaWJsZS4KKworICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OmJpbmRpbmdzSW5zdGFuY2UpOiBS
ZW5hbWVkIGZyb20gZ2V0SW5zdGFuY2UgYW5kCisgICAgICAgIGNoYW5nZWQgdGhlIHJldHVybiB0
eXBlIHRvIGEgcmF3IHBvaW50ZXIuCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5o
OiBVcGRhdGVkIGZvciB0aGUgYWJvdmUgY2hhbmdlcy4gQWxzbyBjaGFuZ2VkIHRoZQorICAgICAg
ICB1cGRhdGVTbmFwc2hvdCBmdW5jdGlvbiB0byB0YWtlIGEgcmF3IHBvaW50ZXIgaW5zdGVhZCBv
ZiBhIFBhc3NSZWZQdHIuCisKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKTogUGFzcyBhIHBvaW50ZXIKKyAgICAgICAgdG8gdXBkYXRlU25hcHNob3Qu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVTbmFwc2hv
dCk6IFVwZGF0ZWQgdG8gdGFrZSBhIHJhdworICAgICAgICBwb2ludGVyIGluc3RlYWQgb2YgYSBQ
YXNzUmVmUHRyLgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oOiBVcGRh
dGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVu
dC5oOiBBZGRlZCB1c2luZyB0byByZXNvbHZlIHRoZSBhbWJpZ3VpdHkgd2l0aCB0aGUKKyAgICAg
ICAgcmVmL2RlcmVmIGZyb20gSFRNTEVsZW1lbnQgYW5kIGZyb20gU2NyaXB0RWxlbWVudC4KKwor
ICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvbik6IFJldHVybiBh
IFJlZlB0ciBpbnN0ZWFkCisgICAgICAgIG9mIGEgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBodG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMu
CisKKyAgICAgICAgKiBodG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQpOiBUYWtlIGEgcmVmZXJl
bmNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNo
YW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmFja0VsZW1lbnQ6OnRleHRU
cmFja0FkZEN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmFja0VsZW1lbnQ6
OnRleHRUcmFja1JlbW92ZUN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmFj
a0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlKTogRGl0dG8uCisgICAgICAgICogaHRt
bC9IVE1MVHJhY2tFbGVtZW50Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAg
ICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmZv
cm1Gb3JTdWJtaXNzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6
c2V0RmlsZXMpOiBUYWtlIGEgUmVmUHRyJiYgaW5zdGVhZCBvZiBhIFBhc3NSZWZQdHIuCisgICAg
ICAgICogaHRtbC9JbnB1dFR5cGUuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAg
ICAgICAqIGh0bWwvUGx1Z2luRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKTogUGFzcyBhIHJlZmVyZW5j
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRvY3VtZW50OjpzZXRQbHVnaW5FbGVtZW50KTog
VGFrZSBhIHJlZmVyZW5jZSByYXRoZXIgdGhhbgorICAgICAgICBhIFBhc3NSZWZQdHIuCisgICAg
ICAgICogaHRtbC9QbHVnaW5Eb2N1bWVudC5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgor
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0U3Ryb2tlU3R5bGUp
OiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjpzZXRGaWxsU3R5bGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbCk6IERpdHRvLgorCisgICAgICAgICog
aHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5
bGU6OkNhbnZhc1N0eWxlKTogUmV3cml0ZSBhbGwgY29uc3RydWN0b3JzIHRvIHVzZSB0aGUKKyAg
ICAgICAgbV9zdHlsZSB2YXJpYW50IGluc3RlYWQgb2Ygc2VwYXJhdGUgbV90eXBlIGFuZCBvdGhl
ciBkYXRhIG1lbWJlcnMuIEFsc28KKyAgICAgICAgY2hhbmdlIGZyb20gUGFzc1JlZlB0ciB0byBh
IHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjpjcmVhdGVGcm9tU3Ry
aW5nKTogVXBkYXRlIHRvIHVzZSB0aGUgdmFyaWFudC4KKyAgICAgICAgKFdlYkNvcmU6OkNhbnZh
c1N0eWxlOjpjcmVhdGVGcm9tU3RyaW5nV2l0aE92ZXJyaWRlQWxwaGEpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDb2xvcik6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmlzRXF1aXZhbGVudFJHQkEpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDTVlLQSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKTogRGVsZXRlZCBjb3B5
IGNvbnN0cnVjdG9yOyB0aGUgY29tcGlsZXIKKyAgICAgICAgY2FuIG5vdyBnZW5lcmF0ZSBhIGNv
cnJlY3QgY29weSBvciBtb3ZlIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFz
U3R5bGU6On5DYW52YXNTdHlsZSk6IERlbGV0ZWQuIENvbXBpbGVyIGdlbmVyYXRlcyB0aGlzCisg
ICAgICAgIHByb3Blcmx5IG5vdyB3aXRob3V0IGhlbHAgZnJvbSB1cy4KKyAgICAgICAgKFdlYkNv
cmU6OkNhbnZhc1N0eWxlOjpvcGVyYXRvcj0pOiBEZWxldGVkLiBUaGUgY29tcGlsZXIgY2FuIG5v
dyBnZW5lcmF0ZQorICAgICAgICBhIGNvcnJlY3QgY29weSBvZiBtb3ZlIGFzc2lnbm1lbnQgb3Bl
cmF0b3IuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHlsZTo6YXBwbHlTdHJva2VDb2xvcik6
IFVwZGF0ZWQgdG8gdGFrZSBhIHJlZmVyZW5jZSBhbmQKKyAgICAgICAgdXNlIHRoZSB2YXJpYW50
LgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmFwcGx5RmlsbENvbG9yKTogRGl0dG8u
CisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oOiBSZWRpZCB0aGlzIGNsYXNz
IHRvIHVzZSBhIHZhcmlhbnQgaW5zdGVhZCBvZgorICAgICAgICBhIHR5cGUgZW51bWVyYXRpb24g
YW5kIGEgdW5pb24uCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPRVNWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlVmVy
dGV4QXJyYXlPRVMpOiBVcGRhdGVkIHVzZSBvZiBlbnVtCisgICAgICAgIHNpbmNlIGl0J3Mgbm93
IGFuIGVudW0gY2xhc3MuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdD
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6Oldl
YkdMMlJlbmRlcmluZ0NvbnRleHQpOiBVc2UgUmVmJiYgaW5zdGVhZCBvZgorICAgICAgICBSZWZQ
dHImJiBmb3IgdGhlIEdyYXBoaWNzQ29udGV4dDNELgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cyk6IFVwZGF0ZWQg
ZW51bQorICAgICAgICBhbmQgYWxzbyB1c2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKTogVXNl
IG51bGxwdHIgdG8KKyAgICAgICAgcmV0dXJuIG51bGwgcmF0aGVyIHRoYW4gdGhlIG9sZCBpZGlv
bSAoZGVmYXVsdC1jb25zdHJ1Y3RlZCBXZWJHTEdldEluZm8pLgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dGV4U3RvcmFnZTJEKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRRdWVyeVBhcmFtZXRlcik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2FtcGxlclBh
cmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0U3luY1BhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1l
dGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVWZXJ0ZXhBcnJheSk6IFVwZGF0ZWQgZW51bSBhbmQg
YWxzbworICAgICAgICB1c2UgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKTogUmVhcnJhbmdlZCBsb2dpYyBpbiB0aHJlZSB3
YXlzOgorICAgICAgICAoMSkgTW92ZWQgY2hlY2tzIGZvciB3aGV0aGVyIGFuIGV4dGVuc2lvbiBp
cyBzdXBwb3J0ZWQgaW5zaWRlIHRoZSBjYXNlIGZvciB0aGF0CisgICAgICAgIGV4dGVuc2lvbiwg
cmF0aGVyIHRoYW4gY29tYmluaW5nIHRoZSBleHRlbnNpb24gbmFtZSBjaGVjayB3aXRoIHRoZSBl
eHRlbnNpb25zCisgICAgICAgIGVuYWJsZWQgY2hlY2suICgyKSBVc2VkIHRoZSBuZXcgZW5hYmxl
U3VwcG9ydGVkRXh0ZW5zaW9uIGZ1bmN0aW9uIHRvIHNpbXBsaWZ5CisgICAgICAgIG1hbnkgb2Yg
dGhlIGNoZWNrcyB0byBhdm9pZCByZXBlYXRpbmcgdGhlIGV4dGVuc2lvbiBuYW1lIHR3aWNlLiAo
MykgQ2hhbmdlZCB0aGUKKyAgICAgICAgaWRpb20gc28gd2Ugc2V0IHRoZSBwb2ludGVycyB0byBu
dWxscHRyIGV4cGxpY2l0bHksIHByZXBhcmluZyBmb3IgYSBmdXR1cmUgd2hlcmUKKyAgICAgICAg
d2UgbWlnaHQgbWFrZSB0aGUgZXh0ZW5zaW9uIHBvaW50ZXJzIHVzZSBzdGQ6Om9wdGlvbmFsIHNv
IHdlIGNhbiBjYWNoZSBhIG5lZ2F0aXZlCisgICAgICAgIGZvciBlYWNoIGV4dGVuc2lvbiB0b28s
IG5vdCBqdXN0IGEgcG9zaXRpdmUgcmVzdWx0LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucyk6IFVzZSBBU0NJSUxpdGVyYWwu
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnRQYXJhbWV0ZXIpOiBVc2UgbnVsbHB0cgorICAgICAgICBhcyBhYm92ZS4gRm9y
IG5vbi1udWxsIHR5cGVzLCByZXR1cm4gdGhlIG9iamVjdCB3aXRob3V0IGNvbnZlcnRpbmcsIGxl
dHRpbmcgdGhlCisgICAgICAgIFdlYkdMQW55IGNsYXNzIGhhbmRsZSB0aGluZ3MsIGV4Y2VwdCBm
b3IgZW51bWVyYXRpb25zLCB3aGljaCB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkKKyAgICAgICAgc3Rh
dGljX2Nhc3QgdG8gYW4gaW50ZWdyYWwgdHlwZSwgYW5kIHRoaW5ncyB0aGF0IHdpbGwgYmUgc3Rv
cmVkIGluIHRoZSB2YXJpYW50IGluCisgICAgICAgIGEgUmVmUHRyLCB3aGVyZSB3ZSB1c2UgbWFr
ZVJlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZhbGlk
YXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyk6CisgICAgICAgIFNpbXBsaWZpZWQgYW5kIGNs
YXJpZmllZCB0aGUgaGFuZGxpbmcgb2YgQ09MT1JfQVRUQUNITUVOVC4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcik6IFJldHVybiBXZWJHTEFu
eSwgc2FtZSBpZGlvbSBhcworICAgICAgICBkZXNjcmliZWQgYWJvdmUgZm9yIGdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlci4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTEFueS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6
IEhhbmRsZXMgY29udmVyc2lvbiB0byBKYXZhU2NyaXB0IHR5cGVzLiBUaGlzIGZ1bmN0aW9uIGlz
IGJhc2VkCisgICAgICAgIG9uIHRoZSBleGlzdGluZyB0b0pTIGZ1bmN0aW9ucyBmcm9tIHRoZSB0
d28gY2xhc3NlcyB0aGF0IHdlcmUgdXNpbmcgV2ViR0xHZXRJbmZvLgorICAgICAgICBFdmVudHVh
bGx5IHdlIGNhbiBwcm9iYWJseSBqdXN0IGdldCB0aGUgYmluZGluZ3MgdG8gYXV0b21hdGljYWxs
eSBnZW5lcmF0ZSB0aGlzLAorICAgICAgICBidXQgdGhlcmUgaXMgc29tZSB3b3JrIHRvIGRvIHRv
IGdldCB0byB0aGF0IHBvaW50LgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQW55Lmg6IEFk
ZGVkLiBUaGlzIHR5cGUsIGEgdmFyaWFudCwgcmVwbGFjZXMgdGhlIFdlYkdMR2V0SW5mbworICAg
ICAgICBjbGFzcy4gQWxzbyBpbmNsdWRlcyB0aGUgdG9KUyBmdW5jdGlvbiwgd2hpY2ggaXMgdGhl
IHJlYWwgcG9pbnQgb2YgdGhpcyB0eXBlLCBzaW5jZQorICAgICAgICBpdCdzIGFib3V0IHJldHVy
bmluZyBhIHZhcmlhbnQgbWFwcGVkIGFwcHJvcHJpYXRlbHkgdG8gSmF2YVNjcmlwdCB0eXBlcy4K
KworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjpnZXRBR3JhcGhpY3NDb250ZXh0M0QpOiBDaGFu
Z2VkIHRvIHJldHVybiBhIHJlZmVyZW5jZS4KKyAgICAgICAgRHJvcGVkIHVubmVjZXNzYXJ5IGxv
Y2FsIHZhcmlhYmxlIHdpdGggYSBsb25nIHR5cGUgbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMQ29udGV4dEdyb3VwOjphZGRDb250ZXh0KTogVGFrZSBhIHJlZmVyZW5jZS4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjpyZW1vdmVDb250ZXh0KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlT2JqZWN0KTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRHcm91cDo6YWRkT2JqZWN0KTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRHcm91cDo6ZGV0YWNoQW5kUmVtb3ZlQWxsT2Jq
ZWN0cyk6IERyb3BwZWQgdW5uZWNlc3NhcnkKKyAgICAgICAgbG9jYWwgdmFyaWFibGUgd2l0aCBh
IGxvbmcgdHlwZSBuYW1lLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3Vw
Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTENvbnRleHRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0T2Jq
ZWN0Ojp+V2ViR0xDb250ZXh0T2JqZWN0KTogUGFzcyByZWZlcmVuY2VzLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xDb250ZXh0T2JqZWN0OjpkZXRhY2hDb250ZXh0KTogRGl0dG8uCisKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGh0
bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oOiBSZW1vdmVkLgorCisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6V2ViR0xSZW5kZXJpbmdDb250ZXh0KTogVGFrZSBhIFJlZiYmIGluc3Rl
YWQKKyAgICAgICAgb2YgYXMgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cyk6IFVwZGF0ZWQgZW51
bQorICAgICAgICBhbmQgYWxzbyB1c2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKTogUmVhcnJhbmdlZCBsb2dpYyBpbiB0
aHJlZSB3YXlzOgorICAgICAgICAoMSkgTW92ZWQgY2hlY2tzIGZvciB3aGV0aGVyIGFuIGV4dGVu
c2lvbiBpcyBzdXBwb3J0ZWQgaW5zaWRlIHRoZSBjYXNlIGZvciB0aGF0CisgICAgICAgIGV4dGVu
c2lvbiwgcmF0aGVyIHRoYW4gY29tYmluaW5nIHRoZSBleHRlbnNpb24gbmFtZSBjaGVjayB3aXRo
IHRoZSBleHRlbnNpb25zCisgICAgICAgIGVuYWJsZWQgY2hlY2suICgyKSBVc2VkIHRoZSBuZXcg
ZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uIGZ1bmN0aW9uIHRvIHNpbXBsaWZ5CisgICAgICAgIG1h
bnkgb2YgdGhlIGNoZWNrcyB0byBhdm9pZCByZXBlYXRpbmcgdGhlIGV4dGVuc2lvbiBuYW1lIHR3
aWNlLiAoMykgQ2hhbmdlZCB0aGUKKyAgICAgICAgaWRpb20gc28gd2Ugc2V0IHRoZSBwb2ludGVy
cyB0byBudWxscHRyIGV4cGxpY2l0bHksIHByZXBhcmluZyBmb3IgYSBmdXR1cmUgd2hlcmUKKyAg
ICAgICAgd2UgbWlnaHQgbWFrZSB0aGUgZXh0ZW5zaW9uIHBvaW50ZXJzIHVzZSBzdGQ6Om9wdGlv
bmFsIHNvIHdlIGNhbiBjYWNoZSBhIG5lZ2F0aXZlCisgICAgICAgIGZvciBlYWNoIGV4dGVuc2lv
biB0b28sIG5vdCBqdXN0IGEgcG9zaXRpdmUgcmVzdWx0LgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKTogVXNlIEFTQ0lJTGl0
ZXJhbC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKTogVXNlIG51bGxwdHIKKyAgICAgICAgYXMgYWJvdmUu
IEZvciBub24tbnVsbCB0eXBlcywgcmV0dXJuIHRoZSBvYmplY3Qgd2l0aG91dCBjb252ZXJ0aW5n
LCBsZXR0aW5nIHRoZQorICAgICAgICBXZWJHTEFueSBjbGFzcyBoYW5kbGUgdGhpbmdzLCBleGNl
cHQgZm9yIGVudW1lcmF0aW9ucywgd2hpY2ggd2UgbmVlZCB0byBleHBsaWNpdGx5CisgICAgICAg
IHN0YXRpY19jYXN0IHRvIGFuIGludGVncmFsIHR5cGUsIGFuZCB0aGluZ3MgdGhhdCB3aWxsIGJl
IHN0b3JlZCBpbiB0aGUgdmFyaWFudCBpbgorICAgICAgICBhIFJlZlB0ciwgd2hlcmUgd2UgdXNl
IG1ha2VSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZh
bGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyk6CisgICAgICAgIFNpbXBsaWZpZWQgYW5k
IGNsYXJpZmllZCB0aGUgaGFuZGxpbmcgb2YgQ09MT1JfQVRUQUNITUVOVCBhZGRpbmcgYSBGSVhN
RSBhYm91dAorICAgICAgICBzb21ldGhpbmcgcXVlc3Rpb25hYmxlLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIpOiBSZXR1cm4gV2ViR0xBbnks
IHNhbWUgaWRpb20gYXMKKyAgICAgICAgZGVzY3JpYmVkIGFib3ZlIGZvciBnZXRGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnRQYXJhbWV0ZXIuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZSk6IFVwZGF0ZWQgdG8gcGFzcyByZWZl
cmVuY2VzCisgICAgICAgIGluc3RlYWQgb2YgcG9pbnRlcnMgaW4gYSBjb3VwbGUgY2FzZXMKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UpOiBDaGFuZ2VkIGdyYXBoaWNzCisgICAgICAgIGNvbnRleHQgYXJndW1lbnQg
dHlwZSBmcm9tIFJlZlB0ciYmIHRvIFJlZiYmLiBBbHNvIG1vdmVkIGluaXRpYWxpemF0aW9uIG9m
IHNjYWxhcnMKKyAgICAgICAgZnJvbSB0aGUgY29uc3RydWN0b3IgdG8gdGhlIGNsYXNzIGRlZmlu
aXRpb24uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp+V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVCdWZmZXIpOiBQYXNzIGEgcmVm
ZXJlbmNlIGluc3RlYWQgb2YgYSBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlRnJhbWVidWZmZXIpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZVRleHR1cmUpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZVByb2dy
YW0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmNyZWF0ZVJlbmRlcmJ1ZmZlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlU2hhZGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVCdWZmZXIpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFtZXRl
cik6IFVwZGF0ZSB0byB1c2UgV2ViR0xBbnkuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpnZXRQcm9ncmFtUGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0
ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldFNoYWRlclBhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRyaWIp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omdl
dFZlcnRleEF0dHJpYk9mZnNldCk6IFJlbW92ZWQgdW5ubmVlZAorICAgICAgICB0eXBlIGNhc3Rz
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0
cmliUG9pbnRlcik6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVTaGFyZWRPYmplY3QpOiBUYWtlIGEgcmVmZXJlbmNl
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRkU2hhcmVk
T2JqZWN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpyZW1vdmVDb250ZXh0T2JqZWN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjphZGRDb250ZXh0T2JqZWN0KTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuUGFyYW1ldGVy
KTogQ2hhbmdlZCByZXR1cm4gdHlwZTsKKyAgICAgICAgY29ubnZlcnNpb24gdG8gV2ViR0xBbnkg
Y2FuIGhhcHBlbiBhdCB0aGUgcG9pbnQgb2YgdXNlLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Qm9vbGVhbkFycmF5UGFyYW1ldGVyKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRGbG9hdFBhcmFt
ZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Z2V0SW50UGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpnZXRVbnNpZ25lZEludFBhcmFtZXRlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0SW50NjRQYXJhbWV0ZXIp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omdl
dFdlYkdMRmxvYXRBcnJheVBhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVC
dWZmZXJEYXRhUGFyYW1ldGVycyk6IFVzZQorICAgICAgICBvcHRpb25hbCB0byBzaW1wbGlmeSBs
b2dpYyBhbmQgZ2V0IHJpZCBvZiBhIGJvb2xlYW4uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjplbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24pOiBBZGRlZC4KKyAg
ICAgICAgSGVscGVyIHVzZWQgYnkgdGhlIGdldEV4dGVuc2lvbiBmdW5jdGlvbnMuCisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUgY2hhbmdlcy4KKyAgICAgICAgQWxzbyBjaGFuZ2VkIHNldEJvdW5kVmVydGV4QXJy
YXlPYmplY3QgdG8gdGFrZSBhIHJhdyBwb2ludGVyIGluc3RlYWQgb2YKKyAgICAgICAgYXMgUGFz
c1JlZlB0ci4KKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMU2hhcmVkT2JqZWN0Ojp+V2ViR0xTaGFyZWRPYmplY3Qp
OiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTaGFyZWRPYmplY3Q6
OmRldGFjaENvbnRleHRHcm91cCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTaGFy
ZWRPYmplY3Q6OmdldEFHcmFwaGljc0NvbnRleHQzRCk6IFVwZGF0ZWQgc2luY2UgdGhlCisgICAg
ICAgIHVuZGVybHlpbmcgZ2V0QUdyYXBoaWNzQ29udGV4dDNEIGZ1bmN0aW9uIG5vdyByZXR1cm5z
IGEgcmVmZXJlbmNlLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3Qu
aDogUmVtb3ZlZCBtYW55IHVudXNlZCAiaXMiIHZpcnR1YWwgZnVuY3Rpb25zLgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaDogRGl0dG8uCisKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZSk6IFVwZGF0ZWQgZm9yIG5ldyB0eXBl
IGVudW1lcmF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdDo6ZGVsZXRlT2JqZWN0SW1wbCk6IERpdHRvLgorICAgICAgICAqIGh0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hh
bmdlcy4KKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpXZWJH
TFZlcnRleEFycmF5T2JqZWN0QmFzZSk6IFVwZGF0ZWQgZm9yIG5ldworICAgICAgICB0eXBlIGVu
dW1lcmF0aW9uIGFuZCBtb3ZlZCBpbml0aWFsaXphdGlvbiB0byBjbGFzcyBkZWZpbml0aW9uLgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldEVsZW1lbnRB
cnJheUJ1ZmZlcik6IENoYW5nZWQgYXJndW1lbnQgdG8KKyAgICAgICAgcmF3IHBvaW50ZXIgaW5z
dGVhZCBvZiBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9i
amVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKTogQ2hhbmdlZCBhcmd1bWVudCB0bworICAg
ICAgICByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZlcik6IENoYW5nZWQgYXJ1Z21l
bnQgdHlwZSB0bworICAgICAgICByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJp
YkRpdmlzb3IpOiBSZW1vdmVkIHVubmVlZGVkCisgICAgICAgIGxvY2FsIHZhcmlhYmxlLgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmg6IFVwZGF0ZWQg
Zm9yIGFib3ZlIGNoYW5nZXMuCisgICAgICAgIFJlcGxhY2VkIFZBT1R5cGUgd2l0aCBUeXBlLiBV
c2VkIGNsYXNzIG1lbWJlciBpbml0aWFsaXphdGlvbi4KKworICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKTogVXBkYXRlZCBmb3IgbmV3IHR5cGUgZW51bWVy
YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpXZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTOjp+V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUykgRGl0dG8uOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6ZGVsZXRlT2JqZWN0
SW1wbCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmpl
Y3RPRVMuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvZm9y
bXMvRmlsZUljb25Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUljb25Mb2FkZXI6
Omljb25Mb2FkZWQpOiBSZW5hbWVkIGZyb20gbm90aWZ5RmluaXNoZWQuIEFsc28gY2hhbmdlZAor
ICAgICAgICB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gdGhpcyBjYWxscyB0byBpY29uTG9hZGVk
LiBDaGFuZ2VkIHRoZSBhcmd1ZW1udCB0bworICAgICAgICBSZWZQdHImJiBpbnN0ZWFkIG9mIFBh
c3NSZWZQdHIuCisgICAgICAgICogaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5oOiBVcGRhdGVk
IGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVj
dGlvblNpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6OmF0
dGFjaExhdGVyKTogVXNlIGlzU2NyaXB0RWxlbWVudCBpbnN0ZWFkIG9mCisgICAgICAgIHRvU2Ny
aXB0RWxlbWVudElmUG9zc2libGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9u
U2l0ZTo6aW5zZXJ0Rm9yZWlnbkVsZW1lbnQpOiBEaXR0by4KKworICAgICAgICAqIGh0bWwvcGFy
c2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1l
bnRQYXJzZXI6OnJ1blNjcmlwdHNGb3JQYXVzZWRUcmVlQnVpbGRlcik6IFBhc3Mgc2NyaXB0Cisg
ICAgICAgIGVsZW1lbnQgYXMgYSBSZWYgcmF0aGVyIHRoYW4gUmVmUHRyLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjp3YXRjaEZvckxvYWQpOiBQYXNzIGEgcmVmZXJlbmNl
IGluc3RlYWQgb2YgYSBwb2ludGVyLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFNjcmlw
dFJ1bm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRl
UGFyc2luZ0Jsb2NraW5nU2NyaXB0KTogRGVsZXRlZC4gTW92ZWQgdGhlIGNvZGUKKyAgICAgICAg
aW50byB0aGUgc2luZ2xlIGNhbGwgc2l0ZSwgZXhlY3V0ZSBQYXJzaW5nQmxvY2tpbmdTY3JpcHRz
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBlbmRpbmdTY3Jp
cHRBbmREaXNwYXRjaEV2ZW50KTogQ2hhbmdlZCBhcmd1bWVudAorICAgICAgICB0eXBlIHRvIGEg
cmVmZXJlbmNlIGZyb20gYSBSZWZQdHI7IHRoaXMgZnVudGlvbiB3YXMgbm90IHRha2luZyBvd25l
cnNoaXAuIEFsc28gcmVtb3ZlCisgICAgICAgIGNhbGwgdG8gdG9TY3JpcHRFbGVtZW50SWZQb3Nz
aWJsZSwKKyAgICAgICAgc2luY2UgcGVuZGluZyBzY3JpcHRzIG5vdyBjb250YWlucyBzY3JpcHQg
ZWxlbWVudHMgYWxyZWFkeS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OmV4
ZWN1dGUpOiBDaGFuZ2VkIGFyZ3VtZW50IHR5cGUgdG8gUmVmPFNjcmlwdEVsZW1lbnQ+JiYKKyAg
ICAgICAgZnJvbSBQYXNzUmVmUHRyPEVsZW1lbnQ+LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNj
cmlwdFJ1bm5lcjo6ZXhlY3V0ZVBhcnNpbmdCbG9ja2luZ1NjcmlwdHMpOiBNb3ZlZCBjb2RlIGhl
cmUgZnJvbQorICAgICAgICBleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0LiBBbHNvIHBhc3Mg
YSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRl
U2NyaXB0c1dhaXRpbmdGb3JQYXJzaW5nKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdl
YkNvcmU6OnJlcXVlc3RQZW5kaW5nU2NyaXB0KTogQ2hhbmdlZCBhcmd1bWVudCB0eXBlIHRvIFNj
cmlwdEVsZW1lbnQmIGZyb20KKyAgICAgICAgRWxlbWVudCouCisgICAgICAgIChXZWJDb3JlOjpI
VE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0RGVmZXJyZWRTY3JpcHQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OnJ1blNjcmlwdCk6
IERpdHRvLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuaDogVXBkYXRl
ZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnRha2VTY3JpcHRU
b1Byb2Nlc3MpOiBDaGFuZ2VkIHJldHVybiB0eXBlIGZyb20KKyAgICAgICAgUmVmUHRyPEVsZW1l
bnQ+IHRvIFJlZlB0cjxTY3JpcHRFbGVtZW50Pi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVl
QnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyk6IERvd25jYXN0IHRoZSBzY3JpcHQgZWxlbWVudCB0bwor
ICAgICAgICBIVE1MU2NyaXB0RWxlbWVudCBzbyB3ZSBjYW4gc3RvcmUgaXQgYXMgYSBTY3JpcHRF
bGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVG9rZW5J
bkZvcmVpZ25Db250ZW50KTogRG93bmNhc3QgdGhlIHNjcmlwdAorICAgICAgICBlbGVtZW50IHRv
IFNWR1NjcmlwdEVsZW1lbnQgc28gd2UgY2FuIHN0b3JlIGl0IGFzIGEgc2NyaXB0IGVsZW1lbnQu
CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmg6IFVwZGF0ZWQgZm9yIGFi
b3ZlIGNoYW5nZXMuIENoYW5nZWQgdGhlIHR5cGUKKyAgICAgICAgb2YgbV9zY3JpcHRUb1Byb2Nl
c3MgdG8gUmVmUHRyPFNjcmlwdEVsZW1lbnQ+LgorCisgICAgICAgICogaHRtbC9wYXJzZXIvVGV4
dERvY3VtZW50UGFyc2VyLmNwcDogQWRkZWQgbm93LW5lZWRlZCBpbmNsdWRlLgorCisgICAgICAg
ICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhTU0F1ZGl0b3JEZWxlZ2F0ZTo6Z2VuZXJhdGVWaW9sYXRpb25SZXBvcnQpOiBDaGFuZ2VkIHJl
dHVybiB0eXBlCisgICAgICAgIHRvIFJlZiBmcm9tIFBhc3NSZWZQdHIuCisgICAgICAgICogaHRt
bC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmg6IFVwZGF0ZWQgZm9yIGFib3ZlLgorCisgICAg
ICAgICogaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
VHJhY2s6OkF1ZGlvVHJhY2spOiBUYWtlIHJlZmVyZW5jZXMuCisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1RyYWNrOjpzZXRQcml2YXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrOjpzZXRFbmFibGVkKTogUmVtb3ZlZCByZWR1bmRhbnQgY29kZSB0byBkbyB3aGF0IHRoZQor
ICAgICAgICBwcml2YXRlIHNldEVuYWJsZWQgZnVuY3Rpb24gaXMgYWxyZWFkeSBnb2luZyB0byBk
by4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmluYmFuZFRyYWNrSW5kZXgpOiBSZW1v
dmVkIGFzc2VydGlvbiBzaW5jZSBtX3ByaXZhdGUKKyAgICAgICAgaXMgbm93IGEgUmVmIHJhdGhl
ciB0aGFuIFJlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmVuYWJsZWRDaGFu
Z2VkKTogQWRkZWQgYW4gZWFybHkgZXhpdCBzbyB3ZSB3aWxsIG9ubHkKKyAgICAgICAgY2FsbCBh
dWRpb1RyYWNrRW5hYmxlZENoYW5nZWQgaWYgbV9lbmFibGVkIGlzIGFjdHVhbGx5IGNoYW5naW5n
LiBBbHNvIHJlbW92ZWQKKyAgICAgICAgdGhlIHVubmVlZGVkIHRyYWNrIHByaXZhdGUgYXJndW1l
bnQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjppZENoYW5nZWQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmxhYmVsQ2hhbmdlZCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1RyYWNrOjp3aWxsUmVtb3ZlKTogRGl0dG8uCisgICAgICAgICogaHRt
bC90cmFjay9BdWRpb1RyYWNrLmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAg
ICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZSk6IFJlbW92ZWQgaW5iYW5kIHRleHQg
dHJhY2sgcHJpdmF0ZQorICAgICAgICBhcmd1bWVudC4gVXNlIGNvbnRhaW5zIGluc3RlYWQgb2Yg
ZmluZC9lbmQuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVE
YXRhQ3VlKTogRGl0dG8uIFVzZSBnZXQgaW5zdGVhZCBvZiBmaW5kL2VuZC4KKyAgICAgICAgKFdl
YkNvcmU6OkluYmFuZERhdGFUZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUpOiBEaXR0by4KKyAgICAg
ICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaDogVXBkYXRlZCBmb3IgYWJvdmUg
Y2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpJbmJhbmRHZW5l
cmljVGV4dFRyYWNrKTogVGFrZSByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5k
R2VuZXJpY1RleHRUcmFjazo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJh
bmRHZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVDdWVGcm9tQ3VlRGF0YSk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSk6IERpdHRv
LiBBbHNvIHJlbW92ZWQgdW51c2VkCisgICAgICAgIHRyYWNrIHByaXZhdGUgYXJndW1lbnQuCisg
ICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVHZW5lcmljQ3Vl
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpyZW1v
dmVHZW5lcmljQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4
dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Oklu
YmFuZEdlbmVyaWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRURmlsZUhlYWRlcik6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6bmV3UmVnaW9uc1BhcnNlZCk6
IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4
dFRyYWNrLmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL3Ry
YWNrL0luYmFuZFRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJh
Y2s6OmNyZWF0ZSk6IFJldHVybiBhIFJlZiBpbnN0ZWFkIG9mIGEgUGFzc1JlZlB0ci4gVGFrZQor
ICAgICAgICByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjpJ
bmJhbmRUZXh0VHJhY2spOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFj
azo6c2V0UHJpdmF0ZSk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIFBhc3NSZWZQdHIu
CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OmlzQ2xvc2VkQ2FwdGlvbnMpOiBS
ZW1vdmVkIGNoZWNrIGZvciBudWxsIHNpbmNlIG1fcHJpdmF0ZQorICAgICAgICBpcyBub3cgYSBS
ZWYgYW5kIHNvIG5ldmVyIG51bGwuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6
OmlzU0RIKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OmNvbnRh
aW5zT25seUZvcmNlZFN1YnRpdGxlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5k
VGV4dFRyYWNrOjppc01haW5Qcm9ncmFtQ29udGVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6SW5iYW5kVGV4dFRyYWNrOjppc0Vhc3lUb1JlYWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkluYmFuZFRleHRUcmFjazo6aW5iYW5kVHJhY2tJbmRleCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjppbkJhbmRNZXRhZGF0YVRyYWNrRGlzcGF0Y2hUeXBl
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OmlkQ2hhbmdlZCk6
IFJlbW92ZWQgdW5uZWVkZWQgdHJhY2sgcHJpdmF0ZSBhcmd1bWVudC4KKyAgICAgICAgKFdlYkNv
cmU6OkluYmFuZFRleHRUcmFjazo6bGFiZWxDaGFuZ2VkKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpJbmJhbmRUZXh0VHJhY2s6Omxhbmd1YWdlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjp3aWxsUmVtb3ZlKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OnVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSk6IEltcHJvdmVk
IHN3aXRjaCBzdGF0ZW1lbnQKKyAgICAgICAgYnkgcmVtb3ZpbmcgZGVmYXVsdCBzbyB3ZSBnZXQg
YSB3YXJuaW5nIGlmIHdlIGZvcmdldCB0byBoYW5kbGUgYSBraW5kIHZhbHVlLgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjpzdGFydFRpbWVWYXJpYW5jZSk6IFJlbW92ZWQgY2hl
Y2sgZm9yIG51bGwuCisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suaDogVXBk
YXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4gQ2hhbmdlZCBtX3ByaXZhdGUgZnJvbQorICAgICAgICBh
IFJlZlB0ciB0byBhIFJlZi4KKworICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4
dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFdlYlZUVFRleHRUcmFjazo6SW5i
YW5kV2ViVlRUVGV4dFRyYWNrKTogVGFrZSByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29yZTo6
SW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKTogUmVtb3ZlZCB1bm5l
ZWRlZCB0cmFjaworICAgICAgICBwcml2YXRlIGFyZ3VlbW50LgorICAgICAgICAoV2ViQ29yZTo6
SW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpuZXdSZWdpb25zUGFyc2VkKTogUGFzcyBhIHJlZmVyZW5j
ZS4KKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oOiBVcGRhdGVk
IGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC90cmFjay9Mb2FkYWJsZVRleHRU
cmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2FkYWJsZVRleHRUcmFjazo6bmV3Q3Vlc0F2
YWlsYWJsZSk6IFBhc3MgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6OkxvYWRhYmxlVGV4
dFRyYWNrOjpuZXdSZWdpb25zQXZhaWxhYmxlKTogRGl0dG8uCisKKyAgICAgICAgKiBodG1sL3Ry
YWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6On5UZXh0VHJh
Y2spOiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6c2V0S2lu
ZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpzZXRNb2RlKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OnJlbW92ZUFsbEN1ZXMpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6YWN0aXZlQ3Vlcyk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6VGV4dFRyYWNrOjphZGRDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRUcmFjazo6cmVtb3ZlQ3VlKTogUmVtb3ZlZCB1bm5lZWRlZCBjb2RlIHRvIGhhbmRsZSBhIGN1
ZQorICAgICAgICB0aGF0IHBvaW50cyB0byBhIHRyYWNrIGJ1dCBpcyBub3QgaW4gdGhhdCB0cmFj
ay4gQWRkZWQgYSBjYWxsIHRvCisgICAgICAgIHNldElzQWN0aXZlKGZhbHNlKSBoZXJlIGluc3Rl
YWQgb2YgaGF2aW5nIHRoZSByZW1vdmUgZnVuY3Rpb24gZG8gaXQuCisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2s6OmFkZFJlZ2lvbik6IFVzZSByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dFRyYWNrOjpyZW1vdmVSZWdpb24pOiBSZW1vdmVkIHVubmVlZGVkIGNvZGUgdG8gaGFu
ZGxlIGEKKyAgICAgICAgcmVnaW9uIHRoYXQgcG9pbnRzIHRvIGEgdHJhY2sgYnV0IGlzIG5vdCBp
biB0aGF0IHRyYWNrLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpjdWVXaWxsQ2hhbmdl
KTogVXNlIHJlZmVyZW5jZXMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OmN1ZURpZENo
YW5nZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpzZXRMYW5ndWFnZSk6
IERpdHRvLgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrLmg6IFVwZGF0ZWQgZm9yIGFi
b3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OlRleHRUcmFja0N1ZSk6IEluaXRpYWxpemVk
IHRoZSBkYXRhIG1lbWJlcnMKKyAgICAgICAgaW4gdGhlIGNsYXNzIGRlZmluaXRpb24uCisgICAg
ICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmN1ZUluZGV4KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6aW52YWxpZGF0ZUN1ZUluZGV4KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUu
IFJlbW92ZWQgbV9jdWVJbmRleCwKKyAgICAgICAgYmVjYXVzZSBpdCBpcyBub3QgYSBnb29kIGRl
c2lnbiB0byBzdG9yZSB0aGVzZSBhbmQgdHJ5IHRvIGtlZXAgdGhlbSB1cAorICAgICAgICB0byBk
YXRlLgorCisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbXBhcmVDdWVzKTogQWRkZWQuIEhlbHBlciBmb3Igc29ydGluZyBhbmQg
Y2hlY2tpbmcgc29ydGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6OlRl
eHRUcmFja0N1ZUxpc3QpOiBEZWxldGVkLiBMZXQgdGhlIGNvbXBpbGVyCisgICAgICAgIGdlbmVy
YXRlIHRoaXMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjpsZW5ndGgpOiBN
b3ZlZCB0byBoZWFkZXIuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjpjdWVJ
bmRleCk6IFJlbmFtZWQgZnJvbSBnZXRDdWVJbmRleC4KKyAgICAgICAgQ2hhbmdlZCByZXR1cm4g
dHlwZSB0byB1bnNpZ25lZCByYXRoZXIgdGhhbiB1bnNpZ25lZCBsb25nLgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dFRyYWNrQ3VlTGlzdDo6aXRlbSk6IFVwZGF0ZWQgZm9yIG5hbWUgY2hhbmdlLgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlTGlzdDo6Z2V0Q3VlQnlJZCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlTGlzdDo6YWN0aXZlQ3Vlcyk6IEJ1aWxkIHRo
ZSB2ZWN0b3IgZGlyZWN0bHkKKyAgICAgICAgcmF0aGVyIHRoYW4gd2FzdGVmdWxseSBhZGRpbmcg
d2l0aCBUZXh0VHJhY2tDdWVMaXN0OjphZGQsIHdoaWNoIHdpbGwKKyAgICAgICAgdHJ5IHRvIHNv
cnQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjphZGQpOiBUYWtlIGEgUmVm
JiYgaW5zdGVhZCBvZiBhIFBhc3NSZWZQdHIuCisgICAgICAgIEFsc28sIGtlZXAgc29ydGVkIHVz
aW5nIHN0ZDo6dXBwZXJfYm91bmQgaW5zdGVhZCBvZiB0aGUgcmVjdXJzaXZlCisgICAgICAgIGJp
bmFyeSBzZWFyY2ggdGhpcyBjb2RlIHdhcyB1c2luZyBiZWZvcmUuIEFsc28gcmVtb3ZlIHRoZQor
ICAgICAgICBpbnZhbGlkYXRlQ3VlSW5kZXhlcyBjYWxsIHNpbmNlIHRoZXJlIGFyZSBubyBjdWUg
aW5kaWNlcyBhbnkgbW9yZS4KKyAgICAgICAgQWxzbyByZW1vdmUgdGhlIGJvb2xlYW4gcmV0dXJu
IHZhbHVlIHNpbmNlIG5vIGNhbGxlciB3YXMgdXNpbmcgaXQuCisgICAgICAgIChXZWJDb3JlOjpU
ZXh0VHJhY2tDdWVMaXN0OjpyZW1vdmUpOiBUYWtlIGEgcmVmZXJlbmNlIGluc3RlYWQgb2YgYQor
ICAgICAgICBwb2ludGVyLiBBbHNvIHJlbW92ZSB0aGUgYm9vbGVhbiByZXR1cm4gdmFsdWUgc2lu
Y2Ugbm8gY2FsbGVyIHdhcyB1c2luZyBpdC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1
ZUxpc3Q6OmNvbnRhaW5zKTogRGVsZXRlZC4gV2FzIHVudXNlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlRleHRUcmFja0N1ZUxpc3Q6OnVwZGF0ZUN1ZUluZGV4KTogUmVpbXBsZW1lbnRlZCB1c2luZyB0
aGUKKyAgICAgICAgc3RkOjp1cHBlcl9ib3VuZCBhbmQgc3RkOjpyb3RhdGUgb3BlcmF0aW9ucy4g
VGhlIG9sZCBjb2RlIHRoYXQgdXNlZAorICAgICAgICByZW1vdmUgYW5kIGFkZCB3YXMgaW5lZmZp
Y2llbnQgYW5kIGFsc28gY291bGQgY2F1c2UgYSBjdWUgdG8gYmUgZGVhbGxvY2F0ZWQKKyAgICAg
ICAgaWYgc29tZXRoaW5nIGVsc2Ugd2Fzbid0IGhvbGRpbmcgYSByZWZlcmVuY2UgdG8gdGhlIGN1
ZS4gQWxzbyBjaGFuZ2VkIHRvIHRha2UKKyAgICAgICAgYSByZWZlcmVuY2UuCisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjpjbGVhcik6IERlbGV0ZWQuIFdhcyB1bnVzZWQuCisg
ICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjppbnZhbGlkYXRlQ3VlSW5kZXhlcyk6
IERlbGV0ZWQuIE5vIGxvbmdlcgorICAgICAgICBuZWVkZWQgc2luY2Ugd2UgZG9uJ3Qgc3RvcmUg
Y3VlIGluZGljZXMgaW4gdGhlIGN1ZXMgYW55IG1vcmUuCisgICAgICAgICogaHRtbC90cmFjay9U
ZXh0VHJhY2tDdWVMaXN0Lmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZSBjaGFuZ2VzLgorCisgICAg
ICAgICogaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZU
VFJlZ2lvbkxpc3Q6OlZUVFJlZ2lvbkxpc3QpOiBEZWxldGVkLiBMZXQgdGhlIGNvbXBpbGVyCisg
ICAgICAgIGdlbmVyYXRlIHRoaXMuCisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb25MaXN0Ojps
ZW5ndGgpOiBNb3ZlZCB0byBoZWFkZXIuCisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb25MaXN0
OjppdGVtKTogVXBkYXRlZCBmb3IgbmFtZSBhbmQgdHlwZSBjaGFuZ2VzLgorICAgICAgICAoV2Vi
Q29yZTo6VlRUUmVnaW9uTGlzdDo6Z2V0UmVnaW9uQnlJZCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6VlRUUmVnaW9uTGlzdDo6YWRkKTogQ2hhbmdlZCB0byB0YWtlIGEgUmVmJiYgaW5zdGVh
ZCBvZiBhCisgICAgICAgIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb25M
aXN0OjpyZW1vdmUpOiBVcGRhdGVkLgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVnaW9uTGlzdDo6
Y2xlYXIpOiBEZWxldGVkLiBXYXMgdW51c2VkLgorICAgICAgICAqIGh0bWwvdHJhY2svVlRUUmVn
aW9uTGlzdC5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUgY2hhbmdlcy4KKyAgICAgICAgKiBodG1s
L3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaWRsOiBNYWRlIHJldHVybiB2YWx1ZXMgbnVsbGFibGUgdG8g
cmVmbGVjdAorICAgICAgICB0aGUgYWN0dWFsIHNlbWFudGljIG9mIHRoZSBjb2RlLgorCisgICAg
ICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
VHJhY2s6OlZpZGVvVHJhY2spOiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvVHJhY2s6OnNldFByaXZhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJh
Y2s6OnNldFNlbGVjdGVkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpp
bmJhbmRUcmFja0luZGV4KTogUmVtb3ZlZCBhc3NlcnRpb24gc2luY2UgbV9wcml2YXRlCisgICAg
ICAgIGlzIG5vdyBhIFJlZiBpbnN0ZWFkIG9mIGEgUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFjazo6c2VsZWN0ZWRDaGFuZ2VkKTogUmVtb3ZlZCB1bm5lZWRlZCB0cmFjayBwcml2
YXRlIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6aWRDaGFuZ2VkKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpsYWJlbENoYW5nZWQpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6Omxhbmd1YWdlQ2hhbmdlZCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6d2lsbFJlbW92ZSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6c2V0S2luZCk6IFVwZGF0ZWQgdG8gdXNlIHJlZmVy
ZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OnNldExhbmd1YWdlKTogRGl0dG8u
CisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92
ZS4gQ2hhbmdlZCBkZXJpdmF0aW9uIHRvIHByaXZhdGUuCisgICAgICAgIFJlbW92ZWQgdW5uZWVk
ZWQgZGVmYXVsdEtpbmRLZXl3b3JkLgorCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5o
OiBVcGRhdGVkIHRvIHVzZSByZWZlcmVuY2UuCisKKyAgICAgICAgKiBsb2FkZXIvUGluZ0xvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0
KTogVGFrZSBhIFJlZiYmIGluc3RlYWQgb2YgUmVmUHRyJiYuCisgICAgICAgICogbG9hZGVyL1Bp
bmdMb2FkZXIuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlLgorCisgICAgICAgICogcGFnZS9D
aHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpsb2FkSWNvbkZvckZpbGVzKTog
VGFrZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOiBVcGRhdGVkIGZvciBh
Ym92ZSBjaGFuZ2UuCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogRGl0dG8uCisKKyAg
ICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24pOiBVc2UgYXV0by4K
KworICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFF
bGVtZW50Lm1tOgorICAgICAgICAoV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6
OnNlbGVjdEF1ZGlvTWVkaWFPcHRpb24pOiBTaW1wbGlmaWVkCisgICAgICAgIGFsZ29yaXRobSBi
eSByZW1vdmluZyB1bm5lZWRlZCBkaXJlY3QgY2FsbCB0byBhdWRpb1RyYWNrRW5hYmxlZENoYW5n
ZWQsCisgICAgICAgIHdoaWNoIHdpbGwgYmUgY2FsbGVkIGJ5IHNldEVuYWJsZWQgYW5kIGRvZXNu
J3QgbmVlZCB0byBiZSBjYWxsZWQgYWdhaW4gaGVyZS4KKyAgICAgICAgKFdlYlBsYXliYWNrU2Vz
c2lvbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24pOiBSZW1vdmVk
CisgICAgICAgIHVuaGVscGZ1bCBhc3NlcnRpb24gYW5kIHVubm5lZGVkIGluaXRpYWxpemF0aW9u
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaDogUmVt
b3ZlZCB1bm5uZWVlZCB0cmFjayBwcml2YXRlCisgICAgICAgIGFyZ3VtZW50IGFuZCBpbml0aWFs
aXplZCBkYXRhIG1lbWJlcnMgd2hlcmUgdGhleSBhcmUgZGVmaW5lZC4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaDogVXNlIFJlZiBp
bnN0ZWFkIG9mCisgICAgICAgIFBhc3NSZWZQdHIsIGluaXRpYWxpemUgZGF0YSBtZW1iZXJzIHdo
ZXJlIHRoZXkgYXJlIGRlZmluZWQsIGFuZCByZW1vdmVkCisgICAgICAgIHRoZSB1bm5lZWRlZCB0
cmFjayBwcml2YXRlIGFyZ3VtZW50cyBmcm9tIHRoZSBjbGllbnQgZnVuY3Rpb25zLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oOiBGaXhlZCBmdW5j
dGlvbnMgdGhhdCB3ZXJlIHRha2luZworICAgICAgICBBdG9taWNTdHJpbmcgdG8gdGFrZSBhIGNv
bnN0JiBpbnN0ZWFkLiBVc2UgUmVmJiYgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oOiBSZW1vdmVk
IHVubmVkZWQgcHJpdmF0ZSBwb2ludGVyCisgICAgICAgIGFyZ3VtZW50cyBmcm9tIGNsaWVudCBm
dW5jdGlvbnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNl
Lmg6IFJlbW92ZWQgdW5uZWVkZWQgcHJpdmF0ZSBwb2ludGVycworICAgICAgICBmcm9tIGNsaWVu
dCBmdW5jdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZh
dGU6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1
ZGlvVHJhY2tQcml2YXRlQVZGLmg6IFVzZQorICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmLgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZE1ldGFkYXRh
VGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRNZXRhZGF0
YVRleHRUcmFja1ByaXZhdGVBVkY6OmFkZERhdGFDdWUpOiBVcGRhdGVkIGZvciBjaGFuZ2UgdG8g
YXJndW1lbnRzLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2
YXRlQVZGOjp1cGRhdGVQZW5kaW5nQ3VlRW5kVGltZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6Zmx1c2hQYXJ0aWFsQ3Vlcyk6
IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRyaWJ1dGVkU3RyaW5ncyk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cmVzZXRDdWVWYWx1ZXMpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NO
YXRpdmVTYW1wbGVzKTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6QXVk
aW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMpOgorICAgICAgICBNb3ZlZCBpbml0aWFs
aXphdGlvbiBvZiBkYXRhIG1lbWVicnMgdG8gd2hlcmUgdGhleSBhcmUgZGVmaW5lZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjplbmFibGVk
KTogRGVsZXRlZC4gTm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRFbmFibGVkKTogQ2hhbmdlZCB0byB1c2Ug
dGhlIGVuYWJsZWQKKyAgICAgICAgZmxhZyBmcm9tIHRoZSBiYXNlIGNsYXNzIGluc3RlYWQgb2Yg
YSBzZXBhcmF0ZSBtX2VuYWJsZWQgaW4gdGhpcyBjbGFzcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5oOgorICAgICAgICBSZW1vdmVkIHRoZSBlbmFibGVkIGZ1bmN0aW9uIGFuZCB0aGUgbV9l
bmFibGVkIGRhdGEgbWVtYmVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaDogTWFya2VkIGZ1bmN0aW9u
cworICAgICAgICBmaW5hbCBpbnN0ZWFkIG9mIG92ZXJyaWRlIGFuZCB1cGRhdGVkIGFyZ3VlbW50
cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0KTogVXBkYXRlZCBmb3IgY2hh
bmdlCisgICAgICAgIHRvIGFyZ3VtZW50cy4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjpwcm9jZXNzQ29kZWRGcmFtZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVuZENvbXBsZXRlZCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Omhhc1ZpZGVv
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
aGFzQXVkaW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpsYXllckRpZFJlY2VpdmVFcnJvcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmZsdXNoKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmlzUmVhZHlGb3JN
b3JlU2FtcGxlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OmZhc3RTZWVrVGltZUZvck1lZGlhVGltZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNlZWtUb1RpbWUpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRCZWNvbWVSZWFk
eUZvck1vcmVTYW1wbGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMpOiBEaXR0
by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRNZXRhZGF0
YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaDogVXBkYXRlZCBmb3IKKyAgICAgICAgY2hhbmdl
cyB0byBhcmd1bWVudHMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0lu
YmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5VHJhY2tPZlNhbXBsZSk6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFt
ZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtOZXdTYW1wbGUpOiBEaXR0by4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
cjo6YXBwZW5kKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyOjpmbHVzaCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lcjo6ZW5xdWV1ZVNhbXBsZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNSZWFkeUZvck1vcmVTYW1wbGVzKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpu
b3RpZnlSZWFkeUZvck1vcmVTYW1wbGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpzdG9wQXNraW5nRm9yTW9yZVNhbXBsZXMpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6Om5vdGlm
eUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25T
ZWdtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyOjpkaWRSZWNlaXZlU2FtcGxlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlQWxsUGVuZGluZ1NhbXBsZXMpOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXIuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbW9jay9t
ZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6YXBwZW5kKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2Vn
bWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6
OmRpZFJlY2VpdmVTYW1wbGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2VC
dWZmZXJQcml2YXRlOjplbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1ZVNhbXBsZSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6Omhhc1ZpZGVvKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6aGFzQXVk
aW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpm
YXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tT
b3VyY2VCdWZmZXJQcml2YXRlOjpzZWVrVG9UaW1lKTogRGl0dG8uCisgICAgICAgICogcGxhdGZv
cm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oOiBEaXR0by4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6dXBkYXRlU25hcHNob3QpOiBUYWtl
IHJhdyBwb2ludGVyIGluc3RlYWQKKyAgICAgICAgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hh
bmdlLgorCisgICAgICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaDogQWRkZWQgdXNpbmcgdG8g
cmVzb2x2ZSB0aGUgYW1iaWd1aXR5IHdpdGggdGhlCisgICAgICAgIHJlZi9kZXJlZiBmcm9tIFNW
R0VsZW1lbnQgYW5kIGZyb20gU2NyaXB0RWxlbWVudC4KKworICAgICAgICAqIHhtbC9wYXJzZXIv
WE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJz
ZXI6Om5vdGlmeUZpbmlzaGVkKTogVXBkYXRlZCB0byBzaW1wbGlmeSBzaW5jZQorICAgICAgICB0
aGUgcGVuZGluZyBzY3JpcHQgbm93IGhhcyBhIHNjcmlwdCBlbGVtZW50LgorCisgICAgICAgICog
eG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVudE5zKTogVXNlIGlzU2NpcHJ0RWxlbWVu
dCBpbnN0ZWFkCisgICAgICAgIG9mIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUuCisgICAgICAg
IChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKTogRGl0dG8uIEFsc28g
dXNlIGRvd25jYXN0U2NyaXB0RWxlbWVudC4KKwogMjAxNy0wMS0wMiAgWXVzdWtlIFN1enVraSAg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBmb2xsb3ctdXAg
Zml4IGZvciByMjEwMjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggOGYyZWM3MzM3MDIwM2ZhMzdmZGM4
ZmIxNDRlYWEwYjY4NDQ4OWZlOS4uYTg5OThiMTY2MGM1YWUxMTliYzFjZjkzZTk1ZWY4ZDM1NTQw
YWIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAxLTA0ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciB1
c2UgZnJvbSB0aGUgImh0bWwiIGRpcmVjdG9yeSwgb3RoZXIgaW1wcm92ZW1lbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2MzUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyk6IFRh
a2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisKIDIwMTctMDEtMDEgIEplZmYg
TWlsbGVyICA8amVmZm1AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSB1c2VyLXZpc2libGUg
Y29weXJpZ2h0IHN0cmluZ3MgdG8gaW5jbHVkZSAyMDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggYjE2
MTU4NWJmOTYzNWExZTNlNDMxNjhlNmU0MTNiMjJhOTZmOWFkNi4uMGQ3OTJjYTU2NWNmZDU2NGM0
YmIyZDQyZWRkODc0ZjgzYzgxNTE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDE3LTAxLTA0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW1vdmUgUGFzc1JlZlB0ciB1c2UgZnJvbSB0aGUgImh0bWwiIGRpcmVjdG9yeSwgb3RoZXIgaW1w
cm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjY2MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMpOiBUYWtlIGEgcmVmZXJlbmNlIGluc3RlYWQgb2Yg
YSBwb2ludGVyLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOiBV
cGRhdGVkIGZvciB0aGUgYWJvdmUuCisKIDIwMTYtMTItMzAgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiZG9t
IiBkaXJlY3RvcnksIHJlbGF0ZWQgY2xlYW51cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI4OTVkYzI3OGEzYWUw
MDM3MTFlZTAzM2FiOTdhMmRjMjMwMTFiOGMuLmY3MWFlYzVmY2Q5MDgzOGFmZTZhNDVmZDM2MWE3
ZDk0YTg2YzUwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wMS0wNCAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIg
dXNlIGZyb20gdGhlICJodG1sIiBkaXJlY3RvcnksIG90aGVyIGltcHJvdmVtZW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2NjM1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBv
ZiBhIHBvaW50ZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaDogRGl0dG8uCisKIDIwMTctMDEtMDEgIEplZmYgTWlsbGVyICA8amVmZm1AYXBw
bGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSB1c2VyLXZpc2libGUgY29weXJpZ2h0IHN0cmluZ3Mg
dG8gaW5jbHVkZSAyMDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaCBiL1Nv
dXJjZS9XVEYvd3RmL1JlZlB0ci5oCmluZGV4IDg3ZmM0NTZmMzcwNDA0OWJmNGVjY2NiZjNhNGZm
NTc2OTc5ZTY3N2YuLmZlMTYzMGM5NzM1YjVmZjUzNTNjYjJjNTU4ZTMxMDU4MTI0Nzg3ZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Jl
ZlB0ci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYs
IDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNDIsMTAgKzI0MiwyMSBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVmUHRyPFQ+IGFkb3B0UmVmKFQqIHApCiAgICAgcmV0
dXJuIFJlZlB0cjxUPihwLCBSZWZQdHI8VD46OkFkb3B0KTsKIH0KIAordGVtcGxhdGU8dHlwZW5h
bWUgVD4gaW5saW5lIFJlZlB0cjxUPiBtYWtlUmVmUHRyKFQqIHBvaW50ZXIpCit7CisgICAgcmV0
dXJuIHBvaW50ZXI7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4g
bWFrZVJlZlB0cihUJiByZWZlcmVuY2UpCit7CisgICAgcmV0dXJuICZyZWZlcmVuY2U7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OlJlZlB0cjsKIHVzaW5nIFdURjo6YWRv
cHRSZWY7Cit1c2luZyBXVEY6Om1ha2VSZWZQdHI7CiB1c2luZyBXVEY6OnN0YXRpY19wb2ludGVy
X2Nhc3Q7CiAKICNlbmRpZiAvLyBXVEZfUmVmUHRyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
MGM4NTFkZTQwZjEzZWFjN2ZiOWM3ZDgxMWQxN2ViMjEzNGZlZmQyYi4uODc3OGNjNDI1YjY3MTA3
ZTRmZDNkMGM5NjViNTk2NmRlYTU0NjA4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE3NjQs
NyArMTc2NCw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL1ZhbGlkYXRpb25NZXNz
YWdlLmNwcAogICAgIGh0bWwvV2Vla0lucHV0VHlwZS5jcHAKIAotICAgIGh0bWwvY2FudmFzL0FO
R0xFSW5zdGFuY2VkQXJyYXlzLmNwcAogICAgIGh0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNw
cAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1BhdGguY3BwCiAgICAgaHRtbC9jYW52YXMvQ2FudmFz
UGF0dGVybi5jcHAKQEAgLTE3NzMsNTEgKzE3NzIsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1N0eWxlLmNwcAogICAgIGh0bWwvY2FudmFzL0RPTVBhdGguY3BwCi0gICAgaHRt
bC9jYW52YXMvRVhUQmxlbmRNaW5NYXguY3BwCi0gICAgaHRtbC9jYW52YXMvRVhURnJhZ0RlcHRo
LmNwcAotICAgIGh0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuY3BwCi0gICAgaHRtbC9j
YW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcAotICAgIGh0bWwvY2FudmFzL0VY
VHNSR0IuY3BwCi0gICAgaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5jcHAKLSAgICBo
dG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcAotICAgIGh0bWwvY2FudmFzL09F
U1RleHR1cmVGbG9hdC5jcHAKLSAgICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXRMaW5lYXIu
Y3BwCi0gICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdC5jcHAKLSAgICBodG1sL2Nh
bnZhcy9PRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyLmNwcAotICAgIGh0bWwvY2FudmFzL09FU1Zl
cnRleEFycmF5T2JqZWN0LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRl
eHQuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCi0gICAgaHRtbC9jYW52YXMv
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUFZSVEMuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4
dHVyZVMzVEMuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuY3BwCi0gICAg
aHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xD
b250ZXh0T2JqZWN0LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8u
Y3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuY3BwCi0gICAgaHRtbC9jYW52
YXMvV2ViR0xEZXB0aFRleHR1cmUuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xEcmF3QnVmZmVy
cy5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5jcHAKLSAgICBodG1sL2NhbnZh
cy9XZWJHTEZyYW1lYnVmZmVyLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHAK
LSAgICBodG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmNwcAotICAgIGh0bWwvY2FudmFzL1dl
YkdMT2JqZWN0LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKLSAgICBodG1s
L2NhbnZhcy9XZWJHTFF1ZXJ5LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVy
LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKLSAgICBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAotICAgIGh0bWwvY2FudmFzL1dl
YkdMU2FtcGxlci5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFNoYWRlci5jcHAKLSAgICBodG1s
L2NhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAKLSAgICBodG1sL2NhbnZhcy9X
ZWJHTFNoYXJlZE9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFN5bmMuY3BwCi0gICAg
aHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMVHJhbnNm
b3JtRmVlZGJhY2suY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uY3Bw
Ci0gICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKLSAgICBodG1sL2Nh
bnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcAogCiAgICAgaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRl
ci5jcHAKIApAQCAtMzA3OCw2ICszMDMyLDcgQEAgaWYgKEVOQUJMRV9XRUJHTCkKICAgICAgICAg
aHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5jcHAKICAgICAgICAgaHRtbC9j
YW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuY3BwCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQW55LmNwcAog
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKICAgICAgICAgaHRtbC9jYW52YXMv
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcApAQCAtMzA5MSw3ICszMDQ2LDYgQEAgaWYgKEVOQUJM
RV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xEcmF3QnVmZmVycy5jcHAKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dl
YkdMRnJhbWVidWZmZXIuY3BwCi0gICAgICAgIGh0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHAK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHAKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xPYmplY3QuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5jcHAKaW5kZXggNDNjMGQwMDBkOGU3MzU1NmZlZTE3MDQyYWY2MzllMDc5ZWQ5OTMwNC4uNGYx
ODhiODUyNDhmYzQyMTM5ZDc1ODFkZTE5MGQzZjI3ZWI2MTE2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTEsNiArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC02OTMs
MTggKzY5MywxOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNl
QnVmZmVyKFNvdXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgIGJ1ZmZlci5hYm9ydElmVXBkYXRpbmco
KTsKIAogICAgIC8vIDQuIExldCBTb3VyY2VCdWZmZXIgYXVkaW9UcmFja3MgbGlzdCBlcXVhbCB0
aGUgQXVkaW9UcmFja0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5IHNvdXJjZUJ1ZmZlci5hdWRpb1Ry
YWNrcy4KLSAgICBSZWZQdHI8QXVkaW9UcmFja0xpc3Q+IGF1ZGlvVHJhY2tzID0gYnVmZmVyLmF1
ZGlvVHJhY2tzKCk7CisgICAgYXV0byYgYXVkaW9UcmFja3MgPSBidWZmZXIuYXVkaW9UcmFja3Mo
KTsKIAogICAgIC8vIDUuIElmIHRoZSBTb3VyY2VCdWZmZXIgYXVkaW9UcmFja3MgbGlzdCBpcyBu
b3QgZW1wdHksIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKGF1ZGlvVHJh
Y2tzLT5sZW5ndGgoKSkgeworICAgIGlmIChhdWRpb1RyYWNrcy5sZW5ndGgoKSkgewogICAgICAg
ICAvLyA1LjEgTGV0IEhUTUxNZWRpYUVsZW1lbnQgYXVkaW9UcmFja3MgbGlzdCBlcXVhbCB0aGUg
QXVkaW9UcmFja0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5IHRoZSBhdWRpb1RyYWNrcwogICAgICAg
ICAvLyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgICAgIC8vIDUuMiBM
ZXQgdGhlIHJlbW92ZWQgZW5hYmxlZCBhdWRpbyB0cmFjayBmbGFnIGVxdWFsIGZhbHNlLgogICAg
ICAgICBib29sIHJlbW92ZWRFbmFibGVkQXVkaW9UcmFjayA9IGZhbHNlOwogCiAgICAgICAgIC8v
IDUuMyBGb3IgZWFjaCBBdWRpb1RyYWNrIG9iamVjdCBpbiB0aGUgU291cmNlQnVmZmVyIGF1ZGlv
VHJhY2tzIGxpc3QsIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICB3aGlsZSAoYXVk
aW9UcmFja3MtPmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiB0cmFjayA9ICphdWRpb1Ry
YWNrcy0+bGFzdEl0ZW0oKTsKKyAgICAgICAgd2hpbGUgKGF1ZGlvVHJhY2tzLmxlbmd0aCgpKSB7
CisgICAgICAgICAgICBhdXRvJiB0cmFjayA9ICphdWRpb1RyYWNrcy5sYXN0SXRlbSgpOwogCiAg
ICAgICAgICAgICAvLyA1LjMuMSBTZXQgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhl
IEF1ZGlvVHJhY2sgb2JqZWN0IHRvIG51bGwuCiAgICAgICAgICAgICB0cmFjay5zZXRTb3VyY2VC
dWZmZXIobnVsbHB0cik7CkBAIC03MjMsNyArNzIzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVk
aWFTb3VyY2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICAg
ICAgICAgIC8vIDUuMy41IFJlbW92ZSB0aGUgQXVkaW9UcmFjayBvYmplY3QgZnJvbSB0aGUgU291
cmNlQnVmZmVyIGF1ZGlvVHJhY2tzIGxpc3QuCiAgICAgICAgICAgICAvLyA1LjMuNiBRdWV1ZSBh
IHRhc2sgdG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgcmVtb3ZldHJhY2ssIHRoYXQgZG9l
cyBub3QgYnViYmxlIGFuZCBpcyBub3QKICAgICAgICAgICAgIC8vIGNhbmNlbGFibGUsIGFuZCB0
aGF0IHVzZXMgdGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgU291cmNlQnVmZmVyIGF1
ZGlvVHJhY2tzIGxpc3QuCi0gICAgICAgICAgICBhdWRpb1RyYWNrcy0+cmVtb3ZlKHRyYWNrKTsK
KyAgICAgICAgICAgIGF1ZGlvVHJhY2tzLnJlbW92ZSh0cmFjayk7CiAgICAgICAgIH0KIAogICAg
ICAgICAvLyA1LjQgSWYgdGhlIHJlbW92ZWQgZW5hYmxlZCBhdWRpbyB0cmFjayBmbGFnIGVxdWFs
cyB0cnVlLCB0aGVuIHF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50CkBAIC03MzMs
MTggKzczMywxOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNl
QnVmZmVyKFNvdXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgIH0KIAogICAgIC8vIDYuIExldCBTb3Vy
Y2VCdWZmZXIgdmlkZW9UcmFja3MgbGlzdCBlcXVhbCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0
IHJldHVybmVkIGJ5IHNvdXJjZUJ1ZmZlci52aWRlb1RyYWNrcy4KLSAgICBSZWZQdHI8VmlkZW9U
cmFja0xpc3Q+IHZpZGVvVHJhY2tzID0gYnVmZmVyLnZpZGVvVHJhY2tzKCk7CisgICAgYXV0byYg
dmlkZW9UcmFja3MgPSBidWZmZXIudmlkZW9UcmFja3MoKTsKIAogICAgIC8vIDcuIElmIHRoZSBT
b3VyY2VCdWZmZXIgdmlkZW9UcmFja3MgbGlzdCBpcyBub3QgZW1wdHksIHRoZW4gcnVuIHRoZSBm
b2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKHZpZGVvVHJhY2tzLT5sZW5ndGgoKSkgeworICAgIGlm
ICh2aWRlb1RyYWNrcy5sZW5ndGgoKSkgewogICAgICAgICAvLyA3LjEgTGV0IEhUTUxNZWRpYUVs
ZW1lbnQgdmlkZW9UcmFja3MgbGlzdCBlcXVhbCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0IHJl
dHVybmVkIGJ5IHRoZSB2aWRlb1RyYWNrcwogICAgICAgICAvLyBhdHRyaWJ1dGUgb24gdGhlIEhU
TUxNZWRpYUVsZW1lbnQuCiAgICAgICAgIC8vIDcuMiBMZXQgdGhlIHJlbW92ZWQgc2VsZWN0ZWQg
dmlkZW8gdHJhY2sgZmxhZyBlcXVhbCBmYWxzZS4KICAgICAgICAgYm9vbCByZW1vdmVkU2VsZWN0
ZWRWaWRlb1RyYWNrID0gZmFsc2U7CiAKICAgICAgICAgLy8gNy4zIEZvciBlYWNoIFZpZGVvVHJh
Y2sgb2JqZWN0IGluIHRoZSBTb3VyY2VCdWZmZXIgdmlkZW9UcmFja3MgbGlzdCwgcnVuIHRoZSBm
b2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgIHdoaWxlICh2aWRlb1RyYWNrcy0+bGVuZ3RoKCkpIHsK
LSAgICAgICAgICAgIGF1dG8mIHRyYWNrID0gKnZpZGVvVHJhY2tzLT5sYXN0SXRlbSgpOworICAg
ICAgICB3aGlsZSAodmlkZW9UcmFja3MubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHRy
YWNrID0gKnZpZGVvVHJhY2tzLmxhc3RJdGVtKCk7CiAKICAgICAgICAgICAgIC8vIDcuMy4xIFNl
dCB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGUgVmlkZW9UcmFjayBvYmplY3QgdG8g
bnVsbC4KICAgICAgICAgICAgIHRyYWNrLnNldFNvdXJjZUJ1ZmZlcihudWxscHRyKTsKQEAgLTc2
Myw3ICs3NjMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNl
QnVmZmVyKFNvdXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgICAgICAgICAgLy8gNy4zLjUgUmVtb3Zl
IHRoZSBWaWRlb1RyYWNrIG9iamVjdCBmcm9tIHRoZSBTb3VyY2VCdWZmZXIgdmlkZW9UcmFja3Mg
bGlzdC4KICAgICAgICAgICAgIC8vIDcuMy42IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3Rl
ZCBldmVudCBuYW1lZCByZW1vdmV0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzIG5v
dAogICAgICAgICAgICAgLy8gY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVu
dCBpbnRlcmZhY2UsIGF0IHRoZSBTb3VyY2VCdWZmZXIgdmlkZW9UcmFja3MgbGlzdC4KLSAgICAg
ICAgICAgIHZpZGVvVHJhY2tzLT5yZW1vdmUodHJhY2spOworICAgICAgICAgICAgdmlkZW9UcmFj
a3MucmVtb3ZlKHRyYWNrKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIDcuNCBJZiB0aGUgcmVt
b3ZlZCBzZWxlY3RlZCB2aWRlbyB0cmFjayBmbGFnIGVxdWFscyB0cnVlLCB0aGVuIHF1ZXVlIGEg
dGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50CkBAIC03NzMsMTggKzc3MywxOCBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciYg
YnVmZmVyKQogICAgIH0KIAogICAgIC8vIDguIExldCBTb3VyY2VCdWZmZXIgdGV4dFRyYWNrcyBs
aXN0IGVxdWFsIHRoZSBUZXh0VHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSBzb3VyY2VCdWZm
ZXIudGV4dFRyYWNrcy4KLSAgICBSZWZQdHI8VGV4dFRyYWNrTGlzdD4gdGV4dFRyYWNrcyA9IGJ1
ZmZlci50ZXh0VHJhY2tzKCk7CisgICAgYXV0byYgdGV4dFRyYWNrcyA9IGJ1ZmZlci50ZXh0VHJh
Y2tzKCk7CiAKICAgICAvLyA5LiBJZiB0aGUgU291cmNlQnVmZmVyIHRleHRUcmFja3MgbGlzdCBp
cyBub3QgZW1wdHksIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKHRleHRU
cmFja3MtPmxlbmd0aCgpKSB7CisgICAgaWYgKHRleHRUcmFja3MubGVuZ3RoKCkpIHsKICAgICAg
ICAgLy8gOS4xIExldCBIVE1MTWVkaWFFbGVtZW50IHRleHRUcmFja3MgbGlzdCBlcXVhbCB0aGUg
VGV4dFRyYWNrTGlzdCBvYmplY3QgcmV0dXJuZWQgYnkgdGhlIHRleHRUcmFja3MKICAgICAgICAg
Ly8gYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAgICAgICAvLyA5LjIgTGV0
IHRoZSByZW1vdmVkIGVuYWJsZWQgdGV4dCB0cmFjayBmbGFnIGVxdWFsIGZhbHNlLgogICAgICAg
ICBib29sIHJlbW92ZWRFbmFibGVkVGV4dFRyYWNrID0gZmFsc2U7CiAKICAgICAgICAgLy8gOS4z
IEZvciBlYWNoIFRleHRUcmFjayBvYmplY3QgaW4gdGhlIFNvdXJjZUJ1ZmZlciB0ZXh0VHJhY2tz
IGxpc3QsIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICB3aGlsZSAodGV4dFRyYWNr
cy0+bGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIGF1dG8mIHRyYWNrID0gKnRleHRUcmFja3MtPmxh
c3RJdGVtKCk7CisgICAgICAgIHdoaWxlICh0ZXh0VHJhY2tzLmxlbmd0aCgpKSB7CisgICAgICAg
ICAgICBhdXRvJiB0cmFjayA9ICp0ZXh0VHJhY2tzLmxhc3RJdGVtKCk7CiAKICAgICAgICAgICAg
IC8vIDkuMy4xIFNldCB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGUgVGV4dFRyYWNr
IG9iamVjdCB0byBudWxsLgogICAgICAgICAgICAgdHJhY2suc2V0U291cmNlQnVmZmVyKG51bGxw
dHIpOwpAQCAtODAzLDcgKzgwMyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpy
ZW1vdmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgICAgICAgICAvLyA5
LjMuNSBSZW1vdmUgdGhlIFRleHRUcmFjayBvYmplY3QgZnJvbSB0aGUgU291cmNlQnVmZmVyIHRl
eHRUcmFja3MgbGlzdC4KICAgICAgICAgICAgIC8vIDkuMy42IFF1ZXVlIGEgdGFzayB0byBmaXJl
IGEgdHJ1c3RlZCBldmVudCBuYW1lZCByZW1vdmV0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUg
YW5kIGlzIG5vdAogICAgICAgICAgICAgLy8gY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUg
VHJhY2tFdmVudCBpbnRlcmZhY2UsIGF0IHRoZSBTb3VyY2VCdWZmZXIgdGV4dFRyYWNrcyBsaXN0
LgotICAgICAgICAgICAgdGV4dFRyYWNrcy0+cmVtb3ZlKHRyYWNrKTsKKyAgICAgICAgICAgIHRl
eHRUcmFja3MucmVtb3ZlKHRyYWNrKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIDkuNCBJZiB0
aGUgcmVtb3ZlZCBlbmFibGVkIHRleHQgdHJhY2sgZmxhZyBlcXVhbHMgdHJ1ZSwgdGhlbiBxdWV1
ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IDdmZWU3ZTYwYjIyZTQ0
ODM0MWNhYTA5YWQ5ODk5NjgwOWE1ZTQyNmMuLmQ5YWU1Mjc4NjM1ZWM4ZmFiOGJhN2RmNTJkNzM0
MTRhNTg4M2VlMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC01OSw5ICs1OSw2IEBACiAjaW5jbHVkZSA8cnVu
dGltZS9WTS5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgotI2lmICFMT0dfRElTQUJMRUQKLSNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmg+Ci0jZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MjEs
NyArNDE4LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNlZWtUb1RpbWUoY29uc3QgTWVkaWFUaW1l
JiB0aW1lKQogICAgIH0KIH0KIAotTWVkaWFUaW1lIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVy
UHJpdmF0ZUZhc3RTZWVrVGltZUZvck1lZGlhVGltZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgY29u
c3QgTWVkaWFUaW1lJiB0YXJnZXRUaW1lLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZlVGhyZXNo
b2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKQorTWVkaWFUaW1lIFNvdXJj
ZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUZhc3RTZWVrVGltZUZvck1lZGlhVGltZShjb25z
dCBNZWRpYVRpbWUmIHRhcmdldFRpbWUsIGNvbnN0IE1lZGlhVGltZSYgbmVnYXRpdmVUaHJlc2hv
bGQsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpdmVUaHJlc2hvbGQpCiB7CiAgICAgTWVkaWFUaW1l
IHNlZWtUaW1lID0gdGFyZ2V0VGltZTsKICAgICBNZWRpYVRpbWUgbG93ZXJCb3VuZFRpbWUgPSB0
YXJnZXRUaW1lIC0gbmVnYXRpdmVUaHJlc2hvbGQ7CkBAIC01NjYsNyArNTYzLDcgQEAgdm9pZCBT
b3VyY2VCdWZmZXI6OmFwcGVuZEJ1ZmZlclRpbWVyRmlyZWQoKQogCiAgICAgLy8gMS4gTG9vcCBU
b3A6IElmIHRoZSBpbnB1dCBidWZmZXIgaXMgZW1wdHksIHRoZW4ganVtcCB0byB0aGUgbmVlZCBt
b3JlIGRhdGEgc3RlcCBiZWxvdy4KICAgICBpZiAoIW1fcGVuZGluZ0FwcGVuZERhdGEuc2l6ZSgp
KSB7Ci0gICAgICAgIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSgmbV9wcml2YXRl
LmdldCgpLCBBcHBlbmRTdWNjZWVkZWQpOworICAgICAgICBzb3VyY2VCdWZmZXJQcml2YXRlQXBw
ZW5kQ29tcGxldGUoQXBwZW5kU3VjY2VlZGVkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtNTc0LDcgKzU3MSw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZp
cmVkKCkKICAgICBtX3BlbmRpbmdBcHBlbmREYXRhLmNsZWFyKCk7CiB9CiAKLXZvaWQgU291cmNl
QnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJp
dmF0ZSosIEFwcGVuZFJlc3VsdCByZXN1bHQpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVm
ZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKEFwcGVuZFJlc3VsdCByZXN1bHQpCiB7CiAgICAgaWYg
KGlzUmVtb3ZlZCgpKQogICAgICAgICByZXR1cm47CkBAIC02MzUsNyArNjMyLDcgQEAgdm9pZCBT
b3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZm
ZXJQcml2YXRlKiwgQXBwZW4KICAgICBMT0coTWVkaWEsICJTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1
ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSglcCkgLSBidWZmZXJlZCA9ICVzIiwgdGhpcywgdG9T
dHJpbmcobV9idWZmZXJlZC0+cmFuZ2VzKCkpLnV0ZjgoKS5kYXRhKCkpOwogfQogCi12b2lkIFNv
dXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihT
b3VyY2VCdWZmZXJQcml2YXRlKiwgaW50IGVycm9yKQordm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJj
ZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoaW50IGVycm9yKQogewogI2lm
IExPR19ESVNBQkxFRAogICAgIFVOVVNFRF9QQVJBTShlcnJvcik7CkBAIC05NDUsMzUgKzk0Miwz
MiBAQCBzaXplX3QgU291cmNlQnVmZmVyOjptYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAgICAg
aWYgKGlzUmVtb3ZlZCgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIEhUTUxNZWRpYUVsZW1l
bnQqIGVsZW1lbnQgPSBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCk7CisgICAgYXV0byogZWxlbWVu
dCA9IG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKTsKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAg
IHJldHVybiAwOwogCiAgICAgcmV0dXJuIGVsZW1lbnQtPm1heGltdW1Tb3VyY2VCdWZmZXJTaXpl
KCp0aGlzKTsKIH0KIAotVmlkZW9UcmFja0xpc3QqIFNvdXJjZUJ1ZmZlcjo6dmlkZW9UcmFja3Mo
KQorVmlkZW9UcmFja0xpc3QmIFNvdXJjZUJ1ZmZlcjo6dmlkZW9UcmFja3MoKQogewogICAgIGlm
ICghbV92aWRlb1RyYWNrcykKLSAgICAgICAgbV92aWRlb1RyYWNrcyA9IFZpZGVvVHJhY2tMaXN0
OjpjcmVhdGUobV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLCBBY3RpdmVET01PYmplY3Q6OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0KLSAgICByZXR1cm4gbV92aWRlb1RyYWNrcy5nZXQoKTsK
KyAgICAgICAgbV92aWRlb1RyYWNrcyA9IFZpZGVvVHJhY2tMaXN0OjpjcmVhdGUobV9zb3VyY2Ut
Pm1lZGlhRWxlbWVudCgpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIHJldHVybiAq
bV92aWRlb1RyYWNrczsKIH0KIAotQXVkaW9UcmFja0xpc3QqIFNvdXJjZUJ1ZmZlcjo6YXVkaW9U
cmFja3MoKQorQXVkaW9UcmFja0xpc3QmIFNvdXJjZUJ1ZmZlcjo6YXVkaW9UcmFja3MoKQogewog
ICAgIGlmICghbV9hdWRpb1RyYWNrcykKLSAgICAgICAgbV9hdWRpb1RyYWNrcyA9IEF1ZGlvVHJh
Y2tMaXN0OjpjcmVhdGUobV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLCBBY3RpdmVET01PYmplY3Q6
OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0KLSAgICByZXR1cm4gbV9hdWRpb1RyYWNrcy5n
ZXQoKTsKKyAgICAgICAgbV9hdWRpb1RyYWNrcyA9IEF1ZGlvVHJhY2tMaXN0OjpjcmVhdGUobV9z
b3VyY2UtPm1lZGlhRWxlbWVudCgpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIHJl
dHVybiAqbV9hdWRpb1RyYWNrczsKIH0KIAotVGV4dFRyYWNrTGlzdCogU291cmNlQnVmZmVyOjp0
ZXh0VHJhY2tzKCkKK1RleHRUcmFja0xpc3QmIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrcygpCiB7
CiAgICAgaWYgKCFtX3RleHRUcmFja3MpCi0gICAgICAgIG1fdGV4dFRyYWNrcyA9IFRleHRUcmFj
a0xpc3Q6OmNyZWF0ZShtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCksIEFjdGl2ZURPTU9iamVjdDo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLQotICAgIHJldHVybiBtX3RleHRUcmFja3MuZ2V0
KCk7CisgICAgICAgIG1fdGV4dFRyYWNrcyA9IFRleHRUcmFja0xpc3Q6OmNyZWF0ZShtX3NvdXJj
ZS0+bWVkaWFFbGVtZW50KCksIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgcmV0dXJu
ICptX3RleHRUcmFja3M7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyOjpzZXRBY3RpdmUoYm9vbCBh
Y3RpdmUpCkBAIC05ODcsNyArOTgxLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNldEFjdGl2ZShi
b29sIGFjdGl2ZSkKICAgICAgICAgbV9zb3VyY2UtPnNvdXJjZUJ1ZmZlckRpZENoYW5nZUFjdGl2
ZVN0YXRlKCp0aGlzLCBhY3RpdmUpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJp
dmF0ZSosIGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYgc2VnbWVudCkKK3ZvaWQgU291cmNl
QnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVu
dChjb25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmIHNlZ21lbnQpCiB7CiAgICAgaWYgKGlzUmVt
b3ZlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0xMDI0LDQwICsxMDE4LDQwIEBAIHZvaWQgU291
cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2Vn
bWVudChTb3VyY2VCdWZmCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAg
Ly8gMy4yIEFkZCB0aGUgYXBwcm9wcmlhdGUgdHJhY2sgZGVzY3JpcHRpb25zIGZyb20gdGhpcyBp
bml0aWFsaXphdGlvbiBzZWdtZW50IHRvIGVhY2ggb2YgdGhlIHRyYWNrIGJ1ZmZlcnMuCi0gICAg
ICAgIEFTU0VSVChzZWdtZW50LmF1ZGlvVHJhY2tzLnNpemUoKSA9PSBhdWRpb1RyYWNrcygpLT5s
ZW5ndGgoKSk7CisgICAgICAgIEFTU0VSVChzZWdtZW50LmF1ZGlvVHJhY2tzLnNpemUoKSA9PSBh
dWRpb1RyYWNrcygpLmxlbmd0aCgpKTsKICAgICAgICAgZm9yIChhdXRvJiBhdWRpb1RyYWNrSW5m
byA6IHNlZ21lbnQuYXVkaW9UcmFja3MpIHsKLSAgICAgICAgICAgIGlmIChhdWRpb1RyYWNrcygp
LT5sZW5ndGgoKSA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgYXVkaW9UcmFja3MoKS0+aXRlbSgw
KS0+c2V0UHJpdmF0ZShhdWRpb1RyYWNrSW5mby50cmFjayk7CisgICAgICAgICAgICBpZiAoYXVk
aW9UcmFja3MoKS5sZW5ndGgoKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgYXVkaW9UcmFja3Mo
KS5pdGVtKDApLT5zZXRQcml2YXRlKCphdWRpb1RyYWNrSW5mby50cmFjayk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGF1dG8gYXVkaW9UcmFj
ayA9IGF1ZGlvVHJhY2tzKCktPmdldFRyYWNrQnlJZChhdWRpb1RyYWNrSW5mby50cmFjay0+aWQo
KSk7CisgICAgICAgICAgICBhdXRvIGF1ZGlvVHJhY2sgPSBhdWRpb1RyYWNrcygpLmdldFRyYWNr
QnlJZChhdWRpb1RyYWNrSW5mby50cmFjay0+aWQoKSk7CiAgICAgICAgICAgICBBU1NFUlQoYXVk
aW9UcmFjayk7Ci0gICAgICAgICAgICBhdWRpb1RyYWNrLT5zZXRQcml2YXRlKGF1ZGlvVHJhY2tJ
bmZvLnRyYWNrKTsKKyAgICAgICAgICAgIGF1ZGlvVHJhY2stPnNldFByaXZhdGUoKmF1ZGlvVHJh
Y2tJbmZvLnRyYWNrKTsKICAgICAgICAgfQogCi0gICAgICAgIEFTU0VSVChzZWdtZW50LnZpZGVv
VHJhY2tzLnNpemUoKSA9PSB2aWRlb1RyYWNrcygpLT5sZW5ndGgoKSk7CisgICAgICAgIEFTU0VS
VChzZWdtZW50LnZpZGVvVHJhY2tzLnNpemUoKSA9PSB2aWRlb1RyYWNrcygpLmxlbmd0aCgpKTsK
ICAgICAgICAgZm9yIChhdXRvJiB2aWRlb1RyYWNrSW5mbyA6IHNlZ21lbnQudmlkZW9UcmFja3Mp
IHsKLSAgICAgICAgICAgIGlmICh2aWRlb1RyYWNrcygpLT5sZW5ndGgoKSA9PSAxKSB7Ci0gICAg
ICAgICAgICAgICAgdmlkZW9UcmFja3MoKS0+aXRlbSgwKS0+c2V0UHJpdmF0ZSh2aWRlb1RyYWNr
SW5mby50cmFjayk7CisgICAgICAgICAgICBpZiAodmlkZW9UcmFja3MoKS5sZW5ndGgoKSA9PSAx
KSB7CisgICAgICAgICAgICAgICAgdmlkZW9UcmFja3MoKS5pdGVtKDApLT5zZXRQcml2YXRlKCp2
aWRlb1RyYWNrSW5mby50cmFjayk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICB9CiAKLSAgICAgICAgICAgIGF1dG8gdmlkZW9UcmFjayA9IHZpZGVvVHJhY2tzKCktPmdldFRy
YWNrQnlJZCh2aWRlb1RyYWNrSW5mby50cmFjay0+aWQoKSk7CisgICAgICAgICAgICBhdXRvIHZp
ZGVvVHJhY2sgPSB2aWRlb1RyYWNrcygpLmdldFRyYWNrQnlJZCh2aWRlb1RyYWNrSW5mby50cmFj
ay0+aWQoKSk7CiAgICAgICAgICAgICBBU1NFUlQodmlkZW9UcmFjayk7Ci0gICAgICAgICAgICB2
aWRlb1RyYWNrLT5zZXRQcml2YXRlKHZpZGVvVHJhY2tJbmZvLnRyYWNrKTsKKyAgICAgICAgICAg
IHZpZGVvVHJhY2stPnNldFByaXZhdGUoKnZpZGVvVHJhY2tJbmZvLnRyYWNrKTsKICAgICAgICAg
fQogCi0gICAgICAgIEFTU0VSVChzZWdtZW50LnRleHRUcmFja3Muc2l6ZSgpID09IHRleHRUcmFj
a3MoKS0+bGVuZ3RoKCkpOworICAgICAgICBBU1NFUlQoc2VnbWVudC50ZXh0VHJhY2tzLnNpemUo
KSA9PSB0ZXh0VHJhY2tzKCkubGVuZ3RoKCkpOwogICAgICAgICBmb3IgKGF1dG8mIHRleHRUcmFj
a0luZm8gOiBzZWdtZW50LnRleHRUcmFja3MpIHsKLSAgICAgICAgICAgIGlmICh0ZXh0VHJhY2tz
KCktPmxlbmd0aCgpID09IDEpIHsKLSAgICAgICAgICAgICAgICBkb3duY2FzdDxJbmJhbmRUZXh0
VHJhY2s+KCp0ZXh0VHJhY2tzKCktPml0ZW0oMCkpLnNldFByaXZhdGUodGV4dFRyYWNrSW5mby50
cmFjayk7CisgICAgICAgICAgICBpZiAodGV4dFRyYWNrcygpLmxlbmd0aCgpID09IDEpIHsKKyAg
ICAgICAgICAgICAgICBkb3duY2FzdDxJbmJhbmRUZXh0VHJhY2s+KCp0ZXh0VHJhY2tzKCkuaXRl
bSgwKSkuc2V0UHJpdmF0ZSgqdGV4dFRyYWNrSW5mby50cmFjayk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGF1dG8gdGV4dFRyYWNrID0gdGV4
dFRyYWNrcygpLT5nZXRUcmFja0J5SWQodGV4dFRyYWNrSW5mby50cmFjay0+aWQoKSk7CisgICAg
ICAgICAgICBhdXRvIHRleHRUcmFjayA9IHRleHRUcmFja3MoKS5nZXRUcmFja0J5SWQodGV4dFRy
YWNrSW5mby50cmFjay0+aWQoKSk7CiAgICAgICAgICAgICBBU1NFUlQodGV4dFRyYWNrKTsKLSAg
ICAgICAgICAgIGRvd25jYXN0PEluYmFuZFRleHRUcmFjaz4oKnRleHRUcmFjaykuc2V0UHJpdmF0
ZSh0ZXh0VHJhY2tJbmZvLnRyYWNrKTsKKyAgICAgICAgICAgIGRvd25jYXN0PEluYmFuZFRleHRU
cmFjaz4oKnRleHRUcmFjaykuc2V0UHJpdmF0ZSgqdGV4dFRyYWNrSW5mby50cmFjayk7CiAgICAg
ICAgIH0KIAogICAgICAgICAvLyAzLjMgU2V0IHRoZSBuZWVkIHJhbmRvbSBhY2Nlc3MgcG9pbnQg
ZmxhZyBvbiBhbGwgdHJhY2sgYnVmZmVycyB0byB0cnVlLgpAQCAtMTA3NiwxNiArMTA3MCwxNCBA
QCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFs
aXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogCiAgICAgICAgIC8vIDUuMiBGb3IgZWFjaCBhdWRp
byB0cmFjayBpbiB0aGUgaW5pdGlhbGl6YXRpb24gc2VnbWVudCwgcnVuIGZvbGxvd2luZyBzdGVw
czoKICAgICAgICAgZm9yIChhdXRvJiBhdWRpb1RyYWNrSW5mbyA6IHNlZ21lbnQuYXVkaW9UcmFj
a3MpIHsKLSAgICAgICAgICAgIEF1ZGlvVHJhY2tQcml2YXRlKiBhdWRpb1RyYWNrUHJpdmF0ZSA9
IGF1ZGlvVHJhY2tJbmZvLnRyYWNrLmdldCgpOwotCiAgICAgICAgICAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHN0ZXBzIDUuMi4xLTUuMi44LjEgYXMgcGVyIEVkaXRvcidzIERyYWZ0IDA5IEphbnVh
cnkgMjAxNSwgYW5kIHJlb3JkZXIgdGhpcwogICAgICAgICAgICAgLy8gNS4yLjEgTGV0IG5ldyBh
dWRpbyB0cmFjayBiZSBhIG5ldyBBdWRpb1RyYWNrIG9iamVjdC4KICAgICAgICAgICAgIC8vIDUu
Mi4yIEdlbmVyYXRlIGEgdW5pcXVlIElEIGFuZCBhc3NpZ24gaXQgdG8gdGhlIGlkIHByb3BlcnR5
IG9uIG5ldyB2aWRlbyB0cmFjay4KLSAgICAgICAgICAgIGF1dG8gbmV3QXVkaW9UcmFjayA9IEF1
ZGlvVHJhY2s6OmNyZWF0ZSh0aGlzLCBhdWRpb1RyYWNrUHJpdmF0ZSk7CisgICAgICAgICAgICBh
dXRvIG5ld0F1ZGlvVHJhY2sgPSBBdWRpb1RyYWNrOjpjcmVhdGUoKnRoaXMsICphdWRpb1RyYWNr
SW5mby50cmFjayk7CiAgICAgICAgICAgICBuZXdBdWRpb1RyYWNrLT5zZXRTb3VyY2VCdWZmZXIo
dGhpcyk7CiAKICAgICAgICAgICAgIC8vIDUuMi4zIElmIGF1ZGlvVHJhY2tzLmxlbmd0aCBlcXVh
bHMgMCwgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAgICAgICAgIGlmICghYXVk
aW9UcmFja3MoKS0+bGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGlmICghYXVkaW9UcmFja3MoKS5s
ZW5ndGgoKSkgewogICAgICAgICAgICAgICAgIC8vIDUuMi4zLjEgU2V0IHRoZSBlbmFibGVkIHBy
b3BlcnR5IG9uIG5ldyBhdWRpbyB0cmFjayB0byB0cnVlLgogICAgICAgICAgICAgICAgIG5ld0F1
ZGlvVHJhY2stPnNldEVuYWJsZWQodHJ1ZSk7CiAKQEAgLTEwOTcsNyArMTA4OSw3IEBAIHZvaWQg
U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9u
U2VnbWVudChTb3VyY2VCdWZmCiAgICAgICAgICAgICAvLyA1LjIuNSBRdWV1ZSBhIHRhc2sgdG8g
ZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgYWRkdHJhY2ssIHRoYXQgZG9lcyBub3QgYnViYmxl
IGFuZCBpcwogICAgICAgICAgICAgLy8gbm90IGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMgdGhl
IFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgQXVkaW9UcmFja0xpc3Qgb2JqZWN0CiAgICAg
ICAgICAgICAvLyByZWZlcmVuY2VkIGJ5IHRoZSBhdWRpb1RyYWNrcyBhdHRyaWJ1dGUgb24gdGhp
cyBTb3VyY2VCdWZmZXIgb2JqZWN0LgotICAgICAgICAgICAgYXVkaW9UcmFja3MoKS0+YXBwZW5k
KG5ld0F1ZGlvVHJhY2suY29weVJlZigpKTsKKyAgICAgICAgICAgIGF1ZGlvVHJhY2tzKCkuYXBw
ZW5kKG5ld0F1ZGlvVHJhY2suY29weVJlZigpKTsKIAogICAgICAgICAgICAgLy8gNS4yLjYgQWRk
IG5ldyBhdWRpbyB0cmFjayB0byB0aGUgYXVkaW9UcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1M
TWVkaWFFbGVtZW50LgogICAgICAgICAgICAgLy8gNS4yLjcgUXVldWUgYSB0YXNrIHRvIGZpcmUg
YSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQg
aXMKQEAgLTExMDcsNyArMTA5OSw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQ
cml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmCiAKICAgICAg
ICAgICAgIC8vIDUuMi44IENyZWF0ZSBhIG5ldyB0cmFjayBidWZmZXIgdG8gc3RvcmUgY29kZWQg
ZnJhbWVzIGZvciB0aGlzIHRyYWNrLgogICAgICAgICAgICAgQVNTRVJUKCFtX3RyYWNrQnVmZmVy
TWFwLmNvbnRhaW5zKG5ld0F1ZGlvVHJhY2stPmlkKCkpKTsKLSAgICAgICAgICAgIFRyYWNrQnVm
ZmVyJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKG5ld0F1ZGlvVHJhY2stPmlk
KCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgICAgIGF1dG8mIHRy
YWNrQnVmZmVyID0gbV90cmFja0J1ZmZlck1hcC5hZGQobmV3QXVkaW9UcmFjay0+aWQoKSwgVHJh
Y2tCdWZmZXIoKSkuaXRlcmF0b3ItPnZhbHVlOwogCiAgICAgICAgICAgICAvLyA1LjIuOSBBZGQg
dGhlIHRyYWNrIGRlc2NyaXB0aW9uIGZvciB0aGlzIHRyYWNrIHRvIHRoZSB0cmFjayBidWZmZXIu
CiAgICAgICAgICAgICB0cmFja0J1ZmZlci5kZXNjcmlwdGlvbiA9IGF1ZGlvVHJhY2tJbmZvLmRl
c2NyaXB0aW9uOwpAQCAtMTExNywxNiArMTEwOSwxNCBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291
cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVm
ZgogCiAgICAgICAgIC8vIDUuMyBGb3IgZWFjaCB2aWRlbyB0cmFjayBpbiB0aGUgaW5pdGlhbGl6
YXRpb24gc2VnbWVudCwgcnVuIGZvbGxvd2luZyBzdGVwczoKICAgICAgICAgZm9yIChhdXRvJiB2
aWRlb1RyYWNrSW5mbyA6IHNlZ21lbnQudmlkZW9UcmFja3MpIHsKLSAgICAgICAgICAgIFZpZGVv
VHJhY2tQcml2YXRlKiB2aWRlb1RyYWNrUHJpdmF0ZSA9IHZpZGVvVHJhY2tJbmZvLnRyYWNrLmdl
dCgpOwotCiAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHN0ZXBzIDUuMy4xLTUuMy44
LjEgYXMgcGVyIEVkaXRvcidzIERyYWZ0IDA5IEphbnVhcnkgMjAxNSwgYW5kIHJlb3JkZXIgdGhp
cwogICAgICAgICAgICAgLy8gNS4zLjEgTGV0IG5ldyB2aWRlbyB0cmFjayBiZSBhIG5ldyBWaWRl
b1RyYWNrIG9iamVjdC4KICAgICAgICAgICAgIC8vIDUuMy4yIEdlbmVyYXRlIGEgdW5pcXVlIElE
IGFuZCBhc3NpZ24gaXQgdG8gdGhlIGlkIHByb3BlcnR5IG9uIG5ldyB2aWRlbyB0cmFjay4KLSAg
ICAgICAgICAgIGF1dG8gbmV3VmlkZW9UcmFjayA9IFZpZGVvVHJhY2s6OmNyZWF0ZSh0aGlzLCB2
aWRlb1RyYWNrUHJpdmF0ZSk7CisgICAgICAgICAgICBhdXRvIG5ld1ZpZGVvVHJhY2sgPSBWaWRl
b1RyYWNrOjpjcmVhdGUoKnRoaXMsICp2aWRlb1RyYWNrSW5mby50cmFjayk7CiAgICAgICAgICAg
ICBuZXdWaWRlb1RyYWNrLT5zZXRTb3VyY2VCdWZmZXIodGhpcyk7CiAKICAgICAgICAgICAgIC8v
IDUuMy4zIElmIHZpZGVvVHJhY2tzLmxlbmd0aCBlcXVhbHMgMCwgdGhlbiBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczoKLSAgICAgICAgICAgIGlmICghdmlkZW9UcmFja3MoKS0+bGVuZ3RoKCkpIHsK
KyAgICAgICAgICAgIGlmICghdmlkZW9UcmFja3MoKS5sZW5ndGgoKSkgewogICAgICAgICAgICAg
ICAgIC8vIDUuMy4zLjEgU2V0IHRoZSBzZWxlY3RlZCBwcm9wZXJ0eSBvbiBuZXcgdmlkZW8gdHJh
Y2sgdG8gdHJ1ZS4KICAgICAgICAgICAgICAgICBuZXdWaWRlb1RyYWNrLT5zZXRTZWxlY3RlZCh0
cnVlKTsKIApAQCAtMTEzOCw3ICsxMTI4LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1
ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKICAg
ICAgICAgICAgIC8vIDUuMy41IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBu
YW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCiAgICAgICAgICAgICAv
LyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZhY2Us
IGF0IHRoZSBWaWRlb1RyYWNrTGlzdCBvYmplY3QKICAgICAgICAgICAgIC8vIHJlZmVyZW5jZWQg
YnkgdGhlIHZpZGVvVHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGlzIFNvdXJjZUJ1ZmZlciBvYmplY3Qu
Ci0gICAgICAgICAgICB2aWRlb1RyYWNrcygpLT5hcHBlbmQobmV3VmlkZW9UcmFjay5jb3B5UmVm
KCkpOworICAgICAgICAgICAgdmlkZW9UcmFja3MoKS5hcHBlbmQobmV3VmlkZW9UcmFjay5jb3B5
UmVmKCkpOwogCiAgICAgICAgICAgICAvLyA1LjMuNiBBZGQgbmV3IHZpZGVvIHRyYWNrIHRvIHRo
ZSB2aWRlb1RyYWNrcyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgICAg
ICAgICAvLyA1LjMuNyBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQg
YWRkdHJhY2ssIHRoYXQgZG9lcyBub3QgYnViYmxlIGFuZCBpcwpAQCAtMTE0OCw3ICsxMTM4LDcg
QEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlh
bGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKIAogICAgICAgICAgICAgLy8gNS4zLjggQ3JlYXRl
IGEgbmV3IHRyYWNrIGJ1ZmZlciB0byBzdG9yZSBjb2RlZCBmcmFtZXMgZm9yIHRoaXMgdHJhY2su
CiAgICAgICAgICAgICBBU1NFUlQoIW1fdHJhY2tCdWZmZXJNYXAuY29udGFpbnMobmV3VmlkZW9U
cmFjay0+aWQoKSkpOwotICAgICAgICAgICAgVHJhY2tCdWZmZXImIHRyYWNrQnVmZmVyID0gbV90
cmFja0J1ZmZlck1hcC5hZGQobmV3VmlkZW9UcmFjay0+aWQoKSwgVHJhY2tCdWZmZXIoKSkuaXRl
cmF0b3ItPnZhbHVlOworICAgICAgICAgICAgYXV0byYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVm
ZmVyTWFwLmFkZChuZXdWaWRlb1RyYWNrLT5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+
dmFsdWU7CiAKICAgICAgICAgICAgIC8vIDUuMy45IEFkZCB0aGUgdHJhY2sgZGVzY3JpcHRpb24g
Zm9yIHRoaXMgdHJhY2sgdG8gdGhlIHRyYWNrIGJ1ZmZlci4KICAgICAgICAgICAgIHRyYWNrQnVm
ZmVyLmRlc2NyaXB0aW9uID0gdmlkZW9UcmFja0luZm8uZGVzY3JpcHRpb247CkBAIC0xMTU4LDMz
ICsxMTQ4LDMzIEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVj
ZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmCiAKICAgICAgICAgLy8gNS40IEZv
ciBlYWNoIHRleHQgdHJhY2sgaW4gdGhlIGluaXRpYWxpemF0aW9uIHNlZ21lbnQsIHJ1biBmb2xs
b3dpbmcgc3RlcHM6CiAgICAgICAgIGZvciAoYXV0byYgdGV4dFRyYWNrSW5mbyA6IHNlZ21lbnQu
dGV4dFRyYWNrcykgewotICAgICAgICAgICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSogdGV4dFRy
YWNrUHJpdmF0ZSA9IHRleHRUcmFja0luZm8udHJhY2suZ2V0KCk7CisgICAgICAgICAgICBhdXRv
JiB0ZXh0VHJhY2tQcml2YXRlID0gKnRleHRUcmFja0luZm8udHJhY2s7CiAKICAgICAgICAgICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgc3RlcHMgNS40LjEtNS40LjguMSBhcyBwZXIgRWRpdG9yJ3Mg
RHJhZnQgMDkgSmFudWFyeSAyMDE1LCBhbmQgcmVvcmRlciB0aGlzCiAgICAgICAgICAgICAvLyA1
LjQuMSBMZXQgbmV3IHRleHQgdHJhY2sgYmUgYSBuZXcgVGV4dFRyYWNrIG9iamVjdCB3aXRoIGl0
cyBwcm9wZXJ0aWVzIHBvcHVsYXRlZCB3aXRoIHRoZQogICAgICAgICAgICAgLy8gYXBwcm9wcmlh
dGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgaW5pdGlhbGl6YXRpb24gc2VnbWVudC4KLSAgICAgICAg
ICAgIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2s+IG5ld1RleHRUcmFjayA9IEluYmFuZFRleHRUcmFj
azo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgdGhpcywgdGV4dFRyYWNrUHJpdmF0
ZSk7CisgICAgICAgICAgICBhdXRvIG5ld1RleHRUcmFjayA9IEluYmFuZFRleHRUcmFjazo6Y3Jl
YXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzLCB0ZXh0VHJhY2tQcml2YXRlKTsK
IAogICAgICAgICAgICAgLy8gNS40LjIgSWYgdGhlIG1vZGUgcHJvcGVydHkgb24gbmV3IHRleHQg
dHJhY2sgZXF1YWxzICJzaG93aW5nIiBvciAiaGlkZGVuIiwgdGhlbiBzZXQgYWN0aXZlCiAgICAg
ICAgICAgICAvLyB0cmFjayBmbGFnIHRvIHRydWUuCi0gICAgICAgICAgICBpZiAodGV4dFRyYWNr
UHJpdmF0ZS0+bW9kZSgpICE9IEluYmFuZFRleHRUcmFja1ByaXZhdGU6OkRpc2FibGVkKQorICAg
ICAgICAgICAgaWYgKHRleHRUcmFja1ByaXZhdGUubW9kZSgpICE9IEluYmFuZFRleHRUcmFja1By
aXZhdGU6OkRpc2FibGVkKQogICAgICAgICAgICAgICAgIGFjdGl2ZVRyYWNrRmxhZyA9IHRydWU7
CiAKICAgICAgICAgICAgIC8vIDUuNC4zIEFkZCBuZXcgdGV4dCB0cmFjayB0byB0aGUgdGV4dFRy
YWNrcyBhdHRyaWJ1dGUgb24gdGhpcyBTb3VyY2VCdWZmZXIgb2JqZWN0LgogICAgICAgICAgICAg
Ly8gNS40LjQgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRy
YWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMKICAgICAgICAgICAgIC8vIG5vdCBjYW5j
ZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGludGVyZmFjZSwgYXQgdGV4dFRy
YWNrcyBhdHRyaWJ1dGUgb24gdGhpcwogICAgICAgICAgICAgLy8gU291cmNlQnVmZmVyIG9iamVj
dC4KLSAgICAgICAgICAgIHRleHRUcmFja3MoKS0+YXBwZW5kKCpuZXdUZXh0VHJhY2spOworICAg
ICAgICAgICAgdGV4dFRyYWNrcygpLmFwcGVuZChuZXdUZXh0VHJhY2suZ2V0KCkpOwogCiAgICAg
ICAgICAgICAvLyA1LjQuNSBBZGQgbmV3IHRleHQgdHJhY2sgdG8gdGhlIHRleHRUcmFja3MgYXR0
cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAgICAgICAgICAgLy8gNS40LjYgUXVl
dWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRyYWNrLCB0aGF0IGRv
ZXMgbm90IGJ1YmJsZSBhbmQgaXMKICAgICAgICAgICAgIC8vIG5vdCBjYW5jZWxhYmxlLCBhbmQg
dGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGludGVyZmFjZSwgYXQgdGhlIFRleHRUcmFja0xpc3Qg
b2JqZWN0CiAgICAgICAgICAgICAvLyByZWZlcmVuY2VkIGJ5IHRoZSB0ZXh0VHJhY2tzIGF0dHJp
YnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KLSAgICAgICAgICAgIG1fc291cmNlLT5tZWRp
YUVsZW1lbnQoKS0+dGV4dFRyYWNrcygpLmFwcGVuZChuZXdUZXh0VHJhY2sucmVsZWFzZU5vbk51
bGwoKSk7CisgICAgICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja3Mo
KS5hcHBlbmQoV1RGTW92ZShuZXdUZXh0VHJhY2spKTsKIAogICAgICAgICAgICAgLy8gNS40Ljcg
Q3JlYXRlIGEgbmV3IHRyYWNrIGJ1ZmZlciB0byBzdG9yZSBjb2RlZCBmcmFtZXMgZm9yIHRoaXMg
dHJhY2suCi0gICAgICAgICAgICBBU1NFUlQoIW1fdHJhY2tCdWZmZXJNYXAuY29udGFpbnModGV4
dFRyYWNrUHJpdmF0ZS0+aWQoKSkpOwotICAgICAgICAgICAgVHJhY2tCdWZmZXImIHRyYWNrQnVm
ZmVyID0gbV90cmFja0J1ZmZlck1hcC5hZGQodGV4dFRyYWNrUHJpdmF0ZS0+aWQoKSwgVHJhY2tC
dWZmZXIoKSkuaXRlcmF0b3ItPnZhbHVlOworICAgICAgICAgICAgQVNTRVJUKCFtX3RyYWNrQnVm
ZmVyTWFwLmNvbnRhaW5zKHRleHRUcmFja1ByaXZhdGUuaWQoKSkpOworICAgICAgICAgICAgYXV0
byYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVmZmVyTWFwLmFkZCh0ZXh0VHJhY2tQcml2YXRlLmlk
KCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKIAogICAgICAgICAgICAgLy8gNS40
LjggQWRkIHRoZSB0cmFjayBkZXNjcmlwdGlvbiBmb3IgdGhpcyB0cmFjayB0byB0aGUgdHJhY2sg
YnVmZmVyLgogICAgICAgICAgICAgdHJhY2tCdWZmZXIuZGVzY3JpcHRpb24gPSB0ZXh0VHJhY2tJ
bmZvLmRlc2NyaXB0aW9uOwpAQCAtMTIzMSw5ICsxMjIxLDkgQEAgYm9vbCBTb3VyY2VCdWZmZXI6
OnZhbGlkYXRlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVu
dCYgc2UKIAogICAgIC8vIE5vdGU6IHRob3NlIGFyZSBjaGVja3MgZnJvbSBzdGVwIDMuMQogICAg
IC8vICAgKiBUaGUgbnVtYmVyIG9mIGF1ZGlvLCB2aWRlbywgYW5kIHRleHQgdHJhY2tzIG1hdGNo
IHdoYXQgd2FzIGluIHRoZSBmaXJzdCBpbml0aWFsaXphdGlvbiBzZWdtZW50LgotICAgIGlmIChz
ZWdtZW50LmF1ZGlvVHJhY2tzLnNpemUoKSAhPSBhdWRpb1RyYWNrcygpLT5sZW5ndGgoKQotICAg
ICAgICB8fCBzZWdtZW50LnZpZGVvVHJhY2tzLnNpemUoKSAhPSB2aWRlb1RyYWNrcygpLT5sZW5n
dGgoKQotICAgICAgICB8fCBzZWdtZW50LnRleHRUcmFja3Muc2l6ZSgpICE9IHRleHRUcmFja3Mo
KS0+bGVuZ3RoKCkpCisgICAgaWYgKHNlZ21lbnQuYXVkaW9UcmFja3Muc2l6ZSgpICE9IGF1ZGlv
VHJhY2tzKCkubGVuZ3RoKCkKKyAgICAgICAgfHwgc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkg
IT0gdmlkZW9UcmFja3MoKS5sZW5ndGgoKQorICAgICAgICB8fCBzZWdtZW50LnRleHRUcmFja3Mu
c2l6ZSgpICE9IHRleHRUcmFja3MoKS5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgLy8gICAqIFRoZSBjb2RlY3MgZm9yIGVhY2ggdHJhY2ssIG1hdGNoIHdoYXQgd2FzIHNw
ZWNpZmllZCBpbiB0aGUgZmlyc3QgaW5pdGlhbGl6YXRpb24gc2VnbWVudC4KQEAgLTEzMTksNyAr
MTMwOSw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRFcnJvcihib29sIGRlY29kZUVycm9y
UGFyYW0pCiAgICAgICAgIG1fc291cmNlLT5zdHJlYW1FbmRlZFdpdGhFcnJvcihNZWRpYVNvdXJj
ZTo6RW5kT2ZTdHJlYW1FcnJvcjo6RGVjb2RlKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNv
dXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBN
ZWRpYVNhbXBsZSYgc2FtcGxlKQordm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZh
dGVEaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiB7CiAgICAgaWYgKGlzUmVt
b3ZlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0xNjY2LDMwICsxNjU2LDMwIEBAIGJvb2wgU291
cmNlQnVmZmVyOjpoYXNWaWRlbygpIGNvbnN0CiAgICAgcmV0dXJuIG1fdmlkZW9UcmFja3MgJiYg
bV92aWRlb1RyYWNrcy0+bGVuZ3RoKCk7CiB9CiAKLWJvb2wgU291cmNlQnVmZmVyOjpzb3VyY2VC
dWZmZXJQcml2YXRlSGFzQXVkaW8oY29uc3QgU291cmNlQnVmZmVyUHJpdmF0ZSopIGNvbnN0Citi
b29sIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gaGFzQXVkaW8oKTsKIH0KIAotYm9vbCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1
ZmZlclByaXZhdGVIYXNWaWRlbyhjb25zdCBTb3VyY2VCdWZmZXJQcml2YXRlKikgY29uc3QKK2Jv
b2wgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8oKSBjb25zdAogewog
ICAgIHJldHVybiBoYXNWaWRlbygpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dmlkZW9UcmFj
a1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrKiB0cmFjaykKK3ZvaWQgU291cmNlQnVmZmVyOjp2
aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2smIHRyYWNrKQogewogICAgIC8vIDIu
NC41IENoYW5nZXMgdG8gc2VsZWN0ZWQvZW5hYmxlZCB0cmFjayBzdGF0ZQogICAgIC8vIElmIHRo
ZSBzZWxlY3RlZCB2aWRlbyB0cmFjayBjaGFuZ2VzLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0
ZXBzOgogICAgIC8vIDEuIElmIHRoZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBw
cmV2aW91c2x5IHNlbGVjdGVkIHZpZGVvIHRyYWNrIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGgKICAg
ICAvLyBhbnkgb3RoZXIgZW5hYmxlZCB0cmFja3MsIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgot
ICAgIGlmICghdHJhY2stPnNlbGVjdGVkKCkKKyAgICBpZiAoIXRyYWNrLnNlbGVjdGVkKCkKICAg
ICAgICAgJiYgKCFtX3ZpZGVvVHJhY2tzIHx8ICFtX3ZpZGVvVHJhY2tzLT5pc0FueVRyYWNrRW5h
YmxlZCgpKQogICAgICAgICAmJiAoIW1fYXVkaW9UcmFja3MgfHwgIW1fYXVkaW9UcmFja3MtPmlz
QW55VHJhY2tFbmFibGVkKCkpCiAgICAgICAgICYmICghbV90ZXh0VHJhY2tzIHx8ICFtX3RleHRU
cmFja3MtPmlzQW55VHJhY2tFbmFibGVkKCkpKSB7CiAgICAgICAgIC8vIDEuMSBSZW1vdmUgdGhl
IFNvdXJjZUJ1ZmZlciBmcm9tIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMuCiAgICAgICAgIC8vIDEuMiBR
dWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCByZW1vdmVzb3VyY2VidWZm
ZXIgYXQgYWN0aXZlU291cmNlQnVmZmVycwogICAgICAgICBzZXRBY3RpdmUoZmFsc2UpOwotICAg
IH0gZWxzZSBpZiAodHJhY2stPnNlbGVjdGVkKCkpIHsKKyAgICB9IGVsc2UgaWYgKHRyYWNrLnNl
bGVjdGVkKCkpIHsKICAgICAgICAgLy8gMi4gSWYgdGhlIFNvdXJjZUJ1ZmZlciBhc3NvY2lhdGVk
IHdpdGggdGhlIG5ld2x5IHNlbGVjdGVkIHZpZGVvIHRyYWNrIGlzIG5vdCBhbHJlYWR5IGluIGFj
dGl2ZVNvdXJjZUJ1ZmZlcnMsCiAgICAgICAgIC8vIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgog
ICAgICAgICAvLyAyLjEgQWRkIHRoZSBTb3VyY2VCdWZmZXIgdG8gYWN0aXZlU291cmNlQnVmZmVy
cy4KQEAgLTE2OTcsMjYgKzE2ODcsMjYgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnZpZGVvVHJhY2tT
ZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayogdHJhY2spCiAgICAgICAgIHNldEFjdGl2ZSh0cnVl
KTsKICAgICB9CiAKLSAgICBpZiAobV92aWRlb1RyYWNrcyAmJiBtX3ZpZGVvVHJhY2tzLT5jb250
YWlucygqdHJhY2spKQorICAgIGlmIChtX3ZpZGVvVHJhY2tzICYmIG1fdmlkZW9UcmFja3MtPmNv
bnRhaW5zKHRyYWNrKSkKICAgICAgICAgbV92aWRlb1RyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVu
dCgpOwogCiAgICAgaWYgKCFpc1JlbW92ZWQoKSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxl
bWVudCgpLT52aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBTb3Vy
Y2VCdWZmZXI6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKiB0cmFjaykKK3Zv
aWQgU291cmNlQnVmZmVyOjphdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayYgdHJh
Y2spCiB7CiAgICAgLy8gMi40LjUgQ2hhbmdlcyB0byBzZWxlY3RlZC9lbmFibGVkIHRyYWNrIHN0
YXRlCiAgICAgLy8gSWYgYW4gYXVkaW8gdHJhY2sgYmVjb21lcyBkaXNhYmxlZCBhbmQgdGhlIFNv
dXJjZUJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhpcyB0cmFjayBpcyBub3QKICAgICAvLyBhc3Nv
Y2lhdGVkIHdpdGggYW55IG90aGVyIGVuYWJsZWQgb3Igc2VsZWN0ZWQgdHJhY2ssIHRoZW4gcnVu
IHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgpCisgICAgaWYg
KCF0cmFjay5lbmFibGVkKCkKICAgICAgICAgJiYgKCFtX3ZpZGVvVHJhY2tzIHx8ICFtX3ZpZGVv
VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAgICAgICAmJiAoIW1fYXVkaW9UcmFja3Mg
fHwgIW1fYXVkaW9UcmFja3MtPmlzQW55VHJhY2tFbmFibGVkKCkpCiAgICAgICAgICYmICghbV90
ZXh0VHJhY2tzIHx8ICFtX3RleHRUcmFja3MtPmlzQW55VHJhY2tFbmFibGVkKCkpKSB7CiAgICAg
ICAgIC8vIDEuIFJlbW92ZSB0aGUgU291cmNlQnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgYXVk
aW8gdHJhY2sgZnJvbSBhY3RpdmVTb3VyY2VCdWZmZXJzCiAgICAgICAgIC8vIDIuIFF1ZXVlIGEg
dGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHJlbW92ZXNvdXJjZWJ1ZmZlciBhdCBh
Y3RpdmVTb3VyY2VCdWZmZXJzCiAgICAgICAgIHNldEFjdGl2ZShmYWxzZSk7Ci0gICAgfSBlbHNl
IGlmICh0cmFjay0+ZW5hYmxlZCgpKSB7CisgICAgfSBlbHNlIGlmICh0cmFjay5lbmFibGVkKCkp
IHsKICAgICAgICAgLy8gSWYgYW4gYXVkaW8gdHJhY2sgYmVjb21lcyBlbmFibGVkIGFuZCB0aGUg
U291cmNlQnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYWNrIGlzCiAgICAgICAgIC8vIG5v
dCBhbHJlYWR5IGluIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMsIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcg
c3RlcHM6CiAgICAgICAgIC8vIDEuIEFkZCB0aGUgU291cmNlQnVmZmVyIGFzc29jaWF0ZWQgd2l0
aCB0aGUgYXVkaW8gdHJhY2sgdG8gYWN0aXZlU291cmNlQnVmZmVycwpAQCAtMTcyNCwxOSArMTcx
NCwxOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlv
VHJhY2sqIHRyYWNrKQogICAgICAgICBzZXRBY3RpdmUodHJ1ZSk7CiAgICAgfQogCi0gICAgaWYg
KG1fYXVkaW9UcmFja3MgJiYgbV9hdWRpb1RyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBp
ZiAobV9hdWRpb1RyYWNrcyAmJiBtX2F1ZGlvVHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAg
ICAgIG1fYXVkaW9UcmFja3MtPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIGlmICghaXNS
ZW1vdmVkKCkpCiAgICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+YXVkaW9UcmFja0Vu
YWJsZWRDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja01v
ZGVDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNr
TW9kZUNoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykKIHsKICAgICAvLyAyLjQuNSBDaGFuZ2VzIHRv
IHNlbGVjdGVkL2VuYWJsZWQgdHJhY2sgc3RhdGUKICAgICAvLyBJZiBhIHRleHQgdHJhY2sgbW9k
ZSBiZWNvbWVzICJkaXNhYmxlZCIgYW5kIHRoZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRo
IHRoaXMgdHJhY2sgaXMgbm90CiAgICAgLy8gYXNzb2NpYXRlZCB3aXRoIGFueSBvdGhlciBlbmFi
bGVkIG9yIHNlbGVjdGVkIHRyYWNrLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAg
IGlmICh0cmFjay0+bW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQKKyAgICBpZiAo
dHJhY2subW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQKICAgICAgICAgJiYgKCFt
X3ZpZGVvVHJhY2tzIHx8ICFtX3ZpZGVvVHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAg
ICAgICAmJiAoIW1fYXVkaW9UcmFja3MgfHwgIW1fYXVkaW9UcmFja3MtPmlzQW55VHJhY2tFbmFi
bGVkKCkpCiAgICAgICAgICYmICghbV90ZXh0VHJhY2tzIHx8ICFtX3RleHRUcmFja3MtPmlzQW55
VHJhY2tFbmFibGVkKCkpKSB7CkBAIC0xNzUxLDU2ICsxNzQxLDU2IEBAIHZvaWQgU291cmNlQnVm
ZmVyOjp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQogICAgICAgICBzZXRB
Y3RpdmUodHJ1ZSk7CiAgICAgfQogCi0gICAgaWYgKG1fdGV4dFRyYWNrcyAmJiBtX3RleHRUcmFj
a3MtPmNvbnRhaW5zKCp0cmFjaykpCisgICAgaWYgKG1fdGV4dFRyYWNrcyAmJiBtX3RleHRUcmFj
a3MtPmNvbnRhaW5zKHRyYWNrKSkKICAgICAgICAgbV90ZXh0VHJhY2tzLT5zY2hlZHVsZUNoYW5n
ZUV2ZW50KCk7CiAKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVk
aWFFbGVtZW50KCktPnRleHRUcmFja01vZGVDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBTb3Vy
Y2VCdWZmZXI6OnRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWUm
IGN1ZSkKK3ZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrJiB0cmFj
aywgVGV4dFRyYWNrQ3VlJiBjdWUpCiB7CiAgICAgaWYgKCFpc1JlbW92ZWQoKSkKICAgICAgICAg
bV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tBZGRDdWUodHJhY2ssIGN1ZSk7CiB9
CiAKLXZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayogdHJhY2ss
IFRleHRUcmFja0N1ZUxpc3QgY29uc3QqIGN1ZUxpc3QpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4
dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smIHRyYWNrLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JiBj
dWVMaXN0KQogewogICAgIGlmICghaXNSZW1vdmVkKCkpCiAgICAgICAgIG1fc291cmNlLT5tZWRp
YUVsZW1lbnQoKS0+dGV4dFRyYWNrQWRkQ3Vlcyh0cmFjaywgY3VlTGlzdCk7CiB9CiAKLXZvaWQg
U291cmNlQnVmZmVyOjp0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRy
YWNrQ3VlJiBjdWUpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRU
cmFjayYgdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogewogICAgIGlmICghaXNSZW1vdmVkKCkp
CiAgICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dGV4dFRyYWNrUmVtb3ZlQ3VlKHRy
YWNrLCBjdWUpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3VlcyhU
ZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWVMaXN0IGNvbnN0KiBjdWVMaXN0KQordm9pZCBT
b3VyY2VCdWZmZXI6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiB0cmFjaywgY29uc3Qg
VGV4dFRyYWNrQ3VlTGlzdCYgY3VlTGlzdCkKIHsKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAg
ICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja1JlbW92ZUN1ZXModHJhY2ss
IGN1ZUxpc3QpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrS2luZENoYW5nZWQo
VGV4dFRyYWNrKiB0cmFjaykKK3ZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tLaW5kQ2hhbmdl
ZChUZXh0VHJhY2smIHRyYWNrKQogewogICAgIGlmICghaXNSZW1vdmVkKCkpCiAgICAgICAgIG1f
c291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dGV4dFRyYWNrS2luZENoYW5nZWQodHJhY2spOwogfQog
Ci12b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZEJlY29tZVJlYWR5Rm9y
TW9yZVNhbXBsZXMoU291cmNlQnVmZmVyUHJpdmF0ZSosIEF0b21pY1N0cmluZyB0cmFja0lEKQor
dm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1v
cmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkKIHsKICAgICBMT0coTWVkaWFT
b3VyY2UsICJTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZv
ck1vcmVTYW1wbGVzKCVwKSIsIHRoaXMpOwogICAgIGF1dG8gaXQgPSBtX3RyYWNrQnVmZmVyTWFw
LmZpbmQodHJhY2tJRCk7CiAgICAgaWYgKGl0ID09IG1fdHJhY2tCdWZmZXJNYXAuZW5kKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciA9IGl0LT52YWx1
ZTsKKyAgICBhdXRvJiB0cmFja0J1ZmZlciA9IGl0LT52YWx1ZTsKICAgICBpZiAoIXRyYWNrQnVm
ZmVyLm5lZWRzUmVlbnF1ZXVlaW5nICYmICFtX3NvdXJjZS0+aXNTZWVraW5nKCkpCiAgICAgICAg
IHByb3ZpZGVNZWRpYURhdGEodHJhY2tCdWZmZXIsIHRyYWNrSUQpOwogfQogCi12b2lkIFNvdXJj
ZUJ1ZmZlcjo6cHJvdmlkZU1lZGlhRGF0YShUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIsIEF0b21p
Y1N0cmluZyB0cmFja0lEKQordm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoVHJh
Y2tCdWZmZXImIHRyYWNrQnVmZmVyLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpCiB7CiAg
ICAgaWYgKG1fc291cmNlLT5pc1NlZWtpbmcoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTgzNCw3
ICsxODI0LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoVHJhY2tCdWZm
ZXImIHRyYWNrQnVmZmVyLCBBdG9taWNTdHJpbmcgdHJhY2sKIAogICAgICAgICB0cmFja0J1ZmZl
ci5sYXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lID0gc2FtcGxlLT5wcmVzZW50YXRpb25UaW1l
KCk7CiAgICAgICAgIHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZERlY29kZUVuZFRpbWUgPSBzYW1w
bGUtPmRlY29kZVRpbWUoKSArIHNhbXBsZS0+ZHVyYXRpb24oKTsKLSAgICAgICAgbV9wcml2YXRl
LT5lbnF1ZXVlU2FtcGxlKFdURk1vdmUoc2FtcGxlKSwgdHJhY2tJRCk7CisgICAgICAgIG1fcHJp
dmF0ZS0+ZW5xdWV1ZVNhbXBsZShzYW1wbGUucmVsZWFzZU5vbk51bGwoKSwgdHJhY2tJRCk7CiAj
aWYgIUxPR19ESVNBQkxFRAogICAgICAgICArK2VucXVldWVkU2FtcGxlczsKICNlbmRpZgpAQCAt
MTg0Myw3ICsxODMzLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoVHJh
Y2tCdWZmZXImIHRyYWNrQnVmZmVyLCBBdG9taWNTdHJpbmcgdHJhY2sKICAgICBMT0coTWVkaWFT
b3VyY2UsICJTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoJXApIC0gRW5xdWV1ZWQgJXUg
c2FtcGxlcyIsIHRoaXMsIGVucXVldWVkU2FtcGxlcyk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVy
OjpyZWVucXVldWVNZWRpYUZvclRpbWUoVHJhY2tCdWZmZXImIHRyYWNrQnVmZmVyLCBBdG9taWNT
dHJpbmcgdHJhY2tJRCwgY29uc3QgTWVkaWFUaW1lJiB0aW1lKQordm9pZCBTb3VyY2VCdWZmZXI6
OnJlZW5xdWV1ZU1lZGlhRm9yVGltZShUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIsIGNvbnN0IEF0
b21pY1N0cmluZyYgdHJhY2tJRCwgY29uc3QgTWVkaWFUaW1lJiB0aW1lKQogewogICAgIG1fcHJp
dmF0ZS0+Zmx1c2godHJhY2tJRCk7CiAgICAgdHJhY2tCdWZmZXIuZGVjb2RlUXVldWUuY2xlYXIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5oCmluZGV4IGQ5ZTE3NDc5OTkyNGFmYjBlODhkNzQ3NzJlOGY4YTkxYTJjZjAyYjAuLjVhMTQy
ZDRjYTEwMjM1NGVlZDgwYmMxYWMxYmViYzMxNTc2YzhmOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaApAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ5LDYgKzQ5
LDcgQEAgY2xhc3MgQXVkaW9UcmFja0xpc3Q7CiBjbGFzcyBCdWZmZXJTb3VyY2U7CiBjbGFzcyBN
ZWRpYVNvdXJjZTsKIGNsYXNzIFBsYXRmb3JtVGltZVJhbmdlczsKK2NsYXNzIFNvdXJjZUJ1ZmZl
clByaXZhdGU7CiBjbGFzcyBUZXh0VHJhY2tMaXN0OwogY2xhc3MgVGltZVJhbmdlczsKIGNsYXNz
IFZpZGVvVHJhY2tMaXN0OwpAQCAtNjQsOSArNjUsOSBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0VGltZXN0YW1wT2Zmc2V0KGRvdWJsZSk7CiAKICNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCi0gICAgVmlkZW9UcmFja0xpc3QqIHZpZGVvVHJhY2tzKCk7Ci0gICAgQXVkaW9UcmFj
a0xpc3QqIGF1ZGlvVHJhY2tzKCk7Ci0gICAgVGV4dFRyYWNrTGlzdCogdGV4dFRyYWNrcygpOwor
ICAgIFZpZGVvVHJhY2tMaXN0JiB2aWRlb1RyYWNrcygpOworICAgIEF1ZGlvVHJhY2tMaXN0JiBh
dWRpb1RyYWNrcygpOworICAgIFRleHRUcmFja0xpc3QmIHRleHRUcmFja3MoKTsKICNlbmRpZgog
CiAgICAgZG91YmxlIGFwcGVuZFdpbmRvd1N0YXJ0KCkgY29uc3Q7CkBAIC0xMjQsMjUgKzEyNSwy
NCBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dCBmaW5hbDsKICAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25z
dCBmaW5hbDsKIAotICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFs
aXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IEluaXRpYWxpemF0aW9u
U2VnbWVudCYpIGZpbmFsOwotICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVT
YW1wbGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIE1lZGlhU2FtcGxlJikgZmluYWw7Ci0gICAgYm9v
bCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oY29uc3QgU291cmNlQnVmZmVyUHJpdmF0ZSop
IGNvbnN0IGZpbmFsOwotICAgIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKGNvbnN0
IFNvdXJjZUJ1ZmZlclByaXZhdGUqKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1ZmZlclByaXZhdGUq
LCBBdG9taWNTdHJpbmcgdHJhY2tJRCkgZmluYWw7Ci0gICAgTWVkaWFUaW1lIHNvdXJjZUJ1ZmZl
clByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNv
bnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYgbmVnYXRpdmVUaHJlc2hvbGQsIGNvbnN0
IE1lZGlhVGltZSYgcG9zaXRpdmVUaHJlc2hvbGQpIGZpbmFsOwotICAgIHZvaWQgc291cmNlQnVm
ZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBcHBlbmRSZXN1
bHQpIGZpbmFsOwotICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJp
bmdFcnJvcihTb3VyY2VCdWZmZXJQcml2YXRlKiwgaW50IGVycm9yQ29kZSkgZmluYWw7Ci0KLSAg
ICB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKikgZmluYWw7Ci0KLSAg
ICB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayopIGZpbmFsOwotCi0g
ICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2sqKSBmaW5hbDsKLSAgICB2b2lk
IHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRy
YWNrQWRkQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KikgZmluYWw7Ci0g
ICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1
ZUxpc3QqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqLCBUZXh0
VHJhY2tDdWUmKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2sq
LCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRS
ZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYp
IGZpbmFsOworICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoTWVk
aWFTYW1wbGUmKSBmaW5hbDsKKyAgICBib29sIHNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygp
IGNvbnN0IGZpbmFsOworICAgIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCkgY29u
c3QgZmluYWw7CisgICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JN
b3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpIGZpbmFsOworICAgIE1lZGlh
VGltZSBzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYgbmVnYXRpdmVUaHJlc2hvbGQsIGNvbnN0IE1lZGlh
VGltZSYgcG9zaXRpdmVUaHJlc2hvbGQpIGZpbmFsOworICAgIHZvaWQgc291cmNlQnVmZmVyUHJp
dmF0ZUFwcGVuZENvbXBsZXRlKEFwcGVuZFJlc3VsdCkgZmluYWw7CisgICAgdm9pZCBzb3VyY2VC
dWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmluZ0Vycm9yKGludCBlcnJvckNvZGUpIGZpbmFs
OworCisgICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayYpIGZpbmFs
OworICAgIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrJikgZmluYWw7
CisKKyAgICB2b2lkIHRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayYpIGZpbmFsOworICAg
IHZvaWQgdGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrJikgZmluYWw7CisgICAgdm9pZCB0
ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBmaW5h
bDsKKyAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRy
YWNrQ3VlTGlzdCYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYs
IFRleHRUcmFja0N1ZSYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRU
cmFjayYsIFRleHRUcmFja0N1ZSYpIGZpbmFsOwogCiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2Ug
ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTb3VyY2VCdWZmZXJF
dmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KIApAQCAtMTU3LDggKzE1Nyw4IEBAIHByaXZhdGU6
CiAKICAgICBib29sIHZhbGlkYXRlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxp
emF0aW9uU2VnbWVudCYpOwogCi0gICAgdm9pZCByZWVucXVldWVNZWRpYUZvclRpbWUoVHJhY2tC
dWZmZXImLCBBdG9taWNTdHJpbmcgdHJhY2tJRCwgY29uc3QgTWVkaWFUaW1lJik7Ci0gICAgdm9p
ZCBwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiwgQXRvbWljU3RyaW5nIHRyYWNrSUQpOwor
ICAgIHZvaWQgcmVlbnF1ZXVlTWVkaWFGb3JUaW1lKFRyYWNrQnVmZmVyJiwgY29uc3QgQXRvbWlj
U3RyaW5nJiB0cmFja0lELCBjb25zdCBNZWRpYVRpbWUmKTsKKyAgICB2b2lkIHByb3ZpZGVNZWRp
YURhdGEoVHJhY2tCdWZmZXImLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpOwogICAgIHZv
aWQgZGlkRHJvcFNhbXBsZSgpOwogICAgIHZvaWQgZXZpY3RDb2RlZEZyYW1lcyhzaXplX3QgbmV3
RGF0YVNpemUpOwogICAgIHNpemVfdCBtYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJl
OTY0NTg5MzdhOTQyMWY1Njg5MDUyMmVlYWNkOTA4NmEwZjk3YTkuLjA1ODIzNzljY2I1ZGFkMDc0
MzE4YTdmMGUwMjkyZDliNGI4NjlhYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2MTQsOCArMjYxNCw4IEBACiAJCTZFM0ZB
RThFMTQ3MzNGREIwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVyZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4QzE0NzMzRkRCMDBFNDIz
MDcgLyogV2ViR0xEZXB0aFRleHR1cmUuY3BwICovOyB9OwogCQk2RTNGQUU4RjE0NzMzRkRCMDBF
NDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRThEMTQ3MzNGREIwMEU0MjMwNiAvKiBX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oICovOyB9OwogCQk2RTNGQUU4RjE0NzMzRkRCMDBF
NDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRThEMTQ3MzNGREIwMEU0MjMwNyAvKiBXZWJHTERlcHRo
VGV4dHVyZS5oICovOyB9OwotCQk2RTQ3RTY2MDEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJ
bmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZF
NDdFNjVFMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldEluZm8uY3BwICovOyB9OwotCQk2RTQ3
RTY2MTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTQ3RTY1RjEwQjc5NDRCMDBCMTg2QzggLyog
V2ViR0xHZXRJbmZvLmggKi87IH07CisJCTZFNDdFNjYwMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJH
TEFueS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuY3BwICovOyB9OworCQk2RTQ3RTY2
MTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNDdFNjVGMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEFu
eS5oICovOyB9OwogCQk2RTRBQkNENDEzOEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkU0QUJDRDIxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50LmNwcCAqLzsg
fTsKIAkJNkU0QUJDRDUxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTRBQkNEMzEz
OEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuaCAqLzsgfTsKIAkJNkU0RTkx
QUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNEU5MUFBMTBGN0ZCMzEwMEEy
Nzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk5MTUsOCArOTkxNSw4IEBACiAJCTZFM0ZBRThE
MTQ3MzNGREIwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVyZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJHTERlcHRoVGV4dHVyZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2RTNGQUU5MDE0NzMzRkVBMDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4
dHVyZVMzVEMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVTM1RDLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFFOTAxNDczM0ZF
QTAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBXZWJHTERlcHRoVGV4dHVyZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZF
NDdFNjVFMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldEluZm8uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR0xHZXRJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNkU0N0U2NUYxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTEdldEluZm8uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkU0N0U2NUUxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdM
QW55LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMQW55LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkU0N0U2NUYxMEI3OTQ0QjAwQjE4NkM4
IC8qIFdlYkdMQW55LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMQW55
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFNEFCQ0QyMTM4RUEwQjcwMDcxRDI5
MSAvKiBKU0hUTUxVbmtub3duRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0hUTUxVbmtub3duRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTZFNEFCQ0QzMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtub3duRWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxVbmtub3duRWxlbWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTRFOTFBQTEwRjdGQjMxMDBBMjc3
OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNjkyOCw4ICsxNjkyOCw4IEBACiAJCQkJNDlDN0I5QUUxMDQyRDMyRTAwMDlENDQ3
IC8qIFdlYkdMRnJhbWVidWZmZXIuY3BwICovLAogCQkJCTQ5QzdCOUFGMTA0MkQzMkUwMDA5RDQ0
NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmggKi8sCiAJCQkJNDlDN0I5QjAxMDQyRDMyRTAwMDlENDQ3
IC8qIFdlYkdMRnJhbWVidWZmZXIuaWRsICovLAotCQkJCTZFNDdFNjVFMTBCNzk0NEIwMEIxODZD
OCAvKiBXZWJHTEdldEluZm8uY3BwICovLAotCQkJCTZFNDdFNjVGMTBCNzk0NEIwMEIxODZDOCAv
KiBXZWJHTEdldEluZm8uaCAqLywKKwkJCQk2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2Vi
R0xBbnkuY3BwICovLAorCQkJCTZFNDdFNjVGMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5o
ICovLAogCQkJCTkzRjFENUI3MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmNw
cCAqLywKIAkJCQk5M0YxRDVCODEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xMb3NlQ29udGV4dC5o
ICovLAogCQkJCTkzRjFENUI5MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0Lmlk
bCAqLywKQEAgLTI4MjQzLDcgKzI4MjQzLDcgQEAKIAkJCQk1QjMwNjk1RTE4QjNEMzQ1MDA5OUQ1
RTggLyogV2ViR0xEcmF3QnVmZmVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkVCRjBFNTUxMkE4
OTI5ODAwREIxNzA5IC8qIFdlYkdMRXh0ZW5zaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3
QjlDRjEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0OUZGQkYzRjExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNv
bnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOUQ1MTA0MkQzMkYwMDA5RDQ0NyAvKiBX
ZWJHTE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTczMiw3ICszMTczMiw3IEBACiAJCQkJ
NUIzMDY5NUQxOEIzRDM0NTAwOTlENUU4IC8qIFdlYkdMRHJhd0J1ZmZlcnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNkVCRjBFNTQxMkE4OTI5ODAwREIxNzA5IC8qIFdlYkdMRXh0ZW5zaW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUNFMTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTEZy
YW1lYnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTZFNDdFNjYwMTBCNzk0NEIwMEIxODZD
OCAvKiBXZWJHTEdldEluZm8uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNkU0N0U2NjAxMEI3OTQ0
QjAwQjE4NkM4IC8qIFdlYkdMQW55LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5RkZCRjQwMTFD
OTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMUQ1
QkExMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDlDN0I5RDQxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMT2JqZWN0LmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwCmluZGV4IGUyMGIyMzg2ODY0ZGFj
ZGRhZDU2MmZjM2VlYzZhYTMzOTRmZjEwYTUuLjkzYjc5NmE0NWJmZWNlZjY2ZGY3OTQ5NzVmYjA0
OTU3YmNjYjYyNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNjUsOSArNjUsOSBA
QCBzdGF0aWMgQ2FudmFzU3R5bGUgdG9IVE1MQ2FudmFzU3R5bGUoRXhlY1N0YXRlKiwgSlNWYWx1
ZSB2YWx1ZSkKICAgICAgICAgcmV0dXJuIENhbnZhc1N0eWxlKCk7CiAgICAgSlNPYmplY3QqIG9i
amVjdCA9IGFzT2JqZWN0KHZhbHVlKTsKICAgICBpZiAob2JqZWN0LT5pbmhlcml0cyhKU0NhbnZh
c0dyYWRpZW50OjppbmZvKCkpKQotICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUoJmpzQ2FzdDxK
U0NhbnZhc0dyYWRpZW50Kj4ob2JqZWN0KS0+d3JhcHBlZCgpKTsKKyAgICAgICAgcmV0dXJuIGpz
Q2FzdDxKU0NhbnZhc0dyYWRpZW50Kj4ob2JqZWN0KS0+d3JhcHBlZCgpOwogICAgIGlmIChvYmpl
Y3QtPmluaGVyaXRzKEpTQ2FudmFzUGF0dGVybjo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIENh
bnZhc1N0eWxlKCZqc0Nhc3Q8SlNDYW52YXNQYXR0ZXJuKj4ob2JqZWN0KS0+d3JhcHBlZCgpKTsK
KyAgICAgICAgcmV0dXJuIGpzQ2FzdDxKU0NhbnZhc1BhdHRlcm4qPihvYmplY3QpLT53cmFwcGVk
KCk7CiAgICAgcmV0dXJuIENhbnZhc1N0eWxlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCmluZGV4IGY3
OGExMTg2MjE4YzZhOWJkMWQ3N2JlODc4NzQzZTllYWNiYWM3NDQuLjQxODFkNzQ3ODZmMzlmM2Rk
NWZkNzk3N2VjZjY4MWRkYzYyNTI5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcApAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2Rl
Lm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOCwgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtNDAsNyArNDAsNyBA
QCBJbnN0YW5jZSogcGx1Z2luSW5zdGFuY2UoSFRNTEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgLy8g
VGhlIHBsdWdpbiBlbGVtZW50IGhvbGRzIGFuIG93bmluZyByZWZlcmVuY2UsIHNvIHdlIGRvbid0
IGhhdmUgdG8uCiAgICAgaWYgKCFpczxIVE1MUGx1Z0luRWxlbWVudD4oZWxlbWVudCkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIEluc3RhbmNlKiBpbnN0YW5jZSA9IGRvd25jYXN0PEhU
TUxQbHVnSW5FbGVtZW50PihlbGVtZW50KS5nZXRJbnN0YW5jZSgpLmdldCgpOworICAgIGF1dG8q
IGluc3RhbmNlID0gZG93bmNhc3Q8SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpLmJpbmRpbmdz
SW5zdGFuY2UoKTsKICAgICBpZiAoIWluc3RhbmNlIHx8ICFpbnN0YW5jZS0+cm9vdE9iamVjdCgp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gaW5zdGFuY2U7CkBAIC03MSwy
MyArNzEsMjMgQEAgSlNPYmplY3QqIHBsdWdpblNjcmlwdE9iamVjdChFeGVjU3RhdGUqIGV4ZWMs
IEpTSFRNTEVsZW1lbnQqIGpzSFRNTEVsZW1lbnQpCiAgICAgaWYgKCFpczxIVE1MUGx1Z0luRWxl
bWVudD4oZWxlbWVudCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgSFRNTFBsdWdJ
bkVsZW1lbnQmIHBsdWdpbkVsZW1lbnQgPSBkb3duY2FzdDxIVE1MUGx1Z0luRWxlbWVudD4oZWxl
bWVudCk7CisgICAgYXV0byYgcGx1Z2luRWxlbWVudCA9IGRvd25jYXN0PEhUTUxQbHVnSW5FbGVt
ZW50PihlbGVtZW50KTsKIAogICAgIC8vIENob2tlIHBvaW50IGZvciBzY3JpcHQvcGx1Z2luIGlu
dGVyYWN0aW9uOyBub3RpZnkgRE9NVGltZXIgb2YgdGhlIGV2ZW50LgogICAgIERPTVRpbWVyOjpz
Y3JpcHREaWRJbnRlcmFjdFdpdGhQbHVnaW4ocGx1Z2luRWxlbWVudCk7CiAKICAgICAvLyBGaXJz
dCwgc2VlIGlmIHRoZSBlbGVtZW50IGhhcyBhIHBsdWctaW4gcmVwbGFjZW1lbnQgd2l0aCBhIHNj
cmlwdC4KLSAgICBpZiAoSlNPYmplY3QqIHNjcmlwdE9iamVjdCA9IHBsdWdpbkVsZW1lbnQuc2Ny
aXB0T2JqZWN0Rm9yUGx1Z2luUmVwbGFjZW1lbnQoKSkKKyAgICBpZiAoYXV0byogc2NyaXB0T2Jq
ZWN0ID0gcGx1Z2luRWxlbWVudC5zY3JpcHRPYmplY3RGb3JQbHVnaW5SZXBsYWNlbWVudCgpKQog
ICAgICAgICByZXR1cm4gc2NyaXB0T2JqZWN0OwogICAgIAogICAgIC8vIE5leHQsIHNlZSBpZiB3
ZSBjYW4gYXNrIHRoZSBwbHVnLWluIHZpZXcgZm9yIGl0cyBzY3JpcHQgb2JqZWN0LgotICAgIGlm
IChKU09iamVjdCogc2NyaXB0T2JqZWN0ID0gcGx1Z2luU2NyaXB0T2JqZWN0RnJvbVBsdWdpblZp
ZXdCYXNlKHBsdWdpbkVsZW1lbnQsIGpzSFRNTEVsZW1lbnQtPmdsb2JhbE9iamVjdCgpKSkKKyAg
ICBpZiAoYXV0byogc2NyaXB0T2JqZWN0ID0gcGx1Z2luU2NyaXB0T2JqZWN0RnJvbVBsdWdpblZp
ZXdCYXNlKHBsdWdpbkVsZW1lbnQsIGpzSFRNTEVsZW1lbnQtPmdsb2JhbE9iamVjdCgpKSkKICAg
ICAgICAgcmV0dXJuIHNjcmlwdE9iamVjdDsKIAogICAgIC8vIE90aGVyd2lzZSwgZmFsbCBiYWNr
IHRvIGdldHRpbmcgdGhlIG9iamVjdCBmcm9tIHRoZSBpbnN0YW5jZS4KIAogICAgIC8vIFRoZSBw
bHVnaW4gZWxlbWVudCBob2xkcyBhbiBvd25pbmcgcmVmZXJlbmNlLCBzbyB3ZSBkb24ndCBoYXZl
IHRvLgotICAgIEluc3RhbmNlKiBpbnN0YW5jZSA9IHBsdWdpbkVsZW1lbnQuZ2V0SW5zdGFuY2Uo
KS5nZXQoKTsKKyAgICBhdXRvKiBpbnN0YW5jZSA9IHBsdWdpbkVsZW1lbnQuYmluZGluZ3NJbnN0
YW5jZSgpOwogICAgIGlmICghaW5zdGFuY2UgfHwgIWluc3RhbmNlLT5yb290T2JqZWN0KCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCA3
ODhhZDI0NDQ2OTIwZDBmYTJlYWVlYjc0OGQ2NDliYmUzNjhjNDcxLi40YzUwY2NmOGYzMDQ2ZWQw
MDgzNjUwODg2NzdmYTRhNzhlN2NkZWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zNiwzNyArMzYsNiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLS8vIEZJWE1FOiBUaGVyZSBpcyBhIGR1cGxpY2F0ZSB2ZXJzaW9uIG9mIHRoaXMgZnVu
Y3Rpb24gaW4gSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9tLmNwcCwKLS8vIGJ1dCBp
dCBpcyBub3QgZXhhY3RseSB0aGUgc2FtZSEgV2Ugc2hvdWxkIG1lcmdlIHRoZXNlLgotc3RhdGlj
IEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBjb25zdCBXZWJHTEdldEluZm8mIGluZm8pCi17Ci0gICAgc3dpdGNoIChpbmZvLmdl
dFR5cGUoKSkgewotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZUJvb2w6Ci0gICAgICAgIHJl
dHVybiBqc0Jvb2xlYW4oaW5mby5nZXRCb29sKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjpr
VHlwZUJvb2xBcnJheTogewotICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBsaXN0OwotICAg
ICAgICBmb3IgKGF1dG8mIHZhbHVlIDogaW5mby5nZXRCb29sQXJyYXkoKSkKLSAgICAgICAgICAg
IGxpc3QuYXBwZW5kKGpzQm9vbGVhbih2YWx1ZSkpOwotICAgICAgICByZXR1cm4gY29uc3RydWN0
QXJyYXkoc3RhdGUsIDAsIGdsb2JhbE9iamVjdCwgbGlzdCk7Ci0gICAgfQotICAgIGNhc2UgV2Vi
R0xHZXRJbmZvOjprVHlwZUZsb2F0OgotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRG
bG9hdCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVJbnQ6Ci0gICAgICAgIHJldHVy
biBqc051bWJlcihpbmZvLmdldEludCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVO
dWxsOgotICAgICAgICByZXR1cm4ganNOdWxsKCk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtU
eXBlU3RyaW5nOgotICAgICAgICByZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoc3RhdGUsIGluZm8u
Z2V0U3RyaW5nKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVVuc2lnbmVkSW50Ogot
ICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRVbnNpZ25lZEludCgpKTsKLSAgICBjYXNl
IFdlYkdMR2V0SW5mbzo6a1R5cGVJbnQ2NDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8u
Z2V0SW50NjQoKSk7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotfQotCiB2b2lkIEpTV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCiB7CiAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KCZ3cmFwcGVkKCkpOwpAQCAtMTA0LDcg
KzczLDcgQEAgSlNWYWx1ZSBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEluZGV4ZWRQYXJh
bWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBK
U1ZhbHVlKCkpOwogICAgIHVuc2lnbmVkIGluZGV4ID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MSkudG9JbnQzMigmc3RhdGUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFs
dWUoKSk7Ci0gICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgp
LmdldEluZGV4ZWRQYXJhbWV0ZXIocG5hbWUsIGluZGV4KSk7CisgICAgcmV0dXJuIHRvSlMoc3Rh
dGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldEluZGV4ZWRQYXJhbWV0ZXIocG5hbWUs
IGluZGV4KSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRBY3Rp
dmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIoRXhlY1N0YXRlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2VD
dXN0b20uY3BwCmluZGV4IDgyNWQyNTA5NGQyY2M2MjIwNmIwNDk5NmMxMGQ1MzFlNTQyOTgwOTEu
LjExNTgzN2UwNTFiMWQ3YmNlM2Y1MDcxYmZhMzQ3NWVlYjdhOWQ5OWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlQ3VzdG9tLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDIwICsyNCwxNiBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKIAog
I2lmIEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUgIkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oIgotCi0jaW5jbHVkZSAiQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIKICNpbmNsdWRlICJFWFRC
bGVuZE1pbk1heC5oIgogI2luY2x1ZGUgIkVYVEZyYWdEZXB0aC5oIgogI2luY2x1ZGUgIkVYVFNo
YWRlclRleHR1cmVMT0QuaCIKICNpbmNsdWRlICJFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
aCIKICNpbmNsdWRlICJFWFRzUkdCLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2lu
Y2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5o
IgogI2luY2x1ZGUgIkpTQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIKICNpbmNsdWRlICJKU0VYVEJs
ZW5kTWluTWF4LmgiCiAjaW5jbHVkZSAiSlNFWFRGcmFnRGVwdGguaCIKQEAgLTczLDcgKzY5LDYg
QEAKICNpbmNsdWRlICJKU1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIKICNpbmNsdWRlICJKU1dl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKICNpbmNsdWRlICJKU1dlYktpdENTU01hdHJpeC5o
IgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiT0VTRWxlbWVudEluZGV4
VWludC5oIgogI2luY2x1ZGUgIk9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCIKICNpbmNsdWRlICJP
RVNUZXh0dXJlRmxvYXQuaCIKQEAgLTkxLDcgKzg2LDYgQEAKICNpbmNsdWRlICJXZWJHTERyYXdC
dWZmZXJzLmgiCiAjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKICNpbmNsdWRlICJXZWJHTEZy
YW1lYnVmZmVyLmgiCi0jaW5jbHVkZSAiV2ViR0xHZXRJbmZvLmgiCiAjaW5jbHVkZSAiV2ViR0xM
b3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKQEAgLTEwNSw3ICs5OSw2IEBACiAjaW5jbHVkZSA8d3Rm
L0Zhc3RNYWxsb2MuaD4KIAogI2lmIEVOQUJMRShWSURFTykKLSNpbmNsdWRlICJIVE1MVmlkZW9F
bGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MVmlkZW9FbGVtZW50LmgiCiAjZW5kaWYKIApAQCAt
MTE3LDcgKzExMCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZT4mJiBvYmplY3QpCitKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+
JiYgb2JqZWN0KQogewogI2lmIEVOQUJMRShXRUJHTDIpCiAgICAgaWYgKGlzPFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ+KG9iamVjdCkpCkBAIC0xMzEsNjQgKzEyNCw3IEBAIEpTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBXZWJHTFJl
bmRlcmluZ0NvCiAgICAgcmV0dXJuIHdyYXAoc3RhdGUsIGdsb2JhbE9iamVjdCwgb2JqZWN0KTsK
IH0KICAgICAKLS8vIEZJWE1FOiBUaGVyZSBpcyBhIGR1cGxpY2F0ZSB2ZXJzaW9uIG9mIHRoaXMg
ZnVuY3Rpb24gaW4gSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCwKLS8vIGJ1dCBp
dCBpcyBub3QgZXhhY3RseSB0aGUgc2FtZSEgV2Ugc2hvdWxkIG1lcmdlIHRoZXNlLgotc3RhdGlj
IEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIGNvbnN0IFdlYkdMR2V0SW5mbyYgaW5mbykKLXsKLSAgICBzd2l0Y2ggKGluZm8uZ2V0
VHlwZSgpKSB7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlQm9vbDoKLSAgICAgICAgcmV0
dXJuIGpzQm9vbGVhbihpbmZvLmdldEJvb2woKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtU
eXBlQm9vbEFycmF5OiB7Ci0gICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGxpc3Q7Ci0gICAg
ICAgIGZvciAoYXV0byYgdmFsdWUgOiBpbmZvLmdldEJvb2xBcnJheSgpKQotICAgICAgICAgICAg
bGlzdC5hcHBlbmQoanNCb29sZWFuKHZhbHVlKSk7Ci0gICAgICAgIHJldHVybiBjb25zdHJ1Y3RB
cnJheShleGVjLCAwLCBnbG9iYWxPYmplY3QsIGxpc3QpOwotICAgIH0KLSAgICBjYXNlIFdlYkdM
R2V0SW5mbzo6a1R5cGVGbG9hdDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0Rmxv
YXQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlSW50OgotICAgICAgICByZXR1cm4g
anNOdW1iZXIoaW5mby5nZXRJbnQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlTnVs
bDoKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlw
ZVN0cmluZzoKLSAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIGluZm8uZ2V0
U3RyaW5nKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVVuc2lnbmVkSW50OgotICAg
ICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRVbnNpZ25lZEludCgpKTsKLSAgICBjYXNlIFdl
YkdMR2V0SW5mbzo6a1R5cGVXZWJHTEJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMQnVmZmVyKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJ
bmZvOjprVHlwZVdlYkdMRmxvYXRBcnJheToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xv
YmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMRmxvYXRBcnJheSgpKTsKLSAgICBjYXNlIFdlYkdMR2V0
SW5mbzo6a1R5cGVXZWJHTEZyYW1lYnVmZmVyOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xGcmFtZWJ1ZmZlcigpKTsKLSAgICBjYXNlIFdlYkdM
R2V0SW5mbzo6a1R5cGVXZWJHTEludEFycmF5OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xJbnRBcnJheSgpKTsKLSAgICAgICAgLy8gRklYTUU6
IGltcGxlbWVudCBXZWJHTE9iamVjdEFycmF5Ci0gICAgICAgIC8vIGNhc2UgV2ViR0xHZXRJbmZv
OjprVHlwZVdlYkdMT2JqZWN0QXJyYXk6Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2Vi
R0xQcm9ncmFtOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8u
Z2V0V2ViR0xQcm9ncmFtKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMUmVu
ZGVyYnVmZmVyOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8u
Z2V0V2ViR0xSZW5kZXJidWZmZXIoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2Vi
R0xUZXh0dXJlOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8u
Z2V0V2ViR0xUZXh0dXJlKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVW5z
aWduZWRCeXRlQXJyYXk6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwg
aW5mby5nZXRXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZv
OjprVHlwZVdlYkdMVW5zaWduZWRJbnRBcnJheToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMVW5zaWduZWRJbnRBcnJheSgpKTsKLSNpZiBFTkFC
TEUoV0VCR0wyKQotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVmVydGV4QXJyYXlP
YmplY3Q6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRX
ZWJHTFZlcnRleEFycmF5T2JqZWN0KCkpOwotI2VuZGlmCi0gICAgY2FzZSBXZWJHTEdldEluZm86
OmtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzoKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKSk7Ci0g
ICAgZGVmYXVsdDoKLSAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7Ci0gICAgfQotfQotCi1lbnVtIE9iamVjdFR5cGUgeyBrQnVmZmVyLCBrUmVu
ZGVyYnVmZmVyLCBrVGV4dHVyZSwga1ZlcnRleEF0dHJpYiB9OwotCi1zdGF0aWMgSlNWYWx1ZSBn
ZXRPYmplY3RQYXJhbWV0ZXIoSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBvYmosIEV4ZWNT
dGF0ZSYgc3RhdGUsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSkKK3N0YXRpYyBKU1ZhbHVlIG9iamVj
dFBhcmFtZXRlcihKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIEV4ZWNTdGF0
ZSYgc3RhdGUsIFdlYkdMQW55IChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjoqZ2V0dGVyKShH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5Niw5
MCArMTMyLDY2IEBAIHN0YXRpYyBKU1ZhbHVlIGdldE9iamVjdFBhcmFtZXRlcihKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UqIG9iaiwgRXhlY1N0YXRlJiBzCiAgICAgaWYgKHN0YXRlLmFyZ3Vt
ZW50Q291bnQoKSAhPSAyKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBz
Y29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CiAgICAgCi0gICAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCA9IG9iai0+d3JhcHBlZCgpOwotICAg
IHVuc2lnbmVkIHRhcmdldCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0
YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHVu
c2lnbmVkIHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUp
OwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgV2ViR0xH
ZXRJbmZvIGluZm87Ci0gICAgc3dpdGNoIChvYmplY3RUeXBlKSB7Ci0gICAgY2FzZSBrQnVmZmVy
OgotICAgICAgICBpbmZvID0gY29udGV4dC5nZXRCdWZmZXJQYXJhbWV0ZXIodGFyZ2V0LCBwbmFt
ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Uga1JlbmRlcmJ1ZmZlcjoKLSAgICAgICAgaW5m
byA9IGNvbnRleHQuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKHRhcmdldCwgcG5hbWUpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIGtUZXh0dXJlOgotICAgICAgICBpbmZvID0gY29udGV4dC5n
ZXRUZXhQYXJhbWV0ZXIodGFyZ2V0LCBwbmFtZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
a1ZlcnRleEF0dHJpYjoKLSAgICAgICAgLy8gdGFyZ2V0ID0+IGluZGV4Ci0gICAgICAgIGluZm8g
PSBjb250ZXh0LmdldFZlcnRleEF0dHJpYih0YXJnZXQsIHBuYW1lKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgfQotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgb2JqLT5nbG9iYWxPYmplY3QoKSwgaW5m
byk7CisgICAgYXV0byB0YXJnZXQgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMy
KCZzdGF0ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBhdXRv
IHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUs
ICpjb250ZXh0Lmdsb2JhbE9iamVjdCgpLCAoY29udGV4dC53cmFwcGVkKCkuKmdldHRlcikodGFy
Z2V0LCBwbmFtZSkpOwogfQogCi1lbnVtIFdoaWNoUHJvZ3JhbUNhbGwgewotICAgIGtQcm9ncmFt
UGFyYW1ldGVyLCBrVW5pZm9ybQotfTsKLQotc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUq
IGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdlYkdMRXh0ZW5zaW9uKiBl
eHRlbnNpb24pCitzdGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTRE9NR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFdlYkdMRXh0ZW5zaW9uKiBleHRlbnNpb24pCiB7CiAg
ICAgaWYgKCFleHRlbnNpb24pCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKICAgICBzd2l0Y2gg
KGV4dGVuc2lvbi0+Z2V0TmFtZSgpKSB7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xM
b3NlQ29udGV4dE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwg
c3RhdGljX2Nhc3Q8V2ViR0xMb3NlQ29udGV4dCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1
cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMTG9zZUNvbnRl
eHQqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRTaGFkZXJUZXh0
dXJlTE9ETmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxFWFRTaGFkZXJUZXh0dXJlTE9EKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUU2hhZGVyVGV4dHVy
ZUxPRCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpY05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9i
amVjdCwgc3RhdGljX2Nhc3Q8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9u
KSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBX
ZWJHTEV4dGVuc2lvbjo6RVhUc1JHQk5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUc1JHQio+KGV4dGVuc2lvbikpOworICAgICAgICBy
ZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVHNSR0IqPihl
eHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRGcmFnRGVwdGhOYW1lOgot
ICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVEZy
YWdEZXB0aCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9i
YWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVEZyYWdEZXB0aCo+KGV4dGVuc2lvbikpOwogICAgIGNh
c2UgV2ViR0xFeHRlbnNpb246OkVYVEJsZW5kTWluTWF4TmFtZToKLSAgICAgICAgcmV0dXJuIHRv
SlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRCbGVuZE1pbk1heCo+KGV4dGVu
c2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PEVYVEJsZW5kTWluTWF4Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVu
c2lvbjo6T0VTU3RhbmRhcmREZXJpdmF0aXZlc05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTU3RhbmRhcmREZXJpdmF0aXZlcyo+KGV4
dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0
YXRpY19jYXN0PE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMqPihleHRlbnNpb24pKTsKICAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpPRVNUZXh0dXJlRmxvYXROYW1lOgotICAgICAgICByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVGbG9hdCo+KGV4dGVu
c2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PE9FU1RleHR1cmVGbG9hdCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246Ok9FU1RleHR1cmVGbG9hdExpbmVhck5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0TGluZWFyKj4oZXh0
ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3Rh
dGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0TGluZWFyKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBX
ZWJHTEV4dGVuc2lvbjo6T0VTVGV4dHVyZUhhbGZGbG9hdE5hbWU6Ci0gICAgICAgIHJldHVybiB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUhhbGZGbG9hdCo+
KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3Qs
IHN0YXRpY19jYXN0PE9FU1RleHR1cmVIYWxmRmxvYXQqPihleHRlbnNpb24pKTsKICAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyTmFtZToKLSAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlSGFs
ZkZsb2F0TGluZWFyKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwg
Jmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcio+KGV4
dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1ZlcnRleEFycmF5T2JqZWN0
TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9K
Uygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0
Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTRWxlbWVudEluZGV4
VWludE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGlj
X2Nhc3Q8T0VTRWxlbWVudEluZGV4VWludCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4g
dG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU0VsZW1lbnRJbmRleFVp
bnQqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxXZWJHTERlYnVnUmVuZGVyZXJJbmZvKj4oZXh0ZW5zaW9uKSk7CisgICAgICAg
IHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Oldl
YkdMRGVidWdTaGFkZXJzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlYnVnU2hhZGVycyo+KGV4dGVuc2lvbikpOworICAgICAg
ICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVi
dWdTaGFkZXJzKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xD
b21wcmVzc2VkVGV4dHVyZUFUQ05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQyo+KGV4dGVuc2lv
bikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19j
YXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdl
YkdMRXh0ZW5zaW9uOjpXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVENOYW1lOgotICAgICAgICBy
ZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQyo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUs
ICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQyo+
KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQyo+KGV4dGVuc2lvbikpOworICAg
ICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVu
c2lvbjo6V2ViR0xEZXB0aFRleHR1cmVOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVwdGhUZXh0dXJlKj4oZXh0ZW5zaW9uKSk7
CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8
V2ViR0xEZXB0aFRleHR1cmUqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9u
OjpXZWJHTERyYXdCdWZmZXJzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERyYXdCdWZmZXJzKj4oZXh0ZW5zaW9uKSk7CisgICAg
ICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xE
cmF3QnVmZmVycyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkFOR0xF
SW5zdGFuY2VkQXJyYXlzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxBTkdMRUluc3RhbmNlZEFycmF5cyo+KGV4dGVuc2lvbikpOworICAg
ICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEFOR0xF
SW5zdGFuY2VkQXJyYXlzKj4oZXh0ZW5zaW9uKSk7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIHJldHVybiBqc051bGwoKTsKIH0KIAotYm9vbCBKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK2Jvb2wg
SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEhhbmRsZTxVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
IHsKICAgICBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGpzV2ViR0xSZW5kZXJpbmdDb250
ZXh0ID0ganNDYXN0PEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+KGhhbmRsZS5zbG90KCkt
PmFzQ2VsbCgpKTsKICAgICB2b2lkKiByb290ID0gV2ViQ29yZTo6cm9vdChqc1dlYkdMUmVuZGVy
aW5nQ29udGV4dC0+d3JhcHBlZCgpLmNhbnZhcygpKTsKQEAgLTMwNiw5ICsyMTgsOSBAQCBKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QXR0YWNoZWRTaGFkZXJzKEV4ZWNT
dGF0ZSYgc3RhdGUpCiAgICAgVmVjdG9yPFJlZlB0cjxXZWJHTFNoYWRlcj4+IHNoYWRlcnM7CiAg
ICAgaWYgKCFjb250ZXh0LmdldEF0dGFjaGVkU2hhZGVycyhwcm9ncmFtLCBzaGFkZXJzKSkKICAg
ICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgbGlz
dDsKLSAgICBmb3IgKHNpemVfdCBpaSA9IDA7IGlpIDwgc2hhZGVycy5zaXplKCk7ICsraWkpCi0g
ICAgICAgIGxpc3QuYXBwZW5kKHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgc2hhZGVyc1tp
aV0uZ2V0KCkpKTsKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBsaXN0OworICAgIGZvciAoYXV0
byYgc2hhZGVyIDogc2hhZGVycykKKyAgICAgICAgbGlzdC5hcHBlbmQodG9KUygmc3RhdGUsIGds
b2JhbE9iamVjdCgpLCBzaGFkZXIuZ2V0KCkpKTsKICAgICByZXR1cm4gY29uc3RydWN0QXJyYXko
JnN0YXRlLCAwLCBnbG9iYWxPYmplY3QoKSwgbGlzdCk7CiB9CiAKQEAgLTMyMCwxNCArMjMyLDE0
IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRFeHRlbnNpb24oRXhl
Y1N0YXRlJiBzdGF0ZSkKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAg
ICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKCZzdGF0ZSkpOwogICAgIAotICAgIFN0cmluZyBuYW1lID0gc3RhdGUudW5j
aGVja2VkQXJndW1lbnQoMCkudG9XVEZTdHJpbmcoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFs
T2JqZWN0KCksIHdyYXBwZWQoKS5nZXRFeHRlbnNpb24obmFtZSkpOworICAgIGF1dG8gbmFtZSA9
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvV1RGU3RyaW5nKCZzdGF0ZSk7CisgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmds
b2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0RXh0ZW5zaW9uKG5hbWUpKTsKIH0KIAogSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFtZXRlcihFeGVjU3Rh
dGUmIHN0YXRlKQogewotICAgIHJldHVybiBnZXRPYmplY3RQYXJhbWV0ZXIodGhpcywgc3RhdGUs
IGtCdWZmZXIpOworICAgIHJldHVybiBvYmplY3RQYXJhbWV0ZXIoKnRoaXMsIHN0YXRlLCAmV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVyUGFyYW1ldGVyKTsKIH0KIAogSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBh
cmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQpAQCAtMzM4LDEzICsyNTAsMTMgQEAgSlNWYWx1ZSBK
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlcihFeGVjU3RhdGUKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDMpCiAgICAg
ICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICB1bnNpZ25lZCB0YXJnZXQgPSBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICB1bnNpZ25lZCBhdHRhY2htZW50ID0gc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgdW5zaWduZWQgcG5hbWUgPSBzdGF0ZS51
bmNoZWNrZWRBcmd1bWVudCgyKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9i
amVjdCgpLCB3cmFwcGVkKCkuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKHRhcmdl
dCwgYXR0YWNobWVudCwgcG5hbWUpKTsKKyAgICBhdXRvIHRhcmdldCA9IHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOworICAgIGF1dG8gYXR0YWNobWVudCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDEpLnRvSW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OworICAgIGF1dG8gcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKS50b0ludDMyKCZz
dGF0ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4g
dG9KUyhzdGF0ZSwgKmdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0RnJhbWVidWZmZXJBdHRh
Y2htZW50UGFyYW1ldGVyKHRhcmdldCwgYXR0YWNobWVudCwgcG5hbWUpKTsKIH0KIAogSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFBhcmFtZXRlcihFeGVjU3RhdGUmIHN0
YXRlKQpAQCAtMzU1LDkgKzI2Nyw5IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICBpZiAoc3RhdGUuYXJndW1l
bnRDb3VudCgpICE9IDEpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNj
b3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICB1
bnNpZ25lZCBwbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRl
KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRQYXJhbWV0ZXIocG5h
bWUpKTsKKyAgICBhdXRvIHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkudG9JbnQz
Migmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0
dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFBhcmFtZXRlcihw
bmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJv
Z3JhbVBhcmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQpAQCAtMzY4LDE3ICsyODAsMTcgQEAgSlNW
YWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJhbWV0ZXIoRXhl
Y1N0YXRlJiBzdGF0ZSkKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDIpCiAgICAg
ICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0g
PSBKU1dlYkdMUHJvZ3JhbTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsK
KyAgICBhdXRvKiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvV3JhcHBlZChzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFwcm9ncmFtICYmICFzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgdW5zaWduZWQgcG5hbWUgPSBzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgSlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgp
LCB3cmFwcGVkKCkuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBwbmFtZSkpOworICAgIGF1
dG8gcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Cisg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0
ZSwgKmdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFt
LCBwbmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGdl
dE9iamVjdFBhcmFtZXRlcih0aGlzLCBzdGF0ZSwga1JlbmRlcmJ1ZmZlcik7CisgICAgcmV0dXJu
IG9iamVjdFBhcmFtZXRlcigqdGhpcywgc3RhdGUsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0U2hhZGVyUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC0z
OTMsOCArMzA1LDggQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNo
YWRlclBhcmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoJnN0YXRlLCBzY29wZSk7CiAgICAgV2ViR0xTaGFkZXIqIHNoYWRlciA9IEpTV2ViR0xT
aGFkZXI6OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgdW5zaWdu
ZWQgcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Ci0g
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gdG9K
Uygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0U2hhZGVyUGFyYW1ldGVyKHNo
YWRlciwgcG5hbWUpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAg
IHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRTaGFkZXJQ
YXJhbWV0ZXIoc2hhZGVyLCBwbmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucyhFeGVjU3RhdGUmIHN0YXRlKQpAQCAt
NDEwLDcgKzMyMiw3IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRT
dXBwb3J0ZWRFeHRlbnNpb25zKEV4ZWNTdGF0ZSYgc3RhdGUpCiAKIEpTVmFsdWUgSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsK
LSAgICByZXR1cm4gZ2V0T2JqZWN0UGFyYW1ldGVyKHRoaXMsIHN0YXRlLCBrVGV4dHVyZSk7Cisg
ICAgcmV0dXJuIG9iamVjdFBhcmFtZXRlcigqdGhpcywgc3RhdGUsICZXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybShFeGVjU3RhdGUmIHN0YXRlKQpAQCAtNDI3LDM2ICsz
MzksMzUgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0o
RXhlY1N0YXRlJiBzdGF0ZSkKICAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBK
U1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MSkpOwogICAgIGlmICghbG9jYXRpb24gJiYgIXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLmlz
VW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUs
IHNjb3BlKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVk
KCkuZ2V0VW5pZm9ybShwcm9ncmFtLCBsb2NhdGlvbikpOworICAgIHJldHVybiB0b0pTKHN0YXRl
LCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRVbmlmb3JtKHByb2dyYW0sIGxvY2F0aW9u
KSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhB
dHRyaWIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4gZ2V0T2JqZWN0UGFyYW1ldGVy
KHRoaXMsIHN0YXRlLCBrVmVydGV4QXR0cmliKTsKKyAgICByZXR1cm4gb2JqZWN0UGFyYW1ldGVy
KCp0aGlzLCBzdGF0ZSwgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0dHJp
Yik7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eT4KLWJv
b2wgdG9WZWN0b3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFZl
Y3RvcjxULCBpbmxpbmVDYXBhY2l0eT4mIHZlY3RvcikKK3RlbXBsYXRlPHR5cGVuYW1lIFZlY3Rv
clR5cGU+IGJvb2wgdG9OdW1iZXJWZWN0b3IoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1
ZSwgVmVjdG9yVHlwZSYgdmVjdG9yKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKCF2YWx1ZS5p
c09iamVjdCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgSlNDOjpKU09iamVj
dCogb2JqZWN0ID0gYXNPYmplY3QodmFsdWUpOwotICAgIGludDMyX3QgbGVuZ3RoID0gb2JqZWN0
LT5nZXQoJnN0YXRlLCBzdGF0ZS52bSgpLnByb3BlcnR5TmFtZXMtPmxlbmd0aCkudG9JbnQzMigm
c3RhdGUpOwotICAgIAorCisgICAgYXV0byYgb2JqZWN0ID0gKmFzT2JqZWN0KHZhbHVlKTsKKyAg
ICBpbnQzMl90IGxlbmd0aCA9IG9iamVjdC5nZXQoJnN0YXRlLCBzdGF0ZS52bSgpLnByb3BlcnR5
TmFtZXMtPmxlbmd0aCkudG9JbnQzMigmc3RhdGUpOworCiAgICAgaWYgKCF2ZWN0b3IudHJ5UmVz
ZXJ2ZUNhcGFjaXR5KGxlbmd0aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB2ZWN0b3Iu
cmVzaXplKGxlbmd0aCk7Ci0gICAgCisKICAgICBmb3IgKGludDMyX3QgaSA9IDA7IGkgPCBsZW5n
dGg7ICsraSkgewotICAgICAgICBKU0M6OkpTVmFsdWUgdiA9IG9iamVjdC0+Z2V0KCZzdGF0ZSwg
aSk7CisgICAgICAgIGF1dG8gdmFsdWUgPSBvYmplY3QuZ2V0KCZzdGF0ZSwgaSk7CisgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICAgICAgdmVjdG9yLnVuY2hl
Y2tlZEFwcGVuZCh2YWx1ZS50b051bWJlcigmc3RhdGUpKTsKICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZmFsc2UpOwotICAgICAgICB2ZWN0b3JbaV0gPSBzdGF0aWNfY2FzdDxU
Pih2LnRvTnVtYmVyKCZzdGF0ZSkpOwogICAgIH0KLSAgICAKKwogICAgIHJldHVybiB0cnVlOwog
fQogCkBAIC00NjksNyArMzgwLDcgQEAgZW51bSBEYXRhRnVuY3Rpb25NYXRyaXhUb0NhbGwgewog
ICAgIGZfdW5pZm9ybU1hdHJpeDJmdiwgZl91bmlmb3JtTWF0cml4M2Z2LCBmX3VuaWZvcm1NYXRy
aXg0ZnYKIH07CiAKLXN0YXRpYyBib29sIGZ1bmN0aW9uRm9yVW5pZm9ybShEYXRhRnVuY3Rpb25U
b0NhbGwgZikKK3N0YXRpYyBpbmxpbmUgYm9vbCBmdW5jdGlvbkZvclVuaWZvcm0oRGF0YUZ1bmN0
aW9uVG9DYWxsIGYpCiB7CiAgICAgc3dpdGNoIChmKSB7CiAgICAgY2FzZSBmX3VuaWZvcm0xdjoK
QEAgLTQ3NywxMiArMzg4LDEyIEBAIHN0YXRpYyBib29sIGZ1bmN0aW9uRm9yVW5pZm9ybShEYXRh
RnVuY3Rpb25Ub0NhbGwgZikKICAgICBjYXNlIGZfdW5pZm9ybTN2OgogICAgIGNhc2UgZl91bmlm
b3JtNHY6CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGRlZmF1bHQ6IGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwog
fQogCi1zdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxs
IGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29u
dGV4dCkKK3N0YXRpYyBKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYs
IEV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiB7
CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC00OTAsMjIgKzQwMSwxOSBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRh
dGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwg
VwogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgIT0gMikKICAgICAgICAgcmV0dXJuIHRo
cm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KCZzdGF0ZSkpOwogICAgIAotICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IDA7
Ci0gICAgbG9uZyBpbmRleCA9IC0xOwotICAgIAorICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBs
b2NhdGlvbiA9IG51bGxwdHI7CisgICAgR0x1aW50IGluZGV4ID0gLTE7CisKICAgICBpZiAoZnVu
Y3Rpb25Gb3JVbmlmb3JtKGYpKSB7CiAgICAgICAgIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1M
b2NhdGlvbjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICAgICAg
aWYgKCFsb2NhdGlvbiAmJiAhc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRP
ck51bGwoKSkKICAgICAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3Bl
KTsKLSAgICB9IGVsc2UKKyAgICB9IGVsc2UgewogICAgICAgICBpbmRleCA9IHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKLSAgICAKLSAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIAotICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+
IHdlYkdMQXJyYXkgPSB0b1Vuc2hhcmVkRmxvYXQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAg
IAotICAgIGlmICh3ZWJHTEFycmF5KSB7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisgICAgfQorCisgICAgaWYgKGF1dG8gd2ViR0xBcnJheSA9IHRvVW5zaGFyZWRG
bG9hdDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpKSB7CiAgICAgICAgIHN3aXRj
aCAoZikgewogICAgICAgICBjYXNlIGZfdW5pZm9ybTF2OgogICAgICAgICAgICAgY29udGV4dC51
bmlmb3JtMWZ2KGxvY2F0aW9uLCAqd2ViR0xBcnJheSk7CkBAIC01MzIsMTQgKzQ0MCwxMyBAQCBz
dGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpT
Qzo6RXhlY1N0YXRlJiBzdGF0ZSwgVwogICAgICAgICAgICAgY29udGV4dC52ZXJ0ZXhBdHRyaWI0
ZnYoaW5kZXgsICp3ZWJHTEFycmF5KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0g
ICAgICAgIAogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgCisKICAg
ICBWZWN0b3I8ZmxvYXQsIDY0PiBhcnJheTsKLSAgICBpZiAoIXRvVmVjdG9yKHN0YXRlLCBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgxKSwgYXJyYXkpKQorICAgIGlmICghdG9OdW1iZXJWZWN0b3Io
c3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLCBhcnJheSkpCiAgICAgICAgIHJldHVy
biB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICAKKwogICAgIHN3aXRjaCAoZikg
ewogICAgIGNhc2UgZl91bmlmb3JtMXY6CiAgICAgICAgIGNvbnRleHQudW5pZm9ybTFmdihsb2Nh
dGlvbiwgYXJyYXkuZGF0YSgpLCBhcnJheS5zaXplKCkpOwpAQCAtNTY2LDI1ICs0NzMsMjIgQEAg
c3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25mKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBK
U0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAgICAgICAgY29udGV4dC52ZXJ0ZXhBdHRyaWI0ZnYo
aW5kZXgsIGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQotICAgIAogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgSlNDOjpKU1Zh
bHVlIGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBz
dGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCkKK3N0YXRpYyBKU1ZhbHVl
IGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEV4ZWNTdGF0ZSYgc3RhdGUsIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUu
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBp
ZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDIpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2Vw
dGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUp
KTsKLSAgICAKLSAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5p
Zm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworCisg
ICAgYXV0byogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghbG9jYXRpb24gJiYgIXN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0
aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICAKLSAgICBSZWZQdHI8SW50MzJBcnJh
eT4gd2ViR0xBcnJheSA9IHRvVW5zaGFyZWRJbnQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpKTsKLSAgICAKLSAgICBpZiAod2ViR0xBcnJheSkgeworCisgICAgaWYgKGF1dG8gd2Vi
R0xBcnJheSA9IHRvVW5zaGFyZWRJbnQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEp
KSkgewogICAgICAgICBzd2l0Y2ggKGYpIHsKICAgICAgICAgY2FzZSBmX3VuaWZvcm0xdjoKICAg
ICAgICAgICAgIGNvbnRleHQudW5pZm9ybTFpdihsb2NhdGlvbiwgKndlYkdMQXJyYXkpOwpAQCAt
NjAxLDE1ICs1MDUsMTMgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25pKERhdGFG
dW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgCi0gICAgCisKICAgICBWZWN0b3I8aW50LCA2
ND4gYXJyYXk7Ci0gICAgaWYgKCF0b1ZlY3RvcihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMSksIGFycmF5KSkKKyAgICBpZiAoIXRvTnVtYmVyVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgxKSwgYXJyYXkpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3Io
JnN0YXRlLCBzY29wZSk7Ci0gICAgCisKICAgICBzd2l0Y2ggKGYpIHsKICAgICBjYXNlIGZfdW5p
Zm9ybTF2OgogICAgICAgICBjb250ZXh0LnVuaWZvcm0xaXYobG9jYXRpb24sIGFycmF5LmRhdGEo
KSwgYXJyYXkuc2l6ZSgpKTsKQEAgLTYyNiwyOCArNTI4LDI1IEBAIHN0YXRpYyBKU0M6OkpTVmFs
dWUgZGF0YUZ1bmN0aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0
YXRlLCBXCiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIAogICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlv
bk1hdHJpeChEYXRhRnVuY3Rpb25NYXRyaXhUb0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRl
LCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQorc3RhdGljIEpTVmFsdWUgZGF0
YUZ1bmN0aW9uTWF0cml4KERhdGFGdW5jdGlvbk1hdHJpeFRvQ2FsbCBmLCBFeGVjU3RhdGUmIHN0
YXRlLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQogewogICAgIFZNJiB2bSA9
IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
CiAgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSAhPSAzKQogICAgICAgICByZXR1cm4gdGhy
b3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
JnN0YXRlKSk7Ci0gICAgCi0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gSlNX
ZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDAp
KTsKKworICAgIGF1dG8qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFw
cGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIWxvY2F0aW9uICYmICFz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgCisKICAgICBib29sIHRy
YW5zcG9zZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvQm9vbGVhbigmc3RhdGUpOwot
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgCi0gICAgUmVm
UHRyPEZsb2F0MzJBcnJheT4gd2ViR0xBcnJheSA9IHRvVW5zaGFyZWRGbG9hdDMyQXJyYXkoc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMikpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHsgfSk7CiAKLSAgICBpZiAod2ViR0xBcnJheSkgeworICAgIGlmIChhdXRvIHdlYkdMQXJyYXkg
PSB0b1Vuc2hhcmVkRmxvYXQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKSkgewog
ICAgICAgICBzd2l0Y2ggKGYpIHsKICAgICAgICAgY2FzZSBmX3VuaWZvcm1NYXRyaXgyZnY6CiAg
ICAgICAgICAgICBjb250ZXh0LnVuaWZvcm1NYXRyaXgyZnYobG9jYXRpb24sIHRyYW5zcG9zZSwg
KndlYkdMQXJyYXkpOwpAQCAtNjU5LDE0ICs1NTgsMTMgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBk
YXRhRnVuY3Rpb25NYXRyaXgoRGF0YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYsIEpTQzo6RXhlY1N0
YXQKICAgICAgICAgICAgIGNvbnRleHQudW5pZm9ybU1hdHJpeDRmdihsb2NhdGlvbiwgdHJhbnNw
b3NlLCAqd2ViR0xBcnJheSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotCiAgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KLSAgICAKKwogICAgIFZlY3RvcjxmbG9h
dCwgNjQ+IGFycmF5OwotICAgIGlmICghdG9WZWN0b3Ioc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDIpLCBhcnJheSkpCisgICAgaWYgKCF0b051bWJlclZlY3RvcihzdGF0ZSwgc3RhdGUu
dW5jaGVja2VkQXJndW1lbnQoMiksIGFycmF5KSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVy
cm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgIAorCiAgICAgc3dpdGNoIChmKSB7CiAgICAgY2FzZSBm
X3VuaWZvcm1NYXRyaXgyZnY6CiAgICAgICAgIGNvbnRleHQudW5pZm9ybU1hdHJpeDJmdihsb2Nh
dGlvbiwgdHJhbnNwb3NlLCBhcnJheS5kYXRhKCksIGFycmF5LnNpemUoKSk7CkBAIC02NzgsODEg
KzU3Niw4MCBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbk1hdHJpeChEYXRhRnVu
Y3Rpb25NYXRyaXhUb0NhbGwgZiwgSlNDOjpFeGVjU3RhdAogICAgICAgICBjb250ZXh0LnVuaWZv
cm1NYXRyaXg0ZnYobG9jYXRpb24sIHRyYW5zcG9zZSwgYXJyYXkuZGF0YSgpLCBhcnJheS5zaXpl
KCkpOwogICAgICAgICBicmVhazsKICAgICB9Ci0KICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
IH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFm
dihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6dW5pZm9ybTFmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVu
Y3Rpb25mKGZfdW5pZm9ybTF2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFpdihKU0M6OkV4ZWNTdGF0ZSYg
c3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFpdihF
eGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5pZm9ybTF2
LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dW5pZm9ybTJmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTJmdihFeGVjU3RhdGUmIHN0YXRlKQog
ewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdW5pZm9ybTJ2LCBzdGF0ZSwgd3JhcHBlZCgp
KTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9y
bTJpdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6dW5pZm9ybTJpdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRh
RnVuY3Rpb25pKGZfdW5pZm9ybTJ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTNmdihKU0M6OkV4ZWNTdGF0
ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTNm
dihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdW5pZm9y
bTN2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6dW5pZm9ybTNpdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTNpdihFeGVjU3RhdGUmIHN0YXRl
KQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5pZm9ybTN2LCBzdGF0ZSwgd3JhcHBl
ZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5p
Zm9ybTRmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dW5pZm9ybTRmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBk
YXRhRnVuY3Rpb25mKGZfdW5pZm9ybTR2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTRpdihKU0M6OkV4ZWNT
dGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9y
bTRpdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5p
Zm9ybTR2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDJmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUp
CitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDJmdihF
eGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25NYXRyaXgoZl91bmlm
b3JtTWF0cml4MmZ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDNmdihKU0M6OkV4ZWNTdGF0ZSYg
c3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJp
eDNmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25NYXRyaXgo
Zl91bmlmb3JtTWF0cml4M2Z2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDRmdihKU0M6OkV4ZWNT
dGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9y
bU1hdHJpeDRmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25N
YXRyaXgoZl91bmlmb3JtTWF0cml4NGZ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMWZ2KEpTQzo6
RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2
ZXJ0ZXhBdHRyaWIxZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0
aW9uZihmX3ZlcnRleEF0dHJpYjF2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMmZ2KEpTQzo6RXhl
Y1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0
ZXhBdHRyaWIyZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9u
ZihmX3ZlcnRleEF0dHJpYjJ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliM2Z2KEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhB
dHRyaWIzZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihm
X3ZlcnRleEF0dHJpYjN2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliNGZ2KEpTQzo6RXhlY1N0YXRl
JiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRy
aWI0ZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3Zl
cnRleEF0dHJpYjR2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IDlmYTI5NDA3OGJiYWNh
M2RjMjc2MTA3MGE0OGIyOGI1YjcyY2M2NGQuLmUxMmEyNDBkN2U2ODdiOWNhNjk2NDBkODJkNmM0
MzRmZTc4ZDZhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
TW9kdWxlTG9hZGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0xMzUsNiArMTM1LDEwIEBAIEpTQzo6SlNJbnRlcm5hbFBy
b21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBq
c0dsb2JhCiAKIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0
Y2goSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlLCBK
U0M6OkpTVmFsdWUgaW5pdGlhdG9yKQogeworICAgIC8vIEZJWE1FOiBXaGF0IGd1YXJhbnRlZXMg
dGhlc2UgYXJlIHRydWU/IFdoeSBkb24ndCB3ZSBuZWVkIHRvIGNoZWNrPworICAgIEFTU0VSVChK
U0M6OmpzRHluYW1pY0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKSk7CisgICAgQVNTRVJUKGlz
U2NyaXB0RWxlbWVudChKU0M6OmpzRHluYW1pY0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKS0+
d3JhcHBlZCgpKSk7CisKICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqSlNDOjpqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihqc0dsb2JhbE9iamVjdCk7CiAgICAgYXV0byYganNQcm9taXNlID0g
KkpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsICZnbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gZGVmZXJyZWQgPSBEZWZlcnJlZFByb21pc2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIGpzUHJvbWlzZSk7CkBAIC0xNTYsMTcgKzE2MCwxMiBAQCBKU0M6OkpTSW50ZXJuYWxQ
cm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpz
R2xvYmFsTwogICAgICAgICByZXR1cm4ganNQcm9taXNlLnByb21pc2UoKTsKICAgICB9CiAKLSAg
ICBBU1NFUlRfV0lUSF9NRVNTQUdFKEpTQzo6anNEeW5hbWljQ2FzdDxKU0VsZW1lbnQqPihpbml0
aWF0b3IpLCAiSW5pdGlhdG9yIHNob3VsZCBiZSBhbiBKU0VsZW1lbnQiKTsKLSAgICBhdXRvKiBz
Y3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmSlNDOjpqc0Nhc3Q8SlNF
bGVtZW50Kj4oaW5pdGlhdG9yKS0+d3JhcHBlZCgpKTsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KHNjcmlwdEVsZW1lbnQsICJJbml0aWF0b3Igc2hvdWxkIGJlIFNjcmlwdEVsZW1lbnQuIik7Ci0K
ICAgICBpZiAoYXV0byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgYXV0
byBsb2FkZXIgPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJy
ZWQuZ2V0KCkpOwogICAgICAgICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOwotICAg
ICAgICBpZiAoIWxvYWRlci0+bG9hZCgqc2NyaXB0RWxlbWVudCwgY29tcGxldGVkVVJMKSkgewor
ICAgICAgICBpZiAoIWxvYWRlci0+bG9hZChkb3duY2FzdFNjcmlwdEVsZW1lbnQoSlNDOjpqc0Nh
c3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKS0+d3JhcHBlZCgpKSwgY29tcGxldGVkVVJMKSkgewog
ICAgICAgICAgICAgbG9hZGVyLT5jbGVhckNsaWVudCgpOwogICAgICAgICAgICAgbV9sb2FkZXJz
LnJlbW92ZShXVEZNb3ZlKGxvYWRlcikpOwotCiAgICAgICAgICAgICBkZWZlcnJlZC0+cmVqZWN0
KGZyYW1lLT5zY3JpcHQoKS5tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgp
KTsKICAgICAgICAgICAgIHJldHVybiBqc1Byb21pc2UucHJvbWlzZSgpOwogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDRjNDNiZGQxZDdlNDgyNzYzOWVhYTNmNDU3YTg1NGE1NzI1
NmUwYTAuLjk3MmJlYjFlZmNiMmMzNzgyOTIwNjdlZTc2ZDY5YjIxZTBjODg2NWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC0zLDcgKzMsNyBAQAogICogICAgICAgICAgIChDKSAxOTk5IEFudHRp
IEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERpcmsg
TXVlbGxlciAobXVlbGxlckBrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQ
cm9za3VyeWFrb3YgKGFwQHdlYmtpdC5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCwg
MjAxMi0yMDEzLCAyMDE1LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC02
Niw5ICs2Niw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRXhlY1N0YXRlOwotI2lmIEVO
QUJMRShXRUJfUkVQTEFZKQogY2xhc3MgSW5wdXRDdXJzb3I7Ci0jZW5kaWYKIH0KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtOTksOCArOTcsOCBAQCBjbGFzcyBEb2N1bWVudFBhcnNlcjsKIGNs
YXNzIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbDsKIGNsYXNzIERvY3VtZW50VHlwZTsKIGNsYXNz
IEV4dGVuc2lvblN0eWxlU2hlZXRzOwotY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgRmxvYXRRdWFk
OworY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgRm9ybUNvbnRyb2xsZXI7CiBjbGFzcyBGcmFtZTsK
IGNsYXNzIEZyYW1lVmlldzsKQEAgLTEyMSwxMSArMTE5LDEwIEBAIGNsYXNzIEhUTUxTY3JpcHRF
bGVtZW50OwogY2xhc3MgSGl0VGVzdFJlcXVlc3Q7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xh
c3MgSW50UG9pbnQ7CitjbGFzcyBKU05vZGU7CiBjbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExh
eW91dFJlY3Q7CiBjbGFzcyBMaXZlTm9kZUxpc3Q7Ci1jbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXI7
Ci1jbGFzcyBKU05vZGU7CiBjbGFzcyBMb2NhbGU7CiBjbGFzcyBMb2NhdGlvbjsKIGNsYXNzIE1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lcjsKQEAgLTEzMyw3ICsxMzAsNiBAQCBjbGFzcyBNZWRpYVBsYXli
YWNrVGFyZ2V0OwogY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldENsaWVudDsKIGNsYXNzIE1lZGlh
UXVlcnlMaXN0OwogY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXI7Ci1jbGFzcyBTY3JpcHRNb2R1bGVM
b2FkZXI7CiBjbGFzcyBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3MgTmFtZWRG
bG93Q29sbGVjdGlvbjsKIGNsYXNzIE5vZGVGaWx0ZXI7CkBAIC0xNDMsMjMgKzEzOSwyNCBAQCBj
bGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiBjbGFzcyBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb247CiBj
bGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgUmFuZ2U7Ci1jbGFzcyBSZW5kZXJWaWV3OwogY2xh
c3MgUmVuZGVyRnVsbFNjcmVlbjsKLWNsYXNzIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlcjsKK2Ns
YXNzIFJlbmRlclZpZXc7CitjbGFzcyBTVkdEb2N1bWVudEV4dGVuc2lvbnM7CitjbGFzcyBTVkdT
VkdFbGVtZW50OwogY2xhc3MgU2NyaXB0RWxlbWVudERhdGE7CitjbGFzcyBTY3JpcHRNb2R1bGVM
b2FkZXI7CiBjbGFzcyBTY3JpcHRSdW5uZXI7CitjbGFzcyBTY3JpcHRhYmxlRG9jdW1lbnRQYXJz
ZXI7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFNlZ21lbnRlZFN0cmluZzsKIGNsYXNz
IFNlbGVjdG9yUXVlcnk7CiBjbGFzcyBTZWxlY3RvclF1ZXJ5Q2FjaGU7CiBjbGFzcyBTZXJpYWxp
emVkU2NyaXB0VmFsdWU7Ci1jbGFzcyBTZWdtZW50ZWRTdHJpbmc7CiBjbGFzcyBTZXR0aW5nczsK
IGNsYXNzIFN0eWxlUmVzb2x2ZXI7CiBjbGFzcyBTdHlsZVNoZWV0OwogY2xhc3MgU3R5bGVTaGVl
dENvbnRlbnRzOwogY2xhc3MgU3R5bGVTaGVldExpc3Q7Ci1jbGFzcyBTVkdEb2N1bWVudEV4dGVu
c2lvbnM7Ci1jbGFzcyBTVkdTVkdFbGVtZW50OwogY2xhc3MgVGV4dDsKIGNsYXNzIFRleHRSZXNv
dXJjZURlY29kZXI7CiBjbGFzcyBUcmVlV2Fsa2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1BlbmRpbmdTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3Jp
cHQuY3BwCmluZGV4IDJiZTBlMmViOTAzMmRkMzg5YWI1NzRkNDgwODYwNGYyZTZiZmI1NDkuLjJm
OTg2ODIyYWYzYWU3MWE0MTA1N2IxMDQ3ZDVlMmY1ZGI5MjBkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UGVuZGluZ1NjcmlwdC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yNiwzMCArMjcsMzAgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAKLSNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiUGVuZGluZ1NjcmlwdENsaWVudC5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8UGVuZGluZ1NjcmlwdD4gUGVuZGluZ1Njcmlw
dDo6Y3JlYXRlKEVsZW1lbnQmIGVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlw
dCkKK1JlZjxQZW5kaW5nU2NyaXB0PiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoU2NyaXB0RWxlbWVu
dCYgZWxlbWVudCwgTG9hZGFibGVTY3JpcHQmIGxvYWRhYmxlU2NyaXB0KQogewotICAgIFJlZjxQ
ZW5kaW5nU2NyaXB0PiBwZW5kaW5nU2NyaXB0ID0gYWRvcHRSZWYoKm5ldyBQZW5kaW5nU2NyaXB0
KGVsZW1lbnQsIGxvYWRhYmxlU2NyaXB0KSk7CisgICAgYXV0byBwZW5kaW5nU2NyaXB0ID0gYWRv
cHRSZWYoKm5ldyBQZW5kaW5nU2NyaXB0KGVsZW1lbnQsIGxvYWRhYmxlU2NyaXB0KSk7CiAgICAg
bG9hZGFibGVTY3JpcHQuYWRkQ2xpZW50KHBlbmRpbmdTY3JpcHQuZ2V0KCkpOwogICAgIHJldHVy
biBwZW5kaW5nU2NyaXB0OwogfQogCi1SZWY8UGVuZGluZ1NjcmlwdD4gUGVuZGluZ1NjcmlwdDo6
Y3JlYXRlKEVsZW1lbnQmIGVsZW1lbnQsIFRleHRQb3NpdGlvbiBzY3JpcHRTdGFydFBvc2l0aW9u
KQorUmVmPFBlbmRpbmdTY3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShTY3JpcHRFbGVtZW50
JiBlbGVtZW50LCBUZXh0UG9zaXRpb24gc2NyaXB0U3RhcnRQb3NpdGlvbikKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBQZW5kaW5nU2NyaXB0KGVsZW1lbnQsIHNjcmlwdFN0YXJ0UG9zaXRp
b24pKTsKIH0KIAotUGVuZGluZ1NjcmlwdDo6UGVuZGluZ1NjcmlwdChFbGVtZW50JiBlbGVtZW50
LCBUZXh0UG9zaXRpb24gc3RhcnRpbmdQb3NpdGlvbikKK1BlbmRpbmdTY3JpcHQ6OlBlbmRpbmdT
Y3JpcHQoU2NyaXB0RWxlbWVudCYgZWxlbWVudCwgVGV4dFBvc2l0aW9uIHN0YXJ0aW5nUG9zaXRp
b24pCiAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKICAgICAsIG1fc3RhcnRpbmdQb3NpdGlvbihz
dGFydGluZ1Bvc2l0aW9uKQogewogfQogCi1QZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KEVs
ZW1lbnQmIGVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlwdCkKK1BlbmRpbmdT
Y3JpcHQ6OlBlbmRpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCYgZWxlbWVudCwgTG9hZGFibGVTY3Jp
cHQmIGxvYWRhYmxlU2NyaXB0KQogICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX2xv
YWRhYmxlU2NyaXB0KCZsb2FkYWJsZVNjcmlwdCkKIHsKQEAgLTYxLDExICs2Miw2IEBAIFBlbmRp
bmdTY3JpcHQ6On5QZW5kaW5nU2NyaXB0KCkKICAgICAgICAgbV9sb2FkYWJsZVNjcmlwdC0+cmVt
b3ZlQ2xpZW50KCp0aGlzKTsKIH0KIAotTG9hZGFibGVTY3JpcHQqIFBlbmRpbmdTY3JpcHQ6Omxv
YWRhYmxlU2NyaXB0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9sb2FkYWJsZVNjcmlwdC5nZXQo
KTsKLX0KLQogdm9pZCBQZW5kaW5nU2NyaXB0Ojpub3RpZnlDbGllbnRGaW5pc2hlZCgpCiB7CiAg
ICAgUmVmPFBlbmRpbmdTY3JpcHQ+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwpAQCAtODgsMTAgKzg0
LDEwIEBAIGJvb2wgUGVuZGluZ1NjcmlwdDo6ZXJyb3IoKSBjb25zdAogICAgIHJldHVybiBtX2xv
YWRhYmxlU2NyaXB0ICYmIG1fbG9hZGFibGVTY3JpcHQtPmVycm9yKCk7CiB9CiAKLXZvaWQgUGVu
ZGluZ1NjcmlwdDo6c2V0Q2xpZW50KFBlbmRpbmdTY3JpcHRDbGllbnQqIGNsaWVudCkKK3ZvaWQg
UGVuZGluZ1NjcmlwdDo6c2V0Q2xpZW50KFBlbmRpbmdTY3JpcHRDbGllbnQmIGNsaWVudCkKIHsK
ICAgICBBU1NFUlQoIW1fY2xpZW50KTsKLSAgICBtX2NsaWVudCA9IGNsaWVudDsKKyAgICBtX2Ns
aWVudCA9ICZjbGllbnQ7CiAgICAgaWYgKGlzTG9hZGVkKCkpCiAgICAgICAgIG5vdGlmeUNsaWVu
dEZpbmlzaGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1Nj
cmlwdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaAppbmRleCA5OTBmMjUw
ODNiMDFiMDI3YzRhYzAxNDE3ZjhmNDkxNmE5ZThlNjY2Li5mYzc1OGQwN2RkNjBkZWMzMThiYjg4
ZGFkMDc4N2Y4NDg4MmY4MjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGlu
Z1NjcmlwdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKQEAgLTM0
LDE1ICszNCwxNSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRTY3JpcHQ7
Ci1jbGFzcyBFbGVtZW50OwogY2xhc3MgUGVuZGluZ1NjcmlwdENsaWVudDsKK2NsYXNzIFNjcmlw
dEVsZW1lbnQ7CiAKIC8vIEEgY29udGFpbmVyIGZvciBzY3JpcHRzIHdoaWNoIG1heSBiZSBsb2Fk
ZWQgYW5kIGV4ZWN1dGVkLgogLy8gVGhpcyBjYW4gaG9sZCBMb2FkYWJsZVNjcmlwdCBhbmQgbm9u
IGV4dGVybmFsIGlubGluZSBzY3JpcHQuCiBjbGFzcyBQZW5kaW5nU2NyaXB0IGZpbmFsIDogcHVi
bGljIFJlZkNvdW50ZWQ8UGVuZGluZ1NjcmlwdD4sIHB1YmxpYyBMb2FkYWJsZVNjcmlwdENsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0PiBjcmVhdGUoRWxlbWVu
dCYsIExvYWRhYmxlU2NyaXB0Jik7Ci0gICAgc3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0PiBjcmVh
dGUoRWxlbWVudCYsIFRleHRQb3NpdGlvbiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICBzdGF0
aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IGNyZWF0ZShTY3JpcHRFbGVtZW50JiwgTG9hZGFibGVTY3Jp
cHQmKTsKKyAgICBzdGF0aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IGNyZWF0ZShTY3JpcHRFbGVtZW50
JiwgVGV4dFBvc2l0aW9uIHNjcmlwdFN0YXJ0UG9zaXRpb24pOwogCiAgICAgdmlydHVhbCB+UGVu
ZGluZ1NjcmlwdCgpOwogCkBAIC01MSw4ICs1MSw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgd2F0
Y2hpbmdGb3JMb2FkKCkgY29uc3QgeyByZXR1cm4gbmVlZHNMb2FkaW5nKCkgJiYgbV9jbGllbnQ7
IH0KIAotICAgIEVsZW1lbnQmIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0K
LSAgICBjb25zdCBFbGVtZW50JiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50Lmdl
dCgpOyB9CisgICAgU2NyaXB0RWxlbWVudCYgZWxlbWVudCgpIHsgcmV0dXJuIG1fZWxlbWVudC5n
ZXQoKTsgfQorICAgIGNvbnN0IFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQoKSBjb25zdCB7IHJldHVy
biBtX2VsZW1lbnQuZ2V0KCk7IH0KIAogICAgIExvYWRhYmxlU2NyaXB0KiBsb2FkYWJsZVNjcmlw
dCgpIGNvbnN0OwogICAgIGJvb2wgbmVlZHNMb2FkaW5nKCkgY29uc3QgeyByZXR1cm4gbG9hZGFi
bGVTY3JpcHQoKTsgfQpAQCAtNjIsMTkgKzYyLDI0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbm90
aWZ5RmluaXNoZWQoTG9hZGFibGVTY3JpcHQmKSBvdmVycmlkZTsKIAotICAgIHZvaWQgc2V0Q2xp
ZW50KFBlbmRpbmdTY3JpcHRDbGllbnQqKTsKKyAgICB2b2lkIHNldENsaWVudChQZW5kaW5nU2Ny
aXB0Q2xpZW50Jik7CiAgICAgdm9pZCBjbGVhckNsaWVudCgpOwogCiBwcml2YXRlOgotICAgIFBl
bmRpbmdTY3JpcHQoRWxlbWVudCYsIExvYWRhYmxlU2NyaXB0Jik7Ci0gICAgUGVuZGluZ1Njcmlw
dChFbGVtZW50JiwgVGV4dFBvc2l0aW9uIHN0YXJ0aW5nUG9zaXRpb24pOworICAgIFBlbmRpbmdT
Y3JpcHQoU2NyaXB0RWxlbWVudCYsIExvYWRhYmxlU2NyaXB0Jik7CisgICAgUGVuZGluZ1Njcmlw
dChTY3JpcHRFbGVtZW50JiwgVGV4dFBvc2l0aW9uIHN0YXJ0aW5nUG9zaXRpb24pOwogCiAgICAg
dm9pZCBub3RpZnlDbGllbnRGaW5pc2hlZCgpOwogCi0gICAgUmVmPEVsZW1lbnQ+IG1fZWxlbWVu
dDsKKyAgICBSZWY8U2NyaXB0RWxlbWVudD4gbV9lbGVtZW50OwogICAgIFRleHRQb3NpdGlvbiBt
X3N0YXJ0aW5nUG9zaXRpb247IC8vIE9ubHkgdXNlZCBmb3IgaW5saW5lIHNjcmlwdCB0YWdzLgog
ICAgIFJlZlB0cjxMb2FkYWJsZVNjcmlwdD4gbV9sb2FkYWJsZVNjcmlwdDsKICAgICBQZW5kaW5n
U2NyaXB0Q2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKIH07CiAKK2lubGluZSBMb2FkYWJs
ZVNjcmlwdCogUGVuZGluZ1NjcmlwdDo6bG9hZGFibGVTY3JpcHQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2xvYWRhYmxlU2NyaXB0LmdldCgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAKaW5kZXggNjFmMjQ4MmY1ODcxZDhhZDBiNzUyNmY2ZjQ0NWJjZGI3NzRmYzQ4
Zi4uZjY4NjM3YWM0ZDk1Y2U4OGExZmIwNTUzMWRmZGFmZjUwMDE0MDBmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykg
MTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFu
dHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERp
cmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4
IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAg
LTI2MywxMSArMjYzLDExIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25z
dCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAgfSBlbHNlIGlm
ICgoaXNDbGFzc2ljRXh0ZXJuYWxTY3JpcHQgfHwgc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpN
b2R1bGUpICYmICFhc3luY0F0dHJpYnV0ZVZhbHVlKCkgJiYgIW1fZm9yY2VBc3luYykgewogICAg
ICAgICBtX3dpbGxFeGVjdXRlSW5PcmRlciA9IHRydWU7CiAgICAgICAgIEFTU0VSVChtX2xvYWRh
YmxlU2NyaXB0KTsKLSAgICAgICAgZG9jdW1lbnQuc2NyaXB0UnVubmVyKCktPnF1ZXVlU2NyaXB0
Rm9yRXhlY3V0aW9uKHRoaXMsICptX2xvYWRhYmxlU2NyaXB0LCBTY3JpcHRSdW5uZXI6OklOX09S
REVSX0VYRUNVVElPTik7CisgICAgICAgIGRvY3VtZW50LnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNj
cmlwdEZvckV4ZWN1dGlvbigqdGhpcywgKm1fbG9hZGFibGVTY3JpcHQsIFNjcmlwdFJ1bm5lcjo6
SU5fT1JERVJfRVhFQ1VUSU9OKTsKICAgICB9IGVsc2UgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgp
IHx8IHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6TW9kdWxlKSB7CiAgICAgICAgIEFTU0VSVCht
X2xvYWRhYmxlU2NyaXB0KTsKICAgICAgICAgQVNTRVJUKGFzeW5jQXR0cmlidXRlVmFsdWUoKSB8
fCBtX2ZvcmNlQXN5bmMpOwotICAgICAgICBkb2N1bWVudC5zY3JpcHRSdW5uZXIoKS0+cXVldWVT
Y3JpcHRGb3JFeGVjdXRpb24odGhpcywgKm1fbG9hZGFibGVTY3JpcHQsIFNjcmlwdFJ1bm5lcjo6
QVNZTkNfRVhFQ1VUSU9OKTsKKyAgICAgICAgZG9jdW1lbnQuc2NyaXB0UnVubmVyKCktPnF1ZXVl
U2NyaXB0Rm9yRXhlY3V0aW9uKCp0aGlzLCAqbV9sb2FkYWJsZVNjcmlwdCwgU2NyaXB0UnVubmVy
OjpBU1lOQ19FWEVDVVRJT04pOwogICAgIH0gZWxzZSBpZiAoIWhhc1NvdXJjZUF0dHJpYnV0ZSgp
ICYmIG1fcGFyc2VySW5zZXJ0ZWQgJiYgIWRvY3VtZW50LmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgp
KSB7CiAgICAgICAgIEFTU0VSVChzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6OkNsYXNzaWMpOwog
ICAgICAgICBtX3dpbGxCZVBhcnNlckV4ZWN1dGVkID0gdHJ1ZTsKQEAgLTQ4NywxNSArNDg3LDI2
IEBAIFN0cmluZyBTY3JpcHRFbGVtZW50OjpzY3JpcHRDb250ZW50KCkgY29uc3QKICAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CiB9CiAKLVNjcmlwdEVsZW1lbnQqIHRvU2NyaXB0RWxlbWVu
dElmUG9zc2libGUoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgU2NyaXB0RWxlbWVudDo6cmVmKCkK
IHsKLSAgICBpZiAoaXM8SFRNTFNjcmlwdEVsZW1lbnQ+KCplbGVtZW50KSkKLSAgICAgICAgcmV0
dXJuIGRvd25jYXN0PEhUTUxTY3JpcHRFbGVtZW50PihlbGVtZW50KTsKKyAgICBtX2VsZW1lbnQu
cmVmKCk7Cit9CiAKLSAgICBpZiAoaXM8U1ZHU2NyaXB0RWxlbWVudD4oKmVsZW1lbnQpKQotICAg
ICAgICByZXR1cm4gZG93bmNhc3Q8U1ZHU2NyaXB0RWxlbWVudD4oZWxlbWVudCk7Cit2b2lkIFNj
cmlwdEVsZW1lbnQ6OmRlcmVmKCkKK3sKKyAgICBtX2VsZW1lbnQuZGVyZWYoKTsKK30KIAotICAg
IHJldHVybiBudWxscHRyOworYm9vbCBpc1NjcmlwdEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkK
K3sKKyAgICByZXR1cm4gaXM8SFRNTFNjcmlwdEVsZW1lbnQ+KGVsZW1lbnQpIHx8IGlzPFNWR1Nj
cmlwdEVsZW1lbnQ+KGVsZW1lbnQpOworfQorCitTY3JpcHRFbGVtZW50JiBkb3duY2FzdFNjcmlw
dEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAoaXM8SFRNTFNjcmlwdEVsZW1l
bnQ+KGVsZW1lbnQpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTFNjcmlwdEVsZW1lbnQ+
KGVsZW1lbnQpOworICAgIHJldHVybiBkb3duY2FzdDxTVkdTY3JpcHRFbGVtZW50PihlbGVtZW50
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKaW5kZXggNDA3OWMxNzA5MzIx
Nzg0MDg3ZTllM2Y3MzIzNDZjNTU4MDBmN2IxNC4uNWYxODFkZjJlM2IwZTg4OGVmMzk0N2JiY2Rj
MThkOTMwN2RkZWIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1l
cm1hbm5Aa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsMTkgKzI2LDE3IEBA
CiAjaW5jbHVkZSAiTG9hZGFibGVTY3JpcHQuaCIKICNpbmNsdWRlICJMb2FkYWJsZVNjcmlwdENs
aWVudC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8
d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0OwogY2xh
c3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ29udGFpbmVyTm9kZTsKIGNsYXNzIEVsZW1lbnQ7CiBj
bGFzcyBQZW5kaW5nU2NyaXB0OwotY2xhc3MgU2NyaXB0RWxlbWVudDsKIGNsYXNzIFNjcmlwdFNv
dXJjZUNvZGU7Ci1jbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHQ7CitjbGFzcyBVUkw7CiAKIGNsYXNz
IFNjcmlwdEVsZW1lbnQgewogcHVibGljOgpAQCAtNzMsNiArNzIsOSBAQCBwdWJsaWM6CiAgICAg
ZW51bSBjbGFzcyBTY3JpcHRUeXBlIHsgQ2xhc3NpYywgTW9kdWxlIH07CiAgICAgU2NyaXB0VHlw
ZSBzY3JpcHRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9pc01vZHVsZVNjcmlwdCA/IFNjcmlwdFR5
cGU6Ok1vZHVsZSA6IFNjcmlwdFR5cGU6OkNsYXNzaWM7IH0KIAorICAgIHZvaWQgcmVmKCk7Cisg
ICAgdm9pZCBkZXJlZigpOworCiBwcm90ZWN0ZWQ6CiAgICAgU2NyaXB0RWxlbWVudChFbGVtZW50
JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIsIGJvb2wgaXNFdmFsdWF0ZWQpOwogCkBAIC0xMjcsNyAr
MTI5LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TG9hZGFibGVTY3JpcHQ+IG1fbG9hZGFibGVT
Y3JpcHQ7CiB9OwogCi0vLyBGSVhNRTogcmVwbGFjZSB3aXRoIGRvd25jYXN0PFNjcmlwdEVsZW1l
bnQ+LgotU2NyaXB0RWxlbWVudCogdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShFbGVtZW50Kik7
CisvLyBGSVhNRTogcmVwbGFjZSB3aXRoIGlzL2Rvd25jYXN0PFNjcmlwdEVsZW1lbnQ+LgorYm9v
bCBpc1NjcmlwdEVsZW1lbnQoRWxlbWVudCYpOworU2NyaXB0RWxlbWVudCYgZG93bmNhc3RTY3Jp
cHRFbGVtZW50KEVsZW1lbnQmKTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdFJ1bm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcApp
bmRleCA3MDk4OWViNDBjMDQ1YWRlNzc0YWU1N2QwOWE0MDQ4YjU5ZTM4ODA0Li4wNDFlNmQxMzMx
ZjQ0MjNjMTVjOTg3NjlmOWEyMjc0Y2VkMGFkMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0UnVubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVu
bmVyLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
LCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTU2LDI2ICs1NywyMiBAQCBTY3JpcHRSdW5uZXI6On5TY3JpcHRSdW5uZXIoKQog
ICAgIH0KIH0KIAotdm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNj
cmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlw
dCwgRXhlY3V0aW9uVHlwZSBleGVjdXRpb25UeXBlKQordm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVl
U2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQsIExvYWRhYmxl
U2NyaXB0JiBsb2FkYWJsZVNjcmlwdCwgRXhlY3V0aW9uVHlwZSBleGVjdXRpb25UeXBlKQogewot
ICAgIEFTU0VSVChzY3JpcHRFbGVtZW50KTsKLQotICAgIEVsZW1lbnQmIGVsZW1lbnQgPSBzY3Jp
cHRFbGVtZW50LT5lbGVtZW50KCk7Ci0gICAgQVNTRVJUKGVsZW1lbnQuaW5Eb2N1bWVudCgpKTsK
KyAgICBBU1NFUlQoc2NyaXB0RWxlbWVudC5lbGVtZW50KCkuaW5Eb2N1bWVudCgpKTsKIAogICAg
IG1fZG9jdW1lbnQuaW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogCi0gICAgUmVmPFBl
bmRpbmdTY3JpcHQ+IHBlbmRpbmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoZWxlbWVu
dCwgbG9hZGFibGVTY3JpcHQpOworICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IFBlbmRpbmdTY3Jp
cHQ6OmNyZWF0ZShzY3JpcHRFbGVtZW50LCBsb2FkYWJsZVNjcmlwdCk7CiAgICAgc3dpdGNoIChl
eGVjdXRpb25UeXBlKSB7CiAgICAgY2FzZSBBU1lOQ19FWEVDVVRJT046CiAgICAgICAgIG1fcGVu
ZGluZ0FzeW5jU2NyaXB0cy5hZGQocGVuZGluZ1NjcmlwdC5jb3B5UmVmKCkpOwogICAgICAgICBi
cmVhazsKLQogICAgIGNhc2UgSU5fT1JERVJfRVhFQ1VUSU9OOgogICAgICAgICBtX3NjcmlwdHNU
b0V4ZWN1dGVJbk9yZGVyLmFwcGVuZChwZW5kaW5nU2NyaXB0LmNvcHlSZWYoKSk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KLSAgICBwZW5kaW5nU2NyaXB0LT5zZXRDbGllbnQodGhpcyk7CisgICAg
cGVuZGluZ1NjcmlwdC0+c2V0Q2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBTY3JpcHRSdW5uZXI6
OnN1c3BlbmQoKQpAQCAtOTEsOSArODgsNyBAQCB2b2lkIFNjcmlwdFJ1bm5lcjo6cmVzdW1lKCkK
IAogdm9pZCBTY3JpcHRSdW5uZXI6Om5vdGlmeUZpbmlzaGVkKFBlbmRpbmdTY3JpcHQmIHBlbmRp
bmdTY3JpcHQpCiB7Ci0gICAgYXV0byogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElm
UG9zc2libGUoJnBlbmRpbmdTY3JpcHQuZWxlbWVudCgpKTsKLSAgICBBU1NFUlQoc2NyaXB0RWxl
bWVudCk7Ci0gICAgaWYgKHNjcmlwdEVsZW1lbnQtPndpbGxFeGVjdXRlSW5PcmRlcigpKQorICAg
IGlmIChwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKS53aWxsRXhlY3V0ZUluT3JkZXIoKSkKICAgICAg
ICAgQVNTRVJUKCFtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyLmlzRW1wdHkoKSk7CiAgICAgZWxz
ZSB7CiAgICAgICAgIEFTU0VSVChtX3BlbmRpbmdBc3luY1NjcmlwdHMuY29udGFpbnMocGVuZGlu
Z1NjcmlwdCkpOwpAQCAtMTIyLDEwICsxMTcsOCBAQCB2b2lkIFNjcmlwdFJ1bm5lcjo6dGltZXJG
aXJlZCgpCiAgICAgICAgIC8vIFBhcGVyIG92ZXIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0NDA1MAogICAgICAgICBpZiAoIXNjcmlwdCkKICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICBhdXRvKiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZSgmc2NyaXB0LT5lbGVtZW50KCkpOwotICAgICAgICBBU1NFUlQoc2NyaXB0RWxlbWVu
dCk7CiAgICAgICAgIEFTU0VSVChzY3JpcHQtPm5lZWRzTG9hZGluZygpKTsKLSAgICAgICAgc2Ny
aXB0RWxlbWVudC0+ZXhlY3V0ZVBlbmRpbmdTY3JpcHQoKnNjcmlwdCk7CisgICAgICAgIHNjcmlw
dC0+ZWxlbWVudCgpLmV4ZWN1dGVQZW5kaW5nU2NyaXB0KCpzY3JpcHQpOwogICAgICAgICBtX2Rv
Y3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKICAgICB9CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0UnVubmVyLmgKaW5kZXggZGZjZjNjNWZhOTBlNGE0NTA5NDA0MmQ4NzdkZTNiY2U0
NDgwMGQ5YS4uOGU4ZjQ4NmFkMWRiMGRiYzBkMGJlNjQ1MjExMWVlZDc3MGYxNTMxMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRSdW5uZXIuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDEzICsyOSwxMSBAQAogI2luY2x1ZGUgIlBlbmRp
bmdTY3JpcHRDbGllbnQuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgUGVu
ZGluZ1NjcmlwdDsKIGNsYXNzIFNjcmlwdEVsZW1lbnQ7CiBjbGFzcyBMb2FkYWJsZVNjcmlwdDsK
IApAQCAtNDUsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgflNjcmlwdFJ1bm5lcigpOwogCiAgICAg
ZW51bSBFeGVjdXRpb25UeXBlIHsgQVNZTkNfRVhFQ1VUSU9OLCBJTl9PUkRFUl9FWEVDVVRJT04g
fTsKLSAgICB2b2lkIHF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqLCBMb2Fk
YWJsZVNjcmlwdCYsIEV4ZWN1dGlvblR5cGUpOworICAgIHZvaWQgcXVldWVTY3JpcHRGb3JFeGVj
dXRpb24oU2NyaXB0RWxlbWVudCYsIExvYWRhYmxlU2NyaXB0JiwgRXhlY3V0aW9uVHlwZSk7CiAg
ICAgYm9vbCBoYXNQZW5kaW5nU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJuICFtX3NjcmlwdHNUb0V4
ZWN1dGVTb29uLmlzRW1wdHkoKSB8fCAhbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5pc0VtcHR5
KCkgfHwgIW1fcGVuZGluZ0FzeW5jU2NyaXB0cy5pc0VtcHR5KCk7IH0KICAgICB2b2lkIHN1c3Bl
bmQoKTsKICAgICB2b2lkIHJlc3VtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5j
cHAKaW5kZXggMTM2N2I0ZjIwZWEwOTExZGY5Y2RkY2YxYzE2MmU3MzlkMWUwMjZlMy4uNTdkMGRj
MWM3NjNkNjdiNmIwMjI4Yzg2MDUxM2Q3ZjFlOWM1MzYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yMjEsNyArMjIxLDcgQEAgYm9v
bCBGaWxlSW5wdXRUeXBlOjpjYW5TZXRTdHJpbmdWYWx1ZSgpIGNvbnN0CiAKIEZpbGVMaXN0KiBG
aWxlSW5wdXRUeXBlOjpmaWxlcygpCiB7Ci0gICAgcmV0dXJuIG1fZmlsZUxpc3QuZ2V0KCk7Cisg
ICAgcmV0dXJuIG1fZmlsZUxpc3QucHRyKCk7CiB9CiAKIGJvb2wgRmlsZUlucHV0VHlwZTo6Y2Fu
U2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTI1OCwxMiArMjU4LDEyIEBAIHZvaWQg
RmlsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvcikKICAgICBlbGVtZW50KCkuaW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwog
fQogCi1QYXNzUmVmUHRyPEZpbGVMaXN0PiBGaWxlSW5wdXRUeXBlOjpjcmVhdGVGaWxlTGlzdChj
b25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mIGZpbGVzKSBjb25zdAorUmVmPEZpbGVM
aXN0PiBGaWxlSW5wdXRUeXBlOjpjcmVhdGVGaWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29z
ZXJGaWxlSW5mbz4mIGZpbGVzKQogewogICAgIFZlY3RvcjxSZWZQdHI8RmlsZT4+IGZpbGVPYmpl
Y3RzOwotICAgIGZvciAoY29uc3QgRmlsZUNob29zZXJGaWxlSW5mbyYgaW5mbyA6IGZpbGVzKQot
ICAgICAgICBmaWxlT2JqZWN0cy5hcHBlbmQoRmlsZTo6Y3JlYXRlV2l0aE5hbWUoaW5mby5wYXRo
LCBpbmZvLmRpc3BsYXlOYW1lKSk7Ci0KKyAgICBmaWxlT2JqZWN0cy5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KGZpbGVzLnNpemUoKSk7CisgICAgZm9yIChhdXRvJiBpbmZvIDogZmlsZXMpCisgICAg
ICAgIGZpbGVPYmplY3RzLnVuY2hlY2tlZEFwcGVuZChGaWxlOjpjcmVhdGVXaXRoTmFtZShpbmZv
LnBhdGgsIGluZm8uZGlzcGxheU5hbWUpKTsKICAgICByZXR1cm4gRmlsZUxpc3Q6OmNyZWF0ZShX
VEZNb3ZlKGZpbGVPYmplY3RzKSk7CiB9CiAKQEAgLTMwMiwyOSArMzAyLDMyIEBAIHZvaWQgRmls
ZUlucHV0VHlwZTo6bXVsdGlwbGVBdHRyaWJ1dGVDaGFuZ2VkKCkKICAgICAgICAgYnV0dG9uLT5z
ZXRWYWx1ZShlbGVtZW50KCkubXVsdGlwbGUoKSA/IGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZp
bGVzTGFiZWwoKSA6IGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKSk7CiB9CiAKKyNpZiAhUExB
VEZPUk0oSU9TKQorCiB2b2lkIEZpbGVJbnB1dFR5cGU6OnJlcXVlc3RJY29uKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBwYXRocykKIHsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgVU5VU0VEX1BBUkFN
KHBhdGhzKTsKLSNlbHNlCiAgICAgaWYgKCFwYXRocy5zaXplKCkpIHsKLSAgICAgICAgdXBkYXRl
UmVuZGVyaW5nKG51bGxwdHIpOworICAgICAgICBpY29uTG9hZGVkKG51bGxwdHIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgQ2hyb21lKiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKTsK
LSAgICBpZiAoIWNocm9tZSkKKyAgICBhdXRvKiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKTsKKyAg
ICBpZiAoIWNocm9tZSkgeworICAgICAgICBpY29uTG9hZGVkKG51bGxwdHIpOwogICAgICAgICBy
ZXR1cm47CisgICAgfQogCiAgICAgaWYgKG1fZmlsZUljb25Mb2FkZXIpCiAgICAgICAgIG1fZmls
ZUljb25Mb2FkZXItPmludmFsaWRhdGUoKTsKIAotICAgIG1fZmlsZUljb25Mb2FkZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPEZpbGVJY29uTG9hZGVyPihzdGF0aWNfY2FzdDxGaWxlSWNvbkxvYWRlckNs
aWVudCY+KCp0aGlzKSk7CisgICAgRmlsZUljb25Mb2FkZXJDbGllbnQmIGNsaWVudCA9ICp0aGlz
OworICAgIG1fZmlsZUljb25Mb2FkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZpbGVJY29uTG9hZGVy
PihjbGllbnQpOwogCi0gICAgY2hyb21lLT5sb2FkSWNvbkZvckZpbGVzKHBhdGhzLCBtX2ZpbGVJ
Y29uTG9hZGVyLmdldCgpKTsKLSNlbmRpZgorICAgIGNocm9tZS0+bG9hZEljb25Gb3JGaWxlcyhw
YXRocywgKm1fZmlsZUljb25Mb2FkZXIpOwogfQogCisjZW5kaWYKKwogdm9pZCBGaWxlSW5wdXRU
eXBlOjphcHBseUZpbGVDaG9vc2VyU2V0dGluZ3MoY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYg
c2V0dGluZ3MpCiB7CiAgICAgaWYgKG1fZmlsZUNob29zZXIpCkBAIC0zMzMsMTggKzMzNiwyMCBA
QCB2b2lkIEZpbGVJbnB1dFR5cGU6OmFwcGx5RmlsZUNob29zZXJTZXR0aW5ncyhjb25zdCBGaWxl
Q2hvb3NlclNldHRpbmdzJiBzZXR0aW5ncwogICAgIG1fZmlsZUNob29zZXIgPSBGaWxlQ2hvb3Nl
cjo6Y3JlYXRlKHRoaXMsIHNldHRpbmdzKTsKIH0KIAotdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRG
aWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0PiBmaWxlcykKK3ZvaWQgRmlsZUlucHV0VHlwZTo6c2V0
RmlsZXMoUmVmUHRyPEZpbGVMaXN0PiYmIGZpbGVzKQogewogICAgIGlmICghZmlsZXMpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dChlbGVtZW50KCkp
OwogCisgICAgdW5zaWduZWQgbGVuZ3RoID0gZmlsZXMtPmxlbmd0aCgpOworCiAgICAgYm9vbCBw
YXRoc0NoYW5nZWQgPSBmYWxzZTsKLSAgICBpZiAoZmlsZXMtPmxlbmd0aCgpICE9IG1fZmlsZUxp
c3QtPmxlbmd0aCgpKQorICAgIGlmIChsZW5ndGggIT0gbV9maWxlTGlzdC0+bGVuZ3RoKCkpCiAg
ICAgICAgIHBhdGhzQ2hhbmdlZCA9IHRydWU7CiAgICAgZWxzZSB7Ci0gICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBmaWxlcy0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIGlmIChmaWxlcy0+
aXRlbShpKS0+cGF0aCgpICE9IG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSkgewogICAgICAg
ICAgICAgICAgIHBhdGhzQ2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBA
IC0zNTIsMTUgKzM1NywxOCBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQ
dHI8RmlsZUxpc3Q+IGZpbGVzKQogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9maWxlTGlzdCA9
IGZpbGVzOworICAgIG1fZmlsZUxpc3QgPSBmaWxlcy5yZWxlYXNlTm9uTnVsbCgpOwogCiAgICAg
aW5wdXQtPnNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CiAgICAgaW5w
dXQtPnVwZGF0ZVZhbGlkaXR5KCk7CiAKKyNpZiAhUExBVEZPUk0oSU9TKQogICAgIFZlY3RvcjxT
dHJpbmc+IHBhdGhzOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2ZpbGVMaXN0LT5s
ZW5ndGgoKTsgKytpKQotICAgICAgICBwYXRocy5hcHBlbmQobV9maWxlTGlzdC0+aXRlbShpKS0+
cGF0aCgpKTsKKyAgICBwYXRocy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGxlbmd0aCk7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICBwYXRocy51bmNo
ZWNrZWRBcHBlbmQobV9maWxlTGlzdC0+aXRlbShpKS0+cGF0aCgpKTsKICAgICByZXF1ZXN0SWNv
bihwYXRocyk7CisjZW5kaWYKIAogICAgIGlmIChpbnB1dC0+cmVuZGVyZXIoKSkKICAgICAgICAg
aW5wdXQtPnJlbmRlcmVyKCktPnJlcGFpbnQoKTsKQEAgLTM3NCwxNyArMzgyLDE5IEBAIHZvaWQg
RmlsZUlucHV0VHlwZTo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCiB9CiAK
ICNpZiBQTEFURk9STShJT1MpCisKIHZvaWQgRmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4oY29u
c3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBwYXRocywgY29uc3QgU3RyaW5nJiBkaXNw
bGF5U3RyaW5nLCBJY29uKiBpY29uKQogewogICAgIG1fZGlzcGxheVN0cmluZyA9IGRpc3BsYXlT
dHJpbmc7CiAgICAgZmlsZXNDaG9zZW4ocGF0aHMpOwotICAgIHVwZGF0ZVJlbmRlcmluZyhpY29u
KTsKKyAgICBpY29uTG9hZGVkKGljb24pOwogfQogCiBTdHJpbmcgRmlsZUlucHV0VHlwZTo6ZGlz
cGxheVN0cmluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZGlzcGxheVN0cmluZzsKIH0KKwog
I2VuZGlmCiAKIHZvaWQgRmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZp
bGVDaG9vc2VyRmlsZUluZm8+JiBmaWxlcykKQEAgLTM5MiwxMiArNDAyLDEyIEBAIHZvaWQgRmls
ZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+
JiBmaWxlcykKICAgICBzZXRGaWxlcyhjcmVhdGVGaWxlTGlzdChmaWxlcykpOwogfQogCi12b2lk
IEZpbGVJbnB1dFR5cGU6OnVwZGF0ZVJlbmRlcmluZyhQYXNzUmVmUHRyPEljb24+IGljb24pCit2
b2lkIEZpbGVJbnB1dFR5cGU6Omljb25Mb2FkZWQoUmVmUHRyPEljb24+JiYgaWNvbikKIHsKICAg
ICBpZiAobV9pY29uID09IGljb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1faWNvbiA9IGlj
b247CisgICAgbV9pY29uID0gV1RGTW92ZShpY29uKTsKICAgICBpZiAoZWxlbWVudCgpLnJlbmRl
cmVyKCkpCiAgICAgICAgIGVsZW1lbnQoKS5yZW5kZXJlcigpLT5yZXBhaW50KCk7CiB9CkBAIC00
MzQsOCArNDQ0LDcgQEAgSWNvbiogRmlsZUlucHV0VHlwZTo6aWNvbigpIGNvbnN0CiAKIFN0cmlu
ZyBGaWxlSW5wdXRUeXBlOjpkZWZhdWx0VG9vbFRpcCgpIGNvbnN0CiB7Ci0gICAgRmlsZUxpc3Qq
IGZpbGVMaXN0ID0gbV9maWxlTGlzdC5nZXQoKTsKLSAgICB1bnNpZ25lZCBsaXN0U2l6ZSA9IGZp
bGVMaXN0LT5sZW5ndGgoKTsKKyAgICB1bnNpZ25lZCBsaXN0U2l6ZSA9IG1fZmlsZUxpc3QtPmxl
bmd0aCgpOwogICAgIGlmICghbGlzdFNpemUpIHsKICAgICAgICAgaWYgKGVsZW1lbnQoKS5tdWx0
aXBsZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJl
bCgpOwpAQCAtNDQzLDggKzQ1Miw4IEBAIFN0cmluZyBGaWxlSW5wdXRUeXBlOjpkZWZhdWx0VG9v
bFRpcCgpIGNvbnN0CiAgICAgfQogCiAgICAgU3RyaW5nQnVpbGRlciBuYW1lczsKLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKLSAgICAgICAgbmFtZXMuYXBwZW5k
KGZpbGVMaXN0LT5pdGVtKGkpLT5uYW1lKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgIG5hbWVzLmFwcGVuZChtX2ZpbGVMaXN0LT5pdGVt
KGkpLT5uYW1lKCkpOwogICAgICAgICBpZiAoaSAhPSBsaXN0U2l6ZSAtIDEpCiAgICAgICAgICAg
ICBuYW1lcy5hcHBlbmQoJ1xuJyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUu
aAppbmRleCBmOGEwZGZmMmQ4ZDNjMzA1ZjAxYTFkZjhjODkxYTI5MGUzNjU2M2YxLi5lZTQwNjQ4
ZDY5NTFkYTZhZDI5MzlhMDJmNTM2ZTc3ODg2OWMyZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJ
bnB1dFR5cGUuaApAQCAtNTAsNDUgKzUwLDQ1IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgVmVjdG9y
PEZpbGVDaG9vc2VyRmlsZUluZm8+IGZpbGVzRnJvbUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9y
bUNvbnRyb2xTdGF0ZSYpOwogCiBwcml2YXRlOgotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZm9y
bUNvbnRyb2xUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgRm9ybUNvbnRyb2xTdGF0ZSBzYXZl
Rm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgcmVzdG9yZUZvcm1D
b250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIG92ZXJyaWRlOwotICAgIGJvb2wg
YXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgU3Ry
aW5nIHZhbHVlTWlzc2luZ1RleHQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGhhbmRsZURP
TUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKLSAgICBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYmKSBvdmVycmlkZTsKLSAgICBi
b29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgRmlsZUxpc3QqIGZp
bGVzKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0Pikg
b3ZlcnJpZGU7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25z
dCBmaW5hbDsKKyAgICBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29u
c3QgZmluYWw7CisgICAgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29u
dHJvbFN0YXRlJikgZmluYWw7CisgICAgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3Qm
LCBib29sKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcm
KSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcgdmFsdWVNaXNzaW5nVGV4dCgpIGNvbnN0IGZpbmFs
OworICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIGZpbmFsOworICAgIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYp
IGZpbmFsOworICAgIGJvb2wgY2FuU2V0U3RyaW5nVmFsdWUoKSBjb25zdCBmaW5hbDsKKyAgICBG
aWxlTGlzdCogZmlsZXMoKSBmaW5hbDsKKyAgICB2b2lkIHNldEZpbGVzKFJlZlB0cjxGaWxlTGlz
dD4mJikgZmluYWw7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIFN0cmluZyBkaXNwbGF5U3RyaW5n
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgU3RyaW5nIGRpc3BsYXlTdHJpbmcoKSBjb25zdCBmaW5h
bDsKICNlbmRpZgotICAgIGJvb2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7
Ci0gICAgYm9vbCBnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKSBvdmVycmlkZTsgLy8gQ2hl
Y2tlZCBmaXJzdCwgYmVmb3JlIGludGVybmFsIHN0b3JhZ2Ugb3IgdGhlIHZhbHVlIGF0dHJpYnV0
ZS4KLSAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBU
ZXh0RmllbGRFdmVudEJlaGF2aW9yKSBvdmVycmlkZTsKKyAgICBib29sIGNhblNldFZhbHVlKGNv
bnN0IFN0cmluZyYpIGZpbmFsOworICAgIGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5n
JikgZmluYWw7IC8vIENoZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdlIG9yIHRo
ZSB2YWx1ZSBhdHRyaWJ1dGUuCisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29s
IHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgZmluYWw7CiAKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQotICAgIGJvb2wgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBEcmFn
RGF0YSYpIG92ZXJyaWRlOworICAgIGJvb2wgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBEcmFn
RGF0YSYpIGZpbmFsOwogI2VuZGlmCiAKLSAgICBJY29uKiBpY29uKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgYm9vbCBpc0ZpbGVVcGxvYWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGNyZWF0
ZVNoYWRvd1N1YnRyZWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2FibGVkQXR0cmlidXRlQ2hh
bmdlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgbXVsdGlwbGVBdHRyaWJ1dGVDaGFuZ2VkKCkgb3Zl
cnJpZGU7Ci0gICAgU3RyaW5nIGRlZmF1bHRUb29sVGlwKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
SWNvbiogaWNvbigpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgaXNGaWxlVXBsb2FkKCkgY29uc3Qg
ZmluYWw7CisgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgZmluYWw7CisgICAgdm9pZCBk
aXNhYmxlZEF0dHJpYnV0ZUNoYW5nZWQoKSBmaW5hbDsKKyAgICB2b2lkIG11bHRpcGxlQXR0cmli
dXRlQ2hhbmdlZCgpIGZpbmFsOworICAgIFN0cmluZyBkZWZhdWx0VG9vbFRpcCgpIGNvbnN0IGZp
bmFsOwogCiAgICAgLy8gRmlsZUNob29zZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCi0gICAgdm9p
ZCBmaWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZv
PiYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2b2lkIGZpbGVzQ2hvc2VuKGNvbnN0
IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYsIGNvbnN0IFN0cmluZyYgZGlzcGxheVN0cmlu
ZywgSWNvbiopIG92ZXJyaWRlOworICAgIHZvaWQgZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZp
bGVDaG9vc2VyRmlsZUluZm8+JiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5U3RyaW5nLCBJY29uKikg
ZmluYWw7CiAjZW5kaWYKIAogICAgIC8vIEZpbGVJY29uTG9hZGVyQ2xpZW50IGltcGxlbWVudGF0
aW9uLgotICAgIHZvaWQgdXBkYXRlUmVuZGVyaW5nKFBhc3NSZWZQdHI8SWNvbj4pIG92ZXJyaWRl
OworICAgIHZvaWQgaWNvbkxvYWRlZChSZWZQdHI8SWNvbj4mJikgZmluYWw7CiAKLSAgICBQYXNz
UmVmUHRyPEZpbGVMaXN0PiBjcmVhdGVGaWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29zZXJG
aWxlSW5mbz4mIGZpbGVzKSBjb25zdDsKKyAgICBzdGF0aWMgUmVmPEZpbGVMaXN0PiBjcmVhdGVG
aWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mKTsKICAgICB2b2lkIHJl
cXVlc3RJY29uKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAKICAgICB2b2lkIGFwcGx5RmlsZUNo
b29zZXJTZXR0aW5ncyhjb25zdCBGaWxlQ2hvb3NlclNldHRpbmdzJik7CkBAIC05OCw3ICs5OCw3
IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEZpbGVJY29uTG9hZGVyPiBtX2ZpbGVJ
Y29uTG9hZGVyOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8RmlsZUxpc3Q+IG1fZmlsZUxpc3Q7Cisg
ICAgUmVmPEZpbGVMaXN0PiBtX2ZpbGVMaXN0OwogICAgIFJlZlB0cjxJY29uPiBtX2ljb247CiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIFN0cmluZyBtX2Rpc3BsYXlTdHJpbmc7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGY0YmU3MTU4YzUxMDA4NTgzMDU4MGI2YTczODU4NzIw
MzAzOWEzZDkuLjAzMjJiMTM5ZDI4NWIwZjI4ZjExYjYzMGY5NDM5MTkwMThkYzYxNTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChD
KSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICogQ29weXJpZ2h0
IChDKSAyMDExIE1vdG9yb2xhIE1vYmlsaXR5LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAg
LTc1Miw3ICs3NTIsNyBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLAogICAgIHJldHVybiBSZW5k
ZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIH0KIAotSFRNTEZv
cm1FbGVtZW50KiBIVE1MRWxlbWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAorSFRNTEZvcm1FbGVt
ZW50KiBIVE1MRWxlbWVudDo6Zm9ybSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEhUTUxGb3JtRWxl
bWVudDo6ZmluZENsb3Nlc3RGb3JtQW5jZXN0b3IoKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5oCmluZGV4IDM5ZDRjYjcyYjY3NjM3Mjc3NTkxMTI2YThhMTUyNTA1NDAyZGZlMGMu
LmMxZjllY2I3NmRmNzM1MzM4YmI5NTBjYmY3MDE0YjhkZGRiMWFhYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmgKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAxOTk5
IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkg
S29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOSwg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikgb3ZlcnJpZGU7CiAKLSAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCB7
IHJldHVybiB2aXJ0dWFsRm9ybSgpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBIVE1M
Rm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IEF0
b21pY1N0cmluZyYgZGlyKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREaXIo
Y29uc3QgQXRvbWljU3RyaW5nJik7CkBAIC0xMzMsOCArMTMzLDYgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgbWFwTGFuZ3VhZ2VBdHRyaWJ1dGVUb0xvY2FsZShjb25zdCBBdG9taWNTdHJpbmcmLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzJik7CiAKLSAgICB2aXJ0dWFsIEhUTUxGb3JtRWxlbWVudCog
dmlydHVhbEZvcm0oKSBjb25zdDsKLQogICAgIEV4Y2VwdGlvbk9yPFJlZjxEb2N1bWVudEZyYWdt
ZW50Pj4gdGV4dFRvRnJhZ21lbnQoY29uc3QgU3RyaW5nJik7CiAKICAgICB2b2lkIGRpckF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA4NDUxNmNiNjI0NGMzM2IxZjcwNWUw
NmRlMjgyMmFlYTExZTUxYmQ4Li4yZTg3MmFhYmFlNjRiMDQ0OGQyMjE0ZTk2MmJiMTZmNmNiZjk5
MDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5j
cHAKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25v
bGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlz
dG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJA
a2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgICAgICAgICAgKEMpIDIwMDYg
QWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTU5Mywx
MSArNTkzLDYgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVu
dChSZWZQdHI8RWxlbWVudD4mJiBuZXdGb2N1c2VkRWxlbWUKICAgICBoaWRlVmlzaWJsZVZhbGlk
YXRpb25NZXNzYWdlKCk7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAotewotICAgIHJldHVybiBGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQ6OmZvcm0oKTsKLX0KLQogI2lmIEVOQUJMRShJT1NfQVVUT0NPUlJFQ1RfQU5EX0FVVE9D
QVBJVEFMSVpFKQogCiAvLyBGSVhNRTogV2Ugc2hvdWxkIGxvb2sgdG8gc2hhcmUgdGhpcyBjb2Rl
IHdpdGggY2xhc3MgSFRNTEZvcm1FbGVtZW50IGluc3RlYWQgb2YgZHVwbGljYXRpbmcgdGhlIGxv
Z2ljLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRl
eCA0ZmY0ODk0ZjM1ZmU2MWQyZWRmMGMwODU1ZTkyMjQ0YWNkYzVjNGZjLi41MGI4Y2Q0YzE4MTQx
MzUwM2Q1NDM3ZTdmOWUwNTI0ZjczM2Q1NTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykg
MTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFu
dHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAwIERp
cmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDYsNyArNDYsNyBAQCBjbGFz
cyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IDogcHVibGljIExhYmVsYWJsZUVsZW1lbnQsIHB1Ymxp
YyBGb3JtQXNzb2NpYXRlZEVsZQogcHVibGljOgogICAgIHZpcnR1YWwgfkhUTUxGb3JtQ29udHJv
bEVsZW1lbnQoKTsKIAotICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IHsgcmV0dXJu
IEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybSgpOyB9CisgICAgSFRNTEZvcm1FbGVtZW50KiBm
b3JtKCkgY29uc3QgZmluYWwgeyByZXR1cm4gRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtKCk7
IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBmb3JtRW5jdHlwZSgpIGNvbnN0OwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Rm9ybUVuY3R5cGUoY29uc3QgU3RyaW5nJik7CkBAIC0x
NjksNyArMTY5LDYgQEAgcHJpdmF0ZToKIAogICAgIGludCB0YWJJbmRleCgpIGNvbnN0IGZpbmFs
OwogCi0gICAgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFsRm9ybSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgaXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpIGNvbnN0OwogCiAgICAgYm9vbCBj
b21wdXRlSXNEaXNhYmxlZEJ5RmllbGRzZXRBbmNlc3RvcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggZDQzZDRlZjllMDExOTI2ZDBlOGEwZWJk
ZWM4NzUyZDNlZmZkZmMyNC4uODIxMmNiMjk4OGMzNDE5MjdjZjdlMTNmMTliYjUyYzBkZDY2NjVh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0yLDcgKzIs
NyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAg
KiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAg
KiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIw
MTEsIDIwMTMsIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkK
ICAqIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIChzYW1Ad2Via2l0Lm9yZykKICAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAt
MTE4NCwxMCArMTE4NCw5IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCYgZXZlbnQpCiAgICAgICAgIGlmICh3YXNDaGFuZ2VkU2luY2VMYXN0Rm9ybUNv
bnRyb2xDaGFuZ2VFdmVudCgpKQogICAgICAgICAgICAgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5n
ZUV2ZW50KCk7CiAKLSAgICAgICAgUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gZm9ybUZvclN1Ym1p
c3Npb24gPSBtX2lucHV0VHlwZS0+Zm9ybUZvclN1Ym1pc3Npb24oKTsKICAgICAgICAgLy8gRm9y
bSBtYXkgbmV2ZXIgaGF2ZSBiZWVuIHByZXNlbnQsIG9yIG1heSBoYXZlIGJlZW4gZGVzdHJveWVk
IGJ5IGNvZGUgcmVzcG9uZGluZyB0byB0aGUgY2hhbmdlIGV2ZW50LgotICAgICAgICBpZiAoZm9y
bUZvclN1Ym1pc3Npb24pCi0gICAgICAgICAgICBmb3JtRm9yU3VibWlzc2lvbi0+c3VibWl0SW1w
bGljaXRseShldmVudCwgY2FuVHJpZ2dlckltcGxpY2l0U3VibWlzc2lvbigpKTsKKyAgICAgICAg
aWYgKGF1dG8qIGZvcm1FbGVtZW50ID0gZm9ybSgpKQorICAgICAgICAgICAgZm9ybUVsZW1lbnQt
PnN1Ym1pdEltcGxpY2l0bHkoZXZlbnQsIGNhblRyaWdnZXJJbXBsaWNpdFN1Ym1pc3Npb24oKSk7
CiAKICAgICAgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtMTM0Miw5ICsxMzQxLDkgQEAgRmlsZUxpc3QqIEhUTUxJbnB1dEVsZW1lbnQ6OmZpbGVzKCkK
ICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmZpbGVzKCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxl
bWVudDo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCit2b2lkIEhUTUxJbnB1
dEVsZW1lbnQ6OnNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4mJiBmaWxlcykKIHsKLSAgICBtX2lu
cHV0VHlwZS0+c2V0RmlsZXMoZmlsZXMpOworICAgIG1faW5wdXRUeXBlLT5zZXRGaWxlcyhXVEZN
b3ZlKGZpbGVzKSk7CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpAQCAtMTg2OSw3ICsx
ODY4LDcgQEAgUmFkaW9CdXR0b25Hcm91cHMqIEhUTUxJbnB1dEVsZW1lbnQ6OnJhZGlvQnV0dG9u
R3JvdXBzKCkgY29uc3QKIHsKICAgICBpZiAoIWlzUmFkaW9CdXR0b24oKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgaWYgKEhUTUxGb3JtRWxlbWVudCogZm9ybUVsZW1lbnQgPSBmb3Jt
KCkpCisgICAgaWYgKGF1dG8qIGZvcm1FbGVtZW50ID0gZm9ybSgpKQogICAgICAgICByZXR1cm4g
JmZvcm1FbGVtZW50LT5yYWRpb0J1dHRvbkdyb3VwcygpOwogICAgIGlmIChpbkRvY3VtZW50KCkp
CiAgICAgICAgIHJldHVybiAmZG9jdW1lbnQoKS5mb3JtQ29udHJvbGxlcigpLnJhZGlvQnV0dG9u
R3JvdXBzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDhhZmZk
OTgxMTc1NGQ5ZTQ5MjM2MjU2ZTY1NWQ2ZGE1NTgzZjU2ZDYuLmJmMDBiYWZmYzQ2MjAzNmE4YjIy
ZWQ5ZGNiY2EzNWIyYjExZmUxNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtu
b2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZp
c3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVy
QGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmlj
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00Myw4ICs0Myw4IEBAIGNs
YXNzIEljb247CiBjbGFzcyBJbnB1dFR5cGU7CiBjbGFzcyBMaXN0QXR0cmlidXRlVGFyZ2V0T2Jz
ZXJ2ZXI7CiBjbGFzcyBSYWRpb0J1dHRvbkdyb3VwczsKLWNsYXNzIFRleHRDb250cm9sSW5uZXJU
ZXh0RWxlbWVudDsKIGNsYXNzIFVSTDsKKwogc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRl
cnM7CiAKIHN0cnVjdCBJbnB1dEVsZW1lbnRDbGlja1N0YXRlIHsKQEAgLTIzOCw3ICsyMzgsNyBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTaG93QXV0b0ZpbGxCdXR0b24o
QXV0b0ZpbGxCdXR0b25UeXBlKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIEZpbGVMaXN0KiBmaWxl
cygpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlz
dD4pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RmlsZXMoUmVmUHRyPEZpbGVMaXN0PiYm
KTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRo
ZSBnaXZlbiBEcmFnRGF0YSBoYXMgbW9yZSB0aGFuIG9uZSBkcm9wcGVkIGZpbGVzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAKaW5kZXggYzJkMTg1YzMxMGEwYjkyYjky
MGU5NzUxMDRjYTFjZWI4NTUwNWZhZC4uZTc2OTE3ZTlkMjQyNmVkMzVmNDQzNTExMTFkNjA5NzFj
NzZjMTZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCkBAIC0y
LDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5v
cmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5v
cmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcp
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQ
cm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC02MywzMCArNjMsMjgg
QEAgYm9vbCBIVE1MTGFiZWxFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1MYWJlbGFibGVFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9s
KCkKK0xhYmVsYWJsZUVsZW1lbnQqIEhUTUxMYWJlbEVsZW1lbnQ6OmNvbnRyb2woKSBjb25zdAog
ewotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgY29udHJvbElkID0gYXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihmb3JBdHRyKTsKKyAgICBhdXRvJiBjb250cm9sSWQgPSBhdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKGZvckF0dHIpOwogICAgIGlmIChjb250cm9sSWQuaXNOdWxs
KCkpIHsKICAgICAgICAgLy8gU2VhcmNoIHRoZSBjaGlsZHJlbiBhbmQgZGVzY2VuZGFudHMgb2Yg
dGhlIGxhYmVsIGVsZW1lbnQgZm9yIGEgZm9ybSBlbGVtZW50LgogICAgICAgICAvLyBwZXIgaHR0
cDovL2Rldi53My5vcmcvaHRtbDUvc3BlYy9PdmVydmlldy5odG1sI3RoZS1sYWJlbC1lbGVtZW50
CiAgICAgICAgIC8vIHRoZSBmb3JtIGVsZW1lbnQgbXVzdCBiZSAibGFiZWxhYmxlIGZvcm0tYXNz
b2NpYXRlZCBlbGVtZW50Ii4KICAgICAgICAgZm9yIChhdXRvJiBsYWJlbGFibGVFbGVtZW50IDog
ZGVzY2VuZGFudHNPZlR5cGU8TGFiZWxhYmxlRWxlbWVudD4oKnRoaXMpKSB7CiAgICAgICAgICAg
ICBpZiAobGFiZWxhYmxlRWxlbWVudC5zdXBwb3J0TGFiZWxzKCkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuICZsYWJlbGFibGVFbGVtZW50OworICAgICAgICAgICAgICAgIHJldHVybiBjb25zdF9j
YXN0PExhYmVsYWJsZUVsZW1lbnQqPigmbGFiZWxhYmxlRWxlbWVudCk7CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIAogICAgIHJldHVybiBpbkRvY3VtZW50
KCkgPyBmaXJzdEVsZW1lbnRXaXRoSWRJZkxhYmVsYWJsZSh0cmVlU2NvcGUoKSwgY29udHJvbElk
KSA6IG51bGxwdHI7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTExhYmVsRWxlbWVudDo6Zm9y
bSgpCitIVE1MRm9ybUVsZW1lbnQqIEhUTUxMYWJlbEVsZW1lbnQ6OmZvcm0oKSBjb25zdAogewot
ICAgIGF1dG8qIGxhYmVsZWRDb250cm9sID0gY29udHJvbCgpOwotICAgIGlmICghbGFiZWxlZENv
bnRyb2wpCisgICAgYXV0byogY29udHJvbCA9IHRoaXMtPmNvbnRyb2woKTsKKyAgICBpZiAoIWlz
PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KGNvbnRyb2wpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLQotICAgIHJldHVybiBpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PigqbGFiZWxlZENvbnRy
b2wpID8gZG93bmNhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oKmxhYmVsZWRDb250cm9sKS5m
b3JtKCkgOiBudWxscHRyOworICAgIHJldHVybiBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50PigqY29udHJvbCkuZm9ybSgpOwogfQogCiB2b2lkIEhUTUxMYWJlbEVsZW1lbnQ6OnNldEFj
dGl2ZShib29sIGRvd24sIGJvb2wgcGF1c2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMYWJlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxl
bWVudC5oCmluZGV4IDE0ZGRjMDgzYTYxOGU0NzdmMzIxYTUxNzZhZDYxMDNhZTkyOTZkMDYuLjEw
ZjAwNGI0NzVjODZiNjJhNDdlYWUzMzRjYzNjODRmOTg4ODY5ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExhYmVsRWxlbWVudC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAx
OTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50
dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGly
ayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUs
IDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC0zMSw4ICszMSw4IEBAIGNsYXNzIEhUTUxMYWJlbEVsZW1lbnQg
ZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8SFRN
TExhYmVsRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
Ci0gICAgV0VCQ09SRV9FWFBPUlQgTGFiZWxhYmxlRWxlbWVudCogY29udHJvbCgpOwotICAgIFdF
QkNPUkVfRVhQT1JUIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpOworICAgIFdFQkNPUkVfRVhQT1JU
IExhYmVsYWJsZUVsZW1lbnQqIGNvbnRyb2woKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBI
VE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgd2lsbFJlc3Bv
bmRUb01vdXNlQ2xpY2tFdmVudHMoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
ZWdlbmRFbGVtZW50LmNwcAppbmRleCBlYTc5NzM1ODY2MTBlZjdkOWFmMzM3YzFiYTdlOTUzMTU5
ZTQzNzZlLi5iNDRkZTA5MzlkZjhkODRmZmFkODZmMDVkOWMwOWMxOGFmZTQ1NzhjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAq
IENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAg
ICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAg
ICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBv
cC5jb20pCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzEsMTMgKzMxLDEwIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKLQotCiBpbmxpbmUgSFRNTExlZ2Vu
ZEVsZW1lbnQ6OkhUTUxMZWdlbmRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KQogewotICAgIEFTU0VSVChoYXNUYWdOYW1lKGxlZ2VuZFRhZykpOworICAgIEFTU0VSVChoYXNU
YWdOYW1lKEhUTUxOYW1lczo6bGVnZW5kVGFnKSk7CiB9CiAKIFJlZjxIVE1MTGVnZW5kRWxlbWVu
dD4gSFRNTExlZ2VuZEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC02MSwyNyArNTgsMjYgQEAgdm9pZCBIVE1MTGVnZW5k
RWxlbWVudDo6Zm9jdXMoYm9vbCwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIGlm
IChpc0ZvY3VzYWJsZSgpKQogICAgICAgICBFbGVtZW50Ojpmb2N1cyh0cnVlLCBkaXJlY3Rpb24p
OwotICAgICAgICAKKwogICAgIC8vIFRvIG1hdGNoIG90aGVyIGJyb3dzZXJzJyBiZWhhdmlvciwg
bmV2ZXIgcmVzdG9yZSBwcmV2aW91cyBzZWxlY3Rpb24uCi0gICAgaWYgKEhUTUxGb3JtQ29udHJv
bEVsZW1lbnQqIGNvbnRyb2wgPSBhc3NvY2lhdGVkQ29udHJvbCgpKQorICAgIGlmIChhdXRvKiBj
b250cm9sID0gYXNzb2NpYXRlZENvbnRyb2woKSkKICAgICAgICAgY29udHJvbC0+Zm9jdXMoZmFs
c2UsIGRpcmVjdGlvbik7CiB9CiAKIHZvaWQgSFRNTExlZ2VuZEVsZW1lbnQ6OmFjY2Vzc0tleUFj
dGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKIHsKLSAgICBpZiAoSFRNTEZvcm1Db250cm9sRWxl
bWVudCogY29udHJvbCA9IGFzc29jaWF0ZWRDb250cm9sKCkpCisgICAgaWYgKGF1dG8qIGNvbnRy
b2wgPSBhc3NvY2lhdGVkQ29udHJvbCgpKQogICAgICAgICBjb250cm9sLT5hY2Nlc3NLZXlBY3Rp
b24oc2VuZE1vdXNlRXZlbnRzKTsKIH0KIAotSFRNTEZvcm1FbGVtZW50KiBIVE1MTGVnZW5kRWxl
bWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAorSFRNTEZvcm1FbGVtZW50KiBIVE1MTGVnZW5kRWxl
bWVudDo6Zm9ybSgpIGNvbnN0CiB7CiAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0
aW9uLCBJZiB0aGUgbGVnZW5kIGhhcyBhIGZpZWxkc2V0IGVsZW1lbnQgYXMKICAgICAvLyBpdHMg
cGFyZW50LCB0aGVuIHRoZSBmb3JtIGF0dHJpYnV0ZSBtdXN0IHJldHVybiB0aGUgc2FtZSB2YWx1
ZSBhcyB0aGUKICAgICAvLyBmb3JtIGF0dHJpYnV0ZSBvbiB0aGF0IGZpZWxkc2V0IGVsZW1lbnQu
IE90aGVyd2lzZSwgaXQgbXVzdCByZXR1cm4gbnVsbC4KLSAgICBDb250YWluZXJOb2RlKiBmaWVs
ZHNldCA9IHBhcmVudE5vZGUoKTsKKyAgICBhdXRvKiBmaWVsZHNldCA9IHBhcmVudE5vZGUoKTsK
ICAgICBpZiAoIWlzPEhUTUxGaWVsZFNldEVsZW1lbnQ+KGZpZWxkc2V0KSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0KICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTEZpZWxkU2V0RWxlbWVudD4o
KmZpZWxkc2V0KS5mb3JtKCk7CiB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMZWdlbmRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRF
bGVtZW50LmgKaW5kZXggMDM4Y2M5YTE3NmViYzBkNzA2MmU2MGU1Yzk1OWExNWU4Mzg0NmYyZi4u
MTQ0ZTE5ZjYyYjgxZDkzMmI4YTE5YWJjNmM4ZmZmMTlmMTA1NTkwYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAo
QykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5
IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAw
IERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1LCAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwNC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMzMsMTUgKzMzLDE2IEBAIGNsYXNzIEhUTUxMZWdlbmRFbGVtZW50
IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEhU
TUxMZWdlbmRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCBmaW5h
bDsKKwogcHJpdmF0ZToKICAgICBIVE1MTGVnZW5kRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIAotICAgIC8vIENvbnRyb2wgaW4gdGhlIGxlZ2VuZCdzIGZpZWxkc2V0
IHRoYXQgZ2V0cyBmb2N1cyBhbmQgYWNjZXNzIGtleS4KKyAgICAvLyBDb250cm9sIGluIHRoZSBs
ZWdlbmQncyBmaWVsZCBzZXQgdGhhdCBnZXRzIGZvY3VzIGFuZCBhY2Nlc3Mga2V5LgogICAgIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQqIGFzc29jaWF0ZWRDb250cm9sKCk7CiAKICAgICB2b2lkIGFj
Y2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7CiAgICAgdm9pZCBmb2N1
cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24pIGZpbmFsOwot
ICAgIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25zdCBmaW5hbDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IDA4NGVmYzc4MDU0M2ZlZGQyMTRlOTU0Njc5ODUxYzlkNzY1NjU0NjMuLmI4MzVh
M2Q4N2NlYTZhM2Q1MzE5MDk5NjRiYjBkZjAwNzhkOTgzZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDctMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDctMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDExICsyNCwxMCBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAKICNpZiBFTkFC
TEUoVklERU8pCiAKLSNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCi0KICNpbmNsdWRlICJB
cHBsaWNhdGlvbkNhY2hlSG9zdC5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJj
ZS5oIgogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgpAQCAtMjY5LDIyICsyNjgsMjMgQEAgc3RhdGlj
IHZvaWQgcmVtb3ZlRWxlbWVudEZyb21Eb2N1bWVudE1hcChIVE1MTWVkaWFFbGVtZW50JiBlbGVt
ZW50LCBEb2N1bWVudCYgZG8KIH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKKwogY2xhc3Mg
VHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgewogcHVibGljOgotICAgIFRyYWNrRGlzcGxheVVwZGF0
ZVNjb3BlKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKKyAgICBUcmFja0Rpc3BsYXlV
cGRhdGVTY29wZShIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQorICAgICAgICA6IG1fZWxlbWVu
dChlbGVtZW50KQogICAgIHsKLSAgICAgICAgbV9tZWRpYUVsZW1lbnQgPSBtZWRpYUVsZW1lbnQ7
Ci0gICAgICAgIG1fbWVkaWFFbGVtZW50LT5iZWdpbklnbm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRl
UmVxdWVzdHMoKTsKKyAgICAgICAgbV9lbGVtZW50LmJlZ2luSWdub3JpbmdUcmFja0Rpc3BsYXlV
cGRhdGVSZXF1ZXN0cygpOwogICAgIH0KICAgICB+VHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUoKQog
ICAgIHsKLSAgICAgICAgQVNTRVJUKG1fbWVkaWFFbGVtZW50KTsKLSAgICAgICAgbV9tZWRpYUVs
ZW1lbnQtPmVuZElnbm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKTsKKyAgICAgICAg
bV9lbGVtZW50LmVuZElnbm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKTsKICAgICB9
CiAgICAgCiBwcml2YXRlOgotICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1fbWVkaWFFbGVtZW50Owor
ICAgIEhUTUxNZWRpYUVsZW1lbnQmIG1fZWxlbWVudDsKIH07CisKICNlbmRpZgogCiBzdHJ1Y3Qg
SFRNTE1lZGlhRWxlbWVudDo6VHJhY2tHcm91cCB7CkBAIC0xNTU0LDcgKzE1NTQsNyBAQCBzdGF0
aWMgYm9vbCBldmVudFRpbWVDdWVDb21wYXJlKGNvbnN0IHN0ZDo6cGFpcjxNZWRpYVRpbWUsIFRl
eHRUcmFja0N1ZSo+JiBhLCBjbwogICAgIC8vIDEyIC0gRnVydGhlciBzb3J0IHRhc2tzIGluIGV2
ZW50cyB0aGF0IGhhdmUgdGhlIHNhbWUgdGltZSBieSB0aGUKICAgICAvLyByZWxhdGl2ZSB0ZXh0
IHRyYWNrIGN1ZSBvcmRlciBvZiB0aGUgdGV4dCB0cmFjayBjdWVzIGFzc29jaWF0ZWQKICAgICAv
LyB3aXRoIHRoZXNlIHRhc2tzLgotICAgIHJldHVybiBhLnNlY29uZC0+Y3VlSW5kZXgoKSAtIGIu
c2Vjb25kLT5jdWVJbmRleCgpIDwgMDsKKyAgICByZXR1cm4gYS5zZWNvbmQtPmlzT3JkZXJlZEJl
Zm9yZShiLnNlY29uZCk7CiB9CiAKIHN0YXRpYyBib29sIGNvbXBhcmVDdWVJbnRlcnZhbChjb25z
dCBDdWVJbnRlcnZhbCYgb25lLCBjb25zdCBDdWVJbnRlcnZhbCYgdHdvKQpAQCAtMTgxNywyMiAr
MTgxNywyMSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlYWR5U3RhdGVDaGFu
Z2VkKFRleHRUcmFjayogdHJhY2spCiAgICAgfQogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKiB0cmFjaykKK3ZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2smIHRyYWNrKQog
ewotICAgIEFTU0VSVCh0cmFjayk7Ci0gICAgaWYgKG1fYXVkaW9UcmFja3MgJiYgbV9hdWRpb1Ry
YWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV9hdWRpb1RyYWNrcyAmJiBtX2F1ZGlv
VHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fYXVkaW9UcmFja3MtPnNjaGVkdWxl
Q2hhbmdlRXZlbnQoKTsKICAgICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgcmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0
ZXJGaXJzdFVzZXJHZXN0dXJlKE1lZGlhRWxlbWVudFNlc3Npb246OkFsbFJlc3RyaWN0aW9ucyAm
IH5NZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250cm9s
c01hbmFnZXIpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja01vZGVDaGFu
Z2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja01v
ZGVDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7CiAgICAgYm9vbCB0cmFja0lzTG9hZGVkID0g
dHJ1ZTsKLSAgICBpZiAodHJhY2stPnRyYWNrVHlwZSgpID09IFRleHRUcmFjazo6VHJhY2tFbGVt
ZW50KSB7CisgICAgaWYgKHRyYWNrLnRyYWNrVHlwZSgpID09IFRleHRUcmFjazo6VHJhY2tFbGVt
ZW50KSB7CiAgICAgICAgIHRyYWNrSXNMb2FkZWQgPSBmYWxzZTsKICAgICAgICAgZm9yIChhdXRv
JiB0cmFja0VsZW1lbnQgOiBjaGlsZHJlbk9mVHlwZTxIVE1MVHJhY2tFbGVtZW50PigqdGhpcykp
IHsKLSAgICAgICAgICAgIGlmICgmdHJhY2tFbGVtZW50LnRyYWNrKCkgPT0gdHJhY2spIHsKKyAg
ICAgICAgICAgIGlmICgmdHJhY2tFbGVtZW50LnRyYWNrKCkgPT0gJnRyYWNrKSB7CiAgICAgICAg
ICAgICAgICAgaWYgKHRyYWNrRWxlbWVudC5yZWFkeVN0YXRlKCkgPT0gSFRNTFRyYWNrRWxlbWVu
dDo6TE9BRElORyB8fCB0cmFja0VsZW1lbnQucmVhZHlTdGF0ZSgpID09IEhUTUxUcmFja0VsZW1l
bnQ6OkxPQURFRCkKICAgICAgICAgICAgICAgICAgICAgdHJhY2tJc0xvYWRlZCA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xODQ1LDMzICsxODQ0LDMyIEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykKICAgICAg
ICAgbV90ZXh0VHJhY2tzID0gVGV4dFRyYWNrTGlzdDo6Y3JlYXRlKHRoaXMsIEFjdGl2ZURPTU9i
amVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICAKICAgICAvLyBNYXJrIHRoaXMg
dHJhY2sgYXMgImNvbmZpZ3VyZWQiIHNvIGNvbmZpZ3VyZVRleHRUcmFja3Mgd29uJ3QgY2hhbmdl
IHRoZSBtb2RlIGFnYWluLgotICAgIHRyYWNrLT5zZXRIYXNCZWVuQ29uZmlndXJlZCh0cnVlKTsK
KyAgICB0cmFjay5zZXRIYXNCZWVuQ29uZmlndXJlZCh0cnVlKTsKICAgICAKLSAgICBpZiAodHJh
Y2stPm1vZGUoKSAhPSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkICYmIHRyYWNrSXNMb2FkZWQp
Ci0gICAgICAgIHRleHRUcmFja0FkZEN1ZXModHJhY2ssIHRyYWNrLT5jdWVzKCkpOworICAgIGlm
ICh0cmFjay5tb2RlKCkgIT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCAmJiB0cmFja0lzTG9h
ZGVkKQorICAgICAgICB0ZXh0VHJhY2tBZGRDdWVzKHRyYWNrLCAqdHJhY2suY3VlcygpKTsKIAog
ICAgIGNvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkoQXNzdW1lVGV4dFRyYWNrVmlzaWJpbGl0eUNo
YW5nZWQpOwogCi0gICAgaWYgKG1fdGV4dFRyYWNrcyAmJiBtX3RleHRUcmFja3MtPmNvbnRhaW5z
KCp0cmFjaykpCisgICAgaWYgKG1fdGV4dFRyYWNrcyAmJiBtX3RleHRUcmFja3MtPmNvbnRhaW5z
KHRyYWNrKSkKICAgICAgICAgbV90ZXh0VHJhY2tzLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAK
ICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQotICAgIGlmICh0cmFjay0+dHJhY2tUeXBlKCkgPT0g
VGV4dFRyYWNrOjpUcmFja0VsZW1lbnQgJiYgbV9wbGF5ZXIpCisgICAgaWYgKHRyYWNrLnRyYWNr
VHlwZSgpID09IFRleHRUcmFjazo6VHJhY2tFbGVtZW50ICYmIG1fcGxheWVyKQogICAgICAgICBt
X3BsYXllci0+bm90aWZ5VHJhY2tNb2RlQ2hhbmdlZCgpOwogI2VuZGlmCiB9CiAKLXZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrKiB0cmFj
aykKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRl
b1RyYWNrJiB0cmFjaykKIHsKLSAgICBBU1NFUlQodHJhY2spOwotICAgIGlmIChtX3ZpZGVvVHJh
Y2tzICYmIG1fdmlkZW9UcmFja3MtPmNvbnRhaW5zKCp0cmFjaykpCisgICAgaWYgKG1fdmlkZW9U
cmFja3MgJiYgbV92aWRlb1RyYWNrcy0+Y29udGFpbnModHJhY2spKQogICAgICAgICBtX3ZpZGVv
VHJhY2tzLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykKK3ZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykKIHsKLSAgICBp
ZiAodHJhY2stPmtpbmQoKSAhPSBUZXh0VHJhY2s6OktpbmQ6OkNhcHRpb25zICYmIHRyYWNrLT5r
aW5kKCkgIT0gVGV4dFRyYWNrOjpLaW5kOjpTdWJ0aXRsZXMgJiYgdHJhY2stPm1vZGUoKSA9PSBU
ZXh0VHJhY2s6Ok1vZGU6OlNob3dpbmcpCi0gICAgICAgIHRyYWNrLT5zZXRNb2RlKFRleHRUcmFj
azo6TW9kZTo6SGlkZGVuKTsKKyAgICBpZiAodHJhY2sua2luZCgpICE9IFRleHRUcmFjazo6S2lu
ZDo6Q2FwdGlvbnMgJiYgdHJhY2sua2luZCgpICE9IFRleHRUcmFjazo6S2luZDo6U3VidGl0bGVz
ICYmIHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OlNob3dpbmcpCisgICAgICAgIHRy
YWNrLnNldE1vZGUoVGV4dFRyYWNrOjpNb2RlOjpIaWRkZW4pOwogfQogCiB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmJlZ2luSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpCkBAIC0x
ODg3LDI2ICsxODg1LDI4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW5kSWdub3JpbmdUcmFj
a0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpCiAgICAgICAgIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1
ZXMoY3VycmVudE1lZGlhVGltZSgpKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0
VHJhY2tBZGRDdWVzKFRleHRUcmFjayogdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1
ZXMpIAordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYg
dHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZXMpCiB7Ci0gICAgaWYgKHRyYWNrLT5t
b2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCkKKyAgICBpZiAodHJhY2subW9kZSgp
ID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFRy
YWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlKHRoaXMpOwotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgY3Vlcy0+bGVuZ3RoKCk7ICsraSkKLSAgICAgICAgdGV4dFRyYWNrQWRkQ3VlKHRyYWNr
LCAqY3Vlcy0+aXRlbShpKSk7CisgICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUgeyAq
dGhpcyB9OworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjdWVzLmxlbmd0aCgpOyArK2kp
CisgICAgICAgIHRleHRUcmFja0FkZEN1ZSh0cmFjaywgKmN1ZXMuaXRlbShpKSk7CiB9CiAKLXZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBjb25z
dCBUZXh0VHJhY2tDdWVMaXN0KiBjdWVzKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJh
Y2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZXMpCiB7
Ci0gICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUodGhpcyk7Ci0gICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBjdWVzLT5sZW5ndGgoKTsgKytpKQotICAgICAgICB0ZXh0VHJhY2tSZW1v
dmVDdWUoY3Vlcy0+aXRlbShpKS0+dHJhY2soKSwgKmN1ZXMtPml0ZW0oaSkpOworICAgIFRyYWNr
RGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlIHsgKnRoaXMgfTsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgY3Vlcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgIGF1dG8mIGN1ZSA9ICpjdWVz
Lml0ZW0oaSk7CisgICAgICAgIHRleHRUcmFja1JlbW92ZUN1ZSgqY3VlLnRyYWNrKCksIGN1ZSk7
CisgICAgfQogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZShUZXh0
VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
dGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYgdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogewot
ICAgIGlmICh0cmFjay0+bW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQpCisgICAg
aWYgKHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkKQogICAgICAgICBy
ZXR1cm47CiAKICAgICAvLyBOZWdhdGl2ZSBkdXJhdGlvbiBjdWVzIG5lZWQgYmUgdHJlYXRlZCBp
biB0aGUgaW50ZXJ2YWwgdHJlZSBhcwpAQCAtMTkxOSw3ICsxOTE5LDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRyYWNrQ3Vl
JiBjdWUpCiAgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcyhjdXJyZW50TWVkaWFUaW1lKCkp
OwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJh
Y2sqLCBUZXh0VHJhY2tDdWUmIGN1ZSkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNr
UmVtb3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYgY3VlKQogewogICAgIC8vIE5lZ2F0
aXZlIGR1cmF0aW9uIGN1ZXMgbmVlZCB0byBiZSB0cmVhdGVkIGluIHRoZSBpbnRlcnZhbCB0cmVl
IGFzCiAgICAgLy8gemVyby1sZW5ndGggY3Vlcy4KQEAgLTMyMTIsNiArMzIxMiw3IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6cGF1c2VJbnRlcm5hbCgpCiB9CiAKICNpZiBFTkFCTEUoTUVESUFf
U09VUkNFKQorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRldGFjaE1lZGlhU291cmNlKCkKIHsK
ICAgICBpZiAoIW1fbWVkaWFTb3VyY2UpCkBAIC0zMjIwLDYgKzMyMjEsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmRldGFjaE1lZGlhU291cmNlKCkKICAgICBtX21lZGlhU291cmNlLT5kZXRh
Y2hGcm9tRWxlbWVudCgqdGhpcyk7CiAgICAgbV9tZWRpYVNvdXJjZSA9IG51bGxwdHI7CiB9CisK
ICNlbmRpZgogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Omxvb3AoKSBjb25zdApAQCAtMzUwOCwx
NCArMzUxMCwxNCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkQWRkQXVk
aW9UcmFjayhBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2spCiAgICAgaWYgKGlzUGxheWluZygpICYm
ICFtX21lZGlhU2Vzc2lvbi0+cGxheWJhY2tQZXJtaXR0ZWQoKnRoaXMpKQogICAgICAgICBwYXVz
ZUludGVybmFsKCk7CiAKLSAgICBhZGRBdWRpb1RyYWNrKEF1ZGlvVHJhY2s6OmNyZWF0ZSh0aGlz
LCAmdHJhY2spKTsKKyAgICBhZGRBdWRpb1RyYWNrKEF1ZGlvVHJhY2s6OmNyZWF0ZSgqdGhpcywg
dHJhY2spKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckRpZEFkZFRl
eHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFjaykKIHsKICAgICAvLyA0LjguMTAu
MTIuMiBTb3VyY2luZyBpbi1iYW5kIHRleHQgdHJhY2tzCiAgICAgLy8gMS4gQXNzb2NpYXRlIHRo
ZSByZWxldmFudCBkYXRhIHdpdGggYSBuZXcgdGV4dCB0cmFjayBhbmQgaXRzIGNvcnJlc3BvbmRp
bmcgbmV3IFRleHRUcmFjayBvYmplY3QuCi0gICAgUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gdGV4
dFRyYWNrID0gSW5iYW5kVGV4dFRyYWNrOjpjcmVhdGUoQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCksIHRoaXMsICZ0cmFjayk7CisgICAgYXV0byB0ZXh0VHJhY2sgPSBJ
bmJhbmRUZXh0VHJhY2s6OmNyZWF0ZSgqQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksICp0aGlzLCB0cmFjayk7CiAgICAgdGV4dFRyYWNrLT5zZXRNZWRpYUVsZW1lbnQo
dGhpcyk7CiAgICAgCiAgICAgLy8gMi4gU2V0IHRoZSBuZXcgdGV4dCB0cmFjaydzIGtpbmQsIGxh
YmVsLCBhbmQgbGFuZ3VhZ2UgYmFzZWQgb24gdGhlIHNlbWFudGljcyBvZiB0aGUgcmVsZXZhbnQg
ZGF0YSwKQEAgLTM1NDEsMTIgKzM1NDMsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllckRpZEFkZFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFjaykKICAg
ICAvLyA5LiBGaXJlIGFuIGV2ZW50IHdpdGggdGhlIG5hbWUgYWRkdHJhY2ssIHRoYXQgZG9lcyBu
b3QgYnViYmxlIGFuZCBpcyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tF
dmVudAogICAgIC8vIGludGVyZmFjZSwgd2l0aCB0aGUgdHJhY2sgYXR0cmlidXRlIGluaXRpYWxp
emVkIHRvIHRoZSB0ZXh0IHRyYWNrJ3MgVGV4dFRyYWNrIG9iamVjdCwgYXQgdGhlIG1lZGlhIGVs
ZW1lbnQncwogICAgIC8vIHRleHRUcmFja3MgYXR0cmlidXRlJ3MgVGV4dFRyYWNrTGlzdCBvYmpl
Y3QuCi0gICAgYWRkVGV4dFRyYWNrKHRleHRUcmFjay5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICBh
ZGRUZXh0VHJhY2soV1RGTW92ZSh0ZXh0VHJhY2spKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjptZWRpYVBsYXllckRpZEFkZFZpZGVvVHJhY2soVmlkZW9UcmFja1ByaXZhdGUmIHRyYWNr
KQogewotICAgIGFkZFZpZGVvVHJhY2soVmlkZW9UcmFjazo6Y3JlYXRlKHRoaXMsICZ0cmFjaykp
OworICAgIGFkZFZpZGVvVHJhY2soVmlkZW9UcmFjazo6Y3JlYXRlKCp0aGlzLCB0cmFjaykpOwog
fQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkUmVtb3ZlQXVkaW9UcmFj
ayhBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2spCkBAIC0zNjAzLDkgKzM2MDUsOSBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnJlbW92ZUF1ZGlvVHJhY2soQXVkaW9UcmFjayYgdHJhY2spCiAKIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlVGV4dFRyYWNrKFRleHRUcmFjayYgdHJhY2ssIGJv
b2wgc2NoZWR1bGVFdmVudCkKIHsKLSAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSBzY29wZSh0
aGlzKTsKLSAgICBpZiAoVGV4dFRyYWNrQ3VlTGlzdCogY3VlcyA9IHRyYWNrLmN1ZXMoKSkKLSAg
ICAgICAgdGV4dFRyYWNrUmVtb3ZlQ3VlcygmdHJhY2ssIGN1ZXMpOworICAgIFRyYWNrRGlzcGxh
eVVwZGF0ZVNjb3BlIHNjb3BlIHsgKnRoaXMgfTsKKyAgICBpZiAoYXV0byogY3VlcyA9IHRyYWNr
LmN1ZXMoKSkKKyAgICAgICAgdGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0cmFjaywgKmN1ZXMpOwogICAg
IHRyYWNrLmNsZWFyQ2xpZW50KCk7CiAgICAgaWYgKG1fdGV4dFRyYWNrcykKICAgICAgICAgbV90
ZXh0VHJhY2tzLT5yZW1vdmUodHJhY2ssIHNjaGVkdWxlRXZlbnQpOwpAQCAtMzYyNSw3ICszNjI3
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpmb3JnZXRSZXNvdXJjZVNwZWNpZmljVHJhY2tz
KCkKICAgICAgICAgcmVtb3ZlQXVkaW9UcmFjaygqbV9hdWRpb1RyYWNrcy0+bGFzdEl0ZW0oKSk7
CiAKICAgICBpZiAobV90ZXh0VHJhY2tzKSB7Ci0gICAgICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNj
b3BlIHNjb3BlKHRoaXMpOworICAgICAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSBzY29wZSB7
ICp0aGlzIH07CiAgICAgICAgIGZvciAoaW50IGkgPSBtX3RleHRUcmFja3MtPmxlbmd0aCgpIC0g
MTsgaSA+PSAwOyAtLWkpIHsKICAgICAgICAgICAgIGF1dG8mIHRyYWNrID0gKm1fdGV4dFRyYWNr
cy0+aXRlbShpKTsKICAgICAgICAgICAgIGlmICh0cmFjay50cmFja1R5cGUoKSA9PSBUZXh0VHJh
Y2s6OkluQmFuZCkKQEAgLTYwNzgsMTIgKzYwODAsMTIgQEAgTWVkaWFDb250cm9sbGVyKiBIVE1M
TWVkaWFFbGVtZW50Ojpjb250cm9sbGVyKCkgY29uc3QKICAgICByZXR1cm4gbV9tZWRpYUNvbnRy
b2xsZXIuZ2V0KCk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0Q29udHJvbGxlcihQ
YXNzUmVmUHRyPE1lZGlhQ29udHJvbGxlcj4gY29udHJvbGxlcikKK3ZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2V0Q29udHJvbGxlcihSZWZQdHI8TWVkaWFDb250cm9sbGVyPiYmIGNvbnRyb2xsZXIp
CiB7CiAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyKQogICAgICAgICBtX21lZGlhQ29udHJvbGxl
ci0+cmVtb3ZlTWVkaWFFbGVtZW50KCp0aGlzKTsKIAotICAgIG1fbWVkaWFDb250cm9sbGVyID0g
Y29udHJvbGxlcjsKKyAgICBtX21lZGlhQ29udHJvbGxlciA9IFdURk1vdmUoY29udHJvbGxlcik7
CiAKICAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXIpCiAgICAgICAgIG1fbWVkaWFDb250cm9sbGVy
LT5hZGRNZWRpYUVsZW1lbnQoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAppbmRleCAwMjNjYzMzNjI4MzNmYTgwNjE5OWE0MTMwM2FmZjE5MDVjYmY2NWRmLi5jYTE4
OThkNmU2ZTIyMWExYWMxNTM1YTk3OTBhNTIxY2MyOWEyZTA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDctMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDctMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDEwICsyNywxMCBAQAogCiAjaWYgRU5BQkxFKFZJ
REVPKQogCi0jaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJBY3RpdmVET01PYmpl
Y3QuaCIKICNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkdlbmVyaWNU
YXNrUXVldWUuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxNZWRp
YUVsZW1lbnRFbnVtcy5oIgogI2luY2x1ZGUgIk1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oIgogI2lu
Y2x1ZGUgIk1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oIgpAQCAtNjksOSArNjksNyBAQCBjbGFz
cyBNZWRpYUNvbnRyb2xzOwogY2xhc3MgTWVkaWFDb250cm9sc0hvc3Q7CiBjbGFzcyBNZWRpYUVs
ZW1lbnRBdWRpb1NvdXJjZU5vZGU7CiBjbGFzcyBNZWRpYUVycm9yOwotI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCiBjbGFzcyBNZWRpYUtleXM7Ci0jZW5kaWYKIGNsYXNzIE1lZGlhUGxheWVy
OwogY2xhc3MgTWVkaWFTZXNzaW9uOwogY2xhc3MgTWVkaWFTb3VyY2U7CkBAIC04MSw3ICs3OSw2
IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBTb3VyY2VCdWZmZXI7CiBj
bGFzcyBUZXh0VHJhY2tMaXN0OwogY2xhc3MgVGltZVJhbmdlczsKLWNsYXNzIFVSTDsKIGNsYXNz
IFZpZGVvUGxheWJhY2tRdWFsaXR5OwogY2xhc3MgVmlkZW9UcmFja0xpc3Q7CiBjbGFzcyBWaWRl
b1RyYWNrUHJpdmF0ZTsKQEAgLTMzMSwyMCArMzI4LDIwIEBAIHB1YmxpYzoKICAgICB2b2lkIHVw
ZGF0ZVRleHRUcmFja0Rpc3BsYXkoKTsKIAogICAgIC8vIEF1ZGlvVHJhY2tDbGllbnQKLSAgICB2
b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKikgb3ZlcnJpZGU7CisgICAg
dm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayYpIGZpbmFsOwogCiAgICAg
dm9pZCB0ZXh0VHJhY2tSZWFkeVN0YXRlQ2hhbmdlZChUZXh0VHJhY2sqKTsKIAogICAgIC8vIFRl
eHRUcmFja0NsaWVudAotICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrKikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRy
YWNrQ3VlTGlzdCopIG92ZXJyaWRlOwotICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0
VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0Kikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0
VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgb3ZlcnJpZGU7
CisgICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2smKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIG92ZXJyaWRlOworICAgIHZv
aWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0Jikg
b3ZlcnJpZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0
IFRleHRUcmFja0N1ZUxpc3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRleHRUcmFja0FkZEN1ZShU
ZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRleHRUcmFja1Jl
bW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlkZTsKIAogICAgIC8vIFZp
ZGVvVHJhY2tDbGllbnQKLSAgICB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9U
cmFjayopIG92ZXJyaWRlOworICAgIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRl
b1RyYWNrJikgZmluYWw7CiAKICAgICBib29sIHJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24oKSBjb25zdDsKICAgICB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFRleHRUcmFj
a1JlcHJlc2VudGF0aW9uKik7CkBAIC00MjIsNyArNDE5LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0TWVkaWFHcm91cChjb25zdCBTdHJpbmcmKTsKIAogICAgIE1lZGlhQ29udHJvbGxlciogY29u
dHJvbGxlcigpIGNvbnN0OwotICAgIHZvaWQgc2V0Q29udHJvbGxlcihQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbGxlcj4pOworICAgIHZvaWQgc2V0Q29udHJvbGxlcihSZWZQdHI8TWVkaWFDb250cm9s
bGVyPiYmKTsKIAogICAgIHZvaWQgZW50ZXJlZE9yRXhpdGVkRnVsbHNjcmVlbigpIHsgY29uZmln
dXJlTWVkaWFDb250cm9scygpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5jcHAKaW5kZXggYmRlNmFlMjM1ZmQyZDQ0NzlkYWZiNjg5NDBmNzE5YjAyYzM0OGNmMy4u
MmVlYjQzZWQzOWFjYjVlMmM4OTg1ZDlhMzYyMDU4ODk3N2M5YjFkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmln
aHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykg
MTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykg
MjAwMCBTdGVmYW4gU2NoaW1hbnNraSAoMVN0ZWluQGdteC5kZSkKLSAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNTE5LDExICs1
MTksNiBAQCBib29sIEhUTUxPYmplY3RFbGVtZW50OjphcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxp
c3QmIGVuY29kaW5nLCBib29sKQogICAgIHJldHVybiB0cnVlOwogfQogCi1IVE1MRm9ybUVsZW1l
bnQqIEhUTUxPYmplY3RFbGVtZW50Ojp2aXJ0dWFsRm9ybSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybSgpOwotfQotCiBib29sIEhUTUxPYmplY3RFbGVt
ZW50OjpjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0CiB7CiAgICAgLy8gQ2FsbCB0aHJv
dWdoIHRvIEhUTUxFbGVtZW50IGJlY2F1c2Ugd2UgbmVlZCB0byBza2lwIEhUTUxQbHVnSW5FbGVt
ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKaW5kZXggZTNjNTVlNGYw
NTUxZTZjNmY1OWRmNDc3NTc4ZmY5NjgyMmRhZmVkOS4uOWVhODkzYjAxZDRjMDI2ZWUxNTdhMjM4
YWI1NjcxNGE1NDk3ZTYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQu
aApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29p
dmlzdG9Aa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAwNywgMjAwOCwg
MjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHVzaW5nIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OnJlZjsKICAgICB1c2luZyBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpkZXJlZjsKIAot
ICAgIHVzaW5nIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybTsKKyAgICBIVE1MRm9ybUVsZW1l
bnQqIGZvcm0oKSBjb25zdCBmaW5hbCB7IHJldHVybiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZv
cm0oKTsgfQogCiBwcml2YXRlOgogICAgIEhUTUxPYmplY3RFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2Vy
KTsKQEAgLTkxLDcgKzkxLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVmRm9ybUFzc29jaWF0
ZWRFbGVtZW50KCkgZmluYWwgeyByZWYoKTsgfQogICAgIHZvaWQgZGVyZWZGb3JtQXNzb2NpYXRl
ZEVsZW1lbnQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KLSAgICBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1
YWxGb3JtKCkgY29uc3QgZmluYWw7CiAKICAgICBGb3JtTmFtZWRJdGVtKiBhc0Zvcm1OYW1lZEl0
ZW0oKSBmaW5hbCB7IHJldHVybiB0aGlzOyB9CiAgICAgSFRNTE9iamVjdEVsZW1lbnQmIGFzSFRN
TEVsZW1lbnQoKSBmaW5hbCB7IHJldHVybiAqdGhpczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPcHRpb25FbGVtZW50LmNwcAppbmRleCA5YTMwNWZmMWY3MjYwMjJiNWYzZjcyMDMyNzhjMDY2
YmQ0MWY1OWZkLi44ZmJlNTFlZGIxNzdhMGMyNzEzYjYwMWNlODM2ODBjZTJlZmVkZDcyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcApAQCAtMyw3ICszLDcgQEAK
ICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykK
ICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKICAq
ICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMTAsIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTW90b3JvbGEgTW9i
aWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMzM0LDcgKzMzNCw3IEBA
IFN0cmluZyBIVE1MT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvbklubmVyVGV4dCgpIGNvbnN0
CiAgICAgICAgIGlmIChpczxUZXh0Pigqbm9kZSkpCiAgICAgICAgICAgICB0ZXh0LmFwcGVuZChu
b2RlLT5ub2RlVmFsdWUoKSk7CiAgICAgICAgIC8vIFRleHQgbm9kZXMgaW5zaWRlIHNjcmlwdCBl
bGVtZW50cyBhcmUgbm90IHBhcnQgb2YgdGhlIG9wdGlvbiB0ZXh0LgotICAgICAgICBpZiAoaXM8
RWxlbWVudD4oKm5vZGUpICYmIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZG93bmNhc3Q8RWxl
bWVudD4obm9kZSkpKQorICAgICAgICBpZiAoaXM8RWxlbWVudD4oKm5vZGUpICYmIGlzU2NyaXB0
RWxlbWVudChkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkpKQogICAgICAgICAgICAgbm9kZSA9IE5v
ZGVUcmF2ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKCpub2RlLCB0aGlzKTsKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoKm5vZGUsIHRoaXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAppbmRleCBhODY0ZTg3
ZWFmZDQyODNlNTRmMWU0MGJmZWNmOTIyNWE1Y2I1ZGQ2Li5jZTZkM2I2OGYyNjJjYzJjMzI2MjU1
MjUyMzAzNGZmNzFlNjA0MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVt
ZW50LmNwcApAQCAtMSw4ICsxLDggQEAKLS8qKgorLyoKICAqIENvcHlyaWdodCAoQykgMTk5OSBM
YXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtv
aXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAwIFN0ZWZhbiBT
Y2hpbWFuc2tpICgxU3RlaW5AZ214LmRlKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2LCAyMDE0IEFwcGxlIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTA4LDIxICsx
MDgsMjAgQEAgdm9pZCBIVE1MUGx1Z0luRWxlbWVudDo6cmVzZXRJbnN0YW5jZSgpCiAgICAgbV9p
bnN0YW5jZSA9IG51bGxwdHI7CiB9CiAKLVBhc3NSZWZQdHI8SlNDOjpCaW5kaW5nczo6SW5zdGFu
Y2U+IEhUTUxQbHVnSW5FbGVtZW50OjpnZXRJbnN0YW5jZSgpCitKU0M6OkJpbmRpbmdzOjpJbnN0
YW5jZSogSFRNTFBsdWdJbkVsZW1lbnQ6OmJpbmRpbmdzSW5zdGFuY2UoKQogewotICAgIEZyYW1l
KiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50
KCkuZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBJZiB0aGUgaG9zdCBkeW5hbWljYWxseSB0dXJucyBv
ZmYgSmF2YVNjcmlwdCAob3IgSmF2YSkgd2Ugd2lsbCBzdGlsbCByZXR1cm4KICAgICAvLyB0aGUg
Y2FjaGVkIGFsbG9jYXRlZCBCaW5kaW5nczo6SW5zdGFuY2UuICBOb3Qgc3VwcG9ydGluZyB0aGlz
IGVkZ2UtY2FzZSBpcyBPSy4KLSAgICBpZiAobV9pbnN0YW5jZSkKLSAgICAgICAgcmV0dXJuIG1f
aW5zdGFuY2U7Ci0KLSAgICBpZiAoV2lkZ2V0KiB3aWRnZXQgPSBwbHVnaW5XaWRnZXQoKSkKLSAg
ICAgICAgbV9pbnN0YW5jZSA9IGZyYW1lLT5zY3JpcHQoKS5jcmVhdGVTY3JpcHRJbnN0YW5jZUZv
cldpZGdldCh3aWRnZXQpOwogCi0gICAgcmV0dXJuIG1faW5zdGFuY2U7CisgICAgaWYgKCFtX2lu
c3RhbmNlKSB7CisgICAgICAgIGlmIChhdXRvKiB3aWRnZXQgPSBwbHVnaW5XaWRnZXQoKSkKKyAg
ICAgICAgICAgIG1faW5zdGFuY2UgPSBmcmFtZS0+c2NyaXB0KCkuY3JlYXRlU2NyaXB0SW5zdGFu
Y2VGb3JXaWRnZXQod2lkZ2V0KTsKKyAgICB9CisgICAgcmV0dXJuIG1faW5zdGFuY2UuZ2V0KCk7
CiB9CiAKIGJvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6Omd1YXJkZWREaXNwYXRjaEJlZm9yZUxvYWRF
dmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKQEAgLTE5OSw3ICsxOTgsNyBAQCB2b2lkIEhU
TUxQbHVnSW5FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKICAgICAg
ICAgfQogCiAgICAgICAgIGlmIChpczxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbj4oKnJlbmRlcmVy
KSAmJiBkaXNwbGF5U3RhdGUoKSA8IFJlc3RhcnRpbmcpIHsKLSAgICAgICAgICAgIGRvd25jYXN0
PFJlbmRlclNuYXBzaG90dGVkUGx1Z0luPigqcmVuZGVyZXIpLmhhbmRsZUV2ZW50KCZldmVudCk7
CisgICAgICAgICAgICBkb3duY2FzdDxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbj4oKnJlbmRlcmVy
KS5oYW5kbGVFdmVudChldmVudCk7CiAgICAgICAgICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKaW5kZXggNWI4YzVhZDQy
ODJhYmY5NWEwNTI2MjhiMjhmZTlkNDAxYTljNzc4My4uODkyNzFjNDhiM2RiMGQ3YmMyOWI1YmU5
NTVlNWVkNGIwZWNiOGE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
aApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29p
dmlzdG9Aa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAwNywgMjAwOCwg
MjAwOSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXNldEluc3Rh
bmNlKCk7CiAKLSAgICBQYXNzUmVmUHRyPEpTQzo6QmluZGluZ3M6Okluc3RhbmNlPiBnZXRJbnN0
YW5jZSgpOworICAgIEpTQzo6QmluZGluZ3M6Okluc3RhbmNlKiBiaW5kaW5nc0luc3RhbmNlKCk7
CiAKICAgICBlbnVtIGNsYXNzIFBsdWdpbkxvYWRpbmdQb2xpY3kgeyBEb05vdExvYWQsIExvYWQg
fTsKICAgICBXRUJDT1JFX0VYUE9SVCBXaWRnZXQqIHBsdWdpbldpZGdldChQbHVnaW5Mb2FkaW5n
UG9saWN5ID0gUGx1Z2luTG9hZGluZ1BvbGljeTo6TG9hZCkgY29uc3Q7CkBAIC02MCw3ICs2MCw3
IEBAIHB1YmxpYzoKICAgICB9OwogICAgIERpc3BsYXlTdGF0ZSBkaXNwbGF5U3RhdGUoKSBjb25z
dCB7IHJldHVybiBtX2Rpc3BsYXlTdGF0ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXREaXNwbGF5
U3RhdGUoRGlzcGxheVN0YXRlKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU25hcHNob3QoUGFz
c1JlZlB0cjxJbWFnZT4pIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTbmFwc2hvdChJbWFn
ZSopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFBlbmRpbmdNb3VzZUNsaWNrKCkgeyB9
CiAgICAgdmlydHVhbCBib29sIGlzUmVzdGFydGVkUGx1Z2luKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5j
cHAKaW5kZXggZmEyMzQ3YjYwYTk2MmI2MDVlM2U3OTg2NTBjMTMxYThiMmIyNWE4OC4uMmE3NjI4
YTJjY2Q2ZDJkMjI0ZjQ4ZGEzNDdiN2M5MTcyYzVkN2U2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTcxLDcgKzE3MSw3IEBAIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVuZGVyU3R5CiAKICAgICBpZiAoZGlzcGxheVN0YXRlKCkgPT0gRGlzcGxheWluZ1NuYXBzaG90
KSB7CiAgICAgICAgIGF1dG8gcmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gPSBjcmVhdGVSZW5kZXJl
cjxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbj4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKLSAgICAg
ICAgcmVuZGVyU25hcHNob3R0ZWRQbHVnSW4tPnVwZGF0ZVNuYXBzaG90KG1fc25hcHNob3RJbWFn
ZSk7CisgICAgICAgIHJlbmRlclNuYXBzaG90dGVkUGx1Z0luLT51cGRhdGVTbmFwc2hvdChtX3Nu
YXBzaG90SW1hZ2UuZ2V0KCkpOwogICAgICAgICByZXR1cm4gV1RGTW92ZShyZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbik7CiAgICAgfQogCkBAIC0zMDEsNyArMzAxLDcgQEAgdm9pZCBIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50OjpzdGFydExvYWRpbmdJbWFnZSgpCiAgICAgbV9pbWFnZUxvYWRlci0+dXBk
YXRlRnJvbUVsZW1lbnQoKTsKIH0KIAotdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRh
dGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKK3ZvaWQgSFRNTFBsdWdJbkltYWdl
RWxlbWVudDo6dXBkYXRlU25hcHNob3QoSW1hZ2UqIGltYWdlKQogewogICAgIGlmIChkaXNwbGF5
U3RhdGUoKSA+IERpc3BsYXlpbmdTbmFwc2hvdCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAppbmRleCBhM2Y3ZTEwOGNmOTJl
MDVhOWJiOGRhNGRhNjkyYWY0MDBmZDA2YTQ2Li5iMWM3NjI2YTNjNGU5NGM5Y2RkMDhkOGZmYTJk
YTFjMzRmMzVmYjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5J
bWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTExOCw3ICsxMTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hQZW5kaW5nTW91c2VDbGljaygpIGZpbmFs
OwogCi0gICAgdm9pZCB1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPikgZmluYWw7Cisg
ICAgdm9pZCB1cGRhdGVTbmFwc2hvdChJbWFnZSopIGZpbmFsOwogCiAgICAgdm9pZCBzdGFydExv
YWRpbmdJbWFnZSgpOwogICAgIHZvaWQgdXBkYXRlV2lkZ2V0SWZOZWNlc3NhcnkoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggZWRjMjdiOWE1MDAzOWNl
YzMwMWI2YjhmNWNjMmJhYTM0ZjM4M2MwMi4uN2EyYjgyZGVjNDRlYmQ4OGI1NjYxNWY0NjU2ZWU3
ZmE1NTgyYTdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAK
QEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxA
a2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9A
a2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2Rl
Lm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAppbmRleCBmMmJkNTI1Yzc0ZGRk
M2Q3YjhhMWZjMWU5NjkyNTJlODYzY2RmNTc1Li4zMmQ4ZWUwMzg0YzIxNWY4YzFiNWM0OTk3Y2M4
NjgxODViZmYxODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCkBA
IC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9s
bEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0
b0BrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3
LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwMy0yMDE3IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAw
OCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBA
IC00Myw2ICs0Myw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENyb3Nz
T3JpZ2luKGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBj
cm9zc09yaWdpbigpIGNvbnN0OwogCisgICAgdXNpbmcgSFRNTEVsZW1lbnQ6OnJlZjsKKyAgICB1
c2luZyBIVE1MRWxlbWVudDo6ZGVyZWY7CisKIHByaXZhdGU6CiAgICAgSFRNTFNjcmlwdEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFy
c2VyLCBib29sIGFscmVhZHlTdGFydGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA3ZGI5MTRmNzA2YjNhNmZhZjk0
MzRhOGYyNGVlMTIxODE1YTc0ZGYyLi5hOWE1Mzc0Y2M2YTRiMTJhNzBmMmI5ODQ2M2I5ZjlmODhj
Njk4OTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJz
IEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZp
c3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxl
ciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAy
MDA3LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAg
ICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgpAQCAtNDI3LDcgKzQyNyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRDb250YWluZXJBbmRP
ZmZzZXRGb3JSYW5nZShOb2RlKiBub2RlLCBpbnQgb2Zmc2V0LCBOb2RlKiYKICAgICB9CiB9CiAK
LVBhc3NSZWZQdHI8UmFuZ2U+IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3Rpb24o
KSBjb25zdAorUmVmUHRyPFJhbmdlPiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0
aW9uKCkgY29uc3QKIHsKICAgICBpZiAoIXJlbmRlcmVyKCkgfHwgIWlzVGV4dEZvcm1Db250cm9s
KCkgfHwgIWhhc0NhY2hlZFNlbGVjdGlvbigpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRl
eCA0YTYzZTk3MWFhYjFmZWI1ZDM0NmRjNDIyMzFiNmIxMjY2YzBiNjNmLi4xMjhiMDMxOGIwN2U2
ZmI4NDgyZWE2ZGRmNGU4M2Q1NjZmODhlMzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJp
Z2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMp
IDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMp
IDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwLCAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNzQsNyAr
NzQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBFeGNlcHRpb25Pcjx2
b2lkPiBzZXRSYW5nZVRleHQoY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudCwgdW5zaWduZWQgc3Rh
cnQsIHVuc2lnbmVkIGVuZCwgY29uc3QgU3RyaW5nJiBzZWxlY3Rpb25Nb2RlKTsKICAgICB2b2lk
IHNldFNlbGVjdGlvblJhbmdlKGludCBzdGFydCwgaW50IGVuZCwgY29uc3QgU3RyaW5nJiBkaXJl
Y3Rpb24sIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KCkpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW50
IHN0YXJ0LCBpbnQgZW5kLCBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gPSBTZWxlY3Rpb25I
YXNOb0RpcmVjdGlvbiwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmID0gQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoKSk7Ci0gICAgUGFzc1JlZlB0cjxSYW5nZT4gc2VsZWN0aW9uKCkgY29u
c3Q7CisgICAgUmVmUHRyPFJhbmdlPiBzZWxlY3Rpb24oKSBjb25zdDsKICAgICBTdHJpbmcgc2Vs
ZWN0ZWRUZXh0KCkgY29uc3Q7CiAKICAgICB2b2lkIGRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VF
dmVudCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKaW5k
ZXggMDdmNDJkOTlmOGQ3YjQ4YTliYTI0MWI0YzQ3MWQ1NzlmNTVlOGJkNS4uNjY4YjgxMmI4Y2Vm
NTMxNzczMDlmYzU4MmQ4Yjk0NjE3M2RhZDM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
cmFja0VsZW1lbnQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC00Miw2ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKICNpZiAhTE9HX0RJU0FCTEVECisKIHN0YXRp
YyBTdHJpbmcgdXJsRm9yTG9nZ2luZ1RyYWNrKGNvbnN0IFVSTCYgdXJsKQogewogICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBtYXhpbXVtVVJMTGVuZ3RoRm9yTG9nZ2luZyA9IDEyODsKQEAgLTUw
LDYgKzUyLDcgQEAgc3RhdGljIFN0cmluZyB1cmxGb3JMb2dnaW5nVHJhY2soY29uc3QgVVJMJiB1
cmwpCiAgICAgICAgIHJldHVybiB1cmwuc3RyaW5nKCk7CiAgICAgcmV0dXJuIHVybC5zdHJpbmco
KS5zdWJzdHJpbmcoMCwgbWF4aW11bVVSTExlbmd0aEZvckxvZ2dpbmcpICsgIi4uLiI7CiB9CisK
ICNlbmRpZgogICAgIAogaW5saW5lIEhUTUxUcmFja0VsZW1lbnQ6OkhUTUxUcmFja0VsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtMjc5
LDQzICsyODIsNDMgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MVHJhY2tFbGVtZW50OjptZWRp
YUVsZW1lbnRDcm9zc09yaWdpbkF0dHJpYnV0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG51bGxBdG9t
OwogfQogCi12b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRU
cmFjayogdHJhY2spCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0tpbmRDaGFuZ2Vk
KFRleHRUcmFjayYgdHJhY2spCiB7Ci0gICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIHBhcmVudCA9
IG1lZGlhRWxlbWVudCgpKQorICAgIGlmIChhdXRvKiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkK
ICAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tLaW5kQ2hhbmdlZCh0cmFjayk7CiB9CiAKLXZvaWQg
SFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykK
K3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrJiB0
cmFjaykKIHsKICAgICAvLyBTaW5jZSB3ZSd2ZSBtb3ZlZCB0byBhIG5ldyBwYXJlbnQsIHdlIG1h
eSBub3cgYmUgYWJsZSB0byBsb2FkLgogICAgIGlmIChyZWFkeVN0YXRlKCkgPT0gSFRNTFRyYWNr
RWxlbWVudDo6Tk9ORSkKICAgICAgICAgc2NoZWR1bGVMb2FkKCk7CiAKLSAgICBpZiAoSFRNTE1l
ZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVu
dCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja01vZGVDaGFuZ2Vk
KHRyYWNrKTsKIH0KIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKFRl
eHRUcmFjayogdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMpCit2b2lkIEhUTUxU
cmFja0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiB0cmFjaywgY29uc3QgVGV4
dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50
ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgp
KQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja0FkZEN1ZXModHJhY2ssIGN1ZXMpOwogfQogICAg
IAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayog
dHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMpCit2b2lkIEhUTUxUcmFja0VsZW1l
bnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiB0cmFjaywgY29uc3QgVGV4dFRyYWNr
Q3VlTGlzdCYgY3VlcykKIHsKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVk
aWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAg
ICAgICBwYXJlbnQtPnRleHRUcmFja1JlbW92ZUN1ZXModHJhY2ssIGN1ZXMpOwogfQogICAgIAot
dm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiB0cmFjaywg
VGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1
ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKLSAgICBpZiAoSFRNTE1l
ZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVu
dCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja0FkZEN1ZSh0cmFj
aywgY3VlKTsKIH0KICAgICAKLXZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrUmVtb3Zl
Q3VlKFRleHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBIVE1MVHJhY2tF
bGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiB0cmFjaywgVGV4dFRyYWNrQ3Vl
JiBjdWUpCiB7Ci0gICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIHBhcmVudCA9IG1lZGlhRWxlbWVu
dCgpKQorICAgIGlmIChhdXRvKiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAgcGFy
ZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUodHJhY2ssIGN1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVHJhY2tFbGVtZW50LmgKaW5kZXggOWI0MjVkY2Q4NWQxZTBkNGYzNjBjODZkMmVhNjJk
MTkwOGU0YjdiMC4uMjI1MTAyNzljZGYyYmJlMjE5ZTUyM2MxNzlmNjI2ZDMzZGY3OTBiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc0LDEyICs3NSwxMiBAQCBwcml2
YXRlOgogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCgpIGNvbnN0OwogCiAgICAg
Ly8gVGV4dFRyYWNrQ2xpZW50Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJh
Y2sqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayopIGZp
bmFsOwotICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJh
Y2tDdWVMaXN0KikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFj
ayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0Fk
ZEN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFj
a1JlbW92ZUN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHRl
eHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNr
S2luZENoYW5nZWQoVGV4dFRyYWNrJikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWVz
KFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBmaW5hbDsKKyAgICB2b2lkIHRl
eHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIGZp
bmFsOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYp
IGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFj
a0N1ZSYpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5Mb2FkVVJMKGNvbnN0IFVSTCYpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggZjZhNmJiYzQ2NGI5YWZhMzhkNTdiNGQxZWM0N2Nm
M2NjYTkyNjZkNC4uM2E4NjFhZDY2MDQ5NTQxZDY3YTE0YzJjZWZkZDRkMWU1NjUxMTMzNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAo
QykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5
IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAx
IERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEzLCAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4
ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2Ft
dWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAs
IDIwMTEsIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTQ4MiwxMSAr
NDgyLDYgQEAgYm9vbCBJbnB1dFR5cGU6OnNob3VsZFN1Ym1pdEltcGxpY2l0bHkoRXZlbnQmIGV2
ZW50KQogICAgIHJldHVybiBpczxLZXlib2FyZEV2ZW50PihldmVudCkgJiYgZXZlbnQudHlwZSgp
ID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50ICYmIGRvd25jYXN0PEtleWJvYXJkRXZlbnQ+
KGV2ZW50KS5jaGFyQ29kZSgpID09ICdccic7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTEZvcm1FbGVt
ZW50PiBJbnB1dFR5cGU6OmZvcm1Gb3JTdWJtaXNzaW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
ZWxlbWVudCgpLmZvcm0oKTsKLX0KLQogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IElucHV0VHlw
ZTo6Y3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlKQogewogICAgIHJldHVy
biBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4oUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKGVsZW1l
bnQoKSwgV1RGTW92ZShzdHlsZSkpKTsKQEAgLTU1MSw3ICs1NDYsNyBAQCBDaHJvbWUqIElucHV0
VHlwZTo6Y2hyb21lKCkgY29uc3QKIHsKICAgICBpZiAoUGFnZSogcGFnZSA9IGVsZW1lbnQoKS5k
b2N1bWVudCgpLnBhZ2UoKSkKICAgICAgICAgcmV0dXJuICZwYWdlLT5jaHJvbWUoKTsKLSAgICBy
ZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnB1dFR5cGU6OmNhblNl
dFN0cmluZ1ZhbHVlKCkgY29uc3QKQEAgLTYzNiw3ICs2MzEsNyBAQCBib29sIElucHV0VHlwZTo6
Y2FuQmVTdWNjZXNzZnVsU3VibWl0QnV0dG9uKCkKIAogSFRNTEVsZW1lbnQqIElucHV0VHlwZTo6
cGxhY2Vob2xkZXJFbGVtZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAogYm9vbCBJbnB1dFR5cGU6OnJlbmRlcmVySXNOZWVkZWQoKQpAQCAtNjQ2
LDEwICs2NDEsMTAgQEAgYm9vbCBJbnB1dFR5cGU6OnJlbmRlcmVySXNOZWVkZWQoKQogCiBGaWxl
TGlzdCogSW5wdXRUeXBlOjpmaWxlcygpCiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0
PikKK3ZvaWQgSW5wdXRUeXBlOjpzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+JiYpCiB7CiB9CiAK
QEAgLTczMSwyNSArNzI2LDI5IEBAIFN0cmluZyBJbnB1dFR5cGU6OnNhbml0aXplVmFsdWUoY29u
c3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zdAogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQ
UE9SVCkKKwogYm9vbCBJbnB1dFR5cGU6OnJlY2VpdmVEcm9wcGVkRmlsZXMoY29uc3QgRHJhZ0Rh
dGEmKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0K
KwogI2VuZGlmCiAKIEljb24qIElucHV0VHlwZTo6aWNvbigpIGNvbnN0CiB7CiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
ICNpZiBQTEFURk9STShJT1MpCisKIFN0cmluZyBJbnB1dFR5cGU6OmRpc3BsYXlTdHJpbmcoKSBj
b25zdAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsK
IH0KKwogI2VuZGlmCiAKIGJvb2wgSW5wdXRUeXBlOjpzaG91bGRSZXNldE9uRG9jdW1lbnRBY3Rp
dmF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGM0YmU3M2Q0MDA0ZDY4ZDkxMzBi
OWFiOTQ2YTE3MDBlNzAzM2RlMjQuLjk4Y2ZmODlhYWI4YjU5YWI5NTZlNDM2MDI4NTFjMGE4NGM0
OWJjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMTkyLDcgKzE5Miw2IEBAIHB1Ymxp
YzoKICAgICAvLyBIZWxwZXJzIGZvciBldmVudCBoYW5kbGVycy4KIAogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRTdWJtaXRJbXBsaWNpdGx5KEV2ZW50Jik7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRy
PEhUTUxGb3JtRWxlbWVudD4gZm9ybUZvclN1Ym1pc3Npb24oKSBjb25zdDsKICAgICB2aXJ0dWFs
IGJvb2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0tl
eWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
aXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0OwpAQCAtMjM5LDcgKzIzOCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgbWF4UmVzdWx0c0F0dHJpYnV0ZUNoYW5nZWQoKTsKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUmVzcGVjdEFsaWduQXR0cmlidXRlKCk7CiAgICAgdmlydHVhbCBGaWxlTGlz
dCogZmlsZXMoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlz
dD4pOworICAgIHZpcnR1YWwgdm9pZCBzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+JiYpOwogICAg
IHZpcnR1YWwgSWNvbiogaWNvbigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTZW5k
Q2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCBib29sIGNhblNl
dFZhbHVlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Q
bHVnaW5Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNw
cAppbmRleCBmMzUxZjk3OTUxNWY1Y2VjOWE0OTk0ZTBkNzVkMDFkYzQyMTg5NjA1Li5iYjMwMGIw
ZmZiOWYzYmM3YTRhYzdkMmViYWU0YzkwNWFjNjBkNmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bs
dWdpbkRvY3VtZW50LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MywxNSArNTMsMTMgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBQbHVnaW5Eb2N1bWVudFBhcnNlcihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
ICAgIDogUmF3RGF0YURvY3VtZW50UGFyc2VyKGRvY3VtZW50KQotICAgICAgICAsIG1fZW1iZWRF
bGVtZW50KDApCiAgICAgewogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kQnl0ZXMoRG9jdW1lbnRX
cml0ZXImLCBjb25zdCBjaGFyKiwgc2l6ZV90KSBvdmVycmlkZTsKLQorICAgIHZvaWQgYXBwZW5k
Qnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBjb25zdCBjaGFyKiwgc2l6ZV90KSBmaW5hbDsKICAgICB2
b2lkIGNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCk7CiAKLSAgICBIVE1MRW1iZWRFbGVtZW50KiBt
X2VtYmVkRWxlbWVudDsKKyAgICBIVE1MRW1iZWRFbGVtZW50KiBtX2VtYmVkRWxlbWVudCB7IG51
bGxwdHIgfTsKIH07CiAKIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50
U3RydWN0dXJlKCkKQEAgLTEwNCw3ICsxMDIsNyBAQCB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2Vy
OjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAgICAgaWYgKGF1dG8qIGxvYWRlciA9IGRvY3Vt
ZW50LmxvYWRlcigpKQogICAgICAgICBtX2VtYmVkRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91
dFN5bmNocm9uaXphdGlvbih0eXBlQXR0ciwgbG9hZGVyLT53cml0ZXIoKS5taW1lVHlwZSgpKTsK
IAotICAgIGRvY3VtZW50LnNldFBsdWdpbkVsZW1lbnQobV9lbWJlZEVsZW1lbnQpOworICAgIGRv
Y3VtZW50LnNldFBsdWdpbkVsZW1lbnQoKm1fZW1iZWRFbGVtZW50KTsKIAogICAgIGJvZHktPmFw
cGVuZENoaWxkKGVtYmVkRWxlbWVudCk7CiB9CkBAIC0xMTYsNyArMTE0LDcgQEAgdm9pZCBQbHVn
aW5Eb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBjb25zdCBjaGFy
Kiwgc2l6ZV90KQogCiAgICAgY3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKTsKIAotICAgIEZyYW1l
KiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgYXV0byogZnJhbWUgPSBkb2N1bWVu
dCgpLT5mcmFtZSgpOwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTQy
LDcgKzE0MCw2IEBAIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5dGVzKERvY3Vt
ZW50V3JpdGVyJiwgY29uc3QgY2hhciosIHNpemVfdCkKIAogUGx1Z2luRG9jdW1lbnQ6OlBsdWdp
bkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgOiBIVE1MRG9jdW1l
bnQoZnJhbWUsIHVybCwgUGx1Z2luRG9jdW1lbnRDbGFzcykKLSAgICAsIG1fc2hvdWxkTG9hZFBs
dWdpbk1hbnVhbGx5KHRydWUpCiB7CiAgICAgc2V0Q29tcGF0aWJpbGl0eU1vZGUoRG9jdW1lbnRD
b21wYXRpYmlsaXR5TW9kZTo6UXVpcmtzTW9kZSk7CiAgICAgbG9ja0NvbXBhdGliaWxpdHlNb2Rl
KCk7CkBAIC0xNTUsMTQgKzE1MiwxNyBAQCBSZWY8RG9jdW1lbnRQYXJzZXI+IFBsdWdpbkRvY3Vt
ZW50OjpjcmVhdGVQYXJzZXIoKQogCiBXaWRnZXQqIFBsdWdpbkRvY3VtZW50OjpwbHVnaW5XaWRn
ZXQoKQogewotICAgIGlmIChtX3BsdWdpbkVsZW1lbnQgJiYgbV9wbHVnaW5FbGVtZW50LT5yZW5k
ZXJlcigpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyRW1iZWRkZWRPYmplY3Q+KCpt
X3BsdWdpbkVsZW1lbnQtPnJlbmRlcmVyKCkpLndpZGdldCgpOwotICAgIHJldHVybiBudWxscHRy
OworICAgIGlmICghbV9wbHVnaW5FbGVtZW50KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICBhdXRvKiByZW5kZXJlciA9IG1fcGx1Z2luRWxlbWVudC0+cmVuZGVyZXIoKTsKKyAgICBpZiAo
IXJlbmRlcmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gZG93bmNhc3Q8
UmVuZGVyRW1iZWRkZWRPYmplY3Q+KCptX3BsdWdpbkVsZW1lbnQtPnJlbmRlcmVyKCkpLndpZGdl
dCgpOwogfQogCi12b2lkIFBsdWdpbkRvY3VtZW50OjpzZXRQbHVnaW5FbGVtZW50KFBhc3NSZWZQ
dHI8SFRNTFBsdWdJbkVsZW1lbnQ+IGVsZW1lbnQpCit2b2lkIFBsdWdpbkRvY3VtZW50OjpzZXRQ
bHVnaW5FbGVtZW50KEhUTUxQbHVnSW5FbGVtZW50JiBlbGVtZW50KQogewotICAgIG1fcGx1Z2lu
RWxlbWVudCA9IGVsZW1lbnQ7CisgICAgbV9wbHVnaW5FbGVtZW50ID0gJmVsZW1lbnQ7CiB9CiAK
IHZvaWQgUGx1Z2luRG9jdW1lbnQ6OmRldGFjaEZyb21QbHVnaW5FbGVtZW50KCkKQEAgLTE3OSw5
ICsxNzksMTAgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudDo6Y2FuY2VsTWFudWFsUGx1Z2luTG9hZCgp
CiAgICAgaWYgKCFzaG91bGRMb2FkUGx1Z2luTWFudWFsbHkoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWUoKS0+bG9hZGVyKCku
YWN0aXZlRG9jdW1lbnRMb2FkZXIoKTsKLSAgICBkb2N1bWVudExvYWRlci0+Y2FuY2VsTWFpblJl
c291cmNlTG9hZChmcmFtZSgpLT5sb2FkZXIoKS5jYW5jZWxsZWRFcnJvcihkb2N1bWVudExvYWRl
ci0+cmVxdWVzdCgpKSk7Ci0gICAgc2V0U2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5KGZhbHNlKTsK
KyAgICBhdXRvJiBmcmFtZUxvYWRlciA9IGZyYW1lKCktPmxvYWRlcigpOworICAgIGF1dG8mIGRv
Y3VtZW50TG9hZGVyID0gKmZyYW1lTG9hZGVyLmFjdGl2ZURvY3VtZW50TG9hZGVyKCk7CisgICAg
ZG9jdW1lbnRMb2FkZXIuY2FuY2VsTWFpblJlc291cmNlTG9hZChmcmFtZUxvYWRlci5jYW5jZWxs
ZWRFcnJvcihkb2N1bWVudExvYWRlci5yZXF1ZXN0KCkpKTsKKyAgICBtX3Nob3VsZExvYWRQbHVn
aW5NYW51YWxseSA9IGZhbHNlOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1BsdWdpbkRvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50
LmgKaW5kZXggM2NkMDYxMjU1MGY2ZjhmYmU5NmM4OWI1YjVmYjVlNTYxNDNjNWY3ZS4uYmQ3ZWQ2
Y2ExYTA2ZTVkODlmMzJjMjJjMDNkOTViMzU2NGE4NWIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1
Z2luRG9jdW1lbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDgsIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCwyNiArMzgsMjMgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQbHVnaW5Eb2N1bWVudChmcmFtZSwgdXJsKSk7
CiAgICAgfQogCi0gICAgdm9pZCBzZXRQbHVnaW5FbGVtZW50KFBhc3NSZWZQdHI8SFRNTFBsdWdJ
bkVsZW1lbnQ+KTsKLQogICAgIFdFQkNPUkVfRVhQT1JUIFdpZGdldCogcGx1Z2luV2lkZ2V0KCk7
CiAgICAgSFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdpbkVsZW1lbnQoKSB7IHJldHVybiBtX3BsdWdp
bkVsZW1lbnQuZ2V0KCk7IH0KIAorICAgIHZvaWQgc2V0UGx1Z2luRWxlbWVudChIVE1MUGx1Z0lu
RWxlbWVudCYpOwogICAgIHZvaWQgZGV0YWNoRnJvbVBsdWdpbkVsZW1lbnQoKTsKIAogICAgIHZv
aWQgY2FuY2VsTWFudWFsUGx1Z2luTG9hZCgpOwogCi0gICAgYm9vbCBzaG91bGRMb2FkUGx1Z2lu
TWFudWFsbHkoKSB7IHJldHVybiBtX3Nob3VsZExvYWRQbHVnaW5NYW51YWxseTsgfQorICAgIGJv
b2wgc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRMb2Fk
UGx1Z2luTWFudWFsbHk7IH0KIAogcHJpdmF0ZToKICAgICBQbHVnaW5Eb2N1bWVudChGcmFtZSos
IGNvbnN0IFVSTCYpOwogCi0gICAgUmVmPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBv
dmVycmlkZTsKLQotICAgIHZvaWQgc2V0U2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5KGJvb2wgbG9h
ZE1hbnVhbGx5KSB7IG1fc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5ID0gbG9hZE1hbnVhbGx5OyB9
CisgICAgUmVmPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBmaW5hbDsKIAotICAgIGJv
b2wgbV9zaG91bGRMb2FkUGx1Z2luTWFudWFsbHk7CiAgICAgUmVmUHRyPEhUTUxQbHVnSW5FbGVt
ZW50PiBtX3BsdWdpbkVsZW1lbnQ7CisgICAgYm9vbCBtX3Nob3VsZExvYWRQbHVnaW5NYW51YWxs
eSB7IHRydWUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmlu
ZGV4IDk0ZThiNGRjZWM0NGZkOGZlNmFhOTIxNGQ1NWQ5NTliNTg3MTlkZTUuLjM4Yzk3ZmFjYjEx
YTdhNTVjZjMzMzRjYTU2ZTlmY2Y5MjJiMGNkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDksIDIwMTAsIDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQogICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxw
QGF0b2tlci5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggRXJpYyBTZWlkZWwgPGVyaWNAd2Vi
a2l0Lm9yZz4KQEAgLTE3Miw3ICsxNzIsNyBAQCBib29sIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6aXNBY2NlbGVyYXRlZCgpIGNvbnN0CiAjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lO
R19TVE9SRSkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICBpZiAoIWNhbnZh
cygpLmhhc0NyZWF0ZWRJbWFnZUJ1ZmZlcigpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBj
b250ZXh0ID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICByZXR1cm4gY29udGV4dCAmJiBjb250ZXh0
LT5pc0FjY2VsZXJhdGVkQ29udGV4dCgpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CkBAIC00
MTcsNyArNDE3LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldFN0cm9rZVN0
eWxlKENhbnZhc1N0eWxlIHN0eWxlKQogICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdD
b250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47Ci0gICAgc3RhdGUuc3Ryb2tl
U3R5bGUuYXBwbHlTdHJva2VDb2xvcihjKTsKKyAgICBzdGF0ZS5zdHJva2VTdHlsZS5hcHBseVN0
cm9rZUNvbG9yKCpjKTsKICAgICBzdGF0ZS51bnBhcnNlZFN0cm9rZUNvbG9yID0gU3RyaW5nKCk7
CiB9CiAKQEAgLTQ0NCw3ICs0NDQsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
c2V0RmlsbFN0eWxlKENhbnZhc1N0eWxlIHN0eWxlKQogICAgIEdyYXBoaWNzQ29udGV4dCogYyA9
IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47Ci0gICAgc3Rh
dGUuZmlsbFN0eWxlLmFwcGx5RmlsbENvbG9yKGMpOworICAgIHN0YXRlLmZpbGxTdHlsZS5hcHBs
eUZpbGxDb2xvcigqYyk7CiAgICAgc3RhdGUudW5wYXJzZWRGaWxsQ29sb3IgPSBTdHJpbmcoKTsK
IH0KIApAQCAtOTMwLDEzICs5MzAsMTMgQEAgc3RhdGljIGJvb2wgdmFsaWRhdGVSZWN0Rm9yQ2Fu
dmFzKGZsb2F0JiB4LCBmbG9hdCYgeSwgZmxvYXQmIHdpZHRoLCBmbG9hdCYgaGVpZ2gKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKLXZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbGVhclBhdGhGb3JEYXNoYm9hcmRCYWNrd2FyZENvbXBh
dGliaWxpdHlNb2RlKCkKK2lubGluZSB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y2xl
YXJQYXRoRm9yRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSgpCiB7CisjaWYgRU5B
QkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIGlmIChtX3VzZXNEYXNoYm9hcmRDb21wYXRpYmls
aXR5TW9kZSkKICAgICAgICAgbV9wYXRoLmNsZWFyKCk7Ci19CiAjZW5kaWYKK30KIAogc3RhdGlj
IGJvb2wgaXNGdWxsQ2FudmFzQ29tcG9zaXRlTW9kZShDb21wb3NpdGVPcGVyYXRvciBvcCkKIHsK
QEAgLTk1NCwyOCArOTU0LDE5IEBAIHN0YXRpYyBXaW5kUnVsZSB0b1dpbmRSdWxlKENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6V2luZGluZ1J1bGUgcnVsZSkKIHZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpmaWxsKFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxlKQogewogICAgIGZpbGxJbnRl
cm5hbChtX3BhdGgsIHdpbmRpbmdSdWxlKTsKLQotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9S
VCkKICAgICBjbGVhclBhdGhGb3JEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKCk7
Ci0jZW5kaWYKIH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnN0cm9rZSgpCiB7
CiAgICAgc3Ryb2tlSW50ZXJuYWwobV9wYXRoKTsKLQotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQ
UE9SVCkKICAgICBjbGVhclBhdGhGb3JEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2Rl
KCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNsaXAoV2lu
ZGluZ1J1bGUgd2luZGluZ1J1bGUpCiB7CiAgICAgY2xpcEludGVybmFsKG1fcGF0aCwgd2luZGlu
Z1J1bGUpOwotCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIGNsZWFyUGF0aEZv
ckRhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoKTsKLSNlbmRpZgogfQogCiB2b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZmlsbChET01QYXRoJiBwYXRoLCBXaW5kaW5nUnVs
ZSB3aW5kaW5nUnVsZSkKQEAgLTk5NSwxOSArOTg2LDE5IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpjbGlwKERPTVBhdGgmIHBhdGgsIFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxlKQog
CiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZmlsbEludGVybmFsKGNvbnN0IFBhdGgm
IHBhdGgsIFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxlKQogewotICAgIEdyYXBoaWNzQ29udGV4dCog
YyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAg
ICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGli
bGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIElmIGdyYWRpZW50IHNpemUg
aXMgemVybywgdGhlbiBwYWludCBub3RoaW5nLgotICAgIEdyYWRpZW50KiBncmFkaWVudCA9IGMt
PmZpbGxHcmFkaWVudCgpOworICAgIGF1dG8qIGdyYWRpZW50ID0gYy0+ZmlsbEdyYWRpZW50KCk7
CiAgICAgaWYgKGdyYWRpZW50ICYmIGdyYWRpZW50LT5pc1plcm9TaXplKCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlmICghcGF0aC5pc0VtcHR5KCkpIHsKLSAgICAgICAgV2luZFJ1bGUgd2lu
ZFJ1bGUgPSBjLT5maWxsUnVsZSgpOworICAgICAgICBhdXRvIHNhdmVkRmlsbFJ1bGUgPSBjLT5m
aWxsUnVsZSgpOwogICAgICAgICBjLT5zZXRGaWxsUnVsZSh0b1dpbmRSdWxlKHdpbmRpbmdSdWxl
KSk7CiAKICAgICAgICAgaWYgKGlzRnVsbENhbnZhc0NvbXBvc2l0ZU1vZGUoc3RhdGUoKS5nbG9i
YWxDb21wb3NpdGUpKSB7CkBAIC0xMDI0LDIwICsxMDE1LDIwIEBAIHZvaWQgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpmaWxsSW50ZXJuYWwoY29uc3QgUGF0aCYgcGF0aCwgV2luZGluZ1J1bGUg
d2luZGluCiAgICAgICAgICAgICBkaWREcmF3KHBhdGguZmFzdEJvdW5kaW5nUmVjdCgpKTsKICAg
ICAgICAgfQogICAgICAgICAKLSAgICAgICAgYy0+c2V0RmlsbFJ1bGUod2luZFJ1bGUpOworICAg
ICAgICBjLT5zZXRGaWxsUnVsZShzYXZlZEZpbGxSdWxlKTsKICAgICB9CiB9CiAKIHZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzdHJva2VJbnRlcm5hbChjb25zdCBQYXRoJiBwYXRoKQog
ewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byog
YyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAg
aWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKIAog
ICAgIC8vIElmIGdyYWRpZW50IHNpemUgaXMgemVybywgdGhlbiBwYWludCBub3RoaW5nLgotICAg
IEdyYWRpZW50KiBncmFkaWVudCA9IGMtPnN0cm9rZUdyYWRpZW50KCk7CisgICAgYXV0byogZ3Jh
ZGllbnQgPSBjLT5zdHJva2VHcmFkaWVudCgpOwogICAgIGlmIChncmFkaWVudCAmJiBncmFkaWVu
dC0+aXNaZXJvU2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTEwNjIsNyArMTA1Myw3IEBA
IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzdHJva2VJbnRlcm5hbChjb25zdCBQYXRo
JiBwYXRoKQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y2xpcEludGVybmFsKGNv
bnN0IFBhdGgmIHBhdGgsIFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxlKQogewotICAgIEdyYXBoaWNz
Q29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250
ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhh
c0ludmVydGlibGVUcmFuc2Zvcm0pCkBAIC0xMTA4LDEzICsxMDk5LDEzIEBAIGJvb2wgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjppc1BvaW50SW5TdHJva2UoRE9NUGF0aCYgcGF0aCwgZmxvYXQg
eCwgZmxvYXQgeSkKIAogYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmlzUG9pbnRJblBh
dGhJbnRlcm5hbChjb25zdCBQYXRoJiBwYXRoLCBmbG9hdCB4LCBmbG9hdCB5LCBXaW5kaW5nUnVs
ZSB3aW5kaW5nUnVsZSkKIHsKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4
dCgpOworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghc3RhdGUoKS5oYXNJbnZlcnRpYmxlVHJhbnNmb3Jt
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBGbG9hdFBvaW50IHRyYW5zZm9ybWVkUG9p
bnQgPSBzdGF0ZSgpLnRyYW5zZm9ybS5pbnZlcnNlKCkudmFsdWVfb3IoQWZmaW5lVHJhbnNmb3Jt
KCkpLm1hcFBvaW50KEZsb2F0UG9pbnQoeCwgeSkpOworICAgIGF1dG8gdHJhbnNmb3JtZWRQb2lu
dCA9IHN0YXRlKCkudHJhbnNmb3JtLmludmVyc2UoKS52YWx1ZV9vcihBZmZpbmVUcmFuc2Zvcm0o
KSkubWFwUG9pbnQoRmxvYXRQb2ludCh4LCB5KSk7CiAKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUo
dHJhbnNmb3JtZWRQb2ludC54KCkpIHx8ICFzdGQ6OmlzZmluaXRlKHRyYW5zZm9ybWVkUG9pbnQu
eSgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTEyNCwxMyArMTExNSwxMyBAQCBib29s
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6aXNQb2ludEluUGF0aEludGVybmFsKGNvbnN0IFBh
dGgmIHBhdGgsIGZsb2F0IHgsCiAKIGJvb2wgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjppc1Bv
aW50SW5TdHJva2VJbnRlcm5hbChjb25zdCBQYXRoJiBwYXRoLCBmbG9hdCB4LCBmbG9hdCB5KQog
ewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byog
YyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIEZsb2F0UG9pbnQgdHJhbnNmb3JtZWRQb2ludCA9IHN0YXRlKCkudHJh
bnNmb3JtLmludmVyc2UoKS52YWx1ZV9vcihBZmZpbmVUcmFuc2Zvcm0oKSkubWFwUG9pbnQoRmxv
YXRQb2ludCh4LCB5KSk7CisgICAgYXV0byB0cmFuc2Zvcm1lZFBvaW50ID0gc3RhdGUoKS50cmFu
c2Zvcm0uaW52ZXJzZSgpLnZhbHVlX29yKEFmZmluZVRyYW5zZm9ybSgpKS5tYXBQb2ludChGbG9h
dFBvaW50KHgsIHkpKTsKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUodHJhbnNmb3JtZWRQb2ludC54
KCkpIHx8ICFzdGQ6OmlzZmluaXRlKHRyYW5zZm9ybWVkUG9pbnQueSgpKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCkBAIC0xMTQyLDcgKzExMzMsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6Y2xlYXJSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBo
ZQogewogICAgIGlmICghdmFsaWRhdGVSZWN0Rm9yQ2FudmFzKHgsIHksIHdpZHRoLCBoZWlnaHQp
KQogICAgICAgICByZXR1cm47Ci0gICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gZHJhd2lu
Z0NvbnRleHQoKTsKKyAgICBhdXRvKiBjb250ZXh0ID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBp
ZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIXN0YXRlKCkuaGFzSW52ZXJ0
aWJsZVRyYW5zZm9ybSkKQEAgLTExODAsNyArMTE3MSw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpmaWxsUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQg
aGVpCiAgICAgaWYgKCF2YWxpZGF0ZVJlY3RGb3JDYW52YXMoeCwgeSwgd2lkdGgsIGhlaWdodCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250
ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAg
ICAgICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCkBA
IC0xMTg5LDcgKzExODAsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZmlsbFJl
Y3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaQogICAgIC8vIGZyb20g
dGhlIEhUTUw1IENhbnZhcyBzcGVjOgogICAgIC8vIElmIHgwID0geDEgYW5kIHkwID0geTEsIHRo
ZW4gdGhlIGxpbmVhciBncmFkaWVudCBtdXN0IHBhaW50IG5vdGhpbmcKICAgICAvLyBJZiB4MCA9
IHgxIGFuZCB5MCA9IHkxIGFuZCByMCA9IHIxLCB0aGVuIHRoZSByYWRpYWwgZ3JhZGllbnQgbXVz
dCBwYWludCBub3RoaW5nCi0gICAgR3JhZGllbnQqIGdyYWRpZW50ID0gYy0+ZmlsbEdyYWRpZW50
KCk7CisgICAgYXV0byogZ3JhZGllbnQgPSBjLT5maWxsR3JhZGllbnQoKTsKICAgICBpZiAoZ3Jh
ZGllbnQgJiYgZ3JhZGllbnQtPmlzWmVyb1NpemUoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0x
MjE4LDcgKzEyMDksNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlUmVj
dChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaAogICAgIGlmICghdmFsaWRh
dGVSZWN0Rm9yQ2FudmFzKHgsIHksIHdpZHRoLCBoZWlnaHQpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOworICAgIGF1dG8qIGMg
PSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJuOwogICAgIGlm
ICghc3RhdGUoKS5oYXNJbnZlcnRpYmxlVHJhbnNmb3JtKQpAQCAtMTIyNyw3ICsxMjE4LDcgQEAg
dm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnN0cm9rZVJlY3QoZmxvYXQgeCwgZmxvYXQg
eSwgZmxvYXQgd2lkdGgsIGZsb2F0IGgKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gSWYgZ3Jh
ZGllbnQgc2l6ZSBpcyB6ZXJvLCB0aGVuIHBhaW50IG5vdGhpbmcuCi0gICAgR3JhZGllbnQqIGdy
YWRpZW50ID0gYy0+c3Ryb2tlR3JhZGllbnQoKTsKKyAgICBhdXRvKiBncmFkaWVudCA9IGMtPnN0
cm9rZUdyYWRpZW50KCk7CiAgICAgaWYgKGdyYWRpZW50ICYmIGdyYWRpZW50LT5pc1plcm9TaXpl
KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTI1MSwxMSArMTI0MiwxMiBAQCB2b2lkIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3
aWR0aCwgZmxvYXQgaAogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0U2hhZG93
KGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IGJsdXIsIGNvbnN0IFN0cmluZyYgY29s
b3JTdHJpbmcsIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGFscGhhKQogewotICAgIENvbG9yIGNvbG9y
ID0gcGFyc2VDb2xvck9yQ3VycmVudENvbG9yKGNvbG9yU3RyaW5nLCAmY2FudmFzKCkpOwotICAg
IGlmICghY29sb3JTdHJpbmcuaXNOdWxsKCkgJiYgIWNvbG9yLmlzVmFsaWQoKSkKLSAgICAgICAg
cmV0dXJuOwotICAgIGlmICghY29sb3IuaXNWYWxpZCgpKQotICAgICAgICBjb2xvciA9IENvbG9y
Ojp0cmFuc3BhcmVudDsKKyAgICBDb2xvciBjb2xvciA9IENvbG9yOjp0cmFuc3BhcmVudDsKKyAg
ICBpZiAoIWNvbG9yU3RyaW5nLmlzTnVsbCgpKSB7CisgICAgICAgIGNvbG9yID0gcGFyc2VDb2xv
ck9yQ3VycmVudENvbG9yKGNvbG9yU3RyaW5nLCAmY2FudmFzKCkpOworICAgICAgICBpZiAoIWNv
bG9yLmlzVmFsaWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgLy8gRklYTUU6
IFNob3VsZCBub3QgdXNlIFJHQkEzMiBoZXJlLgogICAgIHNldFNoYWRvdyhGbG9hdFNpemUod2lk
dGgsIGhlaWdodCksIGJsdXIsIGNvbG9yV2l0aE92ZXJyaWRlQWxwaGEoY29sb3IucmdiKCksIGFs
cGhhKSk7CiB9CkBAIC0xMjk2LDcgKzEyODgsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6c2V0U2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYgb2Zmc2V0LCBmbG9hdCBibHVyLCBjbwog
CiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YXBwbHlTaGFkb3coKQogewotICAgIEdy
YXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdp
bmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAKQEAgLTEzMTMsMzUg
KzEzMDUsMzMgQEAgYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNob3VsZERyYXdTaGFk
b3dzKCkgY29uc3QKICAgICByZXR1cm4gc3RhdGUoKS5zaGFkb3dDb2xvci5pc1Zpc2libGUoKSAm
JiAoc3RhdGUoKS5zaGFkb3dCbHVyIHx8ICFzdGF0ZSgpLnNoYWRvd09mZnNldC5pc1plcm8oKSk7
CiB9CiAKLWVudW0gSW1hZ2VTaXplVHlwZSB7Ci0gICAgSW1hZ2VTaXplQWZ0ZXJEZXZpY2VQaXhl
bFJhdGlvLAotICAgIEltYWdlU2l6ZUJlZm9yZURldmljZVBpeGVsUmF0aW8KLX07Ci0KLXN0YXRp
YyBMYXlvdXRTaXplIHNpemUoSFRNTEltYWdlRWxlbWVudCYgaW1hZ2VFbGVtZW50LCBJbWFnZVNp
emVUeXBlIHNpemVUeXBlID0gSW1hZ2VTaXplQmVmb3JlRGV2aWNlUGl4ZWxSYXRpbykKK2VudW0g
Y2xhc3MgSW1hZ2VTaXplVHlwZSB7IEFmdGVyRGV2aWNlUGl4ZWxSYXRpbywgQmVmb3JlRGV2aWNl
UGl4ZWxSYXRpbyB9Oworc3RhdGljIExheW91dFNpemUgc2l6ZShIVE1MSW1hZ2VFbGVtZW50JiBl
bGVtZW50LCBJbWFnZVNpemVUeXBlIHNpemVUeXBlID0gSW1hZ2VTaXplVHlwZTo6QmVmb3JlRGV2
aWNlUGl4ZWxSYXRpbykKIHsKICAgICBMYXlvdXRTaXplIHNpemU7Ci0gICAgaWYgKENhY2hlZElt
YWdlKiBjYWNoZWRJbWFnZSA9IGltYWdlRWxlbWVudC5jYWNoZWRJbWFnZSgpKSB7Ci0gICAgICAg
IHNpemUgPSBjYWNoZWRJbWFnZS0+aW1hZ2VTaXplRm9yUmVuZGVyZXIoaW1hZ2VFbGVtZW50LnJl
bmRlcmVyKCksIDEuMGYpOyAvLyBGSVhNRTogTm90IHN1cmUgYWJvdXQgdGhpcy4KLQotICAgICAg
ICBpZiAoc2l6ZVR5cGUgPT0gSW1hZ2VTaXplQWZ0ZXJEZXZpY2VQaXhlbFJhdGlvICYmIGlzPFJl
bmRlckltYWdlPihpbWFnZUVsZW1lbnQucmVuZGVyZXIoKSkgJiYgY2FjaGVkSW1hZ2UtPmltYWdl
KCkgJiYgIWNhY2hlZEltYWdlLT5pbWFnZSgpLT5oYXNSZWxhdGl2ZVdpZHRoKCkpCi0gICAgICAg
ICAgICBzaXplLnNjYWxlKGRvd25jYXN0PFJlbmRlckltYWdlPigqaW1hZ2VFbGVtZW50LnJlbmRl
cmVyKCkpLmltYWdlRGV2aWNlUGl4ZWxSYXRpbygpKTsKKyAgICBpZiAoYXV0byogY2FjaGVkSW1h
Z2UgPSBlbGVtZW50LmNhY2hlZEltYWdlKCkpIHsKKyAgICAgICAgc2l6ZSA9IGNhY2hlZEltYWdl
LT5pbWFnZVNpemVGb3JSZW5kZXJlcihlbGVtZW50LnJlbmRlcmVyKCksIDEuMGYpOyAvLyBGSVhN
RTogTm90IHN1cmUgYWJvdXQgdGhpcy4KKyAgICAgICAgaWYgKHNpemVUeXBlID09IEltYWdlU2l6
ZVR5cGU6OkFmdGVyRGV2aWNlUGl4ZWxSYXRpbyAmJiBpczxSZW5kZXJJbWFnZT4oZWxlbWVudC5y
ZW5kZXJlcigpKSAmJiBjYWNoZWRJbWFnZS0+aW1hZ2UoKSAmJiAhY2FjaGVkSW1hZ2UtPmltYWdl
KCktPmhhc1JlbGF0aXZlV2lkdGgoKSkKKyAgICAgICAgICAgIHNpemUuc2NhbGUoZG93bmNhc3Q8
UmVuZGVySW1hZ2U+KCplbGVtZW50LnJlbmRlcmVyKCkpLmltYWdlRGV2aWNlUGl4ZWxSYXRpbygp
KTsKICAgICB9CiAgICAgcmV0dXJuIHNpemU7CiB9CiAKLXN0YXRpYyBGbG9hdFNpemUgc2l6ZShI
VE1MQ2FudmFzRWxlbWVudCYgY2FudmFzRWxlbWVudCkKK3N0YXRpYyBpbmxpbmUgRmxvYXRTaXpl
IHNpemUoSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZhc0VsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIEZs
b2F0U2l6ZShjYW52YXNFbGVtZW50LnNpemUoKSk7CisgICAgcmV0dXJuIGNhbnZhc0VsZW1lbnQu
c2l6ZSgpOwogfQogCiAjaWYgRU5BQkxFKFZJREVPKQotc3RhdGljIEZsb2F0U2l6ZSBzaXplKEhU
TUxWaWRlb0VsZW1lbnQmIHZpZGVvKQorCitzdGF0aWMgaW5saW5lIEZsb2F0U2l6ZSBzaXplKEhU
TUxWaWRlb0VsZW1lbnQmIHZpZGVvKQogewotICAgIGlmIChNZWRpYVBsYXllciogcGxheWVyID0g
dmlkZW8ucGxheWVyKCkpCi0gICAgICAgIHJldHVybiBwbGF5ZXItPm5hdHVyYWxTaXplKCk7Ci0g
ICAgcmV0dXJuIEZsb2F0U2l6ZSgpOworICAgIGF1dG8qIHBsYXllciA9IHZpZGVvLnBsYXllcigp
OworICAgIGlmICghcGxheWVyKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBwbGF5
ZXItPm5hdHVyYWxTaXplKCk7CiB9CisKICNlbmRpZgogCiBzdGF0aWMgaW5saW5lIEZsb2F0UmVj
dCBub3JtYWxpemVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKQEAgLTEzNTYsOCArMTM0Niw4
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdl
KENhbnZhc0ltYWdlU291cmNlJiYgaW1hZ2UsCiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24o
aW1hZ2UsCiAgICAgICAgIFsmXSAoUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+JiBpbWFnZUVsZW1l
bnQpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKLSAgICAgICAgICAgIExheW91dFNpemUgZGVzdFJl
Y3RTaXplID0gc2l6ZSgqaW1hZ2VFbGVtZW50LCBJbWFnZVNpemVBZnRlckRldmljZVBpeGVsUmF0
aW8pOwotICAgICAgICAgICAgTGF5b3V0U2l6ZSBzb3VyY2VSZWN0U2l6ZSA9IHNpemUoKmltYWdl
RWxlbWVudCwgSW1hZ2VTaXplQmVmb3JlRGV2aWNlUGl4ZWxSYXRpbyk7CisgICAgICAgICAgICBM
YXlvdXRTaXplIGRlc3RSZWN0U2l6ZSA9IHNpemUoKmltYWdlRWxlbWVudCwgSW1hZ2VTaXplVHlw
ZTo6QWZ0ZXJEZXZpY2VQaXhlbFJhdGlvKTsKKyAgICAgICAgICAgIExheW91dFNpemUgc291cmNl
UmVjdFNpemUgPSBzaXplKCppbWFnZUVsZW1lbnQsIEltYWdlU2l6ZVR5cGU6OkJlZm9yZURldmlj
ZVBpeGVsUmF0aW8pOwogICAgICAgICAgICAgcmV0dXJuIHRoaXMtPmRyYXdJbWFnZSgqaW1hZ2VF
bGVtZW50LCBGbG9hdFJlY3QgeyAwLCAwLCBzb3VyY2VSZWN0U2l6ZS53aWR0aCgpLCBzb3VyY2VS
ZWN0U2l6ZS5oZWlnaHQoKSB9LCBGbG9hdFJlY3QgeyBkeCwgZHksIGRlc3RSZWN0U2l6ZS53aWR0
aCgpLCBkZXN0UmVjdFNpemUuaGVpZ2h0KCkgfSk7CiAgICAgICAgIH0sCiAgICAgICAgIFsmXSAo
YXV0byYgZWxlbWVudCkgLT4gRXhjZXB0aW9uT3I8dm9pZD4gewpAQCAtMTQwNiw3ICsxMzk2LDcg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1hZ2Uo
SFRNTEltYWdlRWxlbWVudCYgaW1hZ2VFbGUKICAgICBGbG9hdFJlY3Qgbm9ybWFsaXplZFNyY1Jl
Y3QgPSBub3JtYWxpemVSZWN0KHNyY1JlY3QpOwogICAgIEZsb2F0UmVjdCBub3JtYWxpemVkRHN0
UmVjdCA9IG5vcm1hbGl6ZVJlY3QoZHN0UmVjdCk7CiAKLSAgICBGbG9hdFJlY3QgaW1hZ2VSZWN0
ID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZShpbWFnZUVsZW1lbnQsIEltYWdlU2l6ZUJl
Zm9yZURldmljZVBpeGVsUmF0aW8pKTsKKyAgICBGbG9hdFJlY3QgaW1hZ2VSZWN0ID0gRmxvYXRS
ZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZShpbWFnZUVsZW1lbnQsIEltYWdlU2l6ZVR5cGU6OkJlZm9y
ZURldmljZVBpeGVsUmF0aW8pKTsKICAgICBpZiAoIXNyY1JlY3Qud2lkdGgoKSB8fCAhc3JjUmVj
dC5oZWlnaHQoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOREVYX1NJWkVfRVJSIH07
CiAKQEAgLTE1NzQsNyArMTU2NCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6ZHJhd0ltYWdlKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvLCBjCiB2b2lkIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdlRnJvbVJlY3QoSFRNTEltYWdlRWxlbWVu
dCYgaW1hZ2VFbGVtZW50LCBmbG9hdCBzeCwgZmxvYXQgc3ksIGZsb2F0IHN3LCBmbG9hdCBzaCwg
ZmxvYXQgZHgsIGZsb2F0IGR5LCBmbG9hdCBkdywgZmxvYXQgZGgsIGNvbnN0IFN0cmluZyYgY29t
cG9zaXRlT3BlcmF0aW9uKQogewogICAgIENvbXBvc2l0ZU9wZXJhdG9yIG9wOwotICAgIEJsZW5k
TW9kZSBibGVuZE9wID0gQmxlbmRNb2RlTm9ybWFsOworICAgIGF1dG8gYmxlbmRPcCA9IEJsZW5k
TW9kZU5vcm1hbDsKICAgICBpZiAoIXBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVyYXRvcihjb21w
b3NpdGVPcGVyYXRpb24sIG9wLCBibGVuZE9wKSB8fCBibGVuZE9wICE9IEJsZW5kTW9kZU5vcm1h
bCkKICAgICAgICAgb3AgPSBDb21wb3NpdGVTb3VyY2VPdmVyOwogICAgIGRyYXdJbWFnZShpbWFn
ZUVsZW1lbnQsIEZsb2F0UmVjdCB7IHN4LCBzeSwgc3csIHNoIH0sIEZsb2F0UmVjdCB7IGR4LCBk
eSwgZHcsIGRoIH0sIG9wLCBCbGVuZE1vZGVOb3JtYWwpOwpAQCAtMTU5MiwxNCArMTU4MiwxMyBA
QCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0Q29tcG9zaXRlT3BlcmF0aW9uKGNv
bnN0IFN0cmluZyYgb3BlcmF0aW9uKQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
Y2xlYXJDYW52YXMoKQogewotICAgIEZsb2F0UmVjdCBjYW52YXNSZWN0KDAsIDAsIGNhbnZhcygp
LndpZHRoKCksIGNhbnZhcygpLmhlaWdodCgpKTsKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBk
cmF3aW5nQ29udGV4dCgpOworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlm
ICghYykKICAgICAgICAgcmV0dXJuOwogCiAgICAgYy0+c2F2ZSgpOwogICAgIGMtPnNldENUTShj
YW52YXMoKS5iYXNlVHJhbnNmb3JtKCkpOwotICAgIGMtPmNsZWFyUmVjdChjYW52YXNSZWN0KTsK
KyAgICBjLT5jbGVhclJlY3QoRmxvYXRSZWN0KDAsIDAsIGNhbnZhcygpLndpZHRoKCksIGNhbnZh
cygpLmhlaWdodCgpKSk7CiAgICAgYy0+cmVzdG9yZSgpOwogfQogCkBAIC0xNjQ4LDcgKzE2Mzcs
NyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y29tcG9zaXRlQnVmZmVyKEltYWdl
QnVmZmVyJiBidWZmZXIsIGNvbnN0IEludFJlYwogICAgIEludFJlY3QgY2FudmFzUmVjdCgwLCAw
LCBjYW52YXMoKS53aWR0aCgpLCBjYW52YXMoKS5oZWlnaHQoKSk7CiAgICAgY2FudmFzUmVjdCA9
IGNhbnZhcygpLmJhc2VUcmFuc2Zvcm0oKS5tYXBSZWN0KGNhbnZhc1JlY3QpOwogCi0gICAgR3Jh
cGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBjID0gZHJhd2lu
Z0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTY3OSwxNyAr
MTY2OCwxNyBAQCB0ZW1wbGF0ZTxjbGFzcyBUPiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6ZnVsbENhbnZhc0NvbXBvc2l0ZWREcmF3SW1hZ2UoVAogICAgIEFTU0VSVChpc0Z1bGxDYW52
YXNDb21wb3NpdGVNb2RlKG9wKSk7CiAKICAgICBJbnRTaXplIGNyb3BwZWRPZmZzZXQ7Ci0gICAg
SW50UmVjdCBidWZmZXJSZWN0ID0gY2FsY3VsYXRlQ29tcG9zaXRpbmdCdWZmZXJSZWN0KGRlc3Qs
ICZjcm9wcGVkT2Zmc2V0KTsKKyAgICBhdXRvIGJ1ZmZlclJlY3QgPSBjYWxjdWxhdGVDb21wb3Np
dGluZ0J1ZmZlclJlY3QoZGVzdCwgJmNyb3BwZWRPZmZzZXQpOwogICAgIGlmIChidWZmZXJSZWN0
LmlzRW1wdHkoKSkgewogICAgICAgICBjbGVhckNhbnZhcygpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXIgPSBjcmVhdGVD
b21wb3NpdGluZ0J1ZmZlcihidWZmZXJSZWN0KTsKKyAgICBhdXRvIGJ1ZmZlciA9IGNyZWF0ZUNv
bXBvc2l0aW5nQnVmZmVyKGJ1ZmZlclJlY3QpOwogICAgIGlmICghYnVmZmVyKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOworICAg
IGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJu
OwogCkBAIC0xNzIwLDcgKzE3MDksNyBAQCBFeGNlcHRpb25PcjxSZWY8Q2FudmFzR3JhZGllbnQ+
PiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZUxpbmVhckdyYWRpZW50KAogICAgIGlm
ICghc3RkOjppc2Zpbml0ZSh4MCkgfHwgIXN0ZDo6aXNmaW5pdGUoeTApIHx8ICFzdGQ6OmlzZmlu
aXRlKHgxKSB8fCAhc3RkOjppc2Zpbml0ZSh5MSkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOT1RfU1VQUE9SVEVEX0VSUiB9OwogCi0gICAgUmVmPENhbnZhc0dyYWRpZW50PiBncmFkaWVu
dCA9IENhbnZhc0dyYWRpZW50OjpjcmVhdGUoRmxvYXRQb2ludCh4MCwgeTApLCBGbG9hdFBvaW50
KHgxLCB5MSkpOworICAgIGF1dG8gZ3JhZGllbnQgPSBDYW52YXNHcmFkaWVudDo6Y3JlYXRlKEZs
b2F0UG9pbnQoeDAsIHkwKSwgRmxvYXRQb2ludCh4MSwgeTEpKTsKICAgICBwcmVwYXJlR3JhZGll
bnRGb3JEYXNoYm9hcmQoZ3JhZGllbnQuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKGdyYWRp
ZW50KTsKIH0KQEAgLTE3MzMsNyArMTcyMiw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxDYW52YXNHcmFk
aWVudD4+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y3JlYXRlUmFkaWFsR3JhZGllbnQoCiAg
ICAgaWYgKHIwIDwgMCB8fCByMSA8IDApCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTkRF
WF9TSVpFX0VSUiB9OwogCi0gICAgUmVmPENhbnZhc0dyYWRpZW50PiBncmFkaWVudCA9IENhbnZh
c0dyYWRpZW50OjpjcmVhdGUoRmxvYXRQb2ludCh4MCwgeTApLCByMCwgRmxvYXRQb2ludCh4MSwg
eTEpLCByMSk7CisgICAgYXV0byBncmFkaWVudCA9IENhbnZhc0dyYWRpZW50OjpjcmVhdGUoRmxv
YXRQb2ludCh4MCwgeTApLCByMCwgRmxvYXRQb2ludCh4MSwgeTEpLCByMSk7CiAgICAgcHJlcGFy
ZUdyYWRpZW50Rm9yRGFzaGJvYXJkKGdyYWRpZW50LmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92
ZShncmFkaWVudCk7CiB9CkBAIC0xNzQ1LDcgKzE3MzQsNyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8
Q2FudmFzUGF0dGVybj4+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y3JlYXRlUGF0dGVybihD
YW52YQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU1lOVEFYX0VSUiB9OwogCiAgICAgcmV0
dXJuIFdURjo6c3dpdGNoT24oaW1hZ2UsCi0gICAgICAgIFsmXShhdXRvJiBlbGVtZW50KSAtPiBF
eGNlcHRpb25PcjxSZWZQdHI8Q2FudmFzUGF0dGVybj4+IHsgcmV0dXJuIHRoaXMtPmNyZWF0ZVBh
dHRlcm4oKmVsZW1lbnQsIHJlcGVhdFgsIHJlcGVhdFkpOyB9CisgICAgICAgIFt0aGlzLCByZXBl
YXRYLCByZXBlYXRZXSAoYXV0byYgZWxlbWVudCkgLT4gRXhjZXB0aW9uT3I8UmVmUHRyPENhbnZh
c1BhdHRlcm4+PiB7IHJldHVybiBjcmVhdGVQYXR0ZXJuKCplbGVtZW50LCByZXBlYXRYLCByZXBl
YXRZKTsgfQogICAgICk7CiB9CiAKQEAgLTE4MTIsNyArMTgwMSw3IEBAIHZvaWQgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpkaWREcmF3RW50aXJlQ2FudmFzKCkKIAogdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OmRpZERyYXcoY29uc3QgRmxvYXRSZWN0JiByLCB1bnNpZ25lZCBvcHRp
b25zKQogewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAg
YXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47
CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCkBAIC0xODY2LDE5ICsx
ODU1LDE3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRUcmFja3NEaXNwbGF5
TGlzdFJlcGxheShib29sIHRyYWNrc0Rpc3BsYXlMaXN0CiAKIFN0cmluZyBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OmRpc3BsYXlMaXN0QXNUZXh0KERpc3BsYXlMaXN0OjpBc1RleHRGbGFncyBm
bGFncykgY29uc3QKIHsKLSAgICBpZiAobV9yZWNvcmRpbmdDb250ZXh0KQotICAgICAgICByZXR1
cm4gbV9yZWNvcmRpbmdDb250ZXh0LT5kaXNwbGF5TGlzdC5hc1RleHQoZmxhZ3MpOwotICAgIAot
ICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBpZiAoIW1fcmVjb3JkaW5nQ29udGV4dCkKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gbV9yZWNvcmRpbmdDb250ZXh0LT5kaXNwbGF5TGlz
dC5hc1RleHQoZmxhZ3MpOwogfQogCiBTdHJpbmcgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpy
ZXBsYXlEaXNwbGF5TGlzdEFzVGV4dChEaXNwbGF5TGlzdDo6QXNUZXh0RmxhZ3MgZmxhZ3MpIGNv
bnN0CiB7Ci0gICAgYXV0byBpdCA9IGNvbnRleHREaXNwbGF5TGlzdE1hcCgpLmZpbmQodGhpcyk7
Ci0gICAgaWYgKGl0ICE9IGNvbnRleHREaXNwbGF5TGlzdE1hcCgpLmVuZCgpKQotICAgICAgICBy
ZXR1cm4gaXQtPnZhbHVlLT5hc1RleHQoZmxhZ3MpOwotCi0gICAgcmV0dXJuIFN0cmluZygpOwor
ICAgIGF1dG8qIGRpc3BsYXlMaXN0ID0gY29udGV4dERpc3BsYXlMaXN0TWFwKCkuZ2V0KHRoaXMp
OworICAgIGlmICghZGlzcGxheUxpc3QpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJu
IGRpc3BsYXlMaXN0LT5hc1RleHQoZmxhZ3MpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKQpAQCAtMTg4Niw3ICsxODcz
LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnBhaW50UmVuZGVyaW5nUmVzdWx0
c1RvQ2FudmFzKCkKICAgICBpZiAoVU5MSUtFTFkobV91c2VzRGlzcGxheUxpc3REcmF3aW5nKSkg
ewogICAgICAgICBpZiAoIW1fcmVjb3JkaW5nQ29udGV4dCkKICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgCisKICAgICAgICAgRmxvYXRSZWN0IGNsaXAoRmxvYXRQb2ludDo6emVybygpLCBj
YW52YXMoKS5zaXplKCkpOwogICAgICAgICBEaXNwbGF5TGlzdDo6UmVwbGF5ZXIgcmVwbGF5ZXIo
KmNhbnZhcygpLmRyYXdpbmdDb250ZXh0KCksIG1fcmVjb3JkaW5nQ29udGV4dC0+ZGlzcGxheUxp
c3QpOwogCkBAIC0xOTA1LDcgKzE4OTIsNiBAQCBHcmFwaGljc0NvbnRleHQqIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6ZHJhd2luZ0NvbnRleHQoKSBjb25zdAogICAgIGlmIChVTkxJS0VMWSht
X3VzZXNEaXNwbGF5TGlzdERyYXdpbmcpKSB7CiAgICAgICAgIGlmICghbV9yZWNvcmRpbmdDb250
ZXh0KQogICAgICAgICAgICAgbV9yZWNvcmRpbmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxE
aXNwbGF5TGlzdERyYXdpbmdDb250ZXh0PihGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBj
YW52YXMoKS5zaXplKCkpKTsKLQogICAgICAgICByZXR1cm4gJm1fcmVjb3JkaW5nQ29udGV4dC0+
Y29udGV4dDsKICAgICB9CiAKQEAgLTE5MTQsMTIgKzE5MDAsMTAgQEAgR3JhcGhpY3NDb250ZXh0
KiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdpbmdDb250ZXh0KCkgY29uc3QKIAogc3Rh
dGljIFJlZlB0cjxJbWFnZURhdGE+IGNyZWF0ZUVtcHR5SW1hZ2VEYXRhKGNvbnN0IEludFNpemUm
IHNpemUpCiB7Ci0gICAgaWYgKFJlZlB0cjxJbWFnZURhdGE+IGRhdGEgPSBJbWFnZURhdGE6OmNy
ZWF0ZShzaXplKSkgeworICAgIGF1dG8gZGF0YSA9IEltYWdlRGF0YTo6Y3JlYXRlKHNpemUpOwor
ICAgIGlmIChkYXRhKQogICAgICAgICBkYXRhLT5kYXRhKCktPnplcm9GaWxsKCk7Ci0gICAgICAg
IHJldHVybiBkYXRhOwotICAgIH0KLQotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBk
YXRhOwogfQogCiBFeGNlcHRpb25PcjxSZWZQdHI8SW1hZ2VEYXRhPj4gQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpjcmVhdGVJbWFnZURhdGEoSW1hZ2VEYXRhKiBpbWFnZURhdGEpIGNvbnN0CkBA
IC0yMDM4LDExICsyMDIyLDkgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdG
b2N1c0lmTmVlZGVkKERPTVBhdGgmIHBhdGgsIEVsZW1lbnQmIGVsZW1lbnQKIAogdm9pZCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdGb2N1c0lmTmVlZGVkSW50ZXJuYWwoY29uc3QgUGF0
aCYgcGF0aCwgRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQgPSBkcmF3aW5nQ29udGV4dCgpOwotCisgICAgYXV0byogY29udGV4dCA9IGRyYXdpbmdDb250
ZXh0KCk7CiAgICAgaWYgKCFlbGVtZW50LmZvY3VzZWQoKSB8fCAhc3RhdGUoKS5oYXNJbnZlcnRp
YmxlVHJhbnNmb3JtIHx8IHBhdGguaXNFbXB0eSgpIHx8ICFlbGVtZW50LmlzRGVzY2VuZGFudE9m
KGNhbnZhcygpKSB8fCAhY29udGV4dCkKICAgICAgICAgcmV0dXJuOwotCiAgICAgY29udGV4dC0+
ZHJhd0ZvY3VzUmluZyhwYXRoLCAxLCAxLCBSZW5kZXJUaGVtZTo6Zm9jdXNSaW5nQ29sb3IoKSk7
CiB9CiAKQEAgLTIyNzAsNyArMjI1Miw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NwYWNlVGhh
dE5lZWRzUmVwbGFjaW5nKFVDaGFyIGMpCiBzdGF0aWMgdm9pZCBub3JtYWxpemVTcGFjZXMoU3Ry
aW5nJiB0ZXh0KQogewogICAgIHNpemVfdCBpID0gdGV4dC5maW5kKGlzU3BhY2VUaGF0TmVlZHNS
ZXBsYWNpbmcpOwotCiAgICAgaWYgKGkgPT0gbm90Rm91bmQpCiAgICAgICAgIHJldHVybjsKIApA
QCAtMjMwMSwxMCArMjI4MiwxMCBAQCBSZWY8VGV4dE1ldHJpY3M+IENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6bWVhc3VyZVRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQogCiB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZs
b2F0IHgsIGZsb2F0IHksIGJvb2wgZmlsbCwgc3RkOjpvcHRpb25hbDxmbG9hdD4gbWF4V2lkdGgp
CiB7Ci0gICAgY29uc3QgYXV0byYgZm9udFByb3h5ID0gdGhpcy0+Zm9udFByb3h5KCk7Ci0gICAg
Y29uc3QgRm9udE1ldHJpY3MmIGZvbnRNZXRyaWNzID0gZm9udFByb3h5LmZvbnRNZXRyaWNzKCk7
CisgICAgYXV0byYgZm9udFByb3h5ID0gdGhpcy0+Zm9udFByb3h5KCk7CisgICAgY29uc3QgYXV0
byYgZm9udE1ldHJpY3MgPSBmb250UHJveHkuZm9udE1ldHJpY3MoKTsKIAotICAgIEdyYXBoaWNz
Q29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250
ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhh
c0ludmVydGlibGVUcmFuc2Zvcm0pCkBAIC0yMzE1LDcgKzIyOTYsNyBAQCB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZs
b2F0IHgsIGZsbwogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZiBncmFkaWVudCBzaXplIGlz
IHplcm8sIHRoZW4gcGFpbnQgbm90aGluZy4KLSAgICBHcmFkaWVudCogZ3JhZGllbnQgPSBjLT5z
dHJva2VHcmFkaWVudCgpOworICAgIGF1dG8qIGdyYWRpZW50ID0gYy0+c3Ryb2tlR3JhZGllbnQo
KTsKICAgICBpZiAoIWZpbGwgJiYgZ3JhZGllbnQgJiYgZ3JhZGllbnQtPmlzWmVyb1NpemUoKSkK
ICAgICAgICAgcmV0dXJuOwogCkBAIC0yMzI5LDcgKzIzMTAsNyBAQCB2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0
IHgsIGZsbwogICAgIC8vIEZJWE1FOiBOZWVkIHRvIHR1cm4gb2ZmIGZvbnQgc21vb3RoaW5nLgog
CiAgICAgY29uc3QgUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGU7Ci0gICAgVGV4dERpcmVjdGlv
biBkaXJlY3Rpb24gPSB0b1RleHREaXJlY3Rpb24oc3RhdGUoKS5kaXJlY3Rpb24sICZjb21wdXRl
ZFN0eWxlKTsKKyAgICBhdXRvIGRpcmVjdGlvbiA9IHRvVGV4dERpcmVjdGlvbihzdGF0ZSgpLmRp
cmVjdGlvbiwgJmNvbXB1dGVkU3R5bGUpOwogICAgIGJvb2wgaXNSVEwgPSBkaXJlY3Rpb24gPT0g
UlRMOwogICAgIGJvb2wgb3ZlcnJpZGUgPSBjb21wdXRlZFN0eWxlID8gaXNPdmVycmlkZShjb21w
dXRlZFN0eWxlLT51bmljb2RlQmlkaSgpKSA6IGZhbHNlOwogCkBAIC0yMzU5LDcgKzIzNDAsNyBA
QCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBT
dHJpbmcmIHRleHQsIGZsb2F0IHgsIGZsbwogICAgIGJvb2wgdXNlTWF4V2lkdGggPSBtYXhXaWR0
aCAmJiBtYXhXaWR0aC52YWx1ZSgpIDwgZm9udFdpZHRoOwogICAgIGZsb2F0IHdpZHRoID0gdXNl
TWF4V2lkdGggPyBtYXhXaWR0aC52YWx1ZSgpIDogZm9udFdpZHRoOwogCi0gICAgVGV4dEFsaWdu
IGFsaWduID0gc3RhdGUoKS50ZXh0QWxpZ247CisgICAgYXV0byBhbGlnbiA9IHN0YXRlKCkudGV4
dEFsaWduOwogICAgIGlmIChhbGlnbiA9PSBTdGFydFRleHRBbGlnbikKICAgICAgICAgYWxpZ24g
PSBpc1JUTCA/IFJpZ2h0VGV4dEFsaWduIDogTGVmdFRleHRBbGlnbjsKICAgICBlbHNlIGlmIChh
bGlnbiA9PSBFbmRUZXh0QWxpZ24pCkBAIC0yMzg1LDcgKzIzNjYsNiBAQCB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZs
b2F0IHgsIGZsbwogI2lmIFVTRShDRykKICAgICBjb25zdCBDYW52YXNTdHlsZSYgZHJhd1N0eWxl
ID0gZmlsbCA/IHN0YXRlKCkuZmlsbFN0eWxlIDogc3RhdGUoKS5zdHJva2VTdHlsZTsKICAgICBp
ZiAoZHJhd1N0eWxlLmNhbnZhc0dyYWRpZW50KCkgfHwgZHJhd1N0eWxlLmNhbnZhc1BhdHRlcm4o
KSkgewotCiAgICAgICAgIEludFJlY3QgbWFza1JlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHRleHRS
ZWN0KTsKIAogICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgc2hhZG93LCB3ZSBuZWVkIHRvIGRyYXcg
aXQgYmVmb3JlIHRoZSBtYXNrIG9wZXJhdGlvbi4KQEAgLTIzOTQsNyArMjM3NCw3IEBAIHZvaWQg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYg
dGV4dCwgZmxvYXQgeCwgZmxvCiAgICAgICAgIGlmIChzaG91bGREcmF3U2hhZG93cygpKSB7CiAg
ICAgICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmMpOwogCi0g
ICAgICAgICAgICBGbG9hdFNpemUgb2Zmc2V0ID0gRmxvYXRTaXplKDAsIDIgKiBtYXNrUmVjdC5o
ZWlnaHQoKSk7CisgICAgICAgICAgICBGbG9hdFNpemUgb2Zmc2V0KDAsIDIgKiBtYXNrUmVjdC5o
ZWlnaHQoKSk7CiAKICAgICAgICAgICAgIEZsb2F0U2l6ZSBzaGFkb3dPZmZzZXQ7CiAgICAgICAg
ICAgICBmbG9hdCBzaGFkb3dSYWRpdXM7CkBAIC0yNDIyLDcgKzI0MDIsNyBAQCB2b2lkIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQs
IGZsb2F0IHgsIGZsbwogICAgICAgICBpZiAoIW1hc2tJbWFnZSkKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBHcmFwaGljc0NvbnRleHQmIG1hc2tJbWFnZUNvbnRleHQgPSBtYXNrSW1h
Z2UtPmNvbnRleHQoKTsKKyAgICAgICAgYXV0byYgbWFza0ltYWdlQ29udGV4dCA9IG1hc2tJbWFn
ZS0+Y29udGV4dCgpOwogCiAgICAgICAgIGlmIChmaWxsKQogICAgICAgICAgICAgbWFza0ltYWdl
Q29udGV4dC5zZXRGaWxsQ29sb3IoQ29sb3I6OmJsYWNrKTsKQEAgLTI0NDUsNyArMjQyNSw3IEBA
IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0
cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVT
YXZlciBzdGF0ZVNhdmVyKCpjKTsKICAgICAgICAgYy0+Y2xpcFRvSW1hZ2VCdWZmZXIoKm1hc2tJ
bWFnZSwgbWFza1JlY3QpOwotICAgICAgICBkcmF3U3R5bGUuYXBwbHlGaWxsQ29sb3IoYyk7Cisg
ICAgICAgIGRyYXdTdHlsZS5hcHBseUZpbGxDb2xvcigqYyk7CiAgICAgICAgIGMtPmZpbGxSZWN0
KG1hc2tSZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI0ODcsMjcgKzI0NjcsMjcg
QEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmluZmxhdGVTdHJva2VSZWN0KEZsb2F0
UmVjdCYgcmVjdCkgY29uc3QKICAgICAgICAgZGVsdGEgKj0gc3RhdGUoKS5taXRlckxpbWl0Owog
ICAgIGVsc2UgaWYgKHN0YXRlKCkubGluZUNhcCA9PSBTcXVhcmVDYXApCiAgICAgICAgIGRlbHRh
ICo9IHJvb3QyOwotCiAgICAgcmVjdC5pbmZsYXRlKGRlbHRhKTsKIH0KIAogYXV0byBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ6OmZvbnRQcm94eSgpIC0+IGNvbnN0IEZvbnRQcm94eSYKIHsKICAg
ICBjYW52YXMoKS5kb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKLQogICAgIGlmICgh
c3RhdGUoKS5mb250LnJlYWxpemVkKCkpCiAgICAgICAgIHNldEZvbnQoc3RhdGUoKS51bnBhcnNl
ZEZvbnQpOwogICAgIHJldHVybiBzdGF0ZSgpLmZvbnQ7CiB9CiAKICNpZiBFTkFCTEUoQUNDRUxF
UkFURURfMkRfQ0FOVkFTKQorCiBQbGF0Zm9ybUxheWVyKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewotICAgIHJldHVybiBjYW52YXMoKS5idWZmZXIo
KSA/IGNhbnZhcygpLmJ1ZmZlcigpLT5wbGF0Zm9ybUxheWVyKCkgOiAwOworICAgIHJldHVybiBj
YW52YXMoKS5idWZmZXIoKSA/IGNhbnZhcygpLmJ1ZmZlcigpLT5wbGF0Zm9ybUxheWVyKCkgOiBu
dWxscHRyOwogfQorCiAjZW5kaWYKIAotc3RhdGljIEludGVycG9sYXRpb25RdWFsaXR5IHNtb290
aGluZ1RvSW50ZXJwb2xhdGlvblF1YWxpdHkoQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpJbWFn
ZVNtb290aGluZ1F1YWxpdHkgcXVhbGl0eSkKK3N0YXRpYyBpbmxpbmUgSW50ZXJwb2xhdGlvblF1
YWxpdHkgc21vb3RoaW5nVG9JbnRlcnBvbGF0aW9uUXVhbGl0eShDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OkltYWdlU21vb3RoaW5nUXVhbGl0eSBxdWFsaXR5KQogewogICAgIHN3aXRjaCAocXVh
bGl0eSkgewogICAgIGNhc2UgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpJbWFnZVNtb290aGlu
Z1F1YWxpdHk6OkxvdzoKQEAgLTI1NTQsNyArMjUzNCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpzZXRJbWFnZVNtb290aGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogCiAgICAg
cmVhbGl6ZVNhdmVzKCk7CiAgICAgbW9kaWZpYWJsZVN0YXRlKCkuaW1hZ2VTbW9vdGhpbmdFbmFi
bGVkID0gZW5hYmxlZDsKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgp
OworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmIChjKQogICAgICAgICBj
LT5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KGVuYWJsZWQgPyBzbW9vdGhpbmdUb0ludGVy
cG9sYXRpb25RdWFsaXR5KHN0YXRlKCkuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5KSA6IEludGVycG9s
YXRpb25Ob25lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmgKaW5kZXggNTRiZTlkMDBjZjU4MjNiMTZkMTY3NjhhZGFl
NTNlNWE2NTMxZTYwOS4uZTM5ZjFiNjcyODllYjk2M2I2NDc0MmU4YzQyMzRlZDEwYzFlMjA3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmgKQEAgLTM0MCw5ICszNDAsNyBAQCBwcml2YXRlOgogICAgIC8vIFRoZXJlZm9y
ZSwgYWxsIGZvbnQgb3BlcmF0aW9ucyBtdXN0IHBhc3MgdGhyb3VnaCB0aGUgU3RhdGUuCiAgICAg
Y29uc3QgRm9udFByb3h5JiBmb250UHJveHkoKTsKIAotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQ
UE9SVCkKICAgICB2b2lkIGNsZWFyUGF0aEZvckRhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0
eU1vZGUoKTsKLSNlbmRpZgogCiAgICAgdm9pZCBiZWdpbkNvbXBvc2l0ZUxheWVyKCk7CiAgICAg
dm9pZCBlbmRDb21wb3NpdGVMYXllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzU3R5bGUuY3BwCmluZGV4IDlhYTBhMDUyZjQ2MWFkNmIyYzVlYWM2YWZlYzMyMzE1NjVlMDIx
MzYuLjlkYzhmMDQ4ZDc2ZjhjOTJiYmEyZTE5OTZkYThkN2FkOGEyZWIzNmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAg
VG9rZXIgPGFscEBhdG9rZXIuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA4IEVyaWMgU2VpZGVs
IDxlcmljQHdlYmtpdC5vcmc+CkBAIC01Myw3ICs1Myw2IEBAIHN0YXRpYyBDb2xvciBwYXJzZUNv
bG9yKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIERvY3VtZW50KiBkb2N1bWVudCA9IG51bGxw
dHIpCiAgICAgQ29sb3IgY29sb3IgPSBDU1NQYXJzZXI6OnBhcnNlQ29sb3IoY29sb3JTdHJpbmcp
OwogICAgIGlmIChjb2xvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBjb2xvcjsKLQogICAg
IHJldHVybiBDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3IoY29sb3JTdHJpbmcsIGRvY3VtZW50
KTsKIH0KIApAQCAtNzYsMjA4ICs3NSwxNTAgQEAgQ29sb3IgcGFyc2VDb2xvck9yQ3VycmVudENv
bG9yKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIEhUTUxDYW52YXNFbGVtZW50KiBjYW4KIH0K
IAogQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKENvbG9yIGNvbG9yKQotICAgIDogbV9jb2xvcihj
b2xvcikKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDogbV9zdHlsZShjb2xvcikKIHsKIH0KIAog
Q2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQgYWxwaGEpCi0g
ICAgOiBtX2NvbG9yKENvbG9yKGdyYXlMZXZlbCwgZ3JheUxldmVsLCBncmF5TGV2ZWwsIGFscGhh
KSkKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDogbV9zdHlsZShDb2xvciB7IGdyYXlMZXZlbCwg
Z3JheUxldmVsLCBncmF5TGV2ZWwsIGFscGhhIH0pCiB7CiB9CiAKIENhbnZhc1N0eWxlOjpDYW52
YXNTdHlsZShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhKQotICAgIDogbV9jb2xv
cihDb2xvcihyLCBnLCBiLCBhKSkKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDogbV9zdHlsZShD
b2xvciB7IHIsIGcsIGIsIGEgfSkKIHsKIH0KIAogQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGZs
b2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZsb2F0IGEpCi0gICAgOiBtX2NteWth
KG5ldyBDTVlLQVZhbHVlcyhDb2xvcihjLCBtLCB5LCBrLCBhKSwgYywgbSwgeSwgaywgYSkpCi0g
ICAgLCBtX3R5cGUoQ01ZS0EpCisgICAgOiBtX3N0eWxlKENNWUtBQ29sb3IgeyBDb2xvciB7IGMs
IG0sIHksIGssIGEgfSwgYywgbSwgeSwgaywgYSB9KQogewogfQogCi1DYW52YXNTdHlsZTo6Q2Fu
dmFzU3R5bGUoUGFzc1JlZlB0cjxDYW52YXNHcmFkaWVudD4gZ3JhZGllbnQpCi0gICAgOiBtX2dy
YWRpZW50KGdyYWRpZW50LmxlYWtSZWYoKSkKLSAgICAsIG1fdHlwZShHcmFkaWVudCkKK0NhbnZh
c1N0eWxlOjpDYW52YXNTdHlsZShDYW52YXNHcmFkaWVudCYgZ3JhZGllbnQpCisgICAgOiBtX3N0
eWxlKG1ha2VSZWZQdHIoZ3JhZGllbnQpKQogewotICAgIGlmICghbV9ncmFkaWVudCkKLSAgICAg
ICAgbV90eXBlID0gSW52YWxpZDsKIH0KIAotQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKFBhc3NS
ZWZQdHI8Q2FudmFzUGF0dGVybj4gcGF0dGVybikKLSAgICA6IG1fcGF0dGVybihwYXR0ZXJuLmxl
YWtSZWYoKSkKLSAgICAsIG1fdHlwZShJbWFnZVBhdHRlcm4pCitDYW52YXNTdHlsZTo6Q2FudmFz
U3R5bGUoQ2FudmFzUGF0dGVybiYgcGF0dGVybikKKyAgICA6IG1fc3R5bGUobWFrZVJlZlB0cihw
YXR0ZXJuKSkKIHsKLSAgICBpZiAoIW1fcGF0dGVybikKLSAgICAgICAgbV90eXBlID0gSW52YWxp
ZDsKIH0KIAotQ2FudmFzU3R5bGU6On5DYW52YXNTdHlsZSgpCitpbmxpbmUgQ2FudmFzU3R5bGU6
OkNhbnZhc1N0eWxlKEN1cnJlbnRDb2xvciBjb2xvcikKKyAgICA6IG1fc3R5bGUoY29sb3IpCiB7
Ci0gICAgaWYgKG1fdHlwZSA9PSBHcmFkaWVudCkKLSAgICAgICAgbV9ncmFkaWVudC0+ZGVyZWYo
KTsKLSAgICBlbHNlIGlmIChtX3R5cGUgPT0gSW1hZ2VQYXR0ZXJuKQotICAgICAgICBtX3BhdHRl
cm4tPmRlcmVmKCk7Ci0gICAgZWxzZSBpZiAobV90eXBlID09IENNWUtBKQotICAgICAgICBkZWxl
dGUgbV9jbXlrYTsKIH0KIAogQ2FudmFzU3R5bGUgQ2FudmFzU3R5bGU6OmNyZWF0ZUZyb21TdHJp
bmcoY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZywgRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAg
IGlmIChpc0N1cnJlbnRDb2xvclN0cmluZyhjb2xvclN0cmluZykpCi0gICAgICAgIHJldHVybiBD
YW52YXNTdHlsZShDb25zdHJ1Y3RDdXJyZW50Q29sb3IpOworICAgICAgICByZXR1cm4gQ3VycmVu
dENvbG9yIHsgc3RkOjpudWxsb3B0IH07CiAKICAgICBDb2xvciBjb2xvciA9IHBhcnNlQ29sb3Io
Y29sb3JTdHJpbmcsIGRvY3VtZW50KTsKLSAgICBpZiAoY29sb3IuaXNWYWxpZCgpKQotICAgICAg
ICByZXR1cm4gQ2FudmFzU3R5bGUoY29sb3IpOworICAgIGlmICghY29sb3IuaXNWYWxpZCgpKQor
ICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIENhbnZhc1N0eWxlKCk7CisgICAgcmV0
dXJuIGNvbG9yOwogfQogCiBDYW52YXNTdHlsZSBDYW52YXNTdHlsZTo6Y3JlYXRlRnJvbVN0cmlu
Z1dpdGhPdmVycmlkZUFscGhhKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIGZsb2F0IGFscGhh
KQogewogICAgIGlmIChpc0N1cnJlbnRDb2xvclN0cmluZyhjb2xvclN0cmluZykpCi0gICAgICAg
IHJldHVybiBDYW52YXNTdHlsZShDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBoYSwgYWxwaGEp
OworICAgICAgICByZXR1cm4gQ3VycmVudENvbG9yIHsgYWxwaGEgfTsKIAogICAgIENvbG9yIGNv
bG9yID0gcGFyc2VDb2xvcihjb2xvclN0cmluZyk7Ci0gICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkK
LSAgICAgICAgcmV0dXJuIENhbnZhc1N0eWxlKGNvbG9yV2l0aE92ZXJyaWRlQWxwaGEoY29sb3Iu
cmdiKCksIGFscGhhKSk7CisgICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVy
biB7IH07CiAKLSAgICByZXR1cm4gQ2FudmFzU3R5bGUoKTsKKyAgICByZXR1cm4gQ29sb3IgeyBj
b2xvcldpdGhPdmVycmlkZUFscGhhKGNvbG9yLnJnYigpLCBhbHBoYSkgfTsKIH0KIAogYm9vbCBD
YW52YXNTdHlsZTo6aXNFcXVpdmFsZW50Q29sb3IoY29uc3QgQ2FudmFzU3R5bGUmIG90aGVyKSBj
b25zdAogewotICAgIGlmIChtX3R5cGUgIT0gb3RoZXIubV90eXBlKQotICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG1fc3R5bGUpICYm
IFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG90aGVyLm1fc3R5bGUpKQorICAgICAgICBy
ZXR1cm4gV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpID09IFdURjo6Z2V0PENvbG9yPihvdGhlci5t
X3N0eWxlKTsKIAotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBSR0JBOgotICAgICAg
ICByZXR1cm4gbV9jb2xvciA9PSBvdGhlci5tX2NvbG9yOwotICAgIGNhc2UgQ01ZS0E6Ci0gICAg
ICAgIHJldHVybiBtX2NteWthLT5jID09IG90aGVyLm1fY215a2EtPmMKLSAgICAgICAgICAgICYm
IG1fY215a2EtPm0gPT0gb3RoZXIubV9jbXlrYS0+bQotICAgICAgICAgICAgJiYgbV9jbXlrYS0+
eSA9PSBvdGhlci5tX2NteWthLT55Ci0gICAgICAgICAgICAmJiBtX2NteWthLT5rID09IG90aGVy
Lm1fY215a2EtPmsKLSAgICAgICAgICAgICYmIG1fY215a2EtPmEgPT0gb3RoZXIubV9jbXlrYS0+
YTsKLSAgICBjYXNlIEdyYWRpZW50OgotICAgIGNhc2UgSW1hZ2VQYXR0ZXJuOgotICAgIGNhc2Ug
Q3VycmVudENvbG9yOgotICAgIGNhc2UgQ3VycmVudENvbG9yV2l0aE92ZXJyaWRlQWxwaGE6Ci0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjYXNlIEludmFsaWQ6Ci0gICAgICAgIGJyZWFrOwor
ICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENNWUtBQ29sb3I+KG1fc3R5bGUpICYmIFdU
Rjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q01ZS0FDb2xvcj4ob3RoZXIubV9zdHlsZSkpIHsKKyAgICAg
ICAgYXV0byYgYSA9IFdURjo6Z2V0PENNWUtBQ29sb3I+KG1fc3R5bGUpOworICAgICAgICBhdXRv
JiBiID0gV1RGOjpnZXQ8Q01ZS0FDb2xvcj4ob3RoZXIubV9zdHlsZSk7CisgICAgICAgIHJldHVy
biBhLmMgPT0gYi5jICYmIGEubSA9PSBiLm0gJiYgYS55ID09IGIueSAmJiBhLmsgPT0gYi5rICYm
IGEuYSA9PSBiLmE7CiAgICAgfQogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCiBib29sIENhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRSR0JBKGZsb2F0
IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGEpIGNvbnN0CiB7Ci0gICAgaWYgKG1fdHlwZSAh
PSBSR0JBKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9jb2xvciA9PSBD
b2xvcihyLCBnLCBiLCBhKTsKKyAgICByZXR1cm4gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDb2xv
cj4obV9zdHlsZSkgJiYgV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpID09IENvbG9yIHsgciwgZywg
YiwgYSB9OwogfQogCiBib29sIENhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDTVlLQShmbG9hdCBj
LCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBhKSBjb25zdAogewotICAgIGlmICht
X3R5cGUgIT0gQ01ZS0EpCisgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENNWUtBQ29s
b3I+KG1fc3R5bGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gYyA9PSBt
X2NteWthLT5jCi0gICAgICAgICYmIG0gPT0gbV9jbXlrYS0+bQotICAgICAgICAmJiB5ID09IG1f
Y215a2EtPnkKLSAgICAgICAgJiYgayA9PSBtX2NteWthLT5rCi0gICAgICAgICYmIGEgPT0gbV9j
bXlrYS0+YTsKLX0KLQotQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGNvbnN0IENhbnZhc1N0eWxl
JiBvdGhlcikKLXsKLSAgICBtZW1jcHkodGhpcywgJm90aGVyLCBzaXplb2YoQ2FudmFzU3R5bGUp
KTsKLSAgICBpZiAobV90eXBlID09IEdyYWRpZW50KQotICAgICAgICBtX2dyYWRpZW50LT5yZWYo
KTsKLSAgICBlbHNlIGlmIChtX3R5cGUgPT0gSW1hZ2VQYXR0ZXJuKQotICAgICAgICBtX3BhdHRl
cm4tPnJlZigpOwotICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBDTVlLQSkKLSAgICAgICAgbV9jbXlr
YSA9IG5ldyBDTVlLQVZhbHVlcyhvdGhlci5tX2NteWthLT5jb2xvciwgb3RoZXIubV9jbXlrYS0+
Yywgb3RoZXIubV9jbXlrYS0+bSwgb3RoZXIubV9jbXlrYS0+eSwgb3RoZXIubV9jbXlrYS0+aywg
b3RoZXIubV9jbXlrYS0+YSk7Ci19Ci0KLUNhbnZhc1N0eWxlJiBDYW52YXNTdHlsZTo6b3BlcmF0
b3I9KGNvbnN0IENhbnZhc1N0eWxlJiBvdGhlcikKLXsKLSAgICBpZiAodGhpcyAhPSAmb3RoZXIp
IHsKLSAgICAgICAgdGhpcy0+fkNhbnZhc1N0eWxlKCk7Ci0gICAgICAgIG5ldyAodGhpcykgQ2Fu
dmFzU3R5bGUob3RoZXIpOwotICAgIH0KLSAgICByZXR1cm4gKnRoaXM7CisgICAgYXV0byYgY2hh
bm5lbHMgPSBXVEY6OmdldDxDTVlLQUNvbG9yPihtX3N0eWxlKTsKKyAgICByZXR1cm4gYyA9PSBj
aGFubmVscy5jICYmIG0gPT0gY2hhbm5lbHMubSAmJiB5ID09IGNoYW5uZWxzLnkgJiYgayA9PSBj
aGFubmVscy5rICYmIGEgPT0gY2hhbm5lbHMuYTsKIH0KIAotdm9pZCBDYW52YXNTdHlsZTo6YXBw
bHlTdHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpIGNvbnN0Cit2b2lkIENhbnZh
c1N0eWxlOjphcHBseVN0cm9rZUNvbG9yKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QK
IHsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICBzd2l0Y2ggKG1fdHlw
ZSkgewotICAgIGNhc2UgUkdCQToKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3IobV9j
b2xvcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ01ZS0E6IHsKLSAgICAgICAgLy8gRklY
TUU6IERvIHRoaXMgdGhyb3VnaCBwbGF0Zm9ybS1pbmRlcGVuZGVudCBHcmFwaGljc0NvbnRleHQg
QVBJLgotICAgICAgICAvLyBXZSdsbCBuZWVkIGEgZmFuY2llciBDb2xvciBhYnN0cmFjdGlvbiB0
byBzdXBwb3J0IENNWUtBIGNvcnJlY3RseQorICAgIFdURjo6c3dpdGNoT24obV9zdHlsZSwKKyAg
ICAgICAgWyZjb250ZXh0XSAoY29uc3QgQ29sb3ImIGNvbG9yKSB7CisgICAgICAgICAgICBjb250
ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9yKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0
XSAoY29uc3QgQ01ZS0FDb2xvciYgY29sb3IpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBEbyB0
aGlzIHRocm91Z2ggcGxhdGZvcm0taW5kZXBlbmRlbnQgR3JhcGhpY3NDb250ZXh0IEFQSS4KKyAg
ICAgICAgICAgIC8vIFdlJ2xsIG5lZWQgYSBmYW5jaWVyIENvbG9yIGFic3RyYWN0aW9uIHRvIHN1
cHBvcnQgQ01ZS0EgY29ycmVjdGx5CiAjaWYgVVNFKENHKQotICAgICAgICBDR0NvbnRleHRTZXRD
TVlLU3Ryb2tlQ29sb3IoY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIG1fY215a2EtPmMsIG1f
Y215a2EtPm0sIG1fY215a2EtPnksIG1fY215a2EtPmssIG1fY215a2EtPmEpOworICAgICAgICAg
ICAgQ0dDb250ZXh0U2V0Q01ZS1N0cm9rZUNvbG9yKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCks
IGNvbG9yLmMsIGNvbG9yLm0sIGNvbG9yLnksIGNvbG9yLmssIGNvbG9yLmEpOwogI2Vsc2UKLSAg
ICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3IobV9jbXlrYS0+Y29sb3IpOworICAgICAgICAg
ICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihjb2xvci5jb2xvcik7CiAjZW5kaWYKLSAgICAgICAg
YnJlYWs7Ci0gICAgfQotICAgIGNhc2UgR3JhZGllbnQ6Ci0gICAgICAgIGNvbnRleHQtPnNldFN0
cm9rZUdyYWRpZW50KGNhbnZhc0dyYWRpZW50KCktPmdyYWRpZW50KCkpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEltYWdlUGF0dGVybjoKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlUGF0
dGVybihjYW52YXNQYXR0ZXJuKCktPnBhdHRlcm4oKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgQ3VycmVudENvbG9yOgotICAgIGNhc2UgQ3VycmVudENvbG9yV2l0aE92ZXJyaWRlQWxwaGE6
Ci0gICAgY2FzZSBJbnZhbGlkOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgfQotfQotCi12b2lkIENhbnZhc1N0eWxlOjphcHBseUZpbGxDb2xvcihH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQpIGNvbnN0Ci17Ci0gICAgaWYgKCFjb250ZXh0KQotICAg
ICAgICByZXR1cm47Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFJHQkE6Ci0gICAg
ICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihtX2NvbG9yKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBDTVlLQTogewotICAgICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdoIHBsYXRmb3Jt
LWluZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCi0gICAgICAgIC8vIFdlJ2xsIG5lZWQg
YSBmYW5jaWVyIENvbG9yIGFic3RyYWN0aW9uIHRvIHN1cHBvcnQgQ01ZS0EgY29ycmVjdGx5Cisg
ICAgICAgIH0sCisgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IFJlZlB0cjxDYW52YXNHcmFkaWVu
dD4mIGdyYWRpZW50KSB7CisgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZUdyYWRpZW50KGdy
YWRpZW50LT5ncmFkaWVudCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29u
c3QgUmVmUHRyPENhbnZhc1BhdHRlcm4+JiBwYXR0ZXJuKSB7CisgICAgICAgICAgICBjb250ZXh0
LnNldFN0cm9rZVBhdHRlcm4ocGF0dGVybi0+cGF0dGVybigpKTsKKyAgICAgICAgfSwKKyAgICAg
ICAgW10gKGNvbnN0IEN1cnJlbnRDb2xvciYpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICB9LAorICAgICAgICBbXSAoY29uc3QgSW52YWxpZCYpIHsKKyAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgKTsKK30KKwordm9p
ZCBDYW52YXNTdHlsZTo6YXBwbHlGaWxsQ29sb3IoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBj
b25zdAoreworICAgIFdURjo6c3dpdGNoT24obV9zdHlsZSwKKyAgICAgICAgWyZjb250ZXh0XSAo
Y29uc3QgQ29sb3ImIGNvbG9yKSB7CisgICAgICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihj
b2xvcik7CisgICAgICAgIH0sCisgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IENNWUtBQ29sb3Im
IGNvbG9yKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdoIHBsYXRmb3Jt
LWluZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCisgICAgICAgICAgICAvLyBXZSdsbCBu
ZWVkIGEgZmFuY2llciBDb2xvciBhYnN0cmFjdGlvbiB0byBzdXBwb3J0IENNWUtBIGNvcnJlY3Rs
eQogI2lmIFVTRShDRykKLSAgICAgICAgQ0dDb250ZXh0U2V0Q01ZS0ZpbGxDb2xvcihjb250ZXh0
LT5wbGF0Zm9ybUNvbnRleHQoKSwgbV9jbXlrYS0+YywgbV9jbXlrYS0+bSwgbV9jbXlrYS0+eSwg
bV9jbXlrYS0+aywgbV9jbXlrYS0+YSk7CisgICAgICAgICAgICBDR0NvbnRleHRTZXRDTVlLRmls
bENvbG9yKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIGNvbG9yLmMsIGNvbG9yLm0sIGNvbG9y
LnksIGNvbG9yLmssIGNvbG9yLmEpOwogI2Vsc2UKLSAgICAgICAgY29udGV4dC0+c2V0RmlsbENv
bG9yKG1fY215a2EtPmNvbG9yKTsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGNv
bG9yLmNvbG9yKTsKICNlbmRpZgotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBHcmFk
aWVudDoKLSAgICAgICAgY29udGV4dC0+c2V0RmlsbEdyYWRpZW50KGNhbnZhc0dyYWRpZW50KCkt
PmdyYWRpZW50KCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEltYWdlUGF0dGVybjoKLSAg
ICAgICAgY29udGV4dC0+c2V0RmlsbFBhdHRlcm4oY2FudmFzUGF0dGVybigpLT5wYXR0ZXJuKCkp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEN1cnJlbnRDb2xvcjoKLSAgICBjYXNlIEN1cnJl
bnRDb2xvcldpdGhPdmVycmlkZUFscGhhOgotICAgIGNhc2UgSW52YWxpZDoKLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICAgICAgfSwKKyAg
ICAgICAgWyZjb250ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZhc0dyYWRpZW50PiYgZ3JhZGllbnQp
IHsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbEdyYWRpZW50KGdyYWRpZW50LT5ncmFkaWVu
dCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZh
c1BhdHRlcm4+JiBwYXR0ZXJuKSB7CisgICAgICAgICAgICBjb250ZXh0LnNldEZpbGxQYXR0ZXJu
KHBhdHRlcm4tPnBhdHRlcm4oKSk7CisgICAgICAgIH0sCisgICAgICAgIFtdIChjb25zdCBDdXJy
ZW50Q29sb3ImKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
fSwKKyAgICAgICAgW10gKGNvbnN0IEludmFsaWQmKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgICk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNTdHlsZS5oCmluZGV4IGI2YmY0N2M0MDNjM2Q5ZTk1NjA1NjkxNGEwNGJi
YzMwYTBhYWJhMmIuLmQ3ODAzMGFjOWVmMDY3OTgxZWNhMGU4ZWRlNmQ0YjcyNDg2ZjViY2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjYsMTM1
ICsyNiwxMDAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDYW52YXNHcmFkaWVudC5o
IgorI2luY2x1ZGUgIkNhbnZhc1BhdHRlcm4uaCIKICNpbmNsdWRlICJDb2xvci5oIgotI2luY2x1
ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Cisj
aW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xh
c3MgQ2FudmFzR3JhZGllbnQ7Ci0gICAgY2xhc3MgQ2FudmFzUGF0dGVybjsKLSAgICBjbGFzcyBE
b2N1bWVudDsKLSAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7Ci0gICAgY2xhc3MgSFRNTENhbnZh
c0VsZW1lbnQ7Ci0KLSAgICBjbGFzcyBDYW52YXNTdHlsZSB7Ci0gICAgcHVibGljOgotICAgICAg
ICBDYW52YXNTdHlsZSgpOwotICAgICAgICBleHBsaWNpdCBDYW52YXNTdHlsZShDb2xvcik7Ci0g
ICAgICAgIENhbnZhc1N0eWxlKGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQgYWxwaGEpOwotICAgICAg
ICBDYW52YXNTdHlsZShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhbHBoYSk7Ci0g
ICAgICAgIENhbnZhc1N0eWxlKGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZs
b2F0IGFscGhhKTsKLSAgICAgICAgZXhwbGljaXQgQ2FudmFzU3R5bGUoUGFzc1JlZlB0cjxDYW52
YXNHcmFkaWVudD4pOwotICAgICAgICBleHBsaWNpdCBDYW52YXNTdHlsZShQYXNzUmVmUHRyPENh
bnZhc1BhdHRlcm4+KTsKLSAgICAgICAgfkNhbnZhc1N0eWxlKCk7Ci0KLSAgICAgICAgc3RhdGlj
IENhbnZhc1N0eWxlIGNyZWF0ZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBjb2xvciwgRG9jdW1l
bnQqID0gMCk7Ci0gICAgICAgIHN0YXRpYyBDYW52YXNTdHlsZSBjcmVhdGVGcm9tU3RyaW5nV2l0
aE92ZXJyaWRlQWxwaGEoY29uc3QgU3RyaW5nJiBjb2xvciwgZmxvYXQgYWxwaGEpOwotCi0gICAg
ICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSAhPSBJbnZhbGlkOyB9Ci0g
ICAgICAgIGJvb2wgaXNDdXJyZW50Q29sb3IoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gQ3Vy
cmVudENvbG9yIHx8IG1fdHlwZSA9PSBDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBoYTsgfQot
ICAgICAgICBib29sIGhhc092ZXJyaWRlQWxwaGEoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0g
Q3VycmVudENvbG9yV2l0aE92ZXJyaWRlQWxwaGE7IH0KLSAgICAgICAgZmxvYXQgb3ZlcnJpZGVB
bHBoYSgpIGNvbnN0IHsgQVNTRVJUKG1fdHlwZSA9PSBDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVB
bHBoYSk7IHJldHVybiBtX292ZXJyaWRlQWxwaGE7IH0KLQotICAgICAgICBTdHJpbmcgY29sb3Io
KSBjb25zdDsKLSAgICAgICAgQ2FudmFzR3JhZGllbnQqIGNhbnZhc0dyYWRpZW50KCkgY29uc3Q7
Ci0gICAgICAgIENhbnZhc1BhdHRlcm4qIGNhbnZhc1BhdHRlcm4oKSBjb25zdDsKLQotICAgICAg
ICB2b2lkIGFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29udGV4dCopIGNvbnN0OwotICAgICAgICB2
b2lkIGFwcGx5U3Ryb2tlQ29sb3IoR3JhcGhpY3NDb250ZXh0KikgY29uc3Q7Ci0KLSAgICAgICAg
Ym9vbCBpc0VxdWl2YWxlbnRDb2xvcihjb25zdCBDYW52YXNTdHlsZSYpIGNvbnN0OwotICAgICAg
ICBib29sIGlzRXF1aXZhbGVudFJHQkEoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQg
YSkgY29uc3Q7Ci0gICAgICAgIGJvb2wgaXNFcXVpdmFsZW50Q01ZS0EoZmxvYXQgYywgZmxvYXQg
bSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYSkgY29uc3Q7Ci0KLSAgICAgICAgQ2FudmFzU3R5
bGUoY29uc3QgQ2FudmFzU3R5bGUmKTsKLSAgICAgICAgQ2FudmFzU3R5bGUmIG9wZXJhdG9yPShj
b25zdCBDYW52YXNTdHlsZSYpOwotICAgICAgICBDYW52YXNTdHlsZShDYW52YXNTdHlsZSYmKTsK
LSAgICAgICAgQ2FudmFzU3R5bGUmIG9wZXJhdG9yPShDYW52YXNTdHlsZSYmKTsKLQotICAgIHBy
aXZhdGU6Ci0gICAgICAgIGVudW0gVHlwZSB7IFJHQkEsIENNWUtBLCBHcmFkaWVudCwgSW1hZ2VQ
YXR0ZXJuLCBDdXJyZW50Q29sb3IsIEN1cnJlbnRDb2xvcldpdGhPdmVycmlkZUFscGhhLCBJbnZh
bGlkIH07Ci0gICAgICAgIHN0cnVjdCBDTVlLQVZhbHVlcyB7Ci0gICAgICAgICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKLSAgICAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENNWUtB
VmFsdWVzKTsKLSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgQ01ZS0FWYWx1ZXMoKQotICAg
ICAgICAgICAgICAgIDogY29sb3IoKSwgYygwKSwgbSgwKSwgeSgwKSwgaygwKSwgYSgwKQotICAg
ICAgICAgICAgeyB9Ci0KLSAgICAgICAgICAgIENNWUtBVmFsdWVzKENvbG9yIGNvbG9yLCBmbG9h
dCBjeWFuLCBmbG9hdCBtYWdlbnRhLCBmbG9hdCB5ZWxsb3csIGZsb2F0IGJsYWNrLCBmbG9hdCBh
bHBoYSkKLSAgICAgICAgICAgICAgICA6IGNvbG9yKGNvbG9yKSwgYyhjeWFuKSwgbShtYWdlbnRh
KSwgeSh5ZWxsb3cpLCBrKGJsYWNrKSwgYShhbHBoYSkKLSAgICAgICAgICAgIHsgfQotICAgICAg
ICAgICAgQ29sb3IgY29sb3I7Ci0gICAgICAgICAgICBmbG9hdCBjOwotICAgICAgICAgICAgZmxv
YXQgbTsKLSAgICAgICAgICAgIGZsb2F0IHk7Ci0gICAgICAgICAgICBmbG9hdCBrOwotICAgICAg
ICAgICAgZmxvYXQgYTsKLSAgICAgICAgfTsKLQotICAgICAgICBlbnVtIENvbnN0cnVjdEN1cnJl
bnRDb2xvclRhZyB7IENvbnN0cnVjdEN1cnJlbnRDb2xvciB9OwotICAgICAgICBDYW52YXNTdHls
ZShDb25zdHJ1Y3RDdXJyZW50Q29sb3JUYWcpIDogbV90eXBlKEN1cnJlbnRDb2xvcikgeyB9Ci0g
ICAgICAgIENhbnZhc1N0eWxlKFR5cGUgdHlwZSwgZmxvYXQgb3ZlcnJpZGVBbHBoYSkKLSAgICAg
ICAgICAgIDogbV9vdmVycmlkZUFscGhhKG92ZXJyaWRlQWxwaGEpCi0gICAgICAgICAgICAsIG1f
dHlwZSh0eXBlKQorY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CitjbGFz
cyBIVE1MQ2FudmFzRWxlbWVudDsKKworY2xhc3MgQ2FudmFzU3R5bGUgeworcHVibGljOgorICAg
IENhbnZhc1N0eWxlKCk7CisgICAgQ2FudmFzU3R5bGUoQ29sb3IpOworICAgIENhbnZhc1N0eWxl
KGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQgYWxwaGEpOworICAgIENhbnZhc1N0eWxlKGZsb2F0IHIs
IGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGFscGhhKTsKKyAgICBDYW52YXNTdHlsZShmbG9hdCBj
LCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBhbHBoYSk7CisgICAgQ2FudmFzU3R5
bGUoQ2FudmFzR3JhZGllbnQmKTsKKyAgICBDYW52YXNTdHlsZShDYW52YXNQYXR0ZXJuJik7CisK
KyAgICBzdGF0aWMgQ2FudmFzU3R5bGUgY3JlYXRlRnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIGNv
bG9yLCBEb2N1bWVudCogPSBudWxscHRyKTsKKyAgICBzdGF0aWMgQ2FudmFzU3R5bGUgY3JlYXRl
RnJvbVN0cmluZ1dpdGhPdmVycmlkZUFscGhhKGNvbnN0IFN0cmluZyYgY29sb3IsIGZsb2F0IGFs
cGhhKTsKKworICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuICFXVEY6OmhvbGRzX2Fs
dGVybmF0aXZlPEludmFsaWQ+KG1fc3R5bGUpOyB9CisgICAgYm9vbCBpc0N1cnJlbnRDb2xvcigp
IGNvbnN0IHsgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q3VycmVudENvbG9yPihtX3N0
eWxlKTsgfQorICAgIGJvb2wgaGFzT3ZlcnJpZGVBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIGlzQ3Vy
cmVudENvbG9yKCkgJiYgV1RGOjpnZXQ8Q3VycmVudENvbG9yPihtX3N0eWxlKS5vdmVycmlkZUFs
cGhhOyB9CisgICAgZmxvYXQgb3ZlcnJpZGVBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIFdURjo6Z2V0
PEN1cnJlbnRDb2xvcj4obV9zdHlsZSkub3ZlcnJpZGVBbHBoYS52YWx1ZSgpOyB9CisKKyAgICBT
dHJpbmcgY29sb3IoKSBjb25zdDsKKyAgICBDYW52YXNHcmFkaWVudCogY2FudmFzR3JhZGllbnQo
KSBjb25zdDsKKyAgICBDYW52YXNQYXR0ZXJuKiBjYW52YXNQYXR0ZXJuKCkgY29uc3Q7CisKKyAg
ICB2b2lkIGFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OworICAgIHZvaWQg
YXBwbHlTdHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKworICAgIGJvb2wgaXNF
cXVpdmFsZW50Q29sb3IoY29uc3QgQ2FudmFzU3R5bGUmKSBjb25zdDsKKyAgICBib29sIGlzRXF1
aXZhbGVudFJHQkEoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxw
aGEpIGNvbnN0OworICAgIGJvb2wgaXNFcXVpdmFsZW50Q01ZS0EoZmxvYXQgY3lhbiwgZmxvYXQg
bWFnZW50YSwgZmxvYXQgeWVsbG93LCBmbG9hdCBibGFjaywgZmxvYXQgYWxwaGEpIGNvbnN0Owor
Citwcml2YXRlOgorICAgIHN0cnVjdCBJbnZhbGlkIHsgfTsKKworICAgIHN0cnVjdCBDTVlLQUNv
bG9yIHsKKyAgICAgICAgQ01ZS0FDb2xvcigpID0gZGVmYXVsdDsKKworICAgICAgICBDTVlLQUNv
bG9yKENvbG9yIGNvbG9yLCBmbG9hdCBjeWFuLCBmbG9hdCBtYWdlbnRhLCBmbG9hdCB5ZWxsb3cs
IGZsb2F0IGJsYWNrLCBmbG9hdCBhbHBoYSkKKyAgICAgICAgICAgIDogY29sb3IoY29sb3IpLCBj
KGN5YW4pLCBtKG1hZ2VudGEpLCB5KHllbGxvdyksIGsoYmxhY2spLCBhKGFscGhhKQogICAgICAg
ICB7CiAgICAgICAgIH0KIAotICAgICAgICB1bmlvbiB7Ci0gICAgICAgICAgICBDb2xvciBtX2Nv
bG9yOwotICAgICAgICAgICAgZmxvYXQgbV9vdmVycmlkZUFscGhhOwotICAgICAgICAgICAgQ2Fu
dmFzR3JhZGllbnQqIG1fZ3JhZGllbnQ7Ci0gICAgICAgICAgICBDYW52YXNQYXR0ZXJuKiBtX3Bh
dHRlcm47Ci0gICAgICAgICAgICBDTVlLQVZhbHVlcyogbV9jbXlrYTsKLSAgICAgICAgfTsKLSAg
ICAgICAgVHlwZSBtX3R5cGU7CisgICAgICAgIENvbG9yIGNvbG9yOworICAgICAgICBmbG9hdCBj
IHsgMCB9OworICAgICAgICBmbG9hdCBtIHsgMCB9OworICAgICAgICBmbG9hdCB5IHsgMCB9Owor
ICAgICAgICBmbG9hdCBrIHsgMCB9OworICAgICAgICBmbG9hdCBhIHsgMCB9OwogICAgIH07CiAK
LSAgICBDb2xvciBjdXJyZW50Q29sb3IoSFRNTENhbnZhc0VsZW1lbnQqKTsKLSAgICBDb2xvciBw
YXJzZUNvbG9yT3JDdXJyZW50Q29sb3IoY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZywgSFRNTENh
bnZhc0VsZW1lbnQqKTsKLQotICAgIGlubGluZSBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoKQot
ICAgICAgICA6IG1fdHlwZShJbnZhbGlkKQotICAgIHsKLSAgICB9Ci0KLSAgICBpbmxpbmUgQ2Fu
dmFzR3JhZGllbnQqIENhbnZhc1N0eWxlOjpjYW52YXNHcmFkaWVudCgpIGNvbnN0Ci0gICAgewot
ICAgICAgICBpZiAobV90eXBlID09IEdyYWRpZW50KQotICAgICAgICAgICAgcmV0dXJuIG1fZ3Jh
ZGllbnQ7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGlubGluZSBDYW52YXNQYXR0
ZXJuKiBDYW52YXNTdHlsZTo6Y2FudmFzUGF0dGVybigpIGNvbnN0Ci0gICAgewotICAgICAgICBp
ZiAobV90eXBlID09IEltYWdlUGF0dGVybikKLSAgICAgICAgICAgIHJldHVybiBtX3BhdHRlcm47
Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGlubGluZSBTdHJpbmcgQ2FudmFzU3R5
bGU6OmNvbG9yKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gUkdCQSB8
fCBtX3R5cGUgPT0gQ01ZS0EpOwotICAgICAgICBpZiAobV90eXBlID09IFJHQkEpCi0gICAgICAg
ICAgICByZXR1cm4gbV9jb2xvci5zZXJpYWxpemVkKCk7Ci0gICAgICAgIHJldHVybiBtX2NteWth
LT5jb2xvci5zZXJpYWxpemVkKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIENhbnZhc1N0eWxlOjpD
YW52YXNTdHlsZShDYW52YXNTdHlsZSYmIG90aGVyKQotICAgIHsKLSAgICAgICAgbWVtY3B5KHRo
aXMsICZvdGhlciwgc2l6ZW9mKENhbnZhc1N0eWxlKSk7Ci0gICAgICAgIG90aGVyLm1fdHlwZSA9
IEludmFsaWQ7Ci0gICAgfQotCi0gICAgaW5saW5lIENhbnZhc1N0eWxlJiBDYW52YXNTdHlsZTo6
b3BlcmF0b3I9KENhbnZhc1N0eWxlJiYgb3RoZXIpCi0gICAgewotICAgICAgICBpZiAodGhpcyAh
PSAmb3RoZXIpIHsKLSAgICAgICAgICAgIG1lbWNweSh0aGlzLCAmb3RoZXIsIHNpemVvZihDYW52
YXNTdHlsZSkpOwotICAgICAgICAgICAgb3RoZXIubV90eXBlID0gSW52YWxpZDsKLSAgICAgICAg
fQotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQorICAgIHN0cnVjdCBDdXJyZW50Q29sb3Ig
eworICAgICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBvdmVycmlkZUFscGhhOworICAgIH07CisK
KyAgICBDYW52YXNTdHlsZShDdXJyZW50Q29sb3IpOworCisgICAgVmFyaWFudDxJbnZhbGlkLCBD
b2xvciwgQ01ZS0FDb2xvciwgUmVmUHRyPENhbnZhc0dyYWRpZW50PiwgUmVmUHRyPENhbnZhc1Bh
dHRlcm4+LCBDdXJyZW50Q29sb3I+IG1fc3R5bGU7Cit9OworCitDb2xvciBjdXJyZW50Q29sb3Io
SFRNTENhbnZhc0VsZW1lbnQqKTsKK0NvbG9yIHBhcnNlQ29sb3JPckN1cnJlbnRDb2xvcihjb25z
dCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBIVE1MQ2FudmFzRWxlbWVudCopOworCitpbmxpbmUgQ2Fu
dmFzU3R5bGU6OkNhbnZhc1N0eWxlKCkKKyAgICA6IG1fc3R5bGUoSW52YWxpZCB7IH0pCit7Cit9
CisKK2lubGluZSBDYW52YXNHcmFkaWVudCogQ2FudmFzU3R5bGU6OmNhbnZhc0dyYWRpZW50KCkg
Y29uc3QKK3sKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmUHRyPENhbnZhc0dy
YWRpZW50Pj4obV9zdHlsZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBX
VEY6OmdldDxSZWZQdHI8Q2FudmFzR3JhZGllbnQ+PihtX3N0eWxlKS5nZXQoKTsKK30KKworaW5s
aW5lIENhbnZhc1BhdHRlcm4qIENhbnZhc1N0eWxlOjpjYW52YXNQYXR0ZXJuKCkgY29uc3QKK3sK
KyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmUHRyPENhbnZhc1BhdHRlcm4+Piht
X3N0eWxlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFdURjo6Z2V0PFJl
ZlB0cjxDYW52YXNQYXR0ZXJuPj4obV9zdHlsZSkuZ2V0KCk7Cit9CisKK2lubGluZSBTdHJpbmcg
Q2FudmFzU3R5bGU6OmNvbG9yKCkgY29uc3QKK3sKKyAgICBhdXRvJiBjb2xvciA9IFdURjo6aG9s
ZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG1fc3R5bGUpID8gV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUp
IDogV1RGOjpnZXQ8Q01ZS0FDb2xvcj4obV9zdHlsZSkuY29sb3I7CisgICAgcmV0dXJuIGNvbG9y
LnNlcmlhbGl6ZWQoKTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCmluZGV4IGM4
YjEwZjdiZmJjNjgxZDhhYTg1OTU5YTNmMWUyN2Q2Mzc4ZTY5YWUuLjExMWJjM2JlNjZjNDQ4Nzg2
M2JiYjRjNjljMTRlZGNhZjMwMTkwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKQEAgLTI0LDExICsyNCwxMCBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJPRVNWZXJ0ZXhBcnJheU9iamVjdC5o
IgogCiAjaWYgRU5BQkxFKFdFQkdMKQogCi0jaW5jbHVkZSAiT0VTVmVydGV4QXJyYXlPYmplY3Qu
aCIKLQogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5n
Q29udGV4dC5oIgogCkBAIC00OSw4ICs0OCw4IEBAIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTPiBPRVNWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlVmVydGV4QXJyYXlPRVMoKQogICAg
IGlmIChtX2NvbnRleHQuaXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAotICAgIGF1dG8gb2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKG1f
Y29udGV4dCwgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6VkFPVHlwZVVzZXIpOwotICAgIG1f
Y29udGV4dC5hZGRDb250ZXh0T2JqZWN0KG9iamVjdC5wdHIoKSk7CisgICAgYXV0byBvYmplY3Qg
PSBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUobV9jb250ZXh0LCBXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTOjpUeXBlOjpVc2VyKTsKKyAgICBtX2NvbnRleHQuYWRkQ29udGV4dE9i
amVjdChvYmplY3QuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKG9iamVjdCk7CiB9CiAKQEAg
LTU4LDkgKzU3LDkgQEAgdm9pZCBPRVNWZXJ0ZXhBcnJheU9iamVjdDo6ZGVsZXRlVmVydGV4QXJy
YXlPRVMoV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyogYXJyYXkKIHsKICAgICBpZiAoIWFycmF5
T2JqZWN0IHx8IG1fY29udGV4dC5pc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsKLSAg
ICAKLSAgICBpZiAoIWFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3QoKSAmJiBhcnJheU9iamVj
dCA9PSBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQqPigmbV9jb250ZXh0KS0+bV9i
b3VuZFZlcnRleEFycmF5T2JqZWN0KQotICAgICAgICBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmlu
Z0NvbnRleHQqPigmbV9jb250ZXh0KS0+c2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdCgwKTsKKwor
ICAgIGlmICghYXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpICYmIGFycmF5T2JqZWN0ID09
IHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCY+KG1fY29udGV4dCkubV9ib3VuZFZl
cnRleEFycmF5T2JqZWN0KQorICAgICAgICBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRl
eHQmPihtX2NvbnRleHQpLnNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QobnVsbHB0cik7CiAKICAg
ICBhcnJheU9iamVjdC0+ZGVsZXRlT2JqZWN0KG1fY29udGV4dC5ncmFwaGljc0NvbnRleHQzRCgp
KTsKIH0KQEAgLTg5LDcgKzg4LDcgQEAgdm9pZCBPRVNWZXJ0ZXhBcnJheU9iamVjdDo6YmluZFZl
cnRleEFycmF5T0VTKFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMqIGFycmF5T2IKICAgICAgICAg
Y29udGV4dC5zZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KGFycmF5T2JqZWN0KTsKICAgICB9IGVs
c2UgewogICAgICAgICBleHRlbnNpb25zLmJpbmRWZXJ0ZXhBcnJheU9FUygwKTsKLSAgICAgICAg
Y29udGV4dC5zZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KDApOworICAgICAgICBjb250ZXh0LnNl
dEJvdW5kVmVydGV4QXJyYXlPYmplY3QobnVsbHB0cik7CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCmlu
ZGV4IDQ4MGEwY2E5NWI1MTgzMTIzODBjOWNlZmI4NDQ4ZjI1OTEwODE4MTcuLjc5YzEzYzJmNmQz
ZGQyYzZjZTUwN2IxYzFhNWZmNTA2ZDhmZGNiZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDEwICsyNCwxMCBA
QAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShXRUJHTCkgJiYgRU5B
QkxFKFdFQkdMMikKICNpbmNsdWRlICJXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgiCiAKKyNpZiBF
TkFCTEUoV0VCR0wyKQorCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJFWFRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCIKICNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKQEAg
LTYzLDcgKzYzLDcgQEAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6V2ViR0wyUmVuZGVyaW5nQ29u
dGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLAogewogfQogCi1XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBw
YXNzZWRDYW52YXMsIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4mJiBjb250ZXh0LCBHcmFwaGlj
c0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcykKK1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywg
UmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcyBhdHRyaWJ1dGVzKQogICAgIDogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShwYXNzZWRD
YW52YXMsIFdURk1vdmUoY29udGV4dCksIGF0dHJpYnV0ZXMpCiB7CiAgICAgaW5pdGlhbGl6ZVNo
YWRlckV4dGVuc2lvbnMoKTsKQEAgLTcyLDggKzcyLDggQEAgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFz
LAogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVWZXJ0ZXhBcnJheU9i
amVjdHMoKQogewotICAgIG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0ID0gV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdDo6Y3JlYXRlKCp0aGlzLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpWQU9UeXBl
RGVmYXVsdCk7Ci0gICAgYWRkQ29udGV4dE9iamVjdChtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVj
dC5nZXQoKSk7CisgICAgbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QgPSBXZWJHTFZlcnRleEFy
cmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OlR5cGU6OkRl
ZmF1bHQpOworICAgIGFkZENvbnRleHRPYmplY3QoKm1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0
KTsKICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9i
amVjdDsKICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSkKICAgICAgICAgaW5pdFZlcnRleEF0
dHJpYjAoKTsKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmNvcHlCdWZmZXJTdWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVtIHdyaQogICAg
IH0KIAogICAgIG1fY29udGV4dC0+bW92ZUVycm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCk7Ci0j
aWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgbV9jb250ZXh0LT5jb3B5QnVmZmVyU3ViRGF0YShyZWFkVGFyZ2V0LCB3cml0ZVRhcmdldCwg
Y2hlY2tlZFJlYWRPZmZzZXQudW5zYWZlR2V0KCksIGNoZWNrZWRXcml0ZU9mZnNldC51bnNhZmVH
ZXQoKSwgY2hlY2tlZFNpemUudW5zYWZlR2V0KCkpOwogI2VuZGlmCiAgICAgaWYgKG1fY29udGV4
dC0+bW92ZUVycm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCkpIHsKQEAgLTI3Miw3ICsyNzIsNyBA
QCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEJ1ZmZlclN1YkRhdGEoR0MzRGVudW0g
dGFyZ2V0LCBsb25nIGxvbmcgc3JjQnl0ZQogICAgIH0KIAogICAgIG1fY29udGV4dC0+bW92ZUVy
cm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCk7Ci0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9S
TShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gRklYTUU6IENvYWxlc2NlIG11bHRp
cGxlIGdldEJ1ZmZlclN1YkRhdGEoKSBjYWxscyB0byB1c2UgYSBzaW5nbGUgbWFwKCkgY2FsbAog
ICAgIHZvaWQqIHB0ciA9IG1fY29udGV4dC0+bWFwQnVmZmVyUmFuZ2UodGFyZ2V0LCBjaGVja2Vk
U3JjQnl0ZU9mZnNldC51bnNhZmVHZXQoKSwgc3RhdGljX2Nhc3Q8R0MzRHNpemVpcHRyPihjaGVj
a2VkQ29weUxlbmd0aFB0ci51bnNhZmVHZXQoKSAqIGNoZWNrZWRFbGVtZW50U2l6ZS51bnNhZmVH
ZXQoKSksIEdyYXBoaWNzQ29udGV4dDNEOjpNQVBfUkVBRF9CSVQpOwogICAgIG1lbWNweShzdGF0
aWNfY2FzdDxjaGFyKj4oZHN0RGF0YS0+YmFzZUFkZHJlc3MoKSkgKyBkc3REYXRhLT5ieXRlT2Zm
c2V0KCkgKyBkc3RPZmZzZXQgKiBlbGVtZW50U2l6ZSwgcHRyLCBjb3B5TGVuZ3RoICogZWxlbWVu
dFNpemUpOwpAQCAtMjkwLDE2ICsyOTAsMTYgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
OjpmcmFtZWJ1ZmZlclRleHR1cmVMYXllcihHQzNEZW51bSwgR0MzRGVudW0sIEdDM0R1aW4KIHsK
IH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEludGVybmFsZm9y
bWF0UGFyYW1ldGVyKEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGVudW0pCitXZWJHTEFueSBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlcihHQzNEZW51bSwg
R0MzRGVudW0sIEdDM0RlbnVtKQogewotICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjppbnZhbGlk
YXRlRnJhbWVidWZmZXIoR0MzRGVudW0sIFZlY3RvcjxHQzNEZW51bT4pCit2b2lkIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OmludmFsaWRhdGVGcmFtZWJ1ZmZlcihHQzNEZW51bSwgY29uc3QgVmVj
dG9yPEdDM0RlbnVtPiYpCiB7CiB9CiAKLXZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aW52
YWxpZGF0ZVN1YkZyYW1lYnVmZmVyKEdDM0RlbnVtLCBWZWN0b3I8R0MzRGVudW0+LCBHQzNEaW50
LCBHQzNEaW50LCBHQzNEc2l6ZWksIEdDM0RzaXplaSkKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6aW52YWxpZGF0ZVN1YkZyYW1lYnVmZmVyKEdDM0RlbnVtLCBjb25zdCBWZWN0b3I8R0Mz
RGVudW0+JiwgR0MzRGludCwgR0MzRGludCwgR0MzRHNpemVpLCBHQzNEc2l6ZWkpCiB7CiB9CiAK
QEAgLTQwNyw3ICs0MDcsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnRleFN0b3Jh
Z2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDMwogICAgIGlmIChpc0Nv
bnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkdMVGV4dHVy
ZSogdGV4dHVyZSA9IHZhbGlkYXRlVGV4dHVyZUJpbmRpbmcoInRleFN0b3JhZ2UyRCIsIHRhcmdl
dCwgZmFsc2UpOworICAgIGF1dG8qIHRleHR1cmUgPSB2YWxpZGF0ZVRleHR1cmVCaW5kaW5nKCJ0
ZXhTdG9yYWdlMkQiLCB0YXJnZXQsIGZhbHNlKTsKICAgICBpZiAoIXRleHR1cmUpCiAgICAgICAg
IHJldHVybjsKIApAQCAtNTAyLDcgKzUwMiw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Y29tcHJlc3NlZFRleFN1YkltYWdlM0QoR0MzRGVudW0sIEdDM0RpbnQsIEdDM0RpbnQsCiB7
CiB9CiAKLUdDM0RpbnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhZ0RhdGFMb2NhdGlv
bihXZWJHTFByb2dyYW0qLCBTdHJpbmcpCitHQzNEaW50IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmdldEZyYWdEYXRhTG9jYXRpb24oV2ViR0xQcm9ncmFtKiwgY29uc3QgU3RyaW5nJikKIHsKICAg
ICByZXR1cm4gMDsKIH0KQEAgLTYzMyw3ICs2MzMsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmRyYXdSYW5nZUVsZW1lbnRzKEdDM0RlbnVtLCBHQzNEdWludCwgR0MzRHVpbnQsIEdD
MwogewogfQogCi12b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRyYXdCdWZmZXJzKFZlY3Rv
cjxHQzNEZW51bT4gYnVmZmVycykKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZHJhd0J1
ZmZlcnMoY29uc3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmZmVycykKIHsKICAgICBpZiAoaXNDb250
ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm47CkBAIC03ODIsOSArNzgyLDkgQEAgUmVmUHRyPFdl
YkdMUXVlcnk+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5KEdDM0RlbnVtLCBHQzNE
ZW51bSkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdMUXVlcnkqLCBHQzNEZW51bSkKK1dl
YkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdMUXVl
cnkqLCBHQzNEZW51bSkKIHsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKIFJlZlB0cjxXZWJHTFNhbXBsZXI+IFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmNyZWF0ZVNhbXBsZXIoKQpAQCAtODEzLDkgKzgxMyw5IEBAIHZvaWQgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6c2FtcGxlclBhcmFtZXRlcmYoV2ViR0xTYW1wbGVyKiwgR0MzRGVudW0sIEdD
M0RmbG9hCiB7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRT
YW1wbGVyUGFyYW1ldGVyKFdlYkdMU2FtcGxlciosIEdDM0RlbnVtKQorV2ViR0xBbnkgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6Z2V0U2FtcGxlclBhcmFtZXRlcihXZWJHTFNhbXBsZXIqLCBHQzNE
ZW51bSkKIHsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
CiB9CiAKIFJlZlB0cjxXZWJHTFN5bmM+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmZlbmNlU3lu
YyhHQzNEZW51bSwgR0MzRGJpdGZpZWxkKQpAQCAtODQxLDkgKzg0MSw5IEBAIHZvaWQgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6d2FpdFN5bmMoV2ViR0xTeW5jKiwgR0MzRGJpdGZpZWxkLCBHQzNE
dWludDY0KQogewogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0
U3luY1BhcmFtZXRlcihXZWJHTFN5bmMqLCBHQzNEZW51bSkKK1dlYkdMQW55IFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmdldFN5bmNQYXJhbWV0ZXIoV2ViR0xTeW5jKiwgR0MzRGVudW0pCiB7Ci0g
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBSZWZQ
dHI8V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRl
VHJhbnNmb3JtRmVlZGJhY2soKQpAQCAtODcyLDcgKzg3Miw3IEBAIHZvaWQgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6ZW5kVHJhbnNmb3JtRmVlZGJhY2soKQogewogfQogCi12b2lkIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OnRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MoV2ViR0xQcm9ncmFtKiwg
VmVjdG9yPFN0cmluZz4sIEdDM0RlbnVtKQordm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp0
cmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiwgR0MzRGVudW0pCiB7CiB9CiAKQEAgLTg5Nyw3ICs4OTcsNyBAQCB2b2lkIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OmJpbmRCdWZmZXJSYW5nZShHQzNEZW51bSwgR0MzRHVpbnQsIFdlYkdM
QnVmZmVyKiwgRwogewogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
Z2V0SW5kZXhlZFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50KQorV2ViR0xBbnkg
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcihHQzNEZW51bSB0YXJn
ZXQsIEdDM0R1aW50KQogewogICAgIHN3aXRjaCAodGFyZ2V0KSB7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HOgpAQCAtOTA3LDE2
ICs5MDcsMTQgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEluZGV4
ZWRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWkKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpVTklGT1JNX0JVRkZFUl9TSVpFOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlVOSUZPUk1fQlVGRkVSX1NUQVJUOgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGlj
c0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0SW5kZXhlZFBhcmFtZXRlciIsICJwYXJhbWV0
ZXIgbmFtZSBub3QgeWV0IHN1cHBvcnRlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRJbmRleGVk
UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygpOwotICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CiB9CiAKLVVpbnQzMkFycmF5KiBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtSW5kaWNlcyhXZWJHTFByb2dyYW0qLCBWZWN0b3I8
U3RyaW5nPikKK1VpbnQzMkFycmF5KiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3Jt
SW5kaWNlcyhXZWJHTFByb2dyYW0qLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7CiAgICAgcmV0
dXJuIG51bGxwdHI7CiB9CkBAIC05MjYsMTkgKzkyNCwxOSBAQCBJbnQzMkFycmF5KiBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtcyhXZWJHTFByb2dyYW0qLCBSZWZQdHI8
VWludAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1HQzNEdWludCBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpnZXRVbmlmb3JtQmxvY2tJbmRleChXZWJHTFByb2dyYW0qLCBTdHJpbmcpCitHQzNE
dWludCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtQmxvY2tJbmRleChXZWJHTFBy
b2dyYW0qLCBjb25zdCBTdHJpbmcmKQogewogICAgIHJldHVybiAwOwogfQogCi1XZWJHTEdldElu
Zm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVy
KFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50LCBHQzNEZW51bSkKK1dlYkdMQW55IFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihXZWJHTFByb2dyYW0q
LCBHQzNEdWludCwgR0MzRGVudW0pCiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAg
IHJldHVybiBudWxscHRyOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShXZWJHTFByb2dyYW0qLCBHQzNEdWludCkKK1dl
YkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUo
V2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQpCiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwor
ICAgIHJldHVybiBudWxscHRyOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVu
aWZvcm1CbG9ja0JpbmRpbmcoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQsIEdDM0R1aW50KQpAQCAt
OTUwLDggKzk0OCw4IEBAIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0OjpjcmVhdGVWZXJ0ZXhBcnJheSgpCiAgICAgaWYgKGlzQ29udGV4dExvc3Qo
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgYXV0byBvYmplY3QgPSBXZWJH
TFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6
OlZBT1R5cGVVc2VyKTsKLSAgICBhZGRDb250ZXh0T2JqZWN0KG9iamVjdC5wdHIoKSk7CisgICAg
YXV0byBvYmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdM
VmVydGV4QXJyYXlPYmplY3Q6OlR5cGU6OlVzZXIpOworICAgIGFkZENvbnRleHRPYmplY3Qob2Jq
ZWN0LmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92ZShvYmplY3QpOwogfQogCkBAIC05NjQsNyAr
OTYyLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVWZXJ0ZXhBcnJheShX
ZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamUKICAgICAgICAgcmV0dXJuOwogICAgIAog
ICAgIGlmICghYXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpICYmIGFycmF5T2JqZWN0ID09
IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCkKLSAgICAgICAgc2V0Qm91bmRWZXJ0ZXhBcnJheU9i
amVjdCgwKTsKKyAgICAgICAgc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChudWxscHRyKTsKICAg
ICAKICAgICBhcnJheU9iamVjdC0+ZGVsZXRlT2JqZWN0KGdyYXBoaWNzQ29udGV4dDNEKCkpOwog
fQpAQCAtOTcyLDEwICs5NzAsMTAgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxl
dGVWZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamUKIEdDM0Rib29s
ZWFuIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmlzVmVydGV4QXJyYXkoV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdCogYXJyYXlPYmplY3QpCiB7CiAgICAgaWYgKCFhcnJheU9iamVjdCB8fCBpc0NvbnRl
eHRMb3N0KCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
CiAgICAgaWYgKCFhcnJheU9iamVjdC0+aGFzRXZlckJlZW5Cb3VuZCgpIHx8ICFhcnJheU9iamVj
dC0+dmFsaWRhdGUoMCwgKnRoaXMpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIAogICAgIHJldHVybiBtX2NvbnRleHQtPmlzVmVydGV4QXJyYXkoYXJyYXlP
YmplY3QtPm9iamVjdCgpKTsKIH0KQEAgLTk5Niw3ICs5OTQsNyBAQCB2b2lkIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmJpbmRWZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJh
eU9iamVjdAogICAgICAgICBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KGFycmF5T2JqZWN0KTsK
ICAgICB9IGVsc2UgewogICAgICAgICBtX2NvbnRleHQtPmJpbmRWZXJ0ZXhBcnJheShtX2RlZmF1
bHRWZXJ0ZXhBcnJheU9iamVjdC0+b2JqZWN0KCkpOwotICAgICAgICBzZXRCb3VuZFZlcnRleEFy
cmF5T2JqZWN0KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0KTsKKyAgICAgICAgc2V0Qm91bmRW
ZXJ0ZXhBcnJheU9iamVjdChtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKSk7CiAgICAg
fQogfQogCkBAIC0xMDA1LDQzICsxMDAzLDM4IEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
aWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0ZXJfYW5p
c290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfRVhUX3Rl
eHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkg
eworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0
ZXJfYW5pc290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRf
RVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpIHsKICAgICAgICAgaWYgKCFtX2V4dFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGlj
Iik7Ci0gICAgICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IHN0ZDo6bWFr
ZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcyk7CisgICAgICAgICAg
ICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lv
bigiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikKKyAgICAgICAgICAgICAgICA/
IHN0ZDo6bWFrZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcykgOiBu
dWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dFRleHR1cmVGaWx0ZXJBbmlz
b3Ryb3BpYy5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFt
ZSwgIk9FU190ZXh0dXJlX2Zsb2F0IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0IikpIHsKKyAgICBpZiAoZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxvYXQiKSkgewogICAgICAgICBp
ZiAoIW1fb2VzVGV4dHVyZUZsb2F0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVu
c2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpOwotICAgICAgICAg
ICAgbV9vZXNUZXh0dXJlRmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdD4o
KnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXQgPSBlbmFibGVTdXBwb3J0ZWRF
eHRlbnNpb24oIkdMX09FU190ZXh0dXJlX2Zsb2F0IikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6
bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0PigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9
CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVGbG9hdC5nZXQoKTsKICAgICB9Ci0gICAgaWYg
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIp
Ci0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNf
dGV4dHVyZV9mbG9hdF9saW5lYXIiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkgewogICAgICAgICBpZiAoIW1fb2Vz
VGV4dHVyZUZsb2F0TGluZWFyKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKTsKLSAgICAg
ICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0
dXJlRmxvYXRMaW5lYXI+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0TGlu
ZWFyID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5l
YXIiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXRM
aW5lYXI+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2Vz
VGV4dHVyZUZsb2F0TGluZWFyLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpCi0gICAgICAgICYmIG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0
IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVf
aGFsZl9mbG9hdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlSGFsZkZsb2F0KSB7Ci0g
ICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9P
RVNfdGV4dHVyZV9oYWxmX2Zsb2F0Iik7Ci0gICAgICAgICAgICBtX29lc1RleHR1cmVIYWxmRmxv
YXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+KCp0aGlzKTsKKyAgICAg
ICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdCA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigi
R0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2Vf
dW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUhhbGZGbG9hdC5nZXQoKTsKICAgICB9Ci0gICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRf
bGluZWFyIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMo
IkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikpIHsKKyAgICBpZiAoZXF1YWxJZ25v
cmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSkgewog
ICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhcikgewotICAgICAgICAgICAg
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVf
aGFsZl9mbG9hdF9saW5lYXIiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdExp
bmVhciA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcj4oKnRoaXMp
OworICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyID0gZW5hYmxlU3VwcG9y
dGVkRXh0ZW5zaW9uKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpCisgICAgICAg
ICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXI+KCp0
aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUhh
bGZGbG9hdExpbmVhci5nZXQoKTsKICAgICB9CkBAIC0xMDUwLDI4ICsxMDQzLDMyIEBAIFdlYkdM
RXh0ZW5zaW9uKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3Ry
aW5nJiBuYW1lKQogICAgICAgICAgICAgbV93ZWJnbExvc2VDb250ZXh0ID0gc3RkOjptYWtlX3Vu
aXF1ZTxXZWJHTExvc2VDb250ZXh0PigqdGhpcyk7CiAgICAgICAgIHJldHVybiBtX3dlYmdsTG9z
ZUNvbnRleHQuZ2V0KCk7CiAgICAgfQotICAgIGlmICgoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShu
YW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKSkKLSAgICAgICAgJiYg
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAgICBp
ZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQykKLSAgICAgICAgICAgIG1fd2ViZ2xDb21w
cmVzc2VkVGV4dHVyZUFUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQz4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJL
SVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlQVRDKSB7CisgICAgICAgICAgICBpZiAoV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkKKyAgICAgICAgICAgICAgICBtX3dlYmdsQ29t
cHJlc3NlZFRleHR1cmVBVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVBVEM+KCp0aGlzKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNz
ZWRUZXh0dXJlQVRDLmdldCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSkKLSAgICAg
ICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0g
ICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMpCi0gICAgICAgICAgICBt
X3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21w
cmVzc2VkVGV4dHVyZVBWUlRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSkgeworICAg
ICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKSB7CisgICAgICAgICAgICBt
X3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJU
Qzo6c3VwcG9ydGVkKCp0aGlzKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM+KCp0aGlzKSA6IG51bGxwdHI7CisgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmdldCgpOwogICAg
IH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfY29tcHJlc3Nl
ZF90ZXh0dXJlX3MzdGMiKQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6
c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVy
ZVMzVEMpCi0gICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDID0gc3RkOjpt
YWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQz4oKnRoaXMpOworICAgIGlmIChl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0
YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQykgeworICAg
ICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQyA9IFdlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDPigqdGhpcykgOiBudWxscHRyOworICAg
ICAgICB9CiAgICAgICAgIHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDLmdldCgp
OwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVw
dGhfdGV4dHVyZSIpCi0gICAgICAgICYmIFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoKmdy
YXBoaWNzQ29udGV4dDNEKCkpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERlcHRoVGV4dHVyZSkK
LSAgICAgICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdM
RGVwdGhUZXh0dXJlPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFt
ZSwgIldFQkdMX2RlcHRoX3RleHR1cmUiKSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xEZXB0aFRl
eHR1cmUpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUgPSBXZWJHTERlcHRoVGV4
dHVyZTo6c3VwcG9ydGVkKCpncmFwaGljc0NvbnRleHQzRCgpKQorICAgICAgICAgICAgICAgID8g
c3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlcHRoVGV4dHVyZT4oKnRoaXMpIDogbnVsbHB0cjsKKyAg
ICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbERlcHRoVGV4dHVyZS5nZXQoKTsKICAgICB9
CiAgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlYnVnX3JlbmRl
cmVyX2luZm8iKSkgewpAQCAtMTA3OSwxMCArMTA3NiwxMSBAQCBXZWJHTEV4dGVuc2lvbiogV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAg
ICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8V2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mbz4oKnRoaXMpOwogICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVn
UmVuZGVyZXJJbmZvLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShuYW1lLCAiV0VCR0xfZGVidWdfc2hhZGVycyIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0
RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2Ui
KSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1NoYWRlcnMpCi0gICAgICAgICAgICBtX3dl
YmdsRGVidWdTaGFkZXJzID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnU2hhZGVycz4oKnRo
aXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19z
aGFkZXJzIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdTaGFkZXJzKSB7CisgICAgICAg
ICAgICBtX3dlYmdsRGVidWdTaGFkZXJzID0gbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3Vw
cG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIg
fSkKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1Z1NoYWRlcnM+
KCp0aGlzKSA6IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZWJ1
Z1NoYWRlcnMuZ2V0KCk7CiAgICAgfQogCkBAIC0xMDk2LDkwICsxMDk0LDkwIEBAIFZlY3RvcjxT
dHJpbmc+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnMoKQog
ICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pCiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09F
U190ZXh0dXJlX2Zsb2F0IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2Zs
b2F0Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9P
RVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3Rl
eHR1cmVfZmxvYXRfbGluZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpCi0gICAgICAgIHJlc3VsdC5h
cHBlbmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikp
Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik7
Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfdGV4
dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lU
X0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOworICAgIGF1dG8mIGV4dGVuc2lvbnMg
PSBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0
cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfZmxvYXQiIH0pKQorICAgICAgICByZXN1
bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9mbG9hdCIgfSk7CisgICAgaWYg
KGV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2Zsb2F0
X2xpbmVhciIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU190
ZXh0dXJlX2Zsb2F0X2xpbmVhciIgfSk7CisgICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMoQVND
SUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pKQorICAgICAgICByZXN1
bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiB9KTsKKyAg
ICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVf
aGFsZl9mbG9hdF9saW5lYXIiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJh
bCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIgfSk7CisgICAgaWYgKGV4dGVuc2lv
bnMuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ry
b3BpYyIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQktJVF9F
WFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pOwogICAgIGlmIChXZWJHTENvbXByZXNz
ZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJX
RUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpOworICAgICAgICByZXN1bHQuYXBw
ZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIg
fSk7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0aGlz
KSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVy
ZV9wdnJ0YyIpOworICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJLSVRf
V0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIiB9KTsKICAgICBpZiAoV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhpcykpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQo
IldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQo
QVNDSUlMaXRlcmFsIHsgIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIiB9KTsKICAgICBp
ZiAoV2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqZ3JhcGhpY3NDb250ZXh0M0QoKSkpCi0g
ICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlcHRoX3RleHR1cmUiKTsKLSAgICByZXN1bHQu
YXBwZW5kKCJXRUJHTF9sb3NlX2NvbnRleHQiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuc3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIpKQot
ICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19zaGFkZXJzIik7Ci0gICAgcmVzdWx0
LmFwcGVuZCgiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpOworICAgICAgICByZXN1bHQuYXBw
ZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9kZXB0aF90ZXh0dXJlIiB9KTsKKyAgICByZXN1bHQu
YXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9sb3NlX2NvbnRleHQiIH0pOworICAgIGlmIChl
eHRlbnNpb25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9BTkdMRV90cmFuc2xhdGVkX3No
YWRlcl9zb3VyY2UiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJX
RUJHTF9kZWJ1Z19zaGFkZXJzIiB9KTsKKyAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7
ICJXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIiB9KTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBH
QzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFj
aG1lbnQsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5n
KCkgfHwgIXZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycygiZ2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyIiwgdGFyZ2V0LCBhdHRhY2htZW50KSkKLSAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBpZiAo
IW1fZnJhbWVidWZmZXJCaW5kaW5nIHx8ICFtX2ZyYW1lYnVmZmVyQmluZGluZy0+b2JqZWN0KCkp
IHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
T1BFUkFUSU9OLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgIm5vIGZyYW1l
YnVmZmVyIGJvdW5kIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIFdlYkdMU2hhcmVkT2JqZWN0KiBvYmpl
Y3QgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVudE9iamVjdChhdHRhY2htZW50
KTsKKyAgICBhdXRvKiBvYmplY3QgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVu
dE9iamVjdChhdHRhY2htZW50KTsKICAgICBpZiAoIW9iamVjdCkgewogICAgICAgICBpZiAocG5h
bWUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZ
UEUpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29udGV4dDNEOjpO
T05FKTsKLSAgICAgICAgLy8gT3BlbkdMIEVTIDIuMCBzcGVjaWZpZXMgSU5WQUxJRF9FTlVNIGlu
IHRoaXMgY2FzZSwgd2hpbGUgZGVza3RvcCBHTAotICAgICAgICAvLyBzcGVjaWZpZXMgSU5WQUxJ
RF9PUEVSQVRJT04uCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdy
YXBoaWNzQ29udGV4dDNEOjpOT05FKTsKKyAgICAgICAgLy8gT3BlbkdMIEVTIDIuMCBzcGVjaWZp
ZXMgSU5WQUxJRF9FTlVNIGluIHRoaXMgY2FzZSwgd2hpbGUgZGVza3RvcCBHTCBzcGVjaWZpZXMg
SU5WQUxJRF9PUEVSQVRJT04uCiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIi
LCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICAKLSAgICBBU1NFUlQob2Jq
ZWN0LT5pc1RleHR1cmUoKSB8fCBvYmplY3QtPmlzUmVuZGVyYnVmZmVyKCkpOwogICAgIGlmIChv
YmplY3QtPmlzVGV4dHVyZSgpKSB7CiAgICAgICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQ
RToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlRF
WFRVUkUpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihHcmFwaGlj
c0NvbnRleHQzRDo6VEVYVFVSRSk7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZS
QU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUU6Ci0gICAgICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJlKj4ob2JqZWN0KSk7CisgICAg
ICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihyZWludGVycHJldF9jYXN0PFdlYkdMVGV4dHVyZSY+
KCpvYmplY3QpKTsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9URVhUVVJFX0xFVkVMOgogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFDRToKICAgICAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNP
RElORzogewogICAgICAgICAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAgICAgICAgICAgICBtX2Nv
bnRleHQtPmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2KHRhcmdldCwgYXR0YWNo
bWVudCwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZh
bHVlKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgfQogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklO
VkFMSURfRU5VTSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZhbGlk
IHBhcmFtZXRlciBuYW1lIGZvciB0ZXh0dXJlIGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAg
ICB9CiAgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG9iamVjdC0+aXNSZW5kZXJidWZmZXIo
KSk7CiAgICAgICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRToKLSAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUik7CisgICAg
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpS
RU5ERVJCVUZGRVIpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZF
Ul9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhyZWludGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyKj4ob2JqZWN0KSk7CisgICAgICAg
ICAgICByZXR1cm4gbWFrZVJlZlB0cihyZWludGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVy
Jj4oKm9iamVjdCkpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZF
Ul9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HIDogewotICAgICAgICAgICAgV2ViR0xSZW5kZXJi
dWZmZXIqIHJlbmRlckJ1ZmZlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5kZXJidWZmZXIq
PihvYmplY3QpOwotICAgICAgICAgICAgR0MzRGVudW0gcmVuZGVyQnVmZmVyRm9ybWF0ID0gcmVu
ZGVyQnVmZmVyLT5nZXRJbnRlcm5hbEZvcm1hdCgpOwotICAgICAgICAgICAgaWYgKHJlbmRlckJ1
ZmZlckZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6U1JHQjhfQUxQSEE4Ci0gICAgICAgICAg
ICAgICAgfHwgcmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVT
U0VEX1NSR0I4X0VUQzIKLSAgICAgICAgICAgICAgICB8fCByZW5kZXJCdWZmZXJGb3JtYXQgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJfRUFDCi0gICAg
ICAgICAgICAgICAgfHwgcmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpD
T01QUkVTU0VEX1NSR0I4X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMikgewotICAgICAgICAgICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlNSR0IpOworICAgICAg
ICAgICAgYXV0byYgcmVuZGVyQnVmZmVyID0gcmVpbnRlcnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1
ZmZlciY+KCpvYmplY3QpOworICAgICAgICAgICAgYXV0byBmb3JtYXQgPSByZW5kZXJCdWZmZXIu
Z2V0SW50ZXJuYWxGb3JtYXQoKTsKKyAgICAgICAgICAgIGlmIChmb3JtYXQgPT0gR3JhcGhpY3ND
b250ZXh0M0Q6OlNSR0I4X0FMUEhBOAorICAgICAgICAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFw
aGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9TUkdCOF9FVEMyCisgICAgICAgICAgICAgICAgfHwg
Zm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9FVEMy
X0VBQworICAgICAgICAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6Q09N
UFJFU1NFRF9TUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIpIHsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCKTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3ND
b250ZXh0M0Q6OkxJTkVBUik7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5W
QUxJRF9FTlVNLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQg
cGFyYW1ldGVyIG5hbWUgZm9yIHJlbmRlcmJ1ZmZlciBhdHRhY2htZW50Iik7Ci0gICAgICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICAgICAgfQogICAgIH0KIH0KQEAgLTExOTEsMTkgKzExODksMTYgQEAgYm9vbCBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUZyYW1lYnVmZmVyRnVuY1BhcmFtZXRlcnMoY29uc3QgY2hh
ciogZnVuY3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBzd2l0Y2ggKGF0dGFj
aG1lbnQpIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMDoK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5UOgogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQVRUQUNITUVOVDoKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAgIGJyZWFrOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgotICAgICAgICBpZiAoYXR0YWNobWVudCA+
IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMAotICAgICAgICAgICAgJiYgYXR0
YWNobWVudCA8IHN0YXRpY19jYXN0PEdDM0RlbnVtPihHcmFwaGljc0NvbnRleHQzRDo6Q09MT1Jf
QVRUQUNITUVOVDAgKyBnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkpKQotICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGlmIChhdHRhY2htZW50ID49IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9B
VFRBQ0hNRU5UMCAmJiBhdHRhY2htZW50IDwgc3RhdGljX2Nhc3Q8R0MzRGVudW0+KEdyYXBoaWNz
Q29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCArIGdldE1heENvbG9yQXR0YWNobWVudHMoKSkp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCBhdHRh
Y2htZW50Iik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIHRydWU7
CiB9CiAKIEdDM0RpbnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0TWF4RHJhd0J1ZmZlcnMo
KQpAQCAtMTM5NSw3ICsxMzkwLDcgQEAgR0MzRGVudW0gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
YmFzZUludGVybmFsRm9ybWF0RnJvbUludGVybmFsRm9ybWF0KEdDM0RlbnVtIGkKIGJvb2wgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6aXNJbnRlZ2VyRm9ybWF0KEdDM0RlbnVtIGludGVybmFsZm9y
bWF0KQogewogICAgIC8vIEZJWE1FOiBiYXNlSW50ZXJuYWxGb3JtYXRGcm9tSW50ZXJuYWxGb3Jt
YXQoKSBuZXZlciByZXR1cm5zIGFueSBvZiB0aGVzZSBlbnVtcy4KLSAgICAvLyBDdXJyZW50bHks
IFRoaXMgZnVuY3Rpb24gZXJyb25lb3VzbHkgYWx3YXlzIHJldHVybnMgZmFsc2UuCisgICAgLy8g
QmVjYXVzZSBvZiB0aGF0LCB0aGlzIGZ1bmN0aW9uIGVycm9uZW91c2x5IGFsd2F5cyByZXR1cm5z
IGZhbHNlIQogICAgIHN3aXRjaCAoYmFzZUludGVybmFsRm9ybWF0RnJvbUludGVybmFsRm9ybWF0
KGludGVybmFsZm9ybWF0KSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFRF9JTlRF
R0VSOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHX0lOVEVHRVI6CkBAIC0xNDA2LDEx
ICsxNDAxLDEwIEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNJbnRlZ2VyRm9ybWF0
KEdDM0RlbnVtIGludGVybmFsZm9ybWF0KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotV2ViR0xH
ZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFt
ZSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51
bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgY29uc3QgaW50IGludFplcm8gPSAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6QUNUSVZFX1RFWFRVUkU6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZElu
dFBhcmFtZXRlcihwbmFtZSk7CkBAIC0xNDIxLDcgKzE0MTUsNyBAQCBXZWJHTEdldEluZm8gV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBX0JJVFM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQ
YXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZF
Ul9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fYm91bmRBcnJheUJ1ZmZl
ci5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX2JvdW5kQXJyYXlCdWZmZXI7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6QkxFTkQ6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1l
dGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORF9DT0xPUjoKQEAg
LTE0NDUsMTYgKzE0MzksMTYgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpDT0xPUl9XUklURU1BU0s6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuQXJyYXlQYXJhbWV0
ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfVEVYVFVS
RV9GT1JNQVRTOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDMy
QXJyYXk+KFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMuZGF0
YSgpLCBtX2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5zaXplKCkpKSk7CisgICAgICAgIHJldHVy
biBVaW50MzJBcnJheTo6Y3JlYXRlKG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLmRhdGEoKSwg
bV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMuc2l6ZSgpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpDVUxMX0ZBQ0U6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBu
YW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVUxMX0ZBQ0VfTU9ERToKICAgICAg
ICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpDVVJSRU5UX1BST0dSQU06Ci0gICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8obV9jdXJyZW50UHJvZ3JhbS5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX2N1cnJlbnRQcm9n
cmFtOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JJVFM6CiAgICAgICAgIGlm
ICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgJiYgIW1fYXR0cmlidXRlcy5kZXB0aCkKLSAgICAgICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oaW50WmVybyk7CisgICAgICAgICAgICByZXR1cm4gMDsK
ICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6REVQVEhfQ0xFQVJfVkFMVUU6CiAgICAgICAgIHJldHVybiBnZXRGbG9hdFBh
cmFtZXRlcihwbmFtZSk7CkBAIC0xNDY5LDkgKzE0NjMsOSBAQCBXZWJHTEdldEluZm8gV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRJVEhFUjoKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJh
bWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlf
QlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9ib3VuZFZlcnRl
eEFycmF5T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKSk7CisgICAgICAgIHJldHVybiBt
YWtlUmVmUHRyKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVudEFycmF5QnVmZmVy
KCkpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0JJTkRJTkc6Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9mcmFtZWJ1ZmZlckJpbmRpbmcuZ2V0KCkpOwor
ICAgICAgICByZXR1cm4gbV9mcmFtZWJ1ZmZlckJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RlJPTlRfRkFDRToKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1l
dGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpHRU5FUkFURV9NSVBNQVBf
SElOVDoKQEAgLTE1MTksOSArMTUxMyw5IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UkVEX0JJVFM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUp
OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9CSU5ESU5HOgotICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fcmVuZGVyYnVmZmVyQmluZGluZy5nZXQoKSk7Cisg
ICAgICAgIHJldHVybiBtX3JlbmRlcmJ1ZmZlckJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UkVOREVSRVI6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oU3RyaW5nKCJX
ZWJLaXQgV2ViR0wiKSk7CisgICAgICAgIHJldHVybiBTdHJpbmcgeyBBU0NJSUxpdGVyYWwgeyAi
V2ViS2l0IFdlYkdMIiB9IH07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0FNUExFX0JV
RkZFUlM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQ6CkBAIC0xNTM1LDcgKzE1
MjksNyBAQCBXZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVy
KEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNDSVNTT1JfVEVT
VDoKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTjoKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygiV2ViR0wgR0xTTCBFUyAxLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0
cmluZyhHcmFwaGljc0NvbnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OKSArICIpIik7
CisgICAgICAgIHJldHVybiAiV2ViR0wgR0xTTCBFUyAxLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0
cmluZyhHcmFwaGljc0NvbnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OKSArICIpIjsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JBQ0tfRkFJTDoKICAgICAgICAg
cmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpTVEVOQ0lMX0JBQ0tfRlVOQzoKQEAgLTE1NTIsNyArMTU0Niw3IEBAIFdlYkdM
R2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5h
bWUpCiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9CSVRTOgogICAgICAgICBpZiAoIW1fZnJh
bWVidWZmZXJCaW5kaW5nICYmICFtX2F0dHJpYnV0ZXMuc3RlbmNpbCkKLSAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oaW50WmVybyk7CisgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6U1RFTkNJTF9DTEVBUl9WQUxVRToKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRl
cihwbmFtZSk7CkBAIC0xNTc1LDM4ICsxNTY5LDM4IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6U1VCUElYRUxfQklUUzoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFt
ZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5H
XzJEOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdGV4dHVyZVVuaXRzW21fYWN0aXZl
VGV4dHVyZVVuaXRdLnRleHR1cmUyREJpbmRpbmcuZ2V0KCkpOworICAgICAgICByZXR1cm4gbV90
ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4dHVyZTJEQmluZGluZzsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVA6Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0u
dGV4dHVyZUN1YmVNYXBCaW5kaW5nLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIG1fdGV4dHVyZVVu
aXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmVDdWJlTWFwQmluZGluZzsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5UOgogICAgICAgICByZXR1cm4gZ2V0
SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tf
RkxJUF9ZX1dFQkdMOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdW5wYWNrRmxpcFkp
OworICAgICAgICByZXR1cm4gbV91bnBhY2tGbGlwWTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0w6Ci0gICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8obV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAgICAgcmV0dXJuIG1fdW5w
YWNrUHJlbXVsdGlwbHlBbHBoYTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tf
Q09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb24pOworICAgICAgICByZXR1cm4gbV91bnBhY2tD
b2xvcnNwYWNlQ29udmVyc2lvbjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1I6
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oU3RyaW5nKCJXZWJLaXQiKSk7CisgICAgICAg
IHJldHVybiBTdHJpbmcgeyBBU0NJSUxpdGVyYWwgeyAiV2ViS2l0IiB9IH07CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygi
V2ViR0wgMi4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZF
UlNJT04pICsgIikiKTsKKyAgICAgICAgcmV0dXJuICJXZWJHTCAyLjAgKCIgKyBtX2NvbnRleHQt
PmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTikgKyAiKSI7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6VklFV1BPUlQ6CiAgICAgICAgIHJldHVybiBnZXRXZWJHTEludEFy
cmF5UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJlckluZm86OlVO
TUFTS0VEX1JFTkRFUkVSX1dFQkdMOgogICAgICAgICBpZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJ
bmZvKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2NvbnRleHQtPmdldFN0cmlu
ZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpKTsKKyAgICAgICAgICAgIHJldHVybiBtX2Nv
bnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpOwogICAgICAgICBz
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFy
YW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2lu
Zm8gbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJlckluZm86OlVOTUFT
S0VEX1ZFTkRPUl9XRUJHTDoKICAgICAgICAgaWYgKG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbykK
LSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9jb250ZXh0LT5nZXRTdHJpbmcoR3Jh
cGhpY3NDb250ZXh0M0Q6OlZFTkRPUikpOworICAgICAgICAgICAgcmV0dXJuIG1fY29udGV4dC0+
Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1IpOwogICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwg
ImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8gbm90IGVu
YWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJP
UFlfRVhUOiAvLyBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMKICAgICAgICAgaWYgKG1f
ZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKQogICAgICAgICAgICAgcmV0dXJuIGdldFVuc2ln
bmVkSW50UGFyYW1ldGVyKEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlf
RVhUKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfdGV4
dHVyZV9maWx0ZXJfYW5pc290cm9waWMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpGUkFHTUVOVF9TSEFERVJfREVSSVZBVElWRV9ISU5UOgogICAgICAgICByZXR1
cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpN
QVhfM0RfVEVYVFVSRV9TSVpFOgpAQCAtMTY4OSwxMiArMTY4MywxMCBAQCBXZWJHTEdldEluZm8g
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAg
ICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VU5JRk9STV9CVUZGRVJfT0ZGU0VUX0FMSUdOTUVOVDoKICAgICAgICAgcmV0
dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
VkVSVEVYX0FSUkFZX0JJTkRJTkc6IHsKLSAgICAgICAgaWYgKCFtX2JvdW5kVmVydGV4QXJyYXlP
YmplY3QtPmlzRGVmYXVsdE9iamVjdCgpKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhzdGF0aWNfY2FzdDxXZWJHTFZlcnRleEFycmF5T2JqZWN0Kj4obV9ib3VuZFZlcnRleEFycmF5
T2JqZWN0LmdldCgpKSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKLSAgICAgICAg
fQotICAgICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVJS
QVlfQklORElORzoKKyAgICAgICAgaWYgKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNEZWZh
dWx0T2JqZWN0KCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJu
IG1ha2VSZWZQdHIoc3RhdGljX2Nhc3Q8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCY+KCptX2JvdW5k
VmVydGV4QXJyYXlPYmplY3QpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JV
RkZFUjA6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RFJBV19CVUZGRVIxOgogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMjoKQEAgLTE3MTAsMTQgKzE3MDIsMTAg
QEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNE
ZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JVRkZFUjEyOgog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTM6CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6RFJBV19CVUZGRVIxNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpEUkFXX0JVRkZFUjE1OiB7Ci0gICAgICAgIEdDM0RpbnQgdmFsdWUgPSBHcmFwaGljc0NvbnRl
eHQzRDo6Tk9ORTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JVRkZFUjE1Ogog
ICAgICAgICBpZiAobV9mcmFtZWJ1ZmZlckJpbmRpbmcpCi0gICAgICAgICAgICB2YWx1ZSA9IG1f
ZnJhbWVidWZmZXJCaW5kaW5nLT5nZXREcmF3QnVmZmVyKHBuYW1lKTsKLSAgICAgICAgZWxzZSAv
LyBlbXVsYXRlZCBiYWNrYnVmZmVyCi0gICAgICAgICAgICB2YWx1ZSA9IG1fYmFja0RyYXdCdWZm
ZXI7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOwotICAgICAgICB9CisgICAg
ICAgICAgICByZXR1cm4gbV9mcmFtZWJ1ZmZlckJpbmRpbmctPmdldERyYXdCdWZmZXIocG5hbWUp
OworICAgICAgICByZXR1cm4gbV9iYWNrRHJhd0J1ZmZlcjsgLy8gZW11bGF0ZWQgYmFja2J1ZmZl
cgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPUFlfUkVBRF9CVUZGRVI6CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6Q09QWV9XUklURV9CVUZGRVI6CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6UElYRUxfUEFDS19CVUZGRVJfQklORElORzogICAKQEAgLTE3MzAsMTAgKzE3
MTgsMTAgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRl
cihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpUUkFOU0ZPUk1f
RkVFREJBQ0tfQlVGRkVSX0JJTkRJTkc6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5J
Rk9STV9CVUZGRVJfQklORElORzoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJwYXJhbWV0ZXIgbmFtZSBu
b3QgeWV0IHN1cHBvcnRlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVy
cm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52
YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMTc1NCw3ICsxNzQyLDcgQEAg
Ym9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlDb25zZXJ2YXRp
dmUoR0MzRGVudW0gdHlwZSwgdW5zaWcKICAgICAvLyBUaGUgY2FzZSBjb3VudD09MCBpcyBhbHJl
YWR5IGRlYWx0IHdpdGggaW4gZHJhd0VsZW1lbnRzIGJlZm9yZSB2YWxpZGF0ZUluZGV4QXJyYXlD
b25zZXJ2YXRpdmUuCiAgICAgaWYgKCFudW1FbGVtZW50cykKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIGNvbnN0IEFycmF5QnVmZmVyKiBidWZmZXIgPSBlbGVtZW50QXJyYXlCdWZmZXItPmVs
ZW1lbnRBcnJheUJ1ZmZlcigpOworICAgIGF1dG8qIGJ1ZmZlciA9IGVsZW1lbnRBcnJheUJ1ZmZl
ci0+ZWxlbWVudEFycmF5QnVmZmVyKCk7CiAgICAgQVNTRVJUKGJ1ZmZlcik7CiAgICAgCiAgICAg
aW50IG1heEluZGV4ID0gZWxlbWVudEFycmF5QnVmZmVyLT5nZXRDYWNoZWRNYXhJbmRleCh0eXBl
KTsKQEAgLTE4MDYsNyArMTc5NCw2IEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmFs
aWRhdGVCbGVuZEVxdWF0aW9uKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0MzCiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6TUlOOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6Ok1B
WDoKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0s
IGZ1bmN0aW9uTmFtZSwgImludmFsaWQgbW9kZSIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0
LmgKaW5kZXggNzU1ZGU2YmJkZDI2OTgxNjdkM2JhYTBmZGRkMzRiYmUwNjExNWQ1OS4uYjQ4MDNh
ZjE2MmVjNWYwNDNlNzk5NjlkNmQ4NWU1MzBlZDM2NWNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw3ICsyOCw2IEBA
CiAjaWYgRU5BQkxFKFdFQkdMMikKIAogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuaCIKLSNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTQxLDkgKzQwLDkgQEAgY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDsKIGNsYXNzIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZSB7CiBwdWJsaWM6CiAgICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxl
bWVudCYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwotICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIFdlYkdM
Q29udGV4dEF0dHJpYnV0ZXMpOworICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZh
c0VsZW1lbnQmLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4dEF0dHJpYnV0
ZXMpOwogCi0gICAgLyogQnVmZmVyIG9iamVjdHMgKi8KKyAgICAvLyBCdWZmZXIgb2JqZWN0cwog
ICAgIHVzaW5nIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJ1ZmZlckRhdGE7CiAgICAgdXNp
bmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YnVmZmVyU3ViRGF0YTsKICAgICB2b2lkIGJ1
ZmZlckRhdGEoR0MzRGVudW0gdGFyZ2V0LCBjb25zdCBBcnJheUJ1ZmZlclZpZXcmIGRhdGEsIEdD
M0RlbnVtIHVzYWdlLCBHQzNEdWludCBzcmNPZmZzZXQsIEdDM0R1aW50IGxlbmd0aCk7CkBAIC01
MSwxOSArNTAsMTkgQEAgcHVibGljOgogICAgIHZvaWQgY29weUJ1ZmZlclN1YkRhdGEoR0MzRGVu
dW0gcmVhZFRhcmdldCwgR0MzRGVudW0gd3JpdGVUYXJnZXQsIEdDM0RpbnQ2NCByZWFkT2Zmc2V0
LCBHQzNEaW50NjQgd3JpdGVPZmZzZXQsIEdDM0RpbnQ2NCBzaXplKTsKICAgICB2b2lkIGdldEJ1
ZmZlclN1YkRhdGEoR0MzRGVudW0gdGFyZ2V0LCBsb25nIGxvbmcgc3JjQnl0ZU9mZnNldCwgUmVm
UHRyPEFycmF5QnVmZmVyVmlldz4mJiBkc3REYXRhLCBHQzNEdWludCBkc3RPZmZzZXQgPSAwLCBH
QzNEdWludCBsZW5ndGggPSAwKTsKICAgICAKLSAgICAvKiBGcmFtZWJ1ZmZlciBvYmplY3RzICov
Ci0gICAgV2ViR0xHZXRJbmZvIGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNE
ZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsK
KyAgICAvLyBGcmFtZWJ1ZmZlciBvYmplY3RzCisgICAgV2ViR0xBbnkgZ2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwg
R0MzRGVudW0gcG5hbWUpIGZpbmFsOwogICAgIHZvaWQgYmxpdEZyYW1lYnVmZmVyKEdDM0RpbnQg
c3JjWDAsIEdDM0RpbnQgc3JjWTAsIEdDM0RpbnQgc3JjWDEsIEdDM0RpbnQgc3JjWTEsIEdDM0Rp
bnQgZHN0WDAsIEdDM0RpbnQgZHN0WTAsIEdDM0RpbnQgZHN0WDEsIEdDM0RpbnQgZHN0WTEsIEdD
M0RiaXRmaWVsZCBtYXNrLCBHQzNEZW51bSBmaWx0ZXIpOwogICAgIHZvaWQgZnJhbWVidWZmZXJU
ZXh0dXJlTGF5ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEdWlu
dCB0ZXh0dXJlLCBHQzNEaW50IGxldmVsLCBHQzNEaW50IGxheWVyKTsKLSAgICBXZWJHTEdldElu
Zm8gZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gcG5hbWUpOwotICAgIHZvaWQgaW52YWxpZGF0ZUZyYW1l
YnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgVmVjdG9yPEdDM0RlbnVtPiBhdHRhY2htZW50cyk7Ci0g
ICAgdm9pZCBpbnZhbGlkYXRlU3ViRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBWZWN0b3I8
R0MzRGVudW0+IGF0dGFjaG1lbnRzLCBHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdp
ZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKKyAgICBXZWJHTEFueSBnZXRJbnRlcm5hbGZvcm1hdFBh
cmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51
bSBwbmFtZSk7CisgICAgdm9pZCBpbnZhbGlkYXRlRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0
LCBjb25zdCBWZWN0b3I8R0MzRGVudW0+JiBhdHRhY2htZW50cyk7CisgICAgdm9pZCBpbnZhbGlk
YXRlU3ViRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBjb25zdCBWZWN0b3I8R0MzRGVudW0+
JiBhdHRhY2htZW50cywgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCk7CiAgICAgdm9pZCByZWFkQnVmZmVyKEdDM0RlbnVtIHNyYyk7CiAgICAg
Ci0gICAgLyogUmVuZGVyYnVmZmVyIG9iamVjdHMgKi8KKyAgICAvLyBSZW5kZXJidWZmZXIgb2Jq
ZWN0cwogICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdDM0RlbnVtIHRh
cmdldCwgR0MzRHNpemVpIHNhbXBsZXMsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6
ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpOwogICAgIAotICAgIC8qIFRleHR1cmUgb2JqZWN0
cyAqLworICAgIC8vIFRleHR1cmUgb2JqZWN0cwogICAgIHZvaWQgdGV4U3RvcmFnZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQsIEdD
M0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7CiAgICAgdm9pZCB0ZXhTdG9yYWdlM0Qo
R0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1h
dCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEc2l6ZWkgZGVwdGgpOwog
ICAgIHZvaWQgdGV4SW1hZ2UzRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0Rp
bnQgaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0Mz
RHNpemVpIGRlcHRoLCBHQzNEaW50IGJvcmRlciwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0
eXBlLCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmIHBpeGVscyk7CkBAIC03NiwxMCArNzUsMTAg
QEAgcHVibGljOgogICAgIHZvaWQgY29tcHJlc3NlZFRleEltYWdlM0QoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRo
LCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEc2l6ZWkgZGVwdGgsIEdDM0RpbnQgYm9yZGVyLCBHQzNE
c2l6ZWkgaW1hZ2VTaXplLCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmIGRhdGEpOwogICAgIHZv
aWQgY29tcHJlc3NlZFRleFN1YkltYWdlM0QoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB6b2Zmc2V0LCBHQzNE
c2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RzaXplaSBkZXB0aCwgR0MzRGVudW0g
Zm9ybWF0LCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmIGRh
dGEpOwogICAgIAotICAgIC8qIFByb2dyYW1zIGFuZCBzaGFkZXJzICovCi0gICAgR0MzRGludCBn
ZXRGcmFnRGF0YUxvY2F0aW9uKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgU3RyaW5nIG5hbWUpOwor
ICAgIC8vIFByb2dyYW1zIGFuZCBzaGFkZXJzCisgICAgR0MzRGludCBnZXRGcmFnRGF0YUxvY2F0
aW9uKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgCi0gICAgLyogVW5p
Zm9ybXMgYW5kIGF0dHJpYnV0ZXMgKi8KKyAgICAvLyBVbmlmb3JtcyBhbmQgYXR0cmlidXRlcwog
ICAgIHZvaWQgdW5pZm9ybTF1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbiosIEdDM0R1aW50IHYwKTsK
ICAgICB2b2lkIHVuaWZvcm0ydWkoV2ViR0xVbmlmb3JtTG9jYXRpb24qLCBHQzNEdWludCB2MCwg
R0MzRHVpbnQgdjEpOwogICAgIHZvaWQgdW5pZm9ybTN1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbios
IEdDM0R1aW50IHYwLCBHQzNEdWludCB2MSwgR0MzRHVpbnQgdjIpOwpAQCAtMTAwLDcwICs5OSw3
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCB2ZXJ0ZXhBdHRyaWJJNHVpdihHQzNEdWludCBpbmRleCwg
UmVmUHRyPFVpbnQzMkFycmF5PiYmIHYpOwogICAgIHZvaWQgdmVydGV4QXR0cmliSVBvaW50ZXIo
R0MzRHVpbnQgaW5kZXgsIEdDM0RpbnQgc2l6ZSwgR0MzRGVudW0gdHlwZSwgR0MzRHNpemVpIHN0
cmlkZSwgR0MzRGludDY0IG9mZnNldCk7CiAgICAgCi0gICAgLyogV3JpdGluZyB0byB0aGUgZHJh
d2luZyBidWZmZXIgKi8KKyAgICAvLyBXcml0aW5nIHRvIHRoZSBkcmF3aW5nIGJ1ZmZlcgogICAg
IHZvaWQgY2xlYXIoR0MzRGJpdGZpZWxkIG1hc2spIGZpbmFsOwogICAgIHZvaWQgdmVydGV4QXR0
cmliRGl2aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcik7CiAgICAgdm9pZCBk
cmF3QXJyYXlzSW5zdGFuY2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQgZmlyc3QsIEdDM0RzaXpl
aSBjb3VudCwgR0MzRHNpemVpIGluc3RhbmNlQ291bnQpOwogICAgIHZvaWQgZHJhd0VsZW1lbnRz
SW5zdGFuY2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwg
R0MzRGludDY0IG9mZnNldCwgR0MzRHNpemVpIGluc3RhbmNlQ291bnQpOwogICAgIHZvaWQgZHJh
d1JhbmdlRWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHVpbnQgc3RhcnQsIEdDM0R1aW50IGVu
ZCwgR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50NjQgb2Zmc2V0KTsKICAg
ICAKLSAgICAvKiBNdWx0aXBsZSBSZW5kZXIgVGFyZ2V0cyAqLwotICAgIHZvaWQgZHJhd0J1ZmZl
cnMoVmVjdG9yPEdDM0RlbnVtPiBidWZmZXJzKTsKKyAgICAvLyBNdWx0aXBsZSByZW5kZXIgdGFy
Z2V0cworICAgIHZvaWQgZHJhd0J1ZmZlcnMoY29uc3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmZmVy
cyk7CiAgICAgdm9pZCBjbGVhckJ1ZmZlcml2KEdDM0RlbnVtIGJ1ZmZlciwgR0MzRGludCBkcmF3
YnVmZmVyLCBSZWZQdHI8SW50MzJBcnJheT4mJiB2YWx1ZSk7CiAgICAgdm9pZCBjbGVhckJ1ZmZl
cnVpdihHQzNEZW51bSBidWZmZXIsIEdDM0RpbnQgZHJhd2J1ZmZlciwgUmVmUHRyPFVpbnQzMkFy
cmF5PiYmIHZhbHVlKTsKICAgICB2b2lkIGNsZWFyQnVmZmVyZnYoR0MzRGVudW0gYnVmZmVyLCBH
QzNEaW50IGRyYXdidWZmZXIsIFJlZlB0cjxGbG9hdDMyQXJyYXk+JiYgdmFsdWUpOwogICAgIHZv
aWQgY2xlYXJCdWZmZXJmaShHQzNEZW51bSBidWZmZXIsIEdDM0RpbnQgZHJhd2J1ZmZlciwgR0Mz
RGZsb2F0IGRlcHRoLCBHQzNEaW50IHN0ZW5jaWwpOwogICAgIAotICAgIC8qIFF1ZXJ5IE9iamVj
dHMgKi8KKyAgICAvLyBRdWVyeSBvYmplY3RzCiAgICAgUmVmUHRyPFdlYkdMUXVlcnk+IGNyZWF0
ZVF1ZXJ5KCk7Ci0gICAgdm9pZCBkZWxldGVRdWVyeShXZWJHTFF1ZXJ5KiBxdWVyeSk7Ci0gICAg
R0MzRGJvb2xlYW4gaXNRdWVyeShXZWJHTFF1ZXJ5KiBxdWVyeSk7Ci0gICAgdm9pZCBiZWdpblF1
ZXJ5KEdDM0RlbnVtIHRhcmdldCwgV2ViR0xRdWVyeSogcXVlcnkpOworICAgIHZvaWQgZGVsZXRl
UXVlcnkoV2ViR0xRdWVyeSopOworICAgIEdDM0Rib29sZWFuIGlzUXVlcnkoV2ViR0xRdWVyeSop
OworICAgIHZvaWQgYmVnaW5RdWVyeShHQzNEZW51bSB0YXJnZXQsIFdlYkdMUXVlcnkqKTsKICAg
ICB2b2lkIGVuZFF1ZXJ5KEdDM0RlbnVtIHRhcmdldCk7CiAgICAgUmVmUHRyPFdlYkdMUXVlcnk+
IGdldFF1ZXJ5KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOwotICAgIFdlYkdMR2V0
SW5mbyBnZXRRdWVyeVBhcmFtZXRlcihXZWJHTFF1ZXJ5KiBxdWVyeSwgR0MzRGVudW0gcG5hbWUp
OworICAgIFdlYkdMQW55IGdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdMUXVlcnkqLCBHQzNEZW51bSBw
bmFtZSk7CiAgICAgCi0gICAgLyogU2FtcGxlciBPYmplY3RzICovCisgICAgLy8gU2FtcGxlciBv
YmplY3RzCiAgICAgUmVmUHRyPFdlYkdMU2FtcGxlcj4gY3JlYXRlU2FtcGxlcigpOwotICAgIHZv
aWQgZGVsZXRlU2FtcGxlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIpOwotICAgIEdDM0Rib29sZWFu
IGlzU2FtcGxlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIpOwotICAgIHZvaWQgYmluZFNhbXBsZXIo
R0MzRHVpbnQgdW5pdCwgV2ViR0xTYW1wbGVyKiBzYW1wbGVyKTsKLSAgICB2b2lkIHNhbXBsZXJQ
YXJhbWV0ZXJpKFdlYkdMU2FtcGxlciogc2FtcGxlciwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQg
cGFyYW0pOwotICAgIHZvaWQgc2FtcGxlclBhcmFtZXRlcmYoV2ViR0xTYW1wbGVyKiBzYW1wbGVy
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0IHBhcmFtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0
U2FtcGxlclBhcmFtZXRlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIsIEdDM0RlbnVtIHBuYW1lKTsK
KyAgICB2b2lkIGRlbGV0ZVNhbXBsZXIoV2ViR0xTYW1wbGVyKik7CisgICAgR0MzRGJvb2xlYW4g
aXNTYW1wbGVyKFdlYkdMU2FtcGxlciopOworICAgIHZvaWQgYmluZFNhbXBsZXIoR0MzRHVpbnQg
dW5pdCwgV2ViR0xTYW1wbGVyKik7CisgICAgdm9pZCBzYW1wbGVyUGFyYW1ldGVyaShXZWJHTFNh
bXBsZXIqLCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7CisgICAgdm9pZCBzYW1wbGVy
UGFyYW1ldGVyZihXZWJHTFNhbXBsZXIqLCBHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0IHBhcmFt
KTsKKyAgICBXZWJHTEFueSBnZXRTYW1wbGVyUGFyYW1ldGVyKFdlYkdMU2FtcGxlciosIEdDM0Rl
bnVtIHBuYW1lKTsKICAgICAKLSAgICAvKiBTeW5jIG9iamVjdHMgKi8KKyAgICAvLyBTeW5jIG9i
amVjdHMKICAgICBSZWZQdHI8V2ViR0xTeW5jPiBmZW5jZVN5bmMoR0MzRGVudW0gY29uZGl0aW9u
LCBHQzNEYml0ZmllbGQgZmxhZ3MpOwotICAgIEdDM0Rib29sZWFuIGlzU3luYyhXZWJHTFN5bmMq
IHN5bmMpOwotICAgIHZvaWQgZGVsZXRlU3luYyhXZWJHTFN5bmMqIHN5bmMpOwotICAgIEdDM0Rl
bnVtIGNsaWVudFdhaXRTeW5jKFdlYkdMU3luYyogc3luYywgR0MzRGJpdGZpZWxkIGZsYWdzLCBH
QzNEdWludDY0IHRpbWVvdXQpOwotICAgIHZvaWQgd2FpdFN5bmMoV2ViR0xTeW5jKiBzeW5jLCBH
QzNEYml0ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7Ci0gICAgV2ViR0xHZXRJbmZv
IGdldFN5bmNQYXJhbWV0ZXIoV2ViR0xTeW5jKiBzeW5jLCBHQzNEZW51bSBwbmFtZSk7CisgICAg
R0MzRGJvb2xlYW4gaXNTeW5jKFdlYkdMU3luYyopOworICAgIHZvaWQgZGVsZXRlU3luYyhXZWJH
TFN5bmMqKTsKKyAgICBHQzNEZW51bSBjbGllbnRXYWl0U3luYyhXZWJHTFN5bmMqLCBHQzNEYml0
ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7CisgICAgdm9pZCB3YWl0U3luYyhXZWJH
TFN5bmMqLCBHQzNEYml0ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7CisgICAgV2Vi
R0xBbnkgZ2V0U3luY1BhcmFtZXRlcihXZWJHTFN5bmMqLCBHQzNEZW51bSBwbmFtZSk7CiAgICAg
Ci0gICAgLyogVHJhbnNmb3JtIEZlZWRiYWNrICovCisgICAgLy8gVHJhbnNmb3JtIGZlZWRiYWNr
CiAgICAgUmVmUHRyPFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+IGNyZWF0ZVRyYW5zZm9ybUZlZWRi
YWNrKCk7CiAgICAgdm9pZCBkZWxldGVUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRyYW5zZm9ybUZl
ZWRiYWNrKiBpZCk7CiAgICAgR0MzRGJvb2xlYW4gaXNUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRy
YW5zZm9ybUZlZWRiYWNrKiBpZCk7CiAgICAgdm9pZCBiaW5kVHJhbnNmb3JtRmVlZGJhY2soR0Mz
RGVudW0gdGFyZ2V0LCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKiBpZCk7CiAgICAgdm9pZCBiZWdp
blRyYW5zZm9ybUZlZWRiYWNrKEdDM0RlbnVtIHByaW1pdGl2ZU1vZGUpOwogICAgIHZvaWQgZW5k
VHJhbnNmb3JtRmVlZGJhY2soKTsKLSAgICB2b2lkIHRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3Mo
V2ViR0xQcm9ncmFtKiwgVmVjdG9yPFN0cmluZz4gdmFyeWluZ3MsIEdDM0RlbnVtIGJ1ZmZlck1v
ZGUpOworICAgIHZvaWQgdHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncyhXZWJHTFByb2dyYW0qLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgdmFyeWluZ3MsIEdDM0RlbnVtIGJ1ZmZlck1vZGUpOwogICAg
IFJlZlB0cjxXZWJHTEFjdGl2ZUluZm8+IGdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZyhXZWJH
TFByb2dyYW0qLCBHQzNEdWludCBpbmRleCk7CiAgICAgdm9pZCBwYXVzZVRyYW5zZm9ybUZlZWRi
YWNrKCk7CiAgICAgdm9pZCByZXN1bWVUcmFuc2Zvcm1GZWVkYmFjaygpOwogICAgIAotICAgIC8q
IFVuaWZvcm0gQnVmZmVyIE9iamVjdHMgYW5kIFRyYW5zZm9ybSBGZWVkYmFjayBCdWZmZXJzICov
Ci0gICAgdm9pZCBiaW5kQnVmZmVyQmFzZShHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4
LCBXZWJHTEJ1ZmZlciogYnVmZmVyKTsKLSAgICB2b2lkIGJpbmRCdWZmZXJSYW5nZShHQzNEZW51
bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4LCBXZWJHTEJ1ZmZlciogYnVmZmVyLCBHQzNEaW50NjQg
b2Zmc2V0LCBHQzNEaW50NjQgc2l6ZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEluZGV4ZWRQYXJh
bWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWludCBpbmRleCk7Ci0gICAgVWludDMyQXJyYXkq
IGdldFVuaWZvcm1JbmRpY2VzKFdlYkdMUHJvZ3JhbSosIFZlY3RvcjxTdHJpbmc+IHVuaWZvcm1O
YW1lcyk7CisgICAgLy8gVW5pZm9ybSBidWZmZXIgb2JqZWN0cyBhbmQgdHJhbnNmb3JtIGZlZWRi
YWNrIGJ1ZmZlcnMKKyAgICB2b2lkIGJpbmRCdWZmZXJCYXNlKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RHVpbnQgaW5kZXgsIFdlYkdMQnVmZmVyKik7CisgICAgdm9pZCBiaW5kQnVmZmVyUmFuZ2UoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEdWludCBpbmRleCwgV2ViR0xCdWZmZXIqLCBHQzNEaW50NjQgb2Zm
c2V0LCBHQzNEaW50NjQgc2l6ZSk7CisgICAgV2ViR0xBbnkgZ2V0SW5kZXhlZFBhcmFtZXRlcihH
QzNEZW51bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4KTsKKyAgICBVaW50MzJBcnJheSogZ2V0VW5p
Zm9ybUluZGljZXMoV2ViR0xQcm9ncmFtKiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHVuaWZvcm1O
YW1lcyk7CiAgICAgSW50MzJBcnJheSogZ2V0QWN0aXZlVW5pZm9ybXMoV2ViR0xQcm9ncmFtKiwg
UmVmUHRyPFVpbnQzMkFycmF5PiYmIHVuaWZvcm1JbmRpY2VzLCBHQzNEZW51bSBwbmFtZSk7Ci0g
ICAgR0MzRHVpbnQgZ2V0VW5pZm9ybUJsb2NrSW5kZXgoV2ViR0xQcm9ncmFtKiwgU3RyaW5nIHVu
aWZvcm1CbG9ja05hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRBY3RpdmVVbmlmb3JtQmxvY2tQ
YXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdDM0Rl
bnVtIHBuYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShX
ZWJHTFByb2dyYW0qLCBHQzNEdWludCB1bmlmb3JtQmxvY2tJbmRleCk7CisgICAgR0MzRHVpbnQg
Z2V0VW5pZm9ybUJsb2NrSW5kZXgoV2ViR0xQcm9ncmFtKiwgY29uc3QgU3RyaW5nJiB1bmlmb3Jt
QmxvY2tOYW1lKTsKKyAgICBXZWJHTEFueSBnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIo
V2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdDM0RlbnVtIHBuYW1l
KTsKKyAgICBXZWJHTEFueSBnZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKFdlYkdMUHJvZ3JhbSos
IEdDM0R1aW50IHVuaWZvcm1CbG9ja0luZGV4KTsKICAgICB2b2lkIHVuaWZvcm1CbG9ja0JpbmRp
bmcoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdDM0R1aW50IHVu
aWZvcm1CbG9ja0JpbmRpbmcpOwogICAgIAotICAgIC8qIFZlcnRleCBBcnJheSBPYmplY3RzICov
CisgICAgLy8gVmVydGV4IGFycmF5IG9iamVjdHMKICAgICBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdD4gY3JlYXRlVmVydGV4QXJyYXkoKTsKICAgICB2b2lkIGRlbGV0ZVZlcnRleEFycmF5
KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIHZlcnRleEFycmF5KTsKICAgICBHQzNEYm9vbGVhbiBp
c1ZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIHZlcnRleEFycmF5KTsKQEAgLTE3
MiwxMCArMTcxLDEwIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBpc1dlYkdMMigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIC8qIEV4dGVuc2lvbnMgKi8KKyAgICAv
LyBFeHRlbnNpb25zCiAgICAgV2ViR0xFeHRlbnNpb24qIGdldEV4dGVuc2lvbihjb25zdCBTdHJp
bmcmKSBmaW5hbDsKICAgICBWZWN0b3I8U3RyaW5nPiBnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkg
ZmluYWw7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkgZmlu
YWw7CisgICAgV2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKIAog
ICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGlu
dGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIGZpbmFsOwog
ICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1vZGUpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCmluZGV4IGRmMTc3MTFkYjBi
ODllYWQwMzhmNzNjMzFkMjJmZTFlMzJhNWUzY2MuLmJkYjgxZDZlNTVmZDc0M2VlYjdkMDdhMzJi
NDAyNDMwZTM5YzY5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZl
ci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjQsMTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYkdMQnVmZmVyLmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNpbmNsdWRlICJXZWJH
TEJ1ZmZlci5oIgotCiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKICNpbmNsdWRlICJX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAKQEAgLTQxLDkgKzQwLDYgQEAgUmVmPFdlYkdM
QnVmZmVyPiBXZWJHTEJ1ZmZlcjo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0
eCkKIAogV2ViR0xCdWZmZXI6OldlYkdMQnVmZmVyKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
IGN0eCkKICAgICA6IFdlYkdMU2hhcmVkT2JqZWN0KGN0eCkKLSAgICAsIG1fdGFyZ2V0KDApCi0g
ICAgLCBtX2J5dGVMZW5ndGgoMCkKLSAgICAsIG1fbmV4dEF2YWlsYWJsZUNhY2hlRW50cnkoMCkK
IHsKICAgICBzZXRPYmplY3QoY3R4LmdyYXBoaWNzQ29udGV4dDNEKCktPmNyZWF0ZUJ1ZmZlcigp
KTsKICAgICBjbGVhckNhY2hlZE1heEluZGljZXMoKTsKQEAgLTU2LDcgKzUyLDcgQEAgV2ViR0xC
dWZmZXI6On5XZWJHTEJ1ZmZlcigpCiAKIHZvaWQgV2ViR0xCdWZmZXI6OmRlbGV0ZU9iamVjdElt
cGwoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamVjdCBvYmplY3Qp
CiB7Ci0gICAgICBjb250ZXh0M2QtPmRlbGV0ZUJ1ZmZlcihvYmplY3QpOworICAgIGNvbnRleHQz
ZC0+ZGVsZXRlQnVmZmVyKG9iamVjdCk7CiB9CiAKIGJvb2wgV2ViR0xCdWZmZXI6OmFzc29jaWF0
ZUJ1ZmZlckRhdGFJbXBsKGNvbnN0IHZvaWQqIGRhdGEsIEdDM0RzaXplaXB0ciBieXRlTGVuZ3Ro
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmgKaW5kZXggMWI0MTRlOGZj
OWExMzVhOWNlYzBiY2Q2YzZmMjJlMDljMjc3MWQ0ZS4uZDNiZDlhMDM4ZWNiOGQ3MGM3ZDA0Nzhl
YzQwOGM5MjFhNDc5MzBlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZl
ci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTM3LDkgKzM3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTEJ1ZmZl
ciBmaW5hbCA6IHB1YmxpYyBXZWJHTFNoYXJlZE9iamVjdCB7CiBwdWJsaWM6Ci0gICAgdmlydHVh
bCB+V2ViR0xCdWZmZXIoKTsKLQogICAgIHN0YXRpYyBSZWY8V2ViR0xCdWZmZXI+IGNyZWF0ZShX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CisgICAgdmlydHVhbCB+V2ViR0xCdWZmZXIoKTsK
IAogICAgIGJvb2wgYXNzb2NpYXRlQnVmZmVyRGF0YShHQzNEc2l6ZWlwdHIgc2l6ZSk7CiAgICAg
Ym9vbCBhc3NvY2lhdGVCdWZmZXJEYXRhKEpTQzo6QXJyYXlCdWZmZXIqKTsKQEAgLTcwLDEyICs2
OSwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29u
dGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgYm9v
bCBpc0J1ZmZlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLQotICAgIEdDM0Rl
bnVtIG1fdGFyZ2V0OworICAgIEdDM0RlbnVtIG1fdGFyZ2V0IHsgMCB9OwogCiAgICAgUmVmUHRy
PEpTQzo6QXJyYXlCdWZmZXI+IG1fZWxlbWVudEFycmF5QnVmZmVyOwotICAgIEdDM0RzaXplaXB0
ciBtX2J5dGVMZW5ndGg7CisgICAgR0MzRHNpemVpcHRyIG1fYnl0ZUxlbmd0aCB7IDAgfTsKIAog
ICAgIC8vIE9wdGltaXphdGlvbiBmb3IgaW5kZXggdmFsaWRhdGlvbi4gRm9yIGVhY2ggdHlwZSBv
ZiBpbmRleAogICAgIC8vIChpLmUuLCBVTlNJR05FRF9TSE9SVCksIGNhY2hlIHRoZSBtYXhpbXVt
IGluZGV4IGluIHRoZQpAQCAtOTIsNyArODksNyBAQCBwcml2YXRlOgogICAgIC8vIGFuZCBVTlNJ
R05FRF9TSE9SVCksIGJ1dCBtaWdodCBhcyB3ZWxsIGxlYXZlIG9wZW4gdGhlCiAgICAgLy8gcG9z
c2liaWxpdHkgb2YgYWRkaW5nIG90aGVycy4KICAgICBNYXhJbmRleENhY2hlRW50cnkgbV9tYXhJ
bmRleENhY2hlWzRdOwotICAgIHVuc2lnbmVkIGludCBtX25leHRBdmFpbGFibGVDYWNoZUVudHJ5
OworICAgIHVuc2lnbmVkIG1fbmV4dEF2YWlsYWJsZUNhY2hlRW50cnkgeyAwIH07CiAKICAgICAv
LyBDbGVhcnMgYWxsIG9mIHRoZSBjYWNoZWQgbWF4IGluZGljZXMuCiAgICAgdm9pZCBjbGVhckNh
Y2hlZE1heEluZGljZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQ29udGV4dEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
Q29udGV4dEdyb3VwLmNwcAppbmRleCAyMTMzZjMzZWZjOGNlMDk4N2I0OTgzM2NiYzEwZmM3NTkx
MmEwODIyLi45ZGRlZjE1OGNkMGFjZGU2YjY4Y2FkZGQyYmM5M2NlZDVhODNkZWZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDEx
ICsyNCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTENv
bnRleHRHcm91cC5oIgogCiAjaWYgRU5BQkxFKFdFQkdMKQogCi0jaW5jbHVkZSAiV2ViR0xDb250
ZXh0R3JvdXAuaCIKLQogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAi
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgogI2luY2x1ZGUgIldlYkdMU2hhcmVkT2JqZWN0
LmgiCkBAIC0zNywxMSArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlZjxXZWJHTENv
bnRleHRHcm91cD4gV2ViR0xDb250ZXh0R3JvdXA6OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgV2ViR0xDb250ZXh0R3JvdXAoKSk7Ci19Ci0KLVdlYkdMQ29udGV4dEdyb3Vw
OjpXZWJHTENvbnRleHRHcm91cCgpCi17CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR0xD
b250ZXh0R3JvdXApOwogfQogCiBXZWJHTENvbnRleHRHcm91cDo6fldlYkdMQ29udGV4dEdyb3Vw
KCkKQEAgLTQ5LDQzICs0NCw0MCBAQCBXZWJHTENvbnRleHRHcm91cDo6fldlYkdMQ29udGV4dEdy
b3VwKCkKICAgICBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCk7CiB9CiAKLUdyYXBoaWNzQ29u
dGV4dDNEKiBXZWJHTENvbnRleHRHcm91cDo6Z2V0QUdyYXBoaWNzQ29udGV4dDNEKCkKK0dyYXBo
aWNzQ29udGV4dDNEJiBXZWJHTENvbnRleHRHcm91cDo6Z2V0QUdyYXBoaWNzQ29udGV4dDNEKCkK
IHsKICAgICBBU1NFUlQoIW1fY29udGV4dHMuaXNFbXB0eSgpKTsKLSAgICBIYXNoU2V0PFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UqPjo6aXRlcmF0b3IgaXQgPSBtX2NvbnRleHRzLmJlZ2luKCk7
Ci0gICAgcmV0dXJuICgqaXQpLT5ncmFwaGljc0NvbnRleHQzRCgpOworICAgIHJldHVybiAqKCpt
X2NvbnRleHRzLmJlZ2luKCkpLT5ncmFwaGljc0NvbnRleHQzRCgpOwogfQogCi12b2lkIFdlYkdM
Q29udGV4dEdyb3VwOjphZGRDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNvbnRl
eHQpCit2b2lkIFdlYkdMQ29udGV4dEdyb3VwOjphZGRDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UmIGNvbnRleHQpCiB7Ci0gICAgbV9jb250ZXh0cy5hZGQoY29udGV4dCk7CisgICAg
bV9jb250ZXh0cy5hZGQoJmNvbnRleHQpOwogfQogCi12b2lkIFdlYkdMQ29udGV4dEdyb3VwOjpy
ZW1vdmVDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNvbnRleHQpCit2b2lkIFdl
YkdMQ29udGV4dEdyb3VwOjpyZW1vdmVDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
IGNvbnRleHQpCiB7CiAgICAgLy8gV2UgbXVzdCBjYWxsIGRldGFjaEFuZFJlbW92ZUFsbE9iamVj
dHMgYmVmb3JlIHJlbW92aW5nIHRoZSBsYXN0IGNvbnRleHQuCi0gICAgaWYgKG1fY29udGV4dHMu
c2l6ZSgpID09IDEgJiYgbV9jb250ZXh0cy5jb250YWlucyhjb250ZXh0KSkKKyAgICBpZiAobV9j
b250ZXh0cy5zaXplKCkgPT0gMSAmJiBtX2NvbnRleHRzLmNvbnRhaW5zKCZjb250ZXh0KSkKICAg
ICAgICAgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpOwogCi0gICAgbV9jb250ZXh0cy5yZW1v
dmUoY29udGV4dCk7CisgICAgbV9jb250ZXh0cy5yZW1vdmUoJmNvbnRleHQpOwogfQogCi12b2lk
IFdlYkdMQ29udGV4dEdyb3VwOjpyZW1vdmVPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVj
dCkKK3ZvaWQgV2ViR0xDb250ZXh0R3JvdXA6OnJlbW92ZU9iamVjdChXZWJHTFNoYXJlZE9iamVj
dCYgb2JqZWN0KQogewotICAgIG1fZ3JvdXBPYmplY3RzLnJlbW92ZShvYmplY3QpOworICAgIG1f
Z3JvdXBPYmplY3RzLnJlbW92ZSgmb2JqZWN0KTsKIH0KIAotdm9pZCBXZWJHTENvbnRleHRHcm91
cDo6YWRkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMQ29udGV4
dEdyb3VwOjphZGRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmIG9iamVjdCkKIHsKLSAgICBtX2dy
b3VwT2JqZWN0cy5hZGQob2JqZWN0KTsKKyAgICBtX2dyb3VwT2JqZWN0cy5hZGQoJm9iamVjdCk7
CiB9CiAKIHZvaWQgV2ViR0xDb250ZXh0R3JvdXA6OmRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMo
KQogewotICAgIHdoaWxlICghbV9ncm91cE9iamVjdHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIEhh
c2hTZXQ8V2ViR0xTaGFyZWRPYmplY3QqPjo6aXRlcmF0b3IgaXQgPSBtX2dyb3VwT2JqZWN0cy5i
ZWdpbigpOwotICAgICAgICAoKml0KS0+ZGV0YWNoQ29udGV4dEdyb3VwKCk7Ci0gICAgfQorICAg
IHdoaWxlICghbV9ncm91cE9iamVjdHMuaXNFbXB0eSgpKQorICAgICAgICAoKm1fZ3JvdXBPYmpl
Y3RzLmJlZ2luKCkpLT5kZXRhY2hDb250ZXh0R3JvdXAoKTsKIH0KIAogdm9pZCBXZWJHTENvbnRl
eHRHcm91cDo6bG9zZUNvbnRleHRHcm91cChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpMb3N0
Q29udGV4dE1vZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQ29udGV4dEdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENv
bnRleHRHcm91cC5oCmluZGV4IDlkMDEwYmZjYzIwOTk2YTE0NjQ4NTdhZmNlZWYzYzRhYTdhNmI5
YjcuLjExYjczNzAzMjI2ZTExYmUzZTU0ZjZlYmM1NjIyMjBjMmQxNTVhNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwzNSArMjYsMjYg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5o
IgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKLWNsYXNz
IFdlYkdMRXh0ZW5zaW9uOwotY2xhc3MgV2ViR0xTaGFyZWRPYmplY3Q7Ci1jbGFzcyBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOwotCi1jbGFzcyBXZWJHTENvbnRleHRHcm91cCBmaW5hbCA6IHB1
YmxpYyBSZWZDb3VudGVkPFdlYkdMQ29udGV4dEdyb3VwPiB7CitjbGFzcyBXZWJHTENvbnRleHRH
cm91cCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdMQ29udGV4dEdyb3VwPiB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxXZWJHTENvbnRleHRHcm91cD4gY3JlYXRlKCk7CiAgICAgfldlYkdMQ29u
dGV4dEdyb3VwKCk7CiAKLSAgICB2b2lkIGFkZENvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZSopOwotICAgIHZvaWQgcmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Kik7CisgICAgdm9pZCBhZGRDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKKyAg
ICB2b2lkIHJlbW92ZUNvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwogCi0gICAg
dm9pZCBhZGRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqKTsKLSAgICB2b2lkIHJlbW92ZU9iamVj
dChXZWJHTFNoYXJlZE9iamVjdCopOworICAgIHZvaWQgYWRkT2JqZWN0KFdlYkdMU2hhcmVkT2Jq
ZWN0Jik7CisgICAgdm9pZCByZW1vdmVPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmKTsKIAotICAg
IEdyYXBoaWNzQ29udGV4dDNEKiBnZXRBR3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICBHcmFwaGlj
c0NvbnRleHQzRCYgZ2V0QUdyYXBoaWNzQ29udGV4dDNEKCk7CiAKICAgICB2b2lkIGxvc2VDb250
ZXh0R3JvdXAoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6TG9zdENvbnRleHRNb2RlKTsKIAot
ICBwcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBXZWJHTE9iamVjdDsKLQotICAgIFdlYkdMQ29u
dGV4dEdyb3VwKCk7Citwcml2YXRlOgorICAgIFdlYkdMQ29udGV4dEdyb3VwKCkgPSBkZWZhdWx0
OwogCiAgICAgdm9pZCBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCmluZGV4IDUyM2U2
ZTY0MmQ3NDliNjAyMmYzNzczYTg4ZWRmNGVhMGVjYjliYjguLjZhMWM3YWIyOTk5Yzg0NWNlOWZl
NDMxMjkxNDBlYzNjYmJjNDA1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xDb250ZXh0T2JqZWN0LmNwcApAQCAtMjQsMjUgKzI0LDIzIEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMQ29udGV4dE9iamVjdC5oIgogCiAjaWYg
RU5BQkxFKFdFQkdMKQogCi0jaW5jbHVkZSAiV2ViR0xDb250ZXh0T2JqZWN0LmgiCi0KICNpbmNs
dWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogV2ViR0xDb250ZXh0T2JqZWN0OjpXZWJHTENvbnRleHRPYmplY3QoV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYgY29udGV4dCkKLSAgICA6IFdlYkdMT2JqZWN0KGNvbnRleHQpCi0gICAgLCBt
X2NvbnRleHQoJmNvbnRleHQpCisgICAgOiBtX2NvbnRleHQoJmNvbnRleHQpCiB7CiB9CiAKIFdl
YkdMQ29udGV4dE9iamVjdDo6fldlYkdMQ29udGV4dE9iamVjdCgpCiB7CiAgICAgaWYgKG1fY29u
dGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5yZW1vdmVDb250ZXh0T2JqZWN0KHRoaXMpOworICAg
ICAgICBtX2NvbnRleHQtPnJlbW92ZUNvbnRleHRPYmplY3QoKnRoaXMpOwogfQogCiB2b2lkIFdl
YkdMQ29udGV4dE9iamVjdDo6ZGV0YWNoQ29udGV4dCgpCkBAIC01MCwxNCArNDgsMTQgQEAgdm9p
ZCBXZWJHTENvbnRleHRPYmplY3Q6OmRldGFjaENvbnRleHQoKQogICAgIGRldGFjaCgpOwogICAg
IGlmIChtX2NvbnRleHQpIHsKICAgICAgICAgZGVsZXRlT2JqZWN0KG1fY29udGV4dC0+Z3JhcGhp
Y3NDb250ZXh0M0QoKSk7Ci0gICAgICAgIG1fY29udGV4dC0+cmVtb3ZlQ29udGV4dE9iamVjdCh0
aGlzKTsKLSAgICAgICAgbV9jb250ZXh0ID0gMDsKKyAgICAgICAgbV9jb250ZXh0LT5yZW1vdmVD
b250ZXh0T2JqZWN0KCp0aGlzKTsKKyAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKICAgICB9
CiB9CiAKIEdyYXBoaWNzQ29udGV4dDNEKiBXZWJHTENvbnRleHRPYmplY3Q6OmdldEFHcmFwaGlj
c0NvbnRleHQzRCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fY29udGV4dCA/IG1fY29udGV4dC0+
Z3JhcGhpY3NDb250ZXh0M0QoKSA6IDA7CisgICAgcmV0dXJuIG1fY29udGV4dCA/IG1fY29udGV4
dC0+Z3JhcGhpY3NDb250ZXh0M0QoKSA6IG51bGxwdHI7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKaW5kZXggZjliN2MyMDIyODgz
ZDU3OTJiMDI1ZjAyMTFkMDJlNGRhNmI2NjYzYS4uYzI3NjJiMjM2N2I3YzM0MTk2YjQ3ZmVlM2Y5
ZWMzNGRmY2JhMDlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xGcmFtZWJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xG
cmFtZWJ1ZmZlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjQsMTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkdMRnJhbWVidWZmZXIuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKIAot
I2luY2x1ZGUgIldlYkdMRnJhbWVidWZmZXIuaCIKLQogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5o
IgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViR0xEcmF3QnVm
ZmVycy5oIgpAQCAtNjA2LDYgKzYwNSw5IEBAIHZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6ZHJhd0J1
ZmZlcnMoY29uc3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmcykKIHZvaWQgV2ViR0xGcmFtZWJ1ZmZl
cjo6ZHJhd0J1ZmZlcnNJZk5lY2Vzc2FyeShib29sIGZvcmNlKQogewogI2lmIEVOQUJMRShXRUJH
TDIpCisgICAgLy8gRklYTUU6IFRoZSBsb2dpYyBoZXJlIHNlZW1zIHdyb25nLiBJZiB3ZSBkb24n
dCBoYXZlIFdlYkdMIDIgZW5hYmxlZCBhdCBhbGwsIHRoZW4KKyAgICAvLyB3ZSBza2lwIHRoZSBt
X3dlYmdsRHJhd0J1ZmZlcnMgY2hlY2suIEJ1dCBpZiB3ZSBkbyBoYXZlIFdlYkdMIDIgZW5hYmxl
ZCwgdGhlbiB3ZQorICAgIC8vIHBlcmZvcm0gdGhpcyBjaGVjaywgZm9yIFdlYkdMIDEgY29udGV4
dHMgb25seS4KICAgICBpZiAoIWNvbnRleHQoKS0+bV93ZWJnbERyYXdCdWZmZXJzICYmICFjb250
ZXh0KCktPmlzV2ViR0wyKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDRlYWQxY2ZkNjM3NDJiMDBkNTI0MmRlNzE5NTcyM2FiM2VmM2QxZWIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xHZXRJbmZvLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM3MSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoV0VCR0wpCi0KLSNpbmNsdWRlICJXZWJHTEdldEluZm8u
aCIKLQotI2luY2x1ZGUgPHJ1bnRpbWUvRmxvYXQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGlt
ZS9JbnQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9VaW50MzJBcnJheS5oPgotI2luY2x1
ZGUgPHJ1bnRpbWUvVWludDhBcnJheS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdlYkdM
R2V0SW5mbzo6V2ViR0xHZXRJbmZvKGJvb2wgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVCb29s
KQotICAgICwgbV9ib29sKHZhbHVlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkK
LSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLXsKLX0KLQotV2ViR0xH
ZXRJbmZvOjpXZWJHTEdldEluZm8oY29uc3QgYm9vbCogdmFsdWUsIGludCBzaXplKQotICAgIDog
bV90eXBlKGtUeXBlQm9vbEFycmF5KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9h
dCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50
NjQoMCkKLXsKLSAgICBpZiAoIXZhbHVlIHx8IHNpemUgPD0wKQotICAgICAgICByZXR1cm47Ci0g
ICAgbV9ib29sQXJyYXkucmVzaXplKHNpemUpOwotICAgIGZvciAoaW50IGlpID0gMDsgaWkgPCBz
aXplOyArK2lpKQotICAgICAgICBtX2Jvb2xBcnJheVtpaV0gPSB2YWx1ZVtpaV07Ci19Ci0KLVdl
YkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKGZsb2F0IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBl
RmxvYXQpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KHZhbHVlKQotICAgICwg
bV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLXsKLX0K
LQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oaW50IHZhbHVlKQotICAgIDogbV90eXBlKGtU
eXBlSW50KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9p
bnQodmFsdWUpCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi17Ci19
Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKCkKLSAgICA6IG1fdHlwZShrVHlwZU51bGwp
Ci0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQot
ICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdl
dEluZm86OldlYkdMR2V0SW5mbyhjb25zdCBTdHJpbmcmIHZhbHVlKQotICAgIDogbV90eXBlKGtU
eXBlU3RyaW5nKQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwg
bV9pbnQoMCkKLSAgICAsIG1fc3RyaW5nKHZhbHVlKQotICAgICwgbV91bnNpZ25lZEludCgwKQot
ICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyh1bnNp
Z25lZCBpbnQgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVVbnNpZ25lZEludCkKLSAgICAsIG1f
Ym9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vu
c2lnbmVkSW50KHZhbHVlKQotICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86
OldlYkdMR2V0SW5mbyhsb25nIGxvbmcgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVJbnQ2NCkK
LSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0g
ICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KHZhbHVlKQotewotfQotCi0KLVdl
YkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IHZhbHVlKQot
ICAgIDogbV90eXBlKGtUeXBlV2ViR0xCdWZmZXIpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAg
LCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAg
ICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbEJ1ZmZlcih2YWx1ZSkKLXsKLX0KLQotV2ViR0xH
ZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IHZhbHVlKQotICAg
IDogbV90eXBlKGtUeXBlV2ViR0xGbG9hdEFycmF5KQotICAgICwgbV9ib29sKGZhbHNlKQotICAg
ICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAg
ICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xGbG9hdEFycmF5KHZhbHVlKQotewotfQotCi1X
ZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IHZh
bHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xGcmFtZWJ1ZmZlcikKLSAgICAsIG1fYm9vbChm
YWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVk
SW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmdsRnJhbWVidWZmZXIodmFsdWUp
Ci17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8SW50MzJBcnJh
eT4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJHTEludEFycmF5KQotICAgICwgbV9ib29s
KGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWdu
ZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xJbnRBcnJheSh2YWx1ZSkK
LXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFByb2dy
YW0+IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xQcm9ncmFtKQotICAgICwgbV9ib29s
KGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWdu
ZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xQcm9ncmFtKHZhbHVlKQot
ewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUmVuZGVy
YnVmZmVyPiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMUmVuZGVyYnVmZmVyKQotICAg
ICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAs
IG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xSZW5kZXJi
dWZmZXIodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQ
dHI8V2ViR0xUZXh0dXJlPiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMVGV4dHVyZSkK
LSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0g
ICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmdsVGV4
dHVyZSh2YWx1ZSkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0
cjxVaW50OEFycmF5PiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMVW5zaWduZWRCeXRl
QXJyYXkpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2lu
dCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93
ZWJnbFVuc2lnbmVkQnl0ZUFycmF5KHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdM
R2V0SW5mbyhQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlw
ZVdlYkdMVW5zaWduZWRJbnRBcnJheSkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxv
YXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2lu
dDY0KDApCi0gICAgLCBtX3dlYmdsVW5zaWduZWRJbnRBcnJheSh2YWx1ZSkKLXsKLX0KLQotV2Vi
R0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTPiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMp
Ci0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQot
ICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbFZl
cnRleEFycmF5T2JqZWN0T0VTKHZhbHVlKQotewotfQotCi0jaWYgRU5BQkxFKFdFQkdMMikKLVdl
YkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dD4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJHTFZlcnRleEFycmF5T2JqZWN0KQotICAg
ICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAs
IG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xWZXJ0ZXhB
cnJheU9iamVjdCh2YWx1ZSkKLXsKLX0KLSNlbmRpZgotCi1XZWJHTEdldEluZm86On5XZWJHTEdl
dEluZm8oKQotewotfQotCi1XZWJHTEdldEluZm86OlR5cGUgV2ViR0xHZXRJbmZvOjpnZXRUeXBl
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90eXBlOwotfQotCi1ib29sIFdlYkdMR2V0SW5mbzo6
Z2V0Qm9vbCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZUJvb2wpOwot
ICAgIHJldHVybiBtX2Jvb2w7Ci19Ci0KLWNvbnN0IFZlY3Rvcjxib29sPiYgV2ViR0xHZXRJbmZv
OjpnZXRCb29sQXJyYXkoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVC
b29sQXJyYXkpOwotICAgIHJldHVybiBtX2Jvb2xBcnJheTsKLX0KLQotZmxvYXQgV2ViR0xHZXRJ
bmZvOjpnZXRGbG9hdCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZUZs
b2F0KTsKLSAgICByZXR1cm4gbV9mbG9hdDsKLX0KLQotaW50IFdlYkdMR2V0SW5mbzo6Z2V0SW50
KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlSW50KTsKLSAgICByZXR1
cm4gbV9pbnQ7Ci19Ci0KLWNvbnN0IFN0cmluZyYgV2ViR0xHZXRJbmZvOjpnZXRTdHJpbmcoKSBj
b25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVTdHJpbmcpOwotICAgIHJldHVy
biBtX3N0cmluZzsKLX0KLQotdW5zaWduZWQgaW50IFdlYkdMR2V0SW5mbzo6Z2V0VW5zaWduZWRJ
bnQoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVVbnNpZ25lZEludCk7
Ci0gICAgcmV0dXJuIG1fdW5zaWduZWRJbnQ7Ci19Ci0KLWxvbmcgbG9uZyBXZWJHTEdldEluZm86
OmdldEludDY0KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlSW50NjQp
OwotICAgIHJldHVybiBtX2ludDY0OwotfQotCi1XZWJHTEJ1ZmZlciogV2ViR0xHZXRJbmZvOjpn
ZXRXZWJHTEJ1ZmZlcigpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdl
YkdMQnVmZmVyKTsKLSAgICByZXR1cm4gbV93ZWJnbEJ1ZmZlci5nZXQoKTsKLX0KLQotRmxvYXQz
MkFycmF5KiBXZWJHTEdldEluZm86OmdldFdlYkdMRmxvYXRBcnJheSgpIGNvbnN0Ci17Ci0gICAg
QVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMRmxvYXRBcnJheSk7Ci0gICAgcmV0dXJuIG1f
d2ViZ2xGbG9hdEFycmF5LmdldCgpOwotfQotCi1XZWJHTEZyYW1lYnVmZmVyKiBXZWJHTEdldElu
Zm86OmdldFdlYkdMRnJhbWVidWZmZXIoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkg
PT0ga1R5cGVXZWJHTEZyYW1lYnVmZmVyKTsKLSAgICByZXR1cm4gbV93ZWJnbEZyYW1lYnVmZmVy
LmdldCgpOwotfQotCi1JbnQzMkFycmF5KiBXZWJHTEdldEluZm86OmdldFdlYkdMSW50QXJyYXko
KSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTEludEFycmF5KTsK
LSAgICByZXR1cm4gbV93ZWJnbEludEFycmF5LmdldCgpOwotfQotCi1XZWJHTFByb2dyYW0qIFdl
YkdMR2V0SW5mbzo6Z2V0V2ViR0xQcm9ncmFtKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlw
ZSgpID09IGtUeXBlV2ViR0xQcm9ncmFtKTsKLSAgICByZXR1cm4gbV93ZWJnbFByb2dyYW0uZ2V0
KCk7Ci19Ci0KLVdlYkdMUmVuZGVyYnVmZmVyKiBXZWJHTEdldEluZm86OmdldFdlYkdMUmVuZGVy
YnVmZmVyKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xSZW5k
ZXJidWZmZXIpOwotICAgIHJldHVybiBtX3dlYmdsUmVuZGVyYnVmZmVyLmdldCgpOwotfQotCi1X
ZWJHTFRleHR1cmUqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xUZXh0dXJlKCkgY29uc3QKLXsKLSAg
ICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xUZXh0dXJlKTsKLSAgICByZXR1cm4gbV93
ZWJnbFRleHR1cmUuZ2V0KCk7Ci19Ci0KLVVpbnQ4QXJyYXkqIFdlYkdMR2V0SW5mbzo6Z2V0V2Vi
R0xVbnNpZ25lZEJ5dGVBcnJheSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBr
VHlwZVdlYkdMVW5zaWduZWRCeXRlQXJyYXkpOwotICAgIHJldHVybiBtX3dlYmdsVW5zaWduZWRC
eXRlQXJyYXkuZ2V0KCk7Ci19Ci0KLVVpbnQzMkFycmF5KiBXZWJHTEdldEluZm86OmdldFdlYkdM
VW5zaWduZWRJbnRBcnJheSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlw
ZVdlYkdMVW5zaWduZWRJbnRBcnJheSk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xVbnNpZ25lZEludEFy
cmF5LmdldCgpOwotfQotCi1XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKiBXZWJHTEdldEluZm86
OmdldFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRU
eXBlKCkgPT0ga1R5cGVXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKTsKLSAgICByZXR1cm4gbV93
ZWJnbFZlcnRleEFycmF5T2JqZWN0T0VTLmdldCgpOwotfQotCi0jaWYgRU5BQkxFKFdFQkdMMikK
LVdlYkdMVmVydGV4QXJyYXlPYmplY3QqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMVmVy
dGV4QXJyYXlPYmplY3QpOwotICAgIHJldHVybiBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3QuZ2V0
KCk7Ci19Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5B
QkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xH
ZXRJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjZmNjkzYzVkNzYzNjIyM2VkNWNhZTNjMzlmYjYw
MDNiYWY3OGZjYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaAorKysgL2Rldi9udWxs
CkBAIC0xLDE1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCi0jaW5jbHVk
ZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgotI2luY2x1
ZGUgIldlYkdMUmVuZGVyYnVmZmVyLmgiCi0jaW5jbHVkZSAiV2ViR0xUZXh0dXJlLmgiCi0jaWYg
RU5BQkxFKFdFQkdMMikKLSNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0LmgiCi0jZW5k
aWYKLSNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgiCi0jaW5jbHVkZSA8cnVu
dGltZS9GbG9hdDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL0ludDMyQXJyYXkuaD4KLSNp
bmNsdWRlIDxydW50aW1lL1VpbnQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9VaW50OEFy
cmF5Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotLy8gQSB0YWdnZWQgdW5pb24gcmVwcmVzZW50aW5nIHRoZSByZXN1bHQgb2YgZ2V0IHF1
ZXJpZXMgbGlrZQotLy8gZ2V0UGFyYW1ldGVyIChlbmNvbXBhc3NpbmcgZ2V0Qm9vbGVhbnYsIGdl
dEludGVnZXJ2LCBnZXRGbG9hdHYpIGFuZAotLy8gc2ltaWxhciB2YXJpYW50cy4gRm9yIHJlZmVy
ZW5jZSBjb3VudGVkIHR5cGVzLCBpbmNyZW1lbnRzIGFuZAotLy8gZGVjcmVtZW50cyB0aGUgcmVm
ZXJlbmNlIGNvdW50IG9mIHRoZSB0YXJnZXQgb2JqZWN0LgotCi1jbGFzcyBXZWJHTEdldEluZm8g
ZmluYWwgewotcHVibGljOgotICAgIGVudW0gVHlwZSB7Ci0gICAgICAgIGtUeXBlQm9vbCwKLSAg
ICAgICAga1R5cGVCb29sQXJyYXksCi0gICAgICAgIGtUeXBlRmxvYXQsCi0gICAgICAgIGtUeXBl
SW50LAotICAgICAgICBrVHlwZU51bGwsCi0gICAgICAgIGtUeXBlU3RyaW5nLAotICAgICAgICBr
VHlwZVVuc2lnbmVkSW50LAotICAgICAgICBrVHlwZUludDY0LAotICAgICAgICBrVHlwZVdlYkdM
QnVmZmVyLAotICAgICAgICBrVHlwZVdlYkdMRmxvYXRBcnJheSwKLSAgICAgICAga1R5cGVXZWJH
TEZyYW1lYnVmZmVyLAotICAgICAgICBrVHlwZVdlYkdMSW50QXJyYXksCi0gICAgICAgIGtUeXBl
V2ViR0xPYmplY3RBcnJheSwKLSAgICAgICAga1R5cGVXZWJHTFByb2dyYW0sCi0gICAgICAgIGtU
eXBlV2ViR0xSZW5kZXJidWZmZXIsCi0gICAgICAgIGtUeXBlV2ViR0xUZXh0dXJlLAotICAgICAg
ICBrVHlwZVdlYkdMVW5zaWduZWRCeXRlQXJyYXksCi0gICAgICAgIGtUeXBlV2ViR0xVbnNpZ25l
ZEludEFycmF5LAotICAgICAgICBrVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMsCi0gICAg
ICAgIGtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCwKLSAgICB9OwotCi0gICAgZXhwbGljaXQg
V2ViR0xHZXRJbmZvKGJvb2wgdmFsdWUpOwotICAgIFdlYkdMR2V0SW5mbyhjb25zdCBib29sKiB2
YWx1ZSwgaW50IHNpemUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhmbG9hdCB2YWx1ZSk7
Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKGludCB2YWx1ZSk7Ci0gICAgLy8gUmVwcmVzZW50
cyB0aGUgbnVsbCB2YWx1ZSBhbmQgdHlwZS4KLSAgICBXZWJHTEdldEluZm8oKTsKLSAgICBleHBs
aWNpdCBXZWJHTEdldEluZm8oY29uc3QgU3RyaW5nJiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2Vi
R0xHZXRJbmZvKHVuc2lnbmVkIGludCB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZv
KGxvbmcgbG9uZyB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8
V2ViR0xCdWZmZXI+IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0
cjxGbG9hdDMyQXJyYXk+IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1Jl
ZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZv
KFBhc3NSZWZQdHI8SW50MzJBcnJheT4gdmFsdWUpOwotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQg
V2ViR0xPYmplY3RBcnJheQotICAgIC8vIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMT2Jq
ZWN0QXJyYXk+IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxX
ZWJHTFByb2dyYW0+IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0
cjxXZWJHTFJlbmRlcmJ1ZmZlcj4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQ
YXNzUmVmUHRyPFdlYkdMVGV4dHVyZT4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5m
byhQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldElu
Zm8oUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0
SW5mbyhQYXNzUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IHZhbHVlKTsKLSNpZiBF
TkFCTEUoV0VCR0wyKQotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdM
VmVydGV4QXJyYXlPYmplY3Q+IHZhbHVlKTsKLSNlbmRpZgotCi0gICAgfldlYkdMR2V0SW5mbygp
OwotCi0gICAgVHlwZSBnZXRUeXBlKCkgY29uc3Q7Ci0KLSAgICBib29sIGdldEJvb2woKSBjb25z
dDsKLSAgICBjb25zdCBWZWN0b3I8Ym9vbD4mIGdldEJvb2xBcnJheSgpIGNvbnN0OwotICAgIGZs
b2F0IGdldEZsb2F0KCkgY29uc3Q7Ci0gICAgaW50IGdldEludCgpIGNvbnN0OwotICAgIGNvbnN0
IFN0cmluZyYgZ2V0U3RyaW5nKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgaW50IGdldFVuc2lnbmVk
SW50KCkgY29uc3Q7Ci0gICAgbG9uZyBsb25nIGdldEludDY0KCkgY29uc3Q7Ci0gICAgV2ViR0xC
dWZmZXIqIGdldFdlYkdMQnVmZmVyKCkgY29uc3Q7Ci0gICAgRmxvYXQzMkFycmF5KiBnZXRXZWJH
TEZsb2F0QXJyYXkoKSBjb25zdDsKLSAgICBXZWJHTEZyYW1lYnVmZmVyKiBnZXRXZWJHTEZyYW1l
YnVmZmVyKCkgY29uc3Q7Ci0gICAgSW50MzJBcnJheSogZ2V0V2ViR0xJbnRBcnJheSgpIGNvbnN0
OwotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgV2ViR0xPYmplY3RBcnJheQotICAgIC8vIFdlYkdM
T2JqZWN0QXJyYXkqIGdldFdlYkdMT2JqZWN0QXJyYXkoKSBjb25zdDsKLSAgICBXZWJHTFByb2dy
YW0qIGdldFdlYkdMUHJvZ3JhbSgpIGNvbnN0OwotICAgIFdlYkdMUmVuZGVyYnVmZmVyKiBnZXRX
ZWJHTFJlbmRlcmJ1ZmZlcigpIGNvbnN0OwotICAgIFdlYkdMVGV4dHVyZSogZ2V0V2ViR0xUZXh0
dXJlKCkgY29uc3Q7Ci0gICAgVWludDhBcnJheSogZ2V0V2ViR0xVbnNpZ25lZEJ5dGVBcnJheSgp
IGNvbnN0OwotICAgIFVpbnQzMkFycmF5KiBnZXRXZWJHTFVuc2lnbmVkSW50QXJyYXkoKSBjb25z
dDsKLSAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKiBnZXRXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTKCkgY29uc3Q7Ci0jaWYgRU5BQkxFKFdFQkdMMikKLSAgICBXZWJHTFZlcnRleEFycmF5
T2JqZWN0KiBnZXRXZWJHTFZlcnRleEFycmF5T2JqZWN0KCkgY29uc3Q7Ci0jZW5kaWYKLQotcHJp
dmF0ZToKLSAgICBUeXBlIG1fdHlwZTsKLSAgICBib29sIG1fYm9vbDsKLSAgICBWZWN0b3I8Ym9v
bD4gbV9ib29sQXJyYXk7Ci0gICAgZmxvYXQgbV9mbG9hdDsKLSAgICBpbnQgbV9pbnQ7Ci0gICAg
U3RyaW5nIG1fc3RyaW5nOwotICAgIHVuc2lnbmVkIGludCBtX3Vuc2lnbmVkSW50OwotICAgIGxv
bmcgbG9uZyBtX2ludDY0OwotICAgIFJlZlB0cjxXZWJHTEJ1ZmZlcj4gbV93ZWJnbEJ1ZmZlcjsK
LSAgICBSZWZQdHI8RmxvYXQzMkFycmF5PiBtX3dlYmdsRmxvYXRBcnJheTsKLSAgICBSZWZQdHI8
V2ViR0xGcmFtZWJ1ZmZlcj4gbV93ZWJnbEZyYW1lYnVmZmVyOwotICAgIFJlZlB0cjxJbnQzMkFy
cmF5PiBtX3dlYmdsSW50QXJyYXk7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudCBXZWJHTE9iamVj
dEFycmF5Ci0gICAgLy8gUmVmUHRyPFdlYkdMT2JqZWN0QXJyYXk+IG1fd2ViZ2xPYmplY3RBcnJh
eTsKLSAgICBSZWZQdHI8V2ViR0xQcm9ncmFtPiBtX3dlYmdsUHJvZ3JhbTsKLSAgICBSZWZQdHI8
V2ViR0xSZW5kZXJidWZmZXI+IG1fd2ViZ2xSZW5kZXJidWZmZXI7Ci0gICAgUmVmUHRyPFdlYkdM
VGV4dHVyZT4gbV93ZWJnbFRleHR1cmU7Ci0gICAgUmVmUHRyPFVpbnQ4QXJyYXk+IG1fd2ViZ2xV
bnNpZ25lZEJ5dGVBcnJheTsKLSAgICBSZWZQdHI8VWludDMyQXJyYXk+IG1fd2ViZ2xVbnNpZ25l
ZEludEFycmF5OwotICAgIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiBtX3dlYmds
VmVydGV4QXJyYXlPYmplY3RPRVM7Ci0jaWYgRU5BQkxFKFdFQkdMMikKLSAgICBSZWZQdHI8V2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdD4gbV93ZWJnbFZlcnRleEFycmF5T2JqZWN0OwotI2VuZGlmCi19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTE9iamVjdC5jcHAKaW5kZXggNWQ5MjA5NWZmZjE3ODZiMjI1YzI4NWE5NzAzYzY2OTk2MWI1
OTc1ZS4uNDhmOTM5ZTBkYThmNGUzMmM4MjJkMjkxMjEyNGZmY2JlNGU1YWE5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwxMSArMjQsMTAgQEAKICAq
LwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xPYmplY3QuaCIKIAogI2lm
IEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUgIldlYkdMT2JqZWN0LmgiCi0KICNpbmNsdWRlICJX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3Vw
LmgiCiAjaW5jbHVkZSAiV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIgpAQCAtMzgsMjEgKzM3LDEw
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV2ViR0xPYmplY3Q6OldlYkdMT2JqZWN0KFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKQotICAgIDogbV9vYmplY3QoMCkKLSAgICAsIG1fYXR0
YWNobWVudENvdW50KDApCi0gICAgLCBtX2RlbGV0ZWQoZmFsc2UpCi17Ci19Ci0KLVdlYkdMT2Jq
ZWN0Ojp+V2ViR0xPYmplY3QoKQotewotfQotCiB2b2lkIFdlYkdMT2JqZWN0OjpzZXRPYmplY3Qo
UGxhdGZvcm0zRE9iamVjdCBvYmplY3QpCiB7Ci0gICAgLy8gb2JqZWN0PT0wICYmIG1fZGVsZXRl
ZD09ZmFsc2UgaW5kaWNhdGluZyBhbiB1bmluaXRpYWxpemVkIHN0YXRlOwotICAgIEFTU0VSVCgh
bV9vYmplY3QgJiYgIW1fZGVsZXRlZCk7CisgICAgQVNTRVJUKCFtX29iamVjdCk7CisgICAgQVNT
RVJUKCFtX2RlbGV0ZWQpOwogICAgIG1fb2JqZWN0ID0gb2JqZWN0OwogfQogCkBAIC03OSw4ICs2
Nyw3IEBAIHZvaWQgV2ViR0xPYmplY3Q6OmRlbGV0ZU9iamVjdChHcmFwaGljc0NvbnRleHQzRCog
Y29udGV4dDNkKQogdm9pZCBXZWJHTE9iamVjdDo6ZGV0YWNoKCkKIHsKICAgICBtX2F0dGFjaG1l
bnRDb3VudCA9IDA7IC8vIE1ha2Ugc3VyZSBPcGVuR0wgcmVzb3VyY2UgaXMgZGVsZXRlZC4KLSAg
ICB9Ci0KK30KIAogdm9pZCBXZWJHTE9iamVjdDo6b25EZXRhY2hlZChHcmFwaGljc0NvbnRleHQz
RCogY29udGV4dDNkKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmgK
aW5kZXggN2IzMjNkNmM5ZjdhNzhhZjRiMmY0M2U2NTAzZjllMDEyOWVjYzc0Ny4uNjlkYmI1YWEw
N2ViOTI5OTVkM2NlZTcxMWY0YjI4N2M2NjNlNDVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTE9iamVjdC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDE3ICsyNiwxNSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiBjbGFzcyBX
ZWJHTENvbnRleHRHcm91cDsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CiAKIGNs
YXNzIFdlYkdMT2JqZWN0IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR0xPYmplY3Q+IHsKIHB1Ymxp
YzoKLSAgICB2aXJ0dWFsIH5XZWJHTE9iamVjdCgpOworICAgIHZpcnR1YWwgfldlYkdMT2JqZWN0
KCkgeyB9CiAKICAgICBQbGF0Zm9ybTNET2JqZWN0IG9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1f
b2JqZWN0OyB9CiAKQEAgLTU3LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCB2
YWxpZGF0ZShjb25zdCBXZWJHTENvbnRleHRHcm91cCosIGNvbnN0IFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UmKSBjb25zdCA9IDA7CiAKIHByb3RlY3RlZDoKLSAgICBXZWJHTE9iamVjdChXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CisgICAgV2ViR0xPYmplY3QoKSA9IGRlZmF1bHQ7CiAK
ICAgICAvLyBzZXRPYmplY3Qgc2hvdWxkIGJlIG9ubHkgY2FsbGVkIG9uY2UgcmlnaHQgYWZ0ZXIg
Y3JlYXRpbmcgYSBXZWJHTE9iamVjdC4KICAgICB2b2lkIHNldE9iamVjdChQbGF0Zm9ybTNET2Jq
ZWN0KTsKQEAgLTcyLDkgKzcwLDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgR3JhcGhpY3ND
b250ZXh0M0QqIGdldEFHcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0ID0gMDsKIAogcHJpdmF0ZToK
LSAgICBQbGF0Zm9ybTNET2JqZWN0IG1fb2JqZWN0OwotICAgIHVuc2lnbmVkIG1fYXR0YWNobWVu
dENvdW50OwotICAgIGJvb2wgbV9kZWxldGVkOworICAgIFBsYXRmb3JtM0RPYmplY3QgbV9vYmpl
Y3QgeyAwIH07CisgICAgdW5zaWduZWQgbV9hdHRhY2htZW50Q291bnQgeyAwIH07CisgICAgYm9v
bCBtX2RlbGV0ZWQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggNzdhZmU5NGM0
NTg1YTFiYjNlMTc3NmM4OTE1M2I4NGJiODZjMTcwMy4uYzI0MzM1ZGM0NjdkNzY3YmFmYTgzZWJj
ZjExOWYzMmVhM2E1ZDMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFBy
b2dyYW0uY3BwCkBAIC0yNCwxMyArMjQsMTMgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNpbmNs
dWRlICJXZWJHTFByb2dyYW0uaCIKLQogI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCiAj
aW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgorI2luY2x1ZGUgIldlYkdMU2hh
ZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsOSArNDEsNiBAQCBSZWY8V2Vi
R0xQcm9ncmFtPiBXZWJHTFByb2dyYW06OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
JiBjdHgpCiAKIFdlYkdMUHJvZ3JhbTo6V2ViR0xQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UmIGN0eCkKICAgICA6IFdlYkdMU2hhcmVkT2JqZWN0KGN0eCkKLSAgICAsIG1fbGlua1N0
YXR1cyhmYWxzZSkKLSAgICAsIG1fbGlua0NvdW50KDApCi0gICAgLCBtX2luZm9WYWxpZCh0cnVl
KQogewogICAgIHNldE9iamVjdChjdHguZ3JhcGhpY3NDb250ZXh0M0QoKS0+Y3JlYXRlUHJvZ3Jh
bSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJv
Z3JhbS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKaW5kZXgg
NzE3Y2NlMTM4YzQyOGM1N2NkZGI3YzU1YzE0Njg1ZmE0NjIyMzJmMy4uZWFiNzZjODk3NTFjYmU0
OTJiNDZlNzRjZmU4ZDE5NTgwOWUxMzFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xQcm9ncmFtLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjUsMTcgKzI1LDE2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVk
ZSAiV2ViR0xTaGFkZXIuaCIKICNpbmNsdWRlICJXZWJHTFNoYXJlZE9iamVjdC5oIgotI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBXZWJHTFNo
YWRlcjsKKwogY2xhc3MgV2ViR0xQcm9ncmFtIGZpbmFsIDogcHVibGljIFdlYkdMU2hhcmVkT2Jq
ZWN0IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJHTFByb2dyYW0oKTsKLQogICAgIHN0YXRp
YyBSZWY8V2ViR0xQcm9ncmFtPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwor
ICAgIHZpcnR1YWwgfldlYkdMUHJvZ3JhbSgpOwogCiAgICAgdW5zaWduZWQgbnVtQWN0aXZlQXR0
cmliTG9jYXRpb25zKCk7CiAgICAgR0MzRGludCBnZXRBY3RpdmVBdHRyaWJMb2NhdGlvbihHQzNE
dWludCBpbmRleCk7CkBAIC02MywyMyArNjIsMjAgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZGVs
ZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJy
aWRlOwogCiBwcml2YXRlOgotICAgIGJvb2wgaXNQcm9ncmFtKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQotCiAgICAgdm9pZCBjYWNoZUFjdGl2ZUF0dHJpYkxvY2F0aW9ucyhHcmFw
aGljc0NvbnRleHQzRCopOwogICAgIHZvaWQgY2FjaGVJbmZvSWZOZWVkZWQoKTsKIAogICAgIFZl
Y3RvcjxHQzNEaW50PiBtX2FjdGl2ZUF0dHJpYkxvY2F0aW9uczsKIAotICAgIEdDM0RpbnQgbV9s
aW5rU3RhdHVzOworICAgIEdDM0RpbnQgbV9saW5rU3RhdHVzIHsgMCB9OwogCi0gICAgLy8gVGhp
cyBpcyB1c2VkIHRvIHRyYWNrIHdoZXRoZXIgYSBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBiZWxvbmdz
IHRvIHRoaXMKLSAgICAvLyBwcm9ncmFtIG9yIG5vdC4KLSAgICB1bnNpZ25lZCBtX2xpbmtDb3Vu
dDsKKyAgICAvLyBUaGlzIGlzIHVzZWQgdG8gdHJhY2sgd2hldGhlciBhIFdlYkdMVW5pZm9ybUxv
Y2F0aW9uIGJlbG9uZ3MgdG8gdGhpcyBwcm9ncmFtIG9yIG5vdC4KKyAgICB1bnNpZ25lZCBtX2xp
bmtDb3VudCB7IDAgfTsKIAogICAgIFJlZlB0cjxXZWJHTFNoYWRlcj4gbV92ZXJ0ZXhTaGFkZXI7
CiAgICAgUmVmUHRyPFdlYkdMU2hhZGVyPiBtX2ZyYWdtZW50U2hhZGVyOwogCi0gICAgYm9vbCBt
X2luZm9WYWxpZDsKKyAgICBib29sIG1faW5mb1ZhbGlkIHsgdHJ1ZSB9OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xRdWVyeS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5oCmlu
ZGV4IDQ2ZGI1OTJhODVhZjYyZmU4MGY3MWYzNzNiZTU5MTZiY2I5YzE4NTkuLjNjYjc2MTc3Nzc3
NTIwMWJjYTAxYWE2MDZjNWJjMTk1NGEyNmYyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFF1ZXJ5LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzEsMTcgKzMxLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgV2ViR0xRdWVyeSBmaW5hbCA6IHB1YmxpYyBXZWJHTFNoYXJlZE9iamVjdCB7CiBwdWJsaWM6
Ci0gICAgdmlydHVhbCB+V2ViR0xRdWVyeSgpOwotCiAgICAgc3RhdGljIFJlZjxXZWJHTFF1ZXJ5
PiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOworICAgIHZpcnR1YWwgfldlYkdM
UXVlcnkoKTsKIAogcHJvdGVjdGVkOgotICAgIFdlYkdMUXVlcnkoV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYpOwotCisgICAgZXhwbGljaXQgV2ViR0xRdWVyeShXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlJik7CiAgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwg
UGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAgYm9vbCBpc1F1ZXJ5
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5jcHAKaW5kZXggYjA2ZDZjOWM4NmEzMTZjMjAxOTkzNWNlODQxMzQ4MDllMzM0
MTZhZi4uN2RmZmMzNTdhMTcyYjU5MTFhY2YwYjA4NWYyZWQyMTg4NjI1YTkxMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI0LDkgKzI0LDkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCi0jaW5jbHVkZSAiV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmgiCiAKICNpbmNsdWRlICJBTkdMRUluc3RhbmNlZEFycmF5cy5o
IgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCkBAIC03MCwxNiArNzAsMTYgQEAgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBh
c3NlZENhbnZhcywgR3IKIHsKIH0KIAotV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRl
cmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUGFzc1JlZlB0cjxH
cmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwKLSAgICBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0
ZXMgYXR0cmlidXRlcykgOiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKHBhc3NlZENhbnZhcywg
Y29udGV4dCwgYXR0cmlidXRlcykKK1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFJlZjxHcmFwaGljc0Nv
bnRleHQzRD4mJiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRl
cykKKyAgICA6IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UocGFzc2VkQ2FudmFzLCBXVEZNb3Zl
KGNvbnRleHQpLCBhdHRyaWJ1dGVzKQogewogICAgIGluaXRpYWxpemVWZXJ0ZXhBcnJheU9iamVj
dHMoKTsKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVWZXJ0ZXhB
cnJheU9iamVjdHMoKQogewotICAgIG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0ID0gV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKCp0aGlzLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTOjpWQU9UeXBlRGVmYXVsdCk7Ci0gICAgYWRkQ29udGV4dE9iamVjdChtX2RlZmF1bHRWZXJ0
ZXhBcnJheU9iamVjdC5nZXQoKSk7CisgICAgbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QgPSBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUoKnRoaXMsIFdlYkdMVmVydGV4QXJyYXlP
YmplY3RPRVM6OlR5cGU6OkRlZmF1bHQpOworICAgIGFkZENvbnRleHRPYmplY3QoKm1fZGVmYXVs
dFZlcnRleEFycmF5T2JqZWN0KTsKICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBtX2Rl
ZmF1bHRWZXJ0ZXhBcnJheU9iamVjdDsKICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSkKICAg
ICAgICAgaW5pdFZlcnRleEF0dHJpYjAoKTsKQEAgLTkwLDk5ICs5MCw5MSBAQCBXZWJHTEV4dGVu
c2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBu
YW1lKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIAotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRf
YmxlbmRfbWlubWF4IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3Vw
cG9ydHMoIkdMX0VYVF9ibGVuZF9taW5tYXgiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVND
SUlDYXNlKG5hbWUsICJFWFRfYmxlbmRfbWlubWF4IikpIHsKICAgICAgICAgaWYgKCFtX2V4dEJs
ZW5kTWluTWF4KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1
cmVFbmFibGVkKCJHTF9FWFRfYmxlbmRfbWlubWF4Iik7Ci0gICAgICAgICAgICBtX2V4dEJsZW5k
TWluTWF4ID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRCbGVuZE1pbk1heD4oKnRoaXMpOworICAgICAg
ICAgICAgbV9leHRCbGVuZE1pbk1heCA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfRVhU
X2JsZW5kX21pbm1heCIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPEVYVEJs
ZW5kTWluTWF4PigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBt
X2V4dEJsZW5kTWluTWF4LmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShuYW1lLCAiRVhUX3NSR0IiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5zdXBwb3J0cygiR0xfRVhUX3NSR0IiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVND
SUlDYXNlKG5hbWUsICJFWFRfc1JHQiIpKSB7CiAgICAgICAgIGlmICghbV9leHRzUkdCKSB7Ci0g
ICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9F
WFRfc1JHQiIpOwotICAgICAgICAgICAgbV9leHRzUkdCID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRz
UkdCPigqdGhpcyk7CisgICAgICAgICAgICBtX2V4dHNSR0IgPSBlbmFibGVTdXBwb3J0ZWRFeHRl
bnNpb24oIkdMX0VYVF9zUkdCIikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8
RVhUc1JHQj4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9l
eHRzUkdCLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1l
LCAiRVhUX2ZyYWdfZGVwdGgiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cygiR0xfRVhUX2ZyYWdfZGVwdGgiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKG5hbWUsICJFWFRfZnJhZ19kZXB0aCIpKSB7CiAgICAgICAgIGlmICghbV9leHRG
cmFnRGVwdGgpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3Vy
ZUVuYWJsZWQoIkdMX0VYVF9mcmFnX2RlcHRoIik7Ci0gICAgICAgICAgICBtX2V4dEZyYWdEZXB0
aCA9IHN0ZDo6bWFrZV91bmlxdWU8RVhURnJhZ0RlcHRoPigqdGhpcyk7CisgICAgICAgICAgICBt
X2V4dEZyYWdEZXB0aCA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfRVhUX2ZyYWdfZGVw
dGgiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRGcmFnRGVwdGg+KCp0
aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fZXh0RnJhZ0RlcHRo
LmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhU
X3NoYWRlcl90ZXh0dXJlX2xvZCIpCi0gICAgICAgICYmIChtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5zdXBwb3J0cygiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpIHx8IG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9BUkJfc2hhZGVyX3RleHR1cmVfbG9kIikpKSB7
CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9zaGFkZXJfdGV4dHVy
ZV9sb2QiKSkgewogICAgICAgICBpZiAoIW1fZXh0U2hhZGVyVGV4dHVyZUxPRCkgewotICAgICAg
ICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3No
YWRlcl90ZXh0dXJlX2xvZCIpOwotICAgICAgICAgICAgbV9leHRTaGFkZXJUZXh0dXJlTE9EID0g
c3RkOjptYWtlX3VuaXF1ZTxFWFRTaGFkZXJUZXh0dXJlTE9EPigqdGhpcyk7CisgICAgICAgICAg
ICBpZiAoIShtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwg
eyAiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIgfSkgfHwgbV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0FSQl9zaGFkZXJfdGV4dHVyZV9sb2Qi
IH0pKSkKKyAgICAgICAgICAgICAgICBtX2V4dFNoYWRlclRleHR1cmVMT0QgPSBudWxscHRyOwor
ICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuZW5zdXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX3NoYWRlcl90ZXh0dXJl
X2xvZCIgfSk7CisgICAgICAgICAgICAgICAgbV9leHRTaGFkZXJUZXh0dXJlTE9EID0gc3RkOjpt
YWtlX3VuaXF1ZTxFWFRTaGFkZXJUZXh0dXJlTE9EPigqdGhpcyk7CisgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fZXh0U2hhZGVyVGV4dHVyZUxPRC5nZXQoKTsKICAg
ICB9Ci0gICAgaWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9m
aWx0ZXJfYW5pc290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJL
SVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpCi0gICAgICAgICYmIG1fY29udGV4
dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290
cm9waWMiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4
dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUs
ICJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpIHsKICAgICAgICAgaWYg
KCFtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykgewotICAgICAgICAgICAgbV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2Fu
aXNvdHJvcGljIik7Ci0gICAgICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9
IHN0ZDo6bWFrZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcyk7Cisg
ICAgICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IGVuYWJsZVN1cHBvcnRl
ZEV4dGVuc2lvbigiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikKKyAgICAgICAg
ICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigq
dGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpYy5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UobmFtZSwgIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpCi0gICAgICAgICYmIG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2
ZXMiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfc3RhbmRh
cmRfZGVyaXZhdGl2ZXMiKSkgewogICAgICAgICBpZiAoIW1fb2VzU3RhbmRhcmREZXJpdmF0aXZl
cykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxl
ZCgiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIik7Ci0gICAgICAgICAgICBtX29lc1N0YW5k
YXJkRGVyaXZhdGl2ZXMgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM+
KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcyA9IGVuYWJsZVN1
cHBvcnRlZEV4dGVuc2lvbigiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIikKKyAgICAgICAg
ICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTU3RhbmRhcmREZXJpdmF0aXZlcz4oKnRoaXMp
IDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNTdGFuZGFyZERlcml2
YXRpdmVzLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1l
LCAiT0VTX3RleHR1cmVfZmxvYXQiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfZmxvYXQiKSkgeworICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdCIpKSB7CiAgICAgICAgIGlm
ICghbV9vZXNUZXh0dXJlRmxvYXQpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2Zsb2F0Iik7Ci0gICAgICAgICAg
ICBtX29lc1RleHR1cmVGbG9hdCA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0Pigq
dGhpcyk7CisgICAgICAgICAgICBtX29lc1RleHR1cmVGbG9hdCA9IGVuYWJsZVN1cHBvcnRlZEV4
dGVuc2lvbigiR0xfT0VTX3RleHR1cmVfZmxvYXQiKQorICAgICAgICAgICAgICAgID8gc3RkOjpt
YWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXQ+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUZsb2F0LmdldCgpOwogICAgIH0KLSAgICBpZiAo
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikK
LSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190
ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
bmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7CiAgICAgICAgIGlmICghbV9vZXNU
ZXh0dXJlRmxvYXRMaW5lYXIpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpOwotICAgICAg
ICAgICAgbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1
cmVGbG9hdExpbmVhcj4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXRMaW5l
YXIgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVh
ciIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdExp
bmVhcj4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNU
ZXh0dXJlRmxvYXRMaW5lYXIuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVND
SUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikKLSAgICAgICAgJiYgbV9jb250
ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQi
KSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9o
YWxmX2Zsb2F0IikpIHsKICAgICAgICAgaWYgKCFtX29lc1RleHR1cmVIYWxmRmxvYXQpIHsKLSAg
ICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09F
U190ZXh0dXJlX2hhbGZfZmxvYXQiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9h
dCA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdD4oKnRoaXMpOworICAgICAg
ICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJH
TF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91
bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdD4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0LmdldCgpOwogICAgIH0KLSAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9s
aW5lYXIiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygi
R0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSkgeworICAgIGlmIChlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpKSB7CiAg
ICAgICAgIGlmICghbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyKSB7Ci0gICAgICAgICAgICBt
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9o
YWxmX2Zsb2F0X2xpbmVhciIpOwotICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGlu
ZWFyID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyPigqdGhpcyk7
CisgICAgICAgICAgICBtX29lc1RleHR1cmVIYWxmRmxvYXRMaW5lYXIgPSBlbmFibGVTdXBwb3J0
ZWRFeHRlbnNpb24oIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikKKyAgICAgICAg
ICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcj4oKnRo
aXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlSGFs
ZkZsb2F0TGluZWFyLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShuYW1lLCAiT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKQotICAgICAgICAmJiBtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSkg
eworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdmVydGV4X2FycmF5
X29iamVjdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNWZXJ0ZXhBcnJheU9iamVjdCkgewotICAg
ICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VT
X3ZlcnRleF9hcnJheV9vYmplY3QiKTsKLSAgICAgICAgICAgIG1fb2VzVmVydGV4QXJyYXlPYmpl
Y3QgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1ZlcnRleEFycmF5T2JqZWN0PigqdGhpcyk7CisgICAg
ICAgICAgICBtX29lc1ZlcnRleEFycmF5T2JqZWN0ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9u
KCJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1h
a2VfdW5pcXVlPE9FU1ZlcnRleEFycmF5T2JqZWN0PigqdGhpcykgOiBudWxscHRyOwogICAgICAg
ICB9CiAgICAgICAgIHJldHVybiBtX29lc1ZlcnRleEFycmF5T2JqZWN0LmdldCgpOwogICAgIH0K
LSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX2VsZW1lbnRfaW5kZXhf
dWludCIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJH
TF9PRVNfZWxlbWVudF9pbmRleF91aW50IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShuYW1lLCAiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpKSB7CiAgICAgICAgIGlmICghbV9v
ZXNFbGVtZW50SW5kZXhVaW50KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50Iik7Ci0gICAgICAg
ICAgICBtX29lc0VsZW1lbnRJbmRleFVpbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU0VsZW1lbnRJ
bmRleFVpbnQ+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzRWxlbWVudEluZGV4VWludCA9IGVu
YWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpCisgICAg
ICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU0VsZW1lbnRJbmRleFVpbnQ+KCp0aGlz
KSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzRWxlbWVudEluZGV4
VWludC5nZXQoKTsKICAgICB9CkBAIC0xOTEsNDEgKzE4Myw1MyBAQCBXZWJHTEV4dGVuc2lvbiog
V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQog
ICAgICAgICAgICAgbV93ZWJnbExvc2VDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTExv
c2VDb250ZXh0PigqdGhpcyk7CiAgICAgICAgIHJldHVybiBtX3dlYmdsTG9zZUNvbnRleHQuZ2V0
KCk7CiAgICAgfQotICAgIGlmICgoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lU
X1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKSkKLSAgICAgICAgJiYgV2ViR0xDb21wcmVz
c2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xD
b21wcmVzc2VkVGV4dHVyZUFUQykKLSAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVy
ZUFUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQz4oKnRoaXMp
OworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfV0VCR0xfY29t
cHJlc3NlZF90ZXh0dXJlX2F0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRU
ZXh0dXJlQVRDKSB7CisgICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMgPSBX
ZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMpCisgICAgICAgICAgICAg
ICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM+KCp0aGlzKSA6
IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xDb21wcmVzc2VkVGV4
dHVyZUFUQy5nZXQoKTsKICAgICB9Ci0gICAgaWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5h
bWUsICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIikpCi0gICAgICAgICYm
IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAg
ICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKQotICAgICAgICAgICAgbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlUFZSVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQz4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5h
bWUsICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIikpIHsKKyAgICAgICAg
aWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQykgeworICAgICAgICAgICAgbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlUFZSVEMgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OnN1
cHBvcnRlZCgqdGhpcykKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xD
b21wcmVzc2VkVGV4dHVyZVBWUlRDPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAg
ICAgIHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5nZXQoKTsKICAgICB9Ci0g
ICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2NvbXByZXNzZWRfdGV4
dHVyZV9zM3RjIikKLSAgICAgICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBv
cnRlZCgqdGhpcykpIHsKLSAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RD
KQotICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQyA9IHN0ZDo6bWFrZV91
bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM+KCp0aGlzKTsKKyAgICBpZiAoZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKSkg
eworICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMpIHsKKyAgICAgICAg
ICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJl
UzNUQzo6c3VwcG9ydGVkKCp0aGlzKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1
ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQz4oKnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAg
fQogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQy5nZXQoKTsKICAg
ICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlcHRoX3Rl
eHR1cmUiKQotICAgICAgICAmJiBXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCpncmFwaGlj
c0NvbnRleHQzRCgpKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xEZXB0aFRleHR1cmUpCi0gICAg
ICAgICAgICBtX3dlYmdsRGVwdGhUZXh0dXJlID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlcHRo
VGV4dHVyZT4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJX
RUJHTF9kZXB0aF90ZXh0dXJlIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsRGVwdGhUZXh0dXJl
KSB7CisgICAgICAgICAgICBtX3dlYmdsRGVwdGhUZXh0dXJlID0gV2ViR0xEZXB0aFRleHR1cmU6
OnN1cHBvcnRlZCgqbV9jb250ZXh0KQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1
ZTxXZWJHTERlcHRoVGV4dHVyZT4oKnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAgfQogICAgICAg
ICByZXR1cm4gbV93ZWJnbERlcHRoVGV4dHVyZS5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RyYXdfYnVmZmVycyIpICYmIHN1cHBvcnRz
RHJhd0J1ZmZlcnMoKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJX
RUJHTF9kcmF3X2J1ZmZlcnMiKSkgewogICAgICAgICBpZiAoIW1fd2ViZ2xEcmF3QnVmZmVycykg
ewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgi
R0xfRVhUX2RyYXdfYnVmZmVycyIpOwotICAgICAgICAgICAgbV93ZWJnbERyYXdCdWZmZXJzID0g
c3RkOjptYWtlX3VuaXF1ZTxXZWJHTERyYXdCdWZmZXJzPigqdGhpcyk7CisgICAgICAgICAgICBp
ZiAoIXN1cHBvcnRzRHJhd0J1ZmZlcnMoKSkKKyAgICAgICAgICAgICAgICBtX3dlYmdsRHJhd0J1
ZmZlcnMgPSBudWxscHRyOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyAiR0xf
RVhUX2RyYXdfYnVmZmVycyIgfSk7CisgICAgICAgICAgICAgICAgbV93ZWJnbERyYXdCdWZmZXJz
ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERyYXdCdWZmZXJzPigqdGhpcyk7CisgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEcmF3QnVmZmVycy5nZXQoKTsK
ICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkFOR0xFX2luc3Rh
bmNlZF9hcnJheXMiKSAmJiBBTkdMRUluc3RhbmNlZEFycmF5czo6c3VwcG9ydGVkKCp0aGlzKSkg
eworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJBTkdMRV9pbnN0YW5jZWRf
YXJyYXlzIikpIHsKICAgICAgICAgaWYgKCFtX2FuZ2xlSW5zdGFuY2VkQXJyYXlzKSB7Ci0gICAg
ICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9BTkdM
RV9pbnN0YW5jZWRfYXJyYXlzIik7Ci0gICAgICAgICAgICBtX2FuZ2xlSW5zdGFuY2VkQXJyYXlz
ID0gc3RkOjptYWtlX3VuaXF1ZTxBTkdMRUluc3RhbmNlZEFycmF5cz4oKnRoaXMpOworICAgICAg
ICAgICAgaWYgKCFBTkdMRUluc3RhbmNlZEFycmF5czo6c3VwcG9ydGVkKCp0aGlzKSkKKyAgICAg
ICAgICAgICAgICBtX2FuZ2xlSW5zdGFuY2VkQXJyYXlzID0gbnVsbHB0cjsKKyAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3Vy
ZUVuYWJsZWQoQVNDSUlMaXRlcmFsIHsgIkdMX0FOR0xFX2luc3RhbmNlZF9hcnJheXMiIH0pOwor
ICAgICAgICAgICAgICAgIG1fYW5nbGVJbnN0YW5jZWRBcnJheXMgPSBzdGQ6Om1ha2VfdW5pcXVl
PEFOR0xFSW5zdGFuY2VkQXJyYXlzPigqdGhpcyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIG1fYW5nbGVJbnN0YW5jZWRBcnJheXMuZ2V0KCk7CiAgICAgfQpAQCAt
MjM0LDEwICsyMzgsMTEgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgICAgIG1fd2ViZ2xEZWJ1
Z1JlbmRlcmVySW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4o
KnRoaXMpOwogICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvLmdldCgpOwog
ICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVidWdf
c2hhZGVycyIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRz
KCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkgewotICAgICAgICBpZiAoIW1f
d2ViZ2xEZWJ1Z1NoYWRlcnMpCi0gICAgICAgICAgICBtX3dlYmdsRGVidWdTaGFkZXJzID0gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnU2hhZGVycz4oKnRoaXMpOworICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19zaGFkZXJzIikpIHsKKyAgICAgICAg
aWYgKCFtX3dlYmdsRGVidWdTaGFkZXJzKSB7CisgICAgICAgICAgICBtX3dlYmdsRGVidWdTaGFk
ZXJzID0gbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsg
IkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIgfSkKKyAgICAgICAgICAgICAgICA/
IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1Z1NoYWRlcnM+KCp0aGlzKSA6IG51bGxwdHI7Cisg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMuZ2V0KCk7CiAgICAg
fQogCkBAIC0yNTEsMTA5ICsyNTYsMTA5IEBAIFZlY3RvcjxTdHJpbmc+IFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpCiAgICAgaWYgKG1faXNQZW5kaW5nUG9s
aWN5UmVzb2x1dGlvbikKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAKLSAgICBpZiAobV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9ibGVuZF9taW5tYXgiKSkK
LSAgICAgICAgcmVzdWx0LmFwcGVuZCgiRVhUX2JsZW5kX21pbm1heCIpOwotICAgIGlmIChtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX3NSR0IiKSkKLSAgICAgICAg
cmVzdWx0LmFwcGVuZCgiRVhUX3NSR0IiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoIkdMX0VYVF9mcmFnX2RlcHRoIikpCi0gICAgICAgIHJlc3VsdC5hcHBl
bmQoIkVYVF9mcmFnX2RlcHRoIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpKQotICAgICAgICByZXN1bHQuYXBwZW5k
KCJPRVNfdGV4dHVyZV9mbG9hdCIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpCi0gICAgICAgIHJlc3Vs
dC5hcHBlbmQoIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpOwotICAgIGlmIChtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpKQot
ICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0Iik7Ci0gICAgaWYg
KG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxm
X2Zsb2F0X2xpbmVhciIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdGV4dHVyZV9oYWxm
X2Zsb2F0X2xpbmVhciIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cygiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIikpCi0gICAgICAgIHJlc3VsdC5hcHBl
bmQoIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4
dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpIHx8IG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9BUkJfc2hhZGVyX3RleHR1cmVfbG9k
IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKTsKLSAg
ICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF90ZXh0dXJl
X2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJFWFRfdGV4dHVy
ZV9maWx0ZXJfYW5pc290cm9waWMiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25z
KCkuc3VwcG9ydHMoIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IikpCi0gICAgICAgIHJlc3Vs
dC5hcHBlbmQoIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50IikpCi0g
ICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKTsKLSAgICByZXN1
bHQuYXBwZW5kKCJXRUJHTF9sb3NlX2NvbnRleHQiKTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF9ibGVuZF9taW5tYXgi
IH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJFWFRfYmxlbmRfbWlu
bWF4IiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVND
SUlMaXRlcmFsIHsgIkdMX0VYVF9zUkdCIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJ
SUxpdGVyYWwgeyAiRVhUX3NSR0IiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX2ZyYWdfZGVwdGgiIH0pKQorICAg
ICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJFWFRfZnJhZ19kZXB0aCIgfSk7Cisg
ICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7
ICJHTF9PRVNfdGV4dHVyZV9mbG9hdCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlM
aXRlcmFsIHsgIk9FU190ZXh0dXJlX2Zsb2F0IiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2Zsb2F0
X2xpbmVhciIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU190
ZXh0dXJlX2Zsb2F0X2xpbmVhciIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiB9
KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfaGFs
Zl9mbG9hdCIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRz
KEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIgfSkpCisg
ICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU190ZXh0dXJlX2hhbGZfZmxv
YXRfbGluZWFyIiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIgfSkpCisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZl
cyIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJ
TGl0ZXJhbCB7ICJHTF9FWFRfc2hhZGVyX3RleHR1cmVfbG9kIiB9KSB8fCBtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfQVJCX3NoYWRlcl90ZXh0
dXJlX2xvZCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIkVYVF9z
aGFkZXJfdGV4dHVyZV9sb2QiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJv
cGljIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiRVhUX3RleHR1
cmVfZmlsdGVyX2FuaXNvdHJvcGljIiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0
IiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3ZlcnRleF9h
cnJheV9vYmplY3QiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIgfSkpCisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU19lbGVtZW50X2luZGV4X3VpbnQi
IH0pOworICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2xvc2VfY29udGV4
dCIgfSk7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZCgqdGhp
cykpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1
cmVfYXRjIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQktJVF9X
RUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIiB9KTsKICAgICBpZiAoV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJX
RUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIik7CisgICAgICAgIHJlc3VsdC5h
cHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZy
dGMiIH0pOwogICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKCp0
aGlzKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3Mz
dGMiKTsKLSAgICBpZiAoV2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqZ3JhcGhpY3NDb250
ZXh0M0QoKSkpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlcHRoX3RleHR1cmUiKTsK
KyAgICBpZiAoV2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqbV9jb250ZXh0KSkKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfZGVwdGhfdGV4dHVyZSIgfSk7
CiAgICAgaWYgKHN1cHBvcnRzRHJhd0J1ZmZlcnMoKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgi
V0VCR0xfZHJhd19idWZmZXJzIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFs
IHsgIldFQkdMX2RyYXdfYnVmZmVycyIgfSk7CiAgICAgaWYgKEFOR0xFSW5zdGFuY2VkQXJyYXlz
OjpzdXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJBTkdMRV9pbnN0YW5j
ZWRfYXJyYXlzIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRz
KCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkKLSAgICAgICAgcmVzdWx0LmFw
cGVuZCgiV0VCR0xfZGVidWdfc2hhZGVycyIpOwotICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2Rl
YnVnX3JlbmRlcmVyX2luZm8iKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwg
eyAiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9BTkdMRV90cmFuc2xhdGVkX3No
YWRlcl9zb3VyY2UiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJX
RUJHTF9kZWJ1Z19zaGFkZXJzIiB9KTsKKyAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7
ICJXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIiB9KTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0
YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdD
M0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2ht
ZW50LCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygp
IHx8ICF2YWxpZGF0ZUZyYW1lYnVmZmVyRnVuY1BhcmFtZXRlcnMoImdldEZyYW1lYnVmZmVyQXR0
YWNobWVudFBhcmFtZXRlciIsIHRhcmdldCwgYXR0YWNobWVudCkpCi0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCiAgICAgaWYgKCFt
X2ZyYW1lYnVmZmVyQmluZGluZyB8fCAhbV9mcmFtZWJ1ZmZlckJpbmRpbmctPm9iamVjdCgpKSB7
CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09Q
RVJBVElPTiwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJubyBmcmFtZWJ1
ZmZlciBib3VuZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIH0KICAgICAKLSAgICBXZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0
ID0gbV9mcmFtZWJ1ZmZlckJpbmRpbmctPmdldEF0dGFjaG1lbnRPYmplY3QoYXR0YWNobWVudCk7
CisgICAgYXV0byogb2JqZWN0ID0gbV9mcmFtZWJ1ZmZlckJpbmRpbmctPmdldEF0dGFjaG1lbnRP
YmplY3QoYXR0YWNobWVudCk7CiAgICAgaWYgKCFvYmplY3QpIHsKICAgICAgICAgaWYgKHBuYW1l
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBF
KQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6Tk9O
RSk7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29u
dGV4dDNEOjpOT05FKTsKICAgICAgICAgLy8gT3BlbkdMIEVTIDIuMCBzcGVjaWZpZXMgSU5WQUxJ
RF9FTlVNIGluIHRoaXMgY2FzZSwgd2hpbGUgZGVza3RvcCBHTAogICAgICAgICAvLyBzcGVjaWZp
ZXMgSU5WQUxJRF9PUEVSQVRJT04uCiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNz
Q29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0
ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICAKLSAgICBBU1NFUlQo
b2JqZWN0LT5pc1RleHR1cmUoKSB8fCBvYmplY3QtPmlzUmVuZGVyYnVmZmVyKCkpOwogICAgIGlm
IChvYmplY3QtPmlzVGV4dHVyZSgpKSB7CiAgICAgICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
VFlQRToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkUpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihHcmFw
aGljc0NvbnRleHQzRDo6VEVYVFVSRSk7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUU6Ci0gICAgICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xUZXh0dXJlPihyZWludGVycHJldF9jYXN0PFdl
YkdMVGV4dHVyZSo+KG9iamVjdCkpKTsKKyAgICAgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHJl
aW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJlJj4oKm9iamVjdCkpOwogICAgICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEVWRUw6CiAg
ICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVY
VFVSRV9DVUJFX01BUF9GQUNFOgogICAgICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9DT0xPUl9FTkNPRElOR19FWFQ6IHsKICAgICAgICAgICAgIEdDM0RpbnQg
dmFsdWUgPSAwOwogICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1l
bnRQYXJhbWV0ZXJpdih0YXJnZXQsIGF0dGFjaG1lbnQsIHBuYW1lLCAmdmFsdWUpOwotICAgICAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdmFs
dWU7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBmb3IgdGV4dHVyZSBh
dHRhY2htZW50Iik7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CisgICAgICAgIEFT
U0VSVChvYmplY3QtPmlzUmVuZGVyYnVmZmVyKCkpOwogICAgICAgICBzd2l0Y2ggKHBuYW1lKSB7
CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
T0JKRUNUX1RZUEU6Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29u
dGV4dDNEOjpSRU5ERVJCVUZGRVIpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSKTsKICAgICAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRToKLSAg
ICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZl
cj4ocmVpbnRlcnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZlcio+KG9iamVjdCkpKTsKKyAgICAg
ICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5kZXJidWZm
ZXImPigqb2JqZWN0KSk7CiAgICAgICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpGUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HX0VYVDogewogICAgICAgICAgICAgaWYgKCFtX2V4dHNS
R0IpIHsKICAgICAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQz
RDo6SU5WQUxJRF9FTlVNLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgImlu
dmFsaWQgcGFyYW1ldGVyIG5hbWUgZm9yIHJlbmRlcmJ1ZmZlciBhdHRhY2htZW50Iik7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgV2ViR0xSZW5kZXJidWZmZXIq
IHJlbmRlckJ1ZmZlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5kZXJidWZmZXIqPihvYmpl
Y3QpOwogICAgICAgICAgICAgR0MzRGVudW0gcmVuZGVyQnVmZmVyRm9ybWF0ID0gcmVuZGVyQnVm
ZmVyLT5nZXRJbnRlcm5hbEZvcm1hdCgpOwogICAgICAgICAgICAgQVNTRVJUKHJlbmRlckJ1ZmZl
ckZvcm1hdCAhPSBFeHRlbnNpb25zM0Q6OlNSR0JfRVhUICYmIHJlbmRlckJ1ZmZlckZvcm1hdCAh
PSBFeHRlbnNpb25zM0Q6OlNSR0JfQUxQSEFfRVhUKTsKICAgICAgICAgICAgIGlmIChyZW5kZXJC
dWZmZXJGb3JtYXQgPT0gRXh0ZW5zaW9uczNEOjpTUkdCOF9BTFBIQThfRVhUKQotICAgICAgICAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oRXh0ZW5zaW9uczNEOjpTUkdCX0VYVCk7Ci0gICAg
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOwor
ICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oRXh0ZW5zaW9uczNE
OjpTUkdCX0VYVCk7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdy
YXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1l
dGVyIG5hbWUgZm9yIHJlbmRlcmJ1ZmZlciBhdHRhY2htZW50Iik7Ci0gICAgICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAg
fQogICAgIH0KIH0KQEAgLTM2NCwyMSArMzY5LDIyIEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250
ZXh0Ojp2YWxpZGF0ZUZyYW1lYnVmZmVyRnVuY1BhcmFtZXRlcnMoY29uc3QgY2hhciogZnVuY3Rp
CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VO
VU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgdGFyZ2V0Iik7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CisgICAgLy8gRklYTUU6IFdoeSBkb2VzIHRoaXMgcmV0dXJuIHRydWUgdW5jb25k
aXRpb25hbGx5IGZvciBDT0xPUl9BVFRBQ0hNRU5UMCwKKyAgICAvLyBidXQgZmFsc2UgZm9yIG90
aGVyIENPTE9SX0FUVEFDSE1FTlQgdmFsdWVzIGlmIG1fd2ViZ2xEcmF3QnVmZmVycyBpcyBmYWxz
ZT8KICAgICBzd2l0Y2ggKGF0dGFjaG1lbnQpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpDT0xPUl9BVFRBQ0hNRU5UMDoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9B
VFRBQ0hNRU5UOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQVRUQUNITUVO
VDoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6
Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAg
ICAgICBpZiAobV93ZWJnbERyYXdCdWZmZXJzCi0gICAgICAgICAgICAmJiBhdHRhY2htZW50ID4g
R3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwCisgICAgICAgICAgICAmJiBhdHRh
Y2htZW50ID49IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMAogICAgICAgICAg
ICAgJiYgYXR0YWNobWVudCA8IHN0YXRpY19jYXN0PEdDM0RlbnVtPihHcmFwaGljc0NvbnRleHQz
RDo6Q09MT1JfQVRUQUNITUVOVDAgKyBnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkpKQotICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgc3ludGhlc2l6
ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAi
aW52YWxpZCBhdHRhY2htZW50Iik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAg
cmV0dXJuIHRydWU7CiB9CiAgICAgCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6cmVuZGVy
YnVmZmVyU3RvcmFnZShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpCkBAIC00NTUsNyArNDYxLDcgQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNsZWFyKEdDM0RiaXRmaWVsZCBtYXNrKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9ICJmcmFtZWJ1ZmZlciBp
bmNvbXBsZXRlIjsKLSAgICBpZiAobV9mcmFtZWJ1ZmZlckJpbmRpbmcgJiYgIW1fZnJhbWVidWZm
ZXJCaW5kaW5nLT5vbkFjY2VzcyhncmFwaGljc0NvbnRleHQzRCgpLCAmcmVhc29uKSkgeworICAg
IGlmIChtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAhbV9mcmFtZWJ1ZmZlckJpbmRpbmctPm9uQWNj
ZXNzKG1fY29udGV4dC5nZXQoKSwgJnJlYXNvbikpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJy
b3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OLCAiY2xl
YXIiLCByZWFzb24pOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDY0LDExICs0NzAsMTEg
QEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNsZWFyKEdDM0RiaXRmaWVsZCBtYXNrKQog
ICAgIG1hcmtDb250ZXh0Q2hhbmdlZCgpOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAo
aXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7
Ci0gICAgY29uc3QgaW50IGludFplcm8gPSAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwog
ICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVf
VEVYVFVSRToKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsK
QEAgLTQ3OSw3ICs0ODUsNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
QUxQSEFfQklUUzoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4obV9ib3VuZEFycmF5QnVm
ZmVyKSk7CisgICAgICAgIHJldHVybiBtX2JvdW5kQXJyYXlCdWZmZXI7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6QkxFTkQ6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVy
KHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORF9DT0xPUjoKQEAgLTUw
MywxNiArNTA5LDE2IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBh
cmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xP
Ul9XUklURU1BU0s6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIocG5h
bWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfVEVYVFVSRV9GT1JN
QVRTOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDMyQXJyYXk+
KFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMuZGF0YSgpLCBt
X2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5zaXplKCkpKSk7CisgICAgICAgIHJldHVybiBVaW50
MzJBcnJheTo6Y3JlYXRlKG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLmRhdGEoKSwgbV9jb21w
cmVzc2VkVGV4dHVyZUZvcm1hdHMuc2l6ZSgpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpDVUxMX0ZBQ0U6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBuYW1lKTsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVUxMX0ZBQ0VfTU9ERToKICAgICAgICAgcmV0
dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpDVVJSRU5UX1BST0dSQU06Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFz
c1JlZlB0cjxXZWJHTFByb2dyYW0+KG1fY3VycmVudFByb2dyYW0pKTsKKyAgICAgICAgcmV0dXJu
IG1fY3VycmVudFByb2dyYW07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQklU
UzoKICAgICAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAhbV9hdHRyaWJ1dGVzLmRl
cHRoKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhpbnRaZXJvKTsKKyAgICAgICAg
ICAgIHJldHVybiAwOwogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DTEVBUl9WQUxVRToKICAgICAgICAgcmV0
dXJuIGdldEZsb2F0UGFyYW1ldGVyKHBuYW1lKTsKQEAgLTUyNyw5ICs1MzMsOSBAQCBXZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUp
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RElUSEVSOgogICAgICAgICByZXR1cm4gZ2V0
Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RUxF
TUVOVF9BUlJBWV9CVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQ
YXNzUmVmUHRyPFdlYkdMQnVmZmVyPihtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1l
bnRBcnJheUJ1ZmZlcigpKSk7CisgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKG1fYm91bmRWZXJ0
ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVudEFycmF5QnVmZmVyKCkpOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oUGFzc1JlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPihtX2ZyYW1lYnVmZmVyQmluZGluZykp
OworICAgICAgICByZXR1cm4gbV9mcmFtZWJ1ZmZlckJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6RlJPTlRfRkFDRToKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFy
YW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpHRU5FUkFURV9NSVBN
QVBfSElOVDoKQEAgLTU3Nyw5ICs1ODMsOSBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UkVEX0JJVFM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUp
OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9CSU5ESU5HOgotICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+KG1f
cmVuZGVyYnVmZmVyQmluZGluZykpOworICAgICAgICByZXR1cm4gbV9yZW5kZXJidWZmZXJCaW5k
aW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkVSOgotICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKFN0cmluZygiV2ViS2l0IFdlYkdMIikpOworICAgICAgICByZXR1cm4g
U3RyaW5nIHsgQVNDSUlMaXRlcmFsIHsgIldlYktpdCBXZWJHTCIgfSB9OwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlNBTVBMRV9CVUZGRVJTOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFy
YW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTQU1QTEVfQ09WRVJB
R0VfSU5WRVJUOgpAQCAtNTkzLDcgKzU5OSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpTQ0lTU09SX1RFU1Q6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1l
dGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTSEFESU5HX0xBTkdVQUdF
X1ZFUlNJT046Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oIldlYkdMIEdMU0wgRVMgMS4w
ICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFO
R1VBR0VfVkVSU0lPTikgKyAiKSIpOworICAgICAgICByZXR1cm4gIldlYkdMIEdMU0wgRVMgMS4w
ICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFO
R1VBR0VfVkVSU0lPTikgKyAiKSI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJ
TF9CQUNLX0ZBSUw6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFt
ZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9CQUNLX0ZVTkM6CkBAIC02
MTAsNyArNjE2LDcgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFy
YW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJh
bWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQklUUzoK
ICAgICAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAhbV9hdHRyaWJ1dGVzLnN0ZW5j
aWwpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKGludFplcm8pOworICAgICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQ0xFQVJfVkFMVUU6CiAgICAgICAgIHJl
dHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwpAQCAtNjMzLDYxICs2MzksNjEgQEAgV2ViR0xH
ZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNVQlBJWEVMX0JJVFM6CiAgICAgICAgIHJl
dHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfQklORElOR18yRDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVm
UHRyPFdlYkdMVGV4dHVyZT4obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4
dHVyZTJEQmluZGluZykpOworICAgICAgICByZXR1cm4gbV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVU
ZXh0dXJlVW5pdF0udGV4dHVyZTJEQmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVA6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
UGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+KG1fdGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVu
aXRdLnRleHR1cmVDdWJlTWFwQmluZGluZykpOworICAgICAgICByZXR1cm4gbV90ZXh0dXJlVW5p
dHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4dHVyZUN1YmVNYXBCaW5kaW5nOwogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19BTElHTk1FTlQ6CiAgICAgICAgIHJldHVybiBnZXRJ
bnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19G
TElQX1lfV0VCR0w6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV91bnBhY2tGbGlwWSk7
CisgICAgICAgIHJldHVybiBtX3VucGFja0ZsaXBZOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOworICAgICAgICByZXR1cm4gbV91bnBh
Y2tQcmVtdWx0aXBseUFscGhhOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19D
T0xPUlNQQUNFX0NPTlZFUlNJT05fV0VCR0w6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
bV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lvbik7CisgICAgICAgIHJldHVybiBtX3VucGFja0Nv
bG9yc3BhY2VDb252ZXJzaW9uOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFTkRPUjoK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhTdHJpbmcoIldlYktpdCIpKTsKKyAgICAgICAg
cmV0dXJuIFN0cmluZyB7IEFTQ0lJTGl0ZXJhbCB7ICJXZWJLaXQiIH0gfTsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpWRVJTSU9OOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCJX
ZWJHTCAxLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVS
U0lPTikgKyAiKSIpOworICAgICAgICByZXR1cm4gIldlYkdMIDEuMCAoIiArIG1fY29udGV4dC0+
Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRVJTSU9OKSArICIpIjsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpWSUVXUE9SVDoKICAgICAgICAgcmV0dXJuIGdldFdlYkdMSW50QXJy
YXlQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpGUkFHTUVOVF9TSEFE
RVJfREVSSVZBVElWRV9ISU5UX09FUzogLy8gT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzCiAgICAg
ICAgIGlmIChtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMpCiAgICAgICAgICAgICByZXR1cm4gZ2V0
VW5zaWduZWRJbnRQYXJhbWV0ZXIoRXh0ZW5zaW9uczNEOjpGUkFHTUVOVF9TSEFERVJfREVSSVZB
VElWRV9ISU5UX09FUyk7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4
dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFt
ZSwgT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBXZWJH
TERlYnVnUmVuZGVyZXJJbmZvOjpVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTDoKICAgICAgICAgaWYg
KG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbykKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8obV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkVSKSk7Cisg
ICAgICAgICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6
OlJFTkRFUkVSKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBX
RUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBXZWJHTERl
YnVnUmVuZGVyZXJJbmZvOjpVTk1BU0tFRF9WRU5ET1JfV0VCR0w6CiAgICAgICAgIGlmIChtX3dl
YmdsRGVidWdSZW5kZXJlckluZm8pCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1f
Y29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1IpKTsKKyAgICAgICAg
ICAgIHJldHVybiBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVORE9S
KTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
RU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBXRUJHTF9kZWJ1
Z19yZW5kZXJlcl9pbmZvIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlZF
UlRFWF9BUlJBWV9CSU5ESU5HX09FUzogLy8gT0VTX3ZlcnRleF9hcnJheV9vYmplY3QKICAgICAg
ICAgaWYgKG1fb2VzVmVydGV4QXJyYXlPYmplY3QpIHsKLSAgICAgICAgICAgIGlmICghbV9ib3Vu
ZFZlcnRleEFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3QoKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4o
c3RhdGljX2Nhc3Q8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyo+KG1fYm91bmRWZXJ0ZXhBcnJh
eU9iamVjdC5nZXQoKSkpKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAg
ICAgICAgICAgIGlmIChtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgp
KQorICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgcmV0dXJuIG1h
a2VSZWZQdHIoc3RhdGljX2Nhc3Q8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyY+KCptX2JvdW5k
VmVydGV4QXJyYXlPYmplY3QpKTsKICAgICAgICAgfQogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFs
aWQgcGFyYW1ldGVyIG5hbWUsIE9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IG5vdCBlbmFibGVkIik7
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6Ok1BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVDog
Ly8gRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljCiAgICAgICAgIGlmIChtX2V4dFRleHR1
cmVGaWx0ZXJBbmlzb3Ryb3BpYykKICAgICAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBh
cmFtZXRlcihFeHRlbnNpb25zM0Q6Ok1BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCk7CiAg
ICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0s
ICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgRVhUX3RleHR1cmVfZmls
dGVyX2FuaXNvdHJvcGljIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6Ok1B
WF9DT0xPUl9BVFRBQ0hNRU5UU19FWFQ6IC8vIEVYVF9kcmF3X2J1ZmZlcnMgQkVHSU4KICAgICAg
ICAgaWYgKG1fd2ViZ2xEcmF3QnVmZmVycykKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oZ2V0TWF4Q29sb3JBdHRhY2htZW50cygpKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRNYXhD
b2xvckF0dGFjaG1lbnRzKCk7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIg
bmFtZSwgV0VCR0xfZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBFeHRlbnNp
b25zM0Q6Ok1BWF9EUkFXX0JVRkZFUlNfRVhUOgogICAgICAgICBpZiAobV93ZWJnbERyYXdCdWZm
ZXJzKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhnZXRNYXhEcmF3QnVmZmVycygp
KTsKKyAgICAgICAgICAgIHJldHVybiBnZXRNYXhEcmF3QnVmZmVycygpOwogICAgICAgICBzeW50
aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1l
dGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RyYXdfYnVmZmVycyBub3QgZW5h
YmxlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGlmIChtX3dlYmdsRHJhd0J1ZmZlcnMKICAg
ICAgICAgICAgICYmIHBuYW1lID49IEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIwX0VYVApAQCAt
Njk3LDEwICs3MDMsMTAgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0
UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgICAgICAgICAgICAgIHZhbHVlID0gbV9mcmFt
ZWJ1ZmZlckJpbmRpbmctPmdldERyYXdCdWZmZXIocG5hbWUpOwogICAgICAgICAgICAgZWxzZSAv
LyBlbXVsYXRlZCBiYWNrYnVmZmVyCiAgICAgICAgICAgICAgICAgdmFsdWUgPSBtX2JhY2tEcmF3
QnVmZmVyOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAg
ICAgICByZXR1cm4gdmFsdWU7CiAgICAgICAgIH0KICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlk
IHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDE4NzRmZTVhNWMzODMxMTk4
ZjQzYjk0YzIwOTZiOWVlYmU0M2U0NzAuLjBjNjFkZDY1NDEwNzE0MWZlY2ZlN2M0Yjc5MGU0YTE5
ZjNlYmMwMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTMyLDE2ICszMiwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBXZWJHTFJlbmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSB7CiBwdWJsaWM6CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNF
bGVtZW50JiwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzKTsKLSAgICBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmLCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNE
PiwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzKTsKKyAgICBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIEdyYXBoaWNz
Q29udGV4dDNEQXR0cmlidXRlcyk7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBpc1dlYkdMMSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIFdlYkdMRXh0ZW5zaW9uKiBnZXRFeHRl
bnNpb24oY29uc3QgU3RyaW5nJikgZmluYWw7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFBhcmFtZXRl
cihHQzNEZW51bSBwbmFtZSkgZmluYWw7CisgICAgV2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0Rl
bnVtIHBuYW1lKSBmaW5hbDsKICAgICBWZWN0b3I8U3RyaW5nPiBnZXRTdXBwb3J0ZWRFeHRlbnNp
b25zKCkgZmluYWw7CiAKLSAgICBXZWJHTEdldEluZm8gZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50
UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0g
cG5hbWUpIGZpbmFsOworICAgIFdlYkdMQW55IGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1l
KSBmaW5hbDsKICAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
KSBmaW5hbDsKICAgICBib29sIHZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyhjb25z
dCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVu
dCkgZmluYWw7CiAgICAgdm9pZCBoaW50KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gbW9kZSkg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IDI3NzBkYzFiNmUxZjM4M2VmY2M3NzI1MDMyYWU1
MDUyZTc5YjNjZjYuLjc3MDM0YzE5NTg2Yjg2MzkwZDRmZjE5NTFmZTdlYzEwN2I4MGEyNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsOSArMjQsOSBAQAogICovCiAKICNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAKICNpZiBFTkFC
TEUoV0VCR0wpCi0jaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgogCiAjaW5j
bHVkZSAiQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgpA
QCAtNDIwLDE3ICs0MjAsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZShIVE0KICAgICAgICAgcmV0
dXJuIHJlbmRlcmluZ0NvbnRleHQ7CiAgICAgfQogCi0gICAgSG9zdFdpbmRvdyogaG9zdFdpbmRv
dyA9IGRvY3VtZW50LnZpZXcoKS0+cm9vdCgpLT5ob3N0V2luZG93KCk7Ci0gICAgUmVmUHRyPEdy
YXBoaWNzQ29udGV4dDNEPiBjb250ZXh0KEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoYXR0cmli
dXRlcywgaG9zdFdpbmRvdykpOwotCisgICAgYXV0byBjb250ZXh0ID0gR3JhcGhpY3NDb250ZXh0
M0Q6OmNyZWF0ZShhdHRyaWJ1dGVzLCBkb2N1bWVudC52aWV3KCktPnJvb3QoKS0+aG9zdFdpbmRv
dygpKTsKICAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgp
KSB7CiAgICAgICAgIGNhbnZhcy5kaXNwYXRjaEV2ZW50KFdlYkdMQ29udGV4dEV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLndlYmdsY29udGV4dGNyZWF0aW9uZXJyb3JFdmVudCwgZmFsc2UsIHRy
dWUsICJDb3VsZCBub3QgY3JlYXRlIGEgV2ViR0wgY29udGV4dC4iKSk7CiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIH0KIAotICAgIEV4dGVuc2lvbnMzRCYgZXh0ZW5zaW9ucyA9IGNvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKTsKLSAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfRVhU
X2RlYnVnX21hcmtlciIpKQotICAgICAgICBleHRlbnNpb25zLnB1c2hHcm91cE1hcmtlckVYVCgi
V2ViR0xSZW5kZXJpbmdDb250ZXh0Iik7CisgICAgYXV0byYgZXh0ZW5zaW9ucyA9IGNvbnRleHQt
PmdldEV4dGVuc2lvbnMoKTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVy
YWwgeyAiR0xfRVhUX2RlYnVnX21hcmtlciIgfSkpCisgICAgICAgIGV4dGVuc2lvbnMucHVzaEdy
b3VwTWFya2VyRVhUKEFTQ0lJTGl0ZXJhbCB7ICJXZWJHTFJlbmRlcmluZ0NvbnRleHQiIH0pOwog
CiAjaWYgRU5BQkxFKFdFQkdMMikgJiYgUExBVEZPUk0oTUFDKQogICAgIC8vIGdsVGV4U3RvcmFn
ZSgpIHdhcyBvbmx5IGFkZGVkIHRvIENvcmUgaW4gT3BlbkdMIDQuMi4KQEAgLTQzOSwxMyArNDM3
LDEzIEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoSFRNCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
I2VuZGlmCiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4g
cmVuZGVyaW5nQ29udGV4dCA9IG51bGxwdHI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U+IHJlbmRlcmluZ0NvbnRleHQ7CiAjaWYgRU5BQkxFKFdFQkdMMikK
ICAgICBpZiAodHlwZSA9PSAid2ViZ2wyIikKLSAgICAgICAgcmVuZGVyaW5nQ29udGV4dCA9IHN0
ZDo6bWFrZV91bmlxdWU8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oY2FudmFzLCBXVEZNb3ZlKGNv
bnRleHQpLCBhdHRyaWJ1dGVzKTsKKyAgICAgICAgcmVuZGVyaW5nQ29udGV4dCA9IHN0ZDo6bWFr
ZV91bmlxdWU8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oY2FudmFzLCBjb250ZXh0LnJlbGVhc2VO
b25OdWxsKCksIGF0dHJpYnV0ZXMpOwogICAgIGVsc2UKICNlbmRpZgotICAgICAgICByZW5kZXJp
bmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KGNhbnZh
cywgV1RGTW92ZShjb250ZXh0KSwgYXR0cmlidXRlcyk7CisgICAgICAgIHJlbmRlcmluZ0NvbnRl
eHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oY2FudmFzLCBjb250
ZXh0LnJlbGVhc2VOb25OdWxsKCksIGF0dHJpYnV0ZXMpOwogICAgIHJlbmRlcmluZ0NvbnRleHQt
PnN1c3BlbmRJZk5lZWRlZCgpOwogCiAgICAgcmV0dXJuIHJlbmRlcmluZ0NvbnRleHQ7CkBAIC00
NTQsNDQgKzQ1MiwyOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKEhUTQogV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxlbWVudCYg
cGFzc2VkQ2FudmFzLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgOiBD
YW52YXNSZW5kZXJpbmdDb250ZXh0KHBhc3NlZENhbnZhcykKICAgICAsIEFjdGl2ZURPTU9iamVj
dCgmcGFzc2VkQ2FudmFzLmRvY3VtZW50KCkpCi0gICAgLCBtX2NvbnRleHQobnVsbHB0cikKICAg
ICAsIG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50VGltZXIoKnRoaXMsICZXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRMb3N0RXZlbnQpCi0gICAgLCBtX3Jlc3RvcmVB
bGxvd2VkKGZhbHNlKQogICAgICwgbV9yZXN0b3JlVGltZXIoKnRoaXMsICZXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0KQotICAgICwgbV9nZW5lcmF0ZWRJbWFn
ZUNhY2hlKDApCi0gICAgLCBtX2NvbnRleHRMb3N0KGZhbHNlKQotICAgICwgbV9jb250ZXh0TG9z
dE1vZGUoU3ludGhldGljTG9zdENvbnRleHQpCiAgICAgLCBtX2F0dHJpYnV0ZXMoYXR0cmlidXRl
cykKLSAgICAsIG1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUodHJ1ZSkKICAgICAsIG1fbnVt
R0xFcnJvcnNUb0NvbnNvbGVBbGxvd2VkKG1heEdMRXJyb3JzQWxsb3dlZFRvQ29uc29sZSkKICAg
ICAsIG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbih0cnVlKQotICAgICwgbV9oYXNSZXF1ZXN0
ZWRQb2xpY3lSZXNvbHV0aW9uKGZhbHNlKQogewogfQogCi1XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRD
YW52YXMsIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4mJiBjb250ZXh0LCBXZWJHTENvbnRleHRB
dHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCitXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlKEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFJlZjxH
cmFwaGljc0NvbnRleHQzRD4mJiBjb250ZXh0LCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzIGF0dHJp
YnV0ZXMpCiAgICAgOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0KHBhc3NlZENhbnZhcykKICAgICAs
IEFjdGl2ZURPTU9iamVjdCgmcGFzc2VkQ2FudmFzLmRvY3VtZW50KCkpCiAgICAgLCBtX2NvbnRl
eHQoV1RGTW92ZShjb250ZXh0KSkKICAgICAsIG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50VGlt
ZXIoKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRMb3N0
RXZlbnQpCi0gICAgLCBtX3Jlc3RvcmVBbGxvd2VkKGZhbHNlKQogICAgICwgbV9yZXN0b3JlVGlt
ZXIoKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0
KQogICAgICwgbV9nZW5lcmF0ZWRJbWFnZUNhY2hlKDQpCi0gICAgLCBtX2NvbnRleHRMb3N0KGZh
bHNlKQotICAgICwgbV9jb250ZXh0TG9zdE1vZGUoU3ludGhldGljTG9zdENvbnRleHQpCiAgICAg
LCBtX2F0dHJpYnV0ZXMoYXR0cmlidXRlcykKLSAgICAsIG1fc3ludGhlc2l6ZWRFcnJvcnNUb0Nv
bnNvbGUodHJ1ZSkKICAgICAsIG1fbnVtR0xFcnJvcnNUb0NvbnNvbGVBbGxvd2VkKG1heEdMRXJy
b3JzQWxsb3dlZFRvQ29uc29sZSkKLSAgICAsIG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbihm
YWxzZSkKLSAgICAsIG1faGFzUmVxdWVzdGVkUG9saWN5UmVzb2x1dGlvbihmYWxzZSkKIHsKLSAg
ICBBU1NFUlQobV9jb250ZXh0KTsKICAgICBtX2NvbnRleHRHcm91cCA9IFdlYkdMQ29udGV4dEdy
b3VwOjpjcmVhdGUoKTsKLSAgICBtX2NvbnRleHRHcm91cC0+YWRkQ29udGV4dCh0aGlzKTsKKyAg
ICBtX2NvbnRleHRHcm91cC0+YWRkQ29udGV4dCgqdGhpcyk7CiAgICAgCiAgICAgbV9jb250ZXh0
LT5zZXRXZWJHTENvbnRleHQodGhpcyk7CiAKLSAgICBtX21heFZpZXdwb3J0RGltc1swXSA9IG1f
bWF4Vmlld3BvcnREaW1zWzFdID0gMDsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBo
aWNzQ29udGV4dDNEOjpNQVhfVklFV1BPUlRfRElNUywgbV9tYXhWaWV3cG9ydERpbXMpOwogCiAg
ICAgc2V0dXBGbGFncygpOwpAQCAtNjE5LDcgKzYwMiw3IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6On5XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKCkKICAgICBpZiAoIW1faXNQZW5kaW5n
UG9saWN5UmVzb2x1dGlvbikgewogICAgICAgICBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCk7
CiAgICAgICAgIGRlc3Ryb3lHcmFwaGljc0NvbnRleHQzRCgpOwotICAgICAgICBtX2NvbnRleHRH
cm91cC0+cmVtb3ZlQ29udGV4dCh0aGlzKTsKKyAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92
ZUNvbnRleHQoKnRoaXMpOwogICAgIH0KIH0KIApAQCAtOTEzLDcgKzg5Niw3IEBAIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YmluZEJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFdlYkdM
QnVmZmVyKiBidWZmZXIpCiAgICAgaWYgKCFjaGVja09iamVjdFRvQmVCb3VuZCgiYmluZEJ1ZmZl
ciIsIGJ1ZmZlciwgZGVsZXRlZCkpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoZGVsZXRlZCkK
LSAgICAgICAgYnVmZmVyID0gMDsKKyAgICAgICAgYnVmZmVyID0gbnVsbHB0cjsKICAgICBpZiAo
YnVmZmVyICYmIGJ1ZmZlci0+Z2V0VGFyZ2V0KCkgJiYgYnVmZmVyLT5nZXRUYXJnZXQoKSAhPSB0
YXJnZXQpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklO
VkFMSURfT1BFUkFUSU9OLCAiYmluZEJ1ZmZlciIsICJidWZmZXJzIGNhbiBub3QgYmUgdXNlZCB3
aXRoIG11bHRpcGxlIHRhcmdldHMiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTM5NSw3ICsxMzc4
LDcgQEAgUmVmUHRyPFdlYkdMQnVmZmVyPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVh
dGVCdWZmZXIoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIGF1dG8gYnVmZmVyID0gV2ViR0xCdWZmZXI6OmNyZWF0ZSgqdGhp
cyk7Ci0gICAgYWRkU2hhcmVkT2JqZWN0KGJ1ZmZlci5wdHIoKSk7CisgICAgYWRkU2hhcmVkT2Jq
ZWN0KGJ1ZmZlci5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUoYnVmZmVyKTsKIH0KIApAQCAt
MTQwNCw3ICsxMzg3LDcgQEAgUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmNyZWF0ZUZyYW1lYnVmZmVyKCkKICAgICBpZiAoaXNDb250ZXh0TG9zdE9y
UGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIGJ1ZmZlciA9IFdl
YkdMRnJhbWVidWZmZXI6OmNyZWF0ZSgqdGhpcyk7Ci0gICAgYWRkQ29udGV4dE9iamVjdChidWZm
ZXIucHRyKCkpOworICAgIGFkZENvbnRleHRPYmplY3QoYnVmZmVyLmdldCgpKTsKICAgICByZXR1
cm4gV1RGTW92ZShidWZmZXIpOwogfQogCkBAIC0xNDEzLDcgKzEzOTYsNyBAQCBSZWZQdHI8V2Vi
R0xUZXh0dXJlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVUZXh0dXJlKCkKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICBhdXRvIHRleHR1cmUgPSBXZWJHTFRleHR1cmU6OmNyZWF0ZSgqdGhpcyk7Ci0gICAgYWRk
U2hhcmVkT2JqZWN0KHRleHR1cmUucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdCh0ZXh0dXJl
LmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92ZSh0ZXh0dXJlKTsKIH0KIApAQCAtMTQyMiw3ICsx
NDA1LDcgQEAgUmVmUHRyPFdlYkdMUHJvZ3JhbT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Y3JlYXRlUHJvZ3JhbSgpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBwcm9ncmFtID0gV2ViR0xQcm9ncmFtOjpjcmVh
dGUoKnRoaXMpOwotICAgIGFkZFNoYXJlZE9iamVjdChwcm9ncmFtLnB0cigpKTsKKyAgICBhZGRT
aGFyZWRPYmplY3QocHJvZ3JhbS5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUocHJvZ3JhbSk7
CiB9CiAKQEAgLTE0MzEsNyArMTQxNCw3IEBAIFJlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4gV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlUmVuZGVyYnVmZmVyKCkKICAgICBpZiAoaXND
b250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRv
IGJ1ZmZlciA9IFdlYkdMUmVuZGVyYnVmZmVyOjpjcmVhdGUoKnRoaXMpOwotICAgIGFkZFNoYXJl
ZE9iamVjdChidWZmZXIucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdChidWZmZXIuZ2V0KCkp
OwogICAgIHJldHVybiBXVEZNb3ZlKGJ1ZmZlcik7CiB9CiAKQEAgLTE0NDUsNyArMTQyOCw3IEBA
IFJlZlB0cjxXZWJHTFNoYWRlcj4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlU2hh
ZGVyKEdDM0RlbnVtIHR5cGUpCiAgICAgfQogCiAgICAgYXV0byBzaGFkZXIgPSBXZWJHTFNoYWRl
cjo6Y3JlYXRlKCp0aGlzLCB0eXBlKTsKLSAgICBhZGRTaGFyZWRPYmplY3Qoc2hhZGVyLnB0cigp
KTsKKyAgICBhZGRTaGFyZWRPYmplY3Qoc2hhZGVyLmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92
ZShzaGFkZXIpOwogfQogCkBAIC0xNDc4LDcgKzE0NjEsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmRlbGV0ZUJ1ZmZlcihXZWJHTEJ1ZmZlciogYnVmZmVyKQogICAgIGlmICht
X2JvdW5kQXJyYXlCdWZmZXIgPT0gYnVmZmVyKQogICAgICAgICBtX2JvdW5kQXJyYXlCdWZmZXIg
PSBudWxscHRyOwogCi0gICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT51bmJpbmRCdWZmZXIo
YnVmZmVyKTsKKyAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPnVuYmluZEJ1ZmZlcigqYnVm
ZmVyKTsKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVGcmFtZWJ1
ZmZlcihXZWJHTEZyYW1lYnVmZmVyKiBmcmFtZWJ1ZmZlcikKQEAgLTIxODQsMTAgKzIxNjcsMTAg
QEAgR0MzRGludCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBdHRyaWJMb2NhdGlvbihX
ZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnMKICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRBdHRy
aWJMb2NhdGlvbihvYmplY3RPclplcm8ocHJvZ3JhbSksIG5hbWUpOwogfQogCi1XZWJHTEdldElu
Zm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVt
IHRhcmdldCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRCdWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSkK
IHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgYm9vbCB2YWxpZCA9
IGZhbHNlOwogICAgIGlmICh0YXJnZXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZF
UiB8fCB0YXJnZXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVSKQpA
QCAtMjIwNywxOSArMjE5MCwxOSBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6Z2V0QnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRAogI2VuZGlmCiAg
ICAgaWYgKCF2YWxpZCkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0QnVmZmVyUGFyYW1ldGVyIiwgImludmFsaWQgdGFyZ2V0
Iik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogCiAgICAgaWYgKHBuYW1lICE9IEdyYXBoaWNzQ29udGV4dDNEOjpCVUZGRVJf
U0laRSAmJiBwbmFtZSAhPSBHcmFwaGljc0NvbnRleHQzRDo6QlVGRkVSX1VTQUdFKSB7CiAgICAg
ICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJn
ZXRCdWZmZXJQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAog
ICAgIEdDM0RpbnQgdmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0QnVmZmVyUGFyYW1ldGVy
aXYodGFyZ2V0LCBwbmFtZSwgJnZhbHVlKTsKICAgICBpZiAocG5hbWUgPT0gR3JhcGhpY3NDb250
ZXh0M0Q6OkJVRkZFUl9TSVpFKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsK
LSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odmFsdWUp
KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4odmFsdWUpOwogfQogCiBzdGQ6Om9wdGlvbmFsPFdlYkdMQ29udGV4dEF0dHJpYnV0ZXM+IFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldENvbnRleHRBdHRyaWJ1dGVzKCkKQEAgLTIyNDYs
MzAgKzIyMjksMzAgQEAgR0MzRGVudW0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0RXJy
b3IoKQogICAgIHJldHVybiBtX2NvbnRleHQtPmdldEVycm9yKCk7CiB9CiAKLVdlYkdMR2V0SW5m
byBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRQcm9ncmFtUGFyYW1ldGVyKFdlYkdMUHJv
Z3JhbSogcHJvZ3JhbSwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRQcm9ncmFtUGFyYW1ldGVyKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgR0Mz
RGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFs
aWRhdGVXZWJHTE9iamVjdCgiZ2V0UHJvZ3JhbVBhcmFtZXRlciIsIHByb2dyYW0pKQotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAg
R0MzRGludCB2YWx1ZSA9IDA7CiAgICAgc3dpdGNoIChwbmFtZSkgewogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRFTEVURV9TVEFUVVM6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
cHJvZ3JhbS0+aXNEZWxldGVkKCkpOworICAgICAgICByZXR1cm4gcHJvZ3JhbS0+aXNEZWxldGVk
KCk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkFMSURBVEVfU1RBVFVTOgogICAgICAg
ICBtX2NvbnRleHQtPmdldFByb2dyYW1pdihvYmplY3RPclplcm8ocHJvZ3JhbSksIHBuYW1lLCAm
dmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PGJvb2w+KHZh
bHVlKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29sPih2YWx1ZSk7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6TElOS19TVEFUVVM6Ci0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8ocHJvZ3JhbS0+Z2V0TGlua1N0YXR1cygpKTsKKyAgICAgICAgcmV0dXJuIHByb2dyYW0t
PmdldExpbmtTdGF0dXMoKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBVFRBQ0hFRF9T
SEFERVJTOgogICAgICAgICBtX2NvbnRleHQtPmdldFByb2dyYW1pdihvYmplY3RPclplcm8ocHJv
Z3JhbSksIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVl
KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFD
VElWRV9BVFRSSUJVVEVTOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFDVElWRV9VTklG
T1JNUzoKICAgICAgICAgbV9jb250ZXh0LT5nZXROb25CdWlsdEluQWN0aXZlU3ltYm9sQ291bnQo
b2JqZWN0T3JaZXJvKHByb2dyYW0pLCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVN
LCAiZ2V0UHJvZ3JhbVBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogfQogCkBAIC0yMjgwLDE3ICsyMjYzLDE3IEBAIFN0cmluZyBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRQcm9ncmFtSW5mb0xvZyhXZWJHTFByb2dyYW0qIHByb2dyYW0pCiAgICAgcmV0
dXJuIGVuc3VyZU5vdE51bGwobV9jb250ZXh0LT5nZXRQcm9ncmFtSW5mb0xvZyhvYmplY3RPclpl
cm8ocHJvZ3JhbSkpKTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBu
YW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVy
UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlz
Q29udGV4dExvc3RPclBlbmRpbmcoKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAodGFyZ2V0ICE9IEdyYXBoaWNzQ29udGV4
dDNEOjpSRU5ERVJCVUZGRVIpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlciIsICJpbnZh
bGlkIHRhcmdldCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIH0KICAgICBpZiAoIW1fcmVuZGVyYnVmZmVyQmluZGluZyB8fCAh
bV9yZW5kZXJidWZmZXJCaW5kaW5nLT5vYmplY3QoKSkgewogICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJnZXRSZW5kZXJidWZm
ZXJQYXJhbWV0ZXIiLCAibm8gcmVuZGVyYnVmZmVyIGJvdW5kIik7Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgaWYg
KG1fcmVuZGVyYnVmZmVyQmluZGluZy0+Z2V0SW50ZXJuYWxGb3JtYXQoKSA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6REVQVEhfU1RFTkNJTApAQCAtMjMxNywxMiArMjMwMCwxMiBAQCBXZWJHTEdldElu
Zm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKEdD
M0RlbnVtIHRhcmdldAogICAgICAgICAgICAgdmFsdWUgPSA4OwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9JTlRFUk5BTF9G
T1JNQVQ6Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fcmVuZGVyYnVmZmVyQmlu
ZGluZy0+Z2V0SW50ZXJuYWxGb3JtYXQoKSk7CisgICAgICAgICAgICByZXR1cm4gbV9yZW5kZXJi
dWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgpOwogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5V
TSwgImdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7
Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsK
KyAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIH0KIAogICAgIEdDM0RpbnQgdmFsdWUgPSAwOwpA
QCAtMjMzNiwzMiArMjMxOSwzMiBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldAogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFOgogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkU6CiAgICAgICAgIG1fY29u
dGV4dC0+Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYodGFyZ2V0LCBwbmFtZSwgJnZhbHVlKTsK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAgIHJldHVybiB2YWx1
ZTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9S
TUFUOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fcmVuZGVyYnVmZmVyQmluZGluZy0+
Z2V0SW50ZXJuYWxGb3JtYXQoKSk7CisgICAgICAgIHJldHVybiBtX3JlbmRlcmJ1ZmZlckJpbmRp
bmctPmdldEludGVybmFsRm9ybWF0KCk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6
ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFJlbmRlcmJ1ZmZl
clBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogfQogCi1XZWJH
TEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0U2hhZGVyUGFyYW1ldGVyKFdl
YkdMU2hhZGVyKiBzaGFkZXIsIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0U2hhZGVyUGFyYW1ldGVyKFdlYkdMU2hhZGVyKiBzaGFkZXIsIEdD
M0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZh
bGlkYXRlV2ViR0xPYmplY3QoImdldFNoYWRlclBhcmFtZXRlciIsIHNoYWRlcikpCi0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgR0Mz
RGludCB2YWx1ZSA9IDA7CiAgICAgc3dpdGNoIChwbmFtZSkgewogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkRFTEVURV9TVEFUVVM6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc2hh
ZGVyLT5pc0RlbGV0ZWQoKSk7CisgICAgICAgIHJldHVybiBzaGFkZXItPmlzRGVsZXRlZCgpOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBJTEVfU1RBVFVTOgogICAgICAgICBtX2Nv
bnRleHQtPmdldFNoYWRlcml2KG9iamVjdE9yWmVybyhzaGFkZXIpLCBwbmFtZSwgJnZhbHVlKTsK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxib29sPih2YWx1ZSkpOwor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWUpOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OlNIQURFUl9UWVBFOgogICAgICAgICBtX2NvbnRleHQtPmdldFNoYWRlcml2
KG9iamVjdE9yWmVybyhzaGFkZXIpLCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZhbHVlKSk7CisgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmFsdWUpOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRT
aGFkZXJQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIApA
QCAtMjQxMCwxMyArMjM5MywxMyBAQCBTdHJpbmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0U2hhZGVyU291cmNlKFdlYkdMU2hhZGVyKiBzaGFkZXIpCiAgICAgcmV0dXJuIGVuc3VyZU5v
dE51bGwoc2hhZGVyLT5nZXRTb3VyY2UoKSk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFRleFBhcmFt
ZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgV2ViR0xUZXh0dXJlKiB0ZXggPSB2YWxpZGF0ZVRleHR1
cmVCaW5kaW5nKCJnZXRUZXhQYXJhbWV0ZXIiLCB0YXJnZXQsIGZhbHNlKTsKICAgICBpZiAoIXRl
eCkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9NQUdfRklMVEVSOgpAQCAtMjQyNCwyNyArMjQw
NywyNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFy
YW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlRFWFRVUkVfV1JBUF9TOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVf
V1JBUF9UOgogICAgICAgICBtX2NvbnRleHQtPmdldFRleFBhcmFtZXRlcml2KHRhcmdldCwgcG5h
bWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8dW5z
aWduZWQgaW50Pih2YWx1ZSkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KHZhbHVlKTsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6VEVYVFVSRV9NQVhfQU5JU09UUk9QWV9F
WFQ6IC8vIEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYwogICAgICAgICBpZiAobV9leHRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWMpIHsKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0VGV4
UGFyYW1ldGVyaXYodGFyZ2V0LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2YWx1ZSkpOworICAgICAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZSk7CiAgICAgICAgIH0KICAgICAg
ICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdl
dFRleFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfdGV4dHVyZV9maWx0
ZXJfYW5pc290cm9waWMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50
aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0VGV4UGFy
YW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKLVdlYkdMR2V0
SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSog
cHJvZ3JhbSwgY29uc3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qIHVuaWZvcm1Mb2NhdGlvbikKK1dl
YkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFt
KiBwcm9ncmFtLCBjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogdW5pZm9ybUxvY2F0aW9uKQog
ewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmpl
Y3QoImdldFVuaWZvcm0iLCBwcm9ncmFtKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIXVuaWZvcm1Mb2NhdGlvbiB8fCB1
bmlmb3JtTG9jYXRpb24tPnByb2dyYW0oKSAhPSBwcm9ncmFtKSB7CiAgICAgICAgIHN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgImdldFVuaWZv
cm0iLCAibm8gdW5pZm9ybWxvY2F0aW9uIG9yIG5vdCB2YWxpZCBmb3IgdGhpcyBwcm9ncmFtIik7
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQogICAgIEdDM0RpbnQgbG9jYXRpb24gPSB1bmlmb3JtTG9jYXRpb24tPmxvY2F0aW9u
KCk7CiAKQEAgLTI1MTksNyArMjUwMiw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QKICAgICBk
ZWZhdWx0OgogICAgICAgICAvLyBDYW4ndCBoYW5kbGUgdGhpcyB0eXBlCiAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFLCAiZ2V0VW5pZm9y
bSIsICJ1bmhhbmRsZWQgdHlwZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICBzd2l0Y2ggKGJhc2VUeXBlKSB7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQ6IHsKQEAgLTI1MjksOCArMjUxMiw4IEBA
IFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdM
UHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9jb250
ZXh0LT5nZXRVbmlmb3JtZnYob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBsb2NhdGlvbiwgdmFsdWUp
OwogICAgICAgICBpZiAobGVuZ3RoID09IDEpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHZhbHVlWzBdKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEZs
b2F0MzJBcnJheT4oRmxvYXQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAg
ICAgICAgIHJldHVybiB2YWx1ZVswXTsKKyAgICAgICAgcmV0dXJuIEZsb2F0MzJBcnJheTo6Y3Jl
YXRlKHZhbHVlLCBsZW5ndGgpOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlQ6IHsKICAgICAgICAgR0MzRGludCB2YWx1ZVs0XSA9IHswfTsKQEAgLTI1MzksOCArMjUyMiw4
IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdl
YkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9j
b250ZXh0LT5nZXRVbmlmb3JtaXYob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBsb2NhdGlvbiwgdmFs
dWUpOwogICAgICAgICBpZiAobGVuZ3RoID09IDEpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKHZhbHVlWzBdKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRy
PEludDMyQXJyYXk+KEludDMyQXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAg
ICAgICAgcmV0dXJuIHZhbHVlWzBdOworICAgICAgICByZXR1cm4gSW50MzJBcnJheTo6Y3JlYXRl
KHZhbHVlLCBsZW5ndGgpOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCT09M
OiB7CiAgICAgICAgIEdDM0RpbnQgdmFsdWVbNF0gPSB7MH07CkBAIC0yNTQ5LDEyICsyNTMyLDEy
IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdl
YkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9j
b250ZXh0LT5nZXRVbmlmb3JtaXYob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBsb2NhdGlvbiwgdmFs
dWUpOwogICAgICAgICBpZiAobGVuZ3RoID4gMSkgewotICAgICAgICAgICAgYm9vbCBib29sVmFs
dWVbMTZdID0gezB9OworICAgICAgICAgICAgVmVjdG9yPGJvb2w+IHZlY3RvcihsZW5ndGgpOwog
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBqID0gMDsgaiA8IGxlbmd0aDsgaisrKQotICAgICAg
ICAgICAgICAgIGJvb2xWYWx1ZVtqXSA9IHN0YXRpY19jYXN0PGJvb2w+KHZhbHVlW2pdKTsKLSAg
ICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oYm9vbFZhbHVlLCBsZW5ndGgpOworICAgICAg
ICAgICAgICAgIHZlY3RvcltqXSA9IHZhbHVlW2pdOworICAgICAgICAgICAgcmV0dXJuIFdURk1v
dmUodmVjdG9yKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRp
Y19jYXN0PGJvb2w+KHZhbHVlWzBdKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29s
Pih2YWx1ZVswXSk7CiAgICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIG5vdEltcGxlbWVudGVk
KCk7CkBAIC0yNTYyLDcgKzI1NDUsNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0CiAKICAgICAv
LyBJZiB3ZSBnZXQgaGVyZSwgc29tZXRoaW5nIHdlbnQgd3JvbmcgaW4gb3VyIHVuZm9ydHVuYXRl
bHkgY29tcGxleCBsb2dpYyBhYm92ZQogICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX1ZBTFVFLCAiZ2V0VW5pZm9ybSIsICJ1bmtub3duIGVycm9yIik7Ci0g
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBSZWZQ
dHI8V2ViR0xVbmlmb3JtTG9jYXRpb24+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVu
aWZvcm1Mb2NhdGlvbihXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0IFN0cmluZyYgbmFtZSkK
QEAgLTI2MDMsNDMgKzI1ODYsNDMgQEAgUmVmUHRyPFdlYkdMVW5pZm9ybUxvY2F0aW9uPiBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtTG9jYXRpb24oV2ViR0wKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldFZlcnRleEF0dHJpYihHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFu
eSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRyaWIoR0MzRHVpbnQgaW5k
ZXgsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkp
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBpZiAoaW5kZXggPj0gbV9tYXhWZXJ0ZXhBdHRyaWJzKSB7CiAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFLCAiZ2V0VmVydGV4
QXR0cmliIiwgImluZGV4IG91dCBvZiByYW5nZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIGNvbnN0IFdlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlOjpWZXJ0ZXhBdHRyaWJTdGF0ZSYgc3RhdGUgPSBtX2JvdW5k
VmVydGV4QXJyYXlPYmplY3QtPmdldFZlcnRleEF0dHJpYlN0YXRlKGluZGV4KTsKIAogICAgIGlm
ICgoaXNXZWJHTDIoKSB8fCBtX2FuZ2xlSW5zdGFuY2VkQXJyYXlzKSAmJiBwbmFtZSA9PSBHcmFw
aGljc0NvbnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9ESVZJU09SX0FOR0xFKQotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRlLmRpdmlzb3IpOworICAgICAgICByZXR1cm4gc3Rh
dGUuZGl2aXNvcjsKIAogICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HOgogICAgICAgICBpZiAo
KCFpc0dMRVMyQ29tcGxpYW50KCkgJiYgIWluZGV4ICYmIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVj
dC0+Z2V0VmVydGV4QXR0cmliU3RhdGUoMCkuYnVmZmVyQmluZGluZyA9PSBtX3ZlcnRleEF0dHJp
YjBCdWZmZXIpCiAgICAgICAgICAgICB8fCAhc3RhdGUuYnVmZmVyQmluZGluZwogICAgICAgICAg
ICAgfHwgIXN0YXRlLmJ1ZmZlckJpbmRpbmctPm9iamVjdCgpKQotICAgICAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8
V2ViR0xCdWZmZXI+KHN0YXRlLmJ1ZmZlckJpbmRpbmcpKTsKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICByZXR1cm4gc3RhdGUuYnVmZmVyQmluZGluZzsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQ6Ci0gICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oc3RhdGUuZW5hYmxlZCk7CisgICAgICAgIHJldHVybiBzdGF0ZS5l
bmFibGVkOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlf
Tk9STUFMSVpFRDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS5ub3JtYWxpemVk
KTsKKyAgICAgICAgcmV0dXJuIHN0YXRlLm5vcm1hbGl6ZWQ7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9TSVpFOgotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKHN0YXRlLnNpemUpOworICAgICAgICByZXR1cm4gc3RhdGUuc2l6ZTsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX1NUUklERToKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS5vcmlnaW5hbFN0cmlkZSk7CisgICAgICAgIHJldHVy
biBzdGF0ZS5vcmlnaW5hbFN0cmlkZTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJU
RVhfQVRUUklCX0FSUkFZX1RZUEU6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGUu
dHlwZSk7CisgICAgICAgIHJldHVybiBzdGF0ZS50eXBlOwogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkNVUlJFTlRfVkVSVEVYX0FUVFJJQjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4oRmxvYXQzMkFycmF5OjpjcmVhdGUobV92ZXJ0ZXhB
dHRyaWJWYWx1ZVtpbmRleF0udmFsdWUsIDQpKSk7CisgICAgICAgIHJldHVybiBGbG9hdDMyQXJy
YXk6OmNyZWF0ZShtX3ZlcnRleEF0dHJpYlZhbHVlW2luZGV4XS52YWx1ZSwgNCk7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgImdldFZlcnRleEF0dHJpYiIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogfQogCkBAIC0yNjQ3LDggKzI2MzAsNyBAQCBsb25nIGxvbmcgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Z2V0VmVydGV4QXR0cmliT2Zmc2V0KEdDM0R1aW50IGluZGV4LCBHQzNEZQog
ewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiAwOwot
ICAgIEdDM0RzaXplaXB0ciByZXN1bHQgPSBtX2NvbnRleHQtPmdldFZlcnRleEF0dHJpYk9mZnNl
dChpbmRleCwgcG5hbWUpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KHJlc3Vs
dCk7CisgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0VmVydGV4QXR0cmliT2Zmc2V0KGluZGV4LCBw
bmFtZSk7CiB9CiAKIEdDM0Rib29sZWFuIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzQnVm
ZmVyKFdlYkdMQnVmZmVyKiBidWZmZXIpCkBAIC0zMTEwLDggKzMwOTIsOCBAQCB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdD
M0RzaXplaSB3aWR0aAogI3VuZGVmIFBBQ0tFRF9JTlRFUk5BTF9GT1JNQVRfQ0hFQ0sKIAogICAg
IC8vIENhbGN1bGF0ZSBhcnJheSBzaXplLCB0YWtpbmcgaW50byBjb25zaWRlcmF0aW9uIG9mIFBB
Q0tfQUxJR05NRU5ULgotICAgIHVuc2lnbmVkIGludCB0b3RhbEJ5dGVzUmVxdWlyZWQgPSAwOwot
ICAgIHVuc2lnbmVkIGludCBwYWRkaW5nID0gMDsKKyAgICB1bnNpZ25lZCB0b3RhbEJ5dGVzUmVx
dWlyZWQgPSAwOworICAgIHVuc2lnbmVkIHBhZGRpbmcgPSAwOwogICAgIGlmICghbV9pc1JvYnVz
dG5lc3NFWFRTdXBwb3J0ZWQpIHsKICAgICAgICAgR0MzRGVudW0gZXJyb3IgPSBtX2NvbnRleHQt
PmNvbXB1dGVJbWFnZVNpemVJbkJ5dGVzKGZvcm1hdCwgdHlwZSwgd2lkdGgsIGhlaWdodCwgbV9w
YWNrQWxpZ25tZW50LCAmdG90YWxCeXRlc1JlcXVpcmVkLCAmcGFkZGluZyk7CiAgICAgICAgIGlm
IChlcnJvciAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9fRVJST1IpIHsKQEAgLTQ1ODcsNyArNDU2
OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliUG9pbnRl
cihHQzNEdWludCBpbmRleCwgR0MzRGludCBzaXplCiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgLy8gRGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgdGhlIGJvdW5kIGJ1ZmZlciBj
YW4gaG9sZCwgZ2l2ZW4gdGhlIG9mZnNldCwgc2l6ZSwgdHlwZSBhbmQgc3RyaWRlCi0gICAgdW5z
aWduZWQgaW50IHR5cGVTaXplID0gc2l6ZUluQnl0ZXModHlwZSk7CisgICAgYXV0byB0eXBlU2l6
ZSA9IHNpemVJbkJ5dGVzKHR5cGUpOwogICAgIGlmICghdHlwZVNpemUpIHsKICAgICAgICAgc3lu
dGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgInZlcnRleEF0
dHJpYlBvaW50ZXIiLCAiaW52YWxpZCB0eXBlIik7CiAgICAgICAgIHJldHVybjsKQEAgLTQ1OTgs
NyArNDU4MCw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmli
UG9pbnRlcihHQzNEdWludCBpbmRleCwgR0MzRGludCBzaXplCiAgICAgfQogICAgIEdDM0RzaXpl
aSBieXRlc1BlckVsZW1lbnQgPSBzaXplICogdHlwZVNpemU7CiAKLSAgICBtX2JvdW5kVmVydGV4
QXJyYXlPYmplY3QtPnNldFZlcnRleEF0dHJpYlN0YXRlKGluZGV4LCBieXRlc1BlckVsZW1lbnQs
IHNpemUsIHR5cGUsIG5vcm1hbGl6ZWQsIHN0cmlkZSwgc3RhdGljX2Nhc3Q8R0MzRGludHB0cj4o
b2Zmc2V0KSwgbV9ib3VuZEFycmF5QnVmZmVyKTsKKyAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmpl
Y3QtPnNldFZlcnRleEF0dHJpYlN0YXRlKGluZGV4LCBieXRlc1BlckVsZW1lbnQsIHNpemUsIHR5
cGUsIG5vcm1hbGl6ZWQsIHN0cmlkZSwgc3RhdGljX2Nhc3Q8R0MzRGludHB0cj4ob2Zmc2V0KSwg
Km1fYm91bmRBcnJheUJ1ZmZlcik7CiAgICAgbV9jb250ZXh0LT52ZXJ0ZXhBdHRyaWJQb2ludGVy
KGluZGV4LCBzaXplLCB0eXBlLCBub3JtYWxpemVkLCBzdHJpZGUsIHN0YXRpY19jYXN0PEdDM0Rp
bnRwdHI+KG9mZnNldCkpOwogfQogCkBAIC00Njg5LDcgKzQ2NzEsNyBAQCBQbGF0Zm9ybUxheWVy
KiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKICAgICBy
ZXR1cm4gKCFpc0NvbnRleHRMb3N0KCkgJiYgIW1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikg
PyBtX2NvbnRleHQtPnBsYXRmb3JtTGF5ZXIoKSA6IDA7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6cmVtb3ZlU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmpl
Y3QpCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlbW92ZVNoYXJlZE9iamVjdChX
ZWJHTFNoYXJlZE9iamVjdCYgb2JqZWN0KQogewogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJl
c29sdXRpb24pCiAgICAgICAgIHJldHVybjsKQEAgLTQ2OTcsNyArNDY3OSw3IEBAIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVtb3ZlU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2Jq
ZWN0KiBvYmplY3QpCiAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZU9iamVjdChvYmplY3QpOwog
fQogCi12b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZFNoYXJlZE9iamVjdChXZWJH
TFNoYXJlZE9iamVjdCogb2JqZWN0KQordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjph
ZGRTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmIG9iamVjdCkKIHsKICAgICBpZiAobV9p
c1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKQogICAgICAgICByZXR1cm47CkBAIC00NzA2LDIxICs0
Njg4LDIxIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRkU2hhcmVkT2JqZWN0
KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QpCiAgICAgbV9jb250ZXh0R3JvdXAtPmFkZE9iamVj
dChvYmplY3QpOwogfQogCi12b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlbW92ZUNv
bnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OnJlbW92ZUNvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0JiBv
YmplY3QpCiB7CiAgICAgaWYgKG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikKICAgICAgICAg
cmV0dXJuOwogCi0gICAgbV9jb250ZXh0T2JqZWN0cy5yZW1vdmUob2JqZWN0KTsKKyAgICBtX2Nv
bnRleHRPYmplY3RzLnJlbW92ZSgmb2JqZWN0KTsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjphZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCogb2JqZWN0KQor
dm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29u
dGV4dE9iamVjdCYgb2JqZWN0KQogewogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRp
b24pCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVCghaXNDb250ZXh0TG9zdCgpKTsKLSAg
ICBtX2NvbnRleHRPYmplY3RzLmFkZChvYmplY3QpOworICAgIG1fY29udGV4dE9iamVjdHMuYWRk
KCZvYmplY3QpOwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRldGFjaEFu
ZFJlbW92ZUFsbE9iamVjdHMoKQpAQCAtNDc1OCw1NiArNDc0MCw1NiBAQCBib29sIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitib29sIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUp
CiB7CiAgICAgR0MzRGJvb2xlYW4gdmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0Qm9vbGVh
bnYocG5hbWUsICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxi
b29sPih2YWx1ZSkpOworICAgIHJldHVybiB2YWx1ZTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJvb2xlYW5BcnJheVBhcmFtZXRlcihHQzNEZW51bSBw
bmFtZSkKK1ZlY3Rvcjxib29sPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFu
QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKHBuYW1lICE9IEdyYXBo
aWNzQ29udGV4dDNEOjpDT0xPUl9XUklURU1BU0spIHsKICAgICAgICAgbm90SW1wbGVtZW50ZWQo
KTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygwLCAwKTsKKyAgICAgICAgcmV0dXJuIHsg
fTsKICAgICB9Ci0gICAgR0MzRGJvb2xlYW4gdmFsdWVbNF0gPSB7MH07CisgICAgR0MzRGJvb2xl
YW4gdmFsdWVbNF0gPSB7IDAgfTsKICAgICBtX2NvbnRleHQtPmdldEJvb2xlYW52KHBuYW1lLCB2
YWx1ZSk7Ci0gICAgYm9vbCBib29sVmFsdWVbNF07Ci0gICAgZm9yIChpbnQgaWkgPSAwOyBpaSA8
IDQ7ICsraWkpCi0gICAgICAgIGJvb2xWYWx1ZVtpaV0gPSBzdGF0aWNfY2FzdDxib29sPih2YWx1
ZVtpaV0pOwotICAgIHJldHVybiBXZWJHTEdldEluZm8oYm9vbFZhbHVlLCA0KTsKKyAgICBWZWN0
b3I8Ym9vbD4gdmVjdG9yKDQpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCA0OyArK2kp
CisgICAgICAgIHZlY3RvcltpXSA9IHZhbHVlW2ldOworICAgIHJldHVybiB2ZWN0b3I7CiB9CiAK
LVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRGbG9hdFBhcmFtZXRl
cihHQzNEZW51bSBwbmFtZSkKK2Zsb2F0IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEZs
b2F0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdDM0RmbG9hdCB2YWx1ZSA9IDA7
CiAgICAgbV9jb250ZXh0LT5nZXRGbG9hdHYocG5hbWUsICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgcmV0dXJuIHZhbHVlOwogfQogCi1XZWJHTEdldEluZm8g
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0SW50UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQoraW50IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEludFBhcmFtZXRlcihHQzNEZW51
bSBwbmFtZSkKIHsKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBtX2NvbnRleHQtPmdldElu
dGVnZXJ2KHBuYW1lLCAmdmFsdWUpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOwor
ICAgIHJldHVybiB2YWx1ZTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQordW5zaWduZWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoR0MzRGVu
dW0gcG5hbWUpCiB7CiAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAgICAgbV9jb250ZXh0LT5nZXRJ
bnRlZ2VydihwbmFtZSwgJnZhbHVlKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19j
YXN0PHVuc2lnbmVkIGludD4odmFsdWUpKTsKKyAgICByZXR1cm4gdmFsdWU7CiB9CiAKLVdlYkdM
R2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRJbnQ2NFBhcmFtZXRlcihHQzNE
ZW51bSBwbmFtZSkKK2xvbmcgbG9uZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRJbnQ2
NFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNEaW50NjQgdmFsdWUgPSAwOwog
ICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcjY0dihwbmFtZSwgJnZhbHVlKTsKLSAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICByZXR1cm4gdmFsdWU7CiB9CiAKLVdlYkdMR2V0SW5m
byBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRXZWJHTEZsb2F0QXJyYXlQYXJhbWV0ZXIo
R0MzRGVudW0gcG5hbWUpCitSZWZQdHI8RmxvYXQzMkFycmF5PiBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRXZWJHTEZsb2F0QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAg
ICAgR0MzRGZsb2F0IHZhbHVlWzRdID0gezB9OwogICAgIG1fY29udGV4dC0+Z2V0RmxvYXR2KHBu
YW1lLCB2YWx1ZSk7CkBAIC00ODI1LDEwICs0ODA3LDEwIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpnZXRXZWJHTEZsb2F0QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0g
cG5hCiAgICAgZGVmYXVsdDoKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICB9Ci0gICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4oRmxvYXQzMkFycmF5
OjpjcmVhdGUodmFsdWUsIGxlbmd0aCkpKTsKKyAgICByZXR1cm4gRmxvYXQzMkFycmF5OjpjcmVh
dGUodmFsdWUsIGxlbmd0aCk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQorUmVmUHRy
PEludDMyQXJyYXk+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFdlYkdMSW50QXJyYXlQ
YXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGludCB2YWx1ZVs0XSA9IHswfTsK
ICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KHBuYW1lLCB2YWx1ZSk7CkBAIC00ODQ0LDcgKzQ4
MjYsNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJ
bnRBcnJheVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZQogICAgIGRlZmF1bHQ6CiAgICAgICAgIG5v
dEltcGxlbWVudGVkKCk7CiAgICAgfQotICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0
cjxJbnQzMkFycmF5PihJbnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCkpKTsKKyAgICBy
ZXR1cm4gSW50MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgpOwogfQogCiBib29sIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrVGV4dHVyZUNvbXBsZXRlbmVzcyhjb25zdCBjaGFy
KiBmdW5jdGlvbk5hbWUsIGJvb2wgcHJlcGFyZVRvRHJhdykKQEAgLTUwNjgsNyArNTA1MCw3IEBA
IGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVDb21wcmVzc2VkVGV4RnVu
Y0RhdGEoY29uc3QgY2hhciogZnVuY3RpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
LSAgICB1bnNpZ25lZCBpbnQgYnl0ZXNSZXF1aXJlZCA9IDA7CisgICAgdW5zaWduZWQgYnl0ZXNS
ZXF1aXJlZCA9IDA7CiAKICAgICBzd2l0Y2ggKGZvcm1hdCkgewogICAgIGNhc2UgRXh0ZW5zaW9u
czNEOjpDT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhUOgpAQCAtNTMyNSwxNyArNTMwNywxNiBA
QCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlVW5pZm9ybU1hdHJpeFBh
cmFtZXRlcnMoY29uc3QgY2hhciogZnVuYwogCiBXZWJHTEJ1ZmZlciogV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dmFsaWRhdGVCdWZmZXJEYXRhUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5j
dGlvbk5hbWUsIEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gdXNhZ2UpCiB7Ci0gICAgV2ViR0xC
dWZmZXIqIGJ1ZmZlciA9IDA7CisgICAgc3RkOjpvcHRpb25hbDxXZWJHTEJ1ZmZlcio+IGJ1ZmZl
cjsKICAgICBzd2l0Y2ggKHRhcmdldCkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkVM
RU1FTlRfQVJSQVlfQlVGRkVSOgotICAgICAgICBidWZmZXIgPSBtX2JvdW5kVmVydGV4QXJyYXlP
YmplY3QtPmdldEVsZW1lbnRBcnJheUJ1ZmZlcigpLmdldCgpOworICAgICAgICBidWZmZXIgPSBt
X2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1lbnRBcnJheUJ1ZmZlcigpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9CVUZGRVI6CiAgICAg
ICAgIGJ1ZmZlciA9IG1fYm91bmRBcnJheUJ1ZmZlci5nZXQoKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgZGVmYXVsdDoKICNpZiBFTkFCTEUoV0VCR0wyKQotICAgICAgICBib29sIHN1Y2Nlc3MgPSB0
cnVlOwogICAgICAgICBpZiAoaXNXZWJHTDIoKSkgewogICAgICAgICAgICAgc3dpdGNoICh0YXJn
ZXQpIHsKICAgICAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPUFlfUkVBRF9CVUZG
RVI6CkBAIC01MzU2LDE5ICs1MzM3LDE1IEBAIFdlYkdMQnVmZmVyKiBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjp2YWxpZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqCiAgICAg
ICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTklGT1JNX0JVRkZFUjoKICAgICAgICAg
ICAgICAgICBidWZmZXIgPSBtX2JvdW5kVW5pZm9ybUJ1ZmZlci5nZXQoKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgc3VjY2Vz
cyA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICAgICAgaWYgKHN1Y2Nl
c3MpCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmIChidWZmZXIpCisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICNlbmRpZgogICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJpbnZh
bGlkIHRhcmdldCIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgaWYgKCFi
dWZmZXIpIHsKKyAgICBpZiAoIWJ1ZmZlciB8fCAhYnVmZmVyLnZhbHVlKCkpIHsKICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCBm
dW5jdGlvbk5hbWUsICJubyBidWZmZXIiKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQpAQCAtNTM3Niw3ICs1MzUzLDcgQEAgV2ViR0xCdWZmZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OnZhbGlkYXRlQnVmZmVyRGF0YVBhcmFtZXRlcnMoY29uc3QgY2hhcioKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTVFJFQU1fRFJBVzoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpTVEFUSUNfRFJBVzoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEWU5BTUlDX0RS
QVc6Ci0gICAgICAgIHJldHVybiBidWZmZXI7CisgICAgICAgIHJldHVybiBidWZmZXIudmFsdWUo
KTsKICAgICB9CiAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCB1c2FnZSIpOwogICAgIHJldHVybiBudWxs
cHRyOwpAQCAtNTkyNiw2ICs1OTAzLDE2IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6dmVydGV4QXR0cmliRGl2aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2CiAgICAg
bV9jb250ZXh0LT52ZXJ0ZXhBdHRyaWJEaXZpc29yKGluZGV4LCBkaXZpc29yKTsKIH0KIAorYm9v
bCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjplbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oY29u
c3QgY2hhciogZXh0ZW5zaW9uTmFtZUxpdGVyYWwpCit7CisgICAgQVNTRVJUKG1fY29udGV4dCk7
CisgICAgYXV0byYgZXh0ZW5zaW9ucyA9IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpOworICAg
IFN0cmluZyBleHRlbnNpb25OYW1lIHsgQVNDSUlMaXRlcmFsIHsgZXh0ZW5zaW9uTmFtZUxpdGVy
YWwgfSB9OworICAgIGlmICghZXh0ZW5zaW9ucy5zdXBwb3J0cyhleHRlbnNpb25OYW1lKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGV4dGVuc2lvbnMuZW5zdXJlRW5hYmxlZChleHRlbnNp
b25OYW1lKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmgKaW5kZXggNzM5M2EzODYyODMzZmNiODZiYjE3MWIyMDZiMjdiY2VkOWIzOWVj
Zi4uOWY5ZThiNjQxZmY2YmNkMzlhZDI3NTZkMjczNzdkZTIzMjljZGY2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMwLDEzICszMCwxMCBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAj
aW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgIldl
YkdMQW55LmgiCiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIgotI2luY2x1ZGUg
IldlYkdMR2V0SW5mby5oIgotI2luY2x1ZGUgIldlYkdMT2JqZWN0LmgiCiAjaW5jbHVkZSAiV2Vi
R0xUZXh0dXJlLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgotI2luY2x1ZGUgPHJ1bnRpbWUvRmxvYXQz
MkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9JbnQzMkFycmF5Lmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNDgsNyArNDUsNiBAQCBjbGFzcyBFWFRzUkdCOwogY2xhc3MgRVhURnJh
Z0RlcHRoOwogY2xhc3MgSFRNTEltYWdlRWxlbWVudDsKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7
Ci1jbGFzcyBJbWFnZUJ1ZmZlcjsKIGNsYXNzIEltYWdlRGF0YTsKIGNsYXNzIEludFNpemU7CiBj
bGFzcyBPRVNTdGFuZGFyZERlcml2YXRpdmVzOwpAQCAtMTkxLDI0ICsxODcsMjQgQEAgcHVibGlj
OgogICAgIFJlZlB0cjxXZWJHTEFjdGl2ZUluZm8+IGdldEFjdGl2ZVVuaWZvcm0oV2ViR0xQcm9n
cmFtKiwgR0MzRHVpbnQgaW5kZXgpOwogICAgIGJvb2wgZ2V0QXR0YWNoZWRTaGFkZXJzKFdlYkdM
UHJvZ3JhbSosIFZlY3RvcjxSZWZQdHI8V2ViR0xTaGFkZXI+PiYpOwogICAgIEdDM0RpbnQgZ2V0
QXR0cmliTG9jYXRpb24oV2ViR0xQcm9ncmFtKiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICBX
ZWJHTEdldEluZm8gZ2V0QnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0g
cG5hbWUpOworICAgIFdlYkdMQW55IGdldEJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQs
IEdDM0RlbnVtIHBuYW1lKTsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdMQ29udGV4dEF0dHJpYnV0
ZXM+IGdldENvbnRleHRBdHRyaWJ1dGVzKCk7CiAgICAgR0MzRGVudW0gZ2V0RXJyb3IoKTsKICAg
ICB2aXJ0dWFsIFdlYkdMRXh0ZW5zaW9uKiBnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1l
KSA9IDA7Ci0gICAgdmlydHVhbCBXZWJHTEdldEluZm8gZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50
UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0g
cG5hbWUpID0gMDsKLSAgICB2aXJ0dWFsIFdlYkdMR2V0SW5mbyBnZXRQYXJhbWV0ZXIoR0MzRGVu
dW0gcG5hbWUpID0gMDsKLSAgICBXZWJHTEdldEluZm8gZ2V0UHJvZ3JhbVBhcmFtZXRlcihXZWJH
TFByb2dyYW0qLCBHQzNEZW51bSBwbmFtZSk7CisgICAgdmlydHVhbCBXZWJHTEFueSBnZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRh
Y2htZW50LCBHQzNEZW51bSBwbmFtZSkgPSAwOworICAgIHZpcnR1YWwgV2ViR0xBbnkgZ2V0UGFy
YW1ldGVyKEdDM0RlbnVtIHBuYW1lKSA9IDA7CisgICAgV2ViR0xBbnkgZ2V0UHJvZ3JhbVBhcmFt
ZXRlcihXZWJHTFByb2dyYW0qLCBHQzNEZW51bSBwbmFtZSk7CiAgICAgU3RyaW5nIGdldFByb2dy
YW1JbmZvTG9nKFdlYkdMUHJvZ3JhbSopOwotICAgIFdlYkdMR2V0SW5mbyBnZXRSZW5kZXJidWZm
ZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7Ci0gICAgV2ViR0xH
ZXRJbmZvIGdldFNoYWRlclBhcmFtZXRlcihXZWJHTFNoYWRlciosIEdDM0RlbnVtIHBuYW1lKTsK
KyAgICBXZWJHTEFueSBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0U2hhZGVyUGFyYW1ldGVyKFdlYkdMU2hh
ZGVyKiwgR0MzRGVudW0gcG5hbWUpOwogICAgIFN0cmluZyBnZXRTaGFkZXJJbmZvTG9nKFdlYkdM
U2hhZGVyKik7CiAgICAgUmVmUHRyPFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0PiBnZXRTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0MzRGVudW0gcHJlY2lzaW9u
VHlwZSk7CiAgICAgU3RyaW5nIGdldFNoYWRlclNvdXJjZShXZWJHTFNoYWRlciopOwogICAgIHZp
cnR1YWwgVmVjdG9yPFN0cmluZz4gZ2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpID0gMDsKLSAgICBX
ZWJHTEdldEluZm8gZ2V0VGV4UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5h
bWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFdl
YkdMVW5pZm9ybUxvY2F0aW9uKik7CisgICAgV2ViR0xBbnkgZ2V0VGV4UGFyYW1ldGVyKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldFVuaWZvcm0oV2Vi
R0xQcm9ncmFtKiwgY29uc3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qKTsKICAgICBSZWZQdHI8V2Vi
R0xVbmlmb3JtTG9jYXRpb24+IGdldFVuaWZvcm1Mb2NhdGlvbihXZWJHTFByb2dyYW0qLCBjb25z
dCBTdHJpbmcmKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0VmVydGV4QXR0cmliKEdDM0R1aW50IGlu
ZGV4LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0VmVydGV4QXR0cmliKEdDM0R1
aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSk7CiAgICAgbG9uZyBsb25nIGdldFZlcnRleEF0dHJp
Yk9mZnNldChHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUpOwogCiAgICAgdmlydHVhbCB2
b2lkIGhpbnQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBtb2RlKSA9IDA7CkBAIC0zMjMsOCAr
MzE5LDggQEAgcHVibGljOgogICAgIHZvaWQgcGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMo
KSBvdmVycmlkZTsKICAgICBSZWZQdHI8SW1hZ2VEYXRhPiBwYWludFJlbmRlcmluZ1Jlc3VsdHNU
b0ltYWdlRGF0YSgpOwogCi0gICAgdm9pZCByZW1vdmVTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRP
YmplY3QqKTsKLSAgICB2b2lkIHJlbW92ZUNvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0
Kik7CisgICAgdm9pZCByZW1vdmVTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmKTsKKyAg
ICB2b2lkIHJlbW92ZUNvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0Jik7CiAgICAgCiAg
ICAgdW5zaWduZWQgZ2V0TWF4VmVydGV4QXR0cmlicygpIGNvbnN0IHsgcmV0dXJuIG1fbWF4VmVy
dGV4QXR0cmliczsgfQogCkBAIC0zMzUsNyArMzMxLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6
CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxlbWVudCYsIFdlYkdM
Q29udGV4dEF0dHJpYnV0ZXMpOwotICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENh
bnZhc0VsZW1lbnQmLCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4dEF0
dHJpYnV0ZXMpOworICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENhbnZhc0VsZW1l
bnQmLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwog
CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMRHJhd0J1ZmZlcnM7CiAgICAgZnJpZW5kIGNsYXNzIFdl
YkdMRnJhbWVidWZmZXI7CkBAIC0zNjAsOCArMzU2LDggQEAgcHJvdGVjdGVkOgogICAgIGNvbnN0
IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGNh
blN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZv
aWQgYWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Kik7Ci0gICAgdm9pZCBhZGRDb250
ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCopOworICAgIHZvaWQgYWRkU2hhcmVkT2JqZWN0
KFdlYkdMU2hhcmVkT2JqZWN0Jik7CisgICAgdm9pZCBhZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29u
dGV4dE9iamVjdCYpOwogICAgIHZvaWQgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpOwogCiAg
ICAgdm9pZCBkZXN0cm95R3JhcGhpY3NDb250ZXh0M0QoKTsKQEAgLTQwNSw2ICs0MDEsOCBAQCBw
cm90ZWN0ZWQ6CiAKICAgICBXZWJHTFRleHR1cmU6OlRleHR1cmVFeHRlbnNpb25GbGFnIHRleHR1
cmVFeHRlbnNpb25GbGFncygpIGNvbnN0OwogCisgICAgYm9vbCBlbmFibGVTdXBwb3J0ZWRFeHRl
bnNpb24oY29uc3QgY2hhciogZXh0ZW5zaW9uTmFtZUxpdGVyYWwpOworCiAgICAgUmVmUHRyPEdy
YXBoaWNzQ29udGV4dDNEPiBtX2NvbnRleHQ7CiAgICAgUmVmUHRyPFdlYkdMQ29udGV4dEdyb3Vw
PiBtX2NvbnRleHRHcm91cDsKIApAQCAtNDE0LDcgKzQxMiw3IEBAIHByb3RlY3RlZDoKICAgICAv
LyBvbiBob3cgZXhhY3RseSB0aGUgcGxhdGZvcm0gZGlzY292ZXJzIHRoYXQgdGhlIGNvbnRleHQg
d2FzIGxvc3QuIEZvciBiZXR0ZXIKICAgICAvLyBwb3J0YWJpbGl0eSB3ZSBhbHdheXMgZGVmZXIg
dGhlIGRpc3BhdGNoIG9mIHRoZSBldmVudC4KICAgICBUaW1lciBtX2Rpc3BhdGNoQ29udGV4dExv
c3RFdmVudFRpbWVyOwotICAgIGJvb2wgbV9yZXN0b3JlQWxsb3dlZDsKKyAgICBib29sIG1fcmVz
dG9yZUFsbG93ZWQgeyBmYWxzZSB9OwogICAgIFRpbWVyIG1fcmVzdG9yZVRpbWVyOwogCiAgICAg
Ym9vbCBtX25lZWRzVXBkYXRlOwpAQCAtNDMyLDEyICs0MzAsMTAgQEAgcHJvdGVjdGVkOgogCiAg
ICAgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlPiBtX2RlZmF1bHRWZXJ0ZXhBcnJh
eU9iamVjdDsKICAgICBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U+IG1fYm91bmRW
ZXJ0ZXhBcnJheU9iamVjdDsKLSAgICB2b2lkIHNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QoUGFz
c1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZT4gYXJyYXlPYmplY3QpCisKKyAgICB2
b2lkIHNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QoV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2Uq
IGFycmF5T2JqZWN0KQogICAgIHsKLSAgICAgICAgaWYgKGFycmF5T2JqZWN0KQotICAgICAgICAg
ICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0ID0gYXJyYXlPYmplY3Q7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCA9IG1fZGVmYXVsdFZlcnRleEFy
cmF5T2JqZWN0OworICAgICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBhcnJheU9iamVj
dCA/IGFycmF5T2JqZWN0IDogbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiAgICAgfQogICAg
IAogICAgIGNsYXNzIFZlcnRleEF0dHJpYlZhbHVlIHsKQEAgLTQ5MywxMiArNDg5LDEyIEBAIHBy
b3RlY3RlZDoKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlcj5bXT4gbV9idWZmZXJzOwogICAgICAgICBpbnQgbV9jYXBhY2l0eTsKICAgICB9OwotICAg
IExSVUltYWdlQnVmZmVyQ2FjaGUgbV9nZW5lcmF0ZWRJbWFnZUNhY2hlOworICAgIExSVUltYWdl
QnVmZmVyQ2FjaGUgbV9nZW5lcmF0ZWRJbWFnZUNhY2hlIHsgMCB9OwogCiAgICAgR0MzRGludCBt
X21heFRleHR1cmVTaXplOwogICAgIEdDM0RpbnQgbV9tYXhDdWJlTWFwVGV4dHVyZVNpemU7CiAg
ICAgR0MzRGludCBtX21heFJlbmRlcmJ1ZmZlclNpemU7Ci0gICAgR0MzRGludCBtX21heFZpZXdw
b3J0RGltc1syXTsKKyAgICBHQzNEaW50IG1fbWF4Vmlld3BvcnREaW1zWzJdIHsgMCwgMCB9Owog
ICAgIEdDM0RpbnQgbV9tYXhUZXh0dXJlTGV2ZWw7CiAgICAgR0MzRGludCBtX21heEN1YmVNYXBU
ZXh0dXJlTGV2ZWw7CiAKQEAgLTUxMyw4ICs1MDksOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBt
X3VucGFja0ZsaXBZOwogICAgIGJvb2wgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhOwogICAgIEdD
M0RlbnVtIG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb247Ci0gICAgYm9vbCBtX2NvbnRleHRM
b3N0OwotICAgIExvc3RDb250ZXh0TW9kZSBtX2NvbnRleHRMb3N0TW9kZTsKKyAgICBib29sIG1f
Y29udGV4dExvc3QgeyBmYWxzZSB9OworICAgIExvc3RDb250ZXh0TW9kZSBtX2NvbnRleHRMb3N0
TW9kZSB7IFN5bnRoZXRpY0xvc3RDb250ZXh0IH07CiAgICAgV2ViR0xDb250ZXh0QXR0cmlidXRl
cyBtX2F0dHJpYnV0ZXM7CiAKICAgICBib29sIG1fbGF5ZXJDbGVhcmVkOwpAQCAtNTM1LDE3ICs1
MzEsMTggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9pc0RlcHRoU3RlbmNpbFN1cHBvcnRlZDsK
ICAgICBib29sIG1faXNSb2J1c3RuZXNzRVhUU3VwcG9ydGVkOwogCi0gICAgYm9vbCBtX3N5bnRo
ZXNpemVkRXJyb3JzVG9Db25zb2xlOworICAgIGJvb2wgbV9zeW50aGVzaXplZEVycm9yc1RvQ29u
c29sZSB7IHRydWUgfTsKICAgICBpbnQgbV9udW1HTEVycm9yc1RvQ29uc29sZUFsbG93ZWQ7CiAK
ICAgICAvLyBBIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBjYW4gYmUgY3JlYXRlZCBpbiBhIHN0YXRl
IHdoZXJlIGl0IGFwcGVhcnMgYXMKICAgICAvLyBhIHZhbGlkIGFuZCBhY3RpdmUgY29udGV4dCwg
YnV0IHdpbGwgbm90IGV4ZWN1dGUgYW55IGltcG9ydGFudCBvcGVyYXRpb25zCiAgICAgLy8gdW50
aWwgaXRzIGxvYWQgcG9saWN5IGlzIGNvbXBsZXRlbHkgcmVzb2x2ZWQuCi0gICAgYm9vbCBtX2lz
UGVuZGluZ1BvbGljeVJlc29sdXRpb247Ci0gICAgYm9vbCBtX2hhc1JlcXVlc3RlZFBvbGljeVJl
c29sdXRpb247CisgICAgYm9vbCBtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24geyBmYWxzZSB9
OworICAgIGJvb2wgbV9oYXNSZXF1ZXN0ZWRQb2xpY3lSZXNvbHV0aW9uIHsgZmFsc2UgfTsKICAg
ICBib29sIGlzQ29udGV4dExvc3RPclBlbmRpbmcoKTsKIAotICAgIC8vIEVuYWJsZWQgZXh0ZW5z
aW9uIG9iamVjdHMuIEZJWE1FOiBNb3ZlIHRoZXNlIHRvIFdlYkdMMVJlbmRlcmluZ0NvbnRleHQs
IG5vdCBuZWVkZWQgZm9yIFdlYkdMMgorICAgIC8vIEVuYWJsZWQgZXh0ZW5zaW9uIG9iamVjdHMu
CisgICAgLy8gRklYTUU6IE1vdmUgc29tZSBvZiB0aGVzZSB0byBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQsIHRoZSBvbmVzIG5vdCBuZWVkZWQgZm9yIFdlYkdMMgogICAgIHN0ZDo6dW5pcXVlX3B0cjxF
WFRGcmFnRGVwdGg+IG1fZXh0RnJhZ0RlcHRoOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFWFRCbGVu
ZE1pbk1heD4gbV9leHRCbGVuZE1pbk1heDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RVhUc1JHQj4g
bV9leHRzUkdCOwpAQCAtNTY4LDE1ICs1NjUsMTUgQEAgcHJvdGVjdGVkOgogICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJHTERyYXdCdWZmZXJzPiBtX3dlYmdsRHJhd0J1ZmZlcnM7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPEFOR0xFSW5zdGFuY2VkQXJyYXlzPiBtX2FuZ2xlSW5zdGFuY2VkQXJyYXlzOwog
Ci0gICAgLy8gSGVscGVycyBmb3IgZ2V0UGFyYW1ldGVyIGFuZCBvdGhlcnMKLSAgICBXZWJHTEdl
dEluZm8gZ2V0Qm9vbGVhblBhcmFtZXRlcihHQzNEZW51bSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdl
dEJvb2xlYW5BcnJheVBhcmFtZXRlcihHQzNEZW51bSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEZs
b2F0UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0SW50UGFyYW1ldGVy
KEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoR0Mz
RGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRJbnQ2NFBhcmFtZXRlcihHQzNEZW51bSk7Ci0g
ICAgV2ViR0xHZXRJbmZvIGdldFdlYkdMRmxvYXRBcnJheVBhcmFtZXRlcihHQzNEZW51bSk7Ci0g
ICAgV2ViR0xHZXRJbmZvIGdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0pOworICAg
IC8vIEhlbHBlcnMgZm9yIGdldFBhcmFtZXRlciBhbmQgb3RoZXIgc2ltaWxhciBmdW5jdGlvbnMu
CisgICAgYm9vbCBnZXRCb29sZWFuUGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBWZWN0b3I8Ym9v
bD4gZ2V0Qm9vbGVhbkFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBmbG9hdCBnZXRGbG9h
dFBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgaW50IGdldEludFBhcmFtZXRlcihHQzNEZW51bSk7
CisgICAgdW5zaWduZWQgZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoR0MzRGVudW0pOworICAgIGxv
bmcgbG9uZyBnZXRJbnQ2NFBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgUmVmUHRyPEZsb2F0MzJB
cnJheT4gZ2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBSZWZQdHI8
SW50MzJBcnJheT4gZ2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihHQzNEZW51bSk7CiAKICAgICAv
LyBDbGVhciB0aGUgYmFja2J1ZmZlciBpZiBpdCB3YXMgY29tcG9zaXRlZCBzaW5jZSB0aGUgbGFz
dCBvcGVyYXRpb24uCiAgICAgLy8gY2xlYXJNYXNrIGlzIHNldCB0byB0aGUgYml0ZmllbGQgb2Yg
YW55IGNsZWFyIHRoYXQgd291bGQgaGFwcGVuIGFueXdheSBhdCB0aGlzIHRpbWUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2FtcGxlci5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmgKaW5kZXggYmQ5YzBlYWRkMDNhNzUyOTAz
Y2RjZWRkM2U5NmVjZmFiMjE4MTJjNS4uYTA1MzFmZjI3Yzg2M2M0NzNjYmRkMmU4YTdlNDZhMDA0
MzhjNmUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1w
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEs
MTcgKzMxLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2ViR0xTYW1wbGVyIGZp
bmFsIDogcHVibGljIFdlYkdMU2hhcmVkT2JqZWN0IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5X
ZWJHTFNhbXBsZXIoKTsKLQogICAgIHN0YXRpYyBSZWY8V2ViR0xTYW1wbGVyPiBjcmVhdGUoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOworICAgIHZpcnR1YWwgfldlYkdMU2FtcGxlcigpOwog
CiBwcm90ZWN0ZWQ6Ci0gICAgV2ViR0xTYW1wbGVyKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
KTsKLQotICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRm
b3JtM0RPYmplY3QpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIGJvb2wgaXNTYW1wbGVyKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGV4cGxpY2l0IFdlYkdMU2FtcGxl
cihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CisgICAgdm9pZCBkZWxldGVPYmplY3RJbXBs
KEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgZmluYWw7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFNoYWRlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIu
aAppbmRleCA2YWY1YzI2OWQ1MGFhZTRkODU1YjdkMDcwZWEzMTg4ZWU1NDNiOTBjLi45NTJjZGNj
NjU0M2VhZmJiYWRjNGNmMDkzNDU3MDNhMWQ3Y2UxZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMU2hhZGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA5LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsOSArMzEsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFdlYkdMU2hhZGVyIGZpbmFsIDogcHVibGljIFdlYkdMU2hhcmVkT2JqZWN0
IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJHTFNoYWRlcigpOwotCiAgICAgc3RhdGljIFJl
ZjxXZWJHTFNoYWRlcj4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBHQzNEZW51
bSk7CisgICAgdmlydHVhbCB+V2ViR0xTaGFkZXIoKTsKIAogICAgIEdDM0RlbnVtIGdldFR5cGUo
KSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KICAgICBjb25zdCBTdHJpbmcmIGdldFNvdXJjZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9CkBAIC00Niw5ICs0NSw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgV2ViR0xTaGFkZXIoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIEdDM0Rl
bnVtKTsKIAotICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBs
YXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwotCi0gICAgYm9vbCBpc1NoYWRlcigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhp
Y3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBmaW5hbDsKIAogICAgIEdDM0RlbnVtIG1f
dHlwZTsKICAgICBTdHJpbmcgbV9zb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAKaW5kZXggMzZkYzE1ZDNhMGU3ZTVmNmE5NzA2MWU0
YzNiZDNjMjQxYzFiODRlOS4uMWIyMjM2ZmJkNzEyYThiNzFjMDgyMGQxYzBhYTYyM2JjMzM4MjAw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yNCw0MSArMjQsMzkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViR0xTaGFyZWRPYmplY3QuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUg
IldlYkdMU2hhcmVkT2JqZWN0LmgiCi0KICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgog
I2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBXZWJHTFNoYXJlZE9iamVjdDo6V2ViR0xTaGFyZWRPYmplY3QoV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYgY29udGV4dCkKLSAgICA6IFdlYkdMT2JqZWN0KGNvbnRleHQpCi0gICAg
LCBtX2NvbnRleHRHcm91cChjb250ZXh0LmNvbnRleHRHcm91cCgpKQorICAgIDogbV9jb250ZXh0
R3JvdXAoY29udGV4dC5jb250ZXh0R3JvdXAoKSkKIHsKIH0KIAogV2ViR0xTaGFyZWRPYmplY3Q6
On5XZWJHTFNoYXJlZE9iamVjdCgpCiB7CiAgICAgaWYgKG1fY29udGV4dEdyb3VwKQotICAgICAg
ICBtX2NvbnRleHRHcm91cC0+cmVtb3ZlT2JqZWN0KHRoaXMpOworICAgICAgICBtX2NvbnRleHRH
cm91cC0+cmVtb3ZlT2JqZWN0KCp0aGlzKTsKIH0KIAogdm9pZCBXZWJHTFNoYXJlZE9iamVjdDo6
ZGV0YWNoQ29udGV4dEdyb3VwKCkKIHsKICAgICBkZXRhY2goKTsKICAgICBpZiAobV9jb250ZXh0
R3JvdXApIHsKLSAgICAgICAgZGVsZXRlT2JqZWN0KDApOwotICAgICAgICBtX2NvbnRleHRHcm91
cC0+cmVtb3ZlT2JqZWN0KHRoaXMpOwotICAgICAgICBtX2NvbnRleHRHcm91cCA9IDA7CisgICAg
ICAgIGRlbGV0ZU9iamVjdChudWxscHRyKTsKKyAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92
ZU9iamVjdCgqdGhpcyk7CisgICAgICAgIG1fY29udGV4dEdyb3VwID0gbnVsbHB0cjsKICAgICB9
CiB9CiAKIEdyYXBoaWNzQ29udGV4dDNEKiBXZWJHTFNoYXJlZE9iamVjdDo6Z2V0QUdyYXBoaWNz
Q29udGV4dDNEKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jb250ZXh0R3JvdXAgPyBtX2NvbnRl
eHRHcm91cC0+Z2V0QUdyYXBoaWNzQ29udGV4dDNEKCkgOiAwOworICAgIHJldHVybiBtX2NvbnRl
eHRHcm91cCA/ICZtX2NvbnRleHRHcm91cC0+Z2V0QUdyYXBoaWNzQ29udGV4dDNEKCkgOiBudWxs
cHRyOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFNoYXJlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRP
YmplY3QuaAppbmRleCBhYmU0ODAzMzM3MmM5NTZjYzcxMzBlYjdmN2JmZmZkY2QxYTlmNTdiLi45
NzJlNTgwZWVjYjAxOWI4YWZlMTE4MDcwMjE5MzI2YzM2YzkzOGNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsMjQgKzMzLDE1IEBAIGNs
YXNzIEdyYXBoaWNzQ29udGV4dDNEOwogY2xhc3MgV2ViR0xDb250ZXh0R3JvdXA7CiBjbGFzcyBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOwogCi0vLyBXZWJHTFNoYXJlZE9iamVjdCB0aGUgYmFz
ZSBjbGFzcyBmb3Igb2JqZWN0cyB0aGF0IGNhbiBiZSBzaGFyZWQgYnkgbXVsdGlwbGUKLS8vIFdl
YkdMUmVuZGVyaW5nQ29udGV4dHMuCisvLyBXZWJHTFNoYXJlZE9iamVjdCB0aGUgYmFzZSBjbGFz
cyBmb3Igb2JqZWN0cyB0aGF0IGNhbiBiZSBzaGFyZWQgYnkgbXVsdGlwbGUgV2ViR0xSZW5kZXJp
bmdDb250ZXh0cy4KIGNsYXNzIFdlYkdMU2hhcmVkT2JqZWN0IDogcHVibGljIFdlYkdMT2JqZWN0
IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJHTFNoYXJlZE9iamVjdCgpOwogCiAgICAgV2Vi
R0xDb250ZXh0R3JvdXAqIGNvbnRleHRHcm91cCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dEdy
b3VwOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNCdWZmZXIoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dyYW0oKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQotICAgIHZpcnR1YWwgYm9vbCBpc1F1ZXJ5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJidWZmZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQot
ICAgIHZpcnR1YWwgYm9vbCBpc1NhbXBsZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAg
IHZpcnR1YWwgYm9vbCBpc1NoYWRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmly
dHVhbCBib29sIGlzU3luYygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzVGV4dHVyZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29s
IGlzVHJhbnNmb3JtRmVlZGJhY2soKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1
YWwgYm9vbCBpc1ZlcnRleEFycmF5T2JqZWN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAog
ICAgIGJvb2wgdmFsaWRhdGUoY29uc3QgV2ViR0xDb250ZXh0R3JvdXAqIGNvbnRleHRHcm91cCwg
Y29uc3QgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpIGNvbnN0IG92ZXJyaWRlCiAgICAgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTeW5jLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFN5bmMuaAppbmRleCBlZjZlYzlkY2Q1OTY0ZmI0
NmQyMzdhMDA2M2Q0YzU2YjEyY2RhNzRjLi5mOWU3MTgwMTc0MWQwMzM3NjJjMmMyMWI0YzNjNmEz
ZDk4MTgyMGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFN5
bmMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFN5bmMuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw5ICsz
OSw2IEBAIHByb3RlY3RlZDoKICAgICBXZWJHTFN5bmMoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSYpOwogCiAgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxh
dGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAgYm9vbCBpc1N5bmMoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9y
bUZlZWRiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZl
ZWRiYWNrLmgKaW5kZXggNjljZjhlN2JiNTQxOGVhYTllNDU2OTIxMTQwOGY0NzZiMjZhNjc4Ni4u
NzE0OTIzMzg0NWFkYTFkZWE0M2MwMWQ4MDViNzk4MTZiNzczZWI5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw5ICsz
OSw2IEBAIHByb3RlY3RlZDoKICAgICBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UmKTsKIAogICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0Nv
bnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIGJv
b2wgaXNUcmFuc2Zvcm1GZWVkYmFjaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKaW5kZXggN2ZhNjljOWE0OTRk
YmVlYTlkYmViZjg5ZTg1ZjQzZjljZmQwMjg0OS4uODlhZTIxZjMzZWY4NTg4Y2QxOGQ0MDMxYzg1
N2FhOGExNDRlNTU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMzMgKzI0LDMzIEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKFdFQkdMKSAmJiBFTkFCTEUoV0VCR0wyKQogI2lu
Y2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIKIAorI2lmIEVOQUJMRShXRUJHTDIpCisK
ICNpbmNsdWRlICJXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViR0xDb250
ZXh0R3JvdXAuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAotUmVmPFdlYkdMVmVydGV4
QXJyYXlPYmplY3Q+IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZShXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiBjdHgsIFZBT1R5cGUgdHlwZSkKK1JlZjxXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0PiBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZSYgY29udGV4dCwgVHlwZSB0eXBlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YkdMVmVydGV4QXJyYXlPYmplY3QoY3R4LCB0eXBlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdChjb250ZXh0LCB0eXBlKSk7CiB9CiAKIFdlYkdMVmVy
dGV4QXJyYXlPYmplY3Q6On5XZWJHTFZlcnRleEFycmF5T2JqZWN0KCkKIHsKLSAgICBkZWxldGVP
YmplY3QoMCk7CisgICAgZGVsZXRlT2JqZWN0KG51bGxwdHIpOwogfQogCi1XZWJHTFZlcnRleEFy
cmF5T2JqZWN0OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmIGN0eCwgVkFPVHlwZSB0eXBlKQotICAgIDogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2Uo
Y3R4LCB0eXBlKQorV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBUeXBlIHR5cGUpCisgICAgOiBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShjb250ZXh0LCB0eXBlKQogewogICAgIHN3aXRjaCAo
bV90eXBlKSB7Ci0gICAgY2FzZSBWQU9UeXBlRGVmYXVsdDoKKyAgICBjYXNlIFR5cGU6OkRlZmF1
bHQ6CiAgICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHNldE9iamVjdChjb250
ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCktPmNyZWF0ZVZlcnRleEFycmF5KCkpOworICAgIGNh
c2UgVHlwZTo6VXNlcjoKKyAgICAgICAgc2V0T2JqZWN0KHRoaXMtPmNvbnRleHQoKS0+Z3JhcGhp
Y3NDb250ZXh0M0QoKS0+Y3JlYXRlVmVydGV4QXJyYXkoKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KQEAgLTU4LDkgKzU4LDkgQEAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6V2ViR0xWZXJ0
ZXhBcnJheU9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIFYKIHZvaWQgV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdDo6ZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCog
Y29udGV4dDNkLCBQbGF0Zm9ybTNET2JqZWN0IG9iamVjdCkKIHsKICAgICBzd2l0Y2ggKG1fdHlw
ZSkgewotICAgIGNhc2UgVkFPVHlwZURlZmF1bHQ6CisgICAgY2FzZSBUeXBlOjpEZWZhdWx0Ogog
ICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgorICAgIGNhc2UgVHlwZTo6VXNlcjoKICAgICAg
ICAgY29udGV4dDNkLT5kZWxldGVWZXJ0ZXhBcnJheShvYmplY3QpOwogICAgICAgICBicmVhazsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRl
eEFycmF5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFy
cmF5T2JqZWN0LmgKaW5kZXggNWI0OWM3MDhhNDYyNTRkZTU5MGUxYzA2ZGNjOTg2MmE2NjRjMzE0
Mi4uMmY3ZWQzNTA4MTcyM2YwYWJhZjI1M2IyYWJjZmQwMTM5NzAzNjQwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw4
ICsyNyw2IEBACiAKICNpZiBFTkFCTEUoV0VCR0wyKQogCi0jaW5jbHVkZSAiV2ViR0xCdWZmZXIu
aCIKLSNpbmNsdWRlICJXZWJHTENvbnRleHRPYmplY3QuaCIKICNpbmNsdWRlICJXZWJHTFZlcnRl
eEFycmF5T2JqZWN0QmFzZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNywxMiArMzUs
MTEgQEAgY2xhc3MgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDsKIAogY2xhc3MgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdCBmaW5hbCA6IHB1YmxpYyBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBjcmVhdGUoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFZBT1R5cGUpOworICAgIHN0YXRpYyBSZWY8V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdD4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBl
KTsKICAgICB2aXJ0dWFsIH5XZWJHTFZlcnRleEFycmF5T2JqZWN0KCk7CiBwcml2YXRlOgotICAg
IFdlYkdMVmVydGV4QXJyYXlPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFZBT1R5
cGUpOwotICAgIGJvb2wgaXNUcmFuc2Zvcm1GZWVkYmFjaygpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KLSAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9y
bTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0KFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBlKTsKKyAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3Jh
cGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBmaW5hbDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAppbmRleCA2OTY0OWM2MmY2ZTFkYmVmMmY5
ZWRhNjE3YzQyNDI0ZGY3M2YxNzVmLi41OGRmYTNkNzNjNmFkYjkzOWNlNDA0OTJmODE3OWE5OGJm
ZTc5MWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRl
eEFycmF5T2JqZWN0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDI0ICsyNCwyMiBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oIgog
CiAjaWYgRU5BQkxFKFdFQkdMKQotI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNl
LmgiCiAKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OldlYkdMVmVydGV4QXJy
YXlPYmplY3RCYXNlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwgVkFPVHlwZSB0eXBl
KQotICAgIDogV2ViR0xDb250ZXh0T2JqZWN0KGN0eCkKK1dlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
JiBjb250ZXh0LCBUeXBlIHR5cGUpCisgICAgOiBXZWJHTENvbnRleHRPYmplY3QoY29udGV4dCkK
ICAgICAsIG1fdHlwZSh0eXBlKQotICAgICwgbV9oYXNFdmVyQmVlbkJvdW5kKGZhbHNlKQotICAg
ICwgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlcigwKQogewotICAgIG1fdmVydGV4QXR0cmliU3Rh
dGUucmVzaXplKGN0eC5nZXRNYXhWZXJ0ZXhBdHRyaWJzKCkpOworICAgIG1fdmVydGV4QXR0cmli
U3RhdGUucmVzaXplKGNvbnRleHQuZ2V0TWF4VmVydGV4QXR0cmlicygpKTsKIH0KIAotdm9pZCBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0RWxlbWVudEFycmF5QnVmZmVyKFBhc3NSZWZQ
dHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKK3ZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6
OnNldEVsZW1lbnRBcnJheUJ1ZmZlcihXZWJHTEJ1ZmZlciogYnVmZmVyKQogewogICAgIGlmIChi
dWZmZXIpCiAgICAgICAgIGJ1ZmZlci0+b25BdHRhY2hlZCgpOwpAQCAtNTEsMTggKzQ5LDE3IEBA
IHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldEVsZW1lbnRBcnJheUJ1ZmZlcihQ
YXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBiCiAgICAgCiB9CiAKLXZvaWQgV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1aW50IGluZGV4LCBHQzNEc2l6
ZWkgYnl0ZXNQZXJFbGVtZW50LCBHQzNEaW50IHNpemUsIEdDM0RlbnVtIHR5cGUsIEdDM0Rib29s
ZWFuIG5vcm1hbGl6ZWQsIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIgb2Zmc2V0LCBQYXNz
UmVmUHRyPFdlYkdMQnVmZmVyPiBidWZmZXIpCit2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlOjpzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShHQzNEdWludCBpbmRleCwgR0MzRHNpemVpIGJ5dGVz
UGVyRWxlbWVudCwgR0MzRGludCBzaXplLCBHQzNEZW51bSB0eXBlLCBHQzNEYm9vbGVhbiBub3Jt
YWxpemVkLCBHQzNEc2l6ZWkgc3RyaWRlLCBHQzNEaW50cHRyIG9mZnNldCwgV2ViR0xCdWZmZXIm
IGJ1ZmZlcikKIHsKICAgICBHQzNEc2l6ZWkgdmFsaWRhdGVkU3RyaWRlID0gc3RyaWRlID8gc3Ry
aWRlIDogYnl0ZXNQZXJFbGVtZW50OwogICAgIAotICAgIFZlcnRleEF0dHJpYlN0YXRlJiBzdGF0
ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOworICAgIGF1dG8mIHN0YXRlID0gbV92ZXJ0
ZXhBdHRyaWJTdGF0ZVtpbmRleF07CiAgICAgCi0gICAgaWYgKGJ1ZmZlcikKLSAgICAgICAgYnVm
ZmVyLT5vbkF0dGFjaGVkKCk7CisgICAgYnVmZmVyLm9uQXR0YWNoZWQoKTsKICAgICBpZiAoc3Rh
dGUuYnVmZmVyQmluZGluZykKICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZy0+b25EZXRhY2hl
ZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOwogICAgIAotICAgIHN0YXRlLmJ1ZmZl
ckJpbmRpbmcgPSBidWZmZXI7CisgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9ICZidWZmZXI7CiAg
ICAgc3RhdGUuYnl0ZXNQZXJFbGVtZW50ID0gYnl0ZXNQZXJFbGVtZW50OwogICAgIHN0YXRlLnNp
emUgPSBzaXplOwogICAgIHN0YXRlLnR5cGUgPSB0eXBlOwpAQCAtNzIsMTcgKzY5LDE3IEBAIHZv
aWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1
aW50IGluZGV4LCBHQzNEc2l6ZWkKICAgICBzdGF0ZS5vZmZzZXQgPSBvZmZzZXQ7CiB9CiAKLXZv
aWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZlcihQYXNzUmVmUHRyPFdl
YkdMQnVmZmVyPiBidWZmZXIpCit2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJp
bmRCdWZmZXIoV2ViR0xCdWZmZXImIGJ1ZmZlcikKIHsKLSAgICBpZiAobV9ib3VuZEVsZW1lbnRB
cnJheUJ1ZmZlciA9PSBidWZmZXIpIHsKKyAgICBpZiAobV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZl
ciA9PSAmYnVmZmVyKSB7CiAgICAgICAgIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXItPm9uRGV0
YWNoZWQoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpKTsKICAgICAgICAgbV9ib3VuZEVs
ZW1lbnRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCk7ICsraSkgewotICAgICAgICBW
ZXJ0ZXhBdHRyaWJTdGF0ZSYgc3RhdGUgPSBtX3ZlcnRleEF0dHJpYlN0YXRlW2ldOwotICAgICAg
ICBpZiAoc3RhdGUuYnVmZmVyQmluZGluZyA9PSBidWZmZXIpIHsKLSAgICAgICAgICAgIGJ1ZmZl
ci0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgICAgICBh
dXRvJiBzdGF0ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaV07CisgICAgICAgIGlmIChzdGF0ZS5i
dWZmZXJCaW5kaW5nID09ICZidWZmZXIpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5vbkRldGFjaGVk
KGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKSk7CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGlmICghaSAmJiAhY29udGV4dCgpLT5pc0dMRVMyQ29tcGxpYW50KCkpIHsKICAgICAgICAg
ICAgICAgICBzdGF0ZS5idWZmZXJCaW5kaW5nID0gY29udGV4dCgpLT5tX3ZlcnRleEF0dHJpYjBC
dWZmZXI7CkBAIC0xMDIsOCArOTksNyBAQCB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNl
Ojp1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVmZmVyKQogCiB2b2lkIFdl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJEaXZpc29yKEdDM0R1aW50
IGluZGV4LCBHQzNEdWludCBkaXZpc29yKQogewotICAgIFZlcnRleEF0dHJpYlN0YXRlJiBzdGF0
ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOwotICAgIHN0YXRlLmRpdmlzb3IgPSBkaXZp
c29yOworICAgIG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdLmRpdmlzb3IgPSBkaXZpc29yOwog
fQogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlLmgKaW5kZXggMjkwYWI4ZDNkNzBmMzM3YTg2MzVhMjMxNjI3
NmQ5MWRjNDNkNGFhOS4uMTI3NTUzM2Q4YTE0NjE5MWE2NTViMjlhMDdmYmI4ZjE4N2EyODcwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFy
cmF5T2JqZWN0QmFzZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTMyLDY1ICszMiw0NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlIDogcHVibGljIFdlYkdMQ29udGV4dE9iamVj
dCB7CiBwdWJsaWM6Ci0gICAgZW51bSBWQU9UeXBlIHsKLSAgICAgICAgVkFPVHlwZURlZmF1bHQs
Ci0gICAgICAgIFZBT1R5cGVVc2VyLAotICAgIH07Ci0gICAgCi0gICAgdmlydHVhbCB+V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2UoKSB7IH0KKyAgICBlbnVtIGNsYXNzIFR5cGUgeyBEZWZhdWx0
LCBVc2VyIH07CiAKICAgICAvLyBDYWNoZWQgdmFsdWVzIGZvciB2ZXJ0ZXggYXR0cmliIHJhbmdl
IGNoZWNrcwogICAgIHN0cnVjdCBWZXJ0ZXhBdHRyaWJTdGF0ZSB7Ci0gICAgICAgIFZlcnRleEF0
dHJpYlN0YXRlKCkKLSAgICAgICAgICAgIDogZW5hYmxlZChmYWxzZSkKLSAgICAgICAgICAgICwg
Ynl0ZXNQZXJFbGVtZW50KDApCi0gICAgICAgICAgICAsIHNpemUoNCkKLSAgICAgICAgICAgICwg
dHlwZShHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQpCi0gICAgICAgICAgICAsIG5vcm1hbGl6ZWQo
ZmFsc2UpCi0gICAgICAgICAgICAsIHN0cmlkZSgxNikKLSAgICAgICAgICAgICwgb3JpZ2luYWxT
dHJpZGUoMCkKLSAgICAgICAgICAgICwgb2Zmc2V0KDApCi0gICAgICAgICAgICAsIGRpdmlzb3Io
MCkKLSAgICAgICAgewotICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICBib29sIGlzQm91bmQo
KSBjb25zdCB7IHJldHVybiBidWZmZXJCaW5kaW5nICYmIGJ1ZmZlckJpbmRpbmctPm9iamVjdCgp
OyB9CiAgICAgICAgIGJvb2wgdmFsaWRhdGVCaW5kaW5nKCkgY29uc3QgeyByZXR1cm4gIWVuYWJs
ZWQgfHwgaXNCb3VuZCgpOyB9CiAgICAgICAgIAotICAgICAgICBib29sIGVuYWJsZWQ7CisgICAg
ICAgIGJvb2wgZW5hYmxlZCB7IGZhbHNlIH07CiAgICAgICAgIFJlZlB0cjxXZWJHTEJ1ZmZlcj4g
YnVmZmVyQmluZGluZzsKLSAgICAgICAgR0MzRHNpemVpIGJ5dGVzUGVyRWxlbWVudDsKLSAgICAg
ICAgR0MzRGludCBzaXplOwotICAgICAgICBHQzNEZW51bSB0eXBlOwotICAgICAgICBib29sIG5v
cm1hbGl6ZWQ7Ci0gICAgICAgIEdDM0RzaXplaSBzdHJpZGU7Ci0gICAgICAgIEdDM0RzaXplaSBv
cmlnaW5hbFN0cmlkZTsKLSAgICAgICAgR0MzRGludHB0ciBvZmZzZXQ7Ci0gICAgICAgIEdDM0R1
aW50IGRpdmlzb3I7CisgICAgICAgIEdDM0RzaXplaSBieXRlc1BlckVsZW1lbnQgeyAwIH07Cisg
ICAgICAgIEdDM0RpbnQgc2l6ZSB7IDQgfTsKKyAgICAgICAgR0MzRGVudW0gdHlwZSB7IEdyYXBo
aWNzQ29udGV4dDNEOjpGTE9BVCB9OworICAgICAgICBib29sIG5vcm1hbGl6ZWQgeyBmYWxzZSB9
OworICAgICAgICBHQzNEc2l6ZWkgc3RyaWRlIHsgMTYgfTsKKyAgICAgICAgR0MzRHNpemVpIG9y
aWdpbmFsU3RyaWRlIHsgMCB9OworICAgICAgICBHQzNEaW50cHRyIG9mZnNldCB7IDAgfTsKKyAg
ICAgICAgR0MzRHVpbnQgZGl2aXNvciB7IDAgfTsKICAgICB9OwotICAgIAotICAgIGJvb2wgaXNE
ZWZhdWx0T2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFZBT1R5cGVEZWZhdWx0OyB9
Ci0gICAgCisKKyAgICBib29sIGlzRGVmYXVsdE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZSA9PSBUeXBlOjpEZWZhdWx0OyB9CisKICAgICBib29sIGhhc0V2ZXJCZWVuQm91bmQoKSBjb25z
dCB7IHJldHVybiBvYmplY3QoKSAmJiBtX2hhc0V2ZXJCZWVuQm91bmQ7IH0KICAgICB2b2lkIHNl
dEhhc0V2ZXJCZWVuQm91bmQoKSB7IG1faGFzRXZlckJlZW5Cb3VuZCA9IHRydWU7IH0KLSAgICAK
LSAgICBQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBnZXRFbGVtZW50QXJyYXlCdWZmZXIoKSBjb25z
dCB7IHJldHVybiBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyOyB9Ci0gICAgdm9pZCBzZXRFbGVt
ZW50QXJyYXlCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4pOwotICAgIAorCisgICAgV2Vi
R0xCdWZmZXIqIGdldEVsZW1lbnRBcnJheUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fYm91bmRF
bGVtZW50QXJyYXlCdWZmZXIuZ2V0KCk7IH0KKyAgICB2b2lkIHNldEVsZW1lbnRBcnJheUJ1ZmZl
cihXZWJHTEJ1ZmZlciopOworCiAgICAgVmVydGV4QXR0cmliU3RhdGUmIGdldFZlcnRleEF0dHJp
YlN0YXRlKGludCBpbmRleCkgeyByZXR1cm4gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF07IH0K
LSAgICB2b2lkIHNldFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1aW50LCBHQzNEc2l6ZWksIEdDM0Rp
bnQsIEdDM0RlbnVtLCBHQzNEYm9vbGVhbiwgR0MzRHNpemVpLCBHQzNEaW50cHRyLCBQYXNzUmVm
UHRyPFdlYkdMQnVmZmVyPik7Ci0gICAgdm9pZCB1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxXZWJH
TEJ1ZmZlcj4pOwotICAgIAorICAgIHZvaWQgc2V0VmVydGV4QXR0cmliU3RhdGUoR0MzRHVpbnQs
IEdDM0RzaXplaSwgR0MzRGludCwgR0MzRGVudW0sIEdDM0Rib29sZWFuLCBHQzNEc2l6ZWksIEdD
M0RpbnRwdHIsIFdlYkdMQnVmZmVyJik7CisgICAgdm9pZCB1bmJpbmRCdWZmZXIoV2ViR0xCdWZm
ZXImKTsKKwogICAgIHZvaWQgc2V0VmVydGV4QXR0cmliRGl2aXNvcihHQzNEdWludCBpbmRleCwg
R0MzRHVpbnQgZGl2aXNvcik7CiAKIHByb3RlY3RlZDoKLSAgICBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0QmFzZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVkFPVHlwZSk7CisgICAgV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2UoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFR5cGUpOwog
ICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RP
YmplY3QpIG92ZXJyaWRlID0gMDsKLSAgICAKLSAgICBWQU9UeXBlIG1fdHlwZTsKLSAgICBib29s
IG1faGFzRXZlckJlZW5Cb3VuZDsKKworICAgIFR5cGUgbV90eXBlOworICAgIGJvb2wgbV9oYXNF
dmVyQmVlbkJvdW5kIHsgZmFsc2UgfTsKICAgICBSZWZQdHI8V2ViR0xCdWZmZXI+IG1fYm91bmRF
bGVtZW50QXJyYXlCdWZmZXI7CiAgICAgVmVjdG9yPFZlcnRleEF0dHJpYlN0YXRlPiBtX3ZlcnRl
eEF0dHJpYlN0YXRlOwogfTsKLSAgICAKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9F
Uy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTLmNwcAppbmRleCA1ZjNiNjU1N2E3MGI1Y2I4NDJjMGMyZWE3NzgxNzhhZmE2NGMwMWZmLi5h
ZjU1NjVjZDk0NDQyNGI1M2I4MzU3ZGIyYzAxOTBiZTFjZTViNDY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNw
cApAQCAtMzQsMzcgKzM0LDM1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFdlYkdM
VmVydGV4QXJyYXlPYmplY3RPRVM+IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmNyZWF0ZShX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIFZBT1R5cGUgdHlwZSkKK1JlZjxXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTPiBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwgVHlwZSB0eXBlKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoY3R4LCB0eXBlKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyhjb250ZXh0
LCB0eXBlKSk7CiB9CiAKLVdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OldlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWQU9UeXBlIHR5cGUp
Ci0gICAgOiBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShjdHgsIHR5cGUpCitXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UmIGNvbnRleHQsIFR5cGUgdHlwZSkKKyAgICA6IFdlYkdMVmVydGV4QXJyYXlP
YmplY3RCYXNlKGNvbnRleHQsIHR5cGUpCiB7Ci0gICAgRXh0ZW5zaW9uczNEJiBleHRlbnNpb25z
ID0gY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpLT5nZXRFeHRlbnNpb25zKCk7Ci0gICAg
c3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVEZWZhdWx0OgorICAgIHN3aXRjaCAo
dHlwZSkgeworICAgIGNhc2UgVHlwZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVm
YXVsdDoKLSAgICAgICAgc2V0T2JqZWN0KGV4dGVuc2lvbnMuY3JlYXRlVmVydGV4QXJyYXlPRVMo
KSk7CisgICAgY2FzZSBUeXBlOjpVc2VyOgorICAgICAgICBzZXRPYmplY3QodGhpcy0+Y29udGV4
dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpLT5nZXRFeHRlbnNpb25zKCkuY3JlYXRlVmVydGV4QXJy
YXlPRVMoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUzo6fldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKQogewotICAgIGRlbGV0ZU9iamVj
dCgwKTsKKyAgICBkZWxldGVPYmplY3QobnVsbHB0cik7CiB9CiAKIHZvaWQgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUzo6ZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCogY29udGV4
dDNkLCBQbGF0Zm9ybTNET2JqZWN0IG9iamVjdCkKIHsKLSAgICBFeHRlbnNpb25zM0QmIGV4dGVu
c2lvbnMgPSBjb250ZXh0M2QtPmdldEV4dGVuc2lvbnMoKTsKICAgICBzd2l0Y2ggKG1fdHlwZSkg
ewotICAgIGNhc2UgVkFPVHlwZURlZmF1bHQ6CisgICAgY2FzZSBUeXBlOjpEZWZhdWx0OgogICAg
ICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBleHRlbnNpb25zLmRlbGV0ZVZlcnRl
eEFycmF5T0VTKG9iamVjdCk7CisgICAgY2FzZSBUeXBlOjpVc2VyOgorICAgICAgICBjb250ZXh0
M2QtPmdldEV4dGVuc2lvbnMoKS5kZWxldGVWZXJ0ZXhBcnJheU9FUyhvYmplY3QpOwogICAgICAg
ICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaAppbmRleCBkMDhkMjIzZTM1NzA2Njk0ZTkxY2Fl
NmFjZGM4YzRiY2E5ZjE2N2U5Li5mOWEyYTU4ZWMyNzQ3YzJkNTA2MzBiNWI2ZjZjZmYwNWE2MzYw
YzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFy
cmF5T2JqZWN0T0VTLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUy5oCkBAIC0yNSwxOSArMjUsMTcgQEAKIAogI3ByYWdtYSBvbmNlCiAK
LSNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkdMQ29udGV4dE9iamVjdC5o
IgogI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyBmaW5hbCA6IHB1Ymxp
YyBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSYsIFZBT1R5cGUpOworICAgIHN0YXRpYyBSZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4g
Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBlKTsKICAgICB2aXJ0dWFsIH5X
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKCk7CiBwcml2YXRlOgotICAgIFdlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFZBT1R5cGUpOwotICAgIHZv
aWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3Qp
IG92ZXJyaWRlOworICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYsIFR5cGUpOworICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0Nv
bnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmNwcApp
bmRleCA5YmNkNDdmNzc5ZTA1MWZhYTQwNTkwYzc5M2ZiMjNmYzUxYjJkZTFlLi4yNzVkNmVjNDRl
MDU4NDU2ZWVmZmZkMWNlZjI4ZDVhNzVmOGIxZjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA3LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CkBAIC0zNywxMyArMzcsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdm9p
ZCBGaWxlSWNvbkxvYWRlcjo6aW52YWxpZGF0ZSgpCiB7CiAgICAgQVNTRVJUKG1fY2xpZW50KTsK
LSAgICBtX2NsaWVudCA9IDA7CisgICAgbV9jbGllbnQgPSBudWxscHRyOwogfQogCi12b2lkIEZp
bGVJY29uTG9hZGVyOjpub3RpZnlGaW5pc2hlZChQYXNzUmVmUHRyPEljb24+IGljb24pCit2b2lk
IEZpbGVJY29uTG9hZGVyOjppY29uTG9hZGVkKFJlZlB0cjxJY29uPiYmIGljb24pCiB7CiAgICAg
aWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dXBkYXRlUmVuZGVyaW5nKGljb24pOwor
ICAgICAgICBtX2NsaWVudC0+aWNvbkxvYWRlZChXVEZNb3ZlKGljb24pKTsKIH0KIAogRmlsZUlj
b25Mb2FkZXI6OkZpbGVJY29uTG9hZGVyKEZpbGVJY29uTG9hZGVyQ2xpZW50JiBjbGllbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmgKaW5kZXggMzUzMTNkZTNh
Mjg1MzYwZDk4NjdiODJhNWFhY2JjMDdkMDVlN2JkNS4uN2RhNzNmYzkyZTE2Y2UzYWNkYmU0OGIy
YWUzYzQwMTM2OTA4MjgzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9G
aWxlSWNvbkxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmlsZUljb25M
b2FkZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcs
IDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CkBAIC0zNCwxMyArMzQsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBGaWxl
SWNvbkxvYWRlcjsKIGNsYXNzIEljb247CiAKIGNsYXNzIEZpbGVJY29uTG9hZGVyQ2xpZW50IHsK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5GaWxlSWNvbkxvYWRlckNsaWVudCgpIHsgfQotICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVSZW5kZXJpbmcoUGFzc1JlZlB0cjxJY29uPikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBpY29uTG9hZGVkKFJlZlB0cjxJY29uPiYmKSA9IDA7CiB9OwogCiBjbGFzcyBG
aWxlSWNvbkxvYWRlciB7CkBAIC00OCw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBG
aWxlSWNvbkxvYWRlcihGaWxlSWNvbkxvYWRlckNsaWVudCYpOwogCiAgICAgdm9pZCBpbnZhbGlk
YXRlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBub3RpZnlGaW5pc2hlZChQYXNzUmVmUHRy
PEljb24+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGljb25Mb2FkZWQoUmVmUHRyPEljb24+
JiYpOwogCiBwcml2YXRlOgogICAgIEZpbGVJY29uTG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNw
cAppbmRleCA0NjdhMTM0ZDM2YmE1M2E3MmJjMmQ3MGEyZWI5NzY4MWViOGY5M2ZiLi5kYzFhZDcz
YTFiMDA0YjM2YzllNDc1NTRiMTE4NDEzZWIwYmY2MGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE3NCw3ICsxNzQsNyBA
QCBzdGF0aWMgaW5saW5lIHZvaWQgZXhlY3V0ZVRhc2soSFRNTENvbnN0cnVjdGlvblNpdGVUYXNr
JiB0YXNrKQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjphdHRhY2hMYXRlcihDb250YWlu
ZXJOb2RlJiBwYXJlbnQsIFJlZjxOb2RlPiYmIGNoaWxkLCBib29sIHNlbGZDbG9zaW5nKQogewot
ICAgIEFTU0VSVChzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKG1fcGFyc2VyQ29udGVudFBvbGlj
eSkgfHwgIWlzPEVsZW1lbnQ+KGNoaWxkLmdldCgpKSB8fCAhdG9TY3JpcHRFbGVtZW50SWZQb3Nz
aWJsZShkb3duY2FzdDxFbGVtZW50PihjaGlsZC5wdHIoKSkpKTsKKyAgICBBU1NFUlQoc2NyaXB0
aW5nQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpIHx8ICFpczxFbGVtZW50
PihjaGlsZC5nZXQoKSkgfHwgIWlzU2NyaXB0RWxlbWVudChkb3duY2FzdDxFbGVtZW50PihjaGls
ZC5nZXQoKSkpKTsKICAgICBBU1NFUlQocGx1Z2luQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNv
bnRlbnRQb2xpY3kpIHx8ICFjaGlsZC0+aXNQbHVnaW5FbGVtZW50KCkpOwogCiAgICAgaWYgKHNo
b3VsZEZvc3RlclBhcmVudCgpKSB7CkBAIC01NDEsNyArNTQxLDcgQEAgdm9pZCBIVE1MQ29uc3Ry
dWN0aW9uU2l0ZTo6aW5zZXJ0Rm9yZWlnbkVsZW1lbnQoQXRvbWljSFRNTFRva2VuJiYgdG9rZW4s
IGNvbnN0IEEKICAgICBub3RJbXBsZW1lbnRlZCgpOyAvLyBwYXJzZUVycm9yIHdoZW4geG1sbnMg
b3IgeG1sbnM6eGxpbmsgYXJlIHdyb25nLgogCiAgICAgYXV0byBlbGVtZW50ID0gY3JlYXRlRWxl
bWVudCh0b2tlbiwgbmFtZXNwYWNlVVJJKTsKLSAgICBpZiAoc2NyaXB0aW5nQ29udGVudElzQWxs
b3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpIHx8ICF0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxl
KGVsZW1lbnQucHRyKCkpKQorICAgIGlmIChzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKG1fcGFy
c2VyQ29udGVudFBvbGljeSkgfHwgIWlzU2NyaXB0RWxlbWVudChlbGVtZW50LmdldCgpKSkKICAg
ICAgICAgYXR0YWNoTGF0ZXIoY3VycmVudE5vZGUoKSwgZWxlbWVudC5jb3B5UmVmKCksIHRva2Vu
LnNlbGZDbG9zaW5nKCkpOwogICAgIGlmICghdG9rZW4uc2VsZkNsb3NpbmcoKSkKICAgICAgICAg
bV9vcGVuRWxlbWVudHMucHVzaChIVE1MU3RhY2tJdGVtOjpjcmVhdGUoV1RGTW92ZShlbGVtZW50
KSwgV1RGTW92ZSh0b2tlbiksIG5hbWVzcGFjZVVSSSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggYWNlYTBhYWFkMmNkZjQ4
MTdhNjVlN2FmOWQ3YzlmZDM1N2RmYzMzNy4uNTE2M2YxYTVmNzgyNDgzYTkwMjRlYzZkYTkxNTNk
MDk2YjAzNGM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERv
Y3VtZW50UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9j
dW1lbnRQYXJzZXIuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJIVE1MVHJlZUJ1aWxkZXIu
aCIKICNpbmNsdWRlICJIVE1MVW5rbm93bkVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0N1c3RvbUVs
ZW1lbnRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtMjA1LDcgKzIwNiw3IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2Vy
OjpydW5TY3JpcHRzRm9yUGF1c2VkVHJlZUJ1aWxkZXIoKQogICAgICAgICBBU1NFUlQoIW1fdHJl
ZUJ1aWxkZXItPmhhc1BhcnNlckJsb2NraW5nU2NyaXB0V29yaygpKTsKICAgICAgICAgLy8gV2Ug
d2lsbCBub3QgaGF2ZSBhIHNjcmlwdFJ1bm5lciB3aGVuIHBhcnNpbmcgYSBEb2N1bWVudEZyYWdt
ZW50LgogICAgICAgICBpZiAobV9zY3JpcHRSdW5uZXIpCi0gICAgICAgICAgICBtX3NjcmlwdFJ1
bm5lci0+ZXhlY3V0ZShXVEZNb3ZlKHNjcmlwdEVsZW1lbnQpLCBzY3JpcHRTdGFydFBvc2l0aW9u
KTsKKyAgICAgICAgICAgIG1fc2NyaXB0UnVubmVyLT5leGVjdXRlKHNjcmlwdEVsZW1lbnQucmVs
ZWFzZU5vbk51bGwoKSwgc2NyaXB0U3RhcnRQb3NpdGlvbik7CiAgICAgfQogfQogCkBAIC01MDAs
NyArNTAxLDcgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OndhdGNoRm9yTG9hZChQZW5kaW5n
U2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogICAgIC8vIHNldENsaWVudCB3b3VsZCBjYWxsIG5vdGlm
eUZpbmlzaGVkIGlmIHRoZSBsb2FkIHdlcmUgY29tcGxldGUuCiAgICAgLy8gQ2FsbGVycyBkbyBu
b3QgZXhwZWN0IHRvIGJlIHJlLWVudGVyZWQgZnJvbSB0aGlzIGNhbGwsIHNvIHRoZXkgc2hvdWxk
CiAgICAgLy8gbm90IGFuIGFscmVhZHktbG9hZGVkIFBlbmRpbmdTY3JpcHQuCi0gICAgcGVuZGlu
Z1NjcmlwdC5zZXRDbGllbnQodGhpcyk7CisgICAgcGVuZGluZ1NjcmlwdC5zZXRDbGllbnQoKnRo
aXMpOwogfQogCiB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6c3RvcFdhdGNoaW5nRm9yTG9hZChQ
ZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcAppbmRleCBjMjU2YjQyOTU2Y2U0ODExYTk0ZjBjYjM0
YjhlZDcyNTcyNWU4ZjU0Li5jMWY0MmMyMjVkMDA3NzlhYjQ0NWMxMTI1MWQzNzNhNDg3ZjJjZDJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNw
cApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTcwLDcgKzcxLDcgQEAgSFRNTFNjcmlwdFJ1bm5lcjo6fkhUTUxTY3JpcHRSdW5uZXIoKQog
CiB2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmRldGFjaCgpCiB7Ci0gICAgbV9kb2N1bWVudCA9IDA7
CisgICAgbV9kb2N1bWVudCA9IG51bGxwdHI7CiB9CiAKIHN0YXRpYyBVUkwgZG9jdW1lbnRVUkxG
b3JTY3JpcHRFeGVjdXRpb24oRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtOTksMjkgKzEwMCwxOCBA
QCBib29sIEhUTUxTY3JpcHRSdW5uZXI6OmlzUGVuZGluZ1NjcmlwdFJlYWR5KGNvbnN0IFBlbmRp
bmdTY3JpcHQmIHNjcmlwdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBIVE1MU2NyaXB0
UnVubmVyOjpleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0KCkKLXsKLSAgICBBU1NFUlQobV9k
b2N1bWVudCk7Ci0gICAgQVNTRVJUKCFpc0V4ZWN1dGluZ1NjcmlwdCgpKTsKLSAgICBBU1NFUlQo
bV9kb2N1bWVudC0+aGF2ZVN0eWxlc2hlZXRzTG9hZGVkKCkpOwotICAgIEFTU0VSVChpc1BlbmRp
bmdTY3JpcHRSZWFkeSgqbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCkpOwotCi0gICAgSW5zZXJ0aW9u
UG9pbnRSZWNvcmQgaW5zZXJ0aW9uUG9pbnRSZWNvcmQobV9ob3N0LmlucHV0U3RyZWFtKCkpOwot
ICAgIGV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChXVEZNb3ZlKG1fcGFyc2Vy
QmxvY2tpbmdTY3JpcHQpKTsKLX0KLQotdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlUGVu
ZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQoUmVmUHRyPFBlbmRpbmdTY3JpcHQ+IHBlbmRpbmdT
Y3JpcHQpCit2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlz
cGF0Y2hFdmVudChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogewogICAgIC8vIFN0b3Ag
d2F0Y2hpbmcgbG9hZHMgYmVmb3JlIGV4ZWN1dGVTY3JpcHQgdG8gcHJldmVudCByZWN1cnNpb24g
aWYgdGhlIHNjcmlwdCByZWxvYWRzIGl0c2VsZi4KLSAgICBpZiAocGVuZGluZ1NjcmlwdC0+d2F0
Y2hpbmdGb3JMb2FkKCkpCi0gICAgICAgIHN0b3BXYXRjaGluZ0ZvckxvYWQoKnBlbmRpbmdTY3Jp
cHQpOworICAgIGlmIChwZW5kaW5nU2NyaXB0LndhdGNoaW5nRm9yTG9hZCgpKQorICAgICAgICBz
dG9wV2F0Y2hpbmdGb3JMb2FkKHBlbmRpbmdTY3JpcHQpOwogCiAgICAgaWYgKCFpc0V4ZWN1dGlu
Z1NjcmlwdCgpKQogICAgICAgICBNaWNyb3Rhc2tRdWV1ZTo6bWFpblRocmVhZFF1ZXVlKCkucGVy
Zm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKIAotICAgIGlmIChhdXRvKiBzY3JpcHRFbGVtZW50
ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmcGVuZGluZ1NjcmlwdC0+ZWxlbWVudCgpKSkg
eworICAgIHsKICAgICAgICAgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVsSW5j
cmVtZW50ZXIobV9zY3JpcHROZXN0aW5nTGV2ZWwpOwotICAgICAgICBzY3JpcHRFbGVtZW50LT5l
eGVjdXRlUGVuZGluZ1NjcmlwdCgqcGVuZGluZ1NjcmlwdCk7CisgICAgICAgIHBlbmRpbmdTY3Jp
cHQuZWxlbWVudCgpLmV4ZWN1dGVQZW5kaW5nU2NyaXB0KHBlbmRpbmdTY3JpcHQpOwogICAgIH0K
ICAgICBBU1NFUlQoIWlzRXhlY3V0aW5nU2NyaXB0KCkpOwogfQpAQCAtMTQwLDE1ICsxMzAsMTQg
QEAgdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpzdG9wV2F0Y2hpbmdGb3JMb2FkKFBlbmRpbmdTY3Jp
cHQmIHBlbmRpbmdTY3JpcHQpCiAKIC8vIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG1hdGNoIDEwLjIu
NS4xMSAiQW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAnc2NyaXB0JyIKIC8vIFNjcmlwdCBo
YW5kbGluZyBsaXZlcyBvdXRzaWRlIHRoZSB0cmVlIGJ1aWxkZXIgdG8ga2VlcCB0aGUgZWFjaCBj
bGFzcyBzaW1wbGUuCi12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGUoUGFzc1JlZlB0cjxF
bGVtZW50PiBzY3JpcHRFbGVtZW50LCBjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9z
aXRpb24pCit2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGUoUmVmPFNjcmlwdEVsZW1lbnQ+
JiYgZWxlbWVudCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogewot
ICAgIEFTU0VSVChzY3JpcHRFbGVtZW50KTsKICAgICAvLyBGSVhNRTogSWYgc2NyaXB0aW5nIGlz
IGRpc2FibGVkLCBhbHdheXMganVzdCByZXR1cm4uCiAKICAgICBib29sIGhhZFByZWxvYWRTY2Fu
bmVyID0gbV9ob3N0Lmhhc1ByZWxvYWRTY2FubmVyKCk7CiAKICAgICAvLyBUcnkgdG8gZXhlY3V0
ZSB0aGUgc2NyaXB0IGdpdmVuIHRvIHVzLgotICAgIHJ1blNjcmlwdChzY3JpcHRFbGVtZW50Lmdl
dCgpLCBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICBydW5TY3JpcHQoZWxlbWVudC5nZXQoKSwg
c2NyaXB0U3RhcnRQb3NpdGlvbik7CiAKICAgICBpZiAoaGFzUGFyc2VyQmxvY2tpbmdTY3JpcHQo
KSkgewogICAgICAgICBpZiAoaXNFeGVjdXRpbmdTY3JpcHQoKSkKQEAgLTE2Nyw4ICsxNTYsMTMg
QEAgYm9vbCBIVE1MU2NyaXB0UnVubmVyOjpoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdCgpIGNvbnN0
CiAKIHZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBhcnNpbmdCbG9ja2luZ1NjcmlwdHMo
KQogewotICAgIHdoaWxlIChoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdCgpICYmIGlzUGVuZGluZ1Nj
cmlwdFJlYWR5KCptX3BhcnNlckJsb2NraW5nU2NyaXB0KSkKLSAgICAgICAgZXhlY3V0ZVBhcnNp
bmdCbG9ja2luZ1NjcmlwdCgpOworICAgIHdoaWxlIChoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdCgp
ICYmIGlzUGVuZGluZ1NjcmlwdFJlYWR5KCptX3BhcnNlckJsb2NraW5nU2NyaXB0KSkgeworICAg
ICAgICBBU1NFUlQobV9kb2N1bWVudCk7CisgICAgICAgIEFTU0VSVCghaXNFeGVjdXRpbmdTY3Jp
cHQoKSk7CisgICAgICAgIEFTU0VSVChtX2RvY3VtZW50LT5oYXZlU3R5bGVzaGVldHNMb2FkZWQo
KSk7CisgICAgICAgIEluc2VydGlvblBvaW50UmVjb3JkIGluc2VydGlvblBvaW50UmVjb3JkKG1f
aG9zdC5pbnB1dFN0cmVhbSgpKTsKKyAgICAgICAgZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNw
YXRjaEV2ZW50KG1fcGFyc2VyQmxvY2tpbmdTY3JpcHQucmVsZWFzZU5vbk51bGwoKS5nZXQoKSk7
CisgICAgfQogfQogCiB2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHRzV2FpdGlu
Z0ZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1NjcmlwdCkKQEAgLTIwMSw3ICsxOTUsNyBA
QCBib29sIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclBhcnNpbmco
KQogICAgICAgICAgICAgd2F0Y2hGb3JMb2FkKG1fc2NyaXB0c1RvRXhlY3V0ZUFmdGVyUGFyc2lu
Zy5maXJzdCgpKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQotICAgICAg
ICBleGVjdXRlUGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQobV9zY3JpcHRzVG9FeGVjdXRl
QWZ0ZXJQYXJzaW5nLnRha2VGaXJzdCgpKTsKKyAgICAgICAgZXhlY3V0ZVBlbmRpbmdTY3JpcHRB
bmREaXNwYXRjaEV2ZW50KG1fc2NyaXB0c1RvRXhlY3V0ZUFmdGVyUGFyc2luZy50YWtlRmlyc3Qo
KS5nZXQoKSk7CiAgICAgICAgIC8vIEZJWE1FOiBXaGF0IGlzIHRoaXMgbV9kb2N1bWVudCBjaGVj
ayBmb3I/CiAgICAgICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTIwOSwxOCArMjAzLDE3IEBAIGJvb2wgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNj
cmlwdHNXYWl0aW5nRm9yUGFyc2luZygpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBS
ZWY8UGVuZGluZ1NjcmlwdD4gcmVxdWVzdFBlbmRpbmdTY3JpcHQoRWxlbWVudCogc2NyaXB0KQor
c3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0PiByZXF1ZXN0UGVuZGluZ1NjcmlwdChTY3JpcHRFbGVt
ZW50JiBzY3JpcHRFbGVtZW50KQogewotICAgIGF1dG8mIHNjcmlwdEVsZW1lbnQgPSAqdG9TY3Jp
cHRFbGVtZW50SWZQb3NzaWJsZShzY3JpcHQpOwogICAgIEFTU0VSVChzY3JpcHRFbGVtZW50Lndp
bGxCZVBhcnNlckV4ZWN1dGVkKCkpOwogICAgIEFTU0VSVChzY3JpcHRFbGVtZW50LmxvYWRhYmxl
U2NyaXB0KCkpOwotICAgIHJldHVybiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoKnNjcmlwdCwgKnNj
cmlwdEVsZW1lbnQubG9hZGFibGVTY3JpcHQoKSk7CisgICAgcmV0dXJuIFBlbmRpbmdTY3JpcHQ6
OmNyZWF0ZShzY3JpcHRFbGVtZW50LCAqc2NyaXB0RWxlbWVudC5sb2FkYWJsZVNjcmlwdCgpKTsK
IH0KIAotdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0
KEVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3RQYXJzaW5n
QmxvY2tpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCYgc2NyaXB0RWxlbWVudCkKIHsKICAgICBBU1NF
UlQoIW1fcGFyc2VyQmxvY2tpbmdTY3JpcHQpOwotICAgIG1fcGFyc2VyQmxvY2tpbmdTY3JpcHQg
PSByZXF1ZXN0UGVuZGluZ1NjcmlwdChlbGVtZW50KTsKKyAgICBtX3BhcnNlckJsb2NraW5nU2Ny
aXB0ID0gcmVxdWVzdFBlbmRpbmdTY3JpcHQoc2NyaXB0RWxlbWVudCk7CiAgICAgQVNTRVJUKG1f
cGFyc2VyQmxvY2tpbmdTY3JpcHQtPm5lZWRzTG9hZGluZygpKTsKIAogICAgIC8vIFdlIG9ubHkg
Y2FyZSBhYm91dCBhIGxvYWQgY2FsbGJhY2sgaWYgTG9hZGFibGVTY3JpcHQgaXMgbm90IGFscmVh
ZHkKQEAgLTIzMCw1NSArMjIzLDQ0IEBAIHZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6cmVxdWVzdFBh
cnNpbmdCbG9ja2luZ1NjcmlwdChFbGVtZW50KiBlbGVtZW50KQogICAgICAgICB3YXRjaEZvckxv
YWQoKm1fcGFyc2VyQmxvY2tpbmdTY3JpcHQpOwogfQogCi12b2lkIEhUTUxTY3JpcHRSdW5uZXI6
OnJlcXVlc3REZWZlcnJlZFNjcmlwdChFbGVtZW50KiBlbGVtZW50KQordm9pZCBIVE1MU2NyaXB0
UnVubmVyOjpyZXF1ZXN0RGVmZXJyZWRTY3JpcHQoU2NyaXB0RWxlbWVudCYgc2NyaXB0RWxlbWVu
dCkKIHsKLSAgICBhdXRvIHBlbmRpbmdTY3JpcHQgPSByZXF1ZXN0UGVuZGluZ1NjcmlwdChlbGVt
ZW50KTsKKyAgICBhdXRvIHBlbmRpbmdTY3JpcHQgPSByZXF1ZXN0UGVuZGluZ1NjcmlwdChzY3Jp
cHRFbGVtZW50KTsKICAgICBBU1NFUlQocGVuZGluZ1NjcmlwdC0+bmVlZHNMb2FkaW5nKCkpOwog
ICAgIG1fc2NyaXB0c1RvRXhlY3V0ZUFmdGVyUGFyc2luZy5hcHBlbmQoV1RGTW92ZShwZW5kaW5n
U2NyaXB0KSk7CiB9CiAKIC8vIFRoaXMgbWV0aG9kIGlzIG1lYW50IHRvIG1hdGNoIHRoZSBIVE1M
NSBkZWZpbml0aW9uIG9mICJydW5uaW5nIGEgc2NyaXB0IgogLy8gaHR0cDovL3d3dy53aGF0d2cu
b3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2Uvc2NyaXB0aW5nLTEuaHRt
bCNydW5uaW5nLWEtc2NyaXB0Ci12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJ1blNjcmlwdChFbGVt
ZW50KiBzY3JpcHQsIGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKK3Zv
aWQgSFRNTFNjcmlwdFJ1bm5lcjo6cnVuU2NyaXB0KFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1l
bnQsIGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKIHsKICAgICBBU1NF
UlQobV9kb2N1bWVudCk7CiAgICAgQVNTRVJUKCFoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdCgpKTsK
LSAgICB7Ci0gICAgICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVs
ZW1lbnRJZlBvc3NpYmxlKHNjcmlwdCk7Ci0KLSAgICAgICAgLy8gVGhpcyBjb250YWlucyBib3Ro
IGFuZCBBU1NFUlRJT04gYW5kIGEgbnVsbCBjaGVjayBzaW5jZSB3ZSBzaG91bGQgbm90Ci0gICAg
ICAgIC8vIGJlIGdldHRpbmcgaW50byB0aGUgY2FzZSBvZiBhIG51bGwgc2NyaXB0IGVsZW1lbnQs
IGJ1dCBzZWVtIHRvIGJlIGZyb20KLSAgICAgICAgLy8gdGltZSB0byB0aW1lLiBUaGUgYXNzZXJ0
aW9uIGlzIGxlZnQgaW4gdG8gaGVscCBmaW5kIHRob3NlIGNhc2VzIGFuZAotICAgICAgICAvLyBp
cyBiZWluZyB0cmFja2VkIGJ5IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjA1NTk+LgotICAgICAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7Ci0gICAgICAgIGlmICgh
c2NyaXB0RWxlbWVudCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAvLyBGSVhNRTog
VGhpcyBtYXkgYmUgdG9vIGFncmVzc2l2ZSBhcyB3ZSBhbHdheXMgZGVsaXZlciBtdXRhdGlvbnMg
YXQKLSAgICAgICAgLy8gZXZlcnkgc2NyaXB0IGVsZW1lbnQsIGV2ZW4gaWYgaXQncyBub3QgcmVh
ZHkgdG8gZXhlY3V0ZSB5ZXQuIFRoZXJlJ3MKLSAgICAgICAgLy8gdW5mb3J0dWFudGVseSBubyBv
YnZpb3VzIHdheSB0byB0ZWxsIGlmIHByZXBhcmVTY3JpcHQgaXMgZ29pbmcgdG8KLSAgICAgICAg
Ly8gZXhlY3V0ZSB0aGUgc2NyaXB0IGZyb20gb3V0IGhlcmUuCi0gICAgICAgIGlmICghaXNFeGVj
dXRpbmdTY3JpcHQoKSkKLSAgICAgICAgICAgIE1pY3JvdGFza1F1ZXVlOjptYWluVGhyZWFkUXVl
dWUoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOwotCi0gICAgICAgIEluc2VydGlvblBv
aW50UmVjb3JkIGluc2VydGlvblBvaW50UmVjb3JkKG1faG9zdC5pbnB1dFN0cmVhbSgpKTsKLSAg
ICAgICAgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVsSW5jcmVtZW50ZXIobV9z
Y3JpcHROZXN0aW5nTGV2ZWwpOwogCi0gICAgICAgIHNjcmlwdEVsZW1lbnQtPnByZXBhcmVTY3Jp
cHQoc2NyaXB0U3RhcnRQb3NpdGlvbik7Ci0KLSAgICAgICAgaWYgKCFzY3JpcHRFbGVtZW50LT53
aWxsQmVQYXJzZXJFeGVjdXRlZCgpKQotICAgICAgICAgICAgcmV0dXJuOworICAgIC8vIEZJWE1F
OiBUaGlzIG1heSBiZSB0b28gYWdyZXNzaXZlIGFzIHdlIGFsd2F5cyBkZWxpdmVyIG11dGF0aW9u
cyBhdAorICAgIC8vIGV2ZXJ5IHNjcmlwdCBlbGVtZW50LCBldmVuIGlmIGl0J3Mgbm90IHJlYWR5
IHRvIGV4ZWN1dGUgeWV0LiBUaGVyZSdzCisgICAgLy8gdW5mb3J0dW5hdGVseSBubyBvYnZpb3Vz
IHdheSB0byB0ZWxsIGlmIHByZXBhcmVTY3JpcHQgaXMgZ29pbmcgdG8KKyAgICAvLyBleGVjdXRl
IHRoZSBzY3JpcHQgYmVmb3JlIGNhbGxpbmcgaXQuCisgICAgaWYgKCFpc0V4ZWN1dGluZ1Njcmlw
dCgpKQorICAgICAgICBNaWNyb3Rhc2tRdWV1ZTo6bWFpblRocmVhZFF1ZXVlKCkucGVyZm9ybU1p
Y3JvdGFza0NoZWNrcG9pbnQoKTsKIAotICAgICAgICBpZiAoc2NyaXB0RWxlbWVudC0+d2lsbEV4
ZWN1dGVXaGVuRG9jdW1lbnRGaW5pc2hlZFBhcnNpbmcoKSkKLSAgICAgICAgICAgIHJlcXVlc3RE
ZWZlcnJlZFNjcmlwdChzY3JpcHQpOwotICAgICAgICBlbHNlIGlmIChzY3JpcHRFbGVtZW50LT5y
ZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgpKSB7Ci0gICAgICAgICAgICBpZiAobV9zY3JpcHROZXN0
aW5nTGV2ZWwgPT0gMSkKLSAgICAgICAgICAgICAgICBtX3BhcnNlckJsb2NraW5nU2NyaXB0ID0g
UGVuZGluZ1NjcmlwdDo6Y3JlYXRlKCpzY3JpcHQsIHNjcmlwdFN0YXJ0UG9zaXRpb24pOwotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNjcmlwdEVsZW1lbnQtPmV4ZWN1dGVDbGFz
c2ljU2NyaXB0KFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0LT50ZXh0Q29udGVudCgpLCBkb2N1bWVu
dFVSTEZvclNjcmlwdEV4ZWN1dGlvbihtX2RvY3VtZW50KSwgc2NyaXB0U3RhcnRQb3NpdGlvbikp
OwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3Jp
cHQoc2NyaXB0KTsKLSAgICB9CisgICAgSW5zZXJ0aW9uUG9pbnRSZWNvcmQgaW5zZXJ0aW9uUG9p
bnRSZWNvcmQobV9ob3N0LmlucHV0U3RyZWFtKCkpOworICAgIE5lc3RpbmdMZXZlbEluY3JlbWVu
dGVyIG5lc3RpbmdMZXZlbEluY3JlbWVudGVyKG1fc2NyaXB0TmVzdGluZ0xldmVsKTsKKworICAg
IHNjcmlwdEVsZW1lbnQucHJlcGFyZVNjcmlwdChzY3JpcHRTdGFydFBvc2l0aW9uKTsKKworICAg
IGlmICghc2NyaXB0RWxlbWVudC53aWxsQmVQYXJzZXJFeGVjdXRlZCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoc2NyaXB0RWxlbWVudC53aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlz
aGVkUGFyc2luZygpKQorICAgICAgICByZXF1ZXN0RGVmZXJyZWRTY3JpcHQoc2NyaXB0RWxlbWVu
dCk7CisgICAgZWxzZSBpZiAoc2NyaXB0RWxlbWVudC5yZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgp
KSB7CisgICAgICAgIGlmIChtX3NjcmlwdE5lc3RpbmdMZXZlbCA9PSAxKQorICAgICAgICAgICAg
bV9wYXJzZXJCbG9ja2luZ1NjcmlwdCA9IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShzY3JpcHRFbGVt
ZW50LCBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2Ny
aXB0RWxlbWVudC5leGVjdXRlQ2xhc3NpY1NjcmlwdChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdEVs
ZW1lbnQuZWxlbWVudCgpLnRleHRDb250ZW50KCksIGRvY3VtZW50VVJMRm9yU2NyaXB0RXhlY3V0
aW9uKG1fZG9jdW1lbnQpLCBzY3JpcHRTdGFydFBvc2l0aW9uKSk7CisgICAgfSBlbHNlCisgICAg
ICAgIHJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQoc2NyaXB0RWxlbWVudCk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuaAppbmRleCA3
NjgwMGQ3MTNjZTdkMmU0NjM1YTY2MjM1YjE2N2MxOWY0NTdjODAzLi5jODY3NDdkOTFiYWUwNWU0
Mjc2NmRkZmZlZDU5YTA4M2U3YWExZmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFNjcmlwdFJ1bm5lci5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsMTMgKzMzLDEyIEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lOwogY2xh
c3MgSFRNTFNjcmlwdFJ1bm5lckhvc3Q7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogCiBjbGFz
cyBIVE1MU2NyaXB0UnVubmVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShIVE1MU2NyaXB0
UnVubmVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CiAgICAgSFRNTFNjcmlwdFJ1bm5lcihEb2N1bWVudCYsIEhUTUxTY3Jp
cHRSdW5uZXJIb3N0Jik7CiAgICAgfkhUTUxTY3JpcHRSdW5uZXIoKTsKQEAgLTQ2LDcgKzQ2LDcg
QEAgcHVibGljOgogICAgIHZvaWQgZGV0YWNoKCk7CiAKICAgICAvLyBQcm9jZXNzZXMgdGhlIHBh
c3NlZCBpbiBzY3JpcHQgYW5kIGFueSBwZW5kaW5nIHNjcmlwdHMgaWYgcG9zc2libGUuCi0gICAg
dm9pZCBleGVjdXRlKFBhc3NSZWZQdHI8RWxlbWVudD4gc2NyaXB0VG9Qcm9jZXNzLCBjb25zdCBU
ZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgIHZvaWQgZXhlY3V0ZShSZWY8
U2NyaXB0RWxlbWVudD4mJiwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9u
KTsKIAogICAgIHZvaWQgZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9yTG9hZChQZW5kaW5nU2NyaXB0
Jik7CiAgICAgYm9vbCBoYXNTY3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKCkgY29uc3QgeyBy
ZXR1cm4gbV9oYXNTY3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzOyB9CkBAIC01OSwxNiArNTks
MTQgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdDsKIAotICAg
IHZvaWQgZXhlY3V0ZVBhcnNpbmdCbG9ja2luZ1NjcmlwdCgpOwotICAgIHZvaWQgZXhlY3V0ZVBl
bmRpbmdTY3JpcHRBbmREaXNwYXRjaEV2ZW50KFJlZlB0cjxQZW5kaW5nU2NyaXB0Pik7CisgICAg
dm9pZCBleGVjdXRlUGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQoUGVuZGluZ1NjcmlwdCYp
OwogICAgIHZvaWQgZXhlY3V0ZVBhcnNpbmdCbG9ja2luZ1NjcmlwdHMoKTsKIAotICAgIHZvaWQg
cmVxdWVzdFBhcnNpbmdCbG9ja2luZ1NjcmlwdChFbGVtZW50Kik7Ci0gICAgdm9pZCByZXF1ZXN0
RGVmZXJyZWRTY3JpcHQoRWxlbWVudCopOworICAgIHZvaWQgcmVxdWVzdFBhcnNpbmdCbG9ja2lu
Z1NjcmlwdChTY3JpcHRFbGVtZW50Jik7CisgICAgdm9pZCByZXF1ZXN0RGVmZXJyZWRTY3JpcHQo
U2NyaXB0RWxlbWVudCYpOwogCi0gICAgdm9pZCBydW5TY3JpcHQoRWxlbWVudCosIGNvbnN0IFRl
eHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgdm9pZCBydW5TY3JpcHQoU2Ny
aXB0RWxlbWVudCYsIGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CiAK
LSAgICAvLyBIZWxwZXJzIGZvciBkZWFsaW5nIHdpdGggSFRNTFNjcmlwdFJ1bm5lckhvc3QKICAg
ICB2b2lkIHdhdGNoRm9yTG9hZChQZW5kaW5nU2NyaXB0Jik7CiAgICAgdm9pZCBzdG9wV2F0Y2hp
bmdGb3JMb2FkKFBlbmRpbmdTY3JpcHQmKTsKICAgICBib29sIGlzUGVuZGluZ1NjcmlwdFJlYWR5
KGNvbnN0IFBlbmRpbmdTY3JpcHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4IDQ1MjRjMWVhYWNmZDkzMjkwMjZjNjZjYjcyYWI1NGIw
MDhmNjJhNGMuLmQ0Zjg0ZDJmYTU1ZDU5OTBlNmY3NzVjZGYwZTQ0YTMyMGM3YWM2MmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtMSw2
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
NSwxMCArMzUsMTIgQEAKICNpbmNsdWRlICJIVE1MT3B0R3JvdXBFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCisj
aW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGFibGVFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiTG9j
YWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAi
U1ZHU2NyaXB0RWxlbWVudC5oIgogI2luY2x1ZGUgIlhMaW5rTmFtZXMuaCIKICNpbmNsdWRlICJY
TUxOU05hbWVzLmgiCiAjaW5jbHVkZSAiWE1MTmFtZXMuaCIKQEAgLTU3LDEwICs1OSwxMiBAQCBD
dXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YTo6Q3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRh
dGEoUmVmPEpTQ3VzdG9tRWxlbWVudAogICAgIDogZWxlbWVudEludGVyZmFjZShXVEZNb3ZlKGN1
c3RvbUVsZW1lbnRJbnRlcmZhY2UpKQogICAgICwgbmFtZShuYW1lKQogICAgICwgYXR0cmlidXRl
cyhXVEZNb3ZlKGF0dHJpYnV0ZXMpKQoteyB9Cit7Cit9CiAKIEN1c3RvbUVsZW1lbnRDb25zdHJ1
Y3Rpb25EYXRhOjp+Q3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGEoKQoteyB9Cit7Cit9CiAK
IG5hbWVzcGFjZSB7CiAKQEAgLTMxOCw3ICszMjIsNyBAQCBpbmxpbmUgSFRNTFN0YWNrSXRlbSYg
SFRNTFRyZWVCdWlsZGVyOjpGcmFnbWVudFBhcnNpbmdDb250ZXh0Ojpjb250ZXh0RWxlbWVudFN0
YQogICAgIHJldHVybiAqbV9jb250ZXh0RWxlbWVudFN0YWNrSXRlbTsKIH0KIAotUmVmUHRyPEVs
ZW1lbnQ+IEhUTUxUcmVlQnVpbGRlcjo6dGFrZVNjcmlwdFRvUHJvY2VzcyhUZXh0UG9zaXRpb24m
IHNjcmlwdFN0YXJ0UG9zaXRpb24pCitSZWZQdHI8U2NyaXB0RWxlbWVudD4gSFRNTFRyZWVCdWls
ZGVyOjp0YWtlU2NyaXB0VG9Qcm9jZXNzKFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlv
bikKIHsKICAgICBBU1NFUlQoIW1fZGVzdHJveWVkKTsKIApAQCAtMjA1Nyw3ICsyMDYxLDcgQEAg
dm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuJiYgdG9r
ZW4pCiAgICAgICAgICAgICAvLyBQYXVzZSBvdXJzZWx2ZXMgc28gdGhhdCBwYXJzaW5nIHN0b3Bz
IHVudGlsIHRoZSBzY3JpcHQgY2FuIGJlIHByb2Nlc3NlZCBieSB0aGUgY2FsbGVyLgogICAgICAg
ICAgICAgQVNTRVJUKG1fdHJlZS5jdXJyZW50U3RhY2tJdGVtKCkuaGFzVGFnTmFtZShzY3JpcHRU
YWcpKTsKICAgICAgICAgICAgIGlmIChzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKG1fdHJlZS5w
YXJzZXJDb250ZW50UG9saWN5KCkpKQotICAgICAgICAgICAgICAgIG1fc2NyaXB0VG9Qcm9jZXNz
ID0gJm1fdHJlZS5jdXJyZW50RWxlbWVudCgpOworICAgICAgICAgICAgICAgIG1fc2NyaXB0VG9Q
cm9jZXNzID0gJmRvd25jYXN0PEhUTUxTY3JpcHRFbGVtZW50PihtX3RyZWUuY3VycmVudEVsZW1l
bnQoKSk7CiAgICAgICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCkucG9wKCk7CiAgICAgICAg
ICAgICBtX2luc2VydGlvbk1vZGUgPSBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZTsKIApAQCAtMjc4
Nyw3ICsyNzkxLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUb2tlbkluRm9yZWln
bkNvbnRlbnQoQXRvbWljSFRNTFRva2VuJiYgdG9rZW4pCiAKICAgICAgICAgaWYgKHRva2VuLm5h
bWUoKSA9PSBTVkdOYW1lczo6c2NyaXB0VGFnICYmIG1fdHJlZS5jdXJyZW50U3RhY2tJdGVtKCku
aGFzVGFnTmFtZShTVkdOYW1lczo6c2NyaXB0VGFnKSkgewogICAgICAgICAgICAgaWYgKHNjcmlw
dGluZ0NvbnRlbnRJc0FsbG93ZWQobV90cmVlLnBhcnNlckNvbnRlbnRQb2xpY3koKSkpCi0gICAg
ICAgICAgICAgICAgbV9zY3JpcHRUb1Byb2Nlc3MgPSAmbV90cmVlLmN1cnJlbnRFbGVtZW50KCk7
CisgICAgICAgICAgICAgICAgbV9zY3JpcHRUb1Byb2Nlc3MgPSAmZG93bmNhc3Q8U1ZHU2NyaXB0
RWxlbWVudD4obV90cmVlLmN1cnJlbnRFbGVtZW50KCkpOwogICAgICAgICAgICAgbV90cmVlLm9w
ZW5FbGVtZW50cygpLnBvcCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCmluZGV4IGQ3MDkyOWY2
MGE2MGJjNjU5NmY2NzkwY2QwMGRlZjE2Zjk4NTU5YTUuLmFlY2NhYjQ1ZGE1NTBjZTM5YTY4OTY4
MGIwY2Y0NGNjNTAyZjFmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
cmVlQnVpbGRlci5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U7CiBjbGFzcyBIVE1MRG9jdW1lbnRQYXJzZXI7
CitjbGFzcyBTY3JpcHRFbGVtZW50OwogCiBzdHJ1Y3QgQ3VzdG9tRWxlbWVudENvbnN0cnVjdGlv
bkRhdGEgewogICAgIEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhKFJlZjxKU0N1c3RvbUVs
ZW1lbnRJbnRlcmZhY2U+JiYsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPEF0dHJp
YnV0ZT4mJik7CkBAIC02Miw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1BhcnNlckJs
b2NraW5nU2NyaXB0V29yaygpIGNvbnN0OwogCiAgICAgLy8gTXVzdCBiZSBjYWxsZWQgdG8gdGFr
ZSB0aGUgcGFyc2VyLWJsb2NraW5nIHNjcmlwdCBiZWZvcmUgY2FsbGluZyB0aGUgcGFyc2VyIGFn
YWluLgotICAgIFJlZlB0cjxFbGVtZW50PiB0YWtlU2NyaXB0VG9Qcm9jZXNzKFRleHRQb3NpdGlv
biYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgUmVmUHRyPFNjcmlwdEVsZW1lbnQ+IHRha2VT
Y3JpcHRUb1Byb2Nlc3MoVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YT4gdGFrZUN1c3Rv
bUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhKCkgeyByZXR1cm4gV1RGTW92ZShtX2N1c3RvbUVsZW1l
bnRUb0NvbnN0cnVjdCk7IH0KICAgICB2b2lkIGRpZENyZWF0ZUN1c3RvbU9yQ2FsbGJhY2tFbGVt
ZW50KFJlZjxFbGVtZW50PiYmLCBDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YSYpOwpAQCAt
MjA2LDcgKzIwNyw3IEBAIHByaXZhdGU6CiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjY29uY2VwdC1wZW5kaW5nLXRhYmxlLWNoYXItdG9r
ZW5zCiAgICAgU3RyaW5nQnVpbGRlciBtX3BlbmRpbmdUYWJsZUNoYXJhY3RlcnM7CiAKLSAgICBS
ZWZQdHI8RWxlbWVudD4gbV9zY3JpcHRUb1Byb2Nlc3M7IC8vIDxzY3JpcHQ+IHRhZyB3aGljaCBu
ZWVkcyBwcm9jZXNzaW5nIGJlZm9yZSByZXN1bWluZyB0aGUgcGFyc2VyLgorICAgIFJlZlB0cjxT
Y3JpcHRFbGVtZW50PiBtX3NjcmlwdFRvUHJvY2VzczsgLy8gPHNjcmlwdD4gdGFnIHdoaWNoIG5l
ZWRzIHByb2Nlc3NpbmcgYmVmb3JlIHJlc3VtaW5nIHRoZSBwYXJzZXIuCiAgICAgVGV4dFBvc2l0
aW9uIG1fc2NyaXB0VG9Qcm9jZXNzU3RhcnRQb3NpdGlvbjsgLy8gU3RhcnRpbmcgbGluZSBudW1i
ZXIgb2YgdGhlIHNjcmlwdCB0YWcgbmVlZGluZyBwcm9jZXNzaW5nLgogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhPiBtX2N1c3RvbUVsZW1lbnRUb0Nv
bnN0cnVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1
bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQ
YXJzZXIuY3BwCmluZGV4IGFkNWY2ZTc4ZTM4MWFhZGNjYzZiOTFiYTk3Y2E0MjU1ODA0Y2I5NzAu
LmY5ODgyNWIyMDYwOTdmMmM0YThjMWZlODRiNDBiNmQ4ZjBhNWVhY2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmNwcApAQCAtMjYsNiAr
MjYsNyBAQAogI2luY2x1ZGUgIlRleHREb2N1bWVudFBhcnNlci5oIgogCiAjaW5jbHVkZSAiSFRN
TFRyZWVCdWlsZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1
ZGl0b3JEZWxlZ2F0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9y
RGVsZWdhdGUuY3BwCmluZGV4IDNmNDNlMDRkNWRlZWI3ZDI5MzExNmU4ZGVjMjNjN2IwYmY3ZmI3
NzkuLjliNTBiYTNiMTQzNjhjMjNkMTM2NjExZWY4Yzk0ODZkY2JlY2MzNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcApAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlLCBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSw3ICs0Niw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogWFNTQXVkaXRvckRlbGVnYXRlOjpYU1NBdWRpdG9y
RGVsZWdhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkK
LSAgICAsIG1fZGlkU2VuZE5vdGlmaWNhdGlvbnMoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKIH0KQEAgLTY5LDIyICs2OSwyMiBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBi
dWlsZENvbnNvbGVFcnJvcihjb25zdCBYU1NJbmZvJiB4c3NJbmZvKQogICAgIHJldHVybiBtZXNz
YWdlLnRvU3RyaW5nKCk7CiB9CiAKLVBhc3NSZWZQdHI8Rm9ybURhdGE+IFhTU0F1ZGl0b3JEZWxl
Z2F0ZTo6Z2VuZXJhdGVWaW9sYXRpb25SZXBvcnQoY29uc3QgWFNTSW5mbyYgeHNzSW5mbykKK1Jl
ZjxGb3JtRGF0YT4gWFNTQXVkaXRvckRlbGVnYXRlOjpnZW5lcmF0ZVZpb2xhdGlvblJlcG9ydChj
b25zdCBYU1NJbmZvJiB4c3NJbmZvKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAK
LSAgICBGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIgPSBtX2RvY3VtZW50LmZyYW1lKCktPmxvYWRl
cigpOworICAgIGF1dG8mIGZyYW1lTG9hZGVyID0gbV9kb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIo
KTsKICAgICBTdHJpbmcgaHR0cEJvZHk7CiAgICAgaWYgKGZyYW1lTG9hZGVyLmRvY3VtZW50TG9h
ZGVyKCkpIHsKLSAgICAgICAgaWYgKEZvcm1EYXRhKiBmb3JtRGF0YSA9IGZyYW1lTG9hZGVyLmRv
Y3VtZW50TG9hZGVyKCktPm9yaWdpbmFsUmVxdWVzdCgpLmh0dHBCb2R5KCkpCisgICAgICAgIGlm
IChhdXRvKiBmb3JtRGF0YSA9IGZyYW1lTG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPm9yaWdpbmFs
UmVxdWVzdCgpLmh0dHBCb2R5KCkpCiAgICAgICAgICAgICBodHRwQm9keSA9IGZvcm1EYXRhLT5m
bGF0dGVuVG9TdHJpbmcoKTsKICAgICB9CiAKLSAgICBSZWY8SW5zcGVjdG9yT2JqZWN0PiByZXBv
cnREZXRhaWxzID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBhdXRvIHJlcG9ydERl
dGFpbHMgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwogICAgIHJlcG9ydERldGFpbHMtPnNl
dFN0cmluZygicmVxdWVzdC11cmwiLCB4c3NJbmZvLm1fb3JpZ2luYWxVUkwpOwogICAgIHJlcG9y
dERldGFpbHMtPnNldFN0cmluZygicmVxdWVzdC1ib2R5IiwgaHR0cEJvZHkpOwogCi0gICAgUmVm
PEluc3BlY3Rvck9iamVjdD4gcmVwb3J0T2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUo
KTsKKyAgICBhdXRvIHJlcG9ydE9iamVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAg
ICAgcmVwb3J0T2JqZWN0LT5zZXRPYmplY3QoInhzcy1yZXBvcnQiLCBXVEZNb3ZlKHJlcG9ydERl
dGFpbHMpKTsKIAogICAgIHJldHVybiBGb3JtRGF0YTo6Y3JlYXRlKHJlcG9ydE9iamVjdC0+dG9K
U09OU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oCmluZGV4IDBhZTI3NGIzMTkyZGZhNDdhNjNjZTk2YTJh
OTc5NDY1ZWM4ODA4ZWYuLjY3YTMyZWQ5MzBkN2Q5ZGQ0ZGFjNDA4OTIyMGJkZjNmMmFkNzZlODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5o
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUsIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3
LDEzICsyOCwxNCBAQAogCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4
dFBvc2l0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBGb3JtRGF0YTsKIAorLy8gRklY
TUU6IFNob3VsZCBjaGFuZ2UgaW50byBhIHN0cnVjdC4KKy8vIEZJWE1FOiBTaG91bGQgcmV0dXJu
IGJ5IHZhbHVlIGluc3RlYWQgb2YgdXNpbmcgYSB1bmlxdWVfcHRyLgogY2xhc3MgWFNTSW5mbyB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC01MSw3ICs1Myw2IEBA
IHB1YmxpYzoKIH07CiAKIGNsYXNzIFhTU0F1ZGl0b3JEZWxlZ2F0ZSB7Ci0gICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoWFNTQXVkaXRvckRlbGVnYXRlKTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBY
U1NBdWRpdG9yRGVsZWdhdGUoRG9jdW1lbnQmKTsKIApAQCAtNTksMTAgKzYwLDEwIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFJlcG9ydFVSTChjb25zdCBVUkwmIHVybCkgeyBtX3JlcG9ydFVSTCA9
IHVybDsgfQogCiBwcml2YXRlOgotICAgIFBhc3NSZWZQdHI8Rm9ybURhdGE+IGdlbmVyYXRlVmlv
bGF0aW9uUmVwb3J0KGNvbnN0IFhTU0luZm8mKTsKKyAgICBSZWY8Rm9ybURhdGE+IGdlbmVyYXRl
VmlvbGF0aW9uUmVwb3J0KGNvbnN0IFhTU0luZm8mKTsKIAogICAgIERvY3VtZW50JiBtX2RvY3Vt
ZW50OwotICAgIGJvb2wgbV9kaWRTZW5kTm90aWZpY2F0aW9uczsKKyAgICBib29sIG1fZGlkU2Vu
ZE5vdGlmaWNhdGlvbnMgeyBmYWxzZSB9OwogICAgIFVSTCBtX3JlcG9ydFVSTDsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCmluZGV4IDhjMzU2Zjc5MTVkNDk4
Y2UzNDEyZjc5ODgyZjhkMDYwYjA4NTYxOTIuLmVlYjA1NTM3ZjY0NTM0ZjY1NTU3YTZjZjQ0ZjM4
MDFkMWQzNmJiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9U
cmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcApA
QCAtMSw2ICsxLDYgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQpAQCAtMzAsMTMgKzMwLDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkF1ZGlvVHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAot
I2luY2x1ZGUgIkF1ZGlvVHJhY2suaCIKLQotI2luY2x1ZGUgIkF1ZGlvVHJhY2tMaXN0LmgiCi0j
aW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKQEAgLTc4LDEwICs3NSwxMCBAQCBjb25zdCBBdG9t
aWNTdHJpbmcmIEF1ZGlvVHJhY2s6OmNvbW1lbnRhcnlLZXl3b3JkKCkKICAgICByZXR1cm4gY29t
bWVudGFyeTsKIH0KIAotQXVkaW9UcmFjazo6QXVkaW9UcmFjayhBdWRpb1RyYWNrQ2xpZW50KiBj
bGllbnQsIFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKLSAgICA6
IE1lZGlhVHJhY2tCYXNlKE1lZGlhVHJhY2tCYXNlOjpBdWRpb1RyYWNrLCB0cmFja1ByaXZhdGUt
PmlkKCksIHRyYWNrUHJpdmF0ZS0+bGFiZWwoKSwgdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpKQot
ICAgICwgbV9lbmFibGVkKHRyYWNrUHJpdmF0ZS0+ZW5hYmxlZCgpKQotICAgICwgbV9jbGllbnQo
Y2xpZW50KQorQXVkaW9UcmFjazo6QXVkaW9UcmFjayhBdWRpb1RyYWNrQ2xpZW50JiBjbGllbnQs
IEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgOiBNZWRpYVRyYWNrQmFzZShN
ZWRpYVRyYWNrQmFzZTo6QXVkaW9UcmFjaywgdHJhY2tQcml2YXRlLmlkKCksIHRyYWNrUHJpdmF0
ZS5sYWJlbCgpLCB0cmFja1ByaXZhdGUubGFuZ3VhZ2UoKSkKKyAgICAsIG1fZW5hYmxlZCh0cmFj
a1ByaXZhdGUuZW5hYmxlZCgpKQorICAgICwgbV9jbGllbnQoJmNsaWVudCkKICAgICAsIG1fcHJp
dmF0ZSh0cmFja1ByaXZhdGUpCiB7CiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CkBA
IC05Myw4MCArOTAsNzAgQEAgQXVkaW9UcmFjazo6fkF1ZGlvVHJhY2soKQogICAgIG1fcHJpdmF0
ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwogfQogCi12b2lkIEF1ZGlvVHJhY2s6OnNldFByaXZhdGUo
UGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQordm9pZCBBdWRpb1Ry
YWNrOjpzZXRQcml2YXRlKEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiB7Ci0gICAg
QVNTRVJUKG1fcHJpdmF0ZSk7Ci0gICAgQVNTRVJUKHRyYWNrUHJpdmF0ZSk7Ci0KLSAgICBpZiAo
bV9wcml2YXRlID09IHRyYWNrUHJpdmF0ZSkKKyAgICBpZiAobV9wcml2YXRlLnB0cigpID09ICZ0
cmFja1ByaXZhdGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50
KG51bGxwdHIpOwogICAgIG1fcHJpdmF0ZSA9IHRyYWNrUHJpdmF0ZTsKKyAgICBtX3ByaXZhdGUt
PnNldEVuYWJsZWQobV9lbmFibGVkKTsKICAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsK
IAotICAgIG1fcHJpdmF0ZS0+c2V0RW5hYmxlZChtX2VuYWJsZWQpOwogICAgIHVwZGF0ZUtpbmRG
cm9tUHJpdmF0ZSgpOwogfQogCiBib29sIEF1ZGlvVHJhY2s6OmlzVmFsaWRLaW5kKGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHZhbHVlID09IGFsdGVybmF0
aXZlS2V5d29yZCgpCisgICAgICAgIHx8IHZhbHVlID09IGNvbW1lbnRhcnlLZXl3b3JkKCkKICAg
ICAgICAgfHwgdmFsdWUgPT0gZGVzY3JpcHRpb25LZXl3b3JkKCkKICAgICAgICAgfHwgdmFsdWUg
PT0gbWFpbktleXdvcmQoKQogICAgICAgICB8fCB2YWx1ZSA9PSBtYWluRGVzY0tleXdvcmQoKQot
ICAgICAgICB8fCB2YWx1ZSA9PSB0cmFuc2xhdGlvbktleXdvcmQoKQotICAgICAgICB8fCB2YWx1
ZSA9PSBjb21tZW50YXJ5S2V5d29yZCgpOworICAgICAgICB8fCB2YWx1ZSA9PSB0cmFuc2xhdGlv
bktleXdvcmQoKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjpzZXRFbmFibGVkKGNvbnN0IGJvb2wg
ZW5hYmxlZCkKK3ZvaWQgQXVkaW9UcmFjazo6c2V0RW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAg
ICAgaWYgKG1fZW5hYmxlZCA9PSBlbmFibGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2Vu
YWJsZWQgPSBlbmFibGVkOwogICAgIG1fcHJpdmF0ZS0+c2V0RW5hYmxlZChlbmFibGVkKTsKLQot
ICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmF1ZGlvVHJhY2tFbmFibGVkQ2hh
bmdlZCh0aGlzKTsKIH0KIAotc2l6ZV90IEF1ZGlvVHJhY2s6OmluYmFuZFRyYWNrSW5kZXgoKQor
c2l6ZV90IEF1ZGlvVHJhY2s6OmluYmFuZFRyYWNrSW5kZXgoKSBjb25zdAogewotICAgIEFTU0VS
VChtX3ByaXZhdGUpOwogICAgIHJldHVybiBtX3ByaXZhdGUtPnRyYWNrSW5kZXgoKTsKIH0KIAot
dm9pZCBBdWRpb1RyYWNrOjplbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrUHJpdmF0ZSogdHJhY2tQ
cml2YXRlLCBib29sIGVuYWJsZWQpCit2b2lkIEF1ZGlvVHJhY2s6OmVuYWJsZWRDaGFuZ2VkKGJv
b2wgZW5hYmxlZCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2
YXRlID09IG1fcHJpdmF0ZSk7CisgICAgaWYgKG1fZW5hYmxlZCA9PSBlbmFibGVkKQorICAgICAg
ICByZXR1cm47CisKICAgICBtX2VuYWJsZWQgPSBlbmFibGVkOwogCiAgICAgaWYgKG1fY2xpZW50
KQotICAgICAgICBtX2NsaWVudC0+YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKHRoaXMpOworICAg
ICAgICBtX2NsaWVudC0+YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKCp0aGlzKTsKIH0KIAotdm9p
ZCBBdWRpb1RyYWNrOjppZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBj
b25zdCBBdG9taWNTdHJpbmcmIGlkKQordm9pZCBBdWRpb1RyYWNrOjppZENoYW5nZWQoY29uc3Qg
QXRvbWljU3RyaW5nJiBpZCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJh
Y2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0SWQoaWQpOwogfQogCi12b2lkIEF1ZGlv
VHJhY2s6OmxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0
IEF0b21pY1N0cmluZyYgbGFiZWwpCit2b2lkIEF1ZGlvVHJhY2s6OmxhYmVsQ2hhbmdlZChjb25z
dCBBdG9taWNTdHJpbmcmIGxhYmVsKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRl
LCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRMYWJlbChsYWJlbCk7CiB9CiAK
LXZvaWQgQXVkaW9UcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNr
UHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKK3ZvaWQgQXVkaW9UcmFjazo6
bGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiB7Ci0gICAgQVNT
RVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAg
IHNldExhbmd1YWdlKGxhbmd1YWdlKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjp3aWxsUmVtb3Zl
KFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSkKK3ZvaWQgQXVkaW9UcmFjazo6d2lsbFJl
bW92ZSgpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9
PSBtX3ByaXZhdGUpOwogICAgIG1lZGlhRWxlbWVudCgpLT5yZW1vdmVBdWRpb1RyYWNrKCp0aGlz
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNr
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAppbmRleCA2MWM1YjJj
ZDQyOThkNTc0ZjdmNzE1YmMxYzE5MjAwNzkxZGQyM2FhLi4wN2M3Nzk0ZmEwOTNmNmQyOGEyOTQx
NzNiODUzM2I3YmMyYzliOTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0F1ZGlvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2su
aApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yOSw5ICsyOSw3IEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAj
aW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUV4cG9ydE1h
Y3Jvcy5oIgogI2luY2x1ZGUgIlRyYWNrQmFzZS5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDEyICszOCwxMiBAQCBjbGFz
cyBBdWRpb1RyYWNrOwogY2xhc3MgQXVkaW9UcmFja0NsaWVudCB7CiBwdWJsaWM6CiAgICAgdmly
dHVhbCB+QXVkaW9UcmFja0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNr
RW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9U
cmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2smKSA9IDA7CiB9OwogCi1jbGFzcyBBdWRpb1Ry
YWNrIGZpbmFsIDogcHVibGljIE1lZGlhVHJhY2tCYXNlLCBwdWJsaWMgQXVkaW9UcmFja1ByaXZh
dGVDbGllbnQgeworY2xhc3MgQXVkaW9UcmFjayBmaW5hbCA6IHB1YmxpYyBNZWRpYVRyYWNrQmFz
ZSwgcHJpdmF0ZSBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxBdWRpb1RyYWNrPiBjcmVhdGUoQXVkaW9UcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVm
UHRyPEF1ZGlvVHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCisgICAgc3RhdGljIFJlZjxBdWRp
b1RyYWNrPiBjcmVhdGUoQXVkaW9UcmFja0NsaWVudCYgY2xpZW50LCBBdWRpb1RyYWNrUHJpdmF0
ZSYgdHJhY2tQcml2YXRlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVk
aW9UcmFjayhjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogICAgIH0KQEAgLTU3LDM5ICs1NSwzNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbWFpbkRlc2NLZXl3b3Jk
KCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhbnNsYXRpb25LZXl3b3JkKCk7
CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29tbWVudGFyeUtleXdvcmQoKTsKLSAg
ICBjb25zdCBBdG9taWNTdHJpbmcmIGRlZmF1bHRLaW5kS2V5d29yZCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGVtcHR5QXRvbTsgfQogCi0gICAgYm9vbCBlbmFibGVkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9lbmFibGVkOyB9CisgICAgYm9vbCBlbmFibGVkKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9lbmFibGVkOyB9CiAgICAgdm9pZCBzZXRFbmFibGVkKGNvbnN0IGJvb2wpOwog
Ci0gICAgdm9pZCBjbGVhckNsaWVudCgpIG92ZXJyaWRlIHsgbV9jbGllbnQgPSBudWxscHRyOyB9
CisgICAgdm9pZCBjbGVhckNsaWVudCgpIGZpbmFsIHsgbV9jbGllbnQgPSBudWxscHRyOyB9CiAg
ICAgQXVkaW9UcmFja0NsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0K
IAotICAgIHNpemVfdCBpbmJhbmRUcmFja0luZGV4KCk7CisgICAgc2l6ZV90IGluYmFuZFRyYWNr
SW5kZXgoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0UHJpdmF0ZShQYXNzUmVmUHRyPEF1ZGlvVHJh
Y2tQcml2YXRlPik7Ci0KLXByb3RlY3RlZDoKLSAgICBBdWRpb1RyYWNrKEF1ZGlvVHJhY2tDbGll
bnQqLCBQYXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPik7CisgICAgdm9pZCBzZXRQcml2YXRl
KEF1ZGlvVHJhY2tQcml2YXRlJik7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBpc1ZhbGlkS2luZChj
b25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKKyAgICBBdWRpb1RyYWNrKEF1ZGlv
VHJhY2tDbGllbnQmLCBBdWRpb1RyYWNrUHJpdmF0ZSYpOworCisgICAgYm9vbCBpc1ZhbGlkS2lu
ZChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIEF1ZGlvVHJhY2tQ
cml2YXRlQ2xpZW50Ci0gICAgdm9pZCBlbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrUHJpdmF0ZSos
IGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgZmluYWw7CiAK
ICAgICAvLyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50Ci0gICAgdm9pZCBpZENoYW5nZWQoVHJhY2tQ
cml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgbGFi
ZWxDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRv
bWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJh
c2UqKSBvdmVycmlkZTsKKyAgICB2b2lkIGlkQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBm
aW5hbDsKKyAgICB2b2lkIGxhYmVsQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsK
KyAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAg
ICB2b2lkIHdpbGxSZW1vdmUoKSBmaW5hbDsKIAogICAgIHZvaWQgdXBkYXRlS2luZEZyb21Qcml2
YXRlKCk7CiAKICAgICBib29sIG1fZW5hYmxlZDsKICAgICBBdWRpb1RyYWNrQ2xpZW50KiBtX2Ns
aWVudDsKIAotICAgIFJlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOworICAgIFJl
ZjxBdWRpb1RyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4
dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFj
ay5jcHAKaW5kZXggYmU1OGNjODExOWJmZTZkNjBmMDMwYmEwMTkzYzBjZGU1Mjg0OTE5OC4uNmQ5
NTQwMWI0ZWIzMjcyM2U4MjUwMzQxZTk2ZTkxYzRmM2U5ZDI3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNCBDYWJsZSBUZWxldmlzaW9uIExhYnMgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMzLDM1ICszMywzMyBAQAogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1
ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8
SW5iYW5kRGF0YVRleHRUcmFjaz4gSW5iYW5kRGF0YVRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBSZWZQdHI8
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4mJiB0cmFja1ByaXZhdGUpCitpbmxpbmUgSW5iYW5kRGF0
YVRleHRUcmFjazo6SW5iYW5kRGF0YVRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYg
dHJhY2tQcml2YXRlKQorICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgdHJh
Y2tQcml2YXRlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZERhdGFUZXh0VHJh
Y2soY29udGV4dCwgY2xpZW50LCBXVEZNb3ZlKHRyYWNrUHJpdmF0ZSkpKTsKIH0KIAotSW5iYW5k
RGF0YVRleHRUcmFjazo6SW5iYW5kRGF0YVRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUmVmUHRyPEluYmFuZFRleHRUcmFj
a1ByaXZhdGU+JiYgdHJhY2tQcml2YXRlKQotICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQs
IGNsaWVudCwgdHJhY2tQcml2YXRlKQorUmVmPEluYmFuZERhdGFUZXh0VHJhY2s+IEluYmFuZERh
dGFUZXh0VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUZXh0
VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRl
KQogeworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZERhdGFUZXh0VHJhY2soY29udGV4
dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpKTsKIH0KIAogSW5iYW5kRGF0YVRleHRUcmFjazo6fklu
YmFuZERhdGFUZXh0VHJhY2soKQogewogfQogCi12b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OmFk
ZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgp
Cit2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBz
dGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxl
bmd0aCkKIHsKICAgICBhZGRDdWUoRGF0YUN1ZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksIHN0YXJ0LCBlbmQsIGRhdGEsIGxlbmd0aCkpOwogfQogCiAjaWYgRU5BQkxFKERBVEFD
VUVfVkFMVUUpCiAKLXZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZShJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1l
JiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBycFBs
YXRmb3JtVmFsdWUsIGNvbnN0IFN0cmluZyYgdHlwZSkKK3ZvaWQgSW5iYW5kRGF0YVRleHRUcmFj
azo6YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVu
ZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiYmIHBsYXRmb3JtVmFsdWUs
IGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKLSAgICBSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVw
cmVzZW50YXRpb24+IHBsYXRmb3JtVmFsdWUgPSBwcnBQbGF0Zm9ybVZhbHVlOwotICAgIGlmICht
X2luY29tcGxldGVDdWVNYXAuZmluZChwbGF0Zm9ybVZhbHVlLmdldCgpKSAhPSBtX2luY29tcGxl
dGVDdWVNYXAuZW5kKCkpCisgICAgaWYgKG1faW5jb21wbGV0ZUN1ZU1hcC5jb250YWlucyhwbGF0
Zm9ybVZhbHVlLnB0cigpKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBjdWUgPSBEYXRh
Q3VlOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3RhcnQsIGVuZCwgcGxhdGZv
cm1WYWx1ZS5jb3B5UmVmKCksIHR5cGUpOwpAQCAtNzgsMjUgKzc2LDE5IEBAIHZvaWQgSW5iYW5k
RGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3Qg
TWVkaWFUaW1lJiBzCiAgICAgYWRkQ3VlKFdURk1vdmUoY3VlKSk7CiB9CiAKLXZvaWQgSW5iYW5k
RGF0YVRleHRUcmFjazo6dXBkYXRlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29u
c3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBpbkVuZCwgUGFzc1JlZlB0cjxT
ZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcHJwUGxhdGZvcm1WYWx1ZSkKK3ZvaWQg
SW5iYW5kRGF0YVRleHRUcmFjazo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0
LCBjb25zdCBNZWRpYVRpbWUmIGluRW5kLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlv
biYgcGxhdGZvcm1WYWx1ZSkKIHsKLSAgICBNZWRpYVRpbWUgZW5kID0gaW5FbmQ7Ci0KLSAgICBS
ZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBsYXRmb3JtVmFsdWUgPSBw
cnBQbGF0Zm9ybVZhbHVlOwotICAgIGF1dG8gaXRlciA9IG1faW5jb21wbGV0ZUN1ZU1hcC5maW5k
KHBsYXRmb3JtVmFsdWUuZ2V0KCkpOwotICAgIGlmIChpdGVyID09IG1faW5jb21wbGV0ZUN1ZU1h
cC5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVmUHRyPERhdGFDdWU+IGN1ZSA9IGl0
ZXItPnZhbHVlOworICAgIFJlZlB0cjxEYXRhQ3VlPiBjdWUgPSBtX2luY29tcGxldGVDdWVNYXAu
Z2V0KCZwbGF0Zm9ybVZhbHVlKTsKICAgICBpZiAoIWN1ZSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgY3VlLT53aWxsQ2hhbmdlKCk7CiAKKyAgICBNZWRpYVRpbWUgZW5kID0gaW5FbmQ7CiAgICAg
aWYgKGVuZC5pc1Bvc2l0aXZlSW5maW5pdGUoKSAmJiBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAg
ZW5kID0gbWVkaWFFbGVtZW50KCktPmR1cmF0aW9uTWVkaWFUaW1lKCk7CiAgICAgZWxzZQotICAg
ICAgICBtX2luY29tcGxldGVDdWVNYXAucmVtb3ZlKHBsYXRmb3JtVmFsdWUuZ2V0KCkpOworICAg
ICAgICBtX2luY29tcGxldGVDdWVNYXAucmVtb3ZlKCZwbGF0Zm9ybVZhbHVlKTsKIAogICAgIExP
RyhNZWRpYSwgIkluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWU6IHdhcyBzdGFydD0l
cywgZW5kPSVzLCB3aWxsIGJlIHN0YXJ0PSVzLCBlbmQ9JXNcbiIsIHRvU3RyaW5nKGN1ZS0+c3Rh
cnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZS0+ZW5kVGltZSgpKS51dGY4KCku
ZGF0YSgpLCB0b1N0cmluZyhzdGFydCkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kKS51dGY4
KCkuZGF0YSgpKTsKIApAQCAtMTA2LDE0ICs5OCw5IEBAIHZvaWQgSW5iYW5kRGF0YVRleHRUcmFj
azo6dXBkYXRlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1l
CiAgICAgY3VlLT5kaWRDaGFuZ2UoKTsKIH0KIAotdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjpy
ZW1vdmVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmLCBj
b25zdCBNZWRpYVRpbWUmLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0
aW9uPiBwcnBQbGF0Zm9ybVZhbHVlKQordm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjpyZW1vdmVE
YXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNlcmlhbGl6ZWRQbGF0
Zm9ybVJlcHJlc2VudGF0aW9uJiBwbGF0Zm9ybVZhbHVlKQogewotICAgIFJlZlB0cjxTZXJpYWxp
emVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcGxhdGZvcm1WYWx1ZSA9IHBycFBsYXRmb3JtVmFs
dWU7Ci0gICAgYXV0byBpdGVyID0gbV9pbmNvbXBsZXRlQ3VlTWFwLmZpbmQocGxhdGZvcm1WYWx1
ZS5nZXQoKSk7Ci0gICAgaWYgKGl0ZXIgPT0gbV9pbmNvbXBsZXRlQ3VlTWFwLmVuZCgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBpZiAoUmVmUHRyPERhdGFDdWU+IGN1ZSA9IGl0ZXItPnZhbHVl
KSB7CisgICAgaWYgKGF1dG8qIGN1ZSA9IG1faW5jb21wbGV0ZUN1ZU1hcC5nZXQoJnBsYXRmb3Jt
VmFsdWUpKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZERhdGFUZXh0VHJhY2s6OnJlbW92
ZURhdGFDdWUgcmVtb3ZpbmcgY3VlOiBzdGFydD0lcywgZW5kPSVzXG4iLCB0b1N0cmluZyhjdWUt
PnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWUtPmVuZFRpbWUoKSkudXRm
OCgpLmRhdGEoKSk7CiAgICAgICAgIHJlbW92ZUN1ZSgqY3VlKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oCmluZGV4IDI3YThkYjYx
NjlkMGI0NzZjNTRkMzJlNDgxNDI4NjIxZGIyYTMwODMuLjY3YWViNmQwNTE3NGI4NGMwN2E1MzZk
MzljMjNhYTE4MjM4NzY0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
SW5iYW5kRGF0YVRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kRGF0YVRleHRUcmFjay5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxNCBDYWJsZSBUZWxldmlzaW9uIExhYnMgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsMjMgKzMzLDIxIEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGFDdWU7Ci1jbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlOwotY2xhc3MgU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb247CiAKIGNsYXNzIElu
YmFuZERhdGFUZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgSW5iYW5kVGV4dFRyYWNrIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPEluYmFuZERhdGFUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUmVmUHRyPEluYmFuZFRleHRUcmFja1By
aXZhdGU+JiYpOworICAgIHN0YXRpYyBSZWY8SW5iYW5kRGF0YVRleHRUcmFjaz4gY3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlJik7CiAgICAgdmlydHVhbCB+SW5iYW5kRGF0YVRleHRUcmFjaygpOwogCiBwcml2YXRl
OgotICAgIEluYmFuZERhdGFUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRU
cmFja0NsaWVudCosIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiYmKTsKKyAgICBJbmJh
bmREYXRhVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQm
LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CiAKLSAgICB2b2lkIGFkZERhdGFDdWUoSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGlt
ZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpIGZpbmFsOworICAgIHZvaWQgYWRkRGF0YUN1
ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9p
ZCosIHVuc2lnbmVkKSBmaW5hbDsKIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQotICAgIHZv
aWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBz
dGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3Jt
UmVwcmVzZW50YXRpb24+LCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKLSAgICB2b2lkIHVwZGF0ZURh
dGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNv
bnN0IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2Vu
dGF0aW9uPikgZmluYWw7Ci0gICAgdm9pZCByZW1vdmVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1By
aXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFz
c1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4pIGZpbmFsOworICAgIHZv
aWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVu
ZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiYmLCBjb25zdCBTdHJpbmcm
KSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwg
Y29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uJikg
ZmluYWw7CisgICAgdm9pZCByZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNv
bnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbiYpIGZp
bmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlbW92ZUN1ZShUZXh0VHJhY2tDdWUmKSBmaW5h
bDsKIAogICAgIEhhc2hNYXA8UmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9u
PiwgUmVmUHRyPERhdGFDdWU+PiBtX2luY29tcGxldGVDdWVNYXA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcAppbmRleCAwOTFh
NWQyYjE4NTI2MGI1OGY2OGUyZmJjZjg5Yjg3NmM3NTY1YzJlLi45ODY3OWIzNjAzOTFmMDU4MDgx
ZmNlOTU5NTgwNzE0MzI2YWNiNGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEyLTIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjUsMTAyICs2NSw5OSBAQCB2
b2lkIEdlbmVyaWNUZXh0VHJhY2tDdWVNYXA6OnJlbW92ZShUZXh0VHJhY2tDdWUmIGN1ZSkKICAg
ICAgICAgbV9kYXRhVG9DdWVNYXAucmVtb3ZlKGRhdGEpOwogfQogCi1SZWY8SW5iYW5kR2VuZXJp
Y1RleHRUcmFjaz4gSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPElu
YmFuZFRleHRUcmFja1ByaXZhdGU+IHBsYXllclByaXZhdGUpCitpbmxpbmUgSW5iYW5kR2VuZXJp
Y1RleHRUcmFjazo6SW5iYW5kR2VuZXJpY1RleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSYgdHJhY2tQcml2YXRlKQorICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwg
dHJhY2tQcml2YXRlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZEdlbmVyaWNU
ZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7CiB9CiAKLUluYmFuZEdl
bmVyaWNUZXh0VHJhY2s6OkluYmFuZEdlbmVyaWNUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQotICAgIDogSW5iYW5kVGV4dFRyYWNrKGNv
bnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKQorUmVmPEluYmFuZEdlbmVyaWNUZXh0VHJhY2s+
IEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYg
dHJhY2tQcml2YXRlKQogeworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZEdlbmVyaWNU
ZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpKTsKIH0KIAogSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjazo6fkluYmFuZEdlbmVyaWNUZXh0VHJhY2soKQogewogfQogCi12b2lkIElu
YmFuZEdlbmVyaWNUZXh0VHJhY2s6OnVwZGF0ZUN1ZUZyb21DdWVEYXRhKFRleHRUcmFja0N1ZUdl
bmVyaWMqIGN1ZSwgR2VuZXJpY0N1ZURhdGEqIGN1ZURhdGEpCit2b2lkIEluYmFuZEdlbmVyaWNU
ZXh0VHJhY2s6OnVwZGF0ZUN1ZUZyb21DdWVEYXRhKFRleHRUcmFja0N1ZUdlbmVyaWMmIGN1ZSwg
R2VuZXJpY0N1ZURhdGEmIGN1ZURhdGEpCiB7Ci0gICAgY3VlLT53aWxsQ2hhbmdlKCk7CisgICAg
Y3VlLndpbGxDaGFuZ2UoKTsKIAotICAgIGN1ZS0+c2V0U3RhcnRUaW1lKGN1ZURhdGEtPnN0YXJ0
VGltZSgpKTsKLSAgICBNZWRpYVRpbWUgZW5kVGltZSA9IGN1ZURhdGEtPmVuZFRpbWUoKTsKKyAg
ICBjdWUuc2V0U3RhcnRUaW1lKGN1ZURhdGEuc3RhcnRUaW1lKCkpOworICAgIE1lZGlhVGltZSBl
bmRUaW1lID0gY3VlRGF0YS5lbmRUaW1lKCk7CiAgICAgaWYgKGVuZFRpbWUuaXNQb3NpdGl2ZUlu
ZmluaXRlKCkgJiYgbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIGVuZFRpbWUgPSBtZWRpYUVsZW1l
bnQoKS0+ZHVyYXRpb25NZWRpYVRpbWUoKTsKLSAgICBjdWUtPnNldEVuZFRpbWUoZW5kVGltZSk7
Ci0gICAgY3VlLT5zZXRUZXh0KGN1ZURhdGEtPmNvbnRlbnQoKSk7Ci0gICAgY3VlLT5zZXRJZChj
dWVEYXRhLT5pZCgpKTsKLSAgICBjdWUtPnNldEJhc2VGb250U2l6ZVJlbGF0aXZlVG9WaWRlb0hl
aWdodChjdWVEYXRhLT5iYXNlRm9udFNpemUoKSk7Ci0gICAgY3VlLT5zZXRGb250U2l6ZU11bHRp
cGxpZXIoY3VlRGF0YS0+cmVsYXRpdmVGb250U2l6ZSgpKTsKLSAgICBjdWUtPnNldEZvbnROYW1l
KGN1ZURhdGEtPmZvbnROYW1lKCkpOwotCi0gICAgaWYgKGN1ZURhdGEtPnBvc2l0aW9uKCkgPiAw
KQotICAgICAgICBjdWUtPnNldFBvc2l0aW9uKHN0ZDo6cm91bmQoY3VlRGF0YS0+cG9zaXRpb24o
KSkpOwotICAgIGlmIChjdWVEYXRhLT5saW5lKCkgPiAwKQotICAgICAgICBjdWUtPnNldExpbmUo
c3RkOjpyb3VuZChjdWVEYXRhLT5saW5lKCkpKTsKLSAgICBpZiAoY3VlRGF0YS0+c2l6ZSgpID4g
MCkKLSAgICAgICAgY3VlLT5zZXRTaXplKHN0ZDo6cm91bmQoY3VlRGF0YS0+c2l6ZSgpKSk7Ci0g
ICAgaWYgKGN1ZURhdGEtPmJhY2tncm91bmRDb2xvcigpLmlzVmFsaWQoKSkKLSAgICAgICAgY3Vl
LT5zZXRCYWNrZ3JvdW5kQ29sb3IoY3VlRGF0YS0+YmFja2dyb3VuZENvbG9yKCkucmdiKCkpOwot
ICAgIGlmIChjdWVEYXRhLT5mb3JlZ3JvdW5kQ29sb3IoKS5pc1ZhbGlkKCkpCi0gICAgICAgIGN1
ZS0+c2V0Rm9yZWdyb3VuZENvbG9yKGN1ZURhdGEtPmZvcmVncm91bmRDb2xvcigpLnJnYigpKTsK
LSAgICBpZiAoY3VlRGF0YS0+aGlnaGxpZ2h0Q29sb3IoKS5pc1ZhbGlkKCkpCi0gICAgICAgIGN1
ZS0+c2V0SGlnaGxpZ2h0Q29sb3IoY3VlRGF0YS0+aGlnaGxpZ2h0Q29sb3IoKS5yZ2IoKSk7Ci0K
LSAgICBpZiAoY3VlRGF0YS0+YWxpZ24oKSA9PSBHZW5lcmljQ3VlRGF0YTo6U3RhcnQpCi0gICAg
ICAgIGN1ZS0+c2V0QWxpZ24oQVNDSUlMaXRlcmFsKCJzdGFydCIpKTsKLSAgICBlbHNlIGlmIChj
dWVEYXRhLT5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpNaWRkbGUpCi0gICAgICAgIGN1ZS0+
c2V0QWxpZ24oQVNDSUlMaXRlcmFsKCJtaWRkbGUiKSk7Ci0gICAgZWxzZSBpZiAoY3VlRGF0YS0+
YWxpZ24oKSA9PSBHZW5lcmljQ3VlRGF0YTo6RW5kKQotICAgICAgICBjdWUtPnNldEFsaWduKEFT
Q0lJTGl0ZXJhbCgiZW5kIikpOwotICAgIGN1ZS0+c2V0U25hcFRvTGluZXMoZmFsc2UpOwotCi0g
ICAgY3VlLT5kaWRDaGFuZ2UoKTsKLX0KLQotdm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjph
ZGRHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgUGFzc1Jl
ZlB0cjxHZW5lcmljQ3VlRGF0YT4gcHJwQ3VlRGF0YSkKLXsKLSAgICBBU1NFUlRfVU5VU0VEKHRy
YWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7Ci0KLSAgICBSZWZQdHI8R2Vu
ZXJpY0N1ZURhdGE+IGN1ZURhdGEgPSBwcnBDdWVEYXRhOwotICAgIGlmIChtX2N1ZU1hcC5maW5k
KCpjdWVEYXRhKSkKKyAgICBjdWUuc2V0RW5kVGltZShlbmRUaW1lKTsKKyAgICBjdWUuc2V0VGV4
dChjdWVEYXRhLmNvbnRlbnQoKSk7CisgICAgY3VlLnNldElkKGN1ZURhdGEuaWQoKSk7CisgICAg
Y3VlLnNldEJhc2VGb250U2l6ZVJlbGF0aXZlVG9WaWRlb0hlaWdodChjdWVEYXRhLmJhc2VGb250
U2l6ZSgpKTsKKyAgICBjdWUuc2V0Rm9udFNpemVNdWx0aXBsaWVyKGN1ZURhdGEucmVsYXRpdmVG
b250U2l6ZSgpKTsKKyAgICBjdWUuc2V0Rm9udE5hbWUoY3VlRGF0YS5mb250TmFtZSgpKTsKKwor
ICAgIGlmIChjdWVEYXRhLnBvc2l0aW9uKCkgPiAwKQorICAgICAgICBjdWUuc2V0UG9zaXRpb24o
c3RkOjpyb3VuZChjdWVEYXRhLnBvc2l0aW9uKCkpKTsKKyAgICBpZiAoY3VlRGF0YS5saW5lKCkg
PiAwKQorICAgICAgICBjdWUuc2V0TGluZShzdGQ6OnJvdW5kKGN1ZURhdGEubGluZSgpKSk7Cisg
ICAgaWYgKGN1ZURhdGEuc2l6ZSgpID4gMCkKKyAgICAgICAgY3VlLnNldFNpemUoc3RkOjpyb3Vu
ZChjdWVEYXRhLnNpemUoKSkpOworICAgIGlmIChjdWVEYXRhLmJhY2tncm91bmRDb2xvcigpLmlz
VmFsaWQoKSkKKyAgICAgICAgY3VlLnNldEJhY2tncm91bmRDb2xvcihjdWVEYXRhLmJhY2tncm91
bmRDb2xvcigpLnJnYigpKTsKKyAgICBpZiAoY3VlRGF0YS5mb3JlZ3JvdW5kQ29sb3IoKS5pc1Zh
bGlkKCkpCisgICAgICAgIGN1ZS5zZXRGb3JlZ3JvdW5kQ29sb3IoY3VlRGF0YS5mb3JlZ3JvdW5k
Q29sb3IoKS5yZ2IoKSk7CisgICAgaWYgKGN1ZURhdGEuaGlnaGxpZ2h0Q29sb3IoKS5pc1ZhbGlk
KCkpCisgICAgICAgIGN1ZS5zZXRIaWdobGlnaHRDb2xvcihjdWVEYXRhLmhpZ2hsaWdodENvbG9y
KCkucmdiKCkpOworCisgICAgaWYgKGN1ZURhdGEuYWxpZ24oKSA9PSBHZW5lcmljQ3VlRGF0YTo6
U3RhcnQpCisgICAgICAgIGN1ZS5zZXRBbGlnbihBU0NJSUxpdGVyYWwoInN0YXJ0IikpOworICAg
IGVsc2UgaWYgKGN1ZURhdGEuYWxpZ24oKSA9PSBHZW5lcmljQ3VlRGF0YTo6TWlkZGxlKQorICAg
ICAgICBjdWUuc2V0QWxpZ24oQVNDSUlMaXRlcmFsKCJtaWRkbGUiKSk7CisgICAgZWxzZSBpZiAo
Y3VlRGF0YS5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpFbmQpCisgICAgICAgIGN1ZS5zZXRB
bGlnbihBU0NJSUxpdGVyYWwoImVuZCIpKTsKKyAgICBjdWUuc2V0U25hcFRvTGluZXMoZmFsc2Up
OworCisgICAgY3VlLmRpZENoYW5nZSgpOworfQorCit2b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJh
Y2s6OmFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmIGN1ZURhdGEpCit7CisgICAgaWYgKG1f
Y3VlTWFwLmZpbmQoY3VlRGF0YSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gY3VlID0g
VGV4dFRyYWNrQ3VlR2VuZXJpYzo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGN1
ZURhdGEtPnN0YXJ0VGltZSgpLCBjdWVEYXRhLT5lbmRUaW1lKCksIGN1ZURhdGEtPmNvbnRlbnQo
KSk7Ci0gICAgdXBkYXRlQ3VlRnJvbUN1ZURhdGEoY3VlLnB0cigpLCBjdWVEYXRhLmdldCgpKTsK
KyAgICBhdXRvIGN1ZSA9IFRleHRUcmFja0N1ZUdlbmVyaWM6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBjdWVEYXRhLnN0YXJ0VGltZSgpLCBjdWVEYXRhLmVuZFRpbWUoKSwgY3Vl
RGF0YS5jb250ZW50KCkpOworICAgIHVwZGF0ZUN1ZUZyb21DdWVEYXRhKGN1ZS5nZXQoKSwgY3Vl
RGF0YSk7CiAgICAgaWYgKGhhc0N1ZShjdWUucHRyKCksIFRleHRUcmFja0N1ZTo6SWdub3JlRHVy
YXRpb24pKSB7Ci0gICAgICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmFk
ZEdlbmVyaWNDdWUgaWdub3JpbmcgYWxyZWFkeSBhZGRlZCBjdWU6IHN0YXJ0PSVzLCBlbmQ9JXMs
IGNvbnRlbnQ9XCIlc1wiXG4iLCB0b1N0cmluZyhjdWVEYXRhLT5zdGFydFRpbWUoKSkudXRmOCgp
LmRhdGEoKSwgdG9TdHJpbmcoY3VlRGF0YS0+ZW5kVGltZSgpKS51dGY4KCkuZGF0YSgpLCBjdWVE
YXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIExPRyhNZWRpYSwgIkluYmFu
ZEdlbmVyaWNUZXh0VHJhY2s6OmFkZEdlbmVyaWNDdWUgaWdub3JpbmcgYWxyZWFkeSBhZGRlZCBj
dWU6IHN0YXJ0PSVzLCBlbmQ9JXMsIGNvbnRlbnQ9XCIlc1wiXG4iLCB0b1N0cmluZyhjdWVEYXRh
LnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWVEYXRhLmVuZFRpbWUoKSku
dXRmOCgpLmRhdGEoKSwgY3VlRGF0YS5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBMT0coTWVkaWEsICJJbmJhbmRHZW5lcmljVGV4dFRyYWNr
OjphZGRHZW5lcmljQ3VlIGFkZGVkIGN1ZTogc3RhcnQ9JS4yZiwgZW5kPSUuMmYsIGNvbnRlbnQ9
XCIlc1wiXG4iLCBjdWVEYXRhLT5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLT5lbmRU
aW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS0+Y29udGVudCgpLnV0ZjgoKS5kYXRhKCkpOworICAg
IExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmFkZEdlbmVyaWNDdWUgYWRkZWQg
Y3VlOiBzdGFydD0lLjJmLCBlbmQ9JS4yZiwgY29udGVudD1cIiVzXCJcbiIsIGN1ZURhdGEuc3Rh
cnRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS5lbmRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0
YS5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICBpZiAoY3VlRGF0YS0+c3RhdHVzKCkg
IT0gR2VuZXJpY0N1ZURhdGE6OkNvbXBsZXRlKQotICAgICAgICBtX2N1ZU1hcC5hZGQoKmN1ZURh
dGEsIGN1ZSk7CisgICAgaWYgKGN1ZURhdGEuc3RhdHVzKCkgIT0gR2VuZXJpY0N1ZURhdGE6OkNv
bXBsZXRlKQorICAgICAgICBtX2N1ZU1hcC5hZGQoY3VlRGF0YSwgY3VlKTsKIAogICAgIGFkZEN1
ZShXVEZNb3ZlKGN1ZSkpOwogfQogCi12b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnVwZGF0
ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKiBjdWVE
YXRhKQordm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVHZW5lcmljQ3VlKEdlbmVy
aWNDdWVEYXRhJiBjdWVEYXRhKQogewotICAgIGF1dG8qIGN1ZSA9IG1fY3VlTWFwLmZpbmQoKmN1
ZURhdGEpOworICAgIGF1dG8qIGN1ZSA9IG1fY3VlTWFwLmZpbmQoY3VlRGF0YSk7CiAgICAgaWYg
KCFjdWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUN1ZUZyb21DdWVEYXRhKGN1ZSwg
Y3VlRGF0YSk7CisgICAgdXBkYXRlQ3VlRnJvbUN1ZURhdGEoKmN1ZSwgY3VlRGF0YSk7CiAKLSAg
ICBpZiAoY3VlRGF0YS0+c3RhdHVzKCkgPT0gR2VuZXJpY0N1ZURhdGE6OkNvbXBsZXRlKQotICAg
ICAgICBtX2N1ZU1hcC5yZW1vdmUoKmN1ZURhdGEpOworICAgIGlmIChjdWVEYXRhLnN0YXR1cygp
ID09IEdlbmVyaWNDdWVEYXRhOjpDb21wbGV0ZSkKKyAgICAgICAgbV9jdWVNYXAucmVtb3ZlKGN1
ZURhdGEpOwogfQogCi12b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVyaWND
dWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKiBjdWVEYXRhKQordm9p
ZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpyZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRh
JiBjdWVEYXRhKQogewotICAgIGF1dG8qIGN1ZSA9IG1fY3VlTWFwLmZpbmQoKmN1ZURhdGEpOwor
ICAgIGF1dG8qIGN1ZSA9IG1fY3VlTWFwLmZpbmQoY3VlRGF0YSk7CiAgICAgaWYgKGN1ZSkgewot
ICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpyZW1vdmVHZW5lcmlj
Q3VlIHJlbW92aW5nIGN1ZTogc3RhcnQ9JXMsIGVuZD0lcywgY29udGVudD1cIiVzXCJcbiIsICB0
b1N0cmluZyhjdWVEYXRhLT5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoY3Vl
RGF0YS0+ZW5kVGltZSgpKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLT5jb250ZW50KCkudXRmOCgp
LmRhdGEoKSk7CisgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJl
bW92ZUdlbmVyaWNDdWUgcmVtb3ZpbmcgY3VlOiBzdGFydD0lcywgZW5kPSVzLCBjb250ZW50PVwi
JXNcIlxuIiwgIHRvU3RyaW5nKGN1ZURhdGEuc3RhcnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRv
U3RyaW5nKGN1ZURhdGEuZW5kVGltZSgpKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLmNvbnRlbnQo
KS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmVtb3ZlQ3VlKCpjdWUpOwogICAgIH0gZWxzZSB7
Ci0gICAgICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVy
aWNDdWUgVU5BQkxFIHRvIGZpbmQgY3VlOiBzdGFydD0lLjJmLCBlbmQ9JS4yZiwgY29udGVudD1c
IiVzXCJcbiIsIGN1ZURhdGEtPnN0YXJ0VGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEtPmVuZFRp
bWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CisgICAg
ICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVyaWNDdWUg
VU5BQkxFIHRvIGZpbmQgY3VlOiBzdGFydD0lLjJmLCBlbmQ9JS4yZiwgY29udGVudD1cIiVzXCJc
biIsIGN1ZURhdGEuc3RhcnRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS5lbmRUaW1lKCkudG9E
b3VibGUoKSwgY3VlRGF0YS5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgfQogfQogCkBA
IC0xNzksMTUgKzE3NiwxMyBAQCBXZWJWVFRQYXJzZXImIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6
OnBhcnNlcigpCiAgICAgcmV0dXJuICptX3dlYlZUVFBhcnNlcjsKIH0KIAotdm9pZCBJbmJhbmRH
ZW5lcmljVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSogdHJhY2tQcml2YXRlLCBjb25zdCBJU09XZWJWVFRDdWUmIGN1ZURhdGEpCit2b2lkIEluYmFu
ZEdlbmVyaWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUm
IGN1ZURhdGEpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0
ZSA9PSBtX3ByaXZhdGUpOwogICAgIHBhcnNlcigpLnBhcnNlQ3VlRGF0YShjdWVEYXRhKTsKIH0K
IAotdm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIoSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZSogdHJhY2tQcml2YXRlLCBTdHJpbmcmJiBoZWFkZXIpCit2b2lk
IEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRURmlsZUhlYWRlcihTdHJpbmcmJiBo
ZWFkZXIpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9
PSBtX3ByaXZhdGUpOwogICAgIHBhcnNlcigpLnBhcnNlRmlsZUhlYWRlcihXVEZNb3ZlKGhlYWRl
cikpOwogfQogCkBAIC0yMTQsNyArMjA5LDcgQEAgdm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNr
OjpuZXdSZWdpb25zUGFyc2VkKCkKIAogICAgIGZvciAoYXV0byYgcmVnaW9uIDogbmV3UmVnaW9u
cykgewogICAgICAgICByZWdpb24tPnNldFRyYWNrKHRoaXMpOwotICAgICAgICByZWdpb25zKCkt
PmFkZChyZWdpb24pOworICAgICAgICByZWdpb25zKCktPmFkZChyZWdpb24ucmVsZWFzZU5vbk51
bGwoKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0luYmFuZEdlbmVyaWNUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kR2VuZXJpY1RleHRUcmFjay5oCmluZGV4IDFjMzQ4YjJkYTU1MTAzZWJiZmNhODc4ZDQwYjdm
OTA3ODliZDQ0NjMuLmU1ZmViMjU0YmJlMmY5YTNiZjI2ODg1ZmM4ZjNkMmFiZWRkNzViOTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFj
ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFj
ay5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzMsOSArMzMsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERv
Y3VtZW50OwotY2xhc3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTsKLQogY2xhc3MgR2VuZXJpY1Rl
eHRUcmFja0N1ZU1hcCB7CiBwdWJsaWM6CiAgICAgdm9pZCBhZGQoR2VuZXJpY0N1ZURhdGEmLCBU
ZXh0VHJhY2tDdWVHZW5lcmljJik7CkBAIC01NiwyMyArNTMsMjIgQEAgcHJpdmF0ZToKIAogY2xh
c3MgSW5iYW5kR2VuZXJpY1RleHRUcmFjayBmaW5hbCA6IHB1YmxpYyBJbmJhbmRUZXh0VHJhY2ss
IHByaXZhdGUgV2ViVlRUUGFyc2VyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPElu
YmFuZEdlbmVyaWNUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4
dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CisgICAg
c3RhdGljIFJlZjxJbmJhbmRHZW5lcmljVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIFRleHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKICAg
ICB2aXJ0dWFsIH5JbmJhbmRHZW5lcmljVGV4dFRyYWNrKCk7CiAKIHByaXZhdGU6Ci0gICAgSW5i
YW5kR2VuZXJpY1RleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xp
ZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CisgICAgSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50Jiwg
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogCi0gICAgdm9pZCBhZGRHZW5lcmljQ3VlKEluYmFu
ZFRleHRUcmFja1ByaXZhdGUqLCBQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPikgZmluYWw7Ci0g
ICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBHZW5lcmlj
Q3VlRGF0YSopIGZpbmFsOwotICAgIHZvaWQgcmVtb3ZlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqKSBmaW5hbDsKKyAgICB2b2lkIGFkZEdlbmVyaWND
dWUoR2VuZXJpY0N1ZURhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoR2Vu
ZXJpY0N1ZURhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUoR2VuZXJpY0N1
ZURhdGEmKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiByZW1vdmVDdWUoVGV4dFRyYWNr
Q3VlJikgZmluYWw7CiAKLSAgICBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUdlbmVyaWM+IGNyZWF0
ZUN1ZShQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPik7Ci0gICAgdm9pZCB1cGRhdGVDdWVGcm9t
Q3VlRGF0YShUZXh0VHJhY2tDdWVHZW5lcmljKiwgR2VuZXJpY0N1ZURhdGEqKTsKKyAgICB2b2lk
IHVwZGF0ZUN1ZUZyb21DdWVEYXRhKFRleHRUcmFja0N1ZUdlbmVyaWMmLCBHZW5lcmljQ3VlRGF0
YSYpOwogCiAgICAgV2ViVlRUUGFyc2VyJiBwYXJzZXIoKTsKLSAgICB2b2lkIHBhcnNlV2ViVlRU
Q3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNPV2ViVlRUQ3VlJikgZmlu
YWw7Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSosIFN0cmluZyYmKSBmaW5hbDsKKyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJ
U09XZWJWVFRDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihTdHJp
bmcmJikgZmluYWw7CiAKICAgICB2b2lkIG5ld0N1ZXNQYXJzZWQoKSBmaW5hbDsKICAgICB2b2lk
IG5ld1JlZ2lvbnNQYXJzZWQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
SW5iYW5kVGV4dFRyYWNrLmNwcAppbmRleCBmMmVlZWFlMGZjMDA5NGU0MjhhODdhNjVkMTgzMTdk
M2NmZjQ0MDc5Li5iZDY1ZTU0OGE4NzYyMjkwYTUxMGQzZDdmOTJjMWFhYjE2OTQ5MmYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCw0MyAr
MjQsMzQgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5iYW5kVGV4
dFRyYWNrLmgiCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbmNsdWRlICJJbmJhbmRU
ZXh0VHJhY2suaCIKLQotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIK
ICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5iYW5kRGF0YVRleHRU
cmFjay5oIgogI2luY2x1ZGUgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2suaCIKICNpbmNsdWRlICJJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiSW5iYW5kV2ViVlRUVGV4dFRyYWNr
LmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlRleHRUcmFja0N1ZUxpc3QuaCIK
LSNpbmNsdWRlIDxtYXRoLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrPiBJbmJhbmRUZXh0
VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAotICAgIFRleHRU
cmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHRy
YWNrUHJpdmF0ZSkKK1JlZjxJbmJhbmRUZXh0VHJhY2s+IEluYmFuZFRleHRUcmFjazo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50
LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiB7Ci0gICAgc3dpdGNoICh0
cmFja1ByaXZhdGUtPmN1ZUZvcm1hdCgpKSB7CisgICAgc3dpdGNoICh0cmFja1ByaXZhdGUuY3Vl
Rm9ybWF0KCkpIHsKICAgICBjYXNlIEluYmFuZFRleHRUcmFja1ByaXZhdGU6OkRhdGE6CiAgICAg
ICAgIHJldHVybiBJbmJhbmREYXRhVGV4dFRyYWNrOjpjcmVhdGUoY29udGV4dCwgY2xpZW50LCB0
cmFja1ByaXZhdGUpOwogICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6R2VuZXJpYzoK
ICAgICAgICAgcmV0dXJuIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmNyZWF0ZShjb250ZXh0LCBj
bGllbnQsIHRyYWNrUHJpdmF0ZSk7CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpX
ZWJWVFQ6CiAgICAgICAgIHJldHVybiBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmNyZWF0ZShjb250
ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSk7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiAwOwogICAgIH0KKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICByZXR1cm4gSW5iYW5kRGF0YVRleHRUcmFjazo6Y3JlYXRlKGNvbnRl
eHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKTsKIH0KIAotSW5iYW5kVGV4dFRyYWNrOjpJbmJhbmRU
ZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50
KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRl
KQotICAgIDogVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgZW1wdHlBdG9tLCB0cmFja1ByaXZh
dGUtPmlkKCksIHRyYWNrUHJpdmF0ZS0+bGFiZWwoKSwgdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgp
LCBJbkJhbmQpCitJbmJhbmRUZXh0VHJhY2s6OkluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQorICAgIDogVGV4dFRyYWNrKCZjb250ZXh0LCAmY2xp
ZW50LCBlbXB0eUF0b20sIHRyYWNrUHJpdmF0ZS5pZCgpLCB0cmFja1ByaXZhdGUubGFiZWwoKSwg
dHJhY2tQcml2YXRlLmxhbmd1YWdlKCksIEluQmFuZCkKICAgICAsIG1fcHJpdmF0ZSh0cmFja1By
aXZhdGUpCiB7CiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CkBAIC03MiwxMiArNjMs
OSBAQCBJbmJhbmRUZXh0VHJhY2s6On5JbmJhbmRUZXh0VHJhY2soKQogICAgIG1fcHJpdmF0ZS0+
c2V0Q2xpZW50KG51bGxwdHIpOwogfQogCi12b2lkIEluYmFuZFRleHRUcmFjazo6c2V0UHJpdmF0
ZShQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKK3ZvaWQg
SW5iYW5kVGV4dFRyYWNrOjpzZXRQcml2YXRlKEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNr
UHJpdmF0ZSkKIHsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKLSAgICBBU1NFUlQodHJhY2tQcml2
YXRlKTsKLQotICAgIGlmIChtX3ByaXZhdGUgPT0gdHJhY2tQcml2YXRlKQorICAgIGlmIChtX3By
aXZhdGUucHRyKCkgPT0gJnRyYWNrUHJpdmF0ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9w
cml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CkBAIC0xMTUsODAgKzEwMyw2MCBAQCB2b2lkIElu
YmFuZFRleHRUcmFjazo6c2V0TW9kZUludGVybmFsKE1vZGUgbW9kZSkKIAogYm9vbCBJbmJhbmRU
ZXh0VHJhY2s6OmlzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRl
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICByZXR1cm4gbV9wcml2YXRlLT5pc0Nsb3Nl
ZENhcHRpb25zKCk7CiB9CiAKIGJvb2wgSW5iYW5kVGV4dFRyYWNrOjppc1NESCgpIGNvbnN0CiB7
Ci0gICAgaWYgKCFtX3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKICAgICBy
ZXR1cm4gbV9wcml2YXRlLT5pc1NESCgpOwogfQogCiBib29sIEluYmFuZFRleHRUcmFjazo6Y29u
dGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPmNvbnRh
aW5zT25seUZvcmNlZFN1YnRpdGxlcygpOwogfQogCiBib29sIEluYmFuZFRleHRUcmFjazo6aXNN
YWluUHJvZ3JhbUNvbnRlbnQoKSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRlKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNNYWluUHJvZ3Jh
bUNvbnRlbnQoKTsKIH0KIAogYm9vbCBJbmJhbmRUZXh0VHJhY2s6OmlzRWFzeVRvUmVhZCgpIGNv
bnN0CiB7Ci0gICAgaWYgKCFtX3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAK
ICAgICByZXR1cm4gbV9wcml2YXRlLT5pc0Vhc3lUb1JlYWQoKTsKIH0KICAgICAKIHNpemVfdCBJ
bmJhbmRUZXh0VHJhY2s6OmluYmFuZFRyYWNrSW5kZXgoKQogewotICAgIEFTU0VSVChtX3ByaXZh
dGUpOwogICAgIHJldHVybiBtX3ByaXZhdGUtPnRyYWNrSW5kZXgoKTsKIH0KIAogQXRvbWljU3Ry
aW5nIEluYmFuZFRleHRUcmFjazo6aW5CYW5kTWV0YWRhdGFUcmFja0Rpc3BhdGNoVHlwZSgpIGNv
bnN0CiB7Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aW5C
YW5kTWV0YWRhdGFUcmFja0Rpc3BhdGNoVHlwZSgpOwogfQogCi12b2lkIEluYmFuZFRleHRUcmFj
azo6aWRDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiBpZCkKK3ZvaWQgSW5iYW5kVGV4dFRyYWNrOjppZENoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJiBpZCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2
YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0SWQoaWQpOwogfQogCi12b2lkIEluYmFuZFRleHRU
cmFjazo6bGFiZWxDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSwgY29uc3Qg
QXRvbWljU3RyaW5nJiBsYWJlbCkKK3ZvaWQgSW5iYW5kVGV4dFRyYWNrOjpsYWJlbENoYW5nZWQo
Y29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJp
dmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0TGFiZWwobGFiZWwpOwog
fQogCi12b2lkIEluYmFuZFRleHRUcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJh
c2UqIHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKK3ZvaWQgSW5i
YW5kVGV4dFRyYWNrOjpsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFn
ZSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1f
cHJpdmF0ZSk7CiAgICAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2UpOwogfQogCi12b2lkIEluYmFuZFRl
eHRUcmFjazo6d2lsbFJlbW92ZShUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUpCit2b2lk
IEluYmFuZFRleHRUcmFjazo6d2lsbFJlbW92ZSgpCiB7Ci0gICAgaWYgKCFtZWRpYUVsZW1lbnQo
KSkKKyAgICBhdXRvKiBlbGVtZW50ID0gbWVkaWFFbGVtZW50KCk7CisgICAgaWYgKCFlbGVtZW50
KQogICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNr
UHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwotICAgIG1lZGlhRWxlbWVudCgpLT5yZW1vdmVUZXh0VHJh
Y2soKnRoaXMpOworICAgIGVsZW1lbnQtPnJlbW92ZVRleHRUcmFjaygqdGhpcyk7CiB9CiAKIHZv
aWQgSW5iYW5kVGV4dFRyYWNrOjp1cGRhdGVLaW5kRnJvbVByaXZhdGUoKQpAQCAtMTk2LDM0ICsx
NjQsMzAgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2s6OnVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpCiAg
ICAgc3dpdGNoIChtX3ByaXZhdGUtPmtpbmQoKSkgewogICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZTo6U3VidGl0bGVzOgogICAgICAgICBzZXRLaW5kKEtpbmQ6OlN1YnRpdGxlcyk7Ci0g
ICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlOjpDYXB0aW9uczoKICAgICAgICAgc2V0S2luZChLaW5kOjpDYXB0aW9ucyk7Ci0gICAg
ICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlOjpEZXNjcmlwdGlvbnM6CiAgICAgICAgIHNldEtpbmQoS2luZDo6RGVzY3JpcHRpb25zKTsK
LSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluYmFuZFRleHRUcmFj
a1ByaXZhdGU6OkNoYXB0ZXJzOgogICAgICAgICBzZXRLaW5kKEtpbmQ6OkNoYXB0ZXJzKTsKLSAg
ICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluYmFuZFRleHRUcmFja1By
aXZhdGU6Ok1ldGFkYXRhOgogICAgICAgICBzZXRLaW5kKEtpbmQ6Ok1ldGFkYXRhKTsKLSAgICAg
ICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluYmFuZFRleHRUcmFja1ByaXZh
dGU6OkZvcmNlZDoKICAgICAgICAgc2V0S2luZChLaW5kOjpGb3JjZWQpOwotICAgICAgICBicmVh
azsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6Tm9u
ZToKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiBNZWRpYVRpbWUg
SW5iYW5kVGV4dFRyYWNrOjpzdGFydFRpbWVWYXJpYW5jZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFt
X3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7Ci0gICAgCiAg
ICAgcmV0dXJuIG1fcHJpdmF0ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmgKaW5kZXggOWNkMDI3YzM2Yzg1YjBh
YTUxNTY3ZWU2OTZlMTI2NmQwODQ1ZjMzZS4uNmNmMjY4N2JiODZlOTU0OWJjMWYxNjU1NTNkOTI1
MGI4YzU3ZWUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRU
ZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFj
ay5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI5LDE1ICsyOSwxMiBAQAogCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgIlRleHRUcmFjay5oIgotI2luY2x1ZGUgIlRleHRUcmFj
a0N1ZUdlbmVyaWMuaCIKLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1R5
cGVDYXN0cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEluYmFuZFRleHRUcmFj
ayA6IHB1YmxpYyBUZXh0VHJhY2ssIHB1YmxpYyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50
IHsKK2NsYXNzIEluYmFuZFRleHRUcmFjayA6IHB1YmxpYyBUZXh0VHJhY2ssIHByaXZhdGUgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRU
cmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHN0
YXRpYyBSZWY8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IFRleHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKICAgICB2aXJ0dWFs
IH5JbmJhbmRUZXh0VHJhY2soKTsKIAogICAgIGJvb2wgaXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0
IG92ZXJyaWRlOwpAQCAtNTAsMzggKzQ3LDM4IEBAIHB1YmxpYzoKIAogICAgIEF0b21pY1N0cmlu
ZyBpbkJhbmRNZXRhZGF0YVRyYWNrRGlzcGF0Y2hUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAg
ICB2b2lkIHNldFByaXZhdGUoUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7Cisg
ICAgdm9pZCBzZXRQcml2YXRlKEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKIAogcHJvdGVjdGVk
OgotICAgIEluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNr
Q2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CisgICAgSW5iYW5k
VGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlJik7CiAKICAgICB2b2lkIHNldE1vZGVJbnRlcm5hbChNb2RlKTsK
ICAgICB2b2lkIHVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpOwogCi0gICAgUmVmUHRyPEluYmFuZFRl
eHRUcmFja1ByaXZhdGU+IG1fcHJpdmF0ZTsKKyAgICBSZWY8SW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZT4gbV9wcml2YXRlOwogCiBwcml2YXRlOgogICAgIGJvb2wgaXNJbmJhbmQoKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdm9pZCBpZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSos
IGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgbGFiZWxDaGFuZ2VkKFRy
YWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lk
IGxhbmd1YWdlQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2UqKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGlkQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGxhYmVsQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
b2lkIHdpbGxSZW1vdmUoKSBvdmVycmlkZTsKIAotICAgIHZvaWQgYWRkRGF0YUN1ZShJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgY29u
c3Qgdm9pZCosIHVuc2lnbmVkKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Cisg
ICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNv
bnN0IHZvaWQqLCB1bnNpZ25lZCkgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQog
CiAjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCi0gICAgdm9pZCBhZGREYXRhQ3VlKEluYmFuZFRl
eHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiwgY29uc3QgU3RyaW5nJikg
b3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZvaWQgdXBkYXRlRGF0YUN1
ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFU
aW1lJiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4pIG92ZXJy
aWRlICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdm9pZCByZW1vdmVEYXRhQ3VlKElu
YmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUm
LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPikgb3ZlcnJpZGUg
IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIGFkZERhdGFDdWUoY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2Vu
dGF0aW9uPiYmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9CisgICAgdm9pZCB1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlh
VGltZSYsIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uJikgb3ZlcnJpZGUgIHsgQVNT
RVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIHJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFU
aW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24m
KSBvdmVycmlkZSAgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogI2VuZGlmCiAKLSAgICB2b2lk
IGFkZEdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFBhc3NSZWZQdHI8R2VuZXJp
Y0N1ZURhdGE+KSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdm9pZCB1
cGRhdGVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBHZW5lcmljQ3VlRGF0YSop
IG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2b2lkIHJlbW92ZUdlbmVy
aWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgb3ZlcnJpZGUg
eyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgYWRkR2VuZXJpY0N1ZShHZW5lcmlj
Q3VlRGF0YSYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIHVw
ZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9CisgICAgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgb3Zl
cnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCi0gICAgdm9pZCBwYXJzZVdlYlZUVEZp
bGVIZWFkZXIoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFN0cmluZyYmKSBvdmVycmlkZSB7IEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCkgb3ZlcnJpZGUgeyBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRl
eHRUcmFja1ByaXZhdGUqLCBjb25zdCBJU09XZWJWVFRDdWUmKSBvdmVycmlkZSB7IEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYp
IG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIHBhcnNlV2ViVlRU
Q3VlRGF0YShjb25zdCBjaGFyKiwgdW5zaWduZWQpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KKyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUm
KSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICBNZWRpYVRpbWUgc3Rh
cnRUaW1lVmFyaWFuY2UoKSBjb25zdCBvdmVycmlkZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAKaW5kZXggZTU0MGU0OTQx
YWVjYTg2YzBmZmVhNzUzNGI3YWEyMjZiMTJjYzJhNi4uZDBmYWU0ZTliODU2YTA0MTJiMzI2ODdj
NzcyZWUzNmZkZjE5NDRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9J
bmJhbmRXZWJWVFRUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
SW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIsIDIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMjcgKzI0LDI2IEBACiAgKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkluYmFuZFdlYlZUVFRleHRUcmFjay5oIgog
CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiSW5iYW5kV2ViVlRUVGV4dFRy
YWNrLmgiCi0KICNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiVlRUQ3Vl
LmgiCiAjaW5jbHVkZSAiVlRUUmVnaW9uTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8SW5iYW5kVGV4dFRyYWNrPiBJbmJh
bmRXZWJWVFRUZXh0VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2
YXRlPiBwbGF5ZXJQcml2YXRlKQoraW5saW5lIEluYmFuZFdlYlZUVFRleHRUcmFjazo6SW5iYW5k
V2ViVlRUVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFj
a0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisg
ICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kV2ViVlRUVGV4dFRyYWNrKGNvbnRleHQsIGNs
aWVudCwgcGxheWVyUHJpdmF0ZSkpOwogfQogCi1JbmJhbmRXZWJWVFRUZXh0VHJhY2s6OkluYmFu
ZFdlYlZUVFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJh
Y2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0cmFj
a1ByaXZhdGUpCi0gICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFja1By
aXZhdGUpCitSZWY8SW5iYW5kVGV4dFRyYWNrPiBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNsaWVu
dCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogeworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEluYmFuZFdlYlZUVFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNr
UHJpdmF0ZSkpOwogfQogCiBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6On5JbmJhbmRXZWJWVFRUZXh0
VHJhY2soKQpAQCAtNTgsMTUgKzU3LDEzIEBAIFdlYlZUVFBhcnNlciYgSW5iYW5kV2ViVlRUVGV4
dFRyYWNrOjpwYXJzZXIoKQogICAgIHJldHVybiAqbV93ZWJWVFRQYXJzZXI7CiB9CiAKLXZvaWQg
SW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZSogdHJhY2tQcml2YXRlLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgp
Cit2b2lkIEluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IGNo
YXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJp
dmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgcGFyc2VyKCkucGFyc2VCeXRl
cyhkYXRhLCBsZW5ndGgpOwogfQogCi12b2lkIEluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VX
ZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgY29uc3Qg
SVNPV2ViVlRUQ3VlJiBjdWVEYXRhKQordm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBhcnNl
V2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUmIGN1ZURhdGEpCiB7Ci0gICAgQVNTRVJU
X1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHBh
cnNlcigpLnBhcnNlQ3VlRGF0YShjdWVEYXRhKTsKIH0KIApAQCAtNzQsMTAgKzcxLDggQEAgdm9p
ZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6Om5ld0N1ZXNQYXJzZWQoKQogewogICAgIFZlY3RvcjxS
ZWZQdHI8V2ViVlRUQ3VlRGF0YT4+IGN1ZXM7CiAgICAgcGFyc2VyKCkuZ2V0TmV3Q3VlcyhjdWVz
KTsKLQogICAgIGZvciAoYXV0byYgY3VlRGF0YSA6IGN1ZXMpIHsKICAgICAgICAgYXV0byB2dHRD
dWUgPSBWVFRDdWU6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqY3VlRGF0YSk7
Ci0KICAgICAgICAgaWYgKGhhc0N1ZSh2dHRDdWUucHRyKCksIFRleHRUcmFja0N1ZTo6SWdub3Jl
RHVyYXRpb24pKSB7CiAgICAgICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRXZWJWVFRUZXh0VHJh
Y2s6Om5ld0N1ZXNQYXJzZWQgaWdub3JpbmcgYWxyZWFkeSBhZGRlZCBjdWU6IHN0YXJ0PSUuMmYs
IGVuZD0lLjJmLCBjb250ZW50PVwiJXNcIlxuIiwgdnR0Q3VlLT5zdGFydFRpbWUoKSwgdnR0Q3Vl
LT5lbmRUaW1lKCksIHZ0dEN1ZS0+dGV4dCgpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtOTAsMTMgKzg1LDEyIEBAIHZvaWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpu
ZXdSZWdpb25zUGFyc2VkKCkKIHsKICAgICBWZWN0b3I8UmVmUHRyPFZUVFJlZ2lvbj4+IG5ld1Jl
Z2lvbnM7CiAgICAgcGFyc2VyKCkuZ2V0TmV3UmVnaW9ucyhuZXdSZWdpb25zKTsKLQogICAgIGZv
ciAoYXV0byYgcmVnaW9uIDogbmV3UmVnaW9ucykgewogICAgICAgICByZWdpb24tPnNldFRyYWNr
KHRoaXMpOwotICAgICAgICByZWdpb25zKCktPmFkZChyZWdpb24pOworICAgICAgICByZWdpb25z
KCktPmFkZChyZWdpb24ucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogfQotICAgIAorCiB2b2lk
IEluYmFuZFdlYlZUVFRleHRUcmFjazo6ZmlsZUZhaWxlZFRvUGFyc2UoKQogewogICAgIExPRyhN
ZWRpYSwgIkVycm9yIHBhcnNpbmcgV2ViVlRUIHN0cmVhbS4iKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oCmluZGV4IDhjYzc3YTljZWRh
M2MzN2JiMWY2ZTFkNWE1OTNkMjYzYzNkMjQ5ZWYuLjIxZDkxMzQ2OTc1YTlhNmU3OTc5YjhhYzAz
OWY0YTYzYzNlODE0YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kV2ViVlRUVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJh
bmRXZWJWVFRUZXh0VHJhY2suaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCwyNSArMzAsMjQgQEAKICNpbmNsdWRlICJJbmJh
bmRUZXh0VHJhY2suaCIKICNpbmNsdWRlICJXZWJWVFRQYXJzZXIuaCIKICNpbmNsdWRlIDxtZW1v
cnk+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEluYmFuZFdlYlZUVFRleHRUcmFjayBmaW5hbCA6IHB1YmxpYyBJbmJhbmRUZXh0VHJhY2ss
IHByaXZhdGUgV2ViVlRUUGFyc2VyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPElu
YmFuZFRleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tD
bGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+KTsKKyAgICBzdGF0aWMg
UmVmPEluYmFuZFRleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0
VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CiAgICAgdmlydHVhbCB+SW5i
YW5kV2ViVlRUVGV4dFRyYWNrKCk7CiAKIHByaXZhdGU6Ci0gICAgSW5iYW5kV2ViVlRUVGV4dFRy
YWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRy
PEluYmFuZFRleHRUcmFja1ByaXZhdGU+KTsKKyAgICBJbmJhbmRXZWJWVFRUZXh0VHJhY2soU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIFRleHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1By
aXZhdGUmKTsKIAogICAgIFdlYlZUVFBhcnNlciYgcGFyc2VyKCk7Ci0gICAgdm9pZCBwYXJzZVdl
YlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IGNoYXIqIGRhdGEsIHVu
c2lnbmVkIGxlbmd0aCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IElTT1dlYlZUVEN1ZSYpIG92ZXJyaWRlOworICAg
IHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0
aCkgZmluYWw7CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3Vl
JikgZmluYWw7CiAKLSAgICB2b2lkIG5ld0N1ZXNQYXJzZWQoKSBvdmVycmlkZTsKLSAgICB2b2lk
IG5ld1JlZ2lvbnNQYXJzZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIGZpbGVGYWlsZWRUb1BhcnNl
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBuZXdDdWVzUGFyc2VkKCkgZmluYWw7CisgICAgdm9pZCBu
ZXdSZWdpb25zUGFyc2VkKCkgZmluYWw7CisgICAgdm9pZCBmaWxlRmFpbGVkVG9QYXJzZSgpIGZp
bmFsOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlZUVFBhcnNlcj4gbV93ZWJWVFRQYXJzZXI7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRU
cmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmNw
cAppbmRleCAyMTBmNmE5ZGY1YWM3NzE3NWE5ODEyYWMwNTEwNDIyMzJhMzQwZjMzLi41NTI4ZGUx
N2IyOWY0YmUwYzk2ODM4NDM4MjkzZTczNjg2ZTg1Y2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMTQgKzI1
LDExIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvYWRhYmxlVGV4
dFRyYWNrLmgiCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbmNsdWRlICJMb2FkYWJs
ZVRleHRUcmFjay5oIgotCi0jaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJIVE1MVHJhY2tF
bGVtZW50LmgiCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
IlRleHRUcmFja0N1ZUxpc3QuaCIKICNpbmNsdWRlICJWVFRSZWdpb25MaXN0LmgiCiAKQEAgLTk2
LDExICs5NCwxMSBAQCB2b2lkIExvYWRhYmxlVGV4dFRyYWNrOjpuZXdDdWVzQXZhaWxhYmxlKFRl
eHRUcmFja0xvYWRlciogbG9hZGVyKQogCiAgICAgZm9yIChhdXRvJiBuZXdDdWUgOiBuZXdDdWVz
KSB7CiAgICAgICAgIG5ld0N1ZS0+c2V0VHJhY2sodGhpcyk7Ci0gICAgICAgIG1fY3Vlcy0+YWRk
KG5ld0N1ZSk7CisgICAgICAgIG1fY3Vlcy0+YWRkKG5ld0N1ZS5yZWxlYXNlTm9uTnVsbCgpKTsK
ICAgICB9CiAKICAgICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT50ZXh0VHJhY2tB
ZGRDdWVzKHRoaXMsIG1fY3Vlcy5nZXQoKSk7CisgICAgICAgIGNsaWVudCgpLT50ZXh0VHJhY2tB
ZGRDdWVzKCp0aGlzLCAqbV9jdWVzKTsKIH0KIAogdm9pZCBMb2FkYWJsZVRleHRUcmFjazo6Y3Vl
TG9hZGluZ0NvbXBsZXRlZChUZXh0VHJhY2tMb2FkZXIqIGxvYWRlciwgYm9vbCBsb2FkaW5nRmFp
bGVkKQpAQCAtMTIyLDcgKzEyMCw3IEBAIHZvaWQgTG9hZGFibGVUZXh0VHJhY2s6Om5ld1JlZ2lv
bnNBdmFpbGFibGUoVGV4dFRyYWNrTG9hZGVyKiBsb2FkZXIpCiAKICAgICBmb3IgKGF1dG8mIG5l
d1JlZ2lvbiA6IG5ld1JlZ2lvbnMpIHsKICAgICAgICAgbmV3UmVnaW9uLT5zZXRUcmFjayh0aGlz
KTsKLSAgICAgICAgcmVnaW9ucygpLT5hZGQobmV3UmVnaW9uKTsKKyAgICAgICAgcmVnaW9ucygp
LT5hZGQobmV3UmVnaW9uLnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5oCmluZGV4IDAxMDIwYjBiNGNi
ZmYxMzkxNGJlNzJhMDkxNjI5MjZiNmI4OGQzNjEuLmJhOWM3NmZiMmMzNThkYWI4OWVmNTgxNjBl
ZDEwMWQzNjc1Nzc1OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9h
ZGFibGVUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxl
VGV4dFRyYWNrLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI5LDEyICszMCwxMCBAQAogCiAjaW5jbHVkZSAiVGV4dFRyYWNrLmgiCiAj
aW5jbHVkZSAiVGV4dFRyYWNrTG9hZGVyLmgiCi0jaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxUcmFja0VsZW1lbnQ7Ci1jbGFzcyBM
b2FkYWJsZVRleHRUcmFjazsKIAogY2xhc3MgTG9hZGFibGVUZXh0VHJhY2sgZmluYWwgOiBwdWJs
aWMgVGV4dFRyYWNrLCBwcml2YXRlIFRleHRUcmFja0xvYWRlckNsaWVudCB7CiBwdWJsaWM6CkBA
IC00OSw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBIVE1MVHJhY2tFbGVtZW50KiB0cmFja0VsZW1l
bnQoKSBjb25zdCB7IHJldHVybiBtX3RyYWNrRWxlbWVudDsgfQogICAgIHZvaWQgY2xlYXJFbGVt
ZW50KCkgeyBtX3RyYWNrRWxlbWVudCA9IG51bGxwdHI7IH0KIAotICAgIHZvaWQgc2V0SXNEZWZh
dWx0KGJvb2wgaXNEZWZhdWx0KSBmaW5hbCAgeyBtX2lzRGVmYXVsdCA9IGlzRGVmYXVsdDsgfQor
ICAgIHZvaWQgc2V0SXNEZWZhdWx0KGJvb2wgaXNEZWZhdWx0KSBmaW5hbCB7IG1faXNEZWZhdWx0
ID0gaXNEZWZhdWx0OyB9CiAKIHByaXZhdGU6CiAgICAgTG9hZGFibGVUZXh0VHJhY2soSFRNTFRy
YWNrRWxlbWVudCYsIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29u
c3QgU3RyaW5nJiBsYW5ndWFnZSk7CkBAIC02OCw3ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgVGlt
ZXIgbV9sb2FkVGltZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFRleHRUcmFja0xvYWRlcj4gbV9s
b2FkZXI7CiAgICAgVVJMIG1fdXJsOwotICAgIGJvb2wgbV9pc0RlZmF1bHQ7CisgICAgYm9vbCBt
X2lzRGVmYXVsdCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXggOTZiY2Q3ZWQzNTBkMjhlMDQy
ZWFlNjhjZWQ1MjAxYTcxZjNjNWYwOS4uMWYyM2M0NDMyZjNjMTU3ZDI5ZjVlNTU3ZDQ1Njg5ODdh
YjI2ZmMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcApAQCAtMSw2
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKQEAgLTMwLDExICszMCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJUZXh0VHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotI2luY2x1ZGUg
IlRleHRUcmFjay5oIgotCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25D
b2RlLmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgpAQCAtNDYsOCArNDUsNiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBjb25zdCBpbnQgaW52YWxpZFRyYWNrSW5k
ZXggPSAtMTsKLQogY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2s6OnN1YnRpdGxlc0tleXdv
cmQoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHN1
YnRpdGxlcygic3VidGl0bGVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CkBAIC0xMDEsOCArOTgsNiBAQCBUZXh0VHJhY2s6OlRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgYwogICAgICwgbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAg
LCBtX3RyYWNrVHlwZSh0eXBlKQotICAgICwgbV90cmFja0luZGV4KGludmFsaWRUcmFja0luZGV4
KQotICAgICwgbV9yZW5kZXJlZFRyYWNrSW5kZXgoaW52YWxpZFRyYWNrSW5kZXgpCiB7CiAgICAg
aWYgKGtpbmQgPT0gY2FwdGlvbnNLZXl3b3JkKCkpCiAgICAgICAgIG1fa2luZCA9IEtpbmQ6OkNh
cHRpb25zOwpAQCAtMTIwLDggKzExNSw3IEBAIFRleHRUcmFjazo6flRleHRUcmFjaygpCiB7CiAg
ICAgaWYgKG1fY3VlcykgewogICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2Ns
aWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0aGlzLCBtX2N1ZXMuZ2V0KCkpOwotCisgICAgICAg
ICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlcygqdGhpcywgKm1fY3Vlcyk7CiAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jdWVzLT5sZW5ndGgoKTsgKytpKQogICAgICAg
ICAgICAgbV9jdWVzLT5pdGVtKGkpLT5zZXRUcmFjayhudWxscHRyKTsKICAgICB9CkBAIC0xODks
NyArMTgzLDcgQEAgdm9pZCBUZXh0VHJhY2s6OnNldEtpbmQoS2luZCBuZXdLaW5kKQogICAgIC8v
IDMuIElmIHRoZSBzb3VyY2VCdWZmZXIgYXR0cmlidXRlIG9uIHRoaXMgdHJhY2sgaXMgbm90IG51
bGwsIHRoZW4gcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUKICAgICAvLyBldmVudCBuYW1l
ZCBjaGFuZ2UgYXQgc291cmNlQnVmZmVyLnRleHRUcmFja3MuCiAgICAgaWYgKG1fc291cmNlQnVm
ZmVyKQotICAgICAgICBtX3NvdXJjZUJ1ZmZlci0+dGV4dFRyYWNrcygpLT5zY2hlZHVsZUNoYW5n
ZUV2ZW50KCk7CisgICAgICAgIG1fc291cmNlQnVmZmVyLT50ZXh0VHJhY2tzKCkuc2NoZWR1bGVD
aGFuZ2VFdmVudCgpOwogCiAgICAgLy8gNC4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUg
ZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHRoZSBUZXh0VHJhY2tMaXN0IG9iamVjdCByZWZlcmVuY2Vk
IGJ5CiAgICAgLy8gdGhlIHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVt
ZW50LgpAQCAtMTk4LDcgKzE5Miw3IEBAIHZvaWQgVGV4dFRyYWNrOjpzZXRLaW5kKEtpbmQgbmV3
S2luZCkKICNlbmRpZgogCiAgICAgaWYgKG1fY2xpZW50ICYmIG9sZEtpbmQgIT0gbV9raW5kKQot
ICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrS2luZENoYW5nZWQodGhpcyk7CisgICAgICAgIG1f
Y2xpZW50LT50ZXh0VHJhY2tLaW5kQ2hhbmdlZCgqdGhpcyk7CiB9CiAKIHZvaWQgVGV4dFRyYWNr
OjpzZXRLaW5kS2V5d29yZElnbm9yaW5nQVNDSUlDYXNlKFN0cmluZ1ZpZXcga2V5d29yZCkKQEAg
LTIzNiw3ICsyMzAsNyBAQCB2b2lkIFRleHRUcmFjazo6c2V0TW9kZShNb2RlIG1vZGUpCiAgICAg
Ly8gSWYgbW9kZSBjaGFuZ2VzIHRvIGRpc2FibGVkLCByZW1vdmUgdGhpcyB0cmFjaydzIGN1ZXMg
ZnJvbSB0aGUgY2xpZW50CiAgICAgLy8gYmVjYXVzZSB0aGV5IHdpbGwgbm8gbG9uZ2VyIGJlIGFj
Y2Vzc2libGUgZnJvbSB0aGUgY3VlcygpIGZ1bmN0aW9uLgogICAgIGlmIChtb2RlID09IE1vZGU6
OkRpc2FibGVkICYmIG1fY2xpZW50ICYmIG1fY3VlcykKLSAgICAgICAgbV9jbGllbnQtPnRleHRU
cmFja1JlbW92ZUN1ZXModGhpcywgbV9jdWVzLmdldCgpKTsKKyAgICAgICAgbV9jbGllbnQtPnRl
eHRUcmFja1JlbW92ZUN1ZXMoKnRoaXMsICptX2N1ZXMpOwogCiAgICAgaWYgKG1vZGUgIT0gTW9k
ZTo6U2hvd2luZyAmJiBtX2N1ZXMpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X2N1ZXMtPmxlbmd0aCgpOyArK2kpIHsKQEAgLTI0OSw3ICsyNDMsNyBAQCB2b2lkIFRleHRUcmFj
azo6c2V0TW9kZShNb2RlIG1vZGUpCiAgICAgbV9tb2RlID0gbW9kZTsKIAogICAgIGlmIChtX2Ns
aWVudCkKLSAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja01vZGVDaGFuZ2VkKHRoaXMpOworICAg
ICAgICBtX2NsaWVudC0+dGV4dFRyYWNrTW9kZUNoYW5nZWQoKnRoaXMpOwogfQogCiBUZXh0VHJh
Y2tDdWVMaXN0KiBUZXh0VHJhY2s6OmN1ZXMoKQpAQCAtMjcwLDcgKzI2NCw3IEBAIHZvaWQgVGV4
dFRyYWNrOjpyZW1vdmVBbGxDdWVzKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fY2xp
ZW50KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0aGlzLCBtX2N1ZXMu
Z2V0KCkpOworICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlcygqdGhpcywgKm1f
Y3Vlcyk7CiAgICAgCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2N1ZXMtPmxlbmd0aCgp
OyArK2kpCiAgICAgICAgIG1fY3Vlcy0+aXRlbShpKS0+c2V0VHJhY2sobnVsbHB0cik7CkBAIC0y
ODgsNyArMjgyLDcgQEAgVGV4dFRyYWNrQ3VlTGlzdCogVGV4dFRyYWNrOjphY3RpdmVDdWVzKCkg
Y29uc3QKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrLyNkb20tdGV4dHRyYWNrLWFjdGl2ZWN1ZXMKICAgICBpZiAoIW1fY3VlcyB8fCBtX21v
ZGUgPT0gTW9kZTo6RGlzYWJsZWQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVy
biBtX2N1ZXMtPmFjdGl2ZUN1ZXMoKTsKKyAgICByZXR1cm4gJm1fY3Vlcy0+YWN0aXZlQ3Vlcygp
OwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBUZXh0VHJhY2s6OmFkZEN1ZShSZWY8VGV4dFRyYWNr
Q3VlPiYmIGN1ZSkKQEAgLTMxOCwxMCArMzEyLDEwIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFRleHRU
cmFjazo6YWRkQ3VlKFJlZjxUZXh0VHJhY2tDdWU+JiYgY3VlKQogCiAgICAgLy8gMi4gQWRkIGN1
ZSB0byB0aGUgbWV0aG9kJ3MgVGV4dFRyYWNrIG9iamVjdCdzIHRleHQgdHJhY2sncyB0ZXh0IHRy
YWNrIGxpc3Qgb2YgY3Vlcy4KICAgICBjdWUtPnNldFRyYWNrKHRoaXMpOwotICAgIGVuc3VyZVRl
eHRUcmFja0N1ZUxpc3QoKS5hZGQoY3VlLnB0cigpKTsKKyAgICBlbnN1cmVUZXh0VHJhY2tDdWVM
aXN0KCkuYWRkKGN1ZS5jb3B5UmVmKCkpOwogICAgIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAg
ICAgbV9jbGllbnQtPnRleHRUcmFja0FkZEN1ZSh0aGlzLCBjdWUpOworICAgICAgICBtX2NsaWVu
dC0+dGV4dFRyYWNrQWRkQ3VlKCp0aGlzLCBjdWUpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAg
LTMzOCwxMiArMzMyLDEyIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFRleHRUcmFjazo6cmVtb3ZlQ3Vl
KFRleHRUcmFja0N1ZSYgY3VlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTk9UX0ZPVU5E
X0VSUiB9OwogCiAgICAgLy8gMi4gUmVtb3ZlIGN1ZSBmcm9tIHRoZSBtZXRob2QncyBUZXh0VHJh
Y2sgb2JqZWN0J3MgdGV4dCB0cmFjaydzIHRleHQgdHJhY2sgbGlzdCBvZiBjdWVzLgotICAgIGlm
ICghbV9jdWVzIHx8ICFtX2N1ZXMtPnJlbW92ZSgmY3VlKSkKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IElOVkFMSURfU1RBVEVfRVJSIH07Ci0KKyAgICBBU1NFUlQobV9jdWVzKTsKKyAgICBt
X2N1ZXMtPnJlbW92ZShjdWUpOworICAgIGN1ZS5zZXRJc0FjdGl2ZShmYWxzZSk7CiAgICAgY3Vl
LnNldFRyYWNrKG51bGxwdHIpOwogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQt
PnRleHRUcmFja1JlbW92ZUN1ZSh0aGlzLCBjdWUpOworICAgICAgICBtX2NsaWVudC0+dGV4dFRy
YWNrUmVtb3ZlQ3VlKCp0aGlzLCBjdWUpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTM5Miwx
MCArMzg2LDkgQEAgdm9pZCBUZXh0VHJhY2s6OmFkZFJlZ2lvbihSZWZQdHI8VlRUUmVnaW9uPiYm
IHJlZ2lvbikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIE90aGVyd2lzZTogYWRk
IHJlZ2lvbiB0byB0aGUgbWV0aG9kJ3MgVGV4dFRyYWNrIG9iamVjdCdzIHRleHQgdHJhY2sKLSAg
ICAvLyBsaXN0IG9mIHJlZ2lvbnMuCisgICAgLy8gT3RoZXJ3aXNlOiBhZGQgcmVnaW9uIHRvIHRo
ZSBtZXRob2QncyBUZXh0VHJhY2sgb2JqZWN0J3MgdGV4dCB0cmFjayBsaXN0IG9mIHJlZ2lvbnMu
CiAgICAgcmVnaW9uLT5zZXRUcmFjayh0aGlzKTsKLSAgICByZWdpb25MaXN0LmFkZChXVEZNb3Zl
KHJlZ2lvbikpOworICAgIHJlZ2lvbkxpc3QuYWRkKHJlZ2lvbi5yZWxlYXNlTm9uTnVsbCgpKTsK
IH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gVGV4dFRyYWNrOjpyZW1vdmVSZWdpb24oVlRUUmVnaW9u
KiByZWdpb24pCkBAIC00MDgsOSArNDAxLDggQEAgRXhjZXB0aW9uT3I8dm9pZD4gVGV4dFRyYWNr
OjpyZW1vdmVSZWdpb24oVlRUUmVnaW9uKiByZWdpb24pCiAgICAgaWYgKHJlZ2lvbi0+dHJhY2so
KSAhPSB0aGlzKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTk9UX0ZPVU5EX0VSUiB9Owog
Ci0gICAgaWYgKCFtX3JlZ2lvbnMgfHwgIW1fcmVnaW9ucy0+cmVtb3ZlKHJlZ2lvbikpCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NUQVRFX0VSUiB9OwotCisgICAgQVNTRVJU
KG1fcmVnaW9ucyk7CisgICAgbV9yZWdpb25zLT5yZW1vdmUoKnJlZ2lvbik7CiAgICAgcmVnaW9u
LT5zZXRUcmFjayhudWxscHRyKTsKICAgICByZXR1cm4geyB9OwogfQpAQCAtNDIyLDcgKzQxNCw3
IEBAIHZvaWQgVGV4dFRyYWNrOjpjdWVXaWxsQ2hhbmdlKFRleHRUcmFja0N1ZSogY3VlKQogCiAg
ICAgLy8gVGhlIGN1ZSBtYXkgbmVlZCB0byBiZSByZXBvc2l0aW9uZWQgaW4gdGhlIG1lZGlhIGVs
ZW1lbnQncyBpbnRlcnZhbCB0cmVlLCBtYXkgbmVlZCB0bwogICAgIC8vIGJlIHJlLXJlbmRlcmVk
LCBldGMsIHNvIHJlbW92ZSBpdCBiZWZvcmUgdGhlIG1vZGlmaWNhdGlvbi4uLgotICAgIG1fY2xp
ZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUodGhpcywgKmN1ZSk7CisgICAgbV9jbGllbnQtPnRleHRU
cmFja1JlbW92ZUN1ZSgqdGhpcywgKmN1ZSk7CiB9CiAKIHZvaWQgVGV4dFRyYWNrOjpjdWVEaWRD
aGFuZ2UoVGV4dFRyYWNrQ3VlKiBjdWUpCkBAIC00MzEsMjYgKzQyMywyNCBAQCB2b2lkIFRleHRU
cmFjazo6Y3VlRGlkQ2hhbmdlKFRleHRUcmFja0N1ZSogY3VlKQogICAgICAgICByZXR1cm47CiAK
ICAgICAvLyBNYWtlIHN1cmUgdGhlIFRleHRUcmFja0N1ZUxpc3Qgb3JkZXIgaXMgdXAtdG8tZGF0
ZS4KLSAgICBlbnN1cmVUZXh0VHJhY2tDdWVMaXN0KCkudXBkYXRlQ3VlSW5kZXgoY3VlKTsKKyAg
ICBlbnN1cmVUZXh0VHJhY2tDdWVMaXN0KCkudXBkYXRlQ3VlSW5kZXgoKmN1ZSk7CiAKICAgICAv
LyAuLi4gYW5kIGFkZCBpdCBiYWNrIGFnYWluLgotICAgIG1fY2xpZW50LT50ZXh0VHJhY2tBZGRD
dWUodGhpcywgKmN1ZSk7CisgICAgbV9jbGllbnQtPnRleHRUcmFja0FkZEN1ZSgqdGhpcywgKmN1
ZSk7CiB9CiAKIGludCBUZXh0VHJhY2s6OnRyYWNrSW5kZXgoKQogewogICAgIEFTU0VSVChtX21l
ZGlhRWxlbWVudCk7Ci0KLSAgICBpZiAobV90cmFja0luZGV4ID09IGludmFsaWRUcmFja0luZGV4
KQorICAgIGlmICghbV90cmFja0luZGV4KQogICAgICAgICBtX3RyYWNrSW5kZXggPSBtX21lZGlh
RWxlbWVudC0+dGV4dFRyYWNrcygpLmdldFRyYWNrSW5kZXgoKnRoaXMpOwotCi0gICAgcmV0dXJu
IG1fdHJhY2tJbmRleDsKKyAgICByZXR1cm4gbV90cmFja0luZGV4LnZhbHVlKCk7CiB9CiAKIHZv
aWQgVGV4dFRyYWNrOjppbnZhbGlkYXRlVHJhY2tJbmRleCgpCiB7Ci0gICAgbV90cmFja0luZGV4
ID0gaW52YWxpZFRyYWNrSW5kZXg7Ci0gICAgbV9yZW5kZXJlZFRyYWNrSW5kZXggPSBpbnZhbGlk
VHJhY2tJbmRleDsKKyAgICBtX3RyYWNrSW5kZXggPSBzdGQ6Om51bGxvcHQ7CisgICAgbV9yZW5k
ZXJlZFRyYWNrSW5kZXggPSBzdGQ6Om51bGxvcHQ7CiB9CiAKIGJvb2wgVGV4dFRyYWNrOjppc1Jl
bmRlcmVkKCkKQEAgLTQ2OSwxMSArNDU5LDkgQEAgVGV4dFRyYWNrQ3VlTGlzdCYgVGV4dFRyYWNr
OjplbnN1cmVUZXh0VHJhY2tDdWVMaXN0KCkKIGludCBUZXh0VHJhY2s6OnRyYWNrSW5kZXhSZWxh
dGl2ZVRvUmVuZGVyZWRUcmFja3MoKQogewogICAgIEFTU0VSVChtX21lZGlhRWxlbWVudCk7Ci0g
ICAgCi0gICAgaWYgKG1fcmVuZGVyZWRUcmFja0luZGV4ID09IGludmFsaWRUcmFja0luZGV4KQor
ICAgIGlmICghbV9yZW5kZXJlZFRyYWNrSW5kZXgpCiAgICAgICAgIG1fcmVuZGVyZWRUcmFja0lu
ZGV4ID0gbV9tZWRpYUVsZW1lbnQtPnRleHRUcmFja3MoKS5nZXRUcmFja0luZGV4UmVsYXRpdmVU
b1JlbmRlcmVkVHJhY2tzKCp0aGlzKTsKLSAgICAKLSAgICByZXR1cm4gbV9yZW5kZXJlZFRyYWNr
SW5kZXg7CisgICAgcmV0dXJuIG1fcmVuZGVyZWRUcmFja0luZGV4LnZhbHVlKCk7CiB9CiAKIGJv
b2wgVGV4dFRyYWNrOjpoYXNDdWUoVGV4dFRyYWNrQ3VlKiBjdWUsIFRleHRUcmFja0N1ZTo6Q3Vl
TWF0Y2hSdWxlcyBtYXRjaCkKQEAgLTU2NCw3ICs1NTIsNyBAQCB2b2lkIFRleHRUcmFjazo6c2V0
TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKICAgICAvLyAzLiBJZiB0aGUg
c291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1
ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlCiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0
IHNvdXJjZUJ1ZmZlci50ZXh0VHJhY2tzLgogICAgIGlmIChtX3NvdXJjZUJ1ZmZlcikKLSAgICAg
ICAgbV9zb3VyY2VCdWZmZXItPnRleHRUcmFja3MoKS0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwor
ICAgICAgICBtX3NvdXJjZUJ1ZmZlci0+dGV4dFRyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQo
KTsKIAogICAgIC8vIDQuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVk
IGNoYW5nZSBhdCB0aGUgVGV4dFRyYWNrTGlzdCBvYmplY3QgcmVmZXJlbmNlZCBieQogICAgIC8v
IHRoZSB0ZXh0VHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCmluZGV4IGI4MDQ5YzcwY2FlMWFhOTc4NWMwNGE1
NDk5YmM3YWU2YzgzMGNlZGIuLjhiYjQ3YjI3NmY2ZTU1YjkxNjY2N2Q3ZmNlMTU3NDQ1NzhmM2Jl
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaApAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzAsOCArMzAsNiBAQAogCiAjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlLmgiCiAjaW5jbHVkZSAi
VHJhY2tCYXNlLmgiCi0jaW5jbHVkZSAiVlRUQ3VlLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDQsMTIgKzQyLDEyIEBAIGNs
YXNzIFZUVFJlZ2lvbkxpc3Q7CiBjbGFzcyBUZXh0VHJhY2tDbGllbnQgewogcHVibGljOgogICAg
IHZpcnR1YWwgflRleHRUcmFja0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJh
Y2tLaW5kQ2hhbmdlZChUZXh0VHJhY2sqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFj
a01vZGVDaGFuZ2VkKFRleHRUcmFjayopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNr
QWRkQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFj
a0N1ZUxpc3QqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJh
Y2sqLCBUZXh0VHJhY2tDdWUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92
ZUN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRl
eHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4
dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0
VHJhY2tBZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4
dFRyYWNrQ3VlTGlzdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRl
eHRUcmFjayYsIFRleHRUcmFja0N1ZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNr
UmVtb3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYpID0gMDsKIH07CiAKIGNsYXNzIFRl
eHRUcmFjayA6IHB1YmxpYyBUcmFja0Jhc2UsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVE
YXRhIHsKQEAgLTE2Nyw4ICsxNjUsOCBAQCBwcml2YXRlOgogICAgIFRleHRUcmFja0NsaWVudCog
bV9jbGllbnQ7CiAgICAgVGV4dFRyYWNrVHlwZSBtX3RyYWNrVHlwZTsKICAgICBSZWFkaW5lc3NT
dGF0ZSBtX3JlYWRpbmVzc1N0YXRlIHsgTm90TG9hZGVkIH07Ci0gICAgaW50IG1fdHJhY2tJbmRl
eDsKLSAgICBpbnQgbV9yZW5kZXJlZFRyYWNrSW5kZXg7CisgICAgc3RkOjpvcHRpb25hbDxpbnQ+
IG1fdHJhY2tJbmRleDsKKyAgICBzdGQ6Om9wdGlvbmFsPGludD4gbV9yZW5kZXJlZFRyYWNrSW5k
ZXg7CiAgICAgYm9vbCBtX2hhc0JlZW5Db25maWd1cmVkIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAppbmRleCBmY2JhMTlkMGRiYmFk
NGUwMDQ3OTA5MWVjZDU2ZTgyNzJkY2U1OGVkLi4zMzkxNzJkMTA1NTIzMDI1M2VjZWM0MTEwNDc4
YmRkM2U5ZjE1NGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0N1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUu
Y3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBHb29n
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAx
MiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMCwxMSArMzAsMTAgQEAKICAqLwogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlLmgiCiAKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCiAKLSNpbmNsdWRlICJUZXh0VHJhY2tDdWUuaCIKLQogI2luY2x1ZGUg
IkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5j
bHVkZSAiRXZlbnQuaCIKQEAgLTQ5LDggKzQ4LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1zdGF0aWMgY29uc3QgaW50IGludmFsaWRDdWVJbmRleCA9IC0xOwotCiBjb25zdCBBdG9taWNT
dHJpbmcmIFRleHRUcmFja0N1ZTo6Y3VlU2hhZG93UHNldWRvSWQoKQogewogICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGN1ZSgiY3VlIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CkBAIC02MCw5ICs1Nyw2IEBAIGNvbnN0IEF0b21pY1N0
cmluZyYgVGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCgpCiBUZXh0VHJhY2tDdWU6OlRl
eHRUcmFja0N1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBNZWRpYVRp
bWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCkKICAgICA6IG1fc3RhcnRUaW1lKHN0YXJ0
KQogICAgICwgbV9lbmRUaW1lKGVuZCkKLSAgICAsIG1fY3VlSW5kZXgoaW52YWxpZEN1ZUluZGV4
KQotICAgICwgbV9wcm9jZXNzaW5nQ3VlQ2hhbmdlcygwKQotICAgICwgbV90cmFjaygwKQogICAg
ICwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQpCiAgICAgLCBtX2lzQWN0aXZlKGZh
bHNlKQogICAgICwgbV9wYXVzZU9uRXhpdChmYWxzZSkKQEAgLTE0OSwyMyArMTQzLDYgQEAgdm9p
ZCBUZXh0VHJhY2tDdWU6OnNldFBhdXNlT25FeGl0KGJvb2wgdmFsdWUpCiAgICAgbV9wYXVzZU9u
RXhpdCA9IHZhbHVlOwogfQogCi1pbnQgVGV4dFRyYWNrQ3VlOjpjdWVJbmRleCgpCi17Ci0gICAg
aWYgKG1fY3VlSW5kZXggPT0gaW52YWxpZEN1ZUluZGV4KSB7Ci0gICAgICAgIEFTU0VSVCh0cmFj
aygpKTsKLSAgICAgICAgQVNTRVJUKHRyYWNrKCktPmN1ZXMoKSk7Ci0gICAgICAgIGlmIChUZXh0
VHJhY2tDdWVMaXN0KiBjdWVMaXN0ID0gdHJhY2soKS0+Y3VlcygpKQotICAgICAgICAgICAgbV9j
dWVJbmRleCA9IGN1ZUxpc3QtPmdldEN1ZUluZGV4KHRoaXMpOwotICAgIH0KLQotICAgIHJldHVy
biBtX2N1ZUluZGV4OwotfQotCi12b2lkIFRleHRUcmFja0N1ZTo6aW52YWxpZGF0ZUN1ZUluZGV4
KCkKLXsKLSAgICBtX2N1ZUluZGV4ID0gaW52YWxpZEN1ZUluZGV4OwotfQotCiBib29sIFRleHRU
cmFja0N1ZTo6ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiB7CiAgICAgLy8gV2hlbiBhIFRl
eHRUcmFjaydzIG1vZGUgaXMgZGlzYWJsZWQ6IG5vIGN1ZXMgYXJlIGFjdGl2ZSwgbm8gZXZlbnRz
IGZpcmVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tD
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKaW5kZXggNTcz
NTFkYzYwZTJiNmVhZjUwODBmMDMwOWE0NTE2OGY3ODMwYTczNC4uNDkwNzU0NmEyN2FlNDgyNGUx
MmExNDBhOTlhZmU5NjQ4MzE1NTBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0N1ZS5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTY1LDkgKzY1LDYgQEAgcHVibGljOgogICAgIE1lZGlh
VGltZSBlbmRNZWRpYVRpbWUoKSBjb25zdCB7IHJldHVybiBtX2VuZFRpbWU7IH0KICAgICB2b2lk
IHNldEVuZFRpbWUoY29uc3QgTWVkaWFUaW1lJik7CiAKLSAgICBpbnQgY3VlSW5kZXgoKTsKLSAg
ICB2b2lkIGludmFsaWRhdGVDdWVJbmRleCgpOwotCiAgICAgYm9vbCBpc0FjdGl2ZSgpOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRJc0FjdGl2ZShib29sKTsKIApAQCAtODIsOSArNzksNiBAQCBwdWJs
aWM6CiAKICAgICBlbnVtIEN1ZU1hdGNoUnVsZXMgeyBNYXRjaEFsbEZpZWxkcywgSWdub3JlRHVy
YXRpb24gfTsKICAgICB2aXJ0dWFsIGJvb2wgaXNFcXVhbChjb25zdCBUZXh0VHJhY2tDdWUmLCBD
dWVNYXRjaFJ1bGVzKSBjb25zdDsKLXByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGN1ZUNvbnRl
bnRzTWF0Y2goY29uc3QgVGV4dFRyYWNrQ3VlJikgY29uc3Q7Ci1wdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIGRvZXNFeHRlbmRDdWUoY29uc3QgVGV4dFRyYWNrQ3VlJikgY29uc3Q7CiAKICAgICB2
b2lkIHdpbGxDaGFuZ2UoKTsKQEAgLTEwOCwxMyArMTAyLDE0IEBAIHByaXZhdGU6CiAgICAgRXZl
bnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBUZXh0VHJhY2tDdWVFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KICAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gJm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsgfQogCisgICAgdmlydHVhbCBib29sIGN1
ZUNvbnRlbnRzTWF0Y2goY29uc3QgVGV4dFRyYWNrQ3VlJikgY29uc3Q7CisKICAgICBTdHJpbmcg
bV9pZDsKICAgICBNZWRpYVRpbWUgbV9zdGFydFRpbWU7CiAgICAgTWVkaWFUaW1lIG1fZW5kVGlt
ZTsKLSAgICBpbnQgbV9jdWVJbmRleDsKLSAgICBpbnQgbV9wcm9jZXNzaW5nQ3VlQ2hhbmdlczsK
KyAgICBpbnQgbV9wcm9jZXNzaW5nQ3VlQ2hhbmdlcyB7IDAgfTsKIAotICAgIFRleHRUcmFjayog
bV90cmFjazsKKyAgICBUZXh0VHJhY2sqIG1fdHJhY2sgeyBudWxscHRyIH07CiAKICAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuY3BwCmluZGV4IGZmZDhlYWU0
ZDk5MzY0ODBhNmE1YmMzNTkyZmUwODBiNzE2ZTEzYTEuLjE0MjEyZTk2ZmYyMWJiMDVlYjE3MDUw
MDg1NTg5NGYzMmFmZjhiYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrQ3VlTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWVMaXN0LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI5LDExNyArMzAsMTAwIEBACiAKICNpbmNsdWRlICJUZXh0VHJhY2tDdWVM
aXN0LmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKKy8vIENoZWNraW5nIHNvcnRpbmcgaXMgdG9v
IHNsb3cgZm9yIGdlbmVyYWwgdXNlOyB0dXJuIGl0IG9uIGV4cGxpY2l0bHkgd2hlbiB3b3JraW5n
IG9uIHRoaXMgY2xhc3MuCisjdW5kZWYgQ0hFQ0tfU09SVElORwogCi1UZXh0VHJhY2tDdWVMaXN0
OjpUZXh0VHJhY2tDdWVMaXN0KCkKLXsKLX0KKyNpZmRlZiBDSEVDS19TT1JUSU5HCisjZGVmaW5l
IEFTU0VSVF9TT1JURUQoYmVnaW4sIGVuZCkgQVNTRVJUKHN0ZDo6aXNfc29ydGVkKGJlZ2luLCBl
bmQsIGNvbXBhcmVDdWVzKSkKKyNlbHNlCisjZGVmaW5lIEFTU0VSVF9TT1JURUQoYmVnaW4sIGVu
ZCkgKCh2b2lkKTApCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgewogCi11bnNpZ25lZCBs
b25nIFRleHRUcmFja0N1ZUxpc3Q6Omxlbmd0aCgpIGNvbnN0CitzdGF0aWMgaW5saW5lIGJvb2wg
Y29tcGFyZUN1ZXMoY29uc3QgUmVmUHRyPFRleHRUcmFja0N1ZT4mIGEsIGNvbnN0IFJlZlB0cjxU
ZXh0VHJhY2tDdWU+JiBiKQogewotICAgIHJldHVybiBtX2xpc3Quc2l6ZSgpOworICAgIHJldHVy
biBhLT5pc09yZGVyZWRCZWZvcmUoYi5nZXQoKSk7CiB9CiAKLXVuc2lnbmVkIGxvbmcgVGV4dFRy
YWNrQ3VlTGlzdDo6Z2V0Q3VlSW5kZXgoVGV4dFRyYWNrQ3VlKiBjdWUpIGNvbnN0Cit1bnNpZ25l
ZCBUZXh0VHJhY2tDdWVMaXN0OjpjdWVJbmRleChUZXh0VHJhY2tDdWUmIGN1ZSkgY29uc3QKIHsK
LSAgICByZXR1cm4gbV9saXN0LmZpbmQoY3VlKTsKKyAgICBBU1NFUlQobV92ZWN0b3IuY29udGFp
bnMoJmN1ZSkpOworICAgIHJldHVybiBtX3ZlY3Rvci5maW5kKCZjdWUpOwogfQogCiBUZXh0VHJh
Y2tDdWUqIFRleHRUcmFja0N1ZUxpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0CiB7Ci0g
ICAgaWYgKGluZGV4IDwgbV9saXN0LnNpemUoKSkKLSAgICAgICAgcmV0dXJuIG1fbGlzdFtpbmRl
eF0uZ2V0KCk7Ci0gICAgcmV0dXJuIDA7CisgICAgaWYgKGluZGV4ID49IG1fdmVjdG9yLnNpemUo
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIG1fdmVjdG9yW2luZGV4XS5n
ZXQoKTsKIH0KIAogVGV4dFRyYWNrQ3VlKiBUZXh0VHJhY2tDdWVMaXN0OjpnZXRDdWVCeUlkKGNv
bnN0IFN0cmluZyYgaWQpIGNvbnN0CiB7Ci0gICAgZm9yIChhdXRvJiBjdWUgOiBtX2xpc3QpIHsK
KyAgICBmb3IgKGF1dG8mIGN1ZSA6IG1fdmVjdG9yKSB7CiAgICAgICAgIGlmIChjdWUtPmlkKCkg
PT0gaWQpCiAgICAgICAgICAgICByZXR1cm4gY3VlLmdldCgpOwogICAgIH0KLSAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotVGV4dFRyYWNrQ3VlTGlzdCogVGV4dFRyYWNr
Q3VlTGlzdDo6YWN0aXZlQ3VlcygpCitUZXh0VHJhY2tDdWVMaXN0JiBUZXh0VHJhY2tDdWVMaXN0
OjphY3RpdmVDdWVzKCkKIHsKICAgICBpZiAoIW1fYWN0aXZlQ3VlcykKICAgICAgICAgbV9hY3Rp
dmVDdWVzID0gY3JlYXRlKCk7CiAKLSAgICBtX2FjdGl2ZUN1ZXMtPmNsZWFyKCk7Ci0gICAgZm9y
IChhdXRvJiBjdWUgOiBtX2xpc3QpIHsKKyAgICBWZWN0b3I8UmVmUHRyPFRleHRUcmFja0N1ZT4+
IGFjdGl2ZUN1ZXNWZWN0b3I7CisgICAgZm9yIChhdXRvJiBjdWUgOiBtX3ZlY3RvcikgewogICAg
ICAgICBpZiAoY3VlLT5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgbV9hY3RpdmVDdWVzLT5hZGQo
Y3VlKTsKKyAgICAgICAgICAgIGFjdGl2ZUN1ZXNWZWN0b3IuYXBwZW5kKGN1ZSk7CiAgICAgfQot
ICAgIHJldHVybiBtX2FjdGl2ZUN1ZXMuZ2V0KCk7CisgICAgQVNTRVJUX1NPUlRFRChhY3RpdmVD
dWVzVmVjdG9yLmJlZ2luKCksIGFjdGl2ZUN1ZXNWZWN0b3IuZW5kKCkpOworICAgIG1fYWN0aXZl
Q3Vlcy0+bV92ZWN0b3IgPSBXVEZNb3ZlKGFjdGl2ZUN1ZXNWZWN0b3IpOworCisgICAgLy8gRklY
TUU6IFRoaXMgbGlzdCBvZiBhY3RpdmUgY3VlcyBpcyBub3QgdXBkYXRlZCBhcyBjdWVzIGFyZSBh
ZGRlZCwgcmVtb3ZlZCwgYmVjb21lIGFjdGl2ZSwgYW5kIGJlY29tZSBpbmFjdGl2ZS4KKyAgICAv
LyBJbnN0ZWFkIGl0IGlzIG9ubHkgdXBkYXRlZCBlYWNoIHRpbWUgdGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYWdhaW4uIFRoYXQgaXMgbm90IGNvbnNpc3RlbnQgd2l0aCBvdGhlciBkeW5hbWljIERP
TSBsaXN0cy4KKyAgICByZXR1cm4gKm1fYWN0aXZlQ3VlczsKIH0KIAotYm9vbCBUZXh0VHJhY2tD
dWVMaXN0OjphZGQoUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+IGN1ZSkKK3ZvaWQgVGV4dFRyYWNr
Q3VlTGlzdDo6YWRkKFJlZjxUZXh0VHJhY2tDdWU+JiYgY3VlKQogewogICAgIEFTU0VSVChjdWUt
PnN0YXJ0TWVkaWFUaW1lKCkgPj0gTWVkaWFUaW1lOjp6ZXJvVGltZSgpKTsKICAgICBBU1NFUlQo
Y3VlLT5lbmRNZWRpYVRpbWUoKSA+PSBNZWRpYVRpbWU6Onplcm9UaW1lKCkpOwogCi0gICAgcmV0
dXJuIGFkZChjdWUsIDAsIG1fbGlzdC5zaXplKCkpOworICAgIFJlZlB0cjxUZXh0VHJhY2tDdWU+
IGN1ZVJlZlB0ciB7IFdURk1vdmUoY3VlKSB9OworICAgIHVuc2lnbmVkIGluc2VydGlvblBvc2l0
aW9uID0gc3RkOjp1cHBlcl9ib3VuZChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSwg
Y3VlUmVmUHRyLCBjb21wYXJlQ3VlcykgLSBtX3ZlY3Rvci5iZWdpbigpOworICAgIEFTU0VSVChp
bnNlcnRpb25Qb3NpdGlvbiA9PSBtX3ZlY3Rvci5zaXplKCkgfHwgbV92ZWN0b3JbaW5zZXJ0aW9u
UG9zaXRpb25dICE9IGN1ZS5wdHIoKSk7CisgICAgQVNTRVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdp
bigpLCBtX3ZlY3Rvci5lbmQoKSk7CisgICAgbV92ZWN0b3IuaW5zZXJ0KGluc2VydGlvblBvc2l0
aW9uLCBXVEZNb3ZlKGN1ZVJlZlB0cikpOworICAgIEFTU0VSVF9TT1JURUQobV92ZWN0b3IuYmVn
aW4oKSwgbV92ZWN0b3IuZW5kKCkpOwogfQogCi1ib29sIFRleHRUcmFja0N1ZUxpc3Q6OmFkZChQ
YXNzUmVmUHRyPFRleHRUcmFja0N1ZT4gcHJwQ3VlLCBzaXplX3Qgc3RhcnQsIHNpemVfdCBlbmQp
Cit2b2lkIFRleHRUcmFja0N1ZUxpc3Q6OnJlbW92ZShUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKLSAg
ICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihzdGFydCA8PSBtX2xpc3Quc2l6ZSgp
KTsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihlbmQgPD0gbV9saXN0LnNp
emUoKSk7Ci0KLSAgICAvLyBNYWludGFpbiB0ZXh0IHRyYWNrIGN1ZSBvcmRlcjoKLSAgICAvLyBo
dHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyN0ZXh0LXRy
YWNrLWN1ZS1vcmRlcgotICAgIFJlZlB0cjxUZXh0VHJhY2tDdWU+IGN1ZSA9IHBycEN1ZTsKLSAg
ICBpZiAoc3RhcnQgPT0gZW5kKSB7Ci0gICAgICAgIGlmICghbV9saXN0LmlzRW1wdHkoKSAmJiAo
c3RhcnQgPiAwKSAmJiAobV9saXN0W3N0YXJ0IC0gMV0uZ2V0KCkgPT0gY3VlLmdldCgpKSkKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBtX2xpc3QuaW5zZXJ0KHN0YXJ0LCBj
dWUpOwotICAgICAgICBpbnZhbGlkYXRlQ3VlSW5kZXhlcyhzdGFydCk7Ci0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIH0KLQotICAgIHNpemVfdCBpbmRleCA9IChzdGFydCArIGVuZCkgLyAyOwot
ICAgIGlmIChjdWUtPmlzT3JkZXJlZEJlZm9yZShtX2xpc3RbaW5kZXhdLmdldCgpKSkKLSAgICAg
ICAgcmV0dXJuIGFkZChXVEZNb3ZlKGN1ZSksIHN0YXJ0LCBpbmRleCk7Ci0KLSAgICByZXR1cm4g
YWRkKFdURk1vdmUoY3VlKSwgaW5kZXggKyAxLCBlbmQpOworICAgIEFTU0VSVF9TT1JURUQobV92
ZWN0b3IuYmVnaW4oKSwgbV92ZWN0b3IuZW5kKCkpOworICAgIG1fdmVjdG9yLnJlbW92ZShjdWVJ
bmRleChjdWUpKTsKKyAgICBBU1NFUlRfU09SVEVEKG1fdmVjdG9yLmJlZ2luKCksIG1fdmVjdG9y
LmVuZCgpKTsKIH0KIAotYm9vbCBUZXh0VHJhY2tDdWVMaXN0OjpyZW1vdmUoVGV4dFRyYWNrQ3Vl
KiBjdWUpCit2b2lkIFRleHRUcmFja0N1ZUxpc3Q6OnVwZGF0ZUN1ZUluZGV4KFRleHRUcmFja0N1
ZSYgY3VlKQogewotICAgIHNpemVfdCBpbmRleCA9IG1fbGlzdC5maW5kKGN1ZSk7Ci0gICAgaWYg
KGluZGV4ID09IG5vdEZvdW5kKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBjdWUtPnNl
dElzQWN0aXZlKGZhbHNlKTsKLSAgICBtX2xpc3QucmVtb3ZlKGluZGV4KTsKLSAgICByZXR1cm4g
dHJ1ZTsKLX0KLQotYm9vbCBUZXh0VHJhY2tDdWVMaXN0Ojpjb250YWlucyhUZXh0VHJhY2tDdWUq
IGN1ZSkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9saXN0LmNvbnRhaW5zKGN1ZSk7Ci19Ci0KLWJv
b2wgVGV4dFRyYWNrQ3VlTGlzdDo6dXBkYXRlQ3VlSW5kZXgoVGV4dFRyYWNrQ3VlKiBjdWUpCi17
Ci0gICAgaWYgKCFjb250YWlucyhjdWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0g
ICAgcmVtb3ZlKGN1ZSk7Ci0gICAgcmV0dXJuIGFkZChjdWUpOwotfQotCi12b2lkIFRleHRUcmFj
a0N1ZUxpc3Q6OmNsZWFyKCkKLXsKLSAgICBtX2xpc3QuY2xlYXIoKTsKLX0KKyAgICBhdXRvIGN1
ZVBvc2l0aW9uID0gbV92ZWN0b3IuYmVnaW4oKSArIGN1ZUluZGV4KGN1ZSk7CisgICAgYXV0byBh
ZnRlckN1ZVBvc2l0aW9uID0gY3VlUG9zaXRpb24gKyAxOworCisgICAgQVNTRVJUX1NPUlRFRCht
X3ZlY3Rvci5iZWdpbigpLCBjdWVQb3NpdGlvbik7CisgICAgQVNTRVJUX1NPUlRFRChhZnRlckN1
ZVBvc2l0aW9uLCBtX3ZlY3Rvci5lbmQoKSk7CisKKyAgICBhdXRvIHJlaW5zZXJ0aW9uUG9zaXRp
b24gPSBzdGQ6OnVwcGVyX2JvdW5kKG1fdmVjdG9yLmJlZ2luKCksIGN1ZVBvc2l0aW9uLCAqY3Vl
UG9zaXRpb24sIGNvbXBhcmVDdWVzKTsKKyAgICBpZiAocmVpbnNlcnRpb25Qb3NpdGlvbiAhPSBj
dWVQb3NpdGlvbikKKyAgICAgICAgc3RkOjpyb3RhdGUocmVpbnNlcnRpb25Qb3NpdGlvbiwgY3Vl
UG9zaXRpb24sIGFmdGVyQ3VlUG9zaXRpb24pOworICAgIGVsc2UgeworICAgICAgICByZWluc2Vy
dGlvblBvc2l0aW9uID0gc3RkOjp1cHBlcl9ib3VuZChhZnRlckN1ZVBvc2l0aW9uLCBtX3ZlY3Rv
ci5lbmQoKSwgKmN1ZVBvc2l0aW9uLCBjb21wYXJlQ3Vlcyk7CisgICAgICAgIGlmIChyZWluc2Vy
dGlvblBvc2l0aW9uICE9IGFmdGVyQ3VlUG9zaXRpb24pCisgICAgICAgICAgICBzdGQ6OnJvdGF0
ZShjdWVQb3NpdGlvbiwgYWZ0ZXJDdWVQb3NpdGlvbiwgcmVpbnNlcnRpb25Qb3NpdGlvbik7Cisg
ICAgfQogCi12b2lkIFRleHRUcmFja0N1ZUxpc3Q6OmludmFsaWRhdGVDdWVJbmRleGVzKHNpemVf
dCBzdGFydCkKLXsKLSAgICBmb3IgKHNpemVfdCBpID0gc3RhcnQ7IGkgPCBtX2xpc3Quc2l6ZSgp
OyArK2kpCi0gICAgICAgIG1fbGlzdFtpXS0+aW52YWxpZGF0ZUN1ZUluZGV4KCk7CisgICAgQVNT
RVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrQ3VlTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tD
dWVMaXN0LmgKaW5kZXggYTIxOGZiNjkwODk2MjRjMWYyODM5Yzc1M2FjMTI1ZmYwZGIzYzI5OS4u
ZmUwNGM0NDZkMjk3N2M3ZmNlOTMyYzYzYjgyOTc5ODM0ZjIyNWU3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmgKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw0NCArMjksNDIgQEAKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCiAKICNpbmNsdWRlICJUZXh0VHJhY2tDdWUuaCIKLSNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFRleHRUcmFja0N1
ZUxpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxUZXh0VHJhY2tDdWVMaXN0PiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxUZXh0VHJhY2tDdWVMaXN0PiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNrQ3VlTGlzdCk7Ci0gICAgfQotCi0gICAgflRl
eHRUcmFja0N1ZUxpc3QoKSB7IH0KLQotICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3Q7
Ci0gICAgdW5zaWduZWQgbG9uZyBnZXRDdWVJbmRleChUZXh0VHJhY2tDdWUqKSBjb25zdDsKKyAg
ICBzdGF0aWMgUmVmPFRleHRUcmFja0N1ZUxpc3Q+IGNyZWF0ZSgpOwogCisgICAgdW5zaWduZWQg
bGVuZ3RoKCkgY29uc3Q7CiAgICAgVGV4dFRyYWNrQ3VlKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBj
b25zdDsKICAgICBUZXh0VHJhY2tDdWUqIGdldEN1ZUJ5SWQoY29uc3QgU3RyaW5nJikgY29uc3Q7
Ci0gICAgVGV4dFRyYWNrQ3VlTGlzdCogYWN0aXZlQ3VlcygpOwogCi0gICAgYm9vbCBhZGQoUGFz
c1JlZlB0cjxUZXh0VHJhY2tDdWU+KTsKLSAgICBib29sIHJlbW92ZShUZXh0VHJhY2tDdWUqKTsK
LSAgICBib29sIGNvbnRhaW5zKFRleHRUcmFja0N1ZSopIGNvbnN0OwotICAgIAotICAgIGJvb2wg
dXBkYXRlQ3VlSW5kZXgoVGV4dFRyYWNrQ3VlKik7CisgICAgdW5zaWduZWQgY3VlSW5kZXgoVGV4
dFRyYWNrQ3VlJikgY29uc3Q7CisKKyAgICB2b2lkIGFkZChSZWY8VGV4dFRyYWNrQ3VlPiYmKTsK
KyAgICB2b2lkIHJlbW92ZShUZXh0VHJhY2tDdWUmKTsKKyAgICB2b2lkIHVwZGF0ZUN1ZUluZGV4
KFRleHRUcmFja0N1ZSYpOworCisgICAgVGV4dFRyYWNrQ3VlTGlzdCYgYWN0aXZlQ3VlcygpOwog
CiBwcml2YXRlOgotICAgIFRleHRUcmFja0N1ZUxpc3QoKTsKLSAgICBib29sIGFkZChQYXNzUmVm
UHRyPFRleHRUcmFja0N1ZT4sIHNpemVfdCwgc2l6ZV90KTsKLSAgICB2b2lkIGNsZWFyKCk7Ci0g
ICAgdm9pZCBpbnZhbGlkYXRlQ3VlSW5kZXhlcyhzaXplX3QpOworICAgIFRleHRUcmFja0N1ZUxp
c3QoKSA9IGRlZmF1bHQ7CiAKLSAgICBWZWN0b3I8UmVmUHRyPFRleHRUcmFja0N1ZT4+IG1fbGlz
dDsKKyAgICBWZWN0b3I8UmVmUHRyPFRleHRUcmFja0N1ZT4+IG1fdmVjdG9yOwogICAgIFJlZlB0
cjxUZXh0VHJhY2tDdWVMaXN0PiBtX2FjdGl2ZUN1ZXM7CiB9OwogCitpbmxpbmUgUmVmPFRleHRU
cmFja0N1ZUxpc3Q+IFRleHRUcmFja0N1ZUxpc3Q6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgVGV4dFRyYWNrQ3VlTGlzdCk7Cit9CisKK2lubGluZSB1bnNpZ25lZCBUZXh0
VHJhY2tDdWVMaXN0OjpsZW5ndGgoKSBjb25zdAoreworICAgIHJldHVybiBtX3ZlY3Rvci5zaXpl
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShWSURF
T19UUkFDSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAppbmRleCA3ZGQ4
ZGRiNGJmNjRlNWQ4MjMxNmE0ZWZkZWM1MzE3ZTE1MGQ2YzFkLi5jOGEzZjM4ZDU3OGU0ZmFlNDE1
ZWY4ZWRlMmM1NDAzZjhmYWM1YzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RyYWNrQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jh
c2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgTWVkaWFUcmFja0Jhc2U6OnNldEtpbmRJbnRlcm5h
bChjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQpCiAgICAgaWYgKGlzVmFsaWRLaW5kKGtpbmQpKQog
ICAgICAgICBtX2tpbmQgPSBraW5kOwogICAgIGVsc2UKLSAgICAgICAgbV9raW5kID0gZGVmYXVs
dEtpbmRLZXl3b3JkKCk7CisgICAgICAgIG1fa2luZCA9IGVtcHR5QXRvbTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
cmFja0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmgKaW5kZXgg
ZDZjNWU0ODU2YTU1YWE4OGY0YzY5ZjA3M2QwN2QwNmQ0YjBiNWM3MC4uZmE4MjUyNzViOGNhZTE1
YmEwMTkxNGQ5ODA4OTczY2E2N2NjYTFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UcmFja0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNr
QmFzZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNyw5ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbmNs
dWRlICJFdmVudFRhcmdldC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVk
ZSA8d3RmL1R5cGVDYXN0cy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk3LDcgKzk1LDYgQEAgcHJvdGVjdGVkOgogCiBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkS2luZChjb25zdCBBdG9taWNTdHJpbmcm
KSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGRlZmF1bHRLaW5k
S2V5d29yZCgpIGNvbnN0ID0gMDsKIAogICAgIEF0b21pY1N0cmluZyBtX2tpbmQ7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5jcHAKaW5kZXggYjdlNzlkMGY3
ZTZiYmM3NGU0MWE3MWZkNWJlZTc0MWRjMTJkN2RkMi4uY2ZjMTYyMjNmMzUzNGM5ZGY2YWNkZjBk
NzVhMmNiZjA5MDhiODNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9W
VFRSZWdpb25MaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lv
bkxpc3QuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI5LDU3ICsyOSw0MSBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0K
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotVlRUUmVnaW9uTGlzdDo6VlRUUmVnaW9uTGlzdCgpCi17
Ci19Ci0KLXVuc2lnbmVkIGxvbmcgVlRUUmVnaW9uTGlzdDo6bGVuZ3RoKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV9saXN0LnNpemUoKTsKLX0KLQogVlRUUmVnaW9uKiBWVFRSZWdpb25MaXN0Ojpp
dGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAogewotICAgIGlmIChpbmRleCA8IG1fbGlzdC5zaXpl
KCkpCi0gICAgICAgIHJldHVybiBtX2xpc3RbaW5kZXhdLmdldCgpOwotCi0gICAgcmV0dXJuIDA7
CisgICAgaWYgKGluZGV4ID49IG1fdmVjdG9yLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8VlRUUmVnaW9uKj4obV92ZWN0b3JbaW5kZXhdLnB0
cigpKTsKIH0KIAogVlRUUmVnaW9uKiBWVFRSZWdpb25MaXN0OjpnZXRSZWdpb25CeUlkKGNvbnN0
IFN0cmluZyYgaWQpIGNvbnN0CiB7CisgICAgLy8gRklYTUU6IFdoeSBpcyB0aGlzIHNwZWNpYWwg
Y2FzZSBuZWVkZWQ/CiAgICAgaWYgKGlkLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0K
LSAgICBmb3IgKGNvbnN0IGF1dG8mIHJlZ2lvbiA6IG1fbGlzdCkgeworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICBmb3IgKGF1dG8mIHJlZ2lvbiA6IG1fdmVjdG9yKSB7CiAgICAgICAgIGlm
IChyZWdpb24tPmlkKCkgPT0gaWQpCi0gICAgICAgICAgICByZXR1cm4gcmVnaW9uLmdldCgpOwor
ICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8VlRUUmVnaW9uKj4ocmVnaW9uLnB0cigpKTsK
ICAgICB9Ci0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBW
VFRSZWdpb25MaXN0OjphZGQoUGFzc1JlZlB0cjxWVFRSZWdpb24+IHJlZ2lvbikKK3ZvaWQgVlRU
UmVnaW9uTGlzdDo6YWRkKFJlZjxWVFRSZWdpb24+JiYgcmVnaW9uKQogewotICAgIG1fbGlzdC5h
cHBlbmQocmVnaW9uKTsKKyAgICBtX3ZlY3Rvci5hcHBlbmQoV1RGTW92ZShyZWdpb24pKTsKIH0K
IAotYm9vbCBWVFRSZWdpb25MaXN0OjpyZW1vdmUoVlRUUmVnaW9uKiByZWdpb24pCit2b2lkIFZU
VFJlZ2lvbkxpc3Q6OnJlbW92ZShWVFRSZWdpb24mIHJlZ2lvbikKIHsKLSAgICBzaXplX3QgaW5k
ZXggPSBtX2xpc3QuZmluZChyZWdpb24pOwotICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgbV9saXN0LnJlbW92ZShpbmRleCk7Ci0gICAgcmV0
dXJuIHRydWU7Ci19Ci0KLXZvaWQgVlRUUmVnaW9uTGlzdDo6Y2xlYXIoKQotewotICAgIG1fbGlz
dC5jbGVhcigpOworICAgIGZvciAodW5zaWduZWQgaSA9IDAsIHNpemUgPSBtX3ZlY3Rvci5zaXpl
KCk7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgaWYgKG1fdmVjdG9yW2ldLnB0cigpID09ICZy
ZWdpb24pIHsKKyAgICAgICAgICAgIG1fdmVjdG9yLnJlbW92ZShpKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WVFRSZWdpb25MaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lv
bkxpc3QuaAppbmRleCAyZmRkZGMyZWQxOWE1NmU0ODFhYWNmNDY1YmM4OGE3YjJiN2ZjY2UzLi43
ZjlmZDU1ZGNiZTEyNDdmMjhiOWMzOTM5YzIwOGJlOGU5NDA2ZDNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwzNiArMjksNDMgQEAKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCiAKICNpbmNsdWRlICJWVFRSZWdpb24uaCIKLSNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFZUVFJlZ2lvbkxpc3QgOiBw
dWJsaWMgUmVmQ291bnRlZDxWVFRSZWdpb25MaXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxWVFRSZWdpb25MaXN0PiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVlRUUmVnaW9uTGlzdCk7Ci0gICAgfQotCi0gICAgflZUVFJlZ2lvbkxpc3QoKSB7IH0K
LQotICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3Q7CisgICAgc3RhdGljIFJlZjxWVFRS
ZWdpb25MaXN0PiBjcmVhdGUoKTsKIAorICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwogICAg
IFZUVFJlZ2lvbiogaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CiAgICAgVlRUUmVnaW9uKiBn
ZXRSZWdpb25CeUlkKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogCi0gICAgdm9pZCBhZGQoUGFzc1Jl
ZlB0cjxWVFRSZWdpb24+KTsKLSAgICBib29sIHJlbW92ZShWVFRSZWdpb24qKTsKKyAgICB2b2lk
IGFkZChSZWY8VlRUUmVnaW9uPiYmKTsKKyAgICB2b2lkIHJlbW92ZShWVFRSZWdpb24mKTsKIAog
cHJpdmF0ZToKLSAgICBWVFRSZWdpb25MaXN0KCk7CisgICAgVlRUUmVnaW9uTGlzdCgpID0gZGVm
YXVsdDsKKwogICAgIHZvaWQgY2xlYXIoKTsKIAotICAgIFZlY3RvcjxSZWZQdHI8VlRUUmVnaW9u
Pj4gbV9saXN0OworICAgIFZlY3RvcjxSZWY8VlRUUmVnaW9uPj4gbV92ZWN0b3I7CiB9OwogCitp
bmxpbmUgUmVmPFZUVFJlZ2lvbkxpc3Q+IFZUVFJlZ2lvbkxpc3Q6OmNyZWF0ZSgpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVlRUUmVnaW9uTGlzdCk7Cit9CisKK2lubGluZSB1bnNpZ25l
ZCBWVFRSZWdpb25MaXN0OjpsZW5ndGgoKSBjb25zdAoreworICAgIHJldHVybiBtX3ZlY3Rvci5z
aXplKCk7Cit9CisKK2lubGluZSB2b2lkIFZUVFJlZ2lvbkxpc3Q6OmNsZWFyKCkKK3sKKyAgICBt
X3ZlY3Rvci5jbGVhcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoVklERU9fVFJBQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZUVFJlZ2lvbkxpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdp
b25MaXN0LmlkbAppbmRleCA1MzgxZDM5YzY2ZjFjZmMzZDAyMWIxZGM0MGVjMzI4MTQyYzdiY2Qx
Li44NDMxZDhiNTFiMmFkNDBkOWEwOTFiNjdjYjg1ZmU1MDk2MDlhODkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5pZGwKQEAgLTEsNSArMSw2IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwxMiArMjUsMTEgQEAKICAqLwogCiBb
Ci0gICAgTm9JbnRlcmZhY2VPYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9VklERU9fVFJBQ0ssCiAg
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKIF0g
aW50ZXJmYWNlIFZUVFJlZ2lvbkxpc3QgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIGxlbmd0aDsKLSAgICBnZXR0ZXIgVlRUUmVnaW9uIGl0ZW0odW5zaWduZWQgbG9uZyBp
bmRleCk7Ci0gICAgVlRUUmVnaW9uIGdldFJlZ2lvbkJ5SWQoRE9NU3RyaW5nIGlkKTsKKyAgICBn
ZXR0ZXIgVlRUUmVnaW9uPyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIFZUVFJlZ2lv
bj8gZ2V0UmVnaW9uQnlJZChET01TdHJpbmcgaWQpOwogfTsKLQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVmlkZW9UcmFjay5jcHAKaW5kZXggZjgwYmMxMGE4Y2M4ZGUyODJkOWZhZjMxOTQ2ZDYx
Y2RlMGNiYzQzMS4uNDA5N2UxNmJhNWZlOWU3NmFlMjcyNTYwZjE4MDJhMzU0N2U3MWZhNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCkBAIC0xLDYgKzEsNiBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0z
MCwxMiArMzAsMTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVmlk
ZW9UcmFjay5oIgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiVmlkZW9U
cmFjay5oIgotCi0jaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50
LmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja0xpc3QuaCIKIApAQCAtODEsMTAgKzc5LDEwIEBAIGNv
bnN0IEF0b21pY1N0cmluZyYgVmlkZW9UcmFjazo6Y29tbWVudGFyeUtleXdvcmQoKQogICAgIHJl
dHVybiBjb21tZW50YXJ5OwogfQogCi1WaWRlb1RyYWNrOjpWaWRlb1RyYWNrKFZpZGVvVHJhY2tD
bGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRl
KQotICAgIDogTWVkaWFUcmFja0Jhc2UoTWVkaWFUcmFja0Jhc2U6OlZpZGVvVHJhY2ssIHRyYWNr
UHJpdmF0ZS0+aWQoKSwgdHJhY2tQcml2YXRlLT5sYWJlbCgpLCB0cmFja1ByaXZhdGUtPmxhbmd1
YWdlKCkpCi0gICAgLCBtX3NlbGVjdGVkKHRyYWNrUHJpdmF0ZS0+c2VsZWN0ZWQoKSkKLSAgICAs
IG1fY2xpZW50KGNsaWVudCkKK1ZpZGVvVHJhY2s6OlZpZGVvVHJhY2soVmlkZW9UcmFja0NsaWVu
dCYgY2xpZW50LCBWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQorICAgIDogTWVkaWFU
cmFja0Jhc2UoTWVkaWFUcmFja0Jhc2U6OlZpZGVvVHJhY2ssIHRyYWNrUHJpdmF0ZS5pZCgpLCB0
cmFja1ByaXZhdGUubGFiZWwoKSwgdHJhY2tQcml2YXRlLmxhbmd1YWdlKCkpCisgICAgLCBtX3Nl
bGVjdGVkKHRyYWNrUHJpdmF0ZS5zZWxlY3RlZCgpKQorICAgICwgbV9jbGllbnQoJmNsaWVudCkK
ICAgICAsIG1fcHJpdmF0ZSh0cmFja1ByaXZhdGUpCiB7CiAgICAgbV9wcml2YXRlLT5zZXRDbGll
bnQodGhpcyk7CkBAIC05MywxNSArOTEsMTIgQEAgVmlkZW9UcmFjazo6VmlkZW9UcmFjayhWaWRl
b1RyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+IHQKIAog
VmlkZW9UcmFjazo6flZpZGVvVHJhY2soKQogewotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KDAp
OworICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwogfQogCi12b2lkIFZpZGVvVHJh
Y2s6OnNldFByaXZhdGUoUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRl
KQordm9pZCBWaWRlb1RyYWNrOjpzZXRQcml2YXRlKFZpZGVvVHJhY2tQcml2YXRlJiB0cmFja1By
aXZhdGUpCiB7Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7Ci0gICAgQVNTRVJUKHRyYWNrUHJpdmF0
ZSk7Ci0KLSAgICBpZiAobV9wcml2YXRlID09IHRyYWNrUHJpdmF0ZSkKKyAgICBpZiAobV9wcml2
YXRlLnB0cigpID09ICZ0cmFja1ByaXZhdGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fcHJp
dmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwpAQCAtMTE0LDIwICsxMDksMTIgQEAgdm9pZCBWaWRl
b1RyYWNrOjpzZXRQcml2YXRlKFBhc3NSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+IHRyYWNrUHJp
dmF0ZSkKIAogYm9vbCBWaWRlb1RyYWNrOjppc1ZhbGlkS2luZChjb25zdCBBdG9taWNTdHJpbmcm
IHZhbHVlKSBjb25zdAogewotICAgIGlmICh2YWx1ZSA9PSBhbHRlcm5hdGl2ZUtleXdvcmQoKSkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKHZhbHVlID09IGNhcHRpb25zS2V5d29yZCgp
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAodmFsdWUgPT0gbWFpbktleXdvcmQoKSkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKHZhbHVlID09IHNpZ25LZXl3b3JkKCkpCi0g
ICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmICh2YWx1ZSA9PSBzdWJ0aXRsZXNLZXl3b3JkKCkp
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmICh2YWx1ZSA9PSBjb21tZW50YXJ5S2V5d29y
ZCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gdmFsdWUgPT0gYWx0ZXJuYXRpdmVLZXl3b3JkKCkKKyAgICAgICAgfHwgdmFsdWUgPT0gY29t
bWVudGFyeUtleXdvcmQoKQorICAgICAgICB8fCB2YWx1ZSA9PSBjYXB0aW9uc0tleXdvcmQoKQor
ICAgICAgICB8fCB2YWx1ZSA9PSBtYWluS2V5d29yZCgpCisgICAgICAgIHx8IHZhbHVlID09IHNp
Z25LZXl3b3JkKCkKKyAgICAgICAgfHwgdmFsdWUgPT0gc3VidGl0bGVzS2V5d29yZCgpOwogfQog
CiB2b2lkIFZpZGVvVHJhY2s6OnNldFNlbGVjdGVkKGNvbnN0IGJvb2wgc2VsZWN0ZWQpCkBAIC0x
MzksNDYgKzEyNiw0NCBAQCB2b2lkIFZpZGVvVHJhY2s6OnNldFNlbGVjdGVkKGNvbnN0IGJvb2wg
c2VsZWN0ZWQpCiAgICAgbV9wcml2YXRlLT5zZXRTZWxlY3RlZChzZWxlY3RlZCk7CiAKICAgICBp
ZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT52aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2Vk
KHRoaXMpOworICAgICAgICBtX2NsaWVudC0+dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCgqdGhp
cyk7CiB9CiAKIHNpemVfdCBWaWRlb1RyYWNrOjppbmJhbmRUcmFja0luZGV4KCkKIHsKLSAgICBB
U1NFUlQobV9wcml2YXRlKTsKICAgICByZXR1cm4gbV9wcml2YXRlLT50cmFja0luZGV4KCk7CiB9
CiAKLXZvaWQgVmlkZW9UcmFjazo6c2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2tQcml2YXRlKiB0
cmFja1ByaXZhdGUsIGJvb2wgc2VsZWN0ZWQpCit2b2lkIFZpZGVvVHJhY2s6OnNlbGVjdGVkQ2hh
bmdlZChib29sIHNlbGVjdGVkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0
cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRTZWxlY3RlZChzZWxlY3RlZCk7CiB9
CiAKLXZvaWQgVmlkZW9UcmFjazo6aWRDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJp
dmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCkKK3ZvaWQgVmlkZW9UcmFjazo6aWRDaGFuZ2Vk
KGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZh
dGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldElkKGlkKTsKIH0KIAotdm9p
ZCBWaWRlb1RyYWNrOjpsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRl
LCBjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQordm9pZCBWaWRlb1RyYWNrOjpsYWJlbENoYW5n
ZWQoY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNr
UHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0TGFiZWwobGFiZWwp
OwogfQogCi12b2lkIFZpZGVvVHJhY2s6Omxhbmd1YWdlQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNl
KiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCit2b2lkIFZpZGVv
VHJhY2s6Omxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKQogewot
ICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRl
KTsKICAgICBzZXRMYW5ndWFnZShsYW5ndWFnZSk7CiB9CiAKLXZvaWQgVmlkZW9UcmFjazo6d2ls
bFJlbW92ZShUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUpCit2b2lkIFZpZGVvVHJhY2s6
OndpbGxSZW1vdmUoKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1By
aXZhdGUgPT0gbV9wcml2YXRlKTsKLSAgICBtZWRpYUVsZW1lbnQoKS0+cmVtb3ZlVmlkZW9UcmFj
aygqdGhpcyk7CisgICAgYXV0byogZWxlbWVudCA9IG1lZGlhRWxlbWVudCgpOworICAgIGlmICgh
ZWxlbWVudCkKKyAgICAgICAgcmV0dXJuOworICAgIGVsZW1lbnQtPnJlbW92ZVZpZGVvVHJhY2so
KnRoaXMpOwogfQogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKwogdm9pZCBWaWRlb1RyYWNr
OjpzZXRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYga2luZCkKIHsKICAgICAvLyAxMC4xIGtpbmQs
IG9uIHNldHRpbmc6CkBAIC0xOTMsNyArMTc4LDcgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZXRLaW5k
KGNvbnN0IEF0b21pY1N0cmluZyYga2luZCkKICAgICAvLyAzLiBJZiB0aGUgc291cmNlQnVmZmVy
IGF0dHJpYnV0ZSBvbiB0aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1ZXVlIGEgdGFzayB0
byBmaXJlIGEgc2ltcGxlCiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHNvdXJjZUJ1ZmZl
ci52aWRlb1RyYWNrcy4KICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNl
QnVmZmVyLT52aWRlb1RyYWNrcygpLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CisgICAgICAgIG1f
c291cmNlQnVmZmVyLT52aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAg
IC8vIDQuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNoYW5nZSBh
dCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdmlk
ZW9UcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgpAQCAtMjEzLDEyICsx
OTgsMTMgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcm
IGxhbmd1YWdlKQogICAgIC8vIDMuIElmIHRoZSBzb3VyY2VCdWZmZXIgYXR0cmlidXRlIG9uIHRo
aXMgdHJhY2sgaXMgbm90IG51bGwsIHRoZW4gcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUK
ICAgICAvLyBldmVudCBuYW1lZCBjaGFuZ2UgYXQgc291cmNlQnVmZmVyLnZpZGVvVHJhY2tzLgog
ICAgIGlmIChtX3NvdXJjZUJ1ZmZlcikKLSAgICAgICAgbV9zb3VyY2VCdWZmZXItPnZpZGVvVHJh
Y2tzKCktPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXItPnZp
ZGVvVHJhY2tzKCkuc2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogCiAgICAgLy8gNC4gUXVldWUgYSB0
YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHRoZSBWaWRlb1RyYWNr
TGlzdCBvYmplY3QgcmVmZXJlbmNlZCBieQogICAgIC8vIHRoZSB2aWRlb1RyYWNrcyBhdHRyaWJ1
dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgbWVkaWFFbGVtZW50KCktPnZpZGVvVHJh
Y2tzKCkuc2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogfQorCiAjZW5kaWYKIAogdm9pZCBWaWRlb1Ry
YWNrOjp1cGRhdGVLaW5kRnJvbVByaXZhdGUoKQpAQCAtMjI2LDI5ICsyMTIsMjcgQEAgdm9pZCBW
aWRlb1RyYWNrOjp1cGRhdGVLaW5kRnJvbVByaXZhdGUoKQogICAgIHN3aXRjaCAobV9wcml2YXRl
LT5raW5kKCkpIHsKICAgICBjYXNlIFZpZGVvVHJhY2tQcml2YXRlOjpBbHRlcm5hdGl2ZToKICAg
ICAgICAgc2V0S2luZEludGVybmFsKFZpZGVvVHJhY2s6OmFsdGVybmF0aXZlS2V5d29yZCgpKTsK
LSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFZpZGVvVHJhY2tQcml2
YXRlOjpDYXB0aW9uczoKICAgICAgICAgc2V0S2luZEludGVybmFsKFZpZGVvVHJhY2s6OmNhcHRp
b25zS2V5d29yZCgpKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNl
IFZpZGVvVHJhY2tQcml2YXRlOjpNYWluOgogICAgICAgICBzZXRLaW5kSW50ZXJuYWwoVmlkZW9U
cmFjazo6bWFpbktleXdvcmQoKSk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBWaWRlb1RyYWNrUHJpdmF0ZTo6U2lnbjoKICAgICAgICAgc2V0S2luZEludGVybmFs
KFZpZGVvVHJhY2s6OnNpZ25LZXl3b3JkKCkpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgVmlkZW9UcmFja1ByaXZhdGU6OlN1YnRpdGxlczoKICAgICAgICAgc2V0
S2luZEludGVybmFsKFZpZGVvVHJhY2s6OnN1YnRpdGxlc0tleXdvcmQoKSk7Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBWaWRlb1RyYWNrUHJpdmF0ZTo6Q29tbWVu
dGFyeToKICAgICAgICAgc2V0S2luZEludGVybmFsKFZpZGVvVHJhY2s6OmNvbW1lbnRhcnlLZXl3
b3JkKCkpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmlkZW9U
cmFja1ByaXZhdGU6Ok5vbmU6CiAgICAgICAgIHNldEtpbmRJbnRlcm5hbChlbXB0eVN0cmluZygp
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgfQorICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCmluZGV4IGM1MmY5YjNiMTJmYzY5Njg4ZGE3ZmQ2NzAz
MzcwMWZiMWI4NGYzMmMuLmViZWU4MjllMTY5OGZjMWMyYjEzYzViMGUxMGZjOTQ5ZGVlMmI1NGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCkBAIC0xLDYgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDEy
ICszOSwxMiBAQCBjbGFzcyBWaWRlb1RyYWNrOwogY2xhc3MgVmlkZW9UcmFja0NsaWVudCB7CiBw
dWJsaWM6CiAgICAgdmlydHVhbCB+VmlkZW9UcmFja0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwg
dm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayYpID0gMDsKIH07
CiAKLWNsYXNzIFZpZGVvVHJhY2sgZmluYWwgOiBwdWJsaWMgTWVkaWFUcmFja0Jhc2UsIHB1Ymxp
YyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCB7CitjbGFzcyBWaWRlb1RyYWNrIGZpbmFsIDogcHVi
bGljIE1lZGlhVHJhY2tCYXNlLCBwcml2YXRlIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPFZpZGVvVHJhY2s+IGNyZWF0ZShWaWRlb1RyYWNrQ2xpZW50
KiBjbGllbnQsIFBhc3NSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKKyAg
ICBzdGF0aWMgUmVmPFZpZGVvVHJhY2s+IGNyZWF0ZShWaWRlb1RyYWNrQ2xpZW50JiBjbGllbnQs
IFZpZGVvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiAgICAgewogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBWaWRlb1RyYWNrKGNsaWVudCwgdHJhY2tQcml2YXRlKSk7CiAgICAgfQpA
QCAtNTYsNDggKzU2LDQ2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5n
JiBzaWduS2V5d29yZCgpOwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1YnRpdGxl
c0tleXdvcmQoKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjb21tZW50YXJ5S2V5
d29yZCgpOwotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZGVmYXVsdEtpbmRLZXl3b3JkKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZW1wdHlBdG9tOyB9CiAKICAgICBib29sIHNlbGVjdGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9zZWxlY3RlZDsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3Rl
ZChjb25zdCBib29sKTsKIAotICAgIHZvaWQgY2xlYXJDbGllbnQoKSBvdmVycmlkZSB7IG1fY2xp
ZW50ID0gMDsgfQorICAgIHZvaWQgY2xlYXJDbGllbnQoKSBmaW5hbCB7IG1fY2xpZW50ID0gbnVs
bHB0cjsgfQogICAgIFZpZGVvVHJhY2tDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2xpZW50OyB9CiAKICAgICBzaXplX3QgaW5iYW5kVHJhY2tJbmRleCgpOwogCiAjaWYgRU5BQkxF
KE1FRElBX1NPVVJDRSkKLSAgICB2b2lkIHNldEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHNldEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9p
ZCBzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKICNlbmRpZgogCiAgICAg
Y29uc3QgTWVkaWFEZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24oKSBjb25zdDsKIAotICAgIHZvaWQg
c2V0UHJpdmF0ZShQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPik7Ci0KLXByb3RlY3RlZDoK
LSAgICBWaWRlb1RyYWNrKFZpZGVvVHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPFZpZGVvVHJhY2tQ
cml2YXRlPiBwcml2YXRlVHJhY2spOworICAgIHZvaWQgc2V0UHJpdmF0ZShWaWRlb1RyYWNrUHJp
dmF0ZSYpOwogCiBwcml2YXRlOgotICAgIGJvb2wgaXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3Ry
aW5nJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgVmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50Jiwg
VmlkZW9UcmFja1ByaXZhdGUmKTsKKworICAgIGJvb2wgaXNWYWxpZEtpbmQoY29uc3QgQXRvbWlj
U3RyaW5nJikgY29uc3QgZmluYWw7CiAKICAgICAvLyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudAot
ICAgIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2tQcml2YXRlKiwgYm9vbCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzZWxlY3RlZENoYW5nZWQoYm9vbCkgZmluYWw7CiAKICAgICAvLyBUcmFj
a1ByaXZhdGVCYXNlQ2xpZW50Ci0gICAgdm9pZCBpZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSos
IGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgbGFiZWxDaGFuZ2VkKFRy
YWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lk
IGxhbmd1YWdlQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2UqKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGlkQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2
b2lkIGxhYmVsQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGxh
bmd1YWdlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxS
ZW1vdmUoKSBmaW5hbDsKIAotICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHNlbGVjdGVkKCk7IH0KKyAgICBib29sIGVuYWJsZWQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBzZWxlY3RlZCgpOyB9CiAKICAgICB2b2lkIHVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpOwogCiAg
ICAgYm9vbCBtX3NlbGVjdGVkOwogICAgIFZpZGVvVHJhY2tDbGllbnQqIG1fY2xpZW50OwogCi0g
ICAgUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPiBtX3ByaXZhdGU7CisgICAgUmVmPFZpZGVvVHJh
Y2tQcml2YXRlPiBtX3ByaXZhdGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggMmMxMjM5NWZhNjYxZDE1YmI1NDUwODg5
NGZjMGFhY2RkNTVjZTZlNy4uM2JkODhiNGY2Mzk3YmZhNjZhZmJlOTY2ZmIzZDMzYWRhZmFhOWEw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMSw2ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgRXJpYyBTZWlkZWwgKGVyaWNAd2Via2l0Lm9yZykKLSAq
IENvcHlyaWdodCAoQykgMjAwOC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmlj
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC0xNzIsNyArMTcyLDcgQEAgcHVibGljOgog
I2VuZGlmCiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNo
b29zZXI+KSBvdmVycmlkZTsKLSAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciopIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgbG9hZElj
b25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJikgb3ZlcnJp
ZGUgeyB9CiAKICAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBOb2RlKikgb3ZlcnJpZGUg
eyB9CiAgICAgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBOb2RlKikgb3ZlcnJpZGUgeyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKaW5kZXggMDE4ODk0NmU3ZDhkZjQyNTJjMWVk
NDk0YWQ3YTk5MTY3NjkxMTY4Yi4uNDczMmE5MjU1NTcyZjFmODZiZTkzZWQxNWZmNGRlMTZiYzkz
MDBkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcApAQCAtMSw3ICsxLDcgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAxNSBSb29wZXNoIENoYW5kZXIgKHJvb3BAcm9vcGMubmV0
KQotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTcsMzggKzU3
LDUwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIEVOQUJMRShDT05URU5UX0VYVEVO
U0lPTlMpCi1zdGF0aWMgQ29udGVudEV4dGVuc2lvbnM6OkJsb2NrZWRTdGF0dXMgcHJvY2Vzc0Nv
bnRlbnRFeHRlbnNpb25SdWxlc0ZvckxvYWQoY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwm
IHVybCwgUmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZSkKKyNpZiAhRU5BQkxFKENPTlRFTlRfRVhU
RU5TSU9OUykKKworLy8gUmV0dXJucyB0cnVlIGlmIHdlIHNob3VsZCBibG9jayB0aGUgbG9hZC4K
K3N0YXRpYyBpbmxpbmUgYm9vbCBwcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZChj
b25zdCBGcmFtZSYsIFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlVHlwZSkKIHsKLSAgICBpZiAo
RG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWUubG9hZGVyKCkuZG9jdW1lbnRM
b2FkZXIoKSkgewotICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1lLnBhZ2UoKSkKLSAgICAg
ICAgICAgIHJldHVybiBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRF
eHRlbnNpb25SdWxlc0ZvckxvYWQodXJsLCByZXNvdXJjZVR5cGUsICpkb2N1bWVudExvYWRlcik7
Ci0gICAgfQotICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIGZhbHNlOworfQorCisjZWxzZQor
CisvLyBSZXR1cm5zIHRydWUgaWYgd2Ugc2hvdWxkIGJsb2NrIHRoZSBsb2FkLgorc3RhdGljIGJv
b2wgcHJvY2Vzc0NvbnRlbnRFeHRlbnNpb25SdWxlc0ZvckxvYWQoY29uc3QgRnJhbWUmIGZyYW1l
LCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlVHlwZSByZXNvdXJjZVR5cGUpCit7
CisgICAgYXV0byogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZS5sb2FkZXIoKS5kb2N1bWVudExvYWRl
cigpOworICAgIGlmICghZG9jdW1lbnRMb2FkZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBhdXRvKiBwYWdlID0gZnJhbWUucGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGF1dG8gc3RhdHVzID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigp
LnByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKHJlcXVlc3QudXJsKCksIHJlc291
cmNlVHlwZSwgKmRvY3VtZW50TG9hZGVyKTsKKyAgICBhcHBseUJsb2NrZWRTdGF0dXNUb1JlcXVl
c3Qoc3RhdHVzLCByZXF1ZXN0KTsKKyAgICByZXR1cm4gc3RhdHVzLmJsb2NrZWRMb2FkOwogfQor
CiAjZW5kaWYKIAogdm9pZCBQaW5nTG9hZGVyOjpsb2FkSW1hZ2UoRnJhbWUmIGZyYW1lLCBjb25z
dCBVUkwmIHVybCkKIHsKLSAgICBpZiAoIWZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCktPmNhbkRpc3BsYXkodXJsKSkgeworICAgIEFTU0VSVChmcmFtZS5kb2N1bWVudCgpKTsKKyAg
ICBhdXRvJiBkb2N1bWVudCA9ICpmcmFtZS5kb2N1bWVudCgpOworCisgICAgaWYgKCFkb2N1bWVu
dC5zZWN1cml0eU9yaWdpbigpLT5jYW5EaXNwbGF5KHVybCkpIHsKICAgICAgICAgRnJhbWVMb2Fk
ZXI6OnJlcG9ydExvY2FsTG9hZEZhaWxlZCgmZnJhbWUsIHVybCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwotCi0jaWYgRU5BQkxF
KENPTlRFTlRfRVhURU5TSU9OUykKLSAgICBhdXRvIGJsb2NrZWRTdGF0dXMgPSBwcm9jZXNzQ29u
dGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZChmcmFtZSwgdXJsLCBSZXNvdXJjZVR5cGU6OkltYWdl
KTsKLSAgICBhcHBseUJsb2NrZWRTdGF0dXNUb1JlcXVlc3QoYmxvY2tlZFN0YXR1cywgcmVxdWVz
dCk7Ci0gICAgaWYgKGJsb2NrZWRTdGF0dXMuYmxvY2tlZExvYWQpCisgICAgaWYgKHByb2Nlc3ND
b250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKGZyYW1lLCByZXF1ZXN0LCBSZXNvdXJjZVR5cGU6
OkltYWdlKSkKICAgICAgICAgcmV0dXJuOwotI2VuZGlmCiAKLSAgICBpZiAoRG9jdW1lbnQqIGRv
Y3VtZW50ID0gZnJhbWUuZG9jdW1lbnQoKSkKLSAgICAgICAgZG9jdW1lbnQtPmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdCwgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsKKyAgICBkb2N1
bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVl
ZGVkKHJlcXVlc3QsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6
TG9hZCk7CiAKICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6
Q2FjaGVDb250cm9sLCAibWF4LWFnZT0wIik7Ci0gICAgU3RyaW5nIHJlZmVycmVyID0gU2VjdXJp
dHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIoZnJhbWUuZG9jdW1lbnQoKS0+cmVmZXJy
ZXJQb2xpY3koKSwgcmVxdWVzdC51cmwoKSwgZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJl
cigpKTsKKyAgICBTdHJpbmcgcmVmZXJyZXIgPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZl
cnJlckhlYWRlcihkb2N1bWVudC5yZWZlcnJlclBvbGljeSgpLCByZXF1ZXN0LnVybCgpLCBmcmFt
ZS5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpOwogICAgIGlmICghcmVmZXJyZXIuaXNFbXB0
eSgpKQogICAgICAgICByZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihyZWZlcnJlcik7CiAgICAgZnJh
bWUubG9hZGVyKCkuYWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChyZXF1ZXN0KTsK
QEAgLTk5LDE5ICsxMTEsMTcgQEAgdm9pZCBQaW5nTG9hZGVyOjpsb2FkSW1hZ2UoRnJhbWUmIGZy
YW1lLCBjb25zdCBVUkwmIHVybCkKIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWIt
YXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL2xpbmtzLmh0bWwjaHlwZXJsaW5rLWF1ZGl0aW5n
CiB2b2lkIFBpbmdMb2FkZXI6OnNlbmRQaW5nKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiBwaW5n
VVJMLCBjb25zdCBVUkwmIGRlc3RpbmF0aW9uVVJMKQogeworICAgIEFTU0VSVChmcmFtZS5kb2N1
bWVudCgpKTsKKwogICAgIGlmICghcGluZ1VSTC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHBpbmdVUkwpOwot
ICAgIAotI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgYXV0byBibG9ja2VkU3Rh
dHVzID0gcHJvY2Vzc0NvbnRlbnRFeHRlbnNpb25SdWxlc0ZvckxvYWQoZnJhbWUsIHBpbmdVUkws
IFJlc291cmNlVHlwZTo6UmF3KTsKLSAgICBhcHBseUJsb2NrZWRTdGF0dXNUb1JlcXVlc3QoYmxv
Y2tlZFN0YXR1cywgcmVxdWVzdCk7Ci0gICAgaWYgKGJsb2NrZWRTdGF0dXMuYmxvY2tlZExvYWQp
CisgICAgaWYgKHByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKGZyYW1lLCByZXF1
ZXN0LCBSZXNvdXJjZVR5cGU6OlJhdykpCiAgICAgICAgIHJldHVybjsKLSNlbmRpZgogCi0gICAg
ZnJhbWUuZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPnVwZ3JhZGVJbnNlY3Vy
ZVJlcXVlc3RJZk5lZWRlZChyZXF1ZXN0LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJl
UmVxdWVzdFR5cGU6OkxvYWQpOworICAgIGF1dG8mIGRvY3VtZW50ID0gKmZyYW1lLmRvY3VtZW50
KCk7CisgICAgZG9jdW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPnVwZ3JhZGVJbnNlY3Vy
ZVJlcXVlc3RJZk5lZWRlZChyZXF1ZXN0LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJl
UmVxdWVzdFR5cGU6OkxvYWQpOwogCiAgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJQT1NUIik7
CiAgICAgcmVxdWVzdC5zZXRIVFRQQ29udGVudFR5cGUoInRleHQvcGluZyIpOwpAQCAtMTE5LDE0
ICsxMjksMTQgQEAgdm9pZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhGcmFtZSYgZnJhbWUsIGNvbnN0
IFVSTCYgcGluZ1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGkKICAgICByZXF1ZXN0LnNldEhUVFBI
ZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q2FjaGVDb250cm9sLCAibWF4LWFnZT0wIik7CiAg
ICAgZnJhbWUubG9hZGVyKCkuYWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChyZXF1
ZXN0KTsKIAotICAgIFNlY3VyaXR5T3JpZ2luKiBzb3VyY2VPcmlnaW4gPSBmcmFtZS5kb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpOwotICAgIFJlZjxTZWN1cml0eU9yaWdpbj4gcGluZ09yaWdp
bihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHBpbmdVUkwpKTsKLSAgICBGcmFtZUxvYWRlcjo6YWRk
SFRUUE9yaWdpbklmTmVlZGVkKHJlcXVlc3QsIHNvdXJjZU9yaWdpbi0+dG9TdHJpbmcoKSk7Cisg
ICAgQVNTRVJUKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkpOworICAgIGF1dG8mIHNvdXJjZU9y
aWdpbiA9ICpkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpOworICAgIEZyYW1lTG9hZGVyOjphZGRI
VFRQT3JpZ2luSWZOZWVkZWQocmVxdWVzdCwgc291cmNlT3JpZ2luLnRvU3RyaW5nKCkpOwogICAg
IHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpQaW5nVG8sIGRlc3Rp
bmF0aW9uVVJMKTsKICAgICBpZiAoIVNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyZXIo
cGluZ1VSTCwgZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKSkgewotICAgICAgICBy
ZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UGluZ0Zyb20sIGZyYW1l
LmRvY3VtZW50KCktPnVybCgpKTsKLSAgICAgICAgaWYgKCFzb3VyY2VPcmlnaW4tPmlzU2FtZVNj
aGVtZUhvc3RQb3J0KCZwaW5nT3JpZ2luLmdldCgpKSkgewotICAgICAgICAgICAgU3RyaW5nIHJl
ZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIoZnJhbWUuZG9j
dW1lbnQoKS0+cmVmZXJyZXJQb2xpY3koKSwgcGluZ1VSTCwgZnJhbWUubG9hZGVyKCkub3V0Z29p
bmdSZWZlcnJlcigpKTsKKyAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhl
YWRlck5hbWU6OlBpbmdGcm9tLCBkb2N1bWVudC51cmwoKSk7CisgICAgICAgIGlmICghc291cmNl
T3JpZ2luLmlzU2FtZVNjaGVtZUhvc3RQb3J0KFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUocGluZ1VS
TCkucHRyKCkpKSB7CisgICAgICAgICAgICBTdHJpbmcgcmVmZXJyZXIgPSBTZWN1cml0eVBvbGlj
eTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihkb2N1bWVudC5yZWZlcnJlclBvbGljeSgpLCBwaW5n
VVJMLCBmcmFtZS5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpOwogICAgICAgICAgICAgaWYg
KCFyZWZlcnJlci5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQUmVm
ZXJyZXIocmVmZXJyZXIpOwogICAgICAgICB9CkBAIC0xMzUsMTkgKzE0NSwxNiBAQCB2b2lkIFBp
bmdMb2FkZXI6OnNlbmRQaW5nKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiBwaW5nVVJMLCBjb25z
dCBVUkwmIGRlc3RpbmF0aQogICAgIHN0YXJ0UGluZ0xvYWQoZnJhbWUsIHJlcXVlc3QsIFNob3Vs
ZEZvbGxvd1JlZGlyZWN0czo6WWVzKTsKIH0KIAotdm9pZCBQaW5nTG9hZGVyOjpzZW5kVmlvbGF0
aW9uUmVwb3J0KEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiByZXBvcnRVUkwsIFJlZlB0cjxGb3Jt
RGF0YT4mJiByZXBvcnQsIFZpb2xhdGlvblJlcG9ydFR5cGUgcmVwb3J0VHlwZSkKK3ZvaWQgUGlu
Z0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcmVw
b3J0VVJMLCBSZWY8Rm9ybURhdGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBlIHJlcG9y
dFR5cGUpCiB7Ci0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QocmVwb3J0VVJMKTsKKyAgICBB
U1NFUlQoZnJhbWUuZG9jdW1lbnQoKSk7CiAKLSNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05T
KQotICAgIGF1dG8gYmxvY2tlZFN0YXR1cyA9IHByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNG
b3JMb2FkKGZyYW1lLCByZXBvcnRVUkwsIFJlc291cmNlVHlwZTo6UmF3KTsKLSAgICBhcHBseUJs
b2NrZWRTdGF0dXNUb1JlcXVlc3QoYmxvY2tlZFN0YXR1cywgcmVxdWVzdCk7Ci0gICAgaWYgKGJs
b2NrZWRTdGF0dXMuYmxvY2tlZExvYWQpCisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QocmVw
b3J0VVJMKTsKKyAgICBpZiAocHJvY2Vzc0NvbnRlbnRFeHRlbnNpb25SdWxlc0ZvckxvYWQoZnJh
bWUsIHJlcXVlc3QsIFJlc291cmNlVHlwZTo6UmF3KSkKICAgICAgICAgcmV0dXJuOwotI2VuZGlm
CiAKLSAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUuZG9jdW1lbnQoKSkKLSAgICAg
ICAgZG9jdW1lbnQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1
ZXN0SWZOZWVkZWQocmVxdWVzdCwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVl
c3RUeXBlOjpMb2FkKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9ICpmcmFtZS5kb2N1bWVudCgpOwor
ICAgIGRvY3VtZW50LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1
ZXN0SWZOZWVkZWQocmVxdWVzdCwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVl
c3RUeXBlOjpMb2FkKTsKIAogICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChBU0NJSUxpdGVyYWwo
IlBPU1QiKSk7CiAgICAgcmVxdWVzdC5zZXRIVFRQQm9keShXVEZNb3ZlKHJlcG9ydCkpOwpAQCAt
MTYxLDE4ICsxNjgsMTYgQEAgdm9pZCBQaW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0KEZy
YW1lJiBmcmFtZSwgY29uc3QgVVJMJiByZXBvcnRVUkwsIFJlZlB0cjwKICAgICB9CiAKICAgICBi
b29sIHJlbW92ZUNvb2tpZXMgPSB0cnVlOwotICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBm
cmFtZS5kb2N1bWVudCgpKSB7Ci0gICAgICAgIGlmIChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlP
cmlnaW4gPSBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSkgewotICAgICAgICAgICAgaWYgKHNl
Y3VyaXR5T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
KHJlcG9ydFVSTCkucHRyKCkpKQotICAgICAgICAgICAgICAgIHJlbW92ZUNvb2tpZXMgPSBmYWxz
ZTsKLSAgICAgICAgfQorICAgIGlmIChhdXRvKiBzZWN1cml0eU9yaWdpbiA9IGRvY3VtZW50LnNl
Y3VyaXR5T3JpZ2luKCkpIHsKKyAgICAgICAgaWYgKHNlY3VyaXR5T3JpZ2luLT5pc1NhbWVTY2hl
bWVIb3N0UG9ydChTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHJlcG9ydFVSTCkucHRyKCkpKQorICAg
ICAgICAgICAgcmVtb3ZlQ29va2llcyA9IGZhbHNlOwogICAgIH0KICAgICBpZiAocmVtb3ZlQ29v
a2llcykKICAgICAgICAgcmVxdWVzdC5zZXRBbGxvd0Nvb2tpZXMoZmFsc2UpOwogCiAgICAgZnJh
bWUubG9hZGVyKCkuYWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChyZXF1ZXN0KTsK
IAotICAgIFN0cmluZyByZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVy
SGVhZGVyKGZyYW1lLmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIHJlcG9ydFVSTCwgZnJh
bWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKTsKKyAgICBTdHJpbmcgcmVmZXJyZXIgPSBT
ZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihkb2N1bWVudC5yZWZlcnJlclBv
bGljeSgpLCByZXBvcnRVUkwsIGZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSk7CiAg
ICAgaWYgKCFyZWZlcnJlci5pc0VtcHR5KCkpCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVy
cmVyKHJlZmVycmVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdM
b2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKaW5kZXggY2Y2NTc3
YzMzNTZlYTA1ODFiNTM5MTg5MTk4ZmRlODc2NGZiOTkzNy4uYjI5ZThkYThmODA4YTdiMDYwZTUw
OTc4ZmMyYWVkMmNlMmQ4ZjEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bp
bmdMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMxLDcg
KzMyLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ5LDcgKzUwLDcg
QEAgY2xhc3MgUGluZ0xvYWRlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgbG9hZEltYWdl
KEZyYW1lJiwgY29uc3QgVVJMJik7CiAgICAgc3RhdGljIHZvaWQgc2VuZFBpbmcoRnJhbWUmLCBj
b25zdCBVUkwmIHBpbmdVUkwsIGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwpOwotICAgIHN0YXRp
YyB2b2lkIHNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUmLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwg
UmVmUHRyPEZvcm1EYXRhPiYmIHJlcG9ydCwgVmlvbGF0aW9uUmVwb3J0VHlwZSk7CisgICAgc3Rh
dGljIHZvaWQgc2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYsIGNvbnN0IFVSTCYgcmVwb3J0VVJM
LCBSZWY8Rm9ybURhdGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBlKTsKIAogcHJpdmF0
ZToKICAgICBlbnVtIGNsYXNzIFNob3VsZEZvbGxvd1JlZGlyZWN0cyB7IE5vLCBZZXMgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmNwcAppbmRleCA1YzAyNTQ0YTVlN2JkM2YwNmZiMWFiYWIwMWVlMjZjOGEz
NDQ2ZjNlLi5kMDE1YmE0NWEzM2FlYmNlMTcyOWQzYjk5YjI1NWY1NDUzMDFlNzZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NiwgMjAwNywgMjAwOSwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIFNhbXN1bmcgRWxlY3Ryb25p
Y3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtNDM4LDcgKzQzOCw3IEBAIHZvaWQgQ2hy
b21lOjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBm
aWxlQ2hvb3NlcikKICAgICBtX2NsaWVudC5ydW5PcGVuUGFuZWwoZnJhbWUsIGZpbGVDaG9vc2Vy
KTsKIH0KIAotdm9pZCBDaHJvbWU6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGZpbGVuYW1lcywgRmlsZUljb25Mb2FkZXIqIGxvYWRlcikKK3ZvaWQgQ2hyb21lOjpsb2Fk
SWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9h
ZGVyJiBsb2FkZXIpCiB7CiAgICAgbV9jbGllbnQubG9hZEljb25Gb3JGaWxlcyhmaWxlbmFtZXMs
IGxvYWRlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCBmMmYyYjBiMWMzYzBhOWYzYTI3NWQx
NGYwMmQzZGMxYThlZGE0ZWExLi5mMjM4NjBhMmJkYWYzYzI5M2UwMTkzYzJjYTQ5MmJhNmE4OGY3
YzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIFNhbXN1bmcgRWxlY3Ry
b25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMjgsOSArMjgsNyBAQAogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotI2lmbmRlZiBfX09CSkNf
XwotY2xhc3MgTlNWaWV3OwotI2VuZGlmCitPQkpDX0NMQVNTIE5TVmlldzsKICNlbmRpZgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNTksNyArMTU3LDcgQEAgcHVibGljOgogI2VuZGlmCiAK
ICAgICB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KTsK
LSAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNv
bkxvYWRlciopOworICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYsIEZpbGVJY29uTG9hZGVyJik7CiAKICAgICB2b2lkIGRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0
aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJikgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDQ1ZmVjNTk5ODA0ZTQzZTZlN2QxODlhMDhlNmNlYjgw
MjI5ZDM2ZmQuLjQyMWNkYTlhMTc2ZjlhY2EwYTQ2MTEwZGIyZmFhNDA3YTA2MjQwNjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTIgQXBwbGUsIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxl
LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICogQ29weXJpZ2h0IChD
KSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAt
Mjc1LDcgKzI3NSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwo
RnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgPSAwOwogICAgIC8vIEFzeW5jaHJvbm91
cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Igc3BlY2lmaWVkIGZpbGVuYW1lcy4KLSAgICB2
aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJ
Y29uTG9hZGVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXImKSA9IDA7CiAgICAgICAgIAogICAgIHZp
cnR1YWwgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgTm9kZSopIHsgfTsKICAgICB2aXJ0dWFs
IHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9kZSopIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IGNiNzhkMDZhN2Vm
MTQzZjI2ZWU1NDk2MzliMjQ5NTY1YzQ2YWEwNjguLmYwNTliNjAxNGM4NGI3ZmE0YTczNmY5NTRh
ODkxMzE0YWI3M2E1ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRl
bnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVu
dFNlY3VyaXR5UG9saWN5LmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02MjUsOCArNjI1LDggQEAgdm9pZCBDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIGVmZmVjdGl2ZVZpb2xh
dGVkRGlyZWMKIAogICAgIEFTU0VSVCghbV9mcmFtZSB8fCBlZmZlY3RpdmVWaW9sYXRlZERpcmVj
dGl2ZSA9PSBDb250ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1lczo6ZnJhbWVBbmNlc3Rv
cnMpOwogCi0gICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gaXM8RG9jdW1lbnQ+KG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCkgPyBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCkgOiAqbV9mcmFtZS0+ZG9jdW1lbnQoKTsKLSAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVu
dC5mcmFtZSgpOworICAgIGF1dG8mIGRvY3VtZW50ID0gaXM8RG9jdW1lbnQ+KG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCkgPyBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCkgOiAqbV9mcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50
LmZyYW1lKCk7CiAgICAgQVNTRVJUKCFtX2ZyYW1lIHx8IG1fZnJhbWUgPT0gZnJhbWUpOwogICAg
IGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKQEAgLTY0NiwxMyArNjQ2LDE0IEBAIHZvaWQg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZl
Y3RpdmVWaW9sYXRlZERpcmVjCiAgICAgU3RyaW5nIG9yaWdpbmFsUG9saWN5ID0gdmlvbGF0ZWRE
aXJlY3RpdmVMaXN0LmhlYWRlcigpOwogICAgIFN0cmluZyByZWZlcnJlciA9IGRvY3VtZW50LnJl
ZmVycmVyKCk7CiAgICAgQVNTRVJUKGRvY3VtZW50LmxvYWRlcigpKTsKKyAgICAvLyBGSVhNRTog
SXMgaXQgcG9saWN5IHRvIG5vdCB1c2UgdGhlIHN0YXR1cyBjb2RlIGZvciBIVFRQUywgb3IgaXMg
dGhhdCBhIGJ1Zz8KICAgICB1bnNpZ25lZCBzaG9ydCBzdGF0dXNDb2RlID0gZG9jdW1lbnQudXJs
KCkucHJvdG9jb2xJcygiaHR0cCIpICYmIGRvY3VtZW50LmxvYWRlcigpID8gZG9jdW1lbnQubG9h
ZGVyKCktPnJlc3BvbnNlKCkuaHR0cFN0YXR1c0NvZGUoKSA6IDA7CiAKICAgICBTdHJpbmcgc291
cmNlRmlsZTsKICAgICBpbnQgbGluZU51bWJlciA9IDA7CiAgICAgaW50IGNvbHVtbk51bWJlciA9
IDA7Ci0gICAgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3RhY2sgPSBjcmVhdGVTY3JpcHRDYWxs
U3RhY2soSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSwgMik7Ci0gICAgY29u
c3QgU2NyaXB0Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBzdGFjay0+Zmlyc3ROb25OYXRpdmVDYWxs
RnJhbWUoKTsKKyAgICBhdXRvIHN0YWNrID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTTWFpblRo
cmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCksIDIpOworICAgIGF1dG8qIGNhbGxGcmFtZSA9
IHN0YWNrLT5maXJzdE5vbk5hdGl2ZUNhbGxGcmFtZSgpOwogICAgIGlmIChjYWxsRnJhbWUgJiYg
Y2FsbEZyYW1lLT5saW5lTnVtYmVyKCkpIHsKICAgICAgICAgc291cmNlRmlsZSA9IHN0cmlwVVJM
Rm9yVXNlSW5SZXBvcnQoZG9jdW1lbnQsIFVSTChVUkwoKSwgY2FsbEZyYW1lLT5zb3VyY2VVUkwo
KSkpOwogICAgICAgICBsaW5lTnVtYmVyID0gY2FsbEZyYW1lLT5saW5lTnVtYmVyKCk7CkBAIC02
NjUsNyArNjY2LDcgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlv
bihjb25zdCBTdHJpbmcmIGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWMKICAgICBkb2N1bWVudC5lbnF1
ZXVlRG9jdW1lbnRFdmVudChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLnNlY3VyaXR5cG9saWN5dmlvbGF0aW9uRXZlbnQsIGNhbkJ1YmJsZSwgY2FuY2Vs
YWJsZSwgZG9jdW1lbnRVUkksIHJlZmVycmVyLCBibG9ja2VkVVJJLCB2aW9sYXRlZERpcmVjdGl2
ZVRleHQsIGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWN0aXZlLCBvcmlnaW5hbFBvbGljeSwgc291cmNl
RmlsZSwgc3RhdHVzQ29kZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKSk7CiAKICAgICAvLyAy
LiBTZW5kIHZpb2xhdGlvbiByZXBvcnQgKGlmIGFwcGxpY2FibGUpLgotICAgIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiByZXBvcnRVUklzID0gdmlvbGF0ZWREaXJlY3RpdmVMaXN0LnJlcG9ydFVSSXMo
KTsKKyAgICBhdXRvJiByZXBvcnRVUklzID0gdmlvbGF0ZWREaXJlY3RpdmVMaXN0LnJlcG9ydFVS
SXMoKTsKICAgICBpZiAocmVwb3J0VVJJcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIApA
QCAtNjkzLDEwICs2OTQsMTAgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZp
b2xhdGlvbihjb25zdCBTdHJpbmcmIGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWMKICAgICAgICAgY3Nw
UmVwb3J0LT5zZXRJbnRlZ2VyKEFTQ0lJTGl0ZXJhbCgiY29sdW1uLW51bWJlciIpLCBjb2x1bW5O
dW1iZXIpOwogICAgIH0KIAotICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlcG9ydE9iamVj
dCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgYXV0byByZXBvcnRPYmplY3QgPSBJ
bnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwogICAgIHJlcG9ydE9iamVjdC0+c2V0T2JqZWN0KEFT
Q0lJTGl0ZXJhbCgiY3NwLXJlcG9ydCIpLCBXVEZNb3ZlKGNzcFJlcG9ydCkpOwogCi0gICAgUmVm
UHRyPEZvcm1EYXRhPiByZXBvcnQgPSBGb3JtRGF0YTo6Y3JlYXRlKHJlcG9ydE9iamVjdC0+dG9K
U09OU3RyaW5nKCkudXRmOCgpKTsKKyAgICBhdXRvIHJlcG9ydCA9IEZvcm1EYXRhOjpjcmVhdGUo
cmVwb3J0T2JqZWN0LT50b0pTT05TdHJpbmcoKS51dGY4KCkpOwogICAgIGZvciAoY29uc3QgYXV0
byYgdXJsIDogcmVwb3J0VVJJcykKICAgICAgICAgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJl
cG9ydCgqZnJhbWUsIGlzPERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG9j
dW1lbnQuY29tcGxldGVVUkwodXJsKSA6IGRvY3VtZW50LmNvbXBsZXRlVVJMKHVybCwgYmxvY2tl
ZFVSTCksIHJlcG9ydC5jb3B5UmVmKCksIFZpb2xhdGlvblJlcG9ydFR5cGU6OkNvbnRlbnRTZWN1
cml0eVBvbGljeSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tCmlu
ZGV4IGIxMGYyZTllYjc4ZDU5ZTAyNmJiZGI0ZGZkNzBlNGRhNTNiOWE0NzAuLmY2MzVhZWQzYjk3
ZjAxMjlmZjllYTgzZDE0Yzc5MWJiZTc1ZjhiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVs
TWVkaWFFbGVtZW50Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI4LDI0ICsyOCwyNCBAQAogCiAjaWYgUExBVEZPUk0oSU9TKSB8fCAo
UExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQogCisjaW1w
b3J0ICJBdWRpb1RyYWNrTGlzdC5oIgorI2ltcG9ydCAiRXZlbnQuaCIKKyNpbXBvcnQgIkV2ZW50
TGlzdGVuZXIuaCIKKyNpbXBvcnQgIkV2ZW50TmFtZXMuaCIKKyNpbXBvcnQgIkhUTUxFbGVtZW50
LmgiCisjaW1wb3J0ICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAj
aW1wb3J0ICJNZWRpYUNvbnRyb2xzSG9zdC5oIgorI2ltcG9ydCAiUGFnZS5oIgorI2ltcG9ydCAi
UGFnZUdyb3VwLmgiCisjaW1wb3J0ICJTb2Z0TGlua2luZy5oIgorI2ltcG9ydCAiVGV4dFRyYWNr
TGlzdC5oIgorI2ltcG9ydCAiVGltZVJhbmdlcy5oIgogI2ltcG9ydCAiV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlLmgiCiAjaW1wb3J0IDxRdWFydHpDb3JlL0NvcmVBbmltYXRpb24uaD4KLSNp
bXBvcnQgPFdlYkNvcmUvQXVkaW9UcmFja0xpc3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvRXZlbnQu
aD4KLSNpbXBvcnQgPFdlYkNvcmUvRXZlbnRMaXN0ZW5lci5oPgotI2ltcG9ydCA8V2ViQ29yZS9F
dmVudE5hbWVzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0hUTUxFbGVtZW50Lmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgotI2lt
cG9ydCA8V2ViQ29yZS9QYWdlR3JvdXAuaD4KLSNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcu
aD4KLSNpbXBvcnQgPFdlYkNvcmUvVGV4dFRyYWNrTGlzdC5oPgotI2ltcG9ydCA8V2ViQ29yZS9U
aW1lUmFuZ2VzLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAotdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CituYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdlYlBsYXliYWNrU2Vzc2lv
bk1vZGVsTWVkaWFFbGVtZW50OjpXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudCgp
CiAgICAgOiBFdmVudExpc3RlbmVyKEV2ZW50TGlzdGVuZXI6OkNQUEV2ZW50TGlzdGVuZXJUeXBl
KQpAQCAtMjMzLDE3ICsyMzMsOCBAQCB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFF
bGVtZW50OjpzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IHNlbGVjdAogICAgIGlmICgh
bV9tZWRpYUVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVChzZWxlY3RlZEF1
ZGlvSW5kZXggPCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKLSAgICBBdWRp
b1RyYWNrKiBzZWxlY3RlZEF1ZGlvVHJhY2sgPSBudWxscHRyOwotCi0gICAgZm9yIChzaXplX3Qg
aW5kZXggPSAwOyBpbmRleCA8IG1fYXVkaW9UcmFja3NGb3JNZW51LnNpemUoKTsgKytpbmRleCkg
ewotICAgICAgICBhdXRvJiBhdWRpb1RyYWNrID0gbV9hdWRpb1RyYWNrc0Zvck1lbnVbaW5kZXhd
OwotICAgICAgICBhdWRpb1RyYWNrLT5zZXRFbmFibGVkKGluZGV4ID09IHN0YXRpY19jYXN0PHNp
emVfdD4oc2VsZWN0ZWRBdWRpb0luZGV4KSk7Ci0gICAgICAgIGlmIChhdWRpb1RyYWNrLT5lbmFi
bGVkKCkpCi0gICAgICAgICAgICBzZWxlY3RlZEF1ZGlvVHJhY2sgPSBhdWRpb1RyYWNrLmdldCgp
OwotICAgIH0KLQotICAgIG1fbWVkaWFFbGVtZW50LT5hdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQo
c2VsZWN0ZWRBdWRpb1RyYWNrKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IG1fYXVk
aW9UcmFja3NGb3JNZW51LnNpemUoKTsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgbV9hdWRpb1Ry
YWNrc0Zvck1lbnVbaV0tPnNldEVuYWJsZWQoaSA9PSBzZWxlY3RlZEF1ZGlvSW5kZXgpOwogfQog
CiB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RMZWdpYmxl
TWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCkBAIC0yNTEsOSArMjQyLDcgQEAgdm9pZCBXZWJQ
bGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9u
KHVpbnQ2NF90IGluZGUKICAgICBpZiAoIW1fbWVkaWFFbGVtZW50KQogICAgICAgICByZXR1cm47
CiAKLSAgICBBU1NFUlQoaW5kZXggPCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgp
KTsKLSAgICBUZXh0VHJhY2sqIHRleHRUcmFjayA9IG51bGxwdHI7Ci0KKyAgICBUZXh0VHJhY2sq
IHRleHRUcmFjazsKICAgICBpZiAoaW5kZXggPCBtX2xlZ2libGVUcmFja3NGb3JNZW51LnNpemUo
KSkKICAgICAgICAgdGV4dFRyYWNrID0gbV9sZWdpYmxlVHJhY2tzRm9yTWVudVtzdGF0aWNfY2Fz
dDxzaXplX3Q+KGluZGV4KV0uZ2V0KCk7CiAgICAgZWxzZQpAQCAtNDcxLDQgKzQ2MCw2IEBAIGJv
b2wgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OndpcmVsZXNzVmlkZW9QbGF5
YmFja0Rpc2FibGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9tZWRpYUVsZW1lbnQgJiYgbV9tZWRp
YUVsZW1lbnQtPm1lZGlhU2Vzc2lvbigpLndpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCpt
X21lZGlhRWxlbWVudCk7CiB9CiAKK30KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAppbmRleCAzYmM5N2VkNzAy
YWIwNGFkYmUxNDE1YWRmOWJlMzUyOThkZmFkZGRiLi43MTBkMTcwMjA1YTVhYzllMGRkMGY0OWJj
MzU2MzVlYThhMGUzMzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsOCArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCi0jaWZuZGVmIEF1ZGlvVHJhY2tQcml2YXRlX2gKLSNkZWZpbmUgQXVkaW9UcmFja1By
aXZhdGVfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlLmgiCiAK
QEAgLTM2LDcgKzM1LDcgQEAgY2xhc3MgQXVkaW9UcmFja1ByaXZhdGU7CiAKIGNsYXNzIEF1ZGlv
VHJhY2tQcml2YXRlQ2xpZW50IDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgewogcHVi
bGljOgotICAgIHZpcnR1YWwgdm9pZCBlbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrUHJpdmF0ZSos
IGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgPSAwOwog
fTsKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGUgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZSB7
CkBAIC01NSwyNiArNTQsMjIgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICBtX2VuYWJsZWQgPSBlbmFibGVkOwogICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAg
ICBtX2NsaWVudC0+ZW5hYmxlZENoYW5nZWQodGhpcywgZW5hYmxlZCk7Ci0gICAgfTsKLSAgICB2
aXJ0dWFsIGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZDsgfQorICAgICAg
ICAgICAgbV9jbGllbnQtPmVuYWJsZWRDaGFuZ2VkKGVuYWJsZWQpOworICAgIH0KKworICAgIGJv
b2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZDsgfQogCiAgICAgZW51bSBLaW5k
IHsgQWx0ZXJuYXRpdmUsIERlc2NyaXB0aW9uLCBNYWluLCBNYWluRGVzYywgVHJhbnNsYXRpb24s
IENvbW1lbnRhcnksIE5vbmUgfTsKICAgICB2aXJ0dWFsIEtpbmQga2luZCgpIGNvbnN0IHsgcmV0
dXJuIE5vbmU7IH0KIAogcHJvdGVjdGVkOgotICAgIEF1ZGlvVHJhY2tQcml2YXRlKCkKLSAgICAg
ICAgOiBtX2NsaWVudCgwKQotICAgICAgICAsIG1fZW5hYmxlZChmYWxzZSkKLSAgICB7Ci0gICAg
fQorICAgIEF1ZGlvVHJhY2tQcml2YXRlKCkgPSBkZWZhdWx0OwogCiBwcml2YXRlOgotICAgIEF1
ZGlvVHJhY2tQcml2YXRlQ2xpZW50KiBtX2NsaWVudDsKLSAgICBib29sIG1fZW5hYmxlZDsKKyAg
ICBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CisgICAgYm9v
bCBtX2VuYWJsZWQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oCmluZGV4IDc2MGY2Nzlk
MTM1MGE3MTkwMDQ0NzBhN2NiN2E3NDE3YThiYzQ5MTUuLjlhMTEwNzliYmU0MjgxNGU2NGEwNjYw
ZTJmYWZhMzkwMjE0MGEwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50LmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
Myw4ICsyMyw5IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUNsaWVudF9oCi0jZGVmaW5lIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnRf
aAorI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKICNpbmNsdWRlICJD
b2xvci5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2UuaCIKQEAgLTM0LDggKzM1LDYgQEAK
ICNpbmNsdWRlICJTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbi5oIgogI2VuZGlmCiAK
LSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTsKQEAgLTQzLDkgKzQyLDcgQEAgY2xhc3MgSVNPV2ViVlRU
Q3VlOwogCiBjbGFzcyBHZW5lcmljQ3VlRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPEdlbmVyaWND
dWVEYXRhPiB7CiBwdWJsaWM6Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0
YT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEdlbmVyaWNDdWVEYXRhKCkpOyB9Ci0g
ICAgdmlydHVhbCB+R2VuZXJpY0N1ZURhdGEoKSB7IH0KKyAgICBzdGF0aWMgUmVmPEdlbmVyaWND
dWVEYXRhPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEdlbmVyaWNDdWVEYXRhKTsg
fQogCiAgICAgTWVkaWFUaW1lIHN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRUaW1l
OyB9CiAgICAgdm9pZCBzZXRTdGFydFRpbWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydFRpbWUpIHsg
bV9zdGFydFRpbWUgPSBzdGFydFRpbWU7IH0KQEAgLTUzLDExICs1MCwxMSBAQCBwdWJsaWM6CiAg
ICAgTWVkaWFUaW1lIGVuZFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2VuZFRpbWU7IH0KICAgICB2
b2lkIHNldEVuZFRpbWUoY29uc3QgTWVkaWFUaW1lJiBlbmRUaW1lKSB7IG1fZW5kVGltZSA9IGVu
ZFRpbWU7IH0KIAotICAgIFN0cmluZyBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KLSAgICB2
b2lkIHNldElkKFN0cmluZyBpZCkgeyBtX2lkID0gaWQ7IH0KKyAgICBjb25zdCBTdHJpbmcmIGlk
KCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIHZvaWQgc2V0SWQoY29uc3QgU3RyaW5nJiBp
ZCkgeyBtX2lkID0gaWQ7IH0KIAotICAgIFN0cmluZyBjb250ZW50KCkgY29uc3QgeyByZXR1cm4g
bV9jb250ZW50OyB9Ci0gICAgdm9pZCBzZXRDb250ZW50KFN0cmluZyBjb250ZW50KSB7IG1fY29u
dGVudCA9IGNvbnRlbnQ7IH0KKyAgICBjb25zdCBTdHJpbmcmIGNvbnRlbnQoKSBjb25zdCB7IHJl
dHVybiBtX2NvbnRlbnQ7IH0KKyAgICB2b2lkIHNldENvbnRlbnQoY29uc3QgU3RyaW5nJiBjb250
ZW50KSB7IG1fY29udGVudCA9IGNvbnRlbnQ7IH0KIAogICAgIGRvdWJsZSBsaW5lKCkgY29uc3Qg
eyByZXR1cm4gbV9saW5lOyB9CiAgICAgdm9pZCBzZXRMaW5lKGRvdWJsZSBsaW5lKSB7IG1fbGlu
ZSA9IGxpbmU7IH0KQEAgLTY4LDE3ICs2NSwxMiBAQCBwdWJsaWM6CiAgICAgZG91YmxlIHNpemUo
KSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KICAgICB2b2lkIHNldFNpemUoZG91YmxlIHNpemUp
IHsgbV9zaXplID0gc2l6ZTsgfQogCi0gICAgZW51bSBBbGlnbm1lbnQgewotICAgICAgICBOb25l
LAotICAgICAgICBTdGFydCwKLSAgICAgICAgTWlkZGxlLAotICAgICAgICBFbmQKLSAgICB9Owor
ICAgIGVudW0gQWxpZ25tZW50IHsgTm9uZSwgU3RhcnQsIE1pZGRsZSwgRW5kIH07CiAgICAgQWxp
Z25tZW50IGFsaWduKCkgY29uc3QgeyByZXR1cm4gbV9hbGlnbjsgfQogICAgIHZvaWQgc2V0QWxp
Z24oQWxpZ25tZW50IGFsaWduKSB7IG1fYWxpZ24gPSBhbGlnbjsgfQogCi0gICAgU3RyaW5nIGZv
bnROYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mb250TmFtZTsgfQotICAgIHZvaWQgc2V0Rm9udE5h
bWUoU3RyaW5nIGZvbnROYW1lKSB7IG1fZm9udE5hbWUgPSBmb250TmFtZTsgfQorICAgIGNvbnN0
IFN0cmluZyYgZm9udE5hbWUoKSBjb25zdCB7IHJldHVybiBtX2ZvbnROYW1lOyB9CisgICAgdm9p
ZCBzZXRGb250TmFtZShjb25zdCBTdHJpbmcmIGZvbnROYW1lKSB7IG1fZm9udE5hbWUgPSBmb250
TmFtZTsgfQogCiAgICAgZG91YmxlIGJhc2VGb250U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFz
ZUZvbnRTaXplOyB9CiAgICAgdm9pZCBzZXRCYXNlRm9udFNpemUoZG91YmxlIGJhc2VGb250U2l6
ZSkgeyBtX2Jhc2VGb250U2l6ZSA9IGJhc2VGb250U2l6ZTsgfQpAQCAtOTUsNDMgKzg3LDMwIEBA
IHB1YmxpYzoKICAgICBjb25zdCBDb2xvciYgaGlnaGxpZ2h0Q29sb3IoKSBjb25zdCB7IHJldHVy
biBtX2hpZ2hsaWdodENvbG9yOyB9CiAgICAgdm9pZCBzZXRIaWdobGlnaHRDb2xvcihjb25zdCBD
b2xvciYgY29sb3IpIHsgbV9oaWdobGlnaHRDb2xvciA9IGNvbG9yOyB9CiAKLSAgICBlbnVtIFN0
YXR1cyB7Ci0gICAgICAgIFVuaW5pdGlhbGl6ZWQsCi0gICAgICAgIFBhcnRpYWwsCi0gICAgICAg
IENvbXBsZXRlLAotICAgIH07CisgICAgZW51bSBTdGF0dXMgeyBVbmluaXRpYWxpemVkLCBQYXJ0
aWFsLCBDb21wbGV0ZSB9OwogICAgIFN0YXR1cyBzdGF0dXMoKSB7IHJldHVybiBtX3N0YXR1czsg
fQogICAgIHZvaWQgc2V0U3RhdHVzKFN0YXR1cyBzdGF0dXMpIHsgbV9zdGF0dXMgPSBzdGF0dXM7
IH0KIAogICAgIGJvb2wgZG9lc0V4dGVuZEN1ZURhdGEoY29uc3QgR2VuZXJpY0N1ZURhdGEmKSBj
b25zdDsKIAogcHJpdmF0ZToKLSAgICBHZW5lcmljQ3VlRGF0YSgpCi0gICAgICAgIDogbV9saW5l
KC0xKQotICAgICAgICAsIG1fcG9zaXRpb24oLTEpCi0gICAgICAgICwgbV9zaXplKC0xKQotICAg
ICAgICAsIG1fYWxpZ24oTm9uZSkKLSAgICAgICAgLCBtX2Jhc2VGb250U2l6ZSgwKQotICAgICAg
ICAsIG1fcmVsYXRpdmVGb250U2l6ZSgwKQotICAgICAgICAsIG1fc3RhdHVzKFVuaW5pdGlhbGl6
ZWQpCi0gICAgewotICAgIH0KKyAgICBHZW5lcmljQ3VlRGF0YSgpID0gZGVmYXVsdDsKIAogICAg
IE1lZGlhVGltZSBtX3N0YXJ0VGltZTsKICAgICBNZWRpYVRpbWUgbV9lbmRUaW1lOwogICAgIFN0
cmluZyBtX2lkOwogICAgIFN0cmluZyBtX2NvbnRlbnQ7Ci0gICAgZG91YmxlIG1fbGluZTsKLSAg
ICBkb3VibGUgbV9wb3NpdGlvbjsKLSAgICBkb3VibGUgbV9zaXplOwotICAgIEFsaWdubWVudCBt
X2FsaWduOworICAgIGRvdWJsZSBtX2xpbmUgeyAtMSB9OworICAgIGRvdWJsZSBtX3Bvc2l0aW9u
IHsgLTEgfTsKKyAgICBkb3VibGUgbV9zaXplIHsgLTEgfTsKKyAgICBBbGlnbm1lbnQgbV9hbGln
biB7IE5vbmUgfTsKICAgICBTdHJpbmcgbV9mb250TmFtZTsKLSAgICBkb3VibGUgbV9iYXNlRm9u
dFNpemU7Ci0gICAgZG91YmxlIG1fcmVsYXRpdmVGb250U2l6ZTsKKyAgICBkb3VibGUgbV9iYXNl
Rm9udFNpemUgeyAwIH07CisgICAgZG91YmxlIG1fcmVsYXRpdmVGb250U2l6ZSB7IDAgfTsKICAg
ICBDb2xvciBtX2ZvcmVncm91bmRDb2xvcjsKICAgICBDb2xvciBtX2JhY2tncm91bmRDb2xvcjsK
ICAgICBDb2xvciBtX2hpZ2hsaWdodENvbG9yOwotICAgIFN0YXR1cyBtX3N0YXR1czsKKyAgICBT
dGF0dXMgbV9zdGF0dXMgeyBVbmluaXRpYWxpemVkIH07CiB9OwogCiBpbmxpbmUgYm9vbCBHZW5l
cmljQ3VlRGF0YTo6ZG9lc0V4dGVuZEN1ZURhdGEoY29uc3QgR2VuZXJpY0N1ZURhdGEmIG90aGVy
KSBjb25zdApAQCAtMTY4LDI0ICsxNDcsMjMgQEAgY2xhc3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50KCkgeyB9CiAKLSAgICB2aXJ0dWFs
IHZvaWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1l
JiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNv
bnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpID0gMDsKIAogI2lmIEVO
QUJMRShEQVRBQ1VFX1ZBTFVFKQotICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhQ3VlKEluYmFuZFRl
eHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUm
IGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4sIGNvbnN0
IFN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRGF0YUN1ZShJbmJhbmRUZXh0
VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBl
bmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+KSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHJlbW92ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNv
bnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBh
ZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBS
ZWY8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+JiYsIGNvbnN0IFN0cmluZyYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0
LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24m
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBz
dGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0
aW9uJikgPSAwOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkR2VuZXJpY0N1ZShJbmJh
bmRUZXh0VHJhY2tQcml2YXRlKiwgUGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0YT4pID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwg
R2VuZXJpY0N1ZURhdGEqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUdlbmVyaWNDdWUo
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBhZGRHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAwOwogCi0gICAgdmlydHVh
bCB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgU3Ry
aW5nJiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VX
ZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1
bnNpZ25lZCBsZW5ndGgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRh
KEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBJU09XZWJWVFRDdWUmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihTdHJpbmcmJikgeyBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3Qg
Y2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBhcnNl
V2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUmKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKaW5kZXggMDhlNjJjMzQ4
NjJhZGQ5NGZhMDg0YjQyNWM1ODdhYTRmYmQzNjRiZC4uN2FjNWRkMjc1YmFhNTdiMGFhZThiZTU1
MDg3ODc2ZmYxMTkxZTBiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENv
cHlyaWdodCAoQykgMjAxMy0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI4LDIxICsyOCwxNyBAQAog
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCi0jaWZuZGVmIFNvdXJjZUJ1ZmZl
clByaXZhdGVfaAotI2RlZmluZSBTb3VyY2VCdWZmZXJQcml2YXRlX2gKKworI3ByYWdtYSBvbmNl
CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIK
LSNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVk
aWFTYW1wbGU7CiBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OwotY2xhc3MgVGltZVJh
bmdlczsKIAogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFNv
dXJjZUJ1ZmZlclByaXZhdGU+IHsKIHB1YmxpYzoKQEAgLTU4LDE3ICs1NCwxNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0
YXRlKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZmx1c2goQXRvbWljU3RyaW5nKSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiwgQXRv
bWljU3RyaW5nKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0
b21pY1N0cmluZykgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2goY29u
c3QgQXRvbWljU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGVucXVldWVTYW1wbGUoUmVm
PE1lZGlhU2FtcGxlPiYmLCBjb25zdCBBdG9taWNTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYpIHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sKSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgc3RvcEFza2luZ0Zvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmlu
ZykgeyB9CisgICAgdmlydHVhbCB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhjb25zdCBB
dG9taWNTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5
Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgeyB9CiAKLSAgICB2aXJ0dWFsIFZl
Y3RvcjxTdHJpbmc+IGVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoQXRvbWljU3RyaW5nKSB7IHJl
dHVybiB7fTsgfQorICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gZW5xdWV1ZWRTYW1wbGVzRm9y
VHJhY2tJRChjb25zdCBBdG9taWNTdHJpbmcmKSB7IHJldHVybiB7IH07IH0KIH07CiAKIH0KIAog
I2VuZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaAppbmRleCAyOTRhZDY1ZjQ2MzM1
ZGYwNjkxNTNmNGFjYjM5NzAzYmYxYzlmMGYyLi4xODA4N2Q1ZTNkMjZjYTExZGJhMGY2ODczMDBk
ODY5Njg4MGI1Y2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDEyICszMiwxMSBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGU7CiBjbGFz
cyBBdWRpb1RyYWNrUHJpdmF0ZTsKLWNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOwogY2xhc3MgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZTsKIGNsYXNzIE1lZGlhU2FtcGxlOwogY2xhc3MgTWVkaWFEZXNj
cmlwdGlvbjsKK2NsYXNzIFZpZGVvVHJhY2tQcml2YXRlOwogCiBjbGFzcyBTb3VyY2VCdWZmZXJQ
cml2YXRlQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTY0LDIzICs2MywxOSBAQCBwdWJsaWM6CiAgICAg
ICAgIH07CiAgICAgICAgIFZlY3RvcjxUZXh0VHJhY2tJbmZvcm1hdGlvbj4gdGV4dFRyYWNrczsK
ICAgICB9OwotICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUlu
aXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmZXJQcml2YXRlKiwgY29uc3QgSW5pdGlhbGl6
YXRpb25TZWdtZW50JikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRl
RGlkUmVjZWl2ZVNhbXBsZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgTWVkaWFTYW1wbGUmKSA9IDA7
Ci0gICAgdmlydHVhbCBib29sIHNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyhjb25zdCBTb3Vy
Y2VCdWZmZXJQcml2YXRlKikgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBzb3VyY2VCdWZm
ZXJQcml2YXRlSGFzVmlkZW8oY29uc3QgU291cmNlQnVmZmVyUHJpdmF0ZSopIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXph
dGlvblNlZ21lbnQoY29uc3QgSW5pdGlhbGl6YXRpb25TZWdtZW50JikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYp
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8oKSBj
b25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZEJlY29t
ZVJlYWR5Rm9yTW9yZVNhbXBsZXMoU291cmNlQnVmZmVyUHJpdmF0ZSosIEF0b21pY1N0cmluZyB0
cmFja0lEKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNv
bWVSZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkgPSAwOwog
Ci0gICAgdmlydHVhbCBNZWRpYVRpbWUgc291cmNlQnVmZmVyUHJpdmF0ZUZhc3RTZWVrVGltZUZv
ck1lZGlhVGltZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBj
b25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmKSB7IHJldHVybiB0aW1lOyB9Ci0gICAg
dmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKFNvdXJjZUJ1ZmZlclBy
aXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmKSB7IH07CisgICAgdmlydHVhbCBNZWRpYVRpbWUgc291
cmNlQnVmZmVyUHJpdmF0ZUZhc3RTZWVrVGltZUZvck1lZGlhVGltZShjb25zdCBNZWRpYVRpbWUm
IHRpbWUsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIHsgcmV0dXJuIHRpbWU7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZVNlZWtUb1RpbWUoY29uc3Qg
TWVkaWFUaW1lJikgeyB9OwogCi0gICAgZW51bSBBcHBlbmRSZXN1bHQgewotICAgICAgICBBcHBl
bmRTdWNjZWVkZWQsCi0gICAgICAgIFJlYWRTdHJlYW1GYWlsZWQsCi0gICAgICAgIFBhcnNpbmdG
YWlsZWQsCi0gICAgfTsKLSAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVu
ZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBcHBlbmRSZXN1bHQpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihT
b3VyY2VCdWZmZXJQcml2YXRlKiwgaW50IGVycm9jQ29kZSkgPSAwOworICAgIGVudW0gQXBwZW5k
UmVzdWx0IHsgQXBwZW5kU3VjY2VlZGVkLCBSZWFkU3RyZWFtRmFpbGVkLCBQYXJzaW5nRmFpbGVk
IH07CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShB
cHBlbmRSZXN1bHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURp
ZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihpbnQgZXJyb3JDb2RlKSA9IDA7CiB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgK
aW5kZXggNzMxYWE4ZDkzNmE1YWFlYTBkMWMwM2FhNjhhMmFjNmIyYjJiOWU2NC4uMGIwMGNhNWY2
NjE1NDk2Mjg1MWMzZWM3ZjkxNjgzMDQ4Yjg2YmY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzIENhYmxlIFRlbGV2aXNpb24gTGFicywgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjUsMzQgKzI1LDI5IEBA
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgVHJhY2tQcml2YXRlQmFzZV9oCi0jZGVm
aW5lIFRyYWNrUHJpdmF0ZUJhc2VfaAorI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCiAKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRp
bWUuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCi0jaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFRyYWNrUHJpdmF0
ZUJhc2U7Ci0KIGNsYXNzIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgewogcHVibGljOgogICAgIHZp
cnR1YWwgflRyYWNrUHJpdmF0ZUJhc2VDbGllbnQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgaWRD
aGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWlj
U3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2
YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgd2ls
bFJlbW92ZShUcmFja1ByaXZhdGVCYXNlKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBpZENoYW5n
ZWQoY29uc3QgQXRvbWljU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsYWJlbENoYW5n
ZWQoY29uc3QgQXRvbWljU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsYW5ndWFnZUNo
YW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVt
b3ZlKCkgPSAwOwogfTsKIAogY2xhc3MgVHJhY2tQcml2YXRlQmFzZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFRyYWNrUHJpdmF0ZUJhc2U+IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUcmFja1By
aXZhdGVCYXNlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoVHJhY2tQcml2YXRlQmFzZSk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6Ci0gICAgdmlydHVhbCB+VHJhY2tQcml2YXRlQmFzZSgpIHsgfQorICAgIHZpcnR1YWwg
flRyYWNrUHJpdmF0ZUJhc2UoKSA9IGRlZmF1bHQ7CiAKICAgICB2aXJ0dWFsIFRyYWNrUHJpdmF0
ZUJhc2VDbGllbnQqIGNsaWVudCgpIGNvbnN0ID0gMDsKIApAQCAtNjMsMTggKzU4LDE3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGludCB0cmFja0luZGV4KCkgY29uc3QgeyByZXR1cm4gMDsgfQog
CiAgICAgdmlydHVhbCBNZWRpYVRpbWUgc3RhcnRUaW1lVmFyaWFuY2UoKSBjb25zdCB7IHJldHVy
biBNZWRpYVRpbWU6Onplcm9UaW1lKCk7IH0KLSAgICAKKwogICAgIHZvaWQgd2lsbEJlUmVtb3Zl
ZCgpCiAgICAgewotICAgICAgICBpZiAoVHJhY2tQcml2YXRlQmFzZUNsaWVudCogY2xpZW50ID0g
dGhpcy0+Y2xpZW50KCkpCi0gICAgICAgICAgICBjbGllbnQtPndpbGxSZW1vdmUodGhpcyk7Cisg
ICAgICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKKyAgICAgICAgICAgIGNs
aWVudC0+d2lsbFJlbW92ZSgpOwogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFRyYWNrUHJpdmF0
ZUJhc2UoKSB7IH0KKyAgICBUcmFja1ByaXZhdGVCYXNlKCkgPSBkZWZhdWx0OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKaW5kZXggZmVkMzQ5
YTdiMzcyOGY1MDI3YzgyZTdhMTBjMzUyN2QwZjU5MzVkZC4uZjk0NTMzNTY3ZmYyYmIzMDU2OGU4
MTEzZDQ3NWQ4ZTg2MTUwNzFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDI5ICsyMywyMSBAQAogICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCi0jaWZuZGVmIFZpZGVvVHJhY2tQcml2YXRlX2gKLSNkZWZpbmUgVmlkZW9U
cmFja1ByaXZhdGVfaAotCi0jaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZS5oIgorI3ByYWdtYSBv
bmNlCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKKyNp
bmNsdWRlICJUcmFja1ByaXZhdGVCYXNlLmgiCiAKLWNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOwor
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1
YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQg
c2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2tQcml2YXRlKiwgYm9vbCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzZWxlY3RlZENoYW5nZWQoYm9vbCkgPSAwOwogfTsKIAogY2xhc3MgVmlkZW9UcmFj
a1ByaXZhdGUgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+IGNyZWF0ZSgpCi0gICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFZpZGVvVHJhY2tQcml2YXRlKCkpOwotICAgIH0KLQogICAgIHZv
aWQgc2V0Q2xpZW50KFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQg
PSBjbGllbnQ7IH0KICAgICBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9jbGllbnQ7IH0KIApAQCAtNTUsMjYgKzQ3LDIxIEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9zZWxlY3RlZCA9IHNlbGVjdGVkOwog
ICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+c2VsZWN0ZWRDaGFu
Z2VkKHRoaXMsIG1fc2VsZWN0ZWQpOwotICAgIH07CisgICAgICAgICAgICBtX2NsaWVudC0+c2Vs
ZWN0ZWRDaGFuZ2VkKG1fc2VsZWN0ZWQpOworICAgIH0KICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0
ZWQoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGVkOyB9CiAKICAgICBlbnVtIEtpbmQgeyBBbHRl
cm5hdGl2ZSwgQ2FwdGlvbnMsIE1haW4sIFNpZ24sIFN1YnRpdGxlcywgQ29tbWVudGFyeSwgTm9u
ZSB9OwogICAgIHZpcnR1YWwgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gTm9uZTsgfQogCiBw
cm90ZWN0ZWQ6Ci0gICAgVmlkZW9UcmFja1ByaXZhdGUoKQotICAgICAgICA6IG1fY2xpZW50KDAp
Ci0gICAgICAgICwgbV9zZWxlY3RlZChmYWxzZSkKLSAgICB7Ci0gICAgfQorICAgIFZpZGVvVHJh
Y2tQcml2YXRlKCkgPSBkZWZhdWx0OwogCiBwcml2YXRlOgotICAgIFZpZGVvVHJhY2tQcml2YXRl
Q2xpZW50KiBtX2NsaWVudDsKLSAgICBib29sIG1fc2VsZWN0ZWQ7CisgICAgVmlkZW9UcmFja1By
aXZhdGVDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OworICAgIGJvb2wgbV9zZWxlY3RlZCB7
IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgotI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vQXVkaW9UcmFja1ByaXZhdGVBVkYuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9BdWRpb1RyYWNrUHJpdmF0ZUFWRi5oCmluZGV4IDEzMWZkNTFiNGMx
NjkzNDA4YjRmOGE0YjU5NmViMjZmYmQ2ZDI5NmIuLjE5YjU2MGJjY2JhNTgxOTVjZTQ1ZWY2ZWY4
MWM4ZGNkZWMyOTViYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9BdWRpb1RyYWNrUHJpdmF0ZUFWRi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1RyYWNrUHJpdmF0ZUFWRi5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
Ci0jaWZuZGVmIEF1ZGlvVHJhY2tQcml2YXRlQVZGX2gKLSNkZWZpbmUgQXVkaW9UcmFja1ByaXZh
dGVBVkZfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKQEAgLTM1
LDcgKzM0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVB
VkYgOiBwdWJsaWMgQXVkaW9UcmFja1ByaXZhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KEF1ZGlvVHJhY2tQcml2YXRlQVZGKQogcHVibGljOgotCiAgICAgdmlydHVhbCBLaW5kIGtpbmQo
KSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0KICAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBpZCgp
IGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KICAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBsYWJlbCgp
IGNvbnN0IHsgcmV0dXJuIG1fbGFiZWw7IH0KQEAgLTQ0LDI2ICs0MiwyMCBAQCBwdWJsaWM6CiAK
IHByb3RlY3RlZDoKICAgICB2b2lkIHNldEtpbmQoS2luZCBraW5kKSB7IG1fa2luZCA9IGtpbmQ7
IH0KLSAgICB2b2lkIHNldElkKEF0b21pY1N0cmluZyBuZXdJZCkgeyBtX2lkID0gbmV3SWQ7IH0K
LSAgICB2b2lkIHNldExhYmVsKEF0b21pY1N0cmluZyBsYWJlbCkgeyBtX2xhYmVsID0gbGFiZWw7
IH0KLSAgICB2b2lkIHNldExhbmd1YWdlKEF0b21pY1N0cmluZyBsYW5ndWFnZSkgeyBtX2xhbmd1
YWdlID0gbGFuZ3VhZ2U7IH0KKyAgICB2b2lkIHNldElkKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3
SWQpIHsgbV9pZCA9IG5ld0lkOyB9CisgICAgdm9pZCBzZXRMYWJlbChjb25zdCBBdG9taWNTdHJp
bmcmIGxhYmVsKSB7IG1fbGFiZWwgPSBsYWJlbDsgfQorICAgIHZvaWQgc2V0TGFuZ3VhZ2UoY29u
c3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkgeyBtX2xhbmd1YWdlID0gbGFuZ3VhZ2U7IH0KICAg
ICB2b2lkIHNldFRyYWNrSW5kZXgoaW50IGluZGV4KSB7IG1faW5kZXggPSBpbmRleDsgfQogCi0g
ICAgS2luZCBtX2tpbmQ7CisgICAgS2luZCBtX2tpbmQgeyBOb25lIH07CiAgICAgQXRvbWljU3Ry
aW5nIG1faWQ7CiAgICAgQXRvbWljU3RyaW5nIG1fbGFiZWw7CiAgICAgQXRvbWljU3RyaW5nIG1f
bGFuZ3VhZ2U7Ci0gICAgaW50IG1faW5kZXg7CisgICAgaW50IG1faW5kZXggeyAwIH07CiAKLSAg
ICBBdWRpb1RyYWNrUHJpdmF0ZUFWRigpCi0gICAgICAgIDogbV9raW5kKE5vbmUpCi0gICAgICAg
ICwgbV9pbmRleCgwKQotICAgIHsKLSAgICB9CisgICAgQXVkaW9UcmFja1ByaXZhdGVBVkYoKSA9
IGRlZmF1bHQ7CiB9OwogCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU9fVFJBQ0spCi0KLSNl
bmRpZiAvLyBBdWRpb1RyYWNrUHJpdmF0ZUFWRl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQ
cml2YXRlQVZGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9JbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuY3BwCmluZGV4IDljNmNhODdi
MGMwZjkwMDY3MTE3ZjQ0MmQzZTY2ZDk0MTMzYWYxNDAuLmI0OWJkMWUzN2YwYzdkMDZhOWViMzhi
Y2QwYzFjM2MwYmMzODc5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJh
bmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsOSArMjQsOSBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmJhbmRNZXRhZGF0YVRleHRUcmFj
a1ByaXZhdGVBVkYuaCIKIAogI2lmIEVOQUJMRShWSURFTykgJiYgRU5BQkxFKERBVEFDVUVfVkFM
VUUpICYmIChVU0UoQVZGT1VOREFUSU9OKSB8fCBQTEFURk9STShJT1MpKQotI2luY2x1ZGUgIklu
YmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5oIgogCiAjaW5jbHVkZSAiSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTU0LDYgKzU0
LDcgQEAgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjp+SW5iYW5kTWV0YWRhdGFU
ZXh0VHJhY2tQcml2YXRlQVZGKCkKIH0KIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQorCiB2
b2lkIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6YWRkRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxp
emVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcHJwQ3VlRGF0YSwgY29uc3QgU3RyaW5nJiB0eXBl
KQogewogICAgIEFTU0VSVChjdWVGb3JtYXQoKSA9PSBEYXRhKTsKQEAgLTY2LDcgKzY3LDcgQEAg
dm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OmFkZERhdGFDdWUoY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QKICAgICBtX2N1cnJlbnRDdWVTdGFydFRpbWUgPSBzdGFy
dDsKICAgICBpZiAoZW5kLmlzUG9zaXRpdmVJbmZpbml0ZSgpKQogICAgICAgICBtX2luY29tcGxl
dGVDdWVzLmFwcGVuZChJbmNvbXBsZXRlTWV0YURhdGFDdWUgeyBjdWVEYXRhLmdldCgpLCBzdGFy
dCB9KTsKLSAgICBjbGllbnQoKS0+YWRkRGF0YUN1ZSh0aGlzLCBzdGFydCwgZW5kLCBjdWVEYXRh
LCB0eXBlKTsKKyAgICBjbGllbnQoKS0+YWRkRGF0YUN1ZShzdGFydCwgZW5kLCBjdWVEYXRhLnJl
bGVhc2VOb25OdWxsKCksIHR5cGUpOwogfQogCiB2b2lkIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNr
UHJpdmF0ZUFWRjo6dXBkYXRlUGVuZGluZ0N1ZUVuZFRpbWVzKGNvbnN0IE1lZGlhVGltZSYgdGlt
ZSkKQEAgLTc3LDcgKzc4LDcgQEAgdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVB
VkY6OnVwZGF0ZVBlbmRpbmdDdWVFbmRUaW1lcyhjb25zdCBNZWRpYVRpbWUKICAgICAgICAgaWYg
KGNsaWVudCgpKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIHBhcnRpYWxDdWUgOiBtX2luY29t
cGxldGVDdWVzKSB7CiAgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kTWV0YWRhdGFU
ZXh0VHJhY2tQcml2YXRlQVZGOjp1cGRhdGVQZW5kaW5nQ3VlRW5kVGltZXMoJXApIC0gdXBkYXRp
bmcgY3VlOiBzdGFydD0lcywgZW5kPSVzIiwgdGhpcywgdG9TdHJpbmcocGFydGlhbEN1ZS5zdGFy
dFRpbWUpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCkpOwotICAg
ICAgICAgICAgICAgIGNsaWVudCgpLT51cGRhdGVEYXRhQ3VlKHRoaXMsIHBhcnRpYWxDdWUuc3Rh
cnRUaW1lLCB0aW1lLCBwYXJ0aWFsQ3VlLmN1ZURhdGEpOworICAgICAgICAgICAgICAgIGNsaWVu
dCgpLT51cGRhdGVEYXRhQ3VlKHBhcnRpYWxDdWUuc3RhcnRUaW1lLCB0aW1lLCAqcGFydGlhbEN1
ZS5jdWVEYXRhKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZQpAQCAtODYs
NiArODcsNyBAQCB2b2lkIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6dXBkYXRl
UGVuZGluZ0N1ZUVuZFRpbWVzKGNvbnN0IE1lZGlhVGltZQogICAgIG1faW5jb21wbGV0ZUN1ZXMu
cmVzaXplKDApOwogICAgIG1fY3VycmVudEN1ZVN0YXJ0VGltZSA9IE1lZGlhVGltZTo6emVyb1Rp
bWUoKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRl
QVZGOjpmbHVzaFBhcnRpYWxDdWVzKCkKQEAgLTk1LDcgKzk3LDcgQEAgdm9pZCBJbmJhbmRNZXRh
ZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OmZsdXNoUGFydGlhbEN1ZXMoKQogCiAgICAgaWYgKGNs
aWVudCgpKSB7CiAgICAgICAgIGZvciAoYXV0byYgcGFydGlhbEN1ZSA6IG1faW5jb21wbGV0ZUN1
ZXMpCi0gICAgICAgICAgICBjbGllbnQoKS0+cmVtb3ZlRGF0YUN1ZSh0aGlzLCBwYXJ0aWFsQ3Vl
LnN0YXJ0VGltZSwgTWVkaWFUaW1lOjpwb3NpdGl2ZUluZmluaXRlVGltZSgpLCBwYXJ0aWFsQ3Vl
LmN1ZURhdGEpOworICAgICAgICAgICAgY2xpZW50KCktPnJlbW92ZURhdGFDdWUocGFydGlhbEN1
ZS5zdGFydFRpbWUsIE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKSwgKnBhcnRpYWxD
dWUuY3VlRGF0YSk7CiAgICAgfQogCiAgICAgbV9pbmNvbXBsZXRlQ3Vlcy5yZXNpemUoMCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKaW5kZXgg
M2I3YmRhODY2ZDJlNjBkOTMyZWI4ZTYwOTZlZjhhOTMzMzdjNjZjMC4uOTU5NmY4Y2EzYzE3ZTQ1
ZGZjZTE4ZDdhZDAyNGUwYzUxZDUyZDBkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJh
bmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTItMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDExICsyNCwxMSBAQAogICovCiAKICNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmgi
CiAKICNpZiBFTkFCTEUoVklERU8pICYmIChVU0UoQVZGT1VOREFUSU9OKSB8fCBQTEFURk9STShJ
T1MpKQogCi0jaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oIgotCisjaW5jbHVk
ZSAiQ29yZU1lZGlhU29mdExpbmsuaCIKICNpbmNsdWRlICJJU09WVFRDdWUuaCIKICNpbmNsdWRl
ICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpA
QCAtNDMsMTIgKzQzLDYgQEAKICNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5o
PgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCi0jaW5jbHVkZSAiQ29yZU1l
ZGlhU29mdExpbmsuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBBcnJheUJ1ZmZlcjsKLX0K
LQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBBVkZJbmJhbmRUcmFja1BhcmVudDo6fkFWRkluYmFu
ZFRyYWNrUGFyZW50KCkKQEAgLTMyMywzMyArMzE3LDMzIEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWRjo6cHJvY2Vzc0F0dHJpYnV0ZWRTdHJpbmdzKENGQXJyYXlSZWYgYXR0cmlidXRl
ZFN0CiB7CiAgICAgTE9HKE1lZGlhLCAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vz
c0N1ZSAtICVsaSBjdWVzIGF0IHRpbWUgJXNcbiIsIGF0dHJpYnV0ZWRTdHJpbmdzID8gQ0ZBcnJh
eUdldENvdW50KGF0dHJpYnV0ZWRTdHJpbmdzKSA6IDAsIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5k
YXRhKCkpOwogCi0gICAgVmVjdG9yPFJlZlB0cjxHZW5lcmljQ3VlRGF0YT4+IGFycml2aW5nQ3Vl
czsKKyAgICBWZWN0b3I8UmVmPEdlbmVyaWNDdWVEYXRhPj4gYXJyaXZpbmdDdWVzOwogICAgIGlm
IChhdHRyaWJ1dGVkU3RyaW5ncykgewogICAgICAgICBDRkluZGV4IGNvdW50ID0gQ0ZBcnJheUdl
dENvdW50KGF0dHJpYnV0ZWRTdHJpbmdzKTsKICAgICAgICAgZm9yIChDRkluZGV4IGkgPSAwOyBp
IDwgY291bnQ7IGkrKykgewogICAgICAgICAgICAgQ0ZBdHRyaWJ1dGVkU3RyaW5nUmVmIGF0dHJp
YnV0ZWRTdHJpbmcgPSBzdGF0aWNfY2FzdDxDRkF0dHJpYnV0ZWRTdHJpbmdSZWY+KENGQXJyYXlH
ZXRWYWx1ZUF0SW5kZXgoYXR0cmlidXRlZFN0cmluZ3MsIGkpKTsKLSAgICAgICAgICAgIAorCiAg
ICAgICAgICAgICBpZiAoIWF0dHJpYnV0ZWRTdHJpbmcgfHwgIUNGQXR0cmlidXRlZFN0cmluZ0dl
dExlbmd0aChhdHRyaWJ1dGVkU3RyaW5nKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgICAgIAotICAgICAgICAgICAgUmVmUHRyPEdlbmVyaWNDdWVEYXRhPiBjdWVEYXRhID0g
R2VuZXJpY0N1ZURhdGE6OmNyZWF0ZSgpOwotICAgICAgICAgICAgcHJvY2Vzc0N1ZUF0dHJpYnV0
ZXMoYXR0cmlidXRlZFN0cmluZywgKmN1ZURhdGEuZ2V0KCkpOworCisgICAgICAgICAgICBhdXRv
IGN1ZURhdGEgPSBHZW5lcmljQ3VlRGF0YTo6Y3JlYXRlKCk7CisgICAgICAgICAgICBwcm9jZXNz
Q3VlQXR0cmlidXRlcyhhdHRyaWJ1dGVkU3RyaW5nLCBjdWVEYXRhLmdldCgpKTsKICAgICAgICAg
ICAgIGlmICghY3VlRGF0YS0+Y29udGVudCgpLmxlbmd0aCgpKQogICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBhcnJpdmluZ0N1ZXMuYXBwZW5kKGN1
ZURhdGEpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIGN1ZURhdGEtPnNldFN0YXJ0VGlt
ZSh0aW1lKTsKICAgICAgICAgICAgIGN1ZURhdGEtPnNldEVuZFRpbWUoTWVkaWFUaW1lOjpwb3Np
dGl2ZUluZmluaXRlVGltZSgpKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICAvLyBBVkZv
dW5kYXRpb24gY3VlICJwb3NpdGlvbiIgaXMgdG8gdGhlIGNlbnRlciBvZiB0aGUgdGV4dCBzbyBh
ZGp1c3QgcmVsYXRpdmUgdG8gdGhlIGVkZ2UgYmVjYXVzZSB3ZSB3aWxsIHVzZSBpdCB0bwogICAg
ICAgICAgICAgLy8gc2V0IENTUyAibGVmdCIuCiAgICAgICAgICAgICBpZiAoY3VlRGF0YS0+cG9z
aXRpb24oKSA+PSAwICYmIGN1ZURhdGEtPnNpemUoKSA+IDApCiAgICAgICAgICAgICAgICAgY3Vl
RGF0YS0+c2V0UG9zaXRpb24oY3VlRGF0YS0+cG9zaXRpb24oKSAtIGN1ZURhdGEtPnNpemUoKSAv
IDIpOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRU
cmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWUoJXApIC0gY29uc2lkZXJpbmcgY3VlIChcIiVzXCIp
IGZvciB0aW1lID0gJXMsIHBvc2l0aW9uID0gICUuMmYsIGxpbmUgPSAgJS4yZiIsIHRoaXMsIGN1
ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWVEYXRhLT5zdGFydFRp
bWUoKSkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS0+cG9zaXRpb24oKSwgY3VlRGF0YS0+bGluZSgp
KTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBjdWVEYXRhLT5zZXRTdGF0dXMoR2VuZXJp
Y0N1ZURhdGE6OlBhcnRpYWwpOworCisgICAgICAgICAgICBhcnJpdmluZ0N1ZXMuYXBwZW5kKFdU
Rk1vdmUoY3VlRGF0YSkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0zNjAsMTcgKzM1NCwxNyBA
QCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRyaWJ1dGVkU3RyaW5n
cyhDRkFycmF5UmVmIGF0dHJpYnV0ZWRTdAogICAgICAgICBpZiAobV9jdXJyZW50Q3VlRW5kVGlt
ZSA+PSBtX2N1cnJlbnRDdWVTdGFydFRpbWUpIHsKICAgICAgICAgICAgIGZvciAoYXV0byYgY3Vl
RGF0YSA6IG1fY3VlcykgewogICAgICAgICAgICAgICAgIC8vIFNlZSBpZiBvbmUgb2YgdGhlIG5l
d2x5LWFycml2ZWQgY3VlcyBpcyBhbiBleHRlbnNpb24gb2YgdGhpcyBjdWUuCi0gICAgICAgICAg
ICAgICAgVmVjdG9yPFJlZlB0cjxHZW5lcmljQ3VlRGF0YT4+IG5vbkV4dGVuc2lvbkN1ZXM7Cisg
ICAgICAgICAgICAgICAgVmVjdG9yPFJlZjxHZW5lcmljQ3VlRGF0YT4+IG5vbkV4dGVuc2lvbkN1
ZXM7CiAgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBhcnJpdmluZ0N1ZSA6IGFycml2aW5nQ3Vl
cykgewogICAgICAgICAgICAgICAgICAgICBpZiAoIWFycml2aW5nQ3VlLT5kb2VzRXh0ZW5kQ3Vl
RGF0YSgqY3VlRGF0YSkpCi0gICAgICAgICAgICAgICAgICAgICAgICBub25FeHRlbnNpb25DdWVz
LmFwcGVuZChhcnJpdmluZ0N1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBub25FeHRlbnNp
b25DdWVzLmFwcGVuZChXVEZNb3ZlKGFycml2aW5nQ3VlKSk7CiAgICAgICAgICAgICAgICAgICAg
IGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkY6OnByb2Nlc3NDdWUoJXApIC0gZm91bmQgYW4gZXh0ZW5zaW9uIGN1ZSAoXCIl
c1wiKSBmb3IgdGltZSA9ICUuMmYsIGVuZCA9ICUuMmYsIHBvc2l0aW9uID0gICUuMmYsIGxpbmUg
PSAgJS4yZiIsIHRoaXMsIGFycml2aW5nQ3VlLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSwgYXJy
aXZpbmdDdWUtPnN0YXJ0VGltZSgpLnRvRG91YmxlKCksIGFycml2aW5nQ3VlLT5lbmRUaW1lKCku
dG9Eb3VibGUoKSwgYXJyaXZpbmdDdWUtPnBvc2l0aW9uKCksIGFycml2aW5nQ3VlLT5saW5lKCkp
OwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGJvb2wgY3VycmVudEN1ZUlz
RXh0ZW5kZWQgPSAoYXJyaXZpbmdDdWVzLnNpemUoKSAhPSBub25FeHRlbnNpb25DdWVzLnNpemUo
KSk7CiAKLSAgICAgICAgICAgICAgICBhcnJpdmluZ0N1ZXMgPSBub25FeHRlbnNpb25DdWVzOwor
ICAgICAgICAgICAgICAgIGFycml2aW5nQ3VlcyA9IFdURk1vdmUobm9uRXh0ZW5zaW9uQ3Vlcyk7
CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRDdWVJc0V4dGVu
ZGVkKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTM4MCw3ICszNzQsNyBAQCB2
b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRyaWJ1dGVkU3RyaW5ncyhD
RkFycmF5UmVmIGF0dHJpYnV0ZWRTdAogICAgICAgICAgICAgICAgICAgICBjdWVEYXRhLT5zZXRT
dGF0dXMoR2VuZXJpY0N1ZURhdGE6OkNvbXBsZXRlKTsKIAogICAgICAgICAgICAgICAgICAgICBM
T0coTWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlKCVwKSAtIHVw
ZGF0aW5nIGN1ZSBcIiVzXCI6IHN0YXJ0PSUuMmYsIGVuZD0lLjJmIiwgdGhpcywgY3VlRGF0YS0+
Y29udGVudCgpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEtPnN0YXJ0VGltZSgpLnRvRG91YmxlKCks
IG1fY3VycmVudEN1ZUVuZFRpbWUudG9Eb3VibGUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGNs
aWVudCgpLT51cGRhdGVHZW5lcmljQ3VlKHRoaXMsIGN1ZURhdGEuZ2V0KCkpOworICAgICAgICAg
ICAgICAgICAgICBjbGllbnQoKS0+dXBkYXRlR2VuZXJpY0N1ZSgqY3VlRGF0YSk7CiAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBhc3N1
bWUgdGhhdCB0aGUgaW1wbGljaXQgZHVyYXRpb24gaXMgaW52YWxpZCBmb3IgY3VlcyBkZWxpdmVy
ZWQgZHVyaW5nIGEgc2VlayBiZWNhdXNlIHRoZSBBVkYgZGVjb2RlIHBpcGVsaW5lIG1heSBub3QK
ICAgICAgICAgICAgICAgICAgICAgLy8gc2VlIGV2ZXJ5IGN1ZSwgc28gRE8gTk9UIHVwZGF0ZSBj
dWUgZHVyYXRpb24gd2hpbGUgc2Vla2luZy4KQEAgLTM5OSwxMiArMzkzLDExIEBAIHZvaWQgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0F0dHJpYnV0ZWRTdHJpbmdzKENGQXJyYXlS
ZWYgYXR0cmlidXRlZFN0CiAgICAgbV9jdXJyZW50Q3VlU3RhcnRUaW1lID0gdGltZTsKIAogICAg
IGZvciAoYXV0byYgY3VlRGF0YSA6IGFycml2aW5nQ3VlcykgewotCi0gICAgICAgIG1fY3Vlcy5h
cHBlbmQoY3VlRGF0YSk7CisgICAgICAgIG1fY3Vlcy5hcHBlbmQoY3VlRGF0YS5wdHIoKSk7CiAg
ICAgICAgIAogICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpw
cm9jZXNzQ3VlKCVwKSAtIGFkZGluZyBjdWUgXCIlc1wiIGZvciB0aW1lID0gJS4yZiwgZW5kID0g
JS4yZiwgcG9zaXRpb24gPSAgJS4yZiwgbGluZSA9ICAlLjJmIiwgdGhpcywgY3VlRGF0YS0+Y29u
dGVudCgpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEtPnN0YXJ0VGltZSgpLnRvRG91YmxlKCksIGN1
ZURhdGEtPmVuZFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLT5wb3NpdGlvbigpLCBjdWVEYXRh
LT5saW5lKCkpOwogCi0gICAgICAgIGNsaWVudCgpLT5hZGRHZW5lcmljQ3VlKHRoaXMsIFdURk1v
dmUoY3VlRGF0YSkpOworICAgICAgICBjbGllbnQoKS0+YWRkR2VuZXJpY0N1ZShXVEZNb3ZlKGN1
ZURhdGEpKTsKICAgICB9CiAKICAgICBtX3BlbmRpbmdDdWVTdGF0dXMgPSBzZWVraW5nKCkgPyBE
ZWxpdmVyZWREdXJpbmdTZWVrIDogVmFsaWQ7CkBAIC00NTEsOSArNDQ0LDkgQEAgdm9pZCBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlQVZGOjpyZXNldEN1ZVZhbHVlcygpCiAgICAgaWYgKG1fY3VycmVu
dEN1ZUVuZFRpbWUgJiYgbV9jdWVzLnNpemUoKSkKICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRjo6cmVzZXRDdWVWYWx1ZXMgZmx1c2hpbmcgZGF0YSBmb3IgY3Vl
czogc3RhcnQ9JXNcbiIsIHRvU3RyaW5nKG1fY3VycmVudEN1ZVN0YXJ0VGltZSkudXRmOCgpLmRh
dGEoKSk7CiAKLSAgICBpZiAoY2xpZW50KCkpIHsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBtX2N1ZXMuc2l6ZSgpOyBpKyspCi0gICAgICAgICAgICBjbGllbnQoKS0+cmVtb3ZlR2Vu
ZXJpY0N1ZSh0aGlzLCBtX2N1ZXNbaV0uZ2V0KCkpOworICAgIGlmIChhdXRvKiBjbGllbnQgPSB0
aGlzLT5jbGllbnQoKSkgeworICAgICAgICBmb3IgKGF1dG8mIGN1ZSA6IG1fY3VlcykKKyAgICAg
ICAgICAgIGNsaWVudC0+cmVtb3ZlR2VuZXJpY0N1ZSgqY3VlKTsKICAgICB9CiAKICAgICBtX2N1
ZXMucmVzaXplKDApOwpAQCAtNTA5LDcgKzUwMiw3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUFWRjo6cHJvY2Vzc05hdGl2ZVNhbXBsZXMoQ0ZBcnJheVJlZiBuYXRpdmVTYW1wbGVzLCBj
CiAgICAgICAgICAgICBMT0coTWVkaWEsICIgICAgaWQgPSBcIiVzXCIsIHNldHRpbmdzID0gXCIl
c1wiLCBjdWUgdGV4dCA9IFwiJXNcIiIsIGN1ZURhdGEuaWQoKS51dGY4KCkuZGF0YSgpLCBjdWVE
YXRhLnNldHRpbmdzKCkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS5jdWVUZXh0KCkudXRmOCgpLmRh
dGEoKSk7CiAgICAgICAgICAgICBMT0coTWVkaWEsICIgICAgc291cmNlSUQgPSBcIiVzXCIsIG9y
aWdpbmFsU3RhcnRUaW1lID0gXCIlc1wiIiwgY3VlRGF0YS5zb3VyY2VJRCgpLnV0ZjgoKS5kYXRh
KCksIGN1ZURhdGEub3JpZ2luYWxTdGFydFRpbWUoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAg
ICAgICAgY2xpZW50KCktPnBhcnNlV2ViVlRUQ3VlRGF0YSh0aGlzLCBjdWVEYXRhKTsKKyAgICAg
ICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEN1ZURhdGEoY3VlRGF0YSk7CiAgICAgICAgIH0K
IAogICAgICAgICBkbyB7CkBAIC01NDIsNyArNTM1LDcgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlQVZGOjpwcm9jZXNzTmF0aXZlU2FtcGxlcyhDRkFycmF5UmVmIG5hdGl2ZVNhbXBsZXMs
IGMKICAgICAgICAgICAgIGhlYWRlci5hcHBlbmQoIlxuXG4iKTsKIAogICAgICAgICAgICAgTE9H
KE1lZGlhLCAiICAgIHZ0dCBoZWFkZXIgPSBcbiVzIiwgaGVhZGVyLnRvU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7Ci0gICAgICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRGaWxlSGVhZGVyKHRo
aXMsIGhlYWRlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZU
VEZpbGVIZWFkZXIoaGVhZGVyLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgbV9oYXZlUmVwb3J0
ZWRWVFRIZWFkZXIgPSB0cnVlOwogICAgICAgICB9IHdoaWxlICgwKTsKIApAQCAtNTU1LDcgKzU0
OCw3IEBAIGJvb2wgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cmVhZE5hdGl2ZVNhbXBsZUJ1
ZmZlcihDRkFycmF5UmVmIG5hdGl2ZVNhbXBsZXMsCiAjaWYgT1MoV0lORE9XUykgJiYgSEFWRShB
VkNGUExBWUVSSVRFTV9DQUxMQkFDS19WRVJTSU9OXzIpCiAgICAgcmV0dXJuIGZhbHNlOwogI2Vs
c2UKLSAgICBDTVNhbXBsZUJ1ZmZlclJlZiBjb25zdCBzYW1wbGVCdWZmZXIgPSByZWludGVycHJl
dF9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihjb25zdF9jYXN0PHZvaWQqPihDRkFycmF5R2V0VmFs
dWVBdEluZGV4KG5hdGl2ZVNhbXBsZXMsIGluZGV4KSkpOworICAgIENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZUJ1ZmZlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KGNvbnN0
X2Nhc3Q8dm9pZCo+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgobmF0aXZlU2FtcGxlcywgaW5kZXgp
KSk7CiAgICAgaWYgKCFzYW1wbGVCdWZmZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1Zp
ZGVvVHJhY2tQcml2YXRlQVZGLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vVmlkZW9UcmFja1ByaXZhdGVBVkYuaAppbmRleCA4NThmNDFjNjE4ZWFmNzk0
ZTNlNjUxZDA0MTZhMDUwZWRmMThhNWFiLi5hM2YwZjRlY2EwNTczZGQ4MmZiOTQ3ZjRiOWY5ZjA3
MWEwZjNjMmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vVmlkZW9UcmFja1ByaXZhdGVBVkYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vVmlkZW9UcmFja1ByaXZhdGVBVkYuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMyw4
ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lm
bmRlZiBWaWRlb1RyYWNrUHJpdmF0ZUFWRl9oCi0jZGVmaW5lIFZpZGVvVHJhY2tQcml2YXRlQVZG
X2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCkBAIC0zNSw3ICsz
NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQVZGIDog
cHVibGljIFZpZGVvVHJhY2tQcml2YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShWaWRl
b1RyYWNrUHJpdmF0ZUFWRikKIHB1YmxpYzoKLQogICAgIGludCB0cmFja0luZGV4KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9pbmRleDsgfQogICAgIEtpbmQga2luZCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fa2luZDsgfQogICAgIEF0b21pY1N0cmluZyBpZCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1faWQ7IH0KQEAgLTQ0LDI2ICs0MiwyMCBAQCBwdWJsaWM6CiAKIHByb3Rl
Y3RlZDoKICAgICB2b2lkIHNldEtpbmQoS2luZCBraW5kKSB7IG1fa2luZCA9IGtpbmQ7IH0KLSAg
ICB2b2lkIHNldElkKEF0b21pY1N0cmluZyBuZXdJZCkgeyBtX2lkID0gbmV3SWQ7IH0KLSAgICB2
b2lkIHNldExhYmVsKEF0b21pY1N0cmluZyBsYWJlbCkgeyBtX2xhYmVsID0gbGFiZWw7IH0KLSAg
ICB2b2lkIHNldExhbmd1YWdlKEF0b21pY1N0cmluZyBsYW5ndWFnZSkgeyBtX2xhbmd1YWdlID0g
bGFuZ3VhZ2U7IH0KKyAgICB2b2lkIHNldElkKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3SWQpIHsg
bV9pZCA9IG5ld0lkOyB9CisgICAgdm9pZCBzZXRMYWJlbChjb25zdCBBdG9taWNTdHJpbmcmIGxh
YmVsKSB7IG1fbGFiZWwgPSBsYWJlbDsgfQorICAgIHZvaWQgc2V0TGFuZ3VhZ2UoY29uc3QgQXRv
bWljU3RyaW5nJiBsYW5ndWFnZSkgeyBtX2xhbmd1YWdlID0gbGFuZ3VhZ2U7IH0KICAgICB2b2lk
IHNldFRyYWNrSW5kZXgoaW50IGluZGV4KSB7IG1faW5kZXggPSBpbmRleDsgfQogCi0gICAgS2lu
ZCBtX2tpbmQ7CisgICAgS2luZCBtX2tpbmQgeyBOb25lIH07CiAgICAgQXRvbWljU3RyaW5nIG1f
aWQ7CiAgICAgQXRvbWljU3RyaW5nIG1fbGFiZWw7CiAgICAgQXRvbWljU3RyaW5nIG1fbGFuZ3Vh
Z2U7Ci0gICAgaW50IG1faW5kZXg7CisgICAgaW50IG1faW5kZXggeyAwIH07CiAKLSAgICBWaWRl
b1RyYWNrUHJpdmF0ZUFWRigpCi0gICAgICAgIDogbV9raW5kKE5vbmUpCi0gICAgICAgICwgbV9p
bmRleCgwKQotICAgIHsKLSAgICB9CisgICAgVmlkZW9UcmFja1ByaXZhdGVBVkYoKSA9IGRlZmF1
bHQ7CiB9OwogCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU9fVFJBQ0spCi0KLSNlbmRpZiAv
LyBWaWRlb1RyYWNrUHJpdmF0ZUFWRl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5jcHAKaW5kZXgg
ZmU5MzQ0YjYzMWYwMzVmOWVkZTczNTc0NDA3ZjM0MzlhYTI0ZTUwMi4uZWMwZDBlZGRiZjczYmVl
ZGE2NzE3YjdhNTE4YzczMjEyNjA5NWFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
Niw4ICszNiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhBVkFzc2V0
VHJhY2sqIHRyYWNrLCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyogcGFyZW50KQogICAgIDog
bV9pbXBsKHN0ZDo6bWFrZV91bmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJhY2sp
KQogICAgICwgbV9wYXJlbnQocGFyZW50KQotICAgICwgbV90cmFja0lEKC0xKQotICAgICwgbV9l
bmFibGVkKGZhbHNlKQogewogICAgIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwogfQpAQCAt
NjMsMTcgKzYxLDEyIEBAIEFWQXNzZXRUcmFjayogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OmFzc2V0VHJhY2soKQogICAgIHJldHVybiBtX2ltcGwtPmFzc2V0VHJhY2soKTsK
IH0KIAotYm9vbCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6ZW5hYmxlZCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZW5hYmxlZDsKLX0KLQogdm9pZCBBdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0RW5hYmxlZChib29sIGVuYWJsZWQpCiB7Ci0gICAg
aWYgKG1fZW5hYmxlZCA9PSBlbmFibGVkKQorICAgIGlmIChlbmFibGVkID09IHRoaXMtPmVuYWJs
ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9lbmFibGVkID0gZW5hYmxlZDsKKyAgICBB
dWRpb1RyYWNrUHJpdmF0ZUFWRjo6c2V0RW5hYmxlZChlbmFibGVkKTsKICAgICBtX3BhcmVudC0+
dHJhY2tEaWRDaGFuZ2VFbmFibGVkKHRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApp
bmRleCBiYmU4OWNkZGExM2IwODJkY2Y4M2YwMjVmY2M4NWM0MjhmZGM5MTQ3Li4yMTI4NzIxNGEz
YmY1Y2UxNDA4MDQ1NTBkOWFlZWMzOGEzMDYxMWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjMsMTUgKzIzLDEzIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0jaWZuZGVmIEF1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDX2gKLSNkZWZpbmUgQXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakNfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBdWRpb1RyYWNr
UHJpdmF0ZUFWRi5oIgogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgRU5BQkxFKFZJREVP
X1RSQUNLKQogCiBPQkpDX0NMQVNTIEFWQXNzZXRUcmFjazsKLU9CSkNfQ0xBU1MgQVZQbGF5ZXJJ
dGVtVHJhY2s7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsMTMgKzM5LDEyIEBAIGNs
YXNzIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOwogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMgZmluYWwgOiBwdWJsaWMgQXVkaW9UcmFja1ByaXZhdGVBVkYgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDKQogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM+IGNyZWF0ZShBVkFzc2V0VHJhY2sqIHRyYWNrLCBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQyogcGFyZW50KQorICAgIHN0YXRpYyBSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM+IGNyZWF0ZShBVkFzc2V0VHJhY2sgKnRyYWNrLCBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQyogcGFyZW50KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyh0cmFjaywgcGFyZW50KSk7
CiAgICAgfQogCi0gICAgYm9vbCBlbmFibGVkKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBz
ZXRFbmFibGVkKGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0RW5hYmxlZChib29sKSBmaW5h
bDsKIAogICAgIHZvaWQgc2V0QXNzZXRUcmFjayhBVkFzc2V0VHJhY2sqKTsKICAgICBBVkFzc2V0
VHJhY2sqIGFzc2V0VHJhY2soKTsKQEAgLTYyLDExICs1OSw4IEBAIHByaXZhdGU6CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+IG1faW1wbDsKICAgICBTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQyogbV9wYXJlbnQ7CiAgICAgaW50IG1fdHJhY2tJRDsKLSAg
ICBib29sIG1fZW5hYmxlZDsKIH07CiAKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TT1VS
Q0UpICYmIEVOQUJMRShWSURFT19UUkFDSykKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMubW0KaW5kZXggZDRjNDYxZDg4YmY1ZjcyY2ZhZDk5YzllYzhkZGZlNTA2NDE0ZjBjMS4uZjY3
YTg3ZDZjZGRmNWJiMmE2MTdlMjRiZGExMGZiNjA4ZjhlOGRmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJBVkZvdW5kYXRpb25TUEku
aCIKICNpbXBvcnQgIkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCIKICNpbXBvcnQgIkNs
b2NrLmgiCisjaW1wb3J0ICJDb3JlTWVkaWFTb2Z0TGluay5oIgogI2ltcG9ydCAiR3JhcGhpY3ND
b250ZXh0LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRpYVN0cmVhbVByaXZh
dGUuaCIKQEAgLTQ5LDggKzUwLDYgQEAKIAogI3ByYWdtYSBtYXJrIC0gU29mdCBMaW5raW5nCiAK
LSNpbXBvcnQgIkNvcmVNZWRpYVNvZnRMaW5rLmgiCi0KIFNPRlRfTElOS19GUkFNRVdPUktfT1BU
SU9OQUwoQVZGb3VuZGF0aW9uKQogCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0
aW9uLCBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcikKQEAgLTM4MCwxMCArMzc5LDEwIEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF5KCkKICNlbmRpZgog
CiAgICAgZm9yIChjb25zdCBhdXRvJiB0cmFjayA6IG1fYXVkaW9UcmFja01hcC52YWx1ZXMoKSkg
ewotICAgICAgICBpZiAoIXRyYWNrLT5lbmFibGVkKCkgfHwgIXRyYWNrLT5zdHJlYW1UcmFjaygp
LT5wcmV2aWV3KCkpCisgICAgICAgIGlmICghdHJhY2stPmVuYWJsZWQoKSB8fCAhdHJhY2stPnN0
cmVhbVRyYWNrKCkucHJldmlldygpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAg
dHJhY2stPnN0cmVhbVRyYWNrKCktPnByZXZpZXcoKS0+cGxheSgpOworICAgICAgICB0cmFjay0+
c3RyZWFtVHJhY2soKS5wcmV2aWV3KCktPnBsYXkoKTsKICAgICB9CiAKICAgICBtX2hhdmVFdmVy
UGxheWVkID0gdHJ1ZTsKQEAgLTQxMSwxMCArNDEwLDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYXVzZSgpCiAjZW5kaWYKIAogICAgIGZvciAoY29uc3Qg
YXV0byYgdHJhY2sgOiBtX2F1ZGlvVHJhY2tNYXAudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKCF0
cmFjay0+ZW5hYmxlZCgpIHx8ICF0cmFjay0+c3RyZWFtVHJhY2soKS0+cHJldmlldygpKQorICAg
ICAgICBpZiAoIXRyYWNrLT5lbmFibGVkKCkgfHwgIXRyYWNrLT5zdHJlYW1UcmFjaygpLnByZXZp
ZXcoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHRyYWNrLT5zdHJlYW1UcmFj
aygpLT5wcmV2aWV3KCktPnBhdXNlKCk7CisgICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLnBy
ZXZpZXcoKS0+cGF1c2UoKTsKICAgICB9CiAKICAgICB1cGRhdGVEaXNwbGF5TW9kZSgpOwpAQCAt
NDM1LDEwICs0MzQsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6OmludGVybmFsU2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSwgYm9vbAogICAgICAgICByZXR1cm47
CiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIHRyYWNrIDogbV9hdWRpb1RyYWNrTWFwLnZhbHVlcygp
KSB7Ci0gICAgICAgIGlmICghdHJhY2stPmVuYWJsZWQoKSB8fCAhdHJhY2stPnN0cmVhbVRyYWNr
KCktPnByZXZpZXcoKSkKKyAgICAgICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgpIHx8ICF0cmFjay0+
c3RyZWFtVHJhY2soKS5wcmV2aWV3KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAg
ICB0cmFjay0+c3RyZWFtVHJhY2soKS0+cHJldmlldygpLT5zZXRWb2x1bWUodm9sdW1lKTsKKyAg
ICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCkucHJldmlldygpLT5zZXRWb2x1bWUodm9sdW1lKTsK
ICAgICB9CiB9CiAKQEAgLTYxNyw2ICs2MTYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6c2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUAog
fQogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUp
CisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRWaWRlb0Z1
bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXllciwgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fdmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcih2aWRlb0Z1bGxzY3JlZW5M
YXllciwgY29tcGxldGlvbkhhbmRsZXIpOwpAQCAtNjI2LDYgKzYyNiw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShG
bG9hdFJlY3QgZnJhCiB7CiAgICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZp
ZGVvRnVsbHNjcmVlbkZyYW1lKGZyYW1lKTsKIH0KKwogI2VuZGlmCiAKIHRlbXBsYXRlIDx0eXBl
bmFtZSBSZWZULCB0eXBlbmFtZSBQYXNzUmVmVD4KQEAgLTY0NCwxMiArNjQ1LDEyIEBAIHZvaWQg
dXBkYXRlVHJhY2tzT2ZUeXBlKEhhc2hNYXA8U3RyaW5nLCBSZWZUPiYgdHJhY2tNYXAsIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5CiAgICAgfQogCiAgICAgZm9yIChjb25zdCBhdXRvJiB0cmFjayA6
IHRyYWNrTWFwLnZhbHVlcygpKSB7Ci0gICAgICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBz
dHJlYW1UcmFjayA9IHRyYWNrLT5zdHJlYW1UcmFjaygpOwotICAgICAgICBpZiAoY3VycmVudFRy
YWNrcy5jb250YWlucyhzdHJlYW1UcmFjaykpCisgICAgICAgIGF1dG8mIHN0cmVhbVRyYWNrID0g
dHJhY2stPnN0cmVhbVRyYWNrKCk7CisgICAgICAgIGlmIChjdXJyZW50VHJhY2tzLmNvbnRhaW5z
KCZzdHJlYW1UcmFjaykpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICByZW1vdmVk
VHJhY2tzLmFwcGVuZCh0cmFjayk7Ci0gICAgICAgIHRyYWNrTWFwLnJlbW92ZShzdHJlYW1UcmFj
ay0+aWQoKSk7CisgICAgICAgIHRyYWNrTWFwLnJlbW92ZShzdHJlYW1UcmFjay5pZCgpKTsKICAg
ICB9CiAKICAgICBmb3IgKGF1dG8mIHRyYWNrIDogYWRkZWRQcml2YXRlVHJhY2tzKSB7CkBAIC02
NjQsMTIgKzY2NSwxMiBAQCB2b2lkIHVwZGF0ZVRyYWNrc09mVHlwZShIYXNoTWFwPFN0cmluZywg
UmVmVD4mIHRyYWNrTWFwLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeQogCiAgICAgZm9yIChhdXRv
JiB0cmFjayA6IHJlbW92ZWRUcmFja3MpIHsKICAgICAgICAgKHBsYXllci0+KnJlbW92ZWRGdW5j
dGlvbikoKnRyYWNrKTsKLSAgICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCktPnJlbW92ZU9ic2Vy
dmVyKCp0cmFja09ic2VydmVyKTsKKyAgICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCkucmVtb3Zl
T2JzZXJ2ZXIoKnRyYWNrT2JzZXJ2ZXIpOwogICAgIH0KIAogICAgIGZvciAoYXV0byYgdHJhY2sg
OiBhZGRlZFRyYWNrcykgewogICAgICAgICAocGxheWVyLT4qYWRkZWRGdW5jdGlvbikoKnRyYWNr
KTsKLSAgICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCktPmFkZE9ic2VydmVyKCp0cmFja09ic2Vy
dmVyKTsKKyAgICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCkuYWRkT2JzZXJ2ZXIoKnRyYWNrT2Jz
ZXJ2ZXIpOwogICAgIH0KIH0KIApAQCAtNjgwLDE0ICs2ODEsMTQgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZVRyYWNrcygpCiAgICAgc3RkOjpmdW5j
dGlvbjx2b2lkKFJlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtPiwgaW50KT4gZW5h
YmxlQXVkaW9UcmFjayA9IFt0aGlzXShhdXRvIHRyYWNrLCBpbnQgaW5kZXgpCiAgICAgewogICAg
ICAgICB0cmFjay0+c2V0VHJhY2tJbmRleChpbmRleCk7Ci0gICAgICAgIHRyYWNrLT5zZXRFbmFi
bGVkKHRyYWNrLT5zdHJlYW1UcmFjaygpLT5lbmFibGVkKCkgJiYgIXRyYWNrLT5zdHJlYW1UcmFj
aygpLT5tdXRlZCgpKTsKKyAgICAgICAgdHJhY2stPnNldEVuYWJsZWQodHJhY2stPnN0cmVhbVRy
YWNrKCkuZW5hYmxlZCgpICYmICF0cmFjay0+c3RyZWFtVHJhY2soKS5tdXRlZCgpKTsKICAgICB9
OwogICAgIHVwZGF0ZVRyYWNrc09mVHlwZShtX2F1ZGlvVHJhY2tNYXAsIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkF1ZGlvLCBjdXJyZW50VHJhY2tzLCAmQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVh
bTo6Y3JlYXRlLCBtX3BsYXllciwgJk1lZGlhUGxheWVyOjpyZW1vdmVBdWRpb1RyYWNrLCAmTWVk
aWFQbGF5ZXI6OmFkZEF1ZGlvVHJhY2ssIGVuYWJsZUF1ZGlvVHJhY2ssIChNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZTo6T2JzZXJ2ZXIqKSB0aGlzKTsKIAogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChS
ZWZQdHI8VmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbT4sIGludCk+IGVuYWJsZVZpZGVvVHJh
Y2sgPSBbdGhpc10oYXV0byB0cmFjaywgaW50IGluZGV4KQogICAgIHsKICAgICAgICAgdHJhY2st
PnNldFRyYWNrSW5kZXgoaW5kZXgpOwotICAgICAgICBib29sIHNlbGVjdGVkID0gdHJhY2stPnN0
cmVhbVRyYWNrKCkgPT0gbV9tZWRpYVN0cmVhbVByaXZhdGUtPmFjdGl2ZVZpZGVvVHJhY2soKTsK
KyAgICAgICAgYm9vbCBzZWxlY3RlZCA9ICZ0cmFjay0+c3RyZWFtVHJhY2soKSA9PSBtX21lZGlh
U3RyZWFtUHJpdmF0ZS0+YWN0aXZlVmlkZW9UcmFjaygpOwogICAgICAgICB0cmFjay0+c2V0U2Vs
ZWN0ZWQoc2VsZWN0ZWQpOwogCiAgICAgICAgIGlmIChzZWxlY3RlZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCmluZGV4IDFmNzU4
MmUxOGJiNjhjY2I4YzA2NTc2ZjQwYzFjMTk1MzdmYTdlN2EuLjNlNWJjODFjYTYzOThiMmE0OWJh
ODc5MWVhM2UyZGUxZTNmZDI3MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDggKzIzLDcgQEAKICAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAogICovCiAKLSNpZm5kZWYgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakNfaAotI2Rl
ZmluZSBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQ19oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShBVkZPVU5EQVRJT04pCiAKQEAgLTExNCwxOCArMTEz
LDE4IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMo
TWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQyopOwogCiAgICAgLy8gU291cmNlQnVmZmVyUHJpdmF0
ZSBvdmVycmlkZXMKLSAgICB2b2lkIHNldENsaWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50
Kikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBhcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwg
dW5zaWduZWQgbGVuZ3RoKSBvdmVycmlkZTsKLSAgICB2b2lkIGFib3J0KCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZW1vdmVkRnJv
bU1lZGlhU291cmNlKCkgb3ZlcnJpZGU7Ci0gICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVh
ZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBmbHVzaChBdG9taWNTdHJpbmcg
dHJhY2tJRCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFBhc3NSZWZQdHI8TWVk
aWFTYW1wbGU+LCBBdG9taWNTdHJpbmcgdHJhY2tJRCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1Jl
YWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSUQpIG92ZXJyaWRlOwotICAgIHZv
aWQgc2V0QWN0aXZlKGJvb2wpIG92ZXJyaWRlOwotICAgIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJl
YWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSUQpIG92ZXJyaWRlOworICAgIHZv
aWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqKSBmaW5hbDsKKyAgICB2b2lk
IGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIGZpbmFs
OworICAgIHZvaWQgYWJvcnQoKSBmaW5hbDsKKyAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBm
aW5hbDsKKyAgICB2b2lkIHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKSBmaW5hbDsKKyAgICBNZWRp
YVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBz
ZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBmaW5hbDsKKyAgICB2b2lkIGZs
dXNoKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkgZmluYWw7CisgICAgdm9pZCBlbnF1ZXVl
U2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiwgY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKSBm
aW5hbDsKKyAgICBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcm
IHRyYWNrSUQpIGZpbmFsOworICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIGZpbmFsOworICAgIHZv
aWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5n
JiB0cmFja0lEKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxl
cyhpbnQgdHJhY2tJRCk7CiAgICAgdm9pZCBhcHBlbmRDb21wbGV0ZWQoKTsKQEAgLTE1NSwyMSAr
MTU0LDE5IEBAIHByaXZhdGU6CiAgICAgT1NPYmplY3RQdHI8ZGlzcGF0Y2hfZ3JvdXBfdD4gbV9p
c0FwcGVuZGluZ0dyb3VwOwogCiAgICAgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQyogbV9tZWRp
YVNvdXJjZTsKLSAgICBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KiBtX2NsaWVudDsKKyAgICBT
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKICNpZiBFTkFC
TEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKICAgICBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDKiBtX3Nlc3Npb24geyBudWxscHRyIH07CiAjZW5kaWYKIAogICAgIHN0ZDo6b3B0aW9uYWw8
RmxvYXRTaXplPiBtX2NhY2hlZFNpemU7CiAgICAgRmxvYXRTaXplIG1fY3VycmVudFNpemU7Ci0g
ICAgYm9vbCBtX3BhcnNpbmdTdWNjZWVkZWQ7CisgICAgYm9vbCBtX3BhcnNpbmdTdWNjZWVkZWQg
eyB0cnVlIH07CiAgICAgYm9vbCBtX3BhcnNlclN0YXRlV2FzUmVzZXQgeyBmYWxzZSB9OwotICAg
IGludCBtX2VuYWJsZWRWaWRlb1RyYWNrSUQ7Ci0gICAgaW50IG1fcHJvdGVjdGVkVHJhY2tJRDsK
KyAgICBpbnQgbV9lbmFibGVkVmlkZW9UcmFja0lEIHsgLTEgfTsKKyAgICBpbnQgbV9wcm90ZWN0
ZWRUcmFja0lEIHsgLTEgfTsKIH07CiAKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TT1VS
Q0UpICYmIFVTRShBVkZPVU5EQVRJT04pCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCAzYjBkNjhjYzJi
ZjJkMjJiNzhiMzkyYmYzODI4ZmU2MTM4ZTliMDE4Li5lN2IxYjIwNzRkYTMzMjMyMWZmODA4ZGY2
ODMzMzIwNWFjZTYyNDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE1MSwxMCArMTUxLDcgQEAgLSAodm9pZClp
bnZhbGlkYXRlCiAKIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2Vy
ICopc3RyZWFtRGF0YVBhcnNlciBkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0OihBVkFzc2V0ICop
YXNzZXQKIHsKLSNpZiBBU1NFUlRfRElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0
YVBhcnNlcik7Ci0jZW5kaWYKLSAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2Vy
KTsKKyAgICBBU1NFUlRfVU5VU0VEKHN0cmVhbURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIg
PT0gX3BhcnNlcik7CiAKICAgICBSZXRhaW5QdHI8QVZBc3NldCo+IHByb3RlY3RlZEFzc2V0ID0g
YXNzZXQ7CiAgICAgY2FsbE9uTWFpblRocmVhZChbcGFyZW50ID0gX3BhcmVudCwgcHJvdGVjdGVk
QXNzZXQgPSBXVEZNb3ZlKHByb3RlY3RlZEFzc2V0KV0gewpAQCAtMTY2LDEwICsxNjMsNyBAQCAt
ICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQ
YXJzZXIgZGlkUGFyc2VTdHJlYW1EYQogLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVh
bURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQ6
KEFWQXNzZXQgKilhc3NldCB3aXRoRGlzY29udGludWl0eTooQk9PTClkaXNjb250aW51aXR5CiB7
CiAgICAgVU5VU0VEX1BBUkFNKGRpc2NvbnRpbnVpdHkpOwotI2lmIEFTU0VSVF9ESVNBQkxFRAot
ICAgIFVOVVNFRF9QQVJBTShzdHJlYW1EYXRhUGFyc2VyKTsKLSNlbmRpZgotICAgIEFTU0VSVChz
dHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOworICAgIEFTU0VSVF9VTlVTRUQoc3RyZWFtRGF0
YVBhcnNlciwgc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKIAogICAgIFJldGFpblB0cjxB
VkFzc2V0Kj4gcHJvdGVjdGVkQXNzZXQgPSBhc3NldDsKICAgICBjYWxsT25NYWluVGhyZWFkKFtw
YXJlbnQgPSBfcGFyZW50LCBwcm90ZWN0ZWRBc3NldCA9IFdURk1vdmUocHJvdGVjdGVkQXNzZXQp
XSB7CkBAIC0xODAsMTAgKzE3NCw3IEBAIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJl
YW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRQYXJzZVN0cmVhbURhCiAKIC0gKHZv
aWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNl
ciBkaWRGYWlsVG9QYXJzZVN0cmVhbURhdGFXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgogewot
I2lmIEFTU0VSVF9ESVNBQkxFRAotICAgIFVOVVNFRF9QQVJBTShzdHJlYW1EYXRhUGFyc2VyKTsK
LSNlbmRpZgotICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOworICAgIEFT
U0VSVF9VTlVTRUQoc3RyZWFtRGF0YVBhcnNlciwgc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2Vy
KTsKIAogICAgIFJldGFpblB0cjxOU0Vycm9yPiBwcm90ZWN0ZWRFcnJvciA9IGVycm9yOwogICAg
IGNhbGxPbk1haW5UaHJlYWQoW3BhcmVudCA9IF9wYXJlbnQsIHByb3RlY3RlZEVycm9yID0gV1RG
TW92ZShwcm90ZWN0ZWRFcnJvcildIHsKQEAgLTE5NCwxMCArMTg1LDcgQEAgLSAodm9pZClzdHJl
YW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZEZh
aWxUb1BhcnNlU3QKIAogLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJz
ZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFByb3ZpZGVNZWRpYURhdGE6KENNU2FtcGxlQnVmZmVy
UmVmKXNhbXBsZSBmb3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQgbWVkaWFU
eXBlOihOU1N0cmluZyAqKW5zTWVkaWFUeXBlIGZsYWdzOihBVlN0cmVhbURhdGFQYXJzZXJPdXRw
dXRNZWRpYURhdGFGbGFncylmbGFncwogewotI2lmIEFTU0VSVF9ESVNBQkxFRAotICAgIFVOVVNF
RF9QQVJBTShzdHJlYW1EYXRhUGFyc2VyKTsKLSNlbmRpZgotICAgIEFTU0VSVChzdHJlYW1EYXRh
UGFyc2VyID09IF9wYXJzZXIpOworICAgIEFTU0VSVF9VTlVTRUQoc3RyZWFtRGF0YVBhcnNlciwg
c3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKIAogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1
ZmZlclJlZj4gcHJvdGVjdGVkU2FtcGxlID0gc2FtcGxlOwogICAgIFN0cmluZyBtZWRpYVR5cGUg
PSBuc01lZGlhVHlwZTsKQEAgLTIwOSwxMCArMTk3LDcgQEAgLSAodm9pZClzdHJlYW1EYXRhUGFy
c2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFByb3ZpZGVNZWRp
YUQKIAogLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJl
YW1EYXRhUGFyc2VyIGRpZFJlYWNoRW5kT2ZUcmFja1dpdGhUcmFja0lEOihDTVBlcnNpc3RlbnRU
cmFja0lEKXRyYWNrSUQgbWVkaWFUeXBlOihOU1N0cmluZyAqKW5zTWVkaWFUeXBlCiB7Ci0jaWYg
QVNTRVJUX0RJU0FCTEVECi0gICAgVU5VU0VEX1BBUkFNKHN0cmVhbURhdGFQYXJzZXIpOwotI2Vu
ZGlmCi0gICAgQVNTRVJUKHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CisgICAgQVNTRVJU
X1VOVVNFRChzdHJlYW1EYXRhUGFyc2VyLCBzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwog
CiAgICAgU3RyaW5nIG1lZGlhVHlwZSA9IG5zTWVkaWFUeXBlOwogICAgIGNhbGxPbk1haW5UaHJl
YWQoW3BhcmVudCA9IF9wYXJlbnQsIHRyYWNrSUQsIG1lZGlhVHlwZV0gewpAQCAtMjIzLDEwICsy
MDgsNyBAQCAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0
cmVhbURhdGFQYXJzZXIgZGlkUmVhY2hFbmRPZlRyYQogCiAtICh2b2lkKXN0cmVhbURhdGFQYXJz
ZXJXaWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhOihBVlN0cmVh
bURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGZvclRyYWNrSUQ6KENNUGVyc2lzdGVudFRy
YWNrSUQpdHJhY2tJRAogewotI2lmIEFTU0VSVF9ESVNBQkxFRAotICAgIFVOVVNFRF9QQVJBTShz
dHJlYW1EYXRhUGFyc2VyKTsKLSNlbmRpZgotICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09
IF9wYXJzZXIpOworICAgIEFTU0VSVF9VTlVTRUQoc3RyZWFtRGF0YVBhcnNlciwgc3RyZWFtRGF0
YVBhcnNlciA9PSBfcGFyc2VyKTsKIAogICAgIC8vIFdlIG11c3QgY2FsbCBzeW5jaHJvbm91c2x5
IHRvIHRoZSBtYWluIHRocmVhZCwgYXMgdGhlIEFWU3RyZWFtU2Vzc2lvbiBtdXN0IGJlIGFzc29j
aWF0ZWQKICAgICAvLyB3aXRoIHRoZSBzdHJlYW1EYXRhUGFyc2VyIGJlZm9yZSB0aGUgZGVsZWdh
dGUgbWV0aG9kIHJldHVybnMuCkBAIC0yMzgsMTAgKzIyMCw3IEBAIC0gKHZvaWQpc3RyZWFtRGF0
YVBhcnNlcldpbGxQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6KEFW
U3RyZWFtCiAKIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICop
c3RyZWFtRGF0YVBhcnNlciBkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlv
bkRhdGE6KE5TRGF0YSAqKWluaXREYXRhIGZvclRyYWNrSUQ6KENNUGVyc2lzdGVudFRyYWNrSUQp
dHJhY2tJRAogewotI2lmIEFTU0VSVF9ESVNBQkxFRAotICAgIFVOVVNFRF9QQVJBTShzdHJlYW1E
YXRhUGFyc2VyKTsKLSNlbmRpZgotICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJz
ZXIpOworICAgIEFTU0VSVF9VTlVTRUQoc3RyZWFtRGF0YVBhcnNlciwgc3RyZWFtRGF0YVBhcnNl
ciA9PSBfcGFyc2VyKTsKIAogICAgIE9TT2JqZWN0UHRyPGRpc3BhdGNoX3NlbWFwaG9yZV90PiBo
YXNTZXNzaW9uU2VtYXBob3JlID0gYWRvcHRPU09iamVjdChkaXNwYXRjaF9zZW1hcGhvcmVfY3Jl
YXRlKDApKTsKICAgICBjYWxsT25NYWluVGhyZWFkKFtwYXJlbnQgPSBfcGFyZW50LCBwcm90ZWN0
ZWRJbml0RGF0YSA9IFJldGFpblB0cjxOU0RhdGE+KGluaXREYXRhKSwgdHJhY2tJRCwgaGFzU2Vz
c2lvblNlbWFwaG9yZV0gewpAQCAtNDQ5LDEwICs0MjgsNiBAQCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2YXRlQVZG
T2JqQwogICAgICwgbV9lcnJvckxpc3RlbmVyKGFkb3B0TlMoW1tXZWJBVlNhbXBsZUJ1ZmZlckVy
cm9yTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoUGFyZW50OnRoaXNdKSkKICAgICAsIG1faXNBcHBl
bmRpbmdHcm91cChhZG9wdE9TT2JqZWN0KGRpc3BhdGNoX2dyb3VwX2NyZWF0ZSgpKSkKICAgICAs
IG1fbWVkaWFTb3VyY2UocGFyZW50KQotICAgICwgbV9jbGllbnQoMCkKLSAgICAsIG1fcGFyc2lu
Z1N1Y2NlZWRlZCh0cnVlKQotICAgICwgbV9lbmFibGVkVmlkZW9UcmFja0lEKC0xKQotICAgICwg
bV9wcm90ZWN0ZWRUcmFja0lEKC0xKQogewogfQogCkBAIC01MTIsMTAgKzQ4NywxMCBAQCB2b2lk
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0KEFW
QXNzZXQqIGFzc2V0KQogICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+Y2hhcmFjdGVy
aXN0aWNzQ2hhbmdlZCgpOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+
c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQodGhpcywg
c2VnbWVudCk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2
ZUluaXRpYWxpemF0aW9uU2VnbWVudChzZWdtZW50KTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6ZGlkRmFpbFRvUGFyc2VTdHJlYW1EYXRhV2l0aEVycm9yKE5TRXJyb3Iq
IGVycm9yKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkRmFpbFRvUGFyc2VT
dHJlYW1EYXRhV2l0aEVycm9yKE5TRXJyb3IgKmVycm9yKQogewogI2lmIExPR19ESVNBQkxFRAog
ICAgIFVOVVNFRF9QQVJBTShlcnJvcik7CkBAIC01MzEsMTAgKzUwNiw4IEBAIHN0cnVjdCBQcm9j
ZXNzQ29kZWRGcmFtZUluZm8gewogICAgIGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlOwogfTsKIAot
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJvdmlkZU1lZGlhRGF0YUZvclRy
YWNrSUQoaW50IHRyYWNrSUQsIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgY29uc3Qg
U3RyaW5nJiBtZWRpYVR5cGUsIHVuc2lnbmVkIGZsYWdzKQordm9pZCBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQzo6ZGlkUHJvdmlkZU1lZGlhRGF0YUZvclRyYWNrSUQoaW50IHRyYWNrSUQsIENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUsIHVu
c2lnbmVkKQogewotICAgIFVOVVNFRF9QQVJBTShmbGFncyk7Ci0KICAgICBwcm9jZXNzQ29kZWRG
cmFtZSh0cmFja0lELCBzYW1wbGVCdWZmZXIsIG1lZGlhVHlwZSk7CiB9CiAKQEAgLTU0OSwxNiAr
NTIyLDE0IEBAIGJvb2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnByb2Nlc3NDb2RlZEZy
YW1lKGludCB0cmFja0lELCBDTVNhbXBsZUJ1ZmZlclJlCiAgICAgaWYgKG1fY2xpZW50KSB7CiAg
ICAgICAgIFJlZjxNZWRpYVNhbXBsZT4gbWVkaWFTYW1wbGUgPSBNZWRpYVNhbXBsZUFWRk9iakM6
OmNyZWF0ZShzYW1wbGVCdWZmZXIsIHRyYWNrSUQpOwogICAgICAgICBMT0coTWVkaWFTb3VyY2VT
YW1wbGVzLCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnByb2Nlc3NDb2RlZEZyYW1lKCVw
KSAtIHNhbXBsZSglcykiLCB0aGlzLCB0b1N0cmluZyhtZWRpYVNhbXBsZS5nZXQoKSkudXRmOCgp
LmRhdGEoKSk7Ci0gICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2
ZVNhbXBsZSh0aGlzLCBtZWRpYVNhbXBsZSk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZm
ZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShtZWRpYVNhbXBsZSk7CiAgICAgfQogCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFJlYWNo
RW5kT2ZUcmFja1dpdGhUcmFja0lEKGludCB0cmFja0lELCBjb25zdCBTdHJpbmcmIG1lZGlhVHlw
ZSkKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFJlYWNoRW5kT2ZUcmFja1dp
dGhUcmFja0lEKGludCwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBVTlVTRURfUEFSQU0obWVkaWFU
eXBlKTsKLSAgICBVTlVTRURfUEFSQU0odHJhY2tJRCk7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIApAQCAtNTkwLDcgKzU2MSw2IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvCiAgICAgaWYg
KCFtX21lZGlhU291cmNlKQogICAgICAgICByZXR1cm47CiAKLSAgICBVTlVTRURfUEFSQU0odHJh
Y2tJRCk7CiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAgICAgTE9HKE1lZGlh
U291cmNlLCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250ZW50S2V5
UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQoJXApIC0gdHJhY2s6JWQiLCB0aGlz
LCB0cmFja0lEKTsKICAgICBtX3Byb3RlY3RlZFRyYWNrSUQgPSB0cmFja0lEOwpAQCAtNjA3LDYg
KzU3Nyw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250
ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvCiAgICAgfQogI2Vsc2UKICAgICBVTlVT
RURfUEFSQU0oaW5pdERhdGEpOworICAgIFVOVVNFRF9QQVJBTSh0cmFja0lEKTsKICAgICBVTlVT
RURfUEFSQU0oaGFzU2Vzc2lvblNlbWFwaG9yZSk7CiAjZW5kaWYKIH0KQEAgLTY1OSw3ICs2MzAs
NyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphcHBlbmRDb21wbGV0ZWQoKQog
ICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2V0TG9hZGluZ1Byb2dyZXNzc2VkKHRy
dWUpOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVy
UHJpdmF0ZUFwcGVuZENvbXBsZXRlKHRoaXMsIG1fcGFyc2luZ1N1Y2NlZWRlZCA/IFNvdXJjZUJ1
ZmZlclByaXZhdGVDbGllbnQ6OkFwcGVuZFN1Y2NlZWRlZCA6IFNvdXJjZUJ1ZmZlclByaXZhdGVD
bGllbnQ6OlBhcnNpbmdGYWlsZWQpOworICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJp
dmF0ZUFwcGVuZENvbXBsZXRlKG1fcGFyc2luZ1N1Y2NlZWRlZCA/IFNvdXJjZUJ1ZmZlclByaXZh
dGVDbGllbnQ6OkFwcGVuZFN1Y2NlZWRlZCA6IFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OlBh
cnNpbmdGYWlsZWQpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphYm9y
dCgpCkBAIC03MzUsMTggKzcwNiwxMiBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjpzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdAogCiBib29s
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpoYXNWaWRlbygpIGNvbnN0CiB7Ci0gICAgaWYg
KCFtX2NsaWVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIG1fY2xpZW50
LT5zb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8odGhpcyk7CisgICAgcmV0dXJuIG1fY2xpZW50
ICYmIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8oKTsKIH0KIAogYm9vbCBT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6aGFzQXVkaW8oKSBjb25zdAogewotICAgIGlmICgh
bV9jbGllbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBtX2NsaWVudC0+
c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKHRoaXMpOworICAgIHJldHVybiBtX2NsaWVudCAm
JiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKCk7CiB9CiAKIHZvaWQgU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnRyYWNrRGlkQ2hhbmdlRW5hYmxlZChWaWRlb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyogdHJhY2spCkBAIC04NzQsNyArODM5LDcgQEAgdm9p
ZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6bGF5ZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIKICAgICBpbnQgZXJyb3JDb2RlID0gW1tbZXJyb3IgdXNlcklu
Zm9dIHZhbHVlRm9yS2V5OkAiT1NTdGF0dXMiXSBpbnRWYWx1ZV07CiAKICAgICBpZiAobV9jbGll
bnQpCi0gICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRl
cmluZ0Vycm9yKHRoaXMsIGVycm9yQ29kZSk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZm
ZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmluZ0Vycm9yKGVycm9yQ29kZSk7CiB9CiAKIHZvaWQg
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnJlbmRlcmVyRGlkUmVjZWl2ZUVycm9yKEFWU2Ft
cGxlQnVmZmVyQXVkaW9SZW5kZXJlciAqcmVuZGVyZXIsIE5TRXJyb3IgKmVycm9yKQpAQCAtODk1
LDcgKzg2MCw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnJlbmRlcmVyRGlk
UmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kCiAgICAgICAgIHJldHVybjsKIH0K
IAotdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Zmx1c2goQXRvbWljU3RyaW5nIHRy
YWNrSURTdHJpbmcpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVzaChjb25z
dCBBdG9taWNTdHJpbmcmIHRyYWNrSURTdHJpbmcpCiB7CiAgICAgaW50IHRyYWNrSUQgPSB0cmFj
a0lEU3RyaW5nLnRvSW50KCk7CiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OmZsdXNoKCVwKSAtIHRyYWNrSWQ6ICVkIiwgdGhpcywgdHJhY2tJRCk7CkBA
IC05MjUsMTkgKzg5MCwxNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVz
aChBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKnJlbmRlcmVyKQogICAgICAgICBtX21lZGlh
U291cmNlLT5wbGF5ZXIoKS0+c2V0SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUocmVuZGVyZXIsIGZh
bHNlKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBs
ZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBNZWRpYVNhbXBsZSwgQXRvbWljU3RyaW5nIHRy
YWNrSURTdHJpbmcpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2Ft
cGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJ
RFN0cmluZykKIHsKICAgICBpbnQgdHJhY2tJRCA9IHRyYWNrSURTdHJpbmcudG9JbnQoKTsKICAg
ICBpZiAodHJhY2tJRCAhPSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQgJiYgIW1fYXVkaW9SZW5kZXJl
cnMuY29udGFpbnModHJhY2tJRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxNZWRp
YVNhbXBsZT4gbWVkaWFTYW1wbGUgPSBwcnBNZWRpYVNhbXBsZTsKLQotICAgIFBsYXRmb3JtU2Ft
cGxlIHBsYXRmb3JtU2FtcGxlID0gbWVkaWFTYW1wbGUtPnBsYXRmb3JtU2FtcGxlKCk7CisgICAg
UGxhdGZvcm1TYW1wbGUgcGxhdGZvcm1TYW1wbGUgPSBzYW1wbGUtPnBsYXRmb3JtU2FtcGxlKCk7
CiAgICAgaWYgKHBsYXRmb3JtU2FtcGxlLnR5cGUgIT0gUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxl
QnVmZmVyVHlwZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTE9HKE1lZGlhU291cmNlU2FtcGxl
cywgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKCVwKSAtIHNhbXBs
ZSglcykiLCB0aGlzLCB0b1N0cmluZygqbWVkaWFTYW1wbGUpLnV0ZjgoKS5kYXRhKCkpOworICAg
IExPRyhNZWRpYVNvdXJjZVNhbXBsZXMsICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5x
dWV1ZVNhbXBsZSglcCkgLSBzYW1wbGUoJXMpIiwgdGhpcywgdG9TdHJpbmcoc2FtcGxlLmdldCgp
KS51dGY4KCkuZGF0YSgpKTsKIAogICAgIGlmICh0cmFja0lEID09IG1fZW5hYmxlZFZpZGVvVHJh
Y2tJRCkgewogICAgICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9u
ID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9ybVNhbXBsZS5zYW1w
bGUuY21TYW1wbGVCdWZmZXIpOwpAQCAtOTUwLDIyICs5MTMsMjIgQEAgdm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBw
cnBNZWRpYVMKICAgICAgICAgICAgICAgICBpZiAoc2l6ZVdhc051bGwpCiAgICAgICAgICAgICAg
ICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zZXROYXR1cmFsU2l6ZShmb3JtYXRTaXpl
KTsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIG1fbWVkaWFTb3Vy
Y2UtPnBsYXllcigpLT5zaXplV2lsbENoYW5nZUF0VGltZShtZWRpYVNhbXBsZS0+cHJlc2VudGF0
aW9uVGltZSgpLCBmb3JtYXRTaXplKTsKKyAgICAgICAgICAgICAgICAgICAgbV9tZWRpYVNvdXJj
ZS0+cGxheWVyKCktPnNpemVXaWxsQ2hhbmdlQXRUaW1lKHNhbXBsZS0+cHJlc2VudGF0aW9uVGlt
ZSgpLCBmb3JtYXRTaXplKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIFtt
X2Rpc3BsYXlMYXllciBlbnF1ZXVlU2FtcGxlQnVmZmVyOnBsYXRmb3JtU2FtcGxlLnNhbXBsZS5j
bVNhbXBsZUJ1ZmZlcl07CiAgICAgICAgIGlmIChtX21lZGlhU291cmNlKQotICAgICAgICAgICAg
bV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoIW1lZGlh
U2FtcGxlLT5pc05vbkRpc3BsYXlpbmcoKSk7CisgICAgICAgICAgICBtX21lZGlhU291cmNlLT5w
bGF5ZXIoKS0+c2V0SGFzQXZhaWxhYmxlVmlkZW9GcmFtZSghc2FtcGxlLT5pc05vbkRpc3BsYXlp
bmcoKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgYXV0byByZW5kZXJlciA9IG1fYXVkaW9SZW5k
ZXJlcnMuZ2V0KHRyYWNrSUQpOwogICAgICAgICBbcmVuZGVyZXIgZW5xdWV1ZVNhbXBsZUJ1ZmZl
cjpwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXJdOwogICAgICAgICBpZiAobV9t
ZWRpYVNvdXJjZSkKLSAgICAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zZXRIYXNB
dmFpbGFibGVBdWRpb1NhbXBsZShyZW5kZXJlci5nZXQoKSwgIW1lZGlhU2FtcGxlLT5pc05vbkRp
c3BsYXlpbmcoKSk7CisgICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2V0SGFz
QXZhaWxhYmxlQXVkaW9TYW1wbGUocmVuZGVyZXIuZ2V0KCksICFzYW1wbGUtPmlzTm9uRGlzcGxh
eWluZygpKTsKICAgICB9CiB9CiAKLWJvb2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Omlz
UmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcgdHJhY2tJRFN0cmluZykKK2Jvb2wgU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmlzUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9t
aWNTdHJpbmcmIHRyYWNrSURTdHJpbmcpCiB7CiAgICAgaW50IHRyYWNrSUQgPSB0cmFja0lEU3Ry
aW5nLnRvSW50KCk7CiAgICAgaWYgKHRyYWNrSUQgPT0gbV9lbmFibGVkVmlkZW9UcmFja0lEKQpA
QCAtOTg0LDkgKzk0Nyw5IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldEFj
dGl2ZShib29sIGlzQWN0aXZlKQogCiBNZWRpYVRpbWUgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6OmZhc3RTZWVrVGltZUZvck1lZGlhVGltZShNZWRpYVRpbWUgdGltZSwgTWVkaWFUaW1lIG5l
Z2F0aXZlVGhyZXNob2xkLCBNZWRpYVRpbWUgcG9zaXRpdmVUaHJlc2hvbGQpCiB7Ci0gICAgaWYg
KG1fY2xpZW50KQotICAgICAgICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVG
YXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUodGhpcywgdGltZSwgbmVnYXRpdmVUaHJlc2hvbGQsIHBv
c2l0aXZlVGhyZXNob2xkKTsKLSAgICByZXR1cm4gdGltZTsKKyAgICBpZiAoIW1fY2xpZW50KQor
ICAgICAgICByZXR1cm4gdGltZTsKKyAgICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclBy
aXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUodGltZSwgbmVnYXRpdmVUaHJlc2hvbGQsIHBv
c2l0aXZlVGhyZXNob2xkKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
d2lsbFNlZWsoKQpAQCAtMTAwMSw3ICs5NjQsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjp3aWxsU2VlaygpCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZWVr
VG9UaW1lKE1lZGlhVGltZSB0aW1lKQogewogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9j
bGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKHRoaXMsIHRpbWUpOworICAgICAg
ICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZVNlZWtUb1RpbWUodGltZSk7CiB9CiAKIEZs
b2F0U2l6ZSBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6bmF0dXJhbFNpemUoKQpAQCAtMTAy
MSwxMCArOTg0LDEwIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZEJlY29t
ZVJlYWR5Rm9yTW9yZVNhbXBsZXMoaW50IHRyYWNrSUQpCiAgICAgfQogCiAgICAgaWYgKG1fY2xp
ZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZEJlY29tZVJlYWR5
Rm9yTW9yZVNhbXBsZXModGhpcywgQXRvbWljU3RyaW5nOjpudW1iZXIodHJhY2tJRCkpOworICAg
ICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNh
bXBsZXMoQXRvbWljU3RyaW5nOjpudW1iZXIodHJhY2tJRCkpOwogfQogCi12b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhB
dG9taWNTdHJpbmcgdHJhY2tJRFN0cmluZykKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHJhY2tJRFN0cmluZykKIHsKICAgICBpbnQgdHJhY2tJRCA9IHRyYWNrSURTdHJpbmcudG9J
bnQoKTsKICAgICBpZiAodHJhY2tJRCA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwCmlu
ZGV4IGU5YzY2MjIyM2M4MzY1ZGQwNzc2ZThhMmM0ZWVkNDhjMGYxMzAxZmQuLmM4NzFjNTk0ODM1
NTA4NTcxODJjN2EyNGQ1NTM0Yjg1YTVkNGVmN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZG
T2JqQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSwxMSArMjUsMTIgQEAKIAog
I2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCIK
LSNpbXBvcnQgIkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaCIKLSNpbXBvcnQgIk1lZGlhU2Vs
ZWN0aW9uR3JvdXBBVkZPYmpDLmgiCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKKyNpbXBv
cnQgIkFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaCIKKyNpbXBvcnQgIk1lZGlhU2VsZWN0aW9u
R3JvdXBBVkZPYmpDLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVmlkZW9UcmFja1ByaXZh
dGVBVkZPYmpDOjpWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMoQVZQbGF5ZXJJdGVtVHJhY2sqIHRy
YWNrKQpAQCAtMTA1LDQgKzEwNiwzIEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpz
ZXRTZWxlY3RlZChib29sIGVuYWJsZWQpCiB9CiAKICNlbmRpZgotCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kTWV0YWRhdGFUZXh0
VHJhY2tQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmgKaW5k
ZXggZjY2NmJlYmMyYjdmNDMyYWJjNTZmYjg4NmM4OTk3NmY3OWEzNTRhZC4uZTk0MmEyYzVmYzA3
ZTdiMGFhNTY1MTMxZmExODUxOGNjNWM0NGNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0
ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9JbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaApAQCAtMjMsOCAr
MjMsNyBAQAogICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1By
aXZhdGVHU3RyZWFtZXJfaAotI2RlZmluZSBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVH
U3RyZWFtZXJfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RS
RUFNRVIpICYmIEVOQUJMRShWSURFT19UUkFDSykKIApAQCAtNTAsMTMgKzQ5LDEzIEBAIHB1Ymxp
YzoKICAgICB2b2lkIGFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVk
aWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKICAgICB7CiAg
ICAgICAgIEFTU0VSVChjdWVGb3JtYXQoKSA9PSBEYXRhKTsKLSAgICAgICAgY2xpZW50KCktPmFk
ZERhdGFDdWUodGhpcywgc3RhcnQsIGVuZCwgZGF0YSwgbGVuZ3RoKTsKKyAgICAgICAgY2xpZW50
KCktPmFkZERhdGFDdWUoc3RhcnQsIGVuZCwgZGF0YSwgbGVuZ3RoKTsKICAgICB9CiAKICAgICB2
b2lkIGFkZEdlbmVyaWNDdWUoUGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0YT4gZGF0YSkKICAgICB7
CiAgICAgICAgIEFTU0VSVChjdWVGb3JtYXQoKSA9PSBHZW5lcmljKTsKLSAgICAgICAgY2xpZW50
KCktPmFkZEdlbmVyaWNDdWUodGhpcywgZGF0YSk7CisgICAgICAgIGNsaWVudCgpLT5hZGRHZW5l
cmljQ3VlKCpkYXRhKTsKICAgICB9CiAKIHByaXZhdGU6CkBAIC03Niw1ICs3NSwzIEBAIHByaXZh
dGU6CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU8pICYm
IFVTRShHU1RSRUFNRVIpICYmIEVOQUJMRShWSURFT19UUkFDSykKLQotI2VuZGlmIC8vIEluYmFu
ZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggNmIxZmZhYjkzYzM0
OGZjY2M3N2M2MzBmZWI2YmU4MmUxMDE5ZGFkNi4uMWQ5NDUyNzhiYTRkMDJjMDQ3ZjMyYTE1NzQ5
NWRiZGU2OGNmYTA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIHZvaWQgSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5VHJhY2tPZlNhbXBsZSgpCiAKICAgICAgICAgR1NU
X0lORk8oIlRyYWNrICVkIHBhcnNpbmcgc2FtcGxlOiAlLipzIiwgbV9pbmRleCwgc3RhdGljX2Nh
c3Q8aW50PihpbmZvLnNpemUpLAogICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4o
aW5mby5kYXRhKSk7Ci0gICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEN1ZURhdGEodGhpcywg
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oaW5mby5kYXRhKSwgaW5mby5zaXplKTsKKyAgICAgICAg
Y2xpZW50KCktPnBhcnNlV2ViVlRUQ3VlRGF0YShyZWludGVycHJldF9jYXN0PGNoYXIqPihpbmZv
LmRhdGEpLCBpbmZvLnNpemUpOwogICAgICAgICBnc3RfYnVmZmVyX3VubWFwKGJ1ZmZlciwgJmlu
Zm8pOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVy
LmNwcAppbmRleCA2MTlmMmNhNjFjYWJlNTk0MGFlYzNkMTNlY2Y3ZGRmNTczNWZkNzIxLi45YmUx
ZmVhMmRmZjVhMDZjZTQwZTg1MWZhNTNhMDNmNjQ4NGFlNWQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgdm9pZCBU
cmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mVGFnc0NoYW5nZWQoKQogICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAoZ2V0VGFnKHRhZ3MuZ2V0KCksIEdTVF9UQUdfVElUTEUs
IG1fbGFiZWwpKQotICAgICAgICBjbGllbnQtPmxhYmVsQ2hhbmdlZChtX293bmVyLCBtX2xhYmVs
KTsKKyAgICAgICAgY2xpZW50LT5sYWJlbENoYW5nZWQobV9sYWJlbCk7CiAKICAgICBBdG9taWNT
dHJpbmcgbGFuZ3VhZ2U7CiAgICAgaWYgKCFnZXRMYW5ndWFnZUNvZGUodGFncy5nZXQoKSwgbGFu
Z3VhZ2UpKQpAQCAtMTY3LDcgKzE2Nyw3IEBAIHZvaWQgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
cjo6bm90aWZ5VHJhY2tPZlRhZ3NDaGFuZ2VkKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9s
YW5ndWFnZSA9IGxhbmd1YWdlOwotICAgIGNsaWVudC0+bGFuZ3VhZ2VDaGFuZ2VkKG1fb3duZXIs
IG1fbGFuZ3VhZ2UpOworICAgIGNsaWVudC0+bGFuZ3VhZ2VDaGFuZ2VkKG1fbGFuZ3VhZ2UpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUu
Y3BwCmluZGV4IDAwNTEyZTYzYzczMmUzOTNlZjY1MTYwMTBkMWU2N2VlNmZlZGJiMzguLjg0OTI2
N2YyMWUwNjk4ZmI1ZDJhZGRlYWU1MDkxYjNjNWQwOTJmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBw
ZW5kUGlwZWxpbmUuY3BwCkBAIC02NzYsNyArNjc2LDcgQEAgdm9pZCBBcHBlbmRQaXBlbGluZTo6
YXBwc2lua05ld1NhbXBsZShHc3RTYW1wbGUqIHNhbXBsZSkKICAgICAgICAgICAgIG1lZGlhU2Ft
cGxlLT5hcHBseVB0c09mZnNldChNZWRpYVRpbWU6Onplcm9UaW1lKCkpOwogICAgICAgICB9CiAK
LSAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlLT5kaWRSZWNlaXZlU2FtcGxlKG1lZGlhU2Ft
cGxlKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlLT5kaWRSZWNlaXZlU2FtcGxlKCpt
ZWRpYVNhbXBsZSk7CiAgICAgICAgIHNldEFwcGVuZFN0YXRlKEFwcGVuZFN0YXRlOjpTYW1wbGlu
Zyk7CiAgICAgICAgIG1fZmxvd1JldHVybiA9IEdTVF9GTE9XX09LOwogICAgICAgICBtX25ld1Nh
bXBsZUNvbmRpdGlvbi5ub3RpZnlPbmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1Nv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDdmNTQ1ZWUzNWU0OGFhMDZiMDJh
OTk2M2UxMWFjYmNiZGNhNzc5NDEuLmU0YjEwN2Y3MGY1YzhjNjk4MTc0MTVlYmNhNGQ2NTViM2Fi
NWVjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyLmNwcApAQCAtNzYsNyArNzYsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXI6OmFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZQog
ICAgIGlmIChtX2NsaWVudC0+YXBwZW5kKHRoaXMsIGRhdGEsIGxlbmd0aCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC0+c291cmNlQnVmZmVyUHJp
dmF0ZUFwcGVuZENvbXBsZXRlKHRoaXMsIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OlJlYWRT
dHJlYW1GYWlsZWQpOworICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC0+c291cmNlQnVm
ZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OlJlYWRT
dHJlYW1GYWlsZWQpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmFi
b3J0KCkKQEAgLTEwNiwyMCArMTA2LDE5IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJl
YW1lcjo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBzdGF0ZSkKICAgICBt
X21lZGlhU291cmNlLT5zZXRSZWFkeVN0YXRlKHN0YXRlKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyOjpmbHVzaChBdG9taWNTdHJpbmcgdHJhY2tJZCkKK3ZvaWQgU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Zmx1c2goY29uc3QgQXRvbWljU3RyaW5nJiB0cmFj
a0lkKQogewogICAgIG1fY2xpZW50LT5mbHVzaCh0cmFja0lkKTsKIH0KIAotdm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyOjplbnF1ZXVlU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1w
bGU+IHBycFNhbXBsZSwgQXRvbWljU3RyaW5nKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyOjplbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0IEF0
b21pY1N0cmluZyYpCiB7CiAgICAgbV9ub3RpZnlXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyA9IGZh
bHNlOwogCi0gICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBwcm90ZWN0ZWRQcnBTYW1wbGUgPSBwcnBT
YW1wbGU7Ci0gICAgbV9jbGllbnQtPmVucXVldWVTYW1wbGUocHJvdGVjdGVkUHJwU2FtcGxlKTsK
KyAgICBtX2NsaWVudC0+ZW5xdWV1ZVNhbXBsZShXVEZNb3ZlKHNhbXBsZSkpOwogfQogCi1ib29s
IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmlzUmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9t
aWNTdHJpbmcpCitib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmlzUmVhZHlGb3JN
b3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAgIHJldHVybiBtX2lzUmVhZHlG
b3JNb3JlU2FtcGxlczsKIH0KQEAgLTEzNSw3ICsxMzQsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXI6Om5vdGlmeVJlYWR5Rm9yTW9yZVNhbXBsZXMoKQogICAgIEFTU0VSVChX
VEY6OmlzTWFpblRocmVhZCgpKTsKICAgICBzZXRSZWFkeUZvck1vcmVTYW1wbGVzKHRydWUpOwog
ICAgIGlmIChtX25vdGlmeVdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKQotICAgICAgICBtX3NvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZv
ck1vcmVTYW1wbGVzKHRoaXMsIG1fdHJhY2tJZCk7CisgICAgICAgIG1fc291cmNlQnVmZmVyUHJp
dmF0ZUNsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBs
ZXMobV90cmFja0lkKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpz
ZXRBY3RpdmUoYm9vbCBpc0FjdGl2ZSkKQEAgLTE0NCwxMiArMTQzLDEyIEBAIHZvaWQgU291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0QWN0aXZlKGJvb2wgaXNBY3RpdmUpCiAgICAgICAg
IG1fbWVkaWFTb3VyY2UtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRDaGFuZ2VBY3RpdmVTdGF0ZSh0
aGlzLCBpc0FjdGl2ZSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6
c3RvcEFza2luZ0Zvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykKK3ZvaWQgU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lcjo6c3RvcEFza2luZ0Zvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0
cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyOjpub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9t
aWNTdHJpbmcgdHJhY2tJZCkKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90
aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFj
a0lkKQogewogICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKICAgICBtX25vdGlmeVdo
ZW5SZWFkeUZvck1vcmVTYW1wbGVzID0gdHJ1ZTsKQEAgLTE1OSwyMCArMTU4LDE5IEBAIHZvaWQg
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9y
ZVNhbXBsZXMoQXRvbWljU3RyCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRp
ZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgU291cmNlQnVmZmVyUHJpdmF0ZUNs
aWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZW50JiBpbml0aWFsaXphdGlvblNlZ21lbnQpCiB7CiAg
ICAgaWYgKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCkKLSAgICAgICAgbV9zb3VyY2VCdWZm
ZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0
aW9uU2VnbWVudCh0aGlzLCBpbml0aWFsaXphdGlvblNlZ21lbnQpOworICAgICAgICBtX3NvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlh
bGl6YXRpb25TZWdtZW50KGluaXRpYWxpemF0aW9uU2VnbWVudCk7CiB9CiAKLXZvaWQgU291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGlkUmVjZWl2ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlh
U2FtcGxlPiBwcnBTYW1wbGUpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRp
ZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsKLSAgICBSZWZQdHI8TWVkaWFT
YW1wbGU+IHByb3RlY3RlZFBycFNhbXBsZSA9IHBycFNhbXBsZTsKICAgICBpZiAobV9zb3VyY2VC
dWZmZXJQcml2YXRlQ2xpZW50KQotICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQt
PnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKHRoaXMsICpwcm90ZWN0ZWRQcnBT
YW1wbGUpOworICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKHNhbXBsZSk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lcjo6ZGlkUmVjZWl2ZUFsbFBlbmRpbmdTYW1wbGVzKCkKIHsKICAgICBp
ZiAobV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KQotICAgICAgICBtX3NvdXJjZUJ1ZmZlclBy
aXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCBTb3Vy
Y2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQpOworICAgICAgICBtX3NvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShT
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQpOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1Nv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4
IDMwODQyNWQ1MDNjYWE0ZWI4NjhiMzg5OTliNWQ0Njc2OGRkNTQ5ODcuLjU2NzEzMTBmZjgyYzgz
Zjk4YzI2MGU4N2I0OGYxMzQxZWM4YWY2MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC01NCwyNiArNTQsMjYgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBjbGVhck1lZGlhU291cmNlKCkgeyBtX21lZGlhU291cmNlID0gbnVsbHB0
cjsgfQogCi0gICAgdm9pZCBzZXRDbGllbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCopIG92
ZXJyaWRlOwotICAgIHZvaWQgYXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1bnNpZ25lZCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBhYm9ydCgpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzZXRQYXJz
ZXJTdGF0ZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpIG92
ZXJyaWRlOwotICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBv
dmVycmlkZTsKLSAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUp
IG92ZXJyaWRlOwotCi0gICAgdm9pZCBmbHVzaChBdG9taWNTdHJpbmcpIG92ZXJyaWRlOwotICAg
IHZvaWQgZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiwgQXRvbWljU3RyaW5n
KSBvdmVycmlkZTsKLSAgICBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcp
IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIG92ZXJyaWRlOwotICAgIHZvaWQg
c3RvcEFza2luZ0Zvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpIG92ZXJy
aWRlOworICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqKSBmaW5h
bDsKKyAgICB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQpIGZpbmFs
OworICAgIHZvaWQgYWJvcnQoKSBmaW5hbDsKKyAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBm
aW5hbDsKKyAgICB2b2lkIHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKSBmaW5hbDsKKyAgICBNZWRp
YVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBz
ZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBmaW5hbDsKKworICAgIHZvaWQg
Zmx1c2goY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBlbnF1ZXVlU2FtcGxl
KFJlZjxNZWRpYVNhbXBsZT4mJiwgY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgYm9v
bCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAg
dm9pZCBzZXRBY3RpdmUoYm9vbCkgZmluYWw7CisgICAgdm9pZCBzdG9wQXNraW5nRm9yTW9yZVNh
bXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBub3RpZnlDbGllbnRX
aGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKIAogICAg
IHZvaWQgc2V0UmVhZHlGb3JNb3JlU2FtcGxlcyhib29sKTsKICAgICB2b2lkIG5vdGlmeVJlYWR5
Rm9yTW9yZVNhbXBsZXMoKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2Vn
bWVudChjb25zdCBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpJbml0aWFsaXphdGlvblNlZ21l
bnQmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4p
OworICAgIHZvaWQgZGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYpOwogICAgIHZvaWQgZGlk
UmVjZWl2ZUFsbFBlbmRpbmdTYW1wbGVzKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3Ry
ZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmgKaW5kZXggYmExOTEyMWMyMjJmYjYyNzY2MzkyYTcxZWZiYzU2NWZl
OWM4Nzk2My4uNjBjMDA3NWQ2NzJhNjI5MDI1ODFmOTM4ZTZhZmE0ODNiMTY2MDQ4YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBBdWRpb1RyYWNrUHJpdmF0
ZU1lZGlhU3RyZWFtX2gKLSNkZWZpbmUgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbV9oCisj
cHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKIApAQCAtMzYsMTQgKzM1LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0gZmluYWwgOiBwdWJsaWMgQXVkaW9UcmFja1ByaXZh
dGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW0pCiBwdWJsaWM6Ci0KICAgICBzdGF0aWMgUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW0+IGNyZWF0ZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc3RyZWFtVHJhY2spCiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3Ry
ZWFtKHN0cmVhbVRyYWNrKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB+QXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbSgpIHsgfQotCiAgICAgS2luZCBraW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gS2luZDo6TWFpbjsgfQogICAgIEF0b21pY1N0cmluZyBpZCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1faWQ7IH0KICAgICBBdG9taWNTdHJpbmcgbGFiZWwoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX2xhYmVsOyB9CkBAIC01MiwxNyArNDgsMTcgQEAgcHVibGljOgogCiAgICAg
dm9pZCBzZXRUcmFja0luZGV4KGludCBpbmRleCkgeyBtX2luZGV4ID0gaW5kZXg7IH0KIAotICAg
IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBzdHJlYW1UcmFjaygpIGNvbnN0IHsgcmV0dXJuIG1f
c3RyZWFtVHJhY2suZ2V0KCk7IH0KKyAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc3RyZWFt
VHJhY2soKSB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAg
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJh
Y2spCi0gICAgICAgIDogbV9zdHJlYW1UcmFjaygmdHJhY2spCisgICAgICAgIDogbV9zdHJlYW1U
cmFjayh0cmFjaykKICAgICAgICAgLCBtX2lkKHRyYWNrLmlkKCkpCiAgICAgICAgICwgbV9sYWJl
bCh0cmFjay5sYWJlbCgpKQogICAgIHsKICAgICB9CiAKLSAgICBSZWZQdHI8TWVkaWFTdHJlYW1U
cmFja1ByaXZhdGU+IG1fc3RyZWFtVHJhY2s7CisgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlPiBtX3N0cmVhbVRyYWNrOwogICAgIEF0b21pY1N0cmluZyBtX2lkOwogICAgIEF0b21pY1N0
cmluZyBtX2xhYmVsOwogICAgIGludCBtX2luZGV4IHsgMCB9OwpAQCAtNzEsNSArNjcsMyBAQCBw
cml2YXRlOgogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9WaWRlb1RyYWNr
UHJpdmF0ZU1lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmgKaW5kZXggZTFiZmExNmYxNGQ3MjlhZmQw
ZDFlNGVlZmIxY2U5OTYyMTU3MDE2Ni4uMDQ1ODM4OWYzOTc0ODcyNzJhNzkzMTA0YjBhM2RmNWIz
YTJmYmQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
VmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMyw4ICsyMyw3
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBW
aWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtX2gKLSNkZWZpbmUgVmlkZW9UcmFja1ByaXZhdGVN
ZWRpYVN0cmVhbV9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKIApAQCAtMzYsMTQgKzM1LDExIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0gZmluYWwgOiBwdWJsaWMg
VmlkZW9UcmFja1ByaXZhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFZpZGVvVHJhY2tQ
cml2YXRlTWVkaWFTdHJlYW0pCiBwdWJsaWM6Ci0KICAgICBzdGF0aWMgUmVmUHRyPFZpZGVvVHJh
Y2tQcml2YXRlTWVkaWFTdHJlYW0+IGNyZWF0ZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc3Ry
ZWFtVHJhY2spCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWaWRlb1RyYWNr
UHJpdmF0ZU1lZGlhU3RyZWFtKHN0cmVhbVRyYWNrKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB+
VmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSgpIHsgfQotCiAgICAgS2luZCBraW5kKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gS2luZDo6TWFpbjsgfQogICAgIEF0b21pY1N0cmluZyBpZCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faWQ7IH0KICAgICBBdG9taWNTdHJpbmcgbGFiZWwo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2xhYmVsOyB9CkBAIC01MiwxNyArNDgsMTcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBzZXRUcmFja0luZGV4KGludCBpbmRleCkgeyBtX2luZGV4ID0g
aW5kZXg7IH0KIAotICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBzdHJlYW1UcmFjaygpIGNv
bnN0IHsgcmV0dXJuIG1fc3RyZWFtVHJhY2suZ2V0KCk7IH0KKyAgICBNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYgc3RyZWFtVHJhY2soKSB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CiAK
IHByaXZhdGU6CiAgICAgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbShNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYgdHJhY2spCi0gICAgICAgIDogbV9zdHJlYW1UcmFjaygmdHJhY2spCisgICAg
ICAgIDogbV9zdHJlYW1UcmFjayh0cmFjaykKICAgICAgICAgLCBtX2lkKHRyYWNrLmlkKCkpCiAg
ICAgICAgICwgbV9sYWJlbCh0cmFjay5sYWJlbCgpKQogICAgIHsKICAgICB9CiAKLSAgICBSZWZQ
dHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IG1fc3RyZWFtVHJhY2s7CisgICAgUmVmPE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlPiBtX3N0cmVhbVRyYWNrOwogICAgIEF0b21pY1N0cmluZyBtX2lk
OwogICAgIEF0b21pY1N0cmluZyBtX2xhYmVsOwogICAgIGludCBtX2luZGV4IHsgMCB9OwpAQCAt
NzEsNSArNjcsMyBAQCBwcml2YXRlOgogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RSQUNL
KSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gVmlkZW9UcmFja1ByaXZhdGVN
ZWRpYVN0cmVhbV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21l
ZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCmluZGV4
IDQ4ZGY0YmNjNGMzYmI4ZGEyYzVmNDkwMGUxNzUwNjAwNzkxODU2ZjMuLmUwMzFhOWI1ZDIwZDEy
YTFiOTZlMGUxMTZjZTRiYWE5NTRjZjAyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZl
clByaXZhdGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0y
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
My0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclBy
aXZhdGVDbGllbnQuaCIKICNpbmNsdWRlIDxtYXA+CiAjaW5jbHVkZSA8cnVudGltZS9BcnJheUJ1
ZmZlci5oPgotI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9TdHJp
bmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNjUsNyArMTY0LDcg
QEAgdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6YXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNo
YXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKICAgICB9CiAKICAgICBpZiAobV9jbGllbnQpCi0g
ICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUodGhpcywg
cmVzdWx0KTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21w
bGV0ZShyZXN1bHQpOwogfQogCiB2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNl
aXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IE1vY2tJbml0aWFsaXphdGlvbkJveCYgaW5p
dEJveCkKQEAgLTE5Niw3ICsxOTUsNyBAQCB2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpk
aWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IE1vY2tJbml0aWFsaQogICAgICAg
ICB9CiAgICAgfQogCi0gICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZl
SW5pdGlhbGl6YXRpb25TZWdtZW50KHRoaXMsIHNlZ21lbnQpOworICAgIG1fY2xpZW50LT5zb3Vy
Y2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChzZWdtZW50KTsK
IH0KIAogCkBAIC0yMDUsNyArMjA0LDcgQEAgdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6
ZGlkUmVjZWl2ZVNhbXBsZShjb25zdCBNb2NrU2FtcGxlQm94JiBzYW1wbGVCb3gpCiAgICAgaWYg
KCFtX2NsaWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKHRoaXMsIE1vY2tNZWRpYVNhbXBsZTo6Y3JlYXRlKHNh
bXBsZUJveCkpOworICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNh
bXBsZShNb2NrTWVkaWFTYW1wbGU6OmNyZWF0ZShzYW1wbGVCb3gpKTsKIH0KIAogdm9pZCBNb2Nr
U291cmNlQnVmZmVyUHJpdmF0ZTo6YWJvcnQoKQpAQCAtMjM5LDIyICsyMzgsMjEgQEAgdm9pZCBN
b2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6c2V0QWN0aXZlKGJvb2wgaXNBY3RpdmUpCiAgICAgICAg
IG1fbWVkaWFTb3VyY2UtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRDaGFuZ2VBY3RpdmVTdGF0ZSh0
aGlzLCBpc0FjdGl2ZSk7CiB9CiAKLVZlY3RvcjxTdHJpbmc+IE1vY2tTb3VyY2VCdWZmZXJQcml2
YXRlOjplbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKEF0b21pY1N0cmluZykKK1ZlY3RvcjxTdHJp
bmc+IE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjplbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKGNv
bnN0IEF0b21pY1N0cmluZyYpCiB7CiAgICAgcmV0dXJuIG1fZW5xdWV1ZWRTYW1wbGVzOwogfQog
Ci12b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjplbnF1ZXVlU2FtcGxlKFBhc3NSZWZQdHI8
TWVkaWFTYW1wbGU+IHBycFNhbXBsZSwgQXRvbWljU3RyaW5nKQordm9pZCBNb2NrU291cmNlQnVm
ZmVyUHJpdmF0ZTo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25z
dCBBdG9taWNTdHJpbmcmKQogewotICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gc2FtcGxlID0gcHJw
U2FtcGxlOwotICAgIGlmICghbV9tZWRpYVNvdXJjZSB8fCAhc2FtcGxlKQorICAgIGlmICghbV9t
ZWRpYVNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUGxhdGZvcm1TYW1wbGUgcGxhdGZv
cm1TYW1wbGUgPSBzYW1wbGUtPnBsYXRmb3JtU2FtcGxlKCk7CiAgICAgaWYgKHBsYXRmb3JtU2Ft
cGxlLnR5cGUgIT0gUGxhdGZvcm1TYW1wbGU6Ok1vY2tTYW1wbGVCb3hUeXBlKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBNb2NrU2FtcGxlQm94KiBib3ggPSBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUu
bW9ja1NhbXBsZUJveDsKKyAgICBhdXRvKiBib3ggPSBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUubW9j
a1NhbXBsZUJveDsKICAgICBpZiAoIWJveCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yNjYsMzcg
KzI2NCwzMCBAQCB2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjplbnF1ZXVlU2FtcGxlKFBh
c3NSZWZQdHI8TWVkaWFTYW1wbGU+IHBycFNhbXBsZSwgQQogICAgIGlmIChib3gtPmlzRGVsYXll
ZCgpKQogICAgICAgICBtX21lZGlhU291cmNlLT5pbmNyZW1lbnRUb3RhbEZyYW1lRGVsYXlCeShN
ZWRpYVRpbWUoMSwgMSkpOwogCi0gICAgbV9lbnF1ZXVlZFNhbXBsZXMuYXBwZW5kKHRvU3RyaW5n
KHNhbXBsZSkpOworICAgIG1fZW5xdWV1ZWRTYW1wbGVzLmFwcGVuZCh0b1N0cmluZyhzYW1wbGUu
Z2V0KCkpKTsKIH0KIAogYm9vbCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6aGFzVmlkZW8oKSBj
b25zdAogewotICAgIGlmICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IHJldHVybiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKHRoaXMpOworICAg
IHJldHVybiBtX2NsaWVudCAmJiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVv
KCk7CiB9CiAKIGJvb2wgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6Omhhc0F1ZGlvKCkgY29uc3QK
IHsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1
cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyh0aGlzKTsKKyAgICByZXR1
cm4gbV9jbGllbnQgJiYgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygpOwog
fQogCi0KIE1lZGlhVGltZSBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZmFzdFNlZWtUaW1lRm9y
TWVkaWFUaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgTWVkaWFUaW1lJiBuZWdhdGl2
ZVRocmVzaG9sZCwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRocmVzaG9sZCkKIHsKICAgICBp
ZiAobV9jbGllbnQpCi0gICAgICAgIHJldHVybiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0
ZUZhc3RTZWVrVGltZUZvck1lZGlhVGltZSh0aGlzLCB0aW1lLCBuZWdhdGl2ZVRocmVzaG9sZCwg
cG9zaXRpdmVUaHJlc2hvbGQpOworICAgICAgICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZl
clByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUodGltZSwgbmVnYXRpdmVUaHJlc2hvbGQs
IHBvc2l0aXZlVGhyZXNob2xkKTsKICAgICByZXR1cm4gdGltZTsKIH0KIAogdm9pZCBNb2NrU291
cmNlQnVmZmVyUHJpdmF0ZTo6c2Vla1RvVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUpCiB7CiAg
ICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZVNl
ZWtUb1RpbWUodGhpcywgdGltZSk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2
YXRlU2Vla1RvVGltZSh0aW1lKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJp
dmF0ZS5oCmluZGV4IDc0NGI0YzEwN2MzMTAyNmZhNDI5YThmMTJkMjU2M2JmYzM2MzJkMjguLjQ5
NjUwNTUzYjA3YmVhYzA3ZjUzMTBlZjVlNTZlZjgyYzcyMGEwNjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tT
b3VyY2VCdWZmZXJQcml2YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEzLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywxNSArMjMsMTEgQEAKICAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAogICovCiAKLSNpZm5kZWYgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGVfaAotI2RlZmluZSBNb2Nr
U291cmNlQnVmZmVyUHJpdmF0ZV9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShNRURJQV9T
T1VSQ0UpCiAKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlLmgiCi0jaW5jbHVkZSA8d3Rm
L01lZGlhVGltZS5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArMzksNyBAQCBjbGFzcyBN
b2NrU2FtcGxlQm94OwogY2xhc3MgVGltZVJhbmdlczsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRl
OwogCi1jbGFzcyBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZSA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQ
cml2YXRlIHsKK2NsYXNzIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlIGZpbmFsIDogcHVibGljIFNv
dXJjZUJ1ZmZlclByaXZhdGUgewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8TW9ja1NvdXJj
ZUJ1ZmZlclByaXZhdGU+IGNyZWF0ZShNb2NrTWVkaWFTb3VyY2VQcml2YXRlKik7CiAgICAgdmly
dHVhbCB+TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUoKTsKQEAgLTYwLDIwICs1NiwyMCBAQCBwcml2
YXRlOgogICAgIGV4cGxpY2l0IE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlKE1vY2tNZWRpYVNvdXJj
ZVByaXZhdGUqKTsKIAogICAgIC8vIFNvdXJjZUJ1ZmZlclByaXZhdGUgb3ZlcnJpZGVzCi0gICAg
dm9pZCBzZXRDbGllbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwotICAg
IHZvaWQgYXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBhYm9ydCgpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzZXRQYXJz
ZXJTdGF0ZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpIG92
ZXJyaWRlOwotICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBv
dmVycmlkZTsKLSAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUp
IG92ZXJyaWRlOworICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQq
KSBmaW5hbDsKKyAgICB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNp
Z25lZCBsZW5ndGgpIGZpbmFsOworICAgIHZvaWQgYWJvcnQoKSBmaW5hbDsKKyAgICB2b2lkIHJl
c2V0UGFyc2VyU3RhdGUoKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZWRGcm9tTWVkaWFTb3VyY2Uo
KSBmaW5hbDsKKyAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qg
ZmluYWw7CisgICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBm
aW5hbDsKIAotICAgIHZvaWQgZmx1c2goQXRvbWljU3RyaW5nKSBvdmVycmlkZSB7IG1fZW5xdWV1
ZWRTYW1wbGVzLmNsZWFyKCk7IH0KLSAgICB2b2lkIGVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxN
ZWRpYVNhbXBsZT4sIEF0b21pY1N0cmluZykgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWR5Rm9y
TW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAg
dm9pZCBzZXRBY3RpdmUoYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBmbHVzaChjb25zdCBBdG9t
aWNTdHJpbmcmKSBmaW5hbCB7IG1fZW5xdWV1ZWRTYW1wbGVzLmNsZWFyKCk7IH0KKyAgICB2b2lk
IGVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBm
aW5hbDsKKyAgICBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcm
KSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgdm9pZCBzZXRBY3RpdmUoYm9vbCkgZmluYWw7
CiAKLSAgICBWZWN0b3I8U3RyaW5nPiBlbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKEF0b21pY1N0
cmluZykgb3ZlcnJpZGU7CisgICAgVmVjdG9yPFN0cmluZz4gZW5xdWV1ZWRTYW1wbGVzRm9yVHJh
Y2tJRChjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUlu
aXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBNb2NrSW5pdGlhbGl6YXRpb25Cb3gmKTsKICAgICB2
b2lkIGRpZFJlY2VpdmVTYW1wbGUoY29uc3QgTW9ja1NhbXBsZUJveCYpOwpAQCAtODgsNiArODQs
MyBAQCBwcml2YXRlOgogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgVVNF
KEFWRk9VTkRBVElPTikKLQotI2VuZGlmCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1RyYWNrcy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrVHJhY2tzLmgKaW5kZXggOGQwMzE5ZjJkMGQ2Njg4
NmQ1YTU5MDFmZTEyZGJiMzY0MjNiY2U2Yi4uMDczZjM2ODYzN2IwOTZiZTBmMjViYTIzOGEzN2Y3
MmIyNjU5MzhjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRp
YXNvdXJjZS9Nb2NrVHJhY2tzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9t
ZWRpYXNvdXJjZS9Nb2NrVHJhY2tzLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsOCArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAg
Ki8KIAotI2lmbmRlZiBNb2NrVHJhY2tzX2gKLSNkZWZpbmUgTW9ja1RyYWNrc19oCisjcHJhZ21h
IG9uY2UKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKQEAgLTM3LDcgKzM2LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNb2NrQXVkaW9UcmFja1ByaXZhdGUgOiBwdWJsaWMg
QXVkaW9UcmFja1ByaXZhdGUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8TW9ja0F1ZGlv
VHJhY2tQcml2YXRlPiBjcmVhdGUoY29uc3QgTW9ja1RyYWNrQm94JiBib3gpIHsgcmV0dXJuIGFk
b3B0UmVmKG5ldyBNb2NrQXVkaW9UcmFja1ByaXZhdGUoYm94KSk7IH0KKyAgICBzdGF0aWMgUmVm
PE1vY2tBdWRpb1RyYWNrUHJpdmF0ZT4gY3JlYXRlKGNvbnN0IE1vY2tUcmFja0JveCYgYm94KSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IE1vY2tBdWRpb1RyYWNrUHJpdmF0ZShib3gpKTsgfQogICAg
IHZpcnR1YWwgfk1vY2tBdWRpb1RyYWNrUHJpdmF0ZSgpIHsgfQogCiAgICAgdmlydHVhbCBBdG9t
aWNTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CkBAIC00NSw3ICs0NCw3IEBAIHB1
YmxpYzoKIHByb3RlY3RlZDoKICAgICBNb2NrQXVkaW9UcmFja1ByaXZhdGUoY29uc3QgTW9ja1Ry
YWNrQm94JiBib3gpCiAgICAgICAgIDogbV9ib3goYm94KQotICAgICAgICAsIG1faWQoU3RyaW5n
Ojpmb3JtYXQoIiVkIiwgYm94LnRyYWNrSUQoKSkpCisgICAgICAgICwgbV9pZChBdG9taWNTdHJp
bmc6Om51bWJlcihib3gudHJhY2tJRCgpKSkKICAgICB7CiAgICAgfQogICAgIE1vY2tUcmFja0Jv
eCBtX2JveDsKQEAgLTYzLDcgKzYyLDcgQEAgcHJvdGVjdGVkOgogICAgIE1vY2tUZXh0VHJhY2tQ
cml2YXRlKGNvbnN0IE1vY2tUcmFja0JveCYgYm94KQogICAgICAgICA6IEluYmFuZFRleHRUcmFj
a1ByaXZhdGUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6R2VuZXJpYykKICAgICAgICAgLCBtX2Jv
eChib3gpCi0gICAgICAgICwgbV9pZChTdHJpbmc6OmZvcm1hdCgiJWQiLCBib3gudHJhY2tJRCgp
KSkKKyAgICAgICAgLCBtX2lkKEF0b21pY1N0cmluZzo6bnVtYmVyKGJveC50cmFja0lEKCkpKQog
ICAgIHsKICAgICB9CiAgICAgTW9ja1RyYWNrQm94IG1fYm94OwpAQCAtODEsNyArODAsNyBAQCBw
dWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgTW9ja1ZpZGVvVHJhY2tQcml2YXRlKGNvbnN0IE1vY2tU
cmFja0JveCYgYm94KQogICAgICAgICA6IG1fYm94KGJveCkKLSAgICAgICAgLCBtX2lkKFN0cmlu
Zzo6Zm9ybWF0KCIlZCIsIGJveC50cmFja0lEKCkpKQorICAgICAgICAsIG1faWQoQXRvbWljU3Ry
aW5nOjpudW1iZXIoYm94LnRyYWNrSUQoKSkpCiAgICAgewogICAgIH0KICAgICBNb2NrVHJhY2tC
b3ggbV9ib3g7CkBAIC05MSw1ICs5MCwzIEBAIHByb3RlY3RlZDoKIH0KIAogI2VuZGlmCi0KLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90
dGVkUGx1Z0luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbi5jcHAKaW5kZXggMzNmZTQzOTYwMmNjZDA3NTBhZTNjM2NiMGM0ZDc4MGNmNzFiZWM4
My4uN2YyYzY5MDk3NmQ2OGExY2RkOTU4NDRhM2YwZGJkNWU4MGIyMzRhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQz
LDYgKzQzLDcgQEAKICNpbmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRlICJQYXRoLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUmVuZGVySW1hZ2VSZXNv
dXJjZS5oIgogI2luY2x1ZGUgIlJlbmRlckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmll
dy5oIgogI2luY2x1ZGUgPHd0Zi9TdGFja1N0YXRzLmg+CkBAIC01Miw3ICs1Myw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0
eWxlKQogICAgIDogUmVuZGVyRW1iZWRkZWRPYmplY3QoZWxlbWVudCwgV1RGTW92ZShzdHlsZSkp
CiAgICAgLCBtX3NuYXBzaG90UmVzb3VyY2Uoc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJJbWFnZVJl
c291cmNlPigpKQotICAgICwgbV9pc1BvdGVudGlhbE1vdXNlQWN0aXZhdGlvbihmYWxzZSkKIHsK
ICAgICBtX3NuYXBzaG90UmVzb3VyY2UtPmluaXRpYWxpemUodGhpcyk7CiB9CkBAIC04MiwxMyAr
ODIsMTMgQEAgdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6bGF5b3V0KCkKICAgICB2aWV3
KCkuZnJhbWVWaWV3KCkuYWRkRW1iZWRkZWRPYmplY3RUb1VwZGF0ZSgqdGhpcyk7CiB9CiAKLXZv
aWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1h
Z2U+IGltYWdlKQordm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6dXBkYXRlU25hcHNob3Qo
SW1hZ2UqIGltYWdlKQogewogICAgIC8vIFplcm8tc2l6ZSBwbHVnaW5zIHdpbGwgaGF2ZSBubyBp
bWFnZS4KICAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3NuYXBzaG90
UmVzb3VyY2UtPnNldENhY2hlZEltYWdlKG5ldyBDYWNoZWRJbWFnZShpbWFnZS5nZXQoKSwgdmll
dygpLmZyYW1lVmlldygpLmZyYW1lKCkucGFnZSgpLT5zZXNzaW9uSUQoKSkpOworICAgIG1fc25h
cHNob3RSZXNvdXJjZS0+c2V0Q2FjaGVkSW1hZ2UobmV3IENhY2hlZEltYWdlKGltYWdlLCB2aWV3
KCkuZnJhbWVWaWV3KCkuZnJhbWUoKS5wYWdlKCktPnNlc3Npb25JRCgpKSk7CiAgICAgcmVwYWlu
dCgpOwogfQogCkBAIC0xNTAsMTIgKzE1MCwxMiBAQCBDdXJzb3JEaXJlY3RpdmUgUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW46OmdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIEN1cgog
ICAgIHJldHVybiBSZW5kZXJFbWJlZGRlZE9iamVjdDo6Z2V0Q3Vyc29yKHBvaW50LCBvdmVycmlk
ZUN1cnNvcik7CiB9CiAKLXZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmhhbmRsZUV2ZW50
KEV2ZW50KiBldmVudCkKK3ZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmhhbmRsZUV2ZW50
KEV2ZW50JiBldmVudCkKIHsKLSAgICBpZiAoIWlzPE1vdXNlRXZlbnQ+KCpldmVudCkpCisgICAg
aWYgKCFpczxNb3VzZUV2ZW50PihldmVudCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIE1vdXNl
RXZlbnQmIG1vdXNlRXZlbnQgPSBkb3duY2FzdDxNb3VzZUV2ZW50PigqZXZlbnQpOworICAgIGF1
dG8mIG1vdXNlRXZlbnQgPSBkb3duY2FzdDxNb3VzZUV2ZW50PihldmVudCk7CiAKICAgICAvLyBJ
ZiB3ZSdyZSBhIHNuYXBzaG90dGVkIHBsdWdpbiwgd2Ugd2FudCB0byBtYWtlIHN1cmUgd2UgYWN0
aXZhdGUgb24KICAgICAvLyBjbGlja3MgZXZlbiBpZiB0aGUgcGFnZSBpcyBwcmV2ZW50aW5nIG91
ciBkZWZhdWx0IGJlaGF2aW91ci4gT3RoZXJ3aXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCmluZGV4IDEzNGRiODMzYjc5OGVlNWMz
N2IxYmEyN2RhNTQ4ZmM1NDNlZjg2NDcuLmNhYjViZmJjNGZhZjY3ZDY2YjZiODk4MjE1ZGIyNjBh
MTI2ZWFlYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbi5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI2LDEyICsyNiwxMSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgotI2luY2x1ZGUgIlJlbmRlckltYWdlUmVzb3VyY2Uu
aCIKLSNpbmNsdWRlICJUaW1lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhU
TUxQbHVnSW5JbWFnZUVsZW1lbnQ7CitjbGFzcyBSZW5kZXJJbWFnZVJlc291cmNlOwogCiBjbGFz
cyBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbiBmaW5hbCA6IHB1YmxpYyBSZW5kZXJFbWJlZGRlZE9i
amVjdCB7CiBwdWJsaWM6CkBAIC0zOSwyNyArMzgsMjEgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
flJlbmRlclNuYXBzaG90dGVkUGx1Z0luKCk7CiAKICAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
JiBwbHVnSW5JbWFnZUVsZW1lbnQoKSBjb25zdDsKLQotICAgIHZvaWQgdXBkYXRlU25hcHNob3Qo
UGFzc1JlZlB0cjxJbWFnZT4pOwotCi0gICAgdm9pZCBoYW5kbGVFdmVudChFdmVudCopOworICAg
IHZvaWQgdXBkYXRlU25hcHNob3QoSW1hZ2UqKTsKKyAgICB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50
Jik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBmcmFtZU93bmVyRWxlbWVudCgpIGNvbnN0ID0gZGVs
ZXRlOwotICAgIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biAiUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4iOyB9Ci0KLSAgICBDdXJzb3JEaXJlY3RpdmUgZ2V0
Q3Vyc29yKGNvbnN0IExheW91dFBvaW50JiwgQ3Vyc29yJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBpc1NuYXBzaG90dGVkUGx1Z0luKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQotICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlk
ZTsKLSAgICAKLSAgICBib29sIGNhbkhhdmVXaWRnZXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBmYWxzZTsgfQotCisgICAgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuICJSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbiI7IH0KKyAgICBDdXJzb3JEaXJlY3RpdmUg
Z2V0Q3Vyc29yKGNvbnN0IExheW91dFBvaW50JiwgQ3Vyc29yJikgY29uc3QgZmluYWw7CisgICAg
Ym9vbCBpc1NuYXBzaG90dGVkUGx1Z0luKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBmaW5hbDsKKyAg
ICBib29sIGNhbkhhdmVXaWRnZXQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZvaWQgcGFpbnRTbmFwc2hvdChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwotCi0g
ICAgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGxheW91dCgpIGZpbmFsOwogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlckltYWdlUmVzb3VyY2U+IG1fc25hcHNob3RSZXNvdXJj
ZTsKLSAgICBib29sIG1faXNQb3RlbnRpYWxNb3VzZUFjdGl2YXRpb247CisgICAgYm9vbCBtX2lz
UG90ZW50aWFsTW91c2VBY3RpdmF0aW9uIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCmluZGV4IDhiN2Q5MjQ1
NjRhNjRmMDFjOTZkMGJlMjQzMDhjZWFhOTg2ZDE2ZTkuLmUyNjc4NjlmZTc3MTEwNzEwNDIwMmVi
MTQ2NjZkODk1ZmExNGE4YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3Jp
cHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaApA
QCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlr
b2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDcgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykg
MjAwOC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtMjksMTMgKzMwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
U1ZHU2NyaXB0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICwgcHVibGljIFNWR1VSSVJlZmVyZW5jZQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAsIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICwgcHVibGljIFNjcmlwdEVsZW1lbnQgeworY2xhc3Mg
U1ZHU2NyaXB0RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50LCBwdWJsaWMgU1ZHVVJJ
UmVmZXJlbmNlLCBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgcHVibGljIFNj
cmlwdEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U1ZHU2NyaXB0RWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgd2FzSW5zZXJ0ZWRC
eVBhcnNlcik7CiAKKyAgICB1c2luZyBTVkdFbGVtZW50OjpyZWY7CisgICAgdXNpbmcgU1ZHRWxl
bWVudDo6ZGVyZWY7CisKIHByaXZhdGU6CiAgICAgU1ZHU2NyaXB0RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJvb2wgYWxy
ZWFkeVN0YXJ0ZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hN
TERvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1l
bnRQYXJzZXIuY3BwCmluZGV4IDkyNjA1ZmMwMjM1YzdhZWZiZTc2YWM4NjFlMGY4NWY2ZThhNWRh
OGYuLjY5NTZkNzhhNzFiMjA1ZmExMmI0MzMzMGMzZTM4NDk3YzE2NjNlMzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0xLDYgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMCBQZXRlciBLZWxseSAocG1rQHBvc3QuY29t
KQotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292
IChhcEB3ZWJraXQub3JnKQogICogQ29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgKHNh
bUB3ZWJraXQub3JnKQogICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQpAQCAtMjM3LDggKzIzNyw3IEBAIHZvaWQgWE1MRG9j
dW1lbnRQYXJzZXI6Om5vdGlmeUZpbmlzaGVkKFBlbmRpbmdTY3JpcHQmIHBlbmRpbmdTY3JpcHQp
CiAgICAgbV9wZW5kaW5nU2NyaXB0ID0gbnVsbHB0cjsKICAgICBwZW5kaW5nU2NyaXB0LmNsZWFy
Q2xpZW50KCk7CiAKLSAgICBhdXRvJiBzY3JpcHRFbGVtZW50ID0gKnRvU2NyaXB0RWxlbWVudElm
UG9zc2libGUoJnBlbmRpbmdTY3JpcHQuZWxlbWVudCgpKTsKLSAgICBzY3JpcHRFbGVtZW50LmV4
ZWN1dGVQZW5kaW5nU2NyaXB0KHBlbmRpbmdTY3JpcHQpOworICAgIHBlbmRpbmdTY3JpcHQuZWxl
bWVudCgpLmV4ZWN1dGVQZW5kaW5nU2NyaXB0KHBlbmRpbmdTY3JpcHQpOwogCiAgICAgaWYgKCFp
c0RldGFjaGVkKCkgJiYgIW1fcmVxdWVzdGluZ1NjcmlwdCkKICAgICAgICAgcmVzdW1lUGFyc2lu
ZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBh
cnNlckxpYnhtbDIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBh
cnNlckxpYnhtbDIuY3BwCmluZGV4IDcwNjc2NzZkZDE3YTc0ZDllNDI3MjlkM2QyOWQzZGQ4ZThh
N2Y4Y2UuLmY0ODEwMDUyNjcxMTYyOTBmYjFmZDUzNmM4MDg5MTBjYmU1NmE4MzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1s
Mi5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAwIFBldGVyIEtl
bGx5IDxwbWtAcG9zdC5jb20+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQWxleGV5IFBy
b3NrdXJ5YWtvdiA8YXBAd2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwg
V2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKQEAgLTc5OSw4ICs3OTksNyBAQCB2
b2lkIFhNTERvY3VtZW50UGFyc2VyOjpzdGFydEVsZW1lbnROcyhjb25zdCB4bWxDaGFyKiB4bWxM
b2NhbE5hbWUsIGNvbnN0IHhtbENoYQogCiAgICAgbmV3RWxlbWVudC0+YmVnaW5QYXJzaW5nQ2hp
bGRyZW4oKTsKIAotICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVs
ZW1lbnRJZlBvc3NpYmxlKG5ld0VsZW1lbnQucHRyKCkpOwotICAgIGlmIChzY3JpcHRFbGVtZW50
KQorICAgIGlmIChpc1NjcmlwdEVsZW1lbnQobmV3RWxlbWVudC5nZXQoKSkpCiAgICAgICAgIG1f
c2NyaXB0U3RhcnRQb3NpdGlvbiA9IHRleHRQb3NpdGlvbigpOwogCiAgICAgbV9jdXJyZW50Tm9k
ZS0+cGFyc2VyQXBwZW5kQ2hpbGQobmV3RWxlbWVudCk7CkBAIC04NDMsNyArODQyLDcgQEAgdm9p
ZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKCkKICAgICBpZiAoaGFja0Fyb3VuZExp
YlhNTEVudGl0eVBhcnNpbmdCdWcoKSAmJiBjb250ZXh0KCktPmRlcHRoIDw9IGRlcHRoVHJpZ2dl
cmluZ0VudGl0eUV4cGFuc2lvbigpKQogICAgICAgICBzZXREZXB0aFRyaWdnZXJpbmdFbnRpdHlF
eHBhbnNpb24oLTEpOwogCi0gICAgaWYgKCFzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKHBhcnNl
ckNvbnRlbnRQb2xpY3koKSkgJiYgaXM8RWxlbWVudD4oKm5vZGUpICYmIHRvU2NyaXB0RWxlbWVu
dElmUG9zc2libGUoZG93bmNhc3Q8RWxlbWVudD4obm9kZS5nZXQoKSkpKSB7CisgICAgaWYgKCFz
Y3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKHBhcnNlckNvbnRlbnRQb2xpY3koKSkgJiYgaXM8RWxl
bWVudD4oKm5vZGUpICYmIGlzU2NyaXB0RWxlbWVudChkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkp
KSB7CiAgICAgICAgIHBvcEN1cnJlbnROb2RlKCk7CiAgICAgICAgIG5vZGUtPnJlbW92ZSgpOwog
ICAgICAgICByZXR1cm47CkBAIC04NTQsNyArODUzLDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNl
cjo6ZW5kRWxlbWVudE5zKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEVsZW1lbnQm
IGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7CisgICAgYXV0byYgZWxlbWVudCA9
IGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKTsKIAogICAgIC8vIFRoZSBlbGVtZW50J3MgcGFyZW50
IG1heSBoYXZlIGFscmVhZHkgYmVlbiByZW1vdmVkIGZyb20gZG9jdW1lbnQuCiAgICAgLy8gUGFy
c2luZyBjb250aW51ZXMgaW4gdGhpcyBjYXNlLCBidXQgc2NyaXB0cyBhcmVuJ3QgZXhlY3V0ZWQu
CkBAIC04NjMsOCArODYyLDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5z
KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVs
ZW1lbnQgPSB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZlbGVtZW50KTsKLSAgICBpZiAoIXNj
cmlwdEVsZW1lbnQpIHsKKyAgICBpZiAoIWlzU2NyaXB0RWxlbWVudChlbGVtZW50KSkgewogICAg
ICAgICBwb3BDdXJyZW50Tm9kZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtODczLDE1
ICs4NzEsMTYgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKCkKICAgICBB
U1NFUlQoIW1fcGVuZGluZ1NjcmlwdCk7CiAgICAgbV9yZXF1ZXN0aW5nU2NyaXB0ID0gdHJ1ZTsK
IAotICAgIGlmIChzY3JpcHRFbGVtZW50LT5wcmVwYXJlU2NyaXB0KG1fc2NyaXB0U3RhcnRQb3Np
dGlvbiwgU2NyaXB0RWxlbWVudDo6QWxsb3dMZWdhY3lUeXBlSW5UeXBlQXR0cmlidXRlKSkgewor
ICAgIGF1dG8mIHNjcmlwdEVsZW1lbnQgPSBkb3duY2FzdFNjcmlwdEVsZW1lbnQoZWxlbWVudCk7
CisgICAgaWYgKHNjcmlwdEVsZW1lbnQucHJlcGFyZVNjcmlwdChtX3NjcmlwdFN0YXJ0UG9zaXRp
b24sIFNjcmlwdEVsZW1lbnQ6OkFsbG93TGVnYWN5VHlwZUluVHlwZUF0dHJpYnV0ZSkpIHsKICAg
ICAgICAgLy8gRklYTUU6IFNjcmlwdCBleGVjdXRpb24gc2hvdWxkIGJlIHNoYXJlZCBiZXR3ZWVu
CiAgICAgICAgIC8vIHRoZSBsaWJ4bWwyIGFuZCBRdCBYTUxEb2N1bWVudFBhcnNlciBpbXBsZW1l
bnRhdGlvbnMuCiAKLSAgICAgICAgaWYgKHNjcmlwdEVsZW1lbnQtPnJlYWR5VG9CZVBhcnNlckV4
ZWN1dGVkKCkpCi0gICAgICAgICAgICBzY3JpcHRFbGVtZW50LT5leGVjdXRlQ2xhc3NpY1Njcmlw
dChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdEVsZW1lbnQtPnNjcmlwdENvbnRlbnQoKSwgZG9jdW1l
bnQoKS0+dXJsKCksIG1fc2NyaXB0U3RhcnRQb3NpdGlvbikpOwotICAgICAgICBlbHNlIGlmIChz
Y3JpcHRFbGVtZW50LT53aWxsQmVQYXJzZXJFeGVjdXRlZCgpICYmIHNjcmlwdEVsZW1lbnQtPmxv
YWRhYmxlU2NyaXB0KCkpIHsKLSAgICAgICAgICAgIG1fcGVuZGluZ1NjcmlwdCA9IFBlbmRpbmdT
Y3JpcHQ6OmNyZWF0ZShlbGVtZW50LCAqc2NyaXB0RWxlbWVudC0+bG9hZGFibGVTY3JpcHQoKSk7
Ci0gICAgICAgICAgICBtX3BlbmRpbmdTY3JpcHQtPnNldENsaWVudCh0aGlzKTsKKyAgICAgICAg
aWYgKHNjcmlwdEVsZW1lbnQucmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQoKSkKKyAgICAgICAgICAg
IHNjcmlwdEVsZW1lbnQuZXhlY3V0ZUNsYXNzaWNTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3Jp
cHRFbGVtZW50LnNjcmlwdENvbnRlbnQoKSwgZG9jdW1lbnQoKS0+dXJsKCksIG1fc2NyaXB0U3Rh
cnRQb3NpdGlvbikpOworICAgICAgICBlbHNlIGlmIChzY3JpcHRFbGVtZW50LndpbGxCZVBhcnNl
ckV4ZWN1dGVkKCkgJiYgc2NyaXB0RWxlbWVudC5sb2FkYWJsZVNjcmlwdCgpKSB7CisgICAgICAg
ICAgICBtX3BlbmRpbmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxlbWVu
dCwgKnNjcmlwdEVsZW1lbnQubG9hZGFibGVTY3JpcHQoKSk7CisgICAgICAgICAgICBtX3BlbmRp
bmdTY3JpcHQtPnNldENsaWVudCgqdGhpcyk7CiAKICAgICAgICAgICAgIC8vIG1fcGVuZGluZ1Nj
cmlwdCB3aWxsIGJlIG51bGxwdHIgaWYgc2NyaXB0IHdhcyBhbHJlYWR5IGxvYWRlZCBhbmQgc2V0
Q2xpZW50KCkgZXhlY3V0ZWQgaXQuCiAgICAgICAgICAgICBpZiAobV9wZW5kaW5nU2NyaXB0KQpA
QCAtODk2LDE5ICs4OTUsMTkgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5z
KCkKICAgICBwb3BDdXJyZW50Tm9kZSgpOwogfQogCi12b2lkIFhNTERvY3VtZW50UGFyc2VyOjpj
aGFyYWN0ZXJzKGNvbnN0IHhtbENoYXIqIHMsIGludCBsZW4pCit2b2lkIFhNTERvY3VtZW50UGFy
c2VyOjpjaGFyYWN0ZXJzKGNvbnN0IHhtbENoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpCiB7
CiAgICAgaWYgKGlzU3RvcHBlZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9wYXJz
ZXJQYXVzZWQpIHsKLSAgICAgICAgbV9wZW5kaW5nQ2FsbGJhY2tzLT5hcHBlbmRDaGFyYWN0ZXJz
Q2FsbGJhY2socywgbGVuKTsKKyAgICAgICAgbV9wZW5kaW5nQ2FsbGJhY2tzLT5hcHBlbmRDaGFy
YWN0ZXJzQ2FsbGJhY2soY2hhcmFjdGVycywgbGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIGlmICghbV9sZWFmVGV4dE5vZGUpCiAgICAgICAgIGNyZWF0ZUxlYWZUZXh0Tm9k
ZSgpOwotICAgIG1fYnVmZmVyZWRUZXh0LmFwcGVuZChzLCBsZW4pOworICAgIG1fYnVmZmVyZWRU
ZXh0LmFwcGVuZChjaGFyYWN0ZXJzLCBsZW5ndGgpOwogfQogCiB2b2lkIFhNTERvY3VtZW50UGFy
c2VyOjplcnJvcihYTUxFcnJvcnM6OkVycm9yVHlwZSB0eXBlLCBjb25zdCBjaGFyKiBtZXNzYWdl
LCB2YV9saXN0IGFyZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGMxMDE5MjRlYTVmMWQ2NjI5M2IxOTlhMzAwMTI0ZGIy
YzIzZjU3YjQuLjkwMDA2ZWIxMDM2MzI1NmUzYTcyMzA3YzI0NGFhZWNiYjE4MTFlN2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwg
MjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDgsIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CkBAIC0zMSwxMiArMzEsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9G
b2N1c0RpcmVjdGlvbi5oPgogI2ltcG9ydCA8d3RmL0ZvcndhcmQuaD4KIAotI2lmIFBMQVRGT1JN
KElPUykKLSNpbXBvcnQgPHd0Zi9QbGF0Zm9ybS5oPgotI2ltcG9ydCA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0Nocm9tZS5oPgotI2VuZGlmCi0KIEBjbGFzcyBXZWJW
aWV3OwogCiBjbGFzcyBXZWJDaHJvbWVDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50IHsKQEAgLTEyNSw3ICsxMTksNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQgcnVu
T3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nl
cj4pIG92ZXJyaWRlOwotICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RG
OjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKSBvdmVycmlkZTsKKyAgICB2b2lk
IGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZp
bGVJY29uTG9hZGVyJikgb3ZlcnJpZGU7CiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIHZvaWQg
c2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpIG92ZXJyaWRlOwpAQCAtMjE0LDExICsy
MDgsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNSZWxldmFudFNlbGVjdGlvblNlcnZpY2VzKGJv
b2wgaXNUZXh0T25seSkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElP
UykKICAgICBXZWJWaWV3KiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gbV93ZWJWaWV3OyB9Ci0j
ZWxzZQotICAgIFdlYlZpZXcqIHdlYlZpZXcoKSB7IHJldHVybiBtX3dlYlZpZXc7IH0KLSNlbmRp
ZgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRGT1JNKElP
UykKICAgICB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IC8qY29u
dGV4dElkKi8pIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IGJjZWFmZDUxMTY1MzIyYjNhZGJhNzk0YzBj
MWY1OGRiNWNlMTlhOGIuLmQ3ZWM4Y2IxYjQ2YWI3ODE4ZTBkZTIyNDEyNmNhYTVhMDY1ZGEyOTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTc1Nyw5ICs3NTcsOSBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hv
b3Nlcj4gY2hvb3NlcikKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogfQogCi12b2lk
IFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciogaWNvbkxvYWRlcikKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZp
bGVJY29uTG9hZGVyJiBpY29uTG9hZGVyKQogewotICAgIGljb25Mb2FkZXItPm5vdGlmeUZpbmlz
aGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKKyAgICBpY29uTG9hZGVy
Lmljb25Mb2FkZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOwogfQogCiAj
aWYgIVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDAzZDhhMjZkOTM4ZjEyNjcwNWIwMGU2MzFh
NTMzODI2Njc2MzMxNzkuLmYyNGU2MzM0NDVlNDM1NWIzYjQyOGY5OTg3ZGM0MmY4MTJjMWJmZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAw
OCwgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNjgwLDkgKzY4MCw5IEBAIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBwcnBG
aWxlQ2hvb3NlCiAgICAgLy8gRklYTUU6IFNob3cgc29tZSBzb3J0IG9mIGVycm9yIGlmIHRvbyBt
YW55IGZpbGVzIGFyZSBzZWxlY3RlZCBhbmQgdGhlIGJ1ZmZlciBpcyB0b28gc21hbGwuICBGb3Ig
bm93LCB0aGlzIHdpbGwgZmFpbCBzaWxlbnRseS4KIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgZmlsZW5hbWVzLCBX
ZWJDb3JlOjpGaWxlSWNvbkxvYWRlciogbG9hZGVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6Omxv
YWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgZmlsZW5hbWVzLCBXZWJD
b3JlOjpGaWxlSWNvbkxvYWRlciYgbG9hZGVyKQogewotICAgIGxvYWRlci0+bm90aWZ5RmluaXNo
ZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOworICAgIGxvYWRlci5pY29u
TG9hZGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXgg
ODlkNmM4NzRiZDQ0ZjljZDZlZDU1YjA2MGJkZmNkYjg3MzZmYzI4Mi4uMzQ4ZjRjMzVlZjcyMGZi
OTlkODdkNjQzZWRjODVhOWQwMTVjZGNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA2LTIwMDksIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTExNiw3ICsxMTYsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQp
OwogCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSosIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KTsKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25G
b3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2Fk
ZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RG
OjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXImKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJik7CiAgICAgdmlydHVhbCB2b2lkIHNl
dEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAppbmRleCA3ZjBlNzVkY2I5ODIzYmIyZGRjMTBjZTYwOTFkMTk0NGFkOTIyYTc1Li5kYzNmZWQ1
YzliYmZlMzBjOGJkMjBhZWU5ZTliMDFkODJkZmU0ZmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CkBAIC03NjEsOSArNzYxLDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5l
bChGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IHBycEZpbGUKICAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuT3BlblBhbmVsKHdlYkZyYW1lLT5m
cmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGZyYW1lKSwgZmlsZUNob29z
ZXItPnNldHRpbmdzKCkpKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9y
RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUljb25Mb2FkZXIqIGxv
YWRlcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9hZGVyJiBsb2FkZXIpCiB7Ci0gICAgbG9h
ZGVyLT5ub3RpZnlGaW5pc2hlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7
CisgICAgbG9hZGVyLmljb25Mb2FkZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1l
cykpOwogfQogCiAjaWYgIVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDA1
ZTRiMzVhMWRlMThiOWViZWY4NTQwNTI2YWZiMmE1ZWZkZmQ3NmMuLjc2ZWUyMmU2ZTlkNmI5Y2Iz
NGUwMTgzOTE1Zjk4ZjY2MTczMzY5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAg
LTE4Miw3ICsxODIsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2b2lkIHJ1bk9wZW5QYW5l
bChXZWJDb3JlOjpGcmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KSBvdmVy
cmlkZTsKLSAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBX
ZWJDb3JlOjpGaWxlSWNvbkxvYWRlciopIG92ZXJyaWRlOworICAgIHZvaWQgbG9hZEljb25Gb3JG
aWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJikgb3Zl
cnJpZGU7CiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdl
YkNvcmU6OkN1cnNvciYpIG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297995</attachid>
            <date>2017-01-03 23:53:38 -0800</date>
            <delta_ts>2017-01-04 01:27:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166635-20170103235210.patch</filename>
            <type>text/plain</type>
            <size>689691</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNkMmVmMDczZGE4NTc0MWVjNTUzM2Ex
MTA3ZTVmNWFhMTgzN2VkZTMuLmIwMGE4OGQ0MjBkMDdkYTIxZTA0NGM0ZDlhZTBkZTQ2NTRhYmFh
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDEtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRt
bCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpt
YWtlUmVmUHRyKTogQWRkZWQuCisKIDIwMTctMDEtMDIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgTGV2ZXJhZ2UgU3Vic3RyaW5nIHRvIGNyZWF0ZSBu
ZXcgQXRvbWljU3RyaW5nSW1wbCBmb3IgU3RhdGljU3RyaW5nSW1wbCBhbmQgU3ltYm9sSW1wbApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDRmY2IyYjhiMjc0MTBkYWZkY2I0MGNjMzVkZWU3NGNlZTg4ODlmZjQuLjA5
NjA5YjliNDE5ZDcxOTY5YjRhNmFhNDQyNjllMDM3NWVjZWUyODEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NzIgQEAKKzIwMTctMDEtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgor
CisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRtbCIgZGlyZWN0b3J5
LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IFJlbW92ZWQgdGhlIGR1cGxpY2F0ZSBjb3Bp
ZXMgb2YgYWxsIHRoZSBXZWJHTC1zcGVjaWZpYyBmaWxlcworICAgICAgICBpbiB0aGUgbWFpbiBs
aXN0IG9mIHNvdXJjZSBmaWxlczsgdGhlcmUgaXMgbm8gdmFsdWUgaW4gbGlzdGluZyB0aGVtIHR3
aWNlLgorICAgICAgICBSZXBsYWNlZCBXZWJHTEdldEluZm8uY3BwIHdpdGggV2ViR0xBbnkuY3Bw
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKTogVXBkYXRlcyBz
aW5jZSB0aGUgdHJhY2tzIGZ1bmN0aW9ucworICAgICAgICByZXR1cm4gcmVmZXJlbmNlcyBub3cu
CisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1Rp
bWVGb3JNZWRpYVRpbWUpOiBSZW1vdmVkCisgICAgICAgIHVubmVlZGVkIFNvdXJjZUJ1ZmZlclBy
aXZhdGUqIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjphcHBlbmRC
dWZmZXJUaW1lckZpcmVkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6
OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmlu
Z0Vycm9yKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnZpZGVvVHJh
Y2tzKTogUmV0dXJuIGEgcmVmZXJlbmNlIHJhdGhlciB0aGFuIGEgcG9pbnRlci4KKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6YXVkaW9UcmFja3MpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0
aW9uU2VnbWVudCk6CisgICAgICAgIFJlbW92ZWQgdW5uZWVkZWQgU291cmNlQnVmZmVyUHJpdmF0
ZSogYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnZhbGlkYXRlSW5p
dGlhbGl6YXRpb25TZWdtZW50KTogVXBkYXRlZCBzaW5jZSB0cmFja3MKKyAgICAgICAgZnVuY3Rp
b25zIG5vdyByZXR1cm4gYSBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
Ojpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSk6IFJlbW92ZWQgdW5uZWVkZWQK
KyAgICAgICAgU291cmNlQnVmZmVyUHJpdmF0ZSogYXJndW1lbnQuCisgICAgICAgIChXZWJDb3Jl
OjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dmlkZW9UcmFja1NlbGVj
dGVkQ2hhbmdlZCk6IFRha2UgYSByZWZlcmVuY2UgcmF0aGVyIHRoYW4KKyAgICAgICAgYSBwb2lu
dGVyLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjphdWRpb1RyYWNrRW5hYmxlZENo
YW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNr
TW9kZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dGV4
dFRyYWNrQWRkQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnRl
eHRUcmFja0FkZEN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6
dGV4dFRyYWNrUmVtb3ZlQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXI6OnRleHRUcmFja1JlbW92ZUN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlcjo6dGV4dFRyYWNrS2luZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNh
bXBsZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6cHJvdmlkZU1l
ZGlhRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpyZWVucXVl
dWVNZWRpYUZvclRpbWUpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1Nv
dXJjZUJ1ZmZlci5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBSZXBsYWNlZCBXZWJHTEdldEluZm8gd2l0
aCBXZWJHTEFueS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTENhbnZhc1N0eWxlKTog
UmVtb3ZlZCBleHBsaWNpdCBjYXN0IHRvIENhbnZhc1N0eWxlIGFuZCB1bm5lZWRlZAorICAgICAg
ICBjb252ZXJzaW9uIHRvIGEgcG9pbnRlciBzaW5jZSBDYW52YXNTdHlsZSBjb25zdHJ1Y3RvcnMg
bm93IHRha2UgcmVmZXJlbmNlcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxl
bWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5JbnN0YW5jZSk6IFVw
ZGF0ZWQgc2luY2UgYmluZGluZ3NJbnN0YW5jZSBub3cgcmV0dXJucyBhIHJhdyBwb2ludGVyLgor
ICAgICAgICAoV2ViQ29yZTo6cGx1Z2luU2NyaXB0T2JqZWN0KTogRGl0dG8uCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dG9KUyk6IE1vdmVkIHRvIFdlYkdMQW55LmgvY3BwLgorICAgICAgICAoV2Vi
Q29yZTo6SlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVyKTogVXBk
YXRlZCBzaW5jZSB0aGUgdG9KUworICAgICAgICBmdW5jdGlvbiBpbiBXZWJHTEFueS5oIHRha2Vz
IHJlZmVyZW5jZXMsIG5vdCBwb2ludGVycy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHA6IFJlbW92ZWQgcXVpdGUgYSBmZXcgdW5u
ZWVkZWQKKyAgICAgICAgaW5jbHVkZXMgYW5kIGdvdCByaWQgb2YgYSBsb3Qgb2YgdW5uZWVkZWQg
SlNDIHByZWZpeGVzLgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IE1vdmVkIHRvIFdlYkdMQW55
LmgvY3BwLgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpvYmplY3RQYXJhbWV0ZXIpOiBSZW5hbWVkIGZyb20gZ2V0T2JqZWN0UGFyYW1ldGVy
IGFuZCBhbHNvIGNoYW5nZWQgdG8KKyAgICAgICAgdGFrZSBhIHBvaW50ZXIgdG8gbWVtYmVyIGZ1
bmN0aW9uIHNvIHdlIGRvbid0IG5lZWQgYW4gZW51bSBhbmQgYSBzd2l0Y2ggc3RhdGVtZW50Lgor
ICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IENoYW5nZWQgdG8gdGFrZSByZWZlcmVuY2VzIHJhdGhl
ciB0aGFuIHBvaW50ZXJzLgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRBdHRhY2hlZFNoYWRlcnMpOiBVc2UgYSBtb2Rlcm4gZm9yIGxvb3AuCisgICAg
ICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFt
ZXRlcik6IFVzZSBvYmplY3RQYXJhbWV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcik6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRy
aWIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnRvTnVtYmVyVmVjdG9yKTogUmVuYW1lZCBm
cm9tIHRvVmVjdG9yLCBzaW5jZSB0aGlzIGlzIHNwZWNpZmljYWxseSBmb3IKKyAgICAgICAgdmVj
dG9ycyBvZiBudW1iZXJzLiBVc2UgdW5jaGVja2VkQXBwZW5kIGluc3RlYWQgb2YgYXNzaWdubWVu
dC4KKyAgICAgICAgKFdlYkNvcmU6OmZ1bmN0aW9uRm9yVW5pZm9ybSk6IE1hcmtlZCB0aGlzIGlu
bGluZS4KKyAgICAgICAgKFdlYkNvcmU6OmRhdGFGdW5jdGlvbmYpOiBVcGRhdGVkIGZvciBhYm92
ZSBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uaSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uTWF0cml4KTogRGl0dG8uCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6IE1vdmVkIGFzc2VydGlvbnMgdG8gdGhlIHRvcCBvZiB0
aGUgZnVuY3Rpb24uCisgICAgICAgIEFsc28gYWRkZWQgYSBGSVhNRSBiZWNhdXNlIGl0J3MgdW5j
bGVhciB3aHkgdGhlc2UgYXNzZXJ0aW9ucyBhcmUgY29ycmVjdC4gVXBkYXRlZAorICAgICAgICB0
byB1c2UgZG93bmNhc3RTY3JpcHRFbGVtZW50IGluc3RlYWQgb2YgdG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOiBTb3J0ZWQgbGlzdCBvZiBmb3J3
YXJkLWRlY2xhcmVkIGNsYXNzZXMuIFJlbW92ZWQgZHVwbGljYXRlCisgICAgICAgIGZvcndhcmQg
ZGVjbGFyYXRpb24gb2YgU2NyaXB0TW9kdWxlTG9hZGVyLgorCisgICAgICAgICogZG9tL1BlbmRp
bmdTY3JpcHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ1NjcmlwdDo6Y3JlYXRlKTog
VGFrZSBhIFNjcmlwdEVsZW1lbnQgaW5zdGVhZCBvZiBhbiBFbGVtZW50LgorICAgICAgICAoV2Vi
Q29yZTo6UGVuZGluZ1NjcmlwdDo6UGVuZGluZ1NjcmlwdCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6UGVuZGluZ1NjcmlwdDo6bG9hZGFibGVTY3JpcHQpOiBNb3ZlZCBpbmxpbmUgdG8gaGVh
ZGVyIGFuZCBtYWRlIGlubGluZS4KKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdTY3JpcHQ6OnNl
dENsaWVudCk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisgICAgICAg
ICogZG9tL1BlbmRpbmdTY3JpcHQuaDogVVBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAg
ICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVs
ZW1lbnQ6OnByZXBhcmVTY3JpcHQpOiBQYXNzIGEgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBwb2lu
dGVyLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVmKTogQWRkZWQuIEZvcndh
cmRzIHJlZi9kZXJlZiB0byB0aGUgdW5kZXJseWluZyBlbGVtZW50CisgICAgICAgIHNvIHdlIGNh
biB1c2UgUmVmIGFuZCBSZWZQdHIgd2l0aCB0aGlzIGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0RWxlbWVudDo6ZGVyZWYpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmlzU2NyaXB0
RWxlbWVudCk6IEFkZGVkLiBSZXBsYWNlcyBvbmUgb2YgdGhlIHR3byB1c2VzIG9mCisgICAgICAg
IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUsIGFuZCBpcyBzaW1pbGFyIGluIHN0eWxlIHRvIGlz
PEVsZW1lbnQ+LgorICAgICAgICAoV2ViQ29yZTo6ZG93bmNhc3RTY3JpcHRFbGVtZW50KTogRGl0
dG8sIGJ1dCBmb3IgZG93bmNhc3QuCisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuaDogVXBk
YXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGRvbS9TY3JpcHRSdW5uZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlv
bik6IFRha2UgcmVmZXJlbmNlIHJhdGhlciB0aGFuCisgICAgICAgIHBvaW50ZXIsIGFuZCBwYXNz
IFNjcmlwdEVsZW1lbnQgcmF0aGVyIHRoYW4gRWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdFJ1bm5lcjo6bm90aWZ5RmluaXNoZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdFJ1bm5lcjo6dGltZXJGaXJlZCk6IERpdHRvLgorICAgICAgICAqIGRvbS9TY3JpcHRSdW5u
ZXIuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvRmlsZUlu
cHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpmaWxlcyk6IFVw
ZGF0ZWQgc2luY2UgbV9maWxlTGlzdCBpcyBhIFJlZi4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJ
bnB1dFR5cGU6OmNyZWF0ZUZpbGVMaXN0KTogVXBkYXRlZCB0byByZXR1cm4gYSBSZWYgaW5zdGVh
ZCBvZgorICAgICAgICBhIFBhc3NSZWZQdHIuIEFsc28gdXNlIHJlc2VydmVJbml0aWFsQ2FwYWNp
dHkvdW5jaGVja2VkQXBwZW5kLgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6cmVx
dWVzdEljb24pOiBVcGRhdGVkIHNpbmNlIHRoZSB1cGRhdGVSZW5kZXJpbmcKKyAgICAgICAgZnVu
Y3Rpb24gaXMgbm93IGNhbGxlZCBpY29uTG9hZGVkLiBBbHNvIHVzZSByZWZlcmVuY2VzIGluc3Rl
YWQgb2YgcG9pbnRlcnMuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpzZXRGaWxl
cyk6IFRha2UgYSBSZWZQdHImJiBpbnN0ZWQgb2YgYSBQYXNzUmVmUHRyLgorICAgICAgICBBbHNv
IHB1dCBzb21lIGNvbmRpdGlvbmFsIGNvZGUgaW5zaWRlIGFuICNpZi4KKyAgICAgICAgKFdlYkNv
cmU6OkZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKTogVXBkYXRlZCBmb3IgZnVuY3Rpb24gbmFt
ZSBjaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjppY29uTG9hZGVkKTog
UmVuYW1lZCBmcm9tIHVwZGF0ZVJlbmRlcmluZy4KKyAgICAgICAgQ2hhbmdlZCBhcmd1bWVudCB0
byBSZWZQdHImJiBmcm9tIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRU
eXBlOjpkZWZhdWx0VG9vbFRpcCk6IEdvdCByaWQgb2YgdW5uZWVkZWQgbG9jYWwgdmFyaWFibGUK
KyAgICAgICAgYW5kIHVzZWQgdGhlIGNvcnJlY3QgdHlwZSwgdW5zaWduZWQsIHJhdGhlciB0aGFu
IHNpemVfdC4KKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDogVXBkYXRlZCBmb3IgdGhl
IGFib3ZlIGNoYW5nZXMsIHVzZSBmaW5hbCBpbnN0ZWFkCisgICAgICAgIG9mIG92ZXJyaWRlLCBh
bmQgdXNlIFJlZiBpbnN0ZWFkIG9mIFJlZlB0ci4KKworICAgICAgICAqIGh0bWwvSFRNTEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmZvcm0pOiBSZW5hbWVkIGZy
b20gdmlydHVhbEZvcm0uCisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOiBSZXBsYWNlZCB0
aGUgZm9ybS92aXJ0dWFsRm9ybSBwYWlyIG9mIGZ1bmN0aW9ucyB3aXRoCisgICAgICAgIGp1c3Qg
YSBmb3JtIGZ1bmN0aW9uLiBUaGUgb2xkIGRlc2lnbiBkYXRlcyBiYWNrIGJlZm9yZSB3ZSBoYWQg
ImZpbmFsIiBmb3IKKyAgICAgICAgdmlydHVhbCBmdW5jdGlvbnMsIGFuZCBub3cgd2UgY2FuIGp1
c3QgdXNlIHRoYXQgaW5zdGVhZC4KKworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp2aXJ0
dWFsRm9ybSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
Lmg6IE1hcmsgdGhlIGZvcm0gZnVuY3Rpb24gZmluYWwsIHNpbmNlIGl0J3MKKyAgICAgICAgbm93
IGJvdGggYW4gaW5saW5lIGZ1bmN0aW9uIGluIHRoaXMgY2xhc3MsIGFuZCBhbiBvdmVycmlkZSBv
ZiBhIHZpcnR1YWwKKyAgICAgICAgZnVuY3Rpb24gaW5oZXJpdGVkIGZyb20gdGhlIGJhc2UgY2xh
c3MuIERlbGV0ZWQgdGhlIHZpcnR1YWxGb3JtIGZ1bmN0aW9uLgorCisgICAgICAgICogaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBSZW1vdmVkIHVzZSBvZiB0aGUKKyAgICAgICAgZm9ybUZv
clN1Ym1pc3Npb24gZnVuY3Rpb24sIHdoaWNoIHdhcyBqdXN0IGFub3RoZXIgd2F5IHRvIGdldCB0
aGUgc2FtZQorICAgICAgICB0aGluZyBhcyB0aGUgZm9ybSBmdW5jdGlvbjsgcGVyaGFwcyB0aGV5
IHdlcmUgZGlmZmVyZW50IGluIHRoZSBwYXN0LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0
RWxlbWVudDo6c2V0RmlsZXMpOiBUYWtlIGEgUmVmUHRyJiYgcmF0aGVyIHRoYW4gYSBQYXNzUmVm
UHRyLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOiBVcGRhdGVkIGZvciB0aGUg
YWJvdmUuCisKKyAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTExhYmVsRWxlbWVudDo6Y29udHJvbCk6IE1hZGUgdGhpcyBjb25zdC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxMYWJlbEVsZW1lbnQ6OmZvcm0pOiBNYWRlIHRoaXMgY29uc3Qs
IHNvIGl0IGNhbiBiZSB1c2VkIHRvCisgICAgICAgIG92ZXJyaWRlIHRoZSBjb25zdCBmb3JtIGZ1
bmN0aW9uIGZyb20gdGhlIGJhc2UgY2xhc3MuCisgICAgICAgICogaHRtbC9IVE1MTGFiZWxFbGVt
ZW50Lmg6IE1hcmtlZCB0aGUgZm9ybSBmdW5jdGlvbiBmaW5hbCwgc2luY2Ugd2Ugd2FudCBpdAor
ICAgICAgICB0byBvdmVycmlkZSB0aGUgZm9ybSBmdW5jdGlvbiBpbmhlcml0ZWQgZnJvbSBIVE1M
RWxlbWVudC4KKworICAgICAgICAqIGh0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTExlZ2VuZEVsZW1lbnQ6OmZvcm0pOiBSZW5hbWVkIGZyb20gdmlydHVh
bEZvcm0uCisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oOiBPdmVycmlkZSBmb3Jt
IGluc3RlYWQgb2YgdmlydHVhbEZvcm0gYW5kIG1hcmsgaXQgZmluYWwKKyAgICAgICAgVGhpcyBt
YWtlcyB0aGluZ3MgbW9yZSBlZmZpY2llbnQgaWYgc29tZW9uZSBjYWxscyBmb3JtIGRpcmVjdGx5
IG9uIHRoaXMgY2xhc3M7CisgICAgICAgIGJlZm9yZSBpdCB3b3VsZCBtYWtlIGFuIHVubmVjZXNz
YXJ5IHZpcnR1YWwgZnVuY3Rpb24gY2FsbC4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFja0Rpc3BsYXlVcGRhdGVTY29wZTo6VHJh
Y2tEaXNwbGF5VXBkYXRlU2NvcGUpOiBUYWtlIGEgcmVmZXJlbmNlCisgICAgICAgIHJhdGhlciB0
aGFuIGEgcG9pbnRlci4KKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrRGlzcGxheVVwZGF0ZVNjb3Bl
Ojp+VHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmV2
ZW50VGltZUN1ZUNvbXBhcmUpOiBDb21wYXJlIHRoZSBjdWVzIHRoZSBzYW1lIHdheSB0aGUgY3Vl
IGxpc3Qgd291bGQKKyAgICAgICAgcmF0aGVyIHRoYW4gdXNpbmcgY3VlSW5kZXguCisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQpOiBU
YWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dGV4
dFRyYWNrTW9kZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0tpbmRDaGFuZ2VkKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWVz
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tB
ZGRDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRU
cmFja1JlbW92ZUN1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKTogUGFzcyByZWZlcmVuY2VzLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2sp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVy
RGlkQWRkVmlkZW9UcmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6cmVtb3ZlVGV4dFRyYWNrKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50Ojpmb3JnZXRSZXNvdXJjZVNwZWNpZmljVHJhY2tzKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyKTogVGFrZSBhIFJlZlB0
ciYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvSFRNTE9i
amVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OnZp
cnR1YWxGb3JtKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50Lmg6
IE1hZGUgdGhlIGZvcm0gZnVuY3Rpb24gaW5saW5lIGFuZCBmaW5hbCwgd2hpY2gKKyAgICAgICAg
YWNoaWV2ZXMgdGhlIHNhbWUgdGhpbmcgd2UgZGlkIGJlZm9yZSB3aXRoIHVzaW5nLCBidXQgd2l0
aG91dCByZXF1aXJpbmcgdGhlCisgICAgICAgIHNlcGFyYXRlIHZpcnR1YWxGb3JtIGZ1bmN0aW9u
LCBub3cgZGVsZXRlZC4KKworICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25Jbm5lclRl
eHQpOiBVc2UgaXNTY3JpcHRFbGVtZW50CisgICAgICAgIGluc3RlYWQgb2YgdG9TY3JpcHRFbGVt
ZW50SWZQb3NzaWJsZS4KKworICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OmJpbmRpbmdzSW5zdGFuY2UpOiBS
ZW5hbWVkIGZyb20gZ2V0SW5zdGFuY2UgYW5kCisgICAgICAgIGNoYW5nZWQgdGhlIHJldHVybiB0
eXBlIHRvIGEgcmF3IHBvaW50ZXIuCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5o
OiBVcGRhdGVkIGZvciB0aGUgYWJvdmUgY2hhbmdlcy4gQWxzbyBjaGFuZ2VkIHRoZQorICAgICAg
ICB1cGRhdGVTbmFwc2hvdCBmdW5jdGlvbiB0byB0YWtlIGEgcmF3IHBvaW50ZXIgaW5zdGVhZCBv
ZiBhIFBhc3NSZWZQdHIuCisKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y3JlYXRlRWxl
bWVudFJlbmRlcmVyKTogUGFzcyBhIHBvaW50ZXIKKyAgICAgICAgdG8gdXBkYXRlU25hcHNob3Qu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVTbmFwc2hv
dCk6IFVwZGF0ZWQgdG8gdGFrZSBhIHJhdworICAgICAgICBwb2ludGVyIGluc3RlYWQgb2YgYSBQ
YXNzUmVmUHRyLgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oOiBVcGRh
dGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVu
dC5oOiBBZGRlZCB1c2luZyB0byByZXNvbHZlIHRoZSBhbWJpZ3VpdHkgd2l0aCB0aGUKKyAgICAg
ICAgcmVmL2RlcmVmIGZyb20gSFRNTEVsZW1lbnQgYW5kIGZyb20gU2NyaXB0RWxlbWVudC4KKwor
ICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvbik6IFJldHVybiBh
IFJlZlB0ciBpbnN0ZWFkCisgICAgICAgIG9mIGEgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBodG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMu
CisKKyAgICAgICAgKiBodG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQpOiBUYWtlIGEgcmVmZXJl
bmNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNo
YW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmFja0VsZW1lbnQ6OnRleHRU
cmFja0FkZEN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmFja0VsZW1lbnQ6
OnRleHRUcmFja1JlbW92ZUN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmFj
a0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlKTogRGl0dG8uCisgICAgICAgICogaHRt
bC9IVE1MVHJhY2tFbGVtZW50Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAg
ICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmZv
cm1Gb3JTdWJtaXNzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6
c2V0RmlsZXMpOiBUYWtlIGEgUmVmUHRyJiYgaW5zdGVhZCBvZiBhIFBhc3NSZWZQdHIuCisgICAg
ICAgICogaHRtbC9JbnB1dFR5cGUuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAg
ICAgICAqIGh0bWwvUGx1Z2luRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKTogUGFzcyBhIHJlZmVyZW5j
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRvY3VtZW50OjpzZXRQbHVnaW5FbGVtZW50KTog
VGFrZSBhIHJlZmVyZW5jZSByYXRoZXIgdGhhbgorICAgICAgICBhIFBhc3NSZWZQdHIuCisgICAg
ICAgICogaHRtbC9QbHVnaW5Eb2N1bWVudC5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgor
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0U3Ryb2tlU3R5bGUp
OiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjpzZXRGaWxsU3R5bGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbCk6IERpdHRvLgorCisgICAgICAgICog
aHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5
bGU6OkNhbnZhc1N0eWxlKTogUmV3cml0ZSBhbGwgY29uc3RydWN0b3JzIHRvIHVzZSB0aGUKKyAg
ICAgICAgbV9zdHlsZSB2YXJpYW50IGluc3RlYWQgb2Ygc2VwYXJhdGUgbV90eXBlIGFuZCBvdGhl
ciBkYXRhIG1lbWJlcnMuIEFsc28KKyAgICAgICAgY2hhbmdlIGZyb20gUGFzc1JlZlB0ciB0byBh
IHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjpjcmVhdGVGcm9tU3Ry
aW5nKTogVXBkYXRlIHRvIHVzZSB0aGUgdmFyaWFudC4KKyAgICAgICAgKFdlYkNvcmU6OkNhbnZh
c1N0eWxlOjpjcmVhdGVGcm9tU3RyaW5nV2l0aE92ZXJyaWRlQWxwaGEpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDb2xvcik6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmlzRXF1aXZhbGVudFJHQkEpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDTVlLQSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKTogRGVsZXRlZCBjb3B5
IGNvbnN0cnVjdG9yOyB0aGUgY29tcGlsZXIKKyAgICAgICAgY2FuIG5vdyBnZW5lcmF0ZSBhIGNv
cnJlY3QgY29weSBvciBtb3ZlIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFz
U3R5bGU6On5DYW52YXNTdHlsZSk6IERlbGV0ZWQuIENvbXBpbGVyIGdlbmVyYXRlcyB0aGlzCisg
ICAgICAgIHByb3Blcmx5IG5vdyB3aXRob3V0IGhlbHAgZnJvbSB1cy4KKyAgICAgICAgKFdlYkNv
cmU6OkNhbnZhc1N0eWxlOjpvcGVyYXRvcj0pOiBEZWxldGVkLiBUaGUgY29tcGlsZXIgY2FuIG5v
dyBnZW5lcmF0ZQorICAgICAgICBhIGNvcnJlY3QgY29weSBvZiBtb3ZlIGFzc2lnbm1lbnQgb3Bl
cmF0b3IuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHlsZTo6YXBwbHlTdHJva2VDb2xvcik6
IFVwZGF0ZWQgdG8gdGFrZSBhIHJlZmVyZW5jZSBhbmQKKyAgICAgICAgdXNlIHRoZSB2YXJpYW50
LgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmFwcGx5RmlsbENvbG9yKTogRGl0dG8u
CisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oOiBSZWRpZCB0aGlzIGNsYXNz
IHRvIHVzZSBhIHZhcmlhbnQgaW5zdGVhZCBvZgorICAgICAgICBhIHR5cGUgZW51bWVyYXRpb24g
YW5kIGEgdW5pb24uCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPRVNWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlVmVy
dGV4QXJyYXlPRVMpOiBVcGRhdGVkIHVzZSBvZiBlbnVtCisgICAgICAgIHNpbmNlIGl0J3Mgbm93
IGFuIGVudW0gY2xhc3MuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdD
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6Oldl
YkdMMlJlbmRlcmluZ0NvbnRleHQpOiBVc2UgUmVmJiYgaW5zdGVhZCBvZgorICAgICAgICBSZWZQ
dHImJiBmb3IgdGhlIEdyYXBoaWNzQ29udGV4dDNELgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cyk6IFVwZGF0ZWQg
ZW51bQorICAgICAgICBhbmQgYWxzbyB1c2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKTogVXNl
IG51bGxwdHIgdG8KKyAgICAgICAgcmV0dXJuIG51bGwgcmF0aGVyIHRoYW4gdGhlIG9sZCBpZGlv
bSAoZGVmYXVsdC1jb25zdHJ1Y3RlZCBXZWJHTEdldEluZm8pLgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dGV4U3RvcmFnZTJEKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRRdWVyeVBhcmFtZXRlcik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2FtcGxlclBh
cmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0U3luY1BhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1l
dGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVWZXJ0ZXhBcnJheSk6IFVwZGF0ZWQgZW51bSBhbmQg
YWxzbworICAgICAgICB1c2UgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKTogUmVhcnJhbmdlZCBsb2dpYyBpbiB0aHJlZSB3
YXlzOgorICAgICAgICAoMSkgTW92ZWQgY2hlY2tzIGZvciB3aGV0aGVyIGFuIGV4dGVuc2lvbiBp
cyBzdXBwb3J0ZWQgaW5zaWRlIHRoZSBjYXNlIGZvciB0aGF0CisgICAgICAgIGV4dGVuc2lvbiwg
cmF0aGVyIHRoYW4gY29tYmluaW5nIHRoZSBleHRlbnNpb24gbmFtZSBjaGVjayB3aXRoIHRoZSBl
eHRlbnNpb25zCisgICAgICAgIGVuYWJsZWQgY2hlY2suICgyKSBVc2VkIHRoZSBuZXcgZW5hYmxl
U3VwcG9ydGVkRXh0ZW5zaW9uIGZ1bmN0aW9uIHRvIHNpbXBsaWZ5CisgICAgICAgIG1hbnkgb2Yg
dGhlIGNoZWNrcyB0byBhdm9pZCByZXBlYXRpbmcgdGhlIGV4dGVuc2lvbiBuYW1lIHR3aWNlLiAo
MykgQ2hhbmdlZCB0aGUKKyAgICAgICAgaWRpb20gc28gd2Ugc2V0IHRoZSBwb2ludGVycyB0byBu
dWxscHRyIGV4cGxpY2l0bHksIHByZXBhcmluZyBmb3IgYSBmdXR1cmUgd2hlcmUKKyAgICAgICAg
d2UgbWlnaHQgbWFrZSB0aGUgZXh0ZW5zaW9uIHBvaW50ZXJzIHVzZSBzdGQ6Om9wdGlvbmFsIHNv
IHdlIGNhbiBjYWNoZSBhIG5lZ2F0aXZlCisgICAgICAgIGZvciBlYWNoIGV4dGVuc2lvbiB0b28s
IG5vdCBqdXN0IGEgcG9zaXRpdmUgcmVzdWx0LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucyk6IFVzZSBBU0NJSUxpdGVyYWwu
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnRQYXJhbWV0ZXIpOiBVc2UgbnVsbHB0cgorICAgICAgICBhcyBhYm92ZS4gRm9y
IG5vbi1udWxsIHR5cGVzLCByZXR1cm4gdGhlIG9iamVjdCB3aXRob3V0IGNvbnZlcnRpbmcsIGxl
dHRpbmcgdGhlCisgICAgICAgIFdlYkdMQW55IGNsYXNzIGhhbmRsZSB0aGluZ3MsIGV4Y2VwdCBm
b3IgZW51bWVyYXRpb25zLCB3aGljaCB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkKKyAgICAgICAgc3Rh
dGljX2Nhc3QgdG8gYW4gaW50ZWdyYWwgdHlwZSwgYW5kIHRoaW5ncyB0aGF0IHdpbGwgYmUgc3Rv
cmVkIGluIHRoZSB2YXJpYW50IGluCisgICAgICAgIGEgUmVmUHRyLCB3aGVyZSB3ZSB1c2UgbWFr
ZVJlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZhbGlk
YXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyk6CisgICAgICAgIFNpbXBsaWZpZWQgYW5kIGNs
YXJpZmllZCB0aGUgaGFuZGxpbmcgb2YgQ09MT1JfQVRUQUNITUVOVC4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcik6IFJldHVybiBXZWJHTEFu
eSwgc2FtZSBpZGlvbSBhcworICAgICAgICBkZXNjcmliZWQgYWJvdmUgZm9yIGdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlci4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTEFueS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6
IEhhbmRsZXMgY29udmVyc2lvbiB0byBKYXZhU2NyaXB0IHR5cGVzLiBUaGlzIGZ1bmN0aW9uIGlz
IGJhc2VkCisgICAgICAgIG9uIHRoZSBleGlzdGluZyB0b0pTIGZ1bmN0aW9ucyBmcm9tIHRoZSB0
d28gY2xhc3NlcyB0aGF0IHdlcmUgdXNpbmcgV2ViR0xHZXRJbmZvLgorICAgICAgICBFdmVudHVh
bGx5IHdlIGNhbiBwcm9iYWJseSBqdXN0IGdldCB0aGUgYmluZGluZ3MgdG8gYXV0b21hdGljYWxs
eSBnZW5lcmF0ZSB0aGlzLAorICAgICAgICBidXQgdGhlcmUgaXMgc29tZSB3b3JrIHRvIGRvIHRv
IGdldCB0byB0aGF0IHBvaW50LgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQW55Lmg6IEFk
ZGVkLiBUaGlzIHR5cGUsIGEgdmFyaWFudCwgcmVwbGFjZXMgdGhlIFdlYkdMR2V0SW5mbworICAg
ICAgICBjbGFzcy4gQWxzbyBpbmNsdWRlcyB0aGUgdG9KUyBmdW5jdGlvbiwgd2hpY2ggaXMgdGhl
IHJlYWwgcG9pbnQgb2YgdGhpcyB0eXBlLCBzaW5jZQorICAgICAgICBpdCdzIGFib3V0IHJldHVy
bmluZyBhIHZhcmlhbnQgbWFwcGVkIGFwcHJvcHJpYXRlbHkgdG8gSmF2YVNjcmlwdCB0eXBlcy4K
KworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjpnZXRBR3JhcGhpY3NDb250ZXh0M0QpOiBDaGFu
Z2VkIHRvIHJldHVybiBhIHJlZmVyZW5jZS4KKyAgICAgICAgRHJvcGVkIHVubmVjZXNzYXJ5IGxv
Y2FsIHZhcmlhYmxlIHdpdGggYSBsb25nIHR5cGUgbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMQ29udGV4dEdyb3VwOjphZGRDb250ZXh0KTogVGFrZSBhIHJlZmVyZW5jZS4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjpyZW1vdmVDb250ZXh0KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlT2JqZWN0KTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRHcm91cDo6YWRkT2JqZWN0KTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRHcm91cDo6ZGV0YWNoQW5kUmVtb3ZlQWxsT2Jq
ZWN0cyk6IERyb3BwZWQgdW5uZWNlc3NhcnkKKyAgICAgICAgbG9jYWwgdmFyaWFibGUgd2l0aCBh
IGxvbmcgdHlwZSBuYW1lLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3Vw
Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTENvbnRleHRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0T2Jq
ZWN0Ojp+V2ViR0xDb250ZXh0T2JqZWN0KTogUGFzcyByZWZlcmVuY2VzLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xDb250ZXh0T2JqZWN0OjpkZXRhY2hDb250ZXh0KTogRGl0dG8uCisKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGh0
bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oOiBSZW1vdmVkLgorCisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6V2ViR0xSZW5kZXJpbmdDb250ZXh0KTogVGFrZSBhIFJlZiYmIGluc3Rl
YWQKKyAgICAgICAgb2YgYXMgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cyk6IFVwZGF0ZWQgZW51
bQorICAgICAgICBhbmQgYWxzbyB1c2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKTogUmVhcnJhbmdlZCBsb2dpYyBpbiB0
aHJlZSB3YXlzOgorICAgICAgICAoMSkgTW92ZWQgY2hlY2tzIGZvciB3aGV0aGVyIGFuIGV4dGVu
c2lvbiBpcyBzdXBwb3J0ZWQgaW5zaWRlIHRoZSBjYXNlIGZvciB0aGF0CisgICAgICAgIGV4dGVu
c2lvbiwgcmF0aGVyIHRoYW4gY29tYmluaW5nIHRoZSBleHRlbnNpb24gbmFtZSBjaGVjayB3aXRo
IHRoZSBleHRlbnNpb25zCisgICAgICAgIGVuYWJsZWQgY2hlY2suICgyKSBVc2VkIHRoZSBuZXcg
ZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uIGZ1bmN0aW9uIHRvIHNpbXBsaWZ5CisgICAgICAgIG1h
bnkgb2YgdGhlIGNoZWNrcyB0byBhdm9pZCByZXBlYXRpbmcgdGhlIGV4dGVuc2lvbiBuYW1lIHR3
aWNlLiAoMykgQ2hhbmdlZCB0aGUKKyAgICAgICAgaWRpb20gc28gd2Ugc2V0IHRoZSBwb2ludGVy
cyB0byBudWxscHRyIGV4cGxpY2l0bHksIHByZXBhcmluZyBmb3IgYSBmdXR1cmUgd2hlcmUKKyAg
ICAgICAgd2UgbWlnaHQgbWFrZSB0aGUgZXh0ZW5zaW9uIHBvaW50ZXJzIHVzZSBzdGQ6Om9wdGlv
bmFsIHNvIHdlIGNhbiBjYWNoZSBhIG5lZ2F0aXZlCisgICAgICAgIGZvciBlYWNoIGV4dGVuc2lv
biB0b28sIG5vdCBqdXN0IGEgcG9zaXRpdmUgcmVzdWx0LgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKTogVXNlIEFTQ0lJTGl0
ZXJhbC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKTogVXNlIG51bGxwdHIKKyAgICAgICAgYXMgYWJvdmUu
IEZvciBub24tbnVsbCB0eXBlcywgcmV0dXJuIHRoZSBvYmplY3Qgd2l0aG91dCBjb252ZXJ0aW5n
LCBsZXR0aW5nIHRoZQorICAgICAgICBXZWJHTEFueSBjbGFzcyBoYW5kbGUgdGhpbmdzLCBleGNl
cHQgZm9yIGVudW1lcmF0aW9ucywgd2hpY2ggd2UgbmVlZCB0byBleHBsaWNpdGx5CisgICAgICAg
IHN0YXRpY19jYXN0IHRvIGFuIGludGVncmFsIHR5cGUsIGFuZCB0aGluZ3MgdGhhdCB3aWxsIGJl
IHN0b3JlZCBpbiB0aGUgdmFyaWFudCBpbgorICAgICAgICBhIFJlZlB0ciwgd2hlcmUgd2UgdXNl
IG1ha2VSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZh
bGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyk6CisgICAgICAgIFNpbXBsaWZpZWQgYW5k
IGNsYXJpZmllZCB0aGUgaGFuZGxpbmcgb2YgQ09MT1JfQVRUQUNITUVOVCBhZGRpbmcgYSBGSVhN
RSBhYm91dAorICAgICAgICBzb21ldGhpbmcgcXVlc3Rpb25hYmxlLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIpOiBSZXR1cm4gV2ViR0xBbnks
IHNhbWUgaWRpb20gYXMKKyAgICAgICAgZGVzY3JpYmVkIGFib3ZlIGZvciBnZXRGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnRQYXJhbWV0ZXIuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZSk6IFVwZGF0ZWQgdG8gcGFzcyByZWZl
cmVuY2VzCisgICAgICAgIGluc3RlYWQgb2YgcG9pbnRlcnMgaW4gYSBjb3VwbGUgY2FzZXMKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UpOiBDaGFuZ2VkIGdyYXBoaWNzCisgICAgICAgIGNvbnRleHQgYXJndW1lbnQg
dHlwZSBmcm9tIFJlZlB0ciYmIHRvIFJlZiYmLiBBbHNvIG1vdmVkIGluaXRpYWxpemF0aW9uIG9m
IHNjYWxhcnMKKyAgICAgICAgZnJvbSB0aGUgY29uc3RydWN0b3IgdG8gdGhlIGNsYXNzIGRlZmlu
aXRpb24uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp+V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVCdWZmZXIpOiBQYXNzIGEgcmVm
ZXJlbmNlIGluc3RlYWQgb2YgYSBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlRnJhbWVidWZmZXIpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZVRleHR1cmUpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZVByb2dy
YW0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmNyZWF0ZVJlbmRlcmJ1ZmZlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlU2hhZGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVCdWZmZXIpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFtZXRl
cik6IFVwZGF0ZSB0byB1c2UgV2ViR0xBbnkuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpnZXRQcm9ncmFtUGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0
ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldFNoYWRlclBhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRyaWIp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omdl
dFZlcnRleEF0dHJpYk9mZnNldCk6IFJlbW92ZWQgdW5ubmVlZAorICAgICAgICB0eXBlIGNhc3Rz
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0
cmliUG9pbnRlcik6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVTaGFyZWRPYmplY3QpOiBUYWtlIGEgcmVmZXJlbmNl
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRkU2hhcmVk
T2JqZWN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpyZW1vdmVDb250ZXh0T2JqZWN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjphZGRDb250ZXh0T2JqZWN0KTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuUGFyYW1ldGVy
KTogQ2hhbmdlZCByZXR1cm4gdHlwZTsKKyAgICAgICAgY29ubnZlcnNpb24gdG8gV2ViR0xBbnkg
Y2FuIGhhcHBlbiBhdCB0aGUgcG9pbnQgb2YgdXNlLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Qm9vbGVhbkFycmF5UGFyYW1ldGVyKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRGbG9hdFBhcmFt
ZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Z2V0SW50UGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpnZXRVbnNpZ25lZEludFBhcmFtZXRlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0SW50NjRQYXJhbWV0ZXIp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omdl
dFdlYkdMRmxvYXRBcnJheVBhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVC
dWZmZXJEYXRhUGFyYW1ldGVycyk6IFVzZQorICAgICAgICBvcHRpb25hbCB0byBzaW1wbGlmeSBs
b2dpYyBhbmQgZ2V0IHJpZCBvZiBhIGJvb2xlYW4uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjplbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24pOiBBZGRlZC4KKyAg
ICAgICAgSGVscGVyIHVzZWQgYnkgdGhlIGdldEV4dGVuc2lvbiBmdW5jdGlvbnMuCisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUgY2hhbmdlcy4KKyAgICAgICAgQWxzbyBjaGFuZ2VkIHNldEJvdW5kVmVydGV4QXJy
YXlPYmplY3QgdG8gdGFrZSBhIHJhdyBwb2ludGVyIGluc3RlYWQgb2YKKyAgICAgICAgYXMgUGFz
c1JlZlB0ci4KKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMU2hhcmVkT2JqZWN0Ojp+V2ViR0xTaGFyZWRPYmplY3Qp
OiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTaGFyZWRPYmplY3Q6
OmRldGFjaENvbnRleHRHcm91cCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTaGFy
ZWRPYmplY3Q6OmdldEFHcmFwaGljc0NvbnRleHQzRCk6IFVwZGF0ZWQgc2luY2UgdGhlCisgICAg
ICAgIHVuZGVybHlpbmcgZ2V0QUdyYXBoaWNzQ29udGV4dDNEIGZ1bmN0aW9uIG5vdyByZXR1cm5z
IGEgcmVmZXJlbmNlLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3Qu
aDogUmVtb3ZlZCBtYW55IHVudXNlZCAiaXMiIHZpcnR1YWwgZnVuY3Rpb25zLgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaDogRGl0dG8uCisKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZSk6IFVwZGF0ZWQgZm9yIG5ldyB0eXBl
IGVudW1lcmF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdDo6ZGVsZXRlT2JqZWN0SW1wbCk6IERpdHRvLgorICAgICAgICAqIGh0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hh
bmdlcy4KKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpXZWJH
TFZlcnRleEFycmF5T2JqZWN0QmFzZSk6IFVwZGF0ZWQgZm9yIG5ldworICAgICAgICB0eXBlIGVu
dW1lcmF0aW9uIGFuZCBtb3ZlZCBpbml0aWFsaXphdGlvbiB0byBjbGFzcyBkZWZpbml0aW9uLgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldEVsZW1lbnRB
cnJheUJ1ZmZlcik6IENoYW5nZWQgYXJndW1lbnQgdG8KKyAgICAgICAgcmF3IHBvaW50ZXIgaW5z
dGVhZCBvZiBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9i
amVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKTogQ2hhbmdlZCBhcmd1bWVudCB0bworICAg
ICAgICByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZlcik6IENoYW5nZWQgYXJ1Z21l
bnQgdHlwZSB0bworICAgICAgICByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJp
YkRpdmlzb3IpOiBSZW1vdmVkIHVubmVlZGVkCisgICAgICAgIGxvY2FsIHZhcmlhYmxlLgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmg6IFVwZGF0ZWQg
Zm9yIGFib3ZlIGNoYW5nZXMuCisgICAgICAgIFJlcGxhY2VkIFZBT1R5cGUgd2l0aCBUeXBlLiBV
c2VkIGNsYXNzIG1lbWJlciBpbml0aWFsaXphdGlvbi4KKworICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKTogVXBkYXRlZCBmb3IgbmV3IHR5cGUgZW51bWVy
YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpXZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTOjp+V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUykgRGl0dG8uOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6ZGVsZXRlT2JqZWN0
SW1wbCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmpl
Y3RPRVMuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvZm9y
bXMvRmlsZUljb25Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUljb25Mb2FkZXI6
Omljb25Mb2FkZWQpOiBSZW5hbWVkIGZyb20gbm90aWZ5RmluaXNoZWQuIEFsc28gY2hhbmdlZAor
ICAgICAgICB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gdGhpcyBjYWxscyB0byBpY29uTG9hZGVk
LiBDaGFuZ2VkIHRoZSBhcmd1ZW1udCB0bworICAgICAgICBSZWZQdHImJiBpbnN0ZWFkIG9mIFBh
c3NSZWZQdHIuCisgICAgICAgICogaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5oOiBVcGRhdGVk
IGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVj
dGlvblNpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6OmF0
dGFjaExhdGVyKTogVXNlIGlzU2NyaXB0RWxlbWVudCBpbnN0ZWFkIG9mCisgICAgICAgIHRvU2Ny
aXB0RWxlbWVudElmUG9zc2libGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9u
U2l0ZTo6aW5zZXJ0Rm9yZWlnbkVsZW1lbnQpOiBEaXR0by4KKworICAgICAgICAqIGh0bWwvcGFy
c2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1l
bnRQYXJzZXI6OnJ1blNjcmlwdHNGb3JQYXVzZWRUcmVlQnVpbGRlcik6IFBhc3Mgc2NyaXB0Cisg
ICAgICAgIGVsZW1lbnQgYXMgYSBSZWYgcmF0aGVyIHRoYW4gUmVmUHRyLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjp3YXRjaEZvckxvYWQpOiBQYXNzIGEgcmVmZXJlbmNl
IGluc3RlYWQgb2YgYSBwb2ludGVyLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFNjcmlw
dFJ1bm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRl
UGFyc2luZ0Jsb2NraW5nU2NyaXB0KTogRGVsZXRlZC4gTW92ZWQgdGhlIGNvZGUKKyAgICAgICAg
aW50byB0aGUgc2luZ2xlIGNhbGwgc2l0ZSwgZXhlY3V0ZSBQYXJzaW5nQmxvY2tpbmdTY3JpcHRz
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBlbmRpbmdTY3Jp
cHRBbmREaXNwYXRjaEV2ZW50KTogQ2hhbmdlZCBhcmd1bWVudAorICAgICAgICB0eXBlIHRvIGEg
cmVmZXJlbmNlIGZyb20gYSBSZWZQdHI7IHRoaXMgZnVudGlvbiB3YXMgbm90IHRha2luZyBvd25l
cnNoaXAuIEFsc28gcmVtb3ZlCisgICAgICAgIGNhbGwgdG8gdG9TY3JpcHRFbGVtZW50SWZQb3Nz
aWJsZSwKKyAgICAgICAgc2luY2UgcGVuZGluZyBzY3JpcHRzIG5vdyBjb250YWlucyBzY3JpcHQg
ZWxlbWVudHMgYWxyZWFkeS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OmV4
ZWN1dGUpOiBDaGFuZ2VkIGFyZ3VtZW50IHR5cGUgdG8gUmVmPFNjcmlwdEVsZW1lbnQ+JiYKKyAg
ICAgICAgZnJvbSBQYXNzUmVmUHRyPEVsZW1lbnQ+LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNj
cmlwdFJ1bm5lcjo6ZXhlY3V0ZVBhcnNpbmdCbG9ja2luZ1NjcmlwdHMpOiBNb3ZlZCBjb2RlIGhl
cmUgZnJvbQorICAgICAgICBleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0LiBBbHNvIHBhc3Mg
YSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRl
U2NyaXB0c1dhaXRpbmdGb3JQYXJzaW5nKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdl
YkNvcmU6OnJlcXVlc3RQZW5kaW5nU2NyaXB0KTogQ2hhbmdlZCBhcmd1bWVudCB0eXBlIHRvIFNj
cmlwdEVsZW1lbnQmIGZyb20KKyAgICAgICAgRWxlbWVudCouCisgICAgICAgIChXZWJDb3JlOjpI
VE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0RGVmZXJyZWRTY3JpcHQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OnJ1blNjcmlwdCk6
IERpdHRvLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuaDogVXBkYXRl
ZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnRha2VTY3JpcHRU
b1Byb2Nlc3MpOiBDaGFuZ2VkIHJldHVybiB0eXBlIGZyb20KKyAgICAgICAgUmVmUHRyPEVsZW1l
bnQ+IHRvIFJlZlB0cjxTY3JpcHRFbGVtZW50Pi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVl
QnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyk6IERvd25jYXN0IHRoZSBzY3JpcHQgZWxlbWVudCB0bwor
ICAgICAgICBIVE1MU2NyaXB0RWxlbWVudCBzbyB3ZSBjYW4gc3RvcmUgaXQgYXMgYSBTY3JpcHRF
bGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVG9rZW5J
bkZvcmVpZ25Db250ZW50KTogRG93bmNhc3QgdGhlIHNjcmlwdAorICAgICAgICBlbGVtZW50IHRv
IFNWR1NjcmlwdEVsZW1lbnQgc28gd2UgY2FuIHN0b3JlIGl0IGFzIGEgc2NyaXB0IGVsZW1lbnQu
CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmg6IFVwZGF0ZWQgZm9yIGFi
b3ZlIGNoYW5nZXMuIENoYW5nZWQgdGhlIHR5cGUKKyAgICAgICAgb2YgbV9zY3JpcHRUb1Byb2Nl
c3MgdG8gUmVmUHRyPFNjcmlwdEVsZW1lbnQ+LgorCisgICAgICAgICogaHRtbC9wYXJzZXIvVGV4
dERvY3VtZW50UGFyc2VyLmNwcDogQWRkZWQgbm93LW5lZWRlZCBpbmNsdWRlLgorCisgICAgICAg
ICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhTU0F1ZGl0b3JEZWxlZ2F0ZTo6Z2VuZXJhdGVWaW9sYXRpb25SZXBvcnQpOiBDaGFuZ2VkIHJl
dHVybiB0eXBlCisgICAgICAgIHRvIFJlZiBmcm9tIFBhc3NSZWZQdHIuCisgICAgICAgICogaHRt
bC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmg6IFVwZGF0ZWQgZm9yIGFib3ZlLgorCisgICAg
ICAgICogaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
VHJhY2s6OkF1ZGlvVHJhY2spOiBUYWtlIHJlZmVyZW5jZXMuCisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1RyYWNrOjpzZXRQcml2YXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Ry
YWNrOjpzZXRFbmFibGVkKTogUmVtb3ZlZCByZWR1bmRhbnQgY29kZSB0byBkbyB3aGF0IHRoZQor
ICAgICAgICBwcml2YXRlIHNldEVuYWJsZWQgZnVuY3Rpb24gaXMgYWxyZWFkeSBnb2luZyB0byBk
by4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmluYmFuZFRyYWNrSW5kZXgpOiBSZW1v
dmVkIGFzc2VydGlvbiBzaW5jZSBtX3ByaXZhdGUKKyAgICAgICAgaXMgbm93IGEgUmVmIHJhdGhl
ciB0aGFuIFJlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmVuYWJsZWRDaGFu
Z2VkKTogQWRkZWQgYW4gZWFybHkgZXhpdCBzbyB3ZSB3aWxsIG9ubHkKKyAgICAgICAgY2FsbCBh
dWRpb1RyYWNrRW5hYmxlZENoYW5nZWQgaWYgbV9lbmFibGVkIGlzIGFjdHVhbGx5IGNoYW5naW5n
LiBBbHNvIHJlbW92ZWQKKyAgICAgICAgdGhlIHVubmVlZGVkIHRyYWNrIHByaXZhdGUgYXJndW1l
bnQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjppZENoYW5nZWQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmxhYmVsQ2hhbmdlZCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1RyYWNrOjp3aWxsUmVtb3ZlKTogRGl0dG8uCisgICAgICAgICogaHRt
bC90cmFjay9BdWRpb1RyYWNrLmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAg
ICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZSk6IFJlbW92ZWQgaW5iYW5kIHRleHQg
dHJhY2sgcHJpdmF0ZQorICAgICAgICBhcmd1bWVudC4gVXNlIGNvbnRhaW5zIGluc3RlYWQgb2Yg
ZmluZC9lbmQuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVE
YXRhQ3VlKTogRGl0dG8uIFVzZSBnZXQgaW5zdGVhZCBvZiBmaW5kL2VuZC4KKyAgICAgICAgKFdl
YkNvcmU6OkluYmFuZERhdGFUZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUpOiBEaXR0by4KKyAgICAg
ICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaDogVXBkYXRlZCBmb3IgYWJvdmUg
Y2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpJbmJhbmRHZW5l
cmljVGV4dFRyYWNrKTogVGFrZSByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5k
R2VuZXJpY1RleHRUcmFjazo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJh
bmRHZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVDdWVGcm9tQ3VlRGF0YSk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSk6IERpdHRv
LiBBbHNvIHJlbW92ZWQgdW51c2VkCisgICAgICAgIHRyYWNrIHByaXZhdGUgYXJndW1lbnQuCisg
ICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVHZW5lcmljQ3Vl
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpyZW1v
dmVHZW5lcmljQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4
dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Oklu
YmFuZEdlbmVyaWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRURmlsZUhlYWRlcik6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6bmV3UmVnaW9uc1BhcnNlZCk6
IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4
dFRyYWNrLmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL3Ry
YWNrL0luYmFuZFRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJh
Y2s6OmNyZWF0ZSk6IFJldHVybiBhIFJlZiBpbnN0ZWFkIG9mIGEgUGFzc1JlZlB0ci4gVGFrZQor
ICAgICAgICByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjpJ
bmJhbmRUZXh0VHJhY2spOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFj
azo6c2V0UHJpdmF0ZSk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIFBhc3NSZWZQdHIu
CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OmlzQ2xvc2VkQ2FwdGlvbnMpOiBS
ZW1vdmVkIGNoZWNrIGZvciBudWxsIHNpbmNlIG1fcHJpdmF0ZQorICAgICAgICBpcyBub3cgYSBS
ZWYgYW5kIHNvIG5ldmVyIG51bGwuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6
OmlzU0RIKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OmNvbnRh
aW5zT25seUZvcmNlZFN1YnRpdGxlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5k
VGV4dFRyYWNrOjppc01haW5Qcm9ncmFtQ29udGVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6SW5iYW5kVGV4dFRyYWNrOjppc0Vhc3lUb1JlYWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkluYmFuZFRleHRUcmFjazo6aW5iYW5kVHJhY2tJbmRleCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjppbkJhbmRNZXRhZGF0YVRyYWNrRGlzcGF0Y2hUeXBl
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OmlkQ2hhbmdlZCk6
IFJlbW92ZWQgdW5uZWVkZWQgdHJhY2sgcHJpdmF0ZSBhcmd1bWVudC4KKyAgICAgICAgKFdlYkNv
cmU6OkluYmFuZFRleHRUcmFjazo6bGFiZWxDaGFuZ2VkKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpJbmJhbmRUZXh0VHJhY2s6Omxhbmd1YWdlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjp3aWxsUmVtb3ZlKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OnVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSk6IEltcHJvdmVk
IHN3aXRjaCBzdGF0ZW1lbnQKKyAgICAgICAgYnkgcmVtb3ZpbmcgZGVmYXVsdCBzbyB3ZSBnZXQg
YSB3YXJuaW5nIGlmIHdlIGZvcmdldCB0byBoYW5kbGUgYSBraW5kIHZhbHVlLgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjpzdGFydFRpbWVWYXJpYW5jZSk6IFJlbW92ZWQgY2hl
Y2sgZm9yIG51bGwuCisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suaDogVXBk
YXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4gQ2hhbmdlZCBtX3ByaXZhdGUgZnJvbQorICAgICAgICBh
IFJlZlB0ciB0byBhIFJlZi4KKworICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4
dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFdlYlZUVFRleHRUcmFjazo6SW5i
YW5kV2ViVlRUVGV4dFRyYWNrKTogVGFrZSByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29yZTo6
SW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKTogUmVtb3ZlZCB1bm5l
ZWRlZCB0cmFjaworICAgICAgICBwcml2YXRlIGFyZ3VlbW50LgorICAgICAgICAoV2ViQ29yZTo6
SW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpuZXdSZWdpb25zUGFyc2VkKTogUGFzcyBhIHJlZmVyZW5j
ZS4KKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oOiBVcGRhdGVk
IGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC90cmFjay9Mb2FkYWJsZVRleHRU
cmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2FkYWJsZVRleHRUcmFjazo6bmV3Q3Vlc0F2
YWlsYWJsZSk6IFBhc3MgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6OkxvYWRhYmxlVGV4
dFRyYWNrOjpuZXdSZWdpb25zQXZhaWxhYmxlKTogRGl0dG8uCisKKyAgICAgICAgKiBodG1sL3Ry
YWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6On5UZXh0VHJh
Y2spOiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6c2V0S2lu
ZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpzZXRNb2RlKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OnJlbW92ZUFsbEN1ZXMpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6YWN0aXZlQ3Vlcyk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6VGV4dFRyYWNrOjphZGRDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRUcmFjazo6cmVtb3ZlQ3VlKTogUmVtb3ZlZCB1bm5lZWRlZCBjb2RlIHRvIGhhbmRsZSBhIGN1
ZQorICAgICAgICB0aGF0IHBvaW50cyB0byBhIHRyYWNrIGJ1dCBpcyBub3QgaW4gdGhhdCB0cmFj
ay4gQWRkZWQgYSBjYWxsIHRvCisgICAgICAgIHNldElzQWN0aXZlKGZhbHNlKSBoZXJlIGluc3Rl
YWQgb2YgaGF2aW5nIHRoZSByZW1vdmUgZnVuY3Rpb24gZG8gaXQuCisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2s6OmFkZFJlZ2lvbik6IFVzZSByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dFRyYWNrOjpyZW1vdmVSZWdpb24pOiBSZW1vdmVkIHVubmVlZGVkIGNvZGUgdG8gaGFu
ZGxlIGEKKyAgICAgICAgcmVnaW9uIHRoYXQgcG9pbnRzIHRvIGEgdHJhY2sgYnV0IGlzIG5vdCBp
biB0aGF0IHRyYWNrLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpjdWVXaWxsQ2hhbmdl
KTogVXNlIHJlZmVyZW5jZXMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OmN1ZURpZENo
YW5nZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpzZXRMYW5ndWFnZSk6
IERpdHRvLgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrLmg6IFVwZGF0ZWQgZm9yIGFi
b3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OlRleHRUcmFja0N1ZSk6IEluaXRpYWxpemVk
IHRoZSBkYXRhIG1lbWJlcnMKKyAgICAgICAgaW4gdGhlIGNsYXNzIGRlZmluaXRpb24uCisgICAg
ICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmN1ZUluZGV4KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6aW52YWxpZGF0ZUN1ZUluZGV4KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUu
IFJlbW92ZWQgbV9jdWVJbmRleCwKKyAgICAgICAgYmVjYXVzZSBpdCBpcyBub3QgYSBnb29kIGRl
c2lnbiB0byBzdG9yZSB0aGVzZSBhbmQgdHJ5IHRvIGtlZXAgdGhlbSB1cAorICAgICAgICB0byBk
YXRlLgorCisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbXBhcmVDdWVzKTogQWRkZWQuIEhlbHBlciBmb3Igc29ydGluZyBhbmQg
Y2hlY2tpbmcgc29ydGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6OlRl
eHRUcmFja0N1ZUxpc3QpOiBEZWxldGVkLiBMZXQgdGhlIGNvbXBpbGVyCisgICAgICAgIGdlbmVy
YXRlIHRoaXMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjpsZW5ndGgpOiBN
b3ZlZCB0byBoZWFkZXIuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjpjdWVJ
bmRleCk6IFJlbmFtZWQgZnJvbSBnZXRDdWVJbmRleC4KKyAgICAgICAgQ2hhbmdlZCByZXR1cm4g
dHlwZSB0byB1bnNpZ25lZCByYXRoZXIgdGhhbiB1bnNpZ25lZCBsb25nLgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dFRyYWNrQ3VlTGlzdDo6aXRlbSk6IFVwZGF0ZWQgZm9yIG5hbWUgY2hhbmdlLgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlTGlzdDo6Z2V0Q3VlQnlJZCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlTGlzdDo6YWN0aXZlQ3Vlcyk6IEJ1aWxkIHRo
ZSB2ZWN0b3IgZGlyZWN0bHkKKyAgICAgICAgcmF0aGVyIHRoYW4gd2FzdGVmdWxseSBhZGRpbmcg
d2l0aCBUZXh0VHJhY2tDdWVMaXN0OjphZGQsIHdoaWNoIHdpbGwKKyAgICAgICAgdHJ5IHRvIHNv
cnQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjphZGQpOiBUYWtlIGEgUmVm
JiYgaW5zdGVhZCBvZiBhIFBhc3NSZWZQdHIuCisgICAgICAgIEFsc28sIGtlZXAgc29ydGVkIHVz
aW5nIHN0ZDo6dXBwZXJfYm91bmQgaW5zdGVhZCBvZiB0aGUgcmVjdXJzaXZlCisgICAgICAgIGJp
bmFyeSBzZWFyY2ggdGhpcyBjb2RlIHdhcyB1c2luZyBiZWZvcmUuIEFsc28gcmVtb3ZlIHRoZQor
ICAgICAgICBpbnZhbGlkYXRlQ3VlSW5kZXhlcyBjYWxsIHNpbmNlIHRoZXJlIGFyZSBubyBjdWUg
aW5kaWNlcyBhbnkgbW9yZS4KKyAgICAgICAgQWxzbyByZW1vdmUgdGhlIGJvb2xlYW4gcmV0dXJu
IHZhbHVlIHNpbmNlIG5vIGNhbGxlciB3YXMgdXNpbmcgaXQuCisgICAgICAgIChXZWJDb3JlOjpU
ZXh0VHJhY2tDdWVMaXN0OjpyZW1vdmUpOiBUYWtlIGEgcmVmZXJlbmNlIGluc3RlYWQgb2YgYQor
ICAgICAgICBwb2ludGVyLiBBbHNvIHJlbW92ZSB0aGUgYm9vbGVhbiByZXR1cm4gdmFsdWUgc2lu
Y2Ugbm8gY2FsbGVyIHdhcyB1c2luZyBpdC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1
ZUxpc3Q6OmNvbnRhaW5zKTogRGVsZXRlZC4gV2FzIHVudXNlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlRleHRUcmFja0N1ZUxpc3Q6OnVwZGF0ZUN1ZUluZGV4KTogUmVpbXBsZW1lbnRlZCB1c2luZyB0
aGUKKyAgICAgICAgc3RkOjp1cHBlcl9ib3VuZCBhbmQgc3RkOjpyb3RhdGUgb3BlcmF0aW9ucy4g
VGhlIG9sZCBjb2RlIHRoYXQgdXNlZAorICAgICAgICByZW1vdmUgYW5kIGFkZCB3YXMgaW5lZmZp
Y2llbnQgYW5kIGFsc28gY291bGQgY2F1c2UgYSBjdWUgdG8gYmUgZGVhbGxvY2F0ZWQKKyAgICAg
ICAgaWYgc29tZXRoaW5nIGVsc2Ugd2Fzbid0IGhvbGRpbmcgYSByZWZlcmVuY2UgdG8gdGhlIGN1
ZS4gQWxzbyBjaGFuZ2VkIHRvIHRha2UKKyAgICAgICAgYSByZWZlcmVuY2UuCisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjpjbGVhcik6IERlbGV0ZWQuIFdhcyB1bnVzZWQuCisg
ICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjppbnZhbGlkYXRlQ3VlSW5kZXhlcyk6
IERlbGV0ZWQuIE5vIGxvbmdlcgorICAgICAgICBuZWVkZWQgc2luY2Ugd2UgZG9uJ3Qgc3RvcmUg
Y3VlIGluZGljZXMgaW4gdGhlIGN1ZXMgYW55IG1vcmUuCisgICAgICAgICogaHRtbC90cmFjay9U
ZXh0VHJhY2tDdWVMaXN0Lmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZSBjaGFuZ2VzLgorCisgICAg
ICAgICogaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZU
VFJlZ2lvbkxpc3Q6OlZUVFJlZ2lvbkxpc3QpOiBEZWxldGVkLiBMZXQgdGhlIGNvbXBpbGVyCisg
ICAgICAgIGdlbmVyYXRlIHRoaXMuCisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb25MaXN0Ojps
ZW5ndGgpOiBNb3ZlZCB0byBoZWFkZXIuCisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb25MaXN0
OjppdGVtKTogVXBkYXRlZCBmb3IgbmFtZSBhbmQgdHlwZSBjaGFuZ2VzLgorICAgICAgICAoV2Vi
Q29yZTo6VlRUUmVnaW9uTGlzdDo6Z2V0UmVnaW9uQnlJZCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6VlRUUmVnaW9uTGlzdDo6YWRkKTogQ2hhbmdlZCB0byB0YWtlIGEgUmVmJiYgaW5zdGVh
ZCBvZiBhCisgICAgICAgIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb25M
aXN0OjpyZW1vdmUpOiBVcGRhdGVkLgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVnaW9uTGlzdDo6
Y2xlYXIpOiBEZWxldGVkLiBXYXMgdW51c2VkLgorICAgICAgICAqIGh0bWwvdHJhY2svVlRUUmVn
aW9uTGlzdC5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUgY2hhbmdlcy4KKyAgICAgICAgKiBodG1s
L3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaWRsOiBNYWRlIHJldHVybiB2YWx1ZXMgbnVsbGFibGUgdG8g
cmVmbGVjdAorICAgICAgICB0aGUgYWN0dWFsIHNlbWFudGljIG9mIHRoZSBjb2RlLgorCisgICAg
ICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
VHJhY2s6OlZpZGVvVHJhY2spOiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvVHJhY2s6OnNldFByaXZhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJh
Y2s6OnNldFNlbGVjdGVkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpp
bmJhbmRUcmFja0luZGV4KTogUmVtb3ZlZCBhc3NlcnRpb24gc2luY2UgbV9wcml2YXRlCisgICAg
ICAgIGlzIG5vdyBhIFJlZiBpbnN0ZWFkIG9mIGEgUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFjazo6c2VsZWN0ZWRDaGFuZ2VkKTogUmVtb3ZlZCB1bm5lZWRlZCB0cmFjayBwcml2
YXRlIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6aWRDaGFuZ2VkKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpsYWJlbENoYW5nZWQpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6Omxhbmd1YWdlQ2hhbmdlZCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6d2lsbFJlbW92ZSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6c2V0S2luZCk6IFVwZGF0ZWQgdG8gdXNlIHJlZmVy
ZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OnNldExhbmd1YWdlKTogRGl0dG8u
CisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92
ZS4gQ2hhbmdlZCBkZXJpdmF0aW9uIHRvIHByaXZhdGUuCisgICAgICAgIFJlbW92ZWQgdW5uZWVk
ZWQgZGVmYXVsdEtpbmRLZXl3b3JkLgorCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5o
OiBVcGRhdGVkIHRvIHVzZSByZWZlcmVuY2UuCisKKyAgICAgICAgKiBsb2FkZXIvUGluZ0xvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0
KTogVGFrZSBhIFJlZiYmIGluc3RlYWQgb2YgUmVmUHRyJiYuCisgICAgICAgICogbG9hZGVyL1Bp
bmdMb2FkZXIuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlLgorCisgICAgICAgICogcGFnZS9D
aHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpsb2FkSWNvbkZvckZpbGVzKTog
VGFrZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOiBVcGRhdGVkIGZvciBh
Ym92ZSBjaGFuZ2UuCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogRGl0dG8uCisKKyAg
ICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24pOiBVc2UgYXV0by4K
KworICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFF
bGVtZW50Lm1tOgorICAgICAgICAoV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6
OnNlbGVjdEF1ZGlvTWVkaWFPcHRpb24pOiBTaW1wbGlmaWVkCisgICAgICAgIGFsZ29yaXRobSBi
eSByZW1vdmluZyB1bm5lZWRlZCBkaXJlY3QgY2FsbCB0byBhdWRpb1RyYWNrRW5hYmxlZENoYW5n
ZWQsCisgICAgICAgIHdoaWNoIHdpbGwgYmUgY2FsbGVkIGJ5IHNldEVuYWJsZWQgYW5kIGRvZXNu
J3QgbmVlZCB0byBiZSBjYWxsZWQgYWdhaW4gaGVyZS4KKyAgICAgICAgKFdlYlBsYXliYWNrU2Vz
c2lvbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24pOiBSZW1vdmVk
CisgICAgICAgIHVuaGVscGZ1bCBhc3NlcnRpb24gYW5kIHVubm5lZGVkIGluaXRpYWxpemF0aW9u
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaDogUmVt
b3ZlZCB1bm5uZWVlZCB0cmFjayBwcml2YXRlCisgICAgICAgIGFyZ3VtZW50IGFuZCBpbml0aWFs
aXplZCBkYXRhIG1lbWJlcnMgd2hlcmUgdGhleSBhcmUgZGVmaW5lZC4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaDogVXNlIFJlZiBp
bnN0ZWFkIG9mCisgICAgICAgIFBhc3NSZWZQdHIsIGluaXRpYWxpemUgZGF0YSBtZW1iZXJzIHdo
ZXJlIHRoZXkgYXJlIGRlZmluZWQsIGFuZCByZW1vdmVkCisgICAgICAgIHRoZSB1bm5lZWRlZCB0
cmFjayBwcml2YXRlIGFyZ3VtZW50cyBmcm9tIHRoZSBjbGllbnQgZnVuY3Rpb25zLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oOiBGaXhlZCBmdW5j
dGlvbnMgdGhhdCB3ZXJlIHRha2luZworICAgICAgICBBdG9taWNTdHJpbmcgdG8gdGFrZSBhIGNv
bnN0JiBpbnN0ZWFkLiBVc2UgUmVmJiYgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oOiBSZW1vdmVk
IHVubmVkZWQgcHJpdmF0ZSBwb2ludGVyCisgICAgICAgIGFyZ3VtZW50cyBmcm9tIGNsaWVudCBm
dW5jdGlvbnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNl
Lmg6IFJlbW92ZWQgdW5uZWVkZWQgcHJpdmF0ZSBwb2ludGVycworICAgICAgICBmcm9tIGNsaWVu
dCBmdW5jdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZh
dGU6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1
ZGlvVHJhY2tQcml2YXRlQVZGLmg6IFVzZQorICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmLgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZE1ldGFkYXRh
VGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRNZXRhZGF0
YVRleHRUcmFja1ByaXZhdGVBVkY6OmFkZERhdGFDdWUpOiBVcGRhdGVkIGZvciBjaGFuZ2UgdG8g
YXJndW1lbnRzLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2
YXRlQVZGOjp1cGRhdGVQZW5kaW5nQ3VlRW5kVGltZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6Zmx1c2hQYXJ0aWFsQ3Vlcyk6
IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRyaWJ1dGVkU3RyaW5ncyk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cmVzZXRDdWVWYWx1ZXMpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NO
YXRpdmVTYW1wbGVzKTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6QXVk
aW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMpOgorICAgICAgICBNb3ZlZCBpbml0aWFs
aXphdGlvbiBvZiBkYXRhIG1lbWVicnMgdG8gd2hlcmUgdGhleSBhcmUgZGVmaW5lZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjplbmFibGVk
KTogRGVsZXRlZC4gTm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRFbmFibGVkKTogQ2hhbmdlZCB0byB1c2Ug
dGhlIGVuYWJsZWQKKyAgICAgICAgZmxhZyBmcm9tIHRoZSBiYXNlIGNsYXNzIGluc3RlYWQgb2Yg
YSBzZXBhcmF0ZSBtX2VuYWJsZWQgaW4gdGhpcyBjbGFzcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5oOgorICAgICAgICBSZW1vdmVkIHRoZSBlbmFibGVkIGZ1bmN0aW9uIGFuZCB0aGUgbV9l
bmFibGVkIGRhdGEgbWVtYmVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaDogTWFya2VkIGZ1bmN0aW9u
cworICAgICAgICBmaW5hbCBpbnN0ZWFkIG9mIG92ZXJyaWRlIGFuZCB1cGRhdGVkIGFyZ3VlbW50
cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0KTogVXBkYXRlZCBmb3IgY2hh
bmdlCisgICAgICAgIHRvIGFyZ3VtZW50cy4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjpwcm9jZXNzQ29kZWRGcmFtZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVuZENvbXBsZXRlZCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Omhhc1ZpZGVv
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
aGFzQXVkaW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpsYXllckRpZFJlY2VpdmVFcnJvcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmZsdXNoKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmlzUmVhZHlGb3JN
b3JlU2FtcGxlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OmZhc3RTZWVrVGltZUZvck1lZGlhVGltZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNlZWtUb1RpbWUpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRCZWNvbWVSZWFk
eUZvck1vcmVTYW1wbGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMpOiBEaXR0
by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRNZXRhZGF0
YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaDogVXBkYXRlZCBmb3IKKyAgICAgICAgY2hhbmdl
cyB0byBhcmd1bWVudHMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0lu
YmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5VHJhY2tPZlNhbXBsZSk6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFt
ZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtOZXdTYW1wbGUpOiBEaXR0by4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
cjo6YXBwZW5kKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyOjpmbHVzaCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lcjo6ZW5xdWV1ZVNhbXBsZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNSZWFkeUZvck1vcmVTYW1wbGVzKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpu
b3RpZnlSZWFkeUZvck1vcmVTYW1wbGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpzdG9wQXNraW5nRm9yTW9yZVNhbXBsZXMpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6Om5vdGlm
eUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25T
ZWdtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyOjpkaWRSZWNlaXZlU2FtcGxlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlQWxsUGVuZGluZ1NhbXBsZXMpOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXIuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbW9jay9t
ZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6YXBwZW5kKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2Vn
bWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6
OmRpZFJlY2VpdmVTYW1wbGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2VC
dWZmZXJQcml2YXRlOjplbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1ZVNhbXBsZSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6Omhhc1ZpZGVvKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6aGFzQXVk
aW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpm
YXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tT
b3VyY2VCdWZmZXJQcml2YXRlOjpzZWVrVG9UaW1lKTogRGl0dG8uCisgICAgICAgICogcGxhdGZv
cm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oOiBEaXR0by4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6dXBkYXRlU25hcHNob3QpOiBUYWtl
IHJhdyBwb2ludGVyIGluc3RlYWQKKyAgICAgICAgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hh
bmdlLgorCisgICAgICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaDogQWRkZWQgdXNpbmcgdG8g
cmVzb2x2ZSB0aGUgYW1iaWd1aXR5IHdpdGggdGhlCisgICAgICAgIHJlZi9kZXJlZiBmcm9tIFNW
R0VsZW1lbnQgYW5kIGZyb20gU2NyaXB0RWxlbWVudC4KKworICAgICAgICAqIHhtbC9wYXJzZXIv
WE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJz
ZXI6Om5vdGlmeUZpbmlzaGVkKTogVXBkYXRlZCB0byBzaW1wbGlmeSBzaW5jZQorICAgICAgICB0
aGUgcGVuZGluZyBzY3JpcHQgbm93IGhhcyBhIHNjcmlwdCBlbGVtZW50LgorCisgICAgICAgICog
eG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVudE5zKTogVXNlIGlzU2NpcHJ0RWxlbWVu
dCBpbnN0ZWFkCisgICAgICAgIG9mIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUuCisgICAgICAg
IChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKTogRGl0dG8uIEFsc28g
dXNlIGRvd25jYXN0U2NyaXB0RWxlbWVudC4KKwogMjAxNy0wMS0wMiAgWXVzdWtlIFN1enVraSAg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBmb2xsb3ctdXAg
Zml4IGZvciByMjEwMjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggOGYyZWM3MzM3MDIwM2ZhMzdmZGM4
ZmIxNDRlYWEwYjY4NDQ4OWZlOS4uYTg5OThiMTY2MGM1YWUxMTliYzFjZjkzZTk1ZWY4ZDM1NTQw
YWIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAxLTA0ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciB1
c2UgZnJvbSB0aGUgImh0bWwiIGRpcmVjdG9yeSwgb3RoZXIgaW1wcm92ZW1lbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2MzUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyk6IFRh
a2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisKIDIwMTctMDEtMDEgIEplZmYg
TWlsbGVyICA8amVmZm1AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSB1c2VyLXZpc2libGUg
Y29weXJpZ2h0IHN0cmluZ3MgdG8gaW5jbHVkZSAyMDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggYjE2
MTU4NWJmOTYzNWExZTNlNDMxNjhlNmU0MTNiMjJhOTZmOWFkNi4uMGQ3OTJjYTU2NWNmZDU2NGM0
YmIyZDQyZWRkODc0ZjgzYzgxNTE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDE3LTAxLTA0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW1vdmUgUGFzc1JlZlB0ciB1c2UgZnJvbSB0aGUgImh0bWwiIGRpcmVjdG9yeSwgb3RoZXIgaW1w
cm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjY2MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMpOiBUYWtlIGEgcmVmZXJlbmNlIGluc3RlYWQgb2Yg
YSBwb2ludGVyLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOiBV
cGRhdGVkIGZvciB0aGUgYWJvdmUuCisKIDIwMTYtMTItMzAgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiZG9t
IiBkaXJlY3RvcnksIHJlbGF0ZWQgY2xlYW51cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI4OTVkYzI3OGEzYWUw
MDM3MTFlZTAzM2FiOTdhMmRjMjMwMTFiOGMuLmY3MWFlYzVmY2Q5MDgzOGFmZTZhNDVmZDM2MWE3
ZDk0YTg2YzUwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wMS0wNCAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIg
dXNlIGZyb20gdGhlICJodG1sIiBkaXJlY3RvcnksIG90aGVyIGltcHJvdmVtZW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2NjM1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBv
ZiBhIHBvaW50ZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaDogRGl0dG8uCisKIDIwMTctMDEtMDEgIEplZmYgTWlsbGVyICA8amVmZm1AYXBw
bGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSB1c2VyLXZpc2libGUgY29weXJpZ2h0IHN0cmluZ3Mg
dG8gaW5jbHVkZSAyMDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaCBiL1Nv
dXJjZS9XVEYvd3RmL1JlZlB0ci5oCmluZGV4IDg3ZmM0NTZmMzcwNDA0OWJmNGVjY2NiZjNhNGZm
NTc2OTc5ZTY3N2YuLmZlMTYzMGM5NzM1YjVmZjUzNTNjYjJjNTU4ZTMxMDU4MTI0Nzg3ZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Jl
ZlB0ci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYs
IDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNDIsMTAgKzI0MiwyMSBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVmUHRyPFQ+IGFkb3B0UmVmKFQqIHApCiAgICAgcmV0
dXJuIFJlZlB0cjxUPihwLCBSZWZQdHI8VD46OkFkb3B0KTsKIH0KIAordGVtcGxhdGU8dHlwZW5h
bWUgVD4gaW5saW5lIFJlZlB0cjxUPiBtYWtlUmVmUHRyKFQqIHBvaW50ZXIpCit7CisgICAgcmV0
dXJuIHBvaW50ZXI7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4g
bWFrZVJlZlB0cihUJiByZWZlcmVuY2UpCit7CisgICAgcmV0dXJuICZyZWZlcmVuY2U7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OlJlZlB0cjsKIHVzaW5nIFdURjo6YWRv
cHRSZWY7Cit1c2luZyBXVEY6Om1ha2VSZWZQdHI7CiB1c2luZyBXVEY6OnN0YXRpY19wb2ludGVy
X2Nhc3Q7CiAKICNlbmRpZiAvLyBXVEZfUmVmUHRyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
MGM4NTFkZTQwZjEzZWFjN2ZiOWM3ZDgxMWQxN2ViMjEzNGZlZmQyYi4uODc3OGNjNDI1YjY3MTA3
ZTRmZDNkMGM5NjViNTk2NmRlYTU0NjA4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE3NjQs
NyArMTc2NCw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL1ZhbGlkYXRpb25NZXNz
YWdlLmNwcAogICAgIGh0bWwvV2Vla0lucHV0VHlwZS5jcHAKIAotICAgIGh0bWwvY2FudmFzL0FO
R0xFSW5zdGFuY2VkQXJyYXlzLmNwcAogICAgIGh0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNw
cAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1BhdGguY3BwCiAgICAgaHRtbC9jYW52YXMvQ2FudmFz
UGF0dGVybi5jcHAKQEAgLTE3NzMsNTEgKzE3NzIsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1N0eWxlLmNwcAogICAgIGh0bWwvY2FudmFzL0RPTVBhdGguY3BwCi0gICAgaHRt
bC9jYW52YXMvRVhUQmxlbmRNaW5NYXguY3BwCi0gICAgaHRtbC9jYW52YXMvRVhURnJhZ0RlcHRo
LmNwcAotICAgIGh0bWwvY2FudmFzL0VYVFNoYWRlclRleHR1cmVMT0QuY3BwCi0gICAgaHRtbC9j
YW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcAotICAgIGh0bWwvY2FudmFzL0VY
VHNSR0IuY3BwCi0gICAgaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5jcHAKLSAgICBo
dG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcAotICAgIGh0bWwvY2FudmFzL09F
U1RleHR1cmVGbG9hdC5jcHAKLSAgICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXRMaW5lYXIu
Y3BwCi0gICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdC5jcHAKLSAgICBodG1sL2Nh
bnZhcy9PRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyLmNwcAotICAgIGh0bWwvY2FudmFzL09FU1Zl
cnRleEFycmF5T2JqZWN0LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRl
eHQuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCi0gICAgaHRtbC9jYW52YXMv
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUFZSVEMuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4
dHVyZVMzVEMuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuY3BwCi0gICAg
aHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xD
b250ZXh0T2JqZWN0LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8u
Y3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuY3BwCi0gICAgaHRtbC9jYW52
YXMvV2ViR0xEZXB0aFRleHR1cmUuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xEcmF3QnVmZmVy
cy5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5jcHAKLSAgICBodG1sL2NhbnZh
cy9XZWJHTEZyYW1lYnVmZmVyLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHAK
LSAgICBodG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmNwcAotICAgIGh0bWwvY2FudmFzL1dl
YkdMT2JqZWN0LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKLSAgICBodG1s
L2NhbnZhcy9XZWJHTFF1ZXJ5LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVy
LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKLSAgICBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAotICAgIGh0bWwvY2FudmFzL1dl
YkdMU2FtcGxlci5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFNoYWRlci5jcHAKLSAgICBodG1s
L2NhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAKLSAgICBodG1sL2NhbnZhcy9X
ZWJHTFNoYXJlZE9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFN5bmMuY3BwCi0gICAg
aHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMVHJhbnNm
b3JtRmVlZGJhY2suY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uY3Bw
Ci0gICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKLSAgICBodG1sL2Nh
bnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcAogCiAgICAgaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRl
ci5jcHAKIApAQCAtMzA3OCw2ICszMDMyLDcgQEAgaWYgKEVOQUJMRV9XRUJHTCkKICAgICAgICAg
aHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5jcHAKICAgICAgICAgaHRtbC9j
YW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuY3BwCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQW55LmNwcAog
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKICAgICAgICAgaHRtbC9jYW52YXMv
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcApAQCAtMzA5MSw3ICszMDQ2LDYgQEAgaWYgKEVOQUJM
RV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xEcmF3QnVmZmVycy5jcHAKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dl
YkdMRnJhbWVidWZmZXIuY3BwCi0gICAgICAgIGh0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHAK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHAKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xPYmplY3QuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5jcHAKaW5kZXggNDNjMGQwMDBkOGU3MzU1NmZlZTE3MDQyYWY2MzllMDc5ZWQ5OTMwNC4uNGYx
ODhiODUyNDhmYzQyMTM5ZDc1ODFkZTE5MGQzZjI3ZWI2MTE2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTEsNiArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC02OTMs
MTggKzY5MywxOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNl
QnVmZmVyKFNvdXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgIGJ1ZmZlci5hYm9ydElmVXBkYXRpbmco
KTsKIAogICAgIC8vIDQuIExldCBTb3VyY2VCdWZmZXIgYXVkaW9UcmFja3MgbGlzdCBlcXVhbCB0
aGUgQXVkaW9UcmFja0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5IHNvdXJjZUJ1ZmZlci5hdWRpb1Ry
YWNrcy4KLSAgICBSZWZQdHI8QXVkaW9UcmFja0xpc3Q+IGF1ZGlvVHJhY2tzID0gYnVmZmVyLmF1
ZGlvVHJhY2tzKCk7CisgICAgYXV0byYgYXVkaW9UcmFja3MgPSBidWZmZXIuYXVkaW9UcmFja3Mo
KTsKIAogICAgIC8vIDUuIElmIHRoZSBTb3VyY2VCdWZmZXIgYXVkaW9UcmFja3MgbGlzdCBpcyBu
b3QgZW1wdHksIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKGF1ZGlvVHJh
Y2tzLT5sZW5ndGgoKSkgeworICAgIGlmIChhdWRpb1RyYWNrcy5sZW5ndGgoKSkgewogICAgICAg
ICAvLyA1LjEgTGV0IEhUTUxNZWRpYUVsZW1lbnQgYXVkaW9UcmFja3MgbGlzdCBlcXVhbCB0aGUg
QXVkaW9UcmFja0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5IHRoZSBhdWRpb1RyYWNrcwogICAgICAg
ICAvLyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgICAgIC8vIDUuMiBM
ZXQgdGhlIHJlbW92ZWQgZW5hYmxlZCBhdWRpbyB0cmFjayBmbGFnIGVxdWFsIGZhbHNlLgogICAg
ICAgICBib29sIHJlbW92ZWRFbmFibGVkQXVkaW9UcmFjayA9IGZhbHNlOwogCiAgICAgICAgIC8v
IDUuMyBGb3IgZWFjaCBBdWRpb1RyYWNrIG9iamVjdCBpbiB0aGUgU291cmNlQnVmZmVyIGF1ZGlv
VHJhY2tzIGxpc3QsIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICB3aGlsZSAoYXVk
aW9UcmFja3MtPmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiB0cmFjayA9ICphdWRpb1Ry
YWNrcy0+bGFzdEl0ZW0oKTsKKyAgICAgICAgd2hpbGUgKGF1ZGlvVHJhY2tzLmxlbmd0aCgpKSB7
CisgICAgICAgICAgICBhdXRvJiB0cmFjayA9ICphdWRpb1RyYWNrcy5sYXN0SXRlbSgpOwogCiAg
ICAgICAgICAgICAvLyA1LjMuMSBTZXQgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhl
IEF1ZGlvVHJhY2sgb2JqZWN0IHRvIG51bGwuCiAgICAgICAgICAgICB0cmFjay5zZXRTb3VyY2VC
dWZmZXIobnVsbHB0cik7CkBAIC03MjMsNyArNzIzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVk
aWFTb3VyY2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICAg
ICAgICAgIC8vIDUuMy41IFJlbW92ZSB0aGUgQXVkaW9UcmFjayBvYmplY3QgZnJvbSB0aGUgU291
cmNlQnVmZmVyIGF1ZGlvVHJhY2tzIGxpc3QuCiAgICAgICAgICAgICAvLyA1LjMuNiBRdWV1ZSBh
IHRhc2sgdG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgcmVtb3ZldHJhY2ssIHRoYXQgZG9l
cyBub3QgYnViYmxlIGFuZCBpcyBub3QKICAgICAgICAgICAgIC8vIGNhbmNlbGFibGUsIGFuZCB0
aGF0IHVzZXMgdGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgU291cmNlQnVmZmVyIGF1
ZGlvVHJhY2tzIGxpc3QuCi0gICAgICAgICAgICBhdWRpb1RyYWNrcy0+cmVtb3ZlKHRyYWNrKTsK
KyAgICAgICAgICAgIGF1ZGlvVHJhY2tzLnJlbW92ZSh0cmFjayk7CiAgICAgICAgIH0KIAogICAg
ICAgICAvLyA1LjQgSWYgdGhlIHJlbW92ZWQgZW5hYmxlZCBhdWRpbyB0cmFjayBmbGFnIGVxdWFs
cyB0cnVlLCB0aGVuIHF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50CkBAIC03MzMs
MTggKzczMywxOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNl
QnVmZmVyKFNvdXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgIH0KIAogICAgIC8vIDYuIExldCBTb3Vy
Y2VCdWZmZXIgdmlkZW9UcmFja3MgbGlzdCBlcXVhbCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0
IHJldHVybmVkIGJ5IHNvdXJjZUJ1ZmZlci52aWRlb1RyYWNrcy4KLSAgICBSZWZQdHI8VmlkZW9U
cmFja0xpc3Q+IHZpZGVvVHJhY2tzID0gYnVmZmVyLnZpZGVvVHJhY2tzKCk7CisgICAgYXV0byYg
dmlkZW9UcmFja3MgPSBidWZmZXIudmlkZW9UcmFja3MoKTsKIAogICAgIC8vIDcuIElmIHRoZSBT
b3VyY2VCdWZmZXIgdmlkZW9UcmFja3MgbGlzdCBpcyBub3QgZW1wdHksIHRoZW4gcnVuIHRoZSBm
b2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKHZpZGVvVHJhY2tzLT5sZW5ndGgoKSkgeworICAgIGlm
ICh2aWRlb1RyYWNrcy5sZW5ndGgoKSkgewogICAgICAgICAvLyA3LjEgTGV0IEhUTUxNZWRpYUVs
ZW1lbnQgdmlkZW9UcmFja3MgbGlzdCBlcXVhbCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0IHJl
dHVybmVkIGJ5IHRoZSB2aWRlb1RyYWNrcwogICAgICAgICAvLyBhdHRyaWJ1dGUgb24gdGhlIEhU
TUxNZWRpYUVsZW1lbnQuCiAgICAgICAgIC8vIDcuMiBMZXQgdGhlIHJlbW92ZWQgc2VsZWN0ZWQg
dmlkZW8gdHJhY2sgZmxhZyBlcXVhbCBmYWxzZS4KICAgICAgICAgYm9vbCByZW1vdmVkU2VsZWN0
ZWRWaWRlb1RyYWNrID0gZmFsc2U7CiAKICAgICAgICAgLy8gNy4zIEZvciBlYWNoIFZpZGVvVHJh
Y2sgb2JqZWN0IGluIHRoZSBTb3VyY2VCdWZmZXIgdmlkZW9UcmFja3MgbGlzdCwgcnVuIHRoZSBm
b2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgIHdoaWxlICh2aWRlb1RyYWNrcy0+bGVuZ3RoKCkpIHsK
LSAgICAgICAgICAgIGF1dG8mIHRyYWNrID0gKnZpZGVvVHJhY2tzLT5sYXN0SXRlbSgpOworICAg
ICAgICB3aGlsZSAodmlkZW9UcmFja3MubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHRy
YWNrID0gKnZpZGVvVHJhY2tzLmxhc3RJdGVtKCk7CiAKICAgICAgICAgICAgIC8vIDcuMy4xIFNl
dCB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGUgVmlkZW9UcmFjayBvYmplY3QgdG8g
bnVsbC4KICAgICAgICAgICAgIHRyYWNrLnNldFNvdXJjZUJ1ZmZlcihudWxscHRyKTsKQEAgLTc2
Myw3ICs3NjMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNl
QnVmZmVyKFNvdXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgICAgICAgICAgLy8gNy4zLjUgUmVtb3Zl
IHRoZSBWaWRlb1RyYWNrIG9iamVjdCBmcm9tIHRoZSBTb3VyY2VCdWZmZXIgdmlkZW9UcmFja3Mg
bGlzdC4KICAgICAgICAgICAgIC8vIDcuMy42IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3Rl
ZCBldmVudCBuYW1lZCByZW1vdmV0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzIG5v
dAogICAgICAgICAgICAgLy8gY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVu
dCBpbnRlcmZhY2UsIGF0IHRoZSBTb3VyY2VCdWZmZXIgdmlkZW9UcmFja3MgbGlzdC4KLSAgICAg
ICAgICAgIHZpZGVvVHJhY2tzLT5yZW1vdmUodHJhY2spOworICAgICAgICAgICAgdmlkZW9UcmFj
a3MucmVtb3ZlKHRyYWNrKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIDcuNCBJZiB0aGUgcmVt
b3ZlZCBzZWxlY3RlZCB2aWRlbyB0cmFjayBmbGFnIGVxdWFscyB0cnVlLCB0aGVuIHF1ZXVlIGEg
dGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50CkBAIC03NzMsMTggKzc3MywxOCBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciYg
YnVmZmVyKQogICAgIH0KIAogICAgIC8vIDguIExldCBTb3VyY2VCdWZmZXIgdGV4dFRyYWNrcyBs
aXN0IGVxdWFsIHRoZSBUZXh0VHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSBzb3VyY2VCdWZm
ZXIudGV4dFRyYWNrcy4KLSAgICBSZWZQdHI8VGV4dFRyYWNrTGlzdD4gdGV4dFRyYWNrcyA9IGJ1
ZmZlci50ZXh0VHJhY2tzKCk7CisgICAgYXV0byYgdGV4dFRyYWNrcyA9IGJ1ZmZlci50ZXh0VHJh
Y2tzKCk7CiAKICAgICAvLyA5LiBJZiB0aGUgU291cmNlQnVmZmVyIHRleHRUcmFja3MgbGlzdCBp
cyBub3QgZW1wdHksIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKHRleHRU
cmFja3MtPmxlbmd0aCgpKSB7CisgICAgaWYgKHRleHRUcmFja3MubGVuZ3RoKCkpIHsKICAgICAg
ICAgLy8gOS4xIExldCBIVE1MTWVkaWFFbGVtZW50IHRleHRUcmFja3MgbGlzdCBlcXVhbCB0aGUg
VGV4dFRyYWNrTGlzdCBvYmplY3QgcmV0dXJuZWQgYnkgdGhlIHRleHRUcmFja3MKICAgICAgICAg
Ly8gYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAgICAgICAvLyA5LjIgTGV0
IHRoZSByZW1vdmVkIGVuYWJsZWQgdGV4dCB0cmFjayBmbGFnIGVxdWFsIGZhbHNlLgogICAgICAg
ICBib29sIHJlbW92ZWRFbmFibGVkVGV4dFRyYWNrID0gZmFsc2U7CiAKICAgICAgICAgLy8gOS4z
IEZvciBlYWNoIFRleHRUcmFjayBvYmplY3QgaW4gdGhlIFNvdXJjZUJ1ZmZlciB0ZXh0VHJhY2tz
IGxpc3QsIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICB3aGlsZSAodGV4dFRyYWNr
cy0+bGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIGF1dG8mIHRyYWNrID0gKnRleHRUcmFja3MtPmxh
c3RJdGVtKCk7CisgICAgICAgIHdoaWxlICh0ZXh0VHJhY2tzLmxlbmd0aCgpKSB7CisgICAgICAg
ICAgICBhdXRvJiB0cmFjayA9ICp0ZXh0VHJhY2tzLmxhc3RJdGVtKCk7CiAKICAgICAgICAgICAg
IC8vIDkuMy4xIFNldCB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGUgVGV4dFRyYWNr
IG9iamVjdCB0byBudWxsLgogICAgICAgICAgICAgdHJhY2suc2V0U291cmNlQnVmZmVyKG51bGxw
dHIpOwpAQCAtODAzLDcgKzgwMyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpy
ZW1vdmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgICAgICAgICAvLyA5
LjMuNSBSZW1vdmUgdGhlIFRleHRUcmFjayBvYmplY3QgZnJvbSB0aGUgU291cmNlQnVmZmVyIHRl
eHRUcmFja3MgbGlzdC4KICAgICAgICAgICAgIC8vIDkuMy42IFF1ZXVlIGEgdGFzayB0byBmaXJl
IGEgdHJ1c3RlZCBldmVudCBuYW1lZCByZW1vdmV0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUg
YW5kIGlzIG5vdAogICAgICAgICAgICAgLy8gY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUg
VHJhY2tFdmVudCBpbnRlcmZhY2UsIGF0IHRoZSBTb3VyY2VCdWZmZXIgdGV4dFRyYWNrcyBsaXN0
LgotICAgICAgICAgICAgdGV4dFRyYWNrcy0+cmVtb3ZlKHRyYWNrKTsKKyAgICAgICAgICAgIHRl
eHRUcmFja3MucmVtb3ZlKHRyYWNrKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIDkuNCBJZiB0
aGUgcmVtb3ZlZCBlbmFibGVkIHRleHQgdHJhY2sgZmxhZyBlcXVhbHMgdHJ1ZSwgdGhlbiBxdWV1
ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IDdmZWU3ZTYwYjIyZTQ0
ODM0MWNhYTA5YWQ5ODk5NjgwOWE1ZTQyNmMuLmQ5YWU1Mjc4NjM1ZWM4ZmFiOGJhN2RmNTJkNzM0
MTRhNTg4M2VlMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC01OSw5ICs1OSw2IEBACiAjaW5jbHVkZSA8cnVu
dGltZS9WTS5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgotI2lmICFMT0dfRElTQUJMRUQKLSNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmg+Ci0jZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MjEs
NyArNDE4LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNlZWtUb1RpbWUoY29uc3QgTWVkaWFUaW1l
JiB0aW1lKQogICAgIH0KIH0KIAotTWVkaWFUaW1lIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVy
UHJpdmF0ZUZhc3RTZWVrVGltZUZvck1lZGlhVGltZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgY29u
c3QgTWVkaWFUaW1lJiB0YXJnZXRUaW1lLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZlVGhyZXNo
b2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKQorTWVkaWFUaW1lIFNvdXJj
ZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUZhc3RTZWVrVGltZUZvck1lZGlhVGltZShjb25z
dCBNZWRpYVRpbWUmIHRhcmdldFRpbWUsIGNvbnN0IE1lZGlhVGltZSYgbmVnYXRpdmVUaHJlc2hv
bGQsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpdmVUaHJlc2hvbGQpCiB7CiAgICAgTWVkaWFUaW1l
IHNlZWtUaW1lID0gdGFyZ2V0VGltZTsKICAgICBNZWRpYVRpbWUgbG93ZXJCb3VuZFRpbWUgPSB0
YXJnZXRUaW1lIC0gbmVnYXRpdmVUaHJlc2hvbGQ7CkBAIC01NjYsNyArNTYzLDcgQEAgdm9pZCBT
b3VyY2VCdWZmZXI6OmFwcGVuZEJ1ZmZlclRpbWVyRmlyZWQoKQogCiAgICAgLy8gMS4gTG9vcCBU
b3A6IElmIHRoZSBpbnB1dCBidWZmZXIgaXMgZW1wdHksIHRoZW4ganVtcCB0byB0aGUgbmVlZCBt
b3JlIGRhdGEgc3RlcCBiZWxvdy4KICAgICBpZiAoIW1fcGVuZGluZ0FwcGVuZERhdGEuc2l6ZSgp
KSB7Ci0gICAgICAgIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSgmbV9wcml2YXRl
LmdldCgpLCBBcHBlbmRTdWNjZWVkZWQpOworICAgICAgICBzb3VyY2VCdWZmZXJQcml2YXRlQXBw
ZW5kQ29tcGxldGUoQXBwZW5kU3VjY2VlZGVkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtNTc0LDcgKzU3MSw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZp
cmVkKCkKICAgICBtX3BlbmRpbmdBcHBlbmREYXRhLmNsZWFyKCk7CiB9CiAKLXZvaWQgU291cmNl
QnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJp
dmF0ZSosIEFwcGVuZFJlc3VsdCByZXN1bHQpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVm
ZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKEFwcGVuZFJlc3VsdCByZXN1bHQpCiB7CiAgICAgaWYg
KGlzUmVtb3ZlZCgpKQogICAgICAgICByZXR1cm47CkBAIC02MzUsNyArNjMyLDcgQEAgdm9pZCBT
b3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZm
ZXJQcml2YXRlKiwgQXBwZW4KICAgICBMT0coTWVkaWEsICJTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1
ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSglcCkgLSBidWZmZXJlZCA9ICVzIiwgdGhpcywgdG9T
dHJpbmcobV9idWZmZXJlZC0+cmFuZ2VzKCkpLnV0ZjgoKS5kYXRhKCkpOwogfQogCi12b2lkIFNv
dXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihT
b3VyY2VCdWZmZXJQcml2YXRlKiwgaW50IGVycm9yKQordm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJj
ZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoaW50IGVycm9yKQogewogI2lm
IExPR19ESVNBQkxFRAogICAgIFVOVVNFRF9QQVJBTShlcnJvcik7CkBAIC05NDUsMzUgKzk0Miwz
MiBAQCBzaXplX3QgU291cmNlQnVmZmVyOjptYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0CiAgICAg
aWYgKGlzUmVtb3ZlZCgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIEhUTUxNZWRpYUVsZW1l
bnQqIGVsZW1lbnQgPSBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCk7CisgICAgYXV0byogZWxlbWVu
dCA9IG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKTsKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAg
IHJldHVybiAwOwogCiAgICAgcmV0dXJuIGVsZW1lbnQtPm1heGltdW1Tb3VyY2VCdWZmZXJTaXpl
KCp0aGlzKTsKIH0KIAotVmlkZW9UcmFja0xpc3QqIFNvdXJjZUJ1ZmZlcjo6dmlkZW9UcmFja3Mo
KQorVmlkZW9UcmFja0xpc3QmIFNvdXJjZUJ1ZmZlcjo6dmlkZW9UcmFja3MoKQogewogICAgIGlm
ICghbV92aWRlb1RyYWNrcykKLSAgICAgICAgbV92aWRlb1RyYWNrcyA9IFZpZGVvVHJhY2tMaXN0
OjpjcmVhdGUobV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLCBBY3RpdmVET01PYmplY3Q6OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0KLSAgICByZXR1cm4gbV92aWRlb1RyYWNrcy5nZXQoKTsK
KyAgICAgICAgbV92aWRlb1RyYWNrcyA9IFZpZGVvVHJhY2tMaXN0OjpjcmVhdGUobV9zb3VyY2Ut
Pm1lZGlhRWxlbWVudCgpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIHJldHVybiAq
bV92aWRlb1RyYWNrczsKIH0KIAotQXVkaW9UcmFja0xpc3QqIFNvdXJjZUJ1ZmZlcjo6YXVkaW9U
cmFja3MoKQorQXVkaW9UcmFja0xpc3QmIFNvdXJjZUJ1ZmZlcjo6YXVkaW9UcmFja3MoKQogewog
ICAgIGlmICghbV9hdWRpb1RyYWNrcykKLSAgICAgICAgbV9hdWRpb1RyYWNrcyA9IEF1ZGlvVHJh
Y2tMaXN0OjpjcmVhdGUobV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLCBBY3RpdmVET01PYmplY3Q6
OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0KLSAgICByZXR1cm4gbV9hdWRpb1RyYWNrcy5n
ZXQoKTsKKyAgICAgICAgbV9hdWRpb1RyYWNrcyA9IEF1ZGlvVHJhY2tMaXN0OjpjcmVhdGUobV9z
b3VyY2UtPm1lZGlhRWxlbWVudCgpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIHJl
dHVybiAqbV9hdWRpb1RyYWNrczsKIH0KIAotVGV4dFRyYWNrTGlzdCogU291cmNlQnVmZmVyOjp0
ZXh0VHJhY2tzKCkKK1RleHRUcmFja0xpc3QmIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrcygpCiB7
CiAgICAgaWYgKCFtX3RleHRUcmFja3MpCi0gICAgICAgIG1fdGV4dFRyYWNrcyA9IFRleHRUcmFj
a0xpc3Q6OmNyZWF0ZShtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCksIEFjdGl2ZURPTU9iamVjdDo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLQotICAgIHJldHVybiBtX3RleHRUcmFja3MuZ2V0
KCk7CisgICAgICAgIG1fdGV4dFRyYWNrcyA9IFRleHRUcmFja0xpc3Q6OmNyZWF0ZShtX3NvdXJj
ZS0+bWVkaWFFbGVtZW50KCksIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgcmV0dXJu
ICptX3RleHRUcmFja3M7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyOjpzZXRBY3RpdmUoYm9vbCBh
Y3RpdmUpCkBAIC05ODcsNyArOTgxLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNldEFjdGl2ZShi
b29sIGFjdGl2ZSkKICAgICAgICAgbV9zb3VyY2UtPnNvdXJjZUJ1ZmZlckRpZENoYW5nZUFjdGl2
ZVN0YXRlKCp0aGlzLCBhY3RpdmUpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJp
dmF0ZSosIGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYgc2VnbWVudCkKK3ZvaWQgU291cmNl
QnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVu
dChjb25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmIHNlZ21lbnQpCiB7CiAgICAgaWYgKGlzUmVt
b3ZlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0xMDI0LDQwICsxMDE4LDQwIEBAIHZvaWQgU291
cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2Vn
bWVudChTb3VyY2VCdWZmCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAg
Ly8gMy4yIEFkZCB0aGUgYXBwcm9wcmlhdGUgdHJhY2sgZGVzY3JpcHRpb25zIGZyb20gdGhpcyBp
bml0aWFsaXphdGlvbiBzZWdtZW50IHRvIGVhY2ggb2YgdGhlIHRyYWNrIGJ1ZmZlcnMuCi0gICAg
ICAgIEFTU0VSVChzZWdtZW50LmF1ZGlvVHJhY2tzLnNpemUoKSA9PSBhdWRpb1RyYWNrcygpLT5s
ZW5ndGgoKSk7CisgICAgICAgIEFTU0VSVChzZWdtZW50LmF1ZGlvVHJhY2tzLnNpemUoKSA9PSBh
dWRpb1RyYWNrcygpLmxlbmd0aCgpKTsKICAgICAgICAgZm9yIChhdXRvJiBhdWRpb1RyYWNrSW5m
byA6IHNlZ21lbnQuYXVkaW9UcmFja3MpIHsKLSAgICAgICAgICAgIGlmIChhdWRpb1RyYWNrcygp
LT5sZW5ndGgoKSA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgYXVkaW9UcmFja3MoKS0+aXRlbSgw
KS0+c2V0UHJpdmF0ZShhdWRpb1RyYWNrSW5mby50cmFjayk7CisgICAgICAgICAgICBpZiAoYXVk
aW9UcmFja3MoKS5sZW5ndGgoKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgYXVkaW9UcmFja3Mo
KS5pdGVtKDApLT5zZXRQcml2YXRlKCphdWRpb1RyYWNrSW5mby50cmFjayk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGF1dG8gYXVkaW9UcmFj
ayA9IGF1ZGlvVHJhY2tzKCktPmdldFRyYWNrQnlJZChhdWRpb1RyYWNrSW5mby50cmFjay0+aWQo
KSk7CisgICAgICAgICAgICBhdXRvIGF1ZGlvVHJhY2sgPSBhdWRpb1RyYWNrcygpLmdldFRyYWNr
QnlJZChhdWRpb1RyYWNrSW5mby50cmFjay0+aWQoKSk7CiAgICAgICAgICAgICBBU1NFUlQoYXVk
aW9UcmFjayk7Ci0gICAgICAgICAgICBhdWRpb1RyYWNrLT5zZXRQcml2YXRlKGF1ZGlvVHJhY2tJ
bmZvLnRyYWNrKTsKKyAgICAgICAgICAgIGF1ZGlvVHJhY2stPnNldFByaXZhdGUoKmF1ZGlvVHJh
Y2tJbmZvLnRyYWNrKTsKICAgICAgICAgfQogCi0gICAgICAgIEFTU0VSVChzZWdtZW50LnZpZGVv
VHJhY2tzLnNpemUoKSA9PSB2aWRlb1RyYWNrcygpLT5sZW5ndGgoKSk7CisgICAgICAgIEFTU0VS
VChzZWdtZW50LnZpZGVvVHJhY2tzLnNpemUoKSA9PSB2aWRlb1RyYWNrcygpLmxlbmd0aCgpKTsK
ICAgICAgICAgZm9yIChhdXRvJiB2aWRlb1RyYWNrSW5mbyA6IHNlZ21lbnQudmlkZW9UcmFja3Mp
IHsKLSAgICAgICAgICAgIGlmICh2aWRlb1RyYWNrcygpLT5sZW5ndGgoKSA9PSAxKSB7Ci0gICAg
ICAgICAgICAgICAgdmlkZW9UcmFja3MoKS0+aXRlbSgwKS0+c2V0UHJpdmF0ZSh2aWRlb1RyYWNr
SW5mby50cmFjayk7CisgICAgICAgICAgICBpZiAodmlkZW9UcmFja3MoKS5sZW5ndGgoKSA9PSAx
KSB7CisgICAgICAgICAgICAgICAgdmlkZW9UcmFja3MoKS5pdGVtKDApLT5zZXRQcml2YXRlKCp2
aWRlb1RyYWNrSW5mby50cmFjayk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICB9CiAKLSAgICAgICAgICAgIGF1dG8gdmlkZW9UcmFjayA9IHZpZGVvVHJhY2tzKCktPmdldFRy
YWNrQnlJZCh2aWRlb1RyYWNrSW5mby50cmFjay0+aWQoKSk7CisgICAgICAgICAgICBhdXRvIHZp
ZGVvVHJhY2sgPSB2aWRlb1RyYWNrcygpLmdldFRyYWNrQnlJZCh2aWRlb1RyYWNrSW5mby50cmFj
ay0+aWQoKSk7CiAgICAgICAgICAgICBBU1NFUlQodmlkZW9UcmFjayk7Ci0gICAgICAgICAgICB2
aWRlb1RyYWNrLT5zZXRQcml2YXRlKHZpZGVvVHJhY2tJbmZvLnRyYWNrKTsKKyAgICAgICAgICAg
IHZpZGVvVHJhY2stPnNldFByaXZhdGUoKnZpZGVvVHJhY2tJbmZvLnRyYWNrKTsKICAgICAgICAg
fQogCi0gICAgICAgIEFTU0VSVChzZWdtZW50LnRleHRUcmFja3Muc2l6ZSgpID09IHRleHRUcmFj
a3MoKS0+bGVuZ3RoKCkpOworICAgICAgICBBU1NFUlQoc2VnbWVudC50ZXh0VHJhY2tzLnNpemUo
KSA9PSB0ZXh0VHJhY2tzKCkubGVuZ3RoKCkpOwogICAgICAgICBmb3IgKGF1dG8mIHRleHRUcmFj
a0luZm8gOiBzZWdtZW50LnRleHRUcmFja3MpIHsKLSAgICAgICAgICAgIGlmICh0ZXh0VHJhY2tz
KCktPmxlbmd0aCgpID09IDEpIHsKLSAgICAgICAgICAgICAgICBkb3duY2FzdDxJbmJhbmRUZXh0
VHJhY2s+KCp0ZXh0VHJhY2tzKCktPml0ZW0oMCkpLnNldFByaXZhdGUodGV4dFRyYWNrSW5mby50
cmFjayk7CisgICAgICAgICAgICBpZiAodGV4dFRyYWNrcygpLmxlbmd0aCgpID09IDEpIHsKKyAg
ICAgICAgICAgICAgICBkb3duY2FzdDxJbmJhbmRUZXh0VHJhY2s+KCp0ZXh0VHJhY2tzKCkuaXRl
bSgwKSkuc2V0UHJpdmF0ZSgqdGV4dFRyYWNrSW5mby50cmFjayk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGF1dG8gdGV4dFRyYWNrID0gdGV4
dFRyYWNrcygpLT5nZXRUcmFja0J5SWQodGV4dFRyYWNrSW5mby50cmFjay0+aWQoKSk7CisgICAg
ICAgICAgICBhdXRvIHRleHRUcmFjayA9IHRleHRUcmFja3MoKS5nZXRUcmFja0J5SWQodGV4dFRy
YWNrSW5mby50cmFjay0+aWQoKSk7CiAgICAgICAgICAgICBBU1NFUlQodGV4dFRyYWNrKTsKLSAg
ICAgICAgICAgIGRvd25jYXN0PEluYmFuZFRleHRUcmFjaz4oKnRleHRUcmFjaykuc2V0UHJpdmF0
ZSh0ZXh0VHJhY2tJbmZvLnRyYWNrKTsKKyAgICAgICAgICAgIGRvd25jYXN0PEluYmFuZFRleHRU
cmFjaz4oKnRleHRUcmFjaykuc2V0UHJpdmF0ZSgqdGV4dFRyYWNrSW5mby50cmFjayk7CiAgICAg
ICAgIH0KIAogICAgICAgICAvLyAzLjMgU2V0IHRoZSBuZWVkIHJhbmRvbSBhY2Nlc3MgcG9pbnQg
ZmxhZyBvbiBhbGwgdHJhY2sgYnVmZmVycyB0byB0cnVlLgpAQCAtMTA3NiwxNiArMTA3MCwxNCBA
QCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFs
aXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogCiAgICAgICAgIC8vIDUuMiBGb3IgZWFjaCBhdWRp
byB0cmFjayBpbiB0aGUgaW5pdGlhbGl6YXRpb24gc2VnbWVudCwgcnVuIGZvbGxvd2luZyBzdGVw
czoKICAgICAgICAgZm9yIChhdXRvJiBhdWRpb1RyYWNrSW5mbyA6IHNlZ21lbnQuYXVkaW9UcmFj
a3MpIHsKLSAgICAgICAgICAgIEF1ZGlvVHJhY2tQcml2YXRlKiBhdWRpb1RyYWNrUHJpdmF0ZSA9
IGF1ZGlvVHJhY2tJbmZvLnRyYWNrLmdldCgpOwotCiAgICAgICAgICAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHN0ZXBzIDUuMi4xLTUuMi44LjEgYXMgcGVyIEVkaXRvcidzIERyYWZ0IDA5IEphbnVh
cnkgMjAxNSwgYW5kIHJlb3JkZXIgdGhpcwogICAgICAgICAgICAgLy8gNS4yLjEgTGV0IG5ldyBh
dWRpbyB0cmFjayBiZSBhIG5ldyBBdWRpb1RyYWNrIG9iamVjdC4KICAgICAgICAgICAgIC8vIDUu
Mi4yIEdlbmVyYXRlIGEgdW5pcXVlIElEIGFuZCBhc3NpZ24gaXQgdG8gdGhlIGlkIHByb3BlcnR5
IG9uIG5ldyB2aWRlbyB0cmFjay4KLSAgICAgICAgICAgIGF1dG8gbmV3QXVkaW9UcmFjayA9IEF1
ZGlvVHJhY2s6OmNyZWF0ZSh0aGlzLCBhdWRpb1RyYWNrUHJpdmF0ZSk7CisgICAgICAgICAgICBh
dXRvIG5ld0F1ZGlvVHJhY2sgPSBBdWRpb1RyYWNrOjpjcmVhdGUoKnRoaXMsICphdWRpb1RyYWNr
SW5mby50cmFjayk7CiAgICAgICAgICAgICBuZXdBdWRpb1RyYWNrLT5zZXRTb3VyY2VCdWZmZXIo
dGhpcyk7CiAKICAgICAgICAgICAgIC8vIDUuMi4zIElmIGF1ZGlvVHJhY2tzLmxlbmd0aCBlcXVh
bHMgMCwgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAgICAgICAgIGlmICghYXVk
aW9UcmFja3MoKS0+bGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGlmICghYXVkaW9UcmFja3MoKS5s
ZW5ndGgoKSkgewogICAgICAgICAgICAgICAgIC8vIDUuMi4zLjEgU2V0IHRoZSBlbmFibGVkIHBy
b3BlcnR5IG9uIG5ldyBhdWRpbyB0cmFjayB0byB0cnVlLgogICAgICAgICAgICAgICAgIG5ld0F1
ZGlvVHJhY2stPnNldEVuYWJsZWQodHJ1ZSk7CiAKQEAgLTEwOTcsNyArMTA4OSw3IEBAIHZvaWQg
U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9u
U2VnbWVudChTb3VyY2VCdWZmCiAgICAgICAgICAgICAvLyA1LjIuNSBRdWV1ZSBhIHRhc2sgdG8g
ZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgYWRkdHJhY2ssIHRoYXQgZG9lcyBub3QgYnViYmxl
IGFuZCBpcwogICAgICAgICAgICAgLy8gbm90IGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMgdGhl
IFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgQXVkaW9UcmFja0xpc3Qgb2JqZWN0CiAgICAg
ICAgICAgICAvLyByZWZlcmVuY2VkIGJ5IHRoZSBhdWRpb1RyYWNrcyBhdHRyaWJ1dGUgb24gdGhp
cyBTb3VyY2VCdWZmZXIgb2JqZWN0LgotICAgICAgICAgICAgYXVkaW9UcmFja3MoKS0+YXBwZW5k
KG5ld0F1ZGlvVHJhY2suY29weVJlZigpKTsKKyAgICAgICAgICAgIGF1ZGlvVHJhY2tzKCkuYXBw
ZW5kKG5ld0F1ZGlvVHJhY2suY29weVJlZigpKTsKIAogICAgICAgICAgICAgLy8gNS4yLjYgQWRk
IG5ldyBhdWRpbyB0cmFjayB0byB0aGUgYXVkaW9UcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1M
TWVkaWFFbGVtZW50LgogICAgICAgICAgICAgLy8gNS4yLjcgUXVldWUgYSB0YXNrIHRvIGZpcmUg
YSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQg
aXMKQEAgLTExMDcsNyArMTA5OSw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQ
cml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmCiAKICAgICAg
ICAgICAgIC8vIDUuMi44IENyZWF0ZSBhIG5ldyB0cmFjayBidWZmZXIgdG8gc3RvcmUgY29kZWQg
ZnJhbWVzIGZvciB0aGlzIHRyYWNrLgogICAgICAgICAgICAgQVNTRVJUKCFtX3RyYWNrQnVmZmVy
TWFwLmNvbnRhaW5zKG5ld0F1ZGlvVHJhY2stPmlkKCkpKTsKLSAgICAgICAgICAgIFRyYWNrQnVm
ZmVyJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKG5ld0F1ZGlvVHJhY2stPmlk
KCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgICAgIGF1dG8mIHRy
YWNrQnVmZmVyID0gbV90cmFja0J1ZmZlck1hcC5hZGQobmV3QXVkaW9UcmFjay0+aWQoKSwgVHJh
Y2tCdWZmZXIoKSkuaXRlcmF0b3ItPnZhbHVlOwogCiAgICAgICAgICAgICAvLyA1LjIuOSBBZGQg
dGhlIHRyYWNrIGRlc2NyaXB0aW9uIGZvciB0aGlzIHRyYWNrIHRvIHRoZSB0cmFjayBidWZmZXIu
CiAgICAgICAgICAgICB0cmFja0J1ZmZlci5kZXNjcmlwdGlvbiA9IGF1ZGlvVHJhY2tJbmZvLmRl
c2NyaXB0aW9uOwpAQCAtMTExNywxNiArMTEwOSwxNCBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291
cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVm
ZgogCiAgICAgICAgIC8vIDUuMyBGb3IgZWFjaCB2aWRlbyB0cmFjayBpbiB0aGUgaW5pdGlhbGl6
YXRpb24gc2VnbWVudCwgcnVuIGZvbGxvd2luZyBzdGVwczoKICAgICAgICAgZm9yIChhdXRvJiB2
aWRlb1RyYWNrSW5mbyA6IHNlZ21lbnQudmlkZW9UcmFja3MpIHsKLSAgICAgICAgICAgIFZpZGVv
VHJhY2tQcml2YXRlKiB2aWRlb1RyYWNrUHJpdmF0ZSA9IHZpZGVvVHJhY2tJbmZvLnRyYWNrLmdl
dCgpOwotCiAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHN0ZXBzIDUuMy4xLTUuMy44
LjEgYXMgcGVyIEVkaXRvcidzIERyYWZ0IDA5IEphbnVhcnkgMjAxNSwgYW5kIHJlb3JkZXIgdGhp
cwogICAgICAgICAgICAgLy8gNS4zLjEgTGV0IG5ldyB2aWRlbyB0cmFjayBiZSBhIG5ldyBWaWRl
b1RyYWNrIG9iamVjdC4KICAgICAgICAgICAgIC8vIDUuMy4yIEdlbmVyYXRlIGEgdW5pcXVlIElE
IGFuZCBhc3NpZ24gaXQgdG8gdGhlIGlkIHByb3BlcnR5IG9uIG5ldyB2aWRlbyB0cmFjay4KLSAg
ICAgICAgICAgIGF1dG8gbmV3VmlkZW9UcmFjayA9IFZpZGVvVHJhY2s6OmNyZWF0ZSh0aGlzLCB2
aWRlb1RyYWNrUHJpdmF0ZSk7CisgICAgICAgICAgICBhdXRvIG5ld1ZpZGVvVHJhY2sgPSBWaWRl
b1RyYWNrOjpjcmVhdGUoKnRoaXMsICp2aWRlb1RyYWNrSW5mby50cmFjayk7CiAgICAgICAgICAg
ICBuZXdWaWRlb1RyYWNrLT5zZXRTb3VyY2VCdWZmZXIodGhpcyk7CiAKICAgICAgICAgICAgIC8v
IDUuMy4zIElmIHZpZGVvVHJhY2tzLmxlbmd0aCBlcXVhbHMgMCwgdGhlbiBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczoKLSAgICAgICAgICAgIGlmICghdmlkZW9UcmFja3MoKS0+bGVuZ3RoKCkpIHsK
KyAgICAgICAgICAgIGlmICghdmlkZW9UcmFja3MoKS5sZW5ndGgoKSkgewogICAgICAgICAgICAg
ICAgIC8vIDUuMy4zLjEgU2V0IHRoZSBzZWxlY3RlZCBwcm9wZXJ0eSBvbiBuZXcgdmlkZW8gdHJh
Y2sgdG8gdHJ1ZS4KICAgICAgICAgICAgICAgICBuZXdWaWRlb1RyYWNrLT5zZXRTZWxlY3RlZCh0
cnVlKTsKIApAQCAtMTEzOCw3ICsxMTI4LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1
ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKICAg
ICAgICAgICAgIC8vIDUuMy41IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBu
YW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCiAgICAgICAgICAgICAv
LyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZhY2Us
IGF0IHRoZSBWaWRlb1RyYWNrTGlzdCBvYmplY3QKICAgICAgICAgICAgIC8vIHJlZmVyZW5jZWQg
YnkgdGhlIHZpZGVvVHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGlzIFNvdXJjZUJ1ZmZlciBvYmplY3Qu
Ci0gICAgICAgICAgICB2aWRlb1RyYWNrcygpLT5hcHBlbmQobmV3VmlkZW9UcmFjay5jb3B5UmVm
KCkpOworICAgICAgICAgICAgdmlkZW9UcmFja3MoKS5hcHBlbmQobmV3VmlkZW9UcmFjay5jb3B5
UmVmKCkpOwogCiAgICAgICAgICAgICAvLyA1LjMuNiBBZGQgbmV3IHZpZGVvIHRyYWNrIHRvIHRo
ZSB2aWRlb1RyYWNrcyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgICAg
ICAgICAvLyA1LjMuNyBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQg
YWRkdHJhY2ssIHRoYXQgZG9lcyBub3QgYnViYmxlIGFuZCBpcwpAQCAtMTE0OCw3ICsxMTM4LDcg
QEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlh
bGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKIAogICAgICAgICAgICAgLy8gNS4zLjggQ3JlYXRl
IGEgbmV3IHRyYWNrIGJ1ZmZlciB0byBzdG9yZSBjb2RlZCBmcmFtZXMgZm9yIHRoaXMgdHJhY2su
CiAgICAgICAgICAgICBBU1NFUlQoIW1fdHJhY2tCdWZmZXJNYXAuY29udGFpbnMobmV3VmlkZW9U
cmFjay0+aWQoKSkpOwotICAgICAgICAgICAgVHJhY2tCdWZmZXImIHRyYWNrQnVmZmVyID0gbV90
cmFja0J1ZmZlck1hcC5hZGQobmV3VmlkZW9UcmFjay0+aWQoKSwgVHJhY2tCdWZmZXIoKSkuaXRl
cmF0b3ItPnZhbHVlOworICAgICAgICAgICAgYXV0byYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVm
ZmVyTWFwLmFkZChuZXdWaWRlb1RyYWNrLT5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+
dmFsdWU7CiAKICAgICAgICAgICAgIC8vIDUuMy45IEFkZCB0aGUgdHJhY2sgZGVzY3JpcHRpb24g
Zm9yIHRoaXMgdHJhY2sgdG8gdGhlIHRyYWNrIGJ1ZmZlci4KICAgICAgICAgICAgIHRyYWNrQnVm
ZmVyLmRlc2NyaXB0aW9uID0gdmlkZW9UcmFja0luZm8uZGVzY3JpcHRpb247CkBAIC0xMTU4LDMz
ICsxMTQ4LDMzIEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVj
ZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmCiAKICAgICAgICAgLy8gNS40IEZv
ciBlYWNoIHRleHQgdHJhY2sgaW4gdGhlIGluaXRpYWxpemF0aW9uIHNlZ21lbnQsIHJ1biBmb2xs
b3dpbmcgc3RlcHM6CiAgICAgICAgIGZvciAoYXV0byYgdGV4dFRyYWNrSW5mbyA6IHNlZ21lbnQu
dGV4dFRyYWNrcykgewotICAgICAgICAgICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSogdGV4dFRy
YWNrUHJpdmF0ZSA9IHRleHRUcmFja0luZm8udHJhY2suZ2V0KCk7CisgICAgICAgICAgICBhdXRv
JiB0ZXh0VHJhY2tQcml2YXRlID0gKnRleHRUcmFja0luZm8udHJhY2s7CiAKICAgICAgICAgICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgc3RlcHMgNS40LjEtNS40LjguMSBhcyBwZXIgRWRpdG9yJ3Mg
RHJhZnQgMDkgSmFudWFyeSAyMDE1LCBhbmQgcmVvcmRlciB0aGlzCiAgICAgICAgICAgICAvLyA1
LjQuMSBMZXQgbmV3IHRleHQgdHJhY2sgYmUgYSBuZXcgVGV4dFRyYWNrIG9iamVjdCB3aXRoIGl0
cyBwcm9wZXJ0aWVzIHBvcHVsYXRlZCB3aXRoIHRoZQogICAgICAgICAgICAgLy8gYXBwcm9wcmlh
dGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgaW5pdGlhbGl6YXRpb24gc2VnbWVudC4KLSAgICAgICAg
ICAgIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2s+IG5ld1RleHRUcmFjayA9IEluYmFuZFRleHRUcmFj
azo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgdGhpcywgdGV4dFRyYWNrUHJpdmF0
ZSk7CisgICAgICAgICAgICBhdXRvIG5ld1RleHRUcmFjayA9IEluYmFuZFRleHRUcmFjazo6Y3Jl
YXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzLCB0ZXh0VHJhY2tQcml2YXRlKTsK
IAogICAgICAgICAgICAgLy8gNS40LjIgSWYgdGhlIG1vZGUgcHJvcGVydHkgb24gbmV3IHRleHQg
dHJhY2sgZXF1YWxzICJzaG93aW5nIiBvciAiaGlkZGVuIiwgdGhlbiBzZXQgYWN0aXZlCiAgICAg
ICAgICAgICAvLyB0cmFjayBmbGFnIHRvIHRydWUuCi0gICAgICAgICAgICBpZiAodGV4dFRyYWNr
UHJpdmF0ZS0+bW9kZSgpICE9IEluYmFuZFRleHRUcmFja1ByaXZhdGU6OkRpc2FibGVkKQorICAg
ICAgICAgICAgaWYgKHRleHRUcmFja1ByaXZhdGUubW9kZSgpICE9IEluYmFuZFRleHRUcmFja1By
aXZhdGU6OkRpc2FibGVkKQogICAgICAgICAgICAgICAgIGFjdGl2ZVRyYWNrRmxhZyA9IHRydWU7
CiAKICAgICAgICAgICAgIC8vIDUuNC4zIEFkZCBuZXcgdGV4dCB0cmFjayB0byB0aGUgdGV4dFRy
YWNrcyBhdHRyaWJ1dGUgb24gdGhpcyBTb3VyY2VCdWZmZXIgb2JqZWN0LgogICAgICAgICAgICAg
Ly8gNS40LjQgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRy
YWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMKICAgICAgICAgICAgIC8vIG5vdCBjYW5j
ZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGludGVyZmFjZSwgYXQgdGV4dFRy
YWNrcyBhdHRyaWJ1dGUgb24gdGhpcwogICAgICAgICAgICAgLy8gU291cmNlQnVmZmVyIG9iamVj
dC4KLSAgICAgICAgICAgIHRleHRUcmFja3MoKS0+YXBwZW5kKCpuZXdUZXh0VHJhY2spOworICAg
ICAgICAgICAgdGV4dFRyYWNrcygpLmFwcGVuZChuZXdUZXh0VHJhY2suZ2V0KCkpOwogCiAgICAg
ICAgICAgICAvLyA1LjQuNSBBZGQgbmV3IHRleHQgdHJhY2sgdG8gdGhlIHRleHRUcmFja3MgYXR0
cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAgICAgICAgICAgLy8gNS40LjYgUXVl
dWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRyYWNrLCB0aGF0IGRv
ZXMgbm90IGJ1YmJsZSBhbmQgaXMKICAgICAgICAgICAgIC8vIG5vdCBjYW5jZWxhYmxlLCBhbmQg
dGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGludGVyZmFjZSwgYXQgdGhlIFRleHRUcmFja0xpc3Qg
b2JqZWN0CiAgICAgICAgICAgICAvLyByZWZlcmVuY2VkIGJ5IHRoZSB0ZXh0VHJhY2tzIGF0dHJp
YnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KLSAgICAgICAgICAgIG1fc291cmNlLT5tZWRp
YUVsZW1lbnQoKS0+dGV4dFRyYWNrcygpLmFwcGVuZChuZXdUZXh0VHJhY2sucmVsZWFzZU5vbk51
bGwoKSk7CisgICAgICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja3Mo
KS5hcHBlbmQoV1RGTW92ZShuZXdUZXh0VHJhY2spKTsKIAogICAgICAgICAgICAgLy8gNS40Ljcg
Q3JlYXRlIGEgbmV3IHRyYWNrIGJ1ZmZlciB0byBzdG9yZSBjb2RlZCBmcmFtZXMgZm9yIHRoaXMg
dHJhY2suCi0gICAgICAgICAgICBBU1NFUlQoIW1fdHJhY2tCdWZmZXJNYXAuY29udGFpbnModGV4
dFRyYWNrUHJpdmF0ZS0+aWQoKSkpOwotICAgICAgICAgICAgVHJhY2tCdWZmZXImIHRyYWNrQnVm
ZmVyID0gbV90cmFja0J1ZmZlck1hcC5hZGQodGV4dFRyYWNrUHJpdmF0ZS0+aWQoKSwgVHJhY2tC
dWZmZXIoKSkuaXRlcmF0b3ItPnZhbHVlOworICAgICAgICAgICAgQVNTRVJUKCFtX3RyYWNrQnVm
ZmVyTWFwLmNvbnRhaW5zKHRleHRUcmFja1ByaXZhdGUuaWQoKSkpOworICAgICAgICAgICAgYXV0
byYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVmZmVyTWFwLmFkZCh0ZXh0VHJhY2tQcml2YXRlLmlk
KCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKIAogICAgICAgICAgICAgLy8gNS40
LjggQWRkIHRoZSB0cmFjayBkZXNjcmlwdGlvbiBmb3IgdGhpcyB0cmFjayB0byB0aGUgdHJhY2sg
YnVmZmVyLgogICAgICAgICAgICAgdHJhY2tCdWZmZXIuZGVzY3JpcHRpb24gPSB0ZXh0VHJhY2tJ
bmZvLmRlc2NyaXB0aW9uOwpAQCAtMTIzMSw5ICsxMjIxLDkgQEAgYm9vbCBTb3VyY2VCdWZmZXI6
OnZhbGlkYXRlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVu
dCYgc2UKIAogICAgIC8vIE5vdGU6IHRob3NlIGFyZSBjaGVja3MgZnJvbSBzdGVwIDMuMQogICAg
IC8vICAgKiBUaGUgbnVtYmVyIG9mIGF1ZGlvLCB2aWRlbywgYW5kIHRleHQgdHJhY2tzIG1hdGNo
IHdoYXQgd2FzIGluIHRoZSBmaXJzdCBpbml0aWFsaXphdGlvbiBzZWdtZW50LgotICAgIGlmIChz
ZWdtZW50LmF1ZGlvVHJhY2tzLnNpemUoKSAhPSBhdWRpb1RyYWNrcygpLT5sZW5ndGgoKQotICAg
ICAgICB8fCBzZWdtZW50LnZpZGVvVHJhY2tzLnNpemUoKSAhPSB2aWRlb1RyYWNrcygpLT5sZW5n
dGgoKQotICAgICAgICB8fCBzZWdtZW50LnRleHRUcmFja3Muc2l6ZSgpICE9IHRleHRUcmFja3Mo
KS0+bGVuZ3RoKCkpCisgICAgaWYgKHNlZ21lbnQuYXVkaW9UcmFja3Muc2l6ZSgpICE9IGF1ZGlv
VHJhY2tzKCkubGVuZ3RoKCkKKyAgICAgICAgfHwgc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkg
IT0gdmlkZW9UcmFja3MoKS5sZW5ndGgoKQorICAgICAgICB8fCBzZWdtZW50LnRleHRUcmFja3Mu
c2l6ZSgpICE9IHRleHRUcmFja3MoKS5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgLy8gICAqIFRoZSBjb2RlY3MgZm9yIGVhY2ggdHJhY2ssIG1hdGNoIHdoYXQgd2FzIHNw
ZWNpZmllZCBpbiB0aGUgZmlyc3QgaW5pdGlhbGl6YXRpb24gc2VnbWVudC4KQEAgLTEzMTksNyAr
MTMwOSw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRFcnJvcihib29sIGRlY29kZUVycm9y
UGFyYW0pCiAgICAgICAgIG1fc291cmNlLT5zdHJlYW1FbmRlZFdpdGhFcnJvcihNZWRpYVNvdXJj
ZTo6RW5kT2ZTdHJlYW1FcnJvcjo6RGVjb2RlKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNv
dXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBN
ZWRpYVNhbXBsZSYgc2FtcGxlKQordm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZh
dGVEaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiB7CiAgICAgaWYgKGlzUmVt
b3ZlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0xNjY2LDMwICsxNjU2LDMwIEBAIGJvb2wgU291
cmNlQnVmZmVyOjpoYXNWaWRlbygpIGNvbnN0CiAgICAgcmV0dXJuIG1fdmlkZW9UcmFja3MgJiYg
bV92aWRlb1RyYWNrcy0+bGVuZ3RoKCk7CiB9CiAKLWJvb2wgU291cmNlQnVmZmVyOjpzb3VyY2VC
dWZmZXJQcml2YXRlSGFzQXVkaW8oY29uc3QgU291cmNlQnVmZmVyUHJpdmF0ZSopIGNvbnN0Citi
b29sIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gaGFzQXVkaW8oKTsKIH0KIAotYm9vbCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1
ZmZlclByaXZhdGVIYXNWaWRlbyhjb25zdCBTb3VyY2VCdWZmZXJQcml2YXRlKikgY29uc3QKK2Jv
b2wgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8oKSBjb25zdAogewog
ICAgIHJldHVybiBoYXNWaWRlbygpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dmlkZW9UcmFj
a1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrKiB0cmFjaykKK3ZvaWQgU291cmNlQnVmZmVyOjp2
aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2smIHRyYWNrKQogewogICAgIC8vIDIu
NC41IENoYW5nZXMgdG8gc2VsZWN0ZWQvZW5hYmxlZCB0cmFjayBzdGF0ZQogICAgIC8vIElmIHRo
ZSBzZWxlY3RlZCB2aWRlbyB0cmFjayBjaGFuZ2VzLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0
ZXBzOgogICAgIC8vIDEuIElmIHRoZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBw
cmV2aW91c2x5IHNlbGVjdGVkIHZpZGVvIHRyYWNrIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGgKICAg
ICAvLyBhbnkgb3RoZXIgZW5hYmxlZCB0cmFja3MsIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgot
ICAgIGlmICghdHJhY2stPnNlbGVjdGVkKCkKKyAgICBpZiAoIXRyYWNrLnNlbGVjdGVkKCkKICAg
ICAgICAgJiYgKCFtX3ZpZGVvVHJhY2tzIHx8ICFtX3ZpZGVvVHJhY2tzLT5pc0FueVRyYWNrRW5h
YmxlZCgpKQogICAgICAgICAmJiAoIW1fYXVkaW9UcmFja3MgfHwgIW1fYXVkaW9UcmFja3MtPmlz
QW55VHJhY2tFbmFibGVkKCkpCiAgICAgICAgICYmICghbV90ZXh0VHJhY2tzIHx8ICFtX3RleHRU
cmFja3MtPmlzQW55VHJhY2tFbmFibGVkKCkpKSB7CiAgICAgICAgIC8vIDEuMSBSZW1vdmUgdGhl
IFNvdXJjZUJ1ZmZlciBmcm9tIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMuCiAgICAgICAgIC8vIDEuMiBR
dWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCByZW1vdmVzb3VyY2VidWZm
ZXIgYXQgYWN0aXZlU291cmNlQnVmZmVycwogICAgICAgICBzZXRBY3RpdmUoZmFsc2UpOwotICAg
IH0gZWxzZSBpZiAodHJhY2stPnNlbGVjdGVkKCkpIHsKKyAgICB9IGVsc2UgaWYgKHRyYWNrLnNl
bGVjdGVkKCkpIHsKICAgICAgICAgLy8gMi4gSWYgdGhlIFNvdXJjZUJ1ZmZlciBhc3NvY2lhdGVk
IHdpdGggdGhlIG5ld2x5IHNlbGVjdGVkIHZpZGVvIHRyYWNrIGlzIG5vdCBhbHJlYWR5IGluIGFj
dGl2ZVNvdXJjZUJ1ZmZlcnMsCiAgICAgICAgIC8vIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgog
ICAgICAgICAvLyAyLjEgQWRkIHRoZSBTb3VyY2VCdWZmZXIgdG8gYWN0aXZlU291cmNlQnVmZmVy
cy4KQEAgLTE2OTcsMjYgKzE2ODcsMjYgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnZpZGVvVHJhY2tT
ZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayogdHJhY2spCiAgICAgICAgIHNldEFjdGl2ZSh0cnVl
KTsKICAgICB9CiAKLSAgICBpZiAobV92aWRlb1RyYWNrcyAmJiBtX3ZpZGVvVHJhY2tzLT5jb250
YWlucygqdHJhY2spKQorICAgIGlmIChtX3ZpZGVvVHJhY2tzICYmIG1fdmlkZW9UcmFja3MtPmNv
bnRhaW5zKHRyYWNrKSkKICAgICAgICAgbV92aWRlb1RyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVu
dCgpOwogCiAgICAgaWYgKCFpc1JlbW92ZWQoKSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxl
bWVudCgpLT52aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBTb3Vy
Y2VCdWZmZXI6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKiB0cmFjaykKK3Zv
aWQgU291cmNlQnVmZmVyOjphdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayYgdHJh
Y2spCiB7CiAgICAgLy8gMi40LjUgQ2hhbmdlcyB0byBzZWxlY3RlZC9lbmFibGVkIHRyYWNrIHN0
YXRlCiAgICAgLy8gSWYgYW4gYXVkaW8gdHJhY2sgYmVjb21lcyBkaXNhYmxlZCBhbmQgdGhlIFNv
dXJjZUJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhpcyB0cmFjayBpcyBub3QKICAgICAvLyBhc3Nv
Y2lhdGVkIHdpdGggYW55IG90aGVyIGVuYWJsZWQgb3Igc2VsZWN0ZWQgdHJhY2ssIHRoZW4gcnVu
IHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgpCisgICAgaWYg
KCF0cmFjay5lbmFibGVkKCkKICAgICAgICAgJiYgKCFtX3ZpZGVvVHJhY2tzIHx8ICFtX3ZpZGVv
VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAgICAgICAmJiAoIW1fYXVkaW9UcmFja3Mg
fHwgIW1fYXVkaW9UcmFja3MtPmlzQW55VHJhY2tFbmFibGVkKCkpCiAgICAgICAgICYmICghbV90
ZXh0VHJhY2tzIHx8ICFtX3RleHRUcmFja3MtPmlzQW55VHJhY2tFbmFibGVkKCkpKSB7CiAgICAg
ICAgIC8vIDEuIFJlbW92ZSB0aGUgU291cmNlQnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgYXVk
aW8gdHJhY2sgZnJvbSBhY3RpdmVTb3VyY2VCdWZmZXJzCiAgICAgICAgIC8vIDIuIFF1ZXVlIGEg
dGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHJlbW92ZXNvdXJjZWJ1ZmZlciBhdCBh
Y3RpdmVTb3VyY2VCdWZmZXJzCiAgICAgICAgIHNldEFjdGl2ZShmYWxzZSk7Ci0gICAgfSBlbHNl
IGlmICh0cmFjay0+ZW5hYmxlZCgpKSB7CisgICAgfSBlbHNlIGlmICh0cmFjay5lbmFibGVkKCkp
IHsKICAgICAgICAgLy8gSWYgYW4gYXVkaW8gdHJhY2sgYmVjb21lcyBlbmFibGVkIGFuZCB0aGUg
U291cmNlQnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYWNrIGlzCiAgICAgICAgIC8vIG5v
dCBhbHJlYWR5IGluIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMsIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcg
c3RlcHM6CiAgICAgICAgIC8vIDEuIEFkZCB0aGUgU291cmNlQnVmZmVyIGFzc29jaWF0ZWQgd2l0
aCB0aGUgYXVkaW8gdHJhY2sgdG8gYWN0aXZlU291cmNlQnVmZmVycwpAQCAtMTcyNCwxOSArMTcx
NCwxOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlv
VHJhY2sqIHRyYWNrKQogICAgICAgICBzZXRBY3RpdmUodHJ1ZSk7CiAgICAgfQogCi0gICAgaWYg
KG1fYXVkaW9UcmFja3MgJiYgbV9hdWRpb1RyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBp
ZiAobV9hdWRpb1RyYWNrcyAmJiBtX2F1ZGlvVHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAg
ICAgIG1fYXVkaW9UcmFja3MtPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIGlmICghaXNS
ZW1vdmVkKCkpCiAgICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+YXVkaW9UcmFja0Vu
YWJsZWRDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja01v
ZGVDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNr
TW9kZUNoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykKIHsKICAgICAvLyAyLjQuNSBDaGFuZ2VzIHRv
IHNlbGVjdGVkL2VuYWJsZWQgdHJhY2sgc3RhdGUKICAgICAvLyBJZiBhIHRleHQgdHJhY2sgbW9k
ZSBiZWNvbWVzICJkaXNhYmxlZCIgYW5kIHRoZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRo
IHRoaXMgdHJhY2sgaXMgbm90CiAgICAgLy8gYXNzb2NpYXRlZCB3aXRoIGFueSBvdGhlciBlbmFi
bGVkIG9yIHNlbGVjdGVkIHRyYWNrLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAg
IGlmICh0cmFjay0+bW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQKKyAgICBpZiAo
dHJhY2subW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQKICAgICAgICAgJiYgKCFt
X3ZpZGVvVHJhY2tzIHx8ICFtX3ZpZGVvVHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAg
ICAgICAmJiAoIW1fYXVkaW9UcmFja3MgfHwgIW1fYXVkaW9UcmFja3MtPmlzQW55VHJhY2tFbmFi
bGVkKCkpCiAgICAgICAgICYmICghbV90ZXh0VHJhY2tzIHx8ICFtX3RleHRUcmFja3MtPmlzQW55
VHJhY2tFbmFibGVkKCkpKSB7CkBAIC0xNzUxLDU2ICsxNzQxLDU2IEBAIHZvaWQgU291cmNlQnVm
ZmVyOjp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQogICAgICAgICBzZXRB
Y3RpdmUodHJ1ZSk7CiAgICAgfQogCi0gICAgaWYgKG1fdGV4dFRyYWNrcyAmJiBtX3RleHRUcmFj
a3MtPmNvbnRhaW5zKCp0cmFjaykpCisgICAgaWYgKG1fdGV4dFRyYWNrcyAmJiBtX3RleHRUcmFj
a3MtPmNvbnRhaW5zKHRyYWNrKSkKICAgICAgICAgbV90ZXh0VHJhY2tzLT5zY2hlZHVsZUNoYW5n
ZUV2ZW50KCk7CiAKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVk
aWFFbGVtZW50KCktPnRleHRUcmFja01vZGVDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBTb3Vy
Y2VCdWZmZXI6OnRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWUm
IGN1ZSkKK3ZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrJiB0cmFj
aywgVGV4dFRyYWNrQ3VlJiBjdWUpCiB7CiAgICAgaWYgKCFpc1JlbW92ZWQoKSkKICAgICAgICAg
bV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tBZGRDdWUodHJhY2ssIGN1ZSk7CiB9
CiAKLXZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayogdHJhY2ss
IFRleHRUcmFja0N1ZUxpc3QgY29uc3QqIGN1ZUxpc3QpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4
dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smIHRyYWNrLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JiBj
dWVMaXN0KQogewogICAgIGlmICghaXNSZW1vdmVkKCkpCiAgICAgICAgIG1fc291cmNlLT5tZWRp
YUVsZW1lbnQoKS0+dGV4dFRyYWNrQWRkQ3Vlcyh0cmFjaywgY3VlTGlzdCk7CiB9CiAKLXZvaWQg
U291cmNlQnVmZmVyOjp0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRy
YWNrQ3VlJiBjdWUpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRU
cmFjayYgdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogewogICAgIGlmICghaXNSZW1vdmVkKCkp
CiAgICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dGV4dFRyYWNrUmVtb3ZlQ3VlKHRy
YWNrLCBjdWUpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3VlcyhU
ZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWVMaXN0IGNvbnN0KiBjdWVMaXN0KQordm9pZCBT
b3VyY2VCdWZmZXI6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiB0cmFjaywgY29uc3Qg
VGV4dFRyYWNrQ3VlTGlzdCYgY3VlTGlzdCkKIHsKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAg
ICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja1JlbW92ZUN1ZXModHJhY2ss
IGN1ZUxpc3QpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrS2luZENoYW5nZWQo
VGV4dFRyYWNrKiB0cmFjaykKK3ZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tLaW5kQ2hhbmdl
ZChUZXh0VHJhY2smIHRyYWNrKQogewogICAgIGlmICghaXNSZW1vdmVkKCkpCiAgICAgICAgIG1f
c291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dGV4dFRyYWNrS2luZENoYW5nZWQodHJhY2spOwogfQog
Ci12b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZEJlY29tZVJlYWR5Rm9y
TW9yZVNhbXBsZXMoU291cmNlQnVmZmVyUHJpdmF0ZSosIEF0b21pY1N0cmluZyB0cmFja0lEKQor
dm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1v
cmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkKIHsKICAgICBMT0coTWVkaWFT
b3VyY2UsICJTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZv
ck1vcmVTYW1wbGVzKCVwKSIsIHRoaXMpOwogICAgIGF1dG8gaXQgPSBtX3RyYWNrQnVmZmVyTWFw
LmZpbmQodHJhY2tJRCk7CiAgICAgaWYgKGl0ID09IG1fdHJhY2tCdWZmZXJNYXAuZW5kKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciA9IGl0LT52YWx1
ZTsKKyAgICBhdXRvJiB0cmFja0J1ZmZlciA9IGl0LT52YWx1ZTsKICAgICBpZiAoIXRyYWNrQnVm
ZmVyLm5lZWRzUmVlbnF1ZXVlaW5nICYmICFtX3NvdXJjZS0+aXNTZWVraW5nKCkpCiAgICAgICAg
IHByb3ZpZGVNZWRpYURhdGEodHJhY2tCdWZmZXIsIHRyYWNrSUQpOwogfQogCi12b2lkIFNvdXJj
ZUJ1ZmZlcjo6cHJvdmlkZU1lZGlhRGF0YShUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIsIEF0b21p
Y1N0cmluZyB0cmFja0lEKQordm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoVHJh
Y2tCdWZmZXImIHRyYWNrQnVmZmVyLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpCiB7CiAg
ICAgaWYgKG1fc291cmNlLT5pc1NlZWtpbmcoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTgzNCw3
ICsxODI0LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoVHJhY2tCdWZm
ZXImIHRyYWNrQnVmZmVyLCBBdG9taWNTdHJpbmcgdHJhY2sKIAogICAgICAgICB0cmFja0J1ZmZl
ci5sYXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lID0gc2FtcGxlLT5wcmVzZW50YXRpb25UaW1l
KCk7CiAgICAgICAgIHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZERlY29kZUVuZFRpbWUgPSBzYW1w
bGUtPmRlY29kZVRpbWUoKSArIHNhbXBsZS0+ZHVyYXRpb24oKTsKLSAgICAgICAgbV9wcml2YXRl
LT5lbnF1ZXVlU2FtcGxlKFdURk1vdmUoc2FtcGxlKSwgdHJhY2tJRCk7CisgICAgICAgIG1fcHJp
dmF0ZS0+ZW5xdWV1ZVNhbXBsZShzYW1wbGUucmVsZWFzZU5vbk51bGwoKSwgdHJhY2tJRCk7CiAj
aWYgIUxPR19ESVNBQkxFRAogICAgICAgICArK2VucXVldWVkU2FtcGxlczsKICNlbmRpZgpAQCAt
MTg0Myw3ICsxODMzLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoVHJh
Y2tCdWZmZXImIHRyYWNrQnVmZmVyLCBBdG9taWNTdHJpbmcgdHJhY2sKICAgICBMT0coTWVkaWFT
b3VyY2UsICJTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoJXApIC0gRW5xdWV1ZWQgJXUg
c2FtcGxlcyIsIHRoaXMsIGVucXVldWVkU2FtcGxlcyk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVy
OjpyZWVucXVldWVNZWRpYUZvclRpbWUoVHJhY2tCdWZmZXImIHRyYWNrQnVmZmVyLCBBdG9taWNT
dHJpbmcgdHJhY2tJRCwgY29uc3QgTWVkaWFUaW1lJiB0aW1lKQordm9pZCBTb3VyY2VCdWZmZXI6
OnJlZW5xdWV1ZU1lZGlhRm9yVGltZShUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIsIGNvbnN0IEF0
b21pY1N0cmluZyYgdHJhY2tJRCwgY29uc3QgTWVkaWFUaW1lJiB0aW1lKQogewogICAgIG1fcHJp
dmF0ZS0+Zmx1c2godHJhY2tJRCk7CiAgICAgdHJhY2tCdWZmZXIuZGVjb2RlUXVldWUuY2xlYXIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ci5oCmluZGV4IGQ5ZTE3NDc5OTkyNGFmYjBlODhkNzQ3NzJlOGY4YTkxYTJjZjAyYjAuLjVhMTQy
ZDRjYTEwMjM1NGVlZDgwYmMxYWMxYmViYzMxNTc2YzhmOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaApAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ5LDYgKzQ5
LDcgQEAgY2xhc3MgQXVkaW9UcmFja0xpc3Q7CiBjbGFzcyBCdWZmZXJTb3VyY2U7CiBjbGFzcyBN
ZWRpYVNvdXJjZTsKIGNsYXNzIFBsYXRmb3JtVGltZVJhbmdlczsKK2NsYXNzIFNvdXJjZUJ1ZmZl
clByaXZhdGU7CiBjbGFzcyBUZXh0VHJhY2tMaXN0OwogY2xhc3MgVGltZVJhbmdlczsKIGNsYXNz
IFZpZGVvVHJhY2tMaXN0OwpAQCAtNjQsOSArNjUsOSBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0VGltZXN0YW1wT2Zmc2V0KGRvdWJsZSk7CiAKICNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCi0gICAgVmlkZW9UcmFja0xpc3QqIHZpZGVvVHJhY2tzKCk7Ci0gICAgQXVkaW9UcmFj
a0xpc3QqIGF1ZGlvVHJhY2tzKCk7Ci0gICAgVGV4dFRyYWNrTGlzdCogdGV4dFRyYWNrcygpOwor
ICAgIFZpZGVvVHJhY2tMaXN0JiB2aWRlb1RyYWNrcygpOworICAgIEF1ZGlvVHJhY2tMaXN0JiBh
dWRpb1RyYWNrcygpOworICAgIFRleHRUcmFja0xpc3QmIHRleHRUcmFja3MoKTsKICNlbmRpZgog
CiAgICAgZG91YmxlIGFwcGVuZFdpbmRvd1N0YXJ0KCkgY29uc3Q7CkBAIC0xMjQsMjUgKzEyNSwy
NCBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dCBmaW5hbDsKICAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25z
dCBmaW5hbDsKIAotICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFs
aXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IEluaXRpYWxpemF0aW9u
U2VnbWVudCYpIGZpbmFsOwotICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVT
YW1wbGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIE1lZGlhU2FtcGxlJikgZmluYWw7Ci0gICAgYm9v
bCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oY29uc3QgU291cmNlQnVmZmVyUHJpdmF0ZSop
IGNvbnN0IGZpbmFsOwotICAgIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKGNvbnN0
IFNvdXJjZUJ1ZmZlclByaXZhdGUqKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1ZmZlclByaXZhdGUq
LCBBdG9taWNTdHJpbmcgdHJhY2tJRCkgZmluYWw7Ci0gICAgTWVkaWFUaW1lIHNvdXJjZUJ1ZmZl
clByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNv
bnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYgbmVnYXRpdmVUaHJlc2hvbGQsIGNvbnN0
IE1lZGlhVGltZSYgcG9zaXRpdmVUaHJlc2hvbGQpIGZpbmFsOwotICAgIHZvaWQgc291cmNlQnVm
ZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBcHBlbmRSZXN1
bHQpIGZpbmFsOwotICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJp
bmdFcnJvcihTb3VyY2VCdWZmZXJQcml2YXRlKiwgaW50IGVycm9yQ29kZSkgZmluYWw7Ci0KLSAg
ICB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKikgZmluYWw7Ci0KLSAg
ICB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayopIGZpbmFsOwotCi0g
ICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2sqKSBmaW5hbDsKLSAgICB2b2lk
IHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRy
YWNrQWRkQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KikgZmluYWw7Ci0g
ICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1
ZUxpc3QqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqLCBUZXh0
VHJhY2tDdWUmKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2sq
LCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRS
ZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYp
IGZpbmFsOworICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoTWVk
aWFTYW1wbGUmKSBmaW5hbDsKKyAgICBib29sIHNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygp
IGNvbnN0IGZpbmFsOworICAgIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCkgY29u
c3QgZmluYWw7CisgICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JN
b3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpIGZpbmFsOworICAgIE1lZGlh
VGltZSBzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYgbmVnYXRpdmVUaHJlc2hvbGQsIGNvbnN0IE1lZGlh
VGltZSYgcG9zaXRpdmVUaHJlc2hvbGQpIGZpbmFsOworICAgIHZvaWQgc291cmNlQnVmZmVyUHJp
dmF0ZUFwcGVuZENvbXBsZXRlKEFwcGVuZFJlc3VsdCkgZmluYWw7CisgICAgdm9pZCBzb3VyY2VC
dWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmluZ0Vycm9yKGludCBlcnJvckNvZGUpIGZpbmFs
OworCisgICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayYpIGZpbmFs
OworICAgIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrJikgZmluYWw7
CisKKyAgICB2b2lkIHRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayYpIGZpbmFsOworICAg
IHZvaWQgdGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrJikgZmluYWw7CisgICAgdm9pZCB0
ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBmaW5h
bDsKKyAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRy
YWNrQ3VlTGlzdCYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYs
IFRleHRUcmFja0N1ZSYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRU
cmFjayYsIFRleHRUcmFja0N1ZSYpIGZpbmFsOwogCiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2Ug
ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTb3VyY2VCdWZmZXJF
dmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KIApAQCAtMTU3LDggKzE1Nyw4IEBAIHByaXZhdGU6
CiAKICAgICBib29sIHZhbGlkYXRlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxp
emF0aW9uU2VnbWVudCYpOwogCi0gICAgdm9pZCByZWVucXVldWVNZWRpYUZvclRpbWUoVHJhY2tC
dWZmZXImLCBBdG9taWNTdHJpbmcgdHJhY2tJRCwgY29uc3QgTWVkaWFUaW1lJik7Ci0gICAgdm9p
ZCBwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiwgQXRvbWljU3RyaW5nIHRyYWNrSUQpOwor
ICAgIHZvaWQgcmVlbnF1ZXVlTWVkaWFGb3JUaW1lKFRyYWNrQnVmZmVyJiwgY29uc3QgQXRvbWlj
U3RyaW5nJiB0cmFja0lELCBjb25zdCBNZWRpYVRpbWUmKTsKKyAgICB2b2lkIHByb3ZpZGVNZWRp
YURhdGEoVHJhY2tCdWZmZXImLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpOwogICAgIHZv
aWQgZGlkRHJvcFNhbXBsZSgpOwogICAgIHZvaWQgZXZpY3RDb2RlZEZyYW1lcyhzaXplX3QgbmV3
RGF0YVNpemUpOwogICAgIHNpemVfdCBtYXhpbXVtQnVmZmVyU2l6ZSgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJl
OTY0NTg5MzdhOTQyMWY1Njg5MDUyMmVlYWNkOTA4NmEwZjk3YTkuLjA1ODIzNzljY2I1ZGFkMDc0
MzE4YTdmMGUwMjkyZDliNGI4NjlhYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2MTQsOCArMjYxNCw4IEBACiAJCTZFM0ZB
RThFMTQ3MzNGREIwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVyZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4QzE0NzMzRkRCMDBFNDIz
MDcgLyogV2ViR0xEZXB0aFRleHR1cmUuY3BwICovOyB9OwogCQk2RTNGQUU4RjE0NzMzRkRCMDBF
NDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRThEMTQ3MzNGREIwMEU0MjMwNiAvKiBX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oICovOyB9OwogCQk2RTNGQUU4RjE0NzMzRkRCMDBF
NDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRThEMTQ3MzNGREIwMEU0MjMwNyAvKiBXZWJHTERlcHRo
VGV4dHVyZS5oICovOyB9OwotCQk2RTQ3RTY2MDEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJ
bmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZF
NDdFNjVFMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldEluZm8uY3BwICovOyB9OwotCQk2RTQ3
RTY2MTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTQ3RTY1RjEwQjc5NDRCMDBCMTg2QzggLyog
V2ViR0xHZXRJbmZvLmggKi87IH07CisJCTZFNDdFNjYwMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJH
TEFueS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuY3BwICovOyB9OworCQk2RTQ3RTY2
MTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNDdFNjVGMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEFu
eS5oICovOyB9OwogCQk2RTRBQkNENDEzOEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkU0QUJDRDIxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50LmNwcCAqLzsg
fTsKIAkJNkU0QUJDRDUxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTRBQkNEMzEz
OEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuaCAqLzsgfTsKIAkJNkU0RTkx
QUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNEU5MUFBMTBGN0ZCMzEwMEEy
Nzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk5MTUsOCArOTkxNSw4IEBACiAJCTZFM0ZBRThE
MTQ3MzNGREIwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVyZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJHTERlcHRoVGV4dHVyZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2RTNGQUU5MDE0NzMzRkVBMDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4
dHVyZVMzVEMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVTM1RDLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFFOTAxNDczM0ZF
QTAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBXZWJHTERlcHRoVGV4dHVyZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZF
NDdFNjVFMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldEluZm8uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR0xHZXRJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNkU0N0U2NUYxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTEdldEluZm8uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkU0N0U2NUUxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdM
QW55LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMQW55LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkU0N0U2NUYxMEI3OTQ0QjAwQjE4NkM4
IC8qIFdlYkdMQW55LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMQW55
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFNEFCQ0QyMTM4RUEwQjcwMDcxRDI5
MSAvKiBKU0hUTUxVbmtub3duRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0hUTUxVbmtub3duRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTZFNEFCQ0QzMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtub3duRWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxVbmtub3duRWxlbWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTRFOTFBQTEwRjdGQjMxMDBBMjc3
OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNjkyOCw4ICsxNjkyOCw4IEBACiAJCQkJNDlDN0I5QUUxMDQyRDMyRTAwMDlENDQ3
IC8qIFdlYkdMRnJhbWVidWZmZXIuY3BwICovLAogCQkJCTQ5QzdCOUFGMTA0MkQzMkUwMDA5RDQ0
NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmggKi8sCiAJCQkJNDlDN0I5QjAxMDQyRDMyRTAwMDlENDQ3
IC8qIFdlYkdMRnJhbWVidWZmZXIuaWRsICovLAotCQkJCTZFNDdFNjVFMTBCNzk0NEIwMEIxODZD
OCAvKiBXZWJHTEdldEluZm8uY3BwICovLAotCQkJCTZFNDdFNjVGMTBCNzk0NEIwMEIxODZDOCAv
KiBXZWJHTEdldEluZm8uaCAqLywKKwkJCQk2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2Vi
R0xBbnkuY3BwICovLAorCQkJCTZFNDdFNjVGMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5o
ICovLAogCQkJCTkzRjFENUI3MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmNw
cCAqLywKIAkJCQk5M0YxRDVCODEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xMb3NlQ29udGV4dC5o
ICovLAogCQkJCTkzRjFENUI5MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0Lmlk
bCAqLywKQEAgLTI4MjQzLDcgKzI4MjQzLDcgQEAKIAkJCQk1QjMwNjk1RTE4QjNEMzQ1MDA5OUQ1
RTggLyogV2ViR0xEcmF3QnVmZmVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkVCRjBFNTUxMkE4
OTI5ODAwREIxNzA5IC8qIFdlYkdMRXh0ZW5zaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3
QjlDRjEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0OUZGQkYzRjExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNv
bnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOUQ1MTA0MkQzMkYwMDA5RDQ0NyAvKiBX
ZWJHTE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTczMiw3ICszMTczMiw3IEBACiAJCQkJ
NUIzMDY5NUQxOEIzRDM0NTAwOTlENUU4IC8qIFdlYkdMRHJhd0J1ZmZlcnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNkVCRjBFNTQxMkE4OTI5ODAwREIxNzA5IC8qIFdlYkdMRXh0ZW5zaW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUNFMTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTEZy
YW1lYnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTZFNDdFNjYwMTBCNzk0NEIwMEIxODZD
OCAvKiBXZWJHTEdldEluZm8uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNkU0N0U2NjAxMEI3OTQ0
QjAwQjE4NkM4IC8qIFdlYkdMQW55LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5RkZCRjQwMTFD
OTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNGMUQ1
QkExMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDlDN0I5RDQxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMT2JqZWN0LmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwCmluZGV4IGUyMGIyMzg2ODY0ZGFj
ZGRhZDU2MmZjM2VlYzZhYTMzOTRmZjEwYTUuLjkzYjc5NmE0NWJmZWNlZjY2ZGY3OTQ5NzVmYjA0
OTU3YmNjYjYyNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNjUsOSArNjUsOSBA
QCBzdGF0aWMgQ2FudmFzU3R5bGUgdG9IVE1MQ2FudmFzU3R5bGUoRXhlY1N0YXRlKiwgSlNWYWx1
ZSB2YWx1ZSkKICAgICAgICAgcmV0dXJuIENhbnZhc1N0eWxlKCk7CiAgICAgSlNPYmplY3QqIG9i
amVjdCA9IGFzT2JqZWN0KHZhbHVlKTsKICAgICBpZiAob2JqZWN0LT5pbmhlcml0cyhKU0NhbnZh
c0dyYWRpZW50OjppbmZvKCkpKQotICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUoJmpzQ2FzdDxK
U0NhbnZhc0dyYWRpZW50Kj4ob2JqZWN0KS0+d3JhcHBlZCgpKTsKKyAgICAgICAgcmV0dXJuIGpz
Q2FzdDxKU0NhbnZhc0dyYWRpZW50Kj4ob2JqZWN0KS0+d3JhcHBlZCgpOwogICAgIGlmIChvYmpl
Y3QtPmluaGVyaXRzKEpTQ2FudmFzUGF0dGVybjo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIENh
bnZhc1N0eWxlKCZqc0Nhc3Q8SlNDYW52YXNQYXR0ZXJuKj4ob2JqZWN0KS0+d3JhcHBlZCgpKTsK
KyAgICAgICAgcmV0dXJuIGpzQ2FzdDxKU0NhbnZhc1BhdHRlcm4qPihvYmplY3QpLT53cmFwcGVk
KCk7CiAgICAgcmV0dXJuIENhbnZhc1N0eWxlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCmluZGV4IGY3
OGExMTg2MjE4YzZhOWJkMWQ3N2JlODc4NzQzZTllYWNiYWM3NDQuLjQxODFkNzQ3ODZmMzlmM2Rk
NWZkNzk3N2VjZjY4MWRkYzYyNTI5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcApAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2Rl
Lm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOCwgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtNDAsNyArNDAsNyBA
QCBJbnN0YW5jZSogcGx1Z2luSW5zdGFuY2UoSFRNTEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgLy8g
VGhlIHBsdWdpbiBlbGVtZW50IGhvbGRzIGFuIG93bmluZyByZWZlcmVuY2UsIHNvIHdlIGRvbid0
IGhhdmUgdG8uCiAgICAgaWYgKCFpczxIVE1MUGx1Z0luRWxlbWVudD4oZWxlbWVudCkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIEluc3RhbmNlKiBpbnN0YW5jZSA9IGRvd25jYXN0PEhU
TUxQbHVnSW5FbGVtZW50PihlbGVtZW50KS5nZXRJbnN0YW5jZSgpLmdldCgpOworICAgIGF1dG8q
IGluc3RhbmNlID0gZG93bmNhc3Q8SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpLmJpbmRpbmdz
SW5zdGFuY2UoKTsKICAgICBpZiAoIWluc3RhbmNlIHx8ICFpbnN0YW5jZS0+cm9vdE9iamVjdCgp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gaW5zdGFuY2U7CkBAIC03MSwy
MyArNzEsMjMgQEAgSlNPYmplY3QqIHBsdWdpblNjcmlwdE9iamVjdChFeGVjU3RhdGUqIGV4ZWMs
IEpTSFRNTEVsZW1lbnQqIGpzSFRNTEVsZW1lbnQpCiAgICAgaWYgKCFpczxIVE1MUGx1Z0luRWxl
bWVudD4oZWxlbWVudCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgSFRNTFBsdWdJ
bkVsZW1lbnQmIHBsdWdpbkVsZW1lbnQgPSBkb3duY2FzdDxIVE1MUGx1Z0luRWxlbWVudD4oZWxl
bWVudCk7CisgICAgYXV0byYgcGx1Z2luRWxlbWVudCA9IGRvd25jYXN0PEhUTUxQbHVnSW5FbGVt
ZW50PihlbGVtZW50KTsKIAogICAgIC8vIENob2tlIHBvaW50IGZvciBzY3JpcHQvcGx1Z2luIGlu
dGVyYWN0aW9uOyBub3RpZnkgRE9NVGltZXIgb2YgdGhlIGV2ZW50LgogICAgIERPTVRpbWVyOjpz
Y3JpcHREaWRJbnRlcmFjdFdpdGhQbHVnaW4ocGx1Z2luRWxlbWVudCk7CiAKICAgICAvLyBGaXJz
dCwgc2VlIGlmIHRoZSBlbGVtZW50IGhhcyBhIHBsdWctaW4gcmVwbGFjZW1lbnQgd2l0aCBhIHNj
cmlwdC4KLSAgICBpZiAoSlNPYmplY3QqIHNjcmlwdE9iamVjdCA9IHBsdWdpbkVsZW1lbnQuc2Ny
aXB0T2JqZWN0Rm9yUGx1Z2luUmVwbGFjZW1lbnQoKSkKKyAgICBpZiAoYXV0byogc2NyaXB0T2Jq
ZWN0ID0gcGx1Z2luRWxlbWVudC5zY3JpcHRPYmplY3RGb3JQbHVnaW5SZXBsYWNlbWVudCgpKQog
ICAgICAgICByZXR1cm4gc2NyaXB0T2JqZWN0OwogICAgIAogICAgIC8vIE5leHQsIHNlZSBpZiB3
ZSBjYW4gYXNrIHRoZSBwbHVnLWluIHZpZXcgZm9yIGl0cyBzY3JpcHQgb2JqZWN0LgotICAgIGlm
IChKU09iamVjdCogc2NyaXB0T2JqZWN0ID0gcGx1Z2luU2NyaXB0T2JqZWN0RnJvbVBsdWdpblZp
ZXdCYXNlKHBsdWdpbkVsZW1lbnQsIGpzSFRNTEVsZW1lbnQtPmdsb2JhbE9iamVjdCgpKSkKKyAg
ICBpZiAoYXV0byogc2NyaXB0T2JqZWN0ID0gcGx1Z2luU2NyaXB0T2JqZWN0RnJvbVBsdWdpblZp
ZXdCYXNlKHBsdWdpbkVsZW1lbnQsIGpzSFRNTEVsZW1lbnQtPmdsb2JhbE9iamVjdCgpKSkKICAg
ICAgICAgcmV0dXJuIHNjcmlwdE9iamVjdDsKIAogICAgIC8vIE90aGVyd2lzZSwgZmFsbCBiYWNr
IHRvIGdldHRpbmcgdGhlIG9iamVjdCBmcm9tIHRoZSBpbnN0YW5jZS4KIAogICAgIC8vIFRoZSBw
bHVnaW4gZWxlbWVudCBob2xkcyBhbiBvd25pbmcgcmVmZXJlbmNlLCBzbyB3ZSBkb24ndCBoYXZl
IHRvLgotICAgIEluc3RhbmNlKiBpbnN0YW5jZSA9IHBsdWdpbkVsZW1lbnQuZ2V0SW5zdGFuY2Uo
KS5nZXQoKTsKKyAgICBhdXRvKiBpbnN0YW5jZSA9IHBsdWdpbkVsZW1lbnQuYmluZGluZ3NJbnN0
YW5jZSgpOwogICAgIGlmICghaW5zdGFuY2UgfHwgIWluc3RhbmNlLT5yb290T2JqZWN0KCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCA3
ODhhZDI0NDQ2OTIwZDBmYTJlYWVlYjc0OGQ2NDliYmUzNjhjNDcxLi40YzUwY2NmOGYzMDQ2ZWQw
MDgzNjUwODg2NzdmYTRhNzhlN2NkZWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zNiwzNyArMzYsNiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLS8vIEZJWE1FOiBUaGVyZSBpcyBhIGR1cGxpY2F0ZSB2ZXJzaW9uIG9mIHRoaXMgZnVu
Y3Rpb24gaW4gSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9tLmNwcCwKLS8vIGJ1dCBp
dCBpcyBub3QgZXhhY3RseSB0aGUgc2FtZSEgV2Ugc2hvdWxkIG1lcmdlIHRoZXNlLgotc3RhdGlj
IEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBjb25zdCBXZWJHTEdldEluZm8mIGluZm8pCi17Ci0gICAgc3dpdGNoIChpbmZvLmdl
dFR5cGUoKSkgewotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZUJvb2w6Ci0gICAgICAgIHJl
dHVybiBqc0Jvb2xlYW4oaW5mby5nZXRCb29sKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjpr
VHlwZUJvb2xBcnJheTogewotICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBsaXN0OwotICAg
ICAgICBmb3IgKGF1dG8mIHZhbHVlIDogaW5mby5nZXRCb29sQXJyYXkoKSkKLSAgICAgICAgICAg
IGxpc3QuYXBwZW5kKGpzQm9vbGVhbih2YWx1ZSkpOwotICAgICAgICByZXR1cm4gY29uc3RydWN0
QXJyYXkoc3RhdGUsIDAsIGdsb2JhbE9iamVjdCwgbGlzdCk7Ci0gICAgfQotICAgIGNhc2UgV2Vi
R0xHZXRJbmZvOjprVHlwZUZsb2F0OgotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRG
bG9hdCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVJbnQ6Ci0gICAgICAgIHJldHVy
biBqc051bWJlcihpbmZvLmdldEludCgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVO
dWxsOgotICAgICAgICByZXR1cm4ganNOdWxsKCk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtU
eXBlU3RyaW5nOgotICAgICAgICByZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoc3RhdGUsIGluZm8u
Z2V0U3RyaW5nKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVVuc2lnbmVkSW50Ogot
ICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRVbnNpZ25lZEludCgpKTsKLSAgICBjYXNl
IFdlYkdMR2V0SW5mbzo6a1R5cGVJbnQ2NDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8u
Z2V0SW50NjQoKSk7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotfQotCiB2b2lkIEpTV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCiB7CiAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KCZ3cmFwcGVkKCkpOwpAQCAtMTA0LDcg
KzczLDcgQEAgSlNWYWx1ZSBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEluZGV4ZWRQYXJh
bWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBK
U1ZhbHVlKCkpOwogICAgIHVuc2lnbmVkIGluZGV4ID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MSkudG9JbnQzMigmc3RhdGUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFs
dWUoKSk7Ci0gICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgp
LmdldEluZGV4ZWRQYXJhbWV0ZXIocG5hbWUsIGluZGV4KSk7CisgICAgcmV0dXJuIHRvSlMoc3Rh
dGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldEluZGV4ZWRQYXJhbWV0ZXIocG5hbWUs
IGluZGV4KSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRBY3Rp
dmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIoRXhlY1N0YXRlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2VD
dXN0b20uY3BwCmluZGV4IDgyNWQyNTA5NGQyY2M2MjIwNmIwNDk5NmMxMGQ1MzFlNTQyOTgwOTEu
LjExNTgzN2UwNTFiMWQ3YmNlM2Y1MDcxYmZhMzQ3NWVlYjdhOWQ5OWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlQ3VzdG9tLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDIwICsyNCwxNiBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKIAog
I2lmIEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUgIkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oIgotCi0jaW5jbHVkZSAiQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIKICNpbmNsdWRlICJFWFRC
bGVuZE1pbk1heC5oIgogI2luY2x1ZGUgIkVYVEZyYWdEZXB0aC5oIgogI2luY2x1ZGUgIkVYVFNo
YWRlclRleHR1cmVMT0QuaCIKICNpbmNsdWRlICJFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
aCIKICNpbmNsdWRlICJFWFRzUkdCLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2lu
Y2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5o
IgogI2luY2x1ZGUgIkpTQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIKICNpbmNsdWRlICJKU0VYVEJs
ZW5kTWluTWF4LmgiCiAjaW5jbHVkZSAiSlNFWFRGcmFnRGVwdGguaCIKQEAgLTczLDcgKzY5LDYg
QEAKICNpbmNsdWRlICJKU1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIKICNpbmNsdWRlICJKU1dl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKICNpbmNsdWRlICJKU1dlYktpdENTU01hdHJpeC5o
IgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiT0VTRWxlbWVudEluZGV4
VWludC5oIgogI2luY2x1ZGUgIk9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCIKICNpbmNsdWRlICJP
RVNUZXh0dXJlRmxvYXQuaCIKQEAgLTkxLDcgKzg2LDYgQEAKICNpbmNsdWRlICJXZWJHTERyYXdC
dWZmZXJzLmgiCiAjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKICNpbmNsdWRlICJXZWJHTEZy
YW1lYnVmZmVyLmgiCi0jaW5jbHVkZSAiV2ViR0xHZXRJbmZvLmgiCiAjaW5jbHVkZSAiV2ViR0xM
b3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKQEAgLTEwNSw3ICs5OSw2IEBACiAjaW5jbHVkZSA8d3Rm
L0Zhc3RNYWxsb2MuaD4KIAogI2lmIEVOQUJMRShWSURFTykKLSNpbmNsdWRlICJIVE1MVmlkZW9F
bGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MVmlkZW9FbGVtZW50LmgiCiAjZW5kaWYKIApAQCAt
MTE3LDcgKzExMCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZT4mJiBvYmplY3QpCitKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+
JiYgb2JqZWN0KQogewogI2lmIEVOQUJMRShXRUJHTDIpCiAgICAgaWYgKGlzPFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ+KG9iamVjdCkpCkBAIC0xMzEsNjQgKzEyNCw3IEBAIEpTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBXZWJHTFJl
bmRlcmluZ0NvCiAgICAgcmV0dXJuIHdyYXAoc3RhdGUsIGdsb2JhbE9iamVjdCwgb2JqZWN0KTsK
IH0KICAgICAKLS8vIEZJWE1FOiBUaGVyZSBpcyBhIGR1cGxpY2F0ZSB2ZXJzaW9uIG9mIHRoaXMg
ZnVuY3Rpb24gaW4gSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCwKLS8vIGJ1dCBp
dCBpcyBub3QgZXhhY3RseSB0aGUgc2FtZSEgV2Ugc2hvdWxkIG1lcmdlIHRoZXNlLgotc3RhdGlj
IEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIGNvbnN0IFdlYkdMR2V0SW5mbyYgaW5mbykKLXsKLSAgICBzd2l0Y2ggKGluZm8uZ2V0
VHlwZSgpKSB7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlQm9vbDoKLSAgICAgICAgcmV0
dXJuIGpzQm9vbGVhbihpbmZvLmdldEJvb2woKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtU
eXBlQm9vbEFycmF5OiB7Ci0gICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGxpc3Q7Ci0gICAg
ICAgIGZvciAoYXV0byYgdmFsdWUgOiBpbmZvLmdldEJvb2xBcnJheSgpKQotICAgICAgICAgICAg
bGlzdC5hcHBlbmQoanNCb29sZWFuKHZhbHVlKSk7Ci0gICAgICAgIHJldHVybiBjb25zdHJ1Y3RB
cnJheShleGVjLCAwLCBnbG9iYWxPYmplY3QsIGxpc3QpOwotICAgIH0KLSAgICBjYXNlIFdlYkdM
R2V0SW5mbzo6a1R5cGVGbG9hdDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0Rmxv
YXQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlSW50OgotICAgICAgICByZXR1cm4g
anNOdW1iZXIoaW5mby5nZXRJbnQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlTnVs
bDoKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlw
ZVN0cmluZzoKLSAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIGluZm8uZ2V0
U3RyaW5nKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVVuc2lnbmVkSW50OgotICAg
ICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRVbnNpZ25lZEludCgpKTsKLSAgICBjYXNlIFdl
YkdMR2V0SW5mbzo6a1R5cGVXZWJHTEJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMQnVmZmVyKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJ
bmZvOjprVHlwZVdlYkdMRmxvYXRBcnJheToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xv
YmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMRmxvYXRBcnJheSgpKTsKLSAgICBjYXNlIFdlYkdMR2V0
SW5mbzo6a1R5cGVXZWJHTEZyYW1lYnVmZmVyOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xGcmFtZWJ1ZmZlcigpKTsKLSAgICBjYXNlIFdlYkdM
R2V0SW5mbzo6a1R5cGVXZWJHTEludEFycmF5OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xJbnRBcnJheSgpKTsKLSAgICAgICAgLy8gRklYTUU6
IGltcGxlbWVudCBXZWJHTE9iamVjdEFycmF5Ci0gICAgICAgIC8vIGNhc2UgV2ViR0xHZXRJbmZv
OjprVHlwZVdlYkdMT2JqZWN0QXJyYXk6Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2Vi
R0xQcm9ncmFtOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8u
Z2V0V2ViR0xQcm9ncmFtKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMUmVu
ZGVyYnVmZmVyOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8u
Z2V0V2ViR0xSZW5kZXJidWZmZXIoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2Vi
R0xUZXh0dXJlOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8u
Z2V0V2ViR0xUZXh0dXJlKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVW5z
aWduZWRCeXRlQXJyYXk6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwg
aW5mby5nZXRXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZv
OjprVHlwZVdlYkdMVW5zaWduZWRJbnRBcnJheToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMVW5zaWduZWRJbnRBcnJheSgpKTsKLSNpZiBFTkFC
TEUoV0VCR0wyKQotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVmVydGV4QXJyYXlP
YmplY3Q6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRX
ZWJHTFZlcnRleEFycmF5T2JqZWN0KCkpOwotI2VuZGlmCi0gICAgY2FzZSBXZWJHTEdldEluZm86
OmtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzoKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKSk7Ci0g
ICAgZGVmYXVsdDoKLSAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7Ci0gICAgfQotfQotCi1lbnVtIE9iamVjdFR5cGUgeyBrQnVmZmVyLCBrUmVu
ZGVyYnVmZmVyLCBrVGV4dHVyZSwga1ZlcnRleEF0dHJpYiB9OwotCi1zdGF0aWMgSlNWYWx1ZSBn
ZXRPYmplY3RQYXJhbWV0ZXIoSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBvYmosIEV4ZWNT
dGF0ZSYgc3RhdGUsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSkKK3N0YXRpYyBKU1ZhbHVlIG9iamVj
dFBhcmFtZXRlcihKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIEV4ZWNTdGF0
ZSYgc3RhdGUsIFdlYkdMQW55IChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjoqZ2V0dGVyKShH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5Niw5
MCArMTMyLDY2IEBAIHN0YXRpYyBKU1ZhbHVlIGdldE9iamVjdFBhcmFtZXRlcihKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UqIG9iaiwgRXhlY1N0YXRlJiBzCiAgICAgaWYgKHN0YXRlLmFyZ3Vt
ZW50Q291bnQoKSAhPSAyKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBz
Y29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CiAgICAgCi0gICAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCA9IG9iai0+d3JhcHBlZCgpOwotICAg
IHVuc2lnbmVkIHRhcmdldCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0
YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHVu
c2lnbmVkIHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUp
OwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgV2ViR0xH
ZXRJbmZvIGluZm87Ci0gICAgc3dpdGNoIChvYmplY3RUeXBlKSB7Ci0gICAgY2FzZSBrQnVmZmVy
OgotICAgICAgICBpbmZvID0gY29udGV4dC5nZXRCdWZmZXJQYXJhbWV0ZXIodGFyZ2V0LCBwbmFt
ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Uga1JlbmRlcmJ1ZmZlcjoKLSAgICAgICAgaW5m
byA9IGNvbnRleHQuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKHRhcmdldCwgcG5hbWUpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIGtUZXh0dXJlOgotICAgICAgICBpbmZvID0gY29udGV4dC5n
ZXRUZXhQYXJhbWV0ZXIodGFyZ2V0LCBwbmFtZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
a1ZlcnRleEF0dHJpYjoKLSAgICAgICAgLy8gdGFyZ2V0ID0+IGluZGV4Ci0gICAgICAgIGluZm8g
PSBjb250ZXh0LmdldFZlcnRleEF0dHJpYih0YXJnZXQsIHBuYW1lKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgfQotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgb2JqLT5nbG9iYWxPYmplY3QoKSwgaW5m
byk7CisgICAgYXV0byB0YXJnZXQgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMy
KCZzdGF0ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBhdXRv
IHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUs
ICpjb250ZXh0Lmdsb2JhbE9iamVjdCgpLCAoY29udGV4dC53cmFwcGVkKCkuKmdldHRlcikodGFy
Z2V0LCBwbmFtZSkpOwogfQogCi1lbnVtIFdoaWNoUHJvZ3JhbUNhbGwgewotICAgIGtQcm9ncmFt
UGFyYW1ldGVyLCBrVW5pZm9ybQotfTsKLQotc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUq
IGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdlYkdMRXh0ZW5zaW9uKiBl
eHRlbnNpb24pCitzdGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTRE9NR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFdlYkdMRXh0ZW5zaW9uKiBleHRlbnNpb24pCiB7CiAg
ICAgaWYgKCFleHRlbnNpb24pCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKICAgICBzd2l0Y2gg
KGV4dGVuc2lvbi0+Z2V0TmFtZSgpKSB7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xM
b3NlQ29udGV4dE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwg
c3RhdGljX2Nhc3Q8V2ViR0xMb3NlQ29udGV4dCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1
cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMTG9zZUNvbnRl
eHQqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRTaGFkZXJUZXh0
dXJlTE9ETmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxFWFRTaGFkZXJUZXh0dXJlTE9EKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUU2hhZGVyVGV4dHVy
ZUxPRCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpY05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9i
amVjdCwgc3RhdGljX2Nhc3Q8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9u
KSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBX
ZWJHTEV4dGVuc2lvbjo6RVhUc1JHQk5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUc1JHQio+KGV4dGVuc2lvbikpOworICAgICAgICBy
ZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVHNSR0IqPihl
eHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRGcmFnRGVwdGhOYW1lOgot
ICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVEZy
YWdEZXB0aCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9i
YWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVEZyYWdEZXB0aCo+KGV4dGVuc2lvbikpOwogICAgIGNh
c2UgV2ViR0xFeHRlbnNpb246OkVYVEJsZW5kTWluTWF4TmFtZToKLSAgICAgICAgcmV0dXJuIHRv
SlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRCbGVuZE1pbk1heCo+KGV4dGVu
c2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PEVYVEJsZW5kTWluTWF4Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVu
c2lvbjo6T0VTU3RhbmRhcmREZXJpdmF0aXZlc05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTU3RhbmRhcmREZXJpdmF0aXZlcyo+KGV4
dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0
YXRpY19jYXN0PE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMqPihleHRlbnNpb24pKTsKICAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpPRVNUZXh0dXJlRmxvYXROYW1lOgotICAgICAgICByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVGbG9hdCo+KGV4dGVu
c2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PE9FU1RleHR1cmVGbG9hdCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246Ok9FU1RleHR1cmVGbG9hdExpbmVhck5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0TGluZWFyKj4oZXh0
ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3Rh
dGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0TGluZWFyKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBX
ZWJHTEV4dGVuc2lvbjo6T0VTVGV4dHVyZUhhbGZGbG9hdE5hbWU6Ci0gICAgICAgIHJldHVybiB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUhhbGZGbG9hdCo+
KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3Qs
IHN0YXRpY19jYXN0PE9FU1RleHR1cmVIYWxmRmxvYXQqPihleHRlbnNpb24pKTsKICAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyTmFtZToKLSAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlSGFs
ZkZsb2F0TGluZWFyKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwg
Jmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcio+KGV4
dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1ZlcnRleEFycmF5T2JqZWN0
TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9K
Uygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0
Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTRWxlbWVudEluZGV4
VWludE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGlj
X2Nhc3Q8T0VTRWxlbWVudEluZGV4VWludCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4g
dG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU0VsZW1lbnRJbmRleFVp
bnQqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxXZWJHTERlYnVnUmVuZGVyZXJJbmZvKj4oZXh0ZW5zaW9uKSk7CisgICAgICAg
IHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Oldl
YkdMRGVidWdTaGFkZXJzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlYnVnU2hhZGVycyo+KGV4dGVuc2lvbikpOworICAgICAg
ICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVi
dWdTaGFkZXJzKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xD
b21wcmVzc2VkVGV4dHVyZUFUQ05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQyo+KGV4dGVuc2lv
bikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19j
YXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdl
YkdMRXh0ZW5zaW9uOjpXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVENOYW1lOgotICAgICAgICBy
ZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQyo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUs
ICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQyo+
KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQyo+KGV4dGVuc2lvbikpOworICAg
ICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVu
c2lvbjo6V2ViR0xEZXB0aFRleHR1cmVOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVwdGhUZXh0dXJlKj4oZXh0ZW5zaW9uKSk7
CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8
V2ViR0xEZXB0aFRleHR1cmUqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9u
OjpXZWJHTERyYXdCdWZmZXJzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERyYXdCdWZmZXJzKj4oZXh0ZW5zaW9uKSk7CisgICAg
ICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xE
cmF3QnVmZmVycyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkFOR0xF
SW5zdGFuY2VkQXJyYXlzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxBTkdMRUluc3RhbmNlZEFycmF5cyo+KGV4dGVuc2lvbikpOworICAg
ICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEFOR0xF
SW5zdGFuY2VkQXJyYXlzKj4oZXh0ZW5zaW9uKSk7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIHJldHVybiBqc051bGwoKTsKIH0KIAotYm9vbCBKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK2Jvb2wg
SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEhhbmRsZTxVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
IHsKICAgICBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGpzV2ViR0xSZW5kZXJpbmdDb250
ZXh0ID0ganNDYXN0PEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+KGhhbmRsZS5zbG90KCkt
PmFzQ2VsbCgpKTsKICAgICB2b2lkKiByb290ID0gV2ViQ29yZTo6cm9vdChqc1dlYkdMUmVuZGVy
aW5nQ29udGV4dC0+d3JhcHBlZCgpLmNhbnZhcygpKTsKQEAgLTMwNiw5ICsyMTgsOSBAQCBKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QXR0YWNoZWRTaGFkZXJzKEV4ZWNT
dGF0ZSYgc3RhdGUpCiAgICAgVmVjdG9yPFJlZlB0cjxXZWJHTFNoYWRlcj4+IHNoYWRlcnM7CiAg
ICAgaWYgKCFjb250ZXh0LmdldEF0dGFjaGVkU2hhZGVycyhwcm9ncmFtLCBzaGFkZXJzKSkKICAg
ICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgbGlz
dDsKLSAgICBmb3IgKHNpemVfdCBpaSA9IDA7IGlpIDwgc2hhZGVycy5zaXplKCk7ICsraWkpCi0g
ICAgICAgIGxpc3QuYXBwZW5kKHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgc2hhZGVyc1tp
aV0uZ2V0KCkpKTsKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBsaXN0OworICAgIGZvciAoYXV0
byYgc2hhZGVyIDogc2hhZGVycykKKyAgICAgICAgbGlzdC5hcHBlbmQodG9KUygmc3RhdGUsIGds
b2JhbE9iamVjdCgpLCBzaGFkZXIuZ2V0KCkpKTsKICAgICByZXR1cm4gY29uc3RydWN0QXJyYXko
JnN0YXRlLCAwLCBnbG9iYWxPYmplY3QoKSwgbGlzdCk7CiB9CiAKQEAgLTMyMCwxNCArMjMyLDE0
IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRFeHRlbnNpb24oRXhl
Y1N0YXRlJiBzdGF0ZSkKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAg
ICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKCZzdGF0ZSkpOwogICAgIAotICAgIFN0cmluZyBuYW1lID0gc3RhdGUudW5j
aGVja2VkQXJndW1lbnQoMCkudG9XVEZTdHJpbmcoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFs
T2JqZWN0KCksIHdyYXBwZWQoKS5nZXRFeHRlbnNpb24obmFtZSkpOworICAgIGF1dG8gbmFtZSA9
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvV1RGU3RyaW5nKCZzdGF0ZSk7CisgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmds
b2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0RXh0ZW5zaW9uKG5hbWUpKTsKIH0KIAogSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFtZXRlcihFeGVjU3Rh
dGUmIHN0YXRlKQogewotICAgIHJldHVybiBnZXRPYmplY3RQYXJhbWV0ZXIodGhpcywgc3RhdGUs
IGtCdWZmZXIpOworICAgIHJldHVybiBvYmplY3RQYXJhbWV0ZXIoKnRoaXMsIHN0YXRlLCAmV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVyUGFyYW1ldGVyKTsKIH0KIAogSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBh
cmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQpAQCAtMzM4LDEzICsyNTAsMTMgQEAgSlNWYWx1ZSBK
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlcihFeGVjU3RhdGUKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDMpCiAgICAg
ICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICB1bnNpZ25lZCB0YXJnZXQgPSBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICB1bnNpZ25lZCBhdHRhY2htZW50ID0gc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgdW5zaWduZWQgcG5hbWUgPSBzdGF0ZS51
bmNoZWNrZWRBcmd1bWVudCgyKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9i
amVjdCgpLCB3cmFwcGVkKCkuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKHRhcmdl
dCwgYXR0YWNobWVudCwgcG5hbWUpKTsKKyAgICBhdXRvIHRhcmdldCA9IHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOworICAgIGF1dG8gYXR0YWNobWVudCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDEpLnRvSW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OworICAgIGF1dG8gcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKS50b0ludDMyKCZz
dGF0ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4g
dG9KUyhzdGF0ZSwgKmdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0RnJhbWVidWZmZXJBdHRh
Y2htZW50UGFyYW1ldGVyKHRhcmdldCwgYXR0YWNobWVudCwgcG5hbWUpKTsKIH0KIAogSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFBhcmFtZXRlcihFeGVjU3RhdGUmIHN0
YXRlKQpAQCAtMzU1LDkgKzI2Nyw5IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICBpZiAoc3RhdGUuYXJndW1l
bnRDb3VudCgpICE9IDEpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNj
b3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICB1
bnNpZ25lZCBwbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRl
KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRQYXJhbWV0ZXIocG5h
bWUpKTsKKyAgICBhdXRvIHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkudG9JbnQz
Migmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0
dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFBhcmFtZXRlcihw
bmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJv
Z3JhbVBhcmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQpAQCAtMzY4LDE3ICsyODAsMTcgQEAgSlNW
YWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJhbWV0ZXIoRXhl
Y1N0YXRlJiBzdGF0ZSkKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDIpCiAgICAg
ICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0g
PSBKU1dlYkdMUHJvZ3JhbTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsK
KyAgICBhdXRvKiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvV3JhcHBlZChzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFwcm9ncmFtICYmICFzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgdW5zaWduZWQgcG5hbWUgPSBzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgSlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgp
LCB3cmFwcGVkKCkuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBwbmFtZSkpOworICAgIGF1
dG8gcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Cisg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0
ZSwgKmdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFt
LCBwbmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGdl
dE9iamVjdFBhcmFtZXRlcih0aGlzLCBzdGF0ZSwga1JlbmRlcmJ1ZmZlcik7CisgICAgcmV0dXJu
IG9iamVjdFBhcmFtZXRlcigqdGhpcywgc3RhdGUsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0U2hhZGVyUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC0z
OTMsOCArMzA1LDggQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNo
YWRlclBhcmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoJnN0YXRlLCBzY29wZSk7CiAgICAgV2ViR0xTaGFkZXIqIHNoYWRlciA9IEpTV2ViR0xT
aGFkZXI6OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgdW5zaWdu
ZWQgcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Ci0g
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gdG9K
Uygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0U2hhZGVyUGFyYW1ldGVyKHNo
YWRlciwgcG5hbWUpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAg
IHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRTaGFkZXJQ
YXJhbWV0ZXIoc2hhZGVyLCBwbmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucyhFeGVjU3RhdGUmIHN0YXRlKQpAQCAt
NDEwLDcgKzMyMiw3IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRT
dXBwb3J0ZWRFeHRlbnNpb25zKEV4ZWNTdGF0ZSYgc3RhdGUpCiAKIEpTVmFsdWUgSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsK
LSAgICByZXR1cm4gZ2V0T2JqZWN0UGFyYW1ldGVyKHRoaXMsIHN0YXRlLCBrVGV4dHVyZSk7Cisg
ICAgcmV0dXJuIG9iamVjdFBhcmFtZXRlcigqdGhpcywgc3RhdGUsICZXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybShFeGVjU3RhdGUmIHN0YXRlKQpAQCAtNDI3LDM2ICsz
MzksMzUgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0o
RXhlY1N0YXRlJiBzdGF0ZSkKICAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBK
U1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MSkpOwogICAgIGlmICghbG9jYXRpb24gJiYgIXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLmlz
VW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUs
IHNjb3BlKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVk
KCkuZ2V0VW5pZm9ybShwcm9ncmFtLCBsb2NhdGlvbikpOworICAgIHJldHVybiB0b0pTKHN0YXRl
LCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRVbmlmb3JtKHByb2dyYW0sIGxvY2F0aW9u
KSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhB
dHRyaWIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4gZ2V0T2JqZWN0UGFyYW1ldGVy
KHRoaXMsIHN0YXRlLCBrVmVydGV4QXR0cmliKTsKKyAgICByZXR1cm4gb2JqZWN0UGFyYW1ldGVy
KCp0aGlzLCBzdGF0ZSwgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0dHJp
Yik7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eT4KLWJv
b2wgdG9WZWN0b3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFZl
Y3RvcjxULCBpbmxpbmVDYXBhY2l0eT4mIHZlY3RvcikKK3RlbXBsYXRlPHR5cGVuYW1lIFZlY3Rv
clR5cGU+IGJvb2wgdG9OdW1iZXJWZWN0b3IoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1
ZSwgVmVjdG9yVHlwZSYgdmVjdG9yKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKCF2YWx1ZS5p
c09iamVjdCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgSlNDOjpKU09iamVj
dCogb2JqZWN0ID0gYXNPYmplY3QodmFsdWUpOwotICAgIGludDMyX3QgbGVuZ3RoID0gb2JqZWN0
LT5nZXQoJnN0YXRlLCBzdGF0ZS52bSgpLnByb3BlcnR5TmFtZXMtPmxlbmd0aCkudG9JbnQzMigm
c3RhdGUpOwotICAgIAorCisgICAgYXV0byYgb2JqZWN0ID0gKmFzT2JqZWN0KHZhbHVlKTsKKyAg
ICBpbnQzMl90IGxlbmd0aCA9IG9iamVjdC5nZXQoJnN0YXRlLCBzdGF0ZS52bSgpLnByb3BlcnR5
TmFtZXMtPmxlbmd0aCkudG9JbnQzMigmc3RhdGUpOworCiAgICAgaWYgKCF2ZWN0b3IudHJ5UmVz
ZXJ2ZUNhcGFjaXR5KGxlbmd0aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB2ZWN0b3Iu
cmVzaXplKGxlbmd0aCk7Ci0gICAgCisKICAgICBmb3IgKGludDMyX3QgaSA9IDA7IGkgPCBsZW5n
dGg7ICsraSkgewotICAgICAgICBKU0M6OkpTVmFsdWUgdiA9IG9iamVjdC0+Z2V0KCZzdGF0ZSwg
aSk7CisgICAgICAgIGF1dG8gdmFsdWUgPSBvYmplY3QuZ2V0KCZzdGF0ZSwgaSk7CisgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICAgICAgdmVjdG9yLnVuY2hl
Y2tlZEFwcGVuZCh2YWx1ZS50b051bWJlcigmc3RhdGUpKTsKICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZmFsc2UpOwotICAgICAgICB2ZWN0b3JbaV0gPSBzdGF0aWNfY2FzdDxU
Pih2LnRvTnVtYmVyKCZzdGF0ZSkpOwogICAgIH0KLSAgICAKKwogICAgIHJldHVybiB0cnVlOwog
fQogCkBAIC00NjksNyArMzgwLDcgQEAgZW51bSBEYXRhRnVuY3Rpb25NYXRyaXhUb0NhbGwgewog
ICAgIGZfdW5pZm9ybU1hdHJpeDJmdiwgZl91bmlmb3JtTWF0cml4M2Z2LCBmX3VuaWZvcm1NYXRy
aXg0ZnYKIH07CiAKLXN0YXRpYyBib29sIGZ1bmN0aW9uRm9yVW5pZm9ybShEYXRhRnVuY3Rpb25U
b0NhbGwgZikKK3N0YXRpYyBpbmxpbmUgYm9vbCBmdW5jdGlvbkZvclVuaWZvcm0oRGF0YUZ1bmN0
aW9uVG9DYWxsIGYpCiB7CiAgICAgc3dpdGNoIChmKSB7CiAgICAgY2FzZSBmX3VuaWZvcm0xdjoK
QEAgLTQ3NywxMiArMzg4LDEyIEBAIHN0YXRpYyBib29sIGZ1bmN0aW9uRm9yVW5pZm9ybShEYXRh
RnVuY3Rpb25Ub0NhbGwgZikKICAgICBjYXNlIGZfdW5pZm9ybTN2OgogICAgIGNhc2UgZl91bmlm
b3JtNHY6CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGRlZmF1bHQ6IGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwog
fQogCi1zdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxs
IGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29u
dGV4dCkKK3N0YXRpYyBKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYs
IEV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiB7
CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC00OTAsMjIgKzQwMSwxOSBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRh
dGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwg
VwogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgIT0gMikKICAgICAgICAgcmV0dXJuIHRo
cm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KCZzdGF0ZSkpOwogICAgIAotICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IDA7
Ci0gICAgbG9uZyBpbmRleCA9IC0xOwotICAgIAorICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBs
b2NhdGlvbiA9IG51bGxwdHI7CisgICAgR0x1aW50IGluZGV4ID0gLTE7CisKICAgICBpZiAoZnVu
Y3Rpb25Gb3JVbmlmb3JtKGYpKSB7CiAgICAgICAgIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1M
b2NhdGlvbjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICAgICAg
aWYgKCFsb2NhdGlvbiAmJiAhc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRP
ck51bGwoKSkKICAgICAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3Bl
KTsKLSAgICB9IGVsc2UKKyAgICB9IGVsc2UgewogICAgICAgICBpbmRleCA9IHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKLSAgICAKLSAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIAotICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+
IHdlYkdMQXJyYXkgPSB0b1Vuc2hhcmVkRmxvYXQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAg
IAotICAgIGlmICh3ZWJHTEFycmF5KSB7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisgICAgfQorCisgICAgaWYgKGF1dG8gd2ViR0xBcnJheSA9IHRvVW5zaGFyZWRG
bG9hdDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpKSB7CiAgICAgICAgIHN3aXRj
aCAoZikgewogICAgICAgICBjYXNlIGZfdW5pZm9ybTF2OgogICAgICAgICAgICAgY29udGV4dC51
bmlmb3JtMWZ2KGxvY2F0aW9uLCAqd2ViR0xBcnJheSk7CkBAIC01MzIsMTQgKzQ0MCwxMyBAQCBz
dGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpT
Qzo6RXhlY1N0YXRlJiBzdGF0ZSwgVwogICAgICAgICAgICAgY29udGV4dC52ZXJ0ZXhBdHRyaWI0
ZnYoaW5kZXgsICp3ZWJHTEFycmF5KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0g
ICAgICAgIAogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgCisKICAg
ICBWZWN0b3I8ZmxvYXQsIDY0PiBhcnJheTsKLSAgICBpZiAoIXRvVmVjdG9yKHN0YXRlLCBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgxKSwgYXJyYXkpKQorICAgIGlmICghdG9OdW1iZXJWZWN0b3Io
c3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLCBhcnJheSkpCiAgICAgICAgIHJldHVy
biB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICAKKwogICAgIHN3aXRjaCAoZikg
ewogICAgIGNhc2UgZl91bmlmb3JtMXY6CiAgICAgICAgIGNvbnRleHQudW5pZm9ybTFmdihsb2Nh
dGlvbiwgYXJyYXkuZGF0YSgpLCBhcnJheS5zaXplKCkpOwpAQCAtNTY2LDI1ICs0NzMsMjIgQEAg
c3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25mKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBK
U0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAgICAgICAgY29udGV4dC52ZXJ0ZXhBdHRyaWI0ZnYo
aW5kZXgsIGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQotICAgIAogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgSlNDOjpKU1Zh
bHVlIGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBz
dGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCkKK3N0YXRpYyBKU1ZhbHVl
IGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEV4ZWNTdGF0ZSYgc3RhdGUsIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUu
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBp
ZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDIpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2Vw
dGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUp
KTsKLSAgICAKLSAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5p
Zm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworCisg
ICAgYXV0byogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghbG9jYXRpb24gJiYgIXN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0
aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICAKLSAgICBSZWZQdHI8SW50MzJBcnJh
eT4gd2ViR0xBcnJheSA9IHRvVW5zaGFyZWRJbnQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpKTsKLSAgICAKLSAgICBpZiAod2ViR0xBcnJheSkgeworCisgICAgaWYgKGF1dG8gd2Vi
R0xBcnJheSA9IHRvVW5zaGFyZWRJbnQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEp
KSkgewogICAgICAgICBzd2l0Y2ggKGYpIHsKICAgICAgICAgY2FzZSBmX3VuaWZvcm0xdjoKICAg
ICAgICAgICAgIGNvbnRleHQudW5pZm9ybTFpdihsb2NhdGlvbiwgKndlYkdMQXJyYXkpOwpAQCAt
NjAxLDE1ICs1MDUsMTMgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25pKERhdGFG
dW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgCi0gICAgCisKICAgICBWZWN0b3I8aW50LCA2
ND4gYXJyYXk7Ci0gICAgaWYgKCF0b1ZlY3RvcihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMSksIGFycmF5KSkKKyAgICBpZiAoIXRvTnVtYmVyVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgxKSwgYXJyYXkpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3Io
JnN0YXRlLCBzY29wZSk7Ci0gICAgCisKICAgICBzd2l0Y2ggKGYpIHsKICAgICBjYXNlIGZfdW5p
Zm9ybTF2OgogICAgICAgICBjb250ZXh0LnVuaWZvcm0xaXYobG9jYXRpb24sIGFycmF5LmRhdGEo
KSwgYXJyYXkuc2l6ZSgpKTsKQEAgLTYyNiwyOCArNTI4LDI1IEBAIHN0YXRpYyBKU0M6OkpTVmFs
dWUgZGF0YUZ1bmN0aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0
YXRlLCBXCiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIAogICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlv
bk1hdHJpeChEYXRhRnVuY3Rpb25NYXRyaXhUb0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRl
LCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQorc3RhdGljIEpTVmFsdWUgZGF0
YUZ1bmN0aW9uTWF0cml4KERhdGFGdW5jdGlvbk1hdHJpeFRvQ2FsbCBmLCBFeGVjU3RhdGUmIHN0
YXRlLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQogewogICAgIFZNJiB2bSA9
IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
CiAgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSAhPSAzKQogICAgICAgICByZXR1cm4gdGhy
b3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
JnN0YXRlKSk7Ci0gICAgCi0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gSlNX
ZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDAp
KTsKKworICAgIGF1dG8qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFw
cGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIWxvY2F0aW9uICYmICFz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgCisKICAgICBib29sIHRy
YW5zcG9zZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvQm9vbGVhbigmc3RhdGUpOwot
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgCi0gICAgUmVm
UHRyPEZsb2F0MzJBcnJheT4gd2ViR0xBcnJheSA9IHRvVW5zaGFyZWRGbG9hdDMyQXJyYXkoc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMikpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHsgfSk7CiAKLSAgICBpZiAod2ViR0xBcnJheSkgeworICAgIGlmIChhdXRvIHdlYkdMQXJyYXkg
PSB0b1Vuc2hhcmVkRmxvYXQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKSkgewog
ICAgICAgICBzd2l0Y2ggKGYpIHsKICAgICAgICAgY2FzZSBmX3VuaWZvcm1NYXRyaXgyZnY6CiAg
ICAgICAgICAgICBjb250ZXh0LnVuaWZvcm1NYXRyaXgyZnYobG9jYXRpb24sIHRyYW5zcG9zZSwg
KndlYkdMQXJyYXkpOwpAQCAtNjU5LDE0ICs1NTgsMTMgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBk
YXRhRnVuY3Rpb25NYXRyaXgoRGF0YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYsIEpTQzo6RXhlY1N0
YXQKICAgICAgICAgICAgIGNvbnRleHQudW5pZm9ybU1hdHJpeDRmdihsb2NhdGlvbiwgdHJhbnNw
b3NlLCAqd2ViR0xBcnJheSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotCiAgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KLSAgICAKKwogICAgIFZlY3RvcjxmbG9h
dCwgNjQ+IGFycmF5OwotICAgIGlmICghdG9WZWN0b3Ioc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDIpLCBhcnJheSkpCisgICAgaWYgKCF0b051bWJlclZlY3RvcihzdGF0ZSwgc3RhdGUu
dW5jaGVja2VkQXJndW1lbnQoMiksIGFycmF5KSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVy
cm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgIAorCiAgICAgc3dpdGNoIChmKSB7CiAgICAgY2FzZSBm
X3VuaWZvcm1NYXRyaXgyZnY6CiAgICAgICAgIGNvbnRleHQudW5pZm9ybU1hdHJpeDJmdihsb2Nh
dGlvbiwgdHJhbnNwb3NlLCBhcnJheS5kYXRhKCksIGFycmF5LnNpemUoKSk7CkBAIC02NzgsODEg
KzU3Niw4MCBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbk1hdHJpeChEYXRhRnVu
Y3Rpb25NYXRyaXhUb0NhbGwgZiwgSlNDOjpFeGVjU3RhdAogICAgICAgICBjb250ZXh0LnVuaWZv
cm1NYXRyaXg0ZnYobG9jYXRpb24sIHRyYW5zcG9zZSwgYXJyYXkuZGF0YSgpLCBhcnJheS5zaXpl
KCkpOwogICAgICAgICBicmVhazsKICAgICB9Ci0KICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
IH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFm
dihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6dW5pZm9ybTFmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVu
Y3Rpb25mKGZfdW5pZm9ybTF2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFpdihKU0M6OkV4ZWNTdGF0ZSYg
c3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFpdihF
eGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5pZm9ybTF2
LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dW5pZm9ybTJmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTJmdihFeGVjU3RhdGUmIHN0YXRlKQog
ewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdW5pZm9ybTJ2LCBzdGF0ZSwgd3JhcHBlZCgp
KTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9y
bTJpdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6dW5pZm9ybTJpdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRh
RnVuY3Rpb25pKGZfdW5pZm9ybTJ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTNmdihKU0M6OkV4ZWNTdGF0
ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTNm
dihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdW5pZm9y
bTN2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6dW5pZm9ybTNpdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTNpdihFeGVjU3RhdGUmIHN0YXRl
KQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5pZm9ybTN2LCBzdGF0ZSwgd3JhcHBl
ZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5p
Zm9ybTRmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dW5pZm9ybTRmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBk
YXRhRnVuY3Rpb25mKGZfdW5pZm9ybTR2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTRpdihKU0M6OkV4ZWNT
dGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9y
bTRpdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5p
Zm9ybTR2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDJmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUp
CitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDJmdihF
eGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25NYXRyaXgoZl91bmlm
b3JtTWF0cml4MmZ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDNmdihKU0M6OkV4ZWNTdGF0ZSYg
c3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJp
eDNmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25NYXRyaXgo
Zl91bmlmb3JtTWF0cml4M2Z2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDRmdihKU0M6OkV4ZWNT
dGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9y
bU1hdHJpeDRmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25N
YXRyaXgoZl91bmlmb3JtTWF0cml4NGZ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMWZ2KEpTQzo6
RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2
ZXJ0ZXhBdHRyaWIxZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0
aW9uZihmX3ZlcnRleEF0dHJpYjF2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMmZ2KEpTQzo6RXhl
Y1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0
ZXhBdHRyaWIyZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9u
ZihmX3ZlcnRleEF0dHJpYjJ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliM2Z2KEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhB
dHRyaWIzZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihm
X3ZlcnRleEF0dHJpYjN2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliNGZ2KEpTQzo6RXhlY1N0YXRl
JiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRy
aWI0ZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3Zl
cnRleEF0dHJpYjR2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IDlmYTI5NDA3OGJiYWNh
M2RjMjc2MTA3MGE0OGIyOGI1YjcyY2M2NGQuLmUxMmEyNDBkN2U2ODdiOWNhNjk2NDBkODJkNmM0
MzRmZTc4ZDZhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
TW9kdWxlTG9hZGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0xMzUsNiArMTM1LDEwIEBAIEpTQzo6SlNJbnRlcm5hbFBy
b21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBq
c0dsb2JhCiAKIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0
Y2goSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlLCBK
U0M6OkpTVmFsdWUgaW5pdGlhdG9yKQogeworICAgIC8vIEZJWE1FOiBXaGF0IGd1YXJhbnRlZXMg
dGhlc2UgYXJlIHRydWU/IFdoeSBkb24ndCB3ZSBuZWVkIHRvIGNoZWNrPworICAgIEFTU0VSVChK
U0M6OmpzRHluYW1pY0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKSk7CisgICAgQVNTRVJUKGlz
U2NyaXB0RWxlbWVudChKU0M6OmpzRHluYW1pY0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKS0+
d3JhcHBlZCgpKSk7CisKICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqSlNDOjpqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihqc0dsb2JhbE9iamVjdCk7CiAgICAgYXV0byYganNQcm9taXNlID0g
KkpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsICZnbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gZGVmZXJyZWQgPSBEZWZlcnJlZFByb21pc2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIGpzUHJvbWlzZSk7CkBAIC0xNTYsMTcgKzE2MCwxMiBAQCBKU0M6OkpTSW50ZXJuYWxQ
cm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpz
R2xvYmFsTwogICAgICAgICByZXR1cm4ganNQcm9taXNlLnByb21pc2UoKTsKICAgICB9CiAKLSAg
ICBBU1NFUlRfV0lUSF9NRVNTQUdFKEpTQzo6anNEeW5hbWljQ2FzdDxKU0VsZW1lbnQqPihpbml0
aWF0b3IpLCAiSW5pdGlhdG9yIHNob3VsZCBiZSBhbiBKU0VsZW1lbnQiKTsKLSAgICBhdXRvKiBz
Y3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmSlNDOjpqc0Nhc3Q8SlNF
bGVtZW50Kj4oaW5pdGlhdG9yKS0+d3JhcHBlZCgpKTsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KHNjcmlwdEVsZW1lbnQsICJJbml0aWF0b3Igc2hvdWxkIGJlIFNjcmlwdEVsZW1lbnQuIik7Ci0K
ICAgICBpZiAoYXV0byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgYXV0
byBsb2FkZXIgPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJy
ZWQuZ2V0KCkpOwogICAgICAgICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOwotICAg
ICAgICBpZiAoIWxvYWRlci0+bG9hZCgqc2NyaXB0RWxlbWVudCwgY29tcGxldGVkVVJMKSkgewor
ICAgICAgICBpZiAoIWxvYWRlci0+bG9hZChkb3duY2FzdFNjcmlwdEVsZW1lbnQoSlNDOjpqc0Nh
c3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKS0+d3JhcHBlZCgpKSwgY29tcGxldGVkVVJMKSkgewog
ICAgICAgICAgICAgbG9hZGVyLT5jbGVhckNsaWVudCgpOwogICAgICAgICAgICAgbV9sb2FkZXJz
LnJlbW92ZShXVEZNb3ZlKGxvYWRlcikpOwotCiAgICAgICAgICAgICBkZWZlcnJlZC0+cmVqZWN0
KGZyYW1lLT5zY3JpcHQoKS5tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgp
KTsKICAgICAgICAgICAgIHJldHVybiBqc1Byb21pc2UucHJvbWlzZSgpOwogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDRjNDNiZGQxZDdlNDgyNzYzOWVhYTNmNDU3YTg1NGE1NzI1
NmUwYTAuLjk3MmJlYjFlZmNiMmMzNzgyOTIwNjdlZTc2ZDY5YjIxZTBjODg2NWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC0zLDcgKzMsNyBAQAogICogICAgICAgICAgIChDKSAxOTk5IEFudHRp
IEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERpcmsg
TXVlbGxlciAobXVlbGxlckBrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQ
cm9za3VyeWFrb3YgKGFwQHdlYmtpdC5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCwg
MjAxMi0yMDEzLCAyMDE1LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC02
Niw5ICs2Niw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRXhlY1N0YXRlOwotI2lmIEVO
QUJMRShXRUJfUkVQTEFZKQogY2xhc3MgSW5wdXRDdXJzb3I7Ci0jZW5kaWYKIH0KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtOTksOCArOTcsOCBAQCBjbGFzcyBEb2N1bWVudFBhcnNlcjsKIGNs
YXNzIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbDsKIGNsYXNzIERvY3VtZW50VHlwZTsKIGNsYXNz
IEV4dGVuc2lvblN0eWxlU2hlZXRzOwotY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgRmxvYXRRdWFk
OworY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgRm9ybUNvbnRyb2xsZXI7CiBjbGFzcyBGcmFtZTsK
IGNsYXNzIEZyYW1lVmlldzsKQEAgLTEyMSwxMSArMTE5LDEwIEBAIGNsYXNzIEhUTUxTY3JpcHRF
bGVtZW50OwogY2xhc3MgSGl0VGVzdFJlcXVlc3Q7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xh
c3MgSW50UG9pbnQ7CitjbGFzcyBKU05vZGU7CiBjbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExh
eW91dFJlY3Q7CiBjbGFzcyBMaXZlTm9kZUxpc3Q7Ci1jbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXI7
Ci1jbGFzcyBKU05vZGU7CiBjbGFzcyBMb2NhbGU7CiBjbGFzcyBMb2NhdGlvbjsKIGNsYXNzIE1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lcjsKQEAgLTEzMyw3ICsxMzAsNiBAQCBjbGFzcyBNZWRpYVBsYXli
YWNrVGFyZ2V0OwogY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldENsaWVudDsKIGNsYXNzIE1lZGlh
UXVlcnlMaXN0OwogY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXI7Ci1jbGFzcyBTY3JpcHRNb2R1bGVM
b2FkZXI7CiBjbGFzcyBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3MgTmFtZWRG
bG93Q29sbGVjdGlvbjsKIGNsYXNzIE5vZGVGaWx0ZXI7CkBAIC0xNDMsMjMgKzEzOSwyNCBAQCBj
bGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiBjbGFzcyBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb247CiBj
bGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgUmFuZ2U7Ci1jbGFzcyBSZW5kZXJWaWV3OwogY2xh
c3MgUmVuZGVyRnVsbFNjcmVlbjsKLWNsYXNzIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlcjsKK2Ns
YXNzIFJlbmRlclZpZXc7CitjbGFzcyBTVkdEb2N1bWVudEV4dGVuc2lvbnM7CitjbGFzcyBTVkdT
VkdFbGVtZW50OwogY2xhc3MgU2NyaXB0RWxlbWVudERhdGE7CitjbGFzcyBTY3JpcHRNb2R1bGVM
b2FkZXI7CiBjbGFzcyBTY3JpcHRSdW5uZXI7CitjbGFzcyBTY3JpcHRhYmxlRG9jdW1lbnRQYXJz
ZXI7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFNlZ21lbnRlZFN0cmluZzsKIGNsYXNz
IFNlbGVjdG9yUXVlcnk7CiBjbGFzcyBTZWxlY3RvclF1ZXJ5Q2FjaGU7CiBjbGFzcyBTZXJpYWxp
emVkU2NyaXB0VmFsdWU7Ci1jbGFzcyBTZWdtZW50ZWRTdHJpbmc7CiBjbGFzcyBTZXR0aW5nczsK
IGNsYXNzIFN0eWxlUmVzb2x2ZXI7CiBjbGFzcyBTdHlsZVNoZWV0OwogY2xhc3MgU3R5bGVTaGVl
dENvbnRlbnRzOwogY2xhc3MgU3R5bGVTaGVldExpc3Q7Ci1jbGFzcyBTVkdEb2N1bWVudEV4dGVu
c2lvbnM7Ci1jbGFzcyBTVkdTVkdFbGVtZW50OwogY2xhc3MgVGV4dDsKIGNsYXNzIFRleHRSZXNv
dXJjZURlY29kZXI7CiBjbGFzcyBUcmVlV2Fsa2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1BlbmRpbmdTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3Jp
cHQuY3BwCmluZGV4IDJiZTBlMmViOTAzMmRkMzg5YWI1NzRkNDgwODYwNGYyZTZiZmI1NDkuLjJm
OTg2ODIyYWYzYWU3MWE0MTA1N2IxMDQ3ZDVlMmY1ZGI5MjBkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UGVuZGluZ1NjcmlwdC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yNiwzMCArMjcsMzAgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAKLSNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiUGVuZGluZ1NjcmlwdENsaWVudC5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8UGVuZGluZ1NjcmlwdD4gUGVuZGluZ1Njcmlw
dDo6Y3JlYXRlKEVsZW1lbnQmIGVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlw
dCkKK1JlZjxQZW5kaW5nU2NyaXB0PiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoU2NyaXB0RWxlbWVu
dCYgZWxlbWVudCwgTG9hZGFibGVTY3JpcHQmIGxvYWRhYmxlU2NyaXB0KQogewotICAgIFJlZjxQ
ZW5kaW5nU2NyaXB0PiBwZW5kaW5nU2NyaXB0ID0gYWRvcHRSZWYoKm5ldyBQZW5kaW5nU2NyaXB0
KGVsZW1lbnQsIGxvYWRhYmxlU2NyaXB0KSk7CisgICAgYXV0byBwZW5kaW5nU2NyaXB0ID0gYWRv
cHRSZWYoKm5ldyBQZW5kaW5nU2NyaXB0KGVsZW1lbnQsIGxvYWRhYmxlU2NyaXB0KSk7CiAgICAg
bG9hZGFibGVTY3JpcHQuYWRkQ2xpZW50KHBlbmRpbmdTY3JpcHQuZ2V0KCkpOwogICAgIHJldHVy
biBwZW5kaW5nU2NyaXB0OwogfQogCi1SZWY8UGVuZGluZ1NjcmlwdD4gUGVuZGluZ1NjcmlwdDo6
Y3JlYXRlKEVsZW1lbnQmIGVsZW1lbnQsIFRleHRQb3NpdGlvbiBzY3JpcHRTdGFydFBvc2l0aW9u
KQorUmVmPFBlbmRpbmdTY3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShTY3JpcHRFbGVtZW50
JiBlbGVtZW50LCBUZXh0UG9zaXRpb24gc2NyaXB0U3RhcnRQb3NpdGlvbikKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBQZW5kaW5nU2NyaXB0KGVsZW1lbnQsIHNjcmlwdFN0YXJ0UG9zaXRp
b24pKTsKIH0KIAotUGVuZGluZ1NjcmlwdDo6UGVuZGluZ1NjcmlwdChFbGVtZW50JiBlbGVtZW50
LCBUZXh0UG9zaXRpb24gc3RhcnRpbmdQb3NpdGlvbikKK1BlbmRpbmdTY3JpcHQ6OlBlbmRpbmdT
Y3JpcHQoU2NyaXB0RWxlbWVudCYgZWxlbWVudCwgVGV4dFBvc2l0aW9uIHN0YXJ0aW5nUG9zaXRp
b24pCiAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKICAgICAsIG1fc3RhcnRpbmdQb3NpdGlvbihz
dGFydGluZ1Bvc2l0aW9uKQogewogfQogCi1QZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KEVs
ZW1lbnQmIGVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlwdCkKK1BlbmRpbmdT
Y3JpcHQ6OlBlbmRpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCYgZWxlbWVudCwgTG9hZGFibGVTY3Jp
cHQmIGxvYWRhYmxlU2NyaXB0KQogICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX2xv
YWRhYmxlU2NyaXB0KCZsb2FkYWJsZVNjcmlwdCkKIHsKQEAgLTYxLDExICs2Miw2IEBAIFBlbmRp
bmdTY3JpcHQ6On5QZW5kaW5nU2NyaXB0KCkKICAgICAgICAgbV9sb2FkYWJsZVNjcmlwdC0+cmVt
b3ZlQ2xpZW50KCp0aGlzKTsKIH0KIAotTG9hZGFibGVTY3JpcHQqIFBlbmRpbmdTY3JpcHQ6Omxv
YWRhYmxlU2NyaXB0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9sb2FkYWJsZVNjcmlwdC5nZXQo
KTsKLX0KLQogdm9pZCBQZW5kaW5nU2NyaXB0Ojpub3RpZnlDbGllbnRGaW5pc2hlZCgpCiB7CiAg
ICAgUmVmPFBlbmRpbmdTY3JpcHQ+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwpAQCAtODgsMTAgKzg0
LDEwIEBAIGJvb2wgUGVuZGluZ1NjcmlwdDo6ZXJyb3IoKSBjb25zdAogICAgIHJldHVybiBtX2xv
YWRhYmxlU2NyaXB0ICYmIG1fbG9hZGFibGVTY3JpcHQtPmVycm9yKCk7CiB9CiAKLXZvaWQgUGVu
ZGluZ1NjcmlwdDo6c2V0Q2xpZW50KFBlbmRpbmdTY3JpcHRDbGllbnQqIGNsaWVudCkKK3ZvaWQg
UGVuZGluZ1NjcmlwdDo6c2V0Q2xpZW50KFBlbmRpbmdTY3JpcHRDbGllbnQmIGNsaWVudCkKIHsK
ICAgICBBU1NFUlQoIW1fY2xpZW50KTsKLSAgICBtX2NsaWVudCA9IGNsaWVudDsKKyAgICBtX2Ns
aWVudCA9ICZjbGllbnQ7CiAgICAgaWYgKGlzTG9hZGVkKCkpCiAgICAgICAgIG5vdGlmeUNsaWVu
dEZpbmlzaGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1Nj
cmlwdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaAppbmRleCA5OTBmMjUw
ODNiMDFiMDI3YzRhYzAxNDE3ZjhmNDkxNmE5ZThlNjY2Li5mYzc1OGQwN2RkNjBkZWMzMThiYjg4
ZGFkMDc4N2Y4NDg4MmY4MjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGlu
Z1NjcmlwdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKQEAgLTM0
LDE1ICszNCwxNSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRTY3JpcHQ7
Ci1jbGFzcyBFbGVtZW50OwogY2xhc3MgUGVuZGluZ1NjcmlwdENsaWVudDsKK2NsYXNzIFNjcmlw
dEVsZW1lbnQ7CiAKIC8vIEEgY29udGFpbmVyIGZvciBzY3JpcHRzIHdoaWNoIG1heSBiZSBsb2Fk
ZWQgYW5kIGV4ZWN1dGVkLgogLy8gVGhpcyBjYW4gaG9sZCBMb2FkYWJsZVNjcmlwdCBhbmQgbm9u
IGV4dGVybmFsIGlubGluZSBzY3JpcHQuCiBjbGFzcyBQZW5kaW5nU2NyaXB0IGZpbmFsIDogcHVi
bGljIFJlZkNvdW50ZWQ8UGVuZGluZ1NjcmlwdD4sIHB1YmxpYyBMb2FkYWJsZVNjcmlwdENsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0PiBjcmVhdGUoRWxlbWVu
dCYsIExvYWRhYmxlU2NyaXB0Jik7Ci0gICAgc3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0PiBjcmVh
dGUoRWxlbWVudCYsIFRleHRQb3NpdGlvbiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICBzdGF0
aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IGNyZWF0ZShTY3JpcHRFbGVtZW50JiwgTG9hZGFibGVTY3Jp
cHQmKTsKKyAgICBzdGF0aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IGNyZWF0ZShTY3JpcHRFbGVtZW50
JiwgVGV4dFBvc2l0aW9uIHNjcmlwdFN0YXJ0UG9zaXRpb24pOwogCiAgICAgdmlydHVhbCB+UGVu
ZGluZ1NjcmlwdCgpOwogCkBAIC01MSw4ICs1MSw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgd2F0
Y2hpbmdGb3JMb2FkKCkgY29uc3QgeyByZXR1cm4gbmVlZHNMb2FkaW5nKCkgJiYgbV9jbGllbnQ7
IH0KIAotICAgIEVsZW1lbnQmIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0K
LSAgICBjb25zdCBFbGVtZW50JiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50Lmdl
dCgpOyB9CisgICAgU2NyaXB0RWxlbWVudCYgZWxlbWVudCgpIHsgcmV0dXJuIG1fZWxlbWVudC5n
ZXQoKTsgfQorICAgIGNvbnN0IFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQoKSBjb25zdCB7IHJldHVy
biBtX2VsZW1lbnQuZ2V0KCk7IH0KIAogICAgIExvYWRhYmxlU2NyaXB0KiBsb2FkYWJsZVNjcmlw
dCgpIGNvbnN0OwogICAgIGJvb2wgbmVlZHNMb2FkaW5nKCkgY29uc3QgeyByZXR1cm4gbG9hZGFi
bGVTY3JpcHQoKTsgfQpAQCAtNjIsMTkgKzYyLDI0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbm90
aWZ5RmluaXNoZWQoTG9hZGFibGVTY3JpcHQmKSBvdmVycmlkZTsKIAotICAgIHZvaWQgc2V0Q2xp
ZW50KFBlbmRpbmdTY3JpcHRDbGllbnQqKTsKKyAgICB2b2lkIHNldENsaWVudChQZW5kaW5nU2Ny
aXB0Q2xpZW50Jik7CiAgICAgdm9pZCBjbGVhckNsaWVudCgpOwogCiBwcml2YXRlOgotICAgIFBl
bmRpbmdTY3JpcHQoRWxlbWVudCYsIExvYWRhYmxlU2NyaXB0Jik7Ci0gICAgUGVuZGluZ1Njcmlw
dChFbGVtZW50JiwgVGV4dFBvc2l0aW9uIHN0YXJ0aW5nUG9zaXRpb24pOworICAgIFBlbmRpbmdT
Y3JpcHQoU2NyaXB0RWxlbWVudCYsIExvYWRhYmxlU2NyaXB0Jik7CisgICAgUGVuZGluZ1Njcmlw
dChTY3JpcHRFbGVtZW50JiwgVGV4dFBvc2l0aW9uIHN0YXJ0aW5nUG9zaXRpb24pOwogCiAgICAg
dm9pZCBub3RpZnlDbGllbnRGaW5pc2hlZCgpOwogCi0gICAgUmVmPEVsZW1lbnQ+IG1fZWxlbWVu
dDsKKyAgICBSZWY8U2NyaXB0RWxlbWVudD4gbV9lbGVtZW50OwogICAgIFRleHRQb3NpdGlvbiBt
X3N0YXJ0aW5nUG9zaXRpb247IC8vIE9ubHkgdXNlZCBmb3IgaW5saW5lIHNjcmlwdCB0YWdzLgog
ICAgIFJlZlB0cjxMb2FkYWJsZVNjcmlwdD4gbV9sb2FkYWJsZVNjcmlwdDsKICAgICBQZW5kaW5n
U2NyaXB0Q2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKIH07CiAKK2lubGluZSBMb2FkYWJs
ZVNjcmlwdCogUGVuZGluZ1NjcmlwdDo6bG9hZGFibGVTY3JpcHQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2xvYWRhYmxlU2NyaXB0LmdldCgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAKaW5kZXggNjFmMjQ4MmY1ODcxZDhhZDBiNzUyNmY2ZjQ0NWJjZGI3NzRmYzQ4
Zi4uZjY4NjM3YWM0ZDk1Y2U4OGExZmIwNTUzMWRmZGFmZjUwMDE0MDBmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykg
MTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFu
dHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERp
cmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4
IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAg
LTI2MywxMSArMjYzLDExIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25z
dCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAgfSBlbHNlIGlm
ICgoaXNDbGFzc2ljRXh0ZXJuYWxTY3JpcHQgfHwgc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpN
b2R1bGUpICYmICFhc3luY0F0dHJpYnV0ZVZhbHVlKCkgJiYgIW1fZm9yY2VBc3luYykgewogICAg
ICAgICBtX3dpbGxFeGVjdXRlSW5PcmRlciA9IHRydWU7CiAgICAgICAgIEFTU0VSVChtX2xvYWRh
YmxlU2NyaXB0KTsKLSAgICAgICAgZG9jdW1lbnQuc2NyaXB0UnVubmVyKCktPnF1ZXVlU2NyaXB0
Rm9yRXhlY3V0aW9uKHRoaXMsICptX2xvYWRhYmxlU2NyaXB0LCBTY3JpcHRSdW5uZXI6OklOX09S
REVSX0VYRUNVVElPTik7CisgICAgICAgIGRvY3VtZW50LnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNj
cmlwdEZvckV4ZWN1dGlvbigqdGhpcywgKm1fbG9hZGFibGVTY3JpcHQsIFNjcmlwdFJ1bm5lcjo6
SU5fT1JERVJfRVhFQ1VUSU9OKTsKICAgICB9IGVsc2UgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgp
IHx8IHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6TW9kdWxlKSB7CiAgICAgICAgIEFTU0VSVCht
X2xvYWRhYmxlU2NyaXB0KTsKICAgICAgICAgQVNTRVJUKGFzeW5jQXR0cmlidXRlVmFsdWUoKSB8
fCBtX2ZvcmNlQXN5bmMpOwotICAgICAgICBkb2N1bWVudC5zY3JpcHRSdW5uZXIoKS0+cXVldWVT
Y3JpcHRGb3JFeGVjdXRpb24odGhpcywgKm1fbG9hZGFibGVTY3JpcHQsIFNjcmlwdFJ1bm5lcjo6
QVNZTkNfRVhFQ1VUSU9OKTsKKyAgICAgICAgZG9jdW1lbnQuc2NyaXB0UnVubmVyKCktPnF1ZXVl
U2NyaXB0Rm9yRXhlY3V0aW9uKCp0aGlzLCAqbV9sb2FkYWJsZVNjcmlwdCwgU2NyaXB0UnVubmVy
OjpBU1lOQ19FWEVDVVRJT04pOwogICAgIH0gZWxzZSBpZiAoIWhhc1NvdXJjZUF0dHJpYnV0ZSgp
ICYmIG1fcGFyc2VySW5zZXJ0ZWQgJiYgIWRvY3VtZW50LmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgp
KSB7CiAgICAgICAgIEFTU0VSVChzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6OkNsYXNzaWMpOwog
ICAgICAgICBtX3dpbGxCZVBhcnNlckV4ZWN1dGVkID0gdHJ1ZTsKQEAgLTQ4NywxNSArNDg3LDI2
IEBAIFN0cmluZyBTY3JpcHRFbGVtZW50OjpzY3JpcHRDb250ZW50KCkgY29uc3QKICAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CiB9CiAKLVNjcmlwdEVsZW1lbnQqIHRvU2NyaXB0RWxlbWVu
dElmUG9zc2libGUoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgU2NyaXB0RWxlbWVudDo6cmVmKCkK
IHsKLSAgICBpZiAoaXM8SFRNTFNjcmlwdEVsZW1lbnQ+KCplbGVtZW50KSkKLSAgICAgICAgcmV0
dXJuIGRvd25jYXN0PEhUTUxTY3JpcHRFbGVtZW50PihlbGVtZW50KTsKKyAgICBtX2VsZW1lbnQu
cmVmKCk7Cit9CiAKLSAgICBpZiAoaXM8U1ZHU2NyaXB0RWxlbWVudD4oKmVsZW1lbnQpKQotICAg
ICAgICByZXR1cm4gZG93bmNhc3Q8U1ZHU2NyaXB0RWxlbWVudD4oZWxlbWVudCk7Cit2b2lkIFNj
cmlwdEVsZW1lbnQ6OmRlcmVmKCkKK3sKKyAgICBtX2VsZW1lbnQuZGVyZWYoKTsKK30KIAotICAg
IHJldHVybiBudWxscHRyOworYm9vbCBpc1NjcmlwdEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkK
K3sKKyAgICByZXR1cm4gaXM8SFRNTFNjcmlwdEVsZW1lbnQ+KGVsZW1lbnQpIHx8IGlzPFNWR1Nj
cmlwdEVsZW1lbnQ+KGVsZW1lbnQpOworfQorCitTY3JpcHRFbGVtZW50JiBkb3duY2FzdFNjcmlw
dEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAoaXM8SFRNTFNjcmlwdEVsZW1l
bnQ+KGVsZW1lbnQpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTFNjcmlwdEVsZW1lbnQ+
KGVsZW1lbnQpOworICAgIHJldHVybiBkb3duY2FzdDxTVkdTY3JpcHRFbGVtZW50PihlbGVtZW50
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKaW5kZXggNDA3OWMxNzA5MzIx
Nzg0MDg3ZTllM2Y3MzIzNDZjNTU4MDBmN2IxNC4uNWYxODFkZjJlM2IwZTg4OGVmMzk0N2JiY2Rj
MThkOTMwN2RkZWIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1l
cm1hbm5Aa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsMTkgKzI2LDE3IEBA
CiAjaW5jbHVkZSAiTG9hZGFibGVTY3JpcHQuaCIKICNpbmNsdWRlICJMb2FkYWJsZVNjcmlwdENs
aWVudC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8
d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0OwogY2xh
c3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ29udGFpbmVyTm9kZTsKIGNsYXNzIEVsZW1lbnQ7CiBj
bGFzcyBQZW5kaW5nU2NyaXB0OwotY2xhc3MgU2NyaXB0RWxlbWVudDsKIGNsYXNzIFNjcmlwdFNv
dXJjZUNvZGU7Ci1jbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHQ7CitjbGFzcyBVUkw7CiAKIGNsYXNz
IFNjcmlwdEVsZW1lbnQgewogcHVibGljOgpAQCAtNzMsNiArNzIsOSBAQCBwdWJsaWM6CiAgICAg
ZW51bSBjbGFzcyBTY3JpcHRUeXBlIHsgQ2xhc3NpYywgTW9kdWxlIH07CiAgICAgU2NyaXB0VHlw
ZSBzY3JpcHRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9pc01vZHVsZVNjcmlwdCA/IFNjcmlwdFR5
cGU6Ok1vZHVsZSA6IFNjcmlwdFR5cGU6OkNsYXNzaWM7IH0KIAorICAgIHZvaWQgcmVmKCk7Cisg
ICAgdm9pZCBkZXJlZigpOworCiBwcm90ZWN0ZWQ6CiAgICAgU2NyaXB0RWxlbWVudChFbGVtZW50
JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIsIGJvb2wgaXNFdmFsdWF0ZWQpOwogCkBAIC0xMjcsNyAr
MTI5LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TG9hZGFibGVTY3JpcHQ+IG1fbG9hZGFibGVT
Y3JpcHQ7CiB9OwogCi0vLyBGSVhNRTogcmVwbGFjZSB3aXRoIGRvd25jYXN0PFNjcmlwdEVsZW1l
bnQ+LgotU2NyaXB0RWxlbWVudCogdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShFbGVtZW50Kik7
CisvLyBGSVhNRTogcmVwbGFjZSB3aXRoIGlzL2Rvd25jYXN0PFNjcmlwdEVsZW1lbnQ+LgorYm9v
bCBpc1NjcmlwdEVsZW1lbnQoRWxlbWVudCYpOworU2NyaXB0RWxlbWVudCYgZG93bmNhc3RTY3Jp
cHRFbGVtZW50KEVsZW1lbnQmKTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdFJ1bm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcApp
bmRleCA3MDk4OWViNDBjMDQ1YWRlNzc0YWU1N2QwOWE0MDQ4YjU5ZTM4ODA0Li4wNDFlNmQxMzMx
ZjQ0MjNjMTVjOTg3NjlmOWEyMjc0Y2VkMGFkMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0UnVubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVu
bmVyLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
LCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTU2LDI2ICs1NywyMiBAQCBTY3JpcHRSdW5uZXI6On5TY3JpcHRSdW5uZXIoKQog
ICAgIH0KIH0KIAotdm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNj
cmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlw
dCwgRXhlY3V0aW9uVHlwZSBleGVjdXRpb25UeXBlKQordm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVl
U2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQsIExvYWRhYmxl
U2NyaXB0JiBsb2FkYWJsZVNjcmlwdCwgRXhlY3V0aW9uVHlwZSBleGVjdXRpb25UeXBlKQogewot
ICAgIEFTU0VSVChzY3JpcHRFbGVtZW50KTsKLQotICAgIEVsZW1lbnQmIGVsZW1lbnQgPSBzY3Jp
cHRFbGVtZW50LT5lbGVtZW50KCk7Ci0gICAgQVNTRVJUKGVsZW1lbnQuaW5Eb2N1bWVudCgpKTsK
KyAgICBBU1NFUlQoc2NyaXB0RWxlbWVudC5lbGVtZW50KCkuaW5Eb2N1bWVudCgpKTsKIAogICAg
IG1fZG9jdW1lbnQuaW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogCi0gICAgUmVmPFBl
bmRpbmdTY3JpcHQ+IHBlbmRpbmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoZWxlbWVu
dCwgbG9hZGFibGVTY3JpcHQpOworICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IFBlbmRpbmdTY3Jp
cHQ6OmNyZWF0ZShzY3JpcHRFbGVtZW50LCBsb2FkYWJsZVNjcmlwdCk7CiAgICAgc3dpdGNoIChl
eGVjdXRpb25UeXBlKSB7CiAgICAgY2FzZSBBU1lOQ19FWEVDVVRJT046CiAgICAgICAgIG1fcGVu
ZGluZ0FzeW5jU2NyaXB0cy5hZGQocGVuZGluZ1NjcmlwdC5jb3B5UmVmKCkpOwogICAgICAgICBi
cmVhazsKLQogICAgIGNhc2UgSU5fT1JERVJfRVhFQ1VUSU9OOgogICAgICAgICBtX3NjcmlwdHNU
b0V4ZWN1dGVJbk9yZGVyLmFwcGVuZChwZW5kaW5nU2NyaXB0LmNvcHlSZWYoKSk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KLSAgICBwZW5kaW5nU2NyaXB0LT5zZXRDbGllbnQodGhpcyk7CisgICAg
cGVuZGluZ1NjcmlwdC0+c2V0Q2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBTY3JpcHRSdW5uZXI6
OnN1c3BlbmQoKQpAQCAtOTEsOSArODgsNyBAQCB2b2lkIFNjcmlwdFJ1bm5lcjo6cmVzdW1lKCkK
IAogdm9pZCBTY3JpcHRSdW5uZXI6Om5vdGlmeUZpbmlzaGVkKFBlbmRpbmdTY3JpcHQmIHBlbmRp
bmdTY3JpcHQpCiB7Ci0gICAgYXV0byogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElm
UG9zc2libGUoJnBlbmRpbmdTY3JpcHQuZWxlbWVudCgpKTsKLSAgICBBU1NFUlQoc2NyaXB0RWxl
bWVudCk7Ci0gICAgaWYgKHNjcmlwdEVsZW1lbnQtPndpbGxFeGVjdXRlSW5PcmRlcigpKQorICAg
IGlmIChwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKS53aWxsRXhlY3V0ZUluT3JkZXIoKSkKICAgICAg
ICAgQVNTRVJUKCFtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyLmlzRW1wdHkoKSk7CiAgICAgZWxz
ZSB7CiAgICAgICAgIEFTU0VSVChtX3BlbmRpbmdBc3luY1NjcmlwdHMuY29udGFpbnMocGVuZGlu
Z1NjcmlwdCkpOwpAQCAtMTIyLDEwICsxMTcsOCBAQCB2b2lkIFNjcmlwdFJ1bm5lcjo6dGltZXJG
aXJlZCgpCiAgICAgICAgIC8vIFBhcGVyIG92ZXIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0NDA1MAogICAgICAgICBpZiAoIXNjcmlwdCkKICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICBhdXRvKiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZSgmc2NyaXB0LT5lbGVtZW50KCkpOwotICAgICAgICBBU1NFUlQoc2NyaXB0RWxlbWVu
dCk7CiAgICAgICAgIEFTU0VSVChzY3JpcHQtPm5lZWRzTG9hZGluZygpKTsKLSAgICAgICAgc2Ny
aXB0RWxlbWVudC0+ZXhlY3V0ZVBlbmRpbmdTY3JpcHQoKnNjcmlwdCk7CisgICAgICAgIHNjcmlw
dC0+ZWxlbWVudCgpLmV4ZWN1dGVQZW5kaW5nU2NyaXB0KCpzY3JpcHQpOwogICAgICAgICBtX2Rv
Y3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKICAgICB9CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0UnVubmVyLmgKaW5kZXggZGZjZjNjNWZhOTBlNGE0NTA5NDA0MmQ4NzdkZTNiY2U0
NDgwMGQ5YS4uOGU4ZjQ4NmFkMWRiMGRiYzBkMGJlNjQ1MjExMWVlZDc3MGYxNTMxMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRSdW5uZXIuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDEzICsyOSwxMSBAQAogI2luY2x1ZGUgIlBlbmRp
bmdTY3JpcHRDbGllbnQuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgUGVu
ZGluZ1NjcmlwdDsKIGNsYXNzIFNjcmlwdEVsZW1lbnQ7CiBjbGFzcyBMb2FkYWJsZVNjcmlwdDsK
IApAQCAtNDUsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgflNjcmlwdFJ1bm5lcigpOwogCiAgICAg
ZW51bSBFeGVjdXRpb25UeXBlIHsgQVNZTkNfRVhFQ1VUSU9OLCBJTl9PUkRFUl9FWEVDVVRJT04g
fTsKLSAgICB2b2lkIHF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqLCBMb2Fk
YWJsZVNjcmlwdCYsIEV4ZWN1dGlvblR5cGUpOworICAgIHZvaWQgcXVldWVTY3JpcHRGb3JFeGVj
dXRpb24oU2NyaXB0RWxlbWVudCYsIExvYWRhYmxlU2NyaXB0JiwgRXhlY3V0aW9uVHlwZSk7CiAg
ICAgYm9vbCBoYXNQZW5kaW5nU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJuICFtX3NjcmlwdHNUb0V4
ZWN1dGVTb29uLmlzRW1wdHkoKSB8fCAhbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5pc0VtcHR5
KCkgfHwgIW1fcGVuZGluZ0FzeW5jU2NyaXB0cy5pc0VtcHR5KCk7IH0KICAgICB2b2lkIHN1c3Bl
bmQoKTsKICAgICB2b2lkIHJlc3VtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5j
cHAKaW5kZXggMTM2N2I0ZjIwZWEwOTExZGY5Y2RkY2YxYzE2MmU3MzlkMWUwMjZlMy4uNTdkMGRj
MWM3NjNkNjdiNmIwMjI4Yzg2MDUxM2Q3ZjFlOWM1MzYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yMjEsNyArMjIxLDcgQEAgYm9v
bCBGaWxlSW5wdXRUeXBlOjpjYW5TZXRTdHJpbmdWYWx1ZSgpIGNvbnN0CiAKIEZpbGVMaXN0KiBG
aWxlSW5wdXRUeXBlOjpmaWxlcygpCiB7Ci0gICAgcmV0dXJuIG1fZmlsZUxpc3QuZ2V0KCk7Cisg
ICAgcmV0dXJuIG1fZmlsZUxpc3QucHRyKCk7CiB9CiAKIGJvb2wgRmlsZUlucHV0VHlwZTo6Y2Fu
U2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTI1OCwxMiArMjU4LDEyIEBAIHZvaWQg
RmlsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvcikKICAgICBlbGVtZW50KCkuaW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwog
fQogCi1QYXNzUmVmUHRyPEZpbGVMaXN0PiBGaWxlSW5wdXRUeXBlOjpjcmVhdGVGaWxlTGlzdChj
b25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mIGZpbGVzKSBjb25zdAorUmVmPEZpbGVM
aXN0PiBGaWxlSW5wdXRUeXBlOjpjcmVhdGVGaWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29z
ZXJGaWxlSW5mbz4mIGZpbGVzKQogewogICAgIFZlY3RvcjxSZWZQdHI8RmlsZT4+IGZpbGVPYmpl
Y3RzOwotICAgIGZvciAoY29uc3QgRmlsZUNob29zZXJGaWxlSW5mbyYgaW5mbyA6IGZpbGVzKQot
ICAgICAgICBmaWxlT2JqZWN0cy5hcHBlbmQoRmlsZTo6Y3JlYXRlV2l0aE5hbWUoaW5mby5wYXRo
LCBpbmZvLmRpc3BsYXlOYW1lKSk7Ci0KKyAgICBmaWxlT2JqZWN0cy5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KGZpbGVzLnNpemUoKSk7CisgICAgZm9yIChhdXRvJiBpbmZvIDogZmlsZXMpCisgICAg
ICAgIGZpbGVPYmplY3RzLnVuY2hlY2tlZEFwcGVuZChGaWxlOjpjcmVhdGVXaXRoTmFtZShpbmZv
LnBhdGgsIGluZm8uZGlzcGxheU5hbWUpKTsKICAgICByZXR1cm4gRmlsZUxpc3Q6OmNyZWF0ZShX
VEZNb3ZlKGZpbGVPYmplY3RzKSk7CiB9CiAKQEAgLTMwMiwyOSArMzAyLDMyIEBAIHZvaWQgRmls
ZUlucHV0VHlwZTo6bXVsdGlwbGVBdHRyaWJ1dGVDaGFuZ2VkKCkKICAgICAgICAgYnV0dG9uLT5z
ZXRWYWx1ZShlbGVtZW50KCkubXVsdGlwbGUoKSA/IGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZp
bGVzTGFiZWwoKSA6IGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKSk7CiB9CiAKKyNpZiAhUExB
VEZPUk0oSU9TKQorCiB2b2lkIEZpbGVJbnB1dFR5cGU6OnJlcXVlc3RJY29uKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBwYXRocykKIHsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgVU5VU0VEX1BBUkFN
KHBhdGhzKTsKLSNlbHNlCiAgICAgaWYgKCFwYXRocy5zaXplKCkpIHsKLSAgICAgICAgdXBkYXRl
UmVuZGVyaW5nKG51bGxwdHIpOworICAgICAgICBpY29uTG9hZGVkKG51bGxwdHIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgQ2hyb21lKiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKTsK
LSAgICBpZiAoIWNocm9tZSkKKyAgICBhdXRvKiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKTsKKyAg
ICBpZiAoIWNocm9tZSkgeworICAgICAgICBpY29uTG9hZGVkKG51bGxwdHIpOwogICAgICAgICBy
ZXR1cm47CisgICAgfQogCiAgICAgaWYgKG1fZmlsZUljb25Mb2FkZXIpCiAgICAgICAgIG1fZmls
ZUljb25Mb2FkZXItPmludmFsaWRhdGUoKTsKIAotICAgIG1fZmlsZUljb25Mb2FkZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPEZpbGVJY29uTG9hZGVyPihzdGF0aWNfY2FzdDxGaWxlSWNvbkxvYWRlckNs
aWVudCY+KCp0aGlzKSk7CisgICAgRmlsZUljb25Mb2FkZXJDbGllbnQmIGNsaWVudCA9ICp0aGlz
OworICAgIG1fZmlsZUljb25Mb2FkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZpbGVJY29uTG9hZGVy
PihjbGllbnQpOwogCi0gICAgY2hyb21lLT5sb2FkSWNvbkZvckZpbGVzKHBhdGhzLCBtX2ZpbGVJ
Y29uTG9hZGVyLmdldCgpKTsKLSNlbmRpZgorICAgIGNocm9tZS0+bG9hZEljb25Gb3JGaWxlcyhw
YXRocywgKm1fZmlsZUljb25Mb2FkZXIpOwogfQogCisjZW5kaWYKKwogdm9pZCBGaWxlSW5wdXRU
eXBlOjphcHBseUZpbGVDaG9vc2VyU2V0dGluZ3MoY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYg
c2V0dGluZ3MpCiB7CiAgICAgaWYgKG1fZmlsZUNob29zZXIpCkBAIC0zMzMsMTggKzMzNiwyMCBA
QCB2b2lkIEZpbGVJbnB1dFR5cGU6OmFwcGx5RmlsZUNob29zZXJTZXR0aW5ncyhjb25zdCBGaWxl
Q2hvb3NlclNldHRpbmdzJiBzZXR0aW5ncwogICAgIG1fZmlsZUNob29zZXIgPSBGaWxlQ2hvb3Nl
cjo6Y3JlYXRlKHRoaXMsIHNldHRpbmdzKTsKIH0KIAotdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRG
aWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0PiBmaWxlcykKK3ZvaWQgRmlsZUlucHV0VHlwZTo6c2V0
RmlsZXMoUmVmUHRyPEZpbGVMaXN0PiYmIGZpbGVzKQogewogICAgIGlmICghZmlsZXMpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dChlbGVtZW50KCkp
OwogCisgICAgdW5zaWduZWQgbGVuZ3RoID0gZmlsZXMtPmxlbmd0aCgpOworCiAgICAgYm9vbCBw
YXRoc0NoYW5nZWQgPSBmYWxzZTsKLSAgICBpZiAoZmlsZXMtPmxlbmd0aCgpICE9IG1fZmlsZUxp
c3QtPmxlbmd0aCgpKQorICAgIGlmIChsZW5ndGggIT0gbV9maWxlTGlzdC0+bGVuZ3RoKCkpCiAg
ICAgICAgIHBhdGhzQ2hhbmdlZCA9IHRydWU7CiAgICAgZWxzZSB7Ci0gICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBmaWxlcy0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIGlmIChmaWxlcy0+
aXRlbShpKS0+cGF0aCgpICE9IG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSkgewogICAgICAg
ICAgICAgICAgIHBhdGhzQ2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBA
IC0zNTIsMTUgKzM1NywxOCBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQ
dHI8RmlsZUxpc3Q+IGZpbGVzKQogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9maWxlTGlzdCA9
IGZpbGVzOworICAgIG1fZmlsZUxpc3QgPSBmaWxlcy5yZWxlYXNlTm9uTnVsbCgpOwogCiAgICAg
aW5wdXQtPnNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CiAgICAgaW5w
dXQtPnVwZGF0ZVZhbGlkaXR5KCk7CiAKKyNpZiAhUExBVEZPUk0oSU9TKQogICAgIFZlY3RvcjxT
dHJpbmc+IHBhdGhzOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2ZpbGVMaXN0LT5s
ZW5ndGgoKTsgKytpKQotICAgICAgICBwYXRocy5hcHBlbmQobV9maWxlTGlzdC0+aXRlbShpKS0+
cGF0aCgpKTsKKyAgICBwYXRocy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGxlbmd0aCk7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICBwYXRocy51bmNo
ZWNrZWRBcHBlbmQobV9maWxlTGlzdC0+aXRlbShpKS0+cGF0aCgpKTsKICAgICByZXF1ZXN0SWNv
bihwYXRocyk7CisjZW5kaWYKIAogICAgIGlmIChpbnB1dC0+cmVuZGVyZXIoKSkKICAgICAgICAg
aW5wdXQtPnJlbmRlcmVyKCktPnJlcGFpbnQoKTsKQEAgLTM3NCwxNyArMzgyLDE5IEBAIHZvaWQg
RmlsZUlucHV0VHlwZTo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCiB9CiAK
ICNpZiBQTEFURk9STShJT1MpCisKIHZvaWQgRmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4oY29u
c3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBwYXRocywgY29uc3QgU3RyaW5nJiBkaXNw
bGF5U3RyaW5nLCBJY29uKiBpY29uKQogewogICAgIG1fZGlzcGxheVN0cmluZyA9IGRpc3BsYXlT
dHJpbmc7CiAgICAgZmlsZXNDaG9zZW4ocGF0aHMpOwotICAgIHVwZGF0ZVJlbmRlcmluZyhpY29u
KTsKKyAgICBpY29uTG9hZGVkKGljb24pOwogfQogCiBTdHJpbmcgRmlsZUlucHV0VHlwZTo6ZGlz
cGxheVN0cmluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZGlzcGxheVN0cmluZzsKIH0KKwog
I2VuZGlmCiAKIHZvaWQgRmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZp
bGVDaG9vc2VyRmlsZUluZm8+JiBmaWxlcykKQEAgLTM5MiwxMiArNDAyLDEyIEBAIHZvaWQgRmls
ZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+
JiBmaWxlcykKICAgICBzZXRGaWxlcyhjcmVhdGVGaWxlTGlzdChmaWxlcykpOwogfQogCi12b2lk
IEZpbGVJbnB1dFR5cGU6OnVwZGF0ZVJlbmRlcmluZyhQYXNzUmVmUHRyPEljb24+IGljb24pCit2
b2lkIEZpbGVJbnB1dFR5cGU6Omljb25Mb2FkZWQoUmVmUHRyPEljb24+JiYgaWNvbikKIHsKICAg
ICBpZiAobV9pY29uID09IGljb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1faWNvbiA9IGlj
b247CisgICAgbV9pY29uID0gV1RGTW92ZShpY29uKTsKICAgICBpZiAoZWxlbWVudCgpLnJlbmRl
cmVyKCkpCiAgICAgICAgIGVsZW1lbnQoKS5yZW5kZXJlcigpLT5yZXBhaW50KCk7CiB9CkBAIC00
MzQsOCArNDQ0LDcgQEAgSWNvbiogRmlsZUlucHV0VHlwZTo6aWNvbigpIGNvbnN0CiAKIFN0cmlu
ZyBGaWxlSW5wdXRUeXBlOjpkZWZhdWx0VG9vbFRpcCgpIGNvbnN0CiB7Ci0gICAgRmlsZUxpc3Qq
IGZpbGVMaXN0ID0gbV9maWxlTGlzdC5nZXQoKTsKLSAgICB1bnNpZ25lZCBsaXN0U2l6ZSA9IGZp
bGVMaXN0LT5sZW5ndGgoKTsKKyAgICB1bnNpZ25lZCBsaXN0U2l6ZSA9IG1fZmlsZUxpc3QtPmxl
bmd0aCgpOwogICAgIGlmICghbGlzdFNpemUpIHsKICAgICAgICAgaWYgKGVsZW1lbnQoKS5tdWx0
aXBsZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJl
bCgpOwpAQCAtNDQzLDggKzQ1Miw4IEBAIFN0cmluZyBGaWxlSW5wdXRUeXBlOjpkZWZhdWx0VG9v
bFRpcCgpIGNvbnN0CiAgICAgfQogCiAgICAgU3RyaW5nQnVpbGRlciBuYW1lczsKLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKLSAgICAgICAgbmFtZXMuYXBwZW5k
KGZpbGVMaXN0LT5pdGVtKGkpLT5uYW1lKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgIG5hbWVzLmFwcGVuZChtX2ZpbGVMaXN0LT5pdGVt
KGkpLT5uYW1lKCkpOwogICAgICAgICBpZiAoaSAhPSBsaXN0U2l6ZSAtIDEpCiAgICAgICAgICAg
ICBuYW1lcy5hcHBlbmQoJ1xuJyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUu
aAppbmRleCBmOGEwZGZmMmQ4ZDNjMzA1ZjAxYTFkZjhjODkxYTI5MGUzNjU2M2YxLi5lZTQwNjQ4
ZDY5NTFkYTZhZDI5MzlhMDJmNTM2ZTc3ODg2OWMyZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJ
bnB1dFR5cGUuaApAQCAtNTAsNDUgKzUwLDQ1IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgVmVjdG9y
PEZpbGVDaG9vc2VyRmlsZUluZm8+IGZpbGVzRnJvbUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9y
bUNvbnRyb2xTdGF0ZSYpOwogCiBwcml2YXRlOgotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZm9y
bUNvbnRyb2xUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgRm9ybUNvbnRyb2xTdGF0ZSBzYXZl
Rm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgcmVzdG9yZUZvcm1D
b250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIG92ZXJyaWRlOwotICAgIGJvb2wg
YXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgU3Ry
aW5nIHZhbHVlTWlzc2luZ1RleHQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGhhbmRsZURP
TUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKLSAgICBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYmKSBvdmVycmlkZTsKLSAgICBi
b29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgRmlsZUxpc3QqIGZp
bGVzKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0Pikg
b3ZlcnJpZGU7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25z
dCBmaW5hbDsKKyAgICBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29u
c3QgZmluYWw7CisgICAgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29u
dHJvbFN0YXRlJikgZmluYWw7CisgICAgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3Qm
LCBib29sKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcm
KSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcgdmFsdWVNaXNzaW5nVGV4dCgpIGNvbnN0IGZpbmFs
OworICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIGZpbmFsOworICAgIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYp
IGZpbmFsOworICAgIGJvb2wgY2FuU2V0U3RyaW5nVmFsdWUoKSBjb25zdCBmaW5hbDsKKyAgICBG
aWxlTGlzdCogZmlsZXMoKSBmaW5hbDsKKyAgICB2b2lkIHNldEZpbGVzKFJlZlB0cjxGaWxlTGlz
dD4mJikgZmluYWw7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIFN0cmluZyBkaXNwbGF5U3RyaW5n
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgU3RyaW5nIGRpc3BsYXlTdHJpbmcoKSBjb25zdCBmaW5h
bDsKICNlbmRpZgotICAgIGJvb2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7
Ci0gICAgYm9vbCBnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKSBvdmVycmlkZTsgLy8gQ2hl
Y2tlZCBmaXJzdCwgYmVmb3JlIGludGVybmFsIHN0b3JhZ2Ugb3IgdGhlIHZhbHVlIGF0dHJpYnV0
ZS4KLSAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBU
ZXh0RmllbGRFdmVudEJlaGF2aW9yKSBvdmVycmlkZTsKKyAgICBib29sIGNhblNldFZhbHVlKGNv
bnN0IFN0cmluZyYpIGZpbmFsOworICAgIGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5n
JikgZmluYWw7IC8vIENoZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdlIG9yIHRo
ZSB2YWx1ZSBhdHRyaWJ1dGUuCisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29s
IHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgZmluYWw7CiAKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQotICAgIGJvb2wgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBEcmFn
RGF0YSYpIG92ZXJyaWRlOworICAgIGJvb2wgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBEcmFn
RGF0YSYpIGZpbmFsOwogI2VuZGlmCiAKLSAgICBJY29uKiBpY29uKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgYm9vbCBpc0ZpbGVVcGxvYWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGNyZWF0
ZVNoYWRvd1N1YnRyZWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2FibGVkQXR0cmlidXRlQ2hh
bmdlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgbXVsdGlwbGVBdHRyaWJ1dGVDaGFuZ2VkKCkgb3Zl
cnJpZGU7Ci0gICAgU3RyaW5nIGRlZmF1bHRUb29sVGlwKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
SWNvbiogaWNvbigpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgaXNGaWxlVXBsb2FkKCkgY29uc3Qg
ZmluYWw7CisgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgZmluYWw7CisgICAgdm9pZCBk
aXNhYmxlZEF0dHJpYnV0ZUNoYW5nZWQoKSBmaW5hbDsKKyAgICB2b2lkIG11bHRpcGxlQXR0cmli
dXRlQ2hhbmdlZCgpIGZpbmFsOworICAgIFN0cmluZyBkZWZhdWx0VG9vbFRpcCgpIGNvbnN0IGZp
bmFsOwogCiAgICAgLy8gRmlsZUNob29zZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCi0gICAgdm9p
ZCBmaWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZv
PiYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2b2lkIGZpbGVzQ2hvc2VuKGNvbnN0
IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYsIGNvbnN0IFN0cmluZyYgZGlzcGxheVN0cmlu
ZywgSWNvbiopIG92ZXJyaWRlOworICAgIHZvaWQgZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZp
bGVDaG9vc2VyRmlsZUluZm8+JiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5U3RyaW5nLCBJY29uKikg
ZmluYWw7CiAjZW5kaWYKIAogICAgIC8vIEZpbGVJY29uTG9hZGVyQ2xpZW50IGltcGxlbWVudGF0
aW9uLgotICAgIHZvaWQgdXBkYXRlUmVuZGVyaW5nKFBhc3NSZWZQdHI8SWNvbj4pIG92ZXJyaWRl
OworICAgIHZvaWQgaWNvbkxvYWRlZChSZWZQdHI8SWNvbj4mJikgZmluYWw7CiAKLSAgICBQYXNz
UmVmUHRyPEZpbGVMaXN0PiBjcmVhdGVGaWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29zZXJG
aWxlSW5mbz4mIGZpbGVzKSBjb25zdDsKKyAgICBzdGF0aWMgUmVmPEZpbGVMaXN0PiBjcmVhdGVG
aWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mKTsKICAgICB2b2lkIHJl
cXVlc3RJY29uKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAKICAgICB2b2lkIGFwcGx5RmlsZUNo
b29zZXJTZXR0aW5ncyhjb25zdCBGaWxlQ2hvb3NlclNldHRpbmdzJik7CkBAIC05OCw3ICs5OCw3
IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEZpbGVJY29uTG9hZGVyPiBtX2ZpbGVJ
Y29uTG9hZGVyOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8RmlsZUxpc3Q+IG1fZmlsZUxpc3Q7Cisg
ICAgUmVmPEZpbGVMaXN0PiBtX2ZpbGVMaXN0OwogICAgIFJlZlB0cjxJY29uPiBtX2ljb247CiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIFN0cmluZyBtX2Rpc3BsYXlTdHJpbmc7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGY0YmU3MTU4YzUxMDA4NTgzMDU4MGI2YTczODU4NzIw
MzAzOWEzZDkuLjAzMjJiMTM5ZDI4NWIwZjI4ZjExYjYzMGY5NDM5MTkwMThkYzYxNTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChD
KSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICogQ29weXJpZ2h0
IChDKSAyMDExIE1vdG9yb2xhIE1vYmlsaXR5LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAg
LTc1Miw3ICs3NTIsNyBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLAogICAgIHJldHVybiBSZW5k
ZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIH0KIAotSFRNTEZv
cm1FbGVtZW50KiBIVE1MRWxlbWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAorSFRNTEZvcm1FbGVt
ZW50KiBIVE1MRWxlbWVudDo6Zm9ybSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEhUTUxGb3JtRWxl
bWVudDo6ZmluZENsb3Nlc3RGb3JtQW5jZXN0b3IoKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5oCmluZGV4IDM5ZDRjYjcyYjY3NjM3Mjc3NTkxMTI2YThhMTUyNTA1NDAyZGZlMGMu
LmMxZjllY2I3NmRmNzM1MzM4YmI5NTBjYmY3MDE0YjhkZGRiMWFhYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmgKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAxOTk5
IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkg
S29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOSwg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikgb3ZlcnJpZGU7CiAKLSAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCB7
IHJldHVybiB2aXJ0dWFsRm9ybSgpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBIVE1M
Rm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IEF0
b21pY1N0cmluZyYgZGlyKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREaXIo
Y29uc3QgQXRvbWljU3RyaW5nJik7CkBAIC0xMzMsOCArMTMzLDYgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgbWFwTGFuZ3VhZ2VBdHRyaWJ1dGVUb0xvY2FsZShjb25zdCBBdG9taWNTdHJpbmcmLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzJik7CiAKLSAgICB2aXJ0dWFsIEhUTUxGb3JtRWxlbWVudCog
dmlydHVhbEZvcm0oKSBjb25zdDsKLQogICAgIEV4Y2VwdGlvbk9yPFJlZjxEb2N1bWVudEZyYWdt
ZW50Pj4gdGV4dFRvRnJhZ21lbnQoY29uc3QgU3RyaW5nJik7CiAKICAgICB2b2lkIGRpckF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA4NDUxNmNiNjI0NGMzM2IxZjcwNWUw
NmRlMjgyMmFlYTExZTUxYmQ4Li4yZTg3MmFhYmFlNjRiMDQ0OGQyMjE0ZTk2MmJiMTZmNmNiZjk5
MDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5j
cHAKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25v
bGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlz
dG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJA
a2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgICAgICAgICAgKEMpIDIwMDYg
QWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTU5Mywx
MSArNTkzLDYgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVu
dChSZWZQdHI8RWxlbWVudD4mJiBuZXdGb2N1c2VkRWxlbWUKICAgICBoaWRlVmlzaWJsZVZhbGlk
YXRpb25NZXNzYWdlKCk7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAotewotICAgIHJldHVybiBGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQ6OmZvcm0oKTsKLX0KLQogI2lmIEVOQUJMRShJT1NfQVVUT0NPUlJFQ1RfQU5EX0FVVE9D
QVBJVEFMSVpFKQogCiAvLyBGSVhNRTogV2Ugc2hvdWxkIGxvb2sgdG8gc2hhcmUgdGhpcyBjb2Rl
IHdpdGggY2xhc3MgSFRNTEZvcm1FbGVtZW50IGluc3RlYWQgb2YgZHVwbGljYXRpbmcgdGhlIGxv
Z2ljLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRl
eCA0ZmY0ODk0ZjM1ZmU2MWQyZWRmMGMwODU1ZTkyMjQ0YWNkYzVjNGZjLi41MGI4Y2Q0YzE4MTQx
MzUwM2Q1NDM3ZTdmOWUwNTI0ZjczM2Q1NTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykg
MTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFu
dHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAwIERp
cmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDYsNyArNDYsNyBAQCBjbGFz
cyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IDogcHVibGljIExhYmVsYWJsZUVsZW1lbnQsIHB1Ymxp
YyBGb3JtQXNzb2NpYXRlZEVsZQogcHVibGljOgogICAgIHZpcnR1YWwgfkhUTUxGb3JtQ29udHJv
bEVsZW1lbnQoKTsKIAotICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IHsgcmV0dXJu
IEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybSgpOyB9CisgICAgSFRNTEZvcm1FbGVtZW50KiBm
b3JtKCkgY29uc3QgZmluYWwgeyByZXR1cm4gRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtKCk7
IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBmb3JtRW5jdHlwZSgpIGNvbnN0OwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Rm9ybUVuY3R5cGUoY29uc3QgU3RyaW5nJik7CkBAIC0x
NjksNyArMTY5LDYgQEAgcHJpdmF0ZToKIAogICAgIGludCB0YWJJbmRleCgpIGNvbnN0IGZpbmFs
OwogCi0gICAgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFsRm9ybSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgaXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpIGNvbnN0OwogCiAgICAgYm9vbCBj
b21wdXRlSXNEaXNhYmxlZEJ5RmllbGRzZXRBbmNlc3RvcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggZDQzZDRlZjllMDExOTI2ZDBlOGEwZWJk
ZWM4NzUyZDNlZmZkZmMyNC4uODIxMmNiMjk4OGMzNDE5MjdjZjdlMTNmMTliYjUyYzBkZDY2NjVh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0yLDcgKzIs
NyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAg
KiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAg
KiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIw
MTEsIDIwMTMsIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkK
ICAqIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIChzYW1Ad2Via2l0Lm9yZykKICAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAt
MTE4NCwxMCArMTE4NCw5IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCYgZXZlbnQpCiAgICAgICAgIGlmICh3YXNDaGFuZ2VkU2luY2VMYXN0Rm9ybUNv
bnRyb2xDaGFuZ2VFdmVudCgpKQogICAgICAgICAgICAgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5n
ZUV2ZW50KCk7CiAKLSAgICAgICAgUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gZm9ybUZvclN1Ym1p
c3Npb24gPSBtX2lucHV0VHlwZS0+Zm9ybUZvclN1Ym1pc3Npb24oKTsKICAgICAgICAgLy8gRm9y
bSBtYXkgbmV2ZXIgaGF2ZSBiZWVuIHByZXNlbnQsIG9yIG1heSBoYXZlIGJlZW4gZGVzdHJveWVk
IGJ5IGNvZGUgcmVzcG9uZGluZyB0byB0aGUgY2hhbmdlIGV2ZW50LgotICAgICAgICBpZiAoZm9y
bUZvclN1Ym1pc3Npb24pCi0gICAgICAgICAgICBmb3JtRm9yU3VibWlzc2lvbi0+c3VibWl0SW1w
bGljaXRseShldmVudCwgY2FuVHJpZ2dlckltcGxpY2l0U3VibWlzc2lvbigpKTsKKyAgICAgICAg
aWYgKGF1dG8qIGZvcm1FbGVtZW50ID0gZm9ybSgpKQorICAgICAgICAgICAgZm9ybUVsZW1lbnQt
PnN1Ym1pdEltcGxpY2l0bHkoZXZlbnQsIGNhblRyaWdnZXJJbXBsaWNpdFN1Ym1pc3Npb24oKSk7
CiAKICAgICAgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtMTM0Miw5ICsxMzQxLDkgQEAgRmlsZUxpc3QqIEhUTUxJbnB1dEVsZW1lbnQ6OmZpbGVzKCkK
ICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmZpbGVzKCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxl
bWVudDo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCit2b2lkIEhUTUxJbnB1
dEVsZW1lbnQ6OnNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4mJiBmaWxlcykKIHsKLSAgICBtX2lu
cHV0VHlwZS0+c2V0RmlsZXMoZmlsZXMpOworICAgIG1faW5wdXRUeXBlLT5zZXRGaWxlcyhXVEZN
b3ZlKGZpbGVzKSk7CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpAQCAtMTg2OSw3ICsx
ODY4LDcgQEAgUmFkaW9CdXR0b25Hcm91cHMqIEhUTUxJbnB1dEVsZW1lbnQ6OnJhZGlvQnV0dG9u
R3JvdXBzKCkgY29uc3QKIHsKICAgICBpZiAoIWlzUmFkaW9CdXR0b24oKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgaWYgKEhUTUxGb3JtRWxlbWVudCogZm9ybUVsZW1lbnQgPSBmb3Jt
KCkpCisgICAgaWYgKGF1dG8qIGZvcm1FbGVtZW50ID0gZm9ybSgpKQogICAgICAgICByZXR1cm4g
JmZvcm1FbGVtZW50LT5yYWRpb0J1dHRvbkdyb3VwcygpOwogICAgIGlmIChpbkRvY3VtZW50KCkp
CiAgICAgICAgIHJldHVybiAmZG9jdW1lbnQoKS5mb3JtQ29udHJvbGxlcigpLnJhZGlvQnV0dG9u
R3JvdXBzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDhhZmZk
OTgxMTc1NGQ5ZTQ5MjM2MjU2ZTY1NWQ2ZGE1NTgzZjU2ZDYuLmJmMDBiYWZmYzQ2MjAzNmE4YjIy
ZWQ5ZGNiY2EzNWIyYjExZmUxNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtu
b2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZp
c3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVy
QGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmlj
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00Myw4ICs0Myw4IEBAIGNs
YXNzIEljb247CiBjbGFzcyBJbnB1dFR5cGU7CiBjbGFzcyBMaXN0QXR0cmlidXRlVGFyZ2V0T2Jz
ZXJ2ZXI7CiBjbGFzcyBSYWRpb0J1dHRvbkdyb3VwczsKLWNsYXNzIFRleHRDb250cm9sSW5uZXJU
ZXh0RWxlbWVudDsKIGNsYXNzIFVSTDsKKwogc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRl
cnM7CiAKIHN0cnVjdCBJbnB1dEVsZW1lbnRDbGlja1N0YXRlIHsKQEAgLTIzOCw3ICsyMzgsNyBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTaG93QXV0b0ZpbGxCdXR0b24o
QXV0b0ZpbGxCdXR0b25UeXBlKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIEZpbGVMaXN0KiBmaWxl
cygpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlz
dD4pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RmlsZXMoUmVmUHRyPEZpbGVMaXN0PiYm
KTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRo
ZSBnaXZlbiBEcmFnRGF0YSBoYXMgbW9yZSB0aGFuIG9uZSBkcm9wcGVkIGZpbGVzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAKaW5kZXggYzJkMTg1YzMxMGEwYjkyYjky
MGU5NzUxMDRjYTFjZWI4NTUwNWZhZC4uZTc2OTE3ZTlkMjQyNmVkMzVmNDQzNTExMTFkNjA5NzFj
NzZjMTZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCkBAIC0y
LDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5v
cmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5v
cmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcp
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQ
cm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC02MywzMCArNjMsMjgg
QEAgYm9vbCBIVE1MTGFiZWxFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1MYWJlbGFibGVFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9s
KCkKK0xhYmVsYWJsZUVsZW1lbnQqIEhUTUxMYWJlbEVsZW1lbnQ6OmNvbnRyb2woKSBjb25zdAog
ewotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgY29udHJvbElkID0gYXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihmb3JBdHRyKTsKKyAgICBhdXRvJiBjb250cm9sSWQgPSBhdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKGZvckF0dHIpOwogICAgIGlmIChjb250cm9sSWQuaXNOdWxs
KCkpIHsKICAgICAgICAgLy8gU2VhcmNoIHRoZSBjaGlsZHJlbiBhbmQgZGVzY2VuZGFudHMgb2Yg
dGhlIGxhYmVsIGVsZW1lbnQgZm9yIGEgZm9ybSBlbGVtZW50LgogICAgICAgICAvLyBwZXIgaHR0
cDovL2Rldi53My5vcmcvaHRtbDUvc3BlYy9PdmVydmlldy5odG1sI3RoZS1sYWJlbC1lbGVtZW50
CiAgICAgICAgIC8vIHRoZSBmb3JtIGVsZW1lbnQgbXVzdCBiZSAibGFiZWxhYmxlIGZvcm0tYXNz
b2NpYXRlZCBlbGVtZW50Ii4KICAgICAgICAgZm9yIChhdXRvJiBsYWJlbGFibGVFbGVtZW50IDog
ZGVzY2VuZGFudHNPZlR5cGU8TGFiZWxhYmxlRWxlbWVudD4oKnRoaXMpKSB7CiAgICAgICAgICAg
ICBpZiAobGFiZWxhYmxlRWxlbWVudC5zdXBwb3J0TGFiZWxzKCkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuICZsYWJlbGFibGVFbGVtZW50OworICAgICAgICAgICAgICAgIHJldHVybiBjb25zdF9j
YXN0PExhYmVsYWJsZUVsZW1lbnQqPigmbGFiZWxhYmxlRWxlbWVudCk7CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIAogICAgIHJldHVybiBpbkRvY3VtZW50
KCkgPyBmaXJzdEVsZW1lbnRXaXRoSWRJZkxhYmVsYWJsZSh0cmVlU2NvcGUoKSwgY29udHJvbElk
KSA6IG51bGxwdHI7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTExhYmVsRWxlbWVudDo6Zm9y
bSgpCitIVE1MRm9ybUVsZW1lbnQqIEhUTUxMYWJlbEVsZW1lbnQ6OmZvcm0oKSBjb25zdAogewot
ICAgIGF1dG8qIGxhYmVsZWRDb250cm9sID0gY29udHJvbCgpOwotICAgIGlmICghbGFiZWxlZENv
bnRyb2wpCisgICAgYXV0byogY29udHJvbCA9IHRoaXMtPmNvbnRyb2woKTsKKyAgICBpZiAoIWlz
PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KGNvbnRyb2wpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLQotICAgIHJldHVybiBpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PigqbGFiZWxlZENvbnRy
b2wpID8gZG93bmNhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oKmxhYmVsZWRDb250cm9sKS5m
b3JtKCkgOiBudWxscHRyOworICAgIHJldHVybiBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50PigqY29udHJvbCkuZm9ybSgpOwogfQogCiB2b2lkIEhUTUxMYWJlbEVsZW1lbnQ6OnNldEFj
dGl2ZShib29sIGRvd24sIGJvb2wgcGF1c2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMYWJlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxl
bWVudC5oCmluZGV4IDE0ZGRjMDgzYTYxOGU0NzdmMzIxYTUxNzZhZDYxMDNhZTkyOTZkMDYuLjEw
ZjAwNGI0NzVjODZiNjJhNDdlYWUzMzRjYzNjODRmOTg4ODY5ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExhYmVsRWxlbWVudC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAx
OTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50
dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGly
ayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUs
IDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC0zMSw4ICszMSw4IEBAIGNsYXNzIEhUTUxMYWJlbEVsZW1lbnQg
ZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8SFRN
TExhYmVsRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
Ci0gICAgV0VCQ09SRV9FWFBPUlQgTGFiZWxhYmxlRWxlbWVudCogY29udHJvbCgpOwotICAgIFdF
QkNPUkVfRVhQT1JUIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpOworICAgIFdFQkNPUkVfRVhQT1JU
IExhYmVsYWJsZUVsZW1lbnQqIGNvbnRyb2woKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBI
VE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgd2lsbFJlc3Bv
bmRUb01vdXNlQ2xpY2tFdmVudHMoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
ZWdlbmRFbGVtZW50LmNwcAppbmRleCBlYTc5NzM1ODY2MTBlZjdkOWFmMzM3YzFiYTdlOTUzMTU5
ZTQzNzZlLi5iNDRkZTA5MzlkZjhkODRmZmFkODZmMDVkOWMwOWMxOGFmZTQ1NzhjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAq
IENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAg
ICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAg
ICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBv
cC5jb20pCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzEsMTMgKzMxLDEwIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKLQotCiBpbmxpbmUgSFRNTExlZ2Vu
ZEVsZW1lbnQ6OkhUTUxMZWdlbmRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KQogewotICAgIEFTU0VSVChoYXNUYWdOYW1lKGxlZ2VuZFRhZykpOworICAgIEFTU0VSVChoYXNU
YWdOYW1lKEhUTUxOYW1lczo6bGVnZW5kVGFnKSk7CiB9CiAKIFJlZjxIVE1MTGVnZW5kRWxlbWVu
dD4gSFRNTExlZ2VuZEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC02MSwyNyArNTgsMjYgQEAgdm9pZCBIVE1MTGVnZW5k
RWxlbWVudDo6Zm9jdXMoYm9vbCwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIGlm
IChpc0ZvY3VzYWJsZSgpKQogICAgICAgICBFbGVtZW50Ojpmb2N1cyh0cnVlLCBkaXJlY3Rpb24p
OwotICAgICAgICAKKwogICAgIC8vIFRvIG1hdGNoIG90aGVyIGJyb3dzZXJzJyBiZWhhdmlvciwg
bmV2ZXIgcmVzdG9yZSBwcmV2aW91cyBzZWxlY3Rpb24uCi0gICAgaWYgKEhUTUxGb3JtQ29udHJv
bEVsZW1lbnQqIGNvbnRyb2wgPSBhc3NvY2lhdGVkQ29udHJvbCgpKQorICAgIGlmIChhdXRvKiBj
b250cm9sID0gYXNzb2NpYXRlZENvbnRyb2woKSkKICAgICAgICAgY29udHJvbC0+Zm9jdXMoZmFs
c2UsIGRpcmVjdGlvbik7CiB9CiAKIHZvaWQgSFRNTExlZ2VuZEVsZW1lbnQ6OmFjY2Vzc0tleUFj
dGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKIHsKLSAgICBpZiAoSFRNTEZvcm1Db250cm9sRWxl
bWVudCogY29udHJvbCA9IGFzc29jaWF0ZWRDb250cm9sKCkpCisgICAgaWYgKGF1dG8qIGNvbnRy
b2wgPSBhc3NvY2lhdGVkQ29udHJvbCgpKQogICAgICAgICBjb250cm9sLT5hY2Nlc3NLZXlBY3Rp
b24oc2VuZE1vdXNlRXZlbnRzKTsKIH0KIAotSFRNTEZvcm1FbGVtZW50KiBIVE1MTGVnZW5kRWxl
bWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAorSFRNTEZvcm1FbGVtZW50KiBIVE1MTGVnZW5kRWxl
bWVudDo6Zm9ybSgpIGNvbnN0CiB7CiAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0
aW9uLCBJZiB0aGUgbGVnZW5kIGhhcyBhIGZpZWxkc2V0IGVsZW1lbnQgYXMKICAgICAvLyBpdHMg
cGFyZW50LCB0aGVuIHRoZSBmb3JtIGF0dHJpYnV0ZSBtdXN0IHJldHVybiB0aGUgc2FtZSB2YWx1
ZSBhcyB0aGUKICAgICAvLyBmb3JtIGF0dHJpYnV0ZSBvbiB0aGF0IGZpZWxkc2V0IGVsZW1lbnQu
IE90aGVyd2lzZSwgaXQgbXVzdCByZXR1cm4gbnVsbC4KLSAgICBDb250YWluZXJOb2RlKiBmaWVs
ZHNldCA9IHBhcmVudE5vZGUoKTsKKyAgICBhdXRvKiBmaWVsZHNldCA9IHBhcmVudE5vZGUoKTsK
ICAgICBpZiAoIWlzPEhUTUxGaWVsZFNldEVsZW1lbnQ+KGZpZWxkc2V0KSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0KICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTEZpZWxkU2V0RWxlbWVudD4o
KmZpZWxkc2V0KS5mb3JtKCk7CiB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMZWdlbmRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRF
bGVtZW50LmgKaW5kZXggMDM4Y2M5YTE3NmViYzBkNzA2MmU2MGU1Yzk1OWExNWU4Mzg0NmYyZi4u
MTQ0ZTE5ZjYyYjgxZDkzMmI4YTE5YWJjNmM4ZmZmMTlmMTA1NTkwYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAo
QykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5
IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAw
IERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1LCAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwNC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMzMsMTUgKzMzLDE2IEBAIGNsYXNzIEhUTUxMZWdlbmRFbGVtZW50
IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEhU
TUxMZWdlbmRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCBmaW5h
bDsKKwogcHJpdmF0ZToKICAgICBIVE1MTGVnZW5kRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIAotICAgIC8vIENvbnRyb2wgaW4gdGhlIGxlZ2VuZCdzIGZpZWxkc2V0
IHRoYXQgZ2V0cyBmb2N1cyBhbmQgYWNjZXNzIGtleS4KKyAgICAvLyBDb250cm9sIGluIHRoZSBs
ZWdlbmQncyBmaWVsZCBzZXQgdGhhdCBnZXRzIGZvY3VzIGFuZCBhY2Nlc3Mga2V5LgogICAgIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQqIGFzc29jaWF0ZWRDb250cm9sKCk7CiAKICAgICB2b2lkIGFj
Y2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7CiAgICAgdm9pZCBmb2N1
cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24pIGZpbmFsOwot
ICAgIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25zdCBmaW5hbDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCmluZGV4IDA4NGVmYzc4MDU0M2ZlZGQyMTRlOTU0Njc5ODUxYzlkNzY1NjU0NjMuLmI4MzVh
M2Q4N2NlYTZhM2Q1MzE5MDk5NjRiYjBkZjAwNzhkOTgzZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDctMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDctMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDExICsyNCwxMCBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAKICNpZiBFTkFC
TEUoVklERU8pCiAKLSNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCi0KICNpbmNsdWRlICJB
cHBsaWNhdGlvbkNhY2hlSG9zdC5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJj
ZS5oIgogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgpAQCAtMjY5LDIyICsyNjgsMjMgQEAgc3RhdGlj
IHZvaWQgcmVtb3ZlRWxlbWVudEZyb21Eb2N1bWVudE1hcChIVE1MTWVkaWFFbGVtZW50JiBlbGVt
ZW50LCBEb2N1bWVudCYgZG8KIH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKKwogY2xhc3Mg
VHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgewogcHVibGljOgotICAgIFRyYWNrRGlzcGxheVVwZGF0
ZVNjb3BlKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKKyAgICBUcmFja0Rpc3BsYXlV
cGRhdGVTY29wZShIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQorICAgICAgICA6IG1fZWxlbWVu
dChlbGVtZW50KQogICAgIHsKLSAgICAgICAgbV9tZWRpYUVsZW1lbnQgPSBtZWRpYUVsZW1lbnQ7
Ci0gICAgICAgIG1fbWVkaWFFbGVtZW50LT5iZWdpbklnbm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRl
UmVxdWVzdHMoKTsKKyAgICAgICAgbV9lbGVtZW50LmJlZ2luSWdub3JpbmdUcmFja0Rpc3BsYXlV
cGRhdGVSZXF1ZXN0cygpOwogICAgIH0KICAgICB+VHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUoKQog
ICAgIHsKLSAgICAgICAgQVNTRVJUKG1fbWVkaWFFbGVtZW50KTsKLSAgICAgICAgbV9tZWRpYUVs
ZW1lbnQtPmVuZElnbm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKTsKKyAgICAgICAg
bV9lbGVtZW50LmVuZElnbm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKTsKICAgICB9
CiAgICAgCiBwcml2YXRlOgotICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1fbWVkaWFFbGVtZW50Owor
ICAgIEhUTUxNZWRpYUVsZW1lbnQmIG1fZWxlbWVudDsKIH07CisKICNlbmRpZgogCiBzdHJ1Y3Qg
SFRNTE1lZGlhRWxlbWVudDo6VHJhY2tHcm91cCB7CkBAIC0xNTU0LDcgKzE1NTQsNyBAQCBzdGF0
aWMgYm9vbCBldmVudFRpbWVDdWVDb21wYXJlKGNvbnN0IHN0ZDo6cGFpcjxNZWRpYVRpbWUsIFRl
eHRUcmFja0N1ZSo+JiBhLCBjbwogICAgIC8vIDEyIC0gRnVydGhlciBzb3J0IHRhc2tzIGluIGV2
ZW50cyB0aGF0IGhhdmUgdGhlIHNhbWUgdGltZSBieSB0aGUKICAgICAvLyByZWxhdGl2ZSB0ZXh0
IHRyYWNrIGN1ZSBvcmRlciBvZiB0aGUgdGV4dCB0cmFjayBjdWVzIGFzc29jaWF0ZWQKICAgICAv
LyB3aXRoIHRoZXNlIHRhc2tzLgotICAgIHJldHVybiBhLnNlY29uZC0+Y3VlSW5kZXgoKSAtIGIu
c2Vjb25kLT5jdWVJbmRleCgpIDwgMDsKKyAgICByZXR1cm4gYS5zZWNvbmQtPmlzT3JkZXJlZEJl
Zm9yZShiLnNlY29uZCk7CiB9CiAKIHN0YXRpYyBib29sIGNvbXBhcmVDdWVJbnRlcnZhbChjb25z
dCBDdWVJbnRlcnZhbCYgb25lLCBjb25zdCBDdWVJbnRlcnZhbCYgdHdvKQpAQCAtMTgxNywyMiAr
MTgxNywyMSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlYWR5U3RhdGVDaGFu
Z2VkKFRleHRUcmFjayogdHJhY2spCiAgICAgfQogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKiB0cmFjaykKK3ZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2smIHRyYWNrKQog
ewotICAgIEFTU0VSVCh0cmFjayk7Ci0gICAgaWYgKG1fYXVkaW9UcmFja3MgJiYgbV9hdWRpb1Ry
YWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV9hdWRpb1RyYWNrcyAmJiBtX2F1ZGlv
VHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fYXVkaW9UcmFja3MtPnNjaGVkdWxl
Q2hhbmdlRXZlbnQoKTsKICAgICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgcmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0
ZXJGaXJzdFVzZXJHZXN0dXJlKE1lZGlhRWxlbWVudFNlc3Npb246OkFsbFJlc3RyaWN0aW9ucyAm
IH5NZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250cm9s
c01hbmFnZXIpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja01vZGVDaGFu
Z2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja01v
ZGVDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7CiAgICAgYm9vbCB0cmFja0lzTG9hZGVkID0g
dHJ1ZTsKLSAgICBpZiAodHJhY2stPnRyYWNrVHlwZSgpID09IFRleHRUcmFjazo6VHJhY2tFbGVt
ZW50KSB7CisgICAgaWYgKHRyYWNrLnRyYWNrVHlwZSgpID09IFRleHRUcmFjazo6VHJhY2tFbGVt
ZW50KSB7CiAgICAgICAgIHRyYWNrSXNMb2FkZWQgPSBmYWxzZTsKICAgICAgICAgZm9yIChhdXRv
JiB0cmFja0VsZW1lbnQgOiBjaGlsZHJlbk9mVHlwZTxIVE1MVHJhY2tFbGVtZW50PigqdGhpcykp
IHsKLSAgICAgICAgICAgIGlmICgmdHJhY2tFbGVtZW50LnRyYWNrKCkgPT0gdHJhY2spIHsKKyAg
ICAgICAgICAgIGlmICgmdHJhY2tFbGVtZW50LnRyYWNrKCkgPT0gJnRyYWNrKSB7CiAgICAgICAg
ICAgICAgICAgaWYgKHRyYWNrRWxlbWVudC5yZWFkeVN0YXRlKCkgPT0gSFRNTFRyYWNrRWxlbWVu
dDo6TE9BRElORyB8fCB0cmFja0VsZW1lbnQucmVhZHlTdGF0ZSgpID09IEhUTUxUcmFja0VsZW1l
bnQ6OkxPQURFRCkKICAgICAgICAgICAgICAgICAgICAgdHJhY2tJc0xvYWRlZCA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xODQ1LDMzICsxODQ0LDMyIEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykKICAgICAg
ICAgbV90ZXh0VHJhY2tzID0gVGV4dFRyYWNrTGlzdDo6Y3JlYXRlKHRoaXMsIEFjdGl2ZURPTU9i
amVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICAKICAgICAvLyBNYXJrIHRoaXMg
dHJhY2sgYXMgImNvbmZpZ3VyZWQiIHNvIGNvbmZpZ3VyZVRleHRUcmFja3Mgd29uJ3QgY2hhbmdl
IHRoZSBtb2RlIGFnYWluLgotICAgIHRyYWNrLT5zZXRIYXNCZWVuQ29uZmlndXJlZCh0cnVlKTsK
KyAgICB0cmFjay5zZXRIYXNCZWVuQ29uZmlndXJlZCh0cnVlKTsKICAgICAKLSAgICBpZiAodHJh
Y2stPm1vZGUoKSAhPSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkICYmIHRyYWNrSXNMb2FkZWQp
Ci0gICAgICAgIHRleHRUcmFja0FkZEN1ZXModHJhY2ssIHRyYWNrLT5jdWVzKCkpOworICAgIGlm
ICh0cmFjay5tb2RlKCkgIT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCAmJiB0cmFja0lzTG9h
ZGVkKQorICAgICAgICB0ZXh0VHJhY2tBZGRDdWVzKHRyYWNrLCAqdHJhY2suY3VlcygpKTsKIAog
ICAgIGNvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkoQXNzdW1lVGV4dFRyYWNrVmlzaWJpbGl0eUNo
YW5nZWQpOwogCi0gICAgaWYgKG1fdGV4dFRyYWNrcyAmJiBtX3RleHRUcmFja3MtPmNvbnRhaW5z
KCp0cmFjaykpCisgICAgaWYgKG1fdGV4dFRyYWNrcyAmJiBtX3RleHRUcmFja3MtPmNvbnRhaW5z
KHRyYWNrKSkKICAgICAgICAgbV90ZXh0VHJhY2tzLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAK
ICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQotICAgIGlmICh0cmFjay0+dHJhY2tUeXBlKCkgPT0g
VGV4dFRyYWNrOjpUcmFja0VsZW1lbnQgJiYgbV9wbGF5ZXIpCisgICAgaWYgKHRyYWNrLnRyYWNr
VHlwZSgpID09IFRleHRUcmFjazo6VHJhY2tFbGVtZW50ICYmIG1fcGxheWVyKQogICAgICAgICBt
X3BsYXllci0+bm90aWZ5VHJhY2tNb2RlQ2hhbmdlZCgpOwogI2VuZGlmCiB9CiAKLXZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrKiB0cmFj
aykKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRl
b1RyYWNrJiB0cmFjaykKIHsKLSAgICBBU1NFUlQodHJhY2spOwotICAgIGlmIChtX3ZpZGVvVHJh
Y2tzICYmIG1fdmlkZW9UcmFja3MtPmNvbnRhaW5zKCp0cmFjaykpCisgICAgaWYgKG1fdmlkZW9U
cmFja3MgJiYgbV92aWRlb1RyYWNrcy0+Y29udGFpbnModHJhY2spKQogICAgICAgICBtX3ZpZGVv
VHJhY2tzLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykKK3ZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykKIHsKLSAgICBp
ZiAodHJhY2stPmtpbmQoKSAhPSBUZXh0VHJhY2s6OktpbmQ6OkNhcHRpb25zICYmIHRyYWNrLT5r
aW5kKCkgIT0gVGV4dFRyYWNrOjpLaW5kOjpTdWJ0aXRsZXMgJiYgdHJhY2stPm1vZGUoKSA9PSBU
ZXh0VHJhY2s6Ok1vZGU6OlNob3dpbmcpCi0gICAgICAgIHRyYWNrLT5zZXRNb2RlKFRleHRUcmFj
azo6TW9kZTo6SGlkZGVuKTsKKyAgICBpZiAodHJhY2sua2luZCgpICE9IFRleHRUcmFjazo6S2lu
ZDo6Q2FwdGlvbnMgJiYgdHJhY2sua2luZCgpICE9IFRleHRUcmFjazo6S2luZDo6U3VidGl0bGVz
ICYmIHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OlNob3dpbmcpCisgICAgICAgIHRy
YWNrLnNldE1vZGUoVGV4dFRyYWNrOjpNb2RlOjpIaWRkZW4pOwogfQogCiB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmJlZ2luSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpCkBAIC0x
ODg3LDI2ICsxODg1LDI4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW5kSWdub3JpbmdUcmFj
a0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpCiAgICAgICAgIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1
ZXMoY3VycmVudE1lZGlhVGltZSgpKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0
VHJhY2tBZGRDdWVzKFRleHRUcmFjayogdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1
ZXMpIAordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYg
dHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZXMpCiB7Ci0gICAgaWYgKHRyYWNrLT5t
b2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCkKKyAgICBpZiAodHJhY2subW9kZSgp
ID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFRy
YWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlKHRoaXMpOwotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgY3Vlcy0+bGVuZ3RoKCk7ICsraSkKLSAgICAgICAgdGV4dFRyYWNrQWRkQ3VlKHRyYWNr
LCAqY3Vlcy0+aXRlbShpKSk7CisgICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUgeyAq
dGhpcyB9OworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjdWVzLmxlbmd0aCgpOyArK2kp
CisgICAgICAgIHRleHRUcmFja0FkZEN1ZSh0cmFjaywgKmN1ZXMuaXRlbShpKSk7CiB9CiAKLXZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBjb25z
dCBUZXh0VHJhY2tDdWVMaXN0KiBjdWVzKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJh
Y2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZXMpCiB7
Ci0gICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUodGhpcyk7Ci0gICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBjdWVzLT5sZW5ndGgoKTsgKytpKQotICAgICAgICB0ZXh0VHJhY2tSZW1v
dmVDdWUoY3Vlcy0+aXRlbShpKS0+dHJhY2soKSwgKmN1ZXMtPml0ZW0oaSkpOworICAgIFRyYWNr
RGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlIHsgKnRoaXMgfTsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgY3Vlcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgIGF1dG8mIGN1ZSA9ICpjdWVz
Lml0ZW0oaSk7CisgICAgICAgIHRleHRUcmFja1JlbW92ZUN1ZSgqY3VlLnRyYWNrKCksIGN1ZSk7
CisgICAgfQogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZShUZXh0
VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
dGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYgdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogewot
ICAgIGlmICh0cmFjay0+bW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQpCisgICAg
aWYgKHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkKQogICAgICAgICBy
ZXR1cm47CiAKICAgICAvLyBOZWdhdGl2ZSBkdXJhdGlvbiBjdWVzIG5lZWQgYmUgdHJlYXRlZCBp
biB0aGUgaW50ZXJ2YWwgdHJlZSBhcwpAQCAtMTkxOSw3ICsxOTE5LDcgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRyYWNrQ3Vl
JiBjdWUpCiAgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcyhjdXJyZW50TWVkaWFUaW1lKCkp
OwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJh
Y2sqLCBUZXh0VHJhY2tDdWUmIGN1ZSkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNr
UmVtb3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYgY3VlKQogewogICAgIC8vIE5lZ2F0
aXZlIGR1cmF0aW9uIGN1ZXMgbmVlZCB0byBiZSB0cmVhdGVkIGluIHRoZSBpbnRlcnZhbCB0cmVl
IGFzCiAgICAgLy8gemVyby1sZW5ndGggY3Vlcy4KQEAgLTMyMTIsNiArMzIxMiw3IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6cGF1c2VJbnRlcm5hbCgpCiB9CiAKICNpZiBFTkFCTEUoTUVESUFf
U09VUkNFKQorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRldGFjaE1lZGlhU291cmNlKCkKIHsK
ICAgICBpZiAoIW1fbWVkaWFTb3VyY2UpCkBAIC0zMjIwLDYgKzMyMjEsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmRldGFjaE1lZGlhU291cmNlKCkKICAgICBtX21lZGlhU291cmNlLT5kZXRh
Y2hGcm9tRWxlbWVudCgqdGhpcyk7CiAgICAgbV9tZWRpYVNvdXJjZSA9IG51bGxwdHI7CiB9CisK
ICNlbmRpZgogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Omxvb3AoKSBjb25zdApAQCAtMzUwOCwx
NCArMzUxMCwxNCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkQWRkQXVk
aW9UcmFjayhBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2spCiAgICAgaWYgKGlzUGxheWluZygpICYm
ICFtX21lZGlhU2Vzc2lvbi0+cGxheWJhY2tQZXJtaXR0ZWQoKnRoaXMpKQogICAgICAgICBwYXVz
ZUludGVybmFsKCk7CiAKLSAgICBhZGRBdWRpb1RyYWNrKEF1ZGlvVHJhY2s6OmNyZWF0ZSh0aGlz
LCAmdHJhY2spKTsKKyAgICBhZGRBdWRpb1RyYWNrKEF1ZGlvVHJhY2s6OmNyZWF0ZSgqdGhpcywg
dHJhY2spKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckRpZEFkZFRl
eHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFjaykKIHsKICAgICAvLyA0LjguMTAu
MTIuMiBTb3VyY2luZyBpbi1iYW5kIHRleHQgdHJhY2tzCiAgICAgLy8gMS4gQXNzb2NpYXRlIHRo
ZSByZWxldmFudCBkYXRhIHdpdGggYSBuZXcgdGV4dCB0cmFjayBhbmQgaXRzIGNvcnJlc3BvbmRp
bmcgbmV3IFRleHRUcmFjayBvYmplY3QuCi0gICAgUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gdGV4
dFRyYWNrID0gSW5iYW5kVGV4dFRyYWNrOjpjcmVhdGUoQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCksIHRoaXMsICZ0cmFjayk7CisgICAgYXV0byB0ZXh0VHJhY2sgPSBJ
bmJhbmRUZXh0VHJhY2s6OmNyZWF0ZSgqQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksICp0aGlzLCB0cmFjayk7CiAgICAgdGV4dFRyYWNrLT5zZXRNZWRpYUVsZW1lbnQo
dGhpcyk7CiAgICAgCiAgICAgLy8gMi4gU2V0IHRoZSBuZXcgdGV4dCB0cmFjaydzIGtpbmQsIGxh
YmVsLCBhbmQgbGFuZ3VhZ2UgYmFzZWQgb24gdGhlIHNlbWFudGljcyBvZiB0aGUgcmVsZXZhbnQg
ZGF0YSwKQEAgLTM1NDEsMTIgKzM1NDMsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllckRpZEFkZFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFjaykKICAg
ICAvLyA5LiBGaXJlIGFuIGV2ZW50IHdpdGggdGhlIG5hbWUgYWRkdHJhY2ssIHRoYXQgZG9lcyBu
b3QgYnViYmxlIGFuZCBpcyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tF
dmVudAogICAgIC8vIGludGVyZmFjZSwgd2l0aCB0aGUgdHJhY2sgYXR0cmlidXRlIGluaXRpYWxp
emVkIHRvIHRoZSB0ZXh0IHRyYWNrJ3MgVGV4dFRyYWNrIG9iamVjdCwgYXQgdGhlIG1lZGlhIGVs
ZW1lbnQncwogICAgIC8vIHRleHRUcmFja3MgYXR0cmlidXRlJ3MgVGV4dFRyYWNrTGlzdCBvYmpl
Y3QuCi0gICAgYWRkVGV4dFRyYWNrKHRleHRUcmFjay5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICBh
ZGRUZXh0VHJhY2soV1RGTW92ZSh0ZXh0VHJhY2spKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjptZWRpYVBsYXllckRpZEFkZFZpZGVvVHJhY2soVmlkZW9UcmFja1ByaXZhdGUmIHRyYWNr
KQogewotICAgIGFkZFZpZGVvVHJhY2soVmlkZW9UcmFjazo6Y3JlYXRlKHRoaXMsICZ0cmFjaykp
OworICAgIGFkZFZpZGVvVHJhY2soVmlkZW9UcmFjazo6Y3JlYXRlKCp0aGlzLCB0cmFjaykpOwog
fQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkUmVtb3ZlQXVkaW9UcmFj
ayhBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2spCkBAIC0zNjAzLDkgKzM2MDUsOSBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnJlbW92ZUF1ZGlvVHJhY2soQXVkaW9UcmFjayYgdHJhY2spCiAKIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlVGV4dFRyYWNrKFRleHRUcmFjayYgdHJhY2ssIGJv
b2wgc2NoZWR1bGVFdmVudCkKIHsKLSAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSBzY29wZSh0
aGlzKTsKLSAgICBpZiAoVGV4dFRyYWNrQ3VlTGlzdCogY3VlcyA9IHRyYWNrLmN1ZXMoKSkKLSAg
ICAgICAgdGV4dFRyYWNrUmVtb3ZlQ3VlcygmdHJhY2ssIGN1ZXMpOworICAgIFRyYWNrRGlzcGxh
eVVwZGF0ZVNjb3BlIHNjb3BlIHsgKnRoaXMgfTsKKyAgICBpZiAoYXV0byogY3VlcyA9IHRyYWNr
LmN1ZXMoKSkKKyAgICAgICAgdGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0cmFjaywgKmN1ZXMpOwogICAg
IHRyYWNrLmNsZWFyQ2xpZW50KCk7CiAgICAgaWYgKG1fdGV4dFRyYWNrcykKICAgICAgICAgbV90
ZXh0VHJhY2tzLT5yZW1vdmUodHJhY2ssIHNjaGVkdWxlRXZlbnQpOwpAQCAtMzYyNSw3ICszNjI3
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpmb3JnZXRSZXNvdXJjZVNwZWNpZmljVHJhY2tz
KCkKICAgICAgICAgcmVtb3ZlQXVkaW9UcmFjaygqbV9hdWRpb1RyYWNrcy0+bGFzdEl0ZW0oKSk7
CiAKICAgICBpZiAobV90ZXh0VHJhY2tzKSB7Ci0gICAgICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNj
b3BlIHNjb3BlKHRoaXMpOworICAgICAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSBzY29wZSB7
ICp0aGlzIH07CiAgICAgICAgIGZvciAoaW50IGkgPSBtX3RleHRUcmFja3MtPmxlbmd0aCgpIC0g
MTsgaSA+PSAwOyAtLWkpIHsKICAgICAgICAgICAgIGF1dG8mIHRyYWNrID0gKm1fdGV4dFRyYWNr
cy0+aXRlbShpKTsKICAgICAgICAgICAgIGlmICh0cmFjay50cmFja1R5cGUoKSA9PSBUZXh0VHJh
Y2s6OkluQmFuZCkKQEAgLTYwNzgsMTIgKzYwODAsMTIgQEAgTWVkaWFDb250cm9sbGVyKiBIVE1M
TWVkaWFFbGVtZW50Ojpjb250cm9sbGVyKCkgY29uc3QKICAgICByZXR1cm4gbV9tZWRpYUNvbnRy
b2xsZXIuZ2V0KCk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0Q29udHJvbGxlcihQ
YXNzUmVmUHRyPE1lZGlhQ29udHJvbGxlcj4gY29udHJvbGxlcikKK3ZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2V0Q29udHJvbGxlcihSZWZQdHI8TWVkaWFDb250cm9sbGVyPiYmIGNvbnRyb2xsZXIp
CiB7CiAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyKQogICAgICAgICBtX21lZGlhQ29udHJvbGxl
ci0+cmVtb3ZlTWVkaWFFbGVtZW50KCp0aGlzKTsKIAotICAgIG1fbWVkaWFDb250cm9sbGVyID0g
Y29udHJvbGxlcjsKKyAgICBtX21lZGlhQ29udHJvbGxlciA9IFdURk1vdmUoY29udHJvbGxlcik7
CiAKICAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXIpCiAgICAgICAgIG1fbWVkaWFDb250cm9sbGVy
LT5hZGRNZWRpYUVsZW1lbnQoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAppbmRleCAwMjNjYzMzNjI4MzNmYTgwNjE5OWE0MTMwM2FmZjE5MDVjYmY2NWRmLi5jYTE4
OThkNmU2ZTIyMWExYWMxNTM1YTk3OTBhNTIxY2MyOWEyZTA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDctMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDctMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDEwICsyNywxMCBAQAogCiAjaWYgRU5BQkxFKFZJ
REVPKQogCi0jaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJBY3RpdmVET01PYmpl
Y3QuaCIKICNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkdlbmVyaWNU
YXNrUXVldWUuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxNZWRp
YUVsZW1lbnRFbnVtcy5oIgogI2luY2x1ZGUgIk1lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oIgogI2lu
Y2x1ZGUgIk1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oIgpAQCAtNjksOSArNjksNyBAQCBjbGFz
cyBNZWRpYUNvbnRyb2xzOwogY2xhc3MgTWVkaWFDb250cm9sc0hvc3Q7CiBjbGFzcyBNZWRpYUVs
ZW1lbnRBdWRpb1NvdXJjZU5vZGU7CiBjbGFzcyBNZWRpYUVycm9yOwotI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCiBjbGFzcyBNZWRpYUtleXM7Ci0jZW5kaWYKIGNsYXNzIE1lZGlhUGxheWVy
OwogY2xhc3MgTWVkaWFTZXNzaW9uOwogY2xhc3MgTWVkaWFTb3VyY2U7CkBAIC04MSw3ICs3OSw2
IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBTb3VyY2VCdWZmZXI7CiBj
bGFzcyBUZXh0VHJhY2tMaXN0OwogY2xhc3MgVGltZVJhbmdlczsKLWNsYXNzIFVSTDsKIGNsYXNz
IFZpZGVvUGxheWJhY2tRdWFsaXR5OwogY2xhc3MgVmlkZW9UcmFja0xpc3Q7CiBjbGFzcyBWaWRl
b1RyYWNrUHJpdmF0ZTsKQEAgLTMzMSwyMCArMzI4LDIwIEBAIHB1YmxpYzoKICAgICB2b2lkIHVw
ZGF0ZVRleHRUcmFja0Rpc3BsYXkoKTsKIAogICAgIC8vIEF1ZGlvVHJhY2tDbGllbnQKLSAgICB2
b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKikgb3ZlcnJpZGU7CisgICAg
dm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayYpIGZpbmFsOwogCiAgICAg
dm9pZCB0ZXh0VHJhY2tSZWFkeVN0YXRlQ2hhbmdlZChUZXh0VHJhY2sqKTsKIAogICAgIC8vIFRl
eHRUcmFja0NsaWVudAotICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrKikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRy
YWNrQ3VlTGlzdCopIG92ZXJyaWRlOwotICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0
VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0Kikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0
VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgb3ZlcnJpZGU7
CisgICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2smKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIG92ZXJyaWRlOworICAgIHZv
aWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0Jikg
b3ZlcnJpZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0
IFRleHRUcmFja0N1ZUxpc3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRleHRUcmFja0FkZEN1ZShU
ZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRleHRUcmFja1Jl
bW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlkZTsKIAogICAgIC8vIFZp
ZGVvVHJhY2tDbGllbnQKLSAgICB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9U
cmFjayopIG92ZXJyaWRlOworICAgIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRl
b1RyYWNrJikgZmluYWw7CiAKICAgICBib29sIHJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24oKSBjb25zdDsKICAgICB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFRleHRUcmFj
a1JlcHJlc2VudGF0aW9uKik7CkBAIC00MjIsNyArNDE5LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0TWVkaWFHcm91cChjb25zdCBTdHJpbmcmKTsKIAogICAgIE1lZGlhQ29udHJvbGxlciogY29u
dHJvbGxlcigpIGNvbnN0OwotICAgIHZvaWQgc2V0Q29udHJvbGxlcihQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbGxlcj4pOworICAgIHZvaWQgc2V0Q29udHJvbGxlcihSZWZQdHI8TWVkaWFDb250cm9s
bGVyPiYmKTsKIAogICAgIHZvaWQgZW50ZXJlZE9yRXhpdGVkRnVsbHNjcmVlbigpIHsgY29uZmln
dXJlTWVkaWFDb250cm9scygpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5jcHAKaW5kZXggYmRlNmFlMjM1ZmQyZDQ0NzlkYWZiNjg5NDBmNzE5YjAyYzM0OGNmMy4u
MmVlYjQzZWQzOWFjYjVlMmM4OTg1ZDlhMzYyMDU4ODk3N2M5YjFkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmln
aHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykg
MTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykg
MjAwMCBTdGVmYW4gU2NoaW1hbnNraSAoMVN0ZWluQGdteC5kZSkKLSAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNTE5LDExICs1
MTksNiBAQCBib29sIEhUTUxPYmplY3RFbGVtZW50OjphcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxp
c3QmIGVuY29kaW5nLCBib29sKQogICAgIHJldHVybiB0cnVlOwogfQogCi1IVE1MRm9ybUVsZW1l
bnQqIEhUTUxPYmplY3RFbGVtZW50Ojp2aXJ0dWFsRm9ybSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybSgpOwotfQotCiBib29sIEhUTUxPYmplY3RFbGVt
ZW50OjpjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0CiB7CiAgICAgLy8gQ2FsbCB0aHJv
dWdoIHRvIEhUTUxFbGVtZW50IGJlY2F1c2Ugd2UgbmVlZCB0byBza2lwIEhUTUxQbHVnSW5FbGVt
ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKaW5kZXggZTNjNTVlNGYw
NTUxZTZjNmY1OWRmNDc3NTc4ZmY5NjgyMmRhZmVkOS4uOWVhODkzYjAxZDRjMDI2ZWUxNTdhMjM4
YWI1NjcxNGE1NDk3ZTYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQu
aApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29p
dmlzdG9Aa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAwNywgMjAwOCwg
MjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHVzaW5nIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OnJlZjsKICAgICB1c2luZyBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpkZXJlZjsKIAot
ICAgIHVzaW5nIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybTsKKyAgICBIVE1MRm9ybUVsZW1l
bnQqIGZvcm0oKSBjb25zdCBmaW5hbCB7IHJldHVybiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZv
cm0oKTsgfQogCiBwcml2YXRlOgogICAgIEhUTUxPYmplY3RFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2Vy
KTsKQEAgLTkxLDcgKzkxLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVmRm9ybUFzc29jaWF0
ZWRFbGVtZW50KCkgZmluYWwgeyByZWYoKTsgfQogICAgIHZvaWQgZGVyZWZGb3JtQXNzb2NpYXRl
ZEVsZW1lbnQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KLSAgICBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1
YWxGb3JtKCkgY29uc3QgZmluYWw7CiAKICAgICBGb3JtTmFtZWRJdGVtKiBhc0Zvcm1OYW1lZEl0
ZW0oKSBmaW5hbCB7IHJldHVybiB0aGlzOyB9CiAgICAgSFRNTE9iamVjdEVsZW1lbnQmIGFzSFRN
TEVsZW1lbnQoKSBmaW5hbCB7IHJldHVybiAqdGhpczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPcHRpb25FbGVtZW50LmNwcAppbmRleCA5YTMwNWZmMWY3MjYwMjJiNWYzZjcyMDMyNzhjMDY2
YmQ0MWY1OWZkLi44ZmJlNTFlZGIxNzdhMGMyNzEzYjYwMWNlODM2ODBjZTJlZmVkZDcyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcApAQCAtMyw3ICszLDcgQEAK
ICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykK
ICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKICAq
ICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMTAsIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTW90b3JvbGEgTW9i
aWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMzM0LDcgKzMzNCw3IEBA
IFN0cmluZyBIVE1MT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvbklubmVyVGV4dCgpIGNvbnN0
CiAgICAgICAgIGlmIChpczxUZXh0Pigqbm9kZSkpCiAgICAgICAgICAgICB0ZXh0LmFwcGVuZChu
b2RlLT5ub2RlVmFsdWUoKSk7CiAgICAgICAgIC8vIFRleHQgbm9kZXMgaW5zaWRlIHNjcmlwdCBl
bGVtZW50cyBhcmUgbm90IHBhcnQgb2YgdGhlIG9wdGlvbiB0ZXh0LgotICAgICAgICBpZiAoaXM8
RWxlbWVudD4oKm5vZGUpICYmIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZG93bmNhc3Q8RWxl
bWVudD4obm9kZSkpKQorICAgICAgICBpZiAoaXM8RWxlbWVudD4oKm5vZGUpICYmIGlzU2NyaXB0
RWxlbWVudChkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkpKQogICAgICAgICAgICAgbm9kZSA9IE5v
ZGVUcmF2ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKCpub2RlLCB0aGlzKTsKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoKm5vZGUsIHRoaXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAppbmRleCBhODY0ZTg3
ZWFmZDQyODNlNTRmMWU0MGJmZWNmOTIyNWE1Y2I1ZGQ2Li5jZTZkM2I2OGYyNjJjYzJjMzI2MjU1
MjUyMzAzNGZmNzFlNjA0MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVt
ZW50LmNwcApAQCAtMSw4ICsxLDggQEAKLS8qKgorLyoKICAqIENvcHlyaWdodCAoQykgMTk5OSBM
YXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtv
aXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAwIFN0ZWZhbiBT
Y2hpbWFuc2tpICgxU3RlaW5AZ214LmRlKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2LCAyMDE0IEFwcGxlIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTA4LDIxICsx
MDgsMjAgQEAgdm9pZCBIVE1MUGx1Z0luRWxlbWVudDo6cmVzZXRJbnN0YW5jZSgpCiAgICAgbV9p
bnN0YW5jZSA9IG51bGxwdHI7CiB9CiAKLVBhc3NSZWZQdHI8SlNDOjpCaW5kaW5nczo6SW5zdGFu
Y2U+IEhUTUxQbHVnSW5FbGVtZW50OjpnZXRJbnN0YW5jZSgpCitKU0M6OkJpbmRpbmdzOjpJbnN0
YW5jZSogSFRNTFBsdWdJbkVsZW1lbnQ6OmJpbmRpbmdzSW5zdGFuY2UoKQogewotICAgIEZyYW1l
KiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50
KCkuZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBJZiB0aGUgaG9zdCBkeW5hbWljYWxseSB0dXJucyBv
ZmYgSmF2YVNjcmlwdCAob3IgSmF2YSkgd2Ugd2lsbCBzdGlsbCByZXR1cm4KICAgICAvLyB0aGUg
Y2FjaGVkIGFsbG9jYXRlZCBCaW5kaW5nczo6SW5zdGFuY2UuICBOb3Qgc3VwcG9ydGluZyB0aGlz
IGVkZ2UtY2FzZSBpcyBPSy4KLSAgICBpZiAobV9pbnN0YW5jZSkKLSAgICAgICAgcmV0dXJuIG1f
aW5zdGFuY2U7Ci0KLSAgICBpZiAoV2lkZ2V0KiB3aWRnZXQgPSBwbHVnaW5XaWRnZXQoKSkKLSAg
ICAgICAgbV9pbnN0YW5jZSA9IGZyYW1lLT5zY3JpcHQoKS5jcmVhdGVTY3JpcHRJbnN0YW5jZUZv
cldpZGdldCh3aWRnZXQpOwogCi0gICAgcmV0dXJuIG1faW5zdGFuY2U7CisgICAgaWYgKCFtX2lu
c3RhbmNlKSB7CisgICAgICAgIGlmIChhdXRvKiB3aWRnZXQgPSBwbHVnaW5XaWRnZXQoKSkKKyAg
ICAgICAgICAgIG1faW5zdGFuY2UgPSBmcmFtZS0+c2NyaXB0KCkuY3JlYXRlU2NyaXB0SW5zdGFu
Y2VGb3JXaWRnZXQod2lkZ2V0KTsKKyAgICB9CisgICAgcmV0dXJuIG1faW5zdGFuY2UuZ2V0KCk7
CiB9CiAKIGJvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6Omd1YXJkZWREaXNwYXRjaEJlZm9yZUxvYWRF
dmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKQEAgLTE5OSw3ICsxOTgsNyBAQCB2b2lkIEhU
TUxQbHVnSW5FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKICAgICAg
ICAgfQogCiAgICAgICAgIGlmIChpczxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbj4oKnJlbmRlcmVy
KSAmJiBkaXNwbGF5U3RhdGUoKSA8IFJlc3RhcnRpbmcpIHsKLSAgICAgICAgICAgIGRvd25jYXN0
PFJlbmRlclNuYXBzaG90dGVkUGx1Z0luPigqcmVuZGVyZXIpLmhhbmRsZUV2ZW50KCZldmVudCk7
CisgICAgICAgICAgICBkb3duY2FzdDxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbj4oKnJlbmRlcmVy
KS5oYW5kbGVFdmVudChldmVudCk7CiAgICAgICAgICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKaW5kZXggNWI4YzVhZDQy
ODJhYmY5NWEwNTI2MjhiMjhmZTlkNDAxYTljNzc4My4uODkyNzFjNDhiM2RiMGQ3YmMyOWI1YmU5
NTVlNWVkNGIwZWNiOGE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
aApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29p
dmlzdG9Aa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAwNywgMjAwOCwg
MjAwOSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXNldEluc3Rh
bmNlKCk7CiAKLSAgICBQYXNzUmVmUHRyPEpTQzo6QmluZGluZ3M6Okluc3RhbmNlPiBnZXRJbnN0
YW5jZSgpOworICAgIEpTQzo6QmluZGluZ3M6Okluc3RhbmNlKiBiaW5kaW5nc0luc3RhbmNlKCk7
CiAKICAgICBlbnVtIGNsYXNzIFBsdWdpbkxvYWRpbmdQb2xpY3kgeyBEb05vdExvYWQsIExvYWQg
fTsKICAgICBXRUJDT1JFX0VYUE9SVCBXaWRnZXQqIHBsdWdpbldpZGdldChQbHVnaW5Mb2FkaW5n
UG9saWN5ID0gUGx1Z2luTG9hZGluZ1BvbGljeTo6TG9hZCkgY29uc3Q7CkBAIC02MCw3ICs2MCw3
IEBAIHB1YmxpYzoKICAgICB9OwogICAgIERpc3BsYXlTdGF0ZSBkaXNwbGF5U3RhdGUoKSBjb25z
dCB7IHJldHVybiBtX2Rpc3BsYXlTdGF0ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXREaXNwbGF5
U3RhdGUoRGlzcGxheVN0YXRlKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU25hcHNob3QoUGFz
c1JlZlB0cjxJbWFnZT4pIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTbmFwc2hvdChJbWFn
ZSopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFBlbmRpbmdNb3VzZUNsaWNrKCkgeyB9
CiAgICAgdmlydHVhbCBib29sIGlzUmVzdGFydGVkUGx1Z2luKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5j
cHAKaW5kZXggZmEyMzQ3YjYwYTk2MmI2MDVlM2U3OTg2NTBjMTMxYThiMmIyNWE4OC4uMmE3NjI4
YTJjY2Q2ZDJkMjI0ZjQ4ZGEzNDdiN2M5MTcyYzVkN2U2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTcxLDcgKzE3MSw3IEBAIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVuZGVyU3R5CiAKICAgICBpZiAoZGlzcGxheVN0YXRlKCkgPT0gRGlzcGxheWluZ1NuYXBzaG90
KSB7CiAgICAgICAgIGF1dG8gcmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gPSBjcmVhdGVSZW5kZXJl
cjxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbj4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKLSAgICAg
ICAgcmVuZGVyU25hcHNob3R0ZWRQbHVnSW4tPnVwZGF0ZVNuYXBzaG90KG1fc25hcHNob3RJbWFn
ZSk7CisgICAgICAgIHJlbmRlclNuYXBzaG90dGVkUGx1Z0luLT51cGRhdGVTbmFwc2hvdChtX3Nu
YXBzaG90SW1hZ2UuZ2V0KCkpOwogICAgICAgICByZXR1cm4gV1RGTW92ZShyZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbik7CiAgICAgfQogCkBAIC0zMDEsNyArMzAxLDcgQEAgdm9pZCBIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50OjpzdGFydExvYWRpbmdJbWFnZSgpCiAgICAgbV9pbWFnZUxvYWRlci0+dXBk
YXRlRnJvbUVsZW1lbnQoKTsKIH0KIAotdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRh
dGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKK3ZvaWQgSFRNTFBsdWdJbkltYWdl
RWxlbWVudDo6dXBkYXRlU25hcHNob3QoSW1hZ2UqIGltYWdlKQogewogICAgIGlmIChkaXNwbGF5
U3RhdGUoKSA+IERpc3BsYXlpbmdTbmFwc2hvdCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAppbmRleCBhM2Y3ZTEwOGNmOTJl
MDVhOWJiOGRhNGRhNjkyYWY0MDBmZDA2YTQ2Li5iMWM3NjI2YTNjNGU5NGM5Y2RkMDhkOGZmYTJk
YTFjMzRmMzVmYjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5J
bWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTExOCw3ICsxMTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hQZW5kaW5nTW91c2VDbGljaygpIGZpbmFs
OwogCi0gICAgdm9pZCB1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPikgZmluYWw7Cisg
ICAgdm9pZCB1cGRhdGVTbmFwc2hvdChJbWFnZSopIGZpbmFsOwogCiAgICAgdm9pZCBzdGFydExv
YWRpbmdJbWFnZSgpOwogICAgIHZvaWQgdXBkYXRlV2lkZ2V0SWZOZWNlc3NhcnkoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggZWRjMjdiOWE1MDAzOWNl
YzMwMWI2YjhmNWNjMmJhYTM0ZjM4M2MwMi4uN2EyYjgyZGVjNDRlYmQ4OGI1NjYxNWY0NjU2ZWU3
ZmE1NTgyYTdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAK
QEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxA
a2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9A
a2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2Rl
Lm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAppbmRleCBmMmJkNTI1Yzc0ZGRk
M2Q3YjhhMWZjMWU5NjkyNTJlODYzY2RmNTc1Li4zMmQ4ZWUwMzg0YzIxNWY4YzFiNWM0OTk3Y2M4
NjgxODViZmYxODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCkBA
IC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9s
bEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0
b0BrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3
LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwMy0yMDE3IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAw
OCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBA
IC00Myw2ICs0Myw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENyb3Nz
T3JpZ2luKGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBj
cm9zc09yaWdpbigpIGNvbnN0OwogCisgICAgdXNpbmcgSFRNTEVsZW1lbnQ6OnJlZjsKKyAgICB1
c2luZyBIVE1MRWxlbWVudDo6ZGVyZWY7CisKIHByaXZhdGU6CiAgICAgSFRNTFNjcmlwdEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFy
c2VyLCBib29sIGFscmVhZHlTdGFydGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA3ZGI5MTRmNzA2YjNhNmZhZjk0
MzRhOGYyNGVlMTIxODE1YTc0ZGYyLi5hOWE1Mzc0Y2M2YTRiMTJhNzBmMmI5ODQ2M2I5ZjlmODhj
Njk4OTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJz
IEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZp
c3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxl
ciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAy
MDA3LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAg
ICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgpAQCAtNDI3LDcgKzQyNyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRDb250YWluZXJBbmRP
ZmZzZXRGb3JSYW5nZShOb2RlKiBub2RlLCBpbnQgb2Zmc2V0LCBOb2RlKiYKICAgICB9CiB9CiAK
LVBhc3NSZWZQdHI8UmFuZ2U+IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3Rpb24o
KSBjb25zdAorUmVmUHRyPFJhbmdlPiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0
aW9uKCkgY29uc3QKIHsKICAgICBpZiAoIXJlbmRlcmVyKCkgfHwgIWlzVGV4dEZvcm1Db250cm9s
KCkgfHwgIWhhc0NhY2hlZFNlbGVjdGlvbigpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRl
eCA0YTYzZTk3MWFhYjFmZWI1ZDM0NmRjNDIyMzFiNmIxMjY2YzBiNjNmLi4xMjhiMDMxOGIwN2U2
ZmI4NDgyZWE2ZGRmNGU4M2Q1NjZmODhlMzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJp
Z2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMp
IDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMp
IDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwLCAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNzQsNyAr
NzQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBFeGNlcHRpb25Pcjx2
b2lkPiBzZXRSYW5nZVRleHQoY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudCwgdW5zaWduZWQgc3Rh
cnQsIHVuc2lnbmVkIGVuZCwgY29uc3QgU3RyaW5nJiBzZWxlY3Rpb25Nb2RlKTsKICAgICB2b2lk
IHNldFNlbGVjdGlvblJhbmdlKGludCBzdGFydCwgaW50IGVuZCwgY29uc3QgU3RyaW5nJiBkaXJl
Y3Rpb24sIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50KCkpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW50
IHN0YXJ0LCBpbnQgZW5kLCBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gPSBTZWxlY3Rpb25I
YXNOb0RpcmVjdGlvbiwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmID0gQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQoKSk7Ci0gICAgUGFzc1JlZlB0cjxSYW5nZT4gc2VsZWN0aW9uKCkgY29u
c3Q7CisgICAgUmVmUHRyPFJhbmdlPiBzZWxlY3Rpb24oKSBjb25zdDsKICAgICBTdHJpbmcgc2Vs
ZWN0ZWRUZXh0KCkgY29uc3Q7CiAKICAgICB2b2lkIGRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VF
dmVudCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKaW5k
ZXggMDdmNDJkOTlmOGQ3YjQ4YTliYTI0MWI0YzQ3MWQ1NzlmNTVlOGJkNS4uNjY4YjgxMmI4Y2Vm
NTMxNzczMDlmYzU4MmQ4Yjk0NjE3M2RhZDM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
cmFja0VsZW1lbnQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC00Miw2ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKICNpZiAhTE9HX0RJU0FCTEVECisKIHN0YXRp
YyBTdHJpbmcgdXJsRm9yTG9nZ2luZ1RyYWNrKGNvbnN0IFVSTCYgdXJsKQogewogICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBtYXhpbXVtVVJMTGVuZ3RoRm9yTG9nZ2luZyA9IDEyODsKQEAgLTUw
LDYgKzUyLDcgQEAgc3RhdGljIFN0cmluZyB1cmxGb3JMb2dnaW5nVHJhY2soY29uc3QgVVJMJiB1
cmwpCiAgICAgICAgIHJldHVybiB1cmwuc3RyaW5nKCk7CiAgICAgcmV0dXJuIHVybC5zdHJpbmco
KS5zdWJzdHJpbmcoMCwgbWF4aW11bVVSTExlbmd0aEZvckxvZ2dpbmcpICsgIi4uLiI7CiB9CisK
ICNlbmRpZgogICAgIAogaW5saW5lIEhUTUxUcmFja0VsZW1lbnQ6OkhUTUxUcmFja0VsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtMjc5
LDQzICsyODIsNDMgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MVHJhY2tFbGVtZW50OjptZWRp
YUVsZW1lbnRDcm9zc09yaWdpbkF0dHJpYnV0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG51bGxBdG9t
OwogfQogCi12b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRU
cmFjayogdHJhY2spCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0tpbmRDaGFuZ2Vk
KFRleHRUcmFjayYgdHJhY2spCiB7Ci0gICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIHBhcmVudCA9
IG1lZGlhRWxlbWVudCgpKQorICAgIGlmIChhdXRvKiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkK
ICAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tLaW5kQ2hhbmdlZCh0cmFjayk7CiB9CiAKLXZvaWQg
SFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykK
K3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrJiB0
cmFjaykKIHsKICAgICAvLyBTaW5jZSB3ZSd2ZSBtb3ZlZCB0byBhIG5ldyBwYXJlbnQsIHdlIG1h
eSBub3cgYmUgYWJsZSB0byBsb2FkLgogICAgIGlmIChyZWFkeVN0YXRlKCkgPT0gSFRNTFRyYWNr
RWxlbWVudDo6Tk9ORSkKICAgICAgICAgc2NoZWR1bGVMb2FkKCk7CiAKLSAgICBpZiAoSFRNTE1l
ZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVu
dCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja01vZGVDaGFuZ2Vk
KHRyYWNrKTsKIH0KIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKFRl
eHRUcmFjayogdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMpCit2b2lkIEhUTUxU
cmFja0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiB0cmFjaywgY29uc3QgVGV4
dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50
ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgp
KQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja0FkZEN1ZXModHJhY2ssIGN1ZXMpOwogfQogICAg
IAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayog
dHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMpCit2b2lkIEhUTUxUcmFja0VsZW1l
bnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiB0cmFjaywgY29uc3QgVGV4dFRyYWNr
Q3VlTGlzdCYgY3VlcykKIHsKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVk
aWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAg
ICAgICBwYXJlbnQtPnRleHRUcmFja1JlbW92ZUN1ZXModHJhY2ssIGN1ZXMpOwogfQogICAgIAot
dm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiB0cmFjaywg
VGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1
ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKLSAgICBpZiAoSFRNTE1l
ZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVu
dCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja0FkZEN1ZSh0cmFj
aywgY3VlKTsKIH0KICAgICAKLXZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrUmVtb3Zl
Q3VlKFRleHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBIVE1MVHJhY2tF
bGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiB0cmFjaywgVGV4dFRyYWNrQ3Vl
JiBjdWUpCiB7Ci0gICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIHBhcmVudCA9IG1lZGlhRWxlbWVu
dCgpKQorICAgIGlmIChhdXRvKiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAgcGFy
ZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUodHJhY2ssIGN1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVHJhY2tFbGVtZW50LmgKaW5kZXggOWI0MjVkY2Q4NWQxZTBkNGYzNjBjODZkMmVhNjJk
MTkwOGU0YjdiMC4uMjI1MTAyNzljZGYyYmJlMjE5ZTUyM2MxNzlmNjI2ZDMzZGY3OTBiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc0LDEyICs3NSwxMiBAQCBwcml2
YXRlOgogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCgpIGNvbnN0OwogCiAgICAg
Ly8gVGV4dFRyYWNrQ2xpZW50Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJh
Y2sqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayopIGZp
bmFsOwotICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJh
Y2tDdWVMaXN0KikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFj
ayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0Fk
ZEN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFj
a1JlbW92ZUN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHRl
eHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNr
S2luZENoYW5nZWQoVGV4dFRyYWNrJikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWVz
KFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBmaW5hbDsKKyAgICB2b2lkIHRl
eHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIGZp
bmFsOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYp
IGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFj
a0N1ZSYpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5Mb2FkVVJMKGNvbnN0IFVSTCYpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggZjZhNmJiYzQ2NGI5YWZhMzhkNTdiNGQxZWM0N2Nm
M2NjYTkyNjZkNC4uM2E4NjFhZDY2MDQ5NTQxZDY3YTE0YzJjZWZkZDRkMWU1NjUxMTMzNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAo
QykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5
IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAx
IERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEzLCAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4
ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2Ft
dWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAs
IDIwMTEsIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTQ4MiwxMSAr
NDgyLDYgQEAgYm9vbCBJbnB1dFR5cGU6OnNob3VsZFN1Ym1pdEltcGxpY2l0bHkoRXZlbnQmIGV2
ZW50KQogICAgIHJldHVybiBpczxLZXlib2FyZEV2ZW50PihldmVudCkgJiYgZXZlbnQudHlwZSgp
ID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50ICYmIGRvd25jYXN0PEtleWJvYXJkRXZlbnQ+
KGV2ZW50KS5jaGFyQ29kZSgpID09ICdccic7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTEZvcm1FbGVt
ZW50PiBJbnB1dFR5cGU6OmZvcm1Gb3JTdWJtaXNzaW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
ZWxlbWVudCgpLmZvcm0oKTsKLX0KLQogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IElucHV0VHlw
ZTo6Y3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlKQogewogICAgIHJldHVy
biBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4oUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKGVsZW1l
bnQoKSwgV1RGTW92ZShzdHlsZSkpKTsKQEAgLTU1MSw3ICs1NDYsNyBAQCBDaHJvbWUqIElucHV0
VHlwZTo6Y2hyb21lKCkgY29uc3QKIHsKICAgICBpZiAoUGFnZSogcGFnZSA9IGVsZW1lbnQoKS5k
b2N1bWVudCgpLnBhZ2UoKSkKICAgICAgICAgcmV0dXJuICZwYWdlLT5jaHJvbWUoKTsKLSAgICBy
ZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnB1dFR5cGU6OmNhblNl
dFN0cmluZ1ZhbHVlKCkgY29uc3QKQEAgLTYzNiw3ICs2MzEsNyBAQCBib29sIElucHV0VHlwZTo6
Y2FuQmVTdWNjZXNzZnVsU3VibWl0QnV0dG9uKCkKIAogSFRNTEVsZW1lbnQqIElucHV0VHlwZTo6
cGxhY2Vob2xkZXJFbGVtZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAogYm9vbCBJbnB1dFR5cGU6OnJlbmRlcmVySXNOZWVkZWQoKQpAQCAtNjQ2
LDEwICs2NDEsMTAgQEAgYm9vbCBJbnB1dFR5cGU6OnJlbmRlcmVySXNOZWVkZWQoKQogCiBGaWxl
TGlzdCogSW5wdXRUeXBlOjpmaWxlcygpCiB7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0
PikKK3ZvaWQgSW5wdXRUeXBlOjpzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+JiYpCiB7CiB9CiAK
QEAgLTczMSwyNSArNzI2LDI5IEBAIFN0cmluZyBJbnB1dFR5cGU6OnNhbml0aXplVmFsdWUoY29u
c3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zdAogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQ
UE9SVCkKKwogYm9vbCBJbnB1dFR5cGU6OnJlY2VpdmVEcm9wcGVkRmlsZXMoY29uc3QgRHJhZ0Rh
dGEmKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0K
KwogI2VuZGlmCiAKIEljb24qIElucHV0VHlwZTo6aWNvbigpIGNvbnN0CiB7CiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
ICNpZiBQTEFURk9STShJT1MpCisKIFN0cmluZyBJbnB1dFR5cGU6OmRpc3BsYXlTdHJpbmcoKSBj
b25zdAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsK
IH0KKwogI2VuZGlmCiAKIGJvb2wgSW5wdXRUeXBlOjpzaG91bGRSZXNldE9uRG9jdW1lbnRBY3Rp
dmF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGM0YmU3M2Q0MDA0ZDY4ZDkxMzBi
OWFiOTQ2YTE3MDBlNzAzM2RlMjQuLjk4Y2ZmODlhYWI4YjU5YWI5NTZlNDM2MDI4NTFjMGE4NGM0
OWJjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMTkyLDcgKzE5Miw2IEBAIHB1Ymxp
YzoKICAgICAvLyBIZWxwZXJzIGZvciBldmVudCBoYW5kbGVycy4KIAogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRTdWJtaXRJbXBsaWNpdGx5KEV2ZW50Jik7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRy
PEhUTUxGb3JtRWxlbWVudD4gZm9ybUZvclN1Ym1pc3Npb24oKSBjb25zdDsKICAgICB2aXJ0dWFs
IGJvb2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0tl
eWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
aXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0OwpAQCAtMjM5LDcgKzIzOCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgbWF4UmVzdWx0c0F0dHJpYnV0ZUNoYW5nZWQoKTsKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUmVzcGVjdEFsaWduQXR0cmlidXRlKCk7CiAgICAgdmlydHVhbCBGaWxlTGlz
dCogZmlsZXMoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlz
dD4pOworICAgIHZpcnR1YWwgdm9pZCBzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+JiYpOwogICAg
IHZpcnR1YWwgSWNvbiogaWNvbigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTZW5k
Q2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCBib29sIGNhblNl
dFZhbHVlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Q
bHVnaW5Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNw
cAppbmRleCBmMzUxZjk3OTUxNWY1Y2VjOWE0OTk0ZTBkNzVkMDFkYzQyMTg5NjA1Li5iYjMwMGIw
ZmZiOWYzYmM3YTRhYzdkMmViYWU0YzkwNWFjNjBkNmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bs
dWdpbkRvY3VtZW50LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MywxNSArNTMsMTMgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBQbHVnaW5Eb2N1bWVudFBhcnNlcihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
ICAgIDogUmF3RGF0YURvY3VtZW50UGFyc2VyKGRvY3VtZW50KQotICAgICAgICAsIG1fZW1iZWRF
bGVtZW50KDApCiAgICAgewogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kQnl0ZXMoRG9jdW1lbnRX
cml0ZXImLCBjb25zdCBjaGFyKiwgc2l6ZV90KSBvdmVycmlkZTsKLQorICAgIHZvaWQgYXBwZW5k
Qnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBjb25zdCBjaGFyKiwgc2l6ZV90KSBmaW5hbDsKICAgICB2
b2lkIGNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCk7CiAKLSAgICBIVE1MRW1iZWRFbGVtZW50KiBt
X2VtYmVkRWxlbWVudDsKKyAgICBIVE1MRW1iZWRFbGVtZW50KiBtX2VtYmVkRWxlbWVudCB7IG51
bGxwdHIgfTsKIH07CiAKIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50
U3RydWN0dXJlKCkKQEAgLTEwNCw3ICsxMDIsNyBAQCB2b2lkIFBsdWdpbkRvY3VtZW50UGFyc2Vy
OjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAgICAgaWYgKGF1dG8qIGxvYWRlciA9IGRvY3Vt
ZW50LmxvYWRlcigpKQogICAgICAgICBtX2VtYmVkRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91
dFN5bmNocm9uaXphdGlvbih0eXBlQXR0ciwgbG9hZGVyLT53cml0ZXIoKS5taW1lVHlwZSgpKTsK
IAotICAgIGRvY3VtZW50LnNldFBsdWdpbkVsZW1lbnQobV9lbWJlZEVsZW1lbnQpOworICAgIGRv
Y3VtZW50LnNldFBsdWdpbkVsZW1lbnQoKm1fZW1iZWRFbGVtZW50KTsKIAogICAgIGJvZHktPmFw
cGVuZENoaWxkKGVtYmVkRWxlbWVudCk7CiB9CkBAIC0xMTYsNyArMTE0LDcgQEAgdm9pZCBQbHVn
aW5Eb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBjb25zdCBjaGFy
Kiwgc2l6ZV90KQogCiAgICAgY3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKTsKIAotICAgIEZyYW1l
KiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgYXV0byogZnJhbWUgPSBkb2N1bWVu
dCgpLT5mcmFtZSgpOwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTQy
LDcgKzE0MCw2IEBAIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5dGVzKERvY3Vt
ZW50V3JpdGVyJiwgY29uc3QgY2hhciosIHNpemVfdCkKIAogUGx1Z2luRG9jdW1lbnQ6OlBsdWdp
bkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgOiBIVE1MRG9jdW1l
bnQoZnJhbWUsIHVybCwgUGx1Z2luRG9jdW1lbnRDbGFzcykKLSAgICAsIG1fc2hvdWxkTG9hZFBs
dWdpbk1hbnVhbGx5KHRydWUpCiB7CiAgICAgc2V0Q29tcGF0aWJpbGl0eU1vZGUoRG9jdW1lbnRD
b21wYXRpYmlsaXR5TW9kZTo6UXVpcmtzTW9kZSk7CiAgICAgbG9ja0NvbXBhdGliaWxpdHlNb2Rl
KCk7CkBAIC0xNTUsMTQgKzE1MiwxNyBAQCBSZWY8RG9jdW1lbnRQYXJzZXI+IFBsdWdpbkRvY3Vt
ZW50OjpjcmVhdGVQYXJzZXIoKQogCiBXaWRnZXQqIFBsdWdpbkRvY3VtZW50OjpwbHVnaW5XaWRn
ZXQoKQogewotICAgIGlmIChtX3BsdWdpbkVsZW1lbnQgJiYgbV9wbHVnaW5FbGVtZW50LT5yZW5k
ZXJlcigpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyRW1iZWRkZWRPYmplY3Q+KCpt
X3BsdWdpbkVsZW1lbnQtPnJlbmRlcmVyKCkpLndpZGdldCgpOwotICAgIHJldHVybiBudWxscHRy
OworICAgIGlmICghbV9wbHVnaW5FbGVtZW50KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICBhdXRvKiByZW5kZXJlciA9IG1fcGx1Z2luRWxlbWVudC0+cmVuZGVyZXIoKTsKKyAgICBpZiAo
IXJlbmRlcmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gZG93bmNhc3Q8
UmVuZGVyRW1iZWRkZWRPYmplY3Q+KCptX3BsdWdpbkVsZW1lbnQtPnJlbmRlcmVyKCkpLndpZGdl
dCgpOwogfQogCi12b2lkIFBsdWdpbkRvY3VtZW50OjpzZXRQbHVnaW5FbGVtZW50KFBhc3NSZWZQ
dHI8SFRNTFBsdWdJbkVsZW1lbnQ+IGVsZW1lbnQpCit2b2lkIFBsdWdpbkRvY3VtZW50OjpzZXRQ
bHVnaW5FbGVtZW50KEhUTUxQbHVnSW5FbGVtZW50JiBlbGVtZW50KQogewotICAgIG1fcGx1Z2lu
RWxlbWVudCA9IGVsZW1lbnQ7CisgICAgbV9wbHVnaW5FbGVtZW50ID0gJmVsZW1lbnQ7CiB9CiAK
IHZvaWQgUGx1Z2luRG9jdW1lbnQ6OmRldGFjaEZyb21QbHVnaW5FbGVtZW50KCkKQEAgLTE3OSw5
ICsxNzksMTAgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudDo6Y2FuY2VsTWFudWFsUGx1Z2luTG9hZCgp
CiAgICAgaWYgKCFzaG91bGRMb2FkUGx1Z2luTWFudWFsbHkoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWUoKS0+bG9hZGVyKCku
YWN0aXZlRG9jdW1lbnRMb2FkZXIoKTsKLSAgICBkb2N1bWVudExvYWRlci0+Y2FuY2VsTWFpblJl
c291cmNlTG9hZChmcmFtZSgpLT5sb2FkZXIoKS5jYW5jZWxsZWRFcnJvcihkb2N1bWVudExvYWRl
ci0+cmVxdWVzdCgpKSk7Ci0gICAgc2V0U2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5KGZhbHNlKTsK
KyAgICBhdXRvJiBmcmFtZUxvYWRlciA9IGZyYW1lKCktPmxvYWRlcigpOworICAgIGF1dG8mIGRv
Y3VtZW50TG9hZGVyID0gKmZyYW1lTG9hZGVyLmFjdGl2ZURvY3VtZW50TG9hZGVyKCk7CisgICAg
ZG9jdW1lbnRMb2FkZXIuY2FuY2VsTWFpblJlc291cmNlTG9hZChmcmFtZUxvYWRlci5jYW5jZWxs
ZWRFcnJvcihkb2N1bWVudExvYWRlci5yZXF1ZXN0KCkpKTsKKyAgICBtX3Nob3VsZExvYWRQbHVn
aW5NYW51YWxseSA9IGZhbHNlOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1BsdWdpbkRvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50
LmgKaW5kZXggM2NkMDYxMjU1MGY2ZjhmYmU5NmM4OWI1YjVmYjVlNTYxNDNjNWY3ZS4uYmQ3ZWQ2
Y2ExYTA2ZTVkODlmMzJjMjJjMDNkOTViMzU2NGE4NWIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1
Z2luRG9jdW1lbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDgsIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCwyNiArMzgsMjMgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQbHVnaW5Eb2N1bWVudChmcmFtZSwgdXJsKSk7
CiAgICAgfQogCi0gICAgdm9pZCBzZXRQbHVnaW5FbGVtZW50KFBhc3NSZWZQdHI8SFRNTFBsdWdJ
bkVsZW1lbnQ+KTsKLQogICAgIFdFQkNPUkVfRVhQT1JUIFdpZGdldCogcGx1Z2luV2lkZ2V0KCk7
CiAgICAgSFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdpbkVsZW1lbnQoKSB7IHJldHVybiBtX3BsdWdp
bkVsZW1lbnQuZ2V0KCk7IH0KIAorICAgIHZvaWQgc2V0UGx1Z2luRWxlbWVudChIVE1MUGx1Z0lu
RWxlbWVudCYpOwogICAgIHZvaWQgZGV0YWNoRnJvbVBsdWdpbkVsZW1lbnQoKTsKIAogICAgIHZv
aWQgY2FuY2VsTWFudWFsUGx1Z2luTG9hZCgpOwogCi0gICAgYm9vbCBzaG91bGRMb2FkUGx1Z2lu
TWFudWFsbHkoKSB7IHJldHVybiBtX3Nob3VsZExvYWRQbHVnaW5NYW51YWxseTsgfQorICAgIGJv
b2wgc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRMb2Fk
UGx1Z2luTWFudWFsbHk7IH0KIAogcHJpdmF0ZToKICAgICBQbHVnaW5Eb2N1bWVudChGcmFtZSos
IGNvbnN0IFVSTCYpOwogCi0gICAgUmVmPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBv
dmVycmlkZTsKLQotICAgIHZvaWQgc2V0U2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5KGJvb2wgbG9h
ZE1hbnVhbGx5KSB7IG1fc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5ID0gbG9hZE1hbnVhbGx5OyB9
CisgICAgUmVmPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBmaW5hbDsKIAotICAgIGJv
b2wgbV9zaG91bGRMb2FkUGx1Z2luTWFudWFsbHk7CiAgICAgUmVmUHRyPEhUTUxQbHVnSW5FbGVt
ZW50PiBtX3BsdWdpbkVsZW1lbnQ7CisgICAgYm9vbCBtX3Nob3VsZExvYWRQbHVnaW5NYW51YWxs
eSB7IHRydWUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmlu
ZGV4IDk0ZThiNGRjZWM0NGZkOGZlNmFhOTIxNGQ1NWQ5NTliNTg3MTlkZTUuLjM4Yzk3ZmFjYjEx
YTdhNTVjZjMzMzRjYTU2ZTlmY2Y5MjJiMGNkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDksIDIwMTAsIDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQogICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxw
QGF0b2tlci5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggRXJpYyBTZWlkZWwgPGVyaWNAd2Vi
a2l0Lm9yZz4KQEAgLTE3Miw3ICsxNzIsNyBAQCBib29sIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6aXNBY2NlbGVyYXRlZCgpIGNvbnN0CiAjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lO
R19TVE9SRSkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICBpZiAoIWNhbnZh
cygpLmhhc0NyZWF0ZWRJbWFnZUJ1ZmZlcigpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBj
b250ZXh0ID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICByZXR1cm4gY29udGV4dCAmJiBjb250ZXh0
LT5pc0FjY2VsZXJhdGVkQ29udGV4dCgpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CkBAIC00
MTcsNyArNDE3LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldFN0cm9rZVN0
eWxlKENhbnZhc1N0eWxlIHN0eWxlKQogICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdD
b250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47Ci0gICAgc3RhdGUuc3Ryb2tl
U3R5bGUuYXBwbHlTdHJva2VDb2xvcihjKTsKKyAgICBzdGF0ZS5zdHJva2VTdHlsZS5hcHBseVN0
cm9rZUNvbG9yKCpjKTsKICAgICBzdGF0ZS51bnBhcnNlZFN0cm9rZUNvbG9yID0gU3RyaW5nKCk7
CiB9CiAKQEAgLTQ0NCw3ICs0NDQsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
c2V0RmlsbFN0eWxlKENhbnZhc1N0eWxlIHN0eWxlKQogICAgIEdyYXBoaWNzQ29udGV4dCogYyA9
IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47Ci0gICAgc3Rh
dGUuZmlsbFN0eWxlLmFwcGx5RmlsbENvbG9yKGMpOworICAgIHN0YXRlLmZpbGxTdHlsZS5hcHBs
eUZpbGxDb2xvcigqYyk7CiAgICAgc3RhdGUudW5wYXJzZWRGaWxsQ29sb3IgPSBTdHJpbmcoKTsK
IH0KIApAQCAtOTMwLDEzICs5MzAsMTMgQEAgc3RhdGljIGJvb2wgdmFsaWRhdGVSZWN0Rm9yQ2Fu
dmFzKGZsb2F0JiB4LCBmbG9hdCYgeSwgZmxvYXQmIHdpZHRoLCBmbG9hdCYgaGVpZ2gKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKLXZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbGVhclBhdGhGb3JEYXNoYm9hcmRCYWNrd2FyZENvbXBh
dGliaWxpdHlNb2RlKCkKK2lubGluZSB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y2xl
YXJQYXRoRm9yRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSgpCiB7CisjaWYgRU5B
QkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIGlmIChtX3VzZXNEYXNoYm9hcmRDb21wYXRpYmls
aXR5TW9kZSkKICAgICAgICAgbV9wYXRoLmNsZWFyKCk7Ci19CiAjZW5kaWYKK30KIAogc3RhdGlj
IGJvb2wgaXNGdWxsQ2FudmFzQ29tcG9zaXRlTW9kZShDb21wb3NpdGVPcGVyYXRvciBvcCkKIHsK
QEAgLTk1NCwyOCArOTU0LDE5IEBAIHN0YXRpYyBXaW5kUnVsZSB0b1dpbmRSdWxlKENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6V2luZGluZ1J1bGUgcnVsZSkKIHZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpmaWxsKFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxlKQogewogICAgIGZpbGxJbnRl
cm5hbChtX3BhdGgsIHdpbmRpbmdSdWxlKTsKLQotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9S
VCkKICAgICBjbGVhclBhdGhGb3JEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKCk7
Ci0jZW5kaWYKIH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnN0cm9rZSgpCiB7
CiAgICAgc3Ryb2tlSW50ZXJuYWwobV9wYXRoKTsKLQotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQ
UE9SVCkKICAgICBjbGVhclBhdGhGb3JEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2Rl
KCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNsaXAoV2lu
ZGluZ1J1bGUgd2luZGluZ1J1bGUpCiB7CiAgICAgY2xpcEludGVybmFsKG1fcGF0aCwgd2luZGlu
Z1J1bGUpOwotCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIGNsZWFyUGF0aEZv
ckRhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoKTsKLSNlbmRpZgogfQogCiB2b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZmlsbChET01QYXRoJiBwYXRoLCBXaW5kaW5nUnVs
ZSB3aW5kaW5nUnVsZSkKQEAgLTk5NSwxOSArOTg2LDE5IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpjbGlwKERPTVBhdGgmIHBhdGgsIFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxlKQog
CiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZmlsbEludGVybmFsKGNvbnN0IFBhdGgm
IHBhdGgsIFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxlKQogewotICAgIEdyYXBoaWNzQ29udGV4dCog
YyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAg
ICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGli
bGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIElmIGdyYWRpZW50IHNpemUg
aXMgemVybywgdGhlbiBwYWludCBub3RoaW5nLgotICAgIEdyYWRpZW50KiBncmFkaWVudCA9IGMt
PmZpbGxHcmFkaWVudCgpOworICAgIGF1dG8qIGdyYWRpZW50ID0gYy0+ZmlsbEdyYWRpZW50KCk7
CiAgICAgaWYgKGdyYWRpZW50ICYmIGdyYWRpZW50LT5pc1plcm9TaXplKCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlmICghcGF0aC5pc0VtcHR5KCkpIHsKLSAgICAgICAgV2luZFJ1bGUgd2lu
ZFJ1bGUgPSBjLT5maWxsUnVsZSgpOworICAgICAgICBhdXRvIHNhdmVkRmlsbFJ1bGUgPSBjLT5m
aWxsUnVsZSgpOwogICAgICAgICBjLT5zZXRGaWxsUnVsZSh0b1dpbmRSdWxlKHdpbmRpbmdSdWxl
KSk7CiAKICAgICAgICAgaWYgKGlzRnVsbENhbnZhc0NvbXBvc2l0ZU1vZGUoc3RhdGUoKS5nbG9i
YWxDb21wb3NpdGUpKSB7CkBAIC0xMDI0LDIwICsxMDE1LDIwIEBAIHZvaWQgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpmaWxsSW50ZXJuYWwoY29uc3QgUGF0aCYgcGF0aCwgV2luZGluZ1J1bGUg
d2luZGluCiAgICAgICAgICAgICBkaWREcmF3KHBhdGguZmFzdEJvdW5kaW5nUmVjdCgpKTsKICAg
ICAgICAgfQogICAgICAgICAKLSAgICAgICAgYy0+c2V0RmlsbFJ1bGUod2luZFJ1bGUpOworICAg
ICAgICBjLT5zZXRGaWxsUnVsZShzYXZlZEZpbGxSdWxlKTsKICAgICB9CiB9CiAKIHZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzdHJva2VJbnRlcm5hbChjb25zdCBQYXRoJiBwYXRoKQog
ewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byog
YyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAg
aWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKIAog
ICAgIC8vIElmIGdyYWRpZW50IHNpemUgaXMgemVybywgdGhlbiBwYWludCBub3RoaW5nLgotICAg
IEdyYWRpZW50KiBncmFkaWVudCA9IGMtPnN0cm9rZUdyYWRpZW50KCk7CisgICAgYXV0byogZ3Jh
ZGllbnQgPSBjLT5zdHJva2VHcmFkaWVudCgpOwogICAgIGlmIChncmFkaWVudCAmJiBncmFkaWVu
dC0+aXNaZXJvU2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTEwNjIsNyArMTA1Myw3IEBA
IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzdHJva2VJbnRlcm5hbChjb25zdCBQYXRo
JiBwYXRoKQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y2xpcEludGVybmFsKGNv
bnN0IFBhdGgmIHBhdGgsIFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxlKQogewotICAgIEdyYXBoaWNz
Q29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250
ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhh
c0ludmVydGlibGVUcmFuc2Zvcm0pCkBAIC0xMTA4LDEzICsxMDk5LDEzIEBAIGJvb2wgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjppc1BvaW50SW5TdHJva2UoRE9NUGF0aCYgcGF0aCwgZmxvYXQg
eCwgZmxvYXQgeSkKIAogYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmlzUG9pbnRJblBh
dGhJbnRlcm5hbChjb25zdCBQYXRoJiBwYXRoLCBmbG9hdCB4LCBmbG9hdCB5LCBXaW5kaW5nUnVs
ZSB3aW5kaW5nUnVsZSkKIHsKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4
dCgpOworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghc3RhdGUoKS5oYXNJbnZlcnRpYmxlVHJhbnNmb3Jt
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBGbG9hdFBvaW50IHRyYW5zZm9ybWVkUG9p
bnQgPSBzdGF0ZSgpLnRyYW5zZm9ybS5pbnZlcnNlKCkudmFsdWVfb3IoQWZmaW5lVHJhbnNmb3Jt
KCkpLm1hcFBvaW50KEZsb2F0UG9pbnQoeCwgeSkpOworICAgIGF1dG8gdHJhbnNmb3JtZWRQb2lu
dCA9IHN0YXRlKCkudHJhbnNmb3JtLmludmVyc2UoKS52YWx1ZV9vcihBZmZpbmVUcmFuc2Zvcm0o
KSkubWFwUG9pbnQoRmxvYXRQb2ludCh4LCB5KSk7CiAKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUo
dHJhbnNmb3JtZWRQb2ludC54KCkpIHx8ICFzdGQ6OmlzZmluaXRlKHRyYW5zZm9ybWVkUG9pbnQu
eSgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTEyNCwxMyArMTExNSwxMyBAQCBib29s
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6aXNQb2ludEluUGF0aEludGVybmFsKGNvbnN0IFBh
dGgmIHBhdGgsIGZsb2F0IHgsCiAKIGJvb2wgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjppc1Bv
aW50SW5TdHJva2VJbnRlcm5hbChjb25zdCBQYXRoJiBwYXRoLCBmbG9hdCB4LCBmbG9hdCB5KQog
ewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byog
YyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIEZsb2F0UG9pbnQgdHJhbnNmb3JtZWRQb2ludCA9IHN0YXRlKCkudHJh
bnNmb3JtLmludmVyc2UoKS52YWx1ZV9vcihBZmZpbmVUcmFuc2Zvcm0oKSkubWFwUG9pbnQoRmxv
YXRQb2ludCh4LCB5KSk7CisgICAgYXV0byB0cmFuc2Zvcm1lZFBvaW50ID0gc3RhdGUoKS50cmFu
c2Zvcm0uaW52ZXJzZSgpLnZhbHVlX29yKEFmZmluZVRyYW5zZm9ybSgpKS5tYXBQb2ludChGbG9h
dFBvaW50KHgsIHkpKTsKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUodHJhbnNmb3JtZWRQb2ludC54
KCkpIHx8ICFzdGQ6OmlzZmluaXRlKHRyYW5zZm9ybWVkUG9pbnQueSgpKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCkBAIC0xMTQyLDcgKzExMzMsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6Y2xlYXJSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBo
ZQogewogICAgIGlmICghdmFsaWRhdGVSZWN0Rm9yQ2FudmFzKHgsIHksIHdpZHRoLCBoZWlnaHQp
KQogICAgICAgICByZXR1cm47Ci0gICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gZHJhd2lu
Z0NvbnRleHQoKTsKKyAgICBhdXRvKiBjb250ZXh0ID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBp
ZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIXN0YXRlKCkuaGFzSW52ZXJ0
aWJsZVRyYW5zZm9ybSkKQEAgLTExODAsNyArMTE3MSw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpmaWxsUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQg
aGVpCiAgICAgaWYgKCF2YWxpZGF0ZVJlY3RGb3JDYW52YXMoeCwgeSwgd2lkdGgsIGhlaWdodCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250
ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAg
ICAgICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCkBA
IC0xMTg5LDcgKzExODAsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZmlsbFJl
Y3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaQogICAgIC8vIGZyb20g
dGhlIEhUTUw1IENhbnZhcyBzcGVjOgogICAgIC8vIElmIHgwID0geDEgYW5kIHkwID0geTEsIHRo
ZW4gdGhlIGxpbmVhciBncmFkaWVudCBtdXN0IHBhaW50IG5vdGhpbmcKICAgICAvLyBJZiB4MCA9
IHgxIGFuZCB5MCA9IHkxIGFuZCByMCA9IHIxLCB0aGVuIHRoZSByYWRpYWwgZ3JhZGllbnQgbXVz
dCBwYWludCBub3RoaW5nCi0gICAgR3JhZGllbnQqIGdyYWRpZW50ID0gYy0+ZmlsbEdyYWRpZW50
KCk7CisgICAgYXV0byogZ3JhZGllbnQgPSBjLT5maWxsR3JhZGllbnQoKTsKICAgICBpZiAoZ3Jh
ZGllbnQgJiYgZ3JhZGllbnQtPmlzWmVyb1NpemUoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0x
MjE4LDcgKzEyMDksNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlUmVj
dChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaAogICAgIGlmICghdmFsaWRh
dGVSZWN0Rm9yQ2FudmFzKHgsIHksIHdpZHRoLCBoZWlnaHQpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOworICAgIGF1dG8qIGMg
PSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJuOwogICAgIGlm
ICghc3RhdGUoKS5oYXNJbnZlcnRpYmxlVHJhbnNmb3JtKQpAQCAtMTIyNyw3ICsxMjE4LDcgQEAg
dm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnN0cm9rZVJlY3QoZmxvYXQgeCwgZmxvYXQg
eSwgZmxvYXQgd2lkdGgsIGZsb2F0IGgKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gSWYgZ3Jh
ZGllbnQgc2l6ZSBpcyB6ZXJvLCB0aGVuIHBhaW50IG5vdGhpbmcuCi0gICAgR3JhZGllbnQqIGdy
YWRpZW50ID0gYy0+c3Ryb2tlR3JhZGllbnQoKTsKKyAgICBhdXRvKiBncmFkaWVudCA9IGMtPnN0
cm9rZUdyYWRpZW50KCk7CiAgICAgaWYgKGdyYWRpZW50ICYmIGdyYWRpZW50LT5pc1plcm9TaXpl
KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTI1MSwxMSArMTI0MiwxMiBAQCB2b2lkIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3
aWR0aCwgZmxvYXQgaAogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0U2hhZG93
KGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IGJsdXIsIGNvbnN0IFN0cmluZyYgY29s
b3JTdHJpbmcsIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGFscGhhKQogewotICAgIENvbG9yIGNvbG9y
ID0gcGFyc2VDb2xvck9yQ3VycmVudENvbG9yKGNvbG9yU3RyaW5nLCAmY2FudmFzKCkpOwotICAg
IGlmICghY29sb3JTdHJpbmcuaXNOdWxsKCkgJiYgIWNvbG9yLmlzVmFsaWQoKSkKLSAgICAgICAg
cmV0dXJuOwotICAgIGlmICghY29sb3IuaXNWYWxpZCgpKQotICAgICAgICBjb2xvciA9IENvbG9y
Ojp0cmFuc3BhcmVudDsKKyAgICBDb2xvciBjb2xvciA9IENvbG9yOjp0cmFuc3BhcmVudDsKKyAg
ICBpZiAoIWNvbG9yU3RyaW5nLmlzTnVsbCgpKSB7CisgICAgICAgIGNvbG9yID0gcGFyc2VDb2xv
ck9yQ3VycmVudENvbG9yKGNvbG9yU3RyaW5nLCAmY2FudmFzKCkpOworICAgICAgICBpZiAoIWNv
bG9yLmlzVmFsaWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgLy8gRklYTUU6
IFNob3VsZCBub3QgdXNlIFJHQkEzMiBoZXJlLgogICAgIHNldFNoYWRvdyhGbG9hdFNpemUod2lk
dGgsIGhlaWdodCksIGJsdXIsIGNvbG9yV2l0aE92ZXJyaWRlQWxwaGEoY29sb3IucmdiKCksIGFs
cGhhKSk7CiB9CkBAIC0xMjk2LDcgKzEyODgsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6c2V0U2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYgb2Zmc2V0LCBmbG9hdCBibHVyLCBjbwog
CiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YXBwbHlTaGFkb3coKQogewotICAgIEdy
YXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdp
bmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAKQEAgLTEzMTMsMzUg
KzEzMDUsMzMgQEAgYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNob3VsZERyYXdTaGFk
b3dzKCkgY29uc3QKICAgICByZXR1cm4gc3RhdGUoKS5zaGFkb3dDb2xvci5pc1Zpc2libGUoKSAm
JiAoc3RhdGUoKS5zaGFkb3dCbHVyIHx8ICFzdGF0ZSgpLnNoYWRvd09mZnNldC5pc1plcm8oKSk7
CiB9CiAKLWVudW0gSW1hZ2VTaXplVHlwZSB7Ci0gICAgSW1hZ2VTaXplQWZ0ZXJEZXZpY2VQaXhl
bFJhdGlvLAotICAgIEltYWdlU2l6ZUJlZm9yZURldmljZVBpeGVsUmF0aW8KLX07Ci0KLXN0YXRp
YyBMYXlvdXRTaXplIHNpemUoSFRNTEltYWdlRWxlbWVudCYgaW1hZ2VFbGVtZW50LCBJbWFnZVNp
emVUeXBlIHNpemVUeXBlID0gSW1hZ2VTaXplQmVmb3JlRGV2aWNlUGl4ZWxSYXRpbykKK2VudW0g
Y2xhc3MgSW1hZ2VTaXplVHlwZSB7IEFmdGVyRGV2aWNlUGl4ZWxSYXRpbywgQmVmb3JlRGV2aWNl
UGl4ZWxSYXRpbyB9Oworc3RhdGljIExheW91dFNpemUgc2l6ZShIVE1MSW1hZ2VFbGVtZW50JiBl
bGVtZW50LCBJbWFnZVNpemVUeXBlIHNpemVUeXBlID0gSW1hZ2VTaXplVHlwZTo6QmVmb3JlRGV2
aWNlUGl4ZWxSYXRpbykKIHsKICAgICBMYXlvdXRTaXplIHNpemU7Ci0gICAgaWYgKENhY2hlZElt
YWdlKiBjYWNoZWRJbWFnZSA9IGltYWdlRWxlbWVudC5jYWNoZWRJbWFnZSgpKSB7Ci0gICAgICAg
IHNpemUgPSBjYWNoZWRJbWFnZS0+aW1hZ2VTaXplRm9yUmVuZGVyZXIoaW1hZ2VFbGVtZW50LnJl
bmRlcmVyKCksIDEuMGYpOyAvLyBGSVhNRTogTm90IHN1cmUgYWJvdXQgdGhpcy4KLQotICAgICAg
ICBpZiAoc2l6ZVR5cGUgPT0gSW1hZ2VTaXplQWZ0ZXJEZXZpY2VQaXhlbFJhdGlvICYmIGlzPFJl
bmRlckltYWdlPihpbWFnZUVsZW1lbnQucmVuZGVyZXIoKSkgJiYgY2FjaGVkSW1hZ2UtPmltYWdl
KCkgJiYgIWNhY2hlZEltYWdlLT5pbWFnZSgpLT5oYXNSZWxhdGl2ZVdpZHRoKCkpCi0gICAgICAg
ICAgICBzaXplLnNjYWxlKGRvd25jYXN0PFJlbmRlckltYWdlPigqaW1hZ2VFbGVtZW50LnJlbmRl
cmVyKCkpLmltYWdlRGV2aWNlUGl4ZWxSYXRpbygpKTsKKyAgICBpZiAoYXV0byogY2FjaGVkSW1h
Z2UgPSBlbGVtZW50LmNhY2hlZEltYWdlKCkpIHsKKyAgICAgICAgc2l6ZSA9IGNhY2hlZEltYWdl
LT5pbWFnZVNpemVGb3JSZW5kZXJlcihlbGVtZW50LnJlbmRlcmVyKCksIDEuMGYpOyAvLyBGSVhN
RTogTm90IHN1cmUgYWJvdXQgdGhpcy4KKyAgICAgICAgaWYgKHNpemVUeXBlID09IEltYWdlU2l6
ZVR5cGU6OkFmdGVyRGV2aWNlUGl4ZWxSYXRpbyAmJiBpczxSZW5kZXJJbWFnZT4oZWxlbWVudC5y
ZW5kZXJlcigpKSAmJiBjYWNoZWRJbWFnZS0+aW1hZ2UoKSAmJiAhY2FjaGVkSW1hZ2UtPmltYWdl
KCktPmhhc1JlbGF0aXZlV2lkdGgoKSkKKyAgICAgICAgICAgIHNpemUuc2NhbGUoZG93bmNhc3Q8
UmVuZGVySW1hZ2U+KCplbGVtZW50LnJlbmRlcmVyKCkpLmltYWdlRGV2aWNlUGl4ZWxSYXRpbygp
KTsKICAgICB9CiAgICAgcmV0dXJuIHNpemU7CiB9CiAKLXN0YXRpYyBGbG9hdFNpemUgc2l6ZShI
VE1MQ2FudmFzRWxlbWVudCYgY2FudmFzRWxlbWVudCkKK3N0YXRpYyBpbmxpbmUgRmxvYXRTaXpl
IHNpemUoSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZhc0VsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIEZs
b2F0U2l6ZShjYW52YXNFbGVtZW50LnNpemUoKSk7CisgICAgcmV0dXJuIGNhbnZhc0VsZW1lbnQu
c2l6ZSgpOwogfQogCiAjaWYgRU5BQkxFKFZJREVPKQotc3RhdGljIEZsb2F0U2l6ZSBzaXplKEhU
TUxWaWRlb0VsZW1lbnQmIHZpZGVvKQorCitzdGF0aWMgaW5saW5lIEZsb2F0U2l6ZSBzaXplKEhU
TUxWaWRlb0VsZW1lbnQmIHZpZGVvKQogewotICAgIGlmIChNZWRpYVBsYXllciogcGxheWVyID0g
dmlkZW8ucGxheWVyKCkpCi0gICAgICAgIHJldHVybiBwbGF5ZXItPm5hdHVyYWxTaXplKCk7Ci0g
ICAgcmV0dXJuIEZsb2F0U2l6ZSgpOworICAgIGF1dG8qIHBsYXllciA9IHZpZGVvLnBsYXllcigp
OworICAgIGlmICghcGxheWVyKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBwbGF5
ZXItPm5hdHVyYWxTaXplKCk7CiB9CisKICNlbmRpZgogCiBzdGF0aWMgaW5saW5lIEZsb2F0UmVj
dCBub3JtYWxpemVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKQEAgLTEzNTYsOCArMTM0Niw4
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdl
KENhbnZhc0ltYWdlU291cmNlJiYgaW1hZ2UsCiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24o
aW1hZ2UsCiAgICAgICAgIFsmXSAoUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+JiBpbWFnZUVsZW1l
bnQpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKLSAgICAgICAgICAgIExheW91dFNpemUgZGVzdFJl
Y3RTaXplID0gc2l6ZSgqaW1hZ2VFbGVtZW50LCBJbWFnZVNpemVBZnRlckRldmljZVBpeGVsUmF0
aW8pOwotICAgICAgICAgICAgTGF5b3V0U2l6ZSBzb3VyY2VSZWN0U2l6ZSA9IHNpemUoKmltYWdl
RWxlbWVudCwgSW1hZ2VTaXplQmVmb3JlRGV2aWNlUGl4ZWxSYXRpbyk7CisgICAgICAgICAgICBM
YXlvdXRTaXplIGRlc3RSZWN0U2l6ZSA9IHNpemUoKmltYWdlRWxlbWVudCwgSW1hZ2VTaXplVHlw
ZTo6QWZ0ZXJEZXZpY2VQaXhlbFJhdGlvKTsKKyAgICAgICAgICAgIExheW91dFNpemUgc291cmNl
UmVjdFNpemUgPSBzaXplKCppbWFnZUVsZW1lbnQsIEltYWdlU2l6ZVR5cGU6OkJlZm9yZURldmlj
ZVBpeGVsUmF0aW8pOwogICAgICAgICAgICAgcmV0dXJuIHRoaXMtPmRyYXdJbWFnZSgqaW1hZ2VF
bGVtZW50LCBGbG9hdFJlY3QgeyAwLCAwLCBzb3VyY2VSZWN0U2l6ZS53aWR0aCgpLCBzb3VyY2VS
ZWN0U2l6ZS5oZWlnaHQoKSB9LCBGbG9hdFJlY3QgeyBkeCwgZHksIGRlc3RSZWN0U2l6ZS53aWR0
aCgpLCBkZXN0UmVjdFNpemUuaGVpZ2h0KCkgfSk7CiAgICAgICAgIH0sCiAgICAgICAgIFsmXSAo
YXV0byYgZWxlbWVudCkgLT4gRXhjZXB0aW9uT3I8dm9pZD4gewpAQCAtMTQwNiw3ICsxMzk2LDcg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1hZ2Uo
SFRNTEltYWdlRWxlbWVudCYgaW1hZ2VFbGUKICAgICBGbG9hdFJlY3Qgbm9ybWFsaXplZFNyY1Jl
Y3QgPSBub3JtYWxpemVSZWN0KHNyY1JlY3QpOwogICAgIEZsb2F0UmVjdCBub3JtYWxpemVkRHN0
UmVjdCA9IG5vcm1hbGl6ZVJlY3QoZHN0UmVjdCk7CiAKLSAgICBGbG9hdFJlY3QgaW1hZ2VSZWN0
ID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZShpbWFnZUVsZW1lbnQsIEltYWdlU2l6ZUJl
Zm9yZURldmljZVBpeGVsUmF0aW8pKTsKKyAgICBGbG9hdFJlY3QgaW1hZ2VSZWN0ID0gRmxvYXRS
ZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZShpbWFnZUVsZW1lbnQsIEltYWdlU2l6ZVR5cGU6OkJlZm9y
ZURldmljZVBpeGVsUmF0aW8pKTsKICAgICBpZiAoIXNyY1JlY3Qud2lkdGgoKSB8fCAhc3JjUmVj
dC5oZWlnaHQoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOREVYX1NJWkVfRVJSIH07
CiAKQEAgLTE1NzQsNyArMTU2NCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6ZHJhd0ltYWdlKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvLCBjCiB2b2lkIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdlRnJvbVJlY3QoSFRNTEltYWdlRWxlbWVu
dCYgaW1hZ2VFbGVtZW50LCBmbG9hdCBzeCwgZmxvYXQgc3ksIGZsb2F0IHN3LCBmbG9hdCBzaCwg
ZmxvYXQgZHgsIGZsb2F0IGR5LCBmbG9hdCBkdywgZmxvYXQgZGgsIGNvbnN0IFN0cmluZyYgY29t
cG9zaXRlT3BlcmF0aW9uKQogewogICAgIENvbXBvc2l0ZU9wZXJhdG9yIG9wOwotICAgIEJsZW5k
TW9kZSBibGVuZE9wID0gQmxlbmRNb2RlTm9ybWFsOworICAgIGF1dG8gYmxlbmRPcCA9IEJsZW5k
TW9kZU5vcm1hbDsKICAgICBpZiAoIXBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVyYXRvcihjb21w
b3NpdGVPcGVyYXRpb24sIG9wLCBibGVuZE9wKSB8fCBibGVuZE9wICE9IEJsZW5kTW9kZU5vcm1h
bCkKICAgICAgICAgb3AgPSBDb21wb3NpdGVTb3VyY2VPdmVyOwogICAgIGRyYXdJbWFnZShpbWFn
ZUVsZW1lbnQsIEZsb2F0UmVjdCB7IHN4LCBzeSwgc3csIHNoIH0sIEZsb2F0UmVjdCB7IGR4LCBk
eSwgZHcsIGRoIH0sIG9wLCBCbGVuZE1vZGVOb3JtYWwpOwpAQCAtMTU5MiwxNCArMTU4MiwxMyBA
QCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0Q29tcG9zaXRlT3BlcmF0aW9uKGNv
bnN0IFN0cmluZyYgb3BlcmF0aW9uKQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
Y2xlYXJDYW52YXMoKQogewotICAgIEZsb2F0UmVjdCBjYW52YXNSZWN0KDAsIDAsIGNhbnZhcygp
LndpZHRoKCksIGNhbnZhcygpLmhlaWdodCgpKTsKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBk
cmF3aW5nQ29udGV4dCgpOworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlm
ICghYykKICAgICAgICAgcmV0dXJuOwogCiAgICAgYy0+c2F2ZSgpOwogICAgIGMtPnNldENUTShj
YW52YXMoKS5iYXNlVHJhbnNmb3JtKCkpOwotICAgIGMtPmNsZWFyUmVjdChjYW52YXNSZWN0KTsK
KyAgICBjLT5jbGVhclJlY3QoRmxvYXRSZWN0KDAsIDAsIGNhbnZhcygpLndpZHRoKCksIGNhbnZh
cygpLmhlaWdodCgpKSk7CiAgICAgYy0+cmVzdG9yZSgpOwogfQogCkBAIC0xNjQ4LDcgKzE2Mzcs
NyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y29tcG9zaXRlQnVmZmVyKEltYWdl
QnVmZmVyJiBidWZmZXIsIGNvbnN0IEludFJlYwogICAgIEludFJlY3QgY2FudmFzUmVjdCgwLCAw
LCBjYW52YXMoKS53aWR0aCgpLCBjYW52YXMoKS5oZWlnaHQoKSk7CiAgICAgY2FudmFzUmVjdCA9
IGNhbnZhcygpLmJhc2VUcmFuc2Zvcm0oKS5tYXBSZWN0KGNhbnZhc1JlY3QpOwogCi0gICAgR3Jh
cGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBjID0gZHJhd2lu
Z0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTY3OSwxNyAr
MTY2OCwxNyBAQCB0ZW1wbGF0ZTxjbGFzcyBUPiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6ZnVsbENhbnZhc0NvbXBvc2l0ZWREcmF3SW1hZ2UoVAogICAgIEFTU0VSVChpc0Z1bGxDYW52
YXNDb21wb3NpdGVNb2RlKG9wKSk7CiAKICAgICBJbnRTaXplIGNyb3BwZWRPZmZzZXQ7Ci0gICAg
SW50UmVjdCBidWZmZXJSZWN0ID0gY2FsY3VsYXRlQ29tcG9zaXRpbmdCdWZmZXJSZWN0KGRlc3Qs
ICZjcm9wcGVkT2Zmc2V0KTsKKyAgICBhdXRvIGJ1ZmZlclJlY3QgPSBjYWxjdWxhdGVDb21wb3Np
dGluZ0J1ZmZlclJlY3QoZGVzdCwgJmNyb3BwZWRPZmZzZXQpOwogICAgIGlmIChidWZmZXJSZWN0
LmlzRW1wdHkoKSkgewogICAgICAgICBjbGVhckNhbnZhcygpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXIgPSBjcmVhdGVD
b21wb3NpdGluZ0J1ZmZlcihidWZmZXJSZWN0KTsKKyAgICBhdXRvIGJ1ZmZlciA9IGNyZWF0ZUNv
bXBvc2l0aW5nQnVmZmVyKGJ1ZmZlclJlY3QpOwogICAgIGlmICghYnVmZmVyKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOworICAg
IGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJu
OwogCkBAIC0xNzIwLDcgKzE3MDksNyBAQCBFeGNlcHRpb25PcjxSZWY8Q2FudmFzR3JhZGllbnQ+
PiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZUxpbmVhckdyYWRpZW50KAogICAgIGlm
ICghc3RkOjppc2Zpbml0ZSh4MCkgfHwgIXN0ZDo6aXNmaW5pdGUoeTApIHx8ICFzdGQ6OmlzZmlu
aXRlKHgxKSB8fCAhc3RkOjppc2Zpbml0ZSh5MSkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOT1RfU1VQUE9SVEVEX0VSUiB9OwogCi0gICAgUmVmPENhbnZhc0dyYWRpZW50PiBncmFkaWVu
dCA9IENhbnZhc0dyYWRpZW50OjpjcmVhdGUoRmxvYXRQb2ludCh4MCwgeTApLCBGbG9hdFBvaW50
KHgxLCB5MSkpOworICAgIGF1dG8gZ3JhZGllbnQgPSBDYW52YXNHcmFkaWVudDo6Y3JlYXRlKEZs
b2F0UG9pbnQoeDAsIHkwKSwgRmxvYXRQb2ludCh4MSwgeTEpKTsKICAgICBwcmVwYXJlR3JhZGll
bnRGb3JEYXNoYm9hcmQoZ3JhZGllbnQuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKGdyYWRp
ZW50KTsKIH0KQEAgLTE3MzMsNyArMTcyMiw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxDYW52YXNHcmFk
aWVudD4+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y3JlYXRlUmFkaWFsR3JhZGllbnQoCiAg
ICAgaWYgKHIwIDwgMCB8fCByMSA8IDApCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTkRF
WF9TSVpFX0VSUiB9OwogCi0gICAgUmVmPENhbnZhc0dyYWRpZW50PiBncmFkaWVudCA9IENhbnZh
c0dyYWRpZW50OjpjcmVhdGUoRmxvYXRQb2ludCh4MCwgeTApLCByMCwgRmxvYXRQb2ludCh4MSwg
eTEpLCByMSk7CisgICAgYXV0byBncmFkaWVudCA9IENhbnZhc0dyYWRpZW50OjpjcmVhdGUoRmxv
YXRQb2ludCh4MCwgeTApLCByMCwgRmxvYXRQb2ludCh4MSwgeTEpLCByMSk7CiAgICAgcHJlcGFy
ZUdyYWRpZW50Rm9yRGFzaGJvYXJkKGdyYWRpZW50LmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92
ZShncmFkaWVudCk7CiB9CkBAIC0xNzQ1LDcgKzE3MzQsNyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8
Q2FudmFzUGF0dGVybj4+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y3JlYXRlUGF0dGVybihD
YW52YQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU1lOVEFYX0VSUiB9OwogCiAgICAgcmV0
dXJuIFdURjo6c3dpdGNoT24oaW1hZ2UsCi0gICAgICAgIFsmXShhdXRvJiBlbGVtZW50KSAtPiBF
eGNlcHRpb25PcjxSZWZQdHI8Q2FudmFzUGF0dGVybj4+IHsgcmV0dXJuIHRoaXMtPmNyZWF0ZVBh
dHRlcm4oKmVsZW1lbnQsIHJlcGVhdFgsIHJlcGVhdFkpOyB9CisgICAgICAgIFt0aGlzLCByZXBl
YXRYLCByZXBlYXRZXSAoYXV0byYgZWxlbWVudCkgLT4gRXhjZXB0aW9uT3I8UmVmUHRyPENhbnZh
c1BhdHRlcm4+PiB7IHJldHVybiBjcmVhdGVQYXR0ZXJuKCplbGVtZW50LCByZXBlYXRYLCByZXBl
YXRZKTsgfQogICAgICk7CiB9CiAKQEAgLTE4MTIsNyArMTgwMSw3IEBAIHZvaWQgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpkaWREcmF3RW50aXJlQ2FudmFzKCkKIAogdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OmRpZERyYXcoY29uc3QgRmxvYXRSZWN0JiByLCB1bnNpZ25lZCBvcHRp
b25zKQogewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAg
YXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47
CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCkBAIC0xODY2LDE5ICsx
ODU1LDE3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRUcmFja3NEaXNwbGF5
TGlzdFJlcGxheShib29sIHRyYWNrc0Rpc3BsYXlMaXN0CiAKIFN0cmluZyBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OmRpc3BsYXlMaXN0QXNUZXh0KERpc3BsYXlMaXN0OjpBc1RleHRGbGFncyBm
bGFncykgY29uc3QKIHsKLSAgICBpZiAobV9yZWNvcmRpbmdDb250ZXh0KQotICAgICAgICByZXR1
cm4gbV9yZWNvcmRpbmdDb250ZXh0LT5kaXNwbGF5TGlzdC5hc1RleHQoZmxhZ3MpOwotICAgIAot
ICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBpZiAoIW1fcmVjb3JkaW5nQ29udGV4dCkKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gbV9yZWNvcmRpbmdDb250ZXh0LT5kaXNwbGF5TGlz
dC5hc1RleHQoZmxhZ3MpOwogfQogCiBTdHJpbmcgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpy
ZXBsYXlEaXNwbGF5TGlzdEFzVGV4dChEaXNwbGF5TGlzdDo6QXNUZXh0RmxhZ3MgZmxhZ3MpIGNv
bnN0CiB7Ci0gICAgYXV0byBpdCA9IGNvbnRleHREaXNwbGF5TGlzdE1hcCgpLmZpbmQodGhpcyk7
Ci0gICAgaWYgKGl0ICE9IGNvbnRleHREaXNwbGF5TGlzdE1hcCgpLmVuZCgpKQotICAgICAgICBy
ZXR1cm4gaXQtPnZhbHVlLT5hc1RleHQoZmxhZ3MpOwotCi0gICAgcmV0dXJuIFN0cmluZygpOwor
ICAgIGF1dG8qIGRpc3BsYXlMaXN0ID0gY29udGV4dERpc3BsYXlMaXN0TWFwKCkuZ2V0KHRoaXMp
OworICAgIGlmICghZGlzcGxheUxpc3QpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJu
IGRpc3BsYXlMaXN0LT5hc1RleHQoZmxhZ3MpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKQpAQCAtMTg4Niw3ICsxODcz
LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnBhaW50UmVuZGVyaW5nUmVzdWx0
c1RvQ2FudmFzKCkKICAgICBpZiAoVU5MSUtFTFkobV91c2VzRGlzcGxheUxpc3REcmF3aW5nKSkg
ewogICAgICAgICBpZiAoIW1fcmVjb3JkaW5nQ29udGV4dCkKICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgCisKICAgICAgICAgRmxvYXRSZWN0IGNsaXAoRmxvYXRQb2ludDo6emVybygpLCBj
YW52YXMoKS5zaXplKCkpOwogICAgICAgICBEaXNwbGF5TGlzdDo6UmVwbGF5ZXIgcmVwbGF5ZXIo
KmNhbnZhcygpLmRyYXdpbmdDb250ZXh0KCksIG1fcmVjb3JkaW5nQ29udGV4dC0+ZGlzcGxheUxp
c3QpOwogCkBAIC0xOTA1LDcgKzE4OTIsNiBAQCBHcmFwaGljc0NvbnRleHQqIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6ZHJhd2luZ0NvbnRleHQoKSBjb25zdAogICAgIGlmIChVTkxJS0VMWSht
X3VzZXNEaXNwbGF5TGlzdERyYXdpbmcpKSB7CiAgICAgICAgIGlmICghbV9yZWNvcmRpbmdDb250
ZXh0KQogICAgICAgICAgICAgbV9yZWNvcmRpbmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxE
aXNwbGF5TGlzdERyYXdpbmdDb250ZXh0PihGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBj
YW52YXMoKS5zaXplKCkpKTsKLQogICAgICAgICByZXR1cm4gJm1fcmVjb3JkaW5nQ29udGV4dC0+
Y29udGV4dDsKICAgICB9CiAKQEAgLTE5MTQsMTIgKzE5MDAsMTAgQEAgR3JhcGhpY3NDb250ZXh0
KiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdpbmdDb250ZXh0KCkgY29uc3QKIAogc3Rh
dGljIFJlZlB0cjxJbWFnZURhdGE+IGNyZWF0ZUVtcHR5SW1hZ2VEYXRhKGNvbnN0IEludFNpemUm
IHNpemUpCiB7Ci0gICAgaWYgKFJlZlB0cjxJbWFnZURhdGE+IGRhdGEgPSBJbWFnZURhdGE6OmNy
ZWF0ZShzaXplKSkgeworICAgIGF1dG8gZGF0YSA9IEltYWdlRGF0YTo6Y3JlYXRlKHNpemUpOwor
ICAgIGlmIChkYXRhKQogICAgICAgICBkYXRhLT5kYXRhKCktPnplcm9GaWxsKCk7Ci0gICAgICAg
IHJldHVybiBkYXRhOwotICAgIH0KLQotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBk
YXRhOwogfQogCiBFeGNlcHRpb25PcjxSZWZQdHI8SW1hZ2VEYXRhPj4gQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpjcmVhdGVJbWFnZURhdGEoSW1hZ2VEYXRhKiBpbWFnZURhdGEpIGNvbnN0CkBA
IC0yMDM4LDExICsyMDIyLDkgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdG
b2N1c0lmTmVlZGVkKERPTVBhdGgmIHBhdGgsIEVsZW1lbnQmIGVsZW1lbnQKIAogdm9pZCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdGb2N1c0lmTmVlZGVkSW50ZXJuYWwoY29uc3QgUGF0
aCYgcGF0aCwgRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQgPSBkcmF3aW5nQ29udGV4dCgpOwotCisgICAgYXV0byogY29udGV4dCA9IGRyYXdpbmdDb250
ZXh0KCk7CiAgICAgaWYgKCFlbGVtZW50LmZvY3VzZWQoKSB8fCAhc3RhdGUoKS5oYXNJbnZlcnRp
YmxlVHJhbnNmb3JtIHx8IHBhdGguaXNFbXB0eSgpIHx8ICFlbGVtZW50LmlzRGVzY2VuZGFudE9m
KGNhbnZhcygpKSB8fCAhY29udGV4dCkKICAgICAgICAgcmV0dXJuOwotCiAgICAgY29udGV4dC0+
ZHJhd0ZvY3VzUmluZyhwYXRoLCAxLCAxLCBSZW5kZXJUaGVtZTo6Zm9jdXNSaW5nQ29sb3IoKSk7
CiB9CiAKQEAgLTIyNzAsNyArMjI1Miw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NwYWNlVGhh
dE5lZWRzUmVwbGFjaW5nKFVDaGFyIGMpCiBzdGF0aWMgdm9pZCBub3JtYWxpemVTcGFjZXMoU3Ry
aW5nJiB0ZXh0KQogewogICAgIHNpemVfdCBpID0gdGV4dC5maW5kKGlzU3BhY2VUaGF0TmVlZHNS
ZXBsYWNpbmcpOwotCiAgICAgaWYgKGkgPT0gbm90Rm91bmQpCiAgICAgICAgIHJldHVybjsKIApA
QCAtMjMwMSwxMCArMjI4MiwxMCBAQCBSZWY8VGV4dE1ldHJpY3M+IENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6bWVhc3VyZVRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQogCiB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZs
b2F0IHgsIGZsb2F0IHksIGJvb2wgZmlsbCwgc3RkOjpvcHRpb25hbDxmbG9hdD4gbWF4V2lkdGgp
CiB7Ci0gICAgY29uc3QgYXV0byYgZm9udFByb3h5ID0gdGhpcy0+Zm9udFByb3h5KCk7Ci0gICAg
Y29uc3QgRm9udE1ldHJpY3MmIGZvbnRNZXRyaWNzID0gZm9udFByb3h5LmZvbnRNZXRyaWNzKCk7
CisgICAgYXV0byYgZm9udFByb3h5ID0gdGhpcy0+Zm9udFByb3h5KCk7CisgICAgY29uc3QgYXV0
byYgZm9udE1ldHJpY3MgPSBmb250UHJveHkuZm9udE1ldHJpY3MoKTsKIAotICAgIEdyYXBoaWNz
Q29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250
ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhh
c0ludmVydGlibGVUcmFuc2Zvcm0pCkBAIC0yMzE1LDcgKzIyOTYsNyBAQCB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZs
b2F0IHgsIGZsbwogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZiBncmFkaWVudCBzaXplIGlz
IHplcm8sIHRoZW4gcGFpbnQgbm90aGluZy4KLSAgICBHcmFkaWVudCogZ3JhZGllbnQgPSBjLT5z
dHJva2VHcmFkaWVudCgpOworICAgIGF1dG8qIGdyYWRpZW50ID0gYy0+c3Ryb2tlR3JhZGllbnQo
KTsKICAgICBpZiAoIWZpbGwgJiYgZ3JhZGllbnQgJiYgZ3JhZGllbnQtPmlzWmVyb1NpemUoKSkK
ICAgICAgICAgcmV0dXJuOwogCkBAIC0yMzI5LDcgKzIzMTAsNyBAQCB2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0
IHgsIGZsbwogICAgIC8vIEZJWE1FOiBOZWVkIHRvIHR1cm4gb2ZmIGZvbnQgc21vb3RoaW5nLgog
CiAgICAgY29uc3QgUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGU7Ci0gICAgVGV4dERpcmVjdGlv
biBkaXJlY3Rpb24gPSB0b1RleHREaXJlY3Rpb24oc3RhdGUoKS5kaXJlY3Rpb24sICZjb21wdXRl
ZFN0eWxlKTsKKyAgICBhdXRvIGRpcmVjdGlvbiA9IHRvVGV4dERpcmVjdGlvbihzdGF0ZSgpLmRp
cmVjdGlvbiwgJmNvbXB1dGVkU3R5bGUpOwogICAgIGJvb2wgaXNSVEwgPSBkaXJlY3Rpb24gPT0g
UlRMOwogICAgIGJvb2wgb3ZlcnJpZGUgPSBjb21wdXRlZFN0eWxlID8gaXNPdmVycmlkZShjb21w
dXRlZFN0eWxlLT51bmljb2RlQmlkaSgpKSA6IGZhbHNlOwogCkBAIC0yMzU5LDcgKzIzNDAsNyBA
QCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBT
dHJpbmcmIHRleHQsIGZsb2F0IHgsIGZsbwogICAgIGJvb2wgdXNlTWF4V2lkdGggPSBtYXhXaWR0
aCAmJiBtYXhXaWR0aC52YWx1ZSgpIDwgZm9udFdpZHRoOwogICAgIGZsb2F0IHdpZHRoID0gdXNl
TWF4V2lkdGggPyBtYXhXaWR0aC52YWx1ZSgpIDogZm9udFdpZHRoOwogCi0gICAgVGV4dEFsaWdu
IGFsaWduID0gc3RhdGUoKS50ZXh0QWxpZ247CisgICAgYXV0byBhbGlnbiA9IHN0YXRlKCkudGV4
dEFsaWduOwogICAgIGlmIChhbGlnbiA9PSBTdGFydFRleHRBbGlnbikKICAgICAgICAgYWxpZ24g
PSBpc1JUTCA/IFJpZ2h0VGV4dEFsaWduIDogTGVmdFRleHRBbGlnbjsKICAgICBlbHNlIGlmIChh
bGlnbiA9PSBFbmRUZXh0QWxpZ24pCkBAIC0yMzg1LDcgKzIzNjYsNiBAQCB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZs
b2F0IHgsIGZsbwogI2lmIFVTRShDRykKICAgICBjb25zdCBDYW52YXNTdHlsZSYgZHJhd1N0eWxl
ID0gZmlsbCA/IHN0YXRlKCkuZmlsbFN0eWxlIDogc3RhdGUoKS5zdHJva2VTdHlsZTsKICAgICBp
ZiAoZHJhd1N0eWxlLmNhbnZhc0dyYWRpZW50KCkgfHwgZHJhd1N0eWxlLmNhbnZhc1BhdHRlcm4o
KSkgewotCiAgICAgICAgIEludFJlY3QgbWFza1JlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHRleHRS
ZWN0KTsKIAogICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgc2hhZG93LCB3ZSBuZWVkIHRvIGRyYXcg
aXQgYmVmb3JlIHRoZSBtYXNrIG9wZXJhdGlvbi4KQEAgLTIzOTQsNyArMjM3NCw3IEBAIHZvaWQg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYg
dGV4dCwgZmxvYXQgeCwgZmxvCiAgICAgICAgIGlmIChzaG91bGREcmF3U2hhZG93cygpKSB7CiAg
ICAgICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmMpOwogCi0g
ICAgICAgICAgICBGbG9hdFNpemUgb2Zmc2V0ID0gRmxvYXRTaXplKDAsIDIgKiBtYXNrUmVjdC5o
ZWlnaHQoKSk7CisgICAgICAgICAgICBGbG9hdFNpemUgb2Zmc2V0KDAsIDIgKiBtYXNrUmVjdC5o
ZWlnaHQoKSk7CiAKICAgICAgICAgICAgIEZsb2F0U2l6ZSBzaGFkb3dPZmZzZXQ7CiAgICAgICAg
ICAgICBmbG9hdCBzaGFkb3dSYWRpdXM7CkBAIC0yNDIyLDcgKzI0MDIsNyBAQCB2b2lkIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQs
IGZsb2F0IHgsIGZsbwogICAgICAgICBpZiAoIW1hc2tJbWFnZSkKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBHcmFwaGljc0NvbnRleHQmIG1hc2tJbWFnZUNvbnRleHQgPSBtYXNrSW1h
Z2UtPmNvbnRleHQoKTsKKyAgICAgICAgYXV0byYgbWFza0ltYWdlQ29udGV4dCA9IG1hc2tJbWFn
ZS0+Y29udGV4dCgpOwogCiAgICAgICAgIGlmIChmaWxsKQogICAgICAgICAgICAgbWFza0ltYWdl
Q29udGV4dC5zZXRGaWxsQ29sb3IoQ29sb3I6OmJsYWNrKTsKQEAgLTI0NDUsNyArMjQyNSw3IEBA
IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0
cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVT
YXZlciBzdGF0ZVNhdmVyKCpjKTsKICAgICAgICAgYy0+Y2xpcFRvSW1hZ2VCdWZmZXIoKm1hc2tJ
bWFnZSwgbWFza1JlY3QpOwotICAgICAgICBkcmF3U3R5bGUuYXBwbHlGaWxsQ29sb3IoYyk7Cisg
ICAgICAgIGRyYXdTdHlsZS5hcHBseUZpbGxDb2xvcigqYyk7CiAgICAgICAgIGMtPmZpbGxSZWN0
KG1hc2tSZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI0ODcsMjcgKzI0NjcsMjcg
QEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmluZmxhdGVTdHJva2VSZWN0KEZsb2F0
UmVjdCYgcmVjdCkgY29uc3QKICAgICAgICAgZGVsdGEgKj0gc3RhdGUoKS5taXRlckxpbWl0Owog
ICAgIGVsc2UgaWYgKHN0YXRlKCkubGluZUNhcCA9PSBTcXVhcmVDYXApCiAgICAgICAgIGRlbHRh
ICo9IHJvb3QyOwotCiAgICAgcmVjdC5pbmZsYXRlKGRlbHRhKTsKIH0KIAogYXV0byBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ6OmZvbnRQcm94eSgpIC0+IGNvbnN0IEZvbnRQcm94eSYKIHsKICAg
ICBjYW52YXMoKS5kb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKLQogICAgIGlmICgh
c3RhdGUoKS5mb250LnJlYWxpemVkKCkpCiAgICAgICAgIHNldEZvbnQoc3RhdGUoKS51bnBhcnNl
ZEZvbnQpOwogICAgIHJldHVybiBzdGF0ZSgpLmZvbnQ7CiB9CiAKICNpZiBFTkFCTEUoQUNDRUxF
UkFURURfMkRfQ0FOVkFTKQorCiBQbGF0Zm9ybUxheWVyKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewotICAgIHJldHVybiBjYW52YXMoKS5idWZmZXIo
KSA/IGNhbnZhcygpLmJ1ZmZlcigpLT5wbGF0Zm9ybUxheWVyKCkgOiAwOworICAgIHJldHVybiBj
YW52YXMoKS5idWZmZXIoKSA/IGNhbnZhcygpLmJ1ZmZlcigpLT5wbGF0Zm9ybUxheWVyKCkgOiBu
dWxscHRyOwogfQorCiAjZW5kaWYKIAotc3RhdGljIEludGVycG9sYXRpb25RdWFsaXR5IHNtb290
aGluZ1RvSW50ZXJwb2xhdGlvblF1YWxpdHkoQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpJbWFn
ZVNtb290aGluZ1F1YWxpdHkgcXVhbGl0eSkKK3N0YXRpYyBpbmxpbmUgSW50ZXJwb2xhdGlvblF1
YWxpdHkgc21vb3RoaW5nVG9JbnRlcnBvbGF0aW9uUXVhbGl0eShDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OkltYWdlU21vb3RoaW5nUXVhbGl0eSBxdWFsaXR5KQogewogICAgIHN3aXRjaCAocXVh
bGl0eSkgewogICAgIGNhc2UgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpJbWFnZVNtb290aGlu
Z1F1YWxpdHk6OkxvdzoKQEAgLTI1NTQsNyArMjUzNCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpzZXRJbWFnZVNtb290aGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogCiAgICAg
cmVhbGl6ZVNhdmVzKCk7CiAgICAgbW9kaWZpYWJsZVN0YXRlKCkuaW1hZ2VTbW9vdGhpbmdFbmFi
bGVkID0gZW5hYmxlZDsKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgp
OworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmIChjKQogICAgICAgICBj
LT5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KGVuYWJsZWQgPyBzbW9vdGhpbmdUb0ludGVy
cG9sYXRpb25RdWFsaXR5KHN0YXRlKCkuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5KSA6IEludGVycG9s
YXRpb25Ob25lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmgKaW5kZXggNTRiZTlkMDBjZjU4MjNiMTZkMTY3NjhhZGFl
NTNlNWE2NTMxZTYwOS4uZTM5ZjFiNjcyODllYjk2M2I2NDc0MmU4YzQyMzRlZDEwYzFlMjA3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmgKQEAgLTM0MCw5ICszNDAsNyBAQCBwcml2YXRlOgogICAgIC8vIFRoZXJlZm9y
ZSwgYWxsIGZvbnQgb3BlcmF0aW9ucyBtdXN0IHBhc3MgdGhyb3VnaCB0aGUgU3RhdGUuCiAgICAg
Y29uc3QgRm9udFByb3h5JiBmb250UHJveHkoKTsKIAotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQ
UE9SVCkKICAgICB2b2lkIGNsZWFyUGF0aEZvckRhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0
eU1vZGUoKTsKLSNlbmRpZgogCiAgICAgdm9pZCBiZWdpbkNvbXBvc2l0ZUxheWVyKCk7CiAgICAg
dm9pZCBlbmRDb21wb3NpdGVMYXllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzU3R5bGUuY3BwCmluZGV4IDlhYTBhMDUyZjQ2MWFkNmIyYzVlYWM2YWZlYzMyMzE1NjVlMDIx
MzYuLjlkYzhmMDQ4ZDc2ZjhjOTJiYmEyZTE5OTZkYThkN2FkOGEyZWIzNmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAg
VG9rZXIgPGFscEBhdG9rZXIuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA4IEVyaWMgU2VpZGVs
IDxlcmljQHdlYmtpdC5vcmc+CkBAIC01Myw3ICs1Myw2IEBAIHN0YXRpYyBDb2xvciBwYXJzZUNv
bG9yKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIERvY3VtZW50KiBkb2N1bWVudCA9IG51bGxw
dHIpCiAgICAgQ29sb3IgY29sb3IgPSBDU1NQYXJzZXI6OnBhcnNlQ29sb3IoY29sb3JTdHJpbmcp
OwogICAgIGlmIChjb2xvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBjb2xvcjsKLQogICAg
IHJldHVybiBDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3IoY29sb3JTdHJpbmcsIGRvY3VtZW50
KTsKIH0KIApAQCAtNzYsMjA4ICs3NSwxNTAgQEAgQ29sb3IgcGFyc2VDb2xvck9yQ3VycmVudENv
bG9yKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIEhUTUxDYW52YXNFbGVtZW50KiBjYW4KIH0K
IAogQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKENvbG9yIGNvbG9yKQotICAgIDogbV9jb2xvcihj
b2xvcikKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDogbV9zdHlsZShjb2xvcikKIHsKIH0KIAog
Q2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQgYWxwaGEpCi0g
ICAgOiBtX2NvbG9yKENvbG9yKGdyYXlMZXZlbCwgZ3JheUxldmVsLCBncmF5TGV2ZWwsIGFscGhh
KSkKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDogbV9zdHlsZShDb2xvciB7IGdyYXlMZXZlbCwg
Z3JheUxldmVsLCBncmF5TGV2ZWwsIGFscGhhIH0pCiB7CiB9CiAKIENhbnZhc1N0eWxlOjpDYW52
YXNTdHlsZShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhKQotICAgIDogbV9jb2xv
cihDb2xvcihyLCBnLCBiLCBhKSkKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDogbV9zdHlsZShD
b2xvciB7IHIsIGcsIGIsIGEgfSkKIHsKIH0KIAogQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGZs
b2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZsb2F0IGEpCi0gICAgOiBtX2NteWth
KG5ldyBDTVlLQVZhbHVlcyhDb2xvcihjLCBtLCB5LCBrLCBhKSwgYywgbSwgeSwgaywgYSkpCi0g
ICAgLCBtX3R5cGUoQ01ZS0EpCisgICAgOiBtX3N0eWxlKENNWUtBQ29sb3IgeyBDb2xvciB7IGMs
IG0sIHksIGssIGEgfSwgYywgbSwgeSwgaywgYSB9KQogewogfQogCi1DYW52YXNTdHlsZTo6Q2Fu
dmFzU3R5bGUoUGFzc1JlZlB0cjxDYW52YXNHcmFkaWVudD4gZ3JhZGllbnQpCi0gICAgOiBtX2dy
YWRpZW50KGdyYWRpZW50LmxlYWtSZWYoKSkKLSAgICAsIG1fdHlwZShHcmFkaWVudCkKK0NhbnZh
c1N0eWxlOjpDYW52YXNTdHlsZShDYW52YXNHcmFkaWVudCYgZ3JhZGllbnQpCisgICAgOiBtX3N0
eWxlKG1ha2VSZWZQdHIoZ3JhZGllbnQpKQogewotICAgIGlmICghbV9ncmFkaWVudCkKLSAgICAg
ICAgbV90eXBlID0gSW52YWxpZDsKIH0KIAotQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKFBhc3NS
ZWZQdHI8Q2FudmFzUGF0dGVybj4gcGF0dGVybikKLSAgICA6IG1fcGF0dGVybihwYXR0ZXJuLmxl
YWtSZWYoKSkKLSAgICAsIG1fdHlwZShJbWFnZVBhdHRlcm4pCitDYW52YXNTdHlsZTo6Q2FudmFz
U3R5bGUoQ2FudmFzUGF0dGVybiYgcGF0dGVybikKKyAgICA6IG1fc3R5bGUobWFrZVJlZlB0cihw
YXR0ZXJuKSkKIHsKLSAgICBpZiAoIW1fcGF0dGVybikKLSAgICAgICAgbV90eXBlID0gSW52YWxp
ZDsKIH0KIAotQ2FudmFzU3R5bGU6On5DYW52YXNTdHlsZSgpCitpbmxpbmUgQ2FudmFzU3R5bGU6
OkNhbnZhc1N0eWxlKEN1cnJlbnRDb2xvciBjb2xvcikKKyAgICA6IG1fc3R5bGUoY29sb3IpCiB7
Ci0gICAgaWYgKG1fdHlwZSA9PSBHcmFkaWVudCkKLSAgICAgICAgbV9ncmFkaWVudC0+ZGVyZWYo
KTsKLSAgICBlbHNlIGlmIChtX3R5cGUgPT0gSW1hZ2VQYXR0ZXJuKQotICAgICAgICBtX3BhdHRl
cm4tPmRlcmVmKCk7Ci0gICAgZWxzZSBpZiAobV90eXBlID09IENNWUtBKQotICAgICAgICBkZWxl
dGUgbV9jbXlrYTsKIH0KIAogQ2FudmFzU3R5bGUgQ2FudmFzU3R5bGU6OmNyZWF0ZUZyb21TdHJp
bmcoY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZywgRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAg
IGlmIChpc0N1cnJlbnRDb2xvclN0cmluZyhjb2xvclN0cmluZykpCi0gICAgICAgIHJldHVybiBD
YW52YXNTdHlsZShDb25zdHJ1Y3RDdXJyZW50Q29sb3IpOworICAgICAgICByZXR1cm4gQ3VycmVu
dENvbG9yIHsgc3RkOjpudWxsb3B0IH07CiAKICAgICBDb2xvciBjb2xvciA9IHBhcnNlQ29sb3Io
Y29sb3JTdHJpbmcsIGRvY3VtZW50KTsKLSAgICBpZiAoY29sb3IuaXNWYWxpZCgpKQotICAgICAg
ICByZXR1cm4gQ2FudmFzU3R5bGUoY29sb3IpOworICAgIGlmICghY29sb3IuaXNWYWxpZCgpKQor
ICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIENhbnZhc1N0eWxlKCk7CisgICAgcmV0
dXJuIGNvbG9yOwogfQogCiBDYW52YXNTdHlsZSBDYW52YXNTdHlsZTo6Y3JlYXRlRnJvbVN0cmlu
Z1dpdGhPdmVycmlkZUFscGhhKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIGZsb2F0IGFscGhh
KQogewogICAgIGlmIChpc0N1cnJlbnRDb2xvclN0cmluZyhjb2xvclN0cmluZykpCi0gICAgICAg
IHJldHVybiBDYW52YXNTdHlsZShDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBoYSwgYWxwaGEp
OworICAgICAgICByZXR1cm4gQ3VycmVudENvbG9yIHsgYWxwaGEgfTsKIAogICAgIENvbG9yIGNv
bG9yID0gcGFyc2VDb2xvcihjb2xvclN0cmluZyk7Ci0gICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkK
LSAgICAgICAgcmV0dXJuIENhbnZhc1N0eWxlKGNvbG9yV2l0aE92ZXJyaWRlQWxwaGEoY29sb3Iu
cmdiKCksIGFscGhhKSk7CisgICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVy
biB7IH07CiAKLSAgICByZXR1cm4gQ2FudmFzU3R5bGUoKTsKKyAgICByZXR1cm4gQ29sb3IgeyBj
b2xvcldpdGhPdmVycmlkZUFscGhhKGNvbG9yLnJnYigpLCBhbHBoYSkgfTsKIH0KIAogYm9vbCBD
YW52YXNTdHlsZTo6aXNFcXVpdmFsZW50Q29sb3IoY29uc3QgQ2FudmFzU3R5bGUmIG90aGVyKSBj
b25zdAogewotICAgIGlmIChtX3R5cGUgIT0gb3RoZXIubV90eXBlKQotICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG1fc3R5bGUpICYm
IFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG90aGVyLm1fc3R5bGUpKQorICAgICAgICBy
ZXR1cm4gV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpID09IFdURjo6Z2V0PENvbG9yPihvdGhlci5t
X3N0eWxlKTsKIAotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBSR0JBOgotICAgICAg
ICByZXR1cm4gbV9jb2xvciA9PSBvdGhlci5tX2NvbG9yOwotICAgIGNhc2UgQ01ZS0E6Ci0gICAg
ICAgIHJldHVybiBtX2NteWthLT5jID09IG90aGVyLm1fY215a2EtPmMKLSAgICAgICAgICAgICYm
IG1fY215a2EtPm0gPT0gb3RoZXIubV9jbXlrYS0+bQotICAgICAgICAgICAgJiYgbV9jbXlrYS0+
eSA9PSBvdGhlci5tX2NteWthLT55Ci0gICAgICAgICAgICAmJiBtX2NteWthLT5rID09IG90aGVy
Lm1fY215a2EtPmsKLSAgICAgICAgICAgICYmIG1fY215a2EtPmEgPT0gb3RoZXIubV9jbXlrYS0+
YTsKLSAgICBjYXNlIEdyYWRpZW50OgotICAgIGNhc2UgSW1hZ2VQYXR0ZXJuOgotICAgIGNhc2Ug
Q3VycmVudENvbG9yOgotICAgIGNhc2UgQ3VycmVudENvbG9yV2l0aE92ZXJyaWRlQWxwaGE6Ci0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjYXNlIEludmFsaWQ6Ci0gICAgICAgIGJyZWFrOwor
ICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENNWUtBQ29sb3I+KG1fc3R5bGUpICYmIFdU
Rjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q01ZS0FDb2xvcj4ob3RoZXIubV9zdHlsZSkpIHsKKyAgICAg
ICAgYXV0byYgYSA9IFdURjo6Z2V0PENNWUtBQ29sb3I+KG1fc3R5bGUpOworICAgICAgICBhdXRv
JiBiID0gV1RGOjpnZXQ8Q01ZS0FDb2xvcj4ob3RoZXIubV9zdHlsZSk7CisgICAgICAgIHJldHVy
biBhLmMgPT0gYi5jICYmIGEubSA9PSBiLm0gJiYgYS55ID09IGIueSAmJiBhLmsgPT0gYi5rICYm
IGEuYSA9PSBiLmE7CiAgICAgfQogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCiBib29sIENhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRSR0JBKGZsb2F0
IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGEpIGNvbnN0CiB7Ci0gICAgaWYgKG1fdHlwZSAh
PSBSR0JBKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9jb2xvciA9PSBD
b2xvcihyLCBnLCBiLCBhKTsKKyAgICByZXR1cm4gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDb2xv
cj4obV9zdHlsZSkgJiYgV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpID09IENvbG9yIHsgciwgZywg
YiwgYSB9OwogfQogCiBib29sIENhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDTVlLQShmbG9hdCBj
LCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBhKSBjb25zdAogewotICAgIGlmICht
X3R5cGUgIT0gQ01ZS0EpCisgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENNWUtBQ29s
b3I+KG1fc3R5bGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gYyA9PSBt
X2NteWthLT5jCi0gICAgICAgICYmIG0gPT0gbV9jbXlrYS0+bQotICAgICAgICAmJiB5ID09IG1f
Y215a2EtPnkKLSAgICAgICAgJiYgayA9PSBtX2NteWthLT5rCi0gICAgICAgICYmIGEgPT0gbV9j
bXlrYS0+YTsKLX0KLQotQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGNvbnN0IENhbnZhc1N0eWxl
JiBvdGhlcikKLXsKLSAgICBtZW1jcHkodGhpcywgJm90aGVyLCBzaXplb2YoQ2FudmFzU3R5bGUp
KTsKLSAgICBpZiAobV90eXBlID09IEdyYWRpZW50KQotICAgICAgICBtX2dyYWRpZW50LT5yZWYo
KTsKLSAgICBlbHNlIGlmIChtX3R5cGUgPT0gSW1hZ2VQYXR0ZXJuKQotICAgICAgICBtX3BhdHRl
cm4tPnJlZigpOwotICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBDTVlLQSkKLSAgICAgICAgbV9jbXlr
YSA9IG5ldyBDTVlLQVZhbHVlcyhvdGhlci5tX2NteWthLT5jb2xvciwgb3RoZXIubV9jbXlrYS0+
Yywgb3RoZXIubV9jbXlrYS0+bSwgb3RoZXIubV9jbXlrYS0+eSwgb3RoZXIubV9jbXlrYS0+aywg
b3RoZXIubV9jbXlrYS0+YSk7Ci19Ci0KLUNhbnZhc1N0eWxlJiBDYW52YXNTdHlsZTo6b3BlcmF0
b3I9KGNvbnN0IENhbnZhc1N0eWxlJiBvdGhlcikKLXsKLSAgICBpZiAodGhpcyAhPSAmb3RoZXIp
IHsKLSAgICAgICAgdGhpcy0+fkNhbnZhc1N0eWxlKCk7Ci0gICAgICAgIG5ldyAodGhpcykgQ2Fu
dmFzU3R5bGUob3RoZXIpOwotICAgIH0KLSAgICByZXR1cm4gKnRoaXM7CisgICAgYXV0byYgY2hh
bm5lbHMgPSBXVEY6OmdldDxDTVlLQUNvbG9yPihtX3N0eWxlKTsKKyAgICByZXR1cm4gYyA9PSBj
aGFubmVscy5jICYmIG0gPT0gY2hhbm5lbHMubSAmJiB5ID09IGNoYW5uZWxzLnkgJiYgayA9PSBj
aGFubmVscy5rICYmIGEgPT0gY2hhbm5lbHMuYTsKIH0KIAotdm9pZCBDYW52YXNTdHlsZTo6YXBw
bHlTdHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpIGNvbnN0Cit2b2lkIENhbnZh
c1N0eWxlOjphcHBseVN0cm9rZUNvbG9yKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QK
IHsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICBzd2l0Y2ggKG1fdHlw
ZSkgewotICAgIGNhc2UgUkdCQToKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3IobV9j
b2xvcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ01ZS0E6IHsKLSAgICAgICAgLy8gRklY
TUU6IERvIHRoaXMgdGhyb3VnaCBwbGF0Zm9ybS1pbmRlcGVuZGVudCBHcmFwaGljc0NvbnRleHQg
QVBJLgotICAgICAgICAvLyBXZSdsbCBuZWVkIGEgZmFuY2llciBDb2xvciBhYnN0cmFjdGlvbiB0
byBzdXBwb3J0IENNWUtBIGNvcnJlY3RseQorICAgIFdURjo6c3dpdGNoT24obV9zdHlsZSwKKyAg
ICAgICAgWyZjb250ZXh0XSAoY29uc3QgQ29sb3ImIGNvbG9yKSB7CisgICAgICAgICAgICBjb250
ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9yKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0
XSAoY29uc3QgQ01ZS0FDb2xvciYgY29sb3IpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBEbyB0
aGlzIHRocm91Z2ggcGxhdGZvcm0taW5kZXBlbmRlbnQgR3JhcGhpY3NDb250ZXh0IEFQSS4KKyAg
ICAgICAgICAgIC8vIFdlJ2xsIG5lZWQgYSBmYW5jaWVyIENvbG9yIGFic3RyYWN0aW9uIHRvIHN1
cHBvcnQgQ01ZS0EgY29ycmVjdGx5CiAjaWYgVVNFKENHKQotICAgICAgICBDR0NvbnRleHRTZXRD
TVlLU3Ryb2tlQ29sb3IoY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIG1fY215a2EtPmMsIG1f
Y215a2EtPm0sIG1fY215a2EtPnksIG1fY215a2EtPmssIG1fY215a2EtPmEpOworICAgICAgICAg
ICAgQ0dDb250ZXh0U2V0Q01ZS1N0cm9rZUNvbG9yKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCks
IGNvbG9yLmMsIGNvbG9yLm0sIGNvbG9yLnksIGNvbG9yLmssIGNvbG9yLmEpOwogI2Vsc2UKLSAg
ICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3IobV9jbXlrYS0+Y29sb3IpOworICAgICAgICAg
ICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihjb2xvci5jb2xvcik7CiAjZW5kaWYKLSAgICAgICAg
YnJlYWs7Ci0gICAgfQotICAgIGNhc2UgR3JhZGllbnQ6Ci0gICAgICAgIGNvbnRleHQtPnNldFN0
cm9rZUdyYWRpZW50KGNhbnZhc0dyYWRpZW50KCktPmdyYWRpZW50KCkpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEltYWdlUGF0dGVybjoKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlUGF0
dGVybihjYW52YXNQYXR0ZXJuKCktPnBhdHRlcm4oKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgQ3VycmVudENvbG9yOgotICAgIGNhc2UgQ3VycmVudENvbG9yV2l0aE92ZXJyaWRlQWxwaGE6
Ci0gICAgY2FzZSBJbnZhbGlkOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgfQotfQotCi12b2lkIENhbnZhc1N0eWxlOjphcHBseUZpbGxDb2xvcihH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQpIGNvbnN0Ci17Ci0gICAgaWYgKCFjb250ZXh0KQotICAg
ICAgICByZXR1cm47Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFJHQkE6Ci0gICAg
ICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihtX2NvbG9yKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBDTVlLQTogewotICAgICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdoIHBsYXRmb3Jt
LWluZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCi0gICAgICAgIC8vIFdlJ2xsIG5lZWQg
YSBmYW5jaWVyIENvbG9yIGFic3RyYWN0aW9uIHRvIHN1cHBvcnQgQ01ZS0EgY29ycmVjdGx5Cisg
ICAgICAgIH0sCisgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IFJlZlB0cjxDYW52YXNHcmFkaWVu
dD4mIGdyYWRpZW50KSB7CisgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZUdyYWRpZW50KGdy
YWRpZW50LT5ncmFkaWVudCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29u
c3QgUmVmUHRyPENhbnZhc1BhdHRlcm4+JiBwYXR0ZXJuKSB7CisgICAgICAgICAgICBjb250ZXh0
LnNldFN0cm9rZVBhdHRlcm4ocGF0dGVybi0+cGF0dGVybigpKTsKKyAgICAgICAgfSwKKyAgICAg
ICAgW10gKGNvbnN0IEN1cnJlbnRDb2xvciYpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICB9LAorICAgICAgICBbXSAoY29uc3QgSW52YWxpZCYpIHsKKyAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgKTsKK30KKwordm9p
ZCBDYW52YXNTdHlsZTo6YXBwbHlGaWxsQ29sb3IoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBj
b25zdAoreworICAgIFdURjo6c3dpdGNoT24obV9zdHlsZSwKKyAgICAgICAgWyZjb250ZXh0XSAo
Y29uc3QgQ29sb3ImIGNvbG9yKSB7CisgICAgICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihj
b2xvcik7CisgICAgICAgIH0sCisgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IENNWUtBQ29sb3Im
IGNvbG9yKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdoIHBsYXRmb3Jt
LWluZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCisgICAgICAgICAgICAvLyBXZSdsbCBu
ZWVkIGEgZmFuY2llciBDb2xvciBhYnN0cmFjdGlvbiB0byBzdXBwb3J0IENNWUtBIGNvcnJlY3Rs
eQogI2lmIFVTRShDRykKLSAgICAgICAgQ0dDb250ZXh0U2V0Q01ZS0ZpbGxDb2xvcihjb250ZXh0
LT5wbGF0Zm9ybUNvbnRleHQoKSwgbV9jbXlrYS0+YywgbV9jbXlrYS0+bSwgbV9jbXlrYS0+eSwg
bV9jbXlrYS0+aywgbV9jbXlrYS0+YSk7CisgICAgICAgICAgICBDR0NvbnRleHRTZXRDTVlLRmls
bENvbG9yKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIGNvbG9yLmMsIGNvbG9yLm0sIGNvbG9y
LnksIGNvbG9yLmssIGNvbG9yLmEpOwogI2Vsc2UKLSAgICAgICAgY29udGV4dC0+c2V0RmlsbENv
bG9yKG1fY215a2EtPmNvbG9yKTsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGNv
bG9yLmNvbG9yKTsKICNlbmRpZgotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBHcmFk
aWVudDoKLSAgICAgICAgY29udGV4dC0+c2V0RmlsbEdyYWRpZW50KGNhbnZhc0dyYWRpZW50KCkt
PmdyYWRpZW50KCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEltYWdlUGF0dGVybjoKLSAg
ICAgICAgY29udGV4dC0+c2V0RmlsbFBhdHRlcm4oY2FudmFzUGF0dGVybigpLT5wYXR0ZXJuKCkp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEN1cnJlbnRDb2xvcjoKLSAgICBjYXNlIEN1cnJl
bnRDb2xvcldpdGhPdmVycmlkZUFscGhhOgotICAgIGNhc2UgSW52YWxpZDoKLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICAgICAgfSwKKyAg
ICAgICAgWyZjb250ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZhc0dyYWRpZW50PiYgZ3JhZGllbnQp
IHsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbEdyYWRpZW50KGdyYWRpZW50LT5ncmFkaWVu
dCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZh
c1BhdHRlcm4+JiBwYXR0ZXJuKSB7CisgICAgICAgICAgICBjb250ZXh0LnNldEZpbGxQYXR0ZXJu
KHBhdHRlcm4tPnBhdHRlcm4oKSk7CisgICAgICAgIH0sCisgICAgICAgIFtdIChjb25zdCBDdXJy
ZW50Q29sb3ImKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
fSwKKyAgICAgICAgW10gKGNvbnN0IEludmFsaWQmKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgICk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNTdHlsZS5oCmluZGV4IGI2YmY0N2M0MDNjM2Q5ZTk1NjA1NjkxNGEwNGJi
YzMwYTBhYWJhMmIuLmQ3ODAzMGFjOWVmMDY3OTgxZWNhMGU4ZWRlNmQ0YjcyNDg2ZjViY2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjYsMTM1
ICsyNiwxMDAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDYW52YXNHcmFkaWVudC5o
IgorI2luY2x1ZGUgIkNhbnZhc1BhdHRlcm4uaCIKICNpbmNsdWRlICJDb2xvci5oIgotI2luY2x1
ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Cisj
aW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xh
c3MgQ2FudmFzR3JhZGllbnQ7Ci0gICAgY2xhc3MgQ2FudmFzUGF0dGVybjsKLSAgICBjbGFzcyBE
b2N1bWVudDsKLSAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7Ci0gICAgY2xhc3MgSFRNTENhbnZh
c0VsZW1lbnQ7Ci0KLSAgICBjbGFzcyBDYW52YXNTdHlsZSB7Ci0gICAgcHVibGljOgotICAgICAg
ICBDYW52YXNTdHlsZSgpOwotICAgICAgICBleHBsaWNpdCBDYW52YXNTdHlsZShDb2xvcik7Ci0g
ICAgICAgIENhbnZhc1N0eWxlKGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQgYWxwaGEpOwotICAgICAg
ICBDYW52YXNTdHlsZShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhbHBoYSk7Ci0g
ICAgICAgIENhbnZhc1N0eWxlKGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZs
b2F0IGFscGhhKTsKLSAgICAgICAgZXhwbGljaXQgQ2FudmFzU3R5bGUoUGFzc1JlZlB0cjxDYW52
YXNHcmFkaWVudD4pOwotICAgICAgICBleHBsaWNpdCBDYW52YXNTdHlsZShQYXNzUmVmUHRyPENh
bnZhc1BhdHRlcm4+KTsKLSAgICAgICAgfkNhbnZhc1N0eWxlKCk7Ci0KLSAgICAgICAgc3RhdGlj
IENhbnZhc1N0eWxlIGNyZWF0ZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBjb2xvciwgRG9jdW1l
bnQqID0gMCk7Ci0gICAgICAgIHN0YXRpYyBDYW52YXNTdHlsZSBjcmVhdGVGcm9tU3RyaW5nV2l0
aE92ZXJyaWRlQWxwaGEoY29uc3QgU3RyaW5nJiBjb2xvciwgZmxvYXQgYWxwaGEpOwotCi0gICAg
ICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSAhPSBJbnZhbGlkOyB9Ci0g
ICAgICAgIGJvb2wgaXNDdXJyZW50Q29sb3IoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gQ3Vy
cmVudENvbG9yIHx8IG1fdHlwZSA9PSBDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBoYTsgfQot
ICAgICAgICBib29sIGhhc092ZXJyaWRlQWxwaGEoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0g
Q3VycmVudENvbG9yV2l0aE92ZXJyaWRlQWxwaGE7IH0KLSAgICAgICAgZmxvYXQgb3ZlcnJpZGVB
bHBoYSgpIGNvbnN0IHsgQVNTRVJUKG1fdHlwZSA9PSBDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVB
bHBoYSk7IHJldHVybiBtX292ZXJyaWRlQWxwaGE7IH0KLQotICAgICAgICBTdHJpbmcgY29sb3Io
KSBjb25zdDsKLSAgICAgICAgQ2FudmFzR3JhZGllbnQqIGNhbnZhc0dyYWRpZW50KCkgY29uc3Q7
Ci0gICAgICAgIENhbnZhc1BhdHRlcm4qIGNhbnZhc1BhdHRlcm4oKSBjb25zdDsKLQotICAgICAg
ICB2b2lkIGFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29udGV4dCopIGNvbnN0OwotICAgICAgICB2
b2lkIGFwcGx5U3Ryb2tlQ29sb3IoR3JhcGhpY3NDb250ZXh0KikgY29uc3Q7Ci0KLSAgICAgICAg
Ym9vbCBpc0VxdWl2YWxlbnRDb2xvcihjb25zdCBDYW52YXNTdHlsZSYpIGNvbnN0OwotICAgICAg
ICBib29sIGlzRXF1aXZhbGVudFJHQkEoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQg
YSkgY29uc3Q7Ci0gICAgICAgIGJvb2wgaXNFcXVpdmFsZW50Q01ZS0EoZmxvYXQgYywgZmxvYXQg
bSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYSkgY29uc3Q7Ci0KLSAgICAgICAgQ2FudmFzU3R5
bGUoY29uc3QgQ2FudmFzU3R5bGUmKTsKLSAgICAgICAgQ2FudmFzU3R5bGUmIG9wZXJhdG9yPShj
b25zdCBDYW52YXNTdHlsZSYpOwotICAgICAgICBDYW52YXNTdHlsZShDYW52YXNTdHlsZSYmKTsK
LSAgICAgICAgQ2FudmFzU3R5bGUmIG9wZXJhdG9yPShDYW52YXNTdHlsZSYmKTsKLQotICAgIHBy
aXZhdGU6Ci0gICAgICAgIGVudW0gVHlwZSB7IFJHQkEsIENNWUtBLCBHcmFkaWVudCwgSW1hZ2VQ
YXR0ZXJuLCBDdXJyZW50Q29sb3IsIEN1cnJlbnRDb2xvcldpdGhPdmVycmlkZUFscGhhLCBJbnZh
bGlkIH07Ci0gICAgICAgIHN0cnVjdCBDTVlLQVZhbHVlcyB7Ci0gICAgICAgICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKLSAgICAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENNWUtB
VmFsdWVzKTsKLSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgQ01ZS0FWYWx1ZXMoKQotICAg
ICAgICAgICAgICAgIDogY29sb3IoKSwgYygwKSwgbSgwKSwgeSgwKSwgaygwKSwgYSgwKQotICAg
ICAgICAgICAgeyB9Ci0KLSAgICAgICAgICAgIENNWUtBVmFsdWVzKENvbG9yIGNvbG9yLCBmbG9h
dCBjeWFuLCBmbG9hdCBtYWdlbnRhLCBmbG9hdCB5ZWxsb3csIGZsb2F0IGJsYWNrLCBmbG9hdCBh
bHBoYSkKLSAgICAgICAgICAgICAgICA6IGNvbG9yKGNvbG9yKSwgYyhjeWFuKSwgbShtYWdlbnRh
KSwgeSh5ZWxsb3cpLCBrKGJsYWNrKSwgYShhbHBoYSkKLSAgICAgICAgICAgIHsgfQotICAgICAg
ICAgICAgQ29sb3IgY29sb3I7Ci0gICAgICAgICAgICBmbG9hdCBjOwotICAgICAgICAgICAgZmxv
YXQgbTsKLSAgICAgICAgICAgIGZsb2F0IHk7Ci0gICAgICAgICAgICBmbG9hdCBrOwotICAgICAg
ICAgICAgZmxvYXQgYTsKLSAgICAgICAgfTsKLQotICAgICAgICBlbnVtIENvbnN0cnVjdEN1cnJl
bnRDb2xvclRhZyB7IENvbnN0cnVjdEN1cnJlbnRDb2xvciB9OwotICAgICAgICBDYW52YXNTdHls
ZShDb25zdHJ1Y3RDdXJyZW50Q29sb3JUYWcpIDogbV90eXBlKEN1cnJlbnRDb2xvcikgeyB9Ci0g
ICAgICAgIENhbnZhc1N0eWxlKFR5cGUgdHlwZSwgZmxvYXQgb3ZlcnJpZGVBbHBoYSkKLSAgICAg
ICAgICAgIDogbV9vdmVycmlkZUFscGhhKG92ZXJyaWRlQWxwaGEpCi0gICAgICAgICAgICAsIG1f
dHlwZSh0eXBlKQorY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CitjbGFz
cyBIVE1MQ2FudmFzRWxlbWVudDsKKworY2xhc3MgQ2FudmFzU3R5bGUgeworcHVibGljOgorICAg
IENhbnZhc1N0eWxlKCk7CisgICAgQ2FudmFzU3R5bGUoQ29sb3IpOworICAgIENhbnZhc1N0eWxl
KGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQgYWxwaGEpOworICAgIENhbnZhc1N0eWxlKGZsb2F0IHIs
IGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGFscGhhKTsKKyAgICBDYW52YXNTdHlsZShmbG9hdCBj
LCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBhbHBoYSk7CisgICAgQ2FudmFzU3R5
bGUoQ2FudmFzR3JhZGllbnQmKTsKKyAgICBDYW52YXNTdHlsZShDYW52YXNQYXR0ZXJuJik7CisK
KyAgICBzdGF0aWMgQ2FudmFzU3R5bGUgY3JlYXRlRnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIGNv
bG9yLCBEb2N1bWVudCogPSBudWxscHRyKTsKKyAgICBzdGF0aWMgQ2FudmFzU3R5bGUgY3JlYXRl
RnJvbVN0cmluZ1dpdGhPdmVycmlkZUFscGhhKGNvbnN0IFN0cmluZyYgY29sb3IsIGZsb2F0IGFs
cGhhKTsKKworICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuICFXVEY6OmhvbGRzX2Fs
dGVybmF0aXZlPEludmFsaWQ+KG1fc3R5bGUpOyB9CisgICAgYm9vbCBpc0N1cnJlbnRDb2xvcigp
IGNvbnN0IHsgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q3VycmVudENvbG9yPihtX3N0
eWxlKTsgfQorICAgIGJvb2wgaGFzT3ZlcnJpZGVBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIGlzQ3Vy
cmVudENvbG9yKCkgJiYgV1RGOjpnZXQ8Q3VycmVudENvbG9yPihtX3N0eWxlKS5vdmVycmlkZUFs
cGhhOyB9CisgICAgZmxvYXQgb3ZlcnJpZGVBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIFdURjo6Z2V0
PEN1cnJlbnRDb2xvcj4obV9zdHlsZSkub3ZlcnJpZGVBbHBoYS52YWx1ZSgpOyB9CisKKyAgICBT
dHJpbmcgY29sb3IoKSBjb25zdDsKKyAgICBDYW52YXNHcmFkaWVudCogY2FudmFzR3JhZGllbnQo
KSBjb25zdDsKKyAgICBDYW52YXNQYXR0ZXJuKiBjYW52YXNQYXR0ZXJuKCkgY29uc3Q7CisKKyAg
ICB2b2lkIGFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OworICAgIHZvaWQg
YXBwbHlTdHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKworICAgIGJvb2wgaXNF
cXVpdmFsZW50Q29sb3IoY29uc3QgQ2FudmFzU3R5bGUmKSBjb25zdDsKKyAgICBib29sIGlzRXF1
aXZhbGVudFJHQkEoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxw
aGEpIGNvbnN0OworICAgIGJvb2wgaXNFcXVpdmFsZW50Q01ZS0EoZmxvYXQgY3lhbiwgZmxvYXQg
bWFnZW50YSwgZmxvYXQgeWVsbG93LCBmbG9hdCBibGFjaywgZmxvYXQgYWxwaGEpIGNvbnN0Owor
Citwcml2YXRlOgorICAgIHN0cnVjdCBJbnZhbGlkIHsgfTsKKworICAgIHN0cnVjdCBDTVlLQUNv
bG9yIHsKKyAgICAgICAgQ01ZS0FDb2xvcigpID0gZGVmYXVsdDsKKworICAgICAgICBDTVlLQUNv
bG9yKENvbG9yIGNvbG9yLCBmbG9hdCBjeWFuLCBmbG9hdCBtYWdlbnRhLCBmbG9hdCB5ZWxsb3cs
IGZsb2F0IGJsYWNrLCBmbG9hdCBhbHBoYSkKKyAgICAgICAgICAgIDogY29sb3IoY29sb3IpLCBj
KGN5YW4pLCBtKG1hZ2VudGEpLCB5KHllbGxvdyksIGsoYmxhY2spLCBhKGFscGhhKQogICAgICAg
ICB7CiAgICAgICAgIH0KIAotICAgICAgICB1bmlvbiB7Ci0gICAgICAgICAgICBDb2xvciBtX2Nv
bG9yOwotICAgICAgICAgICAgZmxvYXQgbV9vdmVycmlkZUFscGhhOwotICAgICAgICAgICAgQ2Fu
dmFzR3JhZGllbnQqIG1fZ3JhZGllbnQ7Ci0gICAgICAgICAgICBDYW52YXNQYXR0ZXJuKiBtX3Bh
dHRlcm47Ci0gICAgICAgICAgICBDTVlLQVZhbHVlcyogbV9jbXlrYTsKLSAgICAgICAgfTsKLSAg
ICAgICAgVHlwZSBtX3R5cGU7CisgICAgICAgIENvbG9yIGNvbG9yOworICAgICAgICBmbG9hdCBj
IHsgMCB9OworICAgICAgICBmbG9hdCBtIHsgMCB9OworICAgICAgICBmbG9hdCB5IHsgMCB9Owor
ICAgICAgICBmbG9hdCBrIHsgMCB9OworICAgICAgICBmbG9hdCBhIHsgMCB9OwogICAgIH07CiAK
LSAgICBDb2xvciBjdXJyZW50Q29sb3IoSFRNTENhbnZhc0VsZW1lbnQqKTsKLSAgICBDb2xvciBw
YXJzZUNvbG9yT3JDdXJyZW50Q29sb3IoY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZywgSFRNTENh
bnZhc0VsZW1lbnQqKTsKLQotICAgIGlubGluZSBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoKQot
ICAgICAgICA6IG1fdHlwZShJbnZhbGlkKQotICAgIHsKLSAgICB9Ci0KLSAgICBpbmxpbmUgQ2Fu
dmFzR3JhZGllbnQqIENhbnZhc1N0eWxlOjpjYW52YXNHcmFkaWVudCgpIGNvbnN0Ci0gICAgewot
ICAgICAgICBpZiAobV90eXBlID09IEdyYWRpZW50KQotICAgICAgICAgICAgcmV0dXJuIG1fZ3Jh
ZGllbnQ7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGlubGluZSBDYW52YXNQYXR0
ZXJuKiBDYW52YXNTdHlsZTo6Y2FudmFzUGF0dGVybigpIGNvbnN0Ci0gICAgewotICAgICAgICBp
ZiAobV90eXBlID09IEltYWdlUGF0dGVybikKLSAgICAgICAgICAgIHJldHVybiBtX3BhdHRlcm47
Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGlubGluZSBTdHJpbmcgQ2FudmFzU3R5
bGU6OmNvbG9yKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gUkdCQSB8
fCBtX3R5cGUgPT0gQ01ZS0EpOwotICAgICAgICBpZiAobV90eXBlID09IFJHQkEpCi0gICAgICAg
ICAgICByZXR1cm4gbV9jb2xvci5zZXJpYWxpemVkKCk7Ci0gICAgICAgIHJldHVybiBtX2NteWth
LT5jb2xvci5zZXJpYWxpemVkKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIENhbnZhc1N0eWxlOjpD
YW52YXNTdHlsZShDYW52YXNTdHlsZSYmIG90aGVyKQotICAgIHsKLSAgICAgICAgbWVtY3B5KHRo
aXMsICZvdGhlciwgc2l6ZW9mKENhbnZhc1N0eWxlKSk7Ci0gICAgICAgIG90aGVyLm1fdHlwZSA9
IEludmFsaWQ7Ci0gICAgfQotCi0gICAgaW5saW5lIENhbnZhc1N0eWxlJiBDYW52YXNTdHlsZTo6
b3BlcmF0b3I9KENhbnZhc1N0eWxlJiYgb3RoZXIpCi0gICAgewotICAgICAgICBpZiAodGhpcyAh
PSAmb3RoZXIpIHsKLSAgICAgICAgICAgIG1lbWNweSh0aGlzLCAmb3RoZXIsIHNpemVvZihDYW52
YXNTdHlsZSkpOwotICAgICAgICAgICAgb3RoZXIubV90eXBlID0gSW52YWxpZDsKLSAgICAgICAg
fQotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQorICAgIHN0cnVjdCBDdXJyZW50Q29sb3Ig
eworICAgICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBvdmVycmlkZUFscGhhOworICAgIH07CisK
KyAgICBDYW52YXNTdHlsZShDdXJyZW50Q29sb3IpOworCisgICAgVmFyaWFudDxJbnZhbGlkLCBD
b2xvciwgQ01ZS0FDb2xvciwgUmVmUHRyPENhbnZhc0dyYWRpZW50PiwgUmVmUHRyPENhbnZhc1Bh
dHRlcm4+LCBDdXJyZW50Q29sb3I+IG1fc3R5bGU7Cit9OworCitDb2xvciBjdXJyZW50Q29sb3Io
SFRNTENhbnZhc0VsZW1lbnQqKTsKK0NvbG9yIHBhcnNlQ29sb3JPckN1cnJlbnRDb2xvcihjb25z
dCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBIVE1MQ2FudmFzRWxlbWVudCopOworCitpbmxpbmUgQ2Fu
dmFzU3R5bGU6OkNhbnZhc1N0eWxlKCkKKyAgICA6IG1fc3R5bGUoSW52YWxpZCB7IH0pCit7Cit9
CisKK2lubGluZSBDYW52YXNHcmFkaWVudCogQ2FudmFzU3R5bGU6OmNhbnZhc0dyYWRpZW50KCkg
Y29uc3QKK3sKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmUHRyPENhbnZhc0dy
YWRpZW50Pj4obV9zdHlsZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBX
VEY6OmdldDxSZWZQdHI8Q2FudmFzR3JhZGllbnQ+PihtX3N0eWxlKS5nZXQoKTsKK30KKworaW5s
aW5lIENhbnZhc1BhdHRlcm4qIENhbnZhc1N0eWxlOjpjYW52YXNQYXR0ZXJuKCkgY29uc3QKK3sK
KyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmUHRyPENhbnZhc1BhdHRlcm4+Piht
X3N0eWxlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFdURjo6Z2V0PFJl
ZlB0cjxDYW52YXNQYXR0ZXJuPj4obV9zdHlsZSkuZ2V0KCk7Cit9CisKK2lubGluZSBTdHJpbmcg
Q2FudmFzU3R5bGU6OmNvbG9yKCkgY29uc3QKK3sKKyAgICBhdXRvJiBjb2xvciA9IFdURjo6aG9s
ZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG1fc3R5bGUpID8gV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUp
IDogV1RGOjpnZXQ8Q01ZS0FDb2xvcj4obV9zdHlsZSkuY29sb3I7CisgICAgcmV0dXJuIGNvbG9y
LnNlcmlhbGl6ZWQoKTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCmluZGV4IGM4
YjEwZjdiZmJjNjgxZDhhYTg1OTU5YTNmMWUyN2Q2Mzc4ZTY5YWUuLjExMWJjM2JlNjZjNDQ4Nzg2
M2JiYjRjNjljMTRlZGNhZjMwMTkwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKQEAgLTI0LDExICsyNCwxMCBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJPRVNWZXJ0ZXhBcnJheU9iamVjdC5o
IgogCiAjaWYgRU5BQkxFKFdFQkdMKQogCi0jaW5jbHVkZSAiT0VTVmVydGV4QXJyYXlPYmplY3Qu
aCIKLQogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5n
Q29udGV4dC5oIgogCkBAIC00OSw4ICs0OCw4IEBAIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTPiBPRVNWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlVmVydGV4QXJyYXlPRVMoKQogICAg
IGlmIChtX2NvbnRleHQuaXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAotICAgIGF1dG8gb2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKG1f
Y29udGV4dCwgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6VkFPVHlwZVVzZXIpOwotICAgIG1f
Y29udGV4dC5hZGRDb250ZXh0T2JqZWN0KG9iamVjdC5wdHIoKSk7CisgICAgYXV0byBvYmplY3Qg
PSBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUobV9jb250ZXh0LCBXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTOjpUeXBlOjpVc2VyKTsKKyAgICBtX2NvbnRleHQuYWRkQ29udGV4dE9i
amVjdChvYmplY3QuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKG9iamVjdCk7CiB9CiAKQEAg
LTU4LDkgKzU3LDkgQEAgdm9pZCBPRVNWZXJ0ZXhBcnJheU9iamVjdDo6ZGVsZXRlVmVydGV4QXJy
YXlPRVMoV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyogYXJyYXkKIHsKICAgICBpZiAoIWFycmF5
T2JqZWN0IHx8IG1fY29udGV4dC5pc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsKLSAg
ICAKLSAgICBpZiAoIWFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3QoKSAmJiBhcnJheU9iamVj
dCA9PSBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQqPigmbV9jb250ZXh0KS0+bV9i
b3VuZFZlcnRleEFycmF5T2JqZWN0KQotICAgICAgICBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmlu
Z0NvbnRleHQqPigmbV9jb250ZXh0KS0+c2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdCgwKTsKKwor
ICAgIGlmICghYXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpICYmIGFycmF5T2JqZWN0ID09
IHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCY+KG1fY29udGV4dCkubV9ib3VuZFZl
cnRleEFycmF5T2JqZWN0KQorICAgICAgICBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRl
eHQmPihtX2NvbnRleHQpLnNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QobnVsbHB0cik7CiAKICAg
ICBhcnJheU9iamVjdC0+ZGVsZXRlT2JqZWN0KG1fY29udGV4dC5ncmFwaGljc0NvbnRleHQzRCgp
KTsKIH0KQEAgLTg5LDcgKzg4LDcgQEAgdm9pZCBPRVNWZXJ0ZXhBcnJheU9iamVjdDo6YmluZFZl
cnRleEFycmF5T0VTKFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMqIGFycmF5T2IKICAgICAgICAg
Y29udGV4dC5zZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KGFycmF5T2JqZWN0KTsKICAgICB9IGVs
c2UgewogICAgICAgICBleHRlbnNpb25zLmJpbmRWZXJ0ZXhBcnJheU9FUygwKTsKLSAgICAgICAg
Y29udGV4dC5zZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KDApOworICAgICAgICBjb250ZXh0LnNl
dEJvdW5kVmVydGV4QXJyYXlPYmplY3QobnVsbHB0cik7CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCmlu
ZGV4IDQ4MGEwY2E5NWI1MTgzMTIzODBjOWNlZmI4NDQ4ZjI1OTEwODE4MTcuLjc5YzEzYzJmNmQz
ZGQyYzZjZTUwN2IxYzFhNWZmNTA2ZDhmZGNiZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDEwICsyNCwxMCBA
QAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShXRUJHTCkgJiYgRU5B
QkxFKFdFQkdMMikKICNpbmNsdWRlICJXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgiCiAKKyNpZiBF
TkFCTEUoV0VCR0wyKQorCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJFWFRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCIKICNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKQEAg
LTYzLDcgKzYzLDcgQEAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6V2ViR0wyUmVuZGVyaW5nQ29u
dGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLAogewogfQogCi1XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBw
YXNzZWRDYW52YXMsIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4mJiBjb250ZXh0LCBHcmFwaGlj
c0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcykKK1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywg
UmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcyBhdHRyaWJ1dGVzKQogICAgIDogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShwYXNzZWRD
YW52YXMsIFdURk1vdmUoY29udGV4dCksIGF0dHJpYnV0ZXMpCiB7CiAgICAgaW5pdGlhbGl6ZVNo
YWRlckV4dGVuc2lvbnMoKTsKQEAgLTcyLDggKzcyLDggQEAgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFz
LAogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVWZXJ0ZXhBcnJheU9i
amVjdHMoKQogewotICAgIG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0ID0gV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdDo6Y3JlYXRlKCp0aGlzLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpWQU9UeXBl
RGVmYXVsdCk7Ci0gICAgYWRkQ29udGV4dE9iamVjdChtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVj
dC5nZXQoKSk7CisgICAgbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QgPSBXZWJHTFZlcnRleEFy
cmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OlR5cGU6OkRl
ZmF1bHQpOworICAgIGFkZENvbnRleHRPYmplY3QoKm1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0
KTsKICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9i
amVjdDsKICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSkKICAgICAgICAgaW5pdFZlcnRleEF0
dHJpYjAoKTsKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmNvcHlCdWZmZXJTdWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVtIHdyaQogICAg
IH0KIAogICAgIG1fY29udGV4dC0+bW92ZUVycm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCk7Ci0j
aWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgbV9jb250ZXh0LT5jb3B5QnVmZmVyU3ViRGF0YShyZWFkVGFyZ2V0LCB3cml0ZVRhcmdldCwg
Y2hlY2tlZFJlYWRPZmZzZXQudW5zYWZlR2V0KCksIGNoZWNrZWRXcml0ZU9mZnNldC51bnNhZmVH
ZXQoKSwgY2hlY2tlZFNpemUudW5zYWZlR2V0KCkpOwogI2VuZGlmCiAgICAgaWYgKG1fY29udGV4
dC0+bW92ZUVycm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCkpIHsKQEAgLTI3Miw3ICsyNzIsNyBA
QCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEJ1ZmZlclN1YkRhdGEoR0MzRGVudW0g
dGFyZ2V0LCBsb25nIGxvbmcgc3JjQnl0ZQogICAgIH0KIAogICAgIG1fY29udGV4dC0+bW92ZUVy
cm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCk7Ci0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9S
TShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gRklYTUU6IENvYWxlc2NlIG11bHRp
cGxlIGdldEJ1ZmZlclN1YkRhdGEoKSBjYWxscyB0byB1c2UgYSBzaW5nbGUgbWFwKCkgY2FsbAog
ICAgIHZvaWQqIHB0ciA9IG1fY29udGV4dC0+bWFwQnVmZmVyUmFuZ2UodGFyZ2V0LCBjaGVja2Vk
U3JjQnl0ZU9mZnNldC51bnNhZmVHZXQoKSwgc3RhdGljX2Nhc3Q8R0MzRHNpemVpcHRyPihjaGVj
a2VkQ29weUxlbmd0aFB0ci51bnNhZmVHZXQoKSAqIGNoZWNrZWRFbGVtZW50U2l6ZS51bnNhZmVH
ZXQoKSksIEdyYXBoaWNzQ29udGV4dDNEOjpNQVBfUkVBRF9CSVQpOwogICAgIG1lbWNweShzdGF0
aWNfY2FzdDxjaGFyKj4oZHN0RGF0YS0+YmFzZUFkZHJlc3MoKSkgKyBkc3REYXRhLT5ieXRlT2Zm
c2V0KCkgKyBkc3RPZmZzZXQgKiBlbGVtZW50U2l6ZSwgcHRyLCBjb3B5TGVuZ3RoICogZWxlbWVu
dFNpemUpOwpAQCAtMjkwLDE2ICsyOTAsMTYgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
OjpmcmFtZWJ1ZmZlclRleHR1cmVMYXllcihHQzNEZW51bSwgR0MzRGVudW0sIEdDM0R1aW4KIHsK
IH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEludGVybmFsZm9y
bWF0UGFyYW1ldGVyKEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGVudW0pCitXZWJHTEFueSBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlcihHQzNEZW51bSwg
R0MzRGVudW0sIEdDM0RlbnVtKQogewotICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjppbnZhbGlk
YXRlRnJhbWVidWZmZXIoR0MzRGVudW0sIFZlY3RvcjxHQzNEZW51bT4pCit2b2lkIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OmludmFsaWRhdGVGcmFtZWJ1ZmZlcihHQzNEZW51bSwgY29uc3QgVmVj
dG9yPEdDM0RlbnVtPiYpCiB7CiB9CiAKLXZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aW52
YWxpZGF0ZVN1YkZyYW1lYnVmZmVyKEdDM0RlbnVtLCBWZWN0b3I8R0MzRGVudW0+LCBHQzNEaW50
LCBHQzNEaW50LCBHQzNEc2l6ZWksIEdDM0RzaXplaSkKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6aW52YWxpZGF0ZVN1YkZyYW1lYnVmZmVyKEdDM0RlbnVtLCBjb25zdCBWZWN0b3I8R0Mz
RGVudW0+JiwgR0MzRGludCwgR0MzRGludCwgR0MzRHNpemVpLCBHQzNEc2l6ZWkpCiB7CiB9CiAK
QEAgLTQwNyw3ICs0MDcsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnRleFN0b3Jh
Z2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDMwogICAgIGlmIChpc0Nv
bnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkdMVGV4dHVy
ZSogdGV4dHVyZSA9IHZhbGlkYXRlVGV4dHVyZUJpbmRpbmcoInRleFN0b3JhZ2UyRCIsIHRhcmdl
dCwgZmFsc2UpOworICAgIGF1dG8qIHRleHR1cmUgPSB2YWxpZGF0ZVRleHR1cmVCaW5kaW5nKCJ0
ZXhTdG9yYWdlMkQiLCB0YXJnZXQsIGZhbHNlKTsKICAgICBpZiAoIXRleHR1cmUpCiAgICAgICAg
IHJldHVybjsKIApAQCAtNTAyLDcgKzUwMiw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Y29tcHJlc3NlZFRleFN1YkltYWdlM0QoR0MzRGVudW0sIEdDM0RpbnQsIEdDM0RpbnQsCiB7
CiB9CiAKLUdDM0RpbnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhZ0RhdGFMb2NhdGlv
bihXZWJHTFByb2dyYW0qLCBTdHJpbmcpCitHQzNEaW50IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmdldEZyYWdEYXRhTG9jYXRpb24oV2ViR0xQcm9ncmFtKiwgY29uc3QgU3RyaW5nJikKIHsKICAg
ICByZXR1cm4gMDsKIH0KQEAgLTYzMyw3ICs2MzMsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmRyYXdSYW5nZUVsZW1lbnRzKEdDM0RlbnVtLCBHQzNEdWludCwgR0MzRHVpbnQsIEdD
MwogewogfQogCi12b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRyYXdCdWZmZXJzKFZlY3Rv
cjxHQzNEZW51bT4gYnVmZmVycykKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZHJhd0J1
ZmZlcnMoY29uc3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmZmVycykKIHsKICAgICBpZiAoaXNDb250
ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm47CkBAIC03ODIsOSArNzgyLDkgQEAgUmVmUHRyPFdl
YkdMUXVlcnk+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5KEdDM0RlbnVtLCBHQzNE
ZW51bSkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdMUXVlcnkqLCBHQzNEZW51bSkKK1dl
YkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdMUXVl
cnkqLCBHQzNEZW51bSkKIHsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKIFJlZlB0cjxXZWJHTFNhbXBsZXI+IFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmNyZWF0ZVNhbXBsZXIoKQpAQCAtODEzLDkgKzgxMyw5IEBAIHZvaWQgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6c2FtcGxlclBhcmFtZXRlcmYoV2ViR0xTYW1wbGVyKiwgR0MzRGVudW0sIEdD
M0RmbG9hCiB7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRT
YW1wbGVyUGFyYW1ldGVyKFdlYkdMU2FtcGxlciosIEdDM0RlbnVtKQorV2ViR0xBbnkgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6Z2V0U2FtcGxlclBhcmFtZXRlcihXZWJHTFNhbXBsZXIqLCBHQzNE
ZW51bSkKIHsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
CiB9CiAKIFJlZlB0cjxXZWJHTFN5bmM+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmZlbmNlU3lu
YyhHQzNEZW51bSwgR0MzRGJpdGZpZWxkKQpAQCAtODQxLDkgKzg0MSw5IEBAIHZvaWQgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6d2FpdFN5bmMoV2ViR0xTeW5jKiwgR0MzRGJpdGZpZWxkLCBHQzNE
dWludDY0KQogewogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0
U3luY1BhcmFtZXRlcihXZWJHTFN5bmMqLCBHQzNEZW51bSkKK1dlYkdMQW55IFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmdldFN5bmNQYXJhbWV0ZXIoV2ViR0xTeW5jKiwgR0MzRGVudW0pCiB7Ci0g
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBSZWZQ
dHI8V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRl
VHJhbnNmb3JtRmVlZGJhY2soKQpAQCAtODcyLDcgKzg3Miw3IEBAIHZvaWQgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6ZW5kVHJhbnNmb3JtRmVlZGJhY2soKQogewogfQogCi12b2lkIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OnRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MoV2ViR0xQcm9ncmFtKiwg
VmVjdG9yPFN0cmluZz4sIEdDM0RlbnVtKQordm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp0
cmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiwgR0MzRGVudW0pCiB7CiB9CiAKQEAgLTg5Nyw3ICs4OTcsNyBAQCB2b2lkIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OmJpbmRCdWZmZXJSYW5nZShHQzNEZW51bSwgR0MzRHVpbnQsIFdlYkdM
QnVmZmVyKiwgRwogewogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
Z2V0SW5kZXhlZFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50KQorV2ViR0xBbnkg
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcihHQzNEZW51bSB0YXJn
ZXQsIEdDM0R1aW50KQogewogICAgIHN3aXRjaCAodGFyZ2V0KSB7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HOgpAQCAtOTA3LDE2
ICs5MDcsMTQgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEluZGV4
ZWRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWkKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpVTklGT1JNX0JVRkZFUl9TSVpFOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlVOSUZPUk1fQlVGRkVSX1NUQVJUOgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGlj
c0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0SW5kZXhlZFBhcmFtZXRlciIsICJwYXJhbWV0
ZXIgbmFtZSBub3QgeWV0IHN1cHBvcnRlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRJbmRleGVk
UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygpOwotICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CiB9CiAKLVVpbnQzMkFycmF5KiBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtSW5kaWNlcyhXZWJHTFByb2dyYW0qLCBWZWN0b3I8
U3RyaW5nPikKK1VpbnQzMkFycmF5KiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3Jt
SW5kaWNlcyhXZWJHTFByb2dyYW0qLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7CiAgICAgcmV0
dXJuIG51bGxwdHI7CiB9CkBAIC05MjYsMTkgKzkyNCwxOSBAQCBJbnQzMkFycmF5KiBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtcyhXZWJHTFByb2dyYW0qLCBSZWZQdHI8
VWludAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1HQzNEdWludCBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpnZXRVbmlmb3JtQmxvY2tJbmRleChXZWJHTFByb2dyYW0qLCBTdHJpbmcpCitHQzNE
dWludCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtQmxvY2tJbmRleChXZWJHTFBy
b2dyYW0qLCBjb25zdCBTdHJpbmcmKQogewogICAgIHJldHVybiAwOwogfQogCi1XZWJHTEdldElu
Zm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVy
KFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50LCBHQzNEZW51bSkKK1dlYkdMQW55IFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihXZWJHTFByb2dyYW0q
LCBHQzNEdWludCwgR0MzRGVudW0pCiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAg
IHJldHVybiBudWxscHRyOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShXZWJHTFByb2dyYW0qLCBHQzNEdWludCkKK1dl
YkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUo
V2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQpCiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwor
ICAgIHJldHVybiBudWxscHRyOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVu
aWZvcm1CbG9ja0JpbmRpbmcoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQsIEdDM0R1aW50KQpAQCAt
OTUwLDggKzk0OCw4IEBAIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0OjpjcmVhdGVWZXJ0ZXhBcnJheSgpCiAgICAgaWYgKGlzQ29udGV4dExvc3Qo
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgYXV0byBvYmplY3QgPSBXZWJH
TFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6
OlZBT1R5cGVVc2VyKTsKLSAgICBhZGRDb250ZXh0T2JqZWN0KG9iamVjdC5wdHIoKSk7CisgICAg
YXV0byBvYmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdM
VmVydGV4QXJyYXlPYmplY3Q6OlR5cGU6OlVzZXIpOworICAgIGFkZENvbnRleHRPYmplY3Qob2Jq
ZWN0LmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92ZShvYmplY3QpOwogfQogCkBAIC05NjQsNyAr
OTYyLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVWZXJ0ZXhBcnJheShX
ZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamUKICAgICAgICAgcmV0dXJuOwogICAgIAog
ICAgIGlmICghYXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpICYmIGFycmF5T2JqZWN0ID09
IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCkKLSAgICAgICAgc2V0Qm91bmRWZXJ0ZXhBcnJheU9i
amVjdCgwKTsKKyAgICAgICAgc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChudWxscHRyKTsKICAg
ICAKICAgICBhcnJheU9iamVjdC0+ZGVsZXRlT2JqZWN0KGdyYXBoaWNzQ29udGV4dDNEKCkpOwog
fQpAQCAtOTcyLDEwICs5NzAsMTAgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxl
dGVWZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamUKIEdDM0Rib29s
ZWFuIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmlzVmVydGV4QXJyYXkoV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdCogYXJyYXlPYmplY3QpCiB7CiAgICAgaWYgKCFhcnJheU9iamVjdCB8fCBpc0NvbnRl
eHRMb3N0KCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
CiAgICAgaWYgKCFhcnJheU9iamVjdC0+aGFzRXZlckJlZW5Cb3VuZCgpIHx8ICFhcnJheU9iamVj
dC0+dmFsaWRhdGUoMCwgKnRoaXMpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIAogICAgIHJldHVybiBtX2NvbnRleHQtPmlzVmVydGV4QXJyYXkoYXJyYXlP
YmplY3QtPm9iamVjdCgpKTsKIH0KQEAgLTk5Niw3ICs5OTQsNyBAQCB2b2lkIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmJpbmRWZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJh
eU9iamVjdAogICAgICAgICBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KGFycmF5T2JqZWN0KTsK
ICAgICB9IGVsc2UgewogICAgICAgICBtX2NvbnRleHQtPmJpbmRWZXJ0ZXhBcnJheShtX2RlZmF1
bHRWZXJ0ZXhBcnJheU9iamVjdC0+b2JqZWN0KCkpOwotICAgICAgICBzZXRCb3VuZFZlcnRleEFy
cmF5T2JqZWN0KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0KTsKKyAgICAgICAgc2V0Qm91bmRW
ZXJ0ZXhBcnJheU9iamVjdChtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKSk7CiAgICAg
fQogfQogCkBAIC0xMDA1LDQzICsxMDAzLDM4IEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
aWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0ZXJfYW5p
c290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfRVhUX3Rl
eHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkg
eworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0
ZXJfYW5pc290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRf
RVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpIHsKICAgICAgICAgaWYgKCFtX2V4dFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGlj
Iik7Ci0gICAgICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IHN0ZDo6bWFr
ZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcyk7CisgICAgICAgICAg
ICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lv
bigiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikKKyAgICAgICAgICAgICAgICA/
IHN0ZDo6bWFrZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcykgOiBu
dWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dFRleHR1cmVGaWx0ZXJBbmlz
b3Ryb3BpYy5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFt
ZSwgIk9FU190ZXh0dXJlX2Zsb2F0IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0IikpIHsKKyAgICBpZiAoZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxvYXQiKSkgewogICAgICAgICBp
ZiAoIW1fb2VzVGV4dHVyZUZsb2F0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVu
c2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpOwotICAgICAgICAg
ICAgbV9vZXNUZXh0dXJlRmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdD4o
KnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXQgPSBlbmFibGVTdXBwb3J0ZWRF
eHRlbnNpb24oIkdMX09FU190ZXh0dXJlX2Zsb2F0IikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6
bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0PigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9
CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVGbG9hdC5nZXQoKTsKICAgICB9Ci0gICAgaWYg
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIp
Ci0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNf
dGV4dHVyZV9mbG9hdF9saW5lYXIiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkgewogICAgICAgICBpZiAoIW1fb2Vz
VGV4dHVyZUZsb2F0TGluZWFyKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKTsKLSAgICAg
ICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0
dXJlRmxvYXRMaW5lYXI+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0TGlu
ZWFyID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5l
YXIiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXRM
aW5lYXI+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2Vz
VGV4dHVyZUZsb2F0TGluZWFyLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpCi0gICAgICAgICYmIG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0
IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVf
aGFsZl9mbG9hdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlSGFsZkZsb2F0KSB7Ci0g
ICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9P
RVNfdGV4dHVyZV9oYWxmX2Zsb2F0Iik7Ci0gICAgICAgICAgICBtX29lc1RleHR1cmVIYWxmRmxv
YXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+KCp0aGlzKTsKKyAgICAg
ICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdCA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigi
R0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2Vf
dW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUhhbGZGbG9hdC5nZXQoKTsKICAgICB9Ci0gICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRf
bGluZWFyIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMo
IkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikpIHsKKyAgICBpZiAoZXF1YWxJZ25v
cmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSkgewog
ICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhcikgewotICAgICAgICAgICAg
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVf
aGFsZl9mbG9hdF9saW5lYXIiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdExp
bmVhciA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcj4oKnRoaXMp
OworICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyID0gZW5hYmxlU3VwcG9y
dGVkRXh0ZW5zaW9uKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpCisgICAgICAg
ICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXI+KCp0
aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUhh
bGZGbG9hdExpbmVhci5nZXQoKTsKICAgICB9CkBAIC0xMDUwLDI4ICsxMDQzLDMyIEBAIFdlYkdM
RXh0ZW5zaW9uKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3Ry
aW5nJiBuYW1lKQogICAgICAgICAgICAgbV93ZWJnbExvc2VDb250ZXh0ID0gc3RkOjptYWtlX3Vu
aXF1ZTxXZWJHTExvc2VDb250ZXh0PigqdGhpcyk7CiAgICAgICAgIHJldHVybiBtX3dlYmdsTG9z
ZUNvbnRleHQuZ2V0KCk7CiAgICAgfQotICAgIGlmICgoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShu
YW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKSkKLSAgICAgICAgJiYg
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAgICBp
ZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQykKLSAgICAgICAgICAgIG1fd2ViZ2xDb21w
cmVzc2VkVGV4dHVyZUFUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQz4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJL
SVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlQVRDKSB7CisgICAgICAgICAgICBpZiAoV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkKKyAgICAgICAgICAgICAgICBtX3dlYmdsQ29t
cHJlc3NlZFRleHR1cmVBVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVBVEM+KCp0aGlzKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNz
ZWRUZXh0dXJlQVRDLmdldCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSkKLSAgICAg
ICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0g
ICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMpCi0gICAgICAgICAgICBt
X3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21w
cmVzc2VkVGV4dHVyZVBWUlRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSkgeworICAg
ICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKSB7CisgICAgICAgICAgICBt
X3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJU
Qzo6c3VwcG9ydGVkKCp0aGlzKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM+KCp0aGlzKSA6IG51bGxwdHI7CisgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmdldCgpOwogICAg
IH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfY29tcHJlc3Nl
ZF90ZXh0dXJlX3MzdGMiKQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6
c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVy
ZVMzVEMpCi0gICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDID0gc3RkOjpt
YWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQz4oKnRoaXMpOworICAgIGlmIChl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0
YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQykgeworICAg
ICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQyA9IFdlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDPigqdGhpcykgOiBudWxscHRyOworICAg
ICAgICB9CiAgICAgICAgIHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDLmdldCgp
OwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVw
dGhfdGV4dHVyZSIpCi0gICAgICAgICYmIFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoKmdy
YXBoaWNzQ29udGV4dDNEKCkpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERlcHRoVGV4dHVyZSkK
LSAgICAgICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdM
RGVwdGhUZXh0dXJlPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFt
ZSwgIldFQkdMX2RlcHRoX3RleHR1cmUiKSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xEZXB0aFRl
eHR1cmUpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUgPSBXZWJHTERlcHRoVGV4
dHVyZTo6c3VwcG9ydGVkKCpncmFwaGljc0NvbnRleHQzRCgpKQorICAgICAgICAgICAgICAgID8g
c3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlcHRoVGV4dHVyZT4oKnRoaXMpIDogbnVsbHB0cjsKKyAg
ICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbERlcHRoVGV4dHVyZS5nZXQoKTsKICAgICB9
CiAgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlYnVnX3JlbmRl
cmVyX2luZm8iKSkgewpAQCAtMTA3OSwxMCArMTA3NiwxMSBAQCBXZWJHTEV4dGVuc2lvbiogV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAg
ICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8V2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mbz4oKnRoaXMpOwogICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVn
UmVuZGVyZXJJbmZvLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShuYW1lLCAiV0VCR0xfZGVidWdfc2hhZGVycyIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0
RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2Ui
KSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1NoYWRlcnMpCi0gICAgICAgICAgICBtX3dl
YmdsRGVidWdTaGFkZXJzID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnU2hhZGVycz4oKnRo
aXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19z
aGFkZXJzIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdTaGFkZXJzKSB7CisgICAgICAg
ICAgICBtX3dlYmdsRGVidWdTaGFkZXJzID0gbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3Vw
cG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIg
fSkKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1Z1NoYWRlcnM+
KCp0aGlzKSA6IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZWJ1
Z1NoYWRlcnMuZ2V0KCk7CiAgICAgfQogCkBAIC0xMDk2LDkwICsxMDk0LDkwIEBAIFZlY3RvcjxT
dHJpbmc+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnMoKQog
ICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pCiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09F
U190ZXh0dXJlX2Zsb2F0IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2Zs
b2F0Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9P
RVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3Rl
eHR1cmVfZmxvYXRfbGluZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpCi0gICAgICAgIHJlc3VsdC5h
cHBlbmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikp
Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik7
Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfdGV4
dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lU
X0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOworICAgIGF1dG8mIGV4dGVuc2lvbnMg
PSBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0
cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfZmxvYXQiIH0pKQorICAgICAgICByZXN1
bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9mbG9hdCIgfSk7CisgICAgaWYg
KGV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2Zsb2F0
X2xpbmVhciIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU190
ZXh0dXJlX2Zsb2F0X2xpbmVhciIgfSk7CisgICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMoQVND
SUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pKQorICAgICAgICByZXN1
bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiB9KTsKKyAg
ICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVf
aGFsZl9mbG9hdF9saW5lYXIiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJh
bCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIgfSk7CisgICAgaWYgKGV4dGVuc2lv
bnMuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ry
b3BpYyIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQktJVF9F
WFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pOwogICAgIGlmIChXZWJHTENvbXByZXNz
ZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJX
RUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpOworICAgICAgICByZXN1bHQuYXBw
ZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIg
fSk7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0aGlz
KSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVy
ZV9wdnJ0YyIpOworICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJLSVRf
V0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIiB9KTsKICAgICBpZiAoV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhpcykpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQo
IldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQo
QVNDSUlMaXRlcmFsIHsgIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIiB9KTsKICAgICBp
ZiAoV2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqZ3JhcGhpY3NDb250ZXh0M0QoKSkpCi0g
ICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlcHRoX3RleHR1cmUiKTsKLSAgICByZXN1bHQu
YXBwZW5kKCJXRUJHTF9sb3NlX2NvbnRleHQiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuc3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIpKQot
ICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19zaGFkZXJzIik7Ci0gICAgcmVzdWx0
LmFwcGVuZCgiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpOworICAgICAgICByZXN1bHQuYXBw
ZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9kZXB0aF90ZXh0dXJlIiB9KTsKKyAgICByZXN1bHQu
YXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9sb3NlX2NvbnRleHQiIH0pOworICAgIGlmIChl
eHRlbnNpb25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9BTkdMRV90cmFuc2xhdGVkX3No
YWRlcl9zb3VyY2UiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJX
RUJHTF9kZWJ1Z19zaGFkZXJzIiB9KTsKKyAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7
ICJXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIiB9KTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBH
QzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFj
aG1lbnQsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5n
KCkgfHwgIXZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycygiZ2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyIiwgdGFyZ2V0LCBhdHRhY2htZW50KSkKLSAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBpZiAo
IW1fZnJhbWVidWZmZXJCaW5kaW5nIHx8ICFtX2ZyYW1lYnVmZmVyQmluZGluZy0+b2JqZWN0KCkp
IHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
T1BFUkFUSU9OLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgIm5vIGZyYW1l
YnVmZmVyIGJvdW5kIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIFdlYkdMU2hhcmVkT2JqZWN0KiBvYmpl
Y3QgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVudE9iamVjdChhdHRhY2htZW50
KTsKKyAgICBhdXRvKiBvYmplY3QgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVu
dE9iamVjdChhdHRhY2htZW50KTsKICAgICBpZiAoIW9iamVjdCkgewogICAgICAgICBpZiAocG5h
bWUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZ
UEUpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29udGV4dDNEOjpO
T05FKTsKLSAgICAgICAgLy8gT3BlbkdMIEVTIDIuMCBzcGVjaWZpZXMgSU5WQUxJRF9FTlVNIGlu
IHRoaXMgY2FzZSwgd2hpbGUgZGVza3RvcCBHTAotICAgICAgICAvLyBzcGVjaWZpZXMgSU5WQUxJ
RF9PUEVSQVRJT04uCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdy
YXBoaWNzQ29udGV4dDNEOjpOT05FKTsKKyAgICAgICAgLy8gT3BlbkdMIEVTIDIuMCBzcGVjaWZp
ZXMgSU5WQUxJRF9FTlVNIGluIHRoaXMgY2FzZSwgd2hpbGUgZGVza3RvcCBHTCBzcGVjaWZpZXMg
SU5WQUxJRF9PUEVSQVRJT04uCiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIi
LCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICAKLSAgICBBU1NFUlQob2Jq
ZWN0LT5pc1RleHR1cmUoKSB8fCBvYmplY3QtPmlzUmVuZGVyYnVmZmVyKCkpOwogICAgIGlmIChv
YmplY3QtPmlzVGV4dHVyZSgpKSB7CiAgICAgICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQ
RToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlRF
WFRVUkUpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihHcmFwaGlj
c0NvbnRleHQzRDo6VEVYVFVSRSk7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZS
QU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUU6Ci0gICAgICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJlKj4ob2JqZWN0KSk7CisgICAg
ICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihyZWludGVycHJldF9jYXN0PFdlYkdMVGV4dHVyZSY+
KCpvYmplY3QpKTsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9URVhUVVJFX0xFVkVMOgogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFDRToKICAgICAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNP
RElORzogewogICAgICAgICAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAgICAgICAgICAgICBtX2Nv
bnRleHQtPmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2KHRhcmdldCwgYXR0YWNo
bWVudCwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZh
bHVlKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgfQogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklO
VkFMSURfRU5VTSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZhbGlk
IHBhcmFtZXRlciBuYW1lIGZvciB0ZXh0dXJlIGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAg
ICB9CiAgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG9iamVjdC0+aXNSZW5kZXJidWZmZXIo
KSk7CiAgICAgICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRToKLSAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUik7CisgICAg
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpS
RU5ERVJCVUZGRVIpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZF
Ul9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhyZWludGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyKj4ob2JqZWN0KSk7CisgICAgICAg
ICAgICByZXR1cm4gbWFrZVJlZlB0cihyZWludGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVy
Jj4oKm9iamVjdCkpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZF
Ul9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HIDogewotICAgICAgICAgICAgV2ViR0xSZW5kZXJi
dWZmZXIqIHJlbmRlckJ1ZmZlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5kZXJidWZmZXIq
PihvYmplY3QpOwotICAgICAgICAgICAgR0MzRGVudW0gcmVuZGVyQnVmZmVyRm9ybWF0ID0gcmVu
ZGVyQnVmZmVyLT5nZXRJbnRlcm5hbEZvcm1hdCgpOwotICAgICAgICAgICAgaWYgKHJlbmRlckJ1
ZmZlckZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6U1JHQjhfQUxQSEE4Ci0gICAgICAgICAg
ICAgICAgfHwgcmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVT
U0VEX1NSR0I4X0VUQzIKLSAgICAgICAgICAgICAgICB8fCByZW5kZXJCdWZmZXJGb3JtYXQgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJfRUFDCi0gICAg
ICAgICAgICAgICAgfHwgcmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpD
T01QUkVTU0VEX1NSR0I4X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMikgewotICAgICAgICAgICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlNSR0IpOworICAgICAg
ICAgICAgYXV0byYgcmVuZGVyQnVmZmVyID0gcmVpbnRlcnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1
ZmZlciY+KCpvYmplY3QpOworICAgICAgICAgICAgYXV0byBmb3JtYXQgPSByZW5kZXJCdWZmZXIu
Z2V0SW50ZXJuYWxGb3JtYXQoKTsKKyAgICAgICAgICAgIGlmIChmb3JtYXQgPT0gR3JhcGhpY3ND
b250ZXh0M0Q6OlNSR0I4X0FMUEhBOAorICAgICAgICAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFw
aGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9TUkdCOF9FVEMyCisgICAgICAgICAgICAgICAgfHwg
Zm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9FVEMy
X0VBQworICAgICAgICAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6Q09N
UFJFU1NFRF9TUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIpIHsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCKTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3ND
b250ZXh0M0Q6OkxJTkVBUik7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5W
QUxJRF9FTlVNLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQg
cGFyYW1ldGVyIG5hbWUgZm9yIHJlbmRlcmJ1ZmZlciBhdHRhY2htZW50Iik7Ci0gICAgICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICAgICAgfQogICAgIH0KIH0KQEAgLTExOTEsMTkgKzExODksMTYgQEAgYm9vbCBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUZyYW1lYnVmZmVyRnVuY1BhcmFtZXRlcnMoY29uc3QgY2hh
ciogZnVuY3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBzd2l0Y2ggKGF0dGFj
aG1lbnQpIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMDoK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5UOgogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQVRUQUNITUVOVDoKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAgIGJyZWFrOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgotICAgICAgICBpZiAoYXR0YWNobWVudCA+
IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMAotICAgICAgICAgICAgJiYgYXR0
YWNobWVudCA8IHN0YXRpY19jYXN0PEdDM0RlbnVtPihHcmFwaGljc0NvbnRleHQzRDo6Q09MT1Jf
QVRUQUNITUVOVDAgKyBnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkpKQotICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGlmIChhdHRhY2htZW50ID49IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9B
VFRBQ0hNRU5UMCAmJiBhdHRhY2htZW50IDwgc3RhdGljX2Nhc3Q8R0MzRGVudW0+KEdyYXBoaWNz
Q29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCArIGdldE1heENvbG9yQXR0YWNobWVudHMoKSkp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCBhdHRh
Y2htZW50Iik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIHRydWU7
CiB9CiAKIEdDM0RpbnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0TWF4RHJhd0J1ZmZlcnMo
KQpAQCAtMTM5NSw3ICsxMzkwLDcgQEAgR0MzRGVudW0gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
YmFzZUludGVybmFsRm9ybWF0RnJvbUludGVybmFsRm9ybWF0KEdDM0RlbnVtIGkKIGJvb2wgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6aXNJbnRlZ2VyRm9ybWF0KEdDM0RlbnVtIGludGVybmFsZm9y
bWF0KQogewogICAgIC8vIEZJWE1FOiBiYXNlSW50ZXJuYWxGb3JtYXRGcm9tSW50ZXJuYWxGb3Jt
YXQoKSBuZXZlciByZXR1cm5zIGFueSBvZiB0aGVzZSBlbnVtcy4KLSAgICAvLyBDdXJyZW50bHks
IFRoaXMgZnVuY3Rpb24gZXJyb25lb3VzbHkgYWx3YXlzIHJldHVybnMgZmFsc2UuCisgICAgLy8g
QmVjYXVzZSBvZiB0aGF0LCB0aGlzIGZ1bmN0aW9uIGVycm9uZW91c2x5IGFsd2F5cyByZXR1cm5z
IGZhbHNlIQogICAgIHN3aXRjaCAoYmFzZUludGVybmFsRm9ybWF0RnJvbUludGVybmFsRm9ybWF0
KGludGVybmFsZm9ybWF0KSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFRF9JTlRF
R0VSOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHX0lOVEVHRVI6CkBAIC0xNDA2LDEx
ICsxNDAxLDEwIEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNJbnRlZ2VyRm9ybWF0
KEdDM0RlbnVtIGludGVybmFsZm9ybWF0KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotV2ViR0xH
ZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFt
ZSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51
bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgY29uc3QgaW50IGludFplcm8gPSAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6QUNUSVZFX1RFWFRVUkU6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZElu
dFBhcmFtZXRlcihwbmFtZSk7CkBAIC0xNDIxLDcgKzE0MTUsNyBAQCBXZWJHTEdldEluZm8gV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBX0JJVFM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQ
YXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZF
Ul9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fYm91bmRBcnJheUJ1ZmZl
ci5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX2JvdW5kQXJyYXlCdWZmZXI7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6QkxFTkQ6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1l
dGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORF9DT0xPUjoKQEAg
LTE0NDUsMTYgKzE0MzksMTYgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpDT0xPUl9XUklURU1BU0s6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuQXJyYXlQYXJhbWV0
ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfVEVYVFVS
RV9GT1JNQVRTOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDMy
QXJyYXk+KFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMuZGF0
YSgpLCBtX2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5zaXplKCkpKSk7CisgICAgICAgIHJldHVy
biBVaW50MzJBcnJheTo6Y3JlYXRlKG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLmRhdGEoKSwg
bV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMuc2l6ZSgpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpDVUxMX0ZBQ0U6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBu
YW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVUxMX0ZBQ0VfTU9ERToKICAgICAg
ICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpDVVJSRU5UX1BST0dSQU06Ci0gICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8obV9jdXJyZW50UHJvZ3JhbS5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX2N1cnJlbnRQcm9n
cmFtOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JJVFM6CiAgICAgICAgIGlm
ICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgJiYgIW1fYXR0cmlidXRlcy5kZXB0aCkKLSAgICAgICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oaW50WmVybyk7CisgICAgICAgICAgICByZXR1cm4gMDsK
ICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6REVQVEhfQ0xFQVJfVkFMVUU6CiAgICAgICAgIHJldHVybiBnZXRGbG9hdFBh
cmFtZXRlcihwbmFtZSk7CkBAIC0xNDY5LDkgKzE0NjMsOSBAQCBXZWJHTEdldEluZm8gV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRJVEhFUjoKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJh
bWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlf
QlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9ib3VuZFZlcnRl
eEFycmF5T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKSk7CisgICAgICAgIHJldHVybiBt
YWtlUmVmUHRyKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVudEFycmF5QnVmZmVy
KCkpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0JJTkRJTkc6Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9mcmFtZWJ1ZmZlckJpbmRpbmcuZ2V0KCkpOwor
ICAgICAgICByZXR1cm4gbV9mcmFtZWJ1ZmZlckJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RlJPTlRfRkFDRToKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1l
dGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpHRU5FUkFURV9NSVBNQVBf
SElOVDoKQEAgLTE1MTksOSArMTUxMyw5IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UkVEX0JJVFM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUp
OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9CSU5ESU5HOgotICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fcmVuZGVyYnVmZmVyQmluZGluZy5nZXQoKSk7Cisg
ICAgICAgIHJldHVybiBtX3JlbmRlcmJ1ZmZlckJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UkVOREVSRVI6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oU3RyaW5nKCJX
ZWJLaXQgV2ViR0wiKSk7CisgICAgICAgIHJldHVybiBTdHJpbmcgeyBBU0NJSUxpdGVyYWwgeyAi
V2ViS2l0IFdlYkdMIiB9IH07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0FNUExFX0JV
RkZFUlM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQ6CkBAIC0xNTM1LDcgKzE1
MjksNyBAQCBXZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVy
KEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNDSVNTT1JfVEVT
VDoKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTjoKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygiV2ViR0wgR0xTTCBFUyAxLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0
cmluZyhHcmFwaGljc0NvbnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OKSArICIpIik7
CisgICAgICAgIHJldHVybiAiV2ViR0wgR0xTTCBFUyAxLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0
cmluZyhHcmFwaGljc0NvbnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OKSArICIpIjsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JBQ0tfRkFJTDoKICAgICAgICAg
cmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpTVEVOQ0lMX0JBQ0tfRlVOQzoKQEAgLTE1NTIsNyArMTU0Niw3IEBAIFdlYkdM
R2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5h
bWUpCiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9CSVRTOgogICAgICAgICBpZiAoIW1fZnJh
bWVidWZmZXJCaW5kaW5nICYmICFtX2F0dHJpYnV0ZXMuc3RlbmNpbCkKLSAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oaW50WmVybyk7CisgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6U1RFTkNJTF9DTEVBUl9WQUxVRToKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRl
cihwbmFtZSk7CkBAIC0xNTc1LDM4ICsxNTY5LDM4IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6U1VCUElYRUxfQklUUzoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFt
ZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5H
XzJEOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdGV4dHVyZVVuaXRzW21fYWN0aXZl
VGV4dHVyZVVuaXRdLnRleHR1cmUyREJpbmRpbmcuZ2V0KCkpOworICAgICAgICByZXR1cm4gbV90
ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4dHVyZTJEQmluZGluZzsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVA6Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0u
dGV4dHVyZUN1YmVNYXBCaW5kaW5nLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIG1fdGV4dHVyZVVu
aXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmVDdWJlTWFwQmluZGluZzsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5UOgogICAgICAgICByZXR1cm4gZ2V0
SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tf
RkxJUF9ZX1dFQkdMOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdW5wYWNrRmxpcFkp
OworICAgICAgICByZXR1cm4gbV91bnBhY2tGbGlwWTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0w6Ci0gICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8obV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAgICAgcmV0dXJuIG1fdW5w
YWNrUHJlbXVsdGlwbHlBbHBoYTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tf
Q09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb24pOworICAgICAgICByZXR1cm4gbV91bnBhY2tD
b2xvcnNwYWNlQ29udmVyc2lvbjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1I6
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oU3RyaW5nKCJXZWJLaXQiKSk7CisgICAgICAg
IHJldHVybiBTdHJpbmcgeyBBU0NJSUxpdGVyYWwgeyAiV2ViS2l0IiB9IH07CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygi
V2ViR0wgMi4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZF
UlNJT04pICsgIikiKTsKKyAgICAgICAgcmV0dXJuICJXZWJHTCAyLjAgKCIgKyBtX2NvbnRleHQt
PmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTikgKyAiKSI7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6VklFV1BPUlQ6CiAgICAgICAgIHJldHVybiBnZXRXZWJHTEludEFy
cmF5UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJlckluZm86OlVO
TUFTS0VEX1JFTkRFUkVSX1dFQkdMOgogICAgICAgICBpZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJ
bmZvKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2NvbnRleHQtPmdldFN0cmlu
ZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpKTsKKyAgICAgICAgICAgIHJldHVybiBtX2Nv
bnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpOwogICAgICAgICBz
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFy
YW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2lu
Zm8gbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJlckluZm86OlVOTUFT
S0VEX1ZFTkRPUl9XRUJHTDoKICAgICAgICAgaWYgKG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbykK
LSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9jb250ZXh0LT5nZXRTdHJpbmcoR3Jh
cGhpY3NDb250ZXh0M0Q6OlZFTkRPUikpOworICAgICAgICAgICAgcmV0dXJuIG1fY29udGV4dC0+
Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1IpOwogICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwg
ImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8gbm90IGVu
YWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJP
UFlfRVhUOiAvLyBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMKICAgICAgICAgaWYgKG1f
ZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKQogICAgICAgICAgICAgcmV0dXJuIGdldFVuc2ln
bmVkSW50UGFyYW1ldGVyKEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlf
RVhUKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfdGV4
dHVyZV9maWx0ZXJfYW5pc290cm9waWMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpGUkFHTUVOVF9TSEFERVJfREVSSVZBVElWRV9ISU5UOgogICAgICAgICByZXR1
cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpN
QVhfM0RfVEVYVFVSRV9TSVpFOgpAQCAtMTY4OSwxMiArMTY4MywxMCBAQCBXZWJHTEdldEluZm8g
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAg
ICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VU5JRk9STV9CVUZGRVJfT0ZGU0VUX0FMSUdOTUVOVDoKICAgICAgICAgcmV0
dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
VkVSVEVYX0FSUkFZX0JJTkRJTkc6IHsKLSAgICAgICAgaWYgKCFtX2JvdW5kVmVydGV4QXJyYXlP
YmplY3QtPmlzRGVmYXVsdE9iamVjdCgpKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhzdGF0aWNfY2FzdDxXZWJHTFZlcnRleEFycmF5T2JqZWN0Kj4obV9ib3VuZFZlcnRleEFycmF5
T2JqZWN0LmdldCgpKSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKLSAgICAgICAg
fQotICAgICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVJS
QVlfQklORElORzoKKyAgICAgICAgaWYgKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNEZWZh
dWx0T2JqZWN0KCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJu
IG1ha2VSZWZQdHIoc3RhdGljX2Nhc3Q8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCY+KCptX2JvdW5k
VmVydGV4QXJyYXlPYmplY3QpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JV
RkZFUjA6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RFJBV19CVUZGRVIxOgogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMjoKQEAgLTE3MTAsMTQgKzE3MDIsMTAg
QEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNE
ZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JVRkZFUjEyOgog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTM6CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6RFJBV19CVUZGRVIxNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpEUkFXX0JVRkZFUjE1OiB7Ci0gICAgICAgIEdDM0RpbnQgdmFsdWUgPSBHcmFwaGljc0NvbnRl
eHQzRDo6Tk9ORTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JVRkZFUjE1Ogog
ICAgICAgICBpZiAobV9mcmFtZWJ1ZmZlckJpbmRpbmcpCi0gICAgICAgICAgICB2YWx1ZSA9IG1f
ZnJhbWVidWZmZXJCaW5kaW5nLT5nZXREcmF3QnVmZmVyKHBuYW1lKTsKLSAgICAgICAgZWxzZSAv
LyBlbXVsYXRlZCBiYWNrYnVmZmVyCi0gICAgICAgICAgICB2YWx1ZSA9IG1fYmFja0RyYXdCdWZm
ZXI7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOwotICAgICAgICB9CisgICAg
ICAgICAgICByZXR1cm4gbV9mcmFtZWJ1ZmZlckJpbmRpbmctPmdldERyYXdCdWZmZXIocG5hbWUp
OworICAgICAgICByZXR1cm4gbV9iYWNrRHJhd0J1ZmZlcjsgLy8gZW11bGF0ZWQgYmFja2J1ZmZl
cgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPUFlfUkVBRF9CVUZGRVI6CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6Q09QWV9XUklURV9CVUZGRVI6CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6UElYRUxfUEFDS19CVUZGRVJfQklORElORzogICAKQEAgLTE3MzAsMTAgKzE3
MTgsMTAgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRl
cihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpUUkFOU0ZPUk1f
RkVFREJBQ0tfQlVGRkVSX0JJTkRJTkc6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5J
Rk9STV9CVUZGRVJfQklORElORzoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJwYXJhbWV0ZXIgbmFtZSBu
b3QgeWV0IHN1cHBvcnRlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVy
cm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52
YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMTc1NCw3ICsxNzQyLDcgQEAg
Ym9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlDb25zZXJ2YXRp
dmUoR0MzRGVudW0gdHlwZSwgdW5zaWcKICAgICAvLyBUaGUgY2FzZSBjb3VudD09MCBpcyBhbHJl
YWR5IGRlYWx0IHdpdGggaW4gZHJhd0VsZW1lbnRzIGJlZm9yZSB2YWxpZGF0ZUluZGV4QXJyYXlD
b25zZXJ2YXRpdmUuCiAgICAgaWYgKCFudW1FbGVtZW50cykKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIGNvbnN0IEFycmF5QnVmZmVyKiBidWZmZXIgPSBlbGVtZW50QXJyYXlCdWZmZXItPmVs
ZW1lbnRBcnJheUJ1ZmZlcigpOworICAgIGF1dG8qIGJ1ZmZlciA9IGVsZW1lbnRBcnJheUJ1ZmZl
ci0+ZWxlbWVudEFycmF5QnVmZmVyKCk7CiAgICAgQVNTRVJUKGJ1ZmZlcik7CiAgICAgCiAgICAg
aW50IG1heEluZGV4ID0gZWxlbWVudEFycmF5QnVmZmVyLT5nZXRDYWNoZWRNYXhJbmRleCh0eXBl
KTsKQEAgLTE4MDYsNyArMTc5NCw2IEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmFs
aWRhdGVCbGVuZEVxdWF0aW9uKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0MzCiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6TUlOOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6Ok1B
WDoKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0s
IGZ1bmN0aW9uTmFtZSwgImludmFsaWQgbW9kZSIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0
LmgKaW5kZXggNzU1ZGU2YmJkZDI2OTgxNjdkM2JhYTBmZGRkMzRiYmUwNjExNWQ1OS4uYjQ4MDNh
ZjE2MmVjNWYwNDNlNzk5NjlkNmQ4NWU1MzBlZDM2NWNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw3ICsyOCw2IEBA
CiAjaWYgRU5BQkxFKFdFQkdMMikKIAogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuaCIKLSNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTQxLDkgKzQwLDkgQEAgY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDsKIGNsYXNzIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZSB7CiBwdWJsaWM6CiAgICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxl
bWVudCYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwotICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIFdlYkdM
Q29udGV4dEF0dHJpYnV0ZXMpOworICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZh
c0VsZW1lbnQmLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4dEF0dHJpYnV0
ZXMpOwogCi0gICAgLyogQnVmZmVyIG9iamVjdHMgKi8KKyAgICAvLyBCdWZmZXIgb2JqZWN0cwog
ICAgIHVzaW5nIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJ1ZmZlckRhdGE7CiAgICAgdXNp
bmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YnVmZmVyU3ViRGF0YTsKICAgICB2b2lkIGJ1
ZmZlckRhdGEoR0MzRGVudW0gdGFyZ2V0LCBjb25zdCBBcnJheUJ1ZmZlclZpZXcmIGRhdGEsIEdD
M0RlbnVtIHVzYWdlLCBHQzNEdWludCBzcmNPZmZzZXQsIEdDM0R1aW50IGxlbmd0aCk7CkBAIC01
MSwxOSArNTAsMTkgQEAgcHVibGljOgogICAgIHZvaWQgY29weUJ1ZmZlclN1YkRhdGEoR0MzRGVu
dW0gcmVhZFRhcmdldCwgR0MzRGVudW0gd3JpdGVUYXJnZXQsIEdDM0RpbnQ2NCByZWFkT2Zmc2V0
LCBHQzNEaW50NjQgd3JpdGVPZmZzZXQsIEdDM0RpbnQ2NCBzaXplKTsKICAgICB2b2lkIGdldEJ1
ZmZlclN1YkRhdGEoR0MzRGVudW0gdGFyZ2V0LCBsb25nIGxvbmcgc3JjQnl0ZU9mZnNldCwgUmVm
UHRyPEFycmF5QnVmZmVyVmlldz4mJiBkc3REYXRhLCBHQzNEdWludCBkc3RPZmZzZXQgPSAwLCBH
QzNEdWludCBsZW5ndGggPSAwKTsKICAgICAKLSAgICAvKiBGcmFtZWJ1ZmZlciBvYmplY3RzICov
Ci0gICAgV2ViR0xHZXRJbmZvIGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNE
ZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsK
KyAgICAvLyBGcmFtZWJ1ZmZlciBvYmplY3RzCisgICAgV2ViR0xBbnkgZ2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwg
R0MzRGVudW0gcG5hbWUpIGZpbmFsOwogICAgIHZvaWQgYmxpdEZyYW1lYnVmZmVyKEdDM0RpbnQg
c3JjWDAsIEdDM0RpbnQgc3JjWTAsIEdDM0RpbnQgc3JjWDEsIEdDM0RpbnQgc3JjWTEsIEdDM0Rp
bnQgZHN0WDAsIEdDM0RpbnQgZHN0WTAsIEdDM0RpbnQgZHN0WDEsIEdDM0RpbnQgZHN0WTEsIEdD
M0RiaXRmaWVsZCBtYXNrLCBHQzNEZW51bSBmaWx0ZXIpOwogICAgIHZvaWQgZnJhbWVidWZmZXJU
ZXh0dXJlTGF5ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEdWlu
dCB0ZXh0dXJlLCBHQzNEaW50IGxldmVsLCBHQzNEaW50IGxheWVyKTsKLSAgICBXZWJHTEdldElu
Zm8gZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gcG5hbWUpOwotICAgIHZvaWQgaW52YWxpZGF0ZUZyYW1l
YnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgVmVjdG9yPEdDM0RlbnVtPiBhdHRhY2htZW50cyk7Ci0g
ICAgdm9pZCBpbnZhbGlkYXRlU3ViRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBWZWN0b3I8
R0MzRGVudW0+IGF0dGFjaG1lbnRzLCBHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdp
ZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKKyAgICBXZWJHTEFueSBnZXRJbnRlcm5hbGZvcm1hdFBh
cmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51
bSBwbmFtZSk7CisgICAgdm9pZCBpbnZhbGlkYXRlRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0
LCBjb25zdCBWZWN0b3I8R0MzRGVudW0+JiBhdHRhY2htZW50cyk7CisgICAgdm9pZCBpbnZhbGlk
YXRlU3ViRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBjb25zdCBWZWN0b3I8R0MzRGVudW0+
JiBhdHRhY2htZW50cywgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCk7CiAgICAgdm9pZCByZWFkQnVmZmVyKEdDM0RlbnVtIHNyYyk7CiAgICAg
Ci0gICAgLyogUmVuZGVyYnVmZmVyIG9iamVjdHMgKi8KKyAgICAvLyBSZW5kZXJidWZmZXIgb2Jq
ZWN0cwogICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdDM0RlbnVtIHRh
cmdldCwgR0MzRHNpemVpIHNhbXBsZXMsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6
ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpOwogICAgIAotICAgIC8qIFRleHR1cmUgb2JqZWN0
cyAqLworICAgIC8vIFRleHR1cmUgb2JqZWN0cwogICAgIHZvaWQgdGV4U3RvcmFnZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQsIEdD
M0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7CiAgICAgdm9pZCB0ZXhTdG9yYWdlM0Qo
R0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1h
dCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEc2l6ZWkgZGVwdGgpOwog
ICAgIHZvaWQgdGV4SW1hZ2UzRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0Rp
bnQgaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0Mz
RHNpemVpIGRlcHRoLCBHQzNEaW50IGJvcmRlciwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0
eXBlLCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmIHBpeGVscyk7CkBAIC03NiwxMCArNzUsMTAg
QEAgcHVibGljOgogICAgIHZvaWQgY29tcHJlc3NlZFRleEltYWdlM0QoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRo
LCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEc2l6ZWkgZGVwdGgsIEdDM0RpbnQgYm9yZGVyLCBHQzNE
c2l6ZWkgaW1hZ2VTaXplLCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmIGRhdGEpOwogICAgIHZv
aWQgY29tcHJlc3NlZFRleFN1YkltYWdlM0QoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB6b2Zmc2V0LCBHQzNE
c2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RzaXplaSBkZXB0aCwgR0MzRGVudW0g
Zm9ybWF0LCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmIGRh
dGEpOwogICAgIAotICAgIC8qIFByb2dyYW1zIGFuZCBzaGFkZXJzICovCi0gICAgR0MzRGludCBn
ZXRGcmFnRGF0YUxvY2F0aW9uKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgU3RyaW5nIG5hbWUpOwor
ICAgIC8vIFByb2dyYW1zIGFuZCBzaGFkZXJzCisgICAgR0MzRGludCBnZXRGcmFnRGF0YUxvY2F0
aW9uKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgCi0gICAgLyogVW5p
Zm9ybXMgYW5kIGF0dHJpYnV0ZXMgKi8KKyAgICAvLyBVbmlmb3JtcyBhbmQgYXR0cmlidXRlcwog
ICAgIHZvaWQgdW5pZm9ybTF1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbiosIEdDM0R1aW50IHYwKTsK
ICAgICB2b2lkIHVuaWZvcm0ydWkoV2ViR0xVbmlmb3JtTG9jYXRpb24qLCBHQzNEdWludCB2MCwg
R0MzRHVpbnQgdjEpOwogICAgIHZvaWQgdW5pZm9ybTN1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbios
IEdDM0R1aW50IHYwLCBHQzNEdWludCB2MSwgR0MzRHVpbnQgdjIpOwpAQCAtMTAwLDcwICs5OSw3
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCB2ZXJ0ZXhBdHRyaWJJNHVpdihHQzNEdWludCBpbmRleCwg
UmVmUHRyPFVpbnQzMkFycmF5PiYmIHYpOwogICAgIHZvaWQgdmVydGV4QXR0cmliSVBvaW50ZXIo
R0MzRHVpbnQgaW5kZXgsIEdDM0RpbnQgc2l6ZSwgR0MzRGVudW0gdHlwZSwgR0MzRHNpemVpIHN0
cmlkZSwgR0MzRGludDY0IG9mZnNldCk7CiAgICAgCi0gICAgLyogV3JpdGluZyB0byB0aGUgZHJh
d2luZyBidWZmZXIgKi8KKyAgICAvLyBXcml0aW5nIHRvIHRoZSBkcmF3aW5nIGJ1ZmZlcgogICAg
IHZvaWQgY2xlYXIoR0MzRGJpdGZpZWxkIG1hc2spIGZpbmFsOwogICAgIHZvaWQgdmVydGV4QXR0
cmliRGl2aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcik7CiAgICAgdm9pZCBk
cmF3QXJyYXlzSW5zdGFuY2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQgZmlyc3QsIEdDM0RzaXpl
aSBjb3VudCwgR0MzRHNpemVpIGluc3RhbmNlQ291bnQpOwogICAgIHZvaWQgZHJhd0VsZW1lbnRz
SW5zdGFuY2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwg
R0MzRGludDY0IG9mZnNldCwgR0MzRHNpemVpIGluc3RhbmNlQ291bnQpOwogICAgIHZvaWQgZHJh
d1JhbmdlRWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHVpbnQgc3RhcnQsIEdDM0R1aW50IGVu
ZCwgR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50NjQgb2Zmc2V0KTsKICAg
ICAKLSAgICAvKiBNdWx0aXBsZSBSZW5kZXIgVGFyZ2V0cyAqLwotICAgIHZvaWQgZHJhd0J1ZmZl
cnMoVmVjdG9yPEdDM0RlbnVtPiBidWZmZXJzKTsKKyAgICAvLyBNdWx0aXBsZSByZW5kZXIgdGFy
Z2V0cworICAgIHZvaWQgZHJhd0J1ZmZlcnMoY29uc3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmZmVy
cyk7CiAgICAgdm9pZCBjbGVhckJ1ZmZlcml2KEdDM0RlbnVtIGJ1ZmZlciwgR0MzRGludCBkcmF3
YnVmZmVyLCBSZWZQdHI8SW50MzJBcnJheT4mJiB2YWx1ZSk7CiAgICAgdm9pZCBjbGVhckJ1ZmZl
cnVpdihHQzNEZW51bSBidWZmZXIsIEdDM0RpbnQgZHJhd2J1ZmZlciwgUmVmUHRyPFVpbnQzMkFy
cmF5PiYmIHZhbHVlKTsKICAgICB2b2lkIGNsZWFyQnVmZmVyZnYoR0MzRGVudW0gYnVmZmVyLCBH
QzNEaW50IGRyYXdidWZmZXIsIFJlZlB0cjxGbG9hdDMyQXJyYXk+JiYgdmFsdWUpOwogICAgIHZv
aWQgY2xlYXJCdWZmZXJmaShHQzNEZW51bSBidWZmZXIsIEdDM0RpbnQgZHJhd2J1ZmZlciwgR0Mz
RGZsb2F0IGRlcHRoLCBHQzNEaW50IHN0ZW5jaWwpOwogICAgIAotICAgIC8qIFF1ZXJ5IE9iamVj
dHMgKi8KKyAgICAvLyBRdWVyeSBvYmplY3RzCiAgICAgUmVmUHRyPFdlYkdMUXVlcnk+IGNyZWF0
ZVF1ZXJ5KCk7Ci0gICAgdm9pZCBkZWxldGVRdWVyeShXZWJHTFF1ZXJ5KiBxdWVyeSk7Ci0gICAg
R0MzRGJvb2xlYW4gaXNRdWVyeShXZWJHTFF1ZXJ5KiBxdWVyeSk7Ci0gICAgdm9pZCBiZWdpblF1
ZXJ5KEdDM0RlbnVtIHRhcmdldCwgV2ViR0xRdWVyeSogcXVlcnkpOworICAgIHZvaWQgZGVsZXRl
UXVlcnkoV2ViR0xRdWVyeSopOworICAgIEdDM0Rib29sZWFuIGlzUXVlcnkoV2ViR0xRdWVyeSop
OworICAgIHZvaWQgYmVnaW5RdWVyeShHQzNEZW51bSB0YXJnZXQsIFdlYkdMUXVlcnkqKTsKICAg
ICB2b2lkIGVuZFF1ZXJ5KEdDM0RlbnVtIHRhcmdldCk7CiAgICAgUmVmUHRyPFdlYkdMUXVlcnk+
IGdldFF1ZXJ5KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOwotICAgIFdlYkdMR2V0
SW5mbyBnZXRRdWVyeVBhcmFtZXRlcihXZWJHTFF1ZXJ5KiBxdWVyeSwgR0MzRGVudW0gcG5hbWUp
OworICAgIFdlYkdMQW55IGdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdMUXVlcnkqLCBHQzNEZW51bSBw
bmFtZSk7CiAgICAgCi0gICAgLyogU2FtcGxlciBPYmplY3RzICovCisgICAgLy8gU2FtcGxlciBv
YmplY3RzCiAgICAgUmVmUHRyPFdlYkdMU2FtcGxlcj4gY3JlYXRlU2FtcGxlcigpOwotICAgIHZv
aWQgZGVsZXRlU2FtcGxlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIpOwotICAgIEdDM0Rib29sZWFu
IGlzU2FtcGxlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIpOwotICAgIHZvaWQgYmluZFNhbXBsZXIo
R0MzRHVpbnQgdW5pdCwgV2ViR0xTYW1wbGVyKiBzYW1wbGVyKTsKLSAgICB2b2lkIHNhbXBsZXJQ
YXJhbWV0ZXJpKFdlYkdMU2FtcGxlciogc2FtcGxlciwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQg
cGFyYW0pOwotICAgIHZvaWQgc2FtcGxlclBhcmFtZXRlcmYoV2ViR0xTYW1wbGVyKiBzYW1wbGVy
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0IHBhcmFtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0
U2FtcGxlclBhcmFtZXRlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIsIEdDM0RlbnVtIHBuYW1lKTsK
KyAgICB2b2lkIGRlbGV0ZVNhbXBsZXIoV2ViR0xTYW1wbGVyKik7CisgICAgR0MzRGJvb2xlYW4g
aXNTYW1wbGVyKFdlYkdMU2FtcGxlciopOworICAgIHZvaWQgYmluZFNhbXBsZXIoR0MzRHVpbnQg
dW5pdCwgV2ViR0xTYW1wbGVyKik7CisgICAgdm9pZCBzYW1wbGVyUGFyYW1ldGVyaShXZWJHTFNh
bXBsZXIqLCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7CisgICAgdm9pZCBzYW1wbGVy
UGFyYW1ldGVyZihXZWJHTFNhbXBsZXIqLCBHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0IHBhcmFt
KTsKKyAgICBXZWJHTEFueSBnZXRTYW1wbGVyUGFyYW1ldGVyKFdlYkdMU2FtcGxlciosIEdDM0Rl
bnVtIHBuYW1lKTsKICAgICAKLSAgICAvKiBTeW5jIG9iamVjdHMgKi8KKyAgICAvLyBTeW5jIG9i
amVjdHMKICAgICBSZWZQdHI8V2ViR0xTeW5jPiBmZW5jZVN5bmMoR0MzRGVudW0gY29uZGl0aW9u
LCBHQzNEYml0ZmllbGQgZmxhZ3MpOwotICAgIEdDM0Rib29sZWFuIGlzU3luYyhXZWJHTFN5bmMq
IHN5bmMpOwotICAgIHZvaWQgZGVsZXRlU3luYyhXZWJHTFN5bmMqIHN5bmMpOwotICAgIEdDM0Rl
bnVtIGNsaWVudFdhaXRTeW5jKFdlYkdMU3luYyogc3luYywgR0MzRGJpdGZpZWxkIGZsYWdzLCBH
QzNEdWludDY0IHRpbWVvdXQpOwotICAgIHZvaWQgd2FpdFN5bmMoV2ViR0xTeW5jKiBzeW5jLCBH
QzNEYml0ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7Ci0gICAgV2ViR0xHZXRJbmZv
IGdldFN5bmNQYXJhbWV0ZXIoV2ViR0xTeW5jKiBzeW5jLCBHQzNEZW51bSBwbmFtZSk7CisgICAg
R0MzRGJvb2xlYW4gaXNTeW5jKFdlYkdMU3luYyopOworICAgIHZvaWQgZGVsZXRlU3luYyhXZWJH
TFN5bmMqKTsKKyAgICBHQzNEZW51bSBjbGllbnRXYWl0U3luYyhXZWJHTFN5bmMqLCBHQzNEYml0
ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7CisgICAgdm9pZCB3YWl0U3luYyhXZWJH
TFN5bmMqLCBHQzNEYml0ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7CisgICAgV2Vi
R0xBbnkgZ2V0U3luY1BhcmFtZXRlcihXZWJHTFN5bmMqLCBHQzNEZW51bSBwbmFtZSk7CiAgICAg
Ci0gICAgLyogVHJhbnNmb3JtIEZlZWRiYWNrICovCisgICAgLy8gVHJhbnNmb3JtIGZlZWRiYWNr
CiAgICAgUmVmUHRyPFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+IGNyZWF0ZVRyYW5zZm9ybUZlZWRi
YWNrKCk7CiAgICAgdm9pZCBkZWxldGVUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRyYW5zZm9ybUZl
ZWRiYWNrKiBpZCk7CiAgICAgR0MzRGJvb2xlYW4gaXNUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRy
YW5zZm9ybUZlZWRiYWNrKiBpZCk7CiAgICAgdm9pZCBiaW5kVHJhbnNmb3JtRmVlZGJhY2soR0Mz
RGVudW0gdGFyZ2V0LCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKiBpZCk7CiAgICAgdm9pZCBiZWdp
blRyYW5zZm9ybUZlZWRiYWNrKEdDM0RlbnVtIHByaW1pdGl2ZU1vZGUpOwogICAgIHZvaWQgZW5k
VHJhbnNmb3JtRmVlZGJhY2soKTsKLSAgICB2b2lkIHRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3Mo
V2ViR0xQcm9ncmFtKiwgVmVjdG9yPFN0cmluZz4gdmFyeWluZ3MsIEdDM0RlbnVtIGJ1ZmZlck1v
ZGUpOworICAgIHZvaWQgdHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncyhXZWJHTFByb2dyYW0qLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgdmFyeWluZ3MsIEdDM0RlbnVtIGJ1ZmZlck1vZGUpOwogICAg
IFJlZlB0cjxXZWJHTEFjdGl2ZUluZm8+IGdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZyhXZWJH
TFByb2dyYW0qLCBHQzNEdWludCBpbmRleCk7CiAgICAgdm9pZCBwYXVzZVRyYW5zZm9ybUZlZWRi
YWNrKCk7CiAgICAgdm9pZCByZXN1bWVUcmFuc2Zvcm1GZWVkYmFjaygpOwogICAgIAotICAgIC8q
IFVuaWZvcm0gQnVmZmVyIE9iamVjdHMgYW5kIFRyYW5zZm9ybSBGZWVkYmFjayBCdWZmZXJzICov
Ci0gICAgdm9pZCBiaW5kQnVmZmVyQmFzZShHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4
LCBXZWJHTEJ1ZmZlciogYnVmZmVyKTsKLSAgICB2b2lkIGJpbmRCdWZmZXJSYW5nZShHQzNEZW51
bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4LCBXZWJHTEJ1ZmZlciogYnVmZmVyLCBHQzNEaW50NjQg
b2Zmc2V0LCBHQzNEaW50NjQgc2l6ZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEluZGV4ZWRQYXJh
bWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWludCBpbmRleCk7Ci0gICAgVWludDMyQXJyYXkq
IGdldFVuaWZvcm1JbmRpY2VzKFdlYkdMUHJvZ3JhbSosIFZlY3RvcjxTdHJpbmc+IHVuaWZvcm1O
YW1lcyk7CisgICAgLy8gVW5pZm9ybSBidWZmZXIgb2JqZWN0cyBhbmQgdHJhbnNmb3JtIGZlZWRi
YWNrIGJ1ZmZlcnMKKyAgICB2b2lkIGJpbmRCdWZmZXJCYXNlKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RHVpbnQgaW5kZXgsIFdlYkdMQnVmZmVyKik7CisgICAgdm9pZCBiaW5kQnVmZmVyUmFuZ2UoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEdWludCBpbmRleCwgV2ViR0xCdWZmZXIqLCBHQzNEaW50NjQgb2Zm
c2V0LCBHQzNEaW50NjQgc2l6ZSk7CisgICAgV2ViR0xBbnkgZ2V0SW5kZXhlZFBhcmFtZXRlcihH
QzNEZW51bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4KTsKKyAgICBVaW50MzJBcnJheSogZ2V0VW5p
Zm9ybUluZGljZXMoV2ViR0xQcm9ncmFtKiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHVuaWZvcm1O
YW1lcyk7CiAgICAgSW50MzJBcnJheSogZ2V0QWN0aXZlVW5pZm9ybXMoV2ViR0xQcm9ncmFtKiwg
UmVmUHRyPFVpbnQzMkFycmF5PiYmIHVuaWZvcm1JbmRpY2VzLCBHQzNEZW51bSBwbmFtZSk7Ci0g
ICAgR0MzRHVpbnQgZ2V0VW5pZm9ybUJsb2NrSW5kZXgoV2ViR0xQcm9ncmFtKiwgU3RyaW5nIHVu
aWZvcm1CbG9ja05hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRBY3RpdmVVbmlmb3JtQmxvY2tQ
YXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdDM0Rl
bnVtIHBuYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShX
ZWJHTFByb2dyYW0qLCBHQzNEdWludCB1bmlmb3JtQmxvY2tJbmRleCk7CisgICAgR0MzRHVpbnQg
Z2V0VW5pZm9ybUJsb2NrSW5kZXgoV2ViR0xQcm9ncmFtKiwgY29uc3QgU3RyaW5nJiB1bmlmb3Jt
QmxvY2tOYW1lKTsKKyAgICBXZWJHTEFueSBnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIo
V2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdDM0RlbnVtIHBuYW1l
KTsKKyAgICBXZWJHTEFueSBnZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKFdlYkdMUHJvZ3JhbSos
IEdDM0R1aW50IHVuaWZvcm1CbG9ja0luZGV4KTsKICAgICB2b2lkIHVuaWZvcm1CbG9ja0JpbmRp
bmcoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdDM0R1aW50IHVu
aWZvcm1CbG9ja0JpbmRpbmcpOwogICAgIAotICAgIC8qIFZlcnRleCBBcnJheSBPYmplY3RzICov
CisgICAgLy8gVmVydGV4IGFycmF5IG9iamVjdHMKICAgICBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdD4gY3JlYXRlVmVydGV4QXJyYXkoKTsKICAgICB2b2lkIGRlbGV0ZVZlcnRleEFycmF5
KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIHZlcnRleEFycmF5KTsKICAgICBHQzNEYm9vbGVhbiBp
c1ZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIHZlcnRleEFycmF5KTsKQEAgLTE3
MiwxMCArMTcxLDEwIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBpc1dlYkdMMigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIC8qIEV4dGVuc2lvbnMgKi8KKyAgICAv
LyBFeHRlbnNpb25zCiAgICAgV2ViR0xFeHRlbnNpb24qIGdldEV4dGVuc2lvbihjb25zdCBTdHJp
bmcmKSBmaW5hbDsKICAgICBWZWN0b3I8U3RyaW5nPiBnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkg
ZmluYWw7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkgZmlu
YWw7CisgICAgV2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKIAog
ICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGlu
dGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIGZpbmFsOwog
ICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1vZGUpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyNWRiMmFhYmNi
MTk3NjAwNGZhM2NkODIzNzU1Yjc4ZjVmYzQwODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5jcHAKQEAgLTAsMCArMSwxMTkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViR0xBbnkuaCIKKworI2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1
ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTV2ViR0xCdWZmZXIuaCIKKyNpbmNsdWRl
ICJKU1dlYkdMRnJhbWVidWZmZXIuaCIKKyNpbmNsdWRlICJKU1dlYkdMUHJvZ3JhbS5oIgorI2lu
Y2x1ZGUgIkpTV2ViR0xSZW5kZXJidWZmZXIuaCIKKyNpbmNsdWRlICJKU1dlYkdMVGV4dHVyZS5o
IgorI2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgorCisjaWYgRU5BQkxF
KFdFQkdMMikKKyNpbmNsdWRlICJKU1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIKKyNlbmRpZgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKKy8vIEZJWE1F
OiBUaGlzIGxpa2VseSBjYW4gYmUgYXV0b2dlbmVyYXRlZCB3aXRoIGEgYml0IG9mIHdvcmsuCitK
U1ZhbHVlIHRvSlMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9i
amVjdCwgY29uc3QgV2ViR0xBbnkmIGFueSkKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihh
bnksCisgICAgICAgIFtdIChzdGQ6Om51bGxwdHJfdCkgeworICAgICAgICAgICAgcmV0dXJuIGpz
TnVsbCgpOworICAgICAgICB9LAorICAgICAgICBbXSAoYm9vbCB2YWx1ZSkgeworICAgICAgICAg
ICAgcmV0dXJuIGpzQm9vbGVhbih2YWx1ZSk7CisgICAgICAgIH0sCisgICAgICAgIFtdIChpbnQg
dmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBqc051bWJlcih2YWx1ZSk7CisgICAgICAgIH0s
CisgICAgICAgIFtdICh1bnNpZ25lZCB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIGpzTnVt
YmVyKHZhbHVlKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10gKGxvbmcgbG9uZyB2YWx1ZSkgewor
ICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHZhbHVlKTsKKyAgICAgICAgfSwKKyAgICAgICAg
W10gKGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIodmFsdWUpOwor
ICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFN0cmluZyYgdmFsdWUpIHsKKyAgICAgICAg
ICAgIHJldHVybiBqc1N0cmluZ1dpdGhDYWNoZSgmc3RhdGUsIHZhbHVlKTsKKyAgICAgICAgfSwK
KyAgICAgICAgWyZdIChjb25zdCBWZWN0b3I8Ym9vbD4mIHZhbHVlcykgeworICAgICAgICAgICAg
TWFya2VkQXJndW1lbnRCdWZmZXIgbGlzdDsKKyAgICAgICAgICAgIGZvciAoYXV0byYgdmFsdWUg
OiB2YWx1ZXMpCisgICAgICAgICAgICAgICAgbGlzdC5hcHBlbmQoanNCb29sZWFuKHZhbHVlKSk7
CisgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoJnN0YXRlLCAwLCAmZ2xvYmFsT2Jq
ZWN0LCBsaXN0KTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8RmxvYXQz
MkFycmF5PiYgYXJyYXkpIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2Jh
bE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJl
ZlB0cjxJbnQzMkFycmF5PiYgYXJyYXkpIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0
ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0g
KGNvbnN0IFJlZlB0cjxVaW50OEFycmF5PiYgYXJyYXkpIHsKKyAgICAgICAgICAgIHJldHVybiB0
b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAgICB9LAorICAg
ICAgICBbJl0gKGNvbnN0IFJlZlB0cjxVaW50MzJBcnJheT4mIGFycmF5KSB7CisgICAgICAgICAg
ICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIGFycmF5LmdldCgpKTsKKyAgICAg
ICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2ViR0xCdWZmZXI+JiBidWZmZXIpIHsK
KyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYnVmZmVyLmdl
dCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2ViR0xGcmFtZWJ1
ZmZlcj4mIGJ1ZmZlcikgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFs
T2JqZWN0LCBidWZmZXIuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJl
ZlB0cjxXZWJHTFByb2dyYW0+JiBwcm9ncmFtKSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygm
c3RhdGUsICZnbG9iYWxPYmplY3QsIHByb2dyYW0uZ2V0KCkpOworICAgICAgICB9LAorICAgICAg
ICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4mIGJ1ZmZlcikgeworICAgICAg
ICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBidWZmZXIuZ2V0KCkpOwor
ICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTFRleHR1cmU+JiB0ZXh0
dXJlKSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHRl
eHR1cmUuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTPiYgYXJyYXkpIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pT
KCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAgICB9CisjaWYgRU5B
QkxFKFdFQkdMMikKKyAgICAgICAgLAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTFZl
cnRleEFycmF5T2JqZWN0PiYgYXJyYXkpIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0
ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAgICB9CisjZW5kaWYKKyAgICAp
OworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xBbnkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQW55LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uY2M3YmI3Zjk4NzM5NGYyNzNhNzRiODgxYjAwNzgwZTc3M2I2MDI2MAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQW55LmgKQEAgLTAs
MCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdMKQorCisjaW5jbHVkZSAiV2ViR0xCdWZm
ZXIuaCIKKyNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCisjaW5jbHVkZSAiV2ViR0xQcm9n
cmFtLmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJidWZmZXIuaCIKKyNpbmNsdWRlICJXZWJHTFRl
eHR1cmUuaCIKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgiCisjaW5jbHVk
ZSA8cnVudGltZS9GbG9hdDMyQXJyYXkuaD4KKyNpbmNsdWRlIDxydW50aW1lL0ludDMyQXJyYXku
aD4KKyNpbmNsdWRlIDxydW50aW1lL1VpbnQzMkFycmF5Lmg+CisjaW5jbHVkZSA8cnVudGltZS9V
aW50OEFycmF5Lmg+CisKKyNpZiBFTkFCTEUoV0VCR0wyKQorI2luY2x1ZGUgIldlYkdMVmVydGV4
QXJyYXlPYmplY3QuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIEV4ZWNTdGF0
ZTsKK2NsYXNzIEpTVmFsdWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSlNE
T01HbG9iYWxPYmplY3Q7CisKK3VzaW5nIFdlYkdMQW55ID0gVmFyaWFudDxzdGQ6Om51bGxwdHJf
dCwgYm9vbCwgaW50LCB1bnNpZ25lZCwgbG9uZyBsb25nLCBmbG9hdCwgU3RyaW5nLCBWZWN0b3I8
Ym9vbD4sCisgICAgUmVmUHRyPEZsb2F0MzJBcnJheT4sCisgICAgUmVmUHRyPEludDMyQXJyYXk+
LAorICAgIFJlZlB0cjxVaW50MzJBcnJheT4sCisgICAgUmVmUHRyPFVpbnQ4QXJyYXk+LAorICAg
IFJlZlB0cjxXZWJHTEJ1ZmZlcj4sCisgICAgUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+LAorICAg
IFJlZlB0cjxXZWJHTFByb2dyYW0+LAorICAgIFJlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4sCisg
ICAgUmVmUHRyPFdlYkdMVGV4dHVyZT4sCisgICAgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3RPRVM+CisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAsIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5
T2JqZWN0PgorI2VuZGlmCis+OworCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSYs
IEpTRE9NR2xvYmFsT2JqZWN0JiwgY29uc3QgV2ViR0xBbnkmKTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVy
LmNwcAppbmRleCBkZjE3NzExZGIwYjg5ZWFkMDM4ZjczYzMxZDIyZmUxZTMyYTVlM2NjLi5iZGI4
MWQ2ZTU1ZmQ3NDNlZWI3ZDA3YTMyYjQwMjQzMGUzOWM2OWI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDExICsyNCwxMCBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgogCiAjaWYgRU5BQkxFKFdF
QkdMKQogCi0jaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKLQogI2luY2x1ZGUgIldlYkdMQ29udGV4
dEdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgogCkBAIC00
MSw5ICs0MCw2IEBAIFJlZjxXZWJHTEJ1ZmZlcj4gV2ViR0xCdWZmZXI6OmNyZWF0ZShXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJiBjdHgpCiAKIFdlYkdMQnVmZmVyOjpXZWJHTEJ1ZmZlcihXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgpCiAgICAgOiBXZWJHTFNoYXJlZE9iamVjdChjdHgp
Ci0gICAgLCBtX3RhcmdldCgwKQotICAgICwgbV9ieXRlTGVuZ3RoKDApCi0gICAgLCBtX25leHRB
dmFpbGFibGVDYWNoZUVudHJ5KDApCiB7CiAgICAgc2V0T2JqZWN0KGN0eC5ncmFwaGljc0NvbnRl
eHQzRCgpLT5jcmVhdGVCdWZmZXIoKSk7CiAgICAgY2xlYXJDYWNoZWRNYXhJbmRpY2VzKCk7CkBA
IC01Niw3ICs1Miw3IEBAIFdlYkdMQnVmZmVyOjp+V2ViR0xCdWZmZXIoKQogCiB2b2lkIFdlYkdM
QnVmZmVyOjpkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M2QsIFBs
YXRmb3JtM0RPYmplY3Qgb2JqZWN0KQogewotICAgICAgY29udGV4dDNkLT5kZWxldGVCdWZmZXIo
b2JqZWN0KTsKKyAgICBjb250ZXh0M2QtPmRlbGV0ZUJ1ZmZlcihvYmplY3QpOwogfQogCiBib29s
IFdlYkdMQnVmZmVyOjphc3NvY2lhdGVCdWZmZXJEYXRhSW1wbChjb25zdCB2b2lkKiBkYXRhLCBH
QzNEc2l6ZWlwdHIgYnl0ZUxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1
ZmZlci5oCmluZGV4IDFiNDE0ZThmYzlhMTM1YTljZWMwYmNkNmM2ZjIyZTA5YzI3NzFkNGUuLmQz
YmQ5YTAzOGVjYjhkNzBjN2QwNDc4ZWM0MDhjOTIxYTQ3OTMwZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw5ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgV2ViR0xCdWZmZXIgZmluYWwgOiBwdWJsaWMgV2ViR0xTaGFyZWRPYmplY3Qg
ewogcHVibGljOgotICAgIHZpcnR1YWwgfldlYkdMQnVmZmVyKCk7Ci0KICAgICBzdGF0aWMgUmVm
PFdlYkdMQnVmZmVyPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOworICAgIHZp
cnR1YWwgfldlYkdMQnVmZmVyKCk7CiAKICAgICBib29sIGFzc29jaWF0ZUJ1ZmZlckRhdGEoR0Mz
RHNpemVpcHRyIHNpemUpOwogICAgIGJvb2wgYXNzb2NpYXRlQnVmZmVyRGF0YShKU0M6OkFycmF5
QnVmZmVyKik7CkBAIC03MCwxMiArNjksMTAgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZGVsZXRl
T2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OwogCiBwcml2YXRlOgotICAgIGJvb2wgaXNCdWZmZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9Ci0KLSAgICBHQzNEZW51bSBtX3RhcmdldDsKKyAgICBHQzNEZW51bSBtX3Rhcmdl
dCB7IDAgfTsKIAogICAgIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiBtX2VsZW1lbnRBcnJheUJ1
ZmZlcjsKLSAgICBHQzNEc2l6ZWlwdHIgbV9ieXRlTGVuZ3RoOworICAgIEdDM0RzaXplaXB0ciBt
X2J5dGVMZW5ndGggeyAwIH07CiAKICAgICAvLyBPcHRpbWl6YXRpb24gZm9yIGluZGV4IHZhbGlk
YXRpb24uIEZvciBlYWNoIHR5cGUgb2YgaW5kZXgKICAgICAvLyAoaS5lLiwgVU5TSUdORURfU0hP
UlQpLCBjYWNoZSB0aGUgbWF4aW11bSBpbmRleCBpbiB0aGUKQEAgLTkyLDcgKzg5LDcgQEAgcHJp
dmF0ZToKICAgICAvLyBhbmQgVU5TSUdORURfU0hPUlQpLCBidXQgbWlnaHQgYXMgd2VsbCBsZWF2
ZSBvcGVuIHRoZQogICAgIC8vIHBvc3NpYmlsaXR5IG9mIGFkZGluZyBvdGhlcnMuCiAgICAgTWF4
SW5kZXhDYWNoZUVudHJ5IG1fbWF4SW5kZXhDYWNoZVs0XTsKLSAgICB1bnNpZ25lZCBpbnQgbV9u
ZXh0QXZhaWxhYmxlQ2FjaGVFbnRyeTsKKyAgICB1bnNpZ25lZCBtX25leHRBdmFpbGFibGVDYWNo
ZUVudHJ5IHsgMCB9OwogCiAgICAgLy8gQ2xlYXJzIGFsbCBvZiB0aGUgY2FjaGVkIG1heCBpbmRp
Y2VzLgogICAgIHZvaWQgY2xlYXJDYWNoZWRNYXhJbmRpY2VzKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5jcHAKaW5kZXggMjEzM2YzM2VmYzhj
ZTA5ODdiNDk4MzNjYmMxMGZjNzU5MTJhMDgyMi4uOWRkZWYxNThjZDBhY2RlNmI2OGNhZGRkMmJj
OTNjZWQ1YTgzZGVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xDb250ZXh0R3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
Q29udGV4dEdyb3VwLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNCwxMSArMjQsMTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkK
IAotI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCi0KICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQzRC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKICNpbmNs
dWRlICJXZWJHTFNoYXJlZE9iamVjdC5oIgpAQCAtMzcsMTEgKzM2LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBSZWY8V2ViR0xDb250ZXh0R3JvdXA+IFdlYkdMQ29udGV4dEdyb3VwOjpjcmVh
dGUoKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdMQ29udGV4dEdyb3VwKCkpOwot
fQotCi1XZWJHTENvbnRleHRHcm91cDo6V2ViR0xDb250ZXh0R3JvdXAoKQoteworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYkdMQ29udGV4dEdyb3VwKTsKIH0KIAogV2ViR0xDb250ZXh0R3Jv
dXA6On5XZWJHTENvbnRleHRHcm91cCgpCkBAIC00OSw0MyArNDQsNDAgQEAgV2ViR0xDb250ZXh0
R3JvdXA6On5XZWJHTENvbnRleHRHcm91cCgpCiAgICAgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0
cygpOwogfQogCi1HcmFwaGljc0NvbnRleHQzRCogV2ViR0xDb250ZXh0R3JvdXA6OmdldEFHcmFw
aGljc0NvbnRleHQzRCgpCitHcmFwaGljc0NvbnRleHQzRCYgV2ViR0xDb250ZXh0R3JvdXA6Omdl
dEFHcmFwaGljc0NvbnRleHQzRCgpCiB7CiAgICAgQVNTRVJUKCFtX2NvbnRleHRzLmlzRW1wdHko
KSk7Ci0gICAgSGFzaFNldDxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKj46Oml0ZXJhdG9yIGl0
ID0gbV9jb250ZXh0cy5iZWdpbigpOwotICAgIHJldHVybiAoKml0KS0+Z3JhcGhpY3NDb250ZXh0
M0QoKTsKKyAgICByZXR1cm4gKigqbV9jb250ZXh0cy5iZWdpbigpKS0+Z3JhcGhpY3NDb250ZXh0
M0QoKTsKIH0KIAotdm9pZCBXZWJHTENvbnRleHRHcm91cDo6YWRkQ29udGV4dChXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlKiBjb250ZXh0KQordm9pZCBXZWJHTENvbnRleHRHcm91cDo6YWRkQ29u
dGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQogewotICAgIG1fY29udGV4
dHMuYWRkKGNvbnRleHQpOworICAgIG1fY29udGV4dHMuYWRkKCZjb250ZXh0KTsKIH0KIAotdm9p
ZCBXZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlKiBjb250ZXh0KQordm9pZCBXZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlQ29udGV4dChXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQogewogICAgIC8vIFdlIG11c3QgY2FsbCBk
ZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzIGJlZm9yZSByZW1vdmluZyB0aGUgbGFzdCBjb250ZXh0
LgotICAgIGlmIChtX2NvbnRleHRzLnNpemUoKSA9PSAxICYmIG1fY29udGV4dHMuY29udGFpbnMo
Y29udGV4dCkpCisgICAgaWYgKG1fY29udGV4dHMuc2l6ZSgpID09IDEgJiYgbV9jb250ZXh0cy5j
b250YWlucygmY29udGV4dCkpCiAgICAgICAgIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMoKTsK
IAotICAgIG1fY29udGV4dHMucmVtb3ZlKGNvbnRleHQpOworICAgIG1fY29udGV4dHMucmVtb3Zl
KCZjb250ZXh0KTsKIH0KIAotdm9pZCBXZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlT2JqZWN0KFdl
YkdMU2hhcmVkT2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMQ29udGV4dEdyb3VwOjpyZW1vdmVP
YmplY3QoV2ViR0xTaGFyZWRPYmplY3QmIG9iamVjdCkKIHsKLSAgICBtX2dyb3VwT2JqZWN0cy5y
ZW1vdmUob2JqZWN0KTsKKyAgICBtX2dyb3VwT2JqZWN0cy5yZW1vdmUoJm9iamVjdCk7CiB9CiAK
LXZvaWQgV2ViR0xDb250ZXh0R3JvdXA6OmFkZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCogb2Jq
ZWN0KQordm9pZCBXZWJHTENvbnRleHRHcm91cDo6YWRkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0
JiBvYmplY3QpCiB7Ci0gICAgbV9ncm91cE9iamVjdHMuYWRkKG9iamVjdCk7CisgICAgbV9ncm91
cE9iamVjdHMuYWRkKCZvYmplY3QpOwogfQogCiB2b2lkIFdlYkdMQ29udGV4dEdyb3VwOjpkZXRh
Y2hBbmRSZW1vdmVBbGxPYmplY3RzKCkKIHsKLSAgICB3aGlsZSAoIW1fZ3JvdXBPYmplY3RzLmlz
RW1wdHkoKSkgewotICAgICAgICBIYXNoU2V0PFdlYkdMU2hhcmVkT2JqZWN0Kj46Oml0ZXJhdG9y
IGl0ID0gbV9ncm91cE9iamVjdHMuYmVnaW4oKTsKLSAgICAgICAgKCppdCktPmRldGFjaENvbnRl
eHRHcm91cCgpOwotICAgIH0KKyAgICB3aGlsZSAoIW1fZ3JvdXBPYmplY3RzLmlzRW1wdHkoKSkK
KyAgICAgICAgKCptX2dyb3VwT2JqZWN0cy5iZWdpbigpKS0+ZGV0YWNoQ29udGV4dEdyb3VwKCk7
CiB9CiAKIHZvaWQgV2ViR0xDb250ZXh0R3JvdXA6Omxvc2VDb250ZXh0R3JvdXAoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6TG9zdENvbnRleHRNb2RlIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaAppbmRleCA5ZDAxMGJmY2MyMDk5NmEx
NDY0ODU3YWZjZWVmM2M0YWE3YTZiOWI3Li4xMWI3MzcwMzIyNmUxMWJlM2U1NGY2ZWJjNTYyMjIw
YzJkMTU1YTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENv
bnRleHRHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4
dEdyb3VwLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMjYsMzUgKzI2LDI2IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR3Jh
cGhpY3NDb250ZXh0M0Q7Ci1jbGFzcyBXZWJHTEV4dGVuc2lvbjsKLWNsYXNzIFdlYkdMU2hhcmVk
T2JqZWN0OwotY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTsKLQotY2xhc3MgV2ViR0xD
b250ZXh0R3JvdXAgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHTENvbnRleHRHcm91cD4g
eworY2xhc3MgV2ViR0xDb250ZXh0R3JvdXAgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHTENvbnRl
eHRHcm91cD4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViR0xDb250ZXh0R3JvdXA+IGNy
ZWF0ZSgpOwogICAgIH5XZWJHTENvbnRleHRHcm91cCgpOwogCi0gICAgdm9pZCBhZGRDb250ZXh0
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqKTsKLSAgICB2b2lkIHJlbW92ZUNvbnRleHQoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSopOworICAgIHZvaWQgYWRkQ29udGV4dChXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlJik7CisgICAgdm9pZCByZW1vdmVDb250ZXh0KFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UmKTsKIAotICAgIHZvaWQgYWRkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Kik7
Ci0gICAgdm9pZCByZW1vdmVPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqKTsKKyAgICB2b2lkIGFk
ZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCYpOworICAgIHZvaWQgcmVtb3ZlT2JqZWN0KFdlYkdM
U2hhcmVkT2JqZWN0Jik7CiAKLSAgICBHcmFwaGljc0NvbnRleHQzRCogZ2V0QUdyYXBoaWNzQ29u
dGV4dDNEKCk7CisgICAgR3JhcGhpY3NDb250ZXh0M0QmIGdldEFHcmFwaGljc0NvbnRleHQzRCgp
OwogCiAgICAgdm9pZCBsb3NlQ29udGV4dEdyb3VwKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
Okxvc3RDb250ZXh0TW9kZSk7CiAKLSAgcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgV2ViR0xP
YmplY3Q7Ci0KLSAgICBXZWJHTENvbnRleHRHcm91cCgpOworcHJpdmF0ZToKKyAgICBXZWJHTENv
bnRleHRHcm91cCgpID0gZGVmYXVsdDsKIAogICAgIHZvaWQgZGV0YWNoQW5kUmVtb3ZlQWxsT2Jq
ZWN0cygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENv
bnRleHRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
T2JqZWN0LmNwcAppbmRleCA1MjNlNmU2NDJkNzQ5YjYwMjJmMzc3M2E4OGVkZjRlYTBlY2I5YmI4
Li42YTFjN2FiMjk5OWM4NDVjZTlmZTQzMTI5MTQwZWMzY2JiYzQwNWVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKQEAgLTI0LDI1
ICsyNCwyMyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTENv
bnRleHRPYmplY3QuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUgIldlYkdMQ29u
dGV4dE9iamVjdC5oIgotCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdlYkdMQ29udGV4dE9iamVjdDo6V2ViR0xDb250ZXh0
T2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCi0gICAgOiBXZWJHTE9i
amVjdChjb250ZXh0KQotICAgICwgbV9jb250ZXh0KCZjb250ZXh0KQorICAgIDogbV9jb250ZXh0
KCZjb250ZXh0KQogewogfQogCiBXZWJHTENvbnRleHRPYmplY3Q6On5XZWJHTENvbnRleHRPYmpl
Y3QoKQogewogICAgIGlmIChtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+cmVtb3ZlQ29u
dGV4dE9iamVjdCh0aGlzKTsKKyAgICAgICAgbV9jb250ZXh0LT5yZW1vdmVDb250ZXh0T2JqZWN0
KCp0aGlzKTsKIH0KIAogdm9pZCBXZWJHTENvbnRleHRPYmplY3Q6OmRldGFjaENvbnRleHQoKQpA
QCAtNTAsMTQgKzQ4LDE0IEBAIHZvaWQgV2ViR0xDb250ZXh0T2JqZWN0OjpkZXRhY2hDb250ZXh0
KCkKICAgICBkZXRhY2goKTsKICAgICBpZiAobV9jb250ZXh0KSB7CiAgICAgICAgIGRlbGV0ZU9i
amVjdChtX2NvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNEKCkpOwotICAgICAgICBtX2NvbnRleHQt
PnJlbW92ZUNvbnRleHRPYmplY3QodGhpcyk7Ci0gICAgICAgIG1fY29udGV4dCA9IDA7CisgICAg
ICAgIG1fY29udGV4dC0+cmVtb3ZlQ29udGV4dE9iamVjdCgqdGhpcyk7CisgICAgICAgIG1fY29u
dGV4dCA9IG51bGxwdHI7CiAgICAgfQogfQogCiBHcmFwaGljc0NvbnRleHQzRCogV2ViR0xDb250
ZXh0T2JqZWN0OjpnZXRBR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdAogewotICAgIHJldHVybiBt
X2NvbnRleHQgPyBtX2NvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNEKCkgOiAwOworICAgIHJldHVy
biBtX2NvbnRleHQgPyBtX2NvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNEKCkgOiBudWxscHRyOwog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1l
YnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIu
Y3BwCmluZGV4IGY5YjdjMjAyMjg4M2Q1NzkyYjAyNWYwMjExZDAyZTRkYTZiNjY2M2EuLmMyNzYy
YjIzNjdiN2MzNDE5NmI0N2ZlZTNmOWVjMzRkZmNiYTA5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDExICsyNCwxMCBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCiAK
ICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCi0KICNp
bmNsdWRlICJFeHRlbnNpb25zM0QuaCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgog
I2luY2x1ZGUgIldlYkdMRHJhd0J1ZmZlcnMuaCIKQEAgLTYwNiw2ICs2MDUsOSBAQCB2b2lkIFdl
YkdMRnJhbWVidWZmZXI6OmRyYXdCdWZmZXJzKGNvbnN0IFZlY3RvcjxHQzNEZW51bT4mIGJ1ZnMp
CiB2b2lkIFdlYkdMRnJhbWVidWZmZXI6OmRyYXdCdWZmZXJzSWZOZWNlc3NhcnkoYm9vbCBmb3Jj
ZSkKIHsKICNpZiBFTkFCTEUoV0VCR0wyKQorICAgIC8vIEZJWE1FOiBUaGUgbG9naWMgaGVyZSBz
ZWVtcyB3cm9uZy4gSWYgd2UgZG9uJ3QgaGF2ZSBXZWJHTCAyIGVuYWJsZWQgYXQgYWxsLCB0aGVu
CisgICAgLy8gd2Ugc2tpcCB0aGUgbV93ZWJnbERyYXdCdWZmZXJzIGNoZWNrLiBCdXQgaWYgd2Ug
ZG8gaGF2ZSBXZWJHTCAyIGVuYWJsZWQsIHRoZW4gd2UKKyAgICAvLyBwZXJmb3JtIHRoaXMgY2hl
Y2ssIGZvciBXZWJHTCAxIGNvbnRleHRzIG9ubHkuCiAgICAgaWYgKCFjb250ZXh0KCktPm1fd2Vi
Z2xEcmF3QnVmZmVycyAmJiAhY29udGV4dCgpLT5pc1dlYkdMMigpKQogICAgICAgICByZXR1cm47
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0
SW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZWFkMWNmZDYzNzQyYjAwZDUyNDJkZTcxOTU3
MjNhYjNlZjNkMWViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSwzNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKFdFQkdMKQotCi0j
aW5jbHVkZSAiV2ViR0xHZXRJbmZvLmgiCi0KLSNpbmNsdWRlIDxydW50aW1lL0Zsb2F0MzJBcnJh
eS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSW50MzJBcnJheS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUv
VWludDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL1VpbnQ4QXJyYXkuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhib29sIHZhbHVlKQot
ICAgIDogbV90eXBlKGtUeXBlQm9vbCkKLSAgICAsIG1fYm9vbCh2YWx1ZSkKLSAgICAsIG1fZmxv
YXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2lu
dDY0KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKGNvbnN0IGJvb2wqIHZh
bHVlLCBpbnQgc2l6ZSkKLSAgICA6IG1fdHlwZShrVHlwZUJvb2xBcnJheSkKLSAgICAsIG1fYm9v
bChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2ln
bmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi17Ci0gICAgaWYgKCF2YWx1ZSB8fCBzaXplIDw9
MCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fYm9vbEFycmF5LnJlc2l6ZShzaXplKTsKLSAgICBm
b3IgKGludCBpaSA9IDA7IGlpIDwgc2l6ZTsgKytpaSkKLSAgICAgICAgbV9ib29sQXJyYXlbaWld
ID0gdmFsdWVbaWldOwotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhmbG9hdCB2YWx1
ZSkKLSAgICA6IG1fdHlwZShrVHlwZUZsb2F0KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwg
bV9mbG9hdCh2YWx1ZSkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0g
ICAgLCBtX2ludDY0KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKGludCB2
YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZUludCkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAs
IG1fZmxvYXQoMCkKLSAgICAsIG1faW50KHZhbHVlKQotICAgICwgbV91bnNpZ25lZEludCgwKQot
ICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbygpCi0g
ICAgOiBtX3R5cGUoa1R5cGVOdWxsKQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9h
dCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50
NjQoMCkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oY29uc3QgU3RyaW5nJiB2
YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVN0cmluZykKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAg
ICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3N0cmluZyh2YWx1ZSkKLSAg
ICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLXsKLX0KLQotV2ViR0xHZXRJ
bmZvOjpXZWJHTEdldEluZm8odW5zaWduZWQgaW50IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBl
VW5zaWduZWRJbnQpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAg
LCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCh2YWx1ZSkKLSAgICAsIG1faW50NjQoMCkK
LXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8obG9uZyBsb25nIHZhbHVlKQotICAg
IDogbV90eXBlKGtUeXBlSW50NjQpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0
KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2
NCh2YWx1ZSkKLXsKLX0KLQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRy
PFdlYkdMQnVmZmVyPiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMQnVmZmVyKQotICAg
ICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAs
IG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xCdWZmZXIo
dmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8Rmxv
YXQzMkFycmF5PiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMRmxvYXRBcnJheSkKLSAg
ICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAg
LCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmdsRmxvYXRB
cnJheSh2YWx1ZSkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0
cjxXZWJHTEZyYW1lYnVmZmVyPiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMRnJhbWVi
dWZmZXIpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2lu
dCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93
ZWJnbEZyYW1lYnVmZmVyKHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5m
byhQYXNzUmVmUHRyPEludDMyQXJyYXk+IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xJ
bnRBcnJheSkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1f
aW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBt
X3dlYmdsSW50QXJyYXkodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZv
KFBhc3NSZWZQdHI8V2ViR0xQcm9ncmFtPiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdM
UHJvZ3JhbSkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1f
aW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBt
X3dlYmdsUHJvZ3JhbSh2YWx1ZSkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8o
UGFzc1JlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVX
ZWJHTFJlbmRlcmJ1ZmZlcikKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkK
LSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDAp
Ci0gICAgLCBtX3dlYmdsUmVuZGVyYnVmZmVyKHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86
OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMVGV4dHVyZT4gdmFsdWUpCi0gICAgOiBtX3R5
cGUoa1R5cGVXZWJHTFRleHR1cmUpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0
KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2
NCgwKQotICAgICwgbV93ZWJnbFRleHR1cmUodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6
V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDhBcnJheT4gdmFsdWUpCi0gICAgOiBtX3R5cGUo
a1R5cGVXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwg
bV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAs
IG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xVbnNpZ25lZEJ5dGVBcnJheSh2YWx1ZSkKLXsKLX0K
LQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gdmFs
dWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJHTFVuc2lnbmVkSW50QXJyYXkpCi0gICAgLCBtX2Jv
b2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNp
Z25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbFVuc2lnbmVkSW50QXJy
YXkodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTKQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9h
dCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50
NjQoMCkKLSAgICAsIG1fd2ViZ2xWZXJ0ZXhBcnJheU9iamVjdE9FUyh2YWx1ZSkKLXsKLX0KLQot
I2lmIEVOQUJMRShXRUJHTDIpCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRy
PFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdCkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkK
LSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDAp
Ci0gICAgLCBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3QodmFsdWUpCi17Ci19Ci0jZW5kaWYKLQot
V2ViR0xHZXRJbmZvOjp+V2ViR0xHZXRJbmZvKCkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpUeXBl
IFdlYkdMR2V0SW5mbzo6Z2V0VHlwZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdHlwZTsKLX0K
LQotYm9vbCBXZWJHTEdldEluZm86OmdldEJvb2woKSBjb25zdAotewotICAgIEFTU0VSVChnZXRU
eXBlKCkgPT0ga1R5cGVCb29sKTsKLSAgICByZXR1cm4gbV9ib29sOwotfQotCi1jb25zdCBWZWN0
b3I8Ym9vbD4mIFdlYkdMR2V0SW5mbzo6Z2V0Qm9vbEFycmF5KCkgY29uc3QKLXsKLSAgICBBU1NF
UlQoZ2V0VHlwZSgpID09IGtUeXBlQm9vbEFycmF5KTsKLSAgICByZXR1cm4gbV9ib29sQXJyYXk7
Ci19Ci0KLWZsb2F0IFdlYkdMR2V0SW5mbzo6Z2V0RmxvYXQoKSBjb25zdAotewotICAgIEFTU0VS
VChnZXRUeXBlKCkgPT0ga1R5cGVGbG9hdCk7Ci0gICAgcmV0dXJuIG1fZmxvYXQ7Ci19Ci0KLWlu
dCBXZWJHTEdldEluZm86OmdldEludCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9
PSBrVHlwZUludCk7Ci0gICAgcmV0dXJuIG1faW50OwotfQotCi1jb25zdCBTdHJpbmcmIFdlYkdM
R2V0SW5mbzo6Z2V0U3RyaW5nKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtU
eXBlU3RyaW5nKTsKLSAgICByZXR1cm4gbV9zdHJpbmc7Ci19Ci0KLXVuc2lnbmVkIGludCBXZWJH
TEdldEluZm86OmdldFVuc2lnbmVkSW50KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgp
ID09IGtUeXBlVW5zaWduZWRJbnQpOwotICAgIHJldHVybiBtX3Vuc2lnbmVkSW50OwotfQotCi1s
b25nIGxvbmcgV2ViR0xHZXRJbmZvOjpnZXRJbnQ2NCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdl
dFR5cGUoKSA9PSBrVHlwZUludDY0KTsKLSAgICByZXR1cm4gbV9pbnQ2NDsKLX0KLQotV2ViR0xC
dWZmZXIqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xCdWZmZXIoKSBjb25zdAotewotICAgIEFTU0VS
VChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTEJ1ZmZlcik7Ci0gICAgcmV0dXJuIG1fd2ViZ2xCdWZm
ZXIuZ2V0KCk7Ci19Ci0KLUZsb2F0MzJBcnJheSogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTEZsb2F0
QXJyYXkoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTEZsb2F0
QXJyYXkpOwotICAgIHJldHVybiBtX3dlYmdsRmxvYXRBcnJheS5nZXQoKTsKLX0KLQotV2ViR0xG
cmFtZWJ1ZmZlciogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTEZyYW1lYnVmZmVyKCkgY29uc3QKLXsK
LSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xGcmFtZWJ1ZmZlcik7Ci0gICAgcmV0
dXJuIG1fd2ViZ2xGcmFtZWJ1ZmZlci5nZXQoKTsKLX0KLQotSW50MzJBcnJheSogV2ViR0xHZXRJ
bmZvOjpnZXRXZWJHTEludEFycmF5KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09
IGtUeXBlV2ViR0xJbnRBcnJheSk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xJbnRBcnJheS5nZXQoKTsK
LX0KLQotV2ViR0xQcm9ncmFtKiBXZWJHTEdldEluZm86OmdldFdlYkdMUHJvZ3JhbSgpIGNvbnN0
Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMUHJvZ3JhbSk7Ci0gICAgcmV0
dXJuIG1fd2ViZ2xQcm9ncmFtLmdldCgpOwotfQotCi1XZWJHTFJlbmRlcmJ1ZmZlciogV2ViR0xH
ZXRJbmZvOjpnZXRXZWJHTFJlbmRlcmJ1ZmZlcigpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5
cGUoKSA9PSBrVHlwZVdlYkdMUmVuZGVyYnVmZmVyKTsKLSAgICByZXR1cm4gbV93ZWJnbFJlbmRl
cmJ1ZmZlci5nZXQoKTsKLX0KLQotV2ViR0xUZXh0dXJlKiBXZWJHTEdldEluZm86OmdldFdlYkdM
VGV4dHVyZSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMVGV4
dHVyZSk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xUZXh0dXJlLmdldCgpOwotfQotCi1VaW50OEFycmF5
KiBXZWJHTEdldEluZm86OmdldFdlYkdMVW5zaWduZWRCeXRlQXJyYXkoKSBjb25zdAotewotICAg
IEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KTsKLSAgICBy
ZXR1cm4gbV93ZWJnbFVuc2lnbmVkQnl0ZUFycmF5LmdldCgpOwotfQotCi1VaW50MzJBcnJheSog
V2ViR0xHZXRJbmZvOjpnZXRXZWJHTFVuc2lnbmVkSW50QXJyYXkoKSBjb25zdAotewotICAgIEFT
U0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTFVuc2lnbmVkSW50QXJyYXkpOwotICAgIHJldHVy
biBtX3dlYmdsVW5zaWduZWRJbnRBcnJheS5nZXQoKTsKLX0KLQotV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUyogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKCkgY29u
c3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUyk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xWZXJ0ZXhBcnJheU9iamVjdE9FUy5nZXQoKTsKLX0K
LQotI2lmIEVOQUJMRShXRUJHTDIpCi1XZWJHTFZlcnRleEFycmF5T2JqZWN0KiBXZWJHTEdldElu
Zm86OmdldFdlYkdMVmVydGV4QXJyYXlPYmplY3QoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRU
eXBlKCkgPT0ga1R5cGVXZWJHTFZlcnRleEFycmF5T2JqZWN0KTsKLSAgICByZXR1cm4gbV93ZWJn
bFZlcnRleEFycmF5T2JqZWN0LmdldCgpOwotfQotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xHZXRJbmZvLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2ZjY5M2M1
ZDc2MzYyMjNlZDVjYWUzYzM5ZmI2MDAzYmFmNzhmY2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xH
ZXRJbmZvLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJX
ZWJHTEJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkdMRnJhbWVidWZmZXIuaCIKLSNpbmNsdWRlICJX
ZWJHTFByb2dyYW0uaCIKLSNpbmNsdWRlICJXZWJHTFJlbmRlcmJ1ZmZlci5oIgotI2luY2x1ZGUg
IldlYkdMVGV4dHVyZS5oIgotI2lmIEVOQUJMRShXRUJHTDIpCi0jaW5jbHVkZSAiV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdC5oIgotI2VuZGlmCi0jaW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUy5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvRmxvYXQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVu
dGltZS9JbnQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9VaW50MzJBcnJheS5oPgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvVWludDhBcnJheS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIEEgdGFnZ2VkIHVuaW9uIHJlcHJlc2VudGlu
ZyB0aGUgcmVzdWx0IG9mIGdldCBxdWVyaWVzIGxpa2UKLS8vIGdldFBhcmFtZXRlciAoZW5jb21w
YXNzaW5nIGdldEJvb2xlYW52LCBnZXRJbnRlZ2VydiwgZ2V0RmxvYXR2KSBhbmQKLS8vIHNpbWls
YXIgdmFyaWFudHMuIEZvciByZWZlcmVuY2UgY291bnRlZCB0eXBlcywgaW5jcmVtZW50cyBhbmQK
LS8vIGRlY3JlbWVudHMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgdGFyZ2V0IG9iamVjdC4K
LQotY2xhc3MgV2ViR0xHZXRJbmZvIGZpbmFsIHsKLXB1YmxpYzoKLSAgICBlbnVtIFR5cGUgewot
ICAgICAgICBrVHlwZUJvb2wsCi0gICAgICAgIGtUeXBlQm9vbEFycmF5LAotICAgICAgICBrVHlw
ZUZsb2F0LAotICAgICAgICBrVHlwZUludCwKLSAgICAgICAga1R5cGVOdWxsLAotICAgICAgICBr
VHlwZVN0cmluZywKLSAgICAgICAga1R5cGVVbnNpZ25lZEludCwKLSAgICAgICAga1R5cGVJbnQ2
NCwKLSAgICAgICAga1R5cGVXZWJHTEJ1ZmZlciwKLSAgICAgICAga1R5cGVXZWJHTEZsb2F0QXJy
YXksCi0gICAgICAgIGtUeXBlV2ViR0xGcmFtZWJ1ZmZlciwKLSAgICAgICAga1R5cGVXZWJHTElu
dEFycmF5LAotICAgICAgICBrVHlwZVdlYkdMT2JqZWN0QXJyYXksCi0gICAgICAgIGtUeXBlV2Vi
R0xQcm9ncmFtLAotICAgICAgICBrVHlwZVdlYkdMUmVuZGVyYnVmZmVyLAotICAgICAgICBrVHlw
ZVdlYkdMVGV4dHVyZSwKLSAgICAgICAga1R5cGVXZWJHTFVuc2lnbmVkQnl0ZUFycmF5LAotICAg
ICAgICBrVHlwZVdlYkdMVW5zaWduZWRJbnRBcnJheSwKLSAgICAgICAga1R5cGVXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTLAotICAgICAgICBrVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3QsCi0g
ICAgfTsKLQotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhib29sIHZhbHVlKTsKLSAgICBXZWJH
TEdldEluZm8oY29uc3QgYm9vbCogdmFsdWUsIGludCBzaXplKTsKLSAgICBleHBsaWNpdCBXZWJH
TEdldEluZm8oZmxvYXQgdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhpbnQgdmFs
dWUpOwotICAgIC8vIFJlcHJlc2VudHMgdGhlIG51bGwgdmFsdWUgYW5kIHR5cGUuCi0gICAgV2Vi
R0xHZXRJbmZvKCk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKGNvbnN0IFN0cmluZyYgdmFs
dWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyh1bnNpZ25lZCBpbnQgdmFsdWUpOwotICAg
IGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhsb25nIGxvbmcgdmFsdWUpOwotICAgIGV4cGxpY2l0IFdl
YkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQg
V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PiB2YWx1ZSk7Ci0gICAgZXhwbGlj
aXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4gdmFsdWUpOwotICAg
IGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEludDMyQXJyYXk+IHZhbHVlKTsKLSAg
ICAvLyBGSVhNRTogaW1wbGVtZW50IFdlYkdMT2JqZWN0QXJyYXkKLSAgICAvLyBXZWJHTEdldElu
Zm8oUGFzc1JlZlB0cjxXZWJHTE9iamVjdEFycmF5PiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2Vi
R0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xQcm9ncmFtPiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQg
V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+IHZhbHVlKTsKLSAgICBl
eHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+IHZhbHVlKTsKLSAg
ICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxVaW50OEFycmF5PiB2YWx1ZSk7Ci0g
ICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDMyQXJyYXk+IHZhbHVlKTsK
LSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTPiB2YWx1ZSk7Ci0jaWYgRU5BQkxFKFdFQkdMMikKLSAgICBleHBsaWNpdCBXZWJHTEdl
dEluZm8oUGFzc1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiB2YWx1ZSk7Ci0jZW5kaWYK
LQotICAgIH5XZWJHTEdldEluZm8oKTsKLQotICAgIFR5cGUgZ2V0VHlwZSgpIGNvbnN0OwotCi0g
ICAgYm9vbCBnZXRCb29sKCkgY29uc3Q7Ci0gICAgY29uc3QgVmVjdG9yPGJvb2w+JiBnZXRCb29s
QXJyYXkoKSBjb25zdDsKLSAgICBmbG9hdCBnZXRGbG9hdCgpIGNvbnN0OwotICAgIGludCBnZXRJ
bnQoKSBjb25zdDsKLSAgICBjb25zdCBTdHJpbmcmIGdldFN0cmluZygpIGNvbnN0OwotICAgIHVu
c2lnbmVkIGludCBnZXRVbnNpZ25lZEludCgpIGNvbnN0OwotICAgIGxvbmcgbG9uZyBnZXRJbnQ2
NCgpIGNvbnN0OwotICAgIFdlYkdMQnVmZmVyKiBnZXRXZWJHTEJ1ZmZlcigpIGNvbnN0OwotICAg
IEZsb2F0MzJBcnJheSogZ2V0V2ViR0xGbG9hdEFycmF5KCkgY29uc3Q7Ci0gICAgV2ViR0xGcmFt
ZWJ1ZmZlciogZ2V0V2ViR0xGcmFtZWJ1ZmZlcigpIGNvbnN0OwotICAgIEludDMyQXJyYXkqIGdl
dFdlYkdMSW50QXJyYXkoKSBjb25zdDsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50IFdlYkdMT2Jq
ZWN0QXJyYXkKLSAgICAvLyBXZWJHTE9iamVjdEFycmF5KiBnZXRXZWJHTE9iamVjdEFycmF5KCkg
Y29uc3Q7Ci0gICAgV2ViR0xQcm9ncmFtKiBnZXRXZWJHTFByb2dyYW0oKSBjb25zdDsKLSAgICBX
ZWJHTFJlbmRlcmJ1ZmZlciogZ2V0V2ViR0xSZW5kZXJidWZmZXIoKSBjb25zdDsKLSAgICBXZWJH
TFRleHR1cmUqIGdldFdlYkdMVGV4dHVyZSgpIGNvbnN0OwotICAgIFVpbnQ4QXJyYXkqIGdldFdl
YkdMVW5zaWduZWRCeXRlQXJyYXkoKSBjb25zdDsKLSAgICBVaW50MzJBcnJheSogZ2V0V2ViR0xV
bnNpZ25lZEludEFycmF5KCkgY29uc3Q7Ci0gICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyog
Z2V0V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygpIGNvbnN0OwotI2lmIEVOQUJMRShXRUJHTDIp
Ci0gICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCogZ2V0V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCgp
IGNvbnN0OwotI2VuZGlmCi0KLXByaXZhdGU6Ci0gICAgVHlwZSBtX3R5cGU7Ci0gICAgYm9vbCBt
X2Jvb2w7Ci0gICAgVmVjdG9yPGJvb2w+IG1fYm9vbEFycmF5OwotICAgIGZsb2F0IG1fZmxvYXQ7
Ci0gICAgaW50IG1faW50OwotICAgIFN0cmluZyBtX3N0cmluZzsKLSAgICB1bnNpZ25lZCBpbnQg
bV91bnNpZ25lZEludDsKLSAgICBsb25nIGxvbmcgbV9pbnQ2NDsKLSAgICBSZWZQdHI8V2ViR0xC
dWZmZXI+IG1fd2ViZ2xCdWZmZXI7Ci0gICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gbV93ZWJnbEZs
b2F0QXJyYXk7Ci0gICAgUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IG1fd2ViZ2xGcmFtZWJ1ZmZl
cjsKLSAgICBSZWZQdHI8SW50MzJBcnJheT4gbV93ZWJnbEludEFycmF5OwotICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQgV2ViR0xPYmplY3RBcnJheQotICAgIC8vIFJlZlB0cjxXZWJHTE9iamVjdEFy
cmF5PiBtX3dlYmdsT2JqZWN0QXJyYXk7Ci0gICAgUmVmUHRyPFdlYkdMUHJvZ3JhbT4gbV93ZWJn
bFByb2dyYW07Ci0gICAgUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPiBtX3dlYmdsUmVuZGVyYnVm
ZmVyOwotICAgIFJlZlB0cjxXZWJHTFRleHR1cmU+IG1fd2ViZ2xUZXh0dXJlOwotICAgIFJlZlB0
cjxVaW50OEFycmF5PiBtX3dlYmdsVW5zaWduZWRCeXRlQXJyYXk7Ci0gICAgUmVmUHRyPFVpbnQz
MkFycmF5PiBtX3dlYmdsVW5zaWduZWRJbnRBcnJheTsKLSAgICBSZWZQdHI8V2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUz4gbV93ZWJnbFZlcnRleEFycmF5T2JqZWN0T0VTOwotI2lmIEVOQUJMRShX
RUJHTDIpCi0gICAgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IG1fd2ViZ2xWZXJ0ZXhB
cnJheU9iamVjdDsKLSNlbmRpZgotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3BwCmluZGV4IDVkOTIwOTVmZmYxNzg2
YjIyNWMyODVhOTcwM2M2Njk5NjFiNTk3NWUuLjQ4ZjkzOWUwZGE4ZjRlMzJjODIyZDI5MTIxMjRm
ZmNiZTRlNWFhOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5j
cHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjQsMTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYkdMT2JqZWN0LmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNpbmNsdWRlICJXZWJHTE9i
amVjdC5oIgotCiAjaW5jbHVkZSAiV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCIKICNpbmNs
dWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMRGVidWdSZW5kZXJlcklu
Zm8uaCIKQEAgLTM4LDIxICszNywxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdlYkdM
T2JqZWN0OjpXZWJHTE9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJikKLSAgICA6IG1f
b2JqZWN0KDApCi0gICAgLCBtX2F0dGFjaG1lbnRDb3VudCgwKQotICAgICwgbV9kZWxldGVkKGZh
bHNlKQotewotfQotCi1XZWJHTE9iamVjdDo6fldlYkdMT2JqZWN0KCkKLXsKLX0KLQogdm9pZCBX
ZWJHTE9iamVjdDo6c2V0T2JqZWN0KFBsYXRmb3JtM0RPYmplY3Qgb2JqZWN0KQogewotICAgIC8v
IG9iamVjdD09MCAmJiBtX2RlbGV0ZWQ9PWZhbHNlIGluZGljYXRpbmcgYW4gdW5pbml0aWFsaXpl
ZCBzdGF0ZTsKLSAgICBBU1NFUlQoIW1fb2JqZWN0ICYmICFtX2RlbGV0ZWQpOworICAgIEFTU0VS
VCghbV9vYmplY3QpOworICAgIEFTU0VSVCghbV9kZWxldGVkKTsKICAgICBtX29iamVjdCA9IG9i
amVjdDsKIH0KIApAQCAtNzksOCArNjcsNyBAQCB2b2lkIFdlYkdMT2JqZWN0OjpkZWxldGVPYmpl
Y3QoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCkKIHZvaWQgV2ViR0xPYmplY3Q6OmRldGFj
aCgpCiB7CiAgICAgbV9hdHRhY2htZW50Q291bnQgPSAwOyAvLyBNYWtlIHN1cmUgT3BlbkdMIHJl
c291cmNlIGlzIGRlbGV0ZWQuCi0gICAgfQotCit9CiAKIHZvaWQgV2ViR0xPYmplY3Q6Om9uRGV0
YWNoZWQoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTE9iamVjdC5oCmluZGV4IDdiMzIzZDZjOWY3YTc4YWY0YjJmNDNlNjUwM2Y5
ZTAxMjllY2M3NDcuLjY5ZGJiNWFhMDdlYjkyOTk1ZDNjZWU3MTFmNGIyODdjNjYzZTQ1YTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxNyArMjYsMTUgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKLSNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdyYXBo
aWNzQ29udGV4dDNEOwogY2xhc3MgV2ViR0xDb250ZXh0R3JvdXA7CiBjbGFzcyBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOwogCiBjbGFzcyBXZWJHTE9iamVjdCA6IHB1YmxpYyBSZWZDb3VudGVk
PFdlYkdMT2JqZWN0PiB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViR0xPYmplY3QoKTsKKyAg
ICB2aXJ0dWFsIH5XZWJHTE9iamVjdCgpIHsgfQogCiAgICAgUGxhdGZvcm0zRE9iamVjdCBvYmpl
Y3QoKSBjb25zdCB7IHJldHVybiBtX29iamVjdDsgfQogCkBAIC01Nyw3ICs1NSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgdmFsaWRhdGUoY29uc3QgV2ViR0xDb250ZXh0R3JvdXAqLCBj
b25zdCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJikgY29uc3QgPSAwOwogCiBwcm90ZWN0ZWQ6
Ci0gICAgV2ViR0xPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOworICAgIFdlYkdM
T2JqZWN0KCkgPSBkZWZhdWx0OwogCiAgICAgLy8gc2V0T2JqZWN0IHNob3VsZCBiZSBvbmx5IGNh
bGxlZCBvbmNlIHJpZ2h0IGFmdGVyIGNyZWF0aW5nIGEgV2ViR0xPYmplY3QuCiAgICAgdm9pZCBz
ZXRPYmplY3QoUGxhdGZvcm0zRE9iamVjdCk7CkBAIC03Miw5ICs3MCw5IEBAIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIEdyYXBoaWNzQ29udGV4dDNEKiBnZXRBR3JhcGhpY3NDb250ZXh0M0QoKSBj
b25zdCA9IDA7CiAKIHByaXZhdGU6Ci0gICAgUGxhdGZvcm0zRE9iamVjdCBtX29iamVjdDsKLSAg
ICB1bnNpZ25lZCBtX2F0dGFjaG1lbnRDb3VudDsKLSAgICBib29sIG1fZGVsZXRlZDsKKyAgICBQ
bGF0Zm9ybTNET2JqZWN0IG1fb2JqZWN0IHsgMCB9OworICAgIHVuc2lnbmVkIG1fYXR0YWNobWVu
dENvdW50IHsgMCB9OworICAgIGJvb2wgbV9kZWxldGVkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dy
YW0uY3BwCmluZGV4IDc3YWZlOTRjNDU4NWExYmIzZTE3NzZjODkxNTNiODRiYjg2YzE3MDMuLmMy
NDMzNWRjNDY3ZDc2N2JhZmE4M2ViY2YxMTlmMzJlYTNhNWQzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcApAQCAtMjQsMTMgKzI0LDEzIEBACiAgKi8K
IAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogCiAjaWYg
RU5BQkxFKFdFQkdMKQogCi0jaW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCi0KICNpbmNsdWRlICJX
ZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
aCIKKyNpbmNsdWRlICJXZWJHTFNoYWRlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTQxLDkgKzQxLDYgQEAgUmVmPFdlYkdMUHJvZ3JhbT4gV2ViR0xQcm9ncmFtOjpjcmVhdGUoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4KQogCiBXZWJHTFByb2dyYW06OldlYkdMUHJvZ3Jh
bShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgpCiAgICAgOiBXZWJHTFNoYXJlZE9iamVj
dChjdHgpCi0gICAgLCBtX2xpbmtTdGF0dXMoZmFsc2UpCi0gICAgLCBtX2xpbmtDb3VudCgwKQot
ICAgICwgbV9pbmZvVmFsaWQodHJ1ZSkKIHsKICAgICBzZXRPYmplY3QoY3R4LmdyYXBoaWNzQ29u
dGV4dDNEKCktPmNyZWF0ZVByb2dyYW0oKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUHJvZ3JhbS5oCmluZGV4IDcxN2NjZTEzOGM0MjhjNTdjZGRiN2M1NWMxNDY4NWZhNDYy
MjMyZjMuLmVhYjc2Yzg5NzUxY2JlNDkyYjQ2ZTc0Y2ZlOGQxOTU4MDllMTMxYTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI1LDE3ICsyNSwxNiBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIldlYkdMU2hhZGVyLmgiCiAjaW5jbHVkZSAiV2ViR0xT
aGFyZWRPYmplY3QuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgV2ViR0xTaGFkZXI7CisKIGNsYXNzIFdlYkdMUHJvZ3JhbSBmaW5hbCA6
IHB1YmxpYyBXZWJHTFNoYXJlZE9iamVjdCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViR0xQ
cm9ncmFtKCk7Ci0KICAgICBzdGF0aWMgUmVmPFdlYkdMUHJvZ3JhbT4gY3JlYXRlKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmKTsKKyAgICB2aXJ0dWFsIH5XZWJHTFByb2dyYW0oKTsKIAogICAg
IHVuc2lnbmVkIG51bUFjdGl2ZUF0dHJpYkxvY2F0aW9ucygpOwogICAgIEdDM0RpbnQgZ2V0QWN0
aXZlQXR0cmliTG9jYXRpb24oR0MzRHVpbnQgaW5kZXgpOwpAQCAtNjMsMjMgKzYyLDIwIEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQ
bGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBib29sIGlzUHJvZ3Jh
bSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLQogICAgIHZvaWQgY2FjaGVBY3Rp
dmVBdHRyaWJMb2NhdGlvbnMoR3JhcGhpY3NDb250ZXh0M0QqKTsKICAgICB2b2lkIGNhY2hlSW5m
b0lmTmVlZGVkKCk7CiAKICAgICBWZWN0b3I8R0MzRGludD4gbV9hY3RpdmVBdHRyaWJMb2NhdGlv
bnM7CiAKLSAgICBHQzNEaW50IG1fbGlua1N0YXR1czsKKyAgICBHQzNEaW50IG1fbGlua1N0YXR1
cyB7IDAgfTsKIAotICAgIC8vIFRoaXMgaXMgdXNlZCB0byB0cmFjayB3aGV0aGVyIGEgV2ViR0xV
bmlmb3JtTG9jYXRpb24gYmVsb25ncyB0byB0aGlzCi0gICAgLy8gcHJvZ3JhbSBvciBub3QuCi0g
ICAgdW5zaWduZWQgbV9saW5rQ291bnQ7CisgICAgLy8gVGhpcyBpcyB1c2VkIHRvIHRyYWNrIHdo
ZXRoZXIgYSBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBiZWxvbmdzIHRvIHRoaXMgcHJvZ3JhbSBvciBu
b3QuCisgICAgdW5zaWduZWQgbV9saW5rQ291bnQgeyAwIH07CiAKICAgICBSZWZQdHI8V2ViR0xT
aGFkZXI+IG1fdmVydGV4U2hhZGVyOwogICAgIFJlZlB0cjxXZWJHTFNoYWRlcj4gbV9mcmFnbWVu
dFNoYWRlcjsKIAotICAgIGJvb2wgbV9pbmZvVmFsaWQ7CisgICAgYm9vbCBtX2luZm9WYWxpZCB7
IHRydWUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUXVlcnkuaAppbmRleCA0NmRiNTkyYTg1YWY2MmZlODBmNzFmMzczYmU1OTE2
YmNiOWMxODU5Li4zY2I3NjE3Nzc3NzUyMDFiY2EwMWFhNjA2YzViYzE5NTRhMjZmMjcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDE3ICszMSwxMiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdMUXVlcnkgZmluYWwgOiBwdWJsaWMgV2ViR0xT
aGFyZWRPYmplY3QgewogcHVibGljOgotICAgIHZpcnR1YWwgfldlYkdMUXVlcnkoKTsKLQogICAg
IHN0YXRpYyBSZWY8V2ViR0xRdWVyeT4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
KTsKKyAgICB2aXJ0dWFsIH5XZWJHTFF1ZXJ5KCk7CiAKIHByb3RlY3RlZDoKLSAgICBXZWJHTFF1
ZXJ5KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKLQorICAgIGV4cGxpY2l0IFdlYkdMUXVl
cnkoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwogICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1w
bChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwotCi1wcml2
YXRlOgotICAgIGJvb2wgaXNRdWVyeSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGIwNmQ2YzljODZhMzE2
YzIwMTk5MzVjZTg0MTM0ODA5ZTMzNDE2YWYuLjdkZmZjMzU3YTE3MmI1OTExYWNmMGIwODVmMmVk
MjE4ODYyNWE5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCw5ICsyNCw5IEBACiAgKi8KIAogI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogCiAjaWYgRU5BQkxF
KFdFQkdMKQotI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogCiAjaW5jbHVkZSAi
QU5HTEVJbnN0YW5jZWRBcnJheXMuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgpAQCAtNzAs
MTYgKzcwLDE2IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
KEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIEdyCiB7CiB9CiAKLVdlYkdMUmVuZGVy
aW5nQ29udGV4dDo6V2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBwYXNz
ZWRDYW52YXMsIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQsCi0gICAgR3Jh
cGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpIDogV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZShwYXNzZWRDYW52YXMsIGNvbnRleHQsIGF0dHJpYnV0ZXMpCitXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OldlYkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2Vk
Q2FudmFzLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCisgICAgOiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
KHBhc3NlZENhbnZhcywgV1RGTW92ZShjb250ZXh0KSwgYXR0cmlidXRlcykKIHsKICAgICBpbml0
aWFsaXplVmVydGV4QXJyYXlPYmplY3RzKCk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0Ojppbml0aWFsaXplVmVydGV4QXJyYXlPYmplY3RzKCkKIHsKLSAgICBtX2RlZmF1bHRWZXJ0
ZXhBcnJheU9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmNyZWF0ZSgqdGhpcywg
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6VkFPVHlwZURlZmF1bHQpOwotICAgIGFkZENvbnRl
eHRPYmplY3QobV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QuZ2V0KCkpOworICAgIG1fZGVmYXVs
dFZlcnRleEFycmF5T2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKCp0
aGlzLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpUeXBlOjpEZWZhdWx0KTsKKyAgICBhZGRD
b250ZXh0T2JqZWN0KCptX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCk7CiAgICAgbV9ib3VuZFZl
cnRleEFycmF5T2JqZWN0ID0gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiAgICAgaWYgKCFp
c0dMRVMyQ29tcGxpYW50KCkpCiAgICAgICAgIGluaXRWZXJ0ZXhBdHRyaWIwKCk7CkBAIC05MCw5
OSArOTAsOTEgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0
ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGlu
ZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKLSAgICBpZiAoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShuYW1lLCAiRVhUX2JsZW5kX21pbm1heCIpCi0gICAgICAgICYmIG1fY29udGV4
dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfYmxlbmRfbWlubWF4IikpIHsKKyAg
ICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX2JsZW5kX21pbm1heCIpKSB7
CiAgICAgICAgIGlmICghbV9leHRCbGVuZE1pbk1heCkgewotICAgICAgICAgICAgbV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX2JsZW5kX21pbm1heCIpOwot
ICAgICAgICAgICAgbV9leHRCbGVuZE1pbk1heCA9IHN0ZDo6bWFrZV91bmlxdWU8RVhUQmxlbmRN
aW5NYXg+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fZXh0QmxlbmRNaW5NYXggPSBlbmFibGVTdXBw
b3J0ZWRFeHRlbnNpb24oIkdMX0VYVF9ibGVuZF9taW5tYXgiKQorICAgICAgICAgICAgICAgID8g
c3RkOjptYWtlX3VuaXF1ZTxFWFRCbGVuZE1pbk1heD4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAg
ICAgfQogICAgICAgICByZXR1cm4gbV9leHRCbGVuZE1pbk1heC5nZXQoKTsKICAgICB9Ci0gICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9zUkdCIikKLSAgICAgICAgJiYg
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9zUkdCIikpIHsKKyAg
ICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX3NSR0IiKSkgewogICAgICAg
ICBpZiAoIW1fZXh0c1JHQikgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25z
KCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3NSR0IiKTsKLSAgICAgICAgICAgIG1fZXh0c1JHQiA9
IHN0ZDo6bWFrZV91bmlxdWU8RVhUc1JHQj4oKnRoaXMpOworICAgICAgICAgICAgbV9leHRzUkdC
ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9FWFRfc1JHQiIpCisgICAgICAgICAgICAg
ICAgPyBzdGQ6Om1ha2VfdW5pcXVlPEVYVHNSR0I+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuIG1fZXh0c1JHQi5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9mcmFnX2RlcHRoIikKLSAgICAgICAgJiYgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9mcmFnX2RlcHRoIikpIHsK
KyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX2ZyYWdfZGVwdGgiKSkg
ewogICAgICAgICBpZiAoIW1fZXh0RnJhZ0RlcHRoKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9FWFRfZnJhZ19kZXB0aCIpOwotICAg
ICAgICAgICAgbV9leHRGcmFnRGVwdGggPSBzdGQ6Om1ha2VfdW5pcXVlPEVYVEZyYWdEZXB0aD4o
KnRoaXMpOworICAgICAgICAgICAgbV9leHRGcmFnRGVwdGggPSBlbmFibGVTdXBwb3J0ZWRFeHRl
bnNpb24oIkdMX0VYVF9mcmFnX2RlcHRoIikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91
bmlxdWU8RVhURnJhZ0RlcHRoPigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAg
IHJldHVybiBtX2V4dEZyYWdEZXB0aC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKQotICAgICAgICAmJiAo
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9zaGFkZXJfdGV4dHVy
ZV9sb2QiKSB8fCBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfQVJCX3No
YWRlcl90ZXh0dXJlX2xvZCIpKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5h
bWUsICJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIikpIHsKICAgICAgICAgaWYgKCFtX2V4dFNoYWRl
clRleHR1cmVMT0QpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVu
c3VyZUVuYWJsZWQoIkdMX0VYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKTsKLSAgICAgICAgICAgIG1f
ZXh0U2hhZGVyVGV4dHVyZUxPRCA9IHN0ZDo6bWFrZV91bmlxdWU8RVhUU2hhZGVyVGV4dHVyZUxP
RD4oKnRoaXMpOworICAgICAgICAgICAgaWYgKCEobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
c3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF9zaGFkZXJfdGV4dHVyZV9sb2QiIH0pIHx8
IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9B
UkJfc2hhZGVyX3RleHR1cmVfbG9kIiB9KSkpCisgICAgICAgICAgICAgICAgbV9leHRTaGFkZXJU
ZXh0dXJlTE9EID0gbnVsbHB0cjsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAg
IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoQVNDSUlMaXRlcmFsIHsg
IkdMX0VYVF9zaGFkZXJfdGV4dHVyZV9sb2QiIH0pOworICAgICAgICAgICAgICAgIG1fZXh0U2hh
ZGVyVGV4dHVyZUxPRCA9IHN0ZDo6bWFrZV91bmlxdWU8RVhUU2hhZGVyVGV4dHVyZUxPRD4oKnRo
aXMpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dFNoYWRl
clRleHR1cmVMT0QuZ2V0KCk7CiAgICAgfQotICAgIGlmICgoZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShuYW1lLCAiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikgfHwgZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lUX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIp
KQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhU
X3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikgfHwgZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lUX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ry
b3BpYyIpKSB7CiAgICAgICAgIGlmICghbV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMpIHsK
LSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdM
X0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOwotICAgICAgICAgICAgbV9leHRUZXh0
dXJlRmlsdGVyQW5pc290cm9waWMgPSBzdGQ6Om1ha2VfdW5pcXVlPEVYVFRleHR1cmVGaWx0ZXJB
bmlzb3Ryb3BpYz4oKnRoaXMpOworICAgICAgICAgICAgbV9leHRUZXh0dXJlRmlsdGVyQW5pc290
cm9waWMgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9h
bmlzb3Ryb3BpYyIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPEVYVFRleHR1
cmVGaWx0ZXJBbmlzb3Ryb3BpYz4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gbV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuZ2V0KCk7CiAgICAgfQotICAg
IGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2
ZXMiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xf
T0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShuYW1lLCAiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIikpIHsKICAgICAgICAgaWYgKCFt
X29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpOwot
ICAgICAgICAgICAgbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzID0gc3RkOjptYWtlX3VuaXF1ZTxP
RVNTdGFuZGFyZERlcml2YXRpdmVzPigqdGhpcyk7CisgICAgICAgICAgICBtX29lc1N0YW5kYXJk
RGVyaXZhdGl2ZXMgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oIkdMX09FU19zdGFuZGFyZF9k
ZXJpdmF0aXZlcyIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU1N0YW5k
YXJkRGVyaXZhdGl2ZXM+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcy5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0IikKLSAgICAgICAgJiYg
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0
IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVf
ZmxvYXQiKSkgewogICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUZsb2F0KSB7Ci0gICAgICAgICAg
ICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVy
ZV9mbG9hdCIpOwotICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXQgPSBzdGQ6Om1ha2VfdW5p
cXVlPE9FU1RleHR1cmVGbG9hdD4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxv
YXQgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oIkdMX09FU190ZXh0dXJlX2Zsb2F0IikKKyAg
ICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0PigqdGhpcykg
OiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVGbG9hdC5n
ZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190
ZXh0dXJlX2Zsb2F0X2xpbmVhciIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkgeworICAgIGlmIChl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkg
ewogICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUZsb2F0TGluZWFyKSB7Ci0gICAgICAgICAgICBt
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9m
bG9hdF9saW5lYXIiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyID0gc3Rk
OjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXRMaW5lYXI+KCp0aGlzKTsKKyAgICAgICAgICAg
IG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9P
RVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3Vu
aXF1ZTxPRVNUZXh0dXJlRmxvYXRMaW5lYXI+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyLmdldCgpOwogICAgIH0KLSAg
ICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9h
dCIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9P
RVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNU
ZXh0dXJlSGFsZkZsb2F0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0Iik7Ci0gICAgICAgICAg
ICBtX29lc1RleHR1cmVIYWxmRmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxm
RmxvYXQ+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdCA9IGVuYWJs
ZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpCisgICAgICAg
ICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+KCp0aGlzKSA6
IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUhhbGZGbG9h
dC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9F
U190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikp
IHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFs
Zl9mbG9hdF9saW5lYXIiKSkgewogICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUhhbGZGbG9hdExp
bmVhcikgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5h
YmxlZCgiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKTsKLSAgICAgICAgICAgIG1f
b2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhciA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUhh
bGZGbG9hdExpbmVhcj4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0
TGluZWFyID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zs
b2F0X2xpbmVhciIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1
cmVIYWxmRmxvYXRMaW5lYXI+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIG1fb2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhci5nZXQoKTsKICAgICB9Ci0gICAgaWYg
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IikK
LSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU192
ZXJ0ZXhfYXJyYXlfb2JqZWN0IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShu
YW1lLCAiT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSkgewogICAgICAgICBpZiAoIW1fb2VzVmVy
dGV4QXJyYXlPYmplY3QpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LmVuc3VyZUVuYWJsZWQoIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7Ci0gICAgICAgICAg
ICBtX29lc1ZlcnRleEFycmF5T2JqZWN0ID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNWZXJ0ZXhBcnJh
eU9iamVjdD4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNWZXJ0ZXhBcnJheU9iamVjdCA9IGVu
YWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKQorICAg
ICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNWZXJ0ZXhBcnJheU9iamVjdD4oKnRo
aXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNWZXJ0ZXhBcnJh
eU9iamVjdC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFt
ZSwgIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4
dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpKSB7CisgICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU19lbGVtZW50X2luZGV4X3VpbnQi
KSkgewogICAgICAgICBpZiAoIW1fb2VzRWxlbWVudEluZGV4VWludCkgewotICAgICAgICAgICAg
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX2VsZW1lbnRf
aW5kZXhfdWludCIpOwotICAgICAgICAgICAgbV9vZXNFbGVtZW50SW5kZXhVaW50ID0gc3RkOjpt
YWtlX3VuaXF1ZTxPRVNFbGVtZW50SW5kZXhVaW50PigqdGhpcyk7CisgICAgICAgICAgICBtX29l
c0VsZW1lbnRJbmRleFVpbnQgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oIkdMX09FU19lbGVt
ZW50X2luZGV4X3VpbnQiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNF
bGVtZW50SW5kZXhVaW50PigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJl
dHVybiBtX29lc0VsZW1lbnRJbmRleFVpbnQuZ2V0KCk7CiAgICAgfQpAQCAtMTkxLDQxICsxODMs
NTMgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9u
KGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgICAgIG1fd2ViZ2xMb3NlQ29udGV4dCA9IHN0
ZDo6bWFrZV91bmlxdWU8V2ViR0xMb3NlQ29udGV4dD4oKnRoaXMpOwogICAgICAgICByZXR1cm4g
bV93ZWJnbExvc2VDb250ZXh0LmdldCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIikpCi0g
ICAgICAgICYmIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZCgqdGhpcykpIHsK
LSAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMpCi0gICAgICAgICAgICBt
X3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVBVEM+KCp0aGlzKTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShu
YW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKSkgeworICAgICAgICBp
ZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQykgeworICAgICAgICAgICAgbV93ZWJnbENv
bXByZXNzZWRUZXh0dXJlQVRDID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVk
KCp0aGlzKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNz
ZWRUZXh0dXJlQVRDPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAgICAgIHJldHVy
biBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMuZ2V0KCk7CiAgICAgfQotICAgIGlmICgoZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVy
ZV9wdnJ0YyIpKQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OnN1cHBv
cnRlZCgqdGhpcykpIHsKLSAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJU
QykKLSAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDID0gc3RkOjptYWtl
X3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM+KCp0aGlzKTsKKyAgICBpZiAoZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVy
ZV9wdnJ0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMp
IHsKKyAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDID0gV2ViR0xDb21w
cmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpCisgICAgICAgICAgICAgICAgPyBz
dGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQz4oKnRoaXMpIDogbnVs
bHB0cjsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJl
UFZSVEMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUs
ICJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpCi0gICAgICAgICYmIFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlUzNUQykKLSAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4
dHVyZVMzVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDPigq
dGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2NvbXBy
ZXNzZWRfdGV4dHVyZV9zM3RjIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRl
eHR1cmVTM1RDKSB7CisgICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDID0g
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhpcykKKyAgICAgICAgICAg
ICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM+KCp0aGlz
KSA6IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xDb21wcmVzc2Vk
VGV4dHVyZVMzVEMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KG5hbWUsICJXRUJHTF9kZXB0aF90ZXh0dXJlIikKLSAgICAgICAgJiYgV2ViR0xEZXB0aFRleHR1
cmU6OnN1cHBvcnRlZCgqZ3JhcGhpY3NDb250ZXh0M0QoKSkpIHsKLSAgICAgICAgaWYgKCFtX3dl
YmdsRGVwdGhUZXh0dXJlKQotICAgICAgICAgICAgbV93ZWJnbERlcHRoVGV4dHVyZSA9IHN0ZDo6
bWFrZV91bmlxdWU8V2ViR0xEZXB0aFRleHR1cmU+KCp0aGlzKTsKKyAgICBpZiAoZXF1YWxJZ25v
cmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVwdGhfdGV4dHVyZSIpKSB7CisgICAgICAgIGlm
ICghbV93ZWJnbERlcHRoVGV4dHVyZSkgeworICAgICAgICAgICAgbV93ZWJnbERlcHRoVGV4dHVy
ZSA9IFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoKm1fY29udGV4dCkKKyAgICAgICAgICAg
ICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZXB0aFRleHR1cmU+KCp0aGlzKSA6IG51bGxw
dHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZXB0aFRleHR1cmUuZ2V0KCk7
CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kcmF3
X2J1ZmZlcnMiKSAmJiBzdXBwb3J0c0RyYXdCdWZmZXJzKCkpIHsKKyAgICBpZiAoZXF1YWxJZ25v
cmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZHJhd19idWZmZXJzIikpIHsKICAgICAgICAgaWYg
KCFtX3dlYmdsRHJhd0J1ZmZlcnMpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX0VYVF9kcmF3X2J1ZmZlcnMiKTsKLSAgICAgICAgICAg
IG1fd2ViZ2xEcmF3QnVmZmVycyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEcmF3QnVmZmVycz4o
KnRoaXMpOworICAgICAgICAgICAgaWYgKCFzdXBwb3J0c0RyYXdCdWZmZXJzKCkpCisgICAgICAg
ICAgICAgICAgbV93ZWJnbERyYXdCdWZmZXJzID0gbnVsbHB0cjsKKyAgICAgICAgICAgIGVsc2Ug
eworICAgICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJs
ZWQoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF9kcmF3X2J1ZmZlcnMiIH0pOworICAgICAgICAgICAg
ICAgIG1fd2ViZ2xEcmF3QnVmZmVycyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEcmF3QnVmZmVy
cz4oKnRoaXMpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3dl
YmdsRHJhd0J1ZmZlcnMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlD
YXNlKG5hbWUsICJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIikgJiYgQU5HTEVJbnN0YW5jZWRBcnJh
eXM6OnN1cHBvcnRlZCgqdGhpcykpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShu
YW1lLCAiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpKSB7CiAgICAgICAgIGlmICghbV9hbmdsZUlu
c3RhbmNlZEFycmF5cykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
ZW5zdXJlRW5hYmxlZCgiR0xfQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpOwotICAgICAgICAgICAg
bV9hbmdsZUluc3RhbmNlZEFycmF5cyA9IHN0ZDo6bWFrZV91bmlxdWU8QU5HTEVJbnN0YW5jZWRB
cnJheXM+KCp0aGlzKTsKKyAgICAgICAgICAgIGlmICghQU5HTEVJbnN0YW5jZWRBcnJheXM6OnN1
cHBvcnRlZCgqdGhpcykpCisgICAgICAgICAgICAgICAgbV9hbmdsZUluc3RhbmNlZEFycmF5cyA9
IG51bGxwdHI7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0ZXJhbCB7ICJHTF9BTkdMRV9p
bnN0YW5jZWRfYXJyYXlzIiB9KTsKKyAgICAgICAgICAgICAgICBtX2FuZ2xlSW5zdGFuY2VkQXJy
YXlzID0gc3RkOjptYWtlX3VuaXF1ZTxBTkdMRUluc3RhbmNlZEFycmF5cz4oKnRoaXMpOworICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2FuZ2xlSW5zdGFuY2VkQXJy
YXlzLmdldCgpOwogICAgIH0KQEAgLTIzNCwxMCArMjM4LDExIEBAIFdlYkdMRXh0ZW5zaW9uKiBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAg
ICAgICAgICAgICBtX3dlYmdsRGVidWdSZW5kZXJlckluZm8gPSBzdGQ6Om1ha2VfdW5pcXVlPFdl
YkdMRGVidWdSZW5kZXJlckluZm8+KCp0aGlzKTsKICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZWJ1
Z1JlbmRlcmVySW5mby5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UobmFtZSwgIldFQkdMX2RlYnVnX3NoYWRlcnMiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNl
IikpIHsKLSAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdTaGFkZXJzKQotICAgICAgICAgICAgbV93
ZWJnbERlYnVnU2hhZGVycyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1Z1NoYWRlcnM+KCp0
aGlzKTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVidWdf
c2hhZGVycyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbERlYnVnU2hhZGVycykgeworICAgICAg
ICAgICAgbV93ZWJnbERlYnVnU2hhZGVycyA9IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1
cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2Ui
IH0pCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVidWdTaGFkZXJz
PigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3dlYmdsRGVi
dWdTaGFkZXJzLmdldCgpOwogICAgIH0KIApAQCAtMjUxLDEwOSArMjU2LDEwOSBAQCBWZWN0b3I8
U3RyaW5nPiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnMoKQog
ICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pCiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgCi0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJH
TF9FWFRfYmxlbmRfbWlubWF4IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIkVYVF9ibGVuZF9t
aW5tYXgiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdM
X0VYVF9zUkdCIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIkVYVF9zUkdCIik7Ci0gICAgaWYg
KG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfZnJhZ19kZXB0aCIp
KQotICAgICAgICByZXN1bHQuYXBwZW5kKCJFWFRfZnJhZ19kZXB0aCIpOwotICAgIGlmIChtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfZmxvYXQiKSkK
LSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVfZmxvYXQiKTsKLSAgICBpZiAobV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xp
bmVhciIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIi
KTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190
ZXh0dXJlX2hhbGZfZmxvYXQiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVf
aGFsZl9mbG9hdCIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0
cygiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSkKLSAgICAgICAgcmVzdWx0LmFw
cGVuZCgiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKTsKLSAgICBpZiAobV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIp
KQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKTsKLSAg
ICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9zaGFkZXJf
dGV4dHVyZV9sb2QiKSB8fCBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xf
QVJCX3NoYWRlcl90ZXh0dXJlX2xvZCIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJFWFRfc2hh
ZGVyX3RleHR1cmVfbG9kIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1
cHBvcnRzKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkKLSAgICAgICAgcmVz
dWx0LmFwcGVuZCgiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7Ci0gICAgaWYgKG1f
Y29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdmVydGV4X2FycmF5X29i
amVjdCIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIp
OwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX2Vs
ZW1lbnRfaW5kZXhfdWludCIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfZWxlbWVudF9p
bmRleF91aW50Iik7Ci0gICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfbG9zZV9jb250ZXh0Iik7Cisg
ICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7
ICJHTF9FWFRfYmxlbmRfbWlubWF4IiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxp
dGVyYWwgeyAiRVhUX2JsZW5kX21pbm1heCIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfc1JHQiIgfSkpCisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIkVYVF9zUkdCIiB9KTsKKyAgICBpZiAo
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VY
VF9mcmFnX2RlcHRoIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAi
RVhUX2ZyYWdfZGVwdGgiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5z
dXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfZmxvYXQiIH0pKQorICAgICAg
ICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9mbG9hdCIgfSk7Cisg
ICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7
ICJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5k
KEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiIH0pOworICAgIGlmICht
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VT
X3RleHR1cmVfaGFsZl9mbG9hdCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRl
cmFsIHsgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfaGFs
Zl9mbG9hdF9saW5lYXIiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7
ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfc3RhbmRhcmRf
ZGVyaXZhdGl2ZXMiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJP
RVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVu
c2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xv
ZCIgfSkgfHwgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFs
IHsgIkdMX0FSQl9zaGFkZXJfdGV4dHVyZV9sb2QiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5k
KEFTQ0lJTGl0ZXJhbCB7ICJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIiB9KTsKKyAgICBpZiAobV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF90
ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVND
SUlMaXRlcmFsIHsgIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIgfSk7CisgICAgaWYg
KG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9P
RVNfdmVydGV4X2FycmF5X29iamVjdCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlM
aXRlcmFsIHsgIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IiB9KTsKKyAgICBpZiAobV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU19lbGVtZW50
X2luZGV4X3VpbnQiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJP
RVNfZWxlbWVudF9pbmRleF91aW50IiB9KTsKKyAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJh
bCB7ICJXRUJHTF9sb3NlX2NvbnRleHQiIH0pOwogICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0
dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRf
V0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpOworICAgICAgICByZXN1bHQuYXBwZW5kKEFT
Q0lJTGl0ZXJhbCB7ICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIgfSk7CiAg
ICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0aGlzKSkKLSAg
ICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0
YyIpOworICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJLSVRfV0VCR0xf
Y29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIiB9KTsKICAgICBpZiAoV2ViR0xDb21wcmVzc2VkVGV4
dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhpcykpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdM
X2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIik7Ci0gICAgaWYgKFdlYkdMRGVwdGhUZXh0dXJlOjpz
dXBwb3J0ZWQoKmdyYXBoaWNzQ29udGV4dDNEKCkpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJX
RUJHTF9kZXB0aF90ZXh0dXJlIik7CisgICAgaWYgKFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0
ZWQoKm1fY29udGV4dCkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldF
QkdMX2RlcHRoX3RleHR1cmUiIH0pOwogICAgIGlmIChzdXBwb3J0c0RyYXdCdWZmZXJzKCkpCi0g
ICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RyYXdfYnVmZmVycyIpOworICAgICAgICByZXN1
bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9kcmF3X2J1ZmZlcnMiIH0pOwogICAgIGlm
IChBTkdMRUluc3RhbmNlZEFycmF5czo6c3VwcG9ydGVkKCp0aGlzKSkKLSAgICAgICAgcmVzdWx0
LmFwcGVuZCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpOwotICAgIGlmIChtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNl
IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlYnVnX3NoYWRlcnMiKTsKLSAgICBy
ZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIik7CisgICAgICAgIHJlc3Vs
dC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiIH0pOworICAg
IGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAi
R0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIiB9KSkKKyAgICAgICAgcmVzdWx0LmFw
cGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfZGVidWdfc2hhZGVycyIgfSk7CisgICAgcmVzdWx0
LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIgfSk7CiAK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250
ZXh0OjpnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVy
aW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlz
Q29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVGcmFtZWJ1ZmZlckZ1bmNQYXJhbWV0
ZXJzKCJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLCB0YXJnZXQsIGF0dGFjaG1l
bnQpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIAogICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgfHwgIW1fZnJhbWVidWZm
ZXJCaW5kaW5nLT5vYmplY3QoKSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGlj
c0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQ
YXJhbWV0ZXIiLCAibm8gZnJhbWVidWZmZXIgYm91bmQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgCi0gICAgV2Vi
R0xTaGFyZWRPYmplY3QqIG9iamVjdCA9IG1fZnJhbWVidWZmZXJCaW5kaW5nLT5nZXRBdHRhY2ht
ZW50T2JqZWN0KGF0dGFjaG1lbnQpOworICAgIGF1dG8qIG9iamVjdCA9IG1fZnJhbWVidWZmZXJC
aW5kaW5nLT5nZXRBdHRhY2htZW50T2JqZWN0KGF0dGFjaG1lbnQpOwogICAgIGlmICghb2JqZWN0
KSB7CiAgICAgICAgIGlmIChwbmFtZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJf
QVRUQUNITUVOVF9PQkpFQ1RfVFlQRSkKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
R3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSk7CiAgICAgICAgIC8vIE9wZW5HTCBF
UyAyLjAgc3BlY2lmaWVzIElOVkFMSURfRU5VTSBpbiB0aGlzIGNhc2UsIHdoaWxlIGRlc2t0b3Ag
R0wKICAgICAgICAgLy8gc3BlY2lmaWVzIElOVkFMSURfT1BFUkFUSU9OLgogICAgICAgICBzeW50
aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAgICAgCi0gICAgQVNTRVJUKG9iamVjdC0+aXNUZXh0dXJlKCkgfHwgb2JqZWN0LT5pc1Jl
bmRlcmJ1ZmZlcigpKTsKICAgICBpZiAob2JqZWN0LT5pc1RleHR1cmUoKSkgewogICAgICAgICBz
d2l0Y2ggKHBuYW1lKSB7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVG
RkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEU6Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUpOwogICAgICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1F
OgotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMVGV4dHVy
ZT4ocmVpbnRlcnByZXRfY2FzdDxXZWJHTFRleHR1cmUqPihvYmplY3QpKSk7CisgICAgICAgICAg
ICByZXR1cm4gbWFrZVJlZlB0cihyZWludGVycHJldF9jYXN0PFdlYkdMVGV4dHVyZSY+KCpvYmpl
Y3QpKTsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9URVhUVVJFX0xFVkVMOgogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFDRToKICAgICAgICAgY2FzZSBF
eHRlbnNpb25zM0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkdfRVhUOiB7
CiAgICAgICAgICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICAgICAgICAgIG1fY29udGV4dC0+
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyaXYodGFyZ2V0LCBhdHRhY2htZW50LCBw
bmFtZSwgJnZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOwor
ICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1l
dGVyIG5hbWUgZm9yIHRleHR1cmUgYXR0YWNobWVudCIpOwotICAgICAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KICAg
ICB9IGVsc2UgeworICAgICAgICBBU1NFUlQob2JqZWN0LT5pc1JlbmRlcmJ1ZmZlcigpKTsKICAg
ICAgICAgc3dpdGNoIChwbmFtZSkgewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFOgotICAgICAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSKTsKKyAgICAgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJV
RkZFUik7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfT0JKRUNUX05BTUU6Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NS
ZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5kZXJidWZm
ZXIqPihvYmplY3QpKSk7CisgICAgICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihyZWludGVycHJl
dF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyJj4oKm9iamVjdCkpOwogICAgICAgICBjYXNlIEV4dGVu
c2lvbnMzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNPRElOR19FWFQ6IHsKICAg
ICAgICAgICAgIGlmICghbV9leHRzUkdCKSB7CiAgICAgICAgICAgICAgICAgc3ludGhlc2l6ZUdM
RXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVmZmVyQXR0
YWNobWVudFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIGZvciByZW5kZXJidWZm
ZXIgYXR0YWNobWVudCIpOwotICAgICAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIFdlYkdMUmVuZGVyYnVmZmVyKiByZW5kZXJCdWZmZXIgPSByZWludGVycHJldF9jYXN0PFdl
YkdMUmVuZGVyYnVmZmVyKj4ob2JqZWN0KTsKICAgICAgICAgICAgIEdDM0RlbnVtIHJlbmRlckJ1
ZmZlckZvcm1hdCA9IHJlbmRlckJ1ZmZlci0+Z2V0SW50ZXJuYWxGb3JtYXQoKTsKICAgICAgICAg
ICAgIEFTU0VSVChyZW5kZXJCdWZmZXJGb3JtYXQgIT0gRXh0ZW5zaW9uczNEOjpTUkdCX0VYVCAm
JiByZW5kZXJCdWZmZXJGb3JtYXQgIT0gRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVCk7CiAg
ICAgICAgICAgICBpZiAocmVuZGVyQnVmZmVyRm9ybWF0ID09IEV4dGVuc2lvbnMzRDo6U1JHQjhf
QUxQSEE4X0VYVCkKLSAgICAgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEV4dGVuc2lv
bnMzRDo6U1JHQl9FWFQpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGlj
c0NvbnRleHQzRDo6TElORUFSKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEV4dGVuc2lvbnMzRDo6U1JHQl9FWFQpOworICAgICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKICAgICAgICAg
fQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhp
Y3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIGZvciByZW5kZXJidWZmZXIgYXR0YWNobWVu
dCIpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0zNjQsMjEgKzM2OSwyMiBAQCBi
b29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVGcmFtZWJ1ZmZlckZ1bmNQYXJhbWV0
ZXJzKGNvbnN0IGNoYXIqIGZ1bmN0aQogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGlj
c0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIHRhcmdldCIp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorICAgIC8vIEZJWE1FOiBXaHkgZG9lcyB0
aGlzIHJldHVybiB0cnVlIHVuY29uZGl0aW9uYWxseSBmb3IgQ09MT1JfQVRUQUNITUVOVDAsCisg
ICAgLy8gYnV0IGZhbHNlIGZvciBvdGhlciBDT0xPUl9BVFRBQ0hNRU5UIHZhbHVlcyBpZiBtX3dl
YmdsRHJhd0J1ZmZlcnMgaXMgZmFsc2U/CiAgICAgc3dpdGNoIChhdHRhY2htZW50KSB7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDA6CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6REVQVEhfQVRUQUNITUVOVDoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpTVEVOQ0lMX0FUVEFDSE1FTlQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQ
VEhfU1RFTkNJTF9BVFRBQ0hNRU5UOgotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgaWYgKG1fd2ViZ2xEcmF3QnVmZmVycwotICAgICAg
ICAgICAgJiYgYXR0YWNobWVudCA+IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5U
MAorICAgICAgICAgICAgJiYgYXR0YWNobWVudCA+PSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1Jf
QVRUQUNITUVOVDAKICAgICAgICAgICAgICYmIGF0dGFjaG1lbnQgPCBzdGF0aWNfY2FzdDxHQzNE
ZW51bT4oR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwICsgZ2V0TWF4Q29sb3JB
dHRhY2htZW50cygpKSkKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElE
X0VOVU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgYXR0YWNobWVudCIpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiB0cnVlOwogfQogICAgIAogdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OnJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
ZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KQpA
QCAtNDU1LDcgKzQ2MSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpjbGVhcihHQzNE
Yml0ZmllbGQgbWFzaykKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjb25zdCBjaGFyKiBy
ZWFzb24gPSAiZnJhbWVidWZmZXIgaW5jb21wbGV0ZSI7Ci0gICAgaWYgKG1fZnJhbWVidWZmZXJC
aW5kaW5nICYmICFtX2ZyYW1lYnVmZmVyQmluZGluZy0+b25BY2Nlc3MoZ3JhcGhpY3NDb250ZXh0
M0QoKSwgJnJlYXNvbikpIHsKKyAgICBpZiAobV9mcmFtZWJ1ZmZlckJpbmRpbmcgJiYgIW1fZnJh
bWVidWZmZXJCaW5kaW5nLT5vbkFjY2VzcyhtX2NvbnRleHQuZ2V0KCksICZyZWFzb24pKSB7CiAg
ICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiwgImNsZWFyIiwgcmVhc29uKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTQ2NCwxMSArNDcwLDExIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpjbGVh
cihHQzNEYml0ZmllbGQgbWFzaykKICAgICBtYXJrQ29udGV4dENoYW5nZWQoKTsKIH0KIAotV2Vi
R0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBu
YW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVu
dW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbygpOwotICAgIGNvbnN0IGludCBpbnRaZXJvID0gMDsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6QUNUSVZFX1RFWFRVUkU6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25l
ZEludFBhcmFtZXRlcihwbmFtZSk7CkBAIC00NzksNyArNDg1LDcgQEAgV2ViR0xHZXRJbmZvIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBX0JJVFM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQ
YXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZF
Ul9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xC
dWZmZXI+KG1fYm91bmRBcnJheUJ1ZmZlcikpOworICAgICAgICByZXR1cm4gbV9ib3VuZEFycmF5
QnVmZmVyOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkJMRU5EOgogICAgICAgICByZXR1
cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6QkxFTkRfQ09MT1I6CkBAIC01MDMsMTYgKzUwOSwxNiBAQCBXZWJHTEdldEluZm8gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6Q09MT1JfV1JJVEVNQVNLOgogICAgICAgICByZXR1cm4gZ2V0Qm9v
bGVhbkFycmF5UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpD
T01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQ
YXNzUmVmUHRyPFVpbnQzMkFycmF5PihVaW50MzJBcnJheTo6Y3JlYXRlKG1fY29tcHJlc3NlZFRl
eHR1cmVGb3JtYXRzLmRhdGEoKSwgbV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMuc2l6ZSgpKSkp
OworICAgICAgICByZXR1cm4gVWludDMyQXJyYXk6OmNyZWF0ZShtX2NvbXByZXNzZWRUZXh0dXJl
Rm9ybWF0cy5kYXRhKCksIG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLnNpemUoKSk7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VMTF9GQUNFOgogICAgICAgICByZXR1cm4gZ2V0Qm9v
bGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VMTF9G
QUNFX01PREU6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VSUkVOVF9QUk9HUkFNOgotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xQcm9ncmFtPihtX2N1cnJlbnRQcm9n
cmFtKSk7CisgICAgICAgIHJldHVybiBtX2N1cnJlbnRQcm9ncmFtOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRFUFRIX0JJVFM6CiAgICAgICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRp
bmcgJiYgIW1fYXR0cmlidXRlcy5kZXB0aCkKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oaW50WmVybyk7CisgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgcmV0dXJuIGdldElu
dFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQ0xF
QVJfVkFMVUU6CiAgICAgICAgIHJldHVybiBnZXRGbG9hdFBhcmFtZXRlcihwbmFtZSk7CkBAIC01
MjcsOSArNTMzLDkgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFy
YW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRJVEhF
UjoKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4obV9ib3VuZFZlcnRl
eEFycmF5T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKSkpOworICAgICAgICByZXR1cm4g
bWFrZVJlZlB0cihtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1lbnRBcnJheUJ1ZmZl
cigpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9CSU5ESU5HOgot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4o
bV9mcmFtZWJ1ZmZlckJpbmRpbmcpKTsKKyAgICAgICAgcmV0dXJuIG1fZnJhbWVidWZmZXJCaW5k
aW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZST05UX0ZBQ0U6CiAgICAgICAgIHJl
dHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6R0VORVJBVEVfTUlQTUFQX0hJTlQ6CkBAIC01NzcsOSArNTgzLDkgQEAgV2ViR0xH
ZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFRF9CSVRTOgogICAgICAgICByZXR1cm4g
Z2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5E
RVJCVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRy
PFdlYkdMUmVuZGVyYnVmZmVyPihtX3JlbmRlcmJ1ZmZlckJpbmRpbmcpKTsKKyAgICAgICAgcmV0
dXJuIG1fcmVuZGVyYnVmZmVyQmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
RU5ERVJFUjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhTdHJpbmcoIldlYktpdCBXZWJH
TCIpKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZyB7IEFTQ0lJTGl0ZXJhbCB7ICJXZWJLaXQgV2Vi
R0wiIH0gfTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTQU1QTEVfQlVGRkVSUzoKICAg
ICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6U0FNUExFX0NPVkVSQUdFX0lOVkVSVDoKQEAgLTU5Myw3ICs1OTksNyBAQCBXZWJH
TEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5h
bWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0NJU1NPUl9URVNUOgogICAgICAgICBy
ZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCJXZWJHTCBHTFNMIEVTIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNz
Q29udGV4dDNEOjpTSEFESU5HX0xBTkdVQUdFX1ZFUlNJT04pICsgIikiKTsKKyAgICAgICAgcmV0
dXJuICJXZWJHTCBHTFNMIEVTIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNz
Q29udGV4dDNEOjpTSEFESU5HX0xBTkdVQUdFX1ZFUlNJT04pICsgIikiOwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQkFDS19GQUlMOgogICAgICAgICByZXR1cm4gZ2V0VW5z
aWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNU
RU5DSUxfQkFDS19GVU5DOgpAQCAtNjEwLDcgKzYxNiw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICAgICAgcmV0
dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpTVEVOQ0lMX0JJVFM6CiAgICAgICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcg
JiYgIW1fYXR0cmlidXRlcy5zdGVuY2lsKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhpbnRaZXJvKTsKKyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICByZXR1cm4gZ2V0SW50
UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0NM
RUFSX1ZBTFVFOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKQEAgLTYz
Myw2MSArNjM5LDYxIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBh
cmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVUJQ
SVhFTF9CSVRTOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfMkQ6Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+KG1fdGV4dHVyZVVuaXRzW21f
YWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmUyREJpbmRpbmcpKTsKKyAgICAgICAgcmV0dXJuIG1f
dGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmUyREJpbmRpbmc7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQOgotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xUZXh0dXJlPihtX3RleHR1cmVV
bml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlQ3ViZU1hcEJpbmRpbmcpKTsKKyAgICAg
ICAgcmV0dXJuIG1fdGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmVDdWJl
TWFwQmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5U
OgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpVTlBBQ0tfRkxJUF9ZX1dFQkdMOgotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKG1fdW5wYWNrRmxpcFkpOworICAgICAgICByZXR1cm4gbV91bnBhY2tGbGlwWTsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0w6
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsK
KyAgICAgICAgcmV0dXJuIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMOgotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb24pOworICAg
ICAgICByZXR1cm4gbV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lvbjsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpWRU5ET1I6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oU3RyaW5n
KCJXZWJLaXQiKSk7CisgICAgICAgIHJldHVybiBTdHJpbmcgeyBBU0NJSUxpdGVyYWwgeyAiV2Vi
S2l0IiB9IH07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTjoKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbygiV2ViR0wgMS4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmco
R3JhcGhpY3NDb250ZXh0M0Q6OlZFUlNJT04pICsgIikiKTsKKyAgICAgICAgcmV0dXJuICJXZWJH
TCAxLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVSU0lP
TikgKyAiKSI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VklFV1BPUlQ6CiAgICAgICAg
IHJldHVybiBnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEV4dGVu
c2lvbnMzRDo6RlJBR01FTlRfU0hBREVSX0RFUklWQVRJVkVfSElOVF9PRVM6IC8vIE9FU19zdGFu
ZGFyZF9kZXJpdmF0aXZlcwogICAgICAgICBpZiAobV9vZXNTdGFuZGFyZERlcml2YXRpdmVzKQog
ICAgICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEV4dGVuc2lvbnMzRDo6
RlJBR01FTlRfU0hBREVSX0RFUklWQVRJVkVfSElOVF9PRVMpOwogICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwg
ImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIE9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyBub3QgZW5h
YmxlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIGNhc2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURfUkVOREVS
RVJfV0VCR0w6CiAgICAgICAgIGlmIChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCi0gICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29u
dGV4dDNEOjpSRU5ERVJFUikpOworICAgICAgICAgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0U3Ry
aW5nKEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJFUik7CiAgICAgICAgIHN5bnRoZXNpemVHTEVy
cm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52
YWxpZCBwYXJhbWV0ZXIgbmFtZSwgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBub3QgZW5hYmxl
ZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIGNhc2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURfVkVORE9SX1dF
QkdMOgogICAgICAgICBpZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQotICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQz
RDo6VkVORE9SKSk7CisgICAgICAgICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRTdHJpbmcoR3Jh
cGhpY3NDb250ZXh0M0Q6OlZFTkRPUik7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJh
bWV0ZXIgbmFtZSwgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBub3QgZW5hYmxlZCIpOwotICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IGNhc2UgRXh0ZW5zaW9uczNEOjpWRVJURVhfQVJSQVlfQklORElOR19PRVM6IC8vIE9FU192ZXJ0
ZXhfYXJyYXlfb2JqZWN0CiAgICAgICAgIGlmIChtX29lc1ZlcnRleEFycmF5T2JqZWN0KSB7Ci0g
ICAgICAgICAgICBpZiAoIW1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0
KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdM
VmVydGV4QXJyYXlPYmplY3RPRVM+KHN0YXRpY19jYXN0PFdlYkdMVmVydGV4QXJyYXlPYmplY3RP
RVMqPihtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QuZ2V0KCkpKSk7Ci0gICAgICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICBpZiAobV9ib3VuZFZlcnRleEFycmF5T2Jq
ZWN0LT5pc0RlZmF1bHRPYmplY3QoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICAgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHN0YXRpY19jYXN0PFdlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMmPigqbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0KSk7CiAgICAgICAgIH0KICAg
ICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwg
ImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBPRVNfdmVydGV4X2FycmF5
X29iamVjdCBub3QgZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpNQVhfVEVYVFVS
RV9NQVhfQU5JU09UUk9QWV9FWFQ6IC8vIEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYwog
ICAgICAgICBpZiAobV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMpCiAgICAgICAgICAgICBy
ZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoRXh0ZW5zaW9uczNEOjpNQVhfVEVYVFVSRV9N
QVhfQU5JU09UUk9QWV9FWFQpOwogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVy
IG5hbWUsIEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyBub3QgZW5hYmxlZCIpOwotICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IGNhc2UgRXh0ZW5zaW9uczNEOjpNQVhfQ09MT1JfQVRUQUNITUVOVFNfRVhUOiAvLyBFWFRfZHJh
d19idWZmZXJzIEJFR0lOCiAgICAgICAgIGlmIChtX3dlYmdsRHJhd0J1ZmZlcnMpCi0gICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKGdldE1heENvbG9yQXR0YWNobWVudHMoKSk7CisgICAg
ICAgICAgICByZXR1cm4gZ2V0TWF4Q29sb3JBdHRhY2htZW50cygpOwogICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVy
IiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RyYXdfYnVmZmVycyBub3QgZW5hYmxl
ZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpNQVhfRFJBV19CVUZGRVJTX0VYVDoKICAgICAg
ICAgaWYgKG1fd2ViZ2xEcmF3QnVmZmVycykKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oZ2V0TWF4RHJhd0J1ZmZlcnMoKSk7CisgICAgICAgICAgICByZXR1cm4gZ2V0TWF4RHJhd0J1
ZmZlcnMoKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklO
VkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBXRUJH
TF9kcmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAo
bV93ZWJnbERyYXdCdWZmZXJzCiAgICAgICAgICAgICAmJiBwbmFtZSA+PSBFeHRlbnNpb25zM0Q6
OkRSQVdfQlVGRkVSMF9FWFQKQEAgLTY5NywxMCArNzAzLDEwIEBAIFdlYkdMR2V0SW5mbyBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICAgICAg
ICAgICAgICB2YWx1ZSA9IG1fZnJhbWVidWZmZXJCaW5kaW5nLT5nZXREcmF3QnVmZmVyKHBuYW1l
KTsKICAgICAgICAgICAgIGVsc2UgLy8gZW11bGF0ZWQgYmFja2J1ZmZlcgogICAgICAgICAgICAg
ICAgIHZhbHVlID0gbV9iYWNrRHJhd0J1ZmZlcjsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8odmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICAgICB9CiAgICAg
ICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJn
ZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaApp
bmRleCAxODc0ZmU1YTVjMzgzMTE5OGY0M2I5NGMyMDk2YjllZWJlNDNlNDcwLi4wYzYxZGQ2NTQx
MDcxNDFmZWNmZTdjNGI3OTBlNGExOWYzZWJjMDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwxNiArMzIsMTYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0IGZpbmFsIDogcHVi
bGljIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UgewogcHVibGljOgogICAgIFdlYkdMUmVuZGVy
aW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYsIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRl
cyk7Ci0gICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiwgUGFzc1Jl
ZlB0cjxHcmFwaGljc0NvbnRleHQzRD4sIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyk7Cisg
ICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiwgUmVmPEdyYXBoaWNz
Q29udGV4dDNEPiYmLCBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMpOwogCiBwcml2YXRlOgog
ICAgIGJvb2wgaXNXZWJHTDEoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBX
ZWJHTEV4dGVuc2lvbiogZ2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYpIGZpbmFsOwotICAgIFdl
YkdMR2V0SW5mbyBnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpIGZpbmFsOworICAgIFdlYkdM
QW55IGdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkgZmluYWw7CiAgICAgVmVjdG9yPFN0cmlu
Zz4gZ2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpIGZpbmFsOwogCi0gICAgV2ViR0xHZXRJbmZvIGdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKKyAgICBXZWJHTEFueSBnZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRh
Y2htZW50LCBHQzNEZW51bSBwbmFtZSkgZmluYWw7CiAgICAgdm9pZCByZW5kZXJidWZmZXJTdG9y
YWdlKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgZmluYWw7CiAgICAgYm9vbCB2YWxpZGF0ZUZyYW1lYnVm
ZmVyRnVuY1BhcmFtZXRlcnMoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQzNEZW51bSB0YXJn
ZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQpIGZpbmFsOwogICAgIHZvaWQgaGludChHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIG1vZGUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCAyNzcwZGMx
YjZlMWYzODNlZmNjNzcyNTAzMmFlNTA1MmU3OWIzY2Y2Li43NzAzNGMxOTU4NmI4NjM5MGQ0ZmYx
OTUxZmU3ZWMxMDdiODBhMjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDkgKzI0LDkgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5oIgogCiAjaWYgRU5BQkxFKFdFQkdMKQotI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UuaCIKIAogI2luY2x1ZGUgIkFOR0xFSW5zdGFuY2VkQXJyYXlzLmgiCiAjaW5j
bHVkZSAiQ2FjaGVkSW1hZ2UuaCIKQEAgLTQyMCwxNyArNDIwLDE1IEBAIHN0ZDo6dW5pcXVlX3B0
cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpj
cmVhdGUoSFRNCiAgICAgICAgIHJldHVybiByZW5kZXJpbmdDb250ZXh0OwogICAgIH0KIAotICAg
IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cgPSBkb2N1bWVudC52aWV3KCktPnJvb3QoKS0+aG9zdFdp
bmRvdygpOwotICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dChHcmFwaGljc0Nv
bnRleHQzRDo6Y3JlYXRlKGF0dHJpYnV0ZXMsIGhvc3RXaW5kb3cpKTsKLQorICAgIGF1dG8gY29u
dGV4dCA9IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoYXR0cmlidXRlcywgZG9jdW1lbnQudmll
dygpLT5yb290KCktPmhvc3RXaW5kb3coKSk7CiAgICAgaWYgKCFjb250ZXh0IHx8ICFjb250ZXh0
LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkgewogICAgICAgICBjYW52YXMuZGlzcGF0Y2hFdmVudChX
ZWJHTENvbnRleHRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRjcmVhdGlv
bmVycm9yRXZlbnQsIGZhbHNlLCB0cnVlLCAiQ291bGQgbm90IGNyZWF0ZSBhIFdlYkdMIGNvbnRl
eHQuIikpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBFeHRlbnNpb25z
M0QmIGV4dGVuc2lvbnMgPSBjb250ZXh0LT5nZXRFeHRlbnNpb25zKCk7Ci0gICAgaWYgKGV4dGVu
c2lvbnMuc3VwcG9ydHMoIkdMX0VYVF9kZWJ1Z19tYXJrZXIiKSkKLSAgICAgICAgZXh0ZW5zaW9u
cy5wdXNoR3JvdXBNYXJrZXJFWFQoIldlYkdMUmVuZGVyaW5nQ29udGV4dCIpOworICAgIGF1dG8m
IGV4dGVuc2lvbnMgPSBjb250ZXh0LT5nZXRFeHRlbnNpb25zKCk7CisgICAgaWYgKGV4dGVuc2lv
bnMuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF9kZWJ1Z19tYXJrZXIiIH0pKQorICAg
ICAgICBleHRlbnNpb25zLnB1c2hHcm91cE1hcmtlckVYVChBU0NJSUxpdGVyYWwgeyAiV2ViR0xS
ZW5kZXJpbmdDb250ZXh0IiB9KTsKIAogI2lmIEVOQUJMRShXRUJHTDIpICYmIFBMQVRGT1JNKE1B
QykKICAgICAvLyBnbFRleFN0b3JhZ2UoKSB3YXMgb25seSBhZGRlZCB0byBDb3JlIGluIE9wZW5H
TCA0LjIuCkBAIC00MzksMTMgKzQzNywxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKEhUTQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U+IHJlbmRlcmluZ0NvbnRleHQgPSBudWxscHRyOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiByZW5kZXJpbmdDb250ZXh0
OwogI2lmIEVOQUJMRShXRUJHTDIpCiAgICAgaWYgKHR5cGUgPT0gIndlYmdsMiIpCi0gICAgICAg
IHJlbmRlcmluZ0NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ+KGNhbnZhcywgV1RGTW92ZShjb250ZXh0KSwgYXR0cmlidXRlcyk7CisgICAgICAgIHJlbmRl
cmluZ0NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+KGNh
bnZhcywgY29udGV4dC5yZWxlYXNlTm9uTnVsbCgpLCBhdHRyaWJ1dGVzKTsKICAgICBlbHNlCiAj
ZW5kaWYKLSAgICAgICAgcmVuZGVyaW5nQ29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xS
ZW5kZXJpbmdDb250ZXh0PihjYW52YXMsIFdURk1vdmUoY29udGV4dCksIGF0dHJpYnV0ZXMpOwor
ICAgICAgICByZW5kZXJpbmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ+KGNhbnZhcywgY29udGV4dC5yZWxlYXNlTm9uTnVsbCgpLCBhdHRyaWJ1dGVzKTsK
ICAgICByZW5kZXJpbmdDb250ZXh0LT5zdXNwZW5kSWZOZWVkZWQoKTsKIAogICAgIHJldHVybiBy
ZW5kZXJpbmdDb250ZXh0OwpAQCAtNDU0LDQ0ICs0NTIsMjkgQEAgc3RkOjp1bmlxdWVfcHRyPFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0
ZShIVE0KIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgV2ViR0xDb250ZXh0QXR0cmlidXRl
cyBhdHRyaWJ1dGVzKQogICAgIDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dChwYXNzZWRDYW52YXMp
CiAgICAgLCBBY3RpdmVET01PYmplY3QoJnBhc3NlZENhbnZhcy5kb2N1bWVudCgpKQotICAgICwg
bV9jb250ZXh0KG51bGxwdHIpCiAgICAgLCBtX2Rpc3BhdGNoQ29udGV4dExvc3RFdmVudFRpbWVy
KCp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250ZXh0TG9zdEV2
ZW50KQotICAgICwgbV9yZXN0b3JlQWxsb3dlZChmYWxzZSkKICAgICAsIG1fcmVzdG9yZVRpbWVy
KCp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWF5YmVSZXN0b3JlQ29udGV4dCkK
LSAgICAsIG1fZ2VuZXJhdGVkSW1hZ2VDYWNoZSgwKQotICAgICwgbV9jb250ZXh0TG9zdChmYWxz
ZSkKLSAgICAsIG1fY29udGV4dExvc3RNb2RlKFN5bnRoZXRpY0xvc3RDb250ZXh0KQogICAgICwg
bV9hdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpCi0gICAgLCBtX3N5bnRoZXNpemVkRXJyb3JzVG9Db25z
b2xlKHRydWUpCiAgICAgLCBtX251bUdMRXJyb3JzVG9Db25zb2xlQWxsb3dlZChtYXhHTEVycm9y
c0FsbG93ZWRUb0NvbnNvbGUpCiAgICAgLCBtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24odHJ1
ZSkKLSAgICAsIG1faGFzUmVxdWVzdGVkUG9saWN5UmVzb2x1dGlvbihmYWxzZSkKIHsKIH0KIAot
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShIVE1M
Q2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+JiYg
Y29udGV4dCwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxlbWVu
dCYgcGFzc2VkQ2FudmFzLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29udGV4dCwgV2ViR0xD
b250ZXh0QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIDogQ2FudmFzUmVuZGVyaW5nQ29udGV4
dChwYXNzZWRDYW52YXMpCiAgICAgLCBBY3RpdmVET01PYmplY3QoJnBhc3NlZENhbnZhcy5kb2N1
bWVudCgpKQogICAgICwgbV9jb250ZXh0KFdURk1vdmUoY29udGV4dCkpCiAgICAgLCBtX2Rpc3Bh
dGNoQ29udGV4dExvc3RFdmVudFRpbWVyKCp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6ZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50KQotICAgICwgbV9yZXN0b3JlQWxsb3dlZChmYWxz
ZSkKICAgICAsIG1fcmVzdG9yZVRpbWVyKCp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6bWF5YmVSZXN0b3JlQ29udGV4dCkKICAgICAsIG1fZ2VuZXJhdGVkSW1hZ2VDYWNoZSg0KQot
ICAgICwgbV9jb250ZXh0TG9zdChmYWxzZSkKLSAgICAsIG1fY29udGV4dExvc3RNb2RlKFN5bnRo
ZXRpY0xvc3RDb250ZXh0KQogICAgICwgbV9hdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpCi0gICAgLCBt
X3N5bnRoZXNpemVkRXJyb3JzVG9Db25zb2xlKHRydWUpCiAgICAgLCBtX251bUdMRXJyb3JzVG9D
b25zb2xlQWxsb3dlZChtYXhHTEVycm9yc0FsbG93ZWRUb0NvbnNvbGUpCi0gICAgLCBtX2lzUGVu
ZGluZ1BvbGljeVJlc29sdXRpb24oZmFsc2UpCi0gICAgLCBtX2hhc1JlcXVlc3RlZFBvbGljeVJl
c29sdXRpb24oZmFsc2UpCiB7Ci0gICAgQVNTRVJUKG1fY29udGV4dCk7CiAgICAgbV9jb250ZXh0
R3JvdXAgPSBXZWJHTENvbnRleHRHcm91cDo6Y3JlYXRlKCk7Ci0gICAgbV9jb250ZXh0R3JvdXAt
PmFkZENvbnRleHQodGhpcyk7CisgICAgbV9jb250ZXh0R3JvdXAtPmFkZENvbnRleHQoKnRoaXMp
OwogICAgIAogICAgIG1fY29udGV4dC0+c2V0V2ViR0xDb250ZXh0KHRoaXMpOwogCi0gICAgbV9t
YXhWaWV3cG9ydERpbXNbMF0gPSBtX21heFZpZXdwb3J0RGltc1sxXSA9IDA7CiAgICAgbV9jb250
ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHQzRDo6TUFYX1ZJRVdQT1JUX0RJTVMsIG1f
bWF4Vmlld3BvcnREaW1zKTsKIAogICAgIHNldHVwRmxhZ3MoKTsKQEAgLTYxOSw3ICs2MDIsNyBA
QCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp+V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSgp
CiAgICAgaWYgKCFtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pIHsKICAgICAgICAgZGV0YWNo
QW5kUmVtb3ZlQWxsT2JqZWN0cygpOwogICAgICAgICBkZXN0cm95R3JhcGhpY3NDb250ZXh0M0Qo
KTsKLSAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZUNvbnRleHQodGhpcyk7CisgICAgICAg
IG1fY29udGV4dEdyb3VwLT5yZW1vdmVDb250ZXh0KCp0aGlzKTsKICAgICB9CiB9CiAKQEAgLTkx
Myw3ICs4OTYsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJpbmRCdWZmZXIo
R0MzRGVudW0gdGFyZ2V0LCBXZWJHTEJ1ZmZlciogYnVmZmVyKQogICAgIGlmICghY2hlY2tPYmpl
Y3RUb0JlQm91bmQoImJpbmRCdWZmZXIiLCBidWZmZXIsIGRlbGV0ZWQpKQogICAgICAgICByZXR1
cm47CiAgICAgaWYgKGRlbGV0ZWQpCi0gICAgICAgIGJ1ZmZlciA9IDA7CisgICAgICAgIGJ1ZmZl
ciA9IG51bGxwdHI7CiAgICAgaWYgKGJ1ZmZlciAmJiBidWZmZXItPmdldFRhcmdldCgpICYmIGJ1
ZmZlci0+Z2V0VGFyZ2V0KCkgIT0gdGFyZ2V0KSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9y
KEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgImJpbmRCdWZmZXIiLCAiYnVm
ZmVycyBjYW4gbm90IGJlIHVzZWQgd2l0aCBtdWx0aXBsZSB0YXJnZXRzIik7CiAgICAgICAgIHJl
dHVybjsKQEAgLTEzOTUsNyArMTM3OCw3IEBAIFJlZlB0cjxXZWJHTEJ1ZmZlcj4gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlQnVmZmVyKCkKICAgICBpZiAoaXNDb250ZXh0TG9zdE9y
UGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIGJ1ZmZlciA9IFdl
YkdMQnVmZmVyOjpjcmVhdGUoKnRoaXMpOwotICAgIGFkZFNoYXJlZE9iamVjdChidWZmZXIucHRy
KCkpOworICAgIGFkZFNoYXJlZE9iamVjdChidWZmZXIuZ2V0KCkpOwogICAgIHJldHVybiBXVEZN
b3ZlKGJ1ZmZlcik7CiB9CiAKQEAgLTE0MDQsNyArMTM4Nyw3IEBAIFJlZlB0cjxXZWJHTEZyYW1l
YnVmZmVyPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVGcmFtZWJ1ZmZlcigpCiAg
ICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgYXV0byBidWZmZXIgPSBXZWJHTEZyYW1lYnVmZmVyOjpjcmVhdGUoKnRoaXMpOwotICAg
IGFkZENvbnRleHRPYmplY3QoYnVmZmVyLnB0cigpKTsKKyAgICBhZGRDb250ZXh0T2JqZWN0KGJ1
ZmZlci5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUoYnVmZmVyKTsKIH0KIApAQCAtMTQxMyw3
ICsxMzk2LDcgQEAgUmVmUHRyPFdlYkdMVGV4dHVyZT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Y3JlYXRlVGV4dHVyZSgpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byB0ZXh0dXJlID0gV2ViR0xUZXh0dXJlOjpj
cmVhdGUoKnRoaXMpOwotICAgIGFkZFNoYXJlZE9iamVjdCh0ZXh0dXJlLnB0cigpKTsKKyAgICBh
ZGRTaGFyZWRPYmplY3QodGV4dHVyZS5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUodGV4dHVy
ZSk7CiB9CiAKQEAgLTE0MjIsNyArMTQwNSw3IEBAIFJlZlB0cjxXZWJHTFByb2dyYW0+IFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZVByb2dyYW0oKQogICAgIGlmIChpc0NvbnRleHRM
b3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gcHJvZ3Jh
bSA9IFdlYkdMUHJvZ3JhbTo6Y3JlYXRlKCp0aGlzKTsKLSAgICBhZGRTaGFyZWRPYmplY3QocHJv
Z3JhbS5wdHIoKSk7CisgICAgYWRkU2hhcmVkT2JqZWN0KHByb2dyYW0uZ2V0KCkpOwogICAgIHJl
dHVybiBXVEZNb3ZlKHByb2dyYW0pOwogfQogCkBAIC0xNDMxLDcgKzE0MTQsNyBAQCBSZWZQdHI8
V2ViR0xSZW5kZXJidWZmZXI+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZVJlbmRl
cmJ1ZmZlcigpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgYXV0byBidWZmZXIgPSBXZWJHTFJlbmRlcmJ1ZmZlcjo6Y3JlYXRl
KCp0aGlzKTsKLSAgICBhZGRTaGFyZWRPYmplY3QoYnVmZmVyLnB0cigpKTsKKyAgICBhZGRTaGFy
ZWRPYmplY3QoYnVmZmVyLmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92ZShidWZmZXIpOwogfQog
CkBAIC0xNDQ1LDcgKzE0MjgsNyBAQCBSZWZQdHI8V2ViR0xTaGFkZXI+IFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmNyZWF0ZVNoYWRlcihHQzNEZW51bSB0eXBlKQogICAgIH0KIAogICAgIGF1
dG8gc2hhZGVyID0gV2ViR0xTaGFkZXI6OmNyZWF0ZSgqdGhpcywgdHlwZSk7Ci0gICAgYWRkU2hh
cmVkT2JqZWN0KHNoYWRlci5wdHIoKSk7CisgICAgYWRkU2hhcmVkT2JqZWN0KHNoYWRlci5nZXQo
KSk7CiAgICAgcmV0dXJuIFdURk1vdmUoc2hhZGVyKTsKIH0KIApAQCAtMTQ3OCw3ICsxNDYxLDcg
QEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVCdWZmZXIoV2ViR0xCdWZm
ZXIqIGJ1ZmZlcikKICAgICBpZiAobV9ib3VuZEFycmF5QnVmZmVyID09IGJ1ZmZlcikKICAgICAg
ICAgbV9ib3VuZEFycmF5QnVmZmVyID0gbnVsbHB0cjsKIAotICAgIG1fYm91bmRWZXJ0ZXhBcnJh
eU9iamVjdC0+dW5iaW5kQnVmZmVyKGJ1ZmZlcik7CisgICAgbV9ib3VuZFZlcnRleEFycmF5T2Jq
ZWN0LT51bmJpbmRCdWZmZXIoKmJ1ZmZlcik7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6ZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xGcmFtZWJ1ZmZlciogZnJhbWVidWZmZXIp
CkBAIC0yMTg0LDEwICsyMTY3LDEwIEBAIEdDM0RpbnQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Z2V0QXR0cmliTG9jYXRpb24oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zCiAgICAgcmV0
dXJuIG1fY29udGV4dC0+Z2V0QXR0cmliTG9jYXRpb24ob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBu
YW1lKTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1
ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmco
KSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIGJvb2wgdmFsaWQgPSBmYWxzZTsKICAgICBpZiAodGFyZ2V0ID09IEdyYXBoaWNz
Q29udGV4dDNEOjpBUlJBWV9CVUZGRVIgfHwgdGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpF
TEVNRU5UX0FSUkFZX0JVRkZFUikKQEAgLTIyMDcsMTkgKzIxOTAsMTkgQEAgV2ViR0xHZXRJbmZv
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0
YXJnZXQsIEdDM0QKICNlbmRpZgogICAgIGlmICghdmFsaWQpIHsKICAgICAgICAgc3ludGhlc2l6
ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEJ1ZmZlclBhcmFt
ZXRlciIsICJpbnZhbGlkIHRhcmdldCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIGlmIChwbmFtZSAhPSBHcmFw
aGljc0NvbnRleHQzRDo6QlVGRkVSX1NJWkUgJiYgcG5hbWUgIT0gR3JhcGhpY3NDb250ZXh0M0Q6
OkJVRkZFUl9VU0FHRSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0QnVmZmVyUGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1l
dGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBtX2NvbnRl
eHQtPmdldEJ1ZmZlclBhcmFtZXRlcml2KHRhcmdldCwgcG5hbWUsICZ2YWx1ZSk7CiAgICAgaWYg
KHBuYW1lID09IEdyYXBoaWNzQ29udGV4dDNEOjpCVUZGRVJfU0laRSkKLSAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbyh2YWx1ZSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2Fz
dDx1bnNpZ25lZCBpbnQ+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVlKTsKIH0KIAogc3RkOjpvcHRpb25hbDxXZWJH
TENvbnRleHRBdHRyaWJ1dGVzPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRDb250ZXh0
QXR0cmlidXRlcygpCkBAIC0yMjQ2LDMwICsyMjI5LDMwIEBAIEdDM0RlbnVtIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmdldEVycm9yKCkKICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRFcnJv
cigpOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJv
Z3JhbVBhcmFtZXRlcihXZWJHTFByb2dyYW0qIHByb2dyYW0sIEdDM0RlbnVtIHBuYW1lKQorV2Vi
R0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJvZ3JhbVBhcmFtZXRlcihXZWJH
TFByb2dyYW0qIHByb2dyYW0sIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRM
b3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImdldFByb2dyYW1QYXJhbWV0
ZXIiLCBwcm9ncmFtKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgIEdDM0RpbnQgdmFsdWUgPSAwOwogICAgIHN3aXRjaCAocG5h
bWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERUxFVEVfU1RBVFVTOgotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKHByb2dyYW0tPmlzRGVsZXRlZCgpKTsKKyAgICAgICAgcmV0
dXJuIHByb2dyYW0tPmlzRGVsZXRlZCgpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZB
TElEQVRFX1NUQVRVUzoKICAgICAgICAgbV9jb250ZXh0LT5nZXRQcm9ncmFtaXYob2JqZWN0T3Ja
ZXJvKHByb2dyYW0pLCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhzdGF0aWNfY2FzdDxib29sPih2YWx1ZSkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Ym9vbD4odmFsdWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTktfU1RBVFVTOgot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHByb2dyYW0tPmdldExpbmtTdGF0dXMoKSk7Cisg
ICAgICAgIHJldHVybiBwcm9ncmFtLT5nZXRMaW5rU3RhdHVzKCk7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6QVRUQUNIRURfU0hBREVSUzoKICAgICAgICAgbV9jb250ZXh0LT5nZXRQcm9n
cmFtaXYob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVfQVRUUklCVVRFUzoKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpBQ1RJVkVfVU5JRk9STVM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0Tm9uQnVp
bHRJbkFjdGl2ZVN5bWJvbENvdW50KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgcG5hbWUsICZ2YWx1
ZSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICByZXR1cm4g
dmFsdWU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFByb2dyYW1QYXJhbWV0ZXIiLCAiaW52YWxpZCBw
YXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMjI4MCwxNyArMjI2MywxNyBAQCBTdHJp
bmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJvZ3JhbUluZm9Mb2coV2ViR0xQcm9n
cmFtKiBwcm9ncmFtKQogICAgIHJldHVybiBlbnN1cmVOb3ROdWxsKG1fY29udGV4dC0+Z2V0UHJv
Z3JhbUluZm9Mb2cob2JqZWN0T3JaZXJvKHByb2dyYW0pKSk7CiB9CiAKLVdlYkdMR2V0SW5mbyBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVu
dW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCi0gICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKHRh
cmdldCAhPSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSKSB7CiAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRSZW5kZXJi
dWZmZXJQYXJhbWV0ZXIiLCAiaW52YWxpZCB0YXJnZXQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgaWYgKCFtX3Jl
bmRlcmJ1ZmZlckJpbmRpbmcgfHwgIW1fcmVuZGVyYnVmZmVyQmluZGluZy0+b2JqZWN0KCkpIHsK
ICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BF
UkFUSU9OLCAiZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIiwgIm5vIHJlbmRlcmJ1ZmZlciBib3Vu
ZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KIAogICAgIGlmIChtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdldEludGVybmFs
Rm9ybWF0KCkgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUwKQEAgLTIzMTcsMTIg
KzIzMDAsMTIgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFJl
bmRlcmJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQKICAgICAgICAgICAgIHZhbHVlID0g
ODsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
RU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdldEludGVybmFsRm9ybWF0KCkpOworICAgICAg
ICAgICAgcmV0dXJuIG1fcmVuZGVyYnVmZmVyQmluZGluZy0+Z2V0SW50ZXJuYWxGb3JtYXQoKTsK
ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNz
Q29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIiLCAiaW52
YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygp
OworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICB9CiAKICAg
ICBHQzNEaW50IHZhbHVlID0gMDsKQEAgLTIzMzYsMzIgKzIzMTksMzIgQEAgV2ViR0xHZXRJbmZv
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihHQzNE
ZW51bSB0YXJnZXQKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVJfREVQ
VEhfU0laRToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVJfU1RFTkNJ
TF9TSVpFOgogICAgICAgICBtX2NvbnRleHQtPmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcml2KHRh
cmdldCwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUp
OworICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVO
REVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyht
X3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdldEludGVybmFsRm9ybWF0KCkpOworICAgICAgICByZXR1
cm4gbV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgpOwogICAgIGRlZmF1
bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElE
X0VOVU0sICJnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFt
ZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldFNoYWRlclBhcmFtZXRlcihXZWJHTFNoYWRlciogc2hhZGVyLCBHQzNEZW51bSBwbmFtZSkK
K1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNoYWRlclBhcmFtZXRlcihX
ZWJHTFNoYWRlciogc2hhZGVyLCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0
TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJnZXRTaGFkZXJQYXJhbWV0
ZXIiLCBzaGFkZXIpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIEdDM0RpbnQgdmFsdWUgPSAwOwogICAgIHN3aXRjaCAocG5hbWUp
IHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERUxFVEVfU1RBVFVTOgotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKHNoYWRlci0+aXNEZWxldGVkKCkpOworICAgICAgICByZXR1cm4g
c2hhZGVyLT5pc0RlbGV0ZWQoKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT01QSUxF
X1NUQVRVUzoKICAgICAgICAgbV9jb250ZXh0LT5nZXRTaGFkZXJpdihvYmplY3RPclplcm8oc2hh
ZGVyKSwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGlj
X2Nhc3Q8Ym9vbD4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJvb2w+KHZh
bHVlKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTSEFERVJfVFlQRToKICAgICAgICAg
bV9jb250ZXh0LT5nZXRTaGFkZXJpdihvYmplY3RPclplcm8oc2hhZGVyKSwgcG5hbWUsICZ2YWx1
ZSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50
Pih2YWx1ZSkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVlKTsK
ICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQz
RDo6SU5WQUxJRF9FTlVNLCAiZ2V0U2hhZGVyUGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVy
IG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTI0MTAsMTMgKzIzOTMsMTMgQEAgU3RyaW5nIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNoYWRlclNvdXJjZShXZWJHTFNoYWRlciogc2hhZGVy
KQogICAgIHJldHVybiBlbnN1cmVOb3ROdWxsKHNoYWRlci0+Z2V0U291cmNlKCkpOwogfQogCi1X
ZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFyYW1ldGVyKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFt
ZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIFdlYkdMVGV4dHVy
ZSogdGV4ID0gdmFsaWRhdGVUZXh0dXJlQmluZGluZygiZ2V0VGV4UGFyYW1ldGVyIiwgdGFyZ2V0
LCBmYWxzZSk7CiAgICAgaWYgKCF0ZXgpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAgICAgc3dp
dGNoIChwbmFtZSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUFHX0ZJ
TFRFUjoKQEAgLTI0MjQsMjcgKzI0MDcsMjcgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldFRleFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnUKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfUzoKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfVDoKICAgICAgICAgbV9jb250ZXh0LT5nZXRUZXhQ
YXJhbWV0ZXJpdih0YXJnZXQsIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZSk7CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlRF
WFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUOiAvLyBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9w
aWMKICAgICAgICAgaWYgKG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKSB7CiAgICAgICAg
ICAgICBtX2NvbnRleHQtPmdldFRleFBhcmFtZXRlcml2KHRhcmdldCwgcG5hbWUsICZ2YWx1ZSk7
Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGlu
dD4odmFsdWUpKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmFs
dWUpOwogICAgICAgICB9CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4
dDNEOjpJTlZBTElEX0VOVU0sICJnZXRUZXhQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIg
bmFtZSwgRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIG5vdCBlbmFibGVkIik7Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
ZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklO
VkFMSURfRU5VTSwgImdldFRleFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9u
KiB1bmlmb3JtTG9jYXRpb24pCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpn
ZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QgV2ViR0xVbmlmb3JtTG9jYXRp
b24qIHVuaWZvcm1Mb2NhdGlvbikKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygp
IHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJnZXRVbmlmb3JtIiwgcHJvZ3JhbSkpCi0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYg
KCF1bmlmb3JtTG9jYXRpb24gfHwgdW5pZm9ybUxvY2F0aW9uLT5wcm9ncmFtKCkgIT0gcHJvZ3Jh
bSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJ
RF9PUEVSQVRJT04sICJnZXRVbmlmb3JtIiwgIm5vIHVuaWZvcm1sb2NhdGlvbiBvciBub3QgdmFs
aWQgZm9yIHRoaXMgcHJvZ3JhbSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICBHQzNEaW50IGxvY2F0aW9uID0gdW5p
Zm9ybUxvY2F0aW9uLT5sb2NhdGlvbigpOwogCkBAIC0yNTE5LDcgKzI1MDIsNyBAQCBXZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0q
IHByb2dyYW0sIGNvbnN0CiAgICAgZGVmYXVsdDoKICAgICAgICAgLy8gQ2FuJ3QgaGFuZGxlIHRo
aXMgdHlwZQogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5W
QUxJRF9WQUxVRSwgImdldFVuaWZvcm0iLCAidW5oYW5kbGVkIHR5cGUiKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAg
c3dpdGNoIChiYXNlVHlwZSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUOiB7
CkBAIC0yNTI5LDggKzI1MTIsOCBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0CiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0VW5pZm9ybWZ2KG9iamVjdE9yWmVybyhwcm9n
cmFtKSwgbG9jYXRpb24sIHZhbHVlKTsKICAgICAgICAgaWYgKGxlbmd0aCA9PSAxKQotICAgICAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZVswXSk7Ci0gICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+KEZsb2F0MzJBcnJheTo6Y3JlYXRlKHZh
bHVlLCBsZW5ndGgpKSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVbMF07CisgICAgICAgIHJl
dHVybiBGbG9hdDMyQXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKTsKICAgICB9CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6SU5UOiB7CiAgICAgICAgIEdDM0RpbnQgdmFsdWVbNF0gPSB7
MH07CkBAIC0yNTM5LDggKzI1MjIsOCBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0VW5pZm9ybWl2KG9iamVjdE9yWmVybyhw
cm9ncmFtKSwgbG9jYXRpb24sIHZhbHVlKTsKICAgICAgICAgaWYgKGxlbmd0aCA9PSAxKQotICAg
ICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZVswXSk7Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oUGFzc1JlZlB0cjxJbnQzMkFycmF5PihJbnQzMkFycmF5OjpjcmVhdGUodmFs
dWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZVswXTsKKyAgICAgICAgcmV0
dXJuIEludDMyQXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKTsKICAgICB9CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6Qk9PTDogewogICAgICAgICBHQzNEaW50IHZhbHVlWzRdID0gezB9
OwpAQCAtMjU0OSwxMiArMjUzMiwxMiBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0VW5pZm9ybWl2KG9iamVjdE9yWmVybyhw
cm9ncmFtKSwgbG9jYXRpb24sIHZhbHVlKTsKICAgICAgICAgaWYgKGxlbmd0aCA+IDEpIHsKLSAg
ICAgICAgICAgIGJvb2wgYm9vbFZhbHVlWzE2XSA9IHswfTsKKyAgICAgICAgICAgIFZlY3Rvcjxi
b29sPiB2ZWN0b3IobGVuZ3RoKTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGog
PCBsZW5ndGg7IGorKykKLSAgICAgICAgICAgICAgICBib29sVmFsdWVbal0gPSBzdGF0aWNfY2Fz
dDxib29sPih2YWx1ZVtqXSk7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKGJvb2xW
YWx1ZSwgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICB2ZWN0b3Jbal0gPSB2YWx1ZVtqXTsKKyAg
ICAgICAgICAgIHJldHVybiBXVEZNb3ZlKHZlY3Rvcik7CiAgICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxib29sPih2YWx1ZVswXSkpOworICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWVbMF0pOwogICAgIH0KICAgICBkZWZhdWx0Ogog
ICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtMjU2Miw3ICsyNTQ1LDcgQEAgV2ViR0xHZXRJ
bmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBw
cm9ncmFtLCBjb25zdAogCiAgICAgLy8gSWYgd2UgZ2V0IGhlcmUsIHNvbWV0aGluZyB3ZW50IHdy
b25nIGluIG91ciB1bmZvcnR1bmF0ZWx5IGNvbXBsZXggbG9naWMgYWJvdmUKICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSwgImdldFVuaWZvcm0i
LCAidW5rbm93biBlcnJvciIpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAogUmVmUHRyPFdlYkdMVW5pZm9ybUxvY2F0aW9uPiBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtTG9jYXRpb24oV2ViR0xQcm9ncmFtKiBwcm9ncmFt
LCBjb25zdCBTdHJpbmcmIG5hbWUpCkBAIC0yNjAzLDQzICsyNTg2LDQzIEBAIFJlZlB0cjxXZWJH
TFVuaWZvcm1Mb2NhdGlvbj4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybUxv
Y2F0aW9uKFdlYkdMCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRyaWIoR0MzRHVpbnQgaW5kZXgsIEdD
M0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VmVy
dGV4QXR0cmliKEdDM0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXND
b250ZXh0TG9zdE9yUGVuZGluZygpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKGluZGV4ID49IG1fbWF4VmVydGV4QXR0
cmlicykgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5W
QUxJRF9WQUxVRSwgImdldFZlcnRleEF0dHJpYiIsICJpbmRleCBvdXQgb2YgcmFuZ2UiKTsKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAKICAgICBjb25zdCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6VmVydGV4QXR0cmli
U3RhdGUmIHN0YXRlID0gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRWZXJ0ZXhBdHRyaWJT
dGF0ZShpbmRleCk7CiAKICAgICBpZiAoKGlzV2ViR0wyKCkgfHwgbV9hbmdsZUluc3RhbmNlZEFy
cmF5cykgJiYgcG5hbWUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlf
RElWSVNPUl9BTkdMRSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS5kaXZpc29y
KTsKKyAgICAgICAgcmV0dXJuIHN0YXRlLmRpdmlzb3I7CiAKICAgICBzd2l0Y2ggKHBuYW1lKSB7
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJf
QklORElORzoKICAgICAgICAgaWYgKCghaXNHTEVTMkNvbXBsaWFudCgpICYmICFpbmRleCAmJiBt
X2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldFZlcnRleEF0dHJpYlN0YXRlKDApLmJ1ZmZlckJp
bmRpbmcgPT0gbV92ZXJ0ZXhBdHRyaWIwQnVmZmVyKQogICAgICAgICAgICAgfHwgIXN0YXRlLmJ1
ZmZlckJpbmRpbmcKICAgICAgICAgICAgIHx8ICFzdGF0ZS5idWZmZXJCaW5kaW5nLT5vYmplY3Qo
KSkKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPihzdGF0ZS5idWZmZXJCaW5kaW5nKSk7
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHN0YXRlLmJ1ZmZl
ckJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJB
WV9FTkFCTEVEOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRlLmVuYWJsZWQpOwor
ICAgICAgICByZXR1cm4gc3RhdGUuZW5hYmxlZDsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpWRVJURVhfQVRUUklCX0FSUkFZX05PUk1BTElaRUQ6Ci0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oc3RhdGUubm9ybWFsaXplZCk7CisgICAgICAgIHJldHVybiBzdGF0ZS5ub3JtYWxpemVk
OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRToK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS5zaXplKTsKKyAgICAgICAgcmV0dXJu
IHN0YXRlLnNpemU7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX0FUVFJJQl9B
UlJBWV9TVFJJREU6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGUub3JpZ2luYWxT
dHJpZGUpOworICAgICAgICByZXR1cm4gc3RhdGUub3JpZ2luYWxTdHJpZGU7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFOgotICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKHN0YXRlLnR5cGUpOworICAgICAgICByZXR1cm4gc3RhdGUudHlwZTsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVVJSRU5UX1ZFUlRFWF9BVFRSSUI6Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+KEZsb2F0MzJB
cnJheTo6Y3JlYXRlKG1fdmVydGV4QXR0cmliVmFsdWVbaW5kZXhdLnZhbHVlLCA0KSkpOworICAg
ICAgICByZXR1cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUobV92ZXJ0ZXhBdHRyaWJWYWx1ZVtpbmRl
eF0udmFsdWUsIDQpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRWZXJ0ZXhBdHRyaWIiLCAiaW52YWxp
ZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMjY0Nyw4ICsyNjMwLDcgQEAgbG9u
ZyBsb25nIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0dHJpYk9mZnNldChH
QzNEdWludCBpbmRleCwgR0MzRGUKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygp
KQogICAgICAgICByZXR1cm4gMDsKLSAgICBHQzNEc2l6ZWlwdHIgcmVzdWx0ID0gbV9jb250ZXh0
LT5nZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoaW5kZXgsIHBuYW1lKTsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8bG9uZyBsb25nPihyZXN1bHQpOworICAgIHJldHVybiBtX2NvbnRleHQtPmdldFZlcnRl
eEF0dHJpYk9mZnNldChpbmRleCwgcG5hbWUpOwogfQogCiBHQzNEYm9vbGVhbiBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjppc0J1ZmZlcihXZWJHTEJ1ZmZlciogYnVmZmVyKQpAQCAtMzExMCw4
ICszMDkyLDggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZWFkUGl4ZWxzKEdD
M0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgKICN1bmRlZiBQQUNLRURfSU5URVJO
QUxfRk9STUFUX0NIRUNLCiAKICAgICAvLyBDYWxjdWxhdGUgYXJyYXkgc2l6ZSwgdGFraW5nIGlu
dG8gY29uc2lkZXJhdGlvbiBvZiBQQUNLX0FMSUdOTUVOVC4KLSAgICB1bnNpZ25lZCBpbnQgdG90
YWxCeXRlc1JlcXVpcmVkID0gMDsKLSAgICB1bnNpZ25lZCBpbnQgcGFkZGluZyA9IDA7CisgICAg
dW5zaWduZWQgdG90YWxCeXRlc1JlcXVpcmVkID0gMDsKKyAgICB1bnNpZ25lZCBwYWRkaW5nID0g
MDsKICAgICBpZiAoIW1faXNSb2J1c3RuZXNzRVhUU3VwcG9ydGVkKSB7CiAgICAgICAgIEdDM0Rl
bnVtIGVycm9yID0gbV9jb250ZXh0LT5jb21wdXRlSW1hZ2VTaXplSW5CeXRlcyhmb3JtYXQsIHR5
cGUsIHdpZHRoLCBoZWlnaHQsIG1fcGFja0FsaWdubWVudCwgJnRvdGFsQnl0ZXNSZXF1aXJlZCwg
JnBhZGRpbmcpOwogICAgICAgICBpZiAoZXJyb3IgIT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PX0VS
Uk9SKSB7CkBAIC00NTg3LDcgKzQ1NjksNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OnZlcnRleEF0dHJpYlBvaW50ZXIoR0MzRHVpbnQgaW5kZXgsIEdDM0RpbnQgc2l6ZQogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIC8vIERldGVybWluZSB0aGUgbnVtYmVyIG9mIGVsZW1l
bnRzIHRoZSBib3VuZCBidWZmZXIgY2FuIGhvbGQsIGdpdmVuIHRoZSBvZmZzZXQsIHNpemUsIHR5
cGUgYW5kIHN0cmlkZQotICAgIHVuc2lnbmVkIGludCB0eXBlU2l6ZSA9IHNpemVJbkJ5dGVzKHR5
cGUpOworICAgIGF1dG8gdHlwZVNpemUgPSBzaXplSW5CeXRlcyh0eXBlKTsKICAgICBpZiAoIXR5
cGVTaXplKSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlZBTElEX0VOVU0sICJ2ZXJ0ZXhBdHRyaWJQb2ludGVyIiwgImludmFsaWQgdHlwZSIpOwogICAg
ICAgICByZXR1cm47CkBAIC00NTk4LDcgKzQ1ODAsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OnZlcnRleEF0dHJpYlBvaW50ZXIoR0MzRHVpbnQgaW5kZXgsIEdDM0RpbnQgc2l6
ZQogICAgIH0KICAgICBHQzNEc2l6ZWkgYnl0ZXNQZXJFbGVtZW50ID0gc2l6ZSAqIHR5cGVTaXpl
OwogCi0gICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5zZXRWZXJ0ZXhBdHRyaWJTdGF0ZShp
bmRleCwgYnl0ZXNQZXJFbGVtZW50LCBzaXplLCB0eXBlLCBub3JtYWxpemVkLCBzdHJpZGUsIHN0
YXRpY19jYXN0PEdDM0RpbnRwdHI+KG9mZnNldCksIG1fYm91bmRBcnJheUJ1ZmZlcik7CisgICAg
bV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5zZXRWZXJ0ZXhBdHRyaWJTdGF0ZShpbmRleCwgYnl0
ZXNQZXJFbGVtZW50LCBzaXplLCB0eXBlLCBub3JtYWxpemVkLCBzdHJpZGUsIHN0YXRpY19jYXN0
PEdDM0RpbnRwdHI+KG9mZnNldCksICptX2JvdW5kQXJyYXlCdWZmZXIpOwogICAgIG1fY29udGV4
dC0+dmVydGV4QXR0cmliUG9pbnRlcihpbmRleCwgc2l6ZSwgdHlwZSwgbm9ybWFsaXplZCwgc3Ry
aWRlLCBzdGF0aWNfY2FzdDxHQzNEaW50cHRyPihvZmZzZXQpKTsKIH0KIApAQCAtNDY4OSw3ICs0
NjcxLDcgQEAgUGxhdGZvcm1MYXllciogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cGxhdGZv
cm1MYXllcigpIGNvbnN0CiAgICAgcmV0dXJuICghaXNDb250ZXh0TG9zdCgpICYmICFtX2lzUGVu
ZGluZ1BvbGljeVJlc29sdXRpb24pID8gbV9jb250ZXh0LT5wbGF0Zm9ybUxheWVyKCkgOiAwOwog
fQogCi12b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlbW92ZVNoYXJlZE9iamVjdChX
ZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0KQordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpyZW1vdmVTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmIG9iamVjdCkKIHsKICAgICBp
ZiAobV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKQogICAgICAgICByZXR1cm47CkBAIC00Njk3
LDcgKzQ2NzksNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlbW92ZVNoYXJl
ZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0KQogICAgIG1fY29udGV4dEdyb3VwLT5y
ZW1vdmVPYmplY3Qob2JqZWN0KTsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjphZGRTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCkKK3ZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0JiBv
YmplY3QpCiB7CiAgICAgaWYgKG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikKICAgICAgICAg
cmV0dXJuOwpAQCAtNDcwNiwyMSArNDY4OCwyMSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmFkZFNoYXJlZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0KQogICAgIG1f
Y29udGV4dEdyb3VwLT5hZGRPYmplY3Qob2JqZWN0KTsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpyZW1vdmVDb250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCogb2Jq
ZWN0KQordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVDb250ZXh0T2JqZWN0
KFdlYkdMQ29udGV4dE9iamVjdCYgb2JqZWN0KQogewogICAgIGlmIChtX2lzUGVuZGluZ1BvbGlj
eVJlc29sdXRpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY29udGV4dE9iamVjdHMucmVt
b3ZlKG9iamVjdCk7CisgICAgbV9jb250ZXh0T2JqZWN0cy5yZW1vdmUoJm9iamVjdCk7CiB9CiAK
LXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRkQ29udGV4dE9iamVjdChXZWJHTENv
bnRleHRPYmplY3QqIG9iamVjdCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRk
Q29udGV4dE9iamVjdChXZWJHTENvbnRleHRPYmplY3QmIG9iamVjdCkKIHsKICAgICBpZiAobV9p
c1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQo
IWlzQ29udGV4dExvc3QoKSk7Ci0gICAgbV9jb250ZXh0T2JqZWN0cy5hZGQob2JqZWN0KTsKKyAg
ICBtX2NvbnRleHRPYmplY3RzLmFkZCgmb2JqZWN0KTsKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCkKQEAgLTQ3NTgsNTYgKzQ3
NDAsNTYgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjYW5TdXNwZW5kRm9yRG9j
dW1lbnRTdXNwZW5zaW9uKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVdlYkdMR2V0
SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuUGFyYW1ldGVyKEdDM0Rl
bnVtIHBuYW1lKQorYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuUGFy
YW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdDM0Rib29sZWFuIHZhbHVlID0gMDsKICAg
ICBtX2NvbnRleHQtPmdldEJvb2xlYW52KHBuYW1lLCAmdmFsdWUpOwotICAgIHJldHVybiBXZWJH
TEdldEluZm8oc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWUpKTsKKyAgICByZXR1cm4gdmFsdWU7CiB9
CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuQXJy
YXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitWZWN0b3I8Ym9vbD4gV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Z2V0Qm9vbGVhbkFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewog
ICAgIGlmIChwbmFtZSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfV1JJVEVNQVNLKSB7CiAg
ICAgICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oMCwg
MCk7CisgICAgICAgIHJldHVybiB7IH07CiAgICAgfQotICAgIEdDM0Rib29sZWFuIHZhbHVlWzRd
ID0gezB9OworICAgIEdDM0Rib29sZWFuIHZhbHVlWzRdID0geyAwIH07CiAgICAgbV9jb250ZXh0
LT5nZXRCb29sZWFudihwbmFtZSwgdmFsdWUpOwotICAgIGJvb2wgYm9vbFZhbHVlWzRdOwotICAg
IGZvciAoaW50IGlpID0gMDsgaWkgPCA0OyArK2lpKQotICAgICAgICBib29sVmFsdWVbaWldID0g
c3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWVbaWldKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKGJv
b2xWYWx1ZSwgNCk7CisgICAgVmVjdG9yPGJvb2w+IHZlY3Rvcig0KTsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgNDsgKytpKQorICAgICAgICB2ZWN0b3JbaV0gPSB2YWx1ZVtpXTsKKyAg
ICByZXR1cm4gdmVjdG9yOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6Z2V0RmxvYXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitmbG9hdCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpnZXRGbG9hdFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAg
ICBHQzNEZmxvYXQgdmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0RmxvYXR2KHBuYW1lLCAm
dmFsdWUpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgIHJldHVybiB2YWx1
ZTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEludFBh
cmFtZXRlcihHQzNEZW51bSBwbmFtZSkKK2ludCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpn
ZXRJbnRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGludCB2YWx1ZSA9IDA7
CiAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihwbmFtZSwgJnZhbHVlKTsKLSAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICByZXR1cm4gdmFsdWU7CiB9CiAKLVdlYkdMR2V0SW5m
byBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbnNpZ25lZEludFBhcmFtZXRlcihHQzNE
ZW51bSBwbmFtZSkKK3Vuc2lnbmVkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuc2ln
bmVkSW50UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdDM0RpbnQgdmFsdWUgPSAw
OwogICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYocG5hbWUsICZ2YWx1ZSk7Ci0gICAgcmV0dXJu
IFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZhbHVlKSk7CisgICAgcmV0
dXJuIHZhbHVlOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0SW50NjRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitsb25nIGxvbmcgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0SW50NjRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAg
R0MzRGludDY0IHZhbHVlID0gMDsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXI2NHYocG5hbWUs
ICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgcmV0dXJuIHZh
bHVlOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2Vi
R0xGbG9hdEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQorUmVmUHRyPEZsb2F0MzJBcnJh
eT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVy
KEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdDM0RmbG9hdCB2YWx1ZVs0XSA9IHswfTsKICAgICBt
X2NvbnRleHQtPmdldEZsb2F0dihwbmFtZSwgdmFsdWUpOwpAQCAtNDgyNSwxMCArNDgwNywxMCBA
QCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xGbG9hdEFy
cmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYQogICAgIGRlZmF1bHQ6CiAgICAgICAgIG5vdEltcGxl
bWVudGVkKCk7CiAgICAgfQotICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxGbG9h
dDMyQXJyYXk+KEZsb2F0MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgpKSk7CisgICAgcmV0
dXJuIEZsb2F0MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgpOwogfQogCi1XZWJHTEdldElu
Zm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSkKK1JlZlB0cjxJbnQzMkFycmF5PiBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdD
M0RpbnQgdmFsdWVbNF0gPSB7MH07CiAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihwbmFtZSwg
dmFsdWUpOwpAQCAtNDg0NCw3ICs0ODI2LDcgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUKICAg
ICBkZWZhdWx0OgogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIH0KLSAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8SW50MzJBcnJheT4oSW50MzJBcnJheTo6Y3JlYXRlKHZh
bHVlLCBsZW5ndGgpKSk7CisgICAgcmV0dXJuIEludDMyQXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVu
Z3RoKTsKIH0KIAogYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjaGVja1RleHR1cmVD
b21wbGV0ZW5lc3MoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBib29sIHByZXBhcmVUb0RyYXcp
CkBAIC01MDY4LDcgKzUwNTAsNyBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZh
bGlkYXRlQ29tcHJlc3NlZFRleEZ1bmNEYXRhKGNvbnN0IGNoYXIqIGZ1bmN0aQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgdW5zaWduZWQgaW50IGJ5dGVzUmVxdWlyZWQgPSAw
OworICAgIHVuc2lnbmVkIGJ5dGVzUmVxdWlyZWQgPSAwOwogCiAgICAgc3dpdGNoIChmb3JtYXQp
IHsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VYVDoK
QEAgLTUzMjUsMTcgKzUzMDcsMTYgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2
YWxpZGF0ZVVuaWZvcm1NYXRyaXhQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGZ1bmMKIAogV2ViR0xC
dWZmZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlQnVmZmVyRGF0YVBhcmFt
ZXRlcnMoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IHVzYWdlKQogewotICAgIFdlYkdMQnVmZmVyKiBidWZmZXIgPSAwOworICAgIHN0ZDo6b3B0aW9u
YWw8V2ViR0xCdWZmZXIqPiBidWZmZXI7CiAgICAgc3dpdGNoICh0YXJnZXQpIHsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpFTEVNRU5UX0FSUkFZX0JVRkZFUjoKLSAgICAgICAgYnVmZmVy
ID0gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKS5nZXQo
KTsKKyAgICAgICAgYnVmZmVyID0gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRFbGVtZW50
QXJyYXlCdWZmZXIoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6QVJSQVlfQlVGRkVSOgogICAgICAgICBidWZmZXIgPSBtX2JvdW5kQXJyYXlCdWZmZXIuZ2V0
KCk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAjaWYgRU5BQkxFKFdFQkdMMikKLSAg
ICAgICAgYm9vbCBzdWNjZXNzID0gdHJ1ZTsKICAgICAgICAgaWYgKGlzV2ViR0wyKCkpIHsKICAg
ICAgICAgICAgIHN3aXRjaCAodGFyZ2V0KSB7CiAgICAgICAgICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpDT1BZX1JFQURfQlVGRkVSOgpAQCAtNTM1NiwxOSArNTMzNywxNSBAQCBXZWJHTEJ1
ZmZlciogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVCdWZmZXJEYXRhUGFyYW1l
dGVycyhjb25zdCBjaGFyKgogICAgICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5J
Rk9STV9CVUZGRVI6CiAgICAgICAgICAgICAgICAgYnVmZmVyID0gbV9ib3VuZFVuaWZvcm1CdWZm
ZXIuZ2V0KCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0Ogot
ICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBzdWNjZXNzID0gZmFs
c2U7Ci0gICAgICAgIGlmIChzdWNjZXNzKQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBpZiAoYnVmZmVyKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAjZW5kaWYK
ICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5V
TSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCB0YXJnZXQiKTsKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQotICAgIGlmICghYnVmZmVyKSB7CisgICAgaWYgKCFidWZmZXIgfHwgIWJ1ZmZl
ci52YWx1ZSgpKSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNE
OjpJTlZBTElEX09QRVJBVElPTiwgZnVuY3Rpb25OYW1lLCAibm8gYnVmZmVyIik7CiAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KQEAgLTUzNzYsNyArNTM1Myw3IEBAIFdlYkdMQnVmZmVy
KiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxpZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0ZXJz
KGNvbnN0IGNoYXIqCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RSRUFNX0RSQVc6CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RBVElDX0RSQVc6CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6RFlOQU1JQ19EUkFXOgotICAgICAgICByZXR1cm4gYnVmZmVyOworICAgICAg
ICByZXR1cm4gYnVmZmVyLnZhbHVlKCk7CiAgICAgfQogICAgIHN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgdXNh
Z2UiKTsKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTU5MjYsNiArNTkwMywxNiBAQCB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJpYkRpdmlzb3IoR0MzRHVpbnQgaW5k
ZXgsIEdDM0R1aW50IGRpdgogICAgIG1fY29udGV4dC0+dmVydGV4QXR0cmliRGl2aXNvcihpbmRl
eCwgZGl2aXNvcik7CiB9CiAKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZW5hYmxl
U3VwcG9ydGVkRXh0ZW5zaW9uKGNvbnN0IGNoYXIqIGV4dGVuc2lvbk5hbWVMaXRlcmFsKQorewor
ICAgIEFTU0VSVChtX2NvbnRleHQpOworICAgIGF1dG8mIGV4dGVuc2lvbnMgPSBtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKTsKKyAgICBTdHJpbmcgZXh0ZW5zaW9uTmFtZSB7IEFTQ0lJTGl0ZXJh
bCB7IGV4dGVuc2lvbk5hbWVMaXRlcmFsIH0gfTsKKyAgICBpZiAoIWV4dGVuc2lvbnMuc3VwcG9y
dHMoZXh0ZW5zaW9uTmFtZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBleHRlbnNpb25z
LmVuc3VyZUVuYWJsZWQoZXh0ZW5zaW9uTmFtZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IDczOTNhMzg2MjgzM2ZjYjg2
YmIxNzFiMjA2YjI3YmNlZDliMzllY2YuLjlmOWU4YjY0MWZmNmJjZDM5YWQyNzU2ZDI3Mzc3ZGUy
MzI5Y2RmNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCwxMyArMzAsMTAgQEAKICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAi
VGltZXIuaCIKKyNpbmNsdWRlICJXZWJHTEFueS5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEF0
dHJpYnV0ZXMuaCIKLSNpbmNsdWRlICJXZWJHTEdldEluZm8uaCIKLSNpbmNsdWRlICJXZWJHTE9i
amVjdC5oIgogI2luY2x1ZGUgIldlYkdMVGV4dHVyZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KLSNp
bmNsdWRlIDxydW50aW1lL0Zsb2F0MzJBcnJheS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSW50MzJB
cnJheS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ4LDcgKzQ1LDYgQEAgY2xhc3Mg
RVhUc1JHQjsKIGNsYXNzIEVYVEZyYWdEZXB0aDsKIGNsYXNzIEhUTUxJbWFnZUVsZW1lbnQ7CiBj
bGFzcyBIVE1MVmlkZW9FbGVtZW50OwotY2xhc3MgSW1hZ2VCdWZmZXI7CiBjbGFzcyBJbWFnZURh
dGE7CiBjbGFzcyBJbnRTaXplOwogY2xhc3MgT0VTU3RhbmRhcmREZXJpdmF0aXZlczsKQEAgLTE5
MSwyNCArMTg3LDI0IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8V2ViR0xBY3RpdmVJbmZvPiBnZXRB
Y3RpdmVVbmlmb3JtKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50IGluZGV4KTsKICAgICBib29sIGdl
dEF0dGFjaGVkU2hhZGVycyhXZWJHTFByb2dyYW0qLCBWZWN0b3I8UmVmUHRyPFdlYkdMU2hhZGVy
Pj4mKTsKICAgICBHQzNEaW50IGdldEF0dHJpYkxvY2F0aW9uKFdlYkdMUHJvZ3JhbSosIGNvbnN0
IFN0cmluZyYgbmFtZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEJ1ZmZlclBhcmFtZXRlcihHQzNE
ZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBnZXRCdWZmZXJQYXJh
bWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7CiAgICAgc3RkOjpvcHRpb25h
bDxXZWJHTENvbnRleHRBdHRyaWJ1dGVzPiBnZXRDb250ZXh0QXR0cmlidXRlcygpOwogICAgIEdD
M0RlbnVtIGdldEVycm9yKCk7CiAgICAgdmlydHVhbCBXZWJHTEV4dGVuc2lvbiogZ2V0RXh0ZW5z
aW9uKGNvbnN0IFN0cmluZyYgbmFtZSkgPSAwOwotICAgIHZpcnR1YWwgV2ViR0xHZXRJbmZvIGdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKSA9IDA7Ci0gICAgdmlydHVhbCBXZWJHTEdldElu
Zm8gZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSA9IDA7Ci0gICAgV2ViR0xHZXRJbmZvIGdl
dFByb2dyYW1QYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRGVudW0gcG5hbWUpOworICAgIHZp
cnR1YWwgV2ViR0xBbnkgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVt
IHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpID0gMDsKKyAgICB2
aXJ0dWFsIFdlYkdMQW55IGdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkgPSAwOworICAgIFdl
YkdMQW55IGdldFByb2dyYW1QYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRGVudW0gcG5hbWUp
OwogICAgIFN0cmluZyBnZXRQcm9ncmFtSW5mb0xvZyhXZWJHTFByb2dyYW0qKTsKLSAgICBXZWJH
TEdldEluZm8gZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVu
dW0gcG5hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRTaGFkZXJQYXJhbWV0ZXIoV2ViR0xTaGFk
ZXIqLCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0UmVuZGVyYnVmZmVyUGFyYW1l
dGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldFNo
YWRlclBhcmFtZXRlcihXZWJHTFNoYWRlciosIEdDM0RlbnVtIHBuYW1lKTsKICAgICBTdHJpbmcg
Z2V0U2hhZGVySW5mb0xvZyhXZWJHTFNoYWRlciopOwogICAgIFJlZlB0cjxXZWJHTFNoYWRlclBy
ZWNpc2lvbkZvcm1hdD4gZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KEdDM0RlbnVtIHNoYWRlclR5
cGUsIEdDM0RlbnVtIHByZWNpc2lvblR5cGUpOwogICAgIFN0cmluZyBnZXRTaGFkZXJTb3VyY2Uo
V2ViR0xTaGFkZXIqKTsKICAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGdldFN1cHBvcnRlZEV4
dGVuc2lvbnMoKSA9IDA7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFRleFBhcmFtZXRlcihHQzNEZW51
bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0VW5pZm9ybShX
ZWJHTFByb2dyYW0qLCBjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiopOworICAgIFdlYkdMQW55
IGdldFRleFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBX
ZWJHTEFueSBnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0
aW9uKik7CiAgICAgUmVmUHRyPFdlYkdMVW5pZm9ybUxvY2F0aW9uPiBnZXRVbmlmb3JtTG9jYXRp
b24oV2ViR0xQcm9ncmFtKiwgY29uc3QgU3RyaW5nJik7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFZl
cnRleEF0dHJpYihHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55
IGdldFZlcnRleEF0dHJpYihHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUpOwogICAgIGxv
bmcgbG9uZyBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBu
YW1lKTsKIAogICAgIHZpcnR1YWwgdm9pZCBoaW50KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0g
bW9kZSkgPSAwOwpAQCAtMzIzLDggKzMxOSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhaW50UmVu
ZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCkgb3ZlcnJpZGU7CiAgICAgUmVmUHRyPEltYWdlRGF0YT4g
cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9JbWFnZURhdGEoKTsKIAotICAgIHZvaWQgcmVtb3ZlU2hh
cmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Kik7Ci0gICAgdm9pZCByZW1vdmVDb250ZXh0T2Jq
ZWN0KFdlYkdMQ29udGV4dE9iamVjdCopOworICAgIHZvaWQgcmVtb3ZlU2hhcmVkT2JqZWN0KFdl
YkdMU2hhcmVkT2JqZWN0Jik7CisgICAgdm9pZCByZW1vdmVDb250ZXh0T2JqZWN0KFdlYkdMQ29u
dGV4dE9iamVjdCYpOwogICAgIAogICAgIHVuc2lnbmVkIGdldE1heFZlcnRleEF0dHJpYnMoKSBj
b25zdCB7IHJldHVybiBtX21heFZlcnRleEF0dHJpYnM7IH0KIApAQCAtMzM1LDcgKzMzMSw3IEBA
IHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRN
TENhbnZhc0VsZW1lbnQmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKLSAgICBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlKEhUTUxDYW52YXNFbGVtZW50JiwgUmVmUHRyPEdyYXBoaWNzQ29udGV4
dDNEPiYmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKKyAgICBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlKEhUTUxDYW52YXNFbGVtZW50JiwgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmLCBXZWJH
TENvbnRleHRBdHRyaWJ1dGVzKTsKIAogICAgIGZyaWVuZCBjbGFzcyBXZWJHTERyYXdCdWZmZXJz
OwogICAgIGZyaWVuZCBjbGFzcyBXZWJHTEZyYW1lYnVmZmVyOwpAQCAtMzYwLDggKzM1Niw4IEBA
IHByb3RlY3RlZDoKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGFkZFNoYXJlZE9iamVjdChXZWJHTFNoYXJlZE9iamVj
dCopOwotICAgIHZvaWQgYWRkQ29udGV4dE9iamVjdChXZWJHTENvbnRleHRPYmplY3QqKTsKKyAg
ICB2b2lkIGFkZFNoYXJlZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCYpOworICAgIHZvaWQgYWRk
Q29udGV4dE9iamVjdChXZWJHTENvbnRleHRPYmplY3QmKTsKICAgICB2b2lkIGRldGFjaEFuZFJl
bW92ZUFsbE9iamVjdHMoKTsKIAogICAgIHZvaWQgZGVzdHJveUdyYXBoaWNzQ29udGV4dDNEKCk7
CkBAIC00MDUsNiArNDAxLDggQEAgcHJvdGVjdGVkOgogCiAgICAgV2ViR0xUZXh0dXJlOjpUZXh0
dXJlRXh0ZW5zaW9uRmxhZyB0ZXh0dXJlRXh0ZW5zaW9uRmxhZ3MoKSBjb25zdDsKIAorICAgIGJv
b2wgZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKGNvbnN0IGNoYXIqIGV4dGVuc2lvbk5hbWVMaXRl
cmFsKTsKKwogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0OwogICAgIFJl
ZlB0cjxXZWJHTENvbnRleHRHcm91cD4gbV9jb250ZXh0R3JvdXA7CiAKQEAgLTQxNCw3ICs0MTIs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gb24gaG93IGV4YWN0bHkgdGhlIHBsYXRmb3JtIGRpc2Nv
dmVycyB0aGF0IHRoZSBjb250ZXh0IHdhcyBsb3N0LiBGb3IgYmV0dGVyCiAgICAgLy8gcG9ydGFi
aWxpdHkgd2UgYWx3YXlzIGRlZmVyIHRoZSBkaXNwYXRjaCBvZiB0aGUgZXZlbnQuCiAgICAgVGlt
ZXIgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lcjsKLSAgICBib29sIG1fcmVzdG9yZUFs
bG93ZWQ7CisgICAgYm9vbCBtX3Jlc3RvcmVBbGxvd2VkIHsgZmFsc2UgfTsKICAgICBUaW1lciBt
X3Jlc3RvcmVUaW1lcjsKIAogICAgIGJvb2wgbV9uZWVkc1VwZGF0ZTsKQEAgLTQzMiwxMiArNDMw
LDEwIEBAIHByb3RlY3RlZDoKIAogICAgIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFz
ZT4gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiAgICAgUmVmUHRyPFdlYkdMVmVydGV4QXJy
YXlPYmplY3RCYXNlPiBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3Q7Ci0gICAgdm9pZCBzZXRCb3Vu
ZFZlcnRleEFycmF5T2JqZWN0KFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U+
IGFycmF5T2JqZWN0KQorCisgICAgdm9pZCBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KFdlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlKiBhcnJheU9iamVjdCkKICAgICB7Ci0gICAgICAgIGlmIChh
cnJheU9iamVjdCkKLSAgICAgICAgICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCA9IGFycmF5
T2JqZWN0OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmpl
Y3QgPSBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdDsKKyAgICAgICAgbV9ib3VuZFZlcnRleEFy
cmF5T2JqZWN0ID0gYXJyYXlPYmplY3QgPyBhcnJheU9iamVjdCA6IG1fZGVmYXVsdFZlcnRleEFy
cmF5T2JqZWN0OwogICAgIH0KICAgICAKICAgICBjbGFzcyBWZXJ0ZXhBdHRyaWJWYWx1ZSB7CkBA
IC00OTMsMTIgKzQ4OSwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxz
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+W10+IG1fYnVmZmVyczsKICAgICAgICAgaW50IG1f
Y2FwYWNpdHk7CiAgICAgfTsKLSAgICBMUlVJbWFnZUJ1ZmZlckNhY2hlIG1fZ2VuZXJhdGVkSW1h
Z2VDYWNoZTsKKyAgICBMUlVJbWFnZUJ1ZmZlckNhY2hlIG1fZ2VuZXJhdGVkSW1hZ2VDYWNoZSB7
IDAgfTsKIAogICAgIEdDM0RpbnQgbV9tYXhUZXh0dXJlU2l6ZTsKICAgICBHQzNEaW50IG1fbWF4
Q3ViZU1hcFRleHR1cmVTaXplOwogICAgIEdDM0RpbnQgbV9tYXhSZW5kZXJidWZmZXJTaXplOwot
ICAgIEdDM0RpbnQgbV9tYXhWaWV3cG9ydERpbXNbMl07CisgICAgR0MzRGludCBtX21heFZpZXdw
b3J0RGltc1syXSB7IDAsIDAgfTsKICAgICBHQzNEaW50IG1fbWF4VGV4dHVyZUxldmVsOwogICAg
IEdDM0RpbnQgbV9tYXhDdWJlTWFwVGV4dHVyZUxldmVsOwogCkBAIC01MTMsOCArNTA5LDggQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgbV91bnBhY2tGbGlwWTsKICAgICBib29sIG1fdW5wYWNrUHJl
bXVsdGlwbHlBbHBoYTsKICAgICBHQzNEZW51bSBtX3VucGFja0NvbG9yc3BhY2VDb252ZXJzaW9u
OwotICAgIGJvb2wgbV9jb250ZXh0TG9zdDsKLSAgICBMb3N0Q29udGV4dE1vZGUgbV9jb250ZXh0
TG9zdE1vZGU7CisgICAgYm9vbCBtX2NvbnRleHRMb3N0IHsgZmFsc2UgfTsKKyAgICBMb3N0Q29u
dGV4dE1vZGUgbV9jb250ZXh0TG9zdE1vZGUgeyBTeW50aGV0aWNMb3N0Q29udGV4dCB9OwogICAg
IFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgbV9hdHRyaWJ1dGVzOwogCiAgICAgYm9vbCBtX2xheWVy
Q2xlYXJlZDsKQEAgLTUzNSwxNyArNTMxLDE4IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1faXNE
ZXB0aFN0ZW5jaWxTdXBwb3J0ZWQ7CiAgICAgYm9vbCBtX2lzUm9idXN0bmVzc0VYVFN1cHBvcnRl
ZDsKIAotICAgIGJvb2wgbV9zeW50aGVzaXplZEVycm9yc1RvQ29uc29sZTsKKyAgICBib29sIG1f
c3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUgeyB0cnVlIH07CiAgICAgaW50IG1fbnVtR0xFcnJv
cnNUb0NvbnNvbGVBbGxvd2VkOwogCiAgICAgLy8gQSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgY2Fu
IGJlIGNyZWF0ZWQgaW4gYSBzdGF0ZSB3aGVyZSBpdCBhcHBlYXJzIGFzCiAgICAgLy8gYSB2YWxp
ZCBhbmQgYWN0aXZlIGNvbnRleHQsIGJ1dCB3aWxsIG5vdCBleGVjdXRlIGFueSBpbXBvcnRhbnQg
b3BlcmF0aW9ucwogICAgIC8vIHVudGlsIGl0cyBsb2FkIHBvbGljeSBpcyBjb21wbGV0ZWx5IHJl
c29sdmVkLgotICAgIGJvb2wgbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uOwotICAgIGJvb2wg
bV9oYXNSZXF1ZXN0ZWRQb2xpY3lSZXNvbHV0aW9uOworICAgIGJvb2wgbV9pc1BlbmRpbmdQb2xp
Y3lSZXNvbHV0aW9uIHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFzUmVxdWVzdGVkUG9saWN5UmVz
b2x1dGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCk7CiAK
LSAgICAvLyBFbmFibGVkIGV4dGVuc2lvbiBvYmplY3RzLiBGSVhNRTogTW92ZSB0aGVzZSB0byBX
ZWJHTDFSZW5kZXJpbmdDb250ZXh0LCBub3QgbmVlZGVkIGZvciBXZWJHTDIKKyAgICAvLyBFbmFi
bGVkIGV4dGVuc2lvbiBvYmplY3RzLgorICAgIC8vIEZJWE1FOiBNb3ZlIHNvbWUgb2YgdGhlc2Ug
dG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0LCB0aGUgb25lcyBub3QgbmVlZGVkIGZvciBXZWJHTDIK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8RVhURnJhZ0RlcHRoPiBtX2V4dEZyYWdEZXB0aDsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RVhUQmxlbmRNaW5NYXg+IG1fZXh0QmxlbmRNaW5NYXg7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEVYVHNSR0I+IG1fZXh0c1JHQjsKQEAgLTU2OCwxNSArNTY1LDE1IEBAIHBy
b3RlY3RlZDoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xEcmF3QnVmZmVycz4gbV93ZWJnbERy
YXdCdWZmZXJzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBTkdMRUluc3RhbmNlZEFycmF5cz4gbV9h
bmdsZUluc3RhbmNlZEFycmF5czsKIAotICAgIC8vIEhlbHBlcnMgZm9yIGdldFBhcmFtZXRlciBh
bmQgb3RoZXJzCi0gICAgV2ViR0xHZXRJbmZvIGdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0p
OwotICAgIFdlYkdMR2V0SW5mbyBnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0pOwot
ICAgIFdlYkdMR2V0SW5mbyBnZXRGbG9hdFBhcmFtZXRlcihHQzNEZW51bSk7Ci0gICAgV2ViR0xH
ZXRJbmZvIGdldEludFBhcmFtZXRlcihHQzNEZW51bSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFVu
c2lnbmVkSW50UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0SW50NjRQ
YXJhbWV0ZXIoR0MzRGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRXZWJHTEZsb2F0QXJyYXlQ
YXJhbWV0ZXIoR0MzRGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRXZWJHTEludEFycmF5UGFy
YW1ldGVyKEdDM0RlbnVtKTsKKyAgICAvLyBIZWxwZXJzIGZvciBnZXRQYXJhbWV0ZXIgYW5kIG90
aGVyIHNpbWlsYXIgZnVuY3Rpb25zLgorICAgIGJvb2wgZ2V0Qm9vbGVhblBhcmFtZXRlcihHQzNE
ZW51bSk7CisgICAgVmVjdG9yPGJvb2w+IGdldEJvb2xlYW5BcnJheVBhcmFtZXRlcihHQzNEZW51
bSk7CisgICAgZmxvYXQgZ2V0RmxvYXRQYXJhbWV0ZXIoR0MzRGVudW0pOworICAgIGludCBnZXRJ
bnRQYXJhbWV0ZXIoR0MzRGVudW0pOworICAgIHVuc2lnbmVkIGdldFVuc2lnbmVkSW50UGFyYW1l
dGVyKEdDM0RlbnVtKTsKKyAgICBsb25nIGxvbmcgZ2V0SW50NjRQYXJhbWV0ZXIoR0MzRGVudW0p
OworICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IGdldFdlYkdMRmxvYXRBcnJheVBhcmFtZXRlcihH
QzNEZW51bSk7CisgICAgUmVmUHRyPEludDMyQXJyYXk+IGdldFdlYkdMSW50QXJyYXlQYXJhbWV0
ZXIoR0MzRGVudW0pOwogCiAgICAgLy8gQ2xlYXIgdGhlIGJhY2tidWZmZXIgaWYgaXQgd2FzIGNv
bXBvc2l0ZWQgc2luY2UgdGhlIGxhc3Qgb3BlcmF0aW9uLgogICAgIC8vIGNsZWFyTWFzayBpcyBz
ZXQgdG8gdGhlIGJpdGZpZWxkIG9mIGFueSBjbGVhciB0aGF0IHdvdWxkIGhhcHBlbiBhbnl3YXkg
YXQgdGhpcyB0aW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFNhbXBsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2FtcGxlci5oCmlu
ZGV4IGJkOWMwZWFkZDAzYTc1MjkwM2NkY2VkZDNlOTZlY2ZhYjIxODEyYzUuLmEwNTMxZmYyN2M4
NjNjNDczY2JkZDJlOGE3ZTQ2YTAwNDM4YzZlMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMU2FtcGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMU2FtcGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDE3ICszMSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIFdlYkdMU2FtcGxlciBmaW5hbCA6IHB1YmxpYyBXZWJHTFNoYXJlZE9iamVjdCB7CiBw
dWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViR0xTYW1wbGVyKCk7Ci0KICAgICBzdGF0aWMgUmVmPFdl
YkdMU2FtcGxlcj4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKKyAgICB2aXJ0
dWFsIH5XZWJHTFNhbXBsZXIoKTsKIAogcHJvdGVjdGVkOgotICAgIFdlYkdMU2FtcGxlcihXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJik7Ci0KLSAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3Jh
cGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKLQotcHJpdmF0ZToK
LSAgICBib29sIGlzU2FtcGxlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAg
ICBleHBsaWNpdCBXZWJHTFNhbXBsZXIoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOworICAg
IHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmpl
Y3QpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMU2hhZGVyLmgKaW5kZXggNmFmNWMyNjlkNTBhYWU0ZDg1NWI3ZDA3MGVh
MzE4OGVlNTQzYjkwYy4uOTUyY2RjYzY1NDNlYWZiYmFkYzRjZjA5MzQ1NzAzYTFkN2NlMWVjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlci5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDkgKzMx
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFNoYWRlciBmaW5hbCA6IHB1
YmxpYyBXZWJHTFNoYXJlZE9iamVjdCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViR0xTaGFk
ZXIoKTsKLQogICAgIHN0YXRpYyBSZWY8V2ViR0xTaGFkZXI+IGNyZWF0ZShXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiwgR0MzRGVudW0pOworICAgIHZpcnR1YWwgfldlYkdMU2hhZGVyKCk7CiAK
ICAgICBHQzNEZW51bSBnZXRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgY29u
c3QgU3RyaW5nJiBnZXRTb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZTsgfQpAQCAtNDYs
OSArNDUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdlYkdMU2hhZGVyKFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UmLCBHQzNEZW51bSk7CiAKLSAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwo
R3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKLQotICAgIGJv
b2wgaXNTaGFkZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdm9pZCBk
ZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgZmlu
YWw7CiAKICAgICBHQzNEZW51bSBtX3R5cGU7CiAgICAgU3RyaW5nIG1fc291cmNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCmluZGV4IDM2
ZGMxNWQzYTBlN2U1ZjZhOTcwNjFlNGMzYmQzYzI0MWMxYjg0ZTkuLjFiMjIzNmZiZDcxMmE4Yjcx
YzA4MjBkMWMwYWE2MjNiYzMzODIwMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsNDEgKzI0LDM5IEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMU2hhcmVkT2JqZWN0LmgiCiAKICNpZiBFTkFC
TEUoV0VCR0wpCiAKLSNpbmNsdWRlICJXZWJHTFNoYXJlZE9iamVjdC5oIgotCiAjaW5jbHVkZSAi
V2ViR0xDb250ZXh0R3JvdXAuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV2ViR0xTaGFyZWRPYmplY3Q6OldlYkdMU2hh
cmVkT2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCi0gICAgOiBXZWJH
TE9iamVjdChjb250ZXh0KQotICAgICwgbV9jb250ZXh0R3JvdXAoY29udGV4dC5jb250ZXh0R3Jv
dXAoKSkKKyAgICA6IG1fY29udGV4dEdyb3VwKGNvbnRleHQuY29udGV4dEdyb3VwKCkpCiB7CiB9
CiAKIFdlYkdMU2hhcmVkT2JqZWN0Ojp+V2ViR0xTaGFyZWRPYmplY3QoKQogewogICAgIGlmICht
X2NvbnRleHRHcm91cCkKLSAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZU9iamVjdCh0aGlz
KTsKKyAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZU9iamVjdCgqdGhpcyk7CiB9CiAKIHZv
aWQgV2ViR0xTaGFyZWRPYmplY3Q6OmRldGFjaENvbnRleHRHcm91cCgpCiB7CiAgICAgZGV0YWNo
KCk7CiAgICAgaWYgKG1fY29udGV4dEdyb3VwKSB7Ci0gICAgICAgIGRlbGV0ZU9iamVjdCgwKTsK
LSAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZU9iamVjdCh0aGlzKTsKLSAgICAgICAgbV9j
b250ZXh0R3JvdXAgPSAwOworICAgICAgICBkZWxldGVPYmplY3QobnVsbHB0cik7CisgICAgICAg
IG1fY29udGV4dEdyb3VwLT5yZW1vdmVPYmplY3QoKnRoaXMpOworICAgICAgICBtX2NvbnRleHRH
cm91cCA9IG51bGxwdHI7CiAgICAgfQogfQogCiBHcmFwaGljc0NvbnRleHQzRCogV2ViR0xTaGFy
ZWRPYmplY3Q6OmdldEFHcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1f
Y29udGV4dEdyb3VwID8gbV9jb250ZXh0R3JvdXAtPmdldEFHcmFwaGljc0NvbnRleHQzRCgpIDog
MDsKKyAgICByZXR1cm4gbV9jb250ZXh0R3JvdXAgPyAmbV9jb250ZXh0R3JvdXAtPmdldEFHcmFw
aGljc0NvbnRleHQzRCgpIDogbnVsbHB0cjsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmgKaW5kZXggYWJlNDgwMzMzNzJjOTU2Y2M3MTMw
ZWI3ZjdiZmZmZGNkMWE5ZjU3Yi4uOTcyZTU4MGVlY2IwMTliOGFmZTExODA3MDIxOTMyNmMzNmM5
MzhjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVj
dC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTMzLDI0ICszMywxNSBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKIGNsYXNzIFdlYkdM
Q29udGV4dEdyb3VwOwogY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTsKIAotLy8gV2Vi
R0xTaGFyZWRPYmplY3QgdGhlIGJhc2UgY2xhc3MgZm9yIG9iamVjdHMgdGhhdCBjYW4gYmUgc2hh
cmVkIGJ5IG11bHRpcGxlCi0vLyBXZWJHTFJlbmRlcmluZ0NvbnRleHRzLgorLy8gV2ViR0xTaGFy
ZWRPYmplY3QgdGhlIGJhc2UgY2xhc3MgZm9yIG9iamVjdHMgdGhhdCBjYW4gYmUgc2hhcmVkIGJ5
IG11bHRpcGxlIFdlYkdMUmVuZGVyaW5nQ29udGV4dHMuCiBjbGFzcyBXZWJHTFNoYXJlZE9iamVj
dCA6IHB1YmxpYyBXZWJHTE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViR0xTaGFy
ZWRPYmplY3QoKTsKIAogICAgIFdlYkdMQ29udGV4dEdyb3VwKiBjb250ZXh0R3JvdXAoKSBjb25z
dCB7IHJldHVybiBtX2NvbnRleHRHcm91cDsgfQogCi0gICAgdmlydHVhbCBib29sIGlzQnVmZmVy
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmFtKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNRdWVyeSgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyYnVmZmVyKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTYW1wbGVyKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTaGFkZXIoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1N5bmMoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1RleHR1cmUoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1RyYW5zZm9ybUZlZWRiYWNrKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNWZXJ0ZXhBcnJheU9iamVjdCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBib29sIHZhbGlkYXRlKGNvbnN0IFdlYkdMQ29udGV4
dEdyb3VwKiBjb250ZXh0R3JvdXAsIGNvbnN0IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKSBj
b25zdCBvdmVycmlkZQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMU3luYy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTeW5jLmgK
aW5kZXggZWY2ZWM5ZGNkNTk2NGZiNDZkMjM3YTAwNjNkNGM1NmIxMmNkYTc0Yy4uZjllNzE4MDE3
NDFkMDMzNzYyYzJjMjFiNGMzYzZhM2Q5ODE4MjBlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xTeW5jLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xTeW5jLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzksOSArMzksNiBAQCBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xTeW5jKFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKIAogICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChH
cmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwotCi1wcml2YXRl
OgotICAgIGJvb2wgaXNTeW5jKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCmluZGV4IDY5Y2Y4ZTdiYjU0MThlYWE5ZTQ1
NjkyMTE0MDhmNDc2YjI2YTY3ODYuLjcxNDkyMzM4NDVhZGExZGVhNDNjMDFkODA1Yjc5ODE2Yjc3
M2ViOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNm
b3JtRmVlZGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5z
Zm9ybUZlZWRiYWNrLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzksOSArMzksNiBAQCBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xUcmFuc2Zv
cm1GZWVkYmFjayhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CiAKICAgICB2b2lkIGRlbGV0
ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlk
ZTsKLQotcHJpdmF0ZToKLSAgICBib29sIGlzVHJhbnNmb3JtRmVlZGJhY2soKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB0cnVlOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3Qu
Y3BwCmluZGV4IDdmYTY5YzlhNDk0ZGJlZWE5ZGJlYmY4OWU4NWY0M2Y5Y2ZkMDI4NDkuLjg5YWUy
MWYzM2VmODU4OGNkMThkNDAzMWM4NTdhYThhMTQ0ZTU1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDMzICsy
NCwzMyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShXRUJHTCkg
JiYgRU5BQkxFKFdFQkdMMikKICNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0LmgiCiAK
KyNpZiBFTkFCTEUoV0VCR0wyKQorCiAjaW5jbHVkZSAiV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5o
IgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAKLVJlZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBXZWJHTFZlcnRleEFycmF5T2JqZWN0
OjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWQU9UeXBlIHR5cGUpCitS
ZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRl
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIFR5cGUgdHlwZSkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTFZlcnRleEFycmF5T2JqZWN0KGN0eCwgdHlwZSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdMVmVydGV4QXJyYXlPYmplY3QoY29udGV4dCwg
dHlwZSkpOwogfQogCiBXZWJHTFZlcnRleEFycmF5T2JqZWN0Ojp+V2ViR0xWZXJ0ZXhBcnJheU9i
amVjdCgpCiB7Ci0gICAgZGVsZXRlT2JqZWN0KDApOworICAgIGRlbGV0ZU9iamVjdChudWxscHRy
KTsKIH0KIAotV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdChX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIFZBT1R5cGUgdHlwZSkKLSAgICA6IFdlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlKGN0eCwgdHlwZSkKK1dlYkdMVmVydGV4QXJyYXlPYmplY3Q6
OldlYkdMVmVydGV4QXJyYXlPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4
dCwgVHlwZSB0eXBlKQorICAgIDogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoY29udGV4dCwg
dHlwZSkKIHsKICAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgVkFPVHlwZURlZmF1bHQ6
CisgICAgY2FzZSBUeXBlOjpEZWZhdWx0OgogICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0Ogot
ICAgICAgICBzZXRPYmplY3QoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpLT5jcmVhdGVW
ZXJ0ZXhBcnJheSgpKTsKKyAgICBjYXNlIFR5cGU6OlVzZXI6CisgICAgICAgIHNldE9iamVjdCh0
aGlzLT5jb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCktPmNyZWF0ZVZlcnRleEFycmF5KCkp
OwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC01OCw5ICs1OCw5IEBAIFdlYkdMVmVydGV4
QXJyYXlPYmplY3Q6OldlYkdMVmVydGV4QXJyYXlPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZSYgY3R4LCBWCiB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmRlbGV0ZU9iamVjdElt
cGwoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamVjdCBvYmplY3Qp
CiB7CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVEZWZhdWx0OgorICAg
IGNhc2UgVHlwZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKKyAgICBj
YXNlIFR5cGU6OlVzZXI6CiAgICAgICAgIGNvbnRleHQzZC0+ZGVsZXRlVmVydGV4QXJyYXkob2Jq
ZWN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oCmluZGV4IDViNDljNzA4YTQ2MjU0ZGU1
OTBlMWMwNmRjYzk4NjJhNjY0YzMxNDIuLjJmN2VkMzUwODE3MjNmMGFiYWYyNTNiMmFiY2ZkMDEz
OTcwMzY0MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVy
dGV4QXJyYXlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZl
cnRleEFycmF5T2JqZWN0LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjcsOCArMjcsNiBAQAogCiAjaWYgRU5BQkxFKFdFQkdMMikKIAot
I2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCi0jaW5jbHVkZSAiV2ViR0xDb250ZXh0T2JqZWN0Lmgi
CiAjaW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMzcsMTIgKzM1LDExIEBAIGNsYXNzIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ7
CiAKIGNsYXNzIFdlYkdMVmVydGV4QXJyYXlPYmplY3QgZmluYWwgOiBwdWJsaWMgV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdEJhc2UgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViR0xWZXJ0ZXhB
cnJheU9iamVjdD4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBWQU9UeXBlKTsK
KyAgICBzdGF0aWMgUmVmPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IGNyZWF0ZShXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlJiwgVHlwZSk7CiAgICAgdmlydHVhbCB+V2ViR0xWZXJ0ZXhBcnJheU9i
amVjdCgpOwogcHJpdmF0ZToKLSAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0KFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UmLCBWQU9UeXBlKTsKLSAgICBib29sIGlzVHJhbnNmb3JtRmVlZGJhY2so
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBo
aWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVHlwZSk7CisgICAgdm9p
ZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkg
ZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKaW5k
ZXggNjk2NDljNjJmNmUxZGJlZjJmOWVkYTYxN2M0MjQyNGRmNzNmMTc1Zi4uNThkZmEzZDczYzZh
ZGI5MzljZTQwNDkyZjgxNzlhOThiZmU3OTFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwyNCAr
MjQsMjIgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdEJhc2UuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKLSNpbmNsdWRlICJXZWJH
TFZlcnRleEFycmF5T2JqZWN0QmFzZS5oIgogCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdlYkdMVmVydGV4QXJyYXlPYmpl
Y3RCYXNlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlJiBjdHgsIFZBT1R5cGUgdHlwZSkKLSAgICA6IFdlYkdMQ29udGV4dE9iamVjdChjdHgpCitX
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwgVHlwZSB0eXBlKQorICAgIDogV2ViR0xD
b250ZXh0T2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX3R5cGUodHlwZSkKLSAgICAsIG1faGFzRXZl
ckJlZW5Cb3VuZChmYWxzZSkKLSAgICAsIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXIoMCkKIHsK
LSAgICBtX3ZlcnRleEF0dHJpYlN0YXRlLnJlc2l6ZShjdHguZ2V0TWF4VmVydGV4QXR0cmlicygp
KTsKKyAgICBtX3ZlcnRleEF0dHJpYlN0YXRlLnJlc2l6ZShjb250ZXh0LmdldE1heFZlcnRleEF0
dHJpYnMoKSk7CiB9CiAKLXZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldEVsZW1l
bnRBcnJheUJ1ZmZlcihQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBidWZmZXIpCit2b2lkIFdlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRFbGVtZW50QXJyYXlCdWZmZXIoV2ViR0xCdWZmZXIq
IGJ1ZmZlcikKIHsKICAgICBpZiAoYnVmZmVyKQogICAgICAgICBidWZmZXItPm9uQXR0YWNoZWQo
KTsKQEAgLTUxLDE4ICs0OSwxNyBAQCB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpz
ZXRFbGVtZW50QXJyYXlCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYgogICAgIAogfQog
Ci12b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShH
QzNEdWludCBpbmRleCwgR0MzRHNpemVpIGJ5dGVzUGVyRWxlbWVudCwgR0MzRGludCBzaXplLCBH
QzNEZW51bSB0eXBlLCBHQzNEYm9vbGVhbiBub3JtYWxpemVkLCBHQzNEc2l6ZWkgc3RyaWRlLCBH
QzNEaW50cHRyIG9mZnNldCwgUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVmZmVyKQordm9pZCBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4QXR0cmliU3RhdGUoR0MzRHVpbnQg
aW5kZXgsIEdDM0RzaXplaSBieXRlc1BlckVsZW1lbnQsIEdDM0RpbnQgc2l6ZSwgR0MzRGVudW0g
dHlwZSwgR0MzRGJvb2xlYW4gbm9ybWFsaXplZCwgR0MzRHNpemVpIHN0cmlkZSwgR0MzRGludHB0
ciBvZmZzZXQsIFdlYkdMQnVmZmVyJiBidWZmZXIpCiB7CiAgICAgR0MzRHNpemVpIHZhbGlkYXRl
ZFN0cmlkZSA9IHN0cmlkZSA/IHN0cmlkZSA6IGJ5dGVzUGVyRWxlbWVudDsKICAgICAKLSAgICBW
ZXJ0ZXhBdHRyaWJTdGF0ZSYgc3RhdGUgPSBtX3ZlcnRleEF0dHJpYlN0YXRlW2luZGV4XTsKKyAg
ICBhdXRvJiBzdGF0ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOwogICAgIAotICAgIGlm
IChidWZmZXIpCi0gICAgICAgIGJ1ZmZlci0+b25BdHRhY2hlZCgpOworICAgIGJ1ZmZlci5vbkF0
dGFjaGVkKCk7CiAgICAgaWYgKHN0YXRlLmJ1ZmZlckJpbmRpbmcpCiAgICAgICAgIHN0YXRlLmJ1
ZmZlckJpbmRpbmctPm9uRGV0YWNoZWQoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpKTsK
ICAgICAKLSAgICBzdGF0ZS5idWZmZXJCaW5kaW5nID0gYnVmZmVyOworICAgIHN0YXRlLmJ1ZmZl
ckJpbmRpbmcgPSAmYnVmZmVyOwogICAgIHN0YXRlLmJ5dGVzUGVyRWxlbWVudCA9IGJ5dGVzUGVy
RWxlbWVudDsKICAgICBzdGF0ZS5zaXplID0gc2l6ZTsKICAgICBzdGF0ZS50eXBlID0gdHlwZTsK
QEAgLTcyLDE3ICs2OSwxNyBAQCB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRW
ZXJ0ZXhBdHRyaWJTdGF0ZShHQzNEdWludCBpbmRleCwgR0MzRHNpemVpCiAgICAgc3RhdGUub2Zm
c2V0ID0gb2Zmc2V0OwogfQogCi12b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJp
bmRCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVmZmVyKQordm9pZCBXZWJHTFZlcnRl
eEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKFdlYkdMQnVmZmVyJiBidWZmZXIpCiB7Ci0g
ICAgaWYgKG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXIgPT0gYnVmZmVyKSB7CisgICAgaWYgKG1f
Ym91bmRFbGVtZW50QXJyYXlCdWZmZXIgPT0gJmJ1ZmZlcikgewogICAgICAgICBtX2JvdW5kRWxl
bWVudEFycmF5QnVmZmVyLT5vbkRldGFjaGVkKGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0Qo
KSk7CiAgICAgICAgIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXIgPSBudWxscHRyOwogICAgIH0K
ICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdmVydGV4QXR0cmliU3RhdGUuc2l6
ZSgpOyArK2kpIHsKLSAgICAgICAgVmVydGV4QXR0cmliU3RhdGUmIHN0YXRlID0gbV92ZXJ0ZXhB
dHRyaWJTdGF0ZVtpXTsKLSAgICAgICAgaWYgKHN0YXRlLmJ1ZmZlckJpbmRpbmcgPT0gYnVmZmVy
KSB7Ci0gICAgICAgICAgICBidWZmZXItPm9uRGV0YWNoZWQoY29udGV4dCgpLT5ncmFwaGljc0Nv
bnRleHQzRCgpKTsKKyAgICAgICAgYXV0byYgc3RhdGUgPSBtX3ZlcnRleEF0dHJpYlN0YXRlW2ld
OworICAgICAgICBpZiAoc3RhdGUuYnVmZmVyQmluZGluZyA9PSAmYnVmZmVyKSB7CisgICAgICAg
ICAgICBidWZmZXIub25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOwog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIWkgJiYgIWNvbnRleHQoKS0+aXNHTEVTMkNv
bXBsaWFudCgpKSB7CiAgICAgICAgICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IGNvbnRl
eHQoKS0+bV92ZXJ0ZXhBdHRyaWIwQnVmZmVyOwpAQCAtMTAyLDggKzk5LDcgQEAgdm9pZCBXZWJH
TFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZm
ZXI+IGJ1ZmZlcikKIAogdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4
QXR0cmliRGl2aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcikKIHsKLSAgICBW
ZXJ0ZXhBdHRyaWJTdGF0ZSYgc3RhdGUgPSBtX3ZlcnRleEF0dHJpYlN0YXRlW2luZGV4XTsKLSAg
ICBzdGF0ZS5kaXZpc29yID0gZGl2aXNvcjsKKyAgICBtX3ZlcnRleEF0dHJpYlN0YXRlW2luZGV4
XS5kaXZpc29yID0gZGl2aXNvcjsKIH0KICAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oCmluZGV4IDI5MGFi
OGQzZDcwZjMzN2E4NjM1YTIzMTYyNzZkOTFkYzQzZDRhYTkuLjEyNzU1MzNkOGExNDYxOTFhNjU1
YjI5YTA3ZmJiOGYxODdhMjg3MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw2NSArMzIsNDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSA6IHB1
YmxpYyBXZWJHTENvbnRleHRPYmplY3QgewogcHVibGljOgotICAgIGVudW0gVkFPVHlwZSB7Ci0g
ICAgICAgIFZBT1R5cGVEZWZhdWx0LAotICAgICAgICBWQU9UeXBlVXNlciwKLSAgICB9OwotICAg
IAotICAgIHZpcnR1YWwgfldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKCkgeyB9CisgICAgZW51
bSBjbGFzcyBUeXBlIHsgRGVmYXVsdCwgVXNlciB9OwogCiAgICAgLy8gQ2FjaGVkIHZhbHVlcyBm
b3IgdmVydGV4IGF0dHJpYiByYW5nZSBjaGVja3MKICAgICBzdHJ1Y3QgVmVydGV4QXR0cmliU3Rh
dGUgewotICAgICAgICBWZXJ0ZXhBdHRyaWJTdGF0ZSgpCi0gICAgICAgICAgICA6IGVuYWJsZWQo
ZmFsc2UpCi0gICAgICAgICAgICAsIGJ5dGVzUGVyRWxlbWVudCgwKQotICAgICAgICAgICAgLCBz
aXplKDQpCi0gICAgICAgICAgICAsIHR5cGUoR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUKQotICAg
ICAgICAgICAgLCBub3JtYWxpemVkKGZhbHNlKQotICAgICAgICAgICAgLCBzdHJpZGUoMTYpCi0g
ICAgICAgICAgICAsIG9yaWdpbmFsU3RyaWRlKDApCi0gICAgICAgICAgICAsIG9mZnNldCgwKQot
ICAgICAgICAgICAgLCBkaXZpc29yKDApCi0gICAgICAgIHsKLSAgICAgICAgfQotICAgICAgICAK
ICAgICAgICAgYm9vbCBpc0JvdW5kKCkgY29uc3QgeyByZXR1cm4gYnVmZmVyQmluZGluZyAmJiBi
dWZmZXJCaW5kaW5nLT5vYmplY3QoKTsgfQogICAgICAgICBib29sIHZhbGlkYXRlQmluZGluZygp
IGNvbnN0IHsgcmV0dXJuICFlbmFibGVkIHx8IGlzQm91bmQoKTsgfQogICAgICAgICAKLSAgICAg
ICAgYm9vbCBlbmFibGVkOworICAgICAgICBib29sIGVuYWJsZWQgeyBmYWxzZSB9OwogICAgICAg
ICBSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlckJpbmRpbmc7Ci0gICAgICAgIEdDM0RzaXplaSBi
eXRlc1BlckVsZW1lbnQ7Ci0gICAgICAgIEdDM0RpbnQgc2l6ZTsKLSAgICAgICAgR0MzRGVudW0g
dHlwZTsKLSAgICAgICAgYm9vbCBub3JtYWxpemVkOwotICAgICAgICBHQzNEc2l6ZWkgc3RyaWRl
OwotICAgICAgICBHQzNEc2l6ZWkgb3JpZ2luYWxTdHJpZGU7Ci0gICAgICAgIEdDM0RpbnRwdHIg
b2Zmc2V0OwotICAgICAgICBHQzNEdWludCBkaXZpc29yOworICAgICAgICBHQzNEc2l6ZWkgYnl0
ZXNQZXJFbGVtZW50IHsgMCB9OworICAgICAgICBHQzNEaW50IHNpemUgeyA0IH07CisgICAgICAg
IEdDM0RlbnVtIHR5cGUgeyBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQgfTsKKyAgICAgICAgYm9v
bCBub3JtYWxpemVkIHsgZmFsc2UgfTsKKyAgICAgICAgR0MzRHNpemVpIHN0cmlkZSB7IDE2IH07
CisgICAgICAgIEdDM0RzaXplaSBvcmlnaW5hbFN0cmlkZSB7IDAgfTsKKyAgICAgICAgR0MzRGlu
dHB0ciBvZmZzZXQgeyAwIH07CisgICAgICAgIEdDM0R1aW50IGRpdmlzb3IgeyAwIH07CiAgICAg
fTsKLSAgICAKLSAgICBib29sIGlzRGVmYXVsdE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZSA9PSBWQU9UeXBlRGVmYXVsdDsgfQotICAgIAorCisgICAgYm9vbCBpc0RlZmF1bHRPYmplY3Qo
KSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6RGVmYXVsdDsgfQorCiAgICAgYm9vbCBo
YXNFdmVyQmVlbkJvdW5kKCkgY29uc3QgeyByZXR1cm4gb2JqZWN0KCkgJiYgbV9oYXNFdmVyQmVl
bkJvdW5kOyB9CiAgICAgdm9pZCBzZXRIYXNFdmVyQmVlbkJvdW5kKCkgeyBtX2hhc0V2ZXJCZWVu
Qm91bmQgPSB0cnVlOyB9Ci0gICAgCi0gICAgUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gZ2V0RWxl
bWVudEFycmF5QnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZl
cjsgfQotICAgIHZvaWQgc2V0RWxlbWVudEFycmF5QnVmZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZm
ZXI+KTsKLSAgICAKKworICAgIFdlYkdMQnVmZmVyKiBnZXRFbGVtZW50QXJyYXlCdWZmZXIoKSBj
b25zdCB7IHJldHVybiBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyLmdldCgpOyB9CisgICAgdm9p
ZCBzZXRFbGVtZW50QXJyYXlCdWZmZXIoV2ViR0xCdWZmZXIqKTsKKwogICAgIFZlcnRleEF0dHJp
YlN0YXRlJiBnZXRWZXJ0ZXhBdHRyaWJTdGF0ZShpbnQgaW5kZXgpIHsgcmV0dXJuIG1fdmVydGV4
QXR0cmliU3RhdGVbaW5kZXhdOyB9Ci0gICAgdm9pZCBzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShHQzNE
dWludCwgR0MzRHNpemVpLCBHQzNEaW50LCBHQzNEZW51bSwgR0MzRGJvb2xlYW4sIEdDM0RzaXpl
aSwgR0MzRGludHB0ciwgUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4pOwotICAgIHZvaWQgdW5iaW5k
QnVmZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+KTsKLSAgICAKKyAgICB2b2lkIHNldFZlcnRl
eEF0dHJpYlN0YXRlKEdDM0R1aW50LCBHQzNEc2l6ZWksIEdDM0RpbnQsIEdDM0RlbnVtLCBHQzNE
Ym9vbGVhbiwgR0MzRHNpemVpLCBHQzNEaW50cHRyLCBXZWJHTEJ1ZmZlciYpOworICAgIHZvaWQg
dW5iaW5kQnVmZmVyKFdlYkdMQnVmZmVyJik7CisKICAgICB2b2lkIHNldFZlcnRleEF0dHJpYkRp
dmlzb3IoR0MzRHVpbnQgaW5kZXgsIEdDM0R1aW50IGRpdmlzb3IpOwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYs
IFZBT1R5cGUpOworICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UmLCBUeXBlKTsKICAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3ND
b250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZSA9IDA7Ci0gICAgCi0gICAgVkFP
VHlwZSBtX3R5cGU7Ci0gICAgYm9vbCBtX2hhc0V2ZXJCZWVuQm91bmQ7CisKKyAgICBUeXBlIG1f
dHlwZTsKKyAgICBib29sIG1faGFzRXZlckJlZW5Cb3VuZCB7IGZhbHNlIH07CiAgICAgUmVmUHRy
PFdlYkdMQnVmZmVyPiBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyOwogICAgIFZlY3RvcjxWZXJ0
ZXhBdHRyaWJTdGF0ZT4gbV92ZXJ0ZXhBdHRyaWJTdGF0ZTsKIH07Ci0gICAgCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKaW5kZXggNWYzYjY1NTdhNzBiNWNiODQyYzBj
MmVhNzc4MTc4YWZhNjRjMDFmZi4uYWY1NTY1Y2Q5NDQ0MjRiNTNiODM1N2RiMmMwMTkwYmUxY2U1
YjQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKQEAgLTM0LDM3ICszNCwzNSBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVJlZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiBXZWJHTFZlcnRleEFy
cmF5T2JqZWN0T0VTOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWQU9U
eXBlIHR5cGUpCitSZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdE9FUzo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIFR5
cGUgdHlwZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTKGN0eCwgdHlwZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVMoY29udGV4dCwgdHlwZSkpOwogfQogCi1XZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmIGN0eCwgVkFPVHlwZSB0eXBlKQotICAgIDogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2Uo
Y3R4LCB0eXBlKQorV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6V2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUyhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBUeXBlIHR5cGUpCisg
ICAgOiBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShjb250ZXh0LCB0eXBlKQogewotICAgIEV4
dGVuc2lvbnMzRCYgZXh0ZW5zaW9ucyA9IGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+
Z2V0RXh0ZW5zaW9ucygpOwotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBWQU9UeXBl
RGVmYXVsdDoKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFR5cGU6OkRlZmF1bHQ6CiAg
ICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHNldE9iamVjdChleHRlbnNpb25z
LmNyZWF0ZVZlcnRleEFycmF5T0VTKCkpOworICAgIGNhc2UgVHlwZTo6VXNlcjoKKyAgICAgICAg
c2V0T2JqZWN0KHRoaXMtPmNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+Z2V0RXh0ZW5z
aW9ucygpLmNyZWF0ZVZlcnRleEFycmF5T0VTKCkpOwogICAgICAgICBicmVhazsKICAgICB9CiB9
CiAKIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6On5XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
KCkKIHsKLSAgICBkZWxldGVPYmplY3QoMCk7CisgICAgZGVsZXRlT2JqZWN0KG51bGxwdHIpOwog
fQogCiB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmRlbGV0ZU9iamVjdEltcGwoR3Jh
cGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamVjdCBvYmplY3QpCiB7Ci0g
ICAgRXh0ZW5zaW9uczNEJiBleHRlbnNpb25zID0gY29udGV4dDNkLT5nZXRFeHRlbnNpb25zKCk7
CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVEZWZhdWx0OgorICAgIGNh
c2UgVHlwZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAg
ZXh0ZW5zaW9ucy5kZWxldGVWZXJ0ZXhBcnJheU9FUyhvYmplY3QpOworICAgIGNhc2UgVHlwZTo6
VXNlcjoKKyAgICAgICAgY29udGV4dDNkLT5nZXRFeHRlbnNpb25zKCkuZGVsZXRlVmVydGV4QXJy
YXlPRVMob2JqZWN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgKaW5kZXgg
ZDA4ZDIyM2UzNTcwNjY5NGU5MWNhZTZhY2RjOGM0YmNhOWYxNjdlOS4uZjlhMmE1OGVjMjc0N2My
ZDUwNjMwYjViNmY2Y2ZmMDVhNjM2MGM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaApAQCAtMjUsMTkgKzI1LDE3
IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKLSNpbmNsdWRl
ICJXZWJHTENvbnRleHRPYmplY3QuaCIKICNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0
QmFzZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdMVmVydGV4QXJyYXlP
YmplY3RPRVMgZmluYWwgOiBwdWJsaWMgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UgewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gY3JlYXRlKFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBWQU9UeXBlKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdM
VmVydGV4QXJyYXlPYmplY3RPRVM+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwg
VHlwZSk7CiAgICAgdmlydHVhbCB+V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygpOwogcHJpdmF0
ZToKLSAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmLCBWQU9UeXBlKTsKLSAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0
M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBlKTsKKyAgICB2b2lkIGRlbGV0
ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBmaW5hbDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jt
cy9GaWxlSWNvbkxvYWRlci5jcHAKaW5kZXggOWJjZDQ3Zjc3OWUwNTFmYWE0MDU5MGM3OTNmYjIz
ZmM1MWIyZGUxZS4uMjc1ZDZlYzQ0ZTA1ODQ1NmVlZmZmZDFjZWYyOGQ1YTc1ZjhiMWYxNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzcsMTMgKzM3LDEzIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgRmlsZUljb25Mb2FkZXI6OmludmFsaWRhdGUoKQogewog
ICAgIEFTU0VSVChtX2NsaWVudCk7Ci0gICAgbV9jbGllbnQgPSAwOworICAgIG1fY2xpZW50ID0g
bnVsbHB0cjsKIH0KIAotdm9pZCBGaWxlSWNvbkxvYWRlcjo6bm90aWZ5RmluaXNoZWQoUGFzc1Jl
ZlB0cjxJY29uPiBpY29uKQordm9pZCBGaWxlSWNvbkxvYWRlcjo6aWNvbkxvYWRlZChSZWZQdHI8
SWNvbj4mJiBpY29uKQogewogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnVw
ZGF0ZVJlbmRlcmluZyhpY29uKTsKKyAgICAgICAgbV9jbGllbnQtPmljb25Mb2FkZWQoV1RGTW92
ZShpY29uKSk7CiB9CiAKIEZpbGVJY29uTG9hZGVyOjpGaWxlSWNvbkxvYWRlcihGaWxlSWNvbkxv
YWRlckNsaWVudCYgY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jt
cy9GaWxlSWNvbkxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxv
YWRlci5oCmluZGV4IDM1MzEzZGUzYTI4NTM2MGQ5ODY3YjgyYTVhYWNiYzA3ZDA1ZTdiZDUuLjdk
YTczZmM5MmUxNmNlM2FjZGJlNDhiMmFlM2M0MDEzNjkwODI4MzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzQsMTMgKzM0LDEyIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgRmlsZUljb25Mb2FkZXI7CiBjbGFzcyBJY29uOwogCiBjbGFzcyBG
aWxlSWNvbkxvYWRlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RmlsZUljb25Mb2Fk
ZXJDbGllbnQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVuZGVyaW5nKFBhc3NSZWZQ
dHI8SWNvbj4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaWNvbkxvYWRlZChSZWZQdHI8SWNvbj4m
JikgPSAwOwogfTsKIAogY2xhc3MgRmlsZUljb25Mb2FkZXIgewpAQCAtNDgsNyArNDcsNyBAQCBw
dWJsaWM6CiAgICAgZXhwbGljaXQgRmlsZUljb25Mb2FkZXIoRmlsZUljb25Mb2FkZXJDbGllbnQm
KTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbm90
aWZ5RmluaXNoZWQoUGFzc1JlZlB0cjxJY29uPik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBp
Y29uTG9hZGVkKFJlZlB0cjxJY29uPiYmKTsKIAogcHJpdmF0ZToKICAgICBGaWxlSWNvbkxvYWRl
ckNsaWVudCogbV9jbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKaW5kZXggNDY3YTEzNGQzNmJhNTNhNzJiYzJkNzBhMmVi
OTc2ODFlYjhmOTNmYi4uZGMxYWQ3M2ExYjAwNGIzNmM5ZTQ3NTU0YjExODQxM2ViMGJmNjBjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNp
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25T
aXRlLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
LCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0xNzQsNyArMTc0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGV4ZWN1dGVUYXNrKEhU
TUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYgdGFzaykKIAogdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0
ZTo6YXR0YWNoTGF0ZXIoQ29udGFpbmVyTm9kZSYgcGFyZW50LCBSZWY8Tm9kZT4mJiBjaGlsZCwg
Ym9vbCBzZWxmQ2xvc2luZykKIHsKLSAgICBBU1NFUlQoc2NyaXB0aW5nQ29udGVudElzQWxsb3dl
ZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpIHx8ICFpczxFbGVtZW50PihjaGlsZC5nZXQoKSkgfHwg
IXRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZG93bmNhc3Q8RWxlbWVudD4oY2hpbGQucHRyKCkp
KSk7CisgICAgQVNTRVJUKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250ZW50
UG9saWN5KSB8fCAhaXM8RWxlbWVudD4oY2hpbGQuZ2V0KCkpIHx8ICFpc1NjcmlwdEVsZW1lbnQo
ZG93bmNhc3Q8RWxlbWVudD4oY2hpbGQuZ2V0KCkpKSk7CiAgICAgQVNTRVJUKHBsdWdpbkNvbnRl
bnRJc0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSB8fCAhY2hpbGQtPmlzUGx1Z2luRWxl
bWVudCgpKTsKIAogICAgIGlmIChzaG91bGRGb3N0ZXJQYXJlbnQoKSkgewpAQCAtNTQxLDcgKzU0
MSw3IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydEZvcmVpZ25FbGVtZW50KEF0
b21pY0hUTUxUb2tlbiYmIHRva2VuLCBjb25zdCBBCiAgICAgbm90SW1wbGVtZW50ZWQoKTsgLy8g
cGFyc2VFcnJvciB3aGVuIHhtbG5zIG9yIHhtbG5zOnhsaW5rIGFyZSB3cm9uZy4KIAogICAgIGF1
dG8gZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQodG9rZW4sIG5hbWVzcGFjZVVSSSk7Ci0gICAgaWYg
KHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSB8fCAhdG9T
Y3JpcHRFbGVtZW50SWZQb3NzaWJsZShlbGVtZW50LnB0cigpKSkKKyAgICBpZiAoc2NyaXB0aW5n
Q29udGVudElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpIHx8ICFpc1NjcmlwdEVsZW1l
bnQoZWxlbWVudC5nZXQoKSkpCiAgICAgICAgIGF0dGFjaExhdGVyKGN1cnJlbnROb2RlKCksIGVs
ZW1lbnQuY29weVJlZigpLCB0b2tlbi5zZWxmQ2xvc2luZygpKTsKICAgICBpZiAoIXRva2VuLnNl
bGZDbG9zaW5nKCkpCiAgICAgICAgIG1fb3BlbkVsZW1lbnRzLnB1c2goSFRNTFN0YWNrSXRlbTo6
Y3JlYXRlKFdURk1vdmUoZWxlbWVudCksIFdURk1vdmUodG9rZW4pLCBuYW1lc3BhY2VVUkkpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3Bw
CmluZGV4IGFjZWEwYWFhZDJjZGY0ODE3YTY1ZTdhZjlkN2M5ZmQzNTdkZmMzMzcuLjUxNjNmMWE1
Zjc4MjQ4M2E5MDI0ZWM2ZGE5MTUzZDA5NmIwMzRjNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiw2ICszNiw3IEBACiAjaW5j
bHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSFRNTFVua25vd25FbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiU2NyaXB0
RWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTIwNSw3ICsyMDYsNyBAQCB2
b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVCdWlsZGVyKCkK
ICAgICAgICAgQVNTRVJUKCFtX3RyZWVCdWlsZGVyLT5oYXNQYXJzZXJCbG9ja2luZ1NjcmlwdFdv
cmsoKSk7CiAgICAgICAgIC8vIFdlIHdpbGwgbm90IGhhdmUgYSBzY3JpcHRSdW5uZXIgd2hlbiBw
YXJzaW5nIGEgRG9jdW1lbnRGcmFnbWVudC4KICAgICAgICAgaWYgKG1fc2NyaXB0UnVubmVyKQot
ICAgICAgICAgICAgbV9zY3JpcHRSdW5uZXItPmV4ZWN1dGUoV1RGTW92ZShzY3JpcHRFbGVtZW50
KSwgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgICAgICAgICBtX3NjcmlwdFJ1bm5lci0+ZXhl
Y3V0ZShzY3JpcHRFbGVtZW50LnJlbGVhc2VOb25OdWxsKCksIHNjcmlwdFN0YXJ0UG9zaXRpb24p
OwogICAgIH0KIH0KIApAQCAtNTAwLDcgKzUwMSw3IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2Vy
Ojp3YXRjaEZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1NjcmlwdCkKICAgICAvLyBzZXRD
bGllbnQgd291bGQgY2FsbCBub3RpZnlGaW5pc2hlZCBpZiB0aGUgbG9hZCB3ZXJlIGNvbXBsZXRl
LgogICAgIC8vIENhbGxlcnMgZG8gbm90IGV4cGVjdCB0byBiZSByZS1lbnRlcmVkIGZyb20gdGhp
cyBjYWxsLCBzbyB0aGV5IHNob3VsZAogICAgIC8vIG5vdCBhbiBhbHJlYWR5LWxvYWRlZCBQZW5k
aW5nU2NyaXB0LgotICAgIHBlbmRpbmdTY3JpcHQuc2V0Q2xpZW50KHRoaXMpOworICAgIHBlbmRp
bmdTY3JpcHQuc2V0Q2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6
OnN0b3BXYXRjaGluZ0ZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1NjcmlwdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKaW5kZXggYzI1
NmI0Mjk1NmNlNDgxMWE5NGYwY2IzNGI4ZWQ3MjU3MjVlOGY1NC4uYzFmNDJjMjI1ZDAwNzc5YWI0
NDVjMTEyNTFkMzczYTQ4N2YyY2QyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEwLTIwMTcgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03MCw3ICs3MSw3IEBAIEhUTUxTY3JpcHRSdW5uZXI6
On5IVE1MU2NyaXB0UnVubmVyKCkKIAogdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpkZXRhY2goKQog
ewotICAgIG1fZG9jdW1lbnQgPSAwOworICAgIG1fZG9jdW1lbnQgPSBudWxscHRyOwogfQogCiBz
dGF0aWMgVVJMIGRvY3VtZW50VVJMRm9yU2NyaXB0RXhlY3V0aW9uKERvY3VtZW50KiBkb2N1bWVu
dCkKQEAgLTk5LDI5ICsxMDAsMTggQEAgYm9vbCBIVE1MU2NyaXB0UnVubmVyOjppc1BlbmRpbmdT
Y3JpcHRSZWFkeShjb25zdCBQZW5kaW5nU2NyaXB0JiBzY3JpcHQpCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBhcnNpbmdCbG9ja2luZ1Njcmlw
dCgpCi17Ci0gICAgQVNTRVJUKG1fZG9jdW1lbnQpOwotICAgIEFTU0VSVCghaXNFeGVjdXRpbmdT
Y3JpcHQoKSk7Ci0gICAgQVNTRVJUKG1fZG9jdW1lbnQtPmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgp
KTsKLSAgICBBU1NFUlQoaXNQZW5kaW5nU2NyaXB0UmVhZHkoKm1fcGFyc2VyQmxvY2tpbmdTY3Jp
cHQpKTsKLQotICAgIEluc2VydGlvblBvaW50UmVjb3JkIGluc2VydGlvblBvaW50UmVjb3JkKG1f
aG9zdC5pbnB1dFN0cmVhbSgpKTsKLSAgICBleGVjdXRlUGVuZGluZ1NjcmlwdEFuZERpc3BhdGNo
RXZlbnQoV1RGTW92ZShtX3BhcnNlckJsb2NraW5nU2NyaXB0KSk7Ci19Ci0KLXZvaWQgSFRNTFNj
cmlwdFJ1bm5lcjo6ZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRjaEV2ZW50KFJlZlB0cjxQ
ZW5kaW5nU2NyaXB0PiBwZW5kaW5nU2NyaXB0KQordm9pZCBIVE1MU2NyaXB0UnVubmVyOjpleGVj
dXRlUGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1Nj
cmlwdCkKIHsKICAgICAvLyBTdG9wIHdhdGNoaW5nIGxvYWRzIGJlZm9yZSBleGVjdXRlU2NyaXB0
IHRvIHByZXZlbnQgcmVjdXJzaW9uIGlmIHRoZSBzY3JpcHQgcmVsb2FkcyBpdHNlbGYuCi0gICAg
aWYgKHBlbmRpbmdTY3JpcHQtPndhdGNoaW5nRm9yTG9hZCgpKQotICAgICAgICBzdG9wV2F0Y2hp
bmdGb3JMb2FkKCpwZW5kaW5nU2NyaXB0KTsKKyAgICBpZiAocGVuZGluZ1NjcmlwdC53YXRjaGlu
Z0ZvckxvYWQoKSkKKyAgICAgICAgc3RvcFdhdGNoaW5nRm9yTG9hZChwZW5kaW5nU2NyaXB0KTsK
IAogICAgIGlmICghaXNFeGVjdXRpbmdTY3JpcHQoKSkKICAgICAgICAgTWljcm90YXNrUXVldWU6
Om1haW5UaHJlYWRRdWV1ZSgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7CiAKLSAgICBp
ZiAoYXV0byogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJnBlbmRp
bmdTY3JpcHQtPmVsZW1lbnQoKSkpIHsKKyAgICB7CiAgICAgICAgIE5lc3RpbmdMZXZlbEluY3Jl
bWVudGVyIG5lc3RpbmdMZXZlbEluY3JlbWVudGVyKG1fc2NyaXB0TmVzdGluZ0xldmVsKTsKLSAg
ICAgICAgc2NyaXB0RWxlbWVudC0+ZXhlY3V0ZVBlbmRpbmdTY3JpcHQoKnBlbmRpbmdTY3JpcHQp
OworICAgICAgICBwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKS5leGVjdXRlUGVuZGluZ1NjcmlwdChw
ZW5kaW5nU2NyaXB0KTsKICAgICB9CiAgICAgQVNTRVJUKCFpc0V4ZWN1dGluZ1NjcmlwdCgpKTsK
IH0KQEAgLTE0MCwxNSArMTMwLDE0IEBAIHZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6c3RvcFdhdGNo
aW5nRm9yTG9hZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogCiAvLyBUaGlzIGZ1bmN0
aW9uIHNob3VsZCBtYXRjaCAxMC4yLjUuMTEgIkFuIGVuZCB0YWcgd2hvc2UgdGFnIG5hbWUgaXMg
J3NjcmlwdCciCiAvLyBTY3JpcHQgaGFuZGxpbmcgbGl2ZXMgb3V0c2lkZSB0aGUgdHJlZSBidWls
ZGVyIHRvIGtlZXAgdGhlIGVhY2ggY2xhc3Mgc2ltcGxlLgotdm9pZCBIVE1MU2NyaXB0UnVubmVy
OjpleGVjdXRlKFBhc3NSZWZQdHI8RWxlbWVudD4gc2NyaXB0RWxlbWVudCwgY29uc3QgVGV4dFBv
c2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQordm9pZCBIVE1MU2NyaXB0UnVubmVyOjpleGVj
dXRlKFJlZjxTY3JpcHRFbGVtZW50PiYmIGVsZW1lbnQsIGNvbnN0IFRleHRQb3NpdGlvbiYgc2Ny
aXB0U3RhcnRQb3NpdGlvbikKIHsKLSAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7CiAgICAgLy8g
RklYTUU6IElmIHNjcmlwdGluZyBpcyBkaXNhYmxlZCwgYWx3YXlzIGp1c3QgcmV0dXJuLgogCiAg
ICAgYm9vbCBoYWRQcmVsb2FkU2Nhbm5lciA9IG1faG9zdC5oYXNQcmVsb2FkU2Nhbm5lcigpOwog
CiAgICAgLy8gVHJ5IHRvIGV4ZWN1dGUgdGhlIHNjcmlwdCBnaXZlbiB0byB1cy4KLSAgICBydW5T
Y3JpcHQoc2NyaXB0RWxlbWVudC5nZXQoKSwgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgcnVu
U2NyaXB0KGVsZW1lbnQuZ2V0KCksIHNjcmlwdFN0YXJ0UG9zaXRpb24pOwogCiAgICAgaWYgKGhh
c1BhcnNlckJsb2NraW5nU2NyaXB0KCkpIHsKICAgICAgICAgaWYgKGlzRXhlY3V0aW5nU2NyaXB0
KCkpCkBAIC0xNjcsOCArMTU2LDEzIEBAIGJvb2wgSFRNTFNjcmlwdFJ1bm5lcjo6aGFzUGFyc2Vy
QmxvY2tpbmdTY3JpcHQoKSBjb25zdAogCiB2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQ
YXJzaW5nQmxvY2tpbmdTY3JpcHRzKCkKIHsKLSAgICB3aGlsZSAoaGFzUGFyc2VyQmxvY2tpbmdT
Y3JpcHQoKSAmJiBpc1BlbmRpbmdTY3JpcHRSZWFkeSgqbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCkp
Ci0gICAgICAgIGV4ZWN1dGVQYXJzaW5nQmxvY2tpbmdTY3JpcHQoKTsKKyAgICB3aGlsZSAoaGFz
UGFyc2VyQmxvY2tpbmdTY3JpcHQoKSAmJiBpc1BlbmRpbmdTY3JpcHRSZWFkeSgqbV9wYXJzZXJC
bG9ja2luZ1NjcmlwdCkpIHsKKyAgICAgICAgQVNTRVJUKG1fZG9jdW1lbnQpOworICAgICAgICBB
U1NFUlQoIWlzRXhlY3V0aW5nU2NyaXB0KCkpOworICAgICAgICBBU1NFUlQobV9kb2N1bWVudC0+
aGF2ZVN0eWxlc2hlZXRzTG9hZGVkKCkpOworICAgICAgICBJbnNlcnRpb25Qb2ludFJlY29yZCBp
bnNlcnRpb25Qb2ludFJlY29yZChtX2hvc3QuaW5wdXRTdHJlYW0oKSk7CisgICAgICAgIGV4ZWN1
dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChtX3BhcnNlckJsb2NraW5nU2NyaXB0LnJl
bGVhc2VOb25OdWxsKCkuZ2V0KCkpOworICAgIH0KIH0KIAogdm9pZCBIVE1MU2NyaXB0UnVubmVy
OjpleGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JMb2FkKFBlbmRpbmdTY3JpcHQmIHBlbmRpbmdTY3Jp
cHQpCkBAIC0yMDEsNyArMTk1LDcgQEAgYm9vbCBIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlU2Ny
aXB0c1dhaXRpbmdGb3JQYXJzaW5nKCkKICAgICAgICAgICAgIHdhdGNoRm9yTG9hZChtX3Njcmlw
dHNUb0V4ZWN1dGVBZnRlclBhcnNpbmcuZmlyc3QoKSk7CiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIH0KLSAgICAgICAgZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRjaEV2
ZW50KG1fc2NyaXB0c1RvRXhlY3V0ZUFmdGVyUGFyc2luZy50YWtlRmlyc3QoKSk7CisgICAgICAg
IGV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChtX3NjcmlwdHNUb0V4ZWN1dGVB
ZnRlclBhcnNpbmcudGFrZUZpcnN0KCkuZ2V0KCkpOwogICAgICAgICAvLyBGSVhNRTogV2hhdCBp
cyB0aGlzIG1fZG9jdW1lbnQgY2hlY2sgZm9yPwogICAgICAgICBpZiAoIW1fZG9jdW1lbnQpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMDksMTggKzIwMywxNyBAQCBib29sIEhUTUxT
Y3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclBhcnNpbmcoKQogICAgIHJldHVy
biB0cnVlOwogfQogCi1zdGF0aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IHJlcXVlc3RQZW5kaW5nU2Ny
aXB0KEVsZW1lbnQqIHNjcmlwdCkKK3N0YXRpYyBSZWY8UGVuZGluZ1NjcmlwdD4gcmVxdWVzdFBl
bmRpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCYgc2NyaXB0RWxlbWVudCkKIHsKLSAgICBhdXRvJiBz
Y3JpcHRFbGVtZW50ID0gKnRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoc2NyaXB0KTsKICAgICBB
U1NFUlQoc2NyaXB0RWxlbWVudC53aWxsQmVQYXJzZXJFeGVjdXRlZCgpKTsKICAgICBBU1NFUlQo
c2NyaXB0RWxlbWVudC5sb2FkYWJsZVNjcmlwdCgpKTsKLSAgICByZXR1cm4gUGVuZGluZ1Njcmlw
dDo6Y3JlYXRlKCpzY3JpcHQsICpzY3JpcHRFbGVtZW50LmxvYWRhYmxlU2NyaXB0KCkpOworICAg
IHJldHVybiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxlbWVudCwgKnNjcmlwdEVsZW1l
bnQubG9hZGFibGVTY3JpcHQoKSk7CiB9CiAKLXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6cmVxdWVz
dFBhcnNpbmdCbG9ja2luZ1NjcmlwdChFbGVtZW50KiBlbGVtZW50KQordm9pZCBIVE1MU2NyaXB0
UnVubmVyOjpyZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQmIHNjcmlw
dEVsZW1lbnQpCiB7CiAgICAgQVNTRVJUKCFtX3BhcnNlckJsb2NraW5nU2NyaXB0KTsKLSAgICBt
X3BhcnNlckJsb2NraW5nU2NyaXB0ID0gcmVxdWVzdFBlbmRpbmdTY3JpcHQoZWxlbWVudCk7Cisg
ICAgbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCA9IHJlcXVlc3RQZW5kaW5nU2NyaXB0KHNjcmlwdEVs
ZW1lbnQpOwogICAgIEFTU0VSVChtX3BhcnNlckJsb2NraW5nU2NyaXB0LT5uZWVkc0xvYWRpbmco
KSk7CiAKICAgICAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgYSBsb2FkIGNhbGxiYWNrIGlmIExvYWRh
YmxlU2NyaXB0IGlzIG5vdCBhbHJlYWR5CkBAIC0yMzAsNTUgKzIyMyw0NCBAQCB2b2lkIEhUTUxT
Y3JpcHRSdW5uZXI6OnJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQoRWxlbWVudCogZWxlbWVu
dCkKICAgICAgICAgd2F0Y2hGb3JMb2FkKCptX3BhcnNlckJsb2NraW5nU2NyaXB0KTsKIH0KIAot
dm9pZCBIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0RGVmZXJyZWRTY3JpcHQoRWxlbWVudCogZWxl
bWVudCkKK3ZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6cmVxdWVzdERlZmVycmVkU2NyaXB0KFNjcmlw
dEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQpCiB7Ci0gICAgYXV0byBwZW5kaW5nU2NyaXB0ID0gcmVx
dWVzdFBlbmRpbmdTY3JpcHQoZWxlbWVudCk7CisgICAgYXV0byBwZW5kaW5nU2NyaXB0ID0gcmVx
dWVzdFBlbmRpbmdTY3JpcHQoc2NyaXB0RWxlbWVudCk7CiAgICAgQVNTRVJUKHBlbmRpbmdTY3Jp
cHQtPm5lZWRzTG9hZGluZygpKTsKICAgICBtX3NjcmlwdHNUb0V4ZWN1dGVBZnRlclBhcnNpbmcu
YXBwZW5kKFdURk1vdmUocGVuZGluZ1NjcmlwdCkpOwogfQogCiAvLyBUaGlzIG1ldGhvZCBpcyBt
ZWFudCB0byBtYXRjaCB0aGUgSFRNTDUgZGVmaW5pdGlvbiBvZiAicnVubmluZyBhIHNjcmlwdCIK
IC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVs
dGlwYWdlL3NjcmlwdGluZy0xLmh0bWwjcnVubmluZy1hLXNjcmlwdAotdm9pZCBIVE1MU2NyaXB0
UnVubmVyOjpydW5TY3JpcHQoRWxlbWVudCogc2NyaXB0LCBjb25zdCBUZXh0UG9zaXRpb24mIHNj
cmlwdFN0YXJ0UG9zaXRpb24pCit2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJ1blNjcmlwdChTY3Jp
cHRFbGVtZW50JiBzY3JpcHRFbGVtZW50LCBjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0
UG9zaXRpb24pCiB7CiAgICAgQVNTRVJUKG1fZG9jdW1lbnQpOwogICAgIEFTU0VSVCghaGFzUGFy
c2VyQmxvY2tpbmdTY3JpcHQoKSk7Ci0gICAgewotICAgICAgICBTY3JpcHRFbGVtZW50KiBzY3Jp
cHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShzY3JpcHQpOwotCi0gICAgICAg
IC8vIFRoaXMgY29udGFpbnMgYm90aCBhbmQgQVNTRVJUSU9OIGFuZCBhIG51bGwgY2hlY2sgc2lu
Y2Ugd2Ugc2hvdWxkIG5vdAotICAgICAgICAvLyBiZSBnZXR0aW5nIGludG8gdGhlIGNhc2Ugb2Yg
YSBudWxsIHNjcmlwdCBlbGVtZW50LCBidXQgc2VlbSB0byBiZSBmcm9tCi0gICAgICAgIC8vIHRp
bWUgdG8gdGltZS4gVGhlIGFzc2VydGlvbiBpcyBsZWZ0IGluIHRvIGhlbHAgZmluZCB0aG9zZSBj
YXNlcyBhbmQKLSAgICAgICAgLy8gaXMgYmVpbmcgdHJhY2tlZCBieSA8aHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNTU5Pi4KLSAgICAgICAgQVNTRVJUKHNjcmlwdEVs
ZW1lbnQpOwotICAgICAgICBpZiAoIXNjcmlwdEVsZW1lbnQpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgLy8gRklYTUU6IFRoaXMgbWF5IGJlIHRvbyBhZ3Jlc3NpdmUgYXMgd2UgYWx3
YXlzIGRlbGl2ZXIgbXV0YXRpb25zIGF0Ci0gICAgICAgIC8vIGV2ZXJ5IHNjcmlwdCBlbGVtZW50
LCBldmVuIGlmIGl0J3Mgbm90IHJlYWR5IHRvIGV4ZWN1dGUgeWV0LiBUaGVyZSdzCi0gICAgICAg
IC8vIHVuZm9ydHVhbnRlbHkgbm8gb2J2aW91cyB3YXkgdG8gdGVsbCBpZiBwcmVwYXJlU2NyaXB0
IGlzIGdvaW5nIHRvCi0gICAgICAgIC8vIGV4ZWN1dGUgdGhlIHNjcmlwdCBmcm9tIG91dCBoZXJl
LgotICAgICAgICBpZiAoIWlzRXhlY3V0aW5nU2NyaXB0KCkpCi0gICAgICAgICAgICBNaWNyb3Rh
c2tRdWV1ZTo6bWFpblRocmVhZFF1ZXVlKCkucGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsK
LQotICAgICAgICBJbnNlcnRpb25Qb2ludFJlY29yZCBpbnNlcnRpb25Qb2ludFJlY29yZChtX2hv
c3QuaW5wdXRTdHJlYW0oKSk7Ci0gICAgICAgIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyIG5lc3Rp
bmdMZXZlbEluY3JlbWVudGVyKG1fc2NyaXB0TmVzdGluZ0xldmVsKTsKIAotICAgICAgICBzY3Jp
cHRFbGVtZW50LT5wcmVwYXJlU2NyaXB0KHNjcmlwdFN0YXJ0UG9zaXRpb24pOwotCi0gICAgICAg
IGlmICghc2NyaXB0RWxlbWVudC0+d2lsbEJlUGFyc2VyRXhlY3V0ZWQoKSkKLSAgICAgICAgICAg
IHJldHVybjsKKyAgICAvLyBGSVhNRTogVGhpcyBtYXkgYmUgdG9vIGFncmVzc2l2ZSBhcyB3ZSBh
bHdheXMgZGVsaXZlciBtdXRhdGlvbnMgYXQKKyAgICAvLyBldmVyeSBzY3JpcHQgZWxlbWVudCwg
ZXZlbiBpZiBpdCdzIG5vdCByZWFkeSB0byBleGVjdXRlIHlldC4gVGhlcmUncworICAgIC8vIHVu
Zm9ydHVuYXRlbHkgbm8gb2J2aW91cyB3YXkgdG8gdGVsbCBpZiBwcmVwYXJlU2NyaXB0IGlzIGdv
aW5nIHRvCisgICAgLy8gZXhlY3V0ZSB0aGUgc2NyaXB0IGJlZm9yZSBjYWxsaW5nIGl0LgorICAg
IGlmICghaXNFeGVjdXRpbmdTY3JpcHQoKSkKKyAgICAgICAgTWljcm90YXNrUXVldWU6Om1haW5U
aHJlYWRRdWV1ZSgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7CiAKLSAgICAgICAgaWYg
KHNjcmlwdEVsZW1lbnQtPndpbGxFeGVjdXRlV2hlbkRvY3VtZW50RmluaXNoZWRQYXJzaW5nKCkp
Ci0gICAgICAgICAgICByZXF1ZXN0RGVmZXJyZWRTY3JpcHQoc2NyaXB0KTsKLSAgICAgICAgZWxz
ZSBpZiAoc2NyaXB0RWxlbWVudC0+cmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQoKSkgewotICAgICAg
ICAgICAgaWYgKG1fc2NyaXB0TmVzdGluZ0xldmVsID09IDEpCi0gICAgICAgICAgICAgICAgbV9w
YXJzZXJCbG9ja2luZ1NjcmlwdCA9IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZSgqc2NyaXB0LCBzY3Jp
cHRTdGFydFBvc2l0aW9uKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzY3Jp
cHRFbGVtZW50LT5leGVjdXRlQ2xhc3NpY1NjcmlwdChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdC0+
dGV4dENvbnRlbnQoKSwgZG9jdW1lbnRVUkxGb3JTY3JpcHRFeGVjdXRpb24obV9kb2N1bWVudCks
IHNjcmlwdFN0YXJ0UG9zaXRpb24pKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICByZXF1
ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KHNjcmlwdCk7Ci0gICAgfQorICAgIEluc2VydGlvblBv
aW50UmVjb3JkIGluc2VydGlvblBvaW50UmVjb3JkKG1faG9zdC5pbnB1dFN0cmVhbSgpKTsKKyAg
ICBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlciBuZXN0aW5nTGV2ZWxJbmNyZW1lbnRlcihtX3Njcmlw
dE5lc3RpbmdMZXZlbCk7CisKKyAgICBzY3JpcHRFbGVtZW50LnByZXBhcmVTY3JpcHQoc2NyaXB0
U3RhcnRQb3NpdGlvbik7CisKKyAgICBpZiAoIXNjcmlwdEVsZW1lbnQud2lsbEJlUGFyc2VyRXhl
Y3V0ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHNjcmlwdEVsZW1lbnQud2lsbEV4
ZWN1dGVXaGVuRG9jdW1lbnRGaW5pc2hlZFBhcnNpbmcoKSkKKyAgICAgICAgcmVxdWVzdERlZmVy
cmVkU2NyaXB0KHNjcmlwdEVsZW1lbnQpOworICAgIGVsc2UgaWYgKHNjcmlwdEVsZW1lbnQucmVh
ZHlUb0JlUGFyc2VyRXhlY3V0ZWQoKSkgeworICAgICAgICBpZiAobV9zY3JpcHROZXN0aW5nTGV2
ZWwgPT0gMSkKKyAgICAgICAgICAgIG1fcGFyc2VyQmxvY2tpbmdTY3JpcHQgPSBQZW5kaW5nU2Ny
aXB0OjpjcmVhdGUoc2NyaXB0RWxlbWVudCwgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHNjcmlwdEVsZW1lbnQuZXhlY3V0ZUNsYXNzaWNTY3JpcHQoU2Ny
aXB0U291cmNlQ29kZShzY3JpcHRFbGVtZW50LmVsZW1lbnQoKS50ZXh0Q29udGVudCgpLCBkb2N1
bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlvbihtX2RvY3VtZW50KSwgc2NyaXB0U3RhcnRQb3NpdGlv
bikpOworICAgIH0gZWxzZQorICAgICAgICByZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KHNj
cmlwdEVsZW1lbnQpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MU2NyaXB0UnVubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
U2NyaXB0UnVubmVyLmgKaW5kZXggNzY4MDBkNzEzY2U3ZDJlNDYzNWE2NjIzNWIxNjdjMTlmNDU3
YzgwMy4uYzg2NzQ3ZDkxYmFlMDVlNDI3NjZkZGZmZWQ1OWEwODNlN2FhMWZkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuaApAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDEzICszMywx
MiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKLWNsYXNzIEVsZW1l
bnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEhUTUxTY3JpcHRSdW5uZXJIb3N0OwogY2xhc3MgU2Ny
aXB0U291cmNlQ29kZTsKIAogY2xhc3MgSFRNTFNjcmlwdFJ1bm5lciB7Ci0gICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoSFRNTFNjcmlwdFJ1bm5lcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEhUTUxTY3JpcHRSdW5u
ZXIoRG9jdW1lbnQmLCBIVE1MU2NyaXB0UnVubmVySG9zdCYpOwogICAgIH5IVE1MU2NyaXB0UnVu
bmVyKCk7CkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRldGFjaCgpOwogCiAg
ICAgLy8gUHJvY2Vzc2VzIHRoZSBwYXNzZWQgaW4gc2NyaXB0IGFuZCBhbnkgcGVuZGluZyBzY3Jp
cHRzIGlmIHBvc3NpYmxlLgotICAgIHZvaWQgZXhlY3V0ZShQYXNzUmVmUHRyPEVsZW1lbnQ+IHNj
cmlwdFRvUHJvY2VzcywgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsK
KyAgICB2b2lkIGV4ZWN1dGUoUmVmPFNjcmlwdEVsZW1lbnQ+JiYsIGNvbnN0IFRleHRQb3NpdGlv
biYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CiAKICAgICB2b2lkIGV4ZWN1dGVTY3JpcHRzV2FpdGlu
Z0ZvckxvYWQoUGVuZGluZ1NjcmlwdCYpOwogICAgIGJvb2wgaGFzU2NyaXB0c1dhaXRpbmdGb3JT
dHlsZXNoZWV0cygpIGNvbnN0IHsgcmV0dXJuIG1faGFzU2NyaXB0c1dhaXRpbmdGb3JTdHlsZXNo
ZWV0czsgfQpAQCAtNTksMTYgKzU5LDE0IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRnJhbWUq
IGZyYW1lKCkgY29uc3Q7CiAKLSAgICB2b2lkIGV4ZWN1dGVQYXJzaW5nQmxvY2tpbmdTY3JpcHQo
KTsKLSAgICB2b2lkIGV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChSZWZQdHI8
UGVuZGluZ1NjcmlwdD4pOworICAgIHZvaWQgZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRj
aEV2ZW50KFBlbmRpbmdTY3JpcHQmKTsKICAgICB2b2lkIGV4ZWN1dGVQYXJzaW5nQmxvY2tpbmdT
Y3JpcHRzKCk7CiAKLSAgICB2b2lkIHJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQoRWxlbWVu
dCopOwotICAgIHZvaWQgcmVxdWVzdERlZmVycmVkU2NyaXB0KEVsZW1lbnQqKTsKKyAgICB2b2lk
IHJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCYpOworICAgIHZvaWQg
cmVxdWVzdERlZmVycmVkU2NyaXB0KFNjcmlwdEVsZW1lbnQmKTsKIAotICAgIHZvaWQgcnVuU2Ny
aXB0KEVsZW1lbnQqLCBjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pOwor
ICAgIHZvaWQgcnVuU2NyaXB0KFNjcmlwdEVsZW1lbnQmLCBjb25zdCBUZXh0UG9zaXRpb24mIHNj
cmlwdFN0YXJ0UG9zaXRpb24pOwogCi0gICAgLy8gSGVscGVycyBmb3IgZGVhbGluZyB3aXRoIEhU
TUxTY3JpcHRSdW5uZXJIb3N0CiAgICAgdm9pZCB3YXRjaEZvckxvYWQoUGVuZGluZ1NjcmlwdCYp
OwogICAgIHZvaWQgc3RvcFdhdGNoaW5nRm9yTG9hZChQZW5kaW5nU2NyaXB0Jik7CiAgICAgYm9v
bCBpc1BlbmRpbmdTY3JpcHRSZWFkeShjb25zdCBQZW5kaW5nU2NyaXB0Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAppbmRleCA0NTI0YzFlYWFj
ZmQ5MzI5MDI2YzY2Y2I3MmFiNTRiMDA4ZjYyYTRjLi5kNGY4NGQyZmE1NWQ1OTkwZTZmNzc1Y2Rm
MGU0NGEzMjBjN2FjNjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
cmVlQnVpbGRlci5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEx
LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsMTAgKzM1LDEyIEBACiAjaW5jbHVkZSAiSFRNTE9wdEdy
b3VwRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTFRhYmxlRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVy
ZmFjZS5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgorI2luY2x1ZGUgIlNWR1NjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJYTGlu
a05hbWVzLmgiCiAjaW5jbHVkZSAiWE1MTlNOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgi
CkBAIC01NywxMCArNTksMTIgQEAgQ3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGE6OkN1c3Rv
bUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhKFJlZjxKU0N1c3RvbUVsZW1lbnQKICAgICA6IGVsZW1l
bnRJbnRlcmZhY2UoV1RGTW92ZShjdXN0b21FbGVtZW50SW50ZXJmYWNlKSkKICAgICAsIG5hbWUo
bmFtZSkKICAgICAsIGF0dHJpYnV0ZXMoV1RGTW92ZShhdHRyaWJ1dGVzKSkKLXsgfQoreworfQog
CiBDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YTo6fkN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rp
b25EYXRhKCkKLXsgfQoreworfQogCiBuYW1lc3BhY2UgewogCkBAIC0zMTgsNyArMzIyLDcgQEAg
aW5saW5lIEhUTUxTdGFja0l0ZW0mIEhUTUxUcmVlQnVpbGRlcjo6RnJhZ21lbnRQYXJzaW5nQ29u
dGV4dDo6Y29udGV4dEVsZW1lbnRTdGEKICAgICByZXR1cm4gKm1fY29udGV4dEVsZW1lbnRTdGFj
a0l0ZW07CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBIVE1MVHJlZUJ1aWxkZXI6OnRha2VTY3JpcHRU
b1Byb2Nlc3MoVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQorUmVmUHRyPFNjcmlw
dEVsZW1lbnQ+IEhUTUxUcmVlQnVpbGRlcjo6dGFrZVNjcmlwdFRvUHJvY2VzcyhUZXh0UG9zaXRp
b24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiB7CiAgICAgQVNTRVJUKCFtX2Rlc3Ryb3llZCk7CiAK
QEAgLTIwNTcsNyArMjA2MSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFn
KEF0b21pY0hUTUxUb2tlbiYmIHRva2VuKQogICAgICAgICAgICAgLy8gUGF1c2Ugb3Vyc2VsdmVz
IHNvIHRoYXQgcGFyc2luZyBzdG9wcyB1bnRpbCB0aGUgc2NyaXB0IGNhbiBiZSBwcm9jZXNzZWQg
YnkgdGhlIGNhbGxlci4KICAgICAgICAgICAgIEFTU0VSVChtX3RyZWUuY3VycmVudFN0YWNrSXRl
bSgpLmhhc1RhZ05hbWUoc2NyaXB0VGFnKSk7CiAgICAgICAgICAgICBpZiAoc2NyaXB0aW5nQ29u
dGVudElzQWxsb3dlZChtX3RyZWUucGFyc2VyQ29udGVudFBvbGljeSgpKSkKLSAgICAgICAgICAg
ICAgICBtX3NjcmlwdFRvUHJvY2VzcyA9ICZtX3RyZWUuY3VycmVudEVsZW1lbnQoKTsKKyAgICAg
ICAgICAgICAgICBtX3NjcmlwdFRvUHJvY2VzcyA9ICZkb3duY2FzdDxIVE1MU2NyaXB0RWxlbWVu
dD4obV90cmVlLmN1cnJlbnRFbGVtZW50KCkpOwogICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVt
ZW50cygpLnBvcCgpOwogICAgICAgICAgICAgbV9pbnNlcnRpb25Nb2RlID0gbV9vcmlnaW5hbElu
c2VydGlvbk1vZGU7CiAKQEAgLTI3ODcsNyArMjc5MSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzVG9rZW5JbkZvcmVpZ25Db250ZW50KEF0b21pY0hUTUxUb2tlbiYmIHRva2VuKQog
CiAgICAgICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gU1ZHTmFtZXM6OnNjcmlwdFRhZyAmJiBtX3Ry
ZWUuY3VycmVudFN0YWNrSXRlbSgpLmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNjcmlwdFRhZykpIHsK
ICAgICAgICAgICAgIGlmIChzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKG1fdHJlZS5wYXJzZXJD
b250ZW50UG9saWN5KCkpKQotICAgICAgICAgICAgICAgIG1fc2NyaXB0VG9Qcm9jZXNzID0gJm1f
dHJlZS5jdXJyZW50RWxlbWVudCgpOworICAgICAgICAgICAgICAgIG1fc2NyaXB0VG9Qcm9jZXNz
ID0gJmRvd25jYXN0PFNWR1NjcmlwdEVsZW1lbnQ+KG1fdHJlZS5jdXJyZW50RWxlbWVudCgpKTsK
ICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS5wb3AoKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRyZWVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1
aWxkZXIuaAppbmRleCBkNzA5MjlmNjBhNjBiYzY1OTZmNjc5MGNkMDBkZWYxNmY5ODU1OWE1Li5h
ZWNjYWI0NWRhNTUwY2UzOWE2ODk2ODBiMGNmNDRjYzUwMmYxZjFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw2ICszNSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlOwogY2xh
c3MgSFRNTERvY3VtZW50UGFyc2VyOworY2xhc3MgU2NyaXB0RWxlbWVudDsKIAogc3RydWN0IEN1
c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhIHsKICAgICBDdXN0b21FbGVtZW50Q29uc3RydWN0
aW9uRGF0YShSZWY8SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlPiYmLCBjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUsIFZlY3RvcjxBdHRyaWJ1dGU+JiYpOwpAQCAtNjIsNyArNjMsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdFdvcmsoKSBjb25zdDsKIAogICAgIC8v
IE11c3QgYmUgY2FsbGVkIHRvIHRha2UgdGhlIHBhcnNlci1ibG9ja2luZyBzY3JpcHQgYmVmb3Jl
IGNhbGxpbmcgdGhlIHBhcnNlciBhZ2Fpbi4KLSAgICBSZWZQdHI8RWxlbWVudD4gdGFrZVNjcmlw
dFRvUHJvY2VzcyhUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgIFJlZlB0
cjxTY3JpcHRFbGVtZW50PiB0YWtlU2NyaXB0VG9Qcm9jZXNzKFRleHRQb3NpdGlvbiYgc2NyaXB0
U3RhcnRQb3NpdGlvbik7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3VzdG9tRWxlbWVudENvbnN0
cnVjdGlvbkRhdGE+IHRha2VDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YSgpIHsgcmV0dXJu
IFdURk1vdmUobV9jdXN0b21FbGVtZW50VG9Db25zdHJ1Y3QpOyB9CiAgICAgdm9pZCBkaWRDcmVh
dGVDdXN0b21PckNhbGxiYWNrRWxlbWVudChSZWY8RWxlbWVudD4mJiwgQ3VzdG9tRWxlbWVudENv
bnN0cnVjdGlvbkRhdGEmKTsKQEAgLTIwNiw3ICsyMDcsNyBAQCBwcml2YXRlOgogICAgIC8vIGh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2NvbmNlcHQt
cGVuZGluZy10YWJsZS1jaGFyLXRva2VucwogICAgIFN0cmluZ0J1aWxkZXIgbV9wZW5kaW5nVGFi
bGVDaGFyYWN0ZXJzOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IG1fc2NyaXB0VG9Qcm9jZXNzOyAv
LyA8c2NyaXB0PiB0YWcgd2hpY2ggbmVlZHMgcHJvY2Vzc2luZyBiZWZvcmUgcmVzdW1pbmcgdGhl
IHBhcnNlci4KKyAgICBSZWZQdHI8U2NyaXB0RWxlbWVudD4gbV9zY3JpcHRUb1Byb2Nlc3M7IC8v
IDxzY3JpcHQ+IHRhZyB3aGljaCBuZWVkcyBwcm9jZXNzaW5nIGJlZm9yZSByZXN1bWluZyB0aGUg
cGFyc2VyLgogICAgIFRleHRQb3NpdGlvbiBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0UG9zaXRpb247
IC8vIFN0YXJ0aW5nIGxpbmUgbnVtYmVyIG9mIHRoZSBzY3JpcHQgdGFnIG5lZWRpbmcgcHJvY2Vz
c2luZy4KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0
YT4gbV9jdXN0b21FbGVtZW50VG9Db25zdHJ1Y3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmNwcAppbmRleCBhZDVmNmU3OGUzODFhYWRjY2M2
YjkxYmE5N2NhNDI1NTgwNGNiOTcwLi5mOTg4MjViMjA2MDk3ZjJjNGE4YzFmZTg0YjQwYjZkOGYw
YTVlYWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1l
bnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1bWVu
dFBhcnNlci5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJUZXh0RG9jdW1lbnRQYXJz
ZXIuaCIKIAogI2luY2x1ZGUgIkhUTUxUcmVlQnVpbGRlci5oIgorI2luY2x1ZGUgIlNjcmlwdEVs
ZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcAppbmRleCAzZjQzZTA0ZDVkZWViN2Qy
OTMxMTZlOGRlYzIzYzdiMGJmN2ZiNzc5Li45YjUwYmEzYjE0MzY4YzIzZDEzNjYxMWVmOGM5NDg2
ZGNiZWNjMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRp
dG9yRGVsZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0
b3JEZWxlZ2F0ZS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEz
IEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNDUsNyArNDYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFhTU0F1ZGl0
b3JEZWxlZ2F0ZTo6WFNTQXVkaXRvckRlbGVnYXRlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6
IG1fZG9jdW1lbnQoZG9jdW1lbnQpCi0gICAgLCBtX2RpZFNlbmROb3RpZmljYXRpb25zKGZhbHNl
KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiB9CkBAIC02OSwyMiArNjksMjIgQEAg
c3RhdGljIGlubGluZSBTdHJpbmcgYnVpbGRDb25zb2xlRXJyb3IoY29uc3QgWFNTSW5mbyYgeHNz
SW5mbykKICAgICByZXR1cm4gbWVzc2FnZS50b1N0cmluZygpOwogfQogCi1QYXNzUmVmUHRyPEZv
cm1EYXRhPiBYU1NBdWRpdG9yRGVsZWdhdGU6OmdlbmVyYXRlVmlvbGF0aW9uUmVwb3J0KGNvbnN0
IFhTU0luZm8mIHhzc0luZm8pCitSZWY8Rm9ybURhdGE+IFhTU0F1ZGl0b3JEZWxlZ2F0ZTo6Z2Vu
ZXJhdGVWaW9sYXRpb25SZXBvcnQoY29uc3QgWFNTSW5mbyYgeHNzSW5mbykKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgRnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyID0gbV9k
b2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKTsKKyAgICBhdXRvJiBmcmFtZUxvYWRlciA9IG1fZG9j
dW1lbnQuZnJhbWUoKS0+bG9hZGVyKCk7CiAgICAgU3RyaW5nIGh0dHBCb2R5OwogICAgIGlmIChm
cmFtZUxvYWRlci5kb2N1bWVudExvYWRlcigpKSB7Ci0gICAgICAgIGlmIChGb3JtRGF0YSogZm9y
bURhdGEgPSBmcmFtZUxvYWRlci5kb2N1bWVudExvYWRlcigpLT5vcmlnaW5hbFJlcXVlc3QoKS5o
dHRwQm9keSgpKQorICAgICAgICBpZiAoYXV0byogZm9ybURhdGEgPSBmcmFtZUxvYWRlci5kb2N1
bWVudExvYWRlcigpLT5vcmlnaW5hbFJlcXVlc3QoKS5odHRwQm9keSgpKQogICAgICAgICAgICAg
aHR0cEJvZHkgPSBmb3JtRGF0YS0+ZmxhdHRlblRvU3RyaW5nKCk7CiAgICAgfQogCi0gICAgUmVm
PEluc3BlY3Rvck9iamVjdD4gcmVwb3J0RGV0YWlscyA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRl
KCk7CisgICAgYXV0byByZXBvcnREZXRhaWxzID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsK
ICAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInJlcXVlc3QtdXJsIiwgeHNzSW5mby5tX29y
aWdpbmFsVVJMKTsKICAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInJlcXVlc3QtYm9keSIs
IGh0dHBCb2R5KTsKIAotICAgIFJlZjxJbnNwZWN0b3JPYmplY3Q+IHJlcG9ydE9iamVjdCA9IElu
c3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgYXV0byByZXBvcnRPYmplY3QgPSBJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpOwogICAgIHJlcG9ydE9iamVjdC0+c2V0T2JqZWN0KCJ4c3MtcmVw
b3J0IiwgV1RGTW92ZShyZXBvcnREZXRhaWxzKSk7CiAKICAgICByZXR1cm4gRm9ybURhdGE6OmNy
ZWF0ZShyZXBvcnRPYmplY3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuaAppbmRleCAwYWUy
NzRiMzE5MmRmYTQ3YTYzY2U5NmEyYTk3OTQ2NWVjODgwOGVmLi42N2EzMmVkOTMwZDdkOWRkNGRh
YzQwODkyMjBiZGYzZjJhZDc2ZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9YU1NBdWRpdG9yRGVsZWdhdGUuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yNywxMyArMjgsMTQgQEAKIAogI2luY2x1ZGUgIlVSTC5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwogY2xh
c3MgRm9ybURhdGE7CiAKKy8vIEZJWE1FOiBTaG91bGQgY2hhbmdlIGludG8gYSBzdHJ1Y3QuCisv
LyBGSVhNRTogU2hvdWxkIHJldHVybiBieSB2YWx1ZSBpbnN0ZWFkIG9mIHVzaW5nIGEgdW5pcXVl
X3B0ci4KIGNsYXNzIFhTU0luZm8gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgpAQCAtNTEsNyArNTMsNiBAQCBwdWJsaWM6CiB9OwogCiBjbGFzcyBYU1NBdWRpdG9yRGVs
ZWdhdGUgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFhTU0F1ZGl0b3JEZWxlZ2F0ZSk7CiBw
dWJsaWM6CiAgICAgZXhwbGljaXQgWFNTQXVkaXRvckRlbGVnYXRlKERvY3VtZW50Jik7CiAKQEAg
LTU5LDEwICs2MCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZXBvcnRVUkwoY29uc3QgVVJM
JiB1cmwpIHsgbV9yZXBvcnRVUkwgPSB1cmw7IH0KIAogcHJpdmF0ZToKLSAgICBQYXNzUmVmUHRy
PEZvcm1EYXRhPiBnZW5lcmF0ZVZpb2xhdGlvblJlcG9ydChjb25zdCBYU1NJbmZvJik7CisgICAg
UmVmPEZvcm1EYXRhPiBnZW5lcmF0ZVZpb2xhdGlvblJlcG9ydChjb25zdCBYU1NJbmZvJik7CiAK
ICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKLSAgICBib29sIG1fZGlkU2VuZE5vdGlmaWNhdGlv
bnM7CisgICAgYm9vbCBtX2RpZFNlbmROb3RpZmljYXRpb25zIHsgZmFsc2UgfTsKICAgICBVUkwg
bV9yZXBvcnRVUkw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0F1ZGlvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNw
cAppbmRleCA4YzM1NmY3OTE1ZDQ5OGNlMzQxMmY3OTg4MmY4ZDA2MGIwODU2MTkyLi5lZWIwNTUz
N2Y2NDUzNGY2NTU1N2E2Y2Y0NGYzODAxZDFkMzZiYmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svQXVkaW9UcmFjay5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMwLDEzICszMCwxMCBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCiAKICNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCi0KLSNpbmNsdWRl
ICJBdWRpb1RyYWNrTGlzdC5oIgotI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1l
ZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCkBAIC03OCwx
MCArNzUsMTAgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBBdWRpb1RyYWNrOjpjb21tZW50YXJ5S2V5
d29yZCgpCiAgICAgcmV0dXJuIGNvbW1lbnRhcnk7CiB9CiAKLUF1ZGlvVHJhY2s6OkF1ZGlvVHJh
Y2soQXVkaW9UcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRl
PiB0cmFja1ByaXZhdGUpCi0gICAgOiBNZWRpYVRyYWNrQmFzZShNZWRpYVRyYWNrQmFzZTo6QXVk
aW9UcmFjaywgdHJhY2tQcml2YXRlLT5pZCgpLCB0cmFja1ByaXZhdGUtPmxhYmVsKCksIHRyYWNr
UHJpdmF0ZS0+bGFuZ3VhZ2UoKSkKLSAgICAsIG1fZW5hYmxlZCh0cmFja1ByaXZhdGUtPmVuYWJs
ZWQoKSkKLSAgICAsIG1fY2xpZW50KGNsaWVudCkKK0F1ZGlvVHJhY2s6OkF1ZGlvVHJhY2soQXVk
aW9UcmFja0NsaWVudCYgY2xpZW50LCBBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQor
ICAgIDogTWVkaWFUcmFja0Jhc2UoTWVkaWFUcmFja0Jhc2U6OkF1ZGlvVHJhY2ssIHRyYWNrUHJp
dmF0ZS5pZCgpLCB0cmFja1ByaXZhdGUubGFiZWwoKSwgdHJhY2tQcml2YXRlLmxhbmd1YWdlKCkp
CisgICAgLCBtX2VuYWJsZWQodHJhY2tQcml2YXRlLmVuYWJsZWQoKSkKKyAgICAsIG1fY2xpZW50
KCZjbGllbnQpCiAgICAgLCBtX3ByaXZhdGUodHJhY2tQcml2YXRlKQogewogICAgIG1fcHJpdmF0
ZS0+c2V0Q2xpZW50KHRoaXMpOwpAQCAtOTMsODAgKzkwLDcwIEBAIEF1ZGlvVHJhY2s6On5BdWRp
b1RyYWNrKCkKICAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKIH0KIAotdm9pZCBB
dWRpb1RyYWNrOjpzZXRQcml2YXRlKFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+IHRyYWNr
UHJpdmF0ZSkKK3ZvaWQgQXVkaW9UcmFjazo6c2V0UHJpdmF0ZShBdWRpb1RyYWNrUHJpdmF0ZSYg
dHJhY2tQcml2YXRlKQogewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIEFTU0VSVCh0cmFj
a1ByaXZhdGUpOwotCi0gICAgaWYgKG1fcHJpdmF0ZSA9PSB0cmFja1ByaXZhdGUpCisgICAgaWYg
KG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQogICAgICAgICByZXR1cm47CiAKICAg
ICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKICAgICBtX3ByaXZhdGUgPSB0cmFja1By
aXZhdGU7CisgICAgbV9wcml2YXRlLT5zZXRFbmFibGVkKG1fZW5hYmxlZCk7CiAgICAgbV9wcml2
YXRlLT5zZXRDbGllbnQodGhpcyk7CiAKLSAgICBtX3ByaXZhdGUtPnNldEVuYWJsZWQobV9lbmFi
bGVkKTsKICAgICB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIH0KIAogYm9vbCBBdWRpb1RyYWNr
Ojppc1ZhbGlkS2luZChjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKSBjb25zdAogewogICAgIHJl
dHVybiB2YWx1ZSA9PSBhbHRlcm5hdGl2ZUtleXdvcmQoKQorICAgICAgICB8fCB2YWx1ZSA9PSBj
b21tZW50YXJ5S2V5d29yZCgpCiAgICAgICAgIHx8IHZhbHVlID09IGRlc2NyaXB0aW9uS2V5d29y
ZCgpCiAgICAgICAgIHx8IHZhbHVlID09IG1haW5LZXl3b3JkKCkKICAgICAgICAgfHwgdmFsdWUg
PT0gbWFpbkRlc2NLZXl3b3JkKCkKLSAgICAgICAgfHwgdmFsdWUgPT0gdHJhbnNsYXRpb25LZXl3
b3JkKCkKLSAgICAgICAgfHwgdmFsdWUgPT0gY29tbWVudGFyeUtleXdvcmQoKTsKKyAgICAgICAg
fHwgdmFsdWUgPT0gdHJhbnNsYXRpb25LZXl3b3JkKCk7CiB9CiAKLXZvaWQgQXVkaW9UcmFjazo6
c2V0RW5hYmxlZChjb25zdCBib29sIGVuYWJsZWQpCit2b2lkIEF1ZGlvVHJhY2s6OnNldEVuYWJs
ZWQoYm9vbCBlbmFibGVkKQogewogICAgIGlmIChtX2VuYWJsZWQgPT0gZW5hYmxlZCkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9lbmFibGVkID0gZW5hYmxlZDsKICAgICBtX3ByaXZhdGUtPnNl
dEVuYWJsZWQoZW5hYmxlZCk7Ci0KLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50
LT5hdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQodGhpcyk7CiB9CiAKLXNpemVfdCBBdWRpb1RyYWNr
OjppbmJhbmRUcmFja0luZGV4KCkKK3NpemVfdCBBdWRpb1RyYWNrOjppbmJhbmRUcmFja0luZGV4
KCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKICAgICByZXR1cm4gbV9wcml2YXRl
LT50cmFja0luZGV4KCk7CiB9CiAKLXZvaWQgQXVkaW9UcmFjazo6ZW5hYmxlZENoYW5nZWQoQXVk
aW9UcmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgYm9vbCBlbmFibGVkKQordm9pZCBBdWRpb1Ry
YWNrOjplbmFibGVkQ2hhbmdlZChib29sIGVuYWJsZWQpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0
cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOworICAgIGlmIChtX2VuYWJs
ZWQgPT0gZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9lbmFibGVkID0gZW5hYmxl
ZDsKIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmF1ZGlvVHJhY2tFbmFi
bGVkQ2hhbmdlZCh0aGlzKTsKKyAgICAgICAgbV9jbGllbnQtPmF1ZGlvVHJhY2tFbmFibGVkQ2hh
bmdlZCgqdGhpcyk7CiB9CiAKLXZvaWQgQXVkaW9UcmFjazo6aWRDaGFuZ2VkKFRyYWNrUHJpdmF0
ZUJhc2UqIHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCkKK3ZvaWQgQXVkaW9U
cmFjazo6aWRDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCiB7Ci0gICAgQVNTRVJUX1VO
VVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldElk
KGlkKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjpsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFz
ZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQordm9pZCBBdWRpb1Ry
YWNrOjpsYWJlbENoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkKIHsKLSAgICBBU1NF
UlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAg
c2V0TGFiZWwobGFiZWwpOwogfQogCi12b2lkIEF1ZGlvVHJhY2s6Omxhbmd1YWdlQ2hhbmdlZChU
cmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3Vh
Z2UpCit2b2lkIEF1ZGlvVHJhY2s6Omxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcm
IGxhbmd1YWdlKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZh
dGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRMYW5ndWFnZShsYW5ndWFnZSk7CiB9CiAKLXZvaWQg
QXVkaW9UcmFjazo6d2lsbFJlbW92ZShUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUpCit2
b2lkIEF1ZGlvVHJhY2s6OndpbGxSZW1vdmUoKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQ
cml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBtZWRpYUVsZW1lbnQoKS0+
cmVtb3ZlQXVkaW9UcmFjaygqdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svQXVkaW9UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRp
b1RyYWNrLmgKaW5kZXggNjFjNWIyY2Q0Mjk4ZDU3NGY3ZjcxNWJjMWMxOTIwMDc5MWRkMjNhYS4u
MDdjNzc5NGZhMDkzZjZkMjhhMjk0MTczYjg1MzNiN2JjMmM5Yjk5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9BdWRpb1RyYWNrLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksOSArMjksNyBAQAogI2lmIEVO
QUJMRShWSURFT19UUkFDSykKIAogI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlLmgiCi0jaW5j
bHVkZSAiUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCIKICNpbmNsdWRlICJUcmFja0Jhc2UuaCIKLSNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC00MCwxMiArMzgsMTIgQEAgY2xhc3MgQXVkaW9UcmFjazsKIGNsYXNzIEF1ZGlvVHJhY2tDbGll
bnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkF1ZGlvVHJhY2tDbGllbnQoKSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2sqKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrJikgPSAw
OwogfTsKIAotY2xhc3MgQXVkaW9UcmFjayBmaW5hbCA6IHB1YmxpYyBNZWRpYVRyYWNrQmFzZSwg
cHVibGljIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50IHsKK2NsYXNzIEF1ZGlvVHJhY2sgZmluYWwg
OiBwdWJsaWMgTWVkaWFUcmFja0Jhc2UsIHByaXZhdGUgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFjaz4gY3JlYXRlKEF1ZGlvVHJhY2tD
bGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRl
KQorICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFjaz4gY3JlYXRlKEF1ZGlvVHJhY2tDbGllbnQmIGNs
aWVudCwgQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKICAgICB7CiAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvVHJhY2soY2xpZW50LCB0cmFja1ByaXZhdGUpKTsKICAg
ICB9CkBAIC01NywzOSArNTUsMzcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBBdG9taWNT
dHJpbmcmIG1haW5EZXNjS2V5d29yZCgpOwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcm
IHRyYW5zbGF0aW9uS2V5d29yZCgpOwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGNv
bW1lbnRhcnlLZXl3b3JkKCk7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBkZWZhdWx0S2luZEtl
eXdvcmQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBlbXB0eUF0b207IH0KIAotICAgIGJvb2wg
ZW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZW5hYmxlZDsgfQorICAgIGJvb2wg
ZW5hYmxlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZW5hYmxlZDsgfQogICAgIHZvaWQgc2V0
RW5hYmxlZChjb25zdCBib29sKTsKIAotICAgIHZvaWQgY2xlYXJDbGllbnQoKSBvdmVycmlkZSB7
IG1fY2xpZW50ID0gbnVsbHB0cjsgfQorICAgIHZvaWQgY2xlYXJDbGllbnQoKSBmaW5hbCB7IG1f
Y2xpZW50ID0gbnVsbHB0cjsgfQogICAgIEF1ZGlvVHJhY2tDbGllbnQqIGNsaWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKLSAgICBzaXplX3QgaW5iYW5kVHJhY2tJbmRleCgpOwor
ICAgIHNpemVfdCBpbmJhbmRUcmFja0luZGV4KCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldFByaXZh
dGUoUGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4pOwotCi1wcm90ZWN0ZWQ6Ci0gICAgQXVk
aW9UcmFjayhBdWRpb1RyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4p
OworICAgIHZvaWQgc2V0UHJpdmF0ZShBdWRpb1RyYWNrUHJpdmF0ZSYpOwogCiBwcml2YXRlOgot
ICAgIGJvb2wgaXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgQXVkaW9UcmFjayhBdWRpb1RyYWNrQ2xpZW50JiwgQXVkaW9UcmFja1ByaXZhdGUmKTsK
KworICAgIGJvb2wgaXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3QgZmluYWw7
CiAKICAgICAvLyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudAotICAgIHZvaWQgZW5hYmxlZENoYW5n
ZWQoQXVkaW9UcmFja1ByaXZhdGUqLCBib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIGVuYWJsZWRD
aGFuZ2VkKGJvb2wpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAotICAg
IHZvaWQgaWRDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBv
dmVycmlkZTsKLSAgICB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3Qg
QXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQ
cml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2ls
bFJlbW92ZShUcmFja1ByaXZhdGVCYXNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBpZENoYW5nZWQo
Y29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYWJlbENoYW5nZWQoY29uc3Qg
QXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRv
bWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAKICAgICB2
b2lkIHVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpOwogCiAgICAgYm9vbCBtX2VuYWJsZWQ7CiAgICAg
QXVkaW9UcmFja0NsaWVudCogbV9jbGllbnQ7CiAKLSAgICBSZWZQdHI8QXVkaW9UcmFja1ByaXZh
dGU+IG1fcHJpdmF0ZTsKKyAgICBSZWY8QXVkaW9UcmFja1ByaXZhdGU+IG1fcHJpdmF0ZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwCmluZGV4IGJlNThjYzgxMTliZmU2ZDYwZjAzMGJh
MDE5M2MwY2RlNTI4NDkxOTguLjZkOTU0MDFiNGViMzI3MjNlODI1MDM0MWU5NmU5MWM0ZjNlOWQy
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRU
cmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRy
YWNrLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ2FibGUg
VGVsZXZpc2lvbiBMYWJzIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zMywzNSArMzMsMzMgQEAKICNpbmNsdWRlICJIVE1MTWVk
aWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oIgogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotUmVmPEluYmFuZERhdGFUZXh0VHJhY2s+IEluYmFuZERhdGFUZXh0
VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tD
bGllbnQqIGNsaWVudCwgUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+JiYgdHJhY2tQcml2
YXRlKQoraW5saW5lIEluYmFuZERhdGFUZXh0VHJhY2s6OkluYmFuZERhdGFUZXh0VHJhY2soU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50JiBjbGllbnQsIElu
YmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAgICA6IEluYmFuZFRleHRUcmFj
ayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBJbmJhbmREYXRhVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgV1RGTW92ZSh0cmFja1By
aXZhdGUpKSk7CiB9CiAKLUluYmFuZERhdGFUZXh0VHJhY2s6OkluYmFuZERhdGFUZXh0VHJhY2so
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQs
IFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiYmIHRyYWNrUHJpdmF0ZSkKLSAgICA6IElu
YmFuZFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkKK1JlZjxJbmJhbmRE
YXRhVGV4dFRyYWNrPiBJbmJhbmREYXRhVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50JiBjbGllbnQsIEluYmFuZFRleHRUcmFj
a1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbmJh
bmREYXRhVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKSk7CiB9CiAKIElu
YmFuZERhdGFUZXh0VHJhY2s6On5JbmJhbmREYXRhVGV4dFRyYWNrKCkKIHsKIH0KIAotdm9pZCBJ
bmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBj
b25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9pZCog
ZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQordm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRh
Q3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2
b2lkKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgYWRkQ3VlKERhdGFDdWU6OmNyZWF0
ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdGFydCwgZW5kLCBkYXRhLCBsZW5ndGgpKTsK
IH0KIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQogCi12b2lkIEluYmFuZERhdGFUZXh0VHJh
Y2s6OmFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYg
c3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9y
bVJlcHJlc2VudGF0aW9uPiBwcnBQbGF0Zm9ybVZhbHVlLCBjb25zdCBTdHJpbmcmIHR5cGUpCit2
b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFy
dCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRh
dGlvbj4mJiBwbGF0Zm9ybVZhbHVlLCBjb25zdCBTdHJpbmcmIHR5cGUpCiB7Ci0gICAgUmVmUHRy
PFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwbGF0Zm9ybVZhbHVlID0gcHJwUGxh
dGZvcm1WYWx1ZTsKLSAgICBpZiAobV9pbmNvbXBsZXRlQ3VlTWFwLmZpbmQocGxhdGZvcm1WYWx1
ZS5nZXQoKSkgIT0gbV9pbmNvbXBsZXRlQ3VlTWFwLmVuZCgpKQorICAgIGlmIChtX2luY29tcGxl
dGVDdWVNYXAuY29udGFpbnMocGxhdGZvcm1WYWx1ZS5wdHIoKSkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGF1dG8gY3VlID0gRGF0YUN1ZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCksIHN0YXJ0LCBlbmQsIHBsYXRmb3JtVmFsdWUuY29weVJlZigpLCB0eXBlKTsKQEAgLTc4LDI1
ICs3NiwxOSBAQCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OmFkZERhdGFDdWUoSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgcwogICAgIGFkZEN1ZShXVEZNb3ZlKGN1
ZSkpOwogfQogCi12b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGlt
ZSYgaW5FbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBy
cFBsYXRmb3JtVmFsdWUpCit2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUo
Y29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBpbkVuZCwgU2VyaWFsaXpl
ZFBsYXRmb3JtUmVwcmVzZW50YXRpb24mIHBsYXRmb3JtVmFsdWUpCiB7Ci0gICAgTWVkaWFUaW1l
IGVuZCA9IGluRW5kOwotCi0gICAgUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0
aW9uPiBwbGF0Zm9ybVZhbHVlID0gcHJwUGxhdGZvcm1WYWx1ZTsKLSAgICBhdXRvIGl0ZXIgPSBt
X2luY29tcGxldGVDdWVNYXAuZmluZChwbGF0Zm9ybVZhbHVlLmdldCgpKTsKLSAgICBpZiAoaXRl
ciA9PSBtX2luY29tcGxldGVDdWVNYXAuZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJl
ZlB0cjxEYXRhQ3VlPiBjdWUgPSBpdGVyLT52YWx1ZTsKKyAgICBSZWZQdHI8RGF0YUN1ZT4gY3Vl
ID0gbV9pbmNvbXBsZXRlQ3VlTWFwLmdldCgmcGxhdGZvcm1WYWx1ZSk7CiAgICAgaWYgKCFjdWUp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGN1ZS0+d2lsbENoYW5nZSgpOwogCisgICAgTWVkaWFU
aW1lIGVuZCA9IGluRW5kOwogICAgIGlmIChlbmQuaXNQb3NpdGl2ZUluZmluaXRlKCkgJiYgbWVk
aWFFbGVtZW50KCkpCiAgICAgICAgIGVuZCA9IG1lZGlhRWxlbWVudCgpLT5kdXJhdGlvbk1lZGlh
VGltZSgpOwogICAgIGVsc2UKLSAgICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLnJlbW92ZShwbGF0
Zm9ybVZhbHVlLmdldCgpKTsKKyAgICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLnJlbW92ZSgmcGxh
dGZvcm1WYWx1ZSk7CiAKICAgICBMT0coTWVkaWEsICJJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRh
dGVEYXRhQ3VlOiB3YXMgc3RhcnQ9JXMsIGVuZD0lcywgd2lsbCBiZSBzdGFydD0lcywgZW5kPSVz
XG4iLCB0b1N0cmluZyhjdWUtPnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhj
dWUtPmVuZFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoc3RhcnQpLnV0ZjgoKS5kYXRh
KCksIHRvU3RyaW5nKGVuZCkudXRmOCgpLmRhdGEoKSk7CiAKQEAgLTEwNiwxNCArOTgsOSBAQCB2
b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSosIGNvbnN0IE1lZGlhVGltZQogICAgIGN1ZS0+ZGlkQ2hhbmdlKCk7CiB9CiAKLXZvaWQg
SW5iYW5kRGF0YVRleHRUcmFjazo6cmVtb3ZlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRl
KiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUGFzc1JlZlB0cjxTZXJpYWxp
emVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcHJwUGxhdGZvcm1WYWx1ZSkKK3ZvaWQgSW5iYW5k
RGF0YVRleHRUcmFjazo6cmVtb3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRp
YVRpbWUmLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbiYgcGxhdGZvcm1WYWx1ZSkK
IHsKLSAgICBSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBsYXRmb3Jt
VmFsdWUgPSBwcnBQbGF0Zm9ybVZhbHVlOwotICAgIGF1dG8gaXRlciA9IG1faW5jb21wbGV0ZUN1
ZU1hcC5maW5kKHBsYXRmb3JtVmFsdWUuZ2V0KCkpOwotICAgIGlmIChpdGVyID09IG1faW5jb21w
bGV0ZUN1ZU1hcC5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKFJlZlB0cjxEYXRh
Q3VlPiBjdWUgPSBpdGVyLT52YWx1ZSkgeworICAgIGlmIChhdXRvKiBjdWUgPSBtX2luY29tcGxl
dGVDdWVNYXAuZ2V0KCZwbGF0Zm9ybVZhbHVlKSkgewogICAgICAgICBMT0coTWVkaWEsICJJbmJh
bmREYXRhVGV4dFRyYWNrOjpyZW1vdmVEYXRhQ3VlIHJlbW92aW5nIGN1ZTogc3RhcnQ9JXMsIGVu
ZD0lc1xuIiwgdG9TdHJpbmcoY3VlLT5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJp
bmcoY3VlLT5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZW1vdmVDdWUoKmN1
ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRE
YXRhVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0
VHJhY2suaAppbmRleCAyN2E4ZGI2MTY5ZDBiNDc2YzU0ZDMyZTQ4MTQyODYyMWRiMmEzMDgzLi42
N2FlYjZkMDUxNzRiODRjMDdhNTM2ZDM5YzIzYWExODIzODc2NGY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaApAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ2FibGUgVGVsZXZpc2lvbiBMYWJzIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMz
LDIzICszMywyMSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEYXRhQ3VlOwotY2xh
c3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTsKLWNsYXNzIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJl
c2VudGF0aW9uOwogCiBjbGFzcyBJbmJhbmREYXRhVGV4dFRyYWNrIGZpbmFsIDogcHVibGljIElu
YmFuZFRleHRUcmFjayB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbmJhbmREYXRhVGV4dFRy
YWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFJl
ZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiYmKTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZERh
dGFUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xp
ZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogICAgIHZpcnR1YWwgfkluYmFuZERhdGFU
ZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKLSAgICBJbmJhbmREYXRhVGV4dFRyYWNrKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBSZWZQdHI8SW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZT4mJik7CisgICAgSW5iYW5kRGF0YVRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogCi0gICAg
dm9pZCBhZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUm
IHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9pZCosIHVuc2lnbmVkKSBmaW5h
bDsKKyAgICB2b2lkIGFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVk
aWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkgZmluYWw7CiAKICNpZiBFTkFCTEUo
REFUQUNVRV9WQUxVRSkKLSAgICB2b2lkIGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVm
UHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiwgY29uc3QgU3RyaW5nJikgZmlu
YWw7Ci0gICAgdm9pZCB1cGRhdGVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25z
dCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJp
YWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4pIGZpbmFsOwotICAgIHZvaWQgcmVtb3ZlRGF0
YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29u
c3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50
YXRpb24+KSBmaW5hbDsKKyAgICB2b2lkIGFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFy
dCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRh
dGlvbj4mJiwgY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCB1cGRhdGVEYXRhQ3VlKGNv
bnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxh
dGZvcm1SZXByZXNlbnRhdGlvbiYpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShjb25z
dCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRm
b3JtUmVwcmVzZW50YXRpb24mKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiByZW1vdmVD
dWUoVGV4dFRyYWNrQ3VlJikgZmluYWw7CiAKICAgICBIYXNoTWFwPFJlZlB0cjxTZXJpYWxpemVk
UGxhdGZvcm1SZXByZXNlbnRhdGlvbj4sIFJlZlB0cjxEYXRhQ3VlPj4gbV9pbmNvbXBsZXRlQ3Vl
TWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmlj
VGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1Rl
eHRUcmFjay5jcHAKaW5kZXggMDkxYTVkMmIxODUyNjBiNThmNjhlMmZiY2Y4OWI4NzZjNzU2NWMy
ZS4uOTg2NzliMzYwMzkxZjA1ODA4MWZjZTk1OTU4MDcxNDMyNmFjYjRmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0IEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTY1LDEwMiArNjUsOTkgQEAgdm9pZCBHZW5lcmljVGV4dFRyYWNrQ3VlTWFwOjpyZW1vdmUo
VGV4dFRyYWNrQ3VlJiBjdWUpCiAgICAgICAgIG1fZGF0YVRvQ3VlTWFwLnJlbW92ZShkYXRhKTsK
IH0KIAotUmVmPEluYmFuZEdlbmVyaWNUZXh0VHJhY2s+IEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQq
IGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiBwbGF5ZXJQcml2YXRl
KQoraW5saW5lIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OkluYmFuZEdlbmVyaWNUZXh0VHJhY2so
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50JiBjbGllbnQs
IEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAgICA6IEluYmFuZFRleHRU
cmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBJbmJhbmRHZW5lcmljVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgcGxheWVyUHJp
dmF0ZSkpOwogfQogCi1JbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpJbmJhbmRHZW5lcmljVGV4dFRy
YWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xp
ZW50LCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKLSAg
ICA6IEluYmFuZFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkKK1JlZjxJ
bmJhbmRHZW5lcmljVGV4dFRyYWNrPiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50JiBjbGllbnQsIElu
YmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBJbmJhbmRHZW5lcmljVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2
YXRlKSk7CiB9CiAKIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6On5JbmJhbmRHZW5lcmljVGV4dFRy
YWNrKCkKIHsKIH0KIAotdm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVDdWVGcm9t
Q3VlRGF0YShUZXh0VHJhY2tDdWVHZW5lcmljKiBjdWUsIEdlbmVyaWNDdWVEYXRhKiBjdWVEYXRh
KQordm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVDdWVGcm9tQ3VlRGF0YShUZXh0
VHJhY2tDdWVHZW5lcmljJiBjdWUsIEdlbmVyaWNDdWVEYXRhJiBjdWVEYXRhKQogewotICAgIGN1
ZS0+d2lsbENoYW5nZSgpOworICAgIGN1ZS53aWxsQ2hhbmdlKCk7CiAKLSAgICBjdWUtPnNldFN0
YXJ0VGltZShjdWVEYXRhLT5zdGFydFRpbWUoKSk7Ci0gICAgTWVkaWFUaW1lIGVuZFRpbWUgPSBj
dWVEYXRhLT5lbmRUaW1lKCk7CisgICAgY3VlLnNldFN0YXJ0VGltZShjdWVEYXRhLnN0YXJ0VGlt
ZSgpKTsKKyAgICBNZWRpYVRpbWUgZW5kVGltZSA9IGN1ZURhdGEuZW5kVGltZSgpOwogICAgIGlm
IChlbmRUaW1lLmlzUG9zaXRpdmVJbmZpbml0ZSgpICYmIG1lZGlhRWxlbWVudCgpKQogICAgICAg
ICBlbmRUaW1lID0gbWVkaWFFbGVtZW50KCktPmR1cmF0aW9uTWVkaWFUaW1lKCk7Ci0gICAgY3Vl
LT5zZXRFbmRUaW1lKGVuZFRpbWUpOwotICAgIGN1ZS0+c2V0VGV4dChjdWVEYXRhLT5jb250ZW50
KCkpOwotICAgIGN1ZS0+c2V0SWQoY3VlRGF0YS0+aWQoKSk7Ci0gICAgY3VlLT5zZXRCYXNlRm9u
dFNpemVSZWxhdGl2ZVRvVmlkZW9IZWlnaHQoY3VlRGF0YS0+YmFzZUZvbnRTaXplKCkpOwotICAg
IGN1ZS0+c2V0Rm9udFNpemVNdWx0aXBsaWVyKGN1ZURhdGEtPnJlbGF0aXZlRm9udFNpemUoKSk7
Ci0gICAgY3VlLT5zZXRGb250TmFtZShjdWVEYXRhLT5mb250TmFtZSgpKTsKLQotICAgIGlmIChj
dWVEYXRhLT5wb3NpdGlvbigpID4gMCkKLSAgICAgICAgY3VlLT5zZXRQb3NpdGlvbihzdGQ6OnJv
dW5kKGN1ZURhdGEtPnBvc2l0aW9uKCkpKTsKLSAgICBpZiAoY3VlRGF0YS0+bGluZSgpID4gMCkK
LSAgICAgICAgY3VlLT5zZXRMaW5lKHN0ZDo6cm91bmQoY3VlRGF0YS0+bGluZSgpKSk7Ci0gICAg
aWYgKGN1ZURhdGEtPnNpemUoKSA+IDApCi0gICAgICAgIGN1ZS0+c2V0U2l6ZShzdGQ6OnJvdW5k
KGN1ZURhdGEtPnNpemUoKSkpOwotICAgIGlmIChjdWVEYXRhLT5iYWNrZ3JvdW5kQ29sb3IoKS5p
c1ZhbGlkKCkpCi0gICAgICAgIGN1ZS0+c2V0QmFja2dyb3VuZENvbG9yKGN1ZURhdGEtPmJhY2tn
cm91bmRDb2xvcigpLnJnYigpKTsKLSAgICBpZiAoY3VlRGF0YS0+Zm9yZWdyb3VuZENvbG9yKCku
aXNWYWxpZCgpKQotICAgICAgICBjdWUtPnNldEZvcmVncm91bmRDb2xvcihjdWVEYXRhLT5mb3Jl
Z3JvdW5kQ29sb3IoKS5yZ2IoKSk7Ci0gICAgaWYgKGN1ZURhdGEtPmhpZ2hsaWdodENvbG9yKCku
aXNWYWxpZCgpKQotICAgICAgICBjdWUtPnNldEhpZ2hsaWdodENvbG9yKGN1ZURhdGEtPmhpZ2hs
aWdodENvbG9yKCkucmdiKCkpOwotCi0gICAgaWYgKGN1ZURhdGEtPmFsaWduKCkgPT0gR2VuZXJp
Y0N1ZURhdGE6OlN0YXJ0KQotICAgICAgICBjdWUtPnNldEFsaWduKEFTQ0lJTGl0ZXJhbCgic3Rh
cnQiKSk7Ci0gICAgZWxzZSBpZiAoY3VlRGF0YS0+YWxpZ24oKSA9PSBHZW5lcmljQ3VlRGF0YTo6
TWlkZGxlKQotICAgICAgICBjdWUtPnNldEFsaWduKEFTQ0lJTGl0ZXJhbCgibWlkZGxlIikpOwot
ICAgIGVsc2UgaWYgKGN1ZURhdGEtPmFsaWduKCkgPT0gR2VuZXJpY0N1ZURhdGE6OkVuZCkKLSAg
ICAgICAgY3VlLT5zZXRBbGlnbihBU0NJSUxpdGVyYWwoImVuZCIpKTsKLSAgICBjdWUtPnNldFNu
YXBUb0xpbmVzKGZhbHNlKTsKLQotICAgIGN1ZS0+ZGlkQ2hhbmdlKCk7Ci19Ci0KLXZvaWQgSW5i
YW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRl
KiB0cmFja1ByaXZhdGUsIFBhc3NSZWZQdHI8R2VuZXJpY0N1ZURhdGE+IHBycEN1ZURhdGEpCi17
Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZh
dGUpOwotCi0gICAgUmVmUHRyPEdlbmVyaWNDdWVEYXRhPiBjdWVEYXRhID0gcHJwQ3VlRGF0YTsK
LSAgICBpZiAobV9jdWVNYXAuZmluZCgqY3VlRGF0YSkpCisgICAgY3VlLnNldEVuZFRpbWUoZW5k
VGltZSk7CisgICAgY3VlLnNldFRleHQoY3VlRGF0YS5jb250ZW50KCkpOworICAgIGN1ZS5zZXRJ
ZChjdWVEYXRhLmlkKCkpOworICAgIGN1ZS5zZXRCYXNlRm9udFNpemVSZWxhdGl2ZVRvVmlkZW9I
ZWlnaHQoY3VlRGF0YS5iYXNlRm9udFNpemUoKSk7CisgICAgY3VlLnNldEZvbnRTaXplTXVsdGlw
bGllcihjdWVEYXRhLnJlbGF0aXZlRm9udFNpemUoKSk7CisgICAgY3VlLnNldEZvbnROYW1lKGN1
ZURhdGEuZm9udE5hbWUoKSk7CisKKyAgICBpZiAoY3VlRGF0YS5wb3NpdGlvbigpID4gMCkKKyAg
ICAgICAgY3VlLnNldFBvc2l0aW9uKHN0ZDo6cm91bmQoY3VlRGF0YS5wb3NpdGlvbigpKSk7Cisg
ICAgaWYgKGN1ZURhdGEubGluZSgpID4gMCkKKyAgICAgICAgY3VlLnNldExpbmUoc3RkOjpyb3Vu
ZChjdWVEYXRhLmxpbmUoKSkpOworICAgIGlmIChjdWVEYXRhLnNpemUoKSA+IDApCisgICAgICAg
IGN1ZS5zZXRTaXplKHN0ZDo6cm91bmQoY3VlRGF0YS5zaXplKCkpKTsKKyAgICBpZiAoY3VlRGF0
YS5iYWNrZ3JvdW5kQ29sb3IoKS5pc1ZhbGlkKCkpCisgICAgICAgIGN1ZS5zZXRCYWNrZ3JvdW5k
Q29sb3IoY3VlRGF0YS5iYWNrZ3JvdW5kQ29sb3IoKS5yZ2IoKSk7CisgICAgaWYgKGN1ZURhdGEu
Zm9yZWdyb3VuZENvbG9yKCkuaXNWYWxpZCgpKQorICAgICAgICBjdWUuc2V0Rm9yZWdyb3VuZENv
bG9yKGN1ZURhdGEuZm9yZWdyb3VuZENvbG9yKCkucmdiKCkpOworICAgIGlmIChjdWVEYXRhLmhp
Z2hsaWdodENvbG9yKCkuaXNWYWxpZCgpKQorICAgICAgICBjdWUuc2V0SGlnaGxpZ2h0Q29sb3Io
Y3VlRGF0YS5oaWdobGlnaHRDb2xvcigpLnJnYigpKTsKKworICAgIGlmIChjdWVEYXRhLmFsaWdu
KCkgPT0gR2VuZXJpY0N1ZURhdGE6OlN0YXJ0KQorICAgICAgICBjdWUuc2V0QWxpZ24oQVNDSUlM
aXRlcmFsKCJzdGFydCIpKTsKKyAgICBlbHNlIGlmIChjdWVEYXRhLmFsaWduKCkgPT0gR2VuZXJp
Y0N1ZURhdGE6Ok1pZGRsZSkKKyAgICAgICAgY3VlLnNldEFsaWduKEFTQ0lJTGl0ZXJhbCgibWlk
ZGxlIikpOworICAgIGVsc2UgaWYgKGN1ZURhdGEuYWxpZ24oKSA9PSBHZW5lcmljQ3VlRGF0YTo6
RW5kKQorICAgICAgICBjdWUuc2V0QWxpZ24oQVNDSUlMaXRlcmFsKCJlbmQiKSk7CisgICAgY3Vl
LnNldFNuYXBUb0xpbmVzKGZhbHNlKTsKKworICAgIGN1ZS5kaWRDaGFuZ2UoKTsKK30KKwordm9p
ZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjphZGRHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJiBj
dWVEYXRhKQoreworICAgIGlmIChtX2N1ZU1hcC5maW5kKGN1ZURhdGEpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBhdXRvIGN1ZSA9IFRleHRUcmFja0N1ZUdlbmVyaWM6OmNyZWF0ZSgqc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLCBjdWVEYXRhLT5zdGFydFRpbWUoKSwgY3VlRGF0YS0+ZW5kVGlt
ZSgpLCBjdWVEYXRhLT5jb250ZW50KCkpOwotICAgIHVwZGF0ZUN1ZUZyb21DdWVEYXRhKGN1ZS5w
dHIoKSwgY3VlRGF0YS5nZXQoKSk7CisgICAgYXV0byBjdWUgPSBUZXh0VHJhY2tDdWVHZW5lcmlj
OjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgY3VlRGF0YS5zdGFydFRpbWUoKSwg
Y3VlRGF0YS5lbmRUaW1lKCksIGN1ZURhdGEuY29udGVudCgpKTsKKyAgICB1cGRhdGVDdWVGcm9t
Q3VlRGF0YShjdWUuZ2V0KCksIGN1ZURhdGEpOwogICAgIGlmIChoYXNDdWUoY3VlLnB0cigpLCBU
ZXh0VHJhY2tDdWU6Oklnbm9yZUR1cmF0aW9uKSkgewotICAgICAgICBMT0coTWVkaWEsICJJbmJh
bmRHZW5lcmljVGV4dFRyYWNrOjphZGRHZW5lcmljQ3VlIGlnbm9yaW5nIGFscmVhZHkgYWRkZWQg
Y3VlOiBzdGFydD0lcywgZW5kPSVzLCBjb250ZW50PVwiJXNcIlxuIiwgdG9TdHJpbmcoY3VlRGF0
YS0+c3RhcnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZURhdGEtPmVuZFRpbWUo
KSkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS0+Y29udGVudCgpLnV0ZjgoKS5kYXRhKCkpOworICAg
ICAgICBMT0coTWVkaWEsICJJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjphZGRHZW5lcmljQ3VlIGln
bm9yaW5nIGFscmVhZHkgYWRkZWQgY3VlOiBzdGFydD0lcywgZW5kPSVzLCBjb250ZW50PVwiJXNc
IlxuIiwgdG9TdHJpbmcoY3VlRGF0YS5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJp
bmcoY3VlRGF0YS5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEuY29udGVudCgpLnV0
ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgTE9HKE1lZGlhLCAi
SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSBhZGRlZCBjdWU6IHN0YXJ0PSUu
MmYsIGVuZD0lLjJmLCBjb250ZW50PVwiJXNcIlxuIiwgY3VlRGF0YS0+c3RhcnRUaW1lKCkudG9E
b3VibGUoKSwgY3VlRGF0YS0+ZW5kVGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEtPmNvbnRlbnQo
KS51dGY4KCkuZGF0YSgpKTsKKyAgICBMT0coTWVkaWEsICJJbmJhbmRHZW5lcmljVGV4dFRyYWNr
OjphZGRHZW5lcmljQ3VlIGFkZGVkIGN1ZTogc3RhcnQ9JS4yZiwgZW5kPSUuMmYsIGNvbnRlbnQ9
XCIlc1wiXG4iLCBjdWVEYXRhLnN0YXJ0VGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEuZW5kVGlt
ZSgpLnRvRG91YmxlKCksIGN1ZURhdGEuY29udGVudCgpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAg
aWYgKGN1ZURhdGEtPnN0YXR1cygpICE9IEdlbmVyaWNDdWVEYXRhOjpDb21wbGV0ZSkKLSAgICAg
ICAgbV9jdWVNYXAuYWRkKCpjdWVEYXRhLCBjdWUpOworICAgIGlmIChjdWVEYXRhLnN0YXR1cygp
ICE9IEdlbmVyaWNDdWVEYXRhOjpDb21wbGV0ZSkKKyAgICAgICAgbV9jdWVNYXAuYWRkKGN1ZURh
dGEsIGN1ZSk7CiAKICAgICBhZGRDdWUoV1RGTW92ZShjdWUpKTsKIH0KIAotdm9pZCBJbmJhbmRH
ZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUq
LCBHZW5lcmljQ3VlRGF0YSogY3VlRGF0YSkKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6
dXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYgY3VlRGF0YSkKIHsKLSAgICBhdXRvKiBj
dWUgPSBtX2N1ZU1hcC5maW5kKCpjdWVEYXRhKTsKKyAgICBhdXRvKiBjdWUgPSBtX2N1ZU1hcC5m
aW5kKGN1ZURhdGEpOwogICAgIGlmICghY3VlKQogICAgICAgICByZXR1cm47CiAKLSAgICB1cGRh
dGVDdWVGcm9tQ3VlRGF0YShjdWUsIGN1ZURhdGEpOworICAgIHVwZGF0ZUN1ZUZyb21DdWVEYXRh
KCpjdWUsIGN1ZURhdGEpOwogCi0gICAgaWYgKGN1ZURhdGEtPnN0YXR1cygpID09IEdlbmVyaWND
dWVEYXRhOjpDb21wbGV0ZSkKLSAgICAgICAgbV9jdWVNYXAucmVtb3ZlKCpjdWVEYXRhKTsKKyAg
ICBpZiAoY3VlRGF0YS5zdGF0dXMoKSA9PSBHZW5lcmljQ3VlRGF0YTo6Q29tcGxldGUpCisgICAg
ICAgIG1fY3VlTWFwLnJlbW92ZShjdWVEYXRhKTsKIH0KIAotdm9pZCBJbmJhbmRHZW5lcmljVGV4
dFRyYWNrOjpyZW1vdmVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBHZW5lcmlj
Q3VlRGF0YSogY3VlRGF0YSkKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2Vu
ZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYgY3VlRGF0YSkKIHsKLSAgICBhdXRvKiBjdWUgPSBtX2N1
ZU1hcC5maW5kKCpjdWVEYXRhKTsKKyAgICBhdXRvKiBjdWUgPSBtX2N1ZU1hcC5maW5kKGN1ZURh
dGEpOwogICAgIGlmIChjdWUpIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1Rl
eHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1ZSByZW1vdmluZyBjdWU6IHN0YXJ0PSVzLCBlbmQ9JXMs
IGNvbnRlbnQ9XCIlc1wiXG4iLCAgdG9TdHJpbmcoY3VlRGF0YS0+c3RhcnRUaW1lKCkpLnV0Zjgo
KS5kYXRhKCksIHRvU3RyaW5nKGN1ZURhdGEtPmVuZFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgY3Vl
RGF0YS0+Y29udGVudCgpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0coTWVkaWEsICJJbmJh
bmRHZW5lcmljVGV4dFRyYWNrOjpyZW1vdmVHZW5lcmljQ3VlIHJlbW92aW5nIGN1ZTogc3RhcnQ9
JXMsIGVuZD0lcywgY29udGVudD1cIiVzXCJcbiIsICB0b1N0cmluZyhjdWVEYXRhLnN0YXJ0VGlt
ZSgpKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWVEYXRhLmVuZFRpbWUoKSkudXRmOCgpLmRh
dGEoKSwgY3VlRGF0YS5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIHJlbW92ZUN1
ZSgqY3VlKTsKICAgICB9IGVsc2UgewotICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRHZW5lcmlj
VGV4dFRyYWNrOjpyZW1vdmVHZW5lcmljQ3VlIFVOQUJMRSB0byBmaW5kIGN1ZTogc3RhcnQ9JS4y
ZiwgZW5kPSUuMmYsIGNvbnRlbnQ9XCIlc1wiXG4iLCBjdWVEYXRhLT5zdGFydFRpbWUoKS50b0Rv
dWJsZSgpLCBjdWVEYXRhLT5lbmRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS0+Y29udGVudCgp
LnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRHZW5lcmljVGV4dFRy
YWNrOjpyZW1vdmVHZW5lcmljQ3VlIFVOQUJMRSB0byBmaW5kIGN1ZTogc3RhcnQ9JS4yZiwgZW5k
PSUuMmYsIGNvbnRlbnQ9XCIlc1wiXG4iLCBjdWVEYXRhLnN0YXJ0VGltZSgpLnRvRG91YmxlKCks
IGN1ZURhdGEuZW5kVGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEuY29udGVudCgpLnV0ZjgoKS5k
YXRhKCkpOwogICAgIH0KIH0KIApAQCAtMTc5LDE1ICsxNzYsMTMgQEAgV2ViVlRUUGFyc2VyJiBJ
bmJhbmRHZW5lcmljVGV4dFRyYWNrOjpwYXJzZXIoKQogICAgIHJldHVybiAqbV93ZWJWVFRQYXJz
ZXI7CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRh
KEluYmFuZFRleHRUcmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgY29uc3QgSVNPV2ViVlRUQ3Vl
JiBjdWVEYXRhKQordm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURh
dGEoY29uc3QgSVNPV2ViVlRUQ3VlJiBjdWVEYXRhKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJh
Y2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBwYXJzZXIoKS5wYXJz
ZUN1ZURhdGEoY3VlRGF0YSk7CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cGFy
c2VXZWJWVFRGaWxlSGVhZGVyKEluYmFuZFRleHRUcmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwg
U3RyaW5nJiYgaGVhZGVyKQordm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpwYXJzZVdlYlZU
VEZpbGVIZWFkZXIoU3RyaW5nJiYgaGVhZGVyKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQ
cml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBwYXJzZXIoKS5wYXJzZUZp
bGVIZWFkZXIoV1RGTW92ZShoZWFkZXIpKTsKIH0KIApAQCAtMjE0LDcgKzIwOSw3IEBAIHZvaWQg
SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6bmV3UmVnaW9uc1BhcnNlZCgpCiAKICAgICBmb3IgKGF1
dG8mIHJlZ2lvbiA6IG5ld1JlZ2lvbnMpIHsKICAgICAgICAgcmVnaW9uLT5zZXRUcmFjayh0aGlz
KTsKLSAgICAgICAgcmVnaW9ucygpLT5hZGQocmVnaW9uKTsKKyAgICAgICAgcmVnaW9ucygpLT5h
ZGQocmVnaW9uLnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suaAppbmRleCAxYzM0OGIy
ZGE1NTEwM2ViYmZjYTg3OGQ0MGI3ZjkwNzg5YmQ0NDYzLi5lNWZlYjI1NGJiZTJmOWEzYmYyNjg4
NWZjOGYzZDJhYmVkZDc1Yjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0luYmFuZEdlbmVyaWNUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0luYmFuZEdlbmVyaWNUZXh0VHJhY2suaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTItMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDkgKzMzLDYgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBEb2N1bWVudDsKLWNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZh
dGU7Ci0KIGNsYXNzIEdlbmVyaWNUZXh0VHJhY2tDdWVNYXAgewogcHVibGljOgogICAgIHZvaWQg
YWRkKEdlbmVyaWNDdWVEYXRhJiwgVGV4dFRyYWNrQ3VlR2VuZXJpYyYpOwpAQCAtNTYsMjMgKzUz
LDIyIEBAIHByaXZhdGU6CiAKIGNsYXNzIEluYmFuZEdlbmVyaWNUZXh0VHJhY2sgZmluYWwgOiBw
dWJsaWMgSW5iYW5kVGV4dFRyYWNrLCBwcml2YXRlIFdlYlZUVFBhcnNlckNsaWVudCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxJbmJhbmRHZW5lcmljVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZT4pOworICAgIHN0YXRpYyBSZWY8SW5iYW5kR2VuZXJpY1RleHRUcmFjaz4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlJik7CiAgICAgdmlydHVhbCB+SW5iYW5kR2VuZXJpY1RleHRUcmFjaygp
OwogCiBwcml2YXRlOgotICAgIEluYmFuZEdlbmVyaWNUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZT4pOworICAgIEluYmFuZEdlbmVyaWNUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIFRleHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKIAotICAgIHZv
aWQgYWRkR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgUGFzc1JlZlB0cjxHZW5l
cmljQ3VlRGF0YT4pIGZpbmFsOwotICAgIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0
VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqKSBmaW5hbDsKLSAgICB2b2lkIHJlbW92ZUdl
bmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgZmluYWw7
CisgICAgdm9pZCBhZGRHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgZmluYWw7CisgICAgdm9p
ZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgZmluYWw7CisgICAgdm9pZCByZW1v
dmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gcmVtb3ZlQ3VlKFRleHRUcmFja0N1ZSYpIGZpbmFsOwogCi0gICAgUGFzc1JlZlB0cjxUZXh0
VHJhY2tDdWVHZW5lcmljPiBjcmVhdGVDdWUoUGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0YT4pOwot
ICAgIHZvaWQgdXBkYXRlQ3VlRnJvbUN1ZURhdGEoVGV4dFRyYWNrQ3VlR2VuZXJpYyosIEdlbmVy
aWNDdWVEYXRhKik7CisgICAgdm9pZCB1cGRhdGVDdWVGcm9tQ3VlRGF0YShUZXh0VHJhY2tDdWVH
ZW5lcmljJiwgR2VuZXJpY0N1ZURhdGEmKTsKIAogICAgIFdlYlZUVFBhcnNlciYgcGFyc2VyKCk7
Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNv
bnN0IElTT1dlYlZUVEN1ZSYpIGZpbmFsOwotICAgIHZvaWQgcGFyc2VXZWJWVFRGaWxlSGVhZGVy
KEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBTdHJpbmcmJikgZmluYWw7CisgICAgdm9pZCBwYXJz
ZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJikgZmluYWw7CisgICAgdm9pZCBwYXJz
ZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYpIGZpbmFsOwogCiAgICAgdm9pZCBuZXdDdWVzUGFy
c2VkKCkgZmluYWw7CiAgICAgdm9pZCBuZXdSZWdpb25zUGFyc2VkKCkgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAKaW5kZXggZjJlZWVhZTBm
YzAwOTRlNDI4YTg3YTY1ZDE4MzE3ZDNjZmY0NDA3OS4uYmQ2NWU1NDhhODc2MjI5MGE1MTBkM2Q3
ZjkyYzFhYWIxNjk0OTJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9J
bmJhbmRUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5k
VGV4dFRyYWNrLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjQsNDMgKzI0LDM0IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkluYmFuZFRleHRUcmFjay5oIgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQogCi0jaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrLmgiCi0KLSNpbmNsdWRlICJEb2N1bWVudC5o
IgotI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkluYmFuZERhdGFUZXh0VHJhY2suaCIKICNpbmNsdWRlICJJbmJhbmRHZW5lcmljVGV4
dFRyYWNrLmgiCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUg
IkluYmFuZFdlYlZUVFRleHRUcmFjay5oIgotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRl
ICJUZXh0VHJhY2tDdWVMaXN0LmgiCi0jaW5jbHVkZSA8bWF0aC5oPgotI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPEluYmFu
ZFRleHRUcmFjaz4gSW5iYW5kVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwKLSAgICBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJh
bmRUZXh0VHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCitSZWY8SW5iYW5kVGV4dFRyYWNrPiBJ
bmJhbmRUZXh0VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBU
ZXh0VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2
YXRlKQogewotICAgIHN3aXRjaCAodHJhY2tQcml2YXRlLT5jdWVGb3JtYXQoKSkgeworICAgIHN3
aXRjaCAodHJhY2tQcml2YXRlLmN1ZUZvcm1hdCgpKSB7CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlOjpEYXRhOgogICAgICAgICByZXR1cm4gSW5iYW5kRGF0YVRleHRUcmFjazo6Y3Jl
YXRlKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKTsKICAgICBjYXNlIEluYmFuZFRleHRU
cmFja1ByaXZhdGU6OkdlbmVyaWM6CiAgICAgICAgIHJldHVybiBJbmJhbmRHZW5lcmljVGV4dFRy
YWNrOjpjcmVhdGUoY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpOwogICAgIGNhc2UgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZTo6V2ViVlRUOgogICAgICAgICByZXR1cm4gSW5iYW5kV2ViVlRU
VGV4dFRyYWNrOjpjcmVhdGUoY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpOwotICAgIGRl
ZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsK
ICAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEluYmFuZERhdGFU
ZXh0VHJhY2s6OmNyZWF0ZShjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSk7CiB9CiAKLUlu
YmFuZFRleHRUcmFjazo6SW5iYW5kVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFj
a1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKLSAgICA6IFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQs
IGVtcHR5QXRvbSwgdHJhY2tQcml2YXRlLT5pZCgpLCB0cmFja1ByaXZhdGUtPmxhYmVsKCksIHRy
YWNrUHJpdmF0ZS0+bGFuZ3VhZ2UoKSwgSW5CYW5kKQorSW5iYW5kVGV4dFRyYWNrOjpJbmJhbmRU
ZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50
JiBjbGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAgICA6IFRl
eHRUcmFjaygmY29udGV4dCwgJmNsaWVudCwgZW1wdHlBdG9tLCB0cmFja1ByaXZhdGUuaWQoKSwg
dHJhY2tQcml2YXRlLmxhYmVsKCksIHRyYWNrUHJpdmF0ZS5sYW5ndWFnZSgpLCBJbkJhbmQpCiAg
ICAgLCBtX3ByaXZhdGUodHJhY2tQcml2YXRlKQogewogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50
KHRoaXMpOwpAQCAtNzIsMTIgKzYzLDkgQEAgSW5iYW5kVGV4dFRyYWNrOjp+SW5iYW5kVGV4dFRy
YWNrKCkKICAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKIH0KIAotdm9pZCBJbmJh
bmRUZXh0VHJhY2s6OnNldFByaXZhdGUoUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRl
PiB0cmFja1ByaXZhdGUpCit2b2lkIEluYmFuZFRleHRUcmFjazo6c2V0UHJpdmF0ZShJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiB7Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7
Ci0gICAgQVNTRVJUKHRyYWNrUHJpdmF0ZSk7Ci0KLSAgICBpZiAobV9wcml2YXRlID09IHRyYWNr
UHJpdmF0ZSkKKyAgICBpZiAobV9wcml2YXRlLnB0cigpID09ICZ0cmFja1ByaXZhdGUpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwpAQCAtMTE1
LDgwICsxMDMsNjAgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2s6OnNldE1vZGVJbnRlcm5hbChNb2Rl
IG1vZGUpCiAKIGJvb2wgSW5iYW5kVGV4dFRyYWNrOjppc0Nsb3NlZENhcHRpb25zKCkgY29uc3QK
IHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+aXNDbG9zZWRDYXB0aW9ucygpOwogfQogCiBib29sIEluYmFuZFRleHRU
cmFjazo6aXNTREgoKSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRlKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNTREgoKTsKIH0KIAogYm9v
bCBJbmJhbmRUZXh0VHJhY2s6OmNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygpIGNvbnN0CiB7
Ci0gICAgaWYgKCFtX3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKICAgICBy
ZXR1cm4gbV9wcml2YXRlLT5jb250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMoKTsKIH0KIAogYm9v
bCBJbmJhbmRUZXh0VHJhY2s6OmlzTWFpblByb2dyYW1Db250ZW50KCkgY29uc3QKIHsKLSAgICBp
ZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAogICAgIHJldHVybiBt
X3ByaXZhdGUtPmlzTWFpblByb2dyYW1Db250ZW50KCk7CiB9CiAKIGJvb2wgSW5iYW5kVGV4dFRy
YWNrOjppc0Vhc3lUb1JlYWQoKSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRlKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNFYXN5VG9SZWFk
KCk7CiB9CiAgICAgCiBzaXplX3QgSW5iYW5kVGV4dFRyYWNrOjppbmJhbmRUcmFja0luZGV4KCkK
IHsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKICAgICByZXR1cm4gbV9wcml2YXRlLT50cmFja0lu
ZGV4KCk7CiB9CiAKIEF0b21pY1N0cmluZyBJbmJhbmRUZXh0VHJhY2s6OmluQmFuZE1ldGFkYXRh
VHJhY2tEaXNwYXRjaFR5cGUoKSBjb25zdAogewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwogICAg
IHJldHVybiBtX3ByaXZhdGUtPmluQmFuZE1ldGFkYXRhVHJhY2tEaXNwYXRjaFR5cGUoKTsKIH0K
IAotdm9pZCBJbmJhbmRUZXh0VHJhY2s6OmlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFj
a1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCit2b2lkIEluYmFuZFRleHRUcmFjazo6
aWRDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0
cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldElkKGlkKTsK
IH0KIAotdm9pZCBJbmJhbmRUZXh0VHJhY2s6OmxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNl
KiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpCit2b2lkIEluYmFuZFRl
eHRUcmFjazo6bGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpCiB7Ci0gICAg
QVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwog
ICAgIHNldExhYmVsKGxhYmVsKTsKIH0KIAotdm9pZCBJbmJhbmRUZXh0VHJhY2s6Omxhbmd1YWdl
Q2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbGFuZ3VhZ2UpCit2b2lkIEluYmFuZFRleHRUcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0
IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZh
dGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldExhbmd1YWdlKGxhbmd1YWdl
KTsKIH0KIAotdm9pZCBJbmJhbmRUZXh0VHJhY2s6OndpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFz
ZSogdHJhY2tQcml2YXRlKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6OndpbGxSZW1vdmUoKQogewot
ICAgIGlmICghbWVkaWFFbGVtZW50KCkpCisgICAgYXV0byogZWxlbWVudCA9IG1lZGlhRWxlbWVu
dCgpOworICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVF9VTlVT
RUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKLSAgICBtZWRpYUVs
ZW1lbnQoKS0+cmVtb3ZlVGV4dFRyYWNrKCp0aGlzKTsKKyAgICBlbGVtZW50LT5yZW1vdmVUZXh0
VHJhY2soKnRoaXMpOwogfQogCiB2b2lkIEluYmFuZFRleHRUcmFjazo6dXBkYXRlS2luZEZyb21Q
cml2YXRlKCkKQEAgLTE5NiwzNCArMTY0LDMwIEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrOjp1cGRh
dGVLaW5kRnJvbVByaXZhdGUoKQogICAgIHN3aXRjaCAobV9wcml2YXRlLT5raW5kKCkpIHsKICAg
ICBjYXNlIEluYmFuZFRleHRUcmFja1ByaXZhdGU6OlN1YnRpdGxlczoKICAgICAgICAgc2V0S2lu
ZChLaW5kOjpTdWJ0aXRsZXMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAg
IGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6Q2FwdGlvbnM6CiAgICAgICAgIHNldEtpbmQo
S2luZDo6Q2FwdGlvbnMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6RGVzY3JpcHRpb25zOgogICAgICAgICBzZXRLaW5k
KEtpbmQ6OkRlc2NyaXB0aW9ucyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpDaGFwdGVyczoKICAgICAgICAgc2V0S2lu
ZChLaW5kOjpDaGFwdGVycyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAg
Y2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNZXRhZGF0YToKICAgICAgICAgc2V0S2luZChL
aW5kOjpNZXRhZGF0YSk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2Fz
ZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpGb3JjZWQ6CiAgICAgICAgIHNldEtpbmQoS2luZDo6
Rm9yY2VkKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluYmFu
ZFRleHRUcmFja1ByaXZhdGU6Ok5vbmU6Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKIH0KIAogTWVkaWFUaW1lIEluYmFuZFRleHRUcmFjazo6c3RhcnRUaW1lVmFyaWFuY2Uo
KSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRlKQotICAgICAgICByZXR1cm4gTWVkaWFUaW1l
Ojp6ZXJvVGltZSgpOwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPnN0YXJ0VGltZVZhcmlh
bmNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5k
VGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5o
CmluZGV4IDljZDAyN2MzNmM4NWIwYWE1MTU2N2VlNjk2ZTEyNjZkMDg0NWYzM2UuLjZjZjI2ODdi
Yjg2ZTk1NDliYzFmMTY1NTUzZDkyNTBiOGM1N2VlMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9JbmJhbmRUZXh0VHJhY2suaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwxNSArMjksMTIgQEAKIAogI2luY2x1
ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaCIKICNpbmNsdWRlICJUZXh0VHJhY2su
aCIKLSNpbmNsdWRlICJUZXh0VHJhY2tDdWVHZW5lcmljLmgiCi0jaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBJbmJhbmRUZXh0VHJhY2sgOiBwdWJsaWMgVGV4dFRyYWNrLCBwdWJsaWMgSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUNsaWVudCB7CitjbGFzcyBJbmJhbmRUZXh0VHJhY2sgOiBwdWJsaWMg
VGV4dFRyYWNrLCBwcml2YXRlIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRleHRU
cmFja1ByaXZhdGU+KTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZFRleHRUcmFjaz4gY3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlJik7CiAgICAgdmlydHVhbCB+SW5iYW5kVGV4dFRyYWNrKCk7CiAKICAgICBib29sIGlz
Q2xvc2VkQ2FwdGlvbnMoKSBjb25zdCBvdmVycmlkZTsKQEAgLTUwLDM4ICs0NywzOCBAQCBwdWJs
aWM6CiAKICAgICBBdG9taWNTdHJpbmcgaW5CYW5kTWV0YWRhdGFUcmFja0Rpc3BhdGNoVHlwZSgp
IGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZXRQcml2YXRlKFBhc3NSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHZvaWQgc2V0UHJpdmF0ZShJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlJik7CiAKIHByb3RlY3RlZDoKLSAgICBJbmJhbmRUZXh0VHJhY2soU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZT4pOworICAgIEluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
VGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogCiAgICAgdm9pZCBz
ZXRNb2RlSW50ZXJuYWwoTW9kZSk7CiAgICAgdm9pZCB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsK
IAotICAgIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiBtX3ByaXZhdGU7CisgICAgUmVm
PEluYmFuZFRleHRUcmFja1ByaXZhdGU+IG1fcHJpdmF0ZTsKIAogcHJpdmF0ZToKICAgICBib29s
IGlzSW5iYW5kKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQgaWRDaGFu
Z2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5n
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSos
IGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbFJlbW92ZShUcmFj
a1ByaXZhdGVCYXNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBsYWJlbENoYW5nZWQoY29uc3QgQXRvbWljU3Ry
aW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWljU3Ry
aW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgb3ZlcnJpZGU7CiAKLSAgICB2
b2lkIGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYs
IGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkgb3ZlcnJpZGUgeyBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUm
LCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpIG92ZXJyaWRlIHsgQVNT
RVJUX05PVF9SRUFDSEVEKCk7IH0KIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQotICAgIHZv
aWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiwg
Y29uc3QgTWVkaWFUaW1lJiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRh
dGlvbj4sIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
LSAgICB2b2lkIHVwZGF0ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3Jt
UmVwcmVzZW50YXRpb24+KSBvdmVycmlkZSAgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAg
IHZvaWQgcmVtb3ZlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFU
aW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXBy
ZXNlbnRhdGlvbj4pIG92ZXJyaWRlICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9p
ZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFJlZjxTZXJp
YWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4mJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUg
eyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRh
dGlvbiYpIG92ZXJyaWRlICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCByZW1v
dmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNlcmlhbGl6ZWRQ
bGF0Zm9ybVJlcHJlc2VudGF0aW9uJikgb3ZlcnJpZGUgIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7
IH0KICNlbmRpZgogCi0gICAgdm9pZCBhZGRHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZh
dGUqLCBQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQotICAgIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2
YXRlKiwgR2VuZXJpY0N1ZURhdGEqKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
Ci0gICAgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBHZW5l
cmljQ3VlRGF0YSopIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lk
IGFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9CisgICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgb3Zl
cnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgcmVtb3ZlR2VuZXJpY0N1
ZShHZW5lcmljQ3VlRGF0YSYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIAot
ICAgIHZvaWQgcGFyc2VXZWJWVFRGaWxlSGVhZGVyKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBT
dHJpbmcmJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZvaWQgcGFy
c2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBjaGFyKiwgdW5z
aWduZWQpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2b2lkIHBhcnNl
V2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNPV2ViVlRUQ3Vl
Jikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgcGFyc2VXZWJW
VFRGaWxlSGVhZGVyKFN0cmluZyYmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgY2hhciosIHVuc2lnbmVkKSBvdmVy
cmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURh
dGEoY29uc3QgSVNPV2ViVlRUQ3VlJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQogCiAgICAgTWVkaWFUaW1lIHN0YXJ0VGltZVZhcmlhbmNlKCkgY29uc3Qgb3ZlcnJpZGU7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0
VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJh
Y2suY3BwCmluZGV4IGU1NDBlNDk0MWFlY2E4NmMwZmZlYTc1MzRiN2FhMjI2YjEyY2MyYTYuLmQw
ZmFlNGU5Yjg1NmEwNDEyYjMyNjg3Yzc3MmVlMzZmZGYxOTQ0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE0IEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0
LDI3ICsyNCwyNiBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmJh
bmRXZWJWVFRUZXh0VHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotI2luY2x1
ZGUgIkluYmFuZFdlYlZUVFRleHRUcmFjay5oIgotCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgorI2luY2x1ZGUgIlZUVEN1ZS5oIgogI2luY2x1ZGUgIlZUVFJlZ2lvbkxpc3QuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVm
PEluYmFuZFRleHRUcmFjaz4gSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQ
dHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKK2lubGluZSBJbmJhbmRX
ZWJWVFRUZXh0VHJhY2s6OkluYmFuZFdlYlZUVFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSYgdHJhY2tQcml2YXRlKQorICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVu
dCwgdHJhY2tQcml2YXRlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZFdlYlZU
VFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHBsYXllclByaXZhdGUpKTsKIH0KIAotSW5iYW5k
V2ViVlRUVGV4dFRyYWNrOjpJbmJhbmRXZWJWVFRUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQotICAgIDogSW5iYW5kVGV4dFRyYWNrKGNv
bnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKQorUmVmPEluYmFuZFRleHRUcmFjaz4gSW5iYW5k
V2ViVlRUVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
VGV4dFRyYWNrQ2xpZW50JiBjbGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJp
dmF0ZSkKIHsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbmJhbmRXZWJWVFRUZXh0VHJhY2so
Y29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpKTsKIH0KIAogSW5iYW5kV2ViVlRUVGV4dFRy
YWNrOjp+SW5iYW5kV2ViVlRUVGV4dFRyYWNrKCkKQEAgLTU4LDE1ICs1NywxMyBAQCBXZWJWVFRQ
YXJzZXImIEluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VyKCkKICAgICByZXR1cm4gKm1fd2Vi
VlRUUGFyc2VyOwogfQogCi12b2lkIEluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VXZWJWVFRD
dWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgY29uc3QgY2hhciog
ZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQordm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBhcnNl
V2ViVlRUQ3VlRGF0YShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAg
QVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwog
ICAgIHBhcnNlcigpLnBhcnNlQnl0ZXMoZGF0YSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBJbmJhbmRX
ZWJWVFRUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRl
KiB0cmFja1ByaXZhdGUsIGNvbnN0IElTT1dlYlZUVEN1ZSYgY3VlRGF0YSkKK3ZvaWQgSW5iYW5k
V2ViVlRUVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJiBj
dWVEYXRhKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUg
PT0gbV9wcml2YXRlKTsKICAgICBwYXJzZXIoKS5wYXJzZUN1ZURhdGEoY3VlRGF0YSk7CiB9CiAK
QEAgLTc0LDEwICs3MSw4IEBAIHZvaWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpuZXdDdWVzUGFy
c2VkKCkKIHsKICAgICBWZWN0b3I8UmVmUHRyPFdlYlZUVEN1ZURhdGE+PiBjdWVzOwogICAgIHBh
cnNlcigpLmdldE5ld0N1ZXMoY3Vlcyk7Ci0KICAgICBmb3IgKGF1dG8mIGN1ZURhdGEgOiBjdWVz
KSB7CiAgICAgICAgIGF1dG8gdnR0Q3VlID0gVlRUQ3VlOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgKmN1ZURhdGEpOwotCiAgICAgICAgIGlmIChoYXNDdWUodnR0Q3VlLnB0cigp
LCBUZXh0VHJhY2tDdWU6Oklnbm9yZUR1cmF0aW9uKSkgewogICAgICAgICAgICAgTE9HKE1lZGlh
LCAiSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpuZXdDdWVzUGFyc2VkIGlnbm9yaW5nIGFscmVhZHkg
YWRkZWQgY3VlOiBzdGFydD0lLjJmLCBlbmQ9JS4yZiwgY29udGVudD1cIiVzXCJcbiIsIHZ0dEN1
ZS0+c3RhcnRUaW1lKCksIHZ0dEN1ZS0+ZW5kVGltZSgpLCB2dHRDdWUtPnRleHQoKS51dGY4KCku
ZGF0YSgpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTkwLDEzICs4NSwxMiBAQCB2b2lkIElu
YmFuZFdlYlZUVFRleHRUcmFjazo6bmV3UmVnaW9uc1BhcnNlZCgpCiB7CiAgICAgVmVjdG9yPFJl
ZlB0cjxWVFRSZWdpb24+PiBuZXdSZWdpb25zOwogICAgIHBhcnNlcigpLmdldE5ld1JlZ2lvbnMo
bmV3UmVnaW9ucyk7Ci0KICAgICBmb3IgKGF1dG8mIHJlZ2lvbiA6IG5ld1JlZ2lvbnMpIHsKICAg
ICAgICAgcmVnaW9uLT5zZXRUcmFjayh0aGlzKTsKLSAgICAgICAgcmVnaW9ucygpLT5hZGQocmVn
aW9uKTsKKyAgICAgICAgcmVnaW9ucygpLT5hZGQocmVnaW9uLnJlbGVhc2VOb25OdWxsKCkpOwog
ICAgIH0KIH0KLSAgICAKKwogdm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmZpbGVGYWlsZWRU
b1BhcnNlKCkKIHsKICAgICBMT0coTWVkaWEsICJFcnJvciBwYXJzaW5nIFdlYlZUVCBzdHJlYW0u
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRl
eHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJh
Y2suaAppbmRleCA4Y2M3N2E5Y2VkYTNjMzdiYjFmNmUxZDVhNTkzZDI2M2MzZDI0OWVmLi4yMWQ5
MTM0Njk3NWE5YTZlNzk3OWI4YWMwMzlmNGE2M2MzZTgxNGJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmgKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsMjUgKzMw
LDI0IEBACiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiV2ViVlRUUGFy
c2VyLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbmJhbmRXZWJWVFRUZXh0VHJhY2sgZmluYWwgOiBw
dWJsaWMgSW5iYW5kVGV4dFRyYWNrLCBwcml2YXRlIFdlYlZUVFBhcnNlckNsaWVudCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxJbmJhbmRUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlPik7CisgICAgc3RhdGljIFJlZjxJbmJhbmRUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSYpOwogICAgIHZpcnR1YWwgfkluYmFuZFdlYlZUVFRleHRUcmFjaygpOwogCiBwcml2YXRlOgot
ICAgIEluYmFuZFdlYlZUVFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRy
YWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CisgICAgSW5i
YW5kV2ViVlRUVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGll
bnQmLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CiAKICAgICBXZWJWVFRQYXJzZXImIHBhcnNl
cigpOwotICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUq
LCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIG92ZXJyaWRlOwotICAgIHZvaWQg
cGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBJU09XZWJW
VFRDdWUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBjaGFy
KiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIGZpbmFsOworICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVE
YXRhKGNvbnN0IElTT1dlYlZUVEN1ZSYpIGZpbmFsOwogCi0gICAgdm9pZCBuZXdDdWVzUGFyc2Vk
KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBuZXdSZWdpb25zUGFyc2VkKCkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBmaWxlRmFpbGVkVG9QYXJzZSgpIG92ZXJyaWRlOworICAgIHZvaWQgbmV3Q3Vlc1BhcnNl
ZCgpIGZpbmFsOworICAgIHZvaWQgbmV3UmVnaW9uc1BhcnNlZCgpIGZpbmFsOworICAgIHZvaWQg
ZmlsZUZhaWxlZFRvUGFyc2UoKSBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJWVFRQ
YXJzZXI+IG1fd2ViVlRUUGFyc2VyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9Mb2FkYWJsZVRleHRUcmFjay5jcHAKaW5kZXggMjEwZjZhOWRmNWFjNzcxNzVhOTgxMmFjMDUx
MDQyMjMyYTM0MGYzMy4uNTUyOGRlMTdiMjlmNGJlMGM5NjgzODQzODI5M2U3MzY4NmU4NWNkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5jcHAK
QEAgLTEsNSArMSw2IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEdvb2dsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI0LDE0ICsyNSwxMSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJMb2FkYWJsZVRleHRUcmFjay5oIgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQogCi0jaW5jbHVkZSAiTG9hZGFibGVUZXh0VHJhY2suaCIKLQotI2luY2x1ZGUgIkV2ZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTFRyYWNrRWxlbWVudC5oIgotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tDdWVMaXN0LmgiCiAjaW5jbHVkZSAiVlRU
UmVnaW9uTGlzdC5oIgogCkBAIC05NiwxMSArOTQsMTEgQEAgdm9pZCBMb2FkYWJsZVRleHRUcmFj
azo6bmV3Q3Vlc0F2YWlsYWJsZShUZXh0VHJhY2tMb2FkZXIqIGxvYWRlcikKIAogICAgIGZvciAo
YXV0byYgbmV3Q3VlIDogbmV3Q3VlcykgewogICAgICAgICBuZXdDdWUtPnNldFRyYWNrKHRoaXMp
OwotICAgICAgICBtX2N1ZXMtPmFkZChuZXdDdWUpOworICAgICAgICBtX2N1ZXMtPmFkZChuZXdD
dWUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogCiAgICAgaWYgKGNsaWVudCgpKQotICAgICAg
ICBjbGllbnQoKS0+dGV4dFRyYWNrQWRkQ3Vlcyh0aGlzLCBtX2N1ZXMuZ2V0KCkpOworICAgICAg
ICBjbGllbnQoKS0+dGV4dFRyYWNrQWRkQ3VlcygqdGhpcywgKm1fY3Vlcyk7CiB9CiAKIHZvaWQg
TG9hZGFibGVUZXh0VHJhY2s6OmN1ZUxvYWRpbmdDb21wbGV0ZWQoVGV4dFRyYWNrTG9hZGVyKiBs
b2FkZXIsIGJvb2wgbG9hZGluZ0ZhaWxlZCkKQEAgLTEyMiw3ICsxMjAsNyBAQCB2b2lkIExvYWRh
YmxlVGV4dFRyYWNrOjpuZXdSZWdpb25zQXZhaWxhYmxlKFRleHRUcmFja0xvYWRlciogbG9hZGVy
KQogCiAgICAgZm9yIChhdXRvJiBuZXdSZWdpb24gOiBuZXdSZWdpb25zKSB7CiAgICAgICAgIG5l
d1JlZ2lvbi0+c2V0VHJhY2sodGhpcyk7Ci0gICAgICAgIHJlZ2lvbnMoKS0+YWRkKG5ld1JlZ2lv
bik7CisgICAgICAgIHJlZ2lvbnMoKS0+YWRkKG5ld1JlZ2lvbi5yZWxlYXNlTm9uTnVsbCgpKTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFi
bGVUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJh
Y2suaAppbmRleCAwMTAyMGIwYjRjYmZmMTM5MTRiZTcyYTA5MTYyOTI2YjZiODhkMzYxLi5iYTlj
NzZmYjJjMzU4ZGFiODllZjU4MTYwZWQxMDFkMzY3NTc3NTk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwxMiArMzAsMTAgQEAKIAogI2lu
Y2x1ZGUgIlRleHRUcmFjay5oIgogI2luY2x1ZGUgIlRleHRUcmFja0xvYWRlci5oIgotI2luY2x1
ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1M
VHJhY2tFbGVtZW50OwotY2xhc3MgTG9hZGFibGVUZXh0VHJhY2s7CiAKIGNsYXNzIExvYWRhYmxl
VGV4dFRyYWNrIGZpbmFsIDogcHVibGljIFRleHRUcmFjaywgcHJpdmF0ZSBUZXh0VHJhY2tMb2Fk
ZXJDbGllbnQgewogcHVibGljOgpAQCAtNDksNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgSFRNTFRy
YWNrRWxlbWVudCogdHJhY2tFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV90cmFja0VsZW1lbnQ7
IH0KICAgICB2b2lkIGNsZWFyRWxlbWVudCgpIHsgbV90cmFja0VsZW1lbnQgPSBudWxscHRyOyB9
CiAKLSAgICB2b2lkIHNldElzRGVmYXVsdChib29sIGlzRGVmYXVsdCkgZmluYWwgIHsgbV9pc0Rl
ZmF1bHQgPSBpc0RlZmF1bHQ7IH0KKyAgICB2b2lkIHNldElzRGVmYXVsdChib29sIGlzRGVmYXVs
dCkgZmluYWwgeyBtX2lzRGVmYXVsdCA9IGlzRGVmYXVsdDsgfQogCiBwcml2YXRlOgogICAgIExv
YWRhYmxlVGV4dFRyYWNrKEhUTUxUcmFja0VsZW1lbnQmLCBjb25zdCBTdHJpbmcmIGtpbmQsIGNv
bnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpOwpAQCAtNjgsNyArNjcs
NyBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fbG9hZFRpbWVyOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxUZXh0VHJhY2tMb2FkZXI+IG1fbG9hZGVyOwogICAgIFVSTCBtX3VybDsKLSAgICBib29sIG1f
aXNEZWZhdWx0OworICAgIGJvb2wgbV9pc0RlZmF1bHQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCmlu
ZGV4IDk2YmNkN2VkMzUwZDI4ZTA0MmVhZTY4Y2VkNTIwMWE3MWYzYzVmMDkuLjFmMjNjNDQzMmYz
YzE1N2QyOWY1ZTU1N2Q0NTY4OTg3YWIyNmZjMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFjay5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEx
LCAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMCwxMSArMzAsMTAgQEAKICAqLwogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGV4dFRyYWNrLmgiCiAKICNpZiBFTkFCTEUoVklE
RU9fVFJBQ0spCiAKLSNpbmNsdWRlICJUZXh0VHJhY2suaCIKLQogI2luY2x1ZGUgIkV2ZW50Lmgi
CiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQu
aCIKQEAgLTQ2LDggKzQ1LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgY29u
c3QgaW50IGludmFsaWRUcmFja0luZGV4ID0gLTE7Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4
dFRyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbWljU3RyaW5nPiBzdWJ0aXRsZXMoInN1YnRpdGxlcyIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwpAQCAtMTAxLDggKzk4LDYgQEAgVGV4dFRyYWNrOjpUZXh0
VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBj
bGllbnQsIGMKICAgICAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0KQogICAgICwg
bV9jbGllbnQoY2xpZW50KQogICAgICwgbV90cmFja1R5cGUodHlwZSkKLSAgICAsIG1fdHJhY2tJ
bmRleChpbnZhbGlkVHJhY2tJbmRleCkKLSAgICAsIG1fcmVuZGVyZWRUcmFja0luZGV4KGludmFs
aWRUcmFja0luZGV4KQogewogICAgIGlmIChraW5kID09IGNhcHRpb25zS2V5d29yZCgpKQogICAg
ICAgICBtX2tpbmQgPSBLaW5kOjpDYXB0aW9uczsKQEAgLTEyMCw4ICsxMTUsNyBAQCBUZXh0VHJh
Y2s6On5UZXh0VHJhY2soKQogewogICAgIGlmIChtX2N1ZXMpIHsKICAgICAgICAgaWYgKG1fY2xp
ZW50KQotICAgICAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZXModGhpcywgbV9j
dWVzLmdldCgpKTsKLQorICAgICAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZXMo
KnRoaXMsICptX2N1ZXMpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY3Vlcy0+
bGVuZ3RoKCk7ICsraSkKICAgICAgICAgICAgIG1fY3Vlcy0+aXRlbShpKS0+c2V0VHJhY2sobnVs
bHB0cik7CiAgICAgfQpAQCAtMTg5LDcgKzE4Myw3IEBAIHZvaWQgVGV4dFRyYWNrOjpzZXRLaW5k
KEtpbmQgbmV3S2luZCkKICAgICAvLyAzLiBJZiB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0ZSBv
biB0aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2lt
cGxlCiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHNvdXJjZUJ1ZmZlci50ZXh0VHJhY2tz
LgogICAgIGlmIChtX3NvdXJjZUJ1ZmZlcikKLSAgICAgICAgbV9zb3VyY2VCdWZmZXItPnRleHRU
cmFja3MoKS0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOworICAgICAgICBtX3NvdXJjZUJ1ZmZlci0+
dGV4dFRyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIC8vIDQuIFF1ZXVlIGEg
dGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCB0aGUgVGV4dFRyYWNr
TGlzdCBvYmplY3QgcmVmZXJlbmNlZCBieQogICAgIC8vIHRoZSB0ZXh0VHJhY2tzIGF0dHJpYnV0
ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KQEAgLTE5OCw3ICsxOTIsNyBAQCB2b2lkIFRleHRU
cmFjazo6c2V0S2luZChLaW5kIG5ld0tpbmQpCiAjZW5kaWYKIAogICAgIGlmIChtX2NsaWVudCAm
JiBvbGRLaW5kICE9IG1fa2luZCkKLSAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja0tpbmRDaGFu
Z2VkKHRoaXMpOworICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrS2luZENoYW5nZWQoKnRoaXMp
OwogfQogCiB2b2lkIFRleHRUcmFjazo6c2V0S2luZEtleXdvcmRJZ25vcmluZ0FTQ0lJQ2FzZShT
dHJpbmdWaWV3IGtleXdvcmQpCkBAIC0yMzYsNyArMjMwLDcgQEAgdm9pZCBUZXh0VHJhY2s6OnNl
dE1vZGUoTW9kZSBtb2RlKQogICAgIC8vIElmIG1vZGUgY2hhbmdlcyB0byBkaXNhYmxlZCwgcmVt
b3ZlIHRoaXMgdHJhY2sncyBjdWVzIGZyb20gdGhlIGNsaWVudAogICAgIC8vIGJlY2F1c2UgdGhl
eSB3aWxsIG5vIGxvbmdlciBiZSBhY2Nlc3NpYmxlIGZyb20gdGhlIGN1ZXMoKSBmdW5jdGlvbi4K
ICAgICBpZiAobW9kZSA9PSBNb2RlOjpEaXNhYmxlZCAmJiBtX2NsaWVudCAmJiBtX2N1ZXMpCi0g
ICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKHRoaXMsIG1fY3Vlcy5nZXQoKSk7
CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKCp0aGlzLCAqbV9jdWVzKTsK
IAogICAgIGlmIChtb2RlICE9IE1vZGU6OlNob3dpbmcgJiYgbV9jdWVzKSB7CiAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jdWVzLT5sZW5ndGgoKTsgKytpKSB7CkBAIC0yNDksNyAr
MjQzLDcgQEAgdm9pZCBUZXh0VHJhY2s6OnNldE1vZGUoTW9kZSBtb2RlKQogICAgIG1fbW9kZSA9
IG1vZGU7CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tN
b2RlQ2hhbmdlZCh0aGlzKTsKKyAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja01vZGVDaGFuZ2Vk
KCp0aGlzKTsKIH0KIAogVGV4dFRyYWNrQ3VlTGlzdCogVGV4dFRyYWNrOjpjdWVzKCkKQEAgLTI3
MCw3ICsyNjQsNyBAQCB2b2lkIFRleHRUcmFjazo6cmVtb3ZlQWxsQ3VlcygpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja1Jl
bW92ZUN1ZXModGhpcywgbV9jdWVzLmdldCgpKTsKKyAgICAgICAgbV9jbGllbnQtPnRleHRUcmFj
a1JlbW92ZUN1ZXMoKnRoaXMsICptX2N1ZXMpOwogICAgIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9jdWVzLT5sZW5ndGgoKTsgKytpKQogICAgICAgICBtX2N1ZXMtPml0ZW0oaSktPnNl
dFRyYWNrKG51bGxwdHIpOwpAQCAtMjg4LDcgKzI4Miw3IEBAIFRleHRUcmFja0N1ZUxpc3QqIFRl
eHRUcmFjazo6YWN0aXZlQ3VlcygpIGNvbnN0CiAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3Jn
L3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jZG9tLXRleHR0cmFjay1hY3RpdmVjdWVzCiAg
ICAgaWYgKCFtX2N1ZXMgfHwgbV9tb2RlID09IE1vZGU6OkRpc2FibGVkKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gbV9jdWVzLT5hY3RpdmVDdWVzKCk7CisgICAgcmV0dXJu
ICZtX2N1ZXMtPmFjdGl2ZUN1ZXMoKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gVGV4dFRyYWNr
OjphZGRDdWUoUmVmPFRleHRUcmFja0N1ZT4mJiBjdWUpCkBAIC0zMTgsMTAgKzMxMiwxMCBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBUZXh0VHJhY2s6OmFkZEN1ZShSZWY8VGV4dFRyYWNrQ3VlPiYmIGN1
ZSkKIAogICAgIC8vIDIuIEFkZCBjdWUgdG8gdGhlIG1ldGhvZCdzIFRleHRUcmFjayBvYmplY3Qn
cyB0ZXh0IHRyYWNrJ3MgdGV4dCB0cmFjayBsaXN0IG9mIGN1ZXMuCiAgICAgY3VlLT5zZXRUcmFj
ayh0aGlzKTsKLSAgICBlbnN1cmVUZXh0VHJhY2tDdWVMaXN0KCkuYWRkKGN1ZS5wdHIoKSk7Cisg
ICAgZW5zdXJlVGV4dFRyYWNrQ3VlTGlzdCgpLmFkZChjdWUuY29weVJlZigpKTsKICAgICAKICAg
ICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tBZGRDdWUodGhpcywg
Y3VlKTsKKyAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja0FkZEN1ZSgqdGhpcywgY3VlKTsKIAog
ICAgIHJldHVybiB7IH07CiB9CkBAIC0zMzgsMTIgKzMzMiwxMiBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBUZXh0VHJhY2s6OnJlbW92ZUN1ZShUZXh0VHJhY2tDdWUmIGN1ZSkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5PVF9GT1VORF9FUlIgfTsKIAogICAgIC8vIDIuIFJlbW92ZSBjdWUgZnJv
bSB0aGUgbWV0aG9kJ3MgVGV4dFRyYWNrIG9iamVjdCdzIHRleHQgdHJhY2sncyB0ZXh0IHRyYWNr
IGxpc3Qgb2YgY3Vlcy4KLSAgICBpZiAoIW1fY3VlcyB8fCAhbV9jdWVzLT5yZW1vdmUoJmN1ZSkp
Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NUQVRFX0VSUiB9OwotCisgICAg
QVNTRVJUKG1fY3Vlcyk7CisgICAgbV9jdWVzLT5yZW1vdmUoY3VlKTsKKyAgICBjdWUuc2V0SXNB
Y3RpdmUoZmFsc2UpOwogICAgIGN1ZS5zZXRUcmFjayhudWxscHRyKTsKICAgICBpZiAobV9jbGll
bnQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUodGhpcywgY3VlKTsKKyAg
ICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZSgqdGhpcywgY3VlKTsKIAogICAgIHJl
dHVybiB7IH07CiB9CkBAIC0zOTIsMTAgKzM4Niw5IEBAIHZvaWQgVGV4dFRyYWNrOjphZGRSZWdp
b24oUmVmUHRyPFZUVFJlZ2lvbj4mJiByZWdpb24pCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICAvLyBPdGhlcndpc2U6IGFkZCByZWdpb24gdG8gdGhlIG1ldGhvZCdzIFRleHRUcmFjayBv
YmplY3QncyB0ZXh0IHRyYWNrCi0gICAgLy8gbGlzdCBvZiByZWdpb25zLgorICAgIC8vIE90aGVy
d2lzZTogYWRkIHJlZ2lvbiB0byB0aGUgbWV0aG9kJ3MgVGV4dFRyYWNrIG9iamVjdCdzIHRleHQg
dHJhY2sgbGlzdCBvZiByZWdpb25zLgogICAgIHJlZ2lvbi0+c2V0VHJhY2sodGhpcyk7Ci0gICAg
cmVnaW9uTGlzdC5hZGQoV1RGTW92ZShyZWdpb24pKTsKKyAgICByZWdpb25MaXN0LmFkZChyZWdp
b24ucmVsZWFzZU5vbk51bGwoKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFRleHRUcmFjazo6
cmVtb3ZlUmVnaW9uKFZUVFJlZ2lvbiogcmVnaW9uKQpAQCAtNDA4LDkgKzQwMSw4IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFRleHRUcmFjazo6cmVtb3ZlUmVnaW9uKFZUVFJlZ2lvbiogcmVnaW9uKQog
ICAgIGlmIChyZWdpb24tPnRyYWNrKCkgIT0gdGhpcykKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5PVF9GT1VORF9FUlIgfTsKIAotICAgIGlmICghbV9yZWdpb25zIHx8ICFtX3JlZ2lvbnMt
PnJlbW92ZShyZWdpb24pKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFU
RV9FUlIgfTsKLQorICAgIEFTU0VSVChtX3JlZ2lvbnMpOworICAgIG1fcmVnaW9ucy0+cmVtb3Zl
KCpyZWdpb24pOwogICAgIHJlZ2lvbi0+c2V0VHJhY2sobnVsbHB0cik7CiAgICAgcmV0dXJuIHsg
fTsKIH0KQEAgLTQyMiw3ICs0MTQsNyBAQCB2b2lkIFRleHRUcmFjazo6Y3VlV2lsbENoYW5nZShU
ZXh0VHJhY2tDdWUqIGN1ZSkKIAogICAgIC8vIFRoZSBjdWUgbWF5IG5lZWQgdG8gYmUgcmVwb3Np
dGlvbmVkIGluIHRoZSBtZWRpYSBlbGVtZW50J3MgaW50ZXJ2YWwgdHJlZSwgbWF5IG5lZWQgdG8K
ICAgICAvLyBiZSByZS1yZW5kZXJlZCwgZXRjLCBzbyByZW1vdmUgaXQgYmVmb3JlIHRoZSBtb2Rp
ZmljYXRpb24uLi4KLSAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKHRoaXMsICpjdWUp
OworICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUoKnRoaXMsICpjdWUpOwogfQogCiB2
b2lkIFRleHRUcmFjazo6Y3VlRGlkQ2hhbmdlKFRleHRUcmFja0N1ZSogY3VlKQpAQCAtNDMxLDI2
ICs0MjMsMjQgQEAgdm9pZCBUZXh0VHJhY2s6OmN1ZURpZENoYW5nZShUZXh0VHJhY2tDdWUqIGN1
ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gTWFrZSBzdXJlIHRoZSBUZXh0VHJhY2tDdWVM
aXN0IG9yZGVyIGlzIHVwLXRvLWRhdGUuCi0gICAgZW5zdXJlVGV4dFRyYWNrQ3VlTGlzdCgpLnVw
ZGF0ZUN1ZUluZGV4KGN1ZSk7CisgICAgZW5zdXJlVGV4dFRyYWNrQ3VlTGlzdCgpLnVwZGF0ZUN1
ZUluZGV4KCpjdWUpOwogCiAgICAgLy8gLi4uIGFuZCBhZGQgaXQgYmFjayBhZ2Fpbi4KLSAgICBt
X2NsaWVudC0+dGV4dFRyYWNrQWRkQ3VlKHRoaXMsICpjdWUpOworICAgIG1fY2xpZW50LT50ZXh0
VHJhY2tBZGRDdWUoKnRoaXMsICpjdWUpOwogfQogCiBpbnQgVGV4dFRyYWNrOjp0cmFja0luZGV4
KCkKIHsKICAgICBBU1NFUlQobV9tZWRpYUVsZW1lbnQpOwotCi0gICAgaWYgKG1fdHJhY2tJbmRl
eCA9PSBpbnZhbGlkVHJhY2tJbmRleCkKKyAgICBpZiAoIW1fdHJhY2tJbmRleCkKICAgICAgICAg
bV90cmFja0luZGV4ID0gbV9tZWRpYUVsZW1lbnQtPnRleHRUcmFja3MoKS5nZXRUcmFja0luZGV4
KCp0aGlzKTsKLQotICAgIHJldHVybiBtX3RyYWNrSW5kZXg7CisgICAgcmV0dXJuIG1fdHJhY2tJ
bmRleC52YWx1ZSgpOwogfQogCiB2b2lkIFRleHRUcmFjazo6aW52YWxpZGF0ZVRyYWNrSW5kZXgo
KQogewotICAgIG1fdHJhY2tJbmRleCA9IGludmFsaWRUcmFja0luZGV4OwotICAgIG1fcmVuZGVy
ZWRUcmFja0luZGV4ID0gaW52YWxpZFRyYWNrSW5kZXg7CisgICAgbV90cmFja0luZGV4ID0gc3Rk
OjpudWxsb3B0OworICAgIG1fcmVuZGVyZWRUcmFja0luZGV4ID0gc3RkOjpudWxsb3B0OwogfQog
CiBib29sIFRleHRUcmFjazo6aXNSZW5kZXJlZCgpCkBAIC00NjksMTEgKzQ1OSw5IEBAIFRleHRU
cmFja0N1ZUxpc3QmIFRleHRUcmFjazo6ZW5zdXJlVGV4dFRyYWNrQ3VlTGlzdCgpCiBpbnQgVGV4
dFRyYWNrOjp0cmFja0luZGV4UmVsYXRpdmVUb1JlbmRlcmVkVHJhY2tzKCkKIHsKICAgICBBU1NF
UlQobV9tZWRpYUVsZW1lbnQpOwotICAgIAotICAgIGlmIChtX3JlbmRlcmVkVHJhY2tJbmRleCA9
PSBpbnZhbGlkVHJhY2tJbmRleCkKKyAgICBpZiAoIW1fcmVuZGVyZWRUcmFja0luZGV4KQogICAg
ICAgICBtX3JlbmRlcmVkVHJhY2tJbmRleCA9IG1fbWVkaWFFbGVtZW50LT50ZXh0VHJhY2tzKCku
Z2V0VHJhY2tJbmRleFJlbGF0aXZlVG9SZW5kZXJlZFRyYWNrcygqdGhpcyk7Ci0gICAgCi0gICAg
cmV0dXJuIG1fcmVuZGVyZWRUcmFja0luZGV4OworICAgIHJldHVybiBtX3JlbmRlcmVkVHJhY2tJ
bmRleC52YWx1ZSgpOwogfQogCiBib29sIFRleHRUcmFjazo6aGFzQ3VlKFRleHRUcmFja0N1ZSog
Y3VlLCBUZXh0VHJhY2tDdWU6OkN1ZU1hdGNoUnVsZXMgbWF0Y2gpCkBAIC01NjQsNyArNTUyLDcg
QEAgdm9pZCBUZXh0VHJhY2s6OnNldExhbmd1YWdlKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3Vh
Z2UpCiAgICAgLy8gMy4gSWYgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhpcyB0cmFj
ayBpcyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZQogICAgIC8v
IGV2ZW50IG5hbWVkIGNoYW5nZSBhdCBzb3VyY2VCdWZmZXIudGV4dFRyYWNrcy4KICAgICBpZiAo
bV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVmZmVyLT50ZXh0VHJhY2tzKCktPnNj
aGVkdWxlQ2hhbmdlRXZlbnQoKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXItPnRleHRUcmFja3Mo
KS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICAgICAvLyA0LiBRdWV1ZSBhIHRhc2sgdG8gZmly
ZSBhIHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2UgYXQgdGhlIFRleHRUcmFja0xpc3Qgb2JqZWN0
IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdGV4dFRyYWNrcyBhdHRyaWJ1dGUgb24gdGhlIEhU
TUxNZWRpYUVsZW1lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAppbmRleCBi
ODA0OWM3MGNhZTFhYTk3ODVjMDRhNTQ5OWJjN2FlNmM4MzBjZWRiLi44YmI0N2IyNzZmNmU1NWI5
MTY2NjdkN2ZjZTE1NzQ0NTc4ZjNiZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIw
MTMsIDIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMS0yMDE3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDggKzMwLDYgQEAKIAogI2luY2x1ZGUgIlRleHRU
cmFja0N1ZS5oIgogI2luY2x1ZGUgIlRyYWNrQmFzZS5oIgotI2luY2x1ZGUgIlZUVEN1ZS5oIgot
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTQ0LDEyICs0MiwxMiBAQCBjbGFzcyBWVFRSZWdpb25MaXN0OwogY2xhc3MgVGV4dFRyYWNr
Q2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5UZXh0VHJhY2tDbGllbnQoKSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrKikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNr
Q3VlTGlzdCopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0
VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB0
ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2smKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0
VHJhY2tDdWVMaXN0JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVz
KFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUm
KSA9IDA7CiB9OwogCiBjbGFzcyBUZXh0VHJhY2sgOiBwdWJsaWMgVHJhY2tCYXNlLCBwdWJsaWMg
RXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CkBAIC0xNjcsOCArMTY1LDggQEAgcHJpdmF0ZToK
ICAgICBUZXh0VHJhY2tDbGllbnQqIG1fY2xpZW50OwogICAgIFRleHRUcmFja1R5cGUgbV90cmFj
a1R5cGU7CiAgICAgUmVhZGluZXNzU3RhdGUgbV9yZWFkaW5lc3NTdGF0ZSB7IE5vdExvYWRlZCB9
OwotICAgIGludCBtX3RyYWNrSW5kZXg7Ci0gICAgaW50IG1fcmVuZGVyZWRUcmFja0luZGV4Owor
ICAgIHN0ZDo6b3B0aW9uYWw8aW50PiBtX3RyYWNrSW5kZXg7CisgICAgc3RkOjpvcHRpb25hbDxp
bnQ+IG1fcmVuZGVyZWRUcmFja0luZGV4OwogICAgIGJvb2wgbV9oYXNCZWVuQ29uZmlndXJlZCB7
IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5j
cHAKaW5kZXggZmNiYTE5ZDBkYmJhZDRlMDA0NzkwOTFlY2Q1NmU4MjcyZGNlNThlZC4uMzM5MTcy
ZDEwNTUyMzAyNTNlY2VjNDExMDQ3OGJkZDNlOWYxNTRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTEsIDIwMTMgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzAs
MTEgKzMwLDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRU
cmFja0N1ZS5oIgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiVGV4dFRy
YWNrQ3VlLmgiCi0KICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NT
VmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCkBAIC00OSw4ICs0OCw2IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGNvbnN0IGludCBpbnZhbGlkQ3VlSW5kZXgg
PSAtMTsKLQogY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2tDdWU6OmN1ZVNoYWRvd1BzZXVk
b0lkKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBj
dWUoImN1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwpAQCAtNjAsOSAr
NTcsNiBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFja0N1ZTo6Y3VlU2hhZG93UHNldWRv
SWQoKQogVGV4dFRyYWNrQ3VlOjpUZXh0VHJhY2tDdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQpCiAg
ICAgOiBtX3N0YXJ0VGltZShzdGFydCkKICAgICAsIG1fZW5kVGltZShlbmQpCi0gICAgLCBtX2N1
ZUluZGV4KGludmFsaWRDdWVJbmRleCkKLSAgICAsIG1fcHJvY2Vzc2luZ0N1ZUNoYW5nZXMoMCkK
LSAgICAsIG1fdHJhY2soMCkKICAgICAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0
KQogICAgICwgbV9pc0FjdGl2ZShmYWxzZSkKICAgICAsIG1fcGF1c2VPbkV4aXQoZmFsc2UpCkBA
IC0xNDksMjMgKzE0Myw2IEBAIHZvaWQgVGV4dFRyYWNrQ3VlOjpzZXRQYXVzZU9uRXhpdChib29s
IHZhbHVlKQogICAgIG1fcGF1c2VPbkV4aXQgPSB2YWx1ZTsKIH0KIAotaW50IFRleHRUcmFja0N1
ZTo6Y3VlSW5kZXgoKQotewotICAgIGlmIChtX2N1ZUluZGV4ID09IGludmFsaWRDdWVJbmRleCkg
ewotICAgICAgICBBU1NFUlQodHJhY2soKSk7Ci0gICAgICAgIEFTU0VSVCh0cmFjaygpLT5jdWVz
KCkpOwotICAgICAgICBpZiAoVGV4dFRyYWNrQ3VlTGlzdCogY3VlTGlzdCA9IHRyYWNrKCktPmN1
ZXMoKSkKLSAgICAgICAgICAgIG1fY3VlSW5kZXggPSBjdWVMaXN0LT5nZXRDdWVJbmRleCh0aGlz
KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbV9jdWVJbmRleDsKLX0KLQotdm9pZCBUZXh0VHJhY2tD
dWU6OmludmFsaWRhdGVDdWVJbmRleCgpCi17Ci0gICAgbV9jdWVJbmRleCA9IGludmFsaWRDdWVJ
bmRleDsKLX0KLQogYm9vbCBUZXh0VHJhY2tDdWU6OmRpc3BhdGNoRXZlbnQoRXZlbnQmIGV2ZW50
KQogewogICAgIC8vIFdoZW4gYSBUZXh0VHJhY2sncyBtb2RlIGlzIGRpc2FibGVkOiBubyBjdWVz
IGFyZSBhY3RpdmUsIG5vIGV2ZW50cyBmaXJlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZS5oCmluZGV4IDU3MzUxZGM2MGUyYjZlYWY1MDgwZjAzMDlhNDUxNjhmNzgzMGE3
MzQuLjQ5MDc1NDZhMjdhZTQ4MjRlMTJhMTQwYTk5YWZlOTY0ODMxNTUwZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENv
cHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC02NSw5ICs2NSw2
IEBAIHB1YmxpYzoKICAgICBNZWRpYVRpbWUgZW5kTWVkaWFUaW1lKCkgY29uc3QgeyByZXR1cm4g
bV9lbmRUaW1lOyB9CiAgICAgdm9pZCBzZXRFbmRUaW1lKGNvbnN0IE1lZGlhVGltZSYpOwogCi0g
ICAgaW50IGN1ZUluZGV4KCk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlQ3VlSW5kZXgoKTsKLQogICAg
IGJvb2wgaXNBY3RpdmUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXNBY3RpdmUoYm9vbCk7CiAK
QEAgLTgyLDkgKzc5LDYgQEAgcHVibGljOgogCiAgICAgZW51bSBDdWVNYXRjaFJ1bGVzIHsgTWF0
Y2hBbGxGaWVsZHMsIElnbm9yZUR1cmF0aW9uIH07CiAgICAgdmlydHVhbCBib29sIGlzRXF1YWwo
Y29uc3QgVGV4dFRyYWNrQ3VlJiwgQ3VlTWF0Y2hSdWxlcykgY29uc3Q7Ci1wcml2YXRlOgotICAg
IHZpcnR1YWwgYm9vbCBjdWVDb250ZW50c01hdGNoKGNvbnN0IFRleHRUcmFja0N1ZSYpIGNvbnN0
OwotcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBkb2VzRXh0ZW5kQ3VlKGNvbnN0IFRleHRUcmFj
a0N1ZSYpIGNvbnN0OwogCiAgICAgdm9pZCB3aWxsQ2hhbmdlKCk7CkBAIC0xMDgsMTMgKzEwMiwx
NCBAQCBwcml2YXRlOgogICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJm
YWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gVGV4dFRyYWNrQ3VlRXZlbnRUYXJnZXRJbnRlcmZh
Y2VUeXBlOyB9CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICZtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7IH0K
IAorICAgIHZpcnR1YWwgYm9vbCBjdWVDb250ZW50c01hdGNoKGNvbnN0IFRleHRUcmFja0N1ZSYp
IGNvbnN0OworCiAgICAgU3RyaW5nIG1faWQ7CiAgICAgTWVkaWFUaW1lIG1fc3RhcnRUaW1lOwog
ICAgIE1lZGlhVGltZSBtX2VuZFRpbWU7Ci0gICAgaW50IG1fY3VlSW5kZXg7Ci0gICAgaW50IG1f
cHJvY2Vzc2luZ0N1ZUNoYW5nZXM7CisgICAgaW50IG1fcHJvY2Vzc2luZ0N1ZUNoYW5nZXMgeyAw
IH07CiAKLSAgICBUZXh0VHJhY2sqIG1fdHJhY2s7CisgICAgVGV4dFRyYWNrKiBtX3RyYWNrIHsg
bnVsbHB0ciB9OwogCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgbV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0N1ZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVM
aXN0LmNwcAppbmRleCBmZmQ4ZWFlNGQ5OTM2NDgwYTZhNWJjMzU5MmZlMDgwYjcxNmUxM2ExLi4x
NDIxMmU5NmZmMjFiYjA1ZWIxNzA1MDA4NTU4OTRmMzJhZmY4YmM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5jcHAKQEAgLTEsNSArMSw2IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwxMTcgKzMwLDEwMCBAQAogCiAj
aW5jbHVkZSAiVGV4dFRyYWNrQ3VlTGlzdC5oIgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CisvLyBD
aGVja2luZyBzb3J0aW5nIGlzIHRvbyBzbG93IGZvciBnZW5lcmFsIHVzZTsgdHVybiBpdCBvbiBl
eHBsaWNpdGx5IHdoZW4gd29ya2luZyBvbiB0aGlzIGNsYXNzLgorI3VuZGVmIENIRUNLX1NPUlRJ
TkcKIAotVGV4dFRyYWNrQ3VlTGlzdDo6VGV4dFRyYWNrQ3VlTGlzdCgpCi17Ci19CisjaWZkZWYg
Q0hFQ0tfU09SVElORworI2RlZmluZSBBU1NFUlRfU09SVEVEKGJlZ2luLCBlbmQpIEFTU0VSVChz
dGQ6OmlzX3NvcnRlZChiZWdpbiwgZW5kLCBjb21wYXJlQ3VlcykpCisjZWxzZQorI2RlZmluZSBB
U1NFUlRfU09SVEVEKGJlZ2luLCBlbmQpICgodm9pZCkwKQorI2VuZGlmCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotdW5zaWduZWQgbG9uZyBUZXh0VHJhY2tDdWVMaXN0OjpsZW5ndGgoKSBjb25z
dAorc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVDdWVzKGNvbnN0IFJlZlB0cjxUZXh0VHJhY2tD
dWU+JiBhLCBjb25zdCBSZWZQdHI8VGV4dFRyYWNrQ3VlPiYgYikKIHsKLSAgICByZXR1cm4gbV9s
aXN0LnNpemUoKTsKKyAgICByZXR1cm4gYS0+aXNPcmRlcmVkQmVmb3JlKGIuZ2V0KCkpOwogfQog
Ci11bnNpZ25lZCBsb25nIFRleHRUcmFja0N1ZUxpc3Q6OmdldEN1ZUluZGV4KFRleHRUcmFja0N1
ZSogY3VlKSBjb25zdAordW5zaWduZWQgVGV4dFRyYWNrQ3VlTGlzdDo6Y3VlSW5kZXgoVGV4dFRy
YWNrQ3VlJiBjdWUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbGlzdC5maW5kKGN1ZSk7CisgICAg
QVNTRVJUKG1fdmVjdG9yLmNvbnRhaW5zKCZjdWUpKTsKKyAgICByZXR1cm4gbV92ZWN0b3IuZmlu
ZCgmY3VlKTsKIH0KIAogVGV4dFRyYWNrQ3VlKiBUZXh0VHJhY2tDdWVMaXN0OjppdGVtKHVuc2ln
bmVkIGluZGV4KSBjb25zdAogewotICAgIGlmIChpbmRleCA8IG1fbGlzdC5zaXplKCkpCi0gICAg
ICAgIHJldHVybiBtX2xpc3RbaW5kZXhdLmdldCgpOwotICAgIHJldHVybiAwOworICAgIGlmIChp
bmRleCA+PSBtX3ZlY3Rvci5zaXplKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBtX3ZlY3RvcltpbmRleF0uZ2V0KCk7CiB9CiAKIFRleHRUcmFja0N1ZSogVGV4dFRyYWNr
Q3VlTGlzdDo6Z2V0Q3VlQnlJZChjb25zdCBTdHJpbmcmIGlkKSBjb25zdAogewotICAgIGZvciAo
YXV0byYgY3VlIDogbV9saXN0KSB7CisgICAgZm9yIChhdXRvJiBjdWUgOiBtX3ZlY3Rvcikgewog
ICAgICAgICBpZiAoY3VlLT5pZCgpID09IGlkKQogICAgICAgICAgICAgcmV0dXJuIGN1ZS5nZXQo
KTsKICAgICB9Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVRleHRU
cmFja0N1ZUxpc3QqIFRleHRUcmFja0N1ZUxpc3Q6OmFjdGl2ZUN1ZXMoKQorVGV4dFRyYWNrQ3Vl
TGlzdCYgVGV4dFRyYWNrQ3VlTGlzdDo6YWN0aXZlQ3VlcygpCiB7CiAgICAgaWYgKCFtX2FjdGl2
ZUN1ZXMpCiAgICAgICAgIG1fYWN0aXZlQ3VlcyA9IGNyZWF0ZSgpOwogCi0gICAgbV9hY3RpdmVD
dWVzLT5jbGVhcigpOwotICAgIGZvciAoYXV0byYgY3VlIDogbV9saXN0KSB7CisgICAgVmVjdG9y
PFJlZlB0cjxUZXh0VHJhY2tDdWU+PiBhY3RpdmVDdWVzVmVjdG9yOworICAgIGZvciAoYXV0byYg
Y3VlIDogbV92ZWN0b3IpIHsKICAgICAgICAgaWYgKGN1ZS0+aXNBY3RpdmUoKSkKLSAgICAgICAg
ICAgIG1fYWN0aXZlQ3Vlcy0+YWRkKGN1ZSk7CisgICAgICAgICAgICBhY3RpdmVDdWVzVmVjdG9y
LmFwcGVuZChjdWUpOwogICAgIH0KLSAgICByZXR1cm4gbV9hY3RpdmVDdWVzLmdldCgpOworICAg
IEFTU0VSVF9TT1JURUQoYWN0aXZlQ3Vlc1ZlY3Rvci5iZWdpbigpLCBhY3RpdmVDdWVzVmVjdG9y
LmVuZCgpKTsKKyAgICBtX2FjdGl2ZUN1ZXMtPm1fdmVjdG9yID0gV1RGTW92ZShhY3RpdmVDdWVz
VmVjdG9yKTsKKworICAgIC8vIEZJWE1FOiBUaGlzIGxpc3Qgb2YgYWN0aXZlIGN1ZXMgaXMgbm90
IHVwZGF0ZWQgYXMgY3VlcyBhcmUgYWRkZWQsIHJlbW92ZWQsIGJlY29tZSBhY3RpdmUsIGFuZCBi
ZWNvbWUgaW5hY3RpdmUuCisgICAgLy8gSW5zdGVhZCBpdCBpcyBvbmx5IHVwZGF0ZWQgZWFjaCB0
aW1lIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGFnYWluLiBUaGF0IGlzIG5vdCBjb25zaXN0ZW50
IHdpdGggb3RoZXIgZHluYW1pYyBET00gbGlzdHMuCisgICAgcmV0dXJuICptX2FjdGl2ZUN1ZXM7
CiB9CiAKLWJvb2wgVGV4dFRyYWNrQ3VlTGlzdDo6YWRkKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3Vl
PiBjdWUpCit2b2lkIFRleHRUcmFja0N1ZUxpc3Q6OmFkZChSZWY8VGV4dFRyYWNrQ3VlPiYmIGN1
ZSkKIHsKICAgICBBU1NFUlQoY3VlLT5zdGFydE1lZGlhVGltZSgpID49IE1lZGlhVGltZTo6emVy
b1RpbWUoKSk7CiAgICAgQVNTRVJUKGN1ZS0+ZW5kTWVkaWFUaW1lKCkgPj0gTWVkaWFUaW1lOjp6
ZXJvVGltZSgpKTsKIAotICAgIHJldHVybiBhZGQoY3VlLCAwLCBtX2xpc3Quc2l6ZSgpKTsKKyAg
ICBSZWZQdHI8VGV4dFRyYWNrQ3VlPiBjdWVSZWZQdHIgeyBXVEZNb3ZlKGN1ZSkgfTsKKyAgICB1
bnNpZ25lZCBpbnNlcnRpb25Qb3NpdGlvbiA9IHN0ZDo6dXBwZXJfYm91bmQobV92ZWN0b3IuYmVn
aW4oKSwgbV92ZWN0b3IuZW5kKCksIGN1ZVJlZlB0ciwgY29tcGFyZUN1ZXMpIC0gbV92ZWN0b3Iu
YmVnaW4oKTsKKyAgICBBU1NFUlQoaW5zZXJ0aW9uUG9zaXRpb24gPT0gbV92ZWN0b3Iuc2l6ZSgp
IHx8IG1fdmVjdG9yW2luc2VydGlvblBvc2l0aW9uXSAhPSBjdWUucHRyKCkpOworICAgIEFTU0VS
VF9TT1JURUQobV92ZWN0b3IuYmVnaW4oKSwgbV92ZWN0b3IuZW5kKCkpOworICAgIG1fdmVjdG9y
Lmluc2VydChpbnNlcnRpb25Qb3NpdGlvbiwgV1RGTW92ZShjdWVSZWZQdHIpKTsKKyAgICBBU1NF
UlRfU09SVEVEKG1fdmVjdG9yLmJlZ2luKCksIG1fdmVjdG9yLmVuZCgpKTsKIH0KIAotYm9vbCBU
ZXh0VHJhY2tDdWVMaXN0OjphZGQoUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+IHBycEN1ZSwgc2l6
ZV90IHN0YXJ0LCBzaXplX3QgZW5kKQordm9pZCBUZXh0VHJhY2tDdWVMaXN0OjpyZW1vdmUoVGV4
dFRyYWNrQ3VlJiBjdWUpCiB7Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
c3RhcnQgPD0gbV9saXN0LnNpemUoKSk7Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElD
QVRJT04oZW5kIDw9IG1fbGlzdC5zaXplKCkpOwotCi0gICAgLy8gTWFpbnRhaW4gdGV4dCB0cmFj
ayBjdWUgb3JkZXI6Ci0gICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBz
L2N1cnJlbnQtd29yay8jdGV4dC10cmFjay1jdWUtb3JkZXIKLSAgICBSZWZQdHI8VGV4dFRyYWNr
Q3VlPiBjdWUgPSBwcnBDdWU7Ci0gICAgaWYgKHN0YXJ0ID09IGVuZCkgewotICAgICAgICBpZiAo
IW1fbGlzdC5pc0VtcHR5KCkgJiYgKHN0YXJ0ID4gMCkgJiYgKG1fbGlzdFtzdGFydCAtIDFdLmdl
dCgpID09IGN1ZS5nZXQoKSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAg
bV9saXN0Lmluc2VydChzdGFydCwgY3VlKTsKLSAgICAgICAgaW52YWxpZGF0ZUN1ZUluZGV4ZXMo
c3RhcnQpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBzaXplX3QgaW5kZXgg
PSAoc3RhcnQgKyBlbmQpIC8gMjsKLSAgICBpZiAoY3VlLT5pc09yZGVyZWRCZWZvcmUobV9saXN0
W2luZGV4XS5nZXQoKSkpCi0gICAgICAgIHJldHVybiBhZGQoV1RGTW92ZShjdWUpLCBzdGFydCwg
aW5kZXgpOwotCi0gICAgcmV0dXJuIGFkZChXVEZNb3ZlKGN1ZSksIGluZGV4ICsgMSwgZW5kKTsK
KyAgICBBU1NFUlRfU09SVEVEKG1fdmVjdG9yLmJlZ2luKCksIG1fdmVjdG9yLmVuZCgpKTsKKyAg
ICBtX3ZlY3Rvci5yZW1vdmUoY3VlSW5kZXgoY3VlKSk7CisgICAgQVNTRVJUX1NPUlRFRChtX3Zl
Y3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSk7CiB9CiAKLWJvb2wgVGV4dFRyYWNrQ3VlTGlz
dDo6cmVtb3ZlKFRleHRUcmFja0N1ZSogY3VlKQordm9pZCBUZXh0VHJhY2tDdWVMaXN0Ojp1cGRh
dGVDdWVJbmRleChUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKLSAgICBzaXplX3QgaW5kZXggPSBtX2xp
c3QuZmluZChjdWUpOwotICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgY3VlLT5zZXRJc0FjdGl2ZShmYWxzZSk7Ci0gICAgbV9saXN0LnJlbW92
ZShpbmRleCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgVGV4dFRyYWNrQ3VlTGlzdDo6
Y29udGFpbnMoVGV4dFRyYWNrQ3VlKiBjdWUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbGlzdC5j
b250YWlucyhjdWUpOwotfQotCi1ib29sIFRleHRUcmFja0N1ZUxpc3Q6OnVwZGF0ZUN1ZUluZGV4
KFRleHRUcmFja0N1ZSogY3VlKQotewotICAgIGlmICghY29udGFpbnMoY3VlKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIAotICAgIHJlbW92ZShjdWUpOwotICAgIHJldHVybiBhZGQoY3Vl
KTsKLX0KLQotdm9pZCBUZXh0VHJhY2tDdWVMaXN0OjpjbGVhcigpCi17Ci0gICAgbV9saXN0LmNs
ZWFyKCk7Ci19CisgICAgYXV0byBjdWVQb3NpdGlvbiA9IG1fdmVjdG9yLmJlZ2luKCkgKyBjdWVJ
bmRleChjdWUpOworICAgIGF1dG8gYWZ0ZXJDdWVQb3NpdGlvbiA9IGN1ZVBvc2l0aW9uICsgMTsK
KworICAgIEFTU0VSVF9TT1JURUQobV92ZWN0b3IuYmVnaW4oKSwgY3VlUG9zaXRpb24pOworICAg
IEFTU0VSVF9TT1JURUQoYWZ0ZXJDdWVQb3NpdGlvbiwgbV92ZWN0b3IuZW5kKCkpOworCisgICAg
YXV0byByZWluc2VydGlvblBvc2l0aW9uID0gc3RkOjp1cHBlcl9ib3VuZChtX3ZlY3Rvci5iZWdp
bigpLCBjdWVQb3NpdGlvbiwgKmN1ZVBvc2l0aW9uLCBjb21wYXJlQ3Vlcyk7CisgICAgaWYgKHJl
aW5zZXJ0aW9uUG9zaXRpb24gIT0gY3VlUG9zaXRpb24pCisgICAgICAgIHN0ZDo6cm90YXRlKHJl
aW5zZXJ0aW9uUG9zaXRpb24sIGN1ZVBvc2l0aW9uLCBhZnRlckN1ZVBvc2l0aW9uKTsKKyAgICBl
bHNlIHsKKyAgICAgICAgcmVpbnNlcnRpb25Qb3NpdGlvbiA9IHN0ZDo6dXBwZXJfYm91bmQoYWZ0
ZXJDdWVQb3NpdGlvbiwgbV92ZWN0b3IuZW5kKCksICpjdWVQb3NpdGlvbiwgY29tcGFyZUN1ZXMp
OworICAgICAgICBpZiAocmVpbnNlcnRpb25Qb3NpdGlvbiAhPSBhZnRlckN1ZVBvc2l0aW9uKQor
ICAgICAgICAgICAgc3RkOjpyb3RhdGUoY3VlUG9zaXRpb24sIGFmdGVyQ3VlUG9zaXRpb24sIHJl
aW5zZXJ0aW9uUG9zaXRpb24pOworICAgIH0KIAotdm9pZCBUZXh0VHJhY2tDdWVMaXN0OjppbnZh
bGlkYXRlQ3VlSW5kZXhlcyhzaXplX3Qgc3RhcnQpCi17Ci0gICAgZm9yIChzaXplX3QgaSA9IHN0
YXJ0OyBpIDwgbV9saXN0LnNpemUoKTsgKytpKQotICAgICAgICBtX2xpc3RbaV0tPmludmFsaWRh
dGVDdWVJbmRleCgpOworICAgIEFTU0VSVF9TT1JURUQobV92ZWN0b3IuYmVnaW4oKSwgbV92ZWN0
b3IuZW5kKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5oCmluZGV4IGEyMThmYjY5MDg5NjI0YzFmMjgz
OWM3NTNhYzEyNWZmMGRiM2MyOTkuLmZlMDRjNDQ2ZDI5NzdjN2ZjZTkzMmM2M2I4Mjk3OTgzNGYy
MjVlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3Vl
TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5o
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgs
NDQgKzI5LDQyIEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiVGV4dFRy
YWNrQ3VlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBUZXh0VHJhY2tDdWVMaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8VGV4dFRyYWNr
Q3VlTGlzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VGV4dFRyYWNrQ3VlTGlzdD4gY3Jl
YXRlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRUcmFja0N1ZUxp
c3QpOwotICAgIH0KLQotICAgIH5UZXh0VHJhY2tDdWVMaXN0KCkgeyB9Ci0KLSAgICB1bnNpZ25l
ZCBsb25nIGxlbmd0aCgpIGNvbnN0OwotICAgIHVuc2lnbmVkIGxvbmcgZ2V0Q3VlSW5kZXgoVGV4
dFRyYWNrQ3VlKikgY29uc3Q7CisgICAgc3RhdGljIFJlZjxUZXh0VHJhY2tDdWVMaXN0PiBjcmVh
dGUoKTsKIAorICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwogICAgIFRleHRUcmFja0N1ZSog
aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CiAgICAgVGV4dFRyYWNrQ3VlKiBnZXRDdWVCeUlk
KGNvbnN0IFN0cmluZyYpIGNvbnN0OwotICAgIFRleHRUcmFja0N1ZUxpc3QqIGFjdGl2ZUN1ZXMo
KTsKIAotICAgIGJvb2wgYWRkKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPik7Ci0gICAgYm9vbCBy
ZW1vdmUoVGV4dFRyYWNrQ3VlKik7Ci0gICAgYm9vbCBjb250YWlucyhUZXh0VHJhY2tDdWUqKSBj
b25zdDsKLSAgICAKLSAgICBib29sIHVwZGF0ZUN1ZUluZGV4KFRleHRUcmFja0N1ZSopOworICAg
IHVuc2lnbmVkIGN1ZUluZGV4KFRleHRUcmFja0N1ZSYpIGNvbnN0OworCisgICAgdm9pZCBhZGQo
UmVmPFRleHRUcmFja0N1ZT4mJik7CisgICAgdm9pZCByZW1vdmUoVGV4dFRyYWNrQ3VlJik7Cisg
ICAgdm9pZCB1cGRhdGVDdWVJbmRleChUZXh0VHJhY2tDdWUmKTsKKworICAgIFRleHRUcmFja0N1
ZUxpc3QmIGFjdGl2ZUN1ZXMoKTsKIAogcHJpdmF0ZToKLSAgICBUZXh0VHJhY2tDdWVMaXN0KCk7
Ci0gICAgYm9vbCBhZGQoUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+LCBzaXplX3QsIHNpemVfdCk7
Ci0gICAgdm9pZCBjbGVhcigpOwotICAgIHZvaWQgaW52YWxpZGF0ZUN1ZUluZGV4ZXMoc2l6ZV90
KTsKKyAgICBUZXh0VHJhY2tDdWVMaXN0KCkgPSBkZWZhdWx0OwogCi0gICAgVmVjdG9yPFJlZlB0
cjxUZXh0VHJhY2tDdWU+PiBtX2xpc3Q7CisgICAgVmVjdG9yPFJlZlB0cjxUZXh0VHJhY2tDdWU+
PiBtX3ZlY3RvcjsKICAgICBSZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gbV9hY3RpdmVDdWVzOwog
fTsKIAoraW5saW5lIFJlZjxUZXh0VHJhY2tDdWVMaXN0PiBUZXh0VHJhY2tDdWVMaXN0OjpjcmVh
dGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRUcmFja0N1ZUxpc3QpOworfQor
CitpbmxpbmUgdW5zaWduZWQgVGV4dFRyYWNrQ3VlTGlzdDo6bGVuZ3RoKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV92ZWN0b3Iuc2l6ZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoVklERU9fVFJBQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Ry
YWNrQmFzZS5jcHAKaW5kZXggN2RkOGRkYjRiZjY0ZTVkODIzMTZhNGVmZGVjNTMxN2UxNTBkNmMx
ZC4uYzhhM2YzOGQ1NzhlNGZhZTQxNWVmOGVkZTJjNTQwM2Y4ZmFjNWM4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjgsNyArNjgsNyBAQCB2b2lkIE1lZGlhVHJh
Y2tCYXNlOjpzZXRLaW5kSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiBraW5kKQogICAgIGlm
IChpc1ZhbGlkS2luZChraW5kKSkKICAgICAgICAgbV9raW5kID0ga2luZDsKICAgICBlbHNlCi0g
ICAgICAgIG1fa2luZCA9IGRlZmF1bHRLaW5kS2V5d29yZCgpOworICAgICAgICBtX2tpbmQgPSBl
bXB0eUF0b207CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RyYWNrQmFzZS5oCmluZGV4IGQ2YzVlNDg1NmE1NWFhODhmNGM2OWYwNzNkMDdkMDZkNGIw
YjVjNzAuLmZhODI1Mjc1YjhjYWUxNWJhMDE5MTRkOTgwODk3M2NhNjdjY2ExYmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsOSArMjcsNyBAQAogCiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKLSNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9taWNTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC05Nyw3ICs5
NSw2IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZEtp
bmQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBkZWZhdWx0S2luZEtleXdvcmQoKSBjb25zdCA9IDA7CiAKICAgICBBdG9taWNT
dHJpbmcgbV9raW5kOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VlRUUmVnaW9uTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxp
c3QuY3BwCmluZGV4IGI3ZTc5ZDBmN2U2YmJjNzRlNDFhNzFmZDViZWU3NDFkYzEyZDdkZDIuLmNm
YzE2MjIzZjM1MzRjOWRmNmFjZGYwZDc1YTJjYmYwOTA4YjgzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENv
cHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw1NyArMjksNDEgQEAKIAogI2lmIEVO
QUJMRShWSURFT19UUkFDSykKIAotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVZUVFJlZ2lvbkxp
c3Q6OlZUVFJlZ2lvbkxpc3QoKQotewotfQotCi11bnNpZ25lZCBsb25nIFZUVFJlZ2lvbkxpc3Q6
Omxlbmd0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbGlzdC5zaXplKCk7Ci19Ci0KIFZUVFJl
Z2lvbiogVlRUUmVnaW9uTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKIHsKLSAgICBp
ZiAoaW5kZXggPCBtX2xpc3Quc2l6ZSgpKQotICAgICAgICByZXR1cm4gbV9saXN0W2luZGV4XS5n
ZXQoKTsKLQotICAgIHJldHVybiAwOworICAgIGlmIChpbmRleCA+PSBtX3ZlY3Rvci5zaXplKCkp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjb25zdF9jYXN0PFZUVFJlZ2lv
bio+KG1fdmVjdG9yW2luZGV4XS5wdHIoKSk7CiB9CiAKIFZUVFJlZ2lvbiogVlRUUmVnaW9uTGlz
dDo6Z2V0UmVnaW9uQnlJZChjb25zdCBTdHJpbmcmIGlkKSBjb25zdAogeworICAgIC8vIEZJWE1F
OiBXaHkgaXMgdGhpcyBzcGVjaWFsIGNhc2UgbmVlZGVkPwogICAgIGlmIChpZC5pc0VtcHR5KCkp
Ci0gICAgICAgIHJldHVybiAwOwotCi0gICAgZm9yIChjb25zdCBhdXRvJiByZWdpb24gOiBtX2xp
c3QpIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgZm9yIChhdXRvJiByZWdpb24gOiBt
X3ZlY3RvcikgewogICAgICAgICBpZiAocmVnaW9uLT5pZCgpID09IGlkKQotICAgICAgICAgICAg
cmV0dXJuIHJlZ2lvbi5nZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0PFZUVFJl
Z2lvbio+KHJlZ2lvbi5wdHIoKSk7CiAgICAgfQotCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKLXZvaWQgVlRUUmVnaW9uTGlzdDo6YWRkKFBhc3NSZWZQdHI8VlRUUmVn
aW9uPiByZWdpb24pCit2b2lkIFZUVFJlZ2lvbkxpc3Q6OmFkZChSZWY8VlRUUmVnaW9uPiYmIHJl
Z2lvbikKIHsKLSAgICBtX2xpc3QuYXBwZW5kKHJlZ2lvbik7CisgICAgbV92ZWN0b3IuYXBwZW5k
KFdURk1vdmUocmVnaW9uKSk7CiB9CiAKLWJvb2wgVlRUUmVnaW9uTGlzdDo6cmVtb3ZlKFZUVFJl
Z2lvbiogcmVnaW9uKQordm9pZCBWVFRSZWdpb25MaXN0OjpyZW1vdmUoVlRUUmVnaW9uJiByZWdp
b24pCiB7Ci0gICAgc2l6ZV90IGluZGV4ID0gbV9saXN0LmZpbmQocmVnaW9uKTsKLSAgICBpZiAo
aW5kZXggPT0gbm90Rm91bmQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIG1fbGlzdC5y
ZW1vdmUoaW5kZXgpOwotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIFZUVFJlZ2lvbkxpc3Q6
OmNsZWFyKCkKLXsKLSAgICBtX2xpc3QuY2xlYXIoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
LCBzaXplID0gbV92ZWN0b3Iuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIGlmICht
X3ZlY3RvcltpXS5wdHIoKSA9PSAmcmVnaW9uKSB7CisgICAgICAgICAgICBtX3ZlY3Rvci5yZW1v
dmUoaSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmgKaW5kZXggMmZkZGRjMmVkMTlhNTZlNDgxYWFj
ZjQ2NWJjODhhN2IyYjdmY2NlMy4uN2Y5ZmQ1NWRjYmUxMjQ3ZjI4YjljMzkzOWMyMDhiZThlOTQw
NmQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmgKQEAgLTEs
NiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMzYg
KzI5LDQzIEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiVlRUUmVnaW9u
LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBWVFRSZWdpb25MaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8VlRUUmVnaW9uTGlzdD4gewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8VlRUUmVnaW9uTGlzdD4gY3JlYXRlKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZUVFJlZ2lvbkxpc3QpOwotICAgIH0KLQotICAg
IH5WVFRSZWdpb25MaXN0KCkgeyB9Ci0KLSAgICB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0
OworICAgIHN0YXRpYyBSZWY8VlRUUmVnaW9uTGlzdD4gY3JlYXRlKCk7CiAKKyAgICB1bnNpZ25l
ZCBsZW5ndGgoKSBjb25zdDsKICAgICBWVFRSZWdpb24qIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNv
bnN0OwogICAgIFZUVFJlZ2lvbiogZ2V0UmVnaW9uQnlJZChjb25zdCBTdHJpbmcmKSBjb25zdDsK
IAotICAgIHZvaWQgYWRkKFBhc3NSZWZQdHI8VlRUUmVnaW9uPik7Ci0gICAgYm9vbCByZW1vdmUo
VlRUUmVnaW9uKik7CisgICAgdm9pZCBhZGQoUmVmPFZUVFJlZ2lvbj4mJik7CisgICAgdm9pZCBy
ZW1vdmUoVlRUUmVnaW9uJik7CiAKIHByaXZhdGU6Ci0gICAgVlRUUmVnaW9uTGlzdCgpOworICAg
IFZUVFJlZ2lvbkxpc3QoKSA9IGRlZmF1bHQ7CisKICAgICB2b2lkIGNsZWFyKCk7CiAKLSAgICBW
ZWN0b3I8UmVmUHRyPFZUVFJlZ2lvbj4+IG1fbGlzdDsKKyAgICBWZWN0b3I8UmVmPFZUVFJlZ2lv
bj4+IG1fdmVjdG9yOwogfTsKIAoraW5saW5lIFJlZjxWVFRSZWdpb25MaXN0PiBWVFRSZWdpb25M
aXN0OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZUVFJlZ2lvbkxpc3Qp
OworfQorCitpbmxpbmUgdW5zaWduZWQgVlRUUmVnaW9uTGlzdDo6bGVuZ3RoKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV92ZWN0b3Iuc2l6ZSgpOworfQorCitpbmxpbmUgdm9pZCBWVFRSZWdpb25M
aXN0OjpjbGVhcigpCit7CisgICAgbV92ZWN0b3IuY2xlYXIoKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5pZGwKaW5kZXggNTM4MWQzOWM2NmYxY2ZjM2Qw
MjFiMWRjNDBlYzMyODE0MmM3YmNkMS4uODQzMWQ4YjUxYjJhZDQwZDlhMDkxYjY3Y2I4NWZlNTA5
NjA5YTg5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25M
aXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaWRs
CkBAIC0xLDUgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQs
MTIgKzI1LDExIEBACiAgKi8KIAogWwotICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogICAgIENvbmRp
dGlvbmFsPVZJREVPX1RSQUNLLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAg
Tm9JbnRlcmZhY2VPYmplY3QsCiBdIGludGVyZmFjZSBWVFRSZWdpb25MaXN0IHsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgZ2V0dGVyIFZUVFJlZ2lv
biBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwotICAgIFZUVFJlZ2lvbiBnZXRSZWdpb25CeUlk
KERPTVN0cmluZyBpZCk7CisgICAgZ2V0dGVyIFZUVFJlZ2lvbj8gaXRlbSh1bnNpZ25lZCBsb25n
IGluZGV4KTsKKyAgICBWVFRSZWdpb24/IGdldFJlZ2lvbkJ5SWQoRE9NU3RyaW5nIGlkKTsKIH07
Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCmluZGV4IGY4MGJjMTBh
OGNjOGRlMjgyZDlmYWYzMTk0NmQ2MWNkZTBjYmM0MzEuLjQwOTdlMTZiYTVmZTllNzZhZTI3MjU2
MGYxODAyYTM1NDdlNzFmYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VmlkZW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNr
LmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIw
MTMgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQpAQCAtMzAsMTIgKzMwLDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFD
SykKIAotI2luY2x1ZGUgIlZpZGVvVHJhY2suaCIKLQotI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5j
bHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tMaXN0LmgiCiAK
QEAgLTgxLDEwICs3OSwxMCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6OmNvbW1l
bnRhcnlLZXl3b3JkKCkKICAgICByZXR1cm4gY29tbWVudGFyeTsKIH0KIAotVmlkZW9UcmFjazo6
VmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8VmlkZW9UcmFj
a1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKLSAgICA6IE1lZGlhVHJhY2tCYXNlKE1lZGlhVHJhY2tC
YXNlOjpWaWRlb1RyYWNrLCB0cmFja1ByaXZhdGUtPmlkKCksIHRyYWNrUHJpdmF0ZS0+bGFiZWwo
KSwgdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpKQotICAgICwgbV9zZWxlY3RlZCh0cmFja1ByaXZh
dGUtPnNlbGVjdGVkKCkpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCitWaWRlb1RyYWNrOjpWaWRl
b1RyYWNrKFZpZGVvVHJhY2tDbGllbnQmIGNsaWVudCwgVmlkZW9UcmFja1ByaXZhdGUmIHRyYWNr
UHJpdmF0ZSkKKyAgICA6IE1lZGlhVHJhY2tCYXNlKE1lZGlhVHJhY2tCYXNlOjpWaWRlb1RyYWNr
LCB0cmFja1ByaXZhdGUuaWQoKSwgdHJhY2tQcml2YXRlLmxhYmVsKCksIHRyYWNrUHJpdmF0ZS5s
YW5ndWFnZSgpKQorICAgICwgbV9zZWxlY3RlZCh0cmFja1ByaXZhdGUuc2VsZWN0ZWQoKSkKKyAg
ICAsIG1fY2xpZW50KCZjbGllbnQpCiAgICAgLCBtX3ByaXZhdGUodHJhY2tQcml2YXRlKQogewog
ICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwpAQCAtOTMsMTUgKzkxLDEyIEBAIFZpZGVv
VHJhY2s6OlZpZGVvVHJhY2soVmlkZW9UcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPFZp
ZGVvVHJhY2tQcml2YXRlPiB0CiAKIFZpZGVvVHJhY2s6On5WaWRlb1RyYWNrKCkKIHsKLSAgICBt
X3ByaXZhdGUtPnNldENsaWVudCgwKTsKKyAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRy
KTsKIH0KIAotdm9pZCBWaWRlb1RyYWNrOjpzZXRQcml2YXRlKFBhc3NSZWZQdHI8VmlkZW9UcmFj
a1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKK3ZvaWQgVmlkZW9UcmFjazo6c2V0UHJpdmF0ZShWaWRl
b1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwot
ICAgIEFTU0VSVCh0cmFja1ByaXZhdGUpOwotCi0gICAgaWYgKG1fcHJpdmF0ZSA9PSB0cmFja1By
aXZhdGUpCisgICAgaWYgKG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQogICAgICAg
ICByZXR1cm47CiAKICAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKQEAgLTExNCwy
MCArMTA5LDEyIEBAIHZvaWQgVmlkZW9UcmFjazo6c2V0UHJpdmF0ZShQYXNzUmVmUHRyPFZpZGVv
VHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCiAKIGJvb2wgVmlkZW9UcmFjazo6aXNWYWxpZEtp
bmQoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkgY29uc3QKIHsKLSAgICBpZiAodmFsdWUgPT0g
YWx0ZXJuYXRpdmVLZXl3b3JkKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmICh2YWx1
ZSA9PSBjYXB0aW9uc0tleXdvcmQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKHZh
bHVlID09IG1haW5LZXl3b3JkKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmICh2YWx1
ZSA9PSBzaWduS2V5d29yZCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAodmFsdWUg
PT0gc3VidGl0bGVzS2V5d29yZCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAodmFs
dWUgPT0gY29tbWVudGFyeUtleXdvcmQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHZhbHVlID09IGFsdGVybmF0aXZlS2V5d29yZCgpCisg
ICAgICAgIHx8IHZhbHVlID09IGNvbW1lbnRhcnlLZXl3b3JkKCkKKyAgICAgICAgfHwgdmFsdWUg
PT0gY2FwdGlvbnNLZXl3b3JkKCkKKyAgICAgICAgfHwgdmFsdWUgPT0gbWFpbktleXdvcmQoKQor
ICAgICAgICB8fCB2YWx1ZSA9PSBzaWduS2V5d29yZCgpCisgICAgICAgIHx8IHZhbHVlID09IHN1
YnRpdGxlc0tleXdvcmQoKTsKIH0KIAogdm9pZCBWaWRlb1RyYWNrOjpzZXRTZWxlY3RlZChjb25z
dCBib29sIHNlbGVjdGVkKQpAQCAtMTM5LDQ2ICsxMjYsNDQgQEAgdm9pZCBWaWRlb1RyYWNrOjpz
ZXRTZWxlY3RlZChjb25zdCBib29sIHNlbGVjdGVkKQogICAgIG1fcHJpdmF0ZS0+c2V0U2VsZWN0
ZWQoc2VsZWN0ZWQpOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dmlk
ZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCh0aGlzKTsKKyAgICAgICAgbV9jbGllbnQtPnZpZGVvVHJh
Y2tTZWxlY3RlZENoYW5nZWQoKnRoaXMpOwogfQogCiBzaXplX3QgVmlkZW9UcmFjazo6aW5iYW5k
VHJhY2tJbmRleCgpCiB7Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJp
dmF0ZS0+dHJhY2tJbmRleCgpOwogfQogCi12b2lkIFZpZGVvVHJhY2s6OnNlbGVjdGVkQ2hhbmdl
ZChWaWRlb1RyYWNrUHJpdmF0ZSogdHJhY2tQcml2YXRlLCBib29sIHNlbGVjdGVkKQordm9pZCBW
aWRlb1RyYWNrOjpzZWxlY3RlZENoYW5nZWQoYm9vbCBzZWxlY3RlZCkKIHsKLSAgICBBU1NFUlRf
VU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0
U2VsZWN0ZWQoc2VsZWN0ZWQpOwogfQogCi12b2lkIFZpZGVvVHJhY2s6OmlkQ2hhbmdlZChUcmFj
a1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCit2b2lk
IFZpZGVvVHJhY2s6OmlkQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKQogewotICAgIEFT
U0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAg
ICBzZXRJZChpZCk7CiB9CiAKLXZvaWQgVmlkZW9UcmFjazo6bGFiZWxDaGFuZ2VkKFRyYWNrUHJp
dmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkKK3ZvaWQg
VmlkZW9UcmFjazo6bGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpCiB7Ci0g
ICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUp
OwogICAgIHNldExhYmVsKGxhYmVsKTsKIH0KIAotdm9pZCBWaWRlb1RyYWNrOjpsYW5ndWFnZUNo
YW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcm
IGxhbmd1YWdlKQordm9pZCBWaWRlb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJiBsYW5ndWFnZSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJh
Y2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2UpOwogfQog
Ci12b2lkIFZpZGVvVHJhY2s6OndpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2
YXRlKQordm9pZCBWaWRlb1RyYWNrOjp3aWxsUmVtb3ZlKCkKIHsKLSAgICBBU1NFUlRfVU5VU0VE
KHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7Ci0gICAgbWVkaWFFbGVt
ZW50KCktPnJlbW92ZVZpZGVvVHJhY2soKnRoaXMpOworICAgIGF1dG8qIGVsZW1lbnQgPSBtZWRp
YUVsZW1lbnQoKTsKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKyAgICBlbGVt
ZW50LT5yZW1vdmVWaWRlb1RyYWNrKCp0aGlzKTsKIH0KIAogI2lmIEVOQUJMRShNRURJQV9TT1VS
Q0UpCisKIHZvaWQgVmlkZW9UcmFjazo6c2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQp
CiB7CiAgICAgLy8gMTAuMSBraW5kLCBvbiBzZXR0aW5nOgpAQCAtMTkzLDcgKzE3OCw3IEBAIHZv
aWQgVmlkZW9UcmFjazo6c2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQpCiAgICAgLy8g
My4gSWYgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhpcyB0cmFjayBpcyBub3QgbnVs
bCwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZQogICAgIC8vIGV2ZW50IG5hbWVk
IGNoYW5nZSBhdCBzb3VyY2VCdWZmZXIudmlkZW9UcmFja3MuCiAgICAgaWYgKG1fc291cmNlQnVm
ZmVyKQotICAgICAgICBtX3NvdXJjZUJ1ZmZlci0+dmlkZW9UcmFja3MoKS0+c2NoZWR1bGVDaGFu
Z2VFdmVudCgpOworICAgICAgICBtX3NvdXJjZUJ1ZmZlci0+dmlkZW9UcmFja3MoKS5zY2hlZHVs
ZUNoYW5nZUV2ZW50KCk7CiAKICAgICAvLyA0LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBs
ZSBldmVudCBuYW1lZCBjaGFuZ2UgYXQgdGhlIFZpZGVvVHJhY2tMaXN0IG9iamVjdCByZWZlcmVu
Y2VkIGJ5CiAgICAgLy8gdGhlIHZpZGVvVHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlh
RWxlbWVudC4KQEAgLTIxMywxMiArMTk4LDEzIEBAIHZvaWQgVmlkZW9UcmFjazo6c2V0TGFuZ3Vh
Z2UoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKICAgICAvLyAzLiBJZiB0aGUgc291cmNl
QnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1ZXVlIGEg
dGFzayB0byBmaXJlIGEgc2ltcGxlCiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHNvdXJj
ZUJ1ZmZlci52aWRlb1RyYWNrcy4KICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1f
c291cmNlQnVmZmVyLT52aWRlb1RyYWNrcygpLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CisgICAg
ICAgIG1fc291cmNlQnVmZmVyLT52aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsK
IAogICAgIC8vIDQuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNo
YW5nZSBhdCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0
aGUgdmlkZW9UcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAgIG1l
ZGlhRWxlbWVudCgpLT52aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIH0KKwog
I2VuZGlmCiAKIHZvaWQgVmlkZW9UcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKCkKQEAgLTIy
NiwyOSArMjEyLDI3IEBAIHZvaWQgVmlkZW9UcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKCkK
ICAgICBzd2l0Y2ggKG1fcHJpdmF0ZS0+a2luZCgpKSB7CiAgICAgY2FzZSBWaWRlb1RyYWNrUHJp
dmF0ZTo6QWx0ZXJuYXRpdmU6CiAgICAgICAgIHNldEtpbmRJbnRlcm5hbChWaWRlb1RyYWNrOjph
bHRlcm5hdGl2ZUtleXdvcmQoKSk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBWaWRlb1RyYWNrUHJpdmF0ZTo6Q2FwdGlvbnM6CiAgICAgICAgIHNldEtpbmRJbnRl
cm5hbChWaWRlb1RyYWNrOjpjYXB0aW9uc0tleXdvcmQoKSk7Ci0gICAgICAgIGJyZWFrOworICAg
ICAgICByZXR1cm47CiAgICAgY2FzZSBWaWRlb1RyYWNrUHJpdmF0ZTo6TWFpbjoKICAgICAgICAg
c2V0S2luZEludGVybmFsKFZpZGVvVHJhY2s6Om1haW5LZXl3b3JkKCkpOwotICAgICAgICBicmVh
azsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmlkZW9UcmFja1ByaXZhdGU6OlNpZ246CiAg
ICAgICAgIHNldEtpbmRJbnRlcm5hbChWaWRlb1RyYWNrOjpzaWduS2V5d29yZCgpKTsKLSAgICAg
ICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFZpZGVvVHJhY2tQcml2YXRlOjpT
dWJ0aXRsZXM6CiAgICAgICAgIHNldEtpbmRJbnRlcm5hbChWaWRlb1RyYWNrOjpzdWJ0aXRsZXNL
ZXl3b3JkKCkpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmlk
ZW9UcmFja1ByaXZhdGU6OkNvbW1lbnRhcnk6CiAgICAgICAgIHNldEtpbmRJbnRlcm5hbChWaWRl
b1RyYWNrOjpjb21tZW50YXJ5S2V5d29yZCgpKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJl
dHVybjsKICAgICBjYXNlIFZpZGVvVHJhY2tQcml2YXRlOjpOb25lOgogICAgICAgICBzZXRLaW5k
SW50ZXJuYWwoZW1wdHlTdHJpbmcoKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0
dXJuOwogICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1Ry
YWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaAppbmRleCBjNTJm
OWIzYjEyZmM2OTY4OGRhN2ZkNjcwMzM3MDFmYjFiODRmMzJjLi5lYmVlODI5ZTE2OThmYzFjMmIx
M2M1YjBlMTBmYzk0OWRlZTJiNTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZpZGVvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJh
Y2suaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAx
MyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zOSwxMiArMzksMTIgQEAgY2xhc3MgVmlkZW9UcmFjazsKIGNsYXNz
IFZpZGVvVHJhY2tDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgflZpZGVvVHJhY2tDbGll
bnQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRl
b1RyYWNrKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2Vk
KFZpZGVvVHJhY2smKSA9IDA7CiB9OwogCi1jbGFzcyBWaWRlb1RyYWNrIGZpbmFsIDogcHVibGlj
IE1lZGlhVHJhY2tCYXNlLCBwdWJsaWMgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQgeworY2xhc3Mg
VmlkZW9UcmFjayBmaW5hbCA6IHB1YmxpYyBNZWRpYVRyYWNrQmFzZSwgcHJpdmF0ZSBWaWRlb1Ry
YWNrUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxWaWRlb1RyYWNrPiBj
cmVhdGUoVmlkZW9UcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2
YXRlPiB0cmFja1ByaXZhdGUpCisgICAgc3RhdGljIFJlZjxWaWRlb1RyYWNrPiBjcmVhdGUoVmlk
ZW9UcmFja0NsaWVudCYgY2xpZW50LCBWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFjayhjbGllbnQsIHRy
YWNrUHJpdmF0ZSkpOwogICAgIH0KQEAgLTU2LDQ4ICs1Niw0NiBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIGNvbnN0IEF0b21pY1N0cmluZyYgc2lnbktleXdvcmQoKTsKICAgICBzdGF0aWMgY29uc3Qg
QXRvbWljU3RyaW5nJiBzdWJ0aXRsZXNLZXl3b3JkKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21p
Y1N0cmluZyYgY29tbWVudGFyeUtleXdvcmQoKTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGRl
ZmF1bHRLaW5kS2V5d29yZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGVtcHR5QXRvbTsgfQog
CiAgICAgYm9vbCBzZWxlY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0ZWQ7IH0KICAgICB2
aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWQoY29uc3QgYm9vbCk7CiAKLSAgICB2b2lkIGNsZWFyQ2xp
ZW50KCkgb3ZlcnJpZGUgeyBtX2NsaWVudCA9IDA7IH0KKyAgICB2b2lkIGNsZWFyQ2xpZW50KCkg
ZmluYWwgeyBtX2NsaWVudCA9IG51bGxwdHI7IH0KICAgICBWaWRlb1RyYWNrQ2xpZW50KiBjbGll
bnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQogCiAgICAgc2l6ZV90IGluYmFuZFRyYWNr
SW5kZXgoKTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgdm9pZCBzZXRLaW5kKGNv
bnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0TGFuZ3VhZ2UoY29uc3Qg
QXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRLaW5kKGNvbnN0IEF0b21pY1N0
cmluZyYpIGZpbmFsOworICAgIHZvaWQgc2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5nJikg
ZmluYWw7CiAjZW5kaWYKIAogICAgIGNvbnN0IE1lZGlhRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9u
KCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldFByaXZhdGUoUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJp
dmF0ZT4pOwotCi1wcm90ZWN0ZWQ6Ci0gICAgVmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50Kiwg
UGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4gcHJpdmF0ZVRyYWNrKTsKKyAgICB2b2lkIHNl
dFByaXZhdGUoVmlkZW9UcmFja1ByaXZhdGUmKTsKIAogcHJpdmF0ZToKLSAgICBib29sIGlzVmFs
aWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IG92ZXJyaWRlOworICAgIFZpZGVvVHJh
Y2soVmlkZW9UcmFja0NsaWVudCYsIFZpZGVvVHJhY2tQcml2YXRlJik7CisKKyAgICBib29sIGlz
VmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8gVmlk
ZW9UcmFja1ByaXZhdGVDbGllbnQKLSAgICB2b2lkIHNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNr
UHJpdmF0ZSosIGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJvb2wp
IGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAotICAgIHZvaWQgaWRDaGFu
Z2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5n
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSos
IGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbFJlbW92ZShUcmFj
a1ByaXZhdGVCYXNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYWJlbENoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5n
JikgZmluYWw7CisgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJikg
ZmluYWw7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAKLSAgICBib29sIGVuYWJsZWQo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzZWxlY3RlZCgpOyB9CisgICAgYm9vbCBlbmFibGVk
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gc2VsZWN0ZWQoKTsgfQogCiAgICAgdm9pZCB1cGRhdGVL
aW5kRnJvbVByaXZhdGUoKTsKIAogICAgIGJvb2wgbV9zZWxlY3RlZDsKICAgICBWaWRlb1RyYWNr
Q2xpZW50KiBtX2NsaWVudDsKIAotICAgIFJlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4gbV9wcml2
YXRlOworICAgIFJlZjxWaWRlb1RyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDJj
MTIzOTVmYTY2MWQxNWJiNTQ1MDg4OTRmYzBhYWNkZDU1Y2U2ZTcuLjNiZDg4YjRmNjM5N2JmYTY2
YWZiZTk2NmZiM2QzM2FkYWZhYTlhMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IEVyaWMgU2VpZGVs
IChlcmljQHdlYmtpdC5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICogQ29weXJpZ2h0IChDKSAy
MDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMTcy
LDcgKzE3Miw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJh
bWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2FkSWNv
bkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXIqKSBvdmVycmlk
ZSB7IH0KKyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBG
aWxlSWNvbkxvYWRlciYpIG92ZXJyaWRlIHsgfQogCiAgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMo
Y29uc3QgTm9kZSopIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3Qg
Tm9kZSopIG92ZXJyaWRlIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bp
bmdMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCmluZGV4
IDAxODg5NDZlN2Q4ZGY0MjUyYzFlZDQ5NGFkN2E5OTE2NzY5MTE2OGIuLjQ3MzJhOTI1NTU3MmYx
Zjg2YmU5M2VkMTVmZjRkZTE2YmM5MzAwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRl
ci5jcHAKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgUm9vcGVzaCBD
aGFuZGVyIChyb29wQHJvb3BjLm5ldCkKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTU3LDM4ICs1Nyw1MCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNp
ZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotc3RhdGljIENvbnRlbnRFeHRlbnNpb25zOjpC
bG9ja2VkU3RhdHVzIHByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKGNvbnN0IEZy
YW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwsIFJlc291cmNlVHlwZSByZXNvdXJjZVR5cGUpCisj
aWYgIUVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCisKKy8vIFJldHVybnMgdHJ1ZSBpZiB3ZSBz
aG91bGQgYmxvY2sgdGhlIGxvYWQuCitzdGF0aWMgaW5saW5lIGJvb2wgcHJvY2Vzc0NvbnRlbnRF
eHRlbnNpb25SdWxlc0ZvckxvYWQoY29uc3QgRnJhbWUmLCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNv
dXJjZVR5cGUpCiB7Ci0gICAgaWYgKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IGZy
YW1lLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpIHsKLSAgICAgICAgaWYgKFBhZ2UqIHBhZ2Ug
PSBmcmFtZS5wYWdlKCkpCi0gICAgICAgICAgICByZXR1cm4gcGFnZS0+dXNlckNvbnRlbnRQcm92
aWRlcigpLnByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKHVybCwgcmVzb3VyY2VU
eXBlLCAqZG9jdW1lbnRMb2FkZXIpOwotICAgIH0KLSAgICByZXR1cm4geyB9OworICAgIHJldHVy
biBmYWxzZTsKK30KKworI2Vsc2UKKworLy8gUmV0dXJucyB0cnVlIGlmIHdlIHNob3VsZCBibG9j
ayB0aGUgbG9hZC4KK3N0YXRpYyBib29sIHByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JM
b2FkKGNvbnN0IEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJj
ZVR5cGUgcmVzb3VyY2VUeXBlKQoreworICAgIGF1dG8qIGRvY3VtZW50TG9hZGVyID0gZnJhbWUu
bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKTsKKyAgICBpZiAoIWRvY3VtZW50TG9hZGVyKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0byogcGFnZSA9IGZyYW1lLnBhZ2UoKTsKKyAgICBp
ZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBhdXRvIHN0YXR1cyA9IHBhZ2Ut
PnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9h
ZChyZXF1ZXN0LnVybCgpLCByZXNvdXJjZVR5cGUsICpkb2N1bWVudExvYWRlcik7CisgICAgYXBw
bHlCbG9ja2VkU3RhdHVzVG9SZXF1ZXN0KHN0YXR1cywgcmVxdWVzdCk7CisgICAgcmV0dXJuIHN0
YXR1cy5ibG9ja2VkTG9hZDsKIH0KKwogI2VuZGlmCiAKIHZvaWQgUGluZ0xvYWRlcjo6bG9hZElt
YWdlKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiB7Ci0gICAgaWYgKCFmcmFtZS5kb2N1
bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5jYW5EaXNwbGF5KHVybCkpIHsKKyAgICBBU1NFUlQo
ZnJhbWUuZG9jdW1lbnQoKSk7CisgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUuZG9jdW1lbnQo
KTsKKworICAgIGlmICghZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS0+Y2FuRGlzcGxheSh1cmwp
KSB7CiAgICAgICAgIEZyYW1lTG9hZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQoJmZyYW1lLCB1
cmwpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QodXJsKTsKLQotI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgYXV0byBibG9j
a2VkU3RhdHVzID0gcHJvY2Vzc0NvbnRlbnRFeHRlbnNpb25SdWxlc0ZvckxvYWQoZnJhbWUsIHVy
bCwgUmVzb3VyY2VUeXBlOjpJbWFnZSk7Ci0gICAgYXBwbHlCbG9ja2VkU3RhdHVzVG9SZXF1ZXN0
KGJsb2NrZWRTdGF0dXMsIHJlcXVlc3QpOwotICAgIGlmIChibG9ja2VkU3RhdHVzLmJsb2NrZWRM
b2FkKQorICAgIGlmIChwcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZChmcmFtZSwg
cmVxdWVzdCwgUmVzb3VyY2VUeXBlOjpJbWFnZSkpCiAgICAgICAgIHJldHVybjsKLSNlbmRpZgog
Ci0gICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLmRvY3VtZW50KCkpCi0gICAgICAg
IGRvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVz
dElmTmVlZGVkKHJlcXVlc3QsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0
VHlwZTo6TG9hZCk7CisgICAgZG9jdW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPnVwZ3Jh
ZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRlZChyZXF1ZXN0LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
Okluc2VjdXJlUmVxdWVzdFR5cGU6OkxvYWQpOwogCiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVy
RmllbGQoSFRUUEhlYWRlck5hbWU6OkNhY2hlQ29udHJvbCwgIm1heC1hZ2U9MCIpOwotICAgIFN0
cmluZyByZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVyKGZy
YW1lLmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIHJlcXVlc3QudXJsKCksIGZyYW1lLmxv
YWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSk7CisgICAgU3RyaW5nIHJlZmVycmVyID0gU2VjdXJp
dHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIoZG9jdW1lbnQucmVmZXJyZXJQb2xpY3ko
KSwgcmVxdWVzdC51cmwoKSwgZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKTsKICAg
ICBpZiAoIXJlZmVycmVyLmlzRW1wdHkoKSkKICAgICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJy
ZXIocmVmZXJyZXIpOwogICAgIGZyYW1lLmxvYWRlcigpLmFkZEV4dHJhRmllbGRzVG9TdWJyZXNv
dXJjZVJlcXVlc3QocmVxdWVzdCk7CkBAIC05OSwxOSArMTExLDE3IEBAIHZvaWQgUGluZ0xvYWRl
cjo6bG9hZEltYWdlKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAvLyBodHRwOi8vd3d3
LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9saW5rcy5o
dG1sI2h5cGVybGluay1hdWRpdGluZwogdm9pZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhGcmFtZSYg
ZnJhbWUsIGNvbnN0IFVSTCYgcGluZ1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCkKIHsK
KyAgICBBU1NFUlQoZnJhbWUuZG9jdW1lbnQoKSk7CisKICAgICBpZiAoIXBpbmdVUkwucHJvdG9j
b2xJc0luSFRUUEZhbWlseSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdChwaW5nVVJMKTsKLSAgICAKLSNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05T
KQotICAgIGF1dG8gYmxvY2tlZFN0YXR1cyA9IHByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNG
b3JMb2FkKGZyYW1lLCBwaW5nVVJMLCBSZXNvdXJjZVR5cGU6OlJhdyk7Ci0gICAgYXBwbHlCbG9j
a2VkU3RhdHVzVG9SZXF1ZXN0KGJsb2NrZWRTdGF0dXMsIHJlcXVlc3QpOwotICAgIGlmIChibG9j
a2VkU3RhdHVzLmJsb2NrZWRMb2FkKQorICAgIGlmIChwcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1
bGVzRm9yTG9hZChmcmFtZSwgcmVxdWVzdCwgUmVzb3VyY2VUeXBlOjpSYXcpKQogICAgICAgICBy
ZXR1cm47Ci0jZW5kaWYKIAotICAgIGZyYW1lLmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBv
bGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdCwgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsKKyAgICBhdXRvJiBkb2N1
bWVudCA9ICpmcmFtZS5kb2N1bWVudCgpOworICAgIGRvY3VtZW50LmNvbnRlbnRTZWN1cml0eVBv
bGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdCwgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsKIAogICAgIHJlcXVlc3Qu
c2V0SFRUUE1ldGhvZCgiUE9TVCIpOwogICAgIHJlcXVlc3Quc2V0SFRUUENvbnRlbnRUeXBlKCJ0
ZXh0L3BpbmciKTsKQEAgLTExOSwxNCArMTI5LDE0IEBAIHZvaWQgUGluZ0xvYWRlcjo6c2VuZFBp
bmcoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHBpbmdVUkwsIGNvbnN0IFVSTCYgZGVzdGluYXRp
CiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNhY2hlQ29u
dHJvbCwgIm1heC1hZ2U9MCIpOwogICAgIGZyYW1lLmxvYWRlcigpLmFkZEV4dHJhRmllbGRzVG9T
dWJyZXNvdXJjZVJlcXVlc3QocmVxdWVzdCk7CiAKLSAgICBTZWN1cml0eU9yaWdpbiogc291cmNl
T3JpZ2luID0gZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKLSAgICBSZWY8U2Vj
dXJpdHlPcmlnaW4+IHBpbmdPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShwaW5nVVJMKSk7
Ci0gICAgRnJhbWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChyZXF1ZXN0LCBzb3VyY2VP
cmlnaW4tPnRvU3RyaW5nKCkpOworICAgIEFTU0VSVChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigp
KTsKKyAgICBhdXRvJiBzb3VyY2VPcmlnaW4gPSAqZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKTsK
KyAgICBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKHJlcXVlc3QsIHNvdXJjZU9y
aWdpbi50b1N0cmluZygpKTsKICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UGluZ1RvLCBkZXN0aW5hdGlvblVSTCk7CiAgICAgaWYgKCFTZWN1cml0eVBvbGlj
eTo6c2hvdWxkSGlkZVJlZmVycmVyKHBpbmdVUkwsIGZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVm
ZXJyZXIoKSkpIHsKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRl
ck5hbWU6OlBpbmdGcm9tLCBmcmFtZS5kb2N1bWVudCgpLT51cmwoKSk7Ci0gICAgICAgIGlmICgh
c291cmNlT3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydCgmcGluZ09yaWdpbi5nZXQoKSkpIHsK
LSAgICAgICAgICAgIFN0cmluZyByZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJl
ZmVycmVySGVhZGVyKGZyYW1lLmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIHBpbmdVUkws
IGZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSk7CisgICAgICAgIHJlcXVlc3Quc2V0
SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpQaW5nRnJvbSwgZG9jdW1lbnQudXJsKCkp
OworICAgICAgICBpZiAoIXNvdXJjZU9yaWdpbi5pc1NhbWVTY2hlbWVIb3N0UG9ydChTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKHBpbmdVUkwpLnB0cigpKSkgeworICAgICAgICAgICAgU3RyaW5nIHJl
ZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIoZG9jdW1lbnQu
cmVmZXJyZXJQb2xpY3koKSwgcGluZ1VSTCwgZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJl
cigpKTsKICAgICAgICAgICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgpKQogICAgICAgICAgICAg
ICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKHJlZmVycmVyKTsKICAgICAgICAgfQpAQCAtMTM1
LDE5ICsxNDUsMTYgQEAgdm9pZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhGcmFtZSYgZnJhbWUsIGNv
bnN0IFVSTCYgcGluZ1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGkKICAgICBzdGFydFBpbmdMb2Fk
KGZyYW1lLCByZXF1ZXN0LCBTaG91bGRGb2xsb3dSZWRpcmVjdHM6Olllcyk7CiB9CiAKLXZvaWQg
UGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYg
cmVwb3J0VVJMLCBSZWZQdHI8Rm9ybURhdGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBl
IHJlcG9ydFR5cGUpCit2b2lkIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUm
IGZyYW1lLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgUmVmPEZvcm1EYXRhPiYmIHJlcG9ydCwgVmlv
bGF0aW9uUmVwb3J0VHlwZSByZXBvcnRUeXBlKQogewotICAgIFJlc291cmNlUmVxdWVzdCByZXF1
ZXN0KHJlcG9ydFVSTCk7CisgICAgQVNTRVJUKGZyYW1lLmRvY3VtZW50KCkpOwogCi0jaWYgRU5B
QkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAgICBhdXRvIGJsb2NrZWRTdGF0dXMgPSBwcm9jZXNz
Q29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZChmcmFtZSwgcmVwb3J0VVJMLCBSZXNvdXJjZVR5
cGU6OlJhdyk7Ci0gICAgYXBwbHlCbG9ja2VkU3RhdHVzVG9SZXF1ZXN0KGJsb2NrZWRTdGF0dXMs
IHJlcXVlc3QpOwotICAgIGlmIChibG9ja2VkU3RhdHVzLmJsb2NrZWRMb2FkKQorICAgIFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KHJlcG9ydFVSTCk7CisgICAgaWYgKHByb2Nlc3NDb250ZW50RXh0
ZW5zaW9uUnVsZXNGb3JMb2FkKGZyYW1lLCByZXF1ZXN0LCBSZXNvdXJjZVR5cGU6OlJhdykpCiAg
ICAgICAgIHJldHVybjsKLSNlbmRpZgogCi0gICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IGZy
YW1lLmRvY3VtZW50KCkpCi0gICAgICAgIGRvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQb2xpY3ko
KS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKHJlcXVlc3QsIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CisgICAgYXV0byYgZG9jdW1lbnQg
PSAqZnJhbWUuZG9jdW1lbnQoKTsKKyAgICBkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3ko
KS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKHJlcXVlc3QsIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CiAKICAgICByZXF1ZXN0LnNldEhU
VFBNZXRob2QoQVNDSUlMaXRlcmFsKCJQT1NUIikpOwogICAgIHJlcXVlc3Quc2V0SFRUUEJvZHko
V1RGTW92ZShyZXBvcnQpKTsKQEAgLTE2MSwxOCArMTY4LDE2IEBAIHZvaWQgUGluZ0xvYWRlcjo6
c2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBS
ZWZQdHI8CiAgICAgfQogCiAgICAgYm9vbCByZW1vdmVDb29raWVzID0gdHJ1ZTsKLSAgICBpZiAo
RG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUuZG9jdW1lbnQoKSkgewotICAgICAgICBpZiAoU2Vj
dXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luID0gZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkp
IHsKLSAgICAgICAgICAgIGlmIChzZWN1cml0eU9yaWdpbi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQo
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShyZXBvcnRVUkwpLnB0cigpKSkKLSAgICAgICAgICAgICAg
ICByZW1vdmVDb29raWVzID0gZmFsc2U7Ci0gICAgICAgIH0KKyAgICBpZiAoYXV0byogc2VjdXJp
dHlPcmlnaW4gPSBkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpKSB7CisgICAgICAgIGlmIChzZWN1
cml0eU9yaWdpbi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShy
ZXBvcnRVUkwpLnB0cigpKSkKKyAgICAgICAgICAgIHJlbW92ZUNvb2tpZXMgPSBmYWxzZTsKICAg
ICB9CiAgICAgaWYgKHJlbW92ZUNvb2tpZXMpCiAgICAgICAgIHJlcXVlc3Quc2V0QWxsb3dDb29r
aWVzKGZhbHNlKTsKIAogICAgIGZyYW1lLmxvYWRlcigpLmFkZEV4dHJhRmllbGRzVG9TdWJyZXNv
dXJjZVJlcXVlc3QocmVxdWVzdCk7CiAKLSAgICBTdHJpbmcgcmVmZXJyZXIgPSBTZWN1cml0eVBv
bGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihmcmFtZS5kb2N1bWVudCgpLT5yZWZlcnJlclBv
bGljeSgpLCByZXBvcnRVUkwsIGZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSk7Cisg
ICAgU3RyaW5nIHJlZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFk
ZXIoZG9jdW1lbnQucmVmZXJyZXJQb2xpY3koKSwgcmVwb3J0VVJMLCBmcmFtZS5sb2FkZXIoKS5v
dXRnb2luZ1JlZmVycmVyKCkpOwogICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgpKQogICAgICAg
ICByZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihyZWZlcnJlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGlu
Z0xvYWRlci5oCmluZGV4IGNmNjU3N2MzMzU2ZWEwNTgxYjUzOTE4OTE5OGZkZTg3NjRmYjk5Mzcu
LmIyOWU4ZGE4ZjgwOGE3YjA2MGU1MDk3OGZjMmFlZDJjZTJkOGYxMzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1BpbmdMb2FkZXIuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCkBAIC0zMSw3ICszMiw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC00OSw3ICs1MCw3IEBAIGNsYXNzIFBpbmdMb2FkZXIgewogcHVibGljOgogICAg
IHN0YXRpYyB2b2lkIGxvYWRJbWFnZShGcmFtZSYsIGNvbnN0IFVSTCYpOwogICAgIHN0YXRpYyB2
b2lkIHNlbmRQaW5nKEZyYW1lJiwgY29uc3QgVVJMJiBwaW5nVVJMLCBjb25zdCBVUkwmIGRlc3Rp
bmF0aW9uVVJMKTsKLSAgICBzdGF0aWMgdm9pZCBzZW5kVmlvbGF0aW9uUmVwb3J0KEZyYW1lJiwg
Y29uc3QgVVJMJiByZXBvcnRVUkwsIFJlZlB0cjxGb3JtRGF0YT4mJiByZXBvcnQsIFZpb2xhdGlv
blJlcG9ydFR5cGUpOworICAgIHN0YXRpYyB2b2lkIHNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUm
LCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgUmVmPEZvcm1EYXRhPiYmIHJlcG9ydCwgVmlvbGF0aW9u
UmVwb3J0VHlwZSk7CiAKIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBTaG91bGRGb2xsb3dSZWRp
cmVjdHMgeyBObywgWWVzIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggNWMwMjU0NGE1ZTdi
ZDNmMDZmYjFhYmFiMDFlZTI2YzhhMzQ0NmYzZS4uZDAxNWJhNDVhMzNhZWJjZTE3MjlkM2I5OWIy
NTVmNTQ1MzAxZTc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDksIDIwMTEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICogQ29weXJpZ2h0IChDKSAy
MDEyLCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTQz
OCw3ICs0MzgsNyBAQCB2b2lkIENocm9tZTo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFz
c1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIpCiAgICAgbV9jbGllbnQucnVuT3BlblBh
bmVsKGZyYW1lLCBmaWxlQ2hvb3Nlcik7CiB9CiAKLXZvaWQgQ2hyb21lOjpsb2FkSWNvbkZvckZp
bGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9hZGVyKiBsb2Fk
ZXIpCit2b2lkIENocm9tZTo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciYgbG9hZGVyKQogewogICAgIG1fY2xpZW50LmxvYWRJ
Y29uRm9yRmlsZXMoZmlsZW5hbWVzLCBsb2FkZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXgg
ZjJmMmIwYjFjM2MwYTlmM2EyNzVkMTRmMDJkM2RjMWE4ZWRhNGVhMS4uZjIzODYwYTJiZGFmM2My
OTNlMDE5M2MyY2E0OTJiYTZhODhmN2M1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICogQ29weXJpZ2h0IChD
KSAyMDEyLCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAg
LTI4LDkgKzI4LDcgQEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKICNpZiBQTEFURk9STShD
T0NPQSkKLSNpZm5kZWYgX19PQkpDX18KLWNsYXNzIE5TVmlldzsKLSNlbmRpZgorT0JKQ19DTEFT
UyBOU1ZpZXc7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU5LDcgKzE1Nyw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNz
UmVmUHRyPEZpbGVDaG9vc2VyPik7Ci0gICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXIqKTsKKyAgICB2b2lkIGxvYWRJY29uRm9yRmls
ZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciYpOwogCiAgICAgdm9pZCBk
aXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50
cyYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA0NWZlYzU5OTgw
NGU0M2U2ZTdkMTg5YTA4ZTZjZWI4MDIyOWQzNmZkLi40MjFjZGE5YTE3NmY5YWNhMGE0NjExMGRi
MmZhYTQwN2EwNjI0MDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEw
LCAyMDExLCAyMDEyIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYtMjAxNyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KICAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKQEAgLTI3NSw3ICsyNzUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pID0g
MDsKICAgICAvLyBBc3luY2hyb25vdXMgcmVxdWVzdCB0byBsb2FkIGFuIGljb24gZm9yIHNwZWNp
ZmllZCBmaWxlbmFtZXMuCi0gICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJikg
PSAwOwogICAgICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IE5v
ZGUqKSB7IH07CiAgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUqKSB7
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQ
b2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5
LmNwcAppbmRleCBjYjc4ZDA2YTdlZjE0M2YyNmVlNTQ5NjM5YjI0OTU2NWM0NmFhMDY4Li5mMDU5
YjYwMTRjODRiN2ZhNGE3MzZmOTU0YTg5MTMxNGFiNzNhNWVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTEsNiArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjI1LDggKzYy
NSw4IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3Qg
U3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAKICAgICBBU1NFUlQoIW1fZnJhbWUgfHwg
ZWZmZWN0aXZlVmlvbGF0ZWREaXJlY3RpdmUgPT0gQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0
aXZlTmFtZXM6OmZyYW1lQW5jZXN0b3JzKTsKIAotICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGlz
PERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8RG9jdW1lbnQ+
KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50KCk7Ci0gICAg
RnJhbWUqIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9IGlz
PERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8RG9jdW1lbnQ+
KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAg
YXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOwogICAgIEFTU0VSVCghbV9mcmFtZSB8fCBt
X2ZyYW1lID09IGZyYW1lKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC02
NDYsMTMgKzY0NiwxNCBAQCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0
aW9uKGNvbnN0IFN0cmluZyYgZWZmZWN0aXZlVmlvbGF0ZWREaXJlYwogICAgIFN0cmluZyBvcmln
aW5hbFBvbGljeSA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5oZWFkZXIoKTsKICAgICBTdHJpbmcg
cmVmZXJyZXIgPSBkb2N1bWVudC5yZWZlcnJlcigpOwogICAgIEFTU0VSVChkb2N1bWVudC5sb2Fk
ZXIoKSk7CisgICAgLy8gRklYTUU6IElzIGl0IHBvbGljeSB0byBub3QgdXNlIHRoZSBzdGF0dXMg
Y29kZSBmb3IgSFRUUFMsIG9yIGlzIHRoYXQgYSBidWc/CiAgICAgdW5zaWduZWQgc2hvcnQgc3Rh
dHVzQ29kZSA9IGRvY3VtZW50LnVybCgpLnByb3RvY29sSXMoImh0dHAiKSAmJiBkb2N1bWVudC5s
b2FkZXIoKSA/IGRvY3VtZW50LmxvYWRlcigpLT5yZXNwb25zZSgpLmh0dHBTdGF0dXNDb2RlKCkg
OiAwOwogCiAgICAgU3RyaW5nIHNvdXJjZUZpbGU7CiAgICAgaW50IGxpbmVOdW1iZXIgPSAwOwog
ICAgIGludCBjb2x1bW5OdW1iZXIgPSAwOwotICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0
YWNrID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVu
dFN0YXRlKCksIDIpOwotICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3Rh
Y2stPmZpcnN0Tm9uTmF0aXZlQ2FsbEZyYW1lKCk7CisgICAgYXV0byBzdGFjayA9IGNyZWF0ZVNj
cmlwdENhbGxTdGFjayhKU01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCAyKTsK
KyAgICBhdXRvKiBjYWxsRnJhbWUgPSBzdGFjay0+Zmlyc3ROb25OYXRpdmVDYWxsRnJhbWUoKTsK
ICAgICBpZiAoY2FsbEZyYW1lICYmIGNhbGxGcmFtZS0+bGluZU51bWJlcigpKSB7CiAgICAgICAg
IHNvdXJjZUZpbGUgPSBzdHJpcFVSTEZvclVzZUluUmVwb3J0KGRvY3VtZW50LCBVUkwoVVJMKCks
IGNhbGxGcmFtZS0+c291cmNlVVJMKCkpKTsKICAgICAgICAgbGluZU51bWJlciA9IGNhbGxGcmFt
ZS0+bGluZU51bWJlcigpOwpAQCAtNjY1LDcgKzY2Niw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERp
cmVjCiAgICAgZG9jdW1lbnQuZW5xdWV1ZURvY3VtZW50RXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zZWN1cml0eXBvbGljeXZpb2xhdGlvbkV2
ZW50LCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIGRvY3VtZW50VVJJLCByZWZlcnJlciwgYmxvY2tl
ZFVSSSwgdmlvbGF0ZWREaXJlY3RpdmVUZXh0LCBlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZSwg
b3JpZ2luYWxQb2xpY3ksIHNvdXJjZUZpbGUsIHN0YXR1c0NvZGUsIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlcikpOwogCiAgICAgLy8gMi4gU2VuZCB2aW9sYXRpb24gcmVwb3J0IChpZiBhcHBsaWNh
YmxlKS4KLSAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcmVwb3J0VVJJcyA9IHZpb2xhdGVkRGly
ZWN0aXZlTGlzdC5yZXBvcnRVUklzKCk7CisgICAgYXV0byYgcmVwb3J0VVJJcyA9IHZpb2xhdGVk
RGlyZWN0aXZlTGlzdC5yZXBvcnRVUklzKCk7CiAgICAgaWYgKHJlcG9ydFVSSXMuaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm47CiAKQEAgLTY5MywxMCArNjk0LDEwIEBAIHZvaWQgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9s
YXRlZERpcmVjCiAgICAgICAgIGNzcFJlcG9ydC0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwoImNv
bHVtbi1udW1iZXIiKSwgY29sdW1uTnVtYmVyKTsKICAgICB9CiAKLSAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiByZXBvcnRPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAg
IGF1dG8gcmVwb3J0T2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKICAgICByZXBv
cnRPYmplY3QtPnNldE9iamVjdChBU0NJSUxpdGVyYWwoImNzcC1yZXBvcnQiKSwgV1RGTW92ZShj
c3BSZXBvcnQpKTsKIAotICAgIFJlZlB0cjxGb3JtRGF0YT4gcmVwb3J0ID0gRm9ybURhdGE6OmNy
ZWF0ZShyZXBvcnRPYmplY3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7CisgICAgYXV0byByZXBv
cnQgPSBGb3JtRGF0YTo6Y3JlYXRlKHJlcG9ydE9iamVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgp
KTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIHVybCA6IHJlcG9ydFVSSXMpCiAgICAgICAgIFBpbmdM
b2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoKmZyYW1lLCBpczxEb2N1bWVudD4obV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0KSA/IGRvY3VtZW50LmNvbXBsZXRlVVJMKHVybCkgOiBkb2N1bWVudC5j
b21wbGV0ZVVSTCh1cmwsIGJsb2NrZWRVUkwpLCByZXBvcnQuY29weVJlZigpLCBWaW9sYXRpb25S
ZXBvcnRUeXBlOjpDb250ZW50U2VjdXJpdHlQb2xpY3kpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1l
bnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudC5tbQppbmRleCBiMTBmMmU5ZWI3OGQ1OWUwMjZiYmRiNGRmZDcwZTRk
YTUzYjlhNDcwLi5mNjM1YWVkM2I5N2YwMTI5ZmY5ZWE4M2QxNGM3OTFiYmU3NWY4YjdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9X
ZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwyNCArMjgsMjQgQEAKIAog
I2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKSkKIAorI2ltcG9ydCAiQXVkaW9UcmFja0xpc3QuaCIKKyNpbXBvcnQgIkV2
ZW50LmgiCisjaW1wb3J0ICJFdmVudExpc3RlbmVyLmgiCisjaW1wb3J0ICJFdmVudE5hbWVzLmgi
CisjaW1wb3J0ICJIVE1MRWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTE1lZGlhRWxlbWVudC5oIgog
I2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFDb250cm9sc0hvc3QuaCIKKyNpbXBv
cnQgIlBhZ2UuaCIKKyNpbXBvcnQgIlBhZ2VHcm91cC5oIgorI2ltcG9ydCAiU29mdExpbmtpbmcu
aCIKKyNpbXBvcnQgIlRleHRUcmFja0xpc3QuaCIKKyNpbXBvcnQgIlRpbWVSYW5nZXMuaCIKICNp
bXBvcnQgIldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oIgogI2ltcG9ydCA8UXVhcnR6Q29y
ZS9Db3JlQW5pbWF0aW9uLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0F1ZGlvVHJhY2tMaXN0Lmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL0V2ZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0V2ZW50TGlzdGVuZXIu
aD4KLSNpbXBvcnQgPFdlYkNvcmUvRXZlbnROYW1lcy5oPgotI2ltcG9ydCA8V2ViQ29yZS9IVE1M
RWxlbWVudC5oPgotI2ltcG9ydCA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL1BhZ2UuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGFnZUdyb3VwLmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1RleHRUcmFja0xpc3Qu
aD4KLSNpbXBvcnQgPFdlYkNvcmUvVGltZVJhbmdlcy5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6V2ViUGxheWJhY2tTZXNz
aW9uTW9kZWxNZWRpYUVsZW1lbnQoKQogICAgIDogRXZlbnRMaXN0ZW5lcihFdmVudExpc3RlbmVy
OjpDUFBFdmVudExpc3RlbmVyVHlwZSkKQEAgLTIzMywxNyArMjMzLDggQEAgdm9pZCBXZWJQbGF5
YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6c2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50
NjRfdCBzZWxlY3QKICAgICBpZiAoIW1fbWVkaWFFbGVtZW50KQogICAgICAgICByZXR1cm47CiAK
LSAgICBBU1NFUlQoc2VsZWN0ZWRBdWRpb0luZGV4IDwgc3RkOjpudW1lcmljX2xpbWl0czxzaXpl
X3Q+OjptYXgoKSk7Ci0gICAgQXVkaW9UcmFjayogc2VsZWN0ZWRBdWRpb1RyYWNrID0gbnVsbHB0
cjsKLQotICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBtX2F1ZGlvVHJhY2tzRm9y
TWVudS5zaXplKCk7ICsraW5kZXgpIHsKLSAgICAgICAgYXV0byYgYXVkaW9UcmFjayA9IG1fYXVk
aW9UcmFja3NGb3JNZW51W2luZGV4XTsKLSAgICAgICAgYXVkaW9UcmFjay0+c2V0RW5hYmxlZChp
bmRleCA9PSBzdGF0aWNfY2FzdDxzaXplX3Q+KHNlbGVjdGVkQXVkaW9JbmRleCkpOwotICAgICAg
ICBpZiAoYXVkaW9UcmFjay0+ZW5hYmxlZCgpKQotICAgICAgICAgICAgc2VsZWN0ZWRBdWRpb1Ry
YWNrID0gYXVkaW9UcmFjay5nZXQoKTsKLSAgICB9Ci0KLSAgICBtX21lZGlhRWxlbWVudC0+YXVk
aW9UcmFja0VuYWJsZWRDaGFuZ2VkKHNlbGVjdGVkQXVkaW9UcmFjayk7CisgICAgZm9yIChzaXpl
X3QgaSA9IDAsIHNpemUgPSBtX2F1ZGlvVHJhY2tzRm9yTWVudS5zaXplKCk7IGkgPCBzaXplOyAr
K2kpCisgICAgICAgIG1fYXVkaW9UcmFja3NGb3JNZW51W2ldLT5zZXRFbmFibGVkKGkgPT0gc2Vs
ZWN0ZWRBdWRpb0luZGV4KTsKIH0KIAogdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlh
RWxlbWVudDo6c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQpAQCAtMjUx
LDkgKzI0Miw3IEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnNl
bGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRlCiAgICAgaWYgKCFtX21lZGlhRWxl
bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKGluZGV4IDwgc3RkOjpudW1lcmlj
X2xpbWl0czxzaXplX3Q+OjptYXgoKSk7Ci0gICAgVGV4dFRyYWNrKiB0ZXh0VHJhY2sgPSBudWxs
cHRyOwotCisgICAgVGV4dFRyYWNrKiB0ZXh0VHJhY2s7CiAgICAgaWYgKGluZGV4IDwgbV9sZWdp
YmxlVHJhY2tzRm9yTWVudS5zaXplKCkpCiAgICAgICAgIHRleHRUcmFjayA9IG1fbGVnaWJsZVRy
YWNrc0Zvck1lbnVbc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCldLmdldCgpOwogICAgIGVsc2UK
QEAgLTQ3MSw0ICs0NjAsNiBAQCBib29sIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVt
ZW50Ojp3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
bWVkaWFFbGVtZW50ICYmIG1fbWVkaWFFbGVtZW50LT5tZWRpYVNlc3Npb24oKS53aXJlbGVzc1Zp
ZGVvUGxheWJhY2tEaXNhYmxlZCgqbV9tZWRpYUVsZW1lbnQpOwogfQogCit9CisKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1By
aXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2
YXRlLmgKaW5kZXggM2JjOTdlZDcwMmFiMDRhZGJlMTQxNWFkZjliZTM1Mjk4ZGZhZGRkYi4uNzEw
ZDE3MDIwNWE1YWM5ZTBkZDBmNDliYzM1NjM1ZWE4YTBlMzMxZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDggKzIz
LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBBdWRpb1RyYWNrUHJpdmF0ZV9o
Ci0jZGVmaW5lIEF1ZGlvVHJhY2tQcml2YXRlX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAi
VHJhY2tQcml2YXRlQmFzZS5oIgogCkBAIC0zNiw3ICszNSw3IEBAIGNsYXNzIEF1ZGlvVHJhY2tQ
cml2YXRlOwogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1By
aXZhdGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlZENoYW5n
ZWQoQXVkaW9UcmFja1ByaXZhdGUqLCBib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGVuYWJs
ZWRDaGFuZ2VkKGJvb2wpID0gMDsKIH07CiAKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlIDogcHVi
bGljIFRyYWNrUHJpdmF0ZUJhc2UgewpAQCAtNTUsMjYgKzU0LDIyIEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgbV9lbmFibGVkID0gZW5hYmxlZDsKICAgICAgICAgaWYg
KG1fY2xpZW50KQotICAgICAgICAgICAgbV9jbGllbnQtPmVuYWJsZWRDaGFuZ2VkKHRoaXMsIGVu
YWJsZWQpOwotICAgIH07Ci0gICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX2VuYWJsZWQ7IH0KKyAgICAgICAgICAgIG1fY2xpZW50LT5lbmFibGVkQ2hhbmdlZChlbmFi
bGVkKTsKKyAgICB9CisKKyAgICBib29sIGVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2VuYWJs
ZWQ7IH0KIAogICAgIGVudW0gS2luZCB7IEFsdGVybmF0aXZlLCBEZXNjcmlwdGlvbiwgTWFpbiwg
TWFpbkRlc2MsIFRyYW5zbGF0aW9uLCBDb21tZW50YXJ5LCBOb25lIH07CiAgICAgdmlydHVhbCBL
aW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBOb25lOyB9CiAKIHByb3RlY3RlZDoKLSAgICBBdWRp
b1RyYWNrUHJpdmF0ZSgpCi0gICAgICAgIDogbV9jbGllbnQoMCkKLSAgICAgICAgLCBtX2VuYWJs
ZWQoZmFsc2UpCi0gICAgewotICAgIH0KKyAgICBBdWRpb1RyYWNrUHJpdmF0ZSgpID0gZGVmYXVs
dDsKIAogcHJpdmF0ZToKLSAgICBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCogbV9jbGllbnQ7Ci0g
ICAgYm9vbCBtX2VuYWJsZWQ7CisgICAgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQqIG1fY2xpZW50
IHsgbnVsbHB0ciB9OworICAgIGJvb2wgbV9lbmFibGVkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVD
bGllbnQuaAppbmRleCA3NjBmNjc5ZDEzNTBhNzE5MDA0NDcwYTdjYjdhNzQxN2E4YmM0OTE1Li45
YTExMDc5YmJlNDI4MTRlNjRhMDY2MGUyZmFmYTM5MDIxNDBhMGY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUNsaWVudC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
Mi0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsOCArMjMsOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
Ci0jaWZuZGVmIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnRfaAotI2RlZmluZSBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQ2xpZW50X2gKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQogCiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNl
LmgiCkBAIC0zNCw4ICszNSw2IEBACiAjaW5jbHVkZSAiU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVz
ZW50YXRpb24uaCIKICNlbmRpZgogCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGU7CkBAIC00Myw5ICs0
Miw3IEBAIGNsYXNzIElTT1dlYlZUVEN1ZTsKIAogY2xhc3MgR2VuZXJpY0N1ZURhdGEgOiBwdWJs
aWMgUmVmQ291bnRlZDxHZW5lcmljQ3VlRGF0YT4gewogcHVibGljOgotCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8R2VuZXJpY0N1ZURhdGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBH
ZW5lcmljQ3VlRGF0YSgpKTsgfQotICAgIHZpcnR1YWwgfkdlbmVyaWNDdWVEYXRhKCkgeyB9Cisg
ICAgc3RhdGljIFJlZjxHZW5lcmljQ3VlRGF0YT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBHZW5lcmljQ3VlRGF0YSk7IH0KIAogICAgIE1lZGlhVGltZSBzdGFydFRpbWUoKSBjb25z
dCB7IHJldHVybiBtX3N0YXJ0VGltZTsgfQogICAgIHZvaWQgc2V0U3RhcnRUaW1lKGNvbnN0IE1l
ZGlhVGltZSYgc3RhcnRUaW1lKSB7IG1fc3RhcnRUaW1lID0gc3RhcnRUaW1lOyB9CkBAIC01Mywx
MSArNTAsMTEgQEAgcHVibGljOgogICAgIE1lZGlhVGltZSBlbmRUaW1lKCkgY29uc3QgeyByZXR1
cm4gbV9lbmRUaW1lOyB9CiAgICAgdm9pZCBzZXRFbmRUaW1lKGNvbnN0IE1lZGlhVGltZSYgZW5k
VGltZSkgeyBtX2VuZFRpbWUgPSBlbmRUaW1lOyB9CiAKLSAgICBTdHJpbmcgaWQoKSBjb25zdCB7
IHJldHVybiBtX2lkOyB9Ci0gICAgdm9pZCBzZXRJZChTdHJpbmcgaWQpIHsgbV9pZCA9IGlkOyB9
CisgICAgY29uc3QgU3RyaW5nJiBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAgICB2b2lk
IHNldElkKGNvbnN0IFN0cmluZyYgaWQpIHsgbV9pZCA9IGlkOyB9CiAKLSAgICBTdHJpbmcgY29u
dGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudDsgfQotICAgIHZvaWQgc2V0Q29udGVudChT
dHJpbmcgY29udGVudCkgeyBtX2NvbnRlbnQgPSBjb250ZW50OyB9CisgICAgY29uc3QgU3RyaW5n
JiBjb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50OyB9CisgICAgdm9pZCBzZXRDb250
ZW50KGNvbnN0IFN0cmluZyYgY29udGVudCkgeyBtX2NvbnRlbnQgPSBjb250ZW50OyB9CiAKICAg
ICBkb3VibGUgbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZTsgfQogICAgIHZvaWQgc2V0TGlu
ZShkb3VibGUgbGluZSkgeyBtX2xpbmUgPSBsaW5lOyB9CkBAIC02OCwxNyArNjUsMTIgQEAgcHVi
bGljOgogICAgIGRvdWJsZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgdm9p
ZCBzZXRTaXplKGRvdWJsZSBzaXplKSB7IG1fc2l6ZSA9IHNpemU7IH0KIAotICAgIGVudW0gQWxp
Z25tZW50IHsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgU3RhcnQsCi0gICAgICAgIE1pZGRsZSwK
LSAgICAgICAgRW5kCi0gICAgfTsKKyAgICBlbnVtIEFsaWdubWVudCB7IE5vbmUsIFN0YXJ0LCBN
aWRkbGUsIEVuZCB9OwogICAgIEFsaWdubWVudCBhbGlnbigpIGNvbnN0IHsgcmV0dXJuIG1fYWxp
Z247IH0KICAgICB2b2lkIHNldEFsaWduKEFsaWdubWVudCBhbGlnbikgeyBtX2FsaWduID0gYWxp
Z247IH0KIAotICAgIFN0cmluZyBmb250TmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udE5hbWU7
IH0KLSAgICB2b2lkIHNldEZvbnROYW1lKFN0cmluZyBmb250TmFtZSkgeyBtX2ZvbnROYW1lID0g
Zm9udE5hbWU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGZvbnROYW1lKCkgY29uc3QgeyByZXR1cm4g
bV9mb250TmFtZTsgfQorICAgIHZvaWQgc2V0Rm9udE5hbWUoY29uc3QgU3RyaW5nJiBmb250TmFt
ZSkgeyBtX2ZvbnROYW1lID0gZm9udE5hbWU7IH0KIAogICAgIGRvdWJsZSBiYXNlRm9udFNpemUo
KSBjb25zdCB7IHJldHVybiBtX2Jhc2VGb250U2l6ZTsgfQogICAgIHZvaWQgc2V0QmFzZUZvbnRT
aXplKGRvdWJsZSBiYXNlRm9udFNpemUpIHsgbV9iYXNlRm9udFNpemUgPSBiYXNlRm9udFNpemU7
IH0KQEAgLTk1LDQzICs4NywzMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQ29sb3ImIGhpZ2hsaWdo
dENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9oaWdobGlnaHRDb2xvcjsgfQogICAgIHZvaWQgc2V0
SGlnaGxpZ2h0Q29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKSB7IG1faGlnaGxpZ2h0Q29sb3IgPSBj
b2xvcjsgfQogCi0gICAgZW51bSBTdGF0dXMgewotICAgICAgICBVbmluaXRpYWxpemVkLAotICAg
ICAgICBQYXJ0aWFsLAotICAgICAgICBDb21wbGV0ZSwKLSAgICB9OworICAgIGVudW0gU3RhdHVz
IHsgVW5pbml0aWFsaXplZCwgUGFydGlhbCwgQ29tcGxldGUgfTsKICAgICBTdGF0dXMgc3RhdHVz
KCkgeyByZXR1cm4gbV9zdGF0dXM7IH0KICAgICB2b2lkIHNldFN0YXR1cyhTdGF0dXMgc3RhdHVz
KSB7IG1fc3RhdHVzID0gc3RhdHVzOyB9CiAKICAgICBib29sIGRvZXNFeHRlbmRDdWVEYXRhKGNv
bnN0IEdlbmVyaWNDdWVEYXRhJikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgR2VuZXJpY0N1ZURh
dGEoKQotICAgICAgICA6IG1fbGluZSgtMSkKLSAgICAgICAgLCBtX3Bvc2l0aW9uKC0xKQotICAg
ICAgICAsIG1fc2l6ZSgtMSkKLSAgICAgICAgLCBtX2FsaWduKE5vbmUpCi0gICAgICAgICwgbV9i
YXNlRm9udFNpemUoMCkKLSAgICAgICAgLCBtX3JlbGF0aXZlRm9udFNpemUoMCkKLSAgICAgICAg
LCBtX3N0YXR1cyhVbmluaXRpYWxpemVkKQotICAgIHsKLSAgICB9CisgICAgR2VuZXJpY0N1ZURh
dGEoKSA9IGRlZmF1bHQ7CiAKICAgICBNZWRpYVRpbWUgbV9zdGFydFRpbWU7CiAgICAgTWVkaWFU
aW1lIG1fZW5kVGltZTsKICAgICBTdHJpbmcgbV9pZDsKICAgICBTdHJpbmcgbV9jb250ZW50Owot
ICAgIGRvdWJsZSBtX2xpbmU7Ci0gICAgZG91YmxlIG1fcG9zaXRpb247Ci0gICAgZG91YmxlIG1f
c2l6ZTsKLSAgICBBbGlnbm1lbnQgbV9hbGlnbjsKKyAgICBkb3VibGUgbV9saW5lIHsgLTEgfTsK
KyAgICBkb3VibGUgbV9wb3NpdGlvbiB7IC0xIH07CisgICAgZG91YmxlIG1fc2l6ZSB7IC0xIH07
CisgICAgQWxpZ25tZW50IG1fYWxpZ24geyBOb25lIH07CiAgICAgU3RyaW5nIG1fZm9udE5hbWU7
Ci0gICAgZG91YmxlIG1fYmFzZUZvbnRTaXplOwotICAgIGRvdWJsZSBtX3JlbGF0aXZlRm9udFNp
emU7CisgICAgZG91YmxlIG1fYmFzZUZvbnRTaXplIHsgMCB9OworICAgIGRvdWJsZSBtX3JlbGF0
aXZlRm9udFNpemUgeyAwIH07CiAgICAgQ29sb3IgbV9mb3JlZ3JvdW5kQ29sb3I7CiAgICAgQ29s
b3IgbV9iYWNrZ3JvdW5kQ29sb3I7CiAgICAgQ29sb3IgbV9oaWdobGlnaHRDb2xvcjsKLSAgICBT
dGF0dXMgbV9zdGF0dXM7CisgICAgU3RhdHVzIG1fc3RhdHVzIHsgVW5pbml0aWFsaXplZCB9Owog
fTsKIAogaW5saW5lIGJvb2wgR2VuZXJpY0N1ZURhdGE6OmRvZXNFeHRlbmRDdWVEYXRhKGNvbnN0
IEdlbmVyaWNDdWVEYXRhJiBvdGhlcikgY29uc3QKQEAgLTE2OCwyNCArMTQ3LDIzIEBAIGNsYXNz
IEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZUNs
aWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVu
dCgpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25z
dCB2b2lkKiwgdW5zaWduZWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YUN1ZShjb25z
dCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9pZCosIHVu
c2lnbmVkKSA9IDA7CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLSAgICB2aXJ0dWFsIHZv
aWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBz
dGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3Jt
UmVwcmVzZW50YXRpb24+LCBjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3Rh
cnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJl
cHJlc2VudGF0aW9uPikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVEYXRhQ3VlKEluYmFu
ZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRp
bWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4pID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBj
b25zdCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9u
PiYmLCBjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZURhdGFDdWUo
Y29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQ
bGF0Zm9ybVJlcHJlc2VudGF0aW9uJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVEYXRh
Q3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxp
emVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbiYpID0gMDsKICNlbmRpZgogCi0gICAgdmlydHVhbCB2
b2lkIGFkZEdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFBhc3NSZWZQdHI8R2Vu
ZXJpY0N1ZURhdGE+KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBHZW5lcmljQ3Vl
RGF0YSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0
YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0
YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0
YSYpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZSosIFN0cmluZyYmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0g
ICAgdmlydHVhbCB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRl
KiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNP
V2ViVlRUQ3VlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIo
U3RyaW5nJiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VXZWJWVFRDdWVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJikg
PSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJp
dmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJp
dmF0ZS5oCmluZGV4IDA4ZTYyYzM0ODYyYWRkOTRmYTA4NGI0MjVjNTg3YWE0ZmJkMzY0YmQuLjdh
YzVkZDI3NWJhYTU3YjBhYWU4YmU1NTA4Nzg3NmZmMTE5MWUwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKQEAg
LTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CkBAIC0yOCwyMSArMjgsMTcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwotI2lmbmRlZiBTb3VyY2VCdWZmZXJQcml2YXRlX2gKLSNkZWZpbmUgU291cmNlQnVmZmVyUHJp
dmF0ZV9oCisKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAogI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyLmgiCi0jaW5jbHVkZSAiVGltZVJhbmdlcy5oIgotI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhU2FtcGxlOwogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0
ZUNsaWVudDsKLWNsYXNzIFRpbWVSYW5nZXM7CiAKIGNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGUg
OiBwdWJsaWMgUmVmQ291bnRlZDxTb3VyY2VCdWZmZXJQcml2YXRlPiB7CiBwdWJsaWM6CkBAIC01
OCwxNyArNTQsMTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6OlJlYWR5U3Rh
dGUgcmVhZHlTdGF0ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVhZHlTdGF0
ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGZsdXNo
KEF0b21pY1N0cmluZykgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGVucXVldWVTYW1wbGUoUGFzc1Jl
ZlB0cjxNZWRpYVNhbXBsZT4sIEF0b21pY1N0cmluZykgeyB9Ci0gICAgdmlydHVhbCBib29sIGlz
UmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dmlydHVhbCB2b2lkIGZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiwgY29uc3QgQXRvbWljU3RyaW5n
JikgeyB9CisgICAgdmlydHVhbCBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9t
aWNTdHJpbmcmKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUo
Ym9vbCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhBdG9t
aWNTdHJpbmcpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JN
b3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wQXNraW5n
Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYp
IHsgfQogCi0gICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBlbnF1ZXVlZFNhbXBsZXNGb3JUcmFj
a0lEKEF0b21pY1N0cmluZykgeyByZXR1cm4ge307IH0KKyAgICB2aXJ0dWFsIFZlY3RvcjxTdHJp
bmc+IGVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoY29uc3QgQXRvbWljU3RyaW5nJikgeyByZXR1
cm4geyB9OyB9CiB9OwogCiB9CiAKICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50
LmgKaW5kZXggMjk0YWQ2NWY0NjMzNWRmMDY5MTUzZjRhY2IzOTcwM2JmMWM5ZjBmMi4uMTgwODdk
NWUzZDI2Y2ExMWRiYTBmNjg3MzAwZDg2OTY4ODBiNWNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGVDbGll
bnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zMiwxMiArMzIsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTb3Vy
Y2VCdWZmZXJQcml2YXRlOwogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGU7Ci1jbGFzcyBWaWRlb1Ry
YWNrUHJpdmF0ZTsKIGNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGU7CiBjbGFzcyBNZWRpYVNh
bXBsZTsKIGNsYXNzIE1lZGlhRGVzY3JpcHRpb247CitjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsK
IAogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6CkBAIC02NCwyMyAr
NjMsMTkgQEAgcHVibGljOgogICAgICAgICB9OwogICAgICAgICBWZWN0b3I8VGV4dFRyYWNrSW5m
b3JtYXRpb24+IHRleHRUcmFja3M7CiAgICAgfTsKLSAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJp
dmF0ZSosIGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoU291cmNlQnVmZmVyUHJpdmF0
ZSosIE1lZGlhU2FtcGxlJikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBzb3VyY2VCdWZmZXJQcml2
YXRlSGFzQXVkaW8oY29uc3QgU291cmNlQnVmZmVyUHJpdmF0ZSopIGNvbnN0ID0gMDsKLSAgICB2
aXJ0dWFsIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKGNvbnN0IFNvdXJjZUJ1ZmZl
clByaXZhdGUqKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZh
dGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2Vn
bWVudCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2Vp
dmVTYW1wbGUoTWVkaWFTYW1wbGUmKSA9IDA7CisgICAgdmlydHVhbCBib29sIHNvdXJjZUJ1ZmZl
clByaXZhdGVIYXNBdWRpbygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc291cmNlQnVm
ZmVyUHJpdmF0ZUhhc1ZpZGVvKCkgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHNvdXJj
ZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1ZmZlclBy
aXZhdGUqLCBBdG9taWNTdHJpbmcgdHJhY2tJRCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzb3Vy
Y2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNT
dHJpbmcmIHRyYWNrSUQpID0gMDsKIAotICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNvdXJjZUJ1ZmZl
clByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNv
bnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJikg
eyByZXR1cm4gdGltZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlU2Vl
a1RvVGltZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJikgeyB9OworICAg
IHZpcnR1YWwgTWVkaWFUaW1lIHNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRp
YVRpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRp
YVRpbWUmKSB7IHJldHVybiB0aW1lOyB9CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclBy
aXZhdGVTZWVrVG9UaW1lKGNvbnN0IE1lZGlhVGltZSYpIHsgfTsKIAotICAgIGVudW0gQXBwZW5k
UmVzdWx0IHsKLSAgICAgICAgQXBwZW5kU3VjY2VlZGVkLAotICAgICAgICBSZWFkU3RyZWFtRmFp
bGVkLAotICAgICAgICBQYXJzaW5nRmFpbGVkLAotICAgIH07Ci0gICAgdmlydHVhbCB2b2lkIHNv
dXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXBw
ZW5kUmVzdWx0KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRS
ZWNlaXZlUmVuZGVyaW5nRXJyb3IoU291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvY0NvZGUp
ID0gMDsKKyAgICBlbnVtIEFwcGVuZFJlc3VsdCB7IEFwcGVuZFN1Y2NlZWRlZCwgUmVhZFN0cmVh
bUZhaWxlZCwgUGFyc2luZ0ZhaWxlZCB9OworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQ
cml2YXRlQXBwZW5kQ29tcGxldGUoQXBwZW5kUmVzdWx0KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoaW50IGVycm9yQ29k
ZSkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvVHJhY2tQcml2YXRlQmFzZS5oCmluZGV4IDczMWFhOGQ5MzZhNWFhZWEwZDFjMDNhYTY4YTJh
YzZiMmIyYjllNjQuLjBiMDBjYTVmNjYxNTQ5NjI4NTFjM2VjN2Y5MTY4MzA0OGI4NmJmNDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJh
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVC
YXNlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBDYWJsZSBU
ZWxldmlzaW9uIExhYnMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKQEAgLTI1LDM0ICsyNSwyOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFRy
YWNrUHJpdmF0ZUJhc2VfaAotI2RlZmluZSBUcmFja1ByaXZhdGVCYXNlX2gKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNT
dHJpbmcuaD4KIAotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLQogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBUcmFja1ByaXZhdGVCYXNlOwotCiBjbGFzcyBUcmFja1ByaXZhdGVCYXNlQ2xp
ZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5UcmFja1ByaXZhdGVCYXNlQ2xpZW50KCkgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIGlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRv
bWljU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBsYWJlbENoYW5nZWQoVHJhY2tQcml2
YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbGFu
Z3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSopID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgbGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZSgpID0gMDsKIH07CiAKIGNsYXNzIFRyYWNrUHJpdmF0
ZUJhc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxUcmFja1ByaXZhdGVCYXNlPiB7Ci0gICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoVHJhY2tQcml2YXRlQmFzZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRyYWNrUHJpdmF0ZUJhc2UpOworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHZpcnR1YWwgflRyYWNrUHJpdmF0ZUJh
c2UoKSB7IH0KKyAgICB2aXJ0dWFsIH5UcmFja1ByaXZhdGVCYXNlKCkgPSBkZWZhdWx0OwogCiAg
ICAgdmlydHVhbCBUcmFja1ByaXZhdGVCYXNlQ2xpZW50KiBjbGllbnQoKSBjb25zdCA9IDA7CiAK
QEAgLTYzLDE4ICs1OCwxNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgdHJhY2tJbmRleCgp
IGNvbnN0IHsgcmV0dXJuIDA7IH0KIAogICAgIHZpcnR1YWwgTWVkaWFUaW1lIHN0YXJ0VGltZVZh
cmlhbmNlKCkgY29uc3QgeyByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOyB9Ci0gICAgCisK
ICAgICB2b2lkIHdpbGxCZVJlbW92ZWQoKQogICAgIHsKLSAgICAgICAgaWYgKFRyYWNrUHJpdmF0
ZUJhc2VDbGllbnQqIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQotICAgICAgICAgICAgY2xpZW50
LT53aWxsUmVtb3ZlKHRoaXMpOworICAgICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xp
ZW50KCkpCisgICAgICAgICAgICBjbGllbnQtPndpbGxSZW1vdmUoKTsKICAgICB9CiAKIHByb3Rl
Y3RlZDoKLSAgICBUcmFja1ByaXZhdGVCYXNlKCkgeyB9CisgICAgVHJhY2tQcml2YXRlQmFzZSgp
ID0gZGVmYXVsdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCi0jZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJh
Y2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNr
UHJpdmF0ZS5oCmluZGV4IGZlZDM0OWE3YjM3MjhmNTAyN2M4MmU3YTEwYzM1MjdkMGY1OTM1ZGQu
LmY5NDUzMzU2N2ZmMmJiMzA1NjhlODExM2Q0NzVkOGU4NjE1MDcxYWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywy
OSArMjMsMjEgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBWaWRlb1RyYWNrUHJp
dmF0ZV9oCi0jZGVmaW5lIFZpZGVvVHJhY2tQcml2YXRlX2gKLQotI2luY2x1ZGUgIlRyYWNrUHJp
dmF0ZUJhc2UuaCIKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi1u
YW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZS5oIgogCi1jbGFz
cyBWaWRlb1RyYWNrUHJpdmF0ZTsKK25hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVmlkZW9U
cmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZUNsaWVudCB7CiBwdWJs
aWM6Ci0gICAgdmlydHVhbCB2b2lkIHNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrUHJpdmF0ZSos
IGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJvb2wpID0gMDsK
IH07CiAKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlIDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2Ug
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPiBjcmVh
dGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWaWRlb1RyYWNrUHJpdmF0
ZSgpKTsKLSAgICB9Ci0KICAgICB2b2lkIHNldENsaWVudChWaWRlb1RyYWNrUHJpdmF0ZUNsaWVu
dCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAgICAgVmlkZW9UcmFja1ByaXZhdGVD
bGllbnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKQEAg
LTU1LDI2ICs0NywyMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1f
c2VsZWN0ZWQgPSBzZWxlY3RlZDsKICAgICAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICAgICAg
bV9jbGllbnQtPnNlbGVjdGVkQ2hhbmdlZCh0aGlzLCBtX3NlbGVjdGVkKTsKLSAgICB9OworICAg
ICAgICAgICAgbV9jbGllbnQtPnNlbGVjdGVkQ2hhbmdlZChtX3NlbGVjdGVkKTsKKyAgICB9CiAg
ICAgdmlydHVhbCBib29sIHNlbGVjdGVkKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3RlZDsgfQog
CiAgICAgZW51bSBLaW5kIHsgQWx0ZXJuYXRpdmUsIENhcHRpb25zLCBNYWluLCBTaWduLCBTdWJ0
aXRsZXMsIENvbW1lbnRhcnksIE5vbmUgfTsKICAgICB2aXJ0dWFsIEtpbmQga2luZCgpIGNvbnN0
IHsgcmV0dXJuIE5vbmU7IH0KIAogcHJvdGVjdGVkOgotICAgIFZpZGVvVHJhY2tQcml2YXRlKCkK
LSAgICAgICAgOiBtX2NsaWVudCgwKQotICAgICAgICAsIG1fc2VsZWN0ZWQoZmFsc2UpCi0gICAg
ewotICAgIH0KKyAgICBWaWRlb1RyYWNrUHJpdmF0ZSgpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToK
LSAgICBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCogbV9jbGllbnQ7Ci0gICAgYm9vbCBtX3NlbGVj
dGVkOworICAgIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsK
KyAgICBib29sIG1fc2VsZWN0ZWQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvVHJhY2tQcml2YXRlQVZGLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFja1ByaXZhdGVB
VkYuaAppbmRleCAxMzFmZDUxYjRjMTY5MzQwOGI0ZjhhNGI1OTZlYjI2ZmJkNmQyOTZiLi4xOWI1
NjBiY2NiYTU4MTk1Y2U0NWVmNmVmODFjOGRjZGVjMjk1YmM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFja1ByaXZhdGVB
VkYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
QXVkaW9UcmFja1ByaXZhdGVBVkYuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBBdWRpb1RyYWNrUHJpdmF0ZUFWRl9oCi0j
ZGVmaW5lIEF1ZGlvVHJhY2tQcml2YXRlQVZGX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQogCkBAIC0zNSw3ICszNCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEF1ZGlvVHJhY2tQcml2YXRlQVZGIDogcHVibGljIEF1ZGlvVHJhY2tQcml2YXRlIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1RyYWNrUHJpdmF0ZUFWRikKIHB1YmxpYzoKLQog
ICAgIHZpcnR1YWwgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gbV9raW5kOyB9CiAgICAgdmly
dHVhbCBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAgICAgdmlydHVh
bCBBdG9taWNTdHJpbmcgbGFiZWwoKSBjb25zdCB7IHJldHVybiBtX2xhYmVsOyB9CkBAIC00NCwy
NiArNDIsMjAgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRLaW5kKEtpbmQg
a2luZCkgeyBtX2tpbmQgPSBraW5kOyB9Ci0gICAgdm9pZCBzZXRJZChBdG9taWNTdHJpbmcgbmV3
SWQpIHsgbV9pZCA9IG5ld0lkOyB9Ci0gICAgdm9pZCBzZXRMYWJlbChBdG9taWNTdHJpbmcgbGFi
ZWwpIHsgbV9sYWJlbCA9IGxhYmVsOyB9Ci0gICAgdm9pZCBzZXRMYW5ndWFnZShBdG9taWNTdHJp
bmcgbGFuZ3VhZ2UpIHsgbV9sYW5ndWFnZSA9IGxhbmd1YWdlOyB9CisgICAgdm9pZCBzZXRJZChj
b25zdCBBdG9taWNTdHJpbmcmIG5ld0lkKSB7IG1faWQgPSBuZXdJZDsgfQorICAgIHZvaWQgc2V0
TGFiZWwoY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkgeyBtX2xhYmVsID0gbGFiZWw7IH0KKyAg
ICB2b2lkIHNldExhbmd1YWdlKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpIHsgbV9sYW5n
dWFnZSA9IGxhbmd1YWdlOyB9CiAgICAgdm9pZCBzZXRUcmFja0luZGV4KGludCBpbmRleCkgeyBt
X2luZGV4ID0gaW5kZXg7IH0KIAotICAgIEtpbmQgbV9raW5kOworICAgIEtpbmQgbV9raW5kIHsg
Tm9uZSB9OwogICAgIEF0b21pY1N0cmluZyBtX2lkOwogICAgIEF0b21pY1N0cmluZyBtX2xhYmVs
OwogICAgIEF0b21pY1N0cmluZyBtX2xhbmd1YWdlOwotICAgIGludCBtX2luZGV4OworICAgIGlu
dCBtX2luZGV4IHsgMCB9OwogCi0gICAgQXVkaW9UcmFja1ByaXZhdGVBVkYoKQotICAgICAgICA6
IG1fa2luZChOb25lKQotICAgICAgICAsIG1faW5kZXgoMCkKLSAgICB7Ci0gICAgfQorICAgIEF1
ZGlvVHJhY2tQcml2YXRlQVZGKCkgPSBkZWZhdWx0OwogfTsKIAogfQogCiAjZW5kaWYgLy8gRU5B
QkxFKFZJREVPX1RSQUNLKQotCi0jZW5kaWYgLy8gQXVkaW9UcmFja1ByaXZhdGVBVkZfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0lu
YmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRl
QVZGLmNwcAppbmRleCA5YzZjYTg3YjBjMGY5MDA2NzExN2Y0NDJkM2U2NmQ5NDEzM2FmMTQwLi5i
NDliZDFlMzdmMGM3ZDA2YTllYjM4YmNkMGMxYzNjMGJjMzg3OTJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI0LDkgKzI0LDkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
SW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmgiCiAKICNpZiBFTkFCTEUoVklERU8p
ICYmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKSAmJiAoVVNFKEFWRk9VTkRBVElPTikgfHwgUExBVEZP
Uk0oSU9TKSkKLSNpbmNsdWRlICJJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuaCIK
IAogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCkBAIC01NCw2ICs1NCw3IEBAIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0
ZUFWRjo6fkluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRigpCiB9CiAKICNpZiBFTkFC
TEUoREFUQUNVRV9WQUxVRSkKKwogdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVB
VkY6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBl
bmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBycEN1ZURh
dGEsIGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICBBU1NFUlQoY3VlRm9ybWF0KCkgPT0gRGF0
YSk7CkBAIC02Niw3ICs2Nyw3IEBAIHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRl
QVZGOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0CiAgICAgbV9jdXJy
ZW50Q3VlU3RhcnRUaW1lID0gc3RhcnQ7CiAgICAgaWYgKGVuZC5pc1Bvc2l0aXZlSW5maW5pdGUo
KSkKICAgICAgICAgbV9pbmNvbXBsZXRlQ3Vlcy5hcHBlbmQoSW5jb21wbGV0ZU1ldGFEYXRhQ3Vl
IHsgY3VlRGF0YS5nZXQoKSwgc3RhcnQgfSk7Ci0gICAgY2xpZW50KCktPmFkZERhdGFDdWUodGhp
cywgc3RhcnQsIGVuZCwgY3VlRGF0YSwgdHlwZSk7CisgICAgY2xpZW50KCktPmFkZERhdGFDdWUo
c3RhcnQsIGVuZCwgY3VlRGF0YS5yZWxlYXNlTm9uTnVsbCgpLCB0eXBlKTsKIH0KIAogdm9pZCBJ
bmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OnVwZGF0ZVBlbmRpbmdDdWVFbmRUaW1l
cyhjb25zdCBNZWRpYVRpbWUmIHRpbWUpCkBAIC03Nyw3ICs3OCw3IEBAIHZvaWQgSW5iYW5kTWV0
YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjp1cGRhdGVQZW5kaW5nQ3VlRW5kVGltZXMoY29uc3Qg
TWVkaWFUaW1lCiAgICAgICAgIGlmIChjbGllbnQoKSkgewogICAgICAgICAgICAgZm9yIChhdXRv
JiBwYXJ0aWFsQ3VlIDogbV9pbmNvbXBsZXRlQ3VlcykgewogICAgICAgICAgICAgICAgIExPRyhN
ZWRpYSwgIkluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6dXBkYXRlUGVuZGluZ0N1
ZUVuZFRpbWVzKCVwKSAtIHVwZGF0aW5nIGN1ZTogc3RhcnQ9JXMsIGVuZD0lcyIsIHRoaXMsIHRv
U3RyaW5nKHBhcnRpYWxDdWUuc3RhcnRUaW1lKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyh0aW1l
KS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICBjbGllbnQoKS0+dXBkYXRlRGF0YUN1
ZSh0aGlzLCBwYXJ0aWFsQ3VlLnN0YXJ0VGltZSwgdGltZSwgcGFydGlhbEN1ZS5jdWVEYXRhKTsK
KyAgICAgICAgICAgICAgICBjbGllbnQoKS0+dXBkYXRlRGF0YUN1ZShwYXJ0aWFsQ3VlLnN0YXJ0
VGltZSwgdGltZSwgKnBhcnRpYWxDdWUuY3VlRGF0YSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9IGVsc2UKQEAgLTg2LDYgKzg3LDcgQEAgdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRU
cmFja1ByaXZhdGVBVkY6OnVwZGF0ZVBlbmRpbmdDdWVFbmRUaW1lcyhjb25zdCBNZWRpYVRpbWUK
ICAgICBtX2luY29tcGxldGVDdWVzLnJlc2l6ZSgwKTsKICAgICBtX2N1cnJlbnRDdWVTdGFydFRp
bWUgPSBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiB9CisKICNlbmRpZgogCiB2b2lkIEluYmFuZE1l
dGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6Zmx1c2hQYXJ0aWFsQ3VlcygpCkBAIC05NSw3ICs5
Nyw3IEBAIHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjpmbHVzaFBhcnRp
YWxDdWVzKCkKIAogICAgIGlmIChjbGllbnQoKSkgewogICAgICAgICBmb3IgKGF1dG8mIHBhcnRp
YWxDdWUgOiBtX2luY29tcGxldGVDdWVzKQotICAgICAgICAgICAgY2xpZW50KCktPnJlbW92ZURh
dGFDdWUodGhpcywgcGFydGlhbEN1ZS5zdGFydFRpbWUsIE1lZGlhVGltZTo6cG9zaXRpdmVJbmZp
bml0ZVRpbWUoKSwgcGFydGlhbEN1ZS5jdWVEYXRhKTsKKyAgICAgICAgICAgIGNsaWVudCgpLT5y
ZW1vdmVEYXRhQ3VlKHBhcnRpYWxDdWUuc3RhcnRUaW1lLCBNZWRpYVRpbWU6OnBvc2l0aXZlSW5m
aW5pdGVUaW1lKCksICpwYXJ0aWFsQ3VlLmN1ZURhdGEpOwogICAgIH0KIAogICAgIG1faW5jb21w
bGV0ZUN1ZXMucmVzaXplKDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkYuY3BwCmluZGV4IDNiN2JkYTg2NmQyZTYwZDkzMmViOGU2MDk2ZWY4YTkzMzM3
YzY2YzAuLjk1OTZmOGNhM2MxN2U0NWRmY2UxOGQ3YWQwMjRlMGM1MWQ1MmQwZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwx
MSArMjQsMTEgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRi5oIgogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEFWRk9V
TkRBVElPTikgfHwgUExBVEZPUk0oSU9TKSkKIAotI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1By
aXZhdGVBVkYuaCIKLQorI2luY2x1ZGUgIkNvcmVNZWRpYVNvZnRMaW5rLmgiCiAjaW5jbHVkZSAi
SVNPVlRUQ3VlLmgiCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTQzLDEyICs0Myw2IEBACiAjaW5jbHVkZSA8d3RmL3Vu
aWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0u
aD4KIAotI2luY2x1ZGUgIkNvcmVNZWRpYVNvZnRMaW5rLmgiCi0KLW5hbWVzcGFjZSBKU0Mgewot
Y2xhc3MgQXJyYXlCdWZmZXI7Ci19Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQVZGSW5iYW5k
VHJhY2tQYXJlbnQ6On5BVkZJbmJhbmRUcmFja1BhcmVudCgpCkBAIC0zMjMsMzMgKzMxNywzMyBA
QCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRyaWJ1dGVkU3RyaW5n
cyhDRkFycmF5UmVmIGF0dHJpYnV0ZWRTdAogewogICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRU
cmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWUgLSAlbGkgY3VlcyBhdCB0aW1lICVzXG4iLCBhdHRy
aWJ1dGVkU3RyaW5ncyA/IENGQXJyYXlHZXRDb3VudChhdHRyaWJ1dGVkU3RyaW5ncykgOiAwLCB0
b1N0cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpKTsKIAotICAgIFZlY3RvcjxSZWZQdHI8R2VuZXJp
Y0N1ZURhdGE+PiBhcnJpdmluZ0N1ZXM7CisgICAgVmVjdG9yPFJlZjxHZW5lcmljQ3VlRGF0YT4+
IGFycml2aW5nQ3VlczsKICAgICBpZiAoYXR0cmlidXRlZFN0cmluZ3MpIHsKICAgICAgICAgQ0ZJ
bmRleCBjb3VudCA9IENGQXJyYXlHZXRDb3VudChhdHRyaWJ1dGVkU3RyaW5ncyk7CiAgICAgICAg
IGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKICAgICAgICAgICAgIENGQXR0
cmlidXRlZFN0cmluZ1JlZiBhdHRyaWJ1dGVkU3RyaW5nID0gc3RhdGljX2Nhc3Q8Q0ZBdHRyaWJ1
dGVkU3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dHJpYnV0ZWRTdHJpbmdzLCBp
KSk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgaWYgKCFhdHRyaWJ1dGVkU3RyaW5nIHx8
ICFDRkF0dHJpYnV0ZWRTdHJpbmdHZXRMZW5ndGgoYXR0cmlidXRlZFN0cmluZykpCiAgICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFJlZlB0cjxHZW5l
cmljQ3VlRGF0YT4gY3VlRGF0YSA9IEdlbmVyaWNDdWVEYXRhOjpjcmVhdGUoKTsKLSAgICAgICAg
ICAgIHByb2Nlc3NDdWVBdHRyaWJ1dGVzKGF0dHJpYnV0ZWRTdHJpbmcsICpjdWVEYXRhLmdldCgp
KTsKKworICAgICAgICAgICAgYXV0byBjdWVEYXRhID0gR2VuZXJpY0N1ZURhdGE6OmNyZWF0ZSgp
OworICAgICAgICAgICAgcHJvY2Vzc0N1ZUF0dHJpYnV0ZXMoYXR0cmlidXRlZFN0cmluZywgY3Vl
RGF0YS5nZXQoKSk7CiAgICAgICAgICAgICBpZiAoIWN1ZURhdGEtPmNvbnRlbnQoKS5sZW5ndGgo
KSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAg
YXJyaXZpbmdDdWVzLmFwcGVuZChjdWVEYXRhKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAg
ICBjdWVEYXRhLT5zZXRTdGFydFRpbWUodGltZSk7CiAgICAgICAgICAgICBjdWVEYXRhLT5zZXRF
bmRUaW1lKE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKSk7Ci0gICAgICAgICAgICAK
KwogICAgICAgICAgICAgLy8gQVZGb3VuZGF0aW9uIGN1ZSAicG9zaXRpb24iIGlzIHRvIHRoZSBj
ZW50ZXIgb2YgdGhlIHRleHQgc28gYWRqdXN0IHJlbGF0aXZlIHRvIHRoZSBlZGdlIGJlY2F1c2Ug
d2Ugd2lsbCB1c2UgaXQgdG8KICAgICAgICAgICAgIC8vIHNldCBDU1MgImxlZnQiLgogICAgICAg
ICAgICAgaWYgKGN1ZURhdGEtPnBvc2l0aW9uKCkgPj0gMCAmJiBjdWVEYXRhLT5zaXplKCkgPiAw
KQogICAgICAgICAgICAgICAgIGN1ZURhdGEtPnNldFBvc2l0aW9uKGN1ZURhdGEtPnBvc2l0aW9u
KCkgLSBjdWVEYXRhLT5zaXplKCkgLyAyKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBM
T0coTWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlKCVwKSAtIGNv
bnNpZGVyaW5nIGN1ZSAoXCIlc1wiKSBmb3IgdGltZSA9ICVzLCBwb3NpdGlvbiA9ICAlLjJmLCBs
aW5lID0gICUuMmYiLCB0aGlzLCBjdWVEYXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSwgdG9T
dHJpbmcoY3VlRGF0YS0+c3RhcnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEtPnBvc2l0
aW9uKCksIGN1ZURhdGEtPmxpbmUoKSk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgY3Vl
RGF0YS0+c2V0U3RhdHVzKEdlbmVyaWNDdWVEYXRhOjpQYXJ0aWFsKTsKKworICAgICAgICAgICAg
YXJyaXZpbmdDdWVzLmFwcGVuZChXVEZNb3ZlKGN1ZURhdGEpKTsKICAgICAgICAgfQogICAgIH0K
IApAQCAtMzYwLDE3ICszNTQsMTcgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpw
cm9jZXNzQXR0cmlidXRlZFN0cmluZ3MoQ0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3QKICAgICAgICAg
aWYgKG1fY3VycmVudEN1ZUVuZFRpbWUgPj0gbV9jdXJyZW50Q3VlU3RhcnRUaW1lKSB7CiAgICAg
ICAgICAgICBmb3IgKGF1dG8mIGN1ZURhdGEgOiBtX2N1ZXMpIHsKICAgICAgICAgICAgICAgICAv
LyBTZWUgaWYgb25lIG9mIHRoZSBuZXdseS1hcnJpdmVkIGN1ZXMgaXMgYW4gZXh0ZW5zaW9uIG9m
IHRoaXMgY3VlLgotICAgICAgICAgICAgICAgIFZlY3RvcjxSZWZQdHI8R2VuZXJpY0N1ZURhdGE+
PiBub25FeHRlbnNpb25DdWVzOworICAgICAgICAgICAgICAgIFZlY3RvcjxSZWY8R2VuZXJpY0N1
ZURhdGE+PiBub25FeHRlbnNpb25DdWVzOwogICAgICAgICAgICAgICAgIGZvciAoYXV0byYgYXJy
aXZpbmdDdWUgOiBhcnJpdmluZ0N1ZXMpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFhcnJp
dmluZ0N1ZS0+ZG9lc0V4dGVuZEN1ZURhdGEoKmN1ZURhdGEpKQotICAgICAgICAgICAgICAgICAg
ICAgICAgbm9uRXh0ZW5zaW9uQ3Vlcy5hcHBlbmQoYXJyaXZpbmdDdWUpOworICAgICAgICAgICAg
ICAgICAgICAgICAgbm9uRXh0ZW5zaW9uQ3Vlcy5hcHBlbmQoV1RGTW92ZShhcnJpdmluZ0N1ZSkp
OwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBMT0co
TWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlKCVwKSAtIGZvdW5k
IGFuIGV4dGVuc2lvbiBjdWUgKFwiJXNcIikgZm9yIHRpbWUgPSAlLjJmLCBlbmQgPSAlLjJmLCBw
b3NpdGlvbiA9ICAlLjJmLCBsaW5lID0gICUuMmYiLCB0aGlzLCBhcnJpdmluZ0N1ZS0+Y29udGVu
dCgpLnV0ZjgoKS5kYXRhKCksIGFycml2aW5nQ3VlLT5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBh
cnJpdmluZ0N1ZS0+ZW5kVGltZSgpLnRvRG91YmxlKCksIGFycml2aW5nQ3VlLT5wb3NpdGlvbigp
LCBhcnJpdmluZ0N1ZS0+bGluZSgpKTsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
ICAgICBib29sIGN1cnJlbnRDdWVJc0V4dGVuZGVkID0gKGFycml2aW5nQ3Vlcy5zaXplKCkgIT0g
bm9uRXh0ZW5zaW9uQ3Vlcy5zaXplKCkpOwogCi0gICAgICAgICAgICAgICAgYXJyaXZpbmdDdWVz
ID0gbm9uRXh0ZW5zaW9uQ3VlczsKKyAgICAgICAgICAgICAgICBhcnJpdmluZ0N1ZXMgPSBXVEZN
b3ZlKG5vbkV4dGVuc2lvbkN1ZXMpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
IGlmIChjdXJyZW50Q3VlSXNFeHRlbmRlZCkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CkBAIC0zODAsNyArMzc0LDcgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9j
ZXNzQXR0cmlidXRlZFN0cmluZ3MoQ0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3QKICAgICAgICAgICAg
ICAgICAgICAgY3VlRGF0YS0+c2V0U3RhdHVzKEdlbmVyaWNDdWVEYXRhOjpDb21wbGV0ZSk7CiAK
ICAgICAgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFW
Rjo6cHJvY2Vzc0N1ZSglcCkgLSB1cGRhdGluZyBjdWUgXCIlc1wiOiBzdGFydD0lLjJmLCBlbmQ9
JS4yZiIsIHRoaXMsIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLT5z
dGFydFRpbWUoKS50b0RvdWJsZSgpLCBtX2N1cnJlbnRDdWVFbmRUaW1lLnRvRG91YmxlKCkpOwot
ICAgICAgICAgICAgICAgICAgICBjbGllbnQoKS0+dXBkYXRlR2VuZXJpY0N1ZSh0aGlzLCBjdWVE
YXRhLmdldCgpKTsKKyAgICAgICAgICAgICAgICAgICAgY2xpZW50KCktPnVwZGF0ZUdlbmVyaWND
dWUoKmN1ZURhdGEpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAg
ICAgIC8vIFdlIGhhdmUgdG8gYXNzdW1lIHRoYXQgdGhlIGltcGxpY2l0IGR1cmF0aW9uIGlzIGlu
dmFsaWQgZm9yIGN1ZXMgZGVsaXZlcmVkIGR1cmluZyBhIHNlZWsgYmVjYXVzZSB0aGUgQVZGIGRl
Y29kZSBwaXBlbGluZSBtYXkgbm90CiAgICAgICAgICAgICAgICAgICAgIC8vIHNlZSBldmVyeSBj
dWUsIHNvIERPIE5PVCB1cGRhdGUgY3VlIGR1cmF0aW9uIHdoaWxlIHNlZWtpbmcuCkBAIC0zOTks
MTIgKzM5MywxMSBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRy
aWJ1dGVkU3RyaW5ncyhDRkFycmF5UmVmIGF0dHJpYnV0ZWRTdAogICAgIG1fY3VycmVudEN1ZVN0
YXJ0VGltZSA9IHRpbWU7CiAKICAgICBmb3IgKGF1dG8mIGN1ZURhdGEgOiBhcnJpdmluZ0N1ZXMp
IHsKLQotICAgICAgICBtX2N1ZXMuYXBwZW5kKGN1ZURhdGEpOworICAgICAgICBtX2N1ZXMuYXBw
ZW5kKGN1ZURhdGEucHRyKCkpOwogICAgICAgICAKICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSglcCkgLSBhZGRpbmcgY3VlIFwiJXNcIiBm
b3IgdGltZSA9ICUuMmYsIGVuZCA9ICUuMmYsIHBvc2l0aW9uID0gICUuMmYsIGxpbmUgPSAgJS4y
ZiIsIHRoaXMsIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLT5zdGFy
dFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLT5lbmRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0
YS0+cG9zaXRpb24oKSwgY3VlRGF0YS0+bGluZSgpKTsKIAotICAgICAgICBjbGllbnQoKS0+YWRk
R2VuZXJpY0N1ZSh0aGlzLCBXVEZNb3ZlKGN1ZURhdGEpKTsKKyAgICAgICAgY2xpZW50KCktPmFk
ZEdlbmVyaWNDdWUoV1RGTW92ZShjdWVEYXRhKSk7CiAgICAgfQogCiAgICAgbV9wZW5kaW5nQ3Vl
U3RhdHVzID0gc2Vla2luZygpID8gRGVsaXZlcmVkRHVyaW5nU2VlayA6IFZhbGlkOwpAQCAtNDUx
LDkgKzQ0NCw5IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cmVzZXRDdWVWYWx1
ZXMoKQogICAgIGlmIChtX2N1cnJlbnRDdWVFbmRUaW1lICYmIG1fY3Vlcy5zaXplKCkpCiAgICAg
ICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnJlc2V0Q3VlVmFsdWVz
IGZsdXNoaW5nIGRhdGEgZm9yIGN1ZXM6IHN0YXJ0PSVzXG4iLCB0b1N0cmluZyhtX2N1cnJlbnRD
dWVTdGFydFRpbWUpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgaWYgKGNsaWVudCgpKSB7Ci0gICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jdWVzLnNpemUoKTsgaSsrKQotICAgICAgICAg
ICAgY2xpZW50KCktPnJlbW92ZUdlbmVyaWNDdWUodGhpcywgbV9jdWVzW2ldLmdldCgpKTsKKyAg
ICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpIHsKKyAgICAgICAgZm9yIChhdXRv
JiBjdWUgOiBtX2N1ZXMpCisgICAgICAgICAgICBjbGllbnQtPnJlbW92ZUdlbmVyaWNDdWUoKmN1
ZSk7CiAgICAgfQogCiAgICAgbV9jdWVzLnJlc2l6ZSgwKTsKQEAgLTUwOSw3ICs1MDIsNyBAQCB2
b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NOYXRpdmVTYW1wbGVzKENGQXJy
YXlSZWYgbmF0aXZlU2FtcGxlcywgYwogICAgICAgICAgICAgTE9HKE1lZGlhLCAiICAgIGlkID0g
XCIlc1wiLCBzZXR0aW5ncyA9IFwiJXNcIiwgY3VlIHRleHQgPSBcIiVzXCIiLCBjdWVEYXRhLmlk
KCkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS5zZXR0aW5ncygpLnV0ZjgoKS5kYXRhKCksIGN1ZURh
dGEuY3VlVGV4dCgpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgTE9HKE1lZGlhLCAiICAg
IHNvdXJjZUlEID0gXCIlc1wiLCBvcmlnaW5hbFN0YXJ0VGltZSA9IFwiJXNcIiIsIGN1ZURhdGEu
c291cmNlSUQoKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLm9yaWdpbmFsU3RhcnRUaW1lKCkudXRm
OCgpLmRhdGEoKSk7CiAKLSAgICAgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEN1ZURhdGEo
dGhpcywgY3VlRGF0YSk7CisgICAgICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRDdWVEYXRh
KGN1ZURhdGEpOwogICAgICAgICB9CiAKICAgICAgICAgZG8gewpAQCAtNTQyLDcgKzUzNSw3IEBA
IHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc05hdGl2ZVNhbXBsZXMoQ0ZB
cnJheVJlZiBuYXRpdmVTYW1wbGVzLCBjCiAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kKCJcblxu
Iik7CiAKICAgICAgICAgICAgIExPRyhNZWRpYSwgIiAgICB2dHQgaGVhZGVyID0gXG4lcyIsIGhl
YWRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgY2xpZW50KCktPnBh
cnNlV2ViVlRURmlsZUhlYWRlcih0aGlzLCBoZWFkZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAg
ICBjbGllbnQoKS0+cGFyc2VXZWJWVFRGaWxlSGVhZGVyKGhlYWRlci50b1N0cmluZygpKTsKICAg
ICAgICAgICAgIG1faGF2ZVJlcG9ydGVkVlRUSGVhZGVyID0gdHJ1ZTsKICAgICAgICAgfSB3aGls
ZSAoMCk7CiAKQEAgLTU1NSw3ICs1NDgsNyBAQCBib29sIEluYmFuZFRleHRUcmFja1ByaXZhdGVB
VkY6OnJlYWROYXRpdmVTYW1wbGVCdWZmZXIoQ0ZBcnJheVJlZiBuYXRpdmVTYW1wbGVzLAogI2lm
IE9TKFdJTkRPV1MpICYmIEhBVkUoQVZDRlBMQVlFUklURU1fQ0FMTEJBQ0tfVkVSU0lPTl8yKQog
ICAgIHJldHVybiBmYWxzZTsKICNlbHNlCi0gICAgQ01TYW1wbGVCdWZmZXJSZWYgY29uc3Qgc2Ft
cGxlQnVmZmVyID0gcmVpbnRlcnByZXRfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oY29uc3RfY2Fz
dDx2b2lkKj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChuYXRpdmVTYW1wbGVzLCBpbmRleCkpKTsK
KyAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSByZWludGVycHJldF9jYXN0PENN
U2FtcGxlQnVmZmVyUmVmPihjb25zdF9jYXN0PHZvaWQqPihDRkFycmF5R2V0VmFsdWVBdEluZGV4
KG5hdGl2ZVNhbXBsZXMsIGluZGV4KSkpOwogICAgIGlmICghc2FtcGxlQnVmZmVyKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9WaWRlb1RyYWNrUHJpdmF0ZUFWRi5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1ZpZGVvVHJhY2tQcml2YXRlQVZGLmgK
aW5kZXggODU4ZjQxYzYxOGVhZjc5NGUzZTY1MWQwNDE2YTA1MGVkZjE4YTVhYi4uYTNmMGY0ZWNh
MDU3M2RkODJmYjk0N2Y0YjlmOWYwNzFhMGYzYzJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1ZpZGVvVHJhY2tQcml2YXRlQVZGLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1ZpZGVv
VHJhY2tQcml2YXRlQVZGLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
My0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgVmlkZW9UcmFja1ByaXZhdGVBVkZfaAotI2RlZmlu
ZSBWaWRlb1RyYWNrUHJpdmF0ZUFWRl9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKIApAQCAtMzUsNyArMzQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBW
aWRlb1RyYWNrUHJpdmF0ZUFWRiA6IHB1YmxpYyBWaWRlb1RyYWNrUHJpdmF0ZSB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoVmlkZW9UcmFja1ByaXZhdGVBVkYpCiBwdWJsaWM6Ci0KICAgICBp
bnQgdHJhY2tJbmRleCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faW5kZXg7IH0KICAgICBL
aW5kIGtpbmQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2tpbmQ7IH0KICAgICBBdG9taWNT
dHJpbmcgaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lkOyB9CkBAIC00NCwyNiArNDIs
MjAgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRLaW5kKEtpbmQga2luZCkg
eyBtX2tpbmQgPSBraW5kOyB9Ci0gICAgdm9pZCBzZXRJZChBdG9taWNTdHJpbmcgbmV3SWQpIHsg
bV9pZCA9IG5ld0lkOyB9Ci0gICAgdm9pZCBzZXRMYWJlbChBdG9taWNTdHJpbmcgbGFiZWwpIHsg
bV9sYWJlbCA9IGxhYmVsOyB9Ci0gICAgdm9pZCBzZXRMYW5ndWFnZShBdG9taWNTdHJpbmcgbGFu
Z3VhZ2UpIHsgbV9sYW5ndWFnZSA9IGxhbmd1YWdlOyB9CisgICAgdm9pZCBzZXRJZChjb25zdCBB
dG9taWNTdHJpbmcmIG5ld0lkKSB7IG1faWQgPSBuZXdJZDsgfQorICAgIHZvaWQgc2V0TGFiZWwo
Y29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkgeyBtX2xhYmVsID0gbGFiZWw7IH0KKyAgICB2b2lk
IHNldExhbmd1YWdlKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpIHsgbV9sYW5ndWFnZSA9
IGxhbmd1YWdlOyB9CiAgICAgdm9pZCBzZXRUcmFja0luZGV4KGludCBpbmRleCkgeyBtX2luZGV4
ID0gaW5kZXg7IH0KIAotICAgIEtpbmQgbV9raW5kOworICAgIEtpbmQgbV9raW5kIHsgTm9uZSB9
OwogICAgIEF0b21pY1N0cmluZyBtX2lkOwogICAgIEF0b21pY1N0cmluZyBtX2xhYmVsOwogICAg
IEF0b21pY1N0cmluZyBtX2xhbmd1YWdlOwotICAgIGludCBtX2luZGV4OworICAgIGludCBtX2lu
ZGV4IHsgMCB9OwogCi0gICAgVmlkZW9UcmFja1ByaXZhdGVBVkYoKQotICAgICAgICA6IG1fa2lu
ZChOb25lKQotICAgICAgICAsIG1faW5kZXgoMCkKLSAgICB7Ci0gICAgfQorICAgIFZpZGVvVHJh
Y2tQcml2YXRlQVZGKCkgPSBkZWZhdWx0OwogfTsKIAogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJ
REVPX1RSQUNLKQotCi0jZW5kaWYgLy8gVmlkZW9UcmFja1ByaXZhdGVBVkZfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVk
aW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuY3BwCmluZGV4IGZlOTM0NGI2MzFmMDM1ZjllZGU3MzU3NDQwN2YzNDM5YWEy
NGU1MDIuLmVjMGQwZWRkYmY3M2JlZWRhNjcxN2I3YTUxOGM3MzIxMjYwOTVhZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsOCArMzYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBB
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaywgU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakMqIHBhcmVudCkKICAgICA6IG1faW1wbChzdGQ6Om1ha2VfdW5pcXVlPEFWVHJhY2tQcml2
YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKICAgICAsIG1fcGFyZW50KHBhcmVudCkKLSAgICAsIG1f
dHJhY2tJRCgtMSkKLSAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKICAgICByZXNldFByb3BlcnRp
ZXNGcm9tVHJhY2soKTsKIH0KQEAgLTYzLDE3ICs2MSwxMiBAQCBBVkFzc2V0VHJhY2sqIEF1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphc3NldFRyYWNrKCkKICAgICByZXR1cm4g
bV9pbXBsLT5hc3NldFRyYWNrKCk7CiB9CiAKLWJvb2wgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OmVuYWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX2VuYWJsZWQ7Ci19
Ci0KIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEVuYWJsZWQo
Ym9vbCBlbmFibGVkKQogewotICAgIGlmIChtX2VuYWJsZWQgPT0gZW5hYmxlZCkKKyAgICBpZiAo
ZW5hYmxlZCA9PSB0aGlzLT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZW5h
YmxlZCA9IGVuYWJsZWQ7CisgICAgQXVkaW9UcmFja1ByaXZhdGVBVkY6OnNldEVuYWJsZWQoZW5h
YmxlZCk7CiAgICAgbV9wYXJlbnQtPnRyYWNrRGlkQ2hhbmdlRW5hYmxlZCh0aGlzKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggYmJlODljZGRhMTNiMDgyZGNmODNmMDI1ZmNjODVj
NDI4ZmRjOTE0Ny4uMjEyODcyMTRhM2JmNWNlMTQwODA0NTUwZDlhZWVjMzhhMzA2MTFhOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDE1ICsyMywxMyBAQAogICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAg
Ki8KIAotI2lmbmRlZiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQ19oCi0jZGVm
aW5lIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDX2gKKyNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVBVkYuaCIKIAogI2lmIEVOQUJMRShNRURJQV9T
T1VSQ0UpICYmIEVOQUJMRShWSURFT19UUkFDSykKIAogT0JKQ19DTEFTUyBBVkFzc2V0VHJhY2s7
Ci1PQkpDX0NMQVNTIEFWUGxheWVySXRlbVRyYWNrOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTQxLDEzICszOSwxMiBAQCBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzsKIGNs
YXNzIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDIGZpbmFsIDogcHVibGljIEF1
ZGlvVHJhY2tQcml2YXRlQVZGIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQykKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPiBjcmVhdGUoQVZBc3NldFRyYWNrKiB0
cmFjaywgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIHBhcmVudCkKKyAgICBzdGF0aWMgUmVm
UHRyPEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPiBjcmVhdGUoQVZBc3NldFRy
YWNrICp0cmFjaywgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIHBhcmVudCkKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakModHJhY2ssIHBhcmVudCkpOwogICAgIH0KIAotICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0
IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0RW5hYmxlZChib29sKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNldEVuYWJsZWQoYm9vbCkgZmluYWw7CiAKICAgICB2b2lkIHNldEFzc2V0VHJhY2soQVZBc3Nl
dFRyYWNrKik7CiAgICAgQVZBc3NldFRyYWNrKiBhc3NldFRyYWNrKCk7CkBAIC02MiwxMSArNTks
OCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJ
bXBsPiBtX2ltcGw7CiAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIG1fcGFyZW50Owog
ICAgIGludCBtX3RyYWNrSUQ7Ci0gICAgYm9vbCBtX2VuYWJsZWQ7CiB9OwogCiB9CiAKICNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCi0KLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IGQ0YzQ2MWQ4OGJmNWY3MmNmYWQ5OWM5
ZWM4ZGRmZTUwNjQxNGYwYzEuLmY2N2E4N2Q2Y2RkZjViYjJhNjE3ZTI0YmRhMTBmYjYwOGY4ZThk
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEzLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNiArMzEsNyBAQAogI2lt
cG9ydCAiQVZGb3VuZGF0aW9uU1BJLmgiCiAjaW1wb3J0ICJBdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtLmgiCiAjaW1wb3J0ICJDbG9jay5oIgorI2ltcG9ydCAiQ29yZU1lZGlhU29mdExpbmsu
aCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2lt
cG9ydCAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCkBAIC00OSw4ICs1MCw2IEBACiAKICNwcmFnbWEg
bWFyayAtIFNvZnQgTGlua2luZwogCi0jaW1wb3J0ICJDb3JlTWVkaWFTb2Z0TGluay5oIgotCiBT
T0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAogU09GVF9MSU5LX0NM
QVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpCkBA
IC0zODAsMTAgKzM3OSwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6cGxheSgpCiAjZW5kaWYKIAogICAgIGZvciAoY29uc3QgYXV0byYgdHJhY2sgOiBtX2F1
ZGlvVHJhY2tNYXAudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgpIHx8
ICF0cmFjay0+c3RyZWFtVHJhY2soKS0+cHJldmlldygpKQorICAgICAgICBpZiAoIXRyYWNrLT5l
bmFibGVkKCkgfHwgIXRyYWNrLT5zdHJlYW1UcmFjaygpLnByZXZpZXcoKSkKICAgICAgICAgICAg
IGNvbnRpbnVlOwogCi0gICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLT5wcmV2aWV3KCktPnBs
YXkoKTsKKyAgICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCkucHJldmlldygpLT5wbGF5KCk7CiAg
ICAgfQogCiAgICAgbV9oYXZlRXZlclBsYXllZCA9IHRydWU7CkBAIC00MTEsMTAgKzQxMCwxMCBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2UoKQogI2Vu
ZGlmCiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIHRyYWNrIDogbV9hdWRpb1RyYWNrTWFwLnZhbHVl
cygpKSB7Ci0gICAgICAgIGlmICghdHJhY2stPmVuYWJsZWQoKSB8fCAhdHJhY2stPnN0cmVhbVRy
YWNrKCktPnByZXZpZXcoKSkKKyAgICAgICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgpIHx8ICF0cmFj
ay0+c3RyZWFtVHJhY2soKS5wcmV2aWV3KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAg
ICAgICB0cmFjay0+c3RyZWFtVHJhY2soKS0+cHJldmlldygpLT5wYXVzZSgpOworICAgICAgICB0
cmFjay0+c3RyZWFtVHJhY2soKS5wcmV2aWV3KCktPnBhdXNlKCk7CiAgICAgfQogCiAgICAgdXBk
YXRlRGlzcGxheU1vZGUoKTsKQEAgLTQzNSwxMCArNDM0LDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppbnRlcm5hbFNldFZvbHVtZShmbG9hdCB2b2x1bWUs
IGJvb2wKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChjb25zdCBhdXRvJiB0cmFjayA6IG1f
YXVkaW9UcmFja01hcC52YWx1ZXMoKSkgewotICAgICAgICBpZiAoIXRyYWNrLT5lbmFibGVkKCkg
fHwgIXRyYWNrLT5zdHJlYW1UcmFjaygpLT5wcmV2aWV3KCkpCisgICAgICAgIGlmICghdHJhY2st
PmVuYWJsZWQoKSB8fCAhdHJhY2stPnN0cmVhbVRyYWNrKCkucHJldmlldygpKQogICAgICAgICAg
ICAgY29udGludWU7CiAKLSAgICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCktPnByZXZpZXcoKS0+
c2V0Vm9sdW1lKHZvbHVtZSk7CisgICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLnByZXZpZXco
KS0+c2V0Vm9sdW1lKHZvbHVtZSk7CiAgICAgfQogfQogCkBAIC02MTcsNiArNjE2LDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNhbXBsZUJ1ZmZlclVwZGF0
ZWQoTWVkaWFTdHJlYW1UcmFja1AKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9G
dWxsc2NyZWVuTGF5ZXIsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVu
TGF5ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIsIGNvbXBsZXRpb25IYW5kbGVyKTsKQEAgLTYyNiw2
ICs2MjYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0
VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IGZyYQogewogICAgIG1fdmlkZW9GdWxsc2Ny
ZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShmcmFtZSk7CiB9CisKICNl
bmRpZgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgUmVmVCwgdHlwZW5hbWUgUGFzc1JlZlQ+CkBAIC02
NDQsMTIgKzY0NSwxMiBAQCB2b2lkIHVwZGF0ZVRyYWNrc09mVHlwZShIYXNoTWFwPFN0cmluZywg
UmVmVD4mIHRyYWNrTWFwLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeQogICAgIH0KIAogICAgIGZv
ciAoY29uc3QgYXV0byYgdHJhY2sgOiB0cmFja01hcC52YWx1ZXMoKSkgewotICAgICAgICBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSogc3RyZWFtVHJhY2sgPSB0cmFjay0+c3RyZWFtVHJhY2soKTsK
LSAgICAgICAgaWYgKGN1cnJlbnRUcmFja3MuY29udGFpbnMoc3RyZWFtVHJhY2spKQorICAgICAg
ICBhdXRvJiBzdHJlYW1UcmFjayA9IHRyYWNrLT5zdHJlYW1UcmFjaygpOworICAgICAgICBpZiAo
Y3VycmVudFRyYWNrcy5jb250YWlucygmc3RyZWFtVHJhY2spKQogICAgICAgICAgICAgY29udGlu
dWU7CiAKICAgICAgICAgcmVtb3ZlZFRyYWNrcy5hcHBlbmQodHJhY2spOwotICAgICAgICB0cmFj
a01hcC5yZW1vdmUoc3RyZWFtVHJhY2stPmlkKCkpOworICAgICAgICB0cmFja01hcC5yZW1vdmUo
c3RyZWFtVHJhY2suaWQoKSk7CiAgICAgfQogCiAgICAgZm9yIChhdXRvJiB0cmFjayA6IGFkZGVk
UHJpdmF0ZVRyYWNrcykgewpAQCAtNjY0LDEyICs2NjUsMTIgQEAgdm9pZCB1cGRhdGVUcmFja3NP
ZlR5cGUoSGFzaE1hcDxTdHJpbmcsIFJlZlQ+JiB0cmFja01hcCwgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHkKIAogICAgIGZvciAoYXV0byYgdHJhY2sgOiByZW1vdmVkVHJhY2tzKSB7CiAgICAgICAg
IChwbGF5ZXItPipyZW1vdmVkRnVuY3Rpb24pKCp0cmFjayk7Ci0gICAgICAgIHRyYWNrLT5zdHJl
YW1UcmFjaygpLT5yZW1vdmVPYnNlcnZlcigqdHJhY2tPYnNlcnZlcik7CisgICAgICAgIHRyYWNr
LT5zdHJlYW1UcmFjaygpLnJlbW92ZU9ic2VydmVyKCp0cmFja09ic2VydmVyKTsKICAgICB9CiAK
ICAgICBmb3IgKGF1dG8mIHRyYWNrIDogYWRkZWRUcmFja3MpIHsKICAgICAgICAgKHBsYXllci0+
KmFkZGVkRnVuY3Rpb24pKCp0cmFjayk7Ci0gICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLT5h
ZGRPYnNlcnZlcigqdHJhY2tPYnNlcnZlcik7CisgICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygp
LmFkZE9ic2VydmVyKCp0cmFja09ic2VydmVyKTsKICAgICB9CiB9CiAKQEAgLTY4MCwxNCArNjgx
LDE0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVU
cmFja3MoKQogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVN0cmVhbT4sIGludCk+IGVuYWJsZUF1ZGlvVHJhY2sgPSBbdGhpc10oYXV0byB0cmFjaywg
aW50IGluZGV4KQogICAgIHsKICAgICAgICAgdHJhY2stPnNldFRyYWNrSW5kZXgoaW5kZXgpOwot
ICAgICAgICB0cmFjay0+c2V0RW5hYmxlZCh0cmFjay0+c3RyZWFtVHJhY2soKS0+ZW5hYmxlZCgp
ICYmICF0cmFjay0+c3RyZWFtVHJhY2soKS0+bXV0ZWQoKSk7CisgICAgICAgIHRyYWNrLT5zZXRF
bmFibGVkKHRyYWNrLT5zdHJlYW1UcmFjaygpLmVuYWJsZWQoKSAmJiAhdHJhY2stPnN0cmVhbVRy
YWNrKCkubXV0ZWQoKSk7CiAgICAgfTsKICAgICB1cGRhdGVUcmFja3NPZlR5cGUobV9hdWRpb1Ry
YWNrTWFwLCBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbywgY3VycmVudFRyYWNrcywgJkF1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OmNyZWF0ZSwgbV9wbGF5ZXIsICZNZWRpYVBsYXllcjo6
cmVtb3ZlQXVkaW9UcmFjaywgJk1lZGlhUGxheWVyOjphZGRBdWRpb1RyYWNrLCBlbmFibGVBdWRp
b1RyYWNrLCAoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyKikgdGhpcyk7CiAKICAg
ICBzdGQ6OmZ1bmN0aW9uPHZvaWQoUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0+
LCBpbnQpPiBlbmFibGVWaWRlb1RyYWNrID0gW3RoaXNdKGF1dG8gdHJhY2ssIGludCBpbmRleCkK
ICAgICB7CiAgICAgICAgIHRyYWNrLT5zZXRUcmFja0luZGV4KGluZGV4KTsKLSAgICAgICAgYm9v
bCBzZWxlY3RlZCA9IHRyYWNrLT5zdHJlYW1UcmFjaygpID09IG1fbWVkaWFTdHJlYW1Qcml2YXRl
LT5hY3RpdmVWaWRlb1RyYWNrKCk7CisgICAgICAgIGJvb2wgc2VsZWN0ZWQgPSAmdHJhY2stPnN0
cmVhbVRyYWNrKCkgPT0gbV9tZWRpYVN0cmVhbVByaXZhdGUtPmFjdGl2ZVZpZGVvVHJhY2soKTsK
ICAgICAgICAgdHJhY2stPnNldFNlbGVjdGVkKHNlbGVjdGVkKTsKIAogICAgICAgICBpZiAoc2Vs
ZWN0ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMuaAppbmRleCAxZjc1ODJlMThiYjY4Y2NiOGMwNjU3NmY0MGMxYzE5NTM3ZmE3ZTdh
Li4zZTViYzgxY2E2Mzk4YjJhNDliYTg3OTFlYTNlMmRlMWUzZmQyNzM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
Myw4ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0jaWZuZGVmIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDX2gKLSNkZWZpbmUgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakNfaAor
I3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFU
SU9OKQogCkBAIC0xMTQsMTggKzExMywxOCBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDKE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMqKTsKIAogICAg
IC8vIFNvdXJjZUJ1ZmZlclByaXZhdGUgb3ZlcnJpZGVzCi0gICAgdm9pZCBzZXRDbGllbnQoU291
cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwotICAgIHZvaWQgYXBwZW5kKGNvbnN0
IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBhYm9ydCgpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzZXRQYXJzZXJTdGF0ZSgpIG92ZXJyaWRl
OwotICAgIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpIG92ZXJyaWRlOwotICAgIE1lZGlh
UGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lk
IHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpIG92ZXJyaWRlOwotICAgIHZv
aWQgZmx1c2goQXRvbWljU3RyaW5nIHRyYWNrSUQpIG92ZXJyaWRlOwotICAgIHZvaWQgZW5xdWV1
ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiwgQXRvbWljU3RyaW5nIHRyYWNrSUQpIG92
ZXJyaWRlOwotICAgIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZyB0cmFj
a0lEKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldEFjdGl2ZShib29sKSBvdmVycmlkZTsKLSAgICB2
b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZyB0cmFj
a0lEKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldENsaWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xp
ZW50KikgZmluYWw7CisgICAgdm9pZCBhcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwg
dW5zaWduZWQgbGVuZ3RoKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KCkgZmluYWw7CisgICAgdm9p
ZCByZXNldFBhcnNlclN0YXRlKCkgZmluYWw7CisgICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291
cmNlKCkgZmluYWw7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNv
bnN0IGZpbmFsOworICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0
ZSkgZmluYWw7CisgICAgdm9pZCBmbHVzaChjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpIGZp
bmFsOworICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYsIGNvbnN0IEF0
b21pY1N0cmluZyYgdHJhY2tJRCkgZmluYWw7CisgICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBs
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKSBmaW5hbDsKKyAgICB2b2lkIHNldEFjdGl2
ZShib29sKSBmaW5hbDsKKyAgICB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1w
bGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkgZmluYWw7CiAKICAgICB2b2lkIGRpZEJl
Y29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoaW50IHRyYWNrSUQpOwogICAgIHZvaWQgYXBwZW5kQ29t
cGxldGVkKCk7CkBAIC0xNTUsMjEgKzE1NCwxOSBAQCBwcml2YXRlOgogICAgIE9TT2JqZWN0UHRy
PGRpc3BhdGNoX2dyb3VwX3Q+IG1faXNBcHBlbmRpbmdHcm91cDsKIAogICAgIE1lZGlhU291cmNl
UHJpdmF0ZUFWRk9iakMqIG1fbWVkaWFTb3VyY2U7Ci0gICAgU291cmNlQnVmZmVyUHJpdmF0ZUNs
aWVudCogbV9jbGllbnQ7CisgICAgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCogbV9jbGllbnQg
eyBudWxscHRyIH07CiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAgICAgQ0RN
U2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyogbV9zZXNzaW9uIHsgbnVsbHB0ciB9OwogI2VuZGlm
CiAKICAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0U2l6ZT4gbV9jYWNoZWRTaXplOwogICAgIEZsb2F0
U2l6ZSBtX2N1cnJlbnRTaXplOwotICAgIGJvb2wgbV9wYXJzaW5nU3VjY2VlZGVkOworICAgIGJv
b2wgbV9wYXJzaW5nU3VjY2VlZGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9wYXJzZXJTdGF0ZVdh
c1Jlc2V0IHsgZmFsc2UgfTsKLSAgICBpbnQgbV9lbmFibGVkVmlkZW9UcmFja0lEOwotICAgIGlu
dCBtX3Byb3RlY3RlZFRyYWNrSUQ7CisgICAgaW50IG1fZW5hYmxlZFZpZGVvVHJhY2tJRCB7IC0x
IH07CisgICAgaW50IG1fcHJvdGVjdGVkVHJhY2tJRCB7IC0xIH07CiB9OwogCiB9CiAKICNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotCi0jZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMubW0KaW5kZXggM2IwZDY4Y2MyYmYyZDIyYjc4YjM5MmJmMzgyOGZlNjEzOGU5YjAxOC4uZTdi
MWIyMDc0ZGEzMzIzMjFmZjgwOGRmNjgzMzMyMDVhY2U2MjQyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNTEs
MTAgKzE1MSw3IEBAIC0gKHZvaWQpaW52YWxpZGF0ZQogCiAtICh2b2lkKXN0cmVhbURhdGFQYXJz
ZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkUGFyc2VTdHJlYW1E
YXRhQXNBc3NldDooQVZBc3NldCAqKWFzc2V0CiB7Ci0jaWYgQVNTRVJUX0RJU0FCTEVECi0gICAg
VU5VU0VEX1BBUkFNKHN0cmVhbURhdGFQYXJzZXIpOwotI2VuZGlmCi0gICAgQVNTRVJUKHN0cmVh
bURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CisgICAgQVNTRVJUX1VOVVNFRChzdHJlYW1EYXRhUGFy
c2VyLCBzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwogCiAgICAgUmV0YWluUHRyPEFWQXNz
ZXQqPiBwcm90ZWN0ZWRBc3NldCA9IGFzc2V0OwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3BhcmVu
dCA9IF9wYXJlbnQsIHByb3RlY3RlZEFzc2V0ID0gV1RGTW92ZShwcm90ZWN0ZWRBc3NldCldIHsK
QEAgLTE2NiwxMCArMTYzLDcgQEAgLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURh
dGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFBhcnNlU3RyZWFtRGEKIC0gKHZvaWQpc3Ry
ZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRQ
YXJzZVN0cmVhbURhdGFBc0Fzc2V0OihBVkFzc2V0ICopYXNzZXQgd2l0aERpc2NvbnRpbnVpdHk6
KEJPT0wpZGlzY29udGludWl0eQogewogICAgIFVOVVNFRF9QQVJBTShkaXNjb250aW51aXR5KTsK
LSNpZiBBU1NFUlRfRElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7
Ci0jZW5kaWYKLSAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBB
U1NFUlRfVU5VU0VEKHN0cmVhbURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNl
cik7CiAKICAgICBSZXRhaW5QdHI8QVZBc3NldCo+IHByb3RlY3RlZEFzc2V0ID0gYXNzZXQ7CiAg
ICAgY2FsbE9uTWFpblRocmVhZChbcGFyZW50ID0gX3BhcmVudCwgcHJvdGVjdGVkQXNzZXQgPSBX
VEZNb3ZlKHByb3RlY3RlZEFzc2V0KV0gewpAQCAtMTgwLDEwICsxNzQsNyBAQCAtICh2b2lkKXN0
cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlk
UGFyc2VTdHJlYW1EYQogCiAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBh
cnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkRmFpbFRvUGFyc2VTdHJlYW1EYXRhV2l0aEVycm9y
OihOU0Vycm9yICopZXJyb3IKIHsKLSNpZiBBU1NFUlRfRElTQUJMRUQKLSAgICBVTlVTRURfUEFS
QU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5kaWYKLSAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNl
ciA9PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN0cmVhbURhdGFQYXJzZXIsIHN0cmVh
bURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKICAgICBSZXRhaW5QdHI8TlNFcnJvcj4gcHJvdGVj
dGVkRXJyb3IgPSBlcnJvcjsKICAgICBjYWxsT25NYWluVGhyZWFkKFtwYXJlbnQgPSBfcGFyZW50
LCBwcm90ZWN0ZWRFcnJvciA9IFdURk1vdmUocHJvdGVjdGVkRXJyb3IpXSB7CkBAIC0xOTQsMTAg
KzE4NSw3IEBAIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICop
c3RyZWFtRGF0YVBhcnNlciBkaWRGYWlsVG9QYXJzZVN0CiAKIC0gKHZvaWQpc3RyZWFtRGF0YVBh
cnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRQcm92aWRlTWVk
aWFEYXRhOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGUgZm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50
VHJhY2tJRCl0cmFja0lEIG1lZGlhVHlwZTooTlNTdHJpbmcgKiluc01lZGlhVHlwZSBmbGFnczoo
QVZTdHJlYW1EYXRhUGFyc2VyT3V0cHV0TWVkaWFEYXRhRmxhZ3MpZmxhZ3MKIHsKLSNpZiBBU1NF
UlRfRElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5kaWYK
LSAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRfVU5V
U0VEKHN0cmVhbURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKICAg
ICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHByb3RlY3RlZFNhbXBsZSA9IHNhbXBsZTsK
ICAgICBTdHJpbmcgbWVkaWFUeXBlID0gbnNNZWRpYVR5cGU7CkBAIC0yMDksMTAgKzE5Nyw3IEBA
IC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0
YVBhcnNlciBkaWRQcm92aWRlTWVkaWFECiAKIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZT
dHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRSZWFjaEVuZE9mVHJhY2tXaXRo
VHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEIG1lZGlhVHlwZTooTlNTdHJpbmcg
Kiluc01lZGlhVHlwZQogewotI2lmIEFTU0VSVF9ESVNBQkxFRAotICAgIFVOVVNFRF9QQVJBTShz
dHJlYW1EYXRhUGFyc2VyKTsKLSNlbmRpZgotICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09
IF9wYXJzZXIpOworICAgIEFTU0VSVF9VTlVTRUQoc3RyZWFtRGF0YVBhcnNlciwgc3RyZWFtRGF0
YVBhcnNlciA9PSBfcGFyc2VyKTsKIAogICAgIFN0cmluZyBtZWRpYVR5cGUgPSBuc01lZGlhVHlw
ZTsKICAgICBjYWxsT25NYWluVGhyZWFkKFtwYXJlbnQgPSBfcGFyZW50LCB0cmFja0lELCBtZWRp
YVR5cGVdIHsKQEAgLTIyMywxMCArMjA4LDcgQEAgLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihB
VlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFJlYWNoRW5kT2ZUcmEKIAog
LSAodm9pZClzdHJlYW1EYXRhUGFyc2VyV2lsbFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRp
YWxpemF0aW9uRGF0YTooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBmb3JU
cmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQKIHsKLSNpZiBBU1NFUlRfRElTQUJM
RUQKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5kaWYKLSAgICBBU1NF
UlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN0cmVh
bURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKICAgICAvLyBXZSBt
dXN0IGNhbGwgc3luY2hyb25vdXNseSB0byB0aGUgbWFpbiB0aHJlYWQsIGFzIHRoZSBBVlN0cmVh
bVNlc3Npb24gbXVzdCBiZSBhc3NvY2lhdGVkCiAgICAgLy8gd2l0aCB0aGUgc3RyZWFtRGF0YVBh
cnNlciBiZWZvcmUgdGhlIGRlbGVnYXRlIG1ldGhvZCByZXR1cm5zLgpAQCAtMjM4LDEwICsyMjAs
NyBAQCAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXJXaWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0
SW5pdGlhbGl6YXRpb25EYXRhOihBVlN0cmVhbQogCiAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6
KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkUHJvdmlkZUNvbnRlbnRL
ZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhOihOU0RhdGEgKilpbml0RGF0YSBmb3JUcmFja0lE
OihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQKIHsKLSNpZiBBU1NFUlRfRElTQUJMRUQKLSAg
ICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5kaWYKLSAgICBBU1NFUlQoc3Ry
ZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN0cmVhbURhdGFQ
YXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKICAgICBPU09iamVjdFB0cjxk
aXNwYXRjaF9zZW1hcGhvcmVfdD4gaGFzU2Vzc2lvblNlbWFwaG9yZSA9IGFkb3B0T1NPYmplY3Qo
ZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKSk7CiAgICAgY2FsbE9uTWFpblRocmVhZChbcGFy
ZW50ID0gX3BhcmVudCwgcHJvdGVjdGVkSW5pdERhdGEgPSBSZXRhaW5QdHI8TlNEYXRhPihpbml0
RGF0YSksIHRyYWNrSUQsIGhhc1Nlc3Npb25TZW1hcGhvcmVdIHsKQEAgLTQ0OSwxMCArNDI4LDYg
QEAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
KE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMKICAgICAsIG1fZXJyb3JMaXN0ZW5lcihhZG9wdE5T
KFtbV2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aFBhcmVudDp0
aGlzXSkpCiAgICAgLCBtX2lzQXBwZW5kaW5nR3JvdXAoYWRvcHRPU09iamVjdChkaXNwYXRjaF9n
cm91cF9jcmVhdGUoKSkpCiAgICAgLCBtX21lZGlhU291cmNlKHBhcmVudCkKLSAgICAsIG1fY2xp
ZW50KDApCi0gICAgLCBtX3BhcnNpbmdTdWNjZWVkZWQodHJ1ZSkKLSAgICAsIG1fZW5hYmxlZFZp
ZGVvVHJhY2tJRCgtMSkKLSAgICAsIG1fcHJvdGVjdGVkVHJhY2tJRCgtMSkKIHsKIH0KIApAQCAt
NTEyLDEwICs0ODcsMTAgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUGFy
c2VTdHJlYW1EYXRhQXNBc3NldChBVkFzc2V0KiBhc3NldCkKICAgICAgICAgbV9tZWRpYVNvdXJj
ZS0+cGxheWVyKCktPmNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsKIAogICAgIGlmIChtX2NsaWVu
dCkKLSAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlh
bGl6YXRpb25TZWdtZW50KHRoaXMsIHNlZ21lbnQpOworICAgICAgICBtX2NsaWVudC0+c291cmNl
QnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoc2VnbWVudCk7CiB9
CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZEZhaWxUb1BhcnNlU3RyZWFt
RGF0YVdpdGhFcnJvcihOU0Vycm9yKiBlcnJvcikKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6OmRpZEZhaWxUb1BhcnNlU3RyZWFtRGF0YVdpdGhFcnJvcihOU0Vycm9yICplcnJvcikK
IHsKICNpZiBMT0dfRElTQUJMRUQKICAgICBVTlVTRURfUEFSQU0oZXJyb3IpOwpAQCAtNTMxLDEw
ICs1MDYsOCBAQCBzdHJ1Y3QgUHJvY2Vzc0NvZGVkRnJhbWVJbmZvIHsKICAgICBjb25zdCBTdHJp
bmcmIG1lZGlhVHlwZTsKIH07CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRp
ZFByb3ZpZGVNZWRpYURhdGFGb3JUcmFja0lEKGludCB0cmFja0lELCBDTVNhbXBsZUJ1ZmZlclJl
ZiBzYW1wbGVCdWZmZXIsIGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlLCB1bnNpZ25lZCBmbGFncykK
K3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVNZWRpYURhdGFGb3JU
cmFja0lEKGludCB0cmFja0lELCBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIGNvbnN0
IFN0cmluZyYgbWVkaWFUeXBlLCB1bnNpZ25lZCkKIHsKLSAgICBVTlVTRURfUEFSQU0oZmxhZ3Mp
OwotCiAgICAgcHJvY2Vzc0NvZGVkRnJhbWUodHJhY2tJRCwgc2FtcGxlQnVmZmVyLCBtZWRpYVR5
cGUpOwogfQogCkBAIC01NDksMTYgKzUyMiwxNCBAQCBib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpwcm9jZXNzQ29kZWRGcmFtZShpbnQgdHJhY2tJRCwgQ01TYW1wbGVCdWZmZXJSZQog
ICAgIGlmIChtX2NsaWVudCkgewogICAgICAgICBSZWY8TWVkaWFTYW1wbGU+IG1lZGlhU2FtcGxl
ID0gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoc2FtcGxlQnVmZmVyLCB0cmFja0lEKTsKICAg
ICAgICAgTE9HKE1lZGlhU291cmNlU2FtcGxlcywgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
Ojpwcm9jZXNzQ29kZWRGcmFtZSglcCkgLSBzYW1wbGUoJXMpIiwgdGhpcywgdG9TdHJpbmcobWVk
aWFTYW1wbGUuZ2V0KCkpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBtX2NsaWVudC0+c291cmNl
QnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUodGhpcywgbWVkaWFTYW1wbGUpOworICAgICAg
ICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUobWVkaWFTYW1w
bGUpOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpkaWRSZWFjaEVuZE9mVHJhY2tXaXRoVHJhY2tJRChpbnQgdHJhY2tJRCwg
Y29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjpkaWRSZWFjaEVuZE9mVHJhY2tXaXRoVHJhY2tJRChpbnQsIGNvbnN0IFN0cmluZyYpCiB7Ci0g
ICAgVU5VU0VEX1BBUkFNKG1lZGlhVHlwZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRyYWNrSUQpOwog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKQEAgLTU5MCw3ICs1NjEsNiBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFs
aXphdGlvbkRhdGFGbwogICAgIGlmICghbV9tZWRpYVNvdXJjZSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgVU5VU0VEX1BBUkFNKHRyYWNrSUQpOwogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVE
X01FRElBKQogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lE
KCVwKSAtIHRyYWNrOiVkIiwgdGhpcywgdHJhY2tJRCk7CiAgICAgbV9wcm90ZWN0ZWRUcmFja0lE
ID0gdHJhY2tJRDsKQEAgLTYwNyw2ICs1NzcsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGbwog
ICAgIH0KICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGluaXREYXRhKTsKKyAgICBVTlVTRURfUEFS
QU0odHJhY2tJRCk7CiAgICAgVU5VU0VEX1BBUkFNKGhhc1Nlc3Npb25TZW1hcGhvcmUpOwogI2Vu
ZGlmCiB9CkBAIC02NTksNyArNjMwLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6YXBwZW5kQ29tcGxldGVkKCkKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNl
dExvYWRpbmdQcm9ncmVzc3NlZCh0cnVlKTsKIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAg
bV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCBtX3BhcnNp
bmdTdWNjZWVkZWQgPyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQg
OiBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKKyAgICAgICAgbV9j
bGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShtX3BhcnNpbmdTdWNjZWVk
ZWQgPyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQgOiBTb3VyY2VC
dWZmZXJQcml2YXRlQ2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6YWJvcnQoKQpAQCAtNzM1LDE4ICs3MDYsMTIgQEAgdm9pZCBTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZSByZWFkeVN0YXQKIAogYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6aGFzVmlk
ZW8oKSBjb25zdAogewotICAgIGlmICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIHJldHVybiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKHRoaXMp
OworICAgIHJldHVybiBtX2NsaWVudCAmJiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhh
c1ZpZGVvKCk7CiB9CiAKIGJvb2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Omhhc0F1ZGlv
KCkgY29uc3QKIHsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyh0aGlzKTsK
KyAgICByZXR1cm4gbV9jbGllbnQgJiYgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNB
dWRpbygpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0cmFja0RpZENo
YW5nZUVuYWJsZWQoVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMqIHRyYWNrKQpA
QCAtODc0LDcgKzgzOSw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmxheWVy
RGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyCiAgICAgaW50IGVycm9y
Q29kZSA9IFtbW2Vycm9yIHVzZXJJbmZvXSB2YWx1ZUZvcktleTpAIk9TU3RhdHVzIl0gaW50VmFs
dWVdOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVy
UHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcih0aGlzLCBlcnJvckNvZGUpOworICAgICAg
ICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihl
cnJvckNvZGUpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJl
ckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKnJlbmRlcmVyLCBO
U0Vycm9yICplcnJvcikKQEAgLTg5NSw3ICs4NjAsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjpyZW5kZXJlckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVu
ZAogICAgICAgICByZXR1cm47CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OmZsdXNoKEF0b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQzo6Zmx1c2goY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewog
ICAgIGludCB0cmFja0lEID0gdHJhY2tJRFN0cmluZy50b0ludCgpOwogICAgIExPRyhNZWRpYVNv
dXJjZSwgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVzaCglcCkgLSB0cmFja0lkOiAl
ZCIsIHRoaXMsIHRyYWNrSUQpOwpAQCAtOTI1LDE5ICs4OTAsMTcgQEAgdm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6Zmx1c2goQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICpyZW5k
ZXJlcikKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZUF1
ZGlvU2FtcGxlKHJlbmRlcmVyLCBmYWxzZSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJwTWVkaWFT
YW1wbGUsIEF0b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25z
dCBBdG9taWNTdHJpbmcmIHRyYWNrSURTdHJpbmcpCiB7CiAgICAgaW50IHRyYWNrSUQgPSB0cmFj
a0lEU3RyaW5nLnRvSW50KCk7CiAgICAgaWYgKHRyYWNrSUQgIT0gbV9lbmFibGVkVmlkZW9UcmFj
a0lEICYmICFtX2F1ZGlvUmVuZGVyZXJzLmNvbnRhaW5zKHRyYWNrSUQpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IG1lZGlhU2FtcGxlID0gcHJwTWVkaWFTYW1w
bGU7Ci0KLSAgICBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBsZSA9IG1lZGlhU2FtcGxlLT5w
bGF0Zm9ybVNhbXBsZSgpOworICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlID0gc2Ft
cGxlLT5wbGF0Zm9ybVNhbXBsZSgpOwogICAgIGlmIChwbGF0Zm9ybVNhbXBsZS50eXBlICE9IFBs
YXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpCiAgICAgICAgIHJldHVybjsKIAotICAg
IExPRyhNZWRpYVNvdXJjZVNhbXBsZXMsICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5x
dWV1ZVNhbXBsZSglcCkgLSBzYW1wbGUoJXMpIiwgdGhpcywgdG9TdHJpbmcoKm1lZGlhU2FtcGxl
KS51dGY4KCkuZGF0YSgpKTsKKyAgICBMT0coTWVkaWFTb3VyY2VTYW1wbGVzLCAiU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoJXApIC0gc2FtcGxlKCVzKSIsIHRoaXMs
IHRvU3RyaW5nKHNhbXBsZS5nZXQoKSkudXRmOCgpLmRhdGEoKSk7CiAKICAgICBpZiAodHJhY2tJ
RCA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQpIHsKICAgICAgICAgQ01Gb3JtYXREZXNjcmlwdGlv
blJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRp
b24ocGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKQEAgLTk1MCwyMiArOTEz
LDIyIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUGFz
c1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJwTWVkaWFTCiAgICAgICAgICAgICAgICAgaWYgKHNpemVX
YXNOdWxsKQogICAgICAgICAgICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2V0
TmF0dXJhbFNpemUoZm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2l6ZVdpbGxDaGFuZ2VBdFRpbWUo
bWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSwgZm9ybWF0U2l6ZSk7CisgICAgICAgICAg
ICAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zaXplV2lsbENoYW5nZUF0VGltZShz
YW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSwgZm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KIAogICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZW5xdWV1ZVNhbXBsZUJ1ZmZlcjpw
bGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXJdOwogICAgICAgICBpZiAobV9tZWRp
YVNvdXJjZSkKLSAgICAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zZXRIYXNBdmFp
bGFibGVWaWRlb0ZyYW1lKCFtZWRpYVNhbXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOworICAgICAg
ICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUo
IXNhbXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8g
cmVuZGVyZXIgPSBtX2F1ZGlvUmVuZGVyZXJzLmdldCh0cmFja0lEKTsKICAgICAgICAgW3JlbmRl
cmVyIGVucXVldWVTYW1wbGVCdWZmZXI6cGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVm
ZmVyXTsKICAgICAgICAgaWYgKG1fbWVkaWFTb3VyY2UpCi0gICAgICAgICAgICBtX21lZGlhU291
cmNlLT5wbGF5ZXIoKS0+c2V0SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUocmVuZGVyZXIuZ2V0KCks
ICFtZWRpYVNhbXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOworICAgICAgICAgICAgbV9tZWRpYVNv
dXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxlKHJlbmRlcmVyLmdldCgp
LCAhc2FtcGxlLT5pc05vbkRpc3BsYXlpbmcoKSk7CiAgICAgfQogfQogCi1ib29sIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRy
YWNrSURTdHJpbmcpCitib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjppc1JlYWR5Rm9y
TW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAgIGlu
dCB0cmFja0lEID0gdHJhY2tJRFN0cmluZy50b0ludCgpOwogICAgIGlmICh0cmFja0lEID09IG1f
ZW5hYmxlZFZpZGVvVHJhY2tJRCkKQEAgLTk4NCw5ICs5NDcsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjpzZXRBY3RpdmUoYm9vbCBpc0FjdGl2ZSkKIAogTWVkaWFUaW1lIFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoTWVkaWFU
aW1lIHRpbWUsIE1lZGlhVGltZSBuZWdhdGl2ZVRocmVzaG9sZCwgTWVkaWFUaW1lIHBvc2l0aXZl
VGhyZXNob2xkKQogewotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgcmV0dXJuIG1fY2xpZW50
LT5zb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRoaXMsIHRpbWUs
IG5lZ2F0aXZlVGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7Ci0gICAgcmV0dXJuIHRpbWU7
CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuIHRpbWU7CisgICAgcmV0dXJuIG1f
Y2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRpbWUs
IG5lZ2F0aXZlVGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7CiB9CiAKIHZvaWQgU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OndpbGxTZWVrKCkKQEAgLTEwMDEsNyArOTY0LDcgQEAgdm9p
ZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6d2lsbFNlZWsoKQogdm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6c2Vla1RvVGltZShNZWRpYVRpbWUgdGltZSkKIHsKICAgICBpZiAo
bV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGlt
ZSh0aGlzLCB0aW1lKTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVTZWVr
VG9UaW1lKHRpbWUpOwogfQogCiBGbG9hdFNpemUgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
Om5hdHVyYWxTaXplKCkKQEAgLTEwMjEsMTAgKzk4NCwxMCBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpkaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKGludCB0cmFja0lEKQog
ICAgIH0KIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKHRoaXMsIEF0b21pY1N0cmluZzo6
bnVtYmVyKHRyYWNrSUQpKTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZzo6bnVtYmVyKHRyYWNrSUQp
KTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6bm90aWZ5Q2xpZW50V2hl
blJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSURTdHJpbmcpCit2b2lkIFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2Ft
cGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSURTdHJpbmcpCiB7CiAgICAgaW50IHRyYWNr
SUQgPSB0cmFja0lEU3RyaW5nLnRvSW50KCk7CiAgICAgaWYgKHRyYWNrSUQgPT0gbV9lbmFibGVk
VmlkZW9UcmFja0lEKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFj
a1ByaXZhdGVBVkZPYmpDLmNwcAppbmRleCBlOWM2NjIyMjNjODM2NWRkMDc3NmU4YTJjNGVlZDQ4
YzBmMTMwMWZkLi5jODcxYzU5NDgzNTUwODU3MTgyYzdhMjRkNTUzNGI4NWE1ZDRlZjdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5j
cHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjUsMTEgKzI1LDEyIEBACiAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiVmlkZW9U
cmFja1ByaXZhdGVBVkZPYmpDLmgiCi0jaW1wb3J0ICJBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBs
LmgiCi0jaW1wb3J0ICJNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIgogCiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQogCisjaW1wb3J0ICJBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmgiCisj
aW1wb3J0ICJNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpD
KEFWUGxheWVySXRlbVRyYWNrKiB0cmFjaykKQEAgLTEwNSw0ICsxMDYsMyBAQCB2b2lkIFZpZGVv
VHJhY2tQcml2YXRlQVZGT2JqQzo6c2V0U2VsZWN0ZWQoYm9vbCBlbmFibGVkKQogfQogCiAjZW5k
aWYKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNr
UHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IGY2NjZiZWJjMmI3ZjQzMmFiYzU2ZmI4ODZjODk5NzZm
NzlhMzU0YWQuLmU5NDJhMmM1ZmMwN2U3YjBhYTU2NTEzMWZhMTg1MThjYzVjNDRjZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRN
ZXRhZGF0YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRl
R1N0cmVhbWVyLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSW5i
YW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyX2gKLSNkZWZpbmUgSW5iYW5kTWV0
YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5B
QkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCiAKQEAg
LTUwLDEzICs0OSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlh
VGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiBkYXRhLCB1bnNp
Z25lZCBsZW5ndGgpCiAgICAgewogICAgICAgICBBU1NFUlQoY3VlRm9ybWF0KCkgPT0gRGF0YSk7
Ci0gICAgICAgIGNsaWVudCgpLT5hZGREYXRhQ3VlKHRoaXMsIHN0YXJ0LCBlbmQsIGRhdGEsIGxl
bmd0aCk7CisgICAgICAgIGNsaWVudCgpLT5hZGREYXRhQ3VlKHN0YXJ0LCBlbmQsIGRhdGEsIGxl
bmd0aCk7CiAgICAgfQogCiAgICAgdm9pZCBhZGRHZW5lcmljQ3VlKFBhc3NSZWZQdHI8R2VuZXJp
Y0N1ZURhdGE+IGRhdGEpCiAgICAgewogICAgICAgICBBU1NFUlQoY3VlRm9ybWF0KCkgPT0gR2Vu
ZXJpYyk7Ci0gICAgICAgIGNsaWVudCgpLT5hZGRHZW5lcmljQ3VlKHRoaXMsIGRhdGEpOworICAg
ICAgICBjbGllbnQoKS0+YWRkR2VuZXJpY0N1ZSgqZGF0YSk7CiAgICAgfQogCiBwcml2YXRlOgpA
QCAtNzYsNSArNzUsMyBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUoVklERU9fVFJB
Q0spCi0KLSNlbmRpZiAvLyBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXJf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIu
Y3BwCmluZGV4IDZiMWZmYWI5M2MzNDhmY2NjNzdjNjMwZmViNmJlODJlMTAxOWRhZDYuLjFkOTQ1
Mjc4YmE0ZDAyYzA0N2YzMmExNTc0OTVkYmRlNjhjZmEwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRl
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTExMyw3ICsxMTMs
NyBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZT
YW1wbGUoKQogCiAgICAgICAgIEdTVF9JTkZPKCJUcmFjayAlZCBwYXJzaW5nIHNhbXBsZTogJS4q
cyIsIG1faW5kZXgsIHN0YXRpY19jYXN0PGludD4oaW5mby5zaXplKSwKICAgICAgICAgICAgIHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGluZm8uZGF0YSkpOwotICAgICAgICBjbGllbnQoKS0+cGFy
c2VXZWJWVFRDdWVEYXRhKHRoaXMsIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGluZm8uZGF0YSks
IGluZm8uc2l6ZSk7CisgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEN1ZURhdGEocmVpbnRl
cnByZXRfY2FzdDxjaGFyKj4oaW5mby5kYXRhKSwgaW5mby5zaXplKTsKICAgICAgICAgZ3N0X2J1
ZmZlcl91bm1hcChidWZmZXIsICZpbmZvKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJl
YW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJh
Y2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAKaW5kZXggNjE5ZjJjYTYxY2FiZTU5NDBhZWMzZDEz
ZWNmN2RkZjU3MzVmZDcyMS4uOWJlMWZlYTJkZmY1YTA2Y2U0MGU4NTFmYTUzYTAzZjY0ODRhZTVk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAt
MTU3LDcgKzE1Nyw3IEBAIHZvaWQgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6bm90aWZ5VHJh
Y2tPZlRhZ3NDaGFuZ2VkKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGdldFRhZyh0YWdz
LmdldCgpLCBHU1RfVEFHX1RJVExFLCBtX2xhYmVsKSkKLSAgICAgICAgY2xpZW50LT5sYWJlbENo
YW5nZWQobV9vd25lciwgbV9sYWJlbCk7CisgICAgICAgIGNsaWVudC0+bGFiZWxDaGFuZ2VkKG1f
bGFiZWwpOwogCiAgICAgQXRvbWljU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmICghZ2V0TGFuZ3Vh
Z2VDb2RlKHRhZ3MuZ2V0KCksIGxhbmd1YWdlKSkKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2b2lkIFRy
YWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCgpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1fbGFuZ3VhZ2UgPSBsYW5ndWFnZTsKLSAgICBjbGllbnQtPmxh
bmd1YWdlQ2hhbmdlZChtX293bmVyLCBtX2xhbmd1YWdlKTsKKyAgICBjbGllbnQtPmxhbmd1YWdl
Q2hhbmdlZChtX2xhbmd1YWdlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBl
bmRQaXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAppbmRleCAwMDUxMmU2M2M3MzJlMzkzZWY2NTE2MDEw
ZDFlNjdlZTZmZWRiYjM4Li44NDkyNjdmMjFlMDY5OGZiNWQyYWRkZWFlNTA5MWIzYzVkMDkyZmZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL0FwcGVuZFBpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcApAQCAtNjc2LDcgKzY3Niw3IEBA
IHZvaWQgQXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtOZXdTYW1wbGUoR3N0U2FtcGxlKiBzYW1wbGUp
CiAgICAgICAgICAgICBtZWRpYVNhbXBsZS0+YXBwbHlQdHNPZmZzZXQoTWVkaWFUaW1lOjp6ZXJv
VGltZSgpKTsKICAgICAgICAgfQogCi0gICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZS0+ZGlk
UmVjZWl2ZVNhbXBsZShtZWRpYVNhbXBsZSk7CisgICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0
ZS0+ZGlkUmVjZWl2ZVNhbXBsZSgqbWVkaWFTYW1wbGUpOwogICAgICAgICBzZXRBcHBlbmRTdGF0
ZShBcHBlbmRTdGF0ZTo6U2FtcGxpbmcpOwogICAgICAgICBtX2Zsb3dSZXR1cm4gPSBHU1RfRkxP
V19PSzsKICAgICAgICAgbV9uZXdTYW1wbGVDb25kaXRpb24ubm90aWZ5T25lKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRl
eCA3ZjU0NWVlMzVlNDhhYTA2YjAyYTk5NjNlMTFhY2JjYmRjYTc3OTQxLi5lNGIxMDdmNzBmNWM4
YzY5ODE3NDE1ZWJjYTRkNjU1YjNhYjVlYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9t
c2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgdm9p
ZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjphcHBlbmQoY29uc3QgdW5zaWduZWQgY2hh
ciogZGF0YSwgdW5zaWduZWQgbGUKICAgICBpZiAobV9jbGllbnQtPmFwcGVuZCh0aGlzLCBkYXRh
LCBsZW5ndGgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVD
bGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCBTb3VyY2VCdWZm
ZXJQcml2YXRlQ2xpZW50OjpSZWFkU3RyZWFtRmFpbGVkKTsKKyAgICBtX3NvdXJjZUJ1ZmZlclBy
aXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZm
ZXJQcml2YXRlQ2xpZW50OjpSZWFkU3RyZWFtRmFpbGVkKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyOjphYm9ydCgpCkBAIC0xMDYsMjAgKzEwNiwxOSBAQCB2b2lkIFNv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGUgc3RhdGUpCiAgICAgbV9tZWRpYVNvdXJjZS0+c2V0UmVhZHlTdGF0ZShzdGF0ZSk7
CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Zmx1c2goQXRvbWljU3Ry
aW5nIHRyYWNrSWQpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmZsdXNoKGNv
bnN0IEF0b21pY1N0cmluZyYgdHJhY2tJZCkKIHsKICAgICBtX2NsaWVudC0+Zmx1c2godHJhY2tJ
ZCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZW5xdWV1ZVNhbXBs
ZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUsIEF0b21pY1N0cmluZykKK3ZvaWQg
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1w
bGU+JiYgc2FtcGxlLCBjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAgIG1fbm90aWZ5V2hlblJl
YWR5Rm9yTW9yZVNhbXBsZXMgPSBmYWxzZTsKIAotICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gcHJv
dGVjdGVkUHJwU2FtcGxlID0gcHJwU2FtcGxlOwotICAgIG1fY2xpZW50LT5lbnF1ZXVlU2FtcGxl
KHByb3RlY3RlZFBycFNhbXBsZSk7CisgICAgbV9jbGllbnQtPmVucXVldWVTYW1wbGUoV1RGTW92
ZShzYW1wbGUpKTsKIH0KIAotYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjppc1Jl
YWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKQorYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikKIHsK
ICAgICByZXR1cm4gbV9pc1JlYWR5Rm9yTW9yZVNhbXBsZXM7CiB9CkBAIC0xMzUsNyArMTM0LDcg
QEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlSZWFkeUZvck1vcmVT
YW1wbGVzKCkKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CiAgICAgc2V0UmVhZHlG
b3JNb3JlU2FtcGxlcyh0cnVlKTsKICAgICBpZiAobV9ub3RpZnlXaGVuUmVhZHlGb3JNb3JlU2Ft
cGxlcykKLSAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQ
cml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyh0aGlzLCBtX3RyYWNrSWQpOworICAg
ICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRC
ZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKG1fdHJhY2tJZCk7CiB9CiAKIHZvaWQgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0QWN0aXZlKGJvb2wgaXNBY3RpdmUpCkBAIC0xNDQsMTIg
KzE0MywxMiBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnNldEFjdGl2ZShi
b29sIGlzQWN0aXZlKQogICAgICAgICBtX21lZGlhU291cmNlLT5zb3VyY2VCdWZmZXJQcml2YXRl
RGlkQ2hhbmdlQWN0aXZlU3RhdGUodGhpcywgaXNBY3RpdmUpOwogfQogCi12b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXI6OnN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJp
bmcpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnN0b3BBc2tpbmdGb3JNb3Jl
U2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5Q2xpZW50V2hlblJl
YWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSWQpCit2b2lkIFNvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNv
bnN0IEF0b21pY1N0cmluZyYgdHJhY2tJZCkKIHsKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJl
YWQoKSk7CiAgICAgbV9ub3RpZnlXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyA9IHRydWU7CkBAIC0x
NTksMjAgKzE1OCwxOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6Om5vdGlm
eUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cgogdm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0
IFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9uU2VnbWVudCYgaW5pdGlh
bGl6YXRpb25TZWdtZW50KQogewogICAgIGlmIChtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQp
Ci0gICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQodGhpcywgaW5pdGlhbGl6YXRpb25TZWdt
ZW50KTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQ
cml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChpbml0aWFsaXphdGlvblNlZ21l
bnQpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVT
YW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJwU2FtcGxlKQordm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUp
CiB7Ci0gICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBwcm90ZWN0ZWRQcnBTYW1wbGUgPSBwcnBTYW1w
bGU7CiAgICAgaWYgKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCkKLSAgICAgICAgbV9zb3Vy
Y2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBs
ZSh0aGlzLCAqcHJvdGVjdGVkUHJwU2FtcGxlKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2
YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShzYW1wbGUpOwog
fQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVBbGxQZW5k
aW5nU2FtcGxlcygpCiB7CiAgICAgaWYgKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCkKLSAg
ICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBw
ZW5kQ29tcGxldGUodGhpcywgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBwZW5kU3VjY2Vl
ZGVkKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQ
cml2YXRlQXBwZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBwZW5kU3Vj
Y2VlZGVkKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXIuaAppbmRleCAzMDg0MjVkNTAzY2FhNGViODY4YjM4OTk5YjVkNDY3Njhk
ZDU0OTg3Li41NjcxMzEwZmY4MmM4M2Y5OGMyNjBlODdiNDhmMTM0MWVjOGFmNjFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaApAQCAt
NTQsMjYgKzU0LDI2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2xlYXJNZWRpYVNvdXJjZSgpIHsg
bV9tZWRpYVNvdXJjZSA9IG51bGxwdHI7IH0KIAotICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1
ZmZlclByaXZhdGVDbGllbnQqKSBvdmVycmlkZTsKLSAgICB2b2lkIGFwcGVuZChjb25zdCB1bnNp
Z25lZCBjaGFyKiwgdW5zaWduZWQpIG92ZXJyaWRlOwotICAgIHZvaWQgYWJvcnQoKSBvdmVycmlk
ZTsKLSAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbW92
ZWRGcm9tTWVkaWFTb3VyY2UoKSBvdmVycmlkZTsKLSAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0
ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsKLQotICAgIHZvaWQgZmx1c2goQXRvbWlj
U3RyaW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIGVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRp
YVNhbXBsZT4sIEF0b21pY1N0cmluZykgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWR5Rm9yTW9y
ZVNhbXBsZXMoQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldEFjdGl2ZShib29s
KSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJp
bmcpIG92ZXJyaWRlOwotICAgIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBs
ZXMoQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldENsaWVudChTb3VyY2VCdWZm
ZXJQcml2YXRlQ2xpZW50KikgZmluYWw7CisgICAgdm9pZCBhcHBlbmQoY29uc3QgdW5zaWduZWQg
Y2hhciosIHVuc2lnbmVkKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KCkgZmluYWw7CisgICAgdm9p
ZCByZXNldFBhcnNlclN0YXRlKCkgZmluYWw7CisgICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291
cmNlKCkgZmluYWw7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNv
bnN0IGZpbmFsOworICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0
ZSkgZmluYWw7CisKKyAgICB2b2lkIGZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOwor
ICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIGZpbmFsOworICAgIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21p
Y1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIGZpbmFsOworICAgIHZv
aWQgc3RvcEFza2luZ0Zvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOwor
ICAgIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWlj
U3RyaW5nJikgZmluYWw7CiAKICAgICB2b2lkIHNldFJlYWR5Rm9yTW9yZVNhbXBsZXMoYm9vbCk7
CiAgICAgdm9pZCBub3RpZnlSZWFkeUZvck1vcmVTYW1wbGVzKCk7CiAKICAgICB2b2lkIGRpZFJl
Y2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVu
dDo6SW5pdGlhbGl6YXRpb25TZWdtZW50Jik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2FtcGxlKFBh
c3NSZWZQdHI8TWVkaWFTYW1wbGU+KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTYW1wbGUoTWVkaWFT
YW1wbGUmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVBbGxQZW5kaW5nU2FtcGxlcygpOwogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVk
aW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCmluZGV4IGJhMTkxMjFjMjIy
ZmI2Mjc2NjM5MmE3MWVmYmM1NjVmZTljODc5NjMuLjYwYzAwNzVkNjcyYTYyOTAyNTgxZjkzOGU2
YWZhNDgzYjE2NjA0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMs
OCArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNp
Zm5kZWYgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbV9oCi0jZGVmaW5lIEF1ZGlvVHJhY2tQ
cml2YXRlTWVkaWFTdHJlYW1faAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKQEAgLTM2LDE0ICszNSwxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtIGZpbmFsIDog
cHVibGljIEF1ZGlvVHJhY2tQcml2YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtKQogcHVibGljOgotCiAgICAgc3RhdGljIFJlZlB0cjxB
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtPiBjcmVhdGUoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmIHN0cmVhbVRyYWNrKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVk
aW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbShzdHJlYW1UcmFjaykpOwogICAgIH0KIAotICAgIHZp
cnR1YWwgfkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0oKSB7IH0KLQogICAgIEtpbmQga2lu
ZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEtpbmQ6Ok1haW47IH0KICAgICBBdG9taWNTdHJp
bmcgaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lkOyB9CiAgICAgQXRvbWljU3RyaW5n
IGxhYmVsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9sYWJlbDsgfQpAQCAtNTIsMTcgKzQ4
LDE3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VHJhY2tJbmRleChpbnQgaW5kZXgpIHsgbV9p
bmRleCA9IGluZGV4OyB9CiAKLSAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogc3RyZWFtVHJh
Y2soKSBjb25zdCB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CisgICAgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKCkgeyByZXR1cm4gbV9zdHJlYW1UcmFjay5nZXQo
KTsgfQogCiBwcml2YXRlOgogICAgIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0oTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQotICAgICAgICA6IG1fc3RyZWFtVHJhY2soJnRyYWNr
KQorICAgICAgICA6IG1fc3RyZWFtVHJhY2sodHJhY2spCiAgICAgICAgICwgbV9pZCh0cmFjay5p
ZCgpKQogICAgICAgICAsIG1fbGFiZWwodHJhY2subGFiZWwoKSkKICAgICB7CiAgICAgfQogCi0g
ICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBtX3N0cmVhbVRyYWNrOworICAgIFJl
ZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9zdHJlYW1UcmFjazsKICAgICBBdG9taWNTdHJp
bmcgbV9pZDsKICAgICBBdG9taWNTdHJpbmcgbV9sYWJlbDsKICAgICBpbnQgbV9pbmRleCB7IDAg
fTsKQEAgLTcxLDUgKzY3LDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShWSURF
T19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2VuZGlmIC8vIEF1ZGlvVHJhY2tQ
cml2YXRlTWVkaWFTdHJlYW1faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCmlu
ZGV4IGUxYmZhMTZmMTRkNzI5YWZkMGQxZTRlZWZiMWNlOTk2MjE1NzAxNjYuLjA0NTgzODlmMzk3
NDg3MjcyYTc5MzEwNGIwYTNkZjViM2EyZmJkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9WaWRlb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogICovCiAKLSNpZm5kZWYgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbV9oCi0jZGVm
aW5lIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1faAorI3ByYWdtYSBvbmNlCiAKICNpZiBF
TkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKQEAgLTM2LDE0ICsz
NSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtIGZpbmFsIDogcHVibGljIFZpZGVvVHJhY2tQcml2YXRlIHsKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtKQogcHVibGljOgotCiAgICAg
c3RhdGljIFJlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtPiBjcmVhdGUoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbShzdHJlYW1UcmFjaykpOwog
ICAgIH0KIAotICAgIHZpcnR1YWwgflZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0oKSB7IH0K
LQogICAgIEtpbmQga2luZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEtpbmQ6Ok1haW47IH0K
ICAgICBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lkOyB9CiAg
ICAgQXRvbWljU3RyaW5nIGxhYmVsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9sYWJlbDsg
fQpAQCAtNTIsMTcgKzQ4LDE3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VHJhY2tJbmRleChp
bnQgaW5kZXgpIHsgbV9pbmRleCA9IGluZGV4OyB9CiAKLSAgICBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSogc3RyZWFtVHJhY2soKSBjb25zdCB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9
CisgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKCkgeyByZXR1cm4gbV9z
dHJlYW1UcmFjay5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIFZpZGVvVHJhY2tQcml2YXRlTWVk
aWFTdHJlYW0oTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQotICAgICAgICA6IG1fc3Ry
ZWFtVHJhY2soJnRyYWNrKQorICAgICAgICA6IG1fc3RyZWFtVHJhY2sodHJhY2spCiAgICAgICAg
ICwgbV9pZCh0cmFjay5pZCgpKQogICAgICAgICAsIG1fbGFiZWwodHJhY2subGFiZWwoKSkKICAg
ICB7CiAgICAgfQogCi0gICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBtX3N0cmVh
bVRyYWNrOworICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9zdHJlYW1UcmFjazsK
ICAgICBBdG9taWNTdHJpbmcgbV9pZDsKICAgICBBdG9taWNTdHJpbmcgbV9sYWJlbDsKICAgICBp
bnQgbV9pbmRleCB7IDAgfTsKQEAgLTcxLDUgKzY3LDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlm
IC8vIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2VuZGlm
IC8vIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1faApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VC
dWZmZXJQcml2YXRlLmNwcAppbmRleCA0OGRmNGJjYzRjM2JiOGRhMmM1ZjQ5MDBlMTc1MDYwMDc5
MTg1NmYzLi5lMDMxYTliNWQyMGQxMmExYjk2ZTBlMTE2Y2U0YmFhOTU0Y2YwMjIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VC
dWZmZXJQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlh
c291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDcgKzM4LDYgQEAKICNp
bmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSA8bWFwPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXIuaD4KLSNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0u
aD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtMTY1LDcgKzE2NCw3IEBAIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmFw
cGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgfQog
CiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0
ZUFwcGVuZENvbXBsZXRlKHRoaXMsIHJlc3VsdCk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VC
dWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUocmVzdWx0KTsKIH0KIAogdm9pZCBNb2NrU291cmNl
QnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBNb2Nr
SW5pdGlhbGl6YXRpb25Cb3gmIGluaXRCb3gpCkBAIC0xOTYsNyArMTk1LDcgQEAgdm9pZCBNb2Nr
U291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25z
dCBNb2NrSW5pdGlhbGkKICAgICAgICAgfQogICAgIH0KIAotICAgIG1fY2xpZW50LT5zb3VyY2VC
dWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudCh0aGlzLCBzZWdtZW50
KTsKKyAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXph
dGlvblNlZ21lbnQoc2VnbWVudCk7CiB9CiAKIApAQCAtMjA1LDcgKzIwNCw3IEBAIHZvaWQgTW9j
a1NvdXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUoY29uc3QgTW9ja1NhbXBsZUJv
eCYgc2FtcGxlQm94KQogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSh0aGlzLCBNb2Nr
TWVkaWFTYW1wbGU6OmNyZWF0ZShzYW1wbGVCb3gpKTsKKyAgICBtX2NsaWVudC0+c291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoTW9ja01lZGlhU2FtcGxlOjpjcmVhdGUoc2FtcGxl
Qm94KSk7CiB9CiAKIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmFib3J0KCkKQEAgLTIz
OSwyMiArMjM4LDIxIEBAIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OnNldEFjdGl2ZShi
b29sIGlzQWN0aXZlKQogICAgICAgICBtX21lZGlhU291cmNlLT5zb3VyY2VCdWZmZXJQcml2YXRl
RGlkQ2hhbmdlQWN0aXZlU3RhdGUodGhpcywgaXNBY3RpdmUpOwogfQogCi1WZWN0b3I8U3RyaW5n
PiBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChBdG9t
aWNTdHJpbmcpCitWZWN0b3I8U3RyaW5nPiBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1
ZWRTYW1wbGVzRm9yVHJhY2tJRChjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAgIHJldHVybiBt
X2VucXVldWVkU2FtcGxlczsKIH0KIAotdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5x
dWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUsIEF0b21pY1N0cmlu
ZykKK3ZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmVucXVldWVTYW1wbGUoUmVmPE1lZGlh
U2FtcGxlPiYmIHNhbXBsZSwgY29uc3QgQXRvbWljU3RyaW5nJikKIHsKLSAgICBSZWZQdHI8TWVk
aWFTYW1wbGU+IHNhbXBsZSA9IHBycFNhbXBsZTsKLSAgICBpZiAoIW1fbWVkaWFTb3VyY2UgfHwg
IXNhbXBsZSkKKyAgICBpZiAoIW1fbWVkaWFTb3VyY2UpCiAgICAgICAgIHJldHVybjsKIAogICAg
IFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlID0gc2FtcGxlLT5wbGF0Zm9ybVNhbXBsZSgp
OwogICAgIGlmIChwbGF0Zm9ybVNhbXBsZS50eXBlICE9IFBsYXRmb3JtU2FtcGxlOjpNb2NrU2Ft
cGxlQm94VHlwZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTW9ja1NhbXBsZUJveCogYm94ID0g
cGxhdGZvcm1TYW1wbGUuc2FtcGxlLm1vY2tTYW1wbGVCb3g7CisgICAgYXV0byogYm94ID0gcGxh
dGZvcm1TYW1wbGUuc2FtcGxlLm1vY2tTYW1wbGVCb3g7CiAgICAgaWYgKCFib3gpCiAgICAgICAg
IHJldHVybjsKIApAQCAtMjY2LDM3ICsyNjQsMzAgQEAgdm9pZCBNb2NrU291cmNlQnVmZmVyUHJp
dmF0ZTo6ZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUsIEEK
ICAgICBpZiAoYm94LT5pc0RlbGF5ZWQoKSkKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+aW5jcmVt
ZW50VG90YWxGcmFtZURlbGF5QnkoTWVkaWFUaW1lKDEsIDEpKTsKIAotICAgIG1fZW5xdWV1ZWRT
YW1wbGVzLmFwcGVuZCh0b1N0cmluZyhzYW1wbGUpKTsKKyAgICBtX2VucXVldWVkU2FtcGxlcy5h
cHBlbmQodG9TdHJpbmcoc2FtcGxlLmdldCgpKSk7CiB9CiAKIGJvb2wgTW9ja1NvdXJjZUJ1ZmZl
clByaXZhdGU6Omhhc1ZpZGVvKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZh
dGVIYXNWaWRlbyh0aGlzKTsKKyAgICByZXR1cm4gbV9jbGllbnQgJiYgbV9jbGllbnQtPnNvdXJj
ZUJ1ZmZlclByaXZhdGVIYXNWaWRlbygpOwogfQogCiBib29sIE1vY2tTb3VyY2VCdWZmZXJQcml2
YXRlOjpoYXNBdWRpbygpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2NsaWVudCkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlSGFz
QXVkaW8odGhpcyk7CisgICAgcmV0dXJuIG1fY2xpZW50ICYmIG1fY2xpZW50LT5zb3VyY2VCdWZm
ZXJQcml2YXRlSGFzQXVkaW8oKTsKIH0KIAotCiBNZWRpYVRpbWUgTW9ja1NvdXJjZUJ1ZmZlclBy
aXZhdGU6OmZhc3RTZWVrVGltZUZvck1lZGlhVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNv
bnN0IE1lZGlhVGltZSYgbmVnYXRpdmVUaHJlc2hvbGQsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRp
dmVUaHJlc2hvbGQpCiB7CiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICByZXR1cm4gbV9jbGll
bnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUodGhpcywgdGlt
ZSwgbmVnYXRpdmVUaHJlc2hvbGQsIHBvc2l0aXZlVGhyZXNob2xkKTsKKyAgICAgICAgcmV0dXJu
IG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRp
bWUsIG5lZ2F0aXZlVGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7CiAgICAgcmV0dXJuIHRp
bWU7CiB9CiAKIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OnNlZWtUb1RpbWUoY29uc3Qg
TWVkaWFUaW1lJiB0aW1lKQogewogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQt
PnNvdXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKHRoaXMsIHRpbWUpOworICAgICAgICBtX2Ns
aWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZVNlZWtUb1RpbWUodGltZSk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJj
ZUJ1ZmZlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3Vy
Y2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaAppbmRleCA3NDRiNGMxMDdjMzEwMjZmYTQyOWE4
ZjEyZDI1NjNiZmMzNjMyZDI4Li40OTY1MDU1M2IwN2JlYWMwN2Y1MzEwZWY1ZTU2ZWY4MmM3MjBh
MDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNl
L01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMTUgKzIz
LDExIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0jaWZuZGVmIE1vY2tTb3VyY2VCdWZmZXJQ
cml2YXRlX2gKLSNkZWZpbmUgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGVfaAorI3ByYWdtYSBvbmNl
CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJp
dmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTQzLDcgKzM5LDcgQEAgY2xhc3MgTW9ja1NhbXBsZUJveDsKIGNsYXNzIFRpbWVSYW5nZXM7CiBj
bGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIAotY2xhc3MgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUg
OiBwdWJsaWMgU291cmNlQnVmZmVyUHJpdmF0ZSB7CitjbGFzcyBNb2NrU291cmNlQnVmZmVyUHJp
dmF0ZSBmaW5hbCA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQcml2YXRlIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmUHRyPE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlPiBjcmVhdGUoTW9ja01lZGlhU291
cmNlUHJpdmF0ZSopOwogICAgIHZpcnR1YWwgfk1vY2tTb3VyY2VCdWZmZXJQcml2YXRlKCk7CkBA
IC02MCwyMCArNTYsMjAgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBNb2NrU291cmNlQnVmZmVy
UHJpdmF0ZShNb2NrTWVkaWFTb3VyY2VQcml2YXRlKik7CiAKICAgICAvLyBTb3VyY2VCdWZmZXJQ
cml2YXRlIG92ZXJyaWRlcwotICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVD
bGllbnQqKSBvdmVycmlkZTsKLSAgICB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBk
YXRhLCB1bnNpZ25lZCBsZW5ndGgpIG92ZXJyaWRlOwotICAgIHZvaWQgYWJvcnQoKSBvdmVycmlk
ZTsKLSAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbW92
ZWRGcm9tTWVkaWFTb3VyY2UoKSBvdmVycmlkZTsKLSAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0
ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldENsaWVudChTb3Vy
Y2VCdWZmZXJQcml2YXRlQ2xpZW50KikgZmluYWw7CisgICAgdm9pZCBhcHBlbmQoY29uc3QgdW5z
aWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0
KCkgZmluYWw7CisgICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkgZmluYWw7CisgICAgdm9pZCBy
ZW1vdmVkRnJvbU1lZGlhU291cmNlKCkgZmluYWw7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3Rh
dGUgcmVhZHlTdGF0ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRp
YVBsYXllcjo6UmVhZHlTdGF0ZSkgZmluYWw7CiAKLSAgICB2b2lkIGZsdXNoKEF0b21pY1N0cmlu
Zykgb3ZlcnJpZGUgeyBtX2VucXVldWVkU2FtcGxlcy5jbGVhcigpOyB9Ci0gICAgdm9pZCBlbnF1
ZXVlU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+LCBBdG9taWNTdHJpbmcpIG92ZXJyaWRl
OwotICAgIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIG92ZXJyaWRlOworICAg
IHZvaWQgZmx1c2goY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWwgeyBtX2VucXVldWVkU2FtcGxl
cy5jbGVhcigpOyB9CisgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiwg
Y29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBs
ZXMoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZvaWQg
c2V0QWN0aXZlKGJvb2wpIGZpbmFsOwogCi0gICAgVmVjdG9yPFN0cmluZz4gZW5xdWV1ZWRTYW1w
bGVzRm9yVHJhY2tJRChBdG9taWNTdHJpbmcpIG92ZXJyaWRlOworICAgIFZlY3RvcjxTdHJpbmc+
IGVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CiAK
ICAgICB2b2lkIGRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgTW9ja0luaXRp
YWxpemF0aW9uQm94Jik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2FtcGxlKGNvbnN0IE1vY2tTYW1w
bGVCb3gmKTsKQEAgLTg4LDYgKzg0LDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TT1VSQ0UpICYmIFVTRShBVkZPVU5EQVRJT04pCi0KLSNlbmRpZgotCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tUcmFja3Mu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1RyYWNrcy5o
CmluZGV4IDhkMDMxOWYyZDBkNjY4ODZkNWE1OTAxZmUxMmRiYjM2NDIzYmNlNmIuLjA3M2YzNjg2
MzdiMDk2YmUwZjI1YmEyMzhhMzdmNzJiMjY1OTM4YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1RyYWNrcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1RyYWNrcy5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDggKzIzLDcg
QEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5kZWYgTW9ja1RyYWNrc19oCi0jZGVmaW5l
IE1vY2tUcmFja3NfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQog
CkBAIC0zNyw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTW9ja0F1ZGlv
VHJhY2tQcml2YXRlIDogcHVibGljIEF1ZGlvVHJhY2tQcml2YXRlIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmUHRyPE1vY2tBdWRpb1RyYWNrUHJpdmF0ZT4gY3JlYXRlKGNvbnN0IE1vY2tUcmFj
a0JveCYgYm94KSB7IHJldHVybiBhZG9wdFJlZihuZXcgTW9ja0F1ZGlvVHJhY2tQcml2YXRlKGJv
eCkpOyB9CisgICAgc3RhdGljIFJlZjxNb2NrQXVkaW9UcmFja1ByaXZhdGU+IGNyZWF0ZShjb25z
dCBNb2NrVHJhY2tCb3gmIGJveCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2NrQXVkaW9UcmFj
a1ByaXZhdGUoYm94KSk7IH0KICAgICB2aXJ0dWFsIH5Nb2NrQXVkaW9UcmFja1ByaXZhdGUoKSB7
IH0KIAogICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsg
fQpAQCAtNDUsNyArNDQsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgTW9ja0F1ZGlvVHJh
Y2tQcml2YXRlKGNvbnN0IE1vY2tUcmFja0JveCYgYm94KQogICAgICAgICA6IG1fYm94KGJveCkK
LSAgICAgICAgLCBtX2lkKFN0cmluZzo6Zm9ybWF0KCIlZCIsIGJveC50cmFja0lEKCkpKQorICAg
ICAgICAsIG1faWQoQXRvbWljU3RyaW5nOjpudW1iZXIoYm94LnRyYWNrSUQoKSkpCiAgICAgewog
ICAgIH0KICAgICBNb2NrVHJhY2tCb3ggbV9ib3g7CkBAIC02Myw3ICs2Miw3IEBAIHByb3RlY3Rl
ZDoKICAgICBNb2NrVGV4dFRyYWNrUHJpdmF0ZShjb25zdCBNb2NrVHJhY2tCb3gmIGJveCkKICAg
ICAgICAgOiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlKEluYmFuZFRleHRUcmFja1ByaXZhdGU6Okdl
bmVyaWMpCiAgICAgICAgICwgbV9ib3goYm94KQotICAgICAgICAsIG1faWQoU3RyaW5nOjpmb3Jt
YXQoIiVkIiwgYm94LnRyYWNrSUQoKSkpCisgICAgICAgICwgbV9pZChBdG9taWNTdHJpbmc6Om51
bWJlcihib3gudHJhY2tJRCgpKSkKICAgICB7CiAgICAgfQogICAgIE1vY2tUcmFja0JveCBtX2Jv
eDsKQEAgLTgxLDcgKzgwLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIE1vY2tWaWRlb1Ry
YWNrUHJpdmF0ZShjb25zdCBNb2NrVHJhY2tCb3gmIGJveCkKICAgICAgICAgOiBtX2JveChib3gp
Ci0gICAgICAgICwgbV9pZChTdHJpbmc6OmZvcm1hdCgiJWQiLCBib3gudHJhY2tJRCgpKSkKKyAg
ICAgICAgLCBtX2lkKEF0b21pY1N0cmluZzo6bnVtYmVyKGJveC50cmFja0lEKCkpKQogICAgIHsK
ICAgICB9CiAgICAgTW9ja1RyYWNrQm94IG1fYm94OwpAQCAtOTEsNSArOTAsMyBAQCBwcm90ZWN0
ZWQ6CiB9CiAKICNlbmRpZgotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCmluZGV4IDMzZmU0Mzk2MDJjY2QwNzUw
YWUzYzNjYjBjNGQ3ODBjZjcxYmVjODMuLjdmMmM2OTA5NzZkNjhhMWNkZDk1ODQ0YTNmMGRiZDVl
ODBiMjM0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNu
YXBzaG90dGVkUGx1Z0luLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgi
CiAjaW5jbHVkZSAiUGF0aC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgorI2lu
Y2x1ZGUgIlJlbmRlckltYWdlUmVzb3VyY2UuaCIKICNpbmNsdWRlICJSZW5kZXJJdGVyYXRvci5o
IgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgpA
QCAtNTIsNyArNTMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBSZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCYgZWxl
bWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlckVtYmVkZGVkT2JqZWN0KGVs
ZW1lbnQsIFdURk1vdmUoc3R5bGUpKQogICAgICwgbV9zbmFwc2hvdFJlc291cmNlKHN0ZDo6bWFr
ZV91bmlxdWU8UmVuZGVySW1hZ2VSZXNvdXJjZT4oKSkKLSAgICAsIG1faXNQb3RlbnRpYWxNb3Vz
ZUFjdGl2YXRpb24oZmFsc2UpCiB7CiAgICAgbV9zbmFwc2hvdFJlc291cmNlLT5pbml0aWFsaXpl
KHRoaXMpOwogfQpAQCAtODIsMTMgKzgyLDEzIEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW46OmxheW91dCgpCiAgICAgdmlldygpLmZyYW1lVmlldygpLmFkZEVtYmVkZGVkT2JqZWN0VG9V
cGRhdGUoKnRoaXMpOwogfQogCi12b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVT
bmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKK3ZvaWQgUmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW46OnVwZGF0ZVNuYXBzaG90KEltYWdlKiBpbWFnZSkKIHsKICAgICAvLyBaZXJvLXNpemUg
cGx1Z2lucyB3aWxsIGhhdmUgbm8gaW1hZ2UuCiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgbV9zbmFwc2hvdFJlc291cmNlLT5zZXRDYWNoZWRJbWFnZShuZXcgQ2FjaGVk
SW1hZ2UoaW1hZ2UuZ2V0KCksIHZpZXcoKS5mcmFtZVZpZXcoKS5mcmFtZSgpLnBhZ2UoKS0+c2Vz
c2lvbklEKCkpKTsKKyAgICBtX3NuYXBzaG90UmVzb3VyY2UtPnNldENhY2hlZEltYWdlKG5ldyBD
YWNoZWRJbWFnZShpbWFnZSwgdmlldygpLmZyYW1lVmlldygpLmZyYW1lKCkucGFnZSgpLT5zZXNz
aW9uSUQoKSkpOwogICAgIHJlcGFpbnQoKTsKIH0KIApAQCAtMTUwLDEyICsxNTAsMTIgQEAgQ3Vy
c29yRGlyZWN0aXZlIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpnZXRDdXJzb3IoY29uc3QgTGF5
b3V0UG9pbnQmIHBvaW50LCBDdXIKICAgICByZXR1cm4gUmVuZGVyRW1iZWRkZWRPYmplY3Q6Omdl
dEN1cnNvcihwb2ludCwgb3ZlcnJpZGVDdXJzb3IpOwogfQogCi12b2lkIFJlbmRlclNuYXBzaG90
dGVkUGx1Z0luOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQpCit2b2lkIFJlbmRlclNuYXBzaG90
dGVkUGx1Z0luOjpoYW5kbGVFdmVudChFdmVudCYgZXZlbnQpCiB7Ci0gICAgaWYgKCFpczxNb3Vz
ZUV2ZW50PigqZXZlbnQpKQorICAgIGlmICghaXM8TW91c2VFdmVudD4oZXZlbnQpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBNb3VzZUV2ZW50JiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VF
dmVudD4oKmV2ZW50KTsKKyAgICBhdXRvJiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VFdmVu
dD4oZXZlbnQpOwogCiAgICAgLy8gSWYgd2UncmUgYSBzbmFwc2hvdHRlZCBwbHVnaW4sIHdlIHdh
bnQgdG8gbWFrZSBzdXJlIHdlIGFjdGl2YXRlIG9uCiAgICAgLy8gY2xpY2tzIGV2ZW4gaWYgdGhl
IHBhZ2UgaXMgcHJldmVudGluZyBvdXIgZGVmYXVsdCBiZWhhdmlvdXIuIE90aGVyd2lzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0lu
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaApp
bmRleCAxMzRkYjgzM2I3OThlZTVjMzdiMWJhMjdkYTU0OGZjNTQzZWY4NjQ3Li5jYWI1YmZiYzRm
YWY2N2Q2NmI2Yjg5ODIxNWRiMjYwYTEyNmVhZWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxMiArMjYsMTEgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuaCIKLSNpbmNsdWRl
ICJSZW5kZXJJbWFnZVJlc291cmNlLmgiCi0jaW5jbHVkZSAiVGltZXIuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OworY2xhc3MgUmVuZGVy
SW1hZ2VSZXNvdXJjZTsKIAogY2xhc3MgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gZmluYWwgOiBw
dWJsaWMgUmVuZGVyRW1iZWRkZWRPYmplY3QgewogcHVibGljOgpAQCAtMzksMjcgKzM4LDIxIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbigpOwogCiAgICAg
SFRNTFBsdWdJbkltYWdlRWxlbWVudCYgcGx1Z0luSW1hZ2VFbGVtZW50KCkgY29uc3Q7Ci0KLSAg
ICB2b2lkIHVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+KTsKLQotICAgIHZvaWQgaGFu
ZGxlRXZlbnQoRXZlbnQqKTsKKyAgICB2b2lkIHVwZGF0ZVNuYXBzaG90KEltYWdlKik7CisgICAg
dm9pZCBoYW5kbGVFdmVudChFdmVudCYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgZnJhbWVPd25l
ckVsZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsKLSAgICBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlclNuYXBzaG90dGVkUGx1Z0luIjsgfQotCi0g
ICAgQ3Vyc29yRGlyZWN0aXZlIGdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYsIEN1cnNvciYp
IGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNTbmFwc2hvdHRlZFBsdWdJbigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0
IExheW91dFBvaW50Jikgb3ZlcnJpZGU7Ci0gICAgCi0gICAgYm9vbCBjYW5IYXZlV2lkZ2V0KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLQorICAgIGNvbnN0IGNoYXIqIHJlbmRl
ck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4iOyB9
CisgICAgQ3Vyc29yRGlyZWN0aXZlIGdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYsIEN1cnNv
ciYpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgaXNTbmFwc2hvdHRlZFBsdWdJbigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExh
eW91dFBvaW50JikgZmluYWw7CisgICAgYm9vbCBjYW5IYXZlV2lkZ2V0KCkgY29uc3QgZmluYWwg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIHBhaW50U25hcHNob3QoUGFpbnRJbmZvJiwgY29u
c3QgTGF5b3V0UG9pbnQmKTsKLQotICAgIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBsYXlvdXQoKSBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJJbWFnZVJlc291
cmNlPiBtX3NuYXBzaG90UmVzb3VyY2U7Ci0gICAgYm9vbCBtX2lzUG90ZW50aWFsTW91c2VBY3Rp
dmF0aW9uOworICAgIGJvb2wgbV9pc1BvdGVudGlhbE1vdXNlQWN0aXZhdGlvbiB7IGZhbHNlIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuaAppbmRleCA4YjdkOTI0NTY0YTY0ZjAxYzk2ZDBiZTI0MzA4Y2VhYTk4NmQxNmU5Li5l
MjY3ODY5ZmU3NzExMDcxMDQyMDJlYjE0NjY2ZDg5NWZhMTRhOGIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTY3JpcHRFbGVtZW50LmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3Jn
PgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI5LDEzICszMCwxMyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZH
RWxlbWVudAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBTVkdVUklSZWZl
cmVuY2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBT
Y3JpcHRFbGVtZW50IHsKK2NsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZH
RWxlbWVudCwgcHVibGljIFNWR1VSSVJlZmVyZW5jZSwgcHVibGljIFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPFNWR1NjcmlwdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIpOwogCisgICAgdXNpbmcgU1ZHRWxlbWVudDo6
cmVmOworICAgIHVzaW5nIFNWR0VsZW1lbnQ6OmRlcmVmOworCiBwcml2YXRlOgogICAgIFNWR1Nj
cmlwdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNl
cnRlZEJ5UGFyc2VyLCBib29sIGFscmVhZHlTdGFydGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCA5MjYwNWZjMDIzNWM3YWVm
YmU3NmFjODYxZTBmODVmNmU4YTVkYThmLi42OTU2ZDc4YTcxYjIwNWZhMTJiNDMzMzBjM2UzODQ5
N2MxNjYzZTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3Vt
ZW50UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50
UGFyc2VyLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgUGV0
ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAd2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykg
MjAwNyBTYW11ZWwgV2VpbmlnIChzYW1Ad2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAw
OCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKQEAgLTIzNyw4
ICsyMzcsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpub3RpZnlGaW5pc2hlZChQZW5kaW5n
U2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogICAgIG1fcGVuZGluZ1NjcmlwdCA9IG51bGxwdHI7CiAg
ICAgcGVuZGluZ1NjcmlwdC5jbGVhckNsaWVudCgpOwogCi0gICAgYXV0byYgc2NyaXB0RWxlbWVu
dCA9ICp0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKSk7
Ci0gICAgc2NyaXB0RWxlbWVudC5leGVjdXRlUGVuZGluZ1NjcmlwdChwZW5kaW5nU2NyaXB0KTsK
KyAgICBwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKS5leGVjdXRlUGVuZGluZ1NjcmlwdChwZW5kaW5n
U2NyaXB0KTsKIAogICAgIGlmICghaXNEZXRhY2hlZCgpICYmICFtX3JlcXVlc3RpbmdTY3JpcHQp
CiAgICAgICAgIHJlc3VtZVBhcnNpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCA3MDY3Njc2ZGQxN2E3
NGQ5ZTQyNzI5ZDNkMjlkM2RkOGU4YTdmOGNlLi5mNDgxMDA1MjY3MTE2MjkwZmIxZmQ1MzZjODA4
OTEwY2JlNTZhODMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERv
Y3VtZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9Y
TUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAwMCBQZXRlciBLZWxseSA8cG1rQHBvc3QuY29tPgotICogQ29weXJpZ2h0IChD
KSAyMDA1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJp
Z2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+CiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmln
aHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CkBAIC03OTksOCArNzk5LDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50
TnMoY29uc3QgeG1sQ2hhciogeG1sTG9jYWxOYW1lLCBjb25zdCB4bWxDaGEKIAogICAgIG5ld0Vs
ZW1lbnQtPmJlZ2luUGFyc2luZ0NoaWxkcmVuKCk7CiAKLSAgICBTY3JpcHRFbGVtZW50KiBzY3Jp
cHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShuZXdFbGVtZW50LnB0cigpKTsK
LSAgICBpZiAoc2NyaXB0RWxlbWVudCkKKyAgICBpZiAoaXNTY3JpcHRFbGVtZW50KG5ld0VsZW1l
bnQuZ2V0KCkpKQogICAgICAgICBtX3NjcmlwdFN0YXJ0UG9zaXRpb24gPSB0ZXh0UG9zaXRpb24o
KTsKIAogICAgIG1fY3VycmVudE5vZGUtPnBhcnNlckFwcGVuZENoaWxkKG5ld0VsZW1lbnQpOwpA
QCAtODQzLDcgKzg0Miw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygp
CiAgICAgaWYgKGhhY2tBcm91bmRMaWJYTUxFbnRpdHlQYXJzaW5nQnVnKCkgJiYgY29udGV4dCgp
LT5kZXB0aCA8PSBkZXB0aFRyaWdnZXJpbmdFbnRpdHlFeHBhbnNpb24oKSkKICAgICAgICAgc2V0
RGVwdGhUcmlnZ2VyaW5nRW50aXR5RXhwYW5zaW9uKC0xKTsKIAotICAgIGlmICghc2NyaXB0aW5n
Q29udGVudElzQWxsb3dlZChwYXJzZXJDb250ZW50UG9saWN5KCkpICYmIGlzPEVsZW1lbnQ+KCpu
b2RlKSAmJiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUu
Z2V0KCkpKSkgeworICAgIGlmICghc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChwYXJzZXJDb250
ZW50UG9saWN5KCkpICYmIGlzPEVsZW1lbnQ+KCpub2RlKSAmJiBpc1NjcmlwdEVsZW1lbnQoZG93
bmNhc3Q8RWxlbWVudD4oKm5vZGUpKSkgewogICAgICAgICBwb3BDdXJyZW50Tm9kZSgpOwogICAg
ICAgICBub2RlLT5yZW1vdmUoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtODU0LDcgKzg1Myw3IEBA
IHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUp
OworICAgIGF1dG8mIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7CiAKICAgICAv
LyBUaGUgZWxlbWVudCdzIHBhcmVudCBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gcmVtb3ZlZCBmcm9t
IGRvY3VtZW50LgogICAgIC8vIFBhcnNpbmcgY29udGludWVzIGluIHRoaXMgY2FzZSwgYnV0IHNj
cmlwdHMgYXJlbid0IGV4ZWN1dGVkLgpAQCAtODYzLDggKzg2Miw3IEBAIHZvaWQgWE1MRG9jdW1l
bnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBT
Y3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgm
ZWxlbWVudCk7Ci0gICAgaWYgKCFzY3JpcHRFbGVtZW50KSB7CisgICAgaWYgKCFpc1NjcmlwdEVs
ZW1lbnQoZWxlbWVudCkpIHsKICAgICAgICAgcG9wQ3VycmVudE5vZGUoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTg3MywxNSArODcxLDE2IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6
OmVuZEVsZW1lbnROcygpCiAgICAgQVNTRVJUKCFtX3BlbmRpbmdTY3JpcHQpOwogICAgIG1fcmVx
dWVzdGluZ1NjcmlwdCA9IHRydWU7CiAKLSAgICBpZiAoc2NyaXB0RWxlbWVudC0+cHJlcGFyZVNj
cmlwdChtX3NjcmlwdFN0YXJ0UG9zaXRpb24sIFNjcmlwdEVsZW1lbnQ6OkFsbG93TGVnYWN5VHlw
ZUluVHlwZUF0dHJpYnV0ZSkpIHsKKyAgICBhdXRvJiBzY3JpcHRFbGVtZW50ID0gZG93bmNhc3RT
Y3JpcHRFbGVtZW50KGVsZW1lbnQpOworICAgIGlmIChzY3JpcHRFbGVtZW50LnByZXBhcmVTY3Jp
cHQobV9zY3JpcHRTdGFydFBvc2l0aW9uLCBTY3JpcHRFbGVtZW50OjpBbGxvd0xlZ2FjeVR5cGVJ
blR5cGVBdHRyaWJ1dGUpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBTY3JpcHQgZXhlY3V0aW9uIHNo
b3VsZCBiZSBzaGFyZWQgYmV0d2VlbgogICAgICAgICAvLyB0aGUgbGlieG1sMiBhbmQgUXQgWE1M
RG9jdW1lbnRQYXJzZXIgaW1wbGVtZW50YXRpb25zLgogCi0gICAgICAgIGlmIChzY3JpcHRFbGVt
ZW50LT5yZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgpKQotICAgICAgICAgICAgc2NyaXB0RWxlbWVu
dC0+ZXhlY3V0ZUNsYXNzaWNTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRFbGVtZW50LT5z
Y3JpcHRDb250ZW50KCksIGRvY3VtZW50KCktPnVybCgpLCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24p
KTsKLSAgICAgICAgZWxzZSBpZiAoc2NyaXB0RWxlbWVudC0+d2lsbEJlUGFyc2VyRXhlY3V0ZWQo
KSAmJiBzY3JpcHRFbGVtZW50LT5sb2FkYWJsZVNjcmlwdCgpKSB7Ci0gICAgICAgICAgICBtX3Bl
bmRpbmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoZWxlbWVudCwgKnNjcmlwdEVsZW1l
bnQtPmxvYWRhYmxlU2NyaXB0KCkpOwotICAgICAgICAgICAgbV9wZW5kaW5nU2NyaXB0LT5zZXRD
bGllbnQodGhpcyk7CisgICAgICAgIGlmIChzY3JpcHRFbGVtZW50LnJlYWR5VG9CZVBhcnNlckV4
ZWN1dGVkKCkpCisgICAgICAgICAgICBzY3JpcHRFbGVtZW50LmV4ZWN1dGVDbGFzc2ljU2NyaXB0
KFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0RWxlbWVudC5zY3JpcHRDb250ZW50KCksIGRvY3VtZW50
KCktPnVybCgpLCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24pKTsKKyAgICAgICAgZWxzZSBpZiAoc2Ny
aXB0RWxlbWVudC53aWxsQmVQYXJzZXJFeGVjdXRlZCgpICYmIHNjcmlwdEVsZW1lbnQubG9hZGFi
bGVTY3JpcHQoKSkgeworICAgICAgICAgICAgbV9wZW5kaW5nU2NyaXB0ID0gUGVuZGluZ1Njcmlw
dDo6Y3JlYXRlKHNjcmlwdEVsZW1lbnQsICpzY3JpcHRFbGVtZW50LmxvYWRhYmxlU2NyaXB0KCkp
OworICAgICAgICAgICAgbV9wZW5kaW5nU2NyaXB0LT5zZXRDbGllbnQoKnRoaXMpOwogCiAgICAg
ICAgICAgICAvLyBtX3BlbmRpbmdTY3JpcHQgd2lsbCBiZSBudWxscHRyIGlmIHNjcmlwdCB3YXMg
YWxyZWFkeSBsb2FkZWQgYW5kIHNldENsaWVudCgpIGV4ZWN1dGVkIGl0LgogICAgICAgICAgICAg
aWYgKG1fcGVuZGluZ1NjcmlwdCkKQEAgLTg5NiwxOSArODk1LDE5IEBAIHZvaWQgWE1MRG9jdW1l
bnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgcG9wQ3VycmVudE5vZGUoKTsKIH0KIAotdm9p
ZCBYTUxEb2N1bWVudFBhcnNlcjo6Y2hhcmFjdGVycyhjb25zdCB4bWxDaGFyKiBzLCBpbnQgbGVu
KQordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6Y2hhcmFjdGVycyhjb25zdCB4bWxDaGFyKiBjaGFy
YWN0ZXJzLCBpbnQgbGVuZ3RoKQogewogICAgIGlmIChpc1N0b3BwZWQoKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgaWYgKG1fcGFyc2VyUGF1c2VkKSB7Ci0gICAgICAgIG1fcGVuZGluZ0NhbGxi
YWNrcy0+YXBwZW5kQ2hhcmFjdGVyc0NhbGxiYWNrKHMsIGxlbik7CisgICAgICAgIG1fcGVuZGlu
Z0NhbGxiYWNrcy0+YXBwZW5kQ2hhcmFjdGVyc0NhbGxiYWNrKGNoYXJhY3RlcnMsIGxlbmd0aCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIW1fbGVhZlRleHROb2RlKQogICAg
ICAgICBjcmVhdGVMZWFmVGV4dE5vZGUoKTsKLSAgICBtX2J1ZmZlcmVkVGV4dC5hcHBlbmQocywg
bGVuKTsKKyAgICBtX2J1ZmZlcmVkVGV4dC5hcHBlbmQoY2hhcmFjdGVycywgbGVuZ3RoKTsKIH0K
IAogdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZXJyb3IoWE1MRXJyb3JzOjpFcnJvclR5cGUgdHlw
ZSwgY29uc3QgY2hhciogbWVzc2FnZSwgdmFfbGlzdCBhcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBjMTAxOTI0ZWE1
ZjFkNjYyOTNiMTk5YTMwMDEyNGRiMmMyM2Y1N2I0Li45MDAwNmViMTAzNjMyNTZlM2E3MjMwN2My
NDRhYWVjYmIxODExZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzEsMTIgKzMxLDYg
QEAKICNpbXBvcnQgPFdlYkNvcmUvRm9jdXNEaXJlY3Rpb24uaD4KICNpbXBvcnQgPHd0Zi9Gb3J3
YXJkLmg+CiAKLSNpZiBQTEFURk9STShJT1MpCi0jaW1wb3J0IDx3dGYvUGxhdGZvcm0uaD4KLSNp
bXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotI2ltcG9ydCA8V2ViQ29yZS9DaHJvbWUuaD4K
LSNlbmRpZgotCiBAY2xhc3MgV2ViVmlldzsKIAogY2xhc3MgV2ViQ2hyb21lQ2xpZW50IDogcHVi
bGljIFdlYkNvcmU6OkNocm9tZUNsaWVudCB7CkBAIC0xMjUsNyArMTE5LDcgQEAgcHVibGljOgog
I2VuZGlmCiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSosIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KSBvdmVycmlkZTsKLSAgICB2b2lkIGxvYWRJY29uRm9y
RmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVy
Kikgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6
OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpIG92ZXJyaWRlOwogCiAjaWYgIVBM
QVRGT1JNKElPUykKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBv
dmVycmlkZTsKQEAgLTIxNCwxMSArMjA4LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzUmVsZXZh
bnRTZWxlY3Rpb25TZXJ2aWNlcyhib29sIGlzVGV4dE9ubHkpIGNvbnN0IG92ZXJyaWRlOwogI2Vu
ZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCiAgICAgV2ViVmlldyogd2ViVmlldygpIGNvbnN0IHsg
cmV0dXJuIG1fd2ViVmlldzsgfQotI2Vsc2UKLSAgICBXZWJWaWV3KiB3ZWJWaWV3KCkgeyByZXR1
cm4gbV93ZWJWaWV3OyB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpICYmICFQTEFURk9STShJT1MpCiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tl
ckNsaWVudCh1aW50NjRfdCAvKmNvbnRleHRJZCovKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCBiY2Vh
ZmQ1MTE2NTMyMmIzYWRiYTc5NGMwYzFmNThkYjVjZTE5YThiLi5kN2VjOGNiMWI0NmFiNzgxOGUw
ZGUyMjQxMjZjYWE1YTA2NWRhMjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBA
IC03NTcsOSArNzU3LDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFt
ZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IGNob29zZXIpCiAgICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUljb25Mb2FkZXIqIGljb25Mb2Fk
ZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciYgaWNvbkxvYWRlcikKIHsKLSAgICBp
Y29uTG9hZGVyLT5ub3RpZnlGaW5pc2hlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5h
bWVzKSk7CisgICAgaWNvbkxvYWRlci5pY29uTG9hZGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxl
cyhmaWxlbmFtZXMpKTsKIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAwM2Q4
YTI2ZDkzOGYxMjY3MDViMDBlNjMxYTUzMzgyNjY3NjMzMTc5Li5mMjRlNjMzNDQ1ZTQzNTViM2I0
MjhmOTk4N2RjNDJmODEyYzFiZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA2LTIwMDgsIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTY4MCw5ICs2
ODAsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1Jl
ZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZUNob29zZQogICAgIC8vIEZJWE1FOiBTaG93IHNvbWUg
c29ydCBvZiBlcnJvciBpZiB0b28gbWFueSBmaWxlcyBhcmUgc2VsZWN0ZWQgYW5kIHRoZSBidWZm
ZXIgaXMgdG9vIHNtYWxsLiAgRm9yIG5vdywgdGhpcyB3aWxsIGZhaWwgc2lsZW50bHkuCiB9CiAK
LXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6
OlN0cmluZz4mIGZpbGVuYW1lcywgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqIGxvYWRlcikKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0
cmluZz4mIGZpbGVuYW1lcywgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXImIGxvYWRlcikKIHsKLSAg
ICBsb2FkZXItPm5vdGlmeUZpbmlzaGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFt
ZXMpKTsKKyAgICBsb2FkZXIuaWNvbkxvYWRlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmls
ZW5hbWVzKSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRDdXJzb3IoY29uc3QgQ3Vy
c29yJiBjdXJzb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCmluZGV4IDg5ZDZjODc0YmQ0NGY5Y2Q2ZWQ1NWIwNjBiZGZjZGI4NzM2
ZmMyODIuLjM0OGY0YzM1ZWY3MjBmYjk5ZDg3ZDY0M2VkYzg1YTlkMDE1Y2RjZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNi0yMDA5LCAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CkBAIC0xMTYsNyArMTE2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVk
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50
NjRfdCB0b3RhbFNwYWNlTmVlZGVkKTsKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwo
V2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPik7Ci0gICAg
dmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYs
IFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9y
RmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVy
Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYp
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggN2YwZTc1ZGNiOTgyM2JiMmRkYzEwY2U2MDkx
ZDE5NDRhZDkyMmE3NS4uZGMzZmVkNWM5YmJmZTMwYzhiZDIwYWVlOWU5YjAxZDgyZGZlNGZlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNzYxLDkgKzc2MSw5IEBAIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9v
c2VyPiBwcnBGaWxlCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1
bk9wZW5QYW5lbCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21G
cmFtZShmcmFtZSksIGZpbGVDaG9vc2VyLT5zZXR0aW5ncygpKSk7CiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFt
ZXMsIEZpbGVJY29uTG9hZGVyKiBsb2FkZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZElj
b25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRl
ciYgbG9hZGVyKQogewotICAgIGxvYWRlci0+bm90aWZ5RmluaXNoZWQoSWNvbjo6Y3JlYXRlSWNv
bkZvckZpbGVzKGZpbGVuYW1lcykpOworICAgIGxvYWRlci5pY29uTG9hZGVkKEljb246OmNyZWF0
ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAppbmRleCAwNWU0YjM1YTFkZTE4YjllYmVmODU0MDUyNmFmYjJhNWVmZGZk
NzZjLi43NmVlMjJlNmU5ZDZiOWNiMzRlMDE4MzkxNWY5OGY2NjE3MzM2OWFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAy
MDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CkBAIC0xODIsNyArMTgyLDcgQEAgcHJpdmF0ZToKICNlbmRpZgog
CiAgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNv
cmU6OkZpbGVDaG9vc2VyPikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKSBvdmVycmlkZTsK
KyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBXZWJDb3Jl
OjpGaWxlSWNvbkxvYWRlciYpIG92ZXJyaWRlOwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICB2
b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298001</attachid>
            <date>2017-01-04 01:27:54 -0800</date>
            <delta_ts>2017-01-04 09:04:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166635-20170104012627.patch</filename>
            <type>text/plain</type>
            <size>690099</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGViYWRhNjQ0NThkNzllNjZhMzk4ZjIz
YWRjZTY5ZTA3ODg1MDA3N2QuLjMwZjQ1YTVkNTkwN2RiNjc0ZWY2ZWI2NmQ4NTg3OTU3ZmQ2M2Ey
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDEtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRt
bCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpt
YWtlUmVmUHRyKTogQWRkZWQuCisKIDIwMTctMDEtMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgVXNlIHByY3RsIHRvIG5hbWUgdGhyZWFkIG9uIExp
bnV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZjkxNzYwY2UzMjJkMmY5OGRlOTg1ODBmOTA5YjFiMzY0YmYxMzNi
Yi4uNmZmMWQzOGMzNjE2ZDFhZWIyMGU5N2ZmMTRiNjc2ODQ1ZDczMTU2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDc3MiBAQAorMjAxNy0wMS0wNCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIgdXNlIGZyb20gdGhlICJodG1sIiBkaXJl
Y3RvcnksIG90aGVyIGltcHJvdmVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY2NjM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogUmVtb3ZlZCB0aGUgZHVwbGljYXRl
IGNvcGllcyBvZiBhbGwgdGhlIFdlYkdMLXNwZWNpZmljIGZpbGVzCisgICAgICAgIGluIHRoZSBt
YWluIGxpc3Qgb2Ygc291cmNlIGZpbGVzOyB0aGVyZSBpcyBubyB2YWx1ZSBpbiBsaXN0aW5nIHRo
ZW0gdHdpY2UuCisgICAgICAgIFJlcGxhY2VkIFdlYkdMR2V0SW5mby5jcHAgd2l0aCBXZWJHTEFu
eS5jcHAuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIpOiBVcGRh
dGVzIHNpbmNlIHRoZSB0cmFja3MgZnVuY3Rpb25zCisgICAgICAgIHJldHVybiByZWZlcmVuY2Vz
IG5vdy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUZhc3RT
ZWVrVGltZUZvck1lZGlhVGltZSk6IFJlbW92ZWQKKyAgICAgICAgdW5uZWVkZWQgU291cmNlQnVm
ZmVyUHJpdmF0ZSogYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OmFw
cGVuZEJ1ZmZlclRpbWVyRmlyZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlUmVu
ZGVyaW5nRXJyb3IpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dmlk
ZW9UcmFja3MpOiBSZXR1cm4gYSByZWZlcmVuY2UgcmF0aGVyIHRoYW4gYSBwb2ludGVyLgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjphdWRpb1RyYWNrcyk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjp0ZXh0VHJhY2tzKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlh
bGl6YXRpb25TZWdtZW50KToKKyAgICAgICAgUmVtb3ZlZCB1bm5lZWRlZCBTb3VyY2VCdWZmZXJQ
cml2YXRlKiBhcmd1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dmFsaWRh
dGVJbml0aWFsaXphdGlvblNlZ21lbnQpOiBVcGRhdGVkIHNpbmNlIHRyYWNrcworICAgICAgICBm
dW5jdGlvbnMgbm93IHJldHVybiBhIHBvaW50ZXIuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VC
dWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKTogUmVtb3ZlZCB1bm5l
ZWRlZAorICAgICAgICBTb3VyY2VCdWZmZXJQcml2YXRlKiBhcmd1bWVudC4KKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNW
aWRlbyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjp2aWRlb1RyYWNr
U2VsZWN0ZWRDaGFuZ2VkKTogVGFrZSBhIHJlZmVyZW5jZSByYXRoZXIgdGhhbgorICAgICAgICBh
IHBvaW50ZXIuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OmF1ZGlvVHJhY2tFbmFi
bGVkQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjp0ZXh0
VHJhY2tNb2RlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
Ojp0ZXh0VHJhY2tBZGRDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
cjo6dGV4dFRyYWNrQWRkQ3Vlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyOjp0ZXh0VHJhY2tSZW1vdmVDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3Vlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
U291cmNlQnVmZmVyOjp0ZXh0VHJhY2tLaW5kQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JN
b3JlU2FtcGxlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpwcm92
aWRlTWVkaWFEYXRhKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnJl
ZW5xdWV1ZU1lZGlhRm9yVGltZSk6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IFJlcGxhY2VkIFdlYkdMR2V0SW5m
byB3aXRoIFdlYkdMQW55LgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9IVE1MQ2FudmFzU3R5
bGUpOiBSZW1vdmVkIGV4cGxpY2l0IGNhc3QgdG8gQ2FudmFzU3R5bGUgYW5kIHVubmVlZGVkCisg
ICAgICAgIGNvbnZlcnNpb24gdG8gYSBwb2ludGVyIHNpbmNlIENhbnZhc1N0eWxlIGNvbnN0cnVj
dG9ycyBub3cgdGFrZSByZWZlcmVuY2VzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNQbHVn
aW5FbGVtZW50RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBsdWdpbkluc3RhbmNl
KTogVXBkYXRlZCBzaW5jZSBiaW5kaW5nc0luc3RhbmNlIG5vdyByZXR1cm5zIGEgcmF3IHBvaW50
ZXIuCisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5TY3JpcHRPYmplY3QpOiBEaXR0by4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0pTKTogTW92ZWQgdG8gV2ViR0xBbnkuaC9jcHAuCisgICAgICAg
IChXZWJDb3JlOjpKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEluZGV4ZWRQYXJhbWV0ZXIp
OiBVcGRhdGVkIHNpbmNlIHRoZSB0b0pTCisgICAgICAgIGZ1bmN0aW9uIGluIFdlYkdMQW55Lmgg
dGFrZXMgcmVmZXJlbmNlcywgbm90IHBvaW50ZXJzLgorCisgICAgICAgICogYmluZGluZ3MvanMv
SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9tLmNwcDogUmVtb3ZlZCBxdWl0ZSBhIGZl
dyB1bm5lZWRlZAorICAgICAgICBpbmNsdWRlcyBhbmQgZ290IHJpZCBvZiBhIGxvdCBvZiB1bm5l
ZWRlZCBKU0MgcHJlZml4ZXMuCisgICAgICAgIChXZWJDb3JlOjp0b0pTKTogTW92ZWQgdG8gV2Vi
R0xBbnkuaC9jcHAuCisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Om9iamVjdFBhcmFtZXRlcik6IFJlbmFtZWQgZnJvbSBnZXRPYmplY3RQYXJh
bWV0ZXIgYW5kIGFsc28gY2hhbmdlZCB0bworICAgICAgICB0YWtlIGEgcG9pbnRlciB0byBtZW1i
ZXIgZnVuY3Rpb24gc28gd2UgZG9uJ3QgbmVlZCBhbiBlbnVtIGFuZCBhIHN3aXRjaCBzdGF0ZW1l
bnQuCisgICAgICAgIChXZWJDb3JlOjp0b0pTKTogQ2hhbmdlZCB0byB0YWtlIHJlZmVyZW5jZXMg
cmF0aGVyIHRoYW4gcG9pbnRlcnMuCisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldEF0dGFjaGVkU2hhZGVycyk6IFVzZSBhIG1vZGVybiBmb3IgbG9vcC4K
KyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVy
UGFyYW1ldGVyKTogVXNlIG9iamVjdFBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6OkpTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRl
eEF0dHJpYik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6dG9OdW1iZXJWZWN0b3IpOiBSZW5h
bWVkIGZyb20gdG9WZWN0b3IsIHNpbmNlIHRoaXMgaXMgc3BlY2lmaWNhbGx5IGZvcgorICAgICAg
ICB2ZWN0b3JzIG9mIG51bWJlcnMuIFVzZSB1bmNoZWNrZWRBcHBlbmQgaW5zdGVhZCBvZiBhc3Np
Z25tZW50LgorICAgICAgICAoV2ViQ29yZTo6ZnVuY3Rpb25Gb3JVbmlmb3JtKTogTWFya2VkIHRo
aXMgaW5saW5lLgorICAgICAgICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uZik6IFVwZGF0ZWQgZm9y
IGFib3ZlIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25pKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25NYXRyaXgpOiBEaXR0by4KKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKTogTW92ZWQgYXNzZXJ0aW9ucyB0byB0aGUgdG9w
IG9mIHRoZSBmdW5jdGlvbi4KKyAgICAgICAgQWxzbyBhZGRlZCBhIEZJWE1FIGJlY2F1c2UgaXQn
cyB1bmNsZWFyIHdoeSB0aGVzZSBhc3NlcnRpb25zIGFyZSBjb3JyZWN0LiBVcGRhdGVkCisgICAg
ICAgIHRvIHVzZSBkb3duY2FzdFNjcmlwdEVsZW1lbnQgaW5zdGVhZCBvZiB0b1NjcmlwdEVsZW1l
bnRJZlBvc3NpYmxlLgorCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6IFNvcnRlZCBsaXN0IG9m
IGZvcndhcmQtZGVjbGFyZWQgY2xhc3Nlcy4gUmVtb3ZlZCBkdXBsaWNhdGUKKyAgICAgICAgZm9y
d2FyZCBkZWNsYXJhdGlvbiBvZiBTY3JpcHRNb2R1bGVMb2FkZXIuCisKKyAgICAgICAgKiBkb20v
UGVuZGluZ1NjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nU2NyaXB0OjpjcmVh
dGUpOiBUYWtlIGEgU2NyaXB0RWxlbWVudCBpbnN0ZWFkIG9mIGFuIEVsZW1lbnQuCisgICAgICAg
IChXZWJDb3JlOjpQZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpQZW5kaW5nU2NyaXB0Ojpsb2FkYWJsZVNjcmlwdCk6IE1vdmVkIGlubGluZSB0
byBoZWFkZXIgYW5kIG1hZGUgaW5saW5lLgorICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ1Njcmlw
dDo6c2V0Q2xpZW50KTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgcG9pbnRlci4KKyAg
ICAgICAgKiBkb20vUGVuZGluZ1NjcmlwdC5oOiBVUGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgor
CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdCk6IFBhc3MgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBh
IHBvaW50ZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpyZWYpOiBBZGRlZC4g
Rm9yd2FyZHMgcmVmL2RlcmVmIHRvIHRoZSB1bmRlcmx5aW5nIGVsZW1lbnQKKyAgICAgICAgc28g
d2UgY2FuIHVzZSBSZWYgYW5kIFJlZlB0ciB3aXRoIHRoaXMgY2xhc3MuCisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRFbGVtZW50OjpkZXJlZik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6aXNT
Y3JpcHRFbGVtZW50KTogQWRkZWQuIFJlcGxhY2VzIG9uZSBvZiB0aGUgdHdvIHVzZXMgb2YKKyAg
ICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSwgYW5kIGlzIHNpbWlsYXIgaW4gc3R5bGUg
dG8gaXM8RWxlbWVudD4uCisgICAgICAgIChXZWJDb3JlOjpkb3duY2FzdFNjcmlwdEVsZW1lbnQp
OiBEaXR0bywgYnV0IGZvciBkb3duY2FzdC4KKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5o
OiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9yRXhl
Y3V0aW9uKTogVGFrZSByZWZlcmVuY2UgcmF0aGVyIHRoYW4KKyAgICAgICAgcG9pbnRlciwgYW5k
IHBhc3MgU2NyaXB0RWxlbWVudCByYXRoZXIgdGhhbiBFbGVtZW50LgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0UnVubmVyOjpub3RpZnlGaW5pc2hlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKTogRGl0dG8uCisgICAgICAgICogZG9tL1Njcmlw
dFJ1bm5lci5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmZpbGVz
KTogVXBkYXRlZCBzaW5jZSBtX2ZpbGVMaXN0IGlzIGEgUmVmLgorICAgICAgICAoV2ViQ29yZTo6
RmlsZUlucHV0VHlwZTo6Y3JlYXRlRmlsZUxpc3QpOiBVcGRhdGVkIHRvIHJldHVybiBhIFJlZiBp
bnN0ZWFkIG9mCisgICAgICAgIGEgUGFzc1JlZlB0ci4gQWxzbyB1c2UgcmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eS91bmNoZWNrZWRBcHBlbmQuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBl
OjpyZXF1ZXN0SWNvbik6IFVwZGF0ZWQgc2luY2UgdGhlIHVwZGF0ZVJlbmRlcmluZworICAgICAg
ICBmdW5jdGlvbiBpcyBub3cgY2FsbGVkIGljb25Mb2FkZWQuIEFsc28gdXNlIHJlZmVyZW5jZXMg
aW5zdGVhZCBvZiBwb2ludGVycy4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OnNl
dEZpbGVzKTogVGFrZSBhIFJlZlB0ciYmIGluc3RlZCBvZiBhIFBhc3NSZWZQdHIuCisgICAgICAg
IEFsc28gcHV0IHNvbWUgY29uZGl0aW9uYWwgY29kZSBpbnNpZGUgYW4gI2lmLgorICAgICAgICAo
V2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4pOiBVcGRhdGVkIGZvciBmdW5jdGlv
biBuYW1lIGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6Omljb25Mb2Fk
ZWQpOiBSZW5hbWVkIGZyb20gdXBkYXRlUmVuZGVyaW5nLgorICAgICAgICBDaGFuZ2VkIGFyZ3Vt
ZW50IHRvIFJlZlB0ciYmIGZyb20gUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJ
bnB1dFR5cGU6OmRlZmF1bHRUb29sVGlwKTogR290IHJpZCBvZiB1bm5lZWRlZCBsb2NhbCB2YXJp
YWJsZQorICAgICAgICBhbmQgdXNlZCB0aGUgY29ycmVjdCB0eXBlLCB1bnNpZ25lZCwgcmF0aGVy
IHRoYW4gc2l6ZV90LgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5oOiBVcGRhdGVkIGZv
ciB0aGUgYWJvdmUgY2hhbmdlcywgdXNlIGZpbmFsIGluc3RlYWQKKyAgICAgICAgb2Ygb3ZlcnJp
ZGUsIGFuZCB1c2UgUmVmIGluc3RlYWQgb2YgUmVmUHRyLgorCisgICAgICAgICogaHRtbC9IVE1M
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6Zm9ybSk6IFJlbmFt
ZWQgZnJvbSB2aXJ0dWFsRm9ybS4KKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6IFJlcGxh
Y2VkIHRoZSBmb3JtL3ZpcnR1YWxGb3JtIHBhaXIgb2YgZnVuY3Rpb25zIHdpdGgKKyAgICAgICAg
anVzdCBhIGZvcm0gZnVuY3Rpb24uIFRoZSBvbGQgZGVzaWduIGRhdGVzIGJhY2sgYmVmb3JlIHdl
IGhhZCAiZmluYWwiIGZvcgorICAgICAgICB2aXJ0dWFsIGZ1bmN0aW9ucywgYW5kIG5vdyB3ZSBj
YW4ganVzdCB1c2UgdGhhdCBpbnN0ZWFkLgorCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OnZpcnR1YWxGb3JtKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuaDogTWFyayB0aGUgZm9ybSBmdW5jdGlvbiBmaW5hbCwgc2luY2UgaXQncworICAgICAg
ICBub3cgYm90aCBhbiBpbmxpbmUgZnVuY3Rpb24gaW4gdGhpcyBjbGFzcywgYW5kIGFuIG92ZXJy
aWRlIG9mIGEgdmlydHVhbAorICAgICAgICBmdW5jdGlvbiBpbmhlcml0ZWQgZnJvbSB0aGUgYmFz
ZSBjbGFzcy4gRGVsZXRlZCB0aGUgdmlydHVhbEZvcm0gZnVuY3Rpb24uCisKKyAgICAgICAgKiBo
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6IFJlbW92ZWQgdXNlIG9mIHRoZQorICAgICAgICBm
b3JtRm9yU3VibWlzc2lvbiBmdW5jdGlvbiwgd2hpY2ggd2FzIGp1c3QgYW5vdGhlciB3YXkgdG8g
Z2V0IHRoZSBzYW1lCisgICAgICAgIHRoaW5nIGFzIHRoZSBmb3JtIGZ1bmN0aW9uOyBwZXJoYXBz
IHRoZXkgd2VyZSBkaWZmZXJlbnQgaW4gdGhlIHBhc3QuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50OjpzZXRGaWxlcyk6IFRha2UgYSBSZWZQdHImJiByYXRoZXIgdGhhbiBhIFBh
c3NSZWZQdHIuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6IFVwZGF0ZWQgZm9y
IHRoZSBhYm92ZS4KKworICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9sKTogTWFkZSB0aGlzIGNvbnN0
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTExhYmVsRWxlbWVudDo6Zm9ybSk6IE1hZGUgdGhpcyBj
b25zdCwgc28gaXQgY2FuIGJlIHVzZWQgdG8KKyAgICAgICAgb3ZlcnJpZGUgdGhlIGNvbnN0IGZv
cm0gZnVuY3Rpb24gZnJvbSB0aGUgYmFzZSBjbGFzcy4KKyAgICAgICAgKiBodG1sL0hUTUxMYWJl
bEVsZW1lbnQuaDogTWFya2VkIHRoZSBmb3JtIGZ1bmN0aW9uIGZpbmFsLCBzaW5jZSB3ZSB3YW50
IGl0CisgICAgICAgIHRvIG92ZXJyaWRlIHRoZSBmb3JtIGZ1bmN0aW9uIGluaGVyaXRlZCBmcm9t
IEhUTUxFbGVtZW50LgorCisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTGVnZW5kRWxlbWVudDo6Zm9ybSk6IFJlbmFtZWQgZnJvbSB2
aXJ0dWFsRm9ybS4KKyAgICAgICAgKiBodG1sL0hUTUxMZWdlbmRFbGVtZW50Lmg6IE92ZXJyaWRl
IGZvcm0gaW5zdGVhZCBvZiB2aXJ0dWFsRm9ybSBhbmQgbWFyayBpdCBmaW5hbAorICAgICAgICBU
aGlzIG1ha2VzIHRoaW5ncyBtb3JlIGVmZmljaWVudCBpZiBzb21lb25lIGNhbGxzIGZvcm0gZGly
ZWN0bHkgb24gdGhpcyBjbGFzczsKKyAgICAgICAgYmVmb3JlIGl0IHdvdWxkIG1ha2UgYW4gdW5u
ZWNlc3NhcnkgdmlydHVhbCBmdW5jdGlvbiBjYWxsLgorCisgICAgICAgICogaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrRGlzcGxheVVwZGF0ZVNjb3Bl
OjpUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSk6IFRha2UgYSByZWZlcmVuY2UKKyAgICAgICAgcmF0
aGVyIHRoYW4gYSBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tEaXNwbGF5VXBkYXRl
U2NvcGU6On5UcmFja0Rpc3BsYXlVcGRhdGVTY29wZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6ZXZlbnRUaW1lQ3VlQ29tcGFyZSk6IENvbXBhcmUgdGhlIGN1ZXMgdGhlIHNhbWUgd2F5IHRo
ZSBjdWUgbGlzdCB3b3VsZAorICAgICAgICByYXRoZXIgdGhhbiB1c2luZyBjdWVJbmRleC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdl
ZCk6IFRha2UgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
Ojp0ZXh0VHJhY2tNb2RlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlbW92
ZUN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRU
cmFja0FkZEN1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
dGV4dFRyYWNrUmVtb3ZlQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjptZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJhY2spOiBQYXNzIHJlZmVyZW5jZXMuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckRpZEFkZFRleHRU
cmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQ
bGF5ZXJEaWRBZGRWaWRlb1RyYWNrKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjpyZW1vdmVUZXh0VHJhY2spOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OmZvcmdldFJlc291cmNlU3BlY2lmaWNUcmFja3MpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldENvbnRyb2xsZXIpOiBUYWtlIGEg
UmVmUHRyJiYgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlh
RWxlbWVudC5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVu
dDo6dmlydHVhbEZvcm0pOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1l
bnQuaDogTWFkZSB0aGUgZm9ybSBmdW5jdGlvbiBpbmxpbmUgYW5kIGZpbmFsLCB3aGljaAorICAg
ICAgICBhY2hpZXZlcyB0aGUgc2FtZSB0aGluZyB3ZSBkaWQgYmVmb3JlIHdpdGggdXNpbmcsIGJ1
dCB3aXRob3V0IHJlcXVpcmluZyB0aGUKKyAgICAgICAgc2VwYXJhdGUgdmlydHVhbEZvcm0gZnVu
Y3Rpb24sIG5vdyBkZWxldGVkLgorCisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvbklu
bmVyVGV4dCk6IFVzZSBpc1NjcmlwdEVsZW1lbnQKKyAgICAgICAgaW5zdGVhZCBvZiB0b1Njcmlw
dEVsZW1lbnRJZlBvc3NpYmxlLgorCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6YmluZGluZ3NJbnN0YW5j
ZSk6IFJlbmFtZWQgZnJvbSBnZXRJbnN0YW5jZSBhbmQKKyAgICAgICAgY2hhbmdlZCB0aGUgcmV0
dXJuIHR5cGUgdG8gYSByYXcgcG9pbnRlci4KKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5FbGVt
ZW50Lmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZSBjaGFuZ2VzLiBBbHNvIGNoYW5nZWQgdGhlCisg
ICAgICAgIHVwZGF0ZVNuYXBzaG90IGZ1bmN0aW9uIHRvIHRha2UgYSByYXcgcG9pbnRlciBpbnN0
ZWFkIG9mIGEgUGFzc1JlZlB0ci4KKworICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIpOiBQYXNzIGEgcG9pbnRlcgorICAgICAgICB0byB1cGRhdGVTbmFw
c2hvdC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnVwZGF0ZVNu
YXBzaG90KTogVXBkYXRlZCB0byB0YWtlIGEgcmF3CisgICAgICAgIHBvaW50ZXIgaW5zdGVhZCBv
ZiBhIFBhc3NSZWZQdHIuCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg6
IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRF
bGVtZW50Lmg6IEFkZGVkIHVzaW5nIHRvIHJlc29sdmUgdGhlIGFtYmlndWl0eSB3aXRoIHRoZQor
ICAgICAgICByZWYvZGVyZWYgZnJvbSBIVE1MRWxlbWVudCBhbmQgZnJvbSBTY3JpcHRFbGVtZW50
LgorCisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0aW9uKTogUmV0
dXJuIGEgUmVmUHRyIGluc3RlYWQKKyAgICAgICAgb2YgYSBQYXNzUmVmUHRyLgorICAgICAgICAq
IGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hh
bmdlcy4KKworICAgICAgICAqIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tLaW5kQ2hhbmdlZCk6IFRha2UgYSBy
ZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tN
b2RlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6
dGV4dFRyYWNrQWRkQ3Vlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxl
bWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3Vlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUpOiBEaXR0by4KKyAgICAgICAg
KiBodG1sL0hUTUxUcmFja0VsZW1lbnQuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKwor
ICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlw
ZTo6Zm9ybUZvclN1Ym1pc3Npb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRU
eXBlOjpzZXRGaWxlcyk6IFRha2UgYSBSZWZQdHImJiBpbnN0ZWFkIG9mIGEgUGFzc1JlZlB0ci4K
KyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgor
CisgICAgICAgICogaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
bHVnaW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUpOiBQYXNzIGEgcmVm
ZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRG9jdW1lbnQ6OnNldFBsdWdpbkVsZW1l
bnQpOiBUYWtlIGEgcmVmZXJlbmNlIHJhdGhlciB0aGFuCisgICAgICAgIGEgUGFzc1JlZlB0ci4K
KyAgICAgICAgKiBodG1sL1BsdWdpbkRvY3VtZW50Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5n
ZXMuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRTdHJva2VT
dHlsZSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OnNldEZpbGxTdHlsZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKTogRGl0dG8uCisKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52
YXNTdHlsZTo6Q2FudmFzU3R5bGUpOiBSZXdyaXRlIGFsbCBjb25zdHJ1Y3RvcnMgdG8gdXNlIHRo
ZQorICAgICAgICBtX3N0eWxlIHZhcmlhbnQgaW5zdGVhZCBvZiBzZXBhcmF0ZSBtX3R5cGUgYW5k
IG90aGVyIGRhdGEgbWVtYmVycy4gQWxzbworICAgICAgICBjaGFuZ2UgZnJvbSBQYXNzUmVmUHRy
IHRvIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmNyZWF0ZUZy
b21TdHJpbmcpOiBVcGRhdGUgdG8gdXNlIHRoZSB2YXJpYW50LgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzU3R5bGU6OmNyZWF0ZUZyb21TdHJpbmdXaXRoT3ZlcnJpZGVBbHBoYSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmlzRXF1aXZhbGVudENvbG9yKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHlsZTo6aXNFcXVpdmFsZW50UkdCQSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmlzRXF1aXZhbGVudENNWUtBKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUpOiBEZWxldGVk
IGNvcHkgY29uc3RydWN0b3I7IHRoZSBjb21waWxlcgorICAgICAgICBjYW4gbm93IGdlbmVyYXRl
IGEgY29ycmVjdCBjb3B5IG9yIG1vdmUgY29uc3RydWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpD
YW52YXNTdHlsZTo6fkNhbnZhc1N0eWxlKTogRGVsZXRlZC4gQ29tcGlsZXIgZ2VuZXJhdGVzIHRo
aXMKKyAgICAgICAgcHJvcGVybHkgbm93IHdpdGhvdXQgaGVscCBmcm9tIHVzLgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzU3R5bGU6Om9wZXJhdG9yPSk6IERlbGV0ZWQuIFRoZSBjb21waWxlciBj
YW4gbm93IGdlbmVyYXRlCisgICAgICAgIGEgY29ycmVjdCBjb3B5IG9mIG1vdmUgYXNzaWdubWVu
dCBvcGVyYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjphcHBseVN0cm9rZUNv
bG9yKTogVXBkYXRlZCB0byB0YWtlIGEgcmVmZXJlbmNlIGFuZAorICAgICAgICB1c2UgdGhlIHZh
cmlhbnQuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHlsZTo6YXBwbHlGaWxsQ29sb3IpOiBE
aXR0by4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmg6IFJlZGlkIHRoaXMg
Y2xhc3MgdG8gdXNlIGEgdmFyaWFudCBpbnN0ZWFkIG9mCisgICAgICAgIGEgdHlwZSBlbnVtZXJh
dGlvbiBhbmQgYSB1bmlvbi4KKworICAgICAgICAqIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9FU1ZlcnRleEFycmF5T2JqZWN0OjpjcmVh
dGVWZXJ0ZXhBcnJheU9FUyk6IFVwZGF0ZWQgdXNlIG9mIGVudW0KKyAgICAgICAgc2luY2UgaXQn
cyBub3cgYW4gZW51bSBjbGFzcy4KKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRl
cmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dCk6IFVzZSBSZWYmJiBpbnN0ZWFkIG9mCisgICAgICAg
IFJlZlB0ciYmIGZvciB0aGUgR3JhcGhpY3NDb250ZXh0M0QuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplVmVydGV4QXJyYXlPYmplY3RzKTogVXBk
YXRlZCBlbnVtCisgICAgICAgIGFuZCBhbHNvIHVzZSByZWZlcmVuY2VzLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIp
OiBVc2UgbnVsbHB0ciB0bworICAgICAgICByZXR1cm4gbnVsbCByYXRoZXIgdGhhbiB0aGUgb2xk
IGlkaW9tIChkZWZhdWx0LWNvbnN0cnVjdGVkIFdlYkdMR2V0SW5mbykuCisgICAgICAgIChXZWJD
b3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdG9yYWdlMkQpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5UGFyYW1ldGVyKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRTYW1w
bGVyUGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpnZXRTeW5jUGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtQmxvY2tQ
YXJhbWV0ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVZlcnRleEFycmF5KTogVXBkYXRlZCBlbnVt
IGFuZCBhbHNvCisgICAgICAgIHVzZSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24pOiBSZWFycmFuZ2VkIGxvZ2ljIGluIHRo
cmVlIHdheXM6CisgICAgICAgICgxKSBNb3ZlZCBjaGVja3MgZm9yIHdoZXRoZXIgYW4gZXh0ZW5z
aW9uIGlzIHN1cHBvcnRlZCBpbnNpZGUgdGhlIGNhc2UgZm9yIHRoYXQKKyAgICAgICAgZXh0ZW5z
aW9uLCByYXRoZXIgdGhhbiBjb21iaW5pbmcgdGhlIGV4dGVuc2lvbiBuYW1lIGNoZWNrIHdpdGgg
dGhlIGV4dGVuc2lvbnMKKyAgICAgICAgZW5hYmxlZCBjaGVjay4gKDIpIFVzZWQgdGhlIG5ldyBl
bmFibGVTdXBwb3J0ZWRFeHRlbnNpb24gZnVuY3Rpb24gdG8gc2ltcGxpZnkKKyAgICAgICAgbWFu
eSBvZiB0aGUgY2hlY2tzIHRvIGF2b2lkIHJlcGVhdGluZyB0aGUgZXh0ZW5zaW9uIG5hbWUgdHdp
Y2UuICgzKSBDaGFuZ2VkIHRoZQorICAgICAgICBpZGlvbSBzbyB3ZSBzZXQgdGhlIHBvaW50ZXJz
IHRvIG51bGxwdHIgZXhwbGljaXRseSwgcHJlcGFyaW5nIGZvciBhIGZ1dHVyZSB3aGVyZQorICAg
ICAgICB3ZSBtaWdodCBtYWtlIHRoZSBleHRlbnNpb24gcG9pbnRlcnMgdXNlIHN0ZDo6b3B0aW9u
YWwgc28gd2UgY2FuIGNhY2hlIGEgbmVnYXRpdmUKKyAgICAgICAgZm9yIGVhY2ggZXh0ZW5zaW9u
IHRvbywgbm90IGp1c3QgYSBwb3NpdGl2ZSByZXN1bHQuCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKTogVXNlIEFTQ0lJTGl0
ZXJhbC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcik6IFVzZSBudWxscHRyCisgICAgICAgIGFzIGFib3Zl
LiBGb3Igbm9uLW51bGwgdHlwZXMsIHJldHVybiB0aGUgb2JqZWN0IHdpdGhvdXQgY29udmVydGlu
ZywgbGV0dGluZyB0aGUKKyAgICAgICAgV2ViR0xBbnkgY2xhc3MgaGFuZGxlIHRoaW5ncywgZXhj
ZXB0IGZvciBlbnVtZXJhdGlvbnMsIHdoaWNoIHdlIG5lZWQgdG8gZXhwbGljaXRseQorICAgICAg
ICBzdGF0aWNfY2FzdCB0byBhbiBpbnRlZ3JhbCB0eXBlLCBhbmQgdGhpbmdzIHRoYXQgd2lsbCBi
ZSBzdG9yZWQgaW4gdGhlIHZhcmlhbnQgaW4KKyAgICAgICAgYSBSZWZQdHIsIHdoZXJlIHdlIHVz
ZSBtYWtlUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
dmFsaWRhdGVGcmFtZWJ1ZmZlckZ1bmNQYXJhbWV0ZXJzKToKKyAgICAgICAgU2ltcGxpZmllZCBh
bmQgY2xhcmlmaWVkIHRoZSBoYW5kbGluZyBvZiBDT0xPUl9BVFRBQ0hNRU5ULgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKTogUmV0dXJuIFdl
YkdMQW55LCBzYW1lIGlkaW9tIGFzCisgICAgICAgIGRlc2NyaWJlZCBhYm92ZSBmb3IgZ2V0RnJh
bWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMQW55LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0
b0pTKTogSGFuZGxlcyBjb252ZXJzaW9uIHRvIEphdmFTY3JpcHQgdHlwZXMuIFRoaXMgZnVuY3Rp
b24gaXMgYmFzZWQKKyAgICAgICAgb24gdGhlIGV4aXN0aW5nIHRvSlMgZnVuY3Rpb25zIGZyb20g
dGhlIHR3byBjbGFzc2VzIHRoYXQgd2VyZSB1c2luZyBXZWJHTEdldEluZm8uCisgICAgICAgIEV2
ZW50dWFsbHkgd2UgY2FuIHByb2JhYmx5IGp1c3QgZ2V0IHRoZSBiaW5kaW5ncyB0byBhdXRvbWF0
aWNhbGx5IGdlbmVyYXRlIHRoaXMsCisgICAgICAgIGJ1dCB0aGVyZSBpcyBzb21lIHdvcmsgdG8g
ZG8gdG8gZ2V0IHRvIHRoYXQgcG9pbnQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xBbnku
aDogQWRkZWQuIFRoaXMgdHlwZSwgYSB2YXJpYW50LCByZXBsYWNlcyB0aGUgV2ViR0xHZXRJbmZv
CisgICAgICAgIGNsYXNzLiBBbHNvIGluY2x1ZGVzIHRoZSB0b0pTIGZ1bmN0aW9uLCB3aGljaCBp
cyB0aGUgcmVhbCBwb2ludCBvZiB0aGlzIHR5cGUsIHNpbmNlCisgICAgICAgIGl0J3MgYWJvdXQg
cmV0dXJuaW5nIGEgdmFyaWFudCBtYXBwZWQgYXBwcm9wcmlhdGVseSB0byBKYXZhU2NyaXB0IHR5
cGVzLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0R3JvdXA6OmdldEFHcmFwaGljc0NvbnRleHQzRCk6
IENoYW5nZWQgdG8gcmV0dXJuIGEgcmVmZXJlbmNlLgorICAgICAgICBEcm9wZWQgdW5uZWNlc3Nh
cnkgbG9jYWwgdmFyaWFibGUgd2l0aCBhIGxvbmcgdHlwZSBuYW1lLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xDb250ZXh0R3JvdXA6OmFkZENvbnRleHQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0R3JvdXA6OnJlbW92ZUNvbnRleHQpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjpyZW1vdmVPYmplY3QpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjphZGRPYmplY3QpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjpkZXRhY2hBbmRSZW1vdmVB
bGxPYmplY3RzKTogRHJvcHBlZCB1bm5lY2Vzc2FyeQorICAgICAgICBsb2NhbCB2YXJpYWJsZSB3
aXRoIGEgbG9uZyB0eXBlIG5hbWUuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
R3JvdXAuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRl
eHRPYmplY3Q6On5XZWJHTENvbnRleHRPYmplY3QpOiBQYXNzIHJlZmVyZW5jZXMuCisgICAgICAg
IChXZWJDb3JlOjpXZWJHTENvbnRleHRPYmplY3Q6OmRldGFjaENvbnRleHQpOiBEaXR0by4KKwor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmg6IFJlbW92ZWQuCisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQpOiBUYWtlIGEgUmVmJiYg
aW5zdGVhZAorICAgICAgICBvZiBhcyBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplVmVydGV4QXJyYXlPYmplY3RzKTogVXBkYXRl
ZCBlbnVtCisgICAgICAgIGFuZCBhbHNvIHVzZSByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24pOiBSZWFycmFuZ2VkIGxvZ2lj
IGluIHRocmVlIHdheXM6CisgICAgICAgICgxKSBNb3ZlZCBjaGVja3MgZm9yIHdoZXRoZXIgYW4g
ZXh0ZW5zaW9uIGlzIHN1cHBvcnRlZCBpbnNpZGUgdGhlIGNhc2UgZm9yIHRoYXQKKyAgICAgICAg
ZXh0ZW5zaW9uLCByYXRoZXIgdGhhbiBjb21iaW5pbmcgdGhlIGV4dGVuc2lvbiBuYW1lIGNoZWNr
IHdpdGggdGhlIGV4dGVuc2lvbnMKKyAgICAgICAgZW5hYmxlZCBjaGVjay4gKDIpIFVzZWQgdGhl
IG5ldyBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24gZnVuY3Rpb24gdG8gc2ltcGxpZnkKKyAgICAg
ICAgbWFueSBvZiB0aGUgY2hlY2tzIHRvIGF2b2lkIHJlcGVhdGluZyB0aGUgZXh0ZW5zaW9uIG5h
bWUgdHdpY2UuICgzKSBDaGFuZ2VkIHRoZQorICAgICAgICBpZGlvbSBzbyB3ZSBzZXQgdGhlIHBv
aW50ZXJzIHRvIG51bGxwdHIgZXhwbGljaXRseSwgcHJlcGFyaW5nIGZvciBhIGZ1dHVyZSB3aGVy
ZQorICAgICAgICB3ZSBtaWdodCBtYWtlIHRoZSBleHRlbnNpb24gcG9pbnRlcnMgdXNlIHN0ZDo6
b3B0aW9uYWwgc28gd2UgY2FuIGNhY2hlIGEgbmVnYXRpdmUKKyAgICAgICAgZm9yIGVhY2ggZXh0
ZW5zaW9uIHRvbywgbm90IGp1c3QgYSBwb3NpdGl2ZSByZXN1bHQuCisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnMpOiBVc2UgQVND
SUlMaXRlcmFsLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIpOiBVc2UgbnVsbHB0cgorICAgICAgICBhcyBh
Ym92ZS4gRm9yIG5vbi1udWxsIHR5cGVzLCByZXR1cm4gdGhlIG9iamVjdCB3aXRob3V0IGNvbnZl
cnRpbmcsIGxldHRpbmcgdGhlCisgICAgICAgIFdlYkdMQW55IGNsYXNzIGhhbmRsZSB0aGluZ3Ms
IGV4Y2VwdCBmb3IgZW51bWVyYXRpb25zLCB3aGljaCB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkKKyAg
ICAgICAgc3RhdGljX2Nhc3QgdG8gYW4gaW50ZWdyYWwgdHlwZSwgYW5kIHRoaW5ncyB0aGF0IHdp
bGwgYmUgc3RvcmVkIGluIHRoZSB2YXJpYW50IGluCisgICAgICAgIGEgUmVmUHRyLCB3aGVyZSB3
ZSB1c2UgbWFrZVJlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dDo6dmFsaWRhdGVGcmFtZWJ1ZmZlckZ1bmNQYXJhbWV0ZXJzKToKKyAgICAgICAgU2ltcGxpZmll
ZCBhbmQgY2xhcmlmaWVkIHRoZSBoYW5kbGluZyBvZiBDT0xPUl9BVFRBQ0hNRU5UIGFkZGluZyBh
IEZJWE1FIGFib3V0CisgICAgICAgIHNvbWV0aGluZyBxdWVzdGlvbmFibGUuCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcik6IFJldHVybiBXZWJH
TEFueSwgc2FtZSBpZGlvbSBhcworICAgICAgICBkZXNjcmliZWQgYWJvdmUgZm9yIGdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlci4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKTogVXBkYXRlZCB0byBwYXNz
IHJlZmVyZW5jZXMKKyAgICAgICAgaW5zdGVhZCBvZiBwb2ludGVycyBpbiBhIGNvdXBsZSBjYXNl
cworICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSk6IENoYW5nZWQgZ3JhcGhpY3MKKyAgICAgICAgY29udGV4dCBhcmd1
bWVudCB0eXBlIGZyb20gUmVmUHRyJiYgdG8gUmVmJiYuIEFsc28gbW92ZWQgaW5pdGlhbGl6YXRp
b24gb2Ygc2NhbGFycworICAgICAgICBmcm9tIHRoZSBjb25zdHJ1Y3RvciB0byB0aGUgY2xhc3Mg
ZGVmaW5pdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
On5XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZUJ1ZmZlcik6IFBhc3Mg
YSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVGcmFtZWJ1ZmZlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlVGV4dHVyZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRl
UHJvZ3JhbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6Y3JlYXRlUmVuZGVyYnVmZmVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVTaGFkZXIpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZUJ1ZmZlcik6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVyUGFy
YW1ldGVyKTogVXBkYXRlIHRvIHVzZSBXZWJHTEFueS4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJhbWV0ZXIpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRlcmJ1ZmZlclBh
cmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6Z2V0U2hhZGVyUGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0pOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0
dHJpYik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Z2V0VmVydGV4QXR0cmliT2Zmc2V0KTogUmVtb3ZlZCB1bm5uZWVkCisgICAgICAgIHR5cGUg
Y2FzdHMuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0
ZXhBdHRyaWJQb2ludGVyKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlbW92ZVNoYXJlZE9iamVjdCk6IFRha2UgYSByZWZl
cmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphZGRT
aGFyZWRPYmplY3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OnJlbW92ZUNvbnRleHRPYmplY3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZENvbnRleHRPYmplY3QpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJvb2xlYW5QYXJh
bWV0ZXIpOiBDaGFuZ2VkIHJldHVybiB0eXBlOworICAgICAgICBjb25udmVyc2lvbiB0byBXZWJH
TEFueSBjYW4gaGFwcGVuIGF0IHRoZSBwb2ludCBvZiB1c2UuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEZsb2F0
UGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRJbnRQYXJhbWV0ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuc2lnbmVkSW50UGFyYW1ldGVyKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRJbnQ2NFBhcmFt
ZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Z2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxp
ZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0ZXJzKTogVXNlCisgICAgICAgIG9wdGlvbmFsIHRvIHNpbXBs
aWZ5IGxvZ2ljIGFuZCBnZXQgcmlkIG9mIGEgYm9vbGVhbi4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbik6IEFkZGVk
LgorICAgICAgICBIZWxwZXIgdXNlZCBieSB0aGUgZ2V0RXh0ZW5zaW9uIGZ1bmN0aW9ucy4KKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZSBjaGFuZ2VzLgorICAgICAgICBBbHNvIGNoYW5nZWQgc2V0Qm91bmRWZXJ0
ZXhBcnJheU9iamVjdCB0byB0YWtlIGEgcmF3IHBvaW50ZXIgaW5zdGVhZCBvZgorICAgICAgICBh
cyBQYXNzUmVmUHRyLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTaGFyZWRPYmplY3Q6On5XZWJHTFNoYXJlZE9i
amVjdCk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYXJlZE9i
amVjdDo6ZGV0YWNoQ29udGV4dEdyb3VwKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFNoYXJlZE9iamVjdDo6Z2V0QUdyYXBoaWNzQ29udGV4dDNEKTogVXBkYXRlZCBzaW5jZSB0aGUK
KyAgICAgICAgdW5kZXJseWluZyBnZXRBR3JhcGhpY3NDb250ZXh0M0QgZnVuY3Rpb24gbm93IHJl
dHVybnMgYSByZWZlcmVuY2UuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9i
amVjdC5oOiBSZW1vdmVkIG1hbnkgdW51c2VkICJpcyIgdmlydHVhbCBmdW5jdGlvbnMuCisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oOiBEaXR0by4KKworICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlKTogVXBkYXRlZCBmb3IgbmV3
IHR5cGUgZW51bWVyYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFZlcnRleEFycmF5T2JqZWN0OjpkZWxldGVPYmplY3RJbXBsKTogRGl0dG8uCisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oOiBVcGRhdGVkIGZvciBhYm92
ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6
OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKTogVXBkYXRlZCBmb3IgbmV3CisgICAgICAgIHR5
cGUgZW51bWVyYXRpb24gYW5kIG1vdmVkIGluaXRpYWxpemF0aW9uIHRvIGNsYXNzIGRlZmluaXRp
b24uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0RWxl
bWVudEFycmF5QnVmZmVyKTogQ2hhbmdlZCBhcmd1bWVudCB0bworICAgICAgICByYXcgcG9pbnRl
ciBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFy
cmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4QXR0cmliU3RhdGUpOiBDaGFuZ2VkIGFyZ3VtZW50IHRv
CisgICAgICAgIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKTogQ2hhbmdlZCBh
cnVnbWVudCB0eXBlIHRvCisgICAgICAgIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIu
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4
QXR0cmliRGl2aXNvcik6IFJlbW92ZWQgdW5uZWVkZWQKKyAgICAgICAgbG9jYWwgdmFyaWFibGUu
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaDogVXBk
YXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKyAgICAgICAgUmVwbGFjZWQgVkFPVHlwZSB3aXRoIFR5
cGUuIFVzZWQgY2xhc3MgbWVtYmVyIGluaXRpYWxpemF0aW9uLgorCisgICAgICAgICogaHRtbC9j
YW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUpOiBVcGRhdGVkIGZvciBuZXcgdHlwZSBl
bnVtZXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6
OldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVM6On5XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKSBEaXR0
by46CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpkZWxldGVP
YmplY3RJbXBsKTogRGl0dG8uCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdE9FUy5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRt
bC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSWNvbkxv
YWRlcjo6aWNvbkxvYWRlZCk6IFJlbmFtZWQgZnJvbSBub3RpZnlGaW5pc2hlZC4gQWxzbyBjaGFu
Z2VkCisgICAgICAgIHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiB0aGlzIGNhbGxzIHRvIGljb25M
b2FkZWQuIENoYW5nZWQgdGhlIGFyZ3VlbW50IHRvCisgICAgICAgIFJlZlB0ciYmIGluc3RlYWQg
b2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBodG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmg6IFVw
ZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MQ29u
c3RydWN0aW9uU2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0
ZTo6YXR0YWNoTGF0ZXIpOiBVc2UgaXNTY3JpcHRFbGVtZW50IGluc3RlYWQgb2YKKyAgICAgICAg
dG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjppbnNlcnRGb3JlaWduRWxlbWVudCk6IERpdHRvLgorCisgICAgICAgICogaHRt
bC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxE
b2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVCdWlsZGVyKTogUGFzcyBzY3Jp
cHQKKyAgICAgICAgZWxlbWVudCBhcyBhIFJlZiByYXRoZXIgdGhhbiBSZWZQdHIuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OndhdGNoRm9yTG9hZCk6IFBhc3MgYSByZWZl
cmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1M
U2NyaXB0UnVubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OmV4
ZWN1dGVQYXJzaW5nQmxvY2tpbmdTY3JpcHQpOiBEZWxldGVkLiBNb3ZlZCB0aGUgY29kZQorICAg
ICAgICBpbnRvIHRoZSBzaW5nbGUgY2FsbCBzaXRlLCBleGVjdXRlIFBhcnNpbmdCbG9ja2luZ1Nj
cmlwdHMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlUGVuZGlu
Z1NjcmlwdEFuZERpc3BhdGNoRXZlbnQpOiBDaGFuZ2VkIGFyZ3VtZW50CisgICAgICAgIHR5cGUg
dG8gYSByZWZlcmVuY2UgZnJvbSBhIFJlZlB0cjsgdGhpcyBmdW50aW9uIHdhcyBub3QgdGFraW5n
IG93bmVyc2hpcC4gQWxzbyByZW1vdmUKKyAgICAgICAgY2FsbCB0byB0b1NjcmlwdEVsZW1lbnRJ
ZlBvc3NpYmxlLAorICAgICAgICBzaW5jZSBwZW5kaW5nIHNjcmlwdHMgbm93IGNvbnRhaW5zIHNj
cmlwdCBlbGVtZW50cyBhbHJlYWR5LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdFJ1bm5l
cjo6ZXhlY3V0ZSk6IENoYW5nZWQgYXJndW1lbnQgdHlwZSB0byBSZWY8U2NyaXB0RWxlbWVudD4m
JgorICAgICAgICBmcm9tIFBhc3NSZWZQdHI8RWxlbWVudD4uCisgICAgICAgIChXZWJDb3JlOjpI
VE1MU2NyaXB0UnVubmVyOjpleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0cyk6IE1vdmVkIGNv
ZGUgaGVyZSBmcm9tCisgICAgICAgIGV4ZWN1dGVQYXJzaW5nQmxvY2tpbmdTY3JpcHQuIEFsc28g
cGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OmV4
ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclBhcnNpbmcpOiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAg
ICAoV2ViQ29yZTo6cmVxdWVzdFBlbmRpbmdTY3JpcHQpOiBDaGFuZ2VkIGFyZ3VtZW50IHR5cGUg
dG8gU2NyaXB0RWxlbWVudCYgZnJvbQorICAgICAgICBFbGVtZW50Ki4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3REZWZlcnJlZFNj
cmlwdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdFJ1bm5lcjo6cnVuU2Ny
aXB0KTogRGl0dG8uCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5oOiBV
cGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRy
ZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6dGFrZVNj
cmlwdFRvUHJvY2Vzcyk6IENoYW5nZWQgcmV0dXJuIHR5cGUgZnJvbQorICAgICAgICBSZWZQdHI8
RWxlbWVudD4gdG8gUmVmUHRyPFNjcmlwdEVsZW1lbnQ+LgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKTogRG93bmNhc3QgdGhlIHNjcmlwdCBlbGVtZW50
IHRvCisgICAgICAgIEhUTUxTY3JpcHRFbGVtZW50IHNvIHdlIGNhbiBzdG9yZSBpdCBhcyBhIFNj
cmlwdEVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NU
b2tlbkluRm9yZWlnbkNvbnRlbnQpOiBEb3duY2FzdCB0aGUgc2NyaXB0CisgICAgICAgIGVsZW1l
bnQgdG8gU1ZHU2NyaXB0RWxlbWVudCBzbyB3ZSBjYW4gc3RvcmUgaXQgYXMgYSBzY3JpcHQgZWxl
bWVudC4KKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaDogVXBkYXRlZCBm
b3IgYWJvdmUgY2hhbmdlcy4gQ2hhbmdlZCB0aGUgdHlwZQorICAgICAgICBvZiBtX3NjcmlwdFRv
UHJvY2VzcyB0byBSZWZQdHI8U2NyaXB0RWxlbWVudD4uCisKKyAgICAgICAgKiBodG1sL3BhcnNl
ci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwOiBBZGRlZCBub3ctbmVlZGVkIGluY2x1ZGUuCisKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6WFNTQXVkaXRvckRlbGVnYXRlOjpnZW5lcmF0ZVZpb2xhdGlvblJlcG9ydCk6IENoYW5n
ZWQgcmV0dXJuIHR5cGUKKyAgICAgICAgdG8gUmVmIGZyb20gUGFzc1JlZlB0ci4KKyAgICAgICAg
KiBodG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuaDogVXBkYXRlZCBmb3IgYWJvdmUuCisK
KyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9UcmFjazo6QXVkaW9UcmFjayk6IFRha2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvVHJhY2s6OnNldFByaXZhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvVHJhY2s6OnNldEVuYWJsZWQpOiBSZW1vdmVkIHJlZHVuZGFudCBjb2RlIHRvIGRvIHdoYXQg
dGhlCisgICAgICAgIHByaXZhdGUgc2V0RW5hYmxlZCBmdW5jdGlvbiBpcyBhbHJlYWR5IGdvaW5n
IHRvIGRvLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6aW5iYW5kVHJhY2tJbmRleCk6
IFJlbW92ZWQgYXNzZXJ0aW9uIHNpbmNlIG1fcHJpdmF0ZQorICAgICAgICBpcyBub3cgYSBSZWYg
cmF0aGVyIHRoYW4gUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6ZW5hYmxl
ZENoYW5nZWQpOiBBZGRlZCBhbiBlYXJseSBleGl0IHNvIHdlIHdpbGwgb25seQorICAgICAgICBj
YWxsIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCBpZiBtX2VuYWJsZWQgaXMgYWN0dWFsbHkgY2hh
bmdpbmcuIEFsc28gcmVtb3ZlZAorICAgICAgICB0aGUgdW5uZWVkZWQgdHJhY2sgcHJpdmF0ZSBh
cmd1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmlkQ2hhbmdlZCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6bGFiZWxDaGFuZ2VkKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OndpbGxSZW1vdmUpOiBEaXR0by4KKyAgICAgICAg
KiBodG1sL3RyYWNrL0F1ZGlvVHJhY2suaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKwor
ICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKTogUmVtb3ZlZCBpbmJhbmQg
dGV4dCB0cmFjayBwcml2YXRlCisgICAgICAgIGFyZ3VtZW50LiBVc2UgY29udGFpbnMgaW5zdGVh
ZCBvZiBmaW5kL2VuZC4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZERhdGFUZXh0VHJhY2s6OnVw
ZGF0ZURhdGFDdWUpOiBEaXR0by4gVXNlIGdldCBpbnN0ZWFkIG9mIGZpbmQvZW5kLgorICAgICAg
ICAoV2ViQ29yZTo6SW5iYW5kRGF0YVRleHRUcmFjazo6cmVtb3ZlRGF0YUN1ZSk6IERpdHRvLgor
ICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oOiBVcGRhdGVkIGZvciBh
Ym92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRy
YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OkluYmFu
ZEdlbmVyaWNUZXh0VHJhY2spOiBUYWtlIHJlZmVyZW5jZXMuCisgICAgICAgIChXZWJDb3JlOjpJ
bmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnVwZGF0ZUN1ZUZyb21DdWVEYXRhKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjphZGRHZW5lcmljQ3VlKTog
RGl0dG8uIEFsc28gcmVtb3ZlZCB1bnVzZWQKKyAgICAgICAgdHJhY2sgcHJpdmF0ZSBhcmd1bWVu
dC4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnVwZGF0ZUdlbmVy
aWNDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6
OnJlbW92ZUdlbmVyaWNDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZEdlbmVy
aWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3VlRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpuZXdSZWdpb25zUGFy
c2VkKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZEdlbmVy
aWNUZXh0VHJhY2suaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0
bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRl
eHRUcmFjazo6Y3JlYXRlKTogUmV0dXJuIGEgUmVmIGluc3RlYWQgb2YgYSBQYXNzUmVmUHRyLiBU
YWtlCisgICAgICAgIHJlZmVyZW5jZXMuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJh
Y2s6OkluYmFuZFRleHRUcmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4
dFRyYWNrOjpzZXRQcml2YXRlKTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgUGFzc1Jl
ZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6aXNDbG9zZWRDYXB0aW9u
cyk6IFJlbW92ZWQgY2hlY2sgZm9yIG51bGwgc2luY2UgbV9wcml2YXRlCisgICAgICAgIGlzIG5v
dyBhIFJlZiBhbmQgc28gbmV2ZXIgbnVsbC4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRU
cmFjazo6aXNTREgpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6
Y29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJ
bmJhbmRUZXh0VHJhY2s6OmlzTWFpblByb2dyYW1Db250ZW50KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OmlzRWFzeVRvUmVhZCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjppbmJhbmRUcmFja0luZGV4KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OmluQmFuZE1ldGFkYXRhVHJhY2tEaXNwYXRj
aFR5cGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6aWRDaGFu
Z2VkKTogUmVtb3ZlZCB1bm5lZWRlZCB0cmFjayBwcml2YXRlIGFyZ3VtZW50LgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjpsYWJlbENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OndpbGxSZW1vdmUpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKTogSW1w
cm92ZWQgc3dpdGNoIHN0YXRlbWVudAorICAgICAgICBieSByZW1vdmluZyBkZWZhdWx0IHNvIHdl
IGdldCBhIHdhcm5pbmcgaWYgd2UgZm9yZ2V0IHRvIGhhbmRsZSBhIGtpbmQgdmFsdWUuCisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OnN0YXJ0VGltZVZhcmlhbmNlKTogUmVtb3Zl
ZCBjaGVjayBmb3IgbnVsbC4KKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5o
OiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLiBDaGFuZ2VkIG1fcHJpdmF0ZSBmcm9tCisgICAg
ICAgIGEgUmVmUHRyIHRvIGEgUmVmLgorCisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRXZWJW
VFRUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kV2ViVlRUVGV4dFRyYWNr
OjpJbmJhbmRXZWJWVFRUZXh0VHJhY2spOiBUYWtlIHJlZmVyZW5jZXMuCisgICAgICAgIChXZWJD
b3JlOjpJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6SW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURhdGEpOiBSZW1vdmVk
IHVubmVlZGVkIHRyYWNrCisgICAgICAgIHByaXZhdGUgYXJndWVtbnQuCisgICAgICAgIChXZWJD
b3JlOjpJbmJhbmRXZWJWVFRUZXh0VHJhY2s6Om5ld1JlZ2lvbnNQYXJzZWQpOiBQYXNzIGEgcmVm
ZXJlbmNlLgorICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmg6IFVw
ZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL3RyYWNrL0xvYWRhYmxl
VGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRhYmxlVGV4dFRyYWNrOjpuZXdD
dWVzQXZhaWxhYmxlKTogUGFzcyByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29yZTo6TG9hZGFi
bGVUZXh0VHJhY2s6Om5ld1JlZ2lvbnNBdmFpbGFibGUpOiBEaXR0by4KKworICAgICAgICAqIGh0
bWwvdHJhY2svVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6flRl
eHRUcmFjayk6IFVzZSByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpz
ZXRLaW5kKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OnNldE1vZGUpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6cmVtb3ZlQWxsQ3Vlcyk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjphY3RpdmVDdWVzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OmFkZEN1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dFRyYWNrOjpyZW1vdmVDdWUpOiBSZW1vdmVkIHVubmVlZGVkIGNvZGUgdG8gaGFuZGxl
IGEgY3VlCisgICAgICAgIHRoYXQgcG9pbnRzIHRvIGEgdHJhY2sgYnV0IGlzIG5vdCBpbiB0aGF0
IHRyYWNrLiBBZGRlZCBhIGNhbGwgdG8KKyAgICAgICAgc2V0SXNBY3RpdmUoZmFsc2UpIGhlcmUg
aW5zdGVhZCBvZiBoYXZpbmcgdGhlIHJlbW92ZSBmdW5jdGlvbiBkbyBpdC4KKyAgICAgICAgKFdl
YkNvcmU6OlRleHRUcmFjazo6YWRkUmVnaW9uKTogVXNlIHJlZmVyZW5jZXMuCisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2s6OnJlbW92ZVJlZ2lvbik6IFJlbW92ZWQgdW5uZWVkZWQgY29kZSB0
byBoYW5kbGUgYQorICAgICAgICByZWdpb24gdGhhdCBwb2ludHMgdG8gYSB0cmFjayBidXQgaXMg
bm90IGluIHRoYXQgdHJhY2suCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OmN1ZVdpbGxD
aGFuZ2UpOiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6Y3Vl
RGlkQ2hhbmdlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OnNldExhbmd1
YWdlKTogRGl0dG8uCisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suaDogVXBkYXRlZCBm
b3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3VlKTogSW5pdGlh
bGl6ZWQgdGhlIGRhdGEgbWVtYmVycworICAgICAgICBpbiB0aGUgY2xhc3MgZGVmaW5pdGlvbi4K
KyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6Y3VlSW5kZXgpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjppbnZhbGlkYXRlQ3VlSW5kZXgpOiBEZWxldGVk
LgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmg6IFVwZGF0ZWQgZm9yIHRoZSBh
Ym92ZS4gUmVtb3ZlZCBtX2N1ZUluZGV4LAorICAgICAgICBiZWNhdXNlIGl0IGlzIG5vdCBhIGdv
b2QgZGVzaWduIHRvIHN0b3JlIHRoZXNlIGFuZCB0cnkgdG8ga2VlcCB0aGVtIHVwCisgICAgICAg
IHRvIGRhdGUuCisKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y29tcGFyZUN1ZXMpOiBBZGRlZC4gSGVscGVyIGZvciBzb3J0aW5n
IGFuZCBjaGVja2luZyBzb3J0aW5nLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlTGlz
dDo6VGV4dFRyYWNrQ3VlTGlzdCk6IERlbGV0ZWQuIExldCB0aGUgY29tcGlsZXIKKyAgICAgICAg
Z2VuZXJhdGUgdGhpcy4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6Omxlbmd0
aCk6IE1vdmVkIHRvIGhlYWRlci4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6
OmN1ZUluZGV4KTogUmVuYW1lZCBmcm9tIGdldEN1ZUluZGV4LgorICAgICAgICBDaGFuZ2VkIHJl
dHVybiB0eXBlIHRvIHVuc2lnbmVkIHJhdGhlciB0aGFuIHVuc2lnbmVkIGxvbmcuCisgICAgICAg
IChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjppdGVtKTogVXBkYXRlZCBmb3IgbmFtZSBjaGFu
Z2UuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjpnZXRDdWVCeUlkKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjphY3RpdmVDdWVzKTogQnVp
bGQgdGhlIHZlY3RvciBkaXJlY3RseQorICAgICAgICByYXRoZXIgdGhhbiB3YXN0ZWZ1bGx5IGFk
ZGluZyB3aXRoIFRleHRUcmFja0N1ZUxpc3Q6OmFkZCwgd2hpY2ggd2lsbAorICAgICAgICB0cnkg
dG8gc29ydC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6OmFkZCk6IFRha2Ug
YSBSZWYmJiBpbnN0ZWFkIG9mIGEgUGFzc1JlZlB0ci4KKyAgICAgICAgQWxzbywga2VlcCBzb3J0
ZWQgdXNpbmcgc3RkOjp1cHBlcl9ib3VuZCBpbnN0ZWFkIG9mIHRoZSByZWN1cnNpdmUKKyAgICAg
ICAgYmluYXJ5IHNlYXJjaCB0aGlzIGNvZGUgd2FzIHVzaW5nIGJlZm9yZS4gQWxzbyByZW1vdmUg
dGhlCisgICAgICAgIGludmFsaWRhdGVDdWVJbmRleGVzIGNhbGwgc2luY2UgdGhlcmUgYXJlIG5v
IGN1ZSBpbmRpY2VzIGFueSBtb3JlLgorICAgICAgICBBbHNvIHJlbW92ZSB0aGUgYm9vbGVhbiBy
ZXR1cm4gdmFsdWUgc2luY2Ugbm8gY2FsbGVyIHdhcyB1c2luZyBpdC4KKyAgICAgICAgKFdlYkNv
cmU6OlRleHRUcmFja0N1ZUxpc3Q6OnJlbW92ZSk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBv
ZiBhCisgICAgICAgIHBvaW50ZXIuIEFsc28gcmVtb3ZlIHRoZSBib29sZWFuIHJldHVybiB2YWx1
ZSBzaW5jZSBubyBjYWxsZXIgd2FzIHVzaW5nIGl0LgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRy
YWNrQ3VlTGlzdDo6Y29udGFpbnMpOiBEZWxldGVkLiBXYXMgdW51c2VkLgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dFRyYWNrQ3VlTGlzdDo6dXBkYXRlQ3VlSW5kZXgpOiBSZWltcGxlbWVudGVkIHVz
aW5nIHRoZQorICAgICAgICBzdGQ6OnVwcGVyX2JvdW5kIGFuZCBzdGQ6OnJvdGF0ZSBvcGVyYXRp
b25zLiBUaGUgb2xkIGNvZGUgdGhhdCB1c2VkCisgICAgICAgIHJlbW92ZSBhbmQgYWRkIHdhcyBp
bmVmZmljaWVudCBhbmQgYWxzbyBjb3VsZCBjYXVzZSBhIGN1ZSB0byBiZSBkZWFsbG9jYXRlZAor
ICAgICAgICBpZiBzb21ldGhpbmcgZWxzZSB3YXNuJ3QgaG9sZGluZyBhIHJlZmVyZW5jZSB0byB0
aGUgY3VlLiBBbHNvIGNoYW5nZWQgdG8gdGFrZQorICAgICAgICBhIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6OmNsZWFyKTogRGVsZXRlZC4gV2FzIHVudXNl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6OmludmFsaWRhdGVDdWVJbmRl
eGVzKTogRGVsZXRlZC4gTm8gbG9uZ2VyCisgICAgICAgIG5lZWRlZCBzaW5jZSB3ZSBkb24ndCBz
dG9yZSBjdWUgaW5kaWNlcyBpbiB0aGUgY3VlcyBhbnkgbW9yZS4KKyAgICAgICAgKiBodG1sL3Ry
YWNrL1RleHRUcmFja0N1ZUxpc3QuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlIGNoYW5nZXMuCisK
KyAgICAgICAgKiBodG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VlRUUmVnaW9uTGlzdDo6VlRUUmVnaW9uTGlzdCk6IERlbGV0ZWQuIExldCB0aGUgY29tcGls
ZXIKKyAgICAgICAgZ2VuZXJhdGUgdGhpcy4KKyAgICAgICAgKFdlYkNvcmU6OlZUVFJlZ2lvbkxp
c3Q6Omxlbmd0aCk6IE1vdmVkIHRvIGhlYWRlci4KKyAgICAgICAgKFdlYkNvcmU6OlZUVFJlZ2lv
bkxpc3Q6Oml0ZW0pOiBVcGRhdGVkIGZvciBuYW1lIGFuZCB0eXBlIGNoYW5nZXMuCisgICAgICAg
IChXZWJDb3JlOjpWVFRSZWdpb25MaXN0OjpnZXRSZWdpb25CeUlkKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpWVFRSZWdpb25MaXN0OjphZGQpOiBDaGFuZ2VkIHRvIHRha2UgYSBSZWYmJiBp
bnN0ZWFkIG9mIGEKKyAgICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlZUVFJl
Z2lvbkxpc3Q6OnJlbW92ZSk6IFVwZGF0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb25M
aXN0OjpjbGVhcik6IERlbGV0ZWQuIFdhcyB1bnVzZWQuCisgICAgICAgICogaHRtbC90cmFjay9W
VFRSZWdpb25MaXN0Lmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZSBjaGFuZ2VzLgorICAgICAgICAq
IGh0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5pZGw6IE1hZGUgcmV0dXJuIHZhbHVlcyBudWxsYWJs
ZSB0byByZWZsZWN0CisgICAgICAgIHRoZSBhY3R1YWwgc2VtYW50aWMgb2YgdGhlIGNvZGUuCisK
KyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFjazo6VmlkZW9UcmFjayk6IFVzZSByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9UcmFjazo6c2V0UHJpdmF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9UcmFjazo6c2V0U2VsZWN0ZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJh
Y2s6OmluYmFuZFRyYWNrSW5kZXgpOiBSZW1vdmVkIGFzc2VydGlvbiBzaW5jZSBtX3ByaXZhdGUK
KyAgICAgICAgaXMgbm93IGEgUmVmIGluc3RlYWQgb2YgYSBSZWZQdHIuCisgICAgICAgIChXZWJD
b3JlOjpWaWRlb1RyYWNrOjpzZWxlY3RlZENoYW5nZWQpOiBSZW1vdmVkIHVubmVlZGVkIHRyYWNr
IHByaXZhdGUgYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjppZENoYW5n
ZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmxhYmVsQ2hhbmdlZCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjp3aWxsUmVtb3ZlKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpzZXRLaW5kKTogVXBkYXRlZCB0byB1c2Ug
cmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6c2V0TGFuZ3VhZ2UpOiBE
aXR0by4KKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2suaDogVXBkYXRlZCBmb3IgdGhl
IGFib3ZlLiBDaGFuZ2VkIGRlcml2YXRpb24gdG8gcHJpdmF0ZS4KKyAgICAgICAgUmVtb3ZlZCB1
bm5lZWRlZCBkZWZhdWx0S2luZEtleXdvcmQuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGll
bnRzLmg6IFVwZGF0ZWQgdG8gdXNlIHJlZmVyZW5jZS4KKworICAgICAgICAqIGxvYWRlci9QaW5n
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25S
ZXBvcnQpOiBUYWtlIGEgUmVmJiYgaW5zdGVhZCBvZiBSZWZQdHImJi4KKyAgICAgICAgKiBsb2Fk
ZXIvUGluZ0xvYWRlci5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2UuCisKKyAgICAgICAgKiBw
YWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmxvYWRJY29uRm9yRmls
ZXMpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6IFVwZGF0ZWQg
Zm9yIGFib3ZlIGNoYW5nZS4KKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOiBEaXR0by4K
KworICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlvbik6IFVzZSBh
dXRvLgorCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxN
ZWRpYUVsZW1lbnQubW06CisgICAgICAgIChXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxl
bWVudDo6c2VsZWN0QXVkaW9NZWRpYU9wdGlvbik6IFNpbXBsaWZpZWQKKyAgICAgICAgYWxnb3Jp
dGhtIGJ5IHJlbW92aW5nIHVubmVlZGVkIGRpcmVjdCBjYWxsIHRvIGF1ZGlvVHJhY2tFbmFibGVk
Q2hhbmdlZCwKKyAgICAgICAgd2hpY2ggd2lsbCBiZSBjYWxsZWQgYnkgc2V0RW5hYmxlZCBhbmQg
ZG9lc24ndCBuZWVkIHRvIGJlIGNhbGxlZCBhZ2FpbiBoZXJlLgorICAgICAgICAoV2ViUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnNlbGVjdExlZ2libGVNZWRpYU9wdGlvbik6IFJl
bW92ZWQKKyAgICAgICAgdW5oZWxwZnVsIGFzc2VydGlvbiBhbmQgdW5ubmVkZWQgaW5pdGlhbGl6
YXRpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5o
OiBSZW1vdmVkIHVubm5lZWVkIHRyYWNrIHByaXZhdGUKKyAgICAgICAgYXJndW1lbnQgYW5kIGlu
aXRpYWxpemVkIGRhdGEgbWVtYmVycyB3aGVyZSB0aGV5IGFyZSBkZWZpbmVkLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oOiBVc2Ug
UmVmIGluc3RlYWQgb2YKKyAgICAgICAgUGFzc1JlZlB0ciwgaW5pdGlhbGl6ZSBkYXRhIG1lbWJl
cnMgd2hlcmUgdGhleSBhcmUgZGVmaW5lZCwgYW5kIHJlbW92ZWQKKyAgICAgICAgdGhlIHVubmVl
ZGVkIHRyYWNrIHByaXZhdGUgYXJndW1lbnRzIGZyb20gdGhlIGNsaWVudCBmdW5jdGlvbnMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmg6IEZpeGVk
IGZ1bmN0aW9ucyB0aGF0IHdlcmUgdGFraW5nCisgICAgICAgIEF0b21pY1N0cmluZyB0byB0YWtl
IGEgY29uc3QmIGluc3RlYWQuIFVzZSBSZWYmJiBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Lmg6IFJl
bW92ZWQgdW5uZWRlZCBwcml2YXRlIHBvaW50ZXIKKyAgICAgICAgYXJndW1lbnRzIGZyb20gY2xp
ZW50IGZ1bmN0aW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0
ZUJhc2UuaDogUmVtb3ZlZCB1bm5lZWRlZCBwcml2YXRlIHBvaW50ZXJzCisgICAgICAgIGZyb20g
Y2xpZW50IGZ1bmN0aW9ucy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNr
UHJpdmF0ZTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vQXVkaW9UcmFja1ByaXZhdGVBVkYuaDogVXNlCisgICAgICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0
YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZE1l
dGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6YWRkRGF0YUN1ZSk6IFVwZGF0ZWQgZm9yIGNoYW5n
ZSB0byBhcmd1bWVudHMuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRNZXRhZGF0YVRleHRUcmFj
a1ByaXZhdGVBVkY6OnVwZGF0ZVBlbmRpbmdDdWVFbmRUaW1lcyk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjpmbHVzaFBhcnRpYWxD
dWVzKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0lu
YmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0F0dHJpYnV0ZWRTdHJpbmdzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpyZXNldEN1ZVZhbHVlcyk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJv
Y2Vzc05hdGl2ZVNhbXBsZXMpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyk6CisgICAgICAgIE1vdmVkIGlu
aXRpYWxpemF0aW9uIG9mIGRhdGEgbWVtZWJycyB0byB3aGVyZSB0aGV5IGFyZSBkZWZpbmVkLgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmVu
YWJsZWQpOiBEZWxldGVkLiBObyBsb25nZXIgbmVlZGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEVuYWJsZWQpOiBDaGFuZ2VkIHRv
IHVzZSB0aGUgZW5hYmxlZAorICAgICAgICBmbGFnIGZyb20gdGhlIGJhc2UgY2xhc3MgaW5zdGVh
ZCBvZiBhIHNlcGFyYXRlIG1fZW5hYmxlZCBpbiB0aGlzIGNsYXNzLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmg6CisgICAgICAgIFJlbW92ZWQgdGhlIGVuYWJsZWQgZnVuY3Rpb24gYW5kIHRo
ZSBtX2VuYWJsZWQgZGF0YSBtZW1iZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oOiBNYXJrZWQgZnVu
Y3Rpb25zCisgICAgICAgIGZpbmFsIGluc3RlYWQgb2Ygb3ZlcnJpZGUgYW5kIHVwZGF0ZWQgYXJn
dWVtbnRzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1Nv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQpOiBVcGRhdGVkIGZv
ciBjaGFuZ2UKKyAgICAgICAgdG8gYXJndW1lbnRzLgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OnByb2Nlc3NDb2RlZEZyYW1lKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5kQ29tcGxldGVkKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6aGFz
VmlkZW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjpoYXNBdWRpbyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OmxheWVyRGlkUmVjZWl2ZUVycm9yKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Zmx1c2gpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6aXNSZWFk
eUZvck1vcmVTYW1wbGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6ZmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2Vla1RvVGltZSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZEJlY29t
ZVJlYWR5Rm9yTW9yZVNhbXBsZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyk6
IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZE1l
dGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oOiBVcGRhdGVkIGZvcgorICAgICAgICBj
aGFuZ2VzIHRvIGFyZ3VtZW50cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mU2FtcGxlKTog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0
ZUJhc2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lcjo6bm90aWZ5VHJhY2tPZlRhZ3NDaGFuZ2VkKTogRGl0dG8uCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6YXBwc2lua05ld1NhbXBsZSk6IERpdHRvLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyOjphcHBlbmQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXI6OmZsdXNoKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyOjplbnF1ZXVlU2FtcGxlKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjppc1JlYWR5Rm9yTW9yZVNhbXBs
ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXI6Om5vdGlmeVJlYWR5Rm9yTW9yZVNhbXBsZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6
bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVJbml0aWFsaXph
dGlvblNlZ21lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVTYW1wbGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVBbGxQZW5kaW5nU2FtcGxl
cyk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjphcHBlbmQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlSW5pdGlhbGl6YXRp
b25TZWdtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJp
dmF0ZTo6ZGlkUmVjZWl2ZVNhbXBsZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1Nv
dXJjZUJ1ZmZlclByaXZhdGU6OmVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjplbnF1ZXVlU2FtcGxlKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6aGFzVmlk
ZW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpo
YXNBdWRpbyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1NvdXJjZUJ1ZmZlclByaXZh
dGU6OmZhc3RTZWVrVGltZUZvck1lZGlhVGltZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OnNlZWtUb1RpbWUpOiBEaXR0by4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmg6IERpdHRv
LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVTbmFwc2hvdCk6
IFRha2UgcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAgICBvZiBQYXNzUmVmUHRyLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oOiBVcGRhdGVkIGZvciBhYm92
ZSBjaGFuZ2UuCisKKyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5oOiBBZGRlZCB1c2lu
ZyB0byByZXNvbHZlIHRoZSBhbWJpZ3VpdHkgd2l0aCB0aGUKKyAgICAgICAgcmVmL2RlcmVmIGZy
b20gU1ZHRWxlbWVudCBhbmQgZnJvbSBTY3JpcHRFbGVtZW50LgorCisgICAgICAgICogeG1sL3Bh
cnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVu
dFBhcnNlcjo6bm90aWZ5RmluaXNoZWQpOiBVcGRhdGVkIHRvIHNpbXBsaWZ5IHNpbmNlCisgICAg
ICAgIHRoZSBwZW5kaW5nIHNjcmlwdCBub3cgaGFzIGEgc2NyaXB0IGVsZW1lbnQuCisKKyAgICAg
ICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50TnMpOiBVc2UgaXNTY2lwcnRF
bGVtZW50IGluc3RlYWQKKyAgICAgICAgb2YgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjplbmRFbGVtZW50TnMpOiBEaXR0by4g
QWxzbyB1c2UgZG93bmNhc3RTY3JpcHRFbGVtZW50LgorCiAyMDE3LTAxLTA0ICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFByb3ZpZGUgYSBzZXR0aW5n
IGZvciBjbGllbnRzIHRvIGFsd2F5cyBwcmVmZXIgbG93LXBvd2VyIFdlYkdMCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggODkzOTg2OWZkZjQ3NTk2ZWQwYzQ3YzYzNDMyNjUwYWM4MWVkZThmOC4uNzcwNGI0
NDhhZDBhNjU3YzZiYzEzMzAwZmYyZjhmYTE0NjU0OThjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDE3LTAxLTA0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciB1c2UgZnJvbSB0aGUgImh0bWwiIGRpcmVjdG9y
eSwgb3RoZXIgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjY2MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9t
ZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBh
IHBvaW50ZXIuCisKIDIwMTctMDEtMDQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUHJvdmlkZSBhIHNldHRpbmcgZm9yIGNsaWVudHMgdG8gYWx3YXlz
IHByZWZlciBsb3ctcG93ZXIgV2ViR0wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBiMTYxNTg1YmY5NjM1
YTFlM2U0MzE2OGU2ZTQxM2IyMmE5NmY5YWQ2Li4wZDc5MmNhNTY1Y2ZkNTY0YzRiYjJkNDJlZGQ4
NzRmODNjODE1MTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDEt
MDQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNz
UmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRtbCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6
bG9hZEljb25Gb3JGaWxlcyk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIu
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6IFVwZGF0ZWQgZm9y
IHRoZSBhYm92ZS4KKwogMjAxNi0xMi0zMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIgdXNlIGZyb20gdGhlICJkb20iIGRpcmVjdG9y
eSwgcmVsYXRlZCBjbGVhbnVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjlkZTZlZjU5YjE5OTljNjIzNmY1ZjE1
NmQ3YjZlMmEyNWMzZDVjMS4uYmE4ZGNiNzY3YjhlYjg5MjhiNGY3NWFmYmYyMjk4YjJiMWQ4NWY3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAxLTA0ICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciB1c2UgZnJvbSB0
aGUgImh0bWwiIGRpcmVjdG9yeSwgb3RoZXIgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2MzUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
Ojpsb2FkSWNvbkZvckZpbGVzKTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgcG9pbnRl
ci4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
OiBEaXR0by4KKwogMjAxNy0wMS0wMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KIAogICAgICAgICBOU1NwZWxsQ2hlY2tlcidzIHJlY29yZFJlc3BvbnNlIGlzbid0IGNh
bGxlZCBmb3IgdW5zZWVuIGF1dG9tYXRpYyBjb3JyZWN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUmVmUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAppbmRleCA4N2ZjNDU2
ZjM3MDQwNDliZjRlY2NjYmYzYTRmZjU3Njk3OWU2NzdmLi5mZTE2MzBjOTczNWI1ZmY1MzUzY2Iy
YzU1OGUzMTA1ODEyNDc4N2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29w
eXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MjQyLDEwICsyNDIsMjEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFJlZlB0cjxUPiBh
ZG9wdFJlZihUKiBwKQogICAgIHJldHVybiBSZWZQdHI8VD4ocCwgUmVmUHRyPFQ+OjpBZG9wdCk7
CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4gbWFrZVJlZlB0cihU
KiBwb2ludGVyKQoreworICAgIHJldHVybiBwb2ludGVyOworfQorCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBpbmxpbmUgUmVmUHRyPFQ+IG1ha2VSZWZQdHIoVCYgcmVmZXJlbmNlKQoreworICAgIHJl
dHVybiAmcmVmZXJlbmNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNpbmcgV1RGOjpS
ZWZQdHI7CiB1c2luZyBXVEY6OmFkb3B0UmVmOwordXNpbmcgV1RGOjptYWtlUmVmUHRyOwogdXNp
bmcgV1RGOjpzdGF0aWNfcG9pbnRlcl9jYXN0OwogCiAjZW5kaWYgLy8gV1RGX1JlZlB0cl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IDBjODUxZGU0MGYxM2VhYzdmYjljN2Q4MTFkMTdlYjIxMzRm
ZWZkMmIuLjg3NzhjYzQyNWI2NzEwN2U0ZmQzZDBjOTY1YjU5NjZkZWE1NDYwODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC0xNzY0LDcgKzE3NjQsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKICAgICBodG1sL1dlZWtJbnB1dFR5cGUuY3Bw
CiAKLSAgICBodG1sL2NhbnZhcy9BTkdMRUluc3RhbmNlZEFycmF5cy5jcHAKICAgICBodG1sL2Nh
bnZhcy9DYW52YXNHcmFkaWVudC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNQYXRoLmNwcAog
ICAgIGh0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uY3BwCkBAIC0xNzczLDUxICsxNzcyLDYgQEAg
c2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKICAgICBodG1sL2NhbnZh
cy9ET01QYXRoLmNwcAotICAgIGh0bWwvY2FudmFzL0VYVEJsZW5kTWluTWF4LmNwcAotICAgIGh0
bWwvY2FudmFzL0VYVEZyYWdEZXB0aC5jcHAKLSAgICBodG1sL2NhbnZhcy9FWFRTaGFkZXJUZXh0
dXJlTE9ELmNwcAotICAgIGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5j
cHAKLSAgICBodG1sL2NhbnZhcy9FWFRzUkdCLmNwcAotICAgIGh0bWwvY2FudmFzL09FU0VsZW1l
bnRJbmRleFVpbnQuY3BwCi0gICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5j
cHAKLSAgICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwCi0gICAgaHRtbC9jYW52YXMv
T0VTVGV4dHVyZUZsb2F0TGluZWFyLmNwcAotICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVIYWxm
RmxvYXQuY3BwCi0gICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5jcHAK
LSAgICBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZh
cy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVy
LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwCi0gICAg
aHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcAotICAgIGh0bWwvY2Fu
dmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdM
Q29udGV4dEV2ZW50LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAot
ICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9X
ZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFk
ZXJzLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMRGVwdGhUZXh0dXJlLmNwcAotICAgIGh0bWwv
Y2FudmFzL1dlYkdMRHJhd0J1ZmZlcnMuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNp
b24uY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKLSAgICBodG1sL2Nh
bnZhcy9XZWJHTEdldEluZm8uY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5j
cHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJH
TFByb2dyYW0uY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5jcHAKLSAgICBodG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5j
cHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFNhbXBsZXIuY3BwCi0gICAgaHRtbC9jYW52YXMvV2Vi
R0xTaGFkZXIuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
Y3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCi0gICAgaHRtbC9jYW52
YXMvV2ViR0xTeW5jLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5jcHAKLSAgICBo
dG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcAotICAgIGh0bWwvY2FudmFzL1dl
YkdMVW5pZm9ybUxvY2F0aW9uLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlP
YmplY3QuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3Bw
Ci0gICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKIAogICAgIGh0
bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuY3BwCiAKQEAgLTMwNzgsNiArMzAzMiw3IEBAIGlmIChF
TkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXRMaW5l
YXIuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAogICAg
ICAgICBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorICAgICAgICBodG1s
L2NhbnZhcy9XZWJHTEFueS5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3Bw
CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwCiAgICAg
ICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHAKQEAgLTMwOTEs
NyArMzA0Niw2IEBAIGlmIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
RHJhd0J1ZmZlcnMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmNwcAog
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcAotICAgICAgICBodG1sL2Nh
bnZhcy9XZWJHTEdldEluZm8uY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRl
eHQuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcAogICAgICAgICBodG1s
L2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IDQzYzBkMDAwZDhlNzM1NTZmZWUxNzA0
MmFmNjM5ZTA3OWVkOTkzMDQuLjRmMTg4Yjg1MjQ4ZmM0MjEzOWQ3NTgxZGUxOTBkM2YyN2ViNjEx
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQpAQCAtNjkzLDE4ICs2OTMsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVk
aWFTb3VyY2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICBi
dWZmZXIuYWJvcnRJZlVwZGF0aW5nKCk7CiAKICAgICAvLyA0LiBMZXQgU291cmNlQnVmZmVyIGF1
ZGlvVHJhY2tzIGxpc3QgZXF1YWwgdGhlIEF1ZGlvVHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBi
eSBzb3VyY2VCdWZmZXIuYXVkaW9UcmFja3MuCi0gICAgUmVmUHRyPEF1ZGlvVHJhY2tMaXN0PiBh
dWRpb1RyYWNrcyA9IGJ1ZmZlci5hdWRpb1RyYWNrcygpOworICAgIGF1dG8mIGF1ZGlvVHJhY2tz
ID0gYnVmZmVyLmF1ZGlvVHJhY2tzKCk7CiAKICAgICAvLyA1LiBJZiB0aGUgU291cmNlQnVmZmVy
IGF1ZGlvVHJhY2tzIGxpc3QgaXMgbm90IGVtcHR5LCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0
ZXBzOgotICAgIGlmIChhdWRpb1RyYWNrcy0+bGVuZ3RoKCkpIHsKKyAgICBpZiAoYXVkaW9UcmFj
a3MubGVuZ3RoKCkpIHsKICAgICAgICAgLy8gNS4xIExldCBIVE1MTWVkaWFFbGVtZW50IGF1ZGlv
VHJhY2tzIGxpc3QgZXF1YWwgdGhlIEF1ZGlvVHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSB0
aGUgYXVkaW9UcmFja3MKICAgICAgICAgLy8gYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVt
ZW50LgogICAgICAgICAvLyA1LjIgTGV0IHRoZSByZW1vdmVkIGVuYWJsZWQgYXVkaW8gdHJhY2sg
ZmxhZyBlcXVhbCBmYWxzZS4KICAgICAgICAgYm9vbCByZW1vdmVkRW5hYmxlZEF1ZGlvVHJhY2sg
PSBmYWxzZTsKIAogICAgICAgICAvLyA1LjMgRm9yIGVhY2ggQXVkaW9UcmFjayBvYmplY3QgaW4g
dGhlIFNvdXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0LCBydW4gdGhlIGZvbGxvd2luZyBzdGVw
czoKLSAgICAgICAgd2hpbGUgKGF1ZGlvVHJhY2tzLT5sZW5ndGgoKSkgewotICAgICAgICAgICAg
YXV0byYgdHJhY2sgPSAqYXVkaW9UcmFja3MtPmxhc3RJdGVtKCk7CisgICAgICAgIHdoaWxlIChh
dWRpb1RyYWNrcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byYgdHJhY2sgPSAqYXVkaW9U
cmFja3MubGFzdEl0ZW0oKTsKIAogICAgICAgICAgICAgLy8gNS4zLjEgU2V0IHRoZSBzb3VyY2VC
dWZmZXIgYXR0cmlidXRlIG9uIHRoZSBBdWRpb1RyYWNrIG9iamVjdCB0byBudWxsLgogICAgICAg
ICAgICAgdHJhY2suc2V0U291cmNlQnVmZmVyKG51bGxwdHIpOwpAQCAtNzIzLDcgKzcyMyw3IEBA
IEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIoU291cmNl
QnVmZmVyJiBidWZmZXIpCiAgICAgICAgICAgICAvLyA1LjMuNSBSZW1vdmUgdGhlIEF1ZGlvVHJh
Y2sgb2JqZWN0IGZyb20gdGhlIFNvdXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0LgogICAgICAg
ICAgICAgLy8gNS4zLjYgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVk
IHJlbW92ZXRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMgbm90CiAgICAgICAgICAg
ICAvLyBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGludGVyZmFjZSwg
YXQgdGhlIFNvdXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0LgotICAgICAgICAgICAgYXVkaW9U
cmFja3MtPnJlbW92ZSh0cmFjayk7CisgICAgICAgICAgICBhdWRpb1RyYWNrcy5yZW1vdmUodHJh
Y2spOwogICAgICAgICB9CiAKICAgICAgICAgLy8gNS40IElmIHRoZSByZW1vdmVkIGVuYWJsZWQg
YXVkaW8gdHJhY2sgZmxhZyBlcXVhbHMgdHJ1ZSwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBh
IHNpbXBsZSBldmVudApAQCAtNzMzLDE4ICs3MzMsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVk
aWFTb3VyY2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICB9
CiAKICAgICAvLyA2LiBMZXQgU291cmNlQnVmZmVyIHZpZGVvVHJhY2tzIGxpc3QgZXF1YWwgdGhl
IFZpZGVvVHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSBzb3VyY2VCdWZmZXIudmlkZW9UcmFj
a3MuCi0gICAgUmVmUHRyPFZpZGVvVHJhY2tMaXN0PiB2aWRlb1RyYWNrcyA9IGJ1ZmZlci52aWRl
b1RyYWNrcygpOworICAgIGF1dG8mIHZpZGVvVHJhY2tzID0gYnVmZmVyLnZpZGVvVHJhY2tzKCk7
CiAKICAgICAvLyA3LiBJZiB0aGUgU291cmNlQnVmZmVyIHZpZGVvVHJhY2tzIGxpc3QgaXMgbm90
IGVtcHR5LCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIGlmICh2aWRlb1RyYWNr
cy0+bGVuZ3RoKCkpIHsKKyAgICBpZiAodmlkZW9UcmFja3MubGVuZ3RoKCkpIHsKICAgICAgICAg
Ly8gNy4xIExldCBIVE1MTWVkaWFFbGVtZW50IHZpZGVvVHJhY2tzIGxpc3QgZXF1YWwgdGhlIFZp
ZGVvVHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSB0aGUgdmlkZW9UcmFja3MKICAgICAgICAg
Ly8gYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAgICAgICAvLyA3LjIgTGV0
IHRoZSByZW1vdmVkIHNlbGVjdGVkIHZpZGVvIHRyYWNrIGZsYWcgZXF1YWwgZmFsc2UuCiAgICAg
ICAgIGJvb2wgcmVtb3ZlZFNlbGVjdGVkVmlkZW9UcmFjayA9IGZhbHNlOwogCiAgICAgICAgIC8v
IDcuMyBGb3IgZWFjaCBWaWRlb1RyYWNrIG9iamVjdCBpbiB0aGUgU291cmNlQnVmZmVyIHZpZGVv
VHJhY2tzIGxpc3QsIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICB3aGlsZSAodmlk
ZW9UcmFja3MtPmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiB0cmFjayA9ICp2aWRlb1Ry
YWNrcy0+bGFzdEl0ZW0oKTsKKyAgICAgICAgd2hpbGUgKHZpZGVvVHJhY2tzLmxlbmd0aCgpKSB7
CisgICAgICAgICAgICBhdXRvJiB0cmFjayA9ICp2aWRlb1RyYWNrcy5sYXN0SXRlbSgpOwogCiAg
ICAgICAgICAgICAvLyA3LjMuMSBTZXQgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhl
IFZpZGVvVHJhY2sgb2JqZWN0IHRvIG51bGwuCiAgICAgICAgICAgICB0cmFjay5zZXRTb3VyY2VC
dWZmZXIobnVsbHB0cik7CkBAIC03NjMsNyArNzYzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVk
aWFTb3VyY2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICAg
ICAgICAgIC8vIDcuMy41IFJlbW92ZSB0aGUgVmlkZW9UcmFjayBvYmplY3QgZnJvbSB0aGUgU291
cmNlQnVmZmVyIHZpZGVvVHJhY2tzIGxpc3QuCiAgICAgICAgICAgICAvLyA3LjMuNiBRdWV1ZSBh
IHRhc2sgdG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgcmVtb3ZldHJhY2ssIHRoYXQgZG9l
cyBub3QgYnViYmxlIGFuZCBpcyBub3QKICAgICAgICAgICAgIC8vIGNhbmNlbGFibGUsIGFuZCB0
aGF0IHVzZXMgdGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgU291cmNlQnVmZmVyIHZp
ZGVvVHJhY2tzIGxpc3QuCi0gICAgICAgICAgICB2aWRlb1RyYWNrcy0+cmVtb3ZlKHRyYWNrKTsK
KyAgICAgICAgICAgIHZpZGVvVHJhY2tzLnJlbW92ZSh0cmFjayk7CiAgICAgICAgIH0KIAogICAg
ICAgICAvLyA3LjQgSWYgdGhlIHJlbW92ZWQgc2VsZWN0ZWQgdmlkZW8gdHJhY2sgZmxhZyBlcXVh
bHMgdHJ1ZSwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudApAQCAtNzcz
LDE4ICs3NzMsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6OnJlbW92ZVNvdXJj
ZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICB9CiAKICAgICAvLyA4LiBMZXQgU291
cmNlQnVmZmVyIHRleHRUcmFja3MgbGlzdCBlcXVhbCB0aGUgVGV4dFRyYWNrTGlzdCBvYmplY3Qg
cmV0dXJuZWQgYnkgc291cmNlQnVmZmVyLnRleHRUcmFja3MuCi0gICAgUmVmUHRyPFRleHRUcmFj
a0xpc3Q+IHRleHRUcmFja3MgPSBidWZmZXIudGV4dFRyYWNrcygpOworICAgIGF1dG8mIHRleHRU
cmFja3MgPSBidWZmZXIudGV4dFRyYWNrcygpOwogCiAgICAgLy8gOS4gSWYgdGhlIFNvdXJjZUJ1
ZmZlciB0ZXh0VHJhY2tzIGxpc3QgaXMgbm90IGVtcHR5LCB0aGVuIHJ1biB0aGUgZm9sbG93aW5n
IHN0ZXBzOgotICAgIGlmICh0ZXh0VHJhY2tzLT5sZW5ndGgoKSkgeworICAgIGlmICh0ZXh0VHJh
Y2tzLmxlbmd0aCgpKSB7CiAgICAgICAgIC8vIDkuMSBMZXQgSFRNTE1lZGlhRWxlbWVudCB0ZXh0
VHJhY2tzIGxpc3QgZXF1YWwgdGhlIFRleHRUcmFja0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5IHRo
ZSB0ZXh0VHJhY2tzCiAgICAgICAgIC8vIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVu
dC4KICAgICAgICAgLy8gOS4yIExldCB0aGUgcmVtb3ZlZCBlbmFibGVkIHRleHQgdHJhY2sgZmxh
ZyBlcXVhbCBmYWxzZS4KICAgICAgICAgYm9vbCByZW1vdmVkRW5hYmxlZFRleHRUcmFjayA9IGZh
bHNlOwogCiAgICAgICAgIC8vIDkuMyBGb3IgZWFjaCBUZXh0VHJhY2sgb2JqZWN0IGluIHRoZSBT
b3VyY2VCdWZmZXIgdGV4dFRyYWNrcyBsaXN0LCBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAg
ICAgICAgd2hpbGUgKHRleHRUcmFja3MtPmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiB0
cmFjayA9ICp0ZXh0VHJhY2tzLT5sYXN0SXRlbSgpOworICAgICAgICB3aGlsZSAodGV4dFRyYWNr
cy5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byYgdHJhY2sgPSAqdGV4dFRyYWNrcy5sYXN0
SXRlbSgpOwogCiAgICAgICAgICAgICAvLyA5LjMuMSBTZXQgdGhlIHNvdXJjZUJ1ZmZlciBhdHRy
aWJ1dGUgb24gdGhlIFRleHRUcmFjayBvYmplY3QgdG8gbnVsbC4KICAgICAgICAgICAgIHRyYWNr
LnNldFNvdXJjZUJ1ZmZlcihudWxscHRyKTsKQEAgLTgwMyw3ICs4MDMsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciYgYnVm
ZmVyKQogICAgICAgICAgICAgLy8gOS4zLjUgUmVtb3ZlIHRoZSBUZXh0VHJhY2sgb2JqZWN0IGZy
b20gdGhlIFNvdXJjZUJ1ZmZlciB0ZXh0VHJhY2tzIGxpc3QuCiAgICAgICAgICAgICAvLyA5LjMu
NiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgcmVtb3ZldHJhY2ss
IHRoYXQgZG9lcyBub3QgYnViYmxlIGFuZCBpcyBub3QKICAgICAgICAgICAgIC8vIGNhbmNlbGFi
bGUsIGFuZCB0aGF0IHVzZXMgdGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgU291cmNl
QnVmZmVyIHRleHRUcmFja3MgbGlzdC4KLSAgICAgICAgICAgIHRleHRUcmFja3MtPnJlbW92ZSh0
cmFjayk7CisgICAgICAgICAgICB0ZXh0VHJhY2tzLnJlbW92ZSh0cmFjayk7CiAgICAgICAgIH0K
IAogICAgICAgICAvLyA5LjQgSWYgdGhlIHJlbW92ZWQgZW5hYmxlZCB0ZXh0IHRyYWNrIGZsYWcg
ZXF1YWxzIHRydWUsIHRoZW4gcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNw
cAppbmRleCA3ZmVlN2U2MGIyMmU0NDgzNDFjYWEwOWFkOTg5OTY4MDlhNWU0MjZjLi5kOWFlNTI3
ODYzNWVjOGZhYjhiYTdkZjUyZDczNDE0YTU4ODNlZTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTksOSAr
NTksNiBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvVk0uaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpZiAhTE9HX0RJU0FCTEVE
Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotI2VuZGlmCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNDIxLDcgKzQxOCw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzZWVr
VG9UaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKICAgICB9CiB9CiAKLU1lZGlhVGltZSBTb3Vy
Y2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoU291
cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgdGFyZ2V0VGltZSwgY29uc3QgTWVk
aWFUaW1lJiBuZWdhdGl2ZVRocmVzaG9sZCwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRocmVz
aG9sZCkKK01lZGlhVGltZSBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vl
a1RpbWVGb3JNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1lJiB0YXJnZXRUaW1lLCBjb25zdCBNZWRp
YVRpbWUmIG5lZ2F0aXZlVGhyZXNob2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNo
b2xkKQogewogICAgIE1lZGlhVGltZSBzZWVrVGltZSA9IHRhcmdldFRpbWU7CiAgICAgTWVkaWFU
aW1lIGxvd2VyQm91bmRUaW1lID0gdGFyZ2V0VGltZSAtIG5lZ2F0aXZlVGhyZXNob2xkOwpAQCAt
NTY2LDcgKzU2Myw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZpcmVk
KCkKIAogICAgIC8vIDEuIExvb3AgVG9wOiBJZiB0aGUgaW5wdXQgYnVmZmVyIGlzIGVtcHR5LCB0
aGVuIGp1bXAgdG8gdGhlIG5lZWQgbW9yZSBkYXRhIHN0ZXAgYmVsb3cuCiAgICAgaWYgKCFtX3Bl
bmRpbmdBcHBlbmREYXRhLnNpemUoKSkgewotICAgICAgICBzb3VyY2VCdWZmZXJQcml2YXRlQXBw
ZW5kQ29tcGxldGUoJm1fcHJpdmF0ZS5nZXQoKSwgQXBwZW5kU3VjY2VlZGVkKTsKKyAgICAgICAg
c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKEFwcGVuZFN1Y2NlZWRlZCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTU3NCw3ICs1NzEsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZl
cjo6YXBwZW5kQnVmZmVyVGltZXJGaXJlZCgpCiAgICAgbV9wZW5kaW5nQXBwZW5kRGF0YS5jbGVh
cigpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENv
bXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBcHBlbmRSZXN1bHQgcmVzdWx0KQordm9pZCBT
b3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShBcHBlbmRSZXN1
bHQgcmVzdWx0KQogewogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAt
NjM1LDcgKzYzMiw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBw
ZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIEFwcGVuCiAgICAgTE9HKE1lZGlhLCAi
U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoJXApIC0gYnVm
ZmVyZWQgPSAlcyIsIHRoaXMsIHRvU3RyaW5nKG1fYnVmZmVyZWQtPnJhbmdlcygpKS51dGY4KCku
ZGF0YSgpKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRS
ZWNlaXZlUmVuZGVyaW5nRXJyb3IoU291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvcikKK3Zv
aWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmluZ0Vy
cm9yKGludCBlcnJvcikKIHsKICNpZiBMT0dfRElTQUJMRUQKICAgICBVTlVTRURfUEFSQU0oZXJy
b3IpOwpAQCAtOTQ1LDM1ICs5NDIsMzIgQEAgc2l6ZV90IFNvdXJjZUJ1ZmZlcjo6bWF4aW11bUJ1
ZmZlclNpemUoKSBjb25zdAogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICBIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50ID0gbV9zb3VyY2UtPm1lZGlhRWxlbWVu
dCgpOworICAgIGF1dG8qIGVsZW1lbnQgPSBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCk7CiAgICAg
aWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHJldHVybiBlbGVtZW50LT5t
YXhpbXVtU291cmNlQnVmZmVyU2l6ZSgqdGhpcyk7CiB9CiAKLVZpZGVvVHJhY2tMaXN0KiBTb3Vy
Y2VCdWZmZXI6OnZpZGVvVHJhY2tzKCkKK1ZpZGVvVHJhY2tMaXN0JiBTb3VyY2VCdWZmZXI6OnZp
ZGVvVHJhY2tzKCkKIHsKICAgICBpZiAoIW1fdmlkZW9UcmFja3MpCi0gICAgICAgIG1fdmlkZW9U
cmFja3MgPSBWaWRlb1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwg
QWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0gICAgcmV0dXJu
IG1fdmlkZW9UcmFja3MuZ2V0KCk7CisgICAgICAgIG1fdmlkZW9UcmFja3MgPSBWaWRlb1RyYWNr
TGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKTsKKyAgICByZXR1cm4gKm1fdmlkZW9UcmFja3M7CiB9CiAKLUF1ZGlvVHJhY2tMaXN0
KiBTb3VyY2VCdWZmZXI6OmF1ZGlvVHJhY2tzKCkKK0F1ZGlvVHJhY2tMaXN0JiBTb3VyY2VCdWZm
ZXI6OmF1ZGlvVHJhY2tzKCkKIHsKICAgICBpZiAoIW1fYXVkaW9UcmFja3MpCi0gICAgICAgIG1f
YXVkaW9UcmFja3MgPSBBdWRpb1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1l
bnQoKSwgQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0gICAg
cmV0dXJuIG1fYXVkaW9UcmFja3MuZ2V0KCk7CisgICAgICAgIG1fYXVkaW9UcmFja3MgPSBBdWRp
b1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4gKm1fYXVkaW9UcmFja3M7CiB9CiAKLVRleHRUcmFj
a0xpc3QqIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrcygpCitUZXh0VHJhY2tMaXN0JiBTb3VyY2VC
dWZmZXI6OnRleHRUcmFja3MoKQogewogICAgIGlmICghbV90ZXh0VHJhY2tzKQotICAgICAgICBt
X3RleHRUcmFja3MgPSBUZXh0VHJhY2tMaXN0OjpjcmVhdGUobV9zb3VyY2UtPm1lZGlhRWxlbWVu
dCgpLCBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0KLSAgICBy
ZXR1cm4gbV90ZXh0VHJhY2tzLmdldCgpOworICAgICAgICBtX3RleHRUcmFja3MgPSBUZXh0VHJh
Y2tMaXN0OjpjcmVhdGUobV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLCBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpOworICAgIHJldHVybiAqbV90ZXh0VHJhY2tzOwogfQogCiB2b2lkIFNvdXJjZUJ1
ZmZlcjo6c2V0QWN0aXZlKGJvb2wgYWN0aXZlKQpAQCAtOTg3LDcgKzk4MSw3IEBAIHZvaWQgU291
cmNlQnVmZmVyOjpzZXRBY3RpdmUoYm9vbCBhY3RpdmUpCiAgICAgICAgIG1fc291cmNlLT5zb3Vy
Y2VCdWZmZXJEaWRDaGFuZ2VBY3RpdmVTdGF0ZSgqdGhpcywgYWN0aXZlKTsKIH0KIAotdm9pZCBT
b3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25T
ZWdtZW50KFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQm
IHNlZ21lbnQpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2Vp
dmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgSW5pdGlhbGl6YXRpb25TZWdtZW50JiBzZWdt
ZW50KQogewogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTAyNCw0
MCArMTAxOCw0MCBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJl
Y2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgICAgIC8vIDMuMiBBZGQgdGhlIGFwcHJvcHJpYXRlIHRyYWNrIGRl
c2NyaXB0aW9ucyBmcm9tIHRoaXMgaW5pdGlhbGl6YXRpb24gc2VnbWVudCB0byBlYWNoIG9mIHRo
ZSB0cmFjayBidWZmZXJzLgotICAgICAgICBBU1NFUlQoc2VnbWVudC5hdWRpb1RyYWNrcy5zaXpl
KCkgPT0gYXVkaW9UcmFja3MoKS0+bGVuZ3RoKCkpOworICAgICAgICBBU1NFUlQoc2VnbWVudC5h
dWRpb1RyYWNrcy5zaXplKCkgPT0gYXVkaW9UcmFja3MoKS5sZW5ndGgoKSk7CiAgICAgICAgIGZv
ciAoYXV0byYgYXVkaW9UcmFja0luZm8gOiBzZWdtZW50LmF1ZGlvVHJhY2tzKSB7Ci0gICAgICAg
ICAgICBpZiAoYXVkaW9UcmFja3MoKS0+bGVuZ3RoKCkgPT0gMSkgewotICAgICAgICAgICAgICAg
IGF1ZGlvVHJhY2tzKCktPml0ZW0oMCktPnNldFByaXZhdGUoYXVkaW9UcmFja0luZm8udHJhY2sp
OworICAgICAgICAgICAgaWYgKGF1ZGlvVHJhY2tzKCkubGVuZ3RoKCkgPT0gMSkgeworICAgICAg
ICAgICAgICAgIGF1ZGlvVHJhY2tzKCkuaXRlbSgwKS0+c2V0UHJpdmF0ZSgqYXVkaW9UcmFja0lu
Zm8udHJhY2spOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBhdXRvIGF1ZGlvVHJhY2sgPSBhdWRpb1RyYWNrcygpLT5nZXRUcmFja0J5SWQoYXVk
aW9UcmFja0luZm8udHJhY2stPmlkKCkpOworICAgICAgICAgICAgYXV0byBhdWRpb1RyYWNrID0g
YXVkaW9UcmFja3MoKS5nZXRUcmFja0J5SWQoYXVkaW9UcmFja0luZm8udHJhY2stPmlkKCkpOwog
ICAgICAgICAgICAgQVNTRVJUKGF1ZGlvVHJhY2spOwotICAgICAgICAgICAgYXVkaW9UcmFjay0+
c2V0UHJpdmF0ZShhdWRpb1RyYWNrSW5mby50cmFjayk7CisgICAgICAgICAgICBhdWRpb1RyYWNr
LT5zZXRQcml2YXRlKCphdWRpb1RyYWNrSW5mby50cmFjayk7CiAgICAgICAgIH0KIAotICAgICAg
ICBBU1NFUlQoc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkgPT0gdmlkZW9UcmFja3MoKS0+bGVu
Z3RoKCkpOworICAgICAgICBBU1NFUlQoc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkgPT0gdmlk
ZW9UcmFja3MoKS5sZW5ndGgoKSk7CiAgICAgICAgIGZvciAoYXV0byYgdmlkZW9UcmFja0luZm8g
OiBzZWdtZW50LnZpZGVvVHJhY2tzKSB7Ci0gICAgICAgICAgICBpZiAodmlkZW9UcmFja3MoKS0+
bGVuZ3RoKCkgPT0gMSkgewotICAgICAgICAgICAgICAgIHZpZGVvVHJhY2tzKCktPml0ZW0oMCkt
PnNldFByaXZhdGUodmlkZW9UcmFja0luZm8udHJhY2spOworICAgICAgICAgICAgaWYgKHZpZGVv
VHJhY2tzKCkubGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgICAgIHZpZGVvVHJhY2tzKCku
aXRlbSgwKS0+c2V0UHJpdmF0ZSgqdmlkZW9UcmFja0luZm8udHJhY2spOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBhdXRvIHZpZGVvVHJhY2sg
PSB2aWRlb1RyYWNrcygpLT5nZXRUcmFja0J5SWQodmlkZW9UcmFja0luZm8udHJhY2stPmlkKCkp
OworICAgICAgICAgICAgYXV0byB2aWRlb1RyYWNrID0gdmlkZW9UcmFja3MoKS5nZXRUcmFja0J5
SWQodmlkZW9UcmFja0luZm8udHJhY2stPmlkKCkpOwogICAgICAgICAgICAgQVNTRVJUKHZpZGVv
VHJhY2spOwotICAgICAgICAgICAgdmlkZW9UcmFjay0+c2V0UHJpdmF0ZSh2aWRlb1RyYWNrSW5m
by50cmFjayk7CisgICAgICAgICAgICB2aWRlb1RyYWNrLT5zZXRQcml2YXRlKCp2aWRlb1RyYWNr
SW5mby50cmFjayk7CiAgICAgICAgIH0KIAotICAgICAgICBBU1NFUlQoc2VnbWVudC50ZXh0VHJh
Y2tzLnNpemUoKSA9PSB0ZXh0VHJhY2tzKCktPmxlbmd0aCgpKTsKKyAgICAgICAgQVNTRVJUKHNl
Z21lbnQudGV4dFRyYWNrcy5zaXplKCkgPT0gdGV4dFRyYWNrcygpLmxlbmd0aCgpKTsKICAgICAg
ICAgZm9yIChhdXRvJiB0ZXh0VHJhY2tJbmZvIDogc2VnbWVudC50ZXh0VHJhY2tzKSB7Ci0gICAg
ICAgICAgICBpZiAodGV4dFRyYWNrcygpLT5sZW5ndGgoKSA9PSAxKSB7Ci0gICAgICAgICAgICAg
ICAgZG93bmNhc3Q8SW5iYW5kVGV4dFRyYWNrPigqdGV4dFRyYWNrcygpLT5pdGVtKDApKS5zZXRQ
cml2YXRlKHRleHRUcmFja0luZm8udHJhY2spOworICAgICAgICAgICAgaWYgKHRleHRUcmFja3Mo
KS5sZW5ndGgoKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgZG93bmNhc3Q8SW5iYW5kVGV4dFRy
YWNrPigqdGV4dFRyYWNrcygpLml0ZW0oMCkpLnNldFByaXZhdGUoKnRleHRUcmFja0luZm8udHJh
Y2spOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBhdXRvIHRleHRUcmFjayA9IHRleHRUcmFja3MoKS0+Z2V0VHJhY2tCeUlkKHRleHRUcmFja0lu
Zm8udHJhY2stPmlkKCkpOworICAgICAgICAgICAgYXV0byB0ZXh0VHJhY2sgPSB0ZXh0VHJhY2tz
KCkuZ2V0VHJhY2tCeUlkKHRleHRUcmFja0luZm8udHJhY2stPmlkKCkpOwogICAgICAgICAgICAg
QVNTRVJUKHRleHRUcmFjayk7Ci0gICAgICAgICAgICBkb3duY2FzdDxJbmJhbmRUZXh0VHJhY2s+
KCp0ZXh0VHJhY2spLnNldFByaXZhdGUodGV4dFRyYWNrSW5mby50cmFjayk7CisgICAgICAgICAg
ICBkb3duY2FzdDxJbmJhbmRUZXh0VHJhY2s+KCp0ZXh0VHJhY2spLnNldFByaXZhdGUoKnRleHRU
cmFja0luZm8udHJhY2spOwogICAgICAgICB9CiAKICAgICAgICAgLy8gMy4zIFNldCB0aGUgbmVl
ZCByYW5kb20gYWNjZXNzIHBvaW50IGZsYWcgb24gYWxsIHRyYWNrIGJ1ZmZlcnMgdG8gdHJ1ZS4K
QEAgLTEwNzYsMTYgKzEwNzAsMTQgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKIAogICAgICAg
ICAvLyA1LjIgRm9yIGVhY2ggYXVkaW8gdHJhY2sgaW4gdGhlIGluaXRpYWxpemF0aW9uIHNlZ21l
bnQsIHJ1biBmb2xsb3dpbmcgc3RlcHM6CiAgICAgICAgIGZvciAoYXV0byYgYXVkaW9UcmFja0lu
Zm8gOiBzZWdtZW50LmF1ZGlvVHJhY2tzKSB7Ci0gICAgICAgICAgICBBdWRpb1RyYWNrUHJpdmF0
ZSogYXVkaW9UcmFja1ByaXZhdGUgPSBhdWRpb1RyYWNrSW5mby50cmFjay5nZXQoKTsKLQogICAg
ICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBzdGVwcyA1LjIuMS01LjIuOC4xIGFzIHBlciBF
ZGl0b3IncyBEcmFmdCAwOSBKYW51YXJ5IDIwMTUsIGFuZCByZW9yZGVyIHRoaXMKICAgICAgICAg
ICAgIC8vIDUuMi4xIExldCBuZXcgYXVkaW8gdHJhY2sgYmUgYSBuZXcgQXVkaW9UcmFjayBvYmpl
Y3QuCiAgICAgICAgICAgICAvLyA1LjIuMiBHZW5lcmF0ZSBhIHVuaXF1ZSBJRCBhbmQgYXNzaWdu
IGl0IHRvIHRoZSBpZCBwcm9wZXJ0eSBvbiBuZXcgdmlkZW8gdHJhY2suCi0gICAgICAgICAgICBh
dXRvIG5ld0F1ZGlvVHJhY2sgPSBBdWRpb1RyYWNrOjpjcmVhdGUodGhpcywgYXVkaW9UcmFja1By
aXZhdGUpOworICAgICAgICAgICAgYXV0byBuZXdBdWRpb1RyYWNrID0gQXVkaW9UcmFjazo6Y3Jl
YXRlKCp0aGlzLCAqYXVkaW9UcmFja0luZm8udHJhY2spOwogICAgICAgICAgICAgbmV3QXVkaW9U
cmFjay0+c2V0U291cmNlQnVmZmVyKHRoaXMpOwogCiAgICAgICAgICAgICAvLyA1LjIuMyBJZiBh
dWRpb1RyYWNrcy5sZW5ndGggZXF1YWxzIDAsIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6
Ci0gICAgICAgICAgICBpZiAoIWF1ZGlvVHJhY2tzKCktPmxlbmd0aCgpKSB7CisgICAgICAgICAg
ICBpZiAoIWF1ZGlvVHJhY2tzKCkubGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICAvLyA1LjIu
My4xIFNldCB0aGUgZW5hYmxlZCBwcm9wZXJ0eSBvbiBuZXcgYXVkaW8gdHJhY2sgdG8gdHJ1ZS4K
ICAgICAgICAgICAgICAgICBuZXdBdWRpb1RyYWNrLT5zZXRFbmFibGVkKHRydWUpOwogCkBAIC0x
MDk3LDcgKzEwODksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURp
ZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogICAgICAgICAgICAgLy8g
NS4yLjUgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRyYWNr
LCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMKICAgICAgICAgICAgIC8vIG5vdCBjYW5jZWxh
YmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGludGVyZmFjZSwgYXQgdGhlIEF1ZGlv
VHJhY2tMaXN0IG9iamVjdAogICAgICAgICAgICAgLy8gcmVmZXJlbmNlZCBieSB0aGUgYXVkaW9U
cmFja3MgYXR0cmlidXRlIG9uIHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4KLSAgICAgICAgICAg
IGF1ZGlvVHJhY2tzKCktPmFwcGVuZChuZXdBdWRpb1RyYWNrLmNvcHlSZWYoKSk7CisgICAgICAg
ICAgICBhdWRpb1RyYWNrcygpLmFwcGVuZChuZXdBdWRpb1RyYWNrLmNvcHlSZWYoKSk7CiAKICAg
ICAgICAgICAgIC8vIDUuMi42IEFkZCBuZXcgYXVkaW8gdHJhY2sgdG8gdGhlIGF1ZGlvVHJhY2tz
IGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAgICAgICAgICAgIC8vIDUuMi43
IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0cmFjaywgdGhh
dCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCkBAIC0xMTA3LDcgKzEwOTksNyBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21l
bnQoU291cmNlQnVmZgogCiAgICAgICAgICAgICAvLyA1LjIuOCBDcmVhdGUgYSBuZXcgdHJhY2sg
YnVmZmVyIHRvIHN0b3JlIGNvZGVkIGZyYW1lcyBmb3IgdGhpcyB0cmFjay4KICAgICAgICAgICAg
IEFTU0VSVCghbV90cmFja0J1ZmZlck1hcC5jb250YWlucyhuZXdBdWRpb1RyYWNrLT5pZCgpKSk7
Ci0gICAgICAgICAgICBUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVmZmVyTWFw
LmFkZChuZXdBdWRpb1RyYWNrLT5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFsdWU7
CisgICAgICAgICAgICBhdXRvJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKG5l
d0F1ZGlvVHJhY2stPmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKIAogICAg
ICAgICAgICAgLy8gNS4yLjkgQWRkIHRoZSB0cmFjayBkZXNjcmlwdGlvbiBmb3IgdGhpcyB0cmFj
ayB0byB0aGUgdHJhY2sgYnVmZmVyLgogICAgICAgICAgICAgdHJhY2tCdWZmZXIuZGVzY3JpcHRp
b24gPSBhdWRpb1RyYWNrSW5mby5kZXNjcmlwdGlvbjsKQEAgLTExMTcsMTYgKzExMDksMTQgQEAg
dm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6
YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKIAogICAgICAgICAvLyA1LjMgRm9yIGVhY2ggdmlkZW8g
dHJhY2sgaW4gdGhlIGluaXRpYWxpemF0aW9uIHNlZ21lbnQsIHJ1biBmb2xsb3dpbmcgc3RlcHM6
CiAgICAgICAgIGZvciAoYXV0byYgdmlkZW9UcmFja0luZm8gOiBzZWdtZW50LnZpZGVvVHJhY2tz
KSB7Ci0gICAgICAgICAgICBWaWRlb1RyYWNrUHJpdmF0ZSogdmlkZW9UcmFja1ByaXZhdGUgPSB2
aWRlb1RyYWNrSW5mby50cmFjay5nZXQoKTsKLQogICAgICAgICAgICAgLy8gRklYTUU6IEltcGxl
bWVudCBzdGVwcyA1LjMuMS01LjMuOC4xIGFzIHBlciBFZGl0b3IncyBEcmFmdCAwOSBKYW51YXJ5
IDIwMTUsIGFuZCByZW9yZGVyIHRoaXMKICAgICAgICAgICAgIC8vIDUuMy4xIExldCBuZXcgdmlk
ZW8gdHJhY2sgYmUgYSBuZXcgVmlkZW9UcmFjayBvYmplY3QuCiAgICAgICAgICAgICAvLyA1LjMu
MiBHZW5lcmF0ZSBhIHVuaXF1ZSBJRCBhbmQgYXNzaWduIGl0IHRvIHRoZSBpZCBwcm9wZXJ0eSBv
biBuZXcgdmlkZW8gdHJhY2suCi0gICAgICAgICAgICBhdXRvIG5ld1ZpZGVvVHJhY2sgPSBWaWRl
b1RyYWNrOjpjcmVhdGUodGhpcywgdmlkZW9UcmFja1ByaXZhdGUpOworICAgICAgICAgICAgYXV0
byBuZXdWaWRlb1RyYWNrID0gVmlkZW9UcmFjazo6Y3JlYXRlKCp0aGlzLCAqdmlkZW9UcmFja0lu
Zm8udHJhY2spOwogICAgICAgICAgICAgbmV3VmlkZW9UcmFjay0+c2V0U291cmNlQnVmZmVyKHRo
aXMpOwogCiAgICAgICAgICAgICAvLyA1LjMuMyBJZiB2aWRlb1RyYWNrcy5sZW5ndGggZXF1YWxz
IDAsIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgICAgICBpZiAoIXZpZGVv
VHJhY2tzKCktPmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpZiAoIXZpZGVvVHJhY2tzKCkubGVu
Z3RoKCkpIHsKICAgICAgICAgICAgICAgICAvLyA1LjMuMy4xIFNldCB0aGUgc2VsZWN0ZWQgcHJv
cGVydHkgb24gbmV3IHZpZGVvIHRyYWNrIHRvIHRydWUuCiAgICAgICAgICAgICAgICAgbmV3Vmlk
ZW9UcmFjay0+c2V0U2VsZWN0ZWQodHJ1ZSk7CiAKQEAgLTExMzgsNyArMTEyOCw3IEBAIHZvaWQg
U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9u
U2VnbWVudChTb3VyY2VCdWZmCiAgICAgICAgICAgICAvLyA1LjMuNSBRdWV1ZSBhIHRhc2sgdG8g
ZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgYWRkdHJhY2ssIHRoYXQgZG9lcyBub3QgYnViYmxl
IGFuZCBpcwogICAgICAgICAgICAgLy8gbm90IGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMgdGhl
IFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0CiAgICAg
ICAgICAgICAvLyByZWZlcmVuY2VkIGJ5IHRoZSB2aWRlb1RyYWNrcyBhdHRyaWJ1dGUgb24gdGhp
cyBTb3VyY2VCdWZmZXIgb2JqZWN0LgotICAgICAgICAgICAgdmlkZW9UcmFja3MoKS0+YXBwZW5k
KG5ld1ZpZGVvVHJhY2suY29weVJlZigpKTsKKyAgICAgICAgICAgIHZpZGVvVHJhY2tzKCkuYXBw
ZW5kKG5ld1ZpZGVvVHJhY2suY29weVJlZigpKTsKIAogICAgICAgICAgICAgLy8gNS4zLjYgQWRk
IG5ldyB2aWRlbyB0cmFjayB0byB0aGUgdmlkZW9UcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1M
TWVkaWFFbGVtZW50LgogICAgICAgICAgICAgLy8gNS4zLjcgUXVldWUgYSB0YXNrIHRvIGZpcmUg
YSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQg
aXMKQEAgLTExNDgsNyArMTEzOCw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQ
cml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmCiAKICAgICAg
ICAgICAgIC8vIDUuMy44IENyZWF0ZSBhIG5ldyB0cmFjayBidWZmZXIgdG8gc3RvcmUgY29kZWQg
ZnJhbWVzIGZvciB0aGlzIHRyYWNrLgogICAgICAgICAgICAgQVNTRVJUKCFtX3RyYWNrQnVmZmVy
TWFwLmNvbnRhaW5zKG5ld1ZpZGVvVHJhY2stPmlkKCkpKTsKLSAgICAgICAgICAgIFRyYWNrQnVm
ZmVyJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKG5ld1ZpZGVvVHJhY2stPmlk
KCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgICAgIGF1dG8mIHRy
YWNrQnVmZmVyID0gbV90cmFja0J1ZmZlck1hcC5hZGQobmV3VmlkZW9UcmFjay0+aWQoKSwgVHJh
Y2tCdWZmZXIoKSkuaXRlcmF0b3ItPnZhbHVlOwogCiAgICAgICAgICAgICAvLyA1LjMuOSBBZGQg
dGhlIHRyYWNrIGRlc2NyaXB0aW9uIGZvciB0aGlzIHRyYWNrIHRvIHRoZSB0cmFjayBidWZmZXIu
CiAgICAgICAgICAgICB0cmFja0J1ZmZlci5kZXNjcmlwdGlvbiA9IHZpZGVvVHJhY2tJbmZvLmRl
c2NyaXB0aW9uOwpAQCAtMTE1OCwzMyArMTE0OCwzMyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291
cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVm
ZgogCiAgICAgICAgIC8vIDUuNCBGb3IgZWFjaCB0ZXh0IHRyYWNrIGluIHRoZSBpbml0aWFsaXph
dGlvbiBzZWdtZW50LCBydW4gZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICBmb3IgKGF1dG8mIHRl
eHRUcmFja0luZm8gOiBzZWdtZW50LnRleHRUcmFja3MpIHsKLSAgICAgICAgICAgIEluYmFuZFRl
eHRUcmFja1ByaXZhdGUqIHRleHRUcmFja1ByaXZhdGUgPSB0ZXh0VHJhY2tJbmZvLnRyYWNrLmdl
dCgpOworICAgICAgICAgICAgYXV0byYgdGV4dFRyYWNrUHJpdmF0ZSA9ICp0ZXh0VHJhY2tJbmZv
LnRyYWNrOwogCiAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHN0ZXBzIDUuNC4xLTUu
NC44LjEgYXMgcGVyIEVkaXRvcidzIERyYWZ0IDA5IEphbnVhcnkgMjAxNSwgYW5kIHJlb3JkZXIg
dGhpcwogICAgICAgICAgICAgLy8gNS40LjEgTGV0IG5ldyB0ZXh0IHRyYWNrIGJlIGEgbmV3IFRl
eHRUcmFjayBvYmplY3Qgd2l0aCBpdHMgcHJvcGVydGllcyBwb3B1bGF0ZWQgd2l0aCB0aGUKICAg
ICAgICAgICAgIC8vIGFwcHJvcHJpYXRlIGluZm9ybWF0aW9uIGZyb20gdGhlIGluaXRpYWxpemF0
aW9uIHNlZ21lbnQuCi0gICAgICAgICAgICBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrPiBuZXdUZXh0
VHJhY2sgPSBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCks
IHRoaXMsIHRleHRUcmFja1ByaXZhdGUpOworICAgICAgICAgICAgYXV0byBuZXdUZXh0VHJhY2sg
PSBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhp
cywgdGV4dFRyYWNrUHJpdmF0ZSk7CiAKICAgICAgICAgICAgIC8vIDUuNC4yIElmIHRoZSBtb2Rl
IHByb3BlcnR5IG9uIG5ldyB0ZXh0IHRyYWNrIGVxdWFscyAic2hvd2luZyIgb3IgImhpZGRlbiIs
IHRoZW4gc2V0IGFjdGl2ZQogICAgICAgICAgICAgLy8gdHJhY2sgZmxhZyB0byB0cnVlLgotICAg
ICAgICAgICAgaWYgKHRleHRUcmFja1ByaXZhdGUtPm1vZGUoKSAhPSBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlOjpEaXNhYmxlZCkKKyAgICAgICAgICAgIGlmICh0ZXh0VHJhY2tQcml2YXRlLm1vZGUo
KSAhPSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpEaXNhYmxlZCkKICAgICAgICAgICAgICAgICBh
Y3RpdmVUcmFja0ZsYWcgPSB0cnVlOwogCiAgICAgICAgICAgICAvLyA1LjQuMyBBZGQgbmV3IHRl
eHQgdHJhY2sgdG8gdGhlIHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoaXMgU291cmNlQnVmZmVy
IG9iamVjdC4KICAgICAgICAgICAgIC8vIDUuNC40IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1
c3RlZCBldmVudCBuYW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCiAg
ICAgICAgICAgICAvLyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVu
dCBpbnRlcmZhY2UsIGF0IHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoaXMKICAgICAgICAgICAg
IC8vIFNvdXJjZUJ1ZmZlciBvYmplY3QuCi0gICAgICAgICAgICB0ZXh0VHJhY2tzKCktPmFwcGVu
ZCgqbmV3VGV4dFRyYWNrKTsKKyAgICAgICAgICAgIHRleHRUcmFja3MoKS5hcHBlbmQobmV3VGV4
dFRyYWNrLmdldCgpKTsKIAogICAgICAgICAgICAgLy8gNS40LjUgQWRkIG5ldyB0ZXh0IHRyYWNr
IHRvIHRoZSB0ZXh0VHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAg
ICAgICAgICAgIC8vIDUuNC42IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBu
YW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCiAgICAgICAgICAgICAv
LyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZhY2Us
IGF0IHRoZSBUZXh0VHJhY2tMaXN0IG9iamVjdAogICAgICAgICAgICAgLy8gcmVmZXJlbmNlZCBi
eSB0aGUgdGV4dFRyYWNrcyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCi0gICAg
ICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja3MoKS5hcHBlbmQobmV3
VGV4dFRyYWNrLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgbV9zb3VyY2UtPm1lZGlh
RWxlbWVudCgpLT50ZXh0VHJhY2tzKCkuYXBwZW5kKFdURk1vdmUobmV3VGV4dFRyYWNrKSk7CiAK
ICAgICAgICAgICAgIC8vIDUuNC43IENyZWF0ZSBhIG5ldyB0cmFjayBidWZmZXIgdG8gc3RvcmUg
Y29kZWQgZnJhbWVzIGZvciB0aGlzIHRyYWNrLgotICAgICAgICAgICAgQVNTRVJUKCFtX3RyYWNr
QnVmZmVyTWFwLmNvbnRhaW5zKHRleHRUcmFja1ByaXZhdGUtPmlkKCkpKTsKLSAgICAgICAgICAg
IFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKHRleHRUcmFj
a1ByaXZhdGUtPmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAg
ICAgIEFTU0VSVCghbV90cmFja0J1ZmZlck1hcC5jb250YWlucyh0ZXh0VHJhY2tQcml2YXRlLmlk
KCkpKTsKKyAgICAgICAgICAgIGF1dG8mIHRyYWNrQnVmZmVyID0gbV90cmFja0J1ZmZlck1hcC5h
ZGQodGV4dFRyYWNrUHJpdmF0ZS5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFsdWU7
CiAKICAgICAgICAgICAgIC8vIDUuNC44IEFkZCB0aGUgdHJhY2sgZGVzY3JpcHRpb24gZm9yIHRo
aXMgdHJhY2sgdG8gdGhlIHRyYWNrIGJ1ZmZlci4KICAgICAgICAgICAgIHRyYWNrQnVmZmVyLmRl
c2NyaXB0aW9uID0gdGV4dFRyYWNrSW5mby5kZXNjcmlwdGlvbjsKQEAgLTEyMzEsOSArMTIyMSw5
IEBAIGJvb2wgU291cmNlQnVmZmVyOjp2YWxpZGF0ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25z
dCBJbml0aWFsaXphdGlvblNlZ21lbnQmIHNlCiAKICAgICAvLyBOb3RlOiB0aG9zZSBhcmUgY2hl
Y2tzIGZyb20gc3RlcCAzLjEKICAgICAvLyAgICogVGhlIG51bWJlciBvZiBhdWRpbywgdmlkZW8s
IGFuZCB0ZXh0IHRyYWNrcyBtYXRjaCB3aGF0IHdhcyBpbiB0aGUgZmlyc3QgaW5pdGlhbGl6YXRp
b24gc2VnbWVudC4KLSAgICBpZiAoc2VnbWVudC5hdWRpb1RyYWNrcy5zaXplKCkgIT0gYXVkaW9U
cmFja3MoKS0+bGVuZ3RoKCkKLSAgICAgICAgfHwgc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkg
IT0gdmlkZW9UcmFja3MoKS0+bGVuZ3RoKCkKLSAgICAgICAgfHwgc2VnbWVudC50ZXh0VHJhY2tz
LnNpemUoKSAhPSB0ZXh0VHJhY2tzKCktPmxlbmd0aCgpKQorICAgIGlmIChzZWdtZW50LmF1ZGlv
VHJhY2tzLnNpemUoKSAhPSBhdWRpb1RyYWNrcygpLmxlbmd0aCgpCisgICAgICAgIHx8IHNlZ21l
bnQudmlkZW9UcmFja3Muc2l6ZSgpICE9IHZpZGVvVHJhY2tzKCkubGVuZ3RoKCkKKyAgICAgICAg
fHwgc2VnbWVudC50ZXh0VHJhY2tzLnNpemUoKSAhPSB0ZXh0VHJhY2tzKCkubGVuZ3RoKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vICAgKiBUaGUgY29kZWNzIGZvciBlYWNoIHRy
YWNrLCBtYXRjaCB3aGF0IHdhcyBzcGVjaWZpZWQgaW4gdGhlIGZpcnN0IGluaXRpYWxpemF0aW9u
IHNlZ21lbnQuCkBAIC0xMzE5LDcgKzEzMDksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6YXBwZW5k
RXJyb3IoYm9vbCBkZWNvZGVFcnJvclBhcmFtKQogICAgICAgICBtX3NvdXJjZS0+c3RyZWFtRW5k
ZWRXaXRoRXJyb3IoTWVkaWFTb3VyY2U6OkVuZE9mU3RyZWFtRXJyb3I6OkRlY29kZSk7CiB9CiAK
LXZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShT
b3VyY2VCdWZmZXJQcml2YXRlKiwgTWVkaWFTYW1wbGUmIHNhbXBsZSkKK3ZvaWQgU291cmNlQnVm
ZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2Ft
cGxlKQogewogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTY2Niwz
MCArMTY1NiwzMCBAQCBib29sIFNvdXJjZUJ1ZmZlcjo6aGFzVmlkZW8oKSBjb25zdAogICAgIHJl
dHVybiBtX3ZpZGVvVHJhY2tzICYmIG1fdmlkZW9UcmFja3MtPmxlbmd0aCgpOwogfQogCi1ib29s
IFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKGNvbnN0IFNvdXJjZUJ1
ZmZlclByaXZhdGUqKSBjb25zdAorYm9vbCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZh
dGVIYXNBdWRpbygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc0F1ZGlvKCk7CiB9CiAKLWJvb2wg
U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8oY29uc3QgU291cmNlQnVm
ZmVyUHJpdmF0ZSopIGNvbnN0Citib29sIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0
ZUhhc1ZpZGVvKCkgY29uc3QKIHsKICAgICByZXR1cm4gaGFzVmlkZW8oKTsKIH0KIAotdm9pZCBT
b3VyY2VCdWZmZXI6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayogdHJhY2sp
Cit2b2lkIFNvdXJjZUJ1ZmZlcjo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNr
JiB0cmFjaykKIHsKICAgICAvLyAyLjQuNSBDaGFuZ2VzIHRvIHNlbGVjdGVkL2VuYWJsZWQgdHJh
Y2sgc3RhdGUKICAgICAvLyBJZiB0aGUgc2VsZWN0ZWQgdmlkZW8gdHJhY2sgY2hhbmdlcywgdGhl
biBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKICAgICAvLyAxLiBJZiB0aGUgU291cmNlQnVmZmVy
IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCB2aWRlbyB0cmFjayBpcyBu
b3QgYXNzb2NpYXRlZCB3aXRoCiAgICAgLy8gYW55IG90aGVyIGVuYWJsZWQgdHJhY2tzLCBydW4g
dGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAoIXRyYWNrLT5zZWxlY3RlZCgpCisgICAgaWYg
KCF0cmFjay5zZWxlY3RlZCgpCiAgICAgICAgICYmICghbV92aWRlb1RyYWNrcyB8fCAhbV92aWRl
b1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX2F1ZGlvVHJhY2tz
IHx8ICFtX2F1ZGlvVHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAgICAgICAmJiAoIW1f
dGV4dFRyYWNrcyB8fCAhbV90ZXh0VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKSkgewogICAg
ICAgICAvLyAxLjEgUmVtb3ZlIHRoZSBTb3VyY2VCdWZmZXIgZnJvbSBhY3RpdmVTb3VyY2VCdWZm
ZXJzLgogICAgICAgICAvLyAxLjIgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQg
bmFtZWQgcmVtb3Zlc291cmNlYnVmZmVyIGF0IGFjdGl2ZVNvdXJjZUJ1ZmZlcnMKICAgICAgICAg
c2V0QWN0aXZlKGZhbHNlKTsKLSAgICB9IGVsc2UgaWYgKHRyYWNrLT5zZWxlY3RlZCgpKSB7Cisg
ICAgfSBlbHNlIGlmICh0cmFjay5zZWxlY3RlZCgpKSB7CiAgICAgICAgIC8vIDIuIElmIHRoZSBT
b3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBuZXdseSBzZWxlY3RlZCB2aWRlbyB0cmFj
ayBpcyBub3QgYWxyZWFkeSBpbiBhY3RpdmVTb3VyY2VCdWZmZXJzLAogICAgICAgICAvLyBydW4g
dGhlIGZvbGxvd2luZyBzdGVwczoKICAgICAgICAgLy8gMi4xIEFkZCB0aGUgU291cmNlQnVmZmVy
IHRvIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMuCkBAIC0xNjk3LDI2ICsxNjg3LDI2IEBAIHZvaWQgU291
cmNlQnVmZmVyOjp2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqIHRyYWNrKQog
ICAgICAgICBzZXRBY3RpdmUodHJ1ZSk7CiAgICAgfQogCi0gICAgaWYgKG1fdmlkZW9UcmFja3Mg
JiYgbV92aWRlb1RyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV92aWRlb1RyYWNr
cyAmJiBtX3ZpZGVvVHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fdmlkZW9UcmFj
a3MtPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIGlmICghaXNSZW1vdmVkKCkpCiAgICAg
ICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCh0
cmFjayk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjphdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQo
QXVkaW9UcmFjayogdHJhY2spCit2b2lkIFNvdXJjZUJ1ZmZlcjo6YXVkaW9UcmFja0VuYWJsZWRD
aGFuZ2VkKEF1ZGlvVHJhY2smIHRyYWNrKQogewogICAgIC8vIDIuNC41IENoYW5nZXMgdG8gc2Vs
ZWN0ZWQvZW5hYmxlZCB0cmFjayBzdGF0ZQogICAgIC8vIElmIGFuIGF1ZGlvIHRyYWNrIGJlY29t
ZXMgZGlzYWJsZWQgYW5kIHRoZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdHJh
Y2sgaXMgbm90CiAgICAgLy8gYXNzb2NpYXRlZCB3aXRoIGFueSBvdGhlciBlbmFibGVkIG9yIHNl
bGVjdGVkIHRyYWNrLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIGlmICghdHJh
Y2stPmVuYWJsZWQoKQorICAgIGlmICghdHJhY2suZW5hYmxlZCgpCiAgICAgICAgICYmICghbV92
aWRlb1RyYWNrcyB8fCAhbV92aWRlb1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAg
ICAgJiYgKCFtX2F1ZGlvVHJhY2tzIHx8ICFtX2F1ZGlvVHJhY2tzLT5pc0FueVRyYWNrRW5hYmxl
ZCgpKQogICAgICAgICAmJiAoIW1fdGV4dFRyYWNrcyB8fCAhbV90ZXh0VHJhY2tzLT5pc0FueVRy
YWNrRW5hYmxlZCgpKSkgewogICAgICAgICAvLyAxLiBSZW1vdmUgdGhlIFNvdXJjZUJ1ZmZlciBh
c3NvY2lhdGVkIHdpdGggdGhlIGF1ZGlvIHRyYWNrIGZyb20gYWN0aXZlU291cmNlQnVmZmVycwog
ICAgICAgICAvLyAyLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBy
ZW1vdmVzb3VyY2VidWZmZXIgYXQgYWN0aXZlU291cmNlQnVmZmVycwogICAgICAgICBzZXRBY3Rp
dmUoZmFsc2UpOwotICAgIH0gZWxzZSBpZiAodHJhY2stPmVuYWJsZWQoKSkgeworICAgIH0gZWxz
ZSBpZiAodHJhY2suZW5hYmxlZCgpKSB7CiAgICAgICAgIC8vIElmIGFuIGF1ZGlvIHRyYWNrIGJl
Y29tZXMgZW5hYmxlZCBhbmQgdGhlIFNvdXJjZUJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhpcyB0
cmFjayBpcwogICAgICAgICAvLyBub3QgYWxyZWFkeSBpbiBhY3RpdmVTb3VyY2VCdWZmZXJzLCB0
aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICAvLyAxLiBBZGQgdGhlIFNvdXJj
ZUJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhlIGF1ZGlvIHRyYWNrIHRvIGFjdGl2ZVNvdXJjZUJ1
ZmZlcnMKQEAgLTE3MjQsMTkgKzE3MTQsMTkgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OmF1ZGlvVHJh
Y2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKiB0cmFjaykKICAgICAgICAgc2V0QWN0aXZlKHRy
dWUpOwogICAgIH0KIAotICAgIGlmIChtX2F1ZGlvVHJhY2tzICYmIG1fYXVkaW9UcmFja3MtPmNv
bnRhaW5zKCp0cmFjaykpCisgICAgaWYgKG1fYXVkaW9UcmFja3MgJiYgbV9hdWRpb1RyYWNrcy0+
Y29udGFpbnModHJhY2spKQogICAgICAgICBtX2F1ZGlvVHJhY2tzLT5zY2hlZHVsZUNoYW5nZUV2
ZW50KCk7CiAKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFF
bGVtZW50KCktPmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCh0cmFjayk7CiB9CiAKLXZvaWQgU291
cmNlQnVmZmVyOjp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQordm9pZCBT
b3VyY2VCdWZmZXI6OnRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7CiAg
ICAgLy8gMi40LjUgQ2hhbmdlcyB0byBzZWxlY3RlZC9lbmFibGVkIHRyYWNrIHN0YXRlCiAgICAg
Ly8gSWYgYSB0ZXh0IHRyYWNrIG1vZGUgYmVjb21lcyAiZGlzYWJsZWQiIGFuZCB0aGUgU291cmNl
QnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYWNrIGlzIG5vdAogICAgIC8vIGFzc29jaWF0
ZWQgd2l0aCBhbnkgb3RoZXIgZW5hYmxlZCBvciBzZWxlY3RlZCB0cmFjaywgdGhlbiBydW4gdGhl
IGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAodHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1v
ZGU6OkRpc2FibGVkCisgICAgaWYgKHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OkRp
c2FibGVkCiAgICAgICAgICYmICghbV92aWRlb1RyYWNrcyB8fCAhbV92aWRlb1RyYWNrcy0+aXNB
bnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX2F1ZGlvVHJhY2tzIHx8ICFtX2F1ZGlv
VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAgICAgICAmJiAoIW1fdGV4dFRyYWNrcyB8
fCAhbV90ZXh0VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKSkgewpAQCAtMTc1MSw1NiArMTc0
MSw1NiBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNr
KiB0cmFjaykKICAgICAgICAgc2V0QWN0aXZlKHRydWUpOwogICAgIH0KIAotICAgIGlmIChtX3Rl
eHRUcmFja3MgJiYgbV90ZXh0VHJhY2tzLT5jb250YWlucygqdHJhY2spKQorICAgIGlmIChtX3Rl
eHRUcmFja3MgJiYgbV90ZXh0VHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fdGV4
dFRyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogCiAgICAgaWYgKCFpc1JlbW92ZWQoKSkK
ICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tNb2RlQ2hhbmdlZCh0
cmFjayk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNr
KiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNr
QWRkQ3VlKFRleHRUcmFjayYgdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogewogICAgIGlmICgh
aXNSZW1vdmVkKCkpCiAgICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dGV4dFRyYWNr
QWRkQ3VlKHRyYWNrLCBjdWUpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrQWRk
Q3VlcyhUZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWVMaXN0IGNvbnN0KiBjdWVMaXN0KQor
dm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiB0cmFjaywgY29u
c3QgVGV4dFRyYWNrQ3VlTGlzdCYgY3VlTGlzdCkKIHsKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQog
ICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja0FkZEN1ZXModHJhY2ss
IGN1ZUxpc3QpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3VlKFRl
eHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBTb3VyY2VCdWZmZXI6OnRl
eHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKIHsK
ICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCkt
PnRleHRUcmFja1JlbW92ZUN1ZSh0cmFjaywgY3VlKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6
OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlTGlzdCBj
b25zdCogY3VlTGlzdCkKK3ZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRl
eHRUcmFjayYgdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZUxpc3QpCiB7CiAgICAg
aWYgKCFpc1JlbW92ZWQoKSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0
VHJhY2tSZW1vdmVDdWVzKHRyYWNrLCBjdWVMaXN0KTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6
OnRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIFNvdXJjZUJ1ZmZl
cjo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykKIHsKICAgICBpZiAoIWlz
UmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja0tp
bmRDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBB
dG9taWNTdHJpbmcgdHJhY2tJRCkKK3ZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2
YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNr
SUQpCiB7CiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQ
cml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyglcCkiLCB0aGlzKTsKICAgICBhdXRv
IGl0ID0gbV90cmFja0J1ZmZlck1hcC5maW5kKHRyYWNrSUQpOwogICAgIGlmIChpdCA9PSBtX3Ry
YWNrQnVmZmVyTWFwLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBUcmFja0J1ZmZlciYg
dHJhY2tCdWZmZXIgPSBpdC0+dmFsdWU7CisgICAgYXV0byYgdHJhY2tCdWZmZXIgPSBpdC0+dmFs
dWU7CiAgICAgaWYgKCF0cmFja0J1ZmZlci5uZWVkc1JlZW5xdWV1ZWluZyAmJiAhbV9zb3VyY2Ut
PmlzU2Vla2luZygpKQogICAgICAgICBwcm92aWRlTWVkaWFEYXRhKHRyYWNrQnVmZmVyLCB0cmFj
a0lEKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoVHJhY2tCdWZm
ZXImIHRyYWNrQnVmZmVyLCBBdG9taWNTdHJpbmcgdHJhY2tJRCkKK3ZvaWQgU291cmNlQnVmZmVy
Ojpwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgY29uc3QgQXRvbWlj
U3RyaW5nJiB0cmFja0lEKQogewogICAgIGlmIChtX3NvdXJjZS0+aXNTZWVraW5nKCkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTE4MzQsNyArMTgyNCw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpwcm92
aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5nIHRyYWNr
CiAKICAgICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSA9IHNh
bXBsZS0+cHJlc2VudGF0aW9uVGltZSgpOwogICAgICAgICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1
ZWREZWNvZGVFbmRUaW1lID0gc2FtcGxlLT5kZWNvZGVUaW1lKCkgKyBzYW1wbGUtPmR1cmF0aW9u
KCk7Ci0gICAgICAgIG1fcHJpdmF0ZS0+ZW5xdWV1ZVNhbXBsZShXVEZNb3ZlKHNhbXBsZSksIHRy
YWNrSUQpOworICAgICAgICBtX3ByaXZhdGUtPmVucXVldWVTYW1wbGUoc2FtcGxlLnJlbGVhc2VO
b25OdWxsKCksIHRyYWNrSUQpOwogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgKytlbnF1ZXVl
ZFNhbXBsZXM7CiAjZW5kaWYKQEAgLTE4NDMsNyArMTgzMyw3IEBAIHZvaWQgU291cmNlQnVmZmVy
Ojpwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5n
IHRyYWNrCiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyOjpwcm92aWRlTWVkaWFE
YXRhKCVwKSAtIEVucXVldWVkICV1IHNhbXBsZXMiLCB0aGlzLCBlbnF1ZXVlZFNhbXBsZXMpOwog
fQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6cmVlbnF1ZXVlTWVkaWFGb3JUaW1lKFRyYWNrQnVmZmVy
JiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5nIHRyYWNrSUQsIGNvbnN0IE1lZGlhVGltZSYgdGlt
ZSkKK3ZvaWQgU291cmNlQnVmZmVyOjpyZWVucXVldWVNZWRpYUZvclRpbWUoVHJhY2tCdWZmZXIm
IHRyYWNrQnVmZmVyLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQsIGNvbnN0IE1lZGlhVGlt
ZSYgdGltZSkKIHsKICAgICBtX3ByaXZhdGUtPmZsdXNoKHRyYWNrSUQpOwogICAgIHRyYWNrQnVm
ZmVyLmRlY29kZVF1ZXVlLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAppbmRleCBkOWUxNzQ3OTk5MjRhZmIwZTg4ZDc0Nzcy
ZThmOGE5MWEyY2YwMmIwLi41YTE0MmQ0Y2ExMDIzNTRlZWQ4MGJjMWFjMWJlYmMzMTU3NmM4Zjhm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1
ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIEF1ZGlvVHJhY2tMaXN0OwogY2xhc3Mg
QnVmZmVyU291cmNlOwogY2xhc3MgTWVkaWFTb3VyY2U7CiBjbGFzcyBQbGF0Zm9ybVRpbWVSYW5n
ZXM7CitjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlOwogY2xhc3MgVGV4dFRyYWNrTGlzdDsKIGNs
YXNzIFRpbWVSYW5nZXM7CiBjbGFzcyBWaWRlb1RyYWNrTGlzdDsKQEAgLTY0LDkgKzY1LDkgQEAg
cHVibGljOgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFRpbWVzdGFtcE9mZnNldChkb3VibGUp
OwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIFZpZGVvVHJhY2tMaXN0KiB2aWRlb1Ry
YWNrcygpOwotICAgIEF1ZGlvVHJhY2tMaXN0KiBhdWRpb1RyYWNrcygpOwotICAgIFRleHRUcmFj
a0xpc3QqIHRleHRUcmFja3MoKTsKKyAgICBWaWRlb1RyYWNrTGlzdCYgdmlkZW9UcmFja3MoKTsK
KyAgICBBdWRpb1RyYWNrTGlzdCYgYXVkaW9UcmFja3MoKTsKKyAgICBUZXh0VHJhY2tMaXN0JiB0
ZXh0VHJhY2tzKCk7CiAjZW5kaWYKIAogICAgIGRvdWJsZSBhcHBlbmRXaW5kb3dTdGFydCgpIGNv
bnN0OwpAQCAtMTI0LDI1ICsxMjUsMjQgQEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiBhY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9j
dW1lbnRTdXNwZW5zaW9uKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmZlclByaXZhdGUq
LCBjb25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmKSBmaW5hbDsKLSAgICB2b2lkIHNvdXJjZUJ1
ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBNZWRpYVNh
bXBsZSYpIGZpbmFsOwotICAgIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKGNvbnN0
IFNvdXJjZUJ1ZmZlclByaXZhdGUqKSBjb25zdCBmaW5hbDsKLSAgICBib29sIHNvdXJjZUJ1ZmZl
clByaXZhdGVIYXNWaWRlbyhjb25zdCBTb3VyY2VCdWZmZXJQcml2YXRlKikgY29uc3QgZmluYWw7
Ci0gICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxl
cyhTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXRvbWljU3RyaW5nIHRyYWNrSUQpIGZpbmFsOwotICAg
IE1lZGlhVGltZSBzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKFNv
dXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIG5l
Z2F0aXZlVGhyZXNob2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKSBmaW5h
bDsKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZm
ZXJQcml2YXRlKiwgQXBwZW5kUmVzdWx0KSBmaW5hbDsKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoU291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBl
cnJvckNvZGUpIGZpbmFsOwotCi0gICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVk
aW9UcmFjayopIGZpbmFsOwotCi0gICAgdm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZp
ZGVvVHJhY2sqKSBmaW5hbDsKLQotICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRy
YWNrKikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqKSBm
aW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRy
YWNrQ3VlTGlzdCopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJh
Y2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tB
ZGRDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJh
Y2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgZmluYWw7CisgICAgdm9pZCBz
b3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBJ
bml0aWFsaXphdGlvblNlZ21lbnQmKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZh
dGVEaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJikgZmluYWw7CisgICAgYm9vbCBzb3VyY2VC
dWZmZXJQcml2YXRlSGFzQXVkaW8oKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHNvdXJjZUJ1ZmZl
clByaXZhdGVIYXNWaWRlbygpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc291cmNlQnVmZmVyUHJp
dmF0ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFj
a0lEKSBmaW5hbDsKKyAgICBNZWRpYVRpbWUgc291cmNlQnVmZmVyUHJpdmF0ZUZhc3RTZWVrVGlt
ZUZvck1lZGlhVGltZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZl
VGhyZXNob2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKSBmaW5hbDsKKyAg
ICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShBcHBlbmRSZXN1bHQpIGZp
bmFsOworICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJv
cihpbnQgZXJyb3JDb2RlKSBmaW5hbDsKKworICAgIHZvaWQgYXVkaW9UcmFja0VuYWJsZWRDaGFu
Z2VkKEF1ZGlvVHJhY2smKSBmaW5hbDsKKyAgICB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5n
ZWQoVmlkZW9UcmFjayYpIGZpbmFsOworCisgICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChU
ZXh0VHJhY2smKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFj
ayYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBU
ZXh0VHJhY2tDdWVMaXN0JikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRl
eHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRU
cmFja0FkZEN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHRl
eHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKIAogICAg
IEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gU291cmNlQnVmZmVyRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAKQEAgLTE1
Nyw4ICsxNTcsOCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCB2YWxpZGF0ZUluaXRpYWxpemF0aW9u
U2VnbWVudChjb25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmKTsKIAotICAgIHZvaWQgcmVlbnF1
ZXVlTWVkaWFGb3JUaW1lKFRyYWNrQnVmZmVyJiwgQXRvbWljU3RyaW5nIHRyYWNrSUQsIGNvbnN0
IE1lZGlhVGltZSYpOwotICAgIHZvaWQgcHJvdmlkZU1lZGlhRGF0YShUcmFja0J1ZmZlciYsIEF0
b21pY1N0cmluZyB0cmFja0lEKTsKKyAgICB2b2lkIHJlZW5xdWV1ZU1lZGlhRm9yVGltZShUcmFj
a0J1ZmZlciYsIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCwgY29uc3QgTWVkaWFUaW1lJik7
CisgICAgdm9pZCBwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiwgY29uc3QgQXRvbWljU3Ry
aW5nJiB0cmFja0lEKTsKICAgICB2b2lkIGRpZERyb3BTYW1wbGUoKTsKICAgICB2b2lkIGV2aWN0
Q29kZWRGcmFtZXMoc2l6ZV90IG5ld0RhdGFTaXplKTsKICAgICBzaXplX3QgbWF4aW11bUJ1ZmZl
clNpemUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA1NzhjYmRhNDMxZDMwYzk5M2NmNTcwM2ExNDExMjM0Y2FmODhh
YWQ2Li45MGY1Y2FiMDJmZGFlNmQzNjA3NmY5ZDgxMjkzN2NiZWQ5NGI3YTMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjE0
LDggKzI2MTQsOCBAQAogCQk2RTNGQUU4RTE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRl
eHR1cmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkUzRkFFOEMxNDczM0ZEQjAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmNwcCAqLzsgfTsK
IAkJNkUzRkFFOEYxNDczM0ZEQjAwRTQyMzA2IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RD
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4
RDE0NzMzRkRCMDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCAqLzsgfTsK
IAkJNkUzRkFFOEYxNDczM0ZEQjAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4RDE0NzMzRkRC
MDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuaCAqLzsgfTsKLQkJNkU0N0U2NjAxMEI3OTQ0
QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJ
bmZvLmNwcCAqLzsgfTsKLQkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5m
by5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU0N0U2
NUYxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5oICovOyB9OworCQk2RTQ3RTY2MDEw
Qjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkU0N0U2NUUxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55
LmNwcCAqLzsgfTsKKwkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTQ3RTY1RjEwQjc5
NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuaCAqLzsgfTsKIAkJNkU0QUJDRDQxMzhFQTBCNzAwNzFE
MjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNEFCQ0QyMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxV
bmtub3duRWxlbWVudC5jcHAgKi87IH07CiAJCTZFNEFCQ0Q1MTM4RUEwQjcwMDcxRDI5MSAvKiBK
U0hUTUxVbmtub3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkU0QUJDRDMxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVt
ZW50LmggKi87IH07CiAJCTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRB
dHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2RTRFOTFBQTEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05OTE1LDgg
Kzk5MTUsOCBAQAogCQk2RTNGQUU4RDE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1
cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xEZXB0aFRleHR1cmUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFFOTAxNDczM0ZFQTAwRTQyMzA2
IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZFM0ZBRTkwMTQ3MzNGRUEwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVyZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR0xEZXB0aFRleHR1cmUuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJ
bmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMR2V0SW5m
by5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFNDdFNjVGMTBCNzk0NEIwMEIx
ODZDOCAvKiBXZWJHTEdldEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViR0xHZXRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFNDdFNjVFMTBC
Nzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJHTEFueS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZF
NDdFNjVGMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJHTEFueS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RTRBQkNEMjEzOEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MVW5rbm93bkVsZW1lbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTRBQkNEMzEzOEVBMEI3MDA3MUQyOTEg
LyogSlNIVE1MVW5rbm93bkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNIVE1MVW5rbm93bkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NkU0RTkxQUExMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY5MjgsOCArMTY5MjgsOCBAQAogCQkJCTQ5
QzdCOUFFMTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmNwcCAqLywKIAkJCQk0
OUM3QjlBRjEwNDJEMzJFMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5oICovLAogCQkJCTQ5
QzdCOUIwMTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmlkbCAqLywKLQkJCQk2
RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCAqLywKLQkJCQk2RTQ3
RTY1RjEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmggKi8sCisJCQkJNkU0N0U2NUUx
MEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmNwcCAqLywKKwkJCQk2RTQ3RTY1RjEwQjc5NDRC
MDBCMTg2QzggLyogV2ViR0xBbnkuaCAqLywKIAkJCQk5M0YxRDVCNzEyRDUzMkM0MDA4MzJCRUMg
LyogV2ViR0xMb3NlQ29udGV4dC5jcHAgKi8sCiAJCQkJOTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVD
IC8qIFdlYkdMTG9zZUNvbnRleHQuaCAqLywKIAkJCQk5M0YxRDVCOTEyRDUzMkM0MDA4MzJCRUMg
LyogV2ViR0xMb3NlQ29udGV4dC5pZGwgKi8sCkBAIC0yODI0Myw3ICsyODI0Myw3IEBACiAJCQkJ
NUIzMDY5NUUxOEIzRDM0NTAwOTlENUU4IC8qIFdlYkdMRHJhd0J1ZmZlcnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTZFQkYwRTU1MTJBODkyOTgwMERCMTcwOSAvKiBXZWJHTEV4dGVuc2lvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDlDN0I5Q0YxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMRnJhbWVi
dWZmZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTZFNDdFNjYxMTBCNzk0NEIwMEIxODZDOCAvKiBX
ZWJHTEdldEluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTZFNDdFNjYxMTBCNzk0NEIwMEIxODZD
OCAvKiBXZWJHTEFueS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlGRkJGM0YxMUM5M0VFMzAwNkE3
MTE4IC8qIFdlYkdMTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjFENUJCMTJENTMyQzQw
MDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3QjlE
NTEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xPYmplY3QuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3
MzIsNyArMzE3MzIsNyBAQAogCQkJCTVCMzA2OTVEMThCM0QzNDUwMDk5RDVFOCAvKiBXZWJHTERy
YXdCdWZmZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFQkYwRTU0MTJBODkyOTgwMERCMTcw
OSAvKiBXZWJHTEV4dGVuc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUM3QjlDRTEwNDJE
MzJGMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk2
RTQ3RTY2MDEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTZFNDdFNjYwMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk0OUZGQkY0MDExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTkzRjFENUJBMTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250
ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUQ0MTA0MkQzMkYwMDA5RDQ0NyAvKiBX
ZWJHTE9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNw
cAppbmRleCBlMjBiMjM4Njg2NGRhY2RkYWQ1NjJmYzNlZWM2YWEzMzk0ZmYxMGE1Li45M2I3OTZh
NDViZmVjZWY2NmRmNzk0OTc1ZmIwNDk1N2JjY2I2MjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRD
dXN0b20uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTY1LDkgKzY1LDkgQEAgc3RhdGljIENhbnZhc1N0eWxlIHRvSFRNTENhbnZhc1N0
eWxlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFsdWUpCiAgICAgICAgIHJldHVybiBDYW52YXNTdHls
ZSgpOwogICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7CiAgICAgaWYgKG9i
amVjdC0+aW5oZXJpdHMoSlNDYW52YXNHcmFkaWVudDo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJu
IENhbnZhc1N0eWxlKCZqc0Nhc3Q8SlNDYW52YXNHcmFkaWVudCo+KG9iamVjdCktPndyYXBwZWQo
KSk7CisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNDYW52YXNHcmFkaWVudCo+KG9iamVjdCktPndy
YXBwZWQoKTsKICAgICBpZiAob2JqZWN0LT5pbmhlcml0cyhKU0NhbnZhc1BhdHRlcm46OmluZm8o
KSkpCi0gICAgICAgIHJldHVybiBDYW52YXNTdHlsZSgmanNDYXN0PEpTQ2FudmFzUGF0dGVybio+
KG9iamVjdCktPndyYXBwZWQoKSk7CisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNDYW52YXNQYXR0
ZXJuKj4ob2JqZWN0KS0+d3JhcHBlZCgpOwogICAgIHJldHVybiBDYW52YXNTdHlsZSgpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRG
dW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50
RnVuY3Rpb25zLmNwcAppbmRleCBmNzhhMTE4NjIxOGM2YTliZDFkNzdiZTg3ODc0M2U5ZWFjYmFj
NzQ0Li40MTgxZDc0Nzg2ZjM5ZjNkZDVmZDc5NzdlY2Y2ODFkZGM2MjUyOTY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9u
cy5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhh
cnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDgs
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykg
MjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKQEAgLTQwLDcgKzQwLDcgQEAgSW5zdGFuY2UqIHBsdWdpbkluc3RhbmNlKEhUTUxFbGVt
ZW50JiBlbGVtZW50KQogICAgIC8vIFRoZSBwbHVnaW4gZWxlbWVudCBob2xkcyBhbiBvd25pbmcg
cmVmZXJlbmNlLCBzbyB3ZSBkb24ndCBoYXZlIHRvLgogICAgIGlmICghaXM8SFRNTFBsdWdJbkVs
ZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBJbnN0YW5jZSog
aW5zdGFuY2UgPSBkb3duY2FzdDxIVE1MUGx1Z0luRWxlbWVudD4oZWxlbWVudCkuZ2V0SW5zdGFu
Y2UoKS5nZXQoKTsKKyAgICBhdXRvKiBpbnN0YW5jZSA9IGRvd25jYXN0PEhUTUxQbHVnSW5FbGVt
ZW50PihlbGVtZW50KS5iaW5kaW5nc0luc3RhbmNlKCk7CiAgICAgaWYgKCFpbnN0YW5jZSB8fCAh
aW5zdGFuY2UtPnJvb3RPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0
dXJuIGluc3RhbmNlOwpAQCAtNzEsMjMgKzcxLDIzIEBAIEpTT2JqZWN0KiBwbHVnaW5TY3JpcHRP
YmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0hUTUxFbGVtZW50KiBqc0hUTUxFbGVtZW50KQogICAg
IGlmICghaXM8SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAotICAgIEhUTUxQbHVnSW5FbGVtZW50JiBwbHVnaW5FbGVtZW50ID0gZG93bmNhc3Q8
SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpOworICAgIGF1dG8mIHBsdWdpbkVsZW1lbnQgPSBk
b3duY2FzdDxIVE1MUGx1Z0luRWxlbWVudD4oZWxlbWVudCk7CiAKICAgICAvLyBDaG9rZSBwb2lu
dCBmb3Igc2NyaXB0L3BsdWdpbiBpbnRlcmFjdGlvbjsgbm90aWZ5IERPTVRpbWVyIG9mIHRoZSBl
dmVudC4KICAgICBET01UaW1lcjo6c2NyaXB0RGlkSW50ZXJhY3RXaXRoUGx1Z2luKHBsdWdpbkVs
ZW1lbnQpOwogCiAgICAgLy8gRmlyc3QsIHNlZSBpZiB0aGUgZWxlbWVudCBoYXMgYSBwbHVnLWlu
IHJlcGxhY2VtZW50IHdpdGggYSBzY3JpcHQuCi0gICAgaWYgKEpTT2JqZWN0KiBzY3JpcHRPYmpl
Y3QgPSBwbHVnaW5FbGVtZW50LnNjcmlwdE9iamVjdEZvclBsdWdpblJlcGxhY2VtZW50KCkpCisg
ICAgaWYgKGF1dG8qIHNjcmlwdE9iamVjdCA9IHBsdWdpbkVsZW1lbnQuc2NyaXB0T2JqZWN0Rm9y
UGx1Z2luUmVwbGFjZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIHNjcmlwdE9iamVjdDsKICAgICAK
ICAgICAvLyBOZXh0LCBzZWUgaWYgd2UgY2FuIGFzayB0aGUgcGx1Zy1pbiB2aWV3IGZvciBpdHMg
c2NyaXB0IG9iamVjdC4KLSAgICBpZiAoSlNPYmplY3QqIHNjcmlwdE9iamVjdCA9IHBsdWdpblNj
cmlwdE9iamVjdEZyb21QbHVnaW5WaWV3QmFzZShwbHVnaW5FbGVtZW50LCBqc0hUTUxFbGVtZW50
LT5nbG9iYWxPYmplY3QoKSkpCisgICAgaWYgKGF1dG8qIHNjcmlwdE9iamVjdCA9IHBsdWdpblNj
cmlwdE9iamVjdEZyb21QbHVnaW5WaWV3QmFzZShwbHVnaW5FbGVtZW50LCBqc0hUTUxFbGVtZW50
LT5nbG9iYWxPYmplY3QoKSkpCiAgICAgICAgIHJldHVybiBzY3JpcHRPYmplY3Q7CiAKICAgICAv
LyBPdGhlcndpc2UsIGZhbGwgYmFjayB0byBnZXR0aW5nIHRoZSBvYmplY3QgZnJvbSB0aGUgaW5z
dGFuY2UuCiAKICAgICAvLyBUaGUgcGx1Z2luIGVsZW1lbnQgaG9sZHMgYW4gb3duaW5nIHJlZmVy
ZW5jZSwgc28gd2UgZG9uJ3QgaGF2ZSB0by4KLSAgICBJbnN0YW5jZSogaW5zdGFuY2UgPSBwbHVn
aW5FbGVtZW50LmdldEluc3RhbmNlKCkuZ2V0KCk7CisgICAgYXV0byogaW5zdGFuY2UgPSBwbHVn
aW5FbGVtZW50LmJpbmRpbmdzSW5zdGFuY2UoKTsKICAgICBpZiAoIWluc3RhbmNlIHx8ICFpbnN0
YW5jZS0+cm9vdE9iamVjdCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dEN1c3RvbS5jcHAKaW5kZXggNzg4YWQyNDQ0NjkyMGQwZmEyZWFlZWI3NDhkNjQ5YmJlMzY4
YzQ3MS4uNGM1MGNjZjhmMzA0NmVkMDA4MzY1MDg4Njc3ZmE0YTc4ZTdjZGVlZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsMzcgKzM2LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBGSVhNRTogVGhlcmUgaXMgYSBkdXBsaWNh
dGUgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIGluIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZUN1c3RvbS5jcHAsCi0vLyBidXQgaXQgaXMgbm90IGV4YWN0bHkgdGhlIHNhbWUhIFdlIHNob3Vs
ZCBtZXJnZSB0aGVzZS4KLXN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgV2ViR0xHZXRJbmZvJiBpbmZvKQot
ewotICAgIHN3aXRjaCAoaW5mby5nZXRUeXBlKCkpIHsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6
a1R5cGVCb29sOgotICAgICAgICByZXR1cm4ganNCb29sZWFuKGluZm8uZ2V0Qm9vbCgpKTsKLSAg
ICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVCb29sQXJyYXk6IHsKLSAgICAgICAgTWFya2VkQXJn
dW1lbnRCdWZmZXIgbGlzdDsKLSAgICAgICAgZm9yIChhdXRvJiB2YWx1ZSA6IGluZm8uZ2V0Qm9v
bEFycmF5KCkpCi0gICAgICAgICAgICBsaXN0LmFwcGVuZChqc0Jvb2xlYW4odmFsdWUpKTsKLSAg
ICAgICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5KHN0YXRlLCAwLCBnbG9iYWxPYmplY3QsIGxpc3Qp
OwotICAgIH0KLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVGbG9hdDoKLSAgICAgICAgcmV0
dXJuIGpzTnVtYmVyKGluZm8uZ2V0RmxvYXQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtU
eXBlSW50OgotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRJbnQoKSk7Ci0gICAgY2Fz
ZSBXZWJHTEdldEluZm86OmtUeXBlTnVsbDoKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAg
IGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVN0cmluZzoKLSAgICAgICAgcmV0dXJuIGpzU3RyaW5n
V2l0aENhY2hlKHN0YXRlLCBpbmZvLmdldFN0cmluZygpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5m
bzo6a1R5cGVVbnNpZ25lZEludDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0VW5z
aWduZWRJbnQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlSW50NjQ6Ci0gICAgICAg
IHJldHVybiBqc051bWJlcihpbmZvLmdldEludDY0KCkpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0K
LX0KLQogdm9pZCBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZpc2l0QWRkaXRpb25hbENoaWxk
cmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCgm
d3JhcHBlZCgpKTsKQEAgLTEwNCw3ICs3Myw3IEBAIEpTVmFsdWUgSlNXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKICAgICB1bnNpZ25lZCBpbmRleCA9IHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0YXRlKTsKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xv
YmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRJbmRleGVkUGFyYW1ldGVyKHBuYW1lLCBpbmRleCkp
OworICAgIHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRJ
bmRleGVkUGFyYW1ldGVyKHBuYW1lLCBpbmRleCkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKEV4ZWNTdGF0ZSYp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2VDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9tLmNwcAppbmRleCA4MjVkMjUwOTRkMmNjNjIyMDZi
MDQ5OTZjMTBkNTMxZTU0Mjk4MDkxLi4xMTU4MzdlMDUxYjFkN2JjZTNmNTA3MWJmYTM0NzVlZWI3
YTlkOTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2VDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHAKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwyMCArMjQs
MTYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNpbmNsdWRlICJKU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKLQotI2luY2x1ZGUgIkFOR0xFSW5zdGFuY2VkQXJy
YXlzLmgiCiAjaW5jbHVkZSAiRVhUQmxlbmRNaW5NYXguaCIKICNpbmNsdWRlICJFWFRGcmFnRGVw
dGguaCIKICNpbmNsdWRlICJFWFRTaGFkZXJUZXh0dXJlTE9ELmgiCiAjaW5jbHVkZSAiRVhUVGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVkZSAiRVhUc1JHQi5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgotI2luY2x1
ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0FOR0xFSW5zdGFuY2VkQXJyYXlz
LmgiCiAjaW5jbHVkZSAiSlNFWFRCbGVuZE1pbk1heC5oIgogI2luY2x1ZGUgIkpTRVhURnJhZ0Rl
cHRoLmgiCkBAIC03Myw3ICs2OSw2IEBACiAjaW5jbHVkZSAiSlNXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgiCiAjaW5jbHVk
ZSAiSlNXZWJLaXRDU1NNYXRyaXguaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2lu
Y2x1ZGUgIk9FU0VsZW1lbnRJbmRleFVpbnQuaCIKICNpbmNsdWRlICJPRVNTdGFuZGFyZERlcml2
YXRpdmVzLmgiCiAjaW5jbHVkZSAiT0VTVGV4dHVyZUZsb2F0LmgiCkBAIC05MSw3ICs4Niw2IEBA
CiAjaW5jbHVkZSAiV2ViR0xEcmF3QnVmZmVycy5oIgogI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9u
LmgiCiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkdMR2V0SW5m
by5oIgogI2luY2x1ZGUgIldlYkdMTG9zZUNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJHTFByb2dy
YW0uaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCkBAIC0xMDUsNyAr
OTksNiBAQAogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAKICNpZiBFTkFCTEUoVklERU8p
Ci0jaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRNTFZpZGVvRWxl
bWVudC5oIgogI2VuZGlmCiAKQEAgLTExNyw3ICsxMTAsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVk
KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+JiYgb2JqZWN0KQorSlNWYWx1ZSB0b0pTTmV3bHlDcmVh
dGVkKEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlPiYmIG9iamVjdCkKIHsKICNpZiBFTkFCTEUoV0VCR0wyKQog
ICAgIGlmIChpczxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PihvYmplY3QpKQpAQCAtMTMxLDY0ICsx
MjQsNyBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgV2ViR0xSZW5kZXJpbmdDbwogICAgIHJldHVybiB3cmFwKHN0YXRlLCBn
bG9iYWxPYmplY3QsIG9iamVjdCk7CiB9CiAgICAgCi0vLyBGSVhNRTogVGhlcmUgaXMgYSBkdXBs
aWNhdGUgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIGluIEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4
dEN1c3RvbS5jcHAsCi0vLyBidXQgaXQgaXMgbm90IGV4YWN0bHkgdGhlIHNhbWUhIFdlIHNob3Vs
ZCBtZXJnZSB0aGVzZS4KLXN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBXZWJHTEdldEluZm8mIGluZm8pCi17
Ci0gICAgc3dpdGNoIChpbmZvLmdldFR5cGUoKSkgewotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjpr
VHlwZUJvb2w6Ci0gICAgICAgIHJldHVybiBqc0Jvb2xlYW4oaW5mby5nZXRCb29sKCkpOwotICAg
IGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZUJvb2xBcnJheTogewotICAgICAgICBNYXJrZWRBcmd1
bWVudEJ1ZmZlciBsaXN0OwotICAgICAgICBmb3IgKGF1dG8mIHZhbHVlIDogaW5mby5nZXRCb29s
QXJyYXkoKSkKLSAgICAgICAgICAgIGxpc3QuYXBwZW5kKGpzQm9vbGVhbih2YWx1ZSkpOwotICAg
ICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoZXhlYywgMCwgZ2xvYmFsT2JqZWN0LCBsaXN0KTsK
LSAgICB9Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlRmxvYXQ6Ci0gICAgICAgIHJldHVy
biBqc051bWJlcihpbmZvLmdldEZsb2F0KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlw
ZUludDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0SW50KCkpOwotICAgIGNhc2Ug
V2ViR0xHZXRJbmZvOjprVHlwZU51bGw6Ci0gICAgICAgIHJldHVybiBqc051bGwoKTsKLSAgICBj
YXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVTdHJpbmc6Ci0gICAgICAgIHJldHVybiBqc1N0cmluZ1dp
dGhDYWNoZShleGVjLCBpbmZvLmdldFN0cmluZygpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6
a1R5cGVVbnNpZ25lZEludDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0VW5zaWdu
ZWRJbnQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xCdWZmZXI6Ci0gICAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTEJ1ZmZlcigp
KTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTEZsb2F0QXJyYXk6Ci0gICAgICAg
IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTEZsb2F0QXJyYXko
KSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xGcmFtZWJ1ZmZlcjoKLSAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMRnJhbWVidWZm
ZXIoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xJbnRBcnJheToKLSAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMSW50QXJyYXko
KSk7Ci0gICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgV2ViR0xPYmplY3RBcnJheQotICAgICAg
ICAvLyBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTE9iamVjdEFycmF5OgotICAgIGNhc2Ug
V2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMUHJvZ3JhbToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMUHJvZ3JhbSgpKTsKLSAgICBjYXNlIFdlYkdM
R2V0SW5mbzo6a1R5cGVXZWJHTFJlbmRlcmJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMUmVuZGVyYnVmZmVyKCkpOwotICAgIGNhc2Ug
V2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVGV4dHVyZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMVGV4dHVyZSgpKTsKLSAgICBjYXNlIFdlYkdM
R2V0SW5mbzo6a1R5cGVXZWJHTFVuc2lnbmVkQnl0ZUFycmF5OgotICAgICAgICByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xVbnNpZ25lZEJ5dGVBcnJheSgpKTsK
LSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFVuc2lnbmVkSW50QXJyYXk6Ci0gICAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTFVuc2lnbmVk
SW50QXJyYXkoKSk7Ci0jaWYgRU5BQkxFKFdFQkdMMikKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6
a1R5cGVXZWJHTFZlcnRleEFycmF5T2JqZWN0OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCgpKTsKLSNlbmRpZgot
ICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6Ci0g
ICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTKCkpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLX0KLQotZW51bSBPYmpl
Y3RUeXBlIHsga0J1ZmZlciwga1JlbmRlcmJ1ZmZlciwga1RleHR1cmUsIGtWZXJ0ZXhBdHRyaWIg
fTsKLQotc3RhdGljIEpTVmFsdWUgZ2V0T2JqZWN0UGFyYW1ldGVyKEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSogb2JqLCBFeGVjU3RhdGUmIHN0YXRlLCBPYmplY3RUeXBlIG9iamVjdFR5cGUp
CitzdGF0aWMgSlNWYWx1ZSBvYmplY3RQYXJhbWV0ZXIoSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlJiBjb250ZXh0LCBFeGVjU3RhdGUmIHN0YXRlLCBXZWJHTEFueSAoV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6KmdldHRlcikoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xOTYsOTAgKzEzMiw2NiBAQCBzdGF0aWMgSlNWYWx1ZSBnZXRPYmpl
Y3RQYXJhbWV0ZXIoSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBvYmosIEV4ZWNTdGF0ZSYg
cwogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgIT0gMikKICAgICAgICAgcmV0dXJuIHRo
cm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KCZzdGF0ZSkpOwogICAgIAotICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQg
PSBvYmotPndyYXBwZWQoKTsKLSAgICB1bnNpZ25lZCB0YXJnZXQgPSBzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgSlNWYWx1ZSgpKTsKLSAgICB1bnNpZ25lZCBwbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBK
U1ZhbHVlKCkpOwotICAgIFdlYkdMR2V0SW5mbyBpbmZvOwotICAgIHN3aXRjaCAob2JqZWN0VHlw
ZSkgewotICAgIGNhc2Uga0J1ZmZlcjoKLSAgICAgICAgaW5mbyA9IGNvbnRleHQuZ2V0QnVmZmVy
UGFyYW1ldGVyKHRhcmdldCwgcG5hbWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIGtSZW5k
ZXJidWZmZXI6Ci0gICAgICAgIGluZm8gPSBjb250ZXh0LmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRl
cih0YXJnZXQsIHBuYW1lKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBrVGV4dHVyZToKLSAg
ICAgICAgaW5mbyA9IGNvbnRleHQuZ2V0VGV4UGFyYW1ldGVyKHRhcmdldCwgcG5hbWUpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIGtWZXJ0ZXhBdHRyaWI6Ci0gICAgICAgIC8vIHRhcmdldCA9
PiBpbmRleAotICAgICAgICBpbmZvID0gY29udGV4dC5nZXRWZXJ0ZXhBdHRyaWIodGFyZ2V0LCBw
bmFtZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIG9i
ai0+Z2xvYmFsT2JqZWN0KCksIGluZm8pOworICAgIGF1dG8gdGFyZ2V0ID0gc3RhdGUudW5jaGVj
a2VkQXJndW1lbnQoMCkudG9JbnQzMigmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7CisgICAgYXV0byBwbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEp
LnRvSW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwor
ICAgIHJldHVybiB0b0pTKHN0YXRlLCAqY29udGV4dC5nbG9iYWxPYmplY3QoKSwgKGNvbnRleHQu
d3JhcHBlZCgpLipnZXR0ZXIpKHRhcmdldCwgcG5hbWUpKTsKIH0KIAotZW51bSBXaGljaFByb2dy
YW1DYWxsIHsKLSAgICBrUHJvZ3JhbVBhcmFtZXRlciwga1VuaWZvcm0KLX07Ci0KLXN0YXRpYyBK
U1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBXZWJHTEV4dGVuc2lvbiogZXh0ZW5zaW9uKQorc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVj
U3RhdGUmIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBXZWJHTEV4dGVu
c2lvbiogZXh0ZW5zaW9uKQogewogICAgIGlmICghZXh0ZW5zaW9uKQogICAgICAgICByZXR1cm4g
anNOdWxsKCk7CiAgICAgc3dpdGNoIChleHRlbnNpb24tPmdldE5hbWUoKSkgewogICAgIGNhc2Ug
V2ViR0xFeHRlbnNpb246OldlYkdMTG9zZUNvbnRleHROYW1lOgotICAgICAgICByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMTG9zZUNvbnRleHQqPihleHRl
bnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxXZWJHTExvc2VDb250ZXh0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4
dGVuc2lvbjo6RVhUU2hhZGVyVGV4dHVyZUxPRE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUU2hhZGVyVGV4dHVyZUxPRCo+KGV4dGVu
c2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PEVYVFNoYWRlclRleHR1cmVMT0QqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdM
RXh0ZW5zaW9uOjpFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWNOYW1lOgotICAgICAgICByZXR1
cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVFRleHR1cmVGaWx0ZXJB
bmlzb3Ryb3BpYyo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyo+KGV4
dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVHNSR0JOYW1lOgotICAgICAg
ICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVHNSR0IqPihl
eHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxFWFRzUkdCKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lv
bjo6RVhURnJhZ0RlcHRoTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxFWFRGcmFnRGVwdGgqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0
dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRGcmFnRGVwdGgq
PihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRCbGVuZE1pbk1heE5h
bWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8
RVhUQmxlbmRNaW5NYXgqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRl
LCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRCbGVuZE1pbk1heCo+KGV4dGVuc2lvbikp
OwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lOgot
ICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNTdGFuZGFyZERlcml2YXRpdmVzKj4o
ZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTVGV4dHVyZUZsb2F0TmFt
ZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxP
RVNUZXh0dXJlRmxvYXQqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRl
LCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlRmxvYXQqPihleHRlbnNpb24p
KTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNUZXh0dXJlRmxvYXRMaW5lYXJOYW1lOgot
ICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1Rl
eHR1cmVGbG9hdExpbmVhcio+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3Rh
dGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVGbG9hdExpbmVhcio+KGV4
dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1RleHR1cmVIYWxmRmxvYXRO
YW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PE9FU1RleHR1cmVIYWxmRmxvYXQqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMo
JnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlSGFsZkZsb2F0Kj4o
ZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTVGV4dHVyZUhhbGZGbG9h
dExpbmVhck5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3Rh
dGljX2Nhc3Q8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcio+KGV4dGVuc2lvbikpOworICAgICAg
ICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1
cmVIYWxmRmxvYXRMaW5lYXIqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9u
OjpPRVNWZXJ0ZXhBcnJheU9iamVjdE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVmVydGV4QXJyYXlPYmplY3QqPihleHRlbnNpb24p
KTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246Ok9FU0VsZW1lbnRJbmRleFVpbnROYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVj
LCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU0VsZW1lbnRJbmRleFVpbnQqPihleHRlbnNp
b24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNf
Y2FzdDxPRVNFbGVtZW50SW5kZXhVaW50Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4
dGVuc2lvbjo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyo+
KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3Qs
IHN0YXRpY19jYXN0PFdlYkdMRGVidWdSZW5kZXJlckluZm8qPihleHRlbnNpb24pKTsKICAgICBj
YXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnU2hhZGVyc05hbWU6Ci0gICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1NoYWRlcnMq
PihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0
LCBzdGF0aWNfY2FzdDxXZWJHTERlYnVnU2hhZGVycyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2Ug
V2ViR0xFeHRlbnNpb246OldlYkdMQ29tcHJlc3NlZFRleHR1cmVBVENOYW1lOgotICAgICAgICBy
ZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVBVEMqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAm
Z2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDKj4oZXh0
ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVBWUlRDTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMqPihleHRlbnNpb24pKTsKKyAgICAg
ICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTENv
bXByZXNzZWRUZXh0dXJlUFZSVEMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5z
aW9uOjpXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQ05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMz
VEMqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQyo+KGV4dGVuc2lvbikp
OwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVwdGhUZXh0dXJlTmFtZToKLSAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlcHRo
VGV4dHVyZSo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9i
YWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVwdGhUZXh0dXJlKj4oZXh0ZW5zaW9uKSk7CiAg
ICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEcmF3QnVmZmVyc05hbWU6Ci0gICAgICAgIHJl
dHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEcmF3QnVmZmVy
cyo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmpl
Y3QsIHN0YXRpY19jYXN0PFdlYkdMRHJhd0J1ZmZlcnMqPihleHRlbnNpb24pKTsKICAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpBTkdMRUluc3RhbmNlZEFycmF5c05hbWU6Ci0gICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8QU5HTEVJbnN0YW5jZWRBcnJh
eXMqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxBTkdMRUluc3RhbmNlZEFycmF5cyo+KGV4dGVuc2lvbikpOwogICAg
IH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4ganNOdWxsKCk7CiB9CiAK
LWJvb2wgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCitib29sIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZU93bmVyOjpp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhIYW5kbGU8VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
KiBqc1dlYkdMUmVuZGVyaW5nQ29udGV4dCA9IGpzQ2FzdDxKU1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgdm9pZCogcm9vdCA9IFdlYkNv
cmU6OnJvb3QoanNXZWJHTFJlbmRlcmluZ0NvbnRleHQtPndyYXBwZWQoKS5jYW52YXMoKSk7CkBA
IC0zMDYsOSArMjE4LDkgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omdl
dEF0dGFjaGVkU2hhZGVycyhFeGVjU3RhdGUmIHN0YXRlKQogICAgIFZlY3RvcjxSZWZQdHI8V2Vi
R0xTaGFkZXI+PiBzaGFkZXJzOwogICAgIGlmICghY29udGV4dC5nZXRBdHRhY2hlZFNoYWRlcnMo
cHJvZ3JhbSwgc2hhZGVycykpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKLSAgICBKU0M6Ok1h
cmtlZEFyZ3VtZW50QnVmZmVyIGxpc3Q7Ci0gICAgZm9yIChzaXplX3QgaWkgPSAwOyBpaSA8IHNo
YWRlcnMuc2l6ZSgpOyArK2lpKQotICAgICAgICBsaXN0LmFwcGVuZCh0b0pTKCZzdGF0ZSwgZ2xv
YmFsT2JqZWN0KCksIHNoYWRlcnNbaWldLmdldCgpKSk7CisgICAgTWFya2VkQXJndW1lbnRCdWZm
ZXIgbGlzdDsKKyAgICBmb3IgKGF1dG8mIHNoYWRlciA6IHNoYWRlcnMpCisgICAgICAgIGxpc3Qu
YXBwZW5kKHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgc2hhZGVyLmdldCgpKSk7CiAgICAg
cmV0dXJuIGNvbnN0cnVjdEFycmF5KCZzdGF0ZSwgMCwgZ2xvYmFsT2JqZWN0KCksIGxpc3QpOwog
fQogCkBAIC0zMjAsMTQgKzIzMiwxNCBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6Z2V0RXh0ZW5zaW9uKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgaWYgKHN0YXRlLmFyZ3Vt
ZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNj
b3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICBT
dHJpbmcgbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvV1RGU3RyaW5nKCZzdGF0
ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICByZXR1
cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0RXh0ZW5zaW9uKG5h
bWUpKTsKKyAgICBhdXRvIG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b1dURlN0
cmluZygmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAg
cmV0dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldEV4dGVuc2lv
bihuYW1lKSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRC
dWZmZXJQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4gZ2V0T2JqZWN0
UGFyYW1ldGVyKHRoaXMsIHN0YXRlLCBrQnVmZmVyKTsKKyAgICByZXR1cm4gb2JqZWN0UGFyYW1l
dGVyKCp0aGlzLCBzdGF0ZSwgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBh
cmFtZXRlcik7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKQEAgLTMzOCwx
MyArMjUwLDEzIEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoRXhlY1N0YXRlCiAgICAgaWYgKHN0YXRlLmFyZ3Vt
ZW50Q291bnQoKSAhPSAzKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBz
Y29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CiAgICAgCi0gICAg
dW5zaWduZWQgdGFyZ2V0ID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkudG9JbnQzMigmc3Rh
dGUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgdW5z
aWduZWQgYXR0YWNobWVudCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0
YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHVu
c2lnbmVkIHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikudG9JbnQzMigmc3RhdGUp
OwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgcmV0dXJu
IHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldEZyYW1lYnVmZmVyQXR0
YWNobWVudFBhcmFtZXRlcih0YXJnZXQsIGF0dGFjaG1lbnQsIHBuYW1lKSk7CisgICAgYXV0byB0
YXJnZXQgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBhdXRvIGF0dGFjaG1lbnQgPSBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBhdXRvIHBuYW1lID0gc3RhdGUudW5jaGVja2Vk
QXJndW1lbnQoMikudG9JbnQzMigmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBl
ZCgpLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcih0YXJnZXQsIGF0dGFjaG1lbnQs
IHBuYW1lKSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRQ
YXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKQEAgLTM1NSw5ICsyNjcsOSBAQCBKU1ZhbHVlIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUp
CiAgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSAhPSAxKQogICAgICAgICByZXR1cm4gdGhy
b3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
JnN0YXRlKSk7CiAgICAgCi0gICAgdW5zaWduZWQgcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
SlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFw
cGVkKCkuZ2V0UGFyYW1ldGVyKHBuYW1lKSk7CisgICAgYXV0byBwbmFtZSA9IHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOworICAgIHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFsT2JqZWN0KCksIHdy
YXBwZWQoKS5nZXRQYXJhbWV0ZXIocG5hbWUpKTsKIH0KIAogSlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKQEAg
LTM2OCwxNyArMjgwLDE3IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpn
ZXRQcm9ncmFtUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgaWYgKHN0YXRlLmFyZ3Vt
ZW50Q291bnQoKSAhPSAyKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBz
Y29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CiAgICAgCi0gICAg
V2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvV3JhcHBlZChzdGF0ZS51
bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgYXV0byogcHJvZ3JhbSA9IEpTV2ViR0xQcm9ncmFt
Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghcHJvZ3Jh
bSAmJiAhc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAg
ICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgIHVuc2lnbmVk
IHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOwotICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgcmV0dXJuIHRvSlMo
JnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFByb2dyYW1QYXJhbWV0ZXIocHJv
Z3JhbSwgcG5hbWUpKTsKKyAgICBhdXRvIHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MSkudG9JbnQzMigmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFBy
b2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgcG5hbWUpKTsKIH0KIAogSlNWYWx1ZSBKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihFeGVjU3RhdGUmIHN0
YXRlKQogewotICAgIHJldHVybiBnZXRPYmplY3RQYXJhbWV0ZXIodGhpcywgc3RhdGUsIGtSZW5k
ZXJidWZmZXIpOworICAgIHJldHVybiBvYmplY3RQYXJhbWV0ZXIoKnRoaXMsIHN0YXRlLCAmV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKTsKIH0KIAog
SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNoYWRlclBhcmFtZXRlcihF
eGVjU3RhdGUmIHN0YXRlKQpAQCAtMzkzLDggKzMwNSw4IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpnZXRTaGFkZXJQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKICAg
ICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwogICAgIFdlYkdMU2hh
ZGVyKiBzaGFkZXIgPSBKU1dlYkdMU2hhZGVyOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMCkpOwogICAgIHVuc2lnbmVkIHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MSkudG9JbnQzMigmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFs
dWUoKSk7Ci0gICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgp
LmdldFNoYWRlclBhcmFtZXRlcihzaGFkZXIsIHBuYW1lKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmdsb2JhbE9iamVjdCgp
LCB3cmFwcGVkKCkuZ2V0U2hhZGVyUGFyYW1ldGVyKHNoYWRlciwgcG5hbWUpKTsKIH0KIAogSlNW
YWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnMo
RXhlY1N0YXRlJiBzdGF0ZSkKQEAgLTQxMCw3ICszMjIsNyBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucyhFeGVjU3RhdGUmIHN0YXRl
KQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFyYW1ldGVy
KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGdldE9iamVjdFBhcmFtZXRlcih0aGlz
LCBzdGF0ZSwga1RleHR1cmUpOworICAgIHJldHVybiBvYmplY3RQYXJhbWV0ZXIoKnRoaXMsIHN0
YXRlLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFyYW1ldGVyKTsKIH0KIAog
SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oRXhlY1N0YXRl
JiBzdGF0ZSkKQEAgLTQyNywzNiArMzM5LDM1IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRVbmlmb3JtKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgV2ViR0xVbmlmb3Jt
TG9jYXRpb24qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFwcGVkKHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWxvY2F0aW9uICYmICFzdGF0ZS51
bmNoZWNrZWRBcmd1bWVudCgxKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4g
dGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBn
bG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFVuaWZvcm0ocHJvZ3JhbSwgbG9jYXRpb24pKTsK
KyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0VW5p
Zm9ybShwcm9ncmFtLCBsb2NhdGlvbikpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Z2V0VmVydGV4QXR0cmliKEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0
dXJuIGdldE9iamVjdFBhcmFtZXRlcih0aGlzLCBzdGF0ZSwga1ZlcnRleEF0dHJpYik7CisgICAg
cmV0dXJuIG9iamVjdFBhcmFtZXRlcigqdGhpcywgc3RhdGUsICZXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRWZXJ0ZXhBdHRyaWIpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXpl
X3QgaW5saW5lQ2FwYWNpdHk+Ci1ib29sIHRvVmVjdG9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwg
SlNDOjpKU1ZhbHVlIHZhbHVlLCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHk+JiB2ZWN0b3IpCit0
ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPiBib29sIHRvTnVtYmVyVmVjdG9yKEV4ZWNTdGF0
ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUsIFZlY3RvclR5cGUmIHZlY3RvcikKIHsKICAgICBWTSYg
dm0gPSBzdGF0ZS52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKIAogICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIAotICAgIEpTQzo6SlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KHZhbHVlKTsKLSAgICBp
bnQzMl90IGxlbmd0aCA9IG9iamVjdC0+Z2V0KCZzdGF0ZSwgc3RhdGUudm0oKS5wcm9wZXJ0eU5h
bWVzLT5sZW5ndGgpLnRvSW50MzIoJnN0YXRlKTsKLSAgICAKKworICAgIGF1dG8mIG9iamVjdCA9
ICphc09iamVjdCh2YWx1ZSk7CisgICAgaW50MzJfdCBsZW5ndGggPSBvYmplY3QuZ2V0KCZzdGF0
ZSwgc3RhdGUudm0oKS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgpLnRvSW50MzIoJnN0YXRlKTsKKwog
ICAgIGlmICghdmVjdG9yLnRyeVJlc2VydmVDYXBhY2l0eShsZW5ndGgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgdmVjdG9yLnJlc2l6ZShsZW5ndGgpOwotICAgIAorCiAgICAgZm9yIChp
bnQzMl90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgSlNDOjpKU1ZhbHVlIHYg
PSBvYmplY3QtPmdldCgmc3RhdGUsIGkpOworICAgICAgICBhdXRvIHZhbHVlID0gb2JqZWN0Lmdl
dCgmc3RhdGUsIGkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7
CisgICAgICAgIHZlY3Rvci51bmNoZWNrZWRBcHBlbmQodmFsdWUudG9OdW1iZXIoJnN0YXRlKSk7
CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAgICAgICAgdmVj
dG9yW2ldID0gc3RhdGljX2Nhc3Q8VD4odi50b051bWJlcigmc3RhdGUpKTsKICAgICB9Ci0gICAg
CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNDY5LDcgKzM4MCw3IEBAIGVudW0gRGF0YUZ1
bmN0aW9uTWF0cml4VG9DYWxsIHsKICAgICBmX3VuaWZvcm1NYXRyaXgyZnYsIGZfdW5pZm9ybU1h
dHJpeDNmdiwgZl91bmlmb3JtTWF0cml4NGZ2CiB9OwogCi1zdGF0aWMgYm9vbCBmdW5jdGlvbkZv
clVuaWZvcm0oRGF0YUZ1bmN0aW9uVG9DYWxsIGYpCitzdGF0aWMgaW5saW5lIGJvb2wgZnVuY3Rp
b25Gb3JVbmlmb3JtKERhdGFGdW5jdGlvblRvQ2FsbCBmKQogewogICAgIHN3aXRjaCAoZikgewog
ICAgIGNhc2UgZl91bmlmb3JtMXY6CkBAIC00NzcsMTIgKzM4OCwxMiBAQCBzdGF0aWMgYm9vbCBm
dW5jdGlvbkZvclVuaWZvcm0oRGF0YUZ1bmN0aW9uVG9DYWxsIGYpCiAgICAgY2FzZSBmX3VuaWZv
cm0zdjoKICAgICBjYXNlIGZfdW5pZm9ybTR2OgogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBk
ZWZhdWx0OiBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQotICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rp
b25mKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCitzdGF0aWMgSlNWYWx1ZSBkYXRhRnVuY3Rpb25m
KERhdGFGdW5jdGlvblRvQ2FsbCBmLCBFeGVjU3RhdGUmIHN0YXRlLCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJiBjb250ZXh0KQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDkwLDIyICs0MDEsMTkgQEAg
c3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25mKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBK
U0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9
IDIpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICBXZWJHTFVuaWZvcm1M
b2NhdGlvbiogbG9jYXRpb24gPSAwOwotICAgIGxvbmcgaW5kZXggPSAtMTsKLSAgICAKKyAgICBX
ZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBudWxscHRyOworICAgIEdMdWludCBpbmRl
eCA9IC0xOworCiAgICAgaWYgKGZ1bmN0aW9uRm9yVW5pZm9ybShmKSkgewogICAgICAgICBsb2Nh
dGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgwKSk7CiAgICAgICAgIGlmICghbG9jYXRpb24gJiYgIXN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgfSBlbHNlCisgICAgfSBlbHNlIHsKICAgICAg
ICAgaW5kZXggPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7Ci0g
ICAgCi0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICAKLSAg
ICBSZWZQdHI8RmxvYXQzMkFycmF5PiB3ZWJHTEFycmF5ID0gdG9VbnNoYXJlZEZsb2F0MzJBcnJh
eShzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgSlNWYWx1ZSgpKTsKLSAgICAKLSAgICBpZiAod2ViR0xBcnJheSkgeworICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIH0KKworICAgIGlmIChhdXRvIHdl
YkdMQXJyYXkgPSB0b1Vuc2hhcmVkRmxvYXQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDEpKSkgewogICAgICAgICBzd2l0Y2ggKGYpIHsKICAgICAgICAgY2FzZSBmX3VuaWZvcm0xdjoK
ICAgICAgICAgICAgIGNvbnRleHQudW5pZm9ybTFmdihsb2NhdGlvbiwgKndlYkdMQXJyYXkpOwpA
QCAtNTMyLDE0ICs0NDAsMTMgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25mKERh
dGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAgICAgICAgICAg
IGNvbnRleHQudmVydGV4QXR0cmliNGZ2KGluZGV4LCAqd2ViR0xBcnJheSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQotICAgICAgICAKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CiAgICAgfQotICAgIAorCiAgICAgVmVjdG9yPGZsb2F0LCA2ND4gYXJyYXk7Ci0gICAgaWYg
KCF0b1ZlY3RvcihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSksIGFycmF5KSkKKyAg
ICBpZiAoIXRvTnVtYmVyVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSwg
YXJyYXkpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0g
ICAgCisKICAgICBzd2l0Y2ggKGYpIHsKICAgICBjYXNlIGZfdW5pZm9ybTF2OgogICAgICAgICBj
b250ZXh0LnVuaWZvcm0xZnYobG9jYXRpb24sIGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsK
QEAgLTU2NiwyNSArNDczLDIyIEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uZihE
YXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBXCiAgICAgICAgIGNv
bnRleHQudmVydGV4QXR0cmliNGZ2KGluZGV4LCBhcnJheS5kYXRhKCksIGFycmF5LnNpemUoKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICAKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
IH0KIAotc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25pKERhdGFGdW5jdGlvblRvQ2Fs
bCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNv
bnRleHQpCitzdGF0aWMgSlNWYWx1ZSBkYXRhRnVuY3Rpb25pKERhdGFGdW5jdGlvblRvQ2FsbCBm
LCBFeGVjU3RhdGUmIHN0YXRlLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQog
ewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCiAgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSAhPSAyKQogICAg
ICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0gICAgCi0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24q
IGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDApKTsKKworICAgIGF1dG8qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1M
b2NhdGlvbjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAo
IWxvY2F0aW9uICYmICFzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVs
bCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAg
Ci0gICAgUmVmUHRyPEludDMyQXJyYXk+IHdlYkdMQXJyYXkgPSB0b1Vuc2hhcmVkSW50MzJBcnJh
eShzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7Ci0gICAgCi0gICAgaWYgKHdlYkdMQXJyYXkp
IHsKKworICAgIGlmIChhdXRvIHdlYkdMQXJyYXkgPSB0b1Vuc2hhcmVkSW50MzJBcnJheShzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgxKSkpIHsKICAgICAgICAgc3dpdGNoIChmKSB7CiAgICAgICAg
IGNhc2UgZl91bmlmb3JtMXY6CiAgICAgICAgICAgICBjb250ZXh0LnVuaWZvcm0xaXYobG9jYXRp
b24sICp3ZWJHTEFycmF5KTsKQEAgLTYwMSwxNSArNTA1LDEzIEBAIHN0YXRpYyBKU0M6OkpTVmFs
dWUgZGF0YUZ1bmN0aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0
YXRlLCBXCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQot
ICAgICAgICAKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQotICAgIAotICAg
IAorCiAgICAgVmVjdG9yPGludCwgNjQ+IGFycmF5OwotICAgIGlmICghdG9WZWN0b3Ioc3RhdGUs
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLCBhcnJheSkpCisgICAgaWYgKCF0b051bWJlclZl
Y3RvcihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSksIGFycmF5KSkKICAgICAgICAg
cmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgIAorCiAgICAgc3dpdGNo
IChmKSB7CiAgICAgY2FzZSBmX3VuaWZvcm0xdjoKICAgICAgICAgY29udGV4dC51bmlmb3JtMWl2
KGxvY2F0aW9uLCBhcnJheS5kYXRhKCksIGFycmF5LnNpemUoKSk7CkBAIC02MjYsMjggKzUyOCwy
NSBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxs
IGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgVwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFr
OwogICAgIH0KLSAgICAKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAotc3RhdGljIEpT
Qzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25NYXRyaXgoRGF0YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYs
IEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4
dCkKK3N0YXRpYyBKU1ZhbHVlIGRhdGFGdW5jdGlvbk1hdHJpeChEYXRhRnVuY3Rpb25NYXRyaXhU
b0NhbGwgZiwgRXhlY1N0YXRlJiBzdGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29u
dGV4dCkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgIT0g
MykKICAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotICAgIAotICAgIFdlYkdMVW5pZm9ybUxv
Y2F0aW9uKiBsb2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvV3JhcHBlZChzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisKKyAgICBhdXRvKiBsb2NhdGlvbiA9IEpTV2ViR0xV
bmlmb3JtTG9jYXRpb246OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAg
ICAgaWYgKCFsb2NhdGlvbiAmJiAhc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmlu
ZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUp
OwotICAgIAorCiAgICAgYm9vbCB0cmFuc3Bvc2UgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgx
KS50b0Jvb2xlYW4oJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1Zh
bHVlKCkpOwotICAgIAotICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IHdlYkdMQXJyYXkgPSB0b1Vu
c2hhcmVkRmxvYXQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKKyAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAgaWYgKHdlYkdMQXJyYXkpIHsKKyAg
ICBpZiAoYXV0byB3ZWJHTEFycmF5ID0gdG9VbnNoYXJlZEZsb2F0MzJBcnJheShzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgyKSkpIHsKICAgICAgICAgc3dpdGNoIChmKSB7CiAgICAgICAgIGNhc2Ug
Zl91bmlmb3JtTWF0cml4MmZ2OgogICAgICAgICAgICAgY29udGV4dC51bmlmb3JtTWF0cml4MmZ2
KGxvY2F0aW9uLCB0cmFuc3Bvc2UsICp3ZWJHTEFycmF5KTsKQEAgLTY1OSwxNCArNTU4LDEzIEBA
IHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uTWF0cml4KERhdGFGdW5jdGlvbk1hdHJp
eFRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0CiAgICAgICAgICAgICBjb250ZXh0LnVuaWZvcm1NYXRy
aXg0ZnYobG9jYXRpb24sIHRyYW5zcG9zZSwgKndlYkdMQXJyYXkpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KLQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9Ci0g
ICAgCisKICAgICBWZWN0b3I8ZmxvYXQsIDY0PiBhcnJheTsKLSAgICBpZiAoIXRvVmVjdG9yKHN0
YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSwgYXJyYXkpKQorICAgIGlmICghdG9OdW1i
ZXJWZWN0b3Ioc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpLCBhcnJheSkpCiAgICAg
ICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICAKKwogICAgIHN3
aXRjaCAoZikgewogICAgIGNhc2UgZl91bmlmb3JtTWF0cml4MmZ2OgogICAgICAgICBjb250ZXh0
LnVuaWZvcm1NYXRyaXgyZnYobG9jYXRpb24sIHRyYW5zcG9zZSwgYXJyYXkuZGF0YSgpLCBhcnJh
eS5zaXplKCkpOwpAQCAtNjc4LDgxICs1NzYsODAgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRh
RnVuY3Rpb25NYXRyaXgoRGF0YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYsIEpTQzo6RXhlY1N0YXQK
ICAgICAgICAgY29udGV4dC51bmlmb3JtTWF0cml4NGZ2KGxvY2F0aW9uLCB0cmFuc3Bvc2UsIGFy
cmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotCiAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OnVuaWZvcm0xZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBK
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm0xZnYoRXhlY1N0YXRlJiBzdGF0ZSkK
IHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3VuaWZvcm0xdiwgc3RhdGUsIHdyYXBwZWQo
KSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZv
cm0xaXYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OnVuaWZvcm0xaXYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0
YUZ1bmN0aW9uaShmX3VuaWZvcm0xdiwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNW
YWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm0yZnYoSlNDOjpFeGVjU3Rh
dGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm0y
ZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3VuaWZv
cm0ydiwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OnVuaWZvcm0yaXYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm0yaXYoRXhlY1N0YXRlJiBzdGF0
ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uaShmX3VuaWZvcm0ydiwgc3RhdGUsIHdyYXBw
ZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVu
aWZvcm0zZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OnVuaWZvcm0zZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4g
ZGF0YUZ1bmN0aW9uZihmX3VuaWZvcm0zdiwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6
SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm0zaXYoSlNDOjpFeGVj
U3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZv
cm0zaXYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uaShmX3Vu
aWZvcm0zdiwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm00ZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNW
YWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm00ZnYoRXhlY1N0YXRlJiBz
dGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3VuaWZvcm00diwgc3RhdGUsIHdy
YXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OnVuaWZvcm00aXYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OnVuaWZvcm00aXYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1
cm4gZGF0YUZ1bmN0aW9uaShmX3VuaWZvcm00diwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpT
Qzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm1NYXRyaXgyZnYo
SlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OnVuaWZvcm1NYXRyaXgyZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0
YUZ1bmN0aW9uTWF0cml4KGZfdW5pZm9ybU1hdHJpeDJmdiwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9
CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm1NYXRy
aXgzZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OnVuaWZvcm1NYXRyaXgzZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1
cm4gZGF0YUZ1bmN0aW9uTWF0cml4KGZfdW5pZm9ybU1hdHJpeDNmdiwgc3RhdGUsIHdyYXBwZWQo
KSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZv
cm1NYXRyaXg0ZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OnVuaWZvcm1NYXRyaXg0ZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAg
ICByZXR1cm4gZGF0YUZ1bmN0aW9uTWF0cml4KGZfdW5pZm9ybU1hdHJpeDRmdiwgc3RhdGUsIHdy
YXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OnZlcnRleEF0dHJpYjFmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMWZ2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7
CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmYoZl92ZXJ0ZXhBdHRyaWIxdiwgc3RhdGUsIHdyYXBw
ZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZl
cnRleEF0dHJpYjJmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMmZ2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAg
ICAgcmV0dXJuIGRhdGFGdW5jdGlvbmYoZl92ZXJ0ZXhBdHRyaWIydiwgc3RhdGUsIHdyYXBwZWQo
KSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRl
eEF0dHJpYjNmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliM2Z2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAg
cmV0dXJuIGRhdGFGdW5jdGlvbmYoZl92ZXJ0ZXhBdHRyaWIzdiwgc3RhdGUsIHdyYXBwZWQoKSk7
CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0
dHJpYjRmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dmVydGV4QXR0cmliNGZ2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0
dXJuIGRhdGFGdW5jdGlvbmYoZl92ZXJ0ZXhBdHRyaWI0diwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNw
cAppbmRleCA5ZmEyOTQwNzhiYmFjYTNkYzI3NjEwNzBhNDhiMjhiNWI3MmNjNjRkLi5lMTJhMjQw
ZDdlNjg3YjljYTY5NjQwZDgyZDZjNDM0ZmU3OGQ2YTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTM1LDYgKzEzNSwx
MCBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc29sdmUo
SlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYQogCiBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBT
Y3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsT2Jq
ZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNW
YWx1ZSBtb2R1bGVLZXlWYWx1ZSwgSlNDOjpKU1ZhbHVlIGluaXRpYXRvcikKIHsKKyAgICAvLyBG
SVhNRTogV2hhdCBndWFyYW50ZWVzIHRoZXNlIGFyZSB0cnVlPyBXaHkgZG9uJ3Qgd2UgbmVlZCB0
byBjaGVjaz8KKyAgICBBU1NFUlQoSlNDOjpqc0R5bmFtaWNDYXN0PEpTRWxlbWVudCo+KGluaXRp
YXRvcikpOworICAgIEFTU0VSVChpc1NjcmlwdEVsZW1lbnQoSlNDOjpqc0R5bmFtaWNDYXN0PEpT
RWxlbWVudCo+KGluaXRpYXRvciktPndyYXBwZWQoKSkpOworCiAgICAgYXV0byYgZ2xvYmFsT2Jq
ZWN0ID0gKkpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oanNHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8mIGpzUHJvbWlzZSA9ICpKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNy
ZWF0ZShleGVjLCAmZ2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIGRlZmVycmVkID0gRGVmZXJyZWRQ
cm9taXNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBqc1Byb21pc2UpOwpAQCAtMTU2LDE3ICsxNjAs
MTIgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaChK
U0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE8KICAgICAgICAgcmV0dXJuIGpzUHJvbWlzZS5w
cm9taXNlKCk7CiAgICAgfQogCi0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRShKU0M6OmpzRHluYW1p
Y0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKSwgIkluaXRpYXRvciBzaG91bGQgYmUgYW4gSlNF
bGVtZW50Iik7Ci0gICAgYXV0byogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElmUG9z
c2libGUoJkpTQzo6anNDYXN0PEpTRWxlbWVudCo+KGluaXRpYXRvciktPndyYXBwZWQoKSk7Ci0g
ICAgQVNTRVJUX1dJVEhfTUVTU0FHRShzY3JpcHRFbGVtZW50LCAiSW5pdGlhdG9yIHNob3VsZCBi
ZSBTY3JpcHRFbGVtZW50LiIpOwotCiAgICAgaWYgKGF1dG8qIGZyYW1lID0gbV9kb2N1bWVudC5m
cmFtZSgpKSB7CiAgICAgICAgIGF1dG8gbG9hZGVyID0gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
OjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdldCgpKTsKICAgICAgICAgbV9sb2FkZXJzLmFkZChs
b2FkZXIuY29weVJlZigpKTsKLSAgICAgICAgaWYgKCFsb2FkZXItPmxvYWQoKnNjcmlwdEVsZW1l
bnQsIGNvbXBsZXRlZFVSTCkpIHsKKyAgICAgICAgaWYgKCFsb2FkZXItPmxvYWQoZG93bmNhc3RT
Y3JpcHRFbGVtZW50KEpTQzo6anNDYXN0PEpTRWxlbWVudCo+KGluaXRpYXRvciktPndyYXBwZWQo
KSksIGNvbXBsZXRlZFVSTCkpIHsKICAgICAgICAgICAgIGxvYWRlci0+Y2xlYXJDbGllbnQoKTsK
ICAgICAgICAgICAgIG1fbG9hZGVycy5yZW1vdmUoV1RGTW92ZShsb2FkZXIpKTsKLQogICAgICAg
ICAgICAgZGVmZXJyZWQtPnJlamVjdChmcmFtZS0+c2NyaXB0KCkubW9kdWxlTG9hZGVyQWxyZWFk
eVJlcG9ydGVkRXJyb3JTeW1ib2woKSk7CiAgICAgICAgICAgICByZXR1cm4ganNQcm9taXNlLnBy
b21pc2UoKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA0YzQzYmRkMWQ3ZTQ4
Mjc2MzllYWEzZjQ1N2E4NTRhNTcyNTZlMGEwLi45NzJiZWIxZWZjYjJjMzc4MjkyMDY3ZWU3NmQ2
OWIyMWUwYzg4NjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMyw3ICszLDcgQEAKICAqICAg
ICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAg
ICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKICAqICAgICAg
ICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEB3ZWJraXQub3JnKQotICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTAsIDIwMTItMjAxMywgMjAxNSwgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2gg
TW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUu
Y29tLykKICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgpAQCAtNjYsOSArNjYsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIGNs
YXNzIEV4ZWNTdGF0ZTsKLSNpZiBFTkFCTEUoV0VCX1JFUExBWSkKIGNsYXNzIElucHV0Q3Vyc29y
OwotI2VuZGlmCiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTk5LDggKzk3LDggQEAgY2xh
c3MgRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2w7CiBjbGFz
cyBEb2N1bWVudFR5cGU7CiBjbGFzcyBFeHRlbnNpb25TdHlsZVNoZWV0czsKLWNsYXNzIEZsb2F0
UmVjdDsKIGNsYXNzIEZsb2F0UXVhZDsKK2NsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIEZvcm1Db250
cm9sbGVyOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBGcmFtZVZpZXc7CkBAIC0xMjEsMTEgKzExOSwx
MCBAQCBjbGFzcyBIVE1MU2NyaXB0RWxlbWVudDsKIGNsYXNzIEhpdFRlc3RSZXF1ZXN0OwogY2xh
c3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEludFBvaW50OworY2xhc3MgSlNOb2RlOwogY2xhc3Mg
TGF5b3V0UG9pbnQ7CiBjbGFzcyBMYXlvdXRSZWN0OwogY2xhc3MgTGl2ZU5vZGVMaXN0OwotY2xh
c3MgU2NyaXB0TW9kdWxlTG9hZGVyOwotY2xhc3MgSlNOb2RlOwogY2xhc3MgTG9jYWxlOwogY2xh
c3MgTG9jYXRpb247CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CkBAIC0xMzMsNyArMTMw
LDYgQEAgY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldDsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJn
ZXRDbGllbnQ7CiBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKIGNsYXNzIE1lZGlhUXVlcnlNYXRjaGVy
OwotY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOwogY2xhc3MgTW91c2VFdmVudFdpdGhIaXRUZXN0
UmVzdWx0czsKIGNsYXNzIE5hbWVkRmxvd0NvbGxlY3Rpb247CiBjbGFzcyBOb2RlRmlsdGVyOwpA
QCAtMTQzLDIzICsxMzksMjQgQEAgY2xhc3MgUGxhdGZvcm1Nb3VzZUV2ZW50OwogY2xhc3MgUHJv
Y2Vzc2luZ0luc3RydWN0aW9uOwogY2xhc3MgUXVhbGlmaWVkTmFtZTsKIGNsYXNzIFJhbmdlOwot
Y2xhc3MgUmVuZGVyVmlldzsKIGNsYXNzIFJlbmRlckZ1bGxTY3JlZW47Ci1jbGFzcyBTY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXI7CitjbGFzcyBSZW5kZXJWaWV3OworY2xhc3MgU1ZHRG9jdW1lbnRF
eHRlbnNpb25zOworY2xhc3MgU1ZHU1ZHRWxlbWVudDsKIGNsYXNzIFNjcmlwdEVsZW1lbnREYXRh
OworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOwogY2xhc3MgU2NyaXB0UnVubmVyOworY2xhc3Mg
U2NyaXB0YWJsZURvY3VtZW50UGFyc2VyOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CitjbGFzcyBT
ZWdtZW50ZWRTdHJpbmc7CiBjbGFzcyBTZWxlY3RvclF1ZXJ5OwogY2xhc3MgU2VsZWN0b3JRdWVy
eUNhY2hlOwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwotY2xhc3MgU2VnbWVudGVkU3Ry
aW5nOwogY2xhc3MgU2V0dGluZ3M7CiBjbGFzcyBTdHlsZVJlc29sdmVyOwogY2xhc3MgU3R5bGVT
aGVldDsKIGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKIGNsYXNzIFN0eWxlU2hlZXRMaXN0Owot
Y2xhc3MgU1ZHRG9jdW1lbnRFeHRlbnNpb25zOwotY2xhc3MgU1ZHU1ZHRWxlbWVudDsKIGNsYXNz
IFRleHQ7CiBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwogY2xhc3MgVHJlZVdhbGtlcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcAppbmRleCAyYmUwZTJlYjkwMzJkZDM4OWFiNTc0
ZDQ4MDg2MDRmMmU2YmZiNTQ5Li4yZjk4NjgyMmFmM2FlNzFhNDEwNTdiMTA0N2Q1ZTJmNWRiOTIw
ZDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuY3BwCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsMzAgKzI3LDMwIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGVuZGluZ1NjcmlwdC5oIgogCi0jaW5j
bHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIlBlbmRpbmdTY3JpcHRDbGllbnQuaCIKKyNpbmNs
dWRlICJTY3JpcHRFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFBlbmRp
bmdTY3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShFbGVtZW50JiBlbGVtZW50LCBMb2FkYWJs
ZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQpCitSZWY8UGVuZGluZ1NjcmlwdD4gUGVuZGluZ1Njcmlw
dDo6Y3JlYXRlKFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJs
ZVNjcmlwdCkKIHsKLSAgICBSZWY8UGVuZGluZ1NjcmlwdD4gcGVuZGluZ1NjcmlwdCA9IGFkb3B0
UmVmKCpuZXcgUGVuZGluZ1NjcmlwdChlbGVtZW50LCBsb2FkYWJsZVNjcmlwdCkpOworICAgIGF1
dG8gcGVuZGluZ1NjcmlwdCA9IGFkb3B0UmVmKCpuZXcgUGVuZGluZ1NjcmlwdChlbGVtZW50LCBs
b2FkYWJsZVNjcmlwdCkpOwogICAgIGxvYWRhYmxlU2NyaXB0LmFkZENsaWVudChwZW5kaW5nU2Ny
aXB0LmdldCgpKTsKICAgICByZXR1cm4gcGVuZGluZ1NjcmlwdDsKIH0KIAotUmVmPFBlbmRpbmdT
Y3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShFbGVtZW50JiBlbGVtZW50LCBUZXh0UG9zaXRp
b24gc2NyaXB0U3RhcnRQb3NpdGlvbikKK1JlZjxQZW5kaW5nU2NyaXB0PiBQZW5kaW5nU2NyaXB0
OjpjcmVhdGUoU2NyaXB0RWxlbWVudCYgZWxlbWVudCwgVGV4dFBvc2l0aW9uIHNjcmlwdFN0YXJ0
UG9zaXRpb24pCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGVuZGluZ1NjcmlwdChlbGVt
ZW50LCBzY3JpcHRTdGFydFBvc2l0aW9uKSk7CiB9CiAKLVBlbmRpbmdTY3JpcHQ6OlBlbmRpbmdT
Y3JpcHQoRWxlbWVudCYgZWxlbWVudCwgVGV4dFBvc2l0aW9uIHN0YXJ0aW5nUG9zaXRpb24pCitQ
ZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQsIFRleHRQ
b3NpdGlvbiBzdGFydGluZ1Bvc2l0aW9uKQogICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCiAgICAg
LCBtX3N0YXJ0aW5nUG9zaXRpb24oc3RhcnRpbmdQb3NpdGlvbikKIHsKIH0KIAotUGVuZGluZ1Nj
cmlwdDo6UGVuZGluZ1NjcmlwdChFbGVtZW50JiBlbGVtZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9h
ZGFibGVTY3JpcHQpCitQZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQm
IGVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlwdCkKICAgICA6IG1fZWxlbWVu
dChlbGVtZW50KQogICAgICwgbV9sb2FkYWJsZVNjcmlwdCgmbG9hZGFibGVTY3JpcHQpCiB7CkBA
IC02MSwxMSArNjIsNiBAQCBQZW5kaW5nU2NyaXB0Ojp+UGVuZGluZ1NjcmlwdCgpCiAgICAgICAg
IG1fbG9hZGFibGVTY3JpcHQtPnJlbW92ZUNsaWVudCgqdGhpcyk7CiB9CiAKLUxvYWRhYmxlU2Ny
aXB0KiBQZW5kaW5nU2NyaXB0Ojpsb2FkYWJsZVNjcmlwdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fbG9hZGFibGVTY3JpcHQuZ2V0KCk7Ci19Ci0KIHZvaWQgUGVuZGluZ1NjcmlwdDo6bm90aWZ5
Q2xpZW50RmluaXNoZWQoKQogewogICAgIFJlZjxQZW5kaW5nU2NyaXB0PiBwcm90ZWN0ZWRUaGlz
KCp0aGlzKTsKQEAgLTg4LDEwICs4NCwxMCBAQCBib29sIFBlbmRpbmdTY3JpcHQ6OmVycm9yKCkg
Y29uc3QKICAgICByZXR1cm4gbV9sb2FkYWJsZVNjcmlwdCAmJiBtX2xvYWRhYmxlU2NyaXB0LT5l
cnJvcigpOwogfQogCi12b2lkIFBlbmRpbmdTY3JpcHQ6OnNldENsaWVudChQZW5kaW5nU2NyaXB0
Q2xpZW50KiBjbGllbnQpCit2b2lkIFBlbmRpbmdTY3JpcHQ6OnNldENsaWVudChQZW5kaW5nU2Ny
aXB0Q2xpZW50JiBjbGllbnQpCiB7CiAgICAgQVNTRVJUKCFtX2NsaWVudCk7Ci0gICAgbV9jbGll
bnQgPSBjbGllbnQ7CisgICAgbV9jbGllbnQgPSAmY2xpZW50OwogICAgIGlmIChpc0xvYWRlZCgp
KQogICAgICAgICBub3RpZnlDbGllbnRGaW5pc2hlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5n
U2NyaXB0LmgKaW5kZXggOTkwZjI1MDgzYjAxYjAyN2M0YWMwMTQxN2Y4ZjQ5MTZhOWU4ZTY2Ni4u
ZmM3NThkMDdkZDYwZGVjMzE4YmI4OGRhZDA3ODdmODQ4ODJmODIxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UGVuZGluZ1NjcmlwdC5oCkBAIC0zNCwxNSArMzQsMTUgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgQ2FjaGVkU2NyaXB0OwotY2xhc3MgRWxlbWVudDsKIGNsYXNzIFBlbmRpbmdTY3Jp
cHRDbGllbnQ7CitjbGFzcyBTY3JpcHRFbGVtZW50OwogCiAvLyBBIGNvbnRhaW5lciBmb3Igc2Ny
aXB0cyB3aGljaCBtYXkgYmUgbG9hZGVkIGFuZCBleGVjdXRlZC4KIC8vIFRoaXMgY2FuIGhvbGQg
TG9hZGFibGVTY3JpcHQgYW5kIG5vbiBleHRlcm5hbCBpbmxpbmUgc2NyaXB0LgogY2xhc3MgUGVu
ZGluZ1NjcmlwdCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFBlbmRpbmdTY3JpcHQ+LCBwdWJs
aWMgTG9hZGFibGVTY3JpcHRDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UGVuZGlu
Z1NjcmlwdD4gY3JlYXRlKEVsZW1lbnQmLCBMb2FkYWJsZVNjcmlwdCYpOwotICAgIHN0YXRpYyBS
ZWY8UGVuZGluZ1NjcmlwdD4gY3JlYXRlKEVsZW1lbnQmLCBUZXh0UG9zaXRpb24gc2NyaXB0U3Rh
cnRQb3NpdGlvbik7CisgICAgc3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0PiBjcmVhdGUoU2NyaXB0
RWxlbWVudCYsIExvYWRhYmxlU2NyaXB0Jik7CisgICAgc3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0
PiBjcmVhdGUoU2NyaXB0RWxlbWVudCYsIFRleHRQb3NpdGlvbiBzY3JpcHRTdGFydFBvc2l0aW9u
KTsKIAogICAgIHZpcnR1YWwgflBlbmRpbmdTY3JpcHQoKTsKIApAQCAtNTEsOCArNTEsOCBAQCBw
dWJsaWM6CiAKICAgICBib29sIHdhdGNoaW5nRm9yTG9hZCgpIGNvbnN0IHsgcmV0dXJuIG5lZWRz
TG9hZGluZygpICYmIG1fY2xpZW50OyB9CiAKLSAgICBFbGVtZW50JiBlbGVtZW50KCkgeyByZXR1
cm4gbV9lbGVtZW50LmdldCgpOyB9Ci0gICAgY29uc3QgRWxlbWVudCYgZWxlbWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fZWxlbWVudC5nZXQoKTsgfQorICAgIFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQo
KSB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0KKyAgICBjb25zdCBTY3JpcHRFbGVtZW50JiBl
bGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50LmdldCgpOyB9CiAKICAgICBMb2FkYWJs
ZVNjcmlwdCogbG9hZGFibGVTY3JpcHQoKSBjb25zdDsKICAgICBib29sIG5lZWRzTG9hZGluZygp
IGNvbnN0IHsgcmV0dXJuIGxvYWRhYmxlU2NyaXB0KCk7IH0KQEAgLTYyLDE5ICs2MiwyNCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKExvYWRhYmxlU2NyaXB0Jikgb3ZlcnJp
ZGU7CiAKLSAgICB2b2lkIHNldENsaWVudChQZW5kaW5nU2NyaXB0Q2xpZW50Kik7CisgICAgdm9p
ZCBzZXRDbGllbnQoUGVuZGluZ1NjcmlwdENsaWVudCYpOwogICAgIHZvaWQgY2xlYXJDbGllbnQo
KTsKIAogcHJpdmF0ZToKLSAgICBQZW5kaW5nU2NyaXB0KEVsZW1lbnQmLCBMb2FkYWJsZVNjcmlw
dCYpOwotICAgIFBlbmRpbmdTY3JpcHQoRWxlbWVudCYsIFRleHRQb3NpdGlvbiBzdGFydGluZ1Bv
c2l0aW9uKTsKKyAgICBQZW5kaW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQmLCBMb2FkYWJsZVNjcmlw
dCYpOworICAgIFBlbmRpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCYsIFRleHRQb3NpdGlvbiBzdGFy
dGluZ1Bvc2l0aW9uKTsKIAogICAgIHZvaWQgbm90aWZ5Q2xpZW50RmluaXNoZWQoKTsKIAotICAg
IFJlZjxFbGVtZW50PiBtX2VsZW1lbnQ7CisgICAgUmVmPFNjcmlwdEVsZW1lbnQ+IG1fZWxlbWVu
dDsKICAgICBUZXh0UG9zaXRpb24gbV9zdGFydGluZ1Bvc2l0aW9uOyAvLyBPbmx5IHVzZWQgZm9y
IGlubGluZSBzY3JpcHQgdGFncy4KICAgICBSZWZQdHI8TG9hZGFibGVTY3JpcHQ+IG1fbG9hZGFi
bGVTY3JpcHQ7CiAgICAgUGVuZGluZ1NjcmlwdENsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07
CiB9OwogCitpbmxpbmUgTG9hZGFibGVTY3JpcHQqIFBlbmRpbmdTY3JpcHQ6OmxvYWRhYmxlU2Ny
aXB0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9sb2FkYWJsZVNjcmlwdC5nZXQoKTsKK30KKwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDYxZjI0ODJmNTg3MWQ4YWQw
Yjc1MjZmNmY0NDViY2RiNzc0ZmM0OGYuLmY2ODYzN2FjNGQ5NWNlODhhMWZiMDU1MzFkZmRhZmY1
MDAxNDAwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTIsNyArMiw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAq
ICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAq
ICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENv
cHlyaWdodCAoQykgMjAwMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2Rl
Lm9yZz4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yNjMsMTEgKzI2MywxMSBAQCBib29sIFNjcmlwdEVsZW1l
bnQ6OnByZXBhcmVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9u
LCBMZWdhYwogICAgIH0gZWxzZSBpZiAoKGlzQ2xhc3NpY0V4dGVybmFsU2NyaXB0IHx8IHNjcmlw
dFR5cGUgPT0gU2NyaXB0VHlwZTo6TW9kdWxlKSAmJiAhYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpICYm
ICFtX2ZvcmNlQXN5bmMpIHsKICAgICAgICAgbV93aWxsRXhlY3V0ZUluT3JkZXIgPSB0cnVlOwog
ICAgICAgICBBU1NFUlQobV9sb2FkYWJsZVNjcmlwdCk7Ci0gICAgICAgIGRvY3VtZW50LnNjcmlw
dFJ1bm5lcigpLT5xdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbih0aGlzLCAqbV9sb2FkYWJsZVNjcmlw
dCwgU2NyaXB0UnVubmVyOjpJTl9PUkRFUl9FWEVDVVRJT04pOworICAgICAgICBkb2N1bWVudC5z
Y3JpcHRSdW5uZXIoKS0+cXVldWVTY3JpcHRGb3JFeGVjdXRpb24oKnRoaXMsICptX2xvYWRhYmxl
U2NyaXB0LCBTY3JpcHRSdW5uZXI6OklOX09SREVSX0VYRUNVVElPTik7CiAgICAgfSBlbHNlIGlm
IChoYXNTb3VyY2VBdHRyaWJ1dGUoKSB8fCBzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6Ok1vZHVs
ZSkgewogICAgICAgICBBU1NFUlQobV9sb2FkYWJsZVNjcmlwdCk7CiAgICAgICAgIEFTU0VSVChh
c3luY0F0dHJpYnV0ZVZhbHVlKCkgfHwgbV9mb3JjZUFzeW5jKTsKLSAgICAgICAgZG9jdW1lbnQu
c2NyaXB0UnVubmVyKCktPnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKHRoaXMsICptX2xvYWRhYmxl
U2NyaXB0LCBTY3JpcHRSdW5uZXI6OkFTWU5DX0VYRUNVVElPTik7CisgICAgICAgIGRvY3VtZW50
LnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbigqdGhpcywgKm1fbG9hZGFi
bGVTY3JpcHQsIFNjcmlwdFJ1bm5lcjo6QVNZTkNfRVhFQ1VUSU9OKTsKICAgICB9IGVsc2UgaWYg
KCFoYXNTb3VyY2VBdHRyaWJ1dGUoKSAmJiBtX3BhcnNlckluc2VydGVkICYmICFkb2N1bWVudC5o
YXZlU3R5bGVzaGVldHNMb2FkZWQoKSkgewogICAgICAgICBBU1NFUlQoc2NyaXB0VHlwZSA9PSBT
Y3JpcHRUeXBlOjpDbGFzc2ljKTsKICAgICAgICAgbV93aWxsQmVQYXJzZXJFeGVjdXRlZCA9IHRy
dWU7CkBAIC00ODcsMTUgKzQ4NywyNiBAQCBTdHJpbmcgU2NyaXB0RWxlbWVudDo6c2NyaXB0Q29u
dGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwogfQogCi1TY3JpcHRF
bGVtZW50KiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKEVsZW1lbnQqIGVsZW1lbnQpCit2b2lk
IFNjcmlwdEVsZW1lbnQ6OnJlZigpCiB7Ci0gICAgaWYgKGlzPEhUTUxTY3JpcHRFbGVtZW50Pigq
ZWxlbWVudCkpCi0gICAgICAgIHJldHVybiBkb3duY2FzdDxIVE1MU2NyaXB0RWxlbWVudD4oZWxl
bWVudCk7CisgICAgbV9lbGVtZW50LnJlZigpOworfQogCi0gICAgaWYgKGlzPFNWR1NjcmlwdEVs
ZW1lbnQ+KCplbGVtZW50KSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PFNWR1NjcmlwdEVsZW1l
bnQ+KGVsZW1lbnQpOwordm9pZCBTY3JpcHRFbGVtZW50OjpkZXJlZigpCit7CisgICAgbV9lbGVt
ZW50LmRlcmVmKCk7Cit9CiAKLSAgICByZXR1cm4gbnVsbHB0cjsKK2Jvb2wgaXNTY3JpcHRFbGVt
ZW50KEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgcmV0dXJuIGlzPEhUTUxTY3JpcHRFbGVtZW50
PihlbGVtZW50KSB8fCBpczxTVkdTY3JpcHRFbGVtZW50PihlbGVtZW50KTsKK30KKworU2NyaXB0
RWxlbWVudCYgZG93bmNhc3RTY3JpcHRFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAg
aWYgKGlzPEhUTUxTY3JpcHRFbGVtZW50PihlbGVtZW50KSkKKyAgICAgICAgcmV0dXJuIGRvd25j
YXN0PEhUTUxTY3JpcHRFbGVtZW50PihlbGVtZW50KTsKKyAgICByZXR1cm4gZG93bmNhc3Q8U1ZH
U2NyaXB0RWxlbWVudD4oZWxlbWVudCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVu
dC5oCmluZGV4IDQwNzljMTcwOTMyMTc4NDA4N2U5ZTNmNzMyMzQ2YzU1ODAwZjdiMTQuLjVmMTgx
ZGYyZTNiMGU4ODhlZjM5NDdiYmNkYzE4ZDkzMDdkZGViMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEVsZW1lbnQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTmlr
b2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTI1LDE5ICsyNiwxNyBAQAogI2luY2x1ZGUgIkxvYWRhYmxlU2NyaXB0LmgiCiAjaW5j
bHVkZSAiTG9hZGFibGVTY3JpcHRDbGllbnQuaCIKICNpbmNsdWRlICJUaW1lci5oIgotI2luY2x1
ZGUgIlVSTC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgotI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENh
Y2hlZE1vZHVsZVNjcmlwdDsKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIENvbnRhaW5lck5v
ZGU7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgUGVuZGluZ1NjcmlwdDsKLWNsYXNzIFNjcmlwdEVs
ZW1lbnQ7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0
OworY2xhc3MgVVJMOwogCiBjbGFzcyBTY3JpcHRFbGVtZW50IHsKIHB1YmxpYzoKQEAgLTczLDYg
KzcyLDkgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgU2NyaXB0VHlwZSB7IENsYXNzaWMsIE1v
ZHVsZSB9OwogICAgIFNjcmlwdFR5cGUgc2NyaXB0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNN
b2R1bGVTY3JpcHQgPyBTY3JpcHRUeXBlOjpNb2R1bGUgOiBTY3JpcHRUeXBlOjpDbGFzc2ljOyB9
CiAKKyAgICB2b2lkIHJlZigpOworICAgIHZvaWQgZGVyZWYoKTsKKwogcHJvdGVjdGVkOgogICAg
IFNjcmlwdEVsZW1lbnQoRWxlbWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyLCBib29sIGlzRXZh
bHVhdGVkKTsKIApAQCAtMTI3LDcgKzEyOSw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPExvYWRh
YmxlU2NyaXB0PiBtX2xvYWRhYmxlU2NyaXB0OwogfTsKIAotLy8gRklYTUU6IHJlcGxhY2Ugd2l0
aCBkb3duY2FzdDxTY3JpcHRFbGVtZW50Pi4KLVNjcmlwdEVsZW1lbnQqIHRvU2NyaXB0RWxlbWVu
dElmUG9zc2libGUoRWxlbWVudCopOworLy8gRklYTUU6IHJlcGxhY2Ugd2l0aCBpcy9kb3duY2Fz
dDxTY3JpcHRFbGVtZW50Pi4KK2Jvb2wgaXNTY3JpcHRFbGVtZW50KEVsZW1lbnQmKTsKK1Njcmlw
dEVsZW1lbnQmIGRvd25jYXN0U2NyaXB0RWxlbWVudChFbGVtZW50Jik7CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdFJ1bm5lci5jcHAKaW5kZXggNzA5ODllYjQwYzA0NWFkZTc3NGFlNTdkMDlhNDA0
OGI1OWUzODgwNC4uMDQxZTZkMTMzMWY0NDIzYzE1Yzk4NzY5ZjlhMjI3NGNlZDBhZDBmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NiwyNiArNTcsMjIgQEAgU2NyaXB0UnVu
bmVyOjp+U2NyaXB0UnVubmVyKCkKICAgICB9CiB9CiAKLXZvaWQgU2NyaXB0UnVubmVyOjpxdWV1
ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBMb2FkYWJs
ZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQsIEV4ZWN1dGlvblR5cGUgZXhlY3V0aW9uVHlwZSkKK3Zv
aWQgU2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50JiBz
Y3JpcHRFbGVtZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQsIEV4ZWN1dGlvblR5
cGUgZXhlY3V0aW9uVHlwZSkKIHsKLSAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7Ci0KLSAgICBF
bGVtZW50JiBlbGVtZW50ID0gc2NyaXB0RWxlbWVudC0+ZWxlbWVudCgpOwotICAgIEFTU0VSVChl
bGVtZW50LmluRG9jdW1lbnQoKSk7CisgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQuZWxlbWVudCgp
LmluRG9jdW1lbnQoKSk7CiAKICAgICBtX2RvY3VtZW50LmluY3JlbWVudExvYWRFdmVudERlbGF5
Q291bnQoKTsKIAotICAgIFJlZjxQZW5kaW5nU2NyaXB0PiBwZW5kaW5nU2NyaXB0ID0gUGVuZGlu
Z1NjcmlwdDo6Y3JlYXRlKGVsZW1lbnQsIGxvYWRhYmxlU2NyaXB0KTsKKyAgICBhdXRvIHBlbmRp
bmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxlbWVudCwgbG9hZGFibGVT
Y3JpcHQpOwogICAgIHN3aXRjaCAoZXhlY3V0aW9uVHlwZSkgewogICAgIGNhc2UgQVNZTkNfRVhF
Q1VUSU9OOgogICAgICAgICBtX3BlbmRpbmdBc3luY1NjcmlwdHMuYWRkKHBlbmRpbmdTY3JpcHQu
Y29weVJlZigpKTsKICAgICAgICAgYnJlYWs7Ci0KICAgICBjYXNlIElOX09SREVSX0VYRUNVVElP
TjoKICAgICAgICAgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5hcHBlbmQocGVuZGluZ1Njcmlw
dC5jb3B5UmVmKCkpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgcGVuZGluZ1NjcmlwdC0+
c2V0Q2xpZW50KHRoaXMpOworICAgIHBlbmRpbmdTY3JpcHQtPnNldENsaWVudCgqdGhpcyk7CiB9
CiAKIHZvaWQgU2NyaXB0UnVubmVyOjpzdXNwZW5kKCkKQEAgLTkxLDkgKzg4LDcgQEAgdm9pZCBT
Y3JpcHRSdW5uZXI6OnJlc3VtZSgpCiAKIHZvaWQgU2NyaXB0UnVubmVyOjpub3RpZnlGaW5pc2hl
ZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogewotICAgIGF1dG8qIHNjcmlwdEVsZW1l
bnQgPSB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKSk7
Ci0gICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOwotICAgIGlmIChzY3JpcHRFbGVtZW50LT53aWxs
RXhlY3V0ZUluT3JkZXIoKSkKKyAgICBpZiAocGVuZGluZ1NjcmlwdC5lbGVtZW50KCkud2lsbEV4
ZWN1dGVJbk9yZGVyKCkpCiAgICAgICAgIEFTU0VSVCghbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRl
ci5pc0VtcHR5KCkpOwogICAgIGVsc2UgewogICAgICAgICBBU1NFUlQobV9wZW5kaW5nQXN5bmNT
Y3JpcHRzLmNvbnRhaW5zKHBlbmRpbmdTY3JpcHQpKTsKQEAgLTEyMiwxMCArMTE3LDggQEAgdm9p
ZCBTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoKQogICAgICAgICAvLyBQYXBlciBvdmVyIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQwNTAKICAgICAgICAgaWYgKCFz
Y3JpcHQpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgYXV0byogc2NyaXB0RWxlbWVu
dCA9IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJnNjcmlwdC0+ZWxlbWVudCgpKTsKLSAgICAg
ICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOwogICAgICAgICBBU1NFUlQoc2NyaXB0LT5uZWVkc0xv
YWRpbmcoKSk7Ci0gICAgICAgIHNjcmlwdEVsZW1lbnQtPmV4ZWN1dGVQZW5kaW5nU2NyaXB0KCpz
Y3JpcHQpOworICAgICAgICBzY3JpcHQtPmVsZW1lbnQoKS5leGVjdXRlUGVuZGluZ1NjcmlwdCgq
c2NyaXB0KTsKICAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50
KCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5l
ci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCmluZGV4IGRmY2YzYzVmYTkw
ZTRhNDUwOTQwNDJkODc3ZGUzYmNlNDQ4MDBkOWEuLjhlOGY0ODZhZDFkYjBkYmMwZDBiZTY0NTIx
MTFlZWQ3NzBmMTUzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5u
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKQEAgLTEsNSArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxMyArMjks
MTEgQEAKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0Q2xpZW50LmgiCiAjaW5jbHVkZSAiVGltZXIu
aCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBEb2N1bWVudDsKLWNsYXNzIFBlbmRpbmdTY3JpcHQ7CiBjbGFzcyBTY3JpcHRFbGVtZW50Owog
Y2xhc3MgTG9hZGFibGVTY3JpcHQ7CiAKQEAgLTQ1LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIH5T
Y3JpcHRSdW5uZXIoKTsKIAogICAgIGVudW0gRXhlY3V0aW9uVHlwZSB7IEFTWU5DX0VYRUNVVElP
TiwgSU5fT1JERVJfRVhFQ1VUSU9OIH07Ci0gICAgdm9pZCBxdWV1ZVNjcmlwdEZvckV4ZWN1dGlv
bihTY3JpcHRFbGVtZW50KiwgTG9hZGFibGVTY3JpcHQmLCBFeGVjdXRpb25UeXBlKTsKKyAgICB2
b2lkIHF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQmLCBMb2FkYWJsZVNjcmlw
dCYsIEV4ZWN1dGlvblR5cGUpOwogICAgIGJvb2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7
IHJldHVybiAhbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkgfHwgIW1fc2NyaXB0c1Rv
RXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpIHx8ICFtX3BlbmRpbmdBc3luY1NjcmlwdHMuaXNFbXB0
eSgpOyB9CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCByZXN1bWUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDEzNjdiNGYyMGVhMDkxMWRmOWNkZGNmMWMx
NjJlNzM5ZDFlMDI2ZTMuLjU3ZDBkYzFjNzYzZDY3YjZiMDIyOGM4NjA1MTNkN2YxZTljNTM2M2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIw
MTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpA
QCAtMjIxLDcgKzIyMSw3IEBAIGJvb2wgRmlsZUlucHV0VHlwZTo6Y2FuU2V0U3RyaW5nVmFsdWUo
KSBjb25zdAogCiBGaWxlTGlzdCogRmlsZUlucHV0VHlwZTo6ZmlsZXMoKQogewotICAgIHJldHVy
biBtX2ZpbGVMaXN0LmdldCgpOworICAgIHJldHVybiBtX2ZpbGVMaXN0LnB0cigpOwogfQogCiBi
b29sIEZpbGVJbnB1dFR5cGU6OmNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC0y
NTgsMTIgKzI1OCwxMiBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmlu
ZyYsIGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpCiAgICAgZWxlbWVudCgpLmludmFsaWRh
dGVTdHlsZUZvclN1YnRyZWUoKTsKIH0KIAotUGFzc1JlZlB0cjxGaWxlTGlzdD4gRmlsZUlucHV0
VHlwZTo6Y3JlYXRlRmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBm
aWxlcykgY29uc3QKK1JlZjxGaWxlTGlzdD4gRmlsZUlucHV0VHlwZTo6Y3JlYXRlRmlsZUxpc3Qo
Y29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBmaWxlcykKIHsKICAgICBWZWN0b3I8
UmVmUHRyPEZpbGU+PiBmaWxlT2JqZWN0czsKLSAgICBmb3IgKGNvbnN0IEZpbGVDaG9vc2VyRmls
ZUluZm8mIGluZm8gOiBmaWxlcykKLSAgICAgICAgZmlsZU9iamVjdHMuYXBwZW5kKEZpbGU6OmNy
ZWF0ZVdpdGhOYW1lKGluZm8ucGF0aCwgaW5mby5kaXNwbGF5TmFtZSkpOwotCisgICAgZmlsZU9i
amVjdHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShmaWxlcy5zaXplKCkpOworICAgIGZvciAoYXV0
byYgaW5mbyA6IGZpbGVzKQorICAgICAgICBmaWxlT2JqZWN0cy51bmNoZWNrZWRBcHBlbmQoRmls
ZTo6Y3JlYXRlV2l0aE5hbWUoaW5mby5wYXRoLCBpbmZvLmRpc3BsYXlOYW1lKSk7CiAgICAgcmV0
dXJuIEZpbGVMaXN0OjpjcmVhdGUoV1RGTW92ZShmaWxlT2JqZWN0cykpOwogfQogCkBAIC0zMDIs
MjkgKzMwMiwzMiBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6Om11bHRpcGxlQXR0cmlidXRlQ2hhbmdl
ZCgpCiAgICAgICAgIGJ1dHRvbi0+c2V0VmFsdWUoZWxlbWVudCgpLm11bHRpcGxlKCkgPyBmaWxl
QnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkgOiBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxh
YmVsKCkpOwogfQogCisjaWYgIVBMQVRGT1JNKElPUykKKwogdm9pZCBGaWxlSW5wdXRUeXBlOjpy
ZXF1ZXN0SWNvbihjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpCiB7Ci0jaWYgUExBVEZPUk0o
SU9TKQotICAgIFVOVVNFRF9QQVJBTShwYXRocyk7Ci0jZWxzZQogICAgIGlmICghcGF0aHMuc2l6
ZSgpKSB7Ci0gICAgICAgIHVwZGF0ZVJlbmRlcmluZyhudWxscHRyKTsKKyAgICAgICAgaWNvbkxv
YWRlZChudWxscHRyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIENocm9tZSogY2hy
b21lID0gdGhpcy0+Y2hyb21lKCk7Ci0gICAgaWYgKCFjaHJvbWUpCisgICAgYXV0byogY2hyb21l
ID0gdGhpcy0+Y2hyb21lKCk7CisgICAgaWYgKCFjaHJvbWUpIHsKKyAgICAgICAgaWNvbkxvYWRl
ZChudWxscHRyKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGlmIChtX2ZpbGVJY29u
TG9hZGVyKQogICAgICAgICBtX2ZpbGVJY29uTG9hZGVyLT5pbnZhbGlkYXRlKCk7CiAKLSAgICBt
X2ZpbGVJY29uTG9hZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxGaWxlSWNvbkxvYWRlcj4oc3RhdGlj
X2Nhc3Q8RmlsZUljb25Mb2FkZXJDbGllbnQmPigqdGhpcykpOworICAgIEZpbGVJY29uTG9hZGVy
Q2xpZW50JiBjbGllbnQgPSAqdGhpczsKKyAgICBtX2ZpbGVJY29uTG9hZGVyID0gc3RkOjptYWtl
X3VuaXF1ZTxGaWxlSWNvbkxvYWRlcj4oY2xpZW50KTsKIAotICAgIGNocm9tZS0+bG9hZEljb25G
b3JGaWxlcyhwYXRocywgbV9maWxlSWNvbkxvYWRlci5nZXQoKSk7Ci0jZW5kaWYKKyAgICBjaHJv
bWUtPmxvYWRJY29uRm9yRmlsZXMocGF0aHMsICptX2ZpbGVJY29uTG9hZGVyKTsKIH0KIAorI2Vu
ZGlmCisKIHZvaWQgRmlsZUlucHV0VHlwZTo6YXBwbHlGaWxlQ2hvb3NlclNldHRpbmdzKGNvbnN0
IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIGlmIChtX2ZpbGVDaG9vc2Vy
KQpAQCAtMzMzLDE4ICszMzYsMjAgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjphcHBseUZpbGVDaG9v
c2VyU2V0dGluZ3MoY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0dGluZ3MKICAgICBtX2Zp
bGVDaG9vc2VyID0gRmlsZUNob29zZXI6OmNyZWF0ZSh0aGlzLCBzZXR0aW5ncyk7CiB9CiAKLXZv
aWQgRmlsZUlucHV0VHlwZTo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCit2
b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4mJiBmaWxlcykKIHsK
ICAgICBpZiAoIWZpbGVzKQogICAgICAgICByZXR1cm47CiAKICAgICBSZWY8SFRNTElucHV0RWxl
bWVudD4gaW5wdXQoZWxlbWVudCgpKTsKIAorICAgIHVuc2lnbmVkIGxlbmd0aCA9IGZpbGVzLT5s
ZW5ndGgoKTsKKwogICAgIGJvb2wgcGF0aHNDaGFuZ2VkID0gZmFsc2U7Ci0gICAgaWYgKGZpbGVz
LT5sZW5ndGgoKSAhPSBtX2ZpbGVMaXN0LT5sZW5ndGgoKSkKKyAgICBpZiAobGVuZ3RoICE9IG1f
ZmlsZUxpc3QtPmxlbmd0aCgpKQogICAgICAgICBwYXRoc0NoYW5nZWQgPSB0cnVlOwogICAgIGVs
c2UgewotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmlsZXMtPmxlbmd0aCgpOyAr
K2kpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CiAg
ICAgICAgICAgICBpZiAoZmlsZXMtPml0ZW0oaSktPnBhdGgoKSAhPSBtX2ZpbGVMaXN0LT5pdGVt
KGkpLT5wYXRoKCkpIHsKICAgICAgICAgICAgICAgICBwYXRoc0NoYW5nZWQgPSB0cnVlOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzUyLDE1ICszNTcsMTggQEAgdm9pZCBGaWxlSW5wdXRU
eXBlOjpzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0PiBmaWxlcykKICAgICAgICAgfQogICAg
IH0KIAotICAgIG1fZmlsZUxpc3QgPSBmaWxlczsKKyAgICBtX2ZpbGVMaXN0ID0gZmlsZXMucmVs
ZWFzZU5vbk51bGwoKTsKIAogICAgIGlucHV0LT5zZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1Jl
bmRlcmVyKHRydWUpOwogICAgIGlucHV0LT51cGRhdGVWYWxpZGl0eSgpOwogCisjaWYgIVBMQVRG
T1JNKElPUykKICAgICBWZWN0b3I8U3RyaW5nPiBwYXRoczsKLSAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbV9maWxlTGlzdC0+bGVuZ3RoKCk7ICsraSkKLSAgICAgICAgcGF0aHMuYXBwZW5k
KG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSk7CisgICAgcGF0aHMucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eShsZW5ndGgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsr
aSkKKyAgICAgICAgcGF0aHMudW5jaGVja2VkQXBwZW5kKG1fZmlsZUxpc3QtPml0ZW0oaSktPnBh
dGgoKSk7CiAgICAgcmVxdWVzdEljb24ocGF0aHMpOworI2VuZGlmCiAKICAgICBpZiAoaW5wdXQt
PnJlbmRlcmVyKCkpCiAgICAgICAgIGlucHV0LT5yZW5kZXJlcigpLT5yZXBhaW50KCk7CkBAIC0z
NzQsMTcgKzM4MiwxOSBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8
RmlsZUxpc3Q+IGZpbGVzKQogfQogCiAjaWYgUExBVEZPUk0oSU9TKQorCiB2b2lkIEZpbGVJbnB1
dFR5cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgcGF0
aHMsIGNvbnN0IFN0cmluZyYgZGlzcGxheVN0cmluZywgSWNvbiogaWNvbikKIHsKICAgICBtX2Rp
c3BsYXlTdHJpbmcgPSBkaXNwbGF5U3RyaW5nOwogICAgIGZpbGVzQ2hvc2VuKHBhdGhzKTsKLSAg
ICB1cGRhdGVSZW5kZXJpbmcoaWNvbik7CisgICAgaWNvbkxvYWRlZChpY29uKTsKIH0KIAogU3Ry
aW5nIEZpbGVJbnB1dFR5cGU6OmRpc3BsYXlTdHJpbmcoKSBjb25zdAogewogICAgIHJldHVybiBt
X2Rpc3BsYXlTdHJpbmc7CiB9CisKICNlbmRpZgogCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmZpbGVz
Q2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpCkBAIC0zOTIs
MTIgKzQwMiwxMiBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlY3Rv
cjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpCiAgICAgc2V0RmlsZXMoY3JlYXRlRmlsZUxp
c3QoZmlsZXMpKTsKIH0KIAotdm9pZCBGaWxlSW5wdXRUeXBlOjp1cGRhdGVSZW5kZXJpbmcoUGFz
c1JlZlB0cjxJY29uPiBpY29uKQordm9pZCBGaWxlSW5wdXRUeXBlOjppY29uTG9hZGVkKFJlZlB0
cjxJY29uPiYmIGljb24pCiB7CiAgICAgaWYgKG1faWNvbiA9PSBpY29uKQogICAgICAgICByZXR1
cm47CiAKLSAgICBtX2ljb24gPSBpY29uOworICAgIG1faWNvbiA9IFdURk1vdmUoaWNvbik7CiAg
ICAgaWYgKGVsZW1lbnQoKS5yZW5kZXJlcigpKQogICAgICAgICBlbGVtZW50KCkucmVuZGVyZXIo
KS0+cmVwYWludCgpOwogfQpAQCAtNDM0LDggKzQ0NCw3IEBAIEljb24qIEZpbGVJbnB1dFR5cGU6
Omljb24oKSBjb25zdAogCiBTdHJpbmcgRmlsZUlucHV0VHlwZTo6ZGVmYXVsdFRvb2xUaXAoKSBj
b25zdAogewotICAgIEZpbGVMaXN0KiBmaWxlTGlzdCA9IG1fZmlsZUxpc3QuZ2V0KCk7Ci0gICAg
dW5zaWduZWQgbGlzdFNpemUgPSBmaWxlTGlzdC0+bGVuZ3RoKCk7CisgICAgdW5zaWduZWQgbGlz
dFNpemUgPSBtX2ZpbGVMaXN0LT5sZW5ndGgoKTsKICAgICBpZiAoIWxpc3RTaXplKSB7CiAgICAg
ICAgIGlmIChlbGVtZW50KCkubXVsdGlwbGUoKSkKICAgICAgICAgICAgIHJldHVybiBmaWxlQnV0
dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKTsKQEAgLTQ0Myw4ICs0NTIsOCBAQCBTdHJpbmcgRmls
ZUlucHV0VHlwZTo6ZGVmYXVsdFRvb2xUaXAoKSBjb25zdAogICAgIH0KIAogICAgIFN0cmluZ0J1
aWxkZXIgbmFtZXM7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7
Ci0gICAgICAgIG5hbWVzLmFwcGVuZChmaWxlTGlzdC0+aXRlbShpKS0+bmFtZSgpKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgeworICAgICAgICBuYW1lcy5h
cHBlbmQobV9maWxlTGlzdC0+aXRlbShpKS0+bmFtZSgpKTsKICAgICAgICAgaWYgKGkgIT0gbGlz
dFNpemUgLSAxKQogICAgICAgICAgICAgbmFtZXMuYXBwZW5kKCdcbicpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKaW5kZXggZjhhMGRmZjJkOGQzYzMwNWYwMWExZGY4Yzg5
MWEyOTBlMzY1NjNmMS4uZWU0MDY0OGQ2OTUxZGE2YWQyOTM5YTAyZjUzNmU3Nzg4NjljMmY2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAgLTUwLDQ1ICs1MCw0NSBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiBmaWxlc0Zyb21Gb3Jt
Q29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKTsKIAogcHJpdmF0ZToKLSAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAg
IEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdCBvdmVycmlkZTsK
LSAgICB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUm
KSBvdmVycmlkZTsKLSAgICBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wp
IGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNv
bnN0IG92ZXJyaWRlOwotICAgIFN0cmluZyB2YWx1ZU1pc3NpbmdUZXh0KCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7Ci0g
ICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUlucHV0UmVuZGVyZXIoUmVuZGVyU3R5
bGUmJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBjYW5TZXRTdHJpbmdWYWx1ZSgpIGNvbnN0IG92ZXJy
aWRlOwotICAgIEZpbGVMaXN0KiBmaWxlcygpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0RmlsZXMo
UGFzc1JlZlB0cjxGaWxlTGlzdD4pIG92ZXJyaWRlOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYg
Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgZmluYWw7CisgICAgRm9ybUNvbnRyb2xTdGF0ZSBzYXZl
Rm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgcmVzdG9yZUZvcm1Db250
cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIGZpbmFsOworICAgIGJvb2wgYXBwZW5k
Rm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3QgZmluYWw7CisgICAgYm9vbCB2YWx1
ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIHZhbHVlTWlz
c2luZ1RleHQoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQo
RXZlbnQmKSBmaW5hbDsKKyAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlSW5wdXRS
ZW5kZXJlcihSZW5kZXJTdHlsZSYmKSBmaW5hbDsKKyAgICBib29sIGNhblNldFN0cmluZ1ZhbHVl
KCkgY29uc3QgZmluYWw7CisgICAgRmlsZUxpc3QqIGZpbGVzKCkgZmluYWw7CisgICAgdm9pZCBz
ZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+JiYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKElPUykKLSAg
ICBTdHJpbmcgZGlzcGxheVN0cmluZygpIGNvbnN0IG92ZXJyaWRlOworICAgIFN0cmluZyBkaXNw
bGF5U3RyaW5nKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKLSAgICBib29sIGNhblNldFZhbHVlKGNv
bnN0IFN0cmluZyYpIG92ZXJyaWRlOwotICAgIGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3Ry
aW5nJikgb3ZlcnJpZGU7IC8vIENoZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdl
IG9yIHRoZSB2YWx1ZSBhdHRyaWJ1dGUuCi0gICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcm
LCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgb3ZlcnJpZGU7Cisg
ICAgYm9vbCBjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIGdldFR5
cGVTcGVjaWZpY1ZhbHVlKFN0cmluZyYpIGZpbmFsOyAvLyBDaGVja2VkIGZpcnN0LCBiZWZvcmUg
aW50ZXJuYWwgc3RvcmFnZSBvciB0aGUgdmFsdWUgYXR0cmlidXRlLgorICAgIHZvaWQgc2V0VmFs
dWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZp
b3IpIGZpbmFsOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBib29sIHJlY2VpdmVE
cm9wcGVkRmlsZXMoY29uc3QgRHJhZ0RhdGEmKSBvdmVycmlkZTsKKyAgICBib29sIHJlY2VpdmVE
cm9wcGVkRmlsZXMoY29uc3QgRHJhZ0RhdGEmKSBmaW5hbDsKICNlbmRpZgogCi0gICAgSWNvbiog
aWNvbigpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNGaWxlVXBsb2FkKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBkaXNhYmxlZEF0dHJpYnV0ZUNoYW5nZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIG11bHRpcGxl
QXR0cmlidXRlQ2hhbmdlZCgpIG92ZXJyaWRlOwotICAgIFN0cmluZyBkZWZhdWx0VG9vbFRpcCgp
IGNvbnN0IG92ZXJyaWRlOworICAgIEljb24qIGljb24oKSBjb25zdCBmaW5hbDsKKyAgICBib29s
IGlzRmlsZVVwbG9hZCgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJl
ZSgpIGZpbmFsOworICAgIHZvaWQgZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2VkKCkgZmluYWw7Cisg
ICAgdm9pZCBtdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQoKSBmaW5hbDsKKyAgICBTdHJpbmcgZGVm
YXVsdFRvb2xUaXAoKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIEZpbGVDaG9vc2VyQ2xpZW50IGlt
cGxlbWVudGF0aW9uLgotICAgIHZvaWQgZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZpbGVDaG9v
c2VyRmlsZUluZm8+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBmaWxlc0Nob3Nlbihjb25zdCBWZWN0
b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mKSBmaW5hbDsKICNpZiBQTEFURk9STShJT1MpCi0gICAg
dm9pZCBmaWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mLCBjb25z
dCBTdHJpbmcmIGRpc3BsYXlTdHJpbmcsIEljb24qKSBvdmVycmlkZTsKKyAgICB2b2lkIGZpbGVz
Q2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYsIGNvbnN0IFN0cmluZyYg
ZGlzcGxheVN0cmluZywgSWNvbiopIGZpbmFsOwogI2VuZGlmCiAKICAgICAvLyBGaWxlSWNvbkxv
YWRlckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KLSAgICB2b2lkIHVwZGF0ZVJlbmRlcmluZyhQYXNz
UmVmUHRyPEljb24+KSBvdmVycmlkZTsKKyAgICB2b2lkIGljb25Mb2FkZWQoUmVmUHRyPEljb24+
JiYpIGZpbmFsOwogCi0gICAgUGFzc1JlZlB0cjxGaWxlTGlzdD4gY3JlYXRlRmlsZUxpc3QoY29u
c3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBmaWxlcykgY29uc3Q7CisgICAgc3RhdGlj
IFJlZjxGaWxlTGlzdD4gY3JlYXRlRmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmls
ZUluZm8+Jik7CiAgICAgdm9pZCByZXF1ZXN0SWNvbihjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwog
CiAgICAgdm9pZCBhcHBseUZpbGVDaG9vc2VyU2V0dGluZ3MoY29uc3QgRmlsZUNob29zZXJTZXR0
aW5ncyYpOwpAQCAtOTgsNyArOTgsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxG
aWxlSWNvbkxvYWRlcj4gbV9maWxlSWNvbkxvYWRlcjsKICNlbmRpZgogCi0gICAgUmVmUHRyPEZp
bGVMaXN0PiBtX2ZpbGVMaXN0OworICAgIFJlZjxGaWxlTGlzdD4gbV9maWxlTGlzdDsKICAgICBS
ZWZQdHI8SWNvbj4gbV9pY29uOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBTdHJpbmcgbV9kaXNw
bGF5U3RyaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCBmNGJlNzE1OGM1
MTAwODU4MzA1ODBiNmE3Mzg1ODcyMDMwMzlhM2Q5Li4wMzIyYjEzOWQyODViMGYyOGYxMWI2MzBm
OTQzOTE5MDE4ZGM2MTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtMSw3
ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2Rl
Lm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2Rl
Lm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9y
Y2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2Jp
bGUuY29tLykKICAqIENvcHlyaWdodCAoQykgMjAxMSBNb3Rvcm9sYSBNb2JpbGl0eS4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCkBAIC03NTIsNyArNzUyLDcgQEAgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IEhUTUxFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBz
dHlsZSwKICAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBXVEZNb3Zl
KHN0eWxlKSk7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTEVsZW1lbnQ6OnZpcnR1YWxGb3Jt
KCkgY29uc3QKK0hUTUxGb3JtRWxlbWVudCogSFRNTEVsZW1lbnQ6OmZvcm0oKSBjb25zdAogewog
ICAgIHJldHVybiBIVE1MRm9ybUVsZW1lbnQ6OmZpbmRDbG9zZXN0Rm9ybUFuY2VzdG9yKCp0aGlz
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAppbmRleCAzOWQ0Y2I3MmI2NzYzNzI3NzU5
MTEyNmE4YTE1MjUwNTQwMmRmZTBjLi5jMWY5ZWNiNzZkZjczNTMzOGJiOTUwY2JmNzAxNGI4ZGRk
YjFhYWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCkBAIC0xLDcgKzEsNyBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAg
ICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQotICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMDksIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBi
b29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKICAgICBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxl
JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCi0gICAgSFRNTEZvcm1F
bGVtZW50KiBmb3JtKCkgY29uc3QgeyByZXR1cm4gdmlydHVhbEZvcm0oKTsgfQorICAgIFdFQkNP
UkVfRVhQT1JUIHZpcnR1YWwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkgY29uc3Q7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCBjb25zdCBBdG9taWNTdHJpbmcmIGRpcigpIGNvbnN0OwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0RGlyKGNvbnN0IEF0b21pY1N0cmluZyYpOwpAQCAtMTMzLDggKzEz
Myw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIG1hcExhbmd1YWdlQXR0cmlidXRlVG9Mb2NhbGUo
Y29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpOwogCi0gICAgdmly
dHVhbCBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkgY29uc3Q7Ci0KICAgICBFeGNlcHRp
b25PcjxSZWY8RG9jdW1lbnRGcmFnbWVudD4+IHRleHRUb0ZyYWdtZW50KGNvbnN0IFN0cmluZyYp
OwogCiAgICAgdm9pZCBkaXJBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXgg
ODQ1MTZjYjYyNDRjMzNiMWY3MDVlMDZkZTI4MjJhZWExMWU1MWJkOC4uMmU4NzJhYWJhZTY0YjA0
NDhkMjIxNGU5NjJiYjE2ZjZjYmY5OTAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChD
KSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkg
QW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEg
RGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUsIDIwMDYsIDIwMDcsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkK
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCkBAIC01OTMsMTEgKzU5Myw2IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1l
CiAgICAgaGlkZVZpc2libGVWYWxpZGF0aW9uTWVzc2FnZSgpOwogfQogCi1IVE1MRm9ybUVsZW1l
bnQqIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnZpcnR1YWxGb3JtKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtKCk7Ci19Ci0KICNpZiBFTkFCTEUoSU9T
X0FVVE9DT1JSRUNUX0FORF9BVVRPQ0FQSVRBTElaRSkKIAogLy8gRklYTUU6IFdlIHNob3VsZCBs
b29rIHRvIHNoYXJlIHRoaXMgY29kZSB3aXRoIGNsYXNzIEhUTUxGb3JtRWxlbWVudCBpbnN0ZWFk
IG9mIGR1cGxpY2F0aW5nIHRoZSBsb2dpYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUNvbnRyb2xFbGVtZW50LmgKaW5kZXggNGZmNDg5NGYzNWZlNjFkMmVkZjBjMDg1NWU5MjI0NGFj
ZGM1YzRmYy4uNTBiOGNkNGMxODE0MTM1MDNkNTQzN2U3ZjllMDUyNGY3MzNkNTUzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTIsNyArMiw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAq
ICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAq
ICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgSFRNTEZvcm1Db250cm9sRWxlbWVudCA6IHB1YmxpYyBM
YWJlbGFibGVFbGVtZW50LCBwdWJsaWMgRm9ybUFzc29jaWF0ZWRFbGUKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5IVE1MRm9ybUNvbnRyb2xFbGVtZW50KCk7CiAKLSAgICBIVE1MRm9ybUVsZW1lbnQq
IGZvcm0oKSBjb25zdCB7IHJldHVybiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm0oKTsgfQor
ICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEZvcm1Bc3Nv
Y2lhdGVkRWxlbWVudDo6Zm9ybSgpOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZm9y
bUVuY3R5cGUoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZvcm1FbmN0eXBl
KGNvbnN0IFN0cmluZyYpOwpAQCAtMTY5LDcgKzE2OSw2IEBAIHByaXZhdGU6CiAKICAgICBpbnQg
dGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKIAotICAgIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZv
cm0oKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQo
KSBjb25zdDsKIAogICAgIGJvb2wgY29tcHV0ZUlzRGlzYWJsZWRCeUZpZWxkc2V0QW5jZXN0b3Io
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGQ0
M2Q0ZWY5ZTAxMTkyNmQwZThhMGViZGVjODc1MmQzZWZmZGZjMjQuLjgyMTJjYjI5ODhjMzQxOTI3
Y2Y3ZTEzZjE5YmI1MmMwZGQ2NjY1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtu
b2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3Rv
IChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAo
bXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3
LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEzLCAyMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1
cnlha292IChhcEBueXBvcC5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5p
ZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KQEAgLTExODQsMTAgKzExODQsOSBAQCB2b2lkIEhUTUxJbnB1dEVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQogICAgICAgICBpZiAod2Fz
Q2hhbmdlZFNpbmNlTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKSkKICAgICAgICAgICAgIGRp
c3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwogCi0gICAgICAgIFJlZlB0cjxIVE1MRm9y
bUVsZW1lbnQ+IGZvcm1Gb3JTdWJtaXNzaW9uID0gbV9pbnB1dFR5cGUtPmZvcm1Gb3JTdWJtaXNz
aW9uKCk7CiAgICAgICAgIC8vIEZvcm0gbWF5IG5ldmVyIGhhdmUgYmVlbiBwcmVzZW50LCBvciBt
YXkgaGF2ZSBiZWVuIGRlc3Ryb3llZCBieSBjb2RlIHJlc3BvbmRpbmcgdG8gdGhlIGNoYW5nZSBl
dmVudC4KLSAgICAgICAgaWYgKGZvcm1Gb3JTdWJtaXNzaW9uKQotICAgICAgICAgICAgZm9ybUZv
clN1Ym1pc3Npb24tPnN1Ym1pdEltcGxpY2l0bHkoZXZlbnQsIGNhblRyaWdnZXJJbXBsaWNpdFN1
Ym1pc3Npb24oKSk7CisgICAgICAgIGlmIChhdXRvKiBmb3JtRWxlbWVudCA9IGZvcm0oKSkKKyAg
ICAgICAgICAgIGZvcm1FbGVtZW50LT5zdWJtaXRJbXBsaWNpdGx5KGV2ZW50LCBjYW5UcmlnZ2Vy
SW1wbGljaXRTdWJtaXNzaW9uKCkpOwogCiAgICAgICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVk
KCk7CiAgICAgICAgIHJldHVybjsKQEAgLTEzNDIsOSArMTM0MSw5IEBAIEZpbGVMaXN0KiBIVE1M
SW5wdXRFbGVtZW50OjpmaWxlcygpCiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5maWxlcygpOwog
fQogCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+
IGZpbGVzKQordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+
JiYgZmlsZXMpCiB7Ci0gICAgbV9pbnB1dFR5cGUtPnNldEZpbGVzKGZpbGVzKTsKKyAgICBtX2lu
cHV0VHlwZS0+c2V0RmlsZXMoV1RGTW92ZShmaWxlcykpOwogfQogCiAjaWYgRU5BQkxFKERSQUdf
U1VQUE9SVCkKQEAgLTE4NjksNyArMTg2OCw3IEBAIFJhZGlvQnV0dG9uR3JvdXBzKiBIVE1MSW5w
dXRFbGVtZW50OjpyYWRpb0J1dHRvbkdyb3VwcygpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1JhZGlv
QnV0dG9uKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGlmIChIVE1MRm9ybUVsZW1l
bnQqIGZvcm1FbGVtZW50ID0gZm9ybSgpKQorICAgIGlmIChhdXRvKiBmb3JtRWxlbWVudCA9IGZv
cm0oKSkKICAgICAgICAgcmV0dXJuICZmb3JtRWxlbWVudC0+cmFkaW9CdXR0b25Hcm91cHMoKTsK
ICAgICBpZiAoaW5Eb2N1bWVudCgpKQogICAgICAgICByZXR1cm4gJmRvY3VtZW50KCkuZm9ybUNv
bnRyb2xsZXIoKS5yYWRpb0J1dHRvbkdyb3VwcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaAppbmRleCA4YWZmZDk4MTE3NTRkOWU0OTIzNjI1NmU2NTVkNmRhNTU4M2Y1NmQ2
Li5iZjAwYmFmZmM0NjIwMzZhOGIyMmVkOWRjYmNhMzViMmIxMWZlMTRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAo
QykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5
IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAw
IERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgpAQCAtNDMsOCArNDMsOCBAQCBjbGFzcyBJY29uOwogY2xhc3MgSW5wdXRUeXBlOwogY2xhc3Mg
TGlzdEF0dHJpYnV0ZVRhcmdldE9ic2VydmVyOwogY2xhc3MgUmFkaW9CdXR0b25Hcm91cHM7Ci1j
bGFzcyBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ7CiBjbGFzcyBVUkw7CisKIHN0cnVjdCBE
YXRlVGltZUNob29zZXJQYXJhbWV0ZXJzOwogCiBzdHJ1Y3QgSW5wdXRFbGVtZW50Q2xpY2tTdGF0
ZSB7CkBAIC0yMzgsNyArMjM4LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0U2hvd0F1dG9GaWxsQnV0dG9uKEF1dG9GaWxsQnV0dG9uVHlwZSk7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBGaWxlTGlzdCogZmlsZXMoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZp
bGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZp
bGVzKFJlZlB0cjxGaWxlTGlzdD4mJik7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAg
IC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gRHJhZ0RhdGEgaGFzIG1vcmUgdGhhbiBvbmUg
ZHJvcHBlZCBmaWxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVs
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCmlu
ZGV4IDcxMWQwNmQyMzIzZjBkNmQ1NWUxYWFjYWVkZWFmNGVlMDY3NzM5YWMuLjAxMGZmYzRjMzRi
ODA5NWNhOTk0NTMwMDNhZTBmYjZjZTg3YmYxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TGFiZWxFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBM
YXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtv
aXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVl
bGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2
LCAyMDA3LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAg
ICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgpAQCAtNTgsMzAgKzU4LDI4IEBAIFJlZjxIVE1MTGFiZWxFbGVtZW50PiBIVE1MTGFiZWxF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jCiAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSFRNTExhYmVsRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQogCi1MYWJlbGFibGVFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9sKCkKK0xhYmVs
YWJsZUVsZW1lbnQqIEhUTUxMYWJlbEVsZW1lbnQ6OmNvbnRyb2woKSBjb25zdAogewotICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgY29udHJvbElkID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihmb3JBdHRyKTsKKyAgICBhdXRvJiBjb250cm9sSWQgPSBhdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKGZvckF0dHIpOwogICAgIGlmIChjb250cm9sSWQuaXNOdWxsKCkpIHsKICAg
ICAgICAgLy8gU2VhcmNoIHRoZSBjaGlsZHJlbiBhbmQgZGVzY2VuZGFudHMgb2YgdGhlIGxhYmVs
IGVsZW1lbnQgZm9yIGEgZm9ybSBlbGVtZW50LgogICAgICAgICAvLyBwZXIgaHR0cDovL2Rldi53
My5vcmcvaHRtbDUvc3BlYy9PdmVydmlldy5odG1sI3RoZS1sYWJlbC1lbGVtZW50CiAgICAgICAg
IC8vIHRoZSBmb3JtIGVsZW1lbnQgbXVzdCBiZSAibGFiZWxhYmxlIGZvcm0tYXNzb2NpYXRlZCBl
bGVtZW50Ii4KICAgICAgICAgZm9yIChhdXRvJiBsYWJlbGFibGVFbGVtZW50IDogZGVzY2VuZGFu
dHNPZlR5cGU8TGFiZWxhYmxlRWxlbWVudD4oKnRoaXMpKSB7CiAgICAgICAgICAgICBpZiAobGFi
ZWxhYmxlRWxlbWVudC5zdXBwb3J0TGFiZWxzKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuICZs
YWJlbGFibGVFbGVtZW50OworICAgICAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0PExhYmVs
YWJsZUVsZW1lbnQqPigmbGFiZWxhYmxlRWxlbWVudCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgfQotICAgIAogICAgIHJldHVybiBpbkRvY3VtZW50KCkgPyBmaXJz
dEVsZW1lbnRXaXRoSWRJZkxhYmVsYWJsZSh0cmVlU2NvcGUoKSwgY29udHJvbElkKSA6IG51bGxw
dHI7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTExhYmVsRWxlbWVudDo6Zm9ybSgpCitIVE1M
Rm9ybUVsZW1lbnQqIEhUTUxMYWJlbEVsZW1lbnQ6OmZvcm0oKSBjb25zdAogewotICAgIGF1dG8q
IGxhYmVsZWRDb250cm9sID0gY29udHJvbCgpOwotICAgIGlmICghbGFiZWxlZENvbnRyb2wpCisg
ICAgYXV0byogY29udHJvbCA9IHRoaXMtPmNvbnRyb2woKTsKKyAgICBpZiAoIWlzPEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ+KGNvbnRyb2wpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAg
IHJldHVybiBpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PigqbGFiZWxlZENvbnRyb2wpID8gZG93
bmNhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oKmxhYmVsZWRDb250cm9sKS5mb3JtKCkgOiBu
dWxscHRyOworICAgIHJldHVybiBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PigqY29u
dHJvbCkuZm9ybSgpOwogfQogCiB2b2lkIEhUTUxMYWJlbEVsZW1lbnQ6OnNldEFjdGl2ZShib29s
IGRvd24sIGJvb2wgcGF1c2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
YWJlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCmlu
ZGV4IDE0MGQ5ODk1ZDFmNDBkOGEyZDM2ZjU3ZTEzNTRhZGFlYjI0NWYxOWUuLmEzZDE0MjEwOGI0
MjZkNmFkZTQzYmU2OTEyYmY2YzViYzAxNDU4ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExh
YmVsRWxlbWVudC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMg
S25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlz
dG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVy
IChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0zMSw4ICszMSw4IEBAIGNsYXNzIEhUTUxMYWJlbEVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8SFRNTExhYmVsRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgV0VC
Q09SRV9FWFBPUlQgTGFiZWxhYmxlRWxlbWVudCogY29udHJvbCgpOwotICAgIFdFQkNPUkVfRVhQ
T1JUIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpOworICAgIFdFQkNPUkVfRVhQT1JUIExhYmVsYWJs
ZUVsZW1lbnQqIGNvbnRyb2woKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBIVE1MRm9ybUVs
ZW1lbnQqIGZvcm0oKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNl
Q2xpY2tFdmVudHMoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGVnZW5kRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVt
ZW50LmNwcAppbmRleCAwNDgxMDYxMWUxZGEyY2ZkMzk3OGNmYmE5ZjlmMjkzMDU5YmQ0NWNlLi4w
OTBlMGM3MmQ5YjZiMzVjNTNmNDI3ODE0NWI2MTlmZTQ3ZjgyYzRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdo
dCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAx
OTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAy
MDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1LCAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
ICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgpAQCAtMzEsMTMgKzMxLDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKLQotCiBpbmxpbmUgSFRNTExlZ2VuZEVsZW1lbnQ6
OkhUTUxMZWdlbmRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogewotICAg
IEFTU0VSVChoYXNUYWdOYW1lKGxlZ2VuZFRhZykpOworICAgIEFTU0VSVChoYXNUYWdOYW1lKEhU
TUxOYW1lczo6bGVnZW5kVGFnKSk7CiB9CiAKIFJlZjxIVE1MTGVnZW5kRWxlbWVudD4gSFRNTExl
Z2VuZEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCkBAIC01OSw3ICs1Niw2IEBAIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIEhU
TUxMZWdlbmRFbGVtZW50Ojphc3NvY2lhdGVkQ29udHJvbCgpCiAKIHZvaWQgSFRNTExlZ2VuZEVs
ZW1lbnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlv
biBkaXJlY3Rpb24pCiB7Ci0gICAgLy8gVG8gbWF0Y2ggb3RoZXIgYnJvd3NlcnMnIGJlaGF2aW9y
LCBuZXZlciByZXN0b3JlIHByZXZpb3VzIHNlbGVjdGlvbi4KICAgICBpZiAoZG9jdW1lbnQoKS5o
YXZlU3R5bGVzaGVldHNMb2FkZWQoKSkgewogICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgICAgICBpZiAoaXNGb2N1c2FibGUoKSkg
ewpAQCAtNjcsMjUgKzYzLDI2IEBAIHZvaWQgSFRNTExlZ2VuZEVsZW1lbnQ6OmZvY3VzKGJvb2wg
cmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbiBkaXJlCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CisKKyAgICAvLyBUbyBtYXRjaCBvdGhlciBicm93
c2VycycgYmVoYXZpb3IsIG5ldmVyIHJlc3RvcmUgcHJldmlvdXMgc2VsZWN0aW9uLgogICAgIGlm
IChhdXRvKiBjb250cm9sID0gYXNzb2NpYXRlZENvbnRyb2woKSkKICAgICAgICAgY29udHJvbC0+
Zm9jdXMoZmFsc2UsIGRpcmVjdGlvbik7CiB9CiAKIHZvaWQgSFRNTExlZ2VuZEVsZW1lbnQ6OmFj
Y2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKIHsKLSAgICBpZiAoSFRNTEZvcm1D
b250cm9sRWxlbWVudCogY29udHJvbCA9IGFzc29jaWF0ZWRDb250cm9sKCkpCisgICAgaWYgKGF1
dG8qIGNvbnRyb2wgPSBhc3NvY2lhdGVkQ29udHJvbCgpKQogICAgICAgICBjb250cm9sLT5hY2Nl
c3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsKIH0KIAotSFRNTEZvcm1FbGVtZW50KiBIVE1M
TGVnZW5kRWxlbWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAorSFRNTEZvcm1FbGVtZW50KiBIVE1M
TGVnZW5kRWxlbWVudDo6Zm9ybSgpIGNvbnN0CiB7CiAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBz
cGVjaWZpY2F0aW9uLCBJZiB0aGUgbGVnZW5kIGhhcyBhIGZpZWxkc2V0IGVsZW1lbnQgYXMKICAg
ICAvLyBpdHMgcGFyZW50LCB0aGVuIHRoZSBmb3JtIGF0dHJpYnV0ZSBtdXN0IHJldHVybiB0aGUg
c2FtZSB2YWx1ZSBhcyB0aGUKICAgICAvLyBmb3JtIGF0dHJpYnV0ZSBvbiB0aGF0IGZpZWxkc2V0
IGVsZW1lbnQuIE90aGVyd2lzZSwgaXQgbXVzdCByZXR1cm4gbnVsbC4KLSAgICBDb250YWluZXJO
b2RlKiBmaWVsZHNldCA9IHBhcmVudE5vZGUoKTsKKyAgICBhdXRvKiBmaWVsZHNldCA9IHBhcmVu
dE5vZGUoKTsKICAgICBpZiAoIWlzPEhUTUxGaWVsZFNldEVsZW1lbnQ+KGZpZWxkc2V0KSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTEZpZWxkU2V0
RWxlbWVudD4oKmZpZWxkc2V0KS5mb3JtKCk7CiB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMZWdlbmRFbGVtZW50LmgKaW5kZXggMDM4Y2M5YTE3NmViYzBkNzA2MmU2MGU1Yzk1OWExNWU4
Mzg0NmYyZi4uMTQ0ZTE5ZjYyYjgxZDkzMmI4YTE5YWJjNmM4ZmZmMTlmMTA1NTkwYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaApAQCAtMiw3ICsyLDcgQEAKICAqIENv
cHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAg
IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAg
IChDKSAyMDAwIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzMsMTUgKzMzLDE2IEBAIGNsYXNzIEhUTUxMZWdl
bmRFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPEhUTUxMZWdlbmRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBj
b25zdCBmaW5hbDsKKwogcHJpdmF0ZToKICAgICBIVE1MTGVnZW5kRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIC8vIENvbnRyb2wgaW4gdGhlIGxlZ2VuZCdz
IGZpZWxkc2V0IHRoYXQgZ2V0cyBmb2N1cyBhbmQgYWNjZXNzIGtleS4KKyAgICAvLyBDb250cm9s
IGluIHRoZSBsZWdlbmQncyBmaWVsZCBzZXQgdGhhdCBnZXRzIGZvY3VzIGFuZCBhY2Nlc3Mga2V5
LgogICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGFzc29jaWF0ZWRDb250cm9sKCk7CiAKICAg
ICB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7CiAgICAg
dm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24p
IGZpbmFsOwotICAgIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25zdCBmaW5hbDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCmluZGV4IDA4NGVmYzc4MDU0M2ZlZGQyMTRlOTU0Njc5ODUxYzlkNzY1NjU0
NjMuLmI4MzVhM2Q4N2NlYTZhM2Q1MzE5MDk5NjRiYjBkZjAwNzhkOTgzZWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDctMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDExICsyNCwxMCBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAK
ICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCi0KICNp
bmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgpAQCAtMjY5LDIyICsyNjgsMjMg
QEAgc3RhdGljIHZvaWQgcmVtb3ZlRWxlbWVudEZyb21Eb2N1bWVudE1hcChIVE1MTWVkaWFFbGVt
ZW50JiBlbGVtZW50LCBEb2N1bWVudCYgZG8KIH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
KwogY2xhc3MgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgewogcHVibGljOgotICAgIFRyYWNrRGlz
cGxheVVwZGF0ZVNjb3BlKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKKyAgICBUcmFj
a0Rpc3BsYXlVcGRhdGVTY29wZShIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQorICAgICAgICA6
IG1fZWxlbWVudChlbGVtZW50KQogICAgIHsKLSAgICAgICAgbV9tZWRpYUVsZW1lbnQgPSBtZWRp
YUVsZW1lbnQ7Ci0gICAgICAgIG1fbWVkaWFFbGVtZW50LT5iZWdpbklnbm9yaW5nVHJhY2tEaXNw
bGF5VXBkYXRlUmVxdWVzdHMoKTsKKyAgICAgICAgbV9lbGVtZW50LmJlZ2luSWdub3JpbmdUcmFj
a0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpOwogICAgIH0KICAgICB+VHJhY2tEaXNwbGF5VXBkYXRl
U2NvcGUoKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fbWVkaWFFbGVtZW50KTsKLSAgICAgICAg
bV9tZWRpYUVsZW1lbnQtPmVuZElnbm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKTsK
KyAgICAgICAgbV9lbGVtZW50LmVuZElnbm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMo
KTsKICAgICB9CiAgICAgCiBwcml2YXRlOgotICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1fbWVkaWFF
bGVtZW50OworICAgIEhUTUxNZWRpYUVsZW1lbnQmIG1fZWxlbWVudDsKIH07CisKICNlbmRpZgog
CiBzdHJ1Y3QgSFRNTE1lZGlhRWxlbWVudDo6VHJhY2tHcm91cCB7CkBAIC0xNTU0LDcgKzE1NTQs
NyBAQCBzdGF0aWMgYm9vbCBldmVudFRpbWVDdWVDb21wYXJlKGNvbnN0IHN0ZDo6cGFpcjxNZWRp
YVRpbWUsIFRleHRUcmFja0N1ZSo+JiBhLCBjbwogICAgIC8vIDEyIC0gRnVydGhlciBzb3J0IHRh
c2tzIGluIGV2ZW50cyB0aGF0IGhhdmUgdGhlIHNhbWUgdGltZSBieSB0aGUKICAgICAvLyByZWxh
dGl2ZSB0ZXh0IHRyYWNrIGN1ZSBvcmRlciBvZiB0aGUgdGV4dCB0cmFjayBjdWVzIGFzc29jaWF0
ZWQKICAgICAvLyB3aXRoIHRoZXNlIHRhc2tzLgotICAgIHJldHVybiBhLnNlY29uZC0+Y3VlSW5k
ZXgoKSAtIGIuc2Vjb25kLT5jdWVJbmRleCgpIDwgMDsKKyAgICByZXR1cm4gYS5zZWNvbmQtPmlz
T3JkZXJlZEJlZm9yZShiLnNlY29uZCk7CiB9CiAKIHN0YXRpYyBib29sIGNvbXBhcmVDdWVJbnRl
cnZhbChjb25zdCBDdWVJbnRlcnZhbCYgb25lLCBjb25zdCBDdWVJbnRlcnZhbCYgdHdvKQpAQCAt
MTgxNywyMiArMTgxNywyMSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlYWR5
U3RhdGVDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCiAgICAgfQogfQogCi12b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKiB0cmFjaykKK3Zv
aWQgSFRNTE1lZGlhRWxlbWVudDo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2sm
IHRyYWNrKQogewotICAgIEFTU0VSVCh0cmFjayk7Ci0gICAgaWYgKG1fYXVkaW9UcmFja3MgJiYg
bV9hdWRpb1RyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV9hdWRpb1RyYWNrcyAm
JiBtX2F1ZGlvVHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fYXVkaW9UcmFja3Mt
PnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKICAgICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vz
c2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgcmVtb3ZlQmVoYXZpb3JzUmVzdHJp
Y3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKE1lZGlhRWxlbWVudFNlc3Npb246OkFsbFJlc3Ry
aWN0aW9ucyAmIH5NZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRy
b2xDb250cm9sc01hbmFnZXIpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFj
a01vZGVDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRl
eHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7CiAgICAgYm9vbCB0cmFja0lz
TG9hZGVkID0gdHJ1ZTsKLSAgICBpZiAodHJhY2stPnRyYWNrVHlwZSgpID09IFRleHRUcmFjazo6
VHJhY2tFbGVtZW50KSB7CisgICAgaWYgKHRyYWNrLnRyYWNrVHlwZSgpID09IFRleHRUcmFjazo6
VHJhY2tFbGVtZW50KSB7CiAgICAgICAgIHRyYWNrSXNMb2FkZWQgPSBmYWxzZTsKICAgICAgICAg
Zm9yIChhdXRvJiB0cmFja0VsZW1lbnQgOiBjaGlsZHJlbk9mVHlwZTxIVE1MVHJhY2tFbGVtZW50
PigqdGhpcykpIHsKLSAgICAgICAgICAgIGlmICgmdHJhY2tFbGVtZW50LnRyYWNrKCkgPT0gdHJh
Y2spIHsKKyAgICAgICAgICAgIGlmICgmdHJhY2tFbGVtZW50LnRyYWNrKCkgPT0gJnRyYWNrKSB7
CiAgICAgICAgICAgICAgICAgaWYgKHRyYWNrRWxlbWVudC5yZWFkeVN0YXRlKCkgPT0gSFRNTFRy
YWNrRWxlbWVudDo6TE9BRElORyB8fCB0cmFja0VsZW1lbnQucmVhZHlTdGF0ZSgpID09IEhUTUxU
cmFja0VsZW1lbnQ6OkxPQURFRCkKICAgICAgICAgICAgICAgICAgICAgdHJhY2tJc0xvYWRlZCA9
IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xODQ1LDMzICsxODQ0LDMyIEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKiB0cmFj
aykKICAgICAgICAgbV90ZXh0VHJhY2tzID0gVGV4dFRyYWNrTGlzdDo6Y3JlYXRlKHRoaXMsIEFj
dGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICAKICAgICAvLyBN
YXJrIHRoaXMgdHJhY2sgYXMgImNvbmZpZ3VyZWQiIHNvIGNvbmZpZ3VyZVRleHRUcmFja3Mgd29u
J3QgY2hhbmdlIHRoZSBtb2RlIGFnYWluLgotICAgIHRyYWNrLT5zZXRIYXNCZWVuQ29uZmlndXJl
ZCh0cnVlKTsKKyAgICB0cmFjay5zZXRIYXNCZWVuQ29uZmlndXJlZCh0cnVlKTsKICAgICAKLSAg
ICBpZiAodHJhY2stPm1vZGUoKSAhPSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkICYmIHRyYWNr
SXNMb2FkZWQpCi0gICAgICAgIHRleHRUcmFja0FkZEN1ZXModHJhY2ssIHRyYWNrLT5jdWVzKCkp
OworICAgIGlmICh0cmFjay5tb2RlKCkgIT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCAmJiB0
cmFja0lzTG9hZGVkKQorICAgICAgICB0ZXh0VHJhY2tBZGRDdWVzKHRyYWNrLCAqdHJhY2suY3Vl
cygpKTsKIAogICAgIGNvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkoQXNzdW1lVGV4dFRyYWNrVmlz
aWJpbGl0eUNoYW5nZWQpOwogCi0gICAgaWYgKG1fdGV4dFRyYWNrcyAmJiBtX3RleHRUcmFja3Mt
PmNvbnRhaW5zKCp0cmFjaykpCisgICAgaWYgKG1fdGV4dFRyYWNrcyAmJiBtX3RleHRUcmFja3Mt
PmNvbnRhaW5zKHRyYWNrKSkKICAgICAgICAgbV90ZXh0VHJhY2tzLT5zY2hlZHVsZUNoYW5nZUV2
ZW50KCk7CiAKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQotICAgIGlmICh0cmFjay0+dHJhY2tU
eXBlKCkgPT0gVGV4dFRyYWNrOjpUcmFja0VsZW1lbnQgJiYgbV9wbGF5ZXIpCisgICAgaWYgKHRy
YWNrLnRyYWNrVHlwZSgpID09IFRleHRUcmFjazo6VHJhY2tFbGVtZW50ICYmIG1fcGxheWVyKQog
ICAgICAgICBtX3BsYXllci0+bm90aWZ5VHJhY2tNb2RlQ2hhbmdlZCgpOwogI2VuZGlmCiB9CiAK
LXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1Ry
YWNrKiB0cmFjaykKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hh
bmdlZChWaWRlb1RyYWNrJiB0cmFjaykKIHsKLSAgICBBU1NFUlQodHJhY2spOwotICAgIGlmICht
X3ZpZGVvVHJhY2tzICYmIG1fdmlkZW9UcmFja3MtPmNvbnRhaW5zKCp0cmFjaykpCisgICAgaWYg
KG1fdmlkZW9UcmFja3MgJiYgbV92aWRlb1RyYWNrcy0+Y29udGFpbnModHJhY2spKQogICAgICAg
ICBtX3ZpZGVvVHJhY2tzLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiB9CiAKLXZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykKK3ZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykK
IHsKLSAgICBpZiAodHJhY2stPmtpbmQoKSAhPSBUZXh0VHJhY2s6OktpbmQ6OkNhcHRpb25zICYm
IHRyYWNrLT5raW5kKCkgIT0gVGV4dFRyYWNrOjpLaW5kOjpTdWJ0aXRsZXMgJiYgdHJhY2stPm1v
ZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OlNob3dpbmcpCi0gICAgICAgIHRyYWNrLT5zZXRNb2Rl
KFRleHRUcmFjazo6TW9kZTo6SGlkZGVuKTsKKyAgICBpZiAodHJhY2sua2luZCgpICE9IFRleHRU
cmFjazo6S2luZDo6Q2FwdGlvbnMgJiYgdHJhY2sua2luZCgpICE9IFRleHRUcmFjazo6S2luZDo6
U3VidGl0bGVzICYmIHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OlNob3dpbmcpCisg
ICAgICAgIHRyYWNrLnNldE1vZGUoVGV4dFRyYWNrOjpNb2RlOjpIaWRkZW4pOwogfQogCiB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OmJlZ2luSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0
cygpCkBAIC0xODg3LDI2ICsxODg1LDI4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW5kSWdu
b3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpCiAgICAgICAgIHVwZGF0ZUFjdGl2ZVRl
eHRUcmFja0N1ZXMoY3VycmVudE1lZGlhVGltZSgpKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVt
ZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayogdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1
ZUxpc3QqIGN1ZXMpIAordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKFRl
eHRUcmFjayYgdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZXMpCiB7Ci0gICAgaWYg
KHRyYWNrLT5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCkKKyAgICBpZiAodHJh
Y2subW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQpCiAgICAgICAgIHJldHVybjsK
IAotICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlKHRoaXMpOwotICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgY3Vlcy0+bGVuZ3RoKCk7ICsraSkKLSAgICAgICAgdGV4dFRyYWNrQWRk
Q3VlKHRyYWNrLCAqY3Vlcy0+aXRlbShpKSk7CisgICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUg
c2NvcGUgeyAqdGhpcyB9OworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjdWVzLmxlbmd0
aCgpOyArK2kpCisgICAgICAgIHRleHRUcmFja0FkZEN1ZSh0cmFjaywgKmN1ZXMuaXRlbShpKSk7
CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJh
Y2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KiBjdWVzKQordm9pZCBIVE1MTWVkaWFFbGVtZW50
Ojp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3Qm
IGN1ZXMpCiB7Ci0gICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUodGhpcyk7Ci0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBjdWVzLT5sZW5ndGgoKTsgKytpKQotICAgICAgICB0ZXh0
VHJhY2tSZW1vdmVDdWUoY3Vlcy0+aXRlbShpKS0+dHJhY2soKSwgKmN1ZXMtPml0ZW0oaSkpOwor
ICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlIHsgKnRoaXMgfTsKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgY3Vlcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgIGF1dG8mIGN1
ZSA9ICpjdWVzLml0ZW0oaSk7CisgICAgICAgIHRleHRUcmFja1JlbW92ZUN1ZSgqY3VlLnRyYWNr
KCksIGN1ZSk7CisgICAgfQogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0Fk
ZEN1ZShUZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKK3ZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6dGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYgdHJhY2ssIFRleHRUcmFja0N1ZSYg
Y3VlKQogewotICAgIGlmICh0cmFjay0+bW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJs
ZWQpCisgICAgaWYgKHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkKQog
ICAgICAgICByZXR1cm47CiAKICAgICAvLyBOZWdhdGl2ZSBkdXJhdGlvbiBjdWVzIG5lZWQgYmUg
dHJlYXRlZCBpbiB0aGUgaW50ZXJ2YWwgdHJlZSBhcwpAQCAtMTkxOSw3ICsxOTE5LDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiB0cmFjaywgVGV4
dFRyYWNrQ3VlJiBjdWUpCiAgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcyhjdXJyZW50TWVk
aWFUaW1lKCkpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1
ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmIGN1ZSkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
dGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYgY3VlKQogewogICAg
IC8vIE5lZ2F0aXZlIGR1cmF0aW9uIGN1ZXMgbmVlZCB0byBiZSB0cmVhdGVkIGluIHRoZSBpbnRl
cnZhbCB0cmVlIGFzCiAgICAgLy8gemVyby1sZW5ndGggY3Vlcy4KQEAgLTMyMTIsNiArMzIxMiw3
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGF1c2VJbnRlcm5hbCgpCiB9CiAKICNpZiBFTkFC
TEUoTUVESUFfU09VUkNFKQorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRldGFjaE1lZGlhU291
cmNlKCkKIHsKICAgICBpZiAoIW1fbWVkaWFTb3VyY2UpCkBAIC0zMjIwLDYgKzMyMjEsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRldGFjaE1lZGlhU291cmNlKCkKICAgICBtX21lZGlhU291
cmNlLT5kZXRhY2hGcm9tRWxlbWVudCgqdGhpcyk7CiAgICAgbV9tZWRpYVNvdXJjZSA9IG51bGxw
dHI7CiB9CisKICNlbmRpZgogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Omxvb3AoKSBjb25zdApA
QCAtMzUwOCwxNCArMzUxMCwxNCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVy
RGlkQWRkQXVkaW9UcmFjayhBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2spCiAgICAgaWYgKGlzUGxh
eWluZygpICYmICFtX21lZGlhU2Vzc2lvbi0+cGxheWJhY2tQZXJtaXR0ZWQoKnRoaXMpKQogICAg
ICAgICBwYXVzZUludGVybmFsKCk7CiAKLSAgICBhZGRBdWRpb1RyYWNrKEF1ZGlvVHJhY2s6OmNy
ZWF0ZSh0aGlzLCAmdHJhY2spKTsKKyAgICBhZGRBdWRpb1RyYWNrKEF1ZGlvVHJhY2s6OmNyZWF0
ZSgqdGhpcywgdHJhY2spKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXll
ckRpZEFkZFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFjaykKIHsKICAgICAv
LyA0LjguMTAuMTIuMiBTb3VyY2luZyBpbi1iYW5kIHRleHQgdHJhY2tzCiAgICAgLy8gMS4gQXNz
b2NpYXRlIHRoZSByZWxldmFudCBkYXRhIHdpdGggYSBuZXcgdGV4dCB0cmFjayBhbmQgaXRzIGNv
cnJlc3BvbmRpbmcgbmV3IFRleHRUcmFjayBvYmplY3QuCi0gICAgUmVmUHRyPEluYmFuZFRleHRU
cmFjaz4gdGV4dFRyYWNrID0gSW5iYW5kVGV4dFRyYWNrOjpjcmVhdGUoQWN0aXZlRE9NT2JqZWN0
OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRoaXMsICZ0cmFjayk7CisgICAgYXV0byB0ZXh0
VHJhY2sgPSBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZSgqQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCksICp0aGlzLCB0cmFjayk7CiAgICAgdGV4dFRyYWNrLT5zZXRNZWRp
YUVsZW1lbnQodGhpcyk7CiAgICAgCiAgICAgLy8gMi4gU2V0IHRoZSBuZXcgdGV4dCB0cmFjaydz
IGtpbmQsIGxhYmVsLCBhbmQgbGFuZ3VhZ2UgYmFzZWQgb24gdGhlIHNlbWFudGljcyBvZiB0aGUg
cmVsZXZhbnQgZGF0YSwKQEAgLTM1NDEsMTIgKzM1NDMsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjptZWRpYVBsYXllckRpZEFkZFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0
cmFjaykKICAgICAvLyA5LiBGaXJlIGFuIGV2ZW50IHdpdGggdGhlIG5hbWUgYWRkdHJhY2ssIHRo
YXQgZG9lcyBub3QgYnViYmxlIGFuZCBpcyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0
aGUgVHJhY2tFdmVudAogICAgIC8vIGludGVyZmFjZSwgd2l0aCB0aGUgdHJhY2sgYXR0cmlidXRl
IGluaXRpYWxpemVkIHRvIHRoZSB0ZXh0IHRyYWNrJ3MgVGV4dFRyYWNrIG9iamVjdCwgYXQgdGhl
IG1lZGlhIGVsZW1lbnQncwogICAgIC8vIHRleHRUcmFja3MgYXR0cmlidXRlJ3MgVGV4dFRyYWNr
TGlzdCBvYmplY3QuCi0gICAgYWRkVGV4dFRyYWNrKHRleHRUcmFjay5yZWxlYXNlTm9uTnVsbCgp
KTsKKyAgICBhZGRUZXh0VHJhY2soV1RGTW92ZSh0ZXh0VHJhY2spKTsKIH0KIAogdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjptZWRpYVBsYXllckRpZEFkZFZpZGVvVHJhY2soVmlkZW9UcmFja1ByaXZh
dGUmIHRyYWNrKQogewotICAgIGFkZFZpZGVvVHJhY2soVmlkZW9UcmFjazo6Y3JlYXRlKHRoaXMs
ICZ0cmFjaykpOworICAgIGFkZFZpZGVvVHJhY2soVmlkZW9UcmFjazo6Y3JlYXRlKCp0aGlzLCB0
cmFjaykpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkUmVtb3Zl
QXVkaW9UcmFjayhBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2spCkBAIC0zNjAzLDkgKzM2MDUsOSBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZUF1ZGlvVHJhY2soQXVkaW9UcmFjayYgdHJh
Y2spCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlVGV4dFRyYWNrKFRleHRUcmFjayYg
dHJhY2ssIGJvb2wgc2NoZWR1bGVFdmVudCkKIHsKLSAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29w
ZSBzY29wZSh0aGlzKTsKLSAgICBpZiAoVGV4dFRyYWNrQ3VlTGlzdCogY3VlcyA9IHRyYWNrLmN1
ZXMoKSkKLSAgICAgICAgdGV4dFRyYWNrUmVtb3ZlQ3VlcygmdHJhY2ssIGN1ZXMpOworICAgIFRy
YWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlIHsgKnRoaXMgfTsKKyAgICBpZiAoYXV0byogY3Vl
cyA9IHRyYWNrLmN1ZXMoKSkKKyAgICAgICAgdGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0cmFjaywgKmN1
ZXMpOwogICAgIHRyYWNrLmNsZWFyQ2xpZW50KCk7CiAgICAgaWYgKG1fdGV4dFRyYWNrcykKICAg
ICAgICAgbV90ZXh0VHJhY2tzLT5yZW1vdmUodHJhY2ssIHNjaGVkdWxlRXZlbnQpOwpAQCAtMzYy
NSw3ICszNjI3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpmb3JnZXRSZXNvdXJjZVNwZWNp
ZmljVHJhY2tzKCkKICAgICAgICAgcmVtb3ZlQXVkaW9UcmFjaygqbV9hdWRpb1RyYWNrcy0+bGFz
dEl0ZW0oKSk7CiAKICAgICBpZiAobV90ZXh0VHJhY2tzKSB7Ci0gICAgICAgIFRyYWNrRGlzcGxh
eVVwZGF0ZVNjb3BlIHNjb3BlKHRoaXMpOworICAgICAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29w
ZSBzY29wZSB7ICp0aGlzIH07CiAgICAgICAgIGZvciAoaW50IGkgPSBtX3RleHRUcmFja3MtPmxl
bmd0aCgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKICAgICAgICAgICAgIGF1dG8mIHRyYWNrID0gKm1f
dGV4dFRyYWNrcy0+aXRlbShpKTsKICAgICAgICAgICAgIGlmICh0cmFjay50cmFja1R5cGUoKSA9
PSBUZXh0VHJhY2s6OkluQmFuZCkKQEAgLTYwNzgsMTIgKzYwODAsMTIgQEAgTWVkaWFDb250cm9s
bGVyKiBIVE1MTWVkaWFFbGVtZW50Ojpjb250cm9sbGVyKCkgY29uc3QKICAgICByZXR1cm4gbV9t
ZWRpYUNvbnRyb2xsZXIuZ2V0KCk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0Q29u
dHJvbGxlcihQYXNzUmVmUHRyPE1lZGlhQ29udHJvbGxlcj4gY29udHJvbGxlcikKK3ZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6c2V0Q29udHJvbGxlcihSZWZQdHI8TWVkaWFDb250cm9sbGVyPiYmIGNv
bnRyb2xsZXIpCiB7CiAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyKQogICAgICAgICBtX21lZGlh
Q29udHJvbGxlci0+cmVtb3ZlTWVkaWFFbGVtZW50KCp0aGlzKTsKIAotICAgIG1fbWVkaWFDb250
cm9sbGVyID0gY29udHJvbGxlcjsKKyAgICBtX21lZGlhQ29udHJvbGxlciA9IFdURk1vdmUoY29u
dHJvbGxlcik7CiAKICAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXIpCiAgICAgICAgIG1fbWVkaWFD
b250cm9sbGVyLT5hZGRNZWRpYUVsZW1lbnQoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaAppbmRleCAwMjNjYzMzNjI4MzNmYTgwNjE5OWE0MTMwM2FmZjE5MDVjYmY2
NWRmLi5jYTE4OThkNmU2ZTIyMWExYWMxNTM1YTk3OTBhNTIxY2MyOWEyZTA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDctMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDctMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDEwICsyNywxMCBAQAogCiAjaWYg
RU5BQkxFKFZJREVPKQogCi0jaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJBY3Rp
dmVET01PYmplY3QuaCIKICNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUg
IkdlbmVyaWNUYXNrUXVldWUuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxNZWRpYUVsZW1lbnRFbnVtcy5oIgogI2luY2x1ZGUgIk1lZGlhQ2FuU3RhcnRMaXN0ZW5l
ci5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oIgpAQCAtNjksOSArNjks
NyBAQCBjbGFzcyBNZWRpYUNvbnRyb2xzOwogY2xhc3MgTWVkaWFDb250cm9sc0hvc3Q7CiBjbGFz
cyBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU7CiBjbGFzcyBNZWRpYUVycm9yOwotI2lmIEVO
QUJMRShFTkNSWVBURURfTUVESUEpCiBjbGFzcyBNZWRpYUtleXM7Ci0jZW5kaWYKIGNsYXNzIE1l
ZGlhUGxheWVyOwogY2xhc3MgTWVkaWFTZXNzaW9uOwogY2xhc3MgTWVkaWFTb3VyY2U7CkBAIC04
MSw3ICs3OSw2IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBTb3VyY2VC
dWZmZXI7CiBjbGFzcyBUZXh0VHJhY2tMaXN0OwogY2xhc3MgVGltZVJhbmdlczsKLWNsYXNzIFVS
TDsKIGNsYXNzIFZpZGVvUGxheWJhY2tRdWFsaXR5OwogY2xhc3MgVmlkZW9UcmFja0xpc3Q7CiBj
bGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKQEAgLTMzMSwyMCArMzI4LDIwIEBAIHB1YmxpYzoKICAg
ICB2b2lkIHVwZGF0ZVRleHRUcmFja0Rpc3BsYXkoKTsKIAogICAgIC8vIEF1ZGlvVHJhY2tDbGll
bnQKLSAgICB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayYpIGZpbmFs
OwogCiAgICAgdm9pZCB0ZXh0VHJhY2tSZWFkeVN0YXRlQ2hhbmdlZChUZXh0VHJhY2sqKTsKIAog
ICAgIC8vIFRleHRUcmFja0NsaWVudAotICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4
dFRyYWNrKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJh
Y2sqKSBvdmVycmlkZTsKLSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiwgY29u
c3QgVGV4dFRyYWNrQ3VlTGlzdCopIG92ZXJyaWRlOwotICAgIHZvaWQgdGV4dFRyYWNrUmVtb3Zl
Q3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0Kikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgb3ZlcnJpZGU7
Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikg
b3ZlcnJpZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2smKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIG92ZXJyaWRl
OworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tD
dWVMaXN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFj
ayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRleHRUcmFj
a0FkZEN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRl
eHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlkZTsKIAog
ICAgIC8vIFZpZGVvVHJhY2tDbGllbnQKLSAgICB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5n
ZWQoVmlkZW9UcmFjayopIG92ZXJyaWRlOworICAgIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hh
bmdlZChWaWRlb1RyYWNrJikgZmluYWw7CiAKICAgICBib29sIHJlcXVpcmVzVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9u
KFRleHRUcmFja1JlcHJlc2VudGF0aW9uKik7CkBAIC00MjIsNyArNDE5LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0TWVkaWFHcm91cChjb25zdCBTdHJpbmcmKTsKIAogICAgIE1lZGlhQ29udHJv
bGxlciogY29udHJvbGxlcigpIGNvbnN0OwotICAgIHZvaWQgc2V0Q29udHJvbGxlcihQYXNzUmVm
UHRyPE1lZGlhQ29udHJvbGxlcj4pOworICAgIHZvaWQgc2V0Q29udHJvbGxlcihSZWZQdHI8TWVk
aWFDb250cm9sbGVyPiYmKTsKIAogICAgIHZvaWQgZW50ZXJlZE9yRXhpdGVkRnVsbHNjcmVlbigp
IHsgY29uZmlndXJlTWVkaWFDb250cm9scygpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T2JqZWN0RWxlbWVudC5jcHAKaW5kZXggYmRlNmFlMjM1ZmQyZDQ0NzlkYWZiNjg5NDBmNzE5YjAy
YzM0OGNmMy4uMmVlYjQzZWQzOWFjYjVlMmM4OTg1ZDlhMzYyMDU4ODk3N2M5YjFkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTIsNyArMiw3IEBACiAg
KiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAg
ICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAg
ICAgICAoQykgMjAwMCBTdGVmYW4gU2NoaW1hbnNraSAoMVN0ZWluQGdteC5kZSkKLSAqIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAt
NTE5LDExICs1MTksNiBAQCBib29sIEhUTUxPYmplY3RFbGVtZW50OjphcHBlbmRGb3JtRGF0YShG
b3JtRGF0YUxpc3QmIGVuY29kaW5nLCBib29sKQogICAgIHJldHVybiB0cnVlOwogfQogCi1IVE1M
Rm9ybUVsZW1lbnQqIEhUTUxPYmplY3RFbGVtZW50Ojp2aXJ0dWFsRm9ybSgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybSgpOwotfQotCiBib29sIEhUTUxP
YmplY3RFbGVtZW50OjpjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0CiB7CiAgICAgLy8g
Q2FsbCB0aHJvdWdoIHRvIEhUTUxFbGVtZW50IGJlY2F1c2Ugd2UgbmVlZCB0byBza2lwIEhUTUxQ
bHVnSW5FbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKaW5kZXgg
ZTNjNTVlNGYwNTUxZTZjNmY1OWRmNDc3NTc4ZmY5NjgyMmRhZmVkOS4uOWVhODkzYjAxZDRjMDI2
ZWUxNTdhMjM4YWI1NjcxNGE1NDk3ZTYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT2JqZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFy
cyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2
aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAw
NywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHVzaW5nIEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQ6OnJlZjsKICAgICB1c2luZyBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpk
ZXJlZjsKIAotICAgIHVzaW5nIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybTsKKyAgICBIVE1M
Rm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCBmaW5hbCB7IHJldHVybiBGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQ6OmZvcm0oKTsgfQogCiBwcml2YXRlOgogICAgIEhUTUxPYmplY3RFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRl
ZEJ5UGFyc2VyKTsKQEAgLTkxLDcgKzkxLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVmRm9y
bUFzc29jaWF0ZWRFbGVtZW50KCkgZmluYWwgeyByZWYoKTsgfQogICAgIHZvaWQgZGVyZWZGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KLSAgICBIVE1MRm9ybUVsZW1l
bnQqIHZpcnR1YWxGb3JtKCkgY29uc3QgZmluYWw7CiAKICAgICBGb3JtTmFtZWRJdGVtKiBhc0Zv
cm1OYW1lZEl0ZW0oKSBmaW5hbCB7IHJldHVybiB0aGlzOyB9CiAgICAgSFRNTE9iamVjdEVsZW1l
bnQmIGFzSFRNTEVsZW1lbnQoKSBmaW5hbCB7IHJldHVybiAqdGhpczsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAppbmRleCA5YTMwNWZmMWY3MjYwMjJiNWYzZjcy
MDMyNzhjMDY2YmQ0MWY1OWZkLi44ZmJlNTFlZGIxNzdhMGMyNzEzYjYwMWNlODM2ODBjZTJlZmVk
ZDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcApAQCAtMyw3
ICszLDcgQEAKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9A
a2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2Rl
Lm9yZykKICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBv
cC5jb20pCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMTAsIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTW90
b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMzM0LDcg
KzMzNCw3IEBAIFN0cmluZyBIVE1MT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvbklubmVyVGV4
dCgpIGNvbnN0CiAgICAgICAgIGlmIChpczxUZXh0Pigqbm9kZSkpCiAgICAgICAgICAgICB0ZXh0
LmFwcGVuZChub2RlLT5ub2RlVmFsdWUoKSk7CiAgICAgICAgIC8vIFRleHQgbm9kZXMgaW5zaWRl
IHNjcmlwdCBlbGVtZW50cyBhcmUgbm90IHBhcnQgb2YgdGhlIG9wdGlvbiB0ZXh0LgotICAgICAg
ICBpZiAoaXM8RWxlbWVudD4oKm5vZGUpICYmIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZG93
bmNhc3Q8RWxlbWVudD4obm9kZSkpKQorICAgICAgICBpZiAoaXM8RWxlbWVudD4oKm5vZGUpICYm
IGlzU2NyaXB0RWxlbWVudChkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkpKQogICAgICAgICAgICAg
bm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKCpub2RlLCB0aGlzKTsK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoKm5v
ZGUsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAppbmRl
eCBhODY0ZTg3ZWFmZDQyODNlNTRmMWU0MGJmZWNmOTIyNWE1Y2I1ZGQ2Li5jZTZkM2I2OGYyNjJj
YzJjMzI2MjU1MjUyMzAzNGZmNzFlNjA0MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5FbGVtZW50LmNwcApAQCAtMSw4ICsxLDggQEAKLS8qKgorLyoKICAqIENvcHlyaWdodCAo
QykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5
IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAw
IFN0ZWZhbiBTY2hpbWFuc2tpICgxU3RlaW5AZ214LmRlKQotICogQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1LCAyMDA2LCAyMDE0IEFwcGxlIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MTA4LDIxICsxMDgsMjAgQEAgdm9pZCBIVE1MUGx1Z0luRWxlbWVudDo6cmVzZXRJbnN0YW5jZSgp
CiAgICAgbV9pbnN0YW5jZSA9IG51bGxwdHI7CiB9CiAKLVBhc3NSZWZQdHI8SlNDOjpCaW5kaW5n
czo6SW5zdGFuY2U+IEhUTUxQbHVnSW5FbGVtZW50OjpnZXRJbnN0YW5jZSgpCitKU0M6OkJpbmRp
bmdzOjpJbnN0YW5jZSogSFRNTFBsdWdJbkVsZW1lbnQ6OmJpbmRpbmdzSW5zdGFuY2UoKQogewot
ICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBhdXRvKiBmcmFtZSA9
IGRvY3VtZW50KCkuZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBJZiB0aGUgaG9zdCBkeW5hbWljYWxs
eSB0dXJucyBvZmYgSmF2YVNjcmlwdCAob3IgSmF2YSkgd2Ugd2lsbCBzdGlsbCByZXR1cm4KICAg
ICAvLyB0aGUgY2FjaGVkIGFsbG9jYXRlZCBCaW5kaW5nczo6SW5zdGFuY2UuICBOb3Qgc3VwcG9y
dGluZyB0aGlzIGVkZ2UtY2FzZSBpcyBPSy4KLSAgICBpZiAobV9pbnN0YW5jZSkKLSAgICAgICAg
cmV0dXJuIG1faW5zdGFuY2U7Ci0KLSAgICBpZiAoV2lkZ2V0KiB3aWRnZXQgPSBwbHVnaW5XaWRn
ZXQoKSkKLSAgICAgICAgbV9pbnN0YW5jZSA9IGZyYW1lLT5zY3JpcHQoKS5jcmVhdGVTY3JpcHRJ
bnN0YW5jZUZvcldpZGdldCh3aWRnZXQpOwogCi0gICAgcmV0dXJuIG1faW5zdGFuY2U7CisgICAg
aWYgKCFtX2luc3RhbmNlKSB7CisgICAgICAgIGlmIChhdXRvKiB3aWRnZXQgPSBwbHVnaW5XaWRn
ZXQoKSkKKyAgICAgICAgICAgIG1faW5zdGFuY2UgPSBmcmFtZS0+c2NyaXB0KCkuY3JlYXRlU2Ny
aXB0SW5zdGFuY2VGb3JXaWRnZXQod2lkZ2V0KTsKKyAgICB9CisgICAgcmV0dXJuIG1faW5zdGFu
Y2UuZ2V0KCk7CiB9CiAKIGJvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6Omd1YXJkZWREaXNwYXRjaEJl
Zm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKQEAgLTE5OSw3ICsxOTgsNyBA
QCB2b2lkIEhUTUxQbHVnSW5FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVu
dCkKICAgICAgICAgfQogCiAgICAgICAgIGlmIChpczxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbj4o
KnJlbmRlcmVyKSAmJiBkaXNwbGF5U3RhdGUoKSA8IFJlc3RhcnRpbmcpIHsKLSAgICAgICAgICAg
IGRvd25jYXN0PFJlbmRlclNuYXBzaG90dGVkUGx1Z0luPigqcmVuZGVyZXIpLmhhbmRsZUV2ZW50
KCZldmVudCk7CisgICAgICAgICAgICBkb3duY2FzdDxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbj4o
KnJlbmRlcmVyKS5oYW5kbGVFdmVudChldmVudCk7CiAgICAgICAgICAgICBIVE1MRnJhbWVPd25l
ckVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5F
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKaW5kZXgg
NWI4YzVhZDQyODJhYmY5NWEwNTI2MjhiMjhmZTlkNDAxYTljNzc4My4uODkyNzFjNDhiM2RiMGQ3
YmMyOWI1YmU5NTVlNWVkNGIwZWNiOGE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkVsZW1lbnQuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFy
cyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2
aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAw
NywgMjAwOCwgMjAwOSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBy
ZXNldEluc3RhbmNlKCk7CiAKLSAgICBQYXNzUmVmUHRyPEpTQzo6QmluZGluZ3M6Okluc3RhbmNl
PiBnZXRJbnN0YW5jZSgpOworICAgIEpTQzo6QmluZGluZ3M6Okluc3RhbmNlKiBiaW5kaW5nc0lu
c3RhbmNlKCk7CiAKICAgICBlbnVtIGNsYXNzIFBsdWdpbkxvYWRpbmdQb2xpY3kgeyBEb05vdExv
YWQsIExvYWQgfTsKICAgICBXRUJDT1JFX0VYUE9SVCBXaWRnZXQqIHBsdWdpbldpZGdldChQbHVn
aW5Mb2FkaW5nUG9saWN5ID0gUGx1Z2luTG9hZGluZ1BvbGljeTo6TG9hZCkgY29uc3Q7CkBAIC02
MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB9OwogICAgIERpc3BsYXlTdGF0ZSBkaXNwbGF5U3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlTdGF0ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBz
ZXREaXNwbGF5U3RhdGUoRGlzcGxheVN0YXRlKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU25h
cHNob3QoUGFzc1JlZlB0cjxJbWFnZT4pIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTbmFw
c2hvdChJbWFnZSopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFBlbmRpbmdNb3VzZUNs
aWNrKCkgeyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVzdGFydGVkUGx1Z2luKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdl
RWxlbWVudC5jcHAKaW5kZXggZmEyMzQ3YjYwYTk2MmI2MDVlM2U3OTg2NTBjMTMxYThiMmIyNWE4
OC4uMmE3NjI4YTJjY2Q2ZDJkMjI0ZjQ4ZGEzNDdiN2M5MTcyYzVkN2U2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTcxLDcgKzE3MSw3IEBAIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVuZGVyU3R5CiAKICAgICBpZiAoZGlzcGxheVN0YXRlKCkgPT0gRGlzcGxheWlu
Z1NuYXBzaG90KSB7CiAgICAgICAgIGF1dG8gcmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gPSBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbj4oKnRoaXMsIFdURk1vdmUoc3R5bGUp
KTsKLSAgICAgICAgcmVuZGVyU25hcHNob3R0ZWRQbHVnSW4tPnVwZGF0ZVNuYXBzaG90KG1fc25h
cHNob3RJbWFnZSk7CisgICAgICAgIHJlbmRlclNuYXBzaG90dGVkUGx1Z0luLT51cGRhdGVTbmFw
c2hvdChtX3NuYXBzaG90SW1hZ2UuZ2V0KCkpOwogICAgICAgICByZXR1cm4gV1RGTW92ZShyZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbik7CiAgICAgfQogCkBAIC0zMDEsNyArMzAxLDcgQEAgdm9pZCBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpzdGFydExvYWRpbmdJbWFnZSgpCiAgICAgbV9pbWFnZUxv
YWRlci0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKIH0KIAotdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50Ojp1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKK3ZvaWQgSFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6dXBkYXRlU25hcHNob3QoSW1hZ2UqIGltYWdlKQogewogICAgIGlm
IChkaXNwbGF5U3RhdGUoKSA+IERpc3BsYXlpbmdTbmFwc2hvdCkKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAppbmRleCBhM2Y3
ZTEwOGNmOTJlMDVhOWJiOGRhNGRhNjkyYWY0MDBmZDA2YTQ2Li5iMWM3NjI2YTNjNGU5NGM5Y2Rk
MDhkOGZmYTJkYTFjMzRmMzVmYjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQbHVnSW5JbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVn
SW5JbWFnZUVsZW1lbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDgtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDgtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVmYXVsdEV2ZW50
SGFuZGxlcihFdmVudCYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hQZW5kaW5nTW91c2VDbGlj
aygpIGZpbmFsOwogCi0gICAgdm9pZCB1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPikg
ZmluYWw7CisgICAgdm9pZCB1cGRhdGVTbmFwc2hvdChJbWFnZSopIGZpbmFsOwogCiAgICAgdm9p
ZCBzdGFydExvYWRpbmdJbWFnZSgpOwogICAgIHZvaWQgdXBkYXRlV2lkZ2V0SWZOZWNlc3Nhcnko
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggZWRjMjdi
OWE1MDAzOWNlYzMwMWI2YjhmNWNjMmJhYTM0ZjM4M2MwMi4uN2EyYjgyZGVjNDRlYmQ4OGI1NjYx
NWY0NjU2ZWU3ZmE1NTgyYTdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5jcHAKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9s
bCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAo
a29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11
ZWxsZXJAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwg
MjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAppbmRleCBmMmJk
NTI1Yzc0ZGRkM2Q3YjhhMWZjMWU5NjkyNTJlODYzY2RmNTc1Li4zMmQ4ZWUwMzg0YzIxNWY4YzFi
NWM0OTk3Y2M4NjgxODViZmYxODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtu
b2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3Rv
IChrb2l2aXN0b0BrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwMy0yMDE3IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCkBAIC00Myw2ICs0Myw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldENyb3NzT3JpZ2luKGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IFN0cmluZyBjcm9zc09yaWdpbigpIGNvbnN0OwogCisgICAgdXNpbmcgSFRNTEVsZW1lbnQ6OnJl
ZjsKKyAgICB1c2luZyBIVE1MRWxlbWVudDo6ZGVyZWY7CisKIHByaXZhdGU6CiAgICAgSFRNTFNj
cmlwdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNl
cnRlZEJ5UGFyc2VyLCBib29sIGFscmVhZHlTdGFydGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA3ZGI5MTRmNzA2
YjNhNmZhZjk0MzRhOGYyNGVlMTIxODE1YTc0ZGYyLi5hOWE1Mzc0Y2M2YTRiMTJhNzBmMmI5ODQ2
M2I5ZjlmODhjNjk4OTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykg
MTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFu
dHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERp
cmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
LCAyMDA2LCAyMDA3LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
ICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgpAQCAtNDI3LDcgKzQyNyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRDb250
YWluZXJBbmRPZmZzZXRGb3JSYW5nZShOb2RlKiBub2RlLCBpbnQgb2Zmc2V0LCBOb2RlKiYKICAg
ICB9CiB9CiAKLVBhc3NSZWZQdHI8UmFuZ2U+IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpz
ZWxlY3Rpb24oKSBjb25zdAorUmVmUHRyPFJhbmdlPiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6c2VsZWN0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoIXJlbmRlcmVyKCkgfHwgIWlzVGV4dEZv
cm1Db250cm9sKCkgfHwgIWhhc0NhY2hlZFNlbGVjdGlvbigpKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQuaAppbmRleCA0YTYzZTk3MWFhYjFmZWI1ZDM0NmRjNDIyMzFiNmIxMjY2YzBiNjNmLi4xMjhi
MDMxOGIwN2U2ZmI4NDgyZWE2ZGRmNGU4M2Q1NjZmODhlMzFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC0yLDcgKzIsNyBAQAog
ICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAg
ICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAg
ICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5LCAy
MDEwLCAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpA
QCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBFeGNl
cHRpb25Pcjx2b2lkPiBzZXRSYW5nZVRleHQoY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudCwgdW5z
aWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29uc3QgU3RyaW5nJiBzZWxlY3Rpb25Nb2RlKTsK
ICAgICB2b2lkIHNldFNlbGVjdGlvblJhbmdlKGludCBzdGFydCwgaW50IGVuZCwgY29uc3QgU3Ry
aW5nJiBkaXJlY3Rpb24sIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KCkpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9u
UmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gPSBT
ZWxlY3Rpb25IYXNOb0RpcmVjdGlvbiwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmID0g
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7Ci0gICAgUGFzc1JlZlB0cjxSYW5nZT4gc2VsZWN0
aW9uKCkgY29uc3Q7CisgICAgUmVmUHRyPFJhbmdlPiBzZWxlY3Rpb24oKSBjb25zdDsKICAgICBT
dHJpbmcgc2VsZWN0ZWRUZXh0KCkgY29uc3Q7CiAKICAgICB2b2lkIGRpc3BhdGNoRm9ybUNvbnRy
b2xDaGFuZ2VFdmVudCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVHJhY2tFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVu
dC5jcHAKaW5kZXggMDdmNDJkOTlmOGQ3YjQ4YTliYTI0MWI0YzQ3MWQ1NzlmNTVlOGJkNS4uNjY4
YjgxMmI4Y2VmNTMxNzczMDlmYzU4MmQ4Yjk0NjE3M2RhZDM4YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxMSwgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Miw2ICs0Myw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKICNpZiAhTE9HX0RJU0FCTEVE
CisKIHN0YXRpYyBTdHJpbmcgdXJsRm9yTG9nZ2luZ1RyYWNrKGNvbnN0IFVSTCYgdXJsKQogewog
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhpbXVtVVJMTGVuZ3RoRm9yTG9nZ2luZyA9IDEy
ODsKQEAgLTUwLDYgKzUyLDcgQEAgc3RhdGljIFN0cmluZyB1cmxGb3JMb2dnaW5nVHJhY2soY29u
c3QgVVJMJiB1cmwpCiAgICAgICAgIHJldHVybiB1cmwuc3RyaW5nKCk7CiAgICAgcmV0dXJuIHVy
bC5zdHJpbmcoKS5zdWJzdHJpbmcoMCwgbWF4aW11bVVSTExlbmd0aEZvckxvZ2dpbmcpICsgIi4u
LiI7CiB9CisKICNlbmRpZgogICAgIAogaW5saW5lIEhUTUxUcmFja0VsZW1lbnQ6OkhUTUxUcmFj
a0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQpAQCAtMjc5LDQzICsyODIsNDMgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MVHJhY2tFbGVt
ZW50OjptZWRpYUVsZW1lbnRDcm9zc09yaWdpbkF0dHJpYnV0ZSgpIGNvbnN0CiAgICAgcmV0dXJu
IG51bGxBdG9tOwogfQogCi12b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0tpbmRDaGFu
Z2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0tp
bmRDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7Ci0gICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQq
IHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQorICAgIGlmIChhdXRvKiBwYXJlbnQgPSBtZWRpYUVs
ZW1lbnQoKSkKICAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tLaW5kQ2hhbmdlZCh0cmFjayk7CiB9
CiAKLXZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNr
KiB0cmFjaykKK3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4
dFRyYWNrJiB0cmFjaykKIHsKICAgICAvLyBTaW5jZSB3ZSd2ZSBtb3ZlZCB0byBhIG5ldyBwYXJl
bnQsIHdlIG1heSBub3cgYmUgYWJsZSB0byBsb2FkLgogICAgIGlmIChyZWFkeVN0YXRlKCkgPT0g
SFRNTFRyYWNrRWxlbWVudDo6Tk9ORSkKICAgICAgICAgc2NoZWR1bGVMb2FkKCk7CiAKLSAgICBp
ZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1
dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja01v
ZGVDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tB
ZGRDdWVzKFRleHRUcmFjayogdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMpCit2
b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiB0cmFjaywg
Y29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVu
dCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1lZGlh
RWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja0FkZEN1ZXModHJhY2ssIGN1ZXMp
OwogfQogICAgIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRl
eHRUcmFjayogdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMpCit2b2lkIEhUTUxU
cmFja0VsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiB0cmFjaywgY29uc3Qg
VGV4dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFy
ZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVu
dCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja1JlbW92ZUN1ZXModHJhY2ssIGN1ZXMpOwog
fQogICAgIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNr
KiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRU
cmFja0FkZEN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKLSAgICBp
ZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1
dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja0Fk
ZEN1ZSh0cmFjaywgY3VlKTsKIH0KICAgICAKLXZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRy
YWNrUmVtb3ZlQ3VlKFRleHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBI
VE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiB0cmFjaywgVGV4
dFRyYWNrQ3VlJiBjdWUpCiB7Ci0gICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIHBhcmVudCA9IG1l
ZGlhRWxlbWVudCgpKQorICAgIGlmIChhdXRvKiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKICAg
ICAgICAgcGFyZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUodHJhY2ssIGN1ZSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKaW5kZXggOWI0MjVkY2Q4NWQxZTBkNGYzNjBj
ODZkMmVhNjJkMTkwOGU0YjdiMC4uMjI1MTAyNzljZGYyYmJlMjE5ZTUyM2MxNzlmNjI2ZDMzZGY3
OTBiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKQEAgLTEsNSArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc0LDEyICs3NSwx
MiBAQCBwcml2YXRlOgogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCgpIGNvbnN0
OwogCiAgICAgLy8gVGV4dFRyYWNrQ2xpZW50Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdl
ZChUZXh0VHJhY2sqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRU
cmFjayopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sqLCBjb25z
dCBUZXh0VHJhY2tDdWVMaXN0KikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVz
KFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBmaW5hbDsKLSAgICB2b2lkIHRl
eHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKLSAgICB2b2lk
IHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKKyAg
ICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIGZpbmFsOworICAgIHZvaWQg
dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJh
Y2tBZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBmaW5hbDsKKyAg
ICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3Vl
TGlzdCYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYsIFRleHRU
cmFja0N1ZSYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayYs
IFRleHRUcmFja0N1ZSYpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5Mb2FkVVJMKGNvbnN0IFVSTCYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggZjZhNmJiYzQ2NGI5YWZhMzhkNTdi
NGQxZWM0N2NmM2NjYTkyNjZkNC4uM2E4NjFhZDY2MDQ5NTQxZDY3YTE0YzJjZWZkZDRkMWU1NjUx
MTMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENv
cHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAg
IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAg
IChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEzLCAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykg
MjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDcgU2FtdWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDksIDIwMTAsIDIwMTEsIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAg
LTQ4MiwxMSArNDgyLDYgQEAgYm9vbCBJbnB1dFR5cGU6OnNob3VsZFN1Ym1pdEltcGxpY2l0bHko
RXZlbnQmIGV2ZW50KQogICAgIHJldHVybiBpczxLZXlib2FyZEV2ZW50PihldmVudCkgJiYgZXZl
bnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50ICYmIGRvd25jYXN0PEtleWJv
YXJkRXZlbnQ+KGV2ZW50KS5jaGFyQ29kZSgpID09ICdccic7CiB9CiAKLVBhc3NSZWZQdHI8SFRN
TEZvcm1FbGVtZW50PiBJbnB1dFR5cGU6OmZvcm1Gb3JTdWJtaXNzaW9uKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gZWxlbWVudCgpLmZvcm0oKTsKLX0KLQogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IElucHV0VHlwZTo6Y3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlKQogewog
ICAgIHJldHVybiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4oUmVuZGVyRWxlbWVudDo6Y3JlYXRl
Rm9yKGVsZW1lbnQoKSwgV1RGTW92ZShzdHlsZSkpKTsKQEAgLTU1MSw3ICs1NDYsNyBAQCBDaHJv
bWUqIElucHV0VHlwZTo6Y2hyb21lKCkgY29uc3QKIHsKICAgICBpZiAoUGFnZSogcGFnZSA9IGVs
ZW1lbnQoKS5kb2N1bWVudCgpLnBhZ2UoKSkKICAgICAgICAgcmV0dXJuICZwYWdlLT5jaHJvbWUo
KTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnB1dFR5
cGU6OmNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3QKQEAgLTYzNiw3ICs2MzEsNyBAQCBib29sIElu
cHV0VHlwZTo6Y2FuQmVTdWNjZXNzZnVsU3VibWl0QnV0dG9uKCkKIAogSFRNTEVsZW1lbnQqIElu
cHV0VHlwZTo6cGxhY2Vob2xkZXJFbGVtZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnB1dFR5cGU6OnJlbmRlcmVySXNOZWVkZWQo
KQpAQCAtNjQ2LDEwICs2NDEsMTAgQEAgYm9vbCBJbnB1dFR5cGU6OnJlbmRlcmVySXNOZWVkZWQo
KQogCiBGaWxlTGlzdCogSW5wdXRUeXBlOjpmaWxlcygpCiB7Ci0gICAgcmV0dXJuIDA7CisgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpzZXRGaWxlcyhQYXNzUmVmUHRy
PEZpbGVMaXN0PikKK3ZvaWQgSW5wdXRUeXBlOjpzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+JiYp
CiB7CiB9CiAKQEAgLTczMSwyNSArNzI2LDI5IEBAIFN0cmluZyBJbnB1dFR5cGU6OnNhbml0aXpl
VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zdAogfQogCiAjaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkKKwogYm9vbCBJbnB1dFR5cGU6OnJlY2VpdmVEcm9wcGVkRmlsZXMoY29u
c3QgRHJhZ0RhdGEmKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBm
YWxzZTsKIH0KKwogI2VuZGlmCiAKIEljb24qIElucHV0VHlwZTo6aWNvbigpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKICNpZiBQTEFURk9STShJT1MpCisKIFN0cmluZyBJbnB1dFR5cGU6OmRpc3BsYXlT
dHJpbmcoKSBjb25zdAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBT
dHJpbmcoKTsKIH0KKwogI2VuZGlmCiAKIGJvb2wgSW5wdXRUeXBlOjpzaG91bGRSZXNldE9uRG9j
dW1lbnRBY3RpdmF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGM0YmU3M2Q0MDA0
ZDY4ZDkxMzBiOWFiOTQ2YTE3MDBlNzAzM2RlMjQuLjk4Y2ZmODlhYWI4YjU5YWI5NTZlNDM2MDI4
NTFjMGE4NGM0OWJjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNz
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMTkyLDcgKzE5Miw2
IEBAIHB1YmxpYzoKICAgICAvLyBIZWxwZXJzIGZvciBldmVudCBoYW5kbGVycy4KIAogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRTdWJtaXRJbXBsaWNpdGx5KEV2ZW50Jik7Ci0gICAgdmlydHVhbCBQ
YXNzUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gZm9ybUZvclN1Ym1pc3Npb24oKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGJvb2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQmKSBjb25zdDsKICAgICB2aXJ0
dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0OwpAQCAtMjM5LDcgKzIzOCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbWF4UmVzdWx0c0F0dHJpYnV0ZUNoYW5nZWQoKTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdEFsaWduQXR0cmlidXRlKCk7CiAgICAgdmlydHVh
bCBGaWxlTGlzdCogZmlsZXMoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0
cjxGaWxlTGlzdD4pOworICAgIHZpcnR1YWwgdm9pZCBzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+
JiYpOwogICAgIHZpcnR1YWwgSWNvbiogaWNvbigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRTZW5kQ2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCBi
b29sIGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRv
Y3VtZW50LmNwcAppbmRleCBmMzUxZjk3OTUxNWY1Y2VjOWE0OTk0ZTBkNzVkMDFkYzQyMTg5NjA1
Li5iYjMwMGIwZmZiOWYzYmM3YTRhYzdkMmViYWU0YzkwNWFjNjBkNmU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MywxNSArNTMsMTMgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBQbHVnaW5Eb2N1bWVudFBhcnNlcihEb2N1bWVudCYgZG9jdW1l
bnQpCiAgICAgICAgIDogUmF3RGF0YURvY3VtZW50UGFyc2VyKGRvY3VtZW50KQotICAgICAgICAs
IG1fZW1iZWRFbGVtZW50KDApCiAgICAgewogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kQnl0ZXMo
RG9jdW1lbnRXcml0ZXImLCBjb25zdCBjaGFyKiwgc2l6ZV90KSBvdmVycmlkZTsKLQorICAgIHZv
aWQgYXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBjb25zdCBjaGFyKiwgc2l6ZV90KSBmaW5h
bDsKICAgICB2b2lkIGNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCk7CiAKLSAgICBIVE1MRW1iZWRF
bGVtZW50KiBtX2VtYmVkRWxlbWVudDsKKyAgICBIVE1MRW1iZWRFbGVtZW50KiBtX2VtYmVkRWxl
bWVudCB7IG51bGxwdHIgfTsKIH07CiAKIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0
ZURvY3VtZW50U3RydWN0dXJlKCkKQEAgLTEwNCw3ICsxMDIsNyBAQCB2b2lkIFBsdWdpbkRvY3Vt
ZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAgICAgaWYgKGF1dG8qIGxvYWRl
ciA9IGRvY3VtZW50LmxvYWRlcigpKQogICAgICAgICBtX2VtYmVkRWxlbWVudC0+c2V0QXR0cmli
dXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih0eXBlQXR0ciwgbG9hZGVyLT53cml0ZXIoKS5taW1l
VHlwZSgpKTsKIAotICAgIGRvY3VtZW50LnNldFBsdWdpbkVsZW1lbnQobV9lbWJlZEVsZW1lbnQp
OworICAgIGRvY3VtZW50LnNldFBsdWdpbkVsZW1lbnQoKm1fZW1iZWRFbGVtZW50KTsKIAogICAg
IGJvZHktPmFwcGVuZENoaWxkKGVtYmVkRWxlbWVudCk7CiB9CkBAIC0xMTYsNyArMTE0LDcgQEAg
dm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBj
b25zdCBjaGFyKiwgc2l6ZV90KQogCiAgICAgY3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKTsKIAot
ICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgYXV0byogZnJhbWUg
PSBkb2N1bWVudCgpLT5mcmFtZSgpOwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsK
IApAQCAtMTQyLDcgKzE0MCw2IEBAIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5
dGVzKERvY3VtZW50V3JpdGVyJiwgY29uc3QgY2hhciosIHNpemVfdCkKIAogUGx1Z2luRG9jdW1l
bnQ6OlBsdWdpbkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgOiBI
VE1MRG9jdW1lbnQoZnJhbWUsIHVybCwgUGx1Z2luRG9jdW1lbnRDbGFzcykKLSAgICAsIG1fc2hv
dWxkTG9hZFBsdWdpbk1hbnVhbGx5KHRydWUpCiB7CiAgICAgc2V0Q29tcGF0aWJpbGl0eU1vZGUo
RG9jdW1lbnRDb21wYXRpYmlsaXR5TW9kZTo6UXVpcmtzTW9kZSk7CiAgICAgbG9ja0NvbXBhdGli
aWxpdHlNb2RlKCk7CkBAIC0xNTUsMTQgKzE1MiwxNyBAQCBSZWY8RG9jdW1lbnRQYXJzZXI+IFBs
dWdpbkRvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQogCiBXaWRnZXQqIFBsdWdpbkRvY3VtZW50Ojpw
bHVnaW5XaWRnZXQoKQogewotICAgIGlmIChtX3BsdWdpbkVsZW1lbnQgJiYgbV9wbHVnaW5FbGVt
ZW50LT5yZW5kZXJlcigpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyRW1iZWRkZWRP
YmplY3Q+KCptX3BsdWdpbkVsZW1lbnQtPnJlbmRlcmVyKCkpLndpZGdldCgpOwotICAgIHJldHVy
biBudWxscHRyOworICAgIGlmICghbV9wbHVnaW5FbGVtZW50KQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICBhdXRvKiByZW5kZXJlciA9IG1fcGx1Z2luRWxlbWVudC0+cmVuZGVyZXIoKTsK
KyAgICBpZiAoIXJlbmRlcmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4g
ZG93bmNhc3Q8UmVuZGVyRW1iZWRkZWRPYmplY3Q+KCptX3BsdWdpbkVsZW1lbnQtPnJlbmRlcmVy
KCkpLndpZGdldCgpOwogfQogCi12b2lkIFBsdWdpbkRvY3VtZW50OjpzZXRQbHVnaW5FbGVtZW50
KFBhc3NSZWZQdHI8SFRNTFBsdWdJbkVsZW1lbnQ+IGVsZW1lbnQpCit2b2lkIFBsdWdpbkRvY3Vt
ZW50OjpzZXRQbHVnaW5FbGVtZW50KEhUTUxQbHVnSW5FbGVtZW50JiBlbGVtZW50KQogewotICAg
IG1fcGx1Z2luRWxlbWVudCA9IGVsZW1lbnQ7CisgICAgbV9wbHVnaW5FbGVtZW50ID0gJmVsZW1l
bnQ7CiB9CiAKIHZvaWQgUGx1Z2luRG9jdW1lbnQ6OmRldGFjaEZyb21QbHVnaW5FbGVtZW50KCkK
QEAgLTE3OSw5ICsxNzksMTAgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudDo6Y2FuY2VsTWFudWFsUGx1
Z2luTG9hZCgpCiAgICAgaWYgKCFzaG91bGRMb2FkUGx1Z2luTWFudWFsbHkoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWUoKS0+
bG9hZGVyKCkuYWN0aXZlRG9jdW1lbnRMb2FkZXIoKTsKLSAgICBkb2N1bWVudExvYWRlci0+Y2Fu
Y2VsTWFpblJlc291cmNlTG9hZChmcmFtZSgpLT5sb2FkZXIoKS5jYW5jZWxsZWRFcnJvcihkb2N1
bWVudExvYWRlci0+cmVxdWVzdCgpKSk7Ci0gICAgc2V0U2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5
KGZhbHNlKTsKKyAgICBhdXRvJiBmcmFtZUxvYWRlciA9IGZyYW1lKCktPmxvYWRlcigpOworICAg
IGF1dG8mIGRvY3VtZW50TG9hZGVyID0gKmZyYW1lTG9hZGVyLmFjdGl2ZURvY3VtZW50TG9hZGVy
KCk7CisgICAgZG9jdW1lbnRMb2FkZXIuY2FuY2VsTWFpblJlc291cmNlTG9hZChmcmFtZUxvYWRl
ci5jYW5jZWxsZWRFcnJvcihkb2N1bWVudExvYWRlci5yZXF1ZXN0KCkpKTsKKyAgICBtX3Nob3Vs
ZExvYWRQbHVnaW5NYW51YWxseSA9IGZhbHNlOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdp
bkRvY3VtZW50LmgKaW5kZXggM2NkMDYxMjU1MGY2ZjhmYmU5NmM4OWI1YjVmYjVlNTYxNDNjNWY3
ZS4uYmQ3ZWQ2Y2ExYTA2ZTVkODlmMzJjMjJjMDNkOTViMzU2NGE4NWIxOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUGx1Z2luRG9jdW1lbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDgsIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCwyNiArMzgsMjMgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQbHVnaW5Eb2N1bWVudChmcmFt
ZSwgdXJsKSk7CiAgICAgfQogCi0gICAgdm9pZCBzZXRQbHVnaW5FbGVtZW50KFBhc3NSZWZQdHI8
SFRNTFBsdWdJbkVsZW1lbnQ+KTsKLQogICAgIFdFQkNPUkVfRVhQT1JUIFdpZGdldCogcGx1Z2lu
V2lkZ2V0KCk7CiAgICAgSFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdpbkVsZW1lbnQoKSB7IHJldHVy
biBtX3BsdWdpbkVsZW1lbnQuZ2V0KCk7IH0KIAorICAgIHZvaWQgc2V0UGx1Z2luRWxlbWVudChI
VE1MUGx1Z0luRWxlbWVudCYpOwogICAgIHZvaWQgZGV0YWNoRnJvbVBsdWdpbkVsZW1lbnQoKTsK
IAogICAgIHZvaWQgY2FuY2VsTWFudWFsUGx1Z2luTG9hZCgpOwogCi0gICAgYm9vbCBzaG91bGRM
b2FkUGx1Z2luTWFudWFsbHkoKSB7IHJldHVybiBtX3Nob3VsZExvYWRQbHVnaW5NYW51YWxseTsg
fQorICAgIGJvb2wgc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5KCkgY29uc3QgeyByZXR1cm4gbV9z
aG91bGRMb2FkUGx1Z2luTWFudWFsbHk7IH0KIAogcHJpdmF0ZToKICAgICBQbHVnaW5Eb2N1bWVu
dChGcmFtZSosIGNvbnN0IFVSTCYpOwogCi0gICAgUmVmPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQ
YXJzZXIoKSBvdmVycmlkZTsKLQotICAgIHZvaWQgc2V0U2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5
KGJvb2wgbG9hZE1hbnVhbGx5KSB7IG1fc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5ID0gbG9hZE1h
bnVhbGx5OyB9CisgICAgUmVmPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBmaW5hbDsK
IAotICAgIGJvb2wgbV9zaG91bGRMb2FkUGx1Z2luTWFudWFsbHk7CiAgICAgUmVmUHRyPEhUTUxQ
bHVnSW5FbGVtZW50PiBtX3BsdWdpbkVsZW1lbnQ7CisgICAgYm9vbCBtX3Nob3VsZExvYWRQbHVn
aW5NYW51YWxseSB7IHRydWUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuY3BwCmluZGV4IDk0ZThiNGRjZWM0NGZkOGZlNmFhOTIxNGQ1NWQ5NTliNTg3MTlkZTUuLjM4
Yzk3ZmFjYjExYTdhNTVjZjMzMzRjYTU2ZTlmY2Y5MjJiMGNkZTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBU
b2tlciA8YWxwQGF0b2tlci5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggRXJpYyBTZWlkZWwg
PGVyaWNAd2Via2l0Lm9yZz4KQEAgLTE3Miw3ICsxNzIsNyBAQCBib29sIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6aXNBY2NlbGVyYXRlZCgpIGNvbnN0CiAjaWYgVVNFKElPU1VSRkFDRV9DQU5W
QVNfQkFDS0lOR19TVE9SRSkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICBp
ZiAoIWNhbnZhcygpLmhhc0NyZWF0ZWRJbWFnZUJ1ZmZlcigpKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gZHJhd2luZ0NvbnRleHQoKTsKKyAg
ICBhdXRvKiBjb250ZXh0ID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICByZXR1cm4gY29udGV4dCAm
JiBjb250ZXh0LT5pc0FjY2VsZXJhdGVkQ29udGV4dCgpOwogI2Vsc2UKICAgICByZXR1cm4gZmFs
c2U7CkBAIC00MTcsNyArNDE3LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNl
dFN0cm9rZVN0eWxlKENhbnZhc1N0eWxlIHN0eWxlKQogICAgIEdyYXBoaWNzQ29udGV4dCogYyA9
IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47Ci0gICAgc3Rh
dGUuc3Ryb2tlU3R5bGUuYXBwbHlTdHJva2VDb2xvcihjKTsKKyAgICBzdGF0ZS5zdHJva2VTdHls
ZS5hcHBseVN0cm9rZUNvbG9yKCpjKTsKICAgICBzdGF0ZS51bnBhcnNlZFN0cm9rZUNvbG9yID0g
U3RyaW5nKCk7CiB9CiAKQEAgLTQ0NCw3ICs0NDQsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6c2V0RmlsbFN0eWxlKENhbnZhc1N0eWxlIHN0eWxlKQogICAgIEdyYXBoaWNzQ29u
dGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47
Ci0gICAgc3RhdGUuZmlsbFN0eWxlLmFwcGx5RmlsbENvbG9yKGMpOworICAgIHN0YXRlLmZpbGxT
dHlsZS5hcHBseUZpbGxDb2xvcigqYyk7CiAgICAgc3RhdGUudW5wYXJzZWRGaWxsQ29sb3IgPSBT
dHJpbmcoKTsKIH0KIApAQCAtOTMwLDEzICs5MzAsMTMgQEAgc3RhdGljIGJvb2wgdmFsaWRhdGVS
ZWN0Rm9yQ2FudmFzKGZsb2F0JiB4LCBmbG9hdCYgeSwgZmxvYXQmIHdpZHRoLCBmbG9hdCYgaGVp
Z2gKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkK
LXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbGVhclBhdGhGb3JEYXNoYm9hcmRCYWNr
d2FyZENvbXBhdGliaWxpdHlNb2RlKCkKK2lubGluZSB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6Y2xlYXJQYXRoRm9yRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSgpCiB7
CisjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIGlmIChtX3VzZXNEYXNoYm9hcmRD
b21wYXRpYmlsaXR5TW9kZSkKICAgICAgICAgbV9wYXRoLmNsZWFyKCk7Ci19CiAjZW5kaWYKK30K
IAogc3RhdGljIGJvb2wgaXNGdWxsQ2FudmFzQ29tcG9zaXRlTW9kZShDb21wb3NpdGVPcGVyYXRv
ciBvcCkKIHsKQEAgLTk1NCwyOCArOTU0LDE5IEBAIHN0YXRpYyBXaW5kUnVsZSB0b1dpbmRSdWxl
KENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6V2luZGluZ1J1bGUgcnVsZSkKIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpmaWxsKFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxlKQogewogICAg
IGZpbGxJbnRlcm5hbChtX3BhdGgsIHdpbmRpbmdSdWxlKTsKLQotI2lmIEVOQUJMRShEQVNIQk9B
UkRfU1VQUE9SVCkKICAgICBjbGVhclBhdGhGb3JEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxp
dHlNb2RlKCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnN0
cm9rZSgpCiB7CiAgICAgc3Ryb2tlSW50ZXJuYWwobV9wYXRoKTsKLQotI2lmIEVOQUJMRShEQVNI
Qk9BUkRfU1VQUE9SVCkKICAgICBjbGVhclBhdGhGb3JEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGli
aWxpdHlNb2RlKCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OmNsaXAoV2luZGluZ1J1bGUgd2luZGluZ1J1bGUpCiB7CiAgICAgY2xpcEludGVybmFsKG1fcGF0
aCwgd2luZGluZ1J1bGUpOwotCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIGNs
ZWFyUGF0aEZvckRhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoKTsKLSNlbmRpZgog
fQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZmlsbChET01QYXRoJiBwYXRoLCBX
aW5kaW5nUnVsZSB3aW5kaW5nUnVsZSkKQEAgLTk5NSwxOSArOTg2LDE5IEBAIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpjbGlwKERPTVBhdGgmIHBhdGgsIFdpbmRpbmdSdWxlIHdpbmRp
bmdSdWxlKQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZmlsbEludGVybmFsKGNv
bnN0IFBhdGgmIHBhdGgsIFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxlKQogewotICAgIEdyYXBoaWNz
Q29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250
ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhh
c0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIElmIGdyYWRp
ZW50IHNpemUgaXMgemVybywgdGhlbiBwYWludCBub3RoaW5nLgotICAgIEdyYWRpZW50KiBncmFk
aWVudCA9IGMtPmZpbGxHcmFkaWVudCgpOworICAgIGF1dG8qIGdyYWRpZW50ID0gYy0+ZmlsbEdy
YWRpZW50KCk7CiAgICAgaWYgKGdyYWRpZW50ICYmIGdyYWRpZW50LT5pc1plcm9TaXplKCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGlmICghcGF0aC5pc0VtcHR5KCkpIHsKLSAgICAgICAgV2lu
ZFJ1bGUgd2luZFJ1bGUgPSBjLT5maWxsUnVsZSgpOworICAgICAgICBhdXRvIHNhdmVkRmlsbFJ1
bGUgPSBjLT5maWxsUnVsZSgpOwogICAgICAgICBjLT5zZXRGaWxsUnVsZSh0b1dpbmRSdWxlKHdp
bmRpbmdSdWxlKSk7CiAKICAgICAgICAgaWYgKGlzRnVsbENhbnZhc0NvbXBvc2l0ZU1vZGUoc3Rh
dGUoKS5nbG9iYWxDb21wb3NpdGUpKSB7CkBAIC0xMDI0LDIwICsxMDE1LDIwIEBAIHZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmaWxsSW50ZXJuYWwoY29uc3QgUGF0aCYgcGF0aCwgV2lu
ZGluZ1J1bGUgd2luZGluCiAgICAgICAgICAgICBkaWREcmF3KHBhdGguZmFzdEJvdW5kaW5nUmVj
dCgpKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgYy0+c2V0RmlsbFJ1bGUod2luZFJ1
bGUpOworICAgICAgICBjLT5zZXRGaWxsUnVsZShzYXZlZEZpbGxSdWxlKTsKICAgICB9CiB9CiAK
IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzdHJva2VJbnRlcm5hbChjb25zdCBQYXRo
JiBwYXRoKQogewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7Cisg
ICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1
cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJl
dHVybjsKIAogICAgIC8vIElmIGdyYWRpZW50IHNpemUgaXMgemVybywgdGhlbiBwYWludCBub3Ro
aW5nLgotICAgIEdyYWRpZW50KiBncmFkaWVudCA9IGMtPnN0cm9rZUdyYWRpZW50KCk7CisgICAg
YXV0byogZ3JhZGllbnQgPSBjLT5zdHJva2VHcmFkaWVudCgpOwogICAgIGlmIChncmFkaWVudCAm
JiBncmFkaWVudC0+aXNaZXJvU2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTEwNjIsNyAr
MTA1Myw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzdHJva2VJbnRlcm5hbChj
b25zdCBQYXRoJiBwYXRoKQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y2xpcElu
dGVybmFsKGNvbnN0IFBhdGgmIHBhdGgsIFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxlKQogewotICAg
IEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRy
YXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFz
dGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCkBAIC0xMTA4LDEzICsxMDk5LDEzIEBAIGJv
b2wgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjppc1BvaW50SW5TdHJva2UoRE9NUGF0aCYgcGF0
aCwgZmxvYXQgeCwgZmxvYXQgeSkKIAogYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6Omlz
UG9pbnRJblBhdGhJbnRlcm5hbChjb25zdCBQYXRoJiBwYXRoLCBmbG9hdCB4LCBmbG9hdCB5LCBX
aW5kaW5nUnVsZSB3aW5kaW5nUnVsZSkKIHsKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3
aW5nQ29udGV4dCgpOworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICgh
YykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghc3RhdGUoKS5oYXNJbnZlcnRpYmxl
VHJhbnNmb3JtKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBGbG9hdFBvaW50IHRyYW5z
Zm9ybWVkUG9pbnQgPSBzdGF0ZSgpLnRyYW5zZm9ybS5pbnZlcnNlKCkudmFsdWVfb3IoQWZmaW5l
VHJhbnNmb3JtKCkpLm1hcFBvaW50KEZsb2F0UG9pbnQoeCwgeSkpOworICAgIGF1dG8gdHJhbnNm
b3JtZWRQb2ludCA9IHN0YXRlKCkudHJhbnNmb3JtLmludmVyc2UoKS52YWx1ZV9vcihBZmZpbmVU
cmFuc2Zvcm0oKSkubWFwUG9pbnQoRmxvYXRQb2ludCh4LCB5KSk7CiAKICAgICBpZiAoIXN0ZDo6
aXNmaW5pdGUodHJhbnNmb3JtZWRQb2ludC54KCkpIHx8ICFzdGQ6OmlzZmluaXRlKHRyYW5zZm9y
bWVkUG9pbnQueSgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTEyNCwxMyArMTExNSwx
MyBAQCBib29sIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6aXNQb2ludEluUGF0aEludGVybmFs
KGNvbnN0IFBhdGgmIHBhdGgsIGZsb2F0IHgsCiAKIGJvb2wgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjppc1BvaW50SW5TdHJva2VJbnRlcm5hbChjb25zdCBQYXRoJiBwYXRoLCBmbG9hdCB4LCBm
bG9hdCB5KQogewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7Cisg
ICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIEZsb2F0UG9pbnQgdHJhbnNmb3JtZWRQb2ludCA9IHN0
YXRlKCkudHJhbnNmb3JtLmludmVyc2UoKS52YWx1ZV9vcihBZmZpbmVUcmFuc2Zvcm0oKSkubWFw
UG9pbnQoRmxvYXRQb2ludCh4LCB5KSk7CisgICAgYXV0byB0cmFuc2Zvcm1lZFBvaW50ID0gc3Rh
dGUoKS50cmFuc2Zvcm0uaW52ZXJzZSgpLnZhbHVlX29yKEFmZmluZVRyYW5zZm9ybSgpKS5tYXBQ
b2ludChGbG9hdFBvaW50KHgsIHkpKTsKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUodHJhbnNmb3Jt
ZWRQb2ludC54KCkpIHx8ICFzdGQ6OmlzZmluaXRlKHRyYW5zZm9ybWVkUG9pbnQueSgpKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xMTQyLDcgKzExMzMsNyBAQCB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6Y2xlYXJSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRo
LCBmbG9hdCBoZQogewogICAgIGlmICghdmFsaWRhdGVSZWN0Rm9yQ2FudmFzKHgsIHksIHdpZHRo
LCBoZWlnaHQpKQogICAgICAgICByZXR1cm47Ci0gICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
ID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBjb250ZXh0ID0gZHJhd2luZ0NvbnRleHQo
KTsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIXN0YXRlKCku
aGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkKQEAgLTExODAsNyArMTE3MSw3IEBAIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpmaWxsUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0
aCwgZmxvYXQgaGVpCiAgICAgaWYgKCF2YWxpZGF0ZVJlY3RGb3JDYW52YXMoeCwgeSwgd2lkdGgs
IGhlaWdodCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRy
YXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYg
KCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFu
c2Zvcm0pCkBAIC0xMTg5LDcgKzExODAsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6ZmlsbFJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaQogICAg
IC8vIGZyb20gdGhlIEhUTUw1IENhbnZhcyBzcGVjOgogICAgIC8vIElmIHgwID0geDEgYW5kIHkw
ID0geTEsIHRoZW4gdGhlIGxpbmVhciBncmFkaWVudCBtdXN0IHBhaW50IG5vdGhpbmcKICAgICAv
LyBJZiB4MCA9IHgxIGFuZCB5MCA9IHkxIGFuZCByMCA9IHIxLCB0aGVuIHRoZSByYWRpYWwgZ3Jh
ZGllbnQgbXVzdCBwYWludCBub3RoaW5nCi0gICAgR3JhZGllbnQqIGdyYWRpZW50ID0gYy0+Zmls
bEdyYWRpZW50KCk7CisgICAgYXV0byogZ3JhZGllbnQgPSBjLT5maWxsR3JhZGllbnQoKTsKICAg
ICBpZiAoZ3JhZGllbnQgJiYgZ3JhZGllbnQtPmlzWmVyb1NpemUoKSkKICAgICAgICAgcmV0dXJu
OwogCkBAIC0xMjE4LDcgKzEyMDksNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
c3Ryb2tlUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaAogICAgIGlm
ICghdmFsaWRhdGVSZWN0Rm9yQ2FudmFzKHgsIHksIHdpZHRoLCBoZWlnaHQpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOworICAg
IGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJu
OwogICAgIGlmICghc3RhdGUoKS5oYXNJbnZlcnRpYmxlVHJhbnNmb3JtKQpAQCAtMTIyNyw3ICsx
MjE4LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnN0cm9rZVJlY3QoZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGgKICAgICAgICAgcmV0dXJuOwogCiAgICAg
Ly8gSWYgZ3JhZGllbnQgc2l6ZSBpcyB6ZXJvLCB0aGVuIHBhaW50IG5vdGhpbmcuCi0gICAgR3Jh
ZGllbnQqIGdyYWRpZW50ID0gYy0+c3Ryb2tlR3JhZGllbnQoKTsKKyAgICBhdXRvKiBncmFkaWVu
dCA9IGMtPnN0cm9rZUdyYWRpZW50KCk7CiAgICAgaWYgKGdyYWRpZW50ICYmIGdyYWRpZW50LT5p
c1plcm9TaXplKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTI1MSwxMSArMTI0MiwxMiBAQCB2
b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlUmVjdChmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCB3aWR0aCwgZmxvYXQgaAogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
c2V0U2hhZG93KGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IGJsdXIsIGNvbnN0IFN0
cmluZyYgY29sb3JTdHJpbmcsIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGFscGhhKQogewotICAgIENv
bG9yIGNvbG9yID0gcGFyc2VDb2xvck9yQ3VycmVudENvbG9yKGNvbG9yU3RyaW5nLCAmY2FudmFz
KCkpOwotICAgIGlmICghY29sb3JTdHJpbmcuaXNOdWxsKCkgJiYgIWNvbG9yLmlzVmFsaWQoKSkK
LSAgICAgICAgcmV0dXJuOwotICAgIGlmICghY29sb3IuaXNWYWxpZCgpKQotICAgICAgICBjb2xv
ciA9IENvbG9yOjp0cmFuc3BhcmVudDsKKyAgICBDb2xvciBjb2xvciA9IENvbG9yOjp0cmFuc3Bh
cmVudDsKKyAgICBpZiAoIWNvbG9yU3RyaW5nLmlzTnVsbCgpKSB7CisgICAgICAgIGNvbG9yID0g
cGFyc2VDb2xvck9yQ3VycmVudENvbG9yKGNvbG9yU3RyaW5nLCAmY2FudmFzKCkpOworICAgICAg
ICBpZiAoIWNvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAg
Ly8gRklYTUU6IFNob3VsZCBub3QgdXNlIFJHQkEzMiBoZXJlLgogICAgIHNldFNoYWRvdyhGbG9h
dFNpemUod2lkdGgsIGhlaWdodCksIGJsdXIsIGNvbG9yV2l0aE92ZXJyaWRlQWxwaGEoY29sb3Iu
cmdiKCksIGFscGhhKSk7CiB9CkBAIC0xMjk2LDcgKzEyODgsNyBAQCB2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6c2V0U2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYgb2Zmc2V0LCBmbG9hdCBi
bHVyLCBjbwogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YXBwbHlTaGFkb3coKQog
ewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byog
YyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAKQEAg
LTEzMTMsMzUgKzEzMDUsMzMgQEAgYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNob3Vs
ZERyYXdTaGFkb3dzKCkgY29uc3QKICAgICByZXR1cm4gc3RhdGUoKS5zaGFkb3dDb2xvci5pc1Zp
c2libGUoKSAmJiAoc3RhdGUoKS5zaGFkb3dCbHVyIHx8ICFzdGF0ZSgpLnNoYWRvd09mZnNldC5p
c1plcm8oKSk7CiB9CiAKLWVudW0gSW1hZ2VTaXplVHlwZSB7Ci0gICAgSW1hZ2VTaXplQWZ0ZXJE
ZXZpY2VQaXhlbFJhdGlvLAotICAgIEltYWdlU2l6ZUJlZm9yZURldmljZVBpeGVsUmF0aW8KLX07
Ci0KLXN0YXRpYyBMYXlvdXRTaXplIHNpemUoSFRNTEltYWdlRWxlbWVudCYgaW1hZ2VFbGVtZW50
LCBJbWFnZVNpemVUeXBlIHNpemVUeXBlID0gSW1hZ2VTaXplQmVmb3JlRGV2aWNlUGl4ZWxSYXRp
bykKK2VudW0gY2xhc3MgSW1hZ2VTaXplVHlwZSB7IEFmdGVyRGV2aWNlUGl4ZWxSYXRpbywgQmVm
b3JlRGV2aWNlUGl4ZWxSYXRpbyB9Oworc3RhdGljIExheW91dFNpemUgc2l6ZShIVE1MSW1hZ2VF
bGVtZW50JiBlbGVtZW50LCBJbWFnZVNpemVUeXBlIHNpemVUeXBlID0gSW1hZ2VTaXplVHlwZTo6
QmVmb3JlRGV2aWNlUGl4ZWxSYXRpbykKIHsKICAgICBMYXlvdXRTaXplIHNpemU7Ci0gICAgaWYg
KENhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSA9IGltYWdlRWxlbWVudC5jYWNoZWRJbWFnZSgpKSB7
Ci0gICAgICAgIHNpemUgPSBjYWNoZWRJbWFnZS0+aW1hZ2VTaXplRm9yUmVuZGVyZXIoaW1hZ2VF
bGVtZW50LnJlbmRlcmVyKCksIDEuMGYpOyAvLyBGSVhNRTogTm90IHN1cmUgYWJvdXQgdGhpcy4K
LQotICAgICAgICBpZiAoc2l6ZVR5cGUgPT0gSW1hZ2VTaXplQWZ0ZXJEZXZpY2VQaXhlbFJhdGlv
ICYmIGlzPFJlbmRlckltYWdlPihpbWFnZUVsZW1lbnQucmVuZGVyZXIoKSkgJiYgY2FjaGVkSW1h
Z2UtPmltYWdlKCkgJiYgIWNhY2hlZEltYWdlLT5pbWFnZSgpLT5oYXNSZWxhdGl2ZVdpZHRoKCkp
Ci0gICAgICAgICAgICBzaXplLnNjYWxlKGRvd25jYXN0PFJlbmRlckltYWdlPigqaW1hZ2VFbGVt
ZW50LnJlbmRlcmVyKCkpLmltYWdlRGV2aWNlUGl4ZWxSYXRpbygpKTsKKyAgICBpZiAoYXV0byog
Y2FjaGVkSW1hZ2UgPSBlbGVtZW50LmNhY2hlZEltYWdlKCkpIHsKKyAgICAgICAgc2l6ZSA9IGNh
Y2hlZEltYWdlLT5pbWFnZVNpemVGb3JSZW5kZXJlcihlbGVtZW50LnJlbmRlcmVyKCksIDEuMGYp
OyAvLyBGSVhNRTogTm90IHN1cmUgYWJvdXQgdGhpcy4KKyAgICAgICAgaWYgKHNpemVUeXBlID09
IEltYWdlU2l6ZVR5cGU6OkFmdGVyRGV2aWNlUGl4ZWxSYXRpbyAmJiBpczxSZW5kZXJJbWFnZT4o
ZWxlbWVudC5yZW5kZXJlcigpKSAmJiBjYWNoZWRJbWFnZS0+aW1hZ2UoKSAmJiAhY2FjaGVkSW1h
Z2UtPmltYWdlKCktPmhhc1JlbGF0aXZlV2lkdGgoKSkKKyAgICAgICAgICAgIHNpemUuc2NhbGUo
ZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCplbGVtZW50LnJlbmRlcmVyKCkpLmltYWdlRGV2aWNlUGl4
ZWxSYXRpbygpKTsKICAgICB9CiAgICAgcmV0dXJuIHNpemU7CiB9CiAKLXN0YXRpYyBGbG9hdFNp
emUgc2l6ZShIVE1MQ2FudmFzRWxlbWVudCYgY2FudmFzRWxlbWVudCkKK3N0YXRpYyBpbmxpbmUg
RmxvYXRTaXplIHNpemUoSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZhc0VsZW1lbnQpCiB7Ci0gICAg
cmV0dXJuIEZsb2F0U2l6ZShjYW52YXNFbGVtZW50LnNpemUoKSk7CisgICAgcmV0dXJuIGNhbnZh
c0VsZW1lbnQuc2l6ZSgpOwogfQogCiAjaWYgRU5BQkxFKFZJREVPKQotc3RhdGljIEZsb2F0U2l6
ZSBzaXplKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvKQorCitzdGF0aWMgaW5saW5lIEZsb2F0U2l6
ZSBzaXplKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvKQogewotICAgIGlmIChNZWRpYVBsYXllciog
cGxheWVyID0gdmlkZW8ucGxheWVyKCkpCi0gICAgICAgIHJldHVybiBwbGF5ZXItPm5hdHVyYWxT
aXplKCk7Ci0gICAgcmV0dXJuIEZsb2F0U2l6ZSgpOworICAgIGF1dG8qIHBsYXllciA9IHZpZGVv
LnBsYXllcigpOworICAgIGlmICghcGxheWVyKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJl
dHVybiBwbGF5ZXItPm5hdHVyYWxTaXplKCk7CiB9CisKICNlbmRpZgogCiBzdGF0aWMgaW5saW5l
IEZsb2F0UmVjdCBub3JtYWxpemVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKQEAgLTEzNTYs
OCArMTM0Niw4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
ZHJhd0ltYWdlKENhbnZhc0ltYWdlU291cmNlJiYgaW1hZ2UsCiB7CiAgICAgcmV0dXJuIFdURjo6
c3dpdGNoT24oaW1hZ2UsCiAgICAgICAgIFsmXSAoUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+JiBp
bWFnZUVsZW1lbnQpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKLSAgICAgICAgICAgIExheW91dFNp
emUgZGVzdFJlY3RTaXplID0gc2l6ZSgqaW1hZ2VFbGVtZW50LCBJbWFnZVNpemVBZnRlckRldmlj
ZVBpeGVsUmF0aW8pOwotICAgICAgICAgICAgTGF5b3V0U2l6ZSBzb3VyY2VSZWN0U2l6ZSA9IHNp
emUoKmltYWdlRWxlbWVudCwgSW1hZ2VTaXplQmVmb3JlRGV2aWNlUGl4ZWxSYXRpbyk7CisgICAg
ICAgICAgICBMYXlvdXRTaXplIGRlc3RSZWN0U2l6ZSA9IHNpemUoKmltYWdlRWxlbWVudCwgSW1h
Z2VTaXplVHlwZTo6QWZ0ZXJEZXZpY2VQaXhlbFJhdGlvKTsKKyAgICAgICAgICAgIExheW91dFNp
emUgc291cmNlUmVjdFNpemUgPSBzaXplKCppbWFnZUVsZW1lbnQsIEltYWdlU2l6ZVR5cGU6OkJl
Zm9yZURldmljZVBpeGVsUmF0aW8pOwogICAgICAgICAgICAgcmV0dXJuIHRoaXMtPmRyYXdJbWFn
ZSgqaW1hZ2VFbGVtZW50LCBGbG9hdFJlY3QgeyAwLCAwLCBzb3VyY2VSZWN0U2l6ZS53aWR0aCgp
LCBzb3VyY2VSZWN0U2l6ZS5oZWlnaHQoKSB9LCBGbG9hdFJlY3QgeyBkeCwgZHksIGRlc3RSZWN0
U2l6ZS53aWR0aCgpLCBkZXN0UmVjdFNpemUuaGVpZ2h0KCkgfSk7CiAgICAgICAgIH0sCiAgICAg
ICAgIFsmXSAoYXV0byYgZWxlbWVudCkgLT4gRXhjZXB0aW9uT3I8dm9pZD4gewpAQCAtMTQwNiw3
ICsxMzk2LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpk
cmF3SW1hZ2UoSFRNTEltYWdlRWxlbWVudCYgaW1hZ2VFbGUKICAgICBGbG9hdFJlY3Qgbm9ybWFs
aXplZFNyY1JlY3QgPSBub3JtYWxpemVSZWN0KHNyY1JlY3QpOwogICAgIEZsb2F0UmVjdCBub3Jt
YWxpemVkRHN0UmVjdCA9IG5vcm1hbGl6ZVJlY3QoZHN0UmVjdCk7CiAKLSAgICBGbG9hdFJlY3Qg
aW1hZ2VSZWN0ID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZShpbWFnZUVsZW1lbnQsIElt
YWdlU2l6ZUJlZm9yZURldmljZVBpeGVsUmF0aW8pKTsKKyAgICBGbG9hdFJlY3QgaW1hZ2VSZWN0
ID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZShpbWFnZUVsZW1lbnQsIEltYWdlU2l6ZVR5
cGU6OkJlZm9yZURldmljZVBpeGVsUmF0aW8pKTsKICAgICBpZiAoIXNyY1JlY3Qud2lkdGgoKSB8
fCAhc3JjUmVjdC5oZWlnaHQoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOREVYX1NJ
WkVfRVJSIH07CiAKQEAgLTE1NzQsNyArMTU2NCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdlKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvLCBj
CiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdlRnJvbVJlY3QoSFRNTElt
YWdlRWxlbWVudCYgaW1hZ2VFbGVtZW50LCBmbG9hdCBzeCwgZmxvYXQgc3ksIGZsb2F0IHN3LCBm
bG9hdCBzaCwgZmxvYXQgZHgsIGZsb2F0IGR5LCBmbG9hdCBkdywgZmxvYXQgZGgsIGNvbnN0IFN0
cmluZyYgY29tcG9zaXRlT3BlcmF0aW9uKQogewogICAgIENvbXBvc2l0ZU9wZXJhdG9yIG9wOwot
ICAgIEJsZW5kTW9kZSBibGVuZE9wID0gQmxlbmRNb2RlTm9ybWFsOworICAgIGF1dG8gYmxlbmRP
cCA9IEJsZW5kTW9kZU5vcm1hbDsKICAgICBpZiAoIXBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVy
YXRvcihjb21wb3NpdGVPcGVyYXRpb24sIG9wLCBibGVuZE9wKSB8fCBibGVuZE9wICE9IEJsZW5k
TW9kZU5vcm1hbCkKICAgICAgICAgb3AgPSBDb21wb3NpdGVTb3VyY2VPdmVyOwogICAgIGRyYXdJ
bWFnZShpbWFnZUVsZW1lbnQsIEZsb2F0UmVjdCB7IHN4LCBzeSwgc3csIHNoIH0sIEZsb2F0UmVj
dCB7IGR4LCBkeSwgZHcsIGRoIH0sIG9wLCBCbGVuZE1vZGVOb3JtYWwpOwpAQCAtMTU5MiwxNCAr
MTU4MiwxMyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0Q29tcG9zaXRlT3Bl
cmF0aW9uKGNvbnN0IFN0cmluZyYgb3BlcmF0aW9uKQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6Y2xlYXJDYW52YXMoKQogewotICAgIEZsb2F0UmVjdCBjYW52YXNSZWN0KDAsIDAs
IGNhbnZhcygpLndpZHRoKCksIGNhbnZhcygpLmhlaWdodCgpKTsKLSAgICBHcmFwaGljc0NvbnRl
eHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgp
OwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJuOwogCiAgICAgYy0+c2F2ZSgpOwogICAgIGMt
PnNldENUTShjYW52YXMoKS5iYXNlVHJhbnNmb3JtKCkpOwotICAgIGMtPmNsZWFyUmVjdChjYW52
YXNSZWN0KTsKKyAgICBjLT5jbGVhclJlY3QoRmxvYXRSZWN0KDAsIDAsIGNhbnZhcygpLndpZHRo
KCksIGNhbnZhcygpLmhlaWdodCgpKSk7CiAgICAgYy0+cmVzdG9yZSgpOwogfQogCkBAIC0xNjQ4
LDcgKzE2MzcsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y29tcG9zaXRlQnVm
ZmVyKEltYWdlQnVmZmVyJiBidWZmZXIsIGNvbnN0IEludFJlYwogICAgIEludFJlY3QgY2FudmFz
UmVjdCgwLCAwLCBjYW52YXMoKS53aWR0aCgpLCBjYW52YXMoKS5oZWlnaHQoKSk7CiAgICAgY2Fu
dmFzUmVjdCA9IGNhbnZhcygpLmJhc2VUcmFuc2Zvcm0oKS5tYXBSZWN0KGNhbnZhc1JlY3QpOwog
Ci0gICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBj
ID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKIApAQCAt
MTY3OSwxNyArMTY2OCwxNyBAQCB0ZW1wbGF0ZTxjbGFzcyBUPiB2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6ZnVsbENhbnZhc0NvbXBvc2l0ZWREcmF3SW1hZ2UoVAogICAgIEFTU0VSVChp
c0Z1bGxDYW52YXNDb21wb3NpdGVNb2RlKG9wKSk7CiAKICAgICBJbnRTaXplIGNyb3BwZWRPZmZz
ZXQ7Ci0gICAgSW50UmVjdCBidWZmZXJSZWN0ID0gY2FsY3VsYXRlQ29tcG9zaXRpbmdCdWZmZXJS
ZWN0KGRlc3QsICZjcm9wcGVkT2Zmc2V0KTsKKyAgICBhdXRvIGJ1ZmZlclJlY3QgPSBjYWxjdWxh
dGVDb21wb3NpdGluZ0J1ZmZlclJlY3QoZGVzdCwgJmNyb3BwZWRPZmZzZXQpOwogICAgIGlmIChi
dWZmZXJSZWN0LmlzRW1wdHkoKSkgewogICAgICAgICBjbGVhckNhbnZhcygpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXIg
PSBjcmVhdGVDb21wb3NpdGluZ0J1ZmZlcihidWZmZXJSZWN0KTsKKyAgICBhdXRvIGJ1ZmZlciA9
IGNyZWF0ZUNvbXBvc2l0aW5nQnVmZmVyKGJ1ZmZlclJlY3QpOwogICAgIGlmICghYnVmZmVyKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4
dCgpOworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAg
ICAgcmV0dXJuOwogCkBAIC0xNzIwLDcgKzE3MDksNyBAQCBFeGNlcHRpb25PcjxSZWY8Q2FudmFz
R3JhZGllbnQ+PiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZUxpbmVhckdyYWRpZW50
KAogICAgIGlmICghc3RkOjppc2Zpbml0ZSh4MCkgfHwgIXN0ZDo6aXNmaW5pdGUoeTApIHx8ICFz
dGQ6OmlzZmluaXRlKHgxKSB8fCAhc3RkOjppc2Zpbml0ZSh5MSkpCiAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOT1RfU1VQUE9SVEVEX0VSUiB9OwogCi0gICAgUmVmPENhbnZhc0dyYWRpZW50
PiBncmFkaWVudCA9IENhbnZhc0dyYWRpZW50OjpjcmVhdGUoRmxvYXRQb2ludCh4MCwgeTApLCBG
bG9hdFBvaW50KHgxLCB5MSkpOworICAgIGF1dG8gZ3JhZGllbnQgPSBDYW52YXNHcmFkaWVudDo6
Y3JlYXRlKEZsb2F0UG9pbnQoeDAsIHkwKSwgRmxvYXRQb2ludCh4MSwgeTEpKTsKICAgICBwcmVw
YXJlR3JhZGllbnRGb3JEYXNoYm9hcmQoZ3JhZGllbnQuZ2V0KCkpOwogICAgIHJldHVybiBXVEZN
b3ZlKGdyYWRpZW50KTsKIH0KQEAgLTE3MzMsNyArMTcyMiw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxD
YW52YXNHcmFkaWVudD4+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y3JlYXRlUmFkaWFsR3Jh
ZGllbnQoCiAgICAgaWYgKHIwIDwgMCB8fCByMSA8IDApCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJTkRFWF9TSVpFX0VSUiB9OwogCi0gICAgUmVmPENhbnZhc0dyYWRpZW50PiBncmFkaWVu
dCA9IENhbnZhc0dyYWRpZW50OjpjcmVhdGUoRmxvYXRQb2ludCh4MCwgeTApLCByMCwgRmxvYXRQ
b2ludCh4MSwgeTEpLCByMSk7CisgICAgYXV0byBncmFkaWVudCA9IENhbnZhc0dyYWRpZW50Ojpj
cmVhdGUoRmxvYXRQb2ludCh4MCwgeTApLCByMCwgRmxvYXRQb2ludCh4MSwgeTEpLCByMSk7CiAg
ICAgcHJlcGFyZUdyYWRpZW50Rm9yRGFzaGJvYXJkKGdyYWRpZW50LmdldCgpKTsKICAgICByZXR1
cm4gV1RGTW92ZShncmFkaWVudCk7CiB9CkBAIC0xNzQ1LDcgKzE3MzQsNyBAQCBFeGNlcHRpb25P
cjxSZWZQdHI8Q2FudmFzUGF0dGVybj4+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y3JlYXRl
UGF0dGVybihDYW52YQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU1lOVEFYX0VSUiB9Owog
CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24oaW1hZ2UsCi0gICAgICAgIFsmXShhdXRvJiBlbGVt
ZW50KSAtPiBFeGNlcHRpb25PcjxSZWZQdHI8Q2FudmFzUGF0dGVybj4+IHsgcmV0dXJuIHRoaXMt
PmNyZWF0ZVBhdHRlcm4oKmVsZW1lbnQsIHJlcGVhdFgsIHJlcGVhdFkpOyB9CisgICAgICAgIFt0
aGlzLCByZXBlYXRYLCByZXBlYXRZXSAoYXV0byYgZWxlbWVudCkgLT4gRXhjZXB0aW9uT3I8UmVm
UHRyPENhbnZhc1BhdHRlcm4+PiB7IHJldHVybiBjcmVhdGVQYXR0ZXJuKCplbGVtZW50LCByZXBl
YXRYLCByZXBlYXRZKTsgfQogICAgICk7CiB9CiAKQEAgLTE4MTIsNyArMTgwMSw3IEBAIHZvaWQg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkaWREcmF3RW50aXJlQ2FudmFzKCkKIAogdm9pZCBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRpZERyYXcoY29uc3QgRmxvYXRSZWN0JiByLCB1bnNp
Z25lZCBvcHRpb25zKQogewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0
KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAg
ICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCkBAIC0x
ODY2LDE5ICsxODU1LDE3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRUcmFj
a3NEaXNwbGF5TGlzdFJlcGxheShib29sIHRyYWNrc0Rpc3BsYXlMaXN0CiAKIFN0cmluZyBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRpc3BsYXlMaXN0QXNUZXh0KERpc3BsYXlMaXN0OjpBc1Rl
eHRGbGFncyBmbGFncykgY29uc3QKIHsKLSAgICBpZiAobV9yZWNvcmRpbmdDb250ZXh0KQotICAg
ICAgICByZXR1cm4gbV9yZWNvcmRpbmdDb250ZXh0LT5kaXNwbGF5TGlzdC5hc1RleHQoZmxhZ3Mp
OwotICAgIAotICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBpZiAoIW1fcmVjb3JkaW5nQ29udGV4
dCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gbV9yZWNvcmRpbmdDb250ZXh0LT5k
aXNwbGF5TGlzdC5hc1RleHQoZmxhZ3MpOwogfQogCiBTdHJpbmcgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjpyZXBsYXlEaXNwbGF5TGlzdEFzVGV4dChEaXNwbGF5TGlzdDo6QXNUZXh0RmxhZ3Mg
ZmxhZ3MpIGNvbnN0CiB7Ci0gICAgYXV0byBpdCA9IGNvbnRleHREaXNwbGF5TGlzdE1hcCgpLmZp
bmQodGhpcyk7Ci0gICAgaWYgKGl0ICE9IGNvbnRleHREaXNwbGF5TGlzdE1hcCgpLmVuZCgpKQot
ICAgICAgICByZXR1cm4gaXQtPnZhbHVlLT5hc1RleHQoZmxhZ3MpOwotCi0gICAgcmV0dXJuIFN0
cmluZygpOworICAgIGF1dG8qIGRpc3BsYXlMaXN0ID0gY29udGV4dERpc3BsYXlMaXN0TWFwKCku
Z2V0KHRoaXMpOworICAgIGlmICghZGlzcGxheUxpc3QpCisgICAgICAgIHJldHVybiB7IH07Cisg
ICAgcmV0dXJuIGRpc3BsYXlMaXN0LT5hc1RleHQoZmxhZ3MpOwogfQogCiB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKQpAQCAtMTg4
Niw3ICsxODczLDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnBhaW50UmVuZGVy
aW5nUmVzdWx0c1RvQ2FudmFzKCkKICAgICBpZiAoVU5MSUtFTFkobV91c2VzRGlzcGxheUxpc3RE
cmF3aW5nKSkgewogICAgICAgICBpZiAoIW1fcmVjb3JkaW5nQ29udGV4dCkKICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgCisKICAgICAgICAgRmxvYXRSZWN0IGNsaXAoRmxvYXRQb2ludDo6
emVybygpLCBjYW52YXMoKS5zaXplKCkpOwogICAgICAgICBEaXNwbGF5TGlzdDo6UmVwbGF5ZXIg
cmVwbGF5ZXIoKmNhbnZhcygpLmRyYXdpbmdDb250ZXh0KCksIG1fcmVjb3JkaW5nQ29udGV4dC0+
ZGlzcGxheUxpc3QpOwogCkBAIC0xOTA1LDcgKzE4OTIsNiBAQCBHcmFwaGljc0NvbnRleHQqIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd2luZ0NvbnRleHQoKSBjb25zdAogICAgIGlmIChV
TkxJS0VMWShtX3VzZXNEaXNwbGF5TGlzdERyYXdpbmcpKSB7CiAgICAgICAgIGlmICghbV9yZWNv
cmRpbmdDb250ZXh0KQogICAgICAgICAgICAgbV9yZWNvcmRpbmdDb250ZXh0ID0gc3RkOjptYWtl
X3VuaXF1ZTxEaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0PihGbG9hdFJlY3QoRmxvYXRQb2ludDo6
emVybygpLCBjYW52YXMoKS5zaXplKCkpKTsKLQogICAgICAgICByZXR1cm4gJm1fcmVjb3JkaW5n
Q29udGV4dC0+Y29udGV4dDsKICAgICB9CiAKQEAgLTE5MTQsMTIgKzE5MDAsMTAgQEAgR3JhcGhp
Y3NDb250ZXh0KiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdpbmdDb250ZXh0KCkgY29u
c3QKIAogc3RhdGljIFJlZlB0cjxJbWFnZURhdGE+IGNyZWF0ZUVtcHR5SW1hZ2VEYXRhKGNvbnN0
IEludFNpemUmIHNpemUpCiB7Ci0gICAgaWYgKFJlZlB0cjxJbWFnZURhdGE+IGRhdGEgPSBJbWFn
ZURhdGE6OmNyZWF0ZShzaXplKSkgeworICAgIGF1dG8gZGF0YSA9IEltYWdlRGF0YTo6Y3JlYXRl
KHNpemUpOworICAgIGlmIChkYXRhKQogICAgICAgICBkYXRhLT5kYXRhKCktPnplcm9GaWxsKCk7
Ci0gICAgICAgIHJldHVybiBkYXRhOwotICAgIH0KLQotICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBkYXRhOwogfQogCiBFeGNlcHRpb25PcjxSZWZQdHI8SW1hZ2VEYXRhPj4gQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhdGVJbWFnZURhdGEoSW1hZ2VEYXRhKiBpbWFnZURhdGEp
IGNvbnN0CkBAIC0yMDM4LDExICsyMDIyLDkgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OmRyYXdGb2N1c0lmTmVlZGVkKERPTVBhdGgmIHBhdGgsIEVsZW1lbnQmIGVsZW1lbnQKIAog
dm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdGb2N1c0lmTmVlZGVkSW50ZXJuYWwo
Y29uc3QgUGF0aCYgcGF0aCwgRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQgPSBkcmF3aW5nQ29udGV4dCgpOwotCisgICAgYXV0byogY29udGV4dCA9IGRy
YXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFlbGVtZW50LmZvY3VzZWQoKSB8fCAhc3RhdGUoKS5o
YXNJbnZlcnRpYmxlVHJhbnNmb3JtIHx8IHBhdGguaXNFbXB0eSgpIHx8ICFlbGVtZW50LmlzRGVz
Y2VuZGFudE9mKGNhbnZhcygpKSB8fCAhY29udGV4dCkKICAgICAgICAgcmV0dXJuOwotCiAgICAg
Y29udGV4dC0+ZHJhd0ZvY3VzUmluZyhwYXRoLCAxLCAxLCBSZW5kZXJUaGVtZTo6Zm9jdXNSaW5n
Q29sb3IoKSk7CiB9CiAKQEAgLTIyNzAsNyArMjI1Miw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp
c1NwYWNlVGhhdE5lZWRzUmVwbGFjaW5nKFVDaGFyIGMpCiBzdGF0aWMgdm9pZCBub3JtYWxpemVT
cGFjZXMoU3RyaW5nJiB0ZXh0KQogewogICAgIHNpemVfdCBpID0gdGV4dC5maW5kKGlzU3BhY2VU
aGF0TmVlZHNSZXBsYWNpbmcpOwotCiAgICAgaWYgKGkgPT0gbm90Rm91bmQpCiAgICAgICAgIHJl
dHVybjsKIApAQCAtMjMwMSwxMCArMjI4MiwxMCBAQCBSZWY8VGV4dE1ldHJpY3M+IENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6bWVhc3VyZVRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQogCiB2b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcm
IHRleHQsIGZsb2F0IHgsIGZsb2F0IHksIGJvb2wgZmlsbCwgc3RkOjpvcHRpb25hbDxmbG9hdD4g
bWF4V2lkdGgpCiB7Ci0gICAgY29uc3QgYXV0byYgZm9udFByb3h5ID0gdGhpcy0+Zm9udFByb3h5
KCk7Ci0gICAgY29uc3QgRm9udE1ldHJpY3MmIGZvbnRNZXRyaWNzID0gZm9udFByb3h5LmZvbnRN
ZXRyaWNzKCk7CisgICAgYXV0byYgZm9udFByb3h5ID0gdGhpcy0+Zm9udFByb3h5KCk7CisgICAg
Y29uc3QgYXV0byYgZm9udE1ldHJpY3MgPSBmb250UHJveHkuZm9udE1ldHJpY3MoKTsKIAotICAg
IEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRy
YXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFz
dGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCkBAIC0yMzE1LDcgKzIyOTYsNyBAQCB2b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcm
IHRleHQsIGZsb2F0IHgsIGZsbwogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZiBncmFkaWVu
dCBzaXplIGlzIHplcm8sIHRoZW4gcGFpbnQgbm90aGluZy4KLSAgICBHcmFkaWVudCogZ3JhZGll
bnQgPSBjLT5zdHJva2VHcmFkaWVudCgpOworICAgIGF1dG8qIGdyYWRpZW50ID0gYy0+c3Ryb2tl
R3JhZGllbnQoKTsKICAgICBpZiAoIWZpbGwgJiYgZ3JhZGllbnQgJiYgZ3JhZGllbnQtPmlzWmVy
b1NpemUoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMzI5LDcgKzIzMTAsNyBAQCB2b2lkIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRl
eHQsIGZsb2F0IHgsIGZsbwogICAgIC8vIEZJWE1FOiBOZWVkIHRvIHR1cm4gb2ZmIGZvbnQgc21v
b3RoaW5nLgogCiAgICAgY29uc3QgUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGU7Ci0gICAgVGV4
dERpcmVjdGlvbiBkaXJlY3Rpb24gPSB0b1RleHREaXJlY3Rpb24oc3RhdGUoKS5kaXJlY3Rpb24s
ICZjb21wdXRlZFN0eWxlKTsKKyAgICBhdXRvIGRpcmVjdGlvbiA9IHRvVGV4dERpcmVjdGlvbihz
dGF0ZSgpLmRpcmVjdGlvbiwgJmNvbXB1dGVkU3R5bGUpOwogICAgIGJvb2wgaXNSVEwgPSBkaXJl
Y3Rpb24gPT0gUlRMOwogICAgIGJvb2wgb3ZlcnJpZGUgPSBjb21wdXRlZFN0eWxlID8gaXNPdmVy
cmlkZShjb21wdXRlZFN0eWxlLT51bmljb2RlQmlkaSgpKSA6IGZhbHNlOwogCkBAIC0yMzU5LDcg
KzIzNDAsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5h
bChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0IHgsIGZsbwogICAgIGJvb2wgdXNlTWF4V2lkdGgg
PSBtYXhXaWR0aCAmJiBtYXhXaWR0aC52YWx1ZSgpIDwgZm9udFdpZHRoOwogICAgIGZsb2F0IHdp
ZHRoID0gdXNlTWF4V2lkdGggPyBtYXhXaWR0aC52YWx1ZSgpIDogZm9udFdpZHRoOwogCi0gICAg
VGV4dEFsaWduIGFsaWduID0gc3RhdGUoKS50ZXh0QWxpZ247CisgICAgYXV0byBhbGlnbiA9IHN0
YXRlKCkudGV4dEFsaWduOwogICAgIGlmIChhbGlnbiA9PSBTdGFydFRleHRBbGlnbikKICAgICAg
ICAgYWxpZ24gPSBpc1JUTCA/IFJpZ2h0VGV4dEFsaWduIDogTGVmdFRleHRBbGlnbjsKICAgICBl
bHNlIGlmIChhbGlnbiA9PSBFbmRUZXh0QWxpZ24pCkBAIC0yMzg1LDcgKzIzNjYsNiBAQCB2b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcm
IHRleHQsIGZsb2F0IHgsIGZsbwogI2lmIFVTRShDRykKICAgICBjb25zdCBDYW52YXNTdHlsZSYg
ZHJhd1N0eWxlID0gZmlsbCA/IHN0YXRlKCkuZmlsbFN0eWxlIDogc3RhdGUoKS5zdHJva2VTdHls
ZTsKICAgICBpZiAoZHJhd1N0eWxlLmNhbnZhc0dyYWRpZW50KCkgfHwgZHJhd1N0eWxlLmNhbnZh
c1BhdHRlcm4oKSkgewotCiAgICAgICAgIEludFJlY3QgbWFza1JlY3QgPSBlbmNsb3NpbmdJbnRS
ZWN0KHRleHRSZWN0KTsKIAogICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgc2hhZG93LCB3ZSBuZWVk
IHRvIGRyYXcgaXQgYmVmb3JlIHRoZSBtYXNrIG9wZXJhdGlvbi4KQEAgLTIzOTQsNyArMjM3NCw3
IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0
IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAgICAgICAgIGlmIChzaG91bGREcmF3U2hhZG93
cygpKSB7CiAgICAgICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIo
KmMpOwogCi0gICAgICAgICAgICBGbG9hdFNpemUgb2Zmc2V0ID0gRmxvYXRTaXplKDAsIDIgKiBt
YXNrUmVjdC5oZWlnaHQoKSk7CisgICAgICAgICAgICBGbG9hdFNpemUgb2Zmc2V0KDAsIDIgKiBt
YXNrUmVjdC5oZWlnaHQoKSk7CiAKICAgICAgICAgICAgIEZsb2F0U2l6ZSBzaGFkb3dPZmZzZXQ7
CiAgICAgICAgICAgICBmbG9hdCBzaGFkb3dSYWRpdXM7CkBAIC0yNDIyLDcgKzI0MDIsNyBAQCB2
b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJp
bmcmIHRleHQsIGZsb2F0IHgsIGZsbwogICAgICAgICBpZiAoIW1hc2tJbWFnZSkKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICBHcmFwaGljc0NvbnRleHQmIG1hc2tJbWFnZUNvbnRleHQg
PSBtYXNrSW1hZ2UtPmNvbnRleHQoKTsKKyAgICAgICAgYXV0byYgbWFza0ltYWdlQ29udGV4dCA9
IG1hc2tJbWFnZS0+Y29udGV4dCgpOwogCiAgICAgICAgIGlmIChmaWxsKQogICAgICAgICAgICAg
bWFza0ltYWdlQ29udGV4dC5zZXRGaWxsQ29sb3IoQ29sb3I6OmJsYWNrKTsKQEAgLTI0NDUsNyAr
MjQyNSw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFs
KGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAKICAgICAgICAgR3JhcGhpY3NDb250
ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjKTsKICAgICAgICAgYy0+Y2xpcFRvSW1hZ2VCdWZm
ZXIoKm1hc2tJbWFnZSwgbWFza1JlY3QpOwotICAgICAgICBkcmF3U3R5bGUuYXBwbHlGaWxsQ29s
b3IoYyk7CisgICAgICAgIGRyYXdTdHlsZS5hcHBseUZpbGxDb2xvcigqYyk7CiAgICAgICAgIGMt
PmZpbGxSZWN0KG1hc2tSZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI0ODcsMjcg
KzI0NjcsMjcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmluZmxhdGVTdHJva2VS
ZWN0KEZsb2F0UmVjdCYgcmVjdCkgY29uc3QKICAgICAgICAgZGVsdGEgKj0gc3RhdGUoKS5taXRl
ckxpbWl0OwogICAgIGVsc2UgaWYgKHN0YXRlKCkubGluZUNhcCA9PSBTcXVhcmVDYXApCiAgICAg
ICAgIGRlbHRhICo9IHJvb3QyOwotCiAgICAgcmVjdC5pbmZsYXRlKGRlbHRhKTsKIH0KIAogYXV0
byBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZvbnRQcm94eSgpIC0+IGNvbnN0IEZvbnRQcm94
eSYKIHsKICAgICBjYW52YXMoKS5kb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKLQog
ICAgIGlmICghc3RhdGUoKS5mb250LnJlYWxpemVkKCkpCiAgICAgICAgIHNldEZvbnQoc3RhdGUo
KS51bnBhcnNlZEZvbnQpOwogICAgIHJldHVybiBzdGF0ZSgpLmZvbnQ7CiB9CiAKICNpZiBFTkFC
TEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorCiBQbGF0Zm9ybUxheWVyKiBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewotICAgIHJldHVybiBjYW52YXMo
KS5idWZmZXIoKSA/IGNhbnZhcygpLmJ1ZmZlcigpLT5wbGF0Zm9ybUxheWVyKCkgOiAwOworICAg
IHJldHVybiBjYW52YXMoKS5idWZmZXIoKSA/IGNhbnZhcygpLmJ1ZmZlcigpLT5wbGF0Zm9ybUxh
eWVyKCkgOiBudWxscHRyOwogfQorCiAjZW5kaWYKIAotc3RhdGljIEludGVycG9sYXRpb25RdWFs
aXR5IHNtb290aGluZ1RvSW50ZXJwb2xhdGlvblF1YWxpdHkoQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpJbWFnZVNtb290aGluZ1F1YWxpdHkgcXVhbGl0eSkKK3N0YXRpYyBpbmxpbmUgSW50ZXJw
b2xhdGlvblF1YWxpdHkgc21vb3RoaW5nVG9JbnRlcnBvbGF0aW9uUXVhbGl0eShDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OkltYWdlU21vb3RoaW5nUXVhbGl0eSBxdWFsaXR5KQogewogICAgIHN3
aXRjaCAocXVhbGl0eSkgewogICAgIGNhc2UgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpJbWFn
ZVNtb290aGluZ1F1YWxpdHk6OkxvdzoKQEAgLTI1NTQsNyArMjUzNCw3IEBAIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpzZXRJbWFnZVNtb290aGluZ0VuYWJsZWQoYm9vbCBlbmFibGVk
KQogCiAgICAgcmVhbGl6ZVNhdmVzKCk7CiAgICAgbW9kaWZpYWJsZVN0YXRlKCkuaW1hZ2VTbW9v
dGhpbmdFbmFibGVkID0gZW5hYmxlZDsKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5n
Q29udGV4dCgpOworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmIChjKQog
ICAgICAgICBjLT5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KGVuYWJsZWQgPyBzbW9vdGhp
bmdUb0ludGVycG9sYXRpb25RdWFsaXR5KHN0YXRlKCkuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5KSA6
IEludGVycG9sYXRpb25Ob25lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKaW5kZXggNTRiZTlkMDBjZjU4MjNiMTZk
MTY3NjhhZGFlNTNlNWE2NTMxZTYwOS4uZTM5ZjFiNjcyODllYjk2M2I2NDc0MmU4YzQyMzRlZDEw
YzFlMjA3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmgKQEAgLTM0MCw5ICszNDAsNyBAQCBwcml2YXRlOgogICAgIC8v
IFRoZXJlZm9yZSwgYWxsIGZvbnQgb3BlcmF0aW9ucyBtdXN0IHBhc3MgdGhyb3VnaCB0aGUgU3Rh
dGUuCiAgICAgY29uc3QgRm9udFByb3h5JiBmb250UHJveHkoKTsKIAotI2lmIEVOQUJMRShEQVNI
Qk9BUkRfU1VQUE9SVCkKICAgICB2b2lkIGNsZWFyUGF0aEZvckRhc2hib2FyZEJhY2t3YXJkQ29t
cGF0aWJpbGl0eU1vZGUoKTsKLSNlbmRpZgogCiAgICAgdm9pZCBiZWdpbkNvbXBvc2l0ZUxheWVy
KCk7CiAgICAgdm9pZCBlbmRDb21wb3NpdGVMYXllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzU3R5bGUuY3BwCmluZGV4IDlhYTBhMDUyZjQ2MWFkNmIyYzVlYWM2YWZlYzMy
MzE1NjVlMDIxMzYuLjlkYzhmMDQ4ZDc2ZjhjOTJiYmEyZTE5OTZkYThkN2FkOGEyZWIzNmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqIENvcHlyaWdodCAoQykg
MjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA4IEVy
aWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CkBAIC01Myw3ICs1Myw2IEBAIHN0YXRpYyBDb2xv
ciBwYXJzZUNvbG9yKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIERvY3VtZW50KiBkb2N1bWVu
dCA9IG51bGxwdHIpCiAgICAgQ29sb3IgY29sb3IgPSBDU1NQYXJzZXI6OnBhcnNlQ29sb3IoY29s
b3JTdHJpbmcpOwogICAgIGlmIChjb2xvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBjb2xv
cjsKLQogICAgIHJldHVybiBDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3IoY29sb3JTdHJpbmcs
IGRvY3VtZW50KTsKIH0KIApAQCAtNzYsMjA4ICs3NSwxNTAgQEAgQ29sb3IgcGFyc2VDb2xvck9y
Q3VycmVudENvbG9yKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIEhUTUxDYW52YXNFbGVtZW50
KiBjYW4KIH0KIAogQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKENvbG9yIGNvbG9yKQotICAgIDog
bV9jb2xvcihjb2xvcikKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDogbV9zdHlsZShjb2xvcikK
IHsKIH0KIAogQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQg
YWxwaGEpCi0gICAgOiBtX2NvbG9yKENvbG9yKGdyYXlMZXZlbCwgZ3JheUxldmVsLCBncmF5TGV2
ZWwsIGFscGhhKSkKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDogbV9zdHlsZShDb2xvciB7IGdy
YXlMZXZlbCwgZ3JheUxldmVsLCBncmF5TGV2ZWwsIGFscGhhIH0pCiB7CiB9CiAKIENhbnZhc1N0
eWxlOjpDYW52YXNTdHlsZShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhKQotICAg
IDogbV9jb2xvcihDb2xvcihyLCBnLCBiLCBhKSkKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDog
bV9zdHlsZShDb2xvciB7IHIsIGcsIGIsIGEgfSkKIHsKIH0KIAogQ2FudmFzU3R5bGU6OkNhbnZh
c1N0eWxlKGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZsb2F0IGEpCi0gICAg
OiBtX2NteWthKG5ldyBDTVlLQVZhbHVlcyhDb2xvcihjLCBtLCB5LCBrLCBhKSwgYywgbSwgeSwg
aywgYSkpCi0gICAgLCBtX3R5cGUoQ01ZS0EpCisgICAgOiBtX3N0eWxlKENNWUtBQ29sb3IgeyBD
b2xvciB7IGMsIG0sIHksIGssIGEgfSwgYywgbSwgeSwgaywgYSB9KQogewogfQogCi1DYW52YXNT
dHlsZTo6Q2FudmFzU3R5bGUoUGFzc1JlZlB0cjxDYW52YXNHcmFkaWVudD4gZ3JhZGllbnQpCi0g
ICAgOiBtX2dyYWRpZW50KGdyYWRpZW50LmxlYWtSZWYoKSkKLSAgICAsIG1fdHlwZShHcmFkaWVu
dCkKK0NhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShDYW52YXNHcmFkaWVudCYgZ3JhZGllbnQpCisg
ICAgOiBtX3N0eWxlKG1ha2VSZWZQdHIoZ3JhZGllbnQpKQogewotICAgIGlmICghbV9ncmFkaWVu
dCkKLSAgICAgICAgbV90eXBlID0gSW52YWxpZDsKIH0KIAotQ2FudmFzU3R5bGU6OkNhbnZhc1N0
eWxlKFBhc3NSZWZQdHI8Q2FudmFzUGF0dGVybj4gcGF0dGVybikKLSAgICA6IG1fcGF0dGVybihw
YXR0ZXJuLmxlYWtSZWYoKSkKLSAgICAsIG1fdHlwZShJbWFnZVBhdHRlcm4pCitDYW52YXNTdHls
ZTo6Q2FudmFzU3R5bGUoQ2FudmFzUGF0dGVybiYgcGF0dGVybikKKyAgICA6IG1fc3R5bGUobWFr
ZVJlZlB0cihwYXR0ZXJuKSkKIHsKLSAgICBpZiAoIW1fcGF0dGVybikKLSAgICAgICAgbV90eXBl
ID0gSW52YWxpZDsKIH0KIAotQ2FudmFzU3R5bGU6On5DYW52YXNTdHlsZSgpCitpbmxpbmUgQ2Fu
dmFzU3R5bGU6OkNhbnZhc1N0eWxlKEN1cnJlbnRDb2xvciBjb2xvcikKKyAgICA6IG1fc3R5bGUo
Y29sb3IpCiB7Ci0gICAgaWYgKG1fdHlwZSA9PSBHcmFkaWVudCkKLSAgICAgICAgbV9ncmFkaWVu
dC0+ZGVyZWYoKTsKLSAgICBlbHNlIGlmIChtX3R5cGUgPT0gSW1hZ2VQYXR0ZXJuKQotICAgICAg
ICBtX3BhdHRlcm4tPmRlcmVmKCk7Ci0gICAgZWxzZSBpZiAobV90eXBlID09IENNWUtBKQotICAg
ICAgICBkZWxldGUgbV9jbXlrYTsKIH0KIAogQ2FudmFzU3R5bGUgQ2FudmFzU3R5bGU6OmNyZWF0
ZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZywgRG9jdW1lbnQqIGRvY3VtZW50
KQogewogICAgIGlmIChpc0N1cnJlbnRDb2xvclN0cmluZyhjb2xvclN0cmluZykpCi0gICAgICAg
IHJldHVybiBDYW52YXNTdHlsZShDb25zdHJ1Y3RDdXJyZW50Q29sb3IpOworICAgICAgICByZXR1
cm4gQ3VycmVudENvbG9yIHsgc3RkOjpudWxsb3B0IH07CiAKICAgICBDb2xvciBjb2xvciA9IHBh
cnNlQ29sb3IoY29sb3JTdHJpbmcsIGRvY3VtZW50KTsKLSAgICBpZiAoY29sb3IuaXNWYWxpZCgp
KQotICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUoY29sb3IpOworICAgIGlmICghY29sb3IuaXNW
YWxpZCgpKQorICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIENhbnZhc1N0eWxlKCk7
CisgICAgcmV0dXJuIGNvbG9yOwogfQogCiBDYW52YXNTdHlsZSBDYW52YXNTdHlsZTo6Y3JlYXRl
RnJvbVN0cmluZ1dpdGhPdmVycmlkZUFscGhhKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIGZs
b2F0IGFscGhhKQogewogICAgIGlmIChpc0N1cnJlbnRDb2xvclN0cmluZyhjb2xvclN0cmluZykp
Ci0gICAgICAgIHJldHVybiBDYW52YXNTdHlsZShDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBo
YSwgYWxwaGEpOworICAgICAgICByZXR1cm4gQ3VycmVudENvbG9yIHsgYWxwaGEgfTsKIAogICAg
IENvbG9yIGNvbG9yID0gcGFyc2VDb2xvcihjb2xvclN0cmluZyk7Ci0gICAgaWYgKGNvbG9yLmlz
VmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIENhbnZhc1N0eWxlKGNvbG9yV2l0aE92ZXJyaWRlQWxw
aGEoY29sb3IucmdiKCksIGFscGhhKSk7CisgICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpCisgICAg
ICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gQ2FudmFzU3R5bGUoKTsKKyAgICByZXR1cm4g
Q29sb3IgeyBjb2xvcldpdGhPdmVycmlkZUFscGhhKGNvbG9yLnJnYigpLCBhbHBoYSkgfTsKIH0K
IAogYm9vbCBDYW52YXNTdHlsZTo6aXNFcXVpdmFsZW50Q29sb3IoY29uc3QgQ2FudmFzU3R5bGUm
IG90aGVyKSBjb25zdAogewotICAgIGlmIChtX3R5cGUgIT0gb3RoZXIubV90eXBlKQotICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG1f
c3R5bGUpICYmIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG90aGVyLm1fc3R5bGUpKQor
ICAgICAgICByZXR1cm4gV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpID09IFdURjo6Z2V0PENvbG9y
PihvdGhlci5tX3N0eWxlKTsKIAotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBSR0JB
OgotICAgICAgICByZXR1cm4gbV9jb2xvciA9PSBvdGhlci5tX2NvbG9yOwotICAgIGNhc2UgQ01Z
S0E6Ci0gICAgICAgIHJldHVybiBtX2NteWthLT5jID09IG90aGVyLm1fY215a2EtPmMKLSAgICAg
ICAgICAgICYmIG1fY215a2EtPm0gPT0gb3RoZXIubV9jbXlrYS0+bQotICAgICAgICAgICAgJiYg
bV9jbXlrYS0+eSA9PSBvdGhlci5tX2NteWthLT55Ci0gICAgICAgICAgICAmJiBtX2NteWthLT5r
ID09IG90aGVyLm1fY215a2EtPmsKLSAgICAgICAgICAgICYmIG1fY215a2EtPmEgPT0gb3RoZXIu
bV9jbXlrYS0+YTsKLSAgICBjYXNlIEdyYWRpZW50OgotICAgIGNhc2UgSW1hZ2VQYXR0ZXJuOgot
ICAgIGNhc2UgQ3VycmVudENvbG9yOgotICAgIGNhc2UgQ3VycmVudENvbG9yV2l0aE92ZXJyaWRl
QWxwaGE6Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjYXNlIEludmFsaWQ6Ci0gICAgICAg
IGJyZWFrOworICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENNWUtBQ29sb3I+KG1fc3R5
bGUpICYmIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q01ZS0FDb2xvcj4ob3RoZXIubV9zdHlsZSkp
IHsKKyAgICAgICAgYXV0byYgYSA9IFdURjo6Z2V0PENNWUtBQ29sb3I+KG1fc3R5bGUpOworICAg
ICAgICBhdXRvJiBiID0gV1RGOjpnZXQ8Q01ZS0FDb2xvcj4ob3RoZXIubV9zdHlsZSk7CisgICAg
ICAgIHJldHVybiBhLmMgPT0gYi5jICYmIGEubSA9PSBiLm0gJiYgYS55ID09IGIueSAmJiBhLmsg
PT0gYi5rICYmIGEuYSA9PSBiLmE7CiAgICAgfQogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIENhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRS
R0JBKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGEpIGNvbnN0CiB7Ci0gICAgaWYg
KG1fdHlwZSAhPSBSR0JBKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9j
b2xvciA9PSBDb2xvcihyLCBnLCBiLCBhKTsKKyAgICByZXR1cm4gV1RGOjpob2xkc19hbHRlcm5h
dGl2ZTxDb2xvcj4obV9zdHlsZSkgJiYgV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpID09IENvbG9y
IHsgciwgZywgYiwgYSB9OwogfQogCiBib29sIENhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDTVlL
QShmbG9hdCBjLCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBhKSBjb25zdAogewot
ICAgIGlmIChtX3R5cGUgIT0gQ01ZS0EpCisgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZl
PENNWUtBQ29sb3I+KG1fc3R5bGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1
cm4gYyA9PSBtX2NteWthLT5jCi0gICAgICAgICYmIG0gPT0gbV9jbXlrYS0+bQotICAgICAgICAm
JiB5ID09IG1fY215a2EtPnkKLSAgICAgICAgJiYgayA9PSBtX2NteWthLT5rCi0gICAgICAgICYm
IGEgPT0gbV9jbXlrYS0+YTsKLX0KLQotQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGNvbnN0IENh
bnZhc1N0eWxlJiBvdGhlcikKLXsKLSAgICBtZW1jcHkodGhpcywgJm90aGVyLCBzaXplb2YoQ2Fu
dmFzU3R5bGUpKTsKLSAgICBpZiAobV90eXBlID09IEdyYWRpZW50KQotICAgICAgICBtX2dyYWRp
ZW50LT5yZWYoKTsKLSAgICBlbHNlIGlmIChtX3R5cGUgPT0gSW1hZ2VQYXR0ZXJuKQotICAgICAg
ICBtX3BhdHRlcm4tPnJlZigpOwotICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBDTVlLQSkKLSAgICAg
ICAgbV9jbXlrYSA9IG5ldyBDTVlLQVZhbHVlcyhvdGhlci5tX2NteWthLT5jb2xvciwgb3RoZXIu
bV9jbXlrYS0+Yywgb3RoZXIubV9jbXlrYS0+bSwgb3RoZXIubV9jbXlrYS0+eSwgb3RoZXIubV9j
bXlrYS0+aywgb3RoZXIubV9jbXlrYS0+YSk7Ci19Ci0KLUNhbnZhc1N0eWxlJiBDYW52YXNTdHls
ZTo6b3BlcmF0b3I9KGNvbnN0IENhbnZhc1N0eWxlJiBvdGhlcikKLXsKLSAgICBpZiAodGhpcyAh
PSAmb3RoZXIpIHsKLSAgICAgICAgdGhpcy0+fkNhbnZhc1N0eWxlKCk7Ci0gICAgICAgIG5ldyAo
dGhpcykgQ2FudmFzU3R5bGUob3RoZXIpOwotICAgIH0KLSAgICByZXR1cm4gKnRoaXM7CisgICAg
YXV0byYgY2hhbm5lbHMgPSBXVEY6OmdldDxDTVlLQUNvbG9yPihtX3N0eWxlKTsKKyAgICByZXR1
cm4gYyA9PSBjaGFubmVscy5jICYmIG0gPT0gY2hhbm5lbHMubSAmJiB5ID09IGNoYW5uZWxzLnkg
JiYgayA9PSBjaGFubmVscy5rICYmIGEgPT0gY2hhbm5lbHMuYTsKIH0KIAotdm9pZCBDYW52YXNT
dHlsZTo6YXBwbHlTdHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpIGNvbnN0Cit2
b2lkIENhbnZhc1N0eWxlOjphcHBseVN0cm9rZUNvbG9yKEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCkgY29uc3QKIHsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICBzd2l0
Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgUkdCQToKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tl
Q29sb3IobV9jb2xvcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ01ZS0E6IHsKLSAgICAg
ICAgLy8gRklYTUU6IERvIHRoaXMgdGhyb3VnaCBwbGF0Zm9ybS1pbmRlcGVuZGVudCBHcmFwaGlj
c0NvbnRleHQgQVBJLgotICAgICAgICAvLyBXZSdsbCBuZWVkIGEgZmFuY2llciBDb2xvciBhYnN0
cmFjdGlvbiB0byBzdXBwb3J0IENNWUtBIGNvcnJlY3RseQorICAgIFdURjo6c3dpdGNoT24obV9z
dHlsZSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgQ29sb3ImIGNvbG9yKSB7CisgICAgICAg
ICAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9yKTsKKyAgICAgICAgfSwKKyAgICAgICAg
WyZjb250ZXh0XSAoY29uc3QgQ01ZS0FDb2xvciYgY29sb3IpIHsKKyAgICAgICAgICAgIC8vIEZJ
WE1FOiBEbyB0aGlzIHRocm91Z2ggcGxhdGZvcm0taW5kZXBlbmRlbnQgR3JhcGhpY3NDb250ZXh0
IEFQSS4KKyAgICAgICAgICAgIC8vIFdlJ2xsIG5lZWQgYSBmYW5jaWVyIENvbG9yIGFic3RyYWN0
aW9uIHRvIHN1cHBvcnQgQ01ZS0EgY29ycmVjdGx5CiAjaWYgVVNFKENHKQotICAgICAgICBDR0Nv
bnRleHRTZXRDTVlLU3Ryb2tlQ29sb3IoY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIG1fY215
a2EtPmMsIG1fY215a2EtPm0sIG1fY215a2EtPnksIG1fY215a2EtPmssIG1fY215a2EtPmEpOwor
ICAgICAgICAgICAgQ0dDb250ZXh0U2V0Q01ZS1N0cm9rZUNvbG9yKGNvbnRleHQucGxhdGZvcm1D
b250ZXh0KCksIGNvbG9yLmMsIGNvbG9yLm0sIGNvbG9yLnksIGNvbG9yLmssIGNvbG9yLmEpOwog
I2Vsc2UKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3IobV9jbXlrYS0+Y29sb3IpOwor
ICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihjb2xvci5jb2xvcik7CiAjZW5kaWYK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgR3JhZGllbnQ6Ci0gICAgICAgIGNvbnRl
eHQtPnNldFN0cm9rZUdyYWRpZW50KGNhbnZhc0dyYWRpZW50KCktPmdyYWRpZW50KCkpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEltYWdlUGF0dGVybjoKLSAgICAgICAgY29udGV4dC0+c2V0
U3Ryb2tlUGF0dGVybihjYW52YXNQYXR0ZXJuKCktPnBhdHRlcm4oKSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgQ3VycmVudENvbG9yOgotICAgIGNhc2UgQ3VycmVudENvbG9yV2l0aE92ZXJy
aWRlQWxwaGE6Ci0gICAgY2FzZSBJbnZhbGlkOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi12b2lkIENhbnZhc1N0eWxlOjphcHBseUZp
bGxDb2xvcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpIGNvbnN0Ci17Ci0gICAgaWYgKCFjb250
ZXh0KQotICAgICAgICByZXR1cm47Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFJH
QkE6Ci0gICAgICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihtX2NvbG9yKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBDTVlLQTogewotICAgICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdo
IHBsYXRmb3JtLWluZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCi0gICAgICAgIC8vIFdl
J2xsIG5lZWQgYSBmYW5jaWVyIENvbG9yIGFic3RyYWN0aW9uIHRvIHN1cHBvcnQgQ01ZS0EgY29y
cmVjdGx5CisgICAgICAgIH0sCisgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IFJlZlB0cjxDYW52
YXNHcmFkaWVudD4mIGdyYWRpZW50KSB7CisgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZUdy
YWRpZW50KGdyYWRpZW50LT5ncmFkaWVudCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250
ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZhc1BhdHRlcm4+JiBwYXR0ZXJuKSB7CisgICAgICAgICAg
ICBjb250ZXh0LnNldFN0cm9rZVBhdHRlcm4ocGF0dGVybi0+cGF0dGVybigpKTsKKyAgICAgICAg
fSwKKyAgICAgICAgW10gKGNvbnN0IEN1cnJlbnRDb2xvciYpIHsKKyAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9LAorICAgICAgICBbXSAoY29uc3QgSW52YWxpZCYp
IHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgKTsK
K30KKwordm9pZCBDYW52YXNTdHlsZTo6YXBwbHlGaWxsQ29sb3IoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0KSBjb25zdAoreworICAgIFdURjo6c3dpdGNoT24obV9zdHlsZSwKKyAgICAgICAgWyZj
b250ZXh0XSAoY29uc3QgQ29sb3ImIGNvbG9yKSB7CisgICAgICAgICAgICBjb250ZXh0LnNldEZp
bGxDb2xvcihjb2xvcik7CisgICAgICAgIH0sCisgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IENN
WUtBQ29sb3ImIGNvbG9yKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdo
IHBsYXRmb3JtLWluZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCisgICAgICAgICAgICAv
LyBXZSdsbCBuZWVkIGEgZmFuY2llciBDb2xvciBhYnN0cmFjdGlvbiB0byBzdXBwb3J0IENNWUtB
IGNvcnJlY3RseQogI2lmIFVTRShDRykKLSAgICAgICAgQ0dDb250ZXh0U2V0Q01ZS0ZpbGxDb2xv
cihjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgbV9jbXlrYS0+YywgbV9jbXlrYS0+bSwgbV9j
bXlrYS0+eSwgbV9jbXlrYS0+aywgbV9jbXlrYS0+YSk7CisgICAgICAgICAgICBDR0NvbnRleHRT
ZXRDTVlLRmlsbENvbG9yKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIGNvbG9yLmMsIGNvbG9y
Lm0sIGNvbG9yLnksIGNvbG9yLmssIGNvbG9yLmEpOwogI2Vsc2UKLSAgICAgICAgY29udGV4dC0+
c2V0RmlsbENvbG9yKG1fY215a2EtPmNvbG9yKTsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0Rmls
bENvbG9yKGNvbG9yLmNvbG9yKTsKICNlbmRpZgotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAg
Y2FzZSBHcmFkaWVudDoKLSAgICAgICAgY29udGV4dC0+c2V0RmlsbEdyYWRpZW50KGNhbnZhc0dy
YWRpZW50KCktPmdyYWRpZW50KCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEltYWdlUGF0
dGVybjoKLSAgICAgICAgY29udGV4dC0+c2V0RmlsbFBhdHRlcm4oY2FudmFzUGF0dGVybigpLT5w
YXR0ZXJuKCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEN1cnJlbnRDb2xvcjoKLSAgICBj
YXNlIEN1cnJlbnRDb2xvcldpdGhPdmVycmlkZUFscGhhOgotICAgIGNhc2UgSW52YWxpZDoKLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICAg
ICAgfSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZhc0dyYWRpZW50PiYg
Z3JhZGllbnQpIHsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbEdyYWRpZW50KGdyYWRpZW50
LT5ncmFkaWVudCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgUmVm
UHRyPENhbnZhc1BhdHRlcm4+JiBwYXR0ZXJuKSB7CisgICAgICAgICAgICBjb250ZXh0LnNldEZp
bGxQYXR0ZXJuKHBhdHRlcm4tPnBhdHRlcm4oKSk7CisgICAgICAgIH0sCisgICAgICAgIFtdIChj
b25zdCBDdXJyZW50Q29sb3ImKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgfSwKKyAgICAgICAgW10gKGNvbnN0IEludmFsaWQmKSB7CisgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgICk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oCmluZGV4IGI2YmY0N2M0MDNjM2Q5ZTk1NjA1
NjkxNGEwNGJiYzMwYTBhYWJhMmIuLmQ3ODAzMGFjOWVmMDY3OTgxZWNhMGU4ZWRlNmQ0YjcyNDg2
ZjViY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgsIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApA
QCAtMjYsMTM1ICsyNiwxMDAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDYW52YXNH
cmFkaWVudC5oIgorI2luY2x1ZGUgIkNhbnZhc1BhdHRlcm4uaCIKICNpbmNsdWRlICJDb2xvci5o
IgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci0gICAgY2xhc3MgQ2FudmFzR3JhZGllbnQ7Ci0gICAgY2xhc3MgQ2FudmFzUGF0dGVybjsKLSAg
ICBjbGFzcyBEb2N1bWVudDsKLSAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7Ci0gICAgY2xhc3Mg
SFRNTENhbnZhc0VsZW1lbnQ7Ci0KLSAgICBjbGFzcyBDYW52YXNTdHlsZSB7Ci0gICAgcHVibGlj
OgotICAgICAgICBDYW52YXNTdHlsZSgpOwotICAgICAgICBleHBsaWNpdCBDYW52YXNTdHlsZShD
b2xvcik7Ci0gICAgICAgIENhbnZhc1N0eWxlKGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQgYWxwaGEp
OwotICAgICAgICBDYW52YXNTdHlsZShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBh
bHBoYSk7Ci0gICAgICAgIENhbnZhc1N0eWxlKGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZs
b2F0IGssIGZsb2F0IGFscGhhKTsKLSAgICAgICAgZXhwbGljaXQgQ2FudmFzU3R5bGUoUGFzc1Jl
ZlB0cjxDYW52YXNHcmFkaWVudD4pOwotICAgICAgICBleHBsaWNpdCBDYW52YXNTdHlsZShQYXNz
UmVmUHRyPENhbnZhc1BhdHRlcm4+KTsKLSAgICAgICAgfkNhbnZhc1N0eWxlKCk7Ci0KLSAgICAg
ICAgc3RhdGljIENhbnZhc1N0eWxlIGNyZWF0ZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBjb2xv
ciwgRG9jdW1lbnQqID0gMCk7Ci0gICAgICAgIHN0YXRpYyBDYW52YXNTdHlsZSBjcmVhdGVGcm9t
U3RyaW5nV2l0aE92ZXJyaWRlQWxwaGEoY29uc3QgU3RyaW5nJiBjb2xvciwgZmxvYXQgYWxwaGEp
OwotCi0gICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSAhPSBJbnZh
bGlkOyB9Ci0gICAgICAgIGJvb2wgaXNDdXJyZW50Q29sb3IoKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gQ3VycmVudENvbG9yIHx8IG1fdHlwZSA9PSBDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVB
bHBoYTsgfQotICAgICAgICBib29sIGhhc092ZXJyaWRlQWxwaGEoKSBjb25zdCB7IHJldHVybiBt
X3R5cGUgPT0gQ3VycmVudENvbG9yV2l0aE92ZXJyaWRlQWxwaGE7IH0KLSAgICAgICAgZmxvYXQg
b3ZlcnJpZGVBbHBoYSgpIGNvbnN0IHsgQVNTRVJUKG1fdHlwZSA9PSBDdXJyZW50Q29sb3JXaXRo
T3ZlcnJpZGVBbHBoYSk7IHJldHVybiBtX292ZXJyaWRlQWxwaGE7IH0KLQotICAgICAgICBTdHJp
bmcgY29sb3IoKSBjb25zdDsKLSAgICAgICAgQ2FudmFzR3JhZGllbnQqIGNhbnZhc0dyYWRpZW50
KCkgY29uc3Q7Ci0gICAgICAgIENhbnZhc1BhdHRlcm4qIGNhbnZhc1BhdHRlcm4oKSBjb25zdDsK
LQotICAgICAgICB2b2lkIGFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29udGV4dCopIGNvbnN0Owot
ICAgICAgICB2b2lkIGFwcGx5U3Ryb2tlQ29sb3IoR3JhcGhpY3NDb250ZXh0KikgY29uc3Q7Ci0K
LSAgICAgICAgYm9vbCBpc0VxdWl2YWxlbnRDb2xvcihjb25zdCBDYW52YXNTdHlsZSYpIGNvbnN0
OwotICAgICAgICBib29sIGlzRXF1aXZhbGVudFJHQkEoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQg
YiwgZmxvYXQgYSkgY29uc3Q7Ci0gICAgICAgIGJvb2wgaXNFcXVpdmFsZW50Q01ZS0EoZmxvYXQg
YywgZmxvYXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYSkgY29uc3Q7Ci0KLSAgICAgICAg
Q2FudmFzU3R5bGUoY29uc3QgQ2FudmFzU3R5bGUmKTsKLSAgICAgICAgQ2FudmFzU3R5bGUmIG9w
ZXJhdG9yPShjb25zdCBDYW52YXNTdHlsZSYpOwotICAgICAgICBDYW52YXNTdHlsZShDYW52YXNT
dHlsZSYmKTsKLSAgICAgICAgQ2FudmFzU3R5bGUmIG9wZXJhdG9yPShDYW52YXNTdHlsZSYmKTsK
LQotICAgIHByaXZhdGU6Ci0gICAgICAgIGVudW0gVHlwZSB7IFJHQkEsIENNWUtBLCBHcmFkaWVu
dCwgSW1hZ2VQYXR0ZXJuLCBDdXJyZW50Q29sb3IsIEN1cnJlbnRDb2xvcldpdGhPdmVycmlkZUFs
cGhhLCBJbnZhbGlkIH07Ci0gICAgICAgIHN0cnVjdCBDTVlLQVZhbHVlcyB7Ci0gICAgICAgICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICAgICAgICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKENNWUtBVmFsdWVzKTsKLSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgQ01ZS0FWYWx1
ZXMoKQotICAgICAgICAgICAgICAgIDogY29sb3IoKSwgYygwKSwgbSgwKSwgeSgwKSwgaygwKSwg
YSgwKQotICAgICAgICAgICAgeyB9Ci0KLSAgICAgICAgICAgIENNWUtBVmFsdWVzKENvbG9yIGNv
bG9yLCBmbG9hdCBjeWFuLCBmbG9hdCBtYWdlbnRhLCBmbG9hdCB5ZWxsb3csIGZsb2F0IGJsYWNr
LCBmbG9hdCBhbHBoYSkKLSAgICAgICAgICAgICAgICA6IGNvbG9yKGNvbG9yKSwgYyhjeWFuKSwg
bShtYWdlbnRhKSwgeSh5ZWxsb3cpLCBrKGJsYWNrKSwgYShhbHBoYSkKLSAgICAgICAgICAgIHsg
fQotICAgICAgICAgICAgQ29sb3IgY29sb3I7Ci0gICAgICAgICAgICBmbG9hdCBjOwotICAgICAg
ICAgICAgZmxvYXQgbTsKLSAgICAgICAgICAgIGZsb2F0IHk7Ci0gICAgICAgICAgICBmbG9hdCBr
OwotICAgICAgICAgICAgZmxvYXQgYTsKLSAgICAgICAgfTsKLQotICAgICAgICBlbnVtIENvbnN0
cnVjdEN1cnJlbnRDb2xvclRhZyB7IENvbnN0cnVjdEN1cnJlbnRDb2xvciB9OwotICAgICAgICBD
YW52YXNTdHlsZShDb25zdHJ1Y3RDdXJyZW50Q29sb3JUYWcpIDogbV90eXBlKEN1cnJlbnRDb2xv
cikgeyB9Ci0gICAgICAgIENhbnZhc1N0eWxlKFR5cGUgdHlwZSwgZmxvYXQgb3ZlcnJpZGVBbHBo
YSkKLSAgICAgICAgICAgIDogbV9vdmVycmlkZUFscGhhKG92ZXJyaWRlQWxwaGEpCi0gICAgICAg
ICAgICAsIG1fdHlwZSh0eXBlKQorY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBHcmFwaGljc0NvbnRl
eHQ7CitjbGFzcyBIVE1MQ2FudmFzRWxlbWVudDsKKworY2xhc3MgQ2FudmFzU3R5bGUgeworcHVi
bGljOgorICAgIENhbnZhc1N0eWxlKCk7CisgICAgQ2FudmFzU3R5bGUoQ29sb3IpOworICAgIENh
bnZhc1N0eWxlKGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQgYWxwaGEpOworICAgIENhbnZhc1N0eWxl
KGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGFscGhhKTsKKyAgICBDYW52YXNTdHls
ZShmbG9hdCBjLCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBhbHBoYSk7CisgICAg
Q2FudmFzU3R5bGUoQ2FudmFzR3JhZGllbnQmKTsKKyAgICBDYW52YXNTdHlsZShDYW52YXNQYXR0
ZXJuJik7CisKKyAgICBzdGF0aWMgQ2FudmFzU3R5bGUgY3JlYXRlRnJvbVN0cmluZyhjb25zdCBT
dHJpbmcmIGNvbG9yLCBEb2N1bWVudCogPSBudWxscHRyKTsKKyAgICBzdGF0aWMgQ2FudmFzU3R5
bGUgY3JlYXRlRnJvbVN0cmluZ1dpdGhPdmVycmlkZUFscGhhKGNvbnN0IFN0cmluZyYgY29sb3Is
IGZsb2F0IGFscGhhKTsKKworICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuICFXVEY6
OmhvbGRzX2FsdGVybmF0aXZlPEludmFsaWQ+KG1fc3R5bGUpOyB9CisgICAgYm9vbCBpc0N1cnJl
bnRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q3VycmVudENv
bG9yPihtX3N0eWxlKTsgfQorICAgIGJvb2wgaGFzT3ZlcnJpZGVBbHBoYSgpIGNvbnN0IHsgcmV0
dXJuIGlzQ3VycmVudENvbG9yKCkgJiYgV1RGOjpnZXQ8Q3VycmVudENvbG9yPihtX3N0eWxlKS5v
dmVycmlkZUFscGhhOyB9CisgICAgZmxvYXQgb3ZlcnJpZGVBbHBoYSgpIGNvbnN0IHsgcmV0dXJu
IFdURjo6Z2V0PEN1cnJlbnRDb2xvcj4obV9zdHlsZSkub3ZlcnJpZGVBbHBoYS52YWx1ZSgpOyB9
CisKKyAgICBTdHJpbmcgY29sb3IoKSBjb25zdDsKKyAgICBDYW52YXNHcmFkaWVudCogY2FudmFz
R3JhZGllbnQoKSBjb25zdDsKKyAgICBDYW52YXNQYXR0ZXJuKiBjYW52YXNQYXR0ZXJuKCkgY29u
c3Q7CisKKyAgICB2b2lkIGFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Owor
ICAgIHZvaWQgYXBwbHlTdHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKworICAg
IGJvb2wgaXNFcXVpdmFsZW50Q29sb3IoY29uc3QgQ2FudmFzU3R5bGUmKSBjb25zdDsKKyAgICBi
b29sIGlzRXF1aXZhbGVudFJHQkEoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwg
ZmxvYXQgYWxwaGEpIGNvbnN0OworICAgIGJvb2wgaXNFcXVpdmFsZW50Q01ZS0EoZmxvYXQgY3lh
biwgZmxvYXQgbWFnZW50YSwgZmxvYXQgeWVsbG93LCBmbG9hdCBibGFjaywgZmxvYXQgYWxwaGEp
IGNvbnN0OworCitwcml2YXRlOgorICAgIHN0cnVjdCBJbnZhbGlkIHsgfTsKKworICAgIHN0cnVj
dCBDTVlLQUNvbG9yIHsKKyAgICAgICAgQ01ZS0FDb2xvcigpID0gZGVmYXVsdDsKKworICAgICAg
ICBDTVlLQUNvbG9yKENvbG9yIGNvbG9yLCBmbG9hdCBjeWFuLCBmbG9hdCBtYWdlbnRhLCBmbG9h
dCB5ZWxsb3csIGZsb2F0IGJsYWNrLCBmbG9hdCBhbHBoYSkKKyAgICAgICAgICAgIDogY29sb3Io
Y29sb3IpLCBjKGN5YW4pLCBtKG1hZ2VudGEpLCB5KHllbGxvdyksIGsoYmxhY2spLCBhKGFscGhh
KQogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICB1bmlvbiB7Ci0gICAgICAgICAgICBD
b2xvciBtX2NvbG9yOwotICAgICAgICAgICAgZmxvYXQgbV9vdmVycmlkZUFscGhhOwotICAgICAg
ICAgICAgQ2FudmFzR3JhZGllbnQqIG1fZ3JhZGllbnQ7Ci0gICAgICAgICAgICBDYW52YXNQYXR0
ZXJuKiBtX3BhdHRlcm47Ci0gICAgICAgICAgICBDTVlLQVZhbHVlcyogbV9jbXlrYTsKLSAgICAg
ICAgfTsKLSAgICAgICAgVHlwZSBtX3R5cGU7CisgICAgICAgIENvbG9yIGNvbG9yOworICAgICAg
ICBmbG9hdCBjIHsgMCB9OworICAgICAgICBmbG9hdCBtIHsgMCB9OworICAgICAgICBmbG9hdCB5
IHsgMCB9OworICAgICAgICBmbG9hdCBrIHsgMCB9OworICAgICAgICBmbG9hdCBhIHsgMCB9Owog
ICAgIH07CiAKLSAgICBDb2xvciBjdXJyZW50Q29sb3IoSFRNTENhbnZhc0VsZW1lbnQqKTsKLSAg
ICBDb2xvciBwYXJzZUNvbG9yT3JDdXJyZW50Q29sb3IoY29uc3QgU3RyaW5nJiBjb2xvclN0cmlu
ZywgSFRNTENhbnZhc0VsZW1lbnQqKTsKLQotICAgIGlubGluZSBDYW52YXNTdHlsZTo6Q2FudmFz
U3R5bGUoKQotICAgICAgICA6IG1fdHlwZShJbnZhbGlkKQotICAgIHsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgQ2FudmFzR3JhZGllbnQqIENhbnZhc1N0eWxlOjpjYW52YXNHcmFkaWVudCgpIGNvbnN0
Ci0gICAgewotICAgICAgICBpZiAobV90eXBlID09IEdyYWRpZW50KQotICAgICAgICAgICAgcmV0
dXJuIG1fZ3JhZGllbnQ7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGlubGluZSBD
YW52YXNQYXR0ZXJuKiBDYW52YXNTdHlsZTo6Y2FudmFzUGF0dGVybigpIGNvbnN0Ci0gICAgewot
ICAgICAgICBpZiAobV90eXBlID09IEltYWdlUGF0dGVybikKLSAgICAgICAgICAgIHJldHVybiBt
X3BhdHRlcm47Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGlubGluZSBTdHJpbmcg
Q2FudmFzU3R5bGU6OmNvbG9yKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUg
PT0gUkdCQSB8fCBtX3R5cGUgPT0gQ01ZS0EpOwotICAgICAgICBpZiAobV90eXBlID09IFJHQkEp
Ci0gICAgICAgICAgICByZXR1cm4gbV9jb2xvci5zZXJpYWxpemVkKCk7Ci0gICAgICAgIHJldHVy
biBtX2NteWthLT5jb2xvci5zZXJpYWxpemVkKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIENhbnZh
c1N0eWxlOjpDYW52YXNTdHlsZShDYW52YXNTdHlsZSYmIG90aGVyKQotICAgIHsKLSAgICAgICAg
bWVtY3B5KHRoaXMsICZvdGhlciwgc2l6ZW9mKENhbnZhc1N0eWxlKSk7Ci0gICAgICAgIG90aGVy
Lm1fdHlwZSA9IEludmFsaWQ7Ci0gICAgfQotCi0gICAgaW5saW5lIENhbnZhc1N0eWxlJiBDYW52
YXNTdHlsZTo6b3BlcmF0b3I9KENhbnZhc1N0eWxlJiYgb3RoZXIpCi0gICAgewotICAgICAgICBp
ZiAodGhpcyAhPSAmb3RoZXIpIHsKLSAgICAgICAgICAgIG1lbWNweSh0aGlzLCAmb3RoZXIsIHNp
emVvZihDYW52YXNTdHlsZSkpOwotICAgICAgICAgICAgb3RoZXIubV90eXBlID0gSW52YWxpZDsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQorICAgIHN0cnVjdCBDdXJy
ZW50Q29sb3IgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBvdmVycmlkZUFscGhhOwor
ICAgIH07CisKKyAgICBDYW52YXNTdHlsZShDdXJyZW50Q29sb3IpOworCisgICAgVmFyaWFudDxJ
bnZhbGlkLCBDb2xvciwgQ01ZS0FDb2xvciwgUmVmUHRyPENhbnZhc0dyYWRpZW50PiwgUmVmUHRy
PENhbnZhc1BhdHRlcm4+LCBDdXJyZW50Q29sb3I+IG1fc3R5bGU7Cit9OworCitDb2xvciBjdXJy
ZW50Q29sb3IoSFRNTENhbnZhc0VsZW1lbnQqKTsKK0NvbG9yIHBhcnNlQ29sb3JPckN1cnJlbnRD
b2xvcihjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBIVE1MQ2FudmFzRWxlbWVudCopOworCitp
bmxpbmUgQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKCkKKyAgICA6IG1fc3R5bGUoSW52YWxpZCB7
IH0pCit7Cit9CisKK2lubGluZSBDYW52YXNHcmFkaWVudCogQ2FudmFzU3R5bGU6OmNhbnZhc0dy
YWRpZW50KCkgY29uc3QKK3sKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmUHRy
PENhbnZhc0dyYWRpZW50Pj4obV9zdHlsZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBXVEY6OmdldDxSZWZQdHI8Q2FudmFzR3JhZGllbnQ+PihtX3N0eWxlKS5nZXQoKTsK
K30KKworaW5saW5lIENhbnZhc1BhdHRlcm4qIENhbnZhc1N0eWxlOjpjYW52YXNQYXR0ZXJuKCkg
Y29uc3QKK3sKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmUHRyPENhbnZhc1Bh
dHRlcm4+PihtX3N0eWxlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFdU
Rjo6Z2V0PFJlZlB0cjxDYW52YXNQYXR0ZXJuPj4obV9zdHlsZSkuZ2V0KCk7Cit9CisKK2lubGlu
ZSBTdHJpbmcgQ2FudmFzU3R5bGU6OmNvbG9yKCkgY29uc3QKK3sKKyAgICBhdXRvJiBjb2xvciA9
IFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG1fc3R5bGUpID8gV1RGOjpnZXQ8Q29sb3I+
KG1fc3R5bGUpIDogV1RGOjpnZXQ8Q01ZS0FDb2xvcj4obV9zdHlsZSkuY29sb3I7CisgICAgcmV0
dXJuIGNvbG9yLnNlcmlhbGl6ZWQoKTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3Bw
CmluZGV4IGM4YjEwZjdiZmJjNjgxZDhhYTg1OTU5YTNmMWUyN2Q2Mzc4ZTY5YWUuLjExMWJjM2Jl
NjZjNDQ4Nzg2M2JiYjRjNjljMTRlZGNhZjMwMTkwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKQEAgLTI0LDExICsyNCwx
MCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJPRVNWZXJ0ZXhBcnJh
eU9iamVjdC5oIgogCiAjaWYgRU5BQkxFKFdFQkdMKQogCi0jaW5jbHVkZSAiT0VTVmVydGV4QXJy
YXlPYmplY3QuaCIKLQogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgogI2luY2x1ZGUgIldlYkdM
UmVuZGVyaW5nQ29udGV4dC5oIgogCkBAIC00OSw4ICs0OCw4IEBAIFJlZlB0cjxXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTPiBPRVNWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlVmVydGV4QXJyYXlP
RVMoKQogICAgIGlmIChtX2NvbnRleHQuaXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIGF1dG8gb2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6
Y3JlYXRlKG1fY29udGV4dCwgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6VkFPVHlwZVVzZXIp
OwotICAgIG1fY29udGV4dC5hZGRDb250ZXh0T2JqZWN0KG9iamVjdC5wdHIoKSk7CisgICAgYXV0
byBvYmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUobV9jb250ZXh0LCBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpUeXBlOjpVc2VyKTsKKyAgICBtX2NvbnRleHQuYWRk
Q29udGV4dE9iamVjdChvYmplY3QuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKG9iamVjdCk7
CiB9CiAKQEAgLTU4LDkgKzU3LDkgQEAgdm9pZCBPRVNWZXJ0ZXhBcnJheU9iamVjdDo6ZGVsZXRl
VmVydGV4QXJyYXlPRVMoV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyogYXJyYXkKIHsKICAgICBp
ZiAoIWFycmF5T2JqZWN0IHx8IG1fY29udGV4dC5pc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICAKLSAgICBpZiAoIWFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3QoKSAmJiBh
cnJheU9iamVjdCA9PSBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQqPigmbV9jb250
ZXh0KS0+bV9ib3VuZFZlcnRleEFycmF5T2JqZWN0KQotICAgICAgICBzdGF0aWNfY2FzdDxXZWJH
TFJlbmRlcmluZ0NvbnRleHQqPigmbV9jb250ZXh0KS0+c2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVj
dCgwKTsKKworICAgIGlmICghYXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpICYmIGFycmF5
T2JqZWN0ID09IHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCY+KG1fY29udGV4dCku
bV9ib3VuZFZlcnRleEFycmF5T2JqZWN0KQorICAgICAgICBzdGF0aWNfY2FzdDxXZWJHTFJlbmRl
cmluZ0NvbnRleHQmPihtX2NvbnRleHQpLnNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QobnVsbHB0
cik7CiAKICAgICBhcnJheU9iamVjdC0+ZGVsZXRlT2JqZWN0KG1fY29udGV4dC5ncmFwaGljc0Nv
bnRleHQzRCgpKTsKIH0KQEAgLTg5LDcgKzg4LDcgQEAgdm9pZCBPRVNWZXJ0ZXhBcnJheU9iamVj
dDo6YmluZFZlcnRleEFycmF5T0VTKFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMqIGFycmF5T2IK
ICAgICAgICAgY29udGV4dC5zZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KGFycmF5T2JqZWN0KTsK
ICAgICB9IGVsc2UgewogICAgICAgICBleHRlbnNpb25zLmJpbmRWZXJ0ZXhBcnJheU9FUygwKTsK
LSAgICAgICAgY29udGV4dC5zZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KDApOworICAgICAgICBj
b250ZXh0LnNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QobnVsbHB0cik7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRl
eHQuY3BwCmluZGV4IDQ4MGEwY2E5NWI1MTgzMTIzODBjOWNlZmI4NDQ4ZjI1OTEwODE4MTcuLjc5
YzEzYzJmNmQzZGQyYzZjZTUwN2IxYzFhNWZmNTA2ZDhmZGNiZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDEw
ICsyNCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShXRUJH
TCkgJiYgRU5BQkxFKFdFQkdMMikKICNpbmNsdWRlICJXZWJHTDJSZW5kZXJpbmdDb250ZXh0Lmgi
CiAKKyNpZiBFTkFCTEUoV0VCR0wyKQorCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNs
dWRlICJFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCIKICNpbmNsdWRlICJFeHRlbnNpb25z
M0QuaCIKQEAgLTYzLDcgKzYzLDcgQEAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6V2ViR0wyUmVu
ZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLAogewogfQogCi1X
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNF
bGVtZW50JiBwYXNzZWRDYW52YXMsIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4mJiBjb250ZXh0
LCBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcykKK1dlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3Nl
ZENhbnZhcywgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4
dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIDogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZShwYXNzZWRDYW52YXMsIFdURk1vdmUoY29udGV4dCksIGF0dHJpYnV0ZXMpCiB7CiAgICAgaW5p
dGlhbGl6ZVNoYWRlckV4dGVuc2lvbnMoKTsKQEAgLTcyLDggKzcyLDggQEAgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFz
c2VkQ2FudmFzLAogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVWZXJ0
ZXhBcnJheU9iamVjdHMoKQogewotICAgIG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0ID0gV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlKCp0aGlzLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0
OjpWQU9UeXBlRGVmYXVsdCk7Ci0gICAgYWRkQ29udGV4dE9iamVjdChtX2RlZmF1bHRWZXJ0ZXhB
cnJheU9iamVjdC5nZXQoKSk7CisgICAgbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QgPSBXZWJH
TFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6
OlR5cGU6OkRlZmF1bHQpOworICAgIGFkZENvbnRleHRPYmplY3QoKm1fZGVmYXVsdFZlcnRleEFy
cmF5T2JqZWN0KTsKICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBtX2RlZmF1bHRWZXJ0
ZXhBcnJheU9iamVjdDsKICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSkKICAgICAgICAgaW5p
dFZlcnRleEF0dHJpYjAoKTsKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmNvcHlCdWZmZXJTdWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVt
IHdyaQogICAgIH0KIAogICAgIG1fY29udGV4dC0+bW92ZUVycm9yc1RvU3ludGhldGljRXJyb3JM
aXN0KCk7Ci0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgbV9jb250ZXh0LT5jb3B5QnVmZmVyU3ViRGF0YShyZWFkVGFyZ2V0LCB3cml0
ZVRhcmdldCwgY2hlY2tlZFJlYWRPZmZzZXQudW5zYWZlR2V0KCksIGNoZWNrZWRXcml0ZU9mZnNl
dC51bnNhZmVHZXQoKSwgY2hlY2tlZFNpemUudW5zYWZlR2V0KCkpOwogI2VuZGlmCiAgICAgaWYg
KG1fY29udGV4dC0+bW92ZUVycm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCkpIHsKQEAgLTI3Miw3
ICsyNzIsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEJ1ZmZlclN1YkRhdGEo
R0MzRGVudW0gdGFyZ2V0LCBsb25nIGxvbmcgc3JjQnl0ZQogICAgIH0KIAogICAgIG1fY29udGV4
dC0+bW92ZUVycm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCk7Ci0jaWYgUExBVEZPUk0oTUFDKSB8
fCBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gRklYTUU6IENvYWxl
c2NlIG11bHRpcGxlIGdldEJ1ZmZlclN1YkRhdGEoKSBjYWxscyB0byB1c2UgYSBzaW5nbGUgbWFw
KCkgY2FsbAogICAgIHZvaWQqIHB0ciA9IG1fY29udGV4dC0+bWFwQnVmZmVyUmFuZ2UodGFyZ2V0
LCBjaGVja2VkU3JjQnl0ZU9mZnNldC51bnNhZmVHZXQoKSwgc3RhdGljX2Nhc3Q8R0MzRHNpemVp
cHRyPihjaGVja2VkQ29weUxlbmd0aFB0ci51bnNhZmVHZXQoKSAqIGNoZWNrZWRFbGVtZW50U2l6
ZS51bnNhZmVHZXQoKSksIEdyYXBoaWNzQ29udGV4dDNEOjpNQVBfUkVBRF9CSVQpOwogICAgIG1l
bWNweShzdGF0aWNfY2FzdDxjaGFyKj4oZHN0RGF0YS0+YmFzZUFkZHJlc3MoKSkgKyBkc3REYXRh
LT5ieXRlT2Zmc2V0KCkgKyBkc3RPZmZzZXQgKiBlbGVtZW50U2l6ZSwgcHRyLCBjb3B5TGVuZ3Ro
ICogZWxlbWVudFNpemUpOwpAQCAtMjkwLDE2ICsyOTAsMTYgQEAgdm9pZCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpmcmFtZWJ1ZmZlclRleHR1cmVMYXllcihHQzNEZW51bSwgR0MzRGVudW0sIEdD
M0R1aW4KIHsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldElu
dGVybmFsZm9ybWF0UGFyYW1ldGVyKEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGVudW0pCitXZWJH
TEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlcihH
QzNEZW51bSwgR0MzRGVudW0sIEdDM0RlbnVtKQogewotICAgIHJldHVybiBXZWJHTEdldEluZm8o
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
OjppbnZhbGlkYXRlRnJhbWVidWZmZXIoR0MzRGVudW0sIFZlY3RvcjxHQzNEZW51bT4pCit2b2lk
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmludmFsaWRhdGVGcmFtZWJ1ZmZlcihHQzNEZW51bSwg
Y29uc3QgVmVjdG9yPEdDM0RlbnVtPiYpCiB7CiB9CiAKLXZvaWQgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6aW52YWxpZGF0ZVN1YkZyYW1lYnVmZmVyKEdDM0RlbnVtLCBWZWN0b3I8R0MzRGVudW0+
LCBHQzNEaW50LCBHQzNEaW50LCBHQzNEc2l6ZWksIEdDM0RzaXplaSkKK3ZvaWQgV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6aW52YWxpZGF0ZVN1YkZyYW1lYnVmZmVyKEdDM0RlbnVtLCBjb25zdCBW
ZWN0b3I8R0MzRGVudW0+JiwgR0MzRGludCwgR0MzRGludCwgR0MzRHNpemVpLCBHQzNEc2l6ZWkp
CiB7CiB9CiAKQEAgLTQwNyw3ICs0MDcsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OnRleFN0b3JhZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDMwogICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdl
YkdMVGV4dHVyZSogdGV4dHVyZSA9IHZhbGlkYXRlVGV4dHVyZUJpbmRpbmcoInRleFN0b3JhZ2Uy
RCIsIHRhcmdldCwgZmFsc2UpOworICAgIGF1dG8qIHRleHR1cmUgPSB2YWxpZGF0ZVRleHR1cmVC
aW5kaW5nKCJ0ZXhTdG9yYWdlMkQiLCB0YXJnZXQsIGZhbHNlKTsKICAgICBpZiAoIXRleHR1cmUp
CiAgICAgICAgIHJldHVybjsKIApAQCAtNTAyLDcgKzUwMiw3IEBAIHZvaWQgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6Y29tcHJlc3NlZFRleFN1YkltYWdlM0QoR0MzRGVudW0sIEdDM0RpbnQsIEdD
M0RpbnQsCiB7CiB9CiAKLUdDM0RpbnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhZ0Rh
dGFMb2NhdGlvbihXZWJHTFByb2dyYW0qLCBTdHJpbmcpCitHQzNEaW50IFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmdldEZyYWdEYXRhTG9jYXRpb24oV2ViR0xQcm9ncmFtKiwgY29uc3QgU3RyaW5n
JikKIHsKICAgICByZXR1cm4gMDsKIH0KQEAgLTYzMyw3ICs2MzMsNyBAQCB2b2lkIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OmRyYXdSYW5nZUVsZW1lbnRzKEdDM0RlbnVtLCBHQzNEdWludCwgR0Mz
RHVpbnQsIEdDMwogewogfQogCi12b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRyYXdCdWZm
ZXJzKFZlY3RvcjxHQzNEZW51bT4gYnVmZmVycykKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6ZHJhd0J1ZmZlcnMoY29uc3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmZmVycykKIHsKICAgICBp
ZiAoaXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm47CkBAIC03ODIsOSArNzgyLDkgQEAg
UmVmUHRyPFdlYkdMUXVlcnk+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5KEdDM0Rl
bnVtLCBHQzNEZW51bSkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotV2ViR0xHZXRJbmZvIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdMUXVlcnkqLCBHQzNE
ZW51bSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5UGFyYW1ldGVy
KFdlYkdMUXVlcnkqLCBHQzNEZW51bSkKIHsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZlB0cjxXZWJHTFNhbXBsZXI+IFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmNyZWF0ZVNhbXBsZXIoKQpAQCAtODEzLDkgKzgxMyw5IEBAIHZvaWQgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6c2FtcGxlclBhcmFtZXRlcmYoV2ViR0xTYW1wbGVyKiwgR0Mz
RGVudW0sIEdDM0RmbG9hCiB7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpnZXRTYW1wbGVyUGFyYW1ldGVyKFdlYkdMU2FtcGxlciosIEdDM0RlbnVtKQorV2ViR0xB
bnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2FtcGxlclBhcmFtZXRlcihXZWJHTFNhbXBs
ZXIqLCBHQzNEZW51bSkKIHsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKIFJlZlB0cjxXZWJHTFN5bmM+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmZlbmNlU3luYyhHQzNEZW51bSwgR0MzRGJpdGZpZWxkKQpAQCAtODQxLDkgKzg0MSw5IEBAIHZv
aWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6d2FpdFN5bmMoV2ViR0xTeW5jKiwgR0MzRGJpdGZp
ZWxkLCBHQzNEdWludDY0KQogewogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0U3luY1BhcmFtZXRlcihXZWJHTFN5bmMqLCBHQzNEZW51bSkKK1dlYkdMQW55IFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFN5bmNQYXJhbWV0ZXIoV2ViR0xTeW5jKiwgR0MzRGVu
dW0pCiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIHJldHVybiBudWxscHRyOwog
fQogCiBSZWZQdHI8V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz4gV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Y3JlYXRlVHJhbnNmb3JtRmVlZGJhY2soKQpAQCAtODcyLDcgKzg3Miw3IEBAIHZvaWQgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6ZW5kVHJhbnNmb3JtRmVlZGJhY2soKQogewogfQogCi12b2lk
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MoV2ViR0xQ
cm9ncmFtKiwgVmVjdG9yPFN0cmluZz4sIEdDM0RlbnVtKQordm9pZCBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0Ojp0cmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiwgR0MzRGVudW0pCiB7CiB9CiAKQEAgLTg5Nyw3ICs4OTcsNyBAQCB2b2lk
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJpbmRCdWZmZXJSYW5nZShHQzNEZW51bSwgR0MzRHVp
bnQsIFdlYkdMQnVmZmVyKiwgRwogewogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50KQor
V2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcihHQzNE
ZW51bSB0YXJnZXQsIEdDM0R1aW50KQogewogICAgIHN3aXRjaCAodGFyZ2V0KSB7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HOgpA
QCAtOTA3LDE2ICs5MDcsMTQgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmdldEluZGV4ZWRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWkKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpVTklGT1JNX0JVRkZFUl9TSVpFOgogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlVOSUZPUk1fQlVGRkVSX1NUQVJUOgogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0SW5kZXhlZFBhcmFtZXRlciIs
ICJwYXJhbWV0ZXIgbmFtZSBub3QgeWV0IHN1cHBvcnRlZCIpOwotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJn
ZXRJbmRleGVkUGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbygpOwotICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CiB9CiAKLVVpbnQzMkFycmF5
KiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtSW5kaWNlcyhXZWJHTFByb2dyYW0q
LCBWZWN0b3I8U3RyaW5nPikKK1VpbnQzMkFycmF5KiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRVbmlmb3JtSW5kaWNlcyhXZWJHTFByb2dyYW0qLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CkBAIC05MjYsMTkgKzkyNCwxOSBAQCBJbnQzMkFycmF5
KiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtcyhXZWJHTFByb2dyYW0q
LCBSZWZQdHI8VWludAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1HQzNEdWludCBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtQmxvY2tJbmRleChXZWJHTFByb2dyYW0qLCBTdHJp
bmcpCitHQzNEdWludCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtQmxvY2tJbmRl
eChXZWJHTFByb2dyYW0qLCBjb25zdCBTdHJpbmcmKQogewogICAgIHJldHVybiAwOwogfQogCi1X
ZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2Nr
UGFyYW1ldGVyKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50LCBHQzNEZW51bSkKK1dlYkdMQW55IFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihXZWJH
TFByb2dyYW0qLCBHQzNEdWludCwgR0MzRGVudW0pCiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgIHJldHVybiBudWxscHRyOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShXZWJHTFByb2dyYW0qLCBHQzNE
dWludCkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1C
bG9ja05hbWUoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQpCiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OnVuaWZvcm1CbG9ja0JpbmRpbmcoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQsIEdDM0R1
aW50KQpAQCAtOTUwLDggKzk0OCw4IEBAIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVWZXJ0ZXhBcnJheSgpCiAgICAgaWYgKGlzQ29u
dGV4dExvc3QoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgYXV0byBvYmpl
Y3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdMVmVydGV4QXJy
YXlPYmplY3Q6OlZBT1R5cGVVc2VyKTsKLSAgICBhZGRDb250ZXh0T2JqZWN0KG9iamVjdC5wdHIo
KSk7CisgICAgYXV0byBvYmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRo
aXMsIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OlR5cGU6OlVzZXIpOworICAgIGFkZENvbnRleHRP
YmplY3Qob2JqZWN0LmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92ZShvYmplY3QpOwogfQogCkBA
IC05NjQsNyArOTYyLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVWZXJ0
ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamUKICAgICAgICAgcmV0dXJu
OwogICAgIAogICAgIGlmICghYXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpICYmIGFycmF5
T2JqZWN0ID09IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCkKLSAgICAgICAgc2V0Qm91bmRWZXJ0
ZXhBcnJheU9iamVjdCgwKTsKKyAgICAgICAgc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChudWxs
cHRyKTsKICAgICAKICAgICBhcnJheU9iamVjdC0+ZGVsZXRlT2JqZWN0KGdyYXBoaWNzQ29udGV4
dDNEKCkpOwogfQpAQCAtOTcyLDEwICs5NzAsMTAgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpkZWxldGVWZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamUK
IEdDM0Rib29sZWFuIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmlzVmVydGV4QXJyYXkoV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdCogYXJyYXlPYmplY3QpCiB7CiAgICAgaWYgKCFhcnJheU9iamVjdCB8
fCBpc0NvbnRleHRMb3N0KCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgCiAgICAgaWYgKCFhcnJheU9iamVjdC0+aGFzRXZlckJlZW5Cb3VuZCgpIHx8ICFh
cnJheU9iamVjdC0+dmFsaWRhdGUoMCwgKnRoaXMpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIHJldHVybiBtX2NvbnRleHQtPmlzVmVydGV4QXJy
YXkoYXJyYXlPYmplY3QtPm9iamVjdCgpKTsKIH0KQEAgLTk5Niw3ICs5OTQsNyBAQCB2b2lkIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJpbmRWZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0KiBhcnJheU9iamVjdAogICAgICAgICBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KGFycmF5
T2JqZWN0KTsKICAgICB9IGVsc2UgewogICAgICAgICBtX2NvbnRleHQtPmJpbmRWZXJ0ZXhBcnJh
eShtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdC0+b2JqZWN0KCkpOwotICAgICAgICBzZXRCb3Vu
ZFZlcnRleEFycmF5T2JqZWN0KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0KTsKKyAgICAgICAg
c2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdC5nZXQo
KSk7CiAgICAgfQogfQogCkBAIC0xMDA1LDQzICsxMDAzLDM4IEBAIFdlYkdMRXh0ZW5zaW9uKiBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQog
ICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCi0gICAgaWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9m
aWx0ZXJfYW5pc290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJL
SVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpCi0gICAgICAgICYmIG1fY29udGV4
dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290
cm9waWMiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4
dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUs
ICJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpIHsKICAgICAgICAgaWYg
KCFtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykgewotICAgICAgICAgICAgbV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2Fu
aXNvdHJvcGljIik7Ci0gICAgICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9
IHN0ZDo6bWFrZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcyk7Cisg
ICAgICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IGVuYWJsZVN1cHBvcnRl
ZEV4dGVuc2lvbigiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikKKyAgICAgICAg
ICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigq
dGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpYy5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0IikpIHsKKyAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxvYXQiKSkgewog
ICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUZsb2F0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpOwot
ICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1
cmVGbG9hdD4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXQgPSBlbmFibGVT
dXBwb3J0ZWRFeHRlbnNpb24oIkdMX09FU190ZXh0dXJlX2Zsb2F0IikKKyAgICAgICAgICAgICAg
ICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0PigqdGhpcykgOiBudWxscHRyOwog
ICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVGbG9hdC5nZXQoKTsKICAgICB9
Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0
X2xpbmVhciIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRz
KCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkgewogICAgICAgICBp
ZiAoIW1fb2VzVGV4dHVyZUZsb2F0TGluZWFyKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIi
KTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyID0gc3RkOjptYWtlX3VuaXF1
ZTxPRVNUZXh0dXJlRmxvYXRMaW5lYXI+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVy
ZUZsb2F0TGluZWFyID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfdGV4dHVyZV9m
bG9hdF9saW5lYXIiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0
dXJlRmxvYXRMaW5lYXI+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpCi0gICAgICAg
ICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9o
YWxmX2Zsb2F0IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VT
X3RleHR1cmVfaGFsZl9mbG9hdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlSGFsZkZs
b2F0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFi
bGVkKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0Iik7Ci0gICAgICAgICAgICBtX29lc1RleHR1
cmVIYWxmRmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+KCp0aGlz
KTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdCA9IGVuYWJsZVN1cHBvcnRlZEV4
dGVuc2lvbigiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpCisgICAgICAgICAgICAgICAgPyBz
dGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+KCp0aGlzKSA6IG51bGxwdHI7CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUhhbGZGbG9hdC5nZXQoKTsKICAg
ICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2hh
bGZfZmxvYXRfbGluZWFyIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
c3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikpIHsKKyAgICBpZiAo
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5l
YXIiKSkgewogICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhcikgewotICAg
ICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VT
X3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhh
bGZGbG9hdExpbmVhciA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVh
cj4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyID0gZW5h
YmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIp
CisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXRM
aW5lYXI+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2Vz
VGV4dHVyZUhhbGZGbG9hdExpbmVhci5nZXQoKTsKICAgICB9CkBAIC0xMDUwLDI4ICsxMDQzLDMy
IEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24o
Y29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICAgICAgbV93ZWJnbExvc2VDb250ZXh0ID0gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJHTExvc2VDb250ZXh0PigqdGhpcyk7CiAgICAgICAgIHJldHVybiBt
X3dlYmdsTG9zZUNvbnRleHQuZ2V0KCk7CiAgICAgfQotICAgIGlmICgoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKSkKLSAg
ICAgICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewot
ICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQykKLSAgICAgICAgICAgIG1f
d2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVz
c2VkVGV4dHVyZUFUQz4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5h
bWUsICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpKSB7CisgICAgICAgIGlm
ICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDKSB7CisgICAgICAgICAgICBpZiAoV2ViR0xD
b21wcmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkKKyAgICAgICAgICAgICAgICBt
X3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVBVEM+KCp0aGlzKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlQVRDLmdldCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMi
KSkKLSAgICAgICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRo
aXMpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMpCi0gICAg
ICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQyA9IHN0ZDo6bWFrZV91bmlxdWU8
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMi
KSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKSB7CisgICAg
ICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQyA9IFdlYkdMQ29tcHJlc3NlZFRl
eHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0aGlzKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtl
X3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM+KCp0aGlzKSA6IG51bGxwdHI7Cisg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmdl
dCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xf
Y29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0
dXJlUzNUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVz
c2VkVGV4dHVyZVMzVEMpCi0gICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RD
ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQz4oKnRoaXMpOwor
ICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9jb21wcmVzc2VkX3Rl
eHR1cmVfczN0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNU
QykgeworICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQyA9IFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpCisgICAgICAgICAgICAgICAgPyBz
dGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDPigqdGhpcykgOiBudWxs
cHRyOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVT
M1RDLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAi
V0VCR0xfZGVwdGhfdGV4dHVyZSIpCi0gICAgICAgICYmIFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBw
b3J0ZWQoKmdyYXBoaWNzQ29udGV4dDNEKCkpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERlcHRo
VGV4dHVyZSkKLSAgICAgICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUgPSBzdGQ6Om1ha2VfdW5p
cXVlPFdlYkdMRGVwdGhUZXh0dXJlPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UobmFtZSwgIldFQkdMX2RlcHRoX3RleHR1cmUiKSkgeworICAgICAgICBpZiAoIW1fd2Vi
Z2xEZXB0aFRleHR1cmUpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUgPSBXZWJH
TERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCpncmFwaGljc0NvbnRleHQzRCgpKQorICAgICAgICAg
ICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlcHRoVGV4dHVyZT4oKnRoaXMpIDogbnVs
bHB0cjsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbERlcHRoVGV4dHVyZS5nZXQo
KTsKICAgICB9CiAgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2Rl
YnVnX3JlbmRlcmVyX2luZm8iKSkgewpAQCAtMTA3OSwxMCArMTA3NiwxMSBAQCBXZWJHTEV4dGVu
c2lvbiogV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYg
bmFtZSkKICAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbyA9IHN0ZDo6bWFrZV91
bmlxdWU8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4oKnRoaXMpOwogICAgICAgICByZXR1cm4gbV93
ZWJnbERlYnVnUmVuZGVyZXJJbmZvLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVidWdfc2hhZGVycyIpCi0gICAgICAgICYmIG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRl
cl9zb3VyY2UiKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1NoYWRlcnMpCi0gICAgICAg
ICAgICBtX3dlYmdsRGVidWdTaGFkZXJzID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnU2hh
ZGVycz4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJH
TF9kZWJ1Z19zaGFkZXJzIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdTaGFkZXJzKSB7
CisgICAgICAgICAgICBtX3dlYmdsRGVidWdTaGFkZXJzID0gbV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVy
X3NvdXJjZSIgfSkKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1
Z1NoYWRlcnM+KCp0aGlzKSA6IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1f
d2ViZ2xEZWJ1Z1NoYWRlcnMuZ2V0KCk7CiAgICAgfQogCkBAIC0xMDk2LDkwICsxMDk0LDkwIEBA
IFZlY3RvcjxTdHJpbmc+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVu
c2lvbnMoKQogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pCiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190
ZXh0dXJlX2Zsb2F0Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBv
cnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVu
ZCgiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpCi0gICAgICAg
IHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKTsKLSAgICBpZiAobV9jb250
ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRf
bGluZWFyIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRf
bGluZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJH
TF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVu
ZCgiV0VCS0lUX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOworICAgIGF1dG8mIGV4
dGVuc2lvbnMgPSBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKTsKKyAgICBpZiAoZXh0ZW5zaW9u
cy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfZmxvYXQiIH0pKQorICAg
ICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9mbG9hdCIgfSk7
CisgICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0
dXJlX2Zsb2F0X2xpbmVhciIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFs
IHsgIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIgfSk7CisgICAgaWYgKGV4dGVuc2lvbnMuc3Vw
cG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pKQorICAg
ICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0
IiB9KTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VT
X3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFT
Q0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIgfSk7CisgICAgaWYg
KGV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF90ZXh0dXJlX2ZpbHRl
cl9hbmlzb3Ryb3BpYyIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsg
IldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pOwogICAgIGlmIChXZWJH
TENvbXByZXNzZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQu
YXBwZW5kKCJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpOworICAgICAgICBy
ZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0
dXJlX2F0YyIgfSk7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9y
dGVkKCp0aGlzKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNz
ZWRfdGV4dHVyZV9wdnJ0YyIpOworICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7
ICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIiB9KTsKICAgICBpZiAoV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhpcykpCi0gICAgICAgIHJlc3Vs
dC5hcHBlbmQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIik7CisgICAgICAgIHJlc3Vs
dC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIiB9
KTsKICAgICBpZiAoV2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqZ3JhcGhpY3NDb250ZXh0
M0QoKSkpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlcHRoX3RleHR1cmUiKTsKLSAg
ICByZXN1bHQuYXBwZW5kKCJXRUJHTF9sb3NlX2NvbnRleHQiKTsKLSAgICBpZiAobV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3Nv
dXJjZSIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19zaGFkZXJzIik7Ci0g
ICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpOworICAgICAgICBy
ZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9kZXB0aF90ZXh0dXJlIiB9KTsKKyAg
ICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9sb3NlX2NvbnRleHQiIH0pOwor
ICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9BTkdMRV90cmFu
c2xhdGVkX3NoYWRlcl9zb3VyY2UiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0
ZXJhbCB7ICJXRUJHTF9kZWJ1Z19zaGFkZXJzIiB9KTsKKyAgICByZXN1bHQuYXBwZW5kKEFTQ0lJ
TGl0ZXJhbCB7ICJXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIiB9KTsKIAogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRh
Y2htZW50LCBHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0Rl
bnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0
T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycygiZ2V0RnJh
bWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgdGFyZ2V0LCBhdHRhY2htZW50KSkKLSAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAK
ICAgICBpZiAoIW1fZnJhbWVidWZmZXJCaW5kaW5nIHx8ICFtX2ZyYW1lYnVmZmVyQmluZGluZy0+
b2JqZWN0KCkpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfT1BFUkFUSU9OLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwg
Im5vIGZyYW1lYnVmZmVyIGJvdW5kIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIFdlYkdMU2hhcmVkT2Jq
ZWN0KiBvYmplY3QgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVudE9iamVjdChh
dHRhY2htZW50KTsKKyAgICBhdXRvKiBvYmplY3QgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0
QXR0YWNobWVudE9iamVjdChhdHRhY2htZW50KTsKICAgICBpZiAoIW9iamVjdCkgewogICAgICAg
ICBpZiAocG5hbWUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
T0JKRUNUX1RZUEUpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29u
dGV4dDNEOjpOT05FKTsKLSAgICAgICAgLy8gT3BlbkdMIEVTIDIuMCBzcGVjaWZpZXMgSU5WQUxJ
RF9FTlVNIGluIHRoaXMgY2FzZSwgd2hpbGUgZGVza3RvcCBHTAotICAgICAgICAvLyBzcGVjaWZp
ZXMgSU5WQUxJRF9PUEVSQVRJT04uCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKTsKKyAgICAgICAgLy8gT3BlbkdMIEVTIDIu
MCBzcGVjaWZpZXMgSU5WQUxJRF9FTlVNIGluIHRoaXMgY2FzZSwgd2hpbGUgZGVza3RvcCBHTCBz
cGVjaWZpZXMgSU5WQUxJRF9PUEVSQVRJT04uCiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQ
YXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICAKLSAgICBB
U1NFUlQob2JqZWN0LT5pc1RleHR1cmUoKSB8fCBvYmplY3QtPmlzUmVuZGVyYnVmZmVyKCkpOwog
ICAgIGlmIChvYmplY3QtPmlzVGV4dHVyZSgpKSB7CiAgICAgICAgIHN3aXRjaCAocG5hbWUpIHsK
ICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9P
QkpFQ1RfVFlQRToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkUpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRSk7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUU6Ci0gICAgICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJlKj4ob2JqZWN0
KSk7CisgICAgICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihyZWludGVycHJldF9jYXN0PFdlYkdM
VGV4dHVyZSY+KCpvYmplY3QpKTsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVMOgogICAgICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFDRToK
ICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9D
T0xPUl9FTkNPRElORzogewogICAgICAgICAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAgICAgICAg
ICAgICBtX2NvbnRleHQtPmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2KHRhcmdl
dCwgYXR0YWNobWVudCwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgfQogICAg
ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIs
ICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIGZvciB0ZXh0dXJlIGF0dGFjaG1lbnQiKTsKLSAgICAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG9iamVjdC0+aXNSZW5k
ZXJidWZmZXIoKSk7CiAgICAgICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRToKLSAgICAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZF
Uik7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29u
dGV4dDNEOjpSRU5ERVJCVUZGRVIpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FOgotICAgICAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhyZWludGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyKj4ob2JqZWN0KSk7
CisgICAgICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihyZWludGVycHJldF9jYXN0PFdlYkdMUmVu
ZGVyYnVmZmVyJj4oKm9iamVjdCkpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HIDogewotICAgICAgICAgICAgV2Vi
R0xSZW5kZXJidWZmZXIqIHJlbmRlckJ1ZmZlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5k
ZXJidWZmZXIqPihvYmplY3QpOwotICAgICAgICAgICAgR0MzRGVudW0gcmVuZGVyQnVmZmVyRm9y
bWF0ID0gcmVuZGVyQnVmZmVyLT5nZXRJbnRlcm5hbEZvcm1hdCgpOwotICAgICAgICAgICAgaWYg
KHJlbmRlckJ1ZmZlckZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6U1JHQjhfQUxQSEE4Ci0g
ICAgICAgICAgICAgICAgfHwgcmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNE
OjpDT01QUkVTU0VEX1NSR0I4X0VUQzIKLSAgICAgICAgICAgICAgICB8fCByZW5kZXJCdWZmZXJG
b3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJf
RUFDCi0gICAgICAgICAgICAgICAgfHwgcmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpDT01QUkVTU0VEX1NSR0I4X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMikgewotICAg
ICAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlNSR0Ip
OworICAgICAgICAgICAgYXV0byYgcmVuZGVyQnVmZmVyID0gcmVpbnRlcnByZXRfY2FzdDxXZWJH
TFJlbmRlcmJ1ZmZlciY+KCpvYmplY3QpOworICAgICAgICAgICAgYXV0byBmb3JtYXQgPSByZW5k
ZXJCdWZmZXIuZ2V0SW50ZXJuYWxGb3JtYXQoKTsKKyAgICAgICAgICAgIGlmIChmb3JtYXQgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OlNSR0I4X0FMUEhBOAorICAgICAgICAgICAgICAgIHx8IGZvcm1h
dCA9PSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9TUkdCOF9FVEMyCisgICAgICAgICAg
ICAgICAgfHwgZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NSR0I4X0FM
UEhBOF9FVEMyX0VBQworICAgICAgICAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRl
eHQzRDo6Q09NUFJFU1NFRF9TUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIpIHsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNE
OjpTUkdCKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
R3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOwogICAgICAgICB9CiAgICAg
ICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwg
ImludmFsaWQgcGFyYW1ldGVyIG5hbWUgZm9yIHJlbmRlcmJ1ZmZlciBhdHRhY2htZW50Iik7Ci0g
ICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTExOTEsMTkgKzExODksMTYgQEAgYm9vbCBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUZyYW1lYnVmZmVyRnVuY1BhcmFtZXRlcnMo
Y29uc3QgY2hhciogZnVuY3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBzd2l0
Y2ggKGF0dGFjaG1lbnQpIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRB
Q0hNRU5UMDoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5UOgog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQVRUQUNITUVOVDoKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgotICAgICAgICBpZiAoYXR0
YWNobWVudCA+IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMAotICAgICAgICAg
ICAgJiYgYXR0YWNobWVudCA8IHN0YXRpY19jYXN0PEdDM0RlbnVtPihHcmFwaGljc0NvbnRleHQz
RDo6Q09MT1JfQVRUQUNITUVOVDAgKyBnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkpKQotICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGlmIChhdHRhY2htZW50ID49IEdyYXBoaWNzQ29udGV4dDNE
OjpDT0xPUl9BVFRBQ0hNRU5UMCAmJiBhdHRhY2htZW50IDwgc3RhdGljX2Nhc3Q8R0MzRGVudW0+
KEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCArIGdldE1heENvbG9yQXR0YWNo
bWVudHMoKSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgc3ludGhlc2l6ZUdM
RXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52
YWxpZCBhdHRhY2htZW50Iik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0
dXJuIHRydWU7CiB9CiAKIEdDM0RpbnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0TWF4RHJh
d0J1ZmZlcnMoKQpAQCAtMTM5NSw3ICsxMzkwLDcgQEAgR0MzRGVudW0gV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6YmFzZUludGVybmFsRm9ybWF0RnJvbUludGVybmFsRm9ybWF0KEdDM0RlbnVtIGkK
IGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNJbnRlZ2VyRm9ybWF0KEdDM0RlbnVtIGlu
dGVybmFsZm9ybWF0KQogewogICAgIC8vIEZJWE1FOiBiYXNlSW50ZXJuYWxGb3JtYXRGcm9tSW50
ZXJuYWxGb3JtYXQoKSBuZXZlciByZXR1cm5zIGFueSBvZiB0aGVzZSBlbnVtcy4KLSAgICAvLyBD
dXJyZW50bHksIFRoaXMgZnVuY3Rpb24gZXJyb25lb3VzbHkgYWx3YXlzIHJldHVybnMgZmFsc2Uu
CisgICAgLy8gQmVjYXVzZSBvZiB0aGF0LCB0aGlzIGZ1bmN0aW9uIGVycm9uZW91c2x5IGFsd2F5
cyByZXR1cm5zIGZhbHNlIQogICAgIHN3aXRjaCAoYmFzZUludGVybmFsRm9ybWF0RnJvbUludGVy
bmFsRm9ybWF0KGludGVybmFsZm9ybWF0KSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJFRF9JTlRFR0VSOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHX0lOVEVHRVI6CkBA
IC0xNDA2LDExICsxNDAxLDEwIEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNJbnRl
Z2VyRm9ybWF0KEdDM0RlbnVtIGludGVybmFsZm9ybWF0KQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNE
ZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRl
cihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgY29uc3QgaW50IGludFplcm8gPSAw
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6QUNUSVZFX1RFWFRVUkU6CiAgICAgICAgIHJldHVybiBnZXRV
bnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CkBAIC0xNDIxLDcgKzE0MTUsNyBAQCBXZWJHTEdl
dEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBX0JJVFM6CiAgICAgICAgIHJldHVy
biBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFS
UkFZX0JVRkZFUl9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fYm91bmRB
cnJheUJ1ZmZlci5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX2JvdW5kQXJyYXlCdWZmZXI7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QkxFTkQ6CiAgICAgICAgIHJldHVybiBnZXRCb29s
ZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORF9D
T0xPUjoKQEAgLTE0NDUsMTYgKzE0MzksMTYgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpDT0xPUl9XUklURU1BU0s6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuQXJy
YXlQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNT
RURfVEVYVFVSRV9GT1JNQVRTOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQ
dHI8VWludDMyQXJyYXk+KFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21wcmVzc2VkVGV4dHVyZUZv
cm1hdHMuZGF0YSgpLCBtX2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5zaXplKCkpKSk7CisgICAg
ICAgIHJldHVybiBVaW50MzJBcnJheTo6Y3JlYXRlKG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRz
LmRhdGEoKSwgbV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMuc2l6ZSgpKTsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpDVUxMX0ZBQ0U6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFy
YW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVUxMX0ZBQ0VfTU9E
RToKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVVJSRU5UX1BST0dSQU06Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8obV9jdXJyZW50UHJvZ3JhbS5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX2N1
cnJlbnRQcm9ncmFtOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JJVFM6CiAg
ICAgICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgJiYgIW1fYXR0cmlidXRlcy5kZXB0aCkK
LSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oaW50WmVybyk7CisgICAgICAgICAgICBy
ZXR1cm4gMDsKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQ0xFQVJfVkFMVUU6CiAgICAgICAgIHJldHVybiBn
ZXRGbG9hdFBhcmFtZXRlcihwbmFtZSk7CkBAIC0xNDY5LDkgKzE0NjMsOSBAQCBXZWJHTEdldElu
Zm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRJVEhFUjoKICAgICAgICAgcmV0dXJuIGdldEJv
b2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1F
TlRfQVJSQVlfQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9i
b3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKSk7CisgICAgICAg
IHJldHVybiBtYWtlUmVmUHRyKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVudEFy
cmF5QnVmZmVyKCkpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0JJ
TkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9mcmFtZWJ1ZmZlckJpbmRpbmcu
Z2V0KCkpOworICAgICAgICByZXR1cm4gbV9mcmFtZWJ1ZmZlckJpbmRpbmc7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6RlJPTlRfRkFDRToKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVk
SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpHRU5FUkFU
RV9NSVBNQVBfSElOVDoKQEAgLTE1MTksOSArMTUxMyw5IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6UkVEX0JJVFM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0
ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9CSU5E
SU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fcmVuZGVyYnVmZmVyQmluZGluZy5n
ZXQoKSk7CisgICAgICAgIHJldHVybiBtX3JlbmRlcmJ1ZmZlckJpbmRpbmc7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVI6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
U3RyaW5nKCJXZWJLaXQgV2ViR0wiKSk7CisgICAgICAgIHJldHVybiBTdHJpbmcgeyBBU0NJSUxp
dGVyYWwgeyAiV2ViS2l0IFdlYkdMIiB9IH07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
U0FNUExFX0JVRkZFUlM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQ6CkBAIC0x
NTM1LDcgKzE1MjksNyBAQCBXZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0
UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlND
SVNTT1JfVEVTVDoKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTjoKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygiV2ViR0wgR0xTTCBFUyAxLjAgKCIgKyBtX2NvbnRl
eHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9O
KSArICIpIik7CisgICAgICAgIHJldHVybiAiV2ViR0wgR0xTTCBFUyAxLjAgKCIgKyBtX2NvbnRl
eHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9O
KSArICIpIjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JBQ0tfRkFJTDoK
ICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JBQ0tfRlVOQzoKQEAgLTE1NTIsNyArMTU0Niw3
IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0Mz
RGVudW0gcG5hbWUpCiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFt
ZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9CSVRTOgogICAgICAgICBp
ZiAoIW1fZnJhbWVidWZmZXJCaW5kaW5nICYmICFtX2F0dHJpYnV0ZXMuc3RlbmNpbCkKLSAgICAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oaW50WmVybyk7CisgICAgICAgICAgICByZXR1cm4g
MDsKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6U1RFTkNJTF9DTEVBUl9WQUxVRToKICAgICAgICAgcmV0dXJuIGdldElu
dFBhcmFtZXRlcihwbmFtZSk7CkBAIC0xNTc1LDM4ICsxNTY5LDM4IEBAIFdlYkdMR2V0SW5mbyBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1VCUElYRUxfQklUUzoKICAgICAgICAgcmV0dXJuIGdl
dEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVS
RV9CSU5ESU5HXzJEOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdGV4dHVyZVVuaXRz
W21fYWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmUyREJpbmRpbmcuZ2V0KCkpOworICAgICAgICBy
ZXR1cm4gbV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4dHVyZTJEQmluZGlu
ZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVA6
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0
dXJlVW5pdF0udGV4dHVyZUN1YmVNYXBCaW5kaW5nLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIG1f
dGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmVDdWJlTWFwQmluZGluZzsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5UOgogICAgICAgICBy
ZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpVTlBBQ0tfRkxJUF9ZX1dFQkdMOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdW5w
YWNrRmxpcFkpOworICAgICAgICByZXR1cm4gbV91bnBhY2tGbGlwWTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0w6Ci0gICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8obV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAgICAgcmV0
dXJuIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMOgotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb24pOworICAgICAgICByZXR1cm4g
bV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lvbjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpWRU5ET1I6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oU3RyaW5nKCJXZWJLaXQiKSk7
CisgICAgICAgIHJldHVybiBTdHJpbmcgeyBBU0NJSUxpdGVyYWwgeyAiV2ViS2l0IiB9IH07CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTjoKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbygiV2ViR0wgMi4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250
ZXh0M0Q6OlZFUlNJT04pICsgIikiKTsKKyAgICAgICAgcmV0dXJuICJXZWJHTCAyLjAgKCIgKyBt
X2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTikgKyAiKSI7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VklFV1BPUlQ6CiAgICAgICAgIHJldHVybiBnZXRX
ZWJHTEludEFycmF5UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJl
ckluZm86OlVOTUFTS0VEX1JFTkRFUkVSX1dFQkdMOgogICAgICAgICBpZiAobV93ZWJnbERlYnVn
UmVuZGVyZXJJbmZvKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2NvbnRleHQt
PmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpKTsKKyAgICAgICAgICAgIHJl
dHVybiBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpOwog
ICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVN
LCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVnX3Jl
bmRlcmVyX2luZm8gbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJlcklu
Zm86OlVOTUFTS0VEX1ZFTkRPUl9XRUJHTDoKICAgICAgICAgaWYgKG1fd2ViZ2xEZWJ1Z1JlbmRl
cmVySW5mbykKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9jb250ZXh0LT5nZXRT
dHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFTkRPUikpOworICAgICAgICAgICAgcmV0dXJuIG1f
Y29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1IpOwogICAgICAgICBz
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFy
YW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2lu
Zm8gbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFY
X0FOSVNPVFJPUFlfRVhUOiAvLyBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMKICAgICAg
ICAgaWYgKG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKQogICAgICAgICAgICAgcmV0dXJu
IGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FO
SVNPVFJPUFlfRVhUKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1l
LCBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpGUkFHTUVOVF9TSEFERVJfREVSSVZBVElWRV9ISU5UOgogICAg
ICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpNQVhfM0RfVEVYVFVSRV9TSVpFOgpAQCAtMTY4OSwxMiArMTY4MywxMCBAQCBXZWJH
TEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBu
YW1lKQogICAgICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6VU5JRk9STV9CVUZGRVJfT0ZGU0VUX0FMSUdOTUVOVDoKICAg
ICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6VkVSVEVYX0FSUkFZX0JJTkRJTkc6IHsKLSAgICAgICAgaWYgKCFtX2JvdW5kVmVy
dGV4QXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpKQotICAgICAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxXZWJHTFZlcnRleEFycmF5T2JqZWN0Kj4obV9ib3VuZFZl
cnRleEFycmF5T2JqZWN0LmdldCgpKSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
LSAgICAgICAgfQotICAgICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpW
RVJURVhfQVJSQVlfQklORElORzoKKyAgICAgICAgaWYgKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVj
dC0+aXNEZWZhdWx0T2JqZWN0KCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAg
ICAgcmV0dXJuIG1ha2VSZWZQdHIoc3RhdGljX2Nhc3Q8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCY+
KCptX2JvdW5kVmVydGV4QXJyYXlPYmplY3QpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpEUkFXX0JVRkZFUjA6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RFJBV19CVUZGRVIx
OgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMjoKQEAgLTE3MTAsMTQg
KzE3MDIsMTAgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFt
ZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JV
RkZFUjEyOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTM6CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RFJBV19CVUZGRVIxNDoKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEUkFXX0JVRkZFUjE1OiB7Ci0gICAgICAgIEdDM0RpbnQgdmFsdWUgPSBHcmFw
aGljc0NvbnRleHQzRDo6Tk9ORTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JV
RkZFUjE1OgogICAgICAgICBpZiAobV9mcmFtZWJ1ZmZlckJpbmRpbmcpCi0gICAgICAgICAgICB2
YWx1ZSA9IG1fZnJhbWVidWZmZXJCaW5kaW5nLT5nZXREcmF3QnVmZmVyKHBuYW1lKTsKLSAgICAg
ICAgZWxzZSAvLyBlbXVsYXRlZCBiYWNrYnVmZmVyCi0gICAgICAgICAgICB2YWx1ZSA9IG1fYmFj
a0RyYXdCdWZmZXI7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOwotICAgICAg
ICB9CisgICAgICAgICAgICByZXR1cm4gbV9mcmFtZWJ1ZmZlckJpbmRpbmctPmdldERyYXdCdWZm
ZXIocG5hbWUpOworICAgICAgICByZXR1cm4gbV9iYWNrRHJhd0J1ZmZlcjsgLy8gZW11bGF0ZWQg
YmFja2J1ZmZlcgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPUFlfUkVBRF9CVUZGRVI6
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09QWV9XUklURV9CVUZGRVI6CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UElYRUxfUEFDS19CVUZGRVJfQklORElORzogICAKQEAgLTE3
MzAsMTAgKzE3MTgsMTAgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6Omdl
dFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpU
UkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkc6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6VU5JRk9STV9CVUZGRVJfQklORElORzoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJwYXJhbWV0
ZXIgbmFtZSBub3QgeWV0IHN1cHBvcnRlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0
ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMTc1NCw3ICsx
NzQyLDcgQEAgYm9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlD
b25zZXJ2YXRpdmUoR0MzRGVudW0gdHlwZSwgdW5zaWcKICAgICAvLyBUaGUgY2FzZSBjb3VudD09
MCBpcyBhbHJlYWR5IGRlYWx0IHdpdGggaW4gZHJhd0VsZW1lbnRzIGJlZm9yZSB2YWxpZGF0ZUlu
ZGV4QXJyYXlDb25zZXJ2YXRpdmUuCiAgICAgaWYgKCFudW1FbGVtZW50cykKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIGNvbnN0IEFycmF5QnVmZmVyKiBidWZmZXIgPSBlbGVtZW50QXJyYXlC
dWZmZXItPmVsZW1lbnRBcnJheUJ1ZmZlcigpOworICAgIGF1dG8qIGJ1ZmZlciA9IGVsZW1lbnRB
cnJheUJ1ZmZlci0+ZWxlbWVudEFycmF5QnVmZmVyKCk7CiAgICAgQVNTRVJUKGJ1ZmZlcik7CiAg
ICAgCiAgICAgaW50IG1heEluZGV4ID0gZWxlbWVudEFycmF5QnVmZmVyLT5nZXRDYWNoZWRNYXhJ
bmRleCh0eXBlKTsKQEAgLTE4MDYsNyArMTc5NCw2IEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6dmFsaWRhdGVCbGVuZEVxdWF0aW9uKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0Mz
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TUlOOgogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6Ok1BWDoKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGJyZWFrOwogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgbW9kZSIpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJp
bmdDb250ZXh0LmgKaW5kZXggNzU1ZGU2YmJkZDI2OTgxNjdkM2JhYTBmZGRkMzRiYmUwNjExNWQ1
OS4uYjQ4MDNhZjE2MmVjNWYwNDNlNzk5NjlkNmQ4NWU1MzBlZDM2NWNjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw3
ICsyOCw2IEBACiAjaWYgRU5BQkxFKFdFQkdMMikKIAogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UuaCIKLSNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTQxLDkgKzQwLDkgQEAgY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDsK
IGNsYXNzIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSB7CiBwdWJsaWM6CiAgICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1M
Q2FudmFzRWxlbWVudCYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwotICAgIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+
JiYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOworICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQo
SFRNTENhbnZhc0VsZW1lbnQmLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4
dEF0dHJpYnV0ZXMpOwogCi0gICAgLyogQnVmZmVyIG9iamVjdHMgKi8KKyAgICAvLyBCdWZmZXIg
b2JqZWN0cwogICAgIHVzaW5nIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJ1ZmZlckRhdGE7
CiAgICAgdXNpbmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YnVmZmVyU3ViRGF0YTsKICAg
ICB2b2lkIGJ1ZmZlckRhdGEoR0MzRGVudW0gdGFyZ2V0LCBjb25zdCBBcnJheUJ1ZmZlclZpZXcm
IGRhdGEsIEdDM0RlbnVtIHVzYWdlLCBHQzNEdWludCBzcmNPZmZzZXQsIEdDM0R1aW50IGxlbmd0
aCk7CkBAIC01MSwxOSArNTAsMTkgQEAgcHVibGljOgogICAgIHZvaWQgY29weUJ1ZmZlclN1YkRh
dGEoR0MzRGVudW0gcmVhZFRhcmdldCwgR0MzRGVudW0gd3JpdGVUYXJnZXQsIEdDM0RpbnQ2NCBy
ZWFkT2Zmc2V0LCBHQzNEaW50NjQgd3JpdGVPZmZzZXQsIEdDM0RpbnQ2NCBzaXplKTsKICAgICB2
b2lkIGdldEJ1ZmZlclN1YkRhdGEoR0MzRGVudW0gdGFyZ2V0LCBsb25nIGxvbmcgc3JjQnl0ZU9m
ZnNldCwgUmVmUHRyPEFycmF5QnVmZmVyVmlldz4mJiBkc3REYXRhLCBHQzNEdWludCBkc3RPZmZz
ZXQgPSAwLCBHQzNEdWludCBsZW5ndGggPSAwKTsKICAgICAKLSAgICAvKiBGcmFtZWJ1ZmZlciBv
YmplY3RzICovCi0gICAgV2ViR0xHZXRJbmZvIGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1l
KSBmaW5hbDsKKyAgICAvLyBGcmFtZWJ1ZmZlciBvYmplY3RzCisgICAgV2ViR0xBbnkgZ2V0RnJh
bWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0
YWNobWVudCwgR0MzRGVudW0gcG5hbWUpIGZpbmFsOwogICAgIHZvaWQgYmxpdEZyYW1lYnVmZmVy
KEdDM0RpbnQgc3JjWDAsIEdDM0RpbnQgc3JjWTAsIEdDM0RpbnQgc3JjWDEsIEdDM0RpbnQgc3Jj
WTEsIEdDM0RpbnQgZHN0WDAsIEdDM0RpbnQgZHN0WTAsIEdDM0RpbnQgZHN0WDEsIEdDM0RpbnQg
ZHN0WTEsIEdDM0RiaXRmaWVsZCBtYXNrLCBHQzNEZW51bSBmaWx0ZXIpOwogICAgIHZvaWQgZnJh
bWVidWZmZXJUZXh0dXJlTGF5ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50
LCBHQzNEdWludCB0ZXh0dXJlLCBHQzNEaW50IGxldmVsLCBHQzNEaW50IGxheWVyKTsKLSAgICBX
ZWJHTEdldEluZm8gZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gcG5hbWUpOwotICAgIHZvaWQgaW52YWxp
ZGF0ZUZyYW1lYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgVmVjdG9yPEdDM0RlbnVtPiBhdHRhY2ht
ZW50cyk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlU3ViRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0
LCBWZWN0b3I8R0MzRGVudW0+IGF0dGFjaG1lbnRzLCBHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0Mz
RHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKKyAgICBXZWJHTEFueSBnZXRJbnRlcm5h
bGZvcm1hdFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0
LCBHQzNEZW51bSBwbmFtZSk7CisgICAgdm9pZCBpbnZhbGlkYXRlRnJhbWVidWZmZXIoR0MzRGVu
dW0gdGFyZ2V0LCBjb25zdCBWZWN0b3I8R0MzRGVudW0+JiBhdHRhY2htZW50cyk7CisgICAgdm9p
ZCBpbnZhbGlkYXRlU3ViRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBjb25zdCBWZWN0b3I8
R0MzRGVudW0+JiBhdHRhY2htZW50cywgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7CiAgICAgdm9pZCByZWFkQnVmZmVyKEdDM0RlbnVtIHNy
Yyk7CiAgICAgCi0gICAgLyogUmVuZGVyYnVmZmVyIG9iamVjdHMgKi8KKyAgICAvLyBSZW5kZXJi
dWZmZXIgb2JqZWN0cwogICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdD
M0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIHNhbXBsZXMsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0
LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpOwogICAgIAotICAgIC8qIFRleHR1
cmUgb2JqZWN0cyAqLworICAgIC8vIFRleHR1cmUgb2JqZWN0cwogICAgIHZvaWQgdGV4U3RvcmFn
ZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxG
b3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7CiAgICAgdm9pZCB0ZXhT
dG9yYWdlM0QoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRl
cm5hbEZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEc2l6ZWkg
ZGVwdGgpOwogICAgIHZvaWQgdGV4SW1hZ2UzRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2
ZWwsIEdDM0RpbnQgaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhl
aWdodCwgR0MzRHNpemVpIGRlcHRoLCBHQzNEaW50IGJvcmRlciwgR0MzRGVudW0gZm9ybWF0LCBH
QzNEZW51bSB0eXBlLCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmIHBpeGVscyk7CkBAIC03Niwx
MCArNzUsMTAgQEAgcHVibGljOgogICAgIHZvaWQgY29tcHJlc3NlZFRleEltYWdlM0QoR0MzRGVu
dW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNp
emVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEc2l6ZWkgZGVwdGgsIEdDM0RpbnQgYm9y
ZGVyLCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmIGRhdGEp
OwogICAgIHZvaWQgY29tcHJlc3NlZFRleFN1YkltYWdlM0QoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
aW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB6b2Zm
c2V0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RzaXplaSBkZXB0aCwg
R0MzRGVudW0gZm9ybWF0LCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBSZWZQdHI8QXJyYXlCdWZmZXJW
aWV3PiYmIGRhdGEpOwogICAgIAotICAgIC8qIFByb2dyYW1zIGFuZCBzaGFkZXJzICovCi0gICAg
R0MzRGludCBnZXRGcmFnRGF0YUxvY2F0aW9uKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgU3RyaW5n
IG5hbWUpOworICAgIC8vIFByb2dyYW1zIGFuZCBzaGFkZXJzCisgICAgR0MzRGludCBnZXRGcmFn
RGF0YUxvY2F0aW9uKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgCi0g
ICAgLyogVW5pZm9ybXMgYW5kIGF0dHJpYnV0ZXMgKi8KKyAgICAvLyBVbmlmb3JtcyBhbmQgYXR0
cmlidXRlcwogICAgIHZvaWQgdW5pZm9ybTF1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbiosIEdDM0R1
aW50IHYwKTsKICAgICB2b2lkIHVuaWZvcm0ydWkoV2ViR0xVbmlmb3JtTG9jYXRpb24qLCBHQzNE
dWludCB2MCwgR0MzRHVpbnQgdjEpOwogICAgIHZvaWQgdW5pZm9ybTN1aShXZWJHTFVuaWZvcm1M
b2NhdGlvbiosIEdDM0R1aW50IHYwLCBHQzNEdWludCB2MSwgR0MzRHVpbnQgdjIpOwpAQCAtMTAw
LDcwICs5OSw3MCBAQCBwdWJsaWM6CiAgICAgdm9pZCB2ZXJ0ZXhBdHRyaWJJNHVpdihHQzNEdWlu
dCBpbmRleCwgUmVmUHRyPFVpbnQzMkFycmF5PiYmIHYpOwogICAgIHZvaWQgdmVydGV4QXR0cmli
SVBvaW50ZXIoR0MzRHVpbnQgaW5kZXgsIEdDM0RpbnQgc2l6ZSwgR0MzRGVudW0gdHlwZSwgR0Mz
RHNpemVpIHN0cmlkZSwgR0MzRGludDY0IG9mZnNldCk7CiAgICAgCi0gICAgLyogV3JpdGluZyB0
byB0aGUgZHJhd2luZyBidWZmZXIgKi8KKyAgICAvLyBXcml0aW5nIHRvIHRoZSBkcmF3aW5nIGJ1
ZmZlcgogICAgIHZvaWQgY2xlYXIoR0MzRGJpdGZpZWxkIG1hc2spIGZpbmFsOwogICAgIHZvaWQg
dmVydGV4QXR0cmliRGl2aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcik7CiAg
ICAgdm9pZCBkcmF3QXJyYXlzSW5zdGFuY2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQgZmlyc3Qs
IEdDM0RzaXplaSBjb3VudCwgR0MzRHNpemVpIGluc3RhbmNlQ291bnQpOwogICAgIHZvaWQgZHJh
d0VsZW1lbnRzSW5zdGFuY2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVu
dW0gdHlwZSwgR0MzRGludDY0IG9mZnNldCwgR0MzRHNpemVpIGluc3RhbmNlQ291bnQpOwogICAg
IHZvaWQgZHJhd1JhbmdlRWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHVpbnQgc3RhcnQsIEdD
M0R1aW50IGVuZCwgR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50NjQgb2Zm
c2V0KTsKICAgICAKLSAgICAvKiBNdWx0aXBsZSBSZW5kZXIgVGFyZ2V0cyAqLwotICAgIHZvaWQg
ZHJhd0J1ZmZlcnMoVmVjdG9yPEdDM0RlbnVtPiBidWZmZXJzKTsKKyAgICAvLyBNdWx0aXBsZSBy
ZW5kZXIgdGFyZ2V0cworICAgIHZvaWQgZHJhd0J1ZmZlcnMoY29uc3QgVmVjdG9yPEdDM0RlbnVt
PiYgYnVmZmVycyk7CiAgICAgdm9pZCBjbGVhckJ1ZmZlcml2KEdDM0RlbnVtIGJ1ZmZlciwgR0Mz
RGludCBkcmF3YnVmZmVyLCBSZWZQdHI8SW50MzJBcnJheT4mJiB2YWx1ZSk7CiAgICAgdm9pZCBj
bGVhckJ1ZmZlcnVpdihHQzNEZW51bSBidWZmZXIsIEdDM0RpbnQgZHJhd2J1ZmZlciwgUmVmUHRy
PFVpbnQzMkFycmF5PiYmIHZhbHVlKTsKICAgICB2b2lkIGNsZWFyQnVmZmVyZnYoR0MzRGVudW0g
YnVmZmVyLCBHQzNEaW50IGRyYXdidWZmZXIsIFJlZlB0cjxGbG9hdDMyQXJyYXk+JiYgdmFsdWUp
OwogICAgIHZvaWQgY2xlYXJCdWZmZXJmaShHQzNEZW51bSBidWZmZXIsIEdDM0RpbnQgZHJhd2J1
ZmZlciwgR0MzRGZsb2F0IGRlcHRoLCBHQzNEaW50IHN0ZW5jaWwpOwogICAgIAotICAgIC8qIFF1
ZXJ5IE9iamVjdHMgKi8KKyAgICAvLyBRdWVyeSBvYmplY3RzCiAgICAgUmVmUHRyPFdlYkdMUXVl
cnk+IGNyZWF0ZVF1ZXJ5KCk7Ci0gICAgdm9pZCBkZWxldGVRdWVyeShXZWJHTFF1ZXJ5KiBxdWVy
eSk7Ci0gICAgR0MzRGJvb2xlYW4gaXNRdWVyeShXZWJHTFF1ZXJ5KiBxdWVyeSk7Ci0gICAgdm9p
ZCBiZWdpblF1ZXJ5KEdDM0RlbnVtIHRhcmdldCwgV2ViR0xRdWVyeSogcXVlcnkpOworICAgIHZv
aWQgZGVsZXRlUXVlcnkoV2ViR0xRdWVyeSopOworICAgIEdDM0Rib29sZWFuIGlzUXVlcnkoV2Vi
R0xRdWVyeSopOworICAgIHZvaWQgYmVnaW5RdWVyeShHQzNEZW51bSB0YXJnZXQsIFdlYkdMUXVl
cnkqKTsKICAgICB2b2lkIGVuZFF1ZXJ5KEdDM0RlbnVtIHRhcmdldCk7CiAgICAgUmVmUHRyPFdl
YkdMUXVlcnk+IGdldFF1ZXJ5KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOwotICAg
IFdlYkdMR2V0SW5mbyBnZXRRdWVyeVBhcmFtZXRlcihXZWJHTFF1ZXJ5KiBxdWVyeSwgR0MzRGVu
dW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdMUXVlcnkqLCBH
QzNEZW51bSBwbmFtZSk7CiAgICAgCi0gICAgLyogU2FtcGxlciBPYmplY3RzICovCisgICAgLy8g
U2FtcGxlciBvYmplY3RzCiAgICAgUmVmUHRyPFdlYkdMU2FtcGxlcj4gY3JlYXRlU2FtcGxlcigp
OwotICAgIHZvaWQgZGVsZXRlU2FtcGxlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIpOwotICAgIEdD
M0Rib29sZWFuIGlzU2FtcGxlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIpOwotICAgIHZvaWQgYmlu
ZFNhbXBsZXIoR0MzRHVpbnQgdW5pdCwgV2ViR0xTYW1wbGVyKiBzYW1wbGVyKTsKLSAgICB2b2lk
IHNhbXBsZXJQYXJhbWV0ZXJpKFdlYkdMU2FtcGxlciogc2FtcGxlciwgR0MzRGVudW0gcG5hbWUs
IEdDM0RpbnQgcGFyYW0pOwotICAgIHZvaWQgc2FtcGxlclBhcmFtZXRlcmYoV2ViR0xTYW1wbGVy
KiBzYW1wbGVyLCBHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0IHBhcmFtKTsKLSAgICBXZWJHTEdl
dEluZm8gZ2V0U2FtcGxlclBhcmFtZXRlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIsIEdDM0RlbnVt
IHBuYW1lKTsKKyAgICB2b2lkIGRlbGV0ZVNhbXBsZXIoV2ViR0xTYW1wbGVyKik7CisgICAgR0Mz
RGJvb2xlYW4gaXNTYW1wbGVyKFdlYkdMU2FtcGxlciopOworICAgIHZvaWQgYmluZFNhbXBsZXIo
R0MzRHVpbnQgdW5pdCwgV2ViR0xTYW1wbGVyKik7CisgICAgdm9pZCBzYW1wbGVyUGFyYW1ldGVy
aShXZWJHTFNhbXBsZXIqLCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7CisgICAgdm9p
ZCBzYW1wbGVyUGFyYW1ldGVyZihXZWJHTFNhbXBsZXIqLCBHQzNEZW51bSBwbmFtZSwgR0MzRGZs
b2F0IHBhcmFtKTsKKyAgICBXZWJHTEFueSBnZXRTYW1wbGVyUGFyYW1ldGVyKFdlYkdMU2FtcGxl
ciosIEdDM0RlbnVtIHBuYW1lKTsKICAgICAKLSAgICAvKiBTeW5jIG9iamVjdHMgKi8KKyAgICAv
LyBTeW5jIG9iamVjdHMKICAgICBSZWZQdHI8V2ViR0xTeW5jPiBmZW5jZVN5bmMoR0MzRGVudW0g
Y29uZGl0aW9uLCBHQzNEYml0ZmllbGQgZmxhZ3MpOwotICAgIEdDM0Rib29sZWFuIGlzU3luYyhX
ZWJHTFN5bmMqIHN5bmMpOwotICAgIHZvaWQgZGVsZXRlU3luYyhXZWJHTFN5bmMqIHN5bmMpOwot
ICAgIEdDM0RlbnVtIGNsaWVudFdhaXRTeW5jKFdlYkdMU3luYyogc3luYywgR0MzRGJpdGZpZWxk
IGZsYWdzLCBHQzNEdWludDY0IHRpbWVvdXQpOwotICAgIHZvaWQgd2FpdFN5bmMoV2ViR0xTeW5j
KiBzeW5jLCBHQzNEYml0ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7Ci0gICAgV2Vi
R0xHZXRJbmZvIGdldFN5bmNQYXJhbWV0ZXIoV2ViR0xTeW5jKiBzeW5jLCBHQzNEZW51bSBwbmFt
ZSk7CisgICAgR0MzRGJvb2xlYW4gaXNTeW5jKFdlYkdMU3luYyopOworICAgIHZvaWQgZGVsZXRl
U3luYyhXZWJHTFN5bmMqKTsKKyAgICBHQzNEZW51bSBjbGllbnRXYWl0U3luYyhXZWJHTFN5bmMq
LCBHQzNEYml0ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7CisgICAgdm9pZCB3YWl0
U3luYyhXZWJHTFN5bmMqLCBHQzNEYml0ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7
CisgICAgV2ViR0xBbnkgZ2V0U3luY1BhcmFtZXRlcihXZWJHTFN5bmMqLCBHQzNEZW51bSBwbmFt
ZSk7CiAgICAgCi0gICAgLyogVHJhbnNmb3JtIEZlZWRiYWNrICovCisgICAgLy8gVHJhbnNmb3Jt
IGZlZWRiYWNrCiAgICAgUmVmUHRyPFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+IGNyZWF0ZVRyYW5z
Zm9ybUZlZWRiYWNrKCk7CiAgICAgdm9pZCBkZWxldGVUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRy
YW5zZm9ybUZlZWRiYWNrKiBpZCk7CiAgICAgR0MzRGJvb2xlYW4gaXNUcmFuc2Zvcm1GZWVkYmFj
ayhXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKiBpZCk7CiAgICAgdm9pZCBiaW5kVHJhbnNmb3JtRmVl
ZGJhY2soR0MzRGVudW0gdGFyZ2V0LCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKiBpZCk7CiAgICAg
dm9pZCBiZWdpblRyYW5zZm9ybUZlZWRiYWNrKEdDM0RlbnVtIHByaW1pdGl2ZU1vZGUpOwogICAg
IHZvaWQgZW5kVHJhbnNmb3JtRmVlZGJhY2soKTsKLSAgICB2b2lkIHRyYW5zZm9ybUZlZWRiYWNr
VmFyeWluZ3MoV2ViR0xQcm9ncmFtKiwgVmVjdG9yPFN0cmluZz4gdmFyeWluZ3MsIEdDM0RlbnVt
IGJ1ZmZlck1vZGUpOworICAgIHZvaWQgdHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncyhXZWJHTFBy
b2dyYW0qLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdmFyeWluZ3MsIEdDM0RlbnVtIGJ1ZmZlck1v
ZGUpOwogICAgIFJlZlB0cjxXZWJHTEFjdGl2ZUluZm8+IGdldFRyYW5zZm9ybUZlZWRiYWNrVmFy
eWluZyhXZWJHTFByb2dyYW0qLCBHQzNEdWludCBpbmRleCk7CiAgICAgdm9pZCBwYXVzZVRyYW5z
Zm9ybUZlZWRiYWNrKCk7CiAgICAgdm9pZCByZXN1bWVUcmFuc2Zvcm1GZWVkYmFjaygpOwogICAg
IAotICAgIC8qIFVuaWZvcm0gQnVmZmVyIE9iamVjdHMgYW5kIFRyYW5zZm9ybSBGZWVkYmFjayBC
dWZmZXJzICovCi0gICAgdm9pZCBiaW5kQnVmZmVyQmFzZShHQzNEZW51bSB0YXJnZXQsIEdDM0R1
aW50IGluZGV4LCBXZWJHTEJ1ZmZlciogYnVmZmVyKTsKLSAgICB2b2lkIGJpbmRCdWZmZXJSYW5n
ZShHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4LCBXZWJHTEJ1ZmZlciogYnVmZmVyLCBH
QzNEaW50NjQgb2Zmc2V0LCBHQzNEaW50NjQgc2l6ZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWludCBpbmRleCk7Ci0gICAgVWlu
dDMyQXJyYXkqIGdldFVuaWZvcm1JbmRpY2VzKFdlYkdMUHJvZ3JhbSosIFZlY3RvcjxTdHJpbmc+
IHVuaWZvcm1OYW1lcyk7CisgICAgLy8gVW5pZm9ybSBidWZmZXIgb2JqZWN0cyBhbmQgdHJhbnNm
b3JtIGZlZWRiYWNrIGJ1ZmZlcnMKKyAgICB2b2lkIGJpbmRCdWZmZXJCYXNlKEdDM0RlbnVtIHRh
cmdldCwgR0MzRHVpbnQgaW5kZXgsIFdlYkdMQnVmZmVyKik7CisgICAgdm9pZCBiaW5kQnVmZmVy
UmFuZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWludCBpbmRleCwgV2ViR0xCdWZmZXIqLCBHQzNE
aW50NjQgb2Zmc2V0LCBHQzNEaW50NjQgc2l6ZSk7CisgICAgV2ViR0xBbnkgZ2V0SW5kZXhlZFBh
cmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4KTsKKyAgICBVaW50MzJBcnJh
eSogZ2V0VW5pZm9ybUluZGljZXMoV2ViR0xQcm9ncmFtKiwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IHVuaWZvcm1OYW1lcyk7CiAgICAgSW50MzJBcnJheSogZ2V0QWN0aXZlVW5pZm9ybXMoV2ViR0xQ
cm9ncmFtKiwgUmVmUHRyPFVpbnQzMkFycmF5PiYmIHVuaWZvcm1JbmRpY2VzLCBHQzNEZW51bSBw
bmFtZSk7Ci0gICAgR0MzRHVpbnQgZ2V0VW5pZm9ybUJsb2NrSW5kZXgoV2ViR0xQcm9ncmFtKiwg
U3RyaW5nIHVuaWZvcm1CbG9ja05hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRBY3RpdmVVbmlm
b3JtQmxvY2tQYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5k
ZXgsIEdDM0RlbnVtIHBuYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0QWN0aXZlVW5pZm9ybUJs
b2NrTmFtZShXZWJHTFByb2dyYW0qLCBHQzNEdWludCB1bmlmb3JtQmxvY2tJbmRleCk7CisgICAg
R0MzRHVpbnQgZ2V0VW5pZm9ybUJsb2NrSW5kZXgoV2ViR0xQcm9ncmFtKiwgY29uc3QgU3RyaW5n
JiB1bmlmb3JtQmxvY2tOYW1lKTsKKyAgICBXZWJHTEFueSBnZXRBY3RpdmVVbmlmb3JtQmxvY2tQ
YXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdDM0Rl
bnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBnZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKFdlYkdM
UHJvZ3JhbSosIEdDM0R1aW50IHVuaWZvcm1CbG9ja0luZGV4KTsKICAgICB2b2lkIHVuaWZvcm1C
bG9ja0JpbmRpbmcoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdD
M0R1aW50IHVuaWZvcm1CbG9ja0JpbmRpbmcpOwogICAgIAotICAgIC8qIFZlcnRleCBBcnJheSBP
YmplY3RzICovCisgICAgLy8gVmVydGV4IGFycmF5IG9iamVjdHMKICAgICBSZWZQdHI8V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdD4gY3JlYXRlVmVydGV4QXJyYXkoKTsKICAgICB2b2lkIGRlbGV0ZVZl
cnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIHZlcnRleEFycmF5KTsKICAgICBHQzNE
Ym9vbGVhbiBpc1ZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIHZlcnRleEFycmF5
KTsKQEAgLTE3MiwxMCArMTcxLDEwIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBpc1dl
YkdMMigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIC8qIEV4dGVuc2lvbnMg
Ki8KKyAgICAvLyBFeHRlbnNpb25zCiAgICAgV2ViR0xFeHRlbnNpb24qIGdldEV4dGVuc2lvbihj
b25zdCBTdHJpbmcmKSBmaW5hbDsKICAgICBWZWN0b3I8U3RyaW5nPiBnZXRTdXBwb3J0ZWRFeHRl
bnNpb25zKCkgZmluYWw7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFBhcmFtZXRlcihHQzNEZW51bSBw
bmFtZSkgZmluYWw7CisgICAgV2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSBm
aW5hbDsKIAogICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZShHQzNEZW51bSB0YXJnZXQsIEdD
M0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQp
IGZpbmFsOwogICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1vZGUpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUy
NWRiMmFhYmNiMTk3NjAwNGZhM2NkODIzNzU1Yjc4ZjVmYzQwODgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5jcHAKQEAgLTAsMCArMSwxMTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xBbnkuaCIKKworI2lmIEVOQUJMRShXRUJHTCkK
KworI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTV2ViR0xCdWZmZXIuaCIK
KyNpbmNsdWRlICJKU1dlYkdMRnJhbWVidWZmZXIuaCIKKyNpbmNsdWRlICJKU1dlYkdMUHJvZ3Jh
bS5oIgorI2luY2x1ZGUgIkpTV2ViR0xSZW5kZXJidWZmZXIuaCIKKyNpbmNsdWRlICJKU1dlYkdM
VGV4dHVyZS5oIgorI2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgorCisj
aWYgRU5BQkxFKFdFQkdMMikKKyNpbmNsdWRlICJKU1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIK
KyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisK
Ky8vIEZJWE1FOiBUaGlzIGxpa2VseSBjYW4gYmUgYXV0b2dlbmVyYXRlZCB3aXRoIGEgYml0IG9m
IHdvcmsuCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3Qm
IGdsb2JhbE9iamVjdCwgY29uc3QgV2ViR0xBbnkmIGFueSkKK3sKKyAgICByZXR1cm4gV1RGOjpz
d2l0Y2hPbihhbnksCisgICAgICAgIFtdIChzdGQ6Om51bGxwdHJfdCkgeworICAgICAgICAgICAg
cmV0dXJuIGpzTnVsbCgpOworICAgICAgICB9LAorICAgICAgICBbXSAoYm9vbCB2YWx1ZSkgewor
ICAgICAgICAgICAgcmV0dXJuIGpzQm9vbGVhbih2YWx1ZSk7CisgICAgICAgIH0sCisgICAgICAg
IFtdIChpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBqc051bWJlcih2YWx1ZSk7Cisg
ICAgICAgIH0sCisgICAgICAgIFtdICh1bnNpZ25lZCB2YWx1ZSkgeworICAgICAgICAgICAgcmV0
dXJuIGpzTnVtYmVyKHZhbHVlKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10gKGxvbmcgbG9uZyB2
YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHZhbHVlKTsKKyAgICAgICAgfSwK
KyAgICAgICAgW10gKGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIo
dmFsdWUpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFN0cmluZyYgdmFsdWUpIHsK
KyAgICAgICAgICAgIHJldHVybiBqc1N0cmluZ1dpdGhDYWNoZSgmc3RhdGUsIHZhbHVlKTsKKyAg
ICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBWZWN0b3I8Ym9vbD4mIHZhbHVlcykgeworICAg
ICAgICAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgbGlzdDsKKyAgICAgICAgICAgIGZvciAoYXV0
byYgdmFsdWUgOiB2YWx1ZXMpCisgICAgICAgICAgICAgICAgbGlzdC5hcHBlbmQoanNCb29sZWFu
KHZhbHVlKSk7CisgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoJnN0YXRlLCAwLCAm
Z2xvYmFsT2JqZWN0LCBsaXN0KTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQ
dHI8RmxvYXQzMkFycmF5PiYgYXJyYXkpIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0
ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0g
KGNvbnN0IFJlZlB0cjxJbnQzMkFycmF5PiYgYXJyYXkpIHsKKyAgICAgICAgICAgIHJldHVybiB0
b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAgICB9LAorICAg
ICAgICBbJl0gKGNvbnN0IFJlZlB0cjxVaW50OEFycmF5PiYgYXJyYXkpIHsKKyAgICAgICAgICAg
IHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAg
ICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxVaW50MzJBcnJheT4mIGFycmF5KSB7Cisg
ICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIGFycmF5LmdldCgp
KTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2ViR0xCdWZmZXI+JiBi
dWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwg
YnVmZmVyLmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2Vi
R0xGcmFtZWJ1ZmZlcj4mIGJ1ZmZlcikgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRl
LCAmZ2xvYmFsT2JqZWN0LCBidWZmZXIuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0g
KGNvbnN0IFJlZlB0cjxXZWJHTFByb2dyYW0+JiBwcm9ncmFtKSB7CisgICAgICAgICAgICByZXR1
cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHByb2dyYW0uZ2V0KCkpOworICAgICAgICB9
LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4mIGJ1ZmZlcikg
eworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBidWZmZXIu
Z2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTFRleHR1
cmU+JiB0ZXh0dXJlKSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxP
YmplY3QsIHRleHR1cmUuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJl
ZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiYgYXJyYXkpIHsKKyAgICAgICAgICAgIHJl
dHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAgICB9
CisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAgICAgLAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0
cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiYgYXJyYXkpIHsKKyAgICAgICAgICAgIHJldHVybiB0
b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAgICB9CisjZW5k
aWYKKyAgICApOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xBbnkuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
QW55LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uY2M3YmI3Zjk4NzM5NGYyNzNhNzRiODgxYjAwNzgwZTc3M2I2MDI2
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQW55
LmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQkdMKQorCisjaW5jbHVkZSAi
V2ViR0xCdWZmZXIuaCIKKyNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCisjaW5jbHVkZSAi
V2ViR0xQcm9ncmFtLmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJidWZmZXIuaCIKKyNpbmNsdWRl
ICJXZWJHTFRleHR1cmUuaCIKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgi
CisjaW5jbHVkZSA8cnVudGltZS9GbG9hdDMyQXJyYXkuaD4KKyNpbmNsdWRlIDxydW50aW1lL0lu
dDMyQXJyYXkuaD4KKyNpbmNsdWRlIDxydW50aW1lL1VpbnQzMkFycmF5Lmg+CisjaW5jbHVkZSA8
cnVudGltZS9VaW50OEFycmF5Lmg+CisKKyNpZiBFTkFCTEUoV0VCR0wyKQorI2luY2x1ZGUgIldl
YkdMVmVydGV4QXJyYXlPYmplY3QuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgSlNDIHsKK2NsYXNz
IEV4ZWNTdGF0ZTsKK2NsYXNzIEpTVmFsdWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CisKK3VzaW5nIFdlYkdMQW55ID0gVmFyaWFudDxzdGQ6
Om51bGxwdHJfdCwgYm9vbCwgaW50LCB1bnNpZ25lZCwgbG9uZyBsb25nLCBmbG9hdCwgU3RyaW5n
LCBWZWN0b3I8Ym9vbD4sCisgICAgUmVmUHRyPEZsb2F0MzJBcnJheT4sCisgICAgUmVmUHRyPElu
dDMyQXJyYXk+LAorICAgIFJlZlB0cjxVaW50MzJBcnJheT4sCisgICAgUmVmUHRyPFVpbnQ4QXJy
YXk+LAorICAgIFJlZlB0cjxXZWJHTEJ1ZmZlcj4sCisgICAgUmVmUHRyPFdlYkdMRnJhbWVidWZm
ZXI+LAorICAgIFJlZlB0cjxXZWJHTFByb2dyYW0+LAorICAgIFJlZlB0cjxXZWJHTFJlbmRlcmJ1
ZmZlcj4sCisgICAgUmVmUHRyPFdlYkdMVGV4dHVyZT4sCisgICAgUmVmUHRyPFdlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVM+CisjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAsIFJlZlB0cjxXZWJHTFZl
cnRleEFycmF5T2JqZWN0PgorI2VuZGlmCis+OworCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4
ZWNTdGF0ZSYsIEpTRE9NR2xvYmFsT2JqZWN0JiwgY29uc3QgV2ViR0xBbnkmKTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQnVmZmVyLmNwcAppbmRleCBkZjE3NzExZGIwYjg5ZWFkMDM4ZjczYzMxZDIyZmUxZTMyYTVl
M2NjLi5iZGI4MWQ2ZTU1ZmQ3NDNlZWI3ZDA3YTMyYjQwMjQzMGUzOWM2OWI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDExICsyNCwxMCBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgogCiAjaWYg
RU5BQkxFKFdFQkdMKQogCi0jaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKLQogI2luY2x1ZGUgIldl
YkdMQ29udGV4dEdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5o
IgogCkBAIC00MSw5ICs0MCw2IEBAIFJlZjxXZWJHTEJ1ZmZlcj4gV2ViR0xCdWZmZXI6OmNyZWF0
ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgpCiAKIFdlYkdMQnVmZmVyOjpXZWJHTEJ1
ZmZlcihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgpCiAgICAgOiBXZWJHTFNoYXJlZE9i
amVjdChjdHgpCi0gICAgLCBtX3RhcmdldCgwKQotICAgICwgbV9ieXRlTGVuZ3RoKDApCi0gICAg
LCBtX25leHRBdmFpbGFibGVDYWNoZUVudHJ5KDApCiB7CiAgICAgc2V0T2JqZWN0KGN0eC5ncmFw
aGljc0NvbnRleHQzRCgpLT5jcmVhdGVCdWZmZXIoKSk7CiAgICAgY2xlYXJDYWNoZWRNYXhJbmRp
Y2VzKCk7CkBAIC01Niw3ICs1Miw3IEBAIFdlYkdMQnVmZmVyOjp+V2ViR0xCdWZmZXIoKQogCiB2
b2lkIFdlYkdMQnVmZmVyOjpkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiBjb250
ZXh0M2QsIFBsYXRmb3JtM0RPYmplY3Qgb2JqZWN0KQogewotICAgICAgY29udGV4dDNkLT5kZWxl
dGVCdWZmZXIob2JqZWN0KTsKKyAgICBjb250ZXh0M2QtPmRlbGV0ZUJ1ZmZlcihvYmplY3QpOwog
fQogCiBib29sIFdlYkdMQnVmZmVyOjphc3NvY2lhdGVCdWZmZXJEYXRhSW1wbChjb25zdCB2b2lk
KiBkYXRhLCBHQzNEc2l6ZWlwdHIgYnl0ZUxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTEJ1ZmZlci5oCmluZGV4IDFiNDE0ZThmYzlhMTM1YTljZWMwYmNkNmM2ZjIyZTA5YzI3
NzFkNGUuLmQzYmQ5YTAzOGVjYjhkNzBjN2QwNDc4ZWM0MDhjOTIxYTQ3OTMwZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw5ICszNyw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgV2ViR0xCdWZmZXIgZmluYWwgOiBwdWJsaWMgV2ViR0xTaGFy
ZWRPYmplY3QgewogcHVibGljOgotICAgIHZpcnR1YWwgfldlYkdMQnVmZmVyKCk7Ci0KICAgICBz
dGF0aWMgUmVmPFdlYkdMQnVmZmVyPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYp
OworICAgIHZpcnR1YWwgfldlYkdMQnVmZmVyKCk7CiAKICAgICBib29sIGFzc29jaWF0ZUJ1ZmZl
ckRhdGEoR0MzRHNpemVpcHRyIHNpemUpOwogICAgIGJvb2wgYXNzb2NpYXRlQnVmZmVyRGF0YShK
U0M6OkFycmF5QnVmZmVyKik7CkBAIC03MCwxMiArNjksMTAgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3Qp
IG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIGJvb2wgaXNCdWZmZXIoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9Ci0KLSAgICBHQzNEZW51bSBtX3RhcmdldDsKKyAgICBHQzNEZW51
bSBtX3RhcmdldCB7IDAgfTsKIAogICAgIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiBtX2VsZW1l
bnRBcnJheUJ1ZmZlcjsKLSAgICBHQzNEc2l6ZWlwdHIgbV9ieXRlTGVuZ3RoOworICAgIEdDM0Rz
aXplaXB0ciBtX2J5dGVMZW5ndGggeyAwIH07CiAKICAgICAvLyBPcHRpbWl6YXRpb24gZm9yIGlu
ZGV4IHZhbGlkYXRpb24uIEZvciBlYWNoIHR5cGUgb2YgaW5kZXgKICAgICAvLyAoaS5lLiwgVU5T
SUdORURfU0hPUlQpLCBjYWNoZSB0aGUgbWF4aW11bSBpbmRleCBpbiB0aGUKQEAgLTkyLDcgKzg5
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBhbmQgVU5TSUdORURfU0hPUlQpLCBidXQgbWlnaHQgYXMg
d2VsbCBsZWF2ZSBvcGVuIHRoZQogICAgIC8vIHBvc3NpYmlsaXR5IG9mIGFkZGluZyBvdGhlcnMu
CiAgICAgTWF4SW5kZXhDYWNoZUVudHJ5IG1fbWF4SW5kZXhDYWNoZVs0XTsKLSAgICB1bnNpZ25l
ZCBpbnQgbV9uZXh0QXZhaWxhYmxlQ2FjaGVFbnRyeTsKKyAgICB1bnNpZ25lZCBtX25leHRBdmFp
bGFibGVDYWNoZUVudHJ5IHsgMCB9OwogCiAgICAgLy8gQ2xlYXJzIGFsbCBvZiB0aGUgY2FjaGVk
IG1heCBpbmRpY2VzLgogICAgIHZvaWQgY2xlYXJDYWNoZWRNYXhJbmRpY2VzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5jcHAKaW5kZXggMjEz
M2YzM2VmYzhjZTA5ODdiNDk4MzNjYmMxMGZjNzU5MTJhMDgyMi4uOWRkZWYxNThjZDBhY2RlNmI2
OGNhZGRkMmJjOTNjZWQ1YTgzZGVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwxMSArMjQsMTAgQEAKICAqLwogCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKIAogI2lmIEVOQUJM
RShXRUJHTCkKIAotI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCi0KICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
aCIKICNpbmNsdWRlICJXZWJHTFNoYXJlZE9iamVjdC5oIgpAQCAtMzcsMTEgKzM2LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBSZWY8V2ViR0xDb250ZXh0R3JvdXA+IFdlYkdMQ29udGV4dEdy
b3VwOjpjcmVhdGUoKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdMQ29udGV4dEdy
b3VwKCkpOwotfQotCi1XZWJHTENvbnRleHRHcm91cDo6V2ViR0xDb250ZXh0R3JvdXAoKQotewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdMQ29udGV4dEdyb3VwKTsKIH0KIAogV2ViR0xD
b250ZXh0R3JvdXA6On5XZWJHTENvbnRleHRHcm91cCgpCkBAIC00OSw0MyArNDQsNDAgQEAgV2Vi
R0xDb250ZXh0R3JvdXA6On5XZWJHTENvbnRleHRHcm91cCgpCiAgICAgZGV0YWNoQW5kUmVtb3Zl
QWxsT2JqZWN0cygpOwogfQogCi1HcmFwaGljc0NvbnRleHQzRCogV2ViR0xDb250ZXh0R3JvdXA6
OmdldEFHcmFwaGljc0NvbnRleHQzRCgpCitHcmFwaGljc0NvbnRleHQzRCYgV2ViR0xDb250ZXh0
R3JvdXA6OmdldEFHcmFwaGljc0NvbnRleHQzRCgpCiB7CiAgICAgQVNTRVJUKCFtX2NvbnRleHRz
LmlzRW1wdHkoKSk7Ci0gICAgSGFzaFNldDxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKj46Oml0
ZXJhdG9yIGl0ID0gbV9jb250ZXh0cy5iZWdpbigpOwotICAgIHJldHVybiAoKml0KS0+Z3JhcGhp
Y3NDb250ZXh0M0QoKTsKKyAgICByZXR1cm4gKigqbV9jb250ZXh0cy5iZWdpbigpKS0+Z3JhcGhp
Y3NDb250ZXh0M0QoKTsKIH0KIAotdm9pZCBXZWJHTENvbnRleHRHcm91cDo6YWRkQ29udGV4dChX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjb250ZXh0KQordm9pZCBXZWJHTENvbnRleHRHcm91
cDo6YWRkQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQogewotICAg
IG1fY29udGV4dHMuYWRkKGNvbnRleHQpOworICAgIG1fY29udGV4dHMuYWRkKCZjb250ZXh0KTsK
IH0KIAotdm9pZCBXZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlKiBjb250ZXh0KQordm9pZCBXZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlQ29u
dGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQogewogICAgIC8vIFdlIG11
c3QgY2FsbCBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzIGJlZm9yZSByZW1vdmluZyB0aGUgbGFz
dCBjb250ZXh0LgotICAgIGlmIChtX2NvbnRleHRzLnNpemUoKSA9PSAxICYmIG1fY29udGV4dHMu
Y29udGFpbnMoY29udGV4dCkpCisgICAgaWYgKG1fY29udGV4dHMuc2l6ZSgpID09IDEgJiYgbV9j
b250ZXh0cy5jb250YWlucygmY29udGV4dCkpCiAgICAgICAgIGRldGFjaEFuZFJlbW92ZUFsbE9i
amVjdHMoKTsKIAotICAgIG1fY29udGV4dHMucmVtb3ZlKGNvbnRleHQpOworICAgIG1fY29udGV4
dHMucmVtb3ZlKCZjb250ZXh0KTsKIH0KIAotdm9pZCBXZWJHTENvbnRleHRHcm91cDo6cmVtb3Zl
T2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMQ29udGV4dEdyb3Vw
OjpyZW1vdmVPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmIG9iamVjdCkKIHsKLSAgICBtX2dyb3Vw
T2JqZWN0cy5yZW1vdmUob2JqZWN0KTsKKyAgICBtX2dyb3VwT2JqZWN0cy5yZW1vdmUoJm9iamVj
dCk7CiB9CiAKLXZvaWQgV2ViR0xDb250ZXh0R3JvdXA6OmFkZE9iamVjdChXZWJHTFNoYXJlZE9i
amVjdCogb2JqZWN0KQordm9pZCBXZWJHTENvbnRleHRHcm91cDo6YWRkT2JqZWN0KFdlYkdMU2hh
cmVkT2JqZWN0JiBvYmplY3QpCiB7Ci0gICAgbV9ncm91cE9iamVjdHMuYWRkKG9iamVjdCk7Cisg
ICAgbV9ncm91cE9iamVjdHMuYWRkKCZvYmplY3QpOwogfQogCiB2b2lkIFdlYkdMQ29udGV4dEdy
b3VwOjpkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCkKIHsKLSAgICB3aGlsZSAoIW1fZ3JvdXBP
YmplY3RzLmlzRW1wdHkoKSkgewotICAgICAgICBIYXNoU2V0PFdlYkdMU2hhcmVkT2JqZWN0Kj46
Oml0ZXJhdG9yIGl0ID0gbV9ncm91cE9iamVjdHMuYmVnaW4oKTsKLSAgICAgICAgKCppdCktPmRl
dGFjaENvbnRleHRHcm91cCgpOwotICAgIH0KKyAgICB3aGlsZSAoIW1fZ3JvdXBPYmplY3RzLmlz
RW1wdHkoKSkKKyAgICAgICAgKCptX2dyb3VwT2JqZWN0cy5iZWdpbigpKS0+ZGV0YWNoQ29udGV4
dEdyb3VwKCk7CiB9CiAKIHZvaWQgV2ViR0xDb250ZXh0R3JvdXA6Omxvc2VDb250ZXh0R3JvdXAo
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6TG9zdENvbnRleHRNb2RlIG1vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaAppbmRleCA5ZDAxMGJm
Y2MyMDk5NmExNDY0ODU3YWZjZWVmM2M0YWE3YTZiOWI3Li4xMWI3MzcwMzIyNmUxMWJlM2U1NGY2
ZWJjNTYyMjIwYzJkMTU1YTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTENvbnRleHRHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQ29udGV4dEdyb3VwLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjYsMzUgKzI2LDI2IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7Ci1jbGFzcyBXZWJHTEV4dGVuc2lvbjsKLWNsYXNzIFdl
YkdMU2hhcmVkT2JqZWN0OwotY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTsKLQotY2xh
c3MgV2ViR0xDb250ZXh0R3JvdXAgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHTENvbnRl
eHRHcm91cD4geworY2xhc3MgV2ViR0xDb250ZXh0R3JvdXAgOiBwdWJsaWMgUmVmQ291bnRlZDxX
ZWJHTENvbnRleHRHcm91cD4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViR0xDb250ZXh0
R3JvdXA+IGNyZWF0ZSgpOwogICAgIH5XZWJHTENvbnRleHRHcm91cCgpOwogCi0gICAgdm9pZCBh
ZGRDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqKTsKLSAgICB2b2lkIHJlbW92ZUNv
bnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSopOworICAgIHZvaWQgYWRkQ29udGV4dChX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CisgICAgdm9pZCByZW1vdmVDb250ZXh0KFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKIAotICAgIHZvaWQgYWRkT2JqZWN0KFdlYkdMU2hhcmVk
T2JqZWN0Kik7Ci0gICAgdm9pZCByZW1vdmVPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqKTsKKyAg
ICB2b2lkIGFkZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCYpOworICAgIHZvaWQgcmVtb3ZlT2Jq
ZWN0KFdlYkdMU2hhcmVkT2JqZWN0Jik7CiAKLSAgICBHcmFwaGljc0NvbnRleHQzRCogZ2V0QUdy
YXBoaWNzQ29udGV4dDNEKCk7CisgICAgR3JhcGhpY3NDb250ZXh0M0QmIGdldEFHcmFwaGljc0Nv
bnRleHQzRCgpOwogCiAgICAgdm9pZCBsb3NlQ29udGV4dEdyb3VwKFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6Okxvc3RDb250ZXh0TW9kZSk7CiAKLSAgcHJpdmF0ZToKLSAgICBmcmllbmQgY2xh
c3MgV2ViR0xPYmplY3Q7Ci0KLSAgICBXZWJHTENvbnRleHRHcm91cCgpOworcHJpdmF0ZToKKyAg
ICBXZWJHTENvbnRleHRHcm91cCgpID0gZGVmYXVsdDsKIAogICAgIHZvaWQgZGV0YWNoQW5kUmVt
b3ZlQWxsT2JqZWN0cygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTENvbnRleHRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xDb250ZXh0T2JqZWN0LmNwcAppbmRleCA1MjNlNmU2NDJkNzQ5YjYwMjJmMzc3M2E4OGVkZjRl
YTBlY2I5YmI4Li42YTFjN2FiMjk5OWM4NDVjZTlmZTQzMTI5MTQwZWMzY2JiYzQwNWVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAK
QEAgLTI0LDI1ICsyNCwyMyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJHTENvbnRleHRPYmplY3QuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUg
IldlYkdMQ29udGV4dE9iamVjdC5oIgotCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdlYkdMQ29udGV4dE9iamVjdDo6V2Vi
R0xDb250ZXh0T2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCi0gICAg
OiBXZWJHTE9iamVjdChjb250ZXh0KQotICAgICwgbV9jb250ZXh0KCZjb250ZXh0KQorICAgIDog
bV9jb250ZXh0KCZjb250ZXh0KQogewogfQogCiBXZWJHTENvbnRleHRPYmplY3Q6On5XZWJHTENv
bnRleHRPYmplY3QoKQogewogICAgIGlmIChtX2NvbnRleHQpCi0gICAgICAgIG1fY29udGV4dC0+
cmVtb3ZlQ29udGV4dE9iamVjdCh0aGlzKTsKKyAgICAgICAgbV9jb250ZXh0LT5yZW1vdmVDb250
ZXh0T2JqZWN0KCp0aGlzKTsKIH0KIAogdm9pZCBXZWJHTENvbnRleHRPYmplY3Q6OmRldGFjaENv
bnRleHQoKQpAQCAtNTAsMTQgKzQ4LDE0IEBAIHZvaWQgV2ViR0xDb250ZXh0T2JqZWN0OjpkZXRh
Y2hDb250ZXh0KCkKICAgICBkZXRhY2goKTsKICAgICBpZiAobV9jb250ZXh0KSB7CiAgICAgICAg
IGRlbGV0ZU9iamVjdChtX2NvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNEKCkpOwotICAgICAgICBt
X2NvbnRleHQtPnJlbW92ZUNvbnRleHRPYmplY3QodGhpcyk7Ci0gICAgICAgIG1fY29udGV4dCA9
IDA7CisgICAgICAgIG1fY29udGV4dC0+cmVtb3ZlQ29udGV4dE9iamVjdCgqdGhpcyk7CisgICAg
ICAgIG1fY29udGV4dCA9IG51bGxwdHI7CiAgICAgfQogfQogCiBHcmFwaGljc0NvbnRleHQzRCog
V2ViR0xDb250ZXh0T2JqZWN0OjpnZXRBR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdAogewotICAg
IHJldHVybiBtX2NvbnRleHQgPyBtX2NvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNEKCkgOiAwOwor
ICAgIHJldHVybiBtX2NvbnRleHQgPyBtX2NvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNEKCkgOiBu
dWxscHRyOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTEZyYW1lYnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJh
bWVidWZmZXIuY3BwCmluZGV4IGY5YjdjMjAyMjg4M2Q1NzkyYjAyNWYwMjExZDAyZTRkYTZiNjY2
M2EuLmMyNzYyYjIzNjdiN2MzNDE5NmI0N2ZlZTNmOWVjMzRkZmNiYTA5ZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDExICsyNCwx
MCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTEZyYW1lYnVm
ZmVyLmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVy
LmgiCi0KICNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRH
cm91cC5oIgogI2luY2x1ZGUgIldlYkdMRHJhd0J1ZmZlcnMuaCIKQEAgLTYwNiw2ICs2MDUsOSBA
QCB2b2lkIFdlYkdMRnJhbWVidWZmZXI6OmRyYXdCdWZmZXJzKGNvbnN0IFZlY3RvcjxHQzNEZW51
bT4mIGJ1ZnMpCiB2b2lkIFdlYkdMRnJhbWVidWZmZXI6OmRyYXdCdWZmZXJzSWZOZWNlc3Nhcnko
Ym9vbCBmb3JjZSkKIHsKICNpZiBFTkFCTEUoV0VCR0wyKQorICAgIC8vIEZJWE1FOiBUaGUgbG9n
aWMgaGVyZSBzZWVtcyB3cm9uZy4gSWYgd2UgZG9uJ3QgaGF2ZSBXZWJHTCAyIGVuYWJsZWQgYXQg
YWxsLCB0aGVuCisgICAgLy8gd2Ugc2tpcCB0aGUgbV93ZWJnbERyYXdCdWZmZXJzIGNoZWNrLiBC
dXQgaWYgd2UgZG8gaGF2ZSBXZWJHTCAyIGVuYWJsZWQsIHRoZW4gd2UKKyAgICAvLyBwZXJmb3Jt
IHRoaXMgY2hlY2ssIGZvciBXZWJHTCAxIGNvbnRleHRzIG9ubHkuCiAgICAgaWYgKCFjb250ZXh0
KCktPm1fd2ViZ2xEcmF3QnVmZmVycyAmJiAhY29udGV4dCgpLT5pc1dlYkdMMigpKQogICAgICAg
ICByZXR1cm47CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMR2V0SW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldElu
Zm8uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZWFkMWNmZDYzNzQyYjAwZDUy
NDJkZTcxOTU3MjNhYjNlZjNkMWViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSwzNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
OSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkg
R29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKFdF
QkdMKQotCi0jaW5jbHVkZSAiV2ViR0xHZXRJbmZvLmgiCi0KLSNpbmNsdWRlIDxydW50aW1lL0Zs
b2F0MzJBcnJheS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSW50MzJBcnJheS5oPgotI2luY2x1ZGUg
PHJ1bnRpbWUvVWludDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL1VpbnQ4QXJyYXkuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhib29s
IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlQm9vbCkKLSAgICAsIG1fYm9vbCh2YWx1ZSkKLSAg
ICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0g
ICAgLCBtX2ludDY0KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKGNvbnN0
IGJvb2wqIHZhbHVlLCBpbnQgc2l6ZSkKLSAgICA6IG1fdHlwZShrVHlwZUJvb2xBcnJheSkKLSAg
ICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAg
LCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi17Ci0gICAgaWYgKCF2YWx1ZSB8
fCBzaXplIDw9MCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fYm9vbEFycmF5LnJlc2l6ZShzaXpl
KTsKLSAgICBmb3IgKGludCBpaSA9IDA7IGlpIDwgc2l6ZTsgKytpaSkKLSAgICAgICAgbV9ib29s
QXJyYXlbaWldID0gdmFsdWVbaWldOwotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhm
bG9hdCB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZUZsb2F0KQotICAgICwgbV9ib29sKGZhbHNl
KQotICAgICwgbV9mbG9hdCh2YWx1ZSkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVk
SW50KDApCi0gICAgLCBtX2ludDY0KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJ
bmZvKGludCB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZUludCkKLSAgICAsIG1fYm9vbChmYWxz
ZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KHZhbHVlKQotICAgICwgbV91bnNpZ25l
ZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0
SW5mbygpCi0gICAgOiBtX3R5cGUoa1R5cGVOdWxsKQotICAgICwgbV9ib29sKGZhbHNlKQotICAg
ICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAg
ICAsIG1faW50NjQoMCkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVN0cmluZykKLSAgICAsIG1fYm9vbChm
YWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3N0cmluZyh2
YWx1ZSkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLXsKLX0KLQot
V2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8odW5zaWduZWQgaW50IHZhbHVlKQotICAgIDogbV90
eXBlKGtUeXBlVW5zaWduZWRJbnQpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0
KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCh2YWx1ZSkKLSAgICAsIG1f
aW50NjQoMCkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8obG9uZyBsb25nIHZh
bHVlKQotICAgIDogbV90eXBlKGtUeXBlSW50NjQpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAg
LCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAg
ICwgbV9pbnQ2NCh2YWx1ZSkKLXsKLX0KLQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQ
YXNzUmVmUHRyPFdlYkdMQnVmZmVyPiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMQnVm
ZmVyKQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQo
MCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2Vi
Z2xCdWZmZXIodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NS
ZWZQdHI8RmxvYXQzMkFycmF5PiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMRmxvYXRB
cnJheSkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50
KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dl
YmdsRmxvYXRBcnJheSh2YWx1ZSkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8o
UGFzc1JlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdl
YkdMRnJhbWVidWZmZXIpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0g
ICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQot
ICAgICwgbV93ZWJnbEZyYW1lYnVmZmVyKHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86Oldl
YkdMR2V0SW5mbyhQYXNzUmVmUHRyPEludDMyQXJyYXk+IHZhbHVlKQotICAgIDogbV90eXBlKGtU
eXBlV2ViR0xJbnRBcnJheSkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkK
LSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDAp
Ci0gICAgLCBtX3dlYmdsSW50QXJyYXkodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2Vi
R0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xQcm9ncmFtPiB2YWx1ZSkKLSAgICA6IG1fdHlwZShr
VHlwZVdlYkdMUHJvZ3JhbSkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkK
LSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDAp
Ci0gICAgLCBtX3dlYmdsUHJvZ3JhbSh2YWx1ZSkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJH
TEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4gdmFsdWUpCi0gICAgOiBtX3R5
cGUoa1R5cGVXZWJHTFJlbmRlcmJ1ZmZlcikKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1f
ZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBt
X2ludDY0KDApCi0gICAgLCBtX3dlYmdsUmVuZGVyYnVmZmVyKHZhbHVlKQotewotfQotCi1XZWJH
TEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMVGV4dHVyZT4gdmFsdWUpCi0g
ICAgOiBtX3R5cGUoa1R5cGVXZWJHTFRleHR1cmUpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAg
LCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAg
ICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbFRleHR1cmUodmFsdWUpCi17Ci19Ci0KLVdlYkdM
R2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDhBcnJheT4gdmFsdWUpCi0gICAg
OiBtX3R5cGUoa1R5cGVXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KQotICAgICwgbV9ib29sKGZhbHNl
KQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQo
MCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xVbnNpZ25lZEJ5dGVBcnJheSh2YWx1
ZSkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxVaW50MzJB
cnJheT4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJHTFVuc2lnbmVkSW50QXJyYXkpCi0g
ICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAg
ICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbFVuc2ln
bmVkSW50QXJyYXkodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBh
c3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gdmFsdWUpCi0gICAgOiBtX3R5cGUo
a1R5cGVXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKQotICAgICwgbV9ib29sKGZhbHNlKQotICAg
ICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAg
ICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xWZXJ0ZXhBcnJheU9iamVjdE9FUyh2YWx1ZSkK
LXsKLX0KLQotI2lmIEVOQUJMRShXRUJHTDIpCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQ
YXNzUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IHZhbHVlKQotICAgIDogbV90eXBlKGtU
eXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1f
ZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBt
X2ludDY0KDApCi0gICAgLCBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3QodmFsdWUpCi17Ci19Ci0j
ZW5kaWYKLQotV2ViR0xHZXRJbmZvOjp+V2ViR0xHZXRJbmZvKCkKLXsKLX0KLQotV2ViR0xHZXRJ
bmZvOjpUeXBlIFdlYkdMR2V0SW5mbzo6Z2V0VHlwZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
dHlwZTsKLX0KLQotYm9vbCBXZWJHTEdldEluZm86OmdldEJvb2woKSBjb25zdAotewotICAgIEFT
U0VSVChnZXRUeXBlKCkgPT0ga1R5cGVCb29sKTsKLSAgICByZXR1cm4gbV9ib29sOwotfQotCi1j
b25zdCBWZWN0b3I8Ym9vbD4mIFdlYkdMR2V0SW5mbzo6Z2V0Qm9vbEFycmF5KCkgY29uc3QKLXsK
LSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlQm9vbEFycmF5KTsKLSAgICByZXR1cm4gbV9i
b29sQXJyYXk7Ci19Ci0KLWZsb2F0IFdlYkdMR2V0SW5mbzo6Z2V0RmxvYXQoKSBjb25zdAotewot
ICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVGbG9hdCk7Ci0gICAgcmV0dXJuIG1fZmxvYXQ7
Ci19Ci0KLWludCBXZWJHTEdldEluZm86OmdldEludCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdl
dFR5cGUoKSA9PSBrVHlwZUludCk7Ci0gICAgcmV0dXJuIG1faW50OwotfQotCi1jb25zdCBTdHJp
bmcmIFdlYkdMR2V0SW5mbzo6Z2V0U3RyaW5nKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlw
ZSgpID09IGtUeXBlU3RyaW5nKTsKLSAgICByZXR1cm4gbV9zdHJpbmc7Ci19Ci0KLXVuc2lnbmVk
IGludCBXZWJHTEdldEluZm86OmdldFVuc2lnbmVkSW50KCkgY29uc3QKLXsKLSAgICBBU1NFUlQo
Z2V0VHlwZSgpID09IGtUeXBlVW5zaWduZWRJbnQpOwotICAgIHJldHVybiBtX3Vuc2lnbmVkSW50
OwotfQotCi1sb25nIGxvbmcgV2ViR0xHZXRJbmZvOjpnZXRJbnQ2NCgpIGNvbnN0Ci17Ci0gICAg
QVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZUludDY0KTsKLSAgICByZXR1cm4gbV9pbnQ2NDsKLX0K
LQotV2ViR0xCdWZmZXIqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xCdWZmZXIoKSBjb25zdAotewot
ICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTEJ1ZmZlcik7Ci0gICAgcmV0dXJuIG1f
d2ViZ2xCdWZmZXIuZ2V0KCk7Ci19Ci0KLUZsb2F0MzJBcnJheSogV2ViR0xHZXRJbmZvOjpnZXRX
ZWJHTEZsb2F0QXJyYXkoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVX
ZWJHTEZsb2F0QXJyYXkpOwotICAgIHJldHVybiBtX3dlYmdsRmxvYXRBcnJheS5nZXQoKTsKLX0K
LQotV2ViR0xGcmFtZWJ1ZmZlciogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTEZyYW1lYnVmZmVyKCkg
Y29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xGcmFtZWJ1ZmZlcik7
Ci0gICAgcmV0dXJuIG1fd2ViZ2xGcmFtZWJ1ZmZlci5nZXQoKTsKLX0KLQotSW50MzJBcnJheSog
V2ViR0xHZXRJbmZvOjpnZXRXZWJHTEludEFycmF5KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0
VHlwZSgpID09IGtUeXBlV2ViR0xJbnRBcnJheSk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xJbnRBcnJh
eS5nZXQoKTsKLX0KLQotV2ViR0xQcm9ncmFtKiBXZWJHTEdldEluZm86OmdldFdlYkdMUHJvZ3Jh
bSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMUHJvZ3JhbSk7
Ci0gICAgcmV0dXJuIG1fd2ViZ2xQcm9ncmFtLmdldCgpOwotfQotCi1XZWJHTFJlbmRlcmJ1ZmZl
ciogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTFJlbmRlcmJ1ZmZlcigpIGNvbnN0Ci17Ci0gICAgQVNT
RVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMUmVuZGVyYnVmZmVyKTsKLSAgICByZXR1cm4gbV93
ZWJnbFJlbmRlcmJ1ZmZlci5nZXQoKTsKLX0KLQotV2ViR0xUZXh0dXJlKiBXZWJHTEdldEluZm86
OmdldFdlYkdMVGV4dHVyZSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlw
ZVdlYkdMVGV4dHVyZSk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xUZXh0dXJlLmdldCgpOwotfQotCi1V
aW50OEFycmF5KiBXZWJHTEdldEluZm86OmdldFdlYkdMVW5zaWduZWRCeXRlQXJyYXkoKSBjb25z
dAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTFVuc2lnbmVkQnl0ZUFycmF5
KTsKLSAgICByZXR1cm4gbV93ZWJnbFVuc2lnbmVkQnl0ZUFycmF5LmdldCgpOwotfQotCi1VaW50
MzJBcnJheSogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTFVuc2lnbmVkSW50QXJyYXkoKSBjb25zdAot
ewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTFVuc2lnbmVkSW50QXJyYXkpOwot
ICAgIHJldHVybiBtX3dlYmdsVW5zaWduZWRJbnRBcnJheS5nZXQoKTsKLX0KLQotV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUyogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUyk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xWZXJ0ZXhBcnJheU9iamVjdE9FUy5n
ZXQoKTsKLX0KLQotI2lmIEVOQUJMRShXRUJHTDIpCi1XZWJHTFZlcnRleEFycmF5T2JqZWN0KiBX
ZWJHTEdldEluZm86OmdldFdlYkdMVmVydGV4QXJyYXlPYmplY3QoKSBjb25zdAotewotICAgIEFT
U0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTFZlcnRleEFycmF5T2JqZWN0KTsKLSAgICByZXR1
cm4gbV93ZWJnbFZlcnRleEFycmF5T2JqZWN0LmdldCgpOwotfQotI2VuZGlmCi0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDI2ZjY5M2M1ZDc2MzYyMjNlZDVjYWUzYzM5ZmI2MDAzYmFmNzhmY2EuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xHZXRJbmZvLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNTYgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNp
bmNsdWRlICJXZWJHTEJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkdMRnJhbWVidWZmZXIuaCIKLSNp
bmNsdWRlICJXZWJHTFByb2dyYW0uaCIKLSNpbmNsdWRlICJXZWJHTFJlbmRlcmJ1ZmZlci5oIgot
I2luY2x1ZGUgIldlYkdMVGV4dHVyZS5oIgotI2lmIEVOQUJMRShXRUJHTDIpCi0jaW5jbHVkZSAi
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oIgotI2VuZGlmCi0jaW5jbHVkZSAiV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUy5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvRmxvYXQzMkFycmF5Lmg+Ci0jaW5j
bHVkZSA8cnVudGltZS9JbnQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9VaW50MzJBcnJh
eS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvVWludDhBcnJheS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIEEgdGFnZ2VkIHVuaW9uIHJl
cHJlc2VudGluZyB0aGUgcmVzdWx0IG9mIGdldCBxdWVyaWVzIGxpa2UKLS8vIGdldFBhcmFtZXRl
ciAoZW5jb21wYXNzaW5nIGdldEJvb2xlYW52LCBnZXRJbnRlZ2VydiwgZ2V0RmxvYXR2KSBhbmQK
LS8vIHNpbWlsYXIgdmFyaWFudHMuIEZvciByZWZlcmVuY2UgY291bnRlZCB0eXBlcywgaW5jcmVt
ZW50cyBhbmQKLS8vIGRlY3JlbWVudHMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgdGFyZ2V0
IG9iamVjdC4KLQotY2xhc3MgV2ViR0xHZXRJbmZvIGZpbmFsIHsKLXB1YmxpYzoKLSAgICBlbnVt
IFR5cGUgewotICAgICAgICBrVHlwZUJvb2wsCi0gICAgICAgIGtUeXBlQm9vbEFycmF5LAotICAg
ICAgICBrVHlwZUZsb2F0LAotICAgICAgICBrVHlwZUludCwKLSAgICAgICAga1R5cGVOdWxsLAot
ICAgICAgICBrVHlwZVN0cmluZywKLSAgICAgICAga1R5cGVVbnNpZ25lZEludCwKLSAgICAgICAg
a1R5cGVJbnQ2NCwKLSAgICAgICAga1R5cGVXZWJHTEJ1ZmZlciwKLSAgICAgICAga1R5cGVXZWJH
TEZsb2F0QXJyYXksCi0gICAgICAgIGtUeXBlV2ViR0xGcmFtZWJ1ZmZlciwKLSAgICAgICAga1R5
cGVXZWJHTEludEFycmF5LAotICAgICAgICBrVHlwZVdlYkdMT2JqZWN0QXJyYXksCi0gICAgICAg
IGtUeXBlV2ViR0xQcm9ncmFtLAotICAgICAgICBrVHlwZVdlYkdMUmVuZGVyYnVmZmVyLAotICAg
ICAgICBrVHlwZVdlYkdMVGV4dHVyZSwKLSAgICAgICAga1R5cGVXZWJHTFVuc2lnbmVkQnl0ZUFy
cmF5LAotICAgICAgICBrVHlwZVdlYkdMVW5zaWduZWRJbnRBcnJheSwKLSAgICAgICAga1R5cGVX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLAotICAgICAgICBrVHlwZVdlYkdMVmVydGV4QXJyYXlP
YmplY3QsCi0gICAgfTsKLQotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhib29sIHZhbHVlKTsK
LSAgICBXZWJHTEdldEluZm8oY29uc3QgYm9vbCogdmFsdWUsIGludCBzaXplKTsKLSAgICBleHBs
aWNpdCBXZWJHTEdldEluZm8oZmxvYXQgdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5m
byhpbnQgdmFsdWUpOwotICAgIC8vIFJlcHJlc2VudHMgdGhlIG51bGwgdmFsdWUgYW5kIHR5cGUu
Ci0gICAgV2ViR0xHZXRJbmZvKCk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKGNvbnN0IFN0
cmluZyYgdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyh1bnNpZ25lZCBpbnQgdmFs
dWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhsb25nIGxvbmcgdmFsdWUpOwotICAgIGV4
cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiB2YWx1ZSk7Ci0gICAg
ZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PiB2YWx1ZSk7Ci0g
ICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4gdmFs
dWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEludDMyQXJyYXk+IHZh
bHVlKTsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50IFdlYkdMT2JqZWN0QXJyYXkKLSAgICAvLyBX
ZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTE9iamVjdEFycmF5PiB2YWx1ZSk7Ci0gICAgZXhw
bGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xQcm9ncmFtPiB2YWx1ZSk7Ci0gICAg
ZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+IHZhbHVl
KTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+IHZh
bHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxVaW50OEFycmF5PiB2
YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDMyQXJyYXk+
IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTPiB2YWx1ZSk7Ci0jaWYgRU5BQkxFKFdFQkdMMikKLSAgICBleHBsaWNp
dCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiB2YWx1ZSk7
Ci0jZW5kaWYKLQotICAgIH5XZWJHTEdldEluZm8oKTsKLQotICAgIFR5cGUgZ2V0VHlwZSgpIGNv
bnN0OwotCi0gICAgYm9vbCBnZXRCb29sKCkgY29uc3Q7Ci0gICAgY29uc3QgVmVjdG9yPGJvb2w+
JiBnZXRCb29sQXJyYXkoKSBjb25zdDsKLSAgICBmbG9hdCBnZXRGbG9hdCgpIGNvbnN0OwotICAg
IGludCBnZXRJbnQoKSBjb25zdDsKLSAgICBjb25zdCBTdHJpbmcmIGdldFN0cmluZygpIGNvbnN0
OwotICAgIHVuc2lnbmVkIGludCBnZXRVbnNpZ25lZEludCgpIGNvbnN0OwotICAgIGxvbmcgbG9u
ZyBnZXRJbnQ2NCgpIGNvbnN0OwotICAgIFdlYkdMQnVmZmVyKiBnZXRXZWJHTEJ1ZmZlcigpIGNv
bnN0OwotICAgIEZsb2F0MzJBcnJheSogZ2V0V2ViR0xGbG9hdEFycmF5KCkgY29uc3Q7Ci0gICAg
V2ViR0xGcmFtZWJ1ZmZlciogZ2V0V2ViR0xGcmFtZWJ1ZmZlcigpIGNvbnN0OwotICAgIEludDMy
QXJyYXkqIGdldFdlYkdMSW50QXJyYXkoKSBjb25zdDsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50
IFdlYkdMT2JqZWN0QXJyYXkKLSAgICAvLyBXZWJHTE9iamVjdEFycmF5KiBnZXRXZWJHTE9iamVj
dEFycmF5KCkgY29uc3Q7Ci0gICAgV2ViR0xQcm9ncmFtKiBnZXRXZWJHTFByb2dyYW0oKSBjb25z
dDsKLSAgICBXZWJHTFJlbmRlcmJ1ZmZlciogZ2V0V2ViR0xSZW5kZXJidWZmZXIoKSBjb25zdDsK
LSAgICBXZWJHTFRleHR1cmUqIGdldFdlYkdMVGV4dHVyZSgpIGNvbnN0OwotICAgIFVpbnQ4QXJy
YXkqIGdldFdlYkdMVW5zaWduZWRCeXRlQXJyYXkoKSBjb25zdDsKLSAgICBVaW50MzJBcnJheSog
Z2V0V2ViR0xVbnNpZ25lZEludEFycmF5KCkgY29uc3Q7Ci0gICAgV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUyogZ2V0V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygpIGNvbnN0OwotI2lmIEVOQUJM
RShXRUJHTDIpCi0gICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCogZ2V0V2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdCgpIGNvbnN0OwotI2VuZGlmCi0KLXByaXZhdGU6Ci0gICAgVHlwZSBtX3R5cGU7Ci0g
ICAgYm9vbCBtX2Jvb2w7Ci0gICAgVmVjdG9yPGJvb2w+IG1fYm9vbEFycmF5OwotICAgIGZsb2F0
IG1fZmxvYXQ7Ci0gICAgaW50IG1faW50OwotICAgIFN0cmluZyBtX3N0cmluZzsKLSAgICB1bnNp
Z25lZCBpbnQgbV91bnNpZ25lZEludDsKLSAgICBsb25nIGxvbmcgbV9pbnQ2NDsKLSAgICBSZWZQ
dHI8V2ViR0xCdWZmZXI+IG1fd2ViZ2xCdWZmZXI7Ci0gICAgUmVmUHRyPEZsb2F0MzJBcnJheT4g
bV93ZWJnbEZsb2F0QXJyYXk7Ci0gICAgUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IG1fd2ViZ2xG
cmFtZWJ1ZmZlcjsKLSAgICBSZWZQdHI8SW50MzJBcnJheT4gbV93ZWJnbEludEFycmF5OwotICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQgV2ViR0xPYmplY3RBcnJheQotICAgIC8vIFJlZlB0cjxXZWJH
TE9iamVjdEFycmF5PiBtX3dlYmdsT2JqZWN0QXJyYXk7Ci0gICAgUmVmUHRyPFdlYkdMUHJvZ3Jh
bT4gbV93ZWJnbFByb2dyYW07Ci0gICAgUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPiBtX3dlYmds
UmVuZGVyYnVmZmVyOwotICAgIFJlZlB0cjxXZWJHTFRleHR1cmU+IG1fd2ViZ2xUZXh0dXJlOwot
ICAgIFJlZlB0cjxVaW50OEFycmF5PiBtX3dlYmdsVW5zaWduZWRCeXRlQXJyYXk7Ci0gICAgUmVm
UHRyPFVpbnQzMkFycmF5PiBtX3dlYmdsVW5zaWduZWRJbnRBcnJheTsKLSAgICBSZWZQdHI8V2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gbV93ZWJnbFZlcnRleEFycmF5T2JqZWN0T0VTOwotI2lm
IEVOQUJMRShXRUJHTDIpCi0gICAgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IG1fd2Vi
Z2xWZXJ0ZXhBcnJheU9iamVjdDsKLSNlbmRpZgotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3BwCmluZGV4IDVkOTIw
OTVmZmYxNzg2YjIyNWMyODVhOTcwM2M2Njk5NjFiNTk3NWUuLjQ4ZjkzOWUwZGE4ZjRlMzJjODIy
ZDI5MTIxMjRmZmNiZTRlNWFhOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TE9iamVjdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjQsMTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYkdMT2JqZWN0LmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNpbmNsdWRl
ICJXZWJHTE9iamVjdC5oIgotCiAjaW5jbHVkZSAiV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMu
aCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMRGVidWdS
ZW5kZXJlckluZm8uaCIKQEAgLTM4LDIxICszNywxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLVdlYkdMT2JqZWN0OjpXZWJHTE9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJikK
LSAgICA6IG1fb2JqZWN0KDApCi0gICAgLCBtX2F0dGFjaG1lbnRDb3VudCgwKQotICAgICwgbV9k
ZWxldGVkKGZhbHNlKQotewotfQotCi1XZWJHTE9iamVjdDo6fldlYkdMT2JqZWN0KCkKLXsKLX0K
LQogdm9pZCBXZWJHTE9iamVjdDo6c2V0T2JqZWN0KFBsYXRmb3JtM0RPYmplY3Qgb2JqZWN0KQog
ewotICAgIC8vIG9iamVjdD09MCAmJiBtX2RlbGV0ZWQ9PWZhbHNlIGluZGljYXRpbmcgYW4gdW5p
bml0aWFsaXplZCBzdGF0ZTsKLSAgICBBU1NFUlQoIW1fb2JqZWN0ICYmICFtX2RlbGV0ZWQpOwor
ICAgIEFTU0VSVCghbV9vYmplY3QpOworICAgIEFTU0VSVCghbV9kZWxldGVkKTsKICAgICBtX29i
amVjdCA9IG9iamVjdDsKIH0KIApAQCAtNzksOCArNjcsNyBAQCB2b2lkIFdlYkdMT2JqZWN0Ojpk
ZWxldGVPYmplY3QoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCkKIHZvaWQgV2ViR0xPYmpl
Y3Q6OmRldGFjaCgpCiB7CiAgICAgbV9hdHRhY2htZW50Q291bnQgPSAwOyAvLyBNYWtlIHN1cmUg
T3BlbkdMIHJlc291cmNlIGlzIGRlbGV0ZWQuCi0gICAgfQotCit9CiAKIHZvaWQgV2ViR0xPYmpl
Y3Q6Om9uRGV0YWNoZWQoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5oCmluZGV4IDdiMzIzZDZjOWY3YTc4YWY0YjJm
NDNlNjUwM2Y5ZTAxMjllY2M3NDcuLjY5ZGJiNWFhMDdlYjkyOTk1ZDNjZWU3MTFmNGIyODdjNjYz
ZTQ1YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxNyAr
MjYsMTUgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIK
LSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIEdyYXBoaWNzQ29udGV4dDNEOwogY2xhc3MgV2ViR0xDb250ZXh0R3JvdXA7CiBjbGFzcyBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOwogCiBjbGFzcyBXZWJHTE9iamVjdCA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYkdMT2JqZWN0PiB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViR0xPYmpl
Y3QoKTsKKyAgICB2aXJ0dWFsIH5XZWJHTE9iamVjdCgpIHsgfQogCiAgICAgUGxhdGZvcm0zRE9i
amVjdCBvYmplY3QoKSBjb25zdCB7IHJldHVybiBtX29iamVjdDsgfQogCkBAIC01Nyw3ICs1NSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgdmFsaWRhdGUoY29uc3QgV2ViR0xDb250ZXh0
R3JvdXAqLCBjb25zdCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJikgY29uc3QgPSAwOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgV2ViR0xPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwor
ICAgIFdlYkdMT2JqZWN0KCkgPSBkZWZhdWx0OwogCiAgICAgLy8gc2V0T2JqZWN0IHNob3VsZCBi
ZSBvbmx5IGNhbGxlZCBvbmNlIHJpZ2h0IGFmdGVyIGNyZWF0aW5nIGEgV2ViR0xPYmplY3QuCiAg
ICAgdm9pZCBzZXRPYmplY3QoUGxhdGZvcm0zRE9iamVjdCk7CkBAIC03Miw5ICs3MCw5IEBAIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIEdyYXBoaWNzQ29udGV4dDNEKiBnZXRBR3JhcGhpY3NDb250
ZXh0M0QoKSBjb25zdCA9IDA7CiAKIHByaXZhdGU6Ci0gICAgUGxhdGZvcm0zRE9iamVjdCBtX29i
amVjdDsKLSAgICB1bnNpZ25lZCBtX2F0dGFjaG1lbnRDb3VudDsKLSAgICBib29sIG1fZGVsZXRl
ZDsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IG1fb2JqZWN0IHsgMCB9OworICAgIHVuc2lnbmVkIG1f
YXR0YWNobWVudENvdW50IHsgMCB9OworICAgIGJvb2wgbV9kZWxldGVkIHsgZmFsc2UgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFByb2dyYW0uY3BwCmluZGV4IDc3YWZlOTRjNDU4NWExYmIzZTE3NzZjODkxNTNiODRiYjg2
YzE3MDMuLmMyNDMzNWRjNDY3ZDc2N2JhZmE4M2ViY2YxMTlmMzJlYTNhNWQzMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcApAQCAtMjQsMTMgKzI0LDEz
IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5o
IgogCiAjaWYgRU5BQkxFKFdFQkdMKQogCi0jaW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCi0KICNp
bmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuaCIKKyNpbmNsdWRlICJXZWJHTFNoYWRlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTQxLDkgKzQxLDYgQEAgUmVmPFdlYkdMUHJvZ3JhbT4gV2ViR0xQcm9ncmFtOjpj
cmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4KQogCiBXZWJHTFByb2dyYW06Oldl
YkdMUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgpCiAgICAgOiBXZWJHTFNo
YXJlZE9iamVjdChjdHgpCi0gICAgLCBtX2xpbmtTdGF0dXMoZmFsc2UpCi0gICAgLCBtX2xpbmtD
b3VudCgwKQotICAgICwgbV9pbmZvVmFsaWQodHJ1ZSkKIHsKICAgICBzZXRPYmplY3QoY3R4Lmdy
YXBoaWNzQ29udGV4dDNEKCktPmNyZWF0ZVByb2dyYW0oKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oCmluZGV4IDcxN2NjZTEzOGM0MjhjNTdjZGRiN2M1NWMx
NDY4NWZhNDYyMjMyZjMuLmVhYjc2Yzg5NzUxY2JlNDkyYjQ2ZTc0Y2ZlOGQxOTU4MDllMTMxYTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI1LDE3ICsyNSwx
NiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIldlYkdMU2hhZGVyLmgiCiAjaW5jbHVk
ZSAiV2ViR0xTaGFyZWRPYmplY3QuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgV2ViR0xTaGFkZXI7CisKIGNsYXNzIFdlYkdMUHJvZ3Jh
bSBmaW5hbCA6IHB1YmxpYyBXZWJHTFNoYXJlZE9iamVjdCB7CiBwdWJsaWM6Ci0gICAgdmlydHVh
bCB+V2ViR0xQcm9ncmFtKCk7Ci0KICAgICBzdGF0aWMgUmVmPFdlYkdMUHJvZ3JhbT4gY3JlYXRl
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKKyAgICB2aXJ0dWFsIH5XZWJHTFByb2dyYW0o
KTsKIAogICAgIHVuc2lnbmVkIG51bUFjdGl2ZUF0dHJpYkxvY2F0aW9ucygpOwogICAgIEdDM0Rp
bnQgZ2V0QWN0aXZlQXR0cmliTG9jYXRpb24oR0MzRHVpbnQgaW5kZXgpOwpAQCAtNjMsMjMgKzYy
LDIwIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250
ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBib29s
IGlzUHJvZ3JhbSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLQogICAgIHZvaWQg
Y2FjaGVBY3RpdmVBdHRyaWJMb2NhdGlvbnMoR3JhcGhpY3NDb250ZXh0M0QqKTsKICAgICB2b2lk
IGNhY2hlSW5mb0lmTmVlZGVkKCk7CiAKICAgICBWZWN0b3I8R0MzRGludD4gbV9hY3RpdmVBdHRy
aWJMb2NhdGlvbnM7CiAKLSAgICBHQzNEaW50IG1fbGlua1N0YXR1czsKKyAgICBHQzNEaW50IG1f
bGlua1N0YXR1cyB7IDAgfTsKIAotICAgIC8vIFRoaXMgaXMgdXNlZCB0byB0cmFjayB3aGV0aGVy
IGEgV2ViR0xVbmlmb3JtTG9jYXRpb24gYmVsb25ncyB0byB0aGlzCi0gICAgLy8gcHJvZ3JhbSBv
ciBub3QuCi0gICAgdW5zaWduZWQgbV9saW5rQ291bnQ7CisgICAgLy8gVGhpcyBpcyB1c2VkIHRv
IHRyYWNrIHdoZXRoZXIgYSBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBiZWxvbmdzIHRvIHRoaXMgcHJv
Z3JhbSBvciBub3QuCisgICAgdW5zaWduZWQgbV9saW5rQ291bnQgeyAwIH07CiAKICAgICBSZWZQ
dHI8V2ViR0xTaGFkZXI+IG1fdmVydGV4U2hhZGVyOwogICAgIFJlZlB0cjxXZWJHTFNoYWRlcj4g
bV9mcmFnbWVudFNoYWRlcjsKIAotICAgIGJvb2wgbV9pbmZvVmFsaWQ7CisgICAgYm9vbCBtX2lu
Zm9WYWxpZCB7IHRydWUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuaAppbmRleCA0NmRiNTkyYTg1YWY2MmZlODBmNzFm
MzczYmU1OTE2YmNiOWMxODU5Li4zY2I3NjE3Nzc3NzUyMDFiY2EwMWFhNjA2YzViYzE5NTRhMjZm
MjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDE3ICszMSwx
MiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdMUXVlcnkgZmluYWwgOiBwdWJs
aWMgV2ViR0xTaGFyZWRPYmplY3QgewogcHVibGljOgotICAgIHZpcnR1YWwgfldlYkdMUXVlcnko
KTsKLQogICAgIHN0YXRpYyBSZWY8V2ViR0xRdWVyeT4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UmKTsKKyAgICB2aXJ0dWFsIH5XZWJHTFF1ZXJ5KCk7CiAKIHByb3RlY3RlZDoKLSAg
ICBXZWJHTFF1ZXJ5KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKLQorICAgIGV4cGxpY2l0
IFdlYkdMUXVlcnkoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwogICAgIHZvaWQgZGVsZXRl
T2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OwotCi1wcml2YXRlOgotICAgIGJvb2wgaXNRdWVyeSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGIwNmQ2
YzljODZhMzE2YzIwMTk5MzVjZTg0MTM0ODA5ZTMzNDE2YWYuLjdkZmZjMzU3YTE3MmI1OTExYWNm
MGIwODVmMmVkMjE4ODYyNWE5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCw5ICsyNCw5IEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogCiAj
aWYgRU5BQkxFKFdFQkdMKQotI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogCiAj
aW5jbHVkZSAiQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5o
IgpAQCAtNzAsMTYgKzcwLDE2IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIEdyCiB7CiB9CiAKLVdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6V2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVt
ZW50JiBwYXNzZWRDYW52YXMsIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQs
Ci0gICAgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpIDogV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZShwYXNzZWRDYW52YXMsIGNvbnRleHQsIGF0dHJpYnV0ZXMpCitXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OldlYkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVu
dCYgcGFzc2VkQ2FudmFzLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29udGV4dCwgR3JhcGhp
Y3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCisgICAgOiBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlKHBhc3NlZENhbnZhcywgV1RGTW92ZShjb250ZXh0KSwgYXR0cmlidXRlcykKIHsK
ICAgICBpbml0aWFsaXplVmVydGV4QXJyYXlPYmplY3RzKCk7CiB9CiAKIHZvaWQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Ojppbml0aWFsaXplVmVydGV4QXJyYXlPYmplY3RzKCkKIHsKLSAgICBtX2Rl
ZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmNyZWF0
ZSgqdGhpcywgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6VkFPVHlwZURlZmF1bHQpOwotICAg
IGFkZENvbnRleHRPYmplY3QobV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QuZ2V0KCkpOworICAg
IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6
Y3JlYXRlKCp0aGlzLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpUeXBlOjpEZWZhdWx0KTsK
KyAgICBhZGRDb250ZXh0T2JqZWN0KCptX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdCk7CiAgICAg
bV9ib3VuZFZlcnRleEFycmF5T2JqZWN0ID0gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiAg
ICAgaWYgKCFpc0dMRVMyQ29tcGxpYW50KCkpCiAgICAgICAgIGluaXRWZXJ0ZXhBdHRyaWIwKCk7
CkBAIC05MCw5OSArOTAsOTEgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICBpZiAoaXNDb250ZXh0TG9z
dE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKLSAgICBpZiAoZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX2JsZW5kX21pbm1heCIpCi0gICAgICAgICYm
IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfYmxlbmRfbWlubWF4
IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX2JsZW5kX21p
bm1heCIpKSB7CiAgICAgICAgIGlmICghbV9leHRCbGVuZE1pbk1heCkgewotICAgICAgICAgICAg
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX2JsZW5kX21p
bm1heCIpOwotICAgICAgICAgICAgbV9leHRCbGVuZE1pbk1heCA9IHN0ZDo6bWFrZV91bmlxdWU8
RVhUQmxlbmRNaW5NYXg+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fZXh0QmxlbmRNaW5NYXggPSBl
bmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oIkdMX0VYVF9ibGVuZF9taW5tYXgiKQorICAgICAgICAg
ICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRCbGVuZE1pbk1heD4oKnRoaXMpIDogbnVsbHB0
cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9leHRCbGVuZE1pbk1heC5nZXQoKTsKICAg
ICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9zUkdCIikKLSAg
ICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9zUkdC
IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX3NSR0IiKSkg
ewogICAgICAgICBpZiAoIW1fZXh0c1JHQikgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3NSR0IiKTsKLSAgICAgICAgICAgIG1f
ZXh0c1JHQiA9IHN0ZDo6bWFrZV91bmlxdWU8RVhUc1JHQj4oKnRoaXMpOworICAgICAgICAgICAg
bV9leHRzUkdCID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9FWFRfc1JHQiIpCisgICAg
ICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPEVYVHNSR0I+KCp0aGlzKSA6IG51bGxwdHI7
CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fZXh0c1JHQi5nZXQoKTsKICAgICB9Ci0gICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9mcmFnX2RlcHRoIikKLSAgICAg
ICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9mcmFnX2Rl
cHRoIikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX2ZyYWdf
ZGVwdGgiKSkgewogICAgICAgICBpZiAoIW1fZXh0RnJhZ0RlcHRoKSB7Ci0gICAgICAgICAgICBt
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9FWFRfZnJhZ19kZXB0
aCIpOwotICAgICAgICAgICAgbV9leHRGcmFnRGVwdGggPSBzdGQ6Om1ha2VfdW5pcXVlPEVYVEZy
YWdEZXB0aD4oKnRoaXMpOworICAgICAgICAgICAgbV9leHRGcmFnRGVwdGggPSBlbmFibGVTdXBw
b3J0ZWRFeHRlbnNpb24oIkdMX0VYVF9mcmFnX2RlcHRoIikKKyAgICAgICAgICAgICAgICA/IHN0
ZDo6bWFrZV91bmlxdWU8RVhURnJhZ0RlcHRoPigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9
CiAgICAgICAgIHJldHVybiBtX2V4dEZyYWdEZXB0aC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKQotICAg
ICAgICAmJiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9zaGFk
ZXJfdGV4dHVyZV9sb2QiKSB8fCBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygi
R0xfQVJCX3NoYWRlcl90ZXh0dXJlX2xvZCIpKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVND
SUlDYXNlKG5hbWUsICJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIikpIHsKICAgICAgICAgaWYgKCFt
X2V4dFNoYWRlclRleHR1cmVMT0QpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX0VYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKTsKLSAgICAg
ICAgICAgIG1fZXh0U2hhZGVyVGV4dHVyZUxPRCA9IHN0ZDo6bWFrZV91bmlxdWU8RVhUU2hhZGVy
VGV4dHVyZUxPRD4oKnRoaXMpOworICAgICAgICAgICAgaWYgKCEobV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF9zaGFkZXJfdGV4dHVyZV9s
b2QiIH0pIHx8IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJh
bCB7ICJHTF9BUkJfc2hhZGVyX3RleHR1cmVfbG9kIiB9KSkpCisgICAgICAgICAgICAgICAgbV9l
eHRTaGFkZXJUZXh0dXJlTE9EID0gbnVsbHB0cjsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoQVNDSUlM
aXRlcmFsIHsgIkdMX0VYVF9zaGFkZXJfdGV4dHVyZV9sb2QiIH0pOworICAgICAgICAgICAgICAg
IG1fZXh0U2hhZGVyVGV4dHVyZUxPRCA9IHN0ZDo6bWFrZV91bmlxdWU8RVhUU2hhZGVyVGV4dHVy
ZUxPRD4oKnRoaXMpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBt
X2V4dFNoYWRlclRleHR1cmVMT0QuZ2V0KCk7CiAgICAgfQotICAgIGlmICgoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShuYW1lLCAiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikgfHwgZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lUX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlz
b3Ryb3BpYyIpKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0
cygiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpIHsKKyAgICBpZiAoZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikg
fHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lUX0VYVF90ZXh0dXJlX2ZpbHRl
cl9hbmlzb3Ryb3BpYyIpKSB7CiAgICAgICAgIGlmICghbV9leHRUZXh0dXJlRmlsdGVyQW5pc290
cm9waWMpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVu
YWJsZWQoIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOwotICAgICAgICAgICAg
bV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMgPSBzdGQ6Om1ha2VfdW5pcXVlPEVYVFRleHR1
cmVGaWx0ZXJBbmlzb3Ryb3BpYz4oKnRoaXMpOworICAgICAgICAgICAgbV9leHRUZXh0dXJlRmls
dGVyQW5pc290cm9waWMgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oIkdMX0VYVF90ZXh0dXJl
X2ZpbHRlcl9hbmlzb3Ryb3BpYyIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVl
PEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYz4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAg
fQogICAgICAgICByZXR1cm4gbV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuZ2V0KCk7CiAg
ICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfc3RhbmRhcmRf
ZGVyaXZhdGl2ZXMiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cygiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIikpIHsKKyAgICBpZiAoZXF1YWxJZ25v
cmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIikpIHsKICAgICAg
ICAgaWYgKCFtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMpIHsKLSAgICAgICAgICAgIG1fY29udGV4
dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU19zdGFuZGFyZF9kZXJpdmF0
aXZlcyIpOwotICAgICAgICAgICAgbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzID0gc3RkOjptYWtl
X3VuaXF1ZTxPRVNTdGFuZGFyZERlcml2YXRpdmVzPigqdGhpcyk7CisgICAgICAgICAgICBtX29l
c1N0YW5kYXJkRGVyaXZhdGl2ZXMgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oIkdMX09FU19z
dGFuZGFyZF9kZXJpdmF0aXZlcyIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVl
PE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuIG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcy5nZXQoKTsKICAgICB9Ci0gICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0IikKLSAg
ICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0
dXJlX2Zsb2F0IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VT
X3RleHR1cmVfZmxvYXQiKSkgewogICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUZsb2F0KSB7Ci0g
ICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9P
RVNfdGV4dHVyZV9mbG9hdCIpOwotICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXQgPSBzdGQ6
Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdD4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNU
ZXh0dXJlRmxvYXQgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oIkdMX09FU190ZXh0dXJlX2Zs
b2F0IikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0
PigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1
cmVGbG9hdC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFt
ZSwgIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0
RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkgewor
ICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdF9s
aW5lYXIiKSkgewogICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUZsb2F0TGluZWFyKSB7Ci0gICAg
ICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNf
dGV4dHVyZV9mbG9hdF9saW5lYXIiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0TGlu
ZWFyID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXRMaW5lYXI+KCp0aGlzKTsKKyAg
ICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5z
aW9uKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKQorICAgICAgICAgICAgICAgID8gc3Rk
OjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXRMaW5lYXI+KCp0aGlzKSA6IG51bGxwdHI7CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyLmdldCgpOwog
ICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVf
aGFsZl9mbG9hdCIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBv
cnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpKSB7CiAgICAgICAgIGlm
ICghbV9vZXNUZXh0dXJlSGFsZkZsb2F0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4
dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0Iik7Ci0g
ICAgICAgICAgICBtX29lc1RleHR1cmVIYWxmRmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1Rl
eHR1cmVIYWxmRmxvYXQ+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9h
dCA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIp
CisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+
KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVy
ZUhhbGZGbG9hdC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
bmFtZSwgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikKLSAgICAgICAgJiYgbV9jb250
ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRf
bGluZWFyIikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3Rl
eHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSkgewogICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUhh
bGZGbG9hdExpbmVhcikgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
ZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKTsKLSAgICAg
ICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhciA9IHN0ZDo6bWFrZV91bmlxdWU8T0VT
VGV4dHVyZUhhbGZGbG9hdExpbmVhcj4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJl
SGFsZkZsb2F0TGluZWFyID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfdGV4dHVy
ZV9oYWxmX2Zsb2F0X2xpbmVhciIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVl
PE9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXI+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhci5nZXQoKTsKICAgICB9
Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU192ZXJ0ZXhfYXJyYXlf
b2JqZWN0IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMo
IkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSkgewogICAgICAgICBpZiAo
IW1fb2VzVmVydGV4QXJyYXlPYmplY3QpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7Ci0g
ICAgICAgICAgICBtX29lc1ZlcnRleEFycmF5T2JqZWN0ID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNW
ZXJ0ZXhBcnJheU9iamVjdD4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNWZXJ0ZXhBcnJheU9i
amVjdCA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmpl
Y3QiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNWZXJ0ZXhBcnJheU9i
amVjdD4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNW
ZXJ0ZXhBcnJheU9iamVjdC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UobmFtZSwgIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKQotICAgICAgICAmJiBtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIp
KSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU19lbGVtZW50X2lu
ZGV4X3VpbnQiKSkgewogICAgICAgICBpZiAoIW1fb2VzRWxlbWVudEluZGV4VWludCkgewotICAg
ICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VT
X2VsZW1lbnRfaW5kZXhfdWludCIpOwotICAgICAgICAgICAgbV9vZXNFbGVtZW50SW5kZXhVaW50
ID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNFbGVtZW50SW5kZXhVaW50PigqdGhpcyk7CisgICAgICAg
ICAgICBtX29lc0VsZW1lbnRJbmRleFVpbnQgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oIkdM
X09FU19lbGVtZW50X2luZGV4X3VpbnQiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3Vu
aXF1ZTxPRVNFbGVtZW50SW5kZXhVaW50PigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAg
ICAgICAgIHJldHVybiBtX29lc0VsZW1lbnRJbmRleFVpbnQuZ2V0KCk7CiAgICAgfQpAQCAtMTkx
LDQxICsxODMsNTMgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0
RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgICAgIG1fd2ViZ2xMb3NlQ29u
dGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xMb3NlQ29udGV4dD4oKnRoaXMpOwogICAgICAg
ICByZXR1cm4gbV93ZWJnbExvc2VDb250ZXh0LmdldCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVf
YXRjIikpCi0gICAgICAgICYmIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZCgq
dGhpcykpIHsKLSAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMpCi0gICAg
ICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdl
YkdMQ29tcHJlc3NlZFRleHR1cmVBVEM+KCp0aGlzKTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKSkgewor
ICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQykgeworICAgICAgICAgICAg
bV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6
c3VwcG9ydGVkKCp0aGlzKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxXZWJH
TENvbXByZXNzZWRUZXh0dXJlQVRDPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAg
ICAgIHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMuZ2V0KCk7CiAgICAgfQotICAg
IGlmICgoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNz
ZWRfdGV4dHVyZV9wdnJ0YyIpKQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZS
VEM6OnN1cHBvcnRlZCgqdGhpcykpIHsKLSAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRl
eHR1cmVQVlJUQykKLSAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDID0g
c3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM+KCp0aGlzKTsKKyAg
ICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNz
ZWRfdGV4dHVyZV9wdnJ0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0
dXJlUFZSVEMpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDID0g
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpCisgICAgICAgICAg
ICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQz4oKnRo
aXMpIDogbnVsbHB0cjsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNz
ZWRUZXh0dXJlUFZSVEMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlD
YXNlKG5hbWUsICJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpCi0gICAgICAgICYmIFdl
YkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlm
ICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQykKLSAgICAgICAgICAgIG1fd2ViZ2xDb21w
cmVzc2VkVGV4dHVyZVMzVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVTM1RDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldF
QkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsQ29t
cHJlc3NlZFRleHR1cmVTM1RDKSB7CisgICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1
cmVTM1RDID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhpcykKKyAg
ICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMz
VEM+KCp0aGlzKSA6IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xD
b21wcmVzc2VkVGV4dHVyZVMzVEMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZXB0aF90ZXh0dXJlIikKLSAgICAgICAgJiYgV2ViR0xE
ZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqZ3JhcGhpY3NDb250ZXh0M0QoKSkpIHsKLSAgICAgICAg
aWYgKCFtX3dlYmdsRGVwdGhUZXh0dXJlKQotICAgICAgICAgICAgbV93ZWJnbERlcHRoVGV4dHVy
ZSA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZXB0aFRleHR1cmU+KCp0aGlzKTsKKyAgICBpZiAo
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVwdGhfdGV4dHVyZSIpKSB7Cisg
ICAgICAgIGlmICghbV93ZWJnbERlcHRoVGV4dHVyZSkgeworICAgICAgICAgICAgbV93ZWJnbERl
cHRoVGV4dHVyZSA9IFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoKm1fY29udGV4dCkKKyAg
ICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZXB0aFRleHR1cmU+KCp0aGlz
KSA6IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZXB0aFRleHR1
cmUuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJX
RUJHTF9kcmF3X2J1ZmZlcnMiKSAmJiBzdXBwb3J0c0RyYXdCdWZmZXJzKCkpIHsKKyAgICBpZiAo
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZHJhd19idWZmZXJzIikpIHsKICAg
ICAgICAgaWYgKCFtX3dlYmdsRHJhd0J1ZmZlcnMpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX0VYVF9kcmF3X2J1ZmZlcnMiKTsKLSAg
ICAgICAgICAgIG1fd2ViZ2xEcmF3QnVmZmVycyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEcmF3
QnVmZmVycz4oKnRoaXMpOworICAgICAgICAgICAgaWYgKCFzdXBwb3J0c0RyYXdCdWZmZXJzKCkp
CisgICAgICAgICAgICAgICAgbV93ZWJnbERyYXdCdWZmZXJzID0gbnVsbHB0cjsKKyAgICAgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVu
c3VyZUVuYWJsZWQoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF9kcmF3X2J1ZmZlcnMiIH0pOworICAg
ICAgICAgICAgICAgIG1fd2ViZ2xEcmF3QnVmZmVycyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xE
cmF3QnVmZmVycz4oKnRoaXMpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJl
dHVybiBtX3dlYmdsRHJhd0J1ZmZlcnMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKG5hbWUsICJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIikgJiYgQU5HTEVJbnN0
YW5jZWRBcnJheXM6OnN1cHBvcnRlZCgqdGhpcykpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpKSB7CiAgICAgICAgIGlmICgh
bV9hbmdsZUluc3RhbmNlZEFycmF5cykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpOwotICAg
ICAgICAgICAgbV9hbmdsZUluc3RhbmNlZEFycmF5cyA9IHN0ZDo6bWFrZV91bmlxdWU8QU5HTEVJ
bnN0YW5jZWRBcnJheXM+KCp0aGlzKTsKKyAgICAgICAgICAgIGlmICghQU5HTEVJbnN0YW5jZWRB
cnJheXM6OnN1cHBvcnRlZCgqdGhpcykpCisgICAgICAgICAgICAgICAgbV9hbmdsZUluc3RhbmNl
ZEFycmF5cyA9IG51bGxwdHI7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBt
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0ZXJhbCB7ICJH
TF9BTkdMRV9pbnN0YW5jZWRfYXJyYXlzIiB9KTsKKyAgICAgICAgICAgICAgICBtX2FuZ2xlSW5z
dGFuY2VkQXJyYXlzID0gc3RkOjptYWtlX3VuaXF1ZTxBTkdMRUluc3RhbmNlZEFycmF5cz4oKnRo
aXMpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2FuZ2xlSW5z
dGFuY2VkQXJyYXlzLmdldCgpOwogICAgIH0KQEAgLTIzNCwxMCArMjM4LDExIEBAIFdlYkdMRXh0
ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcm
IG5hbWUpCiAgICAgICAgICAgICBtX3dlYmdsRGVidWdSZW5kZXJlckluZm8gPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkdMRGVidWdSZW5kZXJlckluZm8+KCp0aGlzKTsKICAgICAgICAgcmV0dXJuIG1f
d2ViZ2xEZWJ1Z1JlbmRlcmVySW5mby5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlYnVnX3NoYWRlcnMiKQotICAgICAgICAmJiBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFk
ZXJfc291cmNlIikpIHsKLSAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdTaGFkZXJzKQotICAgICAg
ICAgICAgbV93ZWJnbERlYnVnU2hhZGVycyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1Z1No
YWRlcnM+KCp0aGlzKTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VC
R0xfZGVidWdfc2hhZGVycyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbERlYnVnU2hhZGVycykg
eworICAgICAgICAgICAgbV93ZWJnbERlYnVnU2hhZGVycyA9IG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRl
cl9zb3VyY2UiIH0pCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVi
dWdTaGFkZXJzPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBt
X3dlYmdsRGVidWdTaGFkZXJzLmdldCgpOwogICAgIH0KIApAQCAtMjUxLDEwOSArMjU2LDEwOSBA
QCBWZWN0b3I8U3RyaW5nPiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVu
c2lvbnMoKQogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pCiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgCi0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1
cHBvcnRzKCJHTF9FWFRfYmxlbmRfbWlubWF4IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIkVY
VF9ibGVuZF9taW5tYXgiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3Vw
cG9ydHMoIkdMX0VYVF9zUkdCIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIkVYVF9zUkdCIik7
Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfZnJh
Z19kZXB0aCIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJFWFRfZnJhZ19kZXB0aCIpOwotICAg
IGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVf
ZmxvYXQiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVfZmxvYXQiKTsKLSAg
ICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJl
X2Zsb2F0X2xpbmVhciIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdGV4dHVyZV9mbG9h
dF9saW5lYXIiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMo
IkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VT
X3RleHR1cmVfaGFsZl9mbG9hdCIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSkKLSAgICAgICAg
cmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKTsKLSAgICBpZiAo
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU19zdGFuZGFyZF9kZXJp
dmF0aXZlcyIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2
ZXMiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VY
VF9zaGFkZXJfdGV4dHVyZV9sb2QiKSB8fCBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cygiR0xfQVJCX3NoYWRlcl90ZXh0dXJlX2xvZCIpKQotICAgICAgICByZXN1bHQuYXBwZW5k
KCJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkKLSAg
ICAgICAgcmVzdWx0LmFwcGVuZCgiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7Ci0g
ICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdmVydGV4
X2FycmF5X29iamVjdCIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdmVydGV4X2FycmF5
X29iamVjdCIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygi
R0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNf
ZWxlbWVudF9pbmRleF91aW50Iik7Ci0gICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfbG9zZV9jb250
ZXh0Iik7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJ
TGl0ZXJhbCB7ICJHTF9FWFRfYmxlbmRfbWlubWF4IiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVu
ZChBU0NJSUxpdGVyYWwgeyAiRVhUX2JsZW5kX21pbm1heCIgfSk7CisgICAgaWYgKG1fY29udGV4
dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfc1JHQiIg
fSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIkVYVF9zUkdCIiB9KTsK
KyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFs
IHsgIkdMX0VYVF9mcmFnX2RlcHRoIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxp
dGVyYWwgeyAiRVhUX2ZyYWdfZGVwdGgiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVu
c2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfZmxvYXQiIH0p
KQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9mbG9h
dCIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJ
TGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiIH0pKQorICAgICAgICByZXN1
bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiIH0pOwor
ICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwg
eyAiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQo
QVNDSUlMaXRlcmFsIHsgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pOworICAgIGlmIChtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3Rl
eHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJ
TGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIgfSk7CisgICAgaWYgKG1f
Y29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNf
c3RhbmRhcmRfZGVyaXZhdGl2ZXMiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0
ZXJhbCB7ICJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiIH0pOworICAgIGlmIChtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX3NoYWRlcl90
ZXh0dXJlX2xvZCIgfSkgfHwgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVND
SUlMaXRlcmFsIHsgIkdMX0FSQl9zaGFkZXJfdGV4dHVyZV9sb2QiIH0pKQorICAgICAgICByZXN1
bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIiB9KTsKKyAg
ICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsg
IkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIgfSkpCisgICAgICAgIHJlc3VsdC5h
cHBlbmQoQVNDSUlMaXRlcmFsIHsgIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIgfSk7
CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJh
bCB7ICJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBl
bmQoQVNDSUlMaXRlcmFsIHsgIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IiB9KTsKKyAgICBpZiAo
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09F
U19lbGVtZW50X2luZGV4X3VpbnQiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0
ZXJhbCB7ICJPRVNfZWxlbWVudF9pbmRleF91aW50IiB9KTsKKyAgICByZXN1bHQuYXBwZW5kKEFT
Q0lJTGl0ZXJhbCB7ICJXRUJHTF9sb3NlX2NvbnRleHQiIH0pOwogICAgIGlmIChXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQuYXBwZW5k
KCJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpOworICAgICAgICByZXN1bHQu
YXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0
YyIgfSk7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0
aGlzKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4
dHVyZV9wdnJ0YyIpOworICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJL
SVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIiB9KTsKICAgICBpZiAoV2ViR0xDb21w
cmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhpcykpCiAgICAgICAgIHJlc3VsdC5hcHBl
bmQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIik7Ci0gICAgaWYgKFdlYkdMRGVwdGhU
ZXh0dXJlOjpzdXBwb3J0ZWQoKmdyYXBoaWNzQ29udGV4dDNEKCkpKQotICAgICAgICByZXN1bHQu
YXBwZW5kKCJXRUJHTF9kZXB0aF90ZXh0dXJlIik7CisgICAgaWYgKFdlYkdMRGVwdGhUZXh0dXJl
OjpzdXBwb3J0ZWQoKm1fY29udGV4dCkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRl
cmFsIHsgIldFQkdMX2RlcHRoX3RleHR1cmUiIH0pOwogICAgIGlmIChzdXBwb3J0c0RyYXdCdWZm
ZXJzKCkpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RyYXdfYnVmZmVycyIpOworICAg
ICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9kcmF3X2J1ZmZlcnMiIH0p
OwogICAgIGlmIChBTkdMRUluc3RhbmNlZEFycmF5czo6c3VwcG9ydGVkKCp0aGlzKSkKLSAgICAg
ICAgcmVzdWx0LmFwcGVuZCgiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpOwotICAgIGlmIChtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFk
ZXJfc291cmNlIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlYnVnX3NoYWRlcnMi
KTsKLSAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIik7CisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIkFOR0xFX2luc3RhbmNlZF9hcnJheXMi
IH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxp
dGVyYWwgeyAiR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIiB9KSkKKyAgICAgICAg
cmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfZGVidWdfc2hhZGVycyIgfSk7Cisg
ICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5m
byIgfSk7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0g
dGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpCiB7CiAg
ICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVGcmFtZWJ1ZmZlckZ1
bmNQYXJhbWV0ZXJzKCJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLCB0YXJnZXQs
IGF0dGFjaG1lbnQpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIAogICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgfHwgIW1f
ZnJhbWVidWZmZXJCaW5kaW5nLT5vYmplY3QoKSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIiLCAibm8gZnJhbWVidWZmZXIgYm91bmQiKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAg
Ci0gICAgV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCA9IG1fZnJhbWVidWZmZXJCaW5kaW5nLT5n
ZXRBdHRhY2htZW50T2JqZWN0KGF0dGFjaG1lbnQpOworICAgIGF1dG8qIG9iamVjdCA9IG1fZnJh
bWVidWZmZXJCaW5kaW5nLT5nZXRBdHRhY2htZW50T2JqZWN0KGF0dGFjaG1lbnQpOwogICAgIGlm
ICghb2JqZWN0KSB7CiAgICAgICAgIGlmIChwbmFtZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6RlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSkKLSAgICAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpOworICAgICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSk7CiAgICAgICAgIC8v
IE9wZW5HTCBFUyAyLjAgc3BlY2lmaWVzIElOVkFMSURfRU5VTSBpbiB0aGlzIGNhc2UsIHdoaWxl
IGRlc2t0b3AgR0wKICAgICAgICAgLy8gc3BlY2lmaWVzIElOVkFMSURfT1BFUkFUSU9OLgogICAg
ICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAi
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5h
bWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICB9CiAgICAgCi0gICAgQVNTRVJUKG9iamVjdC0+aXNUZXh0dXJlKCkgfHwgb2Jq
ZWN0LT5pc1JlbmRlcmJ1ZmZlcigpKTsKICAgICBpZiAob2JqZWN0LT5pc1RleHR1cmUoKSkgewog
ICAgICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEU6Ci0gICAgICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFKTsKKyAgICAgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUpOwog
ICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09C
SkVDVF9OQU1FOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdl
YkdMVGV4dHVyZT4ocmVpbnRlcnByZXRfY2FzdDxXZWJHTFRleHR1cmUqPihvYmplY3QpKSk7Cisg
ICAgICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihyZWludGVycHJldF9jYXN0PFdlYkdMVGV4dHVy
ZSY+KCpvYmplY3QpKTsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVMOgogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFDRToKICAgICAg
ICAgY2FzZSBFeHRlbnNpb25zM0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJ
TkdfRVhUOiB7CiAgICAgICAgICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICAgICAgICAgIG1f
Y29udGV4dC0+Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyaXYodGFyZ2V0LCBhdHRh
Y2htZW50LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
dmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICAgICB9CiAgICAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6
SU5WQUxJRF9FTlVNLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgImludmFs
aWQgcGFyYW1ldGVyIG5hbWUgZm9yIHRleHR1cmUgYXR0YWNobWVudCIpOwotICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
ICAgIH0KICAgICB9IGVsc2UgeworICAgICAgICBBU1NFUlQob2JqZWN0LT5pc1JlbmRlcmJ1ZmZl
cigpKTsKICAgICAgICAgc3dpdGNoIChwbmFtZSkgewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFOgotICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSKTsKKyAg
ICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6
OlJFTkRFUkJVRkZFUik7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVG
RkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUU6Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKFBhc3NSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xS
ZW5kZXJidWZmZXIqPihvYmplY3QpKSk7CisgICAgICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihy
ZWludGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyJj4oKm9iamVjdCkpOwogICAgICAgICBj
YXNlIEV4dGVuc2lvbnMzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNPRElOR19F
WFQ6IHsKICAgICAgICAgICAgIGlmICghbV9leHRzUkdCKSB7CiAgICAgICAgICAgICAgICAgc3lu
dGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIGZvciBy
ZW5kZXJidWZmZXIgYXR0YWNobWVudCIpOwotICAgICAgICAgICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIFdlYkdMUmVuZGVyYnVmZmVyKiByZW5kZXJCdWZmZXIgPSByZWludGVycHJl
dF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyKj4ob2JqZWN0KTsKICAgICAgICAgICAgIEdDM0RlbnVt
IHJlbmRlckJ1ZmZlckZvcm1hdCA9IHJlbmRlckJ1ZmZlci0+Z2V0SW50ZXJuYWxGb3JtYXQoKTsK
ICAgICAgICAgICAgIEFTU0VSVChyZW5kZXJCdWZmZXJGb3JtYXQgIT0gRXh0ZW5zaW9uczNEOjpT
UkdCX0VYVCAmJiByZW5kZXJCdWZmZXJGb3JtYXQgIT0gRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhB
X0VYVCk7CiAgICAgICAgICAgICBpZiAocmVuZGVyQnVmZmVyRm9ybWF0ID09IEV4dGVuc2lvbnMz
RDo6U1JHQjhfQUxQSEE4X0VYVCkKLSAgICAgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KEV4dGVuc2lvbnMzRDo6U1JHQl9FWFQpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEV4dGVuc2lvbnMzRDo6U1JHQl9FWFQpOworICAgICAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsK
ICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJy
b3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVmZmVyQXR0YWNo
bWVudFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIGZvciByZW5kZXJidWZmZXIg
YXR0YWNobWVudCIpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0zNjQsMjEgKzM2
OSwyMiBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVGcmFtZWJ1ZmZlckZ1
bmNQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGZ1bmN0aQogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlk
IHRhcmdldCIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorICAgIC8vIEZJWE1FOiBX
aHkgZG9lcyB0aGlzIHJldHVybiB0cnVlIHVuY29uZGl0aW9uYWxseSBmb3IgQ09MT1JfQVRUQUNI
TUVOVDAsCisgICAgLy8gYnV0IGZhbHNlIGZvciBvdGhlciBDT0xPUl9BVFRBQ0hNRU5UIHZhbHVl
cyBpZiBtX3dlYmdsRHJhd0J1ZmZlcnMgaXMgZmFsc2U/CiAgICAgc3dpdGNoIChhdHRhY2htZW50
KSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDA6CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQVRUQUNITUVOVDoKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpTVEVOQ0lMX0FUVEFDSE1FTlQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6REVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UOgotICAgICAgICBicmVhazsKKyAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgaWYgKG1fd2ViZ2xEcmF3QnVmZmVy
cwotICAgICAgICAgICAgJiYgYXR0YWNobWVudCA+IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9B
VFRBQ0hNRU5UMAorICAgICAgICAgICAgJiYgYXR0YWNobWVudCA+PSBHcmFwaGljc0NvbnRleHQz
RDo6Q09MT1JfQVRUQUNITUVOVDAKICAgICAgICAgICAgICYmIGF0dGFjaG1lbnQgPCBzdGF0aWNf
Y2FzdDxHQzNEZW51bT4oR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwICsgZ2V0
TWF4Q29sb3JBdHRhY2htZW50cygpKSkKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNE
OjpJTlZBTElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgYXR0YWNobWVudCIpOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiB0cnVlOwogfQogICAgIAogdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkg
aGVpZ2h0KQpAQCAtNDU1LDcgKzQ2MSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpj
bGVhcihHQzNEYml0ZmllbGQgbWFzaykKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjb25z
dCBjaGFyKiByZWFzb24gPSAiZnJhbWVidWZmZXIgaW5jb21wbGV0ZSI7Ci0gICAgaWYgKG1fZnJh
bWVidWZmZXJCaW5kaW5nICYmICFtX2ZyYW1lYnVmZmVyQmluZGluZy0+b25BY2Nlc3MoZ3JhcGhp
Y3NDb250ZXh0M0QoKSwgJnJlYXNvbikpIHsKKyAgICBpZiAobV9mcmFtZWJ1ZmZlckJpbmRpbmcg
JiYgIW1fZnJhbWVidWZmZXJCaW5kaW5nLT5vbkFjY2VzcyhtX2NvbnRleHQuZ2V0KCksICZyZWFz
b24pKSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiwgImNsZWFyIiwgcmVhc29uKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTQ2NCwxMSArNDcwLDExIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0OjpjbGVhcihHQzNEYml0ZmllbGQgbWFzaykKICAgICBtYXJrQ29udGV4dENoYW5nZWQoKTsK
IH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdD
M0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0
ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwotICAgIGNvbnN0IGludCBpbnRaZXJvID0g
MDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUNUSVZFX1RFWFRVUkU6CiAgICAgICAgIHJldHVybiBn
ZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CkBAIC00NzksNyArNDg1LDcgQEAgV2ViR0xH
ZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBX0JJVFM6CiAgICAgICAgIHJldHVy
biBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFS
UkFZX0JVRkZFUl9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQ
dHI8V2ViR0xCdWZmZXI+KG1fYm91bmRBcnJheUJ1ZmZlcikpOworICAgICAgICByZXR1cm4gbV9i
b3VuZEFycmF5QnVmZmVyOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkJMRU5EOgogICAg
ICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6QkxFTkRfQ09MT1I6CkBAIC01MDMsMTYgKzUwOSwxNiBAQCBXZWJHTEdldElu
Zm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfV1JJVEVNQVNLOgogICAgICAgICByZXR1
cm4gZ2V0Qm9vbGVhbkFycmF5UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUzoKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhQYXNzUmVmUHRyPFVpbnQzMkFycmF5PihVaW50MzJBcnJheTo6Y3JlYXRlKG1fY29t
cHJlc3NlZFRleHR1cmVGb3JtYXRzLmRhdGEoKSwgbV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMu
c2l6ZSgpKSkpOworICAgICAgICByZXR1cm4gVWludDMyQXJyYXk6OmNyZWF0ZShtX2NvbXByZXNz
ZWRUZXh0dXJlRm9ybWF0cy5kYXRhKCksIG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLnNpemUo
KSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VMTF9GQUNFOgogICAgICAgICByZXR1
cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6Q1VMTF9GQUNFX01PREU6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRl
cihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VSUkVOVF9QUk9HUkFNOgot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xQcm9ncmFtPihtX2N1
cnJlbnRQcm9ncmFtKSk7CisgICAgICAgIHJldHVybiBtX2N1cnJlbnRQcm9ncmFtOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JJVFM6CiAgICAgICAgIGlmICghbV9mcmFtZWJ1
ZmZlckJpbmRpbmcgJiYgIW1fYXR0cmlidXRlcy5kZXB0aCkKLSAgICAgICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oaW50WmVybyk7CisgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgcmV0
dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
REVQVEhfQ0xFQVJfVkFMVUU6CiAgICAgICAgIHJldHVybiBnZXRGbG9hdFBhcmFtZXRlcihwbmFt
ZSk7CkBAIC01MjcsOSArNTMzLDkgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OkRJVEhFUjoKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkc6
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4obV9i
b3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKSkpOworICAgICAg
ICByZXR1cm4gbWFrZVJlZlB0cihtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1lbnRB
cnJheUJ1ZmZlcigpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9C
SU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xGcmFt
ZWJ1ZmZlcj4obV9mcmFtZWJ1ZmZlckJpbmRpbmcpKTsKKyAgICAgICAgcmV0dXJuIG1fZnJhbWVi
dWZmZXJCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZST05UX0ZBQ0U6CiAg
ICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6R0VORVJBVEVfTUlQTUFQX0hJTlQ6CkBAIC01NzcsOSArNTgzLDkg
QEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0Rl
bnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFRF9CSVRTOgogICAgICAg
ICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSRU5ERVJCVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQ
YXNzUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPihtX3JlbmRlcmJ1ZmZlckJpbmRpbmcpKTsKKyAg
ICAgICAgcmV0dXJuIG1fcmVuZGVyYnVmZmVyQmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpSRU5ERVJFUjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhTdHJpbmcoIldl
YktpdCBXZWJHTCIpKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZyB7IEFTQ0lJTGl0ZXJhbCB7ICJX
ZWJLaXQgV2ViR0wiIH0gfTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTQU1QTEVfQlVG
RkVSUzoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6U0FNUExFX0NPVkVSQUdFX0lOVkVSVDoKQEAgLTU5Myw3ICs1OTks
NyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0Mz
RGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0NJU1NPUl9URVNUOgog
ICAgICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OOgotICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKCJXZWJHTCBHTFNMIEVTIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5n
KEdyYXBoaWNzQ29udGV4dDNEOjpTSEFESU5HX0xBTkdVQUdFX1ZFUlNJT04pICsgIikiKTsKKyAg
ICAgICAgcmV0dXJuICJXZWJHTCBHTFNMIEVTIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5n
KEdyYXBoaWNzQ29udGV4dDNEOjpTSEFESU5HX0xBTkdVQUdFX1ZFUlNJT04pICsgIikiOwogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQkFDS19GQUlMOgogICAgICAgICByZXR1
cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlNURU5DSUxfQkFDS19GVU5DOgpAQCAtNjEwLDcgKzYxNiw3IEBAIFdlYkdMR2V0SW5m
byBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAg
ICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JJVFM6CiAgICAgICAgIGlmICghbV9mcmFtZWJ1ZmZl
ckJpbmRpbmcgJiYgIW1fYXR0cmlidXRlcy5zdGVuY2lsKQotICAgICAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhpbnRaZXJvKTsKKyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICByZXR1
cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpT
VEVOQ0lMX0NMRUFSX1ZBTFVFOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1l
KTsKQEAgLTYzMyw2MSArNjM5LDYxIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpTVUJQSVhFTF9CSVRTOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1l
KTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfMkQ6Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+KG1fdGV4dHVy
ZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmUyREJpbmRpbmcpKTsKKyAgICAgICAg
cmV0dXJuIG1fdGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmUyREJpbmRp
bmc7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQ
OgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xUZXh0dXJlPiht
X3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlQ3ViZU1hcEJpbmRpbmcp
KTsKKyAgICAgICAgcmV0dXJuIG1fdGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLnRl
eHR1cmVDdWJlTWFwQmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tf
QUxJR05NRU5UOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfRkxJUF9ZX1dFQkdMOgotICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKG1fdW5wYWNrRmxpcFkpOworICAgICAgICByZXR1cm4gbV91bnBhY2tG
bGlwWTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfUFJFTVVMVElQTFlfQUxQ
SEFfV0VCR0w6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV91bnBhY2tQcmVtdWx0aXBs
eUFscGhhKTsKKyAgICAgICAgcmV0dXJuIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYTsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdM
OgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNp
b24pOworICAgICAgICByZXR1cm4gbV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lvbjsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1I6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oU3RyaW5nKCJXZWJLaXQiKSk7CisgICAgICAgIHJldHVybiBTdHJpbmcgeyBBU0NJSUxpdGVy
YWwgeyAiV2ViS2l0IiB9IH07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTjoK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygiV2ViR0wgMS4wICgiICsgbV9jb250ZXh0LT5n
ZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlNJT04pICsgIikiKTsKKyAgICAgICAgcmV0
dXJuICJXZWJHTCAxLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQz
RDo6VkVSU0lPTikgKyAiKSI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VklFV1BPUlQ6
CiAgICAgICAgIHJldHVybiBnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKHBuYW1lKTsKICAgICBj
YXNlIEV4dGVuc2lvbnMzRDo6RlJBR01FTlRfU0hBREVSX0RFUklWQVRJVkVfSElOVF9PRVM6IC8v
IE9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcwogICAgICAgICBpZiAobV9vZXNTdGFuZGFyZERlcml2
YXRpdmVzKQogICAgICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEV4dGVu
c2lvbnMzRDo6RlJBR01FTlRfU0hBREVSX0RFUklWQVRJVkVfSElOVF9PRVMpOwogICAgICAgICBz
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFy
YW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIE9FU19zdGFuZGFyZF9kZXJpdmF0aXZl
cyBub3QgZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIGNhc2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNL
RURfUkVOREVSRVJfV0VCR0w6CiAgICAgICAgIGlmIChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8p
Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0U3RyaW5nKEdy
YXBoaWNzQ29udGV4dDNEOjpSRU5ERVJFUikpOworICAgICAgICAgICAgcmV0dXJuIG1fY29udGV4
dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJFUik7CiAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0
ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBu
b3QgZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIGNhc2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURf
VkVORE9SX1dFQkdMOgogICAgICAgICBpZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQotICAg
ICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGlj
c0NvbnRleHQzRDo6VkVORE9SKSk7CisgICAgICAgICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRT
dHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFTkRPUik7CiAgICAgICAgIHN5bnRoZXNpemVHTEVy
cm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52
YWxpZCBwYXJhbWV0ZXIgbmFtZSwgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBub3QgZW5hYmxl
ZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpWRVJURVhfQVJSQVlfQklORElOR19PRVM6IC8v
IE9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0CiAgICAgICAgIGlmIChtX29lc1ZlcnRleEFycmF5T2Jq
ZWN0KSB7Ci0gICAgICAgICAgICBpZiAoIW1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNEZWZh
dWx0T2JqZWN0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVm
UHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+KHN0YXRpY19jYXN0PFdlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMqPihtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QuZ2V0KCkpKSk7Ci0gICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICBpZiAobV9ib3VuZFZlcnRl
eEFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3QoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICAgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHN0YXRpY19jYXN0PFdlYkdM
VmVydGV4QXJyYXlPYmplY3RPRVMmPigqbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0KSk7CiAgICAg
ICAgIH0KICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBPRVNfdmVy
dGV4X2FycmF5X29iamVjdCBub3QgZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpN
QVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQ6IC8vIEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlz
b3Ryb3BpYwogICAgICAgICBpZiAobV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMpCiAgICAg
ICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoRXh0ZW5zaW9uczNEOjpNQVhf
VEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQpOwogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQg
cGFyYW1ldGVyIG5hbWUsIEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyBub3QgZW5hYmxl
ZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpNQVhfQ09MT1JfQVRUQUNITUVOVFNfRVhUOiAv
LyBFWFRfZHJhd19idWZmZXJzIEJFR0lOCiAgICAgICAgIGlmIChtX3dlYmdsRHJhd0J1ZmZlcnMp
Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKGdldE1heENvbG9yQXR0YWNobWVudHMo
KSk7CisgICAgICAgICAgICByZXR1cm4gZ2V0TWF4Q29sb3JBdHRhY2htZW50cygpOwogICAgICAg
ICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0
UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RyYXdfYnVmZmVycyBu
b3QgZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpNQVhfRFJBV19CVUZGRVJTX0VY
VDoKICAgICAgICAgaWYgKG1fd2ViZ2xEcmF3QnVmZmVycykKLSAgICAgICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oZ2V0TWF4RHJhd0J1ZmZlcnMoKSk7CisgICAgICAgICAgICByZXR1cm4gZ2V0
TWF4RHJhd0J1ZmZlcnMoKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBu
YW1lLCBXRUJHTF9kcmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBkZWZhdWx0OgogICAg
ICAgICBpZiAobV93ZWJnbERyYXdCdWZmZXJzCiAgICAgICAgICAgICAmJiBwbmFtZSA+PSBFeHRl
bnNpb25zM0Q6OkRSQVdfQlVGRkVSMF9FWFQKQEAgLTY5NywxMCArNzAzLDEwIEBAIFdlYkdMR2V0
SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkK
ICAgICAgICAgICAgICAgICB2YWx1ZSA9IG1fZnJhbWVidWZmZXJCaW5kaW5nLT5nZXREcmF3QnVm
ZmVyKHBuYW1lKTsKICAgICAgICAgICAgIGVsc2UgLy8gZW11bGF0ZWQgYmFja2J1ZmZlcgogICAg
ICAgICAgICAgICAgIHZhbHVlID0gbV9iYWNrRHJhd0J1ZmZlcjsKLSAgICAgICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICAg
ICB9CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElE
X0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaAppbmRleCAxODc0ZmU1YTVjMzgzMTE5OGY0M2I5NGMyMDk2YjllZWJlNDNlNDcwLi4w
YzYxZGQ2NTQxMDcxNDFmZWNmZTdjNGI3OTBlNGExOWYzZWJjMDM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwxNiArMzIs
MTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0IGZp
bmFsIDogcHVibGljIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UgewogcHVibGljOgogICAgIFdl
YkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYsIEdyYXBoaWNzQ29udGV4dDNE
QXR0cmlidXRlcyk7Ci0gICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50
JiwgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4sIEdyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcyk7CisgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiwgUmVm
PEdyYXBoaWNzQ29udGV4dDNEPiYmLCBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMpOwogCiBw
cml2YXRlOgogICAgIGJvb2wgaXNXZWJHTDEoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CiAKICAgICBXZWJHTEV4dGVuc2lvbiogZ2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYpIGZpbmFs
OwotICAgIFdlYkdMR2V0SW5mbyBnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpIGZpbmFsOwor
ICAgIFdlYkdMQW55IGdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkgZmluYWw7CiAgICAgVmVj
dG9yPFN0cmluZz4gZ2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpIGZpbmFsOwogCi0gICAgV2ViR0xH
ZXRJbmZvIGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQs
IEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKKyAgICBXZWJHTEFu
eSBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
ZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBwbmFtZSkgZmluYWw7CiAgICAgdm9pZCByZW5kZXJi
dWZmZXJTdG9yYWdlKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdD
M0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgZmluYWw7CiAgICAgYm9vbCB2YWxpZGF0
ZUZyYW1lYnVmZmVyRnVuY1BhcmFtZXRlcnMoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQzNE
ZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQpIGZpbmFsOwogICAgIHZvaWQgaGludChH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1vZGUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRl
eCA2NDk4MzRmODViOWMxY2QxMjBhMTZmMmM5YTU5YmRmNTI0OWM4OGZlLi45ODQ1YjNlZjU4M2Y5
OTk4MTZjYWU3ZjA0ZmU0ZjY3NmU5YWUyNWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDkg
KzI0LDkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5oIgogCiAjaWYgRU5BQkxFKFdFQkdMKQotI2luY2x1ZGUgIldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKIAogI2luY2x1ZGUgIkFOR0xFSW5zdGFuY2VkQXJyYXlz
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKQEAgLTQyMywxNyArNDIzLDE1IEBAIHN0ZDo6
dW5pcXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpjcmVhdGUoSFRNCiAgICAgICAgIHJldHVybiByZW5kZXJpbmdDb250ZXh0OwogICAg
IH0KIAotICAgIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cgPSBkb2N1bWVudC52aWV3KCktPnJvb3Qo
KS0+aG9zdFdpbmRvdygpOwotICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dChH
cmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKGF0dHJpYnV0ZXMsIGhvc3RXaW5kb3cpKTsKLQorICAg
IGF1dG8gY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoYXR0cmlidXRlcywgZG9j
dW1lbnQudmlldygpLT5yb290KCktPmhvc3RXaW5kb3coKSk7CiAgICAgaWYgKCFjb250ZXh0IHx8
ICFjb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkgewogICAgICAgICBjYW52YXMuZGlzcGF0
Y2hFdmVudChXZWJHTENvbnRleHRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRl
eHRjcmVhdGlvbmVycm9yRXZlbnQsIGZhbHNlLCB0cnVlLCAiQ291bGQgbm90IGNyZWF0ZSBhIFdl
YkdMIGNvbnRleHQuIikpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBF
eHRlbnNpb25zM0QmIGV4dGVuc2lvbnMgPSBjb250ZXh0LT5nZXRFeHRlbnNpb25zKCk7Ci0gICAg
aWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMoIkdMX0VYVF9kZWJ1Z19tYXJrZXIiKSkKLSAgICAgICAg
ZXh0ZW5zaW9ucy5wdXNoR3JvdXBNYXJrZXJFWFQoIldlYkdMUmVuZGVyaW5nQ29udGV4dCIpOwor
ICAgIGF1dG8mIGV4dGVuc2lvbnMgPSBjb250ZXh0LT5nZXRFeHRlbnNpb25zKCk7CisgICAgaWYg
KGV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF9kZWJ1Z19tYXJrZXIi
IH0pKQorICAgICAgICBleHRlbnNpb25zLnB1c2hHcm91cE1hcmtlckVYVChBU0NJSUxpdGVyYWwg
eyAiV2ViR0xSZW5kZXJpbmdDb250ZXh0IiB9KTsKIAogI2lmIEVOQUJMRShXRUJHTDIpICYmIFBM
QVRGT1JNKE1BQykKICAgICAvLyBnbFRleFN0b3JhZ2UoKSB3YXMgb25seSBhZGRlZCB0byBDb3Jl
IGluIE9wZW5HTCA0LjIuCkBAIC00NDIsMTMgKzQ0MCwxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRl
KEhUTQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogCi0gICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+IHJlbmRlcmluZ0NvbnRleHQgPSBudWxscHRy
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiByZW5kZXJp
bmdDb250ZXh0OwogI2lmIEVOQUJMRShXRUJHTDIpCiAgICAgaWYgKHR5cGUgPT0gIndlYmdsMiIp
Ci0gICAgICAgIHJlbmRlcmluZ0NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ+KGNhbnZhcywgV1RGTW92ZShjb250ZXh0KSwgYXR0cmlidXRlcyk7CisgICAg
ICAgIHJlbmRlcmluZ0NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ+KGNhbnZhcywgY29udGV4dC5yZWxlYXNlTm9uTnVsbCgpLCBhdHRyaWJ1dGVzKTsKICAg
ICBlbHNlCiAjZW5kaWYKLSAgICAgICAgcmVuZGVyaW5nQ29udGV4dCA9IHN0ZDo6bWFrZV91bmlx
dWU8V2ViR0xSZW5kZXJpbmdDb250ZXh0PihjYW52YXMsIFdURk1vdmUoY29udGV4dCksIGF0dHJp
YnV0ZXMpOworICAgICAgICByZW5kZXJpbmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJH
TFJlbmRlcmluZ0NvbnRleHQ+KGNhbnZhcywgY29udGV4dC5yZWxlYXNlTm9uTnVsbCgpLCBhdHRy
aWJ1dGVzKTsKICAgICByZW5kZXJpbmdDb250ZXh0LT5zdXNwZW5kSWZOZWVkZWQoKTsKIAogICAg
IHJldHVybiByZW5kZXJpbmdDb250ZXh0OwpAQCAtNDU3LDQ0ICs0NTUsMjkgQEAgc3RkOjp1bmlx
dWVfcHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmNyZWF0ZShIVE0KIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgV2ViR0xDb250ZXh0
QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dChwYXNz
ZWRDYW52YXMpCiAgICAgLCBBY3RpdmVET01PYmplY3QoJnBhc3NlZENhbnZhcy5kb2N1bWVudCgp
KQotICAgICwgbV9jb250ZXh0KG51bGxwdHIpCiAgICAgLCBtX2Rpc3BhdGNoQ29udGV4dExvc3RF
dmVudFRpbWVyKCp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250
ZXh0TG9zdEV2ZW50KQotICAgICwgbV9yZXN0b3JlQWxsb3dlZChmYWxzZSkKICAgICAsIG1fcmVz
dG9yZVRpbWVyKCp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWF5YmVSZXN0b3Jl
Q29udGV4dCkKLSAgICAsIG1fZ2VuZXJhdGVkSW1hZ2VDYWNoZSgwKQotICAgICwgbV9jb250ZXh0
TG9zdChmYWxzZSkKLSAgICAsIG1fY29udGV4dExvc3RNb2RlKFN5bnRoZXRpY0xvc3RDb250ZXh0
KQogICAgICwgbV9hdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpCi0gICAgLCBtX3N5bnRoZXNpemVkRXJy
b3JzVG9Db25zb2xlKHRydWUpCiAgICAgLCBtX251bUdMRXJyb3JzVG9Db25zb2xlQWxsb3dlZCht
YXhHTEVycm9yc0FsbG93ZWRUb0NvbnNvbGUpCiAgICAgLCBtX2lzUGVuZGluZ1BvbGljeVJlc29s
dXRpb24odHJ1ZSkKLSAgICAsIG1faGFzUmVxdWVzdGVkUG9saWN5UmVzb2x1dGlvbihmYWxzZSkK
IHsKIH0KIAotV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZShIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLCBSZWZQdHI8R3JhcGhpY3NDb250
ZXh0M0Q+JiYgY29udGV4dCwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShIVE1MQ2Fu
dmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29udGV4
dCwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIDogQ2FudmFzUmVuZGVy
aW5nQ29udGV4dChwYXNzZWRDYW52YXMpCiAgICAgLCBBY3RpdmVET01PYmplY3QoJnBhc3NlZENh
bnZhcy5kb2N1bWVudCgpKQogICAgICwgbV9jb250ZXh0KFdURk1vdmUoY29udGV4dCkpCiAgICAg
LCBtX2Rpc3BhdGNoQ29udGV4dExvc3RFdmVudFRpbWVyKCp0aGlzLCAmV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50KQotICAgICwgbV9yZXN0b3JlQWxs
b3dlZChmYWxzZSkKICAgICAsIG1fcmVzdG9yZVRpbWVyKCp0aGlzLCAmV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6bWF5YmVSZXN0b3JlQ29udGV4dCkKICAgICAsIG1fZ2VuZXJhdGVkSW1hZ2VD
YWNoZSg0KQotICAgICwgbV9jb250ZXh0TG9zdChmYWxzZSkKLSAgICAsIG1fY29udGV4dExvc3RN
b2RlKFN5bnRoZXRpY0xvc3RDb250ZXh0KQogICAgICwgbV9hdHRyaWJ1dGVzKGF0dHJpYnV0ZXMp
Ci0gICAgLCBtX3N5bnRoZXNpemVkRXJyb3JzVG9Db25zb2xlKHRydWUpCiAgICAgLCBtX251bUdM
RXJyb3JzVG9Db25zb2xlQWxsb3dlZChtYXhHTEVycm9yc0FsbG93ZWRUb0NvbnNvbGUpCi0gICAg
LCBtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24oZmFsc2UpCi0gICAgLCBtX2hhc1JlcXVlc3Rl
ZFBvbGljeVJlc29sdXRpb24oZmFsc2UpCiB7Ci0gICAgQVNTRVJUKG1fY29udGV4dCk7CiAgICAg
bV9jb250ZXh0R3JvdXAgPSBXZWJHTENvbnRleHRHcm91cDo6Y3JlYXRlKCk7Ci0gICAgbV9jb250
ZXh0R3JvdXAtPmFkZENvbnRleHQodGhpcyk7CisgICAgbV9jb250ZXh0R3JvdXAtPmFkZENvbnRl
eHQoKnRoaXMpOwogICAgIAogICAgIG1fY29udGV4dC0+c2V0V2ViR0xDb250ZXh0KHRoaXMpOwog
Ci0gICAgbV9tYXhWaWV3cG9ydERpbXNbMF0gPSBtX21heFZpZXdwb3J0RGltc1sxXSA9IDA7CiAg
ICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihHcmFwaGljc0NvbnRleHQzRDo6TUFYX1ZJRVdQT1JU
X0RJTVMsIG1fbWF4Vmlld3BvcnREaW1zKTsKIAogICAgIHNldHVwRmxhZ3MoKTsKQEAgLTYyMiw3
ICs2MDUsNyBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp+V2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSgpCiAgICAgaWYgKCFtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pIHsKICAgICAg
ICAgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpOwogICAgICAgICBkZXN0cm95R3JhcGhpY3ND
b250ZXh0M0QoKTsKLSAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZUNvbnRleHQodGhpcyk7
CisgICAgICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVDb250ZXh0KCp0aGlzKTsKICAgICB9CiB9
CiAKQEAgLTkxNiw3ICs4OTksNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJp
bmRCdWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBXZWJHTEJ1ZmZlciogYnVmZmVyKQogICAgIGlmICgh
Y2hlY2tPYmplY3RUb0JlQm91bmQoImJpbmRCdWZmZXIiLCBidWZmZXIsIGRlbGV0ZWQpKQogICAg
ICAgICByZXR1cm47CiAgICAgaWYgKGRlbGV0ZWQpCi0gICAgICAgIGJ1ZmZlciA9IDA7CisgICAg
ICAgIGJ1ZmZlciA9IG51bGxwdHI7CiAgICAgaWYgKGJ1ZmZlciAmJiBidWZmZXItPmdldFRhcmdl
dCgpICYmIGJ1ZmZlci0+Z2V0VGFyZ2V0KCkgIT0gdGFyZ2V0KSB7CiAgICAgICAgIHN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgImJpbmRCdWZm
ZXIiLCAiYnVmZmVycyBjYW4gbm90IGJlIHVzZWQgd2l0aCBtdWx0aXBsZSB0YXJnZXRzIik7CiAg
ICAgICAgIHJldHVybjsKQEAgLTEzOTgsNyArMTM4MSw3IEBAIFJlZlB0cjxXZWJHTEJ1ZmZlcj4g
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlQnVmZmVyKCkKICAgICBpZiAoaXNDb250
ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIGJ1
ZmZlciA9IFdlYkdMQnVmZmVyOjpjcmVhdGUoKnRoaXMpOwotICAgIGFkZFNoYXJlZE9iamVjdChi
dWZmZXIucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdChidWZmZXIuZ2V0KCkpOwogICAgIHJl
dHVybiBXVEZNb3ZlKGJ1ZmZlcik7CiB9CiAKQEAgLTE0MDcsNyArMTM5MCw3IEBAIFJlZlB0cjxX
ZWJHTEZyYW1lYnVmZmVyPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVGcmFtZWJ1
ZmZlcigpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgYXV0byBidWZmZXIgPSBXZWJHTEZyYW1lYnVmZmVyOjpjcmVhdGUoKnRo
aXMpOwotICAgIGFkZENvbnRleHRPYmplY3QoYnVmZmVyLnB0cigpKTsKKyAgICBhZGRDb250ZXh0
T2JqZWN0KGJ1ZmZlci5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUoYnVmZmVyKTsKIH0KIApA
QCAtMTQxNiw3ICsxMzk5LDcgQEAgUmVmUHRyPFdlYkdMVGV4dHVyZT4gV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Y3JlYXRlVGV4dHVyZSgpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRp
bmcoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byB0ZXh0dXJlID0gV2ViR0xU
ZXh0dXJlOjpjcmVhdGUoKnRoaXMpOwotICAgIGFkZFNoYXJlZE9iamVjdCh0ZXh0dXJlLnB0cigp
KTsKKyAgICBhZGRTaGFyZWRPYmplY3QodGV4dHVyZS5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1v
dmUodGV4dHVyZSk7CiB9CiAKQEAgLTE0MjUsNyArMTQwOCw3IEBAIFJlZlB0cjxXZWJHTFByb2dy
YW0+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZVByb2dyYW0oKQogICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1
dG8gcHJvZ3JhbSA9IFdlYkdMUHJvZ3JhbTo6Y3JlYXRlKCp0aGlzKTsKLSAgICBhZGRTaGFyZWRP
YmplY3QocHJvZ3JhbS5wdHIoKSk7CisgICAgYWRkU2hhcmVkT2JqZWN0KHByb2dyYW0uZ2V0KCkp
OwogICAgIHJldHVybiBXVEZNb3ZlKHByb2dyYW0pOwogfQogCkBAIC0xNDM0LDcgKzE0MTcsNyBA
QCBSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNy
ZWF0ZVJlbmRlcmJ1ZmZlcigpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBidWZmZXIgPSBXZWJHTFJlbmRlcmJ1ZmZl
cjo6Y3JlYXRlKCp0aGlzKTsKLSAgICBhZGRTaGFyZWRPYmplY3QoYnVmZmVyLnB0cigpKTsKKyAg
ICBhZGRTaGFyZWRPYmplY3QoYnVmZmVyLmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92ZShidWZm
ZXIpOwogfQogCkBAIC0xNDQ4LDcgKzE0MzEsNyBAQCBSZWZQdHI8V2ViR0xTaGFkZXI+IFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZVNoYWRlcihHQzNEZW51bSB0eXBlKQogICAgIH0K
IAogICAgIGF1dG8gc2hhZGVyID0gV2ViR0xTaGFkZXI6OmNyZWF0ZSgqdGhpcywgdHlwZSk7Ci0g
ICAgYWRkU2hhcmVkT2JqZWN0KHNoYWRlci5wdHIoKSk7CisgICAgYWRkU2hhcmVkT2JqZWN0KHNo
YWRlci5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUoc2hhZGVyKTsKIH0KIApAQCAtMTQ4MSw3
ICsxNDY0LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVCdWZmZXIo
V2ViR0xCdWZmZXIqIGJ1ZmZlcikKICAgICBpZiAobV9ib3VuZEFycmF5QnVmZmVyID09IGJ1ZmZl
cikKICAgICAgICAgbV9ib3VuZEFycmF5QnVmZmVyID0gbnVsbHB0cjsKIAotICAgIG1fYm91bmRW
ZXJ0ZXhBcnJheU9iamVjdC0+dW5iaW5kQnVmZmVyKGJ1ZmZlcik7CisgICAgbV9ib3VuZFZlcnRl
eEFycmF5T2JqZWN0LT51bmJpbmRCdWZmZXIoKmJ1ZmZlcik7CiB9CiAKIHZvaWQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xGcmFtZWJ1ZmZlciogZnJh
bWVidWZmZXIpCkBAIC0yMTg3LDEwICsyMTcwLDEwIEBAIEdDM0RpbnQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Z2V0QXR0cmliTG9jYXRpb24oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25z
CiAgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0QXR0cmliTG9jYXRpb24ob2JqZWN0T3JaZXJvKHBy
b2dyYW0pLCBuYW1lKTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldEJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKQor
V2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVyUGFyYW1ldGVyKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RP
clBlbmRpbmcoKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAogICAgIGJvb2wgdmFsaWQgPSBmYWxzZTsKICAgICBpZiAodGFyZ2V0ID09
IEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9CVUZGRVIgfHwgdGFyZ2V0ID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpFTEVNRU5UX0FSUkFZX0JVRkZFUikKQEAgLTIyMTAsMTkgKzIxOTMsMTkgQEAgV2Vi
R0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFtZXRlcihH
QzNEZW51bSB0YXJnZXQsIEdDM0QKICNlbmRpZgogICAgIGlmICghdmFsaWQpIHsKICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEJ1
ZmZlclBhcmFtZXRlciIsICJpbnZhbGlkIHRhcmdldCIpOwotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIGlmIChwbmFt
ZSAhPSBHcmFwaGljc0NvbnRleHQzRDo6QlVGRkVSX1NJWkUgJiYgcG5hbWUgIT0gR3JhcGhpY3ND
b250ZXh0M0Q6OkJVRkZFUl9VU0FHRSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0QnVmZmVyUGFyYW1ldGVyIiwgImludmFs
aWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAg
ICBtX2NvbnRleHQtPmdldEJ1ZmZlclBhcmFtZXRlcml2KHRhcmdldCwgcG5hbWUsICZ2YWx1ZSk7
CiAgICAgaWYgKHBuYW1lID09IEdyYXBoaWNzQ29udGV4dDNEOjpCVUZGRVJfU0laRSkKLSAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhz
dGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiB2YWx1ZTsK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVlKTsKIH0KIAogc3RkOjpvcHRp
b25hbDxXZWJHTENvbnRleHRBdHRyaWJ1dGVzPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpn
ZXRDb250ZXh0QXR0cmlidXRlcygpCkBAIC0yMjQ5LDMwICsyMjMyLDMwIEBAIEdDM0RlbnVtIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEVycm9yKCkKICAgICByZXR1cm4gbV9jb250ZXh0
LT5nZXRFcnJvcigpOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Z2V0UHJvZ3JhbVBhcmFtZXRlcihXZWJHTFByb2dyYW0qIHByb2dyYW0sIEdDM0RlbnVtIHBu
YW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJvZ3JhbVBhcmFt
ZXRlcihXZWJHTFByb2dyYW0qIHByb2dyYW0sIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImdldFByb2dy
YW1QYXJhbWV0ZXIiLCBwcm9ncmFtKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEdDM0RpbnQgdmFsdWUgPSAwOwogICAgIHN3
aXRjaCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERUxFVEVfU1RBVFVT
OgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHByb2dyYW0tPmlzRGVsZXRlZCgpKTsKKyAg
ICAgICAgcmV0dXJuIHByb2dyYW0tPmlzRGVsZXRlZCgpOwogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlZBTElEQVRFX1NUQVRVUzoKICAgICAgICAgbV9jb250ZXh0LT5nZXRQcm9ncmFtaXYo
b2JqZWN0T3JaZXJvKHByb2dyYW0pLCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxib29sPih2YWx1ZSkpOworICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Ym9vbD4odmFsdWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTktf
U1RBVFVTOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHByb2dyYW0tPmdldExpbmtTdGF0
dXMoKSk7CisgICAgICAgIHJldHVybiBwcm9ncmFtLT5nZXRMaW5rU3RhdHVzKCk7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6QVRUQUNIRURfU0hBREVSUzoKICAgICAgICAgbV9jb250ZXh0
LT5nZXRQcm9ncmFtaXYob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBwbmFtZSwgJnZhbHVlKTsKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAgIHJldHVybiB2YWx1ZTsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVfQVRUUklCVVRFUzoKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVfVU5JRk9STVM6CiAgICAgICAgIG1fY29udGV4dC0+
Z2V0Tm9uQnVpbHRJbkFjdGl2ZVN5bWJvbENvdW50KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgcG5h
bWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAg
ICByZXR1cm4gdmFsdWU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFByb2dyYW1QYXJhbWV0ZXIiLCAi
aW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMjI4MywxNyArMjI2Niwx
NyBAQCBTdHJpbmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJvZ3JhbUluZm9Mb2co
V2ViR0xQcm9ncmFtKiBwcm9ncmFtKQogICAgIHJldHVybiBlbnN1cmVOb3ROdWxsKG1fY29udGV4
dC0+Z2V0UHJvZ3JhbUluZm9Mb2cob2JqZWN0T3JaZXJvKHByb2dyYW0pKSk7CiB9CiAKLVdlYkdM
R2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0
ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQs
IEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCi0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgaWYgKHRhcmdldCAhPSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSKSB7CiAgICAg
ICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJn
ZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIiLCAiaW52YWxpZCB0YXJnZXQiKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAg
aWYgKCFtX3JlbmRlcmJ1ZmZlckJpbmRpbmcgfHwgIW1fcmVuZGVyYnVmZmVyQmluZGluZy0+b2Jq
ZWN0KCkpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklO
VkFMSURfT1BFUkFUSU9OLCAiZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIiwgIm5vIHJlbmRlcmJ1
ZmZlciBib3VuZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIH0KIAogICAgIGlmIChtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdl
dEludGVybmFsRm9ybWF0KCkgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUwKQEAg
LTIzMjAsMTIgKzIzMDMsMTIgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQKICAgICAgICAgICAg
IHZhbHVlID0gODsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpSRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUOgotICAgICAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbyhtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdldEludGVybmFsRm9ybWF0KCkp
OworICAgICAgICAgICAgcmV0dXJuIG1fcmVuZGVyYnVmZmVyQmluZGluZy0+Z2V0SW50ZXJuYWxG
b3JtYXQoKTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9y
KEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRSZW5kZXJidWZmZXJQYXJhbWV0
ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbygpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAgIHJldHVybiB2YWx1ZTsKICAg
ICB9CiAKICAgICBHQzNEaW50IHZhbHVlID0gMDsKQEAgLTIzMzksMzIgKzIzMjIsMzIgQEAgV2Vi
R0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRlcmJ1ZmZlclBhcmFt
ZXRlcihHQzNEZW51bSB0YXJnZXQKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJC
VUZGRVJfREVQVEhfU0laRToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZG
RVJfU1RFTkNJTF9TSVpFOgogICAgICAgICBtX2NvbnRleHQtPmdldFJlbmRlcmJ1ZmZlclBhcmFt
ZXRlcml2KHRhcmdldCwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8odmFsdWUpOworICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVDoKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdldEludGVybmFsRm9ybWF0KCkpOworICAg
ICAgICByZXR1cm4gbV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgpOwog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNE
OjpJTlZBTElEX0VOVU0sICJnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJh
bWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIH0KIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmdldFNoYWRlclBhcmFtZXRlcihXZWJHTFNoYWRlciogc2hhZGVyLCBHQzNEZW51
bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNoYWRlclBh
cmFtZXRlcihXZWJHTFNoYWRlciogc2hhZGVyLCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAo
aXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJnZXRTaGFk
ZXJQYXJhbWV0ZXIiLCBzaGFkZXIpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIEdDM0RpbnQgdmFsdWUgPSAwOwogICAgIHN3aXRj
aCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERUxFVEVfU1RBVFVTOgot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHNoYWRlci0+aXNEZWxldGVkKCkpOworICAgICAg
ICByZXR1cm4gc2hhZGVyLT5pc0RlbGV0ZWQoKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpDT01QSUxFX1NUQVRVUzoKICAgICAgICAgbV9jb250ZXh0LT5nZXRTaGFkZXJpdihvYmplY3RP
clplcm8oc2hhZGVyKSwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PGJvb2w+KHZhbHVlKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTSEFERVJfVFlQRToK
ICAgICAgICAgbV9jb250ZXh0LT5nZXRTaGFkZXJpdihvYmplY3RPclplcm8oc2hhZGVyKSwgcG5h
bWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8dW5z
aWduZWQgaW50Pih2YWx1ZSkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KHZhbHVlKTsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGlj
c0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0U2hhZGVyUGFyYW1ldGVyIiwgImludmFsaWQg
cGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTI0MTMsMTMgKzIzOTYsMTMgQEAgU3Ry
aW5nIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNoYWRlclNvdXJjZShXZWJHTFNoYWRl
ciogc2hhZGVyKQogICAgIHJldHVybiBlbnN1cmVOb3ROdWxsKHNoYWRlci0+Z2V0U291cmNlKCkp
OwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFy
YW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
ZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIFdl
YkdMVGV4dHVyZSogdGV4ID0gdmFsaWRhdGVUZXh0dXJlQmluZGluZygiZ2V0VGV4UGFyYW1ldGVy
IiwgdGFyZ2V0LCBmYWxzZSk7CiAgICAgaWYgKCF0ZXgpCi0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgR0MzRGludCB2YWx1ZSA9IDA7
CiAgICAgc3dpdGNoIChwbmFtZSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkVfTUFHX0ZJTFRFUjoKQEAgLTI0MjcsMjcgKzI0MTAsMjcgQEAgV2ViR0xHZXRJbmZvIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFRleFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdD
M0RlbnUKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfUzoKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfVDoKICAgICAgICAgbV9jb250ZXh0
LT5nZXRUZXhQYXJhbWV0ZXJpdih0YXJnZXQsIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odmFsdWUpKTsKKyAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZSk7CiAgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OlRFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUOiAvLyBFWFRfdGV4dHVyZV9maWx0ZXJf
YW5pc290cm9waWMKICAgICAgICAgaWYgKG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKSB7
CiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFRleFBhcmFtZXRlcml2KHRhcmdldCwgcG5hbWUs
ICZ2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVu
c2lnbmVkIGludD4odmFsdWUpKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4odmFsdWUpOwogICAgICAgICB9CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRUZXhQYXJhbWV0ZXIiLCAiaW52YWxpZCBw
YXJhbWV0ZXIgbmFtZSwgRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIG5vdCBlbmFibGVk
Iik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFRleFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRl
ciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgfQogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0IFdlYkdMVW5pZm9y
bUxvY2F0aW9uKiB1bmlmb3JtTG9jYXRpb24pCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QgV2ViR0xVbmlm
b3JtTG9jYXRpb24qIHVuaWZvcm1Mb2NhdGlvbikKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9y
UGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJnZXRVbmlmb3JtIiwgcHJvZ3JhbSkp
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgaWYgKCF1bmlmb3JtTG9jYXRpb24gfHwgdW5pZm9ybUxvY2F0aW9uLT5wcm9ncmFtKCkg
IT0gcHJvZ3JhbSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQz
RDo6SU5WQUxJRF9PUEVSQVRJT04sICJnZXRVbmlmb3JtIiwgIm5vIHVuaWZvcm1sb2NhdGlvbiBv
ciBub3QgdmFsaWQgZm9yIHRoaXMgcHJvZ3JhbSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICBHQzNEaW50IGxvY2F0
aW9uID0gdW5pZm9ybUxvY2F0aW9uLT5sb2NhdGlvbigpOwogCkBAIC0yNTIyLDcgKzI1MDUsNyBA
QCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybShXZWJH
TFByb2dyYW0qIHByb2dyYW0sIGNvbnN0CiAgICAgZGVmYXVsdDoKICAgICAgICAgLy8gQ2FuJ3Qg
aGFuZGxlIHRoaXMgdHlwZQogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9WQUxVRSwgImdldFVuaWZvcm0iLCAidW5oYW5kbGVkIHR5cGUiKTsKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAgICAgc3dpdGNoIChiYXNlVHlwZSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkZMT0FUOiB7CkBAIC0yNTMyLDggKzI1MTUsOCBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0CiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0VW5pZm9ybWZ2KG9iamVjdE9y
WmVybyhwcm9ncmFtKSwgbG9jYXRpb24sIHZhbHVlKTsKICAgICAgICAgaWYgKGxlbmd0aCA9PSAx
KQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZVswXSk7Ci0gICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+KEZsb2F0MzJBcnJheTo6
Y3JlYXRlKHZhbHVlLCBsZW5ndGgpKSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVbMF07Cisg
ICAgICAgIHJldHVybiBGbG9hdDMyQXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKTsKICAgICB9
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6SU5UOiB7CiAgICAgICAgIEdDM0RpbnQgdmFs
dWVbNF0gPSB7MH07CkBAIC0yNTQyLDggKzI1MjUsOCBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0VW5pZm9ybWl2KG9iamVj
dE9yWmVybyhwcm9ncmFtKSwgbG9jYXRpb24sIHZhbHVlKTsKICAgICAgICAgaWYgKGxlbmd0aCA9
PSAxKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZVswXSk7Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxJbnQzMkFycmF5PihJbnQzMkFycmF5Ojpj
cmVhdGUodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZVswXTsKKyAg
ICAgICAgcmV0dXJuIEludDMyQXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKTsKICAgICB9CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Qk9PTDogewogICAgICAgICBHQzNEaW50IHZhbHVl
WzRdID0gezB9OwpAQCAtMjU1MiwxMiArMjUzNSwxMiBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0VW5pZm9ybWl2KG9iamVj
dE9yWmVybyhwcm9ncmFtKSwgbG9jYXRpb24sIHZhbHVlKTsKICAgICAgICAgaWYgKGxlbmd0aCA+
IDEpIHsKLSAgICAgICAgICAgIGJvb2wgYm9vbFZhbHVlWzE2XSA9IHswfTsKKyAgICAgICAgICAg
IFZlY3Rvcjxib29sPiB2ZWN0b3IobGVuZ3RoKTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aiA9IDA7IGogPCBsZW5ndGg7IGorKykKLSAgICAgICAgICAgICAgICBib29sVmFsdWVbal0gPSBz
dGF0aWNfY2FzdDxib29sPih2YWx1ZVtqXSk7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKGJvb2xWYWx1ZSwgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICB2ZWN0b3Jbal0gPSB2YWx1
ZVtqXTsKKyAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKHZlY3Rvcik7CiAgICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxib29sPih2YWx1ZVswXSkpOwor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWVbMF0pOwogICAgIH0KICAgICBk
ZWZhdWx0OgogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtMjU2NSw3ICsyNTQ4LDcgQEAg
V2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQ
cm9ncmFtKiBwcm9ncmFtLCBjb25zdAogCiAgICAgLy8gSWYgd2UgZ2V0IGhlcmUsIHNvbWV0aGlu
ZyB3ZW50IHdyb25nIGluIG91ciB1bmZvcnR1bmF0ZWx5IGNvbXBsZXggbG9naWMgYWJvdmUKICAg
ICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSwgImdl
dFVuaWZvcm0iLCAidW5rbm93biBlcnJvciIpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVmUHRyPFdlYkdMVW5pZm9ybUxvY2F0aW9uPiBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtTG9jYXRpb24oV2ViR0xQcm9ncmFt
KiBwcm9ncmFtLCBjb25zdCBTdHJpbmcmIG5hbWUpCkBAIC0yNjA2LDQzICsyNTg5LDQzIEBAIFJl
ZlB0cjxXZWJHTFVuaWZvcm1Mb2NhdGlvbj4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
VW5pZm9ybUxvY2F0aW9uKFdlYkdMCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVdlYkdMR2V0
SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRyaWIoR0MzRHVpbnQg
aW5kZXgsIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Z2V0VmVydGV4QXR0cmliKEdDM0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSkKIHsKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKGluZGV4ID49IG1fbWF4
VmVydGV4QXR0cmlicykgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9WQUxVRSwgImdldFZlcnRleEF0dHJpYiIsICJpbmRleCBvdXQgb2YgcmFu
Z2UiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICB9CiAKICAgICBjb25zdCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6VmVy
dGV4QXR0cmliU3RhdGUmIHN0YXRlID0gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRWZXJ0
ZXhBdHRyaWJTdGF0ZShpbmRleCk7CiAKICAgICBpZiAoKGlzV2ViR0wyKCkgfHwgbV9hbmdsZUlu
c3RhbmNlZEFycmF5cykgJiYgcG5hbWUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRS
SUJfQVJSQVlfRElWSVNPUl9BTkdMRSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0
ZS5kaXZpc29yKTsKKyAgICAgICAgcmV0dXJuIHN0YXRlLmRpdmlzb3I7CiAKICAgICBzd2l0Y2gg
KHBuYW1lKSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJB
WV9CVUZGRVJfQklORElORzoKICAgICAgICAgaWYgKCghaXNHTEVTMkNvbXBsaWFudCgpICYmICFp
bmRleCAmJiBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldFZlcnRleEF0dHJpYlN0YXRlKDAp
LmJ1ZmZlckJpbmRpbmcgPT0gbV92ZXJ0ZXhBdHRyaWIwQnVmZmVyKQogICAgICAgICAgICAgfHwg
IXN0YXRlLmJ1ZmZlckJpbmRpbmcKICAgICAgICAgICAgIHx8ICFzdGF0ZS5idWZmZXJCaW5kaW5n
LT5vYmplY3QoKSkKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPihzdGF0ZS5idWZmZXJC
aW5kaW5nKSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHN0
YXRlLmJ1ZmZlckJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX0FU
VFJJQl9BUlJBWV9FTkFCTEVEOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRlLmVu
YWJsZWQpOworICAgICAgICByZXR1cm4gc3RhdGUuZW5hYmxlZDsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX05PUk1BTElaRUQ6Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oc3RhdGUubm9ybWFsaXplZCk7CisgICAgICAgIHJldHVybiBzdGF0ZS5u
b3JtYWxpemVkOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJS
QVlfU0laRToKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS5zaXplKTsKKyAgICAg
ICAgcmV0dXJuIHN0YXRlLnNpemU7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVY
X0FUVFJJQl9BUlJBWV9TVFJJREU6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGUu
b3JpZ2luYWxTdHJpZGUpOworICAgICAgICByZXR1cm4gc3RhdGUub3JpZ2luYWxTdHJpZGU7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFOgotICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRlLnR5cGUpOworICAgICAgICByZXR1cm4gc3Rh
dGUudHlwZTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVVJSRU5UX1ZFUlRFWF9BVFRS
SUI6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+
KEZsb2F0MzJBcnJheTo6Y3JlYXRlKG1fdmVydGV4QXR0cmliVmFsdWVbaW5kZXhdLnZhbHVlLCA0
KSkpOworICAgICAgICByZXR1cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUobV92ZXJ0ZXhBdHRyaWJW
YWx1ZVtpbmRleF0udmFsdWUsIDQpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRWZXJ0ZXhBdHRyaWIi
LCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMjY1MCw4ICsyNjMz
LDcgQEAgbG9uZyBsb25nIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0dHJp
Yk9mZnNldChHQzNEdWludCBpbmRleCwgR0MzRGUKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9y
UGVuZGluZygpKQogICAgICAgICByZXR1cm4gMDsKLSAgICBHQzNEc2l6ZWlwdHIgcmVzdWx0ID0g
bV9jb250ZXh0LT5nZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoaW5kZXgsIHBuYW1lKTsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihyZXN1bHQpOworICAgIHJldHVybiBtX2NvbnRleHQt
PmdldFZlcnRleEF0dHJpYk9mZnNldChpbmRleCwgcG5hbWUpOwogfQogCiBHQzNEYm9vbGVhbiBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppc0J1ZmZlcihXZWJHTEJ1ZmZlciogYnVmZmVyKQpA
QCAtMzExMyw4ICszMDk1LDggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZWFk
UGl4ZWxzKEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgKICN1bmRlZiBQQUNL
RURfSU5URVJOQUxfRk9STUFUX0NIRUNLCiAKICAgICAvLyBDYWxjdWxhdGUgYXJyYXkgc2l6ZSwg
dGFraW5nIGludG8gY29uc2lkZXJhdGlvbiBvZiBQQUNLX0FMSUdOTUVOVC4KLSAgICB1bnNpZ25l
ZCBpbnQgdG90YWxCeXRlc1JlcXVpcmVkID0gMDsKLSAgICB1bnNpZ25lZCBpbnQgcGFkZGluZyA9
IDA7CisgICAgdW5zaWduZWQgdG90YWxCeXRlc1JlcXVpcmVkID0gMDsKKyAgICB1bnNpZ25lZCBw
YWRkaW5nID0gMDsKICAgICBpZiAoIW1faXNSb2J1c3RuZXNzRVhUU3VwcG9ydGVkKSB7CiAgICAg
ICAgIEdDM0RlbnVtIGVycm9yID0gbV9jb250ZXh0LT5jb21wdXRlSW1hZ2VTaXplSW5CeXRlcyhm
b3JtYXQsIHR5cGUsIHdpZHRoLCBoZWlnaHQsIG1fcGFja0FsaWdubWVudCwgJnRvdGFsQnl0ZXNS
ZXF1aXJlZCwgJnBhZGRpbmcpOwogICAgICAgICBpZiAoZXJyb3IgIT0gR3JhcGhpY3NDb250ZXh0
M0Q6Ok5PX0VSUk9SKSB7CkBAIC00NTkwLDcgKzQ1NzIsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OnZlcnRleEF0dHJpYlBvaW50ZXIoR0MzRHVpbnQgaW5kZXgsIEdDM0RpbnQg
c2l6ZQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIC8vIERldGVybWluZSB0aGUgbnVtYmVy
IG9mIGVsZW1lbnRzIHRoZSBib3VuZCBidWZmZXIgY2FuIGhvbGQsIGdpdmVuIHRoZSBvZmZzZXQs
IHNpemUsIHR5cGUgYW5kIHN0cmlkZQotICAgIHVuc2lnbmVkIGludCB0eXBlU2l6ZSA9IHNpemVJ
bkJ5dGVzKHR5cGUpOworICAgIGF1dG8gdHlwZVNpemUgPSBzaXplSW5CeXRlcyh0eXBlKTsKICAg
ICBpZiAoIXR5cGVTaXplKSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJ2ZXJ0ZXhBdHRyaWJQb2ludGVyIiwgImludmFsaWQgdHlw
ZSIpOwogICAgICAgICByZXR1cm47CkBAIC00NjAxLDcgKzQ1ODMsNyBAQCB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJpYlBvaW50ZXIoR0MzRHVpbnQgaW5kZXgsIEdD
M0RpbnQgc2l6ZQogICAgIH0KICAgICBHQzNEc2l6ZWkgYnl0ZXNQZXJFbGVtZW50ID0gc2l6ZSAq
IHR5cGVTaXplOwogCi0gICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5zZXRWZXJ0ZXhBdHRy
aWJTdGF0ZShpbmRleCwgYnl0ZXNQZXJFbGVtZW50LCBzaXplLCB0eXBlLCBub3JtYWxpemVkLCBz
dHJpZGUsIHN0YXRpY19jYXN0PEdDM0RpbnRwdHI+KG9mZnNldCksIG1fYm91bmRBcnJheUJ1ZmZl
cik7CisgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5zZXRWZXJ0ZXhBdHRyaWJTdGF0ZShp
bmRleCwgYnl0ZXNQZXJFbGVtZW50LCBzaXplLCB0eXBlLCBub3JtYWxpemVkLCBzdHJpZGUsIHN0
YXRpY19jYXN0PEdDM0RpbnRwdHI+KG9mZnNldCksICptX2JvdW5kQXJyYXlCdWZmZXIpOwogICAg
IG1fY29udGV4dC0+dmVydGV4QXR0cmliUG9pbnRlcihpbmRleCwgc2l6ZSwgdHlwZSwgbm9ybWFs
aXplZCwgc3RyaWRlLCBzdGF0aWNfY2FzdDxHQzNEaW50cHRyPihvZmZzZXQpKTsKIH0KIApAQCAt
NDY5Miw3ICs0Njc0LDcgQEAgUGxhdGZvcm1MYXllciogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiAgICAgcmV0dXJuICghaXNDb250ZXh0TG9zdCgpICYm
ICFtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pID8gbV9jb250ZXh0LT5wbGF0Zm9ybUxheWVy
KCkgOiAwOwogfQogCi12b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlbW92ZVNoYXJl
ZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0KQordm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpyZW1vdmVTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmIG9iamVjdCkK
IHsKICAgICBpZiAobV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKQogICAgICAgICByZXR1cm47
CkBAIC00NzAwLDcgKzQ2ODIsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJl
bW92ZVNoYXJlZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0KQogICAgIG1fY29udGV4
dEdyb3VwLT5yZW1vdmVPYmplY3Qob2JqZWN0KTsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjphZGRTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCkKK3Zv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVk
T2JqZWN0JiBvYmplY3QpCiB7CiAgICAgaWYgKG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikK
ICAgICAgICAgcmV0dXJuOwpAQCAtNDcwOSwyMSArNDY5MSwyMSBAQCB2b2lkIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmFkZFNoYXJlZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0
KQogICAgIG1fY29udGV4dEdyb3VwLT5hZGRPYmplY3Qob2JqZWN0KTsKIH0KIAotdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVDb250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9i
amVjdCogb2JqZWN0KQordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVDb250
ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCYgb2JqZWN0KQogewogICAgIGlmIChtX2lzUGVu
ZGluZ1BvbGljeVJlc29sdXRpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY29udGV4dE9i
amVjdHMucmVtb3ZlKG9iamVjdCk7CisgICAgbV9jb250ZXh0T2JqZWN0cy5yZW1vdmUoJm9iamVj
dCk7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRkQ29udGV4dE9iamVj
dChXZWJHTENvbnRleHRPYmplY3QqIG9iamVjdCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6YWRkQ29udGV4dE9iamVjdChXZWJHTENvbnRleHRPYmplY3QmIG9iamVjdCkKIHsKICAg
ICBpZiAobV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKQogICAgICAgICByZXR1cm47CiAKICAg
ICBBU1NFUlQoIWlzQ29udGV4dExvc3QoKSk7Ci0gICAgbV9jb250ZXh0T2JqZWN0cy5hZGQob2Jq
ZWN0KTsKKyAgICBtX2NvbnRleHRPYmplY3RzLmFkZCgmb2JqZWN0KTsKIH0KIAogdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCkKQEAgLTQ3
NjEsNTYgKzQ3NDMsNTYgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjYW5TdXNw
ZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuUGFyYW1l
dGVyKEdDM0RlbnVtIHBuYW1lKQorYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRC
b29sZWFuUGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdDM0Rib29sZWFuIHZhbHVl
ID0gMDsKICAgICBtX2NvbnRleHQtPmdldEJvb2xlYW52KHBuYW1lLCAmdmFsdWUpOwotICAgIHJl
dHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWUpKTsKKyAgICByZXR1cm4g
dmFsdWU7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRC
b29sZWFuQXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitWZWN0b3I8Ym9vbD4gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Qm9vbGVhbkFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBu
YW1lKQogewogICAgIGlmIChwbmFtZSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfV1JJVEVN
QVNLKSB7CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oMCwgMCk7CisgICAgICAgIHJldHVybiB7IH07CiAgICAgfQotICAgIEdDM0Rib29sZWFu
IHZhbHVlWzRdID0gezB9OworICAgIEdDM0Rib29sZWFuIHZhbHVlWzRdID0geyAwIH07CiAgICAg
bV9jb250ZXh0LT5nZXRCb29sZWFudihwbmFtZSwgdmFsdWUpOwotICAgIGJvb2wgYm9vbFZhbHVl
WzRdOwotICAgIGZvciAoaW50IGlpID0gMDsgaWkgPCA0OyArK2lpKQotICAgICAgICBib29sVmFs
dWVbaWldID0gc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWVbaWldKTsKLSAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKGJvb2xWYWx1ZSwgNCk7CisgICAgVmVjdG9yPGJvb2w+IHZlY3Rvcig0KTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgNDsgKytpKQorICAgICAgICB2ZWN0b3JbaV0gPSB2YWx1
ZVtpXTsKKyAgICByZXR1cm4gdmVjdG9yOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0RmxvYXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitmbG9hdCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRGbG9hdFBhcmFtZXRlcihHQzNEZW51bSBwbmFt
ZSkKIHsKICAgICBHQzNEZmxvYXQgdmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0RmxvYXR2
KHBuYW1lLCAmdmFsdWUpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgIHJl
dHVybiB2YWx1ZTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldEludFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKK2ludCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRJbnRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGludCB2
YWx1ZSA9IDA7CiAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihwbmFtZSwgJnZhbHVlKTsKLSAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICByZXR1cm4gdmFsdWU7CiB9CiAKLVdl
YkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbnNpZ25lZEludFBhcmFt
ZXRlcihHQzNEZW51bSBwbmFtZSkKK3Vuc2lnbmVkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdDM0RpbnQg
dmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYocG5hbWUsICZ2YWx1ZSk7Ci0g
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZhbHVlKSk7
CisgICAgcmV0dXJuIHZhbHVlOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Z2V0SW50NjRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitsb25nIGxvbmcgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0SW50NjRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUp
CiB7CiAgICAgR0MzRGludDY0IHZhbHVlID0gMDsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXI2
NHYocG5hbWUsICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAg
cmV0dXJuIHZhbHVlOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Z2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQorUmVmUHRyPEZs
b2F0MzJBcnJheT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xGbG9hdEFycmF5
UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdDM0RmbG9hdCB2YWx1ZVs0XSA9IHsw
fTsKICAgICBtX2NvbnRleHQtPmdldEZsb2F0dihwbmFtZSwgdmFsdWUpOwpAQCAtNDgyOCwxMCAr
NDgxMCwxMCBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2Vi
R0xGbG9hdEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYQogICAgIGRlZmF1bHQ6CiAgICAgICAg
IG5vdEltcGxlbWVudGVkKCk7CiAgICAgfQotICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1Jl
ZlB0cjxGbG9hdDMyQXJyYXk+KEZsb2F0MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgpKSk7
CisgICAgcmV0dXJuIEZsb2F0MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgpOwogfQogCi1X
ZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJheVBh
cmFtZXRlcihHQzNEZW51bSBwbmFtZSkKK1JlZlB0cjxJbnQzMkFycmF5PiBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQog
ewogICAgIEdDM0RpbnQgdmFsdWVbNF0gPSB7MH07CiAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2Vy
dihwbmFtZSwgdmFsdWUpOwpAQCAtNDg0Nyw3ICs0ODI5LDcgQEAgV2ViR0xHZXRJbmZvIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0g
cG5hbWUKICAgICBkZWZhdWx0OgogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIH0KLSAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8SW50MzJBcnJheT4oSW50MzJBcnJheTo6
Y3JlYXRlKHZhbHVlLCBsZW5ndGgpKSk7CisgICAgcmV0dXJuIEludDMyQXJyYXk6OmNyZWF0ZSh2
YWx1ZSwgbGVuZ3RoKTsKIH0KIAogYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjaGVj
a1RleHR1cmVDb21wbGV0ZW5lc3MoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBib29sIHByZXBh
cmVUb0RyYXcpCkBAIC01MDcxLDcgKzUwNTMsNyBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OnZhbGlkYXRlQ29tcHJlc3NlZFRleEZ1bmNEYXRhKGNvbnN0IGNoYXIqIGZ1bmN0aQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgdW5zaWduZWQgaW50IGJ5dGVzUmVx
dWlyZWQgPSAwOworICAgIHVuc2lnbmVkIGJ5dGVzUmVxdWlyZWQgPSAwOwogCiAgICAgc3dpdGNo
IChmb3JtYXQpIHsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09NUFJFU1NFRF9SR0JfUzNUQ19E
WFQxX0VYVDoKQEAgLTUzMjgsMTcgKzUzMTAsMTYgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjp2YWxpZGF0ZVVuaWZvcm1NYXRyaXhQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGZ1bmMK
IAogV2ViR0xCdWZmZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlQnVmZmVy
RGF0YVBhcmFtZXRlcnMoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQzNEZW51bSB0YXJnZXQs
IEdDM0RlbnVtIHVzYWdlKQogewotICAgIFdlYkdMQnVmZmVyKiBidWZmZXIgPSAwOworICAgIHN0
ZDo6b3B0aW9uYWw8V2ViR0xCdWZmZXIqPiBidWZmZXI7CiAgICAgc3dpdGNoICh0YXJnZXQpIHsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpFTEVNRU5UX0FSUkFZX0JVRkZFUjoKLSAgICAg
ICAgYnVmZmVyID0gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZm
ZXIoKS5nZXQoKTsKKyAgICAgICAgYnVmZmVyID0gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5n
ZXRFbGVtZW50QXJyYXlCdWZmZXIoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSOgogICAgICAgICBidWZmZXIgPSBtX2JvdW5kQXJyYXlC
dWZmZXIuZ2V0KCk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAjaWYgRU5BQkxFKFdF
QkdMMikKLSAgICAgICAgYm9vbCBzdWNjZXNzID0gdHJ1ZTsKICAgICAgICAgaWYgKGlzV2ViR0wy
KCkpIHsKICAgICAgICAgICAgIHN3aXRjaCAodGFyZ2V0KSB7CiAgICAgICAgICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpDT1BZX1JFQURfQlVGRkVSOgpAQCAtNTM1OSwxOSArNTM0MCwxNSBA
QCBXZWJHTEJ1ZmZlciogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVCdWZmZXJE
YXRhUGFyYW1ldGVycyhjb25zdCBjaGFyKgogICAgICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6VU5JRk9STV9CVUZGRVI6CiAgICAgICAgICAgICAgICAgYnVmZmVyID0gbV9ib3VuZFVu
aWZvcm1CdWZmZXIuZ2V0KCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBzdWNj
ZXNzID0gZmFsc2U7Ci0gICAgICAgIGlmIChzdWNjZXNzKQotICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBpZiAoYnVmZmVyKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CiAjZW5kaWYKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklO
VkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCB0YXJnZXQiKTsKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgfQotICAgIGlmICghYnVmZmVyKSB7CisgICAgaWYgKCFidWZmZXIg
fHwgIWJ1ZmZlci52YWx1ZSgpKSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNz
Q29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgZnVuY3Rpb25OYW1lLCAibm8gYnVmZmVyIik7
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KQEAgLTUzNzksNyArNTM1Niw3IEBAIFdl
YkdMQnVmZmVyKiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxpZGF0ZUJ1ZmZlckRhdGFQ
YXJhbWV0ZXJzKGNvbnN0IGNoYXIqCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RSRUFN
X0RSQVc6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RBVElDX0RSQVc6CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RFlOQU1JQ19EUkFXOgotICAgICAgICByZXR1cm4gYnVmZmVy
OworICAgICAgICByZXR1cm4gYnVmZmVyLnZhbHVlKCk7CiAgICAgfQogICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwgImlu
dmFsaWQgdXNhZ2UiKTsKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTU5MjksNiArNTkwNiwxNiBA
QCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJpYkRpdmlzb3IoR0Mz
RHVpbnQgaW5kZXgsIEdDM0R1aW50IGRpdgogICAgIG1fY29udGV4dC0+dmVydGV4QXR0cmliRGl2
aXNvcihpbmRleCwgZGl2aXNvcik7CiB9CiAKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6ZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKGNvbnN0IGNoYXIqIGV4dGVuc2lvbk5hbWVMaXRl
cmFsKQoreworICAgIEFTU0VSVChtX2NvbnRleHQpOworICAgIGF1dG8mIGV4dGVuc2lvbnMgPSBt
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKTsKKyAgICBTdHJpbmcgZXh0ZW5zaW9uTmFtZSB7IEFT
Q0lJTGl0ZXJhbCB7IGV4dGVuc2lvbk5hbWVMaXRlcmFsIH0gfTsKKyAgICBpZiAoIWV4dGVuc2lv
bnMuc3VwcG9ydHMoZXh0ZW5zaW9uTmFtZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBl
eHRlbnNpb25zLmVuc3VyZUVuYWJsZWQoZXh0ZW5zaW9uTmFtZSk7CisgICAgcmV0dXJuIHRydWU7
Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IDczOTNhMzg2
MjgzM2ZjYjg2YmIxNzFiMjA2YjI3YmNlZDliMzllY2YuLjlmOWU4YjY0MWZmNmJjZDM5YWQyNzU2
ZDI3Mzc3ZGUyMzI5Y2RmNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCwxMyArMzAsMTAgQEAKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAj
aW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlICJXZWJHTEFueS5oIgogI2luY2x1ZGUgIldlYkdM
Q29udGV4dEF0dHJpYnV0ZXMuaCIKLSNpbmNsdWRlICJXZWJHTEdldEluZm8uaCIKLSNpbmNsdWRl
ICJXZWJHTE9iamVjdC5oIgogI2luY2x1ZGUgIldlYkdMVGV4dHVyZS5oIgogI2luY2x1ZGUgPG1l
bW9yeT4KLSNpbmNsdWRlIDxydW50aW1lL0Zsb2F0MzJBcnJheS5oPgotI2luY2x1ZGUgPHJ1bnRp
bWUvSW50MzJBcnJheS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ4LDcgKzQ1LDYg
QEAgY2xhc3MgRVhUc1JHQjsKIGNsYXNzIEVYVEZyYWdEZXB0aDsKIGNsYXNzIEhUTUxJbWFnZUVs
ZW1lbnQ7CiBjbGFzcyBIVE1MVmlkZW9FbGVtZW50OwotY2xhc3MgSW1hZ2VCdWZmZXI7CiBjbGFz
cyBJbWFnZURhdGE7CiBjbGFzcyBJbnRTaXplOwogY2xhc3MgT0VTU3RhbmRhcmREZXJpdmF0aXZl
czsKQEAgLTE5MSwyNCArMTg3LDI0IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8V2ViR0xBY3RpdmVJ
bmZvPiBnZXRBY3RpdmVVbmlmb3JtKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50IGluZGV4KTsKICAg
ICBib29sIGdldEF0dGFjaGVkU2hhZGVycyhXZWJHTFByb2dyYW0qLCBWZWN0b3I8UmVmUHRyPFdl
YkdMU2hhZGVyPj4mKTsKICAgICBHQzNEaW50IGdldEF0dHJpYkxvY2F0aW9uKFdlYkdMUHJvZ3Jh
bSosIGNvbnN0IFN0cmluZyYgbmFtZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEJ1ZmZlclBhcmFt
ZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBnZXRC
dWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7CiAgICAgc3Rk
OjpvcHRpb25hbDxXZWJHTENvbnRleHRBdHRyaWJ1dGVzPiBnZXRDb250ZXh0QXR0cmlidXRlcygp
OwogICAgIEdDM0RlbnVtIGdldEVycm9yKCk7CiAgICAgdmlydHVhbCBXZWJHTEV4dGVuc2lvbiog
Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkgPSAwOwotICAgIHZpcnR1YWwgV2ViR0xH
ZXRJbmZvIGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQs
IEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKSA9IDA7Ci0gICAgdmlydHVhbCBX
ZWJHTEdldEluZm8gZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSA9IDA7Ci0gICAgV2ViR0xH
ZXRJbmZvIGdldFByb2dyYW1QYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRGVudW0gcG5hbWUp
OworICAgIHZpcnR1YWwgV2ViR0xBbnkgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVy
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpID0g
MDsKKyAgICB2aXJ0dWFsIFdlYkdMQW55IGdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkgPSAw
OworICAgIFdlYkdMQW55IGdldFByb2dyYW1QYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRGVu
dW0gcG5hbWUpOwogICAgIFN0cmluZyBnZXRQcm9ncmFtSW5mb0xvZyhXZWJHTFByb2dyYW0qKTsK
LSAgICBXZWJHTEdldEluZm8gZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdl
dCwgR0MzRGVudW0gcG5hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRTaGFkZXJQYXJhbWV0ZXIo
V2ViR0xTaGFkZXIqLCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0UmVuZGVyYnVm
ZmVyUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdM
QW55IGdldFNoYWRlclBhcmFtZXRlcihXZWJHTFNoYWRlciosIEdDM0RlbnVtIHBuYW1lKTsKICAg
ICBTdHJpbmcgZ2V0U2hhZGVySW5mb0xvZyhXZWJHTFNoYWRlciopOwogICAgIFJlZlB0cjxXZWJH
TFNoYWRlclByZWNpc2lvbkZvcm1hdD4gZ2V0U2hhZGVyUHJlY2lzaW9uRm9ybWF0KEdDM0RlbnVt
IHNoYWRlclR5cGUsIEdDM0RlbnVtIHByZWNpc2lvblR5cGUpOwogICAgIFN0cmluZyBnZXRTaGFk
ZXJTb3VyY2UoV2ViR0xTaGFkZXIqKTsKICAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGdldFN1
cHBvcnRlZEV4dGVuc2lvbnMoKSA9IDA7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFRleFBhcmFtZXRl
cihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0
VW5pZm9ybShXZWJHTFByb2dyYW0qLCBjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiopOworICAg
IFdlYkdMQW55IGdldFRleFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1l
KTsKKyAgICBXZWJHTEFueSBnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFdlYkdMVW5p
Zm9ybUxvY2F0aW9uKik7CiAgICAgUmVmUHRyPFdlYkdMVW5pZm9ybUxvY2F0aW9uPiBnZXRVbmlm
b3JtTG9jYXRpb24oV2ViR0xQcm9ncmFtKiwgY29uc3QgU3RyaW5nJik7Ci0gICAgV2ViR0xHZXRJ
bmZvIGdldFZlcnRleEF0dHJpYihHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUpOworICAg
IFdlYkdMQW55IGdldFZlcnRleEF0dHJpYihHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUp
OwogICAgIGxvbmcgbG9uZyBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdD
M0RlbnVtIHBuYW1lKTsKIAogICAgIHZpcnR1YWwgdm9pZCBoaW50KEdDM0RlbnVtIHRhcmdldCwg
R0MzRGVudW0gbW9kZSkgPSAwOwpAQCAtMzIzLDggKzMxOSw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCkgb3ZlcnJpZGU7CiAgICAgUmVmUHRyPElt
YWdlRGF0YT4gcGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9JbWFnZURhdGEoKTsKIAotICAgIHZvaWQg
cmVtb3ZlU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Kik7Ci0gICAgdm9pZCByZW1vdmVD
b250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCopOworICAgIHZvaWQgcmVtb3ZlU2hhcmVk
T2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Jik7CisgICAgdm9pZCByZW1vdmVDb250ZXh0T2JqZWN0
KFdlYkdMQ29udGV4dE9iamVjdCYpOwogICAgIAogICAgIHVuc2lnbmVkIGdldE1heFZlcnRleEF0
dHJpYnMoKSBjb25zdCB7IHJldHVybiBtX21heFZlcnRleEF0dHJpYnM7IH0KIApAQCAtMzM1LDcg
KzMzMSw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKLSAgICBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKEhUTUxDYW52YXNFbGVtZW50JiwgUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiYmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKKyAgICBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlKEhUTUxDYW52YXNFbGVtZW50JiwgUmVmPEdyYXBoaWNzQ29udGV4dDNE
PiYmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKIAogICAgIGZyaWVuZCBjbGFzcyBXZWJHTERy
YXdCdWZmZXJzOwogICAgIGZyaWVuZCBjbGFzcyBXZWJHTEZyYW1lYnVmZmVyOwpAQCAtMzYwLDgg
KzM1Niw4IEBAIHByb3RlY3RlZDoKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5z
aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGFkZFNoYXJlZE9iamVjdChXZWJHTFNo
YXJlZE9iamVjdCopOwotICAgIHZvaWQgYWRkQ29udGV4dE9iamVjdChXZWJHTENvbnRleHRPYmpl
Y3QqKTsKKyAgICB2b2lkIGFkZFNoYXJlZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCYpOworICAg
IHZvaWQgYWRkQ29udGV4dE9iamVjdChXZWJHTENvbnRleHRPYmplY3QmKTsKICAgICB2b2lkIGRl
dGFjaEFuZFJlbW92ZUFsbE9iamVjdHMoKTsKIAogICAgIHZvaWQgZGVzdHJveUdyYXBoaWNzQ29u
dGV4dDNEKCk7CkBAIC00MDUsNiArNDAxLDggQEAgcHJvdGVjdGVkOgogCiAgICAgV2ViR0xUZXh0
dXJlOjpUZXh0dXJlRXh0ZW5zaW9uRmxhZyB0ZXh0dXJlRXh0ZW5zaW9uRmxhZ3MoKSBjb25zdDsK
IAorICAgIGJvb2wgZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKGNvbnN0IGNoYXIqIGV4dGVuc2lv
bk5hbWVMaXRlcmFsKTsKKwogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0
OwogICAgIFJlZlB0cjxXZWJHTENvbnRleHRHcm91cD4gbV9jb250ZXh0R3JvdXA7CiAKQEAgLTQx
NCw3ICs0MTIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gb24gaG93IGV4YWN0bHkgdGhlIHBsYXRm
b3JtIGRpc2NvdmVycyB0aGF0IHRoZSBjb250ZXh0IHdhcyBsb3N0LiBGb3IgYmV0dGVyCiAgICAg
Ly8gcG9ydGFiaWxpdHkgd2UgYWx3YXlzIGRlZmVyIHRoZSBkaXNwYXRjaCBvZiB0aGUgZXZlbnQu
CiAgICAgVGltZXIgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lcjsKLSAgICBib29sIG1f
cmVzdG9yZUFsbG93ZWQ7CisgICAgYm9vbCBtX3Jlc3RvcmVBbGxvd2VkIHsgZmFsc2UgfTsKICAg
ICBUaW1lciBtX3Jlc3RvcmVUaW1lcjsKIAogICAgIGJvb2wgbV9uZWVkc1VwZGF0ZTsKQEAgLTQz
MiwxMiArNDMwLDEwIEBAIHByb3RlY3RlZDoKIAogICAgIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5
T2JqZWN0QmFzZT4gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiAgICAgUmVmUHRyPFdlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlPiBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3Q7Ci0gICAgdm9p
ZCBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9i
amVjdEJhc2U+IGFycmF5T2JqZWN0KQorCisgICAgdm9pZCBzZXRCb3VuZFZlcnRleEFycmF5T2Jq
ZWN0KFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKiBhcnJheU9iamVjdCkKICAgICB7Ci0gICAg
ICAgIGlmIChhcnJheU9iamVjdCkKLSAgICAgICAgICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVj
dCA9IGFycmF5T2JqZWN0OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2JvdW5kVmVydGV4
QXJyYXlPYmplY3QgPSBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdDsKKyAgICAgICAgbV9ib3Vu
ZFZlcnRleEFycmF5T2JqZWN0ID0gYXJyYXlPYmplY3QgPyBhcnJheU9iamVjdCA6IG1fZGVmYXVs
dFZlcnRleEFycmF5T2JqZWN0OwogICAgIH0KICAgICAKICAgICBjbGFzcyBWZXJ0ZXhBdHRyaWJW
YWx1ZSB7CkBAIC00OTMsMTIgKzQ4OSwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+W10+IG1fYnVmZmVyczsKICAgICAg
ICAgaW50IG1fY2FwYWNpdHk7CiAgICAgfTsKLSAgICBMUlVJbWFnZUJ1ZmZlckNhY2hlIG1fZ2Vu
ZXJhdGVkSW1hZ2VDYWNoZTsKKyAgICBMUlVJbWFnZUJ1ZmZlckNhY2hlIG1fZ2VuZXJhdGVkSW1h
Z2VDYWNoZSB7IDAgfTsKIAogICAgIEdDM0RpbnQgbV9tYXhUZXh0dXJlU2l6ZTsKICAgICBHQzNE
aW50IG1fbWF4Q3ViZU1hcFRleHR1cmVTaXplOwogICAgIEdDM0RpbnQgbV9tYXhSZW5kZXJidWZm
ZXJTaXplOwotICAgIEdDM0RpbnQgbV9tYXhWaWV3cG9ydERpbXNbMl07CisgICAgR0MzRGludCBt
X21heFZpZXdwb3J0RGltc1syXSB7IDAsIDAgfTsKICAgICBHQzNEaW50IG1fbWF4VGV4dHVyZUxl
dmVsOwogICAgIEdDM0RpbnQgbV9tYXhDdWJlTWFwVGV4dHVyZUxldmVsOwogCkBAIC01MTMsOCAr
NTA5LDggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV91bnBhY2tGbGlwWTsKICAgICBib29sIG1f
dW5wYWNrUHJlbXVsdGlwbHlBbHBoYTsKICAgICBHQzNEZW51bSBtX3VucGFja0NvbG9yc3BhY2VD
b252ZXJzaW9uOwotICAgIGJvb2wgbV9jb250ZXh0TG9zdDsKLSAgICBMb3N0Q29udGV4dE1vZGUg
bV9jb250ZXh0TG9zdE1vZGU7CisgICAgYm9vbCBtX2NvbnRleHRMb3N0IHsgZmFsc2UgfTsKKyAg
ICBMb3N0Q29udGV4dE1vZGUgbV9jb250ZXh0TG9zdE1vZGUgeyBTeW50aGV0aWNMb3N0Q29udGV4
dCB9OwogICAgIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgbV9hdHRyaWJ1dGVzOwogCiAgICAgYm9v
bCBtX2xheWVyQ2xlYXJlZDsKQEAgLTUzNSwxNyArNTMxLDE4IEBAIHByb3RlY3RlZDoKICAgICBi
b29sIG1faXNEZXB0aFN0ZW5jaWxTdXBwb3J0ZWQ7CiAgICAgYm9vbCBtX2lzUm9idXN0bmVzc0VY
VFN1cHBvcnRlZDsKIAotICAgIGJvb2wgbV9zeW50aGVzaXplZEVycm9yc1RvQ29uc29sZTsKKyAg
ICBib29sIG1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUgeyB0cnVlIH07CiAgICAgaW50IG1f
bnVtR0xFcnJvcnNUb0NvbnNvbGVBbGxvd2VkOwogCiAgICAgLy8gQSBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQgY2FuIGJlIGNyZWF0ZWQgaW4gYSBzdGF0ZSB3aGVyZSBpdCBhcHBlYXJzIGFzCiAgICAg
Ly8gYSB2YWxpZCBhbmQgYWN0aXZlIGNvbnRleHQsIGJ1dCB3aWxsIG5vdCBleGVjdXRlIGFueSBp
bXBvcnRhbnQgb3BlcmF0aW9ucwogICAgIC8vIHVudGlsIGl0cyBsb2FkIHBvbGljeSBpcyBjb21w
bGV0ZWx5IHJlc29sdmVkLgotICAgIGJvb2wgbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uOwot
ICAgIGJvb2wgbV9oYXNSZXF1ZXN0ZWRQb2xpY3lSZXNvbHV0aW9uOworICAgIGJvb2wgbV9pc1Bl
bmRpbmdQb2xpY3lSZXNvbHV0aW9uIHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFzUmVxdWVzdGVk
UG9saWN5UmVzb2x1dGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBpc0NvbnRleHRMb3N0T3JQZW5k
aW5nKCk7CiAKLSAgICAvLyBFbmFibGVkIGV4dGVuc2lvbiBvYmplY3RzLiBGSVhNRTogTW92ZSB0
aGVzZSB0byBXZWJHTDFSZW5kZXJpbmdDb250ZXh0LCBub3QgbmVlZGVkIGZvciBXZWJHTDIKKyAg
ICAvLyBFbmFibGVkIGV4dGVuc2lvbiBvYmplY3RzLgorICAgIC8vIEZJWE1FOiBNb3ZlIHNvbWUg
b2YgdGhlc2UgdG8gV2ViR0xSZW5kZXJpbmdDb250ZXh0LCB0aGUgb25lcyBub3QgbmVlZGVkIGZv
ciBXZWJHTDIKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RVhURnJhZ0RlcHRoPiBtX2V4dEZyYWdEZXB0
aDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RVhUQmxlbmRNaW5NYXg+IG1fZXh0QmxlbmRNaW5NYXg7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEVYVHNSR0I+IG1fZXh0c1JHQjsKQEAgLTU2OCwxNSArNTY1
LDE1IEBAIHByb3RlY3RlZDoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xEcmF3QnVmZmVycz4g
bV93ZWJnbERyYXdCdWZmZXJzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBTkdMRUluc3RhbmNlZEFy
cmF5cz4gbV9hbmdsZUluc3RhbmNlZEFycmF5czsKIAotICAgIC8vIEhlbHBlcnMgZm9yIGdldFBh
cmFtZXRlciBhbmQgb3RoZXJzCi0gICAgV2ViR0xHZXRJbmZvIGdldEJvb2xlYW5QYXJhbWV0ZXIo
R0MzRGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIoR0Mz
RGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRGbG9hdFBhcmFtZXRlcihHQzNEZW51bSk7Ci0g
ICAgV2ViR0xHZXRJbmZvIGdldEludFBhcmFtZXRlcihHQzNEZW51bSk7Ci0gICAgV2ViR0xHZXRJ
bmZvIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8g
Z2V0SW50NjRQYXJhbWV0ZXIoR0MzRGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRXZWJHTEZs
b2F0QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRXZWJHTElu
dEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICAvLyBIZWxwZXJzIGZvciBnZXRQYXJhbWV0
ZXIgYW5kIG90aGVyIHNpbWlsYXIgZnVuY3Rpb25zLgorICAgIGJvb2wgZ2V0Qm9vbGVhblBhcmFt
ZXRlcihHQzNEZW51bSk7CisgICAgVmVjdG9yPGJvb2w+IGdldEJvb2xlYW5BcnJheVBhcmFtZXRl
cihHQzNEZW51bSk7CisgICAgZmxvYXQgZ2V0RmxvYXRQYXJhbWV0ZXIoR0MzRGVudW0pOworICAg
IGludCBnZXRJbnRQYXJhbWV0ZXIoR0MzRGVudW0pOworICAgIHVuc2lnbmVkIGdldFVuc2lnbmVk
SW50UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBsb25nIGxvbmcgZ2V0SW50NjRQYXJhbWV0ZXIo
R0MzRGVudW0pOworICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IGdldFdlYkdMRmxvYXRBcnJheVBh
cmFtZXRlcihHQzNEZW51bSk7CisgICAgUmVmUHRyPEludDMyQXJyYXk+IGdldFdlYkdMSW50QXJy
YXlQYXJhbWV0ZXIoR0MzRGVudW0pOwogCiAgICAgLy8gQ2xlYXIgdGhlIGJhY2tidWZmZXIgaWYg
aXQgd2FzIGNvbXBvc2l0ZWQgc2luY2UgdGhlIGxhc3Qgb3BlcmF0aW9uLgogICAgIC8vIGNsZWFy
TWFzayBpcyBzZXQgdG8gdGhlIGJpdGZpZWxkIG9mIGFueSBjbGVhciB0aGF0IHdvdWxkIGhhcHBl
biBhbnl3YXkgYXQgdGhpcyB0aW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFNhbXBsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2Ft
cGxlci5oCmluZGV4IGJkOWMwZWFkZDAzYTc1MjkwM2NkY2VkZDNlOTZlY2ZhYjIxODEyYzUuLmEw
NTMxZmYyN2M4NjNjNDczY2JkZDJlOGE3ZTQ2YTAwNDM4YzZlMmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2FtcGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMU2FtcGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDE3ICszMSwxMiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFdlYkdMU2FtcGxlciBmaW5hbCA6IHB1YmxpYyBXZWJHTFNoYXJlZE9i
amVjdCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViR0xTYW1wbGVyKCk7Ci0KICAgICBzdGF0
aWMgUmVmPFdlYkdMU2FtcGxlcj4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsK
KyAgICB2aXJ0dWFsIH5XZWJHTFNhbXBsZXIoKTsKIAogcHJvdGVjdGVkOgotICAgIFdlYkdMU2Ft
cGxlcihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7Ci0KLSAgICB2b2lkIGRlbGV0ZU9iamVj
dEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKLQot
cHJpdmF0ZToKLSAgICBib29sIGlzU2FtcGxlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICBleHBsaWNpdCBXZWJHTFNhbXBsZXIoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSYpOworICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRm
b3JtM0RPYmplY3QpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmgKaW5kZXggNmFmNWMyNjlkNTBhYWU0ZDg1
NWI3ZDA3MGVhMzE4OGVlNTQzYjkwYy4uOTUyY2RjYzY1NDNlYWZiYmFkYzRjZjA5MzQ1NzAzYTFk
N2NlMWVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlci5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMxLDkgKzMxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFNoYWRlciBm
aW5hbCA6IHB1YmxpYyBXZWJHTFNoYXJlZE9iamVjdCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+
V2ViR0xTaGFkZXIoKTsKLQogICAgIHN0YXRpYyBSZWY8V2ViR0xTaGFkZXI+IGNyZWF0ZShXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgR0MzRGVudW0pOworICAgIHZpcnR1YWwgfldlYkdMU2hh
ZGVyKCk7CiAKICAgICBHQzNEZW51bSBnZXRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9
CiAgICAgY29uc3QgU3RyaW5nJiBnZXRTb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZTsg
fQpAQCAtNDYsOSArNDUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdlYkdMU2hhZGVyKFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBHQzNEZW51bSk7CiAKLSAgICB2b2lkIGRlbGV0ZU9i
amVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsK
LQotICAgIGJvb2wgaXNTaGFkZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Cisg
ICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9i
amVjdCkgZmluYWw7CiAKICAgICBHQzNEZW51bSBtX3R5cGU7CiAgICAgU3RyaW5nIG1fc291cmNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3Bw
CmluZGV4IDM2ZGMxNWQzYTBlN2U1ZjZhOTcwNjFlNGMzYmQzYzI0MWMxYjg0ZTkuLjFiMjIzNmZi
ZDcxMmE4YjcxYzA4MjBkMWMwYWE2MjNiYzMzODIwMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsNDEgKzI0LDM5IEBACiAgKi8K
IAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMU2hhcmVkT2JqZWN0LmgiCiAK
ICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNpbmNsdWRlICJXZWJHTFNoYXJlZE9iamVjdC5oIgotCiAj
aW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV2ViR0xTaGFyZWRPYmplY3Q6
OldlYkdMU2hhcmVkT2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCi0g
ICAgOiBXZWJHTE9iamVjdChjb250ZXh0KQotICAgICwgbV9jb250ZXh0R3JvdXAoY29udGV4dC5j
b250ZXh0R3JvdXAoKSkKKyAgICA6IG1fY29udGV4dEdyb3VwKGNvbnRleHQuY29udGV4dEdyb3Vw
KCkpCiB7CiB9CiAKIFdlYkdMU2hhcmVkT2JqZWN0Ojp+V2ViR0xTaGFyZWRPYmplY3QoKQogewog
ICAgIGlmIChtX2NvbnRleHRHcm91cCkKLSAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZU9i
amVjdCh0aGlzKTsKKyAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZU9iamVjdCgqdGhpcyk7
CiB9CiAKIHZvaWQgV2ViR0xTaGFyZWRPYmplY3Q6OmRldGFjaENvbnRleHRHcm91cCgpCiB7CiAg
ICAgZGV0YWNoKCk7CiAgICAgaWYgKG1fY29udGV4dEdyb3VwKSB7Ci0gICAgICAgIGRlbGV0ZU9i
amVjdCgwKTsKLSAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZU9iamVjdCh0aGlzKTsKLSAg
ICAgICAgbV9jb250ZXh0R3JvdXAgPSAwOworICAgICAgICBkZWxldGVPYmplY3QobnVsbHB0cik7
CisgICAgICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVPYmplY3QoKnRoaXMpOworICAgICAgICBt
X2NvbnRleHRHcm91cCA9IG51bGxwdHI7CiAgICAgfQogfQogCiBHcmFwaGljc0NvbnRleHQzRCog
V2ViR0xTaGFyZWRPYmplY3Q6OmdldEFHcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fY29udGV4dEdyb3VwID8gbV9jb250ZXh0R3JvdXAtPmdldEFHcmFwaGljc0NvbnRl
eHQzRCgpIDogMDsKKyAgICByZXR1cm4gbV9jb250ZXh0R3JvdXAgPyAmbV9jb250ZXh0R3JvdXAt
PmdldEFHcmFwaGljc0NvbnRleHQzRCgpIDogbnVsbHB0cjsKIH0KIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmgKaW5kZXggYWJlNDgwMzMzNzJj
OTU2Y2M3MTMwZWI3ZjdiZmZmZGNkMWE5ZjU3Yi4uOTcyZTU4MGVlY2IwMTliOGFmZTExODA3MDIx
OTMyNmMzNmM5MzhjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xTaGFyZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNo
YXJlZE9iamVjdC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTMzLDI0ICszMywxNSBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKIGNs
YXNzIFdlYkdMQ29udGV4dEdyb3VwOwogY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTsK
IAotLy8gV2ViR0xTaGFyZWRPYmplY3QgdGhlIGJhc2UgY2xhc3MgZm9yIG9iamVjdHMgdGhhdCBj
YW4gYmUgc2hhcmVkIGJ5IG11bHRpcGxlCi0vLyBXZWJHTFJlbmRlcmluZ0NvbnRleHRzLgorLy8g
V2ViR0xTaGFyZWRPYmplY3QgdGhlIGJhc2UgY2xhc3MgZm9yIG9iamVjdHMgdGhhdCBjYW4gYmUg
c2hhcmVkIGJ5IG11bHRpcGxlIFdlYkdMUmVuZGVyaW5nQ29udGV4dHMuCiBjbGFzcyBXZWJHTFNo
YXJlZE9iamVjdCA6IHB1YmxpYyBXZWJHTE9iamVjdCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+
V2ViR0xTaGFyZWRPYmplY3QoKTsKIAogICAgIFdlYkdMQ29udGV4dEdyb3VwKiBjb250ZXh0R3Jv
dXAoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRHcm91cDsgfQogCi0gICAgdmlydHVhbCBib29s
IGlzQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNQ
cm9ncmFtKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNRdWVy
eSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyYnVm
ZmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTYW1wbGVy
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTaGFkZXIoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1N5bmMoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1RleHR1cmUoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1RyYW5zZm9ybUZlZWRiYWNrKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNWZXJ0ZXhBcnJheU9iamVj
dCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBib29sIHZhbGlkYXRlKGNvbnN0IFdl
YkdMQ29udGV4dEdyb3VwKiBjb250ZXh0R3JvdXAsIGNvbnN0IFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UmKSBjb25zdCBvdmVycmlkZQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMU3luYy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xTeW5jLmgKaW5kZXggZWY2ZWM5ZGNkNTk2NGZiNDZkMjM3YTAwNjNkNGM1NmIxMmNkYTc0Yy4u
ZjllNzE4MDE3NDFkMDMzNzYyYzJjMjFiNGMzYzZhM2Q5ODE4MjBlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTeW5jLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xTeW5jLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksOSArMzksNiBAQCBwcm90ZWN0ZWQ6CiAgICAgV2Vi
R0xTeW5jKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKIAogICAgIHZvaWQgZGVsZXRlT2Jq
ZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwot
Ci1wcml2YXRlOgotICAgIGJvb2wgaXNTeW5jKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCmluZGV4IDY5Y2Y4ZTdiYjU0
MThlYWE5ZTQ1NjkyMTE0MDhmNDc2YjI2YTY3ODYuLjcxNDkyMzM4NDVhZGExZGVhNDNjMDFkODA1
Yjc5ODE2Yjc3M2ViOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVHJhbnNmb3JtRmVlZGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksOSArMzksNiBAQCBwcm90ZWN0ZWQ6CiAgICAgV2Vi
R0xUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CiAKICAgICB2
b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0
KSBvdmVycmlkZTsKLQotcHJpdmF0ZToKLSAgICBib29sIGlzVHJhbnNmb3JtRmVlZGJhY2soKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFy
cmF5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJy
YXlPYmplY3QuY3BwCmluZGV4IDdmYTY5YzlhNDk0ZGJlZWE5ZGJlYmY4OWU4NWY0M2Y5Y2ZkMDI4
NDkuLjg5YWUyMWYzM2VmODU4OGNkMThkNDAzMWM4NTdhYThhMTQ0ZTU1NDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI0LDMzICsyNCwzMyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJM
RShXRUJHTCkgJiYgRU5BQkxFKFdFQkdMMikKICNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0LmgiCiAKKyNpZiBFTkFCTEUoV0VCR0wyKQorCiAjaW5jbHVkZSAiV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAKLVJlZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBXZWJHTFZlcnRleEFy
cmF5T2JqZWN0OjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWQU9UeXBl
IHR5cGUpCitSZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4gV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dDo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIFR5cGUgdHlwZSkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTFZlcnRleEFycmF5T2JqZWN0KGN0eCwg
dHlwZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdMVmVydGV4QXJyYXlPYmplY3Qo
Y29udGV4dCwgdHlwZSkpOwogfQogCiBXZWJHTFZlcnRleEFycmF5T2JqZWN0Ojp+V2ViR0xWZXJ0
ZXhBcnJheU9iamVjdCgpCiB7Ci0gICAgZGVsZXRlT2JqZWN0KDApOworICAgIGRlbGV0ZU9iamVj
dChudWxscHRyKTsKIH0KIAotV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6V2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIFZBT1R5cGUgdHlwZSkKLSAg
ICA6IFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKGN0eCwgdHlwZSkKK1dlYkdMVmVydGV4QXJy
YXlPYmplY3Q6OldlYkdMVmVydGV4QXJyYXlPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSYgY29udGV4dCwgVHlwZSB0eXBlKQorICAgIDogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2Uo
Y29udGV4dCwgdHlwZSkKIHsKICAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgVkFPVHlw
ZURlZmF1bHQ6CisgICAgY2FzZSBUeXBlOjpEZWZhdWx0OgogICAgICAgICBicmVhazsKLSAgICBk
ZWZhdWx0OgotICAgICAgICBzZXRPYmplY3QoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgp
LT5jcmVhdGVWZXJ0ZXhBcnJheSgpKTsKKyAgICBjYXNlIFR5cGU6OlVzZXI6CisgICAgICAgIHNl
dE9iamVjdCh0aGlzLT5jb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCktPmNyZWF0ZVZlcnRl
eEFycmF5KCkpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC01OCw5ICs1OCw5IEBAIFdl
YkdMVmVydGV4QXJyYXlPYmplY3Q6OldlYkdMVmVydGV4QXJyYXlPYmplY3QoV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYgY3R4LCBWCiB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmRlbGV0
ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamVj
dCBvYmplY3QpCiB7CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVEZWZh
dWx0OgorICAgIGNhc2UgVHlwZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVs
dDoKKyAgICBjYXNlIFR5cGU6OlVzZXI6CiAgICAgICAgIGNvbnRleHQzZC0+ZGVsZXRlVmVydGV4
QXJyYXkob2JqZWN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oCmluZGV4IDViNDljNzA4
YTQ2MjU0ZGU1OTBlMWMwNmRjYzk4NjJhNjY0YzMxNDIuLjJmN2VkMzUwODE3MjNmMGFiYWYyNTNi
MmFiY2ZkMDEzOTcwMzY0MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsOCArMjcsNiBAQAogCiAjaWYgRU5BQkxFKFdF
QkdMMikKIAotI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCi0jaW5jbHVkZSAiV2ViR0xDb250ZXh0
T2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMzcsMTIgKzM1LDExIEBAIGNsYXNzIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ7CiAKIGNsYXNzIFdlYkdMVmVydGV4QXJyYXlPYmplY3QgZmluYWwgOiBwdWJsaWMg
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdD4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBW
QU9UeXBlKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IGNyZWF0ZShX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVHlwZSk7CiAgICAgdmlydHVhbCB+V2ViR0xWZXJ0
ZXhBcnJheU9iamVjdCgpOwogcHJpdmF0ZToKLSAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0KFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBWQU9UeXBlKTsKLSAgICBib29sIGlzVHJhbnNmb3Jt
RmVlZGJhY2soKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdm9pZCBkZWxldGVPYmplY3RJ
bXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAg
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVHlwZSk7
CisgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0z
RE9iamVjdCkgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFz
ZS5jcHAKaW5kZXggNjk2NDljNjJmNmUxZGJlZjJmOWVkYTYxN2M0MjQyNGRmNzNmMTc1Zi4uNThk
ZmEzZDczYzZhZGI5MzljZTQwNDkyZjgxNzlhOThiZmU3OTFhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNw
cApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yNCwyNCArMjQsMjIgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKLSNpbmNs
dWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oIgogCiAjaW5jbHVkZSAiV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiBjdHgsIFZBT1R5cGUgdHlwZSkKLSAgICA6IFdlYkdMQ29udGV4dE9iamVj
dChjdHgpCitXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dEJhc2UoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwgVHlwZSB0eXBlKQorICAg
IDogV2ViR0xDb250ZXh0T2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX3R5cGUodHlwZSkKLSAgICAs
IG1faGFzRXZlckJlZW5Cb3VuZChmYWxzZSkKLSAgICAsIG1fYm91bmRFbGVtZW50QXJyYXlCdWZm
ZXIoMCkKIHsKLSAgICBtX3ZlcnRleEF0dHJpYlN0YXRlLnJlc2l6ZShjdHguZ2V0TWF4VmVydGV4
QXR0cmlicygpKTsKKyAgICBtX3ZlcnRleEF0dHJpYlN0YXRlLnJlc2l6ZShjb250ZXh0LmdldE1h
eFZlcnRleEF0dHJpYnMoKSk7CiB9CiAKLXZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6
OnNldEVsZW1lbnRBcnJheUJ1ZmZlcihQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBidWZmZXIpCit2
b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRFbGVtZW50QXJyYXlCdWZmZXIoV2Vi
R0xCdWZmZXIqIGJ1ZmZlcikKIHsKICAgICBpZiAoYnVmZmVyKQogICAgICAgICBidWZmZXItPm9u
QXR0YWNoZWQoKTsKQEAgLTUxLDE4ICs0OSwxNyBAQCB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3RCYXNlOjpzZXRFbGVtZW50QXJyYXlCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYgog
ICAgIAogfQogCi12b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRy
aWJTdGF0ZShHQzNEdWludCBpbmRleCwgR0MzRHNpemVpIGJ5dGVzUGVyRWxlbWVudCwgR0MzRGlu
dCBzaXplLCBHQzNEZW51bSB0eXBlLCBHQzNEYm9vbGVhbiBub3JtYWxpemVkLCBHQzNEc2l6ZWkg
c3RyaWRlLCBHQzNEaW50cHRyIG9mZnNldCwgUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVmZmVy
KQordm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4QXR0cmliU3RhdGUo
R0MzRHVpbnQgaW5kZXgsIEdDM0RzaXplaSBieXRlc1BlckVsZW1lbnQsIEdDM0RpbnQgc2l6ZSwg
R0MzRGVudW0gdHlwZSwgR0MzRGJvb2xlYW4gbm9ybWFsaXplZCwgR0MzRHNpemVpIHN0cmlkZSwg
R0MzRGludHB0ciBvZmZzZXQsIFdlYkdMQnVmZmVyJiBidWZmZXIpCiB7CiAgICAgR0MzRHNpemVp
IHZhbGlkYXRlZFN0cmlkZSA9IHN0cmlkZSA/IHN0cmlkZSA6IGJ5dGVzUGVyRWxlbWVudDsKICAg
ICAKLSAgICBWZXJ0ZXhBdHRyaWJTdGF0ZSYgc3RhdGUgPSBtX3ZlcnRleEF0dHJpYlN0YXRlW2lu
ZGV4XTsKKyAgICBhdXRvJiBzdGF0ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOwogICAg
IAotICAgIGlmIChidWZmZXIpCi0gICAgICAgIGJ1ZmZlci0+b25BdHRhY2hlZCgpOworICAgIGJ1
ZmZlci5vbkF0dGFjaGVkKCk7CiAgICAgaWYgKHN0YXRlLmJ1ZmZlckJpbmRpbmcpCiAgICAgICAg
IHN0YXRlLmJ1ZmZlckJpbmRpbmctPm9uRGV0YWNoZWQoY29udGV4dCgpLT5ncmFwaGljc0NvbnRl
eHQzRCgpKTsKICAgICAKLSAgICBzdGF0ZS5idWZmZXJCaW5kaW5nID0gYnVmZmVyOworICAgIHN0
YXRlLmJ1ZmZlckJpbmRpbmcgPSAmYnVmZmVyOwogICAgIHN0YXRlLmJ5dGVzUGVyRWxlbWVudCA9
IGJ5dGVzUGVyRWxlbWVudDsKICAgICBzdGF0ZS5zaXplID0gc2l6ZTsKICAgICBzdGF0ZS50eXBl
ID0gdHlwZTsKQEAgLTcyLDE3ICs2OSwxNyBAQCB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlOjpzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShHQzNEdWludCBpbmRleCwgR0MzRHNpemVpCiAgICAg
c3RhdGUub2Zmc2V0ID0gb2Zmc2V0OwogfQogCi12b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlOjp1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVmZmVyKQordm9pZCBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKFdlYkdMQnVmZmVyJiBidWZm
ZXIpCiB7Ci0gICAgaWYgKG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXIgPT0gYnVmZmVyKSB7Cisg
ICAgaWYgKG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXIgPT0gJmJ1ZmZlcikgewogICAgICAgICBt
X2JvdW5kRWxlbWVudEFycmF5QnVmZmVyLT5vbkRldGFjaGVkKGNvbnRleHQoKS0+Z3JhcGhpY3ND
b250ZXh0M0QoKSk7CiAgICAgICAgIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXIgPSBudWxscHRy
OwogICAgIH0KICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdmVydGV4QXR0cmli
U3RhdGUuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgVmVydGV4QXR0cmliU3RhdGUmIHN0YXRlID0g
bV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpXTsKLSAgICAgICAgaWYgKHN0YXRlLmJ1ZmZlckJpbmRpbmcg
PT0gYnVmZmVyKSB7Ci0gICAgICAgICAgICBidWZmZXItPm9uRGV0YWNoZWQoY29udGV4dCgpLT5n
cmFwaGljc0NvbnRleHQzRCgpKTsKKyAgICAgICAgYXV0byYgc3RhdGUgPSBtX3ZlcnRleEF0dHJp
YlN0YXRlW2ldOworICAgICAgICBpZiAoc3RhdGUuYnVmZmVyQmluZGluZyA9PSAmYnVmZmVyKSB7
CisgICAgICAgICAgICBidWZmZXIub25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4
dDNEKCkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIWkgJiYgIWNvbnRleHQoKS0+
aXNHTEVTMkNvbXBsaWFudCgpKSB7CiAgICAgICAgICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGlu
ZyA9IGNvbnRleHQoKS0+bV92ZXJ0ZXhBdHRyaWIwQnVmZmVyOwpAQCAtMTAyLDggKzk5LDcgQEAg
dm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKFBhc3NSZWZQdHI8
V2ViR0xCdWZmZXI+IGJ1ZmZlcikKIAogdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6
c2V0VmVydGV4QXR0cmliRGl2aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcikK
IHsKLSAgICBWZXJ0ZXhBdHRyaWJTdGF0ZSYgc3RhdGUgPSBtX3ZlcnRleEF0dHJpYlN0YXRlW2lu
ZGV4XTsKLSAgICBzdGF0ZS5kaXZpc29yID0gZGl2aXNvcjsKKyAgICBtX3ZlcnRleEF0dHJpYlN0
YXRlW2luZGV4XS5kaXZpc29yID0gZGl2aXNvcjsKIH0KICAgICAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oCmlu
ZGV4IDI5MGFiOGQzZDcwZjMzN2E4NjM1YTIzMTYyNzZkOTFkYzQzZDRhYTkuLjEyNzU1MzNkOGEx
NDYxOTFhNjU1YjI5YTA3ZmJiOGYxODdhMjg3MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw2NSArMzIs
NDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0
QmFzZSA6IHB1YmxpYyBXZWJHTENvbnRleHRPYmplY3QgewogcHVibGljOgotICAgIGVudW0gVkFP
VHlwZSB7Ci0gICAgICAgIFZBT1R5cGVEZWZhdWx0LAotICAgICAgICBWQU9UeXBlVXNlciwKLSAg
ICB9OwotICAgIAotICAgIHZpcnR1YWwgfldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKCkgeyB9
CisgICAgZW51bSBjbGFzcyBUeXBlIHsgRGVmYXVsdCwgVXNlciB9OwogCiAgICAgLy8gQ2FjaGVk
IHZhbHVlcyBmb3IgdmVydGV4IGF0dHJpYiByYW5nZSBjaGVja3MKICAgICBzdHJ1Y3QgVmVydGV4
QXR0cmliU3RhdGUgewotICAgICAgICBWZXJ0ZXhBdHRyaWJTdGF0ZSgpCi0gICAgICAgICAgICA6
IGVuYWJsZWQoZmFsc2UpCi0gICAgICAgICAgICAsIGJ5dGVzUGVyRWxlbWVudCgwKQotICAgICAg
ICAgICAgLCBzaXplKDQpCi0gICAgICAgICAgICAsIHR5cGUoR3JhcGhpY3NDb250ZXh0M0Q6OkZM
T0FUKQotICAgICAgICAgICAgLCBub3JtYWxpemVkKGZhbHNlKQotICAgICAgICAgICAgLCBzdHJp
ZGUoMTYpCi0gICAgICAgICAgICAsIG9yaWdpbmFsU3RyaWRlKDApCi0gICAgICAgICAgICAsIG9m
ZnNldCgwKQotICAgICAgICAgICAgLCBkaXZpc29yKDApCi0gICAgICAgIHsKLSAgICAgICAgfQot
ICAgICAgICAKICAgICAgICAgYm9vbCBpc0JvdW5kKCkgY29uc3QgeyByZXR1cm4gYnVmZmVyQmlu
ZGluZyAmJiBidWZmZXJCaW5kaW5nLT5vYmplY3QoKTsgfQogICAgICAgICBib29sIHZhbGlkYXRl
QmluZGluZygpIGNvbnN0IHsgcmV0dXJuICFlbmFibGVkIHx8IGlzQm91bmQoKTsgfQogICAgICAg
ICAKLSAgICAgICAgYm9vbCBlbmFibGVkOworICAgICAgICBib29sIGVuYWJsZWQgeyBmYWxzZSB9
OwogICAgICAgICBSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlckJpbmRpbmc7Ci0gICAgICAgIEdD
M0RzaXplaSBieXRlc1BlckVsZW1lbnQ7Ci0gICAgICAgIEdDM0RpbnQgc2l6ZTsKLSAgICAgICAg
R0MzRGVudW0gdHlwZTsKLSAgICAgICAgYm9vbCBub3JtYWxpemVkOwotICAgICAgICBHQzNEc2l6
ZWkgc3RyaWRlOwotICAgICAgICBHQzNEc2l6ZWkgb3JpZ2luYWxTdHJpZGU7Ci0gICAgICAgIEdD
M0RpbnRwdHIgb2Zmc2V0OwotICAgICAgICBHQzNEdWludCBkaXZpc29yOworICAgICAgICBHQzNE
c2l6ZWkgYnl0ZXNQZXJFbGVtZW50IHsgMCB9OworICAgICAgICBHQzNEaW50IHNpemUgeyA0IH07
CisgICAgICAgIEdDM0RlbnVtIHR5cGUgeyBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQgfTsKKyAg
ICAgICAgYm9vbCBub3JtYWxpemVkIHsgZmFsc2UgfTsKKyAgICAgICAgR0MzRHNpemVpIHN0cmlk
ZSB7IDE2IH07CisgICAgICAgIEdDM0RzaXplaSBvcmlnaW5hbFN0cmlkZSB7IDAgfTsKKyAgICAg
ICAgR0MzRGludHB0ciBvZmZzZXQgeyAwIH07CisgICAgICAgIEdDM0R1aW50IGRpdmlzb3IgeyAw
IH07CiAgICAgfTsKLSAgICAKLSAgICBib29sIGlzRGVmYXVsdE9iamVjdCgpIGNvbnN0IHsgcmV0
dXJuIG1fdHlwZSA9PSBWQU9UeXBlRGVmYXVsdDsgfQotICAgIAorCisgICAgYm9vbCBpc0RlZmF1
bHRPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6RGVmYXVsdDsgfQorCiAg
ICAgYm9vbCBoYXNFdmVyQmVlbkJvdW5kKCkgY29uc3QgeyByZXR1cm4gb2JqZWN0KCkgJiYgbV9o
YXNFdmVyQmVlbkJvdW5kOyB9CiAgICAgdm9pZCBzZXRIYXNFdmVyQmVlbkJvdW5kKCkgeyBtX2hh
c0V2ZXJCZWVuQm91bmQgPSB0cnVlOyB9Ci0gICAgCi0gICAgUGFzc1JlZlB0cjxXZWJHTEJ1ZmZl
cj4gZ2V0RWxlbWVudEFycmF5QnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9ib3VuZEVsZW1lbnRB
cnJheUJ1ZmZlcjsgfQotICAgIHZvaWQgc2V0RWxlbWVudEFycmF5QnVmZmVyKFBhc3NSZWZQdHI8
V2ViR0xCdWZmZXI+KTsKLSAgICAKKworICAgIFdlYkdMQnVmZmVyKiBnZXRFbGVtZW50QXJyYXlC
dWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyLmdldCgpOyB9
CisgICAgdm9pZCBzZXRFbGVtZW50QXJyYXlCdWZmZXIoV2ViR0xCdWZmZXIqKTsKKwogICAgIFZl
cnRleEF0dHJpYlN0YXRlJiBnZXRWZXJ0ZXhBdHRyaWJTdGF0ZShpbnQgaW5kZXgpIHsgcmV0dXJu
IG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOyB9Ci0gICAgdm9pZCBzZXRWZXJ0ZXhBdHRyaWJT
dGF0ZShHQzNEdWludCwgR0MzRHNpemVpLCBHQzNEaW50LCBHQzNEZW51bSwgR0MzRGJvb2xlYW4s
IEdDM0RzaXplaSwgR0MzRGludHB0ciwgUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4pOwotICAgIHZv
aWQgdW5iaW5kQnVmZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+KTsKLSAgICAKKyAgICB2b2lk
IHNldFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1aW50LCBHQzNEc2l6ZWksIEdDM0RpbnQsIEdDM0Rl
bnVtLCBHQzNEYm9vbGVhbiwgR0MzRHNpemVpLCBHQzNEaW50cHRyLCBXZWJHTEJ1ZmZlciYpOwor
ICAgIHZvaWQgdW5iaW5kQnVmZmVyKFdlYkdMQnVmZmVyJik7CisKICAgICB2b2lkIHNldFZlcnRl
eEF0dHJpYkRpdmlzb3IoR0MzRHVpbnQgaW5kZXgsIEdDM0R1aW50IGRpdmlzb3IpOwogCiBwcm90
ZWN0ZWQ6Ci0gICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYsIFZBT1R5cGUpOworICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBlKTsKICAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwo
R3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZSA9IDA7Ci0gICAg
Ci0gICAgVkFPVHlwZSBtX3R5cGU7Ci0gICAgYm9vbCBtX2hhc0V2ZXJCZWVuQm91bmQ7CisKKyAg
ICBUeXBlIG1fdHlwZTsKKyAgICBib29sIG1faGFzRXZlckJlZW5Cb3VuZCB7IGZhbHNlIH07CiAg
ICAgUmVmUHRyPFdlYkdMQnVmZmVyPiBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyOwogICAgIFZl
Y3RvcjxWZXJ0ZXhBdHRyaWJTdGF0ZT4gbV92ZXJ0ZXhBdHRyaWJTdGF0ZTsKIH07Ci0gICAgCisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKaW5kZXggNWYzYjY1NTdhNzBi
NWNiODQyYzBjMmVhNzc4MTc4YWZhNjRjMDFmZi4uYWY1NTY1Y2Q5NDQ0MjRiNTNiODM1N2RiMmMw
MTkwYmUxY2U1YjQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKQEAgLTM0LDM3ICszNCwzNSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiBXZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYg
Y3R4LCBWQU9UeXBlIHR5cGUpCitSZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNv
bnRleHQsIFR5cGUgdHlwZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTKGN0eCwgdHlwZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMoY29udGV4dCwgdHlwZSkpOwogfQogCi1XZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UmIGN0eCwgVkFPVHlwZSB0eXBlKQotICAgIDogV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdEJhc2UoY3R4LCB0eXBlKQorV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6V2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUyhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBUeXBl
IHR5cGUpCisgICAgOiBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShjb250ZXh0LCB0eXBlKQog
ewotICAgIEV4dGVuc2lvbnMzRCYgZXh0ZW5zaW9ucyA9IGNvbnRleHQoKS0+Z3JhcGhpY3NDb250
ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9ucygpOwotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2Fz
ZSBWQU9UeXBlRGVmYXVsdDoKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFR5cGU6OkRl
ZmF1bHQ6CiAgICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHNldE9iamVjdChl
eHRlbnNpb25zLmNyZWF0ZVZlcnRleEFycmF5T0VTKCkpOworICAgIGNhc2UgVHlwZTo6VXNlcjoK
KyAgICAgICAgc2V0T2JqZWN0KHRoaXMtPmNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+
Z2V0RXh0ZW5zaW9ucygpLmNyZWF0ZVZlcnRleEFycmF5T0VTKCkpOwogICAgICAgICBicmVhazsK
ICAgICB9CiB9CiAKIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6On5XZWJHTFZlcnRleEFycmF5
T2JqZWN0T0VTKCkKIHsKLSAgICBkZWxldGVPYmplY3QoMCk7CisgICAgZGVsZXRlT2JqZWN0KG51
bGxwdHIpOwogfQogCiB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmRlbGV0ZU9iamVj
dEltcGwoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamVjdCBvYmpl
Y3QpCiB7Ci0gICAgRXh0ZW5zaW9uczNEJiBleHRlbnNpb25zID0gY29udGV4dDNkLT5nZXRFeHRl
bnNpb25zKCk7CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVEZWZhdWx0
OgorICAgIGNhc2UgVHlwZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoK
LSAgICAgICAgZXh0ZW5zaW9ucy5kZWxldGVWZXJ0ZXhBcnJheU9FUyhvYmplY3QpOworICAgIGNh
c2UgVHlwZTo6VXNlcjoKKyAgICAgICAgY29udGV4dDNkLT5nZXRFeHRlbnNpb25zKCkuZGVsZXRl
VmVydGV4QXJyYXlPRVMob2JqZWN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
LmgKaW5kZXggZDA4ZDIyM2UzNTcwNjY5NGU5MWNhZTZhY2RjOGM0YmNhOWYxNjdlOS4uZjlhMmE1
OGVjMjc0N2MyZDUwNjMwYjViNmY2Y2ZmMDVhNjM2MGM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaApAQCAtMjUs
MTkgKzI1LDE3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIK
LSNpbmNsdWRlICJXZWJHTENvbnRleHRPYmplY3QuaCIKICNpbmNsdWRlICJXZWJHTFZlcnRleEFy
cmF5T2JqZWN0QmFzZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMgZmluYWwgOiBwdWJsaWMgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJh
c2UgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4g
Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBWQU9UeXBlKTsKKyAgICBzdGF0aWMg
UmVmPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlJiwgVHlwZSk7CiAgICAgdmlydHVhbCB+V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygp
OwogcHJpdmF0ZToKLSAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UmLCBWQU9UeXBlKTsKLSAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhp
Y3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICBXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBlKTsKKyAgICB2
b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0
KSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5jcHAKaW5kZXggOWJjZDQ3Zjc3OWUwNTFmYWE0MDU5
MGM3OTNmYjIzZmM1MWIyZGUxZS4uMjc1ZDZlYzQ0ZTA1ODQ1NmVlZmZmZDFjZWYyOGQ1YTc1Zjhi
MWYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5jcHAK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzcsMTMgKzM3
LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHZvaWQgRmlsZUljb25Mb2FkZXI6OmludmFsaWRh
dGUoKQogewogICAgIEFTU0VSVChtX2NsaWVudCk7Ci0gICAgbV9jbGllbnQgPSAwOworICAgIG1f
Y2xpZW50ID0gbnVsbHB0cjsKIH0KIAotdm9pZCBGaWxlSWNvbkxvYWRlcjo6bm90aWZ5RmluaXNo
ZWQoUGFzc1JlZlB0cjxJY29uPiBpY29uKQordm9pZCBGaWxlSWNvbkxvYWRlcjo6aWNvbkxvYWRl
ZChSZWZQdHI8SWNvbj4mJiBpY29uKQogewogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9j
bGllbnQtPnVwZGF0ZVJlbmRlcmluZyhpY29uKTsKKyAgICAgICAgbV9jbGllbnQtPmljb25Mb2Fk
ZWQoV1RGTW92ZShpY29uKSk7CiB9CiAKIEZpbGVJY29uTG9hZGVyOjpGaWxlSWNvbkxvYWRlcihG
aWxlSWNvbkxvYWRlckNsaWVudCYgY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9G
aWxlSWNvbkxvYWRlci5oCmluZGV4IDM1MzEzZGUzYTI4NTM2MGQ5ODY3YjgyYTVhYWNiYzA3ZDA1
ZTdiZDUuLjdkYTczZmM5MmUxNmNlM2FjZGJlNDhiMmFlM2M0MDEzNjkwODI4MzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzQsMTMgKzM0LDEyIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRmlsZUljb25Mb2FkZXI7CiBjbGFzcyBJY29uOwog
CiBjbGFzcyBGaWxlSWNvbkxvYWRlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+Rmls
ZUljb25Mb2FkZXJDbGllbnQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVuZGVyaW5n
KFBhc3NSZWZQdHI8SWNvbj4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaWNvbkxvYWRlZChSZWZQ
dHI8SWNvbj4mJikgPSAwOwogfTsKIAogY2xhc3MgRmlsZUljb25Mb2FkZXIgewpAQCAtNDgsNyAr
NDcsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgRmlsZUljb25Mb2FkZXIoRmlsZUljb25Mb2Fk
ZXJDbGllbnQmKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwotICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgbm90aWZ5RmluaXNoZWQoUGFzc1JlZlB0cjxJY29uPik7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBpY29uTG9hZGVkKFJlZlB0cjxJY29uPiYmKTsKIAogcHJpdmF0ZToKICAgICBGaWxl
SWNvbkxvYWRlckNsaWVudCogbV9jbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKaW5kZXggNDY3YTEzNGQzNmJhNTNhNzJi
YzJkNzBhMmViOTc2ODFlYjhmOTNmYi4uZGMxYWQ3M2ExYjAwNGIzNmM5ZTQ3NTU0YjExODQxM2Vi
MGJmNjBjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0
cnVjdGlvblNpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25z
dHJ1Y3Rpb25TaXRlLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0xNzQsNyArMTc0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGV4ZWN1
dGVUYXNrKEhUTUxDb25zdHJ1Y3Rpb25TaXRlVGFzayYgdGFzaykKIAogdm9pZCBIVE1MQ29uc3Ry
dWN0aW9uU2l0ZTo6YXR0YWNoTGF0ZXIoQ29udGFpbmVyTm9kZSYgcGFyZW50LCBSZWY8Tm9kZT4m
JiBjaGlsZCwgYm9vbCBzZWxmQ2xvc2luZykKIHsKLSAgICBBU1NFUlQoc2NyaXB0aW5nQ29udGVu
dElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpIHx8ICFpczxFbGVtZW50PihjaGlsZC5n
ZXQoKSkgfHwgIXRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZG93bmNhc3Q8RWxlbWVudD4oY2hp
bGQucHRyKCkpKSk7CisgICAgQVNTRVJUKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQobV9wYXJz
ZXJDb250ZW50UG9saWN5KSB8fCAhaXM8RWxlbWVudD4oY2hpbGQuZ2V0KCkpIHx8ICFpc1Njcmlw
dEVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4oY2hpbGQuZ2V0KCkpKSk7CiAgICAgQVNTRVJUKHBs
dWdpbkNvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSB8fCAhY2hpbGQtPmlz
UGx1Z2luRWxlbWVudCgpKTsKIAogICAgIGlmIChzaG91bGRGb3N0ZXJQYXJlbnQoKSkgewpAQCAt
NTQxLDcgKzU0MSw3IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydEZvcmVpZ25F
bGVtZW50KEF0b21pY0hUTUxUb2tlbiYmIHRva2VuLCBjb25zdCBBCiAgICAgbm90SW1wbGVtZW50
ZWQoKTsgLy8gcGFyc2VFcnJvciB3aGVuIHhtbG5zIG9yIHhtbG5zOnhsaW5rIGFyZSB3cm9uZy4K
IAogICAgIGF1dG8gZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQodG9rZW4sIG5hbWVzcGFjZVVSSSk7
Ci0gICAgaWYgKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9saWN5
KSB8fCAhdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShlbGVtZW50LnB0cigpKSkKKyAgICBpZiAo
c2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpIHx8ICFpc1Nj
cmlwdEVsZW1lbnQoZWxlbWVudC5nZXQoKSkpCiAgICAgICAgIGF0dGFjaExhdGVyKGN1cnJlbnRO
b2RlKCksIGVsZW1lbnQuY29weVJlZigpLCB0b2tlbi5zZWxmQ2xvc2luZygpKTsKICAgICBpZiAo
IXRva2VuLnNlbGZDbG9zaW5nKCkpCiAgICAgICAgIG1fb3BlbkVsZW1lbnRzLnB1c2goSFRNTFN0
YWNrSXRlbTo6Y3JlYXRlKFdURk1vdmUoZWxlbWVudCksIFdURk1vdmUodG9rZW4pLCBuYW1lc3Bh
Y2VVUkkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1
bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQ
YXJzZXIuY3BwCmluZGV4IGFjZWEwYWFhZDJjZGY0ODE3YTY1ZTdhZjlkN2M5ZmQzNTdkZmMzMzcu
LjUxNjNmMWE1Zjc4MjQ4M2E5MDI0ZWM2ZGE5MTUzZDA5NmIwMzRjNTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMSw2ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiw2ICszNiw3
IEBACiAjaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSFRNTFVua25vd25F
bGVtZW50LmgiCiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCisjaW5jbHVk
ZSAiU2NyaXB0RWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTIwNSw3ICsy
MDYsNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVC
dWlsZGVyKCkKICAgICAgICAgQVNTRVJUKCFtX3RyZWVCdWlsZGVyLT5oYXNQYXJzZXJCbG9ja2lu
Z1NjcmlwdFdvcmsoKSk7CiAgICAgICAgIC8vIFdlIHdpbGwgbm90IGhhdmUgYSBzY3JpcHRSdW5u
ZXIgd2hlbiBwYXJzaW5nIGEgRG9jdW1lbnRGcmFnbWVudC4KICAgICAgICAgaWYgKG1fc2NyaXB0
UnVubmVyKQotICAgICAgICAgICAgbV9zY3JpcHRSdW5uZXItPmV4ZWN1dGUoV1RGTW92ZShzY3Jp
cHRFbGVtZW50KSwgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgICAgICAgICBtX3NjcmlwdFJ1
bm5lci0+ZXhlY3V0ZShzY3JpcHRFbGVtZW50LnJlbGVhc2VOb25OdWxsKCksIHNjcmlwdFN0YXJ0
UG9zaXRpb24pOwogICAgIH0KIH0KIApAQCAtNTAwLDcgKzUwMSw3IEBAIHZvaWQgSFRNTERvY3Vt
ZW50UGFyc2VyOjp3YXRjaEZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1NjcmlwdCkKICAg
ICAvLyBzZXRDbGllbnQgd291bGQgY2FsbCBub3RpZnlGaW5pc2hlZCBpZiB0aGUgbG9hZCB3ZXJl
IGNvbXBsZXRlLgogICAgIC8vIENhbGxlcnMgZG8gbm90IGV4cGVjdCB0byBiZSByZS1lbnRlcmVk
IGZyb20gdGhpcyBjYWxsLCBzbyB0aGV5IHNob3VsZAogICAgIC8vIG5vdCBhbiBhbHJlYWR5LWxv
YWRlZCBQZW5kaW5nU2NyaXB0LgotICAgIHBlbmRpbmdTY3JpcHQuc2V0Q2xpZW50KHRoaXMpOwor
ICAgIHBlbmRpbmdTY3JpcHQuc2V0Q2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBIVE1MRG9jdW1l
bnRQYXJzZXI6OnN0b3BXYXRjaGluZ0ZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1Njcmlw
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5u
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAK
aW5kZXggYzI1NmI0Mjk1NmNlNDgxMWE5NGYwY2IzNGI4ZWQ3MjU3MjVlOGY1NC4uYzFmNDJjMjI1
ZDAwNzc5YWI0NDVjMTEyNTFkMzczYTQ4N2YyY2QyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwLTIwMTcgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03MCw3ICs3MSw3IEBAIEhUTUxTY3Jp
cHRSdW5uZXI6On5IVE1MU2NyaXB0UnVubmVyKCkKIAogdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpk
ZXRhY2goKQogewotICAgIG1fZG9jdW1lbnQgPSAwOworICAgIG1fZG9jdW1lbnQgPSBudWxscHRy
OwogfQogCiBzdGF0aWMgVVJMIGRvY3VtZW50VVJMRm9yU2NyaXB0RXhlY3V0aW9uKERvY3VtZW50
KiBkb2N1bWVudCkKQEAgLTk5LDI5ICsxMDAsMTggQEAgYm9vbCBIVE1MU2NyaXB0UnVubmVyOjpp
c1BlbmRpbmdTY3JpcHRSZWFkeShjb25zdCBQZW5kaW5nU2NyaXB0JiBzY3JpcHQpCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBhcnNpbmdCbG9j
a2luZ1NjcmlwdCgpCi17Ci0gICAgQVNTRVJUKG1fZG9jdW1lbnQpOwotICAgIEFTU0VSVCghaXNF
eGVjdXRpbmdTY3JpcHQoKSk7Ci0gICAgQVNTRVJUKG1fZG9jdW1lbnQtPmhhdmVTdHlsZXNoZWV0
c0xvYWRlZCgpKTsKLSAgICBBU1NFUlQoaXNQZW5kaW5nU2NyaXB0UmVhZHkoKm1fcGFyc2VyQmxv
Y2tpbmdTY3JpcHQpKTsKLQotICAgIEluc2VydGlvblBvaW50UmVjb3JkIGluc2VydGlvblBvaW50
UmVjb3JkKG1faG9zdC5pbnB1dFN0cmVhbSgpKTsKLSAgICBleGVjdXRlUGVuZGluZ1NjcmlwdEFu
ZERpc3BhdGNoRXZlbnQoV1RGTW92ZShtX3BhcnNlckJsb2NraW5nU2NyaXB0KSk7Ci19Ci0KLXZv
aWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRjaEV2ZW50
KFJlZlB0cjxQZW5kaW5nU2NyaXB0PiBwZW5kaW5nU2NyaXB0KQordm9pZCBIVE1MU2NyaXB0UnVu
bmVyOjpleGVjdXRlUGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQoUGVuZGluZ1NjcmlwdCYg
cGVuZGluZ1NjcmlwdCkKIHsKICAgICAvLyBTdG9wIHdhdGNoaW5nIGxvYWRzIGJlZm9yZSBleGVj
dXRlU2NyaXB0IHRvIHByZXZlbnQgcmVjdXJzaW9uIGlmIHRoZSBzY3JpcHQgcmVsb2FkcyBpdHNl
bGYuCi0gICAgaWYgKHBlbmRpbmdTY3JpcHQtPndhdGNoaW5nRm9yTG9hZCgpKQotICAgICAgICBz
dG9wV2F0Y2hpbmdGb3JMb2FkKCpwZW5kaW5nU2NyaXB0KTsKKyAgICBpZiAocGVuZGluZ1Njcmlw
dC53YXRjaGluZ0ZvckxvYWQoKSkKKyAgICAgICAgc3RvcFdhdGNoaW5nRm9yTG9hZChwZW5kaW5n
U2NyaXB0KTsKIAogICAgIGlmICghaXNFeGVjdXRpbmdTY3JpcHQoKSkKICAgICAgICAgTWljcm90
YXNrUXVldWU6Om1haW5UaHJlYWRRdWV1ZSgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7
CiAKLSAgICBpZiAoYXV0byogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElmUG9zc2li
bGUoJnBlbmRpbmdTY3JpcHQtPmVsZW1lbnQoKSkpIHsKKyAgICB7CiAgICAgICAgIE5lc3RpbmdM
ZXZlbEluY3JlbWVudGVyIG5lc3RpbmdMZXZlbEluY3JlbWVudGVyKG1fc2NyaXB0TmVzdGluZ0xl
dmVsKTsKLSAgICAgICAgc2NyaXB0RWxlbWVudC0+ZXhlY3V0ZVBlbmRpbmdTY3JpcHQoKnBlbmRp
bmdTY3JpcHQpOworICAgICAgICBwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKS5leGVjdXRlUGVuZGlu
Z1NjcmlwdChwZW5kaW5nU2NyaXB0KTsKICAgICB9CiAgICAgQVNTRVJUKCFpc0V4ZWN1dGluZ1Nj
cmlwdCgpKTsKIH0KQEAgLTE0MCwxNSArMTMwLDE0IEBAIHZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6
c3RvcFdhdGNoaW5nRm9yTG9hZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogCiAvLyBU
aGlzIGZ1bmN0aW9uIHNob3VsZCBtYXRjaCAxMC4yLjUuMTEgIkFuIGVuZCB0YWcgd2hvc2UgdGFn
IG5hbWUgaXMgJ3NjcmlwdCciCiAvLyBTY3JpcHQgaGFuZGxpbmcgbGl2ZXMgb3V0c2lkZSB0aGUg
dHJlZSBidWlsZGVyIHRvIGtlZXAgdGhlIGVhY2ggY2xhc3Mgc2ltcGxlLgotdm9pZCBIVE1MU2Ny
aXB0UnVubmVyOjpleGVjdXRlKFBhc3NSZWZQdHI8RWxlbWVudD4gc2NyaXB0RWxlbWVudCwgY29u
c3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQordm9pZCBIVE1MU2NyaXB0UnVu
bmVyOjpleGVjdXRlKFJlZjxTY3JpcHRFbGVtZW50PiYmIGVsZW1lbnQsIGNvbnN0IFRleHRQb3Np
dGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKIHsKLSAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7
CiAgICAgLy8gRklYTUU6IElmIHNjcmlwdGluZyBpcyBkaXNhYmxlZCwgYWx3YXlzIGp1c3QgcmV0
dXJuLgogCiAgICAgYm9vbCBoYWRQcmVsb2FkU2Nhbm5lciA9IG1faG9zdC5oYXNQcmVsb2FkU2Nh
bm5lcigpOwogCiAgICAgLy8gVHJ5IHRvIGV4ZWN1dGUgdGhlIHNjcmlwdCBnaXZlbiB0byB1cy4K
LSAgICBydW5TY3JpcHQoc2NyaXB0RWxlbWVudC5nZXQoKSwgc2NyaXB0U3RhcnRQb3NpdGlvbik7
CisgICAgcnVuU2NyaXB0KGVsZW1lbnQuZ2V0KCksIHNjcmlwdFN0YXJ0UG9zaXRpb24pOwogCiAg
ICAgaWYgKGhhc1BhcnNlckJsb2NraW5nU2NyaXB0KCkpIHsKICAgICAgICAgaWYgKGlzRXhlY3V0
aW5nU2NyaXB0KCkpCkBAIC0xNjcsOCArMTU2LDEzIEBAIGJvb2wgSFRNTFNjcmlwdFJ1bm5lcjo6
aGFzUGFyc2VyQmxvY2tpbmdTY3JpcHQoKSBjb25zdAogCiB2b2lkIEhUTUxTY3JpcHRSdW5uZXI6
OmV4ZWN1dGVQYXJzaW5nQmxvY2tpbmdTY3JpcHRzKCkKIHsKLSAgICB3aGlsZSAoaGFzUGFyc2Vy
QmxvY2tpbmdTY3JpcHQoKSAmJiBpc1BlbmRpbmdTY3JpcHRSZWFkeSgqbV9wYXJzZXJCbG9ja2lu
Z1NjcmlwdCkpCi0gICAgICAgIGV4ZWN1dGVQYXJzaW5nQmxvY2tpbmdTY3JpcHQoKTsKKyAgICB3
aGlsZSAoaGFzUGFyc2VyQmxvY2tpbmdTY3JpcHQoKSAmJiBpc1BlbmRpbmdTY3JpcHRSZWFkeSgq
bV9wYXJzZXJCbG9ja2luZ1NjcmlwdCkpIHsKKyAgICAgICAgQVNTRVJUKG1fZG9jdW1lbnQpOwor
ICAgICAgICBBU1NFUlQoIWlzRXhlY3V0aW5nU2NyaXB0KCkpOworICAgICAgICBBU1NFUlQobV9k
b2N1bWVudC0+aGF2ZVN0eWxlc2hlZXRzTG9hZGVkKCkpOworICAgICAgICBJbnNlcnRpb25Qb2lu
dFJlY29yZCBpbnNlcnRpb25Qb2ludFJlY29yZChtX2hvc3QuaW5wdXRTdHJlYW0oKSk7CisgICAg
ICAgIGV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChtX3BhcnNlckJsb2NraW5n
U2NyaXB0LnJlbGVhc2VOb25OdWxsKCkuZ2V0KCkpOworICAgIH0KIH0KIAogdm9pZCBIVE1MU2Ny
aXB0UnVubmVyOjpleGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JMb2FkKFBlbmRpbmdTY3JpcHQmIHBl
bmRpbmdTY3JpcHQpCkBAIC0yMDEsNyArMTk1LDcgQEAgYm9vbCBIVE1MU2NyaXB0UnVubmVyOjpl
eGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JQYXJzaW5nKCkKICAgICAgICAgICAgIHdhdGNoRm9yTG9h
ZChtX3NjcmlwdHNUb0V4ZWN1dGVBZnRlclBhcnNpbmcuZmlyc3QoKSk7CiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KLSAgICAgICAgZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmRE
aXNwYXRjaEV2ZW50KG1fc2NyaXB0c1RvRXhlY3V0ZUFmdGVyUGFyc2luZy50YWtlRmlyc3QoKSk7
CisgICAgICAgIGV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChtX3NjcmlwdHNU
b0V4ZWN1dGVBZnRlclBhcnNpbmcudGFrZUZpcnN0KCkuZ2V0KCkpOwogICAgICAgICAvLyBGSVhN
RTogV2hhdCBpcyB0aGlzIG1fZG9jdW1lbnQgY2hlY2sgZm9yPwogICAgICAgICBpZiAoIW1fZG9j
dW1lbnQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMDksMTggKzIwMywxNyBAQCBi
b29sIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclBhcnNpbmcoKQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IHJlcXVlc3RQ
ZW5kaW5nU2NyaXB0KEVsZW1lbnQqIHNjcmlwdCkKK3N0YXRpYyBSZWY8UGVuZGluZ1NjcmlwdD4g
cmVxdWVzdFBlbmRpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCYgc2NyaXB0RWxlbWVudCkKIHsKLSAg
ICBhdXRvJiBzY3JpcHRFbGVtZW50ID0gKnRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoc2NyaXB0
KTsKICAgICBBU1NFUlQoc2NyaXB0RWxlbWVudC53aWxsQmVQYXJzZXJFeGVjdXRlZCgpKTsKICAg
ICBBU1NFUlQoc2NyaXB0RWxlbWVudC5sb2FkYWJsZVNjcmlwdCgpKTsKLSAgICByZXR1cm4gUGVu
ZGluZ1NjcmlwdDo6Y3JlYXRlKCpzY3JpcHQsICpzY3JpcHRFbGVtZW50LmxvYWRhYmxlU2NyaXB0
KCkpOworICAgIHJldHVybiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxlbWVudCwgKnNj
cmlwdEVsZW1lbnQubG9hZGFibGVTY3JpcHQoKSk7CiB9CiAKLXZvaWQgSFRNTFNjcmlwdFJ1bm5l
cjo6cmVxdWVzdFBhcnNpbmdCbG9ja2luZ1NjcmlwdChFbGVtZW50KiBlbGVtZW50KQordm9pZCBI
VE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KFNjcmlwdEVsZW1l
bnQmIHNjcmlwdEVsZW1lbnQpCiB7CiAgICAgQVNTRVJUKCFtX3BhcnNlckJsb2NraW5nU2NyaXB0
KTsKLSAgICBtX3BhcnNlckJsb2NraW5nU2NyaXB0ID0gcmVxdWVzdFBlbmRpbmdTY3JpcHQoZWxl
bWVudCk7CisgICAgbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCA9IHJlcXVlc3RQZW5kaW5nU2NyaXB0
KHNjcmlwdEVsZW1lbnQpOwogICAgIEFTU0VSVChtX3BhcnNlckJsb2NraW5nU2NyaXB0LT5uZWVk
c0xvYWRpbmcoKSk7CiAKICAgICAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgYSBsb2FkIGNhbGxiYWNr
IGlmIExvYWRhYmxlU2NyaXB0IGlzIG5vdCBhbHJlYWR5CkBAIC0yMzAsNTUgKzIyMyw0NCBAQCB2
b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQoRWxlbWVu
dCogZWxlbWVudCkKICAgICAgICAgd2F0Y2hGb3JMb2FkKCptX3BhcnNlckJsb2NraW5nU2NyaXB0
KTsKIH0KIAotdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0RGVmZXJyZWRTY3JpcHQoRWxl
bWVudCogZWxlbWVudCkKK3ZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6cmVxdWVzdERlZmVycmVkU2Ny
aXB0KFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQpCiB7Ci0gICAgYXV0byBwZW5kaW5nU2Ny
aXB0ID0gcmVxdWVzdFBlbmRpbmdTY3JpcHQoZWxlbWVudCk7CisgICAgYXV0byBwZW5kaW5nU2Ny
aXB0ID0gcmVxdWVzdFBlbmRpbmdTY3JpcHQoc2NyaXB0RWxlbWVudCk7CiAgICAgQVNTRVJUKHBl
bmRpbmdTY3JpcHQtPm5lZWRzTG9hZGluZygpKTsKICAgICBtX3NjcmlwdHNUb0V4ZWN1dGVBZnRl
clBhcnNpbmcuYXBwZW5kKFdURk1vdmUocGVuZGluZ1NjcmlwdCkpOwogfQogCiAvLyBUaGlzIG1l
dGhvZCBpcyBtZWFudCB0byBtYXRjaCB0aGUgSFRNTDUgZGVmaW5pdGlvbiBvZiAicnVubmluZyBh
IHNjcmlwdCIKIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50
LXdvcmsvbXVsdGlwYWdlL3NjcmlwdGluZy0xLmh0bWwjcnVubmluZy1hLXNjcmlwdAotdm9pZCBI
VE1MU2NyaXB0UnVubmVyOjpydW5TY3JpcHQoRWxlbWVudCogc2NyaXB0LCBjb25zdCBUZXh0UG9z
aXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCit2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJ1blNj
cmlwdChTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVtZW50LCBjb25zdCBUZXh0UG9zaXRpb24mIHNj
cmlwdFN0YXJ0UG9zaXRpb24pCiB7CiAgICAgQVNTRVJUKG1fZG9jdW1lbnQpOwogICAgIEFTU0VS
VCghaGFzUGFyc2VyQmxvY2tpbmdTY3JpcHQoKSk7Ci0gICAgewotICAgICAgICBTY3JpcHRFbGVt
ZW50KiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShzY3JpcHQpOwot
Ci0gICAgICAgIC8vIFRoaXMgY29udGFpbnMgYm90aCBhbmQgQVNTRVJUSU9OIGFuZCBhIG51bGwg
Y2hlY2sgc2luY2Ugd2Ugc2hvdWxkIG5vdAotICAgICAgICAvLyBiZSBnZXR0aW5nIGludG8gdGhl
IGNhc2Ugb2YgYSBudWxsIHNjcmlwdCBlbGVtZW50LCBidXQgc2VlbSB0byBiZSBmcm9tCi0gICAg
ICAgIC8vIHRpbWUgdG8gdGltZS4gVGhlIGFzc2VydGlvbiBpcyBsZWZ0IGluIHRvIGhlbHAgZmlu
ZCB0aG9zZSBjYXNlcyBhbmQKLSAgICAgICAgLy8gaXMgYmVpbmcgdHJhY2tlZCBieSA8aHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNTU5Pi4KLSAgICAgICAgQVNTRVJU
KHNjcmlwdEVsZW1lbnQpOwotICAgICAgICBpZiAoIXNjcmlwdEVsZW1lbnQpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgLy8gRklYTUU6IFRoaXMgbWF5IGJlIHRvbyBhZ3Jlc3NpdmUg
YXMgd2UgYWx3YXlzIGRlbGl2ZXIgbXV0YXRpb25zIGF0Ci0gICAgICAgIC8vIGV2ZXJ5IHNjcmlw
dCBlbGVtZW50LCBldmVuIGlmIGl0J3Mgbm90IHJlYWR5IHRvIGV4ZWN1dGUgeWV0LiBUaGVyZSdz
Ci0gICAgICAgIC8vIHVuZm9ydHVhbnRlbHkgbm8gb2J2aW91cyB3YXkgdG8gdGVsbCBpZiBwcmVw
YXJlU2NyaXB0IGlzIGdvaW5nIHRvCi0gICAgICAgIC8vIGV4ZWN1dGUgdGhlIHNjcmlwdCBmcm9t
IG91dCBoZXJlLgotICAgICAgICBpZiAoIWlzRXhlY3V0aW5nU2NyaXB0KCkpCi0gICAgICAgICAg
ICBNaWNyb3Rhc2tRdWV1ZTo6bWFpblRocmVhZFF1ZXVlKCkucGVyZm9ybU1pY3JvdGFza0NoZWNr
cG9pbnQoKTsKLQotICAgICAgICBJbnNlcnRpb25Qb2ludFJlY29yZCBpbnNlcnRpb25Qb2ludFJl
Y29yZChtX2hvc3QuaW5wdXRTdHJlYW0oKSk7Ci0gICAgICAgIE5lc3RpbmdMZXZlbEluY3JlbWVu
dGVyIG5lc3RpbmdMZXZlbEluY3JlbWVudGVyKG1fc2NyaXB0TmVzdGluZ0xldmVsKTsKIAotICAg
ICAgICBzY3JpcHRFbGVtZW50LT5wcmVwYXJlU2NyaXB0KHNjcmlwdFN0YXJ0UG9zaXRpb24pOwot
Ci0gICAgICAgIGlmICghc2NyaXB0RWxlbWVudC0+d2lsbEJlUGFyc2VyRXhlY3V0ZWQoKSkKLSAg
ICAgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTogVGhpcyBtYXkgYmUgdG9vIGFncmVzc2l2
ZSBhcyB3ZSBhbHdheXMgZGVsaXZlciBtdXRhdGlvbnMgYXQKKyAgICAvLyBldmVyeSBzY3JpcHQg
ZWxlbWVudCwgZXZlbiBpZiBpdCdzIG5vdCByZWFkeSB0byBleGVjdXRlIHlldC4gVGhlcmUncwor
ICAgIC8vIHVuZm9ydHVuYXRlbHkgbm8gb2J2aW91cyB3YXkgdG8gdGVsbCBpZiBwcmVwYXJlU2Ny
aXB0IGlzIGdvaW5nIHRvCisgICAgLy8gZXhlY3V0ZSB0aGUgc2NyaXB0IGJlZm9yZSBjYWxsaW5n
IGl0LgorICAgIGlmICghaXNFeGVjdXRpbmdTY3JpcHQoKSkKKyAgICAgICAgTWljcm90YXNrUXVl
dWU6Om1haW5UaHJlYWRRdWV1ZSgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7CiAKLSAg
ICAgICAgaWYgKHNjcmlwdEVsZW1lbnQtPndpbGxFeGVjdXRlV2hlbkRvY3VtZW50RmluaXNoZWRQ
YXJzaW5nKCkpCi0gICAgICAgICAgICByZXF1ZXN0RGVmZXJyZWRTY3JpcHQoc2NyaXB0KTsKLSAg
ICAgICAgZWxzZSBpZiAoc2NyaXB0RWxlbWVudC0+cmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQoKSkg
ewotICAgICAgICAgICAgaWYgKG1fc2NyaXB0TmVzdGluZ0xldmVsID09IDEpCi0gICAgICAgICAg
ICAgICAgbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCA9IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZSgqc2Ny
aXB0LCBzY3JpcHRTdGFydFBvc2l0aW9uKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBzY3JpcHRFbGVtZW50LT5leGVjdXRlQ2xhc3NpY1NjcmlwdChTY3JpcHRTb3VyY2VDb2Rl
KHNjcmlwdC0+dGV4dENvbnRlbnQoKSwgZG9jdW1lbnRVUkxGb3JTY3JpcHRFeGVjdXRpb24obV9k
b2N1bWVudCksIHNjcmlwdFN0YXJ0UG9zaXRpb24pKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICByZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KHNjcmlwdCk7Ci0gICAgfQorICAgIElu
c2VydGlvblBvaW50UmVjb3JkIGluc2VydGlvblBvaW50UmVjb3JkKG1faG9zdC5pbnB1dFN0cmVh
bSgpKTsKKyAgICBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlciBuZXN0aW5nTGV2ZWxJbmNyZW1lbnRl
cihtX3NjcmlwdE5lc3RpbmdMZXZlbCk7CisKKyAgICBzY3JpcHRFbGVtZW50LnByZXBhcmVTY3Jp
cHQoc2NyaXB0U3RhcnRQb3NpdGlvbik7CisKKyAgICBpZiAoIXNjcmlwdEVsZW1lbnQud2lsbEJl
UGFyc2VyRXhlY3V0ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHNjcmlwdEVsZW1l
bnQud2lsbEV4ZWN1dGVXaGVuRG9jdW1lbnRGaW5pc2hlZFBhcnNpbmcoKSkKKyAgICAgICAgcmVx
dWVzdERlZmVycmVkU2NyaXB0KHNjcmlwdEVsZW1lbnQpOworICAgIGVsc2UgaWYgKHNjcmlwdEVs
ZW1lbnQucmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQoKSkgeworICAgICAgICBpZiAobV9zY3JpcHRO
ZXN0aW5nTGV2ZWwgPT0gMSkKKyAgICAgICAgICAgIG1fcGFyc2VyQmxvY2tpbmdTY3JpcHQgPSBQ
ZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxlbWVudCwgc2NyaXB0U3RhcnRQb3NpdGlvbik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNjcmlwdEVsZW1lbnQuZXhlY3V0ZUNsYXNzaWNT
Y3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRFbGVtZW50LmVsZW1lbnQoKS50ZXh0Q29udGVu
dCgpLCBkb2N1bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlvbihtX2RvY3VtZW50KSwgc2NyaXB0U3Rh
cnRQb3NpdGlvbikpOworICAgIH0gZWxzZQorICAgICAgICByZXF1ZXN0UGFyc2luZ0Jsb2NraW5n
U2NyaXB0KHNjcmlwdEVsZW1lbnQpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MU2NyaXB0UnVubmVyLmgKaW5kZXggNzY4MDBkNzEzY2U3ZDJlNDYzNWE2NjIzNWIx
NjdjMTlmNDU3YzgwMy4uYzg2NzQ3ZDkxYmFlMDVlNDI3NjZkZGZmZWQ1OWEwODNlN2FhMWZkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuaApAQCAt
MSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMy
LDEzICszMywxMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKLWNs
YXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEhUTUxTY3JpcHRSdW5uZXJIb3N0Owog
Y2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIAogY2xhc3MgSFRNTFNjcmlwdFJ1bm5lciB7Ci0gICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoSFRNTFNjcmlwdFJ1bm5lcik7IFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEhUTUxT
Y3JpcHRSdW5uZXIoRG9jdW1lbnQmLCBIVE1MU2NyaXB0UnVubmVySG9zdCYpOwogICAgIH5IVE1M
U2NyaXB0UnVubmVyKCk7CkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRldGFj
aCgpOwogCiAgICAgLy8gUHJvY2Vzc2VzIHRoZSBwYXNzZWQgaW4gc2NyaXB0IGFuZCBhbnkgcGVu
ZGluZyBzY3JpcHRzIGlmIHBvc3NpYmxlLgotICAgIHZvaWQgZXhlY3V0ZShQYXNzUmVmUHRyPEVs
ZW1lbnQ+IHNjcmlwdFRvUHJvY2VzcywgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBv
c2l0aW9uKTsKKyAgICB2b2lkIGV4ZWN1dGUoUmVmPFNjcmlwdEVsZW1lbnQ+JiYsIGNvbnN0IFRl
eHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CiAKICAgICB2b2lkIGV4ZWN1dGVTY3Jp
cHRzV2FpdGluZ0ZvckxvYWQoUGVuZGluZ1NjcmlwdCYpOwogICAgIGJvb2wgaGFzU2NyaXB0c1dh
aXRpbmdGb3JTdHlsZXNoZWV0cygpIGNvbnN0IHsgcmV0dXJuIG1faGFzU2NyaXB0c1dhaXRpbmdG
b3JTdHlsZXNoZWV0czsgfQpAQCAtNTksMTYgKzU5LDE0IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7CiAKLSAgICB2b2lkIGV4ZWN1dGVQYXJzaW5nQmxvY2tp
bmdTY3JpcHQoKTsKLSAgICB2b2lkIGV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVu
dChSZWZQdHI8UGVuZGluZ1NjcmlwdD4pOworICAgIHZvaWQgZXhlY3V0ZVBlbmRpbmdTY3JpcHRB
bmREaXNwYXRjaEV2ZW50KFBlbmRpbmdTY3JpcHQmKTsKICAgICB2b2lkIGV4ZWN1dGVQYXJzaW5n
QmxvY2tpbmdTY3JpcHRzKCk7CiAKLSAgICB2b2lkIHJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3Jp
cHQoRWxlbWVudCopOwotICAgIHZvaWQgcmVxdWVzdERlZmVycmVkU2NyaXB0KEVsZW1lbnQqKTsK
KyAgICB2b2lkIHJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCYpOwor
ICAgIHZvaWQgcmVxdWVzdERlZmVycmVkU2NyaXB0KFNjcmlwdEVsZW1lbnQmKTsKIAotICAgIHZv
aWQgcnVuU2NyaXB0KEVsZW1lbnQqLCBjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9z
aXRpb24pOworICAgIHZvaWQgcnVuU2NyaXB0KFNjcmlwdEVsZW1lbnQmLCBjb25zdCBUZXh0UG9z
aXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pOwogCi0gICAgLy8gSGVscGVycyBmb3IgZGVhbGlu
ZyB3aXRoIEhUTUxTY3JpcHRSdW5uZXJIb3N0CiAgICAgdm9pZCB3YXRjaEZvckxvYWQoUGVuZGlu
Z1NjcmlwdCYpOwogICAgIHZvaWQgc3RvcFdhdGNoaW5nRm9yTG9hZChQZW5kaW5nU2NyaXB0Jik7
CiAgICAgYm9vbCBpc1BlbmRpbmdTY3JpcHRSZWFkeShjb25zdCBQZW5kaW5nU2NyaXB0Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAppbmRleCA0
NTI0YzFlYWFjZmQ5MzI5MDI2YzY2Y2I3MmFiNTRiMDA4ZjYyYTRjLi5kNGY4NGQyZmE1NWQ1OTkw
ZTZmNzc1Y2RmMGU0NGEzMjBjN2FjNjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsMTAgKzM1LDEyIEBACiAjaW5jbHVkZSAi
SFRNTE9wdEdyb3VwRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tRWxl
bWVudEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlNWR1NjcmlwdEVsZW1lbnQuaCIKICNpbmNs
dWRlICJYTGlua05hbWVzLmgiCiAjaW5jbHVkZSAiWE1MTlNOYW1lcy5oIgogI2luY2x1ZGUgIlhN
TE5hbWVzLmgiCkBAIC01NywxMCArNTksMTIgQEAgQ3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRh
dGE6OkN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhKFJlZjxKU0N1c3RvbUVsZW1lbnQKICAg
ICA6IGVsZW1lbnRJbnRlcmZhY2UoV1RGTW92ZShjdXN0b21FbGVtZW50SW50ZXJmYWNlKSkKICAg
ICAsIG5hbWUobmFtZSkKICAgICAsIGF0dHJpYnV0ZXMoV1RGTW92ZShhdHRyaWJ1dGVzKSkKLXsg
fQoreworfQogCiBDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YTo6fkN1c3RvbUVsZW1lbnRD
b25zdHJ1Y3Rpb25EYXRhKCkKLXsgfQoreworfQogCiBuYW1lc3BhY2UgewogCkBAIC0zMTgsNyAr
MzIyLDcgQEAgaW5saW5lIEhUTUxTdGFja0l0ZW0mIEhUTUxUcmVlQnVpbGRlcjo6RnJhZ21lbnRQ
YXJzaW5nQ29udGV4dDo6Y29udGV4dEVsZW1lbnRTdGEKICAgICByZXR1cm4gKm1fY29udGV4dEVs
ZW1lbnRTdGFja0l0ZW07CiB9CiAKLVJlZlB0cjxFbGVtZW50PiBIVE1MVHJlZUJ1aWxkZXI6OnRh
a2VTY3JpcHRUb1Byb2Nlc3MoVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQorUmVm
UHRyPFNjcmlwdEVsZW1lbnQ+IEhUTUxUcmVlQnVpbGRlcjo6dGFrZVNjcmlwdFRvUHJvY2VzcyhU
ZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiB7CiAgICAgQVNTRVJUKCFtX2Rlc3Ry
b3llZCk7CiAKQEAgLTIwNTcsNyArMjA2MSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzRW5kVGFnKEF0b21pY0hUTUxUb2tlbiYmIHRva2VuKQogICAgICAgICAgICAgLy8gUGF1c2Ug
b3Vyc2VsdmVzIHNvIHRoYXQgcGFyc2luZyBzdG9wcyB1bnRpbCB0aGUgc2NyaXB0IGNhbiBiZSBw
cm9jZXNzZWQgYnkgdGhlIGNhbGxlci4KICAgICAgICAgICAgIEFTU0VSVChtX3RyZWUuY3VycmVu
dFN0YWNrSXRlbSgpLmhhc1RhZ05hbWUoc2NyaXB0VGFnKSk7CiAgICAgICAgICAgICBpZiAoc2Ny
aXB0aW5nQ29udGVudElzQWxsb3dlZChtX3RyZWUucGFyc2VyQ29udGVudFBvbGljeSgpKSkKLSAg
ICAgICAgICAgICAgICBtX3NjcmlwdFRvUHJvY2VzcyA9ICZtX3RyZWUuY3VycmVudEVsZW1lbnQo
KTsKKyAgICAgICAgICAgICAgICBtX3NjcmlwdFRvUHJvY2VzcyA9ICZkb3duY2FzdDxIVE1MU2Ny
aXB0RWxlbWVudD4obV90cmVlLmN1cnJlbnRFbGVtZW50KCkpOwogICAgICAgICAgICAgbV90cmVl
Lm9wZW5FbGVtZW50cygpLnBvcCgpOwogICAgICAgICAgICAgbV9pbnNlcnRpb25Nb2RlID0gbV9v
cmlnaW5hbEluc2VydGlvbk1vZGU7CiAKQEAgLTI3ODcsNyArMjc5MSw3IEBAIHZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcm9jZXNzVG9rZW5JbkZvcmVpZ25Db250ZW50KEF0b21pY0hUTUxUb2tlbiYm
IHRva2VuKQogCiAgICAgICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gU1ZHTmFtZXM6OnNjcmlwdFRh
ZyAmJiBtX3RyZWUuY3VycmVudFN0YWNrSXRlbSgpLmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNjcmlw
dFRhZykpIHsKICAgICAgICAgICAgIGlmIChzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKG1fdHJl
ZS5wYXJzZXJDb250ZW50UG9saWN5KCkpKQotICAgICAgICAgICAgICAgIG1fc2NyaXB0VG9Qcm9j
ZXNzID0gJm1fdHJlZS5jdXJyZW50RWxlbWVudCgpOworICAgICAgICAgICAgICAgIG1fc2NyaXB0
VG9Qcm9jZXNzID0gJmRvd25jYXN0PFNWR1NjcmlwdEVsZW1lbnQ+KG1fdHJlZS5jdXJyZW50RWxl
bWVudCgpKTsKICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS5wb3AoKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuaAppbmRleCBkNzA5MjlmNjBhNjBiYzY1OTZmNjc5MGNkMDBkZWYxNmY5
ODU1OWE1Li5hZWNjYWI0NWRhNTUwY2UzOWE2ODk2ODBiMGNmNDRjYzUwMmYxZjFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaApAQCAtMSw2ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw2ICsz
NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSlNDdXN0b21FbGVtZW50SW50ZXJm
YWNlOwogY2xhc3MgSFRNTERvY3VtZW50UGFyc2VyOworY2xhc3MgU2NyaXB0RWxlbWVudDsKIAog
c3RydWN0IEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhIHsKICAgICBDdXN0b21FbGVtZW50
Q29uc3RydWN0aW9uRGF0YShSZWY8SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlPiYmLCBjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxBdHRyaWJ1dGU+JiYpOwpAQCAtNjIsNyArNjMsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdFdvcmsoKSBjb25zdDsK
IAogICAgIC8vIE11c3QgYmUgY2FsbGVkIHRvIHRha2UgdGhlIHBhcnNlci1ibG9ja2luZyBzY3Jp
cHQgYmVmb3JlIGNhbGxpbmcgdGhlIHBhcnNlciBhZ2Fpbi4KLSAgICBSZWZQdHI8RWxlbWVudD4g
dGFrZVNjcmlwdFRvUHJvY2VzcyhUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pOwor
ICAgIFJlZlB0cjxTY3JpcHRFbGVtZW50PiB0YWtlU2NyaXB0VG9Qcm9jZXNzKFRleHRQb3NpdGlv
biYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3VzdG9tRWxl
bWVudENvbnN0cnVjdGlvbkRhdGE+IHRha2VDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YSgp
IHsgcmV0dXJuIFdURk1vdmUobV9jdXN0b21FbGVtZW50VG9Db25zdHJ1Y3QpOyB9CiAgICAgdm9p
ZCBkaWRDcmVhdGVDdXN0b21PckNhbGxiYWNrRWxlbWVudChSZWY8RWxlbWVudD4mJiwgQ3VzdG9t
RWxlbWVudENvbnN0cnVjdGlvbkRhdGEmKTsKQEAgLTIwNiw3ICsyMDcsNyBAQCBwcml2YXRlOgog
ICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1s
I2NvbmNlcHQtcGVuZGluZy10YWJsZS1jaGFyLXRva2VucwogICAgIFN0cmluZ0J1aWxkZXIgbV9w
ZW5kaW5nVGFibGVDaGFyYWN0ZXJzOwogCi0gICAgUmVmUHRyPEVsZW1lbnQ+IG1fc2NyaXB0VG9Q
cm9jZXNzOyAvLyA8c2NyaXB0PiB0YWcgd2hpY2ggbmVlZHMgcHJvY2Vzc2luZyBiZWZvcmUgcmVz
dW1pbmcgdGhlIHBhcnNlci4KKyAgICBSZWZQdHI8U2NyaXB0RWxlbWVudD4gbV9zY3JpcHRUb1By
b2Nlc3M7IC8vIDxzY3JpcHQ+IHRhZyB3aGljaCBuZWVkcyBwcm9jZXNzaW5nIGJlZm9yZSByZXN1
bWluZyB0aGUgcGFyc2VyLgogICAgIFRleHRQb3NpdGlvbiBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0
UG9zaXRpb247IC8vIFN0YXJ0aW5nIGxpbmUgbnVtYmVyIG9mIHRoZSBzY3JpcHQgdGFnIG5lZWRp
bmcgcHJvY2Vzc2luZy4KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxDdXN0b21FbGVtZW50Q29uc3Ry
dWN0aW9uRGF0YT4gbV9jdXN0b21FbGVtZW50VG9Db25zdHJ1Y3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmNwcAppbmRleCBhZDVmNmU3OGUz
ODFhYWRjY2M2YjkxYmE5N2NhNDI1NTgwNGNiOTcwLi5mOTg4MjViMjA2MDk3ZjJjNGE4YzFmZTg0
YjQwYjZkOGYwYTVlYWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9U
ZXh0RG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1Rl
eHREb2N1bWVudFBhcnNlci5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJUZXh0RG9j
dW1lbnRQYXJzZXIuaCIKIAogI2luY2x1ZGUgIkhUTUxUcmVlQnVpbGRlci5oIgorI2luY2x1ZGUg
IlNjcmlwdEVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcAppbmRleCAzZjQzZTA0
ZDVkZWViN2QyOTMxMTZlOGRlYzIzYzdiMGJmN2ZiNzc5Li45YjUwYmEzYjE0MzY4YzIzZDEzNjYx
MWVmOGM5NDg2ZGNiZWNjMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDEzIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsNyArNDYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IFhTU0F1ZGl0b3JEZWxlZ2F0ZTo6WFNTQXVkaXRvckRlbGVnYXRlKERvY3VtZW50JiBkb2N1bWVu
dCkKICAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCi0gICAgLCBtX2RpZFNlbmROb3RpZmljYXRp
b25zKGZhbHNlKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiB9CkBAIC02OSwyMiAr
NjksMjIgQEAgc3RhdGljIGlubGluZSBTdHJpbmcgYnVpbGRDb25zb2xlRXJyb3IoY29uc3QgWFNT
SW5mbyYgeHNzSW5mbykKICAgICByZXR1cm4gbWVzc2FnZS50b1N0cmluZygpOwogfQogCi1QYXNz
UmVmUHRyPEZvcm1EYXRhPiBYU1NBdWRpdG9yRGVsZWdhdGU6OmdlbmVyYXRlVmlvbGF0aW9uUmVw
b3J0KGNvbnN0IFhTU0luZm8mIHhzc0luZm8pCitSZWY8Rm9ybURhdGE+IFhTU0F1ZGl0b3JEZWxl
Z2F0ZTo6Z2VuZXJhdGVWaW9sYXRpb25SZXBvcnQoY29uc3QgWFNTSW5mbyYgeHNzSW5mbykKIHsK
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgRnJhbWVMb2FkZXImIGZyYW1lTG9h
ZGVyID0gbV9kb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKTsKKyAgICBhdXRvJiBmcmFtZUxvYWRl
ciA9IG1fZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCk7CiAgICAgU3RyaW5nIGh0dHBCb2R5Owog
ICAgIGlmIChmcmFtZUxvYWRlci5kb2N1bWVudExvYWRlcigpKSB7Ci0gICAgICAgIGlmIChGb3Jt
RGF0YSogZm9ybURhdGEgPSBmcmFtZUxvYWRlci5kb2N1bWVudExvYWRlcigpLT5vcmlnaW5hbFJl
cXVlc3QoKS5odHRwQm9keSgpKQorICAgICAgICBpZiAoYXV0byogZm9ybURhdGEgPSBmcmFtZUxv
YWRlci5kb2N1bWVudExvYWRlcigpLT5vcmlnaW5hbFJlcXVlc3QoKS5odHRwQm9keSgpKQogICAg
ICAgICAgICAgaHR0cEJvZHkgPSBmb3JtRGF0YS0+ZmxhdHRlblRvU3RyaW5nKCk7CiAgICAgfQog
Ci0gICAgUmVmPEluc3BlY3Rvck9iamVjdD4gcmVwb3J0RGV0YWlscyA9IEluc3BlY3Rvck9iamVj
dDo6Y3JlYXRlKCk7CisgICAgYXV0byByZXBvcnREZXRhaWxzID0gSW5zcGVjdG9yT2JqZWN0Ojpj
cmVhdGUoKTsKICAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInJlcXVlc3QtdXJsIiwgeHNz
SW5mby5tX29yaWdpbmFsVVJMKTsKICAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInJlcXVl
c3QtYm9keSIsIGh0dHBCb2R5KTsKIAotICAgIFJlZjxJbnNwZWN0b3JPYmplY3Q+IHJlcG9ydE9i
amVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgYXV0byByZXBvcnRPYmplY3Qg
PSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwogICAgIHJlcG9ydE9iamVjdC0+c2V0T2JqZWN0
KCJ4c3MtcmVwb3J0IiwgV1RGTW92ZShyZXBvcnREZXRhaWxzKSk7CiAKICAgICByZXR1cm4gRm9y
bURhdGE6OmNyZWF0ZShyZXBvcnRPYmplY3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVn
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuaApp
bmRleCAwYWUyNzRiMzE5MmRmYTQ3YTYzY2U5NmEyYTk3OTQ2NWVjODgwOGVmLi42N2EzMmVkOTMw
ZDdkOWRkNGRhYzQwODkyMjBiZGYzZjJhZDc2ZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNywxMyArMjgsMTQgQEAKIAogI2luY2x1ZGUg
IlVSTC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgotI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3Vt
ZW50OwogY2xhc3MgRm9ybURhdGE7CiAKKy8vIEZJWE1FOiBTaG91bGQgY2hhbmdlIGludG8gYSBz
dHJ1Y3QuCisvLyBGSVhNRTogU2hvdWxkIHJldHVybiBieSB2YWx1ZSBpbnN0ZWFkIG9mIHVzaW5n
IGEgdW5pcXVlX3B0ci4KIGNsYXNzIFhTU0luZm8gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgpAQCAtNTEsNyArNTMsNiBAQCBwdWJsaWM6CiB9OwogCiBjbGFzcyBYU1NB
dWRpdG9yRGVsZWdhdGUgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFhTU0F1ZGl0b3JEZWxl
Z2F0ZSk7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgWFNTQXVkaXRvckRlbGVnYXRlKERvY3VtZW50
Jik7CiAKQEAgLTU5LDEwICs2MCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZXBvcnRVUkwo
Y29uc3QgVVJMJiB1cmwpIHsgbV9yZXBvcnRVUkwgPSB1cmw7IH0KIAogcHJpdmF0ZToKLSAgICBQ
YXNzUmVmUHRyPEZvcm1EYXRhPiBnZW5lcmF0ZVZpb2xhdGlvblJlcG9ydChjb25zdCBYU1NJbmZv
Jik7CisgICAgUmVmPEZvcm1EYXRhPiBnZW5lcmF0ZVZpb2xhdGlvblJlcG9ydChjb25zdCBYU1NJ
bmZvJik7CiAKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKLSAgICBib29sIG1fZGlkU2VuZE5v
dGlmaWNhdGlvbnM7CisgICAgYm9vbCBtX2RpZFNlbmROb3RpZmljYXRpb25zIHsgZmFsc2UgfTsK
ICAgICBVUkwgbV9yZXBvcnRVUkw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRp
b1RyYWNrLmNwcAppbmRleCA4YzM1NmY3OTE1ZDQ5OGNlMzQxMmY3OTg4MmY4ZDA2MGIwODU2MTky
Li5lZWIwNTUzN2Y2NDUzNGY2NTU1N2E2Y2Y0NGYzODAxZDFkMzZiYmZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29w
eXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMwLDEzICszMCwx
MCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBdWRpb1RyYWNrLmgi
CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbmNsdWRlICJBdWRpb1RyYWNrLmgiCi0K
LSNpbmNsdWRlICJBdWRpb1RyYWNrTGlzdC5oIgotI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgog
CkBAIC03OCwxMCArNzUsMTAgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBBdWRpb1RyYWNrOjpjb21t
ZW50YXJ5S2V5d29yZCgpCiAgICAgcmV0dXJuIGNvbW1lbnRhcnk7CiB9CiAKLUF1ZGlvVHJhY2s6
OkF1ZGlvVHJhY2soQXVkaW9UcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPEF1ZGlvVHJh
Y2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCi0gICAgOiBNZWRpYVRyYWNrQmFzZShNZWRpYVRyYWNr
QmFzZTo6QXVkaW9UcmFjaywgdHJhY2tQcml2YXRlLT5pZCgpLCB0cmFja1ByaXZhdGUtPmxhYmVs
KCksIHRyYWNrUHJpdmF0ZS0+bGFuZ3VhZ2UoKSkKLSAgICAsIG1fZW5hYmxlZCh0cmFja1ByaXZh
dGUtPmVuYWJsZWQoKSkKLSAgICAsIG1fY2xpZW50KGNsaWVudCkKK0F1ZGlvVHJhY2s6OkF1ZGlv
VHJhY2soQXVkaW9UcmFja0NsaWVudCYgY2xpZW50LCBBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2tQ
cml2YXRlKQorICAgIDogTWVkaWFUcmFja0Jhc2UoTWVkaWFUcmFja0Jhc2U6OkF1ZGlvVHJhY2ss
IHRyYWNrUHJpdmF0ZS5pZCgpLCB0cmFja1ByaXZhdGUubGFiZWwoKSwgdHJhY2tQcml2YXRlLmxh
bmd1YWdlKCkpCisgICAgLCBtX2VuYWJsZWQodHJhY2tQcml2YXRlLmVuYWJsZWQoKSkKKyAgICAs
IG1fY2xpZW50KCZjbGllbnQpCiAgICAgLCBtX3ByaXZhdGUodHJhY2tQcml2YXRlKQogewogICAg
IG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwpAQCAtOTMsODAgKzkwLDcwIEBAIEF1ZGlvVHJh
Y2s6On5BdWRpb1RyYWNrKCkKICAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKIH0K
IAotdm9pZCBBdWRpb1RyYWNrOjpzZXRQcml2YXRlKFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZh
dGU+IHRyYWNrUHJpdmF0ZSkKK3ZvaWQgQXVkaW9UcmFjazo6c2V0UHJpdmF0ZShBdWRpb1RyYWNr
UHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIEFT
U0VSVCh0cmFja1ByaXZhdGUpOwotCi0gICAgaWYgKG1fcHJpdmF0ZSA9PSB0cmFja1ByaXZhdGUp
CisgICAgaWYgKG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKICAgICBtX3ByaXZhdGUg
PSB0cmFja1ByaXZhdGU7CisgICAgbV9wcml2YXRlLT5zZXRFbmFibGVkKG1fZW5hYmxlZCk7CiAg
ICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CiAKLSAgICBtX3ByaXZhdGUtPnNldEVuYWJs
ZWQobV9lbmFibGVkKTsKICAgICB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIH0KIAogYm9vbCBB
dWRpb1RyYWNrOjppc1ZhbGlkS2luZChjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKSBjb25zdAog
ewogICAgIHJldHVybiB2YWx1ZSA9PSBhbHRlcm5hdGl2ZUtleXdvcmQoKQorICAgICAgICB8fCB2
YWx1ZSA9PSBjb21tZW50YXJ5S2V5d29yZCgpCiAgICAgICAgIHx8IHZhbHVlID09IGRlc2NyaXB0
aW9uS2V5d29yZCgpCiAgICAgICAgIHx8IHZhbHVlID09IG1haW5LZXl3b3JkKCkKICAgICAgICAg
fHwgdmFsdWUgPT0gbWFpbkRlc2NLZXl3b3JkKCkKLSAgICAgICAgfHwgdmFsdWUgPT0gdHJhbnNs
YXRpb25LZXl3b3JkKCkKLSAgICAgICAgfHwgdmFsdWUgPT0gY29tbWVudGFyeUtleXdvcmQoKTsK
KyAgICAgICAgfHwgdmFsdWUgPT0gdHJhbnNsYXRpb25LZXl3b3JkKCk7CiB9CiAKLXZvaWQgQXVk
aW9UcmFjazo6c2V0RW5hYmxlZChjb25zdCBib29sIGVuYWJsZWQpCit2b2lkIEF1ZGlvVHJhY2s6
OnNldEVuYWJsZWQoYm9vbCBlbmFibGVkKQogewogICAgIGlmIChtX2VuYWJsZWQgPT0gZW5hYmxl
ZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9lbmFibGVkID0gZW5hYmxlZDsKICAgICBtX3By
aXZhdGUtPnNldEVuYWJsZWQoZW5hYmxlZCk7Ci0KLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAg
IG1fY2xpZW50LT5hdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQodGhpcyk7CiB9CiAKLXNpemVfdCBB
dWRpb1RyYWNrOjppbmJhbmRUcmFja0luZGV4KCkKK3NpemVfdCBBdWRpb1RyYWNrOjppbmJhbmRU
cmFja0luZGV4KCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKICAgICByZXR1cm4g
bV9wcml2YXRlLT50cmFja0luZGV4KCk7CiB9CiAKLXZvaWQgQXVkaW9UcmFjazo6ZW5hYmxlZENo
YW5nZWQoQXVkaW9UcmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgYm9vbCBlbmFibGVkKQordm9p
ZCBBdWRpb1RyYWNrOjplbmFibGVkQ2hhbmdlZChib29sIGVuYWJsZWQpCiB7Ci0gICAgQVNTRVJU
X1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOworICAgIGlm
IChtX2VuYWJsZWQgPT0gZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9lbmFibGVk
ID0gZW5hYmxlZDsKIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmF1ZGlv
VHJhY2tFbmFibGVkQ2hhbmdlZCh0aGlzKTsKKyAgICAgICAgbV9jbGllbnQtPmF1ZGlvVHJhY2tF
bmFibGVkQ2hhbmdlZCgqdGhpcyk7CiB9CiAKLXZvaWQgQXVkaW9UcmFjazo6aWRDaGFuZ2VkKFRy
YWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCkKK3Zv
aWQgQXVkaW9UcmFjazo6aWRDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCiB7Ci0gICAg
QVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwog
ICAgIHNldElkKGlkKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjpsYWJlbENoYW5nZWQoVHJhY2tQ
cml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQordm9p
ZCBBdWRpb1RyYWNrOjpsYWJlbENoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkKIHsK
LSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0
ZSk7CiAgICAgc2V0TGFiZWwobGFiZWwpOwogfQogCi12b2lkIEF1ZGlvVHJhY2s6Omxhbmd1YWdl
Q2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbGFuZ3VhZ2UpCit2b2lkIEF1ZGlvVHJhY2s6Omxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9t
aWNTdHJpbmcmIGxhbmd1YWdlKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0
cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRMYW5ndWFnZShsYW5ndWFnZSk7CiB9
CiAKLXZvaWQgQXVkaW9UcmFjazo6d2lsbFJlbW92ZShUcmFja1ByaXZhdGVCYXNlKiB0cmFja1By
aXZhdGUpCit2b2lkIEF1ZGlvVHJhY2s6OndpbGxSZW1vdmUoKQogewotICAgIEFTU0VSVF9VTlVT
RUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBtZWRpYUVs
ZW1lbnQoKS0+cmVtb3ZlQXVkaW9UcmFjaygqdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9BdWRpb1RyYWNrLmgKaW5kZXggNjFjNWIyY2Q0Mjk4ZDU3NGY3ZjcxNWJjMWMxOTIwMDc5
MWRkMjNhYS4uMDdjNzc5NGZhMDkzZjZkMjhhMjk0MTczYjg1MzNiN2JjMmM5Yjk5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksOSArMjksNyBA
QAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAogI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRl
LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCIKICNpbmNsdWRlICJUcmFja0Jh
c2UuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC00MCwxMiArMzgsMTIgQEAgY2xhc3MgQXVkaW9UcmFjazsKIGNsYXNzIEF1ZGlv
VHJhY2tDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkF1ZGlvVHJhY2tDbGllbnQoKSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2sq
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1Ry
YWNrJikgPSAwOwogfTsKIAotY2xhc3MgQXVkaW9UcmFjayBmaW5hbCA6IHB1YmxpYyBNZWRpYVRy
YWNrQmFzZSwgcHVibGljIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50IHsKK2NsYXNzIEF1ZGlvVHJh
Y2sgZmluYWwgOiBwdWJsaWMgTWVkaWFUcmFja0Jhc2UsIHByaXZhdGUgQXVkaW9UcmFja1ByaXZh
dGVDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFjaz4gY3JlYXRlKEF1
ZGlvVHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4gdHJh
Y2tQcml2YXRlKQorICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFjaz4gY3JlYXRlKEF1ZGlvVHJhY2tD
bGllbnQmIGNsaWVudCwgQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEF1ZGlvVHJhY2soY2xpZW50LCB0cmFja1ByaXZh
dGUpKTsKICAgICB9CkBAIC01NywzOSArNTUsMzcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25z
dCBBdG9taWNTdHJpbmcmIG1haW5EZXNjS2V5d29yZCgpOwogICAgIHN0YXRpYyBjb25zdCBBdG9t
aWNTdHJpbmcmIHRyYW5zbGF0aW9uS2V5d29yZCgpOwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNT
dHJpbmcmIGNvbW1lbnRhcnlLZXl3b3JkKCk7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBkZWZh
dWx0S2luZEtleXdvcmQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBlbXB0eUF0b207IH0KIAot
ICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZW5hYmxlZDsgfQor
ICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZW5hYmxlZDsgfQogICAg
IHZvaWQgc2V0RW5hYmxlZChjb25zdCBib29sKTsKIAotICAgIHZvaWQgY2xlYXJDbGllbnQoKSBv
dmVycmlkZSB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQorICAgIHZvaWQgY2xlYXJDbGllbnQoKSBm
aW5hbCB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQogICAgIEF1ZGlvVHJhY2tDbGllbnQqIGNsaWVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKLSAgICBzaXplX3QgaW5iYW5kVHJhY2tJ
bmRleCgpOworICAgIHNpemVfdCBpbmJhbmRUcmFja0luZGV4KCkgY29uc3Q7CiAKLSAgICB2b2lk
IHNldFByaXZhdGUoUGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4pOwotCi1wcm90ZWN0ZWQ6
Ci0gICAgQXVkaW9UcmFjayhBdWRpb1RyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxBdWRpb1RyYWNr
UHJpdmF0ZT4pOworICAgIHZvaWQgc2V0UHJpdmF0ZShBdWRpb1RyYWNrUHJpdmF0ZSYpOwogCiBw
cml2YXRlOgotICAgIGJvb2wgaXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Qg
b3ZlcnJpZGU7CisgICAgQXVkaW9UcmFjayhBdWRpb1RyYWNrQ2xpZW50JiwgQXVkaW9UcmFja1By
aXZhdGUmKTsKKworICAgIGJvb2wgaXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgY29u
c3QgZmluYWw7CiAKICAgICAvLyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudAotICAgIHZvaWQgZW5h
YmxlZENoYW5nZWQoQXVkaW9UcmFja1ByaXZhdGUqLCBib29sKSBvdmVycmlkZTsKKyAgICB2b2lk
IGVuYWJsZWRDaGFuZ2VkKGJvb2wpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNs
aWVudAotICAgIHZvaWQgaWRDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNT
dHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNl
KiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYW5ndWFnZUNoYW5n
ZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAg
IHZvaWQgd2lsbFJlbW92ZShUcmFja1ByaXZhdGVCYXNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBp
ZENoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYWJlbENoYW5n
ZWQoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQo
Y29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7
CiAKICAgICB2b2lkIHVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpOwogCiAgICAgYm9vbCBtX2VuYWJs
ZWQ7CiAgICAgQXVkaW9UcmFja0NsaWVudCogbV9jbGllbnQ7CiAKLSAgICBSZWZQdHI8QXVkaW9U
cmFja1ByaXZhdGU+IG1fcHJpdmF0ZTsKKyAgICBSZWY8QXVkaW9UcmFja1ByaXZhdGU+IG1fcHJp
dmF0ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwCmluZGV4IGJlNThjYzgxMTliZmU2
ZDYwZjAzMGJhMDE5M2MwY2RlNTI4NDkxOTguLjZkOTU0MDFiNGViMzI3MjNlODI1MDM0MWU5NmU5
MWM0ZjNlOWQyN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5k
RGF0YVRleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRE
YXRhVGV4dFRyYWNrLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQ2FibGUgVGVsZXZpc2lvbiBMYWJzIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMywzNSArMzMsMzMgQEAKICNpbmNsdWRl
ICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPEluYmFuZERhdGFUZXh0VHJhY2s+IEluYmFu
ZERhdGFUZXh0VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBU
ZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+JiYg
dHJhY2tQcml2YXRlKQoraW5saW5lIEluYmFuZERhdGFUZXh0VHJhY2s6OkluYmFuZERhdGFUZXh0
VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50JiBj
bGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAgICA6IEluYmFu
ZFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBJbmJhbmREYXRhVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgV1RGTW92
ZSh0cmFja1ByaXZhdGUpKSk7CiB9CiAKLUluYmFuZERhdGFUZXh0VHJhY2s6OkluYmFuZERhdGFU
ZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50
KiBjbGllbnQsIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiYmIHRyYWNrUHJpdmF0ZSkK
LSAgICA6IEluYmFuZFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkKK1Jl
ZjxJbmJhbmREYXRhVGV4dFRyYWNrPiBJbmJhbmREYXRhVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50JiBjbGllbnQsIEluYmFu
ZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBJbmJhbmREYXRhVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKSk7
CiB9CiAKIEluYmFuZERhdGFUZXh0VHJhY2s6On5JbmJhbmREYXRhVGV4dFRyYWNrKCkKIHsKIH0K
IAotdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1By
aXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29u
c3Qgdm9pZCogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQordm9pZCBJbmJhbmREYXRhVGV4dFRyYWNr
OjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5k
LCBjb25zdCB2b2lkKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgYWRkQ3VlKERhdGFD
dWU6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBzdGFydCwgZW5kLCBkYXRhLCBs
ZW5ndGgpKTsKIH0KIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQogCi12b2lkIEluYmFuZERh
dGFUZXh0VHJhY2s6OmFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1l
ZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwcnBQbGF0Zm9ybVZhbHVlLCBjb25zdCBTdHJpbmcm
IHR5cGUpCit2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFU
aW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1S
ZXByZXNlbnRhdGlvbj4mJiBwbGF0Zm9ybVZhbHVlLCBjb25zdCBTdHJpbmcmIHR5cGUpCiB7Ci0g
ICAgUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwbGF0Zm9ybVZhbHVl
ID0gcHJwUGxhdGZvcm1WYWx1ZTsKLSAgICBpZiAobV9pbmNvbXBsZXRlQ3VlTWFwLmZpbmQocGxh
dGZvcm1WYWx1ZS5nZXQoKSkgIT0gbV9pbmNvbXBsZXRlQ3VlTWFwLmVuZCgpKQorICAgIGlmICht
X2luY29tcGxldGVDdWVNYXAuY29udGFpbnMocGxhdGZvcm1WYWx1ZS5wdHIoKSkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIGF1dG8gY3VlID0gRGF0YUN1ZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIHN0YXJ0LCBlbmQsIHBsYXRmb3JtVmFsdWUuY29weVJlZigpLCB0eXBlKTsK
QEAgLTc4LDI1ICs3NiwxOSBAQCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OmFkZERhdGFDdWUo
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgcwogICAgIGFkZEN1ZShX
VEZNb3ZlKGN1ZSkpOwogfQogCi12b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFD
dWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0
IE1lZGlhVGltZSYgaW5FbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50
YXRpb24+IHBycFBsYXRmb3JtVmFsdWUpCit2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0
ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBpbkVuZCwg
U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24mIHBsYXRmb3JtVmFsdWUpCiB7Ci0gICAg
TWVkaWFUaW1lIGVuZCA9IGluRW5kOwotCi0gICAgUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJl
cHJlc2VudGF0aW9uPiBwbGF0Zm9ybVZhbHVlID0gcHJwUGxhdGZvcm1WYWx1ZTsKLSAgICBhdXRv
IGl0ZXIgPSBtX2luY29tcGxldGVDdWVNYXAuZmluZChwbGF0Zm9ybVZhbHVlLmdldCgpKTsKLSAg
ICBpZiAoaXRlciA9PSBtX2luY29tcGxldGVDdWVNYXAuZW5kKCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIFJlZlB0cjxEYXRhQ3VlPiBjdWUgPSBpdGVyLT52YWx1ZTsKKyAgICBSZWZQdHI8RGF0
YUN1ZT4gY3VlID0gbV9pbmNvbXBsZXRlQ3VlTWFwLmdldCgmcGxhdGZvcm1WYWx1ZSk7CiAgICAg
aWYgKCFjdWUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGN1ZS0+d2lsbENoYW5nZSgpOwogCisg
ICAgTWVkaWFUaW1lIGVuZCA9IGluRW5kOwogICAgIGlmIChlbmQuaXNQb3NpdGl2ZUluZmluaXRl
KCkgJiYgbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIGVuZCA9IG1lZGlhRWxlbWVudCgpLT5kdXJh
dGlvbk1lZGlhVGltZSgpOwogICAgIGVsc2UKLSAgICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLnJl
bW92ZShwbGF0Zm9ybVZhbHVlLmdldCgpKTsKKyAgICAgICAgbV9pbmNvbXBsZXRlQ3VlTWFwLnJl
bW92ZSgmcGxhdGZvcm1WYWx1ZSk7CiAKICAgICBMT0coTWVkaWEsICJJbmJhbmREYXRhVGV4dFRy
YWNrOjp1cGRhdGVEYXRhQ3VlOiB3YXMgc3RhcnQ9JXMsIGVuZD0lcywgd2lsbCBiZSBzdGFydD0l
cywgZW5kPSVzXG4iLCB0b1N0cmluZyhjdWUtPnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCB0
b1N0cmluZyhjdWUtPmVuZFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoc3RhcnQpLnV0
ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGVuZCkudXRmOCgpLmRhdGEoKSk7CiAKQEAgLTEwNiwxNCAr
OTgsOSBAQCB2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWUoSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZQogICAgIGN1ZS0+ZGlkQ2hhbmdlKCk7CiB9
CiAKLXZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6cmVtb3ZlRGF0YUN1ZShJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUGFzc1JlZlB0
cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcHJwUGxhdGZvcm1WYWx1ZSkKK3Zv
aWQgSW5iYW5kRGF0YVRleHRUcmFjazo6cmVtb3ZlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmLCBj
b25zdCBNZWRpYVRpbWUmLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbiYgcGxhdGZv
cm1WYWx1ZSkKIHsKLSAgICBSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+
IHBsYXRmb3JtVmFsdWUgPSBwcnBQbGF0Zm9ybVZhbHVlOwotICAgIGF1dG8gaXRlciA9IG1faW5j
b21wbGV0ZUN1ZU1hcC5maW5kKHBsYXRmb3JtVmFsdWUuZ2V0KCkpOwotICAgIGlmIChpdGVyID09
IG1faW5jb21wbGV0ZUN1ZU1hcC5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKFJl
ZlB0cjxEYXRhQ3VlPiBjdWUgPSBpdGVyLT52YWx1ZSkgeworICAgIGlmIChhdXRvKiBjdWUgPSBt
X2luY29tcGxldGVDdWVNYXAuZ2V0KCZwbGF0Zm9ybVZhbHVlKSkgewogICAgICAgICBMT0coTWVk
aWEsICJJbmJhbmREYXRhVGV4dFRyYWNrOjpyZW1vdmVEYXRhQ3VlIHJlbW92aW5nIGN1ZTogc3Rh
cnQ9JXMsIGVuZD0lc1xuIiwgdG9TdHJpbmcoY3VlLT5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEo
KSwgdG9TdHJpbmcoY3VlLT5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZW1v
dmVDdWUoKmN1ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9JbmJhbmREYXRhVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFu
ZERhdGFUZXh0VHJhY2suaAppbmRleCAyN2E4ZGI2MTY5ZDBiNDc2YzU0ZDMyZTQ4MTQyODYyMWRi
MmEzMDgzLi42N2FlYjZkMDUxNzRiODRjMDdhNTM2ZDM5YzIzYWExODIzODc2NGY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaApAQCAtMSw2
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQ2FibGUgVGVsZXZpc2lvbiBMYWJz
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMzLDIzICszMywyMSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEYXRh
Q3VlOwotY2xhc3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTsKLWNsYXNzIFNlcmlhbGl6ZWRQbGF0
Zm9ybVJlcHJlc2VudGF0aW9uOwogCiBjbGFzcyBJbmJhbmREYXRhVGV4dFRyYWNrIGZpbmFsIDog
cHVibGljIEluYmFuZFRleHRUcmFjayB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbmJhbmRE
YXRhVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0Ns
aWVudCosIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiYmKTsKKyAgICBzdGF0aWMgUmVm
PEluYmFuZERhdGFUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGV4
dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogICAgIHZpcnR1YWwgfklu
YmFuZERhdGFUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKLSAgICBJbmJhbmREYXRhVGV4dFRyYWNr
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZT4mJik7CisgICAgSW5iYW5kRGF0YVRleHRUcmFjayhTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYp
OwogCi0gICAgdm9pZCBhZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBN
ZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9pZCosIHVuc2ln
bmVkKSBmaW5hbDsKKyAgICB2b2lkIGFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwg
Y29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkgZmluYWw7CiAKICNp
ZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLSAgICB2b2lkIGFkZERhdGFDdWUoSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5k
LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiwgY29uc3QgU3Ry
aW5nJikgZmluYWw7Ci0gICAgdm9pZCB1cGRhdGVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZh
dGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1Jl
ZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4pIGZpbmFsOwotICAgIHZvaWQg
cmVtb3ZlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBz
dGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3Jt
UmVwcmVzZW50YXRpb24+KSBmaW5hbDsKKyAgICB2b2lkIGFkZERhdGFDdWUoY29uc3QgTWVkaWFU
aW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFJlZjxTZXJpYWxpemVkUGxhdGZvcm1S
ZXByZXNlbnRhdGlvbj4mJiwgY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCB1cGRhdGVE
YXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJp
YWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbiYpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlRGF0
YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFs
aXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24mKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lk
PiByZW1vdmVDdWUoVGV4dFRyYWNrQ3VlJikgZmluYWw7CiAKICAgICBIYXNoTWFwPFJlZlB0cjxT
ZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4sIFJlZlB0cjxEYXRhQ3VlPj4gbV9pbmNv
bXBsZXRlQ3VlTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJh
bmRHZW5lcmljVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5k
R2VuZXJpY1RleHRUcmFjay5jcHAKaW5kZXggMDkxYTVkMmIxODUyNjBiNThmNjhlMmZiY2Y4OWI4
NzZjNzU2NWMyZS4uOTg2NzliMzYwMzkxZjA1ODA4MWZjZTk1OTU4MDcxNDMyNmFjYjRmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNr
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJh
Y2suY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0IEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTY1LDEwMiArNjUsOTkgQEAgdm9pZCBHZW5lcmljVGV4dFRyYWNrQ3VlTWFw
OjpyZW1vdmUoVGV4dFRyYWNrQ3VlJiBjdWUpCiAgICAgICAgIG1fZGF0YVRvQ3VlTWFwLnJlbW92
ZShkYXRhKTsKIH0KIAotUmVmPEluYmFuZEdlbmVyaWNUZXh0VHJhY2s+IEluYmFuZEdlbmVyaWNU
ZXh0VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJh
Y2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiBwbGF5
ZXJQcml2YXRlKQoraW5saW5lIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OkluYmFuZEdlbmVyaWNU
ZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50
JiBjbGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAgICA6IElu
YmFuZFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBJbmJhbmRHZW5lcmljVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwg
cGxheWVyUHJpdmF0ZSkpOwogfQogCi1JbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpJbmJhbmRHZW5l
cmljVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0Ns
aWVudCogY2xpZW50LCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHRyYWNrUHJp
dmF0ZSkKLSAgICA6IEluYmFuZFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0
ZSkKK1JlZjxJbmJhbmRHZW5lcmljVGV4dFRyYWNrPiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50JiBj
bGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBJbmJhbmRHZW5lcmljVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwg
dHJhY2tQcml2YXRlKSk7CiB9CiAKIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6On5JbmJhbmRHZW5l
cmljVGV4dFRyYWNrKCkKIHsKIH0KIAotdm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp1cGRh
dGVDdWVGcm9tQ3VlRGF0YShUZXh0VHJhY2tDdWVHZW5lcmljKiBjdWUsIEdlbmVyaWNDdWVEYXRh
KiBjdWVEYXRhKQordm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVDdWVGcm9tQ3Vl
RGF0YShUZXh0VHJhY2tDdWVHZW5lcmljJiBjdWUsIEdlbmVyaWNDdWVEYXRhJiBjdWVEYXRhKQog
ewotICAgIGN1ZS0+d2lsbENoYW5nZSgpOworICAgIGN1ZS53aWxsQ2hhbmdlKCk7CiAKLSAgICBj
dWUtPnNldFN0YXJ0VGltZShjdWVEYXRhLT5zdGFydFRpbWUoKSk7Ci0gICAgTWVkaWFUaW1lIGVu
ZFRpbWUgPSBjdWVEYXRhLT5lbmRUaW1lKCk7CisgICAgY3VlLnNldFN0YXJ0VGltZShjdWVEYXRh
LnN0YXJ0VGltZSgpKTsKKyAgICBNZWRpYVRpbWUgZW5kVGltZSA9IGN1ZURhdGEuZW5kVGltZSgp
OwogICAgIGlmIChlbmRUaW1lLmlzUG9zaXRpdmVJbmZpbml0ZSgpICYmIG1lZGlhRWxlbWVudCgp
KQogICAgICAgICBlbmRUaW1lID0gbWVkaWFFbGVtZW50KCktPmR1cmF0aW9uTWVkaWFUaW1lKCk7
Ci0gICAgY3VlLT5zZXRFbmRUaW1lKGVuZFRpbWUpOwotICAgIGN1ZS0+c2V0VGV4dChjdWVEYXRh
LT5jb250ZW50KCkpOwotICAgIGN1ZS0+c2V0SWQoY3VlRGF0YS0+aWQoKSk7Ci0gICAgY3VlLT5z
ZXRCYXNlRm9udFNpemVSZWxhdGl2ZVRvVmlkZW9IZWlnaHQoY3VlRGF0YS0+YmFzZUZvbnRTaXpl
KCkpOwotICAgIGN1ZS0+c2V0Rm9udFNpemVNdWx0aXBsaWVyKGN1ZURhdGEtPnJlbGF0aXZlRm9u
dFNpemUoKSk7Ci0gICAgY3VlLT5zZXRGb250TmFtZShjdWVEYXRhLT5mb250TmFtZSgpKTsKLQot
ICAgIGlmIChjdWVEYXRhLT5wb3NpdGlvbigpID4gMCkKLSAgICAgICAgY3VlLT5zZXRQb3NpdGlv
bihzdGQ6OnJvdW5kKGN1ZURhdGEtPnBvc2l0aW9uKCkpKTsKLSAgICBpZiAoY3VlRGF0YS0+bGlu
ZSgpID4gMCkKLSAgICAgICAgY3VlLT5zZXRMaW5lKHN0ZDo6cm91bmQoY3VlRGF0YS0+bGluZSgp
KSk7Ci0gICAgaWYgKGN1ZURhdGEtPnNpemUoKSA+IDApCi0gICAgICAgIGN1ZS0+c2V0U2l6ZShz
dGQ6OnJvdW5kKGN1ZURhdGEtPnNpemUoKSkpOwotICAgIGlmIChjdWVEYXRhLT5iYWNrZ3JvdW5k
Q29sb3IoKS5pc1ZhbGlkKCkpCi0gICAgICAgIGN1ZS0+c2V0QmFja2dyb3VuZENvbG9yKGN1ZURh
dGEtPmJhY2tncm91bmRDb2xvcigpLnJnYigpKTsKLSAgICBpZiAoY3VlRGF0YS0+Zm9yZWdyb3Vu
ZENvbG9yKCkuaXNWYWxpZCgpKQotICAgICAgICBjdWUtPnNldEZvcmVncm91bmRDb2xvcihjdWVE
YXRhLT5mb3JlZ3JvdW5kQ29sb3IoKS5yZ2IoKSk7Ci0gICAgaWYgKGN1ZURhdGEtPmhpZ2hsaWdo
dENvbG9yKCkuaXNWYWxpZCgpKQotICAgICAgICBjdWUtPnNldEhpZ2hsaWdodENvbG9yKGN1ZURh
dGEtPmhpZ2hsaWdodENvbG9yKCkucmdiKCkpOwotCi0gICAgaWYgKGN1ZURhdGEtPmFsaWduKCkg
PT0gR2VuZXJpY0N1ZURhdGE6OlN0YXJ0KQotICAgICAgICBjdWUtPnNldEFsaWduKEFTQ0lJTGl0
ZXJhbCgic3RhcnQiKSk7Ci0gICAgZWxzZSBpZiAoY3VlRGF0YS0+YWxpZ24oKSA9PSBHZW5lcmlj
Q3VlRGF0YTo6TWlkZGxlKQotICAgICAgICBjdWUtPnNldEFsaWduKEFTQ0lJTGl0ZXJhbCgibWlk
ZGxlIikpOwotICAgIGVsc2UgaWYgKGN1ZURhdGEtPmFsaWduKCkgPT0gR2VuZXJpY0N1ZURhdGE6
OkVuZCkKLSAgICAgICAgY3VlLT5zZXRBbGlnbihBU0NJSUxpdGVyYWwoImVuZCIpKTsKLSAgICBj
dWUtPnNldFNuYXBUb0xpbmVzKGZhbHNlKTsKLQotICAgIGN1ZS0+ZGlkQ2hhbmdlKCk7Ci19Ci0K
LXZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIFBhc3NSZWZQdHI8R2VuZXJpY0N1ZURhdGE+IHBycEN1
ZURhdGEpCi17Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9
PSBtX3ByaXZhdGUpOwotCi0gICAgUmVmUHRyPEdlbmVyaWNDdWVEYXRhPiBjdWVEYXRhID0gcHJw
Q3VlRGF0YTsKLSAgICBpZiAobV9jdWVNYXAuZmluZCgqY3VlRGF0YSkpCisgICAgY3VlLnNldEVu
ZFRpbWUoZW5kVGltZSk7CisgICAgY3VlLnNldFRleHQoY3VlRGF0YS5jb250ZW50KCkpOworICAg
IGN1ZS5zZXRJZChjdWVEYXRhLmlkKCkpOworICAgIGN1ZS5zZXRCYXNlRm9udFNpemVSZWxhdGl2
ZVRvVmlkZW9IZWlnaHQoY3VlRGF0YS5iYXNlRm9udFNpemUoKSk7CisgICAgY3VlLnNldEZvbnRT
aXplTXVsdGlwbGllcihjdWVEYXRhLnJlbGF0aXZlRm9udFNpemUoKSk7CisgICAgY3VlLnNldEZv
bnROYW1lKGN1ZURhdGEuZm9udE5hbWUoKSk7CisKKyAgICBpZiAoY3VlRGF0YS5wb3NpdGlvbigp
ID4gMCkKKyAgICAgICAgY3VlLnNldFBvc2l0aW9uKHN0ZDo6cm91bmQoY3VlRGF0YS5wb3NpdGlv
bigpKSk7CisgICAgaWYgKGN1ZURhdGEubGluZSgpID4gMCkKKyAgICAgICAgY3VlLnNldExpbmUo
c3RkOjpyb3VuZChjdWVEYXRhLmxpbmUoKSkpOworICAgIGlmIChjdWVEYXRhLnNpemUoKSA+IDAp
CisgICAgICAgIGN1ZS5zZXRTaXplKHN0ZDo6cm91bmQoY3VlRGF0YS5zaXplKCkpKTsKKyAgICBp
ZiAoY3VlRGF0YS5iYWNrZ3JvdW5kQ29sb3IoKS5pc1ZhbGlkKCkpCisgICAgICAgIGN1ZS5zZXRC
YWNrZ3JvdW5kQ29sb3IoY3VlRGF0YS5iYWNrZ3JvdW5kQ29sb3IoKS5yZ2IoKSk7CisgICAgaWYg
KGN1ZURhdGEuZm9yZWdyb3VuZENvbG9yKCkuaXNWYWxpZCgpKQorICAgICAgICBjdWUuc2V0Rm9y
ZWdyb3VuZENvbG9yKGN1ZURhdGEuZm9yZWdyb3VuZENvbG9yKCkucmdiKCkpOworICAgIGlmIChj
dWVEYXRhLmhpZ2hsaWdodENvbG9yKCkuaXNWYWxpZCgpKQorICAgICAgICBjdWUuc2V0SGlnaGxp
Z2h0Q29sb3IoY3VlRGF0YS5oaWdobGlnaHRDb2xvcigpLnJnYigpKTsKKworICAgIGlmIChjdWVE
YXRhLmFsaWduKCkgPT0gR2VuZXJpY0N1ZURhdGE6OlN0YXJ0KQorICAgICAgICBjdWUuc2V0QWxp
Z24oQVNDSUlMaXRlcmFsKCJzdGFydCIpKTsKKyAgICBlbHNlIGlmIChjdWVEYXRhLmFsaWduKCkg
PT0gR2VuZXJpY0N1ZURhdGE6Ok1pZGRsZSkKKyAgICAgICAgY3VlLnNldEFsaWduKEFTQ0lJTGl0
ZXJhbCgibWlkZGxlIikpOworICAgIGVsc2UgaWYgKGN1ZURhdGEuYWxpZ24oKSA9PSBHZW5lcmlj
Q3VlRGF0YTo6RW5kKQorICAgICAgICBjdWUuc2V0QWxpZ24oQVNDSUlMaXRlcmFsKCJlbmQiKSk7
CisgICAgY3VlLnNldFNuYXBUb0xpbmVzKGZhbHNlKTsKKworICAgIGN1ZS5kaWRDaGFuZ2UoKTsK
K30KKwordm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjphZGRHZW5lcmljQ3VlKEdlbmVyaWND
dWVEYXRhJiBjdWVEYXRhKQoreworICAgIGlmIChtX2N1ZU1hcC5maW5kKGN1ZURhdGEpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBhdXRvIGN1ZSA9IFRleHRUcmFja0N1ZUdlbmVyaWM6OmNyZWF0
ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBjdWVEYXRhLT5zdGFydFRpbWUoKSwgY3VlRGF0
YS0+ZW5kVGltZSgpLCBjdWVEYXRhLT5jb250ZW50KCkpOwotICAgIHVwZGF0ZUN1ZUZyb21DdWVE
YXRhKGN1ZS5wdHIoKSwgY3VlRGF0YS5nZXQoKSk7CisgICAgYXV0byBjdWUgPSBUZXh0VHJhY2tD
dWVHZW5lcmljOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgY3VlRGF0YS5zdGFy
dFRpbWUoKSwgY3VlRGF0YS5lbmRUaW1lKCksIGN1ZURhdGEuY29udGVudCgpKTsKKyAgICB1cGRh
dGVDdWVGcm9tQ3VlRGF0YShjdWUuZ2V0KCksIGN1ZURhdGEpOwogICAgIGlmIChoYXNDdWUoY3Vl
LnB0cigpLCBUZXh0VHJhY2tDdWU6Oklnbm9yZUR1cmF0aW9uKSkgewotICAgICAgICBMT0coTWVk
aWEsICJJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjphZGRHZW5lcmljQ3VlIGlnbm9yaW5nIGFscmVh
ZHkgYWRkZWQgY3VlOiBzdGFydD0lcywgZW5kPSVzLCBjb250ZW50PVwiJXNcIlxuIiwgdG9TdHJp
bmcoY3VlRGF0YS0+c3RhcnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZURhdGEt
PmVuZFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS0+Y29udGVudCgpLnV0ZjgoKS5kYXRh
KCkpOworICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjphZGRHZW5l
cmljQ3VlIGlnbm9yaW5nIGFscmVhZHkgYWRkZWQgY3VlOiBzdGFydD0lcywgZW5kPSVzLCBjb250
ZW50PVwiJXNcIlxuIiwgdG9TdHJpbmcoY3VlRGF0YS5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEo
KSwgdG9TdHJpbmcoY3VlRGF0YS5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEuY29u
dGVudCgpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgTE9H
KE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSBhZGRlZCBjdWU6
IHN0YXJ0PSUuMmYsIGVuZD0lLjJmLCBjb250ZW50PVwiJXNcIlxuIiwgY3VlRGF0YS0+c3RhcnRU
aW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS0+ZW5kVGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEt
PmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBMT0coTWVkaWEsICJJbmJhbmRHZW5lcmlj
VGV4dFRyYWNrOjphZGRHZW5lcmljQ3VlIGFkZGVkIGN1ZTogc3RhcnQ9JS4yZiwgZW5kPSUuMmYs
IGNvbnRlbnQ9XCIlc1wiXG4iLCBjdWVEYXRhLnN0YXJ0VGltZSgpLnRvRG91YmxlKCksIGN1ZURh
dGEuZW5kVGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEuY29udGVudCgpLnV0ZjgoKS5kYXRhKCkp
OwogCi0gICAgaWYgKGN1ZURhdGEtPnN0YXR1cygpICE9IEdlbmVyaWNDdWVEYXRhOjpDb21wbGV0
ZSkKLSAgICAgICAgbV9jdWVNYXAuYWRkKCpjdWVEYXRhLCBjdWUpOworICAgIGlmIChjdWVEYXRh
LnN0YXR1cygpICE9IEdlbmVyaWNDdWVEYXRhOjpDb21wbGV0ZSkKKyAgICAgICAgbV9jdWVNYXAu
YWRkKGN1ZURhdGEsIGN1ZSk7CiAKICAgICBhZGRDdWUoV1RGTW92ZShjdWUpKTsKIH0KIAotdm9p
ZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFj
a1ByaXZhdGUqLCBHZW5lcmljQ3VlRGF0YSogY3VlRGF0YSkKK3ZvaWQgSW5iYW5kR2VuZXJpY1Rl
eHRUcmFjazo6dXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYgY3VlRGF0YSkKIHsKLSAg
ICBhdXRvKiBjdWUgPSBtX2N1ZU1hcC5maW5kKCpjdWVEYXRhKTsKKyAgICBhdXRvKiBjdWUgPSBt
X2N1ZU1hcC5maW5kKGN1ZURhdGEpOwogICAgIGlmICghY3VlKQogICAgICAgICByZXR1cm47CiAK
LSAgICB1cGRhdGVDdWVGcm9tQ3VlRGF0YShjdWUsIGN1ZURhdGEpOworICAgIHVwZGF0ZUN1ZUZy
b21DdWVEYXRhKCpjdWUsIGN1ZURhdGEpOwogCi0gICAgaWYgKGN1ZURhdGEtPnN0YXR1cygpID09
IEdlbmVyaWNDdWVEYXRhOjpDb21wbGV0ZSkKLSAgICAgICAgbV9jdWVNYXAucmVtb3ZlKCpjdWVE
YXRhKTsKKyAgICBpZiAoY3VlRGF0YS5zdGF0dXMoKSA9PSBHZW5lcmljQ3VlRGF0YTo6Q29tcGxl
dGUpCisgICAgICAgIG1fY3VlTWFwLnJlbW92ZShjdWVEYXRhKTsKIH0KIAotdm9pZCBJbmJhbmRH
ZW5lcmljVGV4dFRyYWNrOjpyZW1vdmVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUq
LCBHZW5lcmljQ3VlRGF0YSogY3VlRGF0YSkKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6
cmVtb3ZlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYgY3VlRGF0YSkKIHsKLSAgICBhdXRvKiBj
dWUgPSBtX2N1ZU1hcC5maW5kKCpjdWVEYXRhKTsKKyAgICBhdXRvKiBjdWUgPSBtX2N1ZU1hcC5m
aW5kKGN1ZURhdGEpOwogICAgIGlmIChjdWUpIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5k
R2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1ZSByZW1vdmluZyBjdWU6IHN0YXJ0PSVz
LCBlbmQ9JXMsIGNvbnRlbnQ9XCIlc1wiXG4iLCAgdG9TdHJpbmcoY3VlRGF0YS0+c3RhcnRUaW1l
KCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZURhdGEtPmVuZFRpbWUoKSkudXRmOCgpLmRh
dGEoKSwgY3VlRGF0YS0+Y29udGVudCgpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0coTWVk
aWEsICJJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpyZW1vdmVHZW5lcmljQ3VlIHJlbW92aW5nIGN1
ZTogc3RhcnQ9JXMsIGVuZD0lcywgY29udGVudD1cIiVzXCJcbiIsICB0b1N0cmluZyhjdWVEYXRh
LnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWVEYXRhLmVuZFRpbWUoKSku
dXRmOCgpLmRhdGEoKSwgY3VlRGF0YS5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAg
IHJlbW92ZUN1ZSgqY3VlKTsKICAgICB9IGVsc2UgewotICAgICAgICBMT0coTWVkaWEsICJJbmJh
bmRHZW5lcmljVGV4dFRyYWNrOjpyZW1vdmVHZW5lcmljQ3VlIFVOQUJMRSB0byBmaW5kIGN1ZTog
c3RhcnQ9JS4yZiwgZW5kPSUuMmYsIGNvbnRlbnQ9XCIlc1wiXG4iLCBjdWVEYXRhLT5zdGFydFRp
bWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLT5lbmRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS0+
Y29udGVudCgpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRHZW5l
cmljVGV4dFRyYWNrOjpyZW1vdmVHZW5lcmljQ3VlIFVOQUJMRSB0byBmaW5kIGN1ZTogc3RhcnQ9
JS4yZiwgZW5kPSUuMmYsIGNvbnRlbnQ9XCIlc1wiXG4iLCBjdWVEYXRhLnN0YXJ0VGltZSgpLnRv
RG91YmxlKCksIGN1ZURhdGEuZW5kVGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEuY29udGVudCgp
LnV0ZjgoKS5kYXRhKCkpOwogICAgIH0KIH0KIApAQCAtMTc5LDE1ICsxNzYsMTMgQEAgV2ViVlRU
UGFyc2VyJiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpwYXJzZXIoKQogICAgIHJldHVybiAqbV93
ZWJWVFRQYXJzZXI7CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cGFyc2VXZWJW
VFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgY29uc3QgSVNP
V2ViVlRUQ3VlJiBjdWVEYXRhKQordm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpwYXJzZVdl
YlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJiBjdWVEYXRhKQogewotICAgIEFTU0VSVF9V
TlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBwYXJz
ZXIoKS5wYXJzZUN1ZURhdGEoY3VlRGF0YSk7CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRU
cmFjazo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKEluYmFuZFRleHRUcmFja1ByaXZhdGUqIHRyYWNr
UHJpdmF0ZSwgU3RyaW5nJiYgaGVhZGVyKQordm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpw
YXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYgaGVhZGVyKQogewotICAgIEFTU0VSVF9VTlVT
RUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBwYXJzZXIo
KS5wYXJzZUZpbGVIZWFkZXIoV1RGTW92ZShoZWFkZXIpKTsKIH0KIApAQCAtMjE0LDcgKzIwOSw3
IEBAIHZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6bmV3UmVnaW9uc1BhcnNlZCgpCiAKICAg
ICBmb3IgKGF1dG8mIHJlZ2lvbiA6IG5ld1JlZ2lvbnMpIHsKICAgICAgICAgcmVnaW9uLT5zZXRU
cmFjayh0aGlzKTsKLSAgICAgICAgcmVnaW9ucygpLT5hZGQocmVnaW9uKTsKKyAgICAgICAgcmVn
aW9ucygpLT5hZGQocmVnaW9uLnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suaAppbmRl
eCAxYzM0OGIyZGE1NTEwM2ViYmZjYTg3OGQ0MGI3ZjkwNzg5YmQ0NDYzLi5lNWZlYjI1NGJiZTJm
OWEzYmYyNjg4NWZjOGYzZDJhYmVkZDc1Yjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDkgKzMzLDYgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEb2N1bWVudDsKLWNsYXNzIEluYmFuZFRleHRU
cmFja1ByaXZhdGU7Ci0KIGNsYXNzIEdlbmVyaWNUZXh0VHJhY2tDdWVNYXAgewogcHVibGljOgog
ICAgIHZvaWQgYWRkKEdlbmVyaWNDdWVEYXRhJiwgVGV4dFRyYWNrQ3VlR2VuZXJpYyYpOwpAQCAt
NTYsMjMgKzUzLDIyIEBAIHByaXZhdGU6CiAKIGNsYXNzIEluYmFuZEdlbmVyaWNUZXh0VHJhY2sg
ZmluYWwgOiBwdWJsaWMgSW5iYW5kVGV4dFRyYWNrLCBwcml2YXRlIFdlYlZUVFBhcnNlckNsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbmJhbmRHZW5lcmljVGV4dFRyYWNrPiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHN0YXRpYyBSZWY8SW5iYW5kR2VuZXJpY1Rl
eHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQm
LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CiAgICAgdmlydHVhbCB+SW5iYW5kR2VuZXJpY1Rl
eHRUcmFjaygpOwogCiBwcml2YXRlOgotICAgIEluYmFuZEdlbmVyaWNUZXh0VHJhY2soU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZT4pOworICAgIEluYmFuZEdlbmVyaWNUZXh0VHJhY2soU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIFRleHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsK
IAotICAgIHZvaWQgYWRkR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgUGFzc1Jl
ZlB0cjxHZW5lcmljQ3VlRGF0YT4pIGZpbmFsOwotICAgIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqKSBmaW5hbDsKLSAgICB2b2lk
IHJlbW92ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRh
KikgZmluYWw7CisgICAgdm9pZCBhZGRHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgZmluYWw7
CisgICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgZmluYWw7CisgICAg
dm9pZCByZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgZmluYWw7CiAgICAgRXhjZXB0
aW9uT3I8dm9pZD4gcmVtb3ZlQ3VlKFRleHRUcmFja0N1ZSYpIGZpbmFsOwogCi0gICAgUGFzc1Jl
ZlB0cjxUZXh0VHJhY2tDdWVHZW5lcmljPiBjcmVhdGVDdWUoUGFzc1JlZlB0cjxHZW5lcmljQ3Vl
RGF0YT4pOwotICAgIHZvaWQgdXBkYXRlQ3VlRnJvbUN1ZURhdGEoVGV4dFRyYWNrQ3VlR2VuZXJp
YyosIEdlbmVyaWNDdWVEYXRhKik7CisgICAgdm9pZCB1cGRhdGVDdWVGcm9tQ3VlRGF0YShUZXh0
VHJhY2tDdWVHZW5lcmljJiwgR2VuZXJpY0N1ZURhdGEmKTsKIAogICAgIFdlYlZUVFBhcnNlciYg
cGFyc2VyKCk7Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSosIGNvbnN0IElTT1dlYlZUVEN1ZSYpIGZpbmFsOwotICAgIHZvaWQgcGFyc2VXZWJWVFRG
aWxlSGVhZGVyKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBTdHJpbmcmJikgZmluYWw7CisgICAg
dm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJikgZmluYWw7CisgICAg
dm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYpIGZpbmFsOwogCiAgICAgdm9pZCBu
ZXdDdWVzUGFyc2VkKCkgZmluYWw7CiAgICAgdm9pZCBuZXdSZWdpb25zUGFyc2VkKCkgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAKaW5kZXgg
ZjJlZWVhZTBmYzAwOTRlNDI4YTg3YTY1ZDE4MzE3ZDNjZmY0NDA3OS4uYmQ2NWU1NDhhODc2MjI5
MGE1MTBkM2Q3ZjkyYzFhYWIxNjk0OTJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svSW5iYW5kVGV4dFRyYWNrLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsNDMgKzI0LDM0IEBACiAgKi8KIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkluYmFuZFRleHRUcmFjay5oIgogCiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQogCi0jaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrLmgiCi0KLSNpbmNsdWRlICJE
b2N1bWVudC5oIgotI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkluYmFuZERhdGFUZXh0VHJhY2suaCIKICNpbmNsdWRlICJJbmJhbmRH
ZW5lcmljVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oIgog
I2luY2x1ZGUgIkluYmFuZFdlYlZUVFRleHRUcmFjay5oIgotI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
LSNpbmNsdWRlICJUZXh0VHJhY2tDdWVMaXN0LmgiCi0jaW5jbHVkZSA8bWF0aC5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVm
UHRyPEluYmFuZFRleHRUcmFjaz4gSW5iYW5kVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwKLSAgICBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1Jl
ZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCitSZWY8SW5iYW5kVGV4
dFRyYWNrPiBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYg
dHJhY2tQcml2YXRlKQogewotICAgIHN3aXRjaCAodHJhY2tQcml2YXRlLT5jdWVGb3JtYXQoKSkg
eworICAgIHN3aXRjaCAodHJhY2tQcml2YXRlLmN1ZUZvcm1hdCgpKSB7CiAgICAgY2FzZSBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlOjpEYXRhOgogICAgICAgICByZXR1cm4gSW5iYW5kRGF0YVRleHRU
cmFjazo6Y3JlYXRlKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKTsKICAgICBjYXNlIElu
YmFuZFRleHRUcmFja1ByaXZhdGU6OkdlbmVyaWM6CiAgICAgICAgIHJldHVybiBJbmJhbmRHZW5l
cmljVGV4dFRyYWNrOjpjcmVhdGUoY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpOwogICAg
IGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6V2ViVlRUOgogICAgICAgICByZXR1cm4gSW5i
YW5kV2ViVlRUVGV4dFRyYWNrOjpjcmVhdGUoY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUp
OwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBy
ZXR1cm4gMDsKICAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIElu
YmFuZERhdGFUZXh0VHJhY2s6OmNyZWF0ZShjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSk7
CiB9CiAKLUluYmFuZFRleHRUcmFjazo6SW5iYW5kVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPEluYmFu
ZFRleHRUcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKLSAgICA6IFRleHRUcmFjayhjb250ZXh0
LCBjbGllbnQsIGVtcHR5QXRvbSwgdHJhY2tQcml2YXRlLT5pZCgpLCB0cmFja1ByaXZhdGUtPmxh
YmVsKCksIHRyYWNrUHJpdmF0ZS0+bGFuZ3VhZ2UoKSwgSW5CYW5kKQorSW5iYW5kVGV4dFRyYWNr
OjpJbmJhbmRUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4dFRy
YWNrQ2xpZW50JiBjbGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkK
KyAgICA6IFRleHRUcmFjaygmY29udGV4dCwgJmNsaWVudCwgZW1wdHlBdG9tLCB0cmFja1ByaXZh
dGUuaWQoKSwgdHJhY2tQcml2YXRlLmxhYmVsKCksIHRyYWNrUHJpdmF0ZS5sYW5ndWFnZSgpLCBJ
bkJhbmQpCiAgICAgLCBtX3ByaXZhdGUodHJhY2tQcml2YXRlKQogewogICAgIG1fcHJpdmF0ZS0+
c2V0Q2xpZW50KHRoaXMpOwpAQCAtNzIsMTIgKzYzLDkgQEAgSW5iYW5kVGV4dFRyYWNrOjp+SW5i
YW5kVGV4dFRyYWNrKCkKICAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKIH0KIAot
dm9pZCBJbmJhbmRUZXh0VHJhY2s6OnNldFByaXZhdGUoUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCit2b2lkIEluYmFuZFRleHRUcmFjazo6c2V0UHJpdmF0
ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiB7Ci0gICAgQVNTRVJUKG1f
cHJpdmF0ZSk7Ci0gICAgQVNTRVJUKHRyYWNrUHJpdmF0ZSk7Ci0KLSAgICBpZiAobV9wcml2YXRl
ID09IHRyYWNrUHJpdmF0ZSkKKyAgICBpZiAobV9wcml2YXRlLnB0cigpID09ICZ0cmFja1ByaXZh
dGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIp
OwpAQCAtMTE1LDgwICsxMDMsNjAgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2s6OnNldE1vZGVJbnRl
cm5hbChNb2RlIG1vZGUpCiAKIGJvb2wgSW5iYW5kVGV4dFRyYWNrOjppc0Nsb3NlZENhcHRpb25z
KCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNDbG9zZWRDYXB0aW9ucygpOwogfQogCiBib29sIElu
YmFuZFRleHRUcmFjazo6aXNTREgoKSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRlKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNTREgoKTsK
IH0KIAogYm9vbCBJbmJhbmRUZXh0VHJhY2s6OmNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygp
IGNvbnN0CiB7Ci0gICAgaWYgKCFtX3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAKICAgICByZXR1cm4gbV9wcml2YXRlLT5jb250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMoKTsK
IH0KIAogYm9vbCBJbmJhbmRUZXh0VHJhY2s6OmlzTWFpblByb2dyYW1Db250ZW50KCkgY29uc3QK
IHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAogICAg
IHJldHVybiBtX3ByaXZhdGUtPmlzTWFpblByb2dyYW1Db250ZW50KCk7CiB9CiAKIGJvb2wgSW5i
YW5kVGV4dFRyYWNrOjppc0Vhc3lUb1JlYWQoKSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRl
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNF
YXN5VG9SZWFkKCk7CiB9CiAgICAgCiBzaXplX3QgSW5iYW5kVGV4dFRyYWNrOjppbmJhbmRUcmFj
a0luZGV4KCkKIHsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKICAgICByZXR1cm4gbV9wcml2YXRl
LT50cmFja0luZGV4KCk7CiB9CiAKIEF0b21pY1N0cmluZyBJbmJhbmRUZXh0VHJhY2s6OmluQmFu
ZE1ldGFkYXRhVHJhY2tEaXNwYXRjaFR5cGUoKSBjb25zdAogewotICAgIEFTU0VSVChtX3ByaXZh
dGUpOwogICAgIHJldHVybiBtX3ByaXZhdGUtPmluQmFuZE1ldGFkYXRhVHJhY2tEaXNwYXRjaFR5
cGUoKTsKIH0KIAotdm9pZCBJbmJhbmRUZXh0VHJhY2s6OmlkQ2hhbmdlZChUcmFja1ByaXZhdGVC
YXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCit2b2lkIEluYmFuZFRl
eHRUcmFjazo6aWRDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCiB7Ci0gICAgQVNTRVJU
X1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNl
dElkKGlkKTsKIH0KIAotdm9pZCBJbmJhbmRUZXh0VHJhY2s6OmxhYmVsQ2hhbmdlZChUcmFja1By
aXZhdGVCYXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpCit2b2lk
IEluYmFuZFRleHRUcmFjazo6bGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwp
CiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3By
aXZhdGUpOwogICAgIHNldExhYmVsKGxhYmVsKTsKIH0KIAotdm9pZCBJbmJhbmRUZXh0VHJhY2s6
Omxhbmd1YWdlQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0
b21pY1N0cmluZyYgbGFuZ3VhZ2UpCit2b2lkIEluYmFuZFRleHRUcmFjazo6bGFuZ3VhZ2VDaGFu
Z2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0
cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldExhbmd1YWdl
KGxhbmd1YWdlKTsKIH0KIAotdm9pZCBJbmJhbmRUZXh0VHJhY2s6OndpbGxSZW1vdmUoVHJhY2tQ
cml2YXRlQmFzZSogdHJhY2tQcml2YXRlKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6OndpbGxSZW1v
dmUoKQogewotICAgIGlmICghbWVkaWFFbGVtZW50KCkpCisgICAgYXV0byogZWxlbWVudCA9IG1l
ZGlhRWxlbWVudCgpOworICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuOwotICAgIEFT
U0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKLSAg
ICBtZWRpYUVsZW1lbnQoKS0+cmVtb3ZlVGV4dFRyYWNrKCp0aGlzKTsKKyAgICBlbGVtZW50LT5y
ZW1vdmVUZXh0VHJhY2soKnRoaXMpOwogfQogCiB2b2lkIEluYmFuZFRleHRUcmFjazo6dXBkYXRl
S2luZEZyb21Qcml2YXRlKCkKQEAgLTE5NiwzNCArMTY0LDMwIEBAIHZvaWQgSW5iYW5kVGV4dFRy
YWNrOjp1cGRhdGVLaW5kRnJvbVByaXZhdGUoKQogICAgIHN3aXRjaCAobV9wcml2YXRlLT5raW5k
KCkpIHsKICAgICBjYXNlIEluYmFuZFRleHRUcmFja1ByaXZhdGU6OlN1YnRpdGxlczoKICAgICAg
ICAgc2V0S2luZChLaW5kOjpTdWJ0aXRsZXMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6Q2FwdGlvbnM6CiAgICAgICAg
IHNldEtpbmQoS2luZDo6Q2FwdGlvbnMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJu
OwogICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6RGVzY3JpcHRpb25zOgogICAgICAg
ICBzZXRLaW5kKEtpbmQ6OkRlc2NyaXB0aW9ucyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICBy
ZXR1cm47CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpDaGFwdGVyczoKICAgICAg
ICAgc2V0S2luZChLaW5kOjpDaGFwdGVycyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpNZXRhZGF0YToKICAgICAgICAg
c2V0S2luZChLaW5kOjpNZXRhZGF0YSk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47
CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpGb3JjZWQ6CiAgICAgICAgIHNldEtp
bmQoS2luZDo6Rm9yY2VkKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBj
YXNlIEluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok5vbmU6Ci0gICAgZGVmYXVsdDoKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKIH0KIAogTWVkaWFUaW1lIEluYmFuZFRleHRUcmFjazo6c3RhcnRUaW1l
VmFyaWFuY2UoKSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRlKQotICAgICAgICByZXR1cm4g
TWVkaWFUaW1lOjp6ZXJvVGltZSgpOwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPnN0YXJ0
VGltZVZhcmlhbmNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svSW5iYW5kVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRl
eHRUcmFjay5oCmluZGV4IDljZDAyN2MzNmM4NWIwYWE1MTU2N2VlNjk2ZTEyNjZkMDg0NWYzM2Uu
LjZjZjI2ODdiYjg2ZTk1NDliYzFmMTY1NTUzZDkyNTBiOGM1N2VlMDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwxNSArMjksMTIgQEAK
IAogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaCIKICNpbmNsdWRlICJU
ZXh0VHJhY2suaCIKLSNpbmNsdWRlICJUZXh0VHJhY2tDdWVHZW5lcmljLmgiCi0jaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBJbmJhbmRUZXh0VHJhY2sgOiBwdWJsaWMgVGV4dFRyYWNrLCBwdWJs
aWMgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCB7CitjbGFzcyBJbmJhbmRUZXh0VHJhY2sg
OiBwdWJsaWMgVGV4dFRyYWNrLCBwcml2YXRlIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gY3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPElu
YmFuZFRleHRUcmFja1ByaXZhdGU+KTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZFRleHRUcmFjaz4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlJik7CiAgICAgdmlydHVhbCB+SW5iYW5kVGV4dFRyYWNrKCk7CiAKICAg
ICBib29sIGlzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdCBvdmVycmlkZTsKQEAgLTUwLDM4ICs0Nywz
OCBAQCBwdWJsaWM6CiAKICAgICBBdG9taWNTdHJpbmcgaW5CYW5kTWV0YWRhdGFUcmFja0Rpc3Bh
dGNoVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZXRQcml2YXRlKFBhc3NSZWZQ
dHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHZvaWQgc2V0UHJpdmF0ZShJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlJik7CiAKIHByb3RlY3RlZDoKLSAgICBJbmJhbmRUZXh0VHJhY2soU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIEluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogCiAg
ICAgdm9pZCBzZXRNb2RlSW50ZXJuYWwoTW9kZSk7CiAgICAgdm9pZCB1cGRhdGVLaW5kRnJvbVBy
aXZhdGUoKTsKIAotICAgIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiBtX3ByaXZhdGU7
CisgICAgUmVmPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IG1fcHJpdmF0ZTsKIAogcHJpdmF0ZToK
ICAgICBib29sIGlzSW5iYW5kKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZv
aWQgaWRDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRv
bWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2
YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbFJl
bW92ZShUcmFja1ByaXZhdGVCYXNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBpZENoYW5nZWQoY29u
c3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBsYWJlbENoYW5nZWQoY29uc3Qg
QXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3Qg
QXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgb3ZlcnJpZGU7
CiAKLSAgICB2b2lkIGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkgb3ZlcnJp
ZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpIG92ZXJy
aWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVF
KQotICAgIHZvaWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1S
ZXByZXNlbnRhdGlvbj4sIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KLSAgICB2b2lkIHVwZGF0ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSos
IGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+KSBvdmVycmlkZSAgeyBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQotICAgIHZvaWQgcmVtb3ZlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29u
c3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxh
dGZvcm1SZXByZXNlbnRhdGlvbj4pIG92ZXJyaWRlICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CisgICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYs
IFJlZjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4mJiwgY29uc3QgU3RyaW5nJikg
b3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgdXBkYXRlRGF0YUN1
ZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBTZXJpYWxpemVkUGxhdGZvcm1S
ZXByZXNlbnRhdGlvbiYpIG92ZXJyaWRlICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAg
dm9pZCByZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNl
cmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uJikgb3ZlcnJpZGUgIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KICNlbmRpZgogCi0gICAgdm9pZCBhZGRHZW5lcmljQ3VlKEluYmFuZFRleHRU
cmFja1ByaXZhdGUqLCBQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPikgb3ZlcnJpZGUgeyBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0
VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9Ci0gICAgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZh
dGUqLCBHZW5lcmljQ3VlRGF0YSopIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
KyAgICB2b2lkIGFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKSBvdmVycmlkZSB7IEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVE
YXRhJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgcmVtb3Zl
R2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KIAotICAgIHZvaWQgcGFyc2VXZWJWVFRGaWxlSGVhZGVyKEluYmFuZFRleHRUcmFja1By
aXZhdGUqLCBTdHJpbmcmJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAg
IHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBj
aGFyKiwgdW5zaWduZWQpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2
b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNP
V2ViVlRUQ3VlJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQg
cGFyc2VXZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgY2hhciosIHVuc2ln
bmVkKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBwYXJzZVdl
YlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQogCiAgICAgTWVkaWFUaW1lIHN0YXJ0VGltZVZhcmlhbmNlKCkgY29uc3Qgb3Zl
cnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRX
ZWJWVFRUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJW
VFRUZXh0VHJhY2suY3BwCmluZGV4IGU1NDBlNDk0MWFlY2E4NmMwZmZlYTc1MzRiN2FhMjI2YjEy
Y2MyYTYuLmQwZmFlNGU5Yjg1NmEwNDEyYjMyNjg3Yzc3MmVlMzZmZGYxOTQ0ZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE0IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI0LDI3ICsyNCwyNiBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJJbmJhbmRXZWJWVFRUZXh0VHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
IAotI2luY2x1ZGUgIkluYmFuZFdlYlZUVFRleHRUcmFjay5oIgotCiAjaW5jbHVkZSAiSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlZUVEN1ZS5oIgogI2luY2x1ZGUgIlZUVFJlZ2lvbkxp
c3QuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotUmVmPEluYmFuZFRleHRUcmFjaz4gSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQs
IFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkKK2lubGlu
ZSBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OkluYmFuZFdlYlZUVFRleHRUcmFjayhTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQorICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRl
eHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElu
YmFuZFdlYlZUVFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHBsYXllclByaXZhdGUpKTsKIH0K
IAotSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpJbmJhbmRXZWJWVFRUZXh0VHJhY2soU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQ
dHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQotICAgIDogSW5iYW5kVGV4
dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKQorUmVmPEluYmFuZFRleHRUcmFj
az4gSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgVGV4dFRyYWNrQ2xpZW50JiBjbGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUm
IHRyYWNrUHJpdmF0ZSkKIHsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbmJhbmRXZWJWVFRU
ZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpKTsKIH0KIAogSW5iYW5kV2Vi
VlRUVGV4dFRyYWNrOjp+SW5iYW5kV2ViVlRUVGV4dFRyYWNrKCkKQEAgLTU4LDE1ICs1NywxMyBA
QCBXZWJWVFRQYXJzZXImIEluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VyKCkKICAgICByZXR1
cm4gKm1fd2ViVlRUUGFyc2VyOwogfQogCi12b2lkIEluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFy
c2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgY29u
c3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQordm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJh
Y2s6OnBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgp
CiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3By
aXZhdGUpOwogICAgIHBhcnNlcigpLnBhcnNlQnl0ZXMoZGF0YSwgbGVuZ3RoKTsKIH0KIAotdm9p
ZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIGNvbnN0IElTT1dlYlZUVEN1ZSYgY3VlRGF0YSkKK3Zv
aWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2Vi
VlRUQ3VlJiBjdWVEYXRhKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFj
a1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBwYXJzZXIoKS5wYXJzZUN1ZURhdGEoY3VlRGF0
YSk7CiB9CiAKQEAgLTc0LDEwICs3MSw4IEBAIHZvaWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpu
ZXdDdWVzUGFyc2VkKCkKIHsKICAgICBWZWN0b3I8UmVmUHRyPFdlYlZUVEN1ZURhdGE+PiBjdWVz
OwogICAgIHBhcnNlcigpLmdldE5ld0N1ZXMoY3Vlcyk7Ci0KICAgICBmb3IgKGF1dG8mIGN1ZURh
dGEgOiBjdWVzKSB7CiAgICAgICAgIGF1dG8gdnR0Q3VlID0gVlRUQ3VlOjpjcmVhdGUoKnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSwgKmN1ZURhdGEpOwotCiAgICAgICAgIGlmIChoYXNDdWUodnR0
Q3VlLnB0cigpLCBUZXh0VHJhY2tDdWU6Oklnbm9yZUR1cmF0aW9uKSkgewogICAgICAgICAgICAg
TE9HKE1lZGlhLCAiSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpuZXdDdWVzUGFyc2VkIGlnbm9yaW5n
IGFscmVhZHkgYWRkZWQgY3VlOiBzdGFydD0lLjJmLCBlbmQ9JS4yZiwgY29udGVudD1cIiVzXCJc
biIsIHZ0dEN1ZS0+c3RhcnRUaW1lKCksIHZ0dEN1ZS0+ZW5kVGltZSgpLCB2dHRDdWUtPnRleHQo
KS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTkwLDEzICs4NSwxMiBA
QCB2b2lkIEluYmFuZFdlYlZUVFRleHRUcmFjazo6bmV3UmVnaW9uc1BhcnNlZCgpCiB7CiAgICAg
VmVjdG9yPFJlZlB0cjxWVFRSZWdpb24+PiBuZXdSZWdpb25zOwogICAgIHBhcnNlcigpLmdldE5l
d1JlZ2lvbnMobmV3UmVnaW9ucyk7Ci0KICAgICBmb3IgKGF1dG8mIHJlZ2lvbiA6IG5ld1JlZ2lv
bnMpIHsKICAgICAgICAgcmVnaW9uLT5zZXRUcmFjayh0aGlzKTsKLSAgICAgICAgcmVnaW9ucygp
LT5hZGQocmVnaW9uKTsKKyAgICAgICAgcmVnaW9ucygpLT5hZGQocmVnaW9uLnJlbGVhc2VOb25O
dWxsKCkpOwogICAgIH0KIH0KLSAgICAKKwogdm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmZp
bGVGYWlsZWRUb1BhcnNlKCkKIHsKICAgICBMT0coTWVkaWEsICJFcnJvciBwYXJzaW5nIFdlYlZU
VCBzdHJlYW0uIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFu
ZFdlYlZUVFRleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJW
VFRUZXh0VHJhY2suaAppbmRleCA4Y2M3N2E5Y2VkYTNjMzdiYjFmNmUxZDVhNTkzZDI2M2MzZDI0
OWVmLi4yMWQ5MTM0Njk3NWE5YTZlNzk3OWI4YWMwMzlmNGE2M2MzZTgxNGJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzAsMjUgKzMwLDI0IEBACiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAi
V2ViVlRUUGFyc2VyLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbmJhbmRXZWJWVFRUZXh0VHJhY2sg
ZmluYWwgOiBwdWJsaWMgSW5iYW5kVGV4dFRyYWNrLCBwcml2YXRlIFdlYlZUVFBhcnNlckNsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbmJhbmRUZXh0VHJhY2s+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlPik7CisgICAgc3RhdGljIFJlZjxJbmJhbmRUZXh0VHJhY2s+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSYpOwogICAgIHZpcnR1YWwgfkluYmFuZFdlYlZUVFRleHRUcmFjaygpOwogCiBw
cml2YXRlOgotICAgIEluYmFuZFdlYlZUVFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7
CisgICAgSW5iYW5kV2ViVlRUVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0
VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CiAKICAgICBXZWJWVFRQYXJz
ZXImIHBhcnNlcigpOwotICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFj
a1ByaXZhdGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIG92ZXJyaWRlOwot
ICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25z
dCBJU09XZWJWVFRDdWUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShj
b25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIGZpbmFsOworICAgIHZvaWQgcGFyc2VX
ZWJWVFRDdWVEYXRhKGNvbnN0IElTT1dlYlZUVEN1ZSYpIGZpbmFsOwogCi0gICAgdm9pZCBuZXdD
dWVzUGFyc2VkKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBuZXdSZWdpb25zUGFyc2VkKCkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBmaWxlRmFpbGVkVG9QYXJzZSgpIG92ZXJyaWRlOworICAgIHZvaWQgbmV3
Q3Vlc1BhcnNlZCgpIGZpbmFsOworICAgIHZvaWQgbmV3UmVnaW9uc1BhcnNlZCgpIGZpbmFsOwor
ICAgIHZvaWQgZmlsZUZhaWxlZFRvUGFyc2UoKSBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJWVFRQYXJzZXI+IG1fd2ViVlRUUGFyc2VyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5jcHAKaW5kZXggMjEwZjZhOWRmNWFjNzcxNzVh
OTgxMmFjMDUxMDQyMjMyYTM0MGYzMy4uNTUyOGRlMTdiMjlmNGJlMGM5NjgzODQzODI5M2U3MzY4
NmU4NWNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRl
eHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRU
cmFjay5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEz
IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
LCAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDE0ICsyNSwxMSBAQAogICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJMb2FkYWJsZVRleHRUcmFjay5oIgogCiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQogCi0jaW5jbHVkZSAiTG9hZGFibGVUZXh0VHJhY2suaCIKLQotI2luY2x1ZGUg
IkV2ZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRyYWNrRWxlbWVudC5oIgotI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tDdWVMaXN0LmgiCiAjaW5j
bHVkZSAiVlRUUmVnaW9uTGlzdC5oIgogCkBAIC05NiwxMSArOTQsMTEgQEAgdm9pZCBMb2FkYWJs
ZVRleHRUcmFjazo6bmV3Q3Vlc0F2YWlsYWJsZShUZXh0VHJhY2tMb2FkZXIqIGxvYWRlcikKIAog
ICAgIGZvciAoYXV0byYgbmV3Q3VlIDogbmV3Q3VlcykgewogICAgICAgICBuZXdDdWUtPnNldFRy
YWNrKHRoaXMpOwotICAgICAgICBtX2N1ZXMtPmFkZChuZXdDdWUpOworICAgICAgICBtX2N1ZXMt
PmFkZChuZXdDdWUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogCiAgICAgaWYgKGNsaWVudCgp
KQotICAgICAgICBjbGllbnQoKS0+dGV4dFRyYWNrQWRkQ3Vlcyh0aGlzLCBtX2N1ZXMuZ2V0KCkp
OworICAgICAgICBjbGllbnQoKS0+dGV4dFRyYWNrQWRkQ3VlcygqdGhpcywgKm1fY3Vlcyk7CiB9
CiAKIHZvaWQgTG9hZGFibGVUZXh0VHJhY2s6OmN1ZUxvYWRpbmdDb21wbGV0ZWQoVGV4dFRyYWNr
TG9hZGVyKiBsb2FkZXIsIGJvb2wgbG9hZGluZ0ZhaWxlZCkKQEAgLTEyMiw3ICsxMjAsNyBAQCB2
b2lkIExvYWRhYmxlVGV4dFRyYWNrOjpuZXdSZWdpb25zQXZhaWxhYmxlKFRleHRUcmFja0xvYWRl
ciogbG9hZGVyKQogCiAgICAgZm9yIChhdXRvJiBuZXdSZWdpb24gOiBuZXdSZWdpb25zKSB7CiAg
ICAgICAgIG5ld1JlZ2lvbi0+c2V0VHJhY2sodGhpcyk7Ci0gICAgICAgIHJlZ2lvbnMoKS0+YWRk
KG5ld1JlZ2lvbik7CisgICAgICAgIHJlZ2lvbnMoKS0+YWRkKG5ld1JlZ2lvbi5yZWxlYXNlTm9u
TnVsbCgpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svTG9hZGFibGVUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFi
bGVUZXh0VHJhY2suaAppbmRleCAwMTAyMGIwYjRjYmZmMTM5MTRiZTcyYTA5MTYyOTI2YjZiODhk
MzYxLi5iYTljNzZmYjJjMzU4ZGFiODllZjU4MTYwZWQxMDFkMzY3NTc3NTk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5oCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwxMiArMzAsMTAg
QEAKIAogI2luY2x1ZGUgIlRleHRUcmFjay5oIgogI2luY2x1ZGUgIlRleHRUcmFja0xvYWRlci5o
IgotI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBIVE1MVHJhY2tFbGVtZW50OwotY2xhc3MgTG9hZGFibGVUZXh0VHJhY2s7CiAKIGNsYXNz
IExvYWRhYmxlVGV4dFRyYWNrIGZpbmFsIDogcHVibGljIFRleHRUcmFjaywgcHJpdmF0ZSBUZXh0
VHJhY2tMb2FkZXJDbGllbnQgewogcHVibGljOgpAQCAtNDksNyArNDgsNyBAQCBwdWJsaWM6CiAg
ICAgSFRNTFRyYWNrRWxlbWVudCogdHJhY2tFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV90cmFj
a0VsZW1lbnQ7IH0KICAgICB2b2lkIGNsZWFyRWxlbWVudCgpIHsgbV90cmFja0VsZW1lbnQgPSBu
dWxscHRyOyB9CiAKLSAgICB2b2lkIHNldElzRGVmYXVsdChib29sIGlzRGVmYXVsdCkgZmluYWwg
IHsgbV9pc0RlZmF1bHQgPSBpc0RlZmF1bHQ7IH0KKyAgICB2b2lkIHNldElzRGVmYXVsdChib29s
IGlzRGVmYXVsdCkgZmluYWwgeyBtX2lzRGVmYXVsdCA9IGlzRGVmYXVsdDsgfQogCiBwcml2YXRl
OgogICAgIExvYWRhYmxlVGV4dFRyYWNrKEhUTUxUcmFja0VsZW1lbnQmLCBjb25zdCBTdHJpbmcm
IGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpOwpAQCAt
NjgsNyArNjcsNyBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fbG9hZFRpbWVyOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxUZXh0VHJhY2tMb2FkZXI+IG1fbG9hZGVyOwogICAgIFVSTCBtX3VybDsKLSAg
ICBib29sIG1faXNEZWZhdWx0OworICAgIGJvb2wgbV9pc0RlZmF1bHQgeyBmYWxzZSB9OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJh
Y2suY3BwCmluZGV4IDk2YmNkN2VkMzUwZDI4ZTA0MmVhZTY4Y2VkNTIwMWE3MWYzYzVmMDkuLjFm
MjNjNDQzMmYzYzE1N2QyOWY1ZTU1N2Q0NTY4OTg3YWIyNmZjMjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFjay5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMCwxMSArMzAsMTAgQEAKICAq
LwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGV4dFRyYWNrLmgiCiAKICNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbmNsdWRlICJUZXh0VHJhY2suaCIKLQogI2luY2x1ZGUg
IkV2ZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkhUTUxNZWRp
YUVsZW1lbnQuaCIKQEAgLTQ2LDggKzQ1LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1z
dGF0aWMgY29uc3QgaW50IGludmFsaWRUcmFja0luZGV4ID0gLTE7Ci0KIGNvbnN0IEF0b21pY1N0
cmluZyYgVGV4dFRyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Y29uc3QgQXRvbWljU3RyaW5nPiBzdWJ0aXRsZXMoInN1YnRpdGxlcyIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwpAQCAtMTAxLDggKzk4LDYgQEAgVGV4dFRy
YWNrOjpUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNr
Q2xpZW50KiBjbGllbnQsIGMKICAgICAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChjb250ZXh0
KQogICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICwgbV90cmFja1R5cGUodHlwZSkKLSAgICAs
IG1fdHJhY2tJbmRleChpbnZhbGlkVHJhY2tJbmRleCkKLSAgICAsIG1fcmVuZGVyZWRUcmFja0lu
ZGV4KGludmFsaWRUcmFja0luZGV4KQogewogICAgIGlmIChraW5kID09IGNhcHRpb25zS2V5d29y
ZCgpKQogICAgICAgICBtX2tpbmQgPSBLaW5kOjpDYXB0aW9uczsKQEAgLTEyMCw4ICsxMTUsNyBA
QCBUZXh0VHJhY2s6On5UZXh0VHJhY2soKQogewogICAgIGlmIChtX2N1ZXMpIHsKICAgICAgICAg
aWYgKG1fY2xpZW50KQotICAgICAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZXMo
dGhpcywgbV9jdWVzLmdldCgpKTsKLQorICAgICAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja1Jl
bW92ZUN1ZXMoKnRoaXMsICptX2N1ZXMpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkKICAgICAgICAgICAgIG1fY3Vlcy0+aXRlbShpKS0+c2V0
VHJhY2sobnVsbHB0cik7CiAgICAgfQpAQCAtMTg5LDcgKzE4Myw3IEBAIHZvaWQgVGV4dFRyYWNr
OjpzZXRLaW5kKEtpbmQgbmV3S2luZCkKICAgICAvLyAzLiBJZiB0aGUgc291cmNlQnVmZmVyIGF0
dHJpYnV0ZSBvbiB0aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1ZXVlIGEgdGFzayB0byBm
aXJlIGEgc2ltcGxlCiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHNvdXJjZUJ1ZmZlci50
ZXh0VHJhY2tzLgogICAgIGlmIChtX3NvdXJjZUJ1ZmZlcikKLSAgICAgICAgbV9zb3VyY2VCdWZm
ZXItPnRleHRUcmFja3MoKS0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOworICAgICAgICBtX3NvdXJj
ZUJ1ZmZlci0+dGV4dFRyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIC8vIDQu
IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCB0aGUg
VGV4dFRyYWNrTGlzdCBvYmplY3QgcmVmZXJlbmNlZCBieQogICAgIC8vIHRoZSB0ZXh0VHJhY2tz
IGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KQEAgLTE5OCw3ICsxOTIsNyBAQCB2
b2lkIFRleHRUcmFjazo6c2V0S2luZChLaW5kIG5ld0tpbmQpCiAjZW5kaWYKIAogICAgIGlmICht
X2NsaWVudCAmJiBvbGRLaW5kICE9IG1fa2luZCkKLSAgICAgICAgbV9jbGllbnQtPnRleHRUcmFj
a0tpbmRDaGFuZ2VkKHRoaXMpOworICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrS2luZENoYW5n
ZWQoKnRoaXMpOwogfQogCiB2b2lkIFRleHRUcmFjazo6c2V0S2luZEtleXdvcmRJZ25vcmluZ0FT
Q0lJQ2FzZShTdHJpbmdWaWV3IGtleXdvcmQpCkBAIC0yMzYsNyArMjMwLDcgQEAgdm9pZCBUZXh0
VHJhY2s6OnNldE1vZGUoTW9kZSBtb2RlKQogICAgIC8vIElmIG1vZGUgY2hhbmdlcyB0byBkaXNh
YmxlZCwgcmVtb3ZlIHRoaXMgdHJhY2sncyBjdWVzIGZyb20gdGhlIGNsaWVudAogICAgIC8vIGJl
Y2F1c2UgdGhleSB3aWxsIG5vIGxvbmdlciBiZSBhY2Nlc3NpYmxlIGZyb20gdGhlIGN1ZXMoKSBm
dW5jdGlvbi4KICAgICBpZiAobW9kZSA9PSBNb2RlOjpEaXNhYmxlZCAmJiBtX2NsaWVudCAmJiBt
X2N1ZXMpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKHRoaXMsIG1fY3Vl
cy5nZXQoKSk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKCp0aGlzLCAq
bV9jdWVzKTsKIAogICAgIGlmIChtb2RlICE9IE1vZGU6OlNob3dpbmcgJiYgbV9jdWVzKSB7CiAg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jdWVzLT5sZW5ndGgoKTsgKytpKSB7CkBA
IC0yNDksNyArMjQzLDcgQEAgdm9pZCBUZXh0VHJhY2s6OnNldE1vZGUoTW9kZSBtb2RlKQogICAg
IG1fbW9kZSA9IG1vZGU7CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT50
ZXh0VHJhY2tNb2RlQ2hhbmdlZCh0aGlzKTsKKyAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja01v
ZGVDaGFuZ2VkKCp0aGlzKTsKIH0KIAogVGV4dFRyYWNrQ3VlTGlzdCogVGV4dFRyYWNrOjpjdWVz
KCkKQEAgLTI3MCw3ICsyNjQsNyBAQCB2b2lkIFRleHRUcmFjazo6cmVtb3ZlQWxsQ3VlcygpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnRl
eHRUcmFja1JlbW92ZUN1ZXModGhpcywgbV9jdWVzLmdldCgpKTsKKyAgICAgICAgbV9jbGllbnQt
PnRleHRUcmFja1JlbW92ZUN1ZXMoKnRoaXMsICptX2N1ZXMpOwogICAgIAogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9jdWVzLT5sZW5ndGgoKTsgKytpKQogICAgICAgICBtX2N1ZXMtPml0
ZW0oaSktPnNldFRyYWNrKG51bGxwdHIpOwpAQCAtMjg4LDcgKzI4Miw3IEBAIFRleHRUcmFja0N1
ZUxpc3QqIFRleHRUcmFjazo6YWN0aXZlQ3VlcygpIGNvbnN0CiAgICAgLy8gaHR0cDovL3d3dy53
aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jZG9tLXRleHR0cmFjay1hY3Rp
dmVjdWVzCiAgICAgaWYgKCFtX2N1ZXMgfHwgbV9tb2RlID09IE1vZGU6OkRpc2FibGVkKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gbV9jdWVzLT5hY3RpdmVDdWVzKCk7Cisg
ICAgcmV0dXJuICZtX2N1ZXMtPmFjdGl2ZUN1ZXMoKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4g
VGV4dFRyYWNrOjphZGRDdWUoUmVmPFRleHRUcmFja0N1ZT4mJiBjdWUpCkBAIC0zMTgsMTAgKzMx
MiwxMCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBUZXh0VHJhY2s6OmFkZEN1ZShSZWY8VGV4dFRyYWNr
Q3VlPiYmIGN1ZSkKIAogICAgIC8vIDIuIEFkZCBjdWUgdG8gdGhlIG1ldGhvZCdzIFRleHRUcmFj
ayBvYmplY3QncyB0ZXh0IHRyYWNrJ3MgdGV4dCB0cmFjayBsaXN0IG9mIGN1ZXMuCiAgICAgY3Vl
LT5zZXRUcmFjayh0aGlzKTsKLSAgICBlbnN1cmVUZXh0VHJhY2tDdWVMaXN0KCkuYWRkKGN1ZS5w
dHIoKSk7CisgICAgZW5zdXJlVGV4dFRyYWNrQ3VlTGlzdCgpLmFkZChjdWUuY29weVJlZigpKTsK
ICAgICAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tBZGRD
dWUodGhpcywgY3VlKTsKKyAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja0FkZEN1ZSgqdGhpcywg
Y3VlKTsKIAogICAgIHJldHVybiB7IH07CiB9CkBAIC0zMzgsMTIgKzMzMiwxMiBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBUZXh0VHJhY2s6OnJlbW92ZUN1ZShUZXh0VHJhY2tDdWUmIGN1ZSkKICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5PVF9GT1VORF9FUlIgfTsKIAogICAgIC8vIDIuIFJlbW92
ZSBjdWUgZnJvbSB0aGUgbWV0aG9kJ3MgVGV4dFRyYWNrIG9iamVjdCdzIHRleHQgdHJhY2sncyB0
ZXh0IHRyYWNrIGxpc3Qgb2YgY3Vlcy4KLSAgICBpZiAoIW1fY3VlcyB8fCAhbV9jdWVzLT5yZW1v
dmUoJmN1ZSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NUQVRFX0VSUiB9
OwotCisgICAgQVNTRVJUKG1fY3Vlcyk7CisgICAgbV9jdWVzLT5yZW1vdmUoY3VlKTsKKyAgICBj
dWUuc2V0SXNBY3RpdmUoZmFsc2UpOwogICAgIGN1ZS5zZXRUcmFjayhudWxscHRyKTsKICAgICBp
ZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUodGhpcywg
Y3VlKTsKKyAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZSgqdGhpcywgY3VlKTsK
IAogICAgIHJldHVybiB7IH07CiB9CkBAIC0zOTIsMTAgKzM4Niw5IEBAIHZvaWQgVGV4dFRyYWNr
OjphZGRSZWdpb24oUmVmUHRyPFZUVFJlZ2lvbj4mJiByZWdpb24pCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICAvLyBPdGhlcndpc2U6IGFkZCByZWdpb24gdG8gdGhlIG1ldGhvZCdzIFRl
eHRUcmFjayBvYmplY3QncyB0ZXh0IHRyYWNrCi0gICAgLy8gbGlzdCBvZiByZWdpb25zLgorICAg
IC8vIE90aGVyd2lzZTogYWRkIHJlZ2lvbiB0byB0aGUgbWV0aG9kJ3MgVGV4dFRyYWNrIG9iamVj
dCdzIHRleHQgdHJhY2sgbGlzdCBvZiByZWdpb25zLgogICAgIHJlZ2lvbi0+c2V0VHJhY2sodGhp
cyk7Ci0gICAgcmVnaW9uTGlzdC5hZGQoV1RGTW92ZShyZWdpb24pKTsKKyAgICByZWdpb25MaXN0
LmFkZChyZWdpb24ucmVsZWFzZU5vbk51bGwoKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFRl
eHRUcmFjazo6cmVtb3ZlUmVnaW9uKFZUVFJlZ2lvbiogcmVnaW9uKQpAQCAtNDA4LDkgKzQwMSw4
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFRleHRUcmFjazo6cmVtb3ZlUmVnaW9uKFZUVFJlZ2lvbiog
cmVnaW9uKQogICAgIGlmIChyZWdpb24tPnRyYWNrKCkgIT0gdGhpcykKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5PVF9GT1VORF9FUlIgfTsKIAotICAgIGlmICghbV9yZWdpb25zIHx8ICFt
X3JlZ2lvbnMtPnJlbW92ZShyZWdpb24pKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5W
QUxJRF9TVEFURV9FUlIgfTsKLQorICAgIEFTU0VSVChtX3JlZ2lvbnMpOworICAgIG1fcmVnaW9u
cy0+cmVtb3ZlKCpyZWdpb24pOwogICAgIHJlZ2lvbi0+c2V0VHJhY2sobnVsbHB0cik7CiAgICAg
cmV0dXJuIHsgfTsKIH0KQEAgLTQyMiw3ICs0MTQsNyBAQCB2b2lkIFRleHRUcmFjazo6Y3VlV2ls
bENoYW5nZShUZXh0VHJhY2tDdWUqIGN1ZSkKIAogICAgIC8vIFRoZSBjdWUgbWF5IG5lZWQgdG8g
YmUgcmVwb3NpdGlvbmVkIGluIHRoZSBtZWRpYSBlbGVtZW50J3MgaW50ZXJ2YWwgdHJlZSwgbWF5
IG5lZWQgdG8KICAgICAvLyBiZSByZS1yZW5kZXJlZCwgZXRjLCBzbyByZW1vdmUgaXQgYmVmb3Jl
IHRoZSBtb2RpZmljYXRpb24uLi4KLSAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKHRo
aXMsICpjdWUpOworICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUoKnRoaXMsICpjdWUp
OwogfQogCiB2b2lkIFRleHRUcmFjazo6Y3VlRGlkQ2hhbmdlKFRleHRUcmFja0N1ZSogY3VlKQpA
QCAtNDMxLDI2ICs0MjMsMjQgQEAgdm9pZCBUZXh0VHJhY2s6OmN1ZURpZENoYW5nZShUZXh0VHJh
Y2tDdWUqIGN1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gTWFrZSBzdXJlIHRoZSBUZXh0
VHJhY2tDdWVMaXN0IG9yZGVyIGlzIHVwLXRvLWRhdGUuCi0gICAgZW5zdXJlVGV4dFRyYWNrQ3Vl
TGlzdCgpLnVwZGF0ZUN1ZUluZGV4KGN1ZSk7CisgICAgZW5zdXJlVGV4dFRyYWNrQ3VlTGlzdCgp
LnVwZGF0ZUN1ZUluZGV4KCpjdWUpOwogCiAgICAgLy8gLi4uIGFuZCBhZGQgaXQgYmFjayBhZ2Fp
bi4KLSAgICBtX2NsaWVudC0+dGV4dFRyYWNrQWRkQ3VlKHRoaXMsICpjdWUpOworICAgIG1fY2xp
ZW50LT50ZXh0VHJhY2tBZGRDdWUoKnRoaXMsICpjdWUpOwogfQogCiBpbnQgVGV4dFRyYWNrOjp0
cmFja0luZGV4KCkKIHsKICAgICBBU1NFUlQobV9tZWRpYUVsZW1lbnQpOwotCi0gICAgaWYgKG1f
dHJhY2tJbmRleCA9PSBpbnZhbGlkVHJhY2tJbmRleCkKKyAgICBpZiAoIW1fdHJhY2tJbmRleCkK
ICAgICAgICAgbV90cmFja0luZGV4ID0gbV9tZWRpYUVsZW1lbnQtPnRleHRUcmFja3MoKS5nZXRU
cmFja0luZGV4KCp0aGlzKTsKLQotICAgIHJldHVybiBtX3RyYWNrSW5kZXg7CisgICAgcmV0dXJu
IG1fdHJhY2tJbmRleC52YWx1ZSgpOwogfQogCiB2b2lkIFRleHRUcmFjazo6aW52YWxpZGF0ZVRy
YWNrSW5kZXgoKQogewotICAgIG1fdHJhY2tJbmRleCA9IGludmFsaWRUcmFja0luZGV4OwotICAg
IG1fcmVuZGVyZWRUcmFja0luZGV4ID0gaW52YWxpZFRyYWNrSW5kZXg7CisgICAgbV90cmFja0lu
ZGV4ID0gc3RkOjpudWxsb3B0OworICAgIG1fcmVuZGVyZWRUcmFja0luZGV4ID0gc3RkOjpudWxs
b3B0OwogfQogCiBib29sIFRleHRUcmFjazo6aXNSZW5kZXJlZCgpCkBAIC00NjksMTEgKzQ1OSw5
IEBAIFRleHRUcmFja0N1ZUxpc3QmIFRleHRUcmFjazo6ZW5zdXJlVGV4dFRyYWNrQ3VlTGlzdCgp
CiBpbnQgVGV4dFRyYWNrOjp0cmFja0luZGV4UmVsYXRpdmVUb1JlbmRlcmVkVHJhY2tzKCkKIHsK
ICAgICBBU1NFUlQobV9tZWRpYUVsZW1lbnQpOwotICAgIAotICAgIGlmIChtX3JlbmRlcmVkVHJh
Y2tJbmRleCA9PSBpbnZhbGlkVHJhY2tJbmRleCkKKyAgICBpZiAoIW1fcmVuZGVyZWRUcmFja0lu
ZGV4KQogICAgICAgICBtX3JlbmRlcmVkVHJhY2tJbmRleCA9IG1fbWVkaWFFbGVtZW50LT50ZXh0
VHJhY2tzKCkuZ2V0VHJhY2tJbmRleFJlbGF0aXZlVG9SZW5kZXJlZFRyYWNrcygqdGhpcyk7Ci0g
ICAgCi0gICAgcmV0dXJuIG1fcmVuZGVyZWRUcmFja0luZGV4OworICAgIHJldHVybiBtX3JlbmRl
cmVkVHJhY2tJbmRleC52YWx1ZSgpOwogfQogCiBib29sIFRleHRUcmFjazo6aGFzQ3VlKFRleHRU
cmFja0N1ZSogY3VlLCBUZXh0VHJhY2tDdWU6OkN1ZU1hdGNoUnVsZXMgbWF0Y2gpCkBAIC01NjQs
NyArNTUyLDcgQEAgdm9pZCBUZXh0VHJhY2s6OnNldExhbmd1YWdlKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbGFuZ3VhZ2UpCiAgICAgLy8gMy4gSWYgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24g
dGhpcyB0cmFjayBpcyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBs
ZQogICAgIC8vIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCBzb3VyY2VCdWZmZXIudGV4dFRyYWNrcy4K
ICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVmZmVyLT50ZXh0VHJh
Y2tzKCktPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXItPnRl
eHRUcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICAgICAvLyA0LiBRdWV1ZSBhIHRh
c2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2UgYXQgdGhlIFRleHRUcmFja0xp
c3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdGV4dFRyYWNrcyBhdHRyaWJ1dGUg
b24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2su
aAppbmRleCBiODA0OWM3MGNhZTFhYTk3ODVjMDRhNTQ5OWJjN2FlNmM4MzBjZWRiLi44YmI0N2Iy
NzZmNmU1NWI5MTY2NjdkN2ZjZTE1NzQ0NTc4ZjNiZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEs
IDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDggKzMwLDYgQEAKIAogI2luY2x1
ZGUgIlRleHRUcmFja0N1ZS5oIgogI2luY2x1ZGUgIlRyYWNrQmFzZS5oIgotI2luY2x1ZGUgIlZU
VEN1ZS5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTQ0LDEyICs0MiwxMiBAQCBjbGFzcyBWVFRSZWdpb25MaXN0OwogY2xhc3Mg
VGV4dFRyYWNrQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5UZXh0VHJhY2tDbGllbnQo
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrKikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqKSA9
IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiwgY29uc3Qg
VGV4dFRyYWNrQ3VlTGlzdCopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3Zl
Q3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KikgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNr
Q3VlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJh
Y2smKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFj
ayYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBj
b25zdCBUZXh0VHJhY2tDdWVMaXN0JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tS
ZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0
VHJhY2tDdWUmKSA9IDA7CiB9OwogCiBjbGFzcyBUZXh0VHJhY2sgOiBwdWJsaWMgVHJhY2tCYXNl
LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CkBAIC0xNjcsOCArMTY1LDggQEAg
cHJpdmF0ZToKICAgICBUZXh0VHJhY2tDbGllbnQqIG1fY2xpZW50OwogICAgIFRleHRUcmFja1R5
cGUgbV90cmFja1R5cGU7CiAgICAgUmVhZGluZXNzU3RhdGUgbV9yZWFkaW5lc3NTdGF0ZSB7IE5v
dExvYWRlZCB9OwotICAgIGludCBtX3RyYWNrSW5kZXg7Ci0gICAgaW50IG1fcmVuZGVyZWRUcmFj
a0luZGV4OworICAgIHN0ZDo6b3B0aW9uYWw8aW50PiBtX3RyYWNrSW5kZXg7CisgICAgc3RkOjpv
cHRpb25hbDxpbnQ+IG1fcmVuZGVyZWRUcmFja0luZGV4OwogICAgIGJvb2wgbV9oYXNCZWVuQ29u
ZmlndXJlZCB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0N1ZS5jcHAKaW5kZXggZmNiYTE5ZDBkYmJhZDRlMDA0NzkwOTFlY2Q1NmU4MjcyZGNlNThl
ZC4uMzM5MTcyZDEwNTUyMzAyNTNlY2VjNDExMDQ3OGJkZDNlOWYxNTRkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQpAQCAtMzAsMTEgKzMwLDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlRleHRUcmFja0N1ZS5oIgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVk
ZSAiVGV4dFRyYWNrQ3VlLmgiCi0KICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5j
bHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCkBAIC00OSw4ICs0
OCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGNvbnN0IGludCBpbnZhbGlk
Q3VlSW5kZXggPSAtMTsKLQogY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2tDdWU6OmN1ZVNo
YWRvd1BzZXVkb0lkKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbWlj
U3RyaW5nPiBjdWUoImN1ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwpA
QCAtNjAsOSArNTcsNiBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFja0N1ZTo6Y3VlU2hh
ZG93UHNldWRvSWQoKQogVGV4dFRyYWNrQ3VlOjpUZXh0VHJhY2tDdWUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1l
JiBlbmQpCiAgICAgOiBtX3N0YXJ0VGltZShzdGFydCkKICAgICAsIG1fZW5kVGltZShlbmQpCi0g
ICAgLCBtX2N1ZUluZGV4KGludmFsaWRDdWVJbmRleCkKLSAgICAsIG1fcHJvY2Vzc2luZ0N1ZUNo
YW5nZXMoMCkKLSAgICAsIG1fdHJhY2soMCkKICAgICAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dChjb250ZXh0KQogICAgICwgbV9pc0FjdGl2ZShmYWxzZSkKICAgICAsIG1fcGF1c2VPbkV4aXQo
ZmFsc2UpCkBAIC0xNDksMjMgKzE0Myw2IEBAIHZvaWQgVGV4dFRyYWNrQ3VlOjpzZXRQYXVzZU9u
RXhpdChib29sIHZhbHVlKQogICAgIG1fcGF1c2VPbkV4aXQgPSB2YWx1ZTsKIH0KIAotaW50IFRl
eHRUcmFja0N1ZTo6Y3VlSW5kZXgoKQotewotICAgIGlmIChtX2N1ZUluZGV4ID09IGludmFsaWRD
dWVJbmRleCkgewotICAgICAgICBBU1NFUlQodHJhY2soKSk7Ci0gICAgICAgIEFTU0VSVCh0cmFj
aygpLT5jdWVzKCkpOwotICAgICAgICBpZiAoVGV4dFRyYWNrQ3VlTGlzdCogY3VlTGlzdCA9IHRy
YWNrKCktPmN1ZXMoKSkKLSAgICAgICAgICAgIG1fY3VlSW5kZXggPSBjdWVMaXN0LT5nZXRDdWVJ
bmRleCh0aGlzKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbV9jdWVJbmRleDsKLX0KLQotdm9pZCBU
ZXh0VHJhY2tDdWU6OmludmFsaWRhdGVDdWVJbmRleCgpCi17Ci0gICAgbV9jdWVJbmRleCA9IGlu
dmFsaWRDdWVJbmRleDsKLX0KLQogYm9vbCBUZXh0VHJhY2tDdWU6OmRpc3BhdGNoRXZlbnQoRXZl
bnQmIGV2ZW50KQogewogICAgIC8vIFdoZW4gYSBUZXh0VHJhY2sncyBtb2RlIGlzIGRpc2FibGVk
OiBubyBjdWVzIGFyZSBhY3RpdmUsIG5vIGV2ZW50cyBmaXJlZC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0N1ZS5oCmluZGV4IDU3MzUxZGM2MGUyYjZlYWY1MDgwZjAzMDlhNDUx
NjhmNzgzMGE3MzQuLjQ5MDc1NDZhMjdhZTQ4MjRlMTJhMTQwYTk5YWZlOTY0ODMxNTUwZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaApAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC02
NSw5ICs2NSw2IEBAIHB1YmxpYzoKICAgICBNZWRpYVRpbWUgZW5kTWVkaWFUaW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9lbmRUaW1lOyB9CiAgICAgdm9pZCBzZXRFbmRUaW1lKGNvbnN0IE1lZGlhVGlt
ZSYpOwogCi0gICAgaW50IGN1ZUluZGV4KCk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlQ3VlSW5kZXgo
KTsKLQogICAgIGJvb2wgaXNBY3RpdmUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXNBY3RpdmUo
Ym9vbCk7CiAKQEAgLTgyLDkgKzc5LDYgQEAgcHVibGljOgogCiAgICAgZW51bSBDdWVNYXRjaFJ1
bGVzIHsgTWF0Y2hBbGxGaWVsZHMsIElnbm9yZUR1cmF0aW9uIH07CiAgICAgdmlydHVhbCBib29s
IGlzRXF1YWwoY29uc3QgVGV4dFRyYWNrQ3VlJiwgQ3VlTWF0Y2hSdWxlcykgY29uc3Q7Ci1wcml2
YXRlOgotICAgIHZpcnR1YWwgYm9vbCBjdWVDb250ZW50c01hdGNoKGNvbnN0IFRleHRUcmFja0N1
ZSYpIGNvbnN0OwotcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBkb2VzRXh0ZW5kQ3VlKGNvbnN0
IFRleHRUcmFja0N1ZSYpIGNvbnN0OwogCiAgICAgdm9pZCB3aWxsQ2hhbmdlKCk7CkBAIC0xMDgs
MTMgKzEwMiwxNCBAQCBwcml2YXRlOgogICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFy
Z2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gVGV4dFRyYWNrQ3VlRXZlbnRUYXJn
ZXRJbnRlcmZhY2VUeXBlOyB9CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICZtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBjdWVDb250ZW50c01hdGNoKGNvbnN0IFRleHRU
cmFja0N1ZSYpIGNvbnN0OworCiAgICAgU3RyaW5nIG1faWQ7CiAgICAgTWVkaWFUaW1lIG1fc3Rh
cnRUaW1lOwogICAgIE1lZGlhVGltZSBtX2VuZFRpbWU7Ci0gICAgaW50IG1fY3VlSW5kZXg7Ci0g
ICAgaW50IG1fcHJvY2Vzc2luZ0N1ZUNoYW5nZXM7CisgICAgaW50IG1fcHJvY2Vzc2luZ0N1ZUNo
YW5nZXMgeyAwIH07CiAKLSAgICBUZXh0VHJhY2sqIG1fdHJhY2s7CisgICAgVGV4dFRyYWNrKiBt
X3RyYWNrIHsgbnVsbHB0ciB9OwogCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFja0N1ZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWVMaXN0LmNwcAppbmRleCBmZmQ4ZWFlNGQ5OTM2NDgwYTZhNWJjMzU5MmZlMDgwYjcx
NmUxM2ExLi4xNDIxMmU5NmZmMjFiYjA1ZWIxNzA1MDA4NTU4OTRmMzJhZmY4YmM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5jcHAKQEAgLTEsNSAr
MSw2IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwxMTcgKzMwLDEw
MCBAQAogCiAjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlTGlzdC5oIgogCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7CisvLyBDaGVja2luZyBzb3J0aW5nIGlzIHRvbyBzbG93IGZvciBnZW5lcmFsIHVzZTsgdHVy
biBpdCBvbiBleHBsaWNpdGx5IHdoZW4gd29ya2luZyBvbiB0aGlzIGNsYXNzLgorI3VuZGVmIENI
RUNLX1NPUlRJTkcKIAotVGV4dFRyYWNrQ3VlTGlzdDo6VGV4dFRyYWNrQ3VlTGlzdCgpCi17Ci19
CisjaWZkZWYgQ0hFQ0tfU09SVElORworI2RlZmluZSBBU1NFUlRfU09SVEVEKGJlZ2luLCBlbmQp
IEFTU0VSVChzdGQ6OmlzX3NvcnRlZChiZWdpbiwgZW5kLCBjb21wYXJlQ3VlcykpCisjZWxzZQor
I2RlZmluZSBBU1NFUlRfU09SVEVEKGJlZ2luLCBlbmQpICgodm9pZCkwKQorI2VuZGlmCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKIAotdW5zaWduZWQgbG9uZyBUZXh0VHJhY2tDdWVMaXN0OjpsZW5n
dGgoKSBjb25zdAorc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVDdWVzKGNvbnN0IFJlZlB0cjxU
ZXh0VHJhY2tDdWU+JiBhLCBjb25zdCBSZWZQdHI8VGV4dFRyYWNrQ3VlPiYgYikKIHsKLSAgICBy
ZXR1cm4gbV9saXN0LnNpemUoKTsKKyAgICByZXR1cm4gYS0+aXNPcmRlcmVkQmVmb3JlKGIuZ2V0
KCkpOwogfQogCi11bnNpZ25lZCBsb25nIFRleHRUcmFja0N1ZUxpc3Q6OmdldEN1ZUluZGV4KFRl
eHRUcmFja0N1ZSogY3VlKSBjb25zdAordW5zaWduZWQgVGV4dFRyYWNrQ3VlTGlzdDo6Y3VlSW5k
ZXgoVGV4dFRyYWNrQ3VlJiBjdWUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbGlzdC5maW5kKGN1
ZSk7CisgICAgQVNTRVJUKG1fdmVjdG9yLmNvbnRhaW5zKCZjdWUpKTsKKyAgICByZXR1cm4gbV92
ZWN0b3IuZmluZCgmY3VlKTsKIH0KIAogVGV4dFRyYWNrQ3VlKiBUZXh0VHJhY2tDdWVMaXN0Ojpp
dGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAogewotICAgIGlmIChpbmRleCA8IG1fbGlzdC5zaXpl
KCkpCi0gICAgICAgIHJldHVybiBtX2xpc3RbaW5kZXhdLmdldCgpOwotICAgIHJldHVybiAwOwor
ICAgIGlmIChpbmRleCA+PSBtX3ZlY3Rvci5zaXplKCkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIHJldHVybiBtX3ZlY3RvcltpbmRleF0uZ2V0KCk7CiB9CiAKIFRleHRUcmFja0N1ZSog
VGV4dFRyYWNrQ3VlTGlzdDo6Z2V0Q3VlQnlJZChjb25zdCBTdHJpbmcmIGlkKSBjb25zdAogewot
ICAgIGZvciAoYXV0byYgY3VlIDogbV9saXN0KSB7CisgICAgZm9yIChhdXRvJiBjdWUgOiBtX3Zl
Y3RvcikgewogICAgICAgICBpZiAoY3VlLT5pZCgpID09IGlkKQogICAgICAgICAgICAgcmV0dXJu
IGN1ZS5nZXQoKTsKICAgICB9Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKLVRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFja0N1ZUxpc3Q6OmFjdGl2ZUN1ZXMoKQorVGV4
dFRyYWNrQ3VlTGlzdCYgVGV4dFRyYWNrQ3VlTGlzdDo6YWN0aXZlQ3VlcygpCiB7CiAgICAgaWYg
KCFtX2FjdGl2ZUN1ZXMpCiAgICAgICAgIG1fYWN0aXZlQ3VlcyA9IGNyZWF0ZSgpOwogCi0gICAg
bV9hY3RpdmVDdWVzLT5jbGVhcigpOwotICAgIGZvciAoYXV0byYgY3VlIDogbV9saXN0KSB7Cisg
ICAgVmVjdG9yPFJlZlB0cjxUZXh0VHJhY2tDdWU+PiBhY3RpdmVDdWVzVmVjdG9yOworICAgIGZv
ciAoYXV0byYgY3VlIDogbV92ZWN0b3IpIHsKICAgICAgICAgaWYgKGN1ZS0+aXNBY3RpdmUoKSkK
LSAgICAgICAgICAgIG1fYWN0aXZlQ3Vlcy0+YWRkKGN1ZSk7CisgICAgICAgICAgICBhY3RpdmVD
dWVzVmVjdG9yLmFwcGVuZChjdWUpOwogICAgIH0KLSAgICByZXR1cm4gbV9hY3RpdmVDdWVzLmdl
dCgpOworICAgIEFTU0VSVF9TT1JURUQoYWN0aXZlQ3Vlc1ZlY3Rvci5iZWdpbigpLCBhY3RpdmVD
dWVzVmVjdG9yLmVuZCgpKTsKKyAgICBtX2FjdGl2ZUN1ZXMtPm1fdmVjdG9yID0gV1RGTW92ZShh
Y3RpdmVDdWVzVmVjdG9yKTsKKworICAgIC8vIEZJWE1FOiBUaGlzIGxpc3Qgb2YgYWN0aXZlIGN1
ZXMgaXMgbm90IHVwZGF0ZWQgYXMgY3VlcyBhcmUgYWRkZWQsIHJlbW92ZWQsIGJlY29tZSBhY3Rp
dmUsIGFuZCBiZWNvbWUgaW5hY3RpdmUuCisgICAgLy8gSW5zdGVhZCBpdCBpcyBvbmx5IHVwZGF0
ZWQgZWFjaCB0aW1lIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGFnYWluLiBUaGF0IGlzIG5vdCBj
b25zaXN0ZW50IHdpdGggb3RoZXIgZHluYW1pYyBET00gbGlzdHMuCisgICAgcmV0dXJuICptX2Fj
dGl2ZUN1ZXM7CiB9CiAKLWJvb2wgVGV4dFRyYWNrQ3VlTGlzdDo6YWRkKFBhc3NSZWZQdHI8VGV4
dFRyYWNrQ3VlPiBjdWUpCit2b2lkIFRleHRUcmFja0N1ZUxpc3Q6OmFkZChSZWY8VGV4dFRyYWNr
Q3VlPiYmIGN1ZSkKIHsKICAgICBBU1NFUlQoY3VlLT5zdGFydE1lZGlhVGltZSgpID49IE1lZGlh
VGltZTo6emVyb1RpbWUoKSk7CiAgICAgQVNTRVJUKGN1ZS0+ZW5kTWVkaWFUaW1lKCkgPj0gTWVk
aWFUaW1lOjp6ZXJvVGltZSgpKTsKIAotICAgIHJldHVybiBhZGQoY3VlLCAwLCBtX2xpc3Quc2l6
ZSgpKTsKKyAgICBSZWZQdHI8VGV4dFRyYWNrQ3VlPiBjdWVSZWZQdHIgeyBXVEZNb3ZlKGN1ZSkg
fTsKKyAgICB1bnNpZ25lZCBpbnNlcnRpb25Qb3NpdGlvbiA9IHN0ZDo6dXBwZXJfYm91bmQobV92
ZWN0b3IuYmVnaW4oKSwgbV92ZWN0b3IuZW5kKCksIGN1ZVJlZlB0ciwgY29tcGFyZUN1ZXMpIC0g
bV92ZWN0b3IuYmVnaW4oKTsKKyAgICBBU1NFUlQoaW5zZXJ0aW9uUG9zaXRpb24gPT0gbV92ZWN0
b3Iuc2l6ZSgpIHx8IG1fdmVjdG9yW2luc2VydGlvblBvc2l0aW9uXSAhPSBjdWUucHRyKCkpOwor
ICAgIEFTU0VSVF9TT1JURUQobV92ZWN0b3IuYmVnaW4oKSwgbV92ZWN0b3IuZW5kKCkpOworICAg
IG1fdmVjdG9yLmluc2VydChpbnNlcnRpb25Qb3NpdGlvbiwgV1RGTW92ZShjdWVSZWZQdHIpKTsK
KyAgICBBU1NFUlRfU09SVEVEKG1fdmVjdG9yLmJlZ2luKCksIG1fdmVjdG9yLmVuZCgpKTsKIH0K
IAotYm9vbCBUZXh0VHJhY2tDdWVMaXN0OjphZGQoUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+IHBy
cEN1ZSwgc2l6ZV90IHN0YXJ0LCBzaXplX3QgZW5kKQordm9pZCBUZXh0VHJhY2tDdWVMaXN0Ojpy
ZW1vdmUoVGV4dFRyYWNrQ3VlJiBjdWUpCiB7Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04oc3RhcnQgPD0gbV9saXN0LnNpemUoKSk7Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJ
VFlfSU1QTElDQVRJT04oZW5kIDw9IG1fbGlzdC5zaXplKCkpOwotCi0gICAgLy8gTWFpbnRhaW4g
dGV4dCB0cmFjayBjdWUgb3JkZXI6Ci0gICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNz
L3dlYi1hcHBzL2N1cnJlbnQtd29yay8jdGV4dC10cmFjay1jdWUtb3JkZXIKLSAgICBSZWZQdHI8
VGV4dFRyYWNrQ3VlPiBjdWUgPSBwcnBDdWU7Ci0gICAgaWYgKHN0YXJ0ID09IGVuZCkgewotICAg
ICAgICBpZiAoIW1fbGlzdC5pc0VtcHR5KCkgJiYgKHN0YXJ0ID4gMCkgJiYgKG1fbGlzdFtzdGFy
dCAtIDFdLmdldCgpID09IGN1ZS5nZXQoKSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICAgICAgbV9saXN0Lmluc2VydChzdGFydCwgY3VlKTsKLSAgICAgICAgaW52YWxpZGF0ZUN1
ZUluZGV4ZXMoc3RhcnQpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBzaXpl
X3QgaW5kZXggPSAoc3RhcnQgKyBlbmQpIC8gMjsKLSAgICBpZiAoY3VlLT5pc09yZGVyZWRCZWZv
cmUobV9saXN0W2luZGV4XS5nZXQoKSkpCi0gICAgICAgIHJldHVybiBhZGQoV1RGTW92ZShjdWUp
LCBzdGFydCwgaW5kZXgpOwotCi0gICAgcmV0dXJuIGFkZChXVEZNb3ZlKGN1ZSksIGluZGV4ICsg
MSwgZW5kKTsKKyAgICBBU1NFUlRfU09SVEVEKG1fdmVjdG9yLmJlZ2luKCksIG1fdmVjdG9yLmVu
ZCgpKTsKKyAgICBtX3ZlY3Rvci5yZW1vdmUoY3VlSW5kZXgoY3VlKSk7CisgICAgQVNTRVJUX1NP
UlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSk7CiB9CiAKLWJvb2wgVGV4dFRy
YWNrQ3VlTGlzdDo6cmVtb3ZlKFRleHRUcmFja0N1ZSogY3VlKQordm9pZCBUZXh0VHJhY2tDdWVM
aXN0Ojp1cGRhdGVDdWVJbmRleChUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKLSAgICBzaXplX3QgaW5k
ZXggPSBtX2xpc3QuZmluZChjdWUpOwotICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgY3VlLT5zZXRJc0FjdGl2ZShmYWxzZSk7Ci0gICAgbV9s
aXN0LnJlbW92ZShpbmRleCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgVGV4dFRyYWNr
Q3VlTGlzdDo6Y29udGFpbnMoVGV4dFRyYWNrQ3VlKiBjdWUpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fbGlzdC5jb250YWlucyhjdWUpOwotfQotCi1ib29sIFRleHRUcmFja0N1ZUxpc3Q6OnVwZGF0
ZUN1ZUluZGV4KFRleHRUcmFja0N1ZSogY3VlKQotewotICAgIGlmICghY29udGFpbnMoY3VlKSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHJlbW92ZShjdWUpOwotICAgIHJldHVy
biBhZGQoY3VlKTsKLX0KLQotdm9pZCBUZXh0VHJhY2tDdWVMaXN0OjpjbGVhcigpCi17Ci0gICAg
bV9saXN0LmNsZWFyKCk7Ci19CisgICAgYXV0byBjdWVQb3NpdGlvbiA9IG1fdmVjdG9yLmJlZ2lu
KCkgKyBjdWVJbmRleChjdWUpOworICAgIGF1dG8gYWZ0ZXJDdWVQb3NpdGlvbiA9IGN1ZVBvc2l0
aW9uICsgMTsKKworICAgIEFTU0VSVF9TT1JURUQobV92ZWN0b3IuYmVnaW4oKSwgY3VlUG9zaXRp
b24pOworICAgIEFTU0VSVF9TT1JURUQoYWZ0ZXJDdWVQb3NpdGlvbiwgbV92ZWN0b3IuZW5kKCkp
OworCisgICAgYXV0byByZWluc2VydGlvblBvc2l0aW9uID0gc3RkOjp1cHBlcl9ib3VuZChtX3Zl
Y3Rvci5iZWdpbigpLCBjdWVQb3NpdGlvbiwgKmN1ZVBvc2l0aW9uLCBjb21wYXJlQ3Vlcyk7Cisg
ICAgaWYgKHJlaW5zZXJ0aW9uUG9zaXRpb24gIT0gY3VlUG9zaXRpb24pCisgICAgICAgIHN0ZDo6
cm90YXRlKHJlaW5zZXJ0aW9uUG9zaXRpb24sIGN1ZVBvc2l0aW9uLCBhZnRlckN1ZVBvc2l0aW9u
KTsKKyAgICBlbHNlIHsKKyAgICAgICAgcmVpbnNlcnRpb25Qb3NpdGlvbiA9IHN0ZDo6dXBwZXJf
Ym91bmQoYWZ0ZXJDdWVQb3NpdGlvbiwgbV92ZWN0b3IuZW5kKCksICpjdWVQb3NpdGlvbiwgY29t
cGFyZUN1ZXMpOworICAgICAgICBpZiAocmVpbnNlcnRpb25Qb3NpdGlvbiAhPSBhZnRlckN1ZVBv
c2l0aW9uKQorICAgICAgICAgICAgc3RkOjpyb3RhdGUoY3VlUG9zaXRpb24sIGFmdGVyQ3VlUG9z
aXRpb24sIHJlaW5zZXJ0aW9uUG9zaXRpb24pOworICAgIH0KIAotdm9pZCBUZXh0VHJhY2tDdWVM
aXN0OjppbnZhbGlkYXRlQ3VlSW5kZXhlcyhzaXplX3Qgc3RhcnQpCi17Ci0gICAgZm9yIChzaXpl
X3QgaSA9IHN0YXJ0OyBpIDwgbV9saXN0LnNpemUoKTsgKytpKQotICAgICAgICBtX2xpc3RbaV0t
PmludmFsaWRhdGVDdWVJbmRleCgpOworICAgIEFTU0VSVF9TT1JURUQobV92ZWN0b3IuYmVnaW4o
KSwgbV92ZWN0b3IuZW5kKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5oCmluZGV4IGEyMThmYjY5MDg5
NjI0YzFmMjgzOWM3NTNhYzEyNWZmMGRiM2MyOTkuLmZlMDRjNDQ2ZDI5NzdjN2ZjZTkzMmM2M2I4
Mjk3OTgzNGYyMjVlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrQ3VlTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
Q3VlTGlzdC5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjgsNDQgKzI5LDQyIEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVk
ZSAiVGV4dFRyYWNrQ3VlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBUZXh0VHJhY2tDdWVMaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8
VGV4dFRyYWNrQ3VlTGlzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VGV4dFRyYWNrQ3Vl
TGlzdD4gY3JlYXRlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRU
cmFja0N1ZUxpc3QpOwotICAgIH0KLQotICAgIH5UZXh0VHJhY2tDdWVMaXN0KCkgeyB9Ci0KLSAg
ICB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0OwotICAgIHVuc2lnbmVkIGxvbmcgZ2V0Q3Vl
SW5kZXgoVGV4dFRyYWNrQ3VlKikgY29uc3Q7CisgICAgc3RhdGljIFJlZjxUZXh0VHJhY2tDdWVM
aXN0PiBjcmVhdGUoKTsKIAorICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwogICAgIFRleHRU
cmFja0N1ZSogaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CiAgICAgVGV4dFRyYWNrQ3VlKiBn
ZXRDdWVCeUlkKGNvbnN0IFN0cmluZyYpIGNvbnN0OwotICAgIFRleHRUcmFja0N1ZUxpc3QqIGFj
dGl2ZUN1ZXMoKTsKIAotICAgIGJvb2wgYWRkKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPik7Ci0g
ICAgYm9vbCByZW1vdmUoVGV4dFRyYWNrQ3VlKik7Ci0gICAgYm9vbCBjb250YWlucyhUZXh0VHJh
Y2tDdWUqKSBjb25zdDsKLSAgICAKLSAgICBib29sIHVwZGF0ZUN1ZUluZGV4KFRleHRUcmFja0N1
ZSopOworICAgIHVuc2lnbmVkIGN1ZUluZGV4KFRleHRUcmFja0N1ZSYpIGNvbnN0OworCisgICAg
dm9pZCBhZGQoUmVmPFRleHRUcmFja0N1ZT4mJik7CisgICAgdm9pZCByZW1vdmUoVGV4dFRyYWNr
Q3VlJik7CisgICAgdm9pZCB1cGRhdGVDdWVJbmRleChUZXh0VHJhY2tDdWUmKTsKKworICAgIFRl
eHRUcmFja0N1ZUxpc3QmIGFjdGl2ZUN1ZXMoKTsKIAogcHJpdmF0ZToKLSAgICBUZXh0VHJhY2tD
dWVMaXN0KCk7Ci0gICAgYm9vbCBhZGQoUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+LCBzaXplX3Qs
IHNpemVfdCk7Ci0gICAgdm9pZCBjbGVhcigpOwotICAgIHZvaWQgaW52YWxpZGF0ZUN1ZUluZGV4
ZXMoc2l6ZV90KTsKKyAgICBUZXh0VHJhY2tDdWVMaXN0KCkgPSBkZWZhdWx0OwogCi0gICAgVmVj
dG9yPFJlZlB0cjxUZXh0VHJhY2tDdWU+PiBtX2xpc3Q7CisgICAgVmVjdG9yPFJlZlB0cjxUZXh0
VHJhY2tDdWU+PiBtX3ZlY3RvcjsKICAgICBSZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gbV9hY3Rp
dmVDdWVzOwogfTsKIAoraW5saW5lIFJlZjxUZXh0VHJhY2tDdWVMaXN0PiBUZXh0VHJhY2tDdWVM
aXN0OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRUcmFja0N1ZUxp
c3QpOworfQorCitpbmxpbmUgdW5zaWduZWQgVGV4dFRyYWNrQ3VlTGlzdDo6bGVuZ3RoKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV92ZWN0b3Iuc2l6ZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU9fVFJBQ0spCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RyYWNrQmFzZS5jcHAKaW5kZXggN2RkOGRkYjRiZjY0ZTVkODIzMTZhNGVmZGVjNTMx
N2UxNTBkNmMxZC4uYzhhM2YzOGQ1NzhlNGZhZTQxNWVmOGVkZTJjNTQwM2Y4ZmFjNWM4MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjgsNyArNjgsNyBAQCB2b2lk
IE1lZGlhVHJhY2tCYXNlOjpzZXRLaW5kSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiBraW5k
KQogICAgIGlmIChpc1ZhbGlkS2luZChraW5kKSkKICAgICAgICAgbV9raW5kID0ga2luZDsKICAg
ICBlbHNlCi0gICAgICAgIG1fa2luZCA9IGRlZmF1bHRLaW5kS2V5d29yZCgpOworICAgICAgICBt
X2tpbmQgPSBlbXB0eUF0b207CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5oCmluZGV4IGQ2YzVlNDg1NmE1NWFhODhmNGM2OWYwNzNk
MDdkMDZkNGIwYjVjNzAuLmZhODI1Mjc1YjhjYWUxNWJhMDE5MTRkOTgwODk3M2NhNjdjY2ExYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsOSArMjcsNyBAQAogCiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKLSNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC05Nyw3ICs5NSw2IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
aXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3QgPSAwOwotICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBkZWZhdWx0S2luZEtleXdvcmQoKSBjb25zdCA9IDA7CiAKICAg
ICBBdG9taWNTdHJpbmcgbV9raW5kOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZU
VFJlZ2lvbkxpc3QuY3BwCmluZGV4IGI3ZTc5ZDBmN2U2YmJjNzRlNDFhNzFmZDViZWU3NDFkYzEy
ZDdkZDIuLmNmYzE2MjIzZjM1MzRjOWRmNmFjZGYwZDc1YTJjYmYwOTA4YjgzYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNwcApAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw1NyArMjksNDEgQEAK
IAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVZU
VFJlZ2lvbkxpc3Q6OlZUVFJlZ2lvbkxpc3QoKQotewotfQotCi11bnNpZ25lZCBsb25nIFZUVFJl
Z2lvbkxpc3Q6Omxlbmd0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbGlzdC5zaXplKCk7Ci19
Ci0KIFZUVFJlZ2lvbiogVlRUUmVnaW9uTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QK
IHsKLSAgICBpZiAoaW5kZXggPCBtX2xpc3Quc2l6ZSgpKQotICAgICAgICByZXR1cm4gbV9saXN0
W2luZGV4XS5nZXQoKTsKLQotICAgIHJldHVybiAwOworICAgIGlmIChpbmRleCA+PSBtX3ZlY3Rv
ci5zaXplKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjb25zdF9jYXN0
PFZUVFJlZ2lvbio+KG1fdmVjdG9yW2luZGV4XS5wdHIoKSk7CiB9CiAKIFZUVFJlZ2lvbiogVlRU
UmVnaW9uTGlzdDo6Z2V0UmVnaW9uQnlJZChjb25zdCBTdHJpbmcmIGlkKSBjb25zdAogeworICAg
IC8vIEZJWE1FOiBXaHkgaXMgdGhpcyBzcGVjaWFsIGNhc2UgbmVlZGVkPwogICAgIGlmIChpZC5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgZm9yIChjb25zdCBhdXRvJiByZWdp
b24gOiBtX2xpc3QpIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgZm9yIChhdXRvJiBy
ZWdpb24gOiBtX3ZlY3RvcikgewogICAgICAgICBpZiAocmVnaW9uLT5pZCgpID09IGlkKQotICAg
ICAgICAgICAgcmV0dXJuIHJlZ2lvbi5nZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9j
YXN0PFZUVFJlZ2lvbio+KHJlZ2lvbi5wdHIoKSk7CiAgICAgfQotCi0gICAgcmV0dXJuIDA7Cisg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgVlRUUmVnaW9uTGlzdDo6YWRkKFBhc3NSZWZQ
dHI8VlRUUmVnaW9uPiByZWdpb24pCit2b2lkIFZUVFJlZ2lvbkxpc3Q6OmFkZChSZWY8VlRUUmVn
aW9uPiYmIHJlZ2lvbikKIHsKLSAgICBtX2xpc3QuYXBwZW5kKHJlZ2lvbik7CisgICAgbV92ZWN0
b3IuYXBwZW5kKFdURk1vdmUocmVnaW9uKSk7CiB9CiAKLWJvb2wgVlRUUmVnaW9uTGlzdDo6cmVt
b3ZlKFZUVFJlZ2lvbiogcmVnaW9uKQordm9pZCBWVFRSZWdpb25MaXN0OjpyZW1vdmUoVlRUUmVn
aW9uJiByZWdpb24pCiB7Ci0gICAgc2l6ZV90IGluZGV4ID0gbV9saXN0LmZpbmQocmVnaW9uKTsK
LSAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IG1fbGlzdC5yZW1vdmUoaW5kZXgpOwotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIFZUVFJl
Z2lvbkxpc3Q6OmNsZWFyKCkKLXsKLSAgICBtX2xpc3QuY2xlYXIoKTsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwLCBzaXplID0gbV92ZWN0b3Iuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7CisgICAg
ICAgIGlmIChtX3ZlY3RvcltpXS5wdHIoKSA9PSAmcmVnaW9uKSB7CisgICAgICAgICAgICBtX3Zl
Y3Rvci5yZW1vdmUoaSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmgKaW5kZXggMmZkZGRjMmVkMTlh
NTZlNDgxYWFjZjQ2NWJjODhhN2IyYjdmY2NlMy4uN2Y5ZmQ1NWRjYmUxMjQ3ZjI4YjljMzkzOWMy
MDhiZThlOTQwNmQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRS
ZWdpb25MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0
LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjksMzYgKzI5LDQzIEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAi
VlRUUmVnaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBWVFRSZWdpb25MaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8VlRUUmVnaW9u
TGlzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VlRUUmVnaW9uTGlzdD4gY3JlYXRlKCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZUVFJlZ2lvbkxpc3QpOwotICAg
IH0KLQotICAgIH5WVFRSZWdpb25MaXN0KCkgeyB9Ci0KLSAgICB1bnNpZ25lZCBsb25nIGxlbmd0
aCgpIGNvbnN0OworICAgIHN0YXRpYyBSZWY8VlRUUmVnaW9uTGlzdD4gY3JlYXRlKCk7CiAKKyAg
ICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKICAgICBWVFRSZWdpb24qIGl0ZW0odW5zaWduZWQg
aW5kZXgpIGNvbnN0OwogICAgIFZUVFJlZ2lvbiogZ2V0UmVnaW9uQnlJZChjb25zdCBTdHJpbmcm
KSBjb25zdDsKIAotICAgIHZvaWQgYWRkKFBhc3NSZWZQdHI8VlRUUmVnaW9uPik7Ci0gICAgYm9v
bCByZW1vdmUoVlRUUmVnaW9uKik7CisgICAgdm9pZCBhZGQoUmVmPFZUVFJlZ2lvbj4mJik7Cisg
ICAgdm9pZCByZW1vdmUoVlRUUmVnaW9uJik7CiAKIHByaXZhdGU6Ci0gICAgVlRUUmVnaW9uTGlz
dCgpOworICAgIFZUVFJlZ2lvbkxpc3QoKSA9IGRlZmF1bHQ7CisKICAgICB2b2lkIGNsZWFyKCk7
CiAKLSAgICBWZWN0b3I8UmVmUHRyPFZUVFJlZ2lvbj4+IG1fbGlzdDsKKyAgICBWZWN0b3I8UmVm
PFZUVFJlZ2lvbj4+IG1fdmVjdG9yOwogfTsKIAoraW5saW5lIFJlZjxWVFRSZWdpb25MaXN0PiBW
VFRSZWdpb25MaXN0OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZUVFJl
Z2lvbkxpc3QpOworfQorCitpbmxpbmUgdW5zaWduZWQgVlRUUmVnaW9uTGlzdDo6bGVuZ3RoKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV92ZWN0b3Iuc2l6ZSgpOworfQorCitpbmxpbmUgdm9pZCBW
VFRSZWdpb25MaXN0OjpjbGVhcigpCit7CisgICAgbV92ZWN0b3IuY2xlYXIoKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5pZGwKaW5kZXggNTM4MWQzOWM2
NmYxY2ZjM2QwMjFiMWRjNDBlYzMyODE0MmM3YmNkMS4uODQzMWQ4YjUxYjJhZDQwZDlhMDkxYjY3
Y2I4NWZlNTA5NjA5YTg5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9W
VFRSZWdpb25MaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lv
bkxpc3QuaWRsCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBHb29n
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjQsMTIgKzI1LDExIEBACiAgKi8KIAogWwotICAgIE5vSW50ZXJmYWNlT2JqZWN0LAog
ICAgIENvbmRpdGlvbmFsPVZJREVPX1RSQUNLLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFi
bGUsCisgICAgTm9JbnRlcmZhY2VPYmplY3QsCiBdIGludGVyZmFjZSBWVFRSZWdpb25MaXN0IHsK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgZ2V0dGVy
IFZUVFJlZ2lvbiBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwotICAgIFZUVFJlZ2lvbiBnZXRS
ZWdpb25CeUlkKERPTVN0cmluZyBpZCk7CisgICAgZ2V0dGVyIFZUVFJlZ2lvbj8gaXRlbSh1bnNp
Z25lZCBsb25nIGluZGV4KTsKKyAgICBWVFRSZWdpb24/IGdldFJlZ2lvbkJ5SWQoRE9NU3RyaW5n
IGlkKTsKIH07Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9U
cmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCmluZGV4
IGY4MGJjMTBhOGNjOGRlMjgyZDlmYWYzMTk0NmQ2MWNkZTBjYmM0MzEuLjQwOTdlMTZiYTVmZTll
NzZhZTI3MjU2MGYxODAyYTM1NDdlNzFmYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9W
aWRlb1RyYWNrLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEs
IDIwMTIsIDIwMTMgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzAsMTIgKzMwLDEwIEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2suaCIKIAogI2lmIEVOQUJMRShW
SURFT19UUkFDSykKIAotI2luY2x1ZGUgIlZpZGVvVHJhY2suaCIKLQotI2luY2x1ZGUgIkV2ZW50
LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tM
aXN0LmgiCiAKQEAgLTgxLDEwICs3OSwxMCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFZpZGVvVHJh
Y2s6OmNvbW1lbnRhcnlLZXl3b3JkKCkKICAgICByZXR1cm4gY29tbWVudGFyeTsKIH0KIAotVmlk
ZW9UcmFjazo6VmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8
VmlkZW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKLSAgICA6IE1lZGlhVHJhY2tCYXNlKE1l
ZGlhVHJhY2tCYXNlOjpWaWRlb1RyYWNrLCB0cmFja1ByaXZhdGUtPmlkKCksIHRyYWNrUHJpdmF0
ZS0+bGFiZWwoKSwgdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpKQotICAgICwgbV9zZWxlY3RlZCh0
cmFja1ByaXZhdGUtPnNlbGVjdGVkKCkpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCitWaWRlb1Ry
YWNrOjpWaWRlb1RyYWNrKFZpZGVvVHJhY2tDbGllbnQmIGNsaWVudCwgVmlkZW9UcmFja1ByaXZh
dGUmIHRyYWNrUHJpdmF0ZSkKKyAgICA6IE1lZGlhVHJhY2tCYXNlKE1lZGlhVHJhY2tCYXNlOjpW
aWRlb1RyYWNrLCB0cmFja1ByaXZhdGUuaWQoKSwgdHJhY2tQcml2YXRlLmxhYmVsKCksIHRyYWNr
UHJpdmF0ZS5sYW5ndWFnZSgpKQorICAgICwgbV9zZWxlY3RlZCh0cmFja1ByaXZhdGUuc2VsZWN0
ZWQoKSkKKyAgICAsIG1fY2xpZW50KCZjbGllbnQpCiAgICAgLCBtX3ByaXZhdGUodHJhY2tQcml2
YXRlKQogewogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwpAQCAtOTMsMTUgKzkxLDEy
IEBAIFZpZGVvVHJhY2s6OlZpZGVvVHJhY2soVmlkZW9UcmFja0NsaWVudCogY2xpZW50LCBQYXNz
UmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPiB0CiAKIFZpZGVvVHJhY2s6On5WaWRlb1RyYWNrKCkK
IHsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudCgwKTsKKyAgICBtX3ByaXZhdGUtPnNldENsaWVu
dChudWxscHRyKTsKIH0KIAotdm9pZCBWaWRlb1RyYWNrOjpzZXRQcml2YXRlKFBhc3NSZWZQdHI8
VmlkZW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKK3ZvaWQgVmlkZW9UcmFjazo6c2V0UHJp
dmF0ZShWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewotICAgIEFTU0VSVChtX3By
aXZhdGUpOwotICAgIEFTU0VSVCh0cmFja1ByaXZhdGUpOwotCi0gICAgaWYgKG1fcHJpdmF0ZSA9
PSB0cmFja1ByaXZhdGUpCisgICAgaWYgKG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRl
KQogICAgICAgICByZXR1cm47CiAKICAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsK
QEAgLTExNCwyMCArMTA5LDEyIEBAIHZvaWQgVmlkZW9UcmFjazo6c2V0UHJpdmF0ZShQYXNzUmVm
UHRyPFZpZGVvVHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCiAKIGJvb2wgVmlkZW9UcmFjazo6
aXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkgY29uc3QKIHsKLSAgICBpZiAo
dmFsdWUgPT0gYWx0ZXJuYXRpdmVLZXl3b3JkKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAg
IGlmICh2YWx1ZSA9PSBjYXB0aW9uc0tleXdvcmQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgaWYgKHZhbHVlID09IG1haW5LZXl3b3JkKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAg
IGlmICh2YWx1ZSA9PSBzaWduS2V5d29yZCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBp
ZiAodmFsdWUgPT0gc3VidGl0bGVzS2V5d29yZCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICBpZiAodmFsdWUgPT0gY29tbWVudGFyeUtleXdvcmQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHZhbHVlID09IGFsdGVybmF0aXZlS2V5
d29yZCgpCisgICAgICAgIHx8IHZhbHVlID09IGNvbW1lbnRhcnlLZXl3b3JkKCkKKyAgICAgICAg
fHwgdmFsdWUgPT0gY2FwdGlvbnNLZXl3b3JkKCkKKyAgICAgICAgfHwgdmFsdWUgPT0gbWFpbktl
eXdvcmQoKQorICAgICAgICB8fCB2YWx1ZSA9PSBzaWduS2V5d29yZCgpCisgICAgICAgIHx8IHZh
bHVlID09IHN1YnRpdGxlc0tleXdvcmQoKTsKIH0KIAogdm9pZCBWaWRlb1RyYWNrOjpzZXRTZWxl
Y3RlZChjb25zdCBib29sIHNlbGVjdGVkKQpAQCAtMTM5LDQ2ICsxMjYsNDQgQEAgdm9pZCBWaWRl
b1RyYWNrOjpzZXRTZWxlY3RlZChjb25zdCBib29sIHNlbGVjdGVkKQogICAgIG1fcHJpdmF0ZS0+
c2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2Ns
aWVudC0+dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCh0aGlzKTsKKyAgICAgICAgbV9jbGllbnQt
PnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoKnRoaXMpOwogfQogCiBzaXplX3QgVmlkZW9UcmFj
azo6aW5iYW5kVHJhY2tJbmRleCgpCiB7Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7CiAgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+dHJhY2tJbmRleCgpOwogfQogCi12b2lkIFZpZGVvVHJhY2s6OnNlbGVj
dGVkQ2hhbmdlZChWaWRlb1RyYWNrUHJpdmF0ZSogdHJhY2tQcml2YXRlLCBib29sIHNlbGVjdGVk
KQordm9pZCBWaWRlb1RyYWNrOjpzZWxlY3RlZENoYW5nZWQoYm9vbCBzZWxlY3RlZCkKIHsKLSAg
ICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7
CiAgICAgc2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOwogfQogCi12b2lkIFZpZGVvVHJhY2s6OmlkQ2hh
bmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYg
aWQpCit2b2lkIFZpZGVvVHJhY2s6OmlkQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKQog
ewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2
YXRlKTsKICAgICBzZXRJZChpZCk7CiB9CiAKLXZvaWQgVmlkZW9UcmFjazo6bGFiZWxDaGFuZ2Vk
KFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJl
bCkKK3ZvaWQgVmlkZW9UcmFjazo6bGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFi
ZWwpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBt
X3ByaXZhdGUpOwogICAgIHNldExhYmVsKGxhYmVsKTsKIH0KIAotdm9pZCBWaWRlb1RyYWNrOjps
YW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGxhbmd1YWdlKQordm9pZCBWaWRlb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoY29u
c3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJp
dmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0TGFuZ3VhZ2UobGFuZ3Vh
Z2UpOwogfQogCi12b2lkIFZpZGVvVHJhY2s6OndpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSog
dHJhY2tQcml2YXRlKQordm9pZCBWaWRlb1RyYWNrOjp3aWxsUmVtb3ZlKCkKIHsKLSAgICBBU1NF
UlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7Ci0gICAg
bWVkaWFFbGVtZW50KCktPnJlbW92ZVZpZGVvVHJhY2soKnRoaXMpOworICAgIGF1dG8qIGVsZW1l
bnQgPSBtZWRpYUVsZW1lbnQoKTsKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybjsK
KyAgICBlbGVtZW50LT5yZW1vdmVWaWRlb1RyYWNrKCp0aGlzKTsKIH0KIAogI2lmIEVOQUJMRShN
RURJQV9TT1VSQ0UpCisKIHZvaWQgVmlkZW9UcmFjazo6c2V0S2luZChjb25zdCBBdG9taWNTdHJp
bmcmIGtpbmQpCiB7CiAgICAgLy8gMTAuMSBraW5kLCBvbiBzZXR0aW5nOgpAQCAtMTkzLDcgKzE3
OCw3IEBAIHZvaWQgVmlkZW9UcmFjazo6c2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQp
CiAgICAgLy8gMy4gSWYgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhpcyB0cmFjayBp
cyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZQogICAgIC8vIGV2
ZW50IG5hbWVkIGNoYW5nZSBhdCBzb3VyY2VCdWZmZXIudmlkZW9UcmFja3MuCiAgICAgaWYgKG1f
c291cmNlQnVmZmVyKQotICAgICAgICBtX3NvdXJjZUJ1ZmZlci0+dmlkZW9UcmFja3MoKS0+c2No
ZWR1bGVDaGFuZ2VFdmVudCgpOworICAgICAgICBtX3NvdXJjZUJ1ZmZlci0+dmlkZW9UcmFja3Mo
KS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICAgICAvLyA0LiBRdWV1ZSBhIHRhc2sgdG8gZmly
ZSBhIHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2UgYXQgdGhlIFZpZGVvVHJhY2tMaXN0IG9iamVj
dCByZWZlcmVuY2VkIGJ5CiAgICAgLy8gdGhlIHZpZGVvVHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUg
SFRNTE1lZGlhRWxlbWVudC4KQEAgLTIxMywxMiArMTk4LDEzIEBAIHZvaWQgVmlkZW9UcmFjazo6
c2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKICAgICAvLyAzLiBJZiB0
aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVu
IHF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlCiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdl
IGF0IHNvdXJjZUJ1ZmZlci52aWRlb1RyYWNrcy4KICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0g
ICAgICAgIG1fc291cmNlQnVmZmVyLT52aWRlb1RyYWNrcygpLT5zY2hlZHVsZUNoYW5nZUV2ZW50
KCk7CisgICAgICAgIG1fc291cmNlQnVmZmVyLT52aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdl
RXZlbnQoKTsKIAogICAgIC8vIDQuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50
IG5hbWVkIGNoYW5nZSBhdCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkK
ICAgICAvLyB0aGUgdmlkZW9UcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50
LgogICAgIG1lZGlhRWxlbWVudCgpLT52aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQo
KTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgVmlkZW9UcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRl
KCkKQEAgLTIyNiwyOSArMjEyLDI3IEBAIHZvaWQgVmlkZW9UcmFjazo6dXBkYXRlS2luZEZyb21Q
cml2YXRlKCkKICAgICBzd2l0Y2ggKG1fcHJpdmF0ZS0+a2luZCgpKSB7CiAgICAgY2FzZSBWaWRl
b1RyYWNrUHJpdmF0ZTo6QWx0ZXJuYXRpdmU6CiAgICAgICAgIHNldEtpbmRJbnRlcm5hbChWaWRl
b1RyYWNrOjphbHRlcm5hdGl2ZUtleXdvcmQoKSk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICBy
ZXR1cm47CiAgICAgY2FzZSBWaWRlb1RyYWNrUHJpdmF0ZTo6Q2FwdGlvbnM6CiAgICAgICAgIHNl
dEtpbmRJbnRlcm5hbChWaWRlb1RyYWNrOjpjYXB0aW9uc0tleXdvcmQoKSk7Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBWaWRlb1RyYWNrUHJpdmF0ZTo6TWFpbjoK
ICAgICAgICAgc2V0S2luZEludGVybmFsKFZpZGVvVHJhY2s6Om1haW5LZXl3b3JkKCkpOwotICAg
ICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmlkZW9UcmFja1ByaXZhdGU6
OlNpZ246CiAgICAgICAgIHNldEtpbmRJbnRlcm5hbChWaWRlb1RyYWNrOjpzaWduS2V5d29yZCgp
KTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFZpZGVvVHJhY2tQ
cml2YXRlOjpTdWJ0aXRsZXM6CiAgICAgICAgIHNldEtpbmRJbnRlcm5hbChWaWRlb1RyYWNrOjpz
dWJ0aXRsZXNLZXl3b3JkKCkpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAg
IGNhc2UgVmlkZW9UcmFja1ByaXZhdGU6OkNvbW1lbnRhcnk6CiAgICAgICAgIHNldEtpbmRJbnRl
cm5hbChWaWRlb1RyYWNrOjpjb21tZW50YXJ5S2V5d29yZCgpKTsKLSAgICAgICAgYnJlYWs7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIFZpZGVvVHJhY2tQcml2YXRlOjpOb25lOgogICAgICAg
ICBzZXRLaW5kSW50ZXJuYWwoZW1wdHlTdHJpbmcoKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRl
ZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKKyAg
ICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WaWRlb1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaApp
bmRleCBjNTJmOWIzYjEyZmM2OTY4OGRhN2ZkNjcwMzM3MDFmYjFiODRmMzJjLi5lYmVlODI5ZTE2
OThmYzFjMmIxM2M1YjBlMTBmYzk0OWRlZTJiNTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZpZGVvVHJhY2suaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwg
MjAxMiwgMjAxMyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSwxMiArMzksMTIgQEAgY2xhc3MgVmlkZW9UcmFj
azsKIGNsYXNzIFZpZGVvVHJhY2tDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgflZpZGVv
VHJhY2tDbGllbnQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hh
bmdlZChWaWRlb1RyYWNrKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrU2VsZWN0
ZWRDaGFuZ2VkKFZpZGVvVHJhY2smKSA9IDA7CiB9OwogCi1jbGFzcyBWaWRlb1RyYWNrIGZpbmFs
IDogcHVibGljIE1lZGlhVHJhY2tCYXNlLCBwdWJsaWMgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQg
eworY2xhc3MgVmlkZW9UcmFjayBmaW5hbCA6IHB1YmxpYyBNZWRpYVRyYWNrQmFzZSwgcHJpdmF0
ZSBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxWaWRl
b1RyYWNrPiBjcmVhdGUoVmlkZW9UcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPFZpZGVv
VHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCisgICAgc3RhdGljIFJlZjxWaWRlb1RyYWNrPiBj
cmVhdGUoVmlkZW9UcmFja0NsaWVudCYgY2xpZW50LCBWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQ
cml2YXRlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFjayhj
bGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogICAgIH0KQEAgLTU2LDQ4ICs1Niw0NiBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc2lnbktleXdvcmQoKTsKICAgICBzdGF0
aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdWJ0aXRsZXNLZXl3b3JkKCk7CiAgICAgc3RhdGljIGNv
bnN0IEF0b21pY1N0cmluZyYgY29tbWVudGFyeUtleXdvcmQoKTsKLSAgICBjb25zdCBBdG9taWNT
dHJpbmcmIGRlZmF1bHRLaW5kS2V5d29yZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGVtcHR5
QXRvbTsgfQogCiAgICAgYm9vbCBzZWxlY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0ZWQ7
IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWQoY29uc3QgYm9vbCk7CiAKLSAgICB2b2lk
IGNsZWFyQ2xpZW50KCkgb3ZlcnJpZGUgeyBtX2NsaWVudCA9IDA7IH0KKyAgICB2b2lkIGNsZWFy
Q2xpZW50KCkgZmluYWwgeyBtX2NsaWVudCA9IG51bGxwdHI7IH0KICAgICBWaWRlb1RyYWNrQ2xp
ZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQogCiAgICAgc2l6ZV90IGlu
YmFuZFRyYWNrSW5kZXgoKTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgdm9pZCBz
ZXRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0TGFuZ3Vh
Z2UoY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRLaW5kKGNvbnN0
IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgc2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWlj
U3RyaW5nJikgZmluYWw7CiAjZW5kaWYKIAogICAgIGNvbnN0IE1lZGlhRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldFByaXZhdGUoUGFzc1JlZlB0cjxWaWRl
b1RyYWNrUHJpdmF0ZT4pOwotCi1wcm90ZWN0ZWQ6Ci0gICAgVmlkZW9UcmFjayhWaWRlb1RyYWNr
Q2xpZW50KiwgUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4gcHJpdmF0ZVRyYWNrKTsKKyAg
ICB2b2lkIHNldFByaXZhdGUoVmlkZW9UcmFja1ByaXZhdGUmKTsKIAogcHJpdmF0ZToKLSAgICBi
b29sIGlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IG92ZXJyaWRlOworICAg
IFZpZGVvVHJhY2soVmlkZW9UcmFja0NsaWVudCYsIFZpZGVvVHJhY2tQcml2YXRlJik7CisKKyAg
ICBib29sIGlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IGZpbmFsOwogCiAg
ICAgLy8gVmlkZW9UcmFja1ByaXZhdGVDbGllbnQKLSAgICB2b2lkIHNlbGVjdGVkQ2hhbmdlZChW
aWRlb1RyYWNrUHJpdmF0ZSosIGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2VsZWN0ZWRDaGFu
Z2VkKGJvb2wpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAotICAgIHZv
aWQgaWRDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRv
bWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2
YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbFJl
bW92ZShUcmFja1ByaXZhdGVCYXNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBpZENoYW5nZWQoY29u
c3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYWJlbENoYW5nZWQoY29uc3QgQXRv
bWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJikgZmluYWw7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAKLSAgICBib29s
IGVuYWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzZWxlY3RlZCgpOyB9CisgICAgYm9v
bCBlbmFibGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gc2VsZWN0ZWQoKTsgfQogCiAgICAgdm9p
ZCB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIAogICAgIGJvb2wgbV9zZWxlY3RlZDsKICAgICBW
aWRlb1RyYWNrQ2xpZW50KiBtX2NsaWVudDsKIAotICAgIFJlZlB0cjxWaWRlb1RyYWNrUHJpdmF0
ZT4gbV9wcml2YXRlOworICAgIFJlZjxWaWRlb1RyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
CmluZGV4IDJjMTIzOTVmYTY2MWQxNWJiNTQ1MDg4OTRmYzBhYWNkZDU1Y2U2ZTcuLjNiZDg4YjRm
NjM5N2JmYTY2YWZiZTk2NmZiM2QzM2FkYWZhYTlhMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IEVy
aWMgU2VpZGVsIChlcmljQHdlYmtpdC5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICogQ29weXJp
Z2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgpAQCAtMTcyLDcgKzE3Miw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVu
UGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXIq
KSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0
cmluZz4mLCBGaWxlSWNvbkxvYWRlciYpIG92ZXJyaWRlIHsgfQogCiAgICAgdm9pZCBlbGVtZW50
RGlkRm9jdXMoY29uc3QgTm9kZSopIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgZWxlbWVudERpZEJs
dXIoY29uc3QgTm9kZSopIG92ZXJyaWRlIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1BpbmdMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIu
Y3BwCmluZGV4IDAxODg5NDZlN2Q4ZGY0MjUyYzFlZDQ5NGFkN2E5OTE2NzY5MTE2OGIuLjQ3MzJh
OTI1NTU3MmYxZjg2YmU5M2VkMTVmZjRkZTE2YmM5MzAwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UGluZ0xvYWRlci5jcHAKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
Um9vcGVzaCBDaGFuZGVyIChyb29wQHJvb3BjLm5ldCkKLSAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKQEAgLTU3LDM4ICs1Nyw1MCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLSNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotc3RhdGljIENvbnRlbnRFeHRl
bnNpb25zOjpCbG9ja2VkU3RhdHVzIHByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2Fk
KGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwsIFJlc291cmNlVHlwZSByZXNvdXJj
ZVR5cGUpCisjaWYgIUVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCisKKy8vIFJldHVybnMgdHJ1
ZSBpZiB3ZSBzaG91bGQgYmxvY2sgdGhlIGxvYWQuCitzdGF0aWMgaW5saW5lIGJvb2wgcHJvY2Vz
c0NvbnRlbnRFeHRlbnNpb25SdWxlc0ZvckxvYWQoY29uc3QgRnJhbWUmLCBSZXNvdXJjZVJlcXVl
c3QmLCBSZXNvdXJjZVR5cGUpCiB7Ci0gICAgaWYgKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExv
YWRlciA9IGZyYW1lLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpIHsKLSAgICAgICAgaWYgKFBh
Z2UqIHBhZ2UgPSBmcmFtZS5wYWdlKCkpCi0gICAgICAgICAgICByZXR1cm4gcGFnZS0+dXNlckNv
bnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKHVybCwg
cmVzb3VyY2VUeXBlLCAqZG9jdW1lbnRMb2FkZXIpOwotICAgIH0KLSAgICByZXR1cm4geyB9Owor
ICAgIHJldHVybiBmYWxzZTsKK30KKworI2Vsc2UKKworLy8gUmV0dXJucyB0cnVlIGlmIHdlIHNo
b3VsZCBibG9jayB0aGUgbG9hZC4KK3N0YXRpYyBib29sIHByb2Nlc3NDb250ZW50RXh0ZW5zaW9u
UnVsZXNGb3JMb2FkKGNvbnN0IEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBSZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlKQoreworICAgIGF1dG8qIGRvY3VtZW50TG9hZGVy
ID0gZnJhbWUubG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKTsKKyAgICBpZiAoIWRvY3VtZW50TG9h
ZGVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0byogcGFnZSA9IGZyYW1lLnBhZ2Uo
KTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBhdXRvIHN0YXR1
cyA9IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1
bGVzRm9yTG9hZChyZXF1ZXN0LnVybCgpLCByZXNvdXJjZVR5cGUsICpkb2N1bWVudExvYWRlcik7
CisgICAgYXBwbHlCbG9ja2VkU3RhdHVzVG9SZXF1ZXN0KHN0YXR1cywgcmVxdWVzdCk7CisgICAg
cmV0dXJuIHN0YXR1cy5ibG9ja2VkTG9hZDsKIH0KKwogI2VuZGlmCiAKIHZvaWQgUGluZ0xvYWRl
cjo6bG9hZEltYWdlKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiB7Ci0gICAgaWYgKCFm
cmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5jYW5EaXNwbGF5KHVybCkpIHsKKyAg
ICBBU1NFUlQoZnJhbWUuZG9jdW1lbnQoKSk7CisgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUu
ZG9jdW1lbnQoKTsKKworICAgIGlmICghZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS0+Y2FuRGlz
cGxheSh1cmwpKSB7CiAgICAgICAgIEZyYW1lTG9hZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQo
JmZyYW1lLCB1cmwpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QodXJsKTsKLQotI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAg
YXV0byBibG9ja2VkU3RhdHVzID0gcHJvY2Vzc0NvbnRlbnRFeHRlbnNpb25SdWxlc0ZvckxvYWQo
ZnJhbWUsIHVybCwgUmVzb3VyY2VUeXBlOjpJbWFnZSk7Ci0gICAgYXBwbHlCbG9ja2VkU3RhdHVz
VG9SZXF1ZXN0KGJsb2NrZWRTdGF0dXMsIHJlcXVlc3QpOwotICAgIGlmIChibG9ja2VkU3RhdHVz
LmJsb2NrZWRMb2FkKQorICAgIGlmIChwcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9h
ZChmcmFtZSwgcmVxdWVzdCwgUmVzb3VyY2VUeXBlOjpJbWFnZSkpCiAgICAgICAgIHJldHVybjsK
LSNlbmRpZgogCi0gICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLmRvY3VtZW50KCkp
Ci0gICAgICAgIGRvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2Vj
dXJlUmVxdWVzdElmTmVlZGVkKHJlcXVlc3QsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1
cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CisgICAgZG9jdW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5
KCktPnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRlZChyZXF1ZXN0LCBDb250ZW50U2VjdXJp
dHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6OkxvYWQpOwogCiAgICAgcmVxdWVzdC5zZXRI
VFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNhY2hlQ29udHJvbCwgIm1heC1hZ2U9MCIp
OwotICAgIFN0cmluZyByZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVy
SGVhZGVyKGZyYW1lLmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIHJlcXVlc3QudXJsKCks
IGZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSk7CisgICAgU3RyaW5nIHJlZmVycmVy
ID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIoZG9jdW1lbnQucmVmZXJy
ZXJQb2xpY3koKSwgcmVxdWVzdC51cmwoKSwgZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJl
cigpKTsKICAgICBpZiAoIXJlZmVycmVyLmlzRW1wdHkoKSkKICAgICAgICAgcmVxdWVzdC5zZXRI
VFRQUmVmZXJyZXIocmVmZXJyZXIpOwogICAgIGZyYW1lLmxvYWRlcigpLmFkZEV4dHJhRmllbGRz
VG9TdWJyZXNvdXJjZVJlcXVlc3QocmVxdWVzdCk7CkBAIC05OSwxOSArMTExLDE3IEBAIHZvaWQg
UGluZ0xvYWRlcjo6bG9hZEltYWdlKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAvLyBo
dHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFn
ZS9saW5rcy5odG1sI2h5cGVybGluay1hdWRpdGluZwogdm9pZCBQaW5nTG9hZGVyOjpzZW5kUGlu
ZyhGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcGluZ1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGlv
blVSTCkKIHsKKyAgICBBU1NFUlQoZnJhbWUuZG9jdW1lbnQoKSk7CisKICAgICBpZiAoIXBpbmdV
UkwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdChwaW5nVVJMKTsKLSAgICAKLSNpZiBFTkFCTEUoQ09OVEVOVF9F
WFRFTlNJT05TKQotICAgIGF1dG8gYmxvY2tlZFN0YXR1cyA9IHByb2Nlc3NDb250ZW50RXh0ZW5z
aW9uUnVsZXNGb3JMb2FkKGZyYW1lLCBwaW5nVVJMLCBSZXNvdXJjZVR5cGU6OlJhdyk7Ci0gICAg
YXBwbHlCbG9ja2VkU3RhdHVzVG9SZXF1ZXN0KGJsb2NrZWRTdGF0dXMsIHJlcXVlc3QpOwotICAg
IGlmIChibG9ja2VkU3RhdHVzLmJsb2NrZWRMb2FkKQorICAgIGlmIChwcm9jZXNzQ29udGVudEV4
dGVuc2lvblJ1bGVzRm9yTG9hZChmcmFtZSwgcmVxdWVzdCwgUmVzb3VyY2VUeXBlOjpSYXcpKQog
ICAgICAgICByZXR1cm47Ci0jZW5kaWYKIAotICAgIGZyYW1lLmRvY3VtZW50KCktPmNvbnRlbnRT
ZWN1cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdCwg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsKKyAgICBh
dXRvJiBkb2N1bWVudCA9ICpmcmFtZS5kb2N1bWVudCgpOworICAgIGRvY3VtZW50LmNvbnRlbnRT
ZWN1cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdCwg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsKIAogICAg
IHJlcXVlc3Quc2V0SFRUUE1ldGhvZCgiUE9TVCIpOwogICAgIHJlcXVlc3Quc2V0SFRUUENvbnRl
bnRUeXBlKCJ0ZXh0L3BpbmciKTsKQEAgLTExOSwxNCArMTI5LDE0IEBAIHZvaWQgUGluZ0xvYWRl
cjo6c2VuZFBpbmcoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHBpbmdVUkwsIGNvbnN0IFVSTCYg
ZGVzdGluYXRpCiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6
OkNhY2hlQ29udHJvbCwgIm1heC1hZ2U9MCIpOwogICAgIGZyYW1lLmxvYWRlcigpLmFkZEV4dHJh
RmllbGRzVG9TdWJyZXNvdXJjZVJlcXVlc3QocmVxdWVzdCk7CiAKLSAgICBTZWN1cml0eU9yaWdp
biogc291cmNlT3JpZ2luID0gZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKLSAg
ICBSZWY8U2VjdXJpdHlPcmlnaW4+IHBpbmdPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShw
aW5nVVJMKSk7Ci0gICAgRnJhbWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChyZXF1ZXN0
LCBzb3VyY2VPcmlnaW4tPnRvU3RyaW5nKCkpOworICAgIEFTU0VSVChkb2N1bWVudC5zZWN1cml0
eU9yaWdpbigpKTsKKyAgICBhdXRvJiBzb3VyY2VPcmlnaW4gPSAqZG9jdW1lbnQuc2VjdXJpdHlP
cmlnaW4oKTsKKyAgICBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKHJlcXVlc3Qs
IHNvdXJjZU9yaWdpbi50b1N0cmluZygpKTsKICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVs
ZChIVFRQSGVhZGVyTmFtZTo6UGluZ1RvLCBkZXN0aW5hdGlvblVSTCk7CiAgICAgaWYgKCFTZWN1
cml0eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVycmVyKHBpbmdVUkwsIGZyYW1lLmxvYWRlcigpLm91
dGdvaW5nUmVmZXJyZXIoKSkpIHsKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQo
SFRUUEhlYWRlck5hbWU6OlBpbmdGcm9tLCBmcmFtZS5kb2N1bWVudCgpLT51cmwoKSk7Ci0gICAg
ICAgIGlmICghc291cmNlT3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydCgmcGluZ09yaWdpbi5n
ZXQoKSkpIHsKLSAgICAgICAgICAgIFN0cmluZyByZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5Ojpn
ZW5lcmF0ZVJlZmVycmVySGVhZGVyKGZyYW1lLmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCks
IHBpbmdVUkwsIGZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSk7CisgICAgICAgIHJl
cXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpQaW5nRnJvbSwgZG9jdW1l
bnQudXJsKCkpOworICAgICAgICBpZiAoIXNvdXJjZU9yaWdpbi5pc1NhbWVTY2hlbWVIb3N0UG9y
dChTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHBpbmdVUkwpLnB0cigpKSkgeworICAgICAgICAgICAg
U3RyaW5nIHJlZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIo
ZG9jdW1lbnQucmVmZXJyZXJQb2xpY3koKSwgcGluZ1VSTCwgZnJhbWUubG9hZGVyKCkub3V0Z29p
bmdSZWZlcnJlcigpKTsKICAgICAgICAgICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgpKQogICAg
ICAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKHJlZmVycmVyKTsKICAgICAgICAg
fQpAQCAtMTM1LDE5ICsxNDUsMTYgQEAgdm9pZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhGcmFtZSYg
ZnJhbWUsIGNvbnN0IFVSTCYgcGluZ1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGkKICAgICBzdGFy
dFBpbmdMb2FkKGZyYW1lLCByZXF1ZXN0LCBTaG91bGRGb2xsb3dSZWRpcmVjdHM6Olllcyk7CiB9
CiAKLXZvaWQgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIGNv
bnN0IFVSTCYgcmVwb3J0VVJMLCBSZWZQdHI8Rm9ybURhdGE+JiYgcmVwb3J0LCBWaW9sYXRpb25S
ZXBvcnRUeXBlIHJlcG9ydFR5cGUpCit2b2lkIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBv
cnQoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgUmVmPEZvcm1EYXRhPiYmIHJl
cG9ydCwgVmlvbGF0aW9uUmVwb3J0VHlwZSByZXBvcnRUeXBlKQogewotICAgIFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0KHJlcG9ydFVSTCk7CisgICAgQVNTRVJUKGZyYW1lLmRvY3VtZW50KCkpOwog
Ci0jaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAgICBhdXRvIGJsb2NrZWRTdGF0dXMg
PSBwcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZChmcmFtZSwgcmVwb3J0VVJMLCBS
ZXNvdXJjZVR5cGU6OlJhdyk7Ci0gICAgYXBwbHlCbG9ja2VkU3RhdHVzVG9SZXF1ZXN0KGJsb2Nr
ZWRTdGF0dXMsIHJlcXVlc3QpOwotICAgIGlmIChibG9ja2VkU3RhdHVzLmJsb2NrZWRMb2FkKQor
ICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHJlcG9ydFVSTCk7CisgICAgaWYgKHByb2Nlc3ND
b250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKGZyYW1lLCByZXF1ZXN0LCBSZXNvdXJjZVR5cGU6
OlJhdykpCiAgICAgICAgIHJldHVybjsKLSNlbmRpZgogCi0gICAgaWYgKERvY3VtZW50KiBkb2N1
bWVudCA9IGZyYW1lLmRvY3VtZW50KCkpCi0gICAgICAgIGRvY3VtZW50LT5jb250ZW50U2VjdXJp
dHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKHJlcXVlc3QsIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CisgICAgYXV0byYg
ZG9jdW1lbnQgPSAqZnJhbWUuZG9jdW1lbnQoKTsKKyAgICBkb2N1bWVudC5jb250ZW50U2VjdXJp
dHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKHJlcXVlc3QsIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CiAKICAgICByZXF1
ZXN0LnNldEhUVFBNZXRob2QoQVNDSUlMaXRlcmFsKCJQT1NUIikpOwogICAgIHJlcXVlc3Quc2V0
SFRUUEJvZHkoV1RGTW92ZShyZXBvcnQpKTsKQEAgLTE2MSwxOCArMTY4LDE2IEBAIHZvaWQgUGlu
Z0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcmVw
b3J0VVJMLCBSZWZQdHI8CiAgICAgfQogCiAgICAgYm9vbCByZW1vdmVDb29raWVzID0gdHJ1ZTsK
LSAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUuZG9jdW1lbnQoKSkgewotICAgICAg
ICBpZiAoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luID0gZG9jdW1lbnQtPnNlY3VyaXR5
T3JpZ2luKCkpIHsKLSAgICAgICAgICAgIGlmIChzZWN1cml0eU9yaWdpbi0+aXNTYW1lU2NoZW1l
SG9zdFBvcnQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShyZXBvcnRVUkwpLnB0cigpKSkKLSAgICAg
ICAgICAgICAgICByZW1vdmVDb29raWVzID0gZmFsc2U7Ci0gICAgICAgIH0KKyAgICBpZiAoYXV0
byogc2VjdXJpdHlPcmlnaW4gPSBkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpKSB7CisgICAgICAg
IGlmIChzZWN1cml0eU9yaWdpbi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQoU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZShyZXBvcnRVUkwpLnB0cigpKSkKKyAgICAgICAgICAgIHJlbW92ZUNvb2tpZXMgPSBm
YWxzZTsKICAgICB9CiAgICAgaWYgKHJlbW92ZUNvb2tpZXMpCiAgICAgICAgIHJlcXVlc3Quc2V0
QWxsb3dDb29raWVzKGZhbHNlKTsKIAogICAgIGZyYW1lLmxvYWRlcigpLmFkZEV4dHJhRmllbGRz
VG9TdWJyZXNvdXJjZVJlcXVlc3QocmVxdWVzdCk7CiAKLSAgICBTdHJpbmcgcmVmZXJyZXIgPSBT
ZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihmcmFtZS5kb2N1bWVudCgpLT5y
ZWZlcnJlclBvbGljeSgpLCByZXBvcnRVUkwsIGZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJy
ZXIoKSk7CisgICAgU3RyaW5nIHJlZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVm
ZXJyZXJIZWFkZXIoZG9jdW1lbnQucmVmZXJyZXJQb2xpY3koKSwgcmVwb3J0VVJMLCBmcmFtZS5s
b2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpOwogICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgp
KQogICAgICAgICByZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihyZWZlcnJlcik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUGluZ0xvYWRlci5oCmluZGV4IGNmNjU3N2MzMzU2ZWEwNTgxYjUzOTE4OTE5OGZkZTg3
NjRmYjk5MzcuLmIyOWU4ZGE4ZjgwOGE3YjA2MGU1MDk3OGZjMmFlZDJjZTJkOGYxMzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMSw3ICszMiw3IEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC00OSw3ICs1MCw3IEBAIGNsYXNzIFBpbmdMb2FkZXIgewogcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIGxvYWRJbWFnZShGcmFtZSYsIGNvbnN0IFVSTCYpOwogICAg
IHN0YXRpYyB2b2lkIHNlbmRQaW5nKEZyYW1lJiwgY29uc3QgVVJMJiBwaW5nVVJMLCBjb25zdCBV
UkwmIGRlc3RpbmF0aW9uVVJMKTsKLSAgICBzdGF0aWMgdm9pZCBzZW5kVmlvbGF0aW9uUmVwb3J0
KEZyYW1lJiwgY29uc3QgVVJMJiByZXBvcnRVUkwsIFJlZlB0cjxGb3JtRGF0YT4mJiByZXBvcnQs
IFZpb2xhdGlvblJlcG9ydFR5cGUpOworICAgIHN0YXRpYyB2b2lkIHNlbmRWaW9sYXRpb25SZXBv
cnQoRnJhbWUmLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgUmVmPEZvcm1EYXRhPiYmIHJlcG9ydCwg
VmlvbGF0aW9uUmVwb3J0VHlwZSk7CiAKIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBTaG91bGRG
b2xsb3dSZWRpcmVjdHMgeyBObywgWWVzIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggNWMw
MjU0NGE1ZTdiZDNmMDZmYjFhYmFiMDFlZTI2YzhhMzQ0NmYzZS4uZDAxNWJhNDVhMzNhZWJjZTE3
MjlkM2I5OWIyNTVmNTQ1MzAxZTc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDksIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICogQ29weXJp
Z2h0IChDKSAyMDEyLCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKQEAgLTQzOCw3ICs0MzgsNyBAQCB2b2lkIENocm9tZTo6cnVuT3BlblBhbmVsKEZyYW1lKiBm
cmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIpCiAgICAgbV9jbGllbnQu
cnVuT3BlblBhbmVsKGZyYW1lLCBmaWxlQ2hvb3Nlcik7CiB9CiAKLXZvaWQgQ2hyb21lOjpsb2Fk
SWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9h
ZGVyKiBsb2FkZXIpCit2b2lkIENocm9tZTo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciYgbG9hZGVyKQogewogICAgIG1fY2xp
ZW50LmxvYWRJY29uRm9yRmlsZXMoZmlsZW5hbWVzLCBsb2FkZXIpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmgKaW5kZXggZjJmMmIwYjFjM2MwYTlmM2EyNzVkMTRmMDJkM2RjMWE4ZWRhNGVhMS4uZjIzODYw
YTJiZGFmM2MyOTNlMDE5M2MyY2E0OTJiYTZhODhmN2M1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAw
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICogQ29w
eXJpZ2h0IChDKSAyMDEyLCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKQEAgLTI4LDkgKzI4LDcgQEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKLSNpZm5kZWYgX19PQkpDX18KLWNsYXNzIE5TVmlldzsKLSNlbmRpZgor
T0JKQ19DTEFTUyBOU1ZpZXc7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU5
LDcgKzE1Nyw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJh
bWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPik7Ci0gICAgdm9pZCBsb2FkSWNvbkZvckZpbGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXIqKTsKKyAgICB2b2lkIGxvYWRJ
Y29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciYpOwogCiAg
ICAgdm9pZCBkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9y
dEFyZ3VtZW50cyYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA0
NWZlYzU5OTgwNGU0M2U2ZTdkMTg5YTA4ZTZjZWI4MDIyOWQzNmZkLi40MjFjZGE5YTE3NmY5YWNh
MGE0NjExMGRiMmZhYTQwN2EwNjI0MDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAy
MDA5LCAyMDEwLCAyMDExLCAyMDEyIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KICAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNz
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTI3NSw3ICsyNzUsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hv
b3Nlcj4pID0gMDsKICAgICAvLyBBc3luY2hyb25vdXMgcmVxdWVzdCB0byBsb2FkIGFuIGljb24g
Zm9yIHNwZWNpZmllZCBmaWxlbmFtZXMuCi0gICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmls
ZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciopID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29u
TG9hZGVyJikgPSAwOwogICAgICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEZvY3Vz
KGNvbnN0IE5vZGUqKSB7IH07CiAgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0
IE5vZGUqKSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50
U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3Vy
aXR5UG9saWN5LmNwcAppbmRleCBjYjc4ZDA2YTdlZjE0M2YyNmVlNTQ5NjM5YjI0OTU2NWM0NmFh
MDY4Li5mMDU5YjYwMTRjODRiN2ZhNGE3MzZmOTU0YTg5MTMxNGFiNzNhNWVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTEs
NiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSwgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NjI1LDggKzYyNSw4IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRp
b24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAKICAgICBBU1NFUlQoIW1f
ZnJhbWUgfHwgZWZmZWN0aXZlVmlvbGF0ZWREaXJlY3RpdmUgPT0gQ29udGVudFNlY3VyaXR5UG9s
aWN5RGlyZWN0aXZlTmFtZXM6OmZyYW1lQW5jZXN0b3JzKTsKIAotICAgIERvY3VtZW50JiBkb2N1
bWVudCA9IGlzPERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8
RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50
KCk7Ci0gICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKTsKKyAgICBhdXRvJiBkb2N1
bWVudCA9IGlzPERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8
RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50
KCk7CisgICAgYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOwogICAgIEFTU0VSVCghbV9m
cmFtZSB8fCBtX2ZyYW1lID09IGZyYW1lKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1
cm47CkBAIC02NDYsMTMgKzY0NiwxNCBAQCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVw
b3J0VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZWZmZWN0aXZlVmlvbGF0ZWREaXJlYwogICAgIFN0
cmluZyBvcmlnaW5hbFBvbGljeSA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5oZWFkZXIoKTsKICAg
ICBTdHJpbmcgcmVmZXJyZXIgPSBkb2N1bWVudC5yZWZlcnJlcigpOwogICAgIEFTU0VSVChkb2N1
bWVudC5sb2FkZXIoKSk7CisgICAgLy8gRklYTUU6IElzIGl0IHBvbGljeSB0byBub3QgdXNlIHRo
ZSBzdGF0dXMgY29kZSBmb3IgSFRUUFMsIG9yIGlzIHRoYXQgYSBidWc/CiAgICAgdW5zaWduZWQg
c2hvcnQgc3RhdHVzQ29kZSA9IGRvY3VtZW50LnVybCgpLnByb3RvY29sSXMoImh0dHAiKSAmJiBk
b2N1bWVudC5sb2FkZXIoKSA/IGRvY3VtZW50LmxvYWRlcigpLT5yZXNwb25zZSgpLmh0dHBTdGF0
dXNDb2RlKCkgOiAwOwogCiAgICAgU3RyaW5nIHNvdXJjZUZpbGU7CiAgICAgaW50IGxpbmVOdW1i
ZXIgPSAwOwogICAgIGludCBjb2x1bW5OdW1iZXIgPSAwOwotICAgIFJlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+IHN0YWNrID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTTWFpblRocmVhZEV4ZWNTdGF0
ZTo6Y3VycmVudFN0YXRlKCksIDIpOwotICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSogY2FsbEZy
YW1lID0gc3RhY2stPmZpcnN0Tm9uTmF0aXZlQ2FsbEZyYW1lKCk7CisgICAgYXV0byBzdGFjayA9
IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhKU01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0
ZSgpLCAyKTsKKyAgICBhdXRvKiBjYWxsRnJhbWUgPSBzdGFjay0+Zmlyc3ROb25OYXRpdmVDYWxs
RnJhbWUoKTsKICAgICBpZiAoY2FsbEZyYW1lICYmIGNhbGxGcmFtZS0+bGluZU51bWJlcigpKSB7
CiAgICAgICAgIHNvdXJjZUZpbGUgPSBzdHJpcFVSTEZvclVzZUluUmVwb3J0KGRvY3VtZW50LCBV
UkwoVVJMKCksIGNhbGxGcmFtZS0+c291cmNlVVJMKCkpKTsKICAgICAgICAgbGluZU51bWJlciA9
IGNhbGxGcmFtZS0+bGluZU51bWJlcigpOwpAQCAtNjY1LDcgKzY2Niw3IEBAIHZvaWQgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVW
aW9sYXRlZERpcmVjCiAgICAgZG9jdW1lbnQuZW5xdWV1ZURvY3VtZW50RXZlbnQoU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zZWN1cml0eXBvbGljeXZp
b2xhdGlvbkV2ZW50LCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIGRvY3VtZW50VVJJLCByZWZlcnJl
ciwgYmxvY2tlZFVSSSwgdmlvbGF0ZWREaXJlY3RpdmVUZXh0LCBlZmZlY3RpdmVWaW9sYXRlZERp
cmVjdGl2ZSwgb3JpZ2luYWxQb2xpY3ksIHNvdXJjZUZpbGUsIHN0YXR1c0NvZGUsIGxpbmVOdW1i
ZXIsIGNvbHVtbk51bWJlcikpOwogCiAgICAgLy8gMi4gU2VuZCB2aW9sYXRpb24gcmVwb3J0IChp
ZiBhcHBsaWNhYmxlKS4KLSAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcmVwb3J0VVJJcyA9IHZp
b2xhdGVkRGlyZWN0aXZlTGlzdC5yZXBvcnRVUklzKCk7CisgICAgYXV0byYgcmVwb3J0VVJJcyA9
IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5yZXBvcnRVUklzKCk7CiAgICAgaWYgKHJlcG9ydFVSSXMu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTY5MywxMCArNjk0LDEwIEBAIHZvaWQg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZl
Y3RpdmVWaW9sYXRlZERpcmVjCiAgICAgICAgIGNzcFJlcG9ydC0+c2V0SW50ZWdlcihBU0NJSUxp
dGVyYWwoImNvbHVtbi1udW1iZXIiKSwgY29sdW1uTnVtYmVyKTsKICAgICB9CiAKLSAgICBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiByZXBvcnRPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0
ZSgpOworICAgIGF1dG8gcmVwb3J0T2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsK
ICAgICByZXBvcnRPYmplY3QtPnNldE9iamVjdChBU0NJSUxpdGVyYWwoImNzcC1yZXBvcnQiKSwg
V1RGTW92ZShjc3BSZXBvcnQpKTsKIAotICAgIFJlZlB0cjxGb3JtRGF0YT4gcmVwb3J0ID0gRm9y
bURhdGE6OmNyZWF0ZShyZXBvcnRPYmplY3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7CisgICAg
YXV0byByZXBvcnQgPSBGb3JtRGF0YTo6Y3JlYXRlKHJlcG9ydE9iamVjdC0+dG9KU09OU3RyaW5n
KCkudXRmOCgpKTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIHVybCA6IHJlcG9ydFVSSXMpCiAgICAg
ICAgIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoKmZyYW1lLCBpczxEb2N1bWVudD4o
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSA/IGRvY3VtZW50LmNvbXBsZXRlVVJMKHVybCkgOiBk
b2N1bWVudC5jb21wbGV0ZVVSTCh1cmwsIGJsb2NrZWRVUkwpLCByZXBvcnQuY29weVJlZigpLCBW
aW9sYXRpb25SZXBvcnRUeXBlOjpDb250ZW50U2VjdXJpdHlQb2xpY3kpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxN
ZWRpYUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFj
a1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQppbmRleCBiMTBmMmU5ZWI3OGQ1OWUwMjZiYmRi
NGRmZDcwZTRkYTUzYjlhNDcwLi5mNjM1YWVkM2I5N2YwMTI5ZmY5ZWE4M2QxNGM3OTFiYmU3NWY4
YjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFj
a1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwyNCArMjgs
MjQgQEAKIAogI2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKSkKIAorI2ltcG9ydCAiQXVkaW9UcmFja0xpc3QuaCIKKyNp
bXBvcnQgIkV2ZW50LmgiCisjaW1wb3J0ICJFdmVudExpc3RlbmVyLmgiCisjaW1wb3J0ICJFdmVu
dE5hbWVzLmgiCisjaW1wb3J0ICJIVE1MRWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTE1lZGlhRWxl
bWVudC5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFDb250cm9sc0hvc3Qu
aCIKKyNpbXBvcnQgIlBhZ2UuaCIKKyNpbXBvcnQgIlBhZ2VHcm91cC5oIgorI2ltcG9ydCAiU29m
dExpbmtpbmcuaCIKKyNpbXBvcnQgIlRleHRUcmFja0xpc3QuaCIKKyNpbXBvcnQgIlRpbWVSYW5n
ZXMuaCIKICNpbXBvcnQgIldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oIgogI2ltcG9ydCA8
UXVhcnR6Q29yZS9Db3JlQW5pbWF0aW9uLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0F1ZGlvVHJhY2tM
aXN0Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0V2ZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0V2ZW50
TGlzdGVuZXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUvRXZlbnROYW1lcy5oPgotI2ltcG9ydCA8V2Vi
Q29yZS9IVE1MRWxlbWVudC5oPgotI2ltcG9ydCA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGFnZUdyb3VwLmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1RleHRU
cmFja0xpc3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvVGltZVJhbmdlcy5oPgogI2ltcG9ydCA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6V2ViUGxh
eWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQoKQogICAgIDogRXZlbnRMaXN0ZW5lcihFdmVu
dExpc3RlbmVyOjpDUFBFdmVudExpc3RlbmVyVHlwZSkKQEAgLTIzMywxNyArMjMzLDggQEAgdm9p
ZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6c2VsZWN0QXVkaW9NZWRpYU9w
dGlvbih1aW50NjRfdCBzZWxlY3QKICAgICBpZiAoIW1fbWVkaWFFbGVtZW50KQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBBU1NFUlQoc2VsZWN0ZWRBdWRpb0luZGV4IDwgc3RkOjpudW1lcmljX2xp
bWl0czxzaXplX3Q+OjptYXgoKSk7Ci0gICAgQXVkaW9UcmFjayogc2VsZWN0ZWRBdWRpb1RyYWNr
ID0gbnVsbHB0cjsKLQotICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBtX2F1ZGlv
VHJhY2tzRm9yTWVudS5zaXplKCk7ICsraW5kZXgpIHsKLSAgICAgICAgYXV0byYgYXVkaW9UcmFj
ayA9IG1fYXVkaW9UcmFja3NGb3JNZW51W2luZGV4XTsKLSAgICAgICAgYXVkaW9UcmFjay0+c2V0
RW5hYmxlZChpbmRleCA9PSBzdGF0aWNfY2FzdDxzaXplX3Q+KHNlbGVjdGVkQXVkaW9JbmRleCkp
OwotICAgICAgICBpZiAoYXVkaW9UcmFjay0+ZW5hYmxlZCgpKQotICAgICAgICAgICAgc2VsZWN0
ZWRBdWRpb1RyYWNrID0gYXVkaW9UcmFjay5nZXQoKTsKLSAgICB9Ci0KLSAgICBtX21lZGlhRWxl
bWVudC0+YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKHNlbGVjdGVkQXVkaW9UcmFjayk7CisgICAg
Zm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBtX2F1ZGlvVHJhY2tzRm9yTWVudS5zaXplKCk7IGkg
PCBzaXplOyArK2kpCisgICAgICAgIG1fYXVkaW9UcmFja3NGb3JNZW51W2ldLT5zZXRFbmFibGVk
KGkgPT0gc2VsZWN0ZWRBdWRpb0luZGV4KTsKIH0KIAogdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudDo6c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4
KQpAQCAtMjUxLDkgKzI0Miw3IEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVs
ZW1lbnQ6OnNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRlCiAgICAgaWYgKCFt
X21lZGlhRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKGluZGV4IDwgc3Rk
OjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7Ci0gICAgVGV4dFRyYWNrKiB0ZXh0VHJh
Y2sgPSBudWxscHRyOwotCisgICAgVGV4dFRyYWNrKiB0ZXh0VHJhY2s7CiAgICAgaWYgKGluZGV4
IDwgbV9sZWdpYmxlVHJhY2tzRm9yTWVudS5zaXplKCkpCiAgICAgICAgIHRleHRUcmFjayA9IG1f
bGVnaWJsZVRyYWNrc0Zvck1lbnVbc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCldLmdldCgpOwog
ICAgIGVsc2UKQEAgLTQ3MSw0ICs0NjAsNiBAQCBib29sIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVs
TWVkaWFFbGVtZW50Ojp3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpIGNvbnN0CiAgICAg
cmV0dXJuIG1fbWVkaWFFbGVtZW50ICYmIG1fbWVkaWFFbGVtZW50LT5tZWRpYVNlc3Npb24oKS53
aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgqbV9tZWRpYUVsZW1lbnQpOwogfQogCit9CisK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVk
aW9UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlv
VHJhY2tQcml2YXRlLmgKaW5kZXggM2JjOTdlZDcwMmFiMDRhZGJlMTQxNWFkZjliZTM1Mjk4ZGZh
ZGRkYi4uNzEwZDE3MDIwNWE1YWM5ZTBkZDBmNDliYzM1NjM1ZWE4YTBlMzMxZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTIzLDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBBdWRpb1RyYWNr
UHJpdmF0ZV9oCi0jZGVmaW5lIEF1ZGlvVHJhY2tQcml2YXRlX2gKKyNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZS5oIgogCkBAIC0zNiw3ICszNSw3IEBAIGNsYXNzIEF1
ZGlvVHJhY2tQcml2YXRlOwogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1Ymxp
YyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgZW5h
YmxlZENoYW5nZWQoQXVkaW9UcmFja1ByaXZhdGUqLCBib29sKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGVuYWJsZWRDaGFuZ2VkKGJvb2wpID0gMDsKIH07CiAKIGNsYXNzIEF1ZGlvVHJhY2tQcml2
YXRlIDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2UgewpAQCAtNTUsMjYgKzU0LDIyIEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9lbmFibGVkID0gZW5hYmxlZDsKICAg
ICAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICAgICAgbV9jbGllbnQtPmVuYWJsZWRDaGFuZ2Vk
KHRoaXMsIGVuYWJsZWQpOwotICAgIH07Ci0gICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBtX2VuYWJsZWQ7IH0KKyAgICAgICAgICAgIG1fY2xpZW50LT5lbmFibGVkQ2hh
bmdlZChlbmFibGVkKTsKKyAgICB9CisKKyAgICBib29sIGVuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX2VuYWJsZWQ7IH0KIAogICAgIGVudW0gS2luZCB7IEFsdGVybmF0aXZlLCBEZXNjcmlwdGlv
biwgTWFpbiwgTWFpbkRlc2MsIFRyYW5zbGF0aW9uLCBDb21tZW50YXJ5LCBOb25lIH07CiAgICAg
dmlydHVhbCBLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBOb25lOyB9CiAKIHByb3RlY3RlZDoK
LSAgICBBdWRpb1RyYWNrUHJpdmF0ZSgpCi0gICAgICAgIDogbV9jbGllbnQoMCkKLSAgICAgICAg
LCBtX2VuYWJsZWQoZmFsc2UpCi0gICAgewotICAgIH0KKyAgICBBdWRpb1RyYWNrUHJpdmF0ZSgp
ID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAgICBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCogbV9j
bGllbnQ7Ci0gICAgYm9vbCBtX2VuYWJsZWQ7CisgICAgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQq
IG1fY2xpZW50IHsgbnVsbHB0ciB9OworICAgIGJvb2wgbV9lbmFibGVkIHsgZmFsc2UgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFj
a1ByaXZhdGVDbGllbnQuaAppbmRleCA3NjBmNjc5ZDEzNTBhNzE5MDA0NDcwYTdjYjdhNzQxN2E4
YmM0OTE1Li45YTExMDc5YmJlNDI4MTRlNjRhMDY2MGUyZmFmYTM5MDIxNDBhMGY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMi0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsOCArMjMsOSBAQAogICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCi0jaWZuZGVmIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnRfaAotI2RlZmlu
ZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50X2gKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJUcmFja1By
aXZhdGVCYXNlLmgiCkBAIC0zNCw4ICszNSw2IEBACiAjaW5jbHVkZSAiU2VyaWFsaXplZFBsYXRm
b3JtUmVwcmVzZW50YXRpb24uaCIKICNlbmRpZgogCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGU7CkBA
IC00Myw5ICs0Miw3IEBAIGNsYXNzIElTT1dlYlZUVEN1ZTsKIAogY2xhc3MgR2VuZXJpY0N1ZURh
dGEgOiBwdWJsaWMgUmVmQ291bnRlZDxHZW5lcmljQ3VlRGF0YT4gewogcHVibGljOgotCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8R2VuZXJpY0N1ZURhdGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0
UmVmKG5ldyBHZW5lcmljQ3VlRGF0YSgpKTsgfQotICAgIHZpcnR1YWwgfkdlbmVyaWNDdWVEYXRh
KCkgeyB9CisgICAgc3RhdGljIFJlZjxHZW5lcmljQ3VlRGF0YT4gY3JlYXRlKCkgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBHZW5lcmljQ3VlRGF0YSk7IH0KIAogICAgIE1lZGlhVGltZSBzdGFydFRp
bWUoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0VGltZTsgfQogICAgIHZvaWQgc2V0U3RhcnRUaW1l
KGNvbnN0IE1lZGlhVGltZSYgc3RhcnRUaW1lKSB7IG1fc3RhcnRUaW1lID0gc3RhcnRUaW1lOyB9
CkBAIC01MywxMSArNTAsMTEgQEAgcHVibGljOgogICAgIE1lZGlhVGltZSBlbmRUaW1lKCkgY29u
c3QgeyByZXR1cm4gbV9lbmRUaW1lOyB9CiAgICAgdm9pZCBzZXRFbmRUaW1lKGNvbnN0IE1lZGlh
VGltZSYgZW5kVGltZSkgeyBtX2VuZFRpbWUgPSBlbmRUaW1lOyB9CiAKLSAgICBTdHJpbmcgaWQo
KSBjb25zdCB7IHJldHVybiBtX2lkOyB9Ci0gICAgdm9pZCBzZXRJZChTdHJpbmcgaWQpIHsgbV9p
ZCA9IGlkOyB9CisgICAgY29uc3QgU3RyaW5nJiBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0K
KyAgICB2b2lkIHNldElkKGNvbnN0IFN0cmluZyYgaWQpIHsgbV9pZCA9IGlkOyB9CiAKLSAgICBT
dHJpbmcgY29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudDsgfQotICAgIHZvaWQgc2V0
Q29udGVudChTdHJpbmcgY29udGVudCkgeyBtX2NvbnRlbnQgPSBjb250ZW50OyB9CisgICAgY29u
c3QgU3RyaW5nJiBjb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50OyB9CisgICAgdm9p
ZCBzZXRDb250ZW50KGNvbnN0IFN0cmluZyYgY29udGVudCkgeyBtX2NvbnRlbnQgPSBjb250ZW50
OyB9CiAKICAgICBkb3VibGUgbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZTsgfQogICAgIHZv
aWQgc2V0TGluZShkb3VibGUgbGluZSkgeyBtX2xpbmUgPSBsaW5lOyB9CkBAIC02OCwxNyArNjUs
MTIgQEAgcHVibGljOgogICAgIGRvdWJsZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9
CiAgICAgdm9pZCBzZXRTaXplKGRvdWJsZSBzaXplKSB7IG1fc2l6ZSA9IHNpemU7IH0KIAotICAg
IGVudW0gQWxpZ25tZW50IHsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgU3RhcnQsCi0gICAgICAg
IE1pZGRsZSwKLSAgICAgICAgRW5kCi0gICAgfTsKKyAgICBlbnVtIEFsaWdubWVudCB7IE5vbmUs
IFN0YXJ0LCBNaWRkbGUsIEVuZCB9OwogICAgIEFsaWdubWVudCBhbGlnbigpIGNvbnN0IHsgcmV0
dXJuIG1fYWxpZ247IH0KICAgICB2b2lkIHNldEFsaWduKEFsaWdubWVudCBhbGlnbikgeyBtX2Fs
aWduID0gYWxpZ247IH0KIAotICAgIFN0cmluZyBmb250TmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
Zm9udE5hbWU7IH0KLSAgICB2b2lkIHNldEZvbnROYW1lKFN0cmluZyBmb250TmFtZSkgeyBtX2Zv
bnROYW1lID0gZm9udE5hbWU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGZvbnROYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9mb250TmFtZTsgfQorICAgIHZvaWQgc2V0Rm9udE5hbWUoY29uc3QgU3RyaW5n
JiBmb250TmFtZSkgeyBtX2ZvbnROYW1lID0gZm9udE5hbWU7IH0KIAogICAgIGRvdWJsZSBiYXNl
Rm9udFNpemUoKSBjb25zdCB7IHJldHVybiBtX2Jhc2VGb250U2l6ZTsgfQogICAgIHZvaWQgc2V0
QmFzZUZvbnRTaXplKGRvdWJsZSBiYXNlRm9udFNpemUpIHsgbV9iYXNlRm9udFNpemUgPSBiYXNl
Rm9udFNpemU7IH0KQEAgLTk1LDQzICs4NywzMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQ29sb3Im
IGhpZ2hsaWdodENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9oaWdobGlnaHRDb2xvcjsgfQogICAg
IHZvaWQgc2V0SGlnaGxpZ2h0Q29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKSB7IG1faGlnaGxpZ2h0
Q29sb3IgPSBjb2xvcjsgfQogCi0gICAgZW51bSBTdGF0dXMgewotICAgICAgICBVbmluaXRpYWxp
emVkLAotICAgICAgICBQYXJ0aWFsLAotICAgICAgICBDb21wbGV0ZSwKLSAgICB9OworICAgIGVu
dW0gU3RhdHVzIHsgVW5pbml0aWFsaXplZCwgUGFydGlhbCwgQ29tcGxldGUgfTsKICAgICBTdGF0
dXMgc3RhdHVzKCkgeyByZXR1cm4gbV9zdGF0dXM7IH0KICAgICB2b2lkIHNldFN0YXR1cyhTdGF0
dXMgc3RhdHVzKSB7IG1fc3RhdHVzID0gc3RhdHVzOyB9CiAKICAgICBib29sIGRvZXNFeHRlbmRD
dWVEYXRhKGNvbnN0IEdlbmVyaWNDdWVEYXRhJikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgR2Vu
ZXJpY0N1ZURhdGEoKQotICAgICAgICA6IG1fbGluZSgtMSkKLSAgICAgICAgLCBtX3Bvc2l0aW9u
KC0xKQotICAgICAgICAsIG1fc2l6ZSgtMSkKLSAgICAgICAgLCBtX2FsaWduKE5vbmUpCi0gICAg
ICAgICwgbV9iYXNlRm9udFNpemUoMCkKLSAgICAgICAgLCBtX3JlbGF0aXZlRm9udFNpemUoMCkK
LSAgICAgICAgLCBtX3N0YXR1cyhVbmluaXRpYWxpemVkKQotICAgIHsKLSAgICB9CisgICAgR2Vu
ZXJpY0N1ZURhdGEoKSA9IGRlZmF1bHQ7CiAKICAgICBNZWRpYVRpbWUgbV9zdGFydFRpbWU7CiAg
ICAgTWVkaWFUaW1lIG1fZW5kVGltZTsKICAgICBTdHJpbmcgbV9pZDsKICAgICBTdHJpbmcgbV9j
b250ZW50OwotICAgIGRvdWJsZSBtX2xpbmU7Ci0gICAgZG91YmxlIG1fcG9zaXRpb247Ci0gICAg
ZG91YmxlIG1fc2l6ZTsKLSAgICBBbGlnbm1lbnQgbV9hbGlnbjsKKyAgICBkb3VibGUgbV9saW5l
IHsgLTEgfTsKKyAgICBkb3VibGUgbV9wb3NpdGlvbiB7IC0xIH07CisgICAgZG91YmxlIG1fc2l6
ZSB7IC0xIH07CisgICAgQWxpZ25tZW50IG1fYWxpZ24geyBOb25lIH07CiAgICAgU3RyaW5nIG1f
Zm9udE5hbWU7Ci0gICAgZG91YmxlIG1fYmFzZUZvbnRTaXplOwotICAgIGRvdWJsZSBtX3JlbGF0
aXZlRm9udFNpemU7CisgICAgZG91YmxlIG1fYmFzZUZvbnRTaXplIHsgMCB9OworICAgIGRvdWJs
ZSBtX3JlbGF0aXZlRm9udFNpemUgeyAwIH07CiAgICAgQ29sb3IgbV9mb3JlZ3JvdW5kQ29sb3I7
CiAgICAgQ29sb3IgbV9iYWNrZ3JvdW5kQ29sb3I7CiAgICAgQ29sb3IgbV9oaWdobGlnaHRDb2xv
cjsKLSAgICBTdGF0dXMgbV9zdGF0dXM7CisgICAgU3RhdHVzIG1fc3RhdHVzIHsgVW5pbml0aWFs
aXplZCB9OwogfTsKIAogaW5saW5lIGJvb2wgR2VuZXJpY0N1ZURhdGE6OmRvZXNFeHRlbmRDdWVE
YXRhKGNvbnN0IEdlbmVyaWNDdWVEYXRhJiBvdGhlcikgY29uc3QKQEAgLTE2OCwyNCArMTQ3LDIz
IEBAIGNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQcml2
YXRlQmFzZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUNsaWVudCgpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGFkZERhdGFDdWUoSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYg
ZW5kLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0
YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qg
dm9pZCosIHVuc2lnbmVkKSA9IDA7CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLSAgICB2
aXJ0dWFsIHZvaWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVk
aWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+LCBjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIHVwZGF0ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlh
VGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQ
bGF0Zm9ybVJlcHJlc2VudGF0aW9uPikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVEYXRh
Q3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25z
dCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRh
dGlvbj4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUm
IHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJl
c2VudGF0aW9uPiYmLCBjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNl
cmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5k
LCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbiYpID0gMDsKICNlbmRpZgogCi0gICAg
dmlydHVhbCB2b2lkIGFkZEdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFBhc3NS
ZWZQdHI8R2VuZXJpY0N1ZURhdGE+KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdlbmVy
aWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBH
ZW5lcmljQ3VlRGF0YSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkR2VuZXJpY0N1ZShHZW5l
cmljQ3VlRGF0YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShHZW5l
cmljQ3VlRGF0YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlR2VuZXJpY0N1ZShHZW5l
cmljQ3VlRGF0YSYpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFk
ZXIoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFN0cmluZyYmKSB7IEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwg
Y29uc3QgSVNPV2ViVlRUQ3VlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEZp
bGVIZWFkZXIoU3RyaW5nJiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0
aCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2Vi
VlRUQ3VlJikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNl
QnVmZmVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNl
QnVmZmVyUHJpdmF0ZS5oCmluZGV4IDA4ZTYyYzM0ODYyYWRkOTRmYTA4NGI0MjVjNTg3YWE0ZmJk
MzY0YmQuLjdhYzVkZDI3NWJhYTU3YjBhYWU4YmU1NTA4Nzg3NmZmMTE5MWUwYmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2
YXRlLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC0yOCwyMSArMjgsMTcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwotI2lmbmRlZiBTb3VyY2VCdWZmZXJQcml2YXRlX2gKLSNkZWZpbmUgU291cmNl
QnVmZmVyUHJpdmF0ZV9oCisKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJD
RSkKIAogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCi0jaW5jbHVkZSAiVGltZVJhbmdlcy5oIgot
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhU2FtcGxlOwogY2xhc3MgU291cmNlQnVm
ZmVyUHJpdmF0ZUNsaWVudDsKLWNsYXNzIFRpbWVSYW5nZXM7CiAKIGNsYXNzIFNvdXJjZUJ1ZmZl
clByaXZhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxTb3VyY2VCdWZmZXJQcml2YXRlPiB7CiBwdWJs
aWM6CkBAIC01OCwxNyArNTQsMTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6
OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkgPSAwOwogCi0gICAgdmlydHVhbCB2
b2lkIGZsdXNoKEF0b21pY1N0cmluZykgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGVucXVldWVTYW1w
bGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4sIEF0b21pY1N0cmluZykgeyB9Ci0gICAgdmlydHVh
bCBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCB2b2lkIGZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiwgY29uc3QgQXRv
bWljU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhj
b25zdCBBdG9taWNTdHJpbmcmKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBz
ZXRBY3RpdmUoYm9vbCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2Ft
cGxlcyhBdG9taWNTdHJpbmcpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlDbGllbnRXaGVu
UmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBz
dG9wQXNraW5nRm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgeyB9CisgICAgdmly
dHVhbCB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21p
Y1N0cmluZyYpIHsgfQogCi0gICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBlbnF1ZXVlZFNhbXBs
ZXNGb3JUcmFja0lEKEF0b21pY1N0cmluZykgeyByZXR1cm4ge307IH0KKyAgICB2aXJ0dWFsIFZl
Y3RvcjxTdHJpbmc+IGVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoY29uc3QgQXRvbWljU3RyaW5n
JikgeyByZXR1cm4geyB9OyB9CiB9OwogCiB9CiAKICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2
YXRlQ2xpZW50LmgKaW5kZXggMjk0YWQ2NWY0NjMzNWRmMDY5MTUzZjRhY2IzOTcwM2JmMWM5ZjBm
Mi4uMTgwODdkNWUzZDI2Y2ExMWRiYTBmNjg3MzAwZDg2OTY4ODBiNWNkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclBy
aXZhdGVDbGllbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zMiwxMiArMzIsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlOwogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGU7Ci1jbGFz
cyBWaWRlb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGU7CiBjbGFz
cyBNZWRpYVNhbXBsZTsKIGNsYXNzIE1lZGlhRGVzY3JpcHRpb247CitjbGFzcyBWaWRlb1RyYWNr
UHJpdmF0ZTsKIAogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6CkBA
IC02NCwyMyArNjMsMTkgQEAgcHVibGljOgogICAgICAgICB9OwogICAgICAgICBWZWN0b3I8VGV4
dFRyYWNrSW5mb3JtYXRpb24+IHRleHRUcmFja3M7CiAgICAgfTsKLSAgICB2aXJ0dWFsIHZvaWQg
c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNl
QnVmZmVyUHJpdmF0ZSosIGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoU291cmNlQnVm
ZmVyUHJpdmF0ZSosIE1lZGlhU2FtcGxlJikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBzb3VyY2VC
dWZmZXJQcml2YXRlSGFzQXVkaW8oY29uc3QgU291cmNlQnVmZmVyUHJpdmF0ZSopIGNvbnN0ID0g
MDsKLSAgICB2aXJ0dWFsIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKGNvbnN0IFNv
dXJjZUJ1ZmZlclByaXZhdGUqKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1
ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxp
emF0aW9uU2VnbWVudCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmKSA9IDA7CisgICAgdmlydHVhbCBib29sIHNv
dXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wg
c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCkgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2
b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJj
ZUJ1ZmZlclByaXZhdGUqLCBBdG9taWNTdHJpbmcgdHJhY2tJRCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25z
dCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpID0gMDsKIAotICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNv
dXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoU291cmNlQnVmZmVyUHJp
dmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVk
aWFUaW1lJikgeyByZXR1cm4gdGltZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQ
cml2YXRlU2Vla1RvVGltZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJikg
eyB9OworICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1Rp
bWVGb3JNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBNZWRpYVRpbWUmLCBj
b25zdCBNZWRpYVRpbWUmKSB7IHJldHVybiB0aW1lOyB9CisgICAgdmlydHVhbCB2b2lkIHNvdXJj
ZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKGNvbnN0IE1lZGlhVGltZSYpIHsgfTsKIAotICAgIGVu
dW0gQXBwZW5kUmVzdWx0IHsKLSAgICAgICAgQXBwZW5kU3VjY2VlZGVkLAotICAgICAgICBSZWFk
U3RyZWFtRmFpbGVkLAotICAgICAgICBQYXJzaW5nRmFpbGVkLAotICAgIH07Ci0gICAgdmlydHVh
bCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2
YXRlKiwgQXBwZW5kUmVzdWx0KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoU291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBl
cnJvY0NvZGUpID0gMDsKKyAgICBlbnVtIEFwcGVuZFJlc3VsdCB7IEFwcGVuZFN1Y2NlZWRlZCwg
UmVhZFN0cmVhbUZhaWxlZCwgUGFyc2luZ0ZhaWxlZCB9OworICAgIHZpcnR1YWwgdm9pZCBzb3Vy
Y2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoQXBwZW5kUmVzdWx0KSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoaW50
IGVycm9yQ29kZSkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oCmluZGV4IDczMWFhOGQ5MzZhNWFhZWEwZDFj
MDNhYTY4YTJhYzZiMmIyYjllNjQuLjBiMDBjYTVmNjYxNTQ5NjI4NTFjM2VjN2Y5MTY4MzA0OGI4
NmJmNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNr
UHJpdmF0ZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFj
a1ByaXZhdGVCYXNlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAx
MyBDYWJsZSBUZWxldmlzaW9uIExhYnMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKQEAgLTI1LDM0ICsyNSwyOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0j
aWZuZGVmIFRyYWNrUHJpdmF0ZUJhc2VfaAotI2RlZmluZSBUcmFja1ByaXZhdGVCYXNlX2gKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9BdG9taWNTdHJpbmcuaD4KIAotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLQogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBUcmFja1ByaXZhdGVCYXNlOwotCiBjbGFzcyBUcmFja1ByaXZh
dGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5UcmFja1ByaXZhdGVCYXNlQ2xp
ZW50KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwg
Y29uc3QgQXRvbWljU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBsYWJlbENoYW5nZWQo
VHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJp
bmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSop
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgbGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZSgpID0gMDsKIH07CiAKIGNsYXNzIFRy
YWNrUHJpdmF0ZUJhc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxUcmFja1ByaXZhdGVCYXNlPiB7Ci0g
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVHJhY2tQcml2YXRlQmFzZSk7IFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRyYWNrUHJpdmF0ZUJhc2UpOwor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHZpcnR1YWwgflRyYWNr
UHJpdmF0ZUJhc2UoKSB7IH0KKyAgICB2aXJ0dWFsIH5UcmFja1ByaXZhdGVCYXNlKCkgPSBkZWZh
dWx0OwogCiAgICAgdmlydHVhbCBUcmFja1ByaXZhdGVCYXNlQ2xpZW50KiBjbGllbnQoKSBjb25z
dCA9IDA7CiAKQEAgLTYzLDE4ICs1OCwxNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgdHJh
Y2tJbmRleCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAogICAgIHZpcnR1YWwgTWVkaWFUaW1lIHN0
YXJ0VGltZVZhcmlhbmNlKCkgY29uc3QgeyByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOyB9
Ci0gICAgCisKICAgICB2b2lkIHdpbGxCZVJlbW92ZWQoKQogICAgIHsKLSAgICAgICAgaWYgKFRy
YWNrUHJpdmF0ZUJhc2VDbGllbnQqIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQotICAgICAgICAg
ICAgY2xpZW50LT53aWxsUmVtb3ZlKHRoaXMpOworICAgICAgICBpZiAoYXV0byogY2xpZW50ID0g
dGhpcy0+Y2xpZW50KCkpCisgICAgICAgICAgICBjbGllbnQtPndpbGxSZW1vdmUoKTsKICAgICB9
CiAKIHByb3RlY3RlZDoKLSAgICBUcmFja1ByaXZhdGVCYXNlKCkgeyB9CisgICAgVHJhY2tQcml2
YXRlQmFzZSgpID0gZGVmYXVsdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1ZpZGVvVHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9W
aWRlb1RyYWNrUHJpdmF0ZS5oCmluZGV4IGZlZDM0OWE3YjM3MjhmNTAyN2M4MmU3YTEwYzM1Mjdk
MGY1OTM1ZGQuLmY5NDUzMzU2N2ZmMmJiMzA1NjhlODExM2Q0NzVkOGU4NjE1MDcxYWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZh
dGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yMywyOSArMjMsMjEgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBWaWRl
b1RyYWNrUHJpdmF0ZV9oCi0jZGVmaW5lIFZpZGVvVHJhY2tQcml2YXRlX2gKLQotI2luY2x1ZGUg
IlRyYWNrUHJpdmF0ZUJhc2UuaCIKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZS5o
IgogCi1jbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKK25hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZUNsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIHNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNr
UHJpdmF0ZSosIGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJv
b2wpID0gMDsKIH07CiAKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlIDogcHVibGljIFRyYWNrUHJp
dmF0ZUJhc2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2
YXRlPiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWaWRlb1Ry
YWNrUHJpdmF0ZSgpKTsKLSAgICB9Ci0KICAgICB2b2lkIHNldENsaWVudChWaWRlb1RyYWNrUHJp
dmF0ZUNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAgICAgVmlkZW9UcmFj
a1ByaXZhdGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xpZW50
OyB9CiAKQEAgLTU1LDI2ICs0NywyMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIG1fc2VsZWN0ZWQgPSBzZWxlY3RlZDsKICAgICAgICAgaWYgKG1fY2xpZW50KQotICAg
ICAgICAgICAgbV9jbGllbnQtPnNlbGVjdGVkQ2hhbmdlZCh0aGlzLCBtX3NlbGVjdGVkKTsKLSAg
ICB9OworICAgICAgICAgICAgbV9jbGllbnQtPnNlbGVjdGVkQ2hhbmdlZChtX3NlbGVjdGVkKTsK
KyAgICB9CiAgICAgdmlydHVhbCBib29sIHNlbGVjdGVkKCkgY29uc3QgeyByZXR1cm4gbV9zZWxl
Y3RlZDsgfQogCiAgICAgZW51bSBLaW5kIHsgQWx0ZXJuYXRpdmUsIENhcHRpb25zLCBNYWluLCBT
aWduLCBTdWJ0aXRsZXMsIENvbW1lbnRhcnksIE5vbmUgfTsKICAgICB2aXJ0dWFsIEtpbmQga2lu
ZCgpIGNvbnN0IHsgcmV0dXJuIE5vbmU7IH0KIAogcHJvdGVjdGVkOgotICAgIFZpZGVvVHJhY2tQ
cml2YXRlKCkKLSAgICAgICAgOiBtX2NsaWVudCgwKQotICAgICAgICAsIG1fc2VsZWN0ZWQoZmFs
c2UpCi0gICAgewotICAgIH0KKyAgICBWaWRlb1RyYWNrUHJpdmF0ZSgpID0gZGVmYXVsdDsKIAog
cHJpdmF0ZToKLSAgICBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCogbV9jbGllbnQ7Ci0gICAgYm9v
bCBtX3NlbGVjdGVkOworICAgIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50KiBtX2NsaWVudCB7IG51
bGxwdHIgfTsKKyAgICBib29sIG1fc2VsZWN0ZWQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvVHJhY2tQcml2YXRlQVZGLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFj
a1ByaXZhdGVBVkYuaAppbmRleCAxMzFmZDUxYjRjMTY5MzQwOGI0ZjhhNGI1OTZlYjI2ZmJkNmQy
OTZiLi4xOWI1NjBiY2NiYTU4MTk1Y2U0NWVmNmVmODFjOGRjZGVjMjk1YmM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFj
a1ByaXZhdGVBVkYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vQXVkaW9UcmFja1ByaXZhdGVBVkYuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBBdWRpb1RyYWNrUHJpdmF0
ZUFWRl9oCi0jZGVmaW5lIEF1ZGlvVHJhY2tQcml2YXRlQVZGX2gKKyNwcmFnbWEgb25jZQogCiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCkBAIC0zNSw3ICszNCw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlQVZGIDogcHVibGljIEF1ZGlvVHJhY2tQcml2
YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1RyYWNrUHJpdmF0ZUFWRikKIHB1
YmxpYzoKLQogICAgIHZpcnR1YWwgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gbV9raW5kOyB9
CiAgICAgdmlydHVhbCBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAg
ICAgdmlydHVhbCBBdG9taWNTdHJpbmcgbGFiZWwoKSBjb25zdCB7IHJldHVybiBtX2xhYmVsOyB9
CkBAIC00NCwyNiArNDIsMjAgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRL
aW5kKEtpbmQga2luZCkgeyBtX2tpbmQgPSBraW5kOyB9Ci0gICAgdm9pZCBzZXRJZChBdG9taWNT
dHJpbmcgbmV3SWQpIHsgbV9pZCA9IG5ld0lkOyB9Ci0gICAgdm9pZCBzZXRMYWJlbChBdG9taWNT
dHJpbmcgbGFiZWwpIHsgbV9sYWJlbCA9IGxhYmVsOyB9Ci0gICAgdm9pZCBzZXRMYW5ndWFnZShB
dG9taWNTdHJpbmcgbGFuZ3VhZ2UpIHsgbV9sYW5ndWFnZSA9IGxhbmd1YWdlOyB9CisgICAgdm9p
ZCBzZXRJZChjb25zdCBBdG9taWNTdHJpbmcmIG5ld0lkKSB7IG1faWQgPSBuZXdJZDsgfQorICAg
IHZvaWQgc2V0TGFiZWwoY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkgeyBtX2xhYmVsID0gbGFi
ZWw7IH0KKyAgICB2b2lkIHNldExhbmd1YWdlKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2Up
IHsgbV9sYW5ndWFnZSA9IGxhbmd1YWdlOyB9CiAgICAgdm9pZCBzZXRUcmFja0luZGV4KGludCBp
bmRleCkgeyBtX2luZGV4ID0gaW5kZXg7IH0KIAotICAgIEtpbmQgbV9raW5kOworICAgIEtpbmQg
bV9raW5kIHsgTm9uZSB9OwogICAgIEF0b21pY1N0cmluZyBtX2lkOwogICAgIEF0b21pY1N0cmlu
ZyBtX2xhYmVsOwogICAgIEF0b21pY1N0cmluZyBtX2xhbmd1YWdlOwotICAgIGludCBtX2luZGV4
OworICAgIGludCBtX2luZGV4IHsgMCB9OwogCi0gICAgQXVkaW9UcmFja1ByaXZhdGVBVkYoKQot
ICAgICAgICA6IG1fa2luZChOb25lKQotICAgICAgICAsIG1faW5kZXgoMCkKLSAgICB7Ci0gICAg
fQorICAgIEF1ZGlvVHJhY2tQcml2YXRlQVZGKCkgPSBkZWZhdWx0OwogfTsKIAogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKQotCi0jZW5kaWYgLy8gQXVkaW9UcmFja1ByaXZhdGVB
VkZfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFUZXh0VHJh
Y2tQcml2YXRlQVZGLmNwcAppbmRleCA5YzZjYTg3YjBjMGY5MDA2NzExN2Y0NDJkM2U2NmQ5NDEz
M2FmMTQwLi5iNDliZDFlMzdmMGM3ZDA2YTllYjM4YmNkMGMxYzNjMGJjMzg3OTJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5k
TWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRl
QVZGLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI0LDkgKzI0LDkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmgiCiAKICNpZiBFTkFC
TEUoVklERU8pICYmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKSAmJiAoVVNFKEFWRk9VTkRBVElPTikg
fHwgUExBVEZPUk0oSU9TKSkKLSNpbmNsdWRlICJJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZh
dGVBVkYuaCIKIAogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCkBAIC01NCw2ICs1NCw3IEBAIEluYmFuZE1ldGFkYXRhVGV4dFRy
YWNrUHJpdmF0ZUFWRjo6fkluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRigpCiB9CiAK
ICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKKwogdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFj
a1ByaXZhdGVBVkY6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVk
aWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+
IHBycEN1ZURhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICBBU1NFUlQoY3VlRm9ybWF0
KCkgPT0gRGF0YSk7CkBAIC02Niw3ICs2Nyw3IEBAIHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJh
Y2tQcml2YXRlQVZGOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0CiAg
ICAgbV9jdXJyZW50Q3VlU3RhcnRUaW1lID0gc3RhcnQ7CiAgICAgaWYgKGVuZC5pc1Bvc2l0aXZl
SW5maW5pdGUoKSkKICAgICAgICAgbV9pbmNvbXBsZXRlQ3Vlcy5hcHBlbmQoSW5jb21wbGV0ZU1l
dGFEYXRhQ3VlIHsgY3VlRGF0YS5nZXQoKSwgc3RhcnQgfSk7Ci0gICAgY2xpZW50KCktPmFkZERh
dGFDdWUodGhpcywgc3RhcnQsIGVuZCwgY3VlRGF0YSwgdHlwZSk7CisgICAgY2xpZW50KCktPmFk
ZERhdGFDdWUoc3RhcnQsIGVuZCwgY3VlRGF0YS5yZWxlYXNlTm9uTnVsbCgpLCB0eXBlKTsKIH0K
IAogdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OnVwZGF0ZVBlbmRpbmdD
dWVFbmRUaW1lcyhjb25zdCBNZWRpYVRpbWUmIHRpbWUpCkBAIC03Nyw3ICs3OCw3IEBAIHZvaWQg
SW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjp1cGRhdGVQZW5kaW5nQ3VlRW5kVGlt
ZXMoY29uc3QgTWVkaWFUaW1lCiAgICAgICAgIGlmIChjbGllbnQoKSkgewogICAgICAgICAgICAg
Zm9yIChhdXRvJiBwYXJ0aWFsQ3VlIDogbV9pbmNvbXBsZXRlQ3VlcykgewogICAgICAgICAgICAg
ICAgIExPRyhNZWRpYSwgIkluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6dXBkYXRl
UGVuZGluZ0N1ZUVuZFRpbWVzKCVwKSAtIHVwZGF0aW5nIGN1ZTogc3RhcnQ9JXMsIGVuZD0lcyIs
IHRoaXMsIHRvU3RyaW5nKHBhcnRpYWxDdWUuc3RhcnRUaW1lKS51dGY4KCkuZGF0YSgpLCB0b1N0
cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICBjbGllbnQoKS0+dXBk
YXRlRGF0YUN1ZSh0aGlzLCBwYXJ0aWFsQ3VlLnN0YXJ0VGltZSwgdGltZSwgcGFydGlhbEN1ZS5j
dWVEYXRhKTsKKyAgICAgICAgICAgICAgICBjbGllbnQoKS0+dXBkYXRlRGF0YUN1ZShwYXJ0aWFs
Q3VlLnN0YXJ0VGltZSwgdGltZSwgKnBhcnRpYWxDdWUuY3VlRGF0YSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICB9IGVsc2UKQEAgLTg2LDYgKzg3LDcgQEAgdm9pZCBJbmJhbmRNZXRh
ZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OnVwZGF0ZVBlbmRpbmdDdWVFbmRUaW1lcyhjb25zdCBN
ZWRpYVRpbWUKICAgICBtX2luY29tcGxldGVDdWVzLnJlc2l6ZSgwKTsKICAgICBtX2N1cnJlbnRD
dWVTdGFydFRpbWUgPSBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiB9CisKICNlbmRpZgogCiB2b2lk
IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6Zmx1c2hQYXJ0aWFsQ3VlcygpCkBA
IC05NSw3ICs5Nyw3IEBAIHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjpm
bHVzaFBhcnRpYWxDdWVzKCkKIAogICAgIGlmIChjbGllbnQoKSkgewogICAgICAgICBmb3IgKGF1
dG8mIHBhcnRpYWxDdWUgOiBtX2luY29tcGxldGVDdWVzKQotICAgICAgICAgICAgY2xpZW50KCkt
PnJlbW92ZURhdGFDdWUodGhpcywgcGFydGlhbEN1ZS5zdGFydFRpbWUsIE1lZGlhVGltZTo6cG9z
aXRpdmVJbmZpbml0ZVRpbWUoKSwgcGFydGlhbEN1ZS5jdWVEYXRhKTsKKyAgICAgICAgICAgIGNs
aWVudCgpLT5yZW1vdmVEYXRhQ3VlKHBhcnRpYWxDdWUuc3RhcnRUaW1lLCBNZWRpYVRpbWU6OnBv
c2l0aXZlSW5maW5pdGVUaW1lKCksICpwYXJ0aWFsQ3VlLmN1ZURhdGEpOwogICAgIH0KIAogICAg
IG1faW5jb21wbGV0ZUN1ZXMucmVzaXplKDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFu
ZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCmluZGV4IDNiN2JkYTg2NmQyZTYwZDkzMmViOGU2MDk2
ZWY4YTkzMzM3YzY2YzAuLjk1OTZmOGNhM2MxN2U0NWRmY2UxOGQ3YWQwMjRlMGM1MWQ1MmQwZDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yNCwxMSArMjQsMTEgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oIgogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiAo
VVNFKEFWRk9VTkRBVElPTikgfHwgUExBVEZPUk0oSU9TKSkKIAotI2luY2x1ZGUgIkluYmFuZFRl
eHRUcmFja1ByaXZhdGVBVkYuaCIKLQorI2luY2x1ZGUgIkNvcmVNZWRpYVNvZnRMaW5rLmgiCiAj
aW5jbHVkZSAiSVNPVlRUQ3VlLmgiCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNs
aWVudC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTQzLDEyICs0Myw2IEBACiAjaW5jbHVk
ZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJp
bnRTdHJlYW0uaD4KIAotI2luY2x1ZGUgIkNvcmVNZWRpYVNvZnRMaW5rLmgiCi0KLW5hbWVzcGFj
ZSBKU0MgewotY2xhc3MgQXJyYXlCdWZmZXI7Ci19Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
QVZGSW5iYW5kVHJhY2tQYXJlbnQ6On5BVkZJbmJhbmRUcmFja1BhcmVudCgpCkBAIC0zMjMsMzMg
KzMxNywzMyBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRyaWJ1
dGVkU3RyaW5ncyhDRkFycmF5UmVmIGF0dHJpYnV0ZWRTdAogewogICAgIExPRyhNZWRpYSwgIklu
YmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWUgLSAlbGkgY3VlcyBhdCB0aW1lICVz
XG4iLCBhdHRyaWJ1dGVkU3RyaW5ncyA/IENGQXJyYXlHZXRDb3VudChhdHRyaWJ1dGVkU3RyaW5n
cykgOiAwLCB0b1N0cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpKTsKIAotICAgIFZlY3RvcjxSZWZQ
dHI8R2VuZXJpY0N1ZURhdGE+PiBhcnJpdmluZ0N1ZXM7CisgICAgVmVjdG9yPFJlZjxHZW5lcmlj
Q3VlRGF0YT4+IGFycml2aW5nQ3VlczsKICAgICBpZiAoYXR0cmlidXRlZFN0cmluZ3MpIHsKICAg
ICAgICAgQ0ZJbmRleCBjb3VudCA9IENGQXJyYXlHZXRDb3VudChhdHRyaWJ1dGVkU3RyaW5ncyk7
CiAgICAgICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKICAgICAgICAg
ICAgIENGQXR0cmlidXRlZFN0cmluZ1JlZiBhdHRyaWJ1dGVkU3RyaW5nID0gc3RhdGljX2Nhc3Q8
Q0ZBdHRyaWJ1dGVkU3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dHJpYnV0ZWRT
dHJpbmdzLCBpKSk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgaWYgKCFhdHRyaWJ1dGVk
U3RyaW5nIHx8ICFDRkF0dHJpYnV0ZWRTdHJpbmdHZXRMZW5ndGgoYXR0cmlidXRlZFN0cmluZykp
CiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFJl
ZlB0cjxHZW5lcmljQ3VlRGF0YT4gY3VlRGF0YSA9IEdlbmVyaWNDdWVEYXRhOjpjcmVhdGUoKTsK
LSAgICAgICAgICAgIHByb2Nlc3NDdWVBdHRyaWJ1dGVzKGF0dHJpYnV0ZWRTdHJpbmcsICpjdWVE
YXRhLmdldCgpKTsKKworICAgICAgICAgICAgYXV0byBjdWVEYXRhID0gR2VuZXJpY0N1ZURhdGE6
OmNyZWF0ZSgpOworICAgICAgICAgICAgcHJvY2Vzc0N1ZUF0dHJpYnV0ZXMoYXR0cmlidXRlZFN0
cmluZywgY3VlRGF0YS5nZXQoKSk7CiAgICAgICAgICAgICBpZiAoIWN1ZURhdGEtPmNvbnRlbnQo
KS5sZW5ndGgoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIAotICAg
ICAgICAgICAgYXJyaXZpbmdDdWVzLmFwcGVuZChjdWVEYXRhKTsKLSAgICAgICAgICAgIAorCiAg
ICAgICAgICAgICBjdWVEYXRhLT5zZXRTdGFydFRpbWUodGltZSk7CiAgICAgICAgICAgICBjdWVE
YXRhLT5zZXRFbmRUaW1lKE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKSk7Ci0gICAg
ICAgICAgICAKKwogICAgICAgICAgICAgLy8gQVZGb3VuZGF0aW9uIGN1ZSAicG9zaXRpb24iIGlz
IHRvIHRoZSBjZW50ZXIgb2YgdGhlIHRleHQgc28gYWRqdXN0IHJlbGF0aXZlIHRvIHRoZSBlZGdl
IGJlY2F1c2Ugd2Ugd2lsbCB1c2UgaXQgdG8KICAgICAgICAgICAgIC8vIHNldCBDU1MgImxlZnQi
LgogICAgICAgICAgICAgaWYgKGN1ZURhdGEtPnBvc2l0aW9uKCkgPj0gMCAmJiBjdWVEYXRhLT5z
aXplKCkgPiAwKQogICAgICAgICAgICAgICAgIGN1ZURhdGEtPnNldFBvc2l0aW9uKGN1ZURhdGEt
PnBvc2l0aW9uKCkgLSBjdWVEYXRhLT5zaXplKCkgLyAyKTsKLSAgICAgICAgICAgIAorCiAgICAg
ICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3Vl
KCVwKSAtIGNvbnNpZGVyaW5nIGN1ZSAoXCIlc1wiKSBmb3IgdGltZSA9ICVzLCBwb3NpdGlvbiA9
ICAlLjJmLCBsaW5lID0gICUuMmYiLCB0aGlzLCBjdWVEYXRhLT5jb250ZW50KCkudXRmOCgpLmRh
dGEoKSwgdG9TdHJpbmcoY3VlRGF0YS0+c3RhcnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURh
dGEtPnBvc2l0aW9uKCksIGN1ZURhdGEtPmxpbmUoKSk7Ci0gICAgICAgICAgICAKKwogICAgICAg
ICAgICAgY3VlRGF0YS0+c2V0U3RhdHVzKEdlbmVyaWNDdWVEYXRhOjpQYXJ0aWFsKTsKKworICAg
ICAgICAgICAgYXJyaXZpbmdDdWVzLmFwcGVuZChXVEZNb3ZlKGN1ZURhdGEpKTsKICAgICAgICAg
fQogICAgIH0KIApAQCAtMzYwLDE3ICszNTQsMTcgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlQVZGOjpwcm9jZXNzQXR0cmlidXRlZFN0cmluZ3MoQ0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3QK
ICAgICAgICAgaWYgKG1fY3VycmVudEN1ZUVuZFRpbWUgPj0gbV9jdXJyZW50Q3VlU3RhcnRUaW1l
KSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIGN1ZURhdGEgOiBtX2N1ZXMpIHsKICAgICAgICAg
ICAgICAgICAvLyBTZWUgaWYgb25lIG9mIHRoZSBuZXdseS1hcnJpdmVkIGN1ZXMgaXMgYW4gZXh0
ZW5zaW9uIG9mIHRoaXMgY3VlLgotICAgICAgICAgICAgICAgIFZlY3RvcjxSZWZQdHI8R2VuZXJp
Y0N1ZURhdGE+PiBub25FeHRlbnNpb25DdWVzOworICAgICAgICAgICAgICAgIFZlY3RvcjxSZWY8
R2VuZXJpY0N1ZURhdGE+PiBub25FeHRlbnNpb25DdWVzOwogICAgICAgICAgICAgICAgIGZvciAo
YXV0byYgYXJyaXZpbmdDdWUgOiBhcnJpdmluZ0N1ZXMpIHsKICAgICAgICAgICAgICAgICAgICAg
aWYgKCFhcnJpdmluZ0N1ZS0+ZG9lc0V4dGVuZEN1ZURhdGEoKmN1ZURhdGEpKQotICAgICAgICAg
ICAgICAgICAgICAgICAgbm9uRXh0ZW5zaW9uQ3Vlcy5hcHBlbmQoYXJyaXZpbmdDdWUpOworICAg
ICAgICAgICAgICAgICAgICAgICAgbm9uRXh0ZW5zaW9uQ3Vlcy5hcHBlbmQoV1RGTW92ZShhcnJp
dmluZ0N1ZSkpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
ICAgICBMT0coTWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlKCVw
KSAtIGZvdW5kIGFuIGV4dGVuc2lvbiBjdWUgKFwiJXNcIikgZm9yIHRpbWUgPSAlLjJmLCBlbmQg
PSAlLjJmLCBwb3NpdGlvbiA9ICAlLjJmLCBsaW5lID0gICUuMmYiLCB0aGlzLCBhcnJpdmluZ0N1
ZS0+Y29udGVudCgpLnV0ZjgoKS5kYXRhKCksIGFycml2aW5nQ3VlLT5zdGFydFRpbWUoKS50b0Rv
dWJsZSgpLCBhcnJpdmluZ0N1ZS0+ZW5kVGltZSgpLnRvRG91YmxlKCksIGFycml2aW5nQ3VlLT5w
b3NpdGlvbigpLCBhcnJpdmluZ0N1ZS0+bGluZSgpKTsKICAgICAgICAgICAgICAgICB9CiAKICAg
ICAgICAgICAgICAgICBib29sIGN1cnJlbnRDdWVJc0V4dGVuZGVkID0gKGFycml2aW5nQ3Vlcy5z
aXplKCkgIT0gbm9uRXh0ZW5zaW9uQ3Vlcy5zaXplKCkpOwogCi0gICAgICAgICAgICAgICAgYXJy
aXZpbmdDdWVzID0gbm9uRXh0ZW5zaW9uQ3VlczsKKyAgICAgICAgICAgICAgICBhcnJpdmluZ0N1
ZXMgPSBXVEZNb3ZlKG5vbkV4dGVuc2lvbkN1ZXMpOwogICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgIGlmIChjdXJyZW50Q3VlSXNFeHRlbmRlZCkKICAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CkBAIC0zODAsNyArMzc0LDcgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRl
QVZGOjpwcm9jZXNzQXR0cmlidXRlZFN0cmluZ3MoQ0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3QKICAg
ICAgICAgICAgICAgICAgICAgY3VlRGF0YS0+c2V0U3RhdHVzKEdlbmVyaWNDdWVEYXRhOjpDb21w
bGV0ZSk7CiAKICAgICAgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSglcCkgLSB1cGRhdGluZyBjdWUgXCIlc1wiOiBzdGFydD0l
LjJmLCBlbmQ9JS4yZiIsIHRoaXMsIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpLCBj
dWVEYXRhLT5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBtX2N1cnJlbnRDdWVFbmRUaW1lLnRvRG91
YmxlKCkpOwotICAgICAgICAgICAgICAgICAgICBjbGllbnQoKS0+dXBkYXRlR2VuZXJpY0N1ZSh0
aGlzLCBjdWVEYXRhLmdldCgpKTsKKyAgICAgICAgICAgICAgICAgICAgY2xpZW50KCktPnVwZGF0
ZUdlbmVyaWNDdWUoKmN1ZURhdGEpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gYXNzdW1lIHRoYXQgdGhlIGltcGxpY2l0IGR1cmF0
aW9uIGlzIGludmFsaWQgZm9yIGN1ZXMgZGVsaXZlcmVkIGR1cmluZyBhIHNlZWsgYmVjYXVzZSB0
aGUgQVZGIGRlY29kZSBwaXBlbGluZSBtYXkgbm90CiAgICAgICAgICAgICAgICAgICAgIC8vIHNl
ZSBldmVyeSBjdWUsIHNvIERPIE5PVCB1cGRhdGUgY3VlIGR1cmF0aW9uIHdoaWxlIHNlZWtpbmcu
CkBAIC0zOTksMTIgKzM5MywxMSBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnBy
b2Nlc3NBdHRyaWJ1dGVkU3RyaW5ncyhDRkFycmF5UmVmIGF0dHJpYnV0ZWRTdAogICAgIG1fY3Vy
cmVudEN1ZVN0YXJ0VGltZSA9IHRpbWU7CiAKICAgICBmb3IgKGF1dG8mIGN1ZURhdGEgOiBhcnJp
dmluZ0N1ZXMpIHsKLQotICAgICAgICBtX2N1ZXMuYXBwZW5kKGN1ZURhdGEpOworICAgICAgICBt
X2N1ZXMuYXBwZW5kKGN1ZURhdGEucHRyKCkpOwogICAgICAgICAKICAgICAgICAgTE9HKE1lZGlh
LCAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSglcCkgLSBhZGRpbmcgY3Vl
IFwiJXNcIiBmb3IgdGltZSA9ICUuMmYsIGVuZCA9ICUuMmYsIHBvc2l0aW9uID0gICUuMmYsIGxp
bmUgPSAgJS4yZiIsIHRoaXMsIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpLCBjdWVE
YXRhLT5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLT5lbmRUaW1lKCkudG9Eb3VibGUo
KSwgY3VlRGF0YS0+cG9zaXRpb24oKSwgY3VlRGF0YS0+bGluZSgpKTsKIAotICAgICAgICBjbGll
bnQoKS0+YWRkR2VuZXJpY0N1ZSh0aGlzLCBXVEZNb3ZlKGN1ZURhdGEpKTsKKyAgICAgICAgY2xp
ZW50KCktPmFkZEdlbmVyaWNDdWUoV1RGTW92ZShjdWVEYXRhKSk7CiAgICAgfQogCiAgICAgbV9w
ZW5kaW5nQ3VlU3RhdHVzID0gc2Vla2luZygpID8gRGVsaXZlcmVkRHVyaW5nU2VlayA6IFZhbGlk
OwpAQCAtNDUxLDkgKzQ0NCw5IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cmVz
ZXRDdWVWYWx1ZXMoKQogICAgIGlmIChtX2N1cnJlbnRDdWVFbmRUaW1lICYmIG1fY3Vlcy5zaXpl
KCkpCiAgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnJlc2V0
Q3VlVmFsdWVzIGZsdXNoaW5nIGRhdGEgZm9yIGN1ZXM6IHN0YXJ0PSVzXG4iLCB0b1N0cmluZyht
X2N1cnJlbnRDdWVTdGFydFRpbWUpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgaWYgKGNsaWVudCgp
KSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jdWVzLnNpemUoKTsgaSsrKQot
ICAgICAgICAgICAgY2xpZW50KCktPnJlbW92ZUdlbmVyaWNDdWUodGhpcywgbV9jdWVzW2ldLmdl
dCgpKTsKKyAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpIHsKKyAgICAgICAg
Zm9yIChhdXRvJiBjdWUgOiBtX2N1ZXMpCisgICAgICAgICAgICBjbGllbnQtPnJlbW92ZUdlbmVy
aWNDdWUoKmN1ZSk7CiAgICAgfQogCiAgICAgbV9jdWVzLnJlc2l6ZSgwKTsKQEAgLTUwOSw3ICs1
MDIsNyBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NOYXRpdmVTYW1w
bGVzKENGQXJyYXlSZWYgbmF0aXZlU2FtcGxlcywgYwogICAgICAgICAgICAgTE9HKE1lZGlhLCAi
ICAgIGlkID0gXCIlc1wiLCBzZXR0aW5ncyA9IFwiJXNcIiwgY3VlIHRleHQgPSBcIiVzXCIiLCBj
dWVEYXRhLmlkKCkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS5zZXR0aW5ncygpLnV0ZjgoKS5kYXRh
KCksIGN1ZURhdGEuY3VlVGV4dCgpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgTE9HKE1l
ZGlhLCAiICAgIHNvdXJjZUlEID0gXCIlc1wiLCBvcmlnaW5hbFN0YXJ0VGltZSA9IFwiJXNcIiIs
IGN1ZURhdGEuc291cmNlSUQoKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLm9yaWdpbmFsU3RhcnRU
aW1lKCkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICAgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZU
VEN1ZURhdGEodGhpcywgY3VlRGF0YSk7CisgICAgICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJW
VFRDdWVEYXRhKGN1ZURhdGEpOwogICAgICAgICB9CiAKICAgICAgICAgZG8gewpAQCAtNTQyLDcg
KzUzNSw3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc05hdGl2ZVNh
bXBsZXMoQ0ZBcnJheVJlZiBuYXRpdmVTYW1wbGVzLCBjCiAgICAgICAgICAgICBoZWFkZXIuYXBw
ZW5kKCJcblxuIik7CiAKICAgICAgICAgICAgIExPRyhNZWRpYSwgIiAgICB2dHQgaGVhZGVyID0g
XG4lcyIsIGhlYWRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgY2xp
ZW50KCktPnBhcnNlV2ViVlRURmlsZUhlYWRlcih0aGlzLCBoZWFkZXIudG9TdHJpbmcoKSk7Cisg
ICAgICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRGaWxlSGVhZGVyKGhlYWRlci50b1N0cmlu
ZygpKTsKICAgICAgICAgICAgIG1faGF2ZVJlcG9ydGVkVlRUSGVhZGVyID0gdHJ1ZTsKICAgICAg
ICAgfSB3aGlsZSAoMCk7CiAKQEAgLTU1NSw3ICs1NDgsNyBAQCBib29sIEluYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkY6OnJlYWROYXRpdmVTYW1wbGVCdWZmZXIoQ0ZBcnJheVJlZiBuYXRpdmVTYW1w
bGVzLAogI2lmIE9TKFdJTkRPV1MpICYmIEhBVkUoQVZDRlBMQVlFUklURU1fQ0FMTEJBQ0tfVkVS
U0lPTl8yKQogICAgIHJldHVybiBmYWxzZTsKICNlbHNlCi0gICAgQ01TYW1wbGVCdWZmZXJSZWYg
Y29uc3Qgc2FtcGxlQnVmZmVyID0gcmVpbnRlcnByZXRfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4o
Y29uc3RfY2FzdDx2b2lkKj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChuYXRpdmVTYW1wbGVzLCBp
bmRleCkpKTsKKyAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSByZWludGVycHJl
dF9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihjb25zdF9jYXN0PHZvaWQqPihDRkFycmF5R2V0VmFs
dWVBdEluZGV4KG5hdGl2ZVNhbXBsZXMsIGluZGV4KSkpOwogICAgIGlmICghc2FtcGxlQnVmZmVy
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9WaWRlb1RyYWNrUHJpdmF0ZUFWRi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1ZpZGVvVHJhY2tQcml2
YXRlQVZGLmgKaW5kZXggODU4ZjQxYzYxOGVhZjc5NGUzZTY1MWQwNDE2YTA1MGVkZjE4YTVhYi4u
YTNmMGY0ZWNhMDU3M2RkODJmYjk0N2Y0YjlmOWYwNzFhMGYzYzJmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1ZpZGVvVHJhY2tQcml2
YXRlQVZGLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL1ZpZGVvVHJhY2tQcml2YXRlQVZGLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgVmlkZW9UcmFja1ByaXZhdGVBVkZf
aAotI2RlZmluZSBWaWRlb1RyYWNrUHJpdmF0ZUFWRl9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVO
QUJMRShWSURFT19UUkFDSykKIApAQCAtMzUsNyArMzQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUFWRiA6IHB1YmxpYyBWaWRlb1RyYWNrUHJpdmF0ZSB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVmlkZW9UcmFja1ByaXZhdGVBVkYpCiBwdWJsaWM6
Ci0KICAgICBpbnQgdHJhY2tJbmRleCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faW5kZXg7
IH0KICAgICBLaW5kIGtpbmQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2tpbmQ7IH0KICAg
ICBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lkOyB9CkBAIC00
NCwyNiArNDIsMjAgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRLaW5kKEtp
bmQga2luZCkgeyBtX2tpbmQgPSBraW5kOyB9Ci0gICAgdm9pZCBzZXRJZChBdG9taWNTdHJpbmcg
bmV3SWQpIHsgbV9pZCA9IG5ld0lkOyB9Ci0gICAgdm9pZCBzZXRMYWJlbChBdG9taWNTdHJpbmcg
bGFiZWwpIHsgbV9sYWJlbCA9IGxhYmVsOyB9Ci0gICAgdm9pZCBzZXRMYW5ndWFnZShBdG9taWNT
dHJpbmcgbGFuZ3VhZ2UpIHsgbV9sYW5ndWFnZSA9IGxhbmd1YWdlOyB9CisgICAgdm9pZCBzZXRJ
ZChjb25zdCBBdG9taWNTdHJpbmcmIG5ld0lkKSB7IG1faWQgPSBuZXdJZDsgfQorICAgIHZvaWQg
c2V0TGFiZWwoY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkgeyBtX2xhYmVsID0gbGFiZWw7IH0K
KyAgICB2b2lkIHNldExhbmd1YWdlKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpIHsgbV9s
YW5ndWFnZSA9IGxhbmd1YWdlOyB9CiAgICAgdm9pZCBzZXRUcmFja0luZGV4KGludCBpbmRleCkg
eyBtX2luZGV4ID0gaW5kZXg7IH0KIAotICAgIEtpbmQgbV9raW5kOworICAgIEtpbmQgbV9raW5k
IHsgTm9uZSB9OwogICAgIEF0b21pY1N0cmluZyBtX2lkOwogICAgIEF0b21pY1N0cmluZyBtX2xh
YmVsOwogICAgIEF0b21pY1N0cmluZyBtX2xhbmd1YWdlOwotICAgIGludCBtX2luZGV4OworICAg
IGludCBtX2luZGV4IHsgMCB9OwogCi0gICAgVmlkZW9UcmFja1ByaXZhdGVBVkYoKQotICAgICAg
ICA6IG1fa2luZChOb25lKQotICAgICAgICAsIG1faW5kZXgoMCkKLSAgICB7Ci0gICAgfQorICAg
IFZpZGVvVHJhY2tQcml2YXRlQVZGKCkgPSBkZWZhdWx0OwogfTsKIAogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKFZJREVPX1RSQUNLKQotCi0jZW5kaWYgLy8gVmlkZW9UcmFja1ByaXZhdGVBVkZfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwCmluZGV4IGZlOTM0NGI2MzFmMDM1ZjllZGU3MzU3NDQw
N2YzNDM5YWEyNGU1MDIuLmVjMGQwZWRkYmY3M2JlZWRhNjcxN2I3YTUxOGM3MzIxMjYwOTVhZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsOCArMzYsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6QXVkaW9UcmFja1By
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaywgU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMqIHBhcmVudCkKICAgICA6IG1faW1wbChzdGQ6Om1ha2VfdW5pcXVlPEFW
VHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKICAgICAsIG1fcGFyZW50KHBhcmVudCkK
LSAgICAsIG1fdHJhY2tJRCgtMSkKLSAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKICAgICByZXNl
dFByb3BlcnRpZXNGcm9tVHJhY2soKTsKIH0KQEAgLTYzLDE3ICs2MSwxMiBAQCBBVkFzc2V0VHJh
Y2sqIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphc3NldFRyYWNrKCkKICAg
ICByZXR1cm4gbV9pbXBsLT5hc3NldFRyYWNrKCk7CiB9CiAKLWJvb2wgQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmVuYWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX2Vu
YWJsZWQ7Ci19Ci0KIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNl
dEVuYWJsZWQoYm9vbCBlbmFibGVkKQogewotICAgIGlmIChtX2VuYWJsZWQgPT0gZW5hYmxlZCkK
KyAgICBpZiAoZW5hYmxlZCA9PSB0aGlzLT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgQXVkaW9UcmFja1ByaXZhdGVBVkY6OnNldEVu
YWJsZWQoZW5hYmxlZCk7CiAgICAgbV9wYXJlbnQtPnRyYWNrRGlkQ2hhbmdlRW5hYmxlZCh0aGlz
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggYmJlODljZGRhMTNiMDgyZGNmODNm
MDI1ZmNjODVjNDI4ZmRjOTE0Ny4uMjEyODcyMTRhM2JmNWNlMTQwODA0NTUwZDlhZWVjMzhhMzA2
MTFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDE1ICsyMywxMyBAQAogICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCiAgKi8KIAotI2lmbmRlZiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Q19oCi0jZGVmaW5lIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDX2gKKyNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVBVkYuaCIKIAogI2lmIEVOQUJM
RShNRURJQV9TT1VSQ0UpICYmIEVOQUJMRShWSURFT19UUkFDSykKIAogT0JKQ19DTEFTUyBBVkFz
c2V0VHJhY2s7Ci1PQkpDX0NMQVNTIEFWUGxheWVySXRlbVRyYWNrOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTQxLDEzICszOSwxMiBAQCBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzsKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDIGZpbmFsIDog
cHVibGljIEF1ZGlvVHJhY2tQcml2YXRlQVZGIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShB
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQykKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPiBjcmVhdGUoQVZBc3Nl
dFRyYWNrKiB0cmFjaywgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIHBhcmVudCkKKyAgICBz
dGF0aWMgUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPiBjcmVhdGUo
QVZBc3NldFRyYWNrICp0cmFjaywgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIHBhcmVudCkK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXVkaW9UcmFja1ByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakModHJhY2ssIHBhcmVudCkpOwogICAgIH0KIAotICAgIGJvb2wgZW5hYmxl
ZCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0RW5hYmxlZChib29sKSBvdmVycmlkZTsK
KyAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCkgZmluYWw7CiAKICAgICB2b2lkIHNldEFzc2V0VHJh
Y2soQVZBc3NldFRyYWNrKik7CiAgICAgQVZBc3NldFRyYWNrKiBhc3NldFRyYWNrKCk7CkBAIC02
MiwxMSArNTksOCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxBVlRyYWNrUHJpdmF0
ZUFWRk9iakNJbXBsPiBtX2ltcGw7CiAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIG1f
cGFyZW50OwogICAgIGludCBtX3RyYWNrSUQ7Ci0gICAgYm9vbCBtX2VuYWJsZWQ7CiB9OwogCiB9
CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBFTkFCTEUoVklERU9fVFJBQ0sp
Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IGQ0YzQ2MWQ4OGJmNWY3
MmNmYWQ5OWM5ZWM4ZGRmZTUwNjQxNGYwYzEuLmY2N2E4N2Q2Y2RkZjViYjJhNjE3ZTI0YmRhMTBm
YjYwOGY4ZThkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNiArMzEs
NyBAQAogI2ltcG9ydCAiQVZGb3VuZGF0aW9uU1BJLmgiCiAjaW1wb3J0ICJBdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmgiCiAjaW1wb3J0ICJDbG9jay5oIgorI2ltcG9ydCAiQ29yZU1lZGlh
U29mdExpbmsuaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiTG9nZ2lu
Zy5oIgogI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCkBAIC00OSw4ICs1MCw2IEBACiAK
ICNwcmFnbWEgbWFyayAtIFNvZnQgTGlua2luZwogCi0jaW1wb3J0ICJDb3JlTWVkaWFTb2Z0TGlu
ay5oIgotCiBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAogU09G
VF9MSU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIpCkBAIC0zODAsMTAgKzM3OSwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6cGxheSgpCiAjZW5kaWYKIAogICAgIGZvciAoY29uc3QgYXV0byYgdHJh
Y2sgOiBtX2F1ZGlvVHJhY2tNYXAudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKCF0cmFjay0+ZW5h
YmxlZCgpIHx8ICF0cmFjay0+c3RyZWFtVHJhY2soKS0+cHJldmlldygpKQorICAgICAgICBpZiAo
IXRyYWNrLT5lbmFibGVkKCkgfHwgIXRyYWNrLT5zdHJlYW1UcmFjaygpLnByZXZpZXcoKSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLT5wcmV2
aWV3KCktPnBsYXkoKTsKKyAgICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCkucHJldmlldygpLT5w
bGF5KCk7CiAgICAgfQogCiAgICAgbV9oYXZlRXZlclBsYXllZCA9IHRydWU7CkBAIC00MTEsMTAg
KzQxMCwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1
c2UoKQogI2VuZGlmCiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIHRyYWNrIDogbV9hdWRpb1RyYWNr
TWFwLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmICghdHJhY2stPmVuYWJsZWQoKSB8fCAhdHJhY2st
PnN0cmVhbVRyYWNrKCktPnByZXZpZXcoKSkKKyAgICAgICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgp
IHx8ICF0cmFjay0+c3RyZWFtVHJhY2soKS5wcmV2aWV3KCkpCiAgICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgICB0cmFjay0+c3RyZWFtVHJhY2soKS0+cHJldmlldygpLT5wYXVzZSgpOwor
ICAgICAgICB0cmFjay0+c3RyZWFtVHJhY2soKS5wcmV2aWV3KCktPnBhdXNlKCk7CiAgICAgfQog
CiAgICAgdXBkYXRlRGlzcGxheU1vZGUoKTsKQEAgLTQzNSwxMCArNDM0LDEwIEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppbnRlcm5hbFNldFZvbHVtZShmbG9h
dCB2b2x1bWUsIGJvb2wKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChjb25zdCBhdXRvJiB0
cmFjayA6IG1fYXVkaW9UcmFja01hcC52YWx1ZXMoKSkgewotICAgICAgICBpZiAoIXRyYWNrLT5l
bmFibGVkKCkgfHwgIXRyYWNrLT5zdHJlYW1UcmFjaygpLT5wcmV2aWV3KCkpCisgICAgICAgIGlm
ICghdHJhY2stPmVuYWJsZWQoKSB8fCAhdHJhY2stPnN0cmVhbVRyYWNrKCkucHJldmlldygpKQog
ICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCktPnBy
ZXZpZXcoKS0+c2V0Vm9sdW1lKHZvbHVtZSk7CisgICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygp
LnByZXZpZXcoKS0+c2V0Vm9sdW1lKHZvbHVtZSk7CiAgICAgfQogfQogCkBAIC02MTcsNiArNjE2
LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNhbXBsZUJ1
ZmZlclVwZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1AKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykgJiYg
RU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXll
ciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9G
dWxsc2NyZWVuTGF5ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIsIGNvbXBsZXRpb25IYW5kbGVyKTsK
QEAgLTYyNiw2ICs2MjYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IGZyYQogewogICAgIG1fdmlk
ZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShmcmFtZSk7
CiB9CisKICNlbmRpZgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgUmVmVCwgdHlwZW5hbWUgUGFzc1Jl
ZlQ+CkBAIC02NDQsMTIgKzY0NSwxMiBAQCB2b2lkIHVwZGF0ZVRyYWNrc09mVHlwZShIYXNoTWFw
PFN0cmluZywgUmVmVD4mIHRyYWNrTWFwLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeQogICAgIH0K
IAogICAgIGZvciAoY29uc3QgYXV0byYgdHJhY2sgOiB0cmFja01hcC52YWx1ZXMoKSkgewotICAg
ICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogc3RyZWFtVHJhY2sgPSB0cmFjay0+c3RyZWFt
VHJhY2soKTsKLSAgICAgICAgaWYgKGN1cnJlbnRUcmFja3MuY29udGFpbnMoc3RyZWFtVHJhY2sp
KQorICAgICAgICBhdXRvJiBzdHJlYW1UcmFjayA9IHRyYWNrLT5zdHJlYW1UcmFjaygpOworICAg
ICAgICBpZiAoY3VycmVudFRyYWNrcy5jb250YWlucygmc3RyZWFtVHJhY2spKQogICAgICAgICAg
ICAgY29udGludWU7CiAKICAgICAgICAgcmVtb3ZlZFRyYWNrcy5hcHBlbmQodHJhY2spOwotICAg
ICAgICB0cmFja01hcC5yZW1vdmUoc3RyZWFtVHJhY2stPmlkKCkpOworICAgICAgICB0cmFja01h
cC5yZW1vdmUoc3RyZWFtVHJhY2suaWQoKSk7CiAgICAgfQogCiAgICAgZm9yIChhdXRvJiB0cmFj
ayA6IGFkZGVkUHJpdmF0ZVRyYWNrcykgewpAQCAtNjY0LDEyICs2NjUsMTIgQEAgdm9pZCB1cGRh
dGVUcmFja3NPZlR5cGUoSGFzaE1hcDxTdHJpbmcsIFJlZlQ+JiB0cmFja01hcCwgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHkKIAogICAgIGZvciAoYXV0byYgdHJhY2sgOiByZW1vdmVkVHJhY2tzKSB7
CiAgICAgICAgIChwbGF5ZXItPipyZW1vdmVkRnVuY3Rpb24pKCp0cmFjayk7Ci0gICAgICAgIHRy
YWNrLT5zdHJlYW1UcmFjaygpLT5yZW1vdmVPYnNlcnZlcigqdHJhY2tPYnNlcnZlcik7CisgICAg
ICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLnJlbW92ZU9ic2VydmVyKCp0cmFja09ic2VydmVyKTsK
ICAgICB9CiAKICAgICBmb3IgKGF1dG8mIHRyYWNrIDogYWRkZWRUcmFja3MpIHsKICAgICAgICAg
KHBsYXllci0+KmFkZGVkRnVuY3Rpb24pKCp0cmFjayk7Ci0gICAgICAgIHRyYWNrLT5zdHJlYW1U
cmFjaygpLT5hZGRPYnNlcnZlcigqdHJhY2tPYnNlcnZlcik7CisgICAgICAgIHRyYWNrLT5zdHJl
YW1UcmFjaygpLmFkZE9ic2VydmVyKCp0cmFja09ic2VydmVyKTsKICAgICB9CiB9CiAKQEAgLTY4
MCwxNCArNjgxLDE0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
Ojp1cGRhdGVUcmFja3MoKQogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWZQdHI8QXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbT4sIGludCk+IGVuYWJsZUF1ZGlvVHJhY2sgPSBbdGhpc10oYXV0
byB0cmFjaywgaW50IGluZGV4KQogICAgIHsKICAgICAgICAgdHJhY2stPnNldFRyYWNrSW5kZXgo
aW5kZXgpOwotICAgICAgICB0cmFjay0+c2V0RW5hYmxlZCh0cmFjay0+c3RyZWFtVHJhY2soKS0+
ZW5hYmxlZCgpICYmICF0cmFjay0+c3RyZWFtVHJhY2soKS0+bXV0ZWQoKSk7CisgICAgICAgIHRy
YWNrLT5zZXRFbmFibGVkKHRyYWNrLT5zdHJlYW1UcmFjaygpLmVuYWJsZWQoKSAmJiAhdHJhY2st
PnN0cmVhbVRyYWNrKCkubXV0ZWQoKSk7CiAgICAgfTsKICAgICB1cGRhdGVUcmFja3NPZlR5cGUo
bV9hdWRpb1RyYWNrTWFwLCBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbywgY3VycmVudFRyYWNr
cywgJkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OmNyZWF0ZSwgbV9wbGF5ZXIsICZNZWRp
YVBsYXllcjo6cmVtb3ZlQXVkaW9UcmFjaywgJk1lZGlhUGxheWVyOjphZGRBdWRpb1RyYWNrLCBl
bmFibGVBdWRpb1RyYWNrLCAoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyKikgdGhp
cyk7CiAKICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlTWVk
aWFTdHJlYW0+LCBpbnQpPiBlbmFibGVWaWRlb1RyYWNrID0gW3RoaXNdKGF1dG8gdHJhY2ssIGlu
dCBpbmRleCkKICAgICB7CiAgICAgICAgIHRyYWNrLT5zZXRUcmFja0luZGV4KGluZGV4KTsKLSAg
ICAgICAgYm9vbCBzZWxlY3RlZCA9IHRyYWNrLT5zdHJlYW1UcmFjaygpID09IG1fbWVkaWFTdHJl
YW1Qcml2YXRlLT5hY3RpdmVWaWRlb1RyYWNrKCk7CisgICAgICAgIGJvb2wgc2VsZWN0ZWQgPSAm
dHJhY2stPnN0cmVhbVRyYWNrKCkgPT0gbV9tZWRpYVN0cmVhbVByaXZhdGUtPmFjdGl2ZVZpZGVv
VHJhY2soKTsKICAgICAgICAgdHJhY2stPnNldFNlbGVjdGVkKHNlbGVjdGVkKTsKIAogICAgICAg
ICBpZiAoc2VsZWN0ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMuaAppbmRleCAxZjc1ODJlMThiYjY4Y2NiOGMwNjU3NmY0MGMxYzE5
NTM3ZmE3ZTdhLi4zZTViYzgxY2E2Mzk4YjJhNDliYTg3OTFlYTNlMmRlMWUzZmQyNzM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0jaWZuZGVmIFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDX2gKLSNkZWZpbmUgU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakNfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0Uo
QVZGT1VOREFUSU9OKQogCkBAIC0xMTQsMTggKzExMywxOCBAQCBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMq
KTsKIAogICAgIC8vIFNvdXJjZUJ1ZmZlclByaXZhdGUgb3ZlcnJpZGVzCi0gICAgdm9pZCBzZXRD
bGllbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwotICAgIHZvaWQgYXBw
ZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBhYm9ydCgpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzZXRQYXJzZXJTdGF0ZSgp
IG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpIG92ZXJyaWRlOwot
ICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsK
LSAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpIG92ZXJyaWRl
OwotICAgIHZvaWQgZmx1c2goQXRvbWljU3RyaW5nIHRyYWNrSUQpIG92ZXJyaWRlOwotICAgIHZv
aWQgZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiwgQXRvbWljU3RyaW5nIHRy
YWNrSUQpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0
cmluZyB0cmFja0lEKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldEFjdGl2ZShib29sKSBvdmVycmlk
ZTsKLSAgICB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0
cmluZyB0cmFja0lEKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldENsaWVudChTb3VyY2VCdWZmZXJQ
cml2YXRlQ2xpZW50KikgZmluYWw7CisgICAgdm9pZCBhcHBlbmQoY29uc3QgdW5zaWduZWQgY2hh
ciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KCkgZmluYWw7
CisgICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkgZmluYWw7CisgICAgdm9pZCByZW1vdmVkRnJv
bU1lZGlhU291cmNlKCkgZmluYWw7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlT
dGF0ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSkgZmluYWw7CisgICAgdm9pZCBmbHVzaChjb25zdCBBdG9taWNTdHJpbmcmIHRy
YWNrSUQpIGZpbmFsOworICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYs
IGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkgZmluYWw7CisgICAgYm9vbCBpc1JlYWR5Rm9y
TW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKSBmaW5hbDsKKyAgICB2b2lk
IHNldEFjdGl2ZShib29sKSBmaW5hbDsKKyAgICB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZv
ck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkgZmluYWw7CiAKICAgICB2
b2lkIGRpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoaW50IHRyYWNrSUQpOwogICAgIHZvaWQg
YXBwZW5kQ29tcGxldGVkKCk7CkBAIC0xNTUsMjEgKzE1NCwxOSBAQCBwcml2YXRlOgogICAgIE9T
T2JqZWN0UHRyPGRpc3BhdGNoX2dyb3VwX3Q+IG1faXNBcHBlbmRpbmdHcm91cDsKIAogICAgIE1l
ZGlhU291cmNlUHJpdmF0ZUFWRk9iakMqIG1fbWVkaWFTb3VyY2U7Ci0gICAgU291cmNlQnVmZmVy
UHJpdmF0ZUNsaWVudCogbV9jbGllbnQ7CisgICAgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCog
bV9jbGllbnQgeyBudWxscHRyIH07CiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEp
CiAgICAgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyogbV9zZXNzaW9uIHsgbnVsbHB0ciB9
OwogI2VuZGlmCiAKICAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0U2l6ZT4gbV9jYWNoZWRTaXplOwog
ICAgIEZsb2F0U2l6ZSBtX2N1cnJlbnRTaXplOwotICAgIGJvb2wgbV9wYXJzaW5nU3VjY2VlZGVk
OworICAgIGJvb2wgbV9wYXJzaW5nU3VjY2VlZGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9wYXJz
ZXJTdGF0ZVdhc1Jlc2V0IHsgZmFsc2UgfTsKLSAgICBpbnQgbV9lbmFibGVkVmlkZW9UcmFja0lE
OwotICAgIGludCBtX3Byb3RlY3RlZFRyYWNrSUQ7CisgICAgaW50IG1fZW5hYmxlZFZpZGVvVHJh
Y2tJRCB7IC0xIH07CisgICAgaW50IG1fcHJvdGVjdGVkVHJhY2tJRCB7IC0xIH07CiB9OwogCiB9
CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQot
Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMubW0KaW5kZXggM2IwZDY4Y2MyYmYyZDIyYjc4YjM5MmJmMzgyOGZlNjEzOGU5
YjAxOC4uZTdiMWIyMDc0ZGEzMzIzMjFmZjgwOGRmNjgzMzMyMDVhY2U2MjQyOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0K
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0xNTEsMTAgKzE1MSw3IEBAIC0gKHZvaWQpaW52YWxpZGF0ZQogCiAtICh2b2lkKXN0cmVh
bURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkUGFy
c2VTdHJlYW1EYXRhQXNBc3NldDooQVZBc3NldCAqKWFzc2V0CiB7Ci0jaWYgQVNTRVJUX0RJU0FC
TEVECi0gICAgVU5VU0VEX1BBUkFNKHN0cmVhbURhdGFQYXJzZXIpOwotI2VuZGlmCi0gICAgQVNT
RVJUKHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CisgICAgQVNTRVJUX1VOVVNFRChzdHJl
YW1EYXRhUGFyc2VyLCBzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwogCiAgICAgUmV0YWlu
UHRyPEFWQXNzZXQqPiBwcm90ZWN0ZWRBc3NldCA9IGFzc2V0OwogICAgIGNhbGxPbk1haW5UaHJl
YWQoW3BhcmVudCA9IF9wYXJlbnQsIHByb3RlY3RlZEFzc2V0ID0gV1RGTW92ZShwcm90ZWN0ZWRB
c3NldCldIHsKQEAgLTE2NiwxMCArMTYzLDcgQEAgLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihB
VlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFBhcnNlU3RyZWFtRGEKIC0g
KHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBh
cnNlciBkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0OihBVkFzc2V0ICopYXNzZXQgd2l0aERpc2Nv
bnRpbnVpdHk6KEJPT0wpZGlzY29udGludWl0eQogewogICAgIFVOVVNFRF9QQVJBTShkaXNjb250
aW51aXR5KTsKLSNpZiBBU1NFUlRfRElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0
YVBhcnNlcik7Ci0jZW5kaWYKLSAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2Vy
KTsKKyAgICBBU1NFUlRfVU5VU0VEKHN0cmVhbURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIg
PT0gX3BhcnNlcik7CiAKICAgICBSZXRhaW5QdHI8QVZBc3NldCo+IHByb3RlY3RlZEFzc2V0ID0g
YXNzZXQ7CiAgICAgY2FsbE9uTWFpblRocmVhZChbcGFyZW50ID0gX3BhcmVudCwgcHJvdGVjdGVk
QXNzZXQgPSBXVEZNb3ZlKHByb3RlY3RlZEFzc2V0KV0gewpAQCAtMTgwLDEwICsxNzQsNyBAQCAt
ICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQ
YXJzZXIgZGlkUGFyc2VTdHJlYW1EYQogCiAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3Ry
ZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkRmFpbFRvUGFyc2VTdHJlYW1EYXRh
V2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKIHsKLSNpZiBBU1NFUlRfRElTQUJMRUQKLSAgICBV
TlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5kaWYKLSAgICBBU1NFUlQoc3RyZWFt
RGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN0cmVhbURhdGFQYXJz
ZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKICAgICBSZXRhaW5QdHI8TlNFcnJv
cj4gcHJvdGVjdGVkRXJyb3IgPSBlcnJvcjsKICAgICBjYWxsT25NYWluVGhyZWFkKFtwYXJlbnQg
PSBfcGFyZW50LCBwcm90ZWN0ZWRFcnJvciA9IFdURk1vdmUocHJvdGVjdGVkRXJyb3IpXSB7CkBA
IC0xOTQsMTAgKzE4NSw3IEBAIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRh
UGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRGYWlsVG9QYXJzZVN0CiAKIC0gKHZvaWQpc3Ry
ZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRQ
cm92aWRlTWVkaWFEYXRhOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGUgZm9yVHJhY2tJRDooQ01Q
ZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEIG1lZGlhVHlwZTooTlNTdHJpbmcgKiluc01lZGlhVHlw
ZSBmbGFnczooQVZTdHJlYW1EYXRhUGFyc2VyT3V0cHV0TWVkaWFEYXRhRmxhZ3MpZmxhZ3MKIHsK
LSNpZiBBU1NFUlRfRElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7
Ci0jZW5kaWYKLSAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBB
U1NFUlRfVU5VU0VEKHN0cmVhbURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNl
cik7CiAKICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHByb3RlY3RlZFNhbXBsZSA9
IHNhbXBsZTsKICAgICBTdHJpbmcgbWVkaWFUeXBlID0gbnNNZWRpYVR5cGU7CkBAIC0yMDksMTAg
KzE5Nyw3IEBAIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICop
c3RyZWFtRGF0YVBhcnNlciBkaWRQcm92aWRlTWVkaWFECiAKIC0gKHZvaWQpc3RyZWFtRGF0YVBh
cnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRSZWFjaEVuZE9m
VHJhY2tXaXRoVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEIG1lZGlhVHlwZToo
TlNTdHJpbmcgKiluc01lZGlhVHlwZQogewotI2lmIEFTU0VSVF9ESVNBQkxFRAotICAgIFVOVVNF
RF9QQVJBTShzdHJlYW1EYXRhUGFyc2VyKTsKLSNlbmRpZgotICAgIEFTU0VSVChzdHJlYW1EYXRh
UGFyc2VyID09IF9wYXJzZXIpOworICAgIEFTU0VSVF9VTlVTRUQoc3RyZWFtRGF0YVBhcnNlciwg
c3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKIAogICAgIFN0cmluZyBtZWRpYVR5cGUgPSBu
c01lZGlhVHlwZTsKICAgICBjYWxsT25NYWluVGhyZWFkKFtwYXJlbnQgPSBfcGFyZW50LCB0cmFj
a0lELCBtZWRpYVR5cGVdIHsKQEAgLTIyMywxMCArMjA4LDcgQEAgLSAodm9pZClzdHJlYW1EYXRh
UGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFJlYWNoRW5k
T2ZUcmEKIAogLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyV2lsbFByb3ZpZGVDb250ZW50S2V5UmVx
dWVzdEluaXRpYWxpemF0aW9uRGF0YTooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBh
cnNlciBmb3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQKIHsKLSNpZiBBU1NF
UlRfRElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5kaWYK
LSAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRfVU5V
U0VEKHN0cmVhbURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKICAg
ICAvLyBXZSBtdXN0IGNhbGwgc3luY2hyb25vdXNseSB0byB0aGUgbWFpbiB0aHJlYWQsIGFzIHRo
ZSBBVlN0cmVhbVNlc3Npb24gbXVzdCBiZSBhc3NvY2lhdGVkCiAgICAgLy8gd2l0aCB0aGUgc3Ry
ZWFtRGF0YVBhcnNlciBiZWZvcmUgdGhlIGRlbGVnYXRlIG1ldGhvZCByZXR1cm5zLgpAQCAtMjM4
LDEwICsyMjAsNyBAQCAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXJXaWxsUHJvdmlkZUNvbnRlbnRL
ZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhOihBVlN0cmVhbQogCiAtICh2b2lkKXN0cmVhbURh
dGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkUHJvdmlk
ZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhOihOU0RhdGEgKilpbml0RGF0YSBm
b3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQKIHsKLSNpZiBBU1NFUlRfRElT
QUJMRUQKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5kaWYKLSAgICBB
U1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN0
cmVhbURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKICAgICBPU09i
amVjdFB0cjxkaXNwYXRjaF9zZW1hcGhvcmVfdD4gaGFzU2Vzc2lvblNlbWFwaG9yZSA9IGFkb3B0
T1NPYmplY3QoZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKSk7CiAgICAgY2FsbE9uTWFpblRo
cmVhZChbcGFyZW50ID0gX3BhcmVudCwgcHJvdGVjdGVkSW5pdERhdGEgPSBSZXRhaW5QdHI8TlNE
YXRhPihpbml0RGF0YSksIHRyYWNrSUQsIGhhc1Nlc3Npb25TZW1hcGhvcmVdIHsKQEAgLTQ0OSwx
MCArNDI4LDYgQEAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OlNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDKE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMKICAgICAsIG1fZXJyb3JMaXN0ZW5l
cihhZG9wdE5TKFtbV2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyIGFsbG9jXSBpbml0V2l0
aFBhcmVudDp0aGlzXSkpCiAgICAgLCBtX2lzQXBwZW5kaW5nR3JvdXAoYWRvcHRPU09iamVjdChk
aXNwYXRjaF9ncm91cF9jcmVhdGUoKSkpCiAgICAgLCBtX21lZGlhU291cmNlKHBhcmVudCkKLSAg
ICAsIG1fY2xpZW50KDApCi0gICAgLCBtX3BhcnNpbmdTdWNjZWVkZWQodHJ1ZSkKLSAgICAsIG1f
ZW5hYmxlZFZpZGVvVHJhY2tJRCgtMSkKLSAgICAsIG1fcHJvdGVjdGVkVHJhY2tJRCgtMSkKIHsK
IH0KIApAQCAtNTEyLDEwICs0ODcsMTAgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6ZGlkUGFyc2VTdHJlYW1EYXRhQXNBc3NldChBVkFzc2V0KiBhc3NldCkKICAgICAgICAgbV9t
ZWRpYVNvdXJjZS0+cGxheWVyKCktPmNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsKIAogICAgIGlm
IChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNl
aXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KHRoaXMsIHNlZ21lbnQpOworICAgICAgICBtX2NsaWVu
dC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoc2Vn
bWVudCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZEZhaWxUb1Bh
cnNlU3RyZWFtRGF0YVdpdGhFcnJvcihOU0Vycm9yKiBlcnJvcikKK3ZvaWQgU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakM6OmRpZEZhaWxUb1BhcnNlU3RyZWFtRGF0YVdpdGhFcnJvcihOU0Vycm9y
ICplcnJvcikKIHsKICNpZiBMT0dfRElTQUJMRUQKICAgICBVTlVTRURfUEFSQU0oZXJyb3IpOwpA
QCAtNTMxLDEwICs1MDYsOCBAQCBzdHJ1Y3QgUHJvY2Vzc0NvZGVkRnJhbWVJbmZvIHsKICAgICBj
b25zdCBTdHJpbmcmIG1lZGlhVHlwZTsKIH07CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6OmRpZFByb3ZpZGVNZWRpYURhdGFGb3JUcmFja0lEKGludCB0cmFja0lELCBDTVNhbXBs
ZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlLCB1bnNpZ25l
ZCBmbGFncykKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVNZWRp
YURhdGFGb3JUcmFja0lEKGludCB0cmFja0lELCBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZm
ZXIsIGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlLCB1bnNpZ25lZCkKIHsKLSAgICBVTlVTRURfUEFS
QU0oZmxhZ3MpOwotCiAgICAgcHJvY2Vzc0NvZGVkRnJhbWUodHJhY2tJRCwgc2FtcGxlQnVmZmVy
LCBtZWRpYVR5cGUpOwogfQogCkBAIC01NDksMTYgKzUyMiwxNCBAQCBib29sIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjpwcm9jZXNzQ29kZWRGcmFtZShpbnQgdHJhY2tJRCwgQ01TYW1wbGVC
dWZmZXJSZQogICAgIGlmIChtX2NsaWVudCkgewogICAgICAgICBSZWY8TWVkaWFTYW1wbGU+IG1l
ZGlhU2FtcGxlID0gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoc2FtcGxlQnVmZmVyLCB0cmFj
a0lEKTsKICAgICAgICAgTE9HKE1lZGlhU291cmNlU2FtcGxlcywgIlNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjpwcm9jZXNzQ29kZWRGcmFtZSglcCkgLSBzYW1wbGUoJXMpIiwgdGhpcywgdG9T
dHJpbmcobWVkaWFTYW1wbGUuZ2V0KCkpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBtX2NsaWVu
dC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUodGhpcywgbWVkaWFTYW1wbGUp
OworICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUo
bWVkaWFTYW1wbGUpOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRSZWFjaEVuZE9mVHJhY2tXaXRoVHJhY2tJRChpbnQg
dHJhY2tJRCwgY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjpkaWRSZWFjaEVuZE9mVHJhY2tXaXRoVHJhY2tJRChpbnQsIGNvbnN0IFN0cmlu
ZyYpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKG1lZGlhVHlwZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRy
YWNrSUQpOwogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKQEAgLTU5MCw3ICs1NjEsNiBAQCB2
b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVl
c3RJbml0aWFsaXphdGlvbkRhdGFGbwogICAgIGlmICghbV9tZWRpYVNvdXJjZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgVU5VU0VEX1BBUkFNKHRyYWNrSUQpOwogI2lmIEVOQUJMRShMRUdBQ1lf
RU5DUllQVEVEX01FRElBKQogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFG
b3JUcmFja0lEKCVwKSAtIHRyYWNrOiVkIiwgdGhpcywgdHJhY2tJRCk7CiAgICAgbV9wcm90ZWN0
ZWRUcmFja0lEID0gdHJhY2tJRDsKQEAgLTYwNyw2ICs1NzcsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlv
bkRhdGFGbwogICAgIH0KICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGluaXREYXRhKTsKKyAgICBV
TlVTRURfUEFSQU0odHJhY2tJRCk7CiAgICAgVU5VU0VEX1BBUkFNKGhhc1Nlc3Npb25TZW1hcGhv
cmUpOwogI2VuZGlmCiB9CkBAIC02NTksNyArNjMwLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQzo6YXBwZW5kQ29tcGxldGVkKCkKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxh
eWVyKCktPnNldExvYWRpbmdQcm9ncmVzc3NlZCh0cnVlKTsKIAogICAgIGlmIChtX2NsaWVudCkK
LSAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlz
LCBtX3BhcnNpbmdTdWNjZWVkZWQgPyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRT
dWNjZWVkZWQgOiBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKKyAg
ICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShtX3BhcnNp
bmdTdWNjZWVkZWQgPyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQg
OiBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKIH0KIAogdm9pZCBT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YWJvcnQoKQpAQCAtNzM1LDE4ICs3MDYsMTIgQEAg
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXll
cjo6UmVhZHlTdGF0ZSByZWFkeVN0YXQKIAogYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6aGFzVmlkZW8oKSBjb25zdAogewotICAgIGlmICghbV9jbGllbnQpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIHJldHVybiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1Zp
ZGVvKHRoaXMpOworICAgIHJldHVybiBtX2NsaWVudCAmJiBtX2NsaWVudC0+c291cmNlQnVmZmVy
UHJpdmF0ZUhhc1ZpZGVvKCk7CiB9CiAKIGJvb2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
Omhhc0F1ZGlvKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRp
byh0aGlzKTsKKyAgICByZXR1cm4gbV9jbGllbnQgJiYgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclBy
aXZhdGVIYXNBdWRpbygpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0
cmFja0RpZENoYW5nZUVuYWJsZWQoVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMq
IHRyYWNrKQpAQCAtODc0LDcgKzgzOSw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6OmxheWVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyCiAgICAg
aW50IGVycm9yQ29kZSA9IFtbW2Vycm9yIHVzZXJJbmZvXSB2YWx1ZUZvcktleTpAIk9TU3RhdHVz
Il0gaW50VmFsdWVdOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291
cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcih0aGlzLCBlcnJvckNvZGUp
OworICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJp
bmdFcnJvcihlcnJvckNvZGUpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjpyZW5kZXJlckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKnJl
bmRlcmVyLCBOU0Vycm9yICplcnJvcikKQEAgLTg5NSw3ICs4NjAsNyBAQCB2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZl
ckF1ZGlvUmVuZAogICAgICAgICByZXR1cm47CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OmZsdXNoKEF0b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6Zmx1c2goY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3Ry
aW5nKQogewogICAgIGludCB0cmFja0lEID0gdHJhY2tJRFN0cmluZy50b0ludCgpOwogICAgIExP
RyhNZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVzaCglcCkgLSB0
cmFja0lkOiAlZCIsIHRoaXMsIHRyYWNrSUQpOwpAQCAtOTI1LDE5ICs4OTAsMTcgQEAgdm9pZCBT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Zmx1c2goQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRl
cmVyICpyZW5kZXJlcikKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2
YWlsYWJsZUF1ZGlvU2FtcGxlKHJlbmRlcmVyLCBmYWxzZSk7CiB9CiAKLXZvaWQgU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4g
cHJwTWVkaWFTYW1wbGUsIEF0b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2Ft
cGxlLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSURTdHJpbmcpCiB7CiAgICAgaW50IHRyYWNr
SUQgPSB0cmFja0lEU3RyaW5nLnRvSW50KCk7CiAgICAgaWYgKHRyYWNrSUQgIT0gbV9lbmFibGVk
VmlkZW9UcmFja0lEICYmICFtX2F1ZGlvUmVuZGVyZXJzLmNvbnRhaW5zKHRyYWNrSUQpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IG1lZGlhU2FtcGxlID0gcHJw
TWVkaWFTYW1wbGU7Ci0KLSAgICBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBsZSA9IG1lZGlh
U2FtcGxlLT5wbGF0Zm9ybVNhbXBsZSgpOworICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2Ft
cGxlID0gc2FtcGxlLT5wbGF0Zm9ybVNhbXBsZSgpOwogICAgIGlmIChwbGF0Zm9ybVNhbXBsZS50
eXBlICE9IFBsYXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIExPRyhNZWRpYVNvdXJjZVNhbXBsZXMsICJTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6ZW5xdWV1ZVNhbXBsZSglcCkgLSBzYW1wbGUoJXMpIiwgdGhpcywgdG9TdHJpbmcoKm1l
ZGlhU2FtcGxlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBMT0coTWVkaWFTb3VyY2VTYW1wbGVzLCAi
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoJXApIC0gc2FtcGxlKCVz
KSIsIHRoaXMsIHRvU3RyaW5nKHNhbXBsZS5nZXQoKSkudXRmOCgpLmRhdGEoKSk7CiAKICAgICBp
ZiAodHJhY2tJRCA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQpIHsKICAgICAgICAgQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0
RGVzY3JpcHRpb24ocGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKQEAgLTk1
MCwyMiArOTEzLDIyIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVT
YW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJwTWVkaWFTCiAgICAgICAgICAgICAgICAg
aWYgKHNpemVXYXNOdWxsKQogICAgICAgICAgICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5
ZXIoKS0+c2V0TmF0dXJhbFNpemUoZm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2l6ZVdpbGxDaGFu
Z2VBdFRpbWUobWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSwgZm9ybWF0U2l6ZSk7Cisg
ICAgICAgICAgICAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zaXplV2lsbENoYW5n
ZUF0VGltZShzYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSwgZm9ybWF0U2l6ZSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZW5xdWV1ZVNhbXBs
ZUJ1ZmZlcjpwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXJdOwogICAgICAgICBp
ZiAobV9tZWRpYVNvdXJjZSkKLSAgICAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5z
ZXRIYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCFtZWRpYVNhbXBsZS0+aXNOb25EaXNwbGF5aW5nKCkp
OworICAgICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZVZp
ZGVvRnJhbWUoIXNhbXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIGF1dG8gcmVuZGVyZXIgPSBtX2F1ZGlvUmVuZGVyZXJzLmdldCh0cmFja0lEKTsKICAgICAg
ICAgW3JlbmRlcmVyIGVucXVldWVTYW1wbGVCdWZmZXI6cGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNt
U2FtcGxlQnVmZmVyXTsKICAgICAgICAgaWYgKG1fbWVkaWFTb3VyY2UpCi0gICAgICAgICAgICBt
X21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2V0SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUocmVuZGVy
ZXIuZ2V0KCksICFtZWRpYVNhbXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOworICAgICAgICAgICAg
bV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxlKHJlbmRl
cmVyLmdldCgpLCAhc2FtcGxlLT5pc05vbkRpc3BsYXlpbmcoKSk7CiAgICAgfQogfQogCi1ib29s
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWlj
U3RyaW5nIHRyYWNrSURTdHJpbmcpCitib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpp
c1JlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQog
ewogICAgIGludCB0cmFja0lEID0gdHJhY2tJRFN0cmluZy50b0ludCgpOwogICAgIGlmICh0cmFj
a0lEID09IG1fZW5hYmxlZFZpZGVvVHJhY2tJRCkKQEAgLTk4NCw5ICs5NDcsOSBAQCB2b2lkIFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRBY3RpdmUoYm9vbCBpc0FjdGl2ZSkKIAogTWVk
aWFUaW1lIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmYXN0U2Vla1RpbWVGb3JNZWRpYVRp
bWUoTWVkaWFUaW1lIHRpbWUsIE1lZGlhVGltZSBuZWdhdGl2ZVRocmVzaG9sZCwgTWVkaWFUaW1l
IHBvc2l0aXZlVGhyZXNob2xkKQogewotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgcmV0dXJu
IG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRo
aXMsIHRpbWUsIG5lZ2F0aXZlVGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7Ci0gICAgcmV0
dXJuIHRpbWU7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuIHRpbWU7CisgICAg
cmV0dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFU
aW1lKHRpbWUsIG5lZ2F0aXZlVGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7CiB9CiAKIHZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OndpbGxTZWVrKCkKQEAgLTEwMDEsNyArOTY0
LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6d2lsbFNlZWsoKQogdm9pZCBT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2Vla1RvVGltZShNZWRpYVRpbWUgdGltZSkKIHsK
ICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRl
U2Vla1RvVGltZSh0aGlzLCB0aW1lKTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclBy
aXZhdGVTZWVrVG9UaW1lKHRpbWUpOwogfQogCiBGbG9hdFNpemUgU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6Om5hdHVyYWxTaXplKCkKQEAgLTEwMjEsMTAgKzk4NCwxMCBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKGludCB0
cmFja0lEKQogICAgIH0KIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnNv
dXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKHRoaXMsIEF0b21p
Y1N0cmluZzo6bnVtYmVyKHRyYWNrSUQpKTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZzo6bnVtYmVy
KHRyYWNrSUQpKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6bm90aWZ5
Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSURTdHJpbmcp
Cit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpub3RpZnlDbGllbnRXaGVuUmVhZHlG
b3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSURTdHJpbmcpCiB7CiAgICAg
aW50IHRyYWNrSUQgPSB0cmFja0lEU3RyaW5nLnRvSW50KCk7CiAgICAgaWYgKHRyYWNrSUQgPT0g
bV9lbmFibGVkVmlkZW9UcmFja0lEKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcAppbmRleCBlOWM2NjIyMjNjODM2NWRkMDc3NmU4
YTJjNGVlZDQ4YzBmMTMwMWZkLi5jODcxYzU5NDgzNTUwODU3MTgyYzdhMjRkNTUzNGI4NWE1ZDRl
ZjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRl
QVZGT2JqQy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjUsMTEgKzI1LDEyIEBACiAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9y
dCAiVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgiCi0jaW1wb3J0ICJBVlRyYWNrUHJpdmF0ZUFW
Rk9iakNJbXBsLmgiCi0jaW1wb3J0ICJNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIgogCiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCisjaW1wb3J0ICJBVlRyYWNrUHJpdmF0ZUFWRk9iakNJ
bXBsLmgiCisjaW1wb3J0ICJNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6VmlkZW9UcmFja1ByaXZh
dGVBVkZPYmpDKEFWUGxheWVySXRlbVRyYWNrKiB0cmFjaykKQEAgLTEwNSw0ICsxMDYsMyBAQCB2
b2lkIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6c2V0U2VsZWN0ZWQoYm9vbCBlbmFibGVkKQog
fQogCiAjZW5kaWYKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZE1ldGFkYXRh
VGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IGY2NjZiZWJjMmI3ZjQzMmFiYzU2ZmI4
ODZjODk5NzZmNzlhMzU0YWQuLmU5NDJhMmM1ZmMwN2U3YjBhYTU2NTEzMWZhMTg1MThjYzVjNDRj
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9JbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kTWV0YWRhdGFUZXh0VHJh
Y2tQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNp
Zm5kZWYgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyX2gKLSNkZWZpbmUg
SW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyX2gKKyNwcmFnbWEgb25jZQog
CiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUoVklERU9fVFJB
Q0spCiAKQEAgLTUwLDEzICs0OSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGREYXRhQ3VlKGNv
bnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiBk
YXRhLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgewogICAgICAgICBBU1NFUlQoY3VlRm9ybWF0KCkg
PT0gRGF0YSk7Ci0gICAgICAgIGNsaWVudCgpLT5hZGREYXRhQ3VlKHRoaXMsIHN0YXJ0LCBlbmQs
IGRhdGEsIGxlbmd0aCk7CisgICAgICAgIGNsaWVudCgpLT5hZGREYXRhQ3VlKHN0YXJ0LCBlbmQs
IGRhdGEsIGxlbmd0aCk7CiAgICAgfQogCiAgICAgdm9pZCBhZGRHZW5lcmljQ3VlKFBhc3NSZWZQ
dHI8R2VuZXJpY0N1ZURhdGE+IGRhdGEpCiAgICAgewogICAgICAgICBBU1NFUlQoY3VlRm9ybWF0
KCkgPT0gR2VuZXJpYyk7Ci0gICAgICAgIGNsaWVudCgpLT5hZGRHZW5lcmljQ3VlKHRoaXMsIGRh
dGEpOworICAgICAgICBjbGllbnQoKS0+YWRkR2VuZXJpY0N1ZSgqZGF0YSk7CiAgICAgfQogCiBw
cml2YXRlOgpAQCAtNzYsNSArNzUsMyBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUo
VklERU9fVFJBQ0spCi0KLSNlbmRpZiAvLyBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVH
U3RyZWFtZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVH
U3RyZWFtZXIuY3BwCmluZGV4IDZiMWZmYWI5M2MzNDhmY2NjNzdjNjMwZmViNmJlODJlMTAxOWRh
ZDYuLjFkOTQ1Mjc4YmE0ZDAyYzA0N2YzMmExNTc0OTVkYmRlNjhjZmEwNmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJh
Y2tQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTEx
Myw3ICsxMTMsNyBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlm
eVRyYWNrT2ZTYW1wbGUoKQogCiAgICAgICAgIEdTVF9JTkZPKCJUcmFjayAlZCBwYXJzaW5nIHNh
bXBsZTogJS4qcyIsIG1faW5kZXgsIHN0YXRpY19jYXN0PGludD4oaW5mby5zaXplKSwKICAgICAg
ICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGluZm8uZGF0YSkpOwotICAgICAgICBjbGll
bnQoKS0+cGFyc2VXZWJWVFRDdWVEYXRhKHRoaXMsIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGlu
Zm8uZGF0YSksIGluZm8uc2l6ZSk7CisgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEN1ZURh
dGEocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oaW5mby5kYXRhKSwgaW5mby5zaXplKTsKICAgICAg
ICAgZ3N0X2J1ZmZlcl91bm1hcChidWZmZXIsICZpbmZvKTsKICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRl
QmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAKaW5kZXggNjE5ZjJjYTYxY2FiZTU5
NDBhZWMzZDEzZWNmN2RkZjU3MzVmZDcyMS4uOWJlMWZlYTJkZmY1YTA2Y2U0MGU4NTFmYTUzYTAz
ZjY0ODRhZTVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVy
LmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIHZvaWQgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6
bm90aWZ5VHJhY2tPZlRhZ3NDaGFuZ2VkKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGdl
dFRhZyh0YWdzLmdldCgpLCBHU1RfVEFHX1RJVExFLCBtX2xhYmVsKSkKLSAgICAgICAgY2xpZW50
LT5sYWJlbENoYW5nZWQobV9vd25lciwgbV9sYWJlbCk7CisgICAgICAgIGNsaWVudC0+bGFiZWxD
aGFuZ2VkKG1fbGFiZWwpOwogCiAgICAgQXRvbWljU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmICgh
Z2V0TGFuZ3VhZ2VDb2RlKHRhZ3MuZ2V0KCksIGxhbmd1YWdlKSkKQEAgLTE2Nyw3ICsxNjcsNyBA
QCB2b2lkIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdl
ZCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fbGFuZ3VhZ2UgPSBsYW5ndWFnZTsKLSAgICBj
bGllbnQtPmxhbmd1YWdlQ2hhbmdlZChtX293bmVyLCBtX2xhbmd1YWdlKTsKKyAgICBjbGllbnQt
Pmxhbmd1YWdlQ2hhbmdlZChtX2xhbmd1YWdlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L21zZS9BcHBlbmRQaXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAppbmRleCAwMDUxMmU2M2M3MzJlMzkz
ZWY2NTE2MDEwZDFlNjdlZTZmZWRiYjM4Li44NDkyNjdmMjFlMDY5OGZiNWQyYWRkZWFlNTA5MWIz
YzVkMDkyZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcApAQCAtNjc2LDcg
KzY3Niw3IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtOZXdTYW1wbGUoR3N0U2FtcGxl
KiBzYW1wbGUpCiAgICAgICAgICAgICBtZWRpYVNhbXBsZS0+YXBwbHlQdHNPZmZzZXQoTWVkaWFU
aW1lOjp6ZXJvVGltZSgpKTsKICAgICAgICAgfQogCi0gICAgICAgIG1fc291cmNlQnVmZmVyUHJp
dmF0ZS0+ZGlkUmVjZWl2ZVNhbXBsZShtZWRpYVNhbXBsZSk7CisgICAgICAgIG1fc291cmNlQnVm
ZmVyUHJpdmF0ZS0+ZGlkUmVjZWl2ZVNhbXBsZSgqbWVkaWFTYW1wbGUpOwogICAgICAgICBzZXRB
cHBlbmRTdGF0ZShBcHBlbmRTdGF0ZTo6U2FtcGxpbmcpOwogICAgICAgICBtX2Zsb3dSZXR1cm4g
PSBHU1RfRkxPV19PSzsKICAgICAgICAgbV9uZXdTYW1wbGVDb25kaXRpb24ubm90aWZ5T25lKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
LmNwcAppbmRleCA3ZjU0NWVlMzVlNDhhYTA2YjAyYTk5NjNlMTFhY2JjYmRjYTc3OTQxLi5lNGIx
MDdmNzBmNWM4YzY5ODE3NDE1ZWJjYTRkNjU1YjNhYjVlYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTc2LDcgKzc2
LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjphcHBlbmQoY29uc3QgdW5z
aWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGUKICAgICBpZiAobV9jbGllbnQtPmFwcGVuZCh0
aGlzLCBkYXRhLCBsZW5ndGgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3NvdXJjZUJ1ZmZl
clByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCBT
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpSZWFkU3RyZWFtRmFpbGVkKTsKKyAgICBtX3NvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShT
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpSZWFkU3RyZWFtRmFpbGVkKTsKIH0KIAogdm9pZCBT
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjphYm9ydCgpCkBAIC0xMDYsMjAgKzEwNiwxOSBA
QCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnNldFJlYWR5U3RhdGUoTWVkaWFQ
bGF5ZXI6OlJlYWR5U3RhdGUgc3RhdGUpCiAgICAgbV9tZWRpYVNvdXJjZS0+c2V0UmVhZHlTdGF0
ZShzdGF0ZSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Zmx1c2go
QXRvbWljU3RyaW5nIHRyYWNrSWQpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6
OmZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJZCkKIHsKICAgICBtX2NsaWVudC0+Zmx1
c2godHJhY2tJZCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZW5x
dWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUsIEF0b21pY1N0cmlu
ZykKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZW5xdWV1ZVNhbXBsZShSZWY8
TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAgIG1fbm90
aWZ5V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMgPSBmYWxzZTsKIAotICAgIFJlZlB0cjxNZWRpYVNh
bXBsZT4gcHJvdGVjdGVkUHJwU2FtcGxlID0gcHJwU2FtcGxlOwotICAgIG1fY2xpZW50LT5lbnF1
ZXVlU2FtcGxlKHByb3RlY3RlZFBycFNhbXBsZSk7CisgICAgbV9jbGllbnQtPmVucXVldWVTYW1w
bGUoV1RGTW92ZShzYW1wbGUpKTsKIH0KIAotYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKQorYm9vbCBTb3VyY2VCdWZm
ZXJQcml2YXRlR1N0cmVhbWVyOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3Ry
aW5nJikKIHsKICAgICByZXR1cm4gbV9pc1JlYWR5Rm9yTW9yZVNhbXBsZXM7CiB9CkBAIC0xMzUs
NyArMTM0LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlSZWFk
eUZvck1vcmVTYW1wbGVzKCkKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CiAgICAg
c2V0UmVhZHlGb3JNb3JlU2FtcGxlcyh0cnVlKTsKICAgICBpZiAobV9ub3RpZnlXaGVuUmVhZHlG
b3JNb3JlU2FtcGxlcykKLSAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3Vy
Y2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyh0aGlzLCBtX3RyYWNr
SWQpOworICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKG1fdHJhY2tJZCk7CiB9CiAKIHZvaWQg
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0QWN0aXZlKGJvb2wgaXNBY3RpdmUpCkBA
IC0xNDQsMTIgKzE0MywxMiBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnNl
dEFjdGl2ZShib29sIGlzQWN0aXZlKQogICAgICAgICBtX21lZGlhU291cmNlLT5zb3VyY2VCdWZm
ZXJQcml2YXRlRGlkQ2hhbmdlQWN0aXZlU3RhdGUodGhpcywgaXNBY3RpdmUpOwogfQogCi12b2lk
IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhB
dG9taWNTdHJpbmcpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnN0b3BBc2tp
bmdGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5Q2xp
ZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSWQpCit2b2lkIFNv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVT
YW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJZCkKIHsKICAgICBBU1NFUlQoV1RGOjpp
c01haW5UaHJlYWQoKSk7CiAgICAgbV9ub3RpZnlXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyA9IHRy
dWU7CkBAIC0xNTksMjAgKzE1OCwxOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXI6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cgogdm9pZCBT
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdt
ZW50KGNvbnN0IFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9uU2VnbWVu
dCYgaW5pdGlhbGl6YXRpb25TZWdtZW50KQogewogICAgIGlmIChtX3NvdXJjZUJ1ZmZlclByaXZh
dGVDbGllbnQpCi0gICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC0+c291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQodGhpcywgaW5pdGlhbGl6
YXRpb25TZWdtZW50KTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3Vy
Y2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChpbml0aWFsaXph
dGlvblNlZ21lbnQpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRp
ZFJlY2VpdmVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJwU2FtcGxlKQordm9pZCBT
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxl
JiBzYW1wbGUpCiB7Ci0gICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBwcm90ZWN0ZWRQcnBTYW1wbGUg
PSBwcnBTYW1wbGU7CiAgICAgaWYgKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCkKLSAgICAg
ICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVj
ZWl2ZVNhbXBsZSh0aGlzLCAqcHJvdGVjdGVkUHJwU2FtcGxlKTsKKyAgICAgICAgbV9zb3VyY2VC
dWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShz
YW1wbGUpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2Vp
dmVBbGxQZW5kaW5nU2FtcGxlcygpCiB7CiAgICAgaWYgKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNs
aWVudCkKLSAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQ
cml2YXRlQXBwZW5kQ29tcGxldGUodGhpcywgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBw
ZW5kU3VjY2VlZGVkKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3Vy
Y2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6
QXBwZW5kU3VjY2VlZGVkKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCAzMDg0MjVkNTAzY2FhNGViODY4YjM4OTk5
YjVkNDY3NjhkZDU0OTg3Li41NjcxMzEwZmY4MmM4M2Y5OGMyNjBlODdiNDhmMTM0MWVjOGFmNjFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIuaApAQCAtNTQsMjYgKzU0LDI2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2xlYXJNZWRpYVNv
dXJjZSgpIHsgbV9tZWRpYVNvdXJjZSA9IG51bGxwdHI7IH0KIAotICAgIHZvaWQgc2V0Q2xpZW50
KFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqKSBvdmVycmlkZTsKLSAgICB2b2lkIGFwcGVuZChj
b25zdCB1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQpIG92ZXJyaWRlOwotICAgIHZvaWQgYWJvcnQo
KSBvdmVycmlkZTsKLSAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBvdmVycmlkZTsKLSAgICB2
b2lkIHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKSBvdmVycmlkZTsKLSAgICBNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRSZWFk
eVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsKLQotICAgIHZvaWQgZmx1
c2goQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIGVucXVldWVTYW1wbGUoUGFzc1Jl
ZlB0cjxNZWRpYVNhbXBsZT4sIEF0b21pY1N0cmluZykgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1Jl
YWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldEFj
dGl2ZShib29sKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhB
dG9taWNTdHJpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9y
TW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldENsaWVudChT
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KikgZmluYWw7CisgICAgdm9pZCBhcHBlbmQoY29uc3Qg
dW5zaWduZWQgY2hhciosIHVuc2lnbmVkKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KCkgZmluYWw7
CisgICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkgZmluYWw7CisgICAgdm9pZCByZW1vdmVkRnJv
bU1lZGlhU291cmNlKCkgZmluYWw7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlT
dGF0ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSkgZmluYWw7CisKKyAgICB2b2lkIGZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYp
IGZpbmFsOworICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKGNv
bnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIGZpbmFs
OworICAgIHZvaWQgc3RvcEFza2luZ0Zvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYp
IGZpbmFsOworICAgIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29u
c3QgQXRvbWljU3RyaW5nJikgZmluYWw7CiAKICAgICB2b2lkIHNldFJlYWR5Rm9yTW9yZVNhbXBs
ZXMoYm9vbCk7CiAgICAgdm9pZCBub3RpZnlSZWFkeUZvck1vcmVTYW1wbGVzKCk7CiAKICAgICB2
b2lkIGRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgU291cmNlQnVmZmVyUHJp
dmF0ZUNsaWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZW50Jik7Ci0gICAgdm9pZCBkaWRSZWNlaXZl
U2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTYW1w
bGUoTWVkaWFTYW1wbGUmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVBbGxQZW5kaW5nU2FtcGxlcygp
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCmluZGV4IGJh
MTkxMjFjMjIyZmI2Mjc2NjM5MmE3MWVmYmM1NjVmZTljODc5NjMuLjYwYzAwNzVkNjcyYTYyOTAy
NTgxZjkzOGU2YWZhNDgzYjE2NjA0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3Ry
ZWFtLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKLSNpZm5kZWYgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbV9oCi0jZGVmaW5lIEF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1faAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKQEAgLTM2LDE0ICszNSwxMSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFt
IGZpbmFsIDogcHVibGljIEF1ZGlvVHJhY2tQcml2YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtKQogcHVibGljOgotCiAgICAgc3RhdGlj
IFJlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtPiBjcmVhdGUoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbShzdHJlYW1UcmFjaykpOwogICAgIH0K
IAotICAgIHZpcnR1YWwgfkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0oKSB7IH0KLQogICAg
IEtpbmQga2luZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEtpbmQ6Ok1haW47IH0KICAgICBB
dG9taWNTdHJpbmcgaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lkOyB9CiAgICAgQXRv
bWljU3RyaW5nIGxhYmVsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9sYWJlbDsgfQpAQCAt
NTIsMTcgKzQ4LDE3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VHJhY2tJbmRleChpbnQgaW5k
ZXgpIHsgbV9pbmRleCA9IGluZGV4OyB9CiAKLSAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSog
c3RyZWFtVHJhY2soKSBjb25zdCB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CisgICAg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKCkgeyByZXR1cm4gbV9zdHJlYW1U
cmFjay5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW0oTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQotICAgICAgICA6IG1fc3RyZWFtVHJh
Y2soJnRyYWNrKQorICAgICAgICA6IG1fc3RyZWFtVHJhY2sodHJhY2spCiAgICAgICAgICwgbV9p
ZCh0cmFjay5pZCgpKQogICAgICAgICAsIG1fbGFiZWwodHJhY2subGFiZWwoKSkKICAgICB7CiAg
ICAgfQogCi0gICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBtX3N0cmVhbVRyYWNr
OworICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9zdHJlYW1UcmFjazsKICAgICBB
dG9taWNTdHJpbmcgbV9pZDsKICAgICBBdG9taWNTdHJpbmcgbV9sYWJlbDsKICAgICBpbnQgbV9p
bmRleCB7IDAgfTsKQEAgLTcxLDUgKzY3LDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmIC8vIEVO
QUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2VuZGlmIC8vIEF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0
cmVhbS5oCmluZGV4IGUxYmZhMTZmMTRkNzI5YWZkMGQxZTRlZWZiMWNlOTk2MjE1NzAxNjYuLjA0
NTgzODlmMzk3NDg3MjcyYTc5MzEwNGIwYTNkZjViM2EyZmJkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9WaWRlb1RyYWNr
UHJpdmF0ZU1lZGlhU3RyZWFtLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVh
bV9oCi0jZGVmaW5lIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1faAorI3ByYWdtYSBvbmNl
CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKQEAg
LTM2LDE0ICszNSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBWaWRlb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtIGZpbmFsIDogcHVibGljIFZpZGVvVHJhY2tQcml2YXRlIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtKQogcHVibGlj
OgotCiAgICAgc3RhdGljIFJlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtPiBjcmVh
dGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKQogICAgIHsKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbShzdHJlYW1U
cmFjaykpOwogICAgIH0KIAotICAgIHZpcnR1YWwgflZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW0oKSB7IH0KLQogICAgIEtpbmQga2luZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEtpbmQ6
Ok1haW47IH0KICAgICBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2lkOyB9CiAgICAgQXRvbWljU3RyaW5nIGxhYmVsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9sYWJlbDsgfQpAQCAtNTIsMTcgKzQ4LDE3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VHJh
Y2tJbmRleChpbnQgaW5kZXgpIHsgbV9pbmRleCA9IGluZGV4OyB9CiAKLSAgICBNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSogc3RyZWFtVHJhY2soKSBjb25zdCB7IHJldHVybiBtX3N0cmVhbVRyYWNr
LmdldCgpOyB9CisgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKCkgeyBy
ZXR1cm4gbV9zdHJlYW1UcmFjay5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIFZpZGVvVHJhY2tQ
cml2YXRlTWVkaWFTdHJlYW0oTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQotICAgICAg
ICA6IG1fc3RyZWFtVHJhY2soJnRyYWNrKQorICAgICAgICA6IG1fc3RyZWFtVHJhY2sodHJhY2sp
CiAgICAgICAgICwgbV9pZCh0cmFjay5pZCgpKQogICAgICAgICAsIG1fbGFiZWwodHJhY2subGFi
ZWwoKSkKICAgICB7CiAgICAgfQogCi0gICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
PiBtX3N0cmVhbVRyYWNrOworICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9zdHJl
YW1UcmFjazsKICAgICBBdG9taWNTdHJpbmcgbV9pZDsKICAgICBBdG9taWNTdHJpbmcgbV9sYWJl
bDsKICAgICBpbnQgbV9pbmRleCB7IDAgfTsKQEAgLTcxLDUgKzY3LDMgQEAgcHJpdmF0ZToKIH0K
IAogI2VuZGlmIC8vIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
LQotI2VuZGlmIC8vIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1faApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVy
UHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcAppbmRleCA0OGRmNGJjYzRjM2JiOGRhMmM1ZjQ5MDBl
MTc1MDYwMDc5MTg1NmYzLi5lMDMxYTliNWQyMGQxMmExYjk2ZTBlMTE2Y2U0YmFhOTU0Y2YwMjIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDcgKzM4
LDYgQEAKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSA8
bWFwPgogI2luY2x1ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXIuaD4KLSNpbmNsdWRlIDx3dGYvUHJp
bnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMTY1LDcgKzE2NCw3IEBAIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclBy
aXZhdGU6OmFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgp
CiAgICAgfQogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVm
ZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKHRoaXMsIHJlc3VsdCk7CisgICAgICAgIG1fY2xpZW50
LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUocmVzdWx0KTsKIH0KIAogdm9pZCBN
b2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChj
b25zdCBNb2NrSW5pdGlhbGl6YXRpb25Cb3gmIGluaXRCb3gpCkBAIC0xOTYsNyArMTk1LDcgQEAg
dm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2Vn
bWVudChjb25zdCBNb2NrSW5pdGlhbGkKICAgICAgICAgfQogICAgIH0KIAotICAgIG1fY2xpZW50
LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudCh0aGlz
LCBzZWdtZW50KTsKKyAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJ
bml0aWFsaXphdGlvblNlZ21lbnQoc2VnbWVudCk7CiB9CiAKIApAQCAtMjA1LDcgKzIwNCw3IEBA
IHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUoY29uc3QgTW9j
a1NhbXBsZUJveCYgc2FtcGxlQm94KQogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSh0
aGlzLCBNb2NrTWVkaWFTYW1wbGU6OmNyZWF0ZShzYW1wbGVCb3gpKTsKKyAgICBtX2NsaWVudC0+
c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoTW9ja01lZGlhU2FtcGxlOjpjcmVh
dGUoc2FtcGxlQm94KSk7CiB9CiAKIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmFib3J0
KCkKQEAgLTIzOSwyMiArMjM4LDIxIEBAIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OnNl
dEFjdGl2ZShib29sIGlzQWN0aXZlKQogICAgICAgICBtX21lZGlhU291cmNlLT5zb3VyY2VCdWZm
ZXJQcml2YXRlRGlkQ2hhbmdlQWN0aXZlU3RhdGUodGhpcywgaXNBY3RpdmUpOwogfQogCi1WZWN0
b3I8U3RyaW5nPiBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1ZWRTYW1wbGVzRm9yVHJh
Y2tJRChBdG9taWNTdHJpbmcpCitWZWN0b3I8U3RyaW5nPiBNb2NrU291cmNlQnVmZmVyUHJpdmF0
ZTo6ZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAg
IHJldHVybiBtX2VucXVldWVkU2FtcGxlczsKIH0KIAotdm9pZCBNb2NrU291cmNlQnVmZmVyUHJp
dmF0ZTo6ZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUsIEF0
b21pY1N0cmluZykKK3ZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmVucXVldWVTYW1wbGUo
UmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgY29uc3QgQXRvbWljU3RyaW5nJikKIHsKLSAgICBS
ZWZQdHI8TWVkaWFTYW1wbGU+IHNhbXBsZSA9IHBycFNhbXBsZTsKLSAgICBpZiAoIW1fbWVkaWFT
b3VyY2UgfHwgIXNhbXBsZSkKKyAgICBpZiAoIW1fbWVkaWFTb3VyY2UpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlID0gc2FtcGxlLT5wbGF0Zm9y
bVNhbXBsZSgpOwogICAgIGlmIChwbGF0Zm9ybVNhbXBsZS50eXBlICE9IFBsYXRmb3JtU2FtcGxl
OjpNb2NrU2FtcGxlQm94VHlwZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTW9ja1NhbXBsZUJv
eCogYm94ID0gcGxhdGZvcm1TYW1wbGUuc2FtcGxlLm1vY2tTYW1wbGVCb3g7CisgICAgYXV0byog
Ym94ID0gcGxhdGZvcm1TYW1wbGUuc2FtcGxlLm1vY2tTYW1wbGVCb3g7CiAgICAgaWYgKCFib3gp
CiAgICAgICAgIHJldHVybjsKIApAQCAtMjY2LDM3ICsyNjQsMzAgQEAgdm9pZCBNb2NrU291cmNl
QnVmZmVyUHJpdmF0ZTo6ZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBT
YW1wbGUsIEEKICAgICBpZiAoYm94LT5pc0RlbGF5ZWQoKSkKICAgICAgICAgbV9tZWRpYVNvdXJj
ZS0+aW5jcmVtZW50VG90YWxGcmFtZURlbGF5QnkoTWVkaWFUaW1lKDEsIDEpKTsKIAotICAgIG1f
ZW5xdWV1ZWRTYW1wbGVzLmFwcGVuZCh0b1N0cmluZyhzYW1wbGUpKTsKKyAgICBtX2VucXVldWVk
U2FtcGxlcy5hcHBlbmQodG9TdHJpbmcoc2FtcGxlLmdldCgpKSk7CiB9CiAKIGJvb2wgTW9ja1Nv
dXJjZUJ1ZmZlclByaXZhdGU6Omhhc1ZpZGVvKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fY2xpZW50
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1
ZmZlclByaXZhdGVIYXNWaWRlbyh0aGlzKTsKKyAgICByZXR1cm4gbV9jbGllbnQgJiYgbV9jbGll
bnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNWaWRlbygpOwogfQogCiBib29sIE1vY2tTb3VyY2VC
dWZmZXJQcml2YXRlOjpoYXNBdWRpbygpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2NsaWVudCkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQ
cml2YXRlSGFzQXVkaW8odGhpcyk7CisgICAgcmV0dXJuIG1fY2xpZW50ICYmIG1fY2xpZW50LT5z
b3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oKTsKIH0KIAotCiBNZWRpYVRpbWUgTW9ja1NvdXJj
ZUJ1ZmZlclByaXZhdGU6OmZhc3RTZWVrVGltZUZvck1lZGlhVGltZShjb25zdCBNZWRpYVRpbWUm
IHRpbWUsIGNvbnN0IE1lZGlhVGltZSYgbmVnYXRpdmVUaHJlc2hvbGQsIGNvbnN0IE1lZGlhVGlt
ZSYgcG9zaXRpdmVUaHJlc2hvbGQpCiB7CiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICByZXR1
cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUo
dGhpcywgdGltZSwgbmVnYXRpdmVUaHJlc2hvbGQsIHBvc2l0aXZlVGhyZXNob2xkKTsKKyAgICAg
ICAgcmV0dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVk
aWFUaW1lKHRpbWUsIG5lZ2F0aXZlVGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7CiAgICAg
cmV0dXJuIHRpbWU7CiB9CiAKIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OnNlZWtUb1Rp
bWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lKQogewogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAg
bV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKHRoaXMsIHRpbWUpOworICAg
ICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZVNlZWtUb1RpbWUodGltZSk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2Uv
TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
bWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaAppbmRleCA3NDRiNGMxMDdjMzEw
MjZmYTQyOWE4ZjEyZDI1NjNiZmMzNjMyZDI4Li40OTY1MDU1M2IwN2JlYWMwN2Y1MzEwZWY1ZTU2
ZWY4MmM3MjBhMDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21l
ZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjMsMTUgKzIzLDExIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0jaWZuZGVmIE1vY2tTb3Vy
Y2VCdWZmZXJQcml2YXRlX2gKLSNkZWZpbmUgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGVfaAorI3By
YWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiU291cmNl
QnVmZmVyUHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTQzLDcgKzM5LDcgQEAgY2xhc3MgTW9ja1NhbXBsZUJveDsKIGNsYXNzIFRpbWVS
YW5nZXM7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIAotY2xhc3MgTW9ja1NvdXJjZUJ1ZmZl
clByaXZhdGUgOiBwdWJsaWMgU291cmNlQnVmZmVyUHJpdmF0ZSB7CitjbGFzcyBNb2NrU291cmNl
QnVmZmVyUHJpdmF0ZSBmaW5hbCA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQcml2YXRlIHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmUHRyPE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlPiBjcmVhdGUoTW9j
a01lZGlhU291cmNlUHJpdmF0ZSopOwogICAgIHZpcnR1YWwgfk1vY2tTb3VyY2VCdWZmZXJQcml2
YXRlKCk7CkBAIC02MCwyMCArNTYsMjAgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBNb2NrU291
cmNlQnVmZmVyUHJpdmF0ZShNb2NrTWVkaWFTb3VyY2VQcml2YXRlKik7CiAKICAgICAvLyBTb3Vy
Y2VCdWZmZXJQcml2YXRlIG92ZXJyaWRlcwotICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZl
clByaXZhdGVDbGllbnQqKSBvdmVycmlkZTsKLSAgICB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25l
ZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIG92ZXJyaWRlOwotICAgIHZvaWQgYWJvcnQo
KSBvdmVycmlkZTsKLSAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBvdmVycmlkZTsKLSAgICB2
b2lkIHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKSBvdmVycmlkZTsKLSAgICBNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRSZWFk
eVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldENs
aWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KikgZmluYWw7CisgICAgdm9pZCBhcHBlbmQo
Y29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBmaW5hbDsKKyAgICB2
b2lkIGFib3J0KCkgZmluYWw7CisgICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkgZmluYWw7Cisg
ICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKCkgZmluYWw7CisgICAgTWVkaWFQbGF5ZXI6
OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0UmVhZHlT
dGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkgZmluYWw7CiAKLSAgICB2b2lkIGZsdXNoKEF0
b21pY1N0cmluZykgb3ZlcnJpZGUgeyBtX2VucXVldWVkU2FtcGxlcy5jbGVhcigpOyB9Ci0gICAg
dm9pZCBlbnF1ZXVlU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+LCBBdG9taWNTdHJpbmcp
IG92ZXJyaWRlOwotICAgIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIG92ZXJy
aWRlOworICAgIHZvaWQgZmx1c2goY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWwgeyBtX2VucXVl
dWVkU2FtcGxlcy5jbGVhcigpOyB9CisgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNh
bXBsZT4mJiwgY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBpc1JlYWR5Rm9y
TW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIGZpbmFsOwogCi0gICAgVmVjdG9yPFN0cmluZz4gZW5x
dWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChBdG9taWNTdHJpbmcpIG92ZXJyaWRlOworICAgIFZlY3Rv
cjxTdHJpbmc+IGVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoY29uc3QgQXRvbWljU3RyaW5nJikg
ZmluYWw7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3Qg
TW9ja0luaXRpYWxpemF0aW9uQm94Jik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2FtcGxlKGNvbnN0
IE1vY2tTYW1wbGVCb3gmKTsKQEAgLTg4LDYgKzg0LDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShBVkZPVU5EQVRJT04pCi0KLSNlbmRpZgot
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tUcmFja3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9j
a1RyYWNrcy5oCmluZGV4IDhkMDMxOWYyZDBkNjY4ODZkNWE1OTAxZmUxMmRiYjM2NDIzYmNlNmIu
LjA3M2YzNjg2MzdiMDk2YmUwZjI1YmEyMzhhMzdmNzJiMjY1OTM4YzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1RyYWNrcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1RyYWNrcy5oCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIz
LDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5kZWYgTW9ja1RyYWNrc19o
Ci0jZGVmaW5lIE1vY2tUcmFja3NfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFf
U09VUkNFKQogCkBAIC0zNyw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
TW9ja0F1ZGlvVHJhY2tQcml2YXRlIDogcHVibGljIEF1ZGlvVHJhY2tQcml2YXRlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmUHRyPE1vY2tBdWRpb1RyYWNrUHJpdmF0ZT4gY3JlYXRlKGNvbnN0
IE1vY2tUcmFja0JveCYgYm94KSB7IHJldHVybiBhZG9wdFJlZihuZXcgTW9ja0F1ZGlvVHJhY2tQ
cml2YXRlKGJveCkpOyB9CisgICAgc3RhdGljIFJlZjxNb2NrQXVkaW9UcmFja1ByaXZhdGU+IGNy
ZWF0ZShjb25zdCBNb2NrVHJhY2tCb3gmIGJveCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2Nr
QXVkaW9UcmFja1ByaXZhdGUoYm94KSk7IH0KICAgICB2aXJ0dWFsIH5Nb2NrQXVkaW9UcmFja1By
aXZhdGUoKSB7IH0KIAogICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1
cm4gbV9pZDsgfQpAQCAtNDUsNyArNDQsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgTW9j
a0F1ZGlvVHJhY2tQcml2YXRlKGNvbnN0IE1vY2tUcmFja0JveCYgYm94KQogICAgICAgICA6IG1f
Ym94KGJveCkKLSAgICAgICAgLCBtX2lkKFN0cmluZzo6Zm9ybWF0KCIlZCIsIGJveC50cmFja0lE
KCkpKQorICAgICAgICAsIG1faWQoQXRvbWljU3RyaW5nOjpudW1iZXIoYm94LnRyYWNrSUQoKSkp
CiAgICAgewogICAgIH0KICAgICBNb2NrVHJhY2tCb3ggbV9ib3g7CkBAIC02Myw3ICs2Miw3IEBA
IHByb3RlY3RlZDoKICAgICBNb2NrVGV4dFRyYWNrUHJpdmF0ZShjb25zdCBNb2NrVHJhY2tCb3gm
IGJveCkKICAgICAgICAgOiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlKEluYmFuZFRleHRUcmFja1By
aXZhdGU6OkdlbmVyaWMpCiAgICAgICAgICwgbV9ib3goYm94KQotICAgICAgICAsIG1faWQoU3Ry
aW5nOjpmb3JtYXQoIiVkIiwgYm94LnRyYWNrSUQoKSkpCisgICAgICAgICwgbV9pZChBdG9taWNT
dHJpbmc6Om51bWJlcihib3gudHJhY2tJRCgpKSkKICAgICB7CiAgICAgfQogICAgIE1vY2tUcmFj
a0JveCBtX2JveDsKQEAgLTgxLDcgKzgwLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIE1v
Y2tWaWRlb1RyYWNrUHJpdmF0ZShjb25zdCBNb2NrVHJhY2tCb3gmIGJveCkKICAgICAgICAgOiBt
X2JveChib3gpCi0gICAgICAgICwgbV9pZChTdHJpbmc6OmZvcm1hdCgiJWQiLCBib3gudHJhY2tJ
RCgpKSkKKyAgICAgICAgLCBtX2lkKEF0b21pY1N0cmluZzo6bnVtYmVyKGJveC50cmFja0lEKCkp
KQogICAgIHsKICAgICB9CiAgICAgTW9ja1RyYWNrQm94IG1fYm94OwpAQCAtOTEsNSArOTAsMyBA
QCBwcm90ZWN0ZWQ6CiB9CiAKICNlbmRpZgotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCmluZGV4IDMzZmU0Mzk2
MDJjY2QwNzUwYWUzYzNjYjBjNGQ3ODBjZjcxYmVjODMuLjdmMmM2OTA5NzZkNjhhMWNkZDk1ODQ0
YTNmMGRiZDVlODBiMjM0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiUGFp
bnRJbmZvLmgiCiAjaW5jbHVkZSAiUGF0aC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVu
dC5oIgorI2luY2x1ZGUgIlJlbmRlckltYWdlUmVzb3VyY2UuaCIKICNpbmNsdWRlICJSZW5kZXJJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlIDx3dGYvU3RhY2tT
dGF0cy5oPgpAQCAtNTIsNyArNTMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBSZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4oSFRNTFBsdWdJbkltYWdlRWxl
bWVudCYgZWxlbWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlckVtYmVkZGVk
T2JqZWN0KGVsZW1lbnQsIFdURk1vdmUoc3R5bGUpKQogICAgICwgbV9zbmFwc2hvdFJlc291cmNl
KHN0ZDo6bWFrZV91bmlxdWU8UmVuZGVySW1hZ2VSZXNvdXJjZT4oKSkKLSAgICAsIG1faXNQb3Rl
bnRpYWxNb3VzZUFjdGl2YXRpb24oZmFsc2UpCiB7CiAgICAgbV9zbmFwc2hvdFJlc291cmNlLT5p
bml0aWFsaXplKHRoaXMpOwogfQpAQCAtODIsMTMgKzgyLDEzIEBAIHZvaWQgUmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW46OmxheW91dCgpCiAgICAgdmlldygpLmZyYW1lVmlldygpLmFkZEVtYmVkZGVk
T2JqZWN0VG9VcGRhdGUoKnRoaXMpOwogfQogCi12b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0lu
Ojp1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKK3ZvaWQgUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW46OnVwZGF0ZVNuYXBzaG90KEltYWdlKiBpbWFnZSkKIHsKICAgICAvLyBa
ZXJvLXNpemUgcGx1Z2lucyB3aWxsIGhhdmUgbm8gaW1hZ2UuCiAgICAgaWYgKCFpbWFnZSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9zbmFwc2hvdFJlc291cmNlLT5zZXRDYWNoZWRJbWFnZShu
ZXcgQ2FjaGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIHZpZXcoKS5mcmFtZVZpZXcoKS5mcmFtZSgpLnBh
Z2UoKS0+c2Vzc2lvbklEKCkpKTsKKyAgICBtX3NuYXBzaG90UmVzb3VyY2UtPnNldENhY2hlZElt
YWdlKG5ldyBDYWNoZWRJbWFnZShpbWFnZSwgdmlldygpLmZyYW1lVmlldygpLmZyYW1lKCkucGFn
ZSgpLT5zZXNzaW9uSUQoKSkpOwogICAgIHJlcGFpbnQoKTsKIH0KIApAQCAtMTUwLDEyICsxNTAs
MTIgQEAgQ3Vyc29yRGlyZWN0aXZlIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpnZXRDdXJzb3Io
Y29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBDdXIKICAgICByZXR1cm4gUmVuZGVyRW1iZWRkZWRP
YmplY3Q6OmdldEN1cnNvcihwb2ludCwgb3ZlcnJpZGVDdXJzb3IpOwogfQogCi12b2lkIFJlbmRl
clNuYXBzaG90dGVkUGx1Z0luOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQpCit2b2lkIFJlbmRl
clNuYXBzaG90dGVkUGx1Z0luOjpoYW5kbGVFdmVudChFdmVudCYgZXZlbnQpCiB7Ci0gICAgaWYg
KCFpczxNb3VzZUV2ZW50PigqZXZlbnQpKQorICAgIGlmICghaXM8TW91c2VFdmVudD4oZXZlbnQp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBNb3VzZUV2ZW50JiBtb3VzZUV2ZW50ID0gZG93bmNh
c3Q8TW91c2VFdmVudD4oKmV2ZW50KTsKKyAgICBhdXRvJiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8
TW91c2VFdmVudD4oZXZlbnQpOwogCiAgICAgLy8gSWYgd2UncmUgYSBzbmFwc2hvdHRlZCBwbHVn
aW4sIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHdlIGFjdGl2YXRlIG9uCiAgICAgLy8gY2xpY2tzIGV2
ZW4gaWYgdGhlIHBhZ2UgaXMgcHJldmVudGluZyBvdXIgZGVmYXVsdCBiZWhhdmlvdXIuIE90aGVy
d2lzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90
dGVkUGx1Z0luLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW4uaAppbmRleCAxMzRkYjgzM2I3OThlZTVjMzdiMWJhMjdkYTU0OGZjNTQzZWY4NjQ3Li5j
YWI1YmZiYzRmYWY2N2Q2NmI2Yjg5ODIxNWRiMjYwYTEyNmVhZWI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxMiArMjYs
MTEgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuaCIK
LSNpbmNsdWRlICJSZW5kZXJJbWFnZVJlc291cmNlLmgiCi0jaW5jbHVkZSAiVGltZXIuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OworY2xh
c3MgUmVuZGVySW1hZ2VSZXNvdXJjZTsKIAogY2xhc3MgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4g
ZmluYWwgOiBwdWJsaWMgUmVuZGVyRW1iZWRkZWRPYmplY3QgewogcHVibGljOgpAQCAtMzksMjcg
KzM4LDIxIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbigp
OwogCiAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCYgcGx1Z0luSW1hZ2VFbGVtZW50KCkgY29u
c3Q7Ci0KLSAgICB2b2lkIHVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+KTsKLQotICAg
IHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqKTsKKyAgICB2b2lkIHVwZGF0ZVNuYXBzaG90KEltYWdl
Kik7CisgICAgdm9pZCBoYW5kbGVFdmVudChFdmVudCYpOwogCiBwcml2YXRlOgogICAgIHZvaWQg
ZnJhbWVPd25lckVsZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsKLSAgICBjb25zdCBjaGFyKiByZW5k
ZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlclNuYXBzaG90dGVkUGx1Z0lu
IjsgfQotCi0gICAgQ3Vyc29yRGlyZWN0aXZlIGdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYs
IEN1cnNvciYpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNTbmFwc2hvdHRlZFBsdWdJbigp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2b2lkIHBhaW50KFBhaW50SW5m
byYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7Ci0gICAgCi0gICAgYm9vbCBjYW5IYXZl
V2lkZ2V0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLQorICAgIGNvbnN0IGNo
YXIqIHJlbmRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW4iOyB9CisgICAgQ3Vyc29yRGlyZWN0aXZlIGdldEN1cnNvcihjb25zdCBMYXlvdXRQb2lu
dCYsIEN1cnNvciYpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgaXNTbmFwc2hvdHRlZFBsdWdJbigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYs
IGNvbnN0IExheW91dFBvaW50JikgZmluYWw7CisgICAgYm9vbCBjYW5IYXZlV2lkZ2V0KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIHBhaW50U25hcHNob3QoUGFpbnRJ
bmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKLQotICAgIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBsYXlvdXQoKSBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJJ
bWFnZVJlc291cmNlPiBtX3NuYXBzaG90UmVzb3VyY2U7Ci0gICAgYm9vbCBtX2lzUG90ZW50aWFs
TW91c2VBY3RpdmF0aW9uOworICAgIGJvb2wgbV9pc1BvdGVudGlhbE1vdXNlQWN0aXZhdGlvbiB7
IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NjcmlwdEVsZW1lbnQuaAppbmRleCA4YjdkOTI0NTY0YTY0ZjAxYzk2ZDBiZTI0MzA4Y2VhYTk4
NmQxNmU5Li5lMjY3ODY5ZmU3NzExMDcxMDQyMDJlYjE0NjY2ZDg5NWZhMTRhOGIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFu
bkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3IFJvYiBCdWlzIDxi
dWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI5LDEzICszMCwxMyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgU1ZHRWxlbWVudAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBT
VkdVUklSZWZlcmVuY2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAs
IHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKK2NsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgU1ZHRWxlbWVudCwgcHVibGljIFNWR1VSSVJlZmVyZW5jZSwgcHVibGljIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPFNWR1NjcmlwdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIpOwogCisgICAgdXNpbmcgU1ZH
RWxlbWVudDo6cmVmOworICAgIHVzaW5nIFNWR0VsZW1lbnQ6OmRlcmVmOworCiBwcml2YXRlOgog
ICAgIFNWR1NjcmlwdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9v
bCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIGFscmVhZHlTdGFydGVkKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCA5MjYwNWZj
MDIzNWM3YWVmYmU3NmFjODYxZTBmODVmNmU4YTVkYThmLi42OTU2ZDc4YTcxYjIwNWZhMTJiNDMz
MzBjM2UzODQ5N2MxNjYzZTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2Vy
L1hNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hN
TERvY3VtZW50UGFyc2VyLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDAgUGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKLSAqIENvcHlyaWdodCAoQykgMjAwNSwg
MjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAd2Via2l0Lm9yZykKICAqIENvcHly
aWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIChzYW1Ad2Via2l0Lm9yZykKICAqIENvcHlyaWdo
dCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
QEAgLTIzNyw4ICsyMzcsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpub3RpZnlGaW5pc2hl
ZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogICAgIG1fcGVuZGluZ1NjcmlwdCA9IG51
bGxwdHI7CiAgICAgcGVuZGluZ1NjcmlwdC5jbGVhckNsaWVudCgpOwogCi0gICAgYXV0byYgc2Ny
aXB0RWxlbWVudCA9ICp0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5nU2NyaXB0LmVs
ZW1lbnQoKSk7Ci0gICAgc2NyaXB0RWxlbWVudC5leGVjdXRlUGVuZGluZ1NjcmlwdChwZW5kaW5n
U2NyaXB0KTsKKyAgICBwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKS5leGVjdXRlUGVuZGluZ1Njcmlw
dChwZW5kaW5nU2NyaXB0KTsKIAogICAgIGlmICghaXNEZXRhY2hlZCgpICYmICFtX3JlcXVlc3Rp
bmdTY3JpcHQpCiAgICAgICAgIHJlc3VtZVBhcnNpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCA3MDY3
Njc2ZGQxN2E3NGQ5ZTQyNzI5ZDNkMjlkM2RkOGU4YTdmOGNlLi5mNDgxMDA1MjY3MTE2MjkwZmIx
ZmQ1MzZjODA4OTEwY2JlNTZhODMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFy
c2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1s
L3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAwMCBQZXRlciBLZWxseSA8cG1rQHBvc3QuY29tPgotICogQ29w
eXJpZ2h0IChDKSAyMDA1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCkBAIC03OTksOCArNzk5LDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6c3Rh
cnRFbGVtZW50TnMoY29uc3QgeG1sQ2hhciogeG1sTG9jYWxOYW1lLCBjb25zdCB4bWxDaGEKIAog
ICAgIG5ld0VsZW1lbnQtPmJlZ2luUGFyc2luZ0NoaWxkcmVuKCk7CiAKLSAgICBTY3JpcHRFbGVt
ZW50KiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShuZXdFbGVtZW50
LnB0cigpKTsKLSAgICBpZiAoc2NyaXB0RWxlbWVudCkKKyAgICBpZiAoaXNTY3JpcHRFbGVtZW50
KG5ld0VsZW1lbnQuZ2V0KCkpKQogICAgICAgICBtX3NjcmlwdFN0YXJ0UG9zaXRpb24gPSB0ZXh0
UG9zaXRpb24oKTsKIAogICAgIG1fY3VycmVudE5vZGUtPnBhcnNlckFwcGVuZENoaWxkKG5ld0Vs
ZW1lbnQpOwpAQCAtODQzLDcgKzg0Miw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVs
ZW1lbnROcygpCiAgICAgaWYgKGhhY2tBcm91bmRMaWJYTUxFbnRpdHlQYXJzaW5nQnVnKCkgJiYg
Y29udGV4dCgpLT5kZXB0aCA8PSBkZXB0aFRyaWdnZXJpbmdFbnRpdHlFeHBhbnNpb24oKSkKICAg
ICAgICAgc2V0RGVwdGhUcmlnZ2VyaW5nRW50aXR5RXhwYW5zaW9uKC0xKTsKIAotICAgIGlmICgh
c2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChwYXJzZXJDb250ZW50UG9saWN5KCkpICYmIGlzPEVs
ZW1lbnQ+KCpub2RlKSAmJiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGRvd25jYXN0PEVsZW1l
bnQ+KG5vZGUuZ2V0KCkpKSkgeworICAgIGlmICghc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChw
YXJzZXJDb250ZW50UG9saWN5KCkpICYmIGlzPEVsZW1lbnQ+KCpub2RlKSAmJiBpc1NjcmlwdEVs
ZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpKSkgewogICAgICAgICBwb3BDdXJyZW50Tm9k
ZSgpOwogICAgICAgICBub2RlLT5yZW1vdmUoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtODU0LDcg
Kzg1Myw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVu
dD4oKm5vZGUpOworICAgIGF1dG8mIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7
CiAKICAgICAvLyBUaGUgZWxlbWVudCdzIHBhcmVudCBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gcmVt
b3ZlZCBmcm9tIGRvY3VtZW50LgogICAgIC8vIFBhcnNpbmcgY29udGludWVzIGluIHRoaXMgY2Fz
ZSwgYnV0IHNjcmlwdHMgYXJlbid0IGV4ZWN1dGVkLgpAQCAtODYzLDggKzg2Miw3IEBAIHZvaWQg
WE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZSgmZWxlbWVudCk7Ci0gICAgaWYgKCFzY3JpcHRFbGVtZW50KSB7CisgICAgaWYgKCFp
c1NjcmlwdEVsZW1lbnQoZWxlbWVudCkpIHsKICAgICAgICAgcG9wQ3VycmVudE5vZGUoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTg3MywxNSArODcxLDE2IEBAIHZvaWQgWE1MRG9jdW1l
bnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgQVNTRVJUKCFtX3BlbmRpbmdTY3JpcHQpOwog
ICAgIG1fcmVxdWVzdGluZ1NjcmlwdCA9IHRydWU7CiAKLSAgICBpZiAoc2NyaXB0RWxlbWVudC0+
cHJlcGFyZVNjcmlwdChtX3NjcmlwdFN0YXJ0UG9zaXRpb24sIFNjcmlwdEVsZW1lbnQ6OkFsbG93
TGVnYWN5VHlwZUluVHlwZUF0dHJpYnV0ZSkpIHsKKyAgICBhdXRvJiBzY3JpcHRFbGVtZW50ID0g
ZG93bmNhc3RTY3JpcHRFbGVtZW50KGVsZW1lbnQpOworICAgIGlmIChzY3JpcHRFbGVtZW50LnBy
ZXBhcmVTY3JpcHQobV9zY3JpcHRTdGFydFBvc2l0aW9uLCBTY3JpcHRFbGVtZW50OjpBbGxvd0xl
Z2FjeVR5cGVJblR5cGVBdHRyaWJ1dGUpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBTY3JpcHQgZXhl
Y3V0aW9uIHNob3VsZCBiZSBzaGFyZWQgYmV0d2VlbgogICAgICAgICAvLyB0aGUgbGlieG1sMiBh
bmQgUXQgWE1MRG9jdW1lbnRQYXJzZXIgaW1wbGVtZW50YXRpb25zLgogCi0gICAgICAgIGlmIChz
Y3JpcHRFbGVtZW50LT5yZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgpKQotICAgICAgICAgICAgc2Ny
aXB0RWxlbWVudC0+ZXhlY3V0ZUNsYXNzaWNTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRF
bGVtZW50LT5zY3JpcHRDb250ZW50KCksIGRvY3VtZW50KCktPnVybCgpLCBtX3NjcmlwdFN0YXJ0
UG9zaXRpb24pKTsKLSAgICAgICAgZWxzZSBpZiAoc2NyaXB0RWxlbWVudC0+d2lsbEJlUGFyc2Vy
RXhlY3V0ZWQoKSAmJiBzY3JpcHRFbGVtZW50LT5sb2FkYWJsZVNjcmlwdCgpKSB7Ci0gICAgICAg
ICAgICBtX3BlbmRpbmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoZWxlbWVudCwgKnNj
cmlwdEVsZW1lbnQtPmxvYWRhYmxlU2NyaXB0KCkpOwotICAgICAgICAgICAgbV9wZW5kaW5nU2Ny
aXB0LT5zZXRDbGllbnQodGhpcyk7CisgICAgICAgIGlmIChzY3JpcHRFbGVtZW50LnJlYWR5VG9C
ZVBhcnNlckV4ZWN1dGVkKCkpCisgICAgICAgICAgICBzY3JpcHRFbGVtZW50LmV4ZWN1dGVDbGFz
c2ljU2NyaXB0KFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0RWxlbWVudC5zY3JpcHRDb250ZW50KCks
IGRvY3VtZW50KCktPnVybCgpLCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24pKTsKKyAgICAgICAgZWxz
ZSBpZiAoc2NyaXB0RWxlbWVudC53aWxsQmVQYXJzZXJFeGVjdXRlZCgpICYmIHNjcmlwdEVsZW1l
bnQubG9hZGFibGVTY3JpcHQoKSkgeworICAgICAgICAgICAgbV9wZW5kaW5nU2NyaXB0ID0gUGVu
ZGluZ1NjcmlwdDo6Y3JlYXRlKHNjcmlwdEVsZW1lbnQsICpzY3JpcHRFbGVtZW50LmxvYWRhYmxl
U2NyaXB0KCkpOworICAgICAgICAgICAgbV9wZW5kaW5nU2NyaXB0LT5zZXRDbGllbnQoKnRoaXMp
OwogCiAgICAgICAgICAgICAvLyBtX3BlbmRpbmdTY3JpcHQgd2lsbCBiZSBudWxscHRyIGlmIHNj
cmlwdCB3YXMgYWxyZWFkeSBsb2FkZWQgYW5kIHNldENsaWVudCgpIGV4ZWN1dGVkIGl0LgogICAg
ICAgICAgICAgaWYgKG1fcGVuZGluZ1NjcmlwdCkKQEAgLTg5NiwxOSArODk1LDE5IEBAIHZvaWQg
WE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgcG9wQ3VycmVudE5vZGUoKTsK
IH0KIAotdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6Y2hhcmFjdGVycyhjb25zdCB4bWxDaGFyKiBz
LCBpbnQgbGVuKQordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6Y2hhcmFjdGVycyhjb25zdCB4bWxD
aGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKQogewogICAgIGlmIChpc1N0b3BwZWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fcGFyc2VyUGF1c2VkKSB7Ci0gICAgICAgIG1fcGVu
ZGluZ0NhbGxiYWNrcy0+YXBwZW5kQ2hhcmFjdGVyc0NhbGxiYWNrKHMsIGxlbik7CisgICAgICAg
IG1fcGVuZGluZ0NhbGxiYWNrcy0+YXBwZW5kQ2hhcmFjdGVyc0NhbGxiYWNrKGNoYXJhY3RlcnMs
IGxlbmd0aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIW1fbGVhZlRleHRO
b2RlKQogICAgICAgICBjcmVhdGVMZWFmVGV4dE5vZGUoKTsKLSAgICBtX2J1ZmZlcmVkVGV4dC5h
cHBlbmQocywgbGVuKTsKKyAgICBtX2J1ZmZlcmVkVGV4dC5hcHBlbmQoY2hhcmFjdGVycywgbGVu
Z3RoKTsKIH0KIAogdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZXJyb3IoWE1MRXJyb3JzOjpFcnJv
clR5cGUgdHlwZSwgY29uc3QgY2hhciogbWVzc2FnZSwgdmFfbGlzdCBhcmdzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBj
MTAxOTI0ZWE1ZjFkNjYyOTNiMTk5YTMwMDEyNGRiMmMyM2Y1N2I0Li45MDAwNmViMTAzNjMyNTZl
M2E3MjMwN2MyNDRhYWVjYmIxODExZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzEs
MTIgKzMxLDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvRm9jdXNEaXJlY3Rpb24uaD4KICNpbXBvcnQg
PHd0Zi9Gb3J3YXJkLmg+CiAKLSNpZiBQTEFURk9STShJT1MpCi0jaW1wb3J0IDx3dGYvUGxhdGZv
cm0uaD4KLSNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotI2ltcG9ydCA8V2ViQ29yZS9D
aHJvbWUuaD4KLSNlbmRpZgotCiBAY2xhc3MgV2ViVmlldzsKIAogY2xhc3MgV2ViQ2hyb21lQ2xp
ZW50IDogcHVibGljIFdlYkNvcmU6OkNocm9tZUNsaWVudCB7CkBAIC0xMjUsNyArMTE5LDcgQEAg
cHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSos
IFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KSBvdmVycmlkZTsKLSAgICB2b2lkIGxv
YWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJ
Y29uTG9hZGVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZl
Y3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpIG92ZXJyaWRlOwog
CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpD
dXJzb3ImKSBvdmVycmlkZTsKQEAgLTIxNCwxMSArMjA4LDcgQEAgcHVibGljOgogICAgIGJvb2wg
aGFzUmVsZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcyhib29sIGlzVGV4dE9ubHkpIGNvbnN0IG92ZXJy
aWRlOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCiAgICAgV2ViVmlldyogd2ViVmlldygp
IGNvbnN0IHsgcmV0dXJuIG1fd2ViVmlldzsgfQotI2Vsc2UKLSAgICBXZWJWaWV3KiB3ZWJWaWV3
KCkgeyByZXR1cm4gbV93ZWJWaWV3OyB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19Q
TEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1MpCiAgICAgdm9pZCBhZGRQbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudCh1aW50NjRfdCAvKmNvbnRleHRJZCovKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpp
bmRleCBiY2VhZmQ1MTE2NTMyMmIzYWRiYTc5NGMwYzFmNThkYjVjZTE5YThiLi5kN2VjOGNiMWI0
NmFiNzgxOGUwZGUyMjQxMjZjYWE1YTA2NWRhMjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CkBAIC03NTcsOSArNzU3LDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5Q
YW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IGNob29zZXIpCiAgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29u
Rm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUljb25Mb2FkZXIq
IGljb25Mb2FkZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciYgaWNvbkxvYWRlcikK
IHsKLSAgICBpY29uTG9hZGVyLT5ub3RpZnlGaW5pc2hlZChJY29uOjpjcmVhdGVJY29uRm9yRmls
ZXMoZmlsZW5hbWVzKSk7CisgICAgaWNvbkxvYWRlci5pY29uTG9hZGVkKEljb246OmNyZWF0ZUlj
b25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApp
bmRleCAwM2Q4YTI2ZDkzOGYxMjY3MDViMDBlNjMxYTUzMzgyNjY3NjMzMTc5Li5mMjRlNjMzNDQ1
ZTQzNTViM2I0MjhmOTk4N2RjNDJmODEyYzFiZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMDgsIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAg
LTY4MCw5ICs2ODAsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1l
KiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZUNob29zZQogICAgIC8vIEZJWE1FOiBT
aG93IHNvbWUgc29ydCBvZiBlcnJvciBpZiB0b28gbWFueSBmaWxlcyBhcmUgc2VsZWN0ZWQgYW5k
IHRoZSBidWZmZXIgaXMgdG9vIHNtYWxsLiAgRm9yIG5vdywgdGhpcyB3aWxsIGZhaWwgc2lsZW50
bHkuCiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZl
Y3RvcjxXVEY6OlN0cmluZz4mIGZpbGVuYW1lcywgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqIGxv
YWRlcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3Rv
cjxXVEY6OlN0cmluZz4mIGZpbGVuYW1lcywgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXImIGxvYWRl
cikKIHsKLSAgICBsb2FkZXItPm5vdGlmeUZpbmlzaGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxl
cyhmaWxlbmFtZXMpKTsKKyAgICBsb2FkZXIuaWNvbkxvYWRlZChJY29uOjpjcmVhdGVJY29uRm9y
RmlsZXMoZmlsZW5hbWVzKSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRDdXJzb3Io
Y29uc3QgQ3Vyc29yJiBjdXJzb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDg5ZDZjODc0YmQ0NGY5Y2Q2ZWQ1NWIwNjBi
ZGZjZGI4NzM2ZmMyODIuLjM0OGY0YzM1ZWY3MjBmYjk5ZDg3ZDY0M2VkYzg1YTlkMDE1Y2RjZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNi0yMDA5LCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
Ni0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CkBAIC0xMTYsNyArMTE2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKTsKIAogICAgIHZpcnR1YWwgdm9pZCBydW5P
cGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2Vy
Pik7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6
U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGxv
YWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJ
Y29uTG9hZGVyJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6
OkN1cnNvciYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92
ZXMoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggN2YwZTc1ZGNiOTgyM2JiMmRk
YzEwY2U2MDkxZDE5NDRhZDkyMmE3NS4uZGMzZmVkNWM5YmJmZTMwYzhiZDIwYWVlOWU5YjAxZDgy
ZGZlNGZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNzYxLDkgKzc2MSw5IEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRy
PEZpbGVDaG9vc2VyPiBwcnBGaWxlCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlJ1bk9wZW5QYW5lbCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRh
dGE6OmZyb21GcmFtZShmcmFtZSksIGZpbGVDaG9vc2VyLT5zZXR0aW5ncygpKSk7CiB9CiAKLXZv
aWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9hZGVyKiBsb2FkZXIpCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxl
SWNvbkxvYWRlciYgbG9hZGVyKQogewotICAgIGxvYWRlci0+bm90aWZ5RmluaXNoZWQoSWNvbjo6
Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOworICAgIGxvYWRlci5pY29uTG9hZGVkKElj
b246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogI2lmICFQTEFURk9STShJ
T1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAwNWU0YjM1YTFkZTE4YjllYmVmODU0MDUyNmFm
YjJhNWVmZGZkNzZjLi43NmVlMjJlNmU5ZDZiOWNiMzRlMDE4MzkxNWY5OGY2NjE3MzM2OWFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEwLCAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0xODIsNyArMTgyLDcgQEAgcHJpdmF0ZToK
ICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVm
UHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2FkSWNvbkZv
ckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKSBv
dmVycmlkZTsKKyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
LCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpIG92ZXJyaWRlOwogCiAjaWYgIVBMQVRGT1JNKElP
UykKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298015</attachid>
            <date>2017-01-04 09:04:16 -0800</date>
            <delta_ts>2017-01-04 10:33:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166635-20170104090248.patch</filename>
            <type>text/plain</type>
            <size>690110</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMjc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGViYWRhNjQ0NThkNzllNjZhMzk4ZjIz
YWRjZTY5ZTA3ODg1MDA3N2QuLjMwZjQ1YTVkNTkwN2RiNjc0ZWY2ZWI2NmQ4NTg3OTU3ZmQ2M2Ey
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDEtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRt
bCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpt
YWtlUmVmUHRyKTogQWRkZWQuCisKIDIwMTctMDEtMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgVXNlIHByY3RsIHRvIG5hbWUgdGhyZWFkIG9uIExp
bnV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZjkxNzYwY2UzMjJkMmY5OGRlOTg1ODBmOTA5YjFiMzY0YmYxMzNi
Yi4uNmZmMWQzOGMzNjE2ZDFhZWIyMGU5N2ZmMTRiNjc2ODQ1ZDczMTU2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDc3MiBAQAorMjAxNy0wMS0wNCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIgdXNlIGZyb20gdGhlICJodG1sIiBkaXJl
Y3RvcnksIG90aGVyIGltcHJvdmVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY2NjM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogUmVtb3ZlZCB0aGUgZHVwbGljYXRl
IGNvcGllcyBvZiBhbGwgdGhlIFdlYkdMLXNwZWNpZmljIGZpbGVzCisgICAgICAgIGluIHRoZSBt
YWluIGxpc3Qgb2Ygc291cmNlIGZpbGVzOyB0aGVyZSBpcyBubyB2YWx1ZSBpbiBsaXN0aW5nIHRo
ZW0gdHdpY2UuCisgICAgICAgIFJlcGxhY2VkIFdlYkdMR2V0SW5mby5jcHAgd2l0aCBXZWJHTEFu
eS5jcHAuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIpOiBVcGRh
dGVzIHNpbmNlIHRoZSB0cmFja3MgZnVuY3Rpb25zCisgICAgICAgIHJldHVybiByZWZlcmVuY2Vz
IG5vdy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUZhc3RT
ZWVrVGltZUZvck1lZGlhVGltZSk6IFJlbW92ZWQKKyAgICAgICAgdW5uZWVkZWQgU291cmNlQnVm
ZmVyUHJpdmF0ZSogYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OmFw
cGVuZEJ1ZmZlclRpbWVyRmlyZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlUmVu
ZGVyaW5nRXJyb3IpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dmlk
ZW9UcmFja3MpOiBSZXR1cm4gYSByZWZlcmVuY2UgcmF0aGVyIHRoYW4gYSBwb2ludGVyLgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjphdWRpb1RyYWNrcyk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjp0ZXh0VHJhY2tzKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlh
bGl6YXRpb25TZWdtZW50KToKKyAgICAgICAgUmVtb3ZlZCB1bm5lZWRlZCBTb3VyY2VCdWZmZXJQ
cml2YXRlKiBhcmd1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dmFsaWRh
dGVJbml0aWFsaXphdGlvblNlZ21lbnQpOiBVcGRhdGVkIHNpbmNlIHRyYWNrcworICAgICAgICBm
dW5jdGlvbnMgbm93IHJldHVybiBhIHBvaW50ZXIuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VC
dWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKTogUmVtb3ZlZCB1bm5l
ZWRlZAorICAgICAgICBTb3VyY2VCdWZmZXJQcml2YXRlKiBhcmd1bWVudC4KKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNW
aWRlbyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjp2aWRlb1RyYWNr
U2VsZWN0ZWRDaGFuZ2VkKTogVGFrZSBhIHJlZmVyZW5jZSByYXRoZXIgdGhhbgorICAgICAgICBh
IHBvaW50ZXIuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OmF1ZGlvVHJhY2tFbmFi
bGVkQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjp0ZXh0
VHJhY2tNb2RlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
Ojp0ZXh0VHJhY2tBZGRDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
cjo6dGV4dFRyYWNrQWRkQ3Vlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyOjp0ZXh0VHJhY2tSZW1vdmVDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3Vlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
U291cmNlQnVmZmVyOjp0ZXh0VHJhY2tLaW5kQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JN
b3JlU2FtcGxlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpwcm92
aWRlTWVkaWFEYXRhKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnJl
ZW5xdWV1ZU1lZGlhRm9yVGltZSk6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IFJlcGxhY2VkIFdlYkdMR2V0SW5m
byB3aXRoIFdlYkdMQW55LgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9IVE1MQ2FudmFzU3R5
bGUpOiBSZW1vdmVkIGV4cGxpY2l0IGNhc3QgdG8gQ2FudmFzU3R5bGUgYW5kIHVubmVlZGVkCisg
ICAgICAgIGNvbnZlcnNpb24gdG8gYSBwb2ludGVyIHNpbmNlIENhbnZhc1N0eWxlIGNvbnN0cnVj
dG9ycyBub3cgdGFrZSByZWZlcmVuY2VzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNQbHVn
aW5FbGVtZW50RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBsdWdpbkluc3RhbmNl
KTogVXBkYXRlZCBzaW5jZSBiaW5kaW5nc0luc3RhbmNlIG5vdyByZXR1cm5zIGEgcmF3IHBvaW50
ZXIuCisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5TY3JpcHRPYmplY3QpOiBEaXR0by4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0pTKTogTW92ZWQgdG8gV2ViR0xBbnkuaC9jcHAuCisgICAgICAg
IChXZWJDb3JlOjpKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEluZGV4ZWRQYXJhbWV0ZXIp
OiBVcGRhdGVkIHNpbmNlIHRoZSB0b0pTCisgICAgICAgIGZ1bmN0aW9uIGluIFdlYkdMQW55Lmgg
dGFrZXMgcmVmZXJlbmNlcywgbm90IHBvaW50ZXJzLgorCisgICAgICAgICogYmluZGluZ3MvanMv
SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9tLmNwcDogUmVtb3ZlZCBxdWl0ZSBhIGZl
dyB1bm5lZWRlZAorICAgICAgICBpbmNsdWRlcyBhbmQgZ290IHJpZCBvZiBhIGxvdCBvZiB1bm5l
ZWRlZCBKU0MgcHJlZml4ZXMuCisgICAgICAgIChXZWJDb3JlOjp0b0pTKTogTW92ZWQgdG8gV2Vi
R0xBbnkuaC9jcHAuCisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Om9iamVjdFBhcmFtZXRlcik6IFJlbmFtZWQgZnJvbSBnZXRPYmplY3RQYXJh
bWV0ZXIgYW5kIGFsc28gY2hhbmdlZCB0bworICAgICAgICB0YWtlIGEgcG9pbnRlciB0byBtZW1i
ZXIgZnVuY3Rpb24gc28gd2UgZG9uJ3QgbmVlZCBhbiBlbnVtIGFuZCBhIHN3aXRjaCBzdGF0ZW1l
bnQuCisgICAgICAgIChXZWJDb3JlOjp0b0pTKTogQ2hhbmdlZCB0byB0YWtlIHJlZmVyZW5jZXMg
cmF0aGVyIHRoYW4gcG9pbnRlcnMuCisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldEF0dGFjaGVkU2hhZGVycyk6IFVzZSBhIG1vZGVybiBmb3IgbG9vcC4K
KyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVy
UGFyYW1ldGVyKTogVXNlIG9iamVjdFBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6OkpTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRl
eEF0dHJpYik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6dG9OdW1iZXJWZWN0b3IpOiBSZW5h
bWVkIGZyb20gdG9WZWN0b3IsIHNpbmNlIHRoaXMgaXMgc3BlY2lmaWNhbGx5IGZvcgorICAgICAg
ICB2ZWN0b3JzIG9mIG51bWJlcnMuIFVzZSB1bmNoZWNrZWRBcHBlbmQgaW5zdGVhZCBvZiBhc3Np
Z25tZW50LgorICAgICAgICAoV2ViQ29yZTo6ZnVuY3Rpb25Gb3JVbmlmb3JtKTogTWFya2VkIHRo
aXMgaW5saW5lLgorICAgICAgICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uZik6IFVwZGF0ZWQgZm9y
IGFib3ZlIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25pKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25NYXRyaXgpOiBEaXR0by4KKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKTogTW92ZWQgYXNzZXJ0aW9ucyB0byB0aGUgdG9w
IG9mIHRoZSBmdW5jdGlvbi4KKyAgICAgICAgQWxzbyBhZGRlZCBhIEZJWE1FIGJlY2F1c2UgaXQn
cyB1bmNsZWFyIHdoeSB0aGVzZSBhc3NlcnRpb25zIGFyZSBjb3JyZWN0LiBVcGRhdGVkCisgICAg
ICAgIHRvIHVzZSBkb3duY2FzdFNjcmlwdEVsZW1lbnQgaW5zdGVhZCBvZiB0b1NjcmlwdEVsZW1l
bnRJZlBvc3NpYmxlLgorCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6IFNvcnRlZCBsaXN0IG9m
IGZvcndhcmQtZGVjbGFyZWQgY2xhc3Nlcy4gUmVtb3ZlZCBkdXBsaWNhdGUKKyAgICAgICAgZm9y
d2FyZCBkZWNsYXJhdGlvbiBvZiBTY3JpcHRNb2R1bGVMb2FkZXIuCisKKyAgICAgICAgKiBkb20v
UGVuZGluZ1NjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nU2NyaXB0OjpjcmVh
dGUpOiBUYWtlIGEgU2NyaXB0RWxlbWVudCBpbnN0ZWFkIG9mIGFuIEVsZW1lbnQuCisgICAgICAg
IChXZWJDb3JlOjpQZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpQZW5kaW5nU2NyaXB0Ojpsb2FkYWJsZVNjcmlwdCk6IE1vdmVkIGlubGluZSB0
byBoZWFkZXIgYW5kIG1hZGUgaW5saW5lLgorICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ1Njcmlw
dDo6c2V0Q2xpZW50KTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgcG9pbnRlci4KKyAg
ICAgICAgKiBkb20vUGVuZGluZ1NjcmlwdC5oOiBVUGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgor
CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdCk6IFBhc3MgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBh
IHBvaW50ZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpyZWYpOiBBZGRlZC4g
Rm9yd2FyZHMgcmVmL2RlcmVmIHRvIHRoZSB1bmRlcmx5aW5nIGVsZW1lbnQKKyAgICAgICAgc28g
d2UgY2FuIHVzZSBSZWYgYW5kIFJlZlB0ciB3aXRoIHRoaXMgY2xhc3MuCisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRFbGVtZW50OjpkZXJlZik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6aXNT
Y3JpcHRFbGVtZW50KTogQWRkZWQuIFJlcGxhY2VzIG9uZSBvZiB0aGUgdHdvIHVzZXMgb2YKKyAg
ICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSwgYW5kIGlzIHNpbWlsYXIgaW4gc3R5bGUg
dG8gaXM8RWxlbWVudD4uCisgICAgICAgIChXZWJDb3JlOjpkb3duY2FzdFNjcmlwdEVsZW1lbnQp
OiBEaXR0bywgYnV0IGZvciBkb3duY2FzdC4KKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5o
OiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9yRXhl
Y3V0aW9uKTogVGFrZSByZWZlcmVuY2UgcmF0aGVyIHRoYW4KKyAgICAgICAgcG9pbnRlciwgYW5k
IHBhc3MgU2NyaXB0RWxlbWVudCByYXRoZXIgdGhhbiBFbGVtZW50LgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0UnVubmVyOjpub3RpZnlGaW5pc2hlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKTogRGl0dG8uCisgICAgICAgICogZG9tL1Njcmlw
dFJ1bm5lci5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmZpbGVz
KTogVXBkYXRlZCBzaW5jZSBtX2ZpbGVMaXN0IGlzIGEgUmVmLgorICAgICAgICAoV2ViQ29yZTo6
RmlsZUlucHV0VHlwZTo6Y3JlYXRlRmlsZUxpc3QpOiBVcGRhdGVkIHRvIHJldHVybiBhIFJlZiBp
bnN0ZWFkIG9mCisgICAgICAgIGEgUGFzc1JlZlB0ci4gQWxzbyB1c2UgcmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eS91bmNoZWNrZWRBcHBlbmQuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBl
OjpyZXF1ZXN0SWNvbik6IFVwZGF0ZWQgc2luY2UgdGhlIHVwZGF0ZVJlbmRlcmluZworICAgICAg
ICBmdW5jdGlvbiBpcyBub3cgY2FsbGVkIGljb25Mb2FkZWQuIEFsc28gdXNlIHJlZmVyZW5jZXMg
aW5zdGVhZCBvZiBwb2ludGVycy4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OnNl
dEZpbGVzKTogVGFrZSBhIFJlZlB0ciYmIGluc3RlZCBvZiBhIFBhc3NSZWZQdHIuCisgICAgICAg
IEFsc28gcHV0IHNvbWUgY29uZGl0aW9uYWwgY29kZSBpbnNpZGUgYW4gI2lmLgorICAgICAgICAo
V2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4pOiBVcGRhdGVkIGZvciBmdW5jdGlv
biBuYW1lIGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6Omljb25Mb2Fk
ZWQpOiBSZW5hbWVkIGZyb20gdXBkYXRlUmVuZGVyaW5nLgorICAgICAgICBDaGFuZ2VkIGFyZ3Vt
ZW50IHRvIFJlZlB0ciYmIGZyb20gUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJ
bnB1dFR5cGU6OmRlZmF1bHRUb29sVGlwKTogR290IHJpZCBvZiB1bm5lZWRlZCBsb2NhbCB2YXJp
YWJsZQorICAgICAgICBhbmQgdXNlZCB0aGUgY29ycmVjdCB0eXBlLCB1bnNpZ25lZCwgcmF0aGVy
IHRoYW4gc2l6ZV90LgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5oOiBVcGRhdGVkIGZv
ciB0aGUgYWJvdmUgY2hhbmdlcywgdXNlIGZpbmFsIGluc3RlYWQKKyAgICAgICAgb2Ygb3ZlcnJp
ZGUsIGFuZCB1c2UgUmVmIGluc3RlYWQgb2YgUmVmUHRyLgorCisgICAgICAgICogaHRtbC9IVE1M
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6Zm9ybSk6IFJlbmFt
ZWQgZnJvbSB2aXJ0dWFsRm9ybS4KKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6IFJlcGxh
Y2VkIHRoZSBmb3JtL3ZpcnR1YWxGb3JtIHBhaXIgb2YgZnVuY3Rpb25zIHdpdGgKKyAgICAgICAg
anVzdCBhIGZvcm0gZnVuY3Rpb24uIFRoZSBvbGQgZGVzaWduIGRhdGVzIGJhY2sgYmVmb3JlIHdl
IGhhZCAiZmluYWwiIGZvcgorICAgICAgICB2aXJ0dWFsIGZ1bmN0aW9ucywgYW5kIG5vdyB3ZSBj
YW4ganVzdCB1c2UgdGhhdCBpbnN0ZWFkLgorCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OnZpcnR1YWxGb3JtKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuaDogTWFyayB0aGUgZm9ybSBmdW5jdGlvbiBmaW5hbCwgc2luY2UgaXQncworICAgICAg
ICBub3cgYm90aCBhbiBpbmxpbmUgZnVuY3Rpb24gaW4gdGhpcyBjbGFzcywgYW5kIGFuIG92ZXJy
aWRlIG9mIGEgdmlydHVhbAorICAgICAgICBmdW5jdGlvbiBpbmhlcml0ZWQgZnJvbSB0aGUgYmFz
ZSBjbGFzcy4gRGVsZXRlZCB0aGUgdmlydHVhbEZvcm0gZnVuY3Rpb24uCisKKyAgICAgICAgKiBo
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6IFJlbW92ZWQgdXNlIG9mIHRoZQorICAgICAgICBm
b3JtRm9yU3VibWlzc2lvbiBmdW5jdGlvbiwgd2hpY2ggd2FzIGp1c3QgYW5vdGhlciB3YXkgdG8g
Z2V0IHRoZSBzYW1lCisgICAgICAgIHRoaW5nIGFzIHRoZSBmb3JtIGZ1bmN0aW9uOyBwZXJoYXBz
IHRoZXkgd2VyZSBkaWZmZXJlbnQgaW4gdGhlIHBhc3QuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50OjpzZXRGaWxlcyk6IFRha2UgYSBSZWZQdHImJiByYXRoZXIgdGhhbiBhIFBh
c3NSZWZQdHIuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6IFVwZGF0ZWQgZm9y
IHRoZSBhYm92ZS4KKworICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9sKTogTWFkZSB0aGlzIGNvbnN0
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTExhYmVsRWxlbWVudDo6Zm9ybSk6IE1hZGUgdGhpcyBj
b25zdCwgc28gaXQgY2FuIGJlIHVzZWQgdG8KKyAgICAgICAgb3ZlcnJpZGUgdGhlIGNvbnN0IGZv
cm0gZnVuY3Rpb24gZnJvbSB0aGUgYmFzZSBjbGFzcy4KKyAgICAgICAgKiBodG1sL0hUTUxMYWJl
bEVsZW1lbnQuaDogTWFya2VkIHRoZSBmb3JtIGZ1bmN0aW9uIGZpbmFsLCBzaW5jZSB3ZSB3YW50
IGl0CisgICAgICAgIHRvIG92ZXJyaWRlIHRoZSBmb3JtIGZ1bmN0aW9uIGluaGVyaXRlZCBmcm9t
IEhUTUxFbGVtZW50LgorCisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTGVnZW5kRWxlbWVudDo6Zm9ybSk6IFJlbmFtZWQgZnJvbSB2
aXJ0dWFsRm9ybS4KKyAgICAgICAgKiBodG1sL0hUTUxMZWdlbmRFbGVtZW50Lmg6IE92ZXJyaWRl
IGZvcm0gaW5zdGVhZCBvZiB2aXJ0dWFsRm9ybSBhbmQgbWFyayBpdCBmaW5hbAorICAgICAgICBU
aGlzIG1ha2VzIHRoaW5ncyBtb3JlIGVmZmljaWVudCBpZiBzb21lb25lIGNhbGxzIGZvcm0gZGly
ZWN0bHkgb24gdGhpcyBjbGFzczsKKyAgICAgICAgYmVmb3JlIGl0IHdvdWxkIG1ha2UgYW4gdW5u
ZWNlc3NhcnkgdmlydHVhbCBmdW5jdGlvbiBjYWxsLgorCisgICAgICAgICogaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrRGlzcGxheVVwZGF0ZVNjb3Bl
OjpUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSk6IFRha2UgYSByZWZlcmVuY2UKKyAgICAgICAgcmF0
aGVyIHRoYW4gYSBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tEaXNwbGF5VXBkYXRl
U2NvcGU6On5UcmFja0Rpc3BsYXlVcGRhdGVTY29wZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6ZXZlbnRUaW1lQ3VlQ29tcGFyZSk6IENvbXBhcmUgdGhlIGN1ZXMgdGhlIHNhbWUgd2F5IHRo
ZSBjdWUgbGlzdCB3b3VsZAorICAgICAgICByYXRoZXIgdGhhbiB1c2luZyBjdWVJbmRleC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdl
ZCk6IFRha2UgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
Ojp0ZXh0VHJhY2tNb2RlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlbW92
ZUN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRU
cmFja0FkZEN1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
dGV4dFRyYWNrUmVtb3ZlQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjptZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJhY2spOiBQYXNzIHJlZmVyZW5jZXMuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckRpZEFkZFRleHRU
cmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQ
bGF5ZXJEaWRBZGRWaWRlb1RyYWNrKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjpyZW1vdmVUZXh0VHJhY2spOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OmZvcmdldFJlc291cmNlU3BlY2lmaWNUcmFja3MpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldENvbnRyb2xsZXIpOiBUYWtlIGEg
UmVmUHRyJiYgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlh
RWxlbWVudC5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVu
dDo6dmlydHVhbEZvcm0pOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1l
bnQuaDogTWFkZSB0aGUgZm9ybSBmdW5jdGlvbiBpbmxpbmUgYW5kIGZpbmFsLCB3aGljaAorICAg
ICAgICBhY2hpZXZlcyB0aGUgc2FtZSB0aGluZyB3ZSBkaWQgYmVmb3JlIHdpdGggdXNpbmcsIGJ1
dCB3aXRob3V0IHJlcXVpcmluZyB0aGUKKyAgICAgICAgc2VwYXJhdGUgdmlydHVhbEZvcm0gZnVu
Y3Rpb24sIG5vdyBkZWxldGVkLgorCisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvbklu
bmVyVGV4dCk6IFVzZSBpc1NjcmlwdEVsZW1lbnQKKyAgICAgICAgaW5zdGVhZCBvZiB0b1Njcmlw
dEVsZW1lbnRJZlBvc3NpYmxlLgorCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6YmluZGluZ3NJbnN0YW5j
ZSk6IFJlbmFtZWQgZnJvbSBnZXRJbnN0YW5jZSBhbmQKKyAgICAgICAgY2hhbmdlZCB0aGUgcmV0
dXJuIHR5cGUgdG8gYSByYXcgcG9pbnRlci4KKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5FbGVt
ZW50Lmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZSBjaGFuZ2VzLiBBbHNvIGNoYW5nZWQgdGhlCisg
ICAgICAgIHVwZGF0ZVNuYXBzaG90IGZ1bmN0aW9uIHRvIHRha2UgYSByYXcgcG9pbnRlciBpbnN0
ZWFkIG9mIGEgUGFzc1JlZlB0ci4KKworICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIpOiBQYXNzIGEgcG9pbnRlcgorICAgICAgICB0byB1cGRhdGVTbmFw
c2hvdC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnVwZGF0ZVNu
YXBzaG90KTogVXBkYXRlZCB0byB0YWtlIGEgcmF3CisgICAgICAgIHBvaW50ZXIgaW5zdGVhZCBv
ZiBhIFBhc3NSZWZQdHIuCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg6
IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRF
bGVtZW50Lmg6IEFkZGVkIHVzaW5nIHRvIHJlc29sdmUgdGhlIGFtYmlndWl0eSB3aXRoIHRoZQor
ICAgICAgICByZWYvZGVyZWYgZnJvbSBIVE1MRWxlbWVudCBhbmQgZnJvbSBTY3JpcHRFbGVtZW50
LgorCisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0aW9uKTogUmV0
dXJuIGEgUmVmUHRyIGluc3RlYWQKKyAgICAgICAgb2YgYSBQYXNzUmVmUHRyLgorICAgICAgICAq
IGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hh
bmdlcy4KKworICAgICAgICAqIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tLaW5kQ2hhbmdlZCk6IFRha2UgYSBy
ZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tN
b2RlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6
dGV4dFRyYWNrQWRkQ3Vlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxl
bWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3Vlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUpOiBEaXR0by4KKyAgICAgICAg
KiBodG1sL0hUTUxUcmFja0VsZW1lbnQuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKwor
ICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlw
ZTo6Zm9ybUZvclN1Ym1pc3Npb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRU
eXBlOjpzZXRGaWxlcyk6IFRha2UgYSBSZWZQdHImJiBpbnN0ZWFkIG9mIGEgUGFzc1JlZlB0ci4K
KyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgor
CisgICAgICAgICogaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
bHVnaW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUpOiBQYXNzIGEgcmVm
ZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRG9jdW1lbnQ6OnNldFBsdWdpbkVsZW1l
bnQpOiBUYWtlIGEgcmVmZXJlbmNlIHJhdGhlciB0aGFuCisgICAgICAgIGEgUGFzc1JlZlB0ci4K
KyAgICAgICAgKiBodG1sL1BsdWdpbkRvY3VtZW50Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5n
ZXMuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRTdHJva2VT
dHlsZSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OnNldEZpbGxTdHlsZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKTogRGl0dG8uCisKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52
YXNTdHlsZTo6Q2FudmFzU3R5bGUpOiBSZXdyaXRlIGFsbCBjb25zdHJ1Y3RvcnMgdG8gdXNlIHRo
ZQorICAgICAgICBtX3N0eWxlIHZhcmlhbnQgaW5zdGVhZCBvZiBzZXBhcmF0ZSBtX3R5cGUgYW5k
IG90aGVyIGRhdGEgbWVtYmVycy4gQWxzbworICAgICAgICBjaGFuZ2UgZnJvbSBQYXNzUmVmUHRy
IHRvIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmNyZWF0ZUZy
b21TdHJpbmcpOiBVcGRhdGUgdG8gdXNlIHRoZSB2YXJpYW50LgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzU3R5bGU6OmNyZWF0ZUZyb21TdHJpbmdXaXRoT3ZlcnJpZGVBbHBoYSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmlzRXF1aXZhbGVudENvbG9yKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHlsZTo6aXNFcXVpdmFsZW50UkdCQSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmlzRXF1aXZhbGVudENNWUtBKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUpOiBEZWxldGVk
IGNvcHkgY29uc3RydWN0b3I7IHRoZSBjb21waWxlcgorICAgICAgICBjYW4gbm93IGdlbmVyYXRl
IGEgY29ycmVjdCBjb3B5IG9yIG1vdmUgY29uc3RydWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpD
YW52YXNTdHlsZTo6fkNhbnZhc1N0eWxlKTogRGVsZXRlZC4gQ29tcGlsZXIgZ2VuZXJhdGVzIHRo
aXMKKyAgICAgICAgcHJvcGVybHkgbm93IHdpdGhvdXQgaGVscCBmcm9tIHVzLgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzU3R5bGU6Om9wZXJhdG9yPSk6IERlbGV0ZWQuIFRoZSBjb21waWxlciBj
YW4gbm93IGdlbmVyYXRlCisgICAgICAgIGEgY29ycmVjdCBjb3B5IG9mIG1vdmUgYXNzaWdubWVu
dCBvcGVyYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjphcHBseVN0cm9rZUNv
bG9yKTogVXBkYXRlZCB0byB0YWtlIGEgcmVmZXJlbmNlIGFuZAorICAgICAgICB1c2UgdGhlIHZh
cmlhbnQuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHlsZTo6YXBwbHlGaWxsQ29sb3IpOiBE
aXR0by4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmg6IFJlZGlkIHRoaXMg
Y2xhc3MgdG8gdXNlIGEgdmFyaWFudCBpbnN0ZWFkIG9mCisgICAgICAgIGEgdHlwZSBlbnVtZXJh
dGlvbiBhbmQgYSB1bmlvbi4KKworICAgICAgICAqIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9FU1ZlcnRleEFycmF5T2JqZWN0OjpjcmVh
dGVWZXJ0ZXhBcnJheU9FUyk6IFVwZGF0ZWQgdXNlIG9mIGVudW0KKyAgICAgICAgc2luY2UgaXQn
cyBub3cgYW4gZW51bSBjbGFzcy4KKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRl
cmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dCk6IFVzZSBSZWYmJiBpbnN0ZWFkIG9mCisgICAgICAg
IFJlZlB0ciYmIGZvciB0aGUgR3JhcGhpY3NDb250ZXh0M0QuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplVmVydGV4QXJyYXlPYmplY3RzKTogVXBk
YXRlZCBlbnVtCisgICAgICAgIGFuZCBhbHNvIHVzZSByZWZlcmVuY2VzLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIp
OiBVc2UgbnVsbHB0ciB0bworICAgICAgICByZXR1cm4gbnVsbCByYXRoZXIgdGhhbiB0aGUgb2xk
IGlkaW9tIChkZWZhdWx0LWNvbnN0cnVjdGVkIFdlYkdMR2V0SW5mbykuCisgICAgICAgIChXZWJD
b3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdG9yYWdlMkQpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5UGFyYW1ldGVyKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRTYW1w
bGVyUGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpnZXRTeW5jUGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtQmxvY2tQ
YXJhbWV0ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVZlcnRleEFycmF5KTogVXBkYXRlZCBlbnVt
IGFuZCBhbHNvCisgICAgICAgIHVzZSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24pOiBSZWFycmFuZ2VkIGxvZ2ljIGluIHRo
cmVlIHdheXM6CisgICAgICAgICgxKSBNb3ZlZCBjaGVja3MgZm9yIHdoZXRoZXIgYW4gZXh0ZW5z
aW9uIGlzIHN1cHBvcnRlZCBpbnNpZGUgdGhlIGNhc2UgZm9yIHRoYXQKKyAgICAgICAgZXh0ZW5z
aW9uLCByYXRoZXIgdGhhbiBjb21iaW5pbmcgdGhlIGV4dGVuc2lvbiBuYW1lIGNoZWNrIHdpdGgg
dGhlIGV4dGVuc2lvbnMKKyAgICAgICAgZW5hYmxlZCBjaGVjay4gKDIpIFVzZWQgdGhlIG5ldyBl
bmFibGVTdXBwb3J0ZWRFeHRlbnNpb24gZnVuY3Rpb24gdG8gc2ltcGxpZnkKKyAgICAgICAgbWFu
eSBvZiB0aGUgY2hlY2tzIHRvIGF2b2lkIHJlcGVhdGluZyB0aGUgZXh0ZW5zaW9uIG5hbWUgdHdp
Y2UuICgzKSBDaGFuZ2VkIHRoZQorICAgICAgICBpZGlvbSBzbyB3ZSBzZXQgdGhlIHBvaW50ZXJz
IHRvIG51bGxwdHIgZXhwbGljaXRseSwgcHJlcGFyaW5nIGZvciBhIGZ1dHVyZSB3aGVyZQorICAg
ICAgICB3ZSBtaWdodCBtYWtlIHRoZSBleHRlbnNpb24gcG9pbnRlcnMgdXNlIHN0ZDo6b3B0aW9u
YWwgc28gd2UgY2FuIGNhY2hlIGEgbmVnYXRpdmUKKyAgICAgICAgZm9yIGVhY2ggZXh0ZW5zaW9u
IHRvbywgbm90IGp1c3QgYSBwb3NpdGl2ZSByZXN1bHQuCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKTogVXNlIEFTQ0lJTGl0
ZXJhbC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcik6IFVzZSBudWxscHRyCisgICAgICAgIGFzIGFib3Zl
LiBGb3Igbm9uLW51bGwgdHlwZXMsIHJldHVybiB0aGUgb2JqZWN0IHdpdGhvdXQgY29udmVydGlu
ZywgbGV0dGluZyB0aGUKKyAgICAgICAgV2ViR0xBbnkgY2xhc3MgaGFuZGxlIHRoaW5ncywgZXhj
ZXB0IGZvciBlbnVtZXJhdGlvbnMsIHdoaWNoIHdlIG5lZWQgdG8gZXhwbGljaXRseQorICAgICAg
ICBzdGF0aWNfY2FzdCB0byBhbiBpbnRlZ3JhbCB0eXBlLCBhbmQgdGhpbmdzIHRoYXQgd2lsbCBi
ZSBzdG9yZWQgaW4gdGhlIHZhcmlhbnQgaW4KKyAgICAgICAgYSBSZWZQdHIsIHdoZXJlIHdlIHVz
ZSBtYWtlUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
dmFsaWRhdGVGcmFtZWJ1ZmZlckZ1bmNQYXJhbWV0ZXJzKToKKyAgICAgICAgU2ltcGxpZmllZCBh
bmQgY2xhcmlmaWVkIHRoZSBoYW5kbGluZyBvZiBDT0xPUl9BVFRBQ0hNRU5ULgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKTogUmV0dXJuIFdl
YkdMQW55LCBzYW1lIGlkaW9tIGFzCisgICAgICAgIGRlc2NyaWJlZCBhYm92ZSBmb3IgZ2V0RnJh
bWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMQW55LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0
b0pTKTogSGFuZGxlcyBjb252ZXJzaW9uIHRvIEphdmFTY3JpcHQgdHlwZXMuIFRoaXMgZnVuY3Rp
b24gaXMgYmFzZWQKKyAgICAgICAgb24gdGhlIGV4aXN0aW5nIHRvSlMgZnVuY3Rpb25zIGZyb20g
dGhlIHR3byBjbGFzc2VzIHRoYXQgd2VyZSB1c2luZyBXZWJHTEdldEluZm8uCisgICAgICAgIEV2
ZW50dWFsbHkgd2UgY2FuIHByb2JhYmx5IGp1c3QgZ2V0IHRoZSBiaW5kaW5ncyB0byBhdXRvbWF0
aWNhbGx5IGdlbmVyYXRlIHRoaXMsCisgICAgICAgIGJ1dCB0aGVyZSBpcyBzb21lIHdvcmsgdG8g
ZG8gdG8gZ2V0IHRvIHRoYXQgcG9pbnQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xBbnku
aDogQWRkZWQuIFRoaXMgdHlwZSwgYSB2YXJpYW50LCByZXBsYWNlcyB0aGUgV2ViR0xHZXRJbmZv
CisgICAgICAgIGNsYXNzLiBBbHNvIGluY2x1ZGVzIHRoZSB0b0pTIGZ1bmN0aW9uLCB3aGljaCBp
cyB0aGUgcmVhbCBwb2ludCBvZiB0aGlzIHR5cGUsIHNpbmNlCisgICAgICAgIGl0J3MgYWJvdXQg
cmV0dXJuaW5nIGEgdmFyaWFudCBtYXBwZWQgYXBwcm9wcmlhdGVseSB0byBKYXZhU2NyaXB0IHR5
cGVzLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0R3JvdXA6OmdldEFHcmFwaGljc0NvbnRleHQzRCk6
IENoYW5nZWQgdG8gcmV0dXJuIGEgcmVmZXJlbmNlLgorICAgICAgICBEcm9wZWQgdW5uZWNlc3Nh
cnkgbG9jYWwgdmFyaWFibGUgd2l0aCBhIGxvbmcgdHlwZSBuYW1lLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xDb250ZXh0R3JvdXA6OmFkZENvbnRleHQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0R3JvdXA6OnJlbW92ZUNvbnRleHQpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjpyZW1vdmVPYmplY3QpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjphZGRPYmplY3QpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjpkZXRhY2hBbmRSZW1vdmVB
bGxPYmplY3RzKTogRHJvcHBlZCB1bm5lY2Vzc2FyeQorICAgICAgICBsb2NhbCB2YXJpYWJsZSB3
aXRoIGEgbG9uZyB0eXBlIG5hbWUuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
R3JvdXAuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRl
eHRPYmplY3Q6On5XZWJHTENvbnRleHRPYmplY3QpOiBQYXNzIHJlZmVyZW5jZXMuCisgICAgICAg
IChXZWJDb3JlOjpXZWJHTENvbnRleHRPYmplY3Q6OmRldGFjaENvbnRleHQpOiBEaXR0by4KKwor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmg6IFJlbW92ZWQuCisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQpOiBUYWtlIGEgUmVmJiYg
aW5zdGVhZAorICAgICAgICBvZiBhcyBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplVmVydGV4QXJyYXlPYmplY3RzKTogVXBkYXRl
ZCBlbnVtCisgICAgICAgIGFuZCBhbHNvIHVzZSByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24pOiBSZWFycmFuZ2VkIGxvZ2lj
IGluIHRocmVlIHdheXM6CisgICAgICAgICgxKSBNb3ZlZCBjaGVja3MgZm9yIHdoZXRoZXIgYW4g
ZXh0ZW5zaW9uIGlzIHN1cHBvcnRlZCBpbnNpZGUgdGhlIGNhc2UgZm9yIHRoYXQKKyAgICAgICAg
ZXh0ZW5zaW9uLCByYXRoZXIgdGhhbiBjb21iaW5pbmcgdGhlIGV4dGVuc2lvbiBuYW1lIGNoZWNr
IHdpdGggdGhlIGV4dGVuc2lvbnMKKyAgICAgICAgZW5hYmxlZCBjaGVjay4gKDIpIFVzZWQgdGhl
IG5ldyBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24gZnVuY3Rpb24gdG8gc2ltcGxpZnkKKyAgICAg
ICAgbWFueSBvZiB0aGUgY2hlY2tzIHRvIGF2b2lkIHJlcGVhdGluZyB0aGUgZXh0ZW5zaW9uIG5h
bWUgdHdpY2UuICgzKSBDaGFuZ2VkIHRoZQorICAgICAgICBpZGlvbSBzbyB3ZSBzZXQgdGhlIHBv
aW50ZXJzIHRvIG51bGxwdHIgZXhwbGljaXRseSwgcHJlcGFyaW5nIGZvciBhIGZ1dHVyZSB3aGVy
ZQorICAgICAgICB3ZSBtaWdodCBtYWtlIHRoZSBleHRlbnNpb24gcG9pbnRlcnMgdXNlIHN0ZDo6
b3B0aW9uYWwgc28gd2UgY2FuIGNhY2hlIGEgbmVnYXRpdmUKKyAgICAgICAgZm9yIGVhY2ggZXh0
ZW5zaW9uIHRvbywgbm90IGp1c3QgYSBwb3NpdGl2ZSByZXN1bHQuCisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnMpOiBVc2UgQVND
SUlMaXRlcmFsLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIpOiBVc2UgbnVsbHB0cgorICAgICAgICBhcyBh
Ym92ZS4gRm9yIG5vbi1udWxsIHR5cGVzLCByZXR1cm4gdGhlIG9iamVjdCB3aXRob3V0IGNvbnZl
cnRpbmcsIGxldHRpbmcgdGhlCisgICAgICAgIFdlYkdMQW55IGNsYXNzIGhhbmRsZSB0aGluZ3Ms
IGV4Y2VwdCBmb3IgZW51bWVyYXRpb25zLCB3aGljaCB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkKKyAg
ICAgICAgc3RhdGljX2Nhc3QgdG8gYW4gaW50ZWdyYWwgdHlwZSwgYW5kIHRoaW5ncyB0aGF0IHdp
bGwgYmUgc3RvcmVkIGluIHRoZSB2YXJpYW50IGluCisgICAgICAgIGEgUmVmUHRyLCB3aGVyZSB3
ZSB1c2UgbWFrZVJlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dDo6dmFsaWRhdGVGcmFtZWJ1ZmZlckZ1bmNQYXJhbWV0ZXJzKToKKyAgICAgICAgU2ltcGxpZmll
ZCBhbmQgY2xhcmlmaWVkIHRoZSBoYW5kbGluZyBvZiBDT0xPUl9BVFRBQ0hNRU5UIGFkZGluZyBh
IEZJWE1FIGFib3V0CisgICAgICAgIHNvbWV0aGluZyBxdWVzdGlvbmFibGUuCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcik6IFJldHVybiBXZWJH
TEFueSwgc2FtZSBpZGlvbSBhcworICAgICAgICBkZXNjcmliZWQgYWJvdmUgZm9yIGdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlci4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKTogVXBkYXRlZCB0byBwYXNz
IHJlZmVyZW5jZXMKKyAgICAgICAgaW5zdGVhZCBvZiBwb2ludGVycyBpbiBhIGNvdXBsZSBjYXNl
cworICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSk6IENoYW5nZWQgZ3JhcGhpY3MKKyAgICAgICAgY29udGV4dCBhcmd1
bWVudCB0eXBlIGZyb20gUmVmUHRyJiYgdG8gUmVmJiYuIEFsc28gbW92ZWQgaW5pdGlhbGl6YXRp
b24gb2Ygc2NhbGFycworICAgICAgICBmcm9tIHRoZSBjb25zdHJ1Y3RvciB0byB0aGUgY2xhc3Mg
ZGVmaW5pdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
On5XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZUJ1ZmZlcik6IFBhc3Mg
YSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVGcmFtZWJ1ZmZlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlVGV4dHVyZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRl
UHJvZ3JhbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6Y3JlYXRlUmVuZGVyYnVmZmVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVTaGFkZXIpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZUJ1ZmZlcik6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVyUGFy
YW1ldGVyKTogVXBkYXRlIHRvIHVzZSBXZWJHTEFueS4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJhbWV0ZXIpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRlcmJ1ZmZlclBh
cmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6Z2V0U2hhZGVyUGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0pOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0
dHJpYik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Z2V0VmVydGV4QXR0cmliT2Zmc2V0KTogUmVtb3ZlZCB1bm5uZWVkCisgICAgICAgIHR5cGUg
Y2FzdHMuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0
ZXhBdHRyaWJQb2ludGVyKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlbW92ZVNoYXJlZE9iamVjdCk6IFRha2UgYSByZWZl
cmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphZGRT
aGFyZWRPYmplY3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OnJlbW92ZUNvbnRleHRPYmplY3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZENvbnRleHRPYmplY3QpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJvb2xlYW5QYXJh
bWV0ZXIpOiBDaGFuZ2VkIHJldHVybiB0eXBlOworICAgICAgICBjb25udmVyc2lvbiB0byBXZWJH
TEFueSBjYW4gaGFwcGVuIGF0IHRoZSBwb2ludCBvZiB1c2UuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEZsb2F0
UGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRJbnRQYXJhbWV0ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuc2lnbmVkSW50UGFyYW1ldGVyKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRJbnQ2NFBhcmFt
ZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Z2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxp
ZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0ZXJzKTogVXNlCisgICAgICAgIG9wdGlvbmFsIHRvIHNpbXBs
aWZ5IGxvZ2ljIGFuZCBnZXQgcmlkIG9mIGEgYm9vbGVhbi4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbik6IEFkZGVk
LgorICAgICAgICBIZWxwZXIgdXNlZCBieSB0aGUgZ2V0RXh0ZW5zaW9uIGZ1bmN0aW9ucy4KKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZSBjaGFuZ2VzLgorICAgICAgICBBbHNvIGNoYW5nZWQgc2V0Qm91bmRWZXJ0
ZXhBcnJheU9iamVjdCB0byB0YWtlIGEgcmF3IHBvaW50ZXIgaW5zdGVhZCBvZgorICAgICAgICBh
cyBQYXNzUmVmUHRyLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTaGFyZWRPYmplY3Q6On5XZWJHTFNoYXJlZE9i
amVjdCk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYXJlZE9i
amVjdDo6ZGV0YWNoQ29udGV4dEdyb3VwKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFNoYXJlZE9iamVjdDo6Z2V0QUdyYXBoaWNzQ29udGV4dDNEKTogVXBkYXRlZCBzaW5jZSB0aGUK
KyAgICAgICAgdW5kZXJseWluZyBnZXRBR3JhcGhpY3NDb250ZXh0M0QgZnVuY3Rpb24gbm93IHJl
dHVybnMgYSByZWZlcmVuY2UuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9i
amVjdC5oOiBSZW1vdmVkIG1hbnkgdW51c2VkICJpcyIgdmlydHVhbCBmdW5jdGlvbnMuCisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oOiBEaXR0by4KKworICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlKTogVXBkYXRlZCBmb3IgbmV3
IHR5cGUgZW51bWVyYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFZlcnRleEFycmF5T2JqZWN0OjpkZWxldGVPYmplY3RJbXBsKTogRGl0dG8uCisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oOiBVcGRhdGVkIGZvciBhYm92
ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6
OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKTogVXBkYXRlZCBmb3IgbmV3CisgICAgICAgIHR5
cGUgZW51bWVyYXRpb24gYW5kIG1vdmVkIGluaXRpYWxpemF0aW9uIHRvIGNsYXNzIGRlZmluaXRp
b24uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0RWxl
bWVudEFycmF5QnVmZmVyKTogQ2hhbmdlZCBhcmd1bWVudCB0bworICAgICAgICByYXcgcG9pbnRl
ciBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFy
cmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4QXR0cmliU3RhdGUpOiBDaGFuZ2VkIGFyZ3VtZW50IHRv
CisgICAgICAgIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKTogQ2hhbmdlZCBh
cnVnbWVudCB0eXBlIHRvCisgICAgICAgIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIu
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4
QXR0cmliRGl2aXNvcik6IFJlbW92ZWQgdW5uZWVkZWQKKyAgICAgICAgbG9jYWwgdmFyaWFibGUu
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaDogVXBk
YXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKyAgICAgICAgUmVwbGFjZWQgVkFPVHlwZSB3aXRoIFR5
cGUuIFVzZWQgY2xhc3MgbWVtYmVyIGluaXRpYWxpemF0aW9uLgorCisgICAgICAgICogaHRtbC9j
YW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUpOiBVcGRhdGVkIGZvciBuZXcgdHlwZSBl
bnVtZXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6
OldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVM6On5XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKSBEaXR0
by46CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpkZWxldGVP
YmplY3RJbXBsKTogRGl0dG8uCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdE9FUy5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRt
bC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSWNvbkxv
YWRlcjo6aWNvbkxvYWRlZCk6IFJlbmFtZWQgZnJvbSBub3RpZnlGaW5pc2hlZC4gQWxzbyBjaGFu
Z2VkCisgICAgICAgIHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiB0aGlzIGNhbGxzIHRvIGljb25M
b2FkZWQuIENoYW5nZWQgdGhlIGFyZ3VlbW50IHRvCisgICAgICAgIFJlZlB0ciYmIGluc3RlYWQg
b2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBodG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmg6IFVw
ZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MQ29u
c3RydWN0aW9uU2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0
ZTo6YXR0YWNoTGF0ZXIpOiBVc2UgaXNTY3JpcHRFbGVtZW50IGluc3RlYWQgb2YKKyAgICAgICAg
dG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjppbnNlcnRGb3JlaWduRWxlbWVudCk6IERpdHRvLgorCisgICAgICAgICogaHRt
bC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxE
b2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVCdWlsZGVyKTogUGFzcyBzY3Jp
cHQKKyAgICAgICAgZWxlbWVudCBhcyBhIFJlZiByYXRoZXIgdGhhbiBSZWZQdHIuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OndhdGNoRm9yTG9hZCk6IFBhc3MgYSByZWZl
cmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1M
U2NyaXB0UnVubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OmV4
ZWN1dGVQYXJzaW5nQmxvY2tpbmdTY3JpcHQpOiBEZWxldGVkLiBNb3ZlZCB0aGUgY29kZQorICAg
ICAgICBpbnRvIHRoZSBzaW5nbGUgY2FsbCBzaXRlLCBleGVjdXRlIFBhcnNpbmdCbG9ja2luZ1Nj
cmlwdHMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlUGVuZGlu
Z1NjcmlwdEFuZERpc3BhdGNoRXZlbnQpOiBDaGFuZ2VkIGFyZ3VtZW50CisgICAgICAgIHR5cGUg
dG8gYSByZWZlcmVuY2UgZnJvbSBhIFJlZlB0cjsgdGhpcyBmdW50aW9uIHdhcyBub3QgdGFraW5n
IG93bmVyc2hpcC4gQWxzbyByZW1vdmUKKyAgICAgICAgY2FsbCB0byB0b1NjcmlwdEVsZW1lbnRJ
ZlBvc3NpYmxlLAorICAgICAgICBzaW5jZSBwZW5kaW5nIHNjcmlwdHMgbm93IGNvbnRhaW5zIHNj
cmlwdCBlbGVtZW50cyBhbHJlYWR5LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdFJ1bm5l
cjo6ZXhlY3V0ZSk6IENoYW5nZWQgYXJndW1lbnQgdHlwZSB0byBSZWY8U2NyaXB0RWxlbWVudD4m
JgorICAgICAgICBmcm9tIFBhc3NSZWZQdHI8RWxlbWVudD4uCisgICAgICAgIChXZWJDb3JlOjpI
VE1MU2NyaXB0UnVubmVyOjpleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0cyk6IE1vdmVkIGNv
ZGUgaGVyZSBmcm9tCisgICAgICAgIGV4ZWN1dGVQYXJzaW5nQmxvY2tpbmdTY3JpcHQuIEFsc28g
cGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OmV4
ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclBhcnNpbmcpOiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAg
ICAoV2ViQ29yZTo6cmVxdWVzdFBlbmRpbmdTY3JpcHQpOiBDaGFuZ2VkIGFyZ3VtZW50IHR5cGUg
dG8gU2NyaXB0RWxlbWVudCYgZnJvbQorICAgICAgICBFbGVtZW50Ki4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3REZWZlcnJlZFNj
cmlwdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdFJ1bm5lcjo6cnVuU2Ny
aXB0KTogRGl0dG8uCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5oOiBV
cGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRy
ZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6dGFrZVNj
cmlwdFRvUHJvY2Vzcyk6IENoYW5nZWQgcmV0dXJuIHR5cGUgZnJvbQorICAgICAgICBSZWZQdHI8
RWxlbWVudD4gdG8gUmVmUHRyPFNjcmlwdEVsZW1lbnQ+LgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKTogRG93bmNhc3QgdGhlIHNjcmlwdCBlbGVtZW50
IHRvCisgICAgICAgIEhUTUxTY3JpcHRFbGVtZW50IHNvIHdlIGNhbiBzdG9yZSBpdCBhcyBhIFNj
cmlwdEVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NU
b2tlbkluRm9yZWlnbkNvbnRlbnQpOiBEb3duY2FzdCB0aGUgc2NyaXB0CisgICAgICAgIGVsZW1l
bnQgdG8gU1ZHU2NyaXB0RWxlbWVudCBzbyB3ZSBjYW4gc3RvcmUgaXQgYXMgYSBzY3JpcHQgZWxl
bWVudC4KKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaDogVXBkYXRlZCBm
b3IgYWJvdmUgY2hhbmdlcy4gQ2hhbmdlZCB0aGUgdHlwZQorICAgICAgICBvZiBtX3NjcmlwdFRv
UHJvY2VzcyB0byBSZWZQdHI8U2NyaXB0RWxlbWVudD4uCisKKyAgICAgICAgKiBodG1sL3BhcnNl
ci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwOiBBZGRlZCBub3ctbmVlZGVkIGluY2x1ZGUuCisKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6WFNTQXVkaXRvckRlbGVnYXRlOjpnZW5lcmF0ZVZpb2xhdGlvblJlcG9ydCk6IENoYW5n
ZWQgcmV0dXJuIHR5cGUKKyAgICAgICAgdG8gUmVmIGZyb20gUGFzc1JlZlB0ci4KKyAgICAgICAg
KiBodG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuaDogVXBkYXRlZCBmb3IgYWJvdmUuCisK
KyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9UcmFjazo6QXVkaW9UcmFjayk6IFRha2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvVHJhY2s6OnNldFByaXZhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvVHJhY2s6OnNldEVuYWJsZWQpOiBSZW1vdmVkIHJlZHVuZGFudCBjb2RlIHRvIGRvIHdoYXQg
dGhlCisgICAgICAgIHByaXZhdGUgc2V0RW5hYmxlZCBmdW5jdGlvbiBpcyBhbHJlYWR5IGdvaW5n
IHRvIGRvLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6aW5iYW5kVHJhY2tJbmRleCk6
IFJlbW92ZWQgYXNzZXJ0aW9uIHNpbmNlIG1fcHJpdmF0ZQorICAgICAgICBpcyBub3cgYSBSZWYg
cmF0aGVyIHRoYW4gUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6ZW5hYmxl
ZENoYW5nZWQpOiBBZGRlZCBhbiBlYXJseSBleGl0IHNvIHdlIHdpbGwgb25seQorICAgICAgICBj
YWxsIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCBpZiBtX2VuYWJsZWQgaXMgYWN0dWFsbHkgY2hh
bmdpbmcuIEFsc28gcmVtb3ZlZAorICAgICAgICB0aGUgdW5uZWVkZWQgdHJhY2sgcHJpdmF0ZSBh
cmd1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmlkQ2hhbmdlZCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6bGFiZWxDaGFuZ2VkKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OndpbGxSZW1vdmUpOiBEaXR0by4KKyAgICAgICAg
KiBodG1sL3RyYWNrL0F1ZGlvVHJhY2suaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKwor
ICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKTogUmVtb3ZlZCBpbmJhbmQg
dGV4dCB0cmFjayBwcml2YXRlCisgICAgICAgIGFyZ3VtZW50LiBVc2UgY29udGFpbnMgaW5zdGVh
ZCBvZiBmaW5kL2VuZC4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZERhdGFUZXh0VHJhY2s6OnVw
ZGF0ZURhdGFDdWUpOiBEaXR0by4gVXNlIGdldCBpbnN0ZWFkIG9mIGZpbmQvZW5kLgorICAgICAg
ICAoV2ViQ29yZTo6SW5iYW5kRGF0YVRleHRUcmFjazo6cmVtb3ZlRGF0YUN1ZSk6IERpdHRvLgor
ICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oOiBVcGRhdGVkIGZvciBh
Ym92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRy
YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OkluYmFu
ZEdlbmVyaWNUZXh0VHJhY2spOiBUYWtlIHJlZmVyZW5jZXMuCisgICAgICAgIChXZWJDb3JlOjpJ
bmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnVwZGF0ZUN1ZUZyb21DdWVEYXRhKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjphZGRHZW5lcmljQ3VlKTog
RGl0dG8uIEFsc28gcmVtb3ZlZCB1bnVzZWQKKyAgICAgICAgdHJhY2sgcHJpdmF0ZSBhcmd1bWVu
dC4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnVwZGF0ZUdlbmVy
aWNDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6
OnJlbW92ZUdlbmVyaWNDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZEdlbmVy
aWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3VlRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpuZXdSZWdpb25zUGFy
c2VkKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZEdlbmVy
aWNUZXh0VHJhY2suaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0
bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRl
eHRUcmFjazo6Y3JlYXRlKTogUmV0dXJuIGEgUmVmIGluc3RlYWQgb2YgYSBQYXNzUmVmUHRyLiBU
YWtlCisgICAgICAgIHJlZmVyZW5jZXMuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJh
Y2s6OkluYmFuZFRleHRUcmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4
dFRyYWNrOjpzZXRQcml2YXRlKTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgUGFzc1Jl
ZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6aXNDbG9zZWRDYXB0aW9u
cyk6IFJlbW92ZWQgY2hlY2sgZm9yIG51bGwgc2luY2UgbV9wcml2YXRlCisgICAgICAgIGlzIG5v
dyBhIFJlZiBhbmQgc28gbmV2ZXIgbnVsbC4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRU
cmFjazo6aXNTREgpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6
Y29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJ
bmJhbmRUZXh0VHJhY2s6OmlzTWFpblByb2dyYW1Db250ZW50KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OmlzRWFzeVRvUmVhZCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjppbmJhbmRUcmFja0luZGV4KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OmluQmFuZE1ldGFkYXRhVHJhY2tEaXNwYXRj
aFR5cGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6aWRDaGFu
Z2VkKTogUmVtb3ZlZCB1bm5lZWRlZCB0cmFjayBwcml2YXRlIGFyZ3VtZW50LgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjpsYWJlbENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OndpbGxSZW1vdmUpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKTogSW1w
cm92ZWQgc3dpdGNoIHN0YXRlbWVudAorICAgICAgICBieSByZW1vdmluZyBkZWZhdWx0IHNvIHdl
IGdldCBhIHdhcm5pbmcgaWYgd2UgZm9yZ2V0IHRvIGhhbmRsZSBhIGtpbmQgdmFsdWUuCisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OnN0YXJ0VGltZVZhcmlhbmNlKTogUmVtb3Zl
ZCBjaGVjayBmb3IgbnVsbC4KKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5o
OiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLiBDaGFuZ2VkIG1fcHJpdmF0ZSBmcm9tCisgICAg
ICAgIGEgUmVmUHRyIHRvIGEgUmVmLgorCisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRXZWJW
VFRUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kV2ViVlRUVGV4dFRyYWNr
OjpJbmJhbmRXZWJWVFRUZXh0VHJhY2spOiBUYWtlIHJlZmVyZW5jZXMuCisgICAgICAgIChXZWJD
b3JlOjpJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6SW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURhdGEpOiBSZW1vdmVk
IHVubmVlZGVkIHRyYWNrCisgICAgICAgIHByaXZhdGUgYXJndWVtbnQuCisgICAgICAgIChXZWJD
b3JlOjpJbmJhbmRXZWJWVFRUZXh0VHJhY2s6Om5ld1JlZ2lvbnNQYXJzZWQpOiBQYXNzIGEgcmVm
ZXJlbmNlLgorICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmg6IFVw
ZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL3RyYWNrL0xvYWRhYmxl
VGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRhYmxlVGV4dFRyYWNrOjpuZXdD
dWVzQXZhaWxhYmxlKTogUGFzcyByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29yZTo6TG9hZGFi
bGVUZXh0VHJhY2s6Om5ld1JlZ2lvbnNBdmFpbGFibGUpOiBEaXR0by4KKworICAgICAgICAqIGh0
bWwvdHJhY2svVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6flRl
eHRUcmFjayk6IFVzZSByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpz
ZXRLaW5kKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OnNldE1vZGUpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6cmVtb3ZlQWxsQ3Vlcyk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjphY3RpdmVDdWVzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OmFkZEN1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dFRyYWNrOjpyZW1vdmVDdWUpOiBSZW1vdmVkIHVubmVlZGVkIGNvZGUgdG8gaGFuZGxl
IGEgY3VlCisgICAgICAgIHRoYXQgcG9pbnRzIHRvIGEgdHJhY2sgYnV0IGlzIG5vdCBpbiB0aGF0
IHRyYWNrLiBBZGRlZCBhIGNhbGwgdG8KKyAgICAgICAgc2V0SXNBY3RpdmUoZmFsc2UpIGhlcmUg
aW5zdGVhZCBvZiBoYXZpbmcgdGhlIHJlbW92ZSBmdW5jdGlvbiBkbyBpdC4KKyAgICAgICAgKFdl
YkNvcmU6OlRleHRUcmFjazo6YWRkUmVnaW9uKTogVXNlIHJlZmVyZW5jZXMuCisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2s6OnJlbW92ZVJlZ2lvbik6IFJlbW92ZWQgdW5uZWVkZWQgY29kZSB0
byBoYW5kbGUgYQorICAgICAgICByZWdpb24gdGhhdCBwb2ludHMgdG8gYSB0cmFjayBidXQgaXMg
bm90IGluIHRoYXQgdHJhY2suCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OmN1ZVdpbGxD
aGFuZ2UpOiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6Y3Vl
RGlkQ2hhbmdlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OnNldExhbmd1
YWdlKTogRGl0dG8uCisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suaDogVXBkYXRlZCBm
b3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3VlKTogSW5pdGlh
bGl6ZWQgdGhlIGRhdGEgbWVtYmVycworICAgICAgICBpbiB0aGUgY2xhc3MgZGVmaW5pdGlvbi4K
KyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6Y3VlSW5kZXgpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjppbnZhbGlkYXRlQ3VlSW5kZXgpOiBEZWxldGVk
LgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmg6IFVwZGF0ZWQgZm9yIHRoZSBh
Ym92ZS4gUmVtb3ZlZCBtX2N1ZUluZGV4LAorICAgICAgICBiZWNhdXNlIGl0IGlzIG5vdCBhIGdv
b2QgZGVzaWduIHRvIHN0b3JlIHRoZXNlIGFuZCB0cnkgdG8ga2VlcCB0aGVtIHVwCisgICAgICAg
IHRvIGRhdGUuCisKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y29tcGFyZUN1ZXMpOiBBZGRlZC4gSGVscGVyIGZvciBzb3J0aW5n
IGFuZCBjaGVja2luZyBzb3J0aW5nLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlTGlz
dDo6VGV4dFRyYWNrQ3VlTGlzdCk6IERlbGV0ZWQuIExldCB0aGUgY29tcGlsZXIKKyAgICAgICAg
Z2VuZXJhdGUgdGhpcy4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6Omxlbmd0
aCk6IE1vdmVkIHRvIGhlYWRlci4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6
OmN1ZUluZGV4KTogUmVuYW1lZCBmcm9tIGdldEN1ZUluZGV4LgorICAgICAgICBDaGFuZ2VkIHJl
dHVybiB0eXBlIHRvIHVuc2lnbmVkIHJhdGhlciB0aGFuIHVuc2lnbmVkIGxvbmcuCisgICAgICAg
IChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjppdGVtKTogVXBkYXRlZCBmb3IgbmFtZSBjaGFu
Z2UuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjpnZXRDdWVCeUlkKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjphY3RpdmVDdWVzKTogQnVp
bGQgdGhlIHZlY3RvciBkaXJlY3RseQorICAgICAgICByYXRoZXIgdGhhbiB3YXN0ZWZ1bGx5IGFk
ZGluZyB3aXRoIFRleHRUcmFja0N1ZUxpc3Q6OmFkZCwgd2hpY2ggd2lsbAorICAgICAgICB0cnkg
dG8gc29ydC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6OmFkZCk6IFRha2Ug
YSBSZWYmJiBpbnN0ZWFkIG9mIGEgUGFzc1JlZlB0ci4KKyAgICAgICAgQWxzbywga2VlcCBzb3J0
ZWQgdXNpbmcgc3RkOjp1cHBlcl9ib3VuZCBpbnN0ZWFkIG9mIHRoZSByZWN1cnNpdmUKKyAgICAg
ICAgYmluYXJ5IHNlYXJjaCB0aGlzIGNvZGUgd2FzIHVzaW5nIGJlZm9yZS4gQWxzbyByZW1vdmUg
dGhlCisgICAgICAgIGludmFsaWRhdGVDdWVJbmRleGVzIGNhbGwgc2luY2UgdGhlcmUgYXJlIG5v
IGN1ZSBpbmRpY2VzIGFueSBtb3JlLgorICAgICAgICBBbHNvIHJlbW92ZSB0aGUgYm9vbGVhbiBy
ZXR1cm4gdmFsdWUgc2luY2Ugbm8gY2FsbGVyIHdhcyB1c2luZyBpdC4KKyAgICAgICAgKFdlYkNv
cmU6OlRleHRUcmFja0N1ZUxpc3Q6OnJlbW92ZSk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBv
ZiBhCisgICAgICAgIHBvaW50ZXIuIEFsc28gcmVtb3ZlIHRoZSBib29sZWFuIHJldHVybiB2YWx1
ZSBzaW5jZSBubyBjYWxsZXIgd2FzIHVzaW5nIGl0LgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRy
YWNrQ3VlTGlzdDo6Y29udGFpbnMpOiBEZWxldGVkLiBXYXMgdW51c2VkLgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dFRyYWNrQ3VlTGlzdDo6dXBkYXRlQ3VlSW5kZXgpOiBSZWltcGxlbWVudGVkIHVz
aW5nIHRoZQorICAgICAgICBzdGQ6OnVwcGVyX2JvdW5kIGFuZCBzdGQ6OnJvdGF0ZSBvcGVyYXRp
b25zLiBUaGUgb2xkIGNvZGUgdGhhdCB1c2VkCisgICAgICAgIHJlbW92ZSBhbmQgYWRkIHdhcyBp
bmVmZmljaWVudCBhbmQgYWxzbyBjb3VsZCBjYXVzZSBhIGN1ZSB0byBiZSBkZWFsbG9jYXRlZAor
ICAgICAgICBpZiBzb21ldGhpbmcgZWxzZSB3YXNuJ3QgaG9sZGluZyBhIHJlZmVyZW5jZSB0byB0
aGUgY3VlLiBBbHNvIGNoYW5nZWQgdG8gdGFrZQorICAgICAgICBhIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6OmNsZWFyKTogRGVsZXRlZC4gV2FzIHVudXNl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6OmludmFsaWRhdGVDdWVJbmRl
eGVzKTogRGVsZXRlZC4gTm8gbG9uZ2VyCisgICAgICAgIG5lZWRlZCBzaW5jZSB3ZSBkb24ndCBz
dG9yZSBjdWUgaW5kaWNlcyBpbiB0aGUgY3VlcyBhbnkgbW9yZS4KKyAgICAgICAgKiBodG1sL3Ry
YWNrL1RleHRUcmFja0N1ZUxpc3QuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlIGNoYW5nZXMuCisK
KyAgICAgICAgKiBodG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VlRUUmVnaW9uTGlzdDo6VlRUUmVnaW9uTGlzdCk6IERlbGV0ZWQuIExldCB0aGUgY29tcGls
ZXIKKyAgICAgICAgZ2VuZXJhdGUgdGhpcy4KKyAgICAgICAgKFdlYkNvcmU6OlZUVFJlZ2lvbkxp
c3Q6Omxlbmd0aCk6IE1vdmVkIHRvIGhlYWRlci4KKyAgICAgICAgKFdlYkNvcmU6OlZUVFJlZ2lv
bkxpc3Q6Oml0ZW0pOiBVcGRhdGVkIGZvciBuYW1lIGFuZCB0eXBlIGNoYW5nZXMuCisgICAgICAg
IChXZWJDb3JlOjpWVFRSZWdpb25MaXN0OjpnZXRSZWdpb25CeUlkKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpWVFRSZWdpb25MaXN0OjphZGQpOiBDaGFuZ2VkIHRvIHRha2UgYSBSZWYmJiBp
bnN0ZWFkIG9mIGEKKyAgICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlZUVFJl
Z2lvbkxpc3Q6OnJlbW92ZSk6IFVwZGF0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb25M
aXN0OjpjbGVhcik6IERlbGV0ZWQuIFdhcyB1bnVzZWQuCisgICAgICAgICogaHRtbC90cmFjay9W
VFRSZWdpb25MaXN0Lmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZSBjaGFuZ2VzLgorICAgICAgICAq
IGh0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5pZGw6IE1hZGUgcmV0dXJuIHZhbHVlcyBudWxsYWJs
ZSB0byByZWZsZWN0CisgICAgICAgIHRoZSBhY3R1YWwgc2VtYW50aWMgb2YgdGhlIGNvZGUuCisK
KyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFjazo6VmlkZW9UcmFjayk6IFVzZSByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9UcmFjazo6c2V0UHJpdmF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9UcmFjazo6c2V0U2VsZWN0ZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJh
Y2s6OmluYmFuZFRyYWNrSW5kZXgpOiBSZW1vdmVkIGFzc2VydGlvbiBzaW5jZSBtX3ByaXZhdGUK
KyAgICAgICAgaXMgbm93IGEgUmVmIGluc3RlYWQgb2YgYSBSZWZQdHIuCisgICAgICAgIChXZWJD
b3JlOjpWaWRlb1RyYWNrOjpzZWxlY3RlZENoYW5nZWQpOiBSZW1vdmVkIHVubmVlZGVkIHRyYWNr
IHByaXZhdGUgYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjppZENoYW5n
ZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmxhYmVsQ2hhbmdlZCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjp3aWxsUmVtb3ZlKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpzZXRLaW5kKTogVXBkYXRlZCB0byB1c2Ug
cmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6c2V0TGFuZ3VhZ2UpOiBE
aXR0by4KKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2suaDogVXBkYXRlZCBmb3IgdGhl
IGFib3ZlLiBDaGFuZ2VkIGRlcml2YXRpb24gdG8gcHJpdmF0ZS4KKyAgICAgICAgUmVtb3ZlZCB1
bm5lZWRlZCBkZWZhdWx0S2luZEtleXdvcmQuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGll
bnRzLmg6IFVwZGF0ZWQgdG8gdXNlIHJlZmVyZW5jZS4KKworICAgICAgICAqIGxvYWRlci9QaW5n
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25S
ZXBvcnQpOiBUYWtlIGEgUmVmJiYgaW5zdGVhZCBvZiBSZWZQdHImJi4KKyAgICAgICAgKiBsb2Fk
ZXIvUGluZ0xvYWRlci5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2UuCisKKyAgICAgICAgKiBw
YWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmxvYWRJY29uRm9yRmls
ZXMpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6IFVwZGF0ZWQg
Zm9yIGFib3ZlIGNoYW5nZS4KKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOiBEaXR0by4K
KworICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlvbik6IFVzZSBh
dXRvLgorCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxN
ZWRpYUVsZW1lbnQubW06CisgICAgICAgIChXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxl
bWVudDo6c2VsZWN0QXVkaW9NZWRpYU9wdGlvbik6IFNpbXBsaWZpZWQKKyAgICAgICAgYWxnb3Jp
dGhtIGJ5IHJlbW92aW5nIHVubmVlZGVkIGRpcmVjdCBjYWxsIHRvIGF1ZGlvVHJhY2tFbmFibGVk
Q2hhbmdlZCwKKyAgICAgICAgd2hpY2ggd2lsbCBiZSBjYWxsZWQgYnkgc2V0RW5hYmxlZCBhbmQg
ZG9lc24ndCBuZWVkIHRvIGJlIGNhbGxlZCBhZ2FpbiBoZXJlLgorICAgICAgICAoV2ViUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnNlbGVjdExlZ2libGVNZWRpYU9wdGlvbik6IFJl
bW92ZWQKKyAgICAgICAgdW5oZWxwZnVsIGFzc2VydGlvbiBhbmQgdW5ubmVkZWQgaW5pdGlhbGl6
YXRpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5o
OiBSZW1vdmVkIHVubm5lZWVkIHRyYWNrIHByaXZhdGUKKyAgICAgICAgYXJndW1lbnQgYW5kIGlu
aXRpYWxpemVkIGRhdGEgbWVtYmVycyB3aGVyZSB0aGV5IGFyZSBkZWZpbmVkLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oOiBVc2Ug
UmVmIGluc3RlYWQgb2YKKyAgICAgICAgUGFzc1JlZlB0ciwgaW5pdGlhbGl6ZSBkYXRhIG1lbWJl
cnMgd2hlcmUgdGhleSBhcmUgZGVmaW5lZCwgYW5kIHJlbW92ZWQKKyAgICAgICAgdGhlIHVubmVl
ZGVkIHRyYWNrIHByaXZhdGUgYXJndW1lbnRzIGZyb20gdGhlIGNsaWVudCBmdW5jdGlvbnMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmg6IEZpeGVk
IGZ1bmN0aW9ucyB0aGF0IHdlcmUgdGFraW5nCisgICAgICAgIEF0b21pY1N0cmluZyB0byB0YWtl
IGEgY29uc3QmIGluc3RlYWQuIFVzZSBSZWYmJiBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Lmg6IFJl
bW92ZWQgdW5uZWRlZCBwcml2YXRlIHBvaW50ZXIKKyAgICAgICAgYXJndW1lbnRzIGZyb20gY2xp
ZW50IGZ1bmN0aW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0
ZUJhc2UuaDogUmVtb3ZlZCB1bm5lZWRlZCBwcml2YXRlIHBvaW50ZXJzCisgICAgICAgIGZyb20g
Y2xpZW50IGZ1bmN0aW9ucy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNr
UHJpdmF0ZTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vQXVkaW9UcmFja1ByaXZhdGVBVkYuaDogVXNlCisgICAgICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0
YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZE1l
dGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6YWRkRGF0YUN1ZSk6IFVwZGF0ZWQgZm9yIGNoYW5n
ZSB0byBhcmd1bWVudHMuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRNZXRhZGF0YVRleHRUcmFj
a1ByaXZhdGVBVkY6OnVwZGF0ZVBlbmRpbmdDdWVFbmRUaW1lcyk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjpmbHVzaFBhcnRpYWxD
dWVzKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0lu
YmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0F0dHJpYnV0ZWRTdHJpbmdzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpyZXNldEN1ZVZhbHVlcyk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJv
Y2Vzc05hdGl2ZVNhbXBsZXMpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyk6CisgICAgICAgIE1vdmVkIGlu
aXRpYWxpemF0aW9uIG9mIGRhdGEgbWVtZWJycyB0byB3aGVyZSB0aGV5IGFyZSBkZWZpbmVkLgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmVu
YWJsZWQpOiBEZWxldGVkLiBObyBsb25nZXIgbmVlZGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEVuYWJsZWQpOiBDaGFuZ2VkIHRv
IHVzZSB0aGUgZW5hYmxlZAorICAgICAgICBmbGFnIGZyb20gdGhlIGJhc2UgY2xhc3MgaW5zdGVh
ZCBvZiBhIHNlcGFyYXRlIG1fZW5hYmxlZCBpbiB0aGlzIGNsYXNzLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmg6CisgICAgICAgIFJlbW92ZWQgdGhlIGVuYWJsZWQgZnVuY3Rpb24gYW5kIHRo
ZSBtX2VuYWJsZWQgZGF0YSBtZW1iZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oOiBNYXJrZWQgZnVu
Y3Rpb25zCisgICAgICAgIGZpbmFsIGluc3RlYWQgb2Ygb3ZlcnJpZGUgYW5kIHVwZGF0ZWQgYXJn
dWVtbnRzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1Nv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQpOiBVcGRhdGVkIGZv
ciBjaGFuZ2UKKyAgICAgICAgdG8gYXJndW1lbnRzLgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OnByb2Nlc3NDb2RlZEZyYW1lKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5kQ29tcGxldGVkKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6aGFz
VmlkZW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjpoYXNBdWRpbyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OmxheWVyRGlkUmVjZWl2ZUVycm9yKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Zmx1c2gpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6aXNSZWFk
eUZvck1vcmVTYW1wbGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6ZmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2Vla1RvVGltZSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZEJlY29t
ZVJlYWR5Rm9yTW9yZVNhbXBsZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyk6
IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZE1l
dGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oOiBVcGRhdGVkIGZvcgorICAgICAgICBj
aGFuZ2VzIHRvIGFyZ3VtZW50cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mU2FtcGxlKTog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0
ZUJhc2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lcjo6bm90aWZ5VHJhY2tPZlRhZ3NDaGFuZ2VkKTogRGl0dG8uCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6YXBwc2lua05ld1NhbXBsZSk6IERpdHRvLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyOjphcHBlbmQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXI6OmZsdXNoKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyOjplbnF1ZXVlU2FtcGxlKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjppc1JlYWR5Rm9yTW9yZVNhbXBs
ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXI6Om5vdGlmeVJlYWR5Rm9yTW9yZVNhbXBsZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6
bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVJbml0aWFsaXph
dGlvblNlZ21lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVTYW1wbGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVBbGxQZW5kaW5nU2FtcGxl
cyk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjphcHBlbmQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlSW5pdGlhbGl6YXRp
b25TZWdtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJp
dmF0ZTo6ZGlkUmVjZWl2ZVNhbXBsZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1Nv
dXJjZUJ1ZmZlclByaXZhdGU6OmVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjplbnF1ZXVlU2FtcGxlKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6aGFzVmlk
ZW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpo
YXNBdWRpbyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1NvdXJjZUJ1ZmZlclByaXZh
dGU6OmZhc3RTZWVrVGltZUZvck1lZGlhVGltZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OnNlZWtUb1RpbWUpOiBEaXR0by4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmg6IERpdHRv
LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVTbmFwc2hvdCk6
IFRha2UgcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAgICBvZiBQYXNzUmVmUHRyLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oOiBVcGRhdGVkIGZvciBhYm92
ZSBjaGFuZ2UuCisKKyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5oOiBBZGRlZCB1c2lu
ZyB0byByZXNvbHZlIHRoZSBhbWJpZ3VpdHkgd2l0aCB0aGUKKyAgICAgICAgcmVmL2RlcmVmIGZy
b20gU1ZHRWxlbWVudCBhbmQgZnJvbSBTY3JpcHRFbGVtZW50LgorCisgICAgICAgICogeG1sL3Bh
cnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVu
dFBhcnNlcjo6bm90aWZ5RmluaXNoZWQpOiBVcGRhdGVkIHRvIHNpbXBsaWZ5IHNpbmNlCisgICAg
ICAgIHRoZSBwZW5kaW5nIHNjcmlwdCBub3cgaGFzIGEgc2NyaXB0IGVsZW1lbnQuCisKKyAgICAg
ICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50TnMpOiBVc2UgaXNTY2lwcnRF
bGVtZW50IGluc3RlYWQKKyAgICAgICAgb2YgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjplbmRFbGVtZW50TnMpOiBEaXR0by4g
QWxzbyB1c2UgZG93bmNhc3RTY3JpcHRFbGVtZW50LgorCiAyMDE3LTAxLTA0ICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFByb3ZpZGUgYSBzZXR0aW5n
IGZvciBjbGllbnRzIHRvIGFsd2F5cyBwcmVmZXIgbG93LXBvd2VyIFdlYkdMCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggODkzOTg2OWZkZjQ3NTk2ZWQwYzQ3YzYzNDMyNjUwYWM4MWVkZThmOC4uNzcwNGI0
NDhhZDBhNjU3YzZiYzEzMzAwZmYyZjhmYTE0NjU0OThjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDE3LTAxLTA0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciB1c2UgZnJvbSB0aGUgImh0bWwiIGRpcmVjdG9y
eSwgb3RoZXIgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjY2MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9t
ZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBh
IHBvaW50ZXIuCisKIDIwMTctMDEtMDQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUHJvdmlkZSBhIHNldHRpbmcgZm9yIGNsaWVudHMgdG8gYWx3YXlz
IHByZWZlciBsb3ctcG93ZXIgV2ViR0wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBiMTYxNTg1YmY5NjM1
YTFlM2U0MzE2OGU2ZTQxM2IyMmE5NmY5YWQ2Li4wZDc5MmNhNTY1Y2ZkNTY0YzRiYjJkNDJlZGQ4
NzRmODNjODE1MTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDEt
MDQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNz
UmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRtbCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6
bG9hZEljb25Gb3JGaWxlcyk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIu
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6IFVwZGF0ZWQgZm9y
IHRoZSBhYm92ZS4KKwogMjAxNi0xMi0zMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIgdXNlIGZyb20gdGhlICJkb20iIGRpcmVjdG9y
eSwgcmVsYXRlZCBjbGVhbnVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjlkZTZlZjU5YjE5OTljNjIzNmY1ZjE1
NmQ3YjZlMmEyNWMzZDVjMS4uYmE4ZGNiNzY3YjhlYjg5MjhiNGY3NWFmYmYyMjk4YjJiMWQ4NWY3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAxLTA0ICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciB1c2UgZnJvbSB0
aGUgImh0bWwiIGRpcmVjdG9yeSwgb3RoZXIgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2MzUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
Ojpsb2FkSWNvbkZvckZpbGVzKTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgcG9pbnRl
ci4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
OiBEaXR0by4KKwogMjAxNy0wMS0wMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KIAogICAgICAgICBOU1NwZWxsQ2hlY2tlcidzIHJlY29yZFJlc3BvbnNlIGlzbid0IGNh
bGxlZCBmb3IgdW5zZWVuIGF1dG9tYXRpYyBjb3JyZWN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUmVmUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAppbmRleCA4N2ZjNDU2
ZjM3MDQwNDliZjRlY2NjYmYzYTRmZjU3Njk3OWU2NzdmLi5mZTE2MzBjOTczNWI1ZmY1MzUzY2Iy
YzU1OGUzMTA1ODEyNDc4N2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29w
eXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MjQyLDEwICsyNDIsMjEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFJlZlB0cjxUPiBh
ZG9wdFJlZihUKiBwKQogICAgIHJldHVybiBSZWZQdHI8VD4ocCwgUmVmUHRyPFQ+OjpBZG9wdCk7
CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4gbWFrZVJlZlB0cihU
KiBwb2ludGVyKQoreworICAgIHJldHVybiBwb2ludGVyOworfQorCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBpbmxpbmUgUmVmUHRyPFQ+IG1ha2VSZWZQdHIoVCYgcmVmZXJlbmNlKQoreworICAgIHJl
dHVybiAmcmVmZXJlbmNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNpbmcgV1RGOjpS
ZWZQdHI7CiB1c2luZyBXVEY6OmFkb3B0UmVmOwordXNpbmcgV1RGOjptYWtlUmVmUHRyOwogdXNp
bmcgV1RGOjpzdGF0aWNfcG9pbnRlcl9jYXN0OwogCiAjZW5kaWYgLy8gV1RGX1JlZlB0cl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IDBjODUxZGU0MGYxM2VhYzdmYjljN2Q4MTFkMTdlYjIxMzRm
ZWZkMmIuLjg3NzhjYzQyNWI2NzEwN2U0ZmQzZDBjOTY1YjU5NjZkZWE1NDYwODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC0xNzY0LDcgKzE3NjQsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKICAgICBodG1sL1dlZWtJbnB1dFR5cGUuY3Bw
CiAKLSAgICBodG1sL2NhbnZhcy9BTkdMRUluc3RhbmNlZEFycmF5cy5jcHAKICAgICBodG1sL2Nh
bnZhcy9DYW52YXNHcmFkaWVudC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNQYXRoLmNwcAog
ICAgIGh0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uY3BwCkBAIC0xNzczLDUxICsxNzcyLDYgQEAg
c2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKICAgICBodG1sL2NhbnZh
cy9ET01QYXRoLmNwcAotICAgIGh0bWwvY2FudmFzL0VYVEJsZW5kTWluTWF4LmNwcAotICAgIGh0
bWwvY2FudmFzL0VYVEZyYWdEZXB0aC5jcHAKLSAgICBodG1sL2NhbnZhcy9FWFRTaGFkZXJUZXh0
dXJlTE9ELmNwcAotICAgIGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5j
cHAKLSAgICBodG1sL2NhbnZhcy9FWFRzUkdCLmNwcAotICAgIGh0bWwvY2FudmFzL09FU0VsZW1l
bnRJbmRleFVpbnQuY3BwCi0gICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5j
cHAKLSAgICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwCi0gICAgaHRtbC9jYW52YXMv
T0VTVGV4dHVyZUZsb2F0TGluZWFyLmNwcAotICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVIYWxm
RmxvYXQuY3BwCi0gICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5jcHAK
LSAgICBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZh
cy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVy
LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwCi0gICAg
aHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcAotICAgIGh0bWwvY2Fu
dmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdM
Q29udGV4dEV2ZW50LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAot
ICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9X
ZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFk
ZXJzLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMRGVwdGhUZXh0dXJlLmNwcAotICAgIGh0bWwv
Y2FudmFzL1dlYkdMRHJhd0J1ZmZlcnMuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNp
b24uY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKLSAgICBodG1sL2Nh
bnZhcy9XZWJHTEdldEluZm8uY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5j
cHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJH
TFByb2dyYW0uY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5jcHAKLSAgICBodG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5j
cHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFNhbXBsZXIuY3BwCi0gICAgaHRtbC9jYW52YXMvV2Vi
R0xTaGFkZXIuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
Y3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCi0gICAgaHRtbC9jYW52
YXMvV2ViR0xTeW5jLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5jcHAKLSAgICBo
dG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcAotICAgIGh0bWwvY2FudmFzL1dl
YkdMVW5pZm9ybUxvY2F0aW9uLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlP
YmplY3QuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3Bw
Ci0gICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKIAogICAgIGh0
bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuY3BwCiAKQEAgLTMwNzgsNiArMzAzMiw3IEBAIGlmIChF
TkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXRMaW5l
YXIuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAogICAg
ICAgICBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorICAgICAgICBodG1s
L2NhbnZhcy9XZWJHTEFueS5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3Bw
CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwCiAgICAg
ICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHAKQEAgLTMwOTEs
NyArMzA0Niw2IEBAIGlmIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
RHJhd0J1ZmZlcnMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmNwcAog
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcAotICAgICAgICBodG1sL2Nh
bnZhcy9XZWJHTEdldEluZm8uY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRl
eHQuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcAogICAgICAgICBodG1s
L2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IDQzYzBkMDAwZDhlNzM1NTZmZWUxNzA0
MmFmNjM5ZTA3OWVkOTkzMDQuLjRmMTg4Yjg1MjQ4ZmM0MjEzOWQ3NTgxZGUxOTBkM2YyN2ViNjEx
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQpAQCAtNjkzLDE4ICs2OTMsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVk
aWFTb3VyY2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICBi
dWZmZXIuYWJvcnRJZlVwZGF0aW5nKCk7CiAKICAgICAvLyA0LiBMZXQgU291cmNlQnVmZmVyIGF1
ZGlvVHJhY2tzIGxpc3QgZXF1YWwgdGhlIEF1ZGlvVHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBi
eSBzb3VyY2VCdWZmZXIuYXVkaW9UcmFja3MuCi0gICAgUmVmUHRyPEF1ZGlvVHJhY2tMaXN0PiBh
dWRpb1RyYWNrcyA9IGJ1ZmZlci5hdWRpb1RyYWNrcygpOworICAgIGF1dG8mIGF1ZGlvVHJhY2tz
ID0gYnVmZmVyLmF1ZGlvVHJhY2tzKCk7CiAKICAgICAvLyA1LiBJZiB0aGUgU291cmNlQnVmZmVy
IGF1ZGlvVHJhY2tzIGxpc3QgaXMgbm90IGVtcHR5LCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0
ZXBzOgotICAgIGlmIChhdWRpb1RyYWNrcy0+bGVuZ3RoKCkpIHsKKyAgICBpZiAoYXVkaW9UcmFj
a3MubGVuZ3RoKCkpIHsKICAgICAgICAgLy8gNS4xIExldCBIVE1MTWVkaWFFbGVtZW50IGF1ZGlv
VHJhY2tzIGxpc3QgZXF1YWwgdGhlIEF1ZGlvVHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSB0
aGUgYXVkaW9UcmFja3MKICAgICAgICAgLy8gYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVt
ZW50LgogICAgICAgICAvLyA1LjIgTGV0IHRoZSByZW1vdmVkIGVuYWJsZWQgYXVkaW8gdHJhY2sg
ZmxhZyBlcXVhbCBmYWxzZS4KICAgICAgICAgYm9vbCByZW1vdmVkRW5hYmxlZEF1ZGlvVHJhY2sg
PSBmYWxzZTsKIAogICAgICAgICAvLyA1LjMgRm9yIGVhY2ggQXVkaW9UcmFjayBvYmplY3QgaW4g
dGhlIFNvdXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0LCBydW4gdGhlIGZvbGxvd2luZyBzdGVw
czoKLSAgICAgICAgd2hpbGUgKGF1ZGlvVHJhY2tzLT5sZW5ndGgoKSkgewotICAgICAgICAgICAg
YXV0byYgdHJhY2sgPSAqYXVkaW9UcmFja3MtPmxhc3RJdGVtKCk7CisgICAgICAgIHdoaWxlIChh
dWRpb1RyYWNrcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byYgdHJhY2sgPSAqYXVkaW9U
cmFja3MubGFzdEl0ZW0oKTsKIAogICAgICAgICAgICAgLy8gNS4zLjEgU2V0IHRoZSBzb3VyY2VC
dWZmZXIgYXR0cmlidXRlIG9uIHRoZSBBdWRpb1RyYWNrIG9iamVjdCB0byBudWxsLgogICAgICAg
ICAgICAgdHJhY2suc2V0U291cmNlQnVmZmVyKG51bGxwdHIpOwpAQCAtNzIzLDcgKzcyMyw3IEBA
IEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIoU291cmNl
QnVmZmVyJiBidWZmZXIpCiAgICAgICAgICAgICAvLyA1LjMuNSBSZW1vdmUgdGhlIEF1ZGlvVHJh
Y2sgb2JqZWN0IGZyb20gdGhlIFNvdXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0LgogICAgICAg
ICAgICAgLy8gNS4zLjYgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVk
IHJlbW92ZXRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMgbm90CiAgICAgICAgICAg
ICAvLyBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGludGVyZmFjZSwg
YXQgdGhlIFNvdXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0LgotICAgICAgICAgICAgYXVkaW9U
cmFja3MtPnJlbW92ZSh0cmFjayk7CisgICAgICAgICAgICBhdWRpb1RyYWNrcy5yZW1vdmUodHJh
Y2spOwogICAgICAgICB9CiAKICAgICAgICAgLy8gNS40IElmIHRoZSByZW1vdmVkIGVuYWJsZWQg
YXVkaW8gdHJhY2sgZmxhZyBlcXVhbHMgdHJ1ZSwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBh
IHNpbXBsZSBldmVudApAQCAtNzMzLDE4ICs3MzMsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVk
aWFTb3VyY2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICB9
CiAKICAgICAvLyA2LiBMZXQgU291cmNlQnVmZmVyIHZpZGVvVHJhY2tzIGxpc3QgZXF1YWwgdGhl
IFZpZGVvVHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSBzb3VyY2VCdWZmZXIudmlkZW9UcmFj
a3MuCi0gICAgUmVmUHRyPFZpZGVvVHJhY2tMaXN0PiB2aWRlb1RyYWNrcyA9IGJ1ZmZlci52aWRl
b1RyYWNrcygpOworICAgIGF1dG8mIHZpZGVvVHJhY2tzID0gYnVmZmVyLnZpZGVvVHJhY2tzKCk7
CiAKICAgICAvLyA3LiBJZiB0aGUgU291cmNlQnVmZmVyIHZpZGVvVHJhY2tzIGxpc3QgaXMgbm90
IGVtcHR5LCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIGlmICh2aWRlb1RyYWNr
cy0+bGVuZ3RoKCkpIHsKKyAgICBpZiAodmlkZW9UcmFja3MubGVuZ3RoKCkpIHsKICAgICAgICAg
Ly8gNy4xIExldCBIVE1MTWVkaWFFbGVtZW50IHZpZGVvVHJhY2tzIGxpc3QgZXF1YWwgdGhlIFZp
ZGVvVHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSB0aGUgdmlkZW9UcmFja3MKICAgICAgICAg
Ly8gYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAgICAgICAvLyA3LjIgTGV0
IHRoZSByZW1vdmVkIHNlbGVjdGVkIHZpZGVvIHRyYWNrIGZsYWcgZXF1YWwgZmFsc2UuCiAgICAg
ICAgIGJvb2wgcmVtb3ZlZFNlbGVjdGVkVmlkZW9UcmFjayA9IGZhbHNlOwogCiAgICAgICAgIC8v
IDcuMyBGb3IgZWFjaCBWaWRlb1RyYWNrIG9iamVjdCBpbiB0aGUgU291cmNlQnVmZmVyIHZpZGVv
VHJhY2tzIGxpc3QsIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICB3aGlsZSAodmlk
ZW9UcmFja3MtPmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiB0cmFjayA9ICp2aWRlb1Ry
YWNrcy0+bGFzdEl0ZW0oKTsKKyAgICAgICAgd2hpbGUgKHZpZGVvVHJhY2tzLmxlbmd0aCgpKSB7
CisgICAgICAgICAgICBhdXRvJiB0cmFjayA9ICp2aWRlb1RyYWNrcy5sYXN0SXRlbSgpOwogCiAg
ICAgICAgICAgICAvLyA3LjMuMSBTZXQgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhl
IFZpZGVvVHJhY2sgb2JqZWN0IHRvIG51bGwuCiAgICAgICAgICAgICB0cmFjay5zZXRTb3VyY2VC
dWZmZXIobnVsbHB0cik7CkBAIC03NjMsNyArNzYzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVk
aWFTb3VyY2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICAg
ICAgICAgIC8vIDcuMy41IFJlbW92ZSB0aGUgVmlkZW9UcmFjayBvYmplY3QgZnJvbSB0aGUgU291
cmNlQnVmZmVyIHZpZGVvVHJhY2tzIGxpc3QuCiAgICAgICAgICAgICAvLyA3LjMuNiBRdWV1ZSBh
IHRhc2sgdG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgcmVtb3ZldHJhY2ssIHRoYXQgZG9l
cyBub3QgYnViYmxlIGFuZCBpcyBub3QKICAgICAgICAgICAgIC8vIGNhbmNlbGFibGUsIGFuZCB0
aGF0IHVzZXMgdGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgU291cmNlQnVmZmVyIHZp
ZGVvVHJhY2tzIGxpc3QuCi0gICAgICAgICAgICB2aWRlb1RyYWNrcy0+cmVtb3ZlKHRyYWNrKTsK
KyAgICAgICAgICAgIHZpZGVvVHJhY2tzLnJlbW92ZSh0cmFjayk7CiAgICAgICAgIH0KIAogICAg
ICAgICAvLyA3LjQgSWYgdGhlIHJlbW92ZWQgc2VsZWN0ZWQgdmlkZW8gdHJhY2sgZmxhZyBlcXVh
bHMgdHJ1ZSwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudApAQCAtNzcz
LDE4ICs3NzMsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6OnJlbW92ZVNvdXJj
ZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICB9CiAKICAgICAvLyA4LiBMZXQgU291
cmNlQnVmZmVyIHRleHRUcmFja3MgbGlzdCBlcXVhbCB0aGUgVGV4dFRyYWNrTGlzdCBvYmplY3Qg
cmV0dXJuZWQgYnkgc291cmNlQnVmZmVyLnRleHRUcmFja3MuCi0gICAgUmVmUHRyPFRleHRUcmFj
a0xpc3Q+IHRleHRUcmFja3MgPSBidWZmZXIudGV4dFRyYWNrcygpOworICAgIGF1dG8mIHRleHRU
cmFja3MgPSBidWZmZXIudGV4dFRyYWNrcygpOwogCiAgICAgLy8gOS4gSWYgdGhlIFNvdXJjZUJ1
ZmZlciB0ZXh0VHJhY2tzIGxpc3QgaXMgbm90IGVtcHR5LCB0aGVuIHJ1biB0aGUgZm9sbG93aW5n
IHN0ZXBzOgotICAgIGlmICh0ZXh0VHJhY2tzLT5sZW5ndGgoKSkgeworICAgIGlmICh0ZXh0VHJh
Y2tzLmxlbmd0aCgpKSB7CiAgICAgICAgIC8vIDkuMSBMZXQgSFRNTE1lZGlhRWxlbWVudCB0ZXh0
VHJhY2tzIGxpc3QgZXF1YWwgdGhlIFRleHRUcmFja0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5IHRo
ZSB0ZXh0VHJhY2tzCiAgICAgICAgIC8vIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVu
dC4KICAgICAgICAgLy8gOS4yIExldCB0aGUgcmVtb3ZlZCBlbmFibGVkIHRleHQgdHJhY2sgZmxh
ZyBlcXVhbCBmYWxzZS4KICAgICAgICAgYm9vbCByZW1vdmVkRW5hYmxlZFRleHRUcmFjayA9IGZh
bHNlOwogCiAgICAgICAgIC8vIDkuMyBGb3IgZWFjaCBUZXh0VHJhY2sgb2JqZWN0IGluIHRoZSBT
b3VyY2VCdWZmZXIgdGV4dFRyYWNrcyBsaXN0LCBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAg
ICAgICAgd2hpbGUgKHRleHRUcmFja3MtPmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiB0
cmFjayA9ICp0ZXh0VHJhY2tzLT5sYXN0SXRlbSgpOworICAgICAgICB3aGlsZSAodGV4dFRyYWNr
cy5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byYgdHJhY2sgPSAqdGV4dFRyYWNrcy5sYXN0
SXRlbSgpOwogCiAgICAgICAgICAgICAvLyA5LjMuMSBTZXQgdGhlIHNvdXJjZUJ1ZmZlciBhdHRy
aWJ1dGUgb24gdGhlIFRleHRUcmFjayBvYmplY3QgdG8gbnVsbC4KICAgICAgICAgICAgIHRyYWNr
LnNldFNvdXJjZUJ1ZmZlcihudWxscHRyKTsKQEAgLTgwMyw3ICs4MDMsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciYgYnVm
ZmVyKQogICAgICAgICAgICAgLy8gOS4zLjUgUmVtb3ZlIHRoZSBUZXh0VHJhY2sgb2JqZWN0IGZy
b20gdGhlIFNvdXJjZUJ1ZmZlciB0ZXh0VHJhY2tzIGxpc3QuCiAgICAgICAgICAgICAvLyA5LjMu
NiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgcmVtb3ZldHJhY2ss
IHRoYXQgZG9lcyBub3QgYnViYmxlIGFuZCBpcyBub3QKICAgICAgICAgICAgIC8vIGNhbmNlbGFi
bGUsIGFuZCB0aGF0IHVzZXMgdGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgU291cmNl
QnVmZmVyIHRleHRUcmFja3MgbGlzdC4KLSAgICAgICAgICAgIHRleHRUcmFja3MtPnJlbW92ZSh0
cmFjayk7CisgICAgICAgICAgICB0ZXh0VHJhY2tzLnJlbW92ZSh0cmFjayk7CiAgICAgICAgIH0K
IAogICAgICAgICAvLyA5LjQgSWYgdGhlIHJlbW92ZWQgZW5hYmxlZCB0ZXh0IHRyYWNrIGZsYWcg
ZXF1YWxzIHRydWUsIHRoZW4gcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNw
cAppbmRleCA3ZmVlN2U2MGIyMmU0NDgzNDFjYWEwOWFkOTg5OTY4MDlhNWU0MjZjLi5kOWFlNTI3
ODYzNWVjOGZhYjhiYTdkZjUyZDczNDE0YTU4ODNlZTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTksOSAr
NTksNiBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvVk0uaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpZiAhTE9HX0RJU0FCTEVE
Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotI2VuZGlmCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNDIxLDcgKzQxOCw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzZWVr
VG9UaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKICAgICB9CiB9CiAKLU1lZGlhVGltZSBTb3Vy
Y2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoU291
cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgdGFyZ2V0VGltZSwgY29uc3QgTWVk
aWFUaW1lJiBuZWdhdGl2ZVRocmVzaG9sZCwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRocmVz
aG9sZCkKK01lZGlhVGltZSBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vl
a1RpbWVGb3JNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1lJiB0YXJnZXRUaW1lLCBjb25zdCBNZWRp
YVRpbWUmIG5lZ2F0aXZlVGhyZXNob2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNo
b2xkKQogewogICAgIE1lZGlhVGltZSBzZWVrVGltZSA9IHRhcmdldFRpbWU7CiAgICAgTWVkaWFU
aW1lIGxvd2VyQm91bmRUaW1lID0gdGFyZ2V0VGltZSAtIG5lZ2F0aXZlVGhyZXNob2xkOwpAQCAt
NTY2LDcgKzU2Myw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZpcmVk
KCkKIAogICAgIC8vIDEuIExvb3AgVG9wOiBJZiB0aGUgaW5wdXQgYnVmZmVyIGlzIGVtcHR5LCB0
aGVuIGp1bXAgdG8gdGhlIG5lZWQgbW9yZSBkYXRhIHN0ZXAgYmVsb3cuCiAgICAgaWYgKCFtX3Bl
bmRpbmdBcHBlbmREYXRhLnNpemUoKSkgewotICAgICAgICBzb3VyY2VCdWZmZXJQcml2YXRlQXBw
ZW5kQ29tcGxldGUoJm1fcHJpdmF0ZS5nZXQoKSwgQXBwZW5kU3VjY2VlZGVkKTsKKyAgICAgICAg
c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKEFwcGVuZFN1Y2NlZWRlZCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTU3NCw3ICs1NzEsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZl
cjo6YXBwZW5kQnVmZmVyVGltZXJGaXJlZCgpCiAgICAgbV9wZW5kaW5nQXBwZW5kRGF0YS5jbGVh
cigpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENv
bXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBcHBlbmRSZXN1bHQgcmVzdWx0KQordm9pZCBT
b3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShBcHBlbmRSZXN1
bHQgcmVzdWx0KQogewogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAt
NjM1LDcgKzYzMiw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBw
ZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIEFwcGVuCiAgICAgTE9HKE1lZGlhLCAi
U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoJXApIC0gYnVm
ZmVyZWQgPSAlcyIsIHRoaXMsIHRvU3RyaW5nKG1fYnVmZmVyZWQtPnJhbmdlcygpKS51dGY4KCku
ZGF0YSgpKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRS
ZWNlaXZlUmVuZGVyaW5nRXJyb3IoU291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvcikKK3Zv
aWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmluZ0Vy
cm9yKGludCBlcnJvcikKIHsKICNpZiBMT0dfRElTQUJMRUQKICAgICBVTlVTRURfUEFSQU0oZXJy
b3IpOwpAQCAtOTQ1LDM1ICs5NDIsMzIgQEAgc2l6ZV90IFNvdXJjZUJ1ZmZlcjo6bWF4aW11bUJ1
ZmZlclNpemUoKSBjb25zdAogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICBIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50ID0gbV9zb3VyY2UtPm1lZGlhRWxlbWVu
dCgpOworICAgIGF1dG8qIGVsZW1lbnQgPSBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCk7CiAgICAg
aWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHJldHVybiBlbGVtZW50LT5t
YXhpbXVtU291cmNlQnVmZmVyU2l6ZSgqdGhpcyk7CiB9CiAKLVZpZGVvVHJhY2tMaXN0KiBTb3Vy
Y2VCdWZmZXI6OnZpZGVvVHJhY2tzKCkKK1ZpZGVvVHJhY2tMaXN0JiBTb3VyY2VCdWZmZXI6OnZp
ZGVvVHJhY2tzKCkKIHsKICAgICBpZiAoIW1fdmlkZW9UcmFja3MpCi0gICAgICAgIG1fdmlkZW9U
cmFja3MgPSBWaWRlb1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwg
QWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0gICAgcmV0dXJu
IG1fdmlkZW9UcmFja3MuZ2V0KCk7CisgICAgICAgIG1fdmlkZW9UcmFja3MgPSBWaWRlb1RyYWNr
TGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKTsKKyAgICByZXR1cm4gKm1fdmlkZW9UcmFja3M7CiB9CiAKLUF1ZGlvVHJhY2tMaXN0
KiBTb3VyY2VCdWZmZXI6OmF1ZGlvVHJhY2tzKCkKK0F1ZGlvVHJhY2tMaXN0JiBTb3VyY2VCdWZm
ZXI6OmF1ZGlvVHJhY2tzKCkKIHsKICAgICBpZiAoIW1fYXVkaW9UcmFja3MpCi0gICAgICAgIG1f
YXVkaW9UcmFja3MgPSBBdWRpb1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1l
bnQoKSwgQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0gICAg
cmV0dXJuIG1fYXVkaW9UcmFja3MuZ2V0KCk7CisgICAgICAgIG1fYXVkaW9UcmFja3MgPSBBdWRp
b1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4gKm1fYXVkaW9UcmFja3M7CiB9CiAKLVRleHRUcmFj
a0xpc3QqIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrcygpCitUZXh0VHJhY2tMaXN0JiBTb3VyY2VC
dWZmZXI6OnRleHRUcmFja3MoKQogewogICAgIGlmICghbV90ZXh0VHJhY2tzKQotICAgICAgICBt
X3RleHRUcmFja3MgPSBUZXh0VHJhY2tMaXN0OjpjcmVhdGUobV9zb3VyY2UtPm1lZGlhRWxlbWVu
dCgpLCBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0KLSAgICBy
ZXR1cm4gbV90ZXh0VHJhY2tzLmdldCgpOworICAgICAgICBtX3RleHRUcmFja3MgPSBUZXh0VHJh
Y2tMaXN0OjpjcmVhdGUobV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLCBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpOworICAgIHJldHVybiAqbV90ZXh0VHJhY2tzOwogfQogCiB2b2lkIFNvdXJjZUJ1
ZmZlcjo6c2V0QWN0aXZlKGJvb2wgYWN0aXZlKQpAQCAtOTg3LDcgKzk4MSw3IEBAIHZvaWQgU291
cmNlQnVmZmVyOjpzZXRBY3RpdmUoYm9vbCBhY3RpdmUpCiAgICAgICAgIG1fc291cmNlLT5zb3Vy
Y2VCdWZmZXJEaWRDaGFuZ2VBY3RpdmVTdGF0ZSgqdGhpcywgYWN0aXZlKTsKIH0KIAotdm9pZCBT
b3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25T
ZWdtZW50KFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQm
IHNlZ21lbnQpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2Vp
dmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgSW5pdGlhbGl6YXRpb25TZWdtZW50JiBzZWdt
ZW50KQogewogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTAyNCw0
MCArMTAxOCw0MCBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJl
Y2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgICAgIC8vIDMuMiBBZGQgdGhlIGFwcHJvcHJpYXRlIHRyYWNrIGRl
c2NyaXB0aW9ucyBmcm9tIHRoaXMgaW5pdGlhbGl6YXRpb24gc2VnbWVudCB0byBlYWNoIG9mIHRo
ZSB0cmFjayBidWZmZXJzLgotICAgICAgICBBU1NFUlQoc2VnbWVudC5hdWRpb1RyYWNrcy5zaXpl
KCkgPT0gYXVkaW9UcmFja3MoKS0+bGVuZ3RoKCkpOworICAgICAgICBBU1NFUlQoc2VnbWVudC5h
dWRpb1RyYWNrcy5zaXplKCkgPT0gYXVkaW9UcmFja3MoKS5sZW5ndGgoKSk7CiAgICAgICAgIGZv
ciAoYXV0byYgYXVkaW9UcmFja0luZm8gOiBzZWdtZW50LmF1ZGlvVHJhY2tzKSB7Ci0gICAgICAg
ICAgICBpZiAoYXVkaW9UcmFja3MoKS0+bGVuZ3RoKCkgPT0gMSkgewotICAgICAgICAgICAgICAg
IGF1ZGlvVHJhY2tzKCktPml0ZW0oMCktPnNldFByaXZhdGUoYXVkaW9UcmFja0luZm8udHJhY2sp
OworICAgICAgICAgICAgaWYgKGF1ZGlvVHJhY2tzKCkubGVuZ3RoKCkgPT0gMSkgeworICAgICAg
ICAgICAgICAgIGF1ZGlvVHJhY2tzKCkuaXRlbSgwKS0+c2V0UHJpdmF0ZSgqYXVkaW9UcmFja0lu
Zm8udHJhY2spOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBhdXRvIGF1ZGlvVHJhY2sgPSBhdWRpb1RyYWNrcygpLT5nZXRUcmFja0J5SWQoYXVk
aW9UcmFja0luZm8udHJhY2stPmlkKCkpOworICAgICAgICAgICAgYXV0byBhdWRpb1RyYWNrID0g
YXVkaW9UcmFja3MoKS5nZXRUcmFja0J5SWQoYXVkaW9UcmFja0luZm8udHJhY2stPmlkKCkpOwog
ICAgICAgICAgICAgQVNTRVJUKGF1ZGlvVHJhY2spOwotICAgICAgICAgICAgYXVkaW9UcmFjay0+
c2V0UHJpdmF0ZShhdWRpb1RyYWNrSW5mby50cmFjayk7CisgICAgICAgICAgICBhdWRpb1RyYWNr
LT5zZXRQcml2YXRlKCphdWRpb1RyYWNrSW5mby50cmFjayk7CiAgICAgICAgIH0KIAotICAgICAg
ICBBU1NFUlQoc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkgPT0gdmlkZW9UcmFja3MoKS0+bGVu
Z3RoKCkpOworICAgICAgICBBU1NFUlQoc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkgPT0gdmlk
ZW9UcmFja3MoKS5sZW5ndGgoKSk7CiAgICAgICAgIGZvciAoYXV0byYgdmlkZW9UcmFja0luZm8g
OiBzZWdtZW50LnZpZGVvVHJhY2tzKSB7Ci0gICAgICAgICAgICBpZiAodmlkZW9UcmFja3MoKS0+
bGVuZ3RoKCkgPT0gMSkgewotICAgICAgICAgICAgICAgIHZpZGVvVHJhY2tzKCktPml0ZW0oMCkt
PnNldFByaXZhdGUodmlkZW9UcmFja0luZm8udHJhY2spOworICAgICAgICAgICAgaWYgKHZpZGVv
VHJhY2tzKCkubGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgICAgIHZpZGVvVHJhY2tzKCku
aXRlbSgwKS0+c2V0UHJpdmF0ZSgqdmlkZW9UcmFja0luZm8udHJhY2spOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBhdXRvIHZpZGVvVHJhY2sg
PSB2aWRlb1RyYWNrcygpLT5nZXRUcmFja0J5SWQodmlkZW9UcmFja0luZm8udHJhY2stPmlkKCkp
OworICAgICAgICAgICAgYXV0byB2aWRlb1RyYWNrID0gdmlkZW9UcmFja3MoKS5nZXRUcmFja0J5
SWQodmlkZW9UcmFja0luZm8udHJhY2stPmlkKCkpOwogICAgICAgICAgICAgQVNTRVJUKHZpZGVv
VHJhY2spOwotICAgICAgICAgICAgdmlkZW9UcmFjay0+c2V0UHJpdmF0ZSh2aWRlb1RyYWNrSW5m
by50cmFjayk7CisgICAgICAgICAgICB2aWRlb1RyYWNrLT5zZXRQcml2YXRlKCp2aWRlb1RyYWNr
SW5mby50cmFjayk7CiAgICAgICAgIH0KIAotICAgICAgICBBU1NFUlQoc2VnbWVudC50ZXh0VHJh
Y2tzLnNpemUoKSA9PSB0ZXh0VHJhY2tzKCktPmxlbmd0aCgpKTsKKyAgICAgICAgQVNTRVJUKHNl
Z21lbnQudGV4dFRyYWNrcy5zaXplKCkgPT0gdGV4dFRyYWNrcygpLmxlbmd0aCgpKTsKICAgICAg
ICAgZm9yIChhdXRvJiB0ZXh0VHJhY2tJbmZvIDogc2VnbWVudC50ZXh0VHJhY2tzKSB7Ci0gICAg
ICAgICAgICBpZiAodGV4dFRyYWNrcygpLT5sZW5ndGgoKSA9PSAxKSB7Ci0gICAgICAgICAgICAg
ICAgZG93bmNhc3Q8SW5iYW5kVGV4dFRyYWNrPigqdGV4dFRyYWNrcygpLT5pdGVtKDApKS5zZXRQ
cml2YXRlKHRleHRUcmFja0luZm8udHJhY2spOworICAgICAgICAgICAgaWYgKHRleHRUcmFja3Mo
KS5sZW5ndGgoKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgZG93bmNhc3Q8SW5iYW5kVGV4dFRy
YWNrPigqdGV4dFRyYWNrcygpLml0ZW0oMCkpLnNldFByaXZhdGUoKnRleHRUcmFja0luZm8udHJh
Y2spOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBhdXRvIHRleHRUcmFjayA9IHRleHRUcmFja3MoKS0+Z2V0VHJhY2tCeUlkKHRleHRUcmFja0lu
Zm8udHJhY2stPmlkKCkpOworICAgICAgICAgICAgYXV0byB0ZXh0VHJhY2sgPSB0ZXh0VHJhY2tz
KCkuZ2V0VHJhY2tCeUlkKHRleHRUcmFja0luZm8udHJhY2stPmlkKCkpOwogICAgICAgICAgICAg
QVNTRVJUKHRleHRUcmFjayk7Ci0gICAgICAgICAgICBkb3duY2FzdDxJbmJhbmRUZXh0VHJhY2s+
KCp0ZXh0VHJhY2spLnNldFByaXZhdGUodGV4dFRyYWNrSW5mby50cmFjayk7CisgICAgICAgICAg
ICBkb3duY2FzdDxJbmJhbmRUZXh0VHJhY2s+KCp0ZXh0VHJhY2spLnNldFByaXZhdGUoKnRleHRU
cmFja0luZm8udHJhY2spOwogICAgICAgICB9CiAKICAgICAgICAgLy8gMy4zIFNldCB0aGUgbmVl
ZCByYW5kb20gYWNjZXNzIHBvaW50IGZsYWcgb24gYWxsIHRyYWNrIGJ1ZmZlcnMgdG8gdHJ1ZS4K
QEAgLTEwNzYsMTYgKzEwNzAsMTQgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKIAogICAgICAg
ICAvLyA1LjIgRm9yIGVhY2ggYXVkaW8gdHJhY2sgaW4gdGhlIGluaXRpYWxpemF0aW9uIHNlZ21l
bnQsIHJ1biBmb2xsb3dpbmcgc3RlcHM6CiAgICAgICAgIGZvciAoYXV0byYgYXVkaW9UcmFja0lu
Zm8gOiBzZWdtZW50LmF1ZGlvVHJhY2tzKSB7Ci0gICAgICAgICAgICBBdWRpb1RyYWNrUHJpdmF0
ZSogYXVkaW9UcmFja1ByaXZhdGUgPSBhdWRpb1RyYWNrSW5mby50cmFjay5nZXQoKTsKLQogICAg
ICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBzdGVwcyA1LjIuMS01LjIuOC4xIGFzIHBlciBF
ZGl0b3IncyBEcmFmdCAwOSBKYW51YXJ5IDIwMTUsIGFuZCByZW9yZGVyIHRoaXMKICAgICAgICAg
ICAgIC8vIDUuMi4xIExldCBuZXcgYXVkaW8gdHJhY2sgYmUgYSBuZXcgQXVkaW9UcmFjayBvYmpl
Y3QuCiAgICAgICAgICAgICAvLyA1LjIuMiBHZW5lcmF0ZSBhIHVuaXF1ZSBJRCBhbmQgYXNzaWdu
IGl0IHRvIHRoZSBpZCBwcm9wZXJ0eSBvbiBuZXcgdmlkZW8gdHJhY2suCi0gICAgICAgICAgICBh
dXRvIG5ld0F1ZGlvVHJhY2sgPSBBdWRpb1RyYWNrOjpjcmVhdGUodGhpcywgYXVkaW9UcmFja1By
aXZhdGUpOworICAgICAgICAgICAgYXV0byBuZXdBdWRpb1RyYWNrID0gQXVkaW9UcmFjazo6Y3Jl
YXRlKCp0aGlzLCAqYXVkaW9UcmFja0luZm8udHJhY2spOwogICAgICAgICAgICAgbmV3QXVkaW9U
cmFjay0+c2V0U291cmNlQnVmZmVyKHRoaXMpOwogCiAgICAgICAgICAgICAvLyA1LjIuMyBJZiBh
dWRpb1RyYWNrcy5sZW5ndGggZXF1YWxzIDAsIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6
Ci0gICAgICAgICAgICBpZiAoIWF1ZGlvVHJhY2tzKCktPmxlbmd0aCgpKSB7CisgICAgICAgICAg
ICBpZiAoIWF1ZGlvVHJhY2tzKCkubGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICAvLyA1LjIu
My4xIFNldCB0aGUgZW5hYmxlZCBwcm9wZXJ0eSBvbiBuZXcgYXVkaW8gdHJhY2sgdG8gdHJ1ZS4K
ICAgICAgICAgICAgICAgICBuZXdBdWRpb1RyYWNrLT5zZXRFbmFibGVkKHRydWUpOwogCkBAIC0x
MDk3LDcgKzEwODksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURp
ZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogICAgICAgICAgICAgLy8g
NS4yLjUgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRyYWNr
LCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMKICAgICAgICAgICAgIC8vIG5vdCBjYW5jZWxh
YmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGludGVyZmFjZSwgYXQgdGhlIEF1ZGlv
VHJhY2tMaXN0IG9iamVjdAogICAgICAgICAgICAgLy8gcmVmZXJlbmNlZCBieSB0aGUgYXVkaW9U
cmFja3MgYXR0cmlidXRlIG9uIHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4KLSAgICAgICAgICAg
IGF1ZGlvVHJhY2tzKCktPmFwcGVuZChuZXdBdWRpb1RyYWNrLmNvcHlSZWYoKSk7CisgICAgICAg
ICAgICBhdWRpb1RyYWNrcygpLmFwcGVuZChuZXdBdWRpb1RyYWNrLmNvcHlSZWYoKSk7CiAKICAg
ICAgICAgICAgIC8vIDUuMi42IEFkZCBuZXcgYXVkaW8gdHJhY2sgdG8gdGhlIGF1ZGlvVHJhY2tz
IGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAgICAgICAgICAgIC8vIDUuMi43
IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0cmFjaywgdGhh
dCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCkBAIC0xMTA3LDcgKzEwOTksNyBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21l
bnQoU291cmNlQnVmZgogCiAgICAgICAgICAgICAvLyA1LjIuOCBDcmVhdGUgYSBuZXcgdHJhY2sg
YnVmZmVyIHRvIHN0b3JlIGNvZGVkIGZyYW1lcyBmb3IgdGhpcyB0cmFjay4KICAgICAgICAgICAg
IEFTU0VSVCghbV90cmFja0J1ZmZlck1hcC5jb250YWlucyhuZXdBdWRpb1RyYWNrLT5pZCgpKSk7
Ci0gICAgICAgICAgICBUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVmZmVyTWFw
LmFkZChuZXdBdWRpb1RyYWNrLT5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFsdWU7
CisgICAgICAgICAgICBhdXRvJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKG5l
d0F1ZGlvVHJhY2stPmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKIAogICAg
ICAgICAgICAgLy8gNS4yLjkgQWRkIHRoZSB0cmFjayBkZXNjcmlwdGlvbiBmb3IgdGhpcyB0cmFj
ayB0byB0aGUgdHJhY2sgYnVmZmVyLgogICAgICAgICAgICAgdHJhY2tCdWZmZXIuZGVzY3JpcHRp
b24gPSBhdWRpb1RyYWNrSW5mby5kZXNjcmlwdGlvbjsKQEAgLTExMTcsMTYgKzExMDksMTQgQEAg
dm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6
YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKIAogICAgICAgICAvLyA1LjMgRm9yIGVhY2ggdmlkZW8g
dHJhY2sgaW4gdGhlIGluaXRpYWxpemF0aW9uIHNlZ21lbnQsIHJ1biBmb2xsb3dpbmcgc3RlcHM6
CiAgICAgICAgIGZvciAoYXV0byYgdmlkZW9UcmFja0luZm8gOiBzZWdtZW50LnZpZGVvVHJhY2tz
KSB7Ci0gICAgICAgICAgICBWaWRlb1RyYWNrUHJpdmF0ZSogdmlkZW9UcmFja1ByaXZhdGUgPSB2
aWRlb1RyYWNrSW5mby50cmFjay5nZXQoKTsKLQogICAgICAgICAgICAgLy8gRklYTUU6IEltcGxl
bWVudCBzdGVwcyA1LjMuMS01LjMuOC4xIGFzIHBlciBFZGl0b3IncyBEcmFmdCAwOSBKYW51YXJ5
IDIwMTUsIGFuZCByZW9yZGVyIHRoaXMKICAgICAgICAgICAgIC8vIDUuMy4xIExldCBuZXcgdmlk
ZW8gdHJhY2sgYmUgYSBuZXcgVmlkZW9UcmFjayBvYmplY3QuCiAgICAgICAgICAgICAvLyA1LjMu
MiBHZW5lcmF0ZSBhIHVuaXF1ZSBJRCBhbmQgYXNzaWduIGl0IHRvIHRoZSBpZCBwcm9wZXJ0eSBv
biBuZXcgdmlkZW8gdHJhY2suCi0gICAgICAgICAgICBhdXRvIG5ld1ZpZGVvVHJhY2sgPSBWaWRl
b1RyYWNrOjpjcmVhdGUodGhpcywgdmlkZW9UcmFja1ByaXZhdGUpOworICAgICAgICAgICAgYXV0
byBuZXdWaWRlb1RyYWNrID0gVmlkZW9UcmFjazo6Y3JlYXRlKCp0aGlzLCAqdmlkZW9UcmFja0lu
Zm8udHJhY2spOwogICAgICAgICAgICAgbmV3VmlkZW9UcmFjay0+c2V0U291cmNlQnVmZmVyKHRo
aXMpOwogCiAgICAgICAgICAgICAvLyA1LjMuMyBJZiB2aWRlb1RyYWNrcy5sZW5ndGggZXF1YWxz
IDAsIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgICAgICBpZiAoIXZpZGVv
VHJhY2tzKCktPmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpZiAoIXZpZGVvVHJhY2tzKCkubGVu
Z3RoKCkpIHsKICAgICAgICAgICAgICAgICAvLyA1LjMuMy4xIFNldCB0aGUgc2VsZWN0ZWQgcHJv
cGVydHkgb24gbmV3IHZpZGVvIHRyYWNrIHRvIHRydWUuCiAgICAgICAgICAgICAgICAgbmV3Vmlk
ZW9UcmFjay0+c2V0U2VsZWN0ZWQodHJ1ZSk7CiAKQEAgLTExMzgsNyArMTEyOCw3IEBAIHZvaWQg
U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9u
U2VnbWVudChTb3VyY2VCdWZmCiAgICAgICAgICAgICAvLyA1LjMuNSBRdWV1ZSBhIHRhc2sgdG8g
ZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgYWRkdHJhY2ssIHRoYXQgZG9lcyBub3QgYnViYmxl
IGFuZCBpcwogICAgICAgICAgICAgLy8gbm90IGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMgdGhl
IFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0CiAgICAg
ICAgICAgICAvLyByZWZlcmVuY2VkIGJ5IHRoZSB2aWRlb1RyYWNrcyBhdHRyaWJ1dGUgb24gdGhp
cyBTb3VyY2VCdWZmZXIgb2JqZWN0LgotICAgICAgICAgICAgdmlkZW9UcmFja3MoKS0+YXBwZW5k
KG5ld1ZpZGVvVHJhY2suY29weVJlZigpKTsKKyAgICAgICAgICAgIHZpZGVvVHJhY2tzKCkuYXBw
ZW5kKG5ld1ZpZGVvVHJhY2suY29weVJlZigpKTsKIAogICAgICAgICAgICAgLy8gNS4zLjYgQWRk
IG5ldyB2aWRlbyB0cmFjayB0byB0aGUgdmlkZW9UcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1M
TWVkaWFFbGVtZW50LgogICAgICAgICAgICAgLy8gNS4zLjcgUXVldWUgYSB0YXNrIHRvIGZpcmUg
YSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQg
aXMKQEAgLTExNDgsNyArMTEzOCw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQ
cml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmCiAKICAgICAg
ICAgICAgIC8vIDUuMy44IENyZWF0ZSBhIG5ldyB0cmFjayBidWZmZXIgdG8gc3RvcmUgY29kZWQg
ZnJhbWVzIGZvciB0aGlzIHRyYWNrLgogICAgICAgICAgICAgQVNTRVJUKCFtX3RyYWNrQnVmZmVy
TWFwLmNvbnRhaW5zKG5ld1ZpZGVvVHJhY2stPmlkKCkpKTsKLSAgICAgICAgICAgIFRyYWNrQnVm
ZmVyJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKG5ld1ZpZGVvVHJhY2stPmlk
KCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgICAgIGF1dG8mIHRy
YWNrQnVmZmVyID0gbV90cmFja0J1ZmZlck1hcC5hZGQobmV3VmlkZW9UcmFjay0+aWQoKSwgVHJh
Y2tCdWZmZXIoKSkuaXRlcmF0b3ItPnZhbHVlOwogCiAgICAgICAgICAgICAvLyA1LjMuOSBBZGQg
dGhlIHRyYWNrIGRlc2NyaXB0aW9uIGZvciB0aGlzIHRyYWNrIHRvIHRoZSB0cmFjayBidWZmZXIu
CiAgICAgICAgICAgICB0cmFja0J1ZmZlci5kZXNjcmlwdGlvbiA9IHZpZGVvVHJhY2tJbmZvLmRl
c2NyaXB0aW9uOwpAQCAtMTE1OCwzMyArMTE0OCwzMyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291
cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVm
ZgogCiAgICAgICAgIC8vIDUuNCBGb3IgZWFjaCB0ZXh0IHRyYWNrIGluIHRoZSBpbml0aWFsaXph
dGlvbiBzZWdtZW50LCBydW4gZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICBmb3IgKGF1dG8mIHRl
eHRUcmFja0luZm8gOiBzZWdtZW50LnRleHRUcmFja3MpIHsKLSAgICAgICAgICAgIEluYmFuZFRl
eHRUcmFja1ByaXZhdGUqIHRleHRUcmFja1ByaXZhdGUgPSB0ZXh0VHJhY2tJbmZvLnRyYWNrLmdl
dCgpOworICAgICAgICAgICAgYXV0byYgdGV4dFRyYWNrUHJpdmF0ZSA9ICp0ZXh0VHJhY2tJbmZv
LnRyYWNrOwogCiAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHN0ZXBzIDUuNC4xLTUu
NC44LjEgYXMgcGVyIEVkaXRvcidzIERyYWZ0IDA5IEphbnVhcnkgMjAxNSwgYW5kIHJlb3JkZXIg
dGhpcwogICAgICAgICAgICAgLy8gNS40LjEgTGV0IG5ldyB0ZXh0IHRyYWNrIGJlIGEgbmV3IFRl
eHRUcmFjayBvYmplY3Qgd2l0aCBpdHMgcHJvcGVydGllcyBwb3B1bGF0ZWQgd2l0aCB0aGUKICAg
ICAgICAgICAgIC8vIGFwcHJvcHJpYXRlIGluZm9ybWF0aW9uIGZyb20gdGhlIGluaXRpYWxpemF0
aW9uIHNlZ21lbnQuCi0gICAgICAgICAgICBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrPiBuZXdUZXh0
VHJhY2sgPSBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCks
IHRoaXMsIHRleHRUcmFja1ByaXZhdGUpOworICAgICAgICAgICAgYXV0byBuZXdUZXh0VHJhY2sg
PSBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhp
cywgdGV4dFRyYWNrUHJpdmF0ZSk7CiAKICAgICAgICAgICAgIC8vIDUuNC4yIElmIHRoZSBtb2Rl
IHByb3BlcnR5IG9uIG5ldyB0ZXh0IHRyYWNrIGVxdWFscyAic2hvd2luZyIgb3IgImhpZGRlbiIs
IHRoZW4gc2V0IGFjdGl2ZQogICAgICAgICAgICAgLy8gdHJhY2sgZmxhZyB0byB0cnVlLgotICAg
ICAgICAgICAgaWYgKHRleHRUcmFja1ByaXZhdGUtPm1vZGUoKSAhPSBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlOjpEaXNhYmxlZCkKKyAgICAgICAgICAgIGlmICh0ZXh0VHJhY2tQcml2YXRlLm1vZGUo
KSAhPSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpEaXNhYmxlZCkKICAgICAgICAgICAgICAgICBh
Y3RpdmVUcmFja0ZsYWcgPSB0cnVlOwogCiAgICAgICAgICAgICAvLyA1LjQuMyBBZGQgbmV3IHRl
eHQgdHJhY2sgdG8gdGhlIHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoaXMgU291cmNlQnVmZmVy
IG9iamVjdC4KICAgICAgICAgICAgIC8vIDUuNC40IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1
c3RlZCBldmVudCBuYW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCiAg
ICAgICAgICAgICAvLyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVu
dCBpbnRlcmZhY2UsIGF0IHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoaXMKICAgICAgICAgICAg
IC8vIFNvdXJjZUJ1ZmZlciBvYmplY3QuCi0gICAgICAgICAgICB0ZXh0VHJhY2tzKCktPmFwcGVu
ZCgqbmV3VGV4dFRyYWNrKTsKKyAgICAgICAgICAgIHRleHRUcmFja3MoKS5hcHBlbmQobmV3VGV4
dFRyYWNrLmdldCgpKTsKIAogICAgICAgICAgICAgLy8gNS40LjUgQWRkIG5ldyB0ZXh0IHRyYWNr
IHRvIHRoZSB0ZXh0VHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAg
ICAgICAgICAgIC8vIDUuNC42IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBu
YW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCiAgICAgICAgICAgICAv
LyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZhY2Us
IGF0IHRoZSBUZXh0VHJhY2tMaXN0IG9iamVjdAogICAgICAgICAgICAgLy8gcmVmZXJlbmNlZCBi
eSB0aGUgdGV4dFRyYWNrcyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCi0gICAg
ICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja3MoKS5hcHBlbmQobmV3
VGV4dFRyYWNrLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgbV9zb3VyY2UtPm1lZGlh
RWxlbWVudCgpLT50ZXh0VHJhY2tzKCkuYXBwZW5kKFdURk1vdmUobmV3VGV4dFRyYWNrKSk7CiAK
ICAgICAgICAgICAgIC8vIDUuNC43IENyZWF0ZSBhIG5ldyB0cmFjayBidWZmZXIgdG8gc3RvcmUg
Y29kZWQgZnJhbWVzIGZvciB0aGlzIHRyYWNrLgotICAgICAgICAgICAgQVNTRVJUKCFtX3RyYWNr
QnVmZmVyTWFwLmNvbnRhaW5zKHRleHRUcmFja1ByaXZhdGUtPmlkKCkpKTsKLSAgICAgICAgICAg
IFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKHRleHRUcmFj
a1ByaXZhdGUtPmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAg
ICAgIEFTU0VSVCghbV90cmFja0J1ZmZlck1hcC5jb250YWlucyh0ZXh0VHJhY2tQcml2YXRlLmlk
KCkpKTsKKyAgICAgICAgICAgIGF1dG8mIHRyYWNrQnVmZmVyID0gbV90cmFja0J1ZmZlck1hcC5h
ZGQodGV4dFRyYWNrUHJpdmF0ZS5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFsdWU7
CiAKICAgICAgICAgICAgIC8vIDUuNC44IEFkZCB0aGUgdHJhY2sgZGVzY3JpcHRpb24gZm9yIHRo
aXMgdHJhY2sgdG8gdGhlIHRyYWNrIGJ1ZmZlci4KICAgICAgICAgICAgIHRyYWNrQnVmZmVyLmRl
c2NyaXB0aW9uID0gdGV4dFRyYWNrSW5mby5kZXNjcmlwdGlvbjsKQEAgLTEyMzEsOSArMTIyMSw5
IEBAIGJvb2wgU291cmNlQnVmZmVyOjp2YWxpZGF0ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25z
dCBJbml0aWFsaXphdGlvblNlZ21lbnQmIHNlCiAKICAgICAvLyBOb3RlOiB0aG9zZSBhcmUgY2hl
Y2tzIGZyb20gc3RlcCAzLjEKICAgICAvLyAgICogVGhlIG51bWJlciBvZiBhdWRpbywgdmlkZW8s
IGFuZCB0ZXh0IHRyYWNrcyBtYXRjaCB3aGF0IHdhcyBpbiB0aGUgZmlyc3QgaW5pdGlhbGl6YXRp
b24gc2VnbWVudC4KLSAgICBpZiAoc2VnbWVudC5hdWRpb1RyYWNrcy5zaXplKCkgIT0gYXVkaW9U
cmFja3MoKS0+bGVuZ3RoKCkKLSAgICAgICAgfHwgc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkg
IT0gdmlkZW9UcmFja3MoKS0+bGVuZ3RoKCkKLSAgICAgICAgfHwgc2VnbWVudC50ZXh0VHJhY2tz
LnNpemUoKSAhPSB0ZXh0VHJhY2tzKCktPmxlbmd0aCgpKQorICAgIGlmIChzZWdtZW50LmF1ZGlv
VHJhY2tzLnNpemUoKSAhPSBhdWRpb1RyYWNrcygpLmxlbmd0aCgpCisgICAgICAgIHx8IHNlZ21l
bnQudmlkZW9UcmFja3Muc2l6ZSgpICE9IHZpZGVvVHJhY2tzKCkubGVuZ3RoKCkKKyAgICAgICAg
fHwgc2VnbWVudC50ZXh0VHJhY2tzLnNpemUoKSAhPSB0ZXh0VHJhY2tzKCkubGVuZ3RoKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vICAgKiBUaGUgY29kZWNzIGZvciBlYWNoIHRy
YWNrLCBtYXRjaCB3aGF0IHdhcyBzcGVjaWZpZWQgaW4gdGhlIGZpcnN0IGluaXRpYWxpemF0aW9u
IHNlZ21lbnQuCkBAIC0xMzE5LDcgKzEzMDksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6YXBwZW5k
RXJyb3IoYm9vbCBkZWNvZGVFcnJvclBhcmFtKQogICAgICAgICBtX3NvdXJjZS0+c3RyZWFtRW5k
ZWRXaXRoRXJyb3IoTWVkaWFTb3VyY2U6OkVuZE9mU3RyZWFtRXJyb3I6OkRlY29kZSk7CiB9CiAK
LXZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShT
b3VyY2VCdWZmZXJQcml2YXRlKiwgTWVkaWFTYW1wbGUmIHNhbXBsZSkKK3ZvaWQgU291cmNlQnVm
ZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2Ft
cGxlKQogewogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTY2Niwz
MCArMTY1NiwzMCBAQCBib29sIFNvdXJjZUJ1ZmZlcjo6aGFzVmlkZW8oKSBjb25zdAogICAgIHJl
dHVybiBtX3ZpZGVvVHJhY2tzICYmIG1fdmlkZW9UcmFja3MtPmxlbmd0aCgpOwogfQogCi1ib29s
IFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKGNvbnN0IFNvdXJjZUJ1
ZmZlclByaXZhdGUqKSBjb25zdAorYm9vbCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZh
dGVIYXNBdWRpbygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc0F1ZGlvKCk7CiB9CiAKLWJvb2wg
U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8oY29uc3QgU291cmNlQnVm
ZmVyUHJpdmF0ZSopIGNvbnN0Citib29sIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0
ZUhhc1ZpZGVvKCkgY29uc3QKIHsKICAgICByZXR1cm4gaGFzVmlkZW8oKTsKIH0KIAotdm9pZCBT
b3VyY2VCdWZmZXI6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayogdHJhY2sp
Cit2b2lkIFNvdXJjZUJ1ZmZlcjo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNr
JiB0cmFjaykKIHsKICAgICAvLyAyLjQuNSBDaGFuZ2VzIHRvIHNlbGVjdGVkL2VuYWJsZWQgdHJh
Y2sgc3RhdGUKICAgICAvLyBJZiB0aGUgc2VsZWN0ZWQgdmlkZW8gdHJhY2sgY2hhbmdlcywgdGhl
biBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKICAgICAvLyAxLiBJZiB0aGUgU291cmNlQnVmZmVy
IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCB2aWRlbyB0cmFjayBpcyBu
b3QgYXNzb2NpYXRlZCB3aXRoCiAgICAgLy8gYW55IG90aGVyIGVuYWJsZWQgdHJhY2tzLCBydW4g
dGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAoIXRyYWNrLT5zZWxlY3RlZCgpCisgICAgaWYg
KCF0cmFjay5zZWxlY3RlZCgpCiAgICAgICAgICYmICghbV92aWRlb1RyYWNrcyB8fCAhbV92aWRl
b1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX2F1ZGlvVHJhY2tz
IHx8ICFtX2F1ZGlvVHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAgICAgICAmJiAoIW1f
dGV4dFRyYWNrcyB8fCAhbV90ZXh0VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKSkgewogICAg
ICAgICAvLyAxLjEgUmVtb3ZlIHRoZSBTb3VyY2VCdWZmZXIgZnJvbSBhY3RpdmVTb3VyY2VCdWZm
ZXJzLgogICAgICAgICAvLyAxLjIgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQg
bmFtZWQgcmVtb3Zlc291cmNlYnVmZmVyIGF0IGFjdGl2ZVNvdXJjZUJ1ZmZlcnMKICAgICAgICAg
c2V0QWN0aXZlKGZhbHNlKTsKLSAgICB9IGVsc2UgaWYgKHRyYWNrLT5zZWxlY3RlZCgpKSB7Cisg
ICAgfSBlbHNlIGlmICh0cmFjay5zZWxlY3RlZCgpKSB7CiAgICAgICAgIC8vIDIuIElmIHRoZSBT
b3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBuZXdseSBzZWxlY3RlZCB2aWRlbyB0cmFj
ayBpcyBub3QgYWxyZWFkeSBpbiBhY3RpdmVTb3VyY2VCdWZmZXJzLAogICAgICAgICAvLyBydW4g
dGhlIGZvbGxvd2luZyBzdGVwczoKICAgICAgICAgLy8gMi4xIEFkZCB0aGUgU291cmNlQnVmZmVy
IHRvIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMuCkBAIC0xNjk3LDI2ICsxNjg3LDI2IEBAIHZvaWQgU291
cmNlQnVmZmVyOjp2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqIHRyYWNrKQog
ICAgICAgICBzZXRBY3RpdmUodHJ1ZSk7CiAgICAgfQogCi0gICAgaWYgKG1fdmlkZW9UcmFja3Mg
JiYgbV92aWRlb1RyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV92aWRlb1RyYWNr
cyAmJiBtX3ZpZGVvVHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fdmlkZW9UcmFj
a3MtPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIGlmICghaXNSZW1vdmVkKCkpCiAgICAg
ICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCh0
cmFjayk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjphdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQo
QXVkaW9UcmFjayogdHJhY2spCit2b2lkIFNvdXJjZUJ1ZmZlcjo6YXVkaW9UcmFja0VuYWJsZWRD
aGFuZ2VkKEF1ZGlvVHJhY2smIHRyYWNrKQogewogICAgIC8vIDIuNC41IENoYW5nZXMgdG8gc2Vs
ZWN0ZWQvZW5hYmxlZCB0cmFjayBzdGF0ZQogICAgIC8vIElmIGFuIGF1ZGlvIHRyYWNrIGJlY29t
ZXMgZGlzYWJsZWQgYW5kIHRoZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdHJh
Y2sgaXMgbm90CiAgICAgLy8gYXNzb2NpYXRlZCB3aXRoIGFueSBvdGhlciBlbmFibGVkIG9yIHNl
bGVjdGVkIHRyYWNrLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIGlmICghdHJh
Y2stPmVuYWJsZWQoKQorICAgIGlmICghdHJhY2suZW5hYmxlZCgpCiAgICAgICAgICYmICghbV92
aWRlb1RyYWNrcyB8fCAhbV92aWRlb1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAg
ICAgJiYgKCFtX2F1ZGlvVHJhY2tzIHx8ICFtX2F1ZGlvVHJhY2tzLT5pc0FueVRyYWNrRW5hYmxl
ZCgpKQogICAgICAgICAmJiAoIW1fdGV4dFRyYWNrcyB8fCAhbV90ZXh0VHJhY2tzLT5pc0FueVRy
YWNrRW5hYmxlZCgpKSkgewogICAgICAgICAvLyAxLiBSZW1vdmUgdGhlIFNvdXJjZUJ1ZmZlciBh
c3NvY2lhdGVkIHdpdGggdGhlIGF1ZGlvIHRyYWNrIGZyb20gYWN0aXZlU291cmNlQnVmZmVycwog
ICAgICAgICAvLyAyLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBy
ZW1vdmVzb3VyY2VidWZmZXIgYXQgYWN0aXZlU291cmNlQnVmZmVycwogICAgICAgICBzZXRBY3Rp
dmUoZmFsc2UpOwotICAgIH0gZWxzZSBpZiAodHJhY2stPmVuYWJsZWQoKSkgeworICAgIH0gZWxz
ZSBpZiAodHJhY2suZW5hYmxlZCgpKSB7CiAgICAgICAgIC8vIElmIGFuIGF1ZGlvIHRyYWNrIGJl
Y29tZXMgZW5hYmxlZCBhbmQgdGhlIFNvdXJjZUJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhpcyB0
cmFjayBpcwogICAgICAgICAvLyBub3QgYWxyZWFkeSBpbiBhY3RpdmVTb3VyY2VCdWZmZXJzLCB0
aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICAvLyAxLiBBZGQgdGhlIFNvdXJj
ZUJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhlIGF1ZGlvIHRyYWNrIHRvIGFjdGl2ZVNvdXJjZUJ1
ZmZlcnMKQEAgLTE3MjQsMTkgKzE3MTQsMTkgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OmF1ZGlvVHJh
Y2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKiB0cmFjaykKICAgICAgICAgc2V0QWN0aXZlKHRy
dWUpOwogICAgIH0KIAotICAgIGlmIChtX2F1ZGlvVHJhY2tzICYmIG1fYXVkaW9UcmFja3MtPmNv
bnRhaW5zKCp0cmFjaykpCisgICAgaWYgKG1fYXVkaW9UcmFja3MgJiYgbV9hdWRpb1RyYWNrcy0+
Y29udGFpbnModHJhY2spKQogICAgICAgICBtX2F1ZGlvVHJhY2tzLT5zY2hlZHVsZUNoYW5nZUV2
ZW50KCk7CiAKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFF
bGVtZW50KCktPmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCh0cmFjayk7CiB9CiAKLXZvaWQgU291
cmNlQnVmZmVyOjp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQordm9pZCBT
b3VyY2VCdWZmZXI6OnRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7CiAg
ICAgLy8gMi40LjUgQ2hhbmdlcyB0byBzZWxlY3RlZC9lbmFibGVkIHRyYWNrIHN0YXRlCiAgICAg
Ly8gSWYgYSB0ZXh0IHRyYWNrIG1vZGUgYmVjb21lcyAiZGlzYWJsZWQiIGFuZCB0aGUgU291cmNl
QnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYWNrIGlzIG5vdAogICAgIC8vIGFzc29jaWF0
ZWQgd2l0aCBhbnkgb3RoZXIgZW5hYmxlZCBvciBzZWxlY3RlZCB0cmFjaywgdGhlbiBydW4gdGhl
IGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAodHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1v
ZGU6OkRpc2FibGVkCisgICAgaWYgKHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OkRp
c2FibGVkCiAgICAgICAgICYmICghbV92aWRlb1RyYWNrcyB8fCAhbV92aWRlb1RyYWNrcy0+aXNB
bnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX2F1ZGlvVHJhY2tzIHx8ICFtX2F1ZGlv
VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAgICAgICAmJiAoIW1fdGV4dFRyYWNrcyB8
fCAhbV90ZXh0VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKSkgewpAQCAtMTc1MSw1NiArMTc0
MSw1NiBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNr
KiB0cmFjaykKICAgICAgICAgc2V0QWN0aXZlKHRydWUpOwogICAgIH0KIAotICAgIGlmIChtX3Rl
eHRUcmFja3MgJiYgbV90ZXh0VHJhY2tzLT5jb250YWlucygqdHJhY2spKQorICAgIGlmIChtX3Rl
eHRUcmFja3MgJiYgbV90ZXh0VHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fdGV4
dFRyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogCiAgICAgaWYgKCFpc1JlbW92ZWQoKSkK
ICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tNb2RlQ2hhbmdlZCh0
cmFjayk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNr
KiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNr
QWRkQ3VlKFRleHRUcmFjayYgdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogewogICAgIGlmICgh
aXNSZW1vdmVkKCkpCiAgICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dGV4dFRyYWNr
QWRkQ3VlKHRyYWNrLCBjdWUpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrQWRk
Q3VlcyhUZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWVMaXN0IGNvbnN0KiBjdWVMaXN0KQor
dm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiB0cmFjaywgY29u
c3QgVGV4dFRyYWNrQ3VlTGlzdCYgY3VlTGlzdCkKIHsKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQog
ICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja0FkZEN1ZXModHJhY2ss
IGN1ZUxpc3QpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3VlKFRl
eHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBTb3VyY2VCdWZmZXI6OnRl
eHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKIHsK
ICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCkt
PnRleHRUcmFja1JlbW92ZUN1ZSh0cmFjaywgY3VlKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6
OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlTGlzdCBj
b25zdCogY3VlTGlzdCkKK3ZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRl
eHRUcmFjayYgdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZUxpc3QpCiB7CiAgICAg
aWYgKCFpc1JlbW92ZWQoKSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0
VHJhY2tSZW1vdmVDdWVzKHRyYWNrLCBjdWVMaXN0KTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6
OnRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIFNvdXJjZUJ1ZmZl
cjo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykKIHsKICAgICBpZiAoIWlz
UmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja0tp
bmRDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBB
dG9taWNTdHJpbmcgdHJhY2tJRCkKK3ZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2
YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNr
SUQpCiB7CiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQ
cml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyglcCkiLCB0aGlzKTsKICAgICBhdXRv
IGl0ID0gbV90cmFja0J1ZmZlck1hcC5maW5kKHRyYWNrSUQpOwogICAgIGlmIChpdCA9PSBtX3Ry
YWNrQnVmZmVyTWFwLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBUcmFja0J1ZmZlciYg
dHJhY2tCdWZmZXIgPSBpdC0+dmFsdWU7CisgICAgYXV0byYgdHJhY2tCdWZmZXIgPSBpdC0+dmFs
dWU7CiAgICAgaWYgKCF0cmFja0J1ZmZlci5uZWVkc1JlZW5xdWV1ZWluZyAmJiAhbV9zb3VyY2Ut
PmlzU2Vla2luZygpKQogICAgICAgICBwcm92aWRlTWVkaWFEYXRhKHRyYWNrQnVmZmVyLCB0cmFj
a0lEKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoVHJhY2tCdWZm
ZXImIHRyYWNrQnVmZmVyLCBBdG9taWNTdHJpbmcgdHJhY2tJRCkKK3ZvaWQgU291cmNlQnVmZmVy
Ojpwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgY29uc3QgQXRvbWlj
U3RyaW5nJiB0cmFja0lEKQogewogICAgIGlmIChtX3NvdXJjZS0+aXNTZWVraW5nKCkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTE4MzQsNyArMTgyNCw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpwcm92
aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5nIHRyYWNr
CiAKICAgICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSA9IHNh
bXBsZS0+cHJlc2VudGF0aW9uVGltZSgpOwogICAgICAgICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1
ZWREZWNvZGVFbmRUaW1lID0gc2FtcGxlLT5kZWNvZGVUaW1lKCkgKyBzYW1wbGUtPmR1cmF0aW9u
KCk7Ci0gICAgICAgIG1fcHJpdmF0ZS0+ZW5xdWV1ZVNhbXBsZShXVEZNb3ZlKHNhbXBsZSksIHRy
YWNrSUQpOworICAgICAgICBtX3ByaXZhdGUtPmVucXVldWVTYW1wbGUoc2FtcGxlLnJlbGVhc2VO
b25OdWxsKCksIHRyYWNrSUQpOwogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgKytlbnF1ZXVl
ZFNhbXBsZXM7CiAjZW5kaWYKQEAgLTE4NDMsNyArMTgzMyw3IEBAIHZvaWQgU291cmNlQnVmZmVy
Ojpwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5n
IHRyYWNrCiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyOjpwcm92aWRlTWVkaWFE
YXRhKCVwKSAtIEVucXVldWVkICV1IHNhbXBsZXMiLCB0aGlzLCBlbnF1ZXVlZFNhbXBsZXMpOwog
fQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6cmVlbnF1ZXVlTWVkaWFGb3JUaW1lKFRyYWNrQnVmZmVy
JiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5nIHRyYWNrSUQsIGNvbnN0IE1lZGlhVGltZSYgdGlt
ZSkKK3ZvaWQgU291cmNlQnVmZmVyOjpyZWVucXVldWVNZWRpYUZvclRpbWUoVHJhY2tCdWZmZXIm
IHRyYWNrQnVmZmVyLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQsIGNvbnN0IE1lZGlhVGlt
ZSYgdGltZSkKIHsKICAgICBtX3ByaXZhdGUtPmZsdXNoKHRyYWNrSUQpOwogICAgIHRyYWNrQnVm
ZmVyLmRlY29kZVF1ZXVlLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAppbmRleCBkOWUxNzQ3OTk5MjRhZmIwZTg4ZDc0Nzcy
ZThmOGE5MWEyY2YwMmIwLi41YTE0MmQ0Y2ExMDIzNTRlZWQ4MGJjMWFjMWJlYmMzMTU3NmM4Zjhm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1
ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIEF1ZGlvVHJhY2tMaXN0OwogY2xhc3Mg
QnVmZmVyU291cmNlOwogY2xhc3MgTWVkaWFTb3VyY2U7CiBjbGFzcyBQbGF0Zm9ybVRpbWVSYW5n
ZXM7CitjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlOwogY2xhc3MgVGV4dFRyYWNrTGlzdDsKIGNs
YXNzIFRpbWVSYW5nZXM7CiBjbGFzcyBWaWRlb1RyYWNrTGlzdDsKQEAgLTY0LDkgKzY1LDkgQEAg
cHVibGljOgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFRpbWVzdGFtcE9mZnNldChkb3VibGUp
OwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIFZpZGVvVHJhY2tMaXN0KiB2aWRlb1Ry
YWNrcygpOwotICAgIEF1ZGlvVHJhY2tMaXN0KiBhdWRpb1RyYWNrcygpOwotICAgIFRleHRUcmFj
a0xpc3QqIHRleHRUcmFja3MoKTsKKyAgICBWaWRlb1RyYWNrTGlzdCYgdmlkZW9UcmFja3MoKTsK
KyAgICBBdWRpb1RyYWNrTGlzdCYgYXVkaW9UcmFja3MoKTsKKyAgICBUZXh0VHJhY2tMaXN0JiB0
ZXh0VHJhY2tzKCk7CiAjZW5kaWYKIAogICAgIGRvdWJsZSBhcHBlbmRXaW5kb3dTdGFydCgpIGNv
bnN0OwpAQCAtMTI0LDI1ICsxMjUsMjQgQEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiBhY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9j
dW1lbnRTdXNwZW5zaW9uKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmZlclByaXZhdGUq
LCBjb25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmKSBmaW5hbDsKLSAgICB2b2lkIHNvdXJjZUJ1
ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBNZWRpYVNh
bXBsZSYpIGZpbmFsOwotICAgIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKGNvbnN0
IFNvdXJjZUJ1ZmZlclByaXZhdGUqKSBjb25zdCBmaW5hbDsKLSAgICBib29sIHNvdXJjZUJ1ZmZl
clByaXZhdGVIYXNWaWRlbyhjb25zdCBTb3VyY2VCdWZmZXJQcml2YXRlKikgY29uc3QgZmluYWw7
Ci0gICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxl
cyhTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXRvbWljU3RyaW5nIHRyYWNrSUQpIGZpbmFsOwotICAg
IE1lZGlhVGltZSBzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKFNv
dXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIG5l
Z2F0aXZlVGhyZXNob2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKSBmaW5h
bDsKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZm
ZXJQcml2YXRlKiwgQXBwZW5kUmVzdWx0KSBmaW5hbDsKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoU291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBl
cnJvckNvZGUpIGZpbmFsOwotCi0gICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVk
aW9UcmFjayopIGZpbmFsOwotCi0gICAgdm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZp
ZGVvVHJhY2sqKSBmaW5hbDsKLQotICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRy
YWNrKikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqKSBm
aW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRy
YWNrQ3VlTGlzdCopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJh
Y2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tB
ZGRDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJh
Y2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgZmluYWw7CisgICAgdm9pZCBz
b3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBJ
bml0aWFsaXphdGlvblNlZ21lbnQmKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZh
dGVEaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJikgZmluYWw7CisgICAgYm9vbCBzb3VyY2VC
dWZmZXJQcml2YXRlSGFzQXVkaW8oKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHNvdXJjZUJ1ZmZl
clByaXZhdGVIYXNWaWRlbygpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc291cmNlQnVmZmVyUHJp
dmF0ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFj
a0lEKSBmaW5hbDsKKyAgICBNZWRpYVRpbWUgc291cmNlQnVmZmVyUHJpdmF0ZUZhc3RTZWVrVGlt
ZUZvck1lZGlhVGltZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZl
VGhyZXNob2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKSBmaW5hbDsKKyAg
ICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShBcHBlbmRSZXN1bHQpIGZp
bmFsOworICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJv
cihpbnQgZXJyb3JDb2RlKSBmaW5hbDsKKworICAgIHZvaWQgYXVkaW9UcmFja0VuYWJsZWRDaGFu
Z2VkKEF1ZGlvVHJhY2smKSBmaW5hbDsKKyAgICB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5n
ZWQoVmlkZW9UcmFjayYpIGZpbmFsOworCisgICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChU
ZXh0VHJhY2smKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFj
ayYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBU
ZXh0VHJhY2tDdWVMaXN0JikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRl
eHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRU
cmFja0FkZEN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHRl
eHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKIAogICAg
IEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gU291cmNlQnVmZmVyRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAKQEAgLTE1
Nyw4ICsxNTcsOCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCB2YWxpZGF0ZUluaXRpYWxpemF0aW9u
U2VnbWVudChjb25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmKTsKIAotICAgIHZvaWQgcmVlbnF1
ZXVlTWVkaWFGb3JUaW1lKFRyYWNrQnVmZmVyJiwgQXRvbWljU3RyaW5nIHRyYWNrSUQsIGNvbnN0
IE1lZGlhVGltZSYpOwotICAgIHZvaWQgcHJvdmlkZU1lZGlhRGF0YShUcmFja0J1ZmZlciYsIEF0
b21pY1N0cmluZyB0cmFja0lEKTsKKyAgICB2b2lkIHJlZW5xdWV1ZU1lZGlhRm9yVGltZShUcmFj
a0J1ZmZlciYsIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCwgY29uc3QgTWVkaWFUaW1lJik7
CisgICAgdm9pZCBwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiwgY29uc3QgQXRvbWljU3Ry
aW5nJiB0cmFja0lEKTsKICAgICB2b2lkIGRpZERyb3BTYW1wbGUoKTsKICAgICB2b2lkIGV2aWN0
Q29kZWRGcmFtZXMoc2l6ZV90IG5ld0RhdGFTaXplKTsKICAgICBzaXplX3QgbWF4aW11bUJ1ZmZl
clNpemUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA1NzhjYmRhNDMxZDMwYzk5M2NmNTcwM2ExNDExMjM0Y2FmODhh
YWQ2Li45MGY1Y2FiMDJmZGFlNmQzNjA3NmY5ZDgxMjkzN2NiZWQ5NGI3YTMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjE0
LDggKzI2MTQsOCBAQAogCQk2RTNGQUU4RTE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRl
eHR1cmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkUzRkFFOEMxNDczM0ZEQjAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmNwcCAqLzsgfTsK
IAkJNkUzRkFFOEYxNDczM0ZEQjAwRTQyMzA2IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RD
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4
RDE0NzMzRkRCMDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCAqLzsgfTsK
IAkJNkUzRkFFOEYxNDczM0ZEQjAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4RDE0NzMzRkRC
MDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuaCAqLzsgfTsKLQkJNkU0N0U2NjAxMEI3OTQ0
QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJ
bmZvLmNwcCAqLzsgfTsKLQkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5m
by5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU0N0U2
NUYxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5oICovOyB9OworCQk2RTQ3RTY2MDEw
Qjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkU0N0U2NUUxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55
LmNwcCAqLzsgfTsKKwkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTQ3RTY1RjEwQjc5
NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuaCAqLzsgfTsKIAkJNkU0QUJDRDQxMzhFQTBCNzAwNzFE
MjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNEFCQ0QyMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxV
bmtub3duRWxlbWVudC5jcHAgKi87IH07CiAJCTZFNEFCQ0Q1MTM4RUEwQjcwMDcxRDI5MSAvKiBK
U0hUTUxVbmtub3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkU0QUJDRDMxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVt
ZW50LmggKi87IH07CiAJCTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRB
dHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2RTRFOTFBQTEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05OTE1LDgg
Kzk5MTUsOCBAQAogCQk2RTNGQUU4RDE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1
cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xEZXB0aFRleHR1cmUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFFOTAxNDczM0ZFQTAwRTQyMzA2
IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZFM0ZBRTkwMTQ3MzNGRUEwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVyZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR0xEZXB0aFRleHR1cmUuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJ
bmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMR2V0SW5m
by5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFNDdFNjVGMTBCNzk0NEIwMEIx
ODZDOCAvKiBXZWJHTEdldEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViR0xHZXRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFNDdFNjVFMTBC
Nzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJHTEFueS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZF
NDdFNjVGMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJHTEFueS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RTRBQkNEMjEzOEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MVW5rbm93bkVsZW1lbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTRBQkNEMzEzOEVBMEI3MDA3MUQyOTEg
LyogSlNIVE1MVW5rbm93bkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNIVE1MVW5rbm93bkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NkU0RTkxQUExMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY5MjgsOCArMTY5MjgsOCBAQAogCQkJCTQ5
QzdCOUFFMTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmNwcCAqLywKIAkJCQk0
OUM3QjlBRjEwNDJEMzJFMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5oICovLAogCQkJCTQ5
QzdCOUIwMTA0MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmlkbCAqLywKLQkJCQk2
RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCAqLywKLQkJCQk2RTQ3
RTY1RjEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmggKi8sCisJCQkJNkU0N0U2NUUx
MEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmNwcCAqLywKKwkJCQk2RTQ3RTY1RjEwQjc5NDRC
MDBCMTg2QzggLyogV2ViR0xBbnkuaCAqLywKIAkJCQk5M0YxRDVCNzEyRDUzMkM0MDA4MzJCRUMg
LyogV2ViR0xMb3NlQ29udGV4dC5jcHAgKi8sCiAJCQkJOTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVD
IC8qIFdlYkdMTG9zZUNvbnRleHQuaCAqLywKIAkJCQk5M0YxRDVCOTEyRDUzMkM0MDA4MzJCRUMg
LyogV2ViR0xMb3NlQ29udGV4dC5pZGwgKi8sCkBAIC0yODI0Myw3ICsyODI0Myw3IEBACiAJCQkJ
NUIzMDY5NUUxOEIzRDM0NTAwOTlENUU4IC8qIFdlYkdMRHJhd0J1ZmZlcnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTZFQkYwRTU1MTJBODkyOTgwMERCMTcwOSAvKiBXZWJHTEV4dGVuc2lvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDlDN0I5Q0YxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMRnJhbWVi
dWZmZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTZFNDdFNjYxMTBCNzk0NEIwMEIxODZDOCAvKiBX
ZWJHTEdldEluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTZFNDdFNjYxMTBCNzk0NEIwMEIxODZD
OCAvKiBXZWJHTEFueS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlGRkJGM0YxMUM5M0VFMzAwNkE3
MTE4IC8qIFdlYkdMTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjFENUJCMTJENTMyQzQw
MDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3QjlE
NTEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xPYmplY3QuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3
MzIsNyArMzE3MzIsNyBAQAogCQkJCTVCMzA2OTVEMThCM0QzNDUwMDk5RDVFOCAvKiBXZWJHTERy
YXdCdWZmZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFQkYwRTU0MTJBODkyOTgwMERCMTcw
OSAvKiBXZWJHTEV4dGVuc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUM3QjlDRTEwNDJE
MzJGMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk2
RTQ3RTY2MDEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTZFNDdFNjYwMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk0OUZGQkY0MDExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTkzRjFENUJBMTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250
ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUQ0MTA0MkQzMkYwMDA5RDQ0NyAvKiBX
ZWJHTE9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNw
cAppbmRleCBlMjBiMjM4Njg2NGRhY2RkYWQ1NjJmYzNlZWM2YWEzMzk0ZmYxMGE1Li45M2I3OTZh
NDViZmVjZWY2NmRmNzk0OTc1ZmIwNDk1N2JjY2I2MjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRD
dXN0b20uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTY1LDkgKzY1LDkgQEAgc3RhdGljIENhbnZhc1N0eWxlIHRvSFRNTENhbnZhc1N0
eWxlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFsdWUpCiAgICAgICAgIHJldHVybiBDYW52YXNTdHls
ZSgpOwogICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7CiAgICAgaWYgKG9i
amVjdC0+aW5oZXJpdHMoSlNDYW52YXNHcmFkaWVudDo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJu
IENhbnZhc1N0eWxlKCZqc0Nhc3Q8SlNDYW52YXNHcmFkaWVudCo+KG9iamVjdCktPndyYXBwZWQo
KSk7CisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNDYW52YXNHcmFkaWVudCo+KG9iamVjdCktPndy
YXBwZWQoKTsKICAgICBpZiAob2JqZWN0LT5pbmhlcml0cyhKU0NhbnZhc1BhdHRlcm46OmluZm8o
KSkpCi0gICAgICAgIHJldHVybiBDYW52YXNTdHlsZSgmanNDYXN0PEpTQ2FudmFzUGF0dGVybio+
KG9iamVjdCktPndyYXBwZWQoKSk7CisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNDYW52YXNQYXR0
ZXJuKj4ob2JqZWN0KS0+d3JhcHBlZCgpOwogICAgIHJldHVybiBDYW52YXNTdHlsZSgpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRG
dW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50
RnVuY3Rpb25zLmNwcAppbmRleCBmNzhhMTE4NjIxOGM2YTliZDFkNzdiZTg3ODc0M2U5ZWFjYmFj
NzQ0Li40MTgxZDc0Nzg2ZjM5ZjNkZDVmZDc5NzdlY2Y2ODFkZGM2MjUyOTY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9u
cy5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhh
cnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDgs
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykg
MjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKQEAgLTQwLDcgKzQwLDcgQEAgSW5zdGFuY2UqIHBsdWdpbkluc3RhbmNlKEhUTUxFbGVt
ZW50JiBlbGVtZW50KQogICAgIC8vIFRoZSBwbHVnaW4gZWxlbWVudCBob2xkcyBhbiBvd25pbmcg
cmVmZXJlbmNlLCBzbyB3ZSBkb24ndCBoYXZlIHRvLgogICAgIGlmICghaXM8SFRNTFBsdWdJbkVs
ZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBJbnN0YW5jZSog
aW5zdGFuY2UgPSBkb3duY2FzdDxIVE1MUGx1Z0luRWxlbWVudD4oZWxlbWVudCkuZ2V0SW5zdGFu
Y2UoKS5nZXQoKTsKKyAgICBhdXRvKiBpbnN0YW5jZSA9IGRvd25jYXN0PEhUTUxQbHVnSW5FbGVt
ZW50PihlbGVtZW50KS5iaW5kaW5nc0luc3RhbmNlKCk7CiAgICAgaWYgKCFpbnN0YW5jZSB8fCAh
aW5zdGFuY2UtPnJvb3RPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0
dXJuIGluc3RhbmNlOwpAQCAtNzEsMjMgKzcxLDIzIEBAIEpTT2JqZWN0KiBwbHVnaW5TY3JpcHRP
YmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0hUTUxFbGVtZW50KiBqc0hUTUxFbGVtZW50KQogICAg
IGlmICghaXM8SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAotICAgIEhUTUxQbHVnSW5FbGVtZW50JiBwbHVnaW5FbGVtZW50ID0gZG93bmNhc3Q8
SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpOworICAgIGF1dG8mIHBsdWdpbkVsZW1lbnQgPSBk
b3duY2FzdDxIVE1MUGx1Z0luRWxlbWVudD4oZWxlbWVudCk7CiAKICAgICAvLyBDaG9rZSBwb2lu
dCBmb3Igc2NyaXB0L3BsdWdpbiBpbnRlcmFjdGlvbjsgbm90aWZ5IERPTVRpbWVyIG9mIHRoZSBl
dmVudC4KICAgICBET01UaW1lcjo6c2NyaXB0RGlkSW50ZXJhY3RXaXRoUGx1Z2luKHBsdWdpbkVs
ZW1lbnQpOwogCiAgICAgLy8gRmlyc3QsIHNlZSBpZiB0aGUgZWxlbWVudCBoYXMgYSBwbHVnLWlu
IHJlcGxhY2VtZW50IHdpdGggYSBzY3JpcHQuCi0gICAgaWYgKEpTT2JqZWN0KiBzY3JpcHRPYmpl
Y3QgPSBwbHVnaW5FbGVtZW50LnNjcmlwdE9iamVjdEZvclBsdWdpblJlcGxhY2VtZW50KCkpCisg
ICAgaWYgKGF1dG8qIHNjcmlwdE9iamVjdCA9IHBsdWdpbkVsZW1lbnQuc2NyaXB0T2JqZWN0Rm9y
UGx1Z2luUmVwbGFjZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIHNjcmlwdE9iamVjdDsKICAgICAK
ICAgICAvLyBOZXh0LCBzZWUgaWYgd2UgY2FuIGFzayB0aGUgcGx1Zy1pbiB2aWV3IGZvciBpdHMg
c2NyaXB0IG9iamVjdC4KLSAgICBpZiAoSlNPYmplY3QqIHNjcmlwdE9iamVjdCA9IHBsdWdpblNj
cmlwdE9iamVjdEZyb21QbHVnaW5WaWV3QmFzZShwbHVnaW5FbGVtZW50LCBqc0hUTUxFbGVtZW50
LT5nbG9iYWxPYmplY3QoKSkpCisgICAgaWYgKGF1dG8qIHNjcmlwdE9iamVjdCA9IHBsdWdpblNj
cmlwdE9iamVjdEZyb21QbHVnaW5WaWV3QmFzZShwbHVnaW5FbGVtZW50LCBqc0hUTUxFbGVtZW50
LT5nbG9iYWxPYmplY3QoKSkpCiAgICAgICAgIHJldHVybiBzY3JpcHRPYmplY3Q7CiAKICAgICAv
LyBPdGhlcndpc2UsIGZhbGwgYmFjayB0byBnZXR0aW5nIHRoZSBvYmplY3QgZnJvbSB0aGUgaW5z
dGFuY2UuCiAKICAgICAvLyBUaGUgcGx1Z2luIGVsZW1lbnQgaG9sZHMgYW4gb3duaW5nIHJlZmVy
ZW5jZSwgc28gd2UgZG9uJ3QgaGF2ZSB0by4KLSAgICBJbnN0YW5jZSogaW5zdGFuY2UgPSBwbHVn
aW5FbGVtZW50LmdldEluc3RhbmNlKCkuZ2V0KCk7CisgICAgYXV0byogaW5zdGFuY2UgPSBwbHVn
aW5FbGVtZW50LmJpbmRpbmdzSW5zdGFuY2UoKTsKICAgICBpZiAoIWluc3RhbmNlIHx8ICFpbnN0
YW5jZS0+cm9vdE9iamVjdCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dEN1c3RvbS5jcHAKaW5kZXggNzg4YWQyNDQ0NjkyMGQwZmEyZWFlZWI3NDhkNjQ5YmJlMzY4
YzQ3MS4uNGM1MGNjZjhmMzA0NmVkMDA4MzY1MDg4Njc3ZmE0YTc4ZTdjZGVlZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsMzcgKzM2LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBGSVhNRTogVGhlcmUgaXMgYSBkdXBsaWNh
dGUgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIGluIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZUN1c3RvbS5jcHAsCi0vLyBidXQgaXQgaXMgbm90IGV4YWN0bHkgdGhlIHNhbWUhIFdlIHNob3Vs
ZCBtZXJnZSB0aGVzZS4KLXN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgV2ViR0xHZXRJbmZvJiBpbmZvKQot
ewotICAgIHN3aXRjaCAoaW5mby5nZXRUeXBlKCkpIHsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6
a1R5cGVCb29sOgotICAgICAgICByZXR1cm4ganNCb29sZWFuKGluZm8uZ2V0Qm9vbCgpKTsKLSAg
ICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVCb29sQXJyYXk6IHsKLSAgICAgICAgTWFya2VkQXJn
dW1lbnRCdWZmZXIgbGlzdDsKLSAgICAgICAgZm9yIChhdXRvJiB2YWx1ZSA6IGluZm8uZ2V0Qm9v
bEFycmF5KCkpCi0gICAgICAgICAgICBsaXN0LmFwcGVuZChqc0Jvb2xlYW4odmFsdWUpKTsKLSAg
ICAgICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5KHN0YXRlLCAwLCBnbG9iYWxPYmplY3QsIGxpc3Qp
OwotICAgIH0KLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVGbG9hdDoKLSAgICAgICAgcmV0
dXJuIGpzTnVtYmVyKGluZm8uZ2V0RmxvYXQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtU
eXBlSW50OgotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRJbnQoKSk7Ci0gICAgY2Fz
ZSBXZWJHTEdldEluZm86OmtUeXBlTnVsbDoKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAg
IGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVN0cmluZzoKLSAgICAgICAgcmV0dXJuIGpzU3RyaW5n
V2l0aENhY2hlKHN0YXRlLCBpbmZvLmdldFN0cmluZygpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5m
bzo6a1R5cGVVbnNpZ25lZEludDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0VW5z
aWduZWRJbnQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlSW50NjQ6Ci0gICAgICAg
IHJldHVybiBqc051bWJlcihpbmZvLmdldEludDY0KCkpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0K
LX0KLQogdm9pZCBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZpc2l0QWRkaXRpb25hbENoaWxk
cmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCgm
d3JhcHBlZCgpKTsKQEAgLTEwNCw3ICs3Myw3IEBAIEpTVmFsdWUgSlNXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKICAgICB1bnNpZ25lZCBpbmRleCA9IHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0YXRlKTsKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xv
YmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRJbmRleGVkUGFyYW1ldGVyKHBuYW1lLCBpbmRleCkp
OworICAgIHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRJ
bmRleGVkUGFyYW1ldGVyKHBuYW1lLCBpbmRleCkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKEV4ZWNTdGF0ZSYp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2VDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9tLmNwcAppbmRleCA4MjVkMjUwOTRkMmNjNjIyMDZi
MDQ5OTZjMTBkNTMxZTU0Mjk4MDkxLi4xMTU4MzdlMDUxYjFkN2JjZTNmNTA3MWJmYTM0NzVlZWI3
YTlkOTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2VDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHAKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwyMCArMjQs
MTYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNpbmNsdWRlICJKU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKLQotI2luY2x1ZGUgIkFOR0xFSW5zdGFuY2VkQXJy
YXlzLmgiCiAjaW5jbHVkZSAiRVhUQmxlbmRNaW5NYXguaCIKICNpbmNsdWRlICJFWFRGcmFnRGVw
dGguaCIKICNpbmNsdWRlICJFWFRTaGFkZXJUZXh0dXJlTE9ELmgiCiAjaW5jbHVkZSAiRVhUVGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVkZSAiRVhUc1JHQi5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgotI2luY2x1
ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0FOR0xFSW5zdGFuY2VkQXJyYXlz
LmgiCiAjaW5jbHVkZSAiSlNFWFRCbGVuZE1pbk1heC5oIgogI2luY2x1ZGUgIkpTRVhURnJhZ0Rl
cHRoLmgiCkBAIC03Myw3ICs2OSw2IEBACiAjaW5jbHVkZSAiSlNXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgiCiAjaW5jbHVk
ZSAiSlNXZWJLaXRDU1NNYXRyaXguaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2lu
Y2x1ZGUgIk9FU0VsZW1lbnRJbmRleFVpbnQuaCIKICNpbmNsdWRlICJPRVNTdGFuZGFyZERlcml2
YXRpdmVzLmgiCiAjaW5jbHVkZSAiT0VTVGV4dHVyZUZsb2F0LmgiCkBAIC05MSw3ICs4Niw2IEBA
CiAjaW5jbHVkZSAiV2ViR0xEcmF3QnVmZmVycy5oIgogI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9u
LmgiCiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkdMR2V0SW5m
by5oIgogI2luY2x1ZGUgIldlYkdMTG9zZUNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJHTFByb2dy
YW0uaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCkBAIC0xMDUsNyAr
OTksNiBAQAogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAKICNpZiBFTkFCTEUoVklERU8p
Ci0jaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRNTFZpZGVvRWxl
bWVudC5oIgogI2VuZGlmCiAKQEAgLTExNyw3ICsxMTAsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVk
KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+JiYgb2JqZWN0KQorSlNWYWx1ZSB0b0pTTmV3bHlDcmVh
dGVkKEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlPiYmIG9iamVjdCkKIHsKICNpZiBFTkFCTEUoV0VCR0wyKQog
ICAgIGlmIChpczxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PihvYmplY3QpKQpAQCAtMTMxLDY0ICsx
MjQsNyBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgV2ViR0xSZW5kZXJpbmdDbwogICAgIHJldHVybiB3cmFwKHN0YXRlLCBn
bG9iYWxPYmplY3QsIG9iamVjdCk7CiB9CiAgICAgCi0vLyBGSVhNRTogVGhlcmUgaXMgYSBkdXBs
aWNhdGUgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIGluIEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4
dEN1c3RvbS5jcHAsCi0vLyBidXQgaXQgaXMgbm90IGV4YWN0bHkgdGhlIHNhbWUhIFdlIHNob3Vs
ZCBtZXJnZSB0aGVzZS4KLXN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBXZWJHTEdldEluZm8mIGluZm8pCi17
Ci0gICAgc3dpdGNoIChpbmZvLmdldFR5cGUoKSkgewotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjpr
VHlwZUJvb2w6Ci0gICAgICAgIHJldHVybiBqc0Jvb2xlYW4oaW5mby5nZXRCb29sKCkpOwotICAg
IGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZUJvb2xBcnJheTogewotICAgICAgICBNYXJrZWRBcmd1
bWVudEJ1ZmZlciBsaXN0OwotICAgICAgICBmb3IgKGF1dG8mIHZhbHVlIDogaW5mby5nZXRCb29s
QXJyYXkoKSkKLSAgICAgICAgICAgIGxpc3QuYXBwZW5kKGpzQm9vbGVhbih2YWx1ZSkpOwotICAg
ICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoZXhlYywgMCwgZ2xvYmFsT2JqZWN0LCBsaXN0KTsK
LSAgICB9Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlRmxvYXQ6Ci0gICAgICAgIHJldHVy
biBqc051bWJlcihpbmZvLmdldEZsb2F0KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlw
ZUludDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0SW50KCkpOwotICAgIGNhc2Ug
V2ViR0xHZXRJbmZvOjprVHlwZU51bGw6Ci0gICAgICAgIHJldHVybiBqc051bGwoKTsKLSAgICBj
YXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVTdHJpbmc6Ci0gICAgICAgIHJldHVybiBqc1N0cmluZ1dp
dGhDYWNoZShleGVjLCBpbmZvLmdldFN0cmluZygpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6
a1R5cGVVbnNpZ25lZEludDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0VW5zaWdu
ZWRJbnQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xCdWZmZXI6Ci0gICAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTEJ1ZmZlcigp
KTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTEZsb2F0QXJyYXk6Ci0gICAgICAg
IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTEZsb2F0QXJyYXko
KSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xGcmFtZWJ1ZmZlcjoKLSAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMRnJhbWVidWZm
ZXIoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xJbnRBcnJheToKLSAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMSW50QXJyYXko
KSk7Ci0gICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgV2ViR0xPYmplY3RBcnJheQotICAgICAg
ICAvLyBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTE9iamVjdEFycmF5OgotICAgIGNhc2Ug
V2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMUHJvZ3JhbToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMUHJvZ3JhbSgpKTsKLSAgICBjYXNlIFdlYkdM
R2V0SW5mbzo6a1R5cGVXZWJHTFJlbmRlcmJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMUmVuZGVyYnVmZmVyKCkpOwotICAgIGNhc2Ug
V2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVGV4dHVyZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMVGV4dHVyZSgpKTsKLSAgICBjYXNlIFdlYkdM
R2V0SW5mbzo6a1R5cGVXZWJHTFVuc2lnbmVkQnl0ZUFycmF5OgotICAgICAgICByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xVbnNpZ25lZEJ5dGVBcnJheSgpKTsK
LSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFVuc2lnbmVkSW50QXJyYXk6Ci0gICAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTFVuc2lnbmVk
SW50QXJyYXkoKSk7Ci0jaWYgRU5BQkxFKFdFQkdMMikKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6
a1R5cGVXZWJHTFZlcnRleEFycmF5T2JqZWN0OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCgpKTsKLSNlbmRpZgot
ICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6Ci0g
ICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTKCkpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLX0KLQotZW51bSBPYmpl
Y3RUeXBlIHsga0J1ZmZlciwga1JlbmRlcmJ1ZmZlciwga1RleHR1cmUsIGtWZXJ0ZXhBdHRyaWIg
fTsKLQotc3RhdGljIEpTVmFsdWUgZ2V0T2JqZWN0UGFyYW1ldGVyKEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSogb2JqLCBFeGVjU3RhdGUmIHN0YXRlLCBPYmplY3RUeXBlIG9iamVjdFR5cGUp
CitzdGF0aWMgSlNWYWx1ZSBvYmplY3RQYXJhbWV0ZXIoSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlJiBjb250ZXh0LCBFeGVjU3RhdGUmIHN0YXRlLCBXZWJHTEFueSAoV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6KmdldHRlcikoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xOTYsOTAgKzEzMiw2NiBAQCBzdGF0aWMgSlNWYWx1ZSBnZXRPYmpl
Y3RQYXJhbWV0ZXIoSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBvYmosIEV4ZWNTdGF0ZSYg
cwogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgIT0gMikKICAgICAgICAgcmV0dXJuIHRo
cm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KCZzdGF0ZSkpOwogICAgIAotICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQg
PSBvYmotPndyYXBwZWQoKTsKLSAgICB1bnNpZ25lZCB0YXJnZXQgPSBzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgSlNWYWx1ZSgpKTsKLSAgICB1bnNpZ25lZCBwbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBK
U1ZhbHVlKCkpOwotICAgIFdlYkdMR2V0SW5mbyBpbmZvOwotICAgIHN3aXRjaCAob2JqZWN0VHlw
ZSkgewotICAgIGNhc2Uga0J1ZmZlcjoKLSAgICAgICAgaW5mbyA9IGNvbnRleHQuZ2V0QnVmZmVy
UGFyYW1ldGVyKHRhcmdldCwgcG5hbWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIGtSZW5k
ZXJidWZmZXI6Ci0gICAgICAgIGluZm8gPSBjb250ZXh0LmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRl
cih0YXJnZXQsIHBuYW1lKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBrVGV4dHVyZToKLSAg
ICAgICAgaW5mbyA9IGNvbnRleHQuZ2V0VGV4UGFyYW1ldGVyKHRhcmdldCwgcG5hbWUpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIGtWZXJ0ZXhBdHRyaWI6Ci0gICAgICAgIC8vIHRhcmdldCA9
PiBpbmRleAotICAgICAgICBpbmZvID0gY29udGV4dC5nZXRWZXJ0ZXhBdHRyaWIodGFyZ2V0LCBw
bmFtZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIG9i
ai0+Z2xvYmFsT2JqZWN0KCksIGluZm8pOworICAgIGF1dG8gdGFyZ2V0ID0gc3RhdGUudW5jaGVj
a2VkQXJndW1lbnQoMCkudG9JbnQzMigmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7CisgICAgYXV0byBwbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEp
LnRvSW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwor
ICAgIHJldHVybiB0b0pTKHN0YXRlLCAqY29udGV4dC5nbG9iYWxPYmplY3QoKSwgKGNvbnRleHQu
d3JhcHBlZCgpLipnZXR0ZXIpKHRhcmdldCwgcG5hbWUpKTsKIH0KIAotZW51bSBXaGljaFByb2dy
YW1DYWxsIHsKLSAgICBrUHJvZ3JhbVBhcmFtZXRlciwga1VuaWZvcm0KLX07Ci0KLXN0YXRpYyBK
U1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBXZWJHTEV4dGVuc2lvbiogZXh0ZW5zaW9uKQorc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVj
U3RhdGUmIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBXZWJHTEV4dGVu
c2lvbiogZXh0ZW5zaW9uKQogewogICAgIGlmICghZXh0ZW5zaW9uKQogICAgICAgICByZXR1cm4g
anNOdWxsKCk7CiAgICAgc3dpdGNoIChleHRlbnNpb24tPmdldE5hbWUoKSkgewogICAgIGNhc2Ug
V2ViR0xFeHRlbnNpb246OldlYkdMTG9zZUNvbnRleHROYW1lOgotICAgICAgICByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMTG9zZUNvbnRleHQqPihleHRl
bnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxXZWJHTExvc2VDb250ZXh0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4
dGVuc2lvbjo6RVhUU2hhZGVyVGV4dHVyZUxPRE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUU2hhZGVyVGV4dHVyZUxPRCo+KGV4dGVu
c2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PEVYVFNoYWRlclRleHR1cmVMT0QqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdM
RXh0ZW5zaW9uOjpFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWNOYW1lOgotICAgICAgICByZXR1
cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVFRleHR1cmVGaWx0ZXJB
bmlzb3Ryb3BpYyo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyo+KGV4
dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVHNSR0JOYW1lOgotICAgICAg
ICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVHNSR0IqPihl
eHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxFWFRzUkdCKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lv
bjo6RVhURnJhZ0RlcHRoTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxFWFRGcmFnRGVwdGgqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0
dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRGcmFnRGVwdGgq
PihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRCbGVuZE1pbk1heE5h
bWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8
RVhUQmxlbmRNaW5NYXgqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRl
LCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRCbGVuZE1pbk1heCo+KGV4dGVuc2lvbikp
OwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lOgot
ICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNTdGFuZGFyZERlcml2YXRpdmVzKj4o
ZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTVGV4dHVyZUZsb2F0TmFt
ZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxP
RVNUZXh0dXJlRmxvYXQqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRl
LCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlRmxvYXQqPihleHRlbnNpb24p
KTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNUZXh0dXJlRmxvYXRMaW5lYXJOYW1lOgot
ICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1Rl
eHR1cmVGbG9hdExpbmVhcio+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3Rh
dGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVGbG9hdExpbmVhcio+KGV4
dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1RleHR1cmVIYWxmRmxvYXRO
YW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PE9FU1RleHR1cmVIYWxmRmxvYXQqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMo
JnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlSGFsZkZsb2F0Kj4o
ZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTVGV4dHVyZUhhbGZGbG9h
dExpbmVhck5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3Rh
dGljX2Nhc3Q8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcio+KGV4dGVuc2lvbikpOworICAgICAg
ICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1
cmVIYWxmRmxvYXRMaW5lYXIqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9u
OjpPRVNWZXJ0ZXhBcnJheU9iamVjdE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVmVydGV4QXJyYXlPYmplY3QqPihleHRlbnNpb24p
KTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246Ok9FU0VsZW1lbnRJbmRleFVpbnROYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVj
LCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU0VsZW1lbnRJbmRleFVpbnQqPihleHRlbnNp
b24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNf
Y2FzdDxPRVNFbGVtZW50SW5kZXhVaW50Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4
dGVuc2lvbjo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyo+
KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3Qs
IHN0YXRpY19jYXN0PFdlYkdMRGVidWdSZW5kZXJlckluZm8qPihleHRlbnNpb24pKTsKICAgICBj
YXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnU2hhZGVyc05hbWU6Ci0gICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1NoYWRlcnMq
PihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0
LCBzdGF0aWNfY2FzdDxXZWJHTERlYnVnU2hhZGVycyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2Ug
V2ViR0xFeHRlbnNpb246OldlYkdMQ29tcHJlc3NlZFRleHR1cmVBVENOYW1lOgotICAgICAgICBy
ZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVBVEMqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAm
Z2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDKj4oZXh0
ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVBWUlRDTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMqPihleHRlbnNpb24pKTsKKyAgICAg
ICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTENv
bXByZXNzZWRUZXh0dXJlUFZSVEMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5z
aW9uOjpXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQ05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMz
VEMqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQyo+KGV4dGVuc2lvbikp
OwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVwdGhUZXh0dXJlTmFtZToKLSAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlcHRo
VGV4dHVyZSo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9i
YWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVwdGhUZXh0dXJlKj4oZXh0ZW5zaW9uKSk7CiAg
ICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEcmF3QnVmZmVyc05hbWU6Ci0gICAgICAgIHJl
dHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEcmF3QnVmZmVy
cyo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmpl
Y3QsIHN0YXRpY19jYXN0PFdlYkdMRHJhd0J1ZmZlcnMqPihleHRlbnNpb24pKTsKICAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpBTkdMRUluc3RhbmNlZEFycmF5c05hbWU6Ci0gICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8QU5HTEVJbnN0YW5jZWRBcnJh
eXMqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxBTkdMRUluc3RhbmNlZEFycmF5cyo+KGV4dGVuc2lvbikpOwogICAg
IH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4ganNOdWxsKCk7CiB9CiAK
LWJvb2wgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCitib29sIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZU93bmVyOjpp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhIYW5kbGU8VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
KiBqc1dlYkdMUmVuZGVyaW5nQ29udGV4dCA9IGpzQ2FzdDxKU1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgdm9pZCogcm9vdCA9IFdlYkNv
cmU6OnJvb3QoanNXZWJHTFJlbmRlcmluZ0NvbnRleHQtPndyYXBwZWQoKS5jYW52YXMoKSk7CkBA
IC0zMDYsOSArMjE4LDkgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omdl
dEF0dGFjaGVkU2hhZGVycyhFeGVjU3RhdGUmIHN0YXRlKQogICAgIFZlY3RvcjxSZWZQdHI8V2Vi
R0xTaGFkZXI+PiBzaGFkZXJzOwogICAgIGlmICghY29udGV4dC5nZXRBdHRhY2hlZFNoYWRlcnMo
cHJvZ3JhbSwgc2hhZGVycykpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKLSAgICBKU0M6Ok1h
cmtlZEFyZ3VtZW50QnVmZmVyIGxpc3Q7Ci0gICAgZm9yIChzaXplX3QgaWkgPSAwOyBpaSA8IHNo
YWRlcnMuc2l6ZSgpOyArK2lpKQotICAgICAgICBsaXN0LmFwcGVuZCh0b0pTKCZzdGF0ZSwgZ2xv
YmFsT2JqZWN0KCksIHNoYWRlcnNbaWldLmdldCgpKSk7CisgICAgTWFya2VkQXJndW1lbnRCdWZm
ZXIgbGlzdDsKKyAgICBmb3IgKGF1dG8mIHNoYWRlciA6IHNoYWRlcnMpCisgICAgICAgIGxpc3Qu
YXBwZW5kKHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgc2hhZGVyLmdldCgpKSk7CiAgICAg
cmV0dXJuIGNvbnN0cnVjdEFycmF5KCZzdGF0ZSwgMCwgZ2xvYmFsT2JqZWN0KCksIGxpc3QpOwog
fQogCkBAIC0zMjAsMTQgKzIzMiwxNCBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6Z2V0RXh0ZW5zaW9uKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgaWYgKHN0YXRlLmFyZ3Vt
ZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNj
b3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICBT
dHJpbmcgbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvV1RGU3RyaW5nKCZzdGF0
ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICByZXR1
cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0RXh0ZW5zaW9uKG5h
bWUpKTsKKyAgICBhdXRvIG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b1dURlN0
cmluZygmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAg
cmV0dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldEV4dGVuc2lv
bihuYW1lKSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRC
dWZmZXJQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4gZ2V0T2JqZWN0
UGFyYW1ldGVyKHRoaXMsIHN0YXRlLCBrQnVmZmVyKTsKKyAgICByZXR1cm4gb2JqZWN0UGFyYW1l
dGVyKCp0aGlzLCBzdGF0ZSwgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBh
cmFtZXRlcik7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKQEAgLTMzOCwx
MyArMjUwLDEzIEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoRXhlY1N0YXRlCiAgICAgaWYgKHN0YXRlLmFyZ3Vt
ZW50Q291bnQoKSAhPSAzKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBz
Y29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CiAgICAgCi0gICAg
dW5zaWduZWQgdGFyZ2V0ID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkudG9JbnQzMigmc3Rh
dGUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgdW5z
aWduZWQgYXR0YWNobWVudCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0
YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHVu
c2lnbmVkIHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikudG9JbnQzMigmc3RhdGUp
OwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgcmV0dXJu
IHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldEZyYW1lYnVmZmVyQXR0
YWNobWVudFBhcmFtZXRlcih0YXJnZXQsIGF0dGFjaG1lbnQsIHBuYW1lKSk7CisgICAgYXV0byB0
YXJnZXQgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBhdXRvIGF0dGFjaG1lbnQgPSBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBhdXRvIHBuYW1lID0gc3RhdGUudW5jaGVja2Vk
QXJndW1lbnQoMikudG9JbnQzMigmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBl
ZCgpLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcih0YXJnZXQsIGF0dGFjaG1lbnQs
IHBuYW1lKSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRQ
YXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKQEAgLTM1NSw5ICsyNjcsOSBAQCBKU1ZhbHVlIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUp
CiAgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSAhPSAxKQogICAgICAgICByZXR1cm4gdGhy
b3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
JnN0YXRlKSk7CiAgICAgCi0gICAgdW5zaWduZWQgcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
SlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFw
cGVkKCkuZ2V0UGFyYW1ldGVyKHBuYW1lKSk7CisgICAgYXV0byBwbmFtZSA9IHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOworICAgIHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFsT2JqZWN0KCksIHdy
YXBwZWQoKS5nZXRQYXJhbWV0ZXIocG5hbWUpKTsKIH0KIAogSlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKQEAg
LTM2OCwxNyArMjgwLDE3IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpn
ZXRQcm9ncmFtUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgaWYgKHN0YXRlLmFyZ3Vt
ZW50Q291bnQoKSAhPSAyKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBz
Y29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CiAgICAgCi0gICAg
V2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvV3JhcHBlZChzdGF0ZS51
bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgYXV0byogcHJvZ3JhbSA9IEpTV2ViR0xQcm9ncmFt
Ojp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghcHJvZ3Jh
bSAmJiAhc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAg
ICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgIHVuc2lnbmVk
IHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOwotICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgcmV0dXJuIHRvSlMo
JnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFByb2dyYW1QYXJhbWV0ZXIocHJv
Z3JhbSwgcG5hbWUpKTsKKyAgICBhdXRvIHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MSkudG9JbnQzMigmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFBy
b2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgcG5hbWUpKTsKIH0KIAogSlNWYWx1ZSBKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihFeGVjU3RhdGUmIHN0
YXRlKQogewotICAgIHJldHVybiBnZXRPYmplY3RQYXJhbWV0ZXIodGhpcywgc3RhdGUsIGtSZW5k
ZXJidWZmZXIpOworICAgIHJldHVybiBvYmplY3RQYXJhbWV0ZXIoKnRoaXMsIHN0YXRlLCAmV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKTsKIH0KIAog
SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNoYWRlclBhcmFtZXRlcihF
eGVjU3RhdGUmIHN0YXRlKQpAQCAtMzkzLDggKzMwNSw4IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpnZXRTaGFkZXJQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKICAg
ICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwogICAgIFdlYkdMU2hh
ZGVyKiBzaGFkZXIgPSBKU1dlYkdMU2hhZGVyOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMCkpOwogICAgIHVuc2lnbmVkIHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MSkudG9JbnQzMigmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFs
dWUoKSk7Ci0gICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgp
LmdldFNoYWRlclBhcmFtZXRlcihzaGFkZXIsIHBuYW1lKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmdsb2JhbE9iamVjdCgp
LCB3cmFwcGVkKCkuZ2V0U2hhZGVyUGFyYW1ldGVyKHNoYWRlciwgcG5hbWUpKTsKIH0KIAogSlNW
YWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnMo
RXhlY1N0YXRlJiBzdGF0ZSkKQEAgLTQxMCw3ICszMjIsNyBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucyhFeGVjU3RhdGUmIHN0YXRl
KQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFyYW1ldGVy
KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGdldE9iamVjdFBhcmFtZXRlcih0aGlz
LCBzdGF0ZSwga1RleHR1cmUpOworICAgIHJldHVybiBvYmplY3RQYXJhbWV0ZXIoKnRoaXMsIHN0
YXRlLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFyYW1ldGVyKTsKIH0KIAog
SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oRXhlY1N0YXRl
JiBzdGF0ZSkKQEAgLTQyNywzNiArMzM5LDM1IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRVbmlmb3JtKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgV2ViR0xVbmlmb3Jt
TG9jYXRpb24qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFwcGVkKHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWxvY2F0aW9uICYmICFzdGF0ZS51
bmNoZWNrZWRBcmd1bWVudCgxKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4g
dGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBn
bG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFVuaWZvcm0ocHJvZ3JhbSwgbG9jYXRpb24pKTsK
KyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0VW5p
Zm9ybShwcm9ncmFtLCBsb2NhdGlvbikpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Z2V0VmVydGV4QXR0cmliKEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0
dXJuIGdldE9iamVjdFBhcmFtZXRlcih0aGlzLCBzdGF0ZSwga1ZlcnRleEF0dHJpYik7CisgICAg
cmV0dXJuIG9iamVjdFBhcmFtZXRlcigqdGhpcywgc3RhdGUsICZXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRWZXJ0ZXhBdHRyaWIpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXpl
X3QgaW5saW5lQ2FwYWNpdHk+Ci1ib29sIHRvVmVjdG9yKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwg
SlNDOjpKU1ZhbHVlIHZhbHVlLCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHk+JiB2ZWN0b3IpCit0
ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPiBib29sIHRvTnVtYmVyVmVjdG9yKEV4ZWNTdGF0
ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUsIFZlY3RvclR5cGUmIHZlY3RvcikKIHsKICAgICBWTSYg
dm0gPSBzdGF0ZS52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKIAogICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIAotICAgIEpTQzo6SlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KHZhbHVlKTsKLSAgICBp
bnQzMl90IGxlbmd0aCA9IG9iamVjdC0+Z2V0KCZzdGF0ZSwgc3RhdGUudm0oKS5wcm9wZXJ0eU5h
bWVzLT5sZW5ndGgpLnRvSW50MzIoJnN0YXRlKTsKLSAgICAKKworICAgIGF1dG8mIG9iamVjdCA9
ICphc09iamVjdCh2YWx1ZSk7CisgICAgaW50MzJfdCBsZW5ndGggPSBvYmplY3QuZ2V0KCZzdGF0
ZSwgc3RhdGUudm0oKS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgpLnRvSW50MzIoJnN0YXRlKTsKKwog
ICAgIGlmICghdmVjdG9yLnRyeVJlc2VydmVDYXBhY2l0eShsZW5ndGgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgdmVjdG9yLnJlc2l6ZShsZW5ndGgpOwotICAgIAorCiAgICAgZm9yIChp
bnQzMl90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgSlNDOjpKU1ZhbHVlIHYg
PSBvYmplY3QtPmdldCgmc3RhdGUsIGkpOworICAgICAgICBhdXRvIHZhbHVlID0gb2JqZWN0Lmdl
dCgmc3RhdGUsIGkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7
CisgICAgICAgIHZlY3Rvci51bmNoZWNrZWRBcHBlbmQodmFsdWUudG9OdW1iZXIoJnN0YXRlKSk7
CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAgICAgICAgdmVj
dG9yW2ldID0gc3RhdGljX2Nhc3Q8VD4odi50b051bWJlcigmc3RhdGUpKTsKICAgICB9Ci0gICAg
CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNDY5LDcgKzM4MCw3IEBAIGVudW0gRGF0YUZ1
bmN0aW9uTWF0cml4VG9DYWxsIHsKICAgICBmX3VuaWZvcm1NYXRyaXgyZnYsIGZfdW5pZm9ybU1h
dHJpeDNmdiwgZl91bmlmb3JtTWF0cml4NGZ2CiB9OwogCi1zdGF0aWMgYm9vbCBmdW5jdGlvbkZv
clVuaWZvcm0oRGF0YUZ1bmN0aW9uVG9DYWxsIGYpCitzdGF0aWMgaW5saW5lIGJvb2wgZnVuY3Rp
b25Gb3JVbmlmb3JtKERhdGFGdW5jdGlvblRvQ2FsbCBmKQogewogICAgIHN3aXRjaCAoZikgewog
ICAgIGNhc2UgZl91bmlmb3JtMXY6CkBAIC00NzcsMTIgKzM4OCwxMiBAQCBzdGF0aWMgYm9vbCBm
dW5jdGlvbkZvclVuaWZvcm0oRGF0YUZ1bmN0aW9uVG9DYWxsIGYpCiAgICAgY2FzZSBmX3VuaWZv
cm0zdjoKICAgICBjYXNlIGZfdW5pZm9ybTR2OgogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBk
ZWZhdWx0OiBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQotICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rp
b25mKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCitzdGF0aWMgSlNWYWx1ZSBkYXRhRnVuY3Rpb25m
KERhdGFGdW5jdGlvblRvQ2FsbCBmLCBFeGVjU3RhdGUmIHN0YXRlLCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJiBjb250ZXh0KQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDkwLDIyICs0MDEsMTkgQEAg
c3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25mKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBK
U0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9
IDIpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICBXZWJHTFVuaWZvcm1M
b2NhdGlvbiogbG9jYXRpb24gPSAwOwotICAgIGxvbmcgaW5kZXggPSAtMTsKLSAgICAKKyAgICBX
ZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBudWxscHRyOworICAgIEdMdWludCBpbmRl
eCA9IC0xOworCiAgICAgaWYgKGZ1bmN0aW9uRm9yVW5pZm9ybShmKSkgewogICAgICAgICBsb2Nh
dGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgwKSk7CiAgICAgICAgIGlmICghbG9jYXRpb24gJiYgIXN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgfSBlbHNlCisgICAgfSBlbHNlIHsKICAgICAg
ICAgaW5kZXggPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7Ci0g
ICAgCi0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICAKLSAg
ICBSZWZQdHI8RmxvYXQzMkFycmF5PiB3ZWJHTEFycmF5ID0gdG9VbnNoYXJlZEZsb2F0MzJBcnJh
eShzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgSlNWYWx1ZSgpKTsKLSAgICAKLSAgICBpZiAod2ViR0xBcnJheSkgeworICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIH0KKworICAgIGlmIChhdXRvIHdl
YkdMQXJyYXkgPSB0b1Vuc2hhcmVkRmxvYXQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDEpKSkgewogICAgICAgICBzd2l0Y2ggKGYpIHsKICAgICAgICAgY2FzZSBmX3VuaWZvcm0xdjoK
ICAgICAgICAgICAgIGNvbnRleHQudW5pZm9ybTFmdihsb2NhdGlvbiwgKndlYkdMQXJyYXkpOwpA
QCAtNTMyLDE0ICs0NDAsMTMgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25mKERh
dGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAgICAgICAgICAg
IGNvbnRleHQudmVydGV4QXR0cmliNGZ2KGluZGV4LCAqd2ViR0xBcnJheSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQotICAgICAgICAKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CiAgICAgfQotICAgIAorCiAgICAgVmVjdG9yPGZsb2F0LCA2ND4gYXJyYXk7Ci0gICAgaWYg
KCF0b1ZlY3RvcihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSksIGFycmF5KSkKKyAg
ICBpZiAoIXRvTnVtYmVyVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSwg
YXJyYXkpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0g
ICAgCisKICAgICBzd2l0Y2ggKGYpIHsKICAgICBjYXNlIGZfdW5pZm9ybTF2OgogICAgICAgICBj
b250ZXh0LnVuaWZvcm0xZnYobG9jYXRpb24sIGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsK
QEAgLTU2NiwyNSArNDczLDIyIEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uZihE
YXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBXCiAgICAgICAgIGNv
bnRleHQudmVydGV4QXR0cmliNGZ2KGluZGV4LCBhcnJheS5kYXRhKCksIGFycmF5LnNpemUoKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICAKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
IH0KIAotc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25pKERhdGFGdW5jdGlvblRvQ2Fs
bCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNv
bnRleHQpCitzdGF0aWMgSlNWYWx1ZSBkYXRhRnVuY3Rpb25pKERhdGFGdW5jdGlvblRvQ2FsbCBm
LCBFeGVjU3RhdGUmIHN0YXRlLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQog
ewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCiAgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSAhPSAyKQogICAg
ICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0gICAgCi0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24q
IGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDApKTsKKworICAgIGF1dG8qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1M
b2NhdGlvbjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAo
IWxvY2F0aW9uICYmICFzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVs
bCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAg
Ci0gICAgUmVmUHRyPEludDMyQXJyYXk+IHdlYkdMQXJyYXkgPSB0b1Vuc2hhcmVkSW50MzJBcnJh
eShzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7Ci0gICAgCi0gICAgaWYgKHdlYkdMQXJyYXkp
IHsKKworICAgIGlmIChhdXRvIHdlYkdMQXJyYXkgPSB0b1Vuc2hhcmVkSW50MzJBcnJheShzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgxKSkpIHsKICAgICAgICAgc3dpdGNoIChmKSB7CiAgICAgICAg
IGNhc2UgZl91bmlmb3JtMXY6CiAgICAgICAgICAgICBjb250ZXh0LnVuaWZvcm0xaXYobG9jYXRp
b24sICp3ZWJHTEFycmF5KTsKQEAgLTYwMSwxNSArNTA1LDEzIEBAIHN0YXRpYyBKU0M6OkpTVmFs
dWUgZGF0YUZ1bmN0aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0
YXRlLCBXCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQot
ICAgICAgICAKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQotICAgIAotICAg
IAorCiAgICAgVmVjdG9yPGludCwgNjQ+IGFycmF5OwotICAgIGlmICghdG9WZWN0b3Ioc3RhdGUs
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLCBhcnJheSkpCisgICAgaWYgKCF0b051bWJlclZl
Y3RvcihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSksIGFycmF5KSkKICAgICAgICAg
cmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgIAorCiAgICAgc3dpdGNo
IChmKSB7CiAgICAgY2FzZSBmX3VuaWZvcm0xdjoKICAgICAgICAgY29udGV4dC51bmlmb3JtMWl2
KGxvY2F0aW9uLCBhcnJheS5kYXRhKCksIGFycmF5LnNpemUoKSk7CkBAIC02MjYsMjggKzUyOCwy
NSBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxs
IGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgVwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFr
OwogICAgIH0KLSAgICAKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAotc3RhdGljIEpT
Qzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25NYXRyaXgoRGF0YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYs
IEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4
dCkKK3N0YXRpYyBKU1ZhbHVlIGRhdGFGdW5jdGlvbk1hdHJpeChEYXRhRnVuY3Rpb25NYXRyaXhU
b0NhbGwgZiwgRXhlY1N0YXRlJiBzdGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29u
dGV4dCkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgIT0g
MykKICAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotICAgIAotICAgIFdlYkdMVW5pZm9ybUxv
Y2F0aW9uKiBsb2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvV3JhcHBlZChzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisKKyAgICBhdXRvKiBsb2NhdGlvbiA9IEpTV2ViR0xV
bmlmb3JtTG9jYXRpb246OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAg
ICAgaWYgKCFsb2NhdGlvbiAmJiAhc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmlu
ZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUp
OwotICAgIAorCiAgICAgYm9vbCB0cmFuc3Bvc2UgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgx
KS50b0Jvb2xlYW4oJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1Zh
bHVlKCkpOwotICAgIAotICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IHdlYkdMQXJyYXkgPSB0b1Vu
c2hhcmVkRmxvYXQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKKyAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAgaWYgKHdlYkdMQXJyYXkpIHsKKyAg
ICBpZiAoYXV0byB3ZWJHTEFycmF5ID0gdG9VbnNoYXJlZEZsb2F0MzJBcnJheShzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgyKSkpIHsKICAgICAgICAgc3dpdGNoIChmKSB7CiAgICAgICAgIGNhc2Ug
Zl91bmlmb3JtTWF0cml4MmZ2OgogICAgICAgICAgICAgY29udGV4dC51bmlmb3JtTWF0cml4MmZ2
KGxvY2F0aW9uLCB0cmFuc3Bvc2UsICp3ZWJHTEFycmF5KTsKQEAgLTY1OSwxNCArNTU4LDEzIEBA
IHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uTWF0cml4KERhdGFGdW5jdGlvbk1hdHJp
eFRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0CiAgICAgICAgICAgICBjb250ZXh0LnVuaWZvcm1NYXRy
aXg0ZnYobG9jYXRpb24sIHRyYW5zcG9zZSwgKndlYkdMQXJyYXkpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KLQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9Ci0g
ICAgCisKICAgICBWZWN0b3I8ZmxvYXQsIDY0PiBhcnJheTsKLSAgICBpZiAoIXRvVmVjdG9yKHN0
YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSwgYXJyYXkpKQorICAgIGlmICghdG9OdW1i
ZXJWZWN0b3Ioc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpLCBhcnJheSkpCiAgICAg
ICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICAKKwogICAgIHN3
aXRjaCAoZikgewogICAgIGNhc2UgZl91bmlmb3JtTWF0cml4MmZ2OgogICAgICAgICBjb250ZXh0
LnVuaWZvcm1NYXRyaXgyZnYobG9jYXRpb24sIHRyYW5zcG9zZSwgYXJyYXkuZGF0YSgpLCBhcnJh
eS5zaXplKCkpOwpAQCAtNjc4LDgxICs1NzYsODAgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRh
RnVuY3Rpb25NYXRyaXgoRGF0YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYsIEpTQzo6RXhlY1N0YXQK
ICAgICAgICAgY29udGV4dC51bmlmb3JtTWF0cml4NGZ2KGxvY2F0aW9uLCB0cmFuc3Bvc2UsIGFy
cmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotCiAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OnVuaWZvcm0xZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBK
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm0xZnYoRXhlY1N0YXRlJiBzdGF0ZSkK
IHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3VuaWZvcm0xdiwgc3RhdGUsIHdyYXBwZWQo
KSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZv
cm0xaXYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OnVuaWZvcm0xaXYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0
YUZ1bmN0aW9uaShmX3VuaWZvcm0xdiwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNW
YWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm0yZnYoSlNDOjpFeGVjU3Rh
dGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm0y
ZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3VuaWZv
cm0ydiwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OnVuaWZvcm0yaXYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm0yaXYoRXhlY1N0YXRlJiBzdGF0
ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uaShmX3VuaWZvcm0ydiwgc3RhdGUsIHdyYXBw
ZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVu
aWZvcm0zZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OnVuaWZvcm0zZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4g
ZGF0YUZ1bmN0aW9uZihmX3VuaWZvcm0zdiwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6
SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm0zaXYoSlNDOjpFeGVj
U3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZv
cm0zaXYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uaShmX3Vu
aWZvcm0zdiwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm00ZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNW
YWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm00ZnYoRXhlY1N0YXRlJiBz
dGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3VuaWZvcm00diwgc3RhdGUsIHdy
YXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OnVuaWZvcm00aXYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OnVuaWZvcm00aXYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1
cm4gZGF0YUZ1bmN0aW9uaShmX3VuaWZvcm00diwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpT
Qzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm1NYXRyaXgyZnYo
SlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OnVuaWZvcm1NYXRyaXgyZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0
YUZ1bmN0aW9uTWF0cml4KGZfdW5pZm9ybU1hdHJpeDJmdiwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9
CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm1NYXRy
aXgzZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OnVuaWZvcm1NYXRyaXgzZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1
cm4gZGF0YUZ1bmN0aW9uTWF0cml4KGZfdW5pZm9ybU1hdHJpeDNmdiwgc3RhdGUsIHdyYXBwZWQo
KSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZv
cm1NYXRyaXg0ZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OnVuaWZvcm1NYXRyaXg0ZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAg
ICByZXR1cm4gZGF0YUZ1bmN0aW9uTWF0cml4KGZfdW5pZm9ybU1hdHJpeDRmdiwgc3RhdGUsIHdy
YXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OnZlcnRleEF0dHJpYjFmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMWZ2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7
CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmYoZl92ZXJ0ZXhBdHRyaWIxdiwgc3RhdGUsIHdyYXBw
ZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZl
cnRleEF0dHJpYjJmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMmZ2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAg
ICAgcmV0dXJuIGRhdGFGdW5jdGlvbmYoZl92ZXJ0ZXhBdHRyaWIydiwgc3RhdGUsIHdyYXBwZWQo
KSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRl
eEF0dHJpYjNmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliM2Z2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAg
cmV0dXJuIGRhdGFGdW5jdGlvbmYoZl92ZXJ0ZXhBdHRyaWIzdiwgc3RhdGUsIHdyYXBwZWQoKSk7
CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0
dHJpYjRmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dmVydGV4QXR0cmliNGZ2KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0
dXJuIGRhdGFGdW5jdGlvbmYoZl92ZXJ0ZXhBdHRyaWI0diwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNw
cAppbmRleCA5ZmEyOTQwNzhiYmFjYTNkYzI3NjEwNzBhNDhiMjhiNWI3MmNjNjRkLi5lMTJhMjQw
ZDdlNjg3YjljYTY5NjQwZDgyZDZjNDM0ZmU3OGQ2YTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTM1LDYgKzEzNSwx
MCBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc29sdmUo
SlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYQogCiBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBT
Y3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsT2Jq
ZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNW
YWx1ZSBtb2R1bGVLZXlWYWx1ZSwgSlNDOjpKU1ZhbHVlIGluaXRpYXRvcikKIHsKKyAgICAvLyBG
SVhNRTogV2hhdCBndWFyYW50ZWVzIHRoZXNlIGFyZSB0cnVlPyBXaHkgZG9uJ3Qgd2UgbmVlZCB0
byBjaGVjaz8KKyAgICBBU1NFUlQoSlNDOjpqc0R5bmFtaWNDYXN0PEpTRWxlbWVudCo+KGluaXRp
YXRvcikpOworICAgIEFTU0VSVChpc1NjcmlwdEVsZW1lbnQoSlNDOjpqc0R5bmFtaWNDYXN0PEpT
RWxlbWVudCo+KGluaXRpYXRvciktPndyYXBwZWQoKSkpOworCiAgICAgYXV0byYgZ2xvYmFsT2Jq
ZWN0ID0gKkpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oanNHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8mIGpzUHJvbWlzZSA9ICpKU0M6OkpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQ6OmNy
ZWF0ZShleGVjLCAmZ2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIGRlZmVycmVkID0gRGVmZXJyZWRQ
cm9taXNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBqc1Byb21pc2UpOwpAQCAtMTU2LDE3ICsxNjAs
MTIgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaChK
U0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE8KICAgICAgICAgcmV0dXJuIGpzUHJvbWlzZS5w
cm9taXNlKCk7CiAgICAgfQogCi0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRShKU0M6OmpzRHluYW1p
Y0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKSwgIkluaXRpYXRvciBzaG91bGQgYmUgYW4gSlNF
bGVtZW50Iik7Ci0gICAgYXV0byogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElmUG9z
c2libGUoJkpTQzo6anNDYXN0PEpTRWxlbWVudCo+KGluaXRpYXRvciktPndyYXBwZWQoKSk7Ci0g
ICAgQVNTRVJUX1dJVEhfTUVTU0FHRShzY3JpcHRFbGVtZW50LCAiSW5pdGlhdG9yIHNob3VsZCBi
ZSBTY3JpcHRFbGVtZW50LiIpOwotCiAgICAgaWYgKGF1dG8qIGZyYW1lID0gbV9kb2N1bWVudC5m
cmFtZSgpKSB7CiAgICAgICAgIGF1dG8gbG9hZGVyID0gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
OjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdldCgpKTsKICAgICAgICAgbV9sb2FkZXJzLmFkZChs
b2FkZXIuY29weVJlZigpKTsKLSAgICAgICAgaWYgKCFsb2FkZXItPmxvYWQoKnNjcmlwdEVsZW1l
bnQsIGNvbXBsZXRlZFVSTCkpIHsKKyAgICAgICAgaWYgKCFsb2FkZXItPmxvYWQoZG93bmNhc3RT
Y3JpcHRFbGVtZW50KEpTQzo6anNDYXN0PEpTRWxlbWVudCo+KGluaXRpYXRvciktPndyYXBwZWQo
KSksIGNvbXBsZXRlZFVSTCkpIHsKICAgICAgICAgICAgIGxvYWRlci0+Y2xlYXJDbGllbnQoKTsK
ICAgICAgICAgICAgIG1fbG9hZGVycy5yZW1vdmUoV1RGTW92ZShsb2FkZXIpKTsKLQogICAgICAg
ICAgICAgZGVmZXJyZWQtPnJlamVjdChmcmFtZS0+c2NyaXB0KCkubW9kdWxlTG9hZGVyQWxyZWFk
eVJlcG9ydGVkRXJyb3JTeW1ib2woKSk7CiAgICAgICAgICAgICByZXR1cm4ganNQcm9taXNlLnBy
b21pc2UoKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA0YzQzYmRkMWQ3ZTQ4
Mjc2MzllYWEzZjQ1N2E4NTRhNTcyNTZlMGEwLi45NzJiZWIxZWZjYjJjMzc4MjkyMDY3ZWU3NmQ2
OWIyMWUwYzg4NjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMyw3ICszLDcgQEAKICAqICAg
ICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAg
ICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKICAqICAgICAg
ICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEB3ZWJraXQub3JnKQotICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTAsIDIwMTItMjAxMywgMjAxNSwgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2gg
TW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUu
Y29tLykKICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgpAQCAtNjYsOSArNjYsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIGNs
YXNzIEV4ZWNTdGF0ZTsKLSNpZiBFTkFCTEUoV0VCX1JFUExBWSkKIGNsYXNzIElucHV0Q3Vyc29y
OwotI2VuZGlmCiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTk5LDggKzk3LDggQEAgY2xh
c3MgRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2w7CiBjbGFz
cyBEb2N1bWVudFR5cGU7CiBjbGFzcyBFeHRlbnNpb25TdHlsZVNoZWV0czsKLWNsYXNzIEZsb2F0
UmVjdDsKIGNsYXNzIEZsb2F0UXVhZDsKK2NsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIEZvcm1Db250
cm9sbGVyOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBGcmFtZVZpZXc7CkBAIC0xMjEsMTEgKzExOSwx
MCBAQCBjbGFzcyBIVE1MU2NyaXB0RWxlbWVudDsKIGNsYXNzIEhpdFRlc3RSZXF1ZXN0OwogY2xh
c3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEludFBvaW50OworY2xhc3MgSlNOb2RlOwogY2xhc3Mg
TGF5b3V0UG9pbnQ7CiBjbGFzcyBMYXlvdXRSZWN0OwogY2xhc3MgTGl2ZU5vZGVMaXN0OwotY2xh
c3MgU2NyaXB0TW9kdWxlTG9hZGVyOwotY2xhc3MgSlNOb2RlOwogY2xhc3MgTG9jYWxlOwogY2xh
c3MgTG9jYXRpb247CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CkBAIC0xMzMsNyArMTMw
LDYgQEAgY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldDsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJn
ZXRDbGllbnQ7CiBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKIGNsYXNzIE1lZGlhUXVlcnlNYXRjaGVy
OwotY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOwogY2xhc3MgTW91c2VFdmVudFdpdGhIaXRUZXN0
UmVzdWx0czsKIGNsYXNzIE5hbWVkRmxvd0NvbGxlY3Rpb247CiBjbGFzcyBOb2RlRmlsdGVyOwpA
QCAtMTQzLDIzICsxMzksMjQgQEAgY2xhc3MgUGxhdGZvcm1Nb3VzZUV2ZW50OwogY2xhc3MgUHJv
Y2Vzc2luZ0luc3RydWN0aW9uOwogY2xhc3MgUXVhbGlmaWVkTmFtZTsKIGNsYXNzIFJhbmdlOwot
Y2xhc3MgUmVuZGVyVmlldzsKIGNsYXNzIFJlbmRlckZ1bGxTY3JlZW47Ci1jbGFzcyBTY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXI7CitjbGFzcyBSZW5kZXJWaWV3OworY2xhc3MgU1ZHRG9jdW1lbnRF
eHRlbnNpb25zOworY2xhc3MgU1ZHU1ZHRWxlbWVudDsKIGNsYXNzIFNjcmlwdEVsZW1lbnREYXRh
OworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOwogY2xhc3MgU2NyaXB0UnVubmVyOworY2xhc3Mg
U2NyaXB0YWJsZURvY3VtZW50UGFyc2VyOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CitjbGFzcyBT
ZWdtZW50ZWRTdHJpbmc7CiBjbGFzcyBTZWxlY3RvclF1ZXJ5OwogY2xhc3MgU2VsZWN0b3JRdWVy
eUNhY2hlOwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwotY2xhc3MgU2VnbWVudGVkU3Ry
aW5nOwogY2xhc3MgU2V0dGluZ3M7CiBjbGFzcyBTdHlsZVJlc29sdmVyOwogY2xhc3MgU3R5bGVT
aGVldDsKIGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKIGNsYXNzIFN0eWxlU2hlZXRMaXN0Owot
Y2xhc3MgU1ZHRG9jdW1lbnRFeHRlbnNpb25zOwotY2xhc3MgU1ZHU1ZHRWxlbWVudDsKIGNsYXNz
IFRleHQ7CiBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwogY2xhc3MgVHJlZVdhbGtlcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcAppbmRleCAyYmUwZTJlYjkwMzJkZDM4OWFiNTc0
ZDQ4MDg2MDRmMmU2YmZiNTQ5Li4yZjk4NjgyMmFmM2FlNzFhNDEwNTdiMTA0N2Q1ZTJmNWRiOTIw
ZDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuY3BwCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsMzAgKzI3LDMwIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGVuZGluZ1NjcmlwdC5oIgogCi0jaW5j
bHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIlBlbmRpbmdTY3JpcHRDbGllbnQuaCIKKyNpbmNs
dWRlICJTY3JpcHRFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFBlbmRp
bmdTY3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShFbGVtZW50JiBlbGVtZW50LCBMb2FkYWJs
ZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQpCitSZWY8UGVuZGluZ1NjcmlwdD4gUGVuZGluZ1Njcmlw
dDo6Y3JlYXRlKFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJs
ZVNjcmlwdCkKIHsKLSAgICBSZWY8UGVuZGluZ1NjcmlwdD4gcGVuZGluZ1NjcmlwdCA9IGFkb3B0
UmVmKCpuZXcgUGVuZGluZ1NjcmlwdChlbGVtZW50LCBsb2FkYWJsZVNjcmlwdCkpOworICAgIGF1
dG8gcGVuZGluZ1NjcmlwdCA9IGFkb3B0UmVmKCpuZXcgUGVuZGluZ1NjcmlwdChlbGVtZW50LCBs
b2FkYWJsZVNjcmlwdCkpOwogICAgIGxvYWRhYmxlU2NyaXB0LmFkZENsaWVudChwZW5kaW5nU2Ny
aXB0LmdldCgpKTsKICAgICByZXR1cm4gcGVuZGluZ1NjcmlwdDsKIH0KIAotUmVmPFBlbmRpbmdT
Y3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShFbGVtZW50JiBlbGVtZW50LCBUZXh0UG9zaXRp
b24gc2NyaXB0U3RhcnRQb3NpdGlvbikKK1JlZjxQZW5kaW5nU2NyaXB0PiBQZW5kaW5nU2NyaXB0
OjpjcmVhdGUoU2NyaXB0RWxlbWVudCYgZWxlbWVudCwgVGV4dFBvc2l0aW9uIHNjcmlwdFN0YXJ0
UG9zaXRpb24pCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGVuZGluZ1NjcmlwdChlbGVt
ZW50LCBzY3JpcHRTdGFydFBvc2l0aW9uKSk7CiB9CiAKLVBlbmRpbmdTY3JpcHQ6OlBlbmRpbmdT
Y3JpcHQoRWxlbWVudCYgZWxlbWVudCwgVGV4dFBvc2l0aW9uIHN0YXJ0aW5nUG9zaXRpb24pCitQ
ZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQsIFRleHRQ
b3NpdGlvbiBzdGFydGluZ1Bvc2l0aW9uKQogICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCiAgICAg
LCBtX3N0YXJ0aW5nUG9zaXRpb24oc3RhcnRpbmdQb3NpdGlvbikKIHsKIH0KIAotUGVuZGluZ1Nj
cmlwdDo6UGVuZGluZ1NjcmlwdChFbGVtZW50JiBlbGVtZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9h
ZGFibGVTY3JpcHQpCitQZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQm
IGVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlwdCkKICAgICA6IG1fZWxlbWVu
dChlbGVtZW50KQogICAgICwgbV9sb2FkYWJsZVNjcmlwdCgmbG9hZGFibGVTY3JpcHQpCiB7CkBA
IC02MSwxMSArNjIsNiBAQCBQZW5kaW5nU2NyaXB0Ojp+UGVuZGluZ1NjcmlwdCgpCiAgICAgICAg
IG1fbG9hZGFibGVTY3JpcHQtPnJlbW92ZUNsaWVudCgqdGhpcyk7CiB9CiAKLUxvYWRhYmxlU2Ny
aXB0KiBQZW5kaW5nU2NyaXB0Ojpsb2FkYWJsZVNjcmlwdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fbG9hZGFibGVTY3JpcHQuZ2V0KCk7Ci19Ci0KIHZvaWQgUGVuZGluZ1NjcmlwdDo6bm90aWZ5
Q2xpZW50RmluaXNoZWQoKQogewogICAgIFJlZjxQZW5kaW5nU2NyaXB0PiBwcm90ZWN0ZWRUaGlz
KCp0aGlzKTsKQEAgLTg4LDEwICs4NCwxMCBAQCBib29sIFBlbmRpbmdTY3JpcHQ6OmVycm9yKCkg
Y29uc3QKICAgICByZXR1cm4gbV9sb2FkYWJsZVNjcmlwdCAmJiBtX2xvYWRhYmxlU2NyaXB0LT5l
cnJvcigpOwogfQogCi12b2lkIFBlbmRpbmdTY3JpcHQ6OnNldENsaWVudChQZW5kaW5nU2NyaXB0
Q2xpZW50KiBjbGllbnQpCit2b2lkIFBlbmRpbmdTY3JpcHQ6OnNldENsaWVudChQZW5kaW5nU2Ny
aXB0Q2xpZW50JiBjbGllbnQpCiB7CiAgICAgQVNTRVJUKCFtX2NsaWVudCk7Ci0gICAgbV9jbGll
bnQgPSBjbGllbnQ7CisgICAgbV9jbGllbnQgPSAmY2xpZW50OwogICAgIGlmIChpc0xvYWRlZCgp
KQogICAgICAgICBub3RpZnlDbGllbnRGaW5pc2hlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5n
U2NyaXB0LmgKaW5kZXggOTkwZjI1MDgzYjAxYjAyN2M0YWMwMTQxN2Y4ZjQ5MTZhOWU4ZTY2Ni4u
ZmM3NThkMDdkZDYwZGVjMzE4YmI4OGRhZDA3ODdmODQ4ODJmODIxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UGVuZGluZ1NjcmlwdC5oCkBAIC0zNCwxNSArMzQsMTUgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgQ2FjaGVkU2NyaXB0OwotY2xhc3MgRWxlbWVudDsKIGNsYXNzIFBlbmRpbmdTY3Jp
cHRDbGllbnQ7CitjbGFzcyBTY3JpcHRFbGVtZW50OwogCiAvLyBBIGNvbnRhaW5lciBmb3Igc2Ny
aXB0cyB3aGljaCBtYXkgYmUgbG9hZGVkIGFuZCBleGVjdXRlZC4KIC8vIFRoaXMgY2FuIGhvbGQg
TG9hZGFibGVTY3JpcHQgYW5kIG5vbiBleHRlcm5hbCBpbmxpbmUgc2NyaXB0LgogY2xhc3MgUGVu
ZGluZ1NjcmlwdCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFBlbmRpbmdTY3JpcHQ+LCBwdWJs
aWMgTG9hZGFibGVTY3JpcHRDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UGVuZGlu
Z1NjcmlwdD4gY3JlYXRlKEVsZW1lbnQmLCBMb2FkYWJsZVNjcmlwdCYpOwotICAgIHN0YXRpYyBS
ZWY8UGVuZGluZ1NjcmlwdD4gY3JlYXRlKEVsZW1lbnQmLCBUZXh0UG9zaXRpb24gc2NyaXB0U3Rh
cnRQb3NpdGlvbik7CisgICAgc3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0PiBjcmVhdGUoU2NyaXB0
RWxlbWVudCYsIExvYWRhYmxlU2NyaXB0Jik7CisgICAgc3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0
PiBjcmVhdGUoU2NyaXB0RWxlbWVudCYsIFRleHRQb3NpdGlvbiBzY3JpcHRTdGFydFBvc2l0aW9u
KTsKIAogICAgIHZpcnR1YWwgflBlbmRpbmdTY3JpcHQoKTsKIApAQCAtNTEsOCArNTEsOCBAQCBw
dWJsaWM6CiAKICAgICBib29sIHdhdGNoaW5nRm9yTG9hZCgpIGNvbnN0IHsgcmV0dXJuIG5lZWRz
TG9hZGluZygpICYmIG1fY2xpZW50OyB9CiAKLSAgICBFbGVtZW50JiBlbGVtZW50KCkgeyByZXR1
cm4gbV9lbGVtZW50LmdldCgpOyB9Ci0gICAgY29uc3QgRWxlbWVudCYgZWxlbWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fZWxlbWVudC5nZXQoKTsgfQorICAgIFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQo
KSB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0KKyAgICBjb25zdCBTY3JpcHRFbGVtZW50JiBl
bGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50LmdldCgpOyB9CiAKICAgICBMb2FkYWJs
ZVNjcmlwdCogbG9hZGFibGVTY3JpcHQoKSBjb25zdDsKICAgICBib29sIG5lZWRzTG9hZGluZygp
IGNvbnN0IHsgcmV0dXJuIGxvYWRhYmxlU2NyaXB0KCk7IH0KQEAgLTYyLDE5ICs2MiwyNCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKExvYWRhYmxlU2NyaXB0Jikgb3ZlcnJp
ZGU7CiAKLSAgICB2b2lkIHNldENsaWVudChQZW5kaW5nU2NyaXB0Q2xpZW50Kik7CisgICAgdm9p
ZCBzZXRDbGllbnQoUGVuZGluZ1NjcmlwdENsaWVudCYpOwogICAgIHZvaWQgY2xlYXJDbGllbnQo
KTsKIAogcHJpdmF0ZToKLSAgICBQZW5kaW5nU2NyaXB0KEVsZW1lbnQmLCBMb2FkYWJsZVNjcmlw
dCYpOwotICAgIFBlbmRpbmdTY3JpcHQoRWxlbWVudCYsIFRleHRQb3NpdGlvbiBzdGFydGluZ1Bv
c2l0aW9uKTsKKyAgICBQZW5kaW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQmLCBMb2FkYWJsZVNjcmlw
dCYpOworICAgIFBlbmRpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCYsIFRleHRQb3NpdGlvbiBzdGFy
dGluZ1Bvc2l0aW9uKTsKIAogICAgIHZvaWQgbm90aWZ5Q2xpZW50RmluaXNoZWQoKTsKIAotICAg
IFJlZjxFbGVtZW50PiBtX2VsZW1lbnQ7CisgICAgUmVmPFNjcmlwdEVsZW1lbnQ+IG1fZWxlbWVu
dDsKICAgICBUZXh0UG9zaXRpb24gbV9zdGFydGluZ1Bvc2l0aW9uOyAvLyBPbmx5IHVzZWQgZm9y
IGlubGluZSBzY3JpcHQgdGFncy4KICAgICBSZWZQdHI8TG9hZGFibGVTY3JpcHQ+IG1fbG9hZGFi
bGVTY3JpcHQ7CiAgICAgUGVuZGluZ1NjcmlwdENsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07
CiB9OwogCitpbmxpbmUgTG9hZGFibGVTY3JpcHQqIFBlbmRpbmdTY3JpcHQ6OmxvYWRhYmxlU2Ny
aXB0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9sb2FkYWJsZVNjcmlwdC5nZXQoKTsKK30KKwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDYxZjI0ODJmNTg3MWQ4YWQw
Yjc1MjZmNmY0NDViY2RiNzc0ZmM0OGYuLmY2ODYzN2FjNGQ5NWNlODhhMWZiMDU1MzFkZmRhZmY1
MDAxNDAwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTIsNyArMiw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAq
ICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAq
ICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENv
cHlyaWdodCAoQykgMjAwMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2Rl
Lm9yZz4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yNjMsMTEgKzI2MywxMSBAQCBib29sIFNjcmlwdEVsZW1l
bnQ6OnByZXBhcmVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9u
LCBMZWdhYwogICAgIH0gZWxzZSBpZiAoKGlzQ2xhc3NpY0V4dGVybmFsU2NyaXB0IHx8IHNjcmlw
dFR5cGUgPT0gU2NyaXB0VHlwZTo6TW9kdWxlKSAmJiAhYXN5bmNBdHRyaWJ1dGVWYWx1ZSgpICYm
ICFtX2ZvcmNlQXN5bmMpIHsKICAgICAgICAgbV93aWxsRXhlY3V0ZUluT3JkZXIgPSB0cnVlOwog
ICAgICAgICBBU1NFUlQobV9sb2FkYWJsZVNjcmlwdCk7Ci0gICAgICAgIGRvY3VtZW50LnNjcmlw
dFJ1bm5lcigpLT5xdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbih0aGlzLCAqbV9sb2FkYWJsZVNjcmlw
dCwgU2NyaXB0UnVubmVyOjpJTl9PUkRFUl9FWEVDVVRJT04pOworICAgICAgICBkb2N1bWVudC5z
Y3JpcHRSdW5uZXIoKS0+cXVldWVTY3JpcHRGb3JFeGVjdXRpb24oKnRoaXMsICptX2xvYWRhYmxl
U2NyaXB0LCBTY3JpcHRSdW5uZXI6OklOX09SREVSX0VYRUNVVElPTik7CiAgICAgfSBlbHNlIGlm
IChoYXNTb3VyY2VBdHRyaWJ1dGUoKSB8fCBzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6Ok1vZHVs
ZSkgewogICAgICAgICBBU1NFUlQobV9sb2FkYWJsZVNjcmlwdCk7CiAgICAgICAgIEFTU0VSVChh
c3luY0F0dHJpYnV0ZVZhbHVlKCkgfHwgbV9mb3JjZUFzeW5jKTsKLSAgICAgICAgZG9jdW1lbnQu
c2NyaXB0UnVubmVyKCktPnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKHRoaXMsICptX2xvYWRhYmxl
U2NyaXB0LCBTY3JpcHRSdW5uZXI6OkFTWU5DX0VYRUNVVElPTik7CisgICAgICAgIGRvY3VtZW50
LnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbigqdGhpcywgKm1fbG9hZGFi
bGVTY3JpcHQsIFNjcmlwdFJ1bm5lcjo6QVNZTkNfRVhFQ1VUSU9OKTsKICAgICB9IGVsc2UgaWYg
KCFoYXNTb3VyY2VBdHRyaWJ1dGUoKSAmJiBtX3BhcnNlckluc2VydGVkICYmICFkb2N1bWVudC5o
YXZlU3R5bGVzaGVldHNMb2FkZWQoKSkgewogICAgICAgICBBU1NFUlQoc2NyaXB0VHlwZSA9PSBT
Y3JpcHRUeXBlOjpDbGFzc2ljKTsKICAgICAgICAgbV93aWxsQmVQYXJzZXJFeGVjdXRlZCA9IHRy
dWU7CkBAIC00ODcsMTUgKzQ4NywyNiBAQCBTdHJpbmcgU2NyaXB0RWxlbWVudDo6c2NyaXB0Q29u
dGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOwogfQogCi1TY3JpcHRF
bGVtZW50KiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKEVsZW1lbnQqIGVsZW1lbnQpCit2b2lk
IFNjcmlwdEVsZW1lbnQ6OnJlZigpCiB7Ci0gICAgaWYgKGlzPEhUTUxTY3JpcHRFbGVtZW50Pigq
ZWxlbWVudCkpCi0gICAgICAgIHJldHVybiBkb3duY2FzdDxIVE1MU2NyaXB0RWxlbWVudD4oZWxl
bWVudCk7CisgICAgbV9lbGVtZW50LnJlZigpOworfQogCi0gICAgaWYgKGlzPFNWR1NjcmlwdEVs
ZW1lbnQ+KCplbGVtZW50KSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PFNWR1NjcmlwdEVsZW1l
bnQ+KGVsZW1lbnQpOwordm9pZCBTY3JpcHRFbGVtZW50OjpkZXJlZigpCit7CisgICAgbV9lbGVt
ZW50LmRlcmVmKCk7Cit9CiAKLSAgICByZXR1cm4gbnVsbHB0cjsKK2Jvb2wgaXNTY3JpcHRFbGVt
ZW50KEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgcmV0dXJuIGlzPEhUTUxTY3JpcHRFbGVtZW50
PihlbGVtZW50KSB8fCBpczxTVkdTY3JpcHRFbGVtZW50PihlbGVtZW50KTsKK30KKworU2NyaXB0
RWxlbWVudCYgZG93bmNhc3RTY3JpcHRFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAg
aWYgKGlzPEhUTUxTY3JpcHRFbGVtZW50PihlbGVtZW50KSkKKyAgICAgICAgcmV0dXJuIGRvd25j
YXN0PEhUTUxTY3JpcHRFbGVtZW50PihlbGVtZW50KTsKKyAgICByZXR1cm4gZG93bmNhc3Q8U1ZH
U2NyaXB0RWxlbWVudD4oZWxlbWVudCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVu
dC5oCmluZGV4IDQwNzljMTcwOTMyMTc4NDA4N2U5ZTNmNzMyMzQ2YzU1ODAwZjdiMTQuLjVmMTgx
ZGYyZTNiMGU4ODhlZjM5NDdiYmNkYzE4ZDkzMDdkZGViMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEVsZW1lbnQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTmlr
b2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTI1LDE5ICsyNiwxNyBAQAogI2luY2x1ZGUgIkxvYWRhYmxlU2NyaXB0LmgiCiAjaW5j
bHVkZSAiTG9hZGFibGVTY3JpcHRDbGllbnQuaCIKICNpbmNsdWRlICJUaW1lci5oIgotI2luY2x1
ZGUgIlVSTC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgotI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENh
Y2hlZE1vZHVsZVNjcmlwdDsKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIENvbnRhaW5lck5v
ZGU7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgUGVuZGluZ1NjcmlwdDsKLWNsYXNzIFNjcmlwdEVs
ZW1lbnQ7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0
OworY2xhc3MgVVJMOwogCiBjbGFzcyBTY3JpcHRFbGVtZW50IHsKIHB1YmxpYzoKQEAgLTczLDYg
KzcyLDkgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgU2NyaXB0VHlwZSB7IENsYXNzaWMsIE1v
ZHVsZSB9OwogICAgIFNjcmlwdFR5cGUgc2NyaXB0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNN
b2R1bGVTY3JpcHQgPyBTY3JpcHRUeXBlOjpNb2R1bGUgOiBTY3JpcHRUeXBlOjpDbGFzc2ljOyB9
CiAKKyAgICB2b2lkIHJlZigpOworICAgIHZvaWQgZGVyZWYoKTsKKwogcHJvdGVjdGVkOgogICAg
IFNjcmlwdEVsZW1lbnQoRWxlbWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyLCBib29sIGlzRXZh
bHVhdGVkKTsKIApAQCAtMTI3LDcgKzEyOSw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPExvYWRh
YmxlU2NyaXB0PiBtX2xvYWRhYmxlU2NyaXB0OwogfTsKIAotLy8gRklYTUU6IHJlcGxhY2Ugd2l0
aCBkb3duY2FzdDxTY3JpcHRFbGVtZW50Pi4KLVNjcmlwdEVsZW1lbnQqIHRvU2NyaXB0RWxlbWVu
dElmUG9zc2libGUoRWxlbWVudCopOworLy8gRklYTUU6IHJlcGxhY2Ugd2l0aCBpcy9kb3duY2Fz
dDxTY3JpcHRFbGVtZW50Pi4KK2Jvb2wgaXNTY3JpcHRFbGVtZW50KEVsZW1lbnQmKTsKK1Njcmlw
dEVsZW1lbnQmIGRvd25jYXN0U2NyaXB0RWxlbWVudChFbGVtZW50Jik7CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdFJ1bm5lci5jcHAKaW5kZXggNzA5ODllYjQwYzA0NWFkZTc3NGFlNTdkMDlhNDA0
OGI1OWUzODgwNC4uMDQxZTZkMTMzMWY0NDIzYzE1Yzk4NzY5ZjlhMjI3NGNlZDBhZDBmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NiwyNiArNTcsMjIgQEAgU2NyaXB0UnVu
bmVyOjp+U2NyaXB0UnVubmVyKCkKICAgICB9CiB9CiAKLXZvaWQgU2NyaXB0UnVubmVyOjpxdWV1
ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBMb2FkYWJs
ZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQsIEV4ZWN1dGlvblR5cGUgZXhlY3V0aW9uVHlwZSkKK3Zv
aWQgU2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50JiBz
Y3JpcHRFbGVtZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQsIEV4ZWN1dGlvblR5
cGUgZXhlY3V0aW9uVHlwZSkKIHsKLSAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7Ci0KLSAgICBF
bGVtZW50JiBlbGVtZW50ID0gc2NyaXB0RWxlbWVudC0+ZWxlbWVudCgpOwotICAgIEFTU0VSVChl
bGVtZW50LmluRG9jdW1lbnQoKSk7CisgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQuZWxlbWVudCgp
LmluRG9jdW1lbnQoKSk7CiAKICAgICBtX2RvY3VtZW50LmluY3JlbWVudExvYWRFdmVudERlbGF5
Q291bnQoKTsKIAotICAgIFJlZjxQZW5kaW5nU2NyaXB0PiBwZW5kaW5nU2NyaXB0ID0gUGVuZGlu
Z1NjcmlwdDo6Y3JlYXRlKGVsZW1lbnQsIGxvYWRhYmxlU2NyaXB0KTsKKyAgICBhdXRvIHBlbmRp
bmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxlbWVudCwgbG9hZGFibGVT
Y3JpcHQpOwogICAgIHN3aXRjaCAoZXhlY3V0aW9uVHlwZSkgewogICAgIGNhc2UgQVNZTkNfRVhF
Q1VUSU9OOgogICAgICAgICBtX3BlbmRpbmdBc3luY1NjcmlwdHMuYWRkKHBlbmRpbmdTY3JpcHQu
Y29weVJlZigpKTsKICAgICAgICAgYnJlYWs7Ci0KICAgICBjYXNlIElOX09SREVSX0VYRUNVVElP
TjoKICAgICAgICAgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5hcHBlbmQocGVuZGluZ1Njcmlw
dC5jb3B5UmVmKCkpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgcGVuZGluZ1NjcmlwdC0+
c2V0Q2xpZW50KHRoaXMpOworICAgIHBlbmRpbmdTY3JpcHQtPnNldENsaWVudCgqdGhpcyk7CiB9
CiAKIHZvaWQgU2NyaXB0UnVubmVyOjpzdXNwZW5kKCkKQEAgLTkxLDkgKzg4LDcgQEAgdm9pZCBT
Y3JpcHRSdW5uZXI6OnJlc3VtZSgpCiAKIHZvaWQgU2NyaXB0UnVubmVyOjpub3RpZnlGaW5pc2hl
ZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogewotICAgIGF1dG8qIHNjcmlwdEVsZW1l
bnQgPSB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKSk7
Ci0gICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOwotICAgIGlmIChzY3JpcHRFbGVtZW50LT53aWxs
RXhlY3V0ZUluT3JkZXIoKSkKKyAgICBpZiAocGVuZGluZ1NjcmlwdC5lbGVtZW50KCkud2lsbEV4
ZWN1dGVJbk9yZGVyKCkpCiAgICAgICAgIEFTU0VSVCghbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRl
ci5pc0VtcHR5KCkpOwogICAgIGVsc2UgewogICAgICAgICBBU1NFUlQobV9wZW5kaW5nQXN5bmNT
Y3JpcHRzLmNvbnRhaW5zKHBlbmRpbmdTY3JpcHQpKTsKQEAgLTEyMiwxMCArMTE3LDggQEAgdm9p
ZCBTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoKQogICAgICAgICAvLyBQYXBlciBvdmVyIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQwNTAKICAgICAgICAgaWYgKCFz
Y3JpcHQpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgYXV0byogc2NyaXB0RWxlbWVu
dCA9IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJnNjcmlwdC0+ZWxlbWVudCgpKTsKLSAgICAg
ICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOwogICAgICAgICBBU1NFUlQoc2NyaXB0LT5uZWVkc0xv
YWRpbmcoKSk7Ci0gICAgICAgIHNjcmlwdEVsZW1lbnQtPmV4ZWN1dGVQZW5kaW5nU2NyaXB0KCpz
Y3JpcHQpOworICAgICAgICBzY3JpcHQtPmVsZW1lbnQoKS5leGVjdXRlUGVuZGluZ1NjcmlwdCgq
c2NyaXB0KTsKICAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50
KCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5l
ci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCmluZGV4IGRmY2YzYzVmYTkw
ZTRhNDUwOTQwNDJkODc3ZGUzYmNlNDQ4MDBkOWEuLjhlOGY0ODZhZDFkYjBkYmMwZDBiZTY0NTIx
MTFlZWQ3NzBmMTUzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5u
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKQEAgLTEsNSArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxMyArMjks
MTEgQEAKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0Q2xpZW50LmgiCiAjaW5jbHVkZSAiVGltZXIu
aCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBEb2N1bWVudDsKLWNsYXNzIFBlbmRpbmdTY3JpcHQ7CiBjbGFzcyBTY3JpcHRFbGVtZW50Owog
Y2xhc3MgTG9hZGFibGVTY3JpcHQ7CiAKQEAgLTQ1LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIH5T
Y3JpcHRSdW5uZXIoKTsKIAogICAgIGVudW0gRXhlY3V0aW9uVHlwZSB7IEFTWU5DX0VYRUNVVElP
TiwgSU5fT1JERVJfRVhFQ1VUSU9OIH07Ci0gICAgdm9pZCBxdWV1ZVNjcmlwdEZvckV4ZWN1dGlv
bihTY3JpcHRFbGVtZW50KiwgTG9hZGFibGVTY3JpcHQmLCBFeGVjdXRpb25UeXBlKTsKKyAgICB2
b2lkIHF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQmLCBMb2FkYWJsZVNjcmlw
dCYsIEV4ZWN1dGlvblR5cGUpOwogICAgIGJvb2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7
IHJldHVybiAhbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkgfHwgIW1fc2NyaXB0c1Rv
RXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpIHx8ICFtX3BlbmRpbmdBc3luY1NjcmlwdHMuaXNFbXB0
eSgpOyB9CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCByZXN1bWUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDEzNjdiNGYyMGVhMDkxMWRmOWNkZGNmMWMx
NjJlNzM5ZDFlMDI2ZTMuLjU3ZDBkYzFjNzYzZDY3YjZiMDIyOGM4NjA1MTNkN2YxZTljNTM2M2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIw
MTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpA
QCAtMjIxLDcgKzIyMSw3IEBAIGJvb2wgRmlsZUlucHV0VHlwZTo6Y2FuU2V0U3RyaW5nVmFsdWUo
KSBjb25zdAogCiBGaWxlTGlzdCogRmlsZUlucHV0VHlwZTo6ZmlsZXMoKQogewotICAgIHJldHVy
biBtX2ZpbGVMaXN0LmdldCgpOworICAgIHJldHVybiBtX2ZpbGVMaXN0LnB0cigpOwogfQogCiBi
b29sIEZpbGVJbnB1dFR5cGU6OmNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC0y
NTgsMTIgKzI1OCwxMiBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmlu
ZyYsIGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpCiAgICAgZWxlbWVudCgpLmludmFsaWRh
dGVTdHlsZUZvclN1YnRyZWUoKTsKIH0KIAotUGFzc1JlZlB0cjxGaWxlTGlzdD4gRmlsZUlucHV0
VHlwZTo6Y3JlYXRlRmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBm
aWxlcykgY29uc3QKK1JlZjxGaWxlTGlzdD4gRmlsZUlucHV0VHlwZTo6Y3JlYXRlRmlsZUxpc3Qo
Y29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBmaWxlcykKIHsKICAgICBWZWN0b3I8
UmVmUHRyPEZpbGU+PiBmaWxlT2JqZWN0czsKLSAgICBmb3IgKGNvbnN0IEZpbGVDaG9vc2VyRmls
ZUluZm8mIGluZm8gOiBmaWxlcykKLSAgICAgICAgZmlsZU9iamVjdHMuYXBwZW5kKEZpbGU6OmNy
ZWF0ZVdpdGhOYW1lKGluZm8ucGF0aCwgaW5mby5kaXNwbGF5TmFtZSkpOwotCisgICAgZmlsZU9i
amVjdHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShmaWxlcy5zaXplKCkpOworICAgIGZvciAoYXV0
byYgaW5mbyA6IGZpbGVzKQorICAgICAgICBmaWxlT2JqZWN0cy51bmNoZWNrZWRBcHBlbmQoRmls
ZTo6Y3JlYXRlV2l0aE5hbWUoaW5mby5wYXRoLCBpbmZvLmRpc3BsYXlOYW1lKSk7CiAgICAgcmV0
dXJuIEZpbGVMaXN0OjpjcmVhdGUoV1RGTW92ZShmaWxlT2JqZWN0cykpOwogfQogCkBAIC0zMDIs
MjkgKzMwMiwzMiBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6Om11bHRpcGxlQXR0cmlidXRlQ2hhbmdl
ZCgpCiAgICAgICAgIGJ1dHRvbi0+c2V0VmFsdWUoZWxlbWVudCgpLm11bHRpcGxlKCkgPyBmaWxl
QnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkgOiBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxh
YmVsKCkpOwogfQogCisjaWYgIVBMQVRGT1JNKElPUykKKwogdm9pZCBGaWxlSW5wdXRUeXBlOjpy
ZXF1ZXN0SWNvbihjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpCiB7Ci0jaWYgUExBVEZPUk0o
SU9TKQotICAgIFVOVVNFRF9QQVJBTShwYXRocyk7Ci0jZWxzZQogICAgIGlmICghcGF0aHMuc2l6
ZSgpKSB7Ci0gICAgICAgIHVwZGF0ZVJlbmRlcmluZyhudWxscHRyKTsKKyAgICAgICAgaWNvbkxv
YWRlZChudWxscHRyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIENocm9tZSogY2hy
b21lID0gdGhpcy0+Y2hyb21lKCk7Ci0gICAgaWYgKCFjaHJvbWUpCisgICAgYXV0byogY2hyb21l
ID0gdGhpcy0+Y2hyb21lKCk7CisgICAgaWYgKCFjaHJvbWUpIHsKKyAgICAgICAgaWNvbkxvYWRl
ZChudWxscHRyKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGlmIChtX2ZpbGVJY29u
TG9hZGVyKQogICAgICAgICBtX2ZpbGVJY29uTG9hZGVyLT5pbnZhbGlkYXRlKCk7CiAKLSAgICBt
X2ZpbGVJY29uTG9hZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxGaWxlSWNvbkxvYWRlcj4oc3RhdGlj
X2Nhc3Q8RmlsZUljb25Mb2FkZXJDbGllbnQmPigqdGhpcykpOworICAgIEZpbGVJY29uTG9hZGVy
Q2xpZW50JiBjbGllbnQgPSAqdGhpczsKKyAgICBtX2ZpbGVJY29uTG9hZGVyID0gc3RkOjptYWtl
X3VuaXF1ZTxGaWxlSWNvbkxvYWRlcj4oY2xpZW50KTsKIAotICAgIGNocm9tZS0+bG9hZEljb25G
b3JGaWxlcyhwYXRocywgbV9maWxlSWNvbkxvYWRlci5nZXQoKSk7Ci0jZW5kaWYKKyAgICBjaHJv
bWUtPmxvYWRJY29uRm9yRmlsZXMocGF0aHMsICptX2ZpbGVJY29uTG9hZGVyKTsKIH0KIAorI2Vu
ZGlmCisKIHZvaWQgRmlsZUlucHV0VHlwZTo6YXBwbHlGaWxlQ2hvb3NlclNldHRpbmdzKGNvbnN0
IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIGlmIChtX2ZpbGVDaG9vc2Vy
KQpAQCAtMzMzLDE4ICszMzYsMjAgQEAgdm9pZCBGaWxlSW5wdXRUeXBlOjphcHBseUZpbGVDaG9v
c2VyU2V0dGluZ3MoY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0dGluZ3MKICAgICBtX2Zp
bGVDaG9vc2VyID0gRmlsZUNob29zZXI6OmNyZWF0ZSh0aGlzLCBzZXR0aW5ncyk7CiB9CiAKLXZv
aWQgRmlsZUlucHV0VHlwZTo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCit2
b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4mJiBmaWxlcykKIHsK
ICAgICBpZiAoIWZpbGVzKQogICAgICAgICByZXR1cm47CiAKICAgICBSZWY8SFRNTElucHV0RWxl
bWVudD4gaW5wdXQoZWxlbWVudCgpKTsKIAorICAgIHVuc2lnbmVkIGxlbmd0aCA9IGZpbGVzLT5s
ZW5ndGgoKTsKKwogICAgIGJvb2wgcGF0aHNDaGFuZ2VkID0gZmFsc2U7Ci0gICAgaWYgKGZpbGVz
LT5sZW5ndGgoKSAhPSBtX2ZpbGVMaXN0LT5sZW5ndGgoKSkKKyAgICBpZiAobGVuZ3RoICE9IG1f
ZmlsZUxpc3QtPmxlbmd0aCgpKQogICAgICAgICBwYXRoc0NoYW5nZWQgPSB0cnVlOwogICAgIGVs
c2UgewotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmlsZXMtPmxlbmd0aCgpOyAr
K2kpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CiAg
ICAgICAgICAgICBpZiAoZmlsZXMtPml0ZW0oaSktPnBhdGgoKSAhPSBtX2ZpbGVMaXN0LT5pdGVt
KGkpLT5wYXRoKCkpIHsKICAgICAgICAgICAgICAgICBwYXRoc0NoYW5nZWQgPSB0cnVlOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzUyLDE1ICszNTcsMTggQEAgdm9pZCBGaWxlSW5wdXRU
eXBlOjpzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0PiBmaWxlcykKICAgICAgICAgfQogICAg
IH0KIAotICAgIG1fZmlsZUxpc3QgPSBmaWxlczsKKyAgICBtX2ZpbGVMaXN0ID0gZmlsZXMucmVs
ZWFzZU5vbk51bGwoKTsKIAogICAgIGlucHV0LT5zZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1Jl
bmRlcmVyKHRydWUpOwogICAgIGlucHV0LT51cGRhdGVWYWxpZGl0eSgpOwogCisjaWYgIVBMQVRG
T1JNKElPUykKICAgICBWZWN0b3I8U3RyaW5nPiBwYXRoczsKLSAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbV9maWxlTGlzdC0+bGVuZ3RoKCk7ICsraSkKLSAgICAgICAgcGF0aHMuYXBwZW5k
KG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSk7CisgICAgcGF0aHMucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eShsZW5ndGgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsr
aSkKKyAgICAgICAgcGF0aHMudW5jaGVja2VkQXBwZW5kKG1fZmlsZUxpc3QtPml0ZW0oaSktPnBh
dGgoKSk7CiAgICAgcmVxdWVzdEljb24ocGF0aHMpOworI2VuZGlmCiAKICAgICBpZiAoaW5wdXQt
PnJlbmRlcmVyKCkpCiAgICAgICAgIGlucHV0LT5yZW5kZXJlcigpLT5yZXBhaW50KCk7CkBAIC0z
NzQsMTcgKzM4MiwxOSBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8
RmlsZUxpc3Q+IGZpbGVzKQogfQogCiAjaWYgUExBVEZPUk0oSU9TKQorCiB2b2lkIEZpbGVJbnB1
dFR5cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgcGF0
aHMsIGNvbnN0IFN0cmluZyYgZGlzcGxheVN0cmluZywgSWNvbiogaWNvbikKIHsKICAgICBtX2Rp
c3BsYXlTdHJpbmcgPSBkaXNwbGF5U3RyaW5nOwogICAgIGZpbGVzQ2hvc2VuKHBhdGhzKTsKLSAg
ICB1cGRhdGVSZW5kZXJpbmcoaWNvbik7CisgICAgaWNvbkxvYWRlZChpY29uKTsKIH0KIAogU3Ry
aW5nIEZpbGVJbnB1dFR5cGU6OmRpc3BsYXlTdHJpbmcoKSBjb25zdAogewogICAgIHJldHVybiBt
X2Rpc3BsYXlTdHJpbmc7CiB9CisKICNlbmRpZgogCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmZpbGVz
Q2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpCkBAIC0zOTIs
MTIgKzQwMiwxMiBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlY3Rv
cjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpCiAgICAgc2V0RmlsZXMoY3JlYXRlRmlsZUxp
c3QoZmlsZXMpKTsKIH0KIAotdm9pZCBGaWxlSW5wdXRUeXBlOjp1cGRhdGVSZW5kZXJpbmcoUGFz
c1JlZlB0cjxJY29uPiBpY29uKQordm9pZCBGaWxlSW5wdXRUeXBlOjppY29uTG9hZGVkKFJlZlB0
cjxJY29uPiYmIGljb24pCiB7CiAgICAgaWYgKG1faWNvbiA9PSBpY29uKQogICAgICAgICByZXR1
cm47CiAKLSAgICBtX2ljb24gPSBpY29uOworICAgIG1faWNvbiA9IFdURk1vdmUoaWNvbik7CiAg
ICAgaWYgKGVsZW1lbnQoKS5yZW5kZXJlcigpKQogICAgICAgICBlbGVtZW50KCkucmVuZGVyZXIo
KS0+cmVwYWludCgpOwogfQpAQCAtNDM0LDggKzQ0NCw3IEBAIEljb24qIEZpbGVJbnB1dFR5cGU6
Omljb24oKSBjb25zdAogCiBTdHJpbmcgRmlsZUlucHV0VHlwZTo6ZGVmYXVsdFRvb2xUaXAoKSBj
b25zdAogewotICAgIEZpbGVMaXN0KiBmaWxlTGlzdCA9IG1fZmlsZUxpc3QuZ2V0KCk7Ci0gICAg
dW5zaWduZWQgbGlzdFNpemUgPSBmaWxlTGlzdC0+bGVuZ3RoKCk7CisgICAgdW5zaWduZWQgbGlz
dFNpemUgPSBtX2ZpbGVMaXN0LT5sZW5ndGgoKTsKICAgICBpZiAoIWxpc3RTaXplKSB7CiAgICAg
ICAgIGlmIChlbGVtZW50KCkubXVsdGlwbGUoKSkKICAgICAgICAgICAgIHJldHVybiBmaWxlQnV0
dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKTsKQEAgLTQ0Myw4ICs0NTIsOCBAQCBTdHJpbmcgRmls
ZUlucHV0VHlwZTo6ZGVmYXVsdFRvb2xUaXAoKSBjb25zdAogICAgIH0KIAogICAgIFN0cmluZ0J1
aWxkZXIgbmFtZXM7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7
Ci0gICAgICAgIG5hbWVzLmFwcGVuZChmaWxlTGlzdC0+aXRlbShpKS0+bmFtZSgpKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgeworICAgICAgICBuYW1lcy5h
cHBlbmQobV9maWxlTGlzdC0+aXRlbShpKS0+bmFtZSgpKTsKICAgICAgICAgaWYgKGkgIT0gbGlz
dFNpemUgLSAxKQogICAgICAgICAgICAgbmFtZXMuYXBwZW5kKCdcbicpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKaW5kZXggZjhhMGRmZjJkOGQzYzMwNWYwMWExZGY4Yzg5
MWEyOTBlMzY1NjNmMS4uZWU0MDY0OGQ2OTUxZGE2YWQyOTM5YTAyZjUzNmU3Nzg4NjljMmY2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAgLTUwLDQ1ICs1MCw0NSBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiBmaWxlc0Zyb21Gb3Jt
Q29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKTsKIAogcHJpdmF0ZToKLSAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAg
IEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdCBvdmVycmlkZTsK
LSAgICB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUm
KSBvdmVycmlkZTsKLSAgICBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wp
IGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNv
bnN0IG92ZXJyaWRlOwotICAgIFN0cmluZyB2YWx1ZU1pc3NpbmdUZXh0KCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7Ci0g
ICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUlucHV0UmVuZGVyZXIoUmVuZGVyU3R5
bGUmJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBjYW5TZXRTdHJpbmdWYWx1ZSgpIGNvbnN0IG92ZXJy
aWRlOwotICAgIEZpbGVMaXN0KiBmaWxlcygpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0RmlsZXMo
UGFzc1JlZlB0cjxGaWxlTGlzdD4pIG92ZXJyaWRlOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYg
Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgZmluYWw7CisgICAgRm9ybUNvbnRyb2xTdGF0ZSBzYXZl
Rm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgcmVzdG9yZUZvcm1Db250
cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIGZpbmFsOworICAgIGJvb2wgYXBwZW5k
Rm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3QgZmluYWw7CisgICAgYm9vbCB2YWx1
ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIHZhbHVlTWlz
c2luZ1RleHQoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQo
RXZlbnQmKSBmaW5hbDsKKyAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlSW5wdXRS
ZW5kZXJlcihSZW5kZXJTdHlsZSYmKSBmaW5hbDsKKyAgICBib29sIGNhblNldFN0cmluZ1ZhbHVl
KCkgY29uc3QgZmluYWw7CisgICAgRmlsZUxpc3QqIGZpbGVzKCkgZmluYWw7CisgICAgdm9pZCBz
ZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+JiYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKElPUykKLSAg
ICBTdHJpbmcgZGlzcGxheVN0cmluZygpIGNvbnN0IG92ZXJyaWRlOworICAgIFN0cmluZyBkaXNw
bGF5U3RyaW5nKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKLSAgICBib29sIGNhblNldFZhbHVlKGNv
bnN0IFN0cmluZyYpIG92ZXJyaWRlOwotICAgIGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3Ry
aW5nJikgb3ZlcnJpZGU7IC8vIENoZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdl
IG9yIHRoZSB2YWx1ZSBhdHRyaWJ1dGUuCi0gICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcm
LCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgb3ZlcnJpZGU7Cisg
ICAgYm9vbCBjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIGdldFR5
cGVTcGVjaWZpY1ZhbHVlKFN0cmluZyYpIGZpbmFsOyAvLyBDaGVja2VkIGZpcnN0LCBiZWZvcmUg
aW50ZXJuYWwgc3RvcmFnZSBvciB0aGUgdmFsdWUgYXR0cmlidXRlLgorICAgIHZvaWQgc2V0VmFs
dWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZp
b3IpIGZpbmFsOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBib29sIHJlY2VpdmVE
cm9wcGVkRmlsZXMoY29uc3QgRHJhZ0RhdGEmKSBvdmVycmlkZTsKKyAgICBib29sIHJlY2VpdmVE
cm9wcGVkRmlsZXMoY29uc3QgRHJhZ0RhdGEmKSBmaW5hbDsKICNlbmRpZgogCi0gICAgSWNvbiog
aWNvbigpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNGaWxlVXBsb2FkKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBkaXNhYmxlZEF0dHJpYnV0ZUNoYW5nZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIG11bHRpcGxl
QXR0cmlidXRlQ2hhbmdlZCgpIG92ZXJyaWRlOwotICAgIFN0cmluZyBkZWZhdWx0VG9vbFRpcCgp
IGNvbnN0IG92ZXJyaWRlOworICAgIEljb24qIGljb24oKSBjb25zdCBmaW5hbDsKKyAgICBib29s
IGlzRmlsZVVwbG9hZCgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJl
ZSgpIGZpbmFsOworICAgIHZvaWQgZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2VkKCkgZmluYWw7Cisg
ICAgdm9pZCBtdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQoKSBmaW5hbDsKKyAgICBTdHJpbmcgZGVm
YXVsdFRvb2xUaXAoKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIEZpbGVDaG9vc2VyQ2xpZW50IGlt
cGxlbWVudGF0aW9uLgotICAgIHZvaWQgZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZpbGVDaG9v
c2VyRmlsZUluZm8+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBmaWxlc0Nob3Nlbihjb25zdCBWZWN0
b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mKSBmaW5hbDsKICNpZiBQTEFURk9STShJT1MpCi0gICAg
dm9pZCBmaWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mLCBjb25z
dCBTdHJpbmcmIGRpc3BsYXlTdHJpbmcsIEljb24qKSBvdmVycmlkZTsKKyAgICB2b2lkIGZpbGVz
Q2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYsIGNvbnN0IFN0cmluZyYg
ZGlzcGxheVN0cmluZywgSWNvbiopIGZpbmFsOwogI2VuZGlmCiAKICAgICAvLyBGaWxlSWNvbkxv
YWRlckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KLSAgICB2b2lkIHVwZGF0ZVJlbmRlcmluZyhQYXNz
UmVmUHRyPEljb24+KSBvdmVycmlkZTsKKyAgICB2b2lkIGljb25Mb2FkZWQoUmVmUHRyPEljb24+
JiYpIGZpbmFsOwogCi0gICAgUGFzc1JlZlB0cjxGaWxlTGlzdD4gY3JlYXRlRmlsZUxpc3QoY29u
c3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBmaWxlcykgY29uc3Q7CisgICAgc3RhdGlj
IFJlZjxGaWxlTGlzdD4gY3JlYXRlRmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmls
ZUluZm8+Jik7CiAgICAgdm9pZCByZXF1ZXN0SWNvbihjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwog
CiAgICAgdm9pZCBhcHBseUZpbGVDaG9vc2VyU2V0dGluZ3MoY29uc3QgRmlsZUNob29zZXJTZXR0
aW5ncyYpOwpAQCAtOTgsNyArOTgsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxG
aWxlSWNvbkxvYWRlcj4gbV9maWxlSWNvbkxvYWRlcjsKICNlbmRpZgogCi0gICAgUmVmUHRyPEZp
bGVMaXN0PiBtX2ZpbGVMaXN0OworICAgIFJlZjxGaWxlTGlzdD4gbV9maWxlTGlzdDsKICAgICBS
ZWZQdHI8SWNvbj4gbV9pY29uOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBTdHJpbmcgbV9kaXNw
bGF5U3RyaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCBmNGJlNzE1OGM1
MTAwODU4MzA1ODBiNmE3Mzg1ODcyMDMwMzlhM2Q5Li4wMzIyYjEzOWQyODViMGYyOGYxMWI2MzBm
OTQzOTE5MDE4ZGM2MTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtMSw3
ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2Rl
Lm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2Rl
Lm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9y
Y2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2Jp
bGUuY29tLykKICAqIENvcHlyaWdodCAoQykgMjAxMSBNb3Rvcm9sYSBNb2JpbGl0eS4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCkBAIC03NTIsNyArNzUyLDcgQEAgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IEhUTUxFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBz
dHlsZSwKICAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKCp0aGlzLCBXVEZNb3Zl
KHN0eWxlKSk7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTEVsZW1lbnQ6OnZpcnR1YWxGb3Jt
KCkgY29uc3QKK0hUTUxGb3JtRWxlbWVudCogSFRNTEVsZW1lbnQ6OmZvcm0oKSBjb25zdAogewog
ICAgIHJldHVybiBIVE1MRm9ybUVsZW1lbnQ6OmZpbmRDbG9zZXN0Rm9ybUFuY2VzdG9yKCp0aGlz
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAppbmRleCAzOWQ0Y2I3MmI2NzYzNzI3NzU5
MTEyNmE4YTE1MjUwNTQwMmRmZTBjLi5jMWY5ZWNiNzZkZjczNTMzOGJiOTUwY2JmNzAxNGI4ZGRk
YjFhYWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCkBAIC0xLDcgKzEsNyBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAg
ICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQotICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMDksIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBi
b29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKICAgICBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxl
JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwogCi0gICAgSFRNTEZvcm1F
bGVtZW50KiBmb3JtKCkgY29uc3QgeyByZXR1cm4gdmlydHVhbEZvcm0oKTsgfQorICAgIFdFQkNP
UkVfRVhQT1JUIHZpcnR1YWwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkgY29uc3Q7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCBjb25zdCBBdG9taWNTdHJpbmcmIGRpcigpIGNvbnN0OwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0RGlyKGNvbnN0IEF0b21pY1N0cmluZyYpOwpAQCAtMTMzLDggKzEz
Myw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIG1hcExhbmd1YWdlQXR0cmlidXRlVG9Mb2NhbGUo
Y29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpOwogCi0gICAgdmly
dHVhbCBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkgY29uc3Q7Ci0KICAgICBFeGNlcHRp
b25PcjxSZWY8RG9jdW1lbnRGcmFnbWVudD4+IHRleHRUb0ZyYWdtZW50KGNvbnN0IFN0cmluZyYp
OwogCiAgICAgdm9pZCBkaXJBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXgg
ODQ1MTZjYjYyNDRjMzNiMWY3MDVlMDZkZTI4MjJhZWExMWU1MWJkOC4uMmU4NzJhYWJhZTY0YjA0
NDhkMjIxNGU5NjJiYjE2ZjZjYmY5OTAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChD
KSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkg
QW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEg
RGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUsIDIwMDYsIDIwMDcsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkK
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCkBAIC01OTMsMTEgKzU5Myw2IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1l
CiAgICAgaGlkZVZpc2libGVWYWxpZGF0aW9uTWVzc2FnZSgpOwogfQogCi1IVE1MRm9ybUVsZW1l
bnQqIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnZpcnR1YWxGb3JtKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtKCk7Ci19Ci0KICNpZiBFTkFCTEUoSU9T
X0FVVE9DT1JSRUNUX0FORF9BVVRPQ0FQSVRBTElaRSkKIAogLy8gRklYTUU6IFdlIHNob3VsZCBs
b29rIHRvIHNoYXJlIHRoaXMgY29kZSB3aXRoIGNsYXNzIEhUTUxGb3JtRWxlbWVudCBpbnN0ZWFk
IG9mIGR1cGxpY2F0aW5nIHRoZSBsb2dpYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUNvbnRyb2xFbGVtZW50LmgKaW5kZXggNGZmNDg5NGYzNWZlNjFkMmVkZjBjMDg1NWU5MjI0NGFj
ZGM1YzRmYy4uNTBiOGNkNGMxODE0MTM1MDNkNTQzN2U3ZjllMDUyNGY3MzNkNTUzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTIsNyArMiw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAq
ICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAq
ICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgSFRNTEZvcm1Db250cm9sRWxlbWVudCA6IHB1YmxpYyBM
YWJlbGFibGVFbGVtZW50LCBwdWJsaWMgRm9ybUFzc29jaWF0ZWRFbGUKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5IVE1MRm9ybUNvbnRyb2xFbGVtZW50KCk7CiAKLSAgICBIVE1MRm9ybUVsZW1lbnQq
IGZvcm0oKSBjb25zdCB7IHJldHVybiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm0oKTsgfQor
ICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEZvcm1Bc3Nv
Y2lhdGVkRWxlbWVudDo6Zm9ybSgpOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZm9y
bUVuY3R5cGUoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZvcm1FbmN0eXBl
KGNvbnN0IFN0cmluZyYpOwpAQCAtMTY5LDcgKzE2OSw2IEBAIHByaXZhdGU6CiAKICAgICBpbnQg
dGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKIAotICAgIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZv
cm0oKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQo
KSBjb25zdDsKIAogICAgIGJvb2wgY29tcHV0ZUlzRGlzYWJsZWRCeUZpZWxkc2V0QW5jZXN0b3Io
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGQ0
M2Q0ZWY5ZTAxMTkyNmQwZThhMGViZGVjODc1MmQzZWZmZGZjMjQuLjgyMTJjYjI5ODhjMzQxOTI3
Y2Y3ZTEzZjE5YmI1MmMwZGQ2NjY1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtu
b2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3Rv
IChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAo
bXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3
LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEzLCAyMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1
cnlha292IChhcEBueXBvcC5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5p
ZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KQEAgLTExODQsMTAgKzExODQsOSBAQCB2b2lkIEhUTUxJbnB1dEVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQogICAgICAgICBpZiAod2Fz
Q2hhbmdlZFNpbmNlTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKSkKICAgICAgICAgICAgIGRp
c3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwogCi0gICAgICAgIFJlZlB0cjxIVE1MRm9y
bUVsZW1lbnQ+IGZvcm1Gb3JTdWJtaXNzaW9uID0gbV9pbnB1dFR5cGUtPmZvcm1Gb3JTdWJtaXNz
aW9uKCk7CiAgICAgICAgIC8vIEZvcm0gbWF5IG5ldmVyIGhhdmUgYmVlbiBwcmVzZW50LCBvciBt
YXkgaGF2ZSBiZWVuIGRlc3Ryb3llZCBieSBjb2RlIHJlc3BvbmRpbmcgdG8gdGhlIGNoYW5nZSBl
dmVudC4KLSAgICAgICAgaWYgKGZvcm1Gb3JTdWJtaXNzaW9uKQotICAgICAgICAgICAgZm9ybUZv
clN1Ym1pc3Npb24tPnN1Ym1pdEltcGxpY2l0bHkoZXZlbnQsIGNhblRyaWdnZXJJbXBsaWNpdFN1
Ym1pc3Npb24oKSk7CisgICAgICAgIGlmIChhdXRvKiBmb3JtRWxlbWVudCA9IGZvcm0oKSkKKyAg
ICAgICAgICAgIGZvcm1FbGVtZW50LT5zdWJtaXRJbXBsaWNpdGx5KGV2ZW50LCBjYW5UcmlnZ2Vy
SW1wbGljaXRTdWJtaXNzaW9uKCkpOwogCiAgICAgICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVk
KCk7CiAgICAgICAgIHJldHVybjsKQEAgLTEzNDIsOSArMTM0MSw5IEBAIEZpbGVMaXN0KiBIVE1M
SW5wdXRFbGVtZW50OjpmaWxlcygpCiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5maWxlcygpOwog
fQogCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+
IGZpbGVzKQordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+
JiYgZmlsZXMpCiB7Ci0gICAgbV9pbnB1dFR5cGUtPnNldEZpbGVzKGZpbGVzKTsKKyAgICBtX2lu
cHV0VHlwZS0+c2V0RmlsZXMoV1RGTW92ZShmaWxlcykpOwogfQogCiAjaWYgRU5BQkxFKERSQUdf
U1VQUE9SVCkKQEAgLTE4NjksNyArMTg2OCw3IEBAIFJhZGlvQnV0dG9uR3JvdXBzKiBIVE1MSW5w
dXRFbGVtZW50OjpyYWRpb0J1dHRvbkdyb3VwcygpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1JhZGlv
QnV0dG9uKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGlmIChIVE1MRm9ybUVsZW1l
bnQqIGZvcm1FbGVtZW50ID0gZm9ybSgpKQorICAgIGlmIChhdXRvKiBmb3JtRWxlbWVudCA9IGZv
cm0oKSkKICAgICAgICAgcmV0dXJuICZmb3JtRWxlbWVudC0+cmFkaW9CdXR0b25Hcm91cHMoKTsK
ICAgICBpZiAoaW5Eb2N1bWVudCgpKQogICAgICAgICByZXR1cm4gJmRvY3VtZW50KCkuZm9ybUNv
bnRyb2xsZXIoKS5yYWRpb0J1dHRvbkdyb3VwcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaAppbmRleCA4YWZmZDk4MTE3NTRkOWU0OTIzNjI1NmU2NTVkNmRhNTU4M2Y1NmQ2
Li5iZjAwYmFmZmM0NjIwMzZhOGIyMmVkOWRjYmNhMzViMmIxMWZlMTRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAo
QykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5
IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAw
IERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgpAQCAtNDMsOCArNDMsOCBAQCBjbGFzcyBJY29uOwogY2xhc3MgSW5wdXRUeXBlOwogY2xhc3Mg
TGlzdEF0dHJpYnV0ZVRhcmdldE9ic2VydmVyOwogY2xhc3MgUmFkaW9CdXR0b25Hcm91cHM7Ci1j
bGFzcyBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ7CiBjbGFzcyBVUkw7CisKIHN0cnVjdCBE
YXRlVGltZUNob29zZXJQYXJhbWV0ZXJzOwogCiBzdHJ1Y3QgSW5wdXRFbGVtZW50Q2xpY2tTdGF0
ZSB7CkBAIC0yMzgsNyArMjM4LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0U2hvd0F1dG9GaWxsQnV0dG9uKEF1dG9GaWxsQnV0dG9uVHlwZSk7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBGaWxlTGlzdCogZmlsZXMoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZp
bGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZp
bGVzKFJlZlB0cjxGaWxlTGlzdD4mJik7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAg
IC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gRHJhZ0RhdGEgaGFzIG1vcmUgdGhhbiBvbmUg
ZHJvcHBlZCBmaWxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVs
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCmlu
ZGV4IDcxMWQwNmQyMzIzZjBkNmQ1NWUxYWFjYWVkZWFmNGVlMDY3NzM5YWMuLjAxMGZmYzRjMzRi
ODA5NWNhOTk0NTMwMDNhZTBmYjZjZTg3YmYxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TGFiZWxFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBM
YXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtv
aXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVl
bGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2
LCAyMDA3LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAg
ICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgpAQCAtNTgsMzAgKzU4LDI4IEBAIFJlZjxIVE1MTGFiZWxFbGVtZW50PiBIVE1MTGFiZWxF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jCiAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSFRNTExhYmVsRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQogCi1MYWJlbGFibGVFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9sKCkKK0xhYmVs
YWJsZUVsZW1lbnQqIEhUTUxMYWJlbEVsZW1lbnQ6OmNvbnRyb2woKSBjb25zdAogewotICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgY29udHJvbElkID0gYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihmb3JBdHRyKTsKKyAgICBhdXRvJiBjb250cm9sSWQgPSBhdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKGZvckF0dHIpOwogICAgIGlmIChjb250cm9sSWQuaXNOdWxsKCkpIHsKICAg
ICAgICAgLy8gU2VhcmNoIHRoZSBjaGlsZHJlbiBhbmQgZGVzY2VuZGFudHMgb2YgdGhlIGxhYmVs
IGVsZW1lbnQgZm9yIGEgZm9ybSBlbGVtZW50LgogICAgICAgICAvLyBwZXIgaHR0cDovL2Rldi53
My5vcmcvaHRtbDUvc3BlYy9PdmVydmlldy5odG1sI3RoZS1sYWJlbC1lbGVtZW50CiAgICAgICAg
IC8vIHRoZSBmb3JtIGVsZW1lbnQgbXVzdCBiZSAibGFiZWxhYmxlIGZvcm0tYXNzb2NpYXRlZCBl
bGVtZW50Ii4KICAgICAgICAgZm9yIChhdXRvJiBsYWJlbGFibGVFbGVtZW50IDogZGVzY2VuZGFu
dHNPZlR5cGU8TGFiZWxhYmxlRWxlbWVudD4oKnRoaXMpKSB7CiAgICAgICAgICAgICBpZiAobGFi
ZWxhYmxlRWxlbWVudC5zdXBwb3J0TGFiZWxzKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuICZs
YWJlbGFibGVFbGVtZW50OworICAgICAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0PExhYmVs
YWJsZUVsZW1lbnQqPigmbGFiZWxhYmxlRWxlbWVudCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgfQotICAgIAogICAgIHJldHVybiBpbkRvY3VtZW50KCkgPyBmaXJz
dEVsZW1lbnRXaXRoSWRJZkxhYmVsYWJsZSh0cmVlU2NvcGUoKSwgY29udHJvbElkKSA6IG51bGxw
dHI7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTExhYmVsRWxlbWVudDo6Zm9ybSgpCitIVE1M
Rm9ybUVsZW1lbnQqIEhUTUxMYWJlbEVsZW1lbnQ6OmZvcm0oKSBjb25zdAogewotICAgIGF1dG8q
IGxhYmVsZWRDb250cm9sID0gY29udHJvbCgpOwotICAgIGlmICghbGFiZWxlZENvbnRyb2wpCisg
ICAgYXV0byogY29udHJvbCA9IHRoaXMtPmNvbnRyb2woKTsKKyAgICBpZiAoIWlzPEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ+KGNvbnRyb2wpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAg
IHJldHVybiBpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PigqbGFiZWxlZENvbnRyb2wpID8gZG93
bmNhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oKmxhYmVsZWRDb250cm9sKS5mb3JtKCkgOiBu
dWxscHRyOworICAgIHJldHVybiBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PigqY29u
dHJvbCkuZm9ybSgpOwogfQogCiB2b2lkIEhUTUxMYWJlbEVsZW1lbnQ6OnNldEFjdGl2ZShib29s
IGRvd24sIGJvb2wgcGF1c2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
YWJlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCmlu
ZGV4IDE0MGQ5ODk1ZDFmNDBkOGEyZDM2ZjU3ZTEzNTRhZGFlYjI0NWYxOWUuLmEzZDE0MjEwOGI0
MjZkNmFkZTQzYmU2OTEyYmY2YzViYzAxNDU4ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExh
YmVsRWxlbWVudC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMg
S25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlz
dG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVy
IChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0zMSw4ICszMSw4IEBAIGNsYXNzIEhUTUxMYWJlbEVsZW1lbnQgZmluYWwgOiBw
dWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8SFRNTExhYmVsRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgV0VC
Q09SRV9FWFBPUlQgTGFiZWxhYmxlRWxlbWVudCogY29udHJvbCgpOwotICAgIFdFQkNPUkVfRVhQ
T1JUIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpOworICAgIFdFQkNPUkVfRVhQT1JUIExhYmVsYWJs
ZUVsZW1lbnQqIGNvbnRyb2woKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBIVE1MRm9ybUVs
ZW1lbnQqIGZvcm0oKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNl
Q2xpY2tFdmVudHMoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGVnZW5kRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVt
ZW50LmNwcAppbmRleCAwNDgxMDYxMWUxZGEyY2ZkMzk3OGNmYmE5ZjlmMjkzMDU5YmQ0NWNlLi4w
OTBlMGM3MmQ5YjZiMzVjNTNmNDI3ODE0NWI2MTlmZTQ3ZjgyYzRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdo
dCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAx
OTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAy
MDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1LCAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
ICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgpAQCAtMzEsMTMgKzMxLDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKLQotCiBpbmxpbmUgSFRNTExlZ2VuZEVsZW1lbnQ6
OkhUTUxMZWdlbmRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogewotICAg
IEFTU0VSVChoYXNUYWdOYW1lKGxlZ2VuZFRhZykpOworICAgIEFTU0VSVChoYXNUYWdOYW1lKEhU
TUxOYW1lczo6bGVnZW5kVGFnKSk7CiB9CiAKIFJlZjxIVE1MTGVnZW5kRWxlbWVudD4gSFRNTExl
Z2VuZEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCkBAIC01OSw3ICs1Niw2IEBAIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIEhU
TUxMZWdlbmRFbGVtZW50Ojphc3NvY2lhdGVkQ29udHJvbCgpCiAKIHZvaWQgSFRNTExlZ2VuZEVs
ZW1lbnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlv
biBkaXJlY3Rpb24pCiB7Ci0gICAgLy8gVG8gbWF0Y2ggb3RoZXIgYnJvd3NlcnMnIGJlaGF2aW9y
LCBuZXZlciByZXN0b3JlIHByZXZpb3VzIHNlbGVjdGlvbi4KICAgICBpZiAoZG9jdW1lbnQoKS5o
YXZlU3R5bGVzaGVldHNMb2FkZWQoKSkgewogICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgICAgICBpZiAoaXNGb2N1c2FibGUoKSkg
ewpAQCAtNjcsMjUgKzYzLDI2IEBAIHZvaWQgSFRNTExlZ2VuZEVsZW1lbnQ6OmZvY3VzKGJvb2wg
cmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbiBkaXJlCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CisKKyAgICAvLyBUbyBtYXRjaCBvdGhlciBicm93
c2VycycgYmVoYXZpb3IsIG5ldmVyIHJlc3RvcmUgcHJldmlvdXMgc2VsZWN0aW9uLgogICAgIGlm
IChhdXRvKiBjb250cm9sID0gYXNzb2NpYXRlZENvbnRyb2woKSkKICAgICAgICAgY29udHJvbC0+
Zm9jdXMoZmFsc2UsIGRpcmVjdGlvbik7CiB9CiAKIHZvaWQgSFRNTExlZ2VuZEVsZW1lbnQ6OmFj
Y2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKIHsKLSAgICBpZiAoSFRNTEZvcm1D
b250cm9sRWxlbWVudCogY29udHJvbCA9IGFzc29jaWF0ZWRDb250cm9sKCkpCisgICAgaWYgKGF1
dG8qIGNvbnRyb2wgPSBhc3NvY2lhdGVkQ29udHJvbCgpKQogICAgICAgICBjb250cm9sLT5hY2Nl
c3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsKIH0KIAotSFRNTEZvcm1FbGVtZW50KiBIVE1M
TGVnZW5kRWxlbWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAorSFRNTEZvcm1FbGVtZW50KiBIVE1M
TGVnZW5kRWxlbWVudDo6Zm9ybSgpIGNvbnN0CiB7CiAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBz
cGVjaWZpY2F0aW9uLCBJZiB0aGUgbGVnZW5kIGhhcyBhIGZpZWxkc2V0IGVsZW1lbnQgYXMKICAg
ICAvLyBpdHMgcGFyZW50LCB0aGVuIHRoZSBmb3JtIGF0dHJpYnV0ZSBtdXN0IHJldHVybiB0aGUg
c2FtZSB2YWx1ZSBhcyB0aGUKICAgICAvLyBmb3JtIGF0dHJpYnV0ZSBvbiB0aGF0IGZpZWxkc2V0
IGVsZW1lbnQuIE90aGVyd2lzZSwgaXQgbXVzdCByZXR1cm4gbnVsbC4KLSAgICBDb250YWluZXJO
b2RlKiBmaWVsZHNldCA9IHBhcmVudE5vZGUoKTsKKyAgICBhdXRvKiBmaWVsZHNldCA9IHBhcmVu
dE5vZGUoKTsKICAgICBpZiAoIWlzPEhUTUxGaWVsZFNldEVsZW1lbnQ+KGZpZWxkc2V0KSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTEZpZWxkU2V0
RWxlbWVudD4oKmZpZWxkc2V0KS5mb3JtKCk7CiB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMZWdlbmRFbGVtZW50LmgKaW5kZXggMDM4Y2M5YTE3NmViYzBkNzA2MmU2MGU1Yzk1OWExNWU4
Mzg0NmYyZi4uMTQ0ZTE5ZjYyYjgxZDkzMmI4YTE5YWJjNmM4ZmZmMTlmMTA1NTkwYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaApAQCAtMiw3ICsyLDcgQEAKICAqIENv
cHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAg
IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAg
IChDKSAyMDAwIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzMsMTUgKzMzLDE2IEBAIGNsYXNzIEhUTUxMZWdl
bmRFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPEhUTUxMZWdlbmRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBj
b25zdCBmaW5hbDsKKwogcHJpdmF0ZToKICAgICBIVE1MTGVnZW5kRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIC8vIENvbnRyb2wgaW4gdGhlIGxlZ2VuZCdz
IGZpZWxkc2V0IHRoYXQgZ2V0cyBmb2N1cyBhbmQgYWNjZXNzIGtleS4KKyAgICAvLyBDb250cm9s
IGluIHRoZSBsZWdlbmQncyBmaWVsZCBzZXQgdGhhdCBnZXRzIGZvY3VzIGFuZCBhY2Nlc3Mga2V5
LgogICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGFzc29jaWF0ZWRDb250cm9sKCk7CiAKICAg
ICB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgZmluYWw7CiAgICAg
dm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24p
IGZpbmFsOwotICAgIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25zdCBmaW5hbDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCmluZGV4IDA4NGVmYzc4MDU0M2ZlZGQyMTRlOTU0Njc5ODUxYzlkNzY1NjU0
NjMuLmI4MzVhM2Q4N2NlYTZhM2Q1MzE5MDk5NjRiYjBkZjAwNzhkOTgzZWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDctMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDExICsyNCwxMCBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAK
ICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCi0KICNp
bmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgpAQCAtMjY5LDIyICsyNjgsMjMg
QEAgc3RhdGljIHZvaWQgcmVtb3ZlRWxlbWVudEZyb21Eb2N1bWVudE1hcChIVE1MTWVkaWFFbGVt
ZW50JiBlbGVtZW50LCBEb2N1bWVudCYgZG8KIH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
KwogY2xhc3MgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgewogcHVibGljOgotICAgIFRyYWNrRGlz
cGxheVVwZGF0ZVNjb3BlKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKKyAgICBUcmFj
a0Rpc3BsYXlVcGRhdGVTY29wZShIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQorICAgICAgICA6
IG1fZWxlbWVudChlbGVtZW50KQogICAgIHsKLSAgICAgICAgbV9tZWRpYUVsZW1lbnQgPSBtZWRp
YUVsZW1lbnQ7Ci0gICAgICAgIG1fbWVkaWFFbGVtZW50LT5iZWdpbklnbm9yaW5nVHJhY2tEaXNw
bGF5VXBkYXRlUmVxdWVzdHMoKTsKKyAgICAgICAgbV9lbGVtZW50LmJlZ2luSWdub3JpbmdUcmFj
a0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpOwogICAgIH0KICAgICB+VHJhY2tEaXNwbGF5VXBkYXRl
U2NvcGUoKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fbWVkaWFFbGVtZW50KTsKLSAgICAgICAg
bV9tZWRpYUVsZW1lbnQtPmVuZElnbm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKTsK
KyAgICAgICAgbV9lbGVtZW50LmVuZElnbm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMo
KTsKICAgICB9CiAgICAgCiBwcml2YXRlOgotICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1fbWVkaWFF
bGVtZW50OworICAgIEhUTUxNZWRpYUVsZW1lbnQmIG1fZWxlbWVudDsKIH07CisKICNlbmRpZgog
CiBzdHJ1Y3QgSFRNTE1lZGlhRWxlbWVudDo6VHJhY2tHcm91cCB7CkBAIC0xNTU0LDcgKzE1NTQs
NyBAQCBzdGF0aWMgYm9vbCBldmVudFRpbWVDdWVDb21wYXJlKGNvbnN0IHN0ZDo6cGFpcjxNZWRp
YVRpbWUsIFRleHRUcmFja0N1ZSo+JiBhLCBjbwogICAgIC8vIDEyIC0gRnVydGhlciBzb3J0IHRh
c2tzIGluIGV2ZW50cyB0aGF0IGhhdmUgdGhlIHNhbWUgdGltZSBieSB0aGUKICAgICAvLyByZWxh
dGl2ZSB0ZXh0IHRyYWNrIGN1ZSBvcmRlciBvZiB0aGUgdGV4dCB0cmFjayBjdWVzIGFzc29jaWF0
ZWQKICAgICAvLyB3aXRoIHRoZXNlIHRhc2tzLgotICAgIHJldHVybiBhLnNlY29uZC0+Y3VlSW5k
ZXgoKSAtIGIuc2Vjb25kLT5jdWVJbmRleCgpIDwgMDsKKyAgICByZXR1cm4gYS5zZWNvbmQtPmlz
T3JkZXJlZEJlZm9yZShiLnNlY29uZCk7CiB9CiAKIHN0YXRpYyBib29sIGNvbXBhcmVDdWVJbnRl
cnZhbChjb25zdCBDdWVJbnRlcnZhbCYgb25lLCBjb25zdCBDdWVJbnRlcnZhbCYgdHdvKQpAQCAt
MTgxNywyMiArMTgxNywyMSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlYWR5
U3RhdGVDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCiAgICAgfQogfQogCi12b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKiB0cmFjaykKK3Zv
aWQgSFRNTE1lZGlhRWxlbWVudDo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2sm
IHRyYWNrKQogewotICAgIEFTU0VSVCh0cmFjayk7Ci0gICAgaWYgKG1fYXVkaW9UcmFja3MgJiYg
bV9hdWRpb1RyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV9hdWRpb1RyYWNrcyAm
JiBtX2F1ZGlvVHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fYXVkaW9UcmFja3Mt
PnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKICAgICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vz
c2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgcmVtb3ZlQmVoYXZpb3JzUmVzdHJp
Y3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKE1lZGlhRWxlbWVudFNlc3Npb246OkFsbFJlc3Ry
aWN0aW9ucyAmIH5NZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRy
b2xDb250cm9sc01hbmFnZXIpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFj
a01vZGVDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRl
eHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7CiAgICAgYm9vbCB0cmFja0lz
TG9hZGVkID0gdHJ1ZTsKLSAgICBpZiAodHJhY2stPnRyYWNrVHlwZSgpID09IFRleHRUcmFjazo6
VHJhY2tFbGVtZW50KSB7CisgICAgaWYgKHRyYWNrLnRyYWNrVHlwZSgpID09IFRleHRUcmFjazo6
VHJhY2tFbGVtZW50KSB7CiAgICAgICAgIHRyYWNrSXNMb2FkZWQgPSBmYWxzZTsKICAgICAgICAg
Zm9yIChhdXRvJiB0cmFja0VsZW1lbnQgOiBjaGlsZHJlbk9mVHlwZTxIVE1MVHJhY2tFbGVtZW50
PigqdGhpcykpIHsKLSAgICAgICAgICAgIGlmICgmdHJhY2tFbGVtZW50LnRyYWNrKCkgPT0gdHJh
Y2spIHsKKyAgICAgICAgICAgIGlmICgmdHJhY2tFbGVtZW50LnRyYWNrKCkgPT0gJnRyYWNrKSB7
CiAgICAgICAgICAgICAgICAgaWYgKHRyYWNrRWxlbWVudC5yZWFkeVN0YXRlKCkgPT0gSFRNTFRy
YWNrRWxlbWVudDo6TE9BRElORyB8fCB0cmFja0VsZW1lbnQucmVhZHlTdGF0ZSgpID09IEhUTUxU
cmFja0VsZW1lbnQ6OkxPQURFRCkKICAgICAgICAgICAgICAgICAgICAgdHJhY2tJc0xvYWRlZCA9
IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xODQ1LDMzICsxODQ0LDMyIEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKiB0cmFj
aykKICAgICAgICAgbV90ZXh0VHJhY2tzID0gVGV4dFRyYWNrTGlzdDo6Y3JlYXRlKHRoaXMsIEFj
dGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICAKICAgICAvLyBN
YXJrIHRoaXMgdHJhY2sgYXMgImNvbmZpZ3VyZWQiIHNvIGNvbmZpZ3VyZVRleHRUcmFja3Mgd29u
J3QgY2hhbmdlIHRoZSBtb2RlIGFnYWluLgotICAgIHRyYWNrLT5zZXRIYXNCZWVuQ29uZmlndXJl
ZCh0cnVlKTsKKyAgICB0cmFjay5zZXRIYXNCZWVuQ29uZmlndXJlZCh0cnVlKTsKICAgICAKLSAg
ICBpZiAodHJhY2stPm1vZGUoKSAhPSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkICYmIHRyYWNr
SXNMb2FkZWQpCi0gICAgICAgIHRleHRUcmFja0FkZEN1ZXModHJhY2ssIHRyYWNrLT5jdWVzKCkp
OworICAgIGlmICh0cmFjay5tb2RlKCkgIT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCAmJiB0
cmFja0lzTG9hZGVkKQorICAgICAgICB0ZXh0VHJhY2tBZGRDdWVzKHRyYWNrLCAqdHJhY2suY3Vl
cygpKTsKIAogICAgIGNvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkoQXNzdW1lVGV4dFRyYWNrVmlz
aWJpbGl0eUNoYW5nZWQpOwogCi0gICAgaWYgKG1fdGV4dFRyYWNrcyAmJiBtX3RleHRUcmFja3Mt
PmNvbnRhaW5zKCp0cmFjaykpCisgICAgaWYgKG1fdGV4dFRyYWNrcyAmJiBtX3RleHRUcmFja3Mt
PmNvbnRhaW5zKHRyYWNrKSkKICAgICAgICAgbV90ZXh0VHJhY2tzLT5zY2hlZHVsZUNoYW5nZUV2
ZW50KCk7CiAKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQotICAgIGlmICh0cmFjay0+dHJhY2tU
eXBlKCkgPT0gVGV4dFRyYWNrOjpUcmFja0VsZW1lbnQgJiYgbV9wbGF5ZXIpCisgICAgaWYgKHRy
YWNrLnRyYWNrVHlwZSgpID09IFRleHRUcmFjazo6VHJhY2tFbGVtZW50ICYmIG1fcGxheWVyKQog
ICAgICAgICBtX3BsYXllci0+bm90aWZ5VHJhY2tNb2RlQ2hhbmdlZCgpOwogI2VuZGlmCiB9CiAK
LXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1Ry
YWNrKiB0cmFjaykKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hh
bmdlZChWaWRlb1RyYWNrJiB0cmFjaykKIHsKLSAgICBBU1NFUlQodHJhY2spOwotICAgIGlmICht
X3ZpZGVvVHJhY2tzICYmIG1fdmlkZW9UcmFja3MtPmNvbnRhaW5zKCp0cmFjaykpCisgICAgaWYg
KG1fdmlkZW9UcmFja3MgJiYgbV92aWRlb1RyYWNrcy0+Y29udGFpbnModHJhY2spKQogICAgICAg
ICBtX3ZpZGVvVHJhY2tzLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiB9CiAKLXZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykKK3ZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykK
IHsKLSAgICBpZiAodHJhY2stPmtpbmQoKSAhPSBUZXh0VHJhY2s6OktpbmQ6OkNhcHRpb25zICYm
IHRyYWNrLT5raW5kKCkgIT0gVGV4dFRyYWNrOjpLaW5kOjpTdWJ0aXRsZXMgJiYgdHJhY2stPm1v
ZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OlNob3dpbmcpCi0gICAgICAgIHRyYWNrLT5zZXRNb2Rl
KFRleHRUcmFjazo6TW9kZTo6SGlkZGVuKTsKKyAgICBpZiAodHJhY2sua2luZCgpICE9IFRleHRU
cmFjazo6S2luZDo6Q2FwdGlvbnMgJiYgdHJhY2sua2luZCgpICE9IFRleHRUcmFjazo6S2luZDo6
U3VidGl0bGVzICYmIHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OlNob3dpbmcpCisg
ICAgICAgIHRyYWNrLnNldE1vZGUoVGV4dFRyYWNrOjpNb2RlOjpIaWRkZW4pOwogfQogCiB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OmJlZ2luSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0
cygpCkBAIC0xODg3LDI2ICsxODg1LDI4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZW5kSWdu
b3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpCiAgICAgICAgIHVwZGF0ZUFjdGl2ZVRl
eHRUcmFja0N1ZXMoY3VycmVudE1lZGlhVGltZSgpKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVt
ZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayogdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1
ZUxpc3QqIGN1ZXMpIAordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKFRl
eHRUcmFjayYgdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZXMpCiB7Ci0gICAgaWYg
KHRyYWNrLT5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCkKKyAgICBpZiAodHJh
Y2subW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQpCiAgICAgICAgIHJldHVybjsK
IAotICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlKHRoaXMpOwotICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgY3Vlcy0+bGVuZ3RoKCk7ICsraSkKLSAgICAgICAgdGV4dFRyYWNrQWRk
Q3VlKHRyYWNrLCAqY3Vlcy0+aXRlbShpKSk7CisgICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUg
c2NvcGUgeyAqdGhpcyB9OworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjdWVzLmxlbmd0
aCgpOyArK2kpCisgICAgICAgIHRleHRUcmFja0FkZEN1ZSh0cmFjaywgKmN1ZXMuaXRlbShpKSk7
CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJh
Y2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KiBjdWVzKQordm9pZCBIVE1MTWVkaWFFbGVtZW50
Ojp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3Qm
IGN1ZXMpCiB7Ci0gICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUodGhpcyk7Ci0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBjdWVzLT5sZW5ndGgoKTsgKytpKQotICAgICAgICB0ZXh0
VHJhY2tSZW1vdmVDdWUoY3Vlcy0+aXRlbShpKS0+dHJhY2soKSwgKmN1ZXMtPml0ZW0oaSkpOwor
ICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlIHsgKnRoaXMgfTsKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgY3Vlcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgIGF1dG8mIGN1
ZSA9ICpjdWVzLml0ZW0oaSk7CisgICAgICAgIHRleHRUcmFja1JlbW92ZUN1ZSgqY3VlLnRyYWNr
KCksIGN1ZSk7CisgICAgfQogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0Fk
ZEN1ZShUZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKK3ZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6dGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYgdHJhY2ssIFRleHRUcmFja0N1ZSYg
Y3VlKQogewotICAgIGlmICh0cmFjay0+bW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJs
ZWQpCisgICAgaWYgKHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkKQog
ICAgICAgICByZXR1cm47CiAKICAgICAvLyBOZWdhdGl2ZSBkdXJhdGlvbiBjdWVzIG5lZWQgYmUg
dHJlYXRlZCBpbiB0aGUgaW50ZXJ2YWwgdHJlZSBhcwpAQCAtMTkxOSw3ICsxOTE5LDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiB0cmFjaywgVGV4
dFRyYWNrQ3VlJiBjdWUpCiAgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcyhjdXJyZW50TWVk
aWFUaW1lKCkpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1
ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmIGN1ZSkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
dGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYgY3VlKQogewogICAg
IC8vIE5lZ2F0aXZlIGR1cmF0aW9uIGN1ZXMgbmVlZCB0byBiZSB0cmVhdGVkIGluIHRoZSBpbnRl
cnZhbCB0cmVlIGFzCiAgICAgLy8gemVyby1sZW5ndGggY3Vlcy4KQEAgLTMyMTIsNiArMzIxMiw3
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGF1c2VJbnRlcm5hbCgpCiB9CiAKICNpZiBFTkFC
TEUoTUVESUFfU09VUkNFKQorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRldGFjaE1lZGlhU291
cmNlKCkKIHsKICAgICBpZiAoIW1fbWVkaWFTb3VyY2UpCkBAIC0zMjIwLDYgKzMyMjEsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRldGFjaE1lZGlhU291cmNlKCkKICAgICBtX21lZGlhU291
cmNlLT5kZXRhY2hGcm9tRWxlbWVudCgqdGhpcyk7CiAgICAgbV9tZWRpYVNvdXJjZSA9IG51bGxw
dHI7CiB9CisKICNlbmRpZgogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Omxvb3AoKSBjb25zdApA
QCAtMzUwOCwxNCArMzUxMCwxNCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVy
RGlkQWRkQXVkaW9UcmFjayhBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2spCiAgICAgaWYgKGlzUGxh
eWluZygpICYmICFtX21lZGlhU2Vzc2lvbi0+cGxheWJhY2tQZXJtaXR0ZWQoKnRoaXMpKQogICAg
ICAgICBwYXVzZUludGVybmFsKCk7CiAKLSAgICBhZGRBdWRpb1RyYWNrKEF1ZGlvVHJhY2s6OmNy
ZWF0ZSh0aGlzLCAmdHJhY2spKTsKKyAgICBhZGRBdWRpb1RyYWNrKEF1ZGlvVHJhY2s6OmNyZWF0
ZSgqdGhpcywgdHJhY2spKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXll
ckRpZEFkZFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFjaykKIHsKICAgICAv
LyA0LjguMTAuMTIuMiBTb3VyY2luZyBpbi1iYW5kIHRleHQgdHJhY2tzCiAgICAgLy8gMS4gQXNz
b2NpYXRlIHRoZSByZWxldmFudCBkYXRhIHdpdGggYSBuZXcgdGV4dCB0cmFjayBhbmQgaXRzIGNv
cnJlc3BvbmRpbmcgbmV3IFRleHRUcmFjayBvYmplY3QuCi0gICAgUmVmUHRyPEluYmFuZFRleHRU
cmFjaz4gdGV4dFRyYWNrID0gSW5iYW5kVGV4dFRyYWNrOjpjcmVhdGUoQWN0aXZlRE9NT2JqZWN0
OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRoaXMsICZ0cmFjayk7CisgICAgYXV0byB0ZXh0
VHJhY2sgPSBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZSgqQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCksICp0aGlzLCB0cmFjayk7CiAgICAgdGV4dFRyYWNrLT5zZXRNZWRp
YUVsZW1lbnQodGhpcyk7CiAgICAgCiAgICAgLy8gMi4gU2V0IHRoZSBuZXcgdGV4dCB0cmFjaydz
IGtpbmQsIGxhYmVsLCBhbmQgbGFuZ3VhZ2UgYmFzZWQgb24gdGhlIHNlbWFudGljcyBvZiB0aGUg
cmVsZXZhbnQgZGF0YSwKQEAgLTM1NDEsMTIgKzM1NDMsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjptZWRpYVBsYXllckRpZEFkZFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0
cmFjaykKICAgICAvLyA5LiBGaXJlIGFuIGV2ZW50IHdpdGggdGhlIG5hbWUgYWRkdHJhY2ssIHRo
YXQgZG9lcyBub3QgYnViYmxlIGFuZCBpcyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0
aGUgVHJhY2tFdmVudAogICAgIC8vIGludGVyZmFjZSwgd2l0aCB0aGUgdHJhY2sgYXR0cmlidXRl
IGluaXRpYWxpemVkIHRvIHRoZSB0ZXh0IHRyYWNrJ3MgVGV4dFRyYWNrIG9iamVjdCwgYXQgdGhl
IG1lZGlhIGVsZW1lbnQncwogICAgIC8vIHRleHRUcmFja3MgYXR0cmlidXRlJ3MgVGV4dFRyYWNr
TGlzdCBvYmplY3QuCi0gICAgYWRkVGV4dFRyYWNrKHRleHRUcmFjay5yZWxlYXNlTm9uTnVsbCgp
KTsKKyAgICBhZGRUZXh0VHJhY2soV1RGTW92ZSh0ZXh0VHJhY2spKTsKIH0KIAogdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjptZWRpYVBsYXllckRpZEFkZFZpZGVvVHJhY2soVmlkZW9UcmFja1ByaXZh
dGUmIHRyYWNrKQogewotICAgIGFkZFZpZGVvVHJhY2soVmlkZW9UcmFjazo6Y3JlYXRlKHRoaXMs
ICZ0cmFjaykpOworICAgIGFkZFZpZGVvVHJhY2soVmlkZW9UcmFjazo6Y3JlYXRlKCp0aGlzLCB0
cmFjaykpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkUmVtb3Zl
QXVkaW9UcmFjayhBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2spCkBAIC0zNjAzLDkgKzM2MDUsOSBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZUF1ZGlvVHJhY2soQXVkaW9UcmFjayYgdHJh
Y2spCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlVGV4dFRyYWNrKFRleHRUcmFjayYg
dHJhY2ssIGJvb2wgc2NoZWR1bGVFdmVudCkKIHsKLSAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29w
ZSBzY29wZSh0aGlzKTsKLSAgICBpZiAoVGV4dFRyYWNrQ3VlTGlzdCogY3VlcyA9IHRyYWNrLmN1
ZXMoKSkKLSAgICAgICAgdGV4dFRyYWNrUmVtb3ZlQ3VlcygmdHJhY2ssIGN1ZXMpOworICAgIFRy
YWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlIHsgKnRoaXMgfTsKKyAgICBpZiAoYXV0byogY3Vl
cyA9IHRyYWNrLmN1ZXMoKSkKKyAgICAgICAgdGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0cmFjaywgKmN1
ZXMpOwogICAgIHRyYWNrLmNsZWFyQ2xpZW50KCk7CiAgICAgaWYgKG1fdGV4dFRyYWNrcykKICAg
ICAgICAgbV90ZXh0VHJhY2tzLT5yZW1vdmUodHJhY2ssIHNjaGVkdWxlRXZlbnQpOwpAQCAtMzYy
NSw3ICszNjI3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpmb3JnZXRSZXNvdXJjZVNwZWNp
ZmljVHJhY2tzKCkKICAgICAgICAgcmVtb3ZlQXVkaW9UcmFjaygqbV9hdWRpb1RyYWNrcy0+bGFz
dEl0ZW0oKSk7CiAKICAgICBpZiAobV90ZXh0VHJhY2tzKSB7Ci0gICAgICAgIFRyYWNrRGlzcGxh
eVVwZGF0ZVNjb3BlIHNjb3BlKHRoaXMpOworICAgICAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29w
ZSBzY29wZSB7ICp0aGlzIH07CiAgICAgICAgIGZvciAoaW50IGkgPSBtX3RleHRUcmFja3MtPmxl
bmd0aCgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKICAgICAgICAgICAgIGF1dG8mIHRyYWNrID0gKm1f
dGV4dFRyYWNrcy0+aXRlbShpKTsKICAgICAgICAgICAgIGlmICh0cmFjay50cmFja1R5cGUoKSA9
PSBUZXh0VHJhY2s6OkluQmFuZCkKQEAgLTYwNzgsMTIgKzYwODAsMTIgQEAgTWVkaWFDb250cm9s
bGVyKiBIVE1MTWVkaWFFbGVtZW50Ojpjb250cm9sbGVyKCkgY29uc3QKICAgICByZXR1cm4gbV9t
ZWRpYUNvbnRyb2xsZXIuZ2V0KCk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0Q29u
dHJvbGxlcihQYXNzUmVmUHRyPE1lZGlhQ29udHJvbGxlcj4gY29udHJvbGxlcikKK3ZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6c2V0Q29udHJvbGxlcihSZWZQdHI8TWVkaWFDb250cm9sbGVyPiYmIGNv
bnRyb2xsZXIpCiB7CiAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyKQogICAgICAgICBtX21lZGlh
Q29udHJvbGxlci0+cmVtb3ZlTWVkaWFFbGVtZW50KCp0aGlzKTsKIAotICAgIG1fbWVkaWFDb250
cm9sbGVyID0gY29udHJvbGxlcjsKKyAgICBtX21lZGlhQ29udHJvbGxlciA9IFdURk1vdmUoY29u
dHJvbGxlcik7CiAKICAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXIpCiAgICAgICAgIG1fbWVkaWFD
b250cm9sbGVyLT5hZGRNZWRpYUVsZW1lbnQoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaAppbmRleCAwMjNjYzMzNjI4MzNmYTgwNjE5OWE0MTMwM2FmZjE5MDVjYmY2
NWRmLi5jYTE4OThkNmU2ZTIyMWExYWMxNTM1YTk3OTBhNTIxY2MyOWEyZTA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDctMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDctMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDEwICsyNywxMCBAQAogCiAjaWYg
RU5BQkxFKFZJREVPKQogCi0jaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJBY3Rp
dmVET01PYmplY3QuaCIKICNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUg
IkdlbmVyaWNUYXNrUXVldWUuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxNZWRpYUVsZW1lbnRFbnVtcy5oIgogI2luY2x1ZGUgIk1lZGlhQ2FuU3RhcnRMaXN0ZW5l
ci5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oIgpAQCAtNjksOSArNjks
NyBAQCBjbGFzcyBNZWRpYUNvbnRyb2xzOwogY2xhc3MgTWVkaWFDb250cm9sc0hvc3Q7CiBjbGFz
cyBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU7CiBjbGFzcyBNZWRpYUVycm9yOwotI2lmIEVO
QUJMRShFTkNSWVBURURfTUVESUEpCiBjbGFzcyBNZWRpYUtleXM7Ci0jZW5kaWYKIGNsYXNzIE1l
ZGlhUGxheWVyOwogY2xhc3MgTWVkaWFTZXNzaW9uOwogY2xhc3MgTWVkaWFTb3VyY2U7CkBAIC04
MSw3ICs3OSw2IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBTb3VyY2VC
dWZmZXI7CiBjbGFzcyBUZXh0VHJhY2tMaXN0OwogY2xhc3MgVGltZVJhbmdlczsKLWNsYXNzIFVS
TDsKIGNsYXNzIFZpZGVvUGxheWJhY2tRdWFsaXR5OwogY2xhc3MgVmlkZW9UcmFja0xpc3Q7CiBj
bGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKQEAgLTMzMSwyMCArMzI4LDIwIEBAIHB1YmxpYzoKICAg
ICB2b2lkIHVwZGF0ZVRleHRUcmFja0Rpc3BsYXkoKTsKIAogICAgIC8vIEF1ZGlvVHJhY2tDbGll
bnQKLSAgICB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayYpIGZpbmFs
OwogCiAgICAgdm9pZCB0ZXh0VHJhY2tSZWFkeVN0YXRlQ2hhbmdlZChUZXh0VHJhY2sqKTsKIAog
ICAgIC8vIFRleHRUcmFja0NsaWVudAotICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4
dFRyYWNrKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJh
Y2sqKSBvdmVycmlkZTsKLSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiwgY29u
c3QgVGV4dFRyYWNrQ3VlTGlzdCopIG92ZXJyaWRlOwotICAgIHZvaWQgdGV4dFRyYWNrUmVtb3Zl
Q3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0Kikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgb3ZlcnJpZGU7
Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikg
b3ZlcnJpZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2smKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIG92ZXJyaWRl
OworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tD
dWVMaXN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFj
ayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRleHRUcmFj
a0FkZEN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRl
eHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlkZTsKIAog
ICAgIC8vIFZpZGVvVHJhY2tDbGllbnQKLSAgICB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5n
ZWQoVmlkZW9UcmFjayopIG92ZXJyaWRlOworICAgIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hh
bmdlZChWaWRlb1RyYWNrJikgZmluYWw7CiAKICAgICBib29sIHJlcXVpcmVzVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9u
KFRleHRUcmFja1JlcHJlc2VudGF0aW9uKik7CkBAIC00MjIsNyArNDE5LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0TWVkaWFHcm91cChjb25zdCBTdHJpbmcmKTsKIAogICAgIE1lZGlhQ29udHJv
bGxlciogY29udHJvbGxlcigpIGNvbnN0OwotICAgIHZvaWQgc2V0Q29udHJvbGxlcihQYXNzUmVm
UHRyPE1lZGlhQ29udHJvbGxlcj4pOworICAgIHZvaWQgc2V0Q29udHJvbGxlcihSZWZQdHI8TWVk
aWFDb250cm9sbGVyPiYmKTsKIAogICAgIHZvaWQgZW50ZXJlZE9yRXhpdGVkRnVsbHNjcmVlbigp
IHsgY29uZmlndXJlTWVkaWFDb250cm9scygpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T2JqZWN0RWxlbWVudC5jcHAKaW5kZXggYmRlNmFlMjM1ZmQyZDQ0NzlkYWZiNjg5NDBmNzE5YjAy
YzM0OGNmMy4uMmVlYjQzZWQzOWFjYjVlMmM4OTg1ZDlhMzYyMDU4ODk3N2M5YjFkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTIsNyArMiw3IEBACiAg
KiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAg
ICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAg
ICAgICAoQykgMjAwMCBTdGVmYW4gU2NoaW1hbnNraSAoMVN0ZWluQGdteC5kZSkKLSAqIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAt
NTE5LDExICs1MTksNiBAQCBib29sIEhUTUxPYmplY3RFbGVtZW50OjphcHBlbmRGb3JtRGF0YShG
b3JtRGF0YUxpc3QmIGVuY29kaW5nLCBib29sKQogICAgIHJldHVybiB0cnVlOwogfQogCi1IVE1M
Rm9ybUVsZW1lbnQqIEhUTUxPYmplY3RFbGVtZW50Ojp2aXJ0dWFsRm9ybSgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybSgpOwotfQotCiBib29sIEhUTUxP
YmplY3RFbGVtZW50OjpjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0CiB7CiAgICAgLy8g
Q2FsbCB0aHJvdWdoIHRvIEhUTUxFbGVtZW50IGJlY2F1c2Ugd2UgbmVlZCB0byBza2lwIEhUTUxQ
bHVnSW5FbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKaW5kZXgg
ZTNjNTVlNGYwNTUxZTZjNmY1OWRmNDc3NTc4ZmY5NjgyMmRhZmVkOS4uOWVhODkzYjAxZDRjMDI2
ZWUxNTdhMjM4YWI1NjcxNGE1NDk3ZTYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT2JqZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFy
cyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2
aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAw
NywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHVzaW5nIEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQ6OnJlZjsKICAgICB1c2luZyBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpk
ZXJlZjsKIAotICAgIHVzaW5nIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybTsKKyAgICBIVE1M
Rm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCBmaW5hbCB7IHJldHVybiBGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQ6OmZvcm0oKTsgfQogCiBwcml2YXRlOgogICAgIEhUTUxPYmplY3RFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRl
ZEJ5UGFyc2VyKTsKQEAgLTkxLDcgKzkxLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVmRm9y
bUFzc29jaWF0ZWRFbGVtZW50KCkgZmluYWwgeyByZWYoKTsgfQogICAgIHZvaWQgZGVyZWZGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KLSAgICBIVE1MRm9ybUVsZW1l
bnQqIHZpcnR1YWxGb3JtKCkgY29uc3QgZmluYWw7CiAKICAgICBGb3JtTmFtZWRJdGVtKiBhc0Zv
cm1OYW1lZEl0ZW0oKSBmaW5hbCB7IHJldHVybiB0aGlzOyB9CiAgICAgSFRNTE9iamVjdEVsZW1l
bnQmIGFzSFRNTEVsZW1lbnQoKSBmaW5hbCB7IHJldHVybiAqdGhpczsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAppbmRleCA5YTMwNWZmMWY3MjYwMjJiNWYzZjcy
MDMyNzhjMDY2YmQ0MWY1OWZkLi44ZmJlNTFlZGIxNzdhMGMyNzEzYjYwMWNlODM2ODBjZTJlZmVk
ZDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcApAQCAtMyw3
ICszLDcgQEAKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9A
a2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2Rl
Lm9yZykKICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBv
cC5jb20pCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMTAsIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTW90
b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMzM0LDcg
KzMzNCw3IEBAIFN0cmluZyBIVE1MT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvbklubmVyVGV4
dCgpIGNvbnN0CiAgICAgICAgIGlmIChpczxUZXh0Pigqbm9kZSkpCiAgICAgICAgICAgICB0ZXh0
LmFwcGVuZChub2RlLT5ub2RlVmFsdWUoKSk7CiAgICAgICAgIC8vIFRleHQgbm9kZXMgaW5zaWRl
IHNjcmlwdCBlbGVtZW50cyBhcmUgbm90IHBhcnQgb2YgdGhlIG9wdGlvbiB0ZXh0LgotICAgICAg
ICBpZiAoaXM8RWxlbWVudD4oKm5vZGUpICYmIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZG93
bmNhc3Q8RWxlbWVudD4obm9kZSkpKQorICAgICAgICBpZiAoaXM8RWxlbWVudD4oKm5vZGUpICYm
IGlzU2NyaXB0RWxlbWVudChkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkpKQogICAgICAgICAgICAg
bm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKCpub2RlLCB0aGlzKTsK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoKm5v
ZGUsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAppbmRl
eCBhODY0ZTg3ZWFmZDQyODNlNTRmMWU0MGJmZWNmOTIyNWE1Y2I1ZGQ2Li5jZTZkM2I2OGYyNjJj
YzJjMzI2MjU1MjUyMzAzNGZmNzFlNjA0MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
bHVnSW5FbGVtZW50LmNwcApAQCAtMSw4ICsxLDggQEAKLS8qKgorLyoKICAqIENvcHlyaWdodCAo
QykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5
IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAw
IFN0ZWZhbiBTY2hpbWFuc2tpICgxU3RlaW5AZ214LmRlKQotICogQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1LCAyMDA2LCAyMDE0IEFwcGxlIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MTA4LDIxICsxMDgsMjAgQEAgdm9pZCBIVE1MUGx1Z0luRWxlbWVudDo6cmVzZXRJbnN0YW5jZSgp
CiAgICAgbV9pbnN0YW5jZSA9IG51bGxwdHI7CiB9CiAKLVBhc3NSZWZQdHI8SlNDOjpCaW5kaW5n
czo6SW5zdGFuY2U+IEhUTUxQbHVnSW5FbGVtZW50OjpnZXRJbnN0YW5jZSgpCitKU0M6OkJpbmRp
bmdzOjpJbnN0YW5jZSogSFRNTFBsdWdJbkVsZW1lbnQ6OmJpbmRpbmdzSW5zdGFuY2UoKQogewot
ICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBhdXRvKiBmcmFtZSA9
IGRvY3VtZW50KCkuZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBJZiB0aGUgaG9zdCBkeW5hbWljYWxs
eSB0dXJucyBvZmYgSmF2YVNjcmlwdCAob3IgSmF2YSkgd2Ugd2lsbCBzdGlsbCByZXR1cm4KICAg
ICAvLyB0aGUgY2FjaGVkIGFsbG9jYXRlZCBCaW5kaW5nczo6SW5zdGFuY2UuICBOb3Qgc3VwcG9y
dGluZyB0aGlzIGVkZ2UtY2FzZSBpcyBPSy4KLSAgICBpZiAobV9pbnN0YW5jZSkKLSAgICAgICAg
cmV0dXJuIG1faW5zdGFuY2U7Ci0KLSAgICBpZiAoV2lkZ2V0KiB3aWRnZXQgPSBwbHVnaW5XaWRn
ZXQoKSkKLSAgICAgICAgbV9pbnN0YW5jZSA9IGZyYW1lLT5zY3JpcHQoKS5jcmVhdGVTY3JpcHRJ
bnN0YW5jZUZvcldpZGdldCh3aWRnZXQpOwogCi0gICAgcmV0dXJuIG1faW5zdGFuY2U7CisgICAg
aWYgKCFtX2luc3RhbmNlKSB7CisgICAgICAgIGlmIChhdXRvKiB3aWRnZXQgPSBwbHVnaW5XaWRn
ZXQoKSkKKyAgICAgICAgICAgIG1faW5zdGFuY2UgPSBmcmFtZS0+c2NyaXB0KCkuY3JlYXRlU2Ny
aXB0SW5zdGFuY2VGb3JXaWRnZXQod2lkZ2V0KTsKKyAgICB9CisgICAgcmV0dXJuIG1faW5zdGFu
Y2UuZ2V0KCk7CiB9CiAKIGJvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6Omd1YXJkZWREaXNwYXRjaEJl
Zm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKQEAgLTE5OSw3ICsxOTgsNyBA
QCB2b2lkIEhUTUxQbHVnSW5FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVu
dCkKICAgICAgICAgfQogCiAgICAgICAgIGlmIChpczxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbj4o
KnJlbmRlcmVyKSAmJiBkaXNwbGF5U3RhdGUoKSA8IFJlc3RhcnRpbmcpIHsKLSAgICAgICAgICAg
IGRvd25jYXN0PFJlbmRlclNuYXBzaG90dGVkUGx1Z0luPigqcmVuZGVyZXIpLmhhbmRsZUV2ZW50
KCZldmVudCk7CisgICAgICAgICAgICBkb3duY2FzdDxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbj4o
KnJlbmRlcmVyKS5oYW5kbGVFdmVudChldmVudCk7CiAgICAgICAgICAgICBIVE1MRnJhbWVPd25l
ckVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5F
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKaW5kZXgg
NWI4YzVhZDQyODJhYmY5NWEwNTI2MjhiMjhmZTlkNDAxYTljNzc4My4uODkyNzFjNDhiM2RiMGQ3
YmMyOWI1YmU5NTVlNWVkNGIwZWNiOGE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkVsZW1lbnQuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFy
cyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2
aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAw
NywgMjAwOCwgMjAwOSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBy
ZXNldEluc3RhbmNlKCk7CiAKLSAgICBQYXNzUmVmUHRyPEpTQzo6QmluZGluZ3M6Okluc3RhbmNl
PiBnZXRJbnN0YW5jZSgpOworICAgIEpTQzo6QmluZGluZ3M6Okluc3RhbmNlKiBiaW5kaW5nc0lu
c3RhbmNlKCk7CiAKICAgICBlbnVtIGNsYXNzIFBsdWdpbkxvYWRpbmdQb2xpY3kgeyBEb05vdExv
YWQsIExvYWQgfTsKICAgICBXRUJDT1JFX0VYUE9SVCBXaWRnZXQqIHBsdWdpbldpZGdldChQbHVn
aW5Mb2FkaW5nUG9saWN5ID0gUGx1Z2luTG9hZGluZ1BvbGljeTo6TG9hZCkgY29uc3Q7CkBAIC02
MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB9OwogICAgIERpc3BsYXlTdGF0ZSBkaXNwbGF5U3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlTdGF0ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBz
ZXREaXNwbGF5U3RhdGUoRGlzcGxheVN0YXRlKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU25h
cHNob3QoUGFzc1JlZlB0cjxJbWFnZT4pIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTbmFw
c2hvdChJbWFnZSopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFBlbmRpbmdNb3VzZUNs
aWNrKCkgeyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVzdGFydGVkUGx1Z2luKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdl
RWxlbWVudC5jcHAKaW5kZXggZmEyMzQ3YjYwYTk2MmI2MDVlM2U3OTg2NTBjMTMxYThiMmIyNWE4
OC4uMmE3NjI4YTJjY2Q2ZDJkMjI0ZjQ4ZGEzNDdiN2M5MTcyYzVkN2U2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTcxLDcgKzE3MSw3IEBAIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVuZGVyU3R5CiAKICAgICBpZiAoZGlzcGxheVN0YXRlKCkgPT0gRGlzcGxheWlu
Z1NuYXBzaG90KSB7CiAgICAgICAgIGF1dG8gcmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gPSBjcmVh
dGVSZW5kZXJlcjxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbj4oKnRoaXMsIFdURk1vdmUoc3R5bGUp
KTsKLSAgICAgICAgcmVuZGVyU25hcHNob3R0ZWRQbHVnSW4tPnVwZGF0ZVNuYXBzaG90KG1fc25h
cHNob3RJbWFnZSk7CisgICAgICAgIHJlbmRlclNuYXBzaG90dGVkUGx1Z0luLT51cGRhdGVTbmFw
c2hvdChtX3NuYXBzaG90SW1hZ2UuZ2V0KCkpOwogICAgICAgICByZXR1cm4gV1RGTW92ZShyZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbik7CiAgICAgfQogCkBAIC0zMDEsNyArMzAxLDcgQEAgdm9pZCBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpzdGFydExvYWRpbmdJbWFnZSgpCiAgICAgbV9pbWFnZUxv
YWRlci0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKIH0KIAotdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50Ojp1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKK3ZvaWQgSFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6dXBkYXRlU25hcHNob3QoSW1hZ2UqIGltYWdlKQogewogICAgIGlm
IChkaXNwbGF5U3RhdGUoKSA+IERpc3BsYXlpbmdTbmFwc2hvdCkKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAppbmRleCBhM2Y3
ZTEwOGNmOTJlMDVhOWJiOGRhNGRhNjkyYWY0MDBmZDA2YTQ2Li5iMWM3NjI2YTNjNGU5NGM5Y2Rk
MDhkOGZmYTJkYTFjMzRmMzVmYjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQbHVnSW5JbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVn
SW5JbWFnZUVsZW1lbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDgtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDgtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVmYXVsdEV2ZW50
SGFuZGxlcihFdmVudCYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hQZW5kaW5nTW91c2VDbGlj
aygpIGZpbmFsOwogCi0gICAgdm9pZCB1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPikg
ZmluYWw7CisgICAgdm9pZCB1cGRhdGVTbmFwc2hvdChJbWFnZSopIGZpbmFsOwogCiAgICAgdm9p
ZCBzdGFydExvYWRpbmdJbWFnZSgpOwogICAgIHZvaWQgdXBkYXRlV2lkZ2V0SWZOZWNlc3Nhcnko
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggZWRjMjdi
OWE1MDAzOWNlYzMwMWI2YjhmNWNjMmJhYTM0ZjM4M2MwMi4uN2EyYjgyZGVjNDRlYmQ4OGI1NjYx
NWY0NjU2ZWU3ZmE1NTgyYTdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5jcHAKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9s
bCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAo
a29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11
ZWxsZXJAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwg
MjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAppbmRleCBmMmJk
NTI1Yzc0ZGRkM2Q3YjhhMWZjMWU5NjkyNTJlODYzY2RmNTc1Li4zMmQ4ZWUwMzg0YzIxNWY4YzFi
NWM0OTk3Y2M4NjgxODViZmYxODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtu
b2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3Rv
IChrb2l2aXN0b0BrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwMy0yMDE3IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCkBAIC00Myw2ICs0Myw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldENyb3NzT3JpZ2luKGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IFN0cmluZyBjcm9zc09yaWdpbigpIGNvbnN0OwogCisgICAgdXNpbmcgSFRNTEVsZW1lbnQ6OnJl
ZjsKKyAgICB1c2luZyBIVE1MRWxlbWVudDo6ZGVyZWY7CisKIHByaXZhdGU6CiAgICAgSFRNTFNj
cmlwdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNl
cnRlZEJ5UGFyc2VyLCBib29sIGFscmVhZHlTdGFydGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA3ZGI5MTRmNzA2
YjNhNmZhZjk0MzRhOGYyNGVlMTIxODE1YTc0ZGYyLi5hOWE1Mzc0Y2M2YTRiMTJhNzBmMmI5ODQ2
M2I5ZjlmODhjNjk4OTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykg
MTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFu
dHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERp
cmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
LCAyMDA2LCAyMDA3LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
ICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgpAQCAtNDI3LDcgKzQyNyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRDb250
YWluZXJBbmRPZmZzZXRGb3JSYW5nZShOb2RlKiBub2RlLCBpbnQgb2Zmc2V0LCBOb2RlKiYKICAg
ICB9CiB9CiAKLVBhc3NSZWZQdHI8UmFuZ2U+IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpz
ZWxlY3Rpb24oKSBjb25zdAorUmVmUHRyPFJhbmdlPiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6c2VsZWN0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoIXJlbmRlcmVyKCkgfHwgIWlzVGV4dEZv
cm1Db250cm9sKCkgfHwgIWhhc0NhY2hlZFNlbGVjdGlvbigpKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQuaAppbmRleCA0YTYzZTk3MWFhYjFmZWI1ZDM0NmRjNDIyMzFiNmIxMjY2YzBiNjNmLi4xMjhi
MDMxOGIwN2U2ZmI4NDgyZWE2ZGRmNGU4M2Q1NjZmODhlMzFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC0yLDcgKzIsNyBAQAog
ICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAg
ICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAg
ICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5LCAy
MDEwLCAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpA
QCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBFeGNl
cHRpb25Pcjx2b2lkPiBzZXRSYW5nZVRleHQoY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudCwgdW5z
aWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29uc3QgU3RyaW5nJiBzZWxlY3Rpb25Nb2RlKTsK
ICAgICB2b2lkIHNldFNlbGVjdGlvblJhbmdlKGludCBzdGFydCwgaW50IGVuZCwgY29uc3QgU3Ry
aW5nJiBkaXJlY3Rpb24sIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50KCkpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9u
UmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gPSBT
ZWxlY3Rpb25IYXNOb0RpcmVjdGlvbiwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmID0g
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7Ci0gICAgUGFzc1JlZlB0cjxSYW5nZT4gc2VsZWN0
aW9uKCkgY29uc3Q7CisgICAgUmVmUHRyPFJhbmdlPiBzZWxlY3Rpb24oKSBjb25zdDsKICAgICBT
dHJpbmcgc2VsZWN0ZWRUZXh0KCkgY29uc3Q7CiAKICAgICB2b2lkIGRpc3BhdGNoRm9ybUNvbnRy
b2xDaGFuZ2VFdmVudCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVHJhY2tFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVu
dC5jcHAKaW5kZXggMDdmNDJkOTlmOGQ3YjQ4YTliYTI0MWI0YzQ3MWQ1NzlmNTVlOGJkNS4uNjY4
YjgxMmI4Y2VmNTMxNzczMDlmYzU4MmQ4Yjk0NjE3M2RhZDM4YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxMSwgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Miw2ICs0Myw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKICNpZiAhTE9HX0RJU0FCTEVE
CisKIHN0YXRpYyBTdHJpbmcgdXJsRm9yTG9nZ2luZ1RyYWNrKGNvbnN0IFVSTCYgdXJsKQogewog
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhpbXVtVVJMTGVuZ3RoRm9yTG9nZ2luZyA9IDEy
ODsKQEAgLTUwLDYgKzUyLDcgQEAgc3RhdGljIFN0cmluZyB1cmxGb3JMb2dnaW5nVHJhY2soY29u
c3QgVVJMJiB1cmwpCiAgICAgICAgIHJldHVybiB1cmwuc3RyaW5nKCk7CiAgICAgcmV0dXJuIHVy
bC5zdHJpbmcoKS5zdWJzdHJpbmcoMCwgbWF4aW11bVVSTExlbmd0aEZvckxvZ2dpbmcpICsgIi4u
LiI7CiB9CisKICNlbmRpZgogICAgIAogaW5saW5lIEhUTUxUcmFja0VsZW1lbnQ6OkhUTUxUcmFj
a0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQpAQCAtMjc5LDQzICsyODIsNDMgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MVHJhY2tFbGVt
ZW50OjptZWRpYUVsZW1lbnRDcm9zc09yaWdpbkF0dHJpYnV0ZSgpIGNvbnN0CiAgICAgcmV0dXJu
IG51bGxBdG9tOwogfQogCi12b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0tpbmRDaGFu
Z2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0tp
bmRDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7Ci0gICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQq
IHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQorICAgIGlmIChhdXRvKiBwYXJlbnQgPSBtZWRpYUVs
ZW1lbnQoKSkKICAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tLaW5kQ2hhbmdlZCh0cmFjayk7CiB9
CiAKLXZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNr
KiB0cmFjaykKK3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4
dFRyYWNrJiB0cmFjaykKIHsKICAgICAvLyBTaW5jZSB3ZSd2ZSBtb3ZlZCB0byBhIG5ldyBwYXJl
bnQsIHdlIG1heSBub3cgYmUgYWJsZSB0byBsb2FkLgogICAgIGlmIChyZWFkeVN0YXRlKCkgPT0g
SFRNTFRyYWNrRWxlbWVudDo6Tk9ORSkKICAgICAgICAgc2NoZWR1bGVMb2FkKCk7CiAKLSAgICBp
ZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1
dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja01v
ZGVDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tB
ZGRDdWVzKFRleHRUcmFjayogdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMpCit2
b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiB0cmFjaywg
Y29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVu
dCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1lZGlh
RWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja0FkZEN1ZXModHJhY2ssIGN1ZXMp
OwogfQogICAgIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRl
eHRUcmFjayogdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMpCit2b2lkIEhUTUxU
cmFja0VsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiB0cmFjaywgY29uc3Qg
VGV4dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFy
ZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVu
dCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja1JlbW92ZUN1ZXModHJhY2ssIGN1ZXMpOwog
fQogICAgIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNr
KiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRU
cmFja0FkZEN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKLSAgICBp
ZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1
dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja0Fk
ZEN1ZSh0cmFjaywgY3VlKTsKIH0KICAgICAKLXZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRy
YWNrUmVtb3ZlQ3VlKFRleHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBI
VE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiB0cmFjaywgVGV4
dFRyYWNrQ3VlJiBjdWUpCiB7Ci0gICAgaWYgKEhUTUxNZWRpYUVsZW1lbnQqIHBhcmVudCA9IG1l
ZGlhRWxlbWVudCgpKQorICAgIGlmIChhdXRvKiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKICAg
ICAgICAgcGFyZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUodHJhY2ssIGN1ZSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKaW5kZXggOWI0MjVkY2Q4NWQxZTBkNGYzNjBj
ODZkMmVhNjJkMTkwOGU0YjdiMC4uMjI1MTAyNzljZGYyYmJlMjE5ZTUyM2MxNzlmNjI2ZDMzZGY3
OTBiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKQEAgLTEsNSArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc0LDEyICs3NSwx
MiBAQCBwcml2YXRlOgogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCgpIGNvbnN0
OwogCiAgICAgLy8gVGV4dFRyYWNrQ2xpZW50Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdl
ZChUZXh0VHJhY2sqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRU
cmFjayopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sqLCBjb25z
dCBUZXh0VHJhY2tDdWVMaXN0KikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVz
KFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBmaW5hbDsKLSAgICB2b2lkIHRl
eHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKLSAgICB2b2lk
IHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKKyAg
ICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIGZpbmFsOworICAgIHZvaWQg
dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJh
Y2tBZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBmaW5hbDsKKyAg
ICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3Vl
TGlzdCYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYsIFRleHRU
cmFja0N1ZSYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayYs
IFRleHRUcmFja0N1ZSYpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5Mb2FkVVJMKGNvbnN0IFVSTCYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggZjZhNmJiYzQ2NGI5YWZhMzhkNTdi
NGQxZWM0N2NmM2NjYTkyNjZkNC4uM2E4NjFhZDY2MDQ5NTQxZDY3YTE0YzJjZWZkZDRkMWU1NjUx
MTMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENv
cHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAg
IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAg
IChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEzLCAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykg
MjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDcgU2FtdWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDksIDIwMTAsIDIwMTEsIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAg
LTQ4MiwxMSArNDgyLDYgQEAgYm9vbCBJbnB1dFR5cGU6OnNob3VsZFN1Ym1pdEltcGxpY2l0bHko
RXZlbnQmIGV2ZW50KQogICAgIHJldHVybiBpczxLZXlib2FyZEV2ZW50PihldmVudCkgJiYgZXZl
bnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50ICYmIGRvd25jYXN0PEtleWJv
YXJkRXZlbnQ+KGV2ZW50KS5jaGFyQ29kZSgpID09ICdccic7CiB9CiAKLVBhc3NSZWZQdHI8SFRN
TEZvcm1FbGVtZW50PiBJbnB1dFR5cGU6OmZvcm1Gb3JTdWJtaXNzaW9uKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gZWxlbWVudCgpLmZvcm0oKTsKLX0KLQogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IElucHV0VHlwZTo6Y3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlKQogewog
ICAgIHJldHVybiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4oUmVuZGVyRWxlbWVudDo6Y3JlYXRl
Rm9yKGVsZW1lbnQoKSwgV1RGTW92ZShzdHlsZSkpKTsKQEAgLTU1MSw3ICs1NDYsNyBAQCBDaHJv
bWUqIElucHV0VHlwZTo6Y2hyb21lKCkgY29uc3QKIHsKICAgICBpZiAoUGFnZSogcGFnZSA9IGVs
ZW1lbnQoKS5kb2N1bWVudCgpLnBhZ2UoKSkKICAgICAgICAgcmV0dXJuICZwYWdlLT5jaHJvbWUo
KTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnB1dFR5
cGU6OmNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3QKQEAgLTYzNiw3ICs2MzEsNyBAQCBib29sIElu
cHV0VHlwZTo6Y2FuQmVTdWNjZXNzZnVsU3VibWl0QnV0dG9uKCkKIAogSFRNTEVsZW1lbnQqIElu
cHV0VHlwZTo6cGxhY2Vob2xkZXJFbGVtZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gMDsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnB1dFR5cGU6OnJlbmRlcmVySXNOZWVkZWQo
KQpAQCAtNjQ2LDEwICs2NDEsMTAgQEAgYm9vbCBJbnB1dFR5cGU6OnJlbmRlcmVySXNOZWVkZWQo
KQogCiBGaWxlTGlzdCogSW5wdXRUeXBlOjpmaWxlcygpCiB7Ci0gICAgcmV0dXJuIDA7CisgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpzZXRGaWxlcyhQYXNzUmVmUHRy
PEZpbGVMaXN0PikKK3ZvaWQgSW5wdXRUeXBlOjpzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+JiYp
CiB7CiB9CiAKQEAgLTczMSwyNSArNzI2LDI5IEBAIFN0cmluZyBJbnB1dFR5cGU6OnNhbml0aXpl
VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zdAogfQogCiAjaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkKKwogYm9vbCBJbnB1dFR5cGU6OnJlY2VpdmVEcm9wcGVkRmlsZXMoY29u
c3QgRHJhZ0RhdGEmKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBm
YWxzZTsKIH0KKwogI2VuZGlmCiAKIEljb24qIElucHV0VHlwZTo6aWNvbigpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKICNpZiBQTEFURk9STShJT1MpCisKIFN0cmluZyBJbnB1dFR5cGU6OmRpc3BsYXlT
dHJpbmcoKSBjb25zdAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBT
dHJpbmcoKTsKIH0KKwogI2VuZGlmCiAKIGJvb2wgSW5wdXRUeXBlOjpzaG91bGRSZXNldE9uRG9j
dW1lbnRBY3RpdmF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGM0YmU3M2Q0MDA0
ZDY4ZDkxMzBiOWFiOTQ2YTE3MDBlNzAzM2RlMjQuLjk4Y2ZmODlhYWI4YjU5YWI5NTZlNDM2MDI4
NTFjMGE4NGM0OWJjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNz
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMTkyLDcgKzE5Miw2
IEBAIHB1YmxpYzoKICAgICAvLyBIZWxwZXJzIGZvciBldmVudCBoYW5kbGVycy4KIAogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRTdWJtaXRJbXBsaWNpdGx5KEV2ZW50Jik7Ci0gICAgdmlydHVhbCBQ
YXNzUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gZm9ybUZvclN1Ym1pc3Npb24oKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGJvb2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQmKSBjb25zdDsKICAgICB2aXJ0
dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0OwpAQCAtMjM5LDcgKzIzOCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbWF4UmVzdWx0c0F0dHJpYnV0ZUNoYW5nZWQoKTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdEFsaWduQXR0cmlidXRlKCk7CiAgICAgdmlydHVh
bCBGaWxlTGlzdCogZmlsZXMoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0
cjxGaWxlTGlzdD4pOworICAgIHZpcnR1YWwgdm9pZCBzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+
JiYpOwogICAgIHZpcnR1YWwgSWNvbiogaWNvbigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRTZW5kQ2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCBi
b29sIGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRv
Y3VtZW50LmNwcAppbmRleCBmMzUxZjk3OTUxNWY1Y2VjOWE0OTk0ZTBkNzVkMDFkYzQyMTg5NjA1
Li5iYjMwMGIwZmZiOWYzYmM3YTRhYzdkMmViYWU0YzkwNWFjNjBkNmU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MywxNSArNTMsMTMgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBQbHVnaW5Eb2N1bWVudFBhcnNlcihEb2N1bWVudCYgZG9jdW1l
bnQpCiAgICAgICAgIDogUmF3RGF0YURvY3VtZW50UGFyc2VyKGRvY3VtZW50KQotICAgICAgICAs
IG1fZW1iZWRFbGVtZW50KDApCiAgICAgewogICAgIH0KIAotICAgIHZvaWQgYXBwZW5kQnl0ZXMo
RG9jdW1lbnRXcml0ZXImLCBjb25zdCBjaGFyKiwgc2l6ZV90KSBvdmVycmlkZTsKLQorICAgIHZv
aWQgYXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBjb25zdCBjaGFyKiwgc2l6ZV90KSBmaW5h
bDsKICAgICB2b2lkIGNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCk7CiAKLSAgICBIVE1MRW1iZWRF
bGVtZW50KiBtX2VtYmVkRWxlbWVudDsKKyAgICBIVE1MRW1iZWRFbGVtZW50KiBtX2VtYmVkRWxl
bWVudCB7IG51bGxwdHIgfTsKIH07CiAKIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0
ZURvY3VtZW50U3RydWN0dXJlKCkKQEAgLTEwNCw3ICsxMDIsNyBAQCB2b2lkIFBsdWdpbkRvY3Vt
ZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAgICAgaWYgKGF1dG8qIGxvYWRl
ciA9IGRvY3VtZW50LmxvYWRlcigpKQogICAgICAgICBtX2VtYmVkRWxlbWVudC0+c2V0QXR0cmli
dXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih0eXBlQXR0ciwgbG9hZGVyLT53cml0ZXIoKS5taW1l
VHlwZSgpKTsKIAotICAgIGRvY3VtZW50LnNldFBsdWdpbkVsZW1lbnQobV9lbWJlZEVsZW1lbnQp
OworICAgIGRvY3VtZW50LnNldFBsdWdpbkVsZW1lbnQoKm1fZW1iZWRFbGVtZW50KTsKIAogICAg
IGJvZHktPmFwcGVuZENoaWxkKGVtYmVkRWxlbWVudCk7CiB9CkBAIC0xMTYsNyArMTE0LDcgQEAg
dm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBj
b25zdCBjaGFyKiwgc2l6ZV90KQogCiAgICAgY3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKTsKIAot
ICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgYXV0byogZnJhbWUg
PSBkb2N1bWVudCgpLT5mcmFtZSgpOwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsK
IApAQCAtMTQyLDcgKzE0MCw2IEBAIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5
dGVzKERvY3VtZW50V3JpdGVyJiwgY29uc3QgY2hhciosIHNpemVfdCkKIAogUGx1Z2luRG9jdW1l
bnQ6OlBsdWdpbkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgOiBI
VE1MRG9jdW1lbnQoZnJhbWUsIHVybCwgUGx1Z2luRG9jdW1lbnRDbGFzcykKLSAgICAsIG1fc2hv
dWxkTG9hZFBsdWdpbk1hbnVhbGx5KHRydWUpCiB7CiAgICAgc2V0Q29tcGF0aWJpbGl0eU1vZGUo
RG9jdW1lbnRDb21wYXRpYmlsaXR5TW9kZTo6UXVpcmtzTW9kZSk7CiAgICAgbG9ja0NvbXBhdGli
aWxpdHlNb2RlKCk7CkBAIC0xNTUsMTQgKzE1MiwxNyBAQCBSZWY8RG9jdW1lbnRQYXJzZXI+IFBs
dWdpbkRvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQogCiBXaWRnZXQqIFBsdWdpbkRvY3VtZW50Ojpw
bHVnaW5XaWRnZXQoKQogewotICAgIGlmIChtX3BsdWdpbkVsZW1lbnQgJiYgbV9wbHVnaW5FbGVt
ZW50LT5yZW5kZXJlcigpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyRW1iZWRkZWRP
YmplY3Q+KCptX3BsdWdpbkVsZW1lbnQtPnJlbmRlcmVyKCkpLndpZGdldCgpOwotICAgIHJldHVy
biBudWxscHRyOworICAgIGlmICghbV9wbHVnaW5FbGVtZW50KQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICBhdXRvKiByZW5kZXJlciA9IG1fcGx1Z2luRWxlbWVudC0+cmVuZGVyZXIoKTsK
KyAgICBpZiAoIXJlbmRlcmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4g
ZG93bmNhc3Q8UmVuZGVyRW1iZWRkZWRPYmplY3Q+KCptX3BsdWdpbkVsZW1lbnQtPnJlbmRlcmVy
KCkpLndpZGdldCgpOwogfQogCi12b2lkIFBsdWdpbkRvY3VtZW50OjpzZXRQbHVnaW5FbGVtZW50
KFBhc3NSZWZQdHI8SFRNTFBsdWdJbkVsZW1lbnQ+IGVsZW1lbnQpCit2b2lkIFBsdWdpbkRvY3Vt
ZW50OjpzZXRQbHVnaW5FbGVtZW50KEhUTUxQbHVnSW5FbGVtZW50JiBlbGVtZW50KQogewotICAg
IG1fcGx1Z2luRWxlbWVudCA9IGVsZW1lbnQ7CisgICAgbV9wbHVnaW5FbGVtZW50ID0gJmVsZW1l
bnQ7CiB9CiAKIHZvaWQgUGx1Z2luRG9jdW1lbnQ6OmRldGFjaEZyb21QbHVnaW5FbGVtZW50KCkK
QEAgLTE3OSw5ICsxNzksMTAgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudDo6Y2FuY2VsTWFudWFsUGx1
Z2luTG9hZCgpCiAgICAgaWYgKCFzaG91bGRMb2FkUGx1Z2luTWFudWFsbHkoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWUoKS0+
bG9hZGVyKCkuYWN0aXZlRG9jdW1lbnRMb2FkZXIoKTsKLSAgICBkb2N1bWVudExvYWRlci0+Y2Fu
Y2VsTWFpblJlc291cmNlTG9hZChmcmFtZSgpLT5sb2FkZXIoKS5jYW5jZWxsZWRFcnJvcihkb2N1
bWVudExvYWRlci0+cmVxdWVzdCgpKSk7Ci0gICAgc2V0U2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5
KGZhbHNlKTsKKyAgICBhdXRvJiBmcmFtZUxvYWRlciA9IGZyYW1lKCktPmxvYWRlcigpOworICAg
IGF1dG8mIGRvY3VtZW50TG9hZGVyID0gKmZyYW1lTG9hZGVyLmFjdGl2ZURvY3VtZW50TG9hZGVy
KCk7CisgICAgZG9jdW1lbnRMb2FkZXIuY2FuY2VsTWFpblJlc291cmNlTG9hZChmcmFtZUxvYWRl
ci5jYW5jZWxsZWRFcnJvcihkb2N1bWVudExvYWRlci5yZXF1ZXN0KCkpKTsKKyAgICBtX3Nob3Vs
ZExvYWRQbHVnaW5NYW51YWxseSA9IGZhbHNlOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdp
bkRvY3VtZW50LmgKaW5kZXggM2NkMDYxMjU1MGY2ZjhmYmU5NmM4OWI1YjVmYjVlNTYxNDNjNWY3
ZS4uYmQ3ZWQ2Y2ExYTA2ZTVkODlmMzJjMjJjMDNkOTViMzU2NGE4NWIxOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUGx1Z2luRG9jdW1lbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDgsIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCwyNiArMzgsMjMgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQbHVnaW5Eb2N1bWVudChmcmFt
ZSwgdXJsKSk7CiAgICAgfQogCi0gICAgdm9pZCBzZXRQbHVnaW5FbGVtZW50KFBhc3NSZWZQdHI8
SFRNTFBsdWdJbkVsZW1lbnQ+KTsKLQogICAgIFdFQkNPUkVfRVhQT1JUIFdpZGdldCogcGx1Z2lu
V2lkZ2V0KCk7CiAgICAgSFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdpbkVsZW1lbnQoKSB7IHJldHVy
biBtX3BsdWdpbkVsZW1lbnQuZ2V0KCk7IH0KIAorICAgIHZvaWQgc2V0UGx1Z2luRWxlbWVudChI
VE1MUGx1Z0luRWxlbWVudCYpOwogICAgIHZvaWQgZGV0YWNoRnJvbVBsdWdpbkVsZW1lbnQoKTsK
IAogICAgIHZvaWQgY2FuY2VsTWFudWFsUGx1Z2luTG9hZCgpOwogCi0gICAgYm9vbCBzaG91bGRM
b2FkUGx1Z2luTWFudWFsbHkoKSB7IHJldHVybiBtX3Nob3VsZExvYWRQbHVnaW5NYW51YWxseTsg
fQorICAgIGJvb2wgc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5KCkgY29uc3QgeyByZXR1cm4gbV9z
aG91bGRMb2FkUGx1Z2luTWFudWFsbHk7IH0KIAogcHJpdmF0ZToKICAgICBQbHVnaW5Eb2N1bWVu
dChGcmFtZSosIGNvbnN0IFVSTCYpOwogCi0gICAgUmVmPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQ
YXJzZXIoKSBvdmVycmlkZTsKLQotICAgIHZvaWQgc2V0U2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5
KGJvb2wgbG9hZE1hbnVhbGx5KSB7IG1fc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5ID0gbG9hZE1h
bnVhbGx5OyB9CisgICAgUmVmPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBmaW5hbDsK
IAotICAgIGJvb2wgbV9zaG91bGRMb2FkUGx1Z2luTWFudWFsbHk7CiAgICAgUmVmUHRyPEhUTUxQ
bHVnSW5FbGVtZW50PiBtX3BsdWdpbkVsZW1lbnQ7CisgICAgYm9vbCBtX3Nob3VsZExvYWRQbHVn
aW5NYW51YWxseSB7IHRydWUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuY3BwCmluZGV4IDk0ZThiNGRjZWM0NGZkOGZlNmFhOTIxNGQ1NWQ5NTliNTg3MTlkZTUuLjc3
ZmE1MThmZmQwMzY0NmJiOWU4MjRhNzIwZmExOWEzMWIxZjY1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBU
b2tlciA8YWxwQGF0b2tlci5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggRXJpYyBTZWlkZWwg
PGVyaWNAd2Via2l0Lm9yZz4KQEAgLTE3Miw3ICsxNzIsNyBAQCBib29sIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6aXNBY2NlbGVyYXRlZCgpIGNvbnN0CiAjaWYgVVNFKElPU1VSRkFDRV9DQU5W
QVNfQkFDS0lOR19TVE9SRSkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICBp
ZiAoIWNhbnZhcygpLmhhc0NyZWF0ZWRJbWFnZUJ1ZmZlcigpKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gZHJhd2luZ0NvbnRleHQoKTsKKyAg
ICBhdXRvKiBjb250ZXh0ID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICByZXR1cm4gY29udGV4dCAm
JiBjb250ZXh0LT5pc0FjY2VsZXJhdGVkQ29udGV4dCgpOwogI2Vsc2UKICAgICByZXR1cm4gZmFs
c2U7CkBAIC00MTcsNyArNDE3LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNl
dFN0cm9rZVN0eWxlKENhbnZhc1N0eWxlIHN0eWxlKQogICAgIEdyYXBoaWNzQ29udGV4dCogYyA9
IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47Ci0gICAgc3Rh
dGUuc3Ryb2tlU3R5bGUuYXBwbHlTdHJva2VDb2xvcihjKTsKKyAgICBzdGF0ZS5zdHJva2VTdHls
ZS5hcHBseVN0cm9rZUNvbG9yKCpjKTsKICAgICBzdGF0ZS51bnBhcnNlZFN0cm9rZUNvbG9yID0g
U3RyaW5nKCk7CiB9CiAKQEAgLTQ0NCw3ICs0NDQsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6c2V0RmlsbFN0eWxlKENhbnZhc1N0eWxlIHN0eWxlKQogICAgIEdyYXBoaWNzQ29u
dGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47
Ci0gICAgc3RhdGUuZmlsbFN0eWxlLmFwcGx5RmlsbENvbG9yKGMpOworICAgIHN0YXRlLmZpbGxT
dHlsZS5hcHBseUZpbGxDb2xvcigqYyk7CiAgICAgc3RhdGUudW5wYXJzZWRGaWxsQ29sb3IgPSBT
dHJpbmcoKTsKIH0KIApAQCAtOTMwLDEzICs5MzAsMTMgQEAgc3RhdGljIGJvb2wgdmFsaWRhdGVS
ZWN0Rm9yQ2FudmFzKGZsb2F0JiB4LCBmbG9hdCYgeSwgZmxvYXQmIHdpZHRoLCBmbG9hdCYgaGVp
Z2gKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkK
LXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbGVhclBhdGhGb3JEYXNoYm9hcmRCYWNr
d2FyZENvbXBhdGliaWxpdHlNb2RlKCkKK2lubGluZSB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6Y2xlYXJQYXRoRm9yRGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSgpCiB7
CisjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIGlmIChtX3VzZXNEYXNoYm9hcmRD
b21wYXRpYmlsaXR5TW9kZSkKICAgICAgICAgbV9wYXRoLmNsZWFyKCk7Ci19CiAjZW5kaWYKK30K
IAogc3RhdGljIGJvb2wgaXNGdWxsQ2FudmFzQ29tcG9zaXRlTW9kZShDb21wb3NpdGVPcGVyYXRv
ciBvcCkKIHsKQEAgLTk1NCwyOCArOTU0LDE5IEBAIHN0YXRpYyBXaW5kUnVsZSB0b1dpbmRSdWxl
KENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6V2luZGluZ1J1bGUgcnVsZSkKIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpmaWxsKFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxlKQogewogICAg
IGZpbGxJbnRlcm5hbChtX3BhdGgsIHdpbmRpbmdSdWxlKTsKLQotI2lmIEVOQUJMRShEQVNIQk9B
UkRfU1VQUE9SVCkKICAgICBjbGVhclBhdGhGb3JEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxp
dHlNb2RlKCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnN0
cm9rZSgpCiB7CiAgICAgc3Ryb2tlSW50ZXJuYWwobV9wYXRoKTsKLQotI2lmIEVOQUJMRShEQVNI
Qk9BUkRfU1VQUE9SVCkKICAgICBjbGVhclBhdGhGb3JEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGli
aWxpdHlNb2RlKCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OmNsaXAoV2luZGluZ1J1bGUgd2luZGluZ1J1bGUpCiB7CiAgICAgY2xpcEludGVybmFsKG1fcGF0
aCwgd2luZGluZ1J1bGUpOwotCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIGNs
ZWFyUGF0aEZvckRhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoKTsKLSNlbmRpZgog
fQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZmlsbChET01QYXRoJiBwYXRoLCBX
aW5kaW5nUnVsZSB3aW5kaW5nUnVsZSkKQEAgLTk5NSwxOSArOTg2LDE5IEBAIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpjbGlwKERPTVBhdGgmIHBhdGgsIFdpbmRpbmdSdWxlIHdpbmRp
bmdSdWxlKQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZmlsbEludGVybmFsKGNv
bnN0IFBhdGgmIHBhdGgsIFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxlKQogewotICAgIEdyYXBoaWNz
Q29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250
ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhh
c0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIElmIGdyYWRp
ZW50IHNpemUgaXMgemVybywgdGhlbiBwYWludCBub3RoaW5nLgotICAgIEdyYWRpZW50KiBncmFk
aWVudCA9IGMtPmZpbGxHcmFkaWVudCgpOworICAgIGF1dG8qIGdyYWRpZW50ID0gYy0+ZmlsbEdy
YWRpZW50KCk7CiAgICAgaWYgKGdyYWRpZW50ICYmIGdyYWRpZW50LT5pc1plcm9TaXplKCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGlmICghcGF0aC5pc0VtcHR5KCkpIHsKLSAgICAgICAgV2lu
ZFJ1bGUgd2luZFJ1bGUgPSBjLT5maWxsUnVsZSgpOworICAgICAgICBhdXRvIHNhdmVkRmlsbFJ1
bGUgPSBjLT5maWxsUnVsZSgpOwogICAgICAgICBjLT5zZXRGaWxsUnVsZSh0b1dpbmRSdWxlKHdp
bmRpbmdSdWxlKSk7CiAKICAgICAgICAgaWYgKGlzRnVsbENhbnZhc0NvbXBvc2l0ZU1vZGUoc3Rh
dGUoKS5nbG9iYWxDb21wb3NpdGUpKSB7CkBAIC0xMDI0LDIwICsxMDE1LDIwIEBAIHZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmaWxsSW50ZXJuYWwoY29uc3QgUGF0aCYgcGF0aCwgV2lu
ZGluZ1J1bGUgd2luZGluCiAgICAgICAgICAgICBkaWREcmF3KHBhdGguZmFzdEJvdW5kaW5nUmVj
dCgpKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgYy0+c2V0RmlsbFJ1bGUod2luZFJ1
bGUpOworICAgICAgICBjLT5zZXRGaWxsUnVsZShzYXZlZEZpbGxSdWxlKTsKICAgICB9CiB9CiAK
IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzdHJva2VJbnRlcm5hbChjb25zdCBQYXRo
JiBwYXRoKQogewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7Cisg
ICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1
cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJl
dHVybjsKIAogICAgIC8vIElmIGdyYWRpZW50IHNpemUgaXMgemVybywgdGhlbiBwYWludCBub3Ro
aW5nLgotICAgIEdyYWRpZW50KiBncmFkaWVudCA9IGMtPnN0cm9rZUdyYWRpZW50KCk7CisgICAg
YXV0byogZ3JhZGllbnQgPSBjLT5zdHJva2VHcmFkaWVudCgpOwogICAgIGlmIChncmFkaWVudCAm
JiBncmFkaWVudC0+aXNaZXJvU2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTEwNjIsNyAr
MTA1Myw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzdHJva2VJbnRlcm5hbChj
b25zdCBQYXRoJiBwYXRoKQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y2xpcElu
dGVybmFsKGNvbnN0IFBhdGgmIHBhdGgsIFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxlKQogewotICAg
IEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRy
YXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFz
dGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCkBAIC0xMTA4LDEzICsxMDk5LDEzIEBAIGJv
b2wgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjppc1BvaW50SW5TdHJva2UoRE9NUGF0aCYgcGF0
aCwgZmxvYXQgeCwgZmxvYXQgeSkKIAogYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6Omlz
UG9pbnRJblBhdGhJbnRlcm5hbChjb25zdCBQYXRoJiBwYXRoLCBmbG9hdCB4LCBmbG9hdCB5LCBX
aW5kaW5nUnVsZSB3aW5kaW5nUnVsZSkKIHsKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3
aW5nQ29udGV4dCgpOworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICgh
YykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghc3RhdGUoKS5oYXNJbnZlcnRpYmxl
VHJhbnNmb3JtKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBGbG9hdFBvaW50IHRyYW5z
Zm9ybWVkUG9pbnQgPSBzdGF0ZSgpLnRyYW5zZm9ybS5pbnZlcnNlKCkudmFsdWVfb3IoQWZmaW5l
VHJhbnNmb3JtKCkpLm1hcFBvaW50KEZsb2F0UG9pbnQoeCwgeSkpOworICAgIGF1dG8gdHJhbnNm
b3JtZWRQb2ludCA9IHN0YXRlKCkudHJhbnNmb3JtLmludmVyc2UoKS52YWx1ZV9vcihBZmZpbmVU
cmFuc2Zvcm0oKSkubWFwUG9pbnQoRmxvYXRQb2ludCh4LCB5KSk7CiAKICAgICBpZiAoIXN0ZDo6
aXNmaW5pdGUodHJhbnNmb3JtZWRQb2ludC54KCkpIHx8ICFzdGQ6OmlzZmluaXRlKHRyYW5zZm9y
bWVkUG9pbnQueSgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTEyNCwxMyArMTExNSwx
MyBAQCBib29sIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6aXNQb2ludEluUGF0aEludGVybmFs
KGNvbnN0IFBhdGgmIHBhdGgsIGZsb2F0IHgsCiAKIGJvb2wgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjppc1BvaW50SW5TdHJva2VJbnRlcm5hbChjb25zdCBQYXRoJiBwYXRoLCBmbG9hdCB4LCBm
bG9hdCB5KQogewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7Cisg
ICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIEZsb2F0UG9pbnQgdHJhbnNmb3JtZWRQb2ludCA9IHN0
YXRlKCkudHJhbnNmb3JtLmludmVyc2UoKS52YWx1ZV9vcihBZmZpbmVUcmFuc2Zvcm0oKSkubWFw
UG9pbnQoRmxvYXRQb2ludCh4LCB5KSk7CisgICAgYXV0byB0cmFuc2Zvcm1lZFBvaW50ID0gc3Rh
dGUoKS50cmFuc2Zvcm0uaW52ZXJzZSgpLnZhbHVlX29yKEFmZmluZVRyYW5zZm9ybSgpKS5tYXBQ
b2ludChGbG9hdFBvaW50KHgsIHkpKTsKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUodHJhbnNmb3Jt
ZWRQb2ludC54KCkpIHx8ICFzdGQ6OmlzZmluaXRlKHRyYW5zZm9ybWVkUG9pbnQueSgpKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xMTQyLDcgKzExMzMsNyBAQCB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6Y2xlYXJSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRo
LCBmbG9hdCBoZQogewogICAgIGlmICghdmFsaWRhdGVSZWN0Rm9yQ2FudmFzKHgsIHksIHdpZHRo
LCBoZWlnaHQpKQogICAgICAgICByZXR1cm47Ci0gICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
ID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBjb250ZXh0ID0gZHJhd2luZ0NvbnRleHQo
KTsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIXN0YXRlKCku
aGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkKQEAgLTExODAsNyArMTE3MSw3IEBAIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpmaWxsUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0
aCwgZmxvYXQgaGVpCiAgICAgaWYgKCF2YWxpZGF0ZVJlY3RGb3JDYW52YXMoeCwgeSwgd2lkdGgs
IGhlaWdodCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRy
YXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYg
KCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFu
c2Zvcm0pCkBAIC0xMTg5LDcgKzExODAsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6ZmlsbFJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaQogICAg
IC8vIGZyb20gdGhlIEhUTUw1IENhbnZhcyBzcGVjOgogICAgIC8vIElmIHgwID0geDEgYW5kIHkw
ID0geTEsIHRoZW4gdGhlIGxpbmVhciBncmFkaWVudCBtdXN0IHBhaW50IG5vdGhpbmcKICAgICAv
LyBJZiB4MCA9IHgxIGFuZCB5MCA9IHkxIGFuZCByMCA9IHIxLCB0aGVuIHRoZSByYWRpYWwgZ3Jh
ZGllbnQgbXVzdCBwYWludCBub3RoaW5nCi0gICAgR3JhZGllbnQqIGdyYWRpZW50ID0gYy0+Zmls
bEdyYWRpZW50KCk7CisgICAgYXV0byogZ3JhZGllbnQgPSBjLT5maWxsR3JhZGllbnQoKTsKICAg
ICBpZiAoZ3JhZGllbnQgJiYgZ3JhZGllbnQtPmlzWmVyb1NpemUoKSkKICAgICAgICAgcmV0dXJu
OwogCkBAIC0xMjE4LDcgKzEyMDksNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
c3Ryb2tlUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaAogICAgIGlm
ICghdmFsaWRhdGVSZWN0Rm9yQ2FudmFzKHgsIHksIHdpZHRoLCBoZWlnaHQpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOworICAg
IGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJu
OwogICAgIGlmICghc3RhdGUoKS5oYXNJbnZlcnRpYmxlVHJhbnNmb3JtKQpAQCAtMTIyNyw3ICsx
MjE4LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnN0cm9rZVJlY3QoZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGgKICAgICAgICAgcmV0dXJuOwogCiAgICAg
Ly8gSWYgZ3JhZGllbnQgc2l6ZSBpcyB6ZXJvLCB0aGVuIHBhaW50IG5vdGhpbmcuCi0gICAgR3Jh
ZGllbnQqIGdyYWRpZW50ID0gYy0+c3Ryb2tlR3JhZGllbnQoKTsKKyAgICBhdXRvKiBncmFkaWVu
dCA9IGMtPnN0cm9rZUdyYWRpZW50KCk7CiAgICAgaWYgKGdyYWRpZW50ICYmIGdyYWRpZW50LT5p
c1plcm9TaXplKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTI1MSwxMSArMTI0MiwxMiBAQCB2
b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlUmVjdChmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCB3aWR0aCwgZmxvYXQgaAogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
c2V0U2hhZG93KGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IGJsdXIsIGNvbnN0IFN0
cmluZyYgY29sb3JTdHJpbmcsIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGFscGhhKQogewotICAgIENv
bG9yIGNvbG9yID0gcGFyc2VDb2xvck9yQ3VycmVudENvbG9yKGNvbG9yU3RyaW5nLCAmY2FudmFz
KCkpOwotICAgIGlmICghY29sb3JTdHJpbmcuaXNOdWxsKCkgJiYgIWNvbG9yLmlzVmFsaWQoKSkK
LSAgICAgICAgcmV0dXJuOwotICAgIGlmICghY29sb3IuaXNWYWxpZCgpKQotICAgICAgICBjb2xv
ciA9IENvbG9yOjp0cmFuc3BhcmVudDsKKyAgICBDb2xvciBjb2xvciA9IENvbG9yOjp0cmFuc3Bh
cmVudDsKKyAgICBpZiAoIWNvbG9yU3RyaW5nLmlzTnVsbCgpKSB7CisgICAgICAgIGNvbG9yID0g
cGFyc2VDb2xvck9yQ3VycmVudENvbG9yKGNvbG9yU3RyaW5nLCAmY2FudmFzKCkpOworICAgICAg
ICBpZiAoIWNvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAg
Ly8gRklYTUU6IFNob3VsZCBub3QgdXNlIFJHQkEzMiBoZXJlLgogICAgIHNldFNoYWRvdyhGbG9h
dFNpemUod2lkdGgsIGhlaWdodCksIGJsdXIsIGNvbG9yV2l0aE92ZXJyaWRlQWxwaGEoY29sb3Iu
cmdiKCksIGFscGhhKSk7CiB9CkBAIC0xMjk2LDcgKzEyODgsNyBAQCB2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6c2V0U2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYgb2Zmc2V0LCBmbG9hdCBi
bHVyLCBjbwogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6YXBwbHlTaGFkb3coKQog
ewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byog
YyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAKQEAg
LTEzMTMsMzUgKzEzMDUsMzMgQEAgYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNob3Vs
ZERyYXdTaGFkb3dzKCkgY29uc3QKICAgICByZXR1cm4gc3RhdGUoKS5zaGFkb3dDb2xvci5pc1Zp
c2libGUoKSAmJiAoc3RhdGUoKS5zaGFkb3dCbHVyIHx8ICFzdGF0ZSgpLnNoYWRvd09mZnNldC5p
c1plcm8oKSk7CiB9CiAKLWVudW0gSW1hZ2VTaXplVHlwZSB7Ci0gICAgSW1hZ2VTaXplQWZ0ZXJE
ZXZpY2VQaXhlbFJhdGlvLAotICAgIEltYWdlU2l6ZUJlZm9yZURldmljZVBpeGVsUmF0aW8KLX07
Ci0KLXN0YXRpYyBMYXlvdXRTaXplIHNpemUoSFRNTEltYWdlRWxlbWVudCYgaW1hZ2VFbGVtZW50
LCBJbWFnZVNpemVUeXBlIHNpemVUeXBlID0gSW1hZ2VTaXplQmVmb3JlRGV2aWNlUGl4ZWxSYXRp
bykKK2VudW0gY2xhc3MgSW1hZ2VTaXplVHlwZSB7IEFmdGVyRGV2aWNlUGl4ZWxSYXRpbywgQmVm
b3JlRGV2aWNlUGl4ZWxSYXRpbyB9Oworc3RhdGljIExheW91dFNpemUgc2l6ZShIVE1MSW1hZ2VF
bGVtZW50JiBlbGVtZW50LCBJbWFnZVNpemVUeXBlIHNpemVUeXBlID0gSW1hZ2VTaXplVHlwZTo6
QmVmb3JlRGV2aWNlUGl4ZWxSYXRpbykKIHsKICAgICBMYXlvdXRTaXplIHNpemU7Ci0gICAgaWYg
KENhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSA9IGltYWdlRWxlbWVudC5jYWNoZWRJbWFnZSgpKSB7
Ci0gICAgICAgIHNpemUgPSBjYWNoZWRJbWFnZS0+aW1hZ2VTaXplRm9yUmVuZGVyZXIoaW1hZ2VF
bGVtZW50LnJlbmRlcmVyKCksIDEuMGYpOyAvLyBGSVhNRTogTm90IHN1cmUgYWJvdXQgdGhpcy4K
LQotICAgICAgICBpZiAoc2l6ZVR5cGUgPT0gSW1hZ2VTaXplQWZ0ZXJEZXZpY2VQaXhlbFJhdGlv
ICYmIGlzPFJlbmRlckltYWdlPihpbWFnZUVsZW1lbnQucmVuZGVyZXIoKSkgJiYgY2FjaGVkSW1h
Z2UtPmltYWdlKCkgJiYgIWNhY2hlZEltYWdlLT5pbWFnZSgpLT5oYXNSZWxhdGl2ZVdpZHRoKCkp
Ci0gICAgICAgICAgICBzaXplLnNjYWxlKGRvd25jYXN0PFJlbmRlckltYWdlPigqaW1hZ2VFbGVt
ZW50LnJlbmRlcmVyKCkpLmltYWdlRGV2aWNlUGl4ZWxSYXRpbygpKTsKKyAgICBpZiAoYXV0byog
Y2FjaGVkSW1hZ2UgPSBlbGVtZW50LmNhY2hlZEltYWdlKCkpIHsKKyAgICAgICAgc2l6ZSA9IGNh
Y2hlZEltYWdlLT5pbWFnZVNpemVGb3JSZW5kZXJlcihlbGVtZW50LnJlbmRlcmVyKCksIDEuMGYp
OyAvLyBGSVhNRTogTm90IHN1cmUgYWJvdXQgdGhpcy4KKyAgICAgICAgaWYgKHNpemVUeXBlID09
IEltYWdlU2l6ZVR5cGU6OkFmdGVyRGV2aWNlUGl4ZWxSYXRpbyAmJiBpczxSZW5kZXJJbWFnZT4o
ZWxlbWVudC5yZW5kZXJlcigpKSAmJiBjYWNoZWRJbWFnZS0+aW1hZ2UoKSAmJiAhY2FjaGVkSW1h
Z2UtPmltYWdlKCktPmhhc1JlbGF0aXZlV2lkdGgoKSkKKyAgICAgICAgICAgIHNpemUuc2NhbGUo
ZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCplbGVtZW50LnJlbmRlcmVyKCkpLmltYWdlRGV2aWNlUGl4
ZWxSYXRpbygpKTsKICAgICB9CiAgICAgcmV0dXJuIHNpemU7CiB9CiAKLXN0YXRpYyBGbG9hdFNp
emUgc2l6ZShIVE1MQ2FudmFzRWxlbWVudCYgY2FudmFzRWxlbWVudCkKK3N0YXRpYyBpbmxpbmUg
RmxvYXRTaXplIHNpemUoSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZhc0VsZW1lbnQpCiB7Ci0gICAg
cmV0dXJuIEZsb2F0U2l6ZShjYW52YXNFbGVtZW50LnNpemUoKSk7CisgICAgcmV0dXJuIGNhbnZh
c0VsZW1lbnQuc2l6ZSgpOwogfQogCiAjaWYgRU5BQkxFKFZJREVPKQotc3RhdGljIEZsb2F0U2l6
ZSBzaXplKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvKQorCitzdGF0aWMgaW5saW5lIEZsb2F0U2l6
ZSBzaXplKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvKQogewotICAgIGlmIChNZWRpYVBsYXllciog
cGxheWVyID0gdmlkZW8ucGxheWVyKCkpCi0gICAgICAgIHJldHVybiBwbGF5ZXItPm5hdHVyYWxT
aXplKCk7Ci0gICAgcmV0dXJuIEZsb2F0U2l6ZSgpOworICAgIGF1dG8qIHBsYXllciA9IHZpZGVv
LnBsYXllcigpOworICAgIGlmICghcGxheWVyKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJl
dHVybiBwbGF5ZXItPm5hdHVyYWxTaXplKCk7CiB9CisKICNlbmRpZgogCiBzdGF0aWMgaW5saW5l
IEZsb2F0UmVjdCBub3JtYWxpemVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKQEAgLTEzNTYs
OCArMTM0Niw4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
ZHJhd0ltYWdlKENhbnZhc0ltYWdlU291cmNlJiYgaW1hZ2UsCiB7CiAgICAgcmV0dXJuIFdURjo6
c3dpdGNoT24oaW1hZ2UsCiAgICAgICAgIFsmXSAoUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+JiBp
bWFnZUVsZW1lbnQpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKLSAgICAgICAgICAgIExheW91dFNp
emUgZGVzdFJlY3RTaXplID0gc2l6ZSgqaW1hZ2VFbGVtZW50LCBJbWFnZVNpemVBZnRlckRldmlj
ZVBpeGVsUmF0aW8pOwotICAgICAgICAgICAgTGF5b3V0U2l6ZSBzb3VyY2VSZWN0U2l6ZSA9IHNp
emUoKmltYWdlRWxlbWVudCwgSW1hZ2VTaXplQmVmb3JlRGV2aWNlUGl4ZWxSYXRpbyk7CisgICAg
ICAgICAgICBMYXlvdXRTaXplIGRlc3RSZWN0U2l6ZSA9IHNpemUoKmltYWdlRWxlbWVudCwgSW1h
Z2VTaXplVHlwZTo6QWZ0ZXJEZXZpY2VQaXhlbFJhdGlvKTsKKyAgICAgICAgICAgIExheW91dFNp
emUgc291cmNlUmVjdFNpemUgPSBzaXplKCppbWFnZUVsZW1lbnQsIEltYWdlU2l6ZVR5cGU6OkJl
Zm9yZURldmljZVBpeGVsUmF0aW8pOwogICAgICAgICAgICAgcmV0dXJuIHRoaXMtPmRyYXdJbWFn
ZSgqaW1hZ2VFbGVtZW50LCBGbG9hdFJlY3QgeyAwLCAwLCBzb3VyY2VSZWN0U2l6ZS53aWR0aCgp
LCBzb3VyY2VSZWN0U2l6ZS5oZWlnaHQoKSB9LCBGbG9hdFJlY3QgeyBkeCwgZHksIGRlc3RSZWN0
U2l6ZS53aWR0aCgpLCBkZXN0UmVjdFNpemUuaGVpZ2h0KCkgfSk7CiAgICAgICAgIH0sCiAgICAg
ICAgIFsmXSAoYXV0byYgZWxlbWVudCkgLT4gRXhjZXB0aW9uT3I8dm9pZD4gewpAQCAtMTQwNiw3
ICsxMzk2LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpk
cmF3SW1hZ2UoSFRNTEltYWdlRWxlbWVudCYgaW1hZ2VFbGUKICAgICBGbG9hdFJlY3Qgbm9ybWFs
aXplZFNyY1JlY3QgPSBub3JtYWxpemVSZWN0KHNyY1JlY3QpOwogICAgIEZsb2F0UmVjdCBub3Jt
YWxpemVkRHN0UmVjdCA9IG5vcm1hbGl6ZVJlY3QoZHN0UmVjdCk7CiAKLSAgICBGbG9hdFJlY3Qg
aW1hZ2VSZWN0ID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZShpbWFnZUVsZW1lbnQsIElt
YWdlU2l6ZUJlZm9yZURldmljZVBpeGVsUmF0aW8pKTsKKyAgICBGbG9hdFJlY3QgaW1hZ2VSZWN0
ID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZShpbWFnZUVsZW1lbnQsIEltYWdlU2l6ZVR5
cGU6OkJlZm9yZURldmljZVBpeGVsUmF0aW8pKTsKICAgICBpZiAoIXNyY1JlY3Qud2lkdGgoKSB8
fCAhc3JjUmVjdC5oZWlnaHQoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOREVYX1NJ
WkVfRVJSIH07CiAKQEAgLTE1NzQsNyArMTU2NCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdlKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvLCBj
CiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdlRnJvbVJlY3QoSFRNTElt
YWdlRWxlbWVudCYgaW1hZ2VFbGVtZW50LCBmbG9hdCBzeCwgZmxvYXQgc3ksIGZsb2F0IHN3LCBm
bG9hdCBzaCwgZmxvYXQgZHgsIGZsb2F0IGR5LCBmbG9hdCBkdywgZmxvYXQgZGgsIGNvbnN0IFN0
cmluZyYgY29tcG9zaXRlT3BlcmF0aW9uKQogewogICAgIENvbXBvc2l0ZU9wZXJhdG9yIG9wOwot
ICAgIEJsZW5kTW9kZSBibGVuZE9wID0gQmxlbmRNb2RlTm9ybWFsOworICAgIGF1dG8gYmxlbmRP
cCA9IEJsZW5kTW9kZU5vcm1hbDsKICAgICBpZiAoIXBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVy
YXRvcihjb21wb3NpdGVPcGVyYXRpb24sIG9wLCBibGVuZE9wKSB8fCBibGVuZE9wICE9IEJsZW5k
TW9kZU5vcm1hbCkKICAgICAgICAgb3AgPSBDb21wb3NpdGVTb3VyY2VPdmVyOwogICAgIGRyYXdJ
bWFnZShpbWFnZUVsZW1lbnQsIEZsb2F0UmVjdCB7IHN4LCBzeSwgc3csIHNoIH0sIEZsb2F0UmVj
dCB7IGR4LCBkeSwgZHcsIGRoIH0sIG9wLCBCbGVuZE1vZGVOb3JtYWwpOwpAQCAtMTU5MiwxNCAr
MTU4MiwxMyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0Q29tcG9zaXRlT3Bl
cmF0aW9uKGNvbnN0IFN0cmluZyYgb3BlcmF0aW9uKQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6Y2xlYXJDYW52YXMoKQogewotICAgIEZsb2F0UmVjdCBjYW52YXNSZWN0KDAsIDAs
IGNhbnZhcygpLndpZHRoKCksIGNhbnZhcygpLmhlaWdodCgpKTsKLSAgICBHcmFwaGljc0NvbnRl
eHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgp
OwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJuOwogCiAgICAgYy0+c2F2ZSgpOwogICAgIGMt
PnNldENUTShjYW52YXMoKS5iYXNlVHJhbnNmb3JtKCkpOwotICAgIGMtPmNsZWFyUmVjdChjYW52
YXNSZWN0KTsKKyAgICBjLT5jbGVhclJlY3QoRmxvYXRSZWN0KDAsIDAsIGNhbnZhcygpLndpZHRo
KCksIGNhbnZhcygpLmhlaWdodCgpKSk7CiAgICAgYy0+cmVzdG9yZSgpOwogfQogCkBAIC0xNjQ4
LDcgKzE2MzcsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y29tcG9zaXRlQnVm
ZmVyKEltYWdlQnVmZmVyJiBidWZmZXIsIGNvbnN0IEludFJlYwogICAgIEludFJlY3QgY2FudmFz
UmVjdCgwLCAwLCBjYW52YXMoKS53aWR0aCgpLCBjYW52YXMoKS5oZWlnaHQoKSk7CiAgICAgY2Fu
dmFzUmVjdCA9IGNhbnZhcygpLmJhc2VUcmFuc2Zvcm0oKS5tYXBSZWN0KGNhbnZhc1JlY3QpOwog
Ci0gICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBj
ID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKIApAQCAt
MTY3OSwxNyArMTY2OCwxNyBAQCB0ZW1wbGF0ZTxjbGFzcyBUPiB2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6ZnVsbENhbnZhc0NvbXBvc2l0ZWREcmF3SW1hZ2UoVAogICAgIEFTU0VSVChp
c0Z1bGxDYW52YXNDb21wb3NpdGVNb2RlKG9wKSk7CiAKICAgICBJbnRTaXplIGNyb3BwZWRPZmZz
ZXQ7Ci0gICAgSW50UmVjdCBidWZmZXJSZWN0ID0gY2FsY3VsYXRlQ29tcG9zaXRpbmdCdWZmZXJS
ZWN0KGRlc3QsICZjcm9wcGVkT2Zmc2V0KTsKKyAgICBhdXRvIGJ1ZmZlclJlY3QgPSBjYWxjdWxh
dGVDb21wb3NpdGluZ0J1ZmZlclJlY3QoZGVzdCwgJmNyb3BwZWRPZmZzZXQpOwogICAgIGlmIChi
dWZmZXJSZWN0LmlzRW1wdHkoKSkgewogICAgICAgICBjbGVhckNhbnZhcygpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXIg
PSBjcmVhdGVDb21wb3NpdGluZ0J1ZmZlcihidWZmZXJSZWN0KTsKKyAgICBhdXRvIGJ1ZmZlciA9
IGNyZWF0ZUNvbXBvc2l0aW5nQnVmZmVyKGJ1ZmZlclJlY3QpOwogICAgIGlmICghYnVmZmVyKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4
dCgpOworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAg
ICAgcmV0dXJuOwogCkBAIC0xNzIwLDcgKzE3MDksNyBAQCBFeGNlcHRpb25PcjxSZWY8Q2FudmFz
R3JhZGllbnQ+PiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZUxpbmVhckdyYWRpZW50
KAogICAgIGlmICghc3RkOjppc2Zpbml0ZSh4MCkgfHwgIXN0ZDo6aXNmaW5pdGUoeTApIHx8ICFz
dGQ6OmlzZmluaXRlKHgxKSB8fCAhc3RkOjppc2Zpbml0ZSh5MSkpCiAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOT1RfU1VQUE9SVEVEX0VSUiB9OwogCi0gICAgUmVmPENhbnZhc0dyYWRpZW50
PiBncmFkaWVudCA9IENhbnZhc0dyYWRpZW50OjpjcmVhdGUoRmxvYXRQb2ludCh4MCwgeTApLCBG
bG9hdFBvaW50KHgxLCB5MSkpOworICAgIGF1dG8gZ3JhZGllbnQgPSBDYW52YXNHcmFkaWVudDo6
Y3JlYXRlKEZsb2F0UG9pbnQoeDAsIHkwKSwgRmxvYXRQb2ludCh4MSwgeTEpKTsKICAgICBwcmVw
YXJlR3JhZGllbnRGb3JEYXNoYm9hcmQoZ3JhZGllbnQuZ2V0KCkpOwogICAgIHJldHVybiBXVEZN
b3ZlKGdyYWRpZW50KTsKIH0KQEAgLTE3MzMsNyArMTcyMiw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxD
YW52YXNHcmFkaWVudD4+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y3JlYXRlUmFkaWFsR3Jh
ZGllbnQoCiAgICAgaWYgKHIwIDwgMCB8fCByMSA8IDApCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJTkRFWF9TSVpFX0VSUiB9OwogCi0gICAgUmVmPENhbnZhc0dyYWRpZW50PiBncmFkaWVu
dCA9IENhbnZhc0dyYWRpZW50OjpjcmVhdGUoRmxvYXRQb2ludCh4MCwgeTApLCByMCwgRmxvYXRQ
b2ludCh4MSwgeTEpLCByMSk7CisgICAgYXV0byBncmFkaWVudCA9IENhbnZhc0dyYWRpZW50Ojpj
cmVhdGUoRmxvYXRQb2ludCh4MCwgeTApLCByMCwgRmxvYXRQb2ludCh4MSwgeTEpLCByMSk7CiAg
ICAgcHJlcGFyZUdyYWRpZW50Rm9yRGFzaGJvYXJkKGdyYWRpZW50LmdldCgpKTsKICAgICByZXR1
cm4gV1RGTW92ZShncmFkaWVudCk7CiB9CkBAIC0xNzQ1LDcgKzE3MzQsNyBAQCBFeGNlcHRpb25P
cjxSZWZQdHI8Q2FudmFzUGF0dGVybj4+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y3JlYXRl
UGF0dGVybihDYW52YQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU1lOVEFYX0VSUiB9Owog
CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24oaW1hZ2UsCi0gICAgICAgIFsmXShhdXRvJiBlbGVt
ZW50KSAtPiBFeGNlcHRpb25PcjxSZWZQdHI8Q2FudmFzUGF0dGVybj4+IHsgcmV0dXJuIHRoaXMt
PmNyZWF0ZVBhdHRlcm4oKmVsZW1lbnQsIHJlcGVhdFgsIHJlcGVhdFkpOyB9CisgICAgICAgIFsm
XSAoYXV0byYgZWxlbWVudCkgLT4gRXhjZXB0aW9uT3I8UmVmUHRyPENhbnZhc1BhdHRlcm4+PiB7
IHJldHVybiB0aGlzLT5jcmVhdGVQYXR0ZXJuKCplbGVtZW50LCByZXBlYXRYLCByZXBlYXRZKTsg
fQogICAgICk7CiB9CiAKQEAgLTE4MTIsNyArMTgwMSw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpkaWREcmF3RW50aXJlQ2FudmFzKCkKIAogdm9pZCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OmRpZERyYXcoY29uc3QgRmxvYXRSZWN0JiByLCB1bnNpZ25lZCBvcHRpb25zKQog
ewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byog
YyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAg
aWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCkBAIC0xODY2LDE5ICsxODU1LDE3
IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRUcmFja3NEaXNwbGF5TGlzdFJl
cGxheShib29sIHRyYWNrc0Rpc3BsYXlMaXN0CiAKIFN0cmluZyBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OmRpc3BsYXlMaXN0QXNUZXh0KERpc3BsYXlMaXN0OjpBc1RleHRGbGFncyBmbGFncykg
Y29uc3QKIHsKLSAgICBpZiAobV9yZWNvcmRpbmdDb250ZXh0KQotICAgICAgICByZXR1cm4gbV9y
ZWNvcmRpbmdDb250ZXh0LT5kaXNwbGF5TGlzdC5hc1RleHQoZmxhZ3MpOwotICAgIAotICAgIHJl
dHVybiBTdHJpbmcoKTsKKyAgICBpZiAoIW1fcmVjb3JkaW5nQ29udGV4dCkKKyAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICByZXR1cm4gbV9yZWNvcmRpbmdDb250ZXh0LT5kaXNwbGF5TGlzdC5hc1Rl
eHQoZmxhZ3MpOwogfQogCiBTdHJpbmcgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpyZXBsYXlE
aXNwbGF5TGlzdEFzVGV4dChEaXNwbGF5TGlzdDo6QXNUZXh0RmxhZ3MgZmxhZ3MpIGNvbnN0CiB7
Ci0gICAgYXV0byBpdCA9IGNvbnRleHREaXNwbGF5TGlzdE1hcCgpLmZpbmQodGhpcyk7Ci0gICAg
aWYgKGl0ICE9IGNvbnRleHREaXNwbGF5TGlzdE1hcCgpLmVuZCgpKQotICAgICAgICByZXR1cm4g
aXQtPnZhbHVlLT5hc1RleHQoZmxhZ3MpOwotCi0gICAgcmV0dXJuIFN0cmluZygpOworICAgIGF1
dG8qIGRpc3BsYXlMaXN0ID0gY29udGV4dERpc3BsYXlMaXN0TWFwKCkuZ2V0KHRoaXMpOworICAg
IGlmICghZGlzcGxheUxpc3QpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIGRpc3Bs
YXlMaXN0LT5hc1RleHQoZmxhZ3MpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKQpAQCAtMTg4Niw3ICsxODczLDcgQEAg
dm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2Fu
dmFzKCkKICAgICBpZiAoVU5MSUtFTFkobV91c2VzRGlzcGxheUxpc3REcmF3aW5nKSkgewogICAg
ICAgICBpZiAoIW1fcmVjb3JkaW5nQ29udGV4dCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgCisKICAgICAgICAgRmxvYXRSZWN0IGNsaXAoRmxvYXRQb2ludDo6emVybygpLCBjYW52YXMo
KS5zaXplKCkpOwogICAgICAgICBEaXNwbGF5TGlzdDo6UmVwbGF5ZXIgcmVwbGF5ZXIoKmNhbnZh
cygpLmRyYXdpbmdDb250ZXh0KCksIG1fcmVjb3JkaW5nQ29udGV4dC0+ZGlzcGxheUxpc3QpOwog
CkBAIC0xOTA1LDcgKzE4OTIsNiBAQCBHcmFwaGljc0NvbnRleHQqIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6ZHJhd2luZ0NvbnRleHQoKSBjb25zdAogICAgIGlmIChVTkxJS0VMWShtX3VzZXNE
aXNwbGF5TGlzdERyYXdpbmcpKSB7CiAgICAgICAgIGlmICghbV9yZWNvcmRpbmdDb250ZXh0KQog
ICAgICAgICAgICAgbV9yZWNvcmRpbmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxEaXNwbGF5
TGlzdERyYXdpbmdDb250ZXh0PihGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBjYW52YXMo
KS5zaXplKCkpKTsKLQogICAgICAgICByZXR1cm4gJm1fcmVjb3JkaW5nQ29udGV4dC0+Y29udGV4
dDsKICAgICB9CiAKQEAgLTE5MTQsMTIgKzE5MDAsMTAgQEAgR3JhcGhpY3NDb250ZXh0KiBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdpbmdDb250ZXh0KCkgY29uc3QKIAogc3RhdGljIFJl
ZlB0cjxJbWFnZURhdGE+IGNyZWF0ZUVtcHR5SW1hZ2VEYXRhKGNvbnN0IEludFNpemUmIHNpemUp
CiB7Ci0gICAgaWYgKFJlZlB0cjxJbWFnZURhdGE+IGRhdGEgPSBJbWFnZURhdGE6OmNyZWF0ZShz
aXplKSkgeworICAgIGF1dG8gZGF0YSA9IEltYWdlRGF0YTo6Y3JlYXRlKHNpemUpOworICAgIGlm
IChkYXRhKQogICAgICAgICBkYXRhLT5kYXRhKCktPnplcm9GaWxsKCk7Ci0gICAgICAgIHJldHVy
biBkYXRhOwotICAgIH0KLQotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBkYXRhOwog
fQogCiBFeGNlcHRpb25PcjxSZWZQdHI8SW1hZ2VEYXRhPj4gQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpjcmVhdGVJbWFnZURhdGEoSW1hZ2VEYXRhKiBpbWFnZURhdGEpIGNvbnN0CkBAIC0yMDM4
LDExICsyMDIyLDkgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdGb2N1c0lm
TmVlZGVkKERPTVBhdGgmIHBhdGgsIEVsZW1lbnQmIGVsZW1lbnQKIAogdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OmRyYXdGb2N1c0lmTmVlZGVkSW50ZXJuYWwoY29uc3QgUGF0aCYgcGF0
aCwgRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBk
cmF3aW5nQ29udGV4dCgpOwotCisgICAgYXV0byogY29udGV4dCA9IGRyYXdpbmdDb250ZXh0KCk7
CiAgICAgaWYgKCFlbGVtZW50LmZvY3VzZWQoKSB8fCAhc3RhdGUoKS5oYXNJbnZlcnRpYmxlVHJh
bnNmb3JtIHx8IHBhdGguaXNFbXB0eSgpIHx8ICFlbGVtZW50LmlzRGVzY2VuZGFudE9mKGNhbnZh
cygpKSB8fCAhY29udGV4dCkKICAgICAgICAgcmV0dXJuOwotCiAgICAgY29udGV4dC0+ZHJhd0Zv
Y3VzUmluZyhwYXRoLCAxLCAxLCBSZW5kZXJUaGVtZTo6Zm9jdXNSaW5nQ29sb3IoKSk7CiB9CiAK
QEAgLTIyNzAsNyArMjI1Miw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NwYWNlVGhhdE5lZWRz
UmVwbGFjaW5nKFVDaGFyIGMpCiBzdGF0aWMgdm9pZCBub3JtYWxpemVTcGFjZXMoU3RyaW5nJiB0
ZXh0KQogewogICAgIHNpemVfdCBpID0gdGV4dC5maW5kKGlzU3BhY2VUaGF0TmVlZHNSZXBsYWNp
bmcpOwotCiAgICAgaWYgKGkgPT0gbm90Rm91bmQpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjMw
MSwxMCArMjI4MiwxMCBAQCBSZWY8VGV4dE1ldHJpY3M+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6bWVhc3VyZVRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQogCiB2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0IHgs
IGZsb2F0IHksIGJvb2wgZmlsbCwgc3RkOjpvcHRpb25hbDxmbG9hdD4gbWF4V2lkdGgpCiB7Ci0g
ICAgY29uc3QgYXV0byYgZm9udFByb3h5ID0gdGhpcy0+Zm9udFByb3h5KCk7Ci0gICAgY29uc3Qg
Rm9udE1ldHJpY3MmIGZvbnRNZXRyaWNzID0gZm9udFByb3h5LmZvbnRNZXRyaWNzKCk7CisgICAg
YXV0byYgZm9udFByb3h5ID0gdGhpcy0+Zm9udFByb3h5KCk7CisgICAgY29uc3QgYXV0byYgZm9u
dE1ldHJpY3MgPSBmb250UHJveHkuZm9udE1ldHJpY3MoKTsKIAotICAgIEdyYXBoaWNzQ29udGV4
dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7
CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVy
dGlibGVUcmFuc2Zvcm0pCkBAIC0yMzE1LDcgKzIyOTYsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0IHgs
IGZsbwogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZiBncmFkaWVudCBzaXplIGlzIHplcm8s
IHRoZW4gcGFpbnQgbm90aGluZy4KLSAgICBHcmFkaWVudCogZ3JhZGllbnQgPSBjLT5zdHJva2VH
cmFkaWVudCgpOworICAgIGF1dG8qIGdyYWRpZW50ID0gYy0+c3Ryb2tlR3JhZGllbnQoKTsKICAg
ICBpZiAoIWZpbGwgJiYgZ3JhZGllbnQgJiYgZ3JhZGllbnQtPmlzWmVyb1NpemUoKSkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC0yMzI5LDcgKzIzMTAsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0IHgsIGZs
bwogICAgIC8vIEZJWE1FOiBOZWVkIHRvIHR1cm4gb2ZmIGZvbnQgc21vb3RoaW5nLgogCiAgICAg
Y29uc3QgUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGU7Ci0gICAgVGV4dERpcmVjdGlvbiBkaXJl
Y3Rpb24gPSB0b1RleHREaXJlY3Rpb24oc3RhdGUoKS5kaXJlY3Rpb24sICZjb21wdXRlZFN0eWxl
KTsKKyAgICBhdXRvIGRpcmVjdGlvbiA9IHRvVGV4dERpcmVjdGlvbihzdGF0ZSgpLmRpcmVjdGlv
biwgJmNvbXB1dGVkU3R5bGUpOwogICAgIGJvb2wgaXNSVEwgPSBkaXJlY3Rpb24gPT0gUlRMOwog
ICAgIGJvb2wgb3ZlcnJpZGUgPSBjb21wdXRlZFN0eWxlID8gaXNPdmVycmlkZShjb21wdXRlZFN0
eWxlLT51bmljb2RlQmlkaSgpKSA6IGZhbHNlOwogCkBAIC0yMzU5LDcgKzIzNDAsNyBAQCB2b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcm
IHRleHQsIGZsb2F0IHgsIGZsbwogICAgIGJvb2wgdXNlTWF4V2lkdGggPSBtYXhXaWR0aCAmJiBt
YXhXaWR0aC52YWx1ZSgpIDwgZm9udFdpZHRoOwogICAgIGZsb2F0IHdpZHRoID0gdXNlTWF4V2lk
dGggPyBtYXhXaWR0aC52YWx1ZSgpIDogZm9udFdpZHRoOwogCi0gICAgVGV4dEFsaWduIGFsaWdu
ID0gc3RhdGUoKS50ZXh0QWxpZ247CisgICAgYXV0byBhbGlnbiA9IHN0YXRlKCkudGV4dEFsaWdu
OwogICAgIGlmIChhbGlnbiA9PSBTdGFydFRleHRBbGlnbikKICAgICAgICAgYWxpZ24gPSBpc1JU
TCA/IFJpZ2h0VGV4dEFsaWduIDogTGVmdFRleHRBbGlnbjsKICAgICBlbHNlIGlmIChhbGlnbiA9
PSBFbmRUZXh0QWxpZ24pCkBAIC0yMzg1LDcgKzIzNjYsNiBAQCB2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0IHgs
IGZsbwogI2lmIFVTRShDRykKICAgICBjb25zdCBDYW52YXNTdHlsZSYgZHJhd1N0eWxlID0gZmls
bCA/IHN0YXRlKCkuZmlsbFN0eWxlIDogc3RhdGUoKS5zdHJva2VTdHlsZTsKICAgICBpZiAoZHJh
d1N0eWxlLmNhbnZhc0dyYWRpZW50KCkgfHwgZHJhd1N0eWxlLmNhbnZhc1BhdHRlcm4oKSkgewot
CiAgICAgICAgIEludFJlY3QgbWFza1JlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KHRleHRSZWN0KTsK
IAogICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgc2hhZG93LCB3ZSBuZWVkIHRvIGRyYXcgaXQgYmVm
b3JlIHRoZSBtYXNrIG9wZXJhdGlvbi4KQEAgLTIzOTQsNyArMjM3NCw3IEBAIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwg
ZmxvYXQgeCwgZmxvCiAgICAgICAgIGlmIChzaG91bGREcmF3U2hhZG93cygpKSB7CiAgICAgICAg
ICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmMpOwogCi0gICAgICAg
ICAgICBGbG9hdFNpemUgb2Zmc2V0ID0gRmxvYXRTaXplKDAsIDIgKiBtYXNrUmVjdC5oZWlnaHQo
KSk7CisgICAgICAgICAgICBGbG9hdFNpemUgb2Zmc2V0KDAsIDIgKiBtYXNrUmVjdC5oZWlnaHQo
KSk7CiAKICAgICAgICAgICAgIEZsb2F0U2l6ZSBzaGFkb3dPZmZzZXQ7CiAgICAgICAgICAgICBm
bG9hdCBzaGFkb3dSYWRpdXM7CkBAIC0yNDIyLDcgKzI0MDIsNyBAQCB2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0
IHgsIGZsbwogICAgICAgICBpZiAoIW1hc2tJbWFnZSkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICBHcmFwaGljc0NvbnRleHQmIG1hc2tJbWFnZUNvbnRleHQgPSBtYXNrSW1hZ2UtPmNv
bnRleHQoKTsKKyAgICAgICAgYXV0byYgbWFza0ltYWdlQ29udGV4dCA9IG1hc2tJbWFnZS0+Y29u
dGV4dCgpOwogCiAgICAgICAgIGlmIChmaWxsKQogICAgICAgICAgICAgbWFza0ltYWdlQ29udGV4
dC5zZXRGaWxsQ29sb3IoQ29sb3I6OmJsYWNrKTsKQEAgLTI0NDUsNyArMjQyNSw3IEBAIHZvaWQg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYg
dGV4dCwgZmxvYXQgeCwgZmxvCiAKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBz
dGF0ZVNhdmVyKCpjKTsKICAgICAgICAgYy0+Y2xpcFRvSW1hZ2VCdWZmZXIoKm1hc2tJbWFnZSwg
bWFza1JlY3QpOwotICAgICAgICBkcmF3U3R5bGUuYXBwbHlGaWxsQ29sb3IoYyk7CisgICAgICAg
IGRyYXdTdHlsZS5hcHBseUZpbGxDb2xvcigqYyk7CiAgICAgICAgIGMtPmZpbGxSZWN0KG1hc2tS
ZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI0ODcsMjcgKzI0NjcsMjcgQEAgdm9p
ZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmluZmxhdGVTdHJva2VSZWN0KEZsb2F0UmVjdCYg
cmVjdCkgY29uc3QKICAgICAgICAgZGVsdGEgKj0gc3RhdGUoKS5taXRlckxpbWl0OwogICAgIGVs
c2UgaWYgKHN0YXRlKCkubGluZUNhcCA9PSBTcXVhcmVDYXApCiAgICAgICAgIGRlbHRhICo9IHJv
b3QyOwotCiAgICAgcmVjdC5pbmZsYXRlKGRlbHRhKTsKIH0KIAogYXV0byBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OmZvbnRQcm94eSgpIC0+IGNvbnN0IEZvbnRQcm94eSYKIHsKICAgICBjYW52
YXMoKS5kb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKLQogICAgIGlmICghc3RhdGUo
KS5mb250LnJlYWxpemVkKCkpCiAgICAgICAgIHNldEZvbnQoc3RhdGUoKS51bnBhcnNlZEZvbnQp
OwogICAgIHJldHVybiBzdGF0ZSgpLmZvbnQ7CiB9CiAKICNpZiBFTkFCTEUoQUNDRUxFUkFURURf
MkRfQ0FOVkFTKQorCiBQbGF0Zm9ybUxheWVyKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnBs
YXRmb3JtTGF5ZXIoKSBjb25zdAogewotICAgIHJldHVybiBjYW52YXMoKS5idWZmZXIoKSA/IGNh
bnZhcygpLmJ1ZmZlcigpLT5wbGF0Zm9ybUxheWVyKCkgOiAwOworICAgIHJldHVybiBjYW52YXMo
KS5idWZmZXIoKSA/IGNhbnZhcygpLmJ1ZmZlcigpLT5wbGF0Zm9ybUxheWVyKCkgOiBudWxscHRy
OwogfQorCiAjZW5kaWYKIAotc3RhdGljIEludGVycG9sYXRpb25RdWFsaXR5IHNtb290aGluZ1Rv
SW50ZXJwb2xhdGlvblF1YWxpdHkoQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpJbWFnZVNtb290
aGluZ1F1YWxpdHkgcXVhbGl0eSkKK3N0YXRpYyBpbmxpbmUgSW50ZXJwb2xhdGlvblF1YWxpdHkg
c21vb3RoaW5nVG9JbnRlcnBvbGF0aW9uUXVhbGl0eShDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OkltYWdlU21vb3RoaW5nUXVhbGl0eSBxdWFsaXR5KQogewogICAgIHN3aXRjaCAocXVhbGl0eSkg
ewogICAgIGNhc2UgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpJbWFnZVNtb290aGluZ1F1YWxp
dHk6OkxvdzoKQEAgLTI1NTQsNyArMjUzNCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpzZXRJbWFnZVNtb290aGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogCiAgICAgcmVhbGl6
ZVNhdmVzKCk7CiAgICAgbW9kaWZpYWJsZVN0YXRlKCkuaW1hZ2VTbW9vdGhpbmdFbmFibGVkID0g
ZW5hYmxlZDsKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOworICAg
IGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmIChjKQogICAgICAgICBjLT5zZXRJ
bWFnZUludGVycG9sYXRpb25RdWFsaXR5KGVuYWJsZWQgPyBzbW9vdGhpbmdUb0ludGVycG9sYXRp
b25RdWFsaXR5KHN0YXRlKCkuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5KSA6IEludGVycG9sYXRpb25O
b25lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmgKaW5kZXggNTRiZTlkMDBjZjU4MjNiMTZkMTY3NjhhZGFlNTNlNWE2
NTMxZTYwOS4uZTM5ZjFiNjcyODllYjk2M2I2NDc0MmU4YzQyMzRlZDEwYzFlMjA3OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmgKQEAgLTM0MCw5ICszNDAsNyBAQCBwcml2YXRlOgogICAgIC8vIFRoZXJlZm9yZSwgYWxs
IGZvbnQgb3BlcmF0aW9ucyBtdXN0IHBhc3MgdGhyb3VnaCB0aGUgU3RhdGUuCiAgICAgY29uc3Qg
Rm9udFByb3h5JiBmb250UHJveHkoKTsKIAotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkK
ICAgICB2b2lkIGNsZWFyUGF0aEZvckRhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUo
KTsKLSNlbmRpZgogCiAgICAgdm9pZCBiZWdpbkNvbXBvc2l0ZUxheWVyKCk7CiAgICAgdm9pZCBl
bmRDb21wb3NpdGVMYXllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5
bGUuY3BwCmluZGV4IDlhYTBhMDUyZjQ2MWFkNmIyYzVlYWM2YWZlYzMyMzE1NjVlMDIxMzYuLjlk
YzhmMDQ4ZDc2ZjhjOTJiYmEyZTE5OTZkYThkN2FkOGEyZWIzNmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA4IEVyaWMgU2VpZGVsIDxlcmlj
QHdlYmtpdC5vcmc+CkBAIC01Myw3ICs1Myw2IEBAIHN0YXRpYyBDb2xvciBwYXJzZUNvbG9yKGNv
bnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIERvY3VtZW50KiBkb2N1bWVudCA9IG51bGxwdHIpCiAg
ICAgQ29sb3IgY29sb3IgPSBDU1NQYXJzZXI6OnBhcnNlQ29sb3IoY29sb3JTdHJpbmcpOwogICAg
IGlmIChjb2xvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBjb2xvcjsKLQogICAgIHJldHVy
biBDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3IoY29sb3JTdHJpbmcsIGRvY3VtZW50KTsKIH0K
IApAQCAtNzYsMjA4ICs3NSwxNTAgQEAgQ29sb3IgcGFyc2VDb2xvck9yQ3VycmVudENvbG9yKGNv
bnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIEhUTUxDYW52YXNFbGVtZW50KiBjYW4KIH0KIAogQ2Fu
dmFzU3R5bGU6OkNhbnZhc1N0eWxlKENvbG9yIGNvbG9yKQotICAgIDogbV9jb2xvcihjb2xvcikK
LSAgICAsIG1fdHlwZShSR0JBKQorICAgIDogbV9zdHlsZShjb2xvcikKIHsKIH0KIAogQ2FudmFz
U3R5bGU6OkNhbnZhc1N0eWxlKGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQgYWxwaGEpCi0gICAgOiBt
X2NvbG9yKENvbG9yKGdyYXlMZXZlbCwgZ3JheUxldmVsLCBncmF5TGV2ZWwsIGFscGhhKSkKLSAg
ICAsIG1fdHlwZShSR0JBKQorICAgIDogbV9zdHlsZShDb2xvciB7IGdyYXlMZXZlbCwgZ3JheUxl
dmVsLCBncmF5TGV2ZWwsIGFscGhhIH0pCiB7CiB9CiAKIENhbnZhc1N0eWxlOjpDYW52YXNTdHls
ZShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhKQotICAgIDogbV9jb2xvcihDb2xv
cihyLCBnLCBiLCBhKSkKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDogbV9zdHlsZShDb2xvciB7
IHIsIGcsIGIsIGEgfSkKIHsKIH0KIAogQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGZsb2F0IGMs
IGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZsb2F0IGEpCi0gICAgOiBtX2NteWthKG5ldyBD
TVlLQVZhbHVlcyhDb2xvcihjLCBtLCB5LCBrLCBhKSwgYywgbSwgeSwgaywgYSkpCi0gICAgLCBt
X3R5cGUoQ01ZS0EpCisgICAgOiBtX3N0eWxlKENNWUtBQ29sb3IgeyBDb2xvciB7IGMsIG0sIHks
IGssIGEgfSwgYywgbSwgeSwgaywgYSB9KQogewogfQogCi1DYW52YXNTdHlsZTo6Q2FudmFzU3R5
bGUoUGFzc1JlZlB0cjxDYW52YXNHcmFkaWVudD4gZ3JhZGllbnQpCi0gICAgOiBtX2dyYWRpZW50
KGdyYWRpZW50LmxlYWtSZWYoKSkKLSAgICAsIG1fdHlwZShHcmFkaWVudCkKK0NhbnZhc1N0eWxl
OjpDYW52YXNTdHlsZShDYW52YXNHcmFkaWVudCYgZ3JhZGllbnQpCisgICAgOiBtX3N0eWxlKG1h
a2VSZWZQdHIoZ3JhZGllbnQpKQogewotICAgIGlmICghbV9ncmFkaWVudCkKLSAgICAgICAgbV90
eXBlID0gSW52YWxpZDsKIH0KIAotQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKFBhc3NSZWZQdHI8
Q2FudmFzUGF0dGVybj4gcGF0dGVybikKLSAgICA6IG1fcGF0dGVybihwYXR0ZXJuLmxlYWtSZWYo
KSkKLSAgICAsIG1fdHlwZShJbWFnZVBhdHRlcm4pCitDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUo
Q2FudmFzUGF0dGVybiYgcGF0dGVybikKKyAgICA6IG1fc3R5bGUobWFrZVJlZlB0cihwYXR0ZXJu
KSkKIHsKLSAgICBpZiAoIW1fcGF0dGVybikKLSAgICAgICAgbV90eXBlID0gSW52YWxpZDsKIH0K
IAotQ2FudmFzU3R5bGU6On5DYW52YXNTdHlsZSgpCitpbmxpbmUgQ2FudmFzU3R5bGU6OkNhbnZh
c1N0eWxlKEN1cnJlbnRDb2xvciBjb2xvcikKKyAgICA6IG1fc3R5bGUoY29sb3IpCiB7Ci0gICAg
aWYgKG1fdHlwZSA9PSBHcmFkaWVudCkKLSAgICAgICAgbV9ncmFkaWVudC0+ZGVyZWYoKTsKLSAg
ICBlbHNlIGlmIChtX3R5cGUgPT0gSW1hZ2VQYXR0ZXJuKQotICAgICAgICBtX3BhdHRlcm4tPmRl
cmVmKCk7Ci0gICAgZWxzZSBpZiAobV90eXBlID09IENNWUtBKQotICAgICAgICBkZWxldGUgbV9j
bXlrYTsKIH0KIAogQ2FudmFzU3R5bGUgQ2FudmFzU3R5bGU6OmNyZWF0ZUZyb21TdHJpbmcoY29u
c3QgU3RyaW5nJiBjb2xvclN0cmluZywgRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIGlmIChp
c0N1cnJlbnRDb2xvclN0cmluZyhjb2xvclN0cmluZykpCi0gICAgICAgIHJldHVybiBDYW52YXNT
dHlsZShDb25zdHJ1Y3RDdXJyZW50Q29sb3IpOworICAgICAgICByZXR1cm4gQ3VycmVudENvbG9y
IHsgc3RkOjpudWxsb3B0IH07CiAKICAgICBDb2xvciBjb2xvciA9IHBhcnNlQ29sb3IoY29sb3JT
dHJpbmcsIGRvY3VtZW50KTsKLSAgICBpZiAoY29sb3IuaXNWYWxpZCgpKQotICAgICAgICByZXR1
cm4gQ2FudmFzU3R5bGUoY29sb3IpOworICAgIGlmICghY29sb3IuaXNWYWxpZCgpKQorICAgICAg
ICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIENhbnZhc1N0eWxlKCk7CisgICAgcmV0dXJuIGNv
bG9yOwogfQogCiBDYW52YXNTdHlsZSBDYW52YXNTdHlsZTo6Y3JlYXRlRnJvbVN0cmluZ1dpdGhP
dmVycmlkZUFscGhhKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIGZsb2F0IGFscGhhKQogewog
ICAgIGlmIChpc0N1cnJlbnRDb2xvclN0cmluZyhjb2xvclN0cmluZykpCi0gICAgICAgIHJldHVy
biBDYW52YXNTdHlsZShDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBoYSwgYWxwaGEpOworICAg
ICAgICByZXR1cm4gQ3VycmVudENvbG9yIHsgYWxwaGEgfTsKIAogICAgIENvbG9yIGNvbG9yID0g
cGFyc2VDb2xvcihjb2xvclN0cmluZyk7Ci0gICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkKLSAgICAg
ICAgcmV0dXJuIENhbnZhc1N0eWxlKGNvbG9yV2l0aE92ZXJyaWRlQWxwaGEoY29sb3IucmdiKCks
IGFscGhhKSk7CisgICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiB7IH07
CiAKLSAgICByZXR1cm4gQ2FudmFzU3R5bGUoKTsKKyAgICByZXR1cm4gQ29sb3IgeyBjb2xvcldp
dGhPdmVycmlkZUFscGhhKGNvbG9yLnJnYigpLCBhbHBoYSkgfTsKIH0KIAogYm9vbCBDYW52YXNT
dHlsZTo6aXNFcXVpdmFsZW50Q29sb3IoY29uc3QgQ2FudmFzU3R5bGUmIG90aGVyKSBjb25zdAog
ewotICAgIGlmIChtX3R5cGUgIT0gb3RoZXIubV90eXBlKQotICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG1fc3R5bGUpICYmIFdURjo6
aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG90aGVyLm1fc3R5bGUpKQorICAgICAgICByZXR1cm4g
V1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpID09IFdURjo6Z2V0PENvbG9yPihvdGhlci5tX3N0eWxl
KTsKIAotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBSR0JBOgotICAgICAgICByZXR1
cm4gbV9jb2xvciA9PSBvdGhlci5tX2NvbG9yOwotICAgIGNhc2UgQ01ZS0E6Ci0gICAgICAgIHJl
dHVybiBtX2NteWthLT5jID09IG90aGVyLm1fY215a2EtPmMKLSAgICAgICAgICAgICYmIG1fY215
a2EtPm0gPT0gb3RoZXIubV9jbXlrYS0+bQotICAgICAgICAgICAgJiYgbV9jbXlrYS0+eSA9PSBv
dGhlci5tX2NteWthLT55Ci0gICAgICAgICAgICAmJiBtX2NteWthLT5rID09IG90aGVyLm1fY215
a2EtPmsKLSAgICAgICAgICAgICYmIG1fY215a2EtPmEgPT0gb3RoZXIubV9jbXlrYS0+YTsKLSAg
ICBjYXNlIEdyYWRpZW50OgotICAgIGNhc2UgSW1hZ2VQYXR0ZXJuOgotICAgIGNhc2UgQ3VycmVu
dENvbG9yOgotICAgIGNhc2UgQ3VycmVudENvbG9yV2l0aE92ZXJyaWRlQWxwaGE6Ci0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBjYXNlIEludmFsaWQ6Ci0gICAgICAgIGJyZWFrOworICAgIGlm
IChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENNWUtBQ29sb3I+KG1fc3R5bGUpICYmIFdURjo6aG9s
ZHNfYWx0ZXJuYXRpdmU8Q01ZS0FDb2xvcj4ob3RoZXIubV9zdHlsZSkpIHsKKyAgICAgICAgYXV0
byYgYSA9IFdURjo6Z2V0PENNWUtBQ29sb3I+KG1fc3R5bGUpOworICAgICAgICBhdXRvJiBiID0g
V1RGOjpnZXQ8Q01ZS0FDb2xvcj4ob3RoZXIubV9zdHlsZSk7CisgICAgICAgIHJldHVybiBhLmMg
PT0gYi5jICYmIGEubSA9PSBiLm0gJiYgYS55ID09IGIueSAmJiBhLmsgPT0gYi5rICYmIGEuYSA9
PSBiLmE7CiAgICAgfQogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCiBib29sIENhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRSR0JBKGZsb2F0IHIsIGZs
b2F0IGcsIGZsb2F0IGIsIGZsb2F0IGEpIGNvbnN0CiB7Ci0gICAgaWYgKG1fdHlwZSAhPSBSR0JB
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9jb2xvciA9PSBDb2xvcihy
LCBnLCBiLCBhKTsKKyAgICByZXR1cm4gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDb2xvcj4obV9z
dHlsZSkgJiYgV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpID09IENvbG9yIHsgciwgZywgYiwgYSB9
OwogfQogCiBib29sIENhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDTVlLQShmbG9hdCBjLCBmbG9h
dCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBhKSBjb25zdAogewotICAgIGlmIChtX3R5cGUg
IT0gQ01ZS0EpCisgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENNWUtBQ29sb3I+KG1f
c3R5bGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gYyA9PSBtX2NteWth
LT5jCi0gICAgICAgICYmIG0gPT0gbV9jbXlrYS0+bQotICAgICAgICAmJiB5ID09IG1fY215a2Et
PnkKLSAgICAgICAgJiYgayA9PSBtX2NteWthLT5rCi0gICAgICAgICYmIGEgPT0gbV9jbXlrYS0+
YTsKLX0KLQotQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGNvbnN0IENhbnZhc1N0eWxlJiBvdGhl
cikKLXsKLSAgICBtZW1jcHkodGhpcywgJm90aGVyLCBzaXplb2YoQ2FudmFzU3R5bGUpKTsKLSAg
ICBpZiAobV90eXBlID09IEdyYWRpZW50KQotICAgICAgICBtX2dyYWRpZW50LT5yZWYoKTsKLSAg
ICBlbHNlIGlmIChtX3R5cGUgPT0gSW1hZ2VQYXR0ZXJuKQotICAgICAgICBtX3BhdHRlcm4tPnJl
ZigpOwotICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBDTVlLQSkKLSAgICAgICAgbV9jbXlrYSA9IG5l
dyBDTVlLQVZhbHVlcyhvdGhlci5tX2NteWthLT5jb2xvciwgb3RoZXIubV9jbXlrYS0+Yywgb3Ro
ZXIubV9jbXlrYS0+bSwgb3RoZXIubV9jbXlrYS0+eSwgb3RoZXIubV9jbXlrYS0+aywgb3RoZXIu
bV9jbXlrYS0+YSk7Ci19Ci0KLUNhbnZhc1N0eWxlJiBDYW52YXNTdHlsZTo6b3BlcmF0b3I9KGNv
bnN0IENhbnZhc1N0eWxlJiBvdGhlcikKLXsKLSAgICBpZiAodGhpcyAhPSAmb3RoZXIpIHsKLSAg
ICAgICAgdGhpcy0+fkNhbnZhc1N0eWxlKCk7Ci0gICAgICAgIG5ldyAodGhpcykgQ2FudmFzU3R5
bGUob3RoZXIpOwotICAgIH0KLSAgICByZXR1cm4gKnRoaXM7CisgICAgYXV0byYgY2hhbm5lbHMg
PSBXVEY6OmdldDxDTVlLQUNvbG9yPihtX3N0eWxlKTsKKyAgICByZXR1cm4gYyA9PSBjaGFubmVs
cy5jICYmIG0gPT0gY2hhbm5lbHMubSAmJiB5ID09IGNoYW5uZWxzLnkgJiYgayA9PSBjaGFubmVs
cy5rICYmIGEgPT0gY2hhbm5lbHMuYTsKIH0KIAotdm9pZCBDYW52YXNTdHlsZTo6YXBwbHlTdHJv
a2VDb2xvcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpIGNvbnN0Cit2b2lkIENhbnZhc1N0eWxl
OjphcHBseVN0cm9rZUNvbG9yKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKIHsKLSAg
ICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewot
ICAgIGNhc2UgUkdCQToKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3IobV9jb2xvcik7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ01ZS0E6IHsKLSAgICAgICAgLy8gRklYTUU6IERv
IHRoaXMgdGhyb3VnaCBwbGF0Zm9ybS1pbmRlcGVuZGVudCBHcmFwaGljc0NvbnRleHQgQVBJLgot
ICAgICAgICAvLyBXZSdsbCBuZWVkIGEgZmFuY2llciBDb2xvciBhYnN0cmFjdGlvbiB0byBzdXBw
b3J0IENNWUtBIGNvcnJlY3RseQorICAgIFdURjo6c3dpdGNoT24obV9zdHlsZSwKKyAgICAgICAg
WyZjb250ZXh0XSAoY29uc3QgQ29sb3ImIGNvbG9yKSB7CisgICAgICAgICAgICBjb250ZXh0LnNl
dFN0cm9rZUNvbG9yKGNvbG9yKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29u
c3QgQ01ZS0FDb2xvciYgY29sb3IpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBEbyB0aGlzIHRo
cm91Z2ggcGxhdGZvcm0taW5kZXBlbmRlbnQgR3JhcGhpY3NDb250ZXh0IEFQSS4KKyAgICAgICAg
ICAgIC8vIFdlJ2xsIG5lZWQgYSBmYW5jaWVyIENvbG9yIGFic3RyYWN0aW9uIHRvIHN1cHBvcnQg
Q01ZS0EgY29ycmVjdGx5CiAjaWYgVVNFKENHKQotICAgICAgICBDR0NvbnRleHRTZXRDTVlLU3Ry
b2tlQ29sb3IoY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIG1fY215a2EtPmMsIG1fY215a2Et
Pm0sIG1fY215a2EtPnksIG1fY215a2EtPmssIG1fY215a2EtPmEpOworICAgICAgICAgICAgQ0dD
b250ZXh0U2V0Q01ZS1N0cm9rZUNvbG9yKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIGNvbG9y
LmMsIGNvbG9yLm0sIGNvbG9yLnksIGNvbG9yLmssIGNvbG9yLmEpOwogI2Vsc2UKLSAgICAgICAg
Y29udGV4dC0+c2V0U3Ryb2tlQ29sb3IobV9jbXlrYS0+Y29sb3IpOworICAgICAgICAgICAgY29u
dGV4dC5zZXRTdHJva2VDb2xvcihjb2xvci5jb2xvcik7CiAjZW5kaWYKLSAgICAgICAgYnJlYWs7
Ci0gICAgfQotICAgIGNhc2UgR3JhZGllbnQ6Ci0gICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUdy
YWRpZW50KGNhbnZhc0dyYWRpZW50KCktPmdyYWRpZW50KCkpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIEltYWdlUGF0dGVybjoKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlUGF0dGVybihj
YW52YXNQYXR0ZXJuKCktPnBhdHRlcm4oKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ3Vy
cmVudENvbG9yOgotICAgIGNhc2UgQ3VycmVudENvbG9yV2l0aE92ZXJyaWRlQWxwaGE6Ci0gICAg
Y2FzZSBJbnZhbGlkOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgfQotfQotCi12b2lkIENhbnZhc1N0eWxlOjphcHBseUZpbGxDb2xvcihHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQpIGNvbnN0Ci17Ci0gICAgaWYgKCFjb250ZXh0KQotICAgICAgICBy
ZXR1cm47Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFJHQkE6Ci0gICAgICAgIGNv
bnRleHQtPnNldEZpbGxDb2xvcihtX2NvbG9yKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBD
TVlLQTogewotICAgICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdoIHBsYXRmb3JtLWluZGVw
ZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCi0gICAgICAgIC8vIFdlJ2xsIG5lZWQgYSBmYW5j
aWVyIENvbG9yIGFic3RyYWN0aW9uIHRvIHN1cHBvcnQgQ01ZS0EgY29ycmVjdGx5CisgICAgICAg
IH0sCisgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IFJlZlB0cjxDYW52YXNHcmFkaWVudD4mIGdy
YWRpZW50KSB7CisgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZUdyYWRpZW50KGdyYWRpZW50
LT5ncmFkaWVudCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgUmVm
UHRyPENhbnZhc1BhdHRlcm4+JiBwYXR0ZXJuKSB7CisgICAgICAgICAgICBjb250ZXh0LnNldFN0
cm9rZVBhdHRlcm4ocGF0dGVybi0+cGF0dGVybigpKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10g
KGNvbnN0IEN1cnJlbnRDb2xvciYpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICB9LAorICAgICAgICBbXSAoY29uc3QgSW52YWxpZCYpIHsKKyAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgKTsKK30KKwordm9pZCBDYW52
YXNTdHlsZTo6YXBwbHlGaWxsQ29sb3IoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAor
eworICAgIFdURjo6c3dpdGNoT24obV9zdHlsZSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3Qg
Q29sb3ImIGNvbG9yKSB7CisgICAgICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihjb2xvcik7
CisgICAgICAgIH0sCisgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IENNWUtBQ29sb3ImIGNvbG9y
KSB7CisgICAgICAgICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdoIHBsYXRmb3JtLWluZGVw
ZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCisgICAgICAgICAgICAvLyBXZSdsbCBuZWVkIGEg
ZmFuY2llciBDb2xvciBhYnN0cmFjdGlvbiB0byBzdXBwb3J0IENNWUtBIGNvcnJlY3RseQogI2lm
IFVTRShDRykKLSAgICAgICAgQ0dDb250ZXh0U2V0Q01ZS0ZpbGxDb2xvcihjb250ZXh0LT5wbGF0
Zm9ybUNvbnRleHQoKSwgbV9jbXlrYS0+YywgbV9jbXlrYS0+bSwgbV9jbXlrYS0+eSwgbV9jbXlr
YS0+aywgbV9jbXlrYS0+YSk7CisgICAgICAgICAgICBDR0NvbnRleHRTZXRDTVlLRmlsbENvbG9y
KGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIGNvbG9yLmMsIGNvbG9yLm0sIGNvbG9yLnksIGNv
bG9yLmssIGNvbG9yLmEpOwogI2Vsc2UKLSAgICAgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKG1f
Y215a2EtPmNvbG9yKTsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGNvbG9yLmNv
bG9yKTsKICNlbmRpZgotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBHcmFkaWVudDoK
LSAgICAgICAgY29udGV4dC0+c2V0RmlsbEdyYWRpZW50KGNhbnZhc0dyYWRpZW50KCktPmdyYWRp
ZW50KCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEltYWdlUGF0dGVybjoKLSAgICAgICAg
Y29udGV4dC0+c2V0RmlsbFBhdHRlcm4oY2FudmFzUGF0dGVybigpLT5wYXR0ZXJuKCkpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEN1cnJlbnRDb2xvcjoKLSAgICBjYXNlIEN1cnJlbnRDb2xv
cldpdGhPdmVycmlkZUFscGhhOgotICAgIGNhc2UgSW52YWxpZDoKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAg
WyZjb250ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZhc0dyYWRpZW50PiYgZ3JhZGllbnQpIHsKKyAg
ICAgICAgICAgIGNvbnRleHQuc2V0RmlsbEdyYWRpZW50KGdyYWRpZW50LT5ncmFkaWVudCgpKTsK
KyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZhc1BhdHRl
cm4+JiBwYXR0ZXJuKSB7CisgICAgICAgICAgICBjb250ZXh0LnNldEZpbGxQYXR0ZXJuKHBhdHRl
cm4tPnBhdHRlcm4oKSk7CisgICAgICAgIH0sCisgICAgICAgIFtdIChjb25zdCBDdXJyZW50Q29s
b3ImKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfSwKKyAg
ICAgICAgW10gKGNvbnN0IEludmFsaWQmKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgfQorICAgICk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNTdHlsZS5oCmluZGV4IGI2YmY0N2M0MDNjM2Q5ZTk1NjA1NjkxNGEwNGJiYzMwYTBh
YWJhMmIuLmQ3ODAzMGFjOWVmMDY3OTgxZWNhMGU4ZWRlNmQ0YjcyNDg2ZjViY2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjYsMTM1ICsyNiwx
MDAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDYW52YXNHcmFkaWVudC5oIgorI2lu
Y2x1ZGUgIkNhbnZhc1BhdHRlcm4uaCIKICNpbmNsdWRlICJDb2xvci5oIgotI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVk
ZSA8d3RmL1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgQ2Fu
dmFzR3JhZGllbnQ7Ci0gICAgY2xhc3MgQ2FudmFzUGF0dGVybjsKLSAgICBjbGFzcyBEb2N1bWVu
dDsKLSAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7Ci0gICAgY2xhc3MgSFRNTENhbnZhc0VsZW1l
bnQ7Ci0KLSAgICBjbGFzcyBDYW52YXNTdHlsZSB7Ci0gICAgcHVibGljOgotICAgICAgICBDYW52
YXNTdHlsZSgpOwotICAgICAgICBleHBsaWNpdCBDYW52YXNTdHlsZShDb2xvcik7Ci0gICAgICAg
IENhbnZhc1N0eWxlKGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQgYWxwaGEpOwotICAgICAgICBDYW52
YXNTdHlsZShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhbHBoYSk7Ci0gICAgICAg
IENhbnZhc1N0eWxlKGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZsb2F0IGFs
cGhhKTsKLSAgICAgICAgZXhwbGljaXQgQ2FudmFzU3R5bGUoUGFzc1JlZlB0cjxDYW52YXNHcmFk
aWVudD4pOwotICAgICAgICBleHBsaWNpdCBDYW52YXNTdHlsZShQYXNzUmVmUHRyPENhbnZhc1Bh
dHRlcm4+KTsKLSAgICAgICAgfkNhbnZhc1N0eWxlKCk7Ci0KLSAgICAgICAgc3RhdGljIENhbnZh
c1N0eWxlIGNyZWF0ZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBjb2xvciwgRG9jdW1lbnQqID0g
MCk7Ci0gICAgICAgIHN0YXRpYyBDYW52YXNTdHlsZSBjcmVhdGVGcm9tU3RyaW5nV2l0aE92ZXJy
aWRlQWxwaGEoY29uc3QgU3RyaW5nJiBjb2xvciwgZmxvYXQgYWxwaGEpOwotCi0gICAgICAgIGJv
b2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSAhPSBJbnZhbGlkOyB9Ci0gICAgICAg
IGJvb2wgaXNDdXJyZW50Q29sb3IoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gQ3VycmVudENv
bG9yIHx8IG1fdHlwZSA9PSBDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBoYTsgfQotICAgICAg
ICBib29sIGhhc092ZXJyaWRlQWxwaGEoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gQ3VycmVu
dENvbG9yV2l0aE92ZXJyaWRlQWxwaGE7IH0KLSAgICAgICAgZmxvYXQgb3ZlcnJpZGVBbHBoYSgp
IGNvbnN0IHsgQVNTRVJUKG1fdHlwZSA9PSBDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBoYSk7
IHJldHVybiBtX292ZXJyaWRlQWxwaGE7IH0KLQotICAgICAgICBTdHJpbmcgY29sb3IoKSBjb25z
dDsKLSAgICAgICAgQ2FudmFzR3JhZGllbnQqIGNhbnZhc0dyYWRpZW50KCkgY29uc3Q7Ci0gICAg
ICAgIENhbnZhc1BhdHRlcm4qIGNhbnZhc1BhdHRlcm4oKSBjb25zdDsKLQotICAgICAgICB2b2lk
IGFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29udGV4dCopIGNvbnN0OwotICAgICAgICB2b2lkIGFw
cGx5U3Ryb2tlQ29sb3IoR3JhcGhpY3NDb250ZXh0KikgY29uc3Q7Ci0KLSAgICAgICAgYm9vbCBp
c0VxdWl2YWxlbnRDb2xvcihjb25zdCBDYW52YXNTdHlsZSYpIGNvbnN0OwotICAgICAgICBib29s
IGlzRXF1aXZhbGVudFJHQkEoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQgYSkgY29u
c3Q7Ci0gICAgICAgIGJvb2wgaXNFcXVpdmFsZW50Q01ZS0EoZmxvYXQgYywgZmxvYXQgbSwgZmxv
YXQgeSwgZmxvYXQgaywgZmxvYXQgYSkgY29uc3Q7Ci0KLSAgICAgICAgQ2FudmFzU3R5bGUoY29u
c3QgQ2FudmFzU3R5bGUmKTsKLSAgICAgICAgQ2FudmFzU3R5bGUmIG9wZXJhdG9yPShjb25zdCBD
YW52YXNTdHlsZSYpOwotICAgICAgICBDYW52YXNTdHlsZShDYW52YXNTdHlsZSYmKTsKLSAgICAg
ICAgQ2FudmFzU3R5bGUmIG9wZXJhdG9yPShDYW52YXNTdHlsZSYmKTsKLQotICAgIHByaXZhdGU6
Ci0gICAgICAgIGVudW0gVHlwZSB7IFJHQkEsIENNWUtBLCBHcmFkaWVudCwgSW1hZ2VQYXR0ZXJu
LCBDdXJyZW50Q29sb3IsIEN1cnJlbnRDb2xvcldpdGhPdmVycmlkZUFscGhhLCBJbnZhbGlkIH07
Ci0gICAgICAgIHN0cnVjdCBDTVlLQVZhbHVlcyB7Ci0gICAgICAgICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKLSAgICAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENNWUtBVmFsdWVz
KTsKLSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgQ01ZS0FWYWx1ZXMoKQotICAgICAgICAg
ICAgICAgIDogY29sb3IoKSwgYygwKSwgbSgwKSwgeSgwKSwgaygwKSwgYSgwKQotICAgICAgICAg
ICAgeyB9Ci0KLSAgICAgICAgICAgIENNWUtBVmFsdWVzKENvbG9yIGNvbG9yLCBmbG9hdCBjeWFu
LCBmbG9hdCBtYWdlbnRhLCBmbG9hdCB5ZWxsb3csIGZsb2F0IGJsYWNrLCBmbG9hdCBhbHBoYSkK
LSAgICAgICAgICAgICAgICA6IGNvbG9yKGNvbG9yKSwgYyhjeWFuKSwgbShtYWdlbnRhKSwgeSh5
ZWxsb3cpLCBrKGJsYWNrKSwgYShhbHBoYSkKLSAgICAgICAgICAgIHsgfQotICAgICAgICAgICAg
Q29sb3IgY29sb3I7Ci0gICAgICAgICAgICBmbG9hdCBjOwotICAgICAgICAgICAgZmxvYXQgbTsK
LSAgICAgICAgICAgIGZsb2F0IHk7Ci0gICAgICAgICAgICBmbG9hdCBrOwotICAgICAgICAgICAg
ZmxvYXQgYTsKLSAgICAgICAgfTsKLQotICAgICAgICBlbnVtIENvbnN0cnVjdEN1cnJlbnRDb2xv
clRhZyB7IENvbnN0cnVjdEN1cnJlbnRDb2xvciB9OwotICAgICAgICBDYW52YXNTdHlsZShDb25z
dHJ1Y3RDdXJyZW50Q29sb3JUYWcpIDogbV90eXBlKEN1cnJlbnRDb2xvcikgeyB9Ci0gICAgICAg
IENhbnZhc1N0eWxlKFR5cGUgdHlwZSwgZmxvYXQgb3ZlcnJpZGVBbHBoYSkKLSAgICAgICAgICAg
IDogbV9vdmVycmlkZUFscGhhKG92ZXJyaWRlQWxwaGEpCi0gICAgICAgICAgICAsIG1fdHlwZSh0
eXBlKQorY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CitjbGFzcyBIVE1M
Q2FudmFzRWxlbWVudDsKKworY2xhc3MgQ2FudmFzU3R5bGUgeworcHVibGljOgorICAgIENhbnZh
c1N0eWxlKCk7CisgICAgQ2FudmFzU3R5bGUoQ29sb3IpOworICAgIENhbnZhc1N0eWxlKGZsb2F0
IGdyYXlMZXZlbCwgZmxvYXQgYWxwaGEpOworICAgIENhbnZhc1N0eWxlKGZsb2F0IHIsIGZsb2F0
IGcsIGZsb2F0IGIsIGZsb2F0IGFscGhhKTsKKyAgICBDYW52YXNTdHlsZShmbG9hdCBjLCBmbG9h
dCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBhbHBoYSk7CisgICAgQ2FudmFzU3R5bGUoQ2Fu
dmFzR3JhZGllbnQmKTsKKyAgICBDYW52YXNTdHlsZShDYW52YXNQYXR0ZXJuJik7CisKKyAgICBz
dGF0aWMgQ2FudmFzU3R5bGUgY3JlYXRlRnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIGNvbG9yLCBE
b2N1bWVudCogPSBudWxscHRyKTsKKyAgICBzdGF0aWMgQ2FudmFzU3R5bGUgY3JlYXRlRnJvbVN0
cmluZ1dpdGhPdmVycmlkZUFscGhhKGNvbnN0IFN0cmluZyYgY29sb3IsIGZsb2F0IGFscGhhKTsK
KworICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuICFXVEY6OmhvbGRzX2FsdGVybmF0
aXZlPEludmFsaWQ+KG1fc3R5bGUpOyB9CisgICAgYm9vbCBpc0N1cnJlbnRDb2xvcigpIGNvbnN0
IHsgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q3VycmVudENvbG9yPihtX3N0eWxlKTsg
fQorICAgIGJvb2wgaGFzT3ZlcnJpZGVBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIGlzQ3VycmVudENv
bG9yKCkgJiYgV1RGOjpnZXQ8Q3VycmVudENvbG9yPihtX3N0eWxlKS5vdmVycmlkZUFscGhhOyB9
CisgICAgZmxvYXQgb3ZlcnJpZGVBbHBoYSgpIGNvbnN0IHsgcmV0dXJuIFdURjo6Z2V0PEN1cnJl
bnRDb2xvcj4obV9zdHlsZSkub3ZlcnJpZGVBbHBoYS52YWx1ZSgpOyB9CisKKyAgICBTdHJpbmcg
Y29sb3IoKSBjb25zdDsKKyAgICBDYW52YXNHcmFkaWVudCogY2FudmFzR3JhZGllbnQoKSBjb25z
dDsKKyAgICBDYW52YXNQYXR0ZXJuKiBjYW52YXNQYXR0ZXJuKCkgY29uc3Q7CisKKyAgICB2b2lk
IGFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OworICAgIHZvaWQgYXBwbHlT
dHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKworICAgIGJvb2wgaXNFcXVpdmFs
ZW50Q29sb3IoY29uc3QgQ2FudmFzU3R5bGUmKSBjb25zdDsKKyAgICBib29sIGlzRXF1aXZhbGVu
dFJHQkEoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpIGNv
bnN0OworICAgIGJvb2wgaXNFcXVpdmFsZW50Q01ZS0EoZmxvYXQgY3lhbiwgZmxvYXQgbWFnZW50
YSwgZmxvYXQgeWVsbG93LCBmbG9hdCBibGFjaywgZmxvYXQgYWxwaGEpIGNvbnN0OworCitwcml2
YXRlOgorICAgIHN0cnVjdCBJbnZhbGlkIHsgfTsKKworICAgIHN0cnVjdCBDTVlLQUNvbG9yIHsK
KyAgICAgICAgQ01ZS0FDb2xvcigpID0gZGVmYXVsdDsKKworICAgICAgICBDTVlLQUNvbG9yKENv
bG9yIGNvbG9yLCBmbG9hdCBjeWFuLCBmbG9hdCBtYWdlbnRhLCBmbG9hdCB5ZWxsb3csIGZsb2F0
IGJsYWNrLCBmbG9hdCBhbHBoYSkKKyAgICAgICAgICAgIDogY29sb3IoY29sb3IpLCBjKGN5YW4p
LCBtKG1hZ2VudGEpLCB5KHllbGxvdyksIGsoYmxhY2spLCBhKGFscGhhKQogICAgICAgICB7CiAg
ICAgICAgIH0KIAotICAgICAgICB1bmlvbiB7Ci0gICAgICAgICAgICBDb2xvciBtX2NvbG9yOwot
ICAgICAgICAgICAgZmxvYXQgbV9vdmVycmlkZUFscGhhOwotICAgICAgICAgICAgQ2FudmFzR3Jh
ZGllbnQqIG1fZ3JhZGllbnQ7Ci0gICAgICAgICAgICBDYW52YXNQYXR0ZXJuKiBtX3BhdHRlcm47
Ci0gICAgICAgICAgICBDTVlLQVZhbHVlcyogbV9jbXlrYTsKLSAgICAgICAgfTsKLSAgICAgICAg
VHlwZSBtX3R5cGU7CisgICAgICAgIENvbG9yIGNvbG9yOworICAgICAgICBmbG9hdCBjIHsgMCB9
OworICAgICAgICBmbG9hdCBtIHsgMCB9OworICAgICAgICBmbG9hdCB5IHsgMCB9OworICAgICAg
ICBmbG9hdCBrIHsgMCB9OworICAgICAgICBmbG9hdCBhIHsgMCB9OwogICAgIH07CiAKLSAgICBD
b2xvciBjdXJyZW50Q29sb3IoSFRNTENhbnZhc0VsZW1lbnQqKTsKLSAgICBDb2xvciBwYXJzZUNv
bG9yT3JDdXJyZW50Q29sb3IoY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZywgSFRNTENhbnZhc0Vs
ZW1lbnQqKTsKLQotICAgIGlubGluZSBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoKQotICAgICAg
ICA6IG1fdHlwZShJbnZhbGlkKQotICAgIHsKLSAgICB9Ci0KLSAgICBpbmxpbmUgQ2FudmFzR3Jh
ZGllbnQqIENhbnZhc1N0eWxlOjpjYW52YXNHcmFkaWVudCgpIGNvbnN0Ci0gICAgewotICAgICAg
ICBpZiAobV90eXBlID09IEdyYWRpZW50KQotICAgICAgICAgICAgcmV0dXJuIG1fZ3JhZGllbnQ7
Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGlubGluZSBDYW52YXNQYXR0ZXJuKiBD
YW52YXNTdHlsZTo6Y2FudmFzUGF0dGVybigpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAobV90
eXBlID09IEltYWdlUGF0dGVybikKLSAgICAgICAgICAgIHJldHVybiBtX3BhdHRlcm47Ci0gICAg
ICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGlubGluZSBTdHJpbmcgQ2FudmFzU3R5bGU6OmNv
bG9yKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPT0gUkdCQSB8fCBtX3R5
cGUgPT0gQ01ZS0EpOwotICAgICAgICBpZiAobV90eXBlID09IFJHQkEpCi0gICAgICAgICAgICBy
ZXR1cm4gbV9jb2xvci5zZXJpYWxpemVkKCk7Ci0gICAgICAgIHJldHVybiBtX2NteWthLT5jb2xv
ci5zZXJpYWxpemVkKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIENhbnZhc1N0eWxlOjpDYW52YXNT
dHlsZShDYW52YXNTdHlsZSYmIG90aGVyKQotICAgIHsKLSAgICAgICAgbWVtY3B5KHRoaXMsICZv
dGhlciwgc2l6ZW9mKENhbnZhc1N0eWxlKSk7Ci0gICAgICAgIG90aGVyLm1fdHlwZSA9IEludmFs
aWQ7Ci0gICAgfQotCi0gICAgaW5saW5lIENhbnZhc1N0eWxlJiBDYW52YXNTdHlsZTo6b3BlcmF0
b3I9KENhbnZhc1N0eWxlJiYgb3RoZXIpCi0gICAgewotICAgICAgICBpZiAodGhpcyAhPSAmb3Ro
ZXIpIHsKLSAgICAgICAgICAgIG1lbWNweSh0aGlzLCAmb3RoZXIsIHNpemVvZihDYW52YXNTdHls
ZSkpOwotICAgICAgICAgICAgb3RoZXIubV90eXBlID0gSW52YWxpZDsKLSAgICAgICAgfQotICAg
ICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQorICAgIHN0cnVjdCBDdXJyZW50Q29sb3IgeworICAg
ICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBvdmVycmlkZUFscGhhOworICAgIH07CisKKyAgICBD
YW52YXNTdHlsZShDdXJyZW50Q29sb3IpOworCisgICAgVmFyaWFudDxJbnZhbGlkLCBDb2xvciwg
Q01ZS0FDb2xvciwgUmVmUHRyPENhbnZhc0dyYWRpZW50PiwgUmVmUHRyPENhbnZhc1BhdHRlcm4+
LCBDdXJyZW50Q29sb3I+IG1fc3R5bGU7Cit9OworCitDb2xvciBjdXJyZW50Q29sb3IoSFRNTENh
bnZhc0VsZW1lbnQqKTsKK0NvbG9yIHBhcnNlQ29sb3JPckN1cnJlbnRDb2xvcihjb25zdCBTdHJp
bmcmIGNvbG9yU3RyaW5nLCBIVE1MQ2FudmFzRWxlbWVudCopOworCitpbmxpbmUgQ2FudmFzU3R5
bGU6OkNhbnZhc1N0eWxlKCkKKyAgICA6IG1fc3R5bGUoSW52YWxpZCB7IH0pCit7Cit9CisKK2lu
bGluZSBDYW52YXNHcmFkaWVudCogQ2FudmFzU3R5bGU6OmNhbnZhc0dyYWRpZW50KCkgY29uc3QK
K3sKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmUHRyPENhbnZhc0dyYWRpZW50
Pj4obV9zdHlsZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBXVEY6Omdl
dDxSZWZQdHI8Q2FudmFzR3JhZGllbnQ+PihtX3N0eWxlKS5nZXQoKTsKK30KKworaW5saW5lIENh
bnZhc1BhdHRlcm4qIENhbnZhc1N0eWxlOjpjYW52YXNQYXR0ZXJuKCkgY29uc3QKK3sKKyAgICBp
ZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmUHRyPENhbnZhc1BhdHRlcm4+PihtX3N0eWxl
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFdURjo6Z2V0PFJlZlB0cjxD
YW52YXNQYXR0ZXJuPj4obV9zdHlsZSkuZ2V0KCk7Cit9CisKK2lubGluZSBTdHJpbmcgQ2FudmFz
U3R5bGU6OmNvbG9yKCkgY29uc3QKK3sKKyAgICBhdXRvJiBjb2xvciA9IFdURjo6aG9sZHNfYWx0
ZXJuYXRpdmU8Q29sb3I+KG1fc3R5bGUpID8gV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpIDogV1RG
OjpnZXQ8Q01ZS0FDb2xvcj4obV9zdHlsZSkuY29sb3I7CisgICAgcmV0dXJuIGNvbG9yLnNlcmlh
bGl6ZWQoKTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCmluZGV4IGM4YjEwZjdi
ZmJjNjgxZDhhYTg1OTU5YTNmMWUyN2Q2Mzc4ZTY5YWUuLjExMWJjM2JlNjZjNDQ4Nzg2M2JiYjRj
NjljMTRlZGNhZjMwMTkwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKQEAgLTI0LDExICsyNCwxMCBAQAogICovCiAKICNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJPRVNWZXJ0ZXhBcnJheU9iamVjdC5oIgogCiAj
aWYgRU5BQkxFKFdFQkdMKQogCi0jaW5jbHVkZSAiT0VTVmVydGV4QXJyYXlPYmplY3QuaCIKLQog
I2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4
dC5oIgogCkBAIC00OSw4ICs0OCw4IEBAIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
PiBPRVNWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlVmVydGV4QXJyYXlPRVMoKQogICAgIGlmICht
X2NvbnRleHQuaXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAg
IGF1dG8gb2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKG1fY29udGV4
dCwgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6VkFPVHlwZVVzZXIpOwotICAgIG1fY29udGV4
dC5hZGRDb250ZXh0T2JqZWN0KG9iamVjdC5wdHIoKSk7CisgICAgYXV0byBvYmplY3QgPSBXZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUobV9jb250ZXh0LCBXZWJHTFZlcnRleEFycmF5
T2JqZWN0T0VTOjpUeXBlOjpVc2VyKTsKKyAgICBtX2NvbnRleHQuYWRkQ29udGV4dE9iamVjdChv
YmplY3QuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKG9iamVjdCk7CiB9CiAKQEAgLTU4LDkg
KzU3LDkgQEAgdm9pZCBPRVNWZXJ0ZXhBcnJheU9iamVjdDo6ZGVsZXRlVmVydGV4QXJyYXlPRVMo
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyogYXJyYXkKIHsKICAgICBpZiAoIWFycmF5T2JqZWN0
IHx8IG1fY29udGV4dC5pc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAg
ICBpZiAoIWFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3QoKSAmJiBhcnJheU9iamVjdCA9PSBz
dGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQqPigmbV9jb250ZXh0KS0+bV9ib3VuZFZl
cnRleEFycmF5T2JqZWN0KQotICAgICAgICBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRl
eHQqPigmbV9jb250ZXh0KS0+c2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdCgwKTsKKworICAgIGlm
ICghYXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpICYmIGFycmF5T2JqZWN0ID09IHN0YXRp
Y19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCY+KG1fY29udGV4dCkubV9ib3VuZFZlcnRleEFy
cmF5T2JqZWN0KQorICAgICAgICBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQmPiht
X2NvbnRleHQpLnNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QobnVsbHB0cik7CiAKICAgICBhcnJh
eU9iamVjdC0+ZGVsZXRlT2JqZWN0KG1fY29udGV4dC5ncmFwaGljc0NvbnRleHQzRCgpKTsKIH0K
QEAgLTg5LDcgKzg4LDcgQEAgdm9pZCBPRVNWZXJ0ZXhBcnJheU9iamVjdDo6YmluZFZlcnRleEFy
cmF5T0VTKFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMqIGFycmF5T2IKICAgICAgICAgY29udGV4
dC5zZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KGFycmF5T2JqZWN0KTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBleHRlbnNpb25zLmJpbmRWZXJ0ZXhBcnJheU9FUygwKTsKLSAgICAgICAgY29udGV4
dC5zZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KDApOworICAgICAgICBjb250ZXh0LnNldEJvdW5k
VmVydGV4QXJyYXlPYmplY3QobnVsbHB0cik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDQ4
MGEwY2E5NWI1MTgzMTIzODBjOWNlZmI4NDQ4ZjI1OTEwODE4MTcuLjc5YzEzYzJmNmQzZGQyYzZj
ZTUwN2IxYzFhNWZmNTA2ZDhmZGNiZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDEwICsyNCwxMCBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShXRUJHTCkgJiYgRU5BQkxFKFdF
QkdMMikKICNpbmNsdWRlICJXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgiCiAKKyNpZiBFTkFCTEUo
V0VCR0wyKQorCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJFWFRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWMuaCIKICNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKQEAgLTYzLDcg
KzYzLDcgQEAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dChI
VE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLAogewogfQogCi1XZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRD
YW52YXMsIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4mJiBjb250ZXh0LCBHcmFwaGljc0NvbnRl
eHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcykKK1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OldlYkdM
MlJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUmVmPEdy
YXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBh
dHRyaWJ1dGVzKQogICAgIDogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShwYXNzZWRDYW52YXMs
IFdURk1vdmUoY29udGV4dCksIGF0dHJpYnV0ZXMpCiB7CiAgICAgaW5pdGlhbGl6ZVNoYWRlckV4
dGVuc2lvbnMoKTsKQEAgLTcyLDggKzcyLDggQEAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6V2Vi
R0wyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLAogCiB2
b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVWZXJ0ZXhBcnJheU9iamVjdHMo
KQogewotICAgIG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdDo6Y3JlYXRlKCp0aGlzLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpWQU9UeXBlRGVmYXVs
dCk7Ci0gICAgYWRkQ29udGV4dE9iamVjdChtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdC5nZXQo
KSk7CisgICAgbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OlR5cGU6OkRlZmF1bHQp
OworICAgIGFkZENvbnRleHRPYmplY3QoKm1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0KTsKICAg
ICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdDsK
ICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSkKICAgICAgICAgaW5pdFZlcnRleEF0dHJpYjAo
KTsKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNvcHlC
dWZmZXJTdWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVtIHdyaQogICAgIH0KIAog
ICAgIG1fY29udGV4dC0+bW92ZUVycm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCk7Ci0jaWYgUExB
VEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgbV9j
b250ZXh0LT5jb3B5QnVmZmVyU3ViRGF0YShyZWFkVGFyZ2V0LCB3cml0ZVRhcmdldCwgY2hlY2tl
ZFJlYWRPZmZzZXQudW5zYWZlR2V0KCksIGNoZWNrZWRXcml0ZU9mZnNldC51bnNhZmVHZXQoKSwg
Y2hlY2tlZFNpemUudW5zYWZlR2V0KCkpOwogI2VuZGlmCiAgICAgaWYgKG1fY29udGV4dC0+bW92
ZUVycm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCkpIHsKQEAgLTI3Miw3ICsyNzIsNyBAQCB2b2lk
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEJ1ZmZlclN1YkRhdGEoR0MzRGVudW0gdGFyZ2V0
LCBsb25nIGxvbmcgc3JjQnl0ZQogICAgIH0KIAogICAgIG1fY29udGV4dC0+bW92ZUVycm9yc1Rv
U3ludGhldGljRXJyb3JMaXN0KCk7Ci0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1Mp
CisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gRklYTUU6IENvYWxlc2NlIG11bHRpcGxlIGdl
dEJ1ZmZlclN1YkRhdGEoKSBjYWxscyB0byB1c2UgYSBzaW5nbGUgbWFwKCkgY2FsbAogICAgIHZv
aWQqIHB0ciA9IG1fY29udGV4dC0+bWFwQnVmZmVyUmFuZ2UodGFyZ2V0LCBjaGVja2VkU3JjQnl0
ZU9mZnNldC51bnNhZmVHZXQoKSwgc3RhdGljX2Nhc3Q8R0MzRHNpemVpcHRyPihjaGVja2VkQ29w
eUxlbmd0aFB0ci51bnNhZmVHZXQoKSAqIGNoZWNrZWRFbGVtZW50U2l6ZS51bnNhZmVHZXQoKSks
IEdyYXBoaWNzQ29udGV4dDNEOjpNQVBfUkVBRF9CSVQpOwogICAgIG1lbWNweShzdGF0aWNfY2Fz
dDxjaGFyKj4oZHN0RGF0YS0+YmFzZUFkZHJlc3MoKSkgKyBkc3REYXRhLT5ieXRlT2Zmc2V0KCkg
KyBkc3RPZmZzZXQgKiBlbGVtZW50U2l6ZSwgcHRyLCBjb3B5TGVuZ3RoICogZWxlbWVudFNpemUp
OwpAQCAtMjkwLDE2ICsyOTAsMTYgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpmcmFt
ZWJ1ZmZlclRleHR1cmVMYXllcihHQzNEZW51bSwgR0MzRGVudW0sIEdDM0R1aW4KIHsKIH0KIAot
V2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEludGVybmFsZm9ybWF0UGFy
YW1ldGVyKEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGVudW0pCitXZWJHTEFueSBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0OjpnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlcihHQzNEZW51bSwgR0MzRGVu
dW0sIEdDM0RlbnVtKQogewotICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAotdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjppbnZhbGlkYXRlRnJh
bWVidWZmZXIoR0MzRGVudW0sIFZlY3RvcjxHQzNEZW51bT4pCit2b2lkIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmludmFsaWRhdGVGcmFtZWJ1ZmZlcihHQzNEZW51bSwgY29uc3QgVmVjdG9yPEdD
M0RlbnVtPiYpCiB7CiB9CiAKLXZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aW52YWxpZGF0
ZVN1YkZyYW1lYnVmZmVyKEdDM0RlbnVtLCBWZWN0b3I8R0MzRGVudW0+LCBHQzNEaW50LCBHQzNE
aW50LCBHQzNEc2l6ZWksIEdDM0RzaXplaSkKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
aW52YWxpZGF0ZVN1YkZyYW1lYnVmZmVyKEdDM0RlbnVtLCBjb25zdCBWZWN0b3I8R0MzRGVudW0+
JiwgR0MzRGludCwgR0MzRGludCwgR0MzRHNpemVpLCBHQzNEc2l6ZWkpCiB7CiB9CiAKQEAgLTQw
Nyw3ICs0MDcsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnRleFN0b3JhZ2UyRChH
QzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDMwogICAgIGlmIChpc0NvbnRleHRM
b3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkdMVGV4dHVyZSogdGV4
dHVyZSA9IHZhbGlkYXRlVGV4dHVyZUJpbmRpbmcoInRleFN0b3JhZ2UyRCIsIHRhcmdldCwgZmFs
c2UpOworICAgIGF1dG8qIHRleHR1cmUgPSB2YWxpZGF0ZVRleHR1cmVCaW5kaW5nKCJ0ZXhTdG9y
YWdlMkQiLCB0YXJnZXQsIGZhbHNlKTsKICAgICBpZiAoIXRleHR1cmUpCiAgICAgICAgIHJldHVy
bjsKIApAQCAtNTAyLDcgKzUwMiw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y29t
cHJlc3NlZFRleFN1YkltYWdlM0QoR0MzRGVudW0sIEdDM0RpbnQsIEdDM0RpbnQsCiB7CiB9CiAK
LUdDM0RpbnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhZ0RhdGFMb2NhdGlvbihXZWJH
TFByb2dyYW0qLCBTdHJpbmcpCitHQzNEaW50IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEZy
YWdEYXRhTG9jYXRpb24oV2ViR0xQcm9ncmFtKiwgY29uc3QgU3RyaW5nJikKIHsKICAgICByZXR1
cm4gMDsKIH0KQEAgLTYzMyw3ICs2MzMsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmRyYXdSYW5nZUVsZW1lbnRzKEdDM0RlbnVtLCBHQzNEdWludCwgR0MzRHVpbnQsIEdDMwogewog
fQogCi12b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRyYXdCdWZmZXJzKFZlY3RvcjxHQzNE
ZW51bT4gYnVmZmVycykKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZHJhd0J1ZmZlcnMo
Y29uc3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmZmVycykKIHsKICAgICBpZiAoaXNDb250ZXh0TG9z
dCgpKQogICAgICAgICByZXR1cm47CkBAIC03ODIsOSArNzgyLDkgQEAgUmVmUHRyPFdlYkdMUXVl
cnk+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5KEdDM0RlbnVtLCBHQzNEZW51bSkK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdMUXVlcnkqLCBHQzNEZW51bSkKK1dlYkdMQW55
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdMUXVlcnkqLCBH
QzNEZW51bSkKIHsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKIFJlZlB0cjxXZWJHTFNhbXBsZXI+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNy
ZWF0ZVNhbXBsZXIoKQpAQCAtODEzLDkgKzgxMyw5IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6c2FtcGxlclBhcmFtZXRlcmYoV2ViR0xTYW1wbGVyKiwgR0MzRGVudW0sIEdDM0RmbG9h
CiB7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRTYW1wbGVy
UGFyYW1ldGVyKFdlYkdMU2FtcGxlciosIEdDM0RlbnVtKQorV2ViR0xBbnkgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6Z2V0U2FtcGxlclBhcmFtZXRlcihXZWJHTFNhbXBsZXIqLCBHQzNEZW51bSkK
IHsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
IFJlZlB0cjxXZWJHTFN5bmM+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmZlbmNlU3luYyhHQzNE
ZW51bSwgR0MzRGJpdGZpZWxkKQpAQCAtODQxLDkgKzg0MSw5IEBAIHZvaWQgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6d2FpdFN5bmMoV2ViR0xTeW5jKiwgR0MzRGJpdGZpZWxkLCBHQzNEdWludDY0
KQogewogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0U3luY1Bh
cmFtZXRlcihXZWJHTFN5bmMqLCBHQzNEZW51bSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmdldFN5bmNQYXJhbWV0ZXIoV2ViR0xTeW5jKiwgR0MzRGVudW0pCiB7Ci0gICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBSZWZQdHI8V2Vi
R0xUcmFuc2Zvcm1GZWVkYmFjaz4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlVHJhbnNm
b3JtRmVlZGJhY2soKQpAQCAtODcyLDcgKzg3Miw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6ZW5kVHJhbnNmb3JtRmVlZGJhY2soKQogewogfQogCi12b2lkIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OnRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MoV2ViR0xQcm9ncmFtKiwgVmVjdG9y
PFN0cmluZz4sIEdDM0RlbnVtKQordm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp0cmFuc2Zv
cm1GZWVkYmFja1ZhcnlpbmdzKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jiwg
R0MzRGVudW0pCiB7CiB9CiAKQEAgLTg5Nyw3ICs4OTcsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmJpbmRCdWZmZXJSYW5nZShHQzNEZW51bSwgR0MzRHVpbnQsIFdlYkdMQnVmZmVy
KiwgRwogewogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5k
ZXhlZFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50KQorV2ViR0xBbnkgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdD
M0R1aW50KQogewogICAgIHN3aXRjaCAodGFyZ2V0KSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HOgpAQCAtOTA3LDE2ICs5MDcs
MTQgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEluZGV4ZWRQYXJh
bWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpVTklGT1JNX0JVRkZFUl9TSVpFOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOSUZP
Uk1fQlVGRkVSX1NUQVJUOgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0SW5kZXhlZFBhcmFtZXRlciIsICJwYXJhbWV0ZXIgbmFt
ZSBub3QgeWV0IHN1cHBvcnRlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRJbmRleGVkUGFyYW1l
dGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOwotICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CiB9CiAKLVVpbnQzMkFycmF5KiBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpnZXRVbmlmb3JtSW5kaWNlcyhXZWJHTFByb2dyYW0qLCBWZWN0b3I8U3RyaW5n
PikKK1VpbnQzMkFycmF5KiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtSW5kaWNl
cyhXZWJHTFByb2dyYW0qLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7CiAgICAgcmV0dXJuIG51
bGxwdHI7CiB9CkBAIC05MjYsMTkgKzkyNCwxOSBAQCBJbnQzMkFycmF5KiBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtcyhXZWJHTFByb2dyYW0qLCBSZWZQdHI8VWludAog
ICAgIHJldHVybiBudWxscHRyOwogfQogCi1HQzNEdWludCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
OjpnZXRVbmlmb3JtQmxvY2tJbmRleChXZWJHTFByb2dyYW0qLCBTdHJpbmcpCitHQzNEdWludCBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtQmxvY2tJbmRleChXZWJHTFByb2dyYW0q
LCBjb25zdCBTdHJpbmcmKQogewogICAgIHJldHVybiAwOwogfQogCi1XZWJHTEdldEluZm8gV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKFdlYkdM
UHJvZ3JhbSosIEdDM0R1aW50LCBHQzNEZW51bSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNE
dWludCwgR0MzRGVudW0pCiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIHJldHVy
biBudWxscHRyOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0
QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShXZWJHTFByb2dyYW0qLCBHQzNEdWludCkKK1dlYkdMQW55
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUoV2ViR0xQ
cm9ncmFtKiwgR0MzRHVpbnQpCiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIHJl
dHVybiBudWxscHRyOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuaWZvcm1C
bG9ja0JpbmRpbmcoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQsIEdDM0R1aW50KQpAQCAtOTUwLDgg
Kzk0OCw4IEBAIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpjcmVhdGVWZXJ0ZXhBcnJheSgpCiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgYXV0byBvYmplY3QgPSBXZWJHTFZlcnRl
eEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OlZBT1R5
cGVVc2VyKTsKLSAgICBhZGRDb250ZXh0T2JqZWN0KG9iamVjdC5wdHIoKSk7CisgICAgYXV0byBv
YmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdMVmVydGV4
QXJyYXlPYmplY3Q6OlR5cGU6OlVzZXIpOworICAgIGFkZENvbnRleHRPYmplY3Qob2JqZWN0Lmdl
dCgpKTsKICAgICByZXR1cm4gV1RGTW92ZShvYmplY3QpOwogfQogCkBAIC05NjQsNyArOTYyLDcg
QEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVWZXJ0ZXhBcnJheShXZWJHTFZl
cnRleEFycmF5T2JqZWN0KiBhcnJheU9iamUKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGlm
ICghYXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpICYmIGFycmF5T2JqZWN0ID09IG1fYm91
bmRWZXJ0ZXhBcnJheU9iamVjdCkKLSAgICAgICAgc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdCgw
KTsKKyAgICAgICAgc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChudWxscHRyKTsKICAgICAKICAg
ICBhcnJheU9iamVjdC0+ZGVsZXRlT2JqZWN0KGdyYXBoaWNzQ29udGV4dDNEKCkpOwogfQpAQCAt
OTcyLDEwICs5NzAsMTAgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVWZXJ0
ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamUKIEdDM0Rib29sZWFuIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmlzVmVydGV4QXJyYXkoV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dCogYXJyYXlPYmplY3QpCiB7CiAgICAgaWYgKCFhcnJheU9iamVjdCB8fCBpc0NvbnRleHRMb3N0
KCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAg
aWYgKCFhcnJheU9iamVjdC0+aGFzRXZlckJlZW5Cb3VuZCgpIHx8ICFhcnJheU9iamVjdC0+dmFs
aWRhdGUoMCwgKnRoaXMpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIAogICAgIHJldHVybiBtX2NvbnRleHQtPmlzVmVydGV4QXJyYXkoYXJyYXlPYmplY3Qt
Pm9iamVjdCgpKTsKIH0KQEAgLTk5Niw3ICs5OTQsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmJpbmRWZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamVj
dAogICAgICAgICBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KGFycmF5T2JqZWN0KTsKICAgICB9
IGVsc2UgewogICAgICAgICBtX2NvbnRleHQtPmJpbmRWZXJ0ZXhBcnJheShtX2RlZmF1bHRWZXJ0
ZXhBcnJheU9iamVjdC0+b2JqZWN0KCkpOwotICAgICAgICBzZXRCb3VuZFZlcnRleEFycmF5T2Jq
ZWN0KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0KTsKKyAgICAgICAgc2V0Qm91bmRWZXJ0ZXhB
cnJheU9iamVjdChtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKSk7CiAgICAgfQogfQog
CkBAIC0xMDA1LDQzICsxMDAzLDM4IEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIGlmIChpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaWYgKChl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9w
aWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfRVhUX3RleHR1cmVf
ZmlsdGVyX2FuaXNvdHJvcGljIikpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLnN1cHBvcnRzKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkgeworICAg
IGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0ZXJfYW5p
c290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfRVhUX3Rl
eHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpIHsKICAgICAgICAgaWYgKCFtX2V4dFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpYykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25z
KCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7Ci0g
ICAgICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IHN0ZDo6bWFrZV91bmlx
dWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcyk7CisgICAgICAgICAgICBtX2V4
dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xf
RVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6
bWFrZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcykgOiBudWxscHRy
OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Yy5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9F
U190ZXh0dXJlX2Zsb2F0IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
c3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxvYXQiKSkgewogICAgICAgICBpZiAoIW1f
b2VzVGV4dHVyZUZsb2F0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpOwotICAgICAgICAgICAgbV9v
ZXNUZXh0dXJlRmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdD4oKnRoaXMp
OworICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXQgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNp
b24oIkdMX09FU190ZXh0dXJlX2Zsb2F0IikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91
bmlxdWU8T0VTVGV4dHVyZUZsb2F0PigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAg
ICAgIHJldHVybiBtX29lc1RleHR1cmVGbG9hdC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpCi0gICAg
ICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVy
ZV9mbG9hdF9saW5lYXIiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUs
ICJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkgewogICAgICAgICBpZiAoIW1fb2VzVGV4dHVy
ZUZsb2F0TGluZWFyKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5l
bnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKTsKLSAgICAgICAgICAg
IG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxv
YXRMaW5lYXI+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyID0g
ZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKQor
ICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXRMaW5lYXI+
KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVy
ZUZsb2F0TGluZWFyLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpCi0gICAgICAgICYmIG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpIHsK
KyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9m
bG9hdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlSGFsZkZsb2F0KSB7Ci0gICAgICAg
ICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4
dHVyZV9oYWxmX2Zsb2F0Iik7Ci0gICAgICAgICAgICBtX29lc1RleHR1cmVIYWxmRmxvYXQgPSBz
dGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+KCp0aGlzKTsKKyAgICAgICAgICAg
IG1fb2VzVGV4dHVyZUhhbGZGbG9hdCA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfT0VT
X3RleHR1cmVfaGFsZl9mbG9hdCIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVl
PE9FU1RleHR1cmVIYWxmRmxvYXQ+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuIG1fb2VzVGV4dHVyZUhhbGZGbG9hdC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFy
IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09F
U190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSkgewogICAgICAg
ICBpZiAoIW1fb2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhcikgewotICAgICAgICAgICAgbV9jb250
ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVfaGFsZl9m
bG9hdF9saW5lYXIiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhciA9
IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcj4oKnRoaXMpOworICAg
ICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyID0gZW5hYmxlU3VwcG9ydGVkRXh0
ZW5zaW9uKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpCisgICAgICAgICAgICAg
ICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXI+KCp0aGlzKSA6
IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUhhbGZGbG9h
dExpbmVhci5nZXQoKTsKICAgICB9CkBAIC0xMDUwLDI4ICsxMDQzLDMyIEBAIFdlYkdMRXh0ZW5z
aW9uKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBu
YW1lKQogICAgICAgICAgICAgbV93ZWJnbExvc2VDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxX
ZWJHTExvc2VDb250ZXh0PigqdGhpcyk7CiAgICAgICAgIHJldHVybiBtX3dlYmdsTG9zZUNvbnRl
eHQuZ2V0KCk7CiAgICAgfQotICAgIGlmICgoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAi
V0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKSkKLSAgICAgICAgJiYgV2ViR0xD
b21wcmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAgICBpZiAoIW1f
d2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQykKLSAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2Vk
VGV4dHVyZUFUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQz4o
KnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfV0VC
R0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbENvbXBy
ZXNzZWRUZXh0dXJlQVRDKSB7CisgICAgICAgICAgICBpZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkKKyAgICAgICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3Nl
ZFRleHR1cmVBVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM+
KCp0aGlzKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNzZWRUZXh0
dXJlQVRDLmdldCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFt
ZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSkKLSAgICAgICAgJiYg
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0gICAgICAg
IGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMpCi0gICAgICAgICAgICBtX3dlYmds
Q29tcHJlc3NlZFRleHR1cmVQVlJUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVBWUlRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFt
ZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiKSkgeworICAgICAgICBp
ZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKSB7CisgICAgICAgICAgICBtX3dlYmds
Q29tcHJlc3NlZFRleHR1cmVQVlJUQyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3Vw
cG9ydGVkKCp0aGlzKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENv
bXByZXNzZWRUZXh0dXJlUFZSVEM+KCp0aGlzKSA6IG51bGxwdHI7CisgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmdldCgpOwogICAgIH0KLSAg
ICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfY29tcHJlc3NlZF90ZXh0
dXJlX3MzdGMiKQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9y
dGVkKCp0aGlzKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMp
Ci0gICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDID0gc3RkOjptYWtlX3Vu
aXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQz4oKnRoaXMpOworICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpKSB7
CisgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQykgeworICAgICAgICAg
ICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVT
M1RDOjpzdXBwb3J0ZWQoKnRoaXMpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVl
PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9
CiAgICAgICAgIHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDLmdldCgpOwogICAg
IH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVwdGhfdGV4
dHVyZSIpCi0gICAgICAgICYmIFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoKmdyYXBoaWNz
Q29udGV4dDNEKCkpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERlcHRoVGV4dHVyZSkKLSAgICAg
ICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVwdGhU
ZXh0dXJlPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldF
QkdMX2RlcHRoX3RleHR1cmUiKSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xEZXB0aFRleHR1cmUp
IHsKKyAgICAgICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUgPSBXZWJHTERlcHRoVGV4dHVyZTo6
c3VwcG9ydGVkKCpncmFwaGljc0NvbnRleHQzRCgpKQorICAgICAgICAgICAgICAgID8gc3RkOjpt
YWtlX3VuaXF1ZTxXZWJHTERlcHRoVGV4dHVyZT4oKnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAg
fQogICAgICAgICByZXR1cm4gbV93ZWJnbERlcHRoVGV4dHVyZS5nZXQoKTsKICAgICB9CiAgICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlYnVnX3JlbmRlcmVyX2lu
Zm8iKSkgewpAQCAtMTA3OSwxMCArMTA3NiwxMSBAQCBXZWJHTEV4dGVuc2lvbiogV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAg
ICAgIG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbz4oKnRoaXMpOwogICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnUmVuZGVy
ZXJJbmZvLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1l
LCAiV0VCR0xfZGVidWdfc2hhZGVycyIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLnN1cHBvcnRzKCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkgewot
ICAgICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1NoYWRlcnMpCi0gICAgICAgICAgICBtX3dlYmdsRGVi
dWdTaGFkZXJzID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnU2hhZGVycz4oKnRoaXMpOwor
ICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19zaGFkZXJz
IikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdTaGFkZXJzKSB7CisgICAgICAgICAgICBt
X3dlYmdsRGVidWdTaGFkZXJzID0gbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMo
QVNDSUlMaXRlcmFsIHsgIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIgfSkKKyAg
ICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1Z1NoYWRlcnM+KCp0aGlz
KSA6IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZWJ1Z1NoYWRl
cnMuZ2V0KCk7CiAgICAgfQogCkBAIC0xMDk2LDkwICsxMDk0LDkwIEBAIFZlY3RvcjxTdHJpbmc+
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnMoKQogICAgIGlm
IChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAK
LSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0
dXJlX2Zsb2F0IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2Zsb2F0Iik7
Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4
dHVyZV9mbG9hdF9saW5lYXIiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVf
ZmxvYXRfbGluZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBv
cnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQo
Ik9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikpCi0gICAg
ICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik7Ci0gICAg
aWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfdGV4dHVyZV9m
aWx0ZXJfYW5pc290cm9waWMiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX0VYVF90
ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOworICAgIGF1dG8mIGV4dGVuc2lvbnMgPSBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJ
SUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfZmxvYXQiIH0pKQorICAgICAgICByZXN1bHQuYXBw
ZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9mbG9hdCIgfSk7CisgICAgaWYgKGV4dGVu
c2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVh
ciIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU190ZXh0dXJl
X2Zsb2F0X2xpbmVhciIgfSk7CisgICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRl
cmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pKQorICAgICAgICByZXN1bHQuYXBw
ZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiB9KTsKKyAgICBpZiAo
ZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfaGFsZl9m
bG9hdF9saW5lYXIiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJP
RVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIgfSk7CisgICAgaWYgKGV4dGVuc2lvbnMuc3Vw
cG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIg
fSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQktJVF9FWFRfdGV4
dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pOwogICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0
dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRf
V0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpOworICAgICAgICByZXN1bHQuYXBwZW5kKEFT
Q0lJTGl0ZXJhbCB7ICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIgfSk7CiAg
ICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0aGlzKSkKLSAg
ICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0
YyIpOworICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJLSVRfV0VCR0xf
Y29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIiB9KTsKICAgICBpZiAoV2ViR0xDb21wcmVzc2VkVGV4
dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhpcykpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdM
X2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlM
aXRlcmFsIHsgIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIiB9KTsKICAgICBpZiAoV2Vi
R0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqZ3JhcGhpY3NDb250ZXh0M0QoKSkpCi0gICAgICAg
IHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlcHRoX3RleHR1cmUiKTsKLSAgICByZXN1bHQuYXBwZW5k
KCJXRUJHTF9sb3NlX2NvbnRleHQiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25z
KCkuc3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIpKQotICAgICAg
ICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19zaGFkZXJzIik7Ci0gICAgcmVzdWx0LmFwcGVu
ZCgiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpOworICAgICAgICByZXN1bHQuYXBwZW5kKEFT
Q0lJTGl0ZXJhbCB7ICJXRUJHTF9kZXB0aF90ZXh0dXJlIiB9KTsKKyAgICByZXN1bHQuYXBwZW5k
KEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9sb3NlX2NvbnRleHQiIH0pOworICAgIGlmIChleHRlbnNp
b25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9z
b3VyY2UiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9k
ZWJ1Z19zaGFkZXJzIiB9KTsKKyAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJH
TF9kZWJ1Z19yZW5kZXJlcl9pbmZvIiB9KTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVdl
YkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRGcmFtZWJ1ZmZlckF0dGFjaG1l
bnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51
bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEZyYW1lYnVmZmVy
QXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQs
IEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwg
IXZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycygiZ2V0RnJhbWVidWZmZXJBdHRhY2ht
ZW50UGFyYW1ldGVyIiwgdGFyZ2V0LCBhdHRhY2htZW50KSkKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBpZiAoIW1fZnJh
bWVidWZmZXJCaW5kaW5nIHx8ICFtX2ZyYW1lYnVmZmVyQmluZGluZy0+b2JqZWN0KCkpIHsKICAg
ICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFU
SU9OLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgIm5vIGZyYW1lYnVmZmVy
IGJvdW5kIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QgPSBt
X2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVudE9iamVjdChhdHRhY2htZW50KTsKKyAg
ICBhdXRvKiBvYmplY3QgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVudE9iamVj
dChhdHRhY2htZW50KTsKICAgICBpZiAoIW9iamVjdCkgewogICAgICAgICBpZiAocG5hbWUgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUpCi0g
ICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKTsK
LSAgICAgICAgLy8gT3BlbkdMIEVTIDIuMCBzcGVjaWZpZXMgSU5WQUxJRF9FTlVNIGluIHRoaXMg
Y2FzZSwgd2hpbGUgZGVza3RvcCBHTAotICAgICAgICAvLyBzcGVjaWZpZXMgSU5WQUxJRF9PUEVS
QVRJT04uCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNz
Q29udGV4dDNEOjpOT05FKTsKKyAgICAgICAgLy8gT3BlbkdMIEVTIDIuMCBzcGVjaWZpZXMgSU5W
QUxJRF9FTlVNIGluIHRoaXMgY2FzZSwgd2hpbGUgZGVza3RvcCBHTCBzcGVjaWZpZXMgSU5WQUxJ
RF9PUEVSQVRJT04uCiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNE
OjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLCAiaW52
YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICAKLSAgICBBU1NFUlQob2JqZWN0LT5p
c1RleHR1cmUoKSB8fCBvYmplY3QtPmlzUmVuZGVyYnVmZmVyKCkpOwogICAgIGlmIChvYmplY3Qt
PmlzVGV4dHVyZSgpKSB7CiAgICAgICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRToKLSAg
ICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUp
OworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRSk7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVG
RkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUU6Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJlKj4ob2JqZWN0KSk7CisgICAgICAgICAg
ICByZXR1cm4gbWFrZVJlZlB0cihyZWludGVycHJldF9jYXN0PFdlYkdMVGV4dHVyZSY+KCpvYmpl
Y3QpKTsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNI
TUVOVF9URVhUVVJFX0xFVkVMOgogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFDRToKICAgICAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT0xPUl9FTkNPRElORzog
ewogICAgICAgICAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAgICAgICAgICAgICBtX2NvbnRleHQt
PmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2KHRhcmdldCwgYXR0YWNobWVudCwg
cG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsK
KyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
RU5VTSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFt
ZXRlciBuYW1lIGZvciB0ZXh0dXJlIGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CiAg
ICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG9iamVjdC0+aXNSZW5kZXJidWZmZXIoKSk7CiAg
ICAgICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRToKLSAgICAgICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUik7CisgICAgICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJC
VUZGRVIpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX09CSkVDVF9OQU1FOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhyZWlu
dGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyKj4ob2JqZWN0KSk7CisgICAgICAgICAgICBy
ZXR1cm4gbWFrZVJlZlB0cihyZWludGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyJj4oKm9i
amVjdCkpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX0NPTE9SX0VOQ09ESU5HIDogewotICAgICAgICAgICAgV2ViR0xSZW5kZXJidWZmZXIq
IHJlbmRlckJ1ZmZlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5kZXJidWZmZXIqPihvYmpl
Y3QpOwotICAgICAgICAgICAgR0MzRGVudW0gcmVuZGVyQnVmZmVyRm9ybWF0ID0gcmVuZGVyQnVm
ZmVyLT5nZXRJbnRlcm5hbEZvcm1hdCgpOwotICAgICAgICAgICAgaWYgKHJlbmRlckJ1ZmZlckZv
cm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6U1JHQjhfQUxQSEE4Ci0gICAgICAgICAgICAgICAg
fHwgcmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NS
R0I4X0VUQzIKLSAgICAgICAgICAgICAgICB8fCByZW5kZXJCdWZmZXJGb3JtYXQgPT0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJfRUFDCi0gICAgICAgICAg
ICAgICAgfHwgcmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVT
U0VEX1NSR0I4X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMikgewotICAgICAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlNSR0IpOworICAgICAgICAgICAg
YXV0byYgcmVuZGVyQnVmZmVyID0gcmVpbnRlcnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZlciY+
KCpvYmplY3QpOworICAgICAgICAgICAgYXV0byBmb3JtYXQgPSByZW5kZXJCdWZmZXIuZ2V0SW50
ZXJuYWxGb3JtYXQoKTsKKyAgICAgICAgICAgIGlmIChmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0
M0Q6OlNSR0I4X0FMUEhBOAorICAgICAgICAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6Q09NUFJFU1NFRF9TUkdCOF9FVEMyCisgICAgICAgICAgICAgICAgfHwgZm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NSR0I4X0FMUEhBOF9FVEMyX0VBQwor
ICAgICAgICAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NF
RF9TUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIpIHsKKyAgICAgICAgICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCKTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0
M0Q6OkxJTkVBUik7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdy
YXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1l
dGVyIG5hbWUgZm9yIHJlbmRlcmJ1ZmZlciBhdHRhY2htZW50Iik7Ci0gICAgICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAg
fQogICAgIH0KIH0KQEAgLTExOTEsMTkgKzExODksMTYgQEAgYm9vbCBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0Ojp2YWxpZGF0ZUZyYW1lYnVmZmVyRnVuY1BhcmFtZXRlcnMoY29uc3QgY2hhciogZnVu
Y3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBzd2l0Y2ggKGF0dGFjaG1lbnQp
IHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMDoKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5UOgogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OlNURU5DSUxfQVRUQUNITUVOVDoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAgIGJyZWFrOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgotICAgICAgICBpZiAoYXR0YWNobWVudCA+IEdyYXBo
aWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMAotICAgICAgICAgICAgJiYgYXR0YWNobWVu
dCA8IHN0YXRpY19jYXN0PEdDM0RlbnVtPihHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNI
TUVOVDAgKyBnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkpKQotICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGlmIChhdHRhY2htZW50ID49IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hN
RU5UMCAmJiBhdHRhY2htZW50IDwgc3RhdGljX2Nhc3Q8R0MzRGVudW0+KEdyYXBoaWNzQ29udGV4
dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCArIGdldE1heENvbG9yQXR0YWNobWVudHMoKSkpCisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCBhdHRhY2htZW50
Iik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIHRydWU7CiB9CiAK
IEdDM0RpbnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0TWF4RHJhd0J1ZmZlcnMoKQpAQCAt
MTM5NSw3ICsxMzkwLDcgQEAgR0MzRGVudW0gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmFzZUlu
dGVybmFsRm9ybWF0RnJvbUludGVybmFsRm9ybWF0KEdDM0RlbnVtIGkKIGJvb2wgV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6aXNJbnRlZ2VyRm9ybWF0KEdDM0RlbnVtIGludGVybmFsZm9ybWF0KQog
ewogICAgIC8vIEZJWE1FOiBiYXNlSW50ZXJuYWxGb3JtYXRGcm9tSW50ZXJuYWxGb3JtYXQoKSBu
ZXZlciByZXR1cm5zIGFueSBvZiB0aGVzZSBlbnVtcy4KLSAgICAvLyBDdXJyZW50bHksIFRoaXMg
ZnVuY3Rpb24gZXJyb25lb3VzbHkgYWx3YXlzIHJldHVybnMgZmFsc2UuCisgICAgLy8gQmVjYXVz
ZSBvZiB0aGF0LCB0aGlzIGZ1bmN0aW9uIGVycm9uZW91c2x5IGFsd2F5cyByZXR1cm5zIGZhbHNl
IQogICAgIHN3aXRjaCAoYmFzZUludGVybmFsRm9ybWF0RnJvbUludGVybmFsRm9ybWF0KGludGVy
bmFsZm9ybWF0KSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFRF9JTlRFR0VSOgog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHX0lOVEVHRVI6CkBAIC0xNDA2LDExICsxNDAx
LDEwIEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNJbnRlZ2VyRm9ybWF0KEdDM0Rl
bnVtIGludGVybmFsZm9ybWF0KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotV2ViR0xHZXRJbmZv
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKK1dl
YkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFt
ZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKCk7Ci0gICAgY29uc3QgaW50IGludFplcm8gPSAwOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6QUNUSVZFX1RFWFRVUkU6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFt
ZXRlcihwbmFtZSk7CkBAIC0xNDIxLDcgKzE0MTUsNyBAQCBXZWJHTEdldEluZm8gV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkFMUEhBX0JJVFM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0
ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZFUl9CSU5E
SU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fYm91bmRBcnJheUJ1ZmZlci5nZXQo
KSk7CisgICAgICAgIHJldHVybiBtX2JvdW5kQXJyYXlCdWZmZXI7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6QkxFTkQ6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBu
YW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORF9DT0xPUjoKQEAgLTE0NDUs
MTYgKzE0MzksMTYgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBh
cmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xP
Ul9XUklURU1BU0s6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIocG5h
bWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfVEVYVFVSRV9GT1JN
QVRTOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDMyQXJyYXk+
KFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMuZGF0YSgpLCBt
X2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5zaXplKCkpKSk7CisgICAgICAgIHJldHVybiBVaW50
MzJBcnJheTo6Y3JlYXRlKG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLmRhdGEoKSwgbV9jb21w
cmVzc2VkVGV4dHVyZUZvcm1hdHMuc2l6ZSgpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpDVUxMX0ZBQ0U6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBuYW1lKTsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVUxMX0ZBQ0VfTU9ERToKICAgICAgICAgcmV0
dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpDVVJSRU5UX1BST0dSQU06Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9j
dXJyZW50UHJvZ3JhbS5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX2N1cnJlbnRQcm9ncmFtOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JJVFM6CiAgICAgICAgIGlmICghbV9m
cmFtZWJ1ZmZlckJpbmRpbmcgJiYgIW1fYXR0cmlidXRlcy5kZXB0aCkKLSAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oaW50WmVybyk7CisgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6REVQVEhfQ0xFQVJfVkFMVUU6CiAgICAgICAgIHJldHVybiBnZXRGbG9hdFBhcmFtZXRl
cihwbmFtZSk7CkBAIC0xNDY5LDkgKzE0NjMsOSBAQCBXZWJHTEdldEluZm8gV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRJVEhFUjoKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIo
cG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVS
X0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9ib3VuZFZlcnRleEFycmF5
T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKSk7CisgICAgICAgIHJldHVybiBtYWtlUmVm
UHRyKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVudEFycmF5QnVmZmVyKCkpOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8obV9mcmFtZWJ1ZmZlckJpbmRpbmcuZ2V0KCkpOworICAgICAg
ICByZXR1cm4gbV9mcmFtZWJ1ZmZlckJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RlJPTlRfRkFDRToKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBu
YW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpHRU5FUkFURV9NSVBNQVBfSElOVDoK
QEAgLTE1MTksOSArMTUxMyw5IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkVEX0JJVFM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9CSU5ESU5HOgotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKG1fcmVuZGVyYnVmZmVyQmluZGluZy5nZXQoKSk7CisgICAgICAg
IHJldHVybiBtX3JlbmRlcmJ1ZmZlckJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkVOREVSRVI6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oU3RyaW5nKCJXZWJLaXQg
V2ViR0wiKSk7CisgICAgICAgIHJldHVybiBTdHJpbmcgeyBBU0NJSUxpdGVyYWwgeyAiV2ViS2l0
IFdlYkdMIiB9IH07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0FNUExFX0JVRkZFUlM6
CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OlNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQ6CkBAIC0xNTM1LDcgKzE1MjksNyBA
QCBXZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0Rl
bnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNDSVNTT1JfVEVTVDoKICAg
ICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTjoKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygiV2ViR0wgR0xTTCBFUyAxLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0cmluZyhH
cmFwaGljc0NvbnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OKSArICIpIik7CisgICAg
ICAgIHJldHVybiAiV2ViR0wgR0xTTCBFUyAxLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0cmluZyhH
cmFwaGljc0NvbnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OKSArICIpIjsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JBQ0tfRkFJTDoKICAgICAgICAgcmV0dXJu
IGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpTVEVOQ0lMX0JBQ0tfRlVOQzoKQEAgLTE1NTIsNyArMTU0Niw3IEBAIFdlYkdMR2V0SW5m
byBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAg
ICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9CSVRTOgogICAgICAgICBpZiAoIW1fZnJhbWVidWZm
ZXJCaW5kaW5nICYmICFtX2F0dHJpYnV0ZXMuc3RlbmNpbCkKLSAgICAgICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oaW50WmVybyk7CisgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgcmV0
dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
U1RFTkNJTF9DTEVBUl9WQUxVRToKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFt
ZSk7CkBAIC0xNTc1LDM4ICsxNTY5LDM4IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6U1VCUElYRUxfQklUUzoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihw
bmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5HXzJEOgot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVy
ZVVuaXRdLnRleHR1cmUyREJpbmRpbmcuZ2V0KCkpOworICAgICAgICByZXR1cm4gbV90ZXh0dXJl
VW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4dHVyZTJEQmluZGluZzsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVA6Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4dHVy
ZUN1YmVNYXBCaW5kaW5nLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIG1fdGV4dHVyZVVuaXRzW21f
YWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmVDdWJlTWFwQmluZGluZzsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5UOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFy
YW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfRkxJUF9Z
X1dFQkdMOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdW5wYWNrRmxpcFkpOworICAg
ICAgICByZXR1cm4gbV91bnBhY2tGbGlwWTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpV
TlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0w6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8obV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAgICAgcmV0dXJuIG1fdW5wYWNrUHJl
bXVsdGlwbHlBbHBoYTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQ09MT1JT
UEFDRV9DT05WRVJTSU9OX1dFQkdMOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdW5w
YWNrQ29sb3JzcGFjZUNvbnZlcnNpb24pOworICAgICAgICByZXR1cm4gbV91bnBhY2tDb2xvcnNw
YWNlQ29udmVyc2lvbjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1I6Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oU3RyaW5nKCJXZWJLaXQiKSk7CisgICAgICAgIHJldHVy
biBTdHJpbmcgeyBBU0NJSUxpdGVyYWwgeyAiV2ViS2l0IiB9IH07CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VkVSU0lPTjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygiV2ViR0wg
Mi4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlNJT04p
ICsgIikiKTsKKyAgICAgICAgcmV0dXJuICJXZWJHTCAyLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0
cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTikgKyAiKSI7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VklFV1BPUlQ6CiAgICAgICAgIHJldHVybiBnZXRXZWJHTEludEFycmF5UGFy
YW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJlckluZm86OlVOTUFTS0VE
X1JFTkRFUkVSX1dFQkdMOgogICAgICAgICBpZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQot
ICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2NvbnRleHQtPmdldFN0cmluZyhHcmFw
aGljc0NvbnRleHQzRDo6UkVOREVSRVIpKTsKKyAgICAgICAgICAgIHJldHVybiBtX2NvbnRleHQt
PmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpOwogICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVy
IiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8gbm90
IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJlckluZm86OlVOTUFTS0VEX1ZF
TkRPUl9XRUJHTDoKICAgICAgICAgaWYgKG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbykKLSAgICAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3ND
b250ZXh0M0Q6OlZFTkRPUikpOworICAgICAgICAgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0U3Ry
aW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1IpOwogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFs
aWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8gbm90IGVuYWJsZWQi
KTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhU
OiAvLyBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMKICAgICAgICAgaWYgKG1fZXh0VGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljKQogICAgICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50
UGFyYW1ldGVyKEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUKTsK
ICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5V
TSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfdGV4dHVyZV9m
aWx0ZXJfYW5pc290cm9waWMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpGUkFHTUVOVF9TSEFERVJfREVSSVZBVElWRV9ISU5UOgogICAgICAgICByZXR1cm4gZ2V0
SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpNQVhfM0Rf
VEVYVFVSRV9TSVpFOgpAQCAtMTY4OSwxMiArMTY4MywxMCBAQCBXZWJHTEdldEluZm8gV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgICAgICBy
ZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6VU5JRk9STV9CVUZGRVJfT0ZGU0VUX0FMSUdOTUVOVDoKICAgICAgICAgcmV0dXJuIGdl
dEludFBhcmFtZXRlcihwbmFtZSk7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVY
X0FSUkFZX0JJTkRJTkc6IHsKLSAgICAgICAgaWYgKCFtX2JvdW5kVmVydGV4QXJyYXlPYmplY3Qt
PmlzRGVmYXVsdE9iamVjdCgpKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0
aWNfY2FzdDxXZWJHTFZlcnRleEFycmF5T2JqZWN0Kj4obV9ib3VuZFZlcnRleEFycmF5T2JqZWN0
LmdldCgpKSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKLSAgICAgICAgfQotICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVJSQVlfQklO
RElORzoKKyAgICAgICAgaWYgKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNEZWZhdWx0T2Jq
ZWN0KCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIG1ha2VS
ZWZQdHIoc3RhdGljX2Nhc3Q8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCY+KCptX2JvdW5kVmVydGV4
QXJyYXlPYmplY3QpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JVRkZFUjA6
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RFJBV19CVUZGRVIxOgogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMjoKQEAgLTE3MTAsMTQgKzE3MDIsMTAgQEAgV2Vi
R0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBw
bmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JVRkZFUjEyOgogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTM6CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RFJBV19CVUZGRVIxNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFX
X0JVRkZFUjE1OiB7Ci0gICAgICAgIEdDM0RpbnQgdmFsdWUgPSBHcmFwaGljc0NvbnRleHQzRDo6
Tk9ORTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JVRkZFUjE1OgogICAgICAg
ICBpZiAobV9mcmFtZWJ1ZmZlckJpbmRpbmcpCi0gICAgICAgICAgICB2YWx1ZSA9IG1fZnJhbWVi
dWZmZXJCaW5kaW5nLT5nZXREcmF3QnVmZmVyKHBuYW1lKTsKLSAgICAgICAgZWxzZSAvLyBlbXVs
YXRlZCBiYWNrYnVmZmVyCi0gICAgICAgICAgICB2YWx1ZSA9IG1fYmFja0RyYXdCdWZmZXI7Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOwotICAgICAgICB9CisgICAgICAgICAg
ICByZXR1cm4gbV9mcmFtZWJ1ZmZlckJpbmRpbmctPmdldERyYXdCdWZmZXIocG5hbWUpOworICAg
ICAgICByZXR1cm4gbV9iYWNrRHJhd0J1ZmZlcjsgLy8gZW11bGF0ZWQgYmFja2J1ZmZlcgogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPUFlfUkVBRF9CVUZGRVI6CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6Q09QWV9XUklURV9CVUZGRVI6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UElYRUxfUEFDS19CVUZGRVJfQklORElORzogICAKQEAgLTE3MzAsMTAgKzE3MTgsMTAg
QEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNE
ZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpUUkFOU0ZPUk1fRkVFREJB
Q0tfQlVGRkVSX0JJTkRJTkc6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5JRk9STV9C
VUZGRVJfQklORElORzoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJwYXJhbWV0ZXIgbmFtZSBub3QgeWV0
IHN1cHBvcnRlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBw
YXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMTc1NCw3ICsxNzQyLDcgQEAgYm9vbCBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlDb25zZXJ2YXRpdmUoR0Mz
RGVudW0gdHlwZSwgdW5zaWcKICAgICAvLyBUaGUgY2FzZSBjb3VudD09MCBpcyBhbHJlYWR5IGRl
YWx0IHdpdGggaW4gZHJhd0VsZW1lbnRzIGJlZm9yZSB2YWxpZGF0ZUluZGV4QXJyYXlDb25zZXJ2
YXRpdmUuCiAgICAgaWYgKCFudW1FbGVtZW50cykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGNvbnN0IEFycmF5QnVmZmVyKiBidWZmZXIgPSBlbGVtZW50QXJyYXlCdWZmZXItPmVsZW1lbnRB
cnJheUJ1ZmZlcigpOworICAgIGF1dG8qIGJ1ZmZlciA9IGVsZW1lbnRBcnJheUJ1ZmZlci0+ZWxl
bWVudEFycmF5QnVmZmVyKCk7CiAgICAgQVNTRVJUKGJ1ZmZlcik7CiAgICAgCiAgICAgaW50IG1h
eEluZGV4ID0gZWxlbWVudEFycmF5QnVmZmVyLT5nZXRDYWNoZWRNYXhJbmRleCh0eXBlKTsKQEAg
LTE4MDYsNyArMTc5NCw2IEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVC
bGVuZEVxdWF0aW9uKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0MzCiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6TUlOOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6Ok1BWDoKICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0
aW9uTmFtZSwgImludmFsaWQgbW9kZSIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgKaW5k
ZXggNzU1ZGU2YmJkZDI2OTgxNjdkM2JhYTBmZGRkMzRiYmUwNjExNWQ1OS4uYjQ4MDNhZjE2MmVj
NWYwNDNlNzk5NjlkNmQ4NWU1MzBlZDM2NWNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw3ICsyOCw2IEBACiAjaWYg
RU5BQkxFKFdFQkdMMikKIAogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIK
LSNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQx
LDkgKzQwLDkgQEAgY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDsKIGNsYXNzIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSB7
CiBwdWJsaWM6CiAgICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYs
IFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwotICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQoSFRN
TENhbnZhc0VsZW1lbnQmLCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4
dEF0dHJpYnV0ZXMpOworICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1l
bnQmLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwog
Ci0gICAgLyogQnVmZmVyIG9iamVjdHMgKi8KKyAgICAvLyBCdWZmZXIgb2JqZWN0cwogICAgIHVz
aW5nIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJ1ZmZlckRhdGE7CiAgICAgdXNpbmcgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YnVmZmVyU3ViRGF0YTsKICAgICB2b2lkIGJ1ZmZlckRh
dGEoR0MzRGVudW0gdGFyZ2V0LCBjb25zdCBBcnJheUJ1ZmZlclZpZXcmIGRhdGEsIEdDM0RlbnVt
IHVzYWdlLCBHQzNEdWludCBzcmNPZmZzZXQsIEdDM0R1aW50IGxlbmd0aCk7CkBAIC01MSwxOSAr
NTAsMTkgQEAgcHVibGljOgogICAgIHZvaWQgY29weUJ1ZmZlclN1YkRhdGEoR0MzRGVudW0gcmVh
ZFRhcmdldCwgR0MzRGVudW0gd3JpdGVUYXJnZXQsIEdDM0RpbnQ2NCByZWFkT2Zmc2V0LCBHQzNE
aW50NjQgd3JpdGVPZmZzZXQsIEdDM0RpbnQ2NCBzaXplKTsKICAgICB2b2lkIGdldEJ1ZmZlclN1
YkRhdGEoR0MzRGVudW0gdGFyZ2V0LCBsb25nIGxvbmcgc3JjQnl0ZU9mZnNldCwgUmVmUHRyPEFy
cmF5QnVmZmVyVmlldz4mJiBkc3REYXRhLCBHQzNEdWludCBkc3RPZmZzZXQgPSAwLCBHQzNEdWlu
dCBsZW5ndGggPSAwKTsKICAgICAKLSAgICAvKiBGcmFtZWJ1ZmZlciBvYmplY3RzICovCi0gICAg
V2ViR0xHZXRJbmZvIGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKKyAgICAv
LyBGcmFtZWJ1ZmZlciBvYmplY3RzCisgICAgV2ViR0xBbnkgZ2V0RnJhbWVidWZmZXJBdHRhY2ht
ZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVu
dW0gcG5hbWUpIGZpbmFsOwogICAgIHZvaWQgYmxpdEZyYW1lYnVmZmVyKEdDM0RpbnQgc3JjWDAs
IEdDM0RpbnQgc3JjWTAsIEdDM0RpbnQgc3JjWDEsIEdDM0RpbnQgc3JjWTEsIEdDM0RpbnQgZHN0
WDAsIEdDM0RpbnQgZHN0WTAsIEdDM0RpbnQgZHN0WDEsIEdDM0RpbnQgZHN0WTEsIEdDM0RiaXRm
aWVsZCBtYXNrLCBHQzNEZW51bSBmaWx0ZXIpOwogICAgIHZvaWQgZnJhbWVidWZmZXJUZXh0dXJl
TGF5ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEdWludCB0ZXh0
dXJlLCBHQzNEaW50IGxldmVsLCBHQzNEaW50IGxheWVyKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0
SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRlcm5h
bGZvcm1hdCwgR0MzRGVudW0gcG5hbWUpOwotICAgIHZvaWQgaW52YWxpZGF0ZUZyYW1lYnVmZmVy
KEdDM0RlbnVtIHRhcmdldCwgVmVjdG9yPEdDM0RlbnVtPiBhdHRhY2htZW50cyk7Ci0gICAgdm9p
ZCBpbnZhbGlkYXRlU3ViRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBWZWN0b3I8R0MzRGVu
dW0+IGF0dGFjaG1lbnRzLCBHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBH
QzNEc2l6ZWkgaGVpZ2h0KTsKKyAgICBXZWJHTEFueSBnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRl
cihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBwbmFt
ZSk7CisgICAgdm9pZCBpbnZhbGlkYXRlRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBjb25z
dCBWZWN0b3I8R0MzRGVudW0+JiBhdHRhY2htZW50cyk7CisgICAgdm9pZCBpbnZhbGlkYXRlU3Vi
RnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBjb25zdCBWZWN0b3I8R0MzRGVudW0+JiBhdHRh
Y2htZW50cywgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVp
IGhlaWdodCk7CiAgICAgdm9pZCByZWFkQnVmZmVyKEdDM0RlbnVtIHNyYyk7CiAgICAgCi0gICAg
LyogUmVuZGVyYnVmZmVyIG9iamVjdHMgKi8KKyAgICAvLyBSZW5kZXJidWZmZXIgb2JqZWN0cwog
ICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdDM0RlbnVtIHRhcmdldCwg
R0MzRHNpemVpIHNhbXBsZXMsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lk
dGgsIEdDM0RzaXplaSBoZWlnaHQpOwogICAgIAotICAgIC8qIFRleHR1cmUgb2JqZWN0cyAqLwor
ICAgIC8vIFRleHR1cmUgb2JqZWN0cwogICAgIHZvaWQgdGV4U3RvcmFnZTJEKEdDM0RlbnVtIHRh
cmdldCwgR0MzRHNpemVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7CiAgICAgdm9pZCB0ZXhTdG9yYWdlM0QoR0MzRGVu
dW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0Mz
RHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEc2l6ZWkgZGVwdGgpOwogICAgIHZv
aWQgdGV4SW1hZ2UzRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgaW50
ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRHNpemVp
IGRlcHRoLCBHQzNEaW50IGJvcmRlciwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBS
ZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmIHBpeGVscyk7CkBAIC03NiwxMCArNzUsMTAgQEAgcHVi
bGljOgogICAgIHZvaWQgY29tcHJlc3NlZFRleEltYWdlM0QoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
aW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNE
c2l6ZWkgaGVpZ2h0LCBHQzNEc2l6ZWkgZGVwdGgsIEdDM0RpbnQgYm9yZGVyLCBHQzNEc2l6ZWkg
aW1hZ2VTaXplLCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmIGRhdGEpOwogICAgIHZvaWQgY29t
cHJlc3NlZFRleFN1YkltYWdlM0QoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNE
aW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB6b2Zmc2V0LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RzaXplaSBkZXB0aCwgR0MzRGVudW0gZm9ybWF0
LCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmIGRhdGEpOwog
ICAgIAotICAgIC8qIFByb2dyYW1zIGFuZCBzaGFkZXJzICovCi0gICAgR0MzRGludCBnZXRGcmFn
RGF0YUxvY2F0aW9uKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgU3RyaW5nIG5hbWUpOworICAgIC8v
IFByb2dyYW1zIGFuZCBzaGFkZXJzCisgICAgR0MzRGludCBnZXRGcmFnRGF0YUxvY2F0aW9uKFdl
YkdMUHJvZ3JhbSosIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgCi0gICAgLyogVW5pZm9ybXMg
YW5kIGF0dHJpYnV0ZXMgKi8KKyAgICAvLyBVbmlmb3JtcyBhbmQgYXR0cmlidXRlcwogICAgIHZv
aWQgdW5pZm9ybTF1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbiosIEdDM0R1aW50IHYwKTsKICAgICB2
b2lkIHVuaWZvcm0ydWkoV2ViR0xVbmlmb3JtTG9jYXRpb24qLCBHQzNEdWludCB2MCwgR0MzRHVp
bnQgdjEpOwogICAgIHZvaWQgdW5pZm9ybTN1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbiosIEdDM0R1
aW50IHYwLCBHQzNEdWludCB2MSwgR0MzRHVpbnQgdjIpOwpAQCAtMTAwLDcwICs5OSw3MCBAQCBw
dWJsaWM6CiAgICAgdm9pZCB2ZXJ0ZXhBdHRyaWJJNHVpdihHQzNEdWludCBpbmRleCwgUmVmUHRy
PFVpbnQzMkFycmF5PiYmIHYpOwogICAgIHZvaWQgdmVydGV4QXR0cmliSVBvaW50ZXIoR0MzRHVp
bnQgaW5kZXgsIEdDM0RpbnQgc2l6ZSwgR0MzRGVudW0gdHlwZSwgR0MzRHNpemVpIHN0cmlkZSwg
R0MzRGludDY0IG9mZnNldCk7CiAgICAgCi0gICAgLyogV3JpdGluZyB0byB0aGUgZHJhd2luZyBi
dWZmZXIgKi8KKyAgICAvLyBXcml0aW5nIHRvIHRoZSBkcmF3aW5nIGJ1ZmZlcgogICAgIHZvaWQg
Y2xlYXIoR0MzRGJpdGZpZWxkIG1hc2spIGZpbmFsOwogICAgIHZvaWQgdmVydGV4QXR0cmliRGl2
aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcik7CiAgICAgdm9pZCBkcmF3QXJy
YXlzSW5zdGFuY2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQgZmlyc3QsIEdDM0RzaXplaSBjb3Vu
dCwgR0MzRHNpemVpIGluc3RhbmNlQ291bnQpOwogICAgIHZvaWQgZHJhd0VsZW1lbnRzSW5zdGFu
Y2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGlu
dDY0IG9mZnNldCwgR0MzRHNpemVpIGluc3RhbmNlQ291bnQpOwogICAgIHZvaWQgZHJhd1Jhbmdl
RWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHVpbnQgc3RhcnQsIEdDM0R1aW50IGVuZCwgR0Mz
RHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50NjQgb2Zmc2V0KTsKICAgICAKLSAg
ICAvKiBNdWx0aXBsZSBSZW5kZXIgVGFyZ2V0cyAqLwotICAgIHZvaWQgZHJhd0J1ZmZlcnMoVmVj
dG9yPEdDM0RlbnVtPiBidWZmZXJzKTsKKyAgICAvLyBNdWx0aXBsZSByZW5kZXIgdGFyZ2V0cwor
ICAgIHZvaWQgZHJhd0J1ZmZlcnMoY29uc3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmZmVycyk7CiAg
ICAgdm9pZCBjbGVhckJ1ZmZlcml2KEdDM0RlbnVtIGJ1ZmZlciwgR0MzRGludCBkcmF3YnVmZmVy
LCBSZWZQdHI8SW50MzJBcnJheT4mJiB2YWx1ZSk7CiAgICAgdm9pZCBjbGVhckJ1ZmZlcnVpdihH
QzNEZW51bSBidWZmZXIsIEdDM0RpbnQgZHJhd2J1ZmZlciwgUmVmUHRyPFVpbnQzMkFycmF5PiYm
IHZhbHVlKTsKICAgICB2b2lkIGNsZWFyQnVmZmVyZnYoR0MzRGVudW0gYnVmZmVyLCBHQzNEaW50
IGRyYXdidWZmZXIsIFJlZlB0cjxGbG9hdDMyQXJyYXk+JiYgdmFsdWUpOwogICAgIHZvaWQgY2xl
YXJCdWZmZXJmaShHQzNEZW51bSBidWZmZXIsIEdDM0RpbnQgZHJhd2J1ZmZlciwgR0MzRGZsb2F0
IGRlcHRoLCBHQzNEaW50IHN0ZW5jaWwpOwogICAgIAotICAgIC8qIFF1ZXJ5IE9iamVjdHMgKi8K
KyAgICAvLyBRdWVyeSBvYmplY3RzCiAgICAgUmVmUHRyPFdlYkdMUXVlcnk+IGNyZWF0ZVF1ZXJ5
KCk7Ci0gICAgdm9pZCBkZWxldGVRdWVyeShXZWJHTFF1ZXJ5KiBxdWVyeSk7Ci0gICAgR0MzRGJv
b2xlYW4gaXNRdWVyeShXZWJHTFF1ZXJ5KiBxdWVyeSk7Ci0gICAgdm9pZCBiZWdpblF1ZXJ5KEdD
M0RlbnVtIHRhcmdldCwgV2ViR0xRdWVyeSogcXVlcnkpOworICAgIHZvaWQgZGVsZXRlUXVlcnko
V2ViR0xRdWVyeSopOworICAgIEdDM0Rib29sZWFuIGlzUXVlcnkoV2ViR0xRdWVyeSopOworICAg
IHZvaWQgYmVnaW5RdWVyeShHQzNEZW51bSB0YXJnZXQsIFdlYkdMUXVlcnkqKTsKICAgICB2b2lk
IGVuZFF1ZXJ5KEdDM0RlbnVtIHRhcmdldCk7CiAgICAgUmVmUHRyPFdlYkdMUXVlcnk+IGdldFF1
ZXJ5KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBn
ZXRRdWVyeVBhcmFtZXRlcihXZWJHTFF1ZXJ5KiBxdWVyeSwgR0MzRGVudW0gcG5hbWUpOworICAg
IFdlYkdMQW55IGdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdMUXVlcnkqLCBHQzNEZW51bSBwbmFtZSk7
CiAgICAgCi0gICAgLyogU2FtcGxlciBPYmplY3RzICovCisgICAgLy8gU2FtcGxlciBvYmplY3Rz
CiAgICAgUmVmUHRyPFdlYkdMU2FtcGxlcj4gY3JlYXRlU2FtcGxlcigpOwotICAgIHZvaWQgZGVs
ZXRlU2FtcGxlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIpOwotICAgIEdDM0Rib29sZWFuIGlzU2Ft
cGxlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIpOwotICAgIHZvaWQgYmluZFNhbXBsZXIoR0MzRHVp
bnQgdW5pdCwgV2ViR0xTYW1wbGVyKiBzYW1wbGVyKTsKLSAgICB2b2lkIHNhbXBsZXJQYXJhbWV0
ZXJpKFdlYkdMU2FtcGxlciogc2FtcGxlciwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQgcGFyYW0p
OwotICAgIHZvaWQgc2FtcGxlclBhcmFtZXRlcmYoV2ViR0xTYW1wbGVyKiBzYW1wbGVyLCBHQzNE
ZW51bSBwbmFtZSwgR0MzRGZsb2F0IHBhcmFtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0U2FtcGxl
clBhcmFtZXRlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIsIEdDM0RlbnVtIHBuYW1lKTsKKyAgICB2
b2lkIGRlbGV0ZVNhbXBsZXIoV2ViR0xTYW1wbGVyKik7CisgICAgR0MzRGJvb2xlYW4gaXNTYW1w
bGVyKFdlYkdMU2FtcGxlciopOworICAgIHZvaWQgYmluZFNhbXBsZXIoR0MzRHVpbnQgdW5pdCwg
V2ViR0xTYW1wbGVyKik7CisgICAgdm9pZCBzYW1wbGVyUGFyYW1ldGVyaShXZWJHTFNhbXBsZXIq
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7CisgICAgdm9pZCBzYW1wbGVyUGFyYW1l
dGVyZihXZWJHTFNhbXBsZXIqLCBHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0IHBhcmFtKTsKKyAg
ICBXZWJHTEFueSBnZXRTYW1wbGVyUGFyYW1ldGVyKFdlYkdMU2FtcGxlciosIEdDM0RlbnVtIHBu
YW1lKTsKICAgICAKLSAgICAvKiBTeW5jIG9iamVjdHMgKi8KKyAgICAvLyBTeW5jIG9iamVjdHMK
ICAgICBSZWZQdHI8V2ViR0xTeW5jPiBmZW5jZVN5bmMoR0MzRGVudW0gY29uZGl0aW9uLCBHQzNE
Yml0ZmllbGQgZmxhZ3MpOwotICAgIEdDM0Rib29sZWFuIGlzU3luYyhXZWJHTFN5bmMqIHN5bmMp
OwotICAgIHZvaWQgZGVsZXRlU3luYyhXZWJHTFN5bmMqIHN5bmMpOwotICAgIEdDM0RlbnVtIGNs
aWVudFdhaXRTeW5jKFdlYkdMU3luYyogc3luYywgR0MzRGJpdGZpZWxkIGZsYWdzLCBHQzNEdWlu
dDY0IHRpbWVvdXQpOwotICAgIHZvaWQgd2FpdFN5bmMoV2ViR0xTeW5jKiBzeW5jLCBHQzNEYml0
ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFN5
bmNQYXJhbWV0ZXIoV2ViR0xTeW5jKiBzeW5jLCBHQzNEZW51bSBwbmFtZSk7CisgICAgR0MzRGJv
b2xlYW4gaXNTeW5jKFdlYkdMU3luYyopOworICAgIHZvaWQgZGVsZXRlU3luYyhXZWJHTFN5bmMq
KTsKKyAgICBHQzNEZW51bSBjbGllbnRXYWl0U3luYyhXZWJHTFN5bmMqLCBHQzNEYml0ZmllbGQg
ZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7CisgICAgdm9pZCB3YWl0U3luYyhXZWJHTFN5bmMq
LCBHQzNEYml0ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7CisgICAgV2ViR0xBbnkg
Z2V0U3luY1BhcmFtZXRlcihXZWJHTFN5bmMqLCBHQzNEZW51bSBwbmFtZSk7CiAgICAgCi0gICAg
LyogVHJhbnNmb3JtIEZlZWRiYWNrICovCisgICAgLy8gVHJhbnNmb3JtIGZlZWRiYWNrCiAgICAg
UmVmUHRyPFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+IGNyZWF0ZVRyYW5zZm9ybUZlZWRiYWNrKCk7
CiAgICAgdm9pZCBkZWxldGVUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRyYW5zZm9ybUZlZWRiYWNr
KiBpZCk7CiAgICAgR0MzRGJvb2xlYW4gaXNUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRyYW5zZm9y
bUZlZWRiYWNrKiBpZCk7CiAgICAgdm9pZCBiaW5kVHJhbnNmb3JtRmVlZGJhY2soR0MzRGVudW0g
dGFyZ2V0LCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKiBpZCk7CiAgICAgdm9pZCBiZWdpblRyYW5z
Zm9ybUZlZWRiYWNrKEdDM0RlbnVtIHByaW1pdGl2ZU1vZGUpOwogICAgIHZvaWQgZW5kVHJhbnNm
b3JtRmVlZGJhY2soKTsKLSAgICB2b2lkIHRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MoV2ViR0xQ
cm9ncmFtKiwgVmVjdG9yPFN0cmluZz4gdmFyeWluZ3MsIEdDM0RlbnVtIGJ1ZmZlck1vZGUpOwor
ICAgIHZvaWQgdHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncyhXZWJHTFByb2dyYW0qLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgdmFyeWluZ3MsIEdDM0RlbnVtIGJ1ZmZlck1vZGUpOwogICAgIFJlZlB0
cjxXZWJHTEFjdGl2ZUluZm8+IGdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZyhXZWJHTFByb2dy
YW0qLCBHQzNEdWludCBpbmRleCk7CiAgICAgdm9pZCBwYXVzZVRyYW5zZm9ybUZlZWRiYWNrKCk7
CiAgICAgdm9pZCByZXN1bWVUcmFuc2Zvcm1GZWVkYmFjaygpOwogICAgIAotICAgIC8qIFVuaWZv
cm0gQnVmZmVyIE9iamVjdHMgYW5kIFRyYW5zZm9ybSBGZWVkYmFjayBCdWZmZXJzICovCi0gICAg
dm9pZCBiaW5kQnVmZmVyQmFzZShHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4LCBXZWJH
TEJ1ZmZlciogYnVmZmVyKTsKLSAgICB2b2lkIGJpbmRCdWZmZXJSYW5nZShHQzNEZW51bSB0YXJn
ZXQsIEdDM0R1aW50IGluZGV4LCBXZWJHTEJ1ZmZlciogYnVmZmVyLCBHQzNEaW50NjQgb2Zmc2V0
LCBHQzNEaW50NjQgc2l6ZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEluZGV4ZWRQYXJhbWV0ZXIo
R0MzRGVudW0gdGFyZ2V0LCBHQzNEdWludCBpbmRleCk7Ci0gICAgVWludDMyQXJyYXkqIGdldFVu
aWZvcm1JbmRpY2VzKFdlYkdMUHJvZ3JhbSosIFZlY3RvcjxTdHJpbmc+IHVuaWZvcm1OYW1lcyk7
CisgICAgLy8gVW5pZm9ybSBidWZmZXIgb2JqZWN0cyBhbmQgdHJhbnNmb3JtIGZlZWRiYWNrIGJ1
ZmZlcnMKKyAgICB2b2lkIGJpbmRCdWZmZXJCYXNlKEdDM0RlbnVtIHRhcmdldCwgR0MzRHVpbnQg
aW5kZXgsIFdlYkdMQnVmZmVyKik7CisgICAgdm9pZCBiaW5kQnVmZmVyUmFuZ2UoR0MzRGVudW0g
dGFyZ2V0LCBHQzNEdWludCBpbmRleCwgV2ViR0xCdWZmZXIqLCBHQzNEaW50NjQgb2Zmc2V0LCBH
QzNEaW50NjQgc2l6ZSk7CisgICAgV2ViR0xBbnkgZ2V0SW5kZXhlZFBhcmFtZXRlcihHQzNEZW51
bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4KTsKKyAgICBVaW50MzJBcnJheSogZ2V0VW5pZm9ybUlu
ZGljZXMoV2ViR0xQcm9ncmFtKiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHVuaWZvcm1OYW1lcyk7
CiAgICAgSW50MzJBcnJheSogZ2V0QWN0aXZlVW5pZm9ybXMoV2ViR0xQcm9ncmFtKiwgUmVmUHRy
PFVpbnQzMkFycmF5PiYmIHVuaWZvcm1JbmRpY2VzLCBHQzNEZW51bSBwbmFtZSk7Ci0gICAgR0Mz
RHVpbnQgZ2V0VW5pZm9ybUJsb2NrSW5kZXgoV2ViR0xQcm9ncmFtKiwgU3RyaW5nIHVuaWZvcm1C
bG9ja05hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0
ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdDM0RlbnVtIHBu
YW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShXZWJHTFBy
b2dyYW0qLCBHQzNEdWludCB1bmlmb3JtQmxvY2tJbmRleCk7CisgICAgR0MzRHVpbnQgZ2V0VW5p
Zm9ybUJsb2NrSW5kZXgoV2ViR0xQcm9ncmFtKiwgY29uc3QgU3RyaW5nJiB1bmlmb3JtQmxvY2tO
YW1lKTsKKyAgICBXZWJHTEFueSBnZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIoV2ViR0xQ
cm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdDM0RlbnVtIHBuYW1lKTsKKyAg
ICBXZWJHTEFueSBnZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKFdlYkdMUHJvZ3JhbSosIEdDM0R1
aW50IHVuaWZvcm1CbG9ja0luZGV4KTsKICAgICB2b2lkIHVuaWZvcm1CbG9ja0JpbmRpbmcoV2Vi
R0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdDM0R1aW50IHVuaWZvcm1C
bG9ja0JpbmRpbmcpOwogICAgIAotICAgIC8qIFZlcnRleCBBcnJheSBPYmplY3RzICovCisgICAg
Ly8gVmVydGV4IGFycmF5IG9iamVjdHMKICAgICBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dD4gY3JlYXRlVmVydGV4QXJyYXkoKTsKICAgICB2b2lkIGRlbGV0ZVZlcnRleEFycmF5KFdlYkdM
VmVydGV4QXJyYXlPYmplY3QqIHZlcnRleEFycmF5KTsKICAgICBHQzNEYm9vbGVhbiBpc1ZlcnRl
eEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIHZlcnRleEFycmF5KTsKQEAgLTE3MiwxMCAr
MTcxLDEwIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBpc1dlYkdMMigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIC8qIEV4dGVuc2lvbnMgKi8KKyAgICAvLyBFeHRl
bnNpb25zCiAgICAgV2ViR0xFeHRlbnNpb24qIGdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmKSBm
aW5hbDsKICAgICBWZWN0b3I8U3RyaW5nPiBnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkgZmluYWw7
Ci0gICAgV2ViR0xHZXRJbmZvIGdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkgZmluYWw7Cisg
ICAgV2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKIAogICAgIHZv
aWQgcmVuZGVyYnVmZmVyU3RvcmFnZShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFs
Zm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIGZpbmFsOwogICAgIHZv
aWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1vZGUpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3ZTRmNTY3Mjg3MWIzODBl
ZDhkMjBlMDc2YTQ5OTVmZmQxMzE3ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTEFueS5jcHAKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViR0xBbnkuaCIKKworI2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIkpT
RE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTV2ViR0xCdWZmZXIuaCIKKyNpbmNsdWRlICJKU1dl
YkdMRnJhbWVidWZmZXIuaCIKKyNpbmNsdWRlICJKU1dlYkdMUHJvZ3JhbS5oIgorI2luY2x1ZGUg
IkpTV2ViR0xSZW5kZXJidWZmZXIuaCIKKyNpbmNsdWRlICJKU1dlYkdMVGV4dHVyZS5oIgorI2lu
Y2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgorI2luY2x1ZGUgPHd0Zi9WYXJp
YW50Lmg+CisKKyNpZiBFTkFCTEUoV0VCR0wyKQorI2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdC5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNw
YWNlIEpTQzsKKworLy8gRklYTUU6IFRoaXMgbGlrZWx5IGNhbiBiZSBhdXRvZ2VuZXJhdGVkIHdp
dGggYSBiaXQgb2Ygd29yay4KK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUmIHN0YXRlLCBKU0RPTUds
b2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25zdCBXZWJHTEFueSYgYW55KQoreworICAgIHJl
dHVybiBXVEY6OnN3aXRjaE9uKGFueSwKKyAgICAgICAgW10gKHN0ZDo6bnVsbHB0cl90KSB7Cisg
ICAgICAgICAgICByZXR1cm4ganNOdWxsKCk7CisgICAgICAgIH0sCisgICAgICAgIFtdIChib29s
IHZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4ganNCb29sZWFuKHZhbHVlKTsKKyAgICAgICAg
fSwKKyAgICAgICAgW10gKGludCB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVy
KHZhbHVlKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10gKHVuc2lnbmVkIHZhbHVlKSB7CisgICAg
ICAgICAgICByZXR1cm4ganNOdW1iZXIodmFsdWUpOworICAgICAgICB9LAorICAgICAgICBbXSAo
bG9uZyBsb25nIHZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIodmFsdWUpOwor
ICAgICAgICB9LAorICAgICAgICBbXSAoZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVy
biBqc051bWJlcih2YWx1ZSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgU3RyaW5n
JiB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKCZzdGF0ZSwg
dmFsdWUpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFZlY3Rvcjxib29sPiYgdmFs
dWVzKSB7CisgICAgICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBsaXN0OworICAgICAgICAg
ICAgZm9yIChhdXRvJiB2YWx1ZSA6IHZhbHVlcykKKyAgICAgICAgICAgICAgICBsaXN0LmFwcGVu
ZChqc0Jvb2xlYW4odmFsdWUpKTsKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RBcnJheSgm
c3RhdGUsIDAsICZnbG9iYWxPYmplY3QsIGxpc3QpOworICAgICAgICB9LAorICAgICAgICBbJl0g
KGNvbnN0IFJlZlB0cjxGbG9hdDMyQXJyYXk+JiBhcnJheSkgeworICAgICAgICAgICAgcmV0dXJu
IHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBhcnJheS5nZXQoKSk7CisgICAgICAgIH0sCisg
ICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPEludDMyQXJyYXk+JiBhcnJheSkgeworICAgICAgICAg
ICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBhcnJheS5nZXQoKSk7CisgICAg
ICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFVpbnQ4QXJyYXk+JiBhcnJheSkgewor
ICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBhcnJheS5nZXQo
KSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFVpbnQzMkFycmF5PiYg
YXJyYXkpIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwg
YXJyYXkuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJH
TEJ1ZmZlcj4mIGJ1ZmZlcikgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xv
YmFsT2JqZWN0LCBidWZmZXIuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0
IFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiYgYnVmZmVyKSB7CisgICAgICAgICAgICByZXR1cm4g
dG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIGJ1ZmZlci5nZXQoKSk7CisgICAgICAgIH0sCisg
ICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdlYkdMUHJvZ3JhbT4mIHByb2dyYW0pIHsKKyAgICAg
ICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgcHJvZ3JhbS5nZXQoKSk7
CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVy
PiYgYnVmZmVyKSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmpl
Y3QsIGJ1ZmZlci5nZXQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRy
PFdlYkdMVGV4dHVyZT4mIHRleHR1cmUpIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0
ZSwgJmdsb2JhbE9iamVjdCwgdGV4dHVyZS5nZXQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsm
XSAoY29uc3QgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+JiBhcnJheSkgeworICAg
ICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBhcnJheS5nZXQoKSk7
CisgICAgICAgIH0KKyNpZiBFTkFCTEUoV0VCR0wyKQorICAgICAgICAsCisgICAgICAgIFsmXSAo
Y29uc3QgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+JiBhcnJheSkgeworICAgICAgICAg
ICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBhcnJheS5nZXQoKSk7CisgICAg
ICAgIH0KKyNlbmRpZgorICAgICk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xBbnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzdiYjdmOTg3Mzk0ZjI3M2E3NGI4ODFiMDA3
ODBlNzczYjYwMjYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xBbnkuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCR0wpCisK
KyNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgorI2luY2x1ZGUgIldlYkdMRnJhbWVidWZmZXIuaCIK
KyNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKKyNpbmNsdWRlICJXZWJHTFJlbmRlcmJ1ZmZlci5o
IgorI2luY2x1ZGUgIldlYkdMVGV4dHVyZS5oIgorI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlP
YmplY3RPRVMuaCIKKyNpbmNsdWRlIDxydW50aW1lL0Zsb2F0MzJBcnJheS5oPgorI2luY2x1ZGUg
PHJ1bnRpbWUvSW50MzJBcnJheS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvVWludDMyQXJyYXkuaD4K
KyNpbmNsdWRlIDxydW50aW1lL1VpbnQ4QXJyYXkuaD4KKworI2lmIEVOQUJMRShXRUJHTDIpCisj
aW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBK
U0MgeworY2xhc3MgRXhlY1N0YXRlOworY2xhc3MgSlNWYWx1ZTsKK30KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKKwordXNpbmcgV2ViR0xBbnkgPSBW
YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBib29sLCBpbnQsIHVuc2lnbmVkLCBsb25nIGxvbmcsIGZs
b2F0LCBTdHJpbmcsIFZlY3Rvcjxib29sPiwKKyAgICBSZWZQdHI8RmxvYXQzMkFycmF5PiwKKyAg
ICBSZWZQdHI8SW50MzJBcnJheT4sCisgICAgUmVmUHRyPFVpbnQzMkFycmF5PiwKKyAgICBSZWZQ
dHI8VWludDhBcnJheT4sCisgICAgUmVmUHRyPFdlYkdMQnVmZmVyPiwKKyAgICBSZWZQdHI8V2Vi
R0xGcmFtZWJ1ZmZlcj4sCisgICAgUmVmUHRyPFdlYkdMUHJvZ3JhbT4sCisgICAgUmVmUHRyPFdl
YkdMUmVuZGVyYnVmZmVyPiwKKyAgICBSZWZQdHI8V2ViR0xUZXh0dXJlPiwKKyAgICBSZWZQdHI8
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4KKyNpZiBFTkFCTEUoV0VCR0wyKQorICAgICwgUmVm
UHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+CisjZW5kaWYKKz47CisKK0pTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlJiwgSlNET01HbG9iYWxPYmplY3QmLCBjb25zdCBXZWJHTEFueSYp
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCmluZGV4IGRmMTc3MTFkYjBiODllYWQwMzhmNzNjMzFk
MjJmZTFlMzJhNWUzY2MuLmJkYjgxZDZlNTVmZDc0M2VlYjdkMDdhMzJiNDAyNDMwZTM5YzY5Yjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMTEgKzI0
LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMQnVmZmVy
LmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgotCiAj
aW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmgiCiAKQEAgLTQxLDkgKzQwLDYgQEAgUmVmPFdlYkdMQnVmZmVyPiBXZWJHTEJ1
ZmZlcjo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKIAogV2ViR0xCdWZm
ZXI6OldlYkdMQnVmZmVyKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKICAgICA6IFdl
YkdMU2hhcmVkT2JqZWN0KGN0eCkKLSAgICAsIG1fdGFyZ2V0KDApCi0gICAgLCBtX2J5dGVMZW5n
dGgoMCkKLSAgICAsIG1fbmV4dEF2YWlsYWJsZUNhY2hlRW50cnkoMCkKIHsKICAgICBzZXRPYmpl
Y3QoY3R4LmdyYXBoaWNzQ29udGV4dDNEKCktPmNyZWF0ZUJ1ZmZlcigpKTsKICAgICBjbGVhckNh
Y2hlZE1heEluZGljZXMoKTsKQEAgLTU2LDcgKzUyLDcgQEAgV2ViR0xCdWZmZXI6On5XZWJHTEJ1
ZmZlcigpCiAKIHZvaWQgV2ViR0xCdWZmZXI6OmRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250
ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamVjdCBvYmplY3QpCiB7Ci0gICAgICBjb250
ZXh0M2QtPmRlbGV0ZUJ1ZmZlcihvYmplY3QpOworICAgIGNvbnRleHQzZC0+ZGVsZXRlQnVmZmVy
KG9iamVjdCk7CiB9CiAKIGJvb2wgV2ViR0xCdWZmZXI6OmFzc29jaWF0ZUJ1ZmZlckRhdGFJbXBs
KGNvbnN0IHZvaWQqIGRhdGEsIEdDM0RzaXplaXB0ciBieXRlTGVuZ3RoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmgKaW5kZXggMWI0MTRlOGZjOWExMzVhOWNlYzBiY2Q2
YzZmMjJlMDljMjc3MWQ0ZS4uZDNiZDlhMDM4ZWNiOGQ3MGM3ZDA0NzhlYzQwOGM5MjFhNDc5MzBl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDkgKzM3LDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTEJ1ZmZlciBmaW5hbCA6IHB1Ymxp
YyBXZWJHTFNoYXJlZE9iamVjdCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViR0xCdWZmZXIo
KTsKLQogICAgIHN0YXRpYyBSZWY8V2ViR0xCdWZmZXI+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJik7CisgICAgdmlydHVhbCB+V2ViR0xCdWZmZXIoKTsKIAogICAgIGJvb2wgYXNz
b2NpYXRlQnVmZmVyRGF0YShHQzNEc2l6ZWlwdHIgc2l6ZSk7CiAgICAgYm9vbCBhc3NvY2lhdGVC
dWZmZXJEYXRhKEpTQzo6QXJyYXlCdWZmZXIqKTsKQEAgLTcwLDEyICs2OSwxMCBAQCBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZv
cm0zRE9iamVjdCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBpc0J1ZmZlcigpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLQotICAgIEdDM0RlbnVtIG1fdGFyZ2V0Owor
ICAgIEdDM0RlbnVtIG1fdGFyZ2V0IHsgMCB9OwogCiAgICAgUmVmUHRyPEpTQzo6QXJyYXlCdWZm
ZXI+IG1fZWxlbWVudEFycmF5QnVmZmVyOwotICAgIEdDM0RzaXplaXB0ciBtX2J5dGVMZW5ndGg7
CisgICAgR0MzRHNpemVpcHRyIG1fYnl0ZUxlbmd0aCB7IDAgfTsKIAogICAgIC8vIE9wdGltaXph
dGlvbiBmb3IgaW5kZXggdmFsaWRhdGlvbi4gRm9yIGVhY2ggdHlwZSBvZiBpbmRleAogICAgIC8v
IChpLmUuLCBVTlNJR05FRF9TSE9SVCksIGNhY2hlIHRoZSBtYXhpbXVtIGluZGV4IGluIHRoZQpA
QCAtOTIsNyArODksNyBAQCBwcml2YXRlOgogICAgIC8vIGFuZCBVTlNJR05FRF9TSE9SVCksIGJ1
dCBtaWdodCBhcyB3ZWxsIGxlYXZlIG9wZW4gdGhlCiAgICAgLy8gcG9zc2liaWxpdHkgb2YgYWRk
aW5nIG90aGVycy4KICAgICBNYXhJbmRleENhY2hlRW50cnkgbV9tYXhJbmRleENhY2hlWzRdOwot
ICAgIHVuc2lnbmVkIGludCBtX25leHRBdmFpbGFibGVDYWNoZUVudHJ5OworICAgIHVuc2lnbmVk
IG1fbmV4dEF2YWlsYWJsZUNhY2hlRW50cnkgeyAwIH07CiAKICAgICAvLyBDbGVhcnMgYWxsIG9m
IHRoZSBjYWNoZWQgbWF4IGluZGljZXMuCiAgICAgdm9pZCBjbGVhckNhY2hlZE1heEluZGljZXMo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdy
b3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNw
cAppbmRleCAyMTMzZjMzZWZjOGNlMDk4N2I0OTgzM2NiYzEwZmM3NTkxMmEwODIyLi45ZGRlZjE1
OGNkMGFjZGU2YjY4Y2FkZGQyYmM5M2NlZDVhODNkZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDExICsyNCwxMCBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgog
CiAjaWYgRU5BQkxFKFdFQkdMKQogCi0jaW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKLQog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5oIgogI2luY2x1ZGUgIldlYkdMU2hhcmVkT2JqZWN0LmgiCkBAIC0zNywxMSAr
MzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlZjxXZWJHTENvbnRleHRHcm91cD4gV2Vi
R0xDb250ZXh0R3JvdXA6OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2Vi
R0xDb250ZXh0R3JvdXAoKSk7Ci19Ci0KLVdlYkdMQ29udGV4dEdyb3VwOjpXZWJHTENvbnRleHRH
cm91cCgpCi17CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR0xDb250ZXh0R3JvdXApOwog
fQogCiBXZWJHTENvbnRleHRHcm91cDo6fldlYkdMQ29udGV4dEdyb3VwKCkKQEAgLTQ5LDQzICs0
NCw0MCBAQCBXZWJHTENvbnRleHRHcm91cDo6fldlYkdMQ29udGV4dEdyb3VwKCkKICAgICBkZXRh
Y2hBbmRSZW1vdmVBbGxPYmplY3RzKCk7CiB9CiAKLUdyYXBoaWNzQ29udGV4dDNEKiBXZWJHTENv
bnRleHRHcm91cDo6Z2V0QUdyYXBoaWNzQ29udGV4dDNEKCkKK0dyYXBoaWNzQ29udGV4dDNEJiBX
ZWJHTENvbnRleHRHcm91cDo6Z2V0QUdyYXBoaWNzQ29udGV4dDNEKCkKIHsKICAgICBBU1NFUlQo
IW1fY29udGV4dHMuaXNFbXB0eSgpKTsKLSAgICBIYXNoU2V0PFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UqPjo6aXRlcmF0b3IgaXQgPSBtX2NvbnRleHRzLmJlZ2luKCk7Ci0gICAgcmV0dXJuICgq
aXQpLT5ncmFwaGljc0NvbnRleHQzRCgpOworICAgIHJldHVybiAqKCptX2NvbnRleHRzLmJlZ2lu
KCkpLT5ncmFwaGljc0NvbnRleHQzRCgpOwogfQogCi12b2lkIFdlYkdMQ29udGV4dEdyb3VwOjph
ZGRDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNvbnRleHQpCit2b2lkIFdlYkdM
Q29udGV4dEdyb3VwOjphZGRDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRl
eHQpCiB7Ci0gICAgbV9jb250ZXh0cy5hZGQoY29udGV4dCk7CisgICAgbV9jb250ZXh0cy5hZGQo
JmNvbnRleHQpOwogfQogCi12b2lkIFdlYkdMQ29udGV4dEdyb3VwOjpyZW1vdmVDb250ZXh0KFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNvbnRleHQpCit2b2lkIFdlYkdMQ29udGV4dEdyb3Vw
OjpyZW1vdmVDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiB7CiAg
ICAgLy8gV2UgbXVzdCBjYWxsIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMgYmVmb3JlIHJlbW92
aW5nIHRoZSBsYXN0IGNvbnRleHQuCi0gICAgaWYgKG1fY29udGV4dHMuc2l6ZSgpID09IDEgJiYg
bV9jb250ZXh0cy5jb250YWlucyhjb250ZXh0KSkKKyAgICBpZiAobV9jb250ZXh0cy5zaXplKCkg
PT0gMSAmJiBtX2NvbnRleHRzLmNvbnRhaW5zKCZjb250ZXh0KSkKICAgICAgICAgZGV0YWNoQW5k
UmVtb3ZlQWxsT2JqZWN0cygpOwogCi0gICAgbV9jb250ZXh0cy5yZW1vdmUoY29udGV4dCk7Cisg
ICAgbV9jb250ZXh0cy5yZW1vdmUoJmNvbnRleHQpOwogfQogCi12b2lkIFdlYkdMQ29udGV4dEdy
b3VwOjpyZW1vdmVPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCkKK3ZvaWQgV2ViR0xD
b250ZXh0R3JvdXA6OnJlbW92ZU9iamVjdChXZWJHTFNoYXJlZE9iamVjdCYgb2JqZWN0KQogewot
ICAgIG1fZ3JvdXBPYmplY3RzLnJlbW92ZShvYmplY3QpOworICAgIG1fZ3JvdXBPYmplY3RzLnJl
bW92ZSgmb2JqZWN0KTsKIH0KIAotdm9pZCBXZWJHTENvbnRleHRHcm91cDo6YWRkT2JqZWN0KFdl
YkdMU2hhcmVkT2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMQ29udGV4dEdyb3VwOjphZGRPYmpl
Y3QoV2ViR0xTaGFyZWRPYmplY3QmIG9iamVjdCkKIHsKLSAgICBtX2dyb3VwT2JqZWN0cy5hZGQo
b2JqZWN0KTsKKyAgICBtX2dyb3VwT2JqZWN0cy5hZGQoJm9iamVjdCk7CiB9CiAKIHZvaWQgV2Vi
R0xDb250ZXh0R3JvdXA6OmRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMoKQogewotICAgIHdoaWxl
ICghbV9ncm91cE9iamVjdHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIEhhc2hTZXQ8V2ViR0xTaGFy
ZWRPYmplY3QqPjo6aXRlcmF0b3IgaXQgPSBtX2dyb3VwT2JqZWN0cy5iZWdpbigpOwotICAgICAg
ICAoKml0KS0+ZGV0YWNoQ29udGV4dEdyb3VwKCk7Ci0gICAgfQorICAgIHdoaWxlICghbV9ncm91
cE9iamVjdHMuaXNFbXB0eSgpKQorICAgICAgICAoKm1fZ3JvdXBPYmplY3RzLmJlZ2luKCkpLT5k
ZXRhY2hDb250ZXh0R3JvdXAoKTsKIH0KIAogdm9pZCBXZWJHTENvbnRleHRHcm91cDo6bG9zZUNv
bnRleHRHcm91cChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpMb3N0Q29udGV4dE1vZGUgbW9k
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdy
b3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5oCmlu
ZGV4IDlkMDEwYmZjYzIwOTk2YTE0NjQ4NTdhZmNlZWYzYzRhYTdhNmI5YjcuLjExYjczNzAzMjI2
ZTExYmUzZTU0ZjZlYmM1NjIyMjBjMmQxNTVhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwzNSArMjYsMjYgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgotI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKLWNsYXNzIFdlYkdMRXh0ZW5zaW9u
OwotY2xhc3MgV2ViR0xTaGFyZWRPYmplY3Q7Ci1jbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOwotCi1jbGFzcyBXZWJHTENvbnRleHRHcm91cCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVk
PFdlYkdMQ29udGV4dEdyb3VwPiB7CitjbGFzcyBXZWJHTENvbnRleHRHcm91cCA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYkdMQ29udGV4dEdyb3VwPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxX
ZWJHTENvbnRleHRHcm91cD4gY3JlYXRlKCk7CiAgICAgfldlYkdMQ29udGV4dEdyb3VwKCk7CiAK
LSAgICB2b2lkIGFkZENvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSopOwotICAgIHZv
aWQgcmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKik7CisgICAgdm9pZCBh
ZGRDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKKyAgICB2b2lkIHJlbW92ZUNv
bnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwogCi0gICAgdm9pZCBhZGRPYmplY3Qo
V2ViR0xTaGFyZWRPYmplY3QqKTsKLSAgICB2b2lkIHJlbW92ZU9iamVjdChXZWJHTFNoYXJlZE9i
amVjdCopOworICAgIHZvaWQgYWRkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Jik7CisgICAgdm9p
ZCByZW1vdmVPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmKTsKIAotICAgIEdyYXBoaWNzQ29udGV4
dDNEKiBnZXRBR3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICBHcmFwaGljc0NvbnRleHQzRCYgZ2V0
QUdyYXBoaWNzQ29udGV4dDNEKCk7CiAKICAgICB2b2lkIGxvc2VDb250ZXh0R3JvdXAoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6TG9zdENvbnRleHRNb2RlKTsKIAotICBwcml2YXRlOgotICAg
IGZyaWVuZCBjbGFzcyBXZWJHTE9iamVjdDsKLQotICAgIFdlYkdMQ29udGV4dEdyb3VwKCk7Citw
cml2YXRlOgorICAgIFdlYkdMQ29udGV4dEdyb3VwKCkgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBk
ZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCmluZGV4IDUyM2U2ZTY0MmQ3NDliNjAyMmYz
NzczYTg4ZWRmNGVhMGVjYjliYjguLjZhMWM3YWIyOTk5Yzg0NWNlOWZlNDMxMjkxNDBlYzNjYmJj
NDA1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4
dE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
T2JqZWN0LmNwcApAQCAtMjQsMjUgKzI0LDIzIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkdMQ29udGV4dE9iamVjdC5oIgogCiAjaWYgRU5BQkxFKFdFQkdMKQog
Ci0jaW5jbHVkZSAiV2ViR0xDb250ZXh0T2JqZWN0LmgiCi0KICNpbmNsdWRlICJXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV2ViR0xDb250ZXh0
T2JqZWN0OjpXZWJHTENvbnRleHRPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29u
dGV4dCkKLSAgICA6IFdlYkdMT2JqZWN0KGNvbnRleHQpCi0gICAgLCBtX2NvbnRleHQoJmNvbnRl
eHQpCisgICAgOiBtX2NvbnRleHQoJmNvbnRleHQpCiB7CiB9CiAKIFdlYkdMQ29udGV4dE9iamVj
dDo6fldlYkdMQ29udGV4dE9iamVjdCgpCiB7CiAgICAgaWYgKG1fY29udGV4dCkKLSAgICAgICAg
bV9jb250ZXh0LT5yZW1vdmVDb250ZXh0T2JqZWN0KHRoaXMpOworICAgICAgICBtX2NvbnRleHQt
PnJlbW92ZUNvbnRleHRPYmplY3QoKnRoaXMpOwogfQogCiB2b2lkIFdlYkdMQ29udGV4dE9iamVj
dDo6ZGV0YWNoQ29udGV4dCgpCkBAIC01MCwxNCArNDgsMTQgQEAgdm9pZCBXZWJHTENvbnRleHRP
YmplY3Q6OmRldGFjaENvbnRleHQoKQogICAgIGRldGFjaCgpOwogICAgIGlmIChtX2NvbnRleHQp
IHsKICAgICAgICAgZGVsZXRlT2JqZWN0KG1fY29udGV4dC0+Z3JhcGhpY3NDb250ZXh0M0QoKSk7
Ci0gICAgICAgIG1fY29udGV4dC0+cmVtb3ZlQ29udGV4dE9iamVjdCh0aGlzKTsKLSAgICAgICAg
bV9jb250ZXh0ID0gMDsKKyAgICAgICAgbV9jb250ZXh0LT5yZW1vdmVDb250ZXh0T2JqZWN0KCp0
aGlzKTsKKyAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKICAgICB9CiB9CiAKIEdyYXBoaWNz
Q29udGV4dDNEKiBXZWJHTENvbnRleHRPYmplY3Q6OmdldEFHcmFwaGljc0NvbnRleHQzRCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIG1fY29udGV4dCA/IG1fY29udGV4dC0+Z3JhcGhpY3NDb250ZXh0
M0QoKSA6IDA7CisgICAgcmV0dXJuIG1fY29udGV4dCA/IG1fY29udGV4dC0+Z3JhcGhpY3NDb250
ZXh0M0QoKSA6IG51bGxwdHI7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKaW5kZXggZjliN2MyMDIyODgzZDU3OTJiMDI1ZjAyMTFk
MDJlNGRhNmI2NjYzYS4uYzI3NjJiMjM2N2I3YzM0MTk2YjQ3ZmVlM2Y5ZWMzNGRmY2JhMDlkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjQsMTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YkdMRnJhbWVidWZmZXIuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUgIldlYkdM
RnJhbWVidWZmZXIuaCIKLQogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgogI2luY2x1ZGUgIldl
YkdMQ29udGV4dEdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViR0xEcmF3QnVmZmVycy5oIgpAQCAtNjA2
LDYgKzYwNSw5IEBAIHZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6ZHJhd0J1ZmZlcnMoY29uc3QgVmVj
dG9yPEdDM0RlbnVtPiYgYnVmcykKIHZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6ZHJhd0J1ZmZlcnNJ
Zk5lY2Vzc2FyeShib29sIGZvcmNlKQogewogI2lmIEVOQUJMRShXRUJHTDIpCisgICAgLy8gRklY
TUU6IFRoZSBsb2dpYyBoZXJlIHNlZW1zIHdyb25nLiBJZiB3ZSBkb24ndCBoYXZlIFdlYkdMIDIg
ZW5hYmxlZCBhdCBhbGwsIHRoZW4KKyAgICAvLyB3ZSBza2lwIHRoZSBtX3dlYmdsRHJhd0J1ZmZl
cnMgY2hlY2suIEJ1dCBpZiB3ZSBkbyBoYXZlIFdlYkdMIDIgZW5hYmxlZCwgdGhlbiB3ZQorICAg
IC8vIHBlcmZvcm0gdGhpcyBjaGVjaywgZm9yIFdlYkdMIDEgY29udGV4dHMgb25seS4KICAgICBp
ZiAoIWNvbnRleHQoKS0+bV93ZWJnbERyYXdCdWZmZXJzICYmICFjb250ZXh0KCktPmlzV2ViR0wy
KCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMR2V0SW5mby5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlYWQxY2Zk
NjM3NDJiMDBkNTI0MmRlNzE5NTcyM2FiM2VmM2QxZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xH
ZXRJbmZvLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM3MSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdo
dCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNp
ZiBFTkFCTEUoV0VCR0wpCi0KLSNpbmNsdWRlICJXZWJHTEdldEluZm8uaCIKLQotI2luY2x1ZGUg
PHJ1bnRpbWUvRmxvYXQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9JbnQzMkFycmF5Lmg+
Ci0jaW5jbHVkZSA8cnVudGltZS9VaW50MzJBcnJheS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvVWlu
dDhBcnJheS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xH
ZXRJbmZvKGJvb2wgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVCb29sKQotICAgICwgbV9ib29s
KHZhbHVlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWdu
ZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdl
dEluZm8oY29uc3QgYm9vbCogdmFsdWUsIGludCBzaXplKQotICAgIDogbV90eXBlKGtUeXBlQm9v
bEFycmF5KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9p
bnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLXsKLSAgICBp
ZiAoIXZhbHVlIHx8IHNpemUgPD0wKQotICAgICAgICByZXR1cm47Ci0gICAgbV9ib29sQXJyYXku
cmVzaXplKHNpemUpOwotICAgIGZvciAoaW50IGlpID0gMDsgaWkgPCBzaXplOyArK2lpKQotICAg
ICAgICBtX2Jvb2xBcnJheVtpaV0gPSB2YWx1ZVtpaV07Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2Vi
R0xHZXRJbmZvKGZsb2F0IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlRmxvYXQpCi0gICAgLCBt
X2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KHZhbHVlKQotICAgICwgbV9pbnQoMCkKLSAgICAs
IG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLXsKLX0KLQotV2ViR0xHZXRJbmZv
OjpXZWJHTEdldEluZm8oaW50IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlSW50KQotICAgICwg
bV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQodmFsdWUpCi0gICAg
LCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5m
bzo6V2ViR0xHZXRJbmZvKCkKLSAgICA6IG1fdHlwZShrVHlwZU51bGwpCi0gICAgLCBtX2Jvb2wo
ZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25l
ZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0
SW5mbyhjb25zdCBTdHJpbmcmIHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlU3RyaW5nKQotICAg
ICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAs
IG1fc3RyaW5nKHZhbHVlKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgw
KQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyh1bnNpZ25lZCBpbnQgdmFsdWUp
Ci0gICAgOiBtX3R5cGUoa1R5cGVVbnNpZ25lZEludCkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAg
ICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KHZhbHVl
KQotICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhs
b25nIGxvbmcgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVJbnQ2NCkKLSAgICAsIG1fYm9vbChm
YWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVk
SW50KDApCi0gICAgLCBtX2ludDY0KHZhbHVlKQotewotfQotCi0KLVdlYkdMR2V0SW5mbzo6V2Vi
R0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IHZhbHVlKQotICAgIDogbV90eXBlKGtU
eXBlV2ViR0xCdWZmZXIpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0g
ICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQot
ICAgICwgbV93ZWJnbEJ1ZmZlcih2YWx1ZSkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdl
dEluZm8oUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBl
V2ViR0xGbG9hdEFycmF5KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQot
ICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkK
LSAgICAsIG1fd2ViZ2xGbG9hdEFycmF5KHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86Oldl
YkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IHZhbHVlKQotICAgIDogbV90
eXBlKGtUeXBlV2ViR0xGcmFtZWJ1ZmZlcikKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1f
ZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBt
X2ludDY0KDApCi0gICAgLCBtX3dlYmdsRnJhbWVidWZmZXIodmFsdWUpCi17Ci19Ci0KLVdlYkdM
R2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8SW50MzJBcnJheT4gdmFsdWUpCi0gICAg
OiBtX3R5cGUoa1R5cGVXZWJHTEludEFycmF5KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwg
bV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAs
IG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xJbnRBcnJheSh2YWx1ZSkKLXsKLX0KLQotV2ViR0xH
ZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFByb2dyYW0+IHZhbHVlKQotICAg
IDogbV90eXBlKGtUeXBlV2ViR0xQcm9ncmFtKQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwg
bV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAs
IG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xQcm9ncmFtKHZhbHVlKQotewotfQotCi1XZWJHTEdl
dEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPiB2YWx1ZSkK
LSAgICA6IG1fdHlwZShrVHlwZVdlYkdMUmVuZGVyYnVmZmVyKQotICAgICwgbV9ib29sKGZhbHNl
KQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQo
MCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xSZW5kZXJidWZmZXIodmFsdWUpCi17
Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xUZXh0dXJl
PiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMVGV4dHVyZSkKLSAgICAsIG1fYm9vbChm
YWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVk
SW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmdsVGV4dHVyZSh2YWx1ZSkKLXsK
LX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxVaW50OEFycmF5PiB2
YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMVW5zaWduZWRCeXRlQXJyYXkpCi0gICAgLCBt
X2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91
bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbFVuc2lnbmVkQnl0
ZUFycmF5KHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVm
UHRyPFVpbnQzMkFycmF5PiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMVW5zaWduZWRJ
bnRBcnJheSkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1f
aW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBt
X3dlYmdsVW5zaWduZWRJbnRBcnJheSh2YWx1ZSkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJH
TEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiB2YWx1ZSkKLSAg
ICA6IG1fdHlwZShrVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMpCi0gICAgLCBtX2Jvb2wo
ZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25l
ZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbFZlcnRleEFycmF5T2JqZWN0
T0VTKHZhbHVlKQotewotfQotCi0jaWYgRU5BQkxFKFdFQkdMMikKLVdlYkdMR2V0SW5mbzo6V2Vi
R0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4gdmFsdWUpCi0gICAg
OiBtX3R5cGUoa1R5cGVXZWJHTFZlcnRleEFycmF5T2JqZWN0KQotICAgICwgbV9ib29sKGZhbHNl
KQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQo
MCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xWZXJ0ZXhBcnJheU9iamVjdCh2YWx1
ZSkKLXsKLX0KLSNlbmRpZgotCi1XZWJHTEdldEluZm86On5XZWJHTEdldEluZm8oKQotewotfQot
Ci1XZWJHTEdldEluZm86OlR5cGUgV2ViR0xHZXRJbmZvOjpnZXRUeXBlKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV90eXBlOwotfQotCi1ib29sIFdlYkdMR2V0SW5mbzo6Z2V0Qm9vbCgpIGNvbnN0
Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZUJvb2wpOwotICAgIHJldHVybiBtX2Jv
b2w7Ci19Ci0KLWNvbnN0IFZlY3Rvcjxib29sPiYgV2ViR0xHZXRJbmZvOjpnZXRCb29sQXJyYXko
KSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVCb29sQXJyYXkpOwotICAg
IHJldHVybiBtX2Jvb2xBcnJheTsKLX0KLQotZmxvYXQgV2ViR0xHZXRJbmZvOjpnZXRGbG9hdCgp
IGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZUZsb2F0KTsKLSAgICByZXR1
cm4gbV9mbG9hdDsKLX0KLQotaW50IFdlYkdMR2V0SW5mbzo6Z2V0SW50KCkgY29uc3QKLXsKLSAg
ICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlSW50KTsKLSAgICByZXR1cm4gbV9pbnQ7Ci19Ci0K
LWNvbnN0IFN0cmluZyYgV2ViR0xHZXRJbmZvOjpnZXRTdHJpbmcoKSBjb25zdAotewotICAgIEFT
U0VSVChnZXRUeXBlKCkgPT0ga1R5cGVTdHJpbmcpOwotICAgIHJldHVybiBtX3N0cmluZzsKLX0K
LQotdW5zaWduZWQgaW50IFdlYkdMR2V0SW5mbzo6Z2V0VW5zaWduZWRJbnQoKSBjb25zdAotewot
ICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVVbnNpZ25lZEludCk7Ci0gICAgcmV0dXJuIG1f
dW5zaWduZWRJbnQ7Ci19Ci0KLWxvbmcgbG9uZyBXZWJHTEdldEluZm86OmdldEludDY0KCkgY29u
c3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlSW50NjQpOwotICAgIHJldHVybiBt
X2ludDY0OwotfQotCi1XZWJHTEJ1ZmZlciogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTEJ1ZmZlcigp
IGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMQnVmZmVyKTsKLSAg
ICByZXR1cm4gbV93ZWJnbEJ1ZmZlci5nZXQoKTsKLX0KLQotRmxvYXQzMkFycmF5KiBXZWJHTEdl
dEluZm86OmdldFdlYkdMRmxvYXRBcnJheSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUo
KSA9PSBrVHlwZVdlYkdMRmxvYXRBcnJheSk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xGbG9hdEFycmF5
LmdldCgpOwotfQotCi1XZWJHTEZyYW1lYnVmZmVyKiBXZWJHTEdldEluZm86OmdldFdlYkdMRnJh
bWVidWZmZXIoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTEZy
YW1lYnVmZmVyKTsKLSAgICByZXR1cm4gbV93ZWJnbEZyYW1lYnVmZmVyLmdldCgpOwotfQotCi1J
bnQzMkFycmF5KiBXZWJHTEdldEluZm86OmdldFdlYkdMSW50QXJyYXkoKSBjb25zdAotewotICAg
IEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTEludEFycmF5KTsKLSAgICByZXR1cm4gbV93
ZWJnbEludEFycmF5LmdldCgpOwotfQotCi1XZWJHTFByb2dyYW0qIFdlYkdMR2V0SW5mbzo6Z2V0
V2ViR0xQcm9ncmFtKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2Vi
R0xQcm9ncmFtKTsKLSAgICByZXR1cm4gbV93ZWJnbFByb2dyYW0uZ2V0KCk7Ci19Ci0KLVdlYkdM
UmVuZGVyYnVmZmVyKiBXZWJHTEdldEluZm86OmdldFdlYkdMUmVuZGVyYnVmZmVyKCkgY29uc3QK
LXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xSZW5kZXJidWZmZXIpOwotICAg
IHJldHVybiBtX3dlYmdsUmVuZGVyYnVmZmVyLmdldCgpOwotfQotCi1XZWJHTFRleHR1cmUqIFdl
YkdMR2V0SW5mbzo6Z2V0V2ViR0xUZXh0dXJlKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlw
ZSgpID09IGtUeXBlV2ViR0xUZXh0dXJlKTsKLSAgICByZXR1cm4gbV93ZWJnbFRleHR1cmUuZ2V0
KCk7Ci19Ci0KLVVpbnQ4QXJyYXkqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xVbnNpZ25lZEJ5dGVB
cnJheSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMVW5zaWdu
ZWRCeXRlQXJyYXkpOwotICAgIHJldHVybiBtX3dlYmdsVW5zaWduZWRCeXRlQXJyYXkuZ2V0KCk7
Ci19Ci0KLVVpbnQzMkFycmF5KiBXZWJHTEdldEluZm86OmdldFdlYkdMVW5zaWduZWRJbnRBcnJh
eSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMVW5zaWduZWRJ
bnRBcnJheSk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xVbnNpZ25lZEludEFycmF5LmdldCgpOwotfQot
Ci1XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKiBXZWJHTEdldEluZm86OmdldFdlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVMoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKTsKLSAgICByZXR1cm4gbV93ZWJnbFZlcnRleEFycmF5
T2JqZWN0T0VTLmdldCgpOwotfQotCi0jaWYgRU5BQkxFKFdFQkdMMikKLVdlYkdMVmVydGV4QXJy
YXlPYmplY3QqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCgpIGNvbnN0
Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3Qp
OwotICAgIHJldHVybiBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3QuZ2V0KCk7Ci19Ci0jZW5kaWYK
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMjZmNjkzYzVkNzYzNjIyM2VkNWNhZTNjMzlmYjYwMDNiYWY3OGZjYS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaAorKysgL2Rldi9udWxsCkBAIC0xLDE1NiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21h
IG9uY2UKLQotI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCi0jaW5jbHVkZSAiV2ViR0xGcmFtZWJ1
ZmZlci5oIgotI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgotI2luY2x1ZGUgIldlYkdMUmVuZGVy
YnVmZmVyLmgiCi0jaW5jbHVkZSAiV2ViR0xUZXh0dXJlLmgiCi0jaWYgRU5BQkxFKFdFQkdMMikK
LSNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0LmgiCi0jZW5kaWYKLSNpbmNsdWRlICJX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgiCi0jaW5jbHVkZSA8cnVudGltZS9GbG9hdDMyQXJy
YXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL0ludDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1l
L1VpbnQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9VaW50OEFycmF5Lmg+Ci0jaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gQSB0YWdn
ZWQgdW5pb24gcmVwcmVzZW50aW5nIHRoZSByZXN1bHQgb2YgZ2V0IHF1ZXJpZXMgbGlrZQotLy8g
Z2V0UGFyYW1ldGVyIChlbmNvbXBhc3NpbmcgZ2V0Qm9vbGVhbnYsIGdldEludGVnZXJ2LCBnZXRG
bG9hdHYpIGFuZAotLy8gc2ltaWxhciB2YXJpYW50cy4gRm9yIHJlZmVyZW5jZSBjb3VudGVkIHR5
cGVzLCBpbmNyZW1lbnRzIGFuZAotLy8gZGVjcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9m
IHRoZSB0YXJnZXQgb2JqZWN0LgotCi1jbGFzcyBXZWJHTEdldEluZm8gZmluYWwgewotcHVibGlj
OgotICAgIGVudW0gVHlwZSB7Ci0gICAgICAgIGtUeXBlQm9vbCwKLSAgICAgICAga1R5cGVCb29s
QXJyYXksCi0gICAgICAgIGtUeXBlRmxvYXQsCi0gICAgICAgIGtUeXBlSW50LAotICAgICAgICBr
VHlwZU51bGwsCi0gICAgICAgIGtUeXBlU3RyaW5nLAotICAgICAgICBrVHlwZVVuc2lnbmVkSW50
LAotICAgICAgICBrVHlwZUludDY0LAotICAgICAgICBrVHlwZVdlYkdMQnVmZmVyLAotICAgICAg
ICBrVHlwZVdlYkdMRmxvYXRBcnJheSwKLSAgICAgICAga1R5cGVXZWJHTEZyYW1lYnVmZmVyLAot
ICAgICAgICBrVHlwZVdlYkdMSW50QXJyYXksCi0gICAgICAgIGtUeXBlV2ViR0xPYmplY3RBcnJh
eSwKLSAgICAgICAga1R5cGVXZWJHTFByb2dyYW0sCi0gICAgICAgIGtUeXBlV2ViR0xSZW5kZXJi
dWZmZXIsCi0gICAgICAgIGtUeXBlV2ViR0xUZXh0dXJlLAotICAgICAgICBrVHlwZVdlYkdMVW5z
aWduZWRCeXRlQXJyYXksCi0gICAgICAgIGtUeXBlV2ViR0xVbnNpZ25lZEludEFycmF5LAotICAg
ICAgICBrVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMsCi0gICAgICAgIGtUeXBlV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdCwKLSAgICB9OwotCi0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKGJv
b2wgdmFsdWUpOwotICAgIFdlYkdMR2V0SW5mbyhjb25zdCBib29sKiB2YWx1ZSwgaW50IHNpemUp
OwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhmbG9hdCB2YWx1ZSk7Ci0gICAgZXhwbGljaXQg
V2ViR0xHZXRJbmZvKGludCB2YWx1ZSk7Ci0gICAgLy8gUmVwcmVzZW50cyB0aGUgbnVsbCB2YWx1
ZSBhbmQgdHlwZS4KLSAgICBXZWJHTEdldEluZm8oKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldElu
Zm8oY29uc3QgU3RyaW5nJiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKHVuc2ln
bmVkIGludCB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKGxvbmcgbG9uZyB2YWx1
ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IHZh
bHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+
IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEZyYW1l
YnVmZmVyPiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8SW50
MzJBcnJheT4gdmFsdWUpOwotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgV2ViR0xPYmplY3RBcnJh
eQotICAgIC8vIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMT2JqZWN0QXJyYXk+IHZhbHVl
KTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFByb2dyYW0+IHZh
bHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFJlbmRlcmJ1
ZmZlcj4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdM
VGV4dHVyZT4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFVp
bnQ4QXJyYXk+IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxV
aW50MzJBcnJheT4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRy
PFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IHZhbHVlKTsKLSNpZiBFTkFCTEUoV0VCR0wyKQot
ICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3Q+IHZhbHVlKTsKLSNlbmRpZgotCi0gICAgfldlYkdMR2V0SW5mbygpOwotCi0gICAgVHlwZSBn
ZXRUeXBlKCkgY29uc3Q7Ci0KLSAgICBib29sIGdldEJvb2woKSBjb25zdDsKLSAgICBjb25zdCBW
ZWN0b3I8Ym9vbD4mIGdldEJvb2xBcnJheSgpIGNvbnN0OwotICAgIGZsb2F0IGdldEZsb2F0KCkg
Y29uc3Q7Ci0gICAgaW50IGdldEludCgpIGNvbnN0OwotICAgIGNvbnN0IFN0cmluZyYgZ2V0U3Ry
aW5nKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgaW50IGdldFVuc2lnbmVkSW50KCkgY29uc3Q7Ci0g
ICAgbG9uZyBsb25nIGdldEludDY0KCkgY29uc3Q7Ci0gICAgV2ViR0xCdWZmZXIqIGdldFdlYkdM
QnVmZmVyKCkgY29uc3Q7Ci0gICAgRmxvYXQzMkFycmF5KiBnZXRXZWJHTEZsb2F0QXJyYXkoKSBj
b25zdDsKLSAgICBXZWJHTEZyYW1lYnVmZmVyKiBnZXRXZWJHTEZyYW1lYnVmZmVyKCkgY29uc3Q7
Ci0gICAgSW50MzJBcnJheSogZ2V0V2ViR0xJbnRBcnJheSgpIGNvbnN0OwotICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQgV2ViR0xPYmplY3RBcnJheQotICAgIC8vIFdlYkdMT2JqZWN0QXJyYXkqIGdl
dFdlYkdMT2JqZWN0QXJyYXkoKSBjb25zdDsKLSAgICBXZWJHTFByb2dyYW0qIGdldFdlYkdMUHJv
Z3JhbSgpIGNvbnN0OwotICAgIFdlYkdMUmVuZGVyYnVmZmVyKiBnZXRXZWJHTFJlbmRlcmJ1ZmZl
cigpIGNvbnN0OwotICAgIFdlYkdMVGV4dHVyZSogZ2V0V2ViR0xUZXh0dXJlKCkgY29uc3Q7Ci0g
ICAgVWludDhBcnJheSogZ2V0V2ViR0xVbnNpZ25lZEJ5dGVBcnJheSgpIGNvbnN0OwotICAgIFVp
bnQzMkFycmF5KiBnZXRXZWJHTFVuc2lnbmVkSW50QXJyYXkoKSBjb25zdDsKLSAgICBXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTKiBnZXRXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKCkgY29uc3Q7
Ci0jaWYgRU5BQkxFKFdFQkdMMikKLSAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0KiBnZXRXZWJH
TFZlcnRleEFycmF5T2JqZWN0KCkgY29uc3Q7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBUeXBl
IG1fdHlwZTsKLSAgICBib29sIG1fYm9vbDsKLSAgICBWZWN0b3I8Ym9vbD4gbV9ib29sQXJyYXk7
Ci0gICAgZmxvYXQgbV9mbG9hdDsKLSAgICBpbnQgbV9pbnQ7Ci0gICAgU3RyaW5nIG1fc3RyaW5n
OwotICAgIHVuc2lnbmVkIGludCBtX3Vuc2lnbmVkSW50OwotICAgIGxvbmcgbG9uZyBtX2ludDY0
OwotICAgIFJlZlB0cjxXZWJHTEJ1ZmZlcj4gbV93ZWJnbEJ1ZmZlcjsKLSAgICBSZWZQdHI8Rmxv
YXQzMkFycmF5PiBtX3dlYmdsRmxvYXRBcnJheTsKLSAgICBSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZl
cj4gbV93ZWJnbEZyYW1lYnVmZmVyOwotICAgIFJlZlB0cjxJbnQzMkFycmF5PiBtX3dlYmdsSW50
QXJyYXk7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudCBXZWJHTE9iamVjdEFycmF5Ci0gICAgLy8g
UmVmUHRyPFdlYkdMT2JqZWN0QXJyYXk+IG1fd2ViZ2xPYmplY3RBcnJheTsKLSAgICBSZWZQdHI8
V2ViR0xQcm9ncmFtPiBtX3dlYmdsUHJvZ3JhbTsKLSAgICBSZWZQdHI8V2ViR0xSZW5kZXJidWZm
ZXI+IG1fd2ViZ2xSZW5kZXJidWZmZXI7Ci0gICAgUmVmUHRyPFdlYkdMVGV4dHVyZT4gbV93ZWJn
bFRleHR1cmU7Ci0gICAgUmVmUHRyPFVpbnQ4QXJyYXk+IG1fd2ViZ2xVbnNpZ25lZEJ5dGVBcnJh
eTsKLSAgICBSZWZQdHI8VWludDMyQXJyYXk+IG1fd2ViZ2xVbnNpZ25lZEludEFycmF5OwotICAg
IFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiBtX3dlYmdsVmVydGV4QXJyYXlPYmpl
Y3RPRVM7Ci0jaWYgRU5BQkxFKFdFQkdMMikKLSAgICBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9i
amVjdD4gbV93ZWJnbFZlcnRleEFycmF5T2JqZWN0OwotI2VuZGlmCi19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHAK
aW5kZXggNWQ5MjA5NWZmZjE3ODZiMjI1YzI4NWE5NzAzYzY2OTk2MWI1OTc1ZS4uNDhmOTM5ZTBk
YThmNGUzMmM4MjJkMjkxMjEyNGZmY2JlNGU1YWE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMT2JqZWN0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwxMSArMjQsMTAgQEAKICAqLwogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xPYmplY3QuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkK
IAotI2luY2x1ZGUgIldlYkdMT2JqZWN0LmgiCi0KICNpbmNsdWRlICJXZWJHTENvbXByZXNzZWRU
ZXh0dXJlUzNUQy5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCiAjaW5jbHVkZSAi
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIgpAQCAtMzgsMjEgKzM3LDEwIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotV2ViR0xPYmplY3Q6OldlYkdMT2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UmKQotICAgIDogbV9vYmplY3QoMCkKLSAgICAsIG1fYXR0YWNobWVudENvdW50KDAp
Ci0gICAgLCBtX2RlbGV0ZWQoZmFsc2UpCi17Ci19Ci0KLVdlYkdMT2JqZWN0Ojp+V2ViR0xPYmpl
Y3QoKQotewotfQotCiB2b2lkIFdlYkdMT2JqZWN0OjpzZXRPYmplY3QoUGxhdGZvcm0zRE9iamVj
dCBvYmplY3QpCiB7Ci0gICAgLy8gb2JqZWN0PT0wICYmIG1fZGVsZXRlZD09ZmFsc2UgaW5kaWNh
dGluZyBhbiB1bmluaXRpYWxpemVkIHN0YXRlOwotICAgIEFTU0VSVCghbV9vYmplY3QgJiYgIW1f
ZGVsZXRlZCk7CisgICAgQVNTRVJUKCFtX29iamVjdCk7CisgICAgQVNTRVJUKCFtX2RlbGV0ZWQp
OwogICAgIG1fb2JqZWN0ID0gb2JqZWN0OwogfQogCkBAIC03OSw4ICs2Nyw3IEBAIHZvaWQgV2Vi
R0xPYmplY3Q6OmRlbGV0ZU9iamVjdChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dDNkKQogdm9p
ZCBXZWJHTE9iamVjdDo6ZGV0YWNoKCkKIHsKICAgICBtX2F0dGFjaG1lbnRDb3VudCA9IDA7IC8v
IE1ha2Ugc3VyZSBPcGVuR0wgcmVzb3VyY2UgaXMgZGVsZXRlZC4KLSAgICB9Ci0KK30KIAogdm9p
ZCBXZWJHTE9iamVjdDo6b25EZXRhY2hlZChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dDNkKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmgKaW5kZXggN2IzMjNkNmM5
ZjdhNzhhZjRiMmY0M2U2NTAzZjllMDEyOWVjYzc0Ny4uNjlkYmI1YWEwN2ViOTI5OTVkM2NlZTcx
MWY0YjI4N2M2NjNlNDVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVj
dC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI2LDE3ICsyNiwxNSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQzRC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiBjbGFzcyBXZWJHTENvbnRleHRHcm91
cDsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CiAKIGNsYXNzIFdlYkdMT2JqZWN0
IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR0xPYmplY3Q+IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFs
IH5XZWJHTE9iamVjdCgpOworICAgIHZpcnR1YWwgfldlYkdMT2JqZWN0KCkgeyB9CiAKICAgICBQ
bGF0Zm9ybTNET2JqZWN0IG9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0OyB9CiAKQEAg
LTU3LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCB2YWxpZGF0ZShjb25zdCBX
ZWJHTENvbnRleHRHcm91cCosIGNvbnN0IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKSBjb25z
dCA9IDA7CiAKIHByb3RlY3RlZDoKLSAgICBXZWJHTE9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlJik7CisgICAgV2ViR0xPYmplY3QoKSA9IGRlZmF1bHQ7CiAKICAgICAvLyBzZXRPYmpl
Y3Qgc2hvdWxkIGJlIG9ubHkgY2FsbGVkIG9uY2UgcmlnaHQgYWZ0ZXIgY3JlYXRpbmcgYSBXZWJH
TE9iamVjdC4KICAgICB2b2lkIHNldE9iamVjdChQbGF0Zm9ybTNET2JqZWN0KTsKQEAgLTcyLDkg
KzcwLDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgR3JhcGhpY3NDb250ZXh0M0QqIGdldEFH
cmFwaGljc0NvbnRleHQzRCgpIGNvbnN0ID0gMDsKIAogcHJpdmF0ZToKLSAgICBQbGF0Zm9ybTNE
T2JqZWN0IG1fb2JqZWN0OwotICAgIHVuc2lnbmVkIG1fYXR0YWNobWVudENvdW50OwotICAgIGJv
b2wgbV9kZWxldGVkOworICAgIFBsYXRmb3JtM0RPYmplY3QgbV9vYmplY3QgeyAwIH07CisgICAg
dW5zaWduZWQgbV9hdHRhY2htZW50Q291bnQgeyAwIH07CisgICAgYm9vbCBtX2RlbGV0ZWQgeyBm
YWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggNzdhZmU5NGM0NTg1YTFiYjNlMTc3NmM4
OTE1M2I4NGJiODZjMTcwMy4uYzI0MzM1ZGM0NjdkNzY3YmFmYTgzZWJjZjExOWYzMmVhM2E1ZDMz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCkBAIC0y
NCwxMyArMjQsMTMgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
R0xQcm9ncmFtLmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNpbmNsdWRlICJXZWJHTFByb2dy
YW0uaCIKLQogI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5oIgorI2luY2x1ZGUgIldlYkdMU2hhZGVyLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsOSArNDEsNiBAQCBSZWY8V2ViR0xQcm9ncmFtPiBXZWJH
TFByb2dyYW06OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgpCiAKIFdlYkdM
UHJvZ3JhbTo6V2ViR0xQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKICAg
ICA6IFdlYkdMU2hhcmVkT2JqZWN0KGN0eCkKLSAgICAsIG1fbGlua1N0YXR1cyhmYWxzZSkKLSAg
ICAsIG1fbGlua0NvdW50KDApCi0gICAgLCBtX2luZm9WYWxpZCh0cnVlKQogewogICAgIHNldE9i
amVjdChjdHguZ3JhcGhpY3NDb250ZXh0M0QoKS0+Y3JlYXRlUHJvZ3JhbSgpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKaW5kZXggNzE3Y2NlMTM4YzQyOGM1
N2NkZGI3YzU1YzE0Njg1ZmE0NjIyMzJmMy4uZWFiNzZjODk3NTFjYmU0OTJiNDZlNzRjZmU4ZDE5
NTgwOWUxMzFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQ
cm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjUsMTcgKzI1LDE2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViR0xTaGFkZXIu
aCIKICNpbmNsdWRlICJXZWJHTFNoYXJlZE9iamVjdC5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBXZWJHTFNoYWRlcjsKKwogY2xhc3Mg
V2ViR0xQcm9ncmFtIGZpbmFsIDogcHVibGljIFdlYkdMU2hhcmVkT2JqZWN0IHsKIHB1YmxpYzoK
LSAgICB2aXJ0dWFsIH5XZWJHTFByb2dyYW0oKTsKLQogICAgIHN0YXRpYyBSZWY8V2ViR0xQcm9n
cmFtPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOworICAgIHZpcnR1YWwgfldl
YkdMUHJvZ3JhbSgpOwogCiAgICAgdW5zaWduZWQgbnVtQWN0aXZlQXR0cmliTG9jYXRpb25zKCk7
CiAgICAgR0MzRGludCBnZXRBY3RpdmVBdHRyaWJMb2NhdGlvbihHQzNEdWludCBpbmRleCk7CkBA
IC02MywyMyArNjIsMjAgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChH
cmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwogCiBwcml2YXRl
OgotICAgIGJvb2wgaXNQcm9ncmFtKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQot
CiAgICAgdm9pZCBjYWNoZUFjdGl2ZUF0dHJpYkxvY2F0aW9ucyhHcmFwaGljc0NvbnRleHQzRCop
OwogICAgIHZvaWQgY2FjaGVJbmZvSWZOZWVkZWQoKTsKIAogICAgIFZlY3RvcjxHQzNEaW50PiBt
X2FjdGl2ZUF0dHJpYkxvY2F0aW9uczsKIAotICAgIEdDM0RpbnQgbV9saW5rU3RhdHVzOworICAg
IEdDM0RpbnQgbV9saW5rU3RhdHVzIHsgMCB9OwogCi0gICAgLy8gVGhpcyBpcyB1c2VkIHRvIHRy
YWNrIHdoZXRoZXIgYSBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBiZWxvbmdzIHRvIHRoaXMKLSAgICAv
LyBwcm9ncmFtIG9yIG5vdC4KLSAgICB1bnNpZ25lZCBtX2xpbmtDb3VudDsKKyAgICAvLyBUaGlz
IGlzIHVzZWQgdG8gdHJhY2sgd2hldGhlciBhIFdlYkdMVW5pZm9ybUxvY2F0aW9uIGJlbG9uZ3Mg
dG8gdGhpcyBwcm9ncmFtIG9yIG5vdC4KKyAgICB1bnNpZ25lZCBtX2xpbmtDb3VudCB7IDAgfTsK
IAogICAgIFJlZlB0cjxXZWJHTFNoYWRlcj4gbV92ZXJ0ZXhTaGFkZXI7CiAgICAgUmVmUHRyPFdl
YkdMU2hhZGVyPiBtX2ZyYWdtZW50U2hhZGVyOwogCi0gICAgYm9vbCBtX2luZm9WYWxpZDsKKyAg
ICBib29sIG1faW5mb1ZhbGlkIHsgdHJ1ZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5oCmluZGV4IDQ2ZGI1OTJhODVh
ZjYyZmU4MGY3MWYzNzNiZTU5MTZiY2I5YzE4NTkuLjNjYjc2MTc3Nzc3NTIwMWJjYTAxYWE2MDZj
NWJjMTk1NGEyNmYyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUXVlcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzEsMTcgKzMxLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2ViR0xRdWVyeSBm
aW5hbCA6IHB1YmxpYyBXZWJHTFNoYXJlZE9iamVjdCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+
V2ViR0xRdWVyeSgpOwotCiAgICAgc3RhdGljIFJlZjxXZWJHTFF1ZXJ5PiBjcmVhdGUoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSYpOworICAgIHZpcnR1YWwgfldlYkdMUXVlcnkoKTsKIAogcHJv
dGVjdGVkOgotICAgIFdlYkdMUXVlcnkoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwotCisg
ICAgZXhwbGljaXQgV2ViR0xRdWVyeShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CiAgICAg
dm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVj
dCkgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAgYm9vbCBpc1F1ZXJ5KCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAK
aW5kZXggYjA2ZDZjOWM4NmEzMTZjMjAxOTkzNWNlODQxMzQ4MDllMzM0MTZhZi4uN2RmZmMzNTdh
MTcyYjU5MTFhY2YwYjA4NWYyZWQyMTg4NjI1YTkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDkgKzI0LDkgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCi0jaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmgiCiAKICNpbmNsdWRlICJBTkdMRUluc3RhbmNlZEFycmF5cy5oIgogI2luY2x1ZGUgIkNh
Y2hlZEltYWdlLmgiCkBAIC03MCwxNiArNzAsMTYgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgR3IK
IHsKIH0KIAotV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRN
TENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQz
RD4gY29udGV4dCwKLSAgICBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcykg
OiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKHBhc3NlZENhbnZhcywgY29udGV4dCwgYXR0cmli
dXRlcykKK1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6V2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxD
YW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFJlZjxHcmFwaGljc0NvbnRleHQzRD4mJiBjb250
ZXh0LCBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcykKKyAgICA6IFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UocGFzc2VkQ2FudmFzLCBXVEZNb3ZlKGNvbnRleHQpLCBhdHRy
aWJ1dGVzKQogewogICAgIGluaXRpYWxpemVWZXJ0ZXhBcnJheU9iamVjdHMoKTsKIH0KIAogdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVWZXJ0ZXhBcnJheU9iamVjdHMoKQog
ewotICAgIG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUzo6Y3JlYXRlKCp0aGlzLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpWQU9UeXBlRGVm
YXVsdCk7Ci0gICAgYWRkQ29udGV4dE9iamVjdChtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdC5n
ZXQoKSk7CisgICAgbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QgPSBXZWJHTFZlcnRleEFycmF5
T2JqZWN0T0VTOjpjcmVhdGUoKnRoaXMsIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OlR5cGU6
OkRlZmF1bHQpOworICAgIGFkZENvbnRleHRPYmplY3QoKm1fZGVmYXVsdFZlcnRleEFycmF5T2Jq
ZWN0KTsKICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBtX2RlZmF1bHRWZXJ0ZXhBcnJh
eU9iamVjdDsKICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSkKICAgICAgICAgaW5pdFZlcnRl
eEF0dHJpYjAoKTsKQEAgLTkwLDk5ICs5MCw5MSBAQCBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIAot
ICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfYmxlbmRfbWlubWF4IikK
LSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9i
bGVuZF9taW5tYXgiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJF
WFRfYmxlbmRfbWlubWF4IikpIHsKICAgICAgICAgaWYgKCFtX2V4dEJsZW5kTWluTWF4KSB7Ci0g
ICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9F
WFRfYmxlbmRfbWlubWF4Iik7Ci0gICAgICAgICAgICBtX2V4dEJsZW5kTWluTWF4ID0gc3RkOjpt
YWtlX3VuaXF1ZTxFWFRCbGVuZE1pbk1heD4oKnRoaXMpOworICAgICAgICAgICAgbV9leHRCbGVu
ZE1pbk1heCA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfRVhUX2JsZW5kX21pbm1heCIp
CisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPEVYVEJsZW5kTWluTWF4PigqdGhp
cykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dEJsZW5kTWluTWF4
LmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhU
X3NSR0IiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygi
R0xfRVhUX3NSR0IiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJF
WFRfc1JHQiIpKSB7CiAgICAgICAgIGlmICghbV9leHRzUkdCKSB7Ci0gICAgICAgICAgICBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9FWFRfc1JHQiIpOwotICAg
ICAgICAgICAgbV9leHRzUkdCID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRzUkdCPigqdGhpcyk7Cisg
ICAgICAgICAgICBtX2V4dHNSR0IgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oIkdMX0VYVF9z
UkdCIikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8RVhUc1JHQj4oKnRoaXMp
IDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9leHRzUkdCLmdldCgpOwog
ICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX2ZyYWdfZGVw
dGgiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xf
RVhUX2ZyYWdfZGVwdGgiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUs
ICJFWFRfZnJhZ19kZXB0aCIpKSB7CiAgICAgICAgIGlmICghbV9leHRGcmFnRGVwdGgpIHsKLSAg
ICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX0VY
VF9mcmFnX2RlcHRoIik7Ci0gICAgICAgICAgICBtX2V4dEZyYWdEZXB0aCA9IHN0ZDo6bWFrZV91
bmlxdWU8RVhURnJhZ0RlcHRoPigqdGhpcyk7CisgICAgICAgICAgICBtX2V4dEZyYWdEZXB0aCA9
IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfRVhUX2ZyYWdfZGVwdGgiKQorICAgICAgICAg
ICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRGcmFnRGVwdGg+KCp0aGlzKSA6IG51bGxwdHI7
CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fZXh0RnJhZ0RlcHRoLmdldCgpOwogICAgIH0K
LSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhUX3NoYWRlcl90ZXh0dXJl
X2xvZCIpCi0gICAgICAgICYmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygi
R0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpIHx8IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LnN1cHBvcnRzKCJHTF9BUkJfc2hhZGVyX3RleHR1cmVfbG9kIikpKSB7CisgICAgaWYgKGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKSkgewogICAg
ICAgICBpZiAoIW1fZXh0U2hhZGVyVGV4dHVyZUxPRCkgewotICAgICAgICAgICAgbV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xv
ZCIpOwotICAgICAgICAgICAgbV9leHRTaGFkZXJUZXh0dXJlTE9EID0gc3RkOjptYWtlX3VuaXF1
ZTxFWFRTaGFkZXJUZXh0dXJlTE9EPigqdGhpcyk7CisgICAgICAgICAgICBpZiAoIShtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX3NoYWRl
cl90ZXh0dXJlX2xvZCIgfSkgfHwgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMo
QVNDSUlMaXRlcmFsIHsgIkdMX0FSQl9zaGFkZXJfdGV4dHVyZV9sb2QiIH0pKSkKKyAgICAgICAg
ICAgICAgICBtX2V4dFNoYWRlclRleHR1cmVMT0QgPSBudWxscHRyOworICAgICAgICAgICAgZWxz
ZSB7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5h
YmxlZChBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIgfSk7CisgICAg
ICAgICAgICAgICAgbV9leHRTaGFkZXJUZXh0dXJlTE9EID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRT
aGFkZXJUZXh0dXJlTE9EPigqdGhpcyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuIG1fZXh0U2hhZGVyVGV4dHVyZUxPRC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKChl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9w
aWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfRVhUX3RleHR1cmVf
ZmlsdGVyX2FuaXNvdHJvcGljIikpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLnN1cHBvcnRzKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkgeworICAg
IGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9maWx0ZXJfYW5p
c290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfRVhUX3Rl
eHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpIHsKICAgICAgICAgaWYgKCFtX2V4dFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpYykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25z
KCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7Ci0g
ICAgICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IHN0ZDo6bWFrZV91bmlx
dWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcyk7CisgICAgICAgICAgICBtX2V4
dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xf
RVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6
bWFrZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcykgOiBudWxscHRy
OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Yy5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9F
U19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKSkgeworICAgIGlm
IChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMi
KSkgewogICAgICAgICBpZiAoIW1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcykgewotICAgICAgICAg
ICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3N0YW5k
YXJkX2Rlcml2YXRpdmVzIik7Ci0gICAgICAgICAgICBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMg
PSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM+KCp0aGlzKTsKKyAgICAg
ICAgICAgIG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcyA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lv
bigiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6
bWFrZV91bmlxdWU8T0VTU3RhbmRhcmREZXJpdmF0aXZlcz4oKnRoaXMpIDogbnVsbHB0cjsKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzLmdldCgpOwog
ICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVf
ZmxvYXQiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygi
R0xfT0VTX3RleHR1cmVfZmxvYXQiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJl
RmxvYXQpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVu
YWJsZWQoIkdMX09FU190ZXh0dXJlX2Zsb2F0Iik7Ci0gICAgICAgICAgICBtX29lc1RleHR1cmVG
bG9hdCA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0PigqdGhpcyk7CisgICAgICAg
ICAgICBtX29lc1RleHR1cmVGbG9hdCA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfT0VT
X3RleHR1cmVfZmxvYXQiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNU
ZXh0dXJlRmxvYXQ+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
IG1fb2VzVGV4dHVyZUZsb2F0LmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikKLSAgICAgICAgJiYgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xp
bmVhciIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0
dXJlX2Zsb2F0X2xpbmVhciIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlRmxvYXRMaW5l
YXIpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJs
ZWQoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpOwotICAgICAgICAgICAgbV9vZXNUZXh0
dXJlRmxvYXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdExpbmVhcj4o
KnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIgPSBlbmFibGVTdXBw
b3J0ZWRFeHRlbnNpb24oIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpCisgICAgICAgICAg
ICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdExpbmVhcj4oKnRoaXMpIDog
bnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlRmxvYXRMaW5l
YXIuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJP
RVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSkgeworICAgIGlmIChl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpIHsK
ICAgICAgICAgaWYgKCFtX29lc1RleHR1cmVIYWxmRmxvYXQpIHsKLSAgICAgICAgICAgIG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2hhbGZf
ZmxvYXQiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdCA9IHN0ZDo6bWFrZV91
bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdD4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0
dXJlSGFsZkZsb2F0ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfdGV4dHVyZV9o
YWxmX2Zsb2F0IikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVy
ZUhhbGZGbG9hdD4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4g
bV9vZXNUZXh0dXJlSGFsZkZsb2F0LmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKQotICAgICAg
ICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVf
aGFsZl9mbG9hdF9saW5lYXIiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5h
bWUsICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpKSB7CiAgICAgICAgIGlmICghbV9v
ZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4
dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVh
ciIpOwotICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyID0gc3RkOjptYWtl
X3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyPigqdGhpcyk7CisgICAgICAgICAgICBt
X29lc1RleHR1cmVIYWxmRmxvYXRMaW5lYXIgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oIkdM
X09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6
bWFrZV91bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcj4oKnRoaXMpIDogbnVsbHB0cjsK
ICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyLmdl
dCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3Zl
cnRleF9hcnJheV9vYmplY3QiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cygiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSkgeworICAgIGlmIChlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpKSB7CiAg
ICAgICAgIGlmICghbV9vZXNWZXJ0ZXhBcnJheU9iamVjdCkgewotICAgICAgICAgICAgbV9jb250
ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3ZlcnRleF9hcnJheV9v
YmplY3QiKTsKLSAgICAgICAgICAgIG1fb2VzVmVydGV4QXJyYXlPYmplY3QgPSBzdGQ6Om1ha2Vf
dW5pcXVlPE9FU1ZlcnRleEFycmF5T2JqZWN0PigqdGhpcyk7CisgICAgICAgICAgICBtX29lc1Zl
cnRleEFycmF5T2JqZWN0ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfdmVydGV4
X2FycmF5X29iamVjdCIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU1Zl
cnRleEFycmF5T2JqZWN0PigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJl
dHVybiBtX29lc1ZlcnRleEFycmF5T2JqZWN0LmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpCi0gICAgICAg
ICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfZWxlbWVudF9p
bmRleF91aW50IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VT
X2VsZW1lbnRfaW5kZXhfdWludCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNFbGVtZW50SW5kZXhV
aW50KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFi
bGVkKCJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50Iik7Ci0gICAgICAgICAgICBtX29lc0VsZW1l
bnRJbmRleFVpbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU0VsZW1lbnRJbmRleFVpbnQ+KCp0aGlz
KTsKKyAgICAgICAgICAgIG1fb2VzRWxlbWVudEluZGV4VWludCA9IGVuYWJsZVN1cHBvcnRlZEV4
dGVuc2lvbigiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpCisgICAgICAgICAgICAgICAgPyBz
dGQ6Om1ha2VfdW5pcXVlPE9FU0VsZW1lbnRJbmRleFVpbnQ+KCp0aGlzKSA6IG51bGxwdHI7CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzRWxlbWVudEluZGV4VWludC5nZXQoKTsKICAg
ICB9CkBAIC0xOTEsNDEgKzE4Myw1MyBAQCBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICAgICAgbV93
ZWJnbExvc2VDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTExvc2VDb250ZXh0PigqdGhp
cyk7CiAgICAgICAgIHJldHVybiBtX3dlYmdsTG9zZUNvbnRleHQuZ2V0KCk7CiAgICAgfQotICAg
IGlmICgoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNz
ZWRfdGV4dHVyZV9hdGMiKSkKLSAgICAgICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6
c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVy
ZUFUQykKLSAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQyA9IHN0ZDo6bWFr
ZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQz4oKnRoaXMpOworICAgIGlmIChlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJl
X2F0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDKSB7Cisg
ICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMgPSBXZWJHTENvbXByZXNzZWRU
ZXh0dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM+KCp0aGlzKSA6IG51bGxwdHI7CisgICAg
ICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQy5nZXQoKTsK
ICAgICB9Ci0gICAgaWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfV0VC
R0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIikpCi0gICAgICAgICYmIFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xD
b21wcmVzc2VkVGV4dHVyZVBWUlRDKQotICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0
dXJlUFZSVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQz4o
KnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfV0VC
R0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsQ29t
cHJlc3NlZFRleHR1cmVQVlJUQykgeworICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0
dXJlUFZSVEMgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OnN1cHBvcnRlZCgqdGhpcykK
KyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVBWUlRDPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3dl
YmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIikKLSAg
ICAgICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhpcykpIHsK
LSAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDKQotICAgICAgICAgICAg
bV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21w
cmVzc2VkVGV4dHVyZVMzVEM+KCp0aGlzKTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShuYW1lLCAiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKSkgeworICAgICAgICBpZiAo
IW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xDb21w
cmVzc2VkVGV4dHVyZVMzVEMgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVk
KCp0aGlzKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNz
ZWRUZXh0dXJlUzNUQz4oKnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAgfQogICAgICAgICByZXR1
cm4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQy5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVx
dWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlcHRoX3RleHR1cmUiKQotICAgICAg
ICAmJiBXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCpncmFwaGljc0NvbnRleHQzRCgpKSkg
ewotICAgICAgICBpZiAoIW1fd2ViZ2xEZXB0aFRleHR1cmUpCi0gICAgICAgICAgICBtX3dlYmds
RGVwdGhUZXh0dXJlID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlcHRoVGV4dHVyZT4oKnRoaXMp
OworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZXB0aF90ZXh0
dXJlIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsRGVwdGhUZXh0dXJlKSB7CisgICAgICAgICAg
ICBtX3dlYmdsRGVwdGhUZXh0dXJlID0gV2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqbV9j
b250ZXh0KQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlcHRoVGV4
dHVyZT4oKnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJn
bERlcHRoVGV4dHVyZS5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UobmFtZSwgIldFQkdMX2RyYXdfYnVmZmVycyIpICYmIHN1cHBvcnRzRHJhd0J1ZmZlcnMoKSkg
eworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kcmF3X2J1ZmZl
cnMiKSkgewogICAgICAgICBpZiAoIW1fd2ViZ2xEcmF3QnVmZmVycykgewotICAgICAgICAgICAg
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX2RyYXdfYnVm
ZmVycyIpOwotICAgICAgICAgICAgbV93ZWJnbERyYXdCdWZmZXJzID0gc3RkOjptYWtlX3VuaXF1
ZTxXZWJHTERyYXdCdWZmZXJzPigqdGhpcyk7CisgICAgICAgICAgICBpZiAoIXN1cHBvcnRzRHJh
d0J1ZmZlcnMoKSkKKyAgICAgICAgICAgICAgICBtX3dlYmdsRHJhd0J1ZmZlcnMgPSBudWxscHRy
OworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuZW5zdXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX2RyYXdfYnVmZmVy
cyIgfSk7CisgICAgICAgICAgICAgICAgbV93ZWJnbERyYXdCdWZmZXJzID0gc3RkOjptYWtlX3Vu
aXF1ZTxXZWJHTERyYXdCdWZmZXJzPigqdGhpcyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEcmF3QnVmZmVycy5nZXQoKTsKICAgICB9Ci0gICAgaWYg
KGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSAm
JiBBTkdMRUluc3RhbmNlZEFycmF5czo6c3VwcG9ydGVkKCp0aGlzKSkgeworICAgIGlmIChlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIikpIHsKICAg
ICAgICAgaWYgKCFtX2FuZ2xlSW5zdGFuY2VkQXJyYXlzKSB7Ci0gICAgICAgICAgICBtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9BTkdMRV9pbnN0YW5jZWRfYXJy
YXlzIik7Ci0gICAgICAgICAgICBtX2FuZ2xlSW5zdGFuY2VkQXJyYXlzID0gc3RkOjptYWtlX3Vu
aXF1ZTxBTkdMRUluc3RhbmNlZEFycmF5cz4oKnRoaXMpOworICAgICAgICAgICAgaWYgKCFBTkdM
RUluc3RhbmNlZEFycmF5czo6c3VwcG9ydGVkKCp0aGlzKSkKKyAgICAgICAgICAgICAgICBtX2Fu
Z2xlSW5zdGFuY2VkQXJyYXlzID0gbnVsbHB0cjsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoQVNDSUlM
aXRlcmFsIHsgIkdMX0FOR0xFX2luc3RhbmNlZF9hcnJheXMiIH0pOworICAgICAgICAgICAgICAg
IG1fYW5nbGVJbnN0YW5jZWRBcnJheXMgPSBzdGQ6Om1ha2VfdW5pcXVlPEFOR0xFSW5zdGFuY2Vk
QXJyYXlzPigqdGhpcyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
IG1fYW5nbGVJbnN0YW5jZWRBcnJheXMuZ2V0KCk7CiAgICAgfQpAQCAtMjM0LDEwICsyMzgsMTEg
QEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKGNv
bnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbyA9
IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4oKnRoaXMpOwogICAgICAg
ICByZXR1cm4gbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvLmdldCgpOwogICAgIH0KLSAgICBpZiAo
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVidWdfc2hhZGVycyIpCi0gICAg
ICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9BTkdMRV90cmFu
c2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1NoYWRl
cnMpCi0gICAgICAgICAgICBtX3dlYmdsRGVidWdTaGFkZXJzID0gc3RkOjptYWtlX3VuaXF1ZTxX
ZWJHTERlYnVnU2hhZGVycz4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KG5hbWUsICJXRUJHTF9kZWJ1Z19zaGFkZXJzIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsRGVi
dWdTaGFkZXJzKSB7CisgICAgICAgICAgICBtX3dlYmdsRGVidWdTaGFkZXJzID0gbV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0FOR0xFX3RyYW5z
bGF0ZWRfc2hhZGVyX3NvdXJjZSIgfSkKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlx
dWU8V2ViR0xEZWJ1Z1NoYWRlcnM+KCp0aGlzKSA6IG51bGxwdHI7CisgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMuZ2V0KCk7CiAgICAgfQogCkBAIC0yNTEsMTA5
ICsyNTYsMTA5IEBAIFZlY3RvcjxTdHJpbmc+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U3Vw
cG9ydGVkRXh0ZW5zaW9ucygpCiAgICAgaWYgKG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9ibGVuZF9taW5tYXgiKSkKLSAgICAgICAgcmVzdWx0
LmFwcGVuZCgiRVhUX2JsZW5kX21pbm1heCIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVu
c2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX3NSR0IiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgi
RVhUX3NSR0IiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMo
IkdMX0VYVF9mcmFnX2RlcHRoIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIkVYVF9mcmFnX2Rl
cHRoIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9P
RVNfdGV4dHVyZV9mbG9hdCIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdGV4dHVyZV9m
bG9hdCIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xf
T0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190
ZXh0dXJlX2Zsb2F0X2xpbmVhciIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpKQotICAgICAgICByZXN1bHQu
YXBwZW5kKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0
RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIp
KQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIp
OwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3N0
YW5kYXJkX2Rlcml2YXRpdmVzIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU19zdGFuZGFy
ZF9kZXJpdmF0aXZlcyIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cygiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpIHx8IG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLnN1cHBvcnRzKCJHTF9BUkJfc2hhZGVyX3RleHR1cmVfbG9kIikpCi0gICAgICAgIHJl
c3VsdC5hcHBlbmQoIkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKTsKLSAgICBpZiAobV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ry
b3BpYyIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290
cm9waWMiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdM
X09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU192
ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LnN1cHBvcnRzKCJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50IikpCi0gICAgICAgIHJlc3VsdC5h
cHBlbmQoIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKTsKLSAgICByZXN1bHQuYXBwZW5kKCJXRUJH
TF9sb3NlX2NvbnRleHQiKTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3Vw
cG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF9ibGVuZF9taW5tYXgiIH0pKQorICAgICAgICBy
ZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJFWFRfYmxlbmRfbWlubWF4IiB9KTsKKyAgICBp
ZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdM
X0VYVF9zUkdCIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiRVhU
X3NSR0IiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhB
U0NJSUxpdGVyYWwgeyAiR0xfRVhUX2ZyYWdfZGVwdGgiIH0pKQorICAgICAgICByZXN1bHQuYXBw
ZW5kKEFTQ0lJTGl0ZXJhbCB7ICJFWFRfZnJhZ19kZXB0aCIgfSk7CisgICAgaWYgKG1fY29udGV4
dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVy
ZV9mbG9hdCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU190
ZXh0dXJlX2Zsb2F0IiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3Vw
cG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIgfSkpCisg
ICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU190ZXh0dXJlX2Zsb2F0X2xp
bmVhciIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFT
Q0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiB9KSkKKyAgICAgICAgcmVz
dWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIgfSk7Cisg
ICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7
ICJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIgfSkpCisgICAgICAgIHJlc3VsdC5h
cHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIiB9KTsK
KyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFs
IHsgIkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBl
bmQoQVNDSUlMaXRlcmFsIHsgIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIgfSk7CisgICAgaWYg
KG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9F
WFRfc2hhZGVyX3RleHR1cmVfbG9kIiB9KSB8fCBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5z
dXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfQVJCX3NoYWRlcl90ZXh0dXJlX2xvZCIgfSkpCisg
ICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIkVYVF9zaGFkZXJfdGV4dHVyZV9s
b2QiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJ
SUxpdGVyYWwgeyAiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIiB9KSkKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNv
dHJvcGljIiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMo
QVNDSUlMaXRlcmFsIHsgIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IiB9KSkKKyAgICAgICAg
cmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiIH0p
OworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVy
YWwgeyAiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBl
bmQoQVNDSUlMaXRlcmFsIHsgIk9FU19lbGVtZW50X2luZGV4X3VpbnQiIH0pOworICAgIHJlc3Vs
dC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2xvc2VfY29udGV4dCIgfSk7CiAgICAgaWYg
KFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZCgqdGhpcykpCi0gICAgICAgIHJl
c3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIik7CisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQktJVF9XRUJHTF9jb21wcmVzc2Vk
X3RleHR1cmVfYXRjIiB9KTsKICAgICBpZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpz
dXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRfV0VCR0xfY29t
cHJlc3NlZF90ZXh0dXJlX3B2cnRjIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRl
cmFsIHsgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMiIH0pOwogICAgIGlm
IChXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKCp0aGlzKSkKICAgICAgICAg
cmVzdWx0LmFwcGVuZCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKTsKLSAgICBpZiAo
V2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqZ3JhcGhpY3NDb250ZXh0M0QoKSkpCi0gICAg
ICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlcHRoX3RleHR1cmUiKTsKKyAgICBpZiAoV2ViR0xE
ZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqbV9jb250ZXh0KSkKKyAgICAgICAgcmVzdWx0LmFwcGVu
ZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfZGVwdGhfdGV4dHVyZSIgfSk7CiAgICAgaWYgKHN1cHBv
cnRzRHJhd0J1ZmZlcnMoKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfZHJhd19idWZm
ZXJzIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RyYXdf
YnVmZmVycyIgfSk7CiAgICAgaWYgKEFOR0xFSW5zdGFuY2VkQXJyYXlzOjpzdXBwb3J0ZWQoKnRo
aXMpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIik7Ci0g
ICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9BTkdMRV90cmFu
c2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfZGVi
dWdfc2hhZGVycyIpOwotICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlYnVnX3JlbmRlcmVyX2lu
Zm8iKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiQU5HTEVfaW5zdGFu
Y2VkX2FycmF5cyIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBv
cnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiIH0p
KQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9kZWJ1Z19zaGFk
ZXJzIiB9KTsKKyAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9kZWJ1Z19y
ZW5kZXJlcl9pbmZvIiB9KTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVdlYkdMR2V0SW5m
byBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
cihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKQor
V2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQ
YXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBw
bmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZUZy
YW1lYnVmZmVyRnVuY1BhcmFtZXRlcnMoImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
ciIsIHRhcmdldCwgYXR0YWNobWVudCkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCiAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmlu
ZGluZyB8fCAhbV9mcmFtZWJ1ZmZlckJpbmRpbmctPm9iamVjdCgpKSB7CiAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgImdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJubyBmcmFtZWJ1ZmZlciBib3VuZCIpOwot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KICAgICAKLSAgICBXZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0ID0gbV9mcmFtZWJ1ZmZl
ckJpbmRpbmctPmdldEF0dGFjaG1lbnRPYmplY3QoYXR0YWNobWVudCk7CisgICAgYXV0byogb2Jq
ZWN0ID0gbV9mcmFtZWJ1ZmZlckJpbmRpbmctPmdldEF0dGFjaG1lbnRPYmplY3QoYXR0YWNobWVu
dCk7CiAgICAgaWYgKCFvYmplY3QpIHsKICAgICAgICAgaWYgKHBuYW1lID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFKQotICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6Tk9ORSk7CisgICAgICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKTsK
ICAgICAgICAgLy8gT3BlbkdMIEVTIDIuMCBzcGVjaWZpZXMgSU5WQUxJRF9FTlVNIGluIHRoaXMg
Y2FzZSwgd2hpbGUgZGVza3RvcCBHTAogICAgICAgICAvLyBzcGVjaWZpZXMgSU5WQUxJRF9PUEVS
QVRJT04uCiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBw
YXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KICAgICAKLSAgICBBU1NFUlQob2JqZWN0LT5pc1RleHR1
cmUoKSB8fCBvYmplY3QtPmlzUmVuZGVyYnVmZmVyKCkpOwogICAgIGlmIChvYmplY3QtPmlzVGV4
dHVyZSgpKSB7CiAgICAgICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRToKLSAgICAgICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUpOworICAg
ICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihHcmFwaGljc0NvbnRleHQzRDo6
VEVYVFVSRSk7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FU
VEFDSE1FTlRfT0JKRUNUX05BTUU6Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBh
c3NSZWZQdHI8V2ViR0xUZXh0dXJlPihyZWludGVycHJldF9jYXN0PFdlYkdMVGV4dHVyZSo+KG9i
amVjdCkpKTsKKyAgICAgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViR0xUZXh0dXJlJj4oKm9iamVjdCkpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEVWRUw6CiAgICAgICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9DVUJFX01BUF9G
QUNFOgogICAgICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9D
T0xPUl9FTkNPRElOR19FWFQ6IHsKICAgICAgICAgICAgIEdDM0RpbnQgdmFsdWUgPSAwOwogICAg
ICAgICAgICAgbV9jb250ZXh0LT5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXJpdih0
YXJnZXQsIGF0dGFjaG1lbnQsIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgICAgIH0K
ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNz
Q29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0
ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBmb3IgdGV4dHVyZSBhdHRhY2htZW50Iik7Ci0g
ICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVChvYmplY3QtPmlz
UmVuZGVyYnVmZmVyKCkpOwogICAgICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEU6Ci0g
ICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJC
VUZGRVIpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihHcmFwaGlj
c0NvbnRleHQzRDo6UkVOREVSQlVGRkVSKTsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRToKLSAgICAgICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4ocmVpbnRlcnByZXRf
Y2FzdDxXZWJHTFJlbmRlcmJ1ZmZlcio+KG9iamVjdCkpKTsKKyAgICAgICAgICAgIHJldHVybiBt
YWtlUmVmUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5kZXJidWZmZXImPigqb2JqZWN0KSk7
CiAgICAgICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9S
X0VOQ09ESU5HX0VYVDogewogICAgICAgICAgICAgaWYgKCFtX2V4dHNSR0IpIHsKICAgICAgICAg
ICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVN
LCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVy
IG5hbWUgZm9yIHJlbmRlcmJ1ZmZlciBhdHRhY2htZW50Iik7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgV2ViR0xSZW5kZXJidWZmZXIqIHJlbmRlckJ1ZmZlciA9
IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5kZXJidWZmZXIqPihvYmplY3QpOwogICAgICAgICAg
ICAgR0MzRGVudW0gcmVuZGVyQnVmZmVyRm9ybWF0ID0gcmVuZGVyQnVmZmVyLT5nZXRJbnRlcm5h
bEZvcm1hdCgpOwogICAgICAgICAgICAgQVNTRVJUKHJlbmRlckJ1ZmZlckZvcm1hdCAhPSBFeHRl
bnNpb25zM0Q6OlNSR0JfRVhUICYmIHJlbmRlckJ1ZmZlckZvcm1hdCAhPSBFeHRlbnNpb25zM0Q6
OlNSR0JfQUxQSEFfRVhUKTsKICAgICAgICAgICAgIGlmIChyZW5kZXJCdWZmZXJGb3JtYXQgPT0g
RXh0ZW5zaW9uczNEOjpTUkdCOF9BTFBIQThfRVhUKQotICAgICAgICAgICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oRXh0ZW5zaW9uczNEOjpTUkdCX0VYVCk7Ci0gICAgICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOworICAgICAgICAgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oRXh0ZW5zaW9uczNEOjpTUkdCX0VYVCk7Cisg
ICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNE
OjpMSU5FQVIpOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBzeW50
aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUgZm9yIHJl
bmRlcmJ1ZmZlciBhdHRhY2htZW50Iik7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KIH0KQEAg
LTM2NCwyMSArMzY5LDIyIEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUZy
YW1lYnVmZmVyRnVuY1BhcmFtZXRlcnMoY29uc3QgY2hhciogZnVuY3RpCiAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sIGZ1bmN0aW9uTmFt
ZSwgImludmFsaWQgdGFyZ2V0Iik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CisgICAg
Ly8gRklYTUU6IFdoeSBkb2VzIHRoaXMgcmV0dXJuIHRydWUgdW5jb25kaXRpb25hbGx5IGZvciBD
T0xPUl9BVFRBQ0hNRU5UMCwKKyAgICAvLyBidXQgZmFsc2UgZm9yIG90aGVyIENPTE9SX0FUVEFD
SE1FTlQgdmFsdWVzIGlmIG1fd2ViZ2xEcmF3QnVmZmVycyBpcyBmYWxzZT8KICAgICBzd2l0Y2gg
KGF0dGFjaG1lbnQpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hN
RU5UMDoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5UOgogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQVRUQUNITUVOVDoKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAgIGJyZWFr
OworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAobV93ZWJn
bERyYXdCdWZmZXJzCi0gICAgICAgICAgICAmJiBhdHRhY2htZW50ID4gR3JhcGhpY3NDb250ZXh0
M0Q6OkNPTE9SX0FUVEFDSE1FTlQwCisgICAgICAgICAgICAmJiBhdHRhY2htZW50ID49IEdyYXBo
aWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMAogICAgICAgICAgICAgJiYgYXR0YWNobWVu
dCA8IHN0YXRpY19jYXN0PEdDM0RlbnVtPihHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNI
TUVOVDAgKyBnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkpKQotICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhp
Y3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCBhdHRhY2ht
ZW50Iik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIHRydWU7CiB9
CiAgICAgCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6cmVuZGVyYnVmZmVyU3RvcmFnZShH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgs
IEdDM0RzaXplaSBoZWlnaHQpCkBAIC00NTUsNyArNDYxLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmNsZWFyKEdDM0RiaXRmaWVsZCBtYXNrKQogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9ICJmcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIjsKLSAg
ICBpZiAobV9mcmFtZWJ1ZmZlckJpbmRpbmcgJiYgIW1fZnJhbWVidWZmZXJCaW5kaW5nLT5vbkFj
Y2VzcyhncmFwaGljc0NvbnRleHQzRCgpLCAmcmVhc29uKSkgeworICAgIGlmIChtX2ZyYW1lYnVm
ZmVyQmluZGluZyAmJiAhbV9mcmFtZWJ1ZmZlckJpbmRpbmctPm9uQWNjZXNzKG1fY29udGV4dC5n
ZXQoKSwgJnJlYXNvbikpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OLCAiY2xlYXIiLCByZWFzb24pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDY0LDExICs0NzAsMTEgQEAgdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OmNsZWFyKEdDM0RiaXRmaWVsZCBtYXNrKQogICAgIG1hcmtDb250ZXh0
Q2hhbmdlZCgpOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQ
YXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9y
UGVuZGluZygpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgY29uc3QgaW50
IGludFplcm8gPSAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwogICAgIHN3aXRjaCAocG5h
bWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVfVEVYVFVSRToKICAgICAg
ICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKQEAgLTQ3OSw3ICs0ODUs
NyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0Mz
RGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUxQSEFfQklUUzoKICAg
ICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6QVJSQVlfQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4obV9ib3VuZEFycmF5QnVmZmVyKSk7CisgICAgICAg
IHJldHVybiBtX2JvdW5kQXJyYXlCdWZmZXI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
QkxFTkQ6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORF9DT0xPUjoKQEAgLTUwMywxNiArNTA5LDE2IEBA
IFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51
bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9XUklURU1BU0s6CiAg
ICAgICAgIHJldHVybiBnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTOgotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDMyQXJyYXk+KFVpbnQzMkFycmF5Ojpj
cmVhdGUobV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMuZGF0YSgpLCBtX2NvbXByZXNzZWRUZXh0
dXJlRm9ybWF0cy5zaXplKCkpKSk7CisgICAgICAgIHJldHVybiBVaW50MzJBcnJheTo6Y3JlYXRl
KG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLmRhdGEoKSwgbV9jb21wcmVzc2VkVGV4dHVyZUZv
cm1hdHMuc2l6ZSgpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVUxMX0ZBQ0U6CiAg
ICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpDVUxMX0ZBQ0VfTU9ERToKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVk
SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVVJSRU5U
X1BST0dSQU06Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFBy
b2dyYW0+KG1fY3VycmVudFByb2dyYW0pKTsKKyAgICAgICAgcmV0dXJuIG1fY3VycmVudFByb2dy
YW07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQklUUzoKICAgICAgICAgaWYg
KCFtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAhbV9hdHRyaWJ1dGVzLmRlcHRoKQotICAgICAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhpbnRaZXJvKTsKKyAgICAgICAgICAgIHJldHVybiAwOwog
ICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpERVBUSF9DTEVBUl9WQUxVRToKICAgICAgICAgcmV0dXJuIGdldEZsb2F0UGFy
YW1ldGVyKHBuYW1lKTsKQEAgLTUyNyw5ICs1MzMsOSBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6RElUSEVSOgogICAgICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRl
cihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZG
RVJfQklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdM
QnVmZmVyPihtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1lbnRBcnJheUJ1ZmZlcigp
KSk7CisgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+
Z2V0RWxlbWVudEFycmF5QnVmZmVyKCkpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZS
QU1FQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0
cjxXZWJHTEZyYW1lYnVmZmVyPihtX2ZyYW1lYnVmZmVyQmluZGluZykpOworICAgICAgICByZXR1
cm4gbV9mcmFtZWJ1ZmZlckJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJP
TlRfRkFDRToKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpHRU5FUkFURV9NSVBNQVBfSElOVDoKQEAgLTU3
Nyw5ICs1ODMsOSBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJh
bWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVEX0JJ
VFM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+KG1fcmVuZGVyYnVmZmVyQmlu
ZGluZykpOworICAgICAgICByZXR1cm4gbV9yZW5kZXJidWZmZXJCaW5kaW5nOwogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkVSOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KFN0cmluZygiV2ViS2l0IFdlYkdMIikpOworICAgICAgICByZXR1cm4gU3RyaW5nIHsgQVNDSUlM
aXRlcmFsIHsgIldlYktpdCBXZWJHTCIgfSB9OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlNBTVBMRV9CVUZGRVJTOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTQU1QTEVfQ09WRVJBR0VfSU5WRVJUOgpAQCAt
NTkzLDcgKzU5OSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBh
cmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTQ0lT
U09SX1RFU1Q6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTSEFESU5HX0xBTkdVQUdFX1ZFUlNJT046Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oIldlYkdMIEdMU0wgRVMgMS4wICgiICsgbV9jb250ZXh0
LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTikg
KyAiKSIpOworICAgICAgICByZXR1cm4gIldlYkdMIEdMU0wgRVMgMS4wICgiICsgbV9jb250ZXh0
LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTikg
KyAiKSI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9CQUNLX0ZBSUw6CiAg
ICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9CQUNLX0ZVTkM6CkBAIC02MTAsNyArNjE2LDcgQEAg
V2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVt
IHBuYW1lKQogICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQklUUzoKICAgICAgICAgaWYgKCFt
X2ZyYW1lYnVmZmVyQmluZGluZyAmJiAhbV9hdHRyaWJ1dGVzLnN0ZW5jaWwpCi0gICAgICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKGludFplcm8pOworICAgICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlNURU5DSUxfQ0xFQVJfVkFMVUU6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJh
bWV0ZXIocG5hbWUpOwpAQCAtNjMzLDYxICs2MzksNjEgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlNVQlBJWEVMX0JJVFM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJh
bWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfQklORElO
R18yRDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMVGV4dHVy
ZT4obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4dHVyZTJEQmluZGluZykp
OworICAgICAgICByZXR1cm4gbV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4
dHVyZTJEQmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJ
TkdfQ1VCRV9NQVA6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJH
TFRleHR1cmU+KG1fdGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmVDdWJl
TWFwQmluZGluZykpOworICAgICAgICByZXR1cm4gbV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0
dXJlVW5pdF0udGV4dHVyZUN1YmVNYXBCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlVOUEFDS19BTElHTk1FTlQ6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5h
bWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19GTElQX1lfV0VCR0w6Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV91bnBhY2tGbGlwWSk7CisgICAgICAgIHJldHVy
biBtX3VucGFja0ZsaXBZOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19QUkVN
VUxUSVBMWV9BTFBIQV9XRUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3VucGFj
a1ByZW11bHRpcGx5QWxwaGEpOworICAgICAgICByZXR1cm4gbV91bnBhY2tQcmVtdWx0aXBseUFs
cGhhOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19DT0xPUlNQQUNFX0NPTlZF
UlNJT05fV0VCR0w6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV91bnBhY2tDb2xvcnNw
YWNlQ29udmVyc2lvbik7CisgICAgICAgIHJldHVybiBtX3VucGFja0NvbG9yc3BhY2VDb252ZXJz
aW9uOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFTkRPUjoKLSAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbyhTdHJpbmcoIldlYktpdCIpKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZyB7
IEFTQ0lJTGl0ZXJhbCB7ICJXZWJLaXQiIH0gfTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpWRVJTSU9OOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCJXZWJHTCAxLjAgKCIgKyBt
X2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTikgKyAiKSIpOwor
ICAgICAgICByZXR1cm4gIldlYkdMIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBo
aWNzQ29udGV4dDNEOjpWRVJTSU9OKSArICIpIjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpWSUVXUE9SVDoKICAgICAgICAgcmV0dXJuIGdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIocG5h
bWUpOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpGUkFHTUVOVF9TSEFERVJfREVSSVZBVElWRV9I
SU5UX09FUzogLy8gT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzCiAgICAgICAgIGlmIChtX29lc1N0
YW5kYXJkRGVyaXZhdGl2ZXMpCiAgICAgICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJh
bWV0ZXIoRXh0ZW5zaW9uczNEOjpGUkFHTUVOVF9TSEFERVJfREVSSVZBVElWRV9ISU5UX09FUyk7
CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VO
VU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgT0VTX3N0YW5kYXJk
X2Rlcml2YXRpdmVzIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBXZWJHTERlYnVnUmVuZGVyZXJJ
bmZvOjpVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTDoKICAgICAgICAgaWYgKG1fd2ViZ2xEZWJ1Z1Jl
bmRlcmVySW5mbykKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9jb250ZXh0LT5n
ZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkVSKSk7CisgICAgICAgICAgICByZXR1
cm4gbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkVSKTsKICAg
ICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwg
ImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBXRUJHTF9kZWJ1Z19yZW5k
ZXJlcl9pbmZvIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBXZWJHTERlYnVnUmVuZGVyZXJJbmZv
OjpVTk1BU0tFRF9WRU5ET1JfV0VCR0w6CiAgICAgICAgIGlmIChtX3dlYmdsRGVidWdSZW5kZXJl
ckluZm8pCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0U3Ry
aW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1IpKTsKKyAgICAgICAgICAgIHJldHVybiBtX2Nv
bnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVORE9SKTsKICAgICAgICAgc3lu
dGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFt
ZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZv
IG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlZFUlRFWF9BUlJBWV9CSU5E
SU5HX09FUzogLy8gT0VTX3ZlcnRleF9hcnJheV9vYmplY3QKICAgICAgICAgaWYgKG1fb2VzVmVy
dGV4QXJyYXlPYmplY3QpIHsKLSAgICAgICAgICAgIGlmICghbV9ib3VuZFZlcnRleEFycmF5T2Jq
ZWN0LT5pc0RlZmF1bHRPYmplY3QoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4oc3RhdGljX2Nhc3Q8V2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdE9FUyo+KG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKSkp
KTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgICAgIGlmICht
X2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIoc3RhdGlj
X2Nhc3Q8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyY+KCptX2JvdW5kVmVydGV4QXJyYXlPYmpl
Y3QpKTsKICAgICAgICAgfQogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5h
bWUsIE9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBFeHRl
bnNpb25zM0Q6Ok1BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVDogLy8gRVhUX3RleHR1cmVf
ZmlsdGVyX2FuaXNvdHJvcGljCiAgICAgICAgIGlmIChtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ry
b3BpYykKICAgICAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihFeHRlbnNp
b25zM0Q6Ok1BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCk7CiAgICAgICAgIHN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIi
LCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGlj
IG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6Ok1BWF9DT0xPUl9BVFRBQ0hN
RU5UU19FWFQ6IC8vIEVYVF9kcmF3X2J1ZmZlcnMgQkVHSU4KICAgICAgICAgaWYgKG1fd2ViZ2xE
cmF3QnVmZmVycykKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oZ2V0TWF4Q29sb3JB
dHRhY2htZW50cygpKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRNYXhDb2xvckF0dGFjaG1lbnRz
KCk7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElE
X0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgV0VCR0xfZHJh
d19idWZmZXJzIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6Ok1BWF9EUkFX
X0JVRkZFUlNfRVhUOgogICAgICAgICBpZiAobV93ZWJnbERyYXdCdWZmZXJzKQotICAgICAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhnZXRNYXhEcmF3QnVmZmVycygpKTsKKyAgICAgICAgICAg
IHJldHVybiBnZXRNYXhEcmF3QnVmZmVycygpOwogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQg
cGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RyYXdfYnVmZmVycyBub3QgZW5hYmxlZCIpOwotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIGlmIChtX3dlYmdsRHJhd0J1ZmZlcnMKICAgICAgICAgICAgICYmIHBu
YW1lID49IEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIwX0VYVApAQCAtNjk3LDEwICs3MDMsMTAg
QEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0Rl
bnVtIHBuYW1lKQogICAgICAgICAgICAgICAgIHZhbHVlID0gbV9mcmFtZWJ1ZmZlckJpbmRpbmct
PmdldERyYXdCdWZmZXIocG5hbWUpOwogICAgICAgICAgICAgZWxzZSAvLyBlbXVsYXRlZCBiYWNr
YnVmZmVyCiAgICAgICAgICAgICAgICAgdmFsdWUgPSBtX2JhY2tEcmF3QnVmZmVyOwotICAgICAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdmFs
dWU7CiAgICAgICAgIH0KICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1l
Iik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDE4NzRmZTVhNWMzODMxMTk4ZjQzYjk0YzIwOTZiOWVl
YmU0M2U0NzAuLjBjNjFkZDY1NDEwNzE0MWZlY2ZlN2M0Yjc5MGU0YTE5ZjNlYmMwMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMyLDE2ICszMiwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQgZmluYWwgOiBwdWJsaWMgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSB7CiBwdWJs
aWM6CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiwgR3JhcGhp
Y3NDb250ZXh0M0RBdHRyaWJ1dGVzKTsKLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENh
bnZhc0VsZW1lbnQmLCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiwgR3JhcGhpY3NDb250
ZXh0M0RBdHRyaWJ1dGVzKTsKKyAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0Vs
ZW1lbnQmLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIEdyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcyk7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBpc1dlYkdMMSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0KIAogICAgIFdlYkdMRXh0ZW5zaW9uKiBnZXRFeHRlbnNpb24oY29uc3QgU3Ry
aW5nJikgZmluYWw7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFt
ZSkgZmluYWw7CisgICAgV2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSBmaW5h
bDsKICAgICBWZWN0b3I8U3RyaW5nPiBnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkgZmluYWw7CiAK
LSAgICBXZWJHTEdldEluZm8gZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpIGZpbmFsOwor
ICAgIFdlYkdMQW55IGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKICAgICB2
b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRlcm5h
bGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSBmaW5hbDsKICAgICBi
b29sIHZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdGlv
bk5hbWUsIEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCkgZmluYWw7CiAgICAg
dm9pZCBoaW50KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gbW9kZSkgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuY3BwCmluZGV4IDY0OTgzNGY4NWI5YzFjZDEyMGExNmYyYzlhNTliZGY1MjQ5Yzg4ZmUuLjk4
NDViM2VmNTgzZjk5OTgxNmNhZTdmMDRmZTRmNjc2ZTlhZTI1ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjQsOSArMjQsOSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCi0jaW5j
bHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgogCiAjaW5jbHVkZSAiQU5HTEVJbnN0
YW5jZWRBcnJheXMuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgpAQCAtNDIzLDE3ICs0MjMs
MTUgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+IFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZShIVE0KICAgICAgICAgcmV0dXJuIHJlbmRlcmluZ0Nv
bnRleHQ7CiAgICAgfQogCi0gICAgSG9zdFdpbmRvdyogaG9zdFdpbmRvdyA9IGRvY3VtZW50LnZp
ZXcoKS0+cm9vdCgpLT5ob3N0V2luZG93KCk7Ci0gICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNE
PiBjb250ZXh0KEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoYXR0cmlidXRlcywgaG9zdFdpbmRv
dykpOwotCisgICAgYXV0byBjb250ZXh0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShhdHRy
aWJ1dGVzLCBkb2N1bWVudC52aWV3KCktPnJvb3QoKS0+aG9zdFdpbmRvdygpKTsKICAgICBpZiAo
IWNvbnRleHQgfHwgIWNvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpKSB7CiAgICAgICAgIGNh
bnZhcy5kaXNwYXRjaEV2ZW50KFdlYkdMQ29udGV4dEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LndlYmdsY29udGV4dGNyZWF0aW9uZXJyb3JFdmVudCwgZmFsc2UsIHRydWUsICJDb3VsZCBub3Qg
Y3JlYXRlIGEgV2ViR0wgY29udGV4dC4iKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KIAotICAgIEV4dGVuc2lvbnMzRCYgZXh0ZW5zaW9ucyA9IGNvbnRleHQtPmdldEV4dGVuc2lv
bnMoKTsKLSAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfRVhUX2RlYnVnX21hcmtlciIp
KQotICAgICAgICBleHRlbnNpb25zLnB1c2hHcm91cE1hcmtlckVYVCgiV2ViR0xSZW5kZXJpbmdD
b250ZXh0Iik7CisgICAgYXV0byYgZXh0ZW5zaW9ucyA9IGNvbnRleHQtPmdldEV4dGVuc2lvbnMo
KTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX2Rl
YnVnX21hcmtlciIgfSkpCisgICAgICAgIGV4dGVuc2lvbnMucHVzaEdyb3VwTWFya2VyRVhUKEFT
Q0lJTGl0ZXJhbCB7ICJXZWJHTFJlbmRlcmluZ0NvbnRleHQiIH0pOwogCiAjaWYgRU5BQkxFKFdF
QkdMMikgJiYgUExBVEZPUk0oTUFDKQogICAgIC8vIGdsVGV4U3RvcmFnZSgpIHdhcyBvbmx5IGFk
ZGVkIHRvIENvcmUgaW4gT3BlbkdMIDQuMi4KQEAgLTQ0MiwxMyArNDQwLDEzIEBAIHN0ZDo6dW5p
cXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpjcmVhdGUoSFRNCiAgICAgICAgIHJldHVybiBudWxscHRyOwogI2VuZGlmCiAKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4gcmVuZGVyaW5nQ29udGV4
dCA9IG51bGxwdHI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U+IHJlbmRlcmluZ0NvbnRleHQ7CiAjaWYgRU5BQkxFKFdFQkdMMikKICAgICBpZiAodHlwZSA9
PSAid2ViZ2wyIikKLSAgICAgICAgcmVuZGVyaW5nQ29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8
V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oY2FudmFzLCBXVEZNb3ZlKGNvbnRleHQpLCBhdHRyaWJ1
dGVzKTsKKyAgICAgICAgcmVuZGVyaW5nQ29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0wy
UmVuZGVyaW5nQ29udGV4dD4oY2FudmFzLCBjb250ZXh0LnJlbGVhc2VOb25OdWxsKCksIGF0dHJp
YnV0ZXMpOwogICAgIGVsc2UKICNlbmRpZgotICAgICAgICByZW5kZXJpbmdDb250ZXh0ID0gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KGNhbnZhcywgV1RGTW92ZShjb250
ZXh0KSwgYXR0cmlidXRlcyk7CisgICAgICAgIHJlbmRlcmluZ0NvbnRleHQgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oY2FudmFzLCBjb250ZXh0LnJlbGVhc2VOb25O
dWxsKCksIGF0dHJpYnV0ZXMpOwogICAgIHJlbmRlcmluZ0NvbnRleHQtPnN1c3BlbmRJZk5lZWRl
ZCgpOwogCiAgICAgcmV0dXJuIHJlbmRlcmluZ0NvbnRleHQ7CkBAIC00NTcsNDQgKzQ1NSwyOSBA
QCBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Y3JlYXRlKEhUTQogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLCBX
ZWJHTENvbnRleHRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgOiBDYW52YXNSZW5kZXJpbmdD
b250ZXh0KHBhc3NlZENhbnZhcykKICAgICAsIEFjdGl2ZURPTU9iamVjdCgmcGFzc2VkQ2FudmFz
LmRvY3VtZW50KCkpCi0gICAgLCBtX2NvbnRleHQobnVsbHB0cikKICAgICAsIG1fZGlzcGF0Y2hD
b250ZXh0TG9zdEV2ZW50VGltZXIoKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpk
aXNwYXRjaENvbnRleHRMb3N0RXZlbnQpCi0gICAgLCBtX3Jlc3RvcmVBbGxvd2VkKGZhbHNlKQog
ICAgICwgbV9yZXN0b3JlVGltZXIoKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpt
YXliZVJlc3RvcmVDb250ZXh0KQotICAgICwgbV9nZW5lcmF0ZWRJbWFnZUNhY2hlKDApCi0gICAg
LCBtX2NvbnRleHRMb3N0KGZhbHNlKQotICAgICwgbV9jb250ZXh0TG9zdE1vZGUoU3ludGhldGlj
TG9zdENvbnRleHQpCiAgICAgLCBtX2F0dHJpYnV0ZXMoYXR0cmlidXRlcykKLSAgICAsIG1fc3lu
dGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUodHJ1ZSkKICAgICAsIG1fbnVtR0xFcnJvcnNUb0NvbnNv
bGVBbGxvd2VkKG1heEdMRXJyb3JzQWxsb3dlZFRvQ29uc29sZSkKICAgICAsIG1faXNQZW5kaW5n
UG9saWN5UmVzb2x1dGlvbih0cnVlKQotICAgICwgbV9oYXNSZXF1ZXN0ZWRQb2xpY3lSZXNvbHV0
aW9uKGZhbHNlKQogewogfQogCi1XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlKEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFJlZlB0cjxH
cmFwaGljc0NvbnRleHQzRD4mJiBjb250ZXh0LCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzIGF0dHJp
YnV0ZXMpCitXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlKEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFJlZjxHcmFwaGljc0NvbnRleHQz
RD4mJiBjb250ZXh0LCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgOiBD
YW52YXNSZW5kZXJpbmdDb250ZXh0KHBhc3NlZENhbnZhcykKICAgICAsIEFjdGl2ZURPTU9iamVj
dCgmcGFzc2VkQ2FudmFzLmRvY3VtZW50KCkpCiAgICAgLCBtX2NvbnRleHQoV1RGTW92ZShjb250
ZXh0KSkKICAgICAsIG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50VGltZXIoKnRoaXMsICZXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRMb3N0RXZlbnQpCi0gICAgLCBt
X3Jlc3RvcmVBbGxvd2VkKGZhbHNlKQogICAgICwgbV9yZXN0b3JlVGltZXIoKnRoaXMsICZXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0KQogICAgICwgbV9nZW5l
cmF0ZWRJbWFnZUNhY2hlKDQpCi0gICAgLCBtX2NvbnRleHRMb3N0KGZhbHNlKQotICAgICwgbV9j
b250ZXh0TG9zdE1vZGUoU3ludGhldGljTG9zdENvbnRleHQpCiAgICAgLCBtX2F0dHJpYnV0ZXMo
YXR0cmlidXRlcykKLSAgICAsIG1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUodHJ1ZSkKICAg
ICAsIG1fbnVtR0xFcnJvcnNUb0NvbnNvbGVBbGxvd2VkKG1heEdMRXJyb3JzQWxsb3dlZFRvQ29u
c29sZSkKLSAgICAsIG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbihmYWxzZSkKLSAgICAsIG1f
aGFzUmVxdWVzdGVkUG9saWN5UmVzb2x1dGlvbihmYWxzZSkKIHsKLSAgICBBU1NFUlQobV9jb250
ZXh0KTsKICAgICBtX2NvbnRleHRHcm91cCA9IFdlYkdMQ29udGV4dEdyb3VwOjpjcmVhdGUoKTsK
LSAgICBtX2NvbnRleHRHcm91cC0+YWRkQ29udGV4dCh0aGlzKTsKKyAgICBtX2NvbnRleHRHcm91
cC0+YWRkQ29udGV4dCgqdGhpcyk7CiAgICAgCiAgICAgbV9jb250ZXh0LT5zZXRXZWJHTENvbnRl
eHQodGhpcyk7CiAKLSAgICBtX21heFZpZXdwb3J0RGltc1swXSA9IG1fbWF4Vmlld3BvcnREaW1z
WzFdID0gMDsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBoaWNzQ29udGV4dDNEOjpN
QVhfVklFV1BPUlRfRElNUywgbV9tYXhWaWV3cG9ydERpbXMpOwogCiAgICAgc2V0dXBGbGFncygp
OwpAQCAtNjIyLDcgKzYwNSw3IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6On5XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlKCkKICAgICBpZiAoIW1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlv
bikgewogICAgICAgICBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCk7CiAgICAgICAgIGRlc3Ry
b3lHcmFwaGljc0NvbnRleHQzRCgpOwotICAgICAgICBtX2NvbnRleHRHcm91cC0+cmVtb3ZlQ29u
dGV4dCh0aGlzKTsKKyAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZUNvbnRleHQoKnRoaXMp
OwogICAgIH0KIH0KIApAQCAtOTE2LDcgKzg5OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6YmluZEJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFdlYkdMQnVmZmVyKiBidWZmZXIp
CiAgICAgaWYgKCFjaGVja09iamVjdFRvQmVCb3VuZCgiYmluZEJ1ZmZlciIsIGJ1ZmZlciwgZGVs
ZXRlZCkpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoZGVsZXRlZCkKLSAgICAgICAgYnVmZmVy
ID0gMDsKKyAgICAgICAgYnVmZmVyID0gbnVsbHB0cjsKICAgICBpZiAoYnVmZmVyICYmIGJ1ZmZl
ci0+Z2V0VGFyZ2V0KCkgJiYgYnVmZmVyLT5nZXRUYXJnZXQoKSAhPSB0YXJnZXQpIHsKICAgICAg
ICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9O
LCAiYmluZEJ1ZmZlciIsICJidWZmZXJzIGNhbiBub3QgYmUgdXNlZCB3aXRoIG11bHRpcGxlIHRh
cmdldHMiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTM5OCw3ICsxMzgxLDcgQEAgUmVmUHRyPFdl
YkdMQnVmZmVyPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVCdWZmZXIoKQogICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIGF1dG8gYnVmZmVyID0gV2ViR0xCdWZmZXI6OmNyZWF0ZSgqdGhpcyk7Ci0gICAgYWRkU2hh
cmVkT2JqZWN0KGJ1ZmZlci5wdHIoKSk7CisgICAgYWRkU2hhcmVkT2JqZWN0KGJ1ZmZlci5nZXQo
KSk7CiAgICAgcmV0dXJuIFdURk1vdmUoYnVmZmVyKTsKIH0KIApAQCAtMTQwNyw3ICsxMzkwLDcg
QEAgUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNy
ZWF0ZUZyYW1lYnVmZmVyKCkKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIGJ1ZmZlciA9IFdlYkdMRnJhbWVidWZmZXI6
OmNyZWF0ZSgqdGhpcyk7Ci0gICAgYWRkQ29udGV4dE9iamVjdChidWZmZXIucHRyKCkpOworICAg
IGFkZENvbnRleHRPYmplY3QoYnVmZmVyLmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92ZShidWZm
ZXIpOwogfQogCkBAIC0xNDE2LDcgKzEzOTksNyBAQCBSZWZQdHI8V2ViR0xUZXh0dXJlPiBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVUZXh0dXJlKCkKICAgICBpZiAoaXNDb250ZXh0
TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIHRleHR1
cmUgPSBXZWJHTFRleHR1cmU6OmNyZWF0ZSgqdGhpcyk7Ci0gICAgYWRkU2hhcmVkT2JqZWN0KHRl
eHR1cmUucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdCh0ZXh0dXJlLmdldCgpKTsKICAgICBy
ZXR1cm4gV1RGTW92ZSh0ZXh0dXJlKTsKIH0KIApAQCAtMTQyNSw3ICsxNDA4LDcgQEAgUmVmUHRy
PFdlYkdMUHJvZ3JhbT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlUHJvZ3JhbSgp
CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgYXV0byBwcm9ncmFtID0gV2ViR0xQcm9ncmFtOjpjcmVhdGUoKnRoaXMpOwotICAg
IGFkZFNoYXJlZE9iamVjdChwcm9ncmFtLnB0cigpKTsKKyAgICBhZGRTaGFyZWRPYmplY3QocHJv
Z3JhbS5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUocHJvZ3JhbSk7CiB9CiAKQEAgLTE0MzQs
NyArMTQxNyw3IEBAIFJlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4gV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Y3JlYXRlUmVuZGVyYnVmZmVyKCkKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVu
ZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIGJ1ZmZlciA9IFdlYkdM
UmVuZGVyYnVmZmVyOjpjcmVhdGUoKnRoaXMpOwotICAgIGFkZFNoYXJlZE9iamVjdChidWZmZXIu
cHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdChidWZmZXIuZ2V0KCkpOwogICAgIHJldHVybiBX
VEZNb3ZlKGJ1ZmZlcik7CiB9CiAKQEAgLTE0NDgsNyArMTQzMSw3IEBAIFJlZlB0cjxXZWJHTFNo
YWRlcj4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlU2hhZGVyKEdDM0RlbnVtIHR5
cGUpCiAgICAgfQogCiAgICAgYXV0byBzaGFkZXIgPSBXZWJHTFNoYWRlcjo6Y3JlYXRlKCp0aGlz
LCB0eXBlKTsKLSAgICBhZGRTaGFyZWRPYmplY3Qoc2hhZGVyLnB0cigpKTsKKyAgICBhZGRTaGFy
ZWRPYmplY3Qoc2hhZGVyLmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92ZShzaGFkZXIpOwogfQog
CkBAIC0xNDgxLDcgKzE0NjQsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRl
bGV0ZUJ1ZmZlcihXZWJHTEJ1ZmZlciogYnVmZmVyKQogICAgIGlmIChtX2JvdW5kQXJyYXlCdWZm
ZXIgPT0gYnVmZmVyKQogICAgICAgICBtX2JvdW5kQXJyYXlCdWZmZXIgPSBudWxscHRyOwogCi0g
ICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT51bmJpbmRCdWZmZXIoYnVmZmVyKTsKKyAgICBt
X2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPnVuYmluZEJ1ZmZlcigqYnVmZmVyKTsKIH0KIAogdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVGcmFtZWJ1ZmZlcihXZWJHTEZyYW1l
YnVmZmVyKiBmcmFtZWJ1ZmZlcikKQEAgLTIxODcsMTAgKzIxNzAsMTAgQEAgR0MzRGludCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBdHRyaWJMb2NhdGlvbihXZWJHTFByb2dyYW0qIHBy
b2dyYW0sIGNvbnMKICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRBdHRyaWJMb2NhdGlvbihvYmpl
Y3RPclplcm8ocHJvZ3JhbSksIG5hbWUpOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVu
dW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCdWZmZXJQ
YXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXND
b250ZXh0TG9zdE9yUGVuZGluZygpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgYm9vbCB2YWxpZCA9IGZhbHNlOwogICAgIGlm
ICh0YXJnZXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZFUiB8fCB0YXJnZXQgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVSKQpAQCAtMjIxMCwxOSArMjE5
MywxOSBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVy
UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRAogI2VuZGlmCiAgICAgaWYgKCF2YWxpZCkg
ewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCAiZ2V0QnVmZmVyUGFyYW1ldGVyIiwgImludmFsaWQgdGFyZ2V0Iik7Ci0gICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAg
ICAgaWYgKHBuYW1lICE9IEdyYXBoaWNzQ29udGV4dDNEOjpCVUZGRVJfU0laRSAmJiBwbmFtZSAh
PSBHcmFwaGljc0NvbnRleHQzRDo6QlVGRkVSX1VTQUdFKSB7CiAgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRCdWZmZXJQYXJhbWV0
ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIEdDM0RpbnQgdmFs
dWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0QnVmZmVyUGFyYW1ldGVyaXYodGFyZ2V0LCBwbmFt
ZSwgJnZhbHVlKTsKICAgICBpZiAocG5hbWUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkJVRkZFUl9T
SVpFKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKLSAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odmFsdWUpKTsKKyAgICAgICAgcmV0
dXJuIHZhbHVlOworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmFsdWUpOwogfQog
CiBzdGQ6Om9wdGlvbmFsPFdlYkdMQ29udGV4dEF0dHJpYnV0ZXM+IFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmdldENvbnRleHRBdHRyaWJ1dGVzKCkKQEAgLTIyNDksMzAgKzIyMzIsMzAgQEAg
R0MzRGVudW0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0RXJyb3IoKQogICAgIHJldHVy
biBtX2NvbnRleHQtPmdldEVycm9yKCk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRQcm9ncmFtUGFyYW1ldGVyKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwg
R0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRQ
cm9ncmFtUGFyYW1ldGVyKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgR0MzRGVudW0gcG5hbWUpCiB7
CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVj
dCgiZ2V0UHJvZ3JhbVBhcmFtZXRlciIsIHByb2dyYW0pKQotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgR0MzRGludCB2YWx1ZSA9
IDA7CiAgICAgc3dpdGNoIChwbmFtZSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRF
TEVURV9TVEFUVVM6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8ocHJvZ3JhbS0+aXNEZWxl
dGVkKCkpOworICAgICAgICByZXR1cm4gcHJvZ3JhbS0+aXNEZWxldGVkKCk7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6VkFMSURBVEVfU1RBVFVTOgogICAgICAgICBtX2NvbnRleHQtPmdl
dFByb2dyYW1pdihvYmplY3RPclplcm8ocHJvZ3JhbSksIHBuYW1lLCAmdmFsdWUpOwotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PGJvb2w+KHZhbHVlKSk7CisgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxib29sPih2YWx1ZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6TElOS19TVEFUVVM6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8ocHJvZ3JhbS0+
Z2V0TGlua1N0YXR1cygpKTsKKyAgICAgICAgcmV0dXJuIHByb2dyYW0tPmdldExpbmtTdGF0dXMo
KTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBVFRBQ0hFRF9TSEFERVJTOgogICAgICAg
ICBtX2NvbnRleHQtPmdldFByb2dyYW1pdihvYmplY3RPclplcm8ocHJvZ3JhbSksIHBuYW1lLCAm
dmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICAgICAgcmV0
dXJuIHZhbHVlOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFDVElWRV9BVFRSSUJVVEVT
OgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFDVElWRV9VTklGT1JNUzoKICAgICAgICAg
bV9jb250ZXh0LT5nZXROb25CdWlsdEluQWN0aXZlU3ltYm9sQ291bnQob2JqZWN0T3JaZXJvKHBy
b2dyYW0pLCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1
ZSk7CisgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UHJvZ3JhbVBh
cmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogfQogCkBAIC0yMjgz
LDE3ICsyMjY2LDE3IEBAIFN0cmluZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRQcm9n
cmFtSW5mb0xvZyhXZWJHTFByb2dyYW0qIHByb2dyYW0pCiAgICAgcmV0dXJuIGVuc3VyZU5vdE51
bGwobV9jb250ZXh0LT5nZXRQcm9ncmFtSW5mb0xvZyhvYmplY3RPclplcm8ocHJvZ3JhbSkpKTsK
IH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBl
bmRpbmcoKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICBpZiAodGFyZ2V0ICE9IEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZG
RVIpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgImdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlciIsICJpbnZhbGlkIHRhcmdldCIpOwot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KICAgICBpZiAoIW1fcmVuZGVyYnVmZmVyQmluZGluZyB8fCAhbV9yZW5kZXJidWZmZXJC
aW5kaW5nLT5vYmplY3QoKSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIiLCAi
bm8gcmVuZGVyYnVmZmVyIGJvdW5kIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgaWYgKG1fcmVuZGVyYnVmZmVy
QmluZGluZy0+Z2V0SW50ZXJuYWxGb3JtYXQoKSA9PSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhf
U1RFTkNJTApAQCAtMjMyMCwxMiArMjMwMywxMiBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldAog
ICAgICAgICAgICAgdmFsdWUgPSA4OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQ6Ci0gICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fcmVuZGVyYnVmZmVyQmluZGluZy0+Z2V0SW50ZXJu
YWxGb3JtYXQoKSk7CisgICAgICAgICAgICByZXR1cm4gbV9yZW5kZXJidWZmZXJCaW5kaW5nLT5n
ZXRJbnRlcm5hbEZvcm1hdCgpOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgc3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAg
ICAgfQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICAgICAgcmV0dXJu
IHZhbHVlOwogICAgIH0KIAogICAgIEdDM0RpbnQgdmFsdWUgPSAwOwpAQCAtMjMzOSwzMiArMjMy
MiwzMiBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVy
YnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldAogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkU6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0UmVuZGVy
YnVmZmVyUGFyYW1ldGVyaXYodGFyZ2V0LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUOgotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKG1fcmVuZGVyYnVmZmVyQmluZGluZy0+Z2V0SW50ZXJuYWxGb3Jt
YXQoKSk7CisgICAgICAgIHJldHVybiBtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdldEludGVybmFs
Rm9ybWF0KCk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhp
Y3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlciIsICJp
bnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogfQogCi1XZWJHTEdldEluZm8gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0U2hhZGVyUGFyYW1ldGVyKFdlYkdMU2hhZGVyKiBzaGFk
ZXIsIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0U2hhZGVyUGFyYW1ldGVyKFdlYkdMU2hhZGVyKiBzaGFkZXIsIEdDM0RlbnVtIHBuYW1lKQog
ewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmpl
Y3QoImdldFNoYWRlclBhcmFtZXRlciIsIHNoYWRlcikpCi0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgR0MzRGludCB2YWx1ZSA9IDA7
CiAgICAgc3dpdGNoIChwbmFtZSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFTEVU
RV9TVEFUVVM6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc2hhZGVyLT5pc0RlbGV0ZWQo
KSk7CisgICAgICAgIHJldHVybiBzaGFkZXItPmlzRGVsZXRlZCgpOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkNPTVBJTEVfU1RBVFVTOgogICAgICAgICBtX2NvbnRleHQtPmdldFNoYWRl
cml2KG9iamVjdE9yWmVybyhzaGFkZXIpLCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxib29sPih2YWx1ZSkpOworICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNI
QURFUl9UWVBFOgogICAgICAgICBtX2NvbnRleHQtPmdldFNoYWRlcml2KG9iamVjdE9yWmVybyhz
aGFkZXIpLCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0
aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4odmFsdWUpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVy
cm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRTaGFkZXJQYXJhbWV0ZXIi
LCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMjQxMywxMyArMjM5
NiwxMyBAQCBTdHJpbmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0U2hhZGVyU291cmNl
KFdlYkdMU2hhZGVyKiBzaGFkZXIpCiAgICAgcmV0dXJuIGVuc3VyZU5vdE51bGwoc2hhZGVyLT5n
ZXRTb3VyY2UoKSk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpnZXRUZXhQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSkKK1dlYkdM
QW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFRleFBhcmFtZXRlcihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5n
KCkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgV2ViR0xUZXh0dXJlKiB0ZXggPSB2YWxpZGF0ZVRleHR1cmVCaW5kaW5nKCJnZXRU
ZXhQYXJhbWV0ZXIiLCB0YXJnZXQsIGZhbHNlKTsKICAgICBpZiAoIXRleCkKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBHQzNEaW50
IHZhbHVlID0gMDsKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV9NQUdfRklMVEVSOgpAQCAtMjQyNywyNyArMjQxMCwyNyBAQCBXZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFyYW1ldGVyKEdDM0RlbnVt
IHRhcmdldCwgR0MzRGVudQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JB
UF9TOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfV1JBUF9UOgogICAgICAg
ICBtX2NvbnRleHQtPmdldFRleFBhcmFtZXRlcml2KHRhcmdldCwgcG5hbWUsICZ2YWx1ZSk7Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2YWx1
ZSkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVlKTsKICAgICBj
YXNlIEV4dGVuc2lvbnMzRDo6VEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQ6IC8vIEVYVF90ZXh0
dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYwogICAgICAgICBpZiAobV9leHRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWMpIHsKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0VGV4UGFyYW1ldGVyaXYodGFy
Z2V0LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3Rh
dGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2YWx1ZSkpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPih2YWx1ZSk7CiAgICAgICAgIH0KICAgICAgICAgc3ludGhlc2l6ZUdM
RXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFRleFBhcmFtZXRlciIs
ICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMg
bm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0VGV4UGFyYW1ldGVyIiwgImludmFs
aWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29uc3Qg
V2ViR0xVbmlmb3JtTG9jYXRpb24qIHVuaWZvcm1Mb2NhdGlvbikKK1dlYkdMQW55IFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25z
dCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogdW5pZm9ybUxvY2F0aW9uKQogewogICAgIGlmIChpc0Nv
bnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImdldFVuaWZvcm0i
LCBwcm9ncmFtKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICBpZiAoIXVuaWZvcm1Mb2NhdGlvbiB8fCB1bmlmb3JtTG9jYXRpb24t
PnByb2dyYW0oKSAhPSBwcm9ncmFtKSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgImdldFVuaWZvcm0iLCAibm8gdW5pZm9y
bWxvY2F0aW9uIG9yIG5vdCB2YWxpZCBmb3IgdGhpcyBwcm9ncmFtIik7Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIEdD
M0RpbnQgbG9jYXRpb24gPSB1bmlmb3JtTG9jYXRpb24tPmxvY2F0aW9uKCk7CiAKQEAgLTI1MjIs
NyArMjUwNSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRV
bmlmb3JtKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QKICAgICBkZWZhdWx0OgogICAgICAg
ICAvLyBDYW4ndCBoYW5kbGUgdGhpcyB0eXBlCiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFLCAiZ2V0VW5pZm9ybSIsICJ1bmhhbmRsZWQg
dHlwZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KICAgICBzd2l0Y2ggKGJhc2VUeXBlKSB7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6RkxPQVQ6IHsKQEAgLTI1MzIsOCArMjUxNSw4IEBAIFdlYkdMR2V0SW5mbyBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSogcHJvZ3Jh
bSwgY29uc3QKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRVbmlmb3Jt
ZnYob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBsb2NhdGlvbiwgdmFsdWUpOwogICAgICAgICBpZiAo
bGVuZ3RoID09IDEpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlWzBdKTsK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4oRmxv
YXQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAgICAgICAgIHJldHVybiB2
YWx1ZVswXTsKKyAgICAgICAgcmV0dXJuIEZsb2F0MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5n
dGgpOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpJTlQ6IHsKICAgICAgICAg
R0MzRGludCB2YWx1ZVs0XSA9IHswfTsKQEAgLTI1NDIsOCArMjUyNSw4IEBAIFdlYkdMR2V0SW5m
byBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSogcHJv
Z3JhbSwgY29uc3QKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRVbmlm
b3JtaXYob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBsb2NhdGlvbiwgdmFsdWUpOwogICAgICAgICBp
ZiAobGVuZ3RoID09IDEpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlWzBd
KTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEludDMyQXJyYXk+KElu
dDMyQXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgcmV0dXJuIHZh
bHVlWzBdOworICAgICAgICByZXR1cm4gSW50MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgp
OwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCT09MOiB7CiAgICAgICAgIEdD
M0RpbnQgdmFsdWVbNF0gPSB7MH07CkBAIC0yNTUyLDEyICsyNTM1LDEyIEBAIFdlYkdMR2V0SW5m
byBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSogcHJv
Z3JhbSwgY29uc3QKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRVbmlm
b3JtaXYob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBsb2NhdGlvbiwgdmFsdWUpOwogICAgICAgICBp
ZiAobGVuZ3RoID4gMSkgewotICAgICAgICAgICAgYm9vbCBib29sVmFsdWVbMTZdID0gezB9Owor
ICAgICAgICAgICAgVmVjdG9yPGJvb2w+IHZlY3RvcihsZW5ndGgpOwogICAgICAgICAgICAgZm9y
ICh1bnNpZ25lZCBqID0gMDsgaiA8IGxlbmd0aDsgaisrKQotICAgICAgICAgICAgICAgIGJvb2xW
YWx1ZVtqXSA9IHN0YXRpY19jYXN0PGJvb2w+KHZhbHVlW2pdKTsKLSAgICAgICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oYm9vbFZhbHVlLCBsZW5ndGgpOworICAgICAgICAgICAgICAgIHZlY3Rv
cltqXSA9IHZhbHVlW2pdOworICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUodmVjdG9yKTsKICAg
ICAgICAgfQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PGJvb2w+KHZh
bHVlWzBdKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29sPih2YWx1ZVswXSk7CiAg
ICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC0yNTY1LDcg
KzI1NDgsNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5p
Zm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0CiAKICAgICAvLyBJZiB3ZSBnZXQgaGVy
ZSwgc29tZXRoaW5nIHdlbnQgd3JvbmcgaW4gb3VyIHVuZm9ydHVuYXRlbHkgY29tcGxleCBsb2dp
YyBhYm92ZQogICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElE
X1ZBTFVFLCAiZ2V0VW5pZm9ybSIsICJ1bmtub3duIGVycm9yIik7Ci0gICAgcmV0dXJuIFdlYkdM
R2V0SW5mbygpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBSZWZQdHI8V2ViR0xVbmlmb3Jt
TG9jYXRpb24+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm1Mb2NhdGlvbihX
ZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0IFN0cmluZyYgbmFtZSkKQEAgLTI2MDYsNDMgKzI1
ODksNDMgQEAgUmVmUHRyPFdlYkdMVW5pZm9ybUxvY2F0aW9uPiBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRVbmlmb3JtTG9jYXRpb24oV2ViR0wKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0dHJp
YihHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRyaWIoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBu
YW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCi0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAoaW5k
ZXggPj0gbV9tYXhWZXJ0ZXhBdHRyaWJzKSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFLCAiZ2V0VmVydGV4QXR0cmliIiwgImluZGV4
IG91dCBvZiByYW5nZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIGNvbnN0IFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3RCYXNlOjpWZXJ0ZXhBdHRyaWJTdGF0ZSYgc3RhdGUgPSBtX2JvdW5kVmVydGV4QXJyYXlPYmpl
Y3QtPmdldFZlcnRleEF0dHJpYlN0YXRlKGluZGV4KTsKIAogICAgIGlmICgoaXNXZWJHTDIoKSB8
fCBtX2FuZ2xlSW5zdGFuY2VkQXJyYXlzKSAmJiBwbmFtZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6
VkVSVEVYX0FUVFJJQl9BUlJBWV9ESVZJU09SX0FOR0xFKQotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKHN0YXRlLmRpdmlzb3IpOworICAgICAgICByZXR1cm4gc3RhdGUuZGl2aXNvcjsKIAog
ICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhf
QVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HOgogICAgICAgICBpZiAoKCFpc0dMRVMyQ29tcGxp
YW50KCkgJiYgIWluZGV4ICYmIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0VmVydGV4QXR0
cmliU3RhdGUoMCkuYnVmZmVyQmluZGluZyA9PSBtX3ZlcnRleEF0dHJpYjBCdWZmZXIpCiAgICAg
ICAgICAgICB8fCAhc3RhdGUuYnVmZmVyQmluZGluZwogICAgICAgICAgICAgfHwgIXN0YXRlLmJ1
ZmZlckJpbmRpbmctPm9iamVjdCgpKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygp
OwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+KHN0
YXRlLmJ1ZmZlckJpbmRpbmcpKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAg
ICByZXR1cm4gc3RhdGUuYnVmZmVyQmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpWRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQ6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oc3RhdGUuZW5hYmxlZCk7CisgICAgICAgIHJldHVybiBzdGF0ZS5lbmFibGVkOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRDoKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS5ub3JtYWxpemVkKTsKKyAgICAgICAgcmV0
dXJuIHN0YXRlLm5vcm1hbGl6ZWQ7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVY
X0FUVFJJQl9BUlJBWV9TSVpFOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRlLnNp
emUpOworICAgICAgICByZXR1cm4gc3RhdGUuc2l6ZTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX1NUUklERToKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhzdGF0ZS5vcmlnaW5hbFN0cmlkZSk7CisgICAgICAgIHJldHVybiBzdGF0ZS5vcmlnaW5h
bFN0cmlkZTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZ
X1RZUEU6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGUudHlwZSk7CisgICAgICAg
IHJldHVybiBzdGF0ZS50eXBlOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNVUlJFTlRf
VkVSVEVYX0FUVFJJQjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEZs
b2F0MzJBcnJheT4oRmxvYXQzMkFycmF5OjpjcmVhdGUobV92ZXJ0ZXhBdHRyaWJWYWx1ZVtpbmRl
eF0udmFsdWUsIDQpKSk7CisgICAgICAgIHJldHVybiBGbG9hdDMyQXJyYXk6OmNyZWF0ZShtX3Zl
cnRleEF0dHJpYlZhbHVlW2luZGV4XS52YWx1ZSwgNCk7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFZl
cnRleEF0dHJpYiIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogfQogCkBAIC0y
NjUwLDggKzI2MzMsNyBAQCBsb25nIGxvbmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
VmVydGV4QXR0cmliT2Zmc2V0KEdDM0R1aW50IGluZGV4LCBHQzNEZQogewogICAgIGlmIChpc0Nv
bnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIEdDM0RzaXplaXB0
ciByZXN1bHQgPSBtX2NvbnRleHQtPmdldFZlcnRleEF0dHJpYk9mZnNldChpbmRleCwgcG5hbWUp
OwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KHJlc3VsdCk7CisgICAgcmV0dXJu
IG1fY29udGV4dC0+Z2V0VmVydGV4QXR0cmliT2Zmc2V0KGluZGV4LCBwbmFtZSk7CiB9CiAKIEdD
M0Rib29sZWFuIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzQnVmZmVyKFdlYkdMQnVmZmVy
KiBidWZmZXIpCkBAIC0zMTEzLDggKzMwOTUsOCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OnJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aAog
I3VuZGVmIFBBQ0tFRF9JTlRFUk5BTF9GT1JNQVRfQ0hFQ0sKIAogICAgIC8vIENhbGN1bGF0ZSBh
cnJheSBzaXplLCB0YWtpbmcgaW50byBjb25zaWRlcmF0aW9uIG9mIFBBQ0tfQUxJR05NRU5ULgot
ICAgIHVuc2lnbmVkIGludCB0b3RhbEJ5dGVzUmVxdWlyZWQgPSAwOwotICAgIHVuc2lnbmVkIGlu
dCBwYWRkaW5nID0gMDsKKyAgICB1bnNpZ25lZCB0b3RhbEJ5dGVzUmVxdWlyZWQgPSAwOworICAg
IHVuc2lnbmVkIHBhZGRpbmcgPSAwOwogICAgIGlmICghbV9pc1JvYnVzdG5lc3NFWFRTdXBwb3J0
ZWQpIHsKICAgICAgICAgR0MzRGVudW0gZXJyb3IgPSBtX2NvbnRleHQtPmNvbXB1dGVJbWFnZVNp
emVJbkJ5dGVzKGZvcm1hdCwgdHlwZSwgd2lkdGgsIGhlaWdodCwgbV9wYWNrQWxpZ25tZW50LCAm
dG90YWxCeXRlc1JlcXVpcmVkLCAmcGFkZGluZyk7CiAgICAgICAgIGlmIChlcnJvciAhPSBHcmFw
aGljc0NvbnRleHQzRDo6Tk9fRVJST1IpIHsKQEAgLTQ1OTAsNyArNDU3Miw3IEBAIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliUG9pbnRlcihHQzNEdWludCBpbmRl
eCwgR0MzRGludCBzaXplCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gRGV0ZXJtaW5l
IHRoZSBudW1iZXIgb2YgZWxlbWVudHMgdGhlIGJvdW5kIGJ1ZmZlciBjYW4gaG9sZCwgZ2l2ZW4g
dGhlIG9mZnNldCwgc2l6ZSwgdHlwZSBhbmQgc3RyaWRlCi0gICAgdW5zaWduZWQgaW50IHR5cGVT
aXplID0gc2l6ZUluQnl0ZXModHlwZSk7CisgICAgYXV0byB0eXBlU2l6ZSA9IHNpemVJbkJ5dGVz
KHR5cGUpOwogICAgIGlmICghdHlwZVNpemUpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgInZlcnRleEF0dHJpYlBvaW50ZXIiLCAi
aW52YWxpZCB0eXBlIik7CiAgICAgICAgIHJldHVybjsKQEAgLTQ2MDEsNyArNDU4Myw3IEBAIHZv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliUG9pbnRlcihHQzNEdWlu
dCBpbmRleCwgR0MzRGludCBzaXplCiAgICAgfQogICAgIEdDM0RzaXplaSBieXRlc1BlckVsZW1l
bnQgPSBzaXplICogdHlwZVNpemU7CiAKLSAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPnNl
dFZlcnRleEF0dHJpYlN0YXRlKGluZGV4LCBieXRlc1BlckVsZW1lbnQsIHNpemUsIHR5cGUsIG5v
cm1hbGl6ZWQsIHN0cmlkZSwgc3RhdGljX2Nhc3Q8R0MzRGludHB0cj4ob2Zmc2V0KSwgbV9ib3Vu
ZEFycmF5QnVmZmVyKTsKKyAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPnNldFZlcnRleEF0
dHJpYlN0YXRlKGluZGV4LCBieXRlc1BlckVsZW1lbnQsIHNpemUsIHR5cGUsIG5vcm1hbGl6ZWQs
IHN0cmlkZSwgc3RhdGljX2Nhc3Q8R0MzRGludHB0cj4ob2Zmc2V0KSwgKm1fYm91bmRBcnJheUJ1
ZmZlcik7CiAgICAgbV9jb250ZXh0LT52ZXJ0ZXhBdHRyaWJQb2ludGVyKGluZGV4LCBzaXplLCB0
eXBlLCBub3JtYWxpemVkLCBzdHJpZGUsIHN0YXRpY19jYXN0PEdDM0RpbnRwdHI+KG9mZnNldCkp
OwogfQogCkBAIC00NjkyLDcgKzQ2NzQsNyBAQCBQbGF0Zm9ybUxheWVyKiBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKICAgICByZXR1cm4gKCFpc0NvbnRl
eHRMb3N0KCkgJiYgIW1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikgPyBtX2NvbnRleHQtPnBs
YXRmb3JtTGF5ZXIoKSA6IDA7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
cmVtb3ZlU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlbW92ZVNoYXJlZE9iamVjdChXZWJHTFNoYXJlZE9iamVj
dCYgb2JqZWN0KQogewogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pCiAgICAg
ICAgIHJldHVybjsKQEAgLTQ3MDAsNyArNDY4Miw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6cmVtb3ZlU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QpCiAg
ICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZU9iamVjdChvYmplY3QpOwogfQogCi12b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZFNoYXJlZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCog
b2JqZWN0KQordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphZGRTaGFyZWRPYmplY3Qo
V2ViR0xTaGFyZWRPYmplY3QmIG9iamVjdCkKIHsKICAgICBpZiAobV9pc1BlbmRpbmdQb2xpY3lS
ZXNvbHV0aW9uKQogICAgICAgICByZXR1cm47CkBAIC00NzA5LDIxICs0NjkxLDIxIEBAIHZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2Jq
ZWN0KiBvYmplY3QpCiAgICAgbV9jb250ZXh0R3JvdXAtPmFkZE9iamVjdChvYmplY3QpOwogfQog
Ci12b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlbW92ZUNvbnRleHRPYmplY3QoV2Vi
R0xDb250ZXh0T2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OnJlbW92ZUNvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0JiBvYmplY3QpCiB7CiAgICAg
aWYgKG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAg
bV9jb250ZXh0T2JqZWN0cy5yZW1vdmUob2JqZWN0KTsKKyAgICBtX2NvbnRleHRPYmplY3RzLnJl
bW92ZSgmb2JqZWN0KTsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphZGRD
b250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCogb2JqZWN0KQordm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjphZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCYgb2Jq
ZWN0KQogewogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pCiAgICAgICAgIHJl
dHVybjsKIAogICAgIEFTU0VSVCghaXNDb250ZXh0TG9zdCgpKTsKLSAgICBtX2NvbnRleHRPYmpl
Y3RzLmFkZChvYmplY3QpOworICAgIG1fY29udGV4dE9iamVjdHMuYWRkKCZvYmplY3QpOwogfQog
CiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRldGFjaEFuZFJlbW92ZUFsbE9iamVj
dHMoKQpAQCAtNDc2MSw1NiArNDc0Myw1NiBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdAogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJv
b2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGJv
b2xlYW4gdmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0Qm9vbGVhbnYocG5hbWUsICZ2YWx1
ZSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxib29sPih2YWx1ZSkpOwor
ICAgIHJldHVybiB2YWx1ZTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldEJvb2xlYW5BcnJheVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKK1ZlY3Rvcjxi
b29sPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIo
R0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKHBuYW1lICE9IEdyYXBoaWNzQ29udGV4dDNEOjpD
T0xPUl9XUklURU1BU0spIHsKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygwLCAwKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9Ci0gICAg
R0MzRGJvb2xlYW4gdmFsdWVbNF0gPSB7MH07CisgICAgR0MzRGJvb2xlYW4gdmFsdWVbNF0gPSB7
IDAgfTsKICAgICBtX2NvbnRleHQtPmdldEJvb2xlYW52KHBuYW1lLCB2YWx1ZSk7Ci0gICAgYm9v
bCBib29sVmFsdWVbNF07Ci0gICAgZm9yIChpbnQgaWkgPSAwOyBpaSA8IDQ7ICsraWkpCi0gICAg
ICAgIGJvb2xWYWx1ZVtpaV0gPSBzdGF0aWNfY2FzdDxib29sPih2YWx1ZVtpaV0pOwotICAgIHJl
dHVybiBXZWJHTEdldEluZm8oYm9vbFZhbHVlLCA0KTsKKyAgICBWZWN0b3I8Ym9vbD4gdmVjdG9y
KDQpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCA0OyArK2kpCisgICAgICAgIHZlY3Rv
cltpXSA9IHZhbHVlW2ldOworICAgIHJldHVybiB2ZWN0b3I7CiB9CiAKLVdlYkdMR2V0SW5mbyBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRGbG9hdFBhcmFtZXRlcihHQzNEZW51bSBwbmFt
ZSkKK2Zsb2F0IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEZsb2F0UGFyYW1ldGVyKEdD
M0RlbnVtIHBuYW1lKQogewogICAgIEdDM0RmbG9hdCB2YWx1ZSA9IDA7CiAgICAgbV9jb250ZXh0
LT5nZXRGbG9hdHYocG5hbWUsICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1
ZSk7CisgICAgcmV0dXJuIHZhbHVlOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Z2V0SW50UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQoraW50IFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmdldEludFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAg
ICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KHBuYW1lLCAm
dmFsdWUpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgIHJldHVybiB2YWx1
ZTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuc2ln
bmVkSW50UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQordW5zaWduZWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Z2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAg
ICAgR0MzRGludCB2YWx1ZSA9IDA7CiAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihwbmFtZSwg
JnZhbHVlKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGlu
dD4odmFsdWUpKTsKKyAgICByZXR1cm4gdmFsdWU7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpnZXRJbnQ2NFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKK2xv
bmcgbG9uZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRJbnQ2NFBhcmFtZXRlcihHQzNE
ZW51bSBwbmFtZSkKIHsKICAgICBHQzNEaW50NjQgdmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+
Z2V0SW50ZWdlcjY0dihwbmFtZSwgJnZhbHVlKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZh
bHVlKTsKKyAgICByZXR1cm4gdmFsdWU7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRXZWJHTEZsb2F0QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUp
CitSZWZQdHI8RmxvYXQzMkFycmF5PiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRXZWJH
TEZsb2F0QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGZsb2F0IHZh
bHVlWzRdID0gezB9OwogICAgIG1fY29udGV4dC0+Z2V0RmxvYXR2KHBuYW1lLCB2YWx1ZSk7CkBA
IC00ODI4LDEwICs0ODEwLDEwIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRXZWJHTEZsb2F0QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5hCiAgICAgZGVmYXVs
dDoKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICB9Ci0gICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4oRmxvYXQzMkFycmF5OjpjcmVhdGUodmFsdWUs
IGxlbmd0aCkpKTsKKyAgICByZXR1cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0
aCk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRXZWJH
TEludEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQorUmVmUHRyPEludDMyQXJyYXk+IFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIoR0MzRGVu
dW0gcG5hbWUpCiB7CiAgICAgR0MzRGludCB2YWx1ZVs0XSA9IHswfTsKICAgICBtX2NvbnRleHQt
PmdldEludGVnZXJ2KHBuYW1lLCB2YWx1ZSk7CkBAIC00ODQ3LDcgKzQ4MjksNyBAQCBXZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRl
cihHQzNEZW51bSBwbmFtZQogICAgIGRlZmF1bHQ6CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7
CiAgICAgfQotICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxJbnQzMkFycmF5PihJ
bnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCkpKTsKKyAgICByZXR1cm4gSW50MzJBcnJh
eTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgpOwogfQogCiBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmNoZWNrVGV4dHVyZUNvbXBsZXRlbmVzcyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUs
IGJvb2wgcHJlcGFyZVRvRHJhdykKQEAgLTUwNzEsNyArNTA1Myw3IEBAIGJvb2wgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVDb21wcmVzc2VkVGV4RnVuY0RhdGEoY29uc3QgY2hh
ciogZnVuY3RpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICB1bnNpZ25lZCBp
bnQgYnl0ZXNSZXF1aXJlZCA9IDA7CisgICAgdW5zaWduZWQgYnl0ZXNSZXF1aXJlZCA9IDA7CiAK
ICAgICBzd2l0Y2ggKGZvcm1hdCkgewogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT01QUkVTU0VE
X1JHQl9TM1RDX0RYVDFfRVhUOgpAQCAtNTMyOCwxNyArNTMxMCwxNiBAQCBib29sIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlVW5pZm9ybU1hdHJpeFBhcmFtZXRlcnMoY29uc3Qg
Y2hhciogZnVuYwogCiBXZWJHTEJ1ZmZlciogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFs
aWRhdGVCdWZmZXJEYXRhUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gdXNhZ2UpCiB7Ci0gICAgV2ViR0xCdWZmZXIqIGJ1ZmZlciA9
IDA7CisgICAgc3RkOjpvcHRpb25hbDxXZWJHTEJ1ZmZlcio+IGJ1ZmZlcjsKICAgICBzd2l0Y2gg
KHRhcmdldCkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVG
RkVSOgotICAgICAgICBidWZmZXIgPSBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1l
bnRBcnJheUJ1ZmZlcigpLmdldCgpOworICAgICAgICBidWZmZXIgPSBtX2JvdW5kVmVydGV4QXJy
YXlPYmplY3QtPmdldEVsZW1lbnRBcnJheUJ1ZmZlcigpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9CVUZGRVI6CiAgICAgICAgIGJ1ZmZlciA9IG1f
Ym91bmRBcnJheUJ1ZmZlci5nZXQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICNp
ZiBFTkFCTEUoV0VCR0wyKQotICAgICAgICBib29sIHN1Y2Nlc3MgPSB0cnVlOwogICAgICAgICBp
ZiAoaXNXZWJHTDIoKSkgewogICAgICAgICAgICAgc3dpdGNoICh0YXJnZXQpIHsKICAgICAgICAg
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPUFlfUkVBRF9CVUZGRVI6CkBAIC01MzU5LDE5
ICs1MzQwLDE1IEBAIFdlYkdMQnVmZmVyKiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxp
ZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqCiAgICAgICAgICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpVTklGT1JNX0JVRkZFUjoKICAgICAgICAgICAgICAgICBidWZmZXIg
PSBtX2JvdW5kVW5pZm9ybUJ1ZmZlci5nZXQoKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOwotICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICAgICAgaWYgKHN1Y2Nlc3MpCi0gICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGlmIChidWZmZXIpCisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KICNlbmRpZgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIHRhcmdldCIpOwog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgaWYgKCFidWZmZXIpIHsKKyAgICBp
ZiAoIWJ1ZmZlciB8fCAhYnVmZmVyLnZhbHVlKCkpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJy
b3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCBmdW5jdGlvbk5hbWUsICJu
byBidWZmZXIiKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtNTM3OSw3ICs1
MzU2LDcgQEAgV2ViR0xCdWZmZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlkYXRl
QnVmZmVyRGF0YVBhcmFtZXRlcnMoY29uc3QgY2hhcioKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpTVFJFQU1fRFJBVzoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEFUSUNfRFJB
VzoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEWU5BTUlDX0RSQVc6Ci0gICAgICAgIHJl
dHVybiBidWZmZXI7CisgICAgICAgIHJldHVybiBidWZmZXIudmFsdWUoKTsKICAgICB9CiAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rp
b25OYW1lLCAiaW52YWxpZCB1c2FnZSIpOwogICAgIHJldHVybiBudWxscHRyOwpAQCAtNTkyOSw2
ICs1OTA2LDE2IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmli
RGl2aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2CiAgICAgbV9jb250ZXh0LT52ZXJ0
ZXhBdHRyaWJEaXZpc29yKGluZGV4LCBkaXZpc29yKTsKIH0KIAorYm9vbCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjplbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oY29uc3QgY2hhciogZXh0ZW5z
aW9uTmFtZUxpdGVyYWwpCit7CisgICAgQVNTRVJUKG1fY29udGV4dCk7CisgICAgYXV0byYgZXh0
ZW5zaW9ucyA9IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpOworICAgIFN0cmluZyBleHRlbnNp
b25OYW1lIHsgQVNDSUlMaXRlcmFsIHsgZXh0ZW5zaW9uTmFtZUxpdGVyYWwgfSB9OworICAgIGlm
ICghZXh0ZW5zaW9ucy5zdXBwb3J0cyhleHRlbnNpb25OYW1lKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGV4dGVuc2lvbnMuZW5zdXJlRW5hYmxlZChleHRlbnNpb25OYW1lKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKaW5k
ZXggNzM5M2EzODYyODMzZmNiODZiYjE3MWIyMDZiMjdiY2VkOWIzOWVjZi4uOWY5ZThiNjQxZmY2
YmNkMzlhZDI3NTZkMjczNzdkZTIzMjljZGY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDEzICsz
MCwxMCBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiSW1hZ2VC
dWZmZXIuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgIldlYkdMQW55LmgiCiAjaW5j
bHVkZSAiV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIgotI2luY2x1ZGUgIldlYkdMR2V0SW5mby5o
IgotI2luY2x1ZGUgIldlYkdMT2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViR0xUZXh0dXJlLmgiCiAj
aW5jbHVkZSA8bWVtb3J5PgotI2luY2x1ZGUgPHJ1bnRpbWUvRmxvYXQzMkFycmF5Lmg+Ci0jaW5j
bHVkZSA8cnVudGltZS9JbnQzMkFycmF5Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NDgsNyArNDUsNiBAQCBjbGFzcyBFWFRzUkdCOwogY2xhc3MgRVhURnJhZ0RlcHRoOwogY2xhc3Mg
SFRNTEltYWdlRWxlbWVudDsKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7Ci1jbGFzcyBJbWFnZUJ1
ZmZlcjsKIGNsYXNzIEltYWdlRGF0YTsKIGNsYXNzIEludFNpemU7CiBjbGFzcyBPRVNTdGFuZGFy
ZERlcml2YXRpdmVzOwpAQCAtMTkxLDI0ICsxODcsMjQgQEAgcHVibGljOgogICAgIFJlZlB0cjxX
ZWJHTEFjdGl2ZUluZm8+IGdldEFjdGl2ZVVuaWZvcm0oV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQg
aW5kZXgpOwogICAgIGJvb2wgZ2V0QXR0YWNoZWRTaGFkZXJzKFdlYkdMUHJvZ3JhbSosIFZlY3Rv
cjxSZWZQdHI8V2ViR0xTaGFkZXI+PiYpOwogICAgIEdDM0RpbnQgZ2V0QXR0cmliTG9jYXRpb24o
V2ViR0xQcm9ncmFtKiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0
QnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOworICAgIFdl
YkdMQW55IGdldEJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1l
KTsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdMQ29udGV4dEF0dHJpYnV0ZXM+IGdldENvbnRleHRB
dHRyaWJ1dGVzKCk7CiAgICAgR0MzRGVudW0gZ2V0RXJyb3IoKTsKICAgICB2aXJ0dWFsIFdlYkdM
RXh0ZW5zaW9uKiBnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKSA9IDA7Ci0gICAgdmly
dHVhbCBXZWJHTEdldEluZm8gZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpID0gMDsKLSAg
ICB2aXJ0dWFsIFdlYkdMR2V0SW5mbyBnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpID0gMDsK
LSAgICBXZWJHTEdldEluZm8gZ2V0UHJvZ3JhbVBhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNE
ZW51bSBwbmFtZSk7CisgICAgdmlydHVhbCBXZWJHTEFueSBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1l
bnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51
bSBwbmFtZSkgPSAwOworICAgIHZpcnR1YWwgV2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0RlbnVt
IHBuYW1lKSA9IDA7CisgICAgV2ViR0xBbnkgZ2V0UHJvZ3JhbVBhcmFtZXRlcihXZWJHTFByb2dy
YW0qLCBHQzNEZW51bSBwbmFtZSk7CiAgICAgU3RyaW5nIGdldFByb2dyYW1JbmZvTG9nKFdlYkdM
UHJvZ3JhbSopOwotICAgIFdlYkdMR2V0SW5mbyBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFNoYWRl
clBhcmFtZXRlcihXZWJHTFNoYWRlciosIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBn
ZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7
CisgICAgV2ViR0xBbnkgZ2V0U2hhZGVyUGFyYW1ldGVyKFdlYkdMU2hhZGVyKiwgR0MzRGVudW0g
cG5hbWUpOwogICAgIFN0cmluZyBnZXRTaGFkZXJJbmZvTG9nKFdlYkdMU2hhZGVyKik7CiAgICAg
UmVmUHRyPFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0PiBnZXRTaGFkZXJQcmVjaXNpb25Gb3Jt
YXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0MzRGVudW0gcHJlY2lzaW9uVHlwZSk7CiAgICAgU3Ry
aW5nIGdldFNoYWRlclNvdXJjZShXZWJHTFNoYWRlciopOwogICAgIHZpcnR1YWwgVmVjdG9yPFN0
cmluZz4gZ2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpID0gMDsKLSAgICBXZWJHTEdldEluZm8gZ2V0
VGV4UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOwotICAgIFdlYkdM
R2V0SW5mbyBnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0
aW9uKik7CisgICAgV2ViR0xBbnkgZ2V0VGV4UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiwgY29u
c3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qKTsKICAgICBSZWZQdHI8V2ViR0xVbmlmb3JtTG9jYXRp
b24+IGdldFVuaWZvcm1Mb2NhdGlvbihXZWJHTFByb2dyYW0qLCBjb25zdCBTdHJpbmcmKTsKLSAg
ICBXZWJHTEdldEluZm8gZ2V0VmVydGV4QXR0cmliKEdDM0R1aW50IGluZGV4LCBHQzNEZW51bSBw
bmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0VmVydGV4QXR0cmliKEdDM0R1aW50IGluZGV4LCBHQzNE
ZW51bSBwbmFtZSk7CiAgICAgbG9uZyBsb25nIGdldFZlcnRleEF0dHJpYk9mZnNldChHQzNEdWlu
dCBpbmRleCwgR0MzRGVudW0gcG5hbWUpOwogCiAgICAgdmlydHVhbCB2b2lkIGhpbnQoR0MzRGVu
dW0gdGFyZ2V0LCBHQzNEZW51bSBtb2RlKSA9IDA7CkBAIC0zMjMsOCArMzE5LDggQEAgcHVibGlj
OgogICAgIHZvaWQgcGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKSBvdmVycmlkZTsKICAg
ICBSZWZQdHI8SW1hZ2VEYXRhPiBwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSgpOwog
Ci0gICAgdm9pZCByZW1vdmVTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqKTsKLSAgICB2
b2lkIHJlbW92ZUNvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0Kik7CisgICAgdm9pZCBy
ZW1vdmVTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmKTsKKyAgICB2b2lkIHJlbW92ZUNv
bnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0Jik7CiAgICAgCiAgICAgdW5zaWduZWQgZ2V0
TWF4VmVydGV4QXR0cmlicygpIGNvbnN0IHsgcmV0dXJuIG1fbWF4VmVydGV4QXR0cmliczsgfQog
CkBAIC0zMzUsNyArMzMxLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxlbWVudCYsIFdlYkdMQ29udGV4dEF0dHJpYnV0
ZXMpOwotICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQmLCBS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOworICAg
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWY8R3JhcGhp
Y3NDb250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwogCiAgICAgZnJpZW5kIGNs
YXNzIFdlYkdMRHJhd0J1ZmZlcnM7CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMRnJhbWVidWZmZXI7
CkBAIC0zNjAsOCArMzU2LDggQEAgcHJvdGVjdGVkOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGNhblN1c3BlbmRGb3JEb2N1
bWVudFN1c3BlbnNpb24oKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgYWRkU2hhcmVkT2Jq
ZWN0KFdlYkdMU2hhcmVkT2JqZWN0Kik7Ci0gICAgdm9pZCBhZGRDb250ZXh0T2JqZWN0KFdlYkdM
Q29udGV4dE9iamVjdCopOworICAgIHZvaWQgYWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2Jq
ZWN0Jik7CisgICAgdm9pZCBhZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCYpOwog
ICAgIHZvaWQgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpOwogCiAgICAgdm9pZCBkZXN0cm95
R3JhcGhpY3NDb250ZXh0M0QoKTsKQEAgLTQwNSw2ICs0MDEsOCBAQCBwcm90ZWN0ZWQ6CiAKICAg
ICBXZWJHTFRleHR1cmU6OlRleHR1cmVFeHRlbnNpb25GbGFnIHRleHR1cmVFeHRlbnNpb25GbGFn
cygpIGNvbnN0OwogCisgICAgYm9vbCBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oY29uc3QgY2hh
ciogZXh0ZW5zaW9uTmFtZUxpdGVyYWwpOworCiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNE
PiBtX2NvbnRleHQ7CiAgICAgUmVmUHRyPFdlYkdMQ29udGV4dEdyb3VwPiBtX2NvbnRleHRHcm91
cDsKIApAQCAtNDE0LDcgKzQxMiw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBvbiBob3cgZXhhY3Rs
eSB0aGUgcGxhdGZvcm0gZGlzY292ZXJzIHRoYXQgdGhlIGNvbnRleHQgd2FzIGxvc3QuIEZvciBi
ZXR0ZXIKICAgICAvLyBwb3J0YWJpbGl0eSB3ZSBhbHdheXMgZGVmZXIgdGhlIGRpc3BhdGNoIG9m
IHRoZSBldmVudC4KICAgICBUaW1lciBtX2Rpc3BhdGNoQ29udGV4dExvc3RFdmVudFRpbWVyOwot
ICAgIGJvb2wgbV9yZXN0b3JlQWxsb3dlZDsKKyAgICBib29sIG1fcmVzdG9yZUFsbG93ZWQgeyBm
YWxzZSB9OwogICAgIFRpbWVyIG1fcmVzdG9yZVRpbWVyOwogCiAgICAgYm9vbCBtX25lZWRzVXBk
YXRlOwpAQCAtNDMyLDEyICs0MzAsMTAgQEAgcHJvdGVjdGVkOgogCiAgICAgUmVmUHRyPFdlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlPiBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdDsKICAgICBS
ZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U+IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVj
dDsKLSAgICB2b2lkIHNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QoUGFzc1JlZlB0cjxXZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZT4gYXJyYXlPYmplY3QpCisKKyAgICB2b2lkIHNldEJvdW5kVmVy
dGV4QXJyYXlPYmplY3QoV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UqIGFycmF5T2JqZWN0KQog
ICAgIHsKLSAgICAgICAgaWYgKGFycmF5T2JqZWN0KQotICAgICAgICAgICAgbV9ib3VuZFZlcnRl
eEFycmF5T2JqZWN0ID0gYXJyYXlPYmplY3Q7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1f
Ym91bmRWZXJ0ZXhBcnJheU9iamVjdCA9IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OworICAg
ICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBhcnJheU9iamVjdCA/IGFycmF5T2JqZWN0
IDogbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiAgICAgfQogICAgIAogICAgIGNsYXNzIFZl
cnRleEF0dHJpYlZhbHVlIHsKQEAgLTQ5MywxMiArNDg5LDEyIEBAIHByb3RlY3RlZDoKICAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj5bXT4gbV9idWZm
ZXJzOwogICAgICAgICBpbnQgbV9jYXBhY2l0eTsKICAgICB9OwotICAgIExSVUltYWdlQnVmZmVy
Q2FjaGUgbV9nZW5lcmF0ZWRJbWFnZUNhY2hlOworICAgIExSVUltYWdlQnVmZmVyQ2FjaGUgbV9n
ZW5lcmF0ZWRJbWFnZUNhY2hlIHsgMCB9OwogCiAgICAgR0MzRGludCBtX21heFRleHR1cmVTaXpl
OwogICAgIEdDM0RpbnQgbV9tYXhDdWJlTWFwVGV4dHVyZVNpemU7CiAgICAgR0MzRGludCBtX21h
eFJlbmRlcmJ1ZmZlclNpemU7Ci0gICAgR0MzRGludCBtX21heFZpZXdwb3J0RGltc1syXTsKKyAg
ICBHQzNEaW50IG1fbWF4Vmlld3BvcnREaW1zWzJdIHsgMCwgMCB9OwogICAgIEdDM0RpbnQgbV9t
YXhUZXh0dXJlTGV2ZWw7CiAgICAgR0MzRGludCBtX21heEN1YmVNYXBUZXh0dXJlTGV2ZWw7CiAK
QEAgLTUxMyw4ICs1MDksOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX3VucGFja0ZsaXBZOwog
ICAgIGJvb2wgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhOwogICAgIEdDM0RlbnVtIG1fdW5wYWNr
Q29sb3JzcGFjZUNvbnZlcnNpb247Ci0gICAgYm9vbCBtX2NvbnRleHRMb3N0OwotICAgIExvc3RD
b250ZXh0TW9kZSBtX2NvbnRleHRMb3N0TW9kZTsKKyAgICBib29sIG1fY29udGV4dExvc3QgeyBm
YWxzZSB9OworICAgIExvc3RDb250ZXh0TW9kZSBtX2NvbnRleHRMb3N0TW9kZSB7IFN5bnRoZXRp
Y0xvc3RDb250ZXh0IH07CiAgICAgV2ViR0xDb250ZXh0QXR0cmlidXRlcyBtX2F0dHJpYnV0ZXM7
CiAKICAgICBib29sIG1fbGF5ZXJDbGVhcmVkOwpAQCAtNTM1LDE3ICs1MzEsMTggQEAgcHJvdGVj
dGVkOgogICAgIGJvb2wgbV9pc0RlcHRoU3RlbmNpbFN1cHBvcnRlZDsKICAgICBib29sIG1faXNS
b2J1c3RuZXNzRVhUU3VwcG9ydGVkOwogCi0gICAgYm9vbCBtX3N5bnRoZXNpemVkRXJyb3JzVG9D
b25zb2xlOworICAgIGJvb2wgbV9zeW50aGVzaXplZEVycm9yc1RvQ29uc29sZSB7IHRydWUgfTsK
ICAgICBpbnQgbV9udW1HTEVycm9yc1RvQ29uc29sZUFsbG93ZWQ7CiAKICAgICAvLyBBIFdlYkdM
UmVuZGVyaW5nQ29udGV4dCBjYW4gYmUgY3JlYXRlZCBpbiBhIHN0YXRlIHdoZXJlIGl0IGFwcGVh
cnMgYXMKICAgICAvLyBhIHZhbGlkIGFuZCBhY3RpdmUgY29udGV4dCwgYnV0IHdpbGwgbm90IGV4
ZWN1dGUgYW55IGltcG9ydGFudCBvcGVyYXRpb25zCiAgICAgLy8gdW50aWwgaXRzIGxvYWQgcG9s
aWN5IGlzIGNvbXBsZXRlbHkgcmVzb2x2ZWQuCi0gICAgYm9vbCBtX2lzUGVuZGluZ1BvbGljeVJl
c29sdXRpb247Ci0gICAgYm9vbCBtX2hhc1JlcXVlc3RlZFBvbGljeVJlc29sdXRpb247CisgICAg
Ym9vbCBtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24geyBmYWxzZSB9OworICAgIGJvb2wgbV9o
YXNSZXF1ZXN0ZWRQb2xpY3lSZXNvbHV0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIGlzQ29udGV4
dExvc3RPclBlbmRpbmcoKTsKIAotICAgIC8vIEVuYWJsZWQgZXh0ZW5zaW9uIG9iamVjdHMuIEZJ
WE1FOiBNb3ZlIHRoZXNlIHRvIFdlYkdMMVJlbmRlcmluZ0NvbnRleHQsIG5vdCBuZWVkZWQgZm9y
IFdlYkdMMgorICAgIC8vIEVuYWJsZWQgZXh0ZW5zaW9uIG9iamVjdHMuCisgICAgLy8gRklYTUU6
IE1vdmUgc29tZSBvZiB0aGVzZSB0byBXZWJHTFJlbmRlcmluZ0NvbnRleHQsIHRoZSBvbmVzIG5v
dCBuZWVkZWQgZm9yIFdlYkdMMgogICAgIHN0ZDo6dW5pcXVlX3B0cjxFWFRGcmFnRGVwdGg+IG1f
ZXh0RnJhZ0RlcHRoOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFWFRCbGVuZE1pbk1heD4gbV9leHRC
bGVuZE1pbk1heDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RVhUc1JHQj4gbV9leHRzUkdCOwpAQCAt
NTY4LDE1ICs1NjUsMTUgQEAgcHJvdGVjdGVkOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTERy
YXdCdWZmZXJzPiBtX3dlYmdsRHJhd0J1ZmZlcnM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFOR0xF
SW5zdGFuY2VkQXJyYXlzPiBtX2FuZ2xlSW5zdGFuY2VkQXJyYXlzOwogCi0gICAgLy8gSGVscGVy
cyBmb3IgZ2V0UGFyYW1ldGVyIGFuZCBvdGhlcnMKLSAgICBXZWJHTEdldEluZm8gZ2V0Qm9vbGVh
blBhcmFtZXRlcihHQzNEZW51bSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEJvb2xlYW5BcnJheVBh
cmFtZXRlcihHQzNEZW51bSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEZsb2F0UGFyYW1ldGVyKEdD
M0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0SW50UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAg
ICBXZWJHTEdldEluZm8gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoR0MzRGVudW0pOwotICAgIFdl
YkdMR2V0SW5mbyBnZXRJbnQ2NFBhcmFtZXRlcihHQzNEZW51bSk7Ci0gICAgV2ViR0xHZXRJbmZv
IGdldFdlYkdMRmxvYXRBcnJheVBhcmFtZXRlcihHQzNEZW51bSk7Ci0gICAgV2ViR0xHZXRJbmZv
IGdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0pOworICAgIC8vIEhlbHBlcnMgZm9y
IGdldFBhcmFtZXRlciBhbmQgb3RoZXIgc2ltaWxhciBmdW5jdGlvbnMuCisgICAgYm9vbCBnZXRC
b29sZWFuUGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBWZWN0b3I8Ym9vbD4gZ2V0Qm9vbGVhbkFy
cmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBmbG9hdCBnZXRGbG9hdFBhcmFtZXRlcihHQzNE
ZW51bSk7CisgICAgaW50IGdldEludFBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgdW5zaWduZWQg
Z2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoR0MzRGVudW0pOworICAgIGxvbmcgbG9uZyBnZXRJbnQ2
NFBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gZ2V0V2ViR0xG
bG9hdEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBSZWZQdHI8SW50MzJBcnJheT4gZ2V0
V2ViR0xJbnRBcnJheVBhcmFtZXRlcihHQzNEZW51bSk7CiAKICAgICAvLyBDbGVhciB0aGUgYmFj
a2J1ZmZlciBpZiBpdCB3YXMgY29tcG9zaXRlZCBzaW5jZSB0aGUgbGFzdCBvcGVyYXRpb24uCiAg
ICAgLy8gY2xlYXJNYXNrIGlzIHNldCB0byB0aGUgYml0ZmllbGQgb2YgYW55IGNsZWFyIHRoYXQg
d291bGQgaGFwcGVuIGFueXdheSBhdCB0aGlzIHRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMU2FtcGxlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xTYW1wbGVyLmgKaW5kZXggYmQ5YzBlYWRkMDNhNzUyOTAzY2RjZWRkM2U5NmVjZmFi
MjE4MTJjNS4uYTA1MzFmZjI3Yzg2M2M0NzNjYmRkMmU4YTdlNDZhMDA0MzhjNmUyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsMTcgKzMxLDEyIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2ViR0xTYW1wbGVyIGZpbmFsIDogcHVibGljIFdl
YkdMU2hhcmVkT2JqZWN0IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJHTFNhbXBsZXIoKTsK
LQogICAgIHN0YXRpYyBSZWY8V2ViR0xTYW1wbGVyPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYpOworICAgIHZpcnR1YWwgfldlYkdMU2FtcGxlcigpOwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgV2ViR0xTYW1wbGVyKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKLQotICAgIHZvaWQg
ZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIGJvb2wgaXNTYW1wbGVyKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIGV4cGxpY2l0IFdlYkdMU2FtcGxlcihXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJik7CisgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4
dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlci5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuaAppbmRleCA2YWY1YzI2
OWQ1MGFhZTRkODU1YjdkMDcwZWEzMTg4ZWU1NDNiOTBjLi45NTJjZGNjNjU0M2VhZmJiYWRjNGNm
MDkzNDU3MDNhMWQ3Y2UxZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFNoYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hh
ZGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzEsOSArMzEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdl
YkdMU2hhZGVyIGZpbmFsIDogcHVibGljIFdlYkdMU2hhcmVkT2JqZWN0IHsKIHB1YmxpYzoKLSAg
ICB2aXJ0dWFsIH5XZWJHTFNoYWRlcigpOwotCiAgICAgc3RhdGljIFJlZjxXZWJHTFNoYWRlcj4g
Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBHQzNEZW51bSk7CisgICAgdmlydHVh
bCB+V2ViR0xTaGFkZXIoKTsKIAogICAgIEdDM0RlbnVtIGdldFR5cGUoKSBjb25zdCB7IHJldHVy
biBtX3R5cGU7IH0KICAgICBjb25zdCBTdHJpbmcmIGdldFNvdXJjZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc291cmNlOyB9CkBAIC00Niw5ICs0NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV2Vi
R0xTaGFkZXIoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIEdDM0RlbnVtKTsKIAotICAgIHZv
aWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3Qp
IG92ZXJyaWRlOwotCi0gICAgYm9vbCBpc1NoYWRlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KKyAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQ
bGF0Zm9ybTNET2JqZWN0KSBmaW5hbDsKIAogICAgIEdDM0RlbnVtIG1fdHlwZTsKICAgICBTdHJp
bmcgbV9zb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFNoYXJlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJl
ZE9iamVjdC5jcHAKaW5kZXggMzZkYzE1ZDNhMGU3ZTVmNmE5NzA2MWU0YzNiZDNjMjQxYzFiODRl
OS4uMWIyMjM2ZmJkNzEyYThiNzFjMDgyMGQxYzBhYTYyM2JjMzM4MjAwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCw0MSArMjQs
MzkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xTaGFyZWRP
YmplY3QuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUgIldlYkdMU2hhcmVkT2Jq
ZWN0LmgiCi0KICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXZWJHTFNo
YXJlZE9iamVjdDo6V2ViR0xTaGFyZWRPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYg
Y29udGV4dCkKLSAgICA6IFdlYkdMT2JqZWN0KGNvbnRleHQpCi0gICAgLCBtX2NvbnRleHRHcm91
cChjb250ZXh0LmNvbnRleHRHcm91cCgpKQorICAgIDogbV9jb250ZXh0R3JvdXAoY29udGV4dC5j
b250ZXh0R3JvdXAoKSkKIHsKIH0KIAogV2ViR0xTaGFyZWRPYmplY3Q6On5XZWJHTFNoYXJlZE9i
amVjdCgpCiB7CiAgICAgaWYgKG1fY29udGV4dEdyb3VwKQotICAgICAgICBtX2NvbnRleHRHcm91
cC0+cmVtb3ZlT2JqZWN0KHRoaXMpOworICAgICAgICBtX2NvbnRleHRHcm91cC0+cmVtb3ZlT2Jq
ZWN0KCp0aGlzKTsKIH0KIAogdm9pZCBXZWJHTFNoYXJlZE9iamVjdDo6ZGV0YWNoQ29udGV4dEdy
b3VwKCkKIHsKICAgICBkZXRhY2goKTsKICAgICBpZiAobV9jb250ZXh0R3JvdXApIHsKLSAgICAg
ICAgZGVsZXRlT2JqZWN0KDApOwotICAgICAgICBtX2NvbnRleHRHcm91cC0+cmVtb3ZlT2JqZWN0
KHRoaXMpOwotICAgICAgICBtX2NvbnRleHRHcm91cCA9IDA7CisgICAgICAgIGRlbGV0ZU9iamVj
dChudWxscHRyKTsKKyAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZU9iamVjdCgqdGhpcyk7
CisgICAgICAgIG1fY29udGV4dEdyb3VwID0gbnVsbHB0cjsKICAgICB9CiB9CiAKIEdyYXBoaWNz
Q29udGV4dDNEKiBXZWJHTFNoYXJlZE9iamVjdDo6Z2V0QUdyYXBoaWNzQ29udGV4dDNEKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gbV9jb250ZXh0R3JvdXAgPyBtX2NvbnRleHRHcm91cC0+Z2V0QUdy
YXBoaWNzQ29udGV4dDNEKCkgOiAwOworICAgIHJldHVybiBtX2NvbnRleHRHcm91cCA/ICZtX2Nv
bnRleHRHcm91cC0+Z2V0QUdyYXBoaWNzQ29udGV4dDNEKCkgOiBudWxscHRyOwogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaAppbmRleCBh
YmU0ODAzMzM3MmM5NTZjYzcxMzBlYjdmN2JmZmZkY2QxYTlmNTdiLi45NzJlNTgwZWVjYjAxOWI4
YWZlMTE4MDcwMjE5MzI2YzM2YzkzOGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMU2hhcmVkT2JqZWN0LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsMjQgKzMzLDE1IEBAIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dDNEOwogY2xhc3MgV2ViR0xDb250ZXh0R3JvdXA7CiBjbGFzcyBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOwogCi0vLyBXZWJHTFNoYXJlZE9iamVjdCB0aGUgYmFzZSBjbGFzcyBmb3Igb2Jq
ZWN0cyB0aGF0IGNhbiBiZSBzaGFyZWQgYnkgbXVsdGlwbGUKLS8vIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dHMuCisvLyBXZWJHTFNoYXJlZE9iamVjdCB0aGUgYmFzZSBjbGFzcyBmb3Igb2JqZWN0cyB0
aGF0IGNhbiBiZSBzaGFyZWQgYnkgbXVsdGlwbGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0cy4KIGNs
YXNzIFdlYkdMU2hhcmVkT2JqZWN0IDogcHVibGljIFdlYkdMT2JqZWN0IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5XZWJHTFNoYXJlZE9iamVjdCgpOwogCiAgICAgV2ViR0xDb250ZXh0R3JvdXAq
IGNvbnRleHRHcm91cCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dEdyb3VwOyB9CiAKLSAgICB2
aXJ0dWFsIGJvb2wgaXNCdWZmZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1
YWwgYm9vbCBpc1Byb2dyYW0oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwg
Ym9vbCBpc1F1ZXJ5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXNSZW5kZXJidWZmZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9v
bCBpc1NhbXBsZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBp
c1NoYWRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzU3lu
YygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzVGV4dHVyZSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVHJhbnNmb3JtRmVl
ZGJhY2soKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1ZlcnRl
eEFycmF5T2JqZWN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIGJvb2wgdmFsaWRh
dGUoY29uc3QgV2ViR0xDb250ZXh0R3JvdXAqIGNvbnRleHRHcm91cCwgY29uc3QgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSYpIGNvbnN0IG92ZXJyaWRlCiAgICAgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTeW5jLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFN5bmMuaAppbmRleCBlZjZlYzlkY2Q1OTY0ZmI0NmQyMzdhMDA2M2Q0YzU2
YjEyY2RhNzRjLi5mOWU3MTgwMTc0MWQwMzM3NjJjMmMyMWI0YzNjNmEzZDk4MTgyMGUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFN5bmMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFN5bmMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw5ICszOSw2IEBAIHByb3RlY3Rl
ZDoKICAgICBXZWJHTFN5bmMoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwogCiAgICAgdm9p
ZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkg
b3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAgYm9vbCBpc1N5bmMoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgKaW5kZXgg
NjljZjhlN2JiNTQxOGVhYTllNDU2OTIxMTQwOGY0NzZiMjZhNjc4Ni4uNzE0OTIzMzg0NWFkYTFk
ZWE0M2MwMWQ4MDViNzk4MTZiNzczZWI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw5ICszOSw2IEBAIHByb3RlY3Rl
ZDoKICAgICBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
KTsKIAogICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRm
b3JtM0RPYmplY3QpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIGJvb2wgaXNUcmFuc2Zvcm1G
ZWVkYmFjaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVmVydGV4QXJyYXlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKaW5kZXggN2ZhNjljOWE0OTRkYmVlYTlkYmViZjg5ZTg1
ZjQzZjljZmQwMjg0OS4uODlhZTIxZjMzZWY4NTg4Y2QxOGQ0MDMxYzg1N2FhOGExNDRlNTU0MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjQsMzMgKzI0LDMzIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgot
Ci0jaWYgRU5BQkxFKFdFQkdMKSAmJiBFTkFCTEUoV0VCR0wyKQogI2luY2x1ZGUgIldlYkdMVmVy
dGV4QXJyYXlPYmplY3QuaCIKIAorI2lmIEVOQUJMRShXRUJHTDIpCisKICNpbmNsdWRlICJXZWJH
TDJSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAotUmVmPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IFdl
YkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBj
dHgsIFZBT1R5cGUgdHlwZSkKK1JlZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBXZWJHTFZlcnRl
eEFycmF5T2JqZWN0OjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwg
VHlwZSB0eXBlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdMVmVydGV4QXJyYXlP
YmplY3QoY3R4LCB0eXBlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdChjb250ZXh0LCB0eXBlKSk7CiB9CiAKIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6
On5XZWJHTFZlcnRleEFycmF5T2JqZWN0KCkKIHsKLSAgICBkZWxldGVPYmplY3QoMCk7CisgICAg
ZGVsZXRlT2JqZWN0KG51bGxwdHIpOwogfQogCi1XZWJHTFZlcnRleEFycmF5T2JqZWN0OjpXZWJH
TFZlcnRleEFycmF5T2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwgVkFPVHlw
ZSB0eXBlKQotICAgIDogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoY3R4LCB0eXBlKQorV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdDo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdChXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiBjb250ZXh0LCBUeXBlIHR5cGUpCisgICAgOiBXZWJHTFZlcnRleEFycmF5
T2JqZWN0QmFzZShjb250ZXh0LCB0eXBlKQogewogICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAg
Y2FzZSBWQU9UeXBlRGVmYXVsdDoKKyAgICBjYXNlIFR5cGU6OkRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHNldE9iamVjdChjb250ZXh0KCktPmdyYXBoaWNz
Q29udGV4dDNEKCktPmNyZWF0ZVZlcnRleEFycmF5KCkpOworICAgIGNhc2UgVHlwZTo6VXNlcjoK
KyAgICAgICAgc2V0T2JqZWN0KHRoaXMtPmNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+
Y3JlYXRlVmVydGV4QXJyYXkoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KQEAgLTU4LDkg
KzU4LDkgQEAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdChX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIFYKIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdDo6ZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dDNkLCBQbGF0
Zm9ybTNET2JqZWN0IG9iamVjdCkKIHsKICAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2Ug
VkFPVHlwZURlZmF1bHQ6CisgICAgY2FzZSBUeXBlOjpEZWZhdWx0OgogICAgICAgICBicmVhazsK
LSAgICBkZWZhdWx0OgorICAgIGNhc2UgVHlwZTo6VXNlcjoKICAgICAgICAgY29udGV4dDNkLT5k
ZWxldGVWZXJ0ZXhBcnJheShvYmplY3QpOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmgKaW5k
ZXggNWI0OWM3MDhhNDYyNTRkZTU5MGUxYzA2ZGNjOTg2MmE2NjRjMzE0Mi4uMmY3ZWQzNTA4MTcy
M2YwYWJhZjI1M2IyYWJjZmQwMTM5NzAzNjQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw4ICsyNyw2IEBACiAKICNp
ZiBFTkFCTEUoV0VCR0wyKQogCi0jaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKLSNpbmNsdWRlICJX
ZWJHTENvbnRleHRPYmplY3QuaCIKICNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFz
ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNywxMiArMzUsMTEgQEAgY2xhc3MgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDsKIAogY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCBmaW5h
bCA6IHB1YmxpYyBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYsIFZBT1R5cGUpOworICAgIHN0YXRpYyBSZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dD4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBlKTsKICAgICB2aXJ0dWFs
IH5XZWJHTFZlcnRleEFycmF5T2JqZWN0KCk7CiBwcml2YXRlOgotICAgIFdlYkdMVmVydGV4QXJy
YXlPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFZBT1R5cGUpOwotICAgIGJvb2wg
aXNUcmFuc2Zvcm1GZWVkYmFjaygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2b2lkIGRl
bGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVy
cmlkZTsKKyAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmLCBUeXBlKTsKKyAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0Qq
LCBQbGF0Zm9ybTNET2JqZWN0KSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlP
YmplY3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJy
YXlPYmplY3RCYXNlLmNwcAppbmRleCA2OTY0OWM2MmY2ZTFkYmVmMmY5ZWRhNjE3YzQyNDI0ZGY3
M2YxNzVmLi41OGRmYTNkNzNjNmFkYjkzOWNlNDA0OTJmODE3OWE5OGJmZTc5MWE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdEJhc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI0LDI0ICsyNCwyMiBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oIgogCiAjaWYgRU5BQkxFKFdF
QkdMKQotI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgiCiAKICNpbmNsdWRl
ICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwgVkFPVHlwZSB0eXBlKQotICAgIDogV2ViR0xD
b250ZXh0T2JqZWN0KGN0eCkKK1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpXZWJHTFZlcnRl
eEFycmF5T2JqZWN0QmFzZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBUeXBl
IHR5cGUpCisgICAgOiBXZWJHTENvbnRleHRPYmplY3QoY29udGV4dCkKICAgICAsIG1fdHlwZSh0
eXBlKQotICAgICwgbV9oYXNFdmVyQmVlbkJvdW5kKGZhbHNlKQotICAgICwgbV9ib3VuZEVsZW1l
bnRBcnJheUJ1ZmZlcigwKQogewotICAgIG1fdmVydGV4QXR0cmliU3RhdGUucmVzaXplKGN0eC5n
ZXRNYXhWZXJ0ZXhBdHRyaWJzKCkpOworICAgIG1fdmVydGV4QXR0cmliU3RhdGUucmVzaXplKGNv
bnRleHQuZ2V0TWF4VmVydGV4QXR0cmlicygpKTsKIH0KIAotdm9pZCBXZWJHTFZlcnRleEFycmF5
T2JqZWN0QmFzZTo6c2V0RWxlbWVudEFycmF5QnVmZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+
IGJ1ZmZlcikKK3ZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldEVsZW1lbnRBcnJh
eUJ1ZmZlcihXZWJHTEJ1ZmZlciogYnVmZmVyKQogewogICAgIGlmIChidWZmZXIpCiAgICAgICAg
IGJ1ZmZlci0+b25BdHRhY2hlZCgpOwpAQCAtNTEsMTggKzQ5LDE3IEBAIHZvaWQgV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdEJhc2U6OnNldEVsZW1lbnRBcnJheUJ1ZmZlcihQYXNzUmVmUHRyPFdlYkdM
QnVmZmVyPiBiCiAgICAgCiB9CiAKLXZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNl
dFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1aW50IGluZGV4LCBHQzNEc2l6ZWkgYnl0ZXNQZXJFbGVt
ZW50LCBHQzNEaW50IHNpemUsIEdDM0RlbnVtIHR5cGUsIEdDM0Rib29sZWFuIG5vcm1hbGl6ZWQs
IEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIgb2Zmc2V0LCBQYXNzUmVmUHRyPFdlYkdMQnVm
ZmVyPiBidWZmZXIpCit2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhB
dHRyaWJTdGF0ZShHQzNEdWludCBpbmRleCwgR0MzRHNpemVpIGJ5dGVzUGVyRWxlbWVudCwgR0Mz
RGludCBzaXplLCBHQzNEZW51bSB0eXBlLCBHQzNEYm9vbGVhbiBub3JtYWxpemVkLCBHQzNEc2l6
ZWkgc3RyaWRlLCBHQzNEaW50cHRyIG9mZnNldCwgV2ViR0xCdWZmZXImIGJ1ZmZlcikKIHsKICAg
ICBHQzNEc2l6ZWkgdmFsaWRhdGVkU3RyaWRlID0gc3RyaWRlID8gc3RyaWRlIDogYnl0ZXNQZXJF
bGVtZW50OwogICAgIAotICAgIFZlcnRleEF0dHJpYlN0YXRlJiBzdGF0ZSA9IG1fdmVydGV4QXR0
cmliU3RhdGVbaW5kZXhdOworICAgIGF1dG8mIHN0YXRlID0gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtp
bmRleF07CiAgICAgCi0gICAgaWYgKGJ1ZmZlcikKLSAgICAgICAgYnVmZmVyLT5vbkF0dGFjaGVk
KCk7CisgICAgYnVmZmVyLm9uQXR0YWNoZWQoKTsKICAgICBpZiAoc3RhdGUuYnVmZmVyQmluZGlu
ZykKICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZy0+b25EZXRhY2hlZChjb250ZXh0KCktPmdy
YXBoaWNzQ29udGV4dDNEKCkpOwogICAgIAotICAgIHN0YXRlLmJ1ZmZlckJpbmRpbmcgPSBidWZm
ZXI7CisgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9ICZidWZmZXI7CiAgICAgc3RhdGUuYnl0ZXNQ
ZXJFbGVtZW50ID0gYnl0ZXNQZXJFbGVtZW50OwogICAgIHN0YXRlLnNpemUgPSBzaXplOwogICAg
IHN0YXRlLnR5cGUgPSB0eXBlOwpAQCAtNzIsMTcgKzY5LDE3IEBAIHZvaWQgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1aW50IGluZGV4LCBHQzNE
c2l6ZWkKICAgICBzdGF0ZS5vZmZzZXQgPSBvZmZzZXQ7CiB9CiAKLXZvaWQgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZlcihQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBidWZm
ZXIpCit2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJpbmRCdWZmZXIoV2ViR0xC
dWZmZXImIGJ1ZmZlcikKIHsKLSAgICBpZiAobV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlciA9PSBi
dWZmZXIpIHsKKyAgICBpZiAobV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlciA9PSAmYnVmZmVyKSB7
CiAgICAgICAgIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXItPm9uRGV0YWNoZWQoY29udGV4dCgp
LT5ncmFwaGljc0NvbnRleHQzRCgpKTsKICAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZl
ciA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV92
ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCk7ICsraSkgewotICAgICAgICBWZXJ0ZXhBdHRyaWJTdGF0
ZSYgc3RhdGUgPSBtX3ZlcnRleEF0dHJpYlN0YXRlW2ldOwotICAgICAgICBpZiAoc3RhdGUuYnVm
ZmVyQmluZGluZyA9PSBidWZmZXIpIHsKLSAgICAgICAgICAgIGJ1ZmZlci0+b25EZXRhY2hlZChj
b250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgICAgICBhdXRvJiBzdGF0ZSA9IG1f
dmVydGV4QXR0cmliU3RhdGVbaV07CisgICAgICAgIGlmIChzdGF0ZS5idWZmZXJCaW5kaW5nID09
ICZidWZmZXIpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5vbkRldGFjaGVkKGNvbnRleHQoKS0+Z3Jh
cGhpY3NDb250ZXh0M0QoKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICghaSAmJiAh
Y29udGV4dCgpLT5pc0dMRVMyQ29tcGxpYW50KCkpIHsKICAgICAgICAgICAgICAgICBzdGF0ZS5i
dWZmZXJCaW5kaW5nID0gY29udGV4dCgpLT5tX3ZlcnRleEF0dHJpYjBCdWZmZXI7CkBAIC0xMDIs
OCArOTksNyBAQCB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJpbmRCdWZmZXIo
UGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVmZmVyKQogCiB2b2lkIFdlYkdMVmVydGV4QXJyYXlP
YmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJEaXZpc29yKEdDM0R1aW50IGluZGV4LCBHQzNEdWlu
dCBkaXZpc29yKQogewotICAgIFZlcnRleEF0dHJpYlN0YXRlJiBzdGF0ZSA9IG1fdmVydGV4QXR0
cmliU3RhdGVbaW5kZXhdOwotICAgIHN0YXRlLmRpdmlzb3IgPSBkaXZpc29yOworICAgIG1fdmVy
dGV4QXR0cmliU3RhdGVbaW5kZXhdLmRpdmlzb3IgPSBkaXZpc29yOwogfQogICAgIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmpl
Y3RCYXNlLmgKaW5kZXggMjkwYWI4ZDNkNzBmMzM3YTg2MzVhMjMxNjI3NmQ5MWRjNDNkNGFhOS4u
MTI3NTUzM2Q4YTE0NjE5MWE2NTViMjlhMDdmYmI4ZjE4N2EyODcwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMyLDY1ICszMiw0NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlIDogcHVibGljIFdlYkdMQ29udGV4dE9iamVjdCB7CiBwdWJsaWM6Ci0g
ICAgZW51bSBWQU9UeXBlIHsKLSAgICAgICAgVkFPVHlwZURlZmF1bHQsCi0gICAgICAgIFZBT1R5
cGVVc2VyLAotICAgIH07Ci0gICAgCi0gICAgdmlydHVhbCB+V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dEJhc2UoKSB7IH0KKyAgICBlbnVtIGNsYXNzIFR5cGUgeyBEZWZhdWx0LCBVc2VyIH07CiAKICAg
ICAvLyBDYWNoZWQgdmFsdWVzIGZvciB2ZXJ0ZXggYXR0cmliIHJhbmdlIGNoZWNrcwogICAgIHN0
cnVjdCBWZXJ0ZXhBdHRyaWJTdGF0ZSB7Ci0gICAgICAgIFZlcnRleEF0dHJpYlN0YXRlKCkKLSAg
ICAgICAgICAgIDogZW5hYmxlZChmYWxzZSkKLSAgICAgICAgICAgICwgYnl0ZXNQZXJFbGVtZW50
KDApCi0gICAgICAgICAgICAsIHNpemUoNCkKLSAgICAgICAgICAgICwgdHlwZShHcmFwaGljc0Nv
bnRleHQzRDo6RkxPQVQpCi0gICAgICAgICAgICAsIG5vcm1hbGl6ZWQoZmFsc2UpCi0gICAgICAg
ICAgICAsIHN0cmlkZSgxNikKLSAgICAgICAgICAgICwgb3JpZ2luYWxTdHJpZGUoMCkKLSAgICAg
ICAgICAgICwgb2Zmc2V0KDApCi0gICAgICAgICAgICAsIGRpdmlzb3IoMCkKLSAgICAgICAgewot
ICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICBib29sIGlzQm91bmQoKSBjb25zdCB7IHJldHVy
biBidWZmZXJCaW5kaW5nICYmIGJ1ZmZlckJpbmRpbmctPm9iamVjdCgpOyB9CiAgICAgICAgIGJv
b2wgdmFsaWRhdGVCaW5kaW5nKCkgY29uc3QgeyByZXR1cm4gIWVuYWJsZWQgfHwgaXNCb3VuZCgp
OyB9CiAgICAgICAgIAotICAgICAgICBib29sIGVuYWJsZWQ7CisgICAgICAgIGJvb2wgZW5hYmxl
ZCB7IGZhbHNlIH07CiAgICAgICAgIFJlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVmZmVyQmluZGluZzsK
LSAgICAgICAgR0MzRHNpemVpIGJ5dGVzUGVyRWxlbWVudDsKLSAgICAgICAgR0MzRGludCBzaXpl
OwotICAgICAgICBHQzNEZW51bSB0eXBlOwotICAgICAgICBib29sIG5vcm1hbGl6ZWQ7Ci0gICAg
ICAgIEdDM0RzaXplaSBzdHJpZGU7Ci0gICAgICAgIEdDM0RzaXplaSBvcmlnaW5hbFN0cmlkZTsK
LSAgICAgICAgR0MzRGludHB0ciBvZmZzZXQ7Ci0gICAgICAgIEdDM0R1aW50IGRpdmlzb3I7Cisg
ICAgICAgIEdDM0RzaXplaSBieXRlc1BlckVsZW1lbnQgeyAwIH07CisgICAgICAgIEdDM0RpbnQg
c2l6ZSB7IDQgfTsKKyAgICAgICAgR0MzRGVudW0gdHlwZSB7IEdyYXBoaWNzQ29udGV4dDNEOjpG
TE9BVCB9OworICAgICAgICBib29sIG5vcm1hbGl6ZWQgeyBmYWxzZSB9OworICAgICAgICBHQzNE
c2l6ZWkgc3RyaWRlIHsgMTYgfTsKKyAgICAgICAgR0MzRHNpemVpIG9yaWdpbmFsU3RyaWRlIHsg
MCB9OworICAgICAgICBHQzNEaW50cHRyIG9mZnNldCB7IDAgfTsKKyAgICAgICAgR0MzRHVpbnQg
ZGl2aXNvciB7IDAgfTsKICAgICB9OwotICAgIAotICAgIGJvb2wgaXNEZWZhdWx0T2JqZWN0KCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlID09IFZBT1R5cGVEZWZhdWx0OyB9Ci0gICAgCisKKyAgICBi
b29sIGlzRGVmYXVsdE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpEZWZh
dWx0OyB9CisKICAgICBib29sIGhhc0V2ZXJCZWVuQm91bmQoKSBjb25zdCB7IHJldHVybiBvYmpl
Y3QoKSAmJiBtX2hhc0V2ZXJCZWVuQm91bmQ7IH0KICAgICB2b2lkIHNldEhhc0V2ZXJCZWVuQm91
bmQoKSB7IG1faGFzRXZlckJlZW5Cb3VuZCA9IHRydWU7IH0KLSAgICAKLSAgICBQYXNzUmVmUHRy
PFdlYkdMQnVmZmVyPiBnZXRFbGVtZW50QXJyYXlCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2Jv
dW5kRWxlbWVudEFycmF5QnVmZmVyOyB9Ci0gICAgdm9pZCBzZXRFbGVtZW50QXJyYXlCdWZmZXIo
UGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4pOwotICAgIAorCisgICAgV2ViR0xCdWZmZXIqIGdldEVs
ZW1lbnRBcnJheUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fYm91bmRFbGVtZW50QXJyYXlCdWZm
ZXIuZ2V0KCk7IH0KKyAgICB2b2lkIHNldEVsZW1lbnRBcnJheUJ1ZmZlcihXZWJHTEJ1ZmZlciop
OworCiAgICAgVmVydGV4QXR0cmliU3RhdGUmIGdldFZlcnRleEF0dHJpYlN0YXRlKGludCBpbmRl
eCkgeyByZXR1cm4gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF07IH0KLSAgICB2b2lkIHNldFZl
cnRleEF0dHJpYlN0YXRlKEdDM0R1aW50LCBHQzNEc2l6ZWksIEdDM0RpbnQsIEdDM0RlbnVtLCBH
QzNEYm9vbGVhbiwgR0MzRHNpemVpLCBHQzNEaW50cHRyLCBQYXNzUmVmUHRyPFdlYkdMQnVmZmVy
Pik7Ci0gICAgdm9pZCB1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4pOwotICAg
IAorICAgIHZvaWQgc2V0VmVydGV4QXR0cmliU3RhdGUoR0MzRHVpbnQsIEdDM0RzaXplaSwgR0Mz
RGludCwgR0MzRGVudW0sIEdDM0Rib29sZWFuLCBHQzNEc2l6ZWksIEdDM0RpbnRwdHIsIFdlYkdM
QnVmZmVyJik7CisgICAgdm9pZCB1bmJpbmRCdWZmZXIoV2ViR0xCdWZmZXImKTsKKwogICAgIHZv
aWQgc2V0VmVydGV4QXR0cmliRGl2aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNv
cik7CiAKIHByb3RlY3RlZDoKLSAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJiwgVkFPVHlwZSk7CisgICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dEJhc2UoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFR5cGUpOwogICAgIHZvaWQgZGVsZXRl
T2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
ID0gMDsKLSAgICAKLSAgICBWQU9UeXBlIG1fdHlwZTsKLSAgICBib29sIG1faGFzRXZlckJlZW5C
b3VuZDsKKworICAgIFR5cGUgbV90eXBlOworICAgIGJvb2wgbV9oYXNFdmVyQmVlbkJvdW5kIHsg
ZmFsc2UgfTsKICAgICBSZWZQdHI8V2ViR0xCdWZmZXI+IG1fYm91bmRFbGVtZW50QXJyYXlCdWZm
ZXI7CiAgICAgVmVjdG9yPFZlcnRleEF0dHJpYlN0YXRlPiBtX3ZlcnRleEF0dHJpYlN0YXRlOwog
fTsKLSAgICAKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcAppbmRleCA1
ZjNiNjU1N2E3MGI1Y2I4NDJjMGMyZWE3NzgxNzhhZmE2NGMwMWZmLi5hZjU1NjVjZDk0NDQyNGI1
M2I4MzU3ZGIyYzAxOTBiZTFjZTViNDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcApAQCAtMzQsMzcgKzM0
LDM1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3RPRVM+IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJiBjdHgsIFZBT1R5cGUgdHlwZSkKK1JlZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTPiBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYgY29udGV4dCwgVHlwZSB0eXBlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoY3R4LCB0eXBlKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyhjb250ZXh0LCB0eXBlKSk7CiB9CiAK
LVdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWQU9UeXBlIHR5cGUpCi0gICAgOiBXZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZShjdHgsIHR5cGUpCitXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNv
bnRleHQsIFR5cGUgdHlwZSkKKyAgICA6IFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKGNvbnRl
eHQsIHR5cGUpCiB7Ci0gICAgRXh0ZW5zaW9uczNEJiBleHRlbnNpb25zID0gY29udGV4dCgpLT5n
cmFwaGljc0NvbnRleHQzRCgpLT5nZXRFeHRlbnNpb25zKCk7Ci0gICAgc3dpdGNoIChtX3R5cGUp
IHsKLSAgICBjYXNlIFZBT1R5cGVEZWZhdWx0OgorICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNh
c2UgVHlwZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAg
c2V0T2JqZWN0KGV4dGVuc2lvbnMuY3JlYXRlVmVydGV4QXJyYXlPRVMoKSk7CisgICAgY2FzZSBU
eXBlOjpVc2VyOgorICAgICAgICBzZXRPYmplY3QodGhpcy0+Y29udGV4dCgpLT5ncmFwaGljc0Nv
bnRleHQzRCgpLT5nZXRFeHRlbnNpb25zKCkuY3JlYXRlVmVydGV4QXJyYXlPRVMoKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIH0KIAogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6fldlYkdM
VmVydGV4QXJyYXlPYmplY3RPRVMoKQogewotICAgIGRlbGV0ZU9iamVjdCgwKTsKKyAgICBkZWxl
dGVPYmplY3QobnVsbHB0cik7CiB9CiAKIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6
ZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dDNkLCBQbGF0Zm9ybTNE
T2JqZWN0IG9iamVjdCkKIHsKLSAgICBFeHRlbnNpb25zM0QmIGV4dGVuc2lvbnMgPSBjb250ZXh0
M2QtPmdldEV4dGVuc2lvbnMoKTsKICAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgVkFP
VHlwZURlZmF1bHQ6CisgICAgY2FzZSBUeXBlOjpEZWZhdWx0OgogICAgICAgICBicmVhazsKLSAg
ICBkZWZhdWx0OgotICAgICAgICBleHRlbnNpb25zLmRlbGV0ZVZlcnRleEFycmF5T0VTKG9iamVj
dCk7CisgICAgY2FzZSBUeXBlOjpVc2VyOgorICAgICAgICBjb250ZXh0M2QtPmdldEV4dGVuc2lv
bnMoKS5kZWxldGVWZXJ0ZXhBcnJheU9FUyhvYmplY3QpOwogICAgICAgICBicmVhazsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMuaAppbmRleCBkMDhkMjIzZTM1NzA2Njk0ZTkxY2FlNmFjZGM4YzRiY2E5ZjE2
N2U5Li5mOWEyYTU4ZWMyNzQ3YzJkNTA2MzBiNWI2ZjZjZmYwNWE2MzYwYzU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9F
Uy5oCkBAIC0yNSwxOSArMjUsMTcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJH
TEJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkdMQ29udGV4dE9iamVjdC5oIgogI2luY2x1ZGUgIldl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyBmaW5hbCA6IHB1YmxpYyBXZWJHTFZlcnRleEFy
cmF5T2JqZWN0QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJHTFZlcnRleEFycmF5
T2JqZWN0T0VTPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFZBT1R5cGUpOwor
ICAgIHN0YXRpYyBSZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gY3JlYXRlKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBlKTsKICAgICB2aXJ0dWFsIH5XZWJHTFZlcnRleEFycmF5
T2JqZWN0T0VTKCk7CiBwcml2YXRlOgotICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFZBT1R5cGUpOwotICAgIHZvaWQgZGVsZXRlT2JqZWN0
SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAg
IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFR5
cGUpOworICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRm
b3JtM0RPYmplY3QpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmNwcAppbmRleCA5YmNkNDdmNzc5
ZTA1MWZhYTQwNTkwYzc5M2ZiMjNmYzUxYjJkZTFlLi4yNzVkNmVjNDRlMDU4NDU2ZWVmZmZkMWNl
ZjI4ZDVhNzVmOGIxZjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Zvcm1zL0Zp
bGVJY29uTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Zvcm1zL0ZpbGVJY29u
TG9hZGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIw
MDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBA
IC0zNywxMyArMzcsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdm9pZCBGaWxlSWNvbkxvYWRl
cjo6aW52YWxpZGF0ZSgpCiB7CiAgICAgQVNTRVJUKG1fY2xpZW50KTsKLSAgICBtX2NsaWVudCA9
IDA7CisgICAgbV9jbGllbnQgPSBudWxscHRyOwogfQogCi12b2lkIEZpbGVJY29uTG9hZGVyOjpu
b3RpZnlGaW5pc2hlZChQYXNzUmVmUHRyPEljb24+IGljb24pCit2b2lkIEZpbGVJY29uTG9hZGVy
OjppY29uTG9hZGVkKFJlZlB0cjxJY29uPiYmIGljb24pCiB7CiAgICAgaWYgKG1fY2xpZW50KQot
ICAgICAgICBtX2NsaWVudC0+dXBkYXRlUmVuZGVyaW5nKGljb24pOworICAgICAgICBtX2NsaWVu
dC0+aWNvbkxvYWRlZChXVEZNb3ZlKGljb24pKTsKIH0KIAogRmlsZUljb25Mb2FkZXI6OkZpbGVJ
Y29uTG9hZGVyKEZpbGVJY29uTG9hZGVyQ2xpZW50JiBjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmgKaW5kZXggMzUzMTNkZTNhMjg1MzYwZDk4NjdiODJh
NWFhY2JjMDdkMDVlN2JkNS4uN2RhNzNmYzkyZTE2Y2UzYWNkYmU0OGIyYWUzYzQwMTM2OTA4Mjgz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zNCwxMyArMzQs
MTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBGaWxlSWNvbkxvYWRlcjsKIGNs
YXNzIEljb247CiAKIGNsYXNzIEZpbGVJY29uTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5GaWxlSWNvbkxvYWRlckNsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVSZW5kZXJpbmcoUGFzc1JlZlB0cjxJY29uPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBpY29u
TG9hZGVkKFJlZlB0cjxJY29uPiYmKSA9IDA7CiB9OwogCiBjbGFzcyBGaWxlSWNvbkxvYWRlciB7
CkBAIC00OCw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBGaWxlSWNvbkxvYWRlcihG
aWxlSWNvbkxvYWRlckNsaWVudCYpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBub3RpZnlGaW5pc2hlZChQYXNzUmVmUHRyPEljb24+KTsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGljb25Mb2FkZWQoUmVmUHRyPEljb24+JiYpOwogCiBwcml2YXRl
OgogICAgIEZpbGVJY29uTG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAppbmRleCA0NjdhMTM0
ZDM2YmE1M2E3MmJjMmQ3MGEyZWI5NzY4MWViOGY5M2ZiLi5kYzFhZDczYTFiMDA0YjM2YzllNDc1
NTRiMTE4NDEzZWIwYmY2MGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE3NCw3ICsxNzQsNyBAQCBzdGF0aWMgaW5saW5l
IHZvaWQgZXhlY3V0ZVRhc2soSFRNTENvbnN0cnVjdGlvblNpdGVUYXNrJiB0YXNrKQogCiB2b2lk
IEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjphdHRhY2hMYXRlcihDb250YWluZXJOb2RlJiBwYXJlbnQs
IFJlZjxOb2RlPiYmIGNoaWxkLCBib29sIHNlbGZDbG9zaW5nKQogewotICAgIEFTU0VSVChzY3Jp
cHRpbmdDb250ZW50SXNBbGxvd2VkKG1fcGFyc2VyQ29udGVudFBvbGljeSkgfHwgIWlzPEVsZW1l
bnQ+KGNoaWxkLmdldCgpKSB8fCAhdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShkb3duY2FzdDxF
bGVtZW50PihjaGlsZC5wdHIoKSkpKTsKKyAgICBBU1NFUlQoc2NyaXB0aW5nQ29udGVudElzQWxs
b3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpIHx8ICFpczxFbGVtZW50PihjaGlsZC5nZXQoKSkg
fHwgIWlzU2NyaXB0RWxlbWVudChkb3duY2FzdDxFbGVtZW50PihjaGlsZC5nZXQoKSkpKTsKICAg
ICBBU1NFUlQocGx1Z2luQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpIHx8
ICFjaGlsZC0+aXNQbHVnaW5FbGVtZW50KCkpOwogCiAgICAgaWYgKHNob3VsZEZvc3RlclBhcmVu
dCgpKSB7CkBAIC01NDEsNyArNTQxLDcgQEAgdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5z
ZXJ0Rm9yZWlnbkVsZW1lbnQoQXRvbWljSFRNTFRva2VuJiYgdG9rZW4sIGNvbnN0IEEKICAgICBu
b3RJbXBsZW1lbnRlZCgpOyAvLyBwYXJzZUVycm9yIHdoZW4geG1sbnMgb3IgeG1sbnM6eGxpbmsg
YXJlIHdyb25nLgogCiAgICAgYXV0byBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCh0b2tlbiwgbmFt
ZXNwYWNlVVJJKTsKLSAgICBpZiAoc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNv
bnRlbnRQb2xpY3kpIHx8ICF0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGVsZW1lbnQucHRyKCkp
KQorICAgIGlmIChzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKG1fcGFyc2VyQ29udGVudFBvbGlj
eSkgfHwgIWlzU2NyaXB0RWxlbWVudChlbGVtZW50LmdldCgpKSkKICAgICAgICAgYXR0YWNoTGF0
ZXIoY3VycmVudE5vZGUoKSwgZWxlbWVudC5jb3B5UmVmKCksIHRva2VuLnNlbGZDbG9zaW5nKCkp
OwogICAgIGlmICghdG9rZW4uc2VsZkNsb3NpbmcoKSkKICAgICAgICAgbV9vcGVuRWxlbWVudHMu
cHVzaChIVE1MU3RhY2tJdGVtOjpjcmVhdGUoV1RGTW92ZShlbGVtZW50KSwgV1RGTW92ZSh0b2tl
biksIG5hbWVzcGFjZVVSSSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggYWNlYTBhYWFkMmNkZjQ4MTdhNjVlN2FmOWQ3Yzlm
ZDM1N2RmYzMzNy4uNTE2M2YxYTVmNzgyNDgzYTkwMjRlYzZkYTkxNTNkMDk2YjAzNGM1NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3Bw
CkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJIVE1MVHJlZUJ1aWxkZXIuaCIKICNpbmNsdWRlICJI
VE1MVW5rbm93bkVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2Uu
aCIKKyNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtMjA1LDcgKzIwNiw3IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpydW5TY3JpcHRzRm9y
UGF1c2VkVHJlZUJ1aWxkZXIoKQogICAgICAgICBBU1NFUlQoIW1fdHJlZUJ1aWxkZXItPmhhc1Bh
cnNlckJsb2NraW5nU2NyaXB0V29yaygpKTsKICAgICAgICAgLy8gV2Ugd2lsbCBub3QgaGF2ZSBh
IHNjcmlwdFJ1bm5lciB3aGVuIHBhcnNpbmcgYSBEb2N1bWVudEZyYWdtZW50LgogICAgICAgICBp
ZiAobV9zY3JpcHRSdW5uZXIpCi0gICAgICAgICAgICBtX3NjcmlwdFJ1bm5lci0+ZXhlY3V0ZShX
VEZNb3ZlKHNjcmlwdEVsZW1lbnQpLCBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICAgICAgICAg
IG1fc2NyaXB0UnVubmVyLT5leGVjdXRlKHNjcmlwdEVsZW1lbnQucmVsZWFzZU5vbk51bGwoKSwg
c2NyaXB0U3RhcnRQb3NpdGlvbik7CiAgICAgfQogfQogCkBAIC01MDAsNyArNTAxLDcgQEAgdm9p
ZCBIVE1MRG9jdW1lbnRQYXJzZXI6OndhdGNoRm9yTG9hZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5n
U2NyaXB0KQogICAgIC8vIHNldENsaWVudCB3b3VsZCBjYWxsIG5vdGlmeUZpbmlzaGVkIGlmIHRo
ZSBsb2FkIHdlcmUgY29tcGxldGUuCiAgICAgLy8gQ2FsbGVycyBkbyBub3QgZXhwZWN0IHRvIGJl
IHJlLWVudGVyZWQgZnJvbSB0aGlzIGNhbGwsIHNvIHRoZXkgc2hvdWxkCiAgICAgLy8gbm90IGFu
IGFscmVhZHktbG9hZGVkIFBlbmRpbmdTY3JpcHQuCi0gICAgcGVuZGluZ1NjcmlwdC5zZXRDbGll
bnQodGhpcyk7CisgICAgcGVuZGluZ1NjcmlwdC5zZXRDbGllbnQoKnRoaXMpOwogfQogCiB2b2lk
IEhUTUxEb2N1bWVudFBhcnNlcjo6c3RvcFdhdGNoaW5nRm9yTG9hZChQZW5kaW5nU2NyaXB0JiBw
ZW5kaW5nU2NyaXB0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFNjcmlwdFJ1bm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0
UnVubmVyLmNwcAppbmRleCBjMjU2YjQyOTU2Y2U0ODExYTk0ZjBjYjM0YjhlZDcyNTcyNWU4ZjU0
Li5jMWY0MmMyMjVkMDA3NzlhYjQ0NWMxMTI1MWQzNzNhNDg3ZjJjZDJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcApAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTcwLDcgKzcxLDcg
QEAgSFRNTFNjcmlwdFJ1bm5lcjo6fkhUTUxTY3JpcHRSdW5uZXIoKQogCiB2b2lkIEhUTUxTY3Jp
cHRSdW5uZXI6OmRldGFjaCgpCiB7Ci0gICAgbV9kb2N1bWVudCA9IDA7CisgICAgbV9kb2N1bWVu
dCA9IG51bGxwdHI7CiB9CiAKIHN0YXRpYyBVUkwgZG9jdW1lbnRVUkxGb3JTY3JpcHRFeGVjdXRp
b24oRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtOTksMjkgKzEwMCwxOCBAQCBib29sIEhUTUxTY3Jp
cHRSdW5uZXI6OmlzUGVuZGluZ1NjcmlwdFJlYWR5KGNvbnN0IFBlbmRpbmdTY3JpcHQmIHNjcmlw
dCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRl
UGFyc2luZ0Jsb2NraW5nU2NyaXB0KCkKLXsKLSAgICBBU1NFUlQobV9kb2N1bWVudCk7Ci0gICAg
QVNTRVJUKCFpc0V4ZWN1dGluZ1NjcmlwdCgpKTsKLSAgICBBU1NFUlQobV9kb2N1bWVudC0+aGF2
ZVN0eWxlc2hlZXRzTG9hZGVkKCkpOwotICAgIEFTU0VSVChpc1BlbmRpbmdTY3JpcHRSZWFkeSgq
bV9wYXJzZXJCbG9ja2luZ1NjcmlwdCkpOwotCi0gICAgSW5zZXJ0aW9uUG9pbnRSZWNvcmQgaW5z
ZXJ0aW9uUG9pbnRSZWNvcmQobV9ob3N0LmlucHV0U3RyZWFtKCkpOwotICAgIGV4ZWN1dGVQZW5k
aW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChXVEZNb3ZlKG1fcGFyc2VyQmxvY2tpbmdTY3JpcHQp
KTsKLX0KLQotdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlUGVuZGluZ1NjcmlwdEFuZERp
c3BhdGNoRXZlbnQoUmVmUHRyPFBlbmRpbmdTY3JpcHQ+IHBlbmRpbmdTY3JpcHQpCit2b2lkIEhU
TUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChQZW5k
aW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogewogICAgIC8vIFN0b3Agd2F0Y2hpbmcgbG9hZHMg
YmVmb3JlIGV4ZWN1dGVTY3JpcHQgdG8gcHJldmVudCByZWN1cnNpb24gaWYgdGhlIHNjcmlwdCBy
ZWxvYWRzIGl0c2VsZi4KLSAgICBpZiAocGVuZGluZ1NjcmlwdC0+d2F0Y2hpbmdGb3JMb2FkKCkp
Ci0gICAgICAgIHN0b3BXYXRjaGluZ0ZvckxvYWQoKnBlbmRpbmdTY3JpcHQpOworICAgIGlmIChw
ZW5kaW5nU2NyaXB0LndhdGNoaW5nRm9yTG9hZCgpKQorICAgICAgICBzdG9wV2F0Y2hpbmdGb3JM
b2FkKHBlbmRpbmdTY3JpcHQpOwogCiAgICAgaWYgKCFpc0V4ZWN1dGluZ1NjcmlwdCgpKQogICAg
ICAgICBNaWNyb3Rhc2tRdWV1ZTo6bWFpblRocmVhZFF1ZXVlKCkucGVyZm9ybU1pY3JvdGFza0No
ZWNrcG9pbnQoKTsKIAotICAgIGlmIChhdXRvKiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVt
ZW50SWZQb3NzaWJsZSgmcGVuZGluZ1NjcmlwdC0+ZWxlbWVudCgpKSkgeworICAgIHsKICAgICAg
ICAgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVsSW5jcmVtZW50ZXIobV9zY3Jp
cHROZXN0aW5nTGV2ZWwpOwotICAgICAgICBzY3JpcHRFbGVtZW50LT5leGVjdXRlUGVuZGluZ1Nj
cmlwdCgqcGVuZGluZ1NjcmlwdCk7CisgICAgICAgIHBlbmRpbmdTY3JpcHQuZWxlbWVudCgpLmV4
ZWN1dGVQZW5kaW5nU2NyaXB0KHBlbmRpbmdTY3JpcHQpOwogICAgIH0KICAgICBBU1NFUlQoIWlz
RXhlY3V0aW5nU2NyaXB0KCkpOwogfQpAQCAtMTQwLDE1ICsxMzAsMTQgQEAgdm9pZCBIVE1MU2Ny
aXB0UnVubmVyOjpzdG9wV2F0Y2hpbmdGb3JMb2FkKFBlbmRpbmdTY3JpcHQmIHBlbmRpbmdTY3Jp
cHQpCiAKIC8vIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG1hdGNoIDEwLjIuNS4xMSAiQW4gZW5kIHRh
ZyB3aG9zZSB0YWcgbmFtZSBpcyAnc2NyaXB0JyIKIC8vIFNjcmlwdCBoYW5kbGluZyBsaXZlcyBv
dXRzaWRlIHRoZSB0cmVlIGJ1aWxkZXIgdG8ga2VlcCB0aGUgZWFjaCBjbGFzcyBzaW1wbGUuCi12
b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGUoUGFzc1JlZlB0cjxFbGVtZW50PiBzY3JpcHRF
bGVtZW50LCBjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCit2b2lkIEhU
TUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGUoUmVmPFNjcmlwdEVsZW1lbnQ+JiYgZWxlbWVudCwgY29u
c3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogewotICAgIEFTU0VSVChzY3Jp
cHRFbGVtZW50KTsKICAgICAvLyBGSVhNRTogSWYgc2NyaXB0aW5nIGlzIGRpc2FibGVkLCBhbHdh
eXMganVzdCByZXR1cm4uCiAKICAgICBib29sIGhhZFByZWxvYWRTY2FubmVyID0gbV9ob3N0Lmhh
c1ByZWxvYWRTY2FubmVyKCk7CiAKICAgICAvLyBUcnkgdG8gZXhlY3V0ZSB0aGUgc2NyaXB0IGdp
dmVuIHRvIHVzLgotICAgIHJ1blNjcmlwdChzY3JpcHRFbGVtZW50LmdldCgpLCBzY3JpcHRTdGFy
dFBvc2l0aW9uKTsKKyAgICBydW5TY3JpcHQoZWxlbWVudC5nZXQoKSwgc2NyaXB0U3RhcnRQb3Np
dGlvbik7CiAKICAgICBpZiAoaGFzUGFyc2VyQmxvY2tpbmdTY3JpcHQoKSkgewogICAgICAgICBp
ZiAoaXNFeGVjdXRpbmdTY3JpcHQoKSkKQEAgLTE2Nyw4ICsxNTYsMTMgQEAgYm9vbCBIVE1MU2Ny
aXB0UnVubmVyOjpoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdCgpIGNvbnN0CiAKIHZvaWQgSFRNTFNj
cmlwdFJ1bm5lcjo6ZXhlY3V0ZVBhcnNpbmdCbG9ja2luZ1NjcmlwdHMoKQogewotICAgIHdoaWxl
IChoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdCgpICYmIGlzUGVuZGluZ1NjcmlwdFJlYWR5KCptX3Bh
cnNlckJsb2NraW5nU2NyaXB0KSkKLSAgICAgICAgZXhlY3V0ZVBhcnNpbmdCbG9ja2luZ1Njcmlw
dCgpOworICAgIHdoaWxlIChoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdCgpICYmIGlzUGVuZGluZ1Nj
cmlwdFJlYWR5KCptX3BhcnNlckJsb2NraW5nU2NyaXB0KSkgeworICAgICAgICBBU1NFUlQobV9k
b2N1bWVudCk7CisgICAgICAgIEFTU0VSVCghaXNFeGVjdXRpbmdTY3JpcHQoKSk7CisgICAgICAg
IEFTU0VSVChtX2RvY3VtZW50LT5oYXZlU3R5bGVzaGVldHNMb2FkZWQoKSk7CisgICAgICAgIElu
c2VydGlvblBvaW50UmVjb3JkIGluc2VydGlvblBvaW50UmVjb3JkKG1faG9zdC5pbnB1dFN0cmVh
bSgpKTsKKyAgICAgICAgZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRjaEV2ZW50KG1fcGFy
c2VyQmxvY2tpbmdTY3JpcHQucmVsZWFzZU5vbk51bGwoKS5nZXQoKSk7CisgICAgfQogfQogCiB2
b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvckxvYWQoUGVuZGlu
Z1NjcmlwdCYgcGVuZGluZ1NjcmlwdCkKQEAgLTIwMSw3ICsxOTUsNyBAQCBib29sIEhUTUxTY3Jp
cHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclBhcnNpbmcoKQogICAgICAgICAgICAg
d2F0Y2hGb3JMb2FkKG1fc2NyaXB0c1RvRXhlY3V0ZUFmdGVyUGFyc2luZy5maXJzdCgpKTsKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQotICAgICAgICBleGVjdXRlUGVuZGlu
Z1NjcmlwdEFuZERpc3BhdGNoRXZlbnQobV9zY3JpcHRzVG9FeGVjdXRlQWZ0ZXJQYXJzaW5nLnRh
a2VGaXJzdCgpKTsKKyAgICAgICAgZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRjaEV2ZW50
KG1fc2NyaXB0c1RvRXhlY3V0ZUFmdGVyUGFyc2luZy50YWtlRmlyc3QoKS5nZXQoKSk7CiAgICAg
ICAgIC8vIEZJWE1FOiBXaGF0IGlzIHRoaXMgbV9kb2N1bWVudCBjaGVjayBmb3I/CiAgICAgICAg
IGlmICghbV9kb2N1bWVudCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIwOSwxOCAr
MjAzLDE3IEBAIGJvb2wgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9y
UGFyc2luZygpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBSZWY8UGVuZGluZ1Njcmlw
dD4gcmVxdWVzdFBlbmRpbmdTY3JpcHQoRWxlbWVudCogc2NyaXB0KQorc3RhdGljIFJlZjxQZW5k
aW5nU2NyaXB0PiByZXF1ZXN0UGVuZGluZ1NjcmlwdChTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVt
ZW50KQogewotICAgIGF1dG8mIHNjcmlwdEVsZW1lbnQgPSAqdG9TY3JpcHRFbGVtZW50SWZQb3Nz
aWJsZShzY3JpcHQpOwogICAgIEFTU0VSVChzY3JpcHRFbGVtZW50LndpbGxCZVBhcnNlckV4ZWN1
dGVkKCkpOwogICAgIEFTU0VSVChzY3JpcHRFbGVtZW50LmxvYWRhYmxlU2NyaXB0KCkpOwotICAg
IHJldHVybiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoKnNjcmlwdCwgKnNjcmlwdEVsZW1lbnQubG9h
ZGFibGVTY3JpcHQoKSk7CisgICAgcmV0dXJuIFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShzY3JpcHRF
bGVtZW50LCAqc2NyaXB0RWxlbWVudC5sb2FkYWJsZVNjcmlwdCgpKTsKIH0KIAotdm9pZCBIVE1M
U2NyaXB0UnVubmVyOjpyZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KEVsZW1lbnQqIGVsZW1l
bnQpCit2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQo
U2NyaXB0RWxlbWVudCYgc2NyaXB0RWxlbWVudCkKIHsKICAgICBBU1NFUlQoIW1fcGFyc2VyQmxv
Y2tpbmdTY3JpcHQpOwotICAgIG1fcGFyc2VyQmxvY2tpbmdTY3JpcHQgPSByZXF1ZXN0UGVuZGlu
Z1NjcmlwdChlbGVtZW50KTsKKyAgICBtX3BhcnNlckJsb2NraW5nU2NyaXB0ID0gcmVxdWVzdFBl
bmRpbmdTY3JpcHQoc2NyaXB0RWxlbWVudCk7CiAgICAgQVNTRVJUKG1fcGFyc2VyQmxvY2tpbmdT
Y3JpcHQtPm5lZWRzTG9hZGluZygpKTsKIAogICAgIC8vIFdlIG9ubHkgY2FyZSBhYm91dCBhIGxv
YWQgY2FsbGJhY2sgaWYgTG9hZGFibGVTY3JpcHQgaXMgbm90IGFscmVhZHkKQEAgLTIzMCw1NSAr
MjIzLDQ0IEBAIHZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6cmVxdWVzdFBhcnNpbmdCbG9ja2luZ1Nj
cmlwdChFbGVtZW50KiBlbGVtZW50KQogICAgICAgICB3YXRjaEZvckxvYWQoKm1fcGFyc2VyQmxv
Y2tpbmdTY3JpcHQpOwogfQogCi12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3REZWZlcnJl
ZFNjcmlwdChFbGVtZW50KiBlbGVtZW50KQordm9pZCBIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0
RGVmZXJyZWRTY3JpcHQoU2NyaXB0RWxlbWVudCYgc2NyaXB0RWxlbWVudCkKIHsKLSAgICBhdXRv
IHBlbmRpbmdTY3JpcHQgPSByZXF1ZXN0UGVuZGluZ1NjcmlwdChlbGVtZW50KTsKKyAgICBhdXRv
IHBlbmRpbmdTY3JpcHQgPSByZXF1ZXN0UGVuZGluZ1NjcmlwdChzY3JpcHRFbGVtZW50KTsKICAg
ICBBU1NFUlQocGVuZGluZ1NjcmlwdC0+bmVlZHNMb2FkaW5nKCkpOwogICAgIG1fc2NyaXB0c1Rv
RXhlY3V0ZUFmdGVyUGFyc2luZy5hcHBlbmQoV1RGTW92ZShwZW5kaW5nU2NyaXB0KSk7CiB9CiAK
IC8vIFRoaXMgbWV0aG9kIGlzIG1lYW50IHRvIG1hdGNoIHRoZSBIVE1MNSBkZWZpbml0aW9uIG9m
ICJydW5uaW5nIGEgc2NyaXB0IgogLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2Uvc2NyaXB0aW5nLTEuaHRtbCNydW5uaW5nLWEtc2Ny
aXB0Ci12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJ1blNjcmlwdChFbGVtZW50KiBzY3JpcHQsIGNv
bnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKK3ZvaWQgSFRNTFNjcmlwdFJ1
bm5lcjo6cnVuU2NyaXB0KFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQsIGNvbnN0IFRleHRQ
b3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKIHsKICAgICBBU1NFUlQobV9kb2N1bWVudCk7
CiAgICAgQVNTRVJUKCFoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdCgpKTsKLSAgICB7Ci0gICAgICAg
IFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxl
KHNjcmlwdCk7Ci0KLSAgICAgICAgLy8gVGhpcyBjb250YWlucyBib3RoIGFuZCBBU1NFUlRJT04g
YW5kIGEgbnVsbCBjaGVjayBzaW5jZSB3ZSBzaG91bGQgbm90Ci0gICAgICAgIC8vIGJlIGdldHRp
bmcgaW50byB0aGUgY2FzZSBvZiBhIG51bGwgc2NyaXB0IGVsZW1lbnQsIGJ1dCBzZWVtIHRvIGJl
IGZyb20KLSAgICAgICAgLy8gdGltZSB0byB0aW1lLiBUaGUgYXNzZXJ0aW9uIGlzIGxlZnQgaW4g
dG8gaGVscCBmaW5kIHRob3NlIGNhc2VzIGFuZAotICAgICAgICAvLyBpcyBiZWluZyB0cmFja2Vk
IGJ5IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA1NTk+LgotICAg
ICAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7Ci0gICAgICAgIGlmICghc2NyaXB0RWxlbWVudCkK
LSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAvLyBGSVhNRTogVGhpcyBtYXkgYmUgdG9v
IGFncmVzc2l2ZSBhcyB3ZSBhbHdheXMgZGVsaXZlciBtdXRhdGlvbnMgYXQKLSAgICAgICAgLy8g
ZXZlcnkgc2NyaXB0IGVsZW1lbnQsIGV2ZW4gaWYgaXQncyBub3QgcmVhZHkgdG8gZXhlY3V0ZSB5
ZXQuIFRoZXJlJ3MKLSAgICAgICAgLy8gdW5mb3J0dWFudGVseSBubyBvYnZpb3VzIHdheSB0byB0
ZWxsIGlmIHByZXBhcmVTY3JpcHQgaXMgZ29pbmcgdG8KLSAgICAgICAgLy8gZXhlY3V0ZSB0aGUg
c2NyaXB0IGZyb20gb3V0IGhlcmUuCi0gICAgICAgIGlmICghaXNFeGVjdXRpbmdTY3JpcHQoKSkK
LSAgICAgICAgICAgIE1pY3JvdGFza1F1ZXVlOjptYWluVGhyZWFkUXVldWUoKS5wZXJmb3JtTWlj
cm90YXNrQ2hlY2twb2ludCgpOwotCi0gICAgICAgIEluc2VydGlvblBvaW50UmVjb3JkIGluc2Vy
dGlvblBvaW50UmVjb3JkKG1faG9zdC5pbnB1dFN0cmVhbSgpKTsKLSAgICAgICAgTmVzdGluZ0xl
dmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVsSW5jcmVtZW50ZXIobV9zY3JpcHROZXN0aW5nTGV2
ZWwpOwogCi0gICAgICAgIHNjcmlwdEVsZW1lbnQtPnByZXBhcmVTY3JpcHQoc2NyaXB0U3RhcnRQ
b3NpdGlvbik7Ci0KLSAgICAgICAgaWYgKCFzY3JpcHRFbGVtZW50LT53aWxsQmVQYXJzZXJFeGVj
dXRlZCgpKQotICAgICAgICAgICAgcmV0dXJuOworICAgIC8vIEZJWE1FOiBUaGlzIG1heSBiZSB0
b28gYWdyZXNzaXZlIGFzIHdlIGFsd2F5cyBkZWxpdmVyIG11dGF0aW9ucyBhdAorICAgIC8vIGV2
ZXJ5IHNjcmlwdCBlbGVtZW50LCBldmVuIGlmIGl0J3Mgbm90IHJlYWR5IHRvIGV4ZWN1dGUgeWV0
LiBUaGVyZSdzCisgICAgLy8gdW5mb3J0dW5hdGVseSBubyBvYnZpb3VzIHdheSB0byB0ZWxsIGlm
IHByZXBhcmVTY3JpcHQgaXMgZ29pbmcgdG8KKyAgICAvLyBleGVjdXRlIHRoZSBzY3JpcHQgYmVm
b3JlIGNhbGxpbmcgaXQuCisgICAgaWYgKCFpc0V4ZWN1dGluZ1NjcmlwdCgpKQorICAgICAgICBN
aWNyb3Rhc2tRdWV1ZTo6bWFpblRocmVhZFF1ZXVlKCkucGVyZm9ybU1pY3JvdGFza0NoZWNrcG9p
bnQoKTsKIAotICAgICAgICBpZiAoc2NyaXB0RWxlbWVudC0+d2lsbEV4ZWN1dGVXaGVuRG9jdW1l
bnRGaW5pc2hlZFBhcnNpbmcoKSkKLSAgICAgICAgICAgIHJlcXVlc3REZWZlcnJlZFNjcmlwdChz
Y3JpcHQpOwotICAgICAgICBlbHNlIGlmIChzY3JpcHRFbGVtZW50LT5yZWFkeVRvQmVQYXJzZXJF
eGVjdXRlZCgpKSB7Ci0gICAgICAgICAgICBpZiAobV9zY3JpcHROZXN0aW5nTGV2ZWwgPT0gMSkK
LSAgICAgICAgICAgICAgICBtX3BhcnNlckJsb2NraW5nU2NyaXB0ID0gUGVuZGluZ1NjcmlwdDo6
Y3JlYXRlKCpzY3JpcHQsIHNjcmlwdFN0YXJ0UG9zaXRpb24pOwotICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgIHNjcmlwdEVsZW1lbnQtPmV4ZWN1dGVDbGFzc2ljU2NyaXB0KFNjcmlw
dFNvdXJjZUNvZGUoc2NyaXB0LT50ZXh0Q29udGVudCgpLCBkb2N1bWVudFVSTEZvclNjcmlwdEV4
ZWN1dGlvbihtX2RvY3VtZW50KSwgc2NyaXB0U3RhcnRQb3NpdGlvbikpOwotICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgIHJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQoc2NyaXB0KTsKLSAg
ICB9CisgICAgSW5zZXJ0aW9uUG9pbnRSZWNvcmQgaW5zZXJ0aW9uUG9pbnRSZWNvcmQobV9ob3N0
LmlucHV0U3RyZWFtKCkpOworICAgIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyIG5lc3RpbmdMZXZl
bEluY3JlbWVudGVyKG1fc2NyaXB0TmVzdGluZ0xldmVsKTsKKworICAgIHNjcmlwdEVsZW1lbnQu
cHJlcGFyZVNjcmlwdChzY3JpcHRTdGFydFBvc2l0aW9uKTsKKworICAgIGlmICghc2NyaXB0RWxl
bWVudC53aWxsQmVQYXJzZXJFeGVjdXRlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
c2NyaXB0RWxlbWVudC53aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlzaGVkUGFyc2luZygpKQor
ICAgICAgICByZXF1ZXN0RGVmZXJyZWRTY3JpcHQoc2NyaXB0RWxlbWVudCk7CisgICAgZWxzZSBp
ZiAoc2NyaXB0RWxlbWVudC5yZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgpKSB7CisgICAgICAgIGlm
IChtX3NjcmlwdE5lc3RpbmdMZXZlbCA9PSAxKQorICAgICAgICAgICAgbV9wYXJzZXJCbG9ja2lu
Z1NjcmlwdCA9IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShzY3JpcHRFbGVtZW50LCBzY3JpcHRTdGFy
dFBvc2l0aW9uKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2NyaXB0RWxlbWVudC5leGVj
dXRlQ2xhc3NpY1NjcmlwdChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdEVsZW1lbnQuZWxlbWVudCgp
LnRleHRDb250ZW50KCksIGRvY3VtZW50VVJMRm9yU2NyaXB0RXhlY3V0aW9uKG1fZG9jdW1lbnQp
LCBzY3JpcHRTdGFydFBvc2l0aW9uKSk7CisgICAgfSBlbHNlCisgICAgICAgIHJlcXVlc3RQYXJz
aW5nQmxvY2tpbmdTY3JpcHQoc2NyaXB0RWxlbWVudCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuaAppbmRleCA3NjgwMGQ3MTNjZTdkMmU0
NjM1YTY2MjM1YjE2N2MxOWY0NTdjODAzLi5jODY3NDdkOTFiYWUwNWU0Mjc2NmRkZmZlZDU5YTA4
M2U3YWExZmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2Ny
aXB0UnVubmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1
bm5lci5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUs
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzIsMTMgKzMzLDEyIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERv
Y3VtZW50OwotY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgSFRNTFNjcmlwdFJ1
bm5lckhvc3Q7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogCiBjbGFzcyBIVE1MU2NyaXB0UnVu
bmVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShIVE1MU2NyaXB0UnVubmVyKTsgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CiAgICAgSFRNTFNjcmlwdFJ1bm5lcihEb2N1bWVudCYsIEhUTUxTY3JpcHRSdW5uZXJIb3N0Jik7
CiAgICAgfkhUTUxTY3JpcHRSdW5uZXIoKTsKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGV0YWNoKCk7CiAKICAgICAvLyBQcm9jZXNzZXMgdGhlIHBhc3NlZCBpbiBzY3JpcHQg
YW5kIGFueSBwZW5kaW5nIHNjcmlwdHMgaWYgcG9zc2libGUuCi0gICAgdm9pZCBleGVjdXRlKFBh
c3NSZWZQdHI8RWxlbWVudD4gc2NyaXB0VG9Qcm9jZXNzLCBjb25zdCBUZXh0UG9zaXRpb24mIHNj
cmlwdFN0YXJ0UG9zaXRpb24pOworICAgIHZvaWQgZXhlY3V0ZShSZWY8U2NyaXB0RWxlbWVudD4m
JiwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKIAogICAgIHZvaWQg
ZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9yTG9hZChQZW5kaW5nU2NyaXB0Jik7CiAgICAgYm9vbCBo
YXNTY3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNTY3Jp
cHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzOyB9CkBAIC01OSwxNiArNTksMTQgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdDsKIAotICAgIHZvaWQgZXhlY3V0ZVBh
cnNpbmdCbG9ja2luZ1NjcmlwdCgpOwotICAgIHZvaWQgZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmRE
aXNwYXRjaEV2ZW50KFJlZlB0cjxQZW5kaW5nU2NyaXB0Pik7CisgICAgdm9pZCBleGVjdXRlUGVu
ZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQoUGVuZGluZ1NjcmlwdCYpOwogICAgIHZvaWQgZXhl
Y3V0ZVBhcnNpbmdCbG9ja2luZ1NjcmlwdHMoKTsKIAotICAgIHZvaWQgcmVxdWVzdFBhcnNpbmdC
bG9ja2luZ1NjcmlwdChFbGVtZW50Kik7Ci0gICAgdm9pZCByZXF1ZXN0RGVmZXJyZWRTY3JpcHQo
RWxlbWVudCopOworICAgIHZvaWQgcmVxdWVzdFBhcnNpbmdCbG9ja2luZ1NjcmlwdChTY3JpcHRF
bGVtZW50Jik7CisgICAgdm9pZCByZXF1ZXN0RGVmZXJyZWRTY3JpcHQoU2NyaXB0RWxlbWVudCYp
OwogCi0gICAgdm9pZCBydW5TY3JpcHQoRWxlbWVudCosIGNvbnN0IFRleHRQb3NpdGlvbiYgc2Ny
aXB0U3RhcnRQb3NpdGlvbik7CisgICAgdm9pZCBydW5TY3JpcHQoU2NyaXB0RWxlbWVudCYsIGNv
bnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CiAKLSAgICAvLyBIZWxwZXJz
IGZvciBkZWFsaW5nIHdpdGggSFRNTFNjcmlwdFJ1bm5lckhvc3QKICAgICB2b2lkIHdhdGNoRm9y
TG9hZChQZW5kaW5nU2NyaXB0Jik7CiAgICAgdm9pZCBzdG9wV2F0Y2hpbmdGb3JMb2FkKFBlbmRp
bmdTY3JpcHQmKTsKICAgICBib29sIGlzUGVuZGluZ1NjcmlwdFJlYWR5KGNvbnN0IFBlbmRpbmdT
Y3JpcHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVl
QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIu
Y3BwCmluZGV4IDQ1MjRjMWVhYWNmZDkzMjkwMjZjNjZjYjcyYWI1NGIwMDhmNjJhNGMuLmQ0Zjg0
ZDJmYTU1ZDU5OTBlNmY3NzVjZGYwZTQ0YTMyMGM3YWM2MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSwxMCArMzUsMTIgQEAK
ICNpbmNsdWRlICJIVE1MT3B0R3JvdXBFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCisjaW5jbHVkZSAiSFRNTFNj
cmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGFibGVFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5o
IgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiU1ZHU2NyaXB0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIlhMaW5rTmFtZXMuaCIKICNpbmNsdWRlICJYTUxOU05hbWVzLmgiCiAj
aW5jbHVkZSAiWE1MTmFtZXMuaCIKQEAgLTU3LDEwICs1OSwxMiBAQCBDdXN0b21FbGVtZW50Q29u
c3RydWN0aW9uRGF0YTo6Q3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGEoUmVmPEpTQ3VzdG9t
RWxlbWVudAogICAgIDogZWxlbWVudEludGVyZmFjZShXVEZNb3ZlKGN1c3RvbUVsZW1lbnRJbnRl
cmZhY2UpKQogICAgICwgbmFtZShuYW1lKQogICAgICwgYXR0cmlidXRlcyhXVEZNb3ZlKGF0dHJp
YnV0ZXMpKQoteyB9Cit7Cit9CiAKIEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhOjp+Q3Vz
dG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGEoKQoteyB9Cit7Cit9CiAKIG5hbWVzcGFjZSB7CiAK
QEAgLTMxOCw3ICszMjIsNyBAQCBpbmxpbmUgSFRNTFN0YWNrSXRlbSYgSFRNTFRyZWVCdWlsZGVy
OjpGcmFnbWVudFBhcnNpbmdDb250ZXh0Ojpjb250ZXh0RWxlbWVudFN0YQogICAgIHJldHVybiAq
bV9jb250ZXh0RWxlbWVudFN0YWNrSXRlbTsKIH0KIAotUmVmUHRyPEVsZW1lbnQ+IEhUTUxUcmVl
QnVpbGRlcjo6dGFrZVNjcmlwdFRvUHJvY2VzcyhUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9z
aXRpb24pCitSZWZQdHI8U2NyaXB0RWxlbWVudD4gSFRNTFRyZWVCdWlsZGVyOjp0YWtlU2NyaXB0
VG9Qcm9jZXNzKFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKIHsKICAgICBBU1NF
UlQoIW1fZGVzdHJveWVkKTsKIApAQCAtMjA1Nyw3ICsyMDYxLDcgQEAgdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuJiYgdG9rZW4pCiAgICAgICAgICAg
ICAvLyBQYXVzZSBvdXJzZWx2ZXMgc28gdGhhdCBwYXJzaW5nIHN0b3BzIHVudGlsIHRoZSBzY3Jp
cHQgY2FuIGJlIHByb2Nlc3NlZCBieSB0aGUgY2FsbGVyLgogICAgICAgICAgICAgQVNTRVJUKG1f
dHJlZS5jdXJyZW50U3RhY2tJdGVtKCkuaGFzVGFnTmFtZShzY3JpcHRUYWcpKTsKICAgICAgICAg
ICAgIGlmIChzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKG1fdHJlZS5wYXJzZXJDb250ZW50UG9s
aWN5KCkpKQotICAgICAgICAgICAgICAgIG1fc2NyaXB0VG9Qcm9jZXNzID0gJm1fdHJlZS5jdXJy
ZW50RWxlbWVudCgpOworICAgICAgICAgICAgICAgIG1fc2NyaXB0VG9Qcm9jZXNzID0gJmRvd25j
YXN0PEhUTUxTY3JpcHRFbGVtZW50PihtX3RyZWUuY3VycmVudEVsZW1lbnQoKSk7CiAgICAgICAg
ICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCkucG9wKCk7CiAgICAgICAgICAgICBtX2luc2VydGlv
bk1vZGUgPSBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZTsKIApAQCAtMjc4Nyw3ICsyNzkxLDcgQEAg
dm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQoQXRvbWlj
SFRNTFRva2VuJiYgdG9rZW4pCiAKICAgICAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBTVkdOYW1l
czo6c2NyaXB0VGFnICYmIG1fdHJlZS5jdXJyZW50U3RhY2tJdGVtKCkuaGFzVGFnTmFtZShTVkdO
YW1lczo6c2NyaXB0VGFnKSkgewogICAgICAgICAgICAgaWYgKHNjcmlwdGluZ0NvbnRlbnRJc0Fs
bG93ZWQobV90cmVlLnBhcnNlckNvbnRlbnRQb2xpY3koKSkpCi0gICAgICAgICAgICAgICAgbV9z
Y3JpcHRUb1Byb2Nlc3MgPSAmbV90cmVlLmN1cnJlbnRFbGVtZW50KCk7CisgICAgICAgICAgICAg
ICAgbV9zY3JpcHRUb1Byb2Nlc3MgPSAmZG93bmNhc3Q8U1ZHU2NyaXB0RWxlbWVudD4obV90cmVl
LmN1cnJlbnRFbGVtZW50KCkpOwogICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLnBv
cCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCmluZGV4IGQ3MDkyOWY2MGE2MGJjNjU5NmY2Nzkw
Y2QwMGRlZjE2Zjk4NTU5YTUuLmFlY2NhYjQ1ZGE1NTBjZTM5YTY4OTY4MGIwY2Y0NGNjNTAyZjFm
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCkBA
IC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBKU0N1c3RvbUVs
ZW1lbnRJbnRlcmZhY2U7CiBjbGFzcyBIVE1MRG9jdW1lbnRQYXJzZXI7CitjbGFzcyBTY3JpcHRF
bGVtZW50OwogCiBzdHJ1Y3QgQ3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGEgewogICAgIEN1
c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhKFJlZjxKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U+
JiYsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPEF0dHJpYnV0ZT4mJik7CkBAIC02
Miw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1BhcnNlckJsb2NraW5nU2NyaXB0V29y
aygpIGNvbnN0OwogCiAgICAgLy8gTXVzdCBiZSBjYWxsZWQgdG8gdGFrZSB0aGUgcGFyc2VyLWJs
b2NraW5nIHNjcmlwdCBiZWZvcmUgY2FsbGluZyB0aGUgcGFyc2VyIGFnYWluLgotICAgIFJlZlB0
cjxFbGVtZW50PiB0YWtlU2NyaXB0VG9Qcm9jZXNzKFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQ
b3NpdGlvbik7CisgICAgUmVmUHRyPFNjcmlwdEVsZW1lbnQ+IHRha2VTY3JpcHRUb1Byb2Nlc3Mo
VGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YT4gdGFrZUN1c3RvbUVsZW1lbnRDb25zdHJ1
Y3Rpb25EYXRhKCkgeyByZXR1cm4gV1RGTW92ZShtX2N1c3RvbUVsZW1lbnRUb0NvbnN0cnVjdCk7
IH0KICAgICB2b2lkIGRpZENyZWF0ZUN1c3RvbU9yQ2FsbGJhY2tFbGVtZW50KFJlZjxFbGVtZW50
PiYmLCBDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YSYpOwpAQCAtMjA2LDcgKzIwNyw3IEBA
IHByaXZhdGU6CiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uv
c3ludGF4Lmh0bWwjY29uY2VwdC1wZW5kaW5nLXRhYmxlLWNoYXItdG9rZW5zCiAgICAgU3RyaW5n
QnVpbGRlciBtX3BlbmRpbmdUYWJsZUNoYXJhY3RlcnM7CiAKLSAgICBSZWZQdHI8RWxlbWVudD4g
bV9zY3JpcHRUb1Byb2Nlc3M7IC8vIDxzY3JpcHQ+IHRhZyB3aGljaCBuZWVkcyBwcm9jZXNzaW5n
IGJlZm9yZSByZXN1bWluZyB0aGUgcGFyc2VyLgorICAgIFJlZlB0cjxTY3JpcHRFbGVtZW50PiBt
X3NjcmlwdFRvUHJvY2VzczsgLy8gPHNjcmlwdD4gdGFnIHdoaWNoIG5lZWRzIHByb2Nlc3Npbmcg
YmVmb3JlIHJlc3VtaW5nIHRoZSBwYXJzZXIuCiAgICAgVGV4dFBvc2l0aW9uIG1fc2NyaXB0VG9Q
cm9jZXNzU3RhcnRQb3NpdGlvbjsgLy8gU3RhcnRpbmcgbGluZSBudW1iZXIgb2YgdGhlIHNjcmlw
dCB0YWcgbmVlZGluZyBwcm9jZXNzaW5nLgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEN1c3RvbUVs
ZW1lbnRDb25zdHJ1Y3Rpb25EYXRhPiBtX2N1c3RvbUVsZW1lbnRUb0NvbnN0cnVjdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4
IGFkNWY2ZTc4ZTM4MWFhZGNjYzZiOTFiYTk3Y2E0MjU1ODA0Y2I5NzAuLmY5ODgyNWIyMDYwOTdm
MmM0YThjMWZlODRiNDBiNmQ4ZjBhNWVhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1
ZGUgIlRleHREb2N1bWVudFBhcnNlci5oIgogCiAjaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgi
CisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwCmlu
ZGV4IDNmNDNlMDRkNWRlZWI3ZDI5MzExNmU4ZGVjMjNjN2IwYmY3ZmI3NzkuLjliNTBiYTNiMTQz
NjhjMjNkMTM2NjExZWY4Yzk0ODZkY2JlY2MzNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSw3ICs0Niw2IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogWFNTQXVkaXRvckRlbGVnYXRlOjpYU1NBdWRpdG9yRGVsZWdhdGUoRG9jdW1l
bnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKLSAgICAsIG1fZGlkU2Vu
ZE5vdGlmaWNhdGlvbnMoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIH0K
QEAgLTY5LDIyICs2OSwyMiBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBidWlsZENvbnNvbGVFcnJv
cihjb25zdCBYU1NJbmZvJiB4c3NJbmZvKQogICAgIHJldHVybiBtZXNzYWdlLnRvU3RyaW5nKCk7
CiB9CiAKLVBhc3NSZWZQdHI8Rm9ybURhdGE+IFhTU0F1ZGl0b3JEZWxlZ2F0ZTo6Z2VuZXJhdGVW
aW9sYXRpb25SZXBvcnQoY29uc3QgWFNTSW5mbyYgeHNzSW5mbykKK1JlZjxGb3JtRGF0YT4gWFNT
QXVkaXRvckRlbGVnYXRlOjpnZW5lcmF0ZVZpb2xhdGlvblJlcG9ydChjb25zdCBYU1NJbmZvJiB4
c3NJbmZvKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBGcmFtZUxvYWRl
ciYgZnJhbWVMb2FkZXIgPSBtX2RvY3VtZW50LmZyYW1lKCktPmxvYWRlcigpOworICAgIGF1dG8m
IGZyYW1lTG9hZGVyID0gbV9kb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKTsKICAgICBTdHJpbmcg
aHR0cEJvZHk7CiAgICAgaWYgKGZyYW1lTG9hZGVyLmRvY3VtZW50TG9hZGVyKCkpIHsKLSAgICAg
ICAgaWYgKEZvcm1EYXRhKiBmb3JtRGF0YSA9IGZyYW1lTG9hZGVyLmRvY3VtZW50TG9hZGVyKCkt
Pm9yaWdpbmFsUmVxdWVzdCgpLmh0dHBCb2R5KCkpCisgICAgICAgIGlmIChhdXRvKiBmb3JtRGF0
YSA9IGZyYW1lTG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPm9yaWdpbmFsUmVxdWVzdCgpLmh0dHBC
b2R5KCkpCiAgICAgICAgICAgICBodHRwQm9keSA9IGZvcm1EYXRhLT5mbGF0dGVuVG9TdHJpbmco
KTsKICAgICB9CiAKLSAgICBSZWY8SW5zcGVjdG9yT2JqZWN0PiByZXBvcnREZXRhaWxzID0gSW5z
cGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBhdXRvIHJlcG9ydERldGFpbHMgPSBJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpOwogICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygicmVxdWVz
dC11cmwiLCB4c3NJbmZvLm1fb3JpZ2luYWxVUkwpOwogICAgIHJlcG9ydERldGFpbHMtPnNldFN0
cmluZygicmVxdWVzdC1ib2R5IiwgaHR0cEJvZHkpOwogCi0gICAgUmVmPEluc3BlY3Rvck9iamVj
dD4gcmVwb3J0T2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBhdXRvIHJl
cG9ydE9iamVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAgICAgcmVwb3J0T2JqZWN0
LT5zZXRPYmplY3QoInhzcy1yZXBvcnQiLCBXVEZNb3ZlKHJlcG9ydERldGFpbHMpKTsKIAogICAg
IHJldHVybiBGb3JtRGF0YTo6Y3JlYXRlKHJlcG9ydE9iamVjdC0+dG9KU09OU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NB
dWRpdG9yRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JE
ZWxlZ2F0ZS5oCmluZGV4IDBhZTI3NGIzMTkyZGZhNDdhNjNjZTk2YTJhOTc5NDY1ZWM4ODA4ZWYu
LjY3YTMyZWQ5MzBkN2Q5ZGQ0ZGFjNDA4OTIyMGJkZjNmMmFkNzZlODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oCkBAIC0xLDUgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDEzICsyOCwxNCBAQAog
CiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBGb3JtRGF0YTsKIAorLy8gRklYTUU6IFNob3VsZCBjaGFu
Z2UgaW50byBhIHN0cnVjdC4KKy8vIEZJWE1FOiBTaG91bGQgcmV0dXJuIGJ5IHZhbHVlIGluc3Rl
YWQgb2YgdXNpbmcgYSB1bmlxdWVfcHRyLgogY2xhc3MgWFNTSW5mbyB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC01MSw3ICs1Myw2IEBAIHB1YmxpYzoKIH07CiAK
IGNsYXNzIFhTU0F1ZGl0b3JEZWxlZ2F0ZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoWFNT
QXVkaXRvckRlbGVnYXRlKTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBYU1NBdWRpdG9yRGVsZWdh
dGUoRG9jdW1lbnQmKTsKIApAQCAtNTksMTAgKzYwLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFJlcG9ydFVSTChjb25zdCBVUkwmIHVybCkgeyBtX3JlcG9ydFVSTCA9IHVybDsgfQogCiBwcml2
YXRlOgotICAgIFBhc3NSZWZQdHI8Rm9ybURhdGE+IGdlbmVyYXRlVmlvbGF0aW9uUmVwb3J0KGNv
bnN0IFhTU0luZm8mKTsKKyAgICBSZWY8Rm9ybURhdGE+IGdlbmVyYXRlVmlvbGF0aW9uUmVwb3J0
KGNvbnN0IFhTU0luZm8mKTsKIAogICAgIERvY3VtZW50JiBtX2RvY3VtZW50OwotICAgIGJvb2wg
bV9kaWRTZW5kTm90aWZpY2F0aW9uczsKKyAgICBib29sIG1fZGlkU2VuZE5vdGlmaWNhdGlvbnMg
eyBmYWxzZSB9OwogICAgIFVSTCBtX3JlcG9ydFVSTDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0F1ZGlvVHJhY2suY3BwCmluZGV4IDhjMzU2Zjc5MTVkNDk4Y2UzNDEyZjc5ODgyZjhk
MDYwYjA4NTYxOTIuLmVlYjA1NTM3ZjY0NTM0ZjY1NTU3YTZjZjQ0ZjM4MDFkMWQzNmJiZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcApAQCAtMSw2ICsxLDYgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
MzAsMTMgKzMwLDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF1
ZGlvVHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotI2luY2x1ZGUgIkF1ZGlv
VHJhY2suaCIKLQotI2luY2x1ZGUgIkF1ZGlvVHJhY2tMaXN0LmgiCi0jaW5jbHVkZSAiRXZlbnQu
aCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CiAKQEAgLTc4LDEwICs3NSwxMCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEF1ZGlv
VHJhY2s6OmNvbW1lbnRhcnlLZXl3b3JkKCkKICAgICByZXR1cm4gY29tbWVudGFyeTsKIH0KIAot
QXVkaW9UcmFjazo6QXVkaW9UcmFjayhBdWRpb1RyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQ
dHI8QXVkaW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKLSAgICA6IE1lZGlhVHJhY2tCYXNl
KE1lZGlhVHJhY2tCYXNlOjpBdWRpb1RyYWNrLCB0cmFja1ByaXZhdGUtPmlkKCksIHRyYWNrUHJp
dmF0ZS0+bGFiZWwoKSwgdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpKQotICAgICwgbV9lbmFibGVk
KHRyYWNrUHJpdmF0ZS0+ZW5hYmxlZCgpKQotICAgICwgbV9jbGllbnQoY2xpZW50KQorQXVkaW9U
cmFjazo6QXVkaW9UcmFjayhBdWRpb1RyYWNrQ2xpZW50JiBjbGllbnQsIEF1ZGlvVHJhY2tQcml2
YXRlJiB0cmFja1ByaXZhdGUpCisgICAgOiBNZWRpYVRyYWNrQmFzZShNZWRpYVRyYWNrQmFzZTo6
QXVkaW9UcmFjaywgdHJhY2tQcml2YXRlLmlkKCksIHRyYWNrUHJpdmF0ZS5sYWJlbCgpLCB0cmFj
a1ByaXZhdGUubGFuZ3VhZ2UoKSkKKyAgICAsIG1fZW5hYmxlZCh0cmFja1ByaXZhdGUuZW5hYmxl
ZCgpKQorICAgICwgbV9jbGllbnQoJmNsaWVudCkKICAgICAsIG1fcHJpdmF0ZSh0cmFja1ByaXZh
dGUpCiB7CiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CkBAIC05Myw4MCArOTAsNzAg
QEAgQXVkaW9UcmFjazo6fkF1ZGlvVHJhY2soKQogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51
bGxwdHIpOwogfQogCi12b2lkIEF1ZGlvVHJhY2s6OnNldFByaXZhdGUoUGFzc1JlZlB0cjxBdWRp
b1RyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQordm9pZCBBdWRpb1RyYWNrOjpzZXRQcml2YXRl
KEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiB7Ci0gICAgQVNTRVJUKG1fcHJpdmF0
ZSk7Ci0gICAgQVNTRVJUKHRyYWNrUHJpdmF0ZSk7Ci0KLSAgICBpZiAobV9wcml2YXRlID09IHRy
YWNrUHJpdmF0ZSkKKyAgICBpZiAobV9wcml2YXRlLnB0cigpID09ICZ0cmFja1ByaXZhdGUpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwogICAg
IG1fcHJpdmF0ZSA9IHRyYWNrUHJpdmF0ZTsKKyAgICBtX3ByaXZhdGUtPnNldEVuYWJsZWQobV9l
bmFibGVkKTsKICAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsKIAotICAgIG1fcHJpdmF0
ZS0+c2V0RW5hYmxlZChtX2VuYWJsZWQpOwogICAgIHVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpOwog
fQogCiBib29sIEF1ZGlvVHJhY2s6OmlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYgdmFs
dWUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHZhbHVlID09IGFsdGVybmF0aXZlS2V5d29yZCgpCisg
ICAgICAgIHx8IHZhbHVlID09IGNvbW1lbnRhcnlLZXl3b3JkKCkKICAgICAgICAgfHwgdmFsdWUg
PT0gZGVzY3JpcHRpb25LZXl3b3JkKCkKICAgICAgICAgfHwgdmFsdWUgPT0gbWFpbktleXdvcmQo
KQogICAgICAgICB8fCB2YWx1ZSA9PSBtYWluRGVzY0tleXdvcmQoKQotICAgICAgICB8fCB2YWx1
ZSA9PSB0cmFuc2xhdGlvbktleXdvcmQoKQotICAgICAgICB8fCB2YWx1ZSA9PSBjb21tZW50YXJ5
S2V5d29yZCgpOworICAgICAgICB8fCB2YWx1ZSA9PSB0cmFuc2xhdGlvbktleXdvcmQoKTsKIH0K
IAotdm9pZCBBdWRpb1RyYWNrOjpzZXRFbmFibGVkKGNvbnN0IGJvb2wgZW5hYmxlZCkKK3ZvaWQg
QXVkaW9UcmFjazo6c2V0RW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgaWYgKG1fZW5hYmxl
ZCA9PSBlbmFibGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2VuYWJsZWQgPSBlbmFibGVk
OwogICAgIG1fcHJpdmF0ZS0+c2V0RW5hYmxlZChlbmFibGVkKTsKLQotICAgIGlmIChtX2NsaWVu
dCkKLSAgICAgICAgbV9jbGllbnQtPmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCh0aGlzKTsKIH0K
IAotc2l6ZV90IEF1ZGlvVHJhY2s6OmluYmFuZFRyYWNrSW5kZXgoKQorc2l6ZV90IEF1ZGlvVHJh
Y2s6OmluYmFuZFRyYWNrSW5kZXgoKSBjb25zdAogewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwog
ICAgIHJldHVybiBtX3ByaXZhdGUtPnRyYWNrSW5kZXgoKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNr
OjplbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrUHJpdmF0ZSogdHJhY2tQcml2YXRlLCBib29sIGVu
YWJsZWQpCit2b2lkIEF1ZGlvVHJhY2s6OmVuYWJsZWRDaGFuZ2VkKGJvb2wgZW5hYmxlZCkKIHsK
LSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0
ZSk7CisgICAgaWYgKG1fZW5hYmxlZCA9PSBlbmFibGVkKQorICAgICAgICByZXR1cm47CisKICAg
ICBtX2VuYWJsZWQgPSBlbmFibGVkOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2Ns
aWVudC0+YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKHRoaXMpOworICAgICAgICBtX2NsaWVudC0+
YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKCp0aGlzKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjpp
ZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJp
bmcmIGlkKQordm9pZCBBdWRpb1RyYWNrOjppZENoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBp
ZCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1f
cHJpdmF0ZSk7CiAgICAgc2V0SWQoaWQpOwogfQogCi12b2lkIEF1ZGlvVHJhY2s6OmxhYmVsQ2hh
bmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYg
bGFiZWwpCit2b2lkIEF1ZGlvVHJhY2s6OmxhYmVsQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcm
IGxhYmVsKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUg
PT0gbV9wcml2YXRlKTsKICAgICBzZXRMYWJlbChsYWJlbCk7CiB9CiAKLXZvaWQgQXVkaW9UcmFj
azo6bGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSwgY29uc3Qg
QXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKK3ZvaWQgQXVkaW9UcmFjazo6bGFuZ3VhZ2VDaGFuZ2Vk
KGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFj
a1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldExhbmd1YWdlKGxh
bmd1YWdlKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjp3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJh
c2UqIHRyYWNrUHJpdmF0ZSkKK3ZvaWQgQXVkaW9UcmFjazo6d2lsbFJlbW92ZSgpCiB7Ci0gICAg
QVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwog
ICAgIG1lZGlhRWxlbWVudCgpLT5yZW1vdmVBdWRpb1RyYWNrKCp0aGlzKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAppbmRleCA2MWM1YjJjZDQyOThkNTc0ZjdmNzE1
YmMxYzE5MjAwNzkxZGQyM2FhLi4wN2M3Nzk0ZmEwOTNmNmQyOGEyOTQxNzNiODUzM2I3YmMyYzli
OTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaApAQCAtMSw2ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
OSw5ICsyOSw3IEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiQXVkaW9U
cmFja1ByaXZhdGUuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oIgogI2luY2x1
ZGUgIlRyYWNrQmFzZS5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDEyICszOCwxMiBAQCBjbGFzcyBBdWRpb1RyYWNrOwog
Y2xhc3MgQXVkaW9UcmFja0NsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+QXVkaW9UcmFj
a0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQo
QXVkaW9UcmFjayopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9UcmFja0VuYWJsZWRDaGFu
Z2VkKEF1ZGlvVHJhY2smKSA9IDA7CiB9OwogCi1jbGFzcyBBdWRpb1RyYWNrIGZpbmFsIDogcHVi
bGljIE1lZGlhVHJhY2tCYXNlLCBwdWJsaWMgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQgeworY2xh
c3MgQXVkaW9UcmFjayBmaW5hbCA6IHB1YmxpYyBNZWRpYVRyYWNrQmFzZSwgcHJpdmF0ZSBBdWRp
b1RyYWNrUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBdWRpb1RyYWNr
PiBjcmVhdGUoQXVkaW9UcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPEF1ZGlvVHJhY2tQ
cml2YXRlPiB0cmFja1ByaXZhdGUpCisgICAgc3RhdGljIFJlZjxBdWRpb1RyYWNrPiBjcmVhdGUo
QXVkaW9UcmFja0NsaWVudCYgY2xpZW50LCBBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRl
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9UcmFjayhjbGllbnQs
IHRyYWNrUHJpdmF0ZSkpOwogICAgIH0KQEAgLTU3LDM5ICs1NSwzNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbWFpbkRlc2NLZXl3b3JkKCk7CiAgICAgc3RhdGlj
IGNvbnN0IEF0b21pY1N0cmluZyYgdHJhbnNsYXRpb25LZXl3b3JkKCk7CiAgICAgc3RhdGljIGNv
bnN0IEF0b21pY1N0cmluZyYgY29tbWVudGFyeUtleXdvcmQoKTsKLSAgICBjb25zdCBBdG9taWNT
dHJpbmcmIGRlZmF1bHRLaW5kS2V5d29yZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGVtcHR5
QXRvbTsgfQogCi0gICAgYm9vbCBlbmFibGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9l
bmFibGVkOyB9CisgICAgYm9vbCBlbmFibGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9lbmFi
bGVkOyB9CiAgICAgdm9pZCBzZXRFbmFibGVkKGNvbnN0IGJvb2wpOwogCi0gICAgdm9pZCBjbGVh
ckNsaWVudCgpIG92ZXJyaWRlIHsgbV9jbGllbnQgPSBudWxscHRyOyB9CisgICAgdm9pZCBjbGVh
ckNsaWVudCgpIGZpbmFsIHsgbV9jbGllbnQgPSBudWxscHRyOyB9CiAgICAgQXVkaW9UcmFja0Ns
aWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAotICAgIHNpemVfdCBp
bmJhbmRUcmFja0luZGV4KCk7CisgICAgc2l6ZV90IGluYmFuZFRyYWNrSW5kZXgoKSBjb25zdDsK
IAotICAgIHZvaWQgc2V0UHJpdmF0ZShQYXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPik7Ci0K
LXByb3RlY3RlZDoKLSAgICBBdWRpb1RyYWNrKEF1ZGlvVHJhY2tDbGllbnQqLCBQYXNzUmVmUHRy
PEF1ZGlvVHJhY2tQcml2YXRlPik7CisgICAgdm9pZCBzZXRQcml2YXRlKEF1ZGlvVHJhY2tQcml2
YXRlJik7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBpc1ZhbGlkS2luZChjb25zdCBBdG9taWNTdHJp
bmcmKSBjb25zdCBvdmVycmlkZTsKKyAgICBBdWRpb1RyYWNrKEF1ZGlvVHJhY2tDbGllbnQmLCBB
dWRpb1RyYWNrUHJpdmF0ZSYpOworCisgICAgYm9vbCBpc1ZhbGlkS2luZChjb25zdCBBdG9taWNT
dHJpbmcmKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50Ci0g
ICAgdm9pZCBlbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrUHJpdmF0ZSosIGJvb2wpIG92ZXJyaWRl
OworICAgIHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgZmluYWw7CiAKICAgICAvLyBUcmFja1By
aXZhdGVCYXNlQ2xpZW50Ci0gICAgdm9pZCBpZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNv
bnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgbGFiZWxDaGFuZ2VkKFRyYWNr
UHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGxh
bmd1YWdlQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCB3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2UqKSBvdmVycmlkZTsK
KyAgICB2b2lkIGlkQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lk
IGxhYmVsQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGxhbmd1
YWdlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxSZW1v
dmUoKSBmaW5hbDsKIAogICAgIHZvaWQgdXBkYXRlS2luZEZyb21Qcml2YXRlKCk7CiAKICAgICBi
b29sIG1fZW5hYmxlZDsKICAgICBBdWRpb1RyYWNrQ2xpZW50KiBtX2NsaWVudDsKIAotICAgIFJl
ZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOworICAgIFJlZjxBdWRpb1RyYWNrUHJp
dmF0ZT4gbV9wcml2YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5jcHAKaW5kZXggYmU1
OGNjODExOWJmZTZkNjBmMDMwYmEwMTkzYzBjZGU1Mjg0OTE5OC4uNmQ5NTQwMWI0ZWIzMjcyM2U4
MjUwMzQxZTk2ZTkxYzRmM2U5ZDI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAxNCBDYWJsZSBUZWxldmlzaW9uIExhYnMgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDM1ICszMywzMyBA
QAogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvQXJy
YXlCdWZmZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8SW5iYW5kRGF0YVRleHRU
cmFjaz4gSW5iYW5kRGF0YVRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBSZWZQdHI8SW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZT4mJiB0cmFja1ByaXZhdGUpCitpbmxpbmUgSW5iYW5kRGF0YVRleHRUcmFjazo6SW5i
YW5kRGF0YVRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUZXh0VHJh
Y2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQor
ICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKQogewot
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZERhdGFUZXh0VHJhY2soY29udGV4dCwgY2xp
ZW50LCBXVEZNb3ZlKHRyYWNrUHJpdmF0ZSkpKTsKIH0KIAotSW5iYW5kRGF0YVRleHRUcmFjazo6
SW5iYW5kRGF0YVRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0
VHJhY2tDbGllbnQqIGNsaWVudCwgUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+JiYgdHJh
Y2tQcml2YXRlKQotICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQ
cml2YXRlKQorUmVmPEluYmFuZERhdGFUZXh0VHJhY2s+IEluYmFuZERhdGFUZXh0VHJhY2s6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNs
aWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogeworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEluYmFuZERhdGFUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFj
a1ByaXZhdGUpKTsKIH0KIAogSW5iYW5kRGF0YVRleHRUcmFjazo6fkluYmFuZERhdGFUZXh0VHJh
Y2soKQogewogfQogCi12b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OmFkZERhdGFDdWUoSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGlt
ZSYgZW5kLCBjb25zdCB2b2lkKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCit2b2lkIEluYmFuZERh
dGFUZXh0VHJhY2s6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVk
aWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBh
ZGRDdWUoRGF0YUN1ZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHN0YXJ0LCBl
bmQsIGRhdGEsIGxlbmd0aCkpOwogfQogCiAjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCiAKLXZv
aWQgSW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRl
KiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBycFBsYXRmb3JtVmFsdWUsIGNv
bnN0IFN0cmluZyYgdHlwZSkKK3ZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZShj
b25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6
ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiYmIHBsYXRmb3JtVmFsdWUsIGNvbnN0IFN0cmluZyYg
dHlwZSkKIHsKLSAgICBSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBs
YXRmb3JtVmFsdWUgPSBwcnBQbGF0Zm9ybVZhbHVlOwotICAgIGlmIChtX2luY29tcGxldGVDdWVN
YXAuZmluZChwbGF0Zm9ybVZhbHVlLmdldCgpKSAhPSBtX2luY29tcGxldGVDdWVNYXAuZW5kKCkp
CisgICAgaWYgKG1faW5jb21wbGV0ZUN1ZU1hcC5jb250YWlucyhwbGF0Zm9ybVZhbHVlLnB0cigp
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBjdWUgPSBEYXRhQ3VlOjpjcmVhdGUoKnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3RhcnQsIGVuZCwgcGxhdGZvcm1WYWx1ZS5jb3B5UmVm
KCksIHR5cGUpOwpAQCAtNzgsMjUgKzc2LDE5IEBAIHZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6
YWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzCiAg
ICAgYWRkQ3VlKFdURk1vdmUoY3VlKSk7CiB9CiAKLXZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6
dXBkYXRlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBz
dGFydCwgY29uc3QgTWVkaWFUaW1lJiBpbkVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZv
cm1SZXByZXNlbnRhdGlvbj4gcHJwUGxhdGZvcm1WYWx1ZSkKK3ZvaWQgSW5iYW5kRGF0YVRleHRU
cmFjazo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRp
bWUmIGluRW5kLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbiYgcGxhdGZvcm1WYWx1
ZSkKIHsKLSAgICBNZWRpYVRpbWUgZW5kID0gaW5FbmQ7Ci0KLSAgICBSZWZQdHI8U2VyaWFsaXpl
ZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBsYXRmb3JtVmFsdWUgPSBwcnBQbGF0Zm9ybVZhbHVl
OwotICAgIGF1dG8gaXRlciA9IG1faW5jb21wbGV0ZUN1ZU1hcC5maW5kKHBsYXRmb3JtVmFsdWUu
Z2V0KCkpOwotICAgIGlmIChpdGVyID09IG1faW5jb21wbGV0ZUN1ZU1hcC5lbmQoKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgUmVmUHRyPERhdGFDdWU+IGN1ZSA9IGl0ZXItPnZhbHVlOworICAg
IFJlZlB0cjxEYXRhQ3VlPiBjdWUgPSBtX2luY29tcGxldGVDdWVNYXAuZ2V0KCZwbGF0Zm9ybVZh
bHVlKTsKICAgICBpZiAoIWN1ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgY3VlLT53aWxsQ2hh
bmdlKCk7CiAKKyAgICBNZWRpYVRpbWUgZW5kID0gaW5FbmQ7CiAgICAgaWYgKGVuZC5pc1Bvc2l0
aXZlSW5maW5pdGUoKSAmJiBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAgZW5kID0gbWVkaWFFbGVt
ZW50KCktPmR1cmF0aW9uTWVkaWFUaW1lKCk7CiAgICAgZWxzZQotICAgICAgICBtX2luY29tcGxl
dGVDdWVNYXAucmVtb3ZlKHBsYXRmb3JtVmFsdWUuZ2V0KCkpOworICAgICAgICBtX2luY29tcGxl
dGVDdWVNYXAucmVtb3ZlKCZwbGF0Zm9ybVZhbHVlKTsKIAogICAgIExPRyhNZWRpYSwgIkluYmFu
ZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWU6IHdhcyBzdGFydD0lcywgZW5kPSVzLCB3aWxs
IGJlIHN0YXJ0PSVzLCBlbmQ9JXNcbiIsIHRvU3RyaW5nKGN1ZS0+c3RhcnRUaW1lKCkpLnV0Zjgo
KS5kYXRhKCksIHRvU3RyaW5nKGN1ZS0+ZW5kVGltZSgpKS51dGY4KCkuZGF0YSgpLCB0b1N0cmlu
ZyhzdGFydCkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kKS51dGY4KCkuZGF0YSgpKTsKIApA
QCAtMTA2LDE0ICs5OCw5IEBAIHZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6dXBkYXRlRGF0YUN1
ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lCiAgICAgY3VlLT5kaWRD
aGFuZ2UoKTsKIH0KIAotdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjpyZW1vdmVEYXRhQ3VlKElu
YmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUm
LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwcnBQbGF0Zm9y
bVZhbHVlKQordm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjpyZW1vdmVEYXRhQ3VlKGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0
aW9uJiBwbGF0Zm9ybVZhbHVlKQogewotICAgIFJlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXBy
ZXNlbnRhdGlvbj4gcGxhdGZvcm1WYWx1ZSA9IHBycFBsYXRmb3JtVmFsdWU7Ci0gICAgYXV0byBp
dGVyID0gbV9pbmNvbXBsZXRlQ3VlTWFwLmZpbmQocGxhdGZvcm1WYWx1ZS5nZXQoKSk7Ci0gICAg
aWYgKGl0ZXIgPT0gbV9pbmNvbXBsZXRlQ3VlTWFwLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBpZiAoUmVmUHRyPERhdGFDdWU+IGN1ZSA9IGl0ZXItPnZhbHVlKSB7CisgICAgaWYgKGF1
dG8qIGN1ZSA9IG1faW5jb21wbGV0ZUN1ZU1hcC5nZXQoJnBsYXRmb3JtVmFsdWUpKSB7CiAgICAg
ICAgIExPRyhNZWRpYSwgIkluYmFuZERhdGFUZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUgcmVtb3Zp
bmcgY3VlOiBzdGFydD0lcywgZW5kPSVzXG4iLCB0b1N0cmluZyhjdWUtPnN0YXJ0VGltZSgpKS51
dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWUtPmVuZFRpbWUoKSkudXRmOCgpLmRhdGEoKSk7CiAg
ICAgICAgIHJlbW92ZUN1ZSgqY3VlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oCmluZGV4IDI3YThkYjYxNjlkMGI0NzZjNTRkMzJl
NDgxNDI4NjIxZGIyYTMwODMuLjY3YWViNmQwNTE3NGI4NGMwN2E1MzZkMzljMjNhYTE4MjM4NzY0
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRU
cmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFj
ay5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNCBDYWJsZSBUZWxl
dmlzaW9uIExhYnMgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzMsMjMgKzMzLDIxIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIERhdGFDdWU7Ci1jbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOwotY2xhc3MgU2Vy
aWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb247CiAKIGNsYXNzIEluYmFuZERhdGFUZXh0VHJh
Y2sgZmluYWwgOiBwdWJsaWMgSW5iYW5kVGV4dFRyYWNrIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPEluYmFuZERhdGFUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
VGV4dFRyYWNrQ2xpZW50KiwgUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+JiYpOworICAg
IHN0YXRpYyBSZWY8SW5iYW5kRGF0YVRleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CiAgICAg
dmlydHVhbCB+SW5iYW5kRGF0YVRleHRUcmFjaygpOwogCiBwcml2YXRlOgotICAgIEluYmFuZERh
dGFUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFJl
ZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiYmKTsKKyAgICBJbmJhbmREYXRhVGV4dFRyYWNr
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlJik7CiAKLSAgICB2b2lkIGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2
b2lkKiwgdW5zaWduZWQpIGZpbmFsOworICAgIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRp
bWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9pZCosIHVuc2lnbmVkKSBm
aW5hbDsKIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQotICAgIHZvaWQgYWRkRGF0YUN1ZShJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVk
aWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+
LCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKLSAgICB2b2lkIHVwZGF0ZURhdGFDdWUoSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYg
ZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPikgZmluYWw7
Ci0gICAgdm9pZCByZW1vdmVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBN
ZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxp
emVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4pIGZpbmFsOworICAgIHZvaWQgYWRkRGF0YUN1ZShj
b25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6
ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiYmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICB2
b2lkIHVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1l
JiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uJikgZmluYWw7CisgICAgdm9p
ZCByZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYg
ZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbiYpIGZpbmFsOwogICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHJlbW92ZUN1ZShUZXh0VHJhY2tDdWUmKSBmaW5hbDsKIAogICAgIEhhc2hN
YXA8UmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiwgUmVmUHRyPERhdGFD
dWU+PiBtX2luY29tcGxldGVDdWVNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcAppbmRleCAwOTFhNWQyYjE4NTI2MGI1OGY2
OGUyZmJjZjg5Yjg3NmM3NTY1YzJlLi45ODY3OWIzNjAzOTFmMDU4MDgxZmNlOTU5NTgwNzE0MzI2
YWNiNGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVy
aWNUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjay5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDEyLTIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjUsMTAyICs2NSw5OSBAQCB2b2lkIEdlbmVyaWNUZXh0
VHJhY2tDdWVNYXA6OnJlbW92ZShUZXh0VHJhY2tDdWUmIGN1ZSkKICAgICAgICAgbV9kYXRhVG9D
dWVNYXAucmVtb3ZlKGRhdGEpOwogfQogCi1SZWY8SW5iYW5kR2VuZXJpY1RleHRUcmFjaz4gSW5i
YW5kR2VuZXJpY1RleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1By
aXZhdGU+IHBsYXllclByaXZhdGUpCitpbmxpbmUgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6SW5i
YW5kR2VuZXJpY1RleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUZXh0
VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRl
KQorICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKQog
ewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZEdlbmVyaWNUZXh0VHJhY2soY29udGV4
dCwgY2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7CiB9CiAKLUluYmFuZEdlbmVyaWNUZXh0VHJhY2s6
OkluYmFuZEdlbmVyaWNUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
VGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZT4gdHJhY2tQcml2YXRlKQotICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwg
dHJhY2tQcml2YXRlKQorUmVmPEluYmFuZEdlbmVyaWNUZXh0VHJhY2s+IEluYmFuZEdlbmVyaWNU
ZXh0VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUZXh0VHJh
Y2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQog
eworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZEdlbmVyaWNUZXh0VHJhY2soY29udGV4
dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpKTsKIH0KIAogSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6
fkluYmFuZEdlbmVyaWNUZXh0VHJhY2soKQogewogfQogCi12b2lkIEluYmFuZEdlbmVyaWNUZXh0
VHJhY2s6OnVwZGF0ZUN1ZUZyb21DdWVEYXRhKFRleHRUcmFja0N1ZUdlbmVyaWMqIGN1ZSwgR2Vu
ZXJpY0N1ZURhdGEqIGN1ZURhdGEpCit2b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnVwZGF0
ZUN1ZUZyb21DdWVEYXRhKFRleHRUcmFja0N1ZUdlbmVyaWMmIGN1ZSwgR2VuZXJpY0N1ZURhdGEm
IGN1ZURhdGEpCiB7Ci0gICAgY3VlLT53aWxsQ2hhbmdlKCk7CisgICAgY3VlLndpbGxDaGFuZ2Uo
KTsKIAotICAgIGN1ZS0+c2V0U3RhcnRUaW1lKGN1ZURhdGEtPnN0YXJ0VGltZSgpKTsKLSAgICBN
ZWRpYVRpbWUgZW5kVGltZSA9IGN1ZURhdGEtPmVuZFRpbWUoKTsKKyAgICBjdWUuc2V0U3RhcnRU
aW1lKGN1ZURhdGEuc3RhcnRUaW1lKCkpOworICAgIE1lZGlhVGltZSBlbmRUaW1lID0gY3VlRGF0
YS5lbmRUaW1lKCk7CiAgICAgaWYgKGVuZFRpbWUuaXNQb3NpdGl2ZUluZmluaXRlKCkgJiYgbWVk
aWFFbGVtZW50KCkpCiAgICAgICAgIGVuZFRpbWUgPSBtZWRpYUVsZW1lbnQoKS0+ZHVyYXRpb25N
ZWRpYVRpbWUoKTsKLSAgICBjdWUtPnNldEVuZFRpbWUoZW5kVGltZSk7Ci0gICAgY3VlLT5zZXRU
ZXh0KGN1ZURhdGEtPmNvbnRlbnQoKSk7Ci0gICAgY3VlLT5zZXRJZChjdWVEYXRhLT5pZCgpKTsK
LSAgICBjdWUtPnNldEJhc2VGb250U2l6ZVJlbGF0aXZlVG9WaWRlb0hlaWdodChjdWVEYXRhLT5i
YXNlRm9udFNpemUoKSk7Ci0gICAgY3VlLT5zZXRGb250U2l6ZU11bHRpcGxpZXIoY3VlRGF0YS0+
cmVsYXRpdmVGb250U2l6ZSgpKTsKLSAgICBjdWUtPnNldEZvbnROYW1lKGN1ZURhdGEtPmZvbnRO
YW1lKCkpOwotCi0gICAgaWYgKGN1ZURhdGEtPnBvc2l0aW9uKCkgPiAwKQotICAgICAgICBjdWUt
PnNldFBvc2l0aW9uKHN0ZDo6cm91bmQoY3VlRGF0YS0+cG9zaXRpb24oKSkpOwotICAgIGlmIChj
dWVEYXRhLT5saW5lKCkgPiAwKQotICAgICAgICBjdWUtPnNldExpbmUoc3RkOjpyb3VuZChjdWVE
YXRhLT5saW5lKCkpKTsKLSAgICBpZiAoY3VlRGF0YS0+c2l6ZSgpID4gMCkKLSAgICAgICAgY3Vl
LT5zZXRTaXplKHN0ZDo6cm91bmQoY3VlRGF0YS0+c2l6ZSgpKSk7Ci0gICAgaWYgKGN1ZURhdGEt
PmJhY2tncm91bmRDb2xvcigpLmlzVmFsaWQoKSkKLSAgICAgICAgY3VlLT5zZXRCYWNrZ3JvdW5k
Q29sb3IoY3VlRGF0YS0+YmFja2dyb3VuZENvbG9yKCkucmdiKCkpOwotICAgIGlmIChjdWVEYXRh
LT5mb3JlZ3JvdW5kQ29sb3IoKS5pc1ZhbGlkKCkpCi0gICAgICAgIGN1ZS0+c2V0Rm9yZWdyb3Vu
ZENvbG9yKGN1ZURhdGEtPmZvcmVncm91bmRDb2xvcigpLnJnYigpKTsKLSAgICBpZiAoY3VlRGF0
YS0+aGlnaGxpZ2h0Q29sb3IoKS5pc1ZhbGlkKCkpCi0gICAgICAgIGN1ZS0+c2V0SGlnaGxpZ2h0
Q29sb3IoY3VlRGF0YS0+aGlnaGxpZ2h0Q29sb3IoKS5yZ2IoKSk7Ci0KLSAgICBpZiAoY3VlRGF0
YS0+YWxpZ24oKSA9PSBHZW5lcmljQ3VlRGF0YTo6U3RhcnQpCi0gICAgICAgIGN1ZS0+c2V0QWxp
Z24oQVNDSUlMaXRlcmFsKCJzdGFydCIpKTsKLSAgICBlbHNlIGlmIChjdWVEYXRhLT5hbGlnbigp
ID09IEdlbmVyaWNDdWVEYXRhOjpNaWRkbGUpCi0gICAgICAgIGN1ZS0+c2V0QWxpZ24oQVNDSUlM
aXRlcmFsKCJtaWRkbGUiKSk7Ci0gICAgZWxzZSBpZiAoY3VlRGF0YS0+YWxpZ24oKSA9PSBHZW5l
cmljQ3VlRGF0YTo6RW5kKQotICAgICAgICBjdWUtPnNldEFsaWduKEFTQ0lJTGl0ZXJhbCgiZW5k
IikpOwotICAgIGN1ZS0+c2V0U25hcFRvTGluZXMoZmFsc2UpOwotCi0gICAgY3VlLT5kaWRDaGFu
Z2UoKTsKLX0KLQotdm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjphZGRHZW5lcmljQ3VlKElu
YmFuZFRleHRUcmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgUGFzc1JlZlB0cjxHZW5lcmljQ3Vl
RGF0YT4gcHJwQ3VlRGF0YSkKLXsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJh
Y2tQcml2YXRlID09IG1fcHJpdmF0ZSk7Ci0KLSAgICBSZWZQdHI8R2VuZXJpY0N1ZURhdGE+IGN1
ZURhdGEgPSBwcnBDdWVEYXRhOwotICAgIGlmIChtX2N1ZU1hcC5maW5kKCpjdWVEYXRhKSkKKyAg
ICBjdWUuc2V0RW5kVGltZShlbmRUaW1lKTsKKyAgICBjdWUuc2V0VGV4dChjdWVEYXRhLmNvbnRl
bnQoKSk7CisgICAgY3VlLnNldElkKGN1ZURhdGEuaWQoKSk7CisgICAgY3VlLnNldEJhc2VGb250
U2l6ZVJlbGF0aXZlVG9WaWRlb0hlaWdodChjdWVEYXRhLmJhc2VGb250U2l6ZSgpKTsKKyAgICBj
dWUuc2V0Rm9udFNpemVNdWx0aXBsaWVyKGN1ZURhdGEucmVsYXRpdmVGb250U2l6ZSgpKTsKKyAg
ICBjdWUuc2V0Rm9udE5hbWUoY3VlRGF0YS5mb250TmFtZSgpKTsKKworICAgIGlmIChjdWVEYXRh
LnBvc2l0aW9uKCkgPiAwKQorICAgICAgICBjdWUuc2V0UG9zaXRpb24oc3RkOjpyb3VuZChjdWVE
YXRhLnBvc2l0aW9uKCkpKTsKKyAgICBpZiAoY3VlRGF0YS5saW5lKCkgPiAwKQorICAgICAgICBj
dWUuc2V0TGluZShzdGQ6OnJvdW5kKGN1ZURhdGEubGluZSgpKSk7CisgICAgaWYgKGN1ZURhdGEu
c2l6ZSgpID4gMCkKKyAgICAgICAgY3VlLnNldFNpemUoc3RkOjpyb3VuZChjdWVEYXRhLnNpemUo
KSkpOworICAgIGlmIChjdWVEYXRhLmJhY2tncm91bmRDb2xvcigpLmlzVmFsaWQoKSkKKyAgICAg
ICAgY3VlLnNldEJhY2tncm91bmRDb2xvcihjdWVEYXRhLmJhY2tncm91bmRDb2xvcigpLnJnYigp
KTsKKyAgICBpZiAoY3VlRGF0YS5mb3JlZ3JvdW5kQ29sb3IoKS5pc1ZhbGlkKCkpCisgICAgICAg
IGN1ZS5zZXRGb3JlZ3JvdW5kQ29sb3IoY3VlRGF0YS5mb3JlZ3JvdW5kQ29sb3IoKS5yZ2IoKSk7
CisgICAgaWYgKGN1ZURhdGEuaGlnaGxpZ2h0Q29sb3IoKS5pc1ZhbGlkKCkpCisgICAgICAgIGN1
ZS5zZXRIaWdobGlnaHRDb2xvcihjdWVEYXRhLmhpZ2hsaWdodENvbG9yKCkucmdiKCkpOworCisg
ICAgaWYgKGN1ZURhdGEuYWxpZ24oKSA9PSBHZW5lcmljQ3VlRGF0YTo6U3RhcnQpCisgICAgICAg
IGN1ZS5zZXRBbGlnbihBU0NJSUxpdGVyYWwoInN0YXJ0IikpOworICAgIGVsc2UgaWYgKGN1ZURh
dGEuYWxpZ24oKSA9PSBHZW5lcmljQ3VlRGF0YTo6TWlkZGxlKQorICAgICAgICBjdWUuc2V0QWxp
Z24oQVNDSUlMaXRlcmFsKCJtaWRkbGUiKSk7CisgICAgZWxzZSBpZiAoY3VlRGF0YS5hbGlnbigp
ID09IEdlbmVyaWNDdWVEYXRhOjpFbmQpCisgICAgICAgIGN1ZS5zZXRBbGlnbihBU0NJSUxpdGVy
YWwoImVuZCIpKTsKKyAgICBjdWUuc2V0U25hcFRvTGluZXMoZmFsc2UpOworCisgICAgY3VlLmRp
ZENoYW5nZSgpOworfQorCit2b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmFkZEdlbmVyaWND
dWUoR2VuZXJpY0N1ZURhdGEmIGN1ZURhdGEpCit7CisgICAgaWYgKG1fY3VlTWFwLmZpbmQoY3Vl
RGF0YSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gY3VlID0gVGV4dFRyYWNrQ3VlR2Vu
ZXJpYzo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGN1ZURhdGEtPnN0YXJ0VGlt
ZSgpLCBjdWVEYXRhLT5lbmRUaW1lKCksIGN1ZURhdGEtPmNvbnRlbnQoKSk7Ci0gICAgdXBkYXRl
Q3VlRnJvbUN1ZURhdGEoY3VlLnB0cigpLCBjdWVEYXRhLmdldCgpKTsKKyAgICBhdXRvIGN1ZSA9
IFRleHRUcmFja0N1ZUdlbmVyaWM6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBj
dWVEYXRhLnN0YXJ0VGltZSgpLCBjdWVEYXRhLmVuZFRpbWUoKSwgY3VlRGF0YS5jb250ZW50KCkp
OworICAgIHVwZGF0ZUN1ZUZyb21DdWVEYXRhKGN1ZS5nZXQoKSwgY3VlRGF0YSk7CiAgICAgaWYg
KGhhc0N1ZShjdWUucHRyKCksIFRleHRUcmFja0N1ZTo6SWdub3JlRHVyYXRpb24pKSB7Ci0gICAg
ICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmFkZEdlbmVyaWNDdWUgaWdu
b3JpbmcgYWxyZWFkeSBhZGRlZCBjdWU6IHN0YXJ0PSVzLCBlbmQ9JXMsIGNvbnRlbnQ9XCIlc1wi
XG4iLCB0b1N0cmluZyhjdWVEYXRhLT5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJp
bmcoY3VlRGF0YS0+ZW5kVGltZSgpKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLT5jb250ZW50KCku
dXRmOCgpLmRhdGEoKSk7CisgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJh
Y2s6OmFkZEdlbmVyaWNDdWUgaWdub3JpbmcgYWxyZWFkeSBhZGRlZCBjdWU6IHN0YXJ0PSVzLCBl
bmQ9JXMsIGNvbnRlbnQ9XCIlc1wiXG4iLCB0b1N0cmluZyhjdWVEYXRhLnN0YXJ0VGltZSgpKS51
dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWVEYXRhLmVuZFRpbWUoKSkudXRmOCgpLmRhdGEoKSwg
Y3VlRGF0YS5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBMT0coTWVkaWEsICJJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjphZGRHZW5lcmljQ3Vl
IGFkZGVkIGN1ZTogc3RhcnQ9JS4yZiwgZW5kPSUuMmYsIGNvbnRlbnQ9XCIlc1wiXG4iLCBjdWVE
YXRhLT5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLT5lbmRUaW1lKCkudG9Eb3VibGUo
KSwgY3VlRGF0YS0+Y29udGVudCgpLnV0ZjgoKS5kYXRhKCkpOworICAgIExPRyhNZWRpYSwgIklu
YmFuZEdlbmVyaWNUZXh0VHJhY2s6OmFkZEdlbmVyaWNDdWUgYWRkZWQgY3VlOiBzdGFydD0lLjJm
LCBlbmQ9JS4yZiwgY29udGVudD1cIiVzXCJcbiIsIGN1ZURhdGEuc3RhcnRUaW1lKCkudG9Eb3Vi
bGUoKSwgY3VlRGF0YS5lbmRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS5jb250ZW50KCkudXRm
OCgpLmRhdGEoKSk7CiAKLSAgICBpZiAoY3VlRGF0YS0+c3RhdHVzKCkgIT0gR2VuZXJpY0N1ZURh
dGE6OkNvbXBsZXRlKQotICAgICAgICBtX2N1ZU1hcC5hZGQoKmN1ZURhdGEsIGN1ZSk7CisgICAg
aWYgKGN1ZURhdGEuc3RhdHVzKCkgIT0gR2VuZXJpY0N1ZURhdGE6OkNvbXBsZXRlKQorICAgICAg
ICBtX2N1ZU1hcC5hZGQoY3VlRGF0YSwgY3VlKTsKIAogICAgIGFkZEN1ZShXVEZNb3ZlKGN1ZSkp
OwogfQogCi12b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnVwZGF0ZUdlbmVyaWNDdWUoSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKiBjdWVEYXRhKQordm9pZCBJbmJh
bmRHZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJiBjdWVE
YXRhKQogewotICAgIGF1dG8qIGN1ZSA9IG1fY3VlTWFwLmZpbmQoKmN1ZURhdGEpOworICAgIGF1
dG8qIGN1ZSA9IG1fY3VlTWFwLmZpbmQoY3VlRGF0YSk7CiAgICAgaWYgKCFjdWUpCiAgICAgICAg
IHJldHVybjsKIAotICAgIHVwZGF0ZUN1ZUZyb21DdWVEYXRhKGN1ZSwgY3VlRGF0YSk7CisgICAg
dXBkYXRlQ3VlRnJvbUN1ZURhdGEoKmN1ZSwgY3VlRGF0YSk7CiAKLSAgICBpZiAoY3VlRGF0YS0+
c3RhdHVzKCkgPT0gR2VuZXJpY0N1ZURhdGE6OkNvbXBsZXRlKQotICAgICAgICBtX2N1ZU1hcC5y
ZW1vdmUoKmN1ZURhdGEpOworICAgIGlmIChjdWVEYXRhLnN0YXR1cygpID09IEdlbmVyaWNDdWVE
YXRhOjpDb21wbGV0ZSkKKyAgICAgICAgbV9jdWVNYXAucmVtb3ZlKGN1ZURhdGEpOwogfQogCi12
b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKiBjdWVEYXRhKQordm9pZCBJbmJhbmRHZW5lcmlj
VGV4dFRyYWNrOjpyZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJiBjdWVEYXRhKQogewot
ICAgIGF1dG8qIGN1ZSA9IG1fY3VlTWFwLmZpbmQoKmN1ZURhdGEpOworICAgIGF1dG8qIGN1ZSA9
IG1fY3VlTWFwLmZpbmQoY3VlRGF0YSk7CiAgICAgaWYgKGN1ZSkgewotICAgICAgICBMT0coTWVk
aWEsICJJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpyZW1vdmVHZW5lcmljQ3VlIHJlbW92aW5nIGN1
ZTogc3RhcnQ9JXMsIGVuZD0lcywgY29udGVudD1cIiVzXCJcbiIsICB0b1N0cmluZyhjdWVEYXRh
LT5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoY3VlRGF0YS0+ZW5kVGltZSgp
KS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CisgICAg
ICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVyaWNDdWUg
cmVtb3ZpbmcgY3VlOiBzdGFydD0lcywgZW5kPSVzLCBjb250ZW50PVwiJXNcIlxuIiwgIHRvU3Ry
aW5nKGN1ZURhdGEuc3RhcnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZURhdGEu
ZW5kVGltZSgpKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLmNvbnRlbnQoKS51dGY4KCkuZGF0YSgp
KTsKICAgICAgICAgcmVtb3ZlQ3VlKCpjdWUpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIExPRyhN
ZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVyaWNDdWUgVU5BQkxFIHRv
IGZpbmQgY3VlOiBzdGFydD0lLjJmLCBlbmQ9JS4yZiwgY29udGVudD1cIiVzXCJcbiIsIGN1ZURh
dGEtPnN0YXJ0VGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEtPmVuZFRpbWUoKS50b0RvdWJsZSgp
LCBjdWVEYXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIExPRyhNZWRpYSwg
IkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVyaWNDdWUgVU5BQkxFIHRvIGZpbmQg
Y3VlOiBzdGFydD0lLjJmLCBlbmQ9JS4yZiwgY29udGVudD1cIiVzXCJcbiIsIGN1ZURhdGEuc3Rh
cnRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS5lbmRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0
YS5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgfQogfQogCkBAIC0xNzksMTUgKzE3Niwx
MyBAQCBXZWJWVFRQYXJzZXImIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnBhcnNlcigpCiAgICAg
cmV0dXJuICptX3dlYlZUVFBhcnNlcjsKIH0KIAotdm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNr
OjpwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSogdHJhY2tQcml2YXRl
LCBjb25zdCBJU09XZWJWVFRDdWUmIGN1ZURhdGEpCit2b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJh
Y2s6OnBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUmIGN1ZURhdGEpCiB7Ci0g
ICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUp
OwogICAgIHBhcnNlcigpLnBhcnNlQ3VlRGF0YShjdWVEYXRhKTsKIH0KIAotdm9pZCBJbmJhbmRH
ZW5lcmljVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIoSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSogdHJhY2tQcml2YXRlLCBTdHJpbmcmJiBoZWFkZXIpCit2b2lkIEluYmFuZEdlbmVyaWNU
ZXh0VHJhY2s6OnBhcnNlV2ViVlRURmlsZUhlYWRlcihTdHJpbmcmJiBoZWFkZXIpCiB7Ci0gICAg
QVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwog
ICAgIHBhcnNlcigpLnBhcnNlRmlsZUhlYWRlcihXVEZNb3ZlKGhlYWRlcikpOwogfQogCkBAIC0y
MTQsNyArMjA5LDcgQEAgdm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpuZXdSZWdpb25zUGFy
c2VkKCkKIAogICAgIGZvciAoYXV0byYgcmVnaW9uIDogbmV3UmVnaW9ucykgewogICAgICAgICBy
ZWdpb24tPnNldFRyYWNrKHRoaXMpOwotICAgICAgICByZWdpb25zKCktPmFkZChyZWdpb24pOwor
ICAgICAgICByZWdpb25zKCktPmFkZChyZWdpb24ucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNU
ZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRU
cmFjay5oCmluZGV4IDFjMzQ4YjJkYTU1MTAzZWJiZmNhODc4ZDQwYjdmOTA3ODliZDQ0NjMuLmU1
ZmViMjU0YmJlMmY5YTNiZjI2ODg1ZmM4ZjNkMmFiZWRkNzViOTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsOSAr
MzMsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERvY3VtZW50OwotY2xhc3Mg
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTsKLQogY2xhc3MgR2VuZXJpY1RleHRUcmFja0N1ZU1hcCB7
CiBwdWJsaWM6CiAgICAgdm9pZCBhZGQoR2VuZXJpY0N1ZURhdGEmLCBUZXh0VHJhY2tDdWVHZW5l
cmljJik7CkBAIC01NiwyMyArNTMsMjIgQEAgcHJpdmF0ZToKIAogY2xhc3MgSW5iYW5kR2VuZXJp
Y1RleHRUcmFjayBmaW5hbCA6IHB1YmxpYyBJbmJhbmRUZXh0VHJhY2ssIHByaXZhdGUgV2ViVlRU
UGFyc2VyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEluYmFuZEdlbmVyaWNUZXh0
VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50Kiwg
UGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CisgICAgc3RhdGljIFJlZjxJbmJh
bmRHZW5lcmljVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRleHRU
cmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKICAgICB2aXJ0dWFsIH5JbmJh
bmRHZW5lcmljVGV4dFRyYWNrKCk7CiAKIHByaXZhdGU6Ci0gICAgSW5iYW5kR2VuZXJpY1RleHRU
cmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0
cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CisgICAgSW5iYW5kR2VuZXJpY1RleHRUcmFjayhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZSYpOwogCi0gICAgdm9pZCBhZGRHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZh
dGUqLCBQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPikgZmluYWw7Ci0gICAgdm9pZCB1cGRhdGVH
ZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBHZW5lcmljQ3VlRGF0YSopIGZpbmFs
OwotICAgIHZvaWQgcmVtb3ZlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2Vu
ZXJpY0N1ZURhdGEqKSBmaW5hbDsKKyAgICB2b2lkIGFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1ZURh
dGEmKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKSBm
aW5hbDsKKyAgICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKSBmaW5hbDsK
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiByZW1vdmVDdWUoVGV4dFRyYWNrQ3VlJikgZmluYWw7CiAK
LSAgICBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUdlbmVyaWM+IGNyZWF0ZUN1ZShQYXNzUmVmUHRy
PEdlbmVyaWNDdWVEYXRhPik7Ci0gICAgdm9pZCB1cGRhdGVDdWVGcm9tQ3VlRGF0YShUZXh0VHJh
Y2tDdWVHZW5lcmljKiwgR2VuZXJpY0N1ZURhdGEqKTsKKyAgICB2b2lkIHVwZGF0ZUN1ZUZyb21D
dWVEYXRhKFRleHRUcmFja0N1ZUdlbmVyaWMmLCBHZW5lcmljQ3VlRGF0YSYpOwogCiAgICAgV2Vi
VlRUUGFyc2VyJiBwYXJzZXIoKTsKLSAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNPV2ViVlRUQ3VlJikgZmluYWw7Ci0gICAgdm9pZCBw
YXJzZVdlYlZUVEZpbGVIZWFkZXIoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFN0cmluZyYmKSBm
aW5hbDsKKyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUmKSBm
aW5hbDsKKyAgICB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihTdHJpbmcmJikgZmluYWw7CiAK
ICAgICB2b2lkIG5ld0N1ZXNQYXJzZWQoKSBmaW5hbDsKICAgICB2b2lkIG5ld1JlZ2lvbnNQYXJz
ZWQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5k
VGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNr
LmNwcAppbmRleCBmMmVlZWFlMGZjMDA5NGU0MjhhODdhNjVkMTgzMTdkM2NmZjQ0MDc5Li5iZDY1
ZTU0OGE4NzYyMjkwYTUxMGQzZDdmOTJjMWFhYjE2OTQ5MmYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCw0MyArMjQsMzQgQEAKICAqLwog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrLmgiCiAKICNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2suaCIKLQot
I2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJIVE1M
TWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5iYW5kRGF0YVRleHRUcmFjay5oIgogI2luY2x1
ZGUgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2suaCIKICNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmgiCi0jaW5jbHVkZSAi
TG9nZ2luZy5oIgotI2luY2x1ZGUgIlRleHRUcmFja0N1ZUxpc3QuaCIKLSNpbmNsdWRlIDxtYXRo
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLVBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrPiBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAotICAgIFRleHRUcmFja0NsaWVudCogY2xp
ZW50LCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKK1Jl
ZjxJbmJhbmRUZXh0VHJhY2s+IEluYmFuZFRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiB7Ci0gICAgc3dpdGNoICh0cmFja1ByaXZhdGUtPmN1
ZUZvcm1hdCgpKSB7CisgICAgc3dpdGNoICh0cmFja1ByaXZhdGUuY3VlRm9ybWF0KCkpIHsKICAg
ICBjYXNlIEluYmFuZFRleHRUcmFja1ByaXZhdGU6OkRhdGE6CiAgICAgICAgIHJldHVybiBJbmJh
bmREYXRhVGV4dFRyYWNrOjpjcmVhdGUoY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpOwog
ICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6R2VuZXJpYzoKICAgICAgICAgcmV0dXJu
IEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmNyZWF0ZShjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJp
dmF0ZSk7CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpXZWJWVFQ6CiAgICAgICAg
IHJldHVybiBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmNyZWF0ZShjb250ZXh0LCBjbGllbnQsIHRy
YWNrUHJpdmF0ZSk7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIHJldHVybiAwOwogICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICByZXR1cm4gSW5iYW5kRGF0YVRleHRUcmFjazo6Y3JlYXRlKGNvbnRleHQsIGNsaWVudCwgdHJh
Y2tQcml2YXRlKTsKIH0KIAotSW5iYW5kVGV4dFRyYWNrOjpJbmJhbmRUZXh0VHJhY2soU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NS
ZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQotICAgIDogVGV4dFRy
YWNrKGNvbnRleHQsIGNsaWVudCwgZW1wdHlBdG9tLCB0cmFja1ByaXZhdGUtPmlkKCksIHRyYWNr
UHJpdmF0ZS0+bGFiZWwoKSwgdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpLCBJbkJhbmQpCitJbmJh
bmRUZXh0VHJhY2s6OkluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJh
Y2tQcml2YXRlKQorICAgIDogVGV4dFRyYWNrKCZjb250ZXh0LCAmY2xpZW50LCBlbXB0eUF0b20s
IHRyYWNrUHJpdmF0ZS5pZCgpLCB0cmFja1ByaXZhdGUubGFiZWwoKSwgdHJhY2tQcml2YXRlLmxh
bmd1YWdlKCksIEluQmFuZCkKICAgICAsIG1fcHJpdmF0ZSh0cmFja1ByaXZhdGUpCiB7CiAgICAg
bV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CkBAIC03MiwxMiArNjMsOSBAQCBJbmJhbmRUZXh0
VHJhY2s6On5JbmJhbmRUZXh0VHJhY2soKQogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KG51bGxw
dHIpOwogfQogCi12b2lkIEluYmFuZFRleHRUcmFjazo6c2V0UHJpdmF0ZShQYXNzUmVmUHRyPElu
YmFuZFRleHRUcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKK3ZvaWQgSW5iYW5kVGV4dFRyYWNr
OjpzZXRQcml2YXRlKEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKLSAg
ICBBU1NFUlQobV9wcml2YXRlKTsKLSAgICBBU1NFUlQodHJhY2tQcml2YXRlKTsKLQotICAgIGlm
IChtX3ByaXZhdGUgPT0gdHJhY2tQcml2YXRlKQorICAgIGlmIChtX3ByaXZhdGUucHRyKCkgPT0g
JnRyYWNrUHJpdmF0ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wcml2YXRlLT5zZXRDbGll
bnQobnVsbHB0cik7CkBAIC0xMTUsODAgKzEwMyw2MCBAQCB2b2lkIEluYmFuZFRleHRUcmFjazo6
c2V0TW9kZUludGVybmFsKE1vZGUgbW9kZSkKIAogYm9vbCBJbmJhbmRUZXh0VHJhY2s6OmlzQ2xv
c2VkQ2FwdGlvbnMoKSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRlKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KICAgICByZXR1cm4gbV9wcml2YXRlLT5pc0Nsb3NlZENhcHRpb25zKCk7CiB9
CiAKIGJvb2wgSW5iYW5kVGV4dFRyYWNrOjppc1NESCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3By
aXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKICAgICByZXR1cm4gbV9wcml2YXRl
LT5pc1NESCgpOwogfQogCiBib29sIEluYmFuZFRleHRUcmFjazo6Y29udGFpbnNPbmx5Rm9yY2Vk
U3VidGl0bGVzKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPmNvbnRhaW5zT25seUZvcmNlZFN1
YnRpdGxlcygpOwogfQogCiBib29sIEluYmFuZFRleHRUcmFjazo6aXNNYWluUHJvZ3JhbUNvbnRl
bnQoKSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRlKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNNYWluUHJvZ3JhbUNvbnRlbnQoKTsKIH0K
IAogYm9vbCBJbmJhbmRUZXh0VHJhY2s6OmlzRWFzeVRvUmVhZCgpIGNvbnN0CiB7Ci0gICAgaWYg
KCFtX3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKICAgICByZXR1cm4gbV9w
cml2YXRlLT5pc0Vhc3lUb1JlYWQoKTsKIH0KICAgICAKIHNpemVfdCBJbmJhbmRUZXh0VHJhY2s6
OmluYmFuZFRyYWNrSW5kZXgoKQogewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwogICAgIHJldHVy
biBtX3ByaXZhdGUtPnRyYWNrSW5kZXgoKTsKIH0KIAogQXRvbWljU3RyaW5nIEluYmFuZFRleHRU
cmFjazo6aW5CYW5kTWV0YWRhdGFUcmFja0Rpc3BhdGNoVHlwZSgpIGNvbnN0CiB7Ci0gICAgQVNT
RVJUKG1fcHJpdmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aW5CYW5kTWV0YWRhdGFUcmFj
a0Rpc3BhdGNoVHlwZSgpOwogfQogCi12b2lkIEluYmFuZFRleHRUcmFjazo6aWRDaGFuZ2VkKFRy
YWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCkKK3Zv
aWQgSW5iYW5kVGV4dFRyYWNrOjppZENoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBpZCkKIHsK
LSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0
ZSk7CiAgICAgc2V0SWQoaWQpOwogfQogCi12b2lkIEluYmFuZFRleHRUcmFjazo6bGFiZWxDaGFu
Z2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBs
YWJlbCkKK3ZvaWQgSW5iYW5kVGV4dFRyYWNrOjpsYWJlbENoYW5nZWQoY29uc3QgQXRvbWljU3Ry
aW5nJiBsYWJlbCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2
YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0TGFiZWwobGFiZWwpOwogfQogCi12b2lkIEluYmFu
ZFRleHRUcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKK3ZvaWQgSW5iYW5kVGV4dFRyYWNrOjps
YW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKIHsKLSAgICBBU1NF
UlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAg
c2V0TGFuZ3VhZ2UobGFuZ3VhZ2UpOwogfQogCi12b2lkIEluYmFuZFRleHRUcmFjazo6d2lsbFJl
bW92ZShUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUpCit2b2lkIEluYmFuZFRleHRUcmFj
azo6d2lsbFJlbW92ZSgpCiB7Ci0gICAgaWYgKCFtZWRpYUVsZW1lbnQoKSkKKyAgICBhdXRvKiBl
bGVtZW50ID0gbWVkaWFFbGVtZW50KCk7CisgICAgaWYgKCFlbGVtZW50KQogICAgICAgICByZXR1
cm47Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3By
aXZhdGUpOwotICAgIG1lZGlhRWxlbWVudCgpLT5yZW1vdmVUZXh0VHJhY2soKnRoaXMpOworICAg
IGVsZW1lbnQtPnJlbW92ZVRleHRUcmFjaygqdGhpcyk7CiB9CiAKIHZvaWQgSW5iYW5kVGV4dFRy
YWNrOjp1cGRhdGVLaW5kRnJvbVByaXZhdGUoKQpAQCAtMTk2LDM0ICsxNjQsMzAgQEAgdm9pZCBJ
bmJhbmRUZXh0VHJhY2s6OnVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpCiAgICAgc3dpdGNoIChtX3By
aXZhdGUtPmtpbmQoKSkgewogICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6U3VidGl0
bGVzOgogICAgICAgICBzZXRLaW5kKEtpbmQ6OlN1YnRpdGxlcyk7Ci0gICAgICAgIGJyZWFrOwor
ICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpDYXB0aW9u
czoKICAgICAgICAgc2V0S2luZChLaW5kOjpDYXB0aW9ucyk7Ci0gICAgICAgIGJyZWFrOworICAg
ICAgICByZXR1cm47CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpEZXNjcmlwdGlv
bnM6CiAgICAgICAgIHNldEtpbmQoS2luZDo6RGVzY3JpcHRpb25zKTsKLSAgICAgICAgYnJlYWs7
CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluYmFuZFRleHRUcmFja1ByaXZhdGU6OkNoYXB0
ZXJzOgogICAgICAgICBzZXRLaW5kKEtpbmQ6OkNoYXB0ZXJzKTsKLSAgICAgICAgYnJlYWs7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIEluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok1ldGFkYXRh
OgogICAgICAgICBzZXRLaW5kKEtpbmQ6Ok1ldGFkYXRhKTsKLSAgICAgICAgYnJlYWs7CisgICAg
ICAgIHJldHVybjsKICAgICBjYXNlIEluYmFuZFRleHRUcmFja1ByaXZhdGU6OkZvcmNlZDoKICAg
ICAgICAgc2V0S2luZChLaW5kOjpGb3JjZWQpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6Tm9uZToKLSAgICBkZWZhdWx0
OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiBNZWRpYVRpbWUgSW5iYW5kVGV4dFRyYWNr
OjpzdGFydFRpbWVWYXJpYW5jZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3ByaXZhdGUpCi0gICAg
ICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7Ci0gICAgCiAgICAgcmV0dXJuIG1fcHJp
dmF0ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svSW5iYW5kVGV4dFRyYWNrLmgKaW5kZXggOWNkMDI3YzM2Yzg1YjBhYTUxNTY3ZWU2OTZlMTI2
NmQwODQ1ZjMzZS4uNmNmMjY4N2JiODZlOTU0OWJjMWYxNjU1NTNkOTI1MGI4YzU3ZWUwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDE1
ICsyOSwxMiBAQAogCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oIgog
I2luY2x1ZGUgIlRleHRUcmFjay5oIgotI2luY2x1ZGUgIlRleHRUcmFja0N1ZUdlbmVyaWMuaCIK
LSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEluYmFuZFRleHRUcmFjayA6IHB1YmxpYyBUZXh0
VHJhY2ssIHB1YmxpYyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50IHsKK2NsYXNzIEluYmFu
ZFRleHRUcmFjayA6IHB1YmxpYyBUZXh0VHJhY2ssIHByaXZhdGUgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRy
YWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBh
c3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHN0YXRpYyBSZWY8SW5iYW5k
VGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRleHRUcmFja0NsaWVu
dCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKICAgICB2aXJ0dWFsIH5JbmJhbmRUZXh0VHJh
Y2soKTsKIAogICAgIGJvb2wgaXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0IG92ZXJyaWRlOwpAQCAt
NTAsMzggKzQ3LDM4IEBAIHB1YmxpYzoKIAogICAgIEF0b21pY1N0cmluZyBpbkJhbmRNZXRhZGF0
YVRyYWNrRGlzcGF0Y2hUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNldFByaXZh
dGUoUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CisgICAgdm9pZCBzZXRQcml2
YXRlKEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKIAogcHJvdGVjdGVkOgotICAgIEluYmFuZFRl
eHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1Jl
ZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CisgICAgSW5iYW5kVGV4dFRyYWNrKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlJik7CiAKICAgICB2b2lkIHNldE1vZGVJbnRlcm5hbChNb2RlKTsKICAgICB2b2lkIHVwZGF0
ZUtpbmRGcm9tUHJpdmF0ZSgpOwogCi0gICAgUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+
IG1fcHJpdmF0ZTsKKyAgICBSZWY8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwog
CiBwcml2YXRlOgogICAgIGJvb2wgaXNJbmJhbmQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9Ci0gICAgdm9pZCBpZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0
cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgbGFiZWxDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2Uq
LCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGxhbmd1YWdlQ2hhbmdl
ZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCB3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2UqKSBvdmVycmlkZTsKKyAgICB2b2lkIGlk
Q2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGxhYmVsQ2hh
bmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGxhbmd1YWdlQ2hh
bmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxSZW1vdmUo
KSBvdmVycmlkZTsKIAotICAgIHZvaWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRl
KiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3Qgdm9pZCosIHVuc2ln
bmVkKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBhZGREYXRh
Q3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IHZvaWQqLCB1bnNp
Z25lZCkgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCiAjaWYgRU5BQkxFKERB
VEFDVUVfVkFMVUUpCi0gICAgdm9pZCBhZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUq
LCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUGFzc1JlZlB0
cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4pIG92ZXJyaWRlICB7IEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOyB9Ci0gICAgdm9pZCByZW1vdmVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1By
aXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPikgb3ZlcnJpZGUgIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KKyAgICB2b2lkIGFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3Qg
TWVkaWFUaW1lJiwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiYmLCBjb25z
dCBTdHJpbmcmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCB1
cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNlcmlhbGl6
ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uJikgb3ZlcnJpZGUgIHsgQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KKyAgICB2b2lkIHJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVk
aWFUaW1lJiwgU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24mKSBvdmVycmlkZSAgeyBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogI2VuZGlmCiAKLSAgICB2b2lkIGFkZEdlbmVyaWNDdWUo
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFBhc3NSZWZQdHI8R2VuZXJpY0N1ZURhdGE+KSBvdmVy
cmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdm9pZCB1cGRhdGVHZW5lcmljQ3Vl
KEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBHZW5lcmljQ3VlRGF0YSopIG92ZXJyaWRlIHsgQVNT
RVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUoSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQorICAgIHZvaWQgYWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpIG92ZXJy
aWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUo
R2VuZXJpY0N1ZURhdGEmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAg
dm9pZCByZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgb3ZlcnJpZGUgeyBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQogCi0gICAgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZSosIFN0cmluZyYmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCkgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQotICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUq
LCBjb25zdCBJU09XZWJWVFRDdWUmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CisgICAgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYpIG92ZXJyaWRlIHsgQVNT
RVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBj
aGFyKiwgdW5zaWduZWQpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2
b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUmKSBvdmVycmlkZSB7IEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICBNZWRpYVRpbWUgc3RhcnRUaW1lVmFyaWFuY2Uo
KSBjb25zdCBvdmVycmlkZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAKaW5kZXggZTU0MGU0OTQxYWVjYTg2YzBmZmVhNzUz
NGI3YWEyMjZiMTJjYzJhNi4uZDBmYWU0ZTliODU2YTA0MTJiMzI2ODdjNzcyZWUzNmZkZjE5NDRm
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0
VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4
dFRyYWNrLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIw
MTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
Mi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjQsMjcgKzI0LDI2IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkluYmFuZFdlYlZUVFRleHRUcmFjay5oIgogCiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQogCi0jaW5jbHVkZSAiSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmgiCi0KICNpbmNs
dWRlICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiVlRUQ3VlLmgiCiAjaW5jbHVkZSAi
VlRUUmVnaW9uTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1SZWY8SW5iYW5kVGV4dFRyYWNrPiBJbmJhbmRXZWJWVFRUZXh0VHJh
Y2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGll
bnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiBwbGF5ZXJQcml2
YXRlKQoraW5saW5lIEluYmFuZFdlYlZUVFRleHRUcmFjazo6SW5iYW5kV2ViVlRUVGV4dFRyYWNr
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50
LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgOiBJbmJhbmRUZXh0
VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSW5iYW5kV2ViVlRUVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgcGxheWVyUHJp
dmF0ZSkpOwogfQogCi1JbmJhbmRXZWJWVFRUZXh0VHJhY2s6OkluYmFuZFdlYlZUVFRleHRUcmFj
ayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVu
dCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCi0gICAg
OiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCitSZWY8SW5i
YW5kVGV4dFRyYWNrPiBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogeworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElu
YmFuZFdlYlZUVFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogfQog
CiBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6On5JbmJhbmRXZWJWVFRUZXh0VHJhY2soKQpAQCAtNTgs
MTUgKzU3LDEzIEBAIFdlYlZUVFBhcnNlciYgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpwYXJzZXIo
KQogICAgIHJldHVybiAqbV93ZWJWVFRQYXJzZXI7CiB9CiAKLXZvaWQgSW5iYW5kV2ViVlRUVGV4
dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSogdHJhY2tQ
cml2YXRlLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCit2b2lkIEluYmFuZFdl
YlZUVFRleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2ln
bmVkIGxlbmd0aCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2
YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgcGFyc2VyKCkucGFyc2VCeXRlcyhkYXRhLCBsZW5ndGgp
OwogfQogCi12b2lkIEluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKElu
YmFuZFRleHRUcmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgY29uc3QgSVNPV2ViVlRUQ3VlJiBj
dWVEYXRhKQordm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3VlRGF0YShj
b25zdCBJU09XZWJWVFRDdWUmIGN1ZURhdGEpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1By
aXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHBhcnNlcigpLnBhcnNlQ3Vl
RGF0YShjdWVEYXRhKTsKIH0KIApAQCAtNzQsMTAgKzcxLDggQEAgdm9pZCBJbmJhbmRXZWJWVFRU
ZXh0VHJhY2s6Om5ld0N1ZXNQYXJzZWQoKQogewogICAgIFZlY3RvcjxSZWZQdHI8V2ViVlRUQ3Vl
RGF0YT4+IGN1ZXM7CiAgICAgcGFyc2VyKCkuZ2V0TmV3Q3VlcyhjdWVzKTsKLQogICAgIGZvciAo
YXV0byYgY3VlRGF0YSA6IGN1ZXMpIHsKICAgICAgICAgYXV0byB2dHRDdWUgPSBWVFRDdWU6OmNy
ZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqY3VlRGF0YSk7Ci0KICAgICAgICAgaWYg
KGhhc0N1ZSh2dHRDdWUucHRyKCksIFRleHRUcmFja0N1ZTo6SWdub3JlRHVyYXRpb24pKSB7CiAg
ICAgICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRXZWJWVFRUZXh0VHJhY2s6Om5ld0N1ZXNQYXJz
ZWQgaWdub3JpbmcgYWxyZWFkeSBhZGRlZCBjdWU6IHN0YXJ0PSUuMmYsIGVuZD0lLjJmLCBjb250
ZW50PVwiJXNcIlxuIiwgdnR0Q3VlLT5zdGFydFRpbWUoKSwgdnR0Q3VlLT5lbmRUaW1lKCksIHZ0
dEN1ZS0+dGV4dCgpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtOTAs
MTMgKzg1LDEyIEBAIHZvaWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpuZXdSZWdpb25zUGFyc2Vk
KCkKIHsKICAgICBWZWN0b3I8UmVmUHRyPFZUVFJlZ2lvbj4+IG5ld1JlZ2lvbnM7CiAgICAgcGFy
c2VyKCkuZ2V0TmV3UmVnaW9ucyhuZXdSZWdpb25zKTsKLQogICAgIGZvciAoYXV0byYgcmVnaW9u
IDogbmV3UmVnaW9ucykgewogICAgICAgICByZWdpb24tPnNldFRyYWNrKHRoaXMpOwotICAgICAg
ICByZWdpb25zKCktPmFkZChyZWdpb24pOworICAgICAgICByZWdpb25zKCktPmFkZChyZWdpb24u
cmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogfQotICAgIAorCiB2b2lkIEluYmFuZFdlYlZUVFRl
eHRUcmFjazo6ZmlsZUZhaWxlZFRvUGFyc2UoKQogewogICAgIExPRyhNZWRpYSwgIkVycm9yIHBh
cnNpbmcgV2ViVlRUIHN0cmVhbS4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0luYmFuZFdlYlZUVFRleHRUcmFjay5oCmluZGV4IDhjYzc3YTljZWRhM2MzN2JiMWY2ZTFkNWE1
OTNkMjYzYzNkMjQ5ZWYuLjIxZDkxMzQ2OTc1YTlhNmU3OTc5YjhhYzAzOWY0YTYzYzNlODE0YmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRy
YWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJh
Y2suaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMCwyNSArMzAsMjQgQEAKICNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2suaCIK
ICNpbmNsdWRlICJXZWJWVFRQYXJzZXIuaCIKICNpbmNsdWRlIDxtZW1vcnk+Ci0jaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEluYmFuZFdlYlZU
VFRleHRUcmFjayBmaW5hbCA6IHB1YmxpYyBJbmJhbmRUZXh0VHJhY2ssIHByaXZhdGUgV2ViVlRU
UGFyc2VyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEluYmFuZFRleHRUcmFjaz4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVm
UHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+KTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZFRleHRU
cmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CiAgICAgdmlydHVhbCB+SW5iYW5kV2ViVlRUVGV4dFRy
YWNrKCk7CiAKIHByaXZhdGU6Ci0gICAgSW5iYW5kV2ViVlRUVGV4dFRyYWNrKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFj
a1ByaXZhdGU+KTsKKyAgICBJbmJhbmRXZWJWVFRUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIFRleHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKIAogICAg
IFdlYlZUVFBhcnNlciYgcGFyc2VyKCk7Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSosIGNvbnN0IElTT1dlYlZUVEN1ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgcGFyc2VXZWJW
VFRDdWVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgZmluYWw7CisgICAg
dm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJikgZmluYWw7CiAKLSAg
ICB2b2lkIG5ld0N1ZXNQYXJzZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIG5ld1JlZ2lvbnNQYXJz
ZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIGZpbGVGYWlsZWRUb1BhcnNlKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBuZXdDdWVzUGFyc2VkKCkgZmluYWw7CisgICAgdm9pZCBuZXdSZWdpb25zUGFyc2Vk
KCkgZmluYWw7CisgICAgdm9pZCBmaWxlRmFpbGVkVG9QYXJzZSgpIGZpbmFsOwogCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdlYlZUVFBhcnNlcj4gbV93ZWJWVFRQYXJzZXI7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmNwcAppbmRleCAyMTBmNmE5
ZGY1YWM3NzE3NWE5ODEyYWMwNTEwNDIyMzJhMzQwZjMzLi41NTI4ZGUxN2IyOWY0YmUwYzk2ODM4
NDM4MjkzZTczNjg2ZTg1Y2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0xvYWRhYmxlVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xv
YWRhYmxlVGV4dFRyYWNrLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEsIDIwMTMgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEsIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMTQgKzI1LDExIEBACiAgKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvYWRhYmxlVGV4dFRyYWNrLmgiCiAKICNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbmNsdWRlICJMb2FkYWJsZVRleHRUcmFjay5oIgot
Ci0jaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJIVE1MVHJhY2tFbGVtZW50LmgiCi0jaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlRleHRUcmFja0N1ZUxp
c3QuaCIKICNpbmNsdWRlICJWVFRSZWdpb25MaXN0LmgiCiAKQEAgLTk2LDExICs5NCwxMSBAQCB2
b2lkIExvYWRhYmxlVGV4dFRyYWNrOjpuZXdDdWVzQXZhaWxhYmxlKFRleHRUcmFja0xvYWRlciog
bG9hZGVyKQogCiAgICAgZm9yIChhdXRvJiBuZXdDdWUgOiBuZXdDdWVzKSB7CiAgICAgICAgIG5l
d0N1ZS0+c2V0VHJhY2sodGhpcyk7Ci0gICAgICAgIG1fY3Vlcy0+YWRkKG5ld0N1ZSk7CisgICAg
ICAgIG1fY3Vlcy0+YWRkKG5ld0N1ZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9CiAKICAgICBp
ZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT50ZXh0VHJhY2tBZGRDdWVzKHRoaXMsIG1f
Y3Vlcy5nZXQoKSk7CisgICAgICAgIGNsaWVudCgpLT50ZXh0VHJhY2tBZGRDdWVzKCp0aGlzLCAq
bV9jdWVzKTsKIH0KIAogdm9pZCBMb2FkYWJsZVRleHRUcmFjazo6Y3VlTG9hZGluZ0NvbXBsZXRl
ZChUZXh0VHJhY2tMb2FkZXIqIGxvYWRlciwgYm9vbCBsb2FkaW5nRmFpbGVkKQpAQCAtMTIyLDcg
KzEyMCw3IEBAIHZvaWQgTG9hZGFibGVUZXh0VHJhY2s6Om5ld1JlZ2lvbnNBdmFpbGFibGUoVGV4
dFRyYWNrTG9hZGVyKiBsb2FkZXIpCiAKICAgICBmb3IgKGF1dG8mIG5ld1JlZ2lvbiA6IG5ld1Jl
Z2lvbnMpIHsKICAgICAgICAgbmV3UmVnaW9uLT5zZXRUcmFjayh0aGlzKTsKLSAgICAgICAgcmVn
aW9ucygpLT5hZGQobmV3UmVnaW9uKTsKKyAgICAgICAgcmVnaW9ucygpLT5hZGQobmV3UmVnaW9u
LnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9Mb2FkYWJsZVRleHRUcmFjay5oCmluZGV4IDAxMDIwYjBiNGNiZmYxMzkxNGJlNzJhMDkx
NjI5MjZiNmI4OGQzNjEuLmJhOWM3NmZiMmMzNThkYWI4OWVmNTgxNjBlZDEwMWQzNjc1Nzc1OTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2su
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmgKQEAg
LTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5
LDEyICszMCwxMCBAQAogCiAjaW5jbHVkZSAiVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiVGV4dFRy
YWNrTG9hZGVyLmgiCi0jaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEhUTUxUcmFja0VsZW1lbnQ7Ci1jbGFzcyBMb2FkYWJsZVRleHRUcmFj
azsKIAogY2xhc3MgTG9hZGFibGVUZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgVGV4dFRyYWNrLCBw
cml2YXRlIFRleHRUcmFja0xvYWRlckNsaWVudCB7CiBwdWJsaWM6CkBAIC00OSw3ICs0OCw3IEBA
IHB1YmxpYzoKICAgICBIVE1MVHJhY2tFbGVtZW50KiB0cmFja0VsZW1lbnQoKSBjb25zdCB7IHJl
dHVybiBtX3RyYWNrRWxlbWVudDsgfQogICAgIHZvaWQgY2xlYXJFbGVtZW50KCkgeyBtX3RyYWNr
RWxlbWVudCA9IG51bGxwdHI7IH0KIAotICAgIHZvaWQgc2V0SXNEZWZhdWx0KGJvb2wgaXNEZWZh
dWx0KSBmaW5hbCAgeyBtX2lzRGVmYXVsdCA9IGlzRGVmYXVsdDsgfQorICAgIHZvaWQgc2V0SXNE
ZWZhdWx0KGJvb2wgaXNEZWZhdWx0KSBmaW5hbCB7IG1faXNEZWZhdWx0ID0gaXNEZWZhdWx0OyB9
CiAKIHByaXZhdGU6CiAgICAgTG9hZGFibGVUZXh0VHJhY2soSFRNTFRyYWNrRWxlbWVudCYsIGNv
bnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBsYW5n
dWFnZSk7CkBAIC02OCw3ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgVGltZXIgbV9sb2FkVGltZXI7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFRleHRUcmFja0xvYWRlcj4gbV9sb2FkZXI7CiAgICAgVVJM
IG1fdXJsOwotICAgIGJvb2wgbV9pc0RlZmF1bHQ7CisgICAgYm9vbCBtX2lzRGVmYXVsdCB7IGZh
bHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFjay5jcHAKaW5kZXggOTZiY2Q3ZWQzNTBkMjhlMDQyZWFlNjhjZWQ1MjAxYTcx
ZjNjNWYwOS4uMWYyM2M0NDMyZjNjMTU3ZDI5ZjVlNTU3ZDQ1Njg5ODdhYjI2ZmMyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMwLDExICsz
MCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0VHJhY2su
aCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotI2luY2x1ZGUgIlRleHRUcmFjay5oIgot
CiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVk
ZSAiSFRNTE1lZGlhRWxlbWVudC5oIgpAQCAtNDYsOCArNDUsNiBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXN0YXRpYyBjb25zdCBpbnQgaW52YWxpZFRyYWNrSW5kZXggPSAtMTsKLQogY29u
c3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2s6OnN1YnRpdGxlc0tleXdvcmQoKQogewogICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHN1YnRpdGxlcygic3VidGl0
bGVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CkBAIC0xMDEsOCArOTgs
NiBAQCBUZXh0VHJhY2s6OlRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgYwogICAgICwgbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0KGNvbnRleHQpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3RyYWNrVHlwZSh0
eXBlKQotICAgICwgbV90cmFja0luZGV4KGludmFsaWRUcmFja0luZGV4KQotICAgICwgbV9yZW5k
ZXJlZFRyYWNrSW5kZXgoaW52YWxpZFRyYWNrSW5kZXgpCiB7CiAgICAgaWYgKGtpbmQgPT0gY2Fw
dGlvbnNLZXl3b3JkKCkpCiAgICAgICAgIG1fa2luZCA9IEtpbmQ6OkNhcHRpb25zOwpAQCAtMTIw
LDggKzExNSw3IEBAIFRleHRUcmFjazo6flRleHRUcmFjaygpCiB7CiAgICAgaWYgKG1fY3Vlcykg
ewogICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNr
UmVtb3ZlQ3Vlcyh0aGlzLCBtX2N1ZXMuZ2V0KCkpOwotCisgICAgICAgICAgICBtX2NsaWVudC0+
dGV4dFRyYWNrUmVtb3ZlQ3VlcygqdGhpcywgKm1fY3Vlcyk7CiAgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbV9jdWVzLT5sZW5ndGgoKTsgKytpKQogICAgICAgICAgICAgbV9jdWVzLT5p
dGVtKGkpLT5zZXRUcmFjayhudWxscHRyKTsKICAgICB9CkBAIC0xODksNyArMTgzLDcgQEAgdm9p
ZCBUZXh0VHJhY2s6OnNldEtpbmQoS2luZCBuZXdLaW5kKQogICAgIC8vIDMuIElmIHRoZSBzb3Vy
Y2VCdWZmZXIgYXR0cmlidXRlIG9uIHRoaXMgdHJhY2sgaXMgbm90IG51bGwsIHRoZW4gcXVldWUg
YSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUKICAgICAvLyBldmVudCBuYW1lZCBjaGFuZ2UgYXQgc291
cmNlQnVmZmVyLnRleHRUcmFja3MuCiAgICAgaWYgKG1fc291cmNlQnVmZmVyKQotICAgICAgICBt
X3NvdXJjZUJ1ZmZlci0+dGV4dFRyYWNrcygpLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CisgICAg
ICAgIG1fc291cmNlQnVmZmVyLT50ZXh0VHJhY2tzKCkuc2NoZWR1bGVDaGFuZ2VFdmVudCgpOwog
CiAgICAgLy8gNC4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgY2hh
bmdlIGF0IHRoZSBUZXh0VHJhY2tMaXN0IG9iamVjdCByZWZlcmVuY2VkIGJ5CiAgICAgLy8gdGhl
IHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgpAQCAtMTk4LDcg
KzE5Miw3IEBAIHZvaWQgVGV4dFRyYWNrOjpzZXRLaW5kKEtpbmQgbmV3S2luZCkKICNlbmRpZgog
CiAgICAgaWYgKG1fY2xpZW50ICYmIG9sZEtpbmQgIT0gbV9raW5kKQotICAgICAgICBtX2NsaWVu
dC0+dGV4dFRyYWNrS2luZENoYW5nZWQodGhpcyk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJh
Y2tLaW5kQ2hhbmdlZCgqdGhpcyk7CiB9CiAKIHZvaWQgVGV4dFRyYWNrOjpzZXRLaW5kS2V5d29y
ZElnbm9yaW5nQVNDSUlDYXNlKFN0cmluZ1ZpZXcga2V5d29yZCkKQEAgLTIzNiw3ICsyMzAsNyBA
QCB2b2lkIFRleHRUcmFjazo6c2V0TW9kZShNb2RlIG1vZGUpCiAgICAgLy8gSWYgbW9kZSBjaGFu
Z2VzIHRvIGRpc2FibGVkLCByZW1vdmUgdGhpcyB0cmFjaydzIGN1ZXMgZnJvbSB0aGUgY2xpZW50
CiAgICAgLy8gYmVjYXVzZSB0aGV5IHdpbGwgbm8gbG9uZ2VyIGJlIGFjY2Vzc2libGUgZnJvbSB0
aGUgY3VlcygpIGZ1bmN0aW9uLgogICAgIGlmIChtb2RlID09IE1vZGU6OkRpc2FibGVkICYmIG1f
Y2xpZW50ICYmIG1fY3VlcykKLSAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZXMo
dGhpcywgbV9jdWVzLmdldCgpKTsKKyAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1
ZXMoKnRoaXMsICptX2N1ZXMpOwogCiAgICAgaWYgKG1vZGUgIT0gTW9kZTo6U2hvd2luZyAmJiBt
X2N1ZXMpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2N1ZXMtPmxlbmd0aCgp
OyArK2kpIHsKQEAgLTI0OSw3ICsyNDMsNyBAQCB2b2lkIFRleHRUcmFjazo6c2V0TW9kZShNb2Rl
IG1vZGUpCiAgICAgbV9tb2RlID0gbW9kZTsKIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAg
bV9jbGllbnQtPnRleHRUcmFja01vZGVDaGFuZ2VkKHRoaXMpOworICAgICAgICBtX2NsaWVudC0+
dGV4dFRyYWNrTW9kZUNoYW5nZWQoKnRoaXMpOwogfQogCiBUZXh0VHJhY2tDdWVMaXN0KiBUZXh0
VHJhY2s6OmN1ZXMoKQpAQCAtMjcwLDcgKzI2NCw3IEBAIHZvaWQgVGV4dFRyYWNrOjpyZW1vdmVB
bGxDdWVzKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBt
X2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0aGlzLCBtX2N1ZXMuZ2V0KCkpOworICAgICAg
ICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlcygqdGhpcywgKm1fY3Vlcyk7CiAgICAgCiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2N1ZXMtPmxlbmd0aCgpOyArK2kpCiAgICAgICAg
IG1fY3Vlcy0+aXRlbShpKS0+c2V0VHJhY2sobnVsbHB0cik7CkBAIC0yODgsNyArMjgyLDcgQEAg
VGV4dFRyYWNrQ3VlTGlzdCogVGV4dFRyYWNrOjphY3RpdmVDdWVzKCkgY29uc3QKICAgICAvLyBo
dHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNkb20tdGV4
dHRyYWNrLWFjdGl2ZWN1ZXMKICAgICBpZiAoIW1fY3VlcyB8fCBtX21vZGUgPT0gTW9kZTo6RGlz
YWJsZWQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBtX2N1ZXMtPmFjdGl2
ZUN1ZXMoKTsKKyAgICByZXR1cm4gJm1fY3Vlcy0+YWN0aXZlQ3VlcygpOwogfQogCiBFeGNlcHRp
b25Pcjx2b2lkPiBUZXh0VHJhY2s6OmFkZEN1ZShSZWY8VGV4dFRyYWNrQ3VlPiYmIGN1ZSkKQEAg
LTMxOCwxMCArMzEyLDEwIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFRleHRUcmFjazo6YWRkQ3VlKFJl
ZjxUZXh0VHJhY2tDdWU+JiYgY3VlKQogCiAgICAgLy8gMi4gQWRkIGN1ZSB0byB0aGUgbWV0aG9k
J3MgVGV4dFRyYWNrIG9iamVjdCdzIHRleHQgdHJhY2sncyB0ZXh0IHRyYWNrIGxpc3Qgb2YgY3Vl
cy4KICAgICBjdWUtPnNldFRyYWNrKHRoaXMpOwotICAgIGVuc3VyZVRleHRUcmFja0N1ZUxpc3Qo
KS5hZGQoY3VlLnB0cigpKTsKKyAgICBlbnN1cmVUZXh0VHJhY2tDdWVMaXN0KCkuYWRkKGN1ZS5j
b3B5UmVmKCkpOwogICAgIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnRl
eHRUcmFja0FkZEN1ZSh0aGlzLCBjdWUpOworICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrQWRk
Q3VlKCp0aGlzLCBjdWUpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTMzOCwxMiArMzMyLDEy
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFRleHRUcmFjazo6cmVtb3ZlQ3VlKFRleHRUcmFja0N1ZSYg
Y3VlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTk9UX0ZPVU5EX0VSUiB9OwogCiAgICAg
Ly8gMi4gUmVtb3ZlIGN1ZSBmcm9tIHRoZSBtZXRob2QncyBUZXh0VHJhY2sgb2JqZWN0J3MgdGV4
dCB0cmFjaydzIHRleHQgdHJhY2sgbGlzdCBvZiBjdWVzLgotICAgIGlmICghbV9jdWVzIHx8ICFt
X2N1ZXMtPnJlbW92ZSgmY3VlKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURf
U1RBVEVfRVJSIH07Ci0KKyAgICBBU1NFUlQobV9jdWVzKTsKKyAgICBtX2N1ZXMtPnJlbW92ZShj
dWUpOworICAgIGN1ZS5zZXRJc0FjdGl2ZShmYWxzZSk7CiAgICAgY3VlLnNldFRyYWNrKG51bGxw
dHIpOwogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92
ZUN1ZSh0aGlzLCBjdWUpOworICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKCp0
aGlzLCBjdWUpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTM5MiwxMCArMzg2LDkgQEAgdm9p
ZCBUZXh0VHJhY2s6OmFkZFJlZ2lvbihSZWZQdHI8VlRUUmVnaW9uPiYmIHJlZ2lvbikKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIE90aGVyd2lzZTogYWRkIHJlZ2lvbiB0byB0aGUg
bWV0aG9kJ3MgVGV4dFRyYWNrIG9iamVjdCdzIHRleHQgdHJhY2sKLSAgICAvLyBsaXN0IG9mIHJl
Z2lvbnMuCisgICAgLy8gT3RoZXJ3aXNlOiBhZGQgcmVnaW9uIHRvIHRoZSBtZXRob2QncyBUZXh0
VHJhY2sgb2JqZWN0J3MgdGV4dCB0cmFjayBsaXN0IG9mIHJlZ2lvbnMuCiAgICAgcmVnaW9uLT5z
ZXRUcmFjayh0aGlzKTsKLSAgICByZWdpb25MaXN0LmFkZChXVEZNb3ZlKHJlZ2lvbikpOworICAg
IHJlZ2lvbkxpc3QuYWRkKHJlZ2lvbi5yZWxlYXNlTm9uTnVsbCgpKTsKIH0KIAogRXhjZXB0aW9u
T3I8dm9pZD4gVGV4dFRyYWNrOjpyZW1vdmVSZWdpb24oVlRUUmVnaW9uKiByZWdpb24pCkBAIC00
MDgsOSArNDAxLDggQEAgRXhjZXB0aW9uT3I8dm9pZD4gVGV4dFRyYWNrOjpyZW1vdmVSZWdpb24o
VlRUUmVnaW9uKiByZWdpb24pCiAgICAgaWYgKHJlZ2lvbi0+dHJhY2soKSAhPSB0aGlzKQogICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTk9UX0ZPVU5EX0VSUiB9OwogCi0gICAgaWYgKCFtX3Jl
Z2lvbnMgfHwgIW1fcmVnaW9ucy0+cmVtb3ZlKHJlZ2lvbikpCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJTlZBTElEX1NUQVRFX0VSUiB9OwotCisgICAgQVNTRVJUKG1fcmVnaW9ucyk7Cisg
ICAgbV9yZWdpb25zLT5yZW1vdmUoKnJlZ2lvbik7CiAgICAgcmVnaW9uLT5zZXRUcmFjayhudWxs
cHRyKTsKICAgICByZXR1cm4geyB9OwogfQpAQCAtNDIyLDcgKzQxNCw3IEBAIHZvaWQgVGV4dFRy
YWNrOjpjdWVXaWxsQ2hhbmdlKFRleHRUcmFja0N1ZSogY3VlKQogCiAgICAgLy8gVGhlIGN1ZSBt
YXkgbmVlZCB0byBiZSByZXBvc2l0aW9uZWQgaW4gdGhlIG1lZGlhIGVsZW1lbnQncyBpbnRlcnZh
bCB0cmVlLCBtYXkgbmVlZCB0bwogICAgIC8vIGJlIHJlLXJlbmRlcmVkLCBldGMsIHNvIHJlbW92
ZSBpdCBiZWZvcmUgdGhlIG1vZGlmaWNhdGlvbi4uLgotICAgIG1fY2xpZW50LT50ZXh0VHJhY2tS
ZW1vdmVDdWUodGhpcywgKmN1ZSk7CisgICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZSgq
dGhpcywgKmN1ZSk7CiB9CiAKIHZvaWQgVGV4dFRyYWNrOjpjdWVEaWRDaGFuZ2UoVGV4dFRyYWNr
Q3VlKiBjdWUpCkBAIC00MzEsMjYgKzQyMywyNCBAQCB2b2lkIFRleHRUcmFjazo6Y3VlRGlkQ2hh
bmdlKFRleHRUcmFja0N1ZSogY3VlKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBNYWtlIHN1
cmUgdGhlIFRleHRUcmFja0N1ZUxpc3Qgb3JkZXIgaXMgdXAtdG8tZGF0ZS4KLSAgICBlbnN1cmVU
ZXh0VHJhY2tDdWVMaXN0KCkudXBkYXRlQ3VlSW5kZXgoY3VlKTsKKyAgICBlbnN1cmVUZXh0VHJh
Y2tDdWVMaXN0KCkudXBkYXRlQ3VlSW5kZXgoKmN1ZSk7CiAKICAgICAvLyAuLi4gYW5kIGFkZCBp
dCBiYWNrIGFnYWluLgotICAgIG1fY2xpZW50LT50ZXh0VHJhY2tBZGRDdWUodGhpcywgKmN1ZSk7
CisgICAgbV9jbGllbnQtPnRleHRUcmFja0FkZEN1ZSgqdGhpcywgKmN1ZSk7CiB9CiAKIGludCBU
ZXh0VHJhY2s6OnRyYWNrSW5kZXgoKQogewogICAgIEFTU0VSVChtX21lZGlhRWxlbWVudCk7Ci0K
LSAgICBpZiAobV90cmFja0luZGV4ID09IGludmFsaWRUcmFja0luZGV4KQorICAgIGlmICghbV90
cmFja0luZGV4KQogICAgICAgICBtX3RyYWNrSW5kZXggPSBtX21lZGlhRWxlbWVudC0+dGV4dFRy
YWNrcygpLmdldFRyYWNrSW5kZXgoKnRoaXMpOwotCi0gICAgcmV0dXJuIG1fdHJhY2tJbmRleDsK
KyAgICByZXR1cm4gbV90cmFja0luZGV4LnZhbHVlKCk7CiB9CiAKIHZvaWQgVGV4dFRyYWNrOjpp
bnZhbGlkYXRlVHJhY2tJbmRleCgpCiB7Ci0gICAgbV90cmFja0luZGV4ID0gaW52YWxpZFRyYWNr
SW5kZXg7Ci0gICAgbV9yZW5kZXJlZFRyYWNrSW5kZXggPSBpbnZhbGlkVHJhY2tJbmRleDsKKyAg
ICBtX3RyYWNrSW5kZXggPSBzdGQ6Om51bGxvcHQ7CisgICAgbV9yZW5kZXJlZFRyYWNrSW5kZXgg
PSBzdGQ6Om51bGxvcHQ7CiB9CiAKIGJvb2wgVGV4dFRyYWNrOjppc1JlbmRlcmVkKCkKQEAgLTQ2
OSwxMSArNDU5LDkgQEAgVGV4dFRyYWNrQ3VlTGlzdCYgVGV4dFRyYWNrOjplbnN1cmVUZXh0VHJh
Y2tDdWVMaXN0KCkKIGludCBUZXh0VHJhY2s6OnRyYWNrSW5kZXhSZWxhdGl2ZVRvUmVuZGVyZWRU
cmFja3MoKQogewogICAgIEFTU0VSVChtX21lZGlhRWxlbWVudCk7Ci0gICAgCi0gICAgaWYgKG1f
cmVuZGVyZWRUcmFja0luZGV4ID09IGludmFsaWRUcmFja0luZGV4KQorICAgIGlmICghbV9yZW5k
ZXJlZFRyYWNrSW5kZXgpCiAgICAgICAgIG1fcmVuZGVyZWRUcmFja0luZGV4ID0gbV9tZWRpYUVs
ZW1lbnQtPnRleHRUcmFja3MoKS5nZXRUcmFja0luZGV4UmVsYXRpdmVUb1JlbmRlcmVkVHJhY2tz
KCp0aGlzKTsKLSAgICAKLSAgICByZXR1cm4gbV9yZW5kZXJlZFRyYWNrSW5kZXg7CisgICAgcmV0
dXJuIG1fcmVuZGVyZWRUcmFja0luZGV4LnZhbHVlKCk7CiB9CiAKIGJvb2wgVGV4dFRyYWNrOjpo
YXNDdWUoVGV4dFRyYWNrQ3VlKiBjdWUsIFRleHRUcmFja0N1ZTo6Q3VlTWF0Y2hSdWxlcyBtYXRj
aCkKQEAgLTU2NCw3ICs1NTIsNyBAQCB2b2lkIFRleHRUcmFjazo6c2V0TGFuZ3VhZ2UoY29uc3Qg
QXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKICAgICAvLyAzLiBJZiB0aGUgc291cmNlQnVmZmVyIGF0
dHJpYnV0ZSBvbiB0aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1ZXVlIGEgdGFzayB0byBm
aXJlIGEgc2ltcGxlCiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHNvdXJjZUJ1ZmZlci50
ZXh0VHJhY2tzLgogICAgIGlmIChtX3NvdXJjZUJ1ZmZlcikKLSAgICAgICAgbV9zb3VyY2VCdWZm
ZXItPnRleHRUcmFja3MoKS0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOworICAgICAgICBtX3NvdXJj
ZUJ1ZmZlci0+dGV4dFRyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIC8vIDQu
IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCB0aGUg
VGV4dFRyYWNrTGlzdCBvYmplY3QgcmVmZXJlbmNlZCBieQogICAgIC8vIHRoZSB0ZXh0VHJhY2tz
IGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFjay5oCmluZGV4IGI4MDQ5YzcwY2FlMWFhOTc4NWMwNGE1NDk5YmM3YWU2YzgzMGNl
ZGIuLjhiYjQ3YjI3NmY2ZTU1YjkxNjY2N2Q3ZmNlMTU3NDQ1NzhmM2JlOGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2suaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdo
dCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsOCArMzAsNiBA
QAogCiAjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlLmgiCiAjaW5jbHVkZSAiVHJhY2tCYXNlLmgiCi0j
aW5jbHVkZSAiVlRUQ3VlLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDQsMTIgKzQyLDEyIEBAIGNsYXNzIFZUVFJlZ2lvbkxp
c3Q7CiBjbGFzcyBUZXh0VHJhY2tDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgflRleHRU
cmFja0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChU
ZXh0VHJhY2sqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRl
eHRUcmFjayopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJh
Y2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0
VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tD
dWUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2sq
LCBUZXh0VHJhY2tDdWUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0tpbmRDaGFu
Z2VkKFRleHRUcmFjayYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrTW9kZUNoYW5n
ZWQoVGV4dFRyYWNrJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWVzKFRl
eHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYsIFRleHRU
cmFja0N1ZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRU
cmFjayYsIFRleHRUcmFja0N1ZSYpID0gMDsKIH07CiAKIGNsYXNzIFRleHRUcmFjayA6IHB1Ymxp
YyBUcmFja0Jhc2UsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKQEAgLTE2Nyw4
ICsxNjUsOCBAQCBwcml2YXRlOgogICAgIFRleHRUcmFja0NsaWVudCogbV9jbGllbnQ7CiAgICAg
VGV4dFRyYWNrVHlwZSBtX3RyYWNrVHlwZTsKICAgICBSZWFkaW5lc3NTdGF0ZSBtX3JlYWRpbmVz
c1N0YXRlIHsgTm90TG9hZGVkIH07Ci0gICAgaW50IG1fdHJhY2tJbmRleDsKLSAgICBpbnQgbV9y
ZW5kZXJlZFRyYWNrSW5kZXg7CisgICAgc3RkOjpvcHRpb25hbDxpbnQ+IG1fdHJhY2tJbmRleDsK
KyAgICBzdGQ6Om9wdGlvbmFsPGludD4gbV9yZW5kZXJlZFRyYWNrSW5kZXg7CiAgICAgYm9vbCBt
X2hhc0JlZW5Db25maWd1cmVkIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlLmNwcAppbmRleCBmY2JhMTlkMGRiYmFkNGUwMDQ3OTA5MWVjZDU2
ZTgyNzJkY2U1OGVkLi4zMzkxNzJkMTA1NTIzMDI1M2VjZWM0MTEwNDc4YmRkM2U5ZjE1NGQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCkBAIC0xLDYgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBHb29nbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCkBAIC0zMCwxMSArMzAsMTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlLmgiCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
CiAKLSNpbmNsdWRlICJUZXh0VHJhY2tDdWUuaCIKLQogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFt
ZXMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIK
QEAgLTQ5LDggKzQ4LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgY29uc3Qg
aW50IGludmFsaWRDdWVJbmRleCA9IC0xOwotCiBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRUcmFj
a0N1ZTo6Y3VlU2hhZG93UHNldWRvSWQoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9taWNTdHJpbmc+IGN1ZSgiY3VlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCk7CkBAIC02MCw5ICs1Nyw2IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNr
Q3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCgpCiBUZXh0VHJhY2tDdWU6OlRleHRUcmFja0N1ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25z
dCBNZWRpYVRpbWUmIGVuZCkKICAgICA6IG1fc3RhcnRUaW1lKHN0YXJ0KQogICAgICwgbV9lbmRU
aW1lKGVuZCkKLSAgICAsIG1fY3VlSW5kZXgoaW52YWxpZEN1ZUluZGV4KQotICAgICwgbV9wcm9j
ZXNzaW5nQ3VlQ2hhbmdlcygwKQotICAgICwgbV90cmFjaygwKQogICAgICwgbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0KGNvbnRleHQpCiAgICAgLCBtX2lzQWN0aXZlKGZhbHNlKQogICAgICwgbV9w
YXVzZU9uRXhpdChmYWxzZSkKQEAgLTE0OSwyMyArMTQzLDYgQEAgdm9pZCBUZXh0VHJhY2tDdWU6
OnNldFBhdXNlT25FeGl0KGJvb2wgdmFsdWUpCiAgICAgbV9wYXVzZU9uRXhpdCA9IHZhbHVlOwog
fQogCi1pbnQgVGV4dFRyYWNrQ3VlOjpjdWVJbmRleCgpCi17Ci0gICAgaWYgKG1fY3VlSW5kZXgg
PT0gaW52YWxpZEN1ZUluZGV4KSB7Ci0gICAgICAgIEFTU0VSVCh0cmFjaygpKTsKLSAgICAgICAg
QVNTRVJUKHRyYWNrKCktPmN1ZXMoKSk7Ci0gICAgICAgIGlmIChUZXh0VHJhY2tDdWVMaXN0KiBj
dWVMaXN0ID0gdHJhY2soKS0+Y3VlcygpKQotICAgICAgICAgICAgbV9jdWVJbmRleCA9IGN1ZUxp
c3QtPmdldEN1ZUluZGV4KHRoaXMpOwotICAgIH0KLQotICAgIHJldHVybiBtX2N1ZUluZGV4Owot
fQotCi12b2lkIFRleHRUcmFja0N1ZTo6aW52YWxpZGF0ZUN1ZUluZGV4KCkKLXsKLSAgICBtX2N1
ZUluZGV4ID0gaW52YWxpZEN1ZUluZGV4OwotfQotCiBib29sIFRleHRUcmFja0N1ZTo6ZGlzcGF0
Y2hFdmVudChFdmVudCYgZXZlbnQpCiB7CiAgICAgLy8gV2hlbiBhIFRleHRUcmFjaydzIG1vZGUg
aXMgZGlzYWJsZWQ6IG5vIGN1ZXMgYXJlIGFjdGl2ZSwgbm8gZXZlbnRzIGZpcmVkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKaW5kZXggNTczNTFkYzYwZTJiNmVhZjUw
ODBmMDMwOWE0NTE2OGY3ODMwYTczNC4uNDkwNzU0NmEyN2FlNDgyNGUxMmExNDBhOTlhZmU5NjQ4
MzE1NTBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tD
dWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCkBAIC0x
LDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTY1LDkgKzY1LDYgQEAgcHVibGljOgogICAgIE1lZGlhVGltZSBlbmRNZWRpYVRp
bWUoKSBjb25zdCB7IHJldHVybiBtX2VuZFRpbWU7IH0KICAgICB2b2lkIHNldEVuZFRpbWUoY29u
c3QgTWVkaWFUaW1lJik7CiAKLSAgICBpbnQgY3VlSW5kZXgoKTsKLSAgICB2b2lkIGludmFsaWRh
dGVDdWVJbmRleCgpOwotCiAgICAgYm9vbCBpc0FjdGl2ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRJc0FjdGl2ZShib29sKTsKIApAQCAtODIsOSArNzksNiBAQCBwdWJsaWM6CiAKICAgICBlbnVt
IEN1ZU1hdGNoUnVsZXMgeyBNYXRjaEFsbEZpZWxkcywgSWdub3JlRHVyYXRpb24gfTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNFcXVhbChjb25zdCBUZXh0VHJhY2tDdWUmLCBDdWVNYXRjaFJ1bGVzKSBj
b25zdDsKLXByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGN1ZUNvbnRlbnRzTWF0Y2goY29uc3Qg
VGV4dFRyYWNrQ3VlJikgY29uc3Q7Ci1wdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGRvZXNFeHRl
bmRDdWUoY29uc3QgVGV4dFRyYWNrQ3VlJikgY29uc3Q7CiAKICAgICB2b2lkIHdpbGxDaGFuZ2Uo
KTsKQEAgLTEwOCwxMyArMTAyLDE0IEBAIHByaXZhdGU6CiAgICAgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBUZXh0VHJhY2tD
dWVFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gJm1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dDsgfQogCisgICAgdmlydHVhbCBib29sIGN1ZUNvbnRlbnRzTWF0Y2go
Y29uc3QgVGV4dFRyYWNrQ3VlJikgY29uc3Q7CisKICAgICBTdHJpbmcgbV9pZDsKICAgICBNZWRp
YVRpbWUgbV9zdGFydFRpbWU7CiAgICAgTWVkaWFUaW1lIG1fZW5kVGltZTsKLSAgICBpbnQgbV9j
dWVJbmRleDsKLSAgICBpbnQgbV9wcm9jZXNzaW5nQ3VlQ2hhbmdlczsKKyAgICBpbnQgbV9wcm9j
ZXNzaW5nQ3VlQ2hhbmdlcyB7IDAgfTsKIAotICAgIFRleHRUcmFjayogbV90cmFjazsKKyAgICBU
ZXh0VHJhY2sqIG1fdHJhY2sgeyBudWxscHRyIH07CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuY3BwCmluZGV4IGZmZDhlYWU0ZDk5MzY0ODBhNmE1YmMz
NTkyZmUwODBiNzE2ZTEzYTEuLjE0MjEyZTk2ZmYyMWJiMDVlYjE3MDUwMDg1NTg5NGYzMmFmZjhi
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmNw
cApAQCAtMSw1ICsxLDYgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5
LDExNyArMzAsMTAwIEBACiAKICNpbmNsdWRlICJUZXh0VHJhY2tDdWVMaXN0LmgiCiAKLW5hbWVz
cGFjZSBXZWJDb3JlIHsKKy8vIENoZWNraW5nIHNvcnRpbmcgaXMgdG9vIHNsb3cgZm9yIGdlbmVy
YWwgdXNlOyB0dXJuIGl0IG9uIGV4cGxpY2l0bHkgd2hlbiB3b3JraW5nIG9uIHRoaXMgY2xhc3Mu
CisjdW5kZWYgQ0hFQ0tfU09SVElORwogCi1UZXh0VHJhY2tDdWVMaXN0OjpUZXh0VHJhY2tDdWVM
aXN0KCkKLXsKLX0KKyNpZmRlZiBDSEVDS19TT1JUSU5HCisjZGVmaW5lIEFTU0VSVF9TT1JURUQo
YmVnaW4sIGVuZCkgQVNTRVJUKHN0ZDo6aXNfc29ydGVkKGJlZ2luLCBlbmQsIGNvbXBhcmVDdWVz
KSkKKyNlbHNlCisjZGVmaW5lIEFTU0VSVF9TT1JURUQoYmVnaW4sIGVuZCkgKCh2b2lkKTApCisj
ZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgewogCi11bnNpZ25lZCBsb25nIFRleHRUcmFja0N1
ZUxpc3Q6Omxlbmd0aCgpIGNvbnN0CitzdGF0aWMgaW5saW5lIGJvb2wgY29tcGFyZUN1ZXMoY29u
c3QgUmVmUHRyPFRleHRUcmFja0N1ZT4mIGEsIGNvbnN0IFJlZlB0cjxUZXh0VHJhY2tDdWU+JiBi
KQogewotICAgIHJldHVybiBtX2xpc3Quc2l6ZSgpOworICAgIHJldHVybiBhLT5pc09yZGVyZWRC
ZWZvcmUoYi5nZXQoKSk7CiB9CiAKLXVuc2lnbmVkIGxvbmcgVGV4dFRyYWNrQ3VlTGlzdDo6Z2V0
Q3VlSW5kZXgoVGV4dFRyYWNrQ3VlKiBjdWUpIGNvbnN0Cit1bnNpZ25lZCBUZXh0VHJhY2tDdWVM
aXN0OjpjdWVJbmRleChUZXh0VHJhY2tDdWUmIGN1ZSkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9s
aXN0LmZpbmQoY3VlKTsKKyAgICBBU1NFUlQobV92ZWN0b3IuY29udGFpbnMoJmN1ZSkpOworICAg
IHJldHVybiBtX3ZlY3Rvci5maW5kKCZjdWUpOwogfQogCiBUZXh0VHJhY2tDdWUqIFRleHRUcmFj
a0N1ZUxpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0CiB7Ci0gICAgaWYgKGluZGV4IDwg
bV9saXN0LnNpemUoKSkKLSAgICAgICAgcmV0dXJuIG1fbGlzdFtpbmRleF0uZ2V0KCk7Ci0gICAg
cmV0dXJuIDA7CisgICAgaWYgKGluZGV4ID49IG1fdmVjdG9yLnNpemUoKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIG1fdmVjdG9yW2luZGV4XS5nZXQoKTsKIH0KIAogVGV4
dFRyYWNrQ3VlKiBUZXh0VHJhY2tDdWVMaXN0OjpnZXRDdWVCeUlkKGNvbnN0IFN0cmluZyYgaWQp
IGNvbnN0CiB7Ci0gICAgZm9yIChhdXRvJiBjdWUgOiBtX2xpc3QpIHsKKyAgICBmb3IgKGF1dG8m
IGN1ZSA6IG1fdmVjdG9yKSB7CiAgICAgICAgIGlmIChjdWUtPmlkKCkgPT0gaWQpCiAgICAgICAg
ICAgICByZXR1cm4gY3VlLmdldCgpOwogICAgIH0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAotVGV4dFRyYWNrQ3VlTGlzdCogVGV4dFRyYWNrQ3VlTGlzdDo6YWN0aXZl
Q3VlcygpCitUZXh0VHJhY2tDdWVMaXN0JiBUZXh0VHJhY2tDdWVMaXN0OjphY3RpdmVDdWVzKCkK
IHsKICAgICBpZiAoIW1fYWN0aXZlQ3VlcykKICAgICAgICAgbV9hY3RpdmVDdWVzID0gY3JlYXRl
KCk7CiAKLSAgICBtX2FjdGl2ZUN1ZXMtPmNsZWFyKCk7Ci0gICAgZm9yIChhdXRvJiBjdWUgOiBt
X2xpc3QpIHsKKyAgICBWZWN0b3I8UmVmUHRyPFRleHRUcmFja0N1ZT4+IGFjdGl2ZUN1ZXNWZWN0
b3I7CisgICAgZm9yIChhdXRvJiBjdWUgOiBtX3ZlY3RvcikgewogICAgICAgICBpZiAoY3VlLT5p
c0FjdGl2ZSgpKQotICAgICAgICAgICAgbV9hY3RpdmVDdWVzLT5hZGQoY3VlKTsKKyAgICAgICAg
ICAgIGFjdGl2ZUN1ZXNWZWN0b3IuYXBwZW5kKGN1ZSk7CiAgICAgfQotICAgIHJldHVybiBtX2Fj
dGl2ZUN1ZXMuZ2V0KCk7CisgICAgQVNTRVJUX1NPUlRFRChhY3RpdmVDdWVzVmVjdG9yLmJlZ2lu
KCksIGFjdGl2ZUN1ZXNWZWN0b3IuZW5kKCkpOworICAgIG1fYWN0aXZlQ3Vlcy0+bV92ZWN0b3Ig
PSBXVEZNb3ZlKGFjdGl2ZUN1ZXNWZWN0b3IpOworCisgICAgLy8gRklYTUU6IFRoaXMgbGlzdCBv
ZiBhY3RpdmUgY3VlcyBpcyBub3QgdXBkYXRlZCBhcyBjdWVzIGFyZSBhZGRlZCwgcmVtb3ZlZCwg
YmVjb21lIGFjdGl2ZSwgYW5kIGJlY29tZSBpbmFjdGl2ZS4KKyAgICAvLyBJbnN0ZWFkIGl0IGlz
IG9ubHkgdXBkYXRlZCBlYWNoIHRpbWUgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYWdhaW4uIFRo
YXQgaXMgbm90IGNvbnNpc3RlbnQgd2l0aCBvdGhlciBkeW5hbWljIERPTSBsaXN0cy4KKyAgICBy
ZXR1cm4gKm1fYWN0aXZlQ3VlczsKIH0KIAotYm9vbCBUZXh0VHJhY2tDdWVMaXN0OjphZGQoUGFz
c1JlZlB0cjxUZXh0VHJhY2tDdWU+IGN1ZSkKK3ZvaWQgVGV4dFRyYWNrQ3VlTGlzdDo6YWRkKFJl
ZjxUZXh0VHJhY2tDdWU+JiYgY3VlKQogewogICAgIEFTU0VSVChjdWUtPnN0YXJ0TWVkaWFUaW1l
KCkgPj0gTWVkaWFUaW1lOjp6ZXJvVGltZSgpKTsKICAgICBBU1NFUlQoY3VlLT5lbmRNZWRpYVRp
bWUoKSA+PSBNZWRpYVRpbWU6Onplcm9UaW1lKCkpOwogCi0gICAgcmV0dXJuIGFkZChjdWUsIDAs
IG1fbGlzdC5zaXplKCkpOworICAgIFJlZlB0cjxUZXh0VHJhY2tDdWU+IGN1ZVJlZlB0ciB7IFdU
Rk1vdmUoY3VlKSB9OworICAgIHVuc2lnbmVkIGluc2VydGlvblBvc2l0aW9uID0gc3RkOjp1cHBl
cl9ib3VuZChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSwgY3VlUmVmUHRyLCBjb21w
YXJlQ3VlcykgLSBtX3ZlY3Rvci5iZWdpbigpOworICAgIEFTU0VSVChpbnNlcnRpb25Qb3NpdGlv
biA9PSBtX3ZlY3Rvci5zaXplKCkgfHwgbV92ZWN0b3JbaW5zZXJ0aW9uUG9zaXRpb25dICE9IGN1
ZS5wdHIoKSk7CisgICAgQVNTRVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5l
bmQoKSk7CisgICAgbV92ZWN0b3IuaW5zZXJ0KGluc2VydGlvblBvc2l0aW9uLCBXVEZNb3ZlKGN1
ZVJlZlB0cikpOworICAgIEFTU0VSVF9TT1JURUQobV92ZWN0b3IuYmVnaW4oKSwgbV92ZWN0b3Iu
ZW5kKCkpOwogfQogCi1ib29sIFRleHRUcmFja0N1ZUxpc3Q6OmFkZChQYXNzUmVmUHRyPFRleHRU
cmFja0N1ZT4gcHJwQ3VlLCBzaXplX3Qgc3RhcnQsIHNpemVfdCBlbmQpCit2b2lkIFRleHRUcmFj
a0N1ZUxpc3Q6OnJlbW92ZShUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKLSAgICBBU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTihzdGFydCA8PSBtX2xpc3Quc2l6ZSgpKTsKLSAgICBBU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihlbmQgPD0gbV9saXN0LnNpemUoKSk7Ci0KLSAgICAv
LyBNYWludGFpbiB0ZXh0IHRyYWNrIGN1ZSBvcmRlcjoKLSAgICAvLyBodHRwOi8vd3d3LndoYXR3
Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyN0ZXh0LXRyYWNrLWN1ZS1vcmRlcgot
ICAgIFJlZlB0cjxUZXh0VHJhY2tDdWU+IGN1ZSA9IHBycEN1ZTsKLSAgICBpZiAoc3RhcnQgPT0g
ZW5kKSB7Ci0gICAgICAgIGlmICghbV9saXN0LmlzRW1wdHkoKSAmJiAoc3RhcnQgPiAwKSAmJiAo
bV9saXN0W3N0YXJ0IC0gMV0uZ2V0KCkgPT0gY3VlLmdldCgpKSkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgICAgICBtX2xpc3QuaW5zZXJ0KHN0YXJ0LCBjdWUpOwotICAgICAgICBp
bnZhbGlkYXRlQ3VlSW5kZXhlcyhzdGFydCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0K
LQotICAgIHNpemVfdCBpbmRleCA9IChzdGFydCArIGVuZCkgLyAyOwotICAgIGlmIChjdWUtPmlz
T3JkZXJlZEJlZm9yZShtX2xpc3RbaW5kZXhdLmdldCgpKSkKLSAgICAgICAgcmV0dXJuIGFkZChX
VEZNb3ZlKGN1ZSksIHN0YXJ0LCBpbmRleCk7Ci0KLSAgICByZXR1cm4gYWRkKFdURk1vdmUoY3Vl
KSwgaW5kZXggKyAxLCBlbmQpOworICAgIEFTU0VSVF9TT1JURUQobV92ZWN0b3IuYmVnaW4oKSwg
bV92ZWN0b3IuZW5kKCkpOworICAgIG1fdmVjdG9yLnJlbW92ZShjdWVJbmRleChjdWUpKTsKKyAg
ICBBU1NFUlRfU09SVEVEKG1fdmVjdG9yLmJlZ2luKCksIG1fdmVjdG9yLmVuZCgpKTsKIH0KIAot
Ym9vbCBUZXh0VHJhY2tDdWVMaXN0OjpyZW1vdmUoVGV4dFRyYWNrQ3VlKiBjdWUpCit2b2lkIFRl
eHRUcmFja0N1ZUxpc3Q6OnVwZGF0ZUN1ZUluZGV4KFRleHRUcmFja0N1ZSYgY3VlKQogewotICAg
IHNpemVfdCBpbmRleCA9IG1fbGlzdC5maW5kKGN1ZSk7Ci0gICAgaWYgKGluZGV4ID09IG5vdEZv
dW5kKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBjdWUtPnNldElzQWN0aXZlKGZhbHNl
KTsKLSAgICBtX2xpc3QucmVtb3ZlKGluZGV4KTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9v
bCBUZXh0VHJhY2tDdWVMaXN0Ojpjb250YWlucyhUZXh0VHJhY2tDdWUqIGN1ZSkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9saXN0LmNvbnRhaW5zKGN1ZSk7Ci19Ci0KLWJvb2wgVGV4dFRyYWNrQ3Vl
TGlzdDo6dXBkYXRlQ3VlSW5kZXgoVGV4dFRyYWNrQ3VlKiBjdWUpCi17Ci0gICAgaWYgKCFjb250
YWlucyhjdWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgcmVtb3ZlKGN1ZSk7
Ci0gICAgcmV0dXJuIGFkZChjdWUpOwotfQotCi12b2lkIFRleHRUcmFja0N1ZUxpc3Q6OmNsZWFy
KCkKLXsKLSAgICBtX2xpc3QuY2xlYXIoKTsKLX0KKyAgICBhdXRvIGN1ZVBvc2l0aW9uID0gbV92
ZWN0b3IuYmVnaW4oKSArIGN1ZUluZGV4KGN1ZSk7CisgICAgYXV0byBhZnRlckN1ZVBvc2l0aW9u
ID0gY3VlUG9zaXRpb24gKyAxOworCisgICAgQVNTRVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdpbigp
LCBjdWVQb3NpdGlvbik7CisgICAgQVNTRVJUX1NPUlRFRChhZnRlckN1ZVBvc2l0aW9uLCBtX3Zl
Y3Rvci5lbmQoKSk7CisKKyAgICBhdXRvIHJlaW5zZXJ0aW9uUG9zaXRpb24gPSBzdGQ6OnVwcGVy
X2JvdW5kKG1fdmVjdG9yLmJlZ2luKCksIGN1ZVBvc2l0aW9uLCAqY3VlUG9zaXRpb24sIGNvbXBh
cmVDdWVzKTsKKyAgICBpZiAocmVpbnNlcnRpb25Qb3NpdGlvbiAhPSBjdWVQb3NpdGlvbikKKyAg
ICAgICAgc3RkOjpyb3RhdGUocmVpbnNlcnRpb25Qb3NpdGlvbiwgY3VlUG9zaXRpb24sIGFmdGVy
Q3VlUG9zaXRpb24pOworICAgIGVsc2UgeworICAgICAgICByZWluc2VydGlvblBvc2l0aW9uID0g
c3RkOjp1cHBlcl9ib3VuZChhZnRlckN1ZVBvc2l0aW9uLCBtX3ZlY3Rvci5lbmQoKSwgKmN1ZVBv
c2l0aW9uLCBjb21wYXJlQ3Vlcyk7CisgICAgICAgIGlmIChyZWluc2VydGlvblBvc2l0aW9uICE9
IGFmdGVyQ3VlUG9zaXRpb24pCisgICAgICAgICAgICBzdGQ6OnJvdGF0ZShjdWVQb3NpdGlvbiwg
YWZ0ZXJDdWVQb3NpdGlvbiwgcmVpbnNlcnRpb25Qb3NpdGlvbik7CisgICAgfQogCi12b2lkIFRl
eHRUcmFja0N1ZUxpc3Q6OmludmFsaWRhdGVDdWVJbmRleGVzKHNpemVfdCBzdGFydCkKLXsKLSAg
ICBmb3IgKHNpemVfdCBpID0gc3RhcnQ7IGkgPCBtX2xpc3Quc2l6ZSgpOyArK2kpCi0gICAgICAg
IG1fbGlzdFtpXS0+aW52YWxpZGF0ZUN1ZUluZGV4KCk7CisgICAgQVNTRVJUX1NPUlRFRChtX3Zl
Y3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlz
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmgKaW5kZXgg
YTIxOGZiNjkwODk2MjRjMWYyODM5Yzc1M2FjMTI1ZmYwZGIzYzI5OS4uZmUwNGM0NDZkMjk3N2M3
ZmNlOTMyYzYzYjgyOTc5ODM0ZjIyNWU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UZXh0VHJhY2tDdWVMaXN0LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yOCw0NCArMjksNDIgQEAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
CiAKICNpbmNsdWRlICJUZXh0VHJhY2tDdWUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFRleHRUcmFja0N1ZUxpc3QgOiBwdWJsaWMg
UmVmQ291bnRlZDxUZXh0VHJhY2tDdWVMaXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxU
ZXh0VHJhY2tDdWVMaXN0PiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVGV4dFRyYWNrQ3VlTGlzdCk7Ci0gICAgfQotCi0gICAgflRleHRUcmFja0N1ZUxpc3Qo
KSB7IH0KLQotICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQg
bG9uZyBnZXRDdWVJbmRleChUZXh0VHJhY2tDdWUqKSBjb25zdDsKKyAgICBzdGF0aWMgUmVmPFRl
eHRUcmFja0N1ZUxpc3Q+IGNyZWF0ZSgpOwogCisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7
CiAgICAgVGV4dFRyYWNrQ3VlKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKICAgICBUZXh0
VHJhY2tDdWUqIGdldEN1ZUJ5SWQoY29uc3QgU3RyaW5nJikgY29uc3Q7Ci0gICAgVGV4dFRyYWNr
Q3VlTGlzdCogYWN0aXZlQ3VlcygpOwogCi0gICAgYm9vbCBhZGQoUGFzc1JlZlB0cjxUZXh0VHJh
Y2tDdWU+KTsKLSAgICBib29sIHJlbW92ZShUZXh0VHJhY2tDdWUqKTsKLSAgICBib29sIGNvbnRh
aW5zKFRleHRUcmFja0N1ZSopIGNvbnN0OwotICAgIAotICAgIGJvb2wgdXBkYXRlQ3VlSW5kZXgo
VGV4dFRyYWNrQ3VlKik7CisgICAgdW5zaWduZWQgY3VlSW5kZXgoVGV4dFRyYWNrQ3VlJikgY29u
c3Q7CisKKyAgICB2b2lkIGFkZChSZWY8VGV4dFRyYWNrQ3VlPiYmKTsKKyAgICB2b2lkIHJlbW92
ZShUZXh0VHJhY2tDdWUmKTsKKyAgICB2b2lkIHVwZGF0ZUN1ZUluZGV4KFRleHRUcmFja0N1ZSYp
OworCisgICAgVGV4dFRyYWNrQ3VlTGlzdCYgYWN0aXZlQ3VlcygpOwogCiBwcml2YXRlOgotICAg
IFRleHRUcmFja0N1ZUxpc3QoKTsKLSAgICBib29sIGFkZChQYXNzUmVmUHRyPFRleHRUcmFja0N1
ZT4sIHNpemVfdCwgc2l6ZV90KTsKLSAgICB2b2lkIGNsZWFyKCk7Ci0gICAgdm9pZCBpbnZhbGlk
YXRlQ3VlSW5kZXhlcyhzaXplX3QpOworICAgIFRleHRUcmFja0N1ZUxpc3QoKSA9IGRlZmF1bHQ7
CiAKLSAgICBWZWN0b3I8UmVmUHRyPFRleHRUcmFja0N1ZT4+IG1fbGlzdDsKKyAgICBWZWN0b3I8
UmVmUHRyPFRleHRUcmFja0N1ZT4+IG1fdmVjdG9yOwogICAgIFJlZlB0cjxUZXh0VHJhY2tDdWVM
aXN0PiBtX2FjdGl2ZUN1ZXM7CiB9OwogCitpbmxpbmUgUmVmPFRleHRUcmFja0N1ZUxpc3Q+IFRl
eHRUcmFja0N1ZUxpc3Q6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4
dFRyYWNrQ3VlTGlzdCk7Cit9CisKK2lubGluZSB1bnNpZ25lZCBUZXh0VHJhY2tDdWVMaXN0Ojps
ZW5ndGgoKSBjb25zdAoreworICAgIHJldHVybiBtX3ZlY3Rvci5zaXplKCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAppbmRleCA3ZGQ4ZGRiNGJmNjRlNWQ4MjMx
NmE0ZWZkZWM1MzE3ZTE1MGQ2YzFkLi5jOGEzZjM4ZDU3OGU0ZmFlNDE1ZWY4ZWRlMmM1NDAzZjhm
YWM1YzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02OCw3ICs2
OCw3IEBAIHZvaWQgTWVkaWFUcmFja0Jhc2U6OnNldEtpbmRJbnRlcm5hbChjb25zdCBBdG9taWNT
dHJpbmcmIGtpbmQpCiAgICAgaWYgKGlzVmFsaWRLaW5kKGtpbmQpKQogICAgICAgICBtX2tpbmQg
PSBraW5kOwogICAgIGVsc2UKLSAgICAgICAgbV9raW5kID0gZGVmYXVsdEtpbmRLZXl3b3JkKCk7
CisgICAgICAgIG1fa2luZCA9IGVtcHR5QXRvbTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmgKaW5kZXggZDZjNWU0ODU2YTU1YWE4
OGY0YzY5ZjA3M2QwN2QwNmQ0YjBiNWM3MC4uZmE4MjUyNzViOGNhZTE1YmEwMTkxNGQ5ODA4OTcz
Y2E2N2NjYTFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jh
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw5ICsy
Nyw3IEBACiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbmNsdWRlICJFdmVudFRhcmdl
dC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1R5cGVDYXN0
cy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTk3LDcgKzk1LDYgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgYm9vbCBpc1ZhbGlkS2luZChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCA9IDA7Ci0g
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGRlZmF1bHRLaW5kS2V5d29yZCgpIGNvbnN0
ID0gMDsKIAogICAgIEF0b21pY1N0cmluZyBtX2tpbmQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5jcHAKaW5kZXggYjdlNzlkMGY3ZTZiYmM3NGU0MWE3MWZk
NWJlZTc0MWRjMTJkN2RkMi4uY2ZjMTYyMjNmMzUzNGM5ZGY2YWNkZjBkNzVhMmNiZjA5MDhiODNh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuY3BwCkBAIC0x
LDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDU3
ICsyOSw0MSBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0KIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotVlRUUmVnaW9uTGlzdDo6VlRUUmVnaW9uTGlzdCgpCi17Ci19Ci0KLXVuc2lnbmVk
IGxvbmcgVlRUUmVnaW9uTGlzdDo6bGVuZ3RoKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9saXN0
LnNpemUoKTsKLX0KLQogVlRUUmVnaW9uKiBWVFRSZWdpb25MaXN0OjppdGVtKHVuc2lnbmVkIGlu
ZGV4KSBjb25zdAogewotICAgIGlmIChpbmRleCA8IG1fbGlzdC5zaXplKCkpCi0gICAgICAgIHJl
dHVybiBtX2xpc3RbaW5kZXhdLmdldCgpOwotCi0gICAgcmV0dXJuIDA7CisgICAgaWYgKGluZGV4
ID49IG1fdmVjdG9yLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJu
IGNvbnN0X2Nhc3Q8VlRUUmVnaW9uKj4obV92ZWN0b3JbaW5kZXhdLnB0cigpKTsKIH0KIAogVlRU
UmVnaW9uKiBWVFRSZWdpb25MaXN0OjpnZXRSZWdpb25CeUlkKGNvbnN0IFN0cmluZyYgaWQpIGNv
bnN0CiB7CisgICAgLy8gRklYTUU6IFdoeSBpcyB0aGlzIHNwZWNpYWwgY2FzZSBuZWVkZWQ/CiAg
ICAgaWYgKGlkLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBmb3IgKGNvbnN0
IGF1dG8mIHJlZ2lvbiA6IG1fbGlzdCkgeworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBm
b3IgKGF1dG8mIHJlZ2lvbiA6IG1fdmVjdG9yKSB7CiAgICAgICAgIGlmIChyZWdpb24tPmlkKCkg
PT0gaWQpCi0gICAgICAgICAgICByZXR1cm4gcmVnaW9uLmdldCgpOworICAgICAgICAgICAgcmV0
dXJuIGNvbnN0X2Nhc3Q8VlRUUmVnaW9uKj4ocmVnaW9uLnB0cigpKTsKICAgICB9Ci0KLSAgICBy
ZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBWVFRSZWdpb25MaXN0Ojph
ZGQoUGFzc1JlZlB0cjxWVFRSZWdpb24+IHJlZ2lvbikKK3ZvaWQgVlRUUmVnaW9uTGlzdDo6YWRk
KFJlZjxWVFRSZWdpb24+JiYgcmVnaW9uKQogewotICAgIG1fbGlzdC5hcHBlbmQocmVnaW9uKTsK
KyAgICBtX3ZlY3Rvci5hcHBlbmQoV1RGTW92ZShyZWdpb24pKTsKIH0KIAotYm9vbCBWVFRSZWdp
b25MaXN0OjpyZW1vdmUoVlRUUmVnaW9uKiByZWdpb24pCit2b2lkIFZUVFJlZ2lvbkxpc3Q6OnJl
bW92ZShWVFRSZWdpb24mIHJlZ2lvbikKIHsKLSAgICBzaXplX3QgaW5kZXggPSBtX2xpc3QuZmlu
ZChyZWdpb24pOwotICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgbV9saXN0LnJlbW92ZShpbmRleCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
LXZvaWQgVlRUUmVnaW9uTGlzdDo6Y2xlYXIoKQotewotICAgIG1fbGlzdC5jbGVhcigpOworICAg
IGZvciAodW5zaWduZWQgaSA9IDAsIHNpemUgPSBtX3ZlY3Rvci5zaXplKCk7IGkgPCBzaXplOyAr
K2kpIHsKKyAgICAgICAgaWYgKG1fdmVjdG9yW2ldLnB0cigpID09ICZyZWdpb24pIHsKKyAgICAg
ICAgICAgIG1fdmVjdG9yLnJlbW92ZShpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25M
aXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaAppbmRleCAy
ZmRkZGMyZWQxOWE1NmU0ODFhYWNmNDY1YmM4OGE3YjJiN2ZjY2UzLi43ZjlmZDU1ZGNiZTEyNDdm
MjhiOWMzOTM5YzIwOGJlOGU5NDA2ZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZU
VFJlZ2lvbkxpc3QuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNCBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yOSwzNiArMjksNDMgQEAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAK
ICNpbmNsdWRlICJWVFRSZWdpb24uaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFZUVFJlZ2lvbkxpc3QgOiBwdWJsaWMgUmVmQ291bnRl
ZDxWVFRSZWdpb25MaXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxWVFRSZWdpb25MaXN0
PiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVlRUUmVnaW9u
TGlzdCk7Ci0gICAgfQotCi0gICAgflZUVFJlZ2lvbkxpc3QoKSB7IH0KLQotICAgIHVuc2lnbmVk
IGxvbmcgbGVuZ3RoKCkgY29uc3Q7CisgICAgc3RhdGljIFJlZjxWVFRSZWdpb25MaXN0PiBjcmVh
dGUoKTsKIAorICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwogICAgIFZUVFJlZ2lvbiogaXRl
bSh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CiAgICAgVlRUUmVnaW9uKiBnZXRSZWdpb25CeUlkKGNv
bnN0IFN0cmluZyYpIGNvbnN0OwogCi0gICAgdm9pZCBhZGQoUGFzc1JlZlB0cjxWVFRSZWdpb24+
KTsKLSAgICBib29sIHJlbW92ZShWVFRSZWdpb24qKTsKKyAgICB2b2lkIGFkZChSZWY8VlRUUmVn
aW9uPiYmKTsKKyAgICB2b2lkIHJlbW92ZShWVFRSZWdpb24mKTsKIAogcHJpdmF0ZToKLSAgICBW
VFRSZWdpb25MaXN0KCk7CisgICAgVlRUUmVnaW9uTGlzdCgpID0gZGVmYXVsdDsKKwogICAgIHZv
aWQgY2xlYXIoKTsKIAotICAgIFZlY3RvcjxSZWZQdHI8VlRUUmVnaW9uPj4gbV9saXN0OworICAg
IFZlY3RvcjxSZWY8VlRUUmVnaW9uPj4gbV92ZWN0b3I7CiB9OwogCitpbmxpbmUgUmVmPFZUVFJl
Z2lvbkxpc3Q+IFZUVFJlZ2lvbkxpc3Q6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVlRUUmVnaW9uTGlzdCk7Cit9CisKK2lubGluZSB1bnNpZ25lZCBWVFRSZWdpb25MaXN0
OjpsZW5ndGgoKSBjb25zdAoreworICAgIHJldHVybiBtX3ZlY3Rvci5zaXplKCk7Cit9CisKK2lu
bGluZSB2b2lkIFZUVFJlZ2lvbkxpc3Q6OmNsZWFyKCkKK3sKKyAgICBtX3ZlY3Rvci5jbGVhcigp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU9f
VFJBQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxp
c3QuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmlkbAppbmRl
eCA1MzgxZDM5YzY2ZjFjZmMzZDAyMWIxZGM0MGVjMzI4MTQyYzdiY2QxLi44NDMxZDhiNTFiMmFk
NDBkOWEwOTFiNjdjYjg1ZmU1MDk2MDlhODkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVlRUUmVnaW9uTGlzdC5pZGwKQEAgLTEsNSArMSw2IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEzIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNCwxMiArMjUsMTEgQEAKICAqLwogCiBbCi0gICAgTm9JbnRlcmZh
Y2VPYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9VklERU9fVFJBQ0ssCiAgICAgSW1wbGVtZW50YXRp
b25MYWNrc1ZUYWJsZSwKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKIF0gaW50ZXJmYWNlIFZUVFJl
Z2lvbkxpc3QgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsK
LSAgICBnZXR0ZXIgVlRUUmVnaW9uIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7Ci0gICAgVlRU
UmVnaW9uIGdldFJlZ2lvbkJ5SWQoRE9NU3RyaW5nIGlkKTsKKyAgICBnZXR0ZXIgVlRUUmVnaW9u
PyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIFZUVFJlZ2lvbj8gZ2V0UmVnaW9uQnlJ
ZChET01TdHJpbmcgaWQpOwogfTsKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WaWRlb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFj
ay5jcHAKaW5kZXggZjgwYmMxMGE4Y2M4ZGUyODJkOWZhZjMxOTQ2ZDYxY2RlMGNiYzQzMS4uNDA5
N2UxNmJhNWZlOWU3NmFlMjcyNTYwZjE4MDJhMzU0N2U3MWZhNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdo
dCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMCwxMiArMzAsMTAgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVmlkZW9UcmFjay5oIgogCiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiVmlkZW9UcmFjay5oIgotCi0jaW5j
bHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAi
VmlkZW9UcmFja0xpc3QuaCIKIApAQCAtODEsMTAgKzc5LDEwIEBAIGNvbnN0IEF0b21pY1N0cmlu
ZyYgVmlkZW9UcmFjazo6Y29tbWVudGFyeUtleXdvcmQoKQogICAgIHJldHVybiBjb21tZW50YXJ5
OwogfQogCi1WaWRlb1RyYWNrOjpWaWRlb1RyYWNrKFZpZGVvVHJhY2tDbGllbnQqIGNsaWVudCwg
UGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQotICAgIDogTWVkaWFU
cmFja0Jhc2UoTWVkaWFUcmFja0Jhc2U6OlZpZGVvVHJhY2ssIHRyYWNrUHJpdmF0ZS0+aWQoKSwg
dHJhY2tQcml2YXRlLT5sYWJlbCgpLCB0cmFja1ByaXZhdGUtPmxhbmd1YWdlKCkpCi0gICAgLCBt
X3NlbGVjdGVkKHRyYWNrUHJpdmF0ZS0+c2VsZWN0ZWQoKSkKLSAgICAsIG1fY2xpZW50KGNsaWVu
dCkKK1ZpZGVvVHJhY2s6OlZpZGVvVHJhY2soVmlkZW9UcmFja0NsaWVudCYgY2xpZW50LCBWaWRl
b1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQorICAgIDogTWVkaWFUcmFja0Jhc2UoTWVkaWFU
cmFja0Jhc2U6OlZpZGVvVHJhY2ssIHRyYWNrUHJpdmF0ZS5pZCgpLCB0cmFja1ByaXZhdGUubGFi
ZWwoKSwgdHJhY2tQcml2YXRlLmxhbmd1YWdlKCkpCisgICAgLCBtX3NlbGVjdGVkKHRyYWNrUHJp
dmF0ZS5zZWxlY3RlZCgpKQorICAgICwgbV9jbGllbnQoJmNsaWVudCkKICAgICAsIG1fcHJpdmF0
ZSh0cmFja1ByaXZhdGUpCiB7CiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CkBAIC05
MywxNSArOTEsMTIgQEAgVmlkZW9UcmFjazo6VmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50KiBj
bGllbnQsIFBhc3NSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+IHQKIAogVmlkZW9UcmFjazo6flZp
ZGVvVHJhY2soKQogewotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KDApOworICAgIG1fcHJpdmF0
ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwogfQogCi12b2lkIFZpZGVvVHJhY2s6OnNldFByaXZhdGUo
UGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQordm9pZCBWaWRlb1Ry
YWNrOjpzZXRQcml2YXRlKFZpZGVvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiB7Ci0gICAg
QVNTRVJUKG1fcHJpdmF0ZSk7Ci0gICAgQVNTRVJUKHRyYWNrUHJpdmF0ZSk7Ci0KLSAgICBpZiAo
bV9wcml2YXRlID09IHRyYWNrUHJpdmF0ZSkKKyAgICBpZiAobV9wcml2YXRlLnB0cigpID09ICZ0
cmFja1ByaXZhdGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50
KG51bGxwdHIpOwpAQCAtMTE0LDIwICsxMDksMTIgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZXRQcml2
YXRlKFBhc3NSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKIAogYm9vbCBW
aWRlb1RyYWNrOjppc1ZhbGlkS2luZChjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKSBjb25zdAog
ewotICAgIGlmICh2YWx1ZSA9PSBhbHRlcm5hdGl2ZUtleXdvcmQoKSkKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgaWYgKHZhbHVlID09IGNhcHRpb25zS2V5d29yZCgpKQotICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICBpZiAodmFsdWUgPT0gbWFpbktleXdvcmQoKSkKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgaWYgKHZhbHVlID09IHNpZ25LZXl3b3JkKCkpCi0gICAgICAgIHJldHVybiB0
cnVlOwotICAgIGlmICh2YWx1ZSA9PSBzdWJ0aXRsZXNLZXl3b3JkKCkpCi0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIGlmICh2YWx1ZSA9PSBjb21tZW50YXJ5S2V5d29yZCgpKQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdmFsdWUgPT0gYWx0
ZXJuYXRpdmVLZXl3b3JkKCkKKyAgICAgICAgfHwgdmFsdWUgPT0gY29tbWVudGFyeUtleXdvcmQo
KQorICAgICAgICB8fCB2YWx1ZSA9PSBjYXB0aW9uc0tleXdvcmQoKQorICAgICAgICB8fCB2YWx1
ZSA9PSBtYWluS2V5d29yZCgpCisgICAgICAgIHx8IHZhbHVlID09IHNpZ25LZXl3b3JkKCkKKyAg
ICAgICAgfHwgdmFsdWUgPT0gc3VidGl0bGVzS2V5d29yZCgpOwogfQogCiB2b2lkIFZpZGVvVHJh
Y2s6OnNldFNlbGVjdGVkKGNvbnN0IGJvb2wgc2VsZWN0ZWQpCkBAIC0xMzksNDYgKzEyNiw0NCBA
QCB2b2lkIFZpZGVvVHJhY2s6OnNldFNlbGVjdGVkKGNvbnN0IGJvb2wgc2VsZWN0ZWQpCiAgICAg
bV9wcml2YXRlLT5zZXRTZWxlY3RlZChzZWxlY3RlZCk7CiAKICAgICBpZiAobV9jbGllbnQpCi0g
ICAgICAgIG1fY2xpZW50LT52aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKHRoaXMpOworICAgICAg
ICBtX2NsaWVudC0+dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCgqdGhpcyk7CiB9CiAKIHNpemVf
dCBWaWRlb1RyYWNrOjppbmJhbmRUcmFja0luZGV4KCkKIHsKLSAgICBBU1NFUlQobV9wcml2YXRl
KTsKICAgICByZXR1cm4gbV9wcml2YXRlLT50cmFja0luZGV4KCk7CiB9CiAKLXZvaWQgVmlkZW9U
cmFjazo6c2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIGJv
b2wgc2VsZWN0ZWQpCit2b2lkIFZpZGVvVHJhY2s6OnNlbGVjdGVkQ2hhbmdlZChib29sIHNlbGVj
dGVkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0g
bV9wcml2YXRlKTsKICAgICBzZXRTZWxlY3RlZChzZWxlY3RlZCk7CiB9CiAKLXZvaWQgVmlkZW9U
cmFjazo6aWRDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRv
bWljU3RyaW5nJiBpZCkKK3ZvaWQgVmlkZW9UcmFjazo6aWRDaGFuZ2VkKGNvbnN0IEF0b21pY1N0
cmluZyYgaWQpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0
ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldElkKGlkKTsKIH0KIAotdm9pZCBWaWRlb1RyYWNrOjps
YWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNT
dHJpbmcmIGxhYmVsKQordm9pZCBWaWRlb1RyYWNrOjpsYWJlbENoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJiBsYWJlbCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQ
cml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0TGFiZWwobGFiZWwpOwogfQogCi12b2lkIFZp
ZGVvVHJhY2s6Omxhbmd1YWdlQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUs
IGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCit2b2lkIFZpZGVvVHJhY2s6Omxhbmd1YWdl
Q2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKQogewotICAgIEFTU0VSVF9VTlVT
RUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRMYW5n
dWFnZShsYW5ndWFnZSk7CiB9CiAKLXZvaWQgVmlkZW9UcmFjazo6d2lsbFJlbW92ZShUcmFja1By
aXZhdGVCYXNlKiB0cmFja1ByaXZhdGUpCit2b2lkIFZpZGVvVHJhY2s6OndpbGxSZW1vdmUoKQog
ewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2
YXRlKTsKLSAgICBtZWRpYUVsZW1lbnQoKS0+cmVtb3ZlVmlkZW9UcmFjaygqdGhpcyk7CisgICAg
YXV0byogZWxlbWVudCA9IG1lZGlhRWxlbWVudCgpOworICAgIGlmICghZWxlbWVudCkKKyAgICAg
ICAgcmV0dXJuOworICAgIGVsZW1lbnQtPnJlbW92ZVZpZGVvVHJhY2soKnRoaXMpOwogfQogCiAj
aWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKKwogdm9pZCBWaWRlb1RyYWNrOjpzZXRLaW5kKGNvbnN0
IEF0b21pY1N0cmluZyYga2luZCkKIHsKICAgICAvLyAxMC4xIGtpbmQsIG9uIHNldHRpbmc6CkBA
IC0xOTMsNyArMTc4LDcgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZXRLaW5kKGNvbnN0IEF0b21pY1N0
cmluZyYga2luZCkKICAgICAvLyAzLiBJZiB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0
aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxl
CiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHNvdXJjZUJ1ZmZlci52aWRlb1RyYWNrcy4K
ICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVmZmVyLT52aWRlb1Ry
YWNrcygpLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CisgICAgICAgIG1fc291cmNlQnVmZmVyLT52
aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIC8vIDQuIFF1ZXVlIGEg
dGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCB0aGUgVmlkZW9UcmFj
a0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdmlkZW9UcmFja3MgYXR0cmli
dXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgpAQCAtMjEzLDEyICsxOTgsMTMgQEAgdm9pZCBW
aWRlb1RyYWNrOjpzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKQogICAg
IC8vIDMuIElmIHRoZSBzb3VyY2VCdWZmZXIgYXR0cmlidXRlIG9uIHRoaXMgdHJhY2sgaXMgbm90
IG51bGwsIHRoZW4gcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUKICAgICAvLyBldmVudCBu
YW1lZCBjaGFuZ2UgYXQgc291cmNlQnVmZmVyLnZpZGVvVHJhY2tzLgogICAgIGlmIChtX3NvdXJj
ZUJ1ZmZlcikKLSAgICAgICAgbV9zb3VyY2VCdWZmZXItPnZpZGVvVHJhY2tzKCktPnNjaGVkdWxl
Q2hhbmdlRXZlbnQoKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXItPnZpZGVvVHJhY2tzKCkuc2No
ZWR1bGVDaGFuZ2VFdmVudCgpOwogCiAgICAgLy8gNC4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBz
aW1wbGUgZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHRoZSBWaWRlb1RyYWNrTGlzdCBvYmplY3QgcmVm
ZXJlbmNlZCBieQogICAgIC8vIHRoZSB2aWRlb1RyYWNrcyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxN
ZWRpYUVsZW1lbnQuCiAgICAgbWVkaWFFbGVtZW50KCktPnZpZGVvVHJhY2tzKCkuc2NoZWR1bGVD
aGFuZ2VFdmVudCgpOwogfQorCiAjZW5kaWYKIAogdm9pZCBWaWRlb1RyYWNrOjp1cGRhdGVLaW5k
RnJvbVByaXZhdGUoKQpAQCAtMjI2LDI5ICsyMTIsMjcgQEAgdm9pZCBWaWRlb1RyYWNrOjp1cGRh
dGVLaW5kRnJvbVByaXZhdGUoKQogICAgIHN3aXRjaCAobV9wcml2YXRlLT5raW5kKCkpIHsKICAg
ICBjYXNlIFZpZGVvVHJhY2tQcml2YXRlOjpBbHRlcm5hdGl2ZToKICAgICAgICAgc2V0S2luZElu
dGVybmFsKFZpZGVvVHJhY2s6OmFsdGVybmF0aXZlS2V5d29yZCgpKTsKLSAgICAgICAgYnJlYWs7
CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFZpZGVvVHJhY2tQcml2YXRlOjpDYXB0aW9uczoK
ICAgICAgICAgc2V0S2luZEludGVybmFsKFZpZGVvVHJhY2s6OmNhcHRpb25zS2V5d29yZCgpKTsK
LSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFZpZGVvVHJhY2tQcml2
YXRlOjpNYWluOgogICAgICAgICBzZXRLaW5kSW50ZXJuYWwoVmlkZW9UcmFjazo6bWFpbktleXdv
cmQoKSk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBWaWRlb1Ry
YWNrUHJpdmF0ZTo6U2lnbjoKICAgICAgICAgc2V0S2luZEludGVybmFsKFZpZGVvVHJhY2s6OnNp
Z25LZXl3b3JkKCkpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
VmlkZW9UcmFja1ByaXZhdGU6OlN1YnRpdGxlczoKICAgICAgICAgc2V0S2luZEludGVybmFsKFZp
ZGVvVHJhY2s6OnN1YnRpdGxlc0tleXdvcmQoKSk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICBy
ZXR1cm47CiAgICAgY2FzZSBWaWRlb1RyYWNrUHJpdmF0ZTo6Q29tbWVudGFyeToKICAgICAgICAg
c2V0S2luZEludGVybmFsKFZpZGVvVHJhY2s6OmNvbW1lbnRhcnlLZXl3b3JkKCkpOwotICAgICAg
ICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmlkZW9UcmFja1ByaXZhdGU6Ok5v
bmU6CiAgICAgICAgIHNldEtpbmRJbnRlcm5hbChlbXB0eVN0cmluZygpKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
IGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlk
ZW9UcmFjay5oCmluZGV4IGM1MmY5YjNiMTJmYzY5Njg4ZGE3ZmQ2NzAzMzcwMWZiMWI4NGYzMmMu
LmViZWU4MjllMTY5OGZjMWMyYjEzYzViMGUxMGZjOTQ5ZGVlMmI1NGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVmlkZW9UcmFjay5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDEyICszOSwxMiBAQCBjbGFz
cyBWaWRlb1RyYWNrOwogY2xhc3MgVmlkZW9UcmFja0NsaWVudCB7CiBwdWJsaWM6CiAgICAgdmly
dHVhbCB+VmlkZW9UcmFja0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNr
U2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZpZGVv
VHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayYpID0gMDsKIH07CiAKLWNsYXNzIFZpZGVv
VHJhY2sgZmluYWwgOiBwdWJsaWMgTWVkaWFUcmFja0Jhc2UsIHB1YmxpYyBWaWRlb1RyYWNrUHJp
dmF0ZUNsaWVudCB7CitjbGFzcyBWaWRlb1RyYWNrIGZpbmFsIDogcHVibGljIE1lZGlhVHJhY2tC
YXNlLCBwcml2YXRlIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFZpZGVvVHJhY2s+IGNyZWF0ZShWaWRlb1RyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NS
ZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKKyAgICBzdGF0aWMgUmVmPFZp
ZGVvVHJhY2s+IGNyZWF0ZShWaWRlb1RyYWNrQ2xpZW50JiBjbGllbnQsIFZpZGVvVHJhY2tQcml2
YXRlJiB0cmFja1ByaXZhdGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBW
aWRlb1RyYWNrKGNsaWVudCwgdHJhY2tQcml2YXRlKSk7CiAgICAgfQpAQCAtNTYsNDggKzU2LDQ2
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzaWduS2V5d29yZCgp
OwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1YnRpdGxlc0tleXdvcmQoKTsKICAg
ICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjb21tZW50YXJ5S2V5d29yZCgpOwotICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgZGVmYXVsdEtpbmRLZXl3b3JkKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gZW1wdHlBdG9tOyB9CiAKICAgICBib29sIHNlbGVjdGVkKCkgY29uc3QgeyByZXR1cm4g
bV9zZWxlY3RlZDsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZChjb25zdCBib29sKTsK
IAotICAgIHZvaWQgY2xlYXJDbGllbnQoKSBvdmVycmlkZSB7IG1fY2xpZW50ID0gMDsgfQorICAg
IHZvaWQgY2xlYXJDbGllbnQoKSBmaW5hbCB7IG1fY2xpZW50ID0gbnVsbHB0cjsgfQogICAgIFZp
ZGVvVHJhY2tDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKICAg
ICBzaXplX3QgaW5iYW5kVHJhY2tJbmRleCgpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
LSAgICB2b2lkIHNldEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNl
dEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBzZXRMYW5ndWFnZShj
b25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKICNlbmRpZgogCiAgICAgY29uc3QgTWVkaWFEZXNj
cmlwdGlvbiYgZGVzY3JpcHRpb24oKSBjb25zdDsKIAotICAgIHZvaWQgc2V0UHJpdmF0ZShQYXNz
UmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPik7Ci0KLXByb3RlY3RlZDoKLSAgICBWaWRlb1RyYWNr
KFZpZGVvVHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPiBwcml2YXRl
VHJhY2spOworICAgIHZvaWQgc2V0UHJpdmF0ZShWaWRlb1RyYWNrUHJpdmF0ZSYpOwogCiBwcml2
YXRlOgotICAgIGJvb2wgaXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgVmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50JiwgVmlkZW9UcmFja1ByaXZh
dGUmKTsKKworICAgIGJvb2wgaXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Qg
ZmluYWw7CiAKICAgICAvLyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudAotICAgIHZvaWQgc2VsZWN0
ZWRDaGFuZ2VkKFZpZGVvVHJhY2tQcml2YXRlKiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBz
ZWxlY3RlZENoYW5nZWQoYm9vbCkgZmluYWw7CiAKICAgICAvLyBUcmFja1ByaXZhdGVCYXNlQ2xp
ZW50Ci0gICAgdm9pZCBpZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0
cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgbGFiZWxDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2Uq
LCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGxhbmd1YWdlQ2hhbmdl
ZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCB3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2UqKSBvdmVycmlkZTsKKyAgICB2b2lkIGlk
Q2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGxhYmVsQ2hhbmdl
ZChjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChj
b25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxSZW1vdmUoKSBmaW5hbDsK
IAotICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHNlbGVjdGVkKCk7
IH0KKyAgICBib29sIGVuYWJsZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBzZWxlY3RlZCgpOyB9
CiAKICAgICB2b2lkIHVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpOwogCiAgICAgYm9vbCBtX3NlbGVj
dGVkOwogICAgIFZpZGVvVHJhY2tDbGllbnQqIG1fY2xpZW50OwogCi0gICAgUmVmUHRyPFZpZGVv
VHJhY2tQcml2YXRlPiBtX3ByaXZhdGU7CisgICAgUmVmPFZpZGVvVHJhY2tQcml2YXRlPiBtX3By
aXZhdGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgKaW5kZXggMmMxMjM5NWZhNjYxZDE1YmI1NDUwODg5NGZjMGFhY2RkNTVjZTZl
Ny4uM2JkODhiNGY2Mzk3YmZhNjZhZmJlOTY2ZmIzZDMzYWRhZmFhOWEwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDYgRXJpYyBTZWlkZWwgKGVyaWNAd2Via2l0Lm9yZykKLSAqIENvcHlyaWdodCAoQykg
MjAwOC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCkBAIC0xNzIsNyArMTcyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2
b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KSBvdmVycmlk
ZTsKLSAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxl
SWNvbkxvYWRlciopIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJikgb3ZlcnJpZGUgeyB9CiAKICAgICB2
b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBOb2RlKikgb3ZlcnJpZGUgeyB9CiAgICAgdm9pZCBl
bGVtZW50RGlkQmx1cihjb25zdCBOb2RlKikgb3ZlcnJpZGUgeyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UGluZ0xvYWRlci5jcHAKaW5kZXggMDE4ODk0NmU3ZDhkZjQyNTJjMWVkNDk0YWQ3YTk5MTY3Njkx
MTY4Yi4uNDczMmE5MjU1NTcyZjFmODZiZTkzZWQxNWZmNGRlMTZiYzkzMDBkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAxNSBSb29wZXNoIENoYW5kZXIgKHJvb3BAcm9vcGMubmV0KQotICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTcsMzggKzU3LDUwIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi1zdGF0aWMg
Q29udGVudEV4dGVuc2lvbnM6OkJsb2NrZWRTdGF0dXMgcHJvY2Vzc0NvbnRlbnRFeHRlbnNpb25S
dWxlc0ZvckxvYWQoY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHVybCwgUmVzb3VyY2VU
eXBlIHJlc291cmNlVHlwZSkKKyNpZiAhRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKKworLy8g
UmV0dXJucyB0cnVlIGlmIHdlIHNob3VsZCBibG9jayB0aGUgbG9hZC4KK3N0YXRpYyBpbmxpbmUg
Ym9vbCBwcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZChjb25zdCBGcmFtZSYsIFJl
c291cmNlUmVxdWVzdCYsIFJlc291cmNlVHlwZSkKIHsKLSAgICBpZiAoRG9jdW1lbnRMb2FkZXIq
IGRvY3VtZW50TG9hZGVyID0gZnJhbWUubG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSkgewotICAg
ICAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1lLnBhZ2UoKSkKLSAgICAgICAgICAgIHJldHVybiBw
YWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRFeHRlbnNpb25SdWxlc0Zv
ckxvYWQodXJsLCByZXNvdXJjZVR5cGUsICpkb2N1bWVudExvYWRlcik7Ci0gICAgfQotICAgIHJl
dHVybiB7IH07CisgICAgcmV0dXJuIGZhbHNlOworfQorCisjZWxzZQorCisvLyBSZXR1cm5zIHRy
dWUgaWYgd2Ugc2hvdWxkIGJsb2NrIHRoZSBsb2FkLgorc3RhdGljIGJvb2wgcHJvY2Vzc0NvbnRl
bnRFeHRlbnNpb25SdWxlc0ZvckxvYWQoY29uc3QgRnJhbWUmIGZyYW1lLCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFJlc291cmNlVHlwZSByZXNvdXJjZVR5cGUpCit7CisgICAgYXV0byogZG9j
dW1lbnRMb2FkZXIgPSBmcmFtZS5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpOworICAgIGlmICgh
ZG9jdW1lbnRMb2FkZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBhdXRvKiBwYWdlID0g
ZnJhbWUucGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGF1dG8gc3RhdHVzID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50
RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKHJlcXVlc3QudXJsKCksIHJlc291cmNlVHlwZSwgKmRvY3Vt
ZW50TG9hZGVyKTsKKyAgICBhcHBseUJsb2NrZWRTdGF0dXNUb1JlcXVlc3Qoc3RhdHVzLCByZXF1
ZXN0KTsKKyAgICByZXR1cm4gc3RhdHVzLmJsb2NrZWRMb2FkOwogfQorCiAjZW5kaWYKIAogdm9p
ZCBQaW5nTG9hZGVyOjpsb2FkSW1hZ2UoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKIHsK
LSAgICBpZiAoIWZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhbkRpc3BsYXko
dXJsKSkgeworICAgIEFTU0VSVChmcmFtZS5kb2N1bWVudCgpKTsKKyAgICBhdXRvJiBkb2N1bWVu
dCA9ICpmcmFtZS5kb2N1bWVudCgpOworCisgICAgaWYgKCFkb2N1bWVudC5zZWN1cml0eU9yaWdp
bigpLT5jYW5EaXNwbGF5KHVybCkpIHsKICAgICAgICAgRnJhbWVMb2FkZXI6OnJlcG9ydExvY2Fs
TG9hZEZhaWxlZCgmZnJhbWUsIHVybCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwotCi0jaWYgRU5BQkxFKENPTlRFTlRfRVhURU5T
SU9OUykKLSAgICBhdXRvIGJsb2NrZWRTdGF0dXMgPSBwcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1
bGVzRm9yTG9hZChmcmFtZSwgdXJsLCBSZXNvdXJjZVR5cGU6OkltYWdlKTsKLSAgICBhcHBseUJs
b2NrZWRTdGF0dXNUb1JlcXVlc3QoYmxvY2tlZFN0YXR1cywgcmVxdWVzdCk7Ci0gICAgaWYgKGJs
b2NrZWRTdGF0dXMuYmxvY2tlZExvYWQpCisgICAgaWYgKHByb2Nlc3NDb250ZW50RXh0ZW5zaW9u
UnVsZXNGb3JMb2FkKGZyYW1lLCByZXF1ZXN0LCBSZXNvdXJjZVR5cGU6OkltYWdlKSkKICAgICAg
ICAgcmV0dXJuOwotI2VuZGlmCiAKLSAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUu
ZG9jdW1lbnQoKSkKLSAgICAgICAgZG9jdW1lbnQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT51
cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdCwgQ29udGVudFNlY3VyaXR5UG9s
aWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsKKyAgICBkb2N1bWVudC5jb250ZW50U2Vj
dXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKHJlcXVlc3QsIENv
bnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CiAKICAgICBy
ZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q2FjaGVDb250cm9sLCAi
bWF4LWFnZT0wIik7Ci0gICAgU3RyaW5nIHJlZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVy
YXRlUmVmZXJyZXJIZWFkZXIoZnJhbWUuZG9jdW1lbnQoKS0+cmVmZXJyZXJQb2xpY3koKSwgcmVx
dWVzdC51cmwoKSwgZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKTsKKyAgICBTdHJp
bmcgcmVmZXJyZXIgPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihkb2N1
bWVudC5yZWZlcnJlclBvbGljeSgpLCByZXF1ZXN0LnVybCgpLCBmcmFtZS5sb2FkZXIoKS5vdXRn
b2luZ1JlZmVycmVyKCkpOwogICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgpKQogICAgICAgICBy
ZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihyZWZlcnJlcik7CiAgICAgZnJhbWUubG9hZGVyKCkuYWRk
RXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChyZXF1ZXN0KTsKQEAgLTk5LDE5ICsxMTEs
MTcgQEAgdm9pZCBQaW5nTG9hZGVyOjpsb2FkSW1hZ2UoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwm
IHVybCkKIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdv
cmsvbXVsdGlwYWdlL2xpbmtzLmh0bWwjaHlwZXJsaW5rLWF1ZGl0aW5nCiB2b2lkIFBpbmdMb2Fk
ZXI6OnNlbmRQaW5nKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiBwaW5nVVJMLCBjb25zdCBVUkwm
IGRlc3RpbmF0aW9uVVJMKQogeworICAgIEFTU0VSVChmcmFtZS5kb2N1bWVudCgpKTsKKwogICAg
IGlmICghcGluZ1VSTC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHBpbmdVUkwpOwotICAgIAotI2lmIEVOQUJM
RShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgYXV0byBibG9ja2VkU3RhdHVzID0gcHJvY2Vzc0Nv
bnRlbnRFeHRlbnNpb25SdWxlc0ZvckxvYWQoZnJhbWUsIHBpbmdVUkwsIFJlc291cmNlVHlwZTo6
UmF3KTsKLSAgICBhcHBseUJsb2NrZWRTdGF0dXNUb1JlcXVlc3QoYmxvY2tlZFN0YXR1cywgcmVx
dWVzdCk7Ci0gICAgaWYgKGJsb2NrZWRTdGF0dXMuYmxvY2tlZExvYWQpCisgICAgaWYgKHByb2Nl
c3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKGZyYW1lLCByZXF1ZXN0LCBSZXNvdXJjZVR5
cGU6OlJhdykpCiAgICAgICAgIHJldHVybjsKLSNlbmRpZgogCi0gICAgZnJhbWUuZG9jdW1lbnQo
KS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRl
ZChyZXF1ZXN0LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6Okxv
YWQpOworICAgIGF1dG8mIGRvY3VtZW50ID0gKmZyYW1lLmRvY3VtZW50KCk7CisgICAgZG9jdW1l
bnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRl
ZChyZXF1ZXN0LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6Okxv
YWQpOwogCiAgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJQT1NUIik7CiAgICAgcmVxdWVzdC5z
ZXRIVFRQQ29udGVudFR5cGUoInRleHQvcGluZyIpOwpAQCAtMTE5LDE0ICsxMjksMTQgQEAgdm9p
ZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcGluZ1VSTCwg
Y29uc3QgVVJMJiBkZXN0aW5hdGkKICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQ
SGVhZGVyTmFtZTo6Q2FjaGVDb250cm9sLCAibWF4LWFnZT0wIik7CiAgICAgZnJhbWUubG9hZGVy
KCkuYWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChyZXF1ZXN0KTsKIAotICAgIFNl
Y3VyaXR5T3JpZ2luKiBzb3VyY2VPcmlnaW4gPSBmcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpOwotICAgIFJlZjxTZWN1cml0eU9yaWdpbj4gcGluZ09yaWdpbihTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlKHBpbmdVUkwpKTsKLSAgICBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVl
ZGVkKHJlcXVlc3QsIHNvdXJjZU9yaWdpbi0+dG9TdHJpbmcoKSk7CisgICAgQVNTRVJUKGRvY3Vt
ZW50LnNlY3VyaXR5T3JpZ2luKCkpOworICAgIGF1dG8mIHNvdXJjZU9yaWdpbiA9ICpkb2N1bWVu
dC5zZWN1cml0eU9yaWdpbigpOworICAgIEZyYW1lTG9hZGVyOjphZGRIVFRQT3JpZ2luSWZOZWVk
ZWQocmVxdWVzdCwgc291cmNlT3JpZ2luLnRvU3RyaW5nKCkpOwogICAgIHJlcXVlc3Quc2V0SFRU
UEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpQaW5nVG8sIGRlc3RpbmF0aW9uVVJMKTsKICAg
ICBpZiAoIVNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyZXIocGluZ1VSTCwgZnJhbWUu
bG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKSkgewotICAgICAgICByZXF1ZXN0LnNldEhUVFBI
ZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UGluZ0Zyb20sIGZyYW1lLmRvY3VtZW50KCktPnVy
bCgpKTsKLSAgICAgICAgaWYgKCFzb3VyY2VPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KCZw
aW5nT3JpZ2luLmdldCgpKSkgewotICAgICAgICAgICAgU3RyaW5nIHJlZmVycmVyID0gU2VjdXJp
dHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIoZnJhbWUuZG9jdW1lbnQoKS0+cmVmZXJy
ZXJQb2xpY3koKSwgcGluZ1VSTCwgZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKTsK
KyAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlBpbmdG
cm9tLCBkb2N1bWVudC51cmwoKSk7CisgICAgICAgIGlmICghc291cmNlT3JpZ2luLmlzU2FtZVNj
aGVtZUhvc3RQb3J0KFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUocGluZ1VSTCkucHRyKCkpKSB7Cisg
ICAgICAgICAgICBTdHJpbmcgcmVmZXJyZXIgPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZl
cnJlckhlYWRlcihkb2N1bWVudC5yZWZlcnJlclBvbGljeSgpLCBwaW5nVVJMLCBmcmFtZS5sb2Fk
ZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpOwogICAgICAgICAgICAgaWYgKCFyZWZlcnJlci5pc0Vt
cHR5KCkpCiAgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIocmVmZXJyZXIp
OwogICAgICAgICB9CkBAIC0xMzUsMTkgKzE0NSwxNiBAQCB2b2lkIFBpbmdMb2FkZXI6OnNlbmRQ
aW5nKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiBwaW5nVVJMLCBjb25zdCBVUkwmIGRlc3RpbmF0
aQogICAgIHN0YXJ0UGluZ0xvYWQoZnJhbWUsIHJlcXVlc3QsIFNob3VsZEZvbGxvd1JlZGlyZWN0
czo6WWVzKTsKIH0KIAotdm9pZCBQaW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0KEZyYW1l
JiBmcmFtZSwgY29uc3QgVVJMJiByZXBvcnRVUkwsIFJlZlB0cjxGb3JtRGF0YT4mJiByZXBvcnQs
IFZpb2xhdGlvblJlcG9ydFR5cGUgcmVwb3J0VHlwZSkKK3ZvaWQgUGluZ0xvYWRlcjo6c2VuZFZp
b2xhdGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBSZWY8Rm9y
bURhdGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBlIHJlcG9ydFR5cGUpCiB7Ci0gICAg
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QocmVwb3J0VVJMKTsKKyAgICBBU1NFUlQoZnJhbWUuZG9j
dW1lbnQoKSk7CiAKLSNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAgIGF1dG8gYmxv
Y2tlZFN0YXR1cyA9IHByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKGZyYW1lLCBy
ZXBvcnRVUkwsIFJlc291cmNlVHlwZTo6UmF3KTsKLSAgICBhcHBseUJsb2NrZWRTdGF0dXNUb1Jl
cXVlc3QoYmxvY2tlZFN0YXR1cywgcmVxdWVzdCk7Ci0gICAgaWYgKGJsb2NrZWRTdGF0dXMuYmxv
Y2tlZExvYWQpCisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QocmVwb3J0VVJMKTsKKyAgICBp
ZiAocHJvY2Vzc0NvbnRlbnRFeHRlbnNpb25SdWxlc0ZvckxvYWQoZnJhbWUsIHJlcXVlc3QsIFJl
c291cmNlVHlwZTo6UmF3KSkKICAgICAgICAgcmV0dXJuOwotI2VuZGlmCiAKLSAgICBpZiAoRG9j
dW1lbnQqIGRvY3VtZW50ID0gZnJhbWUuZG9jdW1lbnQoKSkKLSAgICAgICAgZG9jdW1lbnQtPmNv
bnRlbnRTZWN1cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVx
dWVzdCwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsK
KyAgICBhdXRvJiBkb2N1bWVudCA9ICpmcmFtZS5kb2N1bWVudCgpOworICAgIGRvY3VtZW50LmNv
bnRlbnRTZWN1cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVx
dWVzdCwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsK
IAogICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChBU0NJSUxpdGVyYWwoIlBPU1QiKSk7CiAgICAg
cmVxdWVzdC5zZXRIVFRQQm9keShXVEZNb3ZlKHJlcG9ydCkpOwpAQCAtMTYxLDE4ICsxNjgsMTYg
QEAgdm9pZCBQaW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0KEZyYW1lJiBmcmFtZSwgY29u
c3QgVVJMJiByZXBvcnRVUkwsIFJlZlB0cjwKICAgICB9CiAKICAgICBib29sIHJlbW92ZUNvb2tp
ZXMgPSB0cnVlOwotICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVudCgp
KSB7Ci0gICAgICAgIGlmIChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4gPSBkb2N1bWVu
dC0+c2VjdXJpdHlPcmlnaW4oKSkgewotICAgICAgICAgICAgaWYgKHNlY3VyaXR5T3JpZ2luLT5p
c1NhbWVTY2hlbWVIb3N0UG9ydChTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHJlcG9ydFVSTCkucHRy
KCkpKQotICAgICAgICAgICAgICAgIHJlbW92ZUNvb2tpZXMgPSBmYWxzZTsKLSAgICAgICAgfQor
ICAgIGlmIChhdXRvKiBzZWN1cml0eU9yaWdpbiA9IGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkp
IHsKKyAgICAgICAgaWYgKHNlY3VyaXR5T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlKHJlcG9ydFVSTCkucHRyKCkpKQorICAgICAgICAgICAgcmVtb3Zl
Q29va2llcyA9IGZhbHNlOwogICAgIH0KICAgICBpZiAocmVtb3ZlQ29va2llcykKICAgICAgICAg
cmVxdWVzdC5zZXRBbGxvd0Nvb2tpZXMoZmFsc2UpOwogCiAgICAgZnJhbWUubG9hZGVyKCkuYWRk
RXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChyZXF1ZXN0KTsKIAotICAgIFN0cmluZyBy
ZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVyKGZyYW1lLmRv
Y3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIHJlcG9ydFVSTCwgZnJhbWUubG9hZGVyKCkub3V0
Z29pbmdSZWZlcnJlcigpKTsKKyAgICBTdHJpbmcgcmVmZXJyZXIgPSBTZWN1cml0eVBvbGljeTo6
Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihkb2N1bWVudC5yZWZlcnJlclBvbGljeSgpLCByZXBvcnRV
UkwsIGZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSk7CiAgICAgaWYgKCFyZWZlcnJl
ci5pc0VtcHR5KCkpCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKHJlZmVycmVyKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKaW5kZXggY2Y2NTc3YzMzNTZlYTA1ODFiNTM5
MTg5MTk4ZmRlODc2NGZiOTkzNy4uYjI5ZThkYThmODA4YTdiMDYwZTUwOTc4ZmMyYWVkMmNlMmQ4
ZjEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMxLDcgKzMyLDcgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ5LDcgKzUwLDcgQEAgY2xhc3MgUGluZ0xv
YWRlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgbG9hZEltYWdlKEZyYW1lJiwgY29uc3Qg
VVJMJik7CiAgICAgc3RhdGljIHZvaWQgc2VuZFBpbmcoRnJhbWUmLCBjb25zdCBVUkwmIHBpbmdV
UkwsIGNvbnN0IFVSTCYgZGVzdGluYXRpb25VUkwpOwotICAgIHN0YXRpYyB2b2lkIHNlbmRWaW9s
YXRpb25SZXBvcnQoRnJhbWUmLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgUmVmUHRyPEZvcm1EYXRh
PiYmIHJlcG9ydCwgVmlvbGF0aW9uUmVwb3J0VHlwZSk7CisgICAgc3RhdGljIHZvaWQgc2VuZFZp
b2xhdGlvblJlcG9ydChGcmFtZSYsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBSZWY8Rm9ybURhdGE+
JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBlKTsKIAogcHJpdmF0ZToKICAgICBlbnVtIGNs
YXNzIFNob3VsZEZvbGxvd1JlZGlyZWN0cyB7IE5vLCBZZXMgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNw
cAppbmRleCA1YzAyNTQ0YTVlN2JkM2YwNmZiMWFiYWIwMWVlMjZjOGEzNDQ2ZjNlLi5kMDE1YmE0
NWEzM2FlYmNlMTcyOWQzYjk5YjI1NWY1NDUzMDFlNzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSwg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDgsIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgpAQCAtNDM4LDcgKzQzOCw3IEBAIHZvaWQgQ2hyb21lOjpydW5PcGVuUGFu
ZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBmaWxlQ2hvb3NlcikKICAg
ICBtX2NsaWVudC5ydW5PcGVuUGFuZWwoZnJhbWUsIGZpbGVDaG9vc2VyKTsKIH0KIAotdm9pZCBD
aHJvbWU6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywg
RmlsZUljb25Mb2FkZXIqIGxvYWRlcikKK3ZvaWQgQ2hyb21lOjpsb2FkSWNvbkZvckZpbGVzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9hZGVyJiBsb2FkZXIpCiB7
CiAgICAgbV9jbGllbnQubG9hZEljb25Gb3JGaWxlcyhmaWxlbmFtZXMsIGxvYWRlcik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWUuaAppbmRleCBmMmYyYjBiMWMzYzBhOWYzYTI3NWQxNGYwMmQzZGMxYThlZGE0
ZWExLi5mMjM4NjBhMmJkYWYzYzI5M2UwMTkzYzJjYTQ5MmJhNmE4OGY3YzUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMjgsOSArMjgsNyBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotI2lmbmRlZiBfX09CSkNfXwotY2xhc3MgTlNWaWV3
OwotI2VuZGlmCitPQkpDX0NMQVNTIE5TVmlldzsKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0xNTksNyArMTU3LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHJ1bk9w
ZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KTsKLSAgICB2b2lkIGxvYWRJ
Y29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciopOworICAg
IHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9h
ZGVyJik7CiAKICAgICB2b2lkIGRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNv
bnN0IFZpZXdwb3J0QXJndW1lbnRzJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCmluZGV4IDQ1ZmVjNTk5ODA0ZTQzZTZlN2QxODlhMDhlNmNlYjgwMjI5ZDM2ZmQuLjQyMWNk
YTlhMTc2ZjlhY2EwYTQ2MTEwZGIyZmFhNDA3YTA2MjQwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTIgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlLCBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcg
RWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMjc1LDcgKzI3NSw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVm
UHRyPEZpbGVDaG9vc2VyPikgPSAwOwogICAgIC8vIEFzeW5jaHJvbm91cyByZXF1ZXN0IHRvIGxv
YWQgYW4gaWNvbiBmb3Igc3BlY2lmaWVkIGZpbGVuYW1lcy4KLSAgICB2aXJ0dWFsIHZvaWQgbG9h
ZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyKikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiwgRmlsZUljb25Mb2FkZXImKSA9IDA7CiAgICAgICAgIAogICAgIHZpcnR1YWwgdm9pZCBlbGVt
ZW50RGlkRm9jdXMoY29uc3QgTm9kZSopIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERp
ZEJsdXIoY29uc3QgTm9kZSopIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Y3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9D
b250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IGNiNzhkMDZhN2VmMTQzZjI2ZWU1NDk2Mzli
MjQ5NTY1YzQ2YWEwNjguLmYwNTliNjAxNGM4NGI3ZmE0YTczNmY5NTRhODkxMzE0YWI3M2E1ZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGlj
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5
LmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlLCBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC02MjUsOCArNjI1LDggQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJl
cG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWMKIAogICAg
IEFTU0VSVCghbV9mcmFtZSB8fCBlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZSA9PSBDb250ZW50
U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1lczo6ZnJhbWVBbmNlc3RvcnMpOwogCi0gICAgRG9j
dW1lbnQmIGRvY3VtZW50ID0gaXM8RG9jdW1lbnQ+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkg
PyBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgOiAqbV9mcmFt
ZS0+ZG9jdW1lbnQoKTsKLSAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOworICAg
IGF1dG8mIGRvY3VtZW50ID0gaXM8RG9jdW1lbnQ+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkg
PyBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgOiAqbV9mcmFt
ZS0+ZG9jdW1lbnQoKTsKKyAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCk7CiAgICAg
QVNTRVJUKCFtX2ZyYW1lIHx8IG1fZnJhbWUgPT0gZnJhbWUpOwogICAgIGlmICghZnJhbWUpCiAg
ICAgICAgIHJldHVybjsKQEAgLTY0NiwxMyArNjQ2LDE0IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERp
cmVjCiAgICAgU3RyaW5nIG9yaWdpbmFsUG9saWN5ID0gdmlvbGF0ZWREaXJlY3RpdmVMaXN0Lmhl
YWRlcigpOwogICAgIFN0cmluZyByZWZlcnJlciA9IGRvY3VtZW50LnJlZmVycmVyKCk7CiAgICAg
QVNTRVJUKGRvY3VtZW50LmxvYWRlcigpKTsKKyAgICAvLyBGSVhNRTogSXMgaXQgcG9saWN5IHRv
IG5vdCB1c2UgdGhlIHN0YXR1cyBjb2RlIGZvciBIVFRQUywgb3IgaXMgdGhhdCBhIGJ1Zz8KICAg
ICB1bnNpZ25lZCBzaG9ydCBzdGF0dXNDb2RlID0gZG9jdW1lbnQudXJsKCkucHJvdG9jb2xJcygi
aHR0cCIpICYmIGRvY3VtZW50LmxvYWRlcigpID8gZG9jdW1lbnQubG9hZGVyKCktPnJlc3BvbnNl
KCkuaHR0cFN0YXR1c0NvZGUoKSA6IDA7CiAKICAgICBTdHJpbmcgc291cmNlRmlsZTsKICAgICBp
bnQgbGluZU51bWJlciA9IDA7CiAgICAgaW50IGNvbHVtbk51bWJlciA9IDA7Ci0gICAgUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4gc3RhY2sgPSBjcmVhdGVTY3JpcHRDYWxsU3RhY2soSlNNYWluVGhy
ZWFkRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSwgMik7Ci0gICAgY29uc3QgU2NyaXB0Q2FsbEZy
YW1lKiBjYWxsRnJhbWUgPSBzdGFjay0+Zmlyc3ROb25OYXRpdmVDYWxsRnJhbWUoKTsKKyAgICBh
dXRvIHN0YWNrID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6
Y3VycmVudFN0YXRlKCksIDIpOworICAgIGF1dG8qIGNhbGxGcmFtZSA9IHN0YWNrLT5maXJzdE5v
bk5hdGl2ZUNhbGxGcmFtZSgpOwogICAgIGlmIChjYWxsRnJhbWUgJiYgY2FsbEZyYW1lLT5saW5l
TnVtYmVyKCkpIHsKICAgICAgICAgc291cmNlRmlsZSA9IHN0cmlwVVJMRm9yVXNlSW5SZXBvcnQo
ZG9jdW1lbnQsIFVSTChVUkwoKSwgY2FsbEZyYW1lLT5zb3VyY2VVUkwoKSkpOwogICAgICAgICBs
aW5lTnVtYmVyID0gY2FsbEZyYW1lLT5saW5lTnVtYmVyKCk7CkBAIC02NjUsNyArNjY2LDcgQEAg
dm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcm
IGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWMKICAgICBkb2N1bWVudC5lbnF1ZXVlRG9jdW1lbnRFdmVu
dChTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNlY3Vy
aXR5cG9saWN5dmlvbGF0aW9uRXZlbnQsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgZG9jdW1lbnRV
UkksIHJlZmVycmVyLCBibG9ja2VkVVJJLCB2aW9sYXRlZERpcmVjdGl2ZVRleHQsIGVmZmVjdGl2
ZVZpb2xhdGVkRGlyZWN0aXZlLCBvcmlnaW5hbFBvbGljeSwgc291cmNlRmlsZSwgc3RhdHVzQ29k
ZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKSk7CiAKICAgICAvLyAyLiBTZW5kIHZpb2xhdGlv
biByZXBvcnQgKGlmIGFwcGxpY2FibGUpLgotICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiByZXBv
cnRVUklzID0gdmlvbGF0ZWREaXJlY3RpdmVMaXN0LnJlcG9ydFVSSXMoKTsKKyAgICBhdXRvJiBy
ZXBvcnRVUklzID0gdmlvbGF0ZWREaXJlY3RpdmVMaXN0LnJlcG9ydFVSSXMoKTsKICAgICBpZiAo
cmVwb3J0VVJJcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjkzLDEwICs2OTQs
MTAgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlvbihjb25zdCBT
dHJpbmcmIGVmZmVjdGl2ZVZpb2xhdGVkRGlyZWMKICAgICAgICAgY3NwUmVwb3J0LT5zZXRJbnRl
Z2VyKEFTQ0lJTGl0ZXJhbCgiY29sdW1uLW51bWJlciIpLCBjb2x1bW5OdW1iZXIpOwogICAgIH0K
IAotICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlcG9ydE9iamVjdCA9IEluc3BlY3Rvck9i
amVjdDo6Y3JlYXRlKCk7CisgICAgYXV0byByZXBvcnRPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6
OmNyZWF0ZSgpOwogICAgIHJlcG9ydE9iamVjdC0+c2V0T2JqZWN0KEFTQ0lJTGl0ZXJhbCgiY3Nw
LXJlcG9ydCIpLCBXVEZNb3ZlKGNzcFJlcG9ydCkpOwogCi0gICAgUmVmUHRyPEZvcm1EYXRhPiBy
ZXBvcnQgPSBGb3JtRGF0YTo6Y3JlYXRlKHJlcG9ydE9iamVjdC0+dG9KU09OU3RyaW5nKCkudXRm
OCgpKTsKKyAgICBhdXRvIHJlcG9ydCA9IEZvcm1EYXRhOjpjcmVhdGUocmVwb3J0T2JqZWN0LT50
b0pTT05TdHJpbmcoKS51dGY4KCkpOwogICAgIGZvciAoY29uc3QgYXV0byYgdXJsIDogcmVwb3J0
VVJJcykKICAgICAgICAgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydCgqZnJhbWUsIGlz
PERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG9jdW1lbnQuY29tcGxldGVV
UkwodXJsKSA6IGRvY3VtZW50LmNvbXBsZXRlVVJMKHVybCwgYmxvY2tlZFVSTCksIHJlcG9ydC5j
b3B5UmVmKCksIFZpb2xhdGlvblJlcG9ydFR5cGU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nl
c3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tCmluZGV4IGIxMGYyZTllYjc4
ZDU5ZTAyNmJiZGI0ZGZkNzBlNGRhNTNiOWE0NzAuLmY2MzVhZWQzYjk3ZjAxMjlmZjllYTgzZDE0
Yzc5MWJiZTc1ZjhiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1t
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI4LDI0ICsyOCwyNCBAQAogCiAjaWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAm
JiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQogCisjaW1wb3J0ICJBdWRpb1RyYWNr
TGlzdC5oIgorI2ltcG9ydCAiRXZlbnQuaCIKKyNpbXBvcnQgIkV2ZW50TGlzdGVuZXIuaCIKKyNp
bXBvcnQgIkV2ZW50TmFtZXMuaCIKKyNpbXBvcnQgIkhUTUxFbGVtZW50LmgiCisjaW1wb3J0ICJI
VE1MTWVkaWFFbGVtZW50LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRpYUNv
bnRyb2xzSG9zdC5oIgorI2ltcG9ydCAiUGFnZS5oIgorI2ltcG9ydCAiUGFnZUdyb3VwLmgiCisj
aW1wb3J0ICJTb2Z0TGlua2luZy5oIgorI2ltcG9ydCAiVGV4dFRyYWNrTGlzdC5oIgorI2ltcG9y
dCAiVGltZVJhbmdlcy5oIgogI2ltcG9ydCAiV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmgi
CiAjaW1wb3J0IDxRdWFydHpDb3JlL0NvcmVBbmltYXRpb24uaD4KLSNpbXBvcnQgPFdlYkNvcmUv
QXVkaW9UcmFja0xpc3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvRXZlbnQuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvRXZlbnRMaXN0ZW5lci5oPgotI2ltcG9ydCA8V2ViQ29yZS9FdmVudE5hbWVzLmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL0hUTUxFbGVtZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRp
YUVsZW1lbnQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9Q
YWdlR3JvdXAuaD4KLSNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvVGV4dFRyYWNrTGlzdC5oPgotI2ltcG9ydCA8V2ViQ29yZS9UaW1lUmFuZ2VzLmg+CiAj
aW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CituYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVt
ZW50OjpXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudCgpCiAgICAgOiBFdmVudExp
c3RlbmVyKEV2ZW50TGlzdGVuZXI6OkNQUEV2ZW50TGlzdGVuZXJUeXBlKQpAQCAtMjMzLDE3ICsy
MzMsOCBAQCB2b2lkIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RB
dWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IHNlbGVjdAogICAgIGlmICghbV9tZWRpYUVsZW1lbnQp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVChzZWxlY3RlZEF1ZGlvSW5kZXggPCBzdGQ6
Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKLSAgICBBdWRpb1RyYWNrKiBzZWxlY3Rl
ZEF1ZGlvVHJhY2sgPSBudWxscHRyOwotCi0gICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRl
eCA8IG1fYXVkaW9UcmFja3NGb3JNZW51LnNpemUoKTsgKytpbmRleCkgewotICAgICAgICBhdXRv
JiBhdWRpb1RyYWNrID0gbV9hdWRpb1RyYWNrc0Zvck1lbnVbaW5kZXhdOwotICAgICAgICBhdWRp
b1RyYWNrLT5zZXRFbmFibGVkKGluZGV4ID09IHN0YXRpY19jYXN0PHNpemVfdD4oc2VsZWN0ZWRB
dWRpb0luZGV4KSk7Ci0gICAgICAgIGlmIChhdWRpb1RyYWNrLT5lbmFibGVkKCkpCi0gICAgICAg
ICAgICBzZWxlY3RlZEF1ZGlvVHJhY2sgPSBhdWRpb1RyYWNrLmdldCgpOwotICAgIH0KLQotICAg
IG1fbWVkaWFFbGVtZW50LT5hdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoc2VsZWN0ZWRBdWRpb1Ry
YWNrKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IG1fYXVkaW9UcmFja3NGb3JNZW51
LnNpemUoKTsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgbV9hdWRpb1RyYWNrc0Zvck1lbnVbaV0t
PnNldEVuYWJsZWQoaSA9PSBzZWxlY3RlZEF1ZGlvSW5kZXgpOwogfQogCiB2b2lkIFdlYlBsYXli
YWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWlu
dDY0X3QgaW5kZXgpCkBAIC0yNTEsOSArMjQyLDcgQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudDo6c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGUK
ICAgICBpZiAoIW1fbWVkaWFFbGVtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQo
aW5kZXggPCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKLSAgICBUZXh0VHJh
Y2sqIHRleHRUcmFjayA9IG51bGxwdHI7Ci0KKyAgICBUZXh0VHJhY2sqIHRleHRUcmFjazsKICAg
ICBpZiAoaW5kZXggPCBtX2xlZ2libGVUcmFja3NGb3JNZW51LnNpemUoKSkKICAgICAgICAgdGV4
dFRyYWNrID0gbV9sZWdpYmxlVHJhY2tzRm9yTWVudVtzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4
KV0uZ2V0KCk7CiAgICAgZWxzZQpAQCAtNDcxLDQgKzQ2MCw2IEBAIGJvb2wgV2ViUGxheWJhY2tT
ZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OndpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCkg
Y29uc3QKICAgICByZXR1cm4gbV9tZWRpYUVsZW1lbnQgJiYgbV9tZWRpYUVsZW1lbnQtPm1lZGlh
U2Vzc2lvbigpLndpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCptX21lZGlhRWxlbWVudCk7
CiB9CiAKK30KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAppbmRleCAzYmM5N2VkNzAyYWIwNGFkYmUxNDE1YWRm
OWJlMzUyOThkZmFkZGRiLi43MTBkMTcwMjA1YTVhYzllMGRkMGY0OWJjMzU2MzVlYThhMGUzMzFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNr
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJh
Y2tQcml2YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjMsOCArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVm
IEF1ZGlvVHJhY2tQcml2YXRlX2gKLSNkZWZpbmUgQXVkaW9UcmFja1ByaXZhdGVfaAorI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlLmgiCiAKQEAgLTM2LDcgKzM1LDcg
QEAgY2xhc3MgQXVkaW9UcmFja1ByaXZhdGU7CiAKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlQ2xp
ZW50IDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgewogcHVibGljOgotICAgIHZpcnR1
YWwgdm9pZCBlbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrUHJpdmF0ZSosIGJvb2wpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgPSAwOwogfTsKIAogY2xhc3MgQXVk
aW9UcmFja1ByaXZhdGUgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZSB7CkBAIC01NSwyNiArNTQs
MjIgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2VuYWJsZWQgPSBl
bmFibGVkOwogICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+ZW5h
YmxlZENoYW5nZWQodGhpcywgZW5hYmxlZCk7Ci0gICAgfTsKLSAgICB2aXJ0dWFsIGJvb2wgZW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZDsgfQorICAgICAgICAgICAgbV9jbGllbnQt
PmVuYWJsZWRDaGFuZ2VkKGVuYWJsZWQpOworICAgIH0KKworICAgIGJvb2wgZW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fZW5hYmxlZDsgfQogCiAgICAgZW51bSBLaW5kIHsgQWx0ZXJuYXRpdmUs
IERlc2NyaXB0aW9uLCBNYWluLCBNYWluRGVzYywgVHJhbnNsYXRpb24sIENvbW1lbnRhcnksIE5v
bmUgfTsKICAgICB2aXJ0dWFsIEtpbmQga2luZCgpIGNvbnN0IHsgcmV0dXJuIE5vbmU7IH0KIAog
cHJvdGVjdGVkOgotICAgIEF1ZGlvVHJhY2tQcml2YXRlKCkKLSAgICAgICAgOiBtX2NsaWVudCgw
KQotICAgICAgICAsIG1fZW5hYmxlZChmYWxzZSkKLSAgICB7Ci0gICAgfQorICAgIEF1ZGlvVHJh
Y2tQcml2YXRlKCkgPSBkZWZhdWx0OwogCiBwcml2YXRlOgotICAgIEF1ZGlvVHJhY2tQcml2YXRl
Q2xpZW50KiBtX2NsaWVudDsKLSAgICBib29sIG1fZW5hYmxlZDsKKyAgICBBdWRpb1RyYWNrUHJp
dmF0ZUNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CisgICAgYm9vbCBtX2VuYWJsZWQgeyBm
YWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oCmluZGV4IDc2MGY2NzlkMTM1MGE3MTkwMDQ0NzBh
N2NiN2E3NDE3YThiYzQ5MTUuLjlhMTEwNzliYmU0MjgxNGU2NGEwNjYwZTJmYWZhMzkwMjE0MGEw
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRl
eHRUcmFja1ByaXZhdGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50LmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMyw4ICsyMyw5IEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVu
dF9oCi0jZGVmaW5lIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnRfaAorI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1
ZGUgIlRyYWNrUHJpdmF0ZUJhc2UuaCIKQEAgLTM0LDggKzM1LDYgQEAKICNpbmNsdWRlICJTZXJp
YWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbi5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoVklE
RU9fVFJBQ0spCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZTsKQEAgLTQzLDkgKzQyLDcgQEAgY2xhc3MgSVNPV2ViVlRUQ3VlOwogCiBjbGFzcyBH
ZW5lcmljQ3VlRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPEdlbmVyaWNDdWVEYXRhPiB7CiBwdWJs
aWM6Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0YT4gY3JlYXRlKCkgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IEdlbmVyaWNDdWVEYXRhKCkpOyB9Ci0gICAgdmlydHVhbCB+R2Vu
ZXJpY0N1ZURhdGEoKSB7IH0KKyAgICBzdGF0aWMgUmVmPEdlbmVyaWNDdWVEYXRhPiBjcmVhdGUo
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEdlbmVyaWNDdWVEYXRhKTsgfQogCiAgICAgTWVkaWFU
aW1lIHN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRUaW1lOyB9CiAgICAgdm9pZCBz
ZXRTdGFydFRpbWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydFRpbWUpIHsgbV9zdGFydFRpbWUgPSBz
dGFydFRpbWU7IH0KQEAgLTUzLDExICs1MCwxMSBAQCBwdWJsaWM6CiAgICAgTWVkaWFUaW1lIGVu
ZFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2VuZFRpbWU7IH0KICAgICB2b2lkIHNldEVuZFRpbWUo
Y29uc3QgTWVkaWFUaW1lJiBlbmRUaW1lKSB7IG1fZW5kVGltZSA9IGVuZFRpbWU7IH0KIAotICAg
IFN0cmluZyBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KLSAgICB2b2lkIHNldElkKFN0cmlu
ZyBpZCkgeyBtX2lkID0gaWQ7IH0KKyAgICBjb25zdCBTdHJpbmcmIGlkKCkgY29uc3QgeyByZXR1
cm4gbV9pZDsgfQorICAgIHZvaWQgc2V0SWQoY29uc3QgU3RyaW5nJiBpZCkgeyBtX2lkID0gaWQ7
IH0KIAotICAgIFN0cmluZyBjb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50OyB9Ci0g
ICAgdm9pZCBzZXRDb250ZW50KFN0cmluZyBjb250ZW50KSB7IG1fY29udGVudCA9IGNvbnRlbnQ7
IH0KKyAgICBjb25zdCBTdHJpbmcmIGNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnQ7
IH0KKyAgICB2b2lkIHNldENvbnRlbnQoY29uc3QgU3RyaW5nJiBjb250ZW50KSB7IG1fY29udGVu
dCA9IGNvbnRlbnQ7IH0KIAogICAgIGRvdWJsZSBsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9saW5l
OyB9CiAgICAgdm9pZCBzZXRMaW5lKGRvdWJsZSBsaW5lKSB7IG1fbGluZSA9IGxpbmU7IH0KQEAg
LTY4LDE3ICs2NSwxMiBAQCBwdWJsaWM6CiAgICAgZG91YmxlIHNpemUoKSBjb25zdCB7IHJldHVy
biBtX3NpemU7IH0KICAgICB2b2lkIHNldFNpemUoZG91YmxlIHNpemUpIHsgbV9zaXplID0gc2l6
ZTsgfQogCi0gICAgZW51bSBBbGlnbm1lbnQgewotICAgICAgICBOb25lLAotICAgICAgICBTdGFy
dCwKLSAgICAgICAgTWlkZGxlLAotICAgICAgICBFbmQKLSAgICB9OworICAgIGVudW0gQWxpZ25t
ZW50IHsgTm9uZSwgU3RhcnQsIE1pZGRsZSwgRW5kIH07CiAgICAgQWxpZ25tZW50IGFsaWduKCkg
Y29uc3QgeyByZXR1cm4gbV9hbGlnbjsgfQogICAgIHZvaWQgc2V0QWxpZ24oQWxpZ25tZW50IGFs
aWduKSB7IG1fYWxpZ24gPSBhbGlnbjsgfQogCi0gICAgU3RyaW5nIGZvbnROYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9mb250TmFtZTsgfQotICAgIHZvaWQgc2V0Rm9udE5hbWUoU3RyaW5nIGZvbnRO
YW1lKSB7IG1fZm9udE5hbWUgPSBmb250TmFtZTsgfQorICAgIGNvbnN0IFN0cmluZyYgZm9udE5h
bWUoKSBjb25zdCB7IHJldHVybiBtX2ZvbnROYW1lOyB9CisgICAgdm9pZCBzZXRGb250TmFtZShj
b25zdCBTdHJpbmcmIGZvbnROYW1lKSB7IG1fZm9udE5hbWUgPSBmb250TmFtZTsgfQogCiAgICAg
ZG91YmxlIGJhc2VGb250U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZUZvbnRTaXplOyB9CiAg
ICAgdm9pZCBzZXRCYXNlRm9udFNpemUoZG91YmxlIGJhc2VGb250U2l6ZSkgeyBtX2Jhc2VGb250
U2l6ZSA9IGJhc2VGb250U2l6ZTsgfQpAQCAtOTUsNDMgKzg3LDMwIEBAIHB1YmxpYzoKICAgICBj
b25zdCBDb2xvciYgaGlnaGxpZ2h0Q29sb3IoKSBjb25zdCB7IHJldHVybiBtX2hpZ2hsaWdodENv
bG9yOyB9CiAgICAgdm9pZCBzZXRIaWdobGlnaHRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpIHsg
bV9oaWdobGlnaHRDb2xvciA9IGNvbG9yOyB9CiAKLSAgICBlbnVtIFN0YXR1cyB7Ci0gICAgICAg
IFVuaW5pdGlhbGl6ZWQsCi0gICAgICAgIFBhcnRpYWwsCi0gICAgICAgIENvbXBsZXRlLAotICAg
IH07CisgICAgZW51bSBTdGF0dXMgeyBVbmluaXRpYWxpemVkLCBQYXJ0aWFsLCBDb21wbGV0ZSB9
OwogICAgIFN0YXR1cyBzdGF0dXMoKSB7IHJldHVybiBtX3N0YXR1czsgfQogICAgIHZvaWQgc2V0
U3RhdHVzKFN0YXR1cyBzdGF0dXMpIHsgbV9zdGF0dXMgPSBzdGF0dXM7IH0KIAogICAgIGJvb2wg
ZG9lc0V4dGVuZEN1ZURhdGEoY29uc3QgR2VuZXJpY0N1ZURhdGEmKSBjb25zdDsKIAogcHJpdmF0
ZToKLSAgICBHZW5lcmljQ3VlRGF0YSgpCi0gICAgICAgIDogbV9saW5lKC0xKQotICAgICAgICAs
IG1fcG9zaXRpb24oLTEpCi0gICAgICAgICwgbV9zaXplKC0xKQotICAgICAgICAsIG1fYWxpZ24o
Tm9uZSkKLSAgICAgICAgLCBtX2Jhc2VGb250U2l6ZSgwKQotICAgICAgICAsIG1fcmVsYXRpdmVG
b250U2l6ZSgwKQotICAgICAgICAsIG1fc3RhdHVzKFVuaW5pdGlhbGl6ZWQpCi0gICAgewotICAg
IH0KKyAgICBHZW5lcmljQ3VlRGF0YSgpID0gZGVmYXVsdDsKIAogICAgIE1lZGlhVGltZSBtX3N0
YXJ0VGltZTsKICAgICBNZWRpYVRpbWUgbV9lbmRUaW1lOwogICAgIFN0cmluZyBtX2lkOwogICAg
IFN0cmluZyBtX2NvbnRlbnQ7Ci0gICAgZG91YmxlIG1fbGluZTsKLSAgICBkb3VibGUgbV9wb3Np
dGlvbjsKLSAgICBkb3VibGUgbV9zaXplOwotICAgIEFsaWdubWVudCBtX2FsaWduOworICAgIGRv
dWJsZSBtX2xpbmUgeyAtMSB9OworICAgIGRvdWJsZSBtX3Bvc2l0aW9uIHsgLTEgfTsKKyAgICBk
b3VibGUgbV9zaXplIHsgLTEgfTsKKyAgICBBbGlnbm1lbnQgbV9hbGlnbiB7IE5vbmUgfTsKICAg
ICBTdHJpbmcgbV9mb250TmFtZTsKLSAgICBkb3VibGUgbV9iYXNlRm9udFNpemU7Ci0gICAgZG91
YmxlIG1fcmVsYXRpdmVGb250U2l6ZTsKKyAgICBkb3VibGUgbV9iYXNlRm9udFNpemUgeyAwIH07
CisgICAgZG91YmxlIG1fcmVsYXRpdmVGb250U2l6ZSB7IDAgfTsKICAgICBDb2xvciBtX2ZvcmVn
cm91bmRDb2xvcjsKICAgICBDb2xvciBtX2JhY2tncm91bmRDb2xvcjsKICAgICBDb2xvciBtX2hp
Z2hsaWdodENvbG9yOwotICAgIFN0YXR1cyBtX3N0YXR1czsKKyAgICBTdGF0dXMgbV9zdGF0dXMg
eyBVbmluaXRpYWxpemVkIH07CiB9OwogCiBpbmxpbmUgYm9vbCBHZW5lcmljQ3VlRGF0YTo6ZG9l
c0V4dGVuZEN1ZURhdGEoY29uc3QgR2VuZXJpY0N1ZURhdGEmIG90aGVyKSBjb25zdApAQCAtMTY4
LDI0ICsxNDcsMjMgQEAgY2xhc3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCA6IHB1Ymxp
YyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQ2xpZW50KCkgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YUN1
ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3Qg
TWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYg
ZW5kLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpID0gMDsKIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZB
TFVFKQotICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUq
LCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0
cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4sIGNvbnN0IFN0cmluZyYpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwg
Y29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8
U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHJlbW92ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYg
c3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9y
bVJlcHJlc2VudGF0aW9uPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhQ3VlKGNvbnN0
IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBs
YXRmb3JtUmVwcmVzZW50YXRpb24+JiYsIGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRp
bWUmIGVuZCwgU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24mKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVk
aWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uJikgPSAwOwogI2Vu
ZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2
YXRlKiwgUGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0YT4pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEq
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGRHZW5l
cmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHZW5l
cmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVHZW5l
cmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHBhcnNlV2Vi
VlRURmlsZUhlYWRlcihJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgU3RyaW5nJiYpIHsgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKElu
YmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFj
a1ByaXZhdGUqLCBjb25zdCBJU09XZWJWVFRDdWUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBh
cnNlV2ViVlRURmlsZUhlYWRlcihTdHJpbmcmJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5z
aWduZWQgbGVuZ3RoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShj
b25zdCBJU09XZWJWVFRDdWUmKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKaW5kZXggMDhlNjJjMzQ4NjJhZGQ5NGZhMDg0YjQy
NWM1ODdhYTRmYmQzNjRiZC4uN2FjNWRkMjc1YmFhNTdiMGFhZThiZTU1MDg3ODc2ZmYxMTkxZTBi
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVm
ZmVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJj
ZUJ1ZmZlclByaXZhdGUuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAx
My0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI4LDIxICsyOCwxNyBAQAogICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCi0jaWZuZGVmIFNvdXJjZUJ1ZmZlclByaXZhdGVfaAotI2Rl
ZmluZSBTb3VyY2VCdWZmZXJQcml2YXRlX2gKKworI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUo
TUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKLSNpbmNsdWRlICJUaW1l
UmFuZ2VzLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTYW1wbGU7CiBjbGFz
cyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OwotY2xhc3MgVGltZVJhbmdlczsKIAogY2xhc3Mg
U291cmNlQnVmZmVyUHJpdmF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFNvdXJjZUJ1ZmZlclByaXZh
dGU+IHsKIHB1YmxpYzoKQEAgLTU4LDE3ICs1NCwxNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBN
ZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSA9IDA7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZmx1c2goQXRvbWljU3RyaW5nKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
ZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiwgQXRvbWljU3RyaW5nKSB7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2goY29uc3QgQXRvbWljU3RyaW5n
JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYm
LCBjb25zdCBBdG9taWNTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFkeUZvck1v
cmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCB2b2lkIHNldEFjdGl2ZShib29sKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc3RvcEFza2lu
Z0Zvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlm
eUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykgeyB9CisgICAgdmly
dHVhbCB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMo
Y29uc3QgQXRvbWljU3RyaW5nJikgeyB9CiAKLSAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGVu
cXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoQXRvbWljU3RyaW5nKSB7IHJldHVybiB7fTsgfQorICAg
IHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChjb25zdCBB
dG9taWNTdHJpbmcmKSB7IHJldHVybiB7IH07IH0KIH07CiAKIH0KIAogI2VuZGlmCi0jZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZl
clByaXZhdGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQuaAppbmRleCAyOTRhZDY1ZjQ2MzM1ZGYwNjkxNTNmNGFjYjM5
NzAzYmYxYzlmMGYyLi4xODA4N2Q1ZTNkMjZjYTExZGJhMGY2ODczMDBkODY5Njg4MGI1Y2QxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQ
cml2YXRlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291
cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDEyICszMiwxMSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGU7CiBjbGFzcyBBdWRpb1RyYWNrUHJp
dmF0ZTsKLWNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOwogY2xhc3MgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZTsKIGNsYXNzIE1lZGlhU2FtcGxlOwogY2xhc3MgTWVkaWFEZXNjcmlwdGlvbjsKK2NsYXNz
IFZpZGVvVHJhY2tQcml2YXRlOwogCiBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50IHsK
IHB1YmxpYzoKQEAgLTY0LDIzICs2MywxOSBAQCBwdWJsaWM6CiAgICAgICAgIH07CiAgICAgICAg
IFZlY3RvcjxUZXh0VHJhY2tJbmZvcm1hdGlvbj4gdGV4dFRyYWNrczsKICAgICB9OwotICAgIHZp
cnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2Vn
bWVudChTb3VyY2VCdWZmZXJQcml2YXRlKiwgY29uc3QgSW5pdGlhbGl6YXRpb25TZWdtZW50Jikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBs
ZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgTWVkaWFTYW1wbGUmKSA9IDA7Ci0gICAgdmlydHVhbCBi
b29sIHNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyhjb25zdCBTb3VyY2VCdWZmZXJQcml2YXRl
KikgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlk
ZW8oY29uc3QgU291cmNlQnVmZmVyUHJpdmF0ZSopIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29u
c3QgSW5pdGlhbGl6YXRpb25TZWdtZW50JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VC
dWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYpID0gMDsKKyAgICB2aXJ0
dWFsIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgYm9vbCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8oKSBjb25zdCA9IDA7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNh
bXBsZXMoU291cmNlQnVmZmVyUHJpdmF0ZSosIEF0b21pY1N0cmluZyB0cmFja0lEKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVT
YW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkgPSAwOwogCi0gICAgdmlydHVhbCBN
ZWRpYVRpbWUgc291cmNlQnVmZmVyUHJpdmF0ZUZhc3RTZWVrVGltZUZvck1lZGlhVGltZShTb3Vy
Y2VCdWZmZXJQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBNZWRpYVRpbWUm
LCBjb25zdCBNZWRpYVRpbWUmKSB7IHJldHVybiB0aW1lOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNv
dXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBN
ZWRpYVRpbWUmKSB7IH07CisgICAgdmlydHVhbCBNZWRpYVRpbWUgc291cmNlQnVmZmVyUHJpdmF0
ZUZhc3RTZWVrVGltZUZvck1lZGlhVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIHsgcmV0dXJuIHRpbWU7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZVNlZWtUb1RpbWUoY29uc3QgTWVkaWFUaW1lJikgeyB9
OwogCi0gICAgZW51bSBBcHBlbmRSZXN1bHQgewotICAgICAgICBBcHBlbmRTdWNjZWVkZWQsCi0g
ICAgICAgIFJlYWRTdHJlYW1GYWlsZWQsCi0gICAgICAgIFBhcnNpbmdGYWlsZWQsCi0gICAgfTsK
LSAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFNvdXJj
ZUJ1ZmZlclByaXZhdGUqLCBBcHBlbmRSZXN1bHQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc291
cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihTb3VyY2VCdWZmZXJQcml2
YXRlKiwgaW50IGVycm9jQ29kZSkgPSAwOworICAgIGVudW0gQXBwZW5kUmVzdWx0IHsgQXBwZW5k
U3VjY2VlZGVkLCBSZWFkU3RyZWFtRmFpbGVkLCBQYXJzaW5nRmFpbGVkIH07CisgICAgdmlydHVh
bCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShBcHBlbmRSZXN1bHQpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJp
bmdFcnJvcihpbnQgZXJyb3JDb2RlKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgKaW5kZXggNzMxYWE4ZDkz
NmE1YWFlYTBkMWMwM2FhNjhhMmFjNmIyYjJiOWU2NC4uMGIwMGNhNWY2NjE1NDk2Mjg1MWMzZWM3
ZjkxNjgzMDQ4Yjg2YmY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJp
Z2h0IChDKSAyMDEzIENhYmxlIFRlbGV2aXNpb24gTGFicywgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjUsMzQgKzI1LDI5IEBACiAgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKLSNpZm5kZWYgVHJhY2tQcml2YXRlQmFzZV9oCi0jZGVmaW5lIFRyYWNrUHJpdmF0
ZUJhc2VfaAorI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KLSNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFRyYWNrUHJpdmF0ZUJhc2U7Ci0KIGNsYXNz
IFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgflRyYWNrUHJp
dmF0ZUJhc2VDbGllbnQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgaWRDaGFuZ2VkKFRyYWNrUHJp
dmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGxh
YmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0
IEF0b21pY1N0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZShUcmFja1By
aXZhdGVCYXNlKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsYWJlbENoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRv
bWljU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlKCkgPSAwOwogfTsK
IAogY2xhc3MgVHJhY2tQcml2YXRlQmFzZSA6IHB1YmxpYyBSZWZDb3VudGVkPFRyYWNrUHJpdmF0
ZUJhc2U+IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUcmFja1ByaXZhdGVCYXNlKTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVHJhY2tQcml2
YXRlQmFzZSk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgdmly
dHVhbCB+VHJhY2tQcml2YXRlQmFzZSgpIHsgfQorICAgIHZpcnR1YWwgflRyYWNrUHJpdmF0ZUJh
c2UoKSA9IGRlZmF1bHQ7CiAKICAgICB2aXJ0dWFsIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQqIGNs
aWVudCgpIGNvbnN0ID0gMDsKIApAQCAtNjMsMTggKzU4LDE3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGludCB0cmFja0luZGV4KCkgY29uc3QgeyByZXR1cm4gMDsgfQogCiAgICAgdmlydHVhbCBN
ZWRpYVRpbWUgc3RhcnRUaW1lVmFyaWFuY2UoKSBjb25zdCB7IHJldHVybiBNZWRpYVRpbWU6Onpl
cm9UaW1lKCk7IH0KLSAgICAKKwogICAgIHZvaWQgd2lsbEJlUmVtb3ZlZCgpCiAgICAgewotICAg
ICAgICBpZiAoVHJhY2tQcml2YXRlQmFzZUNsaWVudCogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkp
Ci0gICAgICAgICAgICBjbGllbnQtPndpbGxSZW1vdmUodGhpcyk7CisgICAgICAgIGlmIChhdXRv
KiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkKKyAgICAgICAgICAgIGNsaWVudC0+d2lsbFJlbW92
ZSgpOwogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIFRyYWNrUHJpdmF0ZUJhc2UoKSB7IH0KKyAg
ICBUcmFja1ByaXZhdGVCYXNlKCkgPSBkZWZhdWx0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKaW5kZXggZmVkMzQ5YTdiMzcyOGY1MDI3Yzgy
ZTdhMTBjMzUyN2QwZjU5MzVkZC4uZjk0NTMzNTY3ZmYyYmIzMDU2OGU4MTEzZDQ3NWQ4ZTg2MTUw
NzFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9U
cmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRl
b1RyYWNrUHJpdmF0ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTIzLDI5ICsyMywyMSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0j
aWZuZGVmIFZpZGVvVHJhY2tQcml2YXRlX2gKLSNkZWZpbmUgVmlkZW9UcmFja1ByaXZhdGVfaAot
Ci0jaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZS5oIgorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKKyNpbmNsdWRlICJUcmFja1By
aXZhdGVCYXNlLmgiCiAKLWNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOworbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZh
dGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGFuZ2Vk
KFZpZGVvVHJhY2tQcml2YXRlKiwgYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZWxlY3Rl
ZENoYW5nZWQoYm9vbCkgPSAwOwogfTsKIAogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGUgOiBwdWJs
aWMgVHJhY2tQcml2YXRlQmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Vmlk
ZW9UcmFja1ByaXZhdGU+IGNyZWF0ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFZpZGVvVHJhY2tQcml2YXRlKCkpOwotICAgIH0KLQogICAgIHZvaWQgc2V0Q2xpZW50KFZp
ZGVvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KICAg
ICBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9jbGllbnQ7IH0KIApAQCAtNTUsMjYgKzQ3LDIxIEBAIHB1YmxpYzoKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgbV9zZWxlY3RlZCA9IHNlbGVjdGVkOwogICAgICAgICBpZiAobV9j
bGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+c2VsZWN0ZWRDaGFuZ2VkKHRoaXMsIG1fc2Vs
ZWN0ZWQpOwotICAgIH07CisgICAgICAgICAgICBtX2NsaWVudC0+c2VsZWN0ZWRDaGFuZ2VkKG1f
c2VsZWN0ZWQpOworICAgIH0KICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0ZWQoKSBjb25zdCB7IHJl
dHVybiBtX3NlbGVjdGVkOyB9CiAKICAgICBlbnVtIEtpbmQgeyBBbHRlcm5hdGl2ZSwgQ2FwdGlv
bnMsIE1haW4sIFNpZ24sIFN1YnRpdGxlcywgQ29tbWVudGFyeSwgTm9uZSB9OwogICAgIHZpcnR1
YWwgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gTm9uZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAg
VmlkZW9UcmFja1ByaXZhdGUoKQotICAgICAgICA6IG1fY2xpZW50KDApCi0gICAgICAgICwgbV9z
ZWxlY3RlZChmYWxzZSkKLSAgICB7Ci0gICAgfQorICAgIFZpZGVvVHJhY2tQcml2YXRlKCkgPSBk
ZWZhdWx0OwogCiBwcml2YXRlOgotICAgIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50KiBtX2NsaWVu
dDsKLSAgICBib29sIG1fc2VsZWN0ZWQ7CisgICAgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQqIG1f
Y2xpZW50IHsgbnVsbHB0ciB9OworICAgIGJvb2wgbV9zZWxlY3RlZCB7IGZhbHNlIH07CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFja1By
aXZhdGVBVkYuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1RyYWNrUHJpdmF0ZUFWRi5oCmluZGV4IDEzMWZkNTFiNGMxNjkzNDA4YjRmOGE0YjU5
NmViMjZmYmQ2ZDI5NmIuLjE5YjU2MGJjY2JhNTgxOTVjZTQ1ZWY2ZWY4MWM4ZGNkZWMyOTViYzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9BdWRpb1RyYWNrUHJpdmF0ZUFWRi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1RyYWNrUHJpdmF0ZUFWRi5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDggKzIzLDcgQEAK
ICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEF1ZGlv
VHJhY2tQcml2YXRlQVZGX2gKLSNkZWZpbmUgQXVkaW9UcmFja1ByaXZhdGVBVkZfaAorI3ByYWdt
YSBvbmNlCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKQEAgLTM1LDcgKzM0LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVBVkYgOiBwdWJsaWMgQXVk
aW9UcmFja1ByaXZhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1ZGlvVHJhY2tQcml2
YXRlQVZGKQogcHVibGljOgotCiAgICAgdmlydHVhbCBLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVy
biBtX2tpbmQ7IH0KICAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBpZCgpIGNvbnN0IHsgcmV0dXJu
IG1faWQ7IH0KICAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBsYWJlbCgpIGNvbnN0IHsgcmV0dXJu
IG1fbGFiZWw7IH0KQEAgLTQ0LDI2ICs0MiwyMCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAg
ICB2b2lkIHNldEtpbmQoS2luZCBraW5kKSB7IG1fa2luZCA9IGtpbmQ7IH0KLSAgICB2b2lkIHNl
dElkKEF0b21pY1N0cmluZyBuZXdJZCkgeyBtX2lkID0gbmV3SWQ7IH0KLSAgICB2b2lkIHNldExh
YmVsKEF0b21pY1N0cmluZyBsYWJlbCkgeyBtX2xhYmVsID0gbGFiZWw7IH0KLSAgICB2b2lkIHNl
dExhbmd1YWdlKEF0b21pY1N0cmluZyBsYW5ndWFnZSkgeyBtX2xhbmd1YWdlID0gbGFuZ3VhZ2U7
IH0KKyAgICB2b2lkIHNldElkKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3SWQpIHsgbV9pZCA9IG5l
d0lkOyB9CisgICAgdm9pZCBzZXRMYWJlbChjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKSB7IG1f
bGFiZWwgPSBsYWJlbDsgfQorICAgIHZvaWQgc2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5n
JiBsYW5ndWFnZSkgeyBtX2xhbmd1YWdlID0gbGFuZ3VhZ2U7IH0KICAgICB2b2lkIHNldFRyYWNr
SW5kZXgoaW50IGluZGV4KSB7IG1faW5kZXggPSBpbmRleDsgfQogCi0gICAgS2luZCBtX2tpbmQ7
CisgICAgS2luZCBtX2tpbmQgeyBOb25lIH07CiAgICAgQXRvbWljU3RyaW5nIG1faWQ7CiAgICAg
QXRvbWljU3RyaW5nIG1fbGFiZWw7CiAgICAgQXRvbWljU3RyaW5nIG1fbGFuZ3VhZ2U7Ci0gICAg
aW50IG1faW5kZXg7CisgICAgaW50IG1faW5kZXggeyAwIH07CiAKLSAgICBBdWRpb1RyYWNrUHJp
dmF0ZUFWRigpCi0gICAgICAgIDogbV9raW5kKE5vbmUpCi0gICAgICAgICwgbV9pbmRleCgwKQot
ICAgIHsKLSAgICB9CisgICAgQXVkaW9UcmFja1ByaXZhdGVBVkYoKSA9IGRlZmF1bHQ7CiB9Owog
CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU9fVFJBQ0spCi0KLSNlbmRpZiAvLyBBdWRpb1Ry
YWNrUHJpdmF0ZUFWRl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRNZXRh
ZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuY3BwCmluZGV4IDljNmNhODdiMGMwZjkwMDY3MTE3ZjQ0
MmQzZTY2ZDk0MTMzYWYxNDAuLmI0OWJkMWUzN2YwYzdkMDZhOWViMzhiY2QwYzFjM2MwYmMzODc5
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9JbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRNZXRhZGF0YVRleHRU
cmFja1ByaXZhdGVBVkYuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsOSArMjQsOSBAQAogICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuaCIK
IAogI2lmIEVOQUJMRShWSURFTykgJiYgRU5BQkxFKERBVEFDVUVfVkFMVUUpICYmIChVU0UoQVZG
T1VOREFUSU9OKSB8fCBQTEFURk9STShJT1MpKQotI2luY2x1ZGUgIkluYmFuZE1ldGFkYXRhVGV4
dFRyYWNrUHJpdmF0ZUFWRi5oIgogCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNs
aWVudC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTU0LDYgKzU0LDcgQEAgSW5iYW5kTWV0
YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjp+SW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRl
QVZGKCkKIH0KIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQorCiB2b2lkIEluYmFuZE1ldGFk
YXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0
LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXBy
ZXNlbnRhdGlvbj4gcHJwQ3VlRGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlKQogewogICAgIEFTU0VS
VChjdWVGb3JtYXQoKSA9PSBEYXRhKTsKQEAgLTY2LDcgKzY3LDcgQEAgdm9pZCBJbmJhbmRNZXRh
ZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFy
dCwgY29uc3QKICAgICBtX2N1cnJlbnRDdWVTdGFydFRpbWUgPSBzdGFydDsKICAgICBpZiAoZW5k
LmlzUG9zaXRpdmVJbmZpbml0ZSgpKQogICAgICAgICBtX2luY29tcGxldGVDdWVzLmFwcGVuZChJ
bmNvbXBsZXRlTWV0YURhdGFDdWUgeyBjdWVEYXRhLmdldCgpLCBzdGFydCB9KTsKLSAgICBjbGll
bnQoKS0+YWRkRGF0YUN1ZSh0aGlzLCBzdGFydCwgZW5kLCBjdWVEYXRhLCB0eXBlKTsKKyAgICBj
bGllbnQoKS0+YWRkRGF0YUN1ZShzdGFydCwgZW5kLCBjdWVEYXRhLnJlbGVhc2VOb25OdWxsKCks
IHR5cGUpOwogfQogCiB2b2lkIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6dXBk
YXRlUGVuZGluZ0N1ZUVuZFRpbWVzKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKQEAgLTc3LDcgKzc4
LDcgQEAgdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OnVwZGF0ZVBlbmRp
bmdDdWVFbmRUaW1lcyhjb25zdCBNZWRpYVRpbWUKICAgICAgICAgaWYgKGNsaWVudCgpKSB7CiAg
ICAgICAgICAgICBmb3IgKGF1dG8mIHBhcnRpYWxDdWUgOiBtX2luY29tcGxldGVDdWVzKSB7CiAg
ICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRl
QVZGOjp1cGRhdGVQZW5kaW5nQ3VlRW5kVGltZXMoJXApIC0gdXBkYXRpbmcgY3VlOiBzdGFydD0l
cywgZW5kPSVzIiwgdGhpcywgdG9TdHJpbmcocGFydGlhbEN1ZS5zdGFydFRpbWUpLnV0ZjgoKS5k
YXRhKCksIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgICAgIGNs
aWVudCgpLT51cGRhdGVEYXRhQ3VlKHRoaXMsIHBhcnRpYWxDdWUuc3RhcnRUaW1lLCB0aW1lLCBw
YXJ0aWFsQ3VlLmN1ZURhdGEpOworICAgICAgICAgICAgICAgIGNsaWVudCgpLT51cGRhdGVEYXRh
Q3VlKHBhcnRpYWxDdWUuc3RhcnRUaW1lLCB0aW1lLCAqcGFydGlhbEN1ZS5jdWVEYXRhKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZQpAQCAtODYsNiArODcsNyBAQCB2b2lk
IEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6dXBkYXRlUGVuZGluZ0N1ZUVuZFRp
bWVzKGNvbnN0IE1lZGlhVGltZQogICAgIG1faW5jb21wbGV0ZUN1ZXMucmVzaXplKDApOwogICAg
IG1fY3VycmVudEN1ZVN0YXJ0VGltZSA9IE1lZGlhVGltZTo6emVyb1RpbWUoKTsKIH0KKwogI2Vu
ZGlmCiAKIHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjpmbHVzaFBhcnRp
YWxDdWVzKCkKQEAgLTk1LDcgKzk3LDcgQEAgdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1By
aXZhdGVBVkY6OmZsdXNoUGFydGlhbEN1ZXMoKQogCiAgICAgaWYgKGNsaWVudCgpKSB7CiAgICAg
ICAgIGZvciAoYXV0byYgcGFydGlhbEN1ZSA6IG1faW5jb21wbGV0ZUN1ZXMpCi0gICAgICAgICAg
ICBjbGllbnQoKS0+cmVtb3ZlRGF0YUN1ZSh0aGlzLCBwYXJ0aWFsQ3VlLnN0YXJ0VGltZSwgTWVk
aWFUaW1lOjpwb3NpdGl2ZUluZmluaXRlVGltZSgpLCBwYXJ0aWFsQ3VlLmN1ZURhdGEpOworICAg
ICAgICAgICAgY2xpZW50KCktPnJlbW92ZURhdGFDdWUocGFydGlhbEN1ZS5zdGFydFRpbWUsIE1l
ZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKSwgKnBhcnRpYWxDdWUuY3VlRGF0YSk7CiAg
ICAgfQogCiAgICAgbV9pbmNvbXBsZXRlQ3Vlcy5yZXNpemUoMCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKaW5kZXggM2I3YmRhODY2ZDJlNjBk
OTMyZWI4ZTYwOTZlZjhhOTMzMzdjNjZjMC4uOTU5NmY4Y2EzYzE3ZTQ1ZGZjZTE4ZDdhZDAyNGUw
YzUxZDUyZDBkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlQVZGLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI0LDExICsyNCwxMSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmgiCiAKICNpZiBFTkFCTEUo
VklERU8pICYmIChVU0UoQVZGT1VOREFUSU9OKSB8fCBQTEFURk9STShJT1MpKQogCi0jaW5jbHVk
ZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oIgotCisjaW5jbHVkZSAiQ29yZU1lZGlhU29m
dExpbmsuaCIKICNpbmNsdWRlICJJU09WVFRDdWUuaCIKICNpbmNsdWRlICJJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtNDMsMTIgKzQzLDYg
QEAKICNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgogI2luY2x1ZGUgPHd0
Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCi0jaW5jbHVkZSAiQ29yZU1lZGlhU29mdExpbmsuaCIK
LQotbmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBBcnJheUJ1ZmZlcjsKLX0KLQogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBBVkZJbmJhbmRUcmFja1BhcmVudDo6fkFWRkluYmFuZFRyYWNrUGFyZW50KCkK
QEAgLTMyMywzMyArMzE3LDMzIEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJv
Y2Vzc0F0dHJpYnV0ZWRTdHJpbmdzKENGQXJyYXlSZWYgYXR0cmlidXRlZFN0CiB7CiAgICAgTE9H
KE1lZGlhLCAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSAtICVsaSBjdWVz
IGF0IHRpbWUgJXNcbiIsIGF0dHJpYnV0ZWRTdHJpbmdzID8gQ0ZBcnJheUdldENvdW50KGF0dHJp
YnV0ZWRTdHJpbmdzKSA6IDAsIHRvU3RyaW5nKHRpbWUpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAg
VmVjdG9yPFJlZlB0cjxHZW5lcmljQ3VlRGF0YT4+IGFycml2aW5nQ3VlczsKKyAgICBWZWN0b3I8
UmVmPEdlbmVyaWNDdWVEYXRhPj4gYXJyaXZpbmdDdWVzOwogICAgIGlmIChhdHRyaWJ1dGVkU3Ry
aW5ncykgewogICAgICAgICBDRkluZGV4IGNvdW50ID0gQ0ZBcnJheUdldENvdW50KGF0dHJpYnV0
ZWRTdHJpbmdzKTsKICAgICAgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgY291bnQ7IGkrKykg
ewogICAgICAgICAgICAgQ0ZBdHRyaWJ1dGVkU3RyaW5nUmVmIGF0dHJpYnV0ZWRTdHJpbmcgPSBz
dGF0aWNfY2FzdDxDRkF0dHJpYnV0ZWRTdHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgo
YXR0cmlidXRlZFN0cmluZ3MsIGkpKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBpZiAo
IWF0dHJpYnV0ZWRTdHJpbmcgfHwgIUNGQXR0cmlidXRlZFN0cmluZ0dldExlbmd0aChhdHRyaWJ1
dGVkU3RyaW5nKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIAotICAg
ICAgICAgICAgUmVmUHRyPEdlbmVyaWNDdWVEYXRhPiBjdWVEYXRhID0gR2VuZXJpY0N1ZURhdGE6
OmNyZWF0ZSgpOwotICAgICAgICAgICAgcHJvY2Vzc0N1ZUF0dHJpYnV0ZXMoYXR0cmlidXRlZFN0
cmluZywgKmN1ZURhdGEuZ2V0KCkpOworCisgICAgICAgICAgICBhdXRvIGN1ZURhdGEgPSBHZW5l
cmljQ3VlRGF0YTo6Y3JlYXRlKCk7CisgICAgICAgICAgICBwcm9jZXNzQ3VlQXR0cmlidXRlcyhh
dHRyaWJ1dGVkU3RyaW5nLCBjdWVEYXRhLmdldCgpKTsKICAgICAgICAgICAgIGlmICghY3VlRGF0
YS0+Y29udGVudCgpLmxlbmd0aCgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgCi0gICAgICAgICAgICBhcnJpdmluZ0N1ZXMuYXBwZW5kKGN1ZURhdGEpOwotICAgICAg
ICAgICAgCisKICAgICAgICAgICAgIGN1ZURhdGEtPnNldFN0YXJ0VGltZSh0aW1lKTsKICAgICAg
ICAgICAgIGN1ZURhdGEtPnNldEVuZFRpbWUoTWVkaWFUaW1lOjpwb3NpdGl2ZUluZmluaXRlVGlt
ZSgpKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICAvLyBBVkZvdW5kYXRpb24gY3VlICJw
b3NpdGlvbiIgaXMgdG8gdGhlIGNlbnRlciBvZiB0aGUgdGV4dCBzbyBhZGp1c3QgcmVsYXRpdmUg
dG8gdGhlIGVkZ2UgYmVjYXVzZSB3ZSB3aWxsIHVzZSBpdCB0bwogICAgICAgICAgICAgLy8gc2V0
IENTUyAibGVmdCIuCiAgICAgICAgICAgICBpZiAoY3VlRGF0YS0+cG9zaXRpb24oKSA+PSAwICYm
IGN1ZURhdGEtPnNpemUoKSA+IDApCiAgICAgICAgICAgICAgICAgY3VlRGF0YS0+c2V0UG9zaXRp
b24oY3VlRGF0YS0+cG9zaXRpb24oKSAtIGN1ZURhdGEtPnNpemUoKSAvIDIpOwotICAgICAgICAg
ICAgCisKICAgICAgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6
OnByb2Nlc3NDdWUoJXApIC0gY29uc2lkZXJpbmcgY3VlIChcIiVzXCIpIGZvciB0aW1lID0gJXMs
IHBvc2l0aW9uID0gICUuMmYsIGxpbmUgPSAgJS4yZiIsIHRoaXMsIGN1ZURhdGEtPmNvbnRlbnQo
KS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWVEYXRhLT5zdGFydFRpbWUoKSkudXRmOCgpLmRh
dGEoKSwgY3VlRGF0YS0+cG9zaXRpb24oKSwgY3VlRGF0YS0+bGluZSgpKTsKLSAgICAgICAgICAg
IAorCiAgICAgICAgICAgICBjdWVEYXRhLT5zZXRTdGF0dXMoR2VuZXJpY0N1ZURhdGE6OlBhcnRp
YWwpOworCisgICAgICAgICAgICBhcnJpdmluZ0N1ZXMuYXBwZW5kKFdURk1vdmUoY3VlRGF0YSkp
OwogICAgICAgICB9CiAgICAgfQogCkBAIC0zNjAsMTcgKzM1NCwxNyBAQCB2b2lkIEluYmFuZFRl
eHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRyaWJ1dGVkU3RyaW5ncyhDRkFycmF5UmVmIGF0
dHJpYnV0ZWRTdAogICAgICAgICBpZiAobV9jdXJyZW50Q3VlRW5kVGltZSA+PSBtX2N1cnJlbnRD
dWVTdGFydFRpbWUpIHsKICAgICAgICAgICAgIGZvciAoYXV0byYgY3VlRGF0YSA6IG1fY3Vlcykg
ewogICAgICAgICAgICAgICAgIC8vIFNlZSBpZiBvbmUgb2YgdGhlIG5ld2x5LWFycml2ZWQgY3Vl
cyBpcyBhbiBleHRlbnNpb24gb2YgdGhpcyBjdWUuCi0gICAgICAgICAgICAgICAgVmVjdG9yPFJl
ZlB0cjxHZW5lcmljQ3VlRGF0YT4+IG5vbkV4dGVuc2lvbkN1ZXM7CisgICAgICAgICAgICAgICAg
VmVjdG9yPFJlZjxHZW5lcmljQ3VlRGF0YT4+IG5vbkV4dGVuc2lvbkN1ZXM7CiAgICAgICAgICAg
ICAgICAgZm9yIChhdXRvJiBhcnJpdmluZ0N1ZSA6IGFycml2aW5nQ3VlcykgewogICAgICAgICAg
ICAgICAgICAgICBpZiAoIWFycml2aW5nQ3VlLT5kb2VzRXh0ZW5kQ3VlRGF0YSgqY3VlRGF0YSkp
Ci0gICAgICAgICAgICAgICAgICAgICAgICBub25FeHRlbnNpb25DdWVzLmFwcGVuZChhcnJpdmlu
Z0N1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBub25FeHRlbnNpb25DdWVzLmFwcGVuZChX
VEZNb3ZlKGFycml2aW5nQ3VlKSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICAgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnBy
b2Nlc3NDdWUoJXApIC0gZm91bmQgYW4gZXh0ZW5zaW9uIGN1ZSAoXCIlc1wiKSBmb3IgdGltZSA9
ICUuMmYsIGVuZCA9ICUuMmYsIHBvc2l0aW9uID0gICUuMmYsIGxpbmUgPSAgJS4yZiIsIHRoaXMs
IGFycml2aW5nQ3VlLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSwgYXJyaXZpbmdDdWUtPnN0YXJ0
VGltZSgpLnRvRG91YmxlKCksIGFycml2aW5nQ3VlLT5lbmRUaW1lKCkudG9Eb3VibGUoKSwgYXJy
aXZpbmdDdWUtPnBvc2l0aW9uKCksIGFycml2aW5nQ3VlLT5saW5lKCkpOwogICAgICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgICAgIGJvb2wgY3VycmVudEN1ZUlzRXh0ZW5kZWQgPSAoYXJy
aXZpbmdDdWVzLnNpemUoKSAhPSBub25FeHRlbnNpb25DdWVzLnNpemUoKSk7CiAKLSAgICAgICAg
ICAgICAgICBhcnJpdmluZ0N1ZXMgPSBub25FeHRlbnNpb25DdWVzOworICAgICAgICAgICAgICAg
IGFycml2aW5nQ3VlcyA9IFdURk1vdmUobm9uRXh0ZW5zaW9uQ3Vlcyk7CiAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRDdWVJc0V4dGVuZGVkKQogICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKQEAgLTM4MCw3ICszNzQsNyBAQCB2b2lkIEluYmFuZFRleHRU
cmFja1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRyaWJ1dGVkU3RyaW5ncyhDRkFycmF5UmVmIGF0dHJp
YnV0ZWRTdAogICAgICAgICAgICAgICAgICAgICBjdWVEYXRhLT5zZXRTdGF0dXMoR2VuZXJpY0N1
ZURhdGE6OkNvbXBsZXRlKTsKIAogICAgICAgICAgICAgICAgICAgICBMT0coTWVkaWEsICJJbmJh
bmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlKCVwKSAtIHVwZGF0aW5nIGN1ZSBcIiVz
XCI6IHN0YXJ0PSUuMmYsIGVuZD0lLjJmIiwgdGhpcywgY3VlRGF0YS0+Y29udGVudCgpLnV0Zjgo
KS5kYXRhKCksIGN1ZURhdGEtPnN0YXJ0VGltZSgpLnRvRG91YmxlKCksIG1fY3VycmVudEN1ZUVu
ZFRpbWUudG9Eb3VibGUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGNsaWVudCgpLT51cGRhdGVH
ZW5lcmljQ3VlKHRoaXMsIGN1ZURhdGEuZ2V0KCkpOworICAgICAgICAgICAgICAgICAgICBjbGll
bnQoKS0+dXBkYXRlR2VuZXJpY0N1ZSgqY3VlRGF0YSk7CiAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBhc3N1bWUgdGhhdCB0aGUgaW1w
bGljaXQgZHVyYXRpb24gaXMgaW52YWxpZCBmb3IgY3VlcyBkZWxpdmVyZWQgZHVyaW5nIGEgc2Vl
ayBiZWNhdXNlIHRoZSBBVkYgZGVjb2RlIHBpcGVsaW5lIG1heSBub3QKICAgICAgICAgICAgICAg
ICAgICAgLy8gc2VlIGV2ZXJ5IGN1ZSwgc28gRE8gTk9UIHVwZGF0ZSBjdWUgZHVyYXRpb24gd2hp
bGUgc2Vla2luZy4KQEAgLTM5OSwxMiArMzkzLDExIEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUFWRjo6cHJvY2Vzc0F0dHJpYnV0ZWRTdHJpbmdzKENGQXJyYXlSZWYgYXR0cmlidXRlZFN0
CiAgICAgbV9jdXJyZW50Q3VlU3RhcnRUaW1lID0gdGltZTsKIAogICAgIGZvciAoYXV0byYgY3Vl
RGF0YSA6IGFycml2aW5nQ3VlcykgewotCi0gICAgICAgIG1fY3Vlcy5hcHBlbmQoY3VlRGF0YSk7
CisgICAgICAgIG1fY3Vlcy5hcHBlbmQoY3VlRGF0YS5wdHIoKSk7CiAgICAgICAgIAogICAgICAg
ICBMT0coTWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlKCVwKSAt
IGFkZGluZyBjdWUgXCIlc1wiIGZvciB0aW1lID0gJS4yZiwgZW5kID0gJS4yZiwgcG9zaXRpb24g
PSAgJS4yZiwgbGluZSA9ICAlLjJmIiwgdGhpcywgY3VlRGF0YS0+Y29udGVudCgpLnV0ZjgoKS5k
YXRhKCksIGN1ZURhdGEtPnN0YXJ0VGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEtPmVuZFRpbWUo
KS50b0RvdWJsZSgpLCBjdWVEYXRhLT5wb3NpdGlvbigpLCBjdWVEYXRhLT5saW5lKCkpOwogCi0g
ICAgICAgIGNsaWVudCgpLT5hZGRHZW5lcmljQ3VlKHRoaXMsIFdURk1vdmUoY3VlRGF0YSkpOwor
ICAgICAgICBjbGllbnQoKS0+YWRkR2VuZXJpY0N1ZShXVEZNb3ZlKGN1ZURhdGEpKTsKICAgICB9
CiAKICAgICBtX3BlbmRpbmdDdWVTdGF0dXMgPSBzZWVraW5nKCkgPyBEZWxpdmVyZWREdXJpbmdT
ZWVrIDogVmFsaWQ7CkBAIC00NTEsOSArNDQ0LDkgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlQVZGOjpyZXNldEN1ZVZhbHVlcygpCiAgICAgaWYgKG1fY3VycmVudEN1ZUVuZFRpbWUgJiYg
bV9jdWVzLnNpemUoKSkKICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUFWRjo6cmVzZXRDdWVWYWx1ZXMgZmx1c2hpbmcgZGF0YSBmb3IgY3Vlczogc3RhcnQ9JXNcbiIs
IHRvU3RyaW5nKG1fY3VycmVudEN1ZVN0YXJ0VGltZSkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICBp
ZiAoY2xpZW50KCkpIHsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2N1ZXMuc2l6
ZSgpOyBpKyspCi0gICAgICAgICAgICBjbGllbnQoKS0+cmVtb3ZlR2VuZXJpY0N1ZSh0aGlzLCBt
X2N1ZXNbaV0uZ2V0KCkpOworICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGllbnQoKSkg
eworICAgICAgICBmb3IgKGF1dG8mIGN1ZSA6IG1fY3VlcykKKyAgICAgICAgICAgIGNsaWVudC0+
cmVtb3ZlR2VuZXJpY0N1ZSgqY3VlKTsKICAgICB9CiAKICAgICBtX2N1ZXMucmVzaXplKDApOwpA
QCAtNTA5LDcgKzUwMiw3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vz
c05hdGl2ZVNhbXBsZXMoQ0ZBcnJheVJlZiBuYXRpdmVTYW1wbGVzLCBjCiAgICAgICAgICAgICBM
T0coTWVkaWEsICIgICAgaWQgPSBcIiVzXCIsIHNldHRpbmdzID0gXCIlc1wiLCBjdWUgdGV4dCA9
IFwiJXNcIiIsIGN1ZURhdGEuaWQoKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLnNldHRpbmdzKCku
dXRmOCgpLmRhdGEoKSwgY3VlRGF0YS5jdWVUZXh0KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAg
ICAgICBMT0coTWVkaWEsICIgICAgc291cmNlSUQgPSBcIiVzXCIsIG9yaWdpbmFsU3RhcnRUaW1l
ID0gXCIlc1wiIiwgY3VlRGF0YS5zb3VyY2VJRCgpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEub3Jp
Z2luYWxTdGFydFRpbWUoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICAgICAgY2xpZW50KCkt
PnBhcnNlV2ViVlRUQ3VlRGF0YSh0aGlzLCBjdWVEYXRhKTsKKyAgICAgICAgICAgIGNsaWVudCgp
LT5wYXJzZVdlYlZUVEN1ZURhdGEoY3VlRGF0YSk7CiAgICAgICAgIH0KIAogICAgICAgICBkbyB7
CkBAIC01NDIsNyArNTM1LDcgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9j
ZXNzTmF0aXZlU2FtcGxlcyhDRkFycmF5UmVmIG5hdGl2ZVNhbXBsZXMsIGMKICAgICAgICAgICAg
IGhlYWRlci5hcHBlbmQoIlxuXG4iKTsKIAogICAgICAgICAgICAgTE9HKE1lZGlhLCAiICAgIHZ0
dCBoZWFkZXIgPSBcbiVzIiwgaGVhZGVyLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAg
ICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRGaWxlSGVhZGVyKHRoaXMsIGhlYWRlci50b1N0
cmluZygpKTsKKyAgICAgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEZpbGVIZWFkZXIoaGVh
ZGVyLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgbV9oYXZlUmVwb3J0ZWRWVFRIZWFkZXIgPSB0
cnVlOwogICAgICAgICB9IHdoaWxlICgwKTsKIApAQCAtNTU1LDcgKzU0OCw3IEBAIGJvb2wgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cmVhZE5hdGl2ZVNhbXBsZUJ1ZmZlcihDRkFycmF5UmVm
IG5hdGl2ZVNhbXBsZXMsCiAjaWYgT1MoV0lORE9XUykgJiYgSEFWRShBVkNGUExBWUVSSVRFTV9D
QUxMQkFDS19WRVJTSU9OXzIpCiAgICAgcmV0dXJuIGZhbHNlOwogI2Vsc2UKLSAgICBDTVNhbXBs
ZUJ1ZmZlclJlZiBjb25zdCBzYW1wbGVCdWZmZXIgPSByZWludGVycHJldF9jYXN0PENNU2FtcGxl
QnVmZmVyUmVmPihjb25zdF9jYXN0PHZvaWQqPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KG5hdGl2
ZVNhbXBsZXMsIGluZGV4KSkpOworICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9
IHJlaW50ZXJwcmV0X2Nhc3Q8Q01TYW1wbGVCdWZmZXJSZWY+KGNvbnN0X2Nhc3Q8dm9pZCo+KENG
QXJyYXlHZXRWYWx1ZUF0SW5kZXgobmF0aXZlU2FtcGxlcywgaW5kZXgpKSk7CiAgICAgaWYgKCFz
YW1wbGVCdWZmZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1ZpZGVvVHJhY2tQcml2YXRl
QVZGLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vVmlk
ZW9UcmFja1ByaXZhdGVBVkYuaAppbmRleCA4NThmNDFjNjE4ZWFmNzk0ZTNlNjUxZDA0MTZhMDUw
ZWRmMThhNWFiLi5hM2YwZjRlY2EwNTczZGQ4MmZiOTQ3ZjRiOWY5ZjA3MWEwZjNjMmZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vVmlk
ZW9UcmFja1ByaXZhdGVBVkYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vVmlkZW9UcmFja1ByaXZhdGVBVkYuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBWaWRlb1RyYWNr
UHJpdmF0ZUFWRl9oCi0jZGVmaW5lIFZpZGVvVHJhY2tQcml2YXRlQVZGX2gKKyNwcmFnbWEgb25j
ZQogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCkBAIC0zNSw3ICszNCw2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlQVZGIDogcHVibGljIFZpZGVvVHJh
Y2tQcml2YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShWaWRlb1RyYWNrUHJpdmF0ZUFW
RikKIHB1YmxpYzoKLQogICAgIGludCB0cmFja0luZGV4KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9pbmRleDsgfQogICAgIEtpbmQga2luZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
a2luZDsgfQogICAgIEF0b21pY1N0cmluZyBpZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
aWQ7IH0KQEAgLTQ0LDI2ICs0MiwyMCBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICB2b2lk
IHNldEtpbmQoS2luZCBraW5kKSB7IG1fa2luZCA9IGtpbmQ7IH0KLSAgICB2b2lkIHNldElkKEF0
b21pY1N0cmluZyBuZXdJZCkgeyBtX2lkID0gbmV3SWQ7IH0KLSAgICB2b2lkIHNldExhYmVsKEF0
b21pY1N0cmluZyBsYWJlbCkgeyBtX2xhYmVsID0gbGFiZWw7IH0KLSAgICB2b2lkIHNldExhbmd1
YWdlKEF0b21pY1N0cmluZyBsYW5ndWFnZSkgeyBtX2xhbmd1YWdlID0gbGFuZ3VhZ2U7IH0KKyAg
ICB2b2lkIHNldElkKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3SWQpIHsgbV9pZCA9IG5ld0lkOyB9
CisgICAgdm9pZCBzZXRMYWJlbChjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKSB7IG1fbGFiZWwg
PSBsYWJlbDsgfQorICAgIHZvaWQgc2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5n
dWFnZSkgeyBtX2xhbmd1YWdlID0gbGFuZ3VhZ2U7IH0KICAgICB2b2lkIHNldFRyYWNrSW5kZXgo
aW50IGluZGV4KSB7IG1faW5kZXggPSBpbmRleDsgfQogCi0gICAgS2luZCBtX2tpbmQ7CisgICAg
S2luZCBtX2tpbmQgeyBOb25lIH07CiAgICAgQXRvbWljU3RyaW5nIG1faWQ7CiAgICAgQXRvbWlj
U3RyaW5nIG1fbGFiZWw7CiAgICAgQXRvbWljU3RyaW5nIG1fbGFuZ3VhZ2U7Ci0gICAgaW50IG1f
aW5kZXg7CisgICAgaW50IG1faW5kZXggeyAwIH07CiAKLSAgICBWaWRlb1RyYWNrUHJpdmF0ZUFW
RigpCi0gICAgICAgIDogbV9raW5kKE5vbmUpCi0gICAgICAgICwgbV9pbmRleCgwKQotICAgIHsK
LSAgICB9CisgICAgVmlkZW9UcmFja1ByaXZhdGVBVkYoKSA9IGRlZmF1bHQ7CiB9OwogCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoVklERU9fVFJBQ0spCi0KLSNlbmRpZiAvLyBWaWRlb1RyYWNrUHJp
dmF0ZUFWRl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5jcHAKaW5kZXggZmU5MzQ0YjYzMWYwMzVm
OWVkZTczNTc0NDA3ZjM0MzlhYTI0ZTUwMi4uZWMwZDBlZGRiZjczYmVlZGE2NzE3YjdhNTE4Yzcz
MjEyNjA5NWFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiw4ICszNiw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpB
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyhBVkFzc2V0VHJhY2sqIHRyYWNrLCBT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyogcGFyZW50KQogICAgIDogbV9pbXBsKHN0ZDo6bWFr
ZV91bmlxdWU8QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbD4odHJhY2spKQogICAgICwgbV9wYXJl
bnQocGFyZW50KQotICAgICwgbV90cmFja0lEKC0xKQotICAgICwgbV9lbmFibGVkKGZhbHNlKQog
ewogICAgIHJlc2V0UHJvcGVydGllc0Zyb21UcmFjaygpOwogfQpAQCAtNjMsMTcgKzYxLDEyIEBA
IEFWQXNzZXRUcmFjayogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmFzc2V0
VHJhY2soKQogICAgIHJldHVybiBtX2ltcGwtPmFzc2V0VHJhY2soKTsKIH0KIAotYm9vbCBBdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6ZW5hYmxlZCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fZW5hYmxlZDsKLX0KLQogdm9pZCBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6c2V0RW5hYmxlZChib29sIGVuYWJsZWQpCiB7Ci0gICAgaWYgKG1fZW5hYmxlZCA9
PSBlbmFibGVkKQorICAgIGlmIChlbmFibGVkID09IHRoaXMtPmVuYWJsZWQoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgbV9lbmFibGVkID0gZW5hYmxlZDsKKyAgICBBdWRpb1RyYWNrUHJpdmF0
ZUFWRjo6c2V0RW5hYmxlZChlbmFibGVkKTsKICAgICBtX3BhcmVudC0+dHJhY2tEaWRDaGFuZ2VF
bmFibGVkKHRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCBiYmU4OWNkZGEx
M2IwODJkY2Y4M2YwMjVmY2M4NWM0MjhmZGM5MTQ3Li4yMTI4NzIxNGEzYmY1Y2UxNDA4MDQ1NTBk
OWFlZWMzOGEzMDYxMWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMTUgKzIzLDEzIEBA
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0jaWZuZGVmIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDX2gKLSNkZWZpbmUgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akNfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZUFWRi5oIgog
CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiBPQkpD
X0NMQVNTIEFWQXNzZXRUcmFjazsKLU9CSkNfQ0xBU1MgQVZQbGF5ZXJJdGVtVHJhY2s7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsMTMgKzM5LDEyIEBAIGNsYXNzIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOwogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMgZmluYWwgOiBwdWJsaWMgQXVkaW9UcmFja1ByaXZhdGVBVkYgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKQogcHVibGljOgot
ICAgIHN0YXRpYyBSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM+IGNy
ZWF0ZShBVkFzc2V0VHJhY2sqIHRyYWNrLCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyogcGFy
ZW50KQorICAgIHN0YXRpYyBSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM+IGNyZWF0ZShBVkFzc2V0VHJhY2sgKnRyYWNrLCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
QyogcGFyZW50KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyh0cmFjaywgcGFyZW50KSk7CiAgICAgfQogCi0gICAg
Ym9vbCBlbmFibGVkKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRFbmFibGVkKGJvb2wp
IG92ZXJyaWRlOworICAgIHZvaWQgc2V0RW5hYmxlZChib29sKSBmaW5hbDsKIAogICAgIHZvaWQg
c2V0QXNzZXRUcmFjayhBVkFzc2V0VHJhY2sqKTsKICAgICBBVkFzc2V0VHJhY2sqIGFzc2V0VHJh
Y2soKTsKQEAgLTYyLDExICs1OSw4IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFW
VHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+IG1faW1wbDsKICAgICBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQyogbV9wYXJlbnQ7CiAgICAgaW50IG1fdHJhY2tJRDsKLSAgICBib29sIG1fZW5hYmxl
ZDsKIH07CiAKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEVOQUJMRShW
SURFT19UUkFDSykKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggZDRj
NDYxZDg4YmY1ZjcyY2ZhZDk5YzllYzhkZGZlNTA2NDE0ZjBjMS4uZjY3YTg3ZDZjZGRmNWJiMmE2
MTdlMjRiZGExMGZiNjA4ZjhlOGRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJBVkZvdW5kYXRpb25TUEkuaCIKICNpbXBvcnQgIkF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCIKICNpbXBvcnQgIkNsb2NrLmgiCisjaW1wb3J0
ICJDb3JlTWVkaWFTb2Z0TGluay5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW1w
b3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKQEAgLTQ5LDgg
KzUwLDYgQEAKIAogI3ByYWdtYSBtYXJrIC0gU29mdCBMaW5raW5nCiAKLSNpbXBvcnQgIkNvcmVN
ZWRpYVNvZnRMaW5rLmgiCi0KIFNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoQVZGb3VuZGF0
aW9uKQogCiBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllcikKQEAgLTM4MCwxMCArMzc5LDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF5KCkKICNlbmRpZgogCiAgICAgZm9yIChjb25z
dCBhdXRvJiB0cmFjayA6IG1fYXVkaW9UcmFja01hcC52YWx1ZXMoKSkgewotICAgICAgICBpZiAo
IXRyYWNrLT5lbmFibGVkKCkgfHwgIXRyYWNrLT5zdHJlYW1UcmFjaygpLT5wcmV2aWV3KCkpCisg
ICAgICAgIGlmICghdHJhY2stPmVuYWJsZWQoKSB8fCAhdHJhY2stPnN0cmVhbVRyYWNrKCkucHJl
dmlldygpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgdHJhY2stPnN0cmVhbVRy
YWNrKCktPnByZXZpZXcoKS0+cGxheSgpOworICAgICAgICB0cmFjay0+c3RyZWFtVHJhY2soKS5w
cmV2aWV3KCktPnBsYXkoKTsKICAgICB9CiAKICAgICBtX2hhdmVFdmVyUGxheWVkID0gdHJ1ZTsK
QEAgLTQxMSwxMCArNDEwLDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjpwYXVzZSgpCiAjZW5kaWYKIAogICAgIGZvciAoY29uc3QgYXV0byYgdHJhY2sgOiBt
X2F1ZGlvVHJhY2tNYXAudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgp
IHx8ICF0cmFjay0+c3RyZWFtVHJhY2soKS0+cHJldmlldygpKQorICAgICAgICBpZiAoIXRyYWNr
LT5lbmFibGVkKCkgfHwgIXRyYWNrLT5zdHJlYW1UcmFjaygpLnByZXZpZXcoKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLT5wcmV2aWV3KCkt
PnBhdXNlKCk7CisgICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLnByZXZpZXcoKS0+cGF1c2Uo
KTsKICAgICB9CiAKICAgICB1cGRhdGVEaXNwbGF5TW9kZSgpOwpAQCAtNDM1LDEwICs0MzQsMTAg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmludGVybmFsU2V0
Vm9sdW1lKGZsb2F0IHZvbHVtZSwgYm9vbAogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKGNv
bnN0IGF1dG8mIHRyYWNrIDogbV9hdWRpb1RyYWNrTWFwLnZhbHVlcygpKSB7Ci0gICAgICAgIGlm
ICghdHJhY2stPmVuYWJsZWQoKSB8fCAhdHJhY2stPnN0cmVhbVRyYWNrKCktPnByZXZpZXcoKSkK
KyAgICAgICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgpIHx8ICF0cmFjay0+c3RyZWFtVHJhY2soKS5w
cmV2aWV3KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICB0cmFjay0+c3RyZWFt
VHJhY2soKS0+cHJldmlldygpLT5zZXRWb2x1bWUodm9sdW1lKTsKKyAgICAgICAgdHJhY2stPnN0
cmVhbVRyYWNrKCkucHJldmlldygpLT5zZXRWb2x1bWUodm9sdW1lKTsKICAgICB9CiB9CiAKQEAg
LTYxNyw2ICs2MTYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6c2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUAogfQogCiAjaWYgUExBVEZP
Uk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQ
bGF0Zm9ybUxheWVyICp2aWRlb0Z1bGxzY3JlZW5MYXllciwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2Vy
LT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcih2aWRlb0Z1bGxzY3JlZW5MYXllciwgY29tcGxldGlv
bkhhbmRsZXIpOwpAQCAtNjI2LDYgKzYyNiw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QgZnJhCiB7
CiAgICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllck1hbmFnZXItPnNldFZpZGVvRnVsbHNjcmVlbkZy
YW1lKGZyYW1lKTsKIH0KKwogI2VuZGlmCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBSZWZULCB0eXBl
bmFtZSBQYXNzUmVmVD4KQEAgLTY0NCwxMiArNjQ1LDEyIEBAIHZvaWQgdXBkYXRlVHJhY2tzT2ZU
eXBlKEhhc2hNYXA8U3RyaW5nLCBSZWZUPiYgdHJhY2tNYXAsIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5CiAgICAgfQogCiAgICAgZm9yIChjb25zdCBhdXRvJiB0cmFjayA6IHRyYWNrTWFwLnZhbHVl
cygpKSB7Ci0gICAgICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBzdHJlYW1UcmFjayA9IHRy
YWNrLT5zdHJlYW1UcmFjaygpOwotICAgICAgICBpZiAoY3VycmVudFRyYWNrcy5jb250YWlucyhz
dHJlYW1UcmFjaykpCisgICAgICAgIGF1dG8mIHN0cmVhbVRyYWNrID0gdHJhY2stPnN0cmVhbVRy
YWNrKCk7CisgICAgICAgIGlmIChjdXJyZW50VHJhY2tzLmNvbnRhaW5zKCZzdHJlYW1UcmFjaykp
CiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICByZW1vdmVkVHJhY2tzLmFwcGVuZCh0
cmFjayk7Ci0gICAgICAgIHRyYWNrTWFwLnJlbW92ZShzdHJlYW1UcmFjay0+aWQoKSk7CisgICAg
ICAgIHRyYWNrTWFwLnJlbW92ZShzdHJlYW1UcmFjay5pZCgpKTsKICAgICB9CiAKICAgICBmb3Ig
KGF1dG8mIHRyYWNrIDogYWRkZWRQcml2YXRlVHJhY2tzKSB7CkBAIC02NjQsMTIgKzY2NSwxMiBA
QCB2b2lkIHVwZGF0ZVRyYWNrc09mVHlwZShIYXNoTWFwPFN0cmluZywgUmVmVD4mIHRyYWNrTWFw
LCBSZWFsdGltZU1lZGlhU291cmNlOjpUeQogCiAgICAgZm9yIChhdXRvJiB0cmFjayA6IHJlbW92
ZWRUcmFja3MpIHsKICAgICAgICAgKHBsYXllci0+KnJlbW92ZWRGdW5jdGlvbikoKnRyYWNrKTsK
LSAgICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCktPnJlbW92ZU9ic2VydmVyKCp0cmFja09ic2Vy
dmVyKTsKKyAgICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCkucmVtb3ZlT2JzZXJ2ZXIoKnRyYWNr
T2JzZXJ2ZXIpOwogICAgIH0KIAogICAgIGZvciAoYXV0byYgdHJhY2sgOiBhZGRlZFRyYWNrcykg
ewogICAgICAgICAocGxheWVyLT4qYWRkZWRGdW5jdGlvbikoKnRyYWNrKTsKLSAgICAgICAgdHJh
Y2stPnN0cmVhbVRyYWNrKCktPmFkZE9ic2VydmVyKCp0cmFja09ic2VydmVyKTsKKyAgICAgICAg
dHJhY2stPnN0cmVhbVRyYWNrKCkuYWRkT2JzZXJ2ZXIoKnRyYWNrT2JzZXJ2ZXIpOwogICAgIH0K
IH0KIApAQCAtNjgwLDE0ICs2ODEsMTQgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnVwZGF0ZVRyYWNrcygpCiAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKFJlZlB0
cjxBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtPiwgaW50KT4gZW5hYmxlQXVkaW9UcmFjayA9
IFt0aGlzXShhdXRvIHRyYWNrLCBpbnQgaW5kZXgpCiAgICAgewogICAgICAgICB0cmFjay0+c2V0
VHJhY2tJbmRleChpbmRleCk7Ci0gICAgICAgIHRyYWNrLT5zZXRFbmFibGVkKHRyYWNrLT5zdHJl
YW1UcmFjaygpLT5lbmFibGVkKCkgJiYgIXRyYWNrLT5zdHJlYW1UcmFjaygpLT5tdXRlZCgpKTsK
KyAgICAgICAgdHJhY2stPnNldEVuYWJsZWQodHJhY2stPnN0cmVhbVRyYWNrKCkuZW5hYmxlZCgp
ICYmICF0cmFjay0+c3RyZWFtVHJhY2soKS5tdXRlZCgpKTsKICAgICB9OwogICAgIHVwZGF0ZVRy
YWNrc09mVHlwZShtX2F1ZGlvVHJhY2tNYXAsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvLCBj
dXJyZW50VHJhY2tzLCAmQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbTo6Y3JlYXRlLCBtX3Bs
YXllciwgJk1lZGlhUGxheWVyOjpyZW1vdmVBdWRpb1RyYWNrLCAmTWVkaWFQbGF5ZXI6OmFkZEF1
ZGlvVHJhY2ssIGVuYWJsZUF1ZGlvVHJhY2ssIChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2Jz
ZXJ2ZXIqKSB0aGlzKTsKIAogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWZQdHI8VmlkZW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbT4sIGludCk+IGVuYWJsZVZpZGVvVHJhY2sgPSBbdGhpc10oYXV0
byB0cmFjaywgaW50IGluZGV4KQogICAgIHsKICAgICAgICAgdHJhY2stPnNldFRyYWNrSW5kZXgo
aW5kZXgpOwotICAgICAgICBib29sIHNlbGVjdGVkID0gdHJhY2stPnN0cmVhbVRyYWNrKCkgPT0g
bV9tZWRpYVN0cmVhbVByaXZhdGUtPmFjdGl2ZVZpZGVvVHJhY2soKTsKKyAgICAgICAgYm9vbCBz
ZWxlY3RlZCA9ICZ0cmFjay0+c3RyZWFtVHJhY2soKSA9PSBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+
YWN0aXZlVmlkZW9UcmFjaygpOwogICAgICAgICB0cmFjay0+c2V0U2VsZWN0ZWQoc2VsZWN0ZWQp
OwogCiAgICAgICAgIGlmIChzZWxlY3RlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCmluZGV4IDFmNzU4MmUxOGJiNjhjY2I4YzA2
NTc2ZjQwYzFjMTk1MzdmYTdlN2EuLjNlNWJjODFjYTYzOThiMmE0OWJhODc5MWVhM2UyZGUxZTNm
ZDI3MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMt
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAK
LSNpZm5kZWYgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakNfaAotI2RlZmluZSBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQ19oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShNRURJQV9TT1VS
Q0UpICYmIFVTRShBVkZPVU5EQVRJT04pCiAKQEAgLTExNCwxOCArMTEzLDE4IEBAIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2
YXRlQVZGT2JqQyopOwogCiAgICAgLy8gU291cmNlQnVmZmVyUHJpdmF0ZSBvdmVycmlkZXMKLSAg
ICB2b2lkIHNldENsaWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Kikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBhcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3Ro
KSBvdmVycmlkZTsKLSAgICB2b2lkIGFib3J0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXNldFBh
cnNlclN0YXRlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKCkg
b3ZlcnJpZGU7Ci0gICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0
IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0
ZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBmbHVzaChBdG9taWNTdHJpbmcgdHJhY2tJRCkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+LCBBdG9t
aWNTdHJpbmcgdHJhY2tJRCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBs
ZXMoQXRvbWljU3RyaW5nIHRyYWNrSUQpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0QWN0aXZlKGJv
b2wpIG92ZXJyaWRlOwotICAgIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBs
ZXMoQXRvbWljU3RyaW5nIHRyYWNrSUQpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Q2xpZW50KFNv
dXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqKSBmaW5hbDsKKyAgICB2b2lkIGFwcGVuZChjb25zdCB1
bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIGZpbmFsOworICAgIHZvaWQgYWJv
cnQoKSBmaW5hbDsKKyAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBmaW5hbDsKKyAgICB2b2lk
IHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKSBmaW5hbDsKKyAgICBNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBmaW5hbDsKKyAgICB2b2lkIGZsdXNoKGNvbnN0IEF0b21p
Y1N0cmluZyYgdHJhY2tJRCkgZmluYWw7CisgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRp
YVNhbXBsZT4mJiwgY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKSBmaW5hbDsKKyAgICBib29s
IGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpIGZpbmFs
OworICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIGZpbmFsOworICAgIHZvaWQgbm90aWZ5Q2xpZW50
V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKSBmaW5h
bDsKIAogICAgIHZvaWQgZGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhpbnQgdHJhY2tJRCk7
CiAgICAgdm9pZCBhcHBlbmRDb21wbGV0ZWQoKTsKQEAgLTE1NSwyMSArMTU0LDE5IEBAIHByaXZh
dGU6CiAgICAgT1NPYmplY3RQdHI8ZGlzcGF0Y2hfZ3JvdXBfdD4gbV9pc0FwcGVuZGluZ0dyb3Vw
OwogCiAgICAgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQyogbV9tZWRpYVNvdXJjZTsKLSAgICBT
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KiBtX2NsaWVudDsKKyAgICBTb3VyY2VCdWZmZXJQcml2
YXRlQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZ
UFRFRF9NRURJQSkKICAgICBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKiBtX3Nlc3Npb24g
eyBudWxscHRyIH07CiAjZW5kaWYKIAogICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRTaXplPiBtX2Nh
Y2hlZFNpemU7CiAgICAgRmxvYXRTaXplIG1fY3VycmVudFNpemU7Ci0gICAgYm9vbCBtX3BhcnNp
bmdTdWNjZWVkZWQ7CisgICAgYm9vbCBtX3BhcnNpbmdTdWNjZWVkZWQgeyB0cnVlIH07CiAgICAg
Ym9vbCBtX3BhcnNlclN0YXRlV2FzUmVzZXQgeyBmYWxzZSB9OwotICAgIGludCBtX2VuYWJsZWRW
aWRlb1RyYWNrSUQ7Ci0gICAgaW50IG1fcHJvdGVjdGVkVHJhY2tJRDsKKyAgICBpbnQgbV9lbmFi
bGVkVmlkZW9UcmFja0lEIHsgLTEgfTsKKyAgICBpbnQgbV9wcm90ZWN0ZWRUcmFja0lEIHsgLTEg
fTsKIH07CiAKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShBVkZP
VU5EQVRJT04pCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCAzYjBkNjhjYzJiZjJkMjJiNzhiMzkyYmYz
ODI4ZmU2MTM4ZTliMDE4Li5lN2IxYjIwNzRkYTMzMjMyMWZmODA4ZGY2ODMzMzIwNWFjZTYyNDI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTE1MSwxMCArMTUxLDcgQEAgLSAodm9pZClpbnZhbGlkYXRlCiAKIC0g
KHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBh
cnNlciBkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0OihBVkFzc2V0ICopYXNzZXQKIHsKLSNpZiBB
U1NFUlRfRElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5k
aWYKLSAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRf
VU5VU0VEKHN0cmVhbURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAK
ICAgICBSZXRhaW5QdHI8QVZBc3NldCo+IHByb3RlY3RlZEFzc2V0ID0gYXNzZXQ7CiAgICAgY2Fs
bE9uTWFpblRocmVhZChbcGFyZW50ID0gX3BhcmVudCwgcHJvdGVjdGVkQXNzZXQgPSBXVEZNb3Zl
KHByb3RlY3RlZEFzc2V0KV0gewpAQCAtMTY2LDEwICsxNjMsNyBAQCAtICh2b2lkKXN0cmVhbURh
dGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkUGFyc2VT
dHJlYW1EYQogLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilz
dHJlYW1EYXRhUGFyc2VyIGRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQ6KEFWQXNzZXQgKilhc3Nl
dCB3aXRoRGlzY29udGludWl0eTooQk9PTClkaXNjb250aW51aXR5CiB7CiAgICAgVU5VU0VEX1BB
UkFNKGRpc2NvbnRpbnVpdHkpOwotI2lmIEFTU0VSVF9ESVNBQkxFRAotICAgIFVOVVNFRF9QQVJB
TShzdHJlYW1EYXRhUGFyc2VyKTsKLSNlbmRpZgotICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2Vy
ID09IF9wYXJzZXIpOworICAgIEFTU0VSVF9VTlVTRUQoc3RyZWFtRGF0YVBhcnNlciwgc3RyZWFt
RGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKIAogICAgIFJldGFpblB0cjxBVkFzc2V0Kj4gcHJvdGVj
dGVkQXNzZXQgPSBhc3NldDsKICAgICBjYWxsT25NYWluVGhyZWFkKFtwYXJlbnQgPSBfcGFyZW50
LCBwcm90ZWN0ZWRBc3NldCA9IFdURk1vdmUocHJvdGVjdGVkQXNzZXQpXSB7CkBAIC0xODAsMTAg
KzE3NCw3IEBAIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICop
c3RyZWFtRGF0YVBhcnNlciBkaWRQYXJzZVN0cmVhbURhCiAKIC0gKHZvaWQpc3RyZWFtRGF0YVBh
cnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRGYWlsVG9QYXJz
ZVN0cmVhbURhdGFXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgogewotI2lmIEFTU0VSVF9ESVNB
QkxFRAotICAgIFVOVVNFRF9QQVJBTShzdHJlYW1EYXRhUGFyc2VyKTsKLSNlbmRpZgotICAgIEFT
U0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOworICAgIEFTU0VSVF9VTlVTRUQoc3Ry
ZWFtRGF0YVBhcnNlciwgc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKIAogICAgIFJldGFp
blB0cjxOU0Vycm9yPiBwcm90ZWN0ZWRFcnJvciA9IGVycm9yOwogICAgIGNhbGxPbk1haW5UaHJl
YWQoW3BhcmVudCA9IF9wYXJlbnQsIHByb3RlY3RlZEVycm9yID0gV1RGTW92ZShwcm90ZWN0ZWRF
cnJvcildIHsKQEAgLTE5NCwxMCArMTg1LDcgQEAgLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihB
VlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZEZhaWxUb1BhcnNlU3QKIAog
LSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRh
UGFyc2VyIGRpZFByb3ZpZGVNZWRpYURhdGE6KENNU2FtcGxlQnVmZmVyUmVmKXNhbXBsZSBmb3JU
cmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQgbWVkaWFUeXBlOihOU1N0cmluZyAq
KW5zTWVkaWFUeXBlIGZsYWdzOihBVlN0cmVhbURhdGFQYXJzZXJPdXRwdXRNZWRpYURhdGFGbGFn
cylmbGFncwogewotI2lmIEFTU0VSVF9ESVNBQkxFRAotICAgIFVOVVNFRF9QQVJBTShzdHJlYW1E
YXRhUGFyc2VyKTsKLSNlbmRpZgotICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJz
ZXIpOworICAgIEFTU0VSVF9VTlVTRUQoc3RyZWFtRGF0YVBhcnNlciwgc3RyZWFtRGF0YVBhcnNl
ciA9PSBfcGFyc2VyKTsKIAogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gcHJvdGVj
dGVkU2FtcGxlID0gc2FtcGxlOwogICAgIFN0cmluZyBtZWRpYVR5cGUgPSBuc01lZGlhVHlwZTsK
QEAgLTIwOSwxMCArMTk3LDcgQEAgLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURh
dGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFByb3ZpZGVNZWRpYUQKIAogLSAodm9pZClz
dHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRp
ZFJlYWNoRW5kT2ZUcmFja1dpdGhUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQg
bWVkaWFUeXBlOihOU1N0cmluZyAqKW5zTWVkaWFUeXBlCiB7Ci0jaWYgQVNTRVJUX0RJU0FCTEVE
Ci0gICAgVU5VU0VEX1BBUkFNKHN0cmVhbURhdGFQYXJzZXIpOwotI2VuZGlmCi0gICAgQVNTRVJU
KHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CisgICAgQVNTRVJUX1VOVVNFRChzdHJlYW1E
YXRhUGFyc2VyLCBzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwogCiAgICAgU3RyaW5nIG1l
ZGlhVHlwZSA9IG5zTWVkaWFUeXBlOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3BhcmVudCA9IF9w
YXJlbnQsIHRyYWNrSUQsIG1lZGlhVHlwZV0gewpAQCAtMjIzLDEwICsyMDgsNyBAQCAtICh2b2lk
KXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIg
ZGlkUmVhY2hFbmRPZlRyYQogCiAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXJXaWxsUHJvdmlkZUNv
bnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhOihBVlN0cmVhbURhdGFQYXJzZXIgKilz
dHJlYW1EYXRhUGFyc2VyIGZvclRyYWNrSUQ6KENNUGVyc2lzdGVudFRyYWNrSUQpdHJhY2tJRAog
ewotI2lmIEFTU0VSVF9ESVNBQkxFRAotICAgIFVOVVNFRF9QQVJBTShzdHJlYW1EYXRhUGFyc2Vy
KTsKLSNlbmRpZgotICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOworICAg
IEFTU0VSVF9VTlVTRUQoc3RyZWFtRGF0YVBhcnNlciwgc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFy
c2VyKTsKIAogICAgIC8vIFdlIG11c3QgY2FsbCBzeW5jaHJvbm91c2x5IHRvIHRoZSBtYWluIHRo
cmVhZCwgYXMgdGhlIEFWU3RyZWFtU2Vzc2lvbiBtdXN0IGJlIGFzc29jaWF0ZWQKICAgICAvLyB3
aXRoIHRoZSBzdHJlYW1EYXRhUGFyc2VyIGJlZm9yZSB0aGUgZGVsZWdhdGUgbWV0aG9kIHJldHVy
bnMuCkBAIC0yMzgsMTAgKzIyMCw3IEBAIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcldpbGxQcm92
aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6KEFWU3RyZWFtCiAKIC0gKHZv
aWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNl
ciBkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6KE5TRGF0YSAq
KWluaXREYXRhIGZvclRyYWNrSUQ6KENNUGVyc2lzdGVudFRyYWNrSUQpdHJhY2tJRAogewotI2lm
IEFTU0VSVF9ESVNBQkxFRAotICAgIFVOVVNFRF9QQVJBTShzdHJlYW1EYXRhUGFyc2VyKTsKLSNl
bmRpZgotICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOworICAgIEFTU0VS
VF9VTlVTRUQoc3RyZWFtRGF0YVBhcnNlciwgc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsK
IAogICAgIE9TT2JqZWN0UHRyPGRpc3BhdGNoX3NlbWFwaG9yZV90PiBoYXNTZXNzaW9uU2VtYXBo
b3JlID0gYWRvcHRPU09iamVjdChkaXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApKTsKICAgICBj
YWxsT25NYWluVGhyZWFkKFtwYXJlbnQgPSBfcGFyZW50LCBwcm90ZWN0ZWRJbml0RGF0YSA9IFJl
dGFpblB0cjxOU0RhdGE+KGluaXREYXRhKSwgdHJhY2tJRCwgaGFzU2Vzc2lvblNlbWFwaG9yZV0g
ewpAQCAtNDQ5LDEwICs0MjgsNiBAQCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQwogICAgICwgbV9l
cnJvckxpc3RlbmVyKGFkb3B0TlMoW1tXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVuZXIgYWxs
b2NdIGluaXRXaXRoUGFyZW50OnRoaXNdKSkKICAgICAsIG1faXNBcHBlbmRpbmdHcm91cChhZG9w
dE9TT2JqZWN0KGRpc3BhdGNoX2dyb3VwX2NyZWF0ZSgpKSkKICAgICAsIG1fbWVkaWFTb3VyY2Uo
cGFyZW50KQotICAgICwgbV9jbGllbnQoMCkKLSAgICAsIG1fcGFyc2luZ1N1Y2NlZWRlZCh0cnVl
KQotICAgICwgbV9lbmFibGVkVmlkZW9UcmFja0lEKC0xKQotICAgICwgbV9wcm90ZWN0ZWRUcmFj
a0lEKC0xKQogewogfQogCkBAIC01MTIsMTAgKzQ4NywxMCBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0KEFWQXNzZXQqIGFzc2V0KQog
ICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgp
OwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJp
dmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQodGhpcywgc2VnbWVudCk7CisgICAg
ICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9u
U2VnbWVudChzZWdtZW50KTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
ZGlkRmFpbFRvUGFyc2VTdHJlYW1EYXRhV2l0aEVycm9yKE5TRXJyb3IqIGVycm9yKQordm9pZCBT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkRmFpbFRvUGFyc2VTdHJlYW1EYXRhV2l0aEVy
cm9yKE5TRXJyb3IgKmVycm9yKQogewogI2lmIExPR19ESVNBQkxFRAogICAgIFVOVVNFRF9QQVJB
TShlcnJvcik7CkBAIC01MzEsMTAgKzUwNiw4IEBAIHN0cnVjdCBQcm9jZXNzQ29kZWRGcmFtZUlu
Zm8gewogICAgIGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlOwogfTsKIAotdm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJvdmlkZU1lZGlhRGF0YUZvclRyYWNrSUQoaW50IHRyYWNr
SUQsIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciwgY29uc3QgU3RyaW5nJiBtZWRpYVR5
cGUsIHVuc2lnbmVkIGZsYWdzKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlk
UHJvdmlkZU1lZGlhRGF0YUZvclRyYWNrSUQoaW50IHRyYWNrSUQsIENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZUJ1ZmZlciwgY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUsIHVuc2lnbmVkKQogewotICAg
IFVOVVNFRF9QQVJBTShmbGFncyk7Ci0KICAgICBwcm9jZXNzQ29kZWRGcmFtZSh0cmFja0lELCBz
YW1wbGVCdWZmZXIsIG1lZGlhVHlwZSk7CiB9CiAKQEAgLTU0OSwxNiArNTIyLDE0IEBAIGJvb2wg
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnByb2Nlc3NDb2RlZEZyYW1lKGludCB0cmFja0lE
LCBDTVNhbXBsZUJ1ZmZlclJlCiAgICAgaWYgKG1fY2xpZW50KSB7CiAgICAgICAgIFJlZjxNZWRp
YVNhbXBsZT4gbWVkaWFTYW1wbGUgPSBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShzYW1wbGVC
dWZmZXIsIHRyYWNrSUQpOwogICAgICAgICBMT0coTWVkaWFTb3VyY2VTYW1wbGVzLCAiU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OnByb2Nlc3NDb2RlZEZyYW1lKCVwKSAtIHNhbXBsZSglcyki
LCB0aGlzLCB0b1N0cmluZyhtZWRpYVNhbXBsZS5nZXQoKSkudXRmOCgpLmRhdGEoKSk7Ci0gICAg
ICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSh0aGlzLCBt
ZWRpYVNhbXBsZSk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVj
ZWl2ZVNhbXBsZShtZWRpYVNhbXBsZSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFJlYWNoRW5kT2ZUcmFja1dpdGhU
cmFja0lEKGludCB0cmFja0lELCBjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKK3ZvaWQgU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFJlYWNoRW5kT2ZUcmFja1dpdGhUcmFja0lEKGludCwg
Y29uc3QgU3RyaW5nJikKIHsKLSAgICBVTlVTRURfUEFSQU0obWVkaWFUeXBlKTsKLSAgICBVTlVT
RURfUEFSQU0odHJhY2tJRCk7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIApAQCAtNTkwLDcg
KzU2MSw2IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250
ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvCiAgICAgaWYgKCFtX21lZGlhU291cmNl
KQogICAgICAgICByZXR1cm47CiAKLSAgICBVTlVTRURfUEFSQU0odHJhY2tJRCk7CiAjaWYgRU5B
QkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxp
emF0aW9uRGF0YUZvclRyYWNrSUQoJXApIC0gdHJhY2s6JWQiLCB0aGlzLCB0cmFja0lEKTsKICAg
ICBtX3Byb3RlY3RlZFRyYWNrSUQgPSB0cmFja0lEOwpAQCAtNjA3LDYgKzU3Nyw3IEBAIHZvaWQg
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdElu
aXRpYWxpemF0aW9uRGF0YUZvCiAgICAgfQogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oaW5pdERh
dGEpOworICAgIFVOVVNFRF9QQVJBTSh0cmFja0lEKTsKICAgICBVTlVTRURfUEFSQU0oaGFzU2Vz
c2lvblNlbWFwaG9yZSk7CiAjZW5kaWYKIH0KQEAgLTY1OSw3ICs2MzAsNyBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphcHBlbmRDb21wbGV0ZWQoKQogICAgICAgICBtX21lZGlh
U291cmNlLT5wbGF5ZXIoKS0+c2V0TG9hZGluZ1Byb2dyZXNzc2VkKHRydWUpOwogCiAgICAgaWYg
KG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENv
bXBsZXRlKHRoaXMsIG1fcGFyc2luZ1N1Y2NlZWRlZCA/IFNvdXJjZUJ1ZmZlclByaXZhdGVDbGll
bnQ6OkFwcGVuZFN1Y2NlZWRlZCA6IFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OlBhcnNpbmdG
YWlsZWQpOworICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBs
ZXRlKG1fcGFyc2luZ1N1Y2NlZWRlZCA/IFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkFwcGVu
ZFN1Y2NlZWRlZCA6IFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OlBhcnNpbmdGYWlsZWQpOwog
fQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphYm9ydCgpCkBAIC03MzUsMTgg
KzcwNiwxMiBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRSZWFkeVN0YXRl
KE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdAogCiBib29sIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpoYXNWaWRlbygpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2NsaWVudCkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQ
cml2YXRlSGFzVmlkZW8odGhpcyk7CisgICAgcmV0dXJuIG1fY2xpZW50ICYmIG1fY2xpZW50LT5z
b3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8oKTsKIH0KIAogYm9vbCBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQzo6aGFzQXVkaW8oKSBjb25zdAogewotICAgIGlmICghbV9jbGllbnQpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJp
dmF0ZUhhc0F1ZGlvKHRoaXMpOworICAgIHJldHVybiBtX2NsaWVudCAmJiBtX2NsaWVudC0+c291
cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OnRyYWNrRGlkQ2hhbmdlRW5hYmxlZChWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQyogdHJhY2spCkBAIC04NzQsNyArODM5LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6bGF5ZXJEaWRSZWNlaXZlRXJyb3IoQVZTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXIKICAgICBpbnQgZXJyb3JDb2RlID0gW1tbZXJyb3IgdXNlckluZm9dIHZhbHVlRm9yS2V5
OkAiT1NTdGF0dXMiXSBpbnRWYWx1ZV07CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1f
Y2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmluZ0Vycm9yKHRoaXMs
IGVycm9yQ29kZSk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVj
ZWl2ZVJlbmRlcmluZ0Vycm9yKGVycm9yQ29kZSk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OnJlbmRlcmVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyQXVkaW9S
ZW5kZXJlciAqcmVuZGVyZXIsIE5TRXJyb3IgKmVycm9yKQpAQCAtODk1LDcgKzg2MCw3IEBAIHZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnJlbmRlcmVyRGlkUmVjZWl2ZUVycm9yKEFW
U2FtcGxlQnVmZmVyQXVkaW9SZW5kCiAgICAgICAgIHJldHVybjsKIH0KIAotdm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6Zmx1c2goQXRvbWljU3RyaW5nIHRyYWNrSURTdHJpbmcpCit2
b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVzaChjb25zdCBBdG9taWNTdHJpbmcm
IHRyYWNrSURTdHJpbmcpCiB7CiAgICAgaW50IHRyYWNrSUQgPSB0cmFja0lEU3RyaW5nLnRvSW50
KCk7CiAgICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmZs
dXNoKCVwKSAtIHRyYWNrSWQ6ICVkIiwgdGhpcywgdHJhY2tJRCk7CkBAIC05MjUsMTkgKzg5MCwx
NyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVzaChBVlNhbXBsZUJ1ZmZl
ckF1ZGlvUmVuZGVyZXIgKnJlbmRlcmVyKQogICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIo
KS0+c2V0SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUocmVuZGVyZXIsIGZhbHNlKTsKIH0KIAotdm9p
ZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1l
ZGlhU2FtcGxlPiBwcnBNZWRpYVNhbXBsZSwgQXRvbWljU3RyaW5nIHRyYWNrSURTdHJpbmcpCit2
b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNh
bXBsZT4mJiBzYW1wbGUsIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRFN0cmluZykKIHsKICAg
ICBpbnQgdHJhY2tJRCA9IHRyYWNrSURTdHJpbmcudG9JbnQoKTsKICAgICBpZiAodHJhY2tJRCAh
PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQgJiYgIW1fYXVkaW9SZW5kZXJlcnMuY29udGFpbnModHJh
Y2tJRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gbWVkaWFT
YW1wbGUgPSBwcnBNZWRpYVNhbXBsZTsKLQotICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2Ft
cGxlID0gbWVkaWFTYW1wbGUtPnBsYXRmb3JtU2FtcGxlKCk7CisgICAgUGxhdGZvcm1TYW1wbGUg
cGxhdGZvcm1TYW1wbGUgPSBzYW1wbGUtPnBsYXRmb3JtU2FtcGxlKCk7CiAgICAgaWYgKHBsYXRm
b3JtU2FtcGxlLnR5cGUgIT0gUGxhdGZvcm1TYW1wbGU6OkNNU2FtcGxlQnVmZmVyVHlwZSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgTE9HKE1lZGlhU291cmNlU2FtcGxlcywgIlNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKCVwKSAtIHNhbXBsZSglcykiLCB0aGlzLCB0
b1N0cmluZygqbWVkaWFTYW1wbGUpLnV0ZjgoKS5kYXRhKCkpOworICAgIExPRyhNZWRpYVNvdXJj
ZVNhbXBsZXMsICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZSglcCkg
LSBzYW1wbGUoJXMpIiwgdGhpcywgdG9TdHJpbmcoc2FtcGxlLmdldCgpKS51dGY4KCkuZGF0YSgp
KTsKIAogICAgIGlmICh0cmFja0lEID09IG1fZW5hYmxlZFZpZGVvVHJhY2tJRCkgewogICAgICAg
ICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZm
ZXJHZXRGb3JtYXREZXNjcmlwdGlvbihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZm
ZXIpOwpAQCAtOTUwLDIyICs5MTMsMjIgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6ZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBNZWRpYVMKICAgICAg
ICAgICAgICAgICBpZiAoc2l6ZVdhc051bGwpCiAgICAgICAgICAgICAgICAgICAgIG1fbWVkaWFT
b3VyY2UtPnBsYXllcigpLT5zZXROYXR1cmFsU2l6ZShmb3JtYXRTaXplKTsKICAgICAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5z
aXplV2lsbENoYW5nZUF0VGltZShtZWRpYVNhbXBsZS0+cHJlc2VudGF0aW9uVGltZSgpLCBmb3Jt
YXRTaXplKTsKKyAgICAgICAgICAgICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNp
emVXaWxsQ2hhbmdlQXRUaW1lKHNhbXBsZS0+cHJlc2VudGF0aW9uVGltZSgpLCBmb3JtYXRTaXpl
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIFttX2Rpc3BsYXlMYXllciBl
bnF1ZXVlU2FtcGxlQnVmZmVyOnBsYXRmb3JtU2FtcGxlLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcl07
CiAgICAgICAgIGlmIChtX21lZGlhU291cmNlKQotICAgICAgICAgICAgbV9tZWRpYVNvdXJjZS0+
cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoIW1lZGlhU2FtcGxlLT5pc05vbkRp
c3BsYXlpbmcoKSk7CisgICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2V0SGFz
QXZhaWxhYmxlVmlkZW9GcmFtZSghc2FtcGxlLT5pc05vbkRpc3BsYXlpbmcoKSk7CiAgICAgfSBl
bHNlIHsKICAgICAgICAgYXV0byByZW5kZXJlciA9IG1fYXVkaW9SZW5kZXJlcnMuZ2V0KHRyYWNr
SUQpOwogICAgICAgICBbcmVuZGVyZXIgZW5xdWV1ZVNhbXBsZUJ1ZmZlcjpwbGF0Zm9ybVNhbXBs
ZS5zYW1wbGUuY21TYW1wbGVCdWZmZXJdOwogICAgICAgICBpZiAobV9tZWRpYVNvdXJjZSkKLSAg
ICAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zZXRIYXNBdmFpbGFibGVBdWRpb1Nh
bXBsZShyZW5kZXJlci5nZXQoKSwgIW1lZGlhU2FtcGxlLT5pc05vbkRpc3BsYXlpbmcoKSk7Cisg
ICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2V0SGFzQXZhaWxhYmxlQXVkaW9T
YW1wbGUocmVuZGVyZXIuZ2V0KCksICFzYW1wbGUtPmlzTm9uRGlzcGxheWluZygpKTsKICAgICB9
CiB9CiAKLWJvb2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmlzUmVhZHlGb3JNb3JlU2Ft
cGxlcyhBdG9taWNTdHJpbmcgdHJhY2tJRFN0cmluZykKK2Jvb2wgU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OmlzUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNr
SURTdHJpbmcpCiB7CiAgICAgaW50IHRyYWNrSUQgPSB0cmFja0lEU3RyaW5nLnRvSW50KCk7CiAg
ICAgaWYgKHRyYWNrSUQgPT0gbV9lbmFibGVkVmlkZW9UcmFja0lEKQpAQCAtOTg0LDkgKzk0Nyw5
IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldEFjdGl2ZShib29sIGlzQWN0
aXZlKQogCiBNZWRpYVRpbWUgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmZhc3RTZWVrVGlt
ZUZvck1lZGlhVGltZShNZWRpYVRpbWUgdGltZSwgTWVkaWFUaW1lIG5lZ2F0aXZlVGhyZXNob2xk
LCBNZWRpYVRpbWUgcG9zaXRpdmVUaHJlc2hvbGQpCiB7Ci0gICAgaWYgKG1fY2xpZW50KQotICAg
ICAgICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JN
ZWRpYVRpbWUodGhpcywgdGltZSwgbmVnYXRpdmVUaHJlc2hvbGQsIHBvc2l0aXZlVGhyZXNob2xk
KTsKLSAgICByZXR1cm4gdGltZTsKKyAgICBpZiAoIW1fY2xpZW50KQorICAgICAgICByZXR1cm4g
dGltZTsKKyAgICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1Rp
bWVGb3JNZWRpYVRpbWUodGltZSwgbmVnYXRpdmVUaHJlc2hvbGQsIHBvc2l0aXZlVGhyZXNob2xk
KTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6d2lsbFNlZWsoKQpAQCAt
MTAwMSw3ICs5NjQsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp3aWxsU2Vl
aygpCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZWVrVG9UaW1lKE1lZGlhVGlt
ZSB0aW1lKQogewogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1
ZmZlclByaXZhdGVTZWVrVG9UaW1lKHRoaXMsIHRpbWUpOworICAgICAgICBtX2NsaWVudC0+c291
cmNlQnVmZmVyUHJpdmF0ZVNlZWtUb1RpbWUodGltZSk7CiB9CiAKIEZsb2F0U2l6ZSBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6bmF0dXJhbFNpemUoKQpAQCAtMTAyMSwxMCArOTg0LDEwIEBA
IHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZEJlY29tZVJlYWR5Rm9yTW9yZVNh
bXBsZXMoaW50IHRyYWNrSUQpCiAgICAgfQogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBt
X2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMo
dGhpcywgQXRvbWljU3RyaW5nOjpudW1iZXIodHJhY2tJRCkpOworICAgICAgICBtX2NsaWVudC0+
c291cmNlQnVmZmVyUHJpdmF0ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3Ry
aW5nOjpudW1iZXIodHJhY2tJRCkpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjpub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcgdHJh
Y2tJRFN0cmluZykKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om5vdGlmeUNsaWVu
dFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRFN0cmlu
ZykKIHsKICAgICBpbnQgdHJhY2tJRCA9IHRyYWNrSURTdHJpbmcudG9JbnQoKTsKICAgICBpZiAo
dHJhY2tJRCA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2
YXRlQVZGT2JqQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwCmluZGV4IGU5YzY2MjIyM2M4
MzY1ZGQwNzc2ZThhMmM0ZWVkNDhjMGYxMzAxZmQuLmM4NzFjNTk0ODM1NTA4NTcxODJjN2EyNGQ1
NTM0Yjg1YTVkNGVmN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9U
cmFja1ByaXZhdGVBVkZPYmpDLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSwxMSArMjUsMTIgQEAKIAogI2ltcG9ydCAiY29uZmln
LmgiCiAjaW1wb3J0ICJWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCIKLSNpbXBvcnQgIkFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGwuaCIKLSNpbXBvcnQgIk1lZGlhU2VsZWN0aW9uR3JvdXBBVkZP
YmpDLmgiCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKKyNpbXBvcnQgIkFWVHJhY2tQcml2
YXRlQVZGT2JqQ0ltcGwuaCIKKyNpbXBvcnQgIk1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLmgi
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpWaWRl
b1RyYWNrUHJpdmF0ZUFWRk9iakMoQVZQbGF5ZXJJdGVtVHJhY2sqIHRyYWNrKQpAQCAtMTA1LDQg
KzEwNiwzIEBAIHZvaWQgVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDOjpzZXRTZWxlY3RlZChib29s
IGVuYWJsZWQpCiB9CiAKICNlbmRpZgotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0
cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5i
YW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggZjY2NmJlYmMyYjdm
NDMyYWJjNTZmYjg4NmM4OTk3NmY3OWEzNTRhZC4uZTk0MmEyYzVmYzA3ZTdiMGFhNTY1MTMxZmEx
ODUxOGNjNWM0NGNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRNZXRh
ZGF0YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaApAQCAtMjMsOCArMjMsNyBAQAogICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotI2lmbmRlZiBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXJf
aAotI2RlZmluZSBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXJfaAorI3By
YWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpICYmIEVOQUJM
RShWSURFT19UUkFDSykKIApAQCAtNTAsMTMgKzQ5LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGFk
ZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNv
bnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKICAgICB7CiAgICAgICAgIEFTU0VSVChj
dWVGb3JtYXQoKSA9PSBEYXRhKTsKLSAgICAgICAgY2xpZW50KCktPmFkZERhdGFDdWUodGhpcywg
c3RhcnQsIGVuZCwgZGF0YSwgbGVuZ3RoKTsKKyAgICAgICAgY2xpZW50KCktPmFkZERhdGFDdWUo
c3RhcnQsIGVuZCwgZGF0YSwgbGVuZ3RoKTsKICAgICB9CiAKICAgICB2b2lkIGFkZEdlbmVyaWND
dWUoUGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0YT4gZGF0YSkKICAgICB7CiAgICAgICAgIEFTU0VS
VChjdWVGb3JtYXQoKSA9PSBHZW5lcmljKTsKLSAgICAgICAgY2xpZW50KCktPmFkZEdlbmVyaWND
dWUodGhpcywgZGF0YSk7CisgICAgICAgIGNsaWVudCgpLT5hZGRHZW5lcmljQ3VlKCpkYXRhKTsK
ICAgICB9CiAKIHByaXZhdGU6CkBAIC03Niw1ICs3NSwzIEBAIHByaXZhdGU6CiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIp
ICYmIEVOQUJMRShWSURFT19UUkFDSykKLQotI2VuZGlmIC8vIEluYmFuZE1ldGFkYXRhVGV4dFRy
YWNrUHJpdmF0ZUdTdHJlYW1lcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggNmIxZmZhYjkzYzM0OGZjY2M3N2M2MzBmZWI2
YmU4MmUxMDE5ZGFkNi4uMWQ5NDUyNzhiYTRkMDJjMDQ3ZjMyYTE1NzQ5NWRiZGU2OGNmYTA2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0lu
YmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVy
LmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJl
YW1lcjo6bm90aWZ5VHJhY2tPZlNhbXBsZSgpCiAKICAgICAgICAgR1NUX0lORk8oIlRyYWNrICVk
IHBhcnNpbmcgc2FtcGxlOiAlLipzIiwgbV9pbmRleCwgc3RhdGljX2Nhc3Q8aW50PihpbmZvLnNp
emUpLAogICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oaW5mby5kYXRhKSk7Ci0g
ICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEN1ZURhdGEodGhpcywgcmVpbnRlcnByZXRfY2Fz
dDxjaGFyKj4oaW5mby5kYXRhKSwgaW5mby5zaXplKTsKKyAgICAgICAgY2xpZW50KCktPnBhcnNl
V2ViVlRUQ3VlRGF0YShyZWludGVycHJldF9jYXN0PGNoYXIqPihpbmZvLmRhdGEpLCBpbmZvLnNp
emUpOwogICAgICAgICBnc3RfYnVmZmVyX3VubWFwKGJ1ZmZlciwgJmluZm8pOwogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9U
cmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcAppbmRleCA2MTlm
MmNhNjFjYWJlNTk0MGFlYzNkMTNlY2Y3ZGRmNTczNWZkNzIxLi45YmUxZmVhMmRmZjVhMDZjZTQw
ZTg1MWZhNTNhMDNmNjQ4NGFlNWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJh
c2VHU3RyZWFtZXIuY3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgdm9pZCBUcmFja1ByaXZhdGVCYXNl
R1N0cmVhbWVyOjpub3RpZnlUcmFja09mVGFnc0NoYW5nZWQoKQogICAgICAgICByZXR1cm47CiAK
ICAgICBpZiAoZ2V0VGFnKHRhZ3MuZ2V0KCksIEdTVF9UQUdfVElUTEUsIG1fbGFiZWwpKQotICAg
ICAgICBjbGllbnQtPmxhYmVsQ2hhbmdlZChtX293bmVyLCBtX2xhYmVsKTsKKyAgICAgICAgY2xp
ZW50LT5sYWJlbENoYW5nZWQobV9sYWJlbCk7CiAKICAgICBBdG9taWNTdHJpbmcgbGFuZ3VhZ2U7
CiAgICAgaWYgKCFnZXRMYW5ndWFnZUNvZGUodGFncy5nZXQoKSwgbGFuZ3VhZ2UpKQpAQCAtMTY3
LDcgKzE2Nyw3IEBAIHZvaWQgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6bm90aWZ5VHJhY2tP
ZlRhZ3NDaGFuZ2VkKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9sYW5ndWFnZSA9IGxhbmd1
YWdlOwotICAgIGNsaWVudC0+bGFuZ3VhZ2VDaGFuZ2VkKG1fb3duZXIsIG1fbGFuZ3VhZ2UpOwor
ICAgIGNsaWVudC0+bGFuZ3VhZ2VDaGFuZ2VkKG1fbGFuZ3VhZ2UpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwCmluZGV4IDAwNTEy
ZTYzYzczMmUzOTNlZjY1MTYwMTBkMWU2N2VlNmZlZGJiMzguLjg0OTI2N2YyMWUwNjk4ZmI1ZDJh
ZGRlYWU1MDkxYjNjNWQwOTJmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3Bw
CkBAIC02NzYsNyArNjc2LDcgQEAgdm9pZCBBcHBlbmRQaXBlbGluZTo6YXBwc2lua05ld1NhbXBs
ZShHc3RTYW1wbGUqIHNhbXBsZSkKICAgICAgICAgICAgIG1lZGlhU2FtcGxlLT5hcHBseVB0c09m
ZnNldChNZWRpYVRpbWU6Onplcm9UaW1lKCkpOwogICAgICAgICB9CiAKLSAgICAgICAgbV9zb3Vy
Y2VCdWZmZXJQcml2YXRlLT5kaWRSZWNlaXZlU2FtcGxlKG1lZGlhU2FtcGxlKTsKKyAgICAgICAg
bV9zb3VyY2VCdWZmZXJQcml2YXRlLT5kaWRSZWNlaXZlU2FtcGxlKCptZWRpYVNhbXBsZSk7CiAg
ICAgICAgIHNldEFwcGVuZFN0YXRlKEFwcGVuZFN0YXRlOjpTYW1wbGluZyk7CiAgICAgICAgIG1f
Zmxvd1JldHVybiA9IEdTVF9GTE9XX09LOwogICAgICAgICBtX25ld1NhbXBsZUNvbmRpdGlvbi5u
b3RpZnlPbmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIuY3BwCmluZGV4IDdmNTQ1ZWUzNWU0OGFhMDZiMDJhOTk2M2UxMWFjYmNiZGNh
Nzc5NDEuLmU0YjEwN2Y3MGY1YzhjNjk4MTc0MTVlYmNhNGQ2NTViM2FiNWVjMDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcApA
QCAtNzYsNyArNzYsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmFwcGVu
ZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZQogICAgIGlmIChtX2NsaWVu
dC0+YXBwZW5kKHRoaXMsIGRhdGEsIGxlbmd0aCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1f
c291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBs
ZXRlKHRoaXMsIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OlJlYWRTdHJlYW1GYWlsZWQpOwor
ICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVu
ZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OlJlYWRTdHJlYW1GYWlsZWQpOwog
fQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmFib3J0KCkKQEAgLTEwNiwy
MCArMTA2LDE5IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0UmVhZHlT
dGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBzdGF0ZSkKICAgICBtX21lZGlhU291cmNlLT5z
ZXRSZWFkeVN0YXRlKHN0YXRlKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyOjpmbHVzaChBdG9taWNTdHJpbmcgdHJhY2tJZCkKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lcjo6Zmx1c2goY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lkKQogewogICAgIG1f
Y2xpZW50LT5mbHVzaCh0cmFja0lkKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyOjplbnF1ZXVlU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+IHBycFNhbXBsZSwg
QXRvbWljU3RyaW5nKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjplbnF1ZXVl
U2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIGNvbnN0IEF0b21pY1N0cmluZyYpCiB7
CiAgICAgbV9ub3RpZnlXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyA9IGZhbHNlOwogCi0gICAgUmVm
UHRyPE1lZGlhU2FtcGxlPiBwcm90ZWN0ZWRQcnBTYW1wbGUgPSBwcnBTYW1wbGU7Ci0gICAgbV9j
bGllbnQtPmVucXVldWVTYW1wbGUocHJvdGVjdGVkUHJwU2FtcGxlKTsKKyAgICBtX2NsaWVudC0+
ZW5xdWV1ZVNhbXBsZShXVEZNb3ZlKHNhbXBsZSkpOwogfQogCi1ib29sIFNvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXI6OmlzUmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpCitib29s
IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmlzUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25z
dCBBdG9taWNTdHJpbmcmKQogewogICAgIHJldHVybiBtX2lzUmVhZHlGb3JNb3JlU2FtcGxlczsK
IH0KQEAgLTEzNSw3ICsxMzQsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6
Om5vdGlmeVJlYWR5Rm9yTW9yZVNhbXBsZXMoKQogICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVh
ZCgpKTsKICAgICBzZXRSZWFkeUZvck1vcmVTYW1wbGVzKHRydWUpOwogICAgIGlmIChtX25vdGlm
eVdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKQotICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVD
bGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKHRo
aXMsIG1fdHJhY2tJZCk7CisgICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC0+c291
cmNlQnVmZmVyUHJpdmF0ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMobV90cmFja0lkKTsK
IH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRBY3RpdmUoYm9vbCBp
c0FjdGl2ZSkKQEAgLTE0NCwxMiArMTQzLDEyIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lcjo6c2V0QWN0aXZlKGJvb2wgaXNBY3RpdmUpCiAgICAgICAgIG1fbWVkaWFTb3VyY2Ut
PnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRDaGFuZ2VBY3RpdmVTdGF0ZSh0aGlzLCBpc0FjdGl2ZSk7
CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6c3RvcEFza2luZ0Zvck1v
cmVTYW1wbGVzKEF0b21pY1N0cmluZykKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
cjo6c3RvcEFza2luZ0Zvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYpCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
Ojpub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcgdHJhY2tJ
ZCkKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5Q2xpZW50V2hlblJl
YWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lkKQogewogICAgIEFT
U0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKICAgICBtX25vdGlmeVdoZW5SZWFkeUZvck1vcmVT
YW1wbGVzID0gdHJ1ZTsKQEAgLTE1OSwyMCArMTU4LDE5IEBAIHZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUdTdHJlYW1lcjo6bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWlj
U3RyCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVJbml0aWFs
aXphdGlvblNlZ21lbnQoY29uc3QgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6SW5pdGlhbGl6
YXRpb25TZWdtZW50JiBpbml0aWFsaXphdGlvblNlZ21lbnQpCiB7CiAgICAgaWYgKG1fc291cmNl
QnVmZmVyUHJpdmF0ZUNsaWVudCkKLSAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50
LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudCh0aGlz
LCBpbml0aWFsaXphdGlvblNlZ21lbnQpOworICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVD
bGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50
KGluaXRpYWxpemF0aW9uU2VnbWVudCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lcjo6ZGlkUmVjZWl2ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1w
bGUpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVTYW1wbGUo
TWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsKLSAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IHByb3RlY3Rl
ZFBycFNhbXBsZSA9IHBycFNhbXBsZTsKICAgICBpZiAobV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xp
ZW50KQotICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRSZWNlaXZlU2FtcGxlKHRoaXMsICpwcm90ZWN0ZWRQcnBTYW1wbGUpOworICAgICAg
ICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNl
aXZlU2FtcGxlKHNhbXBsZSk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
cjo6ZGlkUmVjZWl2ZUFsbFBlbmRpbmdTYW1wbGVzKCkKIHsKICAgICBpZiAobV9zb3VyY2VCdWZm
ZXJQcml2YXRlQ2xpZW50KQotICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNv
dXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCBTb3VyY2VCdWZmZXJQcml2YXRl
Q2xpZW50OjpBcHBlbmRTdWNjZWVkZWQpOworICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVD
bGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2
YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDMwODQyNWQ1MDNjYWE0
ZWI4NjhiMzg5OTliNWQ0Njc2OGRkNTQ5ODcuLjU2NzEzMTBmZjgyYzgzZjk4YzI2MGU4N2I0OGYx
MzQxZWM4YWY2MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJp
dmF0ZUdTdHJlYW1lci5oCkBAIC01NCwyNiArNTQsMjYgQEAgcHVibGljOgogCiAgICAgdm9pZCBj
bGVhck1lZGlhU291cmNlKCkgeyBtX21lZGlhU291cmNlID0gbnVsbHB0cjsgfQogCi0gICAgdm9p
ZCBzZXRDbGllbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwotICAgIHZv
aWQgYXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1bnNpZ25lZCkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBhYm9ydCgpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzZXRQYXJzZXJTdGF0ZSgpIG92ZXJy
aWRlOwotICAgIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpIG92ZXJyaWRlOwotICAgIE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2
b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpIG92ZXJyaWRlOwotCi0g
ICAgdm9pZCBmbHVzaChBdG9taWNTdHJpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgZW5xdWV1ZVNh
bXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiwgQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKLSAg
ICBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpIG92ZXJyaWRlOwotICAg
IHZvaWQgc2V0QWN0aXZlKGJvb2wpIG92ZXJyaWRlOwotICAgIHZvaWQgc3RvcEFza2luZ0Zvck1v
cmVTYW1wbGVzKEF0b21pY1N0cmluZykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBub3RpZnlDbGllbnRX
aGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpIG92ZXJyaWRlOworICAgIHZvaWQg
c2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqKSBmaW5hbDsKKyAgICB2b2lkIGFw
cGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQpIGZpbmFsOworICAgIHZvaWQgYWJv
cnQoKSBmaW5hbDsKKyAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBmaW5hbDsKKyAgICB2b2lk
IHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKSBmaW5hbDsKKyAgICBNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBmaW5hbDsKKworICAgIHZvaWQgZmx1c2goY29uc3QgQXRv
bWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBs
ZT4mJiwgY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBpc1JlYWR5Rm9yTW9y
ZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBzZXRBY3RpdmUo
Ym9vbCkgZmluYWw7CisgICAgdm9pZCBzdG9wQXNraW5nRm9yTW9yZVNhbXBsZXMoY29uc3QgQXRv
bWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3Jl
U2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0UmVhZHlG
b3JNb3JlU2FtcGxlcyhib29sKTsKICAgICB2b2lkIG5vdGlmeVJlYWR5Rm9yTW9yZVNhbXBsZXMo
KTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBTb3Vy
Y2VCdWZmZXJQcml2YXRlQ2xpZW50OjpJbml0aWFsaXphdGlvblNlZ21lbnQmKTsKLSAgICB2b2lk
IGRpZFJlY2VpdmVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4pOworICAgIHZvaWQgZGlk
UmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUFsbFBlbmRp
bmdTYW1wbGVzKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFt
LmgKaW5kZXggYmExOTEyMWMyMjJmYjYyNzY2MzkyYTcxZWZiYzU2NWZlOWM4Nzk2My4uNjBjMDA3
NWQ2NzJhNjI5MDI1ODFmOTM4ZTZhZmE0ODNiMTY2MDQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW0uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtX2gK
LSNkZWZpbmUgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbV9oCisjcHJhZ21hIG9uY2UKIAog
I2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIApAQCAtMzYs
MTQgKzM1LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW0gZmluYWwgOiBwdWJsaWMgQXVkaW9UcmFja1ByaXZhdGUgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0pCiBwdWJsaWM6Ci0K
ICAgICBzdGF0aWMgUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0+IGNyZWF0ZShN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc3RyZWFtVHJhY2spCiAgICAgewogICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtKHN0cmVhbVRyYWNr
KSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB+QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbSgp
IHsgfQotCiAgICAgS2luZCBraW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gS2luZDo6TWFp
bjsgfQogICAgIEF0b21pY1N0cmluZyBpZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faWQ7
IH0KICAgICBBdG9taWNTdHJpbmcgbGFiZWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2xh
YmVsOyB9CkBAIC01MiwxNyArNDgsMTcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRUcmFja0lu
ZGV4KGludCBpbmRleCkgeyBtX2luZGV4ID0gaW5kZXg7IH0KIAotICAgIE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlKiBzdHJlYW1UcmFjaygpIGNvbnN0IHsgcmV0dXJuIG1fc3RyZWFtVHJhY2suZ2V0
KCk7IH0KKyAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc3RyZWFtVHJhY2soKSB7IHJldHVy
biBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAgQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2spCi0gICAgICAgIDog
bV9zdHJlYW1UcmFjaygmdHJhY2spCisgICAgICAgIDogbV9zdHJlYW1UcmFjayh0cmFjaykKICAg
ICAgICAgLCBtX2lkKHRyYWNrLmlkKCkpCiAgICAgICAgICwgbV9sYWJlbCh0cmFjay5sYWJlbCgp
KQogICAgIHsKICAgICB9CiAKLSAgICBSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IG1f
c3RyZWFtVHJhY2s7CisgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBtX3N0cmVhbVRy
YWNrOwogICAgIEF0b21pY1N0cmluZyBtX2lkOwogICAgIEF0b21pY1N0cmluZyBtX2xhYmVsOwog
ICAgIGludCBtX2luZGV4IHsgMCB9OwpAQCAtNzEsNSArNjcsMyBAQCBwcml2YXRlOgogfQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0j
ZW5kaWYgLy8gQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3Ry
ZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9WaWRlb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmgKaW5kZXggZTFiZmExNmYxNGQ3MjlhZmQwZDFlNGVlZmIxY2U5OTYy
MTU3MDE2Ni4uMDQ1ODM4OWYzOTc0ODcyNzJhNzkzMTA0YjBhM2RmNWIzYTJmYmQzMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vVmlkZW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBWaWRlb1RyYWNrUHJpdmF0
ZU1lZGlhU3RyZWFtX2gKLSNkZWZpbmUgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbV9oCisj
cHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKIApAQCAtMzYsMTQgKzM1LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFZp
ZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0gZmluYWwgOiBwdWJsaWMgVmlkZW9UcmFja1ByaXZh
dGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW0pCiBwdWJsaWM6Ci0KICAgICBzdGF0aWMgUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW0+IGNyZWF0ZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc3RyZWFtVHJhY2spCiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3Ry
ZWFtKHN0cmVhbVRyYWNrKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB+VmlkZW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbSgpIHsgfQotCiAgICAgS2luZCBraW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gS2luZDo6TWFpbjsgfQogICAgIEF0b21pY1N0cmluZyBpZCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1faWQ7IH0KICAgICBBdG9taWNTdHJpbmcgbGFiZWwoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX2xhYmVsOyB9CkBAIC01MiwxNyArNDgsMTcgQEAgcHVibGljOgogCiAgICAg
dm9pZCBzZXRUcmFja0luZGV4KGludCBpbmRleCkgeyBtX2luZGV4ID0gaW5kZXg7IH0KIAotICAg
IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBzdHJlYW1UcmFjaygpIGNvbnN0IHsgcmV0dXJuIG1f
c3RyZWFtVHJhY2suZ2V0KCk7IH0KKyAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgc3RyZWFt
VHJhY2soKSB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAg
VmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJh
Y2spCi0gICAgICAgIDogbV9zdHJlYW1UcmFjaygmdHJhY2spCisgICAgICAgIDogbV9zdHJlYW1U
cmFjayh0cmFjaykKICAgICAgICAgLCBtX2lkKHRyYWNrLmlkKCkpCiAgICAgICAgICwgbV9sYWJl
bCh0cmFjay5sYWJlbCgpKQogICAgIHsKICAgICB9CiAKLSAgICBSZWZQdHI8TWVkaWFTdHJlYW1U
cmFja1ByaXZhdGU+IG1fc3RyZWFtVHJhY2s7CisgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlPiBtX3N0cmVhbVRyYWNrOwogICAgIEF0b21pY1N0cmluZyBtX2lkOwogICAgIEF0b21pY1N0
cmluZyBtX2xhYmVsOwogICAgIGludCBtX2luZGV4IHsgMCB9OwpAQCAtNzEsNSArNjcsMyBAQCBw
cml2YXRlOgogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tT
b3VyY2VCdWZmZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVk
aWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCmluZGV4IDQ4ZGY0YmNjNGMzYmI4
ZGEyYzVmNDkwMGUxNzUwNjAwNzkxODU2ZjMuLmUwMzFhOWI1ZDIwZDEyYTFiOTZlMGUxMTZjZTRi
YWE5NTRjZjAyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVk
aWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaCIK
ICNpbmNsdWRlIDxtYXA+CiAjaW5jbHVkZSA8cnVudGltZS9BcnJheUJ1ZmZlci5oPgotI2luY2x1
ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNjUsNyArMTY0LDcgQEAgdm9pZCBNb2NrU291
cmNlQnVmZmVyUHJpdmF0ZTo6YXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2ln
bmVkIGxlbmd0aCkKICAgICB9CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50
LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUodGhpcywgcmVzdWx0KTsKKyAgICAg
ICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShyZXN1bHQpOwog
fQogCiB2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlSW5pdGlhbGl6YXRp
b25TZWdtZW50KGNvbnN0IE1vY2tJbml0aWFsaXphdGlvbkJveCYgaW5pdEJveCkKQEAgLTE5Niw3
ICsxOTUsNyBAQCB2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlSW5pdGlh
bGl6YXRpb25TZWdtZW50KGNvbnN0IE1vY2tJbml0aWFsaQogICAgICAgICB9CiAgICAgfQogCi0g
ICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25T
ZWdtZW50KHRoaXMsIHNlZ21lbnQpOworICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRl
RGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChzZWdtZW50KTsKIH0KIAogCkBAIC0yMDUs
NyArMjA0LDcgQEAgdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZVNhbXBs
ZShjb25zdCBNb2NrU2FtcGxlQm94JiBzYW1wbGVCb3gpCiAgICAgaWYgKCFtX2NsaWVudCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNl
aXZlU2FtcGxlKHRoaXMsIE1vY2tNZWRpYVNhbXBsZTo6Y3JlYXRlKHNhbXBsZUJveCkpOworICAg
IG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShNb2NrTWVkaWFT
YW1wbGU6OmNyZWF0ZShzYW1wbGVCb3gpKTsKIH0KIAogdm9pZCBNb2NrU291cmNlQnVmZmVyUHJp
dmF0ZTo6YWJvcnQoKQpAQCAtMjM5LDIyICsyMzgsMjEgQEAgdm9pZCBNb2NrU291cmNlQnVmZmVy
UHJpdmF0ZTo6c2V0QWN0aXZlKGJvb2wgaXNBY3RpdmUpCiAgICAgICAgIG1fbWVkaWFTb3VyY2Ut
PnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRDaGFuZ2VBY3RpdmVTdGF0ZSh0aGlzLCBpc0FjdGl2ZSk7
CiB9CiAKLVZlY3RvcjxTdHJpbmc+IE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjplbnF1ZXVlZFNh
bXBsZXNGb3JUcmFja0lEKEF0b21pY1N0cmluZykKK1ZlY3RvcjxTdHJpbmc+IE1vY2tTb3VyY2VC
dWZmZXJQcml2YXRlOjplbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKGNvbnN0IEF0b21pY1N0cmlu
ZyYpCiB7CiAgICAgcmV0dXJuIG1fZW5xdWV1ZWRTYW1wbGVzOwogfQogCi12b2lkIE1vY2tTb3Vy
Y2VCdWZmZXJQcml2YXRlOjplbnF1ZXVlU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+IHBy
cFNhbXBsZSwgQXRvbWljU3RyaW5nKQordm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5x
dWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdCBBdG9taWNTdHJpbmcm
KQogewotICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gc2FtcGxlID0gcHJwU2FtcGxlOwotICAgIGlm
ICghbV9tZWRpYVNvdXJjZSB8fCAhc2FtcGxlKQorICAgIGlmICghbV9tZWRpYVNvdXJjZSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgUGxhdGZvcm1TYW1wbGUgcGxhdGZvcm1TYW1wbGUgPSBzYW1w
bGUtPnBsYXRmb3JtU2FtcGxlKCk7CiAgICAgaWYgKHBsYXRmb3JtU2FtcGxlLnR5cGUgIT0gUGxh
dGZvcm1TYW1wbGU6Ok1vY2tTYW1wbGVCb3hUeXBlKQogICAgICAgICByZXR1cm47CiAKLSAgICBN
b2NrU2FtcGxlQm94KiBib3ggPSBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUubW9ja1NhbXBsZUJveDsK
KyAgICBhdXRvKiBib3ggPSBwbGF0Zm9ybVNhbXBsZS5zYW1wbGUubW9ja1NhbXBsZUJveDsKICAg
ICBpZiAoIWJveCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yNjYsMzcgKzI2NCwzMCBAQCB2b2lk
IE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjplbnF1ZXVlU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFT
YW1wbGU+IHBycFNhbXBsZSwgQQogICAgIGlmIChib3gtPmlzRGVsYXllZCgpKQogICAgICAgICBt
X21lZGlhU291cmNlLT5pbmNyZW1lbnRUb3RhbEZyYW1lRGVsYXlCeShNZWRpYVRpbWUoMSwgMSkp
OwogCi0gICAgbV9lbnF1ZXVlZFNhbXBsZXMuYXBwZW5kKHRvU3RyaW5nKHNhbXBsZSkpOworICAg
IG1fZW5xdWV1ZWRTYW1wbGVzLmFwcGVuZCh0b1N0cmluZyhzYW1wbGUuZ2V0KCkpKTsKIH0KIAog
Ym9vbCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6aGFzVmlkZW8oKSBjb25zdAogewotICAgIGlm
ICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBtX2NsaWVu
dC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKHRoaXMpOworICAgIHJldHVybiBtX2NsaWVu
dCAmJiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCk7CiB9CiAKIGJvb2wg
TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6Omhhc0F1ZGlvKCkgY29uc3QKIHsKLSAgICBpZiAoIW1f
Y2xpZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9jbGllbnQtPnNv
dXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyh0aGlzKTsKKyAgICByZXR1cm4gbV9jbGllbnQgJiYg
bV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygpOwogfQogCi0KIE1lZGlhVGlt
ZSBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKGNvbnN0
IE1lZGlhVGltZSYgdGltZSwgY29uc3QgTWVkaWFUaW1lJiBuZWdhdGl2ZVRocmVzaG9sZCwgY29u
c3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRocmVzaG9sZCkKIHsKICAgICBpZiAobV9jbGllbnQpCi0g
ICAgICAgIHJldHVybiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUZhc3RTZWVrVGltZUZv
ck1lZGlhVGltZSh0aGlzLCB0aW1lLCBuZWdhdGl2ZVRocmVzaG9sZCwgcG9zaXRpdmVUaHJlc2hv
bGQpOworICAgICAgICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vl
a1RpbWVGb3JNZWRpYVRpbWUodGltZSwgbmVnYXRpdmVUaHJlc2hvbGQsIHBvc2l0aXZlVGhyZXNo
b2xkKTsKICAgICByZXR1cm4gdGltZTsKIH0KIAogdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0
ZTo6c2Vla1RvVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUpCiB7CiAgICAgaWYgKG1fY2xpZW50
KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZVNlZWtUb1RpbWUodGhpcywg
dGltZSk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGltZSh0
aW1lKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9t
ZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oCmluZGV4IDc0
NGI0YzEwN2MzMTAyNmZhNDI5YThmMTJkMjU2M2JmYzM2MzJkMjguLjQ5NjUwNTUzYjA3YmVhYzA3
ZjUzMTBlZjVlNTZlZjgyYzcyMGEwNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2
YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yMywxNSArMjMsMTEgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5k
ZWYgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGVfaAotI2RlZmluZSBNb2NrU291cmNlQnVmZmVyUHJp
dmF0ZV9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAKICNpbmNs
dWRlICJTb3VyY2VCdWZmZXJQcml2YXRlLmgiCi0jaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgot
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArMzksNyBAQCBjbGFzcyBNb2NrU2FtcGxlQm94Owog
Y2xhc3MgVGltZVJhbmdlczsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOwogCi1jbGFzcyBNb2Nr
U291cmNlQnVmZmVyUHJpdmF0ZSA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQcml2YXRlIHsKK2NsYXNz
IE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlIGZpbmFsIDogcHVibGljIFNvdXJjZUJ1ZmZlclByaXZh
dGUgewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU+
IGNyZWF0ZShNb2NrTWVkaWFTb3VyY2VQcml2YXRlKik7CiAgICAgdmlydHVhbCB+TW9ja1NvdXJj
ZUJ1ZmZlclByaXZhdGUoKTsKQEAgLTYwLDIwICs1NiwyMCBAQCBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlKE1vY2tNZWRpYVNvdXJjZVByaXZhdGUqKTsKIAog
ICAgIC8vIFNvdXJjZUJ1ZmZlclByaXZhdGUgb3ZlcnJpZGVzCi0gICAgdm9pZCBzZXRDbGllbnQo
U291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwotICAgIHZvaWQgYXBwZW5kKGNv
bnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBhYm9ydCgpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzZXRQYXJzZXJTdGF0ZSgpIG92ZXJy
aWRlOwotICAgIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpIG92ZXJyaWRlOwotICAgIE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2
b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpIG92ZXJyaWRlOworICAg
IHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqKSBmaW5hbDsKKyAgICB2
b2lkIGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIGZp
bmFsOworICAgIHZvaWQgYWJvcnQoKSBmaW5hbDsKKyAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUo
KSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKSBmaW5hbDsKKyAgICBN
ZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgZmluYWw7CisgICAgdm9p
ZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBmaW5hbDsKIAotICAgIHZv
aWQgZmx1c2goQXRvbWljU3RyaW5nKSBvdmVycmlkZSB7IG1fZW5xdWV1ZWRTYW1wbGVzLmNsZWFy
KCk7IH0KLSAgICB2b2lkIGVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4sIEF0
b21pY1N0cmluZykgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRv
bWljU3RyaW5nKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdm9pZCBzZXRBY3RpdmUo
Ym9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBmbHVzaChjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5h
bCB7IG1fZW5xdWV1ZWRTYW1wbGVzLmNsZWFyKCk7IH0KKyAgICB2b2lkIGVucXVldWVTYW1wbGUo
UmVmPE1lZGlhU2FtcGxlPiYmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAgICBib29s
IGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CisgICAgdm9pZCBzZXRBY3RpdmUoYm9vbCkgZmluYWw7CiAKLSAgICBWZWN0b3I8
U3RyaW5nPiBlbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKEF0b21pY1N0cmluZykgb3ZlcnJpZGU7
CisgICAgVmVjdG9yPFN0cmluZz4gZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChjb25zdCBBdG9t
aWNTdHJpbmcmKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2Vn
bWVudChjb25zdCBNb2NrSW5pdGlhbGl6YXRpb25Cb3gmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVT
YW1wbGUoY29uc3QgTW9ja1NhbXBsZUJveCYpOwpAQCAtODgsNiArODQsMyBAQCBwcml2YXRlOgog
fQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgVVNFKEFWRk9VTkRBVElPTikK
LQotI2VuZGlmCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVk
aWFzb3VyY2UvTW9ja1RyYWNrcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRp
YXNvdXJjZS9Nb2NrVHJhY2tzLmgKaW5kZXggOGQwMzE5ZjJkMGQ2Njg4NmQ1YTU5MDFmZTEyZGJi
MzY0MjNiY2U2Yi4uMDczZjM2ODYzN2IwOTZiZTBmMjViYTIzOGEzN2Y3MmIyNjU5MzhjNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrVHJh
Y2tzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2Nr
VHJhY2tzLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMjMsOCArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBN
b2NrVHJhY2tzX2gKLSNkZWZpbmUgTW9ja1RyYWNrc19oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpCiAKQEAgLTM3LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBNb2NrQXVkaW9UcmFja1ByaXZhdGUgOiBwdWJsaWMgQXVkaW9UcmFja1ByaXZh
dGUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8TW9ja0F1ZGlvVHJhY2tQcml2YXRlPiBj
cmVhdGUoY29uc3QgTW9ja1RyYWNrQm94JiBib3gpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBNb2Nr
QXVkaW9UcmFja1ByaXZhdGUoYm94KSk7IH0KKyAgICBzdGF0aWMgUmVmPE1vY2tBdWRpb1RyYWNr
UHJpdmF0ZT4gY3JlYXRlKGNvbnN0IE1vY2tUcmFja0JveCYgYm94KSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IE1vY2tBdWRpb1RyYWNrUHJpdmF0ZShib3gpKTsgfQogICAgIHZpcnR1YWwgfk1vY2tB
dWRpb1RyYWNrUHJpdmF0ZSgpIHsgfQogCiAgICAgdmlydHVhbCBBdG9taWNTdHJpbmcgaWQoKSBj
b25zdCB7IHJldHVybiBtX2lkOyB9CkBAIC00NSw3ICs0NCw3IEBAIHB1YmxpYzoKIHByb3RlY3Rl
ZDoKICAgICBNb2NrQXVkaW9UcmFja1ByaXZhdGUoY29uc3QgTW9ja1RyYWNrQm94JiBib3gpCiAg
ICAgICAgIDogbV9ib3goYm94KQotICAgICAgICAsIG1faWQoU3RyaW5nOjpmb3JtYXQoIiVkIiwg
Ym94LnRyYWNrSUQoKSkpCisgICAgICAgICwgbV9pZChBdG9taWNTdHJpbmc6Om51bWJlcihib3gu
dHJhY2tJRCgpKSkKICAgICB7CiAgICAgfQogICAgIE1vY2tUcmFja0JveCBtX2JveDsKQEAgLTYz
LDcgKzYyLDcgQEAgcHJvdGVjdGVkOgogICAgIE1vY2tUZXh0VHJhY2tQcml2YXRlKGNvbnN0IE1v
Y2tUcmFja0JveCYgYm94KQogICAgICAgICA6IEluYmFuZFRleHRUcmFja1ByaXZhdGUoSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZTo6R2VuZXJpYykKICAgICAgICAgLCBtX2JveChib3gpCi0gICAgICAg
ICwgbV9pZChTdHJpbmc6OmZvcm1hdCgiJWQiLCBib3gudHJhY2tJRCgpKSkKKyAgICAgICAgLCBt
X2lkKEF0b21pY1N0cmluZzo6bnVtYmVyKGJveC50cmFja0lEKCkpKQogICAgIHsKICAgICB9CiAg
ICAgTW9ja1RyYWNrQm94IG1fYm94OwpAQCAtODEsNyArODAsNyBAQCBwdWJsaWM6CiBwcm90ZWN0
ZWQ6CiAgICAgTW9ja1ZpZGVvVHJhY2tQcml2YXRlKGNvbnN0IE1vY2tUcmFja0JveCYgYm94KQog
ICAgICAgICA6IG1fYm94KGJveCkKLSAgICAgICAgLCBtX2lkKFN0cmluZzo6Zm9ybWF0KCIlZCIs
IGJveC50cmFja0lEKCkpKQorICAgICAgICAsIG1faWQoQXRvbWljU3RyaW5nOjpudW1iZXIoYm94
LnRyYWNrSUQoKSkpCiAgICAgewogICAgIH0KICAgICBNb2NrVHJhY2tCb3ggbV9ib3g7CkBAIC05
MSw1ICs5MCwzIEBAIHByb3RlY3RlZDoKIH0KIAogI2VuZGlmCi0KLSNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKaW5k
ZXggMzNmZTQzOTYwMmNjZDA3NTBhZTNjM2NiMGM0ZDc4MGNmNzFiZWM4My4uN2YyYzY5MDk3NmQ2
OGExY2RkOTU4NDRhM2YwZGJkNWU4MGIyMzRhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQzLDYgKzQzLDcgQEAKICNp
bmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRlICJQYXRoLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUmVuZGVySW1hZ2VSZXNvdXJjZS5oIgogI2luY2x1
ZGUgIlJlbmRlckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUg
PHd0Zi9TdGFja1N0YXRzLmg+CkBAIC01Miw3ICs1Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbihIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogICAgIDogUmVu
ZGVyRW1iZWRkZWRPYmplY3QoZWxlbWVudCwgV1RGTW92ZShzdHlsZSkpCiAgICAgLCBtX3NuYXBz
aG90UmVzb3VyY2Uoc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJJbWFnZVJlc291cmNlPigpKQotICAg
ICwgbV9pc1BvdGVudGlhbE1vdXNlQWN0aXZhdGlvbihmYWxzZSkKIHsKICAgICBtX3NuYXBzaG90
UmVzb3VyY2UtPmluaXRpYWxpemUodGhpcyk7CiB9CkBAIC04MiwxMyArODIsMTMgQEAgdm9pZCBS
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6bGF5b3V0KCkKICAgICB2aWV3KCkuZnJhbWVWaWV3KCku
YWRkRW1iZWRkZWRPYmplY3RUb1VwZGF0ZSgqdGhpcyk7CiB9CiAKLXZvaWQgUmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW46OnVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKQordm9p
ZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6dXBkYXRlU25hcHNob3QoSW1hZ2UqIGltYWdlKQog
ewogICAgIC8vIFplcm8tc2l6ZSBwbHVnaW5zIHdpbGwgaGF2ZSBubyBpbWFnZS4KICAgICBpZiAo
IWltYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3NuYXBzaG90UmVzb3VyY2UtPnNldENh
Y2hlZEltYWdlKG5ldyBDYWNoZWRJbWFnZShpbWFnZS5nZXQoKSwgdmlldygpLmZyYW1lVmlldygp
LmZyYW1lKCkucGFnZSgpLT5zZXNzaW9uSUQoKSkpOworICAgIG1fc25hcHNob3RSZXNvdXJjZS0+
c2V0Q2FjaGVkSW1hZ2UobmV3IENhY2hlZEltYWdlKGltYWdlLCB2aWV3KCkuZnJhbWVWaWV3KCku
ZnJhbWUoKS5wYWdlKCktPnNlc3Npb25JRCgpKSk7CiAgICAgcmVwYWludCgpOwogfQogCkBAIC0x
NTAsMTIgKzE1MCwxMiBAQCBDdXJzb3JEaXJlY3RpdmUgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46
OmdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIEN1cgogICAgIHJldHVybiBSZW5k
ZXJFbWJlZGRlZE9iamVjdDo6Z2V0Q3Vyc29yKHBvaW50LCBvdmVycmlkZUN1cnNvcik7CiB9CiAK
LXZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCkK
K3ZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmhhbmRsZUV2ZW50KEV2ZW50JiBldmVudCkK
IHsKLSAgICBpZiAoIWlzPE1vdXNlRXZlbnQ+KCpldmVudCkpCisgICAgaWYgKCFpczxNb3VzZUV2
ZW50PihldmVudCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIE1vdXNlRXZlbnQmIG1vdXNlRXZl
bnQgPSBkb3duY2FzdDxNb3VzZUV2ZW50PigqZXZlbnQpOworICAgIGF1dG8mIG1vdXNlRXZlbnQg
PSBkb3duY2FzdDxNb3VzZUV2ZW50PihldmVudCk7CiAKICAgICAvLyBJZiB3ZSdyZSBhIHNuYXBz
aG90dGVkIHBsdWdpbiwgd2Ugd2FudCB0byBtYWtlIHN1cmUgd2UgYWN0aXZhdGUgb24KICAgICAv
LyBjbGlja3MgZXZlbiBpZiB0aGUgcGFnZSBpcyBwcmV2ZW50aW5nIG91ciBkZWZhdWx0IGJlaGF2
aW91ci4gT3RoZXJ3aXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbi5oCmluZGV4IDEzNGRiODMzYjc5OGVlNWMzN2IxYmEyN2RhNTQ4ZmM1
NDNlZjg2NDcuLmNhYjViZmJjNGZhZjY3ZDY2YjZiODk4MjE1ZGIyNjBhMTI2ZWFlYjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI2LDEyICsyNiwxMSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJSZW5kZXJFbWJlZGRl
ZE9iamVjdC5oIgotI2luY2x1ZGUgIlJlbmRlckltYWdlUmVzb3VyY2UuaCIKLSNpbmNsdWRlICJU
aW1lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ7CitjbGFzcyBSZW5kZXJJbWFnZVJlc291cmNlOwogCiBjbGFzcyBSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbiBmaW5hbCA6IHB1YmxpYyBSZW5kZXJFbWJlZGRlZE9iamVjdCB7CiBwdWJsaWM6
CkBAIC0zOSwyNyArMzgsMjEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflJlbmRlclNuYXBzaG90
dGVkUGx1Z0luKCk7CiAKICAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBwbHVnSW5JbWFnZUVs
ZW1lbnQoKSBjb25zdDsKLQotICAgIHZvaWQgdXBkYXRlU25hcHNob3QoUGFzc1JlZlB0cjxJbWFn
ZT4pOwotCi0gICAgdm9pZCBoYW5kbGVFdmVudChFdmVudCopOworICAgIHZvaWQgdXBkYXRlU25h
cHNob3QoSW1hZ2UqKTsKKyAgICB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50Jik7CiAKIHByaXZhdGU6
CiAgICAgdm9pZCBmcmFtZU93bmVyRWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwotICAgIGNvbnN0
IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW4iOyB9Ci0KLSAgICBDdXJzb3JEaXJlY3RpdmUgZ2V0Q3Vyc29yKGNvbnN0IExh
eW91dFBvaW50JiwgQ3Vyc29yJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1NuYXBzaG90
dGVkUGx1Z0luKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQgcGFp
bnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKLSAgICAKLSAgICBi
b29sIGNhbkhhdmVXaWRnZXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQotCisg
ICAgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJSZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbiI7IH0KKyAgICBDdXJzb3JEaXJlY3RpdmUgZ2V0Q3Vyc29yKGNvbnN0
IExheW91dFBvaW50JiwgQ3Vyc29yJikgY29uc3QgZmluYWw7CisgICAgYm9vbCBpc1NuYXBzaG90
dGVkUGx1Z0luKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZvaWQgcGFpbnQo
UGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBmaW5hbDsKKyAgICBib29sIGNhbkhhdmVX
aWRnZXQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgcGFpbnRTbmFw
c2hvdChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwotCi0gICAgdm9pZCBsYXlvdXQo
KSBvdmVycmlkZTsKKyAgICB2b2lkIGxheW91dCgpIGZpbmFsOwogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPFJlbmRlckltYWdlUmVzb3VyY2U+IG1fc25hcHNob3RSZXNvdXJjZTsKLSAgICBib29sIG1f
aXNQb3RlbnRpYWxNb3VzZUFjdGl2YXRpb247CisgICAgYm9vbCBtX2lzUG90ZW50aWFsTW91c2VB
Y3RpdmF0aW9uIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCmluZGV4IDhiN2Q5MjQ1NjRhNjRmMDFjOTZkMGJl
MjQzMDhjZWFhOTg2ZDE2ZTkuLmUyNjc4NjlmZTc3MTEwNzEwNDIwMmViMTQ2NjZkODk1ZmExNGE4
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaApAQCAtMSw2ICsxLDcgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5u
IDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcg
Um9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjksMTMg
KzMwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU1ZHU2NyaXB0RWxlbWVu
dCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICwgcHVibGljIFNWR1VSSVJlZmVyZW5jZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAs
IHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICwgcHVibGljIFNjcmlwdEVsZW1lbnQgeworY2xhc3MgU1ZHU2NyaXB0RWxlbWVu
dCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50LCBwdWJsaWMgU1ZHVVJJUmVmZXJlbmNlLCBwdWJs
aWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgcHVibGljIFNjcmlwdEVsZW1lbnQgewog
cHVibGljOgogICAgIHN0YXRpYyBSZWY8U1ZHU2NyaXB0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlcik7CiAKKyAg
ICB1c2luZyBTVkdFbGVtZW50OjpyZWY7CisgICAgdXNpbmcgU1ZHRWxlbWVudDo6ZGVyZWY7CisK
IHByaXZhdGU6CiAgICAgU1ZHU2NyaXB0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJvb2wgYWxyZWFkeVN0YXJ0ZWQpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwCmlu
ZGV4IDkyNjA1ZmMwMjM1YzdhZWZiZTc2YWM4NjFlMGY4NWY2ZThhNWRhOGYuLjY5NTZkNzhhNzFi
MjA1ZmExMmI0MzMzMGMzZTM4NDk3YzE2NjNlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwMCBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQotICogQ29weXJpZ2h0
IChDKSAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEB3ZWJraXQub3Jn
KQogICogQ29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgKHNhbUB3ZWJraXQub3JnKQog
ICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQpAQCAtMjM3LDggKzIzNyw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6Om5v
dGlmeUZpbmlzaGVkKFBlbmRpbmdTY3JpcHQmIHBlbmRpbmdTY3JpcHQpCiAgICAgbV9wZW5kaW5n
U2NyaXB0ID0gbnVsbHB0cjsKICAgICBwZW5kaW5nU2NyaXB0LmNsZWFyQ2xpZW50KCk7CiAKLSAg
ICBhdXRvJiBzY3JpcHRFbGVtZW50ID0gKnRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJnBlbmRp
bmdTY3JpcHQuZWxlbWVudCgpKTsKLSAgICBzY3JpcHRFbGVtZW50LmV4ZWN1dGVQZW5kaW5nU2Ny
aXB0KHBlbmRpbmdTY3JpcHQpOworICAgIHBlbmRpbmdTY3JpcHQuZWxlbWVudCgpLmV4ZWN1dGVQ
ZW5kaW5nU2NyaXB0KHBlbmRpbmdTY3JpcHQpOwogCiAgICAgaWYgKCFpc0RldGFjaGVkKCkgJiYg
IW1fcmVxdWVzdGluZ1NjcmlwdCkKICAgICAgICAgcmVzdW1lUGFyc2luZygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3Bw
IGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3Bw
CmluZGV4IDcwNjc2NzZkZDE3YTc0ZDllNDI3MjlkM2QyOWQzZGQ4ZThhN2Y4Y2UuLmY0ODEwMDUy
NjcxMTYyOTBmYjFmZDUzNmM4MDg5MTBjYmU1NmE4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTEsNiAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAwIFBldGVyIEtlbGx5IDxwbWtAcG9zdC5j
b20+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiA8YXBA
d2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIDxzYW1Ad2Vi
a2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKQEAgLTc5OSw4ICs3OTksNyBAQCB2b2lkIFhNTERvY3VtZW50
UGFyc2VyOjpzdGFydEVsZW1lbnROcyhjb25zdCB4bWxDaGFyKiB4bWxMb2NhbE5hbWUsIGNvbnN0
IHhtbENoYQogCiAgICAgbmV3RWxlbWVudC0+YmVnaW5QYXJzaW5nQ2hpbGRyZW4oKTsKIAotICAg
IFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxl
KG5ld0VsZW1lbnQucHRyKCkpOwotICAgIGlmIChzY3JpcHRFbGVtZW50KQorICAgIGlmIChpc1Nj
cmlwdEVsZW1lbnQobmV3RWxlbWVudC5nZXQoKSkpCiAgICAgICAgIG1fc2NyaXB0U3RhcnRQb3Np
dGlvbiA9IHRleHRQb3NpdGlvbigpOwogCiAgICAgbV9jdXJyZW50Tm9kZS0+cGFyc2VyQXBwZW5k
Q2hpbGQobmV3RWxlbWVudCk7CkBAIC04NDMsNyArODQyLDcgQEAgdm9pZCBYTUxEb2N1bWVudFBh
cnNlcjo6ZW5kRWxlbWVudE5zKCkKICAgICBpZiAoaGFja0Fyb3VuZExpYlhNTEVudGl0eVBhcnNp
bmdCdWcoKSAmJiBjb250ZXh0KCktPmRlcHRoIDw9IGRlcHRoVHJpZ2dlcmluZ0VudGl0eUV4cGFu
c2lvbigpKQogICAgICAgICBzZXREZXB0aFRyaWdnZXJpbmdFbnRpdHlFeHBhbnNpb24oLTEpOwog
Ci0gICAgaWYgKCFzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKHBhcnNlckNvbnRlbnRQb2xpY3ko
KSkgJiYgaXM8RWxlbWVudD4oKm5vZGUpICYmIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoZG93
bmNhc3Q8RWxlbWVudD4obm9kZS5nZXQoKSkpKSB7CisgICAgaWYgKCFzY3JpcHRpbmdDb250ZW50
SXNBbGxvd2VkKHBhcnNlckNvbnRlbnRQb2xpY3koKSkgJiYgaXM8RWxlbWVudD4oKm5vZGUpICYm
IGlzU2NyaXB0RWxlbWVudChkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkpKSB7CiAgICAgICAgIHBv
cEN1cnJlbnROb2RlKCk7CiAgICAgICAgIG5vZGUtPnJlbW92ZSgpOwogICAgICAgICByZXR1cm47
CkBAIC04NTQsNyArODUzLDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5z
KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEVsZW1lbnQmIGVsZW1lbnQgPSBkb3du
Y2FzdDxFbGVtZW50Pigqbm9kZSk7CisgICAgYXV0byYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1l
bnQ+KCpub2RlKTsKIAogICAgIC8vIFRoZSBlbGVtZW50J3MgcGFyZW50IG1heSBoYXZlIGFscmVh
ZHkgYmVlbiByZW1vdmVkIGZyb20gZG9jdW1lbnQuCiAgICAgLy8gUGFyc2luZyBjb250aW51ZXMg
aW4gdGhpcyBjYXNlLCBidXQgc2NyaXB0cyBhcmVuJ3QgZXhlY3V0ZWQuCkBAIC04NjMsOCArODYy
LDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKCkKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSB0b1Njcmlw
dEVsZW1lbnRJZlBvc3NpYmxlKCZlbGVtZW50KTsKLSAgICBpZiAoIXNjcmlwdEVsZW1lbnQpIHsK
KyAgICBpZiAoIWlzU2NyaXB0RWxlbWVudChlbGVtZW50KSkgewogICAgICAgICBwb3BDdXJyZW50
Tm9kZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtODczLDE1ICs4NzEsMTYgQEAgdm9p
ZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKCkKICAgICBBU1NFUlQoIW1fcGVuZGlu
Z1NjcmlwdCk7CiAgICAgbV9yZXF1ZXN0aW5nU2NyaXB0ID0gdHJ1ZTsKIAotICAgIGlmIChzY3Jp
cHRFbGVtZW50LT5wcmVwYXJlU2NyaXB0KG1fc2NyaXB0U3RhcnRQb3NpdGlvbiwgU2NyaXB0RWxl
bWVudDo6QWxsb3dMZWdhY3lUeXBlSW5UeXBlQXR0cmlidXRlKSkgeworICAgIGF1dG8mIHNjcmlw
dEVsZW1lbnQgPSBkb3duY2FzdFNjcmlwdEVsZW1lbnQoZWxlbWVudCk7CisgICAgaWYgKHNjcmlw
dEVsZW1lbnQucHJlcGFyZVNjcmlwdChtX3NjcmlwdFN0YXJ0UG9zaXRpb24sIFNjcmlwdEVsZW1l
bnQ6OkFsbG93TGVnYWN5VHlwZUluVHlwZUF0dHJpYnV0ZSkpIHsKICAgICAgICAgLy8gRklYTUU6
IFNjcmlwdCBleGVjdXRpb24gc2hvdWxkIGJlIHNoYXJlZCBiZXR3ZWVuCiAgICAgICAgIC8vIHRo
ZSBsaWJ4bWwyIGFuZCBRdCBYTUxEb2N1bWVudFBhcnNlciBpbXBsZW1lbnRhdGlvbnMuCiAKLSAg
ICAgICAgaWYgKHNjcmlwdEVsZW1lbnQtPnJlYWR5VG9CZVBhcnNlckV4ZWN1dGVkKCkpCi0gICAg
ICAgICAgICBzY3JpcHRFbGVtZW50LT5leGVjdXRlQ2xhc3NpY1NjcmlwdChTY3JpcHRTb3VyY2VD
b2RlKHNjcmlwdEVsZW1lbnQtPnNjcmlwdENvbnRlbnQoKSwgZG9jdW1lbnQoKS0+dXJsKCksIG1f
c2NyaXB0U3RhcnRQb3NpdGlvbikpOwotICAgICAgICBlbHNlIGlmIChzY3JpcHRFbGVtZW50LT53
aWxsQmVQYXJzZXJFeGVjdXRlZCgpICYmIHNjcmlwdEVsZW1lbnQtPmxvYWRhYmxlU2NyaXB0KCkp
IHsKLSAgICAgICAgICAgIG1fcGVuZGluZ1NjcmlwdCA9IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShl
bGVtZW50LCAqc2NyaXB0RWxlbWVudC0+bG9hZGFibGVTY3JpcHQoKSk7Ci0gICAgICAgICAgICBt
X3BlbmRpbmdTY3JpcHQtPnNldENsaWVudCh0aGlzKTsKKyAgICAgICAgaWYgKHNjcmlwdEVsZW1l
bnQucmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQoKSkKKyAgICAgICAgICAgIHNjcmlwdEVsZW1lbnQu
ZXhlY3V0ZUNsYXNzaWNTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRFbGVtZW50LnNjcmlw
dENvbnRlbnQoKSwgZG9jdW1lbnQoKS0+dXJsKCksIG1fc2NyaXB0U3RhcnRQb3NpdGlvbikpOwor
ICAgICAgICBlbHNlIGlmIChzY3JpcHRFbGVtZW50LndpbGxCZVBhcnNlckV4ZWN1dGVkKCkgJiYg
c2NyaXB0RWxlbWVudC5sb2FkYWJsZVNjcmlwdCgpKSB7CisgICAgICAgICAgICBtX3BlbmRpbmdT
Y3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxlbWVudCwgKnNjcmlwdEVsZW1l
bnQubG9hZGFibGVTY3JpcHQoKSk7CisgICAgICAgICAgICBtX3BlbmRpbmdTY3JpcHQtPnNldENs
aWVudCgqdGhpcyk7CiAKICAgICAgICAgICAgIC8vIG1fcGVuZGluZ1NjcmlwdCB3aWxsIGJlIG51
bGxwdHIgaWYgc2NyaXB0IHdhcyBhbHJlYWR5IGxvYWRlZCBhbmQgc2V0Q2xpZW50KCkgZXhlY3V0
ZWQgaXQuCiAgICAgICAgICAgICBpZiAobV9wZW5kaW5nU2NyaXB0KQpAQCAtODk2LDE5ICs4OTUs
MTkgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKCkKICAgICBwb3BDdXJy
ZW50Tm9kZSgpOwogfQogCi12b2lkIFhNTERvY3VtZW50UGFyc2VyOjpjaGFyYWN0ZXJzKGNvbnN0
IHhtbENoYXIqIHMsIGludCBsZW4pCit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpjaGFyYWN0ZXJz
KGNvbnN0IHhtbENoYXIqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgpCiB7CiAgICAgaWYgKGlzU3Rv
cHBlZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9wYXJzZXJQYXVzZWQpIHsKLSAg
ICAgICAgbV9wZW5kaW5nQ2FsbGJhY2tzLT5hcHBlbmRDaGFyYWN0ZXJzQ2FsbGJhY2socywgbGVu
KTsKKyAgICAgICAgbV9wZW5kaW5nQ2FsbGJhY2tzLT5hcHBlbmRDaGFyYWN0ZXJzQ2FsbGJhY2so
Y2hhcmFjdGVycywgbGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmICgh
bV9sZWFmVGV4dE5vZGUpCiAgICAgICAgIGNyZWF0ZUxlYWZUZXh0Tm9kZSgpOwotICAgIG1fYnVm
ZmVyZWRUZXh0LmFwcGVuZChzLCBsZW4pOworICAgIG1fYnVmZmVyZWRUZXh0LmFwcGVuZChjaGFy
YWN0ZXJzLCBsZW5ndGgpOwogfQogCiB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjplcnJvcihYTUxF
cnJvcnM6OkVycm9yVHlwZSB0eXBlLCBjb25zdCBjaGFyKiBtZXNzYWdlLCB2YV9saXN0IGFyZ3Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCmluZGV4IGMxMDE5MjRlYTVmMWQ2NjI5M2IxOTlhMzAwMTI0ZGIyYzIzZjU3YjQuLjkwMDA2
ZWIxMDM2MzI1NmUzYTcyMzA3YzI0NGFhZWNiYjE4MTFlN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CkBAIC0zMSwxMiArMzEsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9Gb2N1c0RpcmVjdGlvbi5o
PgogI2ltcG9ydCA8d3RmL0ZvcndhcmQuaD4KIAotI2lmIFBMQVRGT1JNKElPUykKLSNpbXBvcnQg
PHd0Zi9QbGF0Zm9ybS5oPgotI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL0Nocm9tZS5oPgotI2VuZGlmCi0KIEBjbGFzcyBXZWJWaWV3OwogCiBjbGFzcyBX
ZWJDaHJvbWVDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6Q2hyb21lQ2xpZW50IHsKQEAgLTEyNSw3
ICsxMTksNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNv
cmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pIG92ZXJyaWRlOwot
ICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2Vi
Q29yZTo6RmlsZUljb25Mb2FkZXIqKSBvdmVycmlkZTsKKyAgICB2b2lkIGxvYWRJY29uRm9yRmls
ZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJikg
b3ZlcnJpZGU7CiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0
IFdlYkNvcmU6OkN1cnNvciYpIG92ZXJyaWRlOwpAQCAtMjE0LDExICsyMDgsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNSZWxldmFudFNlbGVjdGlvblNlcnZpY2VzKGJvb2wgaXNUZXh0T25seSkg
Y29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKICAgICBXZWJWaWV3
KiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gbV93ZWJWaWV3OyB9Ci0jZWxzZQotICAgIFdlYlZp
ZXcqIHdlYlZpZXcoKSB7IHJldHVybiBtX3dlYlZpZXc7IH0KLSNlbmRpZgogCiAjaWYgRU5BQkxF
KFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRGT1JNKElPUykKICAgICB2b2lkIGFk
ZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IC8qY29udGV4dElkKi8pIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tCmluZGV4IGJjZWFmZDUxMTY1MzIyYjNhZGJhNzk0YzBjMWY1OGRiNWNlMTlhOGIu
LmQ3ZWM4Y2IxYjQ2YWI3ODE4ZTBkZTIyNDEyNmNhYTVhMDY1ZGEyOTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
Ni0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykg
MjAwOCwgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKQEAgLTc1Nyw5ICs3NTcsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gY2hvb3NlcikK
ICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVu
dDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxl
SWNvbkxvYWRlciogaWNvbkxvYWRlcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZv
ckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9hZGVyJiBp
Y29uTG9hZGVyKQogewotICAgIGljb25Mb2FkZXItPm5vdGlmeUZpbmlzaGVkKEljb246OmNyZWF0
ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKKyAgICBpY29uTG9hZGVyLmljb25Mb2FkZWQoSWNv
bjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOwogfQogCiAjaWYgIVBMQVRGT1JNKElP
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCmluZGV4IDAzZDhhMjZkOTM4ZjEyNjcwNWIwMGU2MzFhNTMzODI2Njc2MzMxNzku
LmYyNGU2MzM0NDVlNDM1NWIzYjQyOGY5OTg3ZGM0MmY4MTJjMWJmZmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwOCwgMjAxMywgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApAQCAtNjgwLDkgKzY4MCw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5PcGVu
UGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBwcnBGaWxlQ2hvb3NlCiAgICAg
Ly8gRklYTUU6IFNob3cgc29tZSBzb3J0IG9mIGVycm9yIGlmIHRvbyBtYW55IGZpbGVzIGFyZSBz
ZWxlY3RlZCBhbmQgdGhlIGJ1ZmZlciBpcyB0b28gc21hbGwuICBGb3Igbm93LCB0aGlzIHdpbGwg
ZmFpbCBzaWxlbnRseS4KIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9yRmls
ZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgZmlsZW5hbWVzLCBXZWJDb3JlOjpGaWxlSWNv
bkxvYWRlciogbG9hZGVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMo
Y29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgZmlsZW5hbWVzLCBXZWJDb3JlOjpGaWxlSWNvbkxv
YWRlciYgbG9hZGVyKQogewotICAgIGxvYWRlci0+bm90aWZ5RmluaXNoZWQoSWNvbjo6Y3JlYXRl
SWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOworICAgIGxvYWRlci5pY29uTG9hZGVkKEljb246OmNy
ZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnNldEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggODlkNmM4NzRiZDQ0Zjlj
ZDZlZDU1YjA2MGJkZmNkYjg3MzZmYzI4Mi4uMzQ4ZjRjMzVlZjcyMGZiOTlkODdkNjQzZWRjODVh
OWQwMTVjZGNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDA2LTIwMDksIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTExNiw3ICsxMTYsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpOwogCiAgICAgdmlydHVh
bCB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6
RmlsZUNob29zZXI+KTsKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBW
ZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2Vi
Q29yZTo6RmlsZUljb25Mb2FkZXImKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoY29u
c3QgV2ViQ29yZTo6Q3Vyc29yJik7CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVu
dGlsTW91c2VNb3Zlcyhib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA3ZjBlNzVk
Y2I5ODIzYmIyZGRjMTBjZTYwOTFkMTk0NGFkOTIyYTc1Li5kYzNmZWQ1YzliYmZlMzBjOGJkMjBh
ZWU5ZTliMDFkODJkZmU0ZmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC03NjEsOSAr
NzYxLDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSogZnJhbWUs
IFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IHBycEZpbGUKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UnVuT3BlblBhbmVsKHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3Vy
aXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGZyYW1lKSwgZmlsZUNob29zZXItPnNldHRpbmdzKCkp
KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUljb25Mb2FkZXIqIGxvYWRlcikKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxl
bmFtZXMsIEZpbGVJY29uTG9hZGVyJiBsb2FkZXIpCiB7Ci0gICAgbG9hZGVyLT5ub3RpZnlGaW5p
c2hlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7CisgICAgbG9hZGVyLmlj
b25Mb2FkZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOwogfQogCiAjaWYg
IVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDA1ZTRiMzVhMWRlMThiOWVi
ZWY4NTQwNTI2YWZiMmE1ZWZkZmQ3NmMuLjc2ZWUyMmU2ZTlkNmI5Y2IzNGUwMTgzOTE1Zjk4ZjY2
MTczMzY5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTE4Miw3ICsxODIsNyBA
QCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFt
ZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KSBvdmVycmlkZTsKLSAgICB2b2lk
IGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNv
bkxvYWRlciopIG92ZXJyaWRlOworICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0
b3I8U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJikgb3ZlcnJpZGU7CiAKICNpZiAh
UExBVEZPUk0oSU9TKQogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYp
IG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298025</attachid>
            <date>2017-01-04 10:33:48 -0800</date>
            <delta_ts>2017-01-04 18:49:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166635-20170104103220.patch</filename>
            <type>text/plain</type>
            <size>689955</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGViYWRhNjQ0NThkNzllNjZhMzk4ZjIz
YWRjZTY5ZTA3ODg1MDA3N2QuLjMwZjQ1YTVkNTkwN2RiNjc0ZWY2ZWI2NmQ4NTg3OTU3ZmQ2M2Ey
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDEtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRt
bCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpt
YWtlUmVmUHRyKTogQWRkZWQuCisKIDIwMTctMDEtMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgVXNlIHByY3RsIHRvIG5hbWUgdGhyZWFkIG9uIExp
bnV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggYjQxZTkxZGEwM2IxZDY5ZDk2MjQ5YzMzZTRlYmVkODlhNTQ5NWM0
NS4uM2UwNjNhYjE5MjkxMTk4ZjMyY2YzYjZhYzkzNjc5Y2VkYWE3OWMzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDc3MiBAQAorMjAxNy0wMS0wNCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIgdXNlIGZyb20gdGhlICJodG1sIiBkaXJl
Y3RvcnksIG90aGVyIGltcHJvdmVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY2NjM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogUmVtb3ZlZCB0aGUgZHVwbGljYXRl
IGNvcGllcyBvZiBhbGwgdGhlIFdlYkdMLXNwZWNpZmljIGZpbGVzCisgICAgICAgIGluIHRoZSBt
YWluIGxpc3Qgb2Ygc291cmNlIGZpbGVzOyB0aGVyZSBpcyBubyB2YWx1ZSBpbiBsaXN0aW5nIHRo
ZW0gdHdpY2UuCisgICAgICAgIFJlcGxhY2VkIFdlYkdMR2V0SW5mby5jcHAgd2l0aCBXZWJHTEFu
eS5jcHAuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIpOiBVcGRh
dGVzIHNpbmNlIHRoZSB0cmFja3MgZnVuY3Rpb25zCisgICAgICAgIHJldHVybiByZWZlcmVuY2Vz
IG5vdy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUZhc3RT
ZWVrVGltZUZvck1lZGlhVGltZSk6IFJlbW92ZWQKKyAgICAgICAgdW5uZWVkZWQgU291cmNlQnVm
ZmVyUHJpdmF0ZSogYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OmFw
cGVuZEJ1ZmZlclRpbWVyRmlyZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlUmVu
ZGVyaW5nRXJyb3IpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dmlk
ZW9UcmFja3MpOiBSZXR1cm4gYSByZWZlcmVuY2UgcmF0aGVyIHRoYW4gYSBwb2ludGVyLgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjphdWRpb1RyYWNrcyk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjp0ZXh0VHJhY2tzKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlh
bGl6YXRpb25TZWdtZW50KToKKyAgICAgICAgUmVtb3ZlZCB1bm5lZWRlZCBTb3VyY2VCdWZmZXJQ
cml2YXRlKiBhcmd1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dmFsaWRh
dGVJbml0aWFsaXphdGlvblNlZ21lbnQpOiBVcGRhdGVkIHNpbmNlIHRyYWNrcworICAgICAgICBm
dW5jdGlvbnMgbm93IHJldHVybiBhIHBvaW50ZXIuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VC
dWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKTogUmVtb3ZlZCB1bm5l
ZWRlZAorICAgICAgICBTb3VyY2VCdWZmZXJQcml2YXRlKiBhcmd1bWVudC4KKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNW
aWRlbyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjp2aWRlb1RyYWNr
U2VsZWN0ZWRDaGFuZ2VkKTogVGFrZSBhIHJlZmVyZW5jZSByYXRoZXIgdGhhbgorICAgICAgICBh
IHBvaW50ZXIuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OmF1ZGlvVHJhY2tFbmFi
bGVkQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjp0ZXh0
VHJhY2tNb2RlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
Ojp0ZXh0VHJhY2tBZGRDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
cjo6dGV4dFRyYWNrQWRkQ3Vlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyOjp0ZXh0VHJhY2tSZW1vdmVDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3Vlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
U291cmNlQnVmZmVyOjp0ZXh0VHJhY2tLaW5kQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JN
b3JlU2FtcGxlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpwcm92
aWRlTWVkaWFEYXRhKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnJl
ZW5xdWV1ZU1lZGlhRm9yVGltZSk6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IFJlcGxhY2VkIFdlYkdMR2V0SW5m
byB3aXRoIFdlYkdMQW55LgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9IVE1MQ2FudmFzU3R5
bGUpOiBSZW1vdmVkIGV4cGxpY2l0IGNhc3QgdG8gQ2FudmFzU3R5bGUgYW5kIHVubmVlZGVkCisg
ICAgICAgIGNvbnZlcnNpb24gdG8gYSBwb2ludGVyIHNpbmNlIENhbnZhc1N0eWxlIGNvbnN0cnVj
dG9ycyBub3cgdGFrZSByZWZlcmVuY2VzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNQbHVn
aW5FbGVtZW50RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBsdWdpbkluc3RhbmNl
KTogVXBkYXRlZCBzaW5jZSBiaW5kaW5nc0luc3RhbmNlIG5vdyByZXR1cm5zIGEgcmF3IHBvaW50
ZXIuCisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5TY3JpcHRPYmplY3QpOiBEaXR0by4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0pTKTogTW92ZWQgdG8gV2ViR0xBbnkuaC9jcHAuCisgICAgICAg
IChXZWJDb3JlOjpKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEluZGV4ZWRQYXJhbWV0ZXIp
OiBVcGRhdGVkIHNpbmNlIHRoZSB0b0pTCisgICAgICAgIGZ1bmN0aW9uIGluIFdlYkdMQW55Lmgg
dGFrZXMgcmVmZXJlbmNlcywgbm90IHBvaW50ZXJzLgorCisgICAgICAgICogYmluZGluZ3MvanMv
SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9tLmNwcDogUmVtb3ZlZCBxdWl0ZSBhIGZl
dyB1bm5lZWRlZAorICAgICAgICBpbmNsdWRlcyBhbmQgZ290IHJpZCBvZiBhIGxvdCBvZiB1bm5l
ZWRlZCBKU0MgcHJlZml4ZXMuCisgICAgICAgIChXZWJDb3JlOjp0b0pTKTogTW92ZWQgdG8gV2Vi
R0xBbnkuaC9jcHAuCisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Om9iamVjdFBhcmFtZXRlcik6IFJlbmFtZWQgZnJvbSBnZXRPYmplY3RQYXJh
bWV0ZXIgYW5kIGFsc28gY2hhbmdlZCB0bworICAgICAgICB0YWtlIGEgcG9pbnRlciB0byBtZW1i
ZXIgZnVuY3Rpb24gc28gd2UgZG9uJ3QgbmVlZCBhbiBlbnVtIGFuZCBhIHN3aXRjaCBzdGF0ZW1l
bnQuCisgICAgICAgIChXZWJDb3JlOjp0b0pTKTogQ2hhbmdlZCB0byB0YWtlIHJlZmVyZW5jZXMg
cmF0aGVyIHRoYW4gcG9pbnRlcnMuCisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldEF0dGFjaGVkU2hhZGVycyk6IFVzZSBhIG1vZGVybiBmb3IgbG9vcC4K
KyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVy
UGFyYW1ldGVyKTogVXNlIG9iamVjdFBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6OkpTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRl
eEF0dHJpYik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6dG9OdW1iZXJWZWN0b3IpOiBSZW5h
bWVkIGZyb20gdG9WZWN0b3IsIHNpbmNlIHRoaXMgaXMgc3BlY2lmaWNhbGx5IGZvcgorICAgICAg
ICB2ZWN0b3JzIG9mIG51bWJlcnMuIFVzZSB1bmNoZWNrZWRBcHBlbmQgaW5zdGVhZCBvZiBhc3Np
Z25tZW50LgorICAgICAgICAoV2ViQ29yZTo6ZnVuY3Rpb25Gb3JVbmlmb3JtKTogTWFya2VkIHRo
aXMgaW5saW5lLgorICAgICAgICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uZik6IFVwZGF0ZWQgZm9y
IGFib3ZlIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25pKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25NYXRyaXgpOiBEaXR0by4KKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKTogTW92ZWQgYXNzZXJ0aW9ucyB0byB0aGUgdG9w
IG9mIHRoZSBmdW5jdGlvbi4KKyAgICAgICAgQWxzbyBhZGRlZCBhIEZJWE1FIGJlY2F1c2UgaXQn
cyB1bmNsZWFyIHdoeSB0aGVzZSBhc3NlcnRpb25zIGFyZSBjb3JyZWN0LiBVcGRhdGVkCisgICAg
ICAgIHRvIHVzZSBkb3duY2FzdFNjcmlwdEVsZW1lbnQgaW5zdGVhZCBvZiB0b1NjcmlwdEVsZW1l
bnRJZlBvc3NpYmxlLgorCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6IFNvcnRlZCBsaXN0IG9m
IGZvcndhcmQtZGVjbGFyZWQgY2xhc3Nlcy4gUmVtb3ZlZCBkdXBsaWNhdGUKKyAgICAgICAgZm9y
d2FyZCBkZWNsYXJhdGlvbiBvZiBTY3JpcHRNb2R1bGVMb2FkZXIuCisKKyAgICAgICAgKiBkb20v
UGVuZGluZ1NjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nU2NyaXB0OjpjcmVh
dGUpOiBUYWtlIGEgU2NyaXB0RWxlbWVudCBpbnN0ZWFkIG9mIGFuIEVsZW1lbnQuCisgICAgICAg
IChXZWJDb3JlOjpQZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpQZW5kaW5nU2NyaXB0Ojpsb2FkYWJsZVNjcmlwdCk6IE1vdmVkIGlubGluZSB0
byBoZWFkZXIgYW5kIG1hZGUgaW5saW5lLgorICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ1Njcmlw
dDo6c2V0Q2xpZW50KTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgcG9pbnRlci4KKyAg
ICAgICAgKiBkb20vUGVuZGluZ1NjcmlwdC5oOiBVUGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgor
CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdCk6IFBhc3MgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBh
IHBvaW50ZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpyZWYpOiBBZGRlZC4g
Rm9yd2FyZHMgcmVmL2RlcmVmIHRvIHRoZSB1bmRlcmx5aW5nIGVsZW1lbnQKKyAgICAgICAgc28g
d2UgY2FuIHVzZSBSZWYgYW5kIFJlZlB0ciB3aXRoIHRoaXMgY2xhc3MuCisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRFbGVtZW50OjpkZXJlZik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6aXNT
Y3JpcHRFbGVtZW50KTogQWRkZWQuIFJlcGxhY2VzIG9uZSBvZiB0aGUgdHdvIHVzZXMgb2YKKyAg
ICAgICAgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSwgYW5kIGlzIHNpbWlsYXIgaW4gc3R5bGUg
dG8gaXM8RWxlbWVudD4uCisgICAgICAgIChXZWJDb3JlOjpkb3duY2FzdFNjcmlwdEVsZW1lbnQp
OiBEaXR0bywgYnV0IGZvciBkb3duY2FzdC4KKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5o
OiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9yRXhl
Y3V0aW9uKTogVGFrZSByZWZlcmVuY2UgcmF0aGVyIHRoYW4KKyAgICAgICAgcG9pbnRlciwgYW5k
IHBhc3MgU2NyaXB0RWxlbWVudCByYXRoZXIgdGhhbiBFbGVtZW50LgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0UnVubmVyOjpub3RpZnlGaW5pc2hlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKTogRGl0dG8uCisgICAgICAgICogZG9tL1Njcmlw
dFJ1bm5lci5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmZpbGVz
KTogVXBkYXRlZCBzaW5jZSBtX2ZpbGVMaXN0IGlzIGEgUmVmLgorICAgICAgICAoV2ViQ29yZTo6
RmlsZUlucHV0VHlwZTo6Y3JlYXRlRmlsZUxpc3QpOiBVcGRhdGVkIHRvIHJldHVybiBhIFJlZiBp
bnN0ZWFkIG9mCisgICAgICAgIGEgUGFzc1JlZlB0ci4gQWxzbyB1c2UgcmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eS91bmNoZWNrZWRBcHBlbmQuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBl
OjpyZXF1ZXN0SWNvbik6IFVwZGF0ZWQgc2luY2UgdGhlIHVwZGF0ZVJlbmRlcmluZworICAgICAg
ICBmdW5jdGlvbiBpcyBub3cgY2FsbGVkIGljb25Mb2FkZWQuIEFsc28gdXNlIHJlZmVyZW5jZXMg
aW5zdGVhZCBvZiBwb2ludGVycy4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OnNl
dEZpbGVzKTogVGFrZSBhIFJlZlB0ciYmIGluc3RlZCBvZiBhIFBhc3NSZWZQdHIuCisgICAgICAg
IEFsc28gcHV0IHNvbWUgY29uZGl0aW9uYWwgY29kZSBpbnNpZGUgYW4gI2lmLgorICAgICAgICAo
V2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4pOiBVcGRhdGVkIGZvciBmdW5jdGlv
biBuYW1lIGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6Omljb25Mb2Fk
ZWQpOiBSZW5hbWVkIGZyb20gdXBkYXRlUmVuZGVyaW5nLgorICAgICAgICBDaGFuZ2VkIGFyZ3Vt
ZW50IHRvIFJlZlB0ciYmIGZyb20gUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJ
bnB1dFR5cGU6OmRlZmF1bHRUb29sVGlwKTogR290IHJpZCBvZiB1bm5lZWRlZCBsb2NhbCB2YXJp
YWJsZQorICAgICAgICBhbmQgdXNlZCB0aGUgY29ycmVjdCB0eXBlLCB1bnNpZ25lZCwgcmF0aGVy
IHRoYW4gc2l6ZV90LgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5oOiBVcGRhdGVkIGZv
ciB0aGUgYWJvdmUgY2hhbmdlcywgdXNlIGZpbmFsIGluc3RlYWQKKyAgICAgICAgb2Ygb3ZlcnJp
ZGUsIGFuZCB1c2UgUmVmIGluc3RlYWQgb2YgUmVmUHRyLgorCisgICAgICAgICogaHRtbC9IVE1M
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6Zm9ybSk6IFJlbmFt
ZWQgZnJvbSB2aXJ0dWFsRm9ybS4KKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6IFJlcGxh
Y2VkIHRoZSBmb3JtL3ZpcnR1YWxGb3JtIHBhaXIgb2YgZnVuY3Rpb25zIHdpdGgKKyAgICAgICAg
anVzdCBhIGZvcm0gZnVuY3Rpb24uIFRoZSBvbGQgZGVzaWduIGRhdGVzIGJhY2sgYmVmb3JlIHdl
IGhhZCAiZmluYWwiIGZvcgorICAgICAgICB2aXJ0dWFsIGZ1bmN0aW9ucywgYW5kIG5vdyB3ZSBj
YW4ganVzdCB1c2UgdGhhdCBpbnN0ZWFkLgorCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OnZpcnR1YWxGb3JtKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuaDogTWFyayB0aGUgZm9ybSBmdW5jdGlvbiBmaW5hbCwgc2luY2UgaXQncworICAgICAg
ICBub3cgYm90aCBhbiBpbmxpbmUgZnVuY3Rpb24gaW4gdGhpcyBjbGFzcywgYW5kIGFuIG92ZXJy
aWRlIG9mIGEgdmlydHVhbAorICAgICAgICBmdW5jdGlvbiBpbmhlcml0ZWQgZnJvbSB0aGUgYmFz
ZSBjbGFzcy4gRGVsZXRlZCB0aGUgdmlydHVhbEZvcm0gZnVuY3Rpb24uCisKKyAgICAgICAgKiBo
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6IFJlbW92ZWQgdXNlIG9mIHRoZQorICAgICAgICBm
b3JtRm9yU3VibWlzc2lvbiBmdW5jdGlvbiwgd2hpY2ggd2FzIGp1c3QgYW5vdGhlciB3YXkgdG8g
Z2V0IHRoZSBzYW1lCisgICAgICAgIHRoaW5nIGFzIHRoZSBmb3JtIGZ1bmN0aW9uOyBwZXJoYXBz
IHRoZXkgd2VyZSBkaWZmZXJlbnQgaW4gdGhlIHBhc3QuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50OjpzZXRGaWxlcyk6IFRha2UgYSBSZWZQdHImJiByYXRoZXIgdGhhbiBhIFBh
c3NSZWZQdHIuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6IFVwZGF0ZWQgZm9y
IHRoZSBhYm92ZS4KKworICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9sKTogTWFkZSB0aGlzIGNvbnN0
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTExhYmVsRWxlbWVudDo6Zm9ybSk6IE1hZGUgdGhpcyBj
b25zdCwgc28gaXQgY2FuIGJlIHVzZWQgdG8KKyAgICAgICAgb3ZlcnJpZGUgdGhlIGNvbnN0IGZv
cm0gZnVuY3Rpb24gZnJvbSB0aGUgYmFzZSBjbGFzcy4KKyAgICAgICAgKiBodG1sL0hUTUxMYWJl
bEVsZW1lbnQuaDogTWFya2VkIHRoZSBmb3JtIGZ1bmN0aW9uIGZpbmFsLCBzaW5jZSB3ZSB3YW50
IGl0CisgICAgICAgIHRvIG92ZXJyaWRlIHRoZSBmb3JtIGZ1bmN0aW9uIGluaGVyaXRlZCBmcm9t
IEhUTUxFbGVtZW50LgorCisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTGVnZW5kRWxlbWVudDo6Zm9ybSk6IFJlbmFtZWQgZnJvbSB2
aXJ0dWFsRm9ybS4KKyAgICAgICAgKiBodG1sL0hUTUxMZWdlbmRFbGVtZW50Lmg6IE92ZXJyaWRl
IGZvcm0gaW5zdGVhZCBvZiB2aXJ0dWFsRm9ybSBhbmQgbWFyayBpdCBmaW5hbAorICAgICAgICBU
aGlzIG1ha2VzIHRoaW5ncyBtb3JlIGVmZmljaWVudCBpZiBzb21lb25lIGNhbGxzIGZvcm0gZGly
ZWN0bHkgb24gdGhpcyBjbGFzczsKKyAgICAgICAgYmVmb3JlIGl0IHdvdWxkIG1ha2UgYW4gdW5u
ZWNlc3NhcnkgdmlydHVhbCBmdW5jdGlvbiBjYWxsLgorCisgICAgICAgICogaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrRGlzcGxheVVwZGF0ZVNjb3Bl
OjpUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSk6IFRha2UgYSByZWZlcmVuY2UKKyAgICAgICAgcmF0
aGVyIHRoYW4gYSBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tEaXNwbGF5VXBkYXRl
U2NvcGU6On5UcmFja0Rpc3BsYXlVcGRhdGVTY29wZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6ZXZlbnRUaW1lQ3VlQ29tcGFyZSk6IENvbXBhcmUgdGhlIGN1ZXMgdGhlIHNhbWUgd2F5IHRo
ZSBjdWUgbGlzdCB3b3VsZAorICAgICAgICByYXRoZXIgdGhhbiB1c2luZyBjdWVJbmRleC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdl
ZCk6IFRha2UgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
Ojp0ZXh0VHJhY2tNb2RlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlbW92
ZUN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRU
cmFja0FkZEN1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
dGV4dFRyYWNrUmVtb3ZlQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjptZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJhY2spOiBQYXNzIHJlZmVyZW5jZXMuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckRpZEFkZFRleHRU
cmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQ
bGF5ZXJEaWRBZGRWaWRlb1RyYWNrKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjpyZW1vdmVUZXh0VHJhY2spOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OmZvcmdldFJlc291cmNlU3BlY2lmaWNUcmFja3MpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldENvbnRyb2xsZXIpOiBUYWtlIGEg
UmVmUHRyJiYgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlh
RWxlbWVudC5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVu
dDo6dmlydHVhbEZvcm0pOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1l
bnQuaDogTWFkZSB0aGUgZm9ybSBmdW5jdGlvbiBpbmxpbmUgYW5kIGZpbmFsLCB3aGljaAorICAg
ICAgICBhY2hpZXZlcyB0aGUgc2FtZSB0aGluZyB3ZSBkaWQgYmVmb3JlIHdpdGggdXNpbmcsIGJ1
dCB3aXRob3V0IHJlcXVpcmluZyB0aGUKKyAgICAgICAgc2VwYXJhdGUgdmlydHVhbEZvcm0gZnVu
Y3Rpb24sIG5vdyBkZWxldGVkLgorCisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvbklu
bmVyVGV4dCk6IFVzZSBpc1NjcmlwdEVsZW1lbnQKKyAgICAgICAgaW5zdGVhZCBvZiB0b1Njcmlw
dEVsZW1lbnRJZlBvc3NpYmxlLgorCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6YmluZGluZ3NJbnN0YW5j
ZSk6IFJlbmFtZWQgZnJvbSBnZXRJbnN0YW5jZSBhbmQKKyAgICAgICAgY2hhbmdlZCB0aGUgcmV0
dXJuIHR5cGUgdG8gYSByYXcgcG9pbnRlci4KKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5FbGVt
ZW50Lmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZSBjaGFuZ2VzLiBBbHNvIGNoYW5nZWQgdGhlCisg
ICAgICAgIHVwZGF0ZVNuYXBzaG90IGZ1bmN0aW9uIHRvIHRha2UgYSByYXcgcG9pbnRlciBpbnN0
ZWFkIG9mIGEgUGFzc1JlZlB0ci4KKworICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVh
dGVFbGVtZW50UmVuZGVyZXIpOiBQYXNzIGEgcG9pbnRlcgorICAgICAgICB0byB1cGRhdGVTbmFw
c2hvdC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnVwZGF0ZVNu
YXBzaG90KTogVXBkYXRlZCB0byB0YWtlIGEgcmF3CisgICAgICAgIHBvaW50ZXIgaW5zdGVhZCBv
ZiBhIFBhc3NSZWZQdHIuCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg6
IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRF
bGVtZW50Lmg6IEFkZGVkIHVzaW5nIHRvIHJlc29sdmUgdGhlIGFtYmlndWl0eSB3aXRoIHRoZQor
ICAgICAgICByZWYvZGVyZWYgZnJvbSBIVE1MRWxlbWVudCBhbmQgZnJvbSBTY3JpcHRFbGVtZW50
LgorCisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0aW9uKTogUmV0
dXJuIGEgUmVmUHRyIGluc3RlYWQKKyAgICAgICAgb2YgYSBQYXNzUmVmUHRyLgorICAgICAgICAq
IGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hh
bmdlcy4KKworICAgICAgICAqIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tLaW5kQ2hhbmdlZCk6IFRha2UgYSBy
ZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tN
b2RlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6
dGV4dFRyYWNrQWRkQ3Vlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxl
bWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3Vlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUpOiBEaXR0by4KKyAgICAgICAg
KiBodG1sL0hUTUxUcmFja0VsZW1lbnQuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKwor
ICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlw
ZTo6Zm9ybUZvclN1Ym1pc3Npb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRU
eXBlOjpzZXRGaWxlcyk6IFRha2UgYSBSZWZQdHImJiBpbnN0ZWFkIG9mIGEgUGFzc1JlZlB0ci4K
KyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgor
CisgICAgICAgICogaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
bHVnaW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUpOiBQYXNzIGEgcmVm
ZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRG9jdW1lbnQ6OnNldFBsdWdpbkVsZW1l
bnQpOiBUYWtlIGEgcmVmZXJlbmNlIHJhdGhlciB0aGFuCisgICAgICAgIGEgUGFzc1JlZlB0ci4K
KyAgICAgICAgKiBodG1sL1BsdWdpbkRvY3VtZW50Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5n
ZXMuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRTdHJva2VT
dHlsZSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OnNldEZpbGxTdHlsZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKTogRGl0dG8uCisKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52
YXNTdHlsZTo6Q2FudmFzU3R5bGUpOiBSZXdyaXRlIGFsbCBjb25zdHJ1Y3RvcnMgdG8gdXNlIHRo
ZQorICAgICAgICBtX3N0eWxlIHZhcmlhbnQgaW5zdGVhZCBvZiBzZXBhcmF0ZSBtX3R5cGUgYW5k
IG90aGVyIGRhdGEgbWVtYmVycy4gQWxzbworICAgICAgICBjaGFuZ2UgZnJvbSBQYXNzUmVmUHRy
IHRvIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmNyZWF0ZUZy
b21TdHJpbmcpOiBVcGRhdGUgdG8gdXNlIHRoZSB2YXJpYW50LgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzU3R5bGU6OmNyZWF0ZUZyb21TdHJpbmdXaXRoT3ZlcnJpZGVBbHBoYSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmlzRXF1aXZhbGVudENvbG9yKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHlsZTo6aXNFcXVpdmFsZW50UkdCQSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmlzRXF1aXZhbGVudENNWUtBKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUpOiBEZWxldGVk
IGNvcHkgY29uc3RydWN0b3I7IHRoZSBjb21waWxlcgorICAgICAgICBjYW4gbm93IGdlbmVyYXRl
IGEgY29ycmVjdCBjb3B5IG9yIG1vdmUgY29uc3RydWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpD
YW52YXNTdHlsZTo6fkNhbnZhc1N0eWxlKTogRGVsZXRlZC4gQ29tcGlsZXIgZ2VuZXJhdGVzIHRo
aXMKKyAgICAgICAgcHJvcGVybHkgbm93IHdpdGhvdXQgaGVscCBmcm9tIHVzLgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzU3R5bGU6Om9wZXJhdG9yPSk6IERlbGV0ZWQuIFRoZSBjb21waWxlciBj
YW4gbm93IGdlbmVyYXRlCisgICAgICAgIGEgY29ycmVjdCBjb3B5IG9mIG1vdmUgYXNzaWdubWVu
dCBvcGVyYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjphcHBseVN0cm9rZUNv
bG9yKTogVXBkYXRlZCB0byB0YWtlIGEgcmVmZXJlbmNlIGFuZAorICAgICAgICB1c2UgdGhlIHZh
cmlhbnQuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHlsZTo6YXBwbHlGaWxsQ29sb3IpOiBE
aXR0by4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmg6IFJlZGlkIHRoaXMg
Y2xhc3MgdG8gdXNlIGEgdmFyaWFudCBpbnN0ZWFkIG9mCisgICAgICAgIGEgdHlwZSBlbnVtZXJh
dGlvbiBhbmQgYSB1bmlvbi4KKworICAgICAgICAqIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9FU1ZlcnRleEFycmF5T2JqZWN0OjpjcmVh
dGVWZXJ0ZXhBcnJheU9FUyk6IFVwZGF0ZWQgdXNlIG9mIGVudW0KKyAgICAgICAgc2luY2UgaXQn
cyBub3cgYW4gZW51bSBjbGFzcy4KKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRl
cmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dCk6IFVzZSBSZWYmJiBpbnN0ZWFkIG9mCisgICAgICAg
IFJlZlB0ciYmIGZvciB0aGUgR3JhcGhpY3NDb250ZXh0M0QuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplVmVydGV4QXJyYXlPYmplY3RzKTogVXBk
YXRlZCBlbnVtCisgICAgICAgIGFuZCBhbHNvIHVzZSByZWZlcmVuY2VzLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIp
OiBVc2UgbnVsbHB0ciB0bworICAgICAgICByZXR1cm4gbnVsbCByYXRoZXIgdGhhbiB0aGUgb2xk
IGlkaW9tIChkZWZhdWx0LWNvbnN0cnVjdGVkIFdlYkdMR2V0SW5mbykuCisgICAgICAgIChXZWJD
b3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp0ZXhTdG9yYWdlMkQpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5UGFyYW1ldGVyKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRTYW1w
bGVyUGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpnZXRTeW5jUGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtQmxvY2tQ
YXJhbWV0ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja05hbWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVZlcnRleEFycmF5KTogVXBkYXRlZCBlbnVt
IGFuZCBhbHNvCisgICAgICAgIHVzZSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24pOiBSZWFycmFuZ2VkIGxvZ2ljIGluIHRo
cmVlIHdheXM6CisgICAgICAgICgxKSBNb3ZlZCBjaGVja3MgZm9yIHdoZXRoZXIgYW4gZXh0ZW5z
aW9uIGlzIHN1cHBvcnRlZCBpbnNpZGUgdGhlIGNhc2UgZm9yIHRoYXQKKyAgICAgICAgZXh0ZW5z
aW9uLCByYXRoZXIgdGhhbiBjb21iaW5pbmcgdGhlIGV4dGVuc2lvbiBuYW1lIGNoZWNrIHdpdGgg
dGhlIGV4dGVuc2lvbnMKKyAgICAgICAgZW5hYmxlZCBjaGVjay4gKDIpIFVzZWQgdGhlIG5ldyBl
bmFibGVTdXBwb3J0ZWRFeHRlbnNpb24gZnVuY3Rpb24gdG8gc2ltcGxpZnkKKyAgICAgICAgbWFu
eSBvZiB0aGUgY2hlY2tzIHRvIGF2b2lkIHJlcGVhdGluZyB0aGUgZXh0ZW5zaW9uIG5hbWUgdHdp
Y2UuICgzKSBDaGFuZ2VkIHRoZQorICAgICAgICBpZGlvbSBzbyB3ZSBzZXQgdGhlIHBvaW50ZXJz
IHRvIG51bGxwdHIgZXhwbGljaXRseSwgcHJlcGFyaW5nIGZvciBhIGZ1dHVyZSB3aGVyZQorICAg
ICAgICB3ZSBtaWdodCBtYWtlIHRoZSBleHRlbnNpb24gcG9pbnRlcnMgdXNlIHN0ZDo6b3B0aW9u
YWwgc28gd2UgY2FuIGNhY2hlIGEgbmVnYXRpdmUKKyAgICAgICAgZm9yIGVhY2ggZXh0ZW5zaW9u
IHRvbywgbm90IGp1c3QgYSBwb3NpdGl2ZSByZXN1bHQuCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKTogVXNlIEFTQ0lJTGl0
ZXJhbC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcik6IFVzZSBudWxscHRyCisgICAgICAgIGFzIGFib3Zl
LiBGb3Igbm9uLW51bGwgdHlwZXMsIHJldHVybiB0aGUgb2JqZWN0IHdpdGhvdXQgY29udmVydGlu
ZywgbGV0dGluZyB0aGUKKyAgICAgICAgV2ViR0xBbnkgY2xhc3MgaGFuZGxlIHRoaW5ncywgZXhj
ZXB0IGZvciBlbnVtZXJhdGlvbnMsIHdoaWNoIHdlIG5lZWQgdG8gZXhwbGljaXRseQorICAgICAg
ICBzdGF0aWNfY2FzdCB0byBhbiBpbnRlZ3JhbCB0eXBlLCBhbmQgdGhpbmdzIHRoYXQgd2lsbCBi
ZSBzdG9yZWQgaW4gdGhlIHZhcmlhbnQgaW4KKyAgICAgICAgYSBSZWZQdHIsIHdoZXJlIHdlIHVz
ZSBtYWtlUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
dmFsaWRhdGVGcmFtZWJ1ZmZlckZ1bmNQYXJhbWV0ZXJzKToKKyAgICAgICAgU2ltcGxpZmllZCBh
bmQgY2xhcmlmaWVkIHRoZSBoYW5kbGluZyBvZiBDT0xPUl9BVFRBQ0hNRU5ULgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKTogUmV0dXJuIFdl
YkdMQW55LCBzYW1lIGlkaW9tIGFzCisgICAgICAgIGRlc2NyaWJlZCBhYm92ZSBmb3IgZ2V0RnJh
bWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMQW55LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0
b0pTKTogSGFuZGxlcyBjb252ZXJzaW9uIHRvIEphdmFTY3JpcHQgdHlwZXMuIFRoaXMgZnVuY3Rp
b24gaXMgYmFzZWQKKyAgICAgICAgb24gdGhlIGV4aXN0aW5nIHRvSlMgZnVuY3Rpb25zIGZyb20g
dGhlIHR3byBjbGFzc2VzIHRoYXQgd2VyZSB1c2luZyBXZWJHTEdldEluZm8uCisgICAgICAgIEV2
ZW50dWFsbHkgd2UgY2FuIHByb2JhYmx5IGp1c3QgZ2V0IHRoZSBiaW5kaW5ncyB0byBhdXRvbWF0
aWNhbGx5IGdlbmVyYXRlIHRoaXMsCisgICAgICAgIGJ1dCB0aGVyZSBpcyBzb21lIHdvcmsgdG8g
ZG8gdG8gZ2V0IHRvIHRoYXQgcG9pbnQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xBbnku
aDogQWRkZWQuIFRoaXMgdHlwZSwgYSB2YXJpYW50LCByZXBsYWNlcyB0aGUgV2ViR0xHZXRJbmZv
CisgICAgICAgIGNsYXNzLiBBbHNvIGluY2x1ZGVzIHRoZSB0b0pTIGZ1bmN0aW9uLCB3aGljaCBp
cyB0aGUgcmVhbCBwb2ludCBvZiB0aGlzIHR5cGUsIHNpbmNlCisgICAgICAgIGl0J3MgYWJvdXQg
cmV0dXJuaW5nIGEgdmFyaWFudCBtYXBwZWQgYXBwcm9wcmlhdGVseSB0byBKYXZhU2NyaXB0IHR5
cGVzLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0R3JvdXA6OmdldEFHcmFwaGljc0NvbnRleHQzRCk6
IENoYW5nZWQgdG8gcmV0dXJuIGEgcmVmZXJlbmNlLgorICAgICAgICBEcm9wZWQgdW5uZWNlc3Nh
cnkgbG9jYWwgdmFyaWFibGUgd2l0aCBhIGxvbmcgdHlwZSBuYW1lLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xDb250ZXh0R3JvdXA6OmFkZENvbnRleHQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0R3JvdXA6OnJlbW92ZUNvbnRleHQpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjpyZW1vdmVPYmplY3QpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjphZGRPYmplY3QpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjpkZXRhY2hBbmRSZW1vdmVB
bGxPYmplY3RzKTogRHJvcHBlZCB1bm5lY2Vzc2FyeQorICAgICAgICBsb2NhbCB2YXJpYWJsZSB3
aXRoIGEgbG9uZyB0eXBlIG5hbWUuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
R3JvdXAuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRl
eHRPYmplY3Q6On5XZWJHTENvbnRleHRPYmplY3QpOiBQYXNzIHJlZmVyZW5jZXMuCisgICAgICAg
IChXZWJDb3JlOjpXZWJHTENvbnRleHRPYmplY3Q6OmRldGFjaENvbnRleHQpOiBEaXR0by4KKwor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmg6IFJlbW92ZWQuCisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQpOiBUYWtlIGEgUmVmJiYg
aW5zdGVhZAorICAgICAgICBvZiBhcyBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplVmVydGV4QXJyYXlPYmplY3RzKTogVXBkYXRl
ZCBlbnVtCisgICAgICAgIGFuZCBhbHNvIHVzZSByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24pOiBSZWFycmFuZ2VkIGxvZ2lj
IGluIHRocmVlIHdheXM6CisgICAgICAgICgxKSBNb3ZlZCBjaGVja3MgZm9yIHdoZXRoZXIgYW4g
ZXh0ZW5zaW9uIGlzIHN1cHBvcnRlZCBpbnNpZGUgdGhlIGNhc2UgZm9yIHRoYXQKKyAgICAgICAg
ZXh0ZW5zaW9uLCByYXRoZXIgdGhhbiBjb21iaW5pbmcgdGhlIGV4dGVuc2lvbiBuYW1lIGNoZWNr
IHdpdGggdGhlIGV4dGVuc2lvbnMKKyAgICAgICAgZW5hYmxlZCBjaGVjay4gKDIpIFVzZWQgdGhl
IG5ldyBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24gZnVuY3Rpb24gdG8gc2ltcGxpZnkKKyAgICAg
ICAgbWFueSBvZiB0aGUgY2hlY2tzIHRvIGF2b2lkIHJlcGVhdGluZyB0aGUgZXh0ZW5zaW9uIG5h
bWUgdHdpY2UuICgzKSBDaGFuZ2VkIHRoZQorICAgICAgICBpZGlvbSBzbyB3ZSBzZXQgdGhlIHBv
aW50ZXJzIHRvIG51bGxwdHIgZXhwbGljaXRseSwgcHJlcGFyaW5nIGZvciBhIGZ1dHVyZSB3aGVy
ZQorICAgICAgICB3ZSBtaWdodCBtYWtlIHRoZSBleHRlbnNpb24gcG9pbnRlcnMgdXNlIHN0ZDo6
b3B0aW9uYWwgc28gd2UgY2FuIGNhY2hlIGEgbmVnYXRpdmUKKyAgICAgICAgZm9yIGVhY2ggZXh0
ZW5zaW9uIHRvbywgbm90IGp1c3QgYSBwb3NpdGl2ZSByZXN1bHQuCisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnMpOiBVc2UgQVND
SUlMaXRlcmFsLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIpOiBVc2UgbnVsbHB0cgorICAgICAgICBhcyBh
Ym92ZS4gRm9yIG5vbi1udWxsIHR5cGVzLCByZXR1cm4gdGhlIG9iamVjdCB3aXRob3V0IGNvbnZl
cnRpbmcsIGxldHRpbmcgdGhlCisgICAgICAgIFdlYkdMQW55IGNsYXNzIGhhbmRsZSB0aGluZ3Ms
IGV4Y2VwdCBmb3IgZW51bWVyYXRpb25zLCB3aGljaCB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkKKyAg
ICAgICAgc3RhdGljX2Nhc3QgdG8gYW4gaW50ZWdyYWwgdHlwZSwgYW5kIHRoaW5ncyB0aGF0IHdp
bGwgYmUgc3RvcmVkIGluIHRoZSB2YXJpYW50IGluCisgICAgICAgIGEgUmVmUHRyLCB3aGVyZSB3
ZSB1c2UgbWFrZVJlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dDo6dmFsaWRhdGVGcmFtZWJ1ZmZlckZ1bmNQYXJhbWV0ZXJzKToKKyAgICAgICAgU2ltcGxpZmll
ZCBhbmQgY2xhcmlmaWVkIHRoZSBoYW5kbGluZyBvZiBDT0xPUl9BVFRBQ0hNRU5UIGFkZGluZyBh
IEZJWE1FIGFib3V0CisgICAgICAgIHNvbWV0aGluZyBxdWVzdGlvbmFibGUuCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcik6IFJldHVybiBXZWJH
TEFueSwgc2FtZSBpZGlvbSBhcworICAgICAgICBkZXNjcmliZWQgYWJvdmUgZm9yIGdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlci4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKTogVXBkYXRlZCB0byBwYXNz
IHJlZmVyZW5jZXMKKyAgICAgICAgaW5zdGVhZCBvZiBwb2ludGVycyBpbiBhIGNvdXBsZSBjYXNl
cworICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSk6IENoYW5nZWQgZ3JhcGhpY3MKKyAgICAgICAgY29udGV4dCBhcmd1
bWVudCB0eXBlIGZyb20gUmVmUHRyJiYgdG8gUmVmJiYuIEFsc28gbW92ZWQgaW5pdGlhbGl6YXRp
b24gb2Ygc2NhbGFycworICAgICAgICBmcm9tIHRoZSBjb25zdHJ1Y3RvciB0byB0aGUgY2xhc3Mg
ZGVmaW5pdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
On5XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZUJ1ZmZlcik6IFBhc3Mg
YSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVGcmFtZWJ1ZmZlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlVGV4dHVyZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRl
UHJvZ3JhbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6Y3JlYXRlUmVuZGVyYnVmZmVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVTaGFkZXIpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZUJ1ZmZlcik6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVyUGFy
YW1ldGVyKTogVXBkYXRlIHRvIHVzZSBXZWJHTEFueS4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJhbWV0ZXIpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRlcmJ1ZmZlclBh
cmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6Z2V0U2hhZGVyUGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0pOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0
dHJpYik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Z2V0VmVydGV4QXR0cmliT2Zmc2V0KTogUmVtb3ZlZCB1bm5uZWVkCisgICAgICAgIHR5cGUg
Y2FzdHMuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0
ZXhBdHRyaWJQb2ludGVyKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlbW92ZVNoYXJlZE9iamVjdCk6IFRha2UgYSByZWZl
cmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphZGRT
aGFyZWRPYmplY3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OnJlbW92ZUNvbnRleHRPYmplY3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZENvbnRleHRPYmplY3QpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJvb2xlYW5QYXJh
bWV0ZXIpOiBDaGFuZ2VkIHJldHVybiB0eXBlOworICAgICAgICBjb25udmVyc2lvbiB0byBXZWJH
TEFueSBjYW4gaGFwcGVuIGF0IHRoZSBwb2ludCBvZiB1c2UuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEZsb2F0
UGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRJbnRQYXJhbWV0ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuc2lnbmVkSW50UGFyYW1ldGVyKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRJbnQ2NFBhcmFt
ZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Z2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxp
ZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0ZXJzKTogVXNlCisgICAgICAgIG9wdGlvbmFsIHRvIHNpbXBs
aWZ5IGxvZ2ljIGFuZCBnZXQgcmlkIG9mIGEgYm9vbGVhbi4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbik6IEFkZGVk
LgorICAgICAgICBIZWxwZXIgdXNlZCBieSB0aGUgZ2V0RXh0ZW5zaW9uIGZ1bmN0aW9ucy4KKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZSBjaGFuZ2VzLgorICAgICAgICBBbHNvIGNoYW5nZWQgc2V0Qm91bmRWZXJ0
ZXhBcnJheU9iamVjdCB0byB0YWtlIGEgcmF3IHBvaW50ZXIgaW5zdGVhZCBvZgorICAgICAgICBh
cyBQYXNzUmVmUHRyLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTaGFyZWRPYmplY3Q6On5XZWJHTFNoYXJlZE9i
amVjdCk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYXJlZE9i
amVjdDo6ZGV0YWNoQ29udGV4dEdyb3VwKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFNoYXJlZE9iamVjdDo6Z2V0QUdyYXBoaWNzQ29udGV4dDNEKTogVXBkYXRlZCBzaW5jZSB0aGUK
KyAgICAgICAgdW5kZXJseWluZyBnZXRBR3JhcGhpY3NDb250ZXh0M0QgZnVuY3Rpb24gbm93IHJl
dHVybnMgYSByZWZlcmVuY2UuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9i
amVjdC5oOiBSZW1vdmVkIG1hbnkgdW51c2VkICJpcyIgdmlydHVhbCBmdW5jdGlvbnMuCisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oOiBEaXR0by4KKworICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlKTogVXBkYXRlZCBmb3IgbmV3
IHR5cGUgZW51bWVyYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFZlcnRleEFycmF5T2JqZWN0OjpkZWxldGVPYmplY3RJbXBsKTogRGl0dG8uCisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oOiBVcGRhdGVkIGZvciBhYm92
ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6
OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKTogVXBkYXRlZCBmb3IgbmV3CisgICAgICAgIHR5
cGUgZW51bWVyYXRpb24gYW5kIG1vdmVkIGluaXRpYWxpemF0aW9uIHRvIGNsYXNzIGRlZmluaXRp
b24uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0RWxl
bWVudEFycmF5QnVmZmVyKTogQ2hhbmdlZCBhcmd1bWVudCB0bworICAgICAgICByYXcgcG9pbnRl
ciBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFy
cmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4QXR0cmliU3RhdGUpOiBDaGFuZ2VkIGFyZ3VtZW50IHRv
CisgICAgICAgIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKTogQ2hhbmdlZCBh
cnVnbWVudCB0eXBlIHRvCisgICAgICAgIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIu
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4
QXR0cmliRGl2aXNvcik6IFJlbW92ZWQgdW5uZWVkZWQKKyAgICAgICAgbG9jYWwgdmFyaWFibGUu
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaDogVXBk
YXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKyAgICAgICAgUmVwbGFjZWQgVkFPVHlwZSB3aXRoIFR5
cGUuIFVzZWQgY2xhc3MgbWVtYmVyIGluaXRpYWxpemF0aW9uLgorCisgICAgICAgICogaHRtbC9j
YW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUpOiBVcGRhdGVkIGZvciBuZXcgdHlwZSBl
bnVtZXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6
OldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVM6On5XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKSBEaXR0
by46CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpkZWxldGVP
YmplY3RJbXBsKTogRGl0dG8uCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdE9FUy5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRt
bC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSWNvbkxv
YWRlcjo6aWNvbkxvYWRlZCk6IFJlbmFtZWQgZnJvbSBub3RpZnlGaW5pc2hlZC4gQWxzbyBjaGFu
Z2VkCisgICAgICAgIHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiB0aGlzIGNhbGxzIHRvIGljb25M
b2FkZWQuIENoYW5nZWQgdGhlIGFyZ3VlbW50IHRvCisgICAgICAgIFJlZlB0ciYmIGluc3RlYWQg
b2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBodG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmg6IFVw
ZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MQ29u
c3RydWN0aW9uU2l0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3RydWN0aW9uU2l0
ZTo6YXR0YWNoTGF0ZXIpOiBVc2UgaXNTY3JpcHRFbGVtZW50IGluc3RlYWQgb2YKKyAgICAgICAg
dG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1
Y3Rpb25TaXRlOjppbnNlcnRGb3JlaWduRWxlbWVudCk6IERpdHRvLgorCisgICAgICAgICogaHRt
bC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxE
b2N1bWVudFBhcnNlcjo6cnVuU2NyaXB0c0ZvclBhdXNlZFRyZWVCdWlsZGVyKTogUGFzcyBzY3Jp
cHQKKyAgICAgICAgZWxlbWVudCBhcyBhIFJlZiByYXRoZXIgdGhhbiBSZWZQdHIuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OndhdGNoRm9yTG9hZCk6IFBhc3MgYSByZWZl
cmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1M
U2NyaXB0UnVubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OmV4
ZWN1dGVQYXJzaW5nQmxvY2tpbmdTY3JpcHQpOiBEZWxldGVkLiBNb3ZlZCB0aGUgY29kZQorICAg
ICAgICBpbnRvIHRoZSBzaW5nbGUgY2FsbCBzaXRlLCBleGVjdXRlIFBhcnNpbmdCbG9ja2luZ1Nj
cmlwdHMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlUGVuZGlu
Z1NjcmlwdEFuZERpc3BhdGNoRXZlbnQpOiBDaGFuZ2VkIGFyZ3VtZW50CisgICAgICAgIHR5cGUg
dG8gYSByZWZlcmVuY2UgZnJvbSBhIFJlZlB0cjsgdGhpcyBmdW50aW9uIHdhcyBub3QgdGFraW5n
IG93bmVyc2hpcC4gQWxzbyByZW1vdmUKKyAgICAgICAgY2FsbCB0byB0b1NjcmlwdEVsZW1lbnRJ
ZlBvc3NpYmxlLAorICAgICAgICBzaW5jZSBwZW5kaW5nIHNjcmlwdHMgbm93IGNvbnRhaW5zIHNj
cmlwdCBlbGVtZW50cyBhbHJlYWR5LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdFJ1bm5l
cjo6ZXhlY3V0ZSk6IENoYW5nZWQgYXJndW1lbnQgdHlwZSB0byBSZWY8U2NyaXB0RWxlbWVudD4m
JgorICAgICAgICBmcm9tIFBhc3NSZWZQdHI8RWxlbWVudD4uCisgICAgICAgIChXZWJDb3JlOjpI
VE1MU2NyaXB0UnVubmVyOjpleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0cyk6IE1vdmVkIGNv
ZGUgaGVyZSBmcm9tCisgICAgICAgIGV4ZWN1dGVQYXJzaW5nQmxvY2tpbmdTY3JpcHQuIEFsc28g
cGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OmV4
ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclBhcnNpbmcpOiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAg
ICAoV2ViQ29yZTo6cmVxdWVzdFBlbmRpbmdTY3JpcHQpOiBDaGFuZ2VkIGFyZ3VtZW50IHR5cGUg
dG8gU2NyaXB0RWxlbWVudCYgZnJvbQorICAgICAgICBFbGVtZW50Ki4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3REZWZlcnJlZFNj
cmlwdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdFJ1bm5lcjo6cnVuU2Ny
aXB0KTogRGl0dG8uCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5oOiBV
cGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRy
ZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6dGFrZVNj
cmlwdFRvUHJvY2Vzcyk6IENoYW5nZWQgcmV0dXJuIHR5cGUgZnJvbQorICAgICAgICBSZWZQdHI8
RWxlbWVudD4gdG8gUmVmUHRyPFNjcmlwdEVsZW1lbnQ+LgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKTogRG93bmNhc3QgdGhlIHNjcmlwdCBlbGVtZW50
IHRvCisgICAgICAgIEhUTUxTY3JpcHRFbGVtZW50IHNvIHdlIGNhbiBzdG9yZSBpdCBhcyBhIFNj
cmlwdEVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NU
b2tlbkluRm9yZWlnbkNvbnRlbnQpOiBEb3duY2FzdCB0aGUgc2NyaXB0CisgICAgICAgIGVsZW1l
bnQgdG8gU1ZHU2NyaXB0RWxlbWVudCBzbyB3ZSBjYW4gc3RvcmUgaXQgYXMgYSBzY3JpcHQgZWxl
bWVudC4KKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaDogVXBkYXRlZCBm
b3IgYWJvdmUgY2hhbmdlcy4gQ2hhbmdlZCB0aGUgdHlwZQorICAgICAgICBvZiBtX3NjcmlwdFRv
UHJvY2VzcyB0byBSZWZQdHI8U2NyaXB0RWxlbWVudD4uCisKKyAgICAgICAgKiBodG1sL3BhcnNl
ci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwOiBBZGRlZCBub3ctbmVlZGVkIGluY2x1ZGUuCisKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6WFNTQXVkaXRvckRlbGVnYXRlOjpnZW5lcmF0ZVZpb2xhdGlvblJlcG9ydCk6IENoYW5n
ZWQgcmV0dXJuIHR5cGUKKyAgICAgICAgdG8gUmVmIGZyb20gUGFzc1JlZlB0ci4KKyAgICAgICAg
KiBodG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuaDogVXBkYXRlZCBmb3IgYWJvdmUuCisK
KyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9UcmFjazo6QXVkaW9UcmFjayk6IFRha2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvVHJhY2s6OnNldFByaXZhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvVHJhY2s6OnNldEVuYWJsZWQpOiBSZW1vdmVkIHJlZHVuZGFudCBjb2RlIHRvIGRvIHdoYXQg
dGhlCisgICAgICAgIHByaXZhdGUgc2V0RW5hYmxlZCBmdW5jdGlvbiBpcyBhbHJlYWR5IGdvaW5n
IHRvIGRvLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6aW5iYW5kVHJhY2tJbmRleCk6
IFJlbW92ZWQgYXNzZXJ0aW9uIHNpbmNlIG1fcHJpdmF0ZQorICAgICAgICBpcyBub3cgYSBSZWYg
cmF0aGVyIHRoYW4gUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6ZW5hYmxl
ZENoYW5nZWQpOiBBZGRlZCBhbiBlYXJseSBleGl0IHNvIHdlIHdpbGwgb25seQorICAgICAgICBj
YWxsIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCBpZiBtX2VuYWJsZWQgaXMgYWN0dWFsbHkgY2hh
bmdpbmcuIEFsc28gcmVtb3ZlZAorICAgICAgICB0aGUgdW5uZWVkZWQgdHJhY2sgcHJpdmF0ZSBh
cmd1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmlkQ2hhbmdlZCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6bGFiZWxDaGFuZ2VkKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OndpbGxSZW1vdmUpOiBEaXR0by4KKyAgICAgICAg
KiBodG1sL3RyYWNrL0F1ZGlvVHJhY2suaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKwor
ICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKTogUmVtb3ZlZCBpbmJhbmQg
dGV4dCB0cmFjayBwcml2YXRlCisgICAgICAgIGFyZ3VtZW50LiBVc2UgY29udGFpbnMgaW5zdGVh
ZCBvZiBmaW5kL2VuZC4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZERhdGFUZXh0VHJhY2s6OnVw
ZGF0ZURhdGFDdWUpOiBEaXR0by4gVXNlIGdldCBpbnN0ZWFkIG9mIGZpbmQvZW5kLgorICAgICAg
ICAoV2ViQ29yZTo6SW5iYW5kRGF0YVRleHRUcmFjazo6cmVtb3ZlRGF0YUN1ZSk6IERpdHRvLgor
ICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oOiBVcGRhdGVkIGZvciBh
Ym92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRy
YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OkluYmFu
ZEdlbmVyaWNUZXh0VHJhY2spOiBUYWtlIHJlZmVyZW5jZXMuCisgICAgICAgIChXZWJDb3JlOjpJ
bmJhbmRHZW5lcmljVGV4dFRyYWNrOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnVwZGF0ZUN1ZUZyb21DdWVEYXRhKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjphZGRHZW5lcmljQ3VlKTog
RGl0dG8uIEFsc28gcmVtb3ZlZCB1bnVzZWQKKyAgICAgICAgdHJhY2sgcHJpdmF0ZSBhcmd1bWVu
dC4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnVwZGF0ZUdlbmVy
aWNDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6
OnJlbW92ZUdlbmVyaWNDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZEdlbmVy
aWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3VlRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cGFyc2VXZWJWVFRGaWxlSGVhZGVyKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpuZXdSZWdpb25zUGFy
c2VkKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZEdlbmVy
aWNUZXh0VHJhY2suaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0
bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRl
eHRUcmFjazo6Y3JlYXRlKTogUmV0dXJuIGEgUmVmIGluc3RlYWQgb2YgYSBQYXNzUmVmUHRyLiBU
YWtlCisgICAgICAgIHJlZmVyZW5jZXMuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJh
Y2s6OkluYmFuZFRleHRUcmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4
dFRyYWNrOjpzZXRQcml2YXRlKTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgUGFzc1Jl
ZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6aXNDbG9zZWRDYXB0aW9u
cyk6IFJlbW92ZWQgY2hlY2sgZm9yIG51bGwgc2luY2UgbV9wcml2YXRlCisgICAgICAgIGlzIG5v
dyBhIFJlZiBhbmQgc28gbmV2ZXIgbnVsbC4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRU
cmFjazo6aXNTREgpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6
Y29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJ
bmJhbmRUZXh0VHJhY2s6OmlzTWFpblByb2dyYW1Db250ZW50KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OmlzRWFzeVRvUmVhZCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjppbmJhbmRUcmFja0luZGV4KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OmluQmFuZE1ldGFkYXRhVHJhY2tEaXNwYXRj
aFR5cGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6aWRDaGFu
Z2VkKTogUmVtb3ZlZCB1bm5lZWRlZCB0cmFjayBwcml2YXRlIGFyZ3VtZW50LgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjpsYWJlbENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OndpbGxSZW1vdmUpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKTogSW1w
cm92ZWQgc3dpdGNoIHN0YXRlbWVudAorICAgICAgICBieSByZW1vdmluZyBkZWZhdWx0IHNvIHdl
IGdldCBhIHdhcm5pbmcgaWYgd2UgZm9yZ2V0IHRvIGhhbmRsZSBhIGtpbmQgdmFsdWUuCisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OnN0YXJ0VGltZVZhcmlhbmNlKTogUmVtb3Zl
ZCBjaGVjayBmb3IgbnVsbC4KKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5o
OiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLiBDaGFuZ2VkIG1fcHJpdmF0ZSBmcm9tCisgICAg
ICAgIGEgUmVmUHRyIHRvIGEgUmVmLgorCisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRXZWJW
VFRUZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kV2ViVlRUVGV4dFRyYWNr
OjpJbmJhbmRXZWJWVFRUZXh0VHJhY2spOiBUYWtlIHJlZmVyZW5jZXMuCisgICAgICAgIChXZWJD
b3JlOjpJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6SW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURhdGEpOiBSZW1vdmVk
IHVubmVlZGVkIHRyYWNrCisgICAgICAgIHByaXZhdGUgYXJndWVtbnQuCisgICAgICAgIChXZWJD
b3JlOjpJbmJhbmRXZWJWVFRUZXh0VHJhY2s6Om5ld1JlZ2lvbnNQYXJzZWQpOiBQYXNzIGEgcmVm
ZXJlbmNlLgorICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmg6IFVw
ZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL3RyYWNrL0xvYWRhYmxl
VGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRhYmxlVGV4dFRyYWNrOjpuZXdD
dWVzQXZhaWxhYmxlKTogUGFzcyByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29yZTo6TG9hZGFi
bGVUZXh0VHJhY2s6Om5ld1JlZ2lvbnNBdmFpbGFibGUpOiBEaXR0by4KKworICAgICAgICAqIGh0
bWwvdHJhY2svVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6flRl
eHRUcmFjayk6IFVzZSByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpz
ZXRLaW5kKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OnNldE1vZGUpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6cmVtb3ZlQWxsQ3Vlcyk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjphY3RpdmVDdWVzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OmFkZEN1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dFRyYWNrOjpyZW1vdmVDdWUpOiBSZW1vdmVkIHVubmVlZGVkIGNvZGUgdG8gaGFuZGxl
IGEgY3VlCisgICAgICAgIHRoYXQgcG9pbnRzIHRvIGEgdHJhY2sgYnV0IGlzIG5vdCBpbiB0aGF0
IHRyYWNrLiBBZGRlZCBhIGNhbGwgdG8KKyAgICAgICAgc2V0SXNBY3RpdmUoZmFsc2UpIGhlcmUg
aW5zdGVhZCBvZiBoYXZpbmcgdGhlIHJlbW92ZSBmdW5jdGlvbiBkbyBpdC4KKyAgICAgICAgKFdl
YkNvcmU6OlRleHRUcmFjazo6YWRkUmVnaW9uKTogVXNlIHJlZmVyZW5jZXMuCisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2s6OnJlbW92ZVJlZ2lvbik6IFJlbW92ZWQgdW5uZWVkZWQgY29kZSB0
byBoYW5kbGUgYQorICAgICAgICByZWdpb24gdGhhdCBwb2ludHMgdG8gYSB0cmFjayBidXQgaXMg
bm90IGluIHRoYXQgdHJhY2suCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OmN1ZVdpbGxD
aGFuZ2UpOiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6Y3Vl
RGlkQ2hhbmdlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OnNldExhbmd1
YWdlKTogRGl0dG8uCisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suaDogVXBkYXRlZCBm
b3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3VlKTogSW5pdGlh
bGl6ZWQgdGhlIGRhdGEgbWVtYmVycworICAgICAgICBpbiB0aGUgY2xhc3MgZGVmaW5pdGlvbi4K
KyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6Y3VlSW5kZXgpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjppbnZhbGlkYXRlQ3VlSW5kZXgpOiBEZWxldGVk
LgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmg6IFVwZGF0ZWQgZm9yIHRoZSBh
Ym92ZS4gUmVtb3ZlZCBtX2N1ZUluZGV4LAorICAgICAgICBiZWNhdXNlIGl0IGlzIG5vdCBhIGdv
b2QgZGVzaWduIHRvIHN0b3JlIHRoZXNlIGFuZCB0cnkgdG8ga2VlcCB0aGVtIHVwCisgICAgICAg
IHRvIGRhdGUuCisKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y29tcGFyZUN1ZXMpOiBBZGRlZC4gSGVscGVyIGZvciBzb3J0aW5n
IGFuZCBjaGVja2luZyBzb3J0aW5nLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlTGlz
dDo6VGV4dFRyYWNrQ3VlTGlzdCk6IERlbGV0ZWQuIExldCB0aGUgY29tcGlsZXIKKyAgICAgICAg
Z2VuZXJhdGUgdGhpcy4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6Omxlbmd0
aCk6IE1vdmVkIHRvIGhlYWRlci4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6
OmN1ZUluZGV4KTogUmVuYW1lZCBmcm9tIGdldEN1ZUluZGV4LgorICAgICAgICBDaGFuZ2VkIHJl
dHVybiB0eXBlIHRvIHVuc2lnbmVkIHJhdGhlciB0aGFuIHVuc2lnbmVkIGxvbmcuCisgICAgICAg
IChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjppdGVtKTogVXBkYXRlZCBmb3IgbmFtZSBjaGFu
Z2UuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjpnZXRDdWVCeUlkKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjphY3RpdmVDdWVzKTogQnVp
bGQgdGhlIHZlY3RvciBkaXJlY3RseQorICAgICAgICByYXRoZXIgdGhhbiB3YXN0ZWZ1bGx5IGFk
ZGluZyB3aXRoIFRleHRUcmFja0N1ZUxpc3Q6OmFkZCwgd2hpY2ggd2lsbAorICAgICAgICB0cnkg
dG8gc29ydC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6OmFkZCk6IFRha2Ug
YSBSZWYmJiBpbnN0ZWFkIG9mIGEgUGFzc1JlZlB0ci4KKyAgICAgICAgQWxzbywga2VlcCBzb3J0
ZWQgdXNpbmcgc3RkOjp1cHBlcl9ib3VuZCBpbnN0ZWFkIG9mIHRoZSByZWN1cnNpdmUKKyAgICAg
ICAgYmluYXJ5IHNlYXJjaCB0aGlzIGNvZGUgd2FzIHVzaW5nIGJlZm9yZS4gQWxzbyByZW1vdmUg
dGhlCisgICAgICAgIGludmFsaWRhdGVDdWVJbmRleGVzIGNhbGwgc2luY2UgdGhlcmUgYXJlIG5v
IGN1ZSBpbmRpY2VzIGFueSBtb3JlLgorICAgICAgICBBbHNvIHJlbW92ZSB0aGUgYm9vbGVhbiBy
ZXR1cm4gdmFsdWUgc2luY2Ugbm8gY2FsbGVyIHdhcyB1c2luZyBpdC4KKyAgICAgICAgKFdlYkNv
cmU6OlRleHRUcmFja0N1ZUxpc3Q6OnJlbW92ZSk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBv
ZiBhCisgICAgICAgIHBvaW50ZXIuIEFsc28gcmVtb3ZlIHRoZSBib29sZWFuIHJldHVybiB2YWx1
ZSBzaW5jZSBubyBjYWxsZXIgd2FzIHVzaW5nIGl0LgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRy
YWNrQ3VlTGlzdDo6Y29udGFpbnMpOiBEZWxldGVkLiBXYXMgdW51c2VkLgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dFRyYWNrQ3VlTGlzdDo6dXBkYXRlQ3VlSW5kZXgpOiBSZWltcGxlbWVudGVkIHVz
aW5nIHRoZQorICAgICAgICBzdGQ6OnVwcGVyX2JvdW5kIGFuZCBzdGQ6OnJvdGF0ZSBvcGVyYXRp
b25zLiBUaGUgb2xkIGNvZGUgdGhhdCB1c2VkCisgICAgICAgIHJlbW92ZSBhbmQgYWRkIHdhcyBp
bmVmZmljaWVudCBhbmQgYWxzbyBjb3VsZCBjYXVzZSBhIGN1ZSB0byBiZSBkZWFsbG9jYXRlZAor
ICAgICAgICBpZiBzb21ldGhpbmcgZWxzZSB3YXNuJ3QgaG9sZGluZyBhIHJlZmVyZW5jZSB0byB0
aGUgY3VlLiBBbHNvIGNoYW5nZWQgdG8gdGFrZQorICAgICAgICBhIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6OmNsZWFyKTogRGVsZXRlZC4gV2FzIHVudXNl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6OmludmFsaWRhdGVDdWVJbmRl
eGVzKTogRGVsZXRlZC4gTm8gbG9uZ2VyCisgICAgICAgIG5lZWRlZCBzaW5jZSB3ZSBkb24ndCBz
dG9yZSBjdWUgaW5kaWNlcyBpbiB0aGUgY3VlcyBhbnkgbW9yZS4KKyAgICAgICAgKiBodG1sL3Ry
YWNrL1RleHRUcmFja0N1ZUxpc3QuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlIGNoYW5nZXMuCisK
KyAgICAgICAgKiBodG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VlRUUmVnaW9uTGlzdDo6VlRUUmVnaW9uTGlzdCk6IERlbGV0ZWQuIExldCB0aGUgY29tcGls
ZXIKKyAgICAgICAgZ2VuZXJhdGUgdGhpcy4KKyAgICAgICAgKFdlYkNvcmU6OlZUVFJlZ2lvbkxp
c3Q6Omxlbmd0aCk6IE1vdmVkIHRvIGhlYWRlci4KKyAgICAgICAgKFdlYkNvcmU6OlZUVFJlZ2lv
bkxpc3Q6Oml0ZW0pOiBVcGRhdGVkIGZvciBuYW1lIGFuZCB0eXBlIGNoYW5nZXMuCisgICAgICAg
IChXZWJDb3JlOjpWVFRSZWdpb25MaXN0OjpnZXRSZWdpb25CeUlkKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpWVFRSZWdpb25MaXN0OjphZGQpOiBDaGFuZ2VkIHRvIHRha2UgYSBSZWYmJiBp
bnN0ZWFkIG9mIGEKKyAgICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlZUVFJl
Z2lvbkxpc3Q6OnJlbW92ZSk6IFVwZGF0ZWQuCisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb25M
aXN0OjpjbGVhcik6IERlbGV0ZWQuIFdhcyB1bnVzZWQuCisgICAgICAgICogaHRtbC90cmFjay9W
VFRSZWdpb25MaXN0Lmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZSBjaGFuZ2VzLgorICAgICAgICAq
IGh0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5pZGw6IE1hZGUgcmV0dXJuIHZhbHVlcyBudWxsYWJs
ZSB0byByZWZsZWN0CisgICAgICAgIHRoZSBhY3R1YWwgc2VtYW50aWMgb2YgdGhlIGNvZGUuCisK
KyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9UcmFjazo6VmlkZW9UcmFjayk6IFVzZSByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9UcmFjazo6c2V0UHJpdmF0ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9UcmFjazo6c2V0U2VsZWN0ZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJh
Y2s6OmluYmFuZFRyYWNrSW5kZXgpOiBSZW1vdmVkIGFzc2VydGlvbiBzaW5jZSBtX3ByaXZhdGUK
KyAgICAgICAgaXMgbm93IGEgUmVmIGluc3RlYWQgb2YgYSBSZWZQdHIuCisgICAgICAgIChXZWJD
b3JlOjpWaWRlb1RyYWNrOjpzZWxlY3RlZENoYW5nZWQpOiBSZW1vdmVkIHVubmVlZGVkIHRyYWNr
IHByaXZhdGUgYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjppZENoYW5n
ZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OmxhYmVsQ2hhbmdlZCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjp3aWxsUmVtb3ZlKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpzZXRLaW5kKTogVXBkYXRlZCB0byB1c2Ug
cmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6c2V0TGFuZ3VhZ2UpOiBE
aXR0by4KKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2suaDogVXBkYXRlZCBmb3IgdGhl
IGFib3ZlLiBDaGFuZ2VkIGRlcml2YXRpb24gdG8gcHJpdmF0ZS4KKyAgICAgICAgUmVtb3ZlZCB1
bm5lZWRlZCBkZWZhdWx0S2luZEtleXdvcmQuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGll
bnRzLmg6IFVwZGF0ZWQgdG8gdXNlIHJlZmVyZW5jZS4KKworICAgICAgICAqIGxvYWRlci9QaW5n
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25S
ZXBvcnQpOiBUYWtlIGEgUmVmJiYgaW5zdGVhZCBvZiBSZWZQdHImJi4KKyAgICAgICAgKiBsb2Fk
ZXIvUGluZ0xvYWRlci5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2UuCisKKyAgICAgICAgKiBw
YWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmxvYWRJY29uRm9yRmls
ZXMpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6IFVwZGF0ZWQg
Zm9yIGFib3ZlIGNoYW5nZS4KKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOiBEaXR0by4K
KworICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFZpb2xhdGlvbik6IFVzZSBh
dXRvLgorCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxN
ZWRpYUVsZW1lbnQubW06CisgICAgICAgIChXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxl
bWVudDo6c2VsZWN0QXVkaW9NZWRpYU9wdGlvbik6IFNpbXBsaWZpZWQKKyAgICAgICAgYWxnb3Jp
dGhtIGJ5IHJlbW92aW5nIHVubmVlZGVkIGRpcmVjdCBjYWxsIHRvIGF1ZGlvVHJhY2tFbmFibGVk
Q2hhbmdlZCwKKyAgICAgICAgd2hpY2ggd2lsbCBiZSBjYWxsZWQgYnkgc2V0RW5hYmxlZCBhbmQg
ZG9lc24ndCBuZWVkIHRvIGJlIGNhbGxlZCBhZ2FpbiBoZXJlLgorICAgICAgICAoV2ViUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnNlbGVjdExlZ2libGVNZWRpYU9wdGlvbik6IFJl
bW92ZWQKKyAgICAgICAgdW5oZWxwZnVsIGFzc2VydGlvbiBhbmQgdW5ubmVkZWQgaW5pdGlhbGl6
YXRpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5o
OiBSZW1vdmVkIHVubm5lZWVkIHRyYWNrIHByaXZhdGUKKyAgICAgICAgYXJndW1lbnQgYW5kIGlu
aXRpYWxpemVkIGRhdGEgbWVtYmVycyB3aGVyZSB0aGV5IGFyZSBkZWZpbmVkLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oOiBVc2Ug
UmVmIGluc3RlYWQgb2YKKyAgICAgICAgUGFzc1JlZlB0ciwgaW5pdGlhbGl6ZSBkYXRhIG1lbWJl
cnMgd2hlcmUgdGhleSBhcmUgZGVmaW5lZCwgYW5kIHJlbW92ZWQKKyAgICAgICAgdGhlIHVubmVl
ZGVkIHRyYWNrIHByaXZhdGUgYXJndW1lbnRzIGZyb20gdGhlIGNsaWVudCBmdW5jdGlvbnMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmg6IEZpeGVk
IGZ1bmN0aW9ucyB0aGF0IHdlcmUgdGFraW5nCisgICAgICAgIEF0b21pY1N0cmluZyB0byB0YWtl
IGEgY29uc3QmIGluc3RlYWQuIFVzZSBSZWYmJiBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50Lmg6IFJl
bW92ZWQgdW5uZWRlZCBwcml2YXRlIHBvaW50ZXIKKyAgICAgICAgYXJndW1lbnRzIGZyb20gY2xp
ZW50IGZ1bmN0aW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0
ZUJhc2UuaDogUmVtb3ZlZCB1bm5lZWRlZCBwcml2YXRlIHBvaW50ZXJzCisgICAgICAgIGZyb20g
Y2xpZW50IGZ1bmN0aW9ucy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNr
UHJpdmF0ZTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vQXVkaW9UcmFja1ByaXZhdGVBVkYuaDogVXNlCisgICAgICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0
YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZE1l
dGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6YWRkRGF0YUN1ZSk6IFVwZGF0ZWQgZm9yIGNoYW5n
ZSB0byBhcmd1bWVudHMuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRNZXRhZGF0YVRleHRUcmFj
a1ByaXZhdGVBVkY6OnVwZGF0ZVBlbmRpbmdDdWVFbmRUaW1lcyk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjpmbHVzaFBhcnRpYWxD
dWVzKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0lu
YmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0F0dHJpYnV0ZWRTdHJpbmdzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpyZXNldEN1ZVZhbHVlcyk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJv
Y2Vzc05hdGl2ZVNhbXBsZXMpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
OjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyk6CisgICAgICAgIE1vdmVkIGlu
aXRpYWxpemF0aW9uIG9mIGRhdGEgbWVtZWJycyB0byB3aGVyZSB0aGV5IGFyZSBkZWZpbmVkLgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmVu
YWJsZWQpOiBEZWxldGVkLiBObyBsb25nZXIgbmVlZGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEVuYWJsZWQpOiBDaGFuZ2VkIHRv
IHVzZSB0aGUgZW5hYmxlZAorICAgICAgICBmbGFnIGZyb20gdGhlIGJhc2UgY2xhc3MgaW5zdGVh
ZCBvZiBhIHNlcGFyYXRlIG1fZW5hYmxlZCBpbiB0aGlzIGNsYXNzLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmg6CisgICAgICAgIFJlbW92ZWQgdGhlIGVuYWJsZWQgZnVuY3Rpb24gYW5kIHRo
ZSBtX2VuYWJsZWQgZGF0YSBtZW1iZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oOiBNYXJrZWQgZnVu
Y3Rpb25zCisgICAgICAgIGZpbmFsIGluc3RlYWQgb2Ygb3ZlcnJpZGUgYW5kIHVwZGF0ZWQgYXJn
dWVtbnRzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1Nv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFBhcnNlU3RyZWFtRGF0YUFzQXNzZXQpOiBVcGRhdGVkIGZv
ciBjaGFuZ2UKKyAgICAgICAgdG8gYXJndW1lbnRzLgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OnByb2Nlc3NDb2RlZEZyYW1lKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5kQ29tcGxldGVkKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6aGFz
VmlkZW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjpoYXNBdWRpbyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OmxheWVyRGlkUmVjZWl2ZUVycm9yKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Zmx1c2gpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVlU2FtcGxlKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6aXNSZWFk
eUZvck1vcmVTYW1wbGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6ZmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2Vla1RvVGltZSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZEJlY29t
ZVJlYWR5Rm9yTW9yZVNhbXBsZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyk6
IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZE1l
dGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oOiBVcGRhdGVkIGZvcgorICAgICAgICBj
aGFuZ2VzIHRvIGFyZ3VtZW50cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mU2FtcGxlKTog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0
ZUJhc2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lcjo6bm90aWZ5VHJhY2tPZlRhZ3NDaGFuZ2VkKTogRGl0dG8uCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBcHBlbmRQaXBlbGluZTo6YXBwc2lua05ld1NhbXBsZSk6IERpdHRvLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyOjphcHBlbmQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXI6OmZsdXNoKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VC
dWZmZXJQcml2YXRlR1N0cmVhbWVyOjplbnF1ZXVlU2FtcGxlKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjppc1JlYWR5Rm9yTW9yZVNhbXBs
ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXI6Om5vdGlmeVJlYWR5Rm9yTW9yZVNhbXBsZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6
bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVJbml0aWFsaXph
dGlvblNlZ21lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVTYW1wbGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVBbGxQZW5kaW5nU2FtcGxl
cyk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjphcHBlbmQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpkaWRSZWNlaXZlSW5pdGlhbGl6YXRp
b25TZWdtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJp
dmF0ZTo6ZGlkUmVjZWl2ZVNhbXBsZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1Nv
dXJjZUJ1ZmZlclByaXZhdGU6OmVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjplbnF1ZXVlU2FtcGxlKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6aGFzVmlk
ZW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpo
YXNBdWRpbyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1NvdXJjZUJ1ZmZlclByaXZh
dGU6OmZhc3RTZWVrVGltZUZvck1lZGlhVGltZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OnNlZWtUb1RpbWUpOiBEaXR0by4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmg6IERpdHRv
LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVTbmFwc2hvdCk6
IFRha2UgcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAgICBvZiBQYXNzUmVmUHRyLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oOiBVcGRhdGVkIGZvciBhYm92
ZSBjaGFuZ2UuCisKKyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5oOiBBZGRlZCB1c2lu
ZyB0byByZXNvbHZlIHRoZSBhbWJpZ3VpdHkgd2l0aCB0aGUKKyAgICAgICAgcmVmL2RlcmVmIGZy
b20gU1ZHRWxlbWVudCBhbmQgZnJvbSBTY3JpcHRFbGVtZW50LgorCisgICAgICAgICogeG1sL3Bh
cnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVu
dFBhcnNlcjo6bm90aWZ5RmluaXNoZWQpOiBVcGRhdGVkIHRvIHNpbXBsaWZ5IHNpbmNlCisgICAg
ICAgIHRoZSBwZW5kaW5nIHNjcmlwdCBub3cgaGFzIGEgc2NyaXB0IGVsZW1lbnQuCisKKyAgICAg
ICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50TnMpOiBVc2UgaXNTY2lwcnRF
bGVtZW50IGluc3RlYWQKKyAgICAgICAgb2YgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjplbmRFbGVtZW50TnMpOiBEaXR0by4g
QWxzbyB1c2UgZG93bmNhc3RTY3JpcHRFbGVtZW50LgorCiAyMDE3LTAxLTAzICBTYW0gV2Vpbmln
ICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIGZpbmFsIGN1c3RvbSBiaW5kaW5n
IGZyb20gSURCUmVxdWVzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDg5Mzk4NjlmZGY0NzU5NmVkMGM0
N2M2MzQzMjY1MGFjODFlZGU4ZjguLjc3MDRiNDQ4YWQwYTY1N2M2YmMxMzMwMGZmMmY4ZmExNDY1
NDk4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wMS0wNCAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIg
dXNlIGZyb20gdGhlICJodG1sIiBkaXJlY3RvcnksIG90aGVyIGltcHJvdmVtZW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2NjM1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMpOiBU
YWtlIGEgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBwb2ludGVyLgorCiAyMDE3LTAxLTA0ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFByb3ZpZGUgYSBz
ZXR0aW5nIGZvciBjbGllbnRzIHRvIGFsd2F5cyBwcmVmZXIgbG93LXBvd2VyIFdlYkdMCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKaW5kZXggYjE2MTU4NWJmOTYzNWExZTNlNDMxNjhlNmU0MTNiMjJhOTZmOWFkNi4u
MGQ3OTJjYTU2NWNmZDU2NGM0YmIyZDQyZWRkODc0ZjgzYzgxNTE3ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAxLTA0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciB1c2UgZnJvbSB0aGUgImh0bWwiIGRp
cmVjdG9yeSwgb3RoZXIgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMpOiBUYWtlIGEgcmVm
ZXJlbmNlIGluc3RlYWQgb2YgYSBwb2ludGVyLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKIDIwMTYtMTItMzAgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRy
IHVzZSBmcm9tIHRoZSAiZG9tIiBkaXJlY3RvcnksIHJlbGF0ZWQgY2xlYW51cApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDI5ZGU2ZWY1OWIxOTk5YzYyMzZmNWYxNTZkN2I2ZTJhMjVjM2Q1YzEuLmJhOGRjYjc2N2I4
ZWI4OTI4YjRmNzVhZmJmMjI5OGIyYjFkODVmN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxNy0wMS0wNCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAg
UmVtb3ZlIFBhc3NSZWZQdHIgdXNlIGZyb20gdGhlICJodG1sIiBkaXJlY3RvcnksIG90aGVyIGlt
cHJvdmVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY2NjM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyk6IFRha2UgYSBy
ZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDogRGl0dG8uCisKIDIwMTctMDEtMDMgIFRpbSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTlNTcGVsbENoZWNr
ZXIncyByZWNvcmRSZXNwb25zZSBpc24ndCBjYWxsZWQgZm9yIHVuc2VlbiBhdXRvbWF0aWMgY29y
cmVjdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oIGIvU291cmNlL1dU
Ri93dGYvUmVmUHRyLmgKaW5kZXggODdmYzQ1NmYzNzA0MDQ5YmY0ZWNjY2JmM2E0ZmY1NzY5Nzll
Njc3Zi4uZmUxNjMwYzk3MzViNWZmNTM1M2NiMmM1NThlMzEwNTgxMjQ3ODdkOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUmVmUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYvUmVmUHRyLmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywg
MjAwOCwgMjAwOSwgMjAxMCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI0MiwxMCArMjQyLDIxIEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4gYWRvcHRSZWYoVCogcCkKICAgICByZXR1cm4gUmVm
UHRyPFQ+KHAsIFJlZlB0cjxUPjo6QWRvcHQpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBp
bmxpbmUgUmVmUHRyPFQ+IG1ha2VSZWZQdHIoVCogcG9pbnRlcikKK3sKKyAgICByZXR1cm4gcG9p
bnRlcjsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFJlZlB0cjxUPiBtYWtlUmVm
UHRyKFQmIHJlZmVyZW5jZSkKK3sKKyAgICByZXR1cm4gJnJlZmVyZW5jZTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6UmVmUHRyOwogdXNpbmcgV1RGOjphZG9wdFJlZjsK
K3VzaW5nIFdURjo6bWFrZVJlZlB0cjsKIHVzaW5nIFdURjo6c3RhdGljX3BvaW50ZXJfY2FzdDsK
IAogI2VuZGlmIC8vIFdURl9SZWZQdHJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2NGM5ZjQ5
OTE0ODMyMGMwNmY1ODgxY2E3NjJmYjdhNDAwMWFjN2VjLi5iMTYxNWJkMmVlNTEzZDUwZWU3ODUz
M2Y0MDFlYzc1YjYyNWJjOTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTc2Myw3ICsxNzYz
LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
CiAgICAgaHRtbC9XZWVrSW5wdXRUeXBlLmNwcAogCi0gICAgaHRtbC9jYW52YXMvQU5HTEVJbnN0
YW5jZWRBcnJheXMuY3BwCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuY3BwCiAgICAg
aHRtbC9jYW52YXMvQ2FudmFzUGF0aC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJu
LmNwcApAQCAtMTc3Miw1MSArMTc3MSw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCiAgICAgaHRtbC9jYW52YXMvQ2Fu
dmFzU3R5bGUuY3BwCiAgICAgaHRtbC9jYW52YXMvRE9NUGF0aC5jcHAKLSAgICBodG1sL2NhbnZh
cy9FWFRCbGVuZE1pbk1heC5jcHAKLSAgICBodG1sL2NhbnZhcy9FWFRGcmFnRGVwdGguY3BwCi0g
ICAgaHRtbC9jYW52YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAKLSAgICBodG1sL2NhbnZhcy9F
WFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwCi0gICAgaHRtbC9jYW52YXMvRVhUc1JHQi5j
cHAKLSAgICBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcAotICAgIGh0bWwvY2Fu
dmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwCi0gICAgaHRtbC9jYW52YXMvT0VTVGV4dHVy
ZUZsb2F0LmNwcAotICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdExpbmVhci5jcHAKLSAg
ICBodG1sL2NhbnZhcy9PRVNUZXh0dXJlSGFsZkZsb2F0LmNwcAotICAgIGh0bWwvY2FudmFzL09F
U1RleHR1cmVIYWxmRmxvYXRMaW5lYXIuY3BwCi0gICAgaHRtbC9jYW52YXMvT0VTVmVydGV4QXJy
YXlPYmplY3QuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAK
LSAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTENv
bXByZXNzZWRUZXh0dXJlQVRDLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVQVlJUQy5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNU
Qy5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5jcHAKLSAgICBodG1sL2Nh
bnZhcy9XZWJHTENvbnRleHRHcm91cC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRP
YmplY3QuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAKLSAg
ICBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJH
TERlcHRoVGV4dHVyZS5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTERyYXdCdWZmZXJzLmNwcAot
ICAgIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdM
RnJhbWVidWZmZXIuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmNwcAotICAgIGh0
bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xPYmpl
Y3QuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcAotICAgIGh0bWwvY2FudmFz
L1dlYkdMUXVlcnkuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuY3BwCi0g
ICAgaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAotICAgIGh0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xTYW1w
bGVyLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmNwcAotICAgIGh0bWwvY2FudmFz
L1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMU2hh
cmVkT2JqZWN0LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMU3luYy5jcHAKLSAgICBodG1sL2Nh
bnZhcy9XZWJHTFRleHR1cmUuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVk
YmFjay5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5jcHAKLSAgICBo
dG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmNwcAotICAgIGh0bWwvY2FudmFzL1dl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVMuY3BwCiAKICAgICBodG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmNwcAog
CkBAIC0zMDc3LDYgKzMwMzEsNyBAQCBpZiAoRU5BQkxFX1dFQkdMKQogICAgICAgICBodG1sL2Nh
bnZhcy9PRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9P
RVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVy
aW5nQ29udGV4dC5jcHAKKyAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xBbnkuY3BwCiAgICAgICAg
IGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTENv
bXByZXNzZWRUZXh0dXJlQVRDLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTENvbXByZXNz
ZWRUZXh0dXJlUFZSVEMuY3BwCkBAIC0zMDkwLDcgKzMwNDUsNiBAQCBpZiAoRU5BQkxFX1dFQkdM
KQogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTERyYXdCdWZmZXJzLmNwcAogICAgICAgICBodG1s
L2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xGcmFt
ZWJ1ZmZlci5jcHAKLSAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmNwcAogICAgICAg
ICBodG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmNwcAogICAgICAgICBodG1sL2NhbnZhcy9X
ZWJHTE9iamVjdC5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApp
bmRleCA0M2MwZDAwMGQ4ZTczNTU2ZmVlMTcwNDJhZjYzOWUwNzllZDk5MzA0Li40ZjE4OGI4NTI0
OGZjNDIxMzlkNzU4MWRlMTkwZDNmMjdlYjYxMTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTY5MywxOCArNjkz
LDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIo
U291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgYnVmZmVyLmFib3J0SWZVcGRhdGluZygpOwogCiAg
ICAgLy8gNC4gTGV0IFNvdXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0IGVxdWFsIHRoZSBBdWRp
b1RyYWNrTGlzdCBvYmplY3QgcmV0dXJuZWQgYnkgc291cmNlQnVmZmVyLmF1ZGlvVHJhY2tzLgot
ICAgIFJlZlB0cjxBdWRpb1RyYWNrTGlzdD4gYXVkaW9UcmFja3MgPSBidWZmZXIuYXVkaW9UcmFj
a3MoKTsKKyAgICBhdXRvJiBhdWRpb1RyYWNrcyA9IGJ1ZmZlci5hdWRpb1RyYWNrcygpOwogCiAg
ICAgLy8gNS4gSWYgdGhlIFNvdXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0IGlzIG5vdCBlbXB0
eSwgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAoYXVkaW9UcmFja3MtPmxl
bmd0aCgpKSB7CisgICAgaWYgKGF1ZGlvVHJhY2tzLmxlbmd0aCgpKSB7CiAgICAgICAgIC8vIDUu
MSBMZXQgSFRNTE1lZGlhRWxlbWVudCBhdWRpb1RyYWNrcyBsaXN0IGVxdWFsIHRoZSBBdWRpb1Ry
YWNrTGlzdCBvYmplY3QgcmV0dXJuZWQgYnkgdGhlIGF1ZGlvVHJhY2tzCiAgICAgICAgIC8vIGF0
dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAgICAgICAgLy8gNS4yIExldCB0aGUg
cmVtb3ZlZCBlbmFibGVkIGF1ZGlvIHRyYWNrIGZsYWcgZXF1YWwgZmFsc2UuCiAgICAgICAgIGJv
b2wgcmVtb3ZlZEVuYWJsZWRBdWRpb1RyYWNrID0gZmFsc2U7CiAKICAgICAgICAgLy8gNS4zIEZv
ciBlYWNoIEF1ZGlvVHJhY2sgb2JqZWN0IGluIHRoZSBTb3VyY2VCdWZmZXIgYXVkaW9UcmFja3Mg
bGlzdCwgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgIHdoaWxlIChhdWRpb1RyYWNr
cy0+bGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIGF1dG8mIHRyYWNrID0gKmF1ZGlvVHJhY2tzLT5s
YXN0SXRlbSgpOworICAgICAgICB3aGlsZSAoYXVkaW9UcmFja3MubGVuZ3RoKCkpIHsKKyAgICAg
ICAgICAgIGF1dG8mIHRyYWNrID0gKmF1ZGlvVHJhY2tzLmxhc3RJdGVtKCk7CiAKICAgICAgICAg
ICAgIC8vIDUuMy4xIFNldCB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGUgQXVkaW9U
cmFjayBvYmplY3QgdG8gbnVsbC4KICAgICAgICAgICAgIHRyYWNrLnNldFNvdXJjZUJ1ZmZlcihu
dWxscHRyKTsKQEAgLTcyMyw3ICs3MjMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBNZWRpYVNvdXJj
ZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciYgYnVmZmVyKQogICAgICAgICAgICAg
Ly8gNS4zLjUgUmVtb3ZlIHRoZSBBdWRpb1RyYWNrIG9iamVjdCBmcm9tIHRoZSBTb3VyY2VCdWZm
ZXIgYXVkaW9UcmFja3MgbGlzdC4KICAgICAgICAgICAgIC8vIDUuMy42IFF1ZXVlIGEgdGFzayB0
byBmaXJlIGEgdHJ1c3RlZCBldmVudCBuYW1lZCByZW1vdmV0cmFjaywgdGhhdCBkb2VzIG5vdCBi
dWJibGUgYW5kIGlzIG5vdAogICAgICAgICAgICAgLy8gY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNl
cyB0aGUgVHJhY2tFdmVudCBpbnRlcmZhY2UsIGF0IHRoZSBTb3VyY2VCdWZmZXIgYXVkaW9UcmFj
a3MgbGlzdC4KLSAgICAgICAgICAgIGF1ZGlvVHJhY2tzLT5yZW1vdmUodHJhY2spOworICAgICAg
ICAgICAgYXVkaW9UcmFja3MucmVtb3ZlKHRyYWNrKTsKICAgICAgICAgfQogCiAgICAgICAgIC8v
IDUuNCBJZiB0aGUgcmVtb3ZlZCBlbmFibGVkIGF1ZGlvIHRyYWNrIGZsYWcgZXF1YWxzIHRydWUs
IHRoZW4gcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQKQEAgLTczMywxOCArNzMz
LDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIo
U291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgfQogCiAgICAgLy8gNi4gTGV0IFNvdXJjZUJ1ZmZl
ciB2aWRlb1RyYWNrcyBsaXN0IGVxdWFsIHRoZSBWaWRlb1RyYWNrTGlzdCBvYmplY3QgcmV0dXJu
ZWQgYnkgc291cmNlQnVmZmVyLnZpZGVvVHJhY2tzLgotICAgIFJlZlB0cjxWaWRlb1RyYWNrTGlz
dD4gdmlkZW9UcmFja3MgPSBidWZmZXIudmlkZW9UcmFja3MoKTsKKyAgICBhdXRvJiB2aWRlb1Ry
YWNrcyA9IGJ1ZmZlci52aWRlb1RyYWNrcygpOwogCiAgICAgLy8gNy4gSWYgdGhlIFNvdXJjZUJ1
ZmZlciB2aWRlb1RyYWNrcyBsaXN0IGlzIG5vdCBlbXB0eSwgdGhlbiBydW4gdGhlIGZvbGxvd2lu
ZyBzdGVwczoKLSAgICBpZiAodmlkZW9UcmFja3MtPmxlbmd0aCgpKSB7CisgICAgaWYgKHZpZGVv
VHJhY2tzLmxlbmd0aCgpKSB7CiAgICAgICAgIC8vIDcuMSBMZXQgSFRNTE1lZGlhRWxlbWVudCB2
aWRlb1RyYWNrcyBsaXN0IGVxdWFsIHRoZSBWaWRlb1RyYWNrTGlzdCBvYmplY3QgcmV0dXJuZWQg
YnkgdGhlIHZpZGVvVHJhY2tzCiAgICAgICAgIC8vIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlh
RWxlbWVudC4KICAgICAgICAgLy8gNy4yIExldCB0aGUgcmVtb3ZlZCBzZWxlY3RlZCB2aWRlbyB0
cmFjayBmbGFnIGVxdWFsIGZhbHNlLgogICAgICAgICBib29sIHJlbW92ZWRTZWxlY3RlZFZpZGVv
VHJhY2sgPSBmYWxzZTsKIAogICAgICAgICAvLyA3LjMgRm9yIGVhY2ggVmlkZW9UcmFjayBvYmpl
Y3QgaW4gdGhlIFNvdXJjZUJ1ZmZlciB2aWRlb1RyYWNrcyBsaXN0LCBydW4gdGhlIGZvbGxvd2lu
ZyBzdGVwczoKLSAgICAgICAgd2hpbGUgKHZpZGVvVHJhY2tzLT5sZW5ndGgoKSkgewotICAgICAg
ICAgICAgYXV0byYgdHJhY2sgPSAqdmlkZW9UcmFja3MtPmxhc3RJdGVtKCk7CisgICAgICAgIHdo
aWxlICh2aWRlb1RyYWNrcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byYgdHJhY2sgPSAq
dmlkZW9UcmFja3MubGFzdEl0ZW0oKTsKIAogICAgICAgICAgICAgLy8gNy4zLjEgU2V0IHRoZSBz
b3VyY2VCdWZmZXIgYXR0cmlidXRlIG9uIHRoZSBWaWRlb1RyYWNrIG9iamVjdCB0byBudWxsLgog
ICAgICAgICAgICAgdHJhY2suc2V0U291cmNlQnVmZmVyKG51bGxwdHIpOwpAQCAtNzYzLDcgKzc2
Myw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIo
U291cmNlQnVmZmVyJiBidWZmZXIpCiAgICAgICAgICAgICAvLyA3LjMuNSBSZW1vdmUgdGhlIFZp
ZGVvVHJhY2sgb2JqZWN0IGZyb20gdGhlIFNvdXJjZUJ1ZmZlciB2aWRlb1RyYWNrcyBsaXN0Lgog
ICAgICAgICAgICAgLy8gNy4zLjYgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2ZW50
IG5hbWVkIHJlbW92ZXRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMgbm90CiAgICAg
ICAgICAgICAvLyBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGludGVy
ZmFjZSwgYXQgdGhlIFNvdXJjZUJ1ZmZlciB2aWRlb1RyYWNrcyBsaXN0LgotICAgICAgICAgICAg
dmlkZW9UcmFja3MtPnJlbW92ZSh0cmFjayk7CisgICAgICAgICAgICB2aWRlb1RyYWNrcy5yZW1v
dmUodHJhY2spOwogICAgICAgICB9CiAKICAgICAgICAgLy8gNy40IElmIHRoZSByZW1vdmVkIHNl
bGVjdGVkIHZpZGVvIHRyYWNrIGZsYWcgZXF1YWxzIHRydWUsIHRoZW4gcXVldWUgYSB0YXNrIHRv
IGZpcmUgYSBzaW1wbGUgZXZlbnQKQEAgLTc3MywxOCArNzczLDE4IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyJiBidWZmZXIp
CiAgICAgfQogCiAgICAgLy8gOC4gTGV0IFNvdXJjZUJ1ZmZlciB0ZXh0VHJhY2tzIGxpc3QgZXF1
YWwgdGhlIFRleHRUcmFja0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5IHNvdXJjZUJ1ZmZlci50ZXh0
VHJhY2tzLgotICAgIFJlZlB0cjxUZXh0VHJhY2tMaXN0PiB0ZXh0VHJhY2tzID0gYnVmZmVyLnRl
eHRUcmFja3MoKTsKKyAgICBhdXRvJiB0ZXh0VHJhY2tzID0gYnVmZmVyLnRleHRUcmFja3MoKTsK
IAogICAgIC8vIDkuIElmIHRoZSBTb3VyY2VCdWZmZXIgdGV4dFRyYWNrcyBsaXN0IGlzIG5vdCBl
bXB0eSwgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICBpZiAodGV4dFRyYWNrcy0+
bGVuZ3RoKCkpIHsKKyAgICBpZiAodGV4dFRyYWNrcy5sZW5ndGgoKSkgewogICAgICAgICAvLyA5
LjEgTGV0IEhUTUxNZWRpYUVsZW1lbnQgdGV4dFRyYWNrcyBsaXN0IGVxdWFsIHRoZSBUZXh0VHJh
Y2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSB0aGUgdGV4dFRyYWNrcwogICAgICAgICAvLyBhdHRy
aWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgICAgIC8vIDkuMiBMZXQgdGhlIHJl
bW92ZWQgZW5hYmxlZCB0ZXh0IHRyYWNrIGZsYWcgZXF1YWwgZmFsc2UuCiAgICAgICAgIGJvb2wg
cmVtb3ZlZEVuYWJsZWRUZXh0VHJhY2sgPSBmYWxzZTsKIAogICAgICAgICAvLyA5LjMgRm9yIGVh
Y2ggVGV4dFRyYWNrIG9iamVjdCBpbiB0aGUgU291cmNlQnVmZmVyIHRleHRUcmFja3MgbGlzdCwg
cnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgIHdoaWxlICh0ZXh0VHJhY2tzLT5sZW5n
dGgoKSkgewotICAgICAgICAgICAgYXV0byYgdHJhY2sgPSAqdGV4dFRyYWNrcy0+bGFzdEl0ZW0o
KTsKKyAgICAgICAgd2hpbGUgKHRleHRUcmFja3MubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1
dG8mIHRyYWNrID0gKnRleHRUcmFja3MubGFzdEl0ZW0oKTsKIAogICAgICAgICAgICAgLy8gOS4z
LjEgU2V0IHRoZSBzb3VyY2VCdWZmZXIgYXR0cmlidXRlIG9uIHRoZSBUZXh0VHJhY2sgb2JqZWN0
IHRvIG51bGwuCiAgICAgICAgICAgICB0cmFjay5zZXRTb3VyY2VCdWZmZXIobnVsbHB0cik7CkBA
IC04MDMsNyArODAzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6OnJlbW92ZVNv
dXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICAgICAgICAgIC8vIDkuMy41IFJl
bW92ZSB0aGUgVGV4dFRyYWNrIG9iamVjdCBmcm9tIHRoZSBTb3VyY2VCdWZmZXIgdGV4dFRyYWNr
cyBsaXN0LgogICAgICAgICAgICAgLy8gOS4zLjYgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVz
dGVkIGV2ZW50IG5hbWVkIHJlbW92ZXRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMg
bm90CiAgICAgICAgICAgICAvLyBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2
ZW50IGludGVyZmFjZSwgYXQgdGhlIFNvdXJjZUJ1ZmZlciB0ZXh0VHJhY2tzIGxpc3QuCi0gICAg
ICAgICAgICB0ZXh0VHJhY2tzLT5yZW1vdmUodHJhY2spOworICAgICAgICAgICAgdGV4dFRyYWNr
cy5yZW1vdmUodHJhY2spOwogICAgICAgICB9CiAKICAgICAgICAgLy8gOS40IElmIHRoZSByZW1v
dmVkIGVuYWJsZWQgdGV4dCB0cmFjayBmbGFnIGVxdWFscyB0cnVlLCB0aGVuIHF1ZXVlIGEgdGFz
ayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggN2ZlZTdlNjBiMjJlNDQ4MzQxY2Fh
MDlhZDk4OTk2ODA5YTVlNDI2Yy4uZDlhZTUyNzg2MzVlYzhmYWI4YmE3ZGY1MmQ3MzQxNGE1ODgz
ZWUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3Vy
Y2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMy0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
My0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKQEAgLTU5LDkgKzU5LDYgQEAKICNpbmNsdWRlIDxydW50aW1lL1ZN
Lmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+Ci0jaWYgIUxPR19ESVNBQkxFRAotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KLSNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQyMSw3ICs0MTgs
NyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c2Vla1RvVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUp
CiAgICAgfQogfQogCi1NZWRpYVRpbWUgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRl
RmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBNZWRp
YVRpbWUmIHRhcmdldFRpbWUsIGNvbnN0IE1lZGlhVGltZSYgbmVnYXRpdmVUaHJlc2hvbGQsIGNv
bnN0IE1lZGlhVGltZSYgcG9zaXRpdmVUaHJlc2hvbGQpCitNZWRpYVRpbWUgU291cmNlQnVmZmVy
Ojpzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKGNvbnN0IE1lZGlh
VGltZSYgdGFyZ2V0VGltZSwgY29uc3QgTWVkaWFUaW1lJiBuZWdhdGl2ZVRocmVzaG9sZCwgY29u
c3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRocmVzaG9sZCkKIHsKICAgICBNZWRpYVRpbWUgc2Vla1Rp
bWUgPSB0YXJnZXRUaW1lOwogICAgIE1lZGlhVGltZSBsb3dlckJvdW5kVGltZSA9IHRhcmdldFRp
bWUgLSBuZWdhdGl2ZVRocmVzaG9sZDsKQEAgLTU2Niw3ICs1NjMsNyBAQCB2b2lkIFNvdXJjZUJ1
ZmZlcjo6YXBwZW5kQnVmZmVyVGltZXJGaXJlZCgpCiAKICAgICAvLyAxLiBMb29wIFRvcDogSWYg
dGhlIGlucHV0IGJ1ZmZlciBpcyBlbXB0eSwgdGhlbiBqdW1wIHRvIHRoZSBuZWVkIG1vcmUgZGF0
YSBzdGVwIGJlbG93LgogICAgIGlmICghbV9wZW5kaW5nQXBwZW5kRGF0YS5zaXplKCkpIHsKLSAg
ICAgICAgc291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKCZtX3ByaXZhdGUuZ2V0KCks
IEFwcGVuZFN1Y2NlZWRlZCk7CisgICAgICAgIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21w
bGV0ZShBcHBlbmRTdWNjZWVkZWQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC01NzQs
NyArNTcxLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OmFwcGVuZEJ1ZmZlclRpbWVyRmlyZWQoKQog
ICAgIG1fcGVuZGluZ0FwcGVuZERhdGEuY2xlYXIoKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6
OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2YXRlKiwg
QXBwZW5kUmVzdWx0IHJlc3VsdCkKK3ZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2
YXRlQXBwZW5kQ29tcGxldGUoQXBwZW5kUmVzdWx0IHJlc3VsdCkKIHsKICAgICBpZiAoaXNSZW1v
dmVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTYzNSw3ICs2MzIsNyBAQCB2b2lkIFNvdXJjZUJ1
ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFNvdXJjZUJ1ZmZlclByaXZh
dGUqLCBBcHBlbgogICAgIExPRyhNZWRpYSwgIlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJp
dmF0ZUFwcGVuZENvbXBsZXRlKCVwKSAtIGJ1ZmZlcmVkID0gJXMiLCB0aGlzLCB0b1N0cmluZyht
X2J1ZmZlcmVkLT5yYW5nZXMoKSkudXRmOCgpLmRhdGEoKSk7CiB9CiAKLXZvaWQgU291cmNlQnVm
ZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmluZ0Vycm9yKFNvdXJjZUJ1
ZmZlclByaXZhdGUqLCBpbnQgZXJyb3IpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVy
UHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihpbnQgZXJyb3IpCiB7CiAjaWYgTE9HX0RJ
U0FCTEVECiAgICAgVU5VU0VEX1BBUkFNKGVycm9yKTsKQEAgLTk0NSwzNSArOTQyLDMyIEBAIHNp
emVfdCBTb3VyY2VCdWZmZXI6Om1heGltdW1CdWZmZXJTaXplKCkgY29uc3QKICAgICBpZiAoaXNS
ZW1vdmVkKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgSFRNTE1lZGlhRWxlbWVudCogZWxl
bWVudCA9IG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKTsKKyAgICBhdXRvKiBlbGVtZW50ID0gbV9z
b3VyY2UtPm1lZGlhRWxlbWVudCgpOwogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJu
IDA7CiAKICAgICByZXR1cm4gZWxlbWVudC0+bWF4aW11bVNvdXJjZUJ1ZmZlclNpemUoKnRoaXMp
OwogfQogCi1WaWRlb1RyYWNrTGlzdCogU291cmNlQnVmZmVyOjp2aWRlb1RyYWNrcygpCitWaWRl
b1RyYWNrTGlzdCYgU291cmNlQnVmZmVyOjp2aWRlb1RyYWNrcygpCiB7CiAgICAgaWYgKCFtX3Zp
ZGVvVHJhY2tzKQotICAgICAgICBtX3ZpZGVvVHJhY2tzID0gVmlkZW9UcmFja0xpc3Q6OmNyZWF0
ZShtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCksIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKLQotICAgIHJldHVybiBtX3ZpZGVvVHJhY2tzLmdldCgpOworICAgICAg
ICBtX3ZpZGVvVHJhY2tzID0gVmlkZW9UcmFja0xpc3Q6OmNyZWF0ZShtX3NvdXJjZS0+bWVkaWFF
bGVtZW50KCksIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgcmV0dXJuICptX3ZpZGVv
VHJhY2tzOwogfQogCi1BdWRpb1RyYWNrTGlzdCogU291cmNlQnVmZmVyOjphdWRpb1RyYWNrcygp
CitBdWRpb1RyYWNrTGlzdCYgU291cmNlQnVmZmVyOjphdWRpb1RyYWNrcygpCiB7CiAgICAgaWYg
KCFtX2F1ZGlvVHJhY2tzKQotICAgICAgICBtX2F1ZGlvVHJhY2tzID0gQXVkaW9UcmFja0xpc3Q6
OmNyZWF0ZShtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCksIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKLQotICAgIHJldHVybiBtX2F1ZGlvVHJhY2tzLmdldCgpOwor
ICAgICAgICBtX2F1ZGlvVHJhY2tzID0gQXVkaW9UcmFja0xpc3Q6OmNyZWF0ZShtX3NvdXJjZS0+
bWVkaWFFbGVtZW50KCksIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgcmV0dXJuICpt
X2F1ZGlvVHJhY2tzOwogfQogCi1UZXh0VHJhY2tMaXN0KiBTb3VyY2VCdWZmZXI6OnRleHRUcmFj
a3MoKQorVGV4dFRyYWNrTGlzdCYgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tzKCkKIHsKICAgICBp
ZiAoIW1fdGV4dFRyYWNrcykKLSAgICAgICAgbV90ZXh0VHJhY2tzID0gVGV4dFRyYWNrTGlzdDo6
Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpOwotCi0gICAgcmV0dXJuIG1fdGV4dFRyYWNrcy5nZXQoKTsKKyAg
ICAgICAgbV90ZXh0VHJhY2tzID0gVGV4dFRyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRp
YUVsZW1lbnQoKSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4gKm1fdGV4
dFRyYWNrczsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXI6OnNldEFjdGl2ZShib29sIGFjdGl2ZSkK
QEAgLTk4Nyw3ICs5ODEsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c2V0QWN0aXZlKGJvb2wgYWN0
aXZlKQogICAgICAgICBtX3NvdXJjZS0+c291cmNlQnVmZmVyRGlkQ2hhbmdlQWN0aXZlU3RhdGUo
KnRoaXMsIGFjdGl2ZSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2
YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmZXJQcml2YXRlKiwg
Y29uc3QgSW5pdGlhbGl6YXRpb25TZWdtZW50JiBzZWdtZW50KQordm9pZCBTb3VyY2VCdWZmZXI6
OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0
IEluaXRpYWxpemF0aW9uU2VnbWVudCYgc2VnbWVudCkKIHsKICAgICBpZiAoaXNSZW1vdmVkKCkp
CiAgICAgICAgIHJldHVybjsKQEAgLTEwMjQsNDAgKzEwMTgsNDAgQEAgdm9pZCBTb3VyY2VCdWZm
ZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNv
dXJjZUJ1ZmYKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAvLyAzLjIg
QWRkIHRoZSBhcHByb3ByaWF0ZSB0cmFjayBkZXNjcmlwdGlvbnMgZnJvbSB0aGlzIGluaXRpYWxp
emF0aW9uIHNlZ21lbnQgdG8gZWFjaCBvZiB0aGUgdHJhY2sgYnVmZmVycy4KLSAgICAgICAgQVNT
RVJUKHNlZ21lbnQuYXVkaW9UcmFja3Muc2l6ZSgpID09IGF1ZGlvVHJhY2tzKCktPmxlbmd0aCgp
KTsKKyAgICAgICAgQVNTRVJUKHNlZ21lbnQuYXVkaW9UcmFja3Muc2l6ZSgpID09IGF1ZGlvVHJh
Y2tzKCkubGVuZ3RoKCkpOwogICAgICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2tJbmZvIDogc2Vn
bWVudC5hdWRpb1RyYWNrcykgewotICAgICAgICAgICAgaWYgKGF1ZGlvVHJhY2tzKCktPmxlbmd0
aCgpID09IDEpIHsKLSAgICAgICAgICAgICAgICBhdWRpb1RyYWNrcygpLT5pdGVtKDApLT5zZXRQ
cml2YXRlKGF1ZGlvVHJhY2tJbmZvLnRyYWNrKTsKKyAgICAgICAgICAgIGlmIChhdWRpb1RyYWNr
cygpLmxlbmd0aCgpID09IDEpIHsKKyAgICAgICAgICAgICAgICBhdWRpb1RyYWNrcygpLml0ZW0o
MCktPnNldFByaXZhdGUoKmF1ZGlvVHJhY2tJbmZvLnRyYWNrKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byBhdWRpb1RyYWNrID0gYXVk
aW9UcmFja3MoKS0+Z2V0VHJhY2tCeUlkKGF1ZGlvVHJhY2tJbmZvLnRyYWNrLT5pZCgpKTsKKyAg
ICAgICAgICAgIGF1dG8gYXVkaW9UcmFjayA9IGF1ZGlvVHJhY2tzKCkuZ2V0VHJhY2tCeUlkKGF1
ZGlvVHJhY2tJbmZvLnRyYWNrLT5pZCgpKTsKICAgICAgICAgICAgIEFTU0VSVChhdWRpb1RyYWNr
KTsKLSAgICAgICAgICAgIGF1ZGlvVHJhY2stPnNldFByaXZhdGUoYXVkaW9UcmFja0luZm8udHJh
Y2spOworICAgICAgICAgICAgYXVkaW9UcmFjay0+c2V0UHJpdmF0ZSgqYXVkaW9UcmFja0luZm8u
dHJhY2spOwogICAgICAgICB9CiAKLSAgICAgICAgQVNTRVJUKHNlZ21lbnQudmlkZW9UcmFja3Mu
c2l6ZSgpID09IHZpZGVvVHJhY2tzKCktPmxlbmd0aCgpKTsKKyAgICAgICAgQVNTRVJUKHNlZ21l
bnQudmlkZW9UcmFja3Muc2l6ZSgpID09IHZpZGVvVHJhY2tzKCkubGVuZ3RoKCkpOwogICAgICAg
ICBmb3IgKGF1dG8mIHZpZGVvVHJhY2tJbmZvIDogc2VnbWVudC52aWRlb1RyYWNrcykgewotICAg
ICAgICAgICAgaWYgKHZpZGVvVHJhY2tzKCktPmxlbmd0aCgpID09IDEpIHsKLSAgICAgICAgICAg
ICAgICB2aWRlb1RyYWNrcygpLT5pdGVtKDApLT5zZXRQcml2YXRlKHZpZGVvVHJhY2tJbmZvLnRy
YWNrKTsKKyAgICAgICAgICAgIGlmICh2aWRlb1RyYWNrcygpLmxlbmd0aCgpID09IDEpIHsKKyAg
ICAgICAgICAgICAgICB2aWRlb1RyYWNrcygpLml0ZW0oMCktPnNldFByaXZhdGUoKnZpZGVvVHJh
Y2tJbmZvLnRyYWNrKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgYXV0byB2aWRlb1RyYWNrID0gdmlkZW9UcmFja3MoKS0+Z2V0VHJhY2tCeUlk
KHZpZGVvVHJhY2tJbmZvLnRyYWNrLT5pZCgpKTsKKyAgICAgICAgICAgIGF1dG8gdmlkZW9UcmFj
ayA9IHZpZGVvVHJhY2tzKCkuZ2V0VHJhY2tCeUlkKHZpZGVvVHJhY2tJbmZvLnRyYWNrLT5pZCgp
KTsKICAgICAgICAgICAgIEFTU0VSVCh2aWRlb1RyYWNrKTsKLSAgICAgICAgICAgIHZpZGVvVHJh
Y2stPnNldFByaXZhdGUodmlkZW9UcmFja0luZm8udHJhY2spOworICAgICAgICAgICAgdmlkZW9U
cmFjay0+c2V0UHJpdmF0ZSgqdmlkZW9UcmFja0luZm8udHJhY2spOwogICAgICAgICB9CiAKLSAg
ICAgICAgQVNTRVJUKHNlZ21lbnQudGV4dFRyYWNrcy5zaXplKCkgPT0gdGV4dFRyYWNrcygpLT5s
ZW5ndGgoKSk7CisgICAgICAgIEFTU0VSVChzZWdtZW50LnRleHRUcmFja3Muc2l6ZSgpID09IHRl
eHRUcmFja3MoKS5sZW5ndGgoKSk7CiAgICAgICAgIGZvciAoYXV0byYgdGV4dFRyYWNrSW5mbyA6
IHNlZ21lbnQudGV4dFRyYWNrcykgewotICAgICAgICAgICAgaWYgKHRleHRUcmFja3MoKS0+bGVu
Z3RoKCkgPT0gMSkgewotICAgICAgICAgICAgICAgIGRvd25jYXN0PEluYmFuZFRleHRUcmFjaz4o
KnRleHRUcmFja3MoKS0+aXRlbSgwKSkuc2V0UHJpdmF0ZSh0ZXh0VHJhY2tJbmZvLnRyYWNrKTsK
KyAgICAgICAgICAgIGlmICh0ZXh0VHJhY2tzKCkubGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAg
ICAgICAgIGRvd25jYXN0PEluYmFuZFRleHRUcmFjaz4oKnRleHRUcmFja3MoKS5pdGVtKDApKS5z
ZXRQcml2YXRlKCp0ZXh0VHJhY2tJbmZvLnRyYWNrKTsKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYXV0byB0ZXh0VHJhY2sgPSB0ZXh0VHJhY2tz
KCktPmdldFRyYWNrQnlJZCh0ZXh0VHJhY2tJbmZvLnRyYWNrLT5pZCgpKTsKKyAgICAgICAgICAg
IGF1dG8gdGV4dFRyYWNrID0gdGV4dFRyYWNrcygpLmdldFRyYWNrQnlJZCh0ZXh0VHJhY2tJbmZv
LnRyYWNrLT5pZCgpKTsKICAgICAgICAgICAgIEFTU0VSVCh0ZXh0VHJhY2spOwotICAgICAgICAg
ICAgZG93bmNhc3Q8SW5iYW5kVGV4dFRyYWNrPigqdGV4dFRyYWNrKS5zZXRQcml2YXRlKHRleHRU
cmFja0luZm8udHJhY2spOworICAgICAgICAgICAgZG93bmNhc3Q8SW5iYW5kVGV4dFRyYWNrPigq
dGV4dFRyYWNrKS5zZXRQcml2YXRlKCp0ZXh0VHJhY2tJbmZvLnRyYWNrKTsKICAgICAgICAgfQog
CiAgICAgICAgIC8vIDMuMyBTZXQgdGhlIG5lZWQgcmFuZG9tIGFjY2VzcyBwb2ludCBmbGFnIG9u
IGFsbCB0cmFjayBidWZmZXJzIHRvIHRydWUuCkBAIC0xMDc2LDE2ICsxMDcwLDE0IEBAIHZvaWQg
U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9u
U2VnbWVudChTb3VyY2VCdWZmCiAKICAgICAgICAgLy8gNS4yIEZvciBlYWNoIGF1ZGlvIHRyYWNr
IGluIHRoZSBpbml0aWFsaXphdGlvbiBzZWdtZW50LCBydW4gZm9sbG93aW5nIHN0ZXBzOgogICAg
ICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2tJbmZvIDogc2VnbWVudC5hdWRpb1RyYWNrcykgewot
ICAgICAgICAgICAgQXVkaW9UcmFja1ByaXZhdGUqIGF1ZGlvVHJhY2tQcml2YXRlID0gYXVkaW9U
cmFja0luZm8udHJhY2suZ2V0KCk7Ci0KICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
c3RlcHMgNS4yLjEtNS4yLjguMSBhcyBwZXIgRWRpdG9yJ3MgRHJhZnQgMDkgSmFudWFyeSAyMDE1
LCBhbmQgcmVvcmRlciB0aGlzCiAgICAgICAgICAgICAvLyA1LjIuMSBMZXQgbmV3IGF1ZGlvIHRy
YWNrIGJlIGEgbmV3IEF1ZGlvVHJhY2sgb2JqZWN0LgogICAgICAgICAgICAgLy8gNS4yLjIgR2Vu
ZXJhdGUgYSB1bmlxdWUgSUQgYW5kIGFzc2lnbiBpdCB0byB0aGUgaWQgcHJvcGVydHkgb24gbmV3
IHZpZGVvIHRyYWNrLgotICAgICAgICAgICAgYXV0byBuZXdBdWRpb1RyYWNrID0gQXVkaW9UcmFj
azo6Y3JlYXRlKHRoaXMsIGF1ZGlvVHJhY2tQcml2YXRlKTsKKyAgICAgICAgICAgIGF1dG8gbmV3
QXVkaW9UcmFjayA9IEF1ZGlvVHJhY2s6OmNyZWF0ZSgqdGhpcywgKmF1ZGlvVHJhY2tJbmZvLnRy
YWNrKTsKICAgICAgICAgICAgIG5ld0F1ZGlvVHJhY2stPnNldFNvdXJjZUJ1ZmZlcih0aGlzKTsK
IAogICAgICAgICAgICAgLy8gNS4yLjMgSWYgYXVkaW9UcmFja3MubGVuZ3RoIGVxdWFscyAwLCB0
aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICAgICAgaWYgKCFhdWRpb1RyYWNr
cygpLT5sZW5ndGgoKSkgeworICAgICAgICAgICAgaWYgKCFhdWRpb1RyYWNrcygpLmxlbmd0aCgp
KSB7CiAgICAgICAgICAgICAgICAgLy8gNS4yLjMuMSBTZXQgdGhlIGVuYWJsZWQgcHJvcGVydHkg
b24gbmV3IGF1ZGlvIHRyYWNrIHRvIHRydWUuCiAgICAgICAgICAgICAgICAgbmV3QXVkaW9UcmFj
ay0+c2V0RW5hYmxlZCh0cnVlKTsKIApAQCAtMTA5Nyw3ICsxMDg5LDcgQEAgdm9pZCBTb3VyY2VC
dWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50
KFNvdXJjZUJ1ZmYKICAgICAgICAgICAgIC8vIDUuMi41IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEg
dHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlz
CiAgICAgICAgICAgICAvLyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tF
dmVudCBpbnRlcmZhY2UsIGF0IHRoZSBBdWRpb1RyYWNrTGlzdCBvYmplY3QKICAgICAgICAgICAg
IC8vIHJlZmVyZW5jZWQgYnkgdGhlIGF1ZGlvVHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGlzIFNvdXJj
ZUJ1ZmZlciBvYmplY3QuCi0gICAgICAgICAgICBhdWRpb1RyYWNrcygpLT5hcHBlbmQobmV3QXVk
aW9UcmFjay5jb3B5UmVmKCkpOworICAgICAgICAgICAgYXVkaW9UcmFja3MoKS5hcHBlbmQobmV3
QXVkaW9UcmFjay5jb3B5UmVmKCkpOwogCiAgICAgICAgICAgICAvLyA1LjIuNiBBZGQgbmV3IGF1
ZGlvIHRyYWNrIHRvIHRoZSBhdWRpb1RyYWNrcyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVs
ZW1lbnQuCiAgICAgICAgICAgICAvLyA1LjIuNyBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHRydXN0
ZWQgZXZlbnQgbmFtZWQgYWRkdHJhY2ssIHRoYXQgZG9lcyBub3QgYnViYmxlIGFuZCBpcwpAQCAt
MTEwNyw3ICsxMDk5LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKIAogICAgICAgICAgICAg
Ly8gNS4yLjggQ3JlYXRlIGEgbmV3IHRyYWNrIGJ1ZmZlciB0byBzdG9yZSBjb2RlZCBmcmFtZXMg
Zm9yIHRoaXMgdHJhY2suCiAgICAgICAgICAgICBBU1NFUlQoIW1fdHJhY2tCdWZmZXJNYXAuY29u
dGFpbnMobmV3QXVkaW9UcmFjay0+aWQoKSkpOwotICAgICAgICAgICAgVHJhY2tCdWZmZXImIHRy
YWNrQnVmZmVyID0gbV90cmFja0J1ZmZlck1hcC5hZGQobmV3QXVkaW9UcmFjay0+aWQoKSwgVHJh
Y2tCdWZmZXIoKSkuaXRlcmF0b3ItPnZhbHVlOworICAgICAgICAgICAgYXV0byYgdHJhY2tCdWZm
ZXIgPSBtX3RyYWNrQnVmZmVyTWFwLmFkZChuZXdBdWRpb1RyYWNrLT5pZCgpLCBUcmFja0J1ZmZl
cigpKS5pdGVyYXRvci0+dmFsdWU7CiAKICAgICAgICAgICAgIC8vIDUuMi45IEFkZCB0aGUgdHJh
Y2sgZGVzY3JpcHRpb24gZm9yIHRoaXMgdHJhY2sgdG8gdGhlIHRyYWNrIGJ1ZmZlci4KICAgICAg
ICAgICAgIHRyYWNrQnVmZmVyLmRlc2NyaXB0aW9uID0gYXVkaW9UcmFja0luZm8uZGVzY3JpcHRp
b247CkBAIC0xMTE3LDE2ICsxMTA5LDE0IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZm
ZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmCiAKICAg
ICAgICAgLy8gNS4zIEZvciBlYWNoIHZpZGVvIHRyYWNrIGluIHRoZSBpbml0aWFsaXphdGlvbiBz
ZWdtZW50LCBydW4gZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICBmb3IgKGF1dG8mIHZpZGVvVHJh
Y2tJbmZvIDogc2VnbWVudC52aWRlb1RyYWNrcykgewotICAgICAgICAgICAgVmlkZW9UcmFja1By
aXZhdGUqIHZpZGVvVHJhY2tQcml2YXRlID0gdmlkZW9UcmFja0luZm8udHJhY2suZ2V0KCk7Ci0K
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgc3RlcHMgNS4zLjEtNS4zLjguMSBhcyBw
ZXIgRWRpdG9yJ3MgRHJhZnQgMDkgSmFudWFyeSAyMDE1LCBhbmQgcmVvcmRlciB0aGlzCiAgICAg
ICAgICAgICAvLyA1LjMuMSBMZXQgbmV3IHZpZGVvIHRyYWNrIGJlIGEgbmV3IFZpZGVvVHJhY2sg
b2JqZWN0LgogICAgICAgICAgICAgLy8gNS4zLjIgR2VuZXJhdGUgYSB1bmlxdWUgSUQgYW5kIGFz
c2lnbiBpdCB0byB0aGUgaWQgcHJvcGVydHkgb24gbmV3IHZpZGVvIHRyYWNrLgotICAgICAgICAg
ICAgYXV0byBuZXdWaWRlb1RyYWNrID0gVmlkZW9UcmFjazo6Y3JlYXRlKHRoaXMsIHZpZGVvVHJh
Y2tQcml2YXRlKTsKKyAgICAgICAgICAgIGF1dG8gbmV3VmlkZW9UcmFjayA9IFZpZGVvVHJhY2s6
OmNyZWF0ZSgqdGhpcywgKnZpZGVvVHJhY2tJbmZvLnRyYWNrKTsKICAgICAgICAgICAgIG5ld1Zp
ZGVvVHJhY2stPnNldFNvdXJjZUJ1ZmZlcih0aGlzKTsKIAogICAgICAgICAgICAgLy8gNS4zLjMg
SWYgdmlkZW9UcmFja3MubGVuZ3RoIGVxdWFscyAwLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0
ZXBzOgotICAgICAgICAgICAgaWYgKCF2aWRlb1RyYWNrcygpLT5sZW5ndGgoKSkgeworICAgICAg
ICAgICAgaWYgKCF2aWRlb1RyYWNrcygpLmxlbmd0aCgpKSB7CiAgICAgICAgICAgICAgICAgLy8g
NS4zLjMuMSBTZXQgdGhlIHNlbGVjdGVkIHByb3BlcnR5IG9uIG5ldyB2aWRlbyB0cmFjayB0byB0
cnVlLgogICAgICAgICAgICAgICAgIG5ld1ZpZGVvVHJhY2stPnNldFNlbGVjdGVkKHRydWUpOwog
CkBAIC0xMTM4LDcgKzExMjgsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJp
dmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogICAgICAgICAg
ICAgLy8gNS4zLjUgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFk
ZHRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMKICAgICAgICAgICAgIC8vIG5vdCBj
YW5jZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGludGVyZmFjZSwgYXQgdGhl
IFZpZGVvVHJhY2tMaXN0IG9iamVjdAogICAgICAgICAgICAgLy8gcmVmZXJlbmNlZCBieSB0aGUg
dmlkZW9UcmFja3MgYXR0cmlidXRlIG9uIHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4KLSAgICAg
ICAgICAgIHZpZGVvVHJhY2tzKCktPmFwcGVuZChuZXdWaWRlb1RyYWNrLmNvcHlSZWYoKSk7Cisg
ICAgICAgICAgICB2aWRlb1RyYWNrcygpLmFwcGVuZChuZXdWaWRlb1RyYWNrLmNvcHlSZWYoKSk7
CiAKICAgICAgICAgICAgIC8vIDUuMy42IEFkZCBuZXcgdmlkZW8gdHJhY2sgdG8gdGhlIHZpZGVv
VHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAgICAgICAgICAgIC8v
IDUuMy43IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0cmFj
aywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCkBAIC0xMTQ4LDcgKzExMzgsNyBAQCB2b2lk
IFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlv
blNlZ21lbnQoU291cmNlQnVmZgogCiAgICAgICAgICAgICAvLyA1LjMuOCBDcmVhdGUgYSBuZXcg
dHJhY2sgYnVmZmVyIHRvIHN0b3JlIGNvZGVkIGZyYW1lcyBmb3IgdGhpcyB0cmFjay4KICAgICAg
ICAgICAgIEFTU0VSVCghbV90cmFja0J1ZmZlck1hcC5jb250YWlucyhuZXdWaWRlb1RyYWNrLT5p
ZCgpKSk7Ci0gICAgICAgICAgICBUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVm
ZmVyTWFwLmFkZChuZXdWaWRlb1RyYWNrLT5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+
dmFsdWU7CisgICAgICAgICAgICBhdXRvJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAu
YWRkKG5ld1ZpZGVvVHJhY2stPmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsK
IAogICAgICAgICAgICAgLy8gNS4zLjkgQWRkIHRoZSB0cmFjayBkZXNjcmlwdGlvbiBmb3IgdGhp
cyB0cmFjayB0byB0aGUgdHJhY2sgYnVmZmVyLgogICAgICAgICAgICAgdHJhY2tCdWZmZXIuZGVz
Y3JpcHRpb24gPSB2aWRlb1RyYWNrSW5mby5kZXNjcmlwdGlvbjsKQEAgLTExNTgsMzMgKzExNDgs
MzMgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5p
dGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKIAogICAgICAgICAvLyA1LjQgRm9yIGVhY2gg
dGV4dCB0cmFjayBpbiB0aGUgaW5pdGlhbGl6YXRpb24gc2VnbWVudCwgcnVuIGZvbGxvd2luZyBz
dGVwczoKICAgICAgICAgZm9yIChhdXRvJiB0ZXh0VHJhY2tJbmZvIDogc2VnbWVudC50ZXh0VHJh
Y2tzKSB7Ci0gICAgICAgICAgICBJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiB0ZXh0VHJhY2tQcml2
YXRlID0gdGV4dFRyYWNrSW5mby50cmFjay5nZXQoKTsKKyAgICAgICAgICAgIGF1dG8mIHRleHRU
cmFja1ByaXZhdGUgPSAqdGV4dFRyYWNrSW5mby50cmFjazsKIAogICAgICAgICAgICAgLy8gRklY
TUU6IEltcGxlbWVudCBzdGVwcyA1LjQuMS01LjQuOC4xIGFzIHBlciBFZGl0b3IncyBEcmFmdCAw
OSBKYW51YXJ5IDIwMTUsIGFuZCByZW9yZGVyIHRoaXMKICAgICAgICAgICAgIC8vIDUuNC4xIExl
dCBuZXcgdGV4dCB0cmFjayBiZSBhIG5ldyBUZXh0VHJhY2sgb2JqZWN0IHdpdGggaXRzIHByb3Bl
cnRpZXMgcG9wdWxhdGVkIHdpdGggdGhlCiAgICAgICAgICAgICAvLyBhcHByb3ByaWF0ZSBpbmZv
cm1hdGlvbiBmcm9tIHRoZSBpbml0aWFsaXphdGlvbiBzZWdtZW50LgotICAgICAgICAgICAgUmVm
UHRyPEluYmFuZFRleHRUcmFjaz4gbmV3VGV4dFRyYWNrID0gSW5iYW5kVGV4dFRyYWNrOjpjcmVh
dGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0aGlzLCB0ZXh0VHJhY2tQcml2YXRlKTsKKyAg
ICAgICAgICAgIGF1dG8gbmV3VGV4dFRyYWNrID0gSW5iYW5kVGV4dFRyYWNrOjpjcmVhdGUoKnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsIHRleHRUcmFja1ByaXZhdGUpOwogCiAgICAg
ICAgICAgICAvLyA1LjQuMiBJZiB0aGUgbW9kZSBwcm9wZXJ0eSBvbiBuZXcgdGV4dCB0cmFjayBl
cXVhbHMgInNob3dpbmciIG9yICJoaWRkZW4iLCB0aGVuIHNldCBhY3RpdmUKICAgICAgICAgICAg
IC8vIHRyYWNrIGZsYWcgdG8gdHJ1ZS4KLSAgICAgICAgICAgIGlmICh0ZXh0VHJhY2tQcml2YXRl
LT5tb2RlKCkgIT0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6RGlzYWJsZWQpCisgICAgICAgICAg
ICBpZiAodGV4dFRyYWNrUHJpdmF0ZS5tb2RlKCkgIT0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6
RGlzYWJsZWQpCiAgICAgICAgICAgICAgICAgYWN0aXZlVHJhY2tGbGFnID0gdHJ1ZTsKIAogICAg
ICAgICAgICAgLy8gNS40LjMgQWRkIG5ldyB0ZXh0IHRyYWNrIHRvIHRoZSB0ZXh0VHJhY2tzIGF0
dHJpYnV0ZSBvbiB0aGlzIFNvdXJjZUJ1ZmZlciBvYmplY3QuCiAgICAgICAgICAgICAvLyA1LjQu
NCBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgYWRkdHJhY2ssIHRo
YXQgZG9lcyBub3QgYnViYmxlIGFuZCBpcwogICAgICAgICAgICAgLy8gbm90IGNhbmNlbGFibGUs
IGFuZCB0aGF0IHVzZXMgdGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0ZXh0VHJhY2tzIGF0
dHJpYnV0ZSBvbiB0aGlzCiAgICAgICAgICAgICAvLyBTb3VyY2VCdWZmZXIgb2JqZWN0LgotICAg
ICAgICAgICAgdGV4dFRyYWNrcygpLT5hcHBlbmQoKm5ld1RleHRUcmFjayk7CisgICAgICAgICAg
ICB0ZXh0VHJhY2tzKCkuYXBwZW5kKG5ld1RleHRUcmFjay5nZXQoKSk7CiAKICAgICAgICAgICAg
IC8vIDUuNC41IEFkZCBuZXcgdGV4dCB0cmFjayB0byB0aGUgdGV4dFRyYWNrcyBhdHRyaWJ1dGUg
b24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCiAgICAgICAgICAgICAvLyA1LjQuNiBRdWV1ZSBhIHRh
c2sgdG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgYWRkdHJhY2ssIHRoYXQgZG9lcyBub3Qg
YnViYmxlIGFuZCBpcwogICAgICAgICAgICAgLy8gbm90IGNhbmNlbGFibGUsIGFuZCB0aGF0IHVz
ZXMgdGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgVGV4dFRyYWNrTGlzdCBvYmplY3QK
ICAgICAgICAgICAgIC8vIHJlZmVyZW5jZWQgYnkgdGhlIHRleHRUcmFja3MgYXR0cmlidXRlIG9u
IHRoZSBIVE1MTWVkaWFFbGVtZW50LgotICAgICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVu
dCgpLT50ZXh0VHJhY2tzKCkuYXBwZW5kKG5ld1RleHRUcmFjay5yZWxlYXNlTm9uTnVsbCgpKTsK
KyAgICAgICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dGV4dFRyYWNrcygpLmFwcGVu
ZChXVEZNb3ZlKG5ld1RleHRUcmFjaykpOwogCiAgICAgICAgICAgICAvLyA1LjQuNyBDcmVhdGUg
YSBuZXcgdHJhY2sgYnVmZmVyIHRvIHN0b3JlIGNvZGVkIGZyYW1lcyBmb3IgdGhpcyB0cmFjay4K
LSAgICAgICAgICAgIEFTU0VSVCghbV90cmFja0J1ZmZlck1hcC5jb250YWlucyh0ZXh0VHJhY2tQ
cml2YXRlLT5pZCgpKSk7Ci0gICAgICAgICAgICBUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIgPSBt
X3RyYWNrQnVmZmVyTWFwLmFkZCh0ZXh0VHJhY2tQcml2YXRlLT5pZCgpLCBUcmFja0J1ZmZlcigp
KS5pdGVyYXRvci0+dmFsdWU7CisgICAgICAgICAgICBBU1NFUlQoIW1fdHJhY2tCdWZmZXJNYXAu
Y29udGFpbnModGV4dFRyYWNrUHJpdmF0ZS5pZCgpKSk7CisgICAgICAgICAgICBhdXRvJiB0cmFj
a0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKHRleHRUcmFja1ByaXZhdGUuaWQoKSwgVHJh
Y2tCdWZmZXIoKSkuaXRlcmF0b3ItPnZhbHVlOwogCiAgICAgICAgICAgICAvLyA1LjQuOCBBZGQg
dGhlIHRyYWNrIGRlc2NyaXB0aW9uIGZvciB0aGlzIHRyYWNrIHRvIHRoZSB0cmFjayBidWZmZXIu
CiAgICAgICAgICAgICB0cmFja0J1ZmZlci5kZXNjcmlwdGlvbiA9IHRleHRUcmFja0luZm8uZGVz
Y3JpcHRpb247CkBAIC0xMjMxLDkgKzEyMjEsOSBAQCBib29sIFNvdXJjZUJ1ZmZlcjo6dmFsaWRh
dGVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgSW5pdGlhbGl6YXRpb25TZWdtZW50JiBzZQog
CiAgICAgLy8gTm90ZTogdGhvc2UgYXJlIGNoZWNrcyBmcm9tIHN0ZXAgMy4xCiAgICAgLy8gICAq
IFRoZSBudW1iZXIgb2YgYXVkaW8sIHZpZGVvLCBhbmQgdGV4dCB0cmFja3MgbWF0Y2ggd2hhdCB3
YXMgaW4gdGhlIGZpcnN0IGluaXRpYWxpemF0aW9uIHNlZ21lbnQuCi0gICAgaWYgKHNlZ21lbnQu
YXVkaW9UcmFja3Muc2l6ZSgpICE9IGF1ZGlvVHJhY2tzKCktPmxlbmd0aCgpCi0gICAgICAgIHx8
IHNlZ21lbnQudmlkZW9UcmFja3Muc2l6ZSgpICE9IHZpZGVvVHJhY2tzKCktPmxlbmd0aCgpCi0g
ICAgICAgIHx8IHNlZ21lbnQudGV4dFRyYWNrcy5zaXplKCkgIT0gdGV4dFRyYWNrcygpLT5sZW5n
dGgoKSkKKyAgICBpZiAoc2VnbWVudC5hdWRpb1RyYWNrcy5zaXplKCkgIT0gYXVkaW9UcmFja3Mo
KS5sZW5ndGgoKQorICAgICAgICB8fCBzZWdtZW50LnZpZGVvVHJhY2tzLnNpemUoKSAhPSB2aWRl
b1RyYWNrcygpLmxlbmd0aCgpCisgICAgICAgIHx8IHNlZ21lbnQudGV4dFRyYWNrcy5zaXplKCkg
IT0gdGV4dFRyYWNrcygpLmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAv
LyAgICogVGhlIGNvZGVjcyBmb3IgZWFjaCB0cmFjaywgbWF0Y2ggd2hhdCB3YXMgc3BlY2lmaWVk
IGluIHRoZSBmaXJzdCBpbml0aWFsaXphdGlvbiBzZWdtZW50LgpAQCAtMTMxOSw3ICsxMzA5LDcg
QEAgdm9pZCBTb3VyY2VCdWZmZXI6OmFwcGVuZEVycm9yKGJvb2wgZGVjb2RlRXJyb3JQYXJhbSkK
ICAgICAgICAgbV9zb3VyY2UtPnN0cmVhbUVuZGVkV2l0aEVycm9yKE1lZGlhU291cmNlOjpFbmRP
ZlN0cmVhbUVycm9yOjpEZWNvZGUpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIE1lZGlhU2Ft
cGxlJiBzYW1wbGUpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJl
Y2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsKICAgICBpZiAoaXNSZW1vdmVkKCkp
CiAgICAgICAgIHJldHVybjsKQEAgLTE2NjYsMzAgKzE2NTYsMzAgQEAgYm9vbCBTb3VyY2VCdWZm
ZXI6Omhhc1ZpZGVvKCkgY29uc3QKICAgICByZXR1cm4gbV92aWRlb1RyYWNrcyAmJiBtX3ZpZGVv
VHJhY2tzLT5sZW5ndGgoKTsKIH0KIAotYm9vbCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclBy
aXZhdGVIYXNBdWRpbyhjb25zdCBTb3VyY2VCdWZmZXJQcml2YXRlKikgY29uc3QKK2Jvb2wgU291
cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oKSBjb25zdAogewogICAgIHJl
dHVybiBoYXNBdWRpbygpOwogfQogCi1ib29sIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJp
dmF0ZUhhc1ZpZGVvKGNvbnN0IFNvdXJjZUJ1ZmZlclByaXZhdGUqKSBjb25zdAorYm9vbCBTb3Vy
Y2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNWaWRlbygpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGhhc1ZpZGVvKCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjp2aWRlb1RyYWNrU2VsZWN0
ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqIHRyYWNrKQordm9pZCBTb3VyY2VCdWZmZXI6OnZpZGVvVHJh
Y2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayYgdHJhY2spCiB7CiAgICAgLy8gMi40LjUgQ2hh
bmdlcyB0byBzZWxlY3RlZC9lbmFibGVkIHRyYWNrIHN0YXRlCiAgICAgLy8gSWYgdGhlIHNlbGVj
dGVkIHZpZGVvIHRyYWNrIGNoYW5nZXMsIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6CiAg
ICAgLy8gMS4gSWYgdGhlIFNvdXJjZUJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhlIHByZXZpb3Vz
bHkgc2VsZWN0ZWQgdmlkZW8gdHJhY2sgaXMgbm90IGFzc29jaWF0ZWQgd2l0aAogICAgIC8vIGFu
eSBvdGhlciBlbmFibGVkIHRyYWNrcywgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYg
KCF0cmFjay0+c2VsZWN0ZWQoKQorICAgIGlmICghdHJhY2suc2VsZWN0ZWQoKQogICAgICAgICAm
JiAoIW1fdmlkZW9UcmFja3MgfHwgIW1fdmlkZW9UcmFja3MtPmlzQW55VHJhY2tFbmFibGVkKCkp
CiAgICAgICAgICYmICghbV9hdWRpb1RyYWNrcyB8fCAhbV9hdWRpb1RyYWNrcy0+aXNBbnlUcmFj
a0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX3RleHRUcmFja3MgfHwgIW1fdGV4dFRyYWNrcy0+
aXNBbnlUcmFja0VuYWJsZWQoKSkpIHsKICAgICAgICAgLy8gMS4xIFJlbW92ZSB0aGUgU291cmNl
QnVmZmVyIGZyb20gYWN0aXZlU291cmNlQnVmZmVycy4KICAgICAgICAgLy8gMS4yIFF1ZXVlIGEg
dGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHJlbW92ZXNvdXJjZWJ1ZmZlciBhdCBh
Y3RpdmVTb3VyY2VCdWZmZXJzCiAgICAgICAgIHNldEFjdGl2ZShmYWxzZSk7Ci0gICAgfSBlbHNl
IGlmICh0cmFjay0+c2VsZWN0ZWQoKSkgeworICAgIH0gZWxzZSBpZiAodHJhY2suc2VsZWN0ZWQo
KSkgewogICAgICAgICAvLyAyLiBJZiB0aGUgU291cmNlQnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0
aGUgbmV3bHkgc2VsZWN0ZWQgdmlkZW8gdHJhY2sgaXMgbm90IGFscmVhZHkgaW4gYWN0aXZlU291
cmNlQnVmZmVycywKICAgICAgICAgLy8gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6CiAgICAgICAg
IC8vIDIuMSBBZGQgdGhlIFNvdXJjZUJ1ZmZlciB0byBhY3RpdmVTb3VyY2VCdWZmZXJzLgpAQCAt
MTY5NywyNiArMTY4NywyNiBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6dmlkZW9UcmFja1NlbGVjdGVk
Q2hhbmdlZChWaWRlb1RyYWNrKiB0cmFjaykKICAgICAgICAgc2V0QWN0aXZlKHRydWUpOwogICAg
IH0KIAotICAgIGlmIChtX3ZpZGVvVHJhY2tzICYmIG1fdmlkZW9UcmFja3MtPmNvbnRhaW5zKCp0
cmFjaykpCisgICAgaWYgKG1fdmlkZW9UcmFja3MgJiYgbV92aWRlb1RyYWNrcy0+Y29udGFpbnMo
dHJhY2spKQogICAgICAgICBtX3ZpZGVvVHJhY2tzLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAK
ICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCkt
PnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQodHJhY2spOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZl
cjo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2sqIHRyYWNrKQordm9pZCBTb3Vy
Y2VCdWZmZXI6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrJiB0cmFjaykKIHsK
ICAgICAvLyAyLjQuNSBDaGFuZ2VzIHRvIHNlbGVjdGVkL2VuYWJsZWQgdHJhY2sgc3RhdGUKICAg
ICAvLyBJZiBhbiBhdWRpbyB0cmFjayBiZWNvbWVzIGRpc2FibGVkIGFuZCB0aGUgU291cmNlQnVm
ZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYWNrIGlzIG5vdAogICAgIC8vIGFzc29jaWF0ZWQg
d2l0aCBhbnkgb3RoZXIgZW5hYmxlZCBvciBzZWxlY3RlZCB0cmFjaywgdGhlbiBydW4gdGhlIGZv
bGxvd2luZyBzdGVwczoKLSAgICBpZiAoIXRyYWNrLT5lbmFibGVkKCkKKyAgICBpZiAoIXRyYWNr
LmVuYWJsZWQoKQogICAgICAgICAmJiAoIW1fdmlkZW9UcmFja3MgfHwgIW1fdmlkZW9UcmFja3Mt
PmlzQW55VHJhY2tFbmFibGVkKCkpCiAgICAgICAgICYmICghbV9hdWRpb1RyYWNrcyB8fCAhbV9h
dWRpb1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX3RleHRUcmFj
a3MgfHwgIW1fdGV4dFRyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkpIHsKICAgICAgICAgLy8g
MS4gUmVtb3ZlIHRoZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBhdWRpbyB0cmFj
ayBmcm9tIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMKICAgICAgICAgLy8gMi4gUXVldWUgYSB0YXNrIHRv
IGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgcmVtb3Zlc291cmNlYnVmZmVyIGF0IGFjdGl2ZVNv
dXJjZUJ1ZmZlcnMKICAgICAgICAgc2V0QWN0aXZlKGZhbHNlKTsKLSAgICB9IGVsc2UgaWYgKHRy
YWNrLT5lbmFibGVkKCkpIHsKKyAgICB9IGVsc2UgaWYgKHRyYWNrLmVuYWJsZWQoKSkgewogICAg
ICAgICAvLyBJZiBhbiBhdWRpbyB0cmFjayBiZWNvbWVzIGVuYWJsZWQgYW5kIHRoZSBTb3VyY2VC
dWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdHJhY2sgaXMKICAgICAgICAgLy8gbm90IGFscmVh
ZHkgaW4gYWN0aXZlU291cmNlQnVmZmVycywgdGhlbiBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoK
ICAgICAgICAgLy8gMS4gQWRkIHRoZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBh
dWRpbyB0cmFjayB0byBhY3RpdmVTb3VyY2VCdWZmZXJzCkBAIC0xNzI0LDE5ICsxNzE0LDE5IEBA
IHZvaWQgU291cmNlQnVmZmVyOjphdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayog
dHJhY2spCiAgICAgICAgIHNldEFjdGl2ZSh0cnVlKTsKICAgICB9CiAKLSAgICBpZiAobV9hdWRp
b1RyYWNrcyAmJiBtX2F1ZGlvVHJhY2tzLT5jb250YWlucygqdHJhY2spKQorICAgIGlmIChtX2F1
ZGlvVHJhY2tzICYmIG1fYXVkaW9UcmFja3MtPmNvbnRhaW5zKHRyYWNrKSkKICAgICAgICAgbV9h
dWRpb1RyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogCiAgICAgaWYgKCFpc1JlbW92ZWQo
KSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT5hdWRpb1RyYWNrRW5hYmxlZENo
YW5nZWQodHJhY2spOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrTW9kZUNoYW5n
ZWQoVGV4dFRyYWNrKiB0cmFjaykKK3ZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tNb2RlQ2hh
bmdlZChUZXh0VHJhY2smIHRyYWNrKQogewogICAgIC8vIDIuNC41IENoYW5nZXMgdG8gc2VsZWN0
ZWQvZW5hYmxlZCB0cmFjayBzdGF0ZQogICAgIC8vIElmIGEgdGV4dCB0cmFjayBtb2RlIGJlY29t
ZXMgImRpc2FibGVkIiBhbmQgdGhlIFNvdXJjZUJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhpcyB0
cmFjayBpcyBub3QKICAgICAvLyBhc3NvY2lhdGVkIHdpdGggYW55IG90aGVyIGVuYWJsZWQgb3Ig
c2VsZWN0ZWQgdHJhY2ssIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgaWYgKHRy
YWNrLT5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZAorICAgIGlmICh0cmFjay5t
b2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZAogICAgICAgICAmJiAoIW1fdmlkZW9U
cmFja3MgfHwgIW1fdmlkZW9UcmFja3MtPmlzQW55VHJhY2tFbmFibGVkKCkpCiAgICAgICAgICYm
ICghbV9hdWRpb1RyYWNrcyB8fCAhbV9hdWRpb1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkK
ICAgICAgICAgJiYgKCFtX3RleHRUcmFja3MgfHwgIW1fdGV4dFRyYWNrcy0+aXNBbnlUcmFja0Vu
YWJsZWQoKSkpIHsKQEAgLTE3NTEsNTYgKzE3NDEsNTYgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnRl
eHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCiAgICAgICAgIHNldEFjdGl2ZSh0
cnVlKTsKICAgICB9CiAKLSAgICBpZiAobV90ZXh0VHJhY2tzICYmIG1fdGV4dFRyYWNrcy0+Y29u
dGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV90ZXh0VHJhY2tzICYmIG1fdGV4dFRyYWNrcy0+Y29u
dGFpbnModHJhY2spKQogICAgICAgICBtX3RleHRUcmFja3MtPnNjaGVkdWxlQ2hhbmdlRXZlbnQo
KTsKIAogICAgIGlmICghaXNSZW1vdmVkKCkpCiAgICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1l
bnQoKS0+dGV4dFRyYWNrTW9kZUNoYW5nZWQodHJhY2spOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZl
cjo6dGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQor
dm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0
VHJhY2tDdWUmIGN1ZSkKIHsKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJj
ZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja0FkZEN1ZSh0cmFjaywgY3VlKTsKIH0KIAotdm9p
ZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRy
YWNrQ3VlTGlzdCBjb25zdCogY3VlTGlzdCkKK3ZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tB
ZGRDdWVzKFRleHRUcmFjayYgdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZUxpc3Qp
CiB7CiAgICAgaWYgKCFpc1JlbW92ZWQoKSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVu
dCgpLT50ZXh0VHJhY2tBZGRDdWVzKHRyYWNrLCBjdWVMaXN0KTsKIH0KIAotdm9pZCBTb3VyY2VC
dWZmZXI6OnRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWUm
IGN1ZSkKK3ZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiB0
cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCiB7CiAgICAgaWYgKCFpc1JlbW92ZWQoKSkKICAgICAg
ICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tSZW1vdmVDdWUodHJhY2ssIGN1
ZSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFj
ayogdHJhY2ssIFRleHRUcmFja0N1ZUxpc3QgY29uc3QqIGN1ZUxpc3QpCit2b2lkIFNvdXJjZUJ1
ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2smIHRyYWNrLCBjb25zdCBUZXh0VHJh
Y2tDdWVMaXN0JiBjdWVMaXN0KQogewogICAgIGlmICghaXNSZW1vdmVkKCkpCiAgICAgICAgIG1f
c291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0cmFjaywgY3VlTGlz
dCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJh
Y2sqIHRyYWNrKQordm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRU
cmFjayYgdHJhY2spCiB7CiAgICAgaWYgKCFpc1JlbW92ZWQoKSkKICAgICAgICAgbV9zb3VyY2Ut
Pm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tLaW5kQ2hhbmdlZCh0cmFjayk7CiB9CiAKLXZvaWQg
U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2Ft
cGxlcyhTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXRvbWljU3RyaW5nIHRyYWNrSUQpCit2b2lkIFNv
dXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBs
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKQogewogICAgIExPRyhNZWRpYVNvdXJjZSwg
IlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNh
bXBsZXMoJXApIiwgdGhpcyk7CiAgICAgYXV0byBpdCA9IG1fdHJhY2tCdWZmZXJNYXAuZmluZCh0
cmFja0lEKTsKICAgICBpZiAoaXQgPT0gbV90cmFja0J1ZmZlck1hcC5lbmQoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgVHJhY2tCdWZmZXImIHRyYWNrQnVmZmVyID0gaXQtPnZhbHVlOworICAg
IGF1dG8mIHRyYWNrQnVmZmVyID0gaXQtPnZhbHVlOwogICAgIGlmICghdHJhY2tCdWZmZXIubmVl
ZHNSZWVucXVldWVpbmcgJiYgIW1fc291cmNlLT5pc1NlZWtpbmcoKSkKICAgICAgICAgcHJvdmlk
ZU1lZGlhRGF0YSh0cmFja0J1ZmZlciwgdHJhY2tJRCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVy
Ojpwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5n
IHRyYWNrSUQpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6cHJvdmlkZU1lZGlhRGF0YShUcmFja0J1ZmZl
ciYgdHJhY2tCdWZmZXIsIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkKIHsKICAgICBpZiAo
bV9zb3VyY2UtPmlzU2Vla2luZygpKQogICAgICAgICByZXR1cm47CkBAIC0xODM0LDcgKzE4MjQs
NyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6cHJvdmlkZU1lZGlhRGF0YShUcmFja0J1ZmZlciYgdHJh
Y2tCdWZmZXIsIEF0b21pY1N0cmluZyB0cmFjawogCiAgICAgICAgIHRyYWNrQnVmZmVyLmxhc3RF
bnF1ZXVlZFByZXNlbnRhdGlvblRpbWUgPSBzYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKTsKICAg
ICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkRGVjb2RlRW5kVGltZSA9IHNhbXBsZS0+ZGVj
b2RlVGltZSgpICsgc2FtcGxlLT5kdXJhdGlvbigpOwotICAgICAgICBtX3ByaXZhdGUtPmVucXVl
dWVTYW1wbGUoV1RGTW92ZShzYW1wbGUpLCB0cmFja0lEKTsKKyAgICAgICAgbV9wcml2YXRlLT5l
bnF1ZXVlU2FtcGxlKHNhbXBsZS5yZWxlYXNlTm9uTnVsbCgpLCB0cmFja0lEKTsKICNpZiAhTE9H
X0RJU0FCTEVECiAgICAgICAgICsrZW5xdWV1ZWRTYW1wbGVzOwogI2VuZGlmCkBAIC0xODQzLDcg
KzE4MzMsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6cHJvdmlkZU1lZGlhRGF0YShUcmFja0J1ZmZl
ciYgdHJhY2tCdWZmZXIsIEF0b21pY1N0cmluZyB0cmFjawogICAgIExPRyhNZWRpYVNvdXJjZSwg
IlNvdXJjZUJ1ZmZlcjo6cHJvdmlkZU1lZGlhRGF0YSglcCkgLSBFbnF1ZXVlZCAldSBzYW1wbGVz
IiwgdGhpcywgZW5xdWV1ZWRTYW1wbGVzKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnJlZW5x
dWV1ZU1lZGlhRm9yVGltZShUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIsIEF0b21pY1N0cmluZyB0
cmFja0lELCBjb25zdCBNZWRpYVRpbWUmIHRpbWUpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6cmVlbnF1
ZXVlTWVkaWFGb3JUaW1lKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgY29uc3QgQXRvbWljU3Ry
aW5nJiB0cmFja0lELCBjb25zdCBNZWRpYVRpbWUmIHRpbWUpCiB7CiAgICAgbV9wcml2YXRlLT5m
bHVzaCh0cmFja0lEKTsKICAgICB0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5jbGVhcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKaW5k
ZXggZDllMTc0Nzk5OTI0YWZiMGU4OGQ3NDc3MmU4ZjhhOTFhMmNmMDJiMC4uNWExNDJkNGNhMTAy
MzU0ZWVkODBiYzFhYzFiZWJjMzE1NzZjOGY4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
Q29weXJpZ2h0IChDKSAyMDEzLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDksNiArNDksNyBAQCBj
bGFzcyBBdWRpb1RyYWNrTGlzdDsKIGNsYXNzIEJ1ZmZlclNvdXJjZTsKIGNsYXNzIE1lZGlhU291
cmNlOwogY2xhc3MgUGxhdGZvcm1UaW1lUmFuZ2VzOworY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0
ZTsKIGNsYXNzIFRleHRUcmFja0xpc3Q7CiBjbGFzcyBUaW1lUmFuZ2VzOwogY2xhc3MgVmlkZW9U
cmFja0xpc3Q7CkBAIC02NCw5ICs2NSw5IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRUaW1lc3RhbXBPZmZzZXQoZG91YmxlKTsKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
LSAgICBWaWRlb1RyYWNrTGlzdCogdmlkZW9UcmFja3MoKTsKLSAgICBBdWRpb1RyYWNrTGlzdCog
YXVkaW9UcmFja3MoKTsKLSAgICBUZXh0VHJhY2tMaXN0KiB0ZXh0VHJhY2tzKCk7CisgICAgVmlk
ZW9UcmFja0xpc3QmIHZpZGVvVHJhY2tzKCk7CisgICAgQXVkaW9UcmFja0xpc3QmIGF1ZGlvVHJh
Y2tzKCk7CisgICAgVGV4dFRyYWNrTGlzdCYgdGV4dFRyYWNrcygpOwogI2VuZGlmCiAKICAgICBk
b3VibGUgYXBwZW5kV2luZG93U3RhcnQoKSBjb25zdDsKQEAgLTEyNCwyNSArMTI1LDI0IEBAIHBy
aXZhdGU6CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFs
OwogICAgIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0IGZpbmFs
OwogCi0gICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9u
U2VnbWVudChTb3VyY2VCdWZmZXJQcml2YXRlKiwgY29uc3QgSW5pdGlhbGl6YXRpb25TZWdtZW50
JikgZmluYWw7Ci0gICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShT
b3VyY2VCdWZmZXJQcml2YXRlKiwgTWVkaWFTYW1wbGUmKSBmaW5hbDsKLSAgICBib29sIHNvdXJj
ZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyhjb25zdCBTb3VyY2VCdWZmZXJQcml2YXRlKikgY29uc3Qg
ZmluYWw7Ci0gICAgYm9vbCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8oY29uc3QgU291cmNl
QnVmZmVyUHJpdmF0ZSopIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0
ZURpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoU291cmNlQnVmZmVyUHJpdmF0ZSosIEF0b21p
Y1N0cmluZyB0cmFja0lEKSBmaW5hbDsKLSAgICBNZWRpYVRpbWUgc291cmNlQnVmZmVyUHJpdmF0
ZUZhc3RTZWVrVGltZUZvck1lZGlhVGltZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiBuZWdhdGl2ZVRocmVzaG9sZCwgY29uc3QgTWVkaWFU
aW1lJiBwb3NpdGl2ZVRocmVzaG9sZCkgZmluYWw7Ci0gICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2
YXRlQXBwZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIEFwcGVuZFJlc3VsdCkgZmlu
YWw7Ci0gICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmluZ0Vycm9y
KFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBpbnQgZXJyb3JDb2RlKSBmaW5hbDsKLQotICAgIHZvaWQg
YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2sqKSBmaW5hbDsKLQotICAgIHZvaWQg
dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrKikgZmluYWw7Ci0KLSAgICB2b2lk
IHRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRy
YWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tBZGRD
dWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBmaW5hbDsKLSAgICB2b2lk
IHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCop
IGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayosIFRleHRUcmFja0N1
ZSYpIGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayosIFRleHRU
cmFja0N1ZSYpIGZpbmFsOworICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJ
bml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgSW5pdGlhbGl6YXRpb25TZWdtZW50JikgZmluYWw7
CisgICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBs
ZSYpIGZpbmFsOworICAgIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKCkgY29uc3Qg
ZmluYWw7CisgICAgYm9vbCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8oKSBjb25zdCBmaW5h
bDsKKyAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1w
bGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkgZmluYWw7CisgICAgTWVkaWFUaW1lIHNv
dXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1l
JiwgY29uc3QgTWVkaWFUaW1lJiBuZWdhdGl2ZVRocmVzaG9sZCwgY29uc3QgTWVkaWFUaW1lJiBw
b3NpdGl2ZVRocmVzaG9sZCkgZmluYWw7CisgICAgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlQXBw
ZW5kQ29tcGxldGUoQXBwZW5kUmVzdWx0KSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoaW50IGVycm9yQ29kZSkgZmluYWw7CisKKyAg
ICB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrJikgZmluYWw7CisgICAg
dm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2smKSBmaW5hbDsKKworICAg
IHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJikgZmluYWw7CisgICAgdm9pZCB0
ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2smKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFj
a0FkZEN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIGZpbmFsOworICAg
IHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVM
aXN0JikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrJiwgVGV4dFRy
YWNrQ3VlJikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiwg
VGV4dFRyYWNrQ3VlJikgZmluYWw7CiAKICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRh
cmdldEludGVyZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNvdXJjZUJ1ZmZlckV2ZW50VGFy
Z2V0SW50ZXJmYWNlVHlwZTsgfQogCkBAIC0xNTcsOCArMTU3LDggQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgdmFsaWRhdGVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgSW5pdGlhbGl6YXRpb25T
ZWdtZW50Jik7CiAKLSAgICB2b2lkIHJlZW5xdWV1ZU1lZGlhRm9yVGltZShUcmFja0J1ZmZlciYs
IEF0b21pY1N0cmluZyB0cmFja0lELCBjb25zdCBNZWRpYVRpbWUmKTsKLSAgICB2b2lkIHByb3Zp
ZGVNZWRpYURhdGEoVHJhY2tCdWZmZXImLCBBdG9taWNTdHJpbmcgdHJhY2tJRCk7CisgICAgdm9p
ZCByZWVucXVldWVNZWRpYUZvclRpbWUoVHJhY2tCdWZmZXImLCBjb25zdCBBdG9taWNTdHJpbmcm
IHRyYWNrSUQsIGNvbnN0IE1lZGlhVGltZSYpOworICAgIHZvaWQgcHJvdmlkZU1lZGlhRGF0YShU
cmFja0J1ZmZlciYsIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCk7CiAgICAgdm9pZCBkaWRE
cm9wU2FtcGxlKCk7CiAgICAgdm9pZCBldmljdENvZGVkRnJhbWVzKHNpemVfdCBuZXdEYXRhU2l6
ZSk7CiAgICAgc2l6ZV90IG1heGltdW1CdWZmZXJTaXplKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDhjMGZiNmNk
OTI3MDU0NDFlYjUwZjhmNWQxNGE4N2Q1MWYwNTIxMC4uMjYzYWYzYzdkYWRjMjhkNjlhMGQ1YzU2
M2E3ZjVjMTgwZmYyNzgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjYxNCw4ICsyNjE0LDggQEAKIAkJNkUzRkFFOEUxNDcz
M0ZEQjAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRThDMTQ3MzNGREIwMEU0MjMwNyAvKiBX
ZWJHTERlcHRoVGV4dHVyZS5jcHAgKi87IH07CiAJCTZFM0ZBRThGMTQ3MzNGREIwMEU0MjMwNiAv
KiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkUzRkFFOEQxNDczM0ZEQjAwRTQyMzA2IC8qIFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVTM1RDLmggKi87IH07CiAJCTZFM0ZBRThGMTQ3MzNGREIwMEU0MjMwNyAv
KiBXZWJHTERlcHRoVGV4dHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkUzRkFFOEQxNDczM0ZEQjAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJl
LmggKi87IH07Ci0JCTZFNDdFNjYwMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldEluZm8uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU0N0U2NUUx
MEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5jcHAgKi87IH07Ci0JCTZFNDdFNjYxMTBC
Nzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNDdFNjVGMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdl
dEluZm8uaCAqLzsgfTsKKwkJNkU0N0U2NjAxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNDdFNjVF
MTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5jcHAgKi87IH07CisJCTZFNDdFNjYxMTBCNzk0
NEIwMEIxODZDOCAvKiBXZWJHTEFueS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkU0N0U2NUYxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmggKi87
IH07CiAJCTZFNEFCQ0Q0MTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtub3duRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTRBQkNE
MjEzOEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwICovOyB9OwogCQk2
RTRBQkNENTEzOEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNEFCQ0QzMTM4RUEwQjcw
MDcxRDI5MSAvKiBKU0hUTUxVbmtub3duRWxlbWVudC5oICovOyB9OwogCQk2RTRFOTFBRjEwRjdG
QjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU0RTkxQUExMEY3RkIzMTAwQTI3NzlDIC8q
IFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtOTkxNCw4ICs5OTE0LDggQEAKIAkJNkUzRkFFOEQxNDczM0ZE
QjAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkdMRGVwdGhUZXh0dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTZFM0ZBRTkwMTQ3MzNGRUEwMEU0MjMwNiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNU
Qy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTNGQUU5MDE0NzMzRkVBMDBFNDIz
MDcgLyogV2ViR0xEZXB0aFRleHR1cmUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdM
RGVwdGhUZXh0dXJlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkU0N0U2NUUx
MEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJHTEdldEluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk2RTQ3RTY1RjEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMR2V0SW5mby5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR0xBbnkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RTQ3RTY1RjEwQjc5NDRCMDBCMTg2QzggLyogV2Vi
R0xBbnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xBbnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkU0QUJDRDIxMzhFQTBCNzAwNzFEMjkxIC8qIEpT
SFRNTFVua25vd25FbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTSFRNTFVua25vd25FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNkU0QUJDRDMxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTFVua25vd25FbGVtZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFNEU5MUFBMTBGN0ZCMzEwMEEyNzc5QyAvKiBX
ZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE2OTI2LDggKzE2OTI2LDggQEAKIAkJCQk0OUM3QjlBRTEwNDJEMzJFMDAwOUQ0NDcgLyogV2Vi
R0xGcmFtZWJ1ZmZlci5jcHAgKi8sCiAJCQkJNDlDN0I5QUYxMDQyRDMyRTAwMDlENDQ3IC8qIFdl
YkdMRnJhbWVidWZmZXIuaCAqLywKIAkJCQk0OUM3QjlCMDEwNDJEMzJFMDAwOUQ0NDcgLyogV2Vi
R0xGcmFtZWJ1ZmZlci5pZGwgKi8sCi0JCQkJNkU0N0U2NUUxMEI3OTQ0QjAwQjE4NkM4IC8qIFdl
YkdMR2V0SW5mby5jcHAgKi8sCi0JCQkJNkU0N0U2NUYxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdM
R2V0SW5mby5oICovLAorCQkJCTZFNDdFNjVFMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5j
cHAgKi8sCisJCQkJNkU0N0U2NUYxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmggKi8sCiAJ
CQkJOTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuY3BwICovLAog
CQkJCTkzRjFENUI4MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmggKi8sCiAJ
CQkJOTNGMUQ1QjkxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuaWRsICovLApA
QCAtMjgyNDAsNyArMjgyNDAsNyBAQAogCQkJCTVCMzA2OTVFMThCM0QzNDUwMDk5RDVFOCAvKiBX
ZWJHTERyYXdCdWZmZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RUJGMEU1NTEyQTg5Mjk4MDBE
QjE3MDkgLyogV2ViR0xFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOUNGMTA0
MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk2
RTQ3RTY2MTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmggaW4gSGVhZGVycyAqLywK
KwkJCQk2RTQ3RTY2MTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xBbnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQ5RkZCRjNGMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0YxRDVCQjEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xMb3NlQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDlDN0I5RDUxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMT2Jq
ZWN0LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzI5LDcgKzMxNzI5LDcgQEAKIAkJCQk1QjMwNjk1
RDE4QjNEMzQ1MDA5OUQ1RTggLyogV2ViR0xEcmF3QnVmZmVycy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk2RUJGMEU1NDEyQTg5Mjk4MDBEQjE3MDkgLyogV2ViR0xFeHRlbnNpb24uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDlDN0I5Q0UxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMRnJhbWVidWZm
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNkU0N0U2NjAxMEI3OTQ0QjAwQjE4NkM4IC8qIFdl
YkdMR2V0SW5mby5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk2RTQ3RTY2MDEwQjc5NDRCMDBCMTg2
QzggLyogV2ViR0xBbnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlGRkJGNDAxMUM5M0VFMzAw
NkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk5M0YxRDVCQTEyRDUz
MkM0MDA4MzJCRUMgLyogV2ViR0xMb3NlQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
OUM3QjlENDEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKaW5kZXggZTIwYjIzODY4NjRkYWNkZGFkNTYy
ZmMzZWVjNmFhMzM5NGZmMTBhNS4uOTNiNzk2YTQ1YmZlY2VmNjZkZjc5NDk3NWZiMDQ5NTdiY2Ni
NjI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02NSw5ICs2NSw5IEBAIHN0YXRp
YyBDYW52YXNTdHlsZSB0b0hUTUxDYW52YXNTdHlsZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVl
KQogICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUoKTsKICAgICBKU09iamVjdCogb2JqZWN0ID0g
YXNPYmplY3QodmFsdWUpOwogICAgIGlmIChvYmplY3QtPmluaGVyaXRzKEpTQ2FudmFzR3JhZGll
bnQ6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBDYW52YXNTdHlsZSgmanNDYXN0PEpTQ2FudmFz
R3JhZGllbnQqPihvYmplY3QpLT53cmFwcGVkKCkpOworICAgICAgICByZXR1cm4ganNDYXN0PEpT
Q2FudmFzR3JhZGllbnQqPihvYmplY3QpLT53cmFwcGVkKCk7CiAgICAgaWYgKG9iamVjdC0+aW5o
ZXJpdHMoSlNDYW52YXNQYXR0ZXJuOjppbmZvKCkpKQotICAgICAgICByZXR1cm4gQ2FudmFzU3R5
bGUoJmpzQ2FzdDxKU0NhbnZhc1BhdHRlcm4qPihvYmplY3QpLT53cmFwcGVkKCkpOworICAgICAg
ICByZXR1cm4ganNDYXN0PEpTQ2FudmFzUGF0dGVybio+KG9iamVjdCktPndyYXBwZWQoKTsKICAg
ICByZXR1cm4gQ2FudmFzU3R5bGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKaW5kZXggZjc4YTExODYy
MThjNmE5YmQxZDc3YmU4Nzg3NDNlOWVhY2JhYzc0NC4uNDE4MWQ3NDc4NmYzOWYzZGQ1ZmQ3OTc3
ZWNmNjgxZGRjNjI1Mjk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAq
ICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQot
ICogIENvcHlyaWdodCAoQykgMjAwNC0yMDA4LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC00MCw3ICs0MCw3IEBAIEluc3Rh
bmNlKiBwbHVnaW5JbnN0YW5jZShIVE1MRWxlbWVudCYgZWxlbWVudCkKICAgICAvLyBUaGUgcGx1
Z2luIGVsZW1lbnQgaG9sZHMgYW4gb3duaW5nIHJlZmVyZW5jZSwgc28gd2UgZG9uJ3QgaGF2ZSB0
by4KICAgICBpZiAoIWlzPEhUTUxQbHVnSW5FbGVtZW50PihlbGVtZW50KSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgSW5zdGFuY2UqIGluc3RhbmNlID0gZG93bmNhc3Q8SFRNTFBsdWdJ
bkVsZW1lbnQ+KGVsZW1lbnQpLmdldEluc3RhbmNlKCkuZ2V0KCk7CisgICAgYXV0byogaW5zdGFu
Y2UgPSBkb3duY2FzdDxIVE1MUGx1Z0luRWxlbWVudD4oZWxlbWVudCkuYmluZGluZ3NJbnN0YW5j
ZSgpOwogICAgIGlmICghaW5zdGFuY2UgfHwgIWluc3RhbmNlLT5yb290T2JqZWN0KCkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBpbnN0YW5jZTsKQEAgLTcxLDIzICs3MSwy
MyBAQCBKU09iamVjdCogcGx1Z2luU2NyaXB0T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNIVE1M
RWxlbWVudCoganNIVE1MRWxlbWVudCkKICAgICBpZiAoIWlzPEhUTUxQbHVnSW5FbGVtZW50Pihl
bGVtZW50KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBIVE1MUGx1Z0luRWxlbWVu
dCYgcGx1Z2luRWxlbWVudCA9IGRvd25jYXN0PEhUTUxQbHVnSW5FbGVtZW50PihlbGVtZW50KTsK
KyAgICBhdXRvJiBwbHVnaW5FbGVtZW50ID0gZG93bmNhc3Q8SFRNTFBsdWdJbkVsZW1lbnQ+KGVs
ZW1lbnQpOwogCiAgICAgLy8gQ2hva2UgcG9pbnQgZm9yIHNjcmlwdC9wbHVnaW4gaW50ZXJhY3Rp
b247IG5vdGlmeSBET01UaW1lciBvZiB0aGUgZXZlbnQuCiAgICAgRE9NVGltZXI6OnNjcmlwdERp
ZEludGVyYWN0V2l0aFBsdWdpbihwbHVnaW5FbGVtZW50KTsKIAogICAgIC8vIEZpcnN0LCBzZWUg
aWYgdGhlIGVsZW1lbnQgaGFzIGEgcGx1Zy1pbiByZXBsYWNlbWVudCB3aXRoIGEgc2NyaXB0Lgot
ICAgIGlmIChKU09iamVjdCogc2NyaXB0T2JqZWN0ID0gcGx1Z2luRWxlbWVudC5zY3JpcHRPYmpl
Y3RGb3JQbHVnaW5SZXBsYWNlbWVudCgpKQorICAgIGlmIChhdXRvKiBzY3JpcHRPYmplY3QgPSBw
bHVnaW5FbGVtZW50LnNjcmlwdE9iamVjdEZvclBsdWdpblJlcGxhY2VtZW50KCkpCiAgICAgICAg
IHJldHVybiBzY3JpcHRPYmplY3Q7CiAgICAgCiAgICAgLy8gTmV4dCwgc2VlIGlmIHdlIGNhbiBh
c2sgdGhlIHBsdWctaW4gdmlldyBmb3IgaXRzIHNjcmlwdCBvYmplY3QuCi0gICAgaWYgKEpTT2Jq
ZWN0KiBzY3JpcHRPYmplY3QgPSBwbHVnaW5TY3JpcHRPYmplY3RGcm9tUGx1Z2luVmlld0Jhc2Uo
cGx1Z2luRWxlbWVudCwganNIVE1MRWxlbWVudC0+Z2xvYmFsT2JqZWN0KCkpKQorICAgIGlmIChh
dXRvKiBzY3JpcHRPYmplY3QgPSBwbHVnaW5TY3JpcHRPYmplY3RGcm9tUGx1Z2luVmlld0Jhc2Uo
cGx1Z2luRWxlbWVudCwganNIVE1MRWxlbWVudC0+Z2xvYmFsT2JqZWN0KCkpKQogICAgICAgICBy
ZXR1cm4gc2NyaXB0T2JqZWN0OwogCiAgICAgLy8gT3RoZXJ3aXNlLCBmYWxsIGJhY2sgdG8gZ2V0
dGluZyB0aGUgb2JqZWN0IGZyb20gdGhlIGluc3RhbmNlLgogCiAgICAgLy8gVGhlIHBsdWdpbiBl
bGVtZW50IGhvbGRzIGFuIG93bmluZyByZWZlcmVuY2UsIHNvIHdlIGRvbid0IGhhdmUgdG8uCi0g
ICAgSW5zdGFuY2UqIGluc3RhbmNlID0gcGx1Z2luRWxlbWVudC5nZXRJbnN0YW5jZSgpLmdldCgp
OworICAgIGF1dG8qIGluc3RhbmNlID0gcGx1Z2luRWxlbWVudC5iaW5kaW5nc0luc3RhbmNlKCk7
CiAgICAgaWYgKCFpbnN0YW5jZSB8fCAhaW5zdGFuY2UtPnJvb3RPYmplY3QoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IDc4OGFkMjQ0
NDY5MjBkMGZhMmVhZWViNzQ4ZDY0OWJiZTM2OGM0NzEuLjRjNTBjY2Y4ZjMwNDZlZDAwODM2NTA4
ODY3N2ZhNGE3OGU3Y2RlZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2LDM3
ICszNiw2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Ly8gRklYTUU6IFRoZXJlIGlzIGEgZHVwbGljYXRlIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiBp
biBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2VDdXN0b20uY3BwLAotLy8gYnV0IGl0IGlzIG5v
dCBleGFjdGx5IHRoZSBzYW1lISBXZSBzaG91bGQgbWVyZ2UgdGhlc2UuCi1zdGF0aWMgSlNWYWx1
ZSB0b0pTKEV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IGNvbnN0IFdlYkdMR2V0SW5mbyYgaW5mbykKLXsKLSAgICBzd2l0Y2ggKGluZm8uZ2V0VHlwZSgp
KSB7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlQm9vbDoKLSAgICAgICAgcmV0dXJuIGpz
Qm9vbGVhbihpbmZvLmdldEJvb2woKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlQm9v
bEFycmF5OiB7Ci0gICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGxpc3Q7Ci0gICAgICAgIGZv
ciAoYXV0byYgdmFsdWUgOiBpbmZvLmdldEJvb2xBcnJheSgpKQotICAgICAgICAgICAgbGlzdC5h
cHBlbmQoanNCb29sZWFuKHZhbHVlKSk7Ci0gICAgICAgIHJldHVybiBjb25zdHJ1Y3RBcnJheShz
dGF0ZSwgMCwgZ2xvYmFsT2JqZWN0LCBsaXN0KTsKLSAgICB9Ci0gICAgY2FzZSBXZWJHTEdldElu
Zm86OmtUeXBlRmxvYXQ6Ci0gICAgICAgIHJldHVybiBqc051bWJlcihpbmZvLmdldEZsb2F0KCkp
OwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZUludDoKLSAgICAgICAgcmV0dXJuIGpzTnVt
YmVyKGluZm8uZ2V0SW50KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZU51bGw6Ci0g
ICAgICAgIHJldHVybiBqc051bGwoKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVTdHJp
bmc6Ci0gICAgICAgIHJldHVybiBqc1N0cmluZ1dpdGhDYWNoZShzdGF0ZSwgaW5mby5nZXRTdHJp
bmcoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlVW5zaWduZWRJbnQ6Ci0gICAgICAg
IHJldHVybiBqc051bWJlcihpbmZvLmdldFVuc2lnbmVkSW50KCkpOwotICAgIGNhc2UgV2ViR0xH
ZXRJbmZvOjprVHlwZUludDY0OgotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRJbnQ2
NCgpKTsKLSAgICBkZWZhdWx0OgotICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci19Ci0KIHZvaWQgSlNXZWJHTDJSZW5kZXJpbmdD
b250ZXh0Ojp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsK
ICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QoJndyYXBwZWQoKSk7CkBAIC0xMDQsNyArNzMsNyBA
QCBKU1ZhbHVlIEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcihF
eGVjU3RhdGUmIHN0YXRlKQogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUo
KSk7CiAgICAgdW5zaWduZWQgaW5kZXggPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0lu
dDMyKCZzdGF0ZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsK
LSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0SW5k
ZXhlZFBhcmFtZXRlcihwbmFtZSwgaW5kZXgpKTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmds
b2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0SW5kZXhlZFBhcmFtZXRlcihwbmFtZSwgaW5kZXgp
KTsKIH0KIAogSlNWYWx1ZSBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZv
cm1CbG9ja1BhcmFtZXRlcihFeGVjU3RhdGUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5j
cHAKaW5kZXggODI1ZDI1MDk0ZDJjYzYyMjA2YjA0OTk2YzEwZDUzMWU1NDI5ODA5MS4uNTMzYjBi
NmIzYzAyZjdiMWFjMTFlZWY3MDZiYzRmYjY2ZjkwNTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2VDdXN0b20uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjcsMTcgKzI3LDEyIEBACiAKICNpZiBFTkFCTEUoV0VCR0wpCiAK
LSNpbmNsdWRlICJKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKLQotI2luY2x1ZGUgIkFO
R0xFSW5zdGFuY2VkQXJyYXlzLmgiCiAjaW5jbHVkZSAiRVhUQmxlbmRNaW5NYXguaCIKICNpbmNs
dWRlICJFWFRGcmFnRGVwdGguaCIKICNpbmNsdWRlICJFWFRTaGFkZXJUZXh0dXJlTE9ELmgiCiAj
aW5jbHVkZSAiRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmgiCiAjaW5jbHVkZSAiRVhUc1JH
Qi5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJIVE1MQ2FudmFzRWxl
bWVudC5oIgotI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0FOR0xF
SW5zdGFuY2VkQXJyYXlzLmgiCiAjaW5jbHVkZSAiSlNFWFRCbGVuZE1pbk1heC5oIgogI2luY2x1
ZGUgIkpTRVhURnJhZ0RlcHRoLmgiCkBAIC03Myw3ICs2OCw2IEBACiAjaW5jbHVkZSAiSlNXZWJH
TFZlcnRleEFycmF5T2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTLmgiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NNYXRyaXguaCIKLSNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogI2luY2x1ZGUgIk9FU0VsZW1lbnRJbmRleFVpbnQuaCIKICNpbmNsdWRlICJP
RVNTdGFuZGFyZERlcml2YXRpdmVzLmgiCiAjaW5jbHVkZSAiT0VTVGV4dHVyZUZsb2F0LmgiCkBA
IC05MSw3ICs4NSw2IEBACiAjaW5jbHVkZSAiV2ViR0xEcmF3QnVmZmVycy5oIgogI2luY2x1ZGUg
IldlYkdMRXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgotI2luY2x1
ZGUgIldlYkdMR2V0SW5mby5oIgogI2luY2x1ZGUgIldlYkdMTG9zZUNvbnRleHQuaCIKICNpbmNs
dWRlICJXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmgiCkBAIC0xMDUsNyArOTgsNiBAQAogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAKICNp
ZiBFTkFCTEUoVklERU8pCi0jaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUg
IkpTSFRNTFZpZGVvRWxlbWVudC5oIgogI2VuZGlmCiAKQEAgLTExNyw3ICsxMDksNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUpTQzo6SlNWYWx1ZSB0
b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUmVmPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+JiYgb2JqZWN0KQorSlNWYWx1
ZSB0b0pTTmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFJlZjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiYmIG9iamVjdCkKIHsKICNpZiBF
TkFCTEUoV0VCR0wyKQogICAgIGlmIChpczxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PihvYmplY3Qp
KQpAQCAtMTMxLDY0ICsxMjMsNyBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgV2ViR0xSZW5kZXJpbmdDbwogICAgIHJldHVy
biB3cmFwKHN0YXRlLCBnbG9iYWxPYmplY3QsIG9iamVjdCk7CiB9CiAgICAgCi0vLyBGSVhNRTog
VGhlcmUgaXMgYSBkdXBsaWNhdGUgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIGluIEpTV2ViR0wy
UmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAsCi0vLyBidXQgaXQgaXMgbm90IGV4YWN0bHkgdGhl
IHNhbWUhIFdlIHNob3VsZCBtZXJnZSB0aGVzZS4KLXN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0
YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBXZWJHTEdl
dEluZm8mIGluZm8pCi17Ci0gICAgc3dpdGNoIChpbmZvLmdldFR5cGUoKSkgewotICAgIGNhc2Ug
V2ViR0xHZXRJbmZvOjprVHlwZUJvb2w6Ci0gICAgICAgIHJldHVybiBqc0Jvb2xlYW4oaW5mby5n
ZXRCb29sKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZUJvb2xBcnJheTogewotICAg
ICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBsaXN0OwotICAgICAgICBmb3IgKGF1dG8mIHZhbHVl
IDogaW5mby5nZXRCb29sQXJyYXkoKSkKLSAgICAgICAgICAgIGxpc3QuYXBwZW5kKGpzQm9vbGVh
bih2YWx1ZSkpOwotICAgICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoZXhlYywgMCwgZ2xvYmFs
T2JqZWN0LCBsaXN0KTsKLSAgICB9Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlRmxvYXQ6
Ci0gICAgICAgIHJldHVybiBqc051bWJlcihpbmZvLmdldEZsb2F0KCkpOwotICAgIGNhc2UgV2Vi
R0xHZXRJbmZvOjprVHlwZUludDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0SW50
KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZU51bGw6Ci0gICAgICAgIHJldHVybiBq
c051bGwoKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVTdHJpbmc6Ci0gICAgICAgIHJl
dHVybiBqc1N0cmluZ1dpdGhDYWNoZShleGVjLCBpbmZvLmdldFN0cmluZygpKTsKLSAgICBjYXNl
IFdlYkdMR2V0SW5mbzo6a1R5cGVVbnNpZ25lZEludDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVy
KGluZm8uZ2V0VW5zaWduZWRJbnQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2Vi
R0xCdWZmZXI6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5n
ZXRXZWJHTEJ1ZmZlcigpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTEZsb2F0
QXJyYXk6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRX
ZWJHTEZsb2F0QXJyYXkoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xGcmFt
ZWJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdl
dFdlYkdMRnJhbWVidWZmZXIoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2ViR0xJ
bnRBcnJheToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdl
dFdlYkdMSW50QXJyYXkoKSk7Ci0gICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgV2ViR0xPYmpl
Y3RBcnJheQotICAgICAgICAvLyBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTE9iamVjdEFy
cmF5OgotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMUHJvZ3JhbToKLSAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMUHJvZ3JhbSgpKTsK
LSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFJlbmRlcmJ1ZmZlcjoKLSAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMUmVuZGVyYnVmZmVy
KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVGV4dHVyZToKLSAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMVGV4dHVyZSgpKTsK
LSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFVuc2lnbmVkQnl0ZUFycmF5OgotICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xVbnNpZ25l
ZEJ5dGVBcnJheSgpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFVuc2lnbmVk
SW50QXJyYXk6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5n
ZXRXZWJHTFVuc2lnbmVkSW50QXJyYXkoKSk7Ci0jaWYgRU5BQkxFKFdFQkdMMikKLSAgICBjYXNl
IFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTFZlcnRleEFycmF5T2JqZWN0OgotICAgICAgICByZXR1
cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dCgpKTsKLSNlbmRpZgotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVM6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5m
by5nZXRXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKCkpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0K
LX0KLQotZW51bSBPYmplY3RUeXBlIHsga0J1ZmZlciwga1JlbmRlcmJ1ZmZlciwga1RleHR1cmUs
IGtWZXJ0ZXhBdHRyaWIgfTsKLQotc3RhdGljIEpTVmFsdWUgZ2V0T2JqZWN0UGFyYW1ldGVyKEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogb2JqLCBFeGVjU3RhdGUmIHN0YXRlLCBPYmplY3RU
eXBlIG9iamVjdFR5cGUpCitzdGF0aWMgSlNWYWx1ZSBvYmplY3RQYXJhbWV0ZXIoSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBFeGVjU3RhdGUmIHN0YXRlLCBXZWJHTEFueSAo
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6KmdldHRlcikoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
ZW51bSBwbmFtZSkpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTYsOTAgKzEzMSw2NiBAQCBzdGF0aWMg
SlNWYWx1ZSBnZXRPYmplY3RQYXJhbWV0ZXIoSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBv
YmosIEV4ZWNTdGF0ZSYgcwogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgIT0gMikKICAg
ICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwogICAgIAotICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UmIGNvbnRleHQgPSBvYmotPndyYXBwZWQoKTsKLSAgICB1bnNpZ25lZCB0YXJnZXQgPSBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICB1bnNpZ25lZCBwbmFtZSA9IHN0YXRl
LnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIFdlYkdMR2V0SW5mbyBpbmZvOwotICAgIHN3
aXRjaCAob2JqZWN0VHlwZSkgewotICAgIGNhc2Uga0J1ZmZlcjoKLSAgICAgICAgaW5mbyA9IGNv
bnRleHQuZ2V0QnVmZmVyUGFyYW1ldGVyKHRhcmdldCwgcG5hbWUpOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIGtSZW5kZXJidWZmZXI6Ci0gICAgICAgIGluZm8gPSBjb250ZXh0LmdldFJlbmRl
cmJ1ZmZlclBhcmFtZXRlcih0YXJnZXQsIHBuYW1lKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBrVGV4dHVyZToKLSAgICAgICAgaW5mbyA9IGNvbnRleHQuZ2V0VGV4UGFyYW1ldGVyKHRhcmdl
dCwgcG5hbWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIGtWZXJ0ZXhBdHRyaWI6Ci0gICAg
ICAgIC8vIHRhcmdldCA9PiBpbmRleAotICAgICAgICBpbmZvID0gY29udGV4dC5nZXRWZXJ0ZXhB
dHRyaWIodGFyZ2V0LCBwbmFtZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4g
dG9KUygmc3RhdGUsIG9iai0+Z2xvYmFsT2JqZWN0KCksIGluZm8pOworICAgIGF1dG8gdGFyZ2V0
ID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkudG9JbnQzMigmc3RhdGUpOworICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgYXV0byBwbmFtZSA9IHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOworICAgIHJldHVybiB0b0pTKHN0YXRlLCAqY29udGV4dC5nbG9iYWxPYmpl
Y3QoKSwgKGNvbnRleHQud3JhcHBlZCgpLipnZXR0ZXIpKHRhcmdldCwgcG5hbWUpKTsKIH0KIAot
ZW51bSBXaGljaFByb2dyYW1DYWxsIHsKLSAgICBrUHJvZ3JhbVBhcmFtZXRlciwga1VuaWZvcm0K
LX07Ci0KLXN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBXZWJHTEV4dGVuc2lvbiogZXh0ZW5zaW9uKQorc3RhdGljIEpT
VmFsdWUgdG9KUyhFeGVjU3RhdGUmIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2Jq
ZWN0LCBXZWJHTEV4dGVuc2lvbiogZXh0ZW5zaW9uKQogewogICAgIGlmICghZXh0ZW5zaW9uKQog
ICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAgICAgc3dpdGNoIChleHRlbnNpb24tPmdldE5hbWUo
KSkgewogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMTG9zZUNvbnRleHROYW1lOgotICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMTG9z
ZUNvbnRleHQqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xv
YmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTExvc2VDb250ZXh0Kj4oZXh0ZW5zaW9uKSk7CiAg
ICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6RVhUU2hhZGVyVGV4dHVyZUxPRE5hbWU6Ci0gICAgICAg
IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUU2hhZGVyVGV4
dHVyZUxPRCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9i
YWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVFNoYWRlclRleHR1cmVMT0QqPihleHRlbnNpb24pKTsK
ICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWNOYW1l
OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVY
VFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4g
dG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVFRleHR1cmVGaWx0ZXJB
bmlzb3Ryb3BpYyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVHNS
R0JOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19j
YXN0PEVYVHNSR0IqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAm
Z2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRzUkdCKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2Fz
ZSBXZWJHTEV4dGVuc2lvbjo6RVhURnJhZ0RlcHRoTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRGcmFnRGVwdGgqPihleHRlbnNpb24p
KTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxFWFRGcmFnRGVwdGgqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpF
WFRCbGVuZE1pbk1heE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgc3RhdGljX2Nhc3Q8RVhUQmxlbmRNaW5NYXgqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0
dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRCbGVuZE1pbk1h
eCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1N0YW5kYXJkRGVy
aXZhdGl2ZXNOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0
YXRpY19jYXN0PE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMqPihleHRlbnNpb24pKTsKKyAgICAgICAg
cmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNTdGFuZGFy
ZERlcml2YXRpdmVzKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VT
VGV4dHVyZUZsb2F0TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlRmxvYXQqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0
dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlRmxv
YXQqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpPRVNUZXh0dXJlRmxv
YXRMaW5lYXJOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0
YXRpY19jYXN0PE9FU1RleHR1cmVGbG9hdExpbmVhcio+KGV4dGVuc2lvbikpOworICAgICAgICBy
ZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVG
bG9hdExpbmVhcio+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1Rl
eHR1cmVIYWxmRmxvYXROYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmpl
Y3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVIYWxmRmxvYXQqPihleHRlbnNpb24pKTsKKyAgICAg
ICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0
dXJlSGFsZkZsb2F0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VT
VGV4dHVyZUhhbGZGbG9hdExpbmVhck5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcio+KGV4dGVu
c2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PE9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXIqPihleHRlbnNpb24pKTsKICAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpPRVNWZXJ0ZXhBcnJheU9iamVjdE5hbWU6Ci0gICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVmVydGV4QXJyYXlPYmpl
Y3QqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVuc2lvbikpOwogICAg
IGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU0VsZW1lbnRJbmRleFVpbnROYW1lOgotICAgICAgICBy
ZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU0VsZW1lbnRJbmRl
eFVpbnQqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFs
T2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNFbGVtZW50SW5kZXhVaW50Kj4oZXh0ZW5zaW9uKSk7CiAg
ICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU6Ci0gICAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbyo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUs
ICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVidWdSZW5kZXJlckluZm8qPihleHRl
bnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnU2hhZGVyc05hbWU6
Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2Vi
R0xEZWJ1Z1NoYWRlcnMqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRl
LCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlYnVnU2hhZGVycyo+KGV4dGVuc2lv
bikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMQ29tcHJlc3NlZFRleHR1cmVBVENO
YW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJu
IHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRU
ZXh0dXJlQVRDKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xD
b21wcmVzc2VkVGV4dHVyZVBWUlRDTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xv
YmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMqPihleHRl
bnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMqPihleHRlbnNpb24pKTsKICAgICBj
YXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQ05hbWU6Ci0gICAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21w
cmVzc2VkVGV4dHVyZVMzVEMqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNU
Qyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVwdGhUZXh0
dXJlTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNf
Y2FzdDxXZWJHTERlcHRoVGV4dHVyZSo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9K
Uygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVwdGhUZXh0dXJlKj4o
ZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEcmF3QnVmZmVyc05h
bWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8
V2ViR0xEcmF3QnVmZmVycyo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3Rh
dGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRHJhd0J1ZmZlcnMqPihleHRlbnNp
b24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpBTkdMRUluc3RhbmNlZEFycmF5c05hbWU6
Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8QU5H
TEVJbnN0YW5jZWRBcnJheXMqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCAmZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxBTkdMRUluc3RhbmNlZEFycmF5cyo+KGV4
dGVuc2lvbikpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4g
anNOdWxsKCk7CiB9CiAKLWJvb2wgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlT3duZXI6Omlz
UmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxl
LCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCitib29sIEpTV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhIYW5kbGU8VW5rbm93bj4g
aGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlKiBqc1dlYkdMUmVuZGVyaW5nQ29udGV4dCA9IGpzQ2FzdDxKU1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgdm9p
ZCogcm9vdCA9IFdlYkNvcmU6OnJvb3QoanNXZWJHTFJlbmRlcmluZ0NvbnRleHQtPndyYXBwZWQo
KS5jYW52YXMoKSk7CkBAIC0zMDYsOSArMjE3LDkgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldEF0dGFjaGVkU2hhZGVycyhFeGVjU3RhdGUmIHN0YXRlKQogICAgIFZl
Y3RvcjxSZWZQdHI8V2ViR0xTaGFkZXI+PiBzaGFkZXJzOwogICAgIGlmICghY29udGV4dC5nZXRB
dHRhY2hlZFNoYWRlcnMocHJvZ3JhbSwgc2hhZGVycykpCiAgICAgICAgIHJldHVybiBqc051bGwo
KTsKLSAgICBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyIGxpc3Q7Ci0gICAgZm9yIChzaXplX3Qg
aWkgPSAwOyBpaSA8IHNoYWRlcnMuc2l6ZSgpOyArK2lpKQotICAgICAgICBsaXN0LmFwcGVuZCh0
b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHNoYWRlcnNbaWldLmdldCgpKSk7CisgICAgTWFy
a2VkQXJndW1lbnRCdWZmZXIgbGlzdDsKKyAgICBmb3IgKGF1dG8mIHNoYWRlciA6IHNoYWRlcnMp
CisgICAgICAgIGxpc3QuYXBwZW5kKHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgc2hhZGVy
LmdldCgpKSk7CiAgICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5KCZzdGF0ZSwgMCwgZ2xvYmFsT2Jq
ZWN0KCksIGxpc3QpOwogfQogCkBAIC0zMjAsMTQgKzIzMSwxNCBAQCBKU1ZhbHVlIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0RXh0ZW5zaW9uKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAg
aWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2Vw
dGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUp
KTsKICAgICAKLSAgICBTdHJpbmcgbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRv
V1RGU3RyaW5nKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1
ZSgpKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCku
Z2V0RXh0ZW5zaW9uKG5hbWUpKTsKKyAgICBhdXRvIG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgwKS50b1dURlN0cmluZygmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBl
ZCgpLmdldEV4dGVuc2lvbihuYW1lKSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRCdWZmZXJQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICBy
ZXR1cm4gZ2V0T2JqZWN0UGFyYW1ldGVyKHRoaXMsIHN0YXRlLCBrQnVmZmVyKTsKKyAgICByZXR1
cm4gb2JqZWN0UGFyYW1ldGVyKCp0aGlzLCBzdGF0ZSwgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldEJ1ZmZlclBhcmFtZXRlcik7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoRXhlY1N0YXRlJiBz
dGF0ZSkKQEAgLTMzOCwxMyArMjQ5LDEzIEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoRXhlY1N0YXRlCiAgICAg
aWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSAhPSAzKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNl
cHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRl
KSk7CiAgICAgCi0gICAgdW5zaWduZWQgdGFyZ2V0ID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MCkudG9JbnQzMigmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFs
dWUoKSk7Ci0gICAgdW5zaWduZWQgYXR0YWNobWVudCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDEpLnRvSW50MzIoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1Zh
bHVlKCkpOwotICAgIHVuc2lnbmVkIHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMiku
dG9JbnQzMigmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUo
KSk7Ci0gICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcih0YXJnZXQsIGF0dGFjaG1lbnQsIHBuYW1l
KSk7CisgICAgYXV0byB0YXJnZXQgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMy
KCZzdGF0ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBhdXRv
IGF0dGFjaG1lbnQgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBhdXRvIHBuYW1lID0g
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikudG9JbnQzMigmc3RhdGUpOworICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxP
YmplY3QoKSwgd3JhcHBlZCgpLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcih0YXJn
ZXQsIGF0dGFjaG1lbnQsIHBuYW1lKSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKQEAgLTM1NSw5ICsyNjYs
OSBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UGFyYW1ldGVyKEV4
ZWNTdGF0ZSYgc3RhdGUpCiAgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSAhPSAxKQogICAg
ICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CiAgICAgCi0gICAgdW5zaWduZWQgcG5hbWUgPSBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2Jh
bE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0UGFyYW1ldGVyKHBuYW1lKSk7CisgICAgYXV0byBwbmFt
ZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKKyAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIHJldHVybiB0b0pTKHN0YXRlLCAqZ2xv
YmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRQYXJhbWV0ZXIocG5hbWUpKTsKIH0KIAogSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJhbWV0ZXIoRXhlY1N0
YXRlJiBzdGF0ZSkKQEAgLTM2OCwxNyArMjc5LDE3IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRQcm9ncmFtUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAg
aWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSAhPSAyKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNl
cHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRl
KSk7CiAgICAgCi0gICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRv
V3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgYXV0byogcHJvZ3JhbSA9
IEpTV2ViR0xQcm9ncmFtOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwog
ICAgIGlmICghcHJvZ3JhbSAmJiAhc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmlu
ZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUp
OwotICAgIHVuc2lnbmVkIHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQz
Migmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0g
ICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFByb2dy
YW1QYXJhbWV0ZXIocHJvZ3JhbSwgcG5hbWUpKTsKKyAgICBhdXRvIHBuYW1lID0gc3RhdGUudW5j
aGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwg
d3JhcHBlZCgpLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgcG5hbWUpKTsKIH0KIAogSlNW
YWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRl
cihFeGVjU3RhdGUmIHN0YXRlKQogewotICAgIHJldHVybiBnZXRPYmplY3RQYXJhbWV0ZXIodGhp
cywgc3RhdGUsIGtSZW5kZXJidWZmZXIpOworICAgIHJldHVybiBvYmplY3RQYXJhbWV0ZXIoKnRo
aXMsIHN0YXRlLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFy
YW1ldGVyKTsKIH0KIAogSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNo
YWRlclBhcmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQpAQCAtMzkzLDggKzMwNCw4IEBAIEpTVmFs
dWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRTaGFkZXJQYXJhbWV0ZXIoRXhlY1N0
YXRlJiBzdGF0ZSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUp
OwogICAgIFdlYkdMU2hhZGVyKiBzaGFkZXIgPSBKU1dlYkdMU2hhZGVyOjp0b1dyYXBwZWQoc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIHVuc2lnbmVkIHBuYW1lID0gc3RhdGUudW5j
aGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgcmV0dXJuIHRvSlMoJnN0YXRlLCBnbG9iYWxPYmpl
Y3QoKSwgd3JhcHBlZCgpLmdldFNoYWRlclBhcmFtZXRlcihzaGFkZXIsIHBuYW1lKSk7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwg
Kmdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0U2hhZGVyUGFyYW1ldGVyKHNoYWRlciwgcG5h
bWUpKTsKIH0KIAogSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFN1cHBv
cnRlZEV4dGVuc2lvbnMoRXhlY1N0YXRlJiBzdGF0ZSkKQEAgLTQxMCw3ICszMjEsNyBAQCBKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucyhF
eGVjU3RhdGUmIHN0YXRlKQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0VGV4UGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGdldE9iamVj
dFBhcmFtZXRlcih0aGlzLCBzdGF0ZSwga1RleHR1cmUpOworICAgIHJldHVybiBvYmplY3RQYXJh
bWV0ZXIoKnRoaXMsIHN0YXRlLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFy
YW1ldGVyKTsKIH0KIAogSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVu
aWZvcm0oRXhlY1N0YXRlJiBzdGF0ZSkKQEAgLTQyNywzNiArMzM4LDM1IEBAIEpTVmFsdWUgSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKEV4ZWNTdGF0ZSYgc3RhdGUpCiAg
ICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlv
bjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWxvY2F0
aW9uICYmICFzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQog
ICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgcmV0dXJu
IHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFVuaWZvcm0ocHJvZ3Jh
bSwgbG9jYXRpb24pKTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmdsb2JhbE9iamVjdCgpLCB3
cmFwcGVkKCkuZ2V0VW5pZm9ybShwcm9ncmFtLCBsb2NhdGlvbikpOwogfQogCiBKU1ZhbHVlIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VmVydGV4QXR0cmliKEV4ZWNTdGF0ZSYgc3Rh
dGUpCiB7Ci0gICAgcmV0dXJuIGdldE9iamVjdFBhcmFtZXRlcih0aGlzLCBzdGF0ZSwga1ZlcnRl
eEF0dHJpYik7CisgICAgcmV0dXJuIG9iamVjdFBhcmFtZXRlcigqdGhpcywgc3RhdGUsICZXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRyaWIpOwogfQogCi10ZW1wbGF0ZTx0
eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHk+Ci1ib29sIHRvVmVjdG9yKEpTQzo6RXhl
Y1N0YXRlJiBzdGF0ZSwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNp
dHk+JiB2ZWN0b3IpCit0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPiBib29sIHRvTnVtYmVy
VmVjdG9yKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUsIFZlY3RvclR5cGUmIHZlY3Rv
cikKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIAotICAgIEpTQzo6SlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0
KHZhbHVlKTsKLSAgICBpbnQzMl90IGxlbmd0aCA9IG9iamVjdC0+Z2V0KCZzdGF0ZSwgc3RhdGUu
dm0oKS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgpLnRvSW50MzIoJnN0YXRlKTsKLSAgICAKKworICAg
IGF1dG8mIG9iamVjdCA9ICphc09iamVjdCh2YWx1ZSk7CisgICAgaW50MzJfdCBsZW5ndGggPSBv
YmplY3QuZ2V0KCZzdGF0ZSwgc3RhdGUudm0oKS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgpLnRvSW50
MzIoJnN0YXRlKTsKKwogICAgIGlmICghdmVjdG9yLnRyeVJlc2VydmVDYXBhY2l0eShsZW5ndGgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgdmVjdG9yLnJlc2l6ZShsZW5ndGgpOwotICAg
IAorCiAgICAgZm9yIChpbnQzMl90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAg
SlNDOjpKU1ZhbHVlIHYgPSBvYmplY3QtPmdldCgmc3RhdGUsIGkpOworICAgICAgICBhdXRvIHZh
bHVlID0gb2JqZWN0LmdldCgmc3RhdGUsIGkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBmYWxzZSk7CisgICAgICAgIHZlY3Rvci51bmNoZWNrZWRBcHBlbmQodmFsdWUudG9O
dW1iZXIoJnN0YXRlKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNl
KTsKLSAgICAgICAgdmVjdG9yW2ldID0gc3RhdGljX2Nhc3Q8VD4odi50b051bWJlcigmc3RhdGUp
KTsKICAgICB9Ci0gICAgCisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNDY5LDcgKzM3OSw3
IEBAIGVudW0gRGF0YUZ1bmN0aW9uTWF0cml4VG9DYWxsIHsKICAgICBmX3VuaWZvcm1NYXRyaXgy
ZnYsIGZfdW5pZm9ybU1hdHJpeDNmdiwgZl91bmlmb3JtTWF0cml4NGZ2CiB9OwogCi1zdGF0aWMg
Ym9vbCBmdW5jdGlvbkZvclVuaWZvcm0oRGF0YUZ1bmN0aW9uVG9DYWxsIGYpCitzdGF0aWMgaW5s
aW5lIGJvb2wgZnVuY3Rpb25Gb3JVbmlmb3JtKERhdGFGdW5jdGlvblRvQ2FsbCBmKQogewogICAg
IHN3aXRjaCAoZikgewogICAgIGNhc2UgZl91bmlmb3JtMXY6CkBAIC00NzcsMTIgKzM4NywxMiBA
QCBzdGF0aWMgYm9vbCBmdW5jdGlvbkZvclVuaWZvcm0oRGF0YUZ1bmN0aW9uVG9DYWxsIGYpCiAg
ICAgY2FzZSBmX3VuaWZvcm0zdjoKICAgICBjYXNlIGZfdW5pZm9ybTR2OgogICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICBkZWZhdWx0OiBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIEpTQzo6SlNW
YWx1ZSBkYXRhRnVuY3Rpb25mKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYg
c3RhdGUsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCitzdGF0aWMgSlNWYWx1
ZSBkYXRhRnVuY3Rpb25mKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBFeGVjU3RhdGUmIHN0YXRlLCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQogewogICAgIFZNJiB2bSA9IHN0YXRl
LnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDkw
LDIyICs0MDAsMTkgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25mKERhdGFGdW5j
dGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAgICBpZiAoc3RhdGUuYXJn
dW1lbnRDb3VudCgpICE9IDIpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUs
IHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAg
ICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSAwOwotICAgIGxvbmcgaW5kZXggPSAt
MTsKLSAgICAKKyAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBudWxscHRyOwor
ICAgIEdMdWludCBpbmRleCA9IC0xOworCiAgICAgaWYgKGZ1bmN0aW9uRm9yVW5pZm9ybShmKSkg
ewogICAgICAgICBsb2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvV3JhcHBlZChz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgICAgIGlmICghbG9jYXRpb24gJiYgIXN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAg
ICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgfSBlbHNlCisgICAg
fSBlbHNlIHsKICAgICAgICAgaW5kZXggPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0lu
dDMyKCZzdGF0ZSk7Ci0gICAgCi0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1
ZSgpKTsKLSAgICAKLSAgICBSZWZQdHI8RmxvYXQzMkFycmF5PiB3ZWJHTEFycmF5ID0gdG9VbnNo
YXJlZEZsb2F0MzJBcnJheShzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7Ci0gICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICAKLSAgICBpZiAod2ViR0xBcnJh
eSkgeworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIH0KKwor
ICAgIGlmIChhdXRvIHdlYkdMQXJyYXkgPSB0b1Vuc2hhcmVkRmxvYXQzMkFycmF5KHN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDEpKSkgewogICAgICAgICBzd2l0Y2ggKGYpIHsKICAgICAgICAgY2Fz
ZSBmX3VuaWZvcm0xdjoKICAgICAgICAgICAgIGNvbnRleHQudW5pZm9ybTFmdihsb2NhdGlvbiwg
KndlYkdMQXJyYXkpOwpAQCAtNTMyLDE0ICs0MzksMTMgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBk
YXRhRnVuY3Rpb25mKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUs
IFcKICAgICAgICAgICAgIGNvbnRleHQudmVydGV4QXR0cmliNGZ2KGluZGV4LCAqd2ViR0xBcnJh
eSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICAKICAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQotICAgIAorCiAgICAgVmVjdG9yPGZsb2F0LCA2ND4g
YXJyYXk7Ci0gICAgaWYgKCF0b1ZlY3RvcihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MSksIGFycmF5KSkKKyAgICBpZiAoIXRvTnVtYmVyVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgxKSwgYXJyYXkpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0
YXRlLCBzY29wZSk7Ci0gICAgCisKICAgICBzd2l0Y2ggKGYpIHsKICAgICBjYXNlIGZfdW5pZm9y
bTF2OgogICAgICAgICBjb250ZXh0LnVuaWZvcm0xZnYobG9jYXRpb24sIGFycmF5LmRhdGEoKSwg
YXJyYXkuc2l6ZSgpKTsKQEAgLTU2NiwyNSArNDcyLDIyIEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUg
ZGF0YUZ1bmN0aW9uZihEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRl
LCBXCiAgICAgICAgIGNvbnRleHQudmVydGV4QXR0cmliNGZ2KGluZGV4LCBhcnJheS5kYXRhKCks
IGFycmF5LnNpemUoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICAKICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKIH0KIAotc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25pKERh
dGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UmIGNvbnRleHQpCitzdGF0aWMgSlNWYWx1ZSBkYXRhRnVuY3Rpb25pKERhdGFG
dW5jdGlvblRvQ2FsbCBmLCBFeGVjU3RhdGUmIHN0YXRlLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlJiBjb250ZXh0KQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291
bnQoKSAhPSAyKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0gICAgCi0gICAgV2ViR0xV
bmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFw
cGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKworICAgIGF1dG8qIGxvY2F0aW9uID0g
SlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDApKTsKICAgICBpZiAoIWxvY2F0aW9uICYmICFzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS5p
c1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRl
LCBzY29wZSk7Ci0gICAgCi0gICAgUmVmUHRyPEludDMyQXJyYXk+IHdlYkdMQXJyYXkgPSB0b1Vu
c2hhcmVkSW50MzJBcnJheShzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7Ci0gICAgCi0gICAg
aWYgKHdlYkdMQXJyYXkpIHsKKworICAgIGlmIChhdXRvIHdlYkdMQXJyYXkgPSB0b1Vuc2hhcmVk
SW50MzJBcnJheShzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSkpIHsKICAgICAgICAgc3dpdGNo
IChmKSB7CiAgICAgICAgIGNhc2UgZl91bmlmb3JtMXY6CiAgICAgICAgICAgICBjb250ZXh0LnVu
aWZvcm0xaXYobG9jYXRpb24sICp3ZWJHTEFycmF5KTsKQEAgLTYwMSwxNSArNTA0LDEzIEBAIHN0
YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlND
OjpFeGVjU3RhdGUmIHN0YXRlLCBXCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQotICAgICAgICAKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAg
ICAgfQotICAgIAotICAgIAorCiAgICAgVmVjdG9yPGludCwgNjQ+IGFycmF5OwotICAgIGlmICgh
dG9WZWN0b3Ioc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLCBhcnJheSkpCisgICAg
aWYgKCF0b051bWJlclZlY3RvcihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSksIGFy
cmF5KSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotICAg
IAorCiAgICAgc3dpdGNoIChmKSB7CiAgICAgY2FzZSBmX3VuaWZvcm0xdjoKICAgICAgICAgY29u
dGV4dC51bmlmb3JtMWl2KGxvY2F0aW9uLCBhcnJheS5kYXRhKCksIGFycmF5LnNpemUoKSk7CkBA
IC02MjYsMjggKzUyNywyNSBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmkoRGF0
YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgVwogICAgIGRlZmF1bHQ6
CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICAKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
IH0KIAotc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25NYXRyaXgoRGF0YUZ1bmN0aW9u
TWF0cml4VG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYgY29udGV4dCkKK3N0YXRpYyBKU1ZhbHVlIGRhdGFGdW5jdGlvbk1hdHJpeChEYXRh
RnVuY3Rpb25NYXRyaXhUb0NhbGwgZiwgRXhlY1N0YXRlJiBzdGF0ZSwgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYgY29udGV4dCkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGlmIChzdGF0ZS5hcmd1
bWVudENvdW50KCkgIT0gMykKICAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwg
c2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotICAgIAotICAg
IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246
OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisKKyAgICBhdXRvKiBsb2Nh
dGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgwKSk7CiAgICAgaWYgKCFsb2NhdGlvbiAmJiAhc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9y
KCZzdGF0ZSwgc2NvcGUpOwotICAgIAorCiAgICAgYm9vbCB0cmFuc3Bvc2UgPSBzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgxKS50b0Jvb2xlYW4oJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIAotICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IHdl
YkdMQXJyYXkgPSB0b1Vuc2hhcmVkRmxvYXQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDIpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAgaWYgKHdl
YkdMQXJyYXkpIHsKKyAgICBpZiAoYXV0byB3ZWJHTEFycmF5ID0gdG9VbnNoYXJlZEZsb2F0MzJB
cnJheShzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSkpIHsKICAgICAgICAgc3dpdGNoIChmKSB7
CiAgICAgICAgIGNhc2UgZl91bmlmb3JtTWF0cml4MmZ2OgogICAgICAgICAgICAgY29udGV4dC51
bmlmb3JtTWF0cml4MmZ2KGxvY2F0aW9uLCB0cmFuc3Bvc2UsICp3ZWJHTEFycmF5KTsKQEAgLTY1
OSwxNCArNTU3LDEzIEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uTWF0cml4KERh
dGFGdW5jdGlvbk1hdHJpeFRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0CiAgICAgICAgICAgICBjb250
ZXh0LnVuaWZvcm1NYXRyaXg0ZnYobG9jYXRpb24sIHRyYW5zcG9zZSwgKndlYkdMQXJyYXkpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLQogICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKICAgICB9Ci0gICAgCisKICAgICBWZWN0b3I8ZmxvYXQsIDY0PiBhcnJheTsKLSAgICBp
ZiAoIXRvVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSwgYXJyYXkpKQor
ICAgIGlmICghdG9OdW1iZXJWZWN0b3Ioc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIp
LCBhcnJheSkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsK
LSAgICAKKwogICAgIHN3aXRjaCAoZikgewogICAgIGNhc2UgZl91bmlmb3JtTWF0cml4MmZ2Ogog
ICAgICAgICBjb250ZXh0LnVuaWZvcm1NYXRyaXgyZnYobG9jYXRpb24sIHRyYW5zcG9zZSwgYXJy
YXkuZGF0YSgpLCBhcnJheS5zaXplKCkpOwpAQCAtNjc4LDgxICs1NzUsODAgQEAgc3RhdGljIEpT
Qzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25NYXRyaXgoRGF0YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYs
IEpTQzo6RXhlY1N0YXQKICAgICAgICAgY29udGV4dC51bmlmb3JtTWF0cml4NGZ2KGxvY2F0aW9u
LCB0cmFuc3Bvc2UsIGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQotCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBK
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm0xZnYoSlNDOjpFeGVjU3RhdGUmIHN0
YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm0xZnYoRXhl
Y1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3VuaWZvcm0xdiwg
c3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OnVuaWZvcm0xaXYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm0xaXYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsK
ICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uaShmX3VuaWZvcm0xdiwgc3RhdGUsIHdyYXBwZWQoKSk7
CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm0y
ZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OnVuaWZvcm0yZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1
bmN0aW9uZihmX3VuaWZvcm0ydiwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm0yaXYoSlNDOjpFeGVjU3RhdGUm
IHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm0yaXYo
RXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uaShmX3VuaWZvcm0y
diwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OnVuaWZvcm0zZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBK
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm0zZnYoRXhlY1N0YXRlJiBzdGF0ZSkK
IHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3VuaWZvcm0zdiwgc3RhdGUsIHdyYXBwZWQo
KSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZv
cm0zaXYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OnVuaWZvcm0zaXYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0
YUZ1bmN0aW9uaShmX3VuaWZvcm0zdiwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNW
YWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm00ZnYoSlNDOjpFeGVjU3Rh
dGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm00
ZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3VuaWZv
cm00diwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OnVuaWZvcm00aXYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm00aXYoRXhlY1N0YXRlJiBzdGF0
ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uaShmX3VuaWZvcm00diwgc3RhdGUsIHdyYXBw
ZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVu
aWZvcm1NYXRyaXgyZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm1NYXRyaXgyZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsK
ICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uTWF0cml4KGZfdW5pZm9ybU1hdHJpeDJmdiwgc3RhdGUs
IHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OnVuaWZvcm1NYXRyaXgzZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1ZSBKU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm1NYXRyaXgzZnYoRXhlY1N0YXRlJiBzdGF0
ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uTWF0cml4KGZfdW5pZm9ybU1hdHJpeDNmdiwg
c3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OnVuaWZvcm1NYXRyaXg0ZnYoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKQorSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm1NYXRyaXg0ZnYoRXhlY1N0YXRl
JiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uTWF0cml4KGZfdW5pZm9ybU1hdHJp
eDRmdiwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJpYjFmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMWZ2KEV4ZWNT
dGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmYoZl92ZXJ0ZXhBdHRyaWIx
diwgc3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OnZlcnRleEF0dHJpYjJmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMmZ2KEV4ZWNTdGF0
ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmYoZl92ZXJ0ZXhBdHRyaWIydiwg
c3RhdGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OnZlcnRleEF0dHJpYjNmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliM2Z2KEV4ZWNTdGF0ZSYg
c3RhdGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmYoZl92ZXJ0ZXhBdHRyaWIzdiwgc3Rh
dGUsIHdyYXBwZWQoKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OnZlcnRleEF0dHJpYjRmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliNGZ2KEV4ZWNTdGF0ZSYgc3Rh
dGUpCiB7CiAgICAgcmV0dXJuIGRhdGFGdW5jdGlvbmYoZl92ZXJ0ZXhBdHRyaWI0diwgc3RhdGUs
IHdyYXBwZWQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
TW9kdWxlTG9hZGVyLmNwcAppbmRleCA5ZmEyOTQwNzhiYmFjYTNkYzI3NjEwNzBhNDhiMjhiNWI3
MmNjNjRkLi5lMTJhMjQwZDdlNjg3YjljYTY5NjQwZDgyZDZjNDM0ZmU3OGQ2YTQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMTM1LDYgKzEzNSwxMCBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVM
b2FkZXI6OnJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYQogCiBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGpzR2xvYmFsT2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU01vZHVsZUxv
YWRlciosIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSwgSlNDOjpKU1ZhbHVlIGluaXRpYXRv
cikKIHsKKyAgICAvLyBGSVhNRTogV2hhdCBndWFyYW50ZWVzIHRoZXNlIGFyZSB0cnVlPyBXaHkg
ZG9uJ3Qgd2UgbmVlZCB0byBjaGVjaz8KKyAgICBBU1NFUlQoSlNDOjpqc0R5bmFtaWNDYXN0PEpT
RWxlbWVudCo+KGluaXRpYXRvcikpOworICAgIEFTU0VSVChpc1NjcmlwdEVsZW1lbnQoSlNDOjpq
c0R5bmFtaWNDYXN0PEpTRWxlbWVudCo+KGluaXRpYXRvciktPndyYXBwZWQoKSkpOworCiAgICAg
YXV0byYgZ2xvYmFsT2JqZWN0ID0gKkpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oanNH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8mIGpzUHJvbWlzZSA9ICpKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCAmZ2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIGRlZmVy
cmVkID0gRGVmZXJyZWRQcm9taXNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBqc1Byb21pc2UpOwpA
QCAtMTU2LDE3ICsxNjAsMTIgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9kdWxl
TG9hZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE8KICAgICAgICAgcmV0
dXJuIGpzUHJvbWlzZS5wcm9taXNlKCk7CiAgICAgfQogCi0gICAgQVNTRVJUX1dJVEhfTUVTU0FH
RShKU0M6OmpzRHluYW1pY0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKSwgIkluaXRpYXRvciBz
aG91bGQgYmUgYW4gSlNFbGVtZW50Iik7Ci0gICAgYXV0byogc2NyaXB0RWxlbWVudCA9IHRvU2Ny
aXB0RWxlbWVudElmUG9zc2libGUoJkpTQzo6anNDYXN0PEpTRWxlbWVudCo+KGluaXRpYXRvcikt
PndyYXBwZWQoKSk7Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRShzY3JpcHRFbGVtZW50LCAiSW5p
dGlhdG9yIHNob3VsZCBiZSBTY3JpcHRFbGVtZW50LiIpOwotCiAgICAgaWYgKGF1dG8qIGZyYW1l
ID0gbV9kb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGF1dG8gbG9hZGVyID0gQ2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdldCgpKTsKICAgICAgICAg
bV9sb2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKLSAgICAgICAgaWYgKCFsb2FkZXItPmxv
YWQoKnNjcmlwdEVsZW1lbnQsIGNvbXBsZXRlZFVSTCkpIHsKKyAgICAgICAgaWYgKCFsb2FkZXIt
PmxvYWQoZG93bmNhc3RTY3JpcHRFbGVtZW50KEpTQzo6anNDYXN0PEpTRWxlbWVudCo+KGluaXRp
YXRvciktPndyYXBwZWQoKSksIGNvbXBsZXRlZFVSTCkpIHsKICAgICAgICAgICAgIGxvYWRlci0+
Y2xlYXJDbGllbnQoKTsKICAgICAgICAgICAgIG1fbG9hZGVycy5yZW1vdmUoV1RGTW92ZShsb2Fk
ZXIpKTsKLQogICAgICAgICAgICAgZGVmZXJyZWQtPnJlamVjdChmcmFtZS0+c2NyaXB0KCkubW9k
dWxlTG9hZGVyQWxyZWFkeVJlcG9ydGVkRXJyb3JTeW1ib2woKSk7CiAgICAgICAgICAgICByZXR1
cm4ganNQcm9taXNlLnByb21pc2UoKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRl
eCA0YzQzYmRkMWQ3ZTQ4Mjc2MzllYWEzZjQ1N2E4NTRhNTcyNTZlMGEwLi45NzJiZWIxZWZjYjJj
Mzc4MjkyMDY3ZWU3NmQ2OWIyMWUwYzg4NjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMyw3
ICszLDcgQEAKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9A
a2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2Rl
Lm9yZykKICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEB3ZWJr
aXQub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTAsIDIwMTItMjAxMywgMjAxNSwgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDgsIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93
d3cudG9yY2htb2JpbGUuY29tLykKICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNjYsOSArNjYsNyBAQAogCiBuYW1l
c3BhY2UgSlNDIHsKIGNsYXNzIEV4ZWNTdGF0ZTsKLSNpZiBFTkFCTEUoV0VCX1JFUExBWSkKIGNs
YXNzIElucHV0Q3Vyc29yOwotI2VuZGlmCiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTk5
LDggKzk3LDggQEAgY2xhc3MgRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBEb2N1bWVudFNoYXJlZE9i
amVjdFBvb2w7CiBjbGFzcyBEb2N1bWVudFR5cGU7CiBjbGFzcyBFeHRlbnNpb25TdHlsZVNoZWV0
czsKLWNsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIEZsb2F0UXVhZDsKK2NsYXNzIEZsb2F0UmVjdDsK
IGNsYXNzIEZvcm1Db250cm9sbGVyOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBGcmFtZVZpZXc7CkBA
IC0xMjEsMTEgKzExOSwxMCBAQCBjbGFzcyBIVE1MU2NyaXB0RWxlbWVudDsKIGNsYXNzIEhpdFRl
c3RSZXF1ZXN0OwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEludFBvaW50OworY2xhc3Mg
SlNOb2RlOwogY2xhc3MgTGF5b3V0UG9pbnQ7CiBjbGFzcyBMYXlvdXRSZWN0OwogY2xhc3MgTGl2
ZU5vZGVMaXN0OwotY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOwotY2xhc3MgSlNOb2RlOwogY2xh
c3MgTG9jYWxlOwogY2xhc3MgTG9jYXRpb247CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7
CkBAIC0xMzMsNyArMTMwLDYgQEAgY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldDsKIGNsYXNzIE1l
ZGlhUGxheWJhY2tUYXJnZXRDbGllbnQ7CiBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKIGNsYXNzIE1l
ZGlhUXVlcnlNYXRjaGVyOwotY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOwogY2xhc3MgTW91c2VF
dmVudFdpdGhIaXRUZXN0UmVzdWx0czsKIGNsYXNzIE5hbWVkRmxvd0NvbGxlY3Rpb247CiBjbGFz
cyBOb2RlRmlsdGVyOwpAQCAtMTQzLDIzICsxMzksMjQgQEAgY2xhc3MgUGxhdGZvcm1Nb3VzZUV2
ZW50OwogY2xhc3MgUHJvY2Vzc2luZ0luc3RydWN0aW9uOwogY2xhc3MgUXVhbGlmaWVkTmFtZTsK
IGNsYXNzIFJhbmdlOwotY2xhc3MgUmVuZGVyVmlldzsKIGNsYXNzIFJlbmRlckZ1bGxTY3JlZW47
Ci1jbGFzcyBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXI7CitjbGFzcyBSZW5kZXJWaWV3OworY2xh
c3MgU1ZHRG9jdW1lbnRFeHRlbnNpb25zOworY2xhc3MgU1ZHU1ZHRWxlbWVudDsKIGNsYXNzIFNj
cmlwdEVsZW1lbnREYXRhOworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOwogY2xhc3MgU2NyaXB0
UnVubmVyOworY2xhc3MgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyOwogY2xhc3MgU2VjdXJpdHlP
cmlnaW47CitjbGFzcyBTZWdtZW50ZWRTdHJpbmc7CiBjbGFzcyBTZWxlY3RvclF1ZXJ5OwogY2xh
c3MgU2VsZWN0b3JRdWVyeUNhY2hlOwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwotY2xh
c3MgU2VnbWVudGVkU3RyaW5nOwogY2xhc3MgU2V0dGluZ3M7CiBjbGFzcyBTdHlsZVJlc29sdmVy
OwogY2xhc3MgU3R5bGVTaGVldDsKIGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKIGNsYXNzIFN0
eWxlU2hlZXRMaXN0OwotY2xhc3MgU1ZHRG9jdW1lbnRFeHRlbnNpb25zOwotY2xhc3MgU1ZHU1ZH
RWxlbWVudDsKIGNsYXNzIFRleHQ7CiBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwogY2xhc3Mg
VHJlZVdhbGtlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcAppbmRleCAyYmUwZTJl
YjkwMzJkZDM4OWFiNTc0ZDQ4MDg2MDRmMmU2YmZiNTQ5Li4yZjk4NjgyMmFmM2FlNzFhNDEwNTdi
MTA0N2Q1ZTJmNWRiOTIwZDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGlu
Z1NjcmlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuY3BwCkBA
IC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjYsMzAgKzI3LDMwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGVuZGluZ1Nj
cmlwdC5oIgogCi0jaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIlBlbmRpbmdTY3JpcHRD
bGllbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotUmVmPFBlbmRpbmdTY3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShFbGVtZW50JiBl
bGVtZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQpCitSZWY8UGVuZGluZ1Njcmlw
dD4gUGVuZGluZ1NjcmlwdDo6Y3JlYXRlKFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQsIExvYWRhYmxl
U2NyaXB0JiBsb2FkYWJsZVNjcmlwdCkKIHsKLSAgICBSZWY8UGVuZGluZ1NjcmlwdD4gcGVuZGlu
Z1NjcmlwdCA9IGFkb3B0UmVmKCpuZXcgUGVuZGluZ1NjcmlwdChlbGVtZW50LCBsb2FkYWJsZVNj
cmlwdCkpOworICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IGFkb3B0UmVmKCpuZXcgUGVuZGluZ1Nj
cmlwdChlbGVtZW50LCBsb2FkYWJsZVNjcmlwdCkpOwogICAgIGxvYWRhYmxlU2NyaXB0LmFkZENs
aWVudChwZW5kaW5nU2NyaXB0LmdldCgpKTsKICAgICByZXR1cm4gcGVuZGluZ1NjcmlwdDsKIH0K
IAotUmVmPFBlbmRpbmdTY3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShFbGVtZW50JiBlbGVt
ZW50LCBUZXh0UG9zaXRpb24gc2NyaXB0U3RhcnRQb3NpdGlvbikKK1JlZjxQZW5kaW5nU2NyaXB0
PiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoU2NyaXB0RWxlbWVudCYgZWxlbWVudCwgVGV4dFBvc2l0
aW9uIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGVu
ZGluZ1NjcmlwdChlbGVtZW50LCBzY3JpcHRTdGFydFBvc2l0aW9uKSk7CiB9CiAKLVBlbmRpbmdT
Y3JpcHQ6OlBlbmRpbmdTY3JpcHQoRWxlbWVudCYgZWxlbWVudCwgVGV4dFBvc2l0aW9uIHN0YXJ0
aW5nUG9zaXRpb24pCitQZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQm
IGVsZW1lbnQsIFRleHRQb3NpdGlvbiBzdGFydGluZ1Bvc2l0aW9uKQogICAgIDogbV9lbGVtZW50
KGVsZW1lbnQpCiAgICAgLCBtX3N0YXJ0aW5nUG9zaXRpb24oc3RhcnRpbmdQb3NpdGlvbikKIHsK
IH0KIAotUGVuZGluZ1NjcmlwdDo6UGVuZGluZ1NjcmlwdChFbGVtZW50JiBlbGVtZW50LCBMb2Fk
YWJsZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQpCitQZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0
KFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlwdCkK
ICAgICA6IG1fZWxlbWVudChlbGVtZW50KQogICAgICwgbV9sb2FkYWJsZVNjcmlwdCgmbG9hZGFi
bGVTY3JpcHQpCiB7CkBAIC02MSwxMSArNjIsNiBAQCBQZW5kaW5nU2NyaXB0Ojp+UGVuZGluZ1Nj
cmlwdCgpCiAgICAgICAgIG1fbG9hZGFibGVTY3JpcHQtPnJlbW92ZUNsaWVudCgqdGhpcyk7CiB9
CiAKLUxvYWRhYmxlU2NyaXB0KiBQZW5kaW5nU2NyaXB0Ojpsb2FkYWJsZVNjcmlwdCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fbG9hZGFibGVTY3JpcHQuZ2V0KCk7Ci19Ci0KIHZvaWQgUGVuZGlu
Z1NjcmlwdDo6bm90aWZ5Q2xpZW50RmluaXNoZWQoKQogewogICAgIFJlZjxQZW5kaW5nU2NyaXB0
PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKQEAgLTg4LDEwICs4NCwxMCBAQCBib29sIFBlbmRpbmdT
Y3JpcHQ6OmVycm9yKCkgY29uc3QKICAgICByZXR1cm4gbV9sb2FkYWJsZVNjcmlwdCAmJiBtX2xv
YWRhYmxlU2NyaXB0LT5lcnJvcigpOwogfQogCi12b2lkIFBlbmRpbmdTY3JpcHQ6OnNldENsaWVu
dChQZW5kaW5nU2NyaXB0Q2xpZW50KiBjbGllbnQpCit2b2lkIFBlbmRpbmdTY3JpcHQ6OnNldENs
aWVudChQZW5kaW5nU2NyaXB0Q2xpZW50JiBjbGllbnQpCiB7CiAgICAgQVNTRVJUKCFtX2NsaWVu
dCk7Ci0gICAgbV9jbGllbnQgPSBjbGllbnQ7CisgICAgbV9jbGllbnQgPSAmY2xpZW50OwogICAg
IGlmIChpc0xvYWRlZCgpKQogICAgICAgICBub3RpZnlDbGllbnRGaW5pc2hlZCgpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKaW5kZXggOTkwZjI1MDgzYjAxYjAyN2M0YWMwMTQxN2Y4
ZjQ5MTZhOWU4ZTY2Ni4uZmM3NThkMDdkZDYwZGVjMzE4YmI4OGRhZDA3ODdmODQ4ODJmODIxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5oCkBAIC0zNCwxNSArMzQsMTUgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkU2NyaXB0OwotY2xhc3MgRWxlbWVudDsKIGNs
YXNzIFBlbmRpbmdTY3JpcHRDbGllbnQ7CitjbGFzcyBTY3JpcHRFbGVtZW50OwogCiAvLyBBIGNv
bnRhaW5lciBmb3Igc2NyaXB0cyB3aGljaCBtYXkgYmUgbG9hZGVkIGFuZCBleGVjdXRlZC4KIC8v
IFRoaXMgY2FuIGhvbGQgTG9hZGFibGVTY3JpcHQgYW5kIG5vbiBleHRlcm5hbCBpbmxpbmUgc2Ny
aXB0LgogY2xhc3MgUGVuZGluZ1NjcmlwdCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFBlbmRp
bmdTY3JpcHQ+LCBwdWJsaWMgTG9hZGFibGVTY3JpcHRDbGllbnQgewogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8UGVuZGluZ1NjcmlwdD4gY3JlYXRlKEVsZW1lbnQmLCBMb2FkYWJsZVNjcmlwdCYp
OwotICAgIHN0YXRpYyBSZWY8UGVuZGluZ1NjcmlwdD4gY3JlYXRlKEVsZW1lbnQmLCBUZXh0UG9z
aXRpb24gc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgc3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0
PiBjcmVhdGUoU2NyaXB0RWxlbWVudCYsIExvYWRhYmxlU2NyaXB0Jik7CisgICAgc3RhdGljIFJl
ZjxQZW5kaW5nU2NyaXB0PiBjcmVhdGUoU2NyaXB0RWxlbWVudCYsIFRleHRQb3NpdGlvbiBzY3Jp
cHRTdGFydFBvc2l0aW9uKTsKIAogICAgIHZpcnR1YWwgflBlbmRpbmdTY3JpcHQoKTsKIApAQCAt
NTEsOCArNTEsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIHdhdGNoaW5nRm9yTG9hZCgpIGNvbnN0
IHsgcmV0dXJuIG5lZWRzTG9hZGluZygpICYmIG1fY2xpZW50OyB9CiAKLSAgICBFbGVtZW50JiBl
bGVtZW50KCkgeyByZXR1cm4gbV9lbGVtZW50LmdldCgpOyB9Ci0gICAgY29uc3QgRWxlbWVudCYg
ZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudC5nZXQoKTsgfQorICAgIFNjcmlwdEVs
ZW1lbnQmIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0KKyAgICBjb25zdCBT
Y3JpcHRFbGVtZW50JiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50LmdldCgpOyB9
CiAKICAgICBMb2FkYWJsZVNjcmlwdCogbG9hZGFibGVTY3JpcHQoKSBjb25zdDsKICAgICBib29s
IG5lZWRzTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuIGxvYWRhYmxlU2NyaXB0KCk7IH0KQEAgLTYy
LDE5ICs2MiwyNCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKExvYWRhYmxl
U2NyaXB0Jikgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNldENsaWVudChQZW5kaW5nU2NyaXB0Q2xp
ZW50Kik7CisgICAgdm9pZCBzZXRDbGllbnQoUGVuZGluZ1NjcmlwdENsaWVudCYpOwogICAgIHZv
aWQgY2xlYXJDbGllbnQoKTsKIAogcHJpdmF0ZToKLSAgICBQZW5kaW5nU2NyaXB0KEVsZW1lbnQm
LCBMb2FkYWJsZVNjcmlwdCYpOwotICAgIFBlbmRpbmdTY3JpcHQoRWxlbWVudCYsIFRleHRQb3Np
dGlvbiBzdGFydGluZ1Bvc2l0aW9uKTsKKyAgICBQZW5kaW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQm
LCBMb2FkYWJsZVNjcmlwdCYpOworICAgIFBlbmRpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCYsIFRl
eHRQb3NpdGlvbiBzdGFydGluZ1Bvc2l0aW9uKTsKIAogICAgIHZvaWQgbm90aWZ5Q2xpZW50Rmlu
aXNoZWQoKTsKIAotICAgIFJlZjxFbGVtZW50PiBtX2VsZW1lbnQ7CisgICAgUmVmPFNjcmlwdEVs
ZW1lbnQ+IG1fZWxlbWVudDsKICAgICBUZXh0UG9zaXRpb24gbV9zdGFydGluZ1Bvc2l0aW9uOyAv
LyBPbmx5IHVzZWQgZm9yIGlubGluZSBzY3JpcHQgdGFncy4KICAgICBSZWZQdHI8TG9hZGFibGVT
Y3JpcHQ+IG1fbG9hZGFibGVTY3JpcHQ7CiAgICAgUGVuZGluZ1NjcmlwdENsaWVudCogbV9jbGll
bnQgeyBudWxscHRyIH07CiB9OwogCitpbmxpbmUgTG9hZGFibGVTY3JpcHQqIFBlbmRpbmdTY3Jp
cHQ6OmxvYWRhYmxlU2NyaXB0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9sb2FkYWJsZVNjcmlw
dC5nZXQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDYx
ZjI0ODJmNTg3MWQ4YWQwYjc1MjZmNmY0NDViY2RiNzc0ZmM0OGYuLmY2ODYzN2FjNGQ5NWNlODhh
MWZiMDU1MzFkZmRhZmY1MDAxNDAwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5j
cHAKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25v
bGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlz
dG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJA
a2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4g
PHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yNjMsMTEgKzI2MywxMSBAQCBi
b29sIFNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3Jp
cHRTdGFydFBvc2l0aW9uLCBMZWdhYwogICAgIH0gZWxzZSBpZiAoKGlzQ2xhc3NpY0V4dGVybmFs
U2NyaXB0IHx8IHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6TW9kdWxlKSAmJiAhYXN5bmNBdHRy
aWJ1dGVWYWx1ZSgpICYmICFtX2ZvcmNlQXN5bmMpIHsKICAgICAgICAgbV93aWxsRXhlY3V0ZUlu
T3JkZXIgPSB0cnVlOwogICAgICAgICBBU1NFUlQobV9sb2FkYWJsZVNjcmlwdCk7Ci0gICAgICAg
IGRvY3VtZW50LnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbih0aGlzLCAq
bV9sb2FkYWJsZVNjcmlwdCwgU2NyaXB0UnVubmVyOjpJTl9PUkRFUl9FWEVDVVRJT04pOworICAg
ICAgICBkb2N1bWVudC5zY3JpcHRSdW5uZXIoKS0+cXVldWVTY3JpcHRGb3JFeGVjdXRpb24oKnRo
aXMsICptX2xvYWRhYmxlU2NyaXB0LCBTY3JpcHRSdW5uZXI6OklOX09SREVSX0VYRUNVVElPTik7
CiAgICAgfSBlbHNlIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSB8fCBzY3JpcHRUeXBlID09IFNj
cmlwdFR5cGU6Ok1vZHVsZSkgewogICAgICAgICBBU1NFUlQobV9sb2FkYWJsZVNjcmlwdCk7CiAg
ICAgICAgIEFTU0VSVChhc3luY0F0dHJpYnV0ZVZhbHVlKCkgfHwgbV9mb3JjZUFzeW5jKTsKLSAg
ICAgICAgZG9jdW1lbnQuc2NyaXB0UnVubmVyKCktPnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKHRo
aXMsICptX2xvYWRhYmxlU2NyaXB0LCBTY3JpcHRSdW5uZXI6OkFTWU5DX0VYRUNVVElPTik7Cisg
ICAgICAgIGRvY3VtZW50LnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbigq
dGhpcywgKm1fbG9hZGFibGVTY3JpcHQsIFNjcmlwdFJ1bm5lcjo6QVNZTkNfRVhFQ1VUSU9OKTsK
ICAgICB9IGVsc2UgaWYgKCFoYXNTb3VyY2VBdHRyaWJ1dGUoKSAmJiBtX3BhcnNlckluc2VydGVk
ICYmICFkb2N1bWVudC5oYXZlU3R5bGVzaGVldHNMb2FkZWQoKSkgewogICAgICAgICBBU1NFUlQo
c2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpDbGFzc2ljKTsKICAgICAgICAgbV93aWxsQmVQYXJz
ZXJFeGVjdXRlZCA9IHRydWU7CkBAIC00ODcsMTUgKzQ4NywyNiBAQCBTdHJpbmcgU2NyaXB0RWxl
bWVudDo6c2NyaXB0Q29udGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygp
OwogfQogCi1TY3JpcHRFbGVtZW50KiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKEVsZW1lbnQq
IGVsZW1lbnQpCit2b2lkIFNjcmlwdEVsZW1lbnQ6OnJlZigpCiB7Ci0gICAgaWYgKGlzPEhUTUxT
Y3JpcHRFbGVtZW50PigqZWxlbWVudCkpCi0gICAgICAgIHJldHVybiBkb3duY2FzdDxIVE1MU2Ny
aXB0RWxlbWVudD4oZWxlbWVudCk7CisgICAgbV9lbGVtZW50LnJlZigpOworfQogCi0gICAgaWYg
KGlzPFNWR1NjcmlwdEVsZW1lbnQ+KCplbGVtZW50KSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0
PFNWR1NjcmlwdEVsZW1lbnQ+KGVsZW1lbnQpOwordm9pZCBTY3JpcHRFbGVtZW50OjpkZXJlZigp
Cit7CisgICAgbV9lbGVtZW50LmRlcmVmKCk7Cit9CiAKLSAgICByZXR1cm4gbnVsbHB0cjsKK2Jv
b2wgaXNTY3JpcHRFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgcmV0dXJuIGlzPEhU
TUxTY3JpcHRFbGVtZW50PihlbGVtZW50KSB8fCBpczxTVkdTY3JpcHRFbGVtZW50PihlbGVtZW50
KTsKK30KKworU2NyaXB0RWxlbWVudCYgZG93bmNhc3RTY3JpcHRFbGVtZW50KEVsZW1lbnQmIGVs
ZW1lbnQpCit7CisgICAgaWYgKGlzPEhUTUxTY3JpcHRFbGVtZW50PihlbGVtZW50KSkKKyAgICAg
ICAgcmV0dXJuIGRvd25jYXN0PEhUTUxTY3JpcHRFbGVtZW50PihlbGVtZW50KTsKKyAgICByZXR1
cm4gZG93bmNhc3Q8U1ZHU2NyaXB0RWxlbWVudD4oZWxlbWVudCk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RWxlbWVudC5oCmluZGV4IDQwNzljMTcwOTMyMTc4NDA4N2U5ZTNmNzMyMzQ2YzU1
ODAwZjdiMTQuLjVmMTgxZGYyZTNiMGU4ODhlZjM5NDdiYmNkYzE4ZDkzMDdkZGViMWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI1LDE5ICsyNiwxNyBAQAogI2luY2x1ZGUgIkxvYWRhYmxl
U2NyaXB0LmgiCiAjaW5jbHVkZSAiTG9hZGFibGVTY3JpcHRDbGllbnQuaCIKICNpbmNsdWRlICJU
aW1lci5oIgotI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlv
bi5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK2NsYXNzIENhY2hlZE1vZHVsZVNjcmlwdDsKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNs
YXNzIENvbnRhaW5lck5vZGU7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgUGVuZGluZ1NjcmlwdDsK
LWNsYXNzIFNjcmlwdEVsZW1lbnQ7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwotY2xhc3MgQ2Fj
aGVkTW9kdWxlU2NyaXB0OworY2xhc3MgVVJMOwogCiBjbGFzcyBTY3JpcHRFbGVtZW50IHsKIHB1
YmxpYzoKQEAgLTczLDYgKzcyLDkgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgU2NyaXB0VHlw
ZSB7IENsYXNzaWMsIE1vZHVsZSB9OwogICAgIFNjcmlwdFR5cGUgc2NyaXB0VHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1faXNNb2R1bGVTY3JpcHQgPyBTY3JpcHRUeXBlOjpNb2R1bGUgOiBTY3JpcHRU
eXBlOjpDbGFzc2ljOyB9CiAKKyAgICB2b2lkIHJlZigpOworICAgIHZvaWQgZGVyZWYoKTsKKwog
cHJvdGVjdGVkOgogICAgIFNjcmlwdEVsZW1lbnQoRWxlbWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFy
c2VyLCBib29sIGlzRXZhbHVhdGVkKTsKIApAQCAtMTI3LDcgKzEyOSw4IEBAIHByaXZhdGU6CiAg
ICAgUmVmUHRyPExvYWRhYmxlU2NyaXB0PiBtX2xvYWRhYmxlU2NyaXB0OwogfTsKIAotLy8gRklY
TUU6IHJlcGxhY2Ugd2l0aCBkb3duY2FzdDxTY3JpcHRFbGVtZW50Pi4KLVNjcmlwdEVsZW1lbnQq
IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoRWxlbWVudCopOworLy8gRklYTUU6IHJlcGxhY2Ug
d2l0aCBpcy9kb3duY2FzdDxTY3JpcHRFbGVtZW50Pi4KK2Jvb2wgaXNTY3JpcHRFbGVtZW50KEVs
ZW1lbnQmKTsKK1NjcmlwdEVsZW1lbnQmIGRvd25jYXN0U2NyaXB0RWxlbWVudChFbGVtZW50Jik7
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKaW5kZXggNzA5ODllYjQwYzA0NWFk
ZTc3NGFlNTdkMDlhNDA0OGI1OWUzODgwNC4uMDQxZTZkMTMzMWY0NDIzYzE1Yzk4NzY5ZjlhMjI3
NGNlZDBhZDBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAgLTEsNSArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NiwyNiArNTcs
MjIgQEAgU2NyaXB0UnVubmVyOjp+U2NyaXB0UnVubmVyKCkKICAgICB9CiB9CiAKLXZvaWQgU2Ny
aXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBzY3JpcHRF
bGVtZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9hZGFibGVTY3JpcHQsIEV4ZWN1dGlvblR5cGUgZXhl
Y3V0aW9uVHlwZSkKK3ZvaWQgU2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4ZWN1dGlvbihT
Y3JpcHRFbGVtZW50JiBzY3JpcHRFbGVtZW50LCBMb2FkYWJsZVNjcmlwdCYgbG9hZGFibGVTY3Jp
cHQsIEV4ZWN1dGlvblR5cGUgZXhlY3V0aW9uVHlwZSkKIHsKLSAgICBBU1NFUlQoc2NyaXB0RWxl
bWVudCk7Ci0KLSAgICBFbGVtZW50JiBlbGVtZW50ID0gc2NyaXB0RWxlbWVudC0+ZWxlbWVudCgp
OwotICAgIEFTU0VSVChlbGVtZW50LmluRG9jdW1lbnQoKSk7CisgICAgQVNTRVJUKHNjcmlwdEVs
ZW1lbnQuZWxlbWVudCgpLmluRG9jdW1lbnQoKSk7CiAKICAgICBtX2RvY3VtZW50LmluY3JlbWVu
dExvYWRFdmVudERlbGF5Q291bnQoKTsKIAotICAgIFJlZjxQZW5kaW5nU2NyaXB0PiBwZW5kaW5n
U2NyaXB0ID0gUGVuZGluZ1NjcmlwdDo6Y3JlYXRlKGVsZW1lbnQsIGxvYWRhYmxlU2NyaXB0KTsK
KyAgICBhdXRvIHBlbmRpbmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoc2NyaXB0RWxl
bWVudCwgbG9hZGFibGVTY3JpcHQpOwogICAgIHN3aXRjaCAoZXhlY3V0aW9uVHlwZSkgewogICAg
IGNhc2UgQVNZTkNfRVhFQ1VUSU9OOgogICAgICAgICBtX3BlbmRpbmdBc3luY1NjcmlwdHMuYWRk
KHBlbmRpbmdTY3JpcHQuY29weVJlZigpKTsKICAgICAgICAgYnJlYWs7Ci0KICAgICBjYXNlIElO
X09SREVSX0VYRUNVVElPTjoKICAgICAgICAgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5hcHBl
bmQocGVuZGluZ1NjcmlwdC5jb3B5UmVmKCkpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAg
cGVuZGluZ1NjcmlwdC0+c2V0Q2xpZW50KHRoaXMpOworICAgIHBlbmRpbmdTY3JpcHQtPnNldENs
aWVudCgqdGhpcyk7CiB9CiAKIHZvaWQgU2NyaXB0UnVubmVyOjpzdXNwZW5kKCkKQEAgLTkxLDkg
Kzg4LDcgQEAgdm9pZCBTY3JpcHRSdW5uZXI6OnJlc3VtZSgpCiAKIHZvaWQgU2NyaXB0UnVubmVy
Ojpub3RpZnlGaW5pc2hlZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogewotICAgIGF1
dG8qIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5nU2Ny
aXB0LmVsZW1lbnQoKSk7Ci0gICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOwotICAgIGlmIChzY3Jp
cHRFbGVtZW50LT53aWxsRXhlY3V0ZUluT3JkZXIoKSkKKyAgICBpZiAocGVuZGluZ1NjcmlwdC5l
bGVtZW50KCkud2lsbEV4ZWN1dGVJbk9yZGVyKCkpCiAgICAgICAgIEFTU0VSVCghbV9zY3JpcHRz
VG9FeGVjdXRlSW5PcmRlci5pc0VtcHR5KCkpOwogICAgIGVsc2UgewogICAgICAgICBBU1NFUlQo
bV9wZW5kaW5nQXN5bmNTY3JpcHRzLmNvbnRhaW5zKHBlbmRpbmdTY3JpcHQpKTsKQEAgLTEyMiwx
MCArMTE3LDggQEAgdm9pZCBTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoKQogICAgICAgICAvLyBQ
YXBlciBvdmVyIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQwNTAK
ICAgICAgICAgaWYgKCFzY3JpcHQpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgYXV0
byogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoJnNjcmlwdC0+ZWxl
bWVudCgpKTsKLSAgICAgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOwogICAgICAgICBBU1NFUlQo
c2NyaXB0LT5uZWVkc0xvYWRpbmcoKSk7Ci0gICAgICAgIHNjcmlwdEVsZW1lbnQtPmV4ZWN1dGVQ
ZW5kaW5nU2NyaXB0KCpzY3JpcHQpOworICAgICAgICBzY3JpcHQtPmVsZW1lbnQoKS5leGVjdXRl
UGVuZGluZ1NjcmlwdCgqc2NyaXB0KTsKICAgICAgICAgbV9kb2N1bWVudC5kZWNyZW1lbnRMb2Fk
RXZlbnREZWxheUNvdW50KCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdFJ1bm5lci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCmlu
ZGV4IGRmY2YzYzVmYTkwZTRhNDUwOTQwNDJkODc3ZGUzYmNlNDQ4MDBkOWEuLjhlOGY0ODZhZDFk
YjBkYmMwZDBiZTY0NTIxMTFlZWQ3NzBmMTUzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRSdW5uZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVy
LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yOCwxMyArMjksMTEgQEAKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0Q2xpZW50LmgiCiAj
aW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKLWNsYXNzIFBlbmRpbmdTY3JpcHQ7CiBjbGFzcyBT
Y3JpcHRFbGVtZW50OwogY2xhc3MgTG9hZGFibGVTY3JpcHQ7CiAKQEAgLTQ1LDcgKzQ0LDcgQEAg
cHVibGljOgogICAgIH5TY3JpcHRSdW5uZXIoKTsKIAogICAgIGVudW0gRXhlY3V0aW9uVHlwZSB7
IEFTWU5DX0VYRUNVVElPTiwgSU5fT1JERVJfRVhFQ1VUSU9OIH07Ci0gICAgdm9pZCBxdWV1ZVNj
cmlwdEZvckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiwgTG9hZGFibGVTY3JpcHQmLCBFeGVjdXRp
b25UeXBlKTsKKyAgICB2b2lkIHF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQm
LCBMb2FkYWJsZVNjcmlwdCYsIEV4ZWN1dGlvblR5cGUpOwogICAgIGJvb2wgaGFzUGVuZGluZ1Nj
cmlwdHMoKSBjb25zdCB7IHJldHVybiAhbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkg
fHwgIW1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpIHx8ICFtX3BlbmRpbmdBc3lu
Y1NjcmlwdHMuaXNFbXB0eSgpOyB9CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCByZXN1
bWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDEzNjdiNGYyMGVh
MDkxMWRmOWNkZGNmMWMxNjJlNzM5ZDFlMDI2ZTMuLjU3ZDBkYzFjNzYzZDY3YjZiMDIyOGM4NjA1
MTNkN2YxZTljNTM2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcs
IDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgpAQCAtMjIxLDcgKzIyMSw3IEBAIGJvb2wgRmlsZUlucHV0VHlwZTo6Y2Fu
U2V0U3RyaW5nVmFsdWUoKSBjb25zdAogCiBGaWxlTGlzdCogRmlsZUlucHV0VHlwZTo6ZmlsZXMo
KQogewotICAgIHJldHVybiBtX2ZpbGVMaXN0LmdldCgpOworICAgIHJldHVybiBtX2ZpbGVMaXN0
LnB0cigpOwogfQogCiBib29sIEZpbGVJbnB1dFR5cGU6OmNhblNldFZhbHVlKGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCkBAIC0yNTgsMTIgKzI1OCwxMiBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OnNldFZh
bHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpCiAgICAgZWxl
bWVudCgpLmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKIH0KIAotUGFzc1JlZlB0cjxGaWxl
TGlzdD4gRmlsZUlucHV0VHlwZTo6Y3JlYXRlRmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9v
c2VyRmlsZUluZm8+JiBmaWxlcykgY29uc3QKK1JlZjxGaWxlTGlzdD4gRmlsZUlucHV0VHlwZTo6
Y3JlYXRlRmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBmaWxlcykK
IHsKICAgICBWZWN0b3I8UmVmUHRyPEZpbGU+PiBmaWxlT2JqZWN0czsKLSAgICBmb3IgKGNvbnN0
IEZpbGVDaG9vc2VyRmlsZUluZm8mIGluZm8gOiBmaWxlcykKLSAgICAgICAgZmlsZU9iamVjdHMu
YXBwZW5kKEZpbGU6OmNyZWF0ZVdpdGhOYW1lKGluZm8ucGF0aCwgaW5mby5kaXNwbGF5TmFtZSkp
OwotCisgICAgZmlsZU9iamVjdHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShmaWxlcy5zaXplKCkp
OworICAgIGZvciAoYXV0byYgaW5mbyA6IGZpbGVzKQorICAgICAgICBmaWxlT2JqZWN0cy51bmNo
ZWNrZWRBcHBlbmQoRmlsZTo6Y3JlYXRlV2l0aE5hbWUoaW5mby5wYXRoLCBpbmZvLmRpc3BsYXlO
YW1lKSk7CiAgICAgcmV0dXJuIEZpbGVMaXN0OjpjcmVhdGUoV1RGTW92ZShmaWxlT2JqZWN0cykp
OwogfQogCkBAIC0zMDIsMjkgKzMwMiwzMiBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6Om11bHRpcGxl
QXR0cmlidXRlQ2hhbmdlZCgpCiAgICAgICAgIGJ1dHRvbi0+c2V0VmFsdWUoZWxlbWVudCgpLm11
bHRpcGxlKCkgPyBmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkgOiBmaWxlQnV0
dG9uQ2hvb3NlRmlsZUxhYmVsKCkpOwogfQogCisjaWYgIVBMQVRGT1JNKElPUykKKwogdm9pZCBG
aWxlSW5wdXRUeXBlOjpyZXF1ZXN0SWNvbihjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpCiB7
Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIFVOVVNFRF9QQVJBTShwYXRocyk7Ci0jZWxzZQogICAg
IGlmICghcGF0aHMuc2l6ZSgpKSB7Ci0gICAgICAgIHVwZGF0ZVJlbmRlcmluZyhudWxscHRyKTsK
KyAgICAgICAgaWNvbkxvYWRlZChudWxscHRyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIENocm9tZSogY2hyb21lID0gdGhpcy0+Y2hyb21lKCk7Ci0gICAgaWYgKCFjaHJvbWUpCisg
ICAgYXV0byogY2hyb21lID0gdGhpcy0+Y2hyb21lKCk7CisgICAgaWYgKCFjaHJvbWUpIHsKKyAg
ICAgICAgaWNvbkxvYWRlZChudWxscHRyKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAg
IGlmIChtX2ZpbGVJY29uTG9hZGVyKQogICAgICAgICBtX2ZpbGVJY29uTG9hZGVyLT5pbnZhbGlk
YXRlKCk7CiAKLSAgICBtX2ZpbGVJY29uTG9hZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxGaWxlSWNv
bkxvYWRlcj4oc3RhdGljX2Nhc3Q8RmlsZUljb25Mb2FkZXJDbGllbnQmPigqdGhpcykpOworICAg
IEZpbGVJY29uTG9hZGVyQ2xpZW50JiBjbGllbnQgPSAqdGhpczsKKyAgICBtX2ZpbGVJY29uTG9h
ZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxGaWxlSWNvbkxvYWRlcj4oY2xpZW50KTsKIAotICAgIGNo
cm9tZS0+bG9hZEljb25Gb3JGaWxlcyhwYXRocywgbV9maWxlSWNvbkxvYWRlci5nZXQoKSk7Ci0j
ZW5kaWYKKyAgICBjaHJvbWUtPmxvYWRJY29uRm9yRmlsZXMocGF0aHMsICptX2ZpbGVJY29uTG9h
ZGVyKTsKIH0KIAorI2VuZGlmCisKIHZvaWQgRmlsZUlucHV0VHlwZTo6YXBwbHlGaWxlQ2hvb3Nl
clNldHRpbmdzKGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIGlm
IChtX2ZpbGVDaG9vc2VyKQpAQCAtMzMzLDE4ICszMzYsMjAgQEAgdm9pZCBGaWxlSW5wdXRUeXBl
OjphcHBseUZpbGVDaG9vc2VyU2V0dGluZ3MoY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0
dGluZ3MKICAgICBtX2ZpbGVDaG9vc2VyID0gRmlsZUNob29zZXI6OmNyZWF0ZSh0aGlzLCBzZXR0
aW5ncyk7CiB9CiAKLXZvaWQgRmlsZUlucHV0VHlwZTo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxl
TGlzdD4gZmlsZXMpCit2b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFJlZlB0cjxGaWxlTGlz
dD4mJiBmaWxlcykKIHsKICAgICBpZiAoIWZpbGVzKQogICAgICAgICByZXR1cm47CiAKICAgICBS
ZWY8SFRNTElucHV0RWxlbWVudD4gaW5wdXQoZWxlbWVudCgpKTsKIAorICAgIHVuc2lnbmVkIGxl
bmd0aCA9IGZpbGVzLT5sZW5ndGgoKTsKKwogICAgIGJvb2wgcGF0aHNDaGFuZ2VkID0gZmFsc2U7
Ci0gICAgaWYgKGZpbGVzLT5sZW5ndGgoKSAhPSBtX2ZpbGVMaXN0LT5sZW5ndGgoKSkKKyAgICBp
ZiAobGVuZ3RoICE9IG1fZmlsZUxpc3QtPmxlbmd0aCgpKQogICAgICAgICBwYXRoc0NoYW5nZWQg
PSB0cnVlOwogICAgIGVsc2UgewotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmls
ZXMtPmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxl
bmd0aDsgKytpKSB7CiAgICAgICAgICAgICBpZiAoZmlsZXMtPml0ZW0oaSktPnBhdGgoKSAhPSBt
X2ZpbGVMaXN0LT5pdGVtKGkpLT5wYXRoKCkpIHsKICAgICAgICAgICAgICAgICBwYXRoc0NoYW5n
ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzUyLDE1ICszNTcsMTggQEAg
dm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0PiBmaWxlcykK
ICAgICAgICAgfQogICAgIH0KIAotICAgIG1fZmlsZUxpc3QgPSBmaWxlczsKKyAgICBtX2ZpbGVM
aXN0ID0gZmlsZXMucmVsZWFzZU5vbk51bGwoKTsKIAogICAgIGlucHV0LT5zZXRGb3JtQ29udHJv
bFZhbHVlTWF0Y2hlc1JlbmRlcmVyKHRydWUpOwogICAgIGlucHV0LT51cGRhdGVWYWxpZGl0eSgp
OwogCisjaWYgIVBMQVRGT1JNKElPUykKICAgICBWZWN0b3I8U3RyaW5nPiBwYXRoczsKLSAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9maWxlTGlzdC0+bGVuZ3RoKCk7ICsraSkKLSAgICAg
ICAgcGF0aHMuYXBwZW5kKG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSk7CisgICAgcGF0aHMu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShsZW5ndGgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgcGF0aHMudW5jaGVja2VkQXBwZW5kKG1fZmlsZUxp
c3QtPml0ZW0oaSktPnBhdGgoKSk7CiAgICAgcmVxdWVzdEljb24ocGF0aHMpOworI2VuZGlmCiAK
ICAgICBpZiAoaW5wdXQtPnJlbmRlcmVyKCkpCiAgICAgICAgIGlucHV0LT5yZW5kZXJlcigpLT5y
ZXBhaW50KCk7CkBAIC0zNzQsMTcgKzM4MiwxOSBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZp
bGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+IGZpbGVzKQogfQogCiAjaWYgUExBVEZPUk0oSU9TKQor
CiB2b2lkIEZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3Nl
ckZpbGVJbmZvPiYgcGF0aHMsIGNvbnN0IFN0cmluZyYgZGlzcGxheVN0cmluZywgSWNvbiogaWNv
bikKIHsKICAgICBtX2Rpc3BsYXlTdHJpbmcgPSBkaXNwbGF5U3RyaW5nOwogICAgIGZpbGVzQ2hv
c2VuKHBhdGhzKTsKLSAgICB1cGRhdGVSZW5kZXJpbmcoaWNvbik7CisgICAgaWNvbkxvYWRlZChp
Y29uKTsKIH0KIAogU3RyaW5nIEZpbGVJbnB1dFR5cGU6OmRpc3BsYXlTdHJpbmcoKSBjb25zdAog
ewogICAgIHJldHVybiBtX2Rpc3BsYXlTdHJpbmc7CiB9CisKICNlbmRpZgogCiB2b2lkIEZpbGVJ
bnB1dFR5cGU6OmZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYg
ZmlsZXMpCkBAIC0zOTIsMTIgKzQwMiwxMiBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hv
c2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgZmlsZXMpCiAgICAgc2V0Rmls
ZXMoY3JlYXRlRmlsZUxpc3QoZmlsZXMpKTsKIH0KIAotdm9pZCBGaWxlSW5wdXRUeXBlOjp1cGRh
dGVSZW5kZXJpbmcoUGFzc1JlZlB0cjxJY29uPiBpY29uKQordm9pZCBGaWxlSW5wdXRUeXBlOjpp
Y29uTG9hZGVkKFJlZlB0cjxJY29uPiYmIGljb24pCiB7CiAgICAgaWYgKG1faWNvbiA9PSBpY29u
KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2ljb24gPSBpY29uOworICAgIG1faWNvbiA9IFdU
Rk1vdmUoaWNvbik7CiAgICAgaWYgKGVsZW1lbnQoKS5yZW5kZXJlcigpKQogICAgICAgICBlbGVt
ZW50KCkucmVuZGVyZXIoKS0+cmVwYWludCgpOwogfQpAQCAtNDM0LDggKzQ0NCw3IEBAIEljb24q
IEZpbGVJbnB1dFR5cGU6Omljb24oKSBjb25zdAogCiBTdHJpbmcgRmlsZUlucHV0VHlwZTo6ZGVm
YXVsdFRvb2xUaXAoKSBjb25zdAogewotICAgIEZpbGVMaXN0KiBmaWxlTGlzdCA9IG1fZmlsZUxp
c3QuZ2V0KCk7Ci0gICAgdW5zaWduZWQgbGlzdFNpemUgPSBmaWxlTGlzdC0+bGVuZ3RoKCk7Cisg
ICAgdW5zaWduZWQgbGlzdFNpemUgPSBtX2ZpbGVMaXN0LT5sZW5ndGgoKTsKICAgICBpZiAoIWxp
c3RTaXplKSB7CiAgICAgICAgIGlmIChlbGVtZW50KCkubXVsdGlwbGUoKSkKICAgICAgICAgICAg
IHJldHVybiBmaWxlQnV0dG9uTm9GaWxlc1NlbGVjdGVkTGFiZWwoKTsKQEAgLTQ0Myw4ICs0NTIs
OCBAQCBTdHJpbmcgRmlsZUlucHV0VHlwZTo6ZGVmYXVsdFRvb2xUaXAoKSBjb25zdAogICAgIH0K
IAogICAgIFN0cmluZ0J1aWxkZXIgbmFtZXM7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBs
aXN0U2l6ZTsgKytpKSB7Ci0gICAgICAgIG5hbWVzLmFwcGVuZChmaWxlTGlzdC0+aXRlbShpKS0+
bmFtZSgpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgewor
ICAgICAgICBuYW1lcy5hcHBlbmQobV9maWxlTGlzdC0+aXRlbShpKS0+bmFtZSgpKTsKICAgICAg
ICAgaWYgKGkgIT0gbGlzdFNpemUgLSAxKQogICAgICAgICAgICAgbmFtZXMuYXBwZW5kKCdcbicp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKaW5kZXggZjhhMGRmZjJkOGQz
YzMwNWYwMWExZGY4Yzg5MWEyOTBlMzY1NjNmMS4uZWU0MDY0OGQ2OTUxZGE2YWQyOTM5YTAyZjUz
NmU3Nzg4NjljMmY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAgLTUwLDQ1
ICs1MCw0NSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZv
PiBmaWxlc0Zyb21Gb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKTsKIAog
cHJpdmF0ZToKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0
IG92ZXJyaWRlOwotICAgIEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9sU3RhdGUoKSBj
b25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZv
cm1Db250cm9sU3RhdGUmKSBvdmVycmlkZTsKLSAgICBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1E
YXRhTGlzdCYsIGJvb2wpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgdmFsdWVNaXNzaW5nKGNv
bnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwotICAgIFN0cmluZyB2YWx1ZU1pc3NpbmdUZXh0
KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50
Jikgb3ZlcnJpZGU7Ci0gICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUlucHV0UmVu
ZGVyZXIoUmVuZGVyU3R5bGUmJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBjYW5TZXRTdHJpbmdWYWx1
ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIEZpbGVMaXN0KiBmaWxlcygpIG92ZXJyaWRlOwotICAg
IHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4pIG92ZXJyaWRlOworICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgZmluYWw7CisgICAgRm9ybUNv
bnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQg
cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIGZpbmFsOwor
ICAgIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3QgZmluYWw7
CisgICAgYm9vbCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CisgICAg
U3RyaW5nIHZhbHVlTWlzc2luZ1RleHQoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGhhbmRsZURP
TUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBmaW5hbDsKKyAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYmKSBmaW5hbDsKKyAgICBib29sIGNh
blNldFN0cmluZ1ZhbHVlKCkgY29uc3QgZmluYWw7CisgICAgRmlsZUxpc3QqIGZpbGVzKCkgZmlu
YWw7CisgICAgdm9pZCBzZXRGaWxlcyhSZWZQdHI8RmlsZUxpc3Q+JiYpIGZpbmFsOwogI2lmIFBM
QVRGT1JNKElPUykKLSAgICBTdHJpbmcgZGlzcGxheVN0cmluZygpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIFN0cmluZyBkaXNwbGF5U3RyaW5nKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKLSAgICBib29s
IGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwotICAgIGJvb2wgZ2V0VHlwZVNw
ZWNpZmljVmFsdWUoU3RyaW5nJikgb3ZlcnJpZGU7IC8vIENoZWNrZWQgZmlyc3QsIGJlZm9yZSBp
bnRlcm5hbCBzdG9yYWdlIG9yIHRoZSB2YWx1ZSBhdHRyaWJ1dGUuCi0gICAgdm9pZCBzZXRWYWx1
ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlv
cikgb3ZlcnJpZGU7CisgICAgYm9vbCBjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcmKSBmaW5hbDsK
KyAgICBib29sIGdldFR5cGVTcGVjaWZpY1ZhbHVlKFN0cmluZyYpIGZpbmFsOyAvLyBDaGVja2Vk
IGZpcnN0LCBiZWZvcmUgaW50ZXJuYWwgc3RvcmFnZSBvciB0aGUgdmFsdWUgYXR0cmlidXRlLgor
ICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRG
aWVsZEV2ZW50QmVoYXZpb3IpIGZpbmFsOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAg
ICBib29sIHJlY2VpdmVEcm9wcGVkRmlsZXMoY29uc3QgRHJhZ0RhdGEmKSBvdmVycmlkZTsKKyAg
ICBib29sIHJlY2VpdmVEcm9wcGVkRmlsZXMoY29uc3QgRHJhZ0RhdGEmKSBmaW5hbDsKICNlbmRp
ZgogCi0gICAgSWNvbiogaWNvbigpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNGaWxlVXBs
b2FkKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBkaXNhYmxlZEF0dHJpYnV0ZUNoYW5nZWQoKSBvdmVycmlkZTsKLSAg
ICB2b2lkIG11bHRpcGxlQXR0cmlidXRlQ2hhbmdlZCgpIG92ZXJyaWRlOwotICAgIFN0cmluZyBk
ZWZhdWx0VG9vbFRpcCgpIGNvbnN0IG92ZXJyaWRlOworICAgIEljb24qIGljb24oKSBjb25zdCBm
aW5hbDsKKyAgICBib29sIGlzRmlsZVVwbG9hZCgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY3Jl
YXRlU2hhZG93U3VidHJlZSgpIGZpbmFsOworICAgIHZvaWQgZGlzYWJsZWRBdHRyaWJ1dGVDaGFu
Z2VkKCkgZmluYWw7CisgICAgdm9pZCBtdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQoKSBmaW5hbDsK
KyAgICBTdHJpbmcgZGVmYXVsdFRvb2xUaXAoKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIEZpbGVD
aG9vc2VyQ2xpZW50IGltcGxlbWVudGF0aW9uLgotICAgIHZvaWQgZmlsZXNDaG9zZW4oY29uc3Qg
VmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBmaWxlc0No
b3Nlbihjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mKSBmaW5hbDsKICNpZiBQTEFU
Rk9STShJT1MpCi0gICAgdm9pZCBmaWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8RmlsZUNob29zZXJG
aWxlSW5mbz4mLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlTdHJpbmcsIEljb24qKSBvdmVycmlkZTsK
KyAgICB2b2lkIGZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYs
IGNvbnN0IFN0cmluZyYgZGlzcGxheVN0cmluZywgSWNvbiopIGZpbmFsOwogI2VuZGlmCiAKICAg
ICAvLyBGaWxlSWNvbkxvYWRlckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KLSAgICB2b2lkIHVwZGF0
ZVJlbmRlcmluZyhQYXNzUmVmUHRyPEljb24+KSBvdmVycmlkZTsKKyAgICB2b2lkIGljb25Mb2Fk
ZWQoUmVmUHRyPEljb24+JiYpIGZpbmFsOwogCi0gICAgUGFzc1JlZlB0cjxGaWxlTGlzdD4gY3Jl
YXRlRmlsZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBmaWxlcykgY29u
c3Q7CisgICAgc3RhdGljIFJlZjxGaWxlTGlzdD4gY3JlYXRlRmlsZUxpc3QoY29uc3QgVmVjdG9y
PEZpbGVDaG9vc2VyRmlsZUluZm8+Jik7CiAgICAgdm9pZCByZXF1ZXN0SWNvbihjb25zdCBWZWN0
b3I8U3RyaW5nPiYpOwogCiAgICAgdm9pZCBhcHBseUZpbGVDaG9vc2VyU2V0dGluZ3MoY29uc3Qg
RmlsZUNob29zZXJTZXR0aW5ncyYpOwpAQCAtOTgsNyArOTgsNyBAQCBwcml2YXRlOgogICAgIHN0
ZDo6dW5pcXVlX3B0cjxGaWxlSWNvbkxvYWRlcj4gbV9maWxlSWNvbkxvYWRlcjsKICNlbmRpZgog
Ci0gICAgUmVmUHRyPEZpbGVMaXN0PiBtX2ZpbGVMaXN0OworICAgIFJlZjxGaWxlTGlzdD4gbV9m
aWxlTGlzdDsKICAgICBSZWZQdHI8SWNvbj4gbV9pY29uOwogI2lmIFBMQVRGT1JNKElPUykKICAg
ICBTdHJpbmcgbV9kaXNwbGF5U3RyaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApp
bmRleCBmNGJlNzE1OGM1MTAwODU4MzA1ODBiNmE3Mzg1ODcyMDMwMzlhM2Q5Li4wMzIyYjEzOWQy
ODViMGYyOGYxMWI2MzBmOTQzOTE5MDE4ZGM2MTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmNwcApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBL
bm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0
byAoa29pdmlzdG9Aa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwg
MjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6
Ly93d3cudG9yY2htb2JpbGUuY29tLykKICAqIENvcHlyaWdodCAoQykgMjAxMSBNb3Rvcm9sYSBN
b2JpbGl0eS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC03NTIsNyArNzUyLDcgQEAgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVuZGVyU3R5bGUmJiBzdHlsZSwKICAgICByZXR1cm4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9y
KCp0aGlzLCBXVEZNb3ZlKHN0eWxlKSk7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTEVsZW1l
bnQ6OnZpcnR1YWxGb3JtKCkgY29uc3QKK0hUTUxGb3JtRWxlbWVudCogSFRNTEVsZW1lbnQ6OmZv
cm0oKSBjb25zdAogewogICAgIHJldHVybiBIVE1MRm9ybUVsZW1lbnQ6OmZpbmRDbG9zZXN0Rm9y
bUFuY2VzdG9yKCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAppbmRleCAzOWQ0
Y2I3MmI2NzYzNzI3NzU5MTEyNmE4YTE1MjUwNTQwMmRmZTBjLi5jMWY5ZWNiNzZkZjczNTMzOGJi
OTUwY2JmNzAxNGI4ZGRkYjFhYWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCkBAIC0x
LDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBr
ZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0Br
ZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDksIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC03MCw3ICs3MCw3IEBA
IHB1YmxpYzoKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBv
dmVycmlkZTsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwog
Ci0gICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkgY29uc3QgeyByZXR1cm4gdmlydHVhbEZvcm0o
KTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkg
Y29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBBdG9taWNTdHJpbmcmIGRpcigpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RGlyKGNvbnN0IEF0b21pY1N0cmluZyYp
OwpAQCAtMTMzLDggKzEzMyw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIG1hcExhbmd1YWdlQXR0
cmlidXRlVG9Mb2NhbGUoY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYpOwogCi0gICAgdmlydHVhbCBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkgY29uc3Q7
Ci0KICAgICBFeGNlcHRpb25PcjxSZWY8RG9jdW1lbnRGcmFnbWVudD4+IHRleHRUb0ZyYWdtZW50
KGNvbnN0IFN0cmluZyYpOwogCiAgICAgdm9pZCBkaXJBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0
b21pY1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNv
bnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5jcHAKaW5kZXggODQ1MTZjYjYyNDRjMzNiMWY3MDVlMDZkZTI4MjJhZWExMWU1MWJkOC4u
MmU4NzJhYWJhZTY0YjA0NDhkMjIxNGU5NjJiYjE2ZjZjYmY5OTAxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0yLDcgKzIsNyBAQAog
ICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAg
ICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAg
ICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3Yg
KGFwQG55cG9wLmNvbSkKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC01OTMsMTEgKzU5Myw2IEBAIHZvaWQgSFRN
TEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYg
bmV3Rm9jdXNlZEVsZW1lCiAgICAgaGlkZVZpc2libGVWYWxpZGF0aW9uTWVzc2FnZSgpOwogfQog
Ci1IVE1MRm9ybUVsZW1lbnQqIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnZpcnR1YWxGb3JtKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtKCk7Ci19Ci0K
ICNpZiBFTkFCTEUoSU9TX0FVVE9DT1JSRUNUX0FORF9BVVRPQ0FQSVRBTElaRSkKIAogLy8gRklY
TUU6IFdlIHNob3VsZCBsb29rIHRvIHNoYXJlIHRoaXMgY29kZSB3aXRoIGNsYXNzIEhUTUxGb3Jt
RWxlbWVudCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIHRoZSBsb2dpYy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggNGZmNDg5NGYzNWZlNjFkMmVk
ZjBjMDg1NWU5MjI0NGFjZGM1YzRmYy4uNTBiOGNkNGMxODE0MTM1MDNkNTQzN2U3ZjllMDUyNGY3
MzNkNTUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25v
bGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlz
dG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11ZWxsZXJA
a2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwg
MjAwOSwgMjAxMCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgSFRNTEZvcm1Db250cm9sRWxl
bWVudCA6IHB1YmxpYyBMYWJlbGFibGVFbGVtZW50LCBwdWJsaWMgRm9ybUFzc29jaWF0ZWRFbGUK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5IVE1MRm9ybUNvbnRyb2xFbGVtZW50KCk7CiAKLSAgICBI
VE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCB7IHJldHVybiBGb3JtQXNzb2NpYXRlZEVsZW1l
bnQ6OmZvcm0oKTsgfQorICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybSgpOyB9CiAKICAgICBXRUJDT1JFX0VY
UE9SVCBTdHJpbmcgZm9ybUVuY3R5cGUoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldEZvcm1FbmN0eXBlKGNvbnN0IFN0cmluZyYpOwpAQCAtMTY5LDcgKzE2OSw2IEBAIHByaXZh
dGU6CiAKICAgICBpbnQgdGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKIAotICAgIEhUTUxGb3JtRWxl
bWVudCogdmlydHVhbEZvcm0oKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzVmFsaWRGb3Jt
Q29udHJvbEVsZW1lbnQoKSBjb25zdDsKIAogICAgIGJvb2wgY29tcHV0ZUlzRGlzYWJsZWRCeUZp
ZWxkc2V0QW5jZXN0b3IoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCmluZGV4IGQ0M2Q0ZWY5ZTAxMTkyNmQwZThhMGViZGVjODc1MmQzZWZmZGZjMjQuLjgy
MTJjYjI5ODhjMzQxOTI3Y2Y3ZTEzZjE5YmI1MmMwZGQ2NjY1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAo
QykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5
IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAx
IERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEzLCAyMDE0LCAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAw
NiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDcgU2FtdWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTExODQsMTAgKzExODQsOSBAQCB2
b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQog
ICAgICAgICBpZiAod2FzQ2hhbmdlZFNpbmNlTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKSkK
ICAgICAgICAgICAgIGRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwogCi0gICAgICAg
IFJlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IGZvcm1Gb3JTdWJtaXNzaW9uID0gbV9pbnB1dFR5cGUt
PmZvcm1Gb3JTdWJtaXNzaW9uKCk7CiAgICAgICAgIC8vIEZvcm0gbWF5IG5ldmVyIGhhdmUgYmVl
biBwcmVzZW50LCBvciBtYXkgaGF2ZSBiZWVuIGRlc3Ryb3llZCBieSBjb2RlIHJlc3BvbmRpbmcg
dG8gdGhlIGNoYW5nZSBldmVudC4KLSAgICAgICAgaWYgKGZvcm1Gb3JTdWJtaXNzaW9uKQotICAg
ICAgICAgICAgZm9ybUZvclN1Ym1pc3Npb24tPnN1Ym1pdEltcGxpY2l0bHkoZXZlbnQsIGNhblRy
aWdnZXJJbXBsaWNpdFN1Ym1pc3Npb24oKSk7CisgICAgICAgIGlmIChhdXRvKiBmb3JtRWxlbWVu
dCA9IGZvcm0oKSkKKyAgICAgICAgICAgIGZvcm1FbGVtZW50LT5zdWJtaXRJbXBsaWNpdGx5KGV2
ZW50LCBjYW5UcmlnZ2VySW1wbGljaXRTdWJtaXNzaW9uKCkpOwogCiAgICAgICAgIGV2ZW50LnNl
dERlZmF1bHRIYW5kbGVkKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTEzNDIsOSArMTM0MSw5IEBA
IEZpbGVMaXN0KiBIVE1MSW5wdXRFbGVtZW50OjpmaWxlcygpCiAgICAgcmV0dXJuIG1faW5wdXRU
eXBlLT5maWxlcygpOwogfQogCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEZpbGVzKFBhc3NS
ZWZQdHI8RmlsZUxpc3Q+IGZpbGVzKQordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRGaWxlcyhS
ZWZQdHI8RmlsZUxpc3Q+JiYgZmlsZXMpCiB7Ci0gICAgbV9pbnB1dFR5cGUtPnNldEZpbGVzKGZp
bGVzKTsKKyAgICBtX2lucHV0VHlwZS0+c2V0RmlsZXMoV1RGTW92ZShmaWxlcykpOwogfQogCiAj
aWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKQEAgLTE4NjksNyArMTg2OCw3IEBAIFJhZGlvQnV0dG9u
R3JvdXBzKiBIVE1MSW5wdXRFbGVtZW50OjpyYWRpb0J1dHRvbkdyb3VwcygpIGNvbnN0CiB7CiAg
ICAgaWYgKCFpc1JhZGlvQnV0dG9uKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGlm
IChIVE1MRm9ybUVsZW1lbnQqIGZvcm1FbGVtZW50ID0gZm9ybSgpKQorICAgIGlmIChhdXRvKiBm
b3JtRWxlbWVudCA9IGZvcm0oKSkKICAgICAgICAgcmV0dXJuICZmb3JtRWxlbWVudC0+cmFkaW9C
dXR0b25Hcm91cHMoKTsKICAgICBpZiAoaW5Eb2N1bWVudCgpKQogICAgICAgICByZXR1cm4gJmRv
Y3VtZW50KCkuZm9ybUNvbnRyb2xsZXIoKS5yYWRpb0J1dHRvbkdyb3VwcygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA4YWZmZDk4MTE3NTRkOWU0OTIzNjI1NmU2
NTVkNmRhNTU4M2Y1NmQ2Li5iZjAwYmFmZmM0NjIwMzZhOGIyMmVkOWRjYmNhMzViMmIxMWZlMTRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMiw3ICsyLDcgQEAK
ICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAg
ICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAg
ICAgICAgIChDKSAyMDAwIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJp
Z2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgpAQCAtNDMsOCArNDMsOCBAQCBjbGFzcyBJY29uOwogY2xhc3MgSW5w
dXRUeXBlOwogY2xhc3MgTGlzdEF0dHJpYnV0ZVRhcmdldE9ic2VydmVyOwogY2xhc3MgUmFkaW9C
dXR0b25Hcm91cHM7Ci1jbGFzcyBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ7CiBjbGFzcyBV
Ukw7CisKIHN0cnVjdCBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzOwogCiBzdHJ1Y3QgSW5wdXRF
bGVtZW50Q2xpY2tTdGF0ZSB7CkBAIC0yMzgsNyArMjM4LDcgQEAgcHVibGljOgogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U2hvd0F1dG9GaWxsQnV0dG9uKEF1dG9GaWxsQnV0dG9uVHlwZSk7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBGaWxlTGlzdCogZmlsZXMoKTsKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4mJik7CiAKICNpZiBFTkFCTEUoRFJB
R19TVVBQT1JUKQogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gRHJhZ0RhdGEgaGFz
IG1vcmUgdGhhbiBvbmUgZHJvcHBlZCBmaWxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJl
bEVsZW1lbnQuY3BwCmluZGV4IDcxMWQwNmQyMzIzZjBkNmQ1NWUxYWFjYWVkZWFmNGVlMDY3NzM5
YWMuLjAxMGZmYzRjMzRiODA5NWNhOTk0NTMwMDNhZTBmYjZjZTg3YmYxZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHly
aWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChD
KSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChD
KSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBv
cC5jb20pCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNTgsMzAgKzU4LDI4IEBAIFJlZjxIVE1MTGFiZWxFbGVt
ZW50PiBIVE1MTGFiZWxFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTExhYmVsRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQogCi1MYWJlbGFibGVFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpj
b250cm9sKCkKK0xhYmVsYWJsZUVsZW1lbnQqIEhUTUxMYWJlbEVsZW1lbnQ6OmNvbnRyb2woKSBj
b25zdAogewotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgY29udHJvbElkID0gYXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihmb3JBdHRyKTsKKyAgICBhdXRvJiBjb250cm9sSWQgPSBhdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGZvckF0dHIpOwogICAgIGlmIChjb250cm9sSWQu
aXNOdWxsKCkpIHsKICAgICAgICAgLy8gU2VhcmNoIHRoZSBjaGlsZHJlbiBhbmQgZGVzY2VuZGFu
dHMgb2YgdGhlIGxhYmVsIGVsZW1lbnQgZm9yIGEgZm9ybSBlbGVtZW50LgogICAgICAgICAvLyBw
ZXIgaHR0cDovL2Rldi53My5vcmcvaHRtbDUvc3BlYy9PdmVydmlldy5odG1sI3RoZS1sYWJlbC1l
bGVtZW50CiAgICAgICAgIC8vIHRoZSBmb3JtIGVsZW1lbnQgbXVzdCBiZSAibGFiZWxhYmxlIGZv
cm0tYXNzb2NpYXRlZCBlbGVtZW50Ii4KICAgICAgICAgZm9yIChhdXRvJiBsYWJlbGFibGVFbGVt
ZW50IDogZGVzY2VuZGFudHNPZlR5cGU8TGFiZWxhYmxlRWxlbWVudD4oKnRoaXMpKSB7CiAgICAg
ICAgICAgICBpZiAobGFiZWxhYmxlRWxlbWVudC5zdXBwb3J0TGFiZWxzKCkpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuICZsYWJlbGFibGVFbGVtZW50OworICAgICAgICAgICAgICAgIHJldHVybiBj
b25zdF9jYXN0PExhYmVsYWJsZUVsZW1lbnQqPigmbGFiZWxhYmxlRWxlbWVudCk7CiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIAogICAgIHJldHVybiBpbkRv
Y3VtZW50KCkgPyBmaXJzdEVsZW1lbnRXaXRoSWRJZkxhYmVsYWJsZSh0cmVlU2NvcGUoKSwgY29u
dHJvbElkKSA6IG51bGxwdHI7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTExhYmVsRWxlbWVu
dDo6Zm9ybSgpCitIVE1MRm9ybUVsZW1lbnQqIEhUTUxMYWJlbEVsZW1lbnQ6OmZvcm0oKSBjb25z
dAogewotICAgIGF1dG8qIGxhYmVsZWRDb250cm9sID0gY29udHJvbCgpOwotICAgIGlmICghbGFi
ZWxlZENvbnRyb2wpCisgICAgYXV0byogY29udHJvbCA9IHRoaXMtPmNvbnRyb2woKTsKKyAgICBp
ZiAoIWlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KGNvbnRyb2wpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLQotICAgIHJldHVybiBpczxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PigqbGFiZWxl
ZENvbnRyb2wpID8gZG93bmNhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oKmxhYmVsZWRDb250
cm9sKS5mb3JtKCkgOiBudWxscHRyOworICAgIHJldHVybiBkb3duY2FzdDxIVE1MRm9ybUNvbnRy
b2xFbGVtZW50PigqY29udHJvbCkuZm9ybSgpOwogfQogCiB2b2lkIEhUTUxMYWJlbEVsZW1lbnQ6
OnNldEFjdGl2ZShib29sIGRvd24sIGJvb2wgcGF1c2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExh
YmVsRWxlbWVudC5oCmluZGV4IDE0MGQ5ODk1ZDFmNDBkOGEyZDM2ZjU3ZTEzNTRhZGFlYjI0NWYx
OWUuLmEzZDE0MjEwOGI0MjZkNmFkZTQzYmU2OTEyYmY2YzViYzAxNDU4ZTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0
IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5
OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIw
MDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMSw4ICszMSw4IEBAIGNsYXNzIEhUTUxMYWJlbEVs
ZW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8SFRNTExhYmVsRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgTGFiZWxhYmxlRWxlbWVudCogY29udHJvbCgpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpOworICAgIFdFQkNPUkVf
RVhQT1JUIExhYmVsYWJsZUVsZW1lbnQqIGNvbnRyb2woKSBjb25zdDsKKyAgICBXRUJDT1JFX0VY
UE9SVCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgd2ls
bFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMZWdlbmRFbGVtZW50LmNwcAppbmRleCAwNDgxMDYxMWUxZGEyY2ZkMzk3OGNmYmE5Zjlm
MjkzMDU5YmQ0NWNlLi4wOTBlMGM3MmQ5YjZiMzVjNTNmNDI3ODE0NWI2MTlmZTQ3ZjgyYzRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcg
QEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICog
ICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICog
ICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChh
cEBueXBvcC5jb20pCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzEsMTMgKzMxLDEwIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKLQotCiBpbmxpbmUgSFRN
TExlZ2VuZEVsZW1lbnQ6OkhUTUxMZWdlbmRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KQogewotICAgIEFTU0VSVChoYXNUYWdOYW1lKGxlZ2VuZFRhZykpOworICAgIEFTU0VS
VChoYXNUYWdOYW1lKEhUTUxOYW1lczo6bGVnZW5kVGFnKSk7CiB9CiAKIFJlZjxIVE1MTGVnZW5k
RWxlbWVudD4gSFRNTExlZ2VuZEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC01OSw3ICs1Niw2IEBAIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQqIEhUTUxMZWdlbmRFbGVtZW50Ojphc3NvY2lhdGVkQ29udHJvbCgpCiAKIHZv
aWQgSFRNTExlZ2VuZEVsZW1lbnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9u
LCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB7Ci0gICAgLy8gVG8gbWF0Y2ggb3RoZXIgYnJv
d3NlcnMnIGJlaGF2aW9yLCBuZXZlciByZXN0b3JlIHByZXZpb3VzIHNlbGVjdGlvbi4KICAgICBp
ZiAoZG9jdW1lbnQoKS5oYXZlU3R5bGVzaGVldHNMb2FkZWQoKSkgewogICAgICAgICBkb2N1bWVu
dCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgICAgICBpZiAo
aXNGb2N1c2FibGUoKSkgewpAQCAtNjcsMjUgKzYzLDI2IEBAIHZvaWQgSFRNTExlZ2VuZEVsZW1l
bnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbiBk
aXJlCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CisKKyAgICAvLyBUbyBt
YXRjaCBvdGhlciBicm93c2VycycgYmVoYXZpb3IsIG5ldmVyIHJlc3RvcmUgcHJldmlvdXMgc2Vs
ZWN0aW9uLgogICAgIGlmIChhdXRvKiBjb250cm9sID0gYXNzb2NpYXRlZENvbnRyb2woKSkKICAg
ICAgICAgY29udHJvbC0+Zm9jdXMoZmFsc2UsIGRpcmVjdGlvbik7CiB9CiAKIHZvaWQgSFRNTExl
Z2VuZEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKIHsKLSAg
ICBpZiAoSFRNTEZvcm1Db250cm9sRWxlbWVudCogY29udHJvbCA9IGFzc29jaWF0ZWRDb250cm9s
KCkpCisgICAgaWYgKGF1dG8qIGNvbnRyb2wgPSBhc3NvY2lhdGVkQ29udHJvbCgpKQogICAgICAg
ICBjb250cm9sLT5hY2Nlc3NLZXlBY3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsKIH0KIAotSFRNTEZv
cm1FbGVtZW50KiBIVE1MTGVnZW5kRWxlbWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAorSFRNTEZv
cm1FbGVtZW50KiBIVE1MTGVnZW5kRWxlbWVudDo6Zm9ybSgpIGNvbnN0CiB7CiAgICAgLy8gQWNj
b3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uLCBJZiB0aGUgbGVnZW5kIGhhcyBhIGZpZWxkc2V0
IGVsZW1lbnQgYXMKICAgICAvLyBpdHMgcGFyZW50LCB0aGVuIHRoZSBmb3JtIGF0dHJpYnV0ZSBt
dXN0IHJldHVybiB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUKICAgICAvLyBmb3JtIGF0dHJpYnV0ZSBv
biB0aGF0IGZpZWxkc2V0IGVsZW1lbnQuIE90aGVyd2lzZSwgaXQgbXVzdCByZXR1cm4gbnVsbC4K
LSAgICBDb250YWluZXJOb2RlKiBmaWVsZHNldCA9IHBhcmVudE5vZGUoKTsKKyAgICBhdXRvKiBm
aWVsZHNldCA9IHBhcmVudE5vZGUoKTsKICAgICBpZiAoIWlzPEhUTUxGaWVsZFNldEVsZW1lbnQ+
KGZpZWxkc2V0KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KICAgICByZXR1cm4gZG93bmNh
c3Q8SFRNTEZpZWxkU2V0RWxlbWVudD4oKmZpZWxkc2V0KS5mb3JtKCk7CiB9CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgKaW5kZXggMDM4Y2M5YTE3NmViYzBkNzA2
MmU2MGU1Yzk1OWExNWU4Mzg0NmYyZi4uMTQ0ZTE5ZjYyYjgxZDkzMmI4YTE5YWJjNmM4ZmZmMTlm
MTA1NTkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaApAQCAtMiw3
ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3Jn
KQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3Jn
KQogICogICAgICAgICAgIChDKSAyMDAwIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQot
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzMsMTUgKzMzLDE2IEBA
IGNsYXNzIEhUTUxMZWdlbmRFbGVtZW50IGZpbmFsIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgUmVmPEhUTUxMZWdlbmRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBIVE1MRm9ybUVs
ZW1lbnQqIGZvcm0oKSBjb25zdCBmaW5hbDsKKwogcHJpdmF0ZToKICAgICBIVE1MTGVnZW5kRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIC8vIENvbnRyb2wg
aW4gdGhlIGxlZ2VuZCdzIGZpZWxkc2V0IHRoYXQgZ2V0cyBmb2N1cyBhbmQgYWNjZXNzIGtleS4K
KyAgICAvLyBDb250cm9sIGluIHRoZSBsZWdlbmQncyBmaWVsZCBzZXQgdGhhdCBnZXRzIGZvY3Vz
IGFuZCBhY2Nlc3Mga2V5LgogICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGFzc29jaWF0ZWRD
b250cm9sKCk7CiAKICAgICB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50
cykgZmluYWw7CiAgICAgdm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwg
Rm9jdXNEaXJlY3Rpb24pIGZpbmFsOwotICAgIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0o
KSBjb25zdCBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDA4NGVmYzc4MDU0M2ZlZGQyMTRlOTU0
Njc5ODUxYzlkNzY1NjU0NjMuLmI4MzVhM2Q4N2NlYTZhM2Q1MzE5MDk5NjRiYjBkZjAwNzhkOTgz
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDEx
ICsyNCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIVE1MTWVk
aWFFbGVtZW50LmgiCiAKICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNsdWRlICJIVE1MTWVkaWFF
bGVtZW50LmgiCi0KICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgogI2luY2x1ZGUg
IkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgpAQCAt
MjY5LDIyICsyNjgsMjMgQEAgc3RhdGljIHZvaWQgcmVtb3ZlRWxlbWVudEZyb21Eb2N1bWVudE1h
cChIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50LCBEb2N1bWVudCYgZG8KIH0KIAogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKKwogY2xhc3MgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgewogcHVibGlj
OgotICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxl
bWVudCkKKyAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZShIVE1MTWVkaWFFbGVtZW50JiBlbGVt
ZW50KQorICAgICAgICA6IG1fZWxlbWVudChlbGVtZW50KQogICAgIHsKLSAgICAgICAgbV9tZWRp
YUVsZW1lbnQgPSBtZWRpYUVsZW1lbnQ7Ci0gICAgICAgIG1fbWVkaWFFbGVtZW50LT5iZWdpbkln
bm9yaW5nVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKTsKKyAgICAgICAgbV9lbGVtZW50LmJl
Z2luSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpOwogICAgIH0KICAgICB+VHJh
Y2tEaXNwbGF5VXBkYXRlU2NvcGUoKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fbWVkaWFFbGVt
ZW50KTsKLSAgICAgICAgbV9tZWRpYUVsZW1lbnQtPmVuZElnbm9yaW5nVHJhY2tEaXNwbGF5VXBk
YXRlUmVxdWVzdHMoKTsKKyAgICAgICAgbV9lbGVtZW50LmVuZElnbm9yaW5nVHJhY2tEaXNwbGF5
VXBkYXRlUmVxdWVzdHMoKTsKICAgICB9CiAgICAgCiBwcml2YXRlOgotICAgIEhUTUxNZWRpYUVs
ZW1lbnQqIG1fbWVkaWFFbGVtZW50OworICAgIEhUTUxNZWRpYUVsZW1lbnQmIG1fZWxlbWVudDsK
IH07CisKICNlbmRpZgogCiBzdHJ1Y3QgSFRNTE1lZGlhRWxlbWVudDo6VHJhY2tHcm91cCB7CkBA
IC0xNTU0LDcgKzE1NTQsNyBAQCBzdGF0aWMgYm9vbCBldmVudFRpbWVDdWVDb21wYXJlKGNvbnN0
IHN0ZDo6cGFpcjxNZWRpYVRpbWUsIFRleHRUcmFja0N1ZSo+JiBhLCBjbwogICAgIC8vIDEyIC0g
RnVydGhlciBzb3J0IHRhc2tzIGluIGV2ZW50cyB0aGF0IGhhdmUgdGhlIHNhbWUgdGltZSBieSB0
aGUKICAgICAvLyByZWxhdGl2ZSB0ZXh0IHRyYWNrIGN1ZSBvcmRlciBvZiB0aGUgdGV4dCB0cmFj
ayBjdWVzIGFzc29jaWF0ZWQKICAgICAvLyB3aXRoIHRoZXNlIHRhc2tzLgotICAgIHJldHVybiBh
LnNlY29uZC0+Y3VlSW5kZXgoKSAtIGIuc2Vjb25kLT5jdWVJbmRleCgpIDwgMDsKKyAgICByZXR1
cm4gYS5zZWNvbmQtPmlzT3JkZXJlZEJlZm9yZShiLnNlY29uZCk7CiB9CiAKIHN0YXRpYyBib29s
IGNvbXBhcmVDdWVJbnRlcnZhbChjb25zdCBDdWVJbnRlcnZhbCYgb25lLCBjb25zdCBDdWVJbnRl
cnZhbCYgdHdvKQpAQCAtMTgxNywyMiArMTgxNywyMSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OnRleHRUcmFja1JlYWR5U3RhdGVDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCiAgICAgfQogfQog
Ci12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1Ry
YWNrKiB0cmFjaykKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YXVkaW9UcmFja0VuYWJsZWRDaGFu
Z2VkKEF1ZGlvVHJhY2smIHRyYWNrKQogewotICAgIEFTU0VSVCh0cmFjayk7Ci0gICAgaWYgKG1f
YXVkaW9UcmFja3MgJiYgbV9hdWRpb1RyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAo
bV9hdWRpb1RyYWNrcyAmJiBtX2F1ZGlvVHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAg
IG1fYXVkaW9UcmFja3MtPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKICAgICBpZiAoU2NyaXB0Q29u
dHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgcmVtb3Zl
QmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKE1lZGlhRWxlbWVudFNl
c3Npb246OkFsbFJlc3RyaWN0aW9ucyAmIH5NZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNl
ckdlc3R1cmVUb0NvbnRyb2xDb250cm9sc01hbmFnZXIpOwogfQogCi12b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7CiAg
ICAgYm9vbCB0cmFja0lzTG9hZGVkID0gdHJ1ZTsKLSAgICBpZiAodHJhY2stPnRyYWNrVHlwZSgp
ID09IFRleHRUcmFjazo6VHJhY2tFbGVtZW50KSB7CisgICAgaWYgKHRyYWNrLnRyYWNrVHlwZSgp
ID09IFRleHRUcmFjazo6VHJhY2tFbGVtZW50KSB7CiAgICAgICAgIHRyYWNrSXNMb2FkZWQgPSBm
YWxzZTsKICAgICAgICAgZm9yIChhdXRvJiB0cmFja0VsZW1lbnQgOiBjaGlsZHJlbk9mVHlwZTxI
VE1MVHJhY2tFbGVtZW50PigqdGhpcykpIHsKLSAgICAgICAgICAgIGlmICgmdHJhY2tFbGVtZW50
LnRyYWNrKCkgPT0gdHJhY2spIHsKKyAgICAgICAgICAgIGlmICgmdHJhY2tFbGVtZW50LnRyYWNr
KCkgPT0gJnRyYWNrKSB7CiAgICAgICAgICAgICAgICAgaWYgKHRyYWNrRWxlbWVudC5yZWFkeVN0
YXRlKCkgPT0gSFRNTFRyYWNrRWxlbWVudDo6TE9BRElORyB8fCB0cmFja0VsZW1lbnQucmVhZHlT
dGF0ZSgpID09IEhUTUxUcmFja0VsZW1lbnQ6OkxPQURFRCkKICAgICAgICAgICAgICAgICAgICAg
dHJhY2tJc0xvYWRlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xODQ1LDMz
ICsxODQ0LDMyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQo
VGV4dFRyYWNrKiB0cmFjaykKICAgICAgICAgbV90ZXh0VHJhY2tzID0gVGV4dFRyYWNrTGlzdDo6
Y3JlYXRlKHRoaXMsIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
ICAgICAKICAgICAvLyBNYXJrIHRoaXMgdHJhY2sgYXMgImNvbmZpZ3VyZWQiIHNvIGNvbmZpZ3Vy
ZVRleHRUcmFja3Mgd29uJ3QgY2hhbmdlIHRoZSBtb2RlIGFnYWluLgotICAgIHRyYWNrLT5zZXRI
YXNCZWVuQ29uZmlndXJlZCh0cnVlKTsKKyAgICB0cmFjay5zZXRIYXNCZWVuQ29uZmlndXJlZCh0
cnVlKTsKICAgICAKLSAgICBpZiAodHJhY2stPm1vZGUoKSAhPSBUZXh0VHJhY2s6Ok1vZGU6OkRp
c2FibGVkICYmIHRyYWNrSXNMb2FkZWQpCi0gICAgICAgIHRleHRUcmFja0FkZEN1ZXModHJhY2ss
IHRyYWNrLT5jdWVzKCkpOworICAgIGlmICh0cmFjay5tb2RlKCkgIT0gVGV4dFRyYWNrOjpNb2Rl
OjpEaXNhYmxlZCAmJiB0cmFja0lzTG9hZGVkKQorICAgICAgICB0ZXh0VHJhY2tBZGRDdWVzKHRy
YWNrLCAqdHJhY2suY3VlcygpKTsKIAogICAgIGNvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkoQXNz
dW1lVGV4dFRyYWNrVmlzaWJpbGl0eUNoYW5nZWQpOwogCi0gICAgaWYgKG1fdGV4dFRyYWNrcyAm
JiBtX3RleHRUcmFja3MtPmNvbnRhaW5zKCp0cmFjaykpCisgICAgaWYgKG1fdGV4dFRyYWNrcyAm
JiBtX3RleHRUcmFja3MtPmNvbnRhaW5zKHRyYWNrKSkKICAgICAgICAgbV90ZXh0VHJhY2tzLT5z
Y2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQotICAgIGlm
ICh0cmFjay0+dHJhY2tUeXBlKCkgPT0gVGV4dFRyYWNrOjpUcmFja0VsZW1lbnQgJiYgbV9wbGF5
ZXIpCisgICAgaWYgKHRyYWNrLnRyYWNrVHlwZSgpID09IFRleHRUcmFjazo6VHJhY2tFbGVtZW50
ICYmIG1fcGxheWVyKQogICAgICAgICBtX3BsYXllci0+bm90aWZ5VHJhY2tNb2RlQ2hhbmdlZCgp
OwogI2VuZGlmCiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dmlkZW9UcmFja1NlbGVjdGVk
Q2hhbmdlZChWaWRlb1RyYWNrKiB0cmFjaykKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dmlkZW9U
cmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrJiB0cmFjaykKIHsKLSAgICBBU1NFUlQodHJh
Y2spOwotICAgIGlmIChtX3ZpZGVvVHJhY2tzICYmIG1fdmlkZW9UcmFja3MtPmNvbnRhaW5zKCp0
cmFjaykpCisgICAgaWYgKG1fdmlkZW9UcmFja3MgJiYgbV92aWRlb1RyYWNrcy0+Y29udGFpbnMo
dHJhY2spKQogICAgICAgICBtX3ZpZGVvVHJhY2tzLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiB9
CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNr
KiB0cmFjaykKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4
dFRyYWNrJiB0cmFjaykKIHsKLSAgICBpZiAodHJhY2stPmtpbmQoKSAhPSBUZXh0VHJhY2s6Oktp
bmQ6OkNhcHRpb25zICYmIHRyYWNrLT5raW5kKCkgIT0gVGV4dFRyYWNrOjpLaW5kOjpTdWJ0aXRs
ZXMgJiYgdHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OlNob3dpbmcpCi0gICAgICAg
IHRyYWNrLT5zZXRNb2RlKFRleHRUcmFjazo6TW9kZTo6SGlkZGVuKTsKKyAgICBpZiAodHJhY2su
a2luZCgpICE9IFRleHRUcmFjazo6S2luZDo6Q2FwdGlvbnMgJiYgdHJhY2sua2luZCgpICE9IFRl
eHRUcmFjazo6S2luZDo6U3VidGl0bGVzICYmIHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1v
ZGU6OlNob3dpbmcpCisgICAgICAgIHRyYWNrLnNldE1vZGUoVGV4dFRyYWNrOjpNb2RlOjpIaWRk
ZW4pOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmJlZ2luSWdub3JpbmdUcmFja0Rpc3Bs
YXlVcGRhdGVSZXF1ZXN0cygpCkBAIC0xODg3LDI2ICsxODg1LDI4IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6ZW5kSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpCiAgICAgICAg
IHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMoY3VycmVudE1lZGlhVGltZSgpKTsKIH0KIAotdm9p
ZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayogdHJhY2ssIGNv
bnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1ZXMpIAordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0
VHJhY2tBZGRDdWVzKFRleHRUcmFjayYgdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1
ZXMpCiB7Ci0gICAgaWYgKHRyYWNrLT5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxl
ZCkKKyAgICBpZiAodHJhY2subW9kZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlKHRoaXMp
OwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY3Vlcy0+bGVuZ3RoKCk7ICsraSkKLSAgICAg
ICAgdGV4dFRyYWNrQWRkQ3VlKHRyYWNrLCAqY3Vlcy0+aXRlbShpKSk7CisgICAgVHJhY2tEaXNw
bGF5VXBkYXRlU2NvcGUgc2NvcGUgeyAqdGhpcyB9OworICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBjdWVzLmxlbmd0aCgpOyArK2kpCisgICAgICAgIHRleHRUcmFja0FkZEN1ZSh0cmFjaywg
KmN1ZXMuaXRlbShpKSk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVt
b3ZlQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KiBjdWVzKQordm9pZCBI
VE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRl
eHRUcmFja0N1ZUxpc3QmIGN1ZXMpCiB7Ci0gICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgc2Nv
cGUodGhpcyk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjdWVzLT5sZW5ndGgoKTsgKytp
KQotICAgICAgICB0ZXh0VHJhY2tSZW1vdmVDdWUoY3Vlcy0+aXRlbShpKS0+dHJhY2soKSwgKmN1
ZXMtPml0ZW0oaSkpOworICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlIHsgKnRoaXMg
fTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY3Vlcy5sZW5ndGgoKTsgKytpKSB7Cisg
ICAgICAgIGF1dG8mIGN1ZSA9ICpjdWVzLml0ZW0oaSk7CisgICAgICAgIHRleHRUcmFja1JlbW92
ZUN1ZSgqY3VlLnRyYWNrKCksIGN1ZSk7CisgICAgfQogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OnRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkK
K3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYgdHJhY2ss
IFRleHRUcmFja0N1ZSYgY3VlKQogewotICAgIGlmICh0cmFjay0+bW9kZSgpID09IFRleHRUcmFj
azo6TW9kZTo6RGlzYWJsZWQpCisgICAgaWYgKHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1v
ZGU6OkRpc2FibGVkKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBOZWdhdGl2ZSBkdXJhdGlv
biBjdWVzIG5lZWQgYmUgdHJlYXRlZCBpbiB0aGUgaW50ZXJ2YWwgdHJlZSBhcwpAQCAtMTkxOSw3
ICsxOTE5LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRy
YWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCiAgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNr
Q3VlcyhjdXJyZW50TWVkaWFUaW1lKCkpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRl
eHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmIGN1ZSkKK3ZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1
ZSYgY3VlKQogewogICAgIC8vIE5lZ2F0aXZlIGR1cmF0aW9uIGN1ZXMgbmVlZCB0byBiZSB0cmVh
dGVkIGluIHRoZSBpbnRlcnZhbCB0cmVlIGFzCiAgICAgLy8gemVyby1sZW5ndGggY3Vlcy4KQEAg
LTMyMTIsNiArMzIxMiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGF1c2VJbnRlcm5hbCgp
CiB9CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmRldGFjaE1lZGlhU291cmNlKCkKIHsKICAgICBpZiAoIW1fbWVkaWFTb3VyY2UpCkBAIC0zMjIw
LDYgKzMyMjEsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRldGFjaE1lZGlhU291cmNlKCkK
ICAgICBtX21lZGlhU291cmNlLT5kZXRhY2hGcm9tRWxlbWVudCgqdGhpcyk7CiAgICAgbV9tZWRp
YVNvdXJjZSA9IG51bGxwdHI7CiB9CisKICNlbmRpZgogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6
Omxvb3AoKSBjb25zdApAQCAtMzUwOCwxNCArMzUxMCwxNCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhUGxheWVyRGlkQWRkQXVkaW9UcmFjayhBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2sp
CiAgICAgaWYgKGlzUGxheWluZygpICYmICFtX21lZGlhU2Vzc2lvbi0+cGxheWJhY2tQZXJtaXR0
ZWQoKnRoaXMpKQogICAgICAgICBwYXVzZUludGVybmFsKCk7CiAKLSAgICBhZGRBdWRpb1RyYWNr
KEF1ZGlvVHJhY2s6OmNyZWF0ZSh0aGlzLCAmdHJhY2spKTsKKyAgICBhZGRBdWRpb1RyYWNrKEF1
ZGlvVHJhY2s6OmNyZWF0ZSgqdGhpcywgdHJhY2spKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjptZWRpYVBsYXllckRpZEFkZFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0
cmFjaykKIHsKICAgICAvLyA0LjguMTAuMTIuMiBTb3VyY2luZyBpbi1iYW5kIHRleHQgdHJhY2tz
CiAgICAgLy8gMS4gQXNzb2NpYXRlIHRoZSByZWxldmFudCBkYXRhIHdpdGggYSBuZXcgdGV4dCB0
cmFjayBhbmQgaXRzIGNvcnJlc3BvbmRpbmcgbmV3IFRleHRUcmFjayBvYmplY3QuCi0gICAgUmVm
UHRyPEluYmFuZFRleHRUcmFjaz4gdGV4dFRyYWNrID0gSW5iYW5kVGV4dFRyYWNrOjpjcmVhdGUo
QWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRoaXMsICZ0cmFjayk7
CisgICAgYXV0byB0ZXh0VHJhY2sgPSBJbmJhbmRUZXh0VHJhY2s6OmNyZWF0ZSgqQWN0aXZlRE9N
T2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzLCB0cmFjayk7CiAgICAgdGV4
dFRyYWNrLT5zZXRNZWRpYUVsZW1lbnQodGhpcyk7CiAgICAgCiAgICAgLy8gMi4gU2V0IHRoZSBu
ZXcgdGV4dCB0cmFjaydzIGtpbmQsIGxhYmVsLCBhbmQgbGFuZ3VhZ2UgYmFzZWQgb24gdGhlIHNl
bWFudGljcyBvZiB0aGUgcmVsZXZhbnQgZGF0YSwKQEAgLTM1NDEsMTIgKzM1NDMsMTIgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckRpZEFkZFRleHRUcmFjayhJbmJhbmRUZXh0
VHJhY2tQcml2YXRlJiB0cmFjaykKICAgICAvLyA5LiBGaXJlIGFuIGV2ZW50IHdpdGggdGhlIG5h
bWUgYWRkdHJhY2ssIHRoYXQgZG9lcyBub3QgYnViYmxlIGFuZCBpcyBub3QgY2FuY2VsYWJsZSwg
YW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVudAogICAgIC8vIGludGVyZmFjZSwgd2l0aCB0aGUg
dHJhY2sgYXR0cmlidXRlIGluaXRpYWxpemVkIHRvIHRoZSB0ZXh0IHRyYWNrJ3MgVGV4dFRyYWNr
IG9iamVjdCwgYXQgdGhlIG1lZGlhIGVsZW1lbnQncwogICAgIC8vIHRleHRUcmFja3MgYXR0cmli
dXRlJ3MgVGV4dFRyYWNrTGlzdCBvYmplY3QuCi0gICAgYWRkVGV4dFRyYWNrKHRleHRUcmFjay5y
ZWxlYXNlTm9uTnVsbCgpKTsKKyAgICBhZGRUZXh0VHJhY2soV1RGTW92ZSh0ZXh0VHJhY2spKTsK
IH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckRpZEFkZFZpZGVvVHJhY2so
VmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrKQogewotICAgIGFkZFZpZGVvVHJhY2soVmlkZW9UcmFj
azo6Y3JlYXRlKHRoaXMsICZ0cmFjaykpOworICAgIGFkZFZpZGVvVHJhY2soVmlkZW9UcmFjazo6
Y3JlYXRlKCp0aGlzLCB0cmFjaykpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlh
UGxheWVyRGlkUmVtb3ZlQXVkaW9UcmFjayhBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2spCkBAIC0z
NjAzLDkgKzM2MDUsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZUF1ZGlvVHJhY2so
QXVkaW9UcmFjayYgdHJhY2spCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlVGV4dFRy
YWNrKFRleHRUcmFjayYgdHJhY2ssIGJvb2wgc2NoZWR1bGVFdmVudCkKIHsKLSAgICBUcmFja0Rp
c3BsYXlVcGRhdGVTY29wZSBzY29wZSh0aGlzKTsKLSAgICBpZiAoVGV4dFRyYWNrQ3VlTGlzdCog
Y3VlcyA9IHRyYWNrLmN1ZXMoKSkKLSAgICAgICAgdGV4dFRyYWNrUmVtb3ZlQ3VlcygmdHJhY2ss
IGN1ZXMpOworICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlIHsgKnRoaXMgfTsKKyAg
ICBpZiAoYXV0byogY3VlcyA9IHRyYWNrLmN1ZXMoKSkKKyAgICAgICAgdGV4dFRyYWNrUmVtb3Zl
Q3Vlcyh0cmFjaywgKmN1ZXMpOwogICAgIHRyYWNrLmNsZWFyQ2xpZW50KCk7CiAgICAgaWYgKG1f
dGV4dFRyYWNrcykKICAgICAgICAgbV90ZXh0VHJhY2tzLT5yZW1vdmUodHJhY2ssIHNjaGVkdWxl
RXZlbnQpOwpAQCAtMzYyNSw3ICszNjI3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpmb3Jn
ZXRSZXNvdXJjZVNwZWNpZmljVHJhY2tzKCkKICAgICAgICAgcmVtb3ZlQXVkaW9UcmFjaygqbV9h
dWRpb1RyYWNrcy0+bGFzdEl0ZW0oKSk7CiAKICAgICBpZiAobV90ZXh0VHJhY2tzKSB7Ci0gICAg
ICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlKHRoaXMpOworICAgICAgICBUcmFja0Rp
c3BsYXlVcGRhdGVTY29wZSBzY29wZSB7ICp0aGlzIH07CiAgICAgICAgIGZvciAoaW50IGkgPSBt
X3RleHRUcmFja3MtPmxlbmd0aCgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKICAgICAgICAgICAgIGF1
dG8mIHRyYWNrID0gKm1fdGV4dFRyYWNrcy0+aXRlbShpKTsKICAgICAgICAgICAgIGlmICh0cmFj
ay50cmFja1R5cGUoKSA9PSBUZXh0VHJhY2s6OkluQmFuZCkKQEAgLTYwNzgsMTIgKzYwODAsMTIg
QEAgTWVkaWFDb250cm9sbGVyKiBIVE1MTWVkaWFFbGVtZW50Ojpjb250cm9sbGVyKCkgY29uc3QK
ICAgICByZXR1cm4gbV9tZWRpYUNvbnRyb2xsZXIuZ2V0KCk7CiB9CiAKLXZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6c2V0Q29udHJvbGxlcihQYXNzUmVmUHRyPE1lZGlhQ29udHJvbGxlcj4gY29udHJv
bGxlcikKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0Q29udHJvbGxlcihSZWZQdHI8TWVkaWFD
b250cm9sbGVyPiYmIGNvbnRyb2xsZXIpCiB7CiAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyKQog
ICAgICAgICBtX21lZGlhQ29udHJvbGxlci0+cmVtb3ZlTWVkaWFFbGVtZW50KCp0aGlzKTsKIAot
ICAgIG1fbWVkaWFDb250cm9sbGVyID0gY29udHJvbGxlcjsKKyAgICBtX21lZGlhQ29udHJvbGxl
ciA9IFdURk1vdmUoY29udHJvbGxlcik7CiAKICAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXIpCiAg
ICAgICAgIG1fbWVkaWFDb250cm9sbGVyLT5hZGRNZWRpYUVsZW1lbnQoKnRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAwMjNjYzMzNjI4MzNmYTgwNjE5OWE0
MTMwM2FmZjE5MDVjYmY2NWRmLi5jYTE4OThkNmU2ZTIyMWExYWMxNTM1YTk3OTBhNTIxY2MyOWEy
ZTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDEwICsy
NywxMCBAQAogCiAjaWYgRU5BQkxFKFZJREVPKQogCi0jaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1
ZS5oIgogI2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnRFbnVtcy5oIgogI2luY2x1ZGUgIk1lZGlh
Q2FuU3RhcnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbGxlckludGVyZmFjZS5o
IgpAQCAtNjksOSArNjksNyBAQCBjbGFzcyBNZWRpYUNvbnRyb2xzOwogY2xhc3MgTWVkaWFDb250
cm9sc0hvc3Q7CiBjbGFzcyBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU7CiBjbGFzcyBNZWRp
YUVycm9yOwotI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiBjbGFzcyBNZWRpYUtleXM7Ci0j
ZW5kaWYKIGNsYXNzIE1lZGlhUGxheWVyOwogY2xhc3MgTWVkaWFTZXNzaW9uOwogY2xhc3MgTWVk
aWFTb3VyY2U7CkBAIC04MSw3ICs3OSw2IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CiBjbGFzcyBTb3VyY2VCdWZmZXI7CiBjbGFzcyBUZXh0VHJhY2tMaXN0OwogY2xhc3MgVGltZVJh
bmdlczsKLWNsYXNzIFVSTDsKIGNsYXNzIFZpZGVvUGxheWJhY2tRdWFsaXR5OwogY2xhc3MgVmlk
ZW9UcmFja0xpc3Q7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKQEAgLTMzMSwyMCArMzI4LDIw
IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVRleHRUcmFja0Rpc3BsYXkoKTsKIAogICAgIC8v
IEF1ZGlvVHJhY2tDbGllbnQKLSAgICB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRp
b1RyYWNrKikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVk
aW9UcmFjayYpIGZpbmFsOwogCiAgICAgdm9pZCB0ZXh0VHJhY2tSZWFkeVN0YXRlQ2hhbmdlZChU
ZXh0VHJhY2sqKTsKIAogICAgIC8vIFRleHRUcmFja0NsaWVudAotICAgIHZvaWQgdGV4dFRyYWNr
S2luZENoYW5nZWQoVGV4dFRyYWNrKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2Rl
Q2hhbmdlZChUZXh0VHJhY2sqKSBvdmVycmlkZTsKLSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZXMo
VGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCopIG92ZXJyaWRlOwotICAgIHZvaWQg
dGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0Kikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNr
Q3VlJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwg
VGV4dFRyYWNrQ3VlJikgb3ZlcnJpZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChU
ZXh0VHJhY2smKSBvdmVycmlkZTsKKyAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRU
cmFjayYpIG92ZXJyaWRlOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBj
b25zdCBUZXh0VHJhY2tDdWVMaXN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tSZW1v
dmVDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUm
KSBvdmVycmlkZTsKIAogICAgIC8vIFZpZGVvVHJhY2tDbGllbnQKLSAgICB2b2lkIHZpZGVvVHJh
Y2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayopIG92ZXJyaWRlOworICAgIHZvaWQgdmlkZW9U
cmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrJikgZmluYWw7CiAKICAgICBib29sIHJlcXVp
cmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldFRleHRUcmFj
a1JlcHJlc2VudGF0aW9uKFRleHRUcmFja1JlcHJlc2VudGF0aW9uKik7CkBAIC00MjIsNyArNDE5
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWVkaWFHcm91cChjb25zdCBTdHJpbmcmKTsKIAog
ICAgIE1lZGlhQ29udHJvbGxlciogY29udHJvbGxlcigpIGNvbnN0OwotICAgIHZvaWQgc2V0Q29u
dHJvbGxlcihQYXNzUmVmUHRyPE1lZGlhQ29udHJvbGxlcj4pOworICAgIHZvaWQgc2V0Q29udHJv
bGxlcihSZWZQdHI8TWVkaWFDb250cm9sbGVyPiYmKTsKIAogICAgIHZvaWQgZW50ZXJlZE9yRXhp
dGVkRnVsbHNjcmVlbigpIHsgY29uZmlndXJlTWVkaWFDb250cm9scygpOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggYmRlNmFlMjM1ZmQyZDQ0Nzlk
YWZiNjg5NDBmNzE5YjAyYzM0OGNmMy4uMmVlYjQzZWQzOWFjYjVlMmM4OTg1ZDlhMzYyMDU4ODk3
N2M5YjFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAg
LTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2Rl
Lm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2Rl
Lm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBTdGVmYW4gU2NoaW1hbnNraSAoMVN0ZWluQGdt
eC5kZSkKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAw
OSwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgpAQCAtNTE5LDExICs1MTksNiBAQCBib29sIEhUTUxPYmplY3RFbGVtZW50Ojph
cHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmIGVuY29kaW5nLCBib29sKQogICAgIHJldHVybiB0
cnVlOwogfQogCi1IVE1MRm9ybUVsZW1lbnQqIEhUTUxPYmplY3RFbGVtZW50Ojp2aXJ0dWFsRm9y
bSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybSgpOwot
fQotCiBib29sIEhUTUxPYmplY3RFbGVtZW50OjpjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNv
bnN0CiB7CiAgICAgLy8gQ2FsbCB0aHJvdWdoIHRvIEhUTUxFbGVtZW50IGJlY2F1c2Ugd2UgbmVl
ZCB0byBza2lwIEhUTUxQbHVnSW5FbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPYmplY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RF
bGVtZW50LmgKaW5kZXggZTNjNTVlNGYwNTUxZTZjNmY1OWRmNDc3NTc4ZmY5NjgyMmRhZmVkOS4u
OWVhODkzYjAxZDRjMDI2ZWUxNTdhMjM4YWI1NjcxNGE1NDk3ZTYxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykg
MTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAg
IHVzaW5nIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnJlZjsKICAgICB1c2luZyBIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50OjpkZXJlZjsKIAotICAgIHVzaW5nIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6
Zm9ybTsKKyAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCBmaW5hbCB7IHJldHVybiBG
b3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm0oKTsgfQogCiBwcml2YXRlOgogICAgIEhUTUxPYmpl
Y3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVu
dCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKQEAgLTkxLDcgKzkxLDYgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgcmVmRm9ybUFzc29jaWF0ZWRFbGVtZW50KCkgZmluYWwgeyByZWYoKTsgfQogICAg
IHZvaWQgZGVyZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KLSAg
ICBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkgY29uc3QgZmluYWw7CiAKICAgICBGb3Jt
TmFtZWRJdGVtKiBhc0Zvcm1OYW1lZEl0ZW0oKSBmaW5hbCB7IHJldHVybiB0aGlzOyB9CiAgICAg
SFRNTE9iamVjdEVsZW1lbnQmIGFzSFRNTEVsZW1lbnQoKSBmaW5hbCB7IHJldHVybiAqdGhpczsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAppbmRleCA5YTMwNWZm
MWY3MjYwMjJiNWYzZjcyMDMyNzhjMDY2YmQ0MWY1OWZkLi44ZmJlNTFlZGIxNzdhMGMyNzEzYjYw
MWNlODM2ODBjZTJlZmVkZDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVt
ZW50LmNwcApAQCAtMyw3ICszLDcgQEAKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2
aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxs
ZXIgKG11ZWxsZXJAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1
cnlha292IChhcEBueXBvcC5jb20pCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYs
IDIwMTAsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTEgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgpAQCAtMzM0LDcgKzMzNCw3IEBAIFN0cmluZyBIVE1MT3B0aW9uRWxlbWVudDo6Y29sbGVj
dE9wdGlvbklubmVyVGV4dCgpIGNvbnN0CiAgICAgICAgIGlmIChpczxUZXh0Pigqbm9kZSkpCiAg
ICAgICAgICAgICB0ZXh0LmFwcGVuZChub2RlLT5ub2RlVmFsdWUoKSk7CiAgICAgICAgIC8vIFRl
eHQgbm9kZXMgaW5zaWRlIHNjcmlwdCBlbGVtZW50cyBhcmUgbm90IHBhcnQgb2YgdGhlIG9wdGlv
biB0ZXh0LgotICAgICAgICBpZiAoaXM8RWxlbWVudD4oKm5vZGUpICYmIHRvU2NyaXB0RWxlbWVu
dElmUG9zc2libGUoZG93bmNhc3Q8RWxlbWVudD4obm9kZSkpKQorICAgICAgICBpZiAoaXM8RWxl
bWVudD4oKm5vZGUpICYmIGlzU2NyaXB0RWxlbWVudChkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkp
KQogICAgICAgICAgICAgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVu
KCpub2RlLCB0aGlzKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbm9kZSA9IE5vZGVUcmF2
ZXJzYWw6Om5leHQoKm5vZGUsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5F
bGVtZW50LmNwcAppbmRleCBhODY0ZTg3ZWFmZDQyODNlNTRmMWU0MGJmZWNmOTIyNWE1Y2I1ZGQ2
Li5jZTZkM2I2OGYyNjJjYzJjMzI2MjU1MjUyMzAzNGZmNzFlNjA0MzZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcApAQCAtMSw4ICsxLDggQEAKLS8qKgorLyoK
ICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAg
ICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAg
ICAgICAgIChDKSAyMDAwIFN0ZWZhbiBTY2hpbWFuc2tpICgxU3RlaW5AZ214LmRlKQotICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDE0IEFwcGxlIEluYy4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMTA4LDIxICsxMDgsMjAgQEAgdm9pZCBIVE1MUGx1Z0luRWxlbWVudDo6
cmVzZXRJbnN0YW5jZSgpCiAgICAgbV9pbnN0YW5jZSA9IG51bGxwdHI7CiB9CiAKLVBhc3NSZWZQ
dHI8SlNDOjpCaW5kaW5nczo6SW5zdGFuY2U+IEhUTUxQbHVnSW5FbGVtZW50OjpnZXRJbnN0YW5j
ZSgpCitKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZSogSFRNTFBsdWdJbkVsZW1lbnQ6OmJpbmRpbmdz
SW5zdGFuY2UoKQogewotICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKKyAg
ICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBJZiB0aGUg
aG9zdCBkeW5hbWljYWxseSB0dXJucyBvZmYgSmF2YVNjcmlwdCAob3IgSmF2YSkgd2Ugd2lsbCBz
dGlsbCByZXR1cm4KICAgICAvLyB0aGUgY2FjaGVkIGFsbG9jYXRlZCBCaW5kaW5nczo6SW5zdGFu
Y2UuICBOb3Qgc3VwcG9ydGluZyB0aGlzIGVkZ2UtY2FzZSBpcyBPSy4KLSAgICBpZiAobV9pbnN0
YW5jZSkKLSAgICAgICAgcmV0dXJuIG1faW5zdGFuY2U7Ci0KLSAgICBpZiAoV2lkZ2V0KiB3aWRn
ZXQgPSBwbHVnaW5XaWRnZXQoKSkKLSAgICAgICAgbV9pbnN0YW5jZSA9IGZyYW1lLT5zY3JpcHQo
KS5jcmVhdGVTY3JpcHRJbnN0YW5jZUZvcldpZGdldCh3aWRnZXQpOwogCi0gICAgcmV0dXJuIG1f
aW5zdGFuY2U7CisgICAgaWYgKCFtX2luc3RhbmNlKSB7CisgICAgICAgIGlmIChhdXRvKiB3aWRn
ZXQgPSBwbHVnaW5XaWRnZXQoKSkKKyAgICAgICAgICAgIG1faW5zdGFuY2UgPSBmcmFtZS0+c2Ny
aXB0KCkuY3JlYXRlU2NyaXB0SW5zdGFuY2VGb3JXaWRnZXQod2lkZ2V0KTsKKyAgICB9CisgICAg
cmV0dXJuIG1faW5zdGFuY2UuZ2V0KCk7CiB9CiAKIGJvb2wgSFRNTFBsdWdJbkVsZW1lbnQ6Omd1
YXJkZWREaXNwYXRjaEJlZm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkKQEAg
LTE5OSw3ICsxOTgsNyBAQCB2b2lkIEhUTUxQbHVnSW5FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50JiBldmVudCkKICAgICAgICAgfQogCiAgICAgICAgIGlmIChpczxSZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbj4oKnJlbmRlcmVyKSAmJiBkaXNwbGF5U3RhdGUoKSA8IFJlc3RhcnRpbmcp
IHsKLSAgICAgICAgICAgIGRvd25jYXN0PFJlbmRlclNuYXBzaG90dGVkUGx1Z0luPigqcmVuZGVy
ZXIpLmhhbmRsZUV2ZW50KCZldmVudCk7CisgICAgICAgICAgICBkb3duY2FzdDxSZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbj4oKnJlbmRlcmVyKS5oYW5kbGVFdmVudChldmVudCk7CiAgICAgICAgICAg
ICBIVE1MRnJhbWVPd25lckVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5F
bGVtZW50LmgKaW5kZXggNWI4YzVhZDQyODJhYmY5NWEwNTI2MjhiMjhmZTlkNDAxYTljNzc4My4u
ODkyNzFjNDhiM2RiMGQ3YmMyOWI1YmU5NTVlNWVkNGIwZWNiOGE3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykg
MTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCByZXNldEluc3RhbmNlKCk7CiAKLSAgICBQYXNzUmVmUHRyPEpTQzo6Qmlu
ZGluZ3M6Okluc3RhbmNlPiBnZXRJbnN0YW5jZSgpOworICAgIEpTQzo6QmluZGluZ3M6Okluc3Rh
bmNlKiBiaW5kaW5nc0luc3RhbmNlKCk7CiAKICAgICBlbnVtIGNsYXNzIFBsdWdpbkxvYWRpbmdQ
b2xpY3kgeyBEb05vdExvYWQsIExvYWQgfTsKICAgICBXRUJDT1JFX0VYUE9SVCBXaWRnZXQqIHBs
dWdpbldpZGdldChQbHVnaW5Mb2FkaW5nUG9saWN5ID0gUGx1Z2luTG9hZGluZ1BvbGljeTo6TG9h
ZCkgY29uc3Q7CkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB9OwogICAgIERpc3BsYXlT
dGF0ZSBkaXNwbGF5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlTdGF0ZTsgfQogICAg
IHZpcnR1YWwgdm9pZCBzZXREaXNwbGF5U3RhdGUoRGlzcGxheVN0YXRlKTsKLSAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlU25hcHNob3QoUGFzc1JlZlB0cjxJbWFnZT4pIHsgfQorICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVTbmFwc2hvdChJbWFnZSopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aFBlbmRpbmdNb3VzZUNsaWNrKCkgeyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVzdGFydGVkUGx1
Z2luKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggZmEyMzQ3YjYwYTk2MmI2MDVlM2U3OTg2
NTBjMTMxYThiMmIyNWE4OC4uMmE3NjI4YTJjY2Q2ZDJkMjI0ZjQ4ZGEzNDdiN2M5MTcyYzVkN2U2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTcxLDcg
KzE3MSw3IEBAIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5CiAKICAgICBpZiAoZGlzcGxheVN0YXRl
KCkgPT0gRGlzcGxheWluZ1NuYXBzaG90KSB7CiAgICAgICAgIGF1dG8gcmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4gPSBjcmVhdGVSZW5kZXJlcjxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbj4oKnRoaXMs
IFdURk1vdmUoc3R5bGUpKTsKLSAgICAgICAgcmVuZGVyU25hcHNob3R0ZWRQbHVnSW4tPnVwZGF0
ZVNuYXBzaG90KG1fc25hcHNob3RJbWFnZSk7CisgICAgICAgIHJlbmRlclNuYXBzaG90dGVkUGx1
Z0luLT51cGRhdGVTbmFwc2hvdChtX3NuYXBzaG90SW1hZ2UuZ2V0KCkpOwogICAgICAgICByZXR1
cm4gV1RGTW92ZShyZW5kZXJTbmFwc2hvdHRlZFBsdWdJbik7CiAgICAgfQogCkBAIC0zMDEsNyAr
MzAxLDcgQEAgdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpzdGFydExvYWRpbmdJbWFnZSgp
CiAgICAgbV9pbWFnZUxvYWRlci0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKIH0KIAotdm9pZCBIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFn
ZSkKK3ZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlU25hcHNob3QoSW1hZ2UqIGlt
YWdlKQogewogICAgIGlmIChkaXNwbGF5U3RhdGUoKSA+IERpc3BsYXlpbmdTbmFwc2hvdCkKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1l
bnQuaAppbmRleCBhM2Y3ZTEwOGNmOTJlMDVhOWJiOGRhNGRhNjkyYWY0MDBmZDA2YTQ2Li5iMWM3
NjI2YTNjNGU5NGM5Y2RkMDhkOGZmYTJkYTFjMzRmMzVmYjczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDgtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTExOCw3ICsxMTgsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hQ
ZW5kaW5nTW91c2VDbGljaygpIGZpbmFsOwogCi0gICAgdm9pZCB1cGRhdGVTbmFwc2hvdChQYXNz
UmVmUHRyPEltYWdlPikgZmluYWw7CisgICAgdm9pZCB1cGRhdGVTbmFwc2hvdChJbWFnZSopIGZp
bmFsOwogCiAgICAgdm9pZCBzdGFydExvYWRpbmdJbWFnZSgpOwogICAgIHZvaWQgdXBkYXRlV2lk
Z2V0SWZOZWNlc3NhcnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNj
cmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5j
cHAKaW5kZXggZWRjMjdiOWE1MDAzOWNlYzMwMWI2YjhmNWNjMmJhYTM0ZjM4M2MwMi4uN2EyYjgy
ZGVjNDRlYmQ4OGI1NjYxNWY0NjU2ZWU3ZmE1NTgyYTdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMp
IDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBB
bnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMSBE
aXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAw
NCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuaAppbmRleCBmMmJkNTI1Yzc0ZGRkM2Q3YjhhMWZjMWU5NjkyNTJlODYzY2RmNTc1Li4zMmQ4
ZWUwMzg0YzIxNWY4YzFiNWM0OTk3Y2M4NjgxODViZmYxODE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2NyaXB0RWxlbWVudC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5
IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAz
LCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDE3IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5A
a2RlLm9yZz4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00Myw2ICs0Myw5IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldENyb3NzT3JpZ2luKGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAg
IFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjcm9zc09yaWdpbigpIGNvbnN0OwogCisgICAgdXNpbmcg
SFRNTEVsZW1lbnQ6OnJlZjsKKyAgICB1c2luZyBIVE1MRWxlbWVudDo6ZGVyZWY7CisKIHByaXZh
dGU6CiAgICAgSFRNTFNjcmlwdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIGFscmVhZHlTdGFydGVkKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApp
bmRleCA3ZGI5MTRmNzA2YjNhNmZhZjk0MzRhOGYyNGVlMTIxODE1YTc0ZGYyLi5hOWE1Mzc0Y2M2
YTRiMTJhNzBmMmI5ODQ2M2I5ZjlmODhjNjk4OTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAq
IENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAg
ICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAg
ICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChh
cEBueXBvcC5jb20pCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNDI3LDcgKzQyNyw3IEBAIHN0YXRpYyBpbmxp
bmUgdm9pZCBzZXRDb250YWluZXJBbmRPZmZzZXRGb3JSYW5nZShOb2RlKiBub2RlLCBpbnQgb2Zm
c2V0LCBOb2RlKiYKICAgICB9CiB9CiAKLVBhc3NSZWZQdHI8UmFuZ2U+IEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50OjpzZWxlY3Rpb24oKSBjb25zdAorUmVmUHRyPFJhbmdlPiBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6c2VsZWN0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoIXJlbmRlcmVy
KCkgfHwgIWlzVGV4dEZvcm1Db250cm9sKCkgfHwgIWhhc0NhY2hlZFNlbGVjdGlvbigpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCA0YTYzZTk3MWFhYjFmZWI1ZDM0NmRjNDIyMzFiNmIx
MjY2YzBiNjNmLi4xMjhiMDMxOGIwN2U2ZmI4NDgyZWE2ZGRmNGU4M2Q1NjZmODhlMzFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCkBA
IC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtk
ZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtk
ZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5v
cmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDks
IDIwMTAsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJp
Z2h0IChDKSAyMDA5LCAyMDEwLCAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgpAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRSYW5nZVRleHQoY29uc3QgU3RyaW5nJiBy
ZXBsYWNlbWVudCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29uc3QgU3RyaW5nJiBz
ZWxlY3Rpb25Nb2RlKTsKICAgICB2b2lkIHNldFNlbGVjdGlvblJhbmdlKGludCBzdGFydCwgaW50
IGVuZCwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBUZXh0RmllbGRTZWxlY3Rp
b25EaXJlY3Rpb24gPSBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbiwgY29uc3QgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7Ci0gICAgUGFzc1JlZlB0
cjxSYW5nZT4gc2VsZWN0aW9uKCkgY29uc3Q7CisgICAgUmVmUHRyPFJhbmdlPiBzZWxlY3Rpb24o
KSBjb25zdDsKICAgICBTdHJpbmcgc2VsZWN0ZWRUZXh0KCkgY29uc3Q7CiAKICAgICB2b2lkIGRp
c3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRyYWNrRWxlbWVudC5jcHAKaW5kZXggMDdmNDJkOTlmOGQ3YjQ4YTliYTI0MWI0YzQ3MWQ1
NzlmNTVlOGJkNS4uNjY4YjgxMmI4Y2VmNTMxNzczMDlmYzU4MmQ4Yjk0NjE3M2RhZDM4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Miw2ICs0Myw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKICNp
ZiAhTE9HX0RJU0FCTEVECisKIHN0YXRpYyBTdHJpbmcgdXJsRm9yTG9nZ2luZ1RyYWNrKGNvbnN0
IFVSTCYgdXJsKQogewogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhpbXVtVVJMTGVuZ3Ro
Rm9yTG9nZ2luZyA9IDEyODsKQEAgLTUwLDYgKzUyLDcgQEAgc3RhdGljIFN0cmluZyB1cmxGb3JM
b2dnaW5nVHJhY2soY29uc3QgVVJMJiB1cmwpCiAgICAgICAgIHJldHVybiB1cmwuc3RyaW5nKCk7
CiAgICAgcmV0dXJuIHVybC5zdHJpbmcoKS5zdWJzdHJpbmcoMCwgbWF4aW11bVVSTExlbmd0aEZv
ckxvZ2dpbmcpICsgIi4uLiI7CiB9CisKICNlbmRpZgogICAgIAogaW5saW5lIEhUTUxUcmFja0Vs
ZW1lbnQ6OkhUTUxUcmFja0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQpAQCAtMjc5LDQzICsyODIsNDMgQEAgY29uc3QgQXRvbWljU3RyaW5n
JiBIVE1MVHJhY2tFbGVtZW50OjptZWRpYUVsZW1lbnRDcm9zc09yaWdpbkF0dHJpYnV0ZSgpIGNv
bnN0CiAgICAgcmV0dXJuIG51bGxBdG9tOwogfQogCi12b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRl
eHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIEhUTUxUcmFja0VsZW1l
bnQ6OnRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7Ci0gICAgaWYgKEhU
TUxNZWRpYUVsZW1lbnQqIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQorICAgIGlmIChhdXRvKiBw
YXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tLaW5kQ2hh
bmdlZCh0cmFjayk7CiB9CiAKLXZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNo
YW5nZWQoVGV4dFRyYWNrKiB0cmFjaykKK3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNr
TW9kZUNoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykKIHsKICAgICAvLyBTaW5jZSB3ZSd2ZSBtb3Zl
ZCB0byBhIG5ldyBwYXJlbnQsIHdlIG1heSBub3cgYmUgYWJsZSB0byBsb2FkLgogICAgIGlmIChy
ZWFkeVN0YXRlKCkgPT0gSFRNTFRyYWNrRWxlbWVudDo6Tk9ORSkKICAgICAgICAgc2NoZWR1bGVM
b2FkKCk7CiAKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50
KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJl
bnQtPnRleHRUcmFja01vZGVDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBIVE1MVHJhY2tFbGVt
ZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayogdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1
ZUxpc3QqIGN1ZXMpCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMoVGV4
dFRyYWNrJiB0cmFjaywgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAgICBpZiAo
SFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8q
IHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja0FkZEN1
ZXModHJhY2ssIGN1ZXMpOwogfQogICAgIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJh
Y2tSZW1vdmVDdWVzKFRleHRUcmFjayogdHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqIGN1
ZXMpCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNr
JiB0cmFjaywgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAgICBpZiAoSFRNTE1l
ZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYgKGF1dG8qIHBhcmVu
dCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFja1JlbW92ZUN1ZXMo
dHJhY2ssIGN1ZXMpOwogfQogICAgIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tB
ZGRDdWUoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIEhUTUxUcmFj
a0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUm
IGN1ZSkKIHsKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50
KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJl
bnQtPnRleHRUcmFja0FkZEN1ZSh0cmFjaywgY3VlKTsKIH0KICAgICAKLXZvaWQgSFRNTFRyYWNr
RWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayogdHJhY2ssIFRleHRUcmFja0N1
ZSYgY3VlKQordm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRy
YWNrJiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCiB7Ci0gICAgaWYgKEhUTUxNZWRpYUVsZW1l
bnQqIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQorICAgIGlmIChhdXRvKiBwYXJlbnQgPSBtZWRp
YUVsZW1lbnQoKSkKICAgICAgICAgcGFyZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUodHJhY2ssIGN1
ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKaW5kZXggOWI0MjVk
Y2Q4NWQxZTBkNGYzNjBjODZkMmVhNjJkMTkwOGU0YjdiMC4uMjI1MTAyNzljZGYyYmJlMjE5ZTUy
M2MxNzlmNjI2ZDMzZGY3OTBiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VHJhY2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50
LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTc0LDEyICs3NSwxMiBAQCBwcml2YXRlOgogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlh
RWxlbWVudCgpIGNvbnN0OwogCiAgICAgLy8gVGV4dFRyYWNrQ2xpZW50Ci0gICAgdm9pZCB0ZXh0
VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqKSBmaW5hbDsKLSAgICB2b2lkIHRleHRUcmFja0tp
bmRDaGFuZ2VkKFRleHRUcmFjayopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhU
ZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0
VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBmaW5h
bDsKLSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBm
aW5hbDsKLSAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tD
dWUmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIGZp
bmFsOworICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJikgZmluYWw7Cisg
ICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxp
c3QmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29u
c3QgVGV4dFRyYWNrQ3VlTGlzdCYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRl
eHRUcmFjayYsIFRleHRUcmFja0N1ZSYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrUmVtb3Zl
Q3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5Mb2Fk
VVJMKGNvbnN0IFVSTCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggZjZhNmJi
YzQ2NGI5YWZhMzhkNTdiNGQxZWM0N2NmM2NjYTkyNjZkNC4uM2E4NjFhZDY2MDQ5NTQxZDY3YTE0
YzJjZWZkZDRkMWU1NjUxMTMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtMiw3
ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3Jn
KQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3Jn
KQogICogICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQot
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEw
LCAyMDExLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
ICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIwMTEsIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KQEAgLTQ4MiwxMSArNDgyLDYgQEAgYm9vbCBJbnB1dFR5cGU6OnNob3VsZFN1
Ym1pdEltcGxpY2l0bHkoRXZlbnQmIGV2ZW50KQogICAgIHJldHVybiBpczxLZXlib2FyZEV2ZW50
PihldmVudCkgJiYgZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50ICYm
IGRvd25jYXN0PEtleWJvYXJkRXZlbnQ+KGV2ZW50KS5jaGFyQ29kZSgpID09ICdccic7CiB9CiAK
LVBhc3NSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBJbnB1dFR5cGU6OmZvcm1Gb3JTdWJtaXNzaW9u
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gZWxlbWVudCgpLmZvcm0oKTsKLX0KLQogUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IElucHV0VHlwZTo6Y3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHls
ZSYmIHN0eWxlKQogewogICAgIHJldHVybiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4oUmVuZGVy
RWxlbWVudDo6Y3JlYXRlRm9yKGVsZW1lbnQoKSwgV1RGTW92ZShzdHlsZSkpKTsKQEAgLTU1MSw3
ICs1NDYsNyBAQCBDaHJvbWUqIElucHV0VHlwZTo6Y2hyb21lKCkgY29uc3QKIHsKICAgICBpZiAo
UGFnZSogcGFnZSA9IGVsZW1lbnQoKS5kb2N1bWVudCgpLnBhZ2UoKSkKICAgICAgICAgcmV0dXJu
ICZwYWdlLT5jaHJvbWUoKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAogYm9vbCBJbnB1dFR5cGU6OmNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3QKQEAgLTYzNiw3ICs2
MzEsNyBAQCBib29sIElucHV0VHlwZTo6Y2FuQmVTdWNjZXNzZnVsU3VibWl0QnV0dG9uKCkKIAog
SFRNTEVsZW1lbnQqIElucHV0VHlwZTo6cGxhY2Vob2xkZXJFbGVtZW50KCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBJbnB1dFR5cGU6OnJl
bmRlcmVySXNOZWVkZWQoKQpAQCAtNjQ2LDEwICs2NDEsMTAgQEAgYm9vbCBJbnB1dFR5cGU6OnJl
bmRlcmVySXNOZWVkZWQoKQogCiBGaWxlTGlzdCogSW5wdXRUeXBlOjpmaWxlcygpCiB7Ci0gICAg
cmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpzZXRG
aWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0PikKK3ZvaWQgSW5wdXRUeXBlOjpzZXRGaWxlcyhSZWZQ
dHI8RmlsZUxpc3Q+JiYpCiB7CiB9CiAKQEAgLTczMSwyNSArNzI2LDI5IEBAIFN0cmluZyBJbnB1
dFR5cGU6OnNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zdAog
fQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKwogYm9vbCBJbnB1dFR5cGU6OnJlY2VpdmVE
cm9wcGVkRmlsZXMoY29uc3QgRHJhZ0RhdGEmKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIHJldHVybiBmYWxzZTsKIH0KKwogI2VuZGlmCiAKIEljb24qIElucHV0VHlwZTo6aWNv
bigpIGNvbnN0CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7Cisg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKICNpZiBQTEFURk9STShJT1MpCisKIFN0cmluZyBJbnB1
dFR5cGU6OmRpc3BsYXlTdHJpbmcoKSBjb25zdAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KKwogI2VuZGlmCiAKIGJvb2wgSW5wdXRUeXBlOjpz
aG91bGRSZXNldE9uRG9jdW1lbnRBY3RpdmF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmlu
ZGV4IGM0YmU3M2Q0MDA0ZDY4ZDkxMzBiOWFiOTQ2YTE3MDBlNzAzM2RlMjQuLjk4Y2ZmODlhYWI4
YjU5YWI5NTZlNDM2MDI4NTFjMGE4NGM0OWJjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApA
QCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNC0yMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1z
dW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApA
QCAtMTkyLDcgKzE5Miw2IEBAIHB1YmxpYzoKICAgICAvLyBIZWxwZXJzIGZvciBldmVudCBoYW5k
bGVycy4KIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdWJtaXRJbXBsaWNpdGx5KEV2ZW50Jik7
Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gZm9ybUZvclN1Ym1pc3Np
b24oKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0
OwogICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQmKSBj
b25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0OwpAQCAtMjM5
LDcgKzIzOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbWF4UmVzdWx0c0F0dHJpYnV0
ZUNoYW5nZWQoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdEFsaWduQXR0cmlidXRl
KCk7CiAgICAgdmlydHVhbCBGaWxlTGlzdCogZmlsZXMoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4pOworICAgIHZpcnR1YWwgdm9pZCBzZXRGaWxlcyhS
ZWZQdHI8RmlsZUxpc3Q+JiYpOwogICAgIHZpcnR1YWwgSWNvbiogaWNvbigpIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRTZW5kQ2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCk7
CiAgICAgdmlydHVhbCBib29sIGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAppbmRleCBmMzUxZjk3OTUxNWY1Y2VjOWE0OTk0ZTBk
NzVkMDFkYzQyMTg5NjA1Li5iYjMwMGIwZmZiOWYzYmM3YTRhYzdkMmViYWU0YzkwNWFjNjBkNmU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Mywx
NSArNTMsMTMgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBQbHVnaW5Eb2N1bWVudFBhcnNlcihE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIDogUmF3RGF0YURvY3VtZW50UGFyc2VyKGRvY3Vt
ZW50KQotICAgICAgICAsIG1fZW1iZWRFbGVtZW50KDApCiAgICAgewogICAgIH0KIAotICAgIHZv
aWQgYXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBjb25zdCBjaGFyKiwgc2l6ZV90KSBvdmVy
cmlkZTsKLQorICAgIHZvaWQgYXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBjb25zdCBjaGFy
Kiwgc2l6ZV90KSBmaW5hbDsKICAgICB2b2lkIGNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCk7CiAK
LSAgICBIVE1MRW1iZWRFbGVtZW50KiBtX2VtYmVkRWxlbWVudDsKKyAgICBIVE1MRW1iZWRFbGVt
ZW50KiBtX2VtYmVkRWxlbWVudCB7IG51bGxwdHIgfTsKIH07CiAKIHZvaWQgUGx1Z2luRG9jdW1l
bnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKQEAgLTEwNCw3ICsxMDIsNyBAQCB2
b2lkIFBsdWdpbkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAgICAg
aWYgKGF1dG8qIGxvYWRlciA9IGRvY3VtZW50LmxvYWRlcigpKQogICAgICAgICBtX2VtYmVkRWxl
bWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbih0eXBlQXR0ciwgbG9hZGVy
LT53cml0ZXIoKS5taW1lVHlwZSgpKTsKIAotICAgIGRvY3VtZW50LnNldFBsdWdpbkVsZW1lbnQo
bV9lbWJlZEVsZW1lbnQpOworICAgIGRvY3VtZW50LnNldFBsdWdpbkVsZW1lbnQoKm1fZW1iZWRF
bGVtZW50KTsKIAogICAgIGJvZHktPmFwcGVuZENoaWxkKGVtYmVkRWxlbWVudCk7CiB9CkBAIC0x
MTYsNyArMTE0LDcgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0ZXMoRG9j
dW1lbnRXcml0ZXImLCBjb25zdCBjaGFyKiwgc2l6ZV90KQogCiAgICAgY3JlYXRlRG9jdW1lbnRT
dHJ1Y3R1cmUoKTsKIAotICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7Cisg
ICAgYXV0byogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpOwogICAgIGlmICghZnJhbWUpCiAg
ICAgICAgIHJldHVybjsKIApAQCAtMTQyLDcgKzE0MCw2IEBAIHZvaWQgUGx1Z2luRG9jdW1lbnRQ
YXJzZXI6OmFwcGVuZEJ5dGVzKERvY3VtZW50V3JpdGVyJiwgY29uc3QgY2hhciosIHNpemVfdCkK
IAogUGx1Z2luRG9jdW1lbnQ6OlBsdWdpbkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVVJM
JiB1cmwpCiAgICAgOiBIVE1MRG9jdW1lbnQoZnJhbWUsIHVybCwgUGx1Z2luRG9jdW1lbnRDbGFz
cykKLSAgICAsIG1fc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5KHRydWUpCiB7CiAgICAgc2V0Q29t
cGF0aWJpbGl0eU1vZGUoRG9jdW1lbnRDb21wYXRpYmlsaXR5TW9kZTo6UXVpcmtzTW9kZSk7CiAg
ICAgbG9ja0NvbXBhdGliaWxpdHlNb2RlKCk7CkBAIC0xNTUsMTQgKzE1MiwxNyBAQCBSZWY8RG9j
dW1lbnRQYXJzZXI+IFBsdWdpbkRvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQogCiBXaWRnZXQqIFBs
dWdpbkRvY3VtZW50OjpwbHVnaW5XaWRnZXQoKQogewotICAgIGlmIChtX3BsdWdpbkVsZW1lbnQg
JiYgbV9wbHVnaW5FbGVtZW50LT5yZW5kZXJlcigpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8
UmVuZGVyRW1iZWRkZWRPYmplY3Q+KCptX3BsdWdpbkVsZW1lbnQtPnJlbmRlcmVyKCkpLndpZGdl
dCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIGlmICghbV9wbHVnaW5FbGVtZW50KQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvKiByZW5kZXJlciA9IG1fcGx1Z2luRWxlbWVu
dC0+cmVuZGVyZXIoKTsKKyAgICBpZiAoIXJlbmRlcmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyRW1iZWRkZWRPYmplY3Q+KCptX3BsdWdpbkVs
ZW1lbnQtPnJlbmRlcmVyKCkpLndpZGdldCgpOwogfQogCi12b2lkIFBsdWdpbkRvY3VtZW50Ojpz
ZXRQbHVnaW5FbGVtZW50KFBhc3NSZWZQdHI8SFRNTFBsdWdJbkVsZW1lbnQ+IGVsZW1lbnQpCit2
b2lkIFBsdWdpbkRvY3VtZW50OjpzZXRQbHVnaW5FbGVtZW50KEhUTUxQbHVnSW5FbGVtZW50JiBl
bGVtZW50KQogewotICAgIG1fcGx1Z2luRWxlbWVudCA9IGVsZW1lbnQ7CisgICAgbV9wbHVnaW5F
bGVtZW50ID0gJmVsZW1lbnQ7CiB9CiAKIHZvaWQgUGx1Z2luRG9jdW1lbnQ6OmRldGFjaEZyb21Q
bHVnaW5FbGVtZW50KCkKQEAgLTE3OSw5ICsxNzksMTAgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudDo6
Y2FuY2VsTWFudWFsUGx1Z2luTG9hZCgpCiAgICAgaWYgKCFzaG91bGRMb2FkUGx1Z2luTWFudWFs
bHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9h
ZGVyID0gZnJhbWUoKS0+bG9hZGVyKCkuYWN0aXZlRG9jdW1lbnRMb2FkZXIoKTsKLSAgICBkb2N1
bWVudExvYWRlci0+Y2FuY2VsTWFpblJlc291cmNlTG9hZChmcmFtZSgpLT5sb2FkZXIoKS5jYW5j
ZWxsZWRFcnJvcihkb2N1bWVudExvYWRlci0+cmVxdWVzdCgpKSk7Ci0gICAgc2V0U2hvdWxkTG9h
ZFBsdWdpbk1hbnVhbGx5KGZhbHNlKTsKKyAgICBhdXRvJiBmcmFtZUxvYWRlciA9IGZyYW1lKCkt
PmxvYWRlcigpOworICAgIGF1dG8mIGRvY3VtZW50TG9hZGVyID0gKmZyYW1lTG9hZGVyLmFjdGl2
ZURvY3VtZW50TG9hZGVyKCk7CisgICAgZG9jdW1lbnRMb2FkZXIuY2FuY2VsTWFpblJlc291cmNl
TG9hZChmcmFtZUxvYWRlci5jYW5jZWxsZWRFcnJvcihkb2N1bWVudExvYWRlci5yZXF1ZXN0KCkp
KTsKKyAgICBtX3Nob3VsZExvYWRQbHVnaW5NYW51YWxseSA9IGZhbHNlOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmgKaW5kZXggM2NkMDYxMjU1MGY2ZjhmYmU5NmM4OWI1
YjVmYjVlNTYxNDNjNWY3ZS4uYmQ3ZWQ2Y2ExYTA2ZTVkODlmMzJjMjJjMDNkOTViMzU2NGE4NWIx
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgsIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
OCwyNiArMzgsMjMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQbHVn
aW5Eb2N1bWVudChmcmFtZSwgdXJsKSk7CiAgICAgfQogCi0gICAgdm9pZCBzZXRQbHVnaW5FbGVt
ZW50KFBhc3NSZWZQdHI8SFRNTFBsdWdJbkVsZW1lbnQ+KTsKLQogICAgIFdFQkNPUkVfRVhQT1JU
IFdpZGdldCogcGx1Z2luV2lkZ2V0KCk7CiAgICAgSFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdpbkVs
ZW1lbnQoKSB7IHJldHVybiBtX3BsdWdpbkVsZW1lbnQuZ2V0KCk7IH0KIAorICAgIHZvaWQgc2V0
UGx1Z2luRWxlbWVudChIVE1MUGx1Z0luRWxlbWVudCYpOwogICAgIHZvaWQgZGV0YWNoRnJvbVBs
dWdpbkVsZW1lbnQoKTsKIAogICAgIHZvaWQgY2FuY2VsTWFudWFsUGx1Z2luTG9hZCgpOwogCi0g
ICAgYm9vbCBzaG91bGRMb2FkUGx1Z2luTWFudWFsbHkoKSB7IHJldHVybiBtX3Nob3VsZExvYWRQ
bHVnaW5NYW51YWxseTsgfQorICAgIGJvb2wgc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5KCkgY29u
c3QgeyByZXR1cm4gbV9zaG91bGRMb2FkUGx1Z2luTWFudWFsbHk7IH0KIAogcHJpdmF0ZToKICAg
ICBQbHVnaW5Eb2N1bWVudChGcmFtZSosIGNvbnN0IFVSTCYpOwogCi0gICAgUmVmPERvY3VtZW50
UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBvdmVycmlkZTsKLQotICAgIHZvaWQgc2V0U2hvdWxkTG9h
ZFBsdWdpbk1hbnVhbGx5KGJvb2wgbG9hZE1hbnVhbGx5KSB7IG1fc2hvdWxkTG9hZFBsdWdpbk1h
bnVhbGx5ID0gbG9hZE1hbnVhbGx5OyB9CisgICAgUmVmPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQ
YXJzZXIoKSBmaW5hbDsKIAotICAgIGJvb2wgbV9zaG91bGRMb2FkUGx1Z2luTWFudWFsbHk7CiAg
ICAgUmVmUHRyPEhUTUxQbHVnSW5FbGVtZW50PiBtX3BsdWdpbkVsZW1lbnQ7CisgICAgYm9vbCBt
X3Nob3VsZExvYWRQbHVnaW5NYW51YWxseSB7IHRydWUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwCmluZGV4IDk0ZThiNGRjZWM0NGZkOGZlNmFhOTIxNGQ1NWQ5
NTliNTg3MTlkZTUuLjc3ZmE1MThmZmQwMzY0NmJiOWU4MjRhNzIwZmExOWEzMWIxZjY1NDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICogQ29weXJpZ2h0
IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDggRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KQEAgLTE3Miw3ICsxNzIsNyBAQCBib29s
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6aXNBY2NlbGVyYXRlZCgpIGNvbnN0CiAjaWYgVVNF
KElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJE
X0NBTlZBUykKICAgICBpZiAoIWNhbnZhcygpLmhhc0NyZWF0ZWRJbWFnZUJ1ZmZlcigpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gZHJhd2lu
Z0NvbnRleHQoKTsKKyAgICBhdXRvKiBjb250ZXh0ID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBy
ZXR1cm4gY29udGV4dCAmJiBjb250ZXh0LT5pc0FjY2VsZXJhdGVkQ29udGV4dCgpOwogI2Vsc2UK
ICAgICByZXR1cm4gZmFsc2U7CkBAIC00MTcsNyArNDE3LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OnNldFN0cm9rZVN0eWxlKENhbnZhc1N0eWxlIHN0eWxlKQogICAgIEdyYXBo
aWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICBy
ZXR1cm47Ci0gICAgc3RhdGUuc3Ryb2tlU3R5bGUuYXBwbHlTdHJva2VDb2xvcihjKTsKKyAgICBz
dGF0ZS5zdHJva2VTdHlsZS5hcHBseVN0cm9rZUNvbG9yKCpjKTsKICAgICBzdGF0ZS51bnBhcnNl
ZFN0cm9rZUNvbG9yID0gU3RyaW5nKCk7CiB9CiAKQEAgLTQ0NCw3ICs0NDQsNyBAQCB2b2lkIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0RmlsbFN0eWxlKENhbnZhc1N0eWxlIHN0eWxlKQog
ICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQog
ICAgICAgICByZXR1cm47Ci0gICAgc3RhdGUuZmlsbFN0eWxlLmFwcGx5RmlsbENvbG9yKGMpOwor
ICAgIHN0YXRlLmZpbGxTdHlsZS5hcHBseUZpbGxDb2xvcigqYyk7CiAgICAgc3RhdGUudW5wYXJz
ZWRGaWxsQ29sb3IgPSBTdHJpbmcoKTsKIH0KIApAQCAtOTMwLDEzICs5MzAsMTMgQEAgc3RhdGlj
IGJvb2wgdmFsaWRhdGVSZWN0Rm9yQ2FudmFzKGZsb2F0JiB4LCBmbG9hdCYgeSwgZmxvYXQmIHdp
ZHRoLCBmbG9hdCYgaGVpZ2gKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEVOQUJMRShEQVNI
Qk9BUkRfU1VQUE9SVCkKLXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbGVhclBhdGhG
b3JEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKCkKK2lubGluZSB2b2lkIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6Y2xlYXJQYXRoRm9yRGFzaGJvYXJkQmFja3dhcmRDb21wYXRp
YmlsaXR5TW9kZSgpCiB7CisjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIGlmICht
X3VzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSkKICAgICAgICAgbV9wYXRoLmNsZWFyKCk7
Ci19CiAjZW5kaWYKK30KIAogc3RhdGljIGJvb2wgaXNGdWxsQ2FudmFzQ29tcG9zaXRlTW9kZShD
b21wb3NpdGVPcGVyYXRvciBvcCkKIHsKQEAgLTk1NCwyOCArOTU0LDE5IEBAIHN0YXRpYyBXaW5k
UnVsZSB0b1dpbmRSdWxlKENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6V2luZGluZ1J1bGUgcnVs
ZSkKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmaWxsKFdpbmRpbmdSdWxlIHdpbmRp
bmdSdWxlKQogewogICAgIGZpbGxJbnRlcm5hbChtX3BhdGgsIHdpbmRpbmdSdWxlKTsKLQotI2lm
IEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICBjbGVhclBhdGhGb3JEYXNoYm9hcmRCYWNr
d2FyZENvbXBhdGliaWxpdHlNb2RlKCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OnN0cm9rZSgpCiB7CiAgICAgc3Ryb2tlSW50ZXJuYWwobV9wYXRoKTsKLQot
I2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICBjbGVhclBhdGhGb3JEYXNoYm9hcmRC
YWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OmNsaXAoV2luZGluZ1J1bGUgd2luZGluZ1J1bGUpCiB7CiAgICAgY2xp
cEludGVybmFsKG1fcGF0aCwgd2luZGluZ1J1bGUpOwotCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9T
VVBQT1JUKQogICAgIGNsZWFyUGF0aEZvckRhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1v
ZGUoKTsKLSNlbmRpZgogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZmlsbChE
T01QYXRoJiBwYXRoLCBXaW5kaW5nUnVsZSB3aW5kaW5nUnVsZSkKQEAgLTk5NSwxOSArOTg2LDE5
IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbGlwKERPTVBhdGgmIHBhdGgsIFdp
bmRpbmdSdWxlIHdpbmRpbmdSdWxlKQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
ZmlsbEludGVybmFsKGNvbnN0IFBhdGgmIHBhdGgsIFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxlKQog
ewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byog
YyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAg
aWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJldHVybjsKIAog
ICAgIC8vIElmIGdyYWRpZW50IHNpemUgaXMgemVybywgdGhlbiBwYWludCBub3RoaW5nLgotICAg
IEdyYWRpZW50KiBncmFkaWVudCA9IGMtPmZpbGxHcmFkaWVudCgpOworICAgIGF1dG8qIGdyYWRp
ZW50ID0gYy0+ZmlsbEdyYWRpZW50KCk7CiAgICAgaWYgKGdyYWRpZW50ICYmIGdyYWRpZW50LT5p
c1plcm9TaXplKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghcGF0aC5pc0VtcHR5KCkp
IHsKLSAgICAgICAgV2luZFJ1bGUgd2luZFJ1bGUgPSBjLT5maWxsUnVsZSgpOworICAgICAgICBh
dXRvIHNhdmVkRmlsbFJ1bGUgPSBjLT5maWxsUnVsZSgpOwogICAgICAgICBjLT5zZXRGaWxsUnVs
ZSh0b1dpbmRSdWxlKHdpbmRpbmdSdWxlKSk7CiAKICAgICAgICAgaWYgKGlzRnVsbENhbnZhc0Nv
bXBvc2l0ZU1vZGUoc3RhdGUoKS5nbG9iYWxDb21wb3NpdGUpKSB7CkBAIC0xMDI0LDIwICsxMDE1
LDIwIEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmaWxsSW50ZXJuYWwoY29uc3Qg
UGF0aCYgcGF0aCwgV2luZGluZ1J1bGUgd2luZGluCiAgICAgICAgICAgICBkaWREcmF3KHBhdGgu
ZmFzdEJvdW5kaW5nUmVjdCgpKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgYy0+c2V0
RmlsbFJ1bGUod2luZFJ1bGUpOworICAgICAgICBjLT5zZXRGaWxsUnVsZShzYXZlZEZpbGxSdWxl
KTsKICAgICB9CiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzdHJva2VJbnRl
cm5hbChjb25zdCBQYXRoJiBwYXRoKQogewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdp
bmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFj
KQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zv
cm0pCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIElmIGdyYWRpZW50IHNpemUgaXMgemVybywg
dGhlbiBwYWludCBub3RoaW5nLgotICAgIEdyYWRpZW50KiBncmFkaWVudCA9IGMtPnN0cm9rZUdy
YWRpZW50KCk7CisgICAgYXV0byogZ3JhZGllbnQgPSBjLT5zdHJva2VHcmFkaWVudCgpOwogICAg
IGlmIChncmFkaWVudCAmJiBncmFkaWVudC0+aXNaZXJvU2l6ZSgpKQogICAgICAgICByZXR1cm47
CiAKQEAgLTEwNjIsNyArMTA1Myw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpz
dHJva2VJbnRlcm5hbChjb25zdCBQYXRoJiBwYXRoKQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6Y2xpcEludGVybmFsKGNvbnN0IFBhdGgmIHBhdGgsIFdpbmRpbmdSdWxlIHdpbmRp
bmdSdWxlKQogewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7Cisg
ICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1
cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCkBAIC0xMTA4LDEz
ICsxMDk5LDEzIEBAIGJvb2wgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjppc1BvaW50SW5TdHJv
a2UoRE9NUGF0aCYgcGF0aCwgZmxvYXQgeCwgZmxvYXQgeSkKIAogYm9vbCBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OmlzUG9pbnRJblBhdGhJbnRlcm5hbChjb25zdCBQYXRoJiBwYXRoLCBmbG9h
dCB4LCBmbG9hdCB5LCBXaW5kaW5nUnVsZSB3aW5kaW5nUnVsZSkKIHsKLSAgICBHcmFwaGljc0Nv
bnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4
dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghc3RhdGUo
KS5oYXNJbnZlcnRpYmxlVHJhbnNmb3JtKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBG
bG9hdFBvaW50IHRyYW5zZm9ybWVkUG9pbnQgPSBzdGF0ZSgpLnRyYW5zZm9ybS5pbnZlcnNlKCku
dmFsdWVfb3IoQWZmaW5lVHJhbnNmb3JtKCkpLm1hcFBvaW50KEZsb2F0UG9pbnQoeCwgeSkpOwor
ICAgIGF1dG8gdHJhbnNmb3JtZWRQb2ludCA9IHN0YXRlKCkudHJhbnNmb3JtLmludmVyc2UoKS52
YWx1ZV9vcihBZmZpbmVUcmFuc2Zvcm0oKSkubWFwUG9pbnQoRmxvYXRQb2ludCh4LCB5KSk7CiAK
ICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUodHJhbnNmb3JtZWRQb2ludC54KCkpIHx8ICFzdGQ6Omlz
ZmluaXRlKHRyYW5zZm9ybWVkUG9pbnQueSgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MTEyNCwxMyArMTExNSwxMyBAQCBib29sIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6aXNQb2lu
dEluUGF0aEludGVybmFsKGNvbnN0IFBhdGgmIHBhdGgsIGZsb2F0IHgsCiAKIGJvb2wgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjppc1BvaW50SW5TdHJva2VJbnRlcm5hbChjb25zdCBQYXRoJiBw
YXRoLCBmbG9hdCB4LCBmbG9hdCB5KQogewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdp
bmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFj
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVU
cmFuc2Zvcm0pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEZsb2F0UG9pbnQgdHJhbnNm
b3JtZWRQb2ludCA9IHN0YXRlKCkudHJhbnNmb3JtLmludmVyc2UoKS52YWx1ZV9vcihBZmZpbmVU
cmFuc2Zvcm0oKSkubWFwUG9pbnQoRmxvYXRQb2ludCh4LCB5KSk7CisgICAgYXV0byB0cmFuc2Zv
cm1lZFBvaW50ID0gc3RhdGUoKS50cmFuc2Zvcm0uaW52ZXJzZSgpLnZhbHVlX29yKEFmZmluZVRy
YW5zZm9ybSgpKS5tYXBQb2ludChGbG9hdFBvaW50KHgsIHkpKTsKICAgICBpZiAoIXN0ZDo6aXNm
aW5pdGUodHJhbnNmb3JtZWRQb2ludC54KCkpIHx8ICFzdGQ6OmlzZmluaXRlKHRyYW5zZm9ybWVk
UG9pbnQueSgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xMTQyLDcgKzExMzMsNyBA
QCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y2xlYXJSZWN0KGZsb2F0IHgsIGZsb2F0
IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZQogewogICAgIGlmICghdmFsaWRhdGVSZWN0Rm9yQ2Fu
dmFzKHgsIHksIHdpZHRoLCBoZWlnaHQpKQogICAgICAgICByZXR1cm47Ci0gICAgR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0ID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBjb250ZXh0ID0g
ZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJldHVybjsKICAg
ICBpZiAoIXN0YXRlKCkuaGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkKQEAgLTExODAsNyArMTE3MSw3
IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmaWxsUmVjdChmbG9hdCB4LCBmbG9h
dCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpCiAgICAgaWYgKCF2YWxpZGF0ZVJlY3RGb3JDYW52
YXMoeCwgeSwgd2lkdGgsIGhlaWdodCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEdyYXBoaWNz
Q29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250
ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhh
c0ludmVydGlibGVUcmFuc2Zvcm0pCkBAIC0xMTg5LDcgKzExODAsNyBAQCB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6ZmlsbFJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgs
IGZsb2F0IGhlaQogICAgIC8vIGZyb20gdGhlIEhUTUw1IENhbnZhcyBzcGVjOgogICAgIC8vIElm
IHgwID0geDEgYW5kIHkwID0geTEsIHRoZW4gdGhlIGxpbmVhciBncmFkaWVudCBtdXN0IHBhaW50
IG5vdGhpbmcKICAgICAvLyBJZiB4MCA9IHgxIGFuZCB5MCA9IHkxIGFuZCByMCA9IHIxLCB0aGVu
IHRoZSByYWRpYWwgZ3JhZGllbnQgbXVzdCBwYWludCBub3RoaW5nCi0gICAgR3JhZGllbnQqIGdy
YWRpZW50ID0gYy0+ZmlsbEdyYWRpZW50KCk7CisgICAgYXV0byogZ3JhZGllbnQgPSBjLT5maWxs
R3JhZGllbnQoKTsKICAgICBpZiAoZ3JhZGllbnQgJiYgZ3JhZGllbnQtPmlzWmVyb1NpemUoKSkK
ICAgICAgICAgcmV0dXJuOwogCkBAIC0xMjE4LDcgKzEyMDksNyBAQCB2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6c3Ryb2tlUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwg
ZmxvYXQgaAogICAgIGlmICghdmFsaWRhdGVSZWN0Rm9yQ2FudmFzKHgsIHksIHdpZHRoLCBoZWln
aHQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5n
Q29udGV4dCgpOworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykK
ICAgICAgICAgcmV0dXJuOwogICAgIGlmICghc3RhdGUoKS5oYXNJbnZlcnRpYmxlVHJhbnNmb3Jt
KQpAQCAtMTIyNyw3ICsxMjE4LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnN0
cm9rZVJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGgKICAgICAgICAg
cmV0dXJuOwogCiAgICAgLy8gSWYgZ3JhZGllbnQgc2l6ZSBpcyB6ZXJvLCB0aGVuIHBhaW50IG5v
dGhpbmcuCi0gICAgR3JhZGllbnQqIGdyYWRpZW50ID0gYy0+c3Ryb2tlR3JhZGllbnQoKTsKKyAg
ICBhdXRvKiBncmFkaWVudCA9IGMtPnN0cm9rZUdyYWRpZW50KCk7CiAgICAgaWYgKGdyYWRpZW50
ICYmIGdyYWRpZW50LT5pc1plcm9TaXplKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTI1MSwx
MSArMTI0MiwxMiBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlUmVjdChm
bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaAogCiB2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6c2V0U2hhZG93KGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0
IGJsdXIsIGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IGFs
cGhhKQogewotICAgIENvbG9yIGNvbG9yID0gcGFyc2VDb2xvck9yQ3VycmVudENvbG9yKGNvbG9y
U3RyaW5nLCAmY2FudmFzKCkpOwotICAgIGlmICghY29sb3JTdHJpbmcuaXNOdWxsKCkgJiYgIWNv
bG9yLmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICghY29sb3IuaXNWYWxpZCgp
KQotICAgICAgICBjb2xvciA9IENvbG9yOjp0cmFuc3BhcmVudDsKKyAgICBDb2xvciBjb2xvciA9
IENvbG9yOjp0cmFuc3BhcmVudDsKKyAgICBpZiAoIWNvbG9yU3RyaW5nLmlzTnVsbCgpKSB7Cisg
ICAgICAgIGNvbG9yID0gcGFyc2VDb2xvck9yQ3VycmVudENvbG9yKGNvbG9yU3RyaW5nLCAmY2Fu
dmFzKCkpOworICAgICAgICBpZiAoIWNvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICB9CiAgICAgLy8gRklYTUU6IFNob3VsZCBub3QgdXNlIFJHQkEzMiBoZXJlLgogICAg
IHNldFNoYWRvdyhGbG9hdFNpemUod2lkdGgsIGhlaWdodCksIGJsdXIsIGNvbG9yV2l0aE92ZXJy
aWRlQWxwaGEoY29sb3IucmdiKCksIGFscGhhKSk7CiB9CkBAIC0xMjk2LDcgKzEyODgsNyBAQCB2
b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0U2hhZG93KGNvbnN0IEZsb2F0U2l6ZSYg
b2Zmc2V0LCBmbG9hdCBibHVyLCBjbwogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
YXBwbHlTaGFkb3coKQogewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0
KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAg
ICByZXR1cm47CiAKQEAgLTEzMTMsMzUgKzEzMDUsMzMgQEAgYm9vbCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OnNob3VsZERyYXdTaGFkb3dzKCkgY29uc3QKICAgICByZXR1cm4gc3RhdGUoKS5z
aGFkb3dDb2xvci5pc1Zpc2libGUoKSAmJiAoc3RhdGUoKS5zaGFkb3dCbHVyIHx8ICFzdGF0ZSgp
LnNoYWRvd09mZnNldC5pc1plcm8oKSk7CiB9CiAKLWVudW0gSW1hZ2VTaXplVHlwZSB7Ci0gICAg
SW1hZ2VTaXplQWZ0ZXJEZXZpY2VQaXhlbFJhdGlvLAotICAgIEltYWdlU2l6ZUJlZm9yZURldmlj
ZVBpeGVsUmF0aW8KLX07Ci0KLXN0YXRpYyBMYXlvdXRTaXplIHNpemUoSFRNTEltYWdlRWxlbWVu
dCYgaW1hZ2VFbGVtZW50LCBJbWFnZVNpemVUeXBlIHNpemVUeXBlID0gSW1hZ2VTaXplQmVmb3Jl
RGV2aWNlUGl4ZWxSYXRpbykKK2VudW0gY2xhc3MgSW1hZ2VTaXplVHlwZSB7IEFmdGVyRGV2aWNl
UGl4ZWxSYXRpbywgQmVmb3JlRGV2aWNlUGl4ZWxSYXRpbyB9Oworc3RhdGljIExheW91dFNpemUg
c2l6ZShIVE1MSW1hZ2VFbGVtZW50JiBlbGVtZW50LCBJbWFnZVNpemVUeXBlIHNpemVUeXBlID0g
SW1hZ2VTaXplVHlwZTo6QmVmb3JlRGV2aWNlUGl4ZWxSYXRpbykKIHsKICAgICBMYXlvdXRTaXpl
IHNpemU7Ci0gICAgaWYgKENhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSA9IGltYWdlRWxlbWVudC5j
YWNoZWRJbWFnZSgpKSB7Ci0gICAgICAgIHNpemUgPSBjYWNoZWRJbWFnZS0+aW1hZ2VTaXplRm9y
UmVuZGVyZXIoaW1hZ2VFbGVtZW50LnJlbmRlcmVyKCksIDEuMGYpOyAvLyBGSVhNRTogTm90IHN1
cmUgYWJvdXQgdGhpcy4KLQotICAgICAgICBpZiAoc2l6ZVR5cGUgPT0gSW1hZ2VTaXplQWZ0ZXJE
ZXZpY2VQaXhlbFJhdGlvICYmIGlzPFJlbmRlckltYWdlPihpbWFnZUVsZW1lbnQucmVuZGVyZXIo
KSkgJiYgY2FjaGVkSW1hZ2UtPmltYWdlKCkgJiYgIWNhY2hlZEltYWdlLT5pbWFnZSgpLT5oYXNS
ZWxhdGl2ZVdpZHRoKCkpCi0gICAgICAgICAgICBzaXplLnNjYWxlKGRvd25jYXN0PFJlbmRlcklt
YWdlPigqaW1hZ2VFbGVtZW50LnJlbmRlcmVyKCkpLmltYWdlRGV2aWNlUGl4ZWxSYXRpbygpKTsK
KyAgICBpZiAoYXV0byogY2FjaGVkSW1hZ2UgPSBlbGVtZW50LmNhY2hlZEltYWdlKCkpIHsKKyAg
ICAgICAgc2l6ZSA9IGNhY2hlZEltYWdlLT5pbWFnZVNpemVGb3JSZW5kZXJlcihlbGVtZW50LnJl
bmRlcmVyKCksIDEuMGYpOyAvLyBGSVhNRTogTm90IHN1cmUgYWJvdXQgdGhpcy4KKyAgICAgICAg
aWYgKHNpemVUeXBlID09IEltYWdlU2l6ZVR5cGU6OkFmdGVyRGV2aWNlUGl4ZWxSYXRpbyAmJiBp
czxSZW5kZXJJbWFnZT4oZWxlbWVudC5yZW5kZXJlcigpKSAmJiBjYWNoZWRJbWFnZS0+aW1hZ2Uo
KSAmJiAhY2FjaGVkSW1hZ2UtPmltYWdlKCktPmhhc1JlbGF0aXZlV2lkdGgoKSkKKyAgICAgICAg
ICAgIHNpemUuc2NhbGUoZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCplbGVtZW50LnJlbmRlcmVyKCkp
LmltYWdlRGV2aWNlUGl4ZWxSYXRpbygpKTsKICAgICB9CiAgICAgcmV0dXJuIHNpemU7CiB9CiAK
LXN0YXRpYyBGbG9hdFNpemUgc2l6ZShIVE1MQ2FudmFzRWxlbWVudCYgY2FudmFzRWxlbWVudCkK
K3N0YXRpYyBpbmxpbmUgRmxvYXRTaXplIHNpemUoSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZhc0Vs
ZW1lbnQpCiB7Ci0gICAgcmV0dXJuIEZsb2F0U2l6ZShjYW52YXNFbGVtZW50LnNpemUoKSk7Cisg
ICAgcmV0dXJuIGNhbnZhc0VsZW1lbnQuc2l6ZSgpOwogfQogCiAjaWYgRU5BQkxFKFZJREVPKQot
c3RhdGljIEZsb2F0U2l6ZSBzaXplKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvKQorCitzdGF0aWMg
aW5saW5lIEZsb2F0U2l6ZSBzaXplKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvKQogewotICAgIGlm
IChNZWRpYVBsYXllciogcGxheWVyID0gdmlkZW8ucGxheWVyKCkpCi0gICAgICAgIHJldHVybiBw
bGF5ZXItPm5hdHVyYWxTaXplKCk7Ci0gICAgcmV0dXJuIEZsb2F0U2l6ZSgpOworICAgIGF1dG8q
IHBsYXllciA9IHZpZGVvLnBsYXllcigpOworICAgIGlmICghcGxheWVyKQorICAgICAgICByZXR1
cm4geyB9OworICAgIHJldHVybiBwbGF5ZXItPm5hdHVyYWxTaXplKCk7CiB9CisKICNlbmRpZgog
CiBzdGF0aWMgaW5saW5lIEZsb2F0UmVjdCBub3JtYWxpemVSZWN0KGNvbnN0IEZsb2F0UmVjdCYg
cmVjdCkKQEAgLTEzNTYsOCArMTM0Niw4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdlKENhbnZhc0ltYWdlU291cmNlJiYgaW1hZ2UsCiB7CiAg
ICAgcmV0dXJuIFdURjo6c3dpdGNoT24oaW1hZ2UsCiAgICAgICAgIFsmXSAoUmVmUHRyPEhUTUxJ
bWFnZUVsZW1lbnQ+JiBpbWFnZUVsZW1lbnQpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKLSAgICAg
ICAgICAgIExheW91dFNpemUgZGVzdFJlY3RTaXplID0gc2l6ZSgqaW1hZ2VFbGVtZW50LCBJbWFn
ZVNpemVBZnRlckRldmljZVBpeGVsUmF0aW8pOwotICAgICAgICAgICAgTGF5b3V0U2l6ZSBzb3Vy
Y2VSZWN0U2l6ZSA9IHNpemUoKmltYWdlRWxlbWVudCwgSW1hZ2VTaXplQmVmb3JlRGV2aWNlUGl4
ZWxSYXRpbyk7CisgICAgICAgICAgICBMYXlvdXRTaXplIGRlc3RSZWN0U2l6ZSA9IHNpemUoKmlt
YWdlRWxlbWVudCwgSW1hZ2VTaXplVHlwZTo6QWZ0ZXJEZXZpY2VQaXhlbFJhdGlvKTsKKyAgICAg
ICAgICAgIExheW91dFNpemUgc291cmNlUmVjdFNpemUgPSBzaXplKCppbWFnZUVsZW1lbnQsIElt
YWdlU2l6ZVR5cGU6OkJlZm9yZURldmljZVBpeGVsUmF0aW8pOwogICAgICAgICAgICAgcmV0dXJu
IHRoaXMtPmRyYXdJbWFnZSgqaW1hZ2VFbGVtZW50LCBGbG9hdFJlY3QgeyAwLCAwLCBzb3VyY2VS
ZWN0U2l6ZS53aWR0aCgpLCBzb3VyY2VSZWN0U2l6ZS5oZWlnaHQoKSB9LCBGbG9hdFJlY3QgeyBk
eCwgZHksIGRlc3RSZWN0U2l6ZS53aWR0aCgpLCBkZXN0UmVjdFNpemUuaGVpZ2h0KCkgfSk7CiAg
ICAgICAgIH0sCiAgICAgICAgIFsmXSAoYXV0byYgZWxlbWVudCkgLT4gRXhjZXB0aW9uT3I8dm9p
ZD4gewpAQCAtMTQwNiw3ICsxMzk2LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UoSFRNTEltYWdlRWxlbWVudCYgaW1hZ2VFbGUKICAgICBG
bG9hdFJlY3Qgbm9ybWFsaXplZFNyY1JlY3QgPSBub3JtYWxpemVSZWN0KHNyY1JlY3QpOwogICAg
IEZsb2F0UmVjdCBub3JtYWxpemVkRHN0UmVjdCA9IG5vcm1hbGl6ZVJlY3QoZHN0UmVjdCk7CiAK
LSAgICBGbG9hdFJlY3QgaW1hZ2VSZWN0ID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZShp
bWFnZUVsZW1lbnQsIEltYWdlU2l6ZUJlZm9yZURldmljZVBpeGVsUmF0aW8pKTsKKyAgICBGbG9h
dFJlY3QgaW1hZ2VSZWN0ID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZShpbWFnZUVsZW1l
bnQsIEltYWdlU2l6ZVR5cGU6OkJlZm9yZURldmljZVBpeGVsUmF0aW8pKTsKICAgICBpZiAoIXNy
Y1JlY3Qud2lkdGgoKSB8fCAhc3JjUmVjdC5oZWlnaHQoKSkKICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IElOREVYX1NJWkVfRVJSIH07CiAKQEAgLTE1NzQsNyArMTU2NCw3IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdlKEhUTUxWaWRlb0Vs
ZW1lbnQmIHZpZGVvLCBjCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdl
RnJvbVJlY3QoSFRNTEltYWdlRWxlbWVudCYgaW1hZ2VFbGVtZW50LCBmbG9hdCBzeCwgZmxvYXQg
c3ksIGZsb2F0IHN3LCBmbG9hdCBzaCwgZmxvYXQgZHgsIGZsb2F0IGR5LCBmbG9hdCBkdywgZmxv
YXQgZGgsIGNvbnN0IFN0cmluZyYgY29tcG9zaXRlT3BlcmF0aW9uKQogewogICAgIENvbXBvc2l0
ZU9wZXJhdG9yIG9wOwotICAgIEJsZW5kTW9kZSBibGVuZE9wID0gQmxlbmRNb2RlTm9ybWFsOwor
ICAgIGF1dG8gYmxlbmRPcCA9IEJsZW5kTW9kZU5vcm1hbDsKICAgICBpZiAoIXBhcnNlQ29tcG9z
aXRlQW5kQmxlbmRPcGVyYXRvcihjb21wb3NpdGVPcGVyYXRpb24sIG9wLCBibGVuZE9wKSB8fCBi
bGVuZE9wICE9IEJsZW5kTW9kZU5vcm1hbCkKICAgICAgICAgb3AgPSBDb21wb3NpdGVTb3VyY2VP
dmVyOwogICAgIGRyYXdJbWFnZShpbWFnZUVsZW1lbnQsIEZsb2F0UmVjdCB7IHN4LCBzeSwgc3cs
IHNoIH0sIEZsb2F0UmVjdCB7IGR4LCBkeSwgZHcsIGRoIH0sIG9wLCBCbGVuZE1vZGVOb3JtYWwp
OwpAQCAtMTU5MiwxNCArMTU4MiwxMyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
c2V0Q29tcG9zaXRlT3BlcmF0aW9uKGNvbnN0IFN0cmluZyYgb3BlcmF0aW9uKQogCiB2b2lkIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y2xlYXJDYW52YXMoKQogewotICAgIEZsb2F0UmVjdCBj
YW52YXNSZWN0KDAsIDAsIGNhbnZhcygpLndpZHRoKCksIGNhbnZhcygpLmhlaWdodCgpKTsKLSAg
ICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5nQ29udGV4dCgpOworICAgIGF1dG8qIGMgPSBk
cmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghYykKICAgICAgICAgcmV0dXJuOwogCiAgICAgYy0+
c2F2ZSgpOwogICAgIGMtPnNldENUTShjYW52YXMoKS5iYXNlVHJhbnNmb3JtKCkpOwotICAgIGMt
PmNsZWFyUmVjdChjYW52YXNSZWN0KTsKKyAgICBjLT5jbGVhclJlY3QoRmxvYXRSZWN0KDAsIDAs
IGNhbnZhcygpLndpZHRoKCksIGNhbnZhcygpLmhlaWdodCgpKSk7CiAgICAgYy0+cmVzdG9yZSgp
OwogfQogCkBAIC0xNjQ4LDcgKzE2MzcsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6Y29tcG9zaXRlQnVmZmVyKEltYWdlQnVmZmVyJiBidWZmZXIsIGNvbnN0IEludFJlYwogICAg
IEludFJlY3QgY2FudmFzUmVjdCgwLCAwLCBjYW52YXMoKS53aWR0aCgpLCBjYW52YXMoKS5oZWln
aHQoKSk7CiAgICAgY2FudmFzUmVjdCA9IGNhbnZhcygpLmJhc2VUcmFuc2Zvcm0oKS5tYXBSZWN0
KGNhbnZhc1JlY3QpOwogCi0gICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQo
KTsKKyAgICBhdXRvKiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAg
IHJldHVybjsKIApAQCAtMTY3OSwxNyArMTY2OCwxNyBAQCB0ZW1wbGF0ZTxjbGFzcyBUPiB2b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZnVsbENhbnZhc0NvbXBvc2l0ZWREcmF3SW1hZ2Uo
VAogICAgIEFTU0VSVChpc0Z1bGxDYW52YXNDb21wb3NpdGVNb2RlKG9wKSk7CiAKICAgICBJbnRT
aXplIGNyb3BwZWRPZmZzZXQ7Ci0gICAgSW50UmVjdCBidWZmZXJSZWN0ID0gY2FsY3VsYXRlQ29t
cG9zaXRpbmdCdWZmZXJSZWN0KGRlc3QsICZjcm9wcGVkT2Zmc2V0KTsKKyAgICBhdXRvIGJ1ZmZl
clJlY3QgPSBjYWxjdWxhdGVDb21wb3NpdGluZ0J1ZmZlclJlY3QoZGVzdCwgJmNyb3BwZWRPZmZz
ZXQpOwogICAgIGlmIChidWZmZXJSZWN0LmlzRW1wdHkoKSkgewogICAgICAgICBjbGVhckNhbnZh
cygpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVyPiBidWZmZXIgPSBjcmVhdGVDb21wb3NpdGluZ0J1ZmZlcihidWZmZXJSZWN0KTsKKyAg
ICBhdXRvIGJ1ZmZlciA9IGNyZWF0ZUNvbXBvc2l0aW5nQnVmZmVyKGJ1ZmZlclJlY3QpOwogICAg
IGlmICghYnVmZmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBHcmFwaGljc0NvbnRleHQqIGMg
PSBkcmF3aW5nQ29udGV4dCgpOworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAg
IGlmICghYykKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNzIwLDcgKzE3MDksNyBAQCBFeGNlcHRp
b25PcjxSZWY8Q2FudmFzR3JhZGllbnQ+PiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0
ZUxpbmVhckdyYWRpZW50KAogICAgIGlmICghc3RkOjppc2Zpbml0ZSh4MCkgfHwgIXN0ZDo6aXNm
aW5pdGUoeTApIHx8ICFzdGQ6OmlzZmluaXRlKHgxKSB8fCAhc3RkOjppc2Zpbml0ZSh5MSkpCiAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOT1RfU1VQUE9SVEVEX0VSUiB9OwogCi0gICAgUmVm
PENhbnZhc0dyYWRpZW50PiBncmFkaWVudCA9IENhbnZhc0dyYWRpZW50OjpjcmVhdGUoRmxvYXRQ
b2ludCh4MCwgeTApLCBGbG9hdFBvaW50KHgxLCB5MSkpOworICAgIGF1dG8gZ3JhZGllbnQgPSBD
YW52YXNHcmFkaWVudDo6Y3JlYXRlKEZsb2F0UG9pbnQoeDAsIHkwKSwgRmxvYXRQb2ludCh4MSwg
eTEpKTsKICAgICBwcmVwYXJlR3JhZGllbnRGb3JEYXNoYm9hcmQoZ3JhZGllbnQuZ2V0KCkpOwog
ICAgIHJldHVybiBXVEZNb3ZlKGdyYWRpZW50KTsKIH0KQEAgLTE3MzMsNyArMTcyMiw3IEBAIEV4
Y2VwdGlvbk9yPFJlZjxDYW52YXNHcmFkaWVudD4+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
Y3JlYXRlUmFkaWFsR3JhZGllbnQoCiAgICAgaWYgKHIwIDwgMCB8fCByMSA8IDApCiAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJTkRFWF9TSVpFX0VSUiB9OwogCi0gICAgUmVmPENhbnZhc0dy
YWRpZW50PiBncmFkaWVudCA9IENhbnZhc0dyYWRpZW50OjpjcmVhdGUoRmxvYXRQb2ludCh4MCwg
eTApLCByMCwgRmxvYXRQb2ludCh4MSwgeTEpLCByMSk7CisgICAgYXV0byBncmFkaWVudCA9IENh
bnZhc0dyYWRpZW50OjpjcmVhdGUoRmxvYXRQb2ludCh4MCwgeTApLCByMCwgRmxvYXRQb2ludCh4
MSwgeTEpLCByMSk7CiAgICAgcHJlcGFyZUdyYWRpZW50Rm9yRGFzaGJvYXJkKGdyYWRpZW50Lmdl
dCgpKTsKICAgICByZXR1cm4gV1RGTW92ZShncmFkaWVudCk7CiB9CkBAIC0xNzQ1LDcgKzE3MzQs
NyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8Q2FudmFzUGF0dGVybj4+IENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6Y3JlYXRlUGF0dGVybihDYW52YQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
U1lOVEFYX0VSUiB9OwogCiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24oaW1hZ2UsCi0gICAgICAg
IFsmXShhdXRvJiBlbGVtZW50KSAtPiBFeGNlcHRpb25PcjxSZWZQdHI8Q2FudmFzUGF0dGVybj4+
IHsgcmV0dXJuIHRoaXMtPmNyZWF0ZVBhdHRlcm4oKmVsZW1lbnQsIHJlcGVhdFgsIHJlcGVhdFkp
OyB9CisgICAgICAgIFsmXSAoYXV0byYgZWxlbWVudCkgLT4gRXhjZXB0aW9uT3I8UmVmUHRyPENh
bnZhc1BhdHRlcm4+PiB7IHJldHVybiB0aGlzLT5jcmVhdGVQYXR0ZXJuKCplbGVtZW50LCByZXBl
YXRYLCByZXBlYXRZKTsgfQogICAgICk7CiB9CiAKQEAgLTE4MTIsNyArMTgwMSw3IEBAIHZvaWQg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkaWREcmF3RW50aXJlQ2FudmFzKCkKIAogdm9pZCBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRpZERyYXcoY29uc3QgRmxvYXRSZWN0JiByLCB1bnNp
Z25lZCBvcHRpb25zKQogewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0
KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAg
ICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCkBAIC0x
ODY2LDE5ICsxODU1LDE3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRUcmFj
a3NEaXNwbGF5TGlzdFJlcGxheShib29sIHRyYWNrc0Rpc3BsYXlMaXN0CiAKIFN0cmluZyBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRpc3BsYXlMaXN0QXNUZXh0KERpc3BsYXlMaXN0OjpBc1Rl
eHRGbGFncyBmbGFncykgY29uc3QKIHsKLSAgICBpZiAobV9yZWNvcmRpbmdDb250ZXh0KQotICAg
ICAgICByZXR1cm4gbV9yZWNvcmRpbmdDb250ZXh0LT5kaXNwbGF5TGlzdC5hc1RleHQoZmxhZ3Mp
OwotICAgIAotICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBpZiAoIW1fcmVjb3JkaW5nQ29udGV4
dCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gbV9yZWNvcmRpbmdDb250ZXh0LT5k
aXNwbGF5TGlzdC5hc1RleHQoZmxhZ3MpOwogfQogCiBTdHJpbmcgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjpyZXBsYXlEaXNwbGF5TGlzdEFzVGV4dChEaXNwbGF5TGlzdDo6QXNUZXh0RmxhZ3Mg
ZmxhZ3MpIGNvbnN0CiB7Ci0gICAgYXV0byBpdCA9IGNvbnRleHREaXNwbGF5TGlzdE1hcCgpLmZp
bmQodGhpcyk7Ci0gICAgaWYgKGl0ICE9IGNvbnRleHREaXNwbGF5TGlzdE1hcCgpLmVuZCgpKQot
ICAgICAgICByZXR1cm4gaXQtPnZhbHVlLT5hc1RleHQoZmxhZ3MpOwotCi0gICAgcmV0dXJuIFN0
cmluZygpOworICAgIGF1dG8qIGRpc3BsYXlMaXN0ID0gY29udGV4dERpc3BsYXlMaXN0TWFwKCku
Z2V0KHRoaXMpOworICAgIGlmICghZGlzcGxheUxpc3QpCisgICAgICAgIHJldHVybiB7IH07Cisg
ICAgcmV0dXJuIGRpc3BsYXlMaXN0LT5hc1RleHQoZmxhZ3MpOwogfQogCiB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKQpAQCAtMTg4
Niw3ICsxODczLDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnBhaW50UmVuZGVy
aW5nUmVzdWx0c1RvQ2FudmFzKCkKICAgICBpZiAoVU5MSUtFTFkobV91c2VzRGlzcGxheUxpc3RE
cmF3aW5nKSkgewogICAgICAgICBpZiAoIW1fcmVjb3JkaW5nQ29udGV4dCkKICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgCisKICAgICAgICAgRmxvYXRSZWN0IGNsaXAoRmxvYXRQb2ludDo6
emVybygpLCBjYW52YXMoKS5zaXplKCkpOwogICAgICAgICBEaXNwbGF5TGlzdDo6UmVwbGF5ZXIg
cmVwbGF5ZXIoKmNhbnZhcygpLmRyYXdpbmdDb250ZXh0KCksIG1fcmVjb3JkaW5nQ29udGV4dC0+
ZGlzcGxheUxpc3QpOwogCkBAIC0xOTA1LDcgKzE4OTIsNiBAQCBHcmFwaGljc0NvbnRleHQqIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd2luZ0NvbnRleHQoKSBjb25zdAogICAgIGlmIChV
TkxJS0VMWShtX3VzZXNEaXNwbGF5TGlzdERyYXdpbmcpKSB7CiAgICAgICAgIGlmICghbV9yZWNv
cmRpbmdDb250ZXh0KQogICAgICAgICAgICAgbV9yZWNvcmRpbmdDb250ZXh0ID0gc3RkOjptYWtl
X3VuaXF1ZTxEaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0PihGbG9hdFJlY3QoRmxvYXRQb2ludDo6
emVybygpLCBjYW52YXMoKS5zaXplKCkpKTsKLQogICAgICAgICByZXR1cm4gJm1fcmVjb3JkaW5n
Q29udGV4dC0+Y29udGV4dDsKICAgICB9CiAKQEAgLTE5MTQsMTIgKzE5MDAsMTAgQEAgR3JhcGhp
Y3NDb250ZXh0KiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdpbmdDb250ZXh0KCkgY29u
c3QKIAogc3RhdGljIFJlZlB0cjxJbWFnZURhdGE+IGNyZWF0ZUVtcHR5SW1hZ2VEYXRhKGNvbnN0
IEludFNpemUmIHNpemUpCiB7Ci0gICAgaWYgKFJlZlB0cjxJbWFnZURhdGE+IGRhdGEgPSBJbWFn
ZURhdGE6OmNyZWF0ZShzaXplKSkgeworICAgIGF1dG8gZGF0YSA9IEltYWdlRGF0YTo6Y3JlYXRl
KHNpemUpOworICAgIGlmIChkYXRhKQogICAgICAgICBkYXRhLT5kYXRhKCktPnplcm9GaWxsKCk7
Ci0gICAgICAgIHJldHVybiBkYXRhOwotICAgIH0KLQotICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBkYXRhOwogfQogCiBFeGNlcHRpb25PcjxSZWZQdHI8SW1hZ2VEYXRhPj4gQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhdGVJbWFnZURhdGEoSW1hZ2VEYXRhKiBpbWFnZURhdGEp
IGNvbnN0CkBAIC0yMDM4LDExICsyMDIyLDkgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OmRyYXdGb2N1c0lmTmVlZGVkKERPTVBhdGgmIHBhdGgsIEVsZW1lbnQmIGVsZW1lbnQKIAog
dm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdGb2N1c0lmTmVlZGVkSW50ZXJuYWwo
Y29uc3QgUGF0aCYgcGF0aCwgRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQgPSBkcmF3aW5nQ29udGV4dCgpOwotCisgICAgYXV0byogY29udGV4dCA9IGRy
YXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFlbGVtZW50LmZvY3VzZWQoKSB8fCAhc3RhdGUoKS5o
YXNJbnZlcnRpYmxlVHJhbnNmb3JtIHx8IHBhdGguaXNFbXB0eSgpIHx8ICFlbGVtZW50LmlzRGVz
Y2VuZGFudE9mKGNhbnZhcygpKSB8fCAhY29udGV4dCkKICAgICAgICAgcmV0dXJuOwotCiAgICAg
Y29udGV4dC0+ZHJhd0ZvY3VzUmluZyhwYXRoLCAxLCAxLCBSZW5kZXJUaGVtZTo6Zm9jdXNSaW5n
Q29sb3IoKSk7CiB9CiAKQEAgLTIyNzAsNyArMjI1Miw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp
c1NwYWNlVGhhdE5lZWRzUmVwbGFjaW5nKFVDaGFyIGMpCiBzdGF0aWMgdm9pZCBub3JtYWxpemVT
cGFjZXMoU3RyaW5nJiB0ZXh0KQogewogICAgIHNpemVfdCBpID0gdGV4dC5maW5kKGlzU3BhY2VU
aGF0TmVlZHNSZXBsYWNpbmcpOwotCiAgICAgaWYgKGkgPT0gbm90Rm91bmQpCiAgICAgICAgIHJl
dHVybjsKIApAQCAtMjMwMSwxMCArMjI4MiwxMCBAQCBSZWY8VGV4dE1ldHJpY3M+IENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6bWVhc3VyZVRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQogCiB2b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcm
IHRleHQsIGZsb2F0IHgsIGZsb2F0IHksIGJvb2wgZmlsbCwgc3RkOjpvcHRpb25hbDxmbG9hdD4g
bWF4V2lkdGgpCiB7Ci0gICAgY29uc3QgYXV0byYgZm9udFByb3h5ID0gdGhpcy0+Zm9udFByb3h5
KCk7Ci0gICAgY29uc3QgRm9udE1ldHJpY3MmIGZvbnRNZXRyaWNzID0gZm9udFByb3h5LmZvbnRN
ZXRyaWNzKCk7CisgICAgYXV0byYgZm9udFByb3h5ID0gdGhpcy0+Zm9udFByb3h5KCk7CisgICAg
Y29uc3QgYXV0byYgZm9udE1ldHJpY3MgPSBmb250UHJveHkuZm9udE1ldHJpY3MoKTsKIAotICAg
IEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRy
YXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFz
dGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCkBAIC0yMzE1LDcgKzIyOTYsNyBAQCB2b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcm
IHRleHQsIGZsb2F0IHgsIGZsbwogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZiBncmFkaWVu
dCBzaXplIGlzIHplcm8sIHRoZW4gcGFpbnQgbm90aGluZy4KLSAgICBHcmFkaWVudCogZ3JhZGll
bnQgPSBjLT5zdHJva2VHcmFkaWVudCgpOworICAgIGF1dG8qIGdyYWRpZW50ID0gYy0+c3Ryb2tl
R3JhZGllbnQoKTsKICAgICBpZiAoIWZpbGwgJiYgZ3JhZGllbnQgJiYgZ3JhZGllbnQtPmlzWmVy
b1NpemUoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMzI5LDcgKzIzMTAsNyBAQCB2b2lkIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRl
eHQsIGZsb2F0IHgsIGZsbwogICAgIC8vIEZJWE1FOiBOZWVkIHRvIHR1cm4gb2ZmIGZvbnQgc21v
b3RoaW5nLgogCiAgICAgY29uc3QgUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGU7Ci0gICAgVGV4
dERpcmVjdGlvbiBkaXJlY3Rpb24gPSB0b1RleHREaXJlY3Rpb24oc3RhdGUoKS5kaXJlY3Rpb24s
ICZjb21wdXRlZFN0eWxlKTsKKyAgICBhdXRvIGRpcmVjdGlvbiA9IHRvVGV4dERpcmVjdGlvbihz
dGF0ZSgpLmRpcmVjdGlvbiwgJmNvbXB1dGVkU3R5bGUpOwogICAgIGJvb2wgaXNSVEwgPSBkaXJl
Y3Rpb24gPT0gUlRMOwogICAgIGJvb2wgb3ZlcnJpZGUgPSBjb21wdXRlZFN0eWxlID8gaXNPdmVy
cmlkZShjb21wdXRlZFN0eWxlLT51bmljb2RlQmlkaSgpKSA6IGZhbHNlOwogCkBAIC0yMzU5LDcg
KzIzNDAsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5h
bChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0IHgsIGZsbwogICAgIGJvb2wgdXNlTWF4V2lkdGgg
PSBtYXhXaWR0aCAmJiBtYXhXaWR0aC52YWx1ZSgpIDwgZm9udFdpZHRoOwogICAgIGZsb2F0IHdp
ZHRoID0gdXNlTWF4V2lkdGggPyBtYXhXaWR0aC52YWx1ZSgpIDogZm9udFdpZHRoOwogCi0gICAg
VGV4dEFsaWduIGFsaWduID0gc3RhdGUoKS50ZXh0QWxpZ247CisgICAgYXV0byBhbGlnbiA9IHN0
YXRlKCkudGV4dEFsaWduOwogICAgIGlmIChhbGlnbiA9PSBTdGFydFRleHRBbGlnbikKICAgICAg
ICAgYWxpZ24gPSBpc1JUTCA/IFJpZ2h0VGV4dEFsaWduIDogTGVmdFRleHRBbGlnbjsKICAgICBl
bHNlIGlmIChhbGlnbiA9PSBFbmRUZXh0QWxpZ24pCkBAIC0yMzg1LDcgKzIzNjYsNiBAQCB2b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcm
IHRleHQsIGZsb2F0IHgsIGZsbwogI2lmIFVTRShDRykKICAgICBjb25zdCBDYW52YXNTdHlsZSYg
ZHJhd1N0eWxlID0gZmlsbCA/IHN0YXRlKCkuZmlsbFN0eWxlIDogc3RhdGUoKS5zdHJva2VTdHls
ZTsKICAgICBpZiAoZHJhd1N0eWxlLmNhbnZhc0dyYWRpZW50KCkgfHwgZHJhd1N0eWxlLmNhbnZh
c1BhdHRlcm4oKSkgewotCiAgICAgICAgIEludFJlY3QgbWFza1JlY3QgPSBlbmNsb3NpbmdJbnRS
ZWN0KHRleHRSZWN0KTsKIAogICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgc2hhZG93LCB3ZSBuZWVk
IHRvIGRyYXcgaXQgYmVmb3JlIHRoZSBtYXNrIG9wZXJhdGlvbi4KQEAgLTIzOTQsNyArMjM3NCw3
IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0
IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAgICAgICAgIGlmIChzaG91bGREcmF3U2hhZG93
cygpKSB7CiAgICAgICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIo
KmMpOwogCi0gICAgICAgICAgICBGbG9hdFNpemUgb2Zmc2V0ID0gRmxvYXRTaXplKDAsIDIgKiBt
YXNrUmVjdC5oZWlnaHQoKSk7CisgICAgICAgICAgICBGbG9hdFNpemUgb2Zmc2V0KDAsIDIgKiBt
YXNrUmVjdC5oZWlnaHQoKSk7CiAKICAgICAgICAgICAgIEZsb2F0U2l6ZSBzaGFkb3dPZmZzZXQ7
CiAgICAgICAgICAgICBmbG9hdCBzaGFkb3dSYWRpdXM7CkBAIC0yNDIyLDcgKzI0MDIsNyBAQCB2
b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJp
bmcmIHRleHQsIGZsb2F0IHgsIGZsbwogICAgICAgICBpZiAoIW1hc2tJbWFnZSkKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICBHcmFwaGljc0NvbnRleHQmIG1hc2tJbWFnZUNvbnRleHQg
PSBtYXNrSW1hZ2UtPmNvbnRleHQoKTsKKyAgICAgICAgYXV0byYgbWFza0ltYWdlQ29udGV4dCA9
IG1hc2tJbWFnZS0+Y29udGV4dCgpOwogCiAgICAgICAgIGlmIChmaWxsKQogICAgICAgICAgICAg
bWFza0ltYWdlQ29udGV4dC5zZXRGaWxsQ29sb3IoQ29sb3I6OmJsYWNrKTsKQEAgLTI0NDUsNyAr
MjQyNSw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFs
KGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAKICAgICAgICAgR3JhcGhpY3NDb250
ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjKTsKICAgICAgICAgYy0+Y2xpcFRvSW1hZ2VCdWZm
ZXIoKm1hc2tJbWFnZSwgbWFza1JlY3QpOwotICAgICAgICBkcmF3U3R5bGUuYXBwbHlGaWxsQ29s
b3IoYyk7CisgICAgICAgIGRyYXdTdHlsZS5hcHBseUZpbGxDb2xvcigqYyk7CiAgICAgICAgIGMt
PmZpbGxSZWN0KG1hc2tSZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI0ODcsMjcg
KzI0NjcsMjcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmluZmxhdGVTdHJva2VS
ZWN0KEZsb2F0UmVjdCYgcmVjdCkgY29uc3QKICAgICAgICAgZGVsdGEgKj0gc3RhdGUoKS5taXRl
ckxpbWl0OwogICAgIGVsc2UgaWYgKHN0YXRlKCkubGluZUNhcCA9PSBTcXVhcmVDYXApCiAgICAg
ICAgIGRlbHRhICo9IHJvb3QyOwotCiAgICAgcmVjdC5pbmZsYXRlKGRlbHRhKTsKIH0KIAogYXV0
byBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZvbnRQcm94eSgpIC0+IGNvbnN0IEZvbnRQcm94
eSYKIHsKICAgICBjYW52YXMoKS5kb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKLQog
ICAgIGlmICghc3RhdGUoKS5mb250LnJlYWxpemVkKCkpCiAgICAgICAgIHNldEZvbnQoc3RhdGUo
KS51bnBhcnNlZEZvbnQpOwogICAgIHJldHVybiBzdGF0ZSgpLmZvbnQ7CiB9CiAKICNpZiBFTkFC
TEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorCiBQbGF0Zm9ybUxheWVyKiBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewotICAgIHJldHVybiBjYW52YXMo
KS5idWZmZXIoKSA/IGNhbnZhcygpLmJ1ZmZlcigpLT5wbGF0Zm9ybUxheWVyKCkgOiAwOworICAg
IHJldHVybiBjYW52YXMoKS5idWZmZXIoKSA/IGNhbnZhcygpLmJ1ZmZlcigpLT5wbGF0Zm9ybUxh
eWVyKCkgOiBudWxscHRyOwogfQorCiAjZW5kaWYKIAotc3RhdGljIEludGVycG9sYXRpb25RdWFs
aXR5IHNtb290aGluZ1RvSW50ZXJwb2xhdGlvblF1YWxpdHkoQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpJbWFnZVNtb290aGluZ1F1YWxpdHkgcXVhbGl0eSkKK3N0YXRpYyBpbmxpbmUgSW50ZXJw
b2xhdGlvblF1YWxpdHkgc21vb3RoaW5nVG9JbnRlcnBvbGF0aW9uUXVhbGl0eShDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OkltYWdlU21vb3RoaW5nUXVhbGl0eSBxdWFsaXR5KQogewogICAgIHN3
aXRjaCAocXVhbGl0eSkgewogICAgIGNhc2UgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpJbWFn
ZVNtb290aGluZ1F1YWxpdHk6OkxvdzoKQEAgLTI1NTQsNyArMjUzNCw3IEBAIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpzZXRJbWFnZVNtb290aGluZ0VuYWJsZWQoYm9vbCBlbmFibGVk
KQogCiAgICAgcmVhbGl6ZVNhdmVzKCk7CiAgICAgbW9kaWZpYWJsZVN0YXRlKCkuaW1hZ2VTbW9v
dGhpbmdFbmFibGVkID0gZW5hYmxlZDsKLSAgICBHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5n
Q29udGV4dCgpOworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmIChjKQog
ICAgICAgICBjLT5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KGVuYWJsZWQgPyBzbW9vdGhp
bmdUb0ludGVycG9sYXRpb25RdWFsaXR5KHN0YXRlKCkuaW1hZ2VTbW9vdGhpbmdRdWFsaXR5KSA6
IEludGVycG9sYXRpb25Ob25lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKaW5kZXggNTRiZTlkMDBjZjU4MjNiMTZk
MTY3NjhhZGFlNTNlNWE2NTMxZTYwOS4uZTM5ZjFiNjcyODllYjk2M2I2NDc0MmU4YzQyMzRlZDEw
YzFlMjA3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmgKQEAgLTM0MCw5ICszNDAsNyBAQCBwcml2YXRlOgogICAgIC8v
IFRoZXJlZm9yZSwgYWxsIGZvbnQgb3BlcmF0aW9ucyBtdXN0IHBhc3MgdGhyb3VnaCB0aGUgU3Rh
dGUuCiAgICAgY29uc3QgRm9udFByb3h5JiBmb250UHJveHkoKTsKIAotI2lmIEVOQUJMRShEQVNI
Qk9BUkRfU1VQUE9SVCkKICAgICB2b2lkIGNsZWFyUGF0aEZvckRhc2hib2FyZEJhY2t3YXJkQ29t
cGF0aWJpbGl0eU1vZGUoKTsKLSNlbmRpZgogCiAgICAgdm9pZCBiZWdpbkNvbXBvc2l0ZUxheWVy
KCk7CiAgICAgdm9pZCBlbmRDb21wb3NpdGVMYXllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzU3R5bGUuY3BwCmluZGV4IDlhYTBhMDUyZjQ2MWFkNmIyYzVlYWM2YWZlYzMy
MzE1NjVlMDIxMzYuLjlkYzhmMDQ4ZDc2ZjhjOTJiYmEyZTE5OTZkYThkN2FkOGEyZWIzNmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqIENvcHlyaWdodCAoQykg
MjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA4IEVy
aWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CkBAIC01Myw3ICs1Myw2IEBAIHN0YXRpYyBDb2xv
ciBwYXJzZUNvbG9yKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIERvY3VtZW50KiBkb2N1bWVu
dCA9IG51bGxwdHIpCiAgICAgQ29sb3IgY29sb3IgPSBDU1NQYXJzZXI6OnBhcnNlQ29sb3IoY29s
b3JTdHJpbmcpOwogICAgIGlmIChjb2xvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBjb2xv
cjsKLQogICAgIHJldHVybiBDU1NQYXJzZXI6OnBhcnNlU3lzdGVtQ29sb3IoY29sb3JTdHJpbmcs
IGRvY3VtZW50KTsKIH0KIApAQCAtNzYsMjA4ICs3NSwxNTAgQEAgQ29sb3IgcGFyc2VDb2xvck9y
Q3VycmVudENvbG9yKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIEhUTUxDYW52YXNFbGVtZW50
KiBjYW4KIH0KIAogQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKENvbG9yIGNvbG9yKQotICAgIDog
bV9jb2xvcihjb2xvcikKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDogbV9zdHlsZShjb2xvcikK
IHsKIH0KIAogQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQg
YWxwaGEpCi0gICAgOiBtX2NvbG9yKENvbG9yKGdyYXlMZXZlbCwgZ3JheUxldmVsLCBncmF5TGV2
ZWwsIGFscGhhKSkKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDogbV9zdHlsZShDb2xvciB7IGdy
YXlMZXZlbCwgZ3JheUxldmVsLCBncmF5TGV2ZWwsIGFscGhhIH0pCiB7CiB9CiAKIENhbnZhc1N0
eWxlOjpDYW52YXNTdHlsZShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhKQotICAg
IDogbV9jb2xvcihDb2xvcihyLCBnLCBiLCBhKSkKLSAgICAsIG1fdHlwZShSR0JBKQorICAgIDog
bV9zdHlsZShDb2xvciB7IHIsIGcsIGIsIGEgfSkKIHsKIH0KIAogQ2FudmFzU3R5bGU6OkNhbnZh
c1N0eWxlKGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZsb2F0IGEpCi0gICAg
OiBtX2NteWthKG5ldyBDTVlLQVZhbHVlcyhDb2xvcihjLCBtLCB5LCBrLCBhKSwgYywgbSwgeSwg
aywgYSkpCi0gICAgLCBtX3R5cGUoQ01ZS0EpCisgICAgOiBtX3N0eWxlKENNWUtBQ29sb3IgeyBD
b2xvciB7IGMsIG0sIHksIGssIGEgfSwgYywgbSwgeSwgaywgYSB9KQogewogfQogCi1DYW52YXNT
dHlsZTo6Q2FudmFzU3R5bGUoUGFzc1JlZlB0cjxDYW52YXNHcmFkaWVudD4gZ3JhZGllbnQpCi0g
ICAgOiBtX2dyYWRpZW50KGdyYWRpZW50LmxlYWtSZWYoKSkKLSAgICAsIG1fdHlwZShHcmFkaWVu
dCkKK0NhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShDYW52YXNHcmFkaWVudCYgZ3JhZGllbnQpCisg
ICAgOiBtX3N0eWxlKG1ha2VSZWZQdHIoZ3JhZGllbnQpKQogewotICAgIGlmICghbV9ncmFkaWVu
dCkKLSAgICAgICAgbV90eXBlID0gSW52YWxpZDsKIH0KIAotQ2FudmFzU3R5bGU6OkNhbnZhc1N0
eWxlKFBhc3NSZWZQdHI8Q2FudmFzUGF0dGVybj4gcGF0dGVybikKLSAgICA6IG1fcGF0dGVybihw
YXR0ZXJuLmxlYWtSZWYoKSkKLSAgICAsIG1fdHlwZShJbWFnZVBhdHRlcm4pCitDYW52YXNTdHls
ZTo6Q2FudmFzU3R5bGUoQ2FudmFzUGF0dGVybiYgcGF0dGVybikKKyAgICA6IG1fc3R5bGUobWFr
ZVJlZlB0cihwYXR0ZXJuKSkKIHsKLSAgICBpZiAoIW1fcGF0dGVybikKLSAgICAgICAgbV90eXBl
ID0gSW52YWxpZDsKIH0KIAotQ2FudmFzU3R5bGU6On5DYW52YXNTdHlsZSgpCitpbmxpbmUgQ2Fu
dmFzU3R5bGU6OkNhbnZhc1N0eWxlKEN1cnJlbnRDb2xvciBjb2xvcikKKyAgICA6IG1fc3R5bGUo
Y29sb3IpCiB7Ci0gICAgaWYgKG1fdHlwZSA9PSBHcmFkaWVudCkKLSAgICAgICAgbV9ncmFkaWVu
dC0+ZGVyZWYoKTsKLSAgICBlbHNlIGlmIChtX3R5cGUgPT0gSW1hZ2VQYXR0ZXJuKQotICAgICAg
ICBtX3BhdHRlcm4tPmRlcmVmKCk7Ci0gICAgZWxzZSBpZiAobV90eXBlID09IENNWUtBKQotICAg
ICAgICBkZWxldGUgbV9jbXlrYTsKIH0KIAogQ2FudmFzU3R5bGUgQ2FudmFzU3R5bGU6OmNyZWF0
ZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZywgRG9jdW1lbnQqIGRvY3VtZW50
KQogewogICAgIGlmIChpc0N1cnJlbnRDb2xvclN0cmluZyhjb2xvclN0cmluZykpCi0gICAgICAg
IHJldHVybiBDYW52YXNTdHlsZShDb25zdHJ1Y3RDdXJyZW50Q29sb3IpOworICAgICAgICByZXR1
cm4gQ3VycmVudENvbG9yIHsgc3RkOjpudWxsb3B0IH07CiAKICAgICBDb2xvciBjb2xvciA9IHBh
cnNlQ29sb3IoY29sb3JTdHJpbmcsIGRvY3VtZW50KTsKLSAgICBpZiAoY29sb3IuaXNWYWxpZCgp
KQotICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUoY29sb3IpOworICAgIGlmICghY29sb3IuaXNW
YWxpZCgpKQorICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIENhbnZhc1N0eWxlKCk7
CisgICAgcmV0dXJuIGNvbG9yOwogfQogCiBDYW52YXNTdHlsZSBDYW52YXNTdHlsZTo6Y3JlYXRl
RnJvbVN0cmluZ1dpdGhPdmVycmlkZUFscGhhKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIGZs
b2F0IGFscGhhKQogewogICAgIGlmIChpc0N1cnJlbnRDb2xvclN0cmluZyhjb2xvclN0cmluZykp
Ci0gICAgICAgIHJldHVybiBDYW52YXNTdHlsZShDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBo
YSwgYWxwaGEpOworICAgICAgICByZXR1cm4gQ3VycmVudENvbG9yIHsgYWxwaGEgfTsKIAogICAg
IENvbG9yIGNvbG9yID0gcGFyc2VDb2xvcihjb2xvclN0cmluZyk7Ci0gICAgaWYgKGNvbG9yLmlz
VmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIENhbnZhc1N0eWxlKGNvbG9yV2l0aE92ZXJyaWRlQWxw
aGEoY29sb3IucmdiKCksIGFscGhhKSk7CisgICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpCisgICAg
ICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gQ2FudmFzU3R5bGUoKTsKKyAgICByZXR1cm4g
Q29sb3IgeyBjb2xvcldpdGhPdmVycmlkZUFscGhhKGNvbG9yLnJnYigpLCBhbHBoYSkgfTsKIH0K
IAogYm9vbCBDYW52YXNTdHlsZTo6aXNFcXVpdmFsZW50Q29sb3IoY29uc3QgQ2FudmFzU3R5bGUm
IG90aGVyKSBjb25zdAogewotICAgIGlmIChtX3R5cGUgIT0gb3RoZXIubV90eXBlKQotICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG1f
c3R5bGUpICYmIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG90aGVyLm1fc3R5bGUpKQor
ICAgICAgICByZXR1cm4gV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpID09IFdURjo6Z2V0PENvbG9y
PihvdGhlci5tX3N0eWxlKTsKIAotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBSR0JB
OgotICAgICAgICByZXR1cm4gbV9jb2xvciA9PSBvdGhlci5tX2NvbG9yOwotICAgIGNhc2UgQ01Z
S0E6Ci0gICAgICAgIHJldHVybiBtX2NteWthLT5jID09IG90aGVyLm1fY215a2EtPmMKLSAgICAg
ICAgICAgICYmIG1fY215a2EtPm0gPT0gb3RoZXIubV9jbXlrYS0+bQotICAgICAgICAgICAgJiYg
bV9jbXlrYS0+eSA9PSBvdGhlci5tX2NteWthLT55Ci0gICAgICAgICAgICAmJiBtX2NteWthLT5r
ID09IG90aGVyLm1fY215a2EtPmsKLSAgICAgICAgICAgICYmIG1fY215a2EtPmEgPT0gb3RoZXIu
bV9jbXlrYS0+YTsKLSAgICBjYXNlIEdyYWRpZW50OgotICAgIGNhc2UgSW1hZ2VQYXR0ZXJuOgot
ICAgIGNhc2UgQ3VycmVudENvbG9yOgotICAgIGNhc2UgQ3VycmVudENvbG9yV2l0aE92ZXJyaWRl
QWxwaGE6Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjYXNlIEludmFsaWQ6Ci0gICAgICAg
IGJyZWFrOworICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENNWUtBQ29sb3I+KG1fc3R5
bGUpICYmIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q01ZS0FDb2xvcj4ob3RoZXIubV9zdHlsZSkp
IHsKKyAgICAgICAgYXV0byYgYSA9IFdURjo6Z2V0PENNWUtBQ29sb3I+KG1fc3R5bGUpOworICAg
ICAgICBhdXRvJiBiID0gV1RGOjpnZXQ8Q01ZS0FDb2xvcj4ob3RoZXIubV9zdHlsZSk7CisgICAg
ICAgIHJldHVybiBhLmMgPT0gYi5jICYmIGEubSA9PSBiLm0gJiYgYS55ID09IGIueSAmJiBhLmsg
PT0gYi5rICYmIGEuYSA9PSBiLmE7CiAgICAgfQogCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIENhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRS
R0JBKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGEpIGNvbnN0CiB7Ci0gICAgaWYg
KG1fdHlwZSAhPSBSR0JBKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9j
b2xvciA9PSBDb2xvcihyLCBnLCBiLCBhKTsKKyAgICByZXR1cm4gV1RGOjpob2xkc19hbHRlcm5h
dGl2ZTxDb2xvcj4obV9zdHlsZSkgJiYgV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpID09IENvbG9y
IHsgciwgZywgYiwgYSB9OwogfQogCiBib29sIENhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDTVlL
QShmbG9hdCBjLCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBhKSBjb25zdAogewot
ICAgIGlmIChtX3R5cGUgIT0gQ01ZS0EpCisgICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZl
PENNWUtBQ29sb3I+KG1fc3R5bGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1
cm4gYyA9PSBtX2NteWthLT5jCi0gICAgICAgICYmIG0gPT0gbV9jbXlrYS0+bQotICAgICAgICAm
JiB5ID09IG1fY215a2EtPnkKLSAgICAgICAgJiYgayA9PSBtX2NteWthLT5rCi0gICAgICAgICYm
IGEgPT0gbV9jbXlrYS0+YTsKLX0KLQotQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGNvbnN0IENh
bnZhc1N0eWxlJiBvdGhlcikKLXsKLSAgICBtZW1jcHkodGhpcywgJm90aGVyLCBzaXplb2YoQ2Fu
dmFzU3R5bGUpKTsKLSAgICBpZiAobV90eXBlID09IEdyYWRpZW50KQotICAgICAgICBtX2dyYWRp
ZW50LT5yZWYoKTsKLSAgICBlbHNlIGlmIChtX3R5cGUgPT0gSW1hZ2VQYXR0ZXJuKQotICAgICAg
ICBtX3BhdHRlcm4tPnJlZigpOwotICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBDTVlLQSkKLSAgICAg
ICAgbV9jbXlrYSA9IG5ldyBDTVlLQVZhbHVlcyhvdGhlci5tX2NteWthLT5jb2xvciwgb3RoZXIu
bV9jbXlrYS0+Yywgb3RoZXIubV9jbXlrYS0+bSwgb3RoZXIubV9jbXlrYS0+eSwgb3RoZXIubV9j
bXlrYS0+aywgb3RoZXIubV9jbXlrYS0+YSk7Ci19Ci0KLUNhbnZhc1N0eWxlJiBDYW52YXNTdHls
ZTo6b3BlcmF0b3I9KGNvbnN0IENhbnZhc1N0eWxlJiBvdGhlcikKLXsKLSAgICBpZiAodGhpcyAh
PSAmb3RoZXIpIHsKLSAgICAgICAgdGhpcy0+fkNhbnZhc1N0eWxlKCk7Ci0gICAgICAgIG5ldyAo
dGhpcykgQ2FudmFzU3R5bGUob3RoZXIpOwotICAgIH0KLSAgICByZXR1cm4gKnRoaXM7CisgICAg
YXV0byYgY2hhbm5lbHMgPSBXVEY6OmdldDxDTVlLQUNvbG9yPihtX3N0eWxlKTsKKyAgICByZXR1
cm4gYyA9PSBjaGFubmVscy5jICYmIG0gPT0gY2hhbm5lbHMubSAmJiB5ID09IGNoYW5uZWxzLnkg
JiYgayA9PSBjaGFubmVscy5rICYmIGEgPT0gY2hhbm5lbHMuYTsKIH0KIAotdm9pZCBDYW52YXNT
dHlsZTo6YXBwbHlTdHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpIGNvbnN0Cit2
b2lkIENhbnZhc1N0eWxlOjphcHBseVN0cm9rZUNvbG9yKEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCkgY29uc3QKIHsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICBzd2l0
Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgUkdCQToKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tl
Q29sb3IobV9jb2xvcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ01ZS0E6IHsKLSAgICAg
ICAgLy8gRklYTUU6IERvIHRoaXMgdGhyb3VnaCBwbGF0Zm9ybS1pbmRlcGVuZGVudCBHcmFwaGlj
c0NvbnRleHQgQVBJLgotICAgICAgICAvLyBXZSdsbCBuZWVkIGEgZmFuY2llciBDb2xvciBhYnN0
cmFjdGlvbiB0byBzdXBwb3J0IENNWUtBIGNvcnJlY3RseQorICAgIFdURjo6c3dpdGNoT24obV9z
dHlsZSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgQ29sb3ImIGNvbG9yKSB7CisgICAgICAg
ICAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9yKTsKKyAgICAgICAgfSwKKyAgICAgICAg
WyZjb250ZXh0XSAoY29uc3QgQ01ZS0FDb2xvciYgY29sb3IpIHsKKyAgICAgICAgICAgIC8vIEZJ
WE1FOiBEbyB0aGlzIHRocm91Z2ggcGxhdGZvcm0taW5kZXBlbmRlbnQgR3JhcGhpY3NDb250ZXh0
IEFQSS4KKyAgICAgICAgICAgIC8vIFdlJ2xsIG5lZWQgYSBmYW5jaWVyIENvbG9yIGFic3RyYWN0
aW9uIHRvIHN1cHBvcnQgQ01ZS0EgY29ycmVjdGx5CiAjaWYgVVNFKENHKQotICAgICAgICBDR0Nv
bnRleHRTZXRDTVlLU3Ryb2tlQ29sb3IoY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIG1fY215
a2EtPmMsIG1fY215a2EtPm0sIG1fY215a2EtPnksIG1fY215a2EtPmssIG1fY215a2EtPmEpOwor
ICAgICAgICAgICAgQ0dDb250ZXh0U2V0Q01ZS1N0cm9rZUNvbG9yKGNvbnRleHQucGxhdGZvcm1D
b250ZXh0KCksIGNvbG9yLmMsIGNvbG9yLm0sIGNvbG9yLnksIGNvbG9yLmssIGNvbG9yLmEpOwog
I2Vsc2UKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3IobV9jbXlrYS0+Y29sb3IpOwor
ICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihjb2xvci5jb2xvcik7CiAjZW5kaWYK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgR3JhZGllbnQ6Ci0gICAgICAgIGNvbnRl
eHQtPnNldFN0cm9rZUdyYWRpZW50KGNhbnZhc0dyYWRpZW50KCktPmdyYWRpZW50KCkpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEltYWdlUGF0dGVybjoKLSAgICAgICAgY29udGV4dC0+c2V0
U3Ryb2tlUGF0dGVybihjYW52YXNQYXR0ZXJuKCktPnBhdHRlcm4oKSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgQ3VycmVudENvbG9yOgotICAgIGNhc2UgQ3VycmVudENvbG9yV2l0aE92ZXJy
aWRlQWxwaGE6Ci0gICAgY2FzZSBJbnZhbGlkOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi12b2lkIENhbnZhc1N0eWxlOjphcHBseUZp
bGxDb2xvcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpIGNvbnN0Ci17Ci0gICAgaWYgKCFjb250
ZXh0KQotICAgICAgICByZXR1cm47Ci0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFJH
QkE6Ci0gICAgICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihtX2NvbG9yKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBDTVlLQTogewotICAgICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdo
IHBsYXRmb3JtLWluZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCi0gICAgICAgIC8vIFdl
J2xsIG5lZWQgYSBmYW5jaWVyIENvbG9yIGFic3RyYWN0aW9uIHRvIHN1cHBvcnQgQ01ZS0EgY29y
cmVjdGx5CisgICAgICAgIH0sCisgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IFJlZlB0cjxDYW52
YXNHcmFkaWVudD4mIGdyYWRpZW50KSB7CisgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZUdy
YWRpZW50KGdyYWRpZW50LT5ncmFkaWVudCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250
ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZhc1BhdHRlcm4+JiBwYXR0ZXJuKSB7CisgICAgICAgICAg
ICBjb250ZXh0LnNldFN0cm9rZVBhdHRlcm4ocGF0dGVybi0+cGF0dGVybigpKTsKKyAgICAgICAg
fSwKKyAgICAgICAgW10gKGNvbnN0IEN1cnJlbnRDb2xvciYpIHsKKyAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9LAorICAgICAgICBbXSAoY29uc3QgSW52YWxpZCYp
IHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgKTsK
K30KKwordm9pZCBDYW52YXNTdHlsZTo6YXBwbHlGaWxsQ29sb3IoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0KSBjb25zdAoreworICAgIFdURjo6c3dpdGNoT24obV9zdHlsZSwKKyAgICAgICAgWyZj
b250ZXh0XSAoY29uc3QgQ29sb3ImIGNvbG9yKSB7CisgICAgICAgICAgICBjb250ZXh0LnNldEZp
bGxDb2xvcihjb2xvcik7CisgICAgICAgIH0sCisgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IENN
WUtBQ29sb3ImIGNvbG9yKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdo
IHBsYXRmb3JtLWluZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCisgICAgICAgICAgICAv
LyBXZSdsbCBuZWVkIGEgZmFuY2llciBDb2xvciBhYnN0cmFjdGlvbiB0byBzdXBwb3J0IENNWUtB
IGNvcnJlY3RseQogI2lmIFVTRShDRykKLSAgICAgICAgQ0dDb250ZXh0U2V0Q01ZS0ZpbGxDb2xv
cihjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgbV9jbXlrYS0+YywgbV9jbXlrYS0+bSwgbV9j
bXlrYS0+eSwgbV9jbXlrYS0+aywgbV9jbXlrYS0+YSk7CisgICAgICAgICAgICBDR0NvbnRleHRT
ZXRDTVlLRmlsbENvbG9yKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIGNvbG9yLmMsIGNvbG9y
Lm0sIGNvbG9yLnksIGNvbG9yLmssIGNvbG9yLmEpOwogI2Vsc2UKLSAgICAgICAgY29udGV4dC0+
c2V0RmlsbENvbG9yKG1fY215a2EtPmNvbG9yKTsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0Rmls
bENvbG9yKGNvbG9yLmNvbG9yKTsKICNlbmRpZgotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAg
Y2FzZSBHcmFkaWVudDoKLSAgICAgICAgY29udGV4dC0+c2V0RmlsbEdyYWRpZW50KGNhbnZhc0dy
YWRpZW50KCktPmdyYWRpZW50KCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEltYWdlUGF0
dGVybjoKLSAgICAgICAgY29udGV4dC0+c2V0RmlsbFBhdHRlcm4oY2FudmFzUGF0dGVybigpLT5w
YXR0ZXJuKCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEN1cnJlbnRDb2xvcjoKLSAgICBj
YXNlIEN1cnJlbnRDb2xvcldpdGhPdmVycmlkZUFscGhhOgotICAgIGNhc2UgSW52YWxpZDoKLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KKyAgICAg
ICAgfSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZhc0dyYWRpZW50PiYg
Z3JhZGllbnQpIHsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbEdyYWRpZW50KGdyYWRpZW50
LT5ncmFkaWVudCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgUmVm
UHRyPENhbnZhc1BhdHRlcm4+JiBwYXR0ZXJuKSB7CisgICAgICAgICAgICBjb250ZXh0LnNldEZp
bGxQYXR0ZXJuKHBhdHRlcm4tPnBhdHRlcm4oKSk7CisgICAgICAgIH0sCisgICAgICAgIFtdIChj
b25zdCBDdXJyZW50Q29sb3ImKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgfSwKKyAgICAgICAgW10gKGNvbnN0IEludmFsaWQmKSB7CisgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgICk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oCmluZGV4IGI2YmY0N2M0MDNjM2Q5ZTk1NjA1
NjkxNGEwNGJiYzMwYTBhYWJhMmIuLmQ3ODAzMGFjOWVmMDY3OTgxZWNhMGU4ZWRlNmQ0YjcyNDg2
ZjViY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgsIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApA
QCAtMjYsMTM1ICsyNiwxMDAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDYW52YXNH
cmFkaWVudC5oIgorI2luY2x1ZGUgIkNhbnZhc1BhdHRlcm4uaCIKICNpbmNsdWRlICJDb2xvci5o
IgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci0gICAgY2xhc3MgQ2FudmFzR3JhZGllbnQ7Ci0gICAgY2xhc3MgQ2FudmFzUGF0dGVybjsKLSAg
ICBjbGFzcyBEb2N1bWVudDsKLSAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7Ci0gICAgY2xhc3Mg
SFRNTENhbnZhc0VsZW1lbnQ7Ci0KLSAgICBjbGFzcyBDYW52YXNTdHlsZSB7Ci0gICAgcHVibGlj
OgotICAgICAgICBDYW52YXNTdHlsZSgpOwotICAgICAgICBleHBsaWNpdCBDYW52YXNTdHlsZShD
b2xvcik7Ci0gICAgICAgIENhbnZhc1N0eWxlKGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQgYWxwaGEp
OwotICAgICAgICBDYW52YXNTdHlsZShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBh
bHBoYSk7Ci0gICAgICAgIENhbnZhc1N0eWxlKGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZs
b2F0IGssIGZsb2F0IGFscGhhKTsKLSAgICAgICAgZXhwbGljaXQgQ2FudmFzU3R5bGUoUGFzc1Jl
ZlB0cjxDYW52YXNHcmFkaWVudD4pOwotICAgICAgICBleHBsaWNpdCBDYW52YXNTdHlsZShQYXNz
UmVmUHRyPENhbnZhc1BhdHRlcm4+KTsKLSAgICAgICAgfkNhbnZhc1N0eWxlKCk7Ci0KLSAgICAg
ICAgc3RhdGljIENhbnZhc1N0eWxlIGNyZWF0ZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBjb2xv
ciwgRG9jdW1lbnQqID0gMCk7Ci0gICAgICAgIHN0YXRpYyBDYW52YXNTdHlsZSBjcmVhdGVGcm9t
U3RyaW5nV2l0aE92ZXJyaWRlQWxwaGEoY29uc3QgU3RyaW5nJiBjb2xvciwgZmxvYXQgYWxwaGEp
OwotCi0gICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSAhPSBJbnZh
bGlkOyB9Ci0gICAgICAgIGJvb2wgaXNDdXJyZW50Q29sb3IoKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gQ3VycmVudENvbG9yIHx8IG1fdHlwZSA9PSBDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVB
bHBoYTsgfQotICAgICAgICBib29sIGhhc092ZXJyaWRlQWxwaGEoKSBjb25zdCB7IHJldHVybiBt
X3R5cGUgPT0gQ3VycmVudENvbG9yV2l0aE92ZXJyaWRlQWxwaGE7IH0KLSAgICAgICAgZmxvYXQg
b3ZlcnJpZGVBbHBoYSgpIGNvbnN0IHsgQVNTRVJUKG1fdHlwZSA9PSBDdXJyZW50Q29sb3JXaXRo
T3ZlcnJpZGVBbHBoYSk7IHJldHVybiBtX292ZXJyaWRlQWxwaGE7IH0KLQotICAgICAgICBTdHJp
bmcgY29sb3IoKSBjb25zdDsKLSAgICAgICAgQ2FudmFzR3JhZGllbnQqIGNhbnZhc0dyYWRpZW50
KCkgY29uc3Q7Ci0gICAgICAgIENhbnZhc1BhdHRlcm4qIGNhbnZhc1BhdHRlcm4oKSBjb25zdDsK
LQotICAgICAgICB2b2lkIGFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29udGV4dCopIGNvbnN0Owot
ICAgICAgICB2b2lkIGFwcGx5U3Ryb2tlQ29sb3IoR3JhcGhpY3NDb250ZXh0KikgY29uc3Q7Ci0K
LSAgICAgICAgYm9vbCBpc0VxdWl2YWxlbnRDb2xvcihjb25zdCBDYW52YXNTdHlsZSYpIGNvbnN0
OwotICAgICAgICBib29sIGlzRXF1aXZhbGVudFJHQkEoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQg
YiwgZmxvYXQgYSkgY29uc3Q7Ci0gICAgICAgIGJvb2wgaXNFcXVpdmFsZW50Q01ZS0EoZmxvYXQg
YywgZmxvYXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYSkgY29uc3Q7Ci0KLSAgICAgICAg
Q2FudmFzU3R5bGUoY29uc3QgQ2FudmFzU3R5bGUmKTsKLSAgICAgICAgQ2FudmFzU3R5bGUmIG9w
ZXJhdG9yPShjb25zdCBDYW52YXNTdHlsZSYpOwotICAgICAgICBDYW52YXNTdHlsZShDYW52YXNT
dHlsZSYmKTsKLSAgICAgICAgQ2FudmFzU3R5bGUmIG9wZXJhdG9yPShDYW52YXNTdHlsZSYmKTsK
LQotICAgIHByaXZhdGU6Ci0gICAgICAgIGVudW0gVHlwZSB7IFJHQkEsIENNWUtBLCBHcmFkaWVu
dCwgSW1hZ2VQYXR0ZXJuLCBDdXJyZW50Q29sb3IsIEN1cnJlbnRDb2xvcldpdGhPdmVycmlkZUFs
cGhhLCBJbnZhbGlkIH07Ci0gICAgICAgIHN0cnVjdCBDTVlLQVZhbHVlcyB7Ci0gICAgICAgICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICAgICAgICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKENNWUtBVmFsdWVzKTsKLSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgQ01ZS0FWYWx1
ZXMoKQotICAgICAgICAgICAgICAgIDogY29sb3IoKSwgYygwKSwgbSgwKSwgeSgwKSwgaygwKSwg
YSgwKQotICAgICAgICAgICAgeyB9Ci0KLSAgICAgICAgICAgIENNWUtBVmFsdWVzKENvbG9yIGNv
bG9yLCBmbG9hdCBjeWFuLCBmbG9hdCBtYWdlbnRhLCBmbG9hdCB5ZWxsb3csIGZsb2F0IGJsYWNr
LCBmbG9hdCBhbHBoYSkKLSAgICAgICAgICAgICAgICA6IGNvbG9yKGNvbG9yKSwgYyhjeWFuKSwg
bShtYWdlbnRhKSwgeSh5ZWxsb3cpLCBrKGJsYWNrKSwgYShhbHBoYSkKLSAgICAgICAgICAgIHsg
fQotICAgICAgICAgICAgQ29sb3IgY29sb3I7Ci0gICAgICAgICAgICBmbG9hdCBjOwotICAgICAg
ICAgICAgZmxvYXQgbTsKLSAgICAgICAgICAgIGZsb2F0IHk7Ci0gICAgICAgICAgICBmbG9hdCBr
OwotICAgICAgICAgICAgZmxvYXQgYTsKLSAgICAgICAgfTsKLQotICAgICAgICBlbnVtIENvbnN0
cnVjdEN1cnJlbnRDb2xvclRhZyB7IENvbnN0cnVjdEN1cnJlbnRDb2xvciB9OwotICAgICAgICBD
YW52YXNTdHlsZShDb25zdHJ1Y3RDdXJyZW50Q29sb3JUYWcpIDogbV90eXBlKEN1cnJlbnRDb2xv
cikgeyB9Ci0gICAgICAgIENhbnZhc1N0eWxlKFR5cGUgdHlwZSwgZmxvYXQgb3ZlcnJpZGVBbHBo
YSkKLSAgICAgICAgICAgIDogbV9vdmVycmlkZUFscGhhKG92ZXJyaWRlQWxwaGEpCi0gICAgICAg
ICAgICAsIG1fdHlwZSh0eXBlKQorY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBHcmFwaGljc0NvbnRl
eHQ7CitjbGFzcyBIVE1MQ2FudmFzRWxlbWVudDsKKworY2xhc3MgQ2FudmFzU3R5bGUgeworcHVi
bGljOgorICAgIENhbnZhc1N0eWxlKCk7CisgICAgQ2FudmFzU3R5bGUoQ29sb3IpOworICAgIENh
bnZhc1N0eWxlKGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQgYWxwaGEpOworICAgIENhbnZhc1N0eWxl
KGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIsIGZsb2F0IGFscGhhKTsKKyAgICBDYW52YXNTdHls
ZShmbG9hdCBjLCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBhbHBoYSk7CisgICAg
Q2FudmFzU3R5bGUoQ2FudmFzR3JhZGllbnQmKTsKKyAgICBDYW52YXNTdHlsZShDYW52YXNQYXR0
ZXJuJik7CisKKyAgICBzdGF0aWMgQ2FudmFzU3R5bGUgY3JlYXRlRnJvbVN0cmluZyhjb25zdCBT
dHJpbmcmIGNvbG9yLCBEb2N1bWVudCogPSBudWxscHRyKTsKKyAgICBzdGF0aWMgQ2FudmFzU3R5
bGUgY3JlYXRlRnJvbVN0cmluZ1dpdGhPdmVycmlkZUFscGhhKGNvbnN0IFN0cmluZyYgY29sb3Is
IGZsb2F0IGFscGhhKTsKKworICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuICFXVEY6
OmhvbGRzX2FsdGVybmF0aXZlPEludmFsaWQ+KG1fc3R5bGUpOyB9CisgICAgYm9vbCBpc0N1cnJl
bnRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q3VycmVudENv
bG9yPihtX3N0eWxlKTsgfQorICAgIGJvb2wgaGFzT3ZlcnJpZGVBbHBoYSgpIGNvbnN0IHsgcmV0
dXJuIGlzQ3VycmVudENvbG9yKCkgJiYgV1RGOjpnZXQ8Q3VycmVudENvbG9yPihtX3N0eWxlKS5v
dmVycmlkZUFscGhhOyB9CisgICAgZmxvYXQgb3ZlcnJpZGVBbHBoYSgpIGNvbnN0IHsgcmV0dXJu
IFdURjo6Z2V0PEN1cnJlbnRDb2xvcj4obV9zdHlsZSkub3ZlcnJpZGVBbHBoYS52YWx1ZSgpOyB9
CisKKyAgICBTdHJpbmcgY29sb3IoKSBjb25zdDsKKyAgICBDYW52YXNHcmFkaWVudCogY2FudmFz
R3JhZGllbnQoKSBjb25zdDsKKyAgICBDYW52YXNQYXR0ZXJuKiBjYW52YXNQYXR0ZXJuKCkgY29u
c3Q7CisKKyAgICB2b2lkIGFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Owor
ICAgIHZvaWQgYXBwbHlTdHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKworICAg
IGJvb2wgaXNFcXVpdmFsZW50Q29sb3IoY29uc3QgQ2FudmFzU3R5bGUmKSBjb25zdDsKKyAgICBi
b29sIGlzRXF1aXZhbGVudFJHQkEoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwg
ZmxvYXQgYWxwaGEpIGNvbnN0OworICAgIGJvb2wgaXNFcXVpdmFsZW50Q01ZS0EoZmxvYXQgY3lh
biwgZmxvYXQgbWFnZW50YSwgZmxvYXQgeWVsbG93LCBmbG9hdCBibGFjaywgZmxvYXQgYWxwaGEp
IGNvbnN0OworCitwcml2YXRlOgorICAgIHN0cnVjdCBJbnZhbGlkIHsgfTsKKworICAgIHN0cnVj
dCBDTVlLQUNvbG9yIHsKKyAgICAgICAgQ01ZS0FDb2xvcigpID0gZGVmYXVsdDsKKworICAgICAg
ICBDTVlLQUNvbG9yKENvbG9yIGNvbG9yLCBmbG9hdCBjeWFuLCBmbG9hdCBtYWdlbnRhLCBmbG9h
dCB5ZWxsb3csIGZsb2F0IGJsYWNrLCBmbG9hdCBhbHBoYSkKKyAgICAgICAgICAgIDogY29sb3Io
Y29sb3IpLCBjKGN5YW4pLCBtKG1hZ2VudGEpLCB5KHllbGxvdyksIGsoYmxhY2spLCBhKGFscGhh
KQogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICB1bmlvbiB7Ci0gICAgICAgICAgICBD
b2xvciBtX2NvbG9yOwotICAgICAgICAgICAgZmxvYXQgbV9vdmVycmlkZUFscGhhOwotICAgICAg
ICAgICAgQ2FudmFzR3JhZGllbnQqIG1fZ3JhZGllbnQ7Ci0gICAgICAgICAgICBDYW52YXNQYXR0
ZXJuKiBtX3BhdHRlcm47Ci0gICAgICAgICAgICBDTVlLQVZhbHVlcyogbV9jbXlrYTsKLSAgICAg
ICAgfTsKLSAgICAgICAgVHlwZSBtX3R5cGU7CisgICAgICAgIENvbG9yIGNvbG9yOworICAgICAg
ICBmbG9hdCBjIHsgMCB9OworICAgICAgICBmbG9hdCBtIHsgMCB9OworICAgICAgICBmbG9hdCB5
IHsgMCB9OworICAgICAgICBmbG9hdCBrIHsgMCB9OworICAgICAgICBmbG9hdCBhIHsgMCB9Owog
ICAgIH07CiAKLSAgICBDb2xvciBjdXJyZW50Q29sb3IoSFRNTENhbnZhc0VsZW1lbnQqKTsKLSAg
ICBDb2xvciBwYXJzZUNvbG9yT3JDdXJyZW50Q29sb3IoY29uc3QgU3RyaW5nJiBjb2xvclN0cmlu
ZywgSFRNTENhbnZhc0VsZW1lbnQqKTsKLQotICAgIGlubGluZSBDYW52YXNTdHlsZTo6Q2FudmFz
U3R5bGUoKQotICAgICAgICA6IG1fdHlwZShJbnZhbGlkKQotICAgIHsKLSAgICB9Ci0KLSAgICBp
bmxpbmUgQ2FudmFzR3JhZGllbnQqIENhbnZhc1N0eWxlOjpjYW52YXNHcmFkaWVudCgpIGNvbnN0
Ci0gICAgewotICAgICAgICBpZiAobV90eXBlID09IEdyYWRpZW50KQotICAgICAgICAgICAgcmV0
dXJuIG1fZ3JhZGllbnQ7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGlubGluZSBD
YW52YXNQYXR0ZXJuKiBDYW52YXNTdHlsZTo6Y2FudmFzUGF0dGVybigpIGNvbnN0Ci0gICAgewot
ICAgICAgICBpZiAobV90eXBlID09IEltYWdlUGF0dGVybikKLSAgICAgICAgICAgIHJldHVybiBt
X3BhdHRlcm47Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGlubGluZSBTdHJpbmcg
Q2FudmFzU3R5bGU6OmNvbG9yKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUg
PT0gUkdCQSB8fCBtX3R5cGUgPT0gQ01ZS0EpOwotICAgICAgICBpZiAobV90eXBlID09IFJHQkEp
Ci0gICAgICAgICAgICByZXR1cm4gbV9jb2xvci5zZXJpYWxpemVkKCk7Ci0gICAgICAgIHJldHVy
biBtX2NteWthLT5jb2xvci5zZXJpYWxpemVkKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIENhbnZh
c1N0eWxlOjpDYW52YXNTdHlsZShDYW52YXNTdHlsZSYmIG90aGVyKQotICAgIHsKLSAgICAgICAg
bWVtY3B5KHRoaXMsICZvdGhlciwgc2l6ZW9mKENhbnZhc1N0eWxlKSk7Ci0gICAgICAgIG90aGVy
Lm1fdHlwZSA9IEludmFsaWQ7Ci0gICAgfQotCi0gICAgaW5saW5lIENhbnZhc1N0eWxlJiBDYW52
YXNTdHlsZTo6b3BlcmF0b3I9KENhbnZhc1N0eWxlJiYgb3RoZXIpCi0gICAgewotICAgICAgICBp
ZiAodGhpcyAhPSAmb3RoZXIpIHsKLSAgICAgICAgICAgIG1lbWNweSh0aGlzLCAmb3RoZXIsIHNp
emVvZihDYW52YXNTdHlsZSkpOwotICAgICAgICAgICAgb3RoZXIubV90eXBlID0gSW52YWxpZDsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQorICAgIHN0cnVjdCBDdXJy
ZW50Q29sb3IgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBvdmVycmlkZUFscGhhOwor
ICAgIH07CisKKyAgICBDYW52YXNTdHlsZShDdXJyZW50Q29sb3IpOworCisgICAgVmFyaWFudDxJ
bnZhbGlkLCBDb2xvciwgQ01ZS0FDb2xvciwgUmVmUHRyPENhbnZhc0dyYWRpZW50PiwgUmVmUHRy
PENhbnZhc1BhdHRlcm4+LCBDdXJyZW50Q29sb3I+IG1fc3R5bGU7Cit9OworCitDb2xvciBjdXJy
ZW50Q29sb3IoSFRNTENhbnZhc0VsZW1lbnQqKTsKK0NvbG9yIHBhcnNlQ29sb3JPckN1cnJlbnRD
b2xvcihjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBIVE1MQ2FudmFzRWxlbWVudCopOworCitp
bmxpbmUgQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKCkKKyAgICA6IG1fc3R5bGUoSW52YWxpZCB7
IH0pCit7Cit9CisKK2lubGluZSBDYW52YXNHcmFkaWVudCogQ2FudmFzU3R5bGU6OmNhbnZhc0dy
YWRpZW50KCkgY29uc3QKK3sKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmUHRy
PENhbnZhc0dyYWRpZW50Pj4obV9zdHlsZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBXVEY6OmdldDxSZWZQdHI8Q2FudmFzR3JhZGllbnQ+PihtX3N0eWxlKS5nZXQoKTsK
K30KKworaW5saW5lIENhbnZhc1BhdHRlcm4qIENhbnZhc1N0eWxlOjpjYW52YXNQYXR0ZXJuKCkg
Y29uc3QKK3sKKyAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmUHRyPENhbnZhc1Bh
dHRlcm4+PihtX3N0eWxlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFdU
Rjo6Z2V0PFJlZlB0cjxDYW52YXNQYXR0ZXJuPj4obV9zdHlsZSkuZ2V0KCk7Cit9CisKK2lubGlu
ZSBTdHJpbmcgQ2FudmFzU3R5bGU6OmNvbG9yKCkgY29uc3QKK3sKKyAgICBhdXRvJiBjb2xvciA9
IFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG1fc3R5bGUpID8gV1RGOjpnZXQ8Q29sb3I+
KG1fc3R5bGUpIDogV1RGOjpnZXQ8Q01ZS0FDb2xvcj4obV9zdHlsZSkuY29sb3I7CisgICAgcmV0
dXJuIGNvbG9yLnNlcmlhbGl6ZWQoKTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3Bw
CmluZGV4IGM4YjEwZjdiZmJjNjgxZDhhYTg1OTU5YTNmMWUyN2Q2Mzc4ZTY5YWUuLjExMWJjM2Jl
NjZjNDQ4Nzg2M2JiYjRjNjljMTRlZGNhZjMwMTkwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKQEAgLTI0LDExICsyNCwx
MCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJPRVNWZXJ0ZXhBcnJh
eU9iamVjdC5oIgogCiAjaWYgRU5BQkxFKFdFQkdMKQogCi0jaW5jbHVkZSAiT0VTVmVydGV4QXJy
YXlPYmplY3QuaCIKLQogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgogI2luY2x1ZGUgIldlYkdM
UmVuZGVyaW5nQ29udGV4dC5oIgogCkBAIC00OSw4ICs0OCw4IEBAIFJlZlB0cjxXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTPiBPRVNWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlVmVydGV4QXJyYXlP
RVMoKQogICAgIGlmIChtX2NvbnRleHQuaXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIGF1dG8gb2JqZWN0ID0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6
Y3JlYXRlKG1fY29udGV4dCwgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6VkFPVHlwZVVzZXIp
OwotICAgIG1fY29udGV4dC5hZGRDb250ZXh0T2JqZWN0KG9iamVjdC5wdHIoKSk7CisgICAgYXV0
byBvYmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUobV9jb250ZXh0LCBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpUeXBlOjpVc2VyKTsKKyAgICBtX2NvbnRleHQuYWRk
Q29udGV4dE9iamVjdChvYmplY3QuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKG9iamVjdCk7
CiB9CiAKQEAgLTU4LDkgKzU3LDkgQEAgdm9pZCBPRVNWZXJ0ZXhBcnJheU9iamVjdDo6ZGVsZXRl
VmVydGV4QXJyYXlPRVMoV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyogYXJyYXkKIHsKICAgICBp
ZiAoIWFycmF5T2JqZWN0IHx8IG1fY29udGV4dC5pc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICAKLSAgICBpZiAoIWFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3QoKSAmJiBh
cnJheU9iamVjdCA9PSBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQqPigmbV9jb250
ZXh0KS0+bV9ib3VuZFZlcnRleEFycmF5T2JqZWN0KQotICAgICAgICBzdGF0aWNfY2FzdDxXZWJH
TFJlbmRlcmluZ0NvbnRleHQqPigmbV9jb250ZXh0KS0+c2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVj
dCgwKTsKKworICAgIGlmICghYXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpICYmIGFycmF5
T2JqZWN0ID09IHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCY+KG1fY29udGV4dCku
bV9ib3VuZFZlcnRleEFycmF5T2JqZWN0KQorICAgICAgICBzdGF0aWNfY2FzdDxXZWJHTFJlbmRl
cmluZ0NvbnRleHQmPihtX2NvbnRleHQpLnNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QobnVsbHB0
cik7CiAKICAgICBhcnJheU9iamVjdC0+ZGVsZXRlT2JqZWN0KG1fY29udGV4dC5ncmFwaGljc0Nv
bnRleHQzRCgpKTsKIH0KQEAgLTg5LDcgKzg4LDcgQEAgdm9pZCBPRVNWZXJ0ZXhBcnJheU9iamVj
dDo6YmluZFZlcnRleEFycmF5T0VTKFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMqIGFycmF5T2IK
ICAgICAgICAgY29udGV4dC5zZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KGFycmF5T2JqZWN0KTsK
ICAgICB9IGVsc2UgewogICAgICAgICBleHRlbnNpb25zLmJpbmRWZXJ0ZXhBcnJheU9FUygwKTsK
LSAgICAgICAgY29udGV4dC5zZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KDApOworICAgICAgICBj
b250ZXh0LnNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QobnVsbHB0cik7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRl
eHQuY3BwCmluZGV4IDQ4MGEwY2E5NWI1MTgzMTIzODBjOWNlZmI4NDQ4ZjI1OTEwODE4MTcuLjc5
YzEzYzJmNmQzZGQyYzZjZTUwN2IxYzFhNWZmNTA2ZDhmZGNiZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDEw
ICsyNCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShXRUJH
TCkgJiYgRU5BQkxFKFdFQkdMMikKICNpbmNsdWRlICJXZWJHTDJSZW5kZXJpbmdDb250ZXh0Lmgi
CiAKKyNpZiBFTkFCTEUoV0VCR0wyKQorCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNs
dWRlICJFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCIKICNpbmNsdWRlICJFeHRlbnNpb25z
M0QuaCIKQEAgLTYzLDcgKzYzLDcgQEAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6V2ViR0wyUmVu
ZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLAogewogfQogCi1X
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNF
bGVtZW50JiBwYXNzZWRDYW52YXMsIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4mJiBjb250ZXh0
LCBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcykKK1dlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3Nl
ZENhbnZhcywgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4
dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIDogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZShwYXNzZWRDYW52YXMsIFdURk1vdmUoY29udGV4dCksIGF0dHJpYnV0ZXMpCiB7CiAgICAgaW5p
dGlhbGl6ZVNoYWRlckV4dGVuc2lvbnMoKTsKQEAgLTcyLDggKzcyLDggQEAgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFz
c2VkQ2FudmFzLAogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVWZXJ0
ZXhBcnJheU9iamVjdHMoKQogewotICAgIG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0ID0gV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdDo6Y3JlYXRlKCp0aGlzLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0
OjpWQU9UeXBlRGVmYXVsdCk7Ci0gICAgYWRkQ29udGV4dE9iamVjdChtX2RlZmF1bHRWZXJ0ZXhB
cnJheU9iamVjdC5nZXQoKSk7CisgICAgbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QgPSBXZWJH
TFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6
OlR5cGU6OkRlZmF1bHQpOworICAgIGFkZENvbnRleHRPYmplY3QoKm1fZGVmYXVsdFZlcnRleEFy
cmF5T2JqZWN0KTsKICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBtX2RlZmF1bHRWZXJ0
ZXhBcnJheU9iamVjdDsKICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSkKICAgICAgICAgaW5p
dFZlcnRleEF0dHJpYjAoKTsKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmNvcHlCdWZmZXJTdWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVt
IHdyaQogICAgIH0KIAogICAgIG1fY29udGV4dC0+bW92ZUVycm9yc1RvU3ludGhldGljRXJyb3JM
aXN0KCk7Ci0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgbV9jb250ZXh0LT5jb3B5QnVmZmVyU3ViRGF0YShyZWFkVGFyZ2V0LCB3cml0
ZVRhcmdldCwgY2hlY2tlZFJlYWRPZmZzZXQudW5zYWZlR2V0KCksIGNoZWNrZWRXcml0ZU9mZnNl
dC51bnNhZmVHZXQoKSwgY2hlY2tlZFNpemUudW5zYWZlR2V0KCkpOwogI2VuZGlmCiAgICAgaWYg
KG1fY29udGV4dC0+bW92ZUVycm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCkpIHsKQEAgLTI3Miw3
ICsyNzIsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEJ1ZmZlclN1YkRhdGEo
R0MzRGVudW0gdGFyZ2V0LCBsb25nIGxvbmcgc3JjQnl0ZQogICAgIH0KIAogICAgIG1fY29udGV4
dC0+bW92ZUVycm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCk7Ci0jaWYgUExBVEZPUk0oTUFDKSB8
fCBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gRklYTUU6IENvYWxl
c2NlIG11bHRpcGxlIGdldEJ1ZmZlclN1YkRhdGEoKSBjYWxscyB0byB1c2UgYSBzaW5nbGUgbWFw
KCkgY2FsbAogICAgIHZvaWQqIHB0ciA9IG1fY29udGV4dC0+bWFwQnVmZmVyUmFuZ2UodGFyZ2V0
LCBjaGVja2VkU3JjQnl0ZU9mZnNldC51bnNhZmVHZXQoKSwgc3RhdGljX2Nhc3Q8R0MzRHNpemVp
cHRyPihjaGVja2VkQ29weUxlbmd0aFB0ci51bnNhZmVHZXQoKSAqIGNoZWNrZWRFbGVtZW50U2l6
ZS51bnNhZmVHZXQoKSksIEdyYXBoaWNzQ29udGV4dDNEOjpNQVBfUkVBRF9CSVQpOwogICAgIG1l
bWNweShzdGF0aWNfY2FzdDxjaGFyKj4oZHN0RGF0YS0+YmFzZUFkZHJlc3MoKSkgKyBkc3REYXRh
LT5ieXRlT2Zmc2V0KCkgKyBkc3RPZmZzZXQgKiBlbGVtZW50U2l6ZSwgcHRyLCBjb3B5TGVuZ3Ro
ICogZWxlbWVudFNpemUpOwpAQCAtMjkwLDE2ICsyOTAsMTYgQEAgdm9pZCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpmcmFtZWJ1ZmZlclRleHR1cmVMYXllcihHQzNEZW51bSwgR0MzRGVudW0sIEdD
M0R1aW4KIHsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldElu
dGVybmFsZm9ybWF0UGFyYW1ldGVyKEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGVudW0pCitXZWJH
TEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlcihH
QzNEZW51bSwgR0MzRGVudW0sIEdDM0RlbnVtKQogewotICAgIHJldHVybiBXZWJHTEdldEluZm8o
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
OjppbnZhbGlkYXRlRnJhbWVidWZmZXIoR0MzRGVudW0sIFZlY3RvcjxHQzNEZW51bT4pCit2b2lk
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmludmFsaWRhdGVGcmFtZWJ1ZmZlcihHQzNEZW51bSwg
Y29uc3QgVmVjdG9yPEdDM0RlbnVtPiYpCiB7CiB9CiAKLXZvaWQgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6aW52YWxpZGF0ZVN1YkZyYW1lYnVmZmVyKEdDM0RlbnVtLCBWZWN0b3I8R0MzRGVudW0+
LCBHQzNEaW50LCBHQzNEaW50LCBHQzNEc2l6ZWksIEdDM0RzaXplaSkKK3ZvaWQgV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6aW52YWxpZGF0ZVN1YkZyYW1lYnVmZmVyKEdDM0RlbnVtLCBjb25zdCBW
ZWN0b3I8R0MzRGVudW0+JiwgR0MzRGludCwgR0MzRGludCwgR0MzRHNpemVpLCBHQzNEc2l6ZWkp
CiB7CiB9CiAKQEAgLTQwNyw3ICs0MDcsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OnRleFN0b3JhZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDMwogICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdl
YkdMVGV4dHVyZSogdGV4dHVyZSA9IHZhbGlkYXRlVGV4dHVyZUJpbmRpbmcoInRleFN0b3JhZ2Uy
RCIsIHRhcmdldCwgZmFsc2UpOworICAgIGF1dG8qIHRleHR1cmUgPSB2YWxpZGF0ZVRleHR1cmVC
aW5kaW5nKCJ0ZXhTdG9yYWdlMkQiLCB0YXJnZXQsIGZhbHNlKTsKICAgICBpZiAoIXRleHR1cmUp
CiAgICAgICAgIHJldHVybjsKIApAQCAtNTAyLDcgKzUwMiw3IEBAIHZvaWQgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6Y29tcHJlc3NlZFRleFN1YkltYWdlM0QoR0MzRGVudW0sIEdDM0RpbnQsIEdD
M0RpbnQsCiB7CiB9CiAKLUdDM0RpbnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhZ0Rh
dGFMb2NhdGlvbihXZWJHTFByb2dyYW0qLCBTdHJpbmcpCitHQzNEaW50IFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmdldEZyYWdEYXRhTG9jYXRpb24oV2ViR0xQcm9ncmFtKiwgY29uc3QgU3RyaW5n
JikKIHsKICAgICByZXR1cm4gMDsKIH0KQEAgLTYzMyw3ICs2MzMsNyBAQCB2b2lkIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OmRyYXdSYW5nZUVsZW1lbnRzKEdDM0RlbnVtLCBHQzNEdWludCwgR0Mz
RHVpbnQsIEdDMwogewogfQogCi12b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRyYXdCdWZm
ZXJzKFZlY3RvcjxHQzNEZW51bT4gYnVmZmVycykKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6ZHJhd0J1ZmZlcnMoY29uc3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmZmVycykKIHsKICAgICBp
ZiAoaXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm47CkBAIC03ODIsOSArNzgyLDkgQEAg
UmVmUHRyPFdlYkdMUXVlcnk+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5KEdDM0Rl
bnVtLCBHQzNEZW51bSkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotV2ViR0xHZXRJbmZvIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdMUXVlcnkqLCBHQzNE
ZW51bSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFF1ZXJ5UGFyYW1ldGVy
KFdlYkdMUXVlcnkqLCBHQzNEZW51bSkKIHsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZlB0cjxXZWJHTFNhbXBsZXI+IFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmNyZWF0ZVNhbXBsZXIoKQpAQCAtODEzLDkgKzgxMyw5IEBAIHZvaWQgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6c2FtcGxlclBhcmFtZXRlcmYoV2ViR0xTYW1wbGVyKiwgR0Mz
RGVudW0sIEdDM0RmbG9hCiB7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpnZXRTYW1wbGVyUGFyYW1ldGVyKFdlYkdMU2FtcGxlciosIEdDM0RlbnVtKQorV2ViR0xB
bnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2FtcGxlclBhcmFtZXRlcihXZWJHTFNhbXBs
ZXIqLCBHQzNEZW51bSkKIHsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKIFJlZlB0cjxXZWJHTFN5bmM+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmZlbmNlU3luYyhHQzNEZW51bSwgR0MzRGJpdGZpZWxkKQpAQCAtODQxLDkgKzg0MSw5IEBAIHZv
aWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6d2FpdFN5bmMoV2ViR0xTeW5jKiwgR0MzRGJpdGZp
ZWxkLCBHQzNEdWludDY0KQogewogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0U3luY1BhcmFtZXRlcihXZWJHTFN5bmMqLCBHQzNEZW51bSkKK1dlYkdMQW55IFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFN5bmNQYXJhbWV0ZXIoV2ViR0xTeW5jKiwgR0MzRGVu
dW0pCiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIHJldHVybiBudWxscHRyOwog
fQogCiBSZWZQdHI8V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz4gV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Y3JlYXRlVHJhbnNmb3JtRmVlZGJhY2soKQpAQCAtODcyLDcgKzg3Miw3IEBAIHZvaWQgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6ZW5kVHJhbnNmb3JtRmVlZGJhY2soKQogewogfQogCi12b2lk
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MoV2ViR0xQ
cm9ncmFtKiwgVmVjdG9yPFN0cmluZz4sIEdDM0RlbnVtKQordm9pZCBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0Ojp0cmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiwgR0MzRGVudW0pCiB7CiB9CiAKQEAgLTg5Nyw3ICs4OTcsNyBAQCB2b2lk
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJpbmRCdWZmZXJSYW5nZShHQzNEZW51bSwgR0MzRHVp
bnQsIFdlYkdMQnVmZmVyKiwgRwogewogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50KQor
V2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcihHQzNE
ZW51bSB0YXJnZXQsIEdDM0R1aW50KQogewogICAgIHN3aXRjaCAodGFyZ2V0KSB7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HOgpA
QCAtOTA3LDE2ICs5MDcsMTQgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmdldEluZGV4ZWRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWkKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpVTklGT1JNX0JVRkZFUl9TSVpFOgogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlVOSUZPUk1fQlVGRkVSX1NUQVJUOgogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0SW5kZXhlZFBhcmFtZXRlciIs
ICJwYXJhbWV0ZXIgbmFtZSBub3QgeWV0IHN1cHBvcnRlZCIpOwotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJn
ZXRJbmRleGVkUGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbygpOwotICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CiB9CiAKLVVpbnQzMkFycmF5
KiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtSW5kaWNlcyhXZWJHTFByb2dyYW0q
LCBWZWN0b3I8U3RyaW5nPikKK1VpbnQzMkFycmF5KiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRVbmlmb3JtSW5kaWNlcyhXZWJHTFByb2dyYW0qLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpCiB7
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CkBAIC05MjYsMTkgKzkyNCwxOSBAQCBJbnQzMkFycmF5
KiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtcyhXZWJHTFByb2dyYW0q
LCBSZWZQdHI8VWludAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1HQzNEdWludCBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtQmxvY2tJbmRleChXZWJHTFByb2dyYW0qLCBTdHJp
bmcpCitHQzNEdWludCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtQmxvY2tJbmRl
eChXZWJHTFByb2dyYW0qLCBjb25zdCBTdHJpbmcmKQogewogICAgIHJldHVybiAwOwogfQogCi1X
ZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2Nr
UGFyYW1ldGVyKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50LCBHQzNEZW51bSkKK1dlYkdMQW55IFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihXZWJH
TFByb2dyYW0qLCBHQzNEdWludCwgR0MzRGVudW0pCiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgIHJldHVybiBudWxscHRyOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShXZWJHTFByb2dyYW0qLCBHQzNE
dWludCkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVuaWZvcm1C
bG9ja05hbWUoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQpCiB7Ci0gICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OnVuaWZvcm1CbG9ja0JpbmRpbmcoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQsIEdDM0R1
aW50KQpAQCAtOTUwLDggKzk0OCw4IEBAIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVWZXJ0ZXhBcnJheSgpCiAgICAgaWYgKGlzQ29u
dGV4dExvc3QoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgYXV0byBvYmpl
Y3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdlYkdMVmVydGV4QXJy
YXlPYmplY3Q6OlZBT1R5cGVVc2VyKTsKLSAgICBhZGRDb250ZXh0T2JqZWN0KG9iamVjdC5wdHIo
KSk7CisgICAgYXV0byBvYmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRo
aXMsIFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OlR5cGU6OlVzZXIpOworICAgIGFkZENvbnRleHRP
YmplY3Qob2JqZWN0LmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92ZShvYmplY3QpOwogfQogCkBA
IC05NjQsNyArOTYyLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVWZXJ0
ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamUKICAgICAgICAgcmV0dXJu
OwogICAgIAogICAgIGlmICghYXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpICYmIGFycmF5
T2JqZWN0ID09IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCkKLSAgICAgICAgc2V0Qm91bmRWZXJ0
ZXhBcnJheU9iamVjdCgwKTsKKyAgICAgICAgc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChudWxs
cHRyKTsKICAgICAKICAgICBhcnJheU9iamVjdC0+ZGVsZXRlT2JqZWN0KGdyYXBoaWNzQ29udGV4
dDNEKCkpOwogfQpAQCAtOTcyLDEwICs5NzAsMTAgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpkZWxldGVWZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamUK
IEdDM0Rib29sZWFuIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmlzVmVydGV4QXJyYXkoV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdCogYXJyYXlPYmplY3QpCiB7CiAgICAgaWYgKCFhcnJheU9iamVjdCB8
fCBpc0NvbnRleHRMb3N0KCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgCiAgICAgaWYgKCFhcnJheU9iamVjdC0+aGFzRXZlckJlZW5Cb3VuZCgpIHx8ICFh
cnJheU9iamVjdC0+dmFsaWRhdGUoMCwgKnRoaXMpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIHJldHVybiBtX2NvbnRleHQtPmlzVmVydGV4QXJy
YXkoYXJyYXlPYmplY3QtPm9iamVjdCgpKTsKIH0KQEAgLTk5Niw3ICs5OTQsNyBAQCB2b2lkIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJpbmRWZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0KiBhcnJheU9iamVjdAogICAgICAgICBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KGFycmF5
T2JqZWN0KTsKICAgICB9IGVsc2UgewogICAgICAgICBtX2NvbnRleHQtPmJpbmRWZXJ0ZXhBcnJh
eShtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdC0+b2JqZWN0KCkpOwotICAgICAgICBzZXRCb3Vu
ZFZlcnRleEFycmF5T2JqZWN0KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0KTsKKyAgICAgICAg
c2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdC5nZXQo
KSk7CiAgICAgfQogfQogCkBAIC0xMDA1LDQzICsxMDAzLDM4IEBAIFdlYkdMRXh0ZW5zaW9uKiBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQog
ICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCi0gICAgaWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9m
aWx0ZXJfYW5pc290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJL
SVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpCi0gICAgICAgICYmIG1fY29udGV4
dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290
cm9waWMiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4
dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUs
ICJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpIHsKICAgICAgICAgaWYg
KCFtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykgewotICAgICAgICAgICAgbV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2Fu
aXNvdHJvcGljIik7Ci0gICAgICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9
IHN0ZDo6bWFrZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcyk7Cisg
ICAgICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IGVuYWJsZVN1cHBvcnRl
ZEV4dGVuc2lvbigiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikKKyAgICAgICAg
ICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigq
dGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpYy5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0IikpIHsKKyAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxvYXQiKSkgewog
ICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUZsb2F0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpOwot
ICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1
cmVGbG9hdD4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXQgPSBlbmFibGVT
dXBwb3J0ZWRFeHRlbnNpb24oIkdMX09FU190ZXh0dXJlX2Zsb2F0IikKKyAgICAgICAgICAgICAg
ICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0PigqdGhpcykgOiBudWxscHRyOwog
ICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVGbG9hdC5nZXQoKTsKICAgICB9
Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0
X2xpbmVhciIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRz
KCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkgewogICAgICAgICBp
ZiAoIW1fb2VzVGV4dHVyZUZsb2F0TGluZWFyKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIi
KTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyID0gc3RkOjptYWtlX3VuaXF1
ZTxPRVNUZXh0dXJlRmxvYXRMaW5lYXI+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVy
ZUZsb2F0TGluZWFyID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfdGV4dHVyZV9m
bG9hdF9saW5lYXIiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0
dXJlRmxvYXRMaW5lYXI+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpCi0gICAgICAg
ICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9o
YWxmX2Zsb2F0IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VT
X3RleHR1cmVfaGFsZl9mbG9hdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlSGFsZkZs
b2F0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFi
bGVkKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0Iik7Ci0gICAgICAgICAgICBtX29lc1RleHR1
cmVIYWxmRmxvYXQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+KCp0aGlz
KTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdCA9IGVuYWJsZVN1cHBvcnRlZEV4
dGVuc2lvbigiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpCisgICAgICAgICAgICAgICAgPyBz
dGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+KCp0aGlzKSA6IG51bGxwdHI7CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUhhbGZGbG9hdC5nZXQoKTsKICAg
ICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2hh
bGZfZmxvYXRfbGluZWFyIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
c3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikpIHsKKyAgICBpZiAo
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5l
YXIiKSkgewogICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhcikgewotICAg
ICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VT
X3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhh
bGZGbG9hdExpbmVhciA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVh
cj4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyID0gZW5h
YmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIp
CisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXRM
aW5lYXI+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2Vz
VGV4dHVyZUhhbGZGbG9hdExpbmVhci5nZXQoKTsKICAgICB9CkBAIC0xMDUwLDI4ICsxMDQzLDMy
IEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24o
Y29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICAgICAgbV93ZWJnbExvc2VDb250ZXh0ID0gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJHTExvc2VDb250ZXh0PigqdGhpcyk7CiAgICAgICAgIHJldHVybiBt
X3dlYmdsTG9zZUNvbnRleHQuZ2V0KCk7CiAgICAgfQotICAgIGlmICgoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKSkKLSAg
ICAgICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewot
ICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQykKLSAgICAgICAgICAgIG1f
d2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVz
c2VkVGV4dHVyZUFUQz4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5h
bWUsICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpKSB7CisgICAgICAgIGlm
ICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDKSB7CisgICAgICAgICAgICBpZiAoV2ViR0xD
b21wcmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkKKyAgICAgICAgICAgICAgICBt
X3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVBVEM+KCp0aGlzKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlQVRDLmdldCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMi
KSkKLSAgICAgICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRo
aXMpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMpCi0gICAg
ICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQyA9IHN0ZDo6bWFrZV91bmlxdWU8
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMi
KSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKSB7CisgICAg
ICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQyA9IFdlYkdMQ29tcHJlc3NlZFRl
eHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0aGlzKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtl
X3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM+KCp0aGlzKSA6IG51bGxwdHI7Cisg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmdl
dCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xf
Y29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0
dXJlUzNUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVz
c2VkVGV4dHVyZVMzVEMpCi0gICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RD
ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQz4oKnRoaXMpOwor
ICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9jb21wcmVzc2VkX3Rl
eHR1cmVfczN0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNU
QykgeworICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQyA9IFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpCisgICAgICAgICAgICAgICAgPyBz
dGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDPigqdGhpcykgOiBudWxs
cHRyOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVT
M1RDLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAi
V0VCR0xfZGVwdGhfdGV4dHVyZSIpCi0gICAgICAgICYmIFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBw
b3J0ZWQoKmdyYXBoaWNzQ29udGV4dDNEKCkpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERlcHRo
VGV4dHVyZSkKLSAgICAgICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUgPSBzdGQ6Om1ha2VfdW5p
cXVlPFdlYkdMRGVwdGhUZXh0dXJlPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UobmFtZSwgIldFQkdMX2RlcHRoX3RleHR1cmUiKSkgeworICAgICAgICBpZiAoIW1fd2Vi
Z2xEZXB0aFRleHR1cmUpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUgPSBXZWJH
TERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCpncmFwaGljc0NvbnRleHQzRCgpKQorICAgICAgICAg
ICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlcHRoVGV4dHVyZT4oKnRoaXMpIDogbnVs
bHB0cjsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbERlcHRoVGV4dHVyZS5nZXQo
KTsKICAgICB9CiAgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2Rl
YnVnX3JlbmRlcmVyX2luZm8iKSkgewpAQCAtMTA3OSwxMCArMTA3NiwxMSBAQCBXZWJHTEV4dGVu
c2lvbiogV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYg
bmFtZSkKICAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbyA9IHN0ZDo6bWFrZV91
bmlxdWU8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4oKnRoaXMpOwogICAgICAgICByZXR1cm4gbV93
ZWJnbERlYnVnUmVuZGVyZXJJbmZvLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVidWdfc2hhZGVycyIpCi0gICAgICAgICYmIG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRl
cl9zb3VyY2UiKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1NoYWRlcnMpCi0gICAgICAg
ICAgICBtX3dlYmdsRGVidWdTaGFkZXJzID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnU2hh
ZGVycz4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJH
TF9kZWJ1Z19zaGFkZXJzIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdTaGFkZXJzKSB7
CisgICAgICAgICAgICBtX3dlYmdsRGVidWdTaGFkZXJzID0gbV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVy
X3NvdXJjZSIgfSkKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1
Z1NoYWRlcnM+KCp0aGlzKSA6IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1f
d2ViZ2xEZWJ1Z1NoYWRlcnMuZ2V0KCk7CiAgICAgfQogCkBAIC0xMDk2LDkwICsxMDk0LDkwIEBA
IFZlY3RvcjxTdHJpbmc+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVu
c2lvbnMoKQogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pCiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190
ZXh0dXJlX2Zsb2F0Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBv
cnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVu
ZCgiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpCi0gICAgICAg
IHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKTsKLSAgICBpZiAobV9jb250
ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRf
bGluZWFyIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRf
bGluZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJH
TF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVu
ZCgiV0VCS0lUX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOworICAgIGF1dG8mIGV4
dGVuc2lvbnMgPSBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKTsKKyAgICBpZiAoZXh0ZW5zaW9u
cy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfZmxvYXQiIH0pKQorICAg
ICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9mbG9hdCIgfSk7
CisgICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0
dXJlX2Zsb2F0X2xpbmVhciIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFs
IHsgIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIgfSk7CisgICAgaWYgKGV4dGVuc2lvbnMuc3Vw
cG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pKQorICAg
ICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0
IiB9KTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VT
X3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFT
Q0lJTGl0ZXJhbCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIgfSk7CisgICAgaWYg
KGV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF90ZXh0dXJlX2ZpbHRl
cl9hbmlzb3Ryb3BpYyIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsg
IldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pOwogICAgIGlmIChXZWJH
TENvbXByZXNzZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQu
YXBwZW5kKCJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpOworICAgICAgICBy
ZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0
dXJlX2F0YyIgfSk7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9y
dGVkKCp0aGlzKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNz
ZWRfdGV4dHVyZV9wdnJ0YyIpOworICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7
ICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIiB9KTsKICAgICBpZiAoV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhpcykpCi0gICAgICAgIHJlc3Vs
dC5hcHBlbmQoIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIik7CisgICAgICAgIHJlc3Vs
dC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIiB9
KTsKICAgICBpZiAoV2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqZ3JhcGhpY3NDb250ZXh0
M0QoKSkpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlcHRoX3RleHR1cmUiKTsKLSAg
ICByZXN1bHQuYXBwZW5kKCJXRUJHTF9sb3NlX2NvbnRleHQiKTsKLSAgICBpZiAobV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3Nv
dXJjZSIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19zaGFkZXJzIik7Ci0g
ICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpOworICAgICAgICBy
ZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9kZXB0aF90ZXh0dXJlIiB9KTsKKyAg
ICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJHTF9sb3NlX2NvbnRleHQiIH0pOwor
ICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9BTkdMRV90cmFu
c2xhdGVkX3NoYWRlcl9zb3VyY2UiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0
ZXJhbCB7ICJXRUJHTF9kZWJ1Z19zaGFkZXJzIiB9KTsKKyAgICByZXN1bHQuYXBwZW5kKEFTQ0lJ
TGl0ZXJhbCB7ICJXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIiB9KTsKIAogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRh
Y2htZW50LCBHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0Rl
bnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0
T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycygiZ2V0RnJh
bWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgdGFyZ2V0LCBhdHRhY2htZW50KSkKLSAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAK
ICAgICBpZiAoIW1fZnJhbWVidWZmZXJCaW5kaW5nIHx8ICFtX2ZyYW1lYnVmZmVyQmluZGluZy0+
b2JqZWN0KCkpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfT1BFUkFUSU9OLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwg
Im5vIGZyYW1lYnVmZmVyIGJvdW5kIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIFdlYkdMU2hhcmVkT2Jq
ZWN0KiBvYmplY3QgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVudE9iamVjdChh
dHRhY2htZW50KTsKKyAgICBhdXRvKiBvYmplY3QgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0
QXR0YWNobWVudE9iamVjdChhdHRhY2htZW50KTsKICAgICBpZiAoIW9iamVjdCkgewogICAgICAg
ICBpZiAocG5hbWUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
T0JKRUNUX1RZUEUpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29u
dGV4dDNEOjpOT05FKTsKLSAgICAgICAgLy8gT3BlbkdMIEVTIDIuMCBzcGVjaWZpZXMgSU5WQUxJ
RF9FTlVNIGluIHRoaXMgY2FzZSwgd2hpbGUgZGVza3RvcCBHTAotICAgICAgICAvLyBzcGVjaWZp
ZXMgSU5WQUxJRF9PUEVSQVRJT04uCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKTsKKyAgICAgICAgLy8gT3BlbkdMIEVTIDIu
MCBzcGVjaWZpZXMgSU5WQUxJRF9FTlVNIGluIHRoaXMgY2FzZSwgd2hpbGUgZGVza3RvcCBHTCBz
cGVjaWZpZXMgSU5WQUxJRF9PUEVSQVRJT04uCiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQ
YXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICAKLSAgICBB
U1NFUlQob2JqZWN0LT5pc1RleHR1cmUoKSB8fCBvYmplY3QtPmlzUmVuZGVyYnVmZmVyKCkpOwog
ICAgIGlmIChvYmplY3QtPmlzVGV4dHVyZSgpKSB7CiAgICAgICAgIHN3aXRjaCAocG5hbWUpIHsK
ICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9P
QkpFQ1RfVFlQRToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkUpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRSk7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUU6Ci0gICAgICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJlKj4ob2JqZWN0
KSk7CisgICAgICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihyZWludGVycHJldF9jYXN0PFdlYkdM
VGV4dHVyZSY+KCpvYmplY3QpKTsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVMOgogICAgICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFDRToK
ICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9D
T0xPUl9FTkNPRElORzogewogICAgICAgICAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAgICAgICAg
ICAgICBtX2NvbnRleHQtPmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2KHRhcmdl
dCwgYXR0YWNobWVudCwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgfQogICAg
ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIs
ICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIGZvciB0ZXh0dXJlIGF0dGFjaG1lbnQiKTsKLSAgICAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG9iamVjdC0+aXNSZW5k
ZXJidWZmZXIoKSk7CiAgICAgICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRToKLSAgICAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZF
Uik7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29u
dGV4dDNEOjpSRU5ERVJCVUZGRVIpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FOgotICAgICAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhyZWludGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyKj4ob2JqZWN0KSk7
CisgICAgICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihyZWludGVycHJldF9jYXN0PFdlYkdMUmVu
ZGVyYnVmZmVyJj4oKm9iamVjdCkpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HIDogewotICAgICAgICAgICAgV2Vi
R0xSZW5kZXJidWZmZXIqIHJlbmRlckJ1ZmZlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5k
ZXJidWZmZXIqPihvYmplY3QpOwotICAgICAgICAgICAgR0MzRGVudW0gcmVuZGVyQnVmZmVyRm9y
bWF0ID0gcmVuZGVyQnVmZmVyLT5nZXRJbnRlcm5hbEZvcm1hdCgpOwotICAgICAgICAgICAgaWYg
KHJlbmRlckJ1ZmZlckZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6U1JHQjhfQUxQSEE4Ci0g
ICAgICAgICAgICAgICAgfHwgcmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNE
OjpDT01QUkVTU0VEX1NSR0I4X0VUQzIKLSAgICAgICAgICAgICAgICB8fCByZW5kZXJCdWZmZXJG
b3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJf
RUFDCi0gICAgICAgICAgICAgICAgfHwgcmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpDT01QUkVTU0VEX1NSR0I4X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMikgewotICAg
ICAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlNSR0Ip
OworICAgICAgICAgICAgYXV0byYgcmVuZGVyQnVmZmVyID0gcmVpbnRlcnByZXRfY2FzdDxXZWJH
TFJlbmRlcmJ1ZmZlciY+KCpvYmplY3QpOworICAgICAgICAgICAgYXV0byBmb3JtYXQgPSByZW5k
ZXJCdWZmZXIuZ2V0SW50ZXJuYWxGb3JtYXQoKTsKKyAgICAgICAgICAgIGlmIChmb3JtYXQgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OlNSR0I4X0FMUEhBOAorICAgICAgICAgICAgICAgIHx8IGZvcm1h
dCA9PSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9TUkdCOF9FVEMyCisgICAgICAgICAg
ICAgICAgfHwgZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NSR0I4X0FM
UEhBOF9FVEMyX0VBQworICAgICAgICAgICAgICAgIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRl
eHQzRDo6Q09NUFJFU1NFRF9TUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIpIHsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNE
OjpTUkdCKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
R3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOwogICAgICAgICB9CiAgICAg
ICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwg
ImludmFsaWQgcGFyYW1ldGVyIG5hbWUgZm9yIHJlbmRlcmJ1ZmZlciBhdHRhY2htZW50Iik7Ci0g
ICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTExOTEsMTkgKzExODksMTYgQEAgYm9vbCBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUZyYW1lYnVmZmVyRnVuY1BhcmFtZXRlcnMo
Y29uc3QgY2hhciogZnVuY3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICBzd2l0
Y2ggKGF0dGFjaG1lbnQpIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRB
Q0hNRU5UMDoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRBQ0hNRU5UOgog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQVRUQUNITUVOVDoKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgotICAgICAgICBpZiAoYXR0
YWNobWVudCA+IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMAotICAgICAgICAg
ICAgJiYgYXR0YWNobWVudCA8IHN0YXRpY19jYXN0PEdDM0RlbnVtPihHcmFwaGljc0NvbnRleHQz
RDo6Q09MT1JfQVRUQUNITUVOVDAgKyBnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkpKQotICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGlmIChhdHRhY2htZW50ID49IEdyYXBoaWNzQ29udGV4dDNE
OjpDT0xPUl9BVFRBQ0hNRU5UMCAmJiBhdHRhY2htZW50IDwgc3RhdGljX2Nhc3Q8R0MzRGVudW0+
KEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCArIGdldE1heENvbG9yQXR0YWNo
bWVudHMoKSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgc3ludGhlc2l6ZUdM
RXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52
YWxpZCBhdHRhY2htZW50Iik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0
dXJuIHRydWU7CiB9CiAKIEdDM0RpbnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0TWF4RHJh
d0J1ZmZlcnMoKQpAQCAtMTM5NSw3ICsxMzkwLDcgQEAgR0MzRGVudW0gV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6YmFzZUludGVybmFsRm9ybWF0RnJvbUludGVybmFsRm9ybWF0KEdDM0RlbnVtIGkK
IGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNJbnRlZ2VyRm9ybWF0KEdDM0RlbnVtIGlu
dGVybmFsZm9ybWF0KQogewogICAgIC8vIEZJWE1FOiBiYXNlSW50ZXJuYWxGb3JtYXRGcm9tSW50
ZXJuYWxGb3JtYXQoKSBuZXZlciByZXR1cm5zIGFueSBvZiB0aGVzZSBlbnVtcy4KLSAgICAvLyBD
dXJyZW50bHksIFRoaXMgZnVuY3Rpb24gZXJyb25lb3VzbHkgYWx3YXlzIHJldHVybnMgZmFsc2Uu
CisgICAgLy8gQmVjYXVzZSBvZiB0aGF0LCB0aGlzIGZ1bmN0aW9uIGVycm9uZW91c2x5IGFsd2F5
cyByZXR1cm5zIGZhbHNlIQogICAgIHN3aXRjaCAoYmFzZUludGVybmFsRm9ybWF0RnJvbUludGVy
bmFsRm9ybWF0KGludGVybmFsZm9ybWF0KSkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJFRF9JTlRFR0VSOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHX0lOVEVHRVI6CkBA
IC0xNDA2LDExICsxNDAxLDEwIEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNJbnRl
Z2VyRm9ybWF0KEdDM0RlbnVtIGludGVybmFsZm9ybWF0KQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNE
ZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRl
cihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgY29uc3QgaW50IGludFplcm8gPSAw
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6QUNUSVZFX1RFWFRVUkU6CiAgICAgICAgIHJldHVybiBnZXRV
bnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CkBAIC0xNDIxLDcgKzE0MTUsNyBAQCBXZWJHTEdl
dEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBX0JJVFM6CiAgICAgICAgIHJldHVy
biBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFS
UkFZX0JVRkZFUl9CSU5ESU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fYm91bmRB
cnJheUJ1ZmZlci5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX2JvdW5kQXJyYXlCdWZmZXI7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QkxFTkQ6CiAgICAgICAgIHJldHVybiBnZXRCb29s
ZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORF9D
T0xPUjoKQEAgLTE0NDUsMTYgKzE0MzksMTYgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpDT0xPUl9XUklURU1BU0s6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuQXJy
YXlQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNT
RURfVEVYVFVSRV9GT1JNQVRTOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQ
dHI8VWludDMyQXJyYXk+KFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21wcmVzc2VkVGV4dHVyZUZv
cm1hdHMuZGF0YSgpLCBtX2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5zaXplKCkpKSk7CisgICAg
ICAgIHJldHVybiBVaW50MzJBcnJheTo6Y3JlYXRlKG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRz
LmRhdGEoKSwgbV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMuc2l6ZSgpKTsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpDVUxMX0ZBQ0U6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFy
YW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVUxMX0ZBQ0VfTU9E
RToKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVVJSRU5UX1BST0dSQU06Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8obV9jdXJyZW50UHJvZ3JhbS5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX2N1
cnJlbnRQcm9ncmFtOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JJVFM6CiAg
ICAgICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgJiYgIW1fYXR0cmlidXRlcy5kZXB0aCkK
LSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oaW50WmVybyk7CisgICAgICAgICAgICBy
ZXR1cm4gMDsKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQ0xFQVJfVkFMVUU6CiAgICAgICAgIHJldHVybiBn
ZXRGbG9hdFBhcmFtZXRlcihwbmFtZSk7CkBAIC0xNDY5LDkgKzE0NjMsOSBAQCBXZWJHTEdldElu
Zm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRJVEhFUjoKICAgICAgICAgcmV0dXJuIGdldEJv
b2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1F
TlRfQVJSQVlfQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9i
b3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKSk7CisgICAgICAg
IHJldHVybiBtYWtlUmVmUHRyKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVudEFy
cmF5QnVmZmVyKCkpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0JJ
TkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9mcmFtZWJ1ZmZlckJpbmRpbmcu
Z2V0KCkpOworICAgICAgICByZXR1cm4gbV9mcmFtZWJ1ZmZlckJpbmRpbmc7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6RlJPTlRfRkFDRToKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVk
SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpHRU5FUkFU
RV9NSVBNQVBfSElOVDoKQEAgLTE1MTksOSArMTUxMyw5IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6UkVEX0JJVFM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0
ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9CSU5E
SU5HOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fcmVuZGVyYnVmZmVyQmluZGluZy5n
ZXQoKSk7CisgICAgICAgIHJldHVybiBtX3JlbmRlcmJ1ZmZlckJpbmRpbmc7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVI6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
U3RyaW5nKCJXZWJLaXQgV2ViR0wiKSk7CisgICAgICAgIHJldHVybiBTdHJpbmcgeyBBU0NJSUxp
dGVyYWwgeyAiV2ViS2l0IFdlYkdMIiB9IH07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
U0FNUExFX0JVRkZFUlM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQ6CkBAIC0x
NTM1LDcgKzE1MjksNyBAQCBXZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0
UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlND
SVNTT1JfVEVTVDoKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTjoKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygiV2ViR0wgR0xTTCBFUyAxLjAgKCIgKyBtX2NvbnRl
eHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9O
KSArICIpIik7CisgICAgICAgIHJldHVybiAiV2ViR0wgR0xTTCBFUyAxLjAgKCIgKyBtX2NvbnRl
eHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9O
KSArICIpIjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JBQ0tfRkFJTDoK
ICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JBQ0tfRlVOQzoKQEAgLTE1NTIsNyArMTU0Niw3
IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0Mz
RGVudW0gcG5hbWUpCiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFt
ZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9CSVRTOgogICAgICAgICBp
ZiAoIW1fZnJhbWVidWZmZXJCaW5kaW5nICYmICFtX2F0dHJpYnV0ZXMuc3RlbmNpbCkKLSAgICAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oaW50WmVybyk7CisgICAgICAgICAgICByZXR1cm4g
MDsKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6U1RFTkNJTF9DTEVBUl9WQUxVRToKICAgICAgICAgcmV0dXJuIGdldElu
dFBhcmFtZXRlcihwbmFtZSk7CkBAIC0xNTc1LDM4ICsxNTY5LDM4IEBAIFdlYkdMR2V0SW5mbyBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1VCUElYRUxfQklUUzoKICAgICAgICAgcmV0dXJuIGdl
dEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVS
RV9CSU5ESU5HXzJEOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdGV4dHVyZVVuaXRz
W21fYWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmUyREJpbmRpbmcuZ2V0KCkpOworICAgICAgICBy
ZXR1cm4gbV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4dHVyZTJEQmluZGlu
ZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVA6
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0
dXJlVW5pdF0udGV4dHVyZUN1YmVNYXBCaW5kaW5nLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIG1f
dGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVuaXRdLnRleHR1cmVDdWJlTWFwQmluZGluZzsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5UOgogICAgICAgICBy
ZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpVTlBBQ0tfRkxJUF9ZX1dFQkdMOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdW5w
YWNrRmxpcFkpOworICAgICAgICByZXR1cm4gbV91bnBhY2tGbGlwWTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0w6Ci0gICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8obV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAgICAgcmV0
dXJuIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMOgotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb24pOworICAgICAgICByZXR1cm4g
bV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lvbjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpWRU5ET1I6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oU3RyaW5nKCJXZWJLaXQiKSk7
CisgICAgICAgIHJldHVybiBTdHJpbmcgeyBBU0NJSUxpdGVyYWwgeyAiV2ViS2l0IiB9IH07CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTjoKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbygiV2ViR0wgMi4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250
ZXh0M0Q6OlZFUlNJT04pICsgIikiKTsKKyAgICAgICAgcmV0dXJuICJXZWJHTCAyLjAgKCIgKyBt
X2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTikgKyAiKSI7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VklFV1BPUlQ6CiAgICAgICAgIHJldHVybiBnZXRX
ZWJHTEludEFycmF5UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJl
ckluZm86OlVOTUFTS0VEX1JFTkRFUkVSX1dFQkdMOgogICAgICAgICBpZiAobV93ZWJnbERlYnVn
UmVuZGVyZXJJbmZvKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2NvbnRleHQt
PmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpKTsKKyAgICAgICAgICAgIHJl
dHVybiBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpOwog
ICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVN
LCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVnX3Jl
bmRlcmVyX2luZm8gbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJlcklu
Zm86OlVOTUFTS0VEX1ZFTkRPUl9XRUJHTDoKICAgICAgICAgaWYgKG1fd2ViZ2xEZWJ1Z1JlbmRl
cmVySW5mbykKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9jb250ZXh0LT5nZXRT
dHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFTkRPUikpOworICAgICAgICAgICAgcmV0dXJuIG1f
Y29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1IpOwogICAgICAgICBz
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFy
YW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2lu
Zm8gbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFY
X0FOSVNPVFJPUFlfRVhUOiAvLyBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMKICAgICAg
ICAgaWYgKG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKQogICAgICAgICAgICAgcmV0dXJu
IGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFYX0FO
SVNPVFJPUFlfRVhUKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1l
LCBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpGUkFHTUVOVF9TSEFERVJfREVSSVZBVElWRV9ISU5UOgogICAg
ICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpNQVhfM0RfVEVYVFVSRV9TSVpFOgpAQCAtMTY4OSwxMiArMTY4MywxMCBAQCBXZWJH
TEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBu
YW1lKQogICAgICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6VU5JRk9STV9CVUZGRVJfT0ZGU0VUX0FMSUdOTUVOVDoKICAg
ICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6VkVSVEVYX0FSUkFZX0JJTkRJTkc6IHsKLSAgICAgICAgaWYgKCFtX2JvdW5kVmVy
dGV4QXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpKQotICAgICAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxXZWJHTFZlcnRleEFycmF5T2JqZWN0Kj4obV9ib3VuZFZl
cnRleEFycmF5T2JqZWN0LmdldCgpKSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
LSAgICAgICAgfQotICAgICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpW
RVJURVhfQVJSQVlfQklORElORzoKKyAgICAgICAgaWYgKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVj
dC0+aXNEZWZhdWx0T2JqZWN0KCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAg
ICAgcmV0dXJuIG1ha2VSZWZQdHIoc3RhdGljX2Nhc3Q8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCY+
KCptX2JvdW5kVmVydGV4QXJyYXlPYmplY3QpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpEUkFXX0JVRkZFUjA6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RFJBV19CVUZGRVIx
OgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMjoKQEAgLTE3MTAsMTQg
KzE3MDIsMTAgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFt
ZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JV
RkZFUjEyOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTM6CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RFJBV19CVUZGRVIxNDoKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEUkFXX0JVRkZFUjE1OiB7Ci0gICAgICAgIEdDM0RpbnQgdmFsdWUgPSBHcmFw
aGljc0NvbnRleHQzRDo6Tk9ORTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JV
RkZFUjE1OgogICAgICAgICBpZiAobV9mcmFtZWJ1ZmZlckJpbmRpbmcpCi0gICAgICAgICAgICB2
YWx1ZSA9IG1fZnJhbWVidWZmZXJCaW5kaW5nLT5nZXREcmF3QnVmZmVyKHBuYW1lKTsKLSAgICAg
ICAgZWxzZSAvLyBlbXVsYXRlZCBiYWNrYnVmZmVyCi0gICAgICAgICAgICB2YWx1ZSA9IG1fYmFj
a0RyYXdCdWZmZXI7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOwotICAgICAg
ICB9CisgICAgICAgICAgICByZXR1cm4gbV9mcmFtZWJ1ZmZlckJpbmRpbmctPmdldERyYXdCdWZm
ZXIocG5hbWUpOworICAgICAgICByZXR1cm4gbV9iYWNrRHJhd0J1ZmZlcjsgLy8gZW11bGF0ZWQg
YmFja2J1ZmZlcgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPUFlfUkVBRF9CVUZGRVI6
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09QWV9XUklURV9CVUZGRVI6CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UElYRUxfUEFDS19CVUZGRVJfQklORElORzogICAKQEAgLTE3
MzAsMTAgKzE3MTgsMTAgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6Omdl
dFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpU
UkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkc6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6VU5JRk9STV9CVUZGRVJfQklORElORzoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJwYXJhbWV0
ZXIgbmFtZSBub3QgeWV0IHN1cHBvcnRlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0
ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIApAQCAtMTc1NCw3ICsx
NzQyLDcgQEAgYm9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUluZGV4QXJyYXlD
b25zZXJ2YXRpdmUoR0MzRGVudW0gdHlwZSwgdW5zaWcKICAgICAvLyBUaGUgY2FzZSBjb3VudD09
MCBpcyBhbHJlYWR5IGRlYWx0IHdpdGggaW4gZHJhd0VsZW1lbnRzIGJlZm9yZSB2YWxpZGF0ZUlu
ZGV4QXJyYXlDb25zZXJ2YXRpdmUuCiAgICAgaWYgKCFudW1FbGVtZW50cykKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIGNvbnN0IEFycmF5QnVmZmVyKiBidWZmZXIgPSBlbGVtZW50QXJyYXlC
dWZmZXItPmVsZW1lbnRBcnJheUJ1ZmZlcigpOworICAgIGF1dG8qIGJ1ZmZlciA9IGVsZW1lbnRB
cnJheUJ1ZmZlci0+ZWxlbWVudEFycmF5QnVmZmVyKCk7CiAgICAgQVNTRVJUKGJ1ZmZlcik7CiAg
ICAgCiAgICAgaW50IG1heEluZGV4ID0gZWxlbWVudEFycmF5QnVmZmVyLT5nZXRDYWNoZWRNYXhJ
bmRleCh0eXBlKTsKQEAgLTE4MDYsNyArMTc5NCw2IEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6dmFsaWRhdGVCbGVuZEVxdWF0aW9uKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0Mz
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TUlOOgogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6Ok1BWDoKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGJyZWFrOwogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgbW9kZSIpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJp
bmdDb250ZXh0LmgKaW5kZXggNzU1ZGU2YmJkZDI2OTgxNjdkM2JhYTBmZGRkMzRiYmUwNjExNWQ1
OS4uYjQ4MDNhZjE2MmVjNWYwNDNlNzk5NjlkNmQ4NWU1MzBlZDM2NWNjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw3
ICsyOCw2IEBACiAjaWYgRU5BQkxFKFdFQkdMMikKIAogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UuaCIKLSNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTQxLDkgKzQwLDkgQEAgY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDsK
IGNsYXNzIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSB7CiBwdWJsaWM6CiAgICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1M
Q2FudmFzRWxlbWVudCYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwotICAgIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+
JiYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOworICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQo
SFRNTENhbnZhc0VsZW1lbnQmLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4
dEF0dHJpYnV0ZXMpOwogCi0gICAgLyogQnVmZmVyIG9iamVjdHMgKi8KKyAgICAvLyBCdWZmZXIg
b2JqZWN0cwogICAgIHVzaW5nIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJ1ZmZlckRhdGE7
CiAgICAgdXNpbmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YnVmZmVyU3ViRGF0YTsKICAg
ICB2b2lkIGJ1ZmZlckRhdGEoR0MzRGVudW0gdGFyZ2V0LCBjb25zdCBBcnJheUJ1ZmZlclZpZXcm
IGRhdGEsIEdDM0RlbnVtIHVzYWdlLCBHQzNEdWludCBzcmNPZmZzZXQsIEdDM0R1aW50IGxlbmd0
aCk7CkBAIC01MSwxOSArNTAsMTkgQEAgcHVibGljOgogICAgIHZvaWQgY29weUJ1ZmZlclN1YkRh
dGEoR0MzRGVudW0gcmVhZFRhcmdldCwgR0MzRGVudW0gd3JpdGVUYXJnZXQsIEdDM0RpbnQ2NCBy
ZWFkT2Zmc2V0LCBHQzNEaW50NjQgd3JpdGVPZmZzZXQsIEdDM0RpbnQ2NCBzaXplKTsKICAgICB2
b2lkIGdldEJ1ZmZlclN1YkRhdGEoR0MzRGVudW0gdGFyZ2V0LCBsb25nIGxvbmcgc3JjQnl0ZU9m
ZnNldCwgUmVmUHRyPEFycmF5QnVmZmVyVmlldz4mJiBkc3REYXRhLCBHQzNEdWludCBkc3RPZmZz
ZXQgPSAwLCBHQzNEdWludCBsZW5ndGggPSAwKTsKICAgICAKLSAgICAvKiBGcmFtZWJ1ZmZlciBv
YmplY3RzICovCi0gICAgV2ViR0xHZXRJbmZvIGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1l
KSBmaW5hbDsKKyAgICAvLyBGcmFtZWJ1ZmZlciBvYmplY3RzCisgICAgV2ViR0xBbnkgZ2V0RnJh
bWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0
YWNobWVudCwgR0MzRGVudW0gcG5hbWUpIGZpbmFsOwogICAgIHZvaWQgYmxpdEZyYW1lYnVmZmVy
KEdDM0RpbnQgc3JjWDAsIEdDM0RpbnQgc3JjWTAsIEdDM0RpbnQgc3JjWDEsIEdDM0RpbnQgc3Jj
WTEsIEdDM0RpbnQgZHN0WDAsIEdDM0RpbnQgZHN0WTAsIEdDM0RpbnQgZHN0WDEsIEdDM0RpbnQg
ZHN0WTEsIEdDM0RiaXRmaWVsZCBtYXNrLCBHQzNEZW51bSBmaWx0ZXIpOwogICAgIHZvaWQgZnJh
bWVidWZmZXJUZXh0dXJlTGF5ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50
LCBHQzNEdWludCB0ZXh0dXJlLCBHQzNEaW50IGxldmVsLCBHQzNEaW50IGxheWVyKTsKLSAgICBX
ZWJHTEdldEluZm8gZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gcG5hbWUpOwotICAgIHZvaWQgaW52YWxp
ZGF0ZUZyYW1lYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgVmVjdG9yPEdDM0RlbnVtPiBhdHRhY2ht
ZW50cyk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlU3ViRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0
LCBWZWN0b3I8R0MzRGVudW0+IGF0dGFjaG1lbnRzLCBHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0Mz
RHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKKyAgICBXZWJHTEFueSBnZXRJbnRlcm5h
bGZvcm1hdFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0
LCBHQzNEZW51bSBwbmFtZSk7CisgICAgdm9pZCBpbnZhbGlkYXRlRnJhbWVidWZmZXIoR0MzRGVu
dW0gdGFyZ2V0LCBjb25zdCBWZWN0b3I8R0MzRGVudW0+JiBhdHRhY2htZW50cyk7CisgICAgdm9p
ZCBpbnZhbGlkYXRlU3ViRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBjb25zdCBWZWN0b3I8
R0MzRGVudW0+JiBhdHRhY2htZW50cywgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7CiAgICAgdm9pZCByZWFkQnVmZmVyKEdDM0RlbnVtIHNy
Yyk7CiAgICAgCi0gICAgLyogUmVuZGVyYnVmZmVyIG9iamVjdHMgKi8KKyAgICAvLyBSZW5kZXJi
dWZmZXIgb2JqZWN0cwogICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdD
M0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIHNhbXBsZXMsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0
LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpOwogICAgIAotICAgIC8qIFRleHR1
cmUgb2JqZWN0cyAqLworICAgIC8vIFRleHR1cmUgb2JqZWN0cwogICAgIHZvaWQgdGV4U3RvcmFn
ZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxG
b3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7CiAgICAgdm9pZCB0ZXhT
dG9yYWdlM0QoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRl
cm5hbEZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEc2l6ZWkg
ZGVwdGgpOwogICAgIHZvaWQgdGV4SW1hZ2UzRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2
ZWwsIEdDM0RpbnQgaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhl
aWdodCwgR0MzRHNpemVpIGRlcHRoLCBHQzNEaW50IGJvcmRlciwgR0MzRGVudW0gZm9ybWF0LCBH
QzNEZW51bSB0eXBlLCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmIHBpeGVscyk7CkBAIC03Niwx
MCArNzUsMTAgQEAgcHVibGljOgogICAgIHZvaWQgY29tcHJlc3NlZFRleEltYWdlM0QoR0MzRGVu
dW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNp
emVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEc2l6ZWkgZGVwdGgsIEdDM0RpbnQgYm9y
ZGVyLCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmIGRhdGEp
OwogICAgIHZvaWQgY29tcHJlc3NlZFRleFN1YkltYWdlM0QoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
aW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB6b2Zm
c2V0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RzaXplaSBkZXB0aCwg
R0MzRGVudW0gZm9ybWF0LCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBSZWZQdHI8QXJyYXlCdWZmZXJW
aWV3PiYmIGRhdGEpOwogICAgIAotICAgIC8qIFByb2dyYW1zIGFuZCBzaGFkZXJzICovCi0gICAg
R0MzRGludCBnZXRGcmFnRGF0YUxvY2F0aW9uKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgU3RyaW5n
IG5hbWUpOworICAgIC8vIFByb2dyYW1zIGFuZCBzaGFkZXJzCisgICAgR0MzRGludCBnZXRGcmFn
RGF0YUxvY2F0aW9uKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgCi0g
ICAgLyogVW5pZm9ybXMgYW5kIGF0dHJpYnV0ZXMgKi8KKyAgICAvLyBVbmlmb3JtcyBhbmQgYXR0
cmlidXRlcwogICAgIHZvaWQgdW5pZm9ybTF1aShXZWJHTFVuaWZvcm1Mb2NhdGlvbiosIEdDM0R1
aW50IHYwKTsKICAgICB2b2lkIHVuaWZvcm0ydWkoV2ViR0xVbmlmb3JtTG9jYXRpb24qLCBHQzNE
dWludCB2MCwgR0MzRHVpbnQgdjEpOwogICAgIHZvaWQgdW5pZm9ybTN1aShXZWJHTFVuaWZvcm1M
b2NhdGlvbiosIEdDM0R1aW50IHYwLCBHQzNEdWludCB2MSwgR0MzRHVpbnQgdjIpOwpAQCAtMTAw
LDcwICs5OSw3MCBAQCBwdWJsaWM6CiAgICAgdm9pZCB2ZXJ0ZXhBdHRyaWJJNHVpdihHQzNEdWlu
dCBpbmRleCwgUmVmUHRyPFVpbnQzMkFycmF5PiYmIHYpOwogICAgIHZvaWQgdmVydGV4QXR0cmli
SVBvaW50ZXIoR0MzRHVpbnQgaW5kZXgsIEdDM0RpbnQgc2l6ZSwgR0MzRGVudW0gdHlwZSwgR0Mz
RHNpemVpIHN0cmlkZSwgR0MzRGludDY0IG9mZnNldCk7CiAgICAgCi0gICAgLyogV3JpdGluZyB0
byB0aGUgZHJhd2luZyBidWZmZXIgKi8KKyAgICAvLyBXcml0aW5nIHRvIHRoZSBkcmF3aW5nIGJ1
ZmZlcgogICAgIHZvaWQgY2xlYXIoR0MzRGJpdGZpZWxkIG1hc2spIGZpbmFsOwogICAgIHZvaWQg
dmVydGV4QXR0cmliRGl2aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcik7CiAg
ICAgdm9pZCBkcmF3QXJyYXlzSW5zdGFuY2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQgZmlyc3Qs
IEdDM0RzaXplaSBjb3VudCwgR0MzRHNpemVpIGluc3RhbmNlQ291bnQpOwogICAgIHZvaWQgZHJh
d0VsZW1lbnRzSW5zdGFuY2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVu
dW0gdHlwZSwgR0MzRGludDY0IG9mZnNldCwgR0MzRHNpemVpIGluc3RhbmNlQ291bnQpOwogICAg
IHZvaWQgZHJhd1JhbmdlRWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHVpbnQgc3RhcnQsIEdD
M0R1aW50IGVuZCwgR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50NjQgb2Zm
c2V0KTsKICAgICAKLSAgICAvKiBNdWx0aXBsZSBSZW5kZXIgVGFyZ2V0cyAqLwotICAgIHZvaWQg
ZHJhd0J1ZmZlcnMoVmVjdG9yPEdDM0RlbnVtPiBidWZmZXJzKTsKKyAgICAvLyBNdWx0aXBsZSBy
ZW5kZXIgdGFyZ2V0cworICAgIHZvaWQgZHJhd0J1ZmZlcnMoY29uc3QgVmVjdG9yPEdDM0RlbnVt
PiYgYnVmZmVycyk7CiAgICAgdm9pZCBjbGVhckJ1ZmZlcml2KEdDM0RlbnVtIGJ1ZmZlciwgR0Mz
RGludCBkcmF3YnVmZmVyLCBSZWZQdHI8SW50MzJBcnJheT4mJiB2YWx1ZSk7CiAgICAgdm9pZCBj
bGVhckJ1ZmZlcnVpdihHQzNEZW51bSBidWZmZXIsIEdDM0RpbnQgZHJhd2J1ZmZlciwgUmVmUHRy
PFVpbnQzMkFycmF5PiYmIHZhbHVlKTsKICAgICB2b2lkIGNsZWFyQnVmZmVyZnYoR0MzRGVudW0g
YnVmZmVyLCBHQzNEaW50IGRyYXdidWZmZXIsIFJlZlB0cjxGbG9hdDMyQXJyYXk+JiYgdmFsdWUp
OwogICAgIHZvaWQgY2xlYXJCdWZmZXJmaShHQzNEZW51bSBidWZmZXIsIEdDM0RpbnQgZHJhd2J1
ZmZlciwgR0MzRGZsb2F0IGRlcHRoLCBHQzNEaW50IHN0ZW5jaWwpOwogICAgIAotICAgIC8qIFF1
ZXJ5IE9iamVjdHMgKi8KKyAgICAvLyBRdWVyeSBvYmplY3RzCiAgICAgUmVmUHRyPFdlYkdMUXVl
cnk+IGNyZWF0ZVF1ZXJ5KCk7Ci0gICAgdm9pZCBkZWxldGVRdWVyeShXZWJHTFF1ZXJ5KiBxdWVy
eSk7Ci0gICAgR0MzRGJvb2xlYW4gaXNRdWVyeShXZWJHTFF1ZXJ5KiBxdWVyeSk7Ci0gICAgdm9p
ZCBiZWdpblF1ZXJ5KEdDM0RlbnVtIHRhcmdldCwgV2ViR0xRdWVyeSogcXVlcnkpOworICAgIHZv
aWQgZGVsZXRlUXVlcnkoV2ViR0xRdWVyeSopOworICAgIEdDM0Rib29sZWFuIGlzUXVlcnkoV2Vi
R0xRdWVyeSopOworICAgIHZvaWQgYmVnaW5RdWVyeShHQzNEZW51bSB0YXJnZXQsIFdlYkdMUXVl
cnkqKTsKICAgICB2b2lkIGVuZFF1ZXJ5KEdDM0RlbnVtIHRhcmdldCk7CiAgICAgUmVmUHRyPFdl
YkdMUXVlcnk+IGdldFF1ZXJ5KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOwotICAg
IFdlYkdMR2V0SW5mbyBnZXRRdWVyeVBhcmFtZXRlcihXZWJHTFF1ZXJ5KiBxdWVyeSwgR0MzRGVu
dW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdMUXVlcnkqLCBH
QzNEZW51bSBwbmFtZSk7CiAgICAgCi0gICAgLyogU2FtcGxlciBPYmplY3RzICovCisgICAgLy8g
U2FtcGxlciBvYmplY3RzCiAgICAgUmVmUHRyPFdlYkdMU2FtcGxlcj4gY3JlYXRlU2FtcGxlcigp
OwotICAgIHZvaWQgZGVsZXRlU2FtcGxlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIpOwotICAgIEdD
M0Rib29sZWFuIGlzU2FtcGxlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIpOwotICAgIHZvaWQgYmlu
ZFNhbXBsZXIoR0MzRHVpbnQgdW5pdCwgV2ViR0xTYW1wbGVyKiBzYW1wbGVyKTsKLSAgICB2b2lk
IHNhbXBsZXJQYXJhbWV0ZXJpKFdlYkdMU2FtcGxlciogc2FtcGxlciwgR0MzRGVudW0gcG5hbWUs
IEdDM0RpbnQgcGFyYW0pOwotICAgIHZvaWQgc2FtcGxlclBhcmFtZXRlcmYoV2ViR0xTYW1wbGVy
KiBzYW1wbGVyLCBHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0IHBhcmFtKTsKLSAgICBXZWJHTEdl
dEluZm8gZ2V0U2FtcGxlclBhcmFtZXRlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIsIEdDM0RlbnVt
IHBuYW1lKTsKKyAgICB2b2lkIGRlbGV0ZVNhbXBsZXIoV2ViR0xTYW1wbGVyKik7CisgICAgR0Mz
RGJvb2xlYW4gaXNTYW1wbGVyKFdlYkdMU2FtcGxlciopOworICAgIHZvaWQgYmluZFNhbXBsZXIo
R0MzRHVpbnQgdW5pdCwgV2ViR0xTYW1wbGVyKik7CisgICAgdm9pZCBzYW1wbGVyUGFyYW1ldGVy
aShXZWJHTFNhbXBsZXIqLCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7CisgICAgdm9p
ZCBzYW1wbGVyUGFyYW1ldGVyZihXZWJHTFNhbXBsZXIqLCBHQzNEZW51bSBwbmFtZSwgR0MzRGZs
b2F0IHBhcmFtKTsKKyAgICBXZWJHTEFueSBnZXRTYW1wbGVyUGFyYW1ldGVyKFdlYkdMU2FtcGxl
ciosIEdDM0RlbnVtIHBuYW1lKTsKICAgICAKLSAgICAvKiBTeW5jIG9iamVjdHMgKi8KKyAgICAv
LyBTeW5jIG9iamVjdHMKICAgICBSZWZQdHI8V2ViR0xTeW5jPiBmZW5jZVN5bmMoR0MzRGVudW0g
Y29uZGl0aW9uLCBHQzNEYml0ZmllbGQgZmxhZ3MpOwotICAgIEdDM0Rib29sZWFuIGlzU3luYyhX
ZWJHTFN5bmMqIHN5bmMpOwotICAgIHZvaWQgZGVsZXRlU3luYyhXZWJHTFN5bmMqIHN5bmMpOwot
ICAgIEdDM0RlbnVtIGNsaWVudFdhaXRTeW5jKFdlYkdMU3luYyogc3luYywgR0MzRGJpdGZpZWxk
IGZsYWdzLCBHQzNEdWludDY0IHRpbWVvdXQpOwotICAgIHZvaWQgd2FpdFN5bmMoV2ViR0xTeW5j
KiBzeW5jLCBHQzNEYml0ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7Ci0gICAgV2Vi
R0xHZXRJbmZvIGdldFN5bmNQYXJhbWV0ZXIoV2ViR0xTeW5jKiBzeW5jLCBHQzNEZW51bSBwbmFt
ZSk7CisgICAgR0MzRGJvb2xlYW4gaXNTeW5jKFdlYkdMU3luYyopOworICAgIHZvaWQgZGVsZXRl
U3luYyhXZWJHTFN5bmMqKTsKKyAgICBHQzNEZW51bSBjbGllbnRXYWl0U3luYyhXZWJHTFN5bmMq
LCBHQzNEYml0ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7CisgICAgdm9pZCB3YWl0
U3luYyhXZWJHTFN5bmMqLCBHQzNEYml0ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7
CisgICAgV2ViR0xBbnkgZ2V0U3luY1BhcmFtZXRlcihXZWJHTFN5bmMqLCBHQzNEZW51bSBwbmFt
ZSk7CiAgICAgCi0gICAgLyogVHJhbnNmb3JtIEZlZWRiYWNrICovCisgICAgLy8gVHJhbnNmb3Jt
IGZlZWRiYWNrCiAgICAgUmVmUHRyPFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+IGNyZWF0ZVRyYW5z
Zm9ybUZlZWRiYWNrKCk7CiAgICAgdm9pZCBkZWxldGVUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRy
YW5zZm9ybUZlZWRiYWNrKiBpZCk7CiAgICAgR0MzRGJvb2xlYW4gaXNUcmFuc2Zvcm1GZWVkYmFj
ayhXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKiBpZCk7CiAgICAgdm9pZCBiaW5kVHJhbnNmb3JtRmVl
ZGJhY2soR0MzRGVudW0gdGFyZ2V0LCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKiBpZCk7CiAgICAg
dm9pZCBiZWdpblRyYW5zZm9ybUZlZWRiYWNrKEdDM0RlbnVtIHByaW1pdGl2ZU1vZGUpOwogICAg
IHZvaWQgZW5kVHJhbnNmb3JtRmVlZGJhY2soKTsKLSAgICB2b2lkIHRyYW5zZm9ybUZlZWRiYWNr
VmFyeWluZ3MoV2ViR0xQcm9ncmFtKiwgVmVjdG9yPFN0cmluZz4gdmFyeWluZ3MsIEdDM0RlbnVt
IGJ1ZmZlck1vZGUpOworICAgIHZvaWQgdHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncyhXZWJHTFBy
b2dyYW0qLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdmFyeWluZ3MsIEdDM0RlbnVtIGJ1ZmZlck1v
ZGUpOwogICAgIFJlZlB0cjxXZWJHTEFjdGl2ZUluZm8+IGdldFRyYW5zZm9ybUZlZWRiYWNrVmFy
eWluZyhXZWJHTFByb2dyYW0qLCBHQzNEdWludCBpbmRleCk7CiAgICAgdm9pZCBwYXVzZVRyYW5z
Zm9ybUZlZWRiYWNrKCk7CiAgICAgdm9pZCByZXN1bWVUcmFuc2Zvcm1GZWVkYmFjaygpOwogICAg
IAotICAgIC8qIFVuaWZvcm0gQnVmZmVyIE9iamVjdHMgYW5kIFRyYW5zZm9ybSBGZWVkYmFjayBC
dWZmZXJzICovCi0gICAgdm9pZCBiaW5kQnVmZmVyQmFzZShHQzNEZW51bSB0YXJnZXQsIEdDM0R1
aW50IGluZGV4LCBXZWJHTEJ1ZmZlciogYnVmZmVyKTsKLSAgICB2b2lkIGJpbmRCdWZmZXJSYW5n
ZShHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4LCBXZWJHTEJ1ZmZlciogYnVmZmVyLCBH
QzNEaW50NjQgb2Zmc2V0LCBHQzNEaW50NjQgc2l6ZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWludCBpbmRleCk7Ci0gICAgVWlu
dDMyQXJyYXkqIGdldFVuaWZvcm1JbmRpY2VzKFdlYkdMUHJvZ3JhbSosIFZlY3RvcjxTdHJpbmc+
IHVuaWZvcm1OYW1lcyk7CisgICAgLy8gVW5pZm9ybSBidWZmZXIgb2JqZWN0cyBhbmQgdHJhbnNm
b3JtIGZlZWRiYWNrIGJ1ZmZlcnMKKyAgICB2b2lkIGJpbmRCdWZmZXJCYXNlKEdDM0RlbnVtIHRh
cmdldCwgR0MzRHVpbnQgaW5kZXgsIFdlYkdMQnVmZmVyKik7CisgICAgdm9pZCBiaW5kQnVmZmVy
UmFuZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWludCBpbmRleCwgV2ViR0xCdWZmZXIqLCBHQzNE
aW50NjQgb2Zmc2V0LCBHQzNEaW50NjQgc2l6ZSk7CisgICAgV2ViR0xBbnkgZ2V0SW5kZXhlZFBh
cmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4KTsKKyAgICBVaW50MzJBcnJh
eSogZ2V0VW5pZm9ybUluZGljZXMoV2ViR0xQcm9ncmFtKiwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IHVuaWZvcm1OYW1lcyk7CiAgICAgSW50MzJBcnJheSogZ2V0QWN0aXZlVW5pZm9ybXMoV2ViR0xQ
cm9ncmFtKiwgUmVmUHRyPFVpbnQzMkFycmF5PiYmIHVuaWZvcm1JbmRpY2VzLCBHQzNEZW51bSBw
bmFtZSk7Ci0gICAgR0MzRHVpbnQgZ2V0VW5pZm9ybUJsb2NrSW5kZXgoV2ViR0xQcm9ncmFtKiwg
U3RyaW5nIHVuaWZvcm1CbG9ja05hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRBY3RpdmVVbmlm
b3JtQmxvY2tQYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5k
ZXgsIEdDM0RlbnVtIHBuYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0QWN0aXZlVW5pZm9ybUJs
b2NrTmFtZShXZWJHTFByb2dyYW0qLCBHQzNEdWludCB1bmlmb3JtQmxvY2tJbmRleCk7CisgICAg
R0MzRHVpbnQgZ2V0VW5pZm9ybUJsb2NrSW5kZXgoV2ViR0xQcm9ncmFtKiwgY29uc3QgU3RyaW5n
JiB1bmlmb3JtQmxvY2tOYW1lKTsKKyAgICBXZWJHTEFueSBnZXRBY3RpdmVVbmlmb3JtQmxvY2tQ
YXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdDM0Rl
bnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBnZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKFdlYkdM
UHJvZ3JhbSosIEdDM0R1aW50IHVuaWZvcm1CbG9ja0luZGV4KTsKICAgICB2b2lkIHVuaWZvcm1C
bG9ja0JpbmRpbmcoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgsIEdD
M0R1aW50IHVuaWZvcm1CbG9ja0JpbmRpbmcpOwogICAgIAotICAgIC8qIFZlcnRleCBBcnJheSBP
YmplY3RzICovCisgICAgLy8gVmVydGV4IGFycmF5IG9iamVjdHMKICAgICBSZWZQdHI8V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdD4gY3JlYXRlVmVydGV4QXJyYXkoKTsKICAgICB2b2lkIGRlbGV0ZVZl
cnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIHZlcnRleEFycmF5KTsKICAgICBHQzNE
Ym9vbGVhbiBpc1ZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIHZlcnRleEFycmF5
KTsKQEAgLTE3MiwxMCArMTcxLDEwIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBpc1dl
YkdMMigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIC8qIEV4dGVuc2lvbnMg
Ki8KKyAgICAvLyBFeHRlbnNpb25zCiAgICAgV2ViR0xFeHRlbnNpb24qIGdldEV4dGVuc2lvbihj
b25zdCBTdHJpbmcmKSBmaW5hbDsKICAgICBWZWN0b3I8U3RyaW5nPiBnZXRTdXBwb3J0ZWRFeHRl
bnNpb25zKCkgZmluYWw7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFBhcmFtZXRlcihHQzNEZW51bSBw
bmFtZSkgZmluYWw7CisgICAgV2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSBm
aW5hbDsKIAogICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZShHQzNEZW51bSB0YXJnZXQsIEdD
M0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQp
IGZpbmFsOwogICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1vZGUpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3
ZTRmNTY3Mjg3MWIzODBlZDhkMjBlMDc2YTQ5OTVmZmQxMzE3ZGQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5jcHAKQEAgLTAsMCArMSwxMjAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xBbnkuaCIKKworI2lmIEVOQUJMRShXRUJHTCkK
KworI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTV2ViR0xCdWZmZXIuaCIK
KyNpbmNsdWRlICJKU1dlYkdMRnJhbWVidWZmZXIuaCIKKyNpbmNsdWRlICJKU1dlYkdMUHJvZ3Jh
bS5oIgorI2luY2x1ZGUgIkpTV2ViR0xSZW5kZXJidWZmZXIuaCIKKyNpbmNsdWRlICJKU1dlYkdM
VGV4dHVyZS5oIgorI2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgorI2lu
Y2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CisKKyNpZiBFTkFCTEUoV0VCR0wyKQorI2luY2x1ZGUgIkpT
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworLy8gRklYTUU6IFRoaXMgbGlrZWx5IGNhbiBiZSBh
dXRvZ2VuZXJhdGVkIHdpdGggYSBiaXQgb2Ygd29yay4KK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUm
IHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25zdCBXZWJHTEFueSYg
YW55KQoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKGFueSwKKyAgICAgICAgW10gKHN0ZDo6
bnVsbHB0cl90KSB7CisgICAgICAgICAgICByZXR1cm4ganNOdWxsKCk7CisgICAgICAgIH0sCisg
ICAgICAgIFtdIChib29sIHZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4ganNCb29sZWFuKHZh
bHVlKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10gKGludCB2YWx1ZSkgeworICAgICAgICAgICAg
cmV0dXJuIGpzTnVtYmVyKHZhbHVlKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10gKHVuc2lnbmVk
IHZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIodmFsdWUpOworICAgICAgICB9
LAorICAgICAgICBbXSAobG9uZyBsb25nIHZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4ganNO
dW1iZXIodmFsdWUpOworICAgICAgICB9LAorICAgICAgICBbXSAoZmxvYXQgdmFsdWUpIHsKKyAg
ICAgICAgICAgIHJldHVybiBqc051bWJlcih2YWx1ZSk7CisgICAgICAgIH0sCisgICAgICAgIFsm
XSAoY29uc3QgU3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0
aENhY2hlKCZzdGF0ZSwgdmFsdWUpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFZl
Y3Rvcjxib29sPiYgdmFsdWVzKSB7CisgICAgICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBs
aXN0OworICAgICAgICAgICAgZm9yIChhdXRvJiB2YWx1ZSA6IHZhbHVlcykKKyAgICAgICAgICAg
ICAgICBsaXN0LmFwcGVuZChqc0Jvb2xlYW4odmFsdWUpKTsKKyAgICAgICAgICAgIHJldHVybiBj
b25zdHJ1Y3RBcnJheSgmc3RhdGUsIDAsICZnbG9iYWxPYmplY3QsIGxpc3QpOworICAgICAgICB9
LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxGbG9hdDMyQXJyYXk+JiBhcnJheSkgeworICAg
ICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBhcnJheS5nZXQoKSk7
CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPEludDMyQXJyYXk+JiBhcnJh
eSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBhcnJh
eS5nZXQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFVpbnQ4QXJy
YXk+JiBhcnJheSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2Jq
ZWN0LCBhcnJheS5nZXQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRy
PFVpbnQzMkFycmF5PiYgYXJyYXkpIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwg
Jmdsb2JhbE9iamVjdCwgYXJyYXkuZ2V0KCkpOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNv
bnN0IFJlZlB0cjxXZWJHTEJ1ZmZlcj4mIGJ1ZmZlcikgeworICAgICAgICAgICAgcmV0dXJuIHRv
SlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBidWZmZXIuZ2V0KCkpOworICAgICAgICB9LAorICAg
ICAgICBbJl0gKGNvbnN0IFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiYgYnVmZmVyKSB7CisgICAg
ICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIGJ1ZmZlci5nZXQoKSk7
CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdlYkdMUHJvZ3JhbT4mIHBy
b2dyYW0pIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwg
cHJvZ3JhbS5nZXQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdl
YkdMUmVuZGVyYnVmZmVyPiYgYnVmZmVyKSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3Rh
dGUsICZnbG9iYWxPYmplY3QsIGJ1ZmZlci5nZXQoKSk7CisgICAgICAgIH0sCisgICAgICAgIFsm
XSAoY29uc3QgUmVmUHRyPFdlYkdMVGV4dHVyZT4mIHRleHR1cmUpIHsKKyAgICAgICAgICAgIHJl
dHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgdGV4dHVyZS5nZXQoKSk7CisgICAgICAg
IH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+
JiBhcnJheSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0
LCBhcnJheS5nZXQoKSk7CisgICAgICAgIH0KKyNpZiBFTkFCTEUoV0VCR0wyKQorICAgICAgICAs
CisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+JiBhcnJh
eSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBhcnJh
eS5nZXQoKSk7CisgICAgICAgIH0KKyNlbmRpZgorICAgICk7Cit9CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzdiYjdmOTg3Mzk0
ZjI3M2E3NGI4ODFiMDA3ODBlNzczYjYwMjYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBbnkuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoV0VCR0wpCisKKyNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgorI2luY2x1ZGUgIldlYkdM
RnJhbWVidWZmZXIuaCIKKyNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKKyNpbmNsdWRlICJXZWJH
TFJlbmRlcmJ1ZmZlci5oIgorI2luY2x1ZGUgIldlYkdMVGV4dHVyZS5oIgorI2luY2x1ZGUgIldl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKKyNpbmNsdWRlIDxydW50aW1lL0Zsb2F0MzJBcnJh
eS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSW50MzJBcnJheS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUv
VWludDMyQXJyYXkuaD4KKyNpbmNsdWRlIDxydW50aW1lL1VpbnQ4QXJyYXkuaD4KKworI2lmIEVO
QUJMRShXRUJHTDIpCisjaW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oIgorI2VuZGlm
CisKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgRXhlY1N0YXRlOworY2xhc3MgSlNWYWx1ZTsKK30K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKKwordXNp
bmcgV2ViR0xBbnkgPSBWYXJpYW50PHN0ZDo6bnVsbHB0cl90LCBib29sLCBpbnQsIHVuc2lnbmVk
LCBsb25nIGxvbmcsIGZsb2F0LCBTdHJpbmcsIFZlY3Rvcjxib29sPiwKKyAgICBSZWZQdHI8Rmxv
YXQzMkFycmF5PiwKKyAgICBSZWZQdHI8SW50MzJBcnJheT4sCisgICAgUmVmUHRyPFVpbnQzMkFy
cmF5PiwKKyAgICBSZWZQdHI8VWludDhBcnJheT4sCisgICAgUmVmUHRyPFdlYkdMQnVmZmVyPiwK
KyAgICBSZWZQdHI8V2ViR0xGcmFtZWJ1ZmZlcj4sCisgICAgUmVmUHRyPFdlYkdMUHJvZ3JhbT4s
CisgICAgUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPiwKKyAgICBSZWZQdHI8V2ViR0xUZXh0dXJl
PiwKKyAgICBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4KKyNpZiBFTkFCTEUoV0VC
R0wyKQorICAgICwgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+CisjZW5kaWYKKz47CisK
K0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlJiwgSlNET01HbG9iYWxPYmplY3QmLCBj
b25zdCBXZWJHTEFueSYpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCmluZGV4IGRmMTc3MTFkYjBi
ODllYWQwMzhmNzNjMzFkMjJmZTFlMzJhNWUzY2MuLmJkYjgxZDZlNTVmZDc0M2VlYjdkMDdhMzJi
NDAyNDMwZTM5YzY5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZl
ci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjQsMTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYkdMQnVmZmVyLmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNpbmNsdWRlICJXZWJH
TEJ1ZmZlci5oIgotCiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKICNpbmNsdWRlICJX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAKQEAgLTQxLDkgKzQwLDYgQEAgUmVmPFdlYkdM
QnVmZmVyPiBXZWJHTEJ1ZmZlcjo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0
eCkKIAogV2ViR0xCdWZmZXI6OldlYkdMQnVmZmVyKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
IGN0eCkKICAgICA6IFdlYkdMU2hhcmVkT2JqZWN0KGN0eCkKLSAgICAsIG1fdGFyZ2V0KDApCi0g
ICAgLCBtX2J5dGVMZW5ndGgoMCkKLSAgICAsIG1fbmV4dEF2YWlsYWJsZUNhY2hlRW50cnkoMCkK
IHsKICAgICBzZXRPYmplY3QoY3R4LmdyYXBoaWNzQ29udGV4dDNEKCktPmNyZWF0ZUJ1ZmZlcigp
KTsKICAgICBjbGVhckNhY2hlZE1heEluZGljZXMoKTsKQEAgLTU2LDcgKzUyLDcgQEAgV2ViR0xC
dWZmZXI6On5XZWJHTEJ1ZmZlcigpCiAKIHZvaWQgV2ViR0xCdWZmZXI6OmRlbGV0ZU9iamVjdElt
cGwoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzZCwgUGxhdGZvcm0zRE9iamVjdCBvYmplY3Qp
CiB7Ci0gICAgICBjb250ZXh0M2QtPmRlbGV0ZUJ1ZmZlcihvYmplY3QpOworICAgIGNvbnRleHQz
ZC0+ZGVsZXRlQnVmZmVyKG9iamVjdCk7CiB9CiAKIGJvb2wgV2ViR0xCdWZmZXI6OmFzc29jaWF0
ZUJ1ZmZlckRhdGFJbXBsKGNvbnN0IHZvaWQqIGRhdGEsIEdDM0RzaXplaXB0ciBieXRlTGVuZ3Ro
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmgKaW5kZXggMWI0MTRlOGZj
OWExMzVhOWNlYzBiY2Q2YzZmMjJlMDljMjc3MWQ0ZS4uZDNiZDlhMDM4ZWNiOGQ3MGM3ZDA0Nzhl
YzQwOGM5MjFhNDc5MzBlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZl
ci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTM3LDkgKzM3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTEJ1ZmZl
ciBmaW5hbCA6IHB1YmxpYyBXZWJHTFNoYXJlZE9iamVjdCB7CiBwdWJsaWM6Ci0gICAgdmlydHVh
bCB+V2ViR0xCdWZmZXIoKTsKLQogICAgIHN0YXRpYyBSZWY8V2ViR0xCdWZmZXI+IGNyZWF0ZShX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CisgICAgdmlydHVhbCB+V2ViR0xCdWZmZXIoKTsK
IAogICAgIGJvb2wgYXNzb2NpYXRlQnVmZmVyRGF0YShHQzNEc2l6ZWlwdHIgc2l6ZSk7CiAgICAg
Ym9vbCBhc3NvY2lhdGVCdWZmZXJEYXRhKEpTQzo6QXJyYXlCdWZmZXIqKTsKQEAgLTcwLDEyICs2
OSwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29u
dGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgYm9v
bCBpc0J1ZmZlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLQotICAgIEdDM0Rl
bnVtIG1fdGFyZ2V0OworICAgIEdDM0RlbnVtIG1fdGFyZ2V0IHsgMCB9OwogCiAgICAgUmVmUHRy
PEpTQzo6QXJyYXlCdWZmZXI+IG1fZWxlbWVudEFycmF5QnVmZmVyOwotICAgIEdDM0RzaXplaXB0
ciBtX2J5dGVMZW5ndGg7CisgICAgR0MzRHNpemVpcHRyIG1fYnl0ZUxlbmd0aCB7IDAgfTsKIAog
ICAgIC8vIE9wdGltaXphdGlvbiBmb3IgaW5kZXggdmFsaWRhdGlvbi4gRm9yIGVhY2ggdHlwZSBv
ZiBpbmRleAogICAgIC8vIChpLmUuLCBVTlNJR05FRF9TSE9SVCksIGNhY2hlIHRoZSBtYXhpbXVt
IGluZGV4IGluIHRoZQpAQCAtOTIsNyArODksNyBAQCBwcml2YXRlOgogICAgIC8vIGFuZCBVTlNJ
R05FRF9TSE9SVCksIGJ1dCBtaWdodCBhcyB3ZWxsIGxlYXZlIG9wZW4gdGhlCiAgICAgLy8gcG9z
c2liaWxpdHkgb2YgYWRkaW5nIG90aGVycy4KICAgICBNYXhJbmRleENhY2hlRW50cnkgbV9tYXhJ
bmRleENhY2hlWzRdOwotICAgIHVuc2lnbmVkIGludCBtX25leHRBdmFpbGFibGVDYWNoZUVudHJ5
OworICAgIHVuc2lnbmVkIG1fbmV4dEF2YWlsYWJsZUNhY2hlRW50cnkgeyAwIH07CiAKICAgICAv
LyBDbGVhcnMgYWxsIG9mIHRoZSBjYWNoZWQgbWF4IGluZGljZXMuCiAgICAgdm9pZCBjbGVhckNh
Y2hlZE1heEluZGljZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQ29udGV4dEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
Q29udGV4dEdyb3VwLmNwcAppbmRleCAyMTMzZjMzZWZjOGNlMDk4N2I0OTgzM2NiYzEwZmM3NTkx
MmEwODIyLi45ZGRlZjE1OGNkMGFjZGU2YjY4Y2FkZGQyYmM5M2NlZDVhODNkZWZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDEx
ICsyNCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTENv
bnRleHRHcm91cC5oIgogCiAjaWYgRU5BQkxFKFdFQkdMKQogCi0jaW5jbHVkZSAiV2ViR0xDb250
ZXh0R3JvdXAuaCIKLQogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAi
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgogI2luY2x1ZGUgIldlYkdMU2hhcmVkT2JqZWN0
LmgiCkBAIC0zNywxMSArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlZjxXZWJHTENv
bnRleHRHcm91cD4gV2ViR0xDb250ZXh0R3JvdXA6OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgV2ViR0xDb250ZXh0R3JvdXAoKSk7Ci19Ci0KLVdlYkdMQ29udGV4dEdyb3Vw
OjpXZWJHTENvbnRleHRHcm91cCgpCi17CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR0xD
b250ZXh0R3JvdXApOwogfQogCiBXZWJHTENvbnRleHRHcm91cDo6fldlYkdMQ29udGV4dEdyb3Vw
KCkKQEAgLTQ5LDQzICs0NCw0MCBAQCBXZWJHTENvbnRleHRHcm91cDo6fldlYkdMQ29udGV4dEdy
b3VwKCkKICAgICBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCk7CiB9CiAKLUdyYXBoaWNzQ29u
dGV4dDNEKiBXZWJHTENvbnRleHRHcm91cDo6Z2V0QUdyYXBoaWNzQ29udGV4dDNEKCkKK0dyYXBo
aWNzQ29udGV4dDNEJiBXZWJHTENvbnRleHRHcm91cDo6Z2V0QUdyYXBoaWNzQ29udGV4dDNEKCkK
IHsKICAgICBBU1NFUlQoIW1fY29udGV4dHMuaXNFbXB0eSgpKTsKLSAgICBIYXNoU2V0PFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UqPjo6aXRlcmF0b3IgaXQgPSBtX2NvbnRleHRzLmJlZ2luKCk7
Ci0gICAgcmV0dXJuICgqaXQpLT5ncmFwaGljc0NvbnRleHQzRCgpOworICAgIHJldHVybiAqKCpt
X2NvbnRleHRzLmJlZ2luKCkpLT5ncmFwaGljc0NvbnRleHQzRCgpOwogfQogCi12b2lkIFdlYkdM
Q29udGV4dEdyb3VwOjphZGRDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNvbnRl
eHQpCit2b2lkIFdlYkdMQ29udGV4dEdyb3VwOjphZGRDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UmIGNvbnRleHQpCiB7Ci0gICAgbV9jb250ZXh0cy5hZGQoY29udGV4dCk7CisgICAg
bV9jb250ZXh0cy5hZGQoJmNvbnRleHQpOwogfQogCi12b2lkIFdlYkdMQ29udGV4dEdyb3VwOjpy
ZW1vdmVDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNvbnRleHQpCit2b2lkIFdl
YkdMQ29udGV4dEdyb3VwOjpyZW1vdmVDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
IGNvbnRleHQpCiB7CiAgICAgLy8gV2UgbXVzdCBjYWxsIGRldGFjaEFuZFJlbW92ZUFsbE9iamVj
dHMgYmVmb3JlIHJlbW92aW5nIHRoZSBsYXN0IGNvbnRleHQuCi0gICAgaWYgKG1fY29udGV4dHMu
c2l6ZSgpID09IDEgJiYgbV9jb250ZXh0cy5jb250YWlucyhjb250ZXh0KSkKKyAgICBpZiAobV9j
b250ZXh0cy5zaXplKCkgPT0gMSAmJiBtX2NvbnRleHRzLmNvbnRhaW5zKCZjb250ZXh0KSkKICAg
ICAgICAgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpOwogCi0gICAgbV9jb250ZXh0cy5yZW1v
dmUoY29udGV4dCk7CisgICAgbV9jb250ZXh0cy5yZW1vdmUoJmNvbnRleHQpOwogfQogCi12b2lk
IFdlYkdMQ29udGV4dEdyb3VwOjpyZW1vdmVPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVj
dCkKK3ZvaWQgV2ViR0xDb250ZXh0R3JvdXA6OnJlbW92ZU9iamVjdChXZWJHTFNoYXJlZE9iamVj
dCYgb2JqZWN0KQogewotICAgIG1fZ3JvdXBPYmplY3RzLnJlbW92ZShvYmplY3QpOworICAgIG1f
Z3JvdXBPYmplY3RzLnJlbW92ZSgmb2JqZWN0KTsKIH0KIAotdm9pZCBXZWJHTENvbnRleHRHcm91
cDo6YWRkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMQ29udGV4
dEdyb3VwOjphZGRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmIG9iamVjdCkKIHsKLSAgICBtX2dy
b3VwT2JqZWN0cy5hZGQob2JqZWN0KTsKKyAgICBtX2dyb3VwT2JqZWN0cy5hZGQoJm9iamVjdCk7
CiB9CiAKIHZvaWQgV2ViR0xDb250ZXh0R3JvdXA6OmRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMo
KQogewotICAgIHdoaWxlICghbV9ncm91cE9iamVjdHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIEhh
c2hTZXQ8V2ViR0xTaGFyZWRPYmplY3QqPjo6aXRlcmF0b3IgaXQgPSBtX2dyb3VwT2JqZWN0cy5i
ZWdpbigpOwotICAgICAgICAoKml0KS0+ZGV0YWNoQ29udGV4dEdyb3VwKCk7Ci0gICAgfQorICAg
IHdoaWxlICghbV9ncm91cE9iamVjdHMuaXNFbXB0eSgpKQorICAgICAgICAoKm1fZ3JvdXBPYmpl
Y3RzLmJlZ2luKCkpLT5kZXRhY2hDb250ZXh0R3JvdXAoKTsKIH0KIAogdm9pZCBXZWJHTENvbnRl
eHRHcm91cDo6bG9zZUNvbnRleHRHcm91cChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpMb3N0
Q29udGV4dE1vZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQ29udGV4dEdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENv
bnRleHRHcm91cC5oCmluZGV4IDlkMDEwYmZjYzIwOTk2YTE0NjQ4NTdhZmNlZWYzYzRhYTdhNmI5
YjcuLjExYjczNzAzMjI2ZTExYmUzZTU0ZjZlYmM1NjIyMjBjMmQxNTVhNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwzNSArMjYsMjYg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5o
IgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKLWNsYXNz
IFdlYkdMRXh0ZW5zaW9uOwotY2xhc3MgV2ViR0xTaGFyZWRPYmplY3Q7Ci1jbGFzcyBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOwotCi1jbGFzcyBXZWJHTENvbnRleHRHcm91cCBmaW5hbCA6IHB1
YmxpYyBSZWZDb3VudGVkPFdlYkdMQ29udGV4dEdyb3VwPiB7CitjbGFzcyBXZWJHTENvbnRleHRH
cm91cCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkdMQ29udGV4dEdyb3VwPiB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxXZWJHTENvbnRleHRHcm91cD4gY3JlYXRlKCk7CiAgICAgfldlYkdMQ29u
dGV4dEdyb3VwKCk7CiAKLSAgICB2b2lkIGFkZENvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZSopOwotICAgIHZvaWQgcmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Kik7CisgICAgdm9pZCBhZGRDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKKyAg
ICB2b2lkIHJlbW92ZUNvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwogCi0gICAg
dm9pZCBhZGRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqKTsKLSAgICB2b2lkIHJlbW92ZU9iamVj
dChXZWJHTFNoYXJlZE9iamVjdCopOworICAgIHZvaWQgYWRkT2JqZWN0KFdlYkdMU2hhcmVkT2Jq
ZWN0Jik7CisgICAgdm9pZCByZW1vdmVPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmKTsKIAotICAg
IEdyYXBoaWNzQ29udGV4dDNEKiBnZXRBR3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICBHcmFwaGlj
c0NvbnRleHQzRCYgZ2V0QUdyYXBoaWNzQ29udGV4dDNEKCk7CiAKICAgICB2b2lkIGxvc2VDb250
ZXh0R3JvdXAoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6TG9zdENvbnRleHRNb2RlKTsKIAot
ICBwcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBXZWJHTE9iamVjdDsKLQotICAgIFdlYkdMQ29u
dGV4dEdyb3VwKCk7Citwcml2YXRlOgorICAgIFdlYkdMQ29udGV4dEdyb3VwKCkgPSBkZWZhdWx0
OwogCiAgICAgdm9pZCBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCmluZGV4IDUyM2U2
ZTY0MmQ3NDliNjAyMmYzNzczYTg4ZWRmNGVhMGVjYjliYjguLjZhMWM3YWIyOTk5Yzg0NWNlOWZl
NDMxMjkxNDBlYzNjYmJjNDA1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xDb250ZXh0T2JqZWN0LmNwcApAQCAtMjQsMjUgKzI0LDIzIEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMQ29udGV4dE9iamVjdC5oIgogCiAjaWYg
RU5BQkxFKFdFQkdMKQogCi0jaW5jbHVkZSAiV2ViR0xDb250ZXh0T2JqZWN0LmgiCi0KICNpbmNs
dWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogV2ViR0xDb250ZXh0T2JqZWN0OjpXZWJHTENvbnRleHRPYmplY3QoV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYgY29udGV4dCkKLSAgICA6IFdlYkdMT2JqZWN0KGNvbnRleHQpCi0gICAgLCBt
X2NvbnRleHQoJmNvbnRleHQpCisgICAgOiBtX2NvbnRleHQoJmNvbnRleHQpCiB7CiB9CiAKIFdl
YkdMQ29udGV4dE9iamVjdDo6fldlYkdMQ29udGV4dE9iamVjdCgpCiB7CiAgICAgaWYgKG1fY29u
dGV4dCkKLSAgICAgICAgbV9jb250ZXh0LT5yZW1vdmVDb250ZXh0T2JqZWN0KHRoaXMpOworICAg
ICAgICBtX2NvbnRleHQtPnJlbW92ZUNvbnRleHRPYmplY3QoKnRoaXMpOwogfQogCiB2b2lkIFdl
YkdMQ29udGV4dE9iamVjdDo6ZGV0YWNoQ29udGV4dCgpCkBAIC01MCwxNCArNDgsMTQgQEAgdm9p
ZCBXZWJHTENvbnRleHRPYmplY3Q6OmRldGFjaENvbnRleHQoKQogICAgIGRldGFjaCgpOwogICAg
IGlmIChtX2NvbnRleHQpIHsKICAgICAgICAgZGVsZXRlT2JqZWN0KG1fY29udGV4dC0+Z3JhcGhp
Y3NDb250ZXh0M0QoKSk7Ci0gICAgICAgIG1fY29udGV4dC0+cmVtb3ZlQ29udGV4dE9iamVjdCh0
aGlzKTsKLSAgICAgICAgbV9jb250ZXh0ID0gMDsKKyAgICAgICAgbV9jb250ZXh0LT5yZW1vdmVD
b250ZXh0T2JqZWN0KCp0aGlzKTsKKyAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKICAgICB9
CiB9CiAKIEdyYXBoaWNzQ29udGV4dDNEKiBXZWJHTENvbnRleHRPYmplY3Q6OmdldEFHcmFwaGlj
c0NvbnRleHQzRCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fY29udGV4dCA/IG1fY29udGV4dC0+
Z3JhcGhpY3NDb250ZXh0M0QoKSA6IDA7CisgICAgcmV0dXJuIG1fY29udGV4dCA/IG1fY29udGV4
dC0+Z3JhcGhpY3NDb250ZXh0M0QoKSA6IG51bGxwdHI7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKaW5kZXggZjliN2MyMDIyODgz
ZDU3OTJiMDI1ZjAyMTFkMDJlNGRhNmI2NjYzYS4uYzI3NjJiMjM2N2I3YzM0MTk2YjQ3ZmVlM2Y5
ZWMzNGRmY2JhMDlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xGcmFtZWJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xG
cmFtZWJ1ZmZlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjQsMTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkdMRnJhbWVidWZmZXIuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKIAot
I2luY2x1ZGUgIldlYkdMRnJhbWVidWZmZXIuaCIKLQogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5o
IgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViR0xEcmF3QnVm
ZmVycy5oIgpAQCAtNjA2LDYgKzYwNSw5IEBAIHZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6ZHJhd0J1
ZmZlcnMoY29uc3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmcykKIHZvaWQgV2ViR0xGcmFtZWJ1ZmZl
cjo6ZHJhd0J1ZmZlcnNJZk5lY2Vzc2FyeShib29sIGZvcmNlKQogewogI2lmIEVOQUJMRShXRUJH
TDIpCisgICAgLy8gRklYTUU6IFRoZSBsb2dpYyBoZXJlIHNlZW1zIHdyb25nLiBJZiB3ZSBkb24n
dCBoYXZlIFdlYkdMIDIgZW5hYmxlZCBhdCBhbGwsIHRoZW4KKyAgICAvLyB3ZSBza2lwIHRoZSBt
X3dlYmdsRHJhd0J1ZmZlcnMgY2hlY2suIEJ1dCBpZiB3ZSBkbyBoYXZlIFdlYkdMIDIgZW5hYmxl
ZCwgdGhlbiB3ZQorICAgIC8vIHBlcmZvcm0gdGhpcyBjaGVjaywgZm9yIFdlYkdMIDEgY29udGV4
dHMgb25seS4KICAgICBpZiAoIWNvbnRleHQoKS0+bV93ZWJnbERyYXdCdWZmZXJzICYmICFjb250
ZXh0KCktPmlzV2ViR0wyKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDRlYWQxY2ZkNjM3NDJiMDBkNTI0MmRlNzE5NTcyM2FiM2VmM2QxZWIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xHZXRJbmZvLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM3MSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoV0VCR0wpCi0KLSNpbmNsdWRlICJXZWJHTEdldEluZm8u
aCIKLQotI2luY2x1ZGUgPHJ1bnRpbWUvRmxvYXQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGlt
ZS9JbnQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9VaW50MzJBcnJheS5oPgotI2luY2x1
ZGUgPHJ1bnRpbWUvVWludDhBcnJheS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdlYkdM
R2V0SW5mbzo6V2ViR0xHZXRJbmZvKGJvb2wgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVCb29s
KQotICAgICwgbV9ib29sKHZhbHVlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkK
LSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLXsKLX0KLQotV2ViR0xH
ZXRJbmZvOjpXZWJHTEdldEluZm8oY29uc3QgYm9vbCogdmFsdWUsIGludCBzaXplKQotICAgIDog
bV90eXBlKGtUeXBlQm9vbEFycmF5KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9h
dCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50
NjQoMCkKLXsKLSAgICBpZiAoIXZhbHVlIHx8IHNpemUgPD0wKQotICAgICAgICByZXR1cm47Ci0g
ICAgbV9ib29sQXJyYXkucmVzaXplKHNpemUpOwotICAgIGZvciAoaW50IGlpID0gMDsgaWkgPCBz
aXplOyArK2lpKQotICAgICAgICBtX2Jvb2xBcnJheVtpaV0gPSB2YWx1ZVtpaV07Ci19Ci0KLVdl
YkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKGZsb2F0IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBl
RmxvYXQpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KHZhbHVlKQotICAgICwg
bV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLXsKLX0K
LQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oaW50IHZhbHVlKQotICAgIDogbV90eXBlKGtU
eXBlSW50KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9p
bnQodmFsdWUpCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi17Ci19
Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKCkKLSAgICA6IG1fdHlwZShrVHlwZU51bGwp
Ci0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQot
ICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdl
dEluZm86OldlYkdMR2V0SW5mbyhjb25zdCBTdHJpbmcmIHZhbHVlKQotICAgIDogbV90eXBlKGtU
eXBlU3RyaW5nKQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwg
bV9pbnQoMCkKLSAgICAsIG1fc3RyaW5nKHZhbHVlKQotICAgICwgbV91bnNpZ25lZEludCgwKQot
ICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyh1bnNp
Z25lZCBpbnQgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVVbnNpZ25lZEludCkKLSAgICAsIG1f
Ym9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vu
c2lnbmVkSW50KHZhbHVlKQotICAgICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86
OldlYkdMR2V0SW5mbyhsb25nIGxvbmcgdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVJbnQ2NCkK
LSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0g
ICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KHZhbHVlKQotewotfQotCi0KLVdl
YkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IHZhbHVlKQot
ICAgIDogbV90eXBlKGtUeXBlV2ViR0xCdWZmZXIpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAg
LCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAg
ICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbEJ1ZmZlcih2YWx1ZSkKLXsKLX0KLQotV2ViR0xH
ZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IHZhbHVlKQotICAg
IDogbV90eXBlKGtUeXBlV2ViR0xGbG9hdEFycmF5KQotICAgICwgbV9ib29sKGZhbHNlKQotICAg
ICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAg
ICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xGbG9hdEFycmF5KHZhbHVlKQotewotfQotCi1X
ZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IHZh
bHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xGcmFtZWJ1ZmZlcikKLSAgICAsIG1fYm9vbChm
YWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVk
SW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmdsRnJhbWVidWZmZXIodmFsdWUp
Ci17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8SW50MzJBcnJh
eT4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJHTEludEFycmF5KQotICAgICwgbV9ib29s
KGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWdu
ZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xJbnRBcnJheSh2YWx1ZSkK
LXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFByb2dy
YW0+IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xQcm9ncmFtKQotICAgICwgbV9ib29s
KGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWdu
ZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xQcm9ncmFtKHZhbHVlKQot
ewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUmVuZGVy
YnVmZmVyPiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMUmVuZGVyYnVmZmVyKQotICAg
ICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAs
IG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xSZW5kZXJi
dWZmZXIodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQ
dHI8V2ViR0xUZXh0dXJlPiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMVGV4dHVyZSkK
LSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0g
ICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmdsVGV4
dHVyZSh2YWx1ZSkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0
cjxVaW50OEFycmF5PiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMVW5zaWduZWRCeXRl
QXJyYXkpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2lu
dCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93
ZWJnbFVuc2lnbmVkQnl0ZUFycmF5KHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdM
R2V0SW5mbyhQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlw
ZVdlYkdMVW5zaWduZWRJbnRBcnJheSkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxv
YXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2lu
dDY0KDApCi0gICAgLCBtX3dlYmdsVW5zaWduZWRJbnRBcnJheSh2YWx1ZSkKLXsKLX0KLQotV2Vi
R0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTPiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMp
Ci0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQot
ICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbFZl
cnRleEFycmF5T2JqZWN0T0VTKHZhbHVlKQotewotfQotCi0jaWYgRU5BQkxFKFdFQkdMMikKLVdl
YkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dD4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJHTFZlcnRleEFycmF5T2JqZWN0KQotICAg
ICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAs
IG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xWZXJ0ZXhB
cnJheU9iamVjdCh2YWx1ZSkKLXsKLX0KLSNlbmRpZgotCi1XZWJHTEdldEluZm86On5XZWJHTEdl
dEluZm8oKQotewotfQotCi1XZWJHTEdldEluZm86OlR5cGUgV2ViR0xHZXRJbmZvOjpnZXRUeXBl
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90eXBlOwotfQotCi1ib29sIFdlYkdMR2V0SW5mbzo6
Z2V0Qm9vbCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZUJvb2wpOwot
ICAgIHJldHVybiBtX2Jvb2w7Ci19Ci0KLWNvbnN0IFZlY3Rvcjxib29sPiYgV2ViR0xHZXRJbmZv
OjpnZXRCb29sQXJyYXkoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVC
b29sQXJyYXkpOwotICAgIHJldHVybiBtX2Jvb2xBcnJheTsKLX0KLQotZmxvYXQgV2ViR0xHZXRJ
bmZvOjpnZXRGbG9hdCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZUZs
b2F0KTsKLSAgICByZXR1cm4gbV9mbG9hdDsKLX0KLQotaW50IFdlYkdMR2V0SW5mbzo6Z2V0SW50
KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlSW50KTsKLSAgICByZXR1
cm4gbV9pbnQ7Ci19Ci0KLWNvbnN0IFN0cmluZyYgV2ViR0xHZXRJbmZvOjpnZXRTdHJpbmcoKSBj
b25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVTdHJpbmcpOwotICAgIHJldHVy
biBtX3N0cmluZzsKLX0KLQotdW5zaWduZWQgaW50IFdlYkdMR2V0SW5mbzo6Z2V0VW5zaWduZWRJ
bnQoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVVbnNpZ25lZEludCk7
Ci0gICAgcmV0dXJuIG1fdW5zaWduZWRJbnQ7Ci19Ci0KLWxvbmcgbG9uZyBXZWJHTEdldEluZm86
OmdldEludDY0KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlSW50NjQp
OwotICAgIHJldHVybiBtX2ludDY0OwotfQotCi1XZWJHTEJ1ZmZlciogV2ViR0xHZXRJbmZvOjpn
ZXRXZWJHTEJ1ZmZlcigpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdl
YkdMQnVmZmVyKTsKLSAgICByZXR1cm4gbV93ZWJnbEJ1ZmZlci5nZXQoKTsKLX0KLQotRmxvYXQz
MkFycmF5KiBXZWJHTEdldEluZm86OmdldFdlYkdMRmxvYXRBcnJheSgpIGNvbnN0Ci17Ci0gICAg
QVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMRmxvYXRBcnJheSk7Ci0gICAgcmV0dXJuIG1f
d2ViZ2xGbG9hdEFycmF5LmdldCgpOwotfQotCi1XZWJHTEZyYW1lYnVmZmVyKiBXZWJHTEdldElu
Zm86OmdldFdlYkdMRnJhbWVidWZmZXIoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkg
PT0ga1R5cGVXZWJHTEZyYW1lYnVmZmVyKTsKLSAgICByZXR1cm4gbV93ZWJnbEZyYW1lYnVmZmVy
LmdldCgpOwotfQotCi1JbnQzMkFycmF5KiBXZWJHTEdldEluZm86OmdldFdlYkdMSW50QXJyYXko
KSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTEludEFycmF5KTsK
LSAgICByZXR1cm4gbV93ZWJnbEludEFycmF5LmdldCgpOwotfQotCi1XZWJHTFByb2dyYW0qIFdl
YkdMR2V0SW5mbzo6Z2V0V2ViR0xQcm9ncmFtKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlw
ZSgpID09IGtUeXBlV2ViR0xQcm9ncmFtKTsKLSAgICByZXR1cm4gbV93ZWJnbFByb2dyYW0uZ2V0
KCk7Ci19Ci0KLVdlYkdMUmVuZGVyYnVmZmVyKiBXZWJHTEdldEluZm86OmdldFdlYkdMUmVuZGVy
YnVmZmVyKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xSZW5k
ZXJidWZmZXIpOwotICAgIHJldHVybiBtX3dlYmdsUmVuZGVyYnVmZmVyLmdldCgpOwotfQotCi1X
ZWJHTFRleHR1cmUqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xUZXh0dXJlKCkgY29uc3QKLXsKLSAg
ICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xUZXh0dXJlKTsKLSAgICByZXR1cm4gbV93
ZWJnbFRleHR1cmUuZ2V0KCk7Ci19Ci0KLVVpbnQ4QXJyYXkqIFdlYkdMR2V0SW5mbzo6Z2V0V2Vi
R0xVbnNpZ25lZEJ5dGVBcnJheSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBr
VHlwZVdlYkdMVW5zaWduZWRCeXRlQXJyYXkpOwotICAgIHJldHVybiBtX3dlYmdsVW5zaWduZWRC
eXRlQXJyYXkuZ2V0KCk7Ci19Ci0KLVVpbnQzMkFycmF5KiBXZWJHTEdldEluZm86OmdldFdlYkdM
VW5zaWduZWRJbnRBcnJheSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlw
ZVdlYkdMVW5zaWduZWRJbnRBcnJheSk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xVbnNpZ25lZEludEFy
cmF5LmdldCgpOwotfQotCi1XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKiBXZWJHTEdldEluZm86
OmdldFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRU
eXBlKCkgPT0ga1R5cGVXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKTsKLSAgICByZXR1cm4gbV93
ZWJnbFZlcnRleEFycmF5T2JqZWN0T0VTLmdldCgpOwotfQotCi0jaWYgRU5BQkxFKFdFQkdMMikK
LVdlYkdMVmVydGV4QXJyYXlPYmplY3QqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMVmVy
dGV4QXJyYXlPYmplY3QpOwotICAgIHJldHVybiBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3QuZ2V0
KCk7Ci19Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5B
QkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xH
ZXRJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjZmNjkzYzVkNzYzNjIyM2VkNWNhZTNjMzlmYjYw
MDNiYWY3OGZjYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaAorKysgL2Rldi9udWxs
CkBAIC0xLDE1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCi0jaW5jbHVk
ZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgotI2luY2x1
ZGUgIldlYkdMUmVuZGVyYnVmZmVyLmgiCi0jaW5jbHVkZSAiV2ViR0xUZXh0dXJlLmgiCi0jaWYg
RU5BQkxFKFdFQkdMMikKLSNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0LmgiCi0jZW5k
aWYKLSNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgiCi0jaW5jbHVkZSA8cnVu
dGltZS9GbG9hdDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL0ludDMyQXJyYXkuaD4KLSNp
bmNsdWRlIDxydW50aW1lL1VpbnQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9VaW50OEFy
cmF5Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotLy8gQSB0YWdnZWQgdW5pb24gcmVwcmVzZW50aW5nIHRoZSByZXN1bHQgb2YgZ2V0IHF1
ZXJpZXMgbGlrZQotLy8gZ2V0UGFyYW1ldGVyIChlbmNvbXBhc3NpbmcgZ2V0Qm9vbGVhbnYsIGdl
dEludGVnZXJ2LCBnZXRGbG9hdHYpIGFuZAotLy8gc2ltaWxhciB2YXJpYW50cy4gRm9yIHJlZmVy
ZW5jZSBjb3VudGVkIHR5cGVzLCBpbmNyZW1lbnRzIGFuZAotLy8gZGVjcmVtZW50cyB0aGUgcmVm
ZXJlbmNlIGNvdW50IG9mIHRoZSB0YXJnZXQgb2JqZWN0LgotCi1jbGFzcyBXZWJHTEdldEluZm8g
ZmluYWwgewotcHVibGljOgotICAgIGVudW0gVHlwZSB7Ci0gICAgICAgIGtUeXBlQm9vbCwKLSAg
ICAgICAga1R5cGVCb29sQXJyYXksCi0gICAgICAgIGtUeXBlRmxvYXQsCi0gICAgICAgIGtUeXBl
SW50LAotICAgICAgICBrVHlwZU51bGwsCi0gICAgICAgIGtUeXBlU3RyaW5nLAotICAgICAgICBr
VHlwZVVuc2lnbmVkSW50LAotICAgICAgICBrVHlwZUludDY0LAotICAgICAgICBrVHlwZVdlYkdM
QnVmZmVyLAotICAgICAgICBrVHlwZVdlYkdMRmxvYXRBcnJheSwKLSAgICAgICAga1R5cGVXZWJH
TEZyYW1lYnVmZmVyLAotICAgICAgICBrVHlwZVdlYkdMSW50QXJyYXksCi0gICAgICAgIGtUeXBl
V2ViR0xPYmplY3RBcnJheSwKLSAgICAgICAga1R5cGVXZWJHTFByb2dyYW0sCi0gICAgICAgIGtU
eXBlV2ViR0xSZW5kZXJidWZmZXIsCi0gICAgICAgIGtUeXBlV2ViR0xUZXh0dXJlLAotICAgICAg
ICBrVHlwZVdlYkdMVW5zaWduZWRCeXRlQXJyYXksCi0gICAgICAgIGtUeXBlV2ViR0xVbnNpZ25l
ZEludEFycmF5LAotICAgICAgICBrVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMsCi0gICAg
ICAgIGtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCwKLSAgICB9OwotCi0gICAgZXhwbGljaXQg
V2ViR0xHZXRJbmZvKGJvb2wgdmFsdWUpOwotICAgIFdlYkdMR2V0SW5mbyhjb25zdCBib29sKiB2
YWx1ZSwgaW50IHNpemUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhmbG9hdCB2YWx1ZSk7
Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKGludCB2YWx1ZSk7Ci0gICAgLy8gUmVwcmVzZW50
cyB0aGUgbnVsbCB2YWx1ZSBhbmQgdHlwZS4KLSAgICBXZWJHTEdldEluZm8oKTsKLSAgICBleHBs
aWNpdCBXZWJHTEdldEluZm8oY29uc3QgU3RyaW5nJiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2Vi
R0xHZXRJbmZvKHVuc2lnbmVkIGludCB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZv
KGxvbmcgbG9uZyB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8
V2ViR0xCdWZmZXI+IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0
cjxGbG9hdDMyQXJyYXk+IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1Jl
ZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiB2YWx1ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xHZXRJbmZv
KFBhc3NSZWZQdHI8SW50MzJBcnJheT4gdmFsdWUpOwotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQg
V2ViR0xPYmplY3RBcnJheQotICAgIC8vIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMT2Jq
ZWN0QXJyYXk+IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxX
ZWJHTFByb2dyYW0+IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0
cjxXZWJHTFJlbmRlcmJ1ZmZlcj4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQ
YXNzUmVmUHRyPFdlYkdMVGV4dHVyZT4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5m
byhQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldElu
Zm8oUGFzc1JlZlB0cjxVaW50MzJBcnJheT4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0
SW5mbyhQYXNzUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IHZhbHVlKTsKLSNpZiBF
TkFCTEUoV0VCR0wyKQotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdM
VmVydGV4QXJyYXlPYmplY3Q+IHZhbHVlKTsKLSNlbmRpZgotCi0gICAgfldlYkdMR2V0SW5mbygp
OwotCi0gICAgVHlwZSBnZXRUeXBlKCkgY29uc3Q7Ci0KLSAgICBib29sIGdldEJvb2woKSBjb25z
dDsKLSAgICBjb25zdCBWZWN0b3I8Ym9vbD4mIGdldEJvb2xBcnJheSgpIGNvbnN0OwotICAgIGZs
b2F0IGdldEZsb2F0KCkgY29uc3Q7Ci0gICAgaW50IGdldEludCgpIGNvbnN0OwotICAgIGNvbnN0
IFN0cmluZyYgZ2V0U3RyaW5nKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgaW50IGdldFVuc2lnbmVk
SW50KCkgY29uc3Q7Ci0gICAgbG9uZyBsb25nIGdldEludDY0KCkgY29uc3Q7Ci0gICAgV2ViR0xC
dWZmZXIqIGdldFdlYkdMQnVmZmVyKCkgY29uc3Q7Ci0gICAgRmxvYXQzMkFycmF5KiBnZXRXZWJH
TEZsb2F0QXJyYXkoKSBjb25zdDsKLSAgICBXZWJHTEZyYW1lYnVmZmVyKiBnZXRXZWJHTEZyYW1l
YnVmZmVyKCkgY29uc3Q7Ci0gICAgSW50MzJBcnJheSogZ2V0V2ViR0xJbnRBcnJheSgpIGNvbnN0
OwotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgV2ViR0xPYmplY3RBcnJheQotICAgIC8vIFdlYkdM
T2JqZWN0QXJyYXkqIGdldFdlYkdMT2JqZWN0QXJyYXkoKSBjb25zdDsKLSAgICBXZWJHTFByb2dy
YW0qIGdldFdlYkdMUHJvZ3JhbSgpIGNvbnN0OwotICAgIFdlYkdMUmVuZGVyYnVmZmVyKiBnZXRX
ZWJHTFJlbmRlcmJ1ZmZlcigpIGNvbnN0OwotICAgIFdlYkdMVGV4dHVyZSogZ2V0V2ViR0xUZXh0
dXJlKCkgY29uc3Q7Ci0gICAgVWludDhBcnJheSogZ2V0V2ViR0xVbnNpZ25lZEJ5dGVBcnJheSgp
IGNvbnN0OwotICAgIFVpbnQzMkFycmF5KiBnZXRXZWJHTFVuc2lnbmVkSW50QXJyYXkoKSBjb25z
dDsKLSAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKiBnZXRXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTKCkgY29uc3Q7Ci0jaWYgRU5BQkxFKFdFQkdMMikKLSAgICBXZWJHTFZlcnRleEFycmF5
T2JqZWN0KiBnZXRXZWJHTFZlcnRleEFycmF5T2JqZWN0KCkgY29uc3Q7Ci0jZW5kaWYKLQotcHJp
dmF0ZToKLSAgICBUeXBlIG1fdHlwZTsKLSAgICBib29sIG1fYm9vbDsKLSAgICBWZWN0b3I8Ym9v
bD4gbV9ib29sQXJyYXk7Ci0gICAgZmxvYXQgbV9mbG9hdDsKLSAgICBpbnQgbV9pbnQ7Ci0gICAg
U3RyaW5nIG1fc3RyaW5nOwotICAgIHVuc2lnbmVkIGludCBtX3Vuc2lnbmVkSW50OwotICAgIGxv
bmcgbG9uZyBtX2ludDY0OwotICAgIFJlZlB0cjxXZWJHTEJ1ZmZlcj4gbV93ZWJnbEJ1ZmZlcjsK
LSAgICBSZWZQdHI8RmxvYXQzMkFycmF5PiBtX3dlYmdsRmxvYXRBcnJheTsKLSAgICBSZWZQdHI8
V2ViR0xGcmFtZWJ1ZmZlcj4gbV93ZWJnbEZyYW1lYnVmZmVyOwotICAgIFJlZlB0cjxJbnQzMkFy
cmF5PiBtX3dlYmdsSW50QXJyYXk7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudCBXZWJHTE9iamVj
dEFycmF5Ci0gICAgLy8gUmVmUHRyPFdlYkdMT2JqZWN0QXJyYXk+IG1fd2ViZ2xPYmplY3RBcnJh
eTsKLSAgICBSZWZQdHI8V2ViR0xQcm9ncmFtPiBtX3dlYmdsUHJvZ3JhbTsKLSAgICBSZWZQdHI8
V2ViR0xSZW5kZXJidWZmZXI+IG1fd2ViZ2xSZW5kZXJidWZmZXI7Ci0gICAgUmVmUHRyPFdlYkdM
VGV4dHVyZT4gbV93ZWJnbFRleHR1cmU7Ci0gICAgUmVmUHRyPFVpbnQ4QXJyYXk+IG1fd2ViZ2xV
bnNpZ25lZEJ5dGVBcnJheTsKLSAgICBSZWZQdHI8VWludDMyQXJyYXk+IG1fd2ViZ2xVbnNpZ25l
ZEludEFycmF5OwotICAgIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiBtX3dlYmds
VmVydGV4QXJyYXlPYmplY3RPRVM7Ci0jaWYgRU5BQkxFKFdFQkdMMikKLSAgICBSZWZQdHI8V2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdD4gbV93ZWJnbFZlcnRleEFycmF5T2JqZWN0OwotI2VuZGlmCi19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTE9iamVjdC5jcHAKaW5kZXggNWQ5MjA5NWZmZjE3ODZiMjI1YzI4NWE5NzAzYzY2OTk2MWI1
OTc1ZS4uNDhmOTM5ZTBkYThmNGUzMmM4MjJkMjkxMjEyNGZmY2JlNGU1YWE5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwxMSArMjQsMTAgQEAKICAq
LwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xPYmplY3QuaCIKIAogI2lm
IEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUgIldlYkdMT2JqZWN0LmgiCi0KICNpbmNsdWRlICJX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3Vw
LmgiCiAjaW5jbHVkZSAiV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIgpAQCAtMzgsMjEgKzM3LDEw
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV2ViR0xPYmplY3Q6OldlYkdMT2JqZWN0KFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKQotICAgIDogbV9vYmplY3QoMCkKLSAgICAsIG1fYXR0
YWNobWVudENvdW50KDApCi0gICAgLCBtX2RlbGV0ZWQoZmFsc2UpCi17Ci19Ci0KLVdlYkdMT2Jq
ZWN0Ojp+V2ViR0xPYmplY3QoKQotewotfQotCiB2b2lkIFdlYkdMT2JqZWN0OjpzZXRPYmplY3Qo
UGxhdGZvcm0zRE9iamVjdCBvYmplY3QpCiB7Ci0gICAgLy8gb2JqZWN0PT0wICYmIG1fZGVsZXRl
ZD09ZmFsc2UgaW5kaWNhdGluZyBhbiB1bmluaXRpYWxpemVkIHN0YXRlOwotICAgIEFTU0VSVCgh
bV9vYmplY3QgJiYgIW1fZGVsZXRlZCk7CisgICAgQVNTRVJUKCFtX29iamVjdCk7CisgICAgQVNT
RVJUKCFtX2RlbGV0ZWQpOwogICAgIG1fb2JqZWN0ID0gb2JqZWN0OwogfQogCkBAIC03OSw4ICs2
Nyw3IEBAIHZvaWQgV2ViR0xPYmplY3Q6OmRlbGV0ZU9iamVjdChHcmFwaGljc0NvbnRleHQzRCog
Y29udGV4dDNkKQogdm9pZCBXZWJHTE9iamVjdDo6ZGV0YWNoKCkKIHsKICAgICBtX2F0dGFjaG1l
bnRDb3VudCA9IDA7IC8vIE1ha2Ugc3VyZSBPcGVuR0wgcmVzb3VyY2UgaXMgZGVsZXRlZC4KLSAg
ICB9Ci0KK30KIAogdm9pZCBXZWJHTE9iamVjdDo6b25EZXRhY2hlZChHcmFwaGljc0NvbnRleHQz
RCogY29udGV4dDNkKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmgK
aW5kZXggN2IzMjNkNmM5ZjdhNzhhZjRiMmY0M2U2NTAzZjllMDEyOWVjYzc0Ny4uNjlkYmI1YWEw
N2ViOTI5OTVkM2NlZTcxMWY0YjI4N2M2NjNlNDVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTE9iamVjdC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDE3ICsyNiwxNSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiBjbGFzcyBX
ZWJHTENvbnRleHRHcm91cDsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CiAKIGNs
YXNzIFdlYkdMT2JqZWN0IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR0xPYmplY3Q+IHsKIHB1Ymxp
YzoKLSAgICB2aXJ0dWFsIH5XZWJHTE9iamVjdCgpOworICAgIHZpcnR1YWwgfldlYkdMT2JqZWN0
KCkgeyB9CiAKICAgICBQbGF0Zm9ybTNET2JqZWN0IG9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1f
b2JqZWN0OyB9CiAKQEAgLTU3LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCB2
YWxpZGF0ZShjb25zdCBXZWJHTENvbnRleHRHcm91cCosIGNvbnN0IFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UmKSBjb25zdCA9IDA7CiAKIHByb3RlY3RlZDoKLSAgICBXZWJHTE9iamVjdChXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CisgICAgV2ViR0xPYmplY3QoKSA9IGRlZmF1bHQ7CiAK
ICAgICAvLyBzZXRPYmplY3Qgc2hvdWxkIGJlIG9ubHkgY2FsbGVkIG9uY2UgcmlnaHQgYWZ0ZXIg
Y3JlYXRpbmcgYSBXZWJHTE9iamVjdC4KICAgICB2b2lkIHNldE9iamVjdChQbGF0Zm9ybTNET2Jq
ZWN0KTsKQEAgLTcyLDkgKzcwLDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgR3JhcGhpY3ND
b250ZXh0M0QqIGdldEFHcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0ID0gMDsKIAogcHJpdmF0ZToK
LSAgICBQbGF0Zm9ybTNET2JqZWN0IG1fb2JqZWN0OwotICAgIHVuc2lnbmVkIG1fYXR0YWNobWVu
dENvdW50OwotICAgIGJvb2wgbV9kZWxldGVkOworICAgIFBsYXRmb3JtM0RPYmplY3QgbV9vYmpl
Y3QgeyAwIH07CisgICAgdW5zaWduZWQgbV9hdHRhY2htZW50Q291bnQgeyAwIH07CisgICAgYm9v
bCBtX2RlbGV0ZWQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggNzdhZmU5NGM0
NTg1YTFiYjNlMTc3NmM4OTE1M2I4NGJiODZjMTcwMy4uYzI0MzM1ZGM0NjdkNzY3YmFmYTgzZWJj
ZjExOWYzMmVhM2E1ZDMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFBy
b2dyYW0uY3BwCkBAIC0yNCwxMyArMjQsMTMgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNpbmNs
dWRlICJXZWJHTFByb2dyYW0uaCIKLQogI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCiAj
aW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgorI2luY2x1ZGUgIldlYkdMU2hh
ZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsOSArNDEsNiBAQCBSZWY8V2Vi
R0xQcm9ncmFtPiBXZWJHTFByb2dyYW06OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
JiBjdHgpCiAKIFdlYkdMUHJvZ3JhbTo6V2ViR0xQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UmIGN0eCkKICAgICA6IFdlYkdMU2hhcmVkT2JqZWN0KGN0eCkKLSAgICAsIG1fbGlua1N0
YXR1cyhmYWxzZSkKLSAgICAsIG1fbGlua0NvdW50KDApCi0gICAgLCBtX2luZm9WYWxpZCh0cnVl
KQogewogICAgIHNldE9iamVjdChjdHguZ3JhcGhpY3NDb250ZXh0M0QoKS0+Y3JlYXRlUHJvZ3Jh
bSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJv
Z3JhbS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKaW5kZXgg
NzE3Y2NlMTM4YzQyOGM1N2NkZGI3YzU1YzE0Njg1ZmE0NjIyMzJmMy4uZWFiNzZjODk3NTFjYmU0
OTJiNDZlNzRjZmU4ZDE5NTgwOWUxMzFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xQcm9ncmFtLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjUsMTcgKzI1LDE2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVk
ZSAiV2ViR0xTaGFkZXIuaCIKICNpbmNsdWRlICJXZWJHTFNoYXJlZE9iamVjdC5oIgotI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBXZWJHTFNo
YWRlcjsKKwogY2xhc3MgV2ViR0xQcm9ncmFtIGZpbmFsIDogcHVibGljIFdlYkdMU2hhcmVkT2Jq
ZWN0IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJHTFByb2dyYW0oKTsKLQogICAgIHN0YXRp
YyBSZWY8V2ViR0xQcm9ncmFtPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwor
ICAgIHZpcnR1YWwgfldlYkdMUHJvZ3JhbSgpOwogCiAgICAgdW5zaWduZWQgbnVtQWN0aXZlQXR0
cmliTG9jYXRpb25zKCk7CiAgICAgR0MzRGludCBnZXRBY3RpdmVBdHRyaWJMb2NhdGlvbihHQzNE
dWludCBpbmRleCk7CkBAIC02MywyMyArNjIsMjAgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZGVs
ZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJy
aWRlOwogCiBwcml2YXRlOgotICAgIGJvb2wgaXNQcm9ncmFtKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQotCiAgICAgdm9pZCBjYWNoZUFjdGl2ZUF0dHJpYkxvY2F0aW9ucyhHcmFw
aGljc0NvbnRleHQzRCopOwogICAgIHZvaWQgY2FjaGVJbmZvSWZOZWVkZWQoKTsKIAogICAgIFZl
Y3RvcjxHQzNEaW50PiBtX2FjdGl2ZUF0dHJpYkxvY2F0aW9uczsKIAotICAgIEdDM0RpbnQgbV9s
aW5rU3RhdHVzOworICAgIEdDM0RpbnQgbV9saW5rU3RhdHVzIHsgMCB9OwogCi0gICAgLy8gVGhp
cyBpcyB1c2VkIHRvIHRyYWNrIHdoZXRoZXIgYSBXZWJHTFVuaWZvcm1Mb2NhdGlvbiBiZWxvbmdz
IHRvIHRoaXMKLSAgICAvLyBwcm9ncmFtIG9yIG5vdC4KLSAgICB1bnNpZ25lZCBtX2xpbmtDb3Vu
dDsKKyAgICAvLyBUaGlzIGlzIHVzZWQgdG8gdHJhY2sgd2hldGhlciBhIFdlYkdMVW5pZm9ybUxv
Y2F0aW9uIGJlbG9uZ3MgdG8gdGhpcyBwcm9ncmFtIG9yIG5vdC4KKyAgICB1bnNpZ25lZCBtX2xp
bmtDb3VudCB7IDAgfTsKIAogICAgIFJlZlB0cjxXZWJHTFNoYWRlcj4gbV92ZXJ0ZXhTaGFkZXI7
CiAgICAgUmVmUHRyPFdlYkdMU2hhZGVyPiBtX2ZyYWdtZW50U2hhZGVyOwogCi0gICAgYm9vbCBt
X2luZm9WYWxpZDsKKyAgICBib29sIG1faW5mb1ZhbGlkIHsgdHJ1ZSB9OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xRdWVyeS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5oCmlu
ZGV4IDQ2ZGI1OTJhODVhZjYyZmU4MGY3MWYzNzNiZTU5MTZiY2I5YzE4NTkuLjNjYjc2MTc3Nzc3
NTIwMWJjYTAxYWE2MDZjNWJjMTk1NGEyNmYyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFF1ZXJ5LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzEsMTcgKzMxLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgV2ViR0xRdWVyeSBmaW5hbCA6IHB1YmxpYyBXZWJHTFNoYXJlZE9iamVjdCB7CiBwdWJsaWM6
Ci0gICAgdmlydHVhbCB+V2ViR0xRdWVyeSgpOwotCiAgICAgc3RhdGljIFJlZjxXZWJHTFF1ZXJ5
PiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOworICAgIHZpcnR1YWwgfldlYkdM
UXVlcnkoKTsKIAogcHJvdGVjdGVkOgotICAgIFdlYkdMUXVlcnkoV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYpOwotCisgICAgZXhwbGljaXQgV2ViR0xRdWVyeShXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlJik7CiAgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwg
UGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAgYm9vbCBpc1F1ZXJ5
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5jcHAKaW5kZXggYjA2ZDZjOWM4NmEzMTZjMjAxOTkzNWNlODQxMzQ4MDllMzM0
MTZhZi4uN2RmZmMzNTdhMTcyYjU5MTFhY2YwYjA4NWYyZWQyMTg4NjI1YTkxMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI0LDkgKzI0LDkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCi0jaW5jbHVkZSAiV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmgiCiAKICNpbmNsdWRlICJBTkdMRUluc3RhbmNlZEFycmF5cy5o
IgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCkBAIC03MCwxNiArNzAsMTYgQEAgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBh
c3NlZENhbnZhcywgR3IKIHsKIH0KIAotV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRl
cmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUGFzc1JlZlB0cjxH
cmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwKLSAgICBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0
ZXMgYXR0cmlidXRlcykgOiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKHBhc3NlZENhbnZhcywg
Y29udGV4dCwgYXR0cmlidXRlcykKK1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFJlZjxHcmFwaGljc0Nv
bnRleHQzRD4mJiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRl
cykKKyAgICA6IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UocGFzc2VkQ2FudmFzLCBXVEZNb3Zl
KGNvbnRleHQpLCBhdHRyaWJ1dGVzKQogewogICAgIGluaXRpYWxpemVWZXJ0ZXhBcnJheU9iamVj
dHMoKTsKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVWZXJ0ZXhB
cnJheU9iamVjdHMoKQogewotICAgIG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0ID0gV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKCp0aGlzLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTOjpWQU9UeXBlRGVmYXVsdCk7Ci0gICAgYWRkQ29udGV4dE9iamVjdChtX2RlZmF1bHRWZXJ0
ZXhBcnJheU9iamVjdC5nZXQoKSk7CisgICAgbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QgPSBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUoKnRoaXMsIFdlYkdMVmVydGV4QXJyYXlP
YmplY3RPRVM6OlR5cGU6OkRlZmF1bHQpOworICAgIGFkZENvbnRleHRPYmplY3QoKm1fZGVmYXVs
dFZlcnRleEFycmF5T2JqZWN0KTsKICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBtX2Rl
ZmF1bHRWZXJ0ZXhBcnJheU9iamVjdDsKICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSkKICAg
ICAgICAgaW5pdFZlcnRleEF0dHJpYjAoKTsKQEAgLTkwLDk5ICs5MCw5MSBAQCBXZWJHTEV4dGVu
c2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBu
YW1lKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIAotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRf
YmxlbmRfbWlubWF4IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3Vw
cG9ydHMoIkdMX0VYVF9ibGVuZF9taW5tYXgiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVND
SUlDYXNlKG5hbWUsICJFWFRfYmxlbmRfbWlubWF4IikpIHsKICAgICAgICAgaWYgKCFtX2V4dEJs
ZW5kTWluTWF4KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1
cmVFbmFibGVkKCJHTF9FWFRfYmxlbmRfbWlubWF4Iik7Ci0gICAgICAgICAgICBtX2V4dEJsZW5k
TWluTWF4ID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRCbGVuZE1pbk1heD4oKnRoaXMpOworICAgICAg
ICAgICAgbV9leHRCbGVuZE1pbk1heCA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfRVhU
X2JsZW5kX21pbm1heCIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPEVYVEJs
ZW5kTWluTWF4PigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBt
X2V4dEJsZW5kTWluTWF4LmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShuYW1lLCAiRVhUX3NSR0IiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5zdXBwb3J0cygiR0xfRVhUX3NSR0IiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVND
SUlDYXNlKG5hbWUsICJFWFRfc1JHQiIpKSB7CiAgICAgICAgIGlmICghbV9leHRzUkdCKSB7Ci0g
ICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9F
WFRfc1JHQiIpOwotICAgICAgICAgICAgbV9leHRzUkdCID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRz
UkdCPigqdGhpcyk7CisgICAgICAgICAgICBtX2V4dHNSR0IgPSBlbmFibGVTdXBwb3J0ZWRFeHRl
bnNpb24oIkdMX0VYVF9zUkdCIikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8
RVhUc1JHQj4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9l
eHRzUkdCLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1l
LCAiRVhUX2ZyYWdfZGVwdGgiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cygiR0xfRVhUX2ZyYWdfZGVwdGgiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKG5hbWUsICJFWFRfZnJhZ19kZXB0aCIpKSB7CiAgICAgICAgIGlmICghbV9leHRG
cmFnRGVwdGgpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3Vy
ZUVuYWJsZWQoIkdMX0VYVF9mcmFnX2RlcHRoIik7Ci0gICAgICAgICAgICBtX2V4dEZyYWdEZXB0
aCA9IHN0ZDo6bWFrZV91bmlxdWU8RVhURnJhZ0RlcHRoPigqdGhpcyk7CisgICAgICAgICAgICBt
X2V4dEZyYWdEZXB0aCA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfRVhUX2ZyYWdfZGVw
dGgiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRGcmFnRGVwdGg+KCp0
aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fZXh0RnJhZ0RlcHRo
LmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiRVhU
X3NoYWRlcl90ZXh0dXJlX2xvZCIpCi0gICAgICAgICYmIChtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5zdXBwb3J0cygiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpIHx8IG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9BUkJfc2hhZGVyX3RleHR1cmVfbG9kIikpKSB7
CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9zaGFkZXJfdGV4dHVy
ZV9sb2QiKSkgewogICAgICAgICBpZiAoIW1fZXh0U2hhZGVyVGV4dHVyZUxPRCkgewotICAgICAg
ICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3No
YWRlcl90ZXh0dXJlX2xvZCIpOwotICAgICAgICAgICAgbV9leHRTaGFkZXJUZXh0dXJlTE9EID0g
c3RkOjptYWtlX3VuaXF1ZTxFWFRTaGFkZXJUZXh0dXJlTE9EPigqdGhpcyk7CisgICAgICAgICAg
ICBpZiAoIShtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwg
eyAiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIgfSkgfHwgbV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0FSQl9zaGFkZXJfdGV4dHVyZV9sb2Qi
IH0pKSkKKyAgICAgICAgICAgICAgICBtX2V4dFNoYWRlclRleHR1cmVMT0QgPSBudWxscHRyOwor
ICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuZW5zdXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX3NoYWRlcl90ZXh0dXJl
X2xvZCIgfSk7CisgICAgICAgICAgICAgICAgbV9leHRTaGFkZXJUZXh0dXJlTE9EID0gc3RkOjpt
YWtlX3VuaXF1ZTxFWFRTaGFkZXJUZXh0dXJlTE9EPigqdGhpcyk7CisgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fZXh0U2hhZGVyVGV4dHVyZUxPRC5nZXQoKTsKICAg
ICB9Ci0gICAgaWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4dHVyZV9m
aWx0ZXJfYW5pc290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJL
SVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpCi0gICAgICAgICYmIG1fY29udGV4
dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290
cm9waWMiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfdGV4
dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUs
ICJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpIHsKICAgICAgICAgaWYg
KCFtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykgewotICAgICAgICAgICAgbV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2Fu
aXNvdHJvcGljIik7Ci0gICAgICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9
IHN0ZDo6bWFrZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigqdGhpcyk7Cisg
ICAgICAgICAgICBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyA9IGVuYWJsZVN1cHBvcnRl
ZEV4dGVuc2lvbigiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikKKyAgICAgICAg
ICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljPigq
dGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpYy5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UobmFtZSwgIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpCi0gICAgICAgICYmIG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2
ZXMiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfc3RhbmRh
cmRfZGVyaXZhdGl2ZXMiKSkgewogICAgICAgICBpZiAoIW1fb2VzU3RhbmRhcmREZXJpdmF0aXZl
cykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxl
ZCgiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIik7Ci0gICAgICAgICAgICBtX29lc1N0YW5k
YXJkRGVyaXZhdGl2ZXMgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM+
KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcyA9IGVuYWJsZVN1
cHBvcnRlZEV4dGVuc2lvbigiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIikKKyAgICAgICAg
ICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTU3RhbmRhcmREZXJpdmF0aXZlcz4oKnRoaXMp
IDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNTdGFuZGFyZERlcml2
YXRpdmVzLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1l
LCAiT0VTX3RleHR1cmVfZmxvYXQiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfZmxvYXQiKSkgeworICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdCIpKSB7CiAgICAgICAgIGlm
ICghbV9vZXNUZXh0dXJlRmxvYXQpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2Zsb2F0Iik7Ci0gICAgICAgICAg
ICBtX29lc1RleHR1cmVGbG9hdCA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0Pigq
dGhpcyk7CisgICAgICAgICAgICBtX29lc1RleHR1cmVGbG9hdCA9IGVuYWJsZVN1cHBvcnRlZEV4
dGVuc2lvbigiR0xfT0VTX3RleHR1cmVfZmxvYXQiKQorICAgICAgICAgICAgICAgID8gc3RkOjpt
YWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXQ+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVyZUZsb2F0LmdldCgpOwogICAgIH0KLSAgICBpZiAo
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikK
LSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190
ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
bmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7CiAgICAgICAgIGlmICghbV9vZXNU
ZXh0dXJlRmxvYXRMaW5lYXIpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpOwotICAgICAg
ICAgICAgbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1
cmVGbG9hdExpbmVhcj4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXRMaW5l
YXIgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVh
ciIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdExp
bmVhcj4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNU
ZXh0dXJlRmxvYXRMaW5lYXIuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVND
SUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikKLSAgICAgICAgJiYgbV9jb250
ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQi
KSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9o
YWxmX2Zsb2F0IikpIHsKICAgICAgICAgaWYgKCFtX29lc1RleHR1cmVIYWxmRmxvYXQpIHsKLSAg
ICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09F
U190ZXh0dXJlX2hhbGZfZmxvYXQiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9h
dCA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdD4oKnRoaXMpOworICAgICAg
ICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJH
TF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91
bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdD4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0LmdldCgpOwogICAgIH0KLSAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9s
aW5lYXIiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygi
R0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSkgeworICAgIGlmIChlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpKSB7CiAg
ICAgICAgIGlmICghbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyKSB7Ci0gICAgICAgICAgICBt
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9o
YWxmX2Zsb2F0X2xpbmVhciIpOwotICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGlu
ZWFyID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyPigqdGhpcyk7
CisgICAgICAgICAgICBtX29lc1RleHR1cmVIYWxmRmxvYXRMaW5lYXIgPSBlbmFibGVTdXBwb3J0
ZWRFeHRlbnNpb24oIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikKKyAgICAgICAg
ICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcj4oKnRo
aXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlSGFs
ZkZsb2F0TGluZWFyLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShuYW1lLCAiT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKQotICAgICAgICAmJiBtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSkg
eworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdmVydGV4X2FycmF5
X29iamVjdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNWZXJ0ZXhBcnJheU9iamVjdCkgewotICAg
ICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VT
X3ZlcnRleF9hcnJheV9vYmplY3QiKTsKLSAgICAgICAgICAgIG1fb2VzVmVydGV4QXJyYXlPYmpl
Y3QgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1ZlcnRleEFycmF5T2JqZWN0PigqdGhpcyk7CisgICAg
ICAgICAgICBtX29lc1ZlcnRleEFycmF5T2JqZWN0ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9u
KCJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1h
a2VfdW5pcXVlPE9FU1ZlcnRleEFycmF5T2JqZWN0PigqdGhpcykgOiBudWxscHRyOwogICAgICAg
ICB9CiAgICAgICAgIHJldHVybiBtX29lc1ZlcnRleEFycmF5T2JqZWN0LmdldCgpOwogICAgIH0K
LSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX2VsZW1lbnRfaW5kZXhf
dWludCIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJH
TF9PRVNfZWxlbWVudF9pbmRleF91aW50IikpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShuYW1lLCAiT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpKSB7CiAgICAgICAgIGlmICghbV9v
ZXNFbGVtZW50SW5kZXhVaW50KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50Iik7Ci0gICAgICAg
ICAgICBtX29lc0VsZW1lbnRJbmRleFVpbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU0VsZW1lbnRJ
bmRleFVpbnQ+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzRWxlbWVudEluZGV4VWludCA9IGVu
YWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpCisgICAg
ICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU0VsZW1lbnRJbmRleFVpbnQ+KCp0aGlz
KSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzRWxlbWVudEluZGV4
VWludC5nZXQoKTsKICAgICB9CkBAIC0xOTEsNDEgKzE4Myw1MyBAQCBXZWJHTEV4dGVuc2lvbiog
V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQog
ICAgICAgICAgICAgbV93ZWJnbExvc2VDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTExv
c2VDb250ZXh0PigqdGhpcyk7CiAgICAgICAgIHJldHVybiBtX3dlYmdsTG9zZUNvbnRleHQuZ2V0
KCk7CiAgICAgfQotICAgIGlmICgoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lU
X1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKSkKLSAgICAgICAgJiYgV2ViR0xDb21wcmVz
c2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xD
b21wcmVzc2VkVGV4dHVyZUFUQykKLSAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVy
ZUFUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQz4oKnRoaXMp
OworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfV0VCR0xfY29t
cHJlc3NlZF90ZXh0dXJlX2F0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRU
ZXh0dXJlQVRDKSB7CisgICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMgPSBX
ZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMpCisgICAgICAgICAgICAg
ICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM+KCp0aGlzKSA6
IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xDb21wcmVzc2VkVGV4
dHVyZUFUQy5nZXQoKTsKICAgICB9Ci0gICAgaWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5h
bWUsICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIikpCi0gICAgICAgICYm
IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAg
ICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKQotICAgICAgICAgICAgbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlUFZSVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQz4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5h
bWUsICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIikpIHsKKyAgICAgICAg
aWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQykgeworICAgICAgICAgICAgbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlUFZSVEMgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OnN1
cHBvcnRlZCgqdGhpcykKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xD
b21wcmVzc2VkVGV4dHVyZVBWUlRDPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAg
ICAgIHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5nZXQoKTsKICAgICB9Ci0g
ICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2NvbXByZXNzZWRfdGV4
dHVyZV9zM3RjIikKLSAgICAgICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBv
cnRlZCgqdGhpcykpIHsKLSAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RD
KQotICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQyA9IHN0ZDo6bWFrZV91
bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM+KCp0aGlzKTsKKyAgICBpZiAoZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKSkg
eworICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMpIHsKKyAgICAgICAg
ICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJl
UzNUQzo6c3VwcG9ydGVkKCp0aGlzKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1
ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQz4oKnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAg
fQogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQy5nZXQoKTsKICAg
ICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlcHRoX3Rl
eHR1cmUiKQotICAgICAgICAmJiBXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCpncmFwaGlj
c0NvbnRleHQzRCgpKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xEZXB0aFRleHR1cmUpCi0gICAg
ICAgICAgICBtX3dlYmdsRGVwdGhUZXh0dXJlID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlcHRo
VGV4dHVyZT4oKnRoaXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJX
RUJHTF9kZXB0aF90ZXh0dXJlIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsRGVwdGhUZXh0dXJl
KSB7CisgICAgICAgICAgICBtX3dlYmdsRGVwdGhUZXh0dXJlID0gV2ViR0xEZXB0aFRleHR1cmU6
OnN1cHBvcnRlZCgqbV9jb250ZXh0KQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1
ZTxXZWJHTERlcHRoVGV4dHVyZT4oKnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAgfQogICAgICAg
ICByZXR1cm4gbV93ZWJnbERlcHRoVGV4dHVyZS5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RyYXdfYnVmZmVycyIpICYmIHN1cHBvcnRz
RHJhd0J1ZmZlcnMoKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJX
RUJHTF9kcmF3X2J1ZmZlcnMiKSkgewogICAgICAgICBpZiAoIW1fd2ViZ2xEcmF3QnVmZmVycykg
ewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgi
R0xfRVhUX2RyYXdfYnVmZmVycyIpOwotICAgICAgICAgICAgbV93ZWJnbERyYXdCdWZmZXJzID0g
c3RkOjptYWtlX3VuaXF1ZTxXZWJHTERyYXdCdWZmZXJzPigqdGhpcyk7CisgICAgICAgICAgICBp
ZiAoIXN1cHBvcnRzRHJhd0J1ZmZlcnMoKSkKKyAgICAgICAgICAgICAgICBtX3dlYmdsRHJhd0J1
ZmZlcnMgPSBudWxscHRyOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyAiR0xf
RVhUX2RyYXdfYnVmZmVycyIgfSk7CisgICAgICAgICAgICAgICAgbV93ZWJnbERyYXdCdWZmZXJz
ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERyYXdCdWZmZXJzPigqdGhpcyk7CisgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEcmF3QnVmZmVycy5nZXQoKTsK
ICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkFOR0xFX2luc3Rh
bmNlZF9hcnJheXMiKSAmJiBBTkdMRUluc3RhbmNlZEFycmF5czo6c3VwcG9ydGVkKCp0aGlzKSkg
eworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJBTkdMRV9pbnN0YW5jZWRf
YXJyYXlzIikpIHsKICAgICAgICAgaWYgKCFtX2FuZ2xlSW5zdGFuY2VkQXJyYXlzKSB7Ci0gICAg
ICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9BTkdM
RV9pbnN0YW5jZWRfYXJyYXlzIik7Ci0gICAgICAgICAgICBtX2FuZ2xlSW5zdGFuY2VkQXJyYXlz
ID0gc3RkOjptYWtlX3VuaXF1ZTxBTkdMRUluc3RhbmNlZEFycmF5cz4oKnRoaXMpOworICAgICAg
ICAgICAgaWYgKCFBTkdMRUluc3RhbmNlZEFycmF5czo6c3VwcG9ydGVkKCp0aGlzKSkKKyAgICAg
ICAgICAgICAgICBtX2FuZ2xlSW5zdGFuY2VkQXJyYXlzID0gbnVsbHB0cjsKKyAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3Vy
ZUVuYWJsZWQoQVNDSUlMaXRlcmFsIHsgIkdMX0FOR0xFX2luc3RhbmNlZF9hcnJheXMiIH0pOwor
ICAgICAgICAgICAgICAgIG1fYW5nbGVJbnN0YW5jZWRBcnJheXMgPSBzdGQ6Om1ha2VfdW5pcXVl
PEFOR0xFSW5zdGFuY2VkQXJyYXlzPigqdGhpcyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIG1fYW5nbGVJbnN0YW5jZWRBcnJheXMuZ2V0KCk7CiAgICAgfQpAQCAt
MjM0LDEwICsyMzgsMTEgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgICAgIG1fd2ViZ2xEZWJ1
Z1JlbmRlcmVySW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4o
KnRoaXMpOwogICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvLmdldCgpOwog
ICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVidWdf
c2hhZGVycyIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRz
KCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkgewotICAgICAgICBpZiAoIW1f
d2ViZ2xEZWJ1Z1NoYWRlcnMpCi0gICAgICAgICAgICBtX3dlYmdsRGVidWdTaGFkZXJzID0gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnU2hhZGVycz4oKnRoaXMpOworICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19zaGFkZXJzIikpIHsKKyAgICAgICAg
aWYgKCFtX3dlYmdsRGVidWdTaGFkZXJzKSB7CisgICAgICAgICAgICBtX3dlYmdsRGVidWdTaGFk
ZXJzID0gbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsg
IkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIgfSkKKyAgICAgICAgICAgICAgICA/
IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZWJ1Z1NoYWRlcnM+KCp0aGlzKSA6IG51bGxwdHI7Cisg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMuZ2V0KCk7CiAgICAg
fQogCkBAIC0yNTEsMTA5ICsyNTYsMTA5IEBAIFZlY3RvcjxTdHJpbmc+IFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpCiAgICAgaWYgKG1faXNQZW5kaW5nUG9s
aWN5UmVzb2x1dGlvbikKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAKLSAgICBpZiAobV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF9ibGVuZF9taW5tYXgiKSkK
LSAgICAgICAgcmVzdWx0LmFwcGVuZCgiRVhUX2JsZW5kX21pbm1heCIpOwotICAgIGlmIChtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX3NSR0IiKSkKLSAgICAgICAg
cmVzdWx0LmFwcGVuZCgiRVhUX3NSR0IiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoIkdMX0VYVF9mcmFnX2RlcHRoIikpCi0gICAgICAgIHJlc3VsdC5hcHBl
bmQoIkVYVF9mcmFnX2RlcHRoIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpKQotICAgICAgICByZXN1bHQuYXBwZW5k
KCJPRVNfdGV4dHVyZV9mbG9hdCIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpCi0gICAgICAgIHJlc3Vs
dC5hcHBlbmQoIk9FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpOwotICAgIGlmIChtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpKQot
ICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0Iik7Ci0gICAgaWYg
KG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxm
X2Zsb2F0X2xpbmVhciIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdGV4dHVyZV9oYWxm
X2Zsb2F0X2xpbmVhciIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cygiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIikpCi0gICAgICAgIHJlc3VsdC5hcHBl
bmQoIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4
dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpIHx8IG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9BUkJfc2hhZGVyX3RleHR1cmVfbG9k
IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIkVYVF9zaGFkZXJfdGV4dHVyZV9sb2QiKTsKLSAg
ICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF90ZXh0dXJl
X2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJFWFRfdGV4dHVy
ZV9maWx0ZXJfYW5pc290cm9waWMiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25z
KCkuc3VwcG9ydHMoIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IikpCi0gICAgICAgIHJlc3Vs
dC5hcHBlbmQoIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfZWxlbWVudF9pbmRleF91aW50IikpCi0g
ICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKTsKLSAgICByZXN1
bHQuYXBwZW5kKCJXRUJHTF9sb3NlX2NvbnRleHQiKTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF9ibGVuZF9taW5tYXgi
IH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJFWFRfYmxlbmRfbWlu
bWF4IiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVND
SUlMaXRlcmFsIHsgIkdMX0VYVF9zUkdCIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJ
SUxpdGVyYWwgeyAiRVhUX3NSR0IiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX2ZyYWdfZGVwdGgiIH0pKQorICAg
ICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJFWFRfZnJhZ19kZXB0aCIgfSk7Cisg
ICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7
ICJHTF9PRVNfdGV4dHVyZV9mbG9hdCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlM
aXRlcmFsIHsgIk9FU190ZXh0dXJlX2Zsb2F0IiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2Zsb2F0
X2xpbmVhciIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU190
ZXh0dXJlX2Zsb2F0X2xpbmVhciIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiB9
KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfaGFs
Zl9mbG9hdCIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRz
KEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIgfSkpCisg
ICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU190ZXh0dXJlX2hhbGZfZmxv
YXRfbGluZWFyIiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIgfSkpCisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZl
cyIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJ
TGl0ZXJhbCB7ICJHTF9FWFRfc2hhZGVyX3RleHR1cmVfbG9kIiB9KSB8fCBtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfQVJCX3NoYWRlcl90ZXh0
dXJlX2xvZCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIkVYVF9z
aGFkZXJfdGV4dHVyZV9sb2QiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJv
cGljIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiRVhUX3RleHR1
cmVfZmlsdGVyX2FuaXNvdHJvcGljIiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0
IiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3ZlcnRleF9h
cnJheV9vYmplY3QiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIgfSkpCisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU19lbGVtZW50X2luZGV4X3VpbnQi
IH0pOworICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2xvc2VfY29udGV4
dCIgfSk7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZCgqdGhp
cykpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1
cmVfYXRjIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQktJVF9X
RUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIiB9KTsKICAgICBpZiAoV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJX
RUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIik7CisgICAgICAgIHJlc3VsdC5h
cHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZy
dGMiIH0pOwogICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKCp0
aGlzKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3Mz
dGMiKTsKLSAgICBpZiAoV2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqZ3JhcGhpY3NDb250
ZXh0M0QoKSkpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlcHRoX3RleHR1cmUiKTsK
KyAgICBpZiAoV2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqbV9jb250ZXh0KSkKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfZGVwdGhfdGV4dHVyZSIgfSk7
CiAgICAgaWYgKHN1cHBvcnRzRHJhd0J1ZmZlcnMoKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgi
V0VCR0xfZHJhd19idWZmZXJzIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFs
IHsgIldFQkdMX2RyYXdfYnVmZmVycyIgfSk7CiAgICAgaWYgKEFOR0xFSW5zdGFuY2VkQXJyYXlz
OjpzdXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJBTkdMRV9pbnN0YW5j
ZWRfYXJyYXlzIik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRz
KCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkKLSAgICAgICAgcmVzdWx0LmFw
cGVuZCgiV0VCR0xfZGVidWdfc2hhZGVycyIpOwotICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2Rl
YnVnX3JlbmRlcmVyX2luZm8iKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwg
eyAiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9BTkdMRV90cmFuc2xhdGVkX3No
YWRlcl9zb3VyY2UiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJX
RUJHTF9kZWJ1Z19zaGFkZXJzIiB9KTsKKyAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7
ICJXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIiB9KTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0
YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdD
M0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2ht
ZW50LCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygp
IHx8ICF2YWxpZGF0ZUZyYW1lYnVmZmVyRnVuY1BhcmFtZXRlcnMoImdldEZyYW1lYnVmZmVyQXR0
YWNobWVudFBhcmFtZXRlciIsIHRhcmdldCwgYXR0YWNobWVudCkpCi0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCiAgICAgaWYgKCFt
X2ZyYW1lYnVmZmVyQmluZGluZyB8fCAhbV9mcmFtZWJ1ZmZlckJpbmRpbmctPm9iamVjdCgpKSB7
CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09Q
RVJBVElPTiwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJubyBmcmFtZWJ1
ZmZlciBib3VuZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIH0KICAgICAKLSAgICBXZWJHTFNoYXJlZE9iamVjdCogb2JqZWN0
ID0gbV9mcmFtZWJ1ZmZlckJpbmRpbmctPmdldEF0dGFjaG1lbnRPYmplY3QoYXR0YWNobWVudCk7
CisgICAgYXV0byogb2JqZWN0ID0gbV9mcmFtZWJ1ZmZlckJpbmRpbmctPmdldEF0dGFjaG1lbnRP
YmplY3QoYXR0YWNobWVudCk7CiAgICAgaWYgKCFvYmplY3QpIHsKICAgICAgICAgaWYgKHBuYW1l
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBF
KQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6Tk9O
RSk7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29u
dGV4dDNEOjpOT05FKTsKICAgICAgICAgLy8gT3BlbkdMIEVTIDIuMCBzcGVjaWZpZXMgSU5WQUxJ
RF9FTlVNIGluIHRoaXMgY2FzZSwgd2hpbGUgZGVza3RvcCBHTAogICAgICAgICAvLyBzcGVjaWZp
ZXMgSU5WQUxJRF9PUEVSQVRJT04uCiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNz
Q29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0
ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICAKLSAgICBBU1NFUlQo
b2JqZWN0LT5pc1RleHR1cmUoKSB8fCBvYmplY3QtPmlzUmVuZGVyYnVmZmVyKCkpOwogICAgIGlm
IChvYmplY3QtPmlzVGV4dHVyZSgpKSB7CiAgICAgICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
VFlQRToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkUpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihHcmFw
aGljc0NvbnRleHQzRDo6VEVYVFVSRSk7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUU6Ci0gICAgICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xUZXh0dXJlPihyZWludGVycHJldF9jYXN0PFdl
YkdMVGV4dHVyZSo+KG9iamVjdCkpKTsKKyAgICAgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHJl
aW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJlJj4oKm9iamVjdCkpOwogICAgICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEVWRUw6CiAg
ICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVY
VFVSRV9DVUJFX01BUF9GQUNFOgogICAgICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6RlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9DT0xPUl9FTkNPRElOR19FWFQ6IHsKICAgICAgICAgICAgIEdDM0RpbnQg
dmFsdWUgPSAwOwogICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1l
bnRQYXJhbWV0ZXJpdih0YXJnZXQsIGF0dGFjaG1lbnQsIHBuYW1lLCAmdmFsdWUpOwotICAgICAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdmFs
dWU7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBmb3IgdGV4dHVyZSBh
dHRhY2htZW50Iik7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CisgICAgICAgIEFT
U0VSVChvYmplY3QtPmlzUmVuZGVyYnVmZmVyKCkpOwogICAgICAgICBzd2l0Y2ggKHBuYW1lKSB7
CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
T0JKRUNUX1RZUEU6Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29u
dGV4dDNEOjpSRU5ERVJCVUZGRVIpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSKTsKICAgICAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRToKLSAg
ICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZl
cj4ocmVpbnRlcnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZlcio+KG9iamVjdCkpKTsKKyAgICAg
ICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5kZXJidWZm
ZXImPigqb2JqZWN0KSk7CiAgICAgICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpGUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HX0VYVDogewogICAgICAgICAgICAgaWYgKCFtX2V4dHNS
R0IpIHsKICAgICAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQz
RDo6SU5WQUxJRF9FTlVNLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgImlu
dmFsaWQgcGFyYW1ldGVyIG5hbWUgZm9yIHJlbmRlcmJ1ZmZlciBhdHRhY2htZW50Iik7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgV2ViR0xSZW5kZXJidWZmZXIq
IHJlbmRlckJ1ZmZlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5kZXJidWZmZXIqPihvYmpl
Y3QpOwogICAgICAgICAgICAgR0MzRGVudW0gcmVuZGVyQnVmZmVyRm9ybWF0ID0gcmVuZGVyQnVm
ZmVyLT5nZXRJbnRlcm5hbEZvcm1hdCgpOwogICAgICAgICAgICAgQVNTRVJUKHJlbmRlckJ1ZmZl
ckZvcm1hdCAhPSBFeHRlbnNpb25zM0Q6OlNSR0JfRVhUICYmIHJlbmRlckJ1ZmZlckZvcm1hdCAh
PSBFeHRlbnNpb25zM0Q6OlNSR0JfQUxQSEFfRVhUKTsKICAgICAgICAgICAgIGlmIChyZW5kZXJC
dWZmZXJGb3JtYXQgPT0gRXh0ZW5zaW9uczNEOjpTUkdCOF9BTFBIQThfRVhUKQotICAgICAgICAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oRXh0ZW5zaW9uczNEOjpTUkdCX0VYVCk7Ci0gICAg
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOwor
ICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oRXh0ZW5zaW9uczNE
OjpTUkdCX0VYVCk7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdy
YXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1l
dGVyIG5hbWUgZm9yIHJlbmRlcmJ1ZmZlciBhdHRhY2htZW50Iik7Ci0gICAgICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAg
fQogICAgIH0KIH0KQEAgLTM2NCwyMSArMzY5LDIyIEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250
ZXh0Ojp2YWxpZGF0ZUZyYW1lYnVmZmVyRnVuY1BhcmFtZXRlcnMoY29uc3QgY2hhciogZnVuY3Rp
CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VO
VU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgdGFyZ2V0Iik7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CisgICAgLy8gRklYTUU6IFdoeSBkb2VzIHRoaXMgcmV0dXJuIHRydWUgdW5jb25k
aXRpb25hbGx5IGZvciBDT0xPUl9BVFRBQ0hNRU5UMCwKKyAgICAvLyBidXQgZmFsc2UgZm9yIG90
aGVyIENPTE9SX0FUVEFDSE1FTlQgdmFsdWVzIGlmIG1fd2ViZ2xEcmF3QnVmZmVycyBpcyBmYWxz
ZT8KICAgICBzd2l0Y2ggKGF0dGFjaG1lbnQpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpDT0xPUl9BVFRBQ0hNRU5UMDoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9B
VFRBQ0hNRU5UOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQVRUQUNITUVO
VDoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6
Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAg
ICAgICBpZiAobV93ZWJnbERyYXdCdWZmZXJzCi0gICAgICAgICAgICAmJiBhdHRhY2htZW50ID4g
R3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwCisgICAgICAgICAgICAmJiBhdHRh
Y2htZW50ID49IEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMAogICAgICAgICAg
ICAgJiYgYXR0YWNobWVudCA8IHN0YXRpY19jYXN0PEdDM0RlbnVtPihHcmFwaGljc0NvbnRleHQz
RDo6Q09MT1JfQVRUQUNITUVOVDAgKyBnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkpKQotICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgc3ludGhlc2l6
ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAi
aW52YWxpZCBhdHRhY2htZW50Iik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAg
cmV0dXJuIHRydWU7CiB9CiAgICAgCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6cmVuZGVy
YnVmZmVyU3RvcmFnZShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpCkBAIC00NTUsNyArNDYxLDcgQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNsZWFyKEdDM0RiaXRmaWVsZCBtYXNrKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9ICJmcmFtZWJ1ZmZlciBp
bmNvbXBsZXRlIjsKLSAgICBpZiAobV9mcmFtZWJ1ZmZlckJpbmRpbmcgJiYgIW1fZnJhbWVidWZm
ZXJCaW5kaW5nLT5vbkFjY2VzcyhncmFwaGljc0NvbnRleHQzRCgpLCAmcmVhc29uKSkgeworICAg
IGlmIChtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAhbV9mcmFtZWJ1ZmZlckJpbmRpbmctPm9uQWNj
ZXNzKG1fY29udGV4dC5nZXQoKSwgJnJlYXNvbikpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJy
b3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OLCAiY2xl
YXIiLCByZWFzb24pOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDY0LDExICs0NzAsMTEg
QEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNsZWFyKEdDM0RiaXRmaWVsZCBtYXNrKQog
ICAgIG1hcmtDb250ZXh0Q2hhbmdlZCgpOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAo
aXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7
Ci0gICAgY29uc3QgaW50IGludFplcm8gPSAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwog
ICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVf
VEVYVFVSRToKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsK
QEAgLTQ3OSw3ICs0ODUsNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
QUxQSEFfQklUUzoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4obV9ib3VuZEFycmF5QnVm
ZmVyKSk7CisgICAgICAgIHJldHVybiBtX2JvdW5kQXJyYXlCdWZmZXI7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6QkxFTkQ6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVy
KHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORF9DT0xPUjoKQEAgLTUw
MywxNiArNTA5LDE2IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBh
cmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xP
Ul9XUklURU1BU0s6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIocG5h
bWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfVEVYVFVSRV9GT1JN
QVRTOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDMyQXJyYXk+
KFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMuZGF0YSgpLCBt
X2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5zaXplKCkpKSk7CisgICAgICAgIHJldHVybiBVaW50
MzJBcnJheTo6Y3JlYXRlKG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLmRhdGEoKSwgbV9jb21w
cmVzc2VkVGV4dHVyZUZvcm1hdHMuc2l6ZSgpKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpDVUxMX0ZBQ0U6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBuYW1lKTsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDVUxMX0ZBQ0VfTU9ERToKICAgICAgICAgcmV0
dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpDVVJSRU5UX1BST0dSQU06Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFz
c1JlZlB0cjxXZWJHTFByb2dyYW0+KG1fY3VycmVudFByb2dyYW0pKTsKKyAgICAgICAgcmV0dXJu
IG1fY3VycmVudFByb2dyYW07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQklU
UzoKICAgICAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAhbV9hdHRyaWJ1dGVzLmRl
cHRoKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhpbnRaZXJvKTsKKyAgICAgICAg
ICAgIHJldHVybiAwOwogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DTEVBUl9WQUxVRToKICAgICAgICAgcmV0
dXJuIGdldEZsb2F0UGFyYW1ldGVyKHBuYW1lKTsKQEAgLTUyNyw5ICs1MzMsOSBAQCBXZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUp
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RElUSEVSOgogICAgICAgICByZXR1cm4gZ2V0
Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RUxF
TUVOVF9BUlJBWV9CVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQ
YXNzUmVmUHRyPFdlYkdMQnVmZmVyPihtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1l
bnRBcnJheUJ1ZmZlcigpKSk7CisgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKG1fYm91bmRWZXJ0
ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVudEFycmF5QnVmZmVyKCkpOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oUGFzc1JlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPihtX2ZyYW1lYnVmZmVyQmluZGluZykp
OworICAgICAgICByZXR1cm4gbV9mcmFtZWJ1ZmZlckJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6RlJPTlRfRkFDRToKICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFy
YW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpHRU5FUkFURV9NSVBN
QVBfSElOVDoKQEAgLTU3Nyw5ICs1ODMsOSBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UkVEX0JJVFM6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUp
OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9CSU5ESU5HOgotICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+KG1f
cmVuZGVyYnVmZmVyQmluZGluZykpOworICAgICAgICByZXR1cm4gbV9yZW5kZXJidWZmZXJCaW5k
aW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkVSOgotICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKFN0cmluZygiV2ViS2l0IFdlYkdMIikpOworICAgICAgICByZXR1cm4g
U3RyaW5nIHsgQVNDSUlMaXRlcmFsIHsgIldlYktpdCBXZWJHTCIgfSB9OwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlNBTVBMRV9CVUZGRVJTOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFy
YW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTQU1QTEVfQ09WRVJB
R0VfSU5WRVJUOgpAQCAtNTkzLDcgKzU5OSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpTQ0lTU09SX1RFU1Q6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1l
dGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTSEFESU5HX0xBTkdVQUdF
X1ZFUlNJT046Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oIldlYkdMIEdMU0wgRVMgMS4w
ICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFO
R1VBR0VfVkVSU0lPTikgKyAiKSIpOworICAgICAgICByZXR1cm4gIldlYkdMIEdMU0wgRVMgMS4w
ICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlNIQURJTkdfTEFO
R1VBR0VfVkVSU0lPTikgKyAiKSI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJ
TF9CQUNLX0ZBSUw6CiAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFt
ZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9CQUNLX0ZVTkM6CkBAIC02
MTAsNyArNjE2LDcgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFy
YW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJh
bWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQklUUzoK
ICAgICAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAhbV9hdHRyaWJ1dGVzLnN0ZW5j
aWwpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKGludFplcm8pOworICAgICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQ0xFQVJfVkFMVUU6CiAgICAgICAgIHJl
dHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwpAQCAtNjMzLDYxICs2MzksNjEgQEAgV2ViR0xH
ZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNVQlBJWEVMX0JJVFM6CiAgICAgICAgIHJl
dHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfQklORElOR18yRDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVm
UHRyPFdlYkdMVGV4dHVyZT4obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4
dHVyZTJEQmluZGluZykpOworICAgICAgICByZXR1cm4gbV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVU
ZXh0dXJlVW5pdF0udGV4dHVyZTJEQmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVA6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
UGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+KG1fdGV4dHVyZVVuaXRzW21fYWN0aXZlVGV4dHVyZVVu
aXRdLnRleHR1cmVDdWJlTWFwQmluZGluZykpOworICAgICAgICByZXR1cm4gbV90ZXh0dXJlVW5p
dHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4dHVyZUN1YmVNYXBCaW5kaW5nOwogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19BTElHTk1FTlQ6CiAgICAgICAgIHJldHVybiBnZXRJ
bnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19G
TElQX1lfV0VCR0w6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV91bnBhY2tGbGlwWSk7
CisgICAgICAgIHJldHVybiBtX3VucGFja0ZsaXBZOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOworICAgICAgICByZXR1cm4gbV91bnBh
Y2tQcmVtdWx0aXBseUFscGhhOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19D
T0xPUlNQQUNFX0NPTlZFUlNJT05fV0VCR0w6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
bV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lvbik7CisgICAgICAgIHJldHVybiBtX3VucGFja0Nv
bG9yc3BhY2VDb252ZXJzaW9uOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFTkRPUjoK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhTdHJpbmcoIldlYktpdCIpKTsKKyAgICAgICAg
cmV0dXJuIFN0cmluZyB7IEFTQ0lJTGl0ZXJhbCB7ICJXZWJLaXQiIH0gfTsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpWRVJTSU9OOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCJX
ZWJHTCAxLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVS
U0lPTikgKyAiKSIpOworICAgICAgICByZXR1cm4gIldlYkdMIDEuMCAoIiArIG1fY29udGV4dC0+
Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRVJTSU9OKSArICIpIjsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpWSUVXUE9SVDoKICAgICAgICAgcmV0dXJuIGdldFdlYkdMSW50QXJy
YXlQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpGUkFHTUVOVF9TSEFE
RVJfREVSSVZBVElWRV9ISU5UX09FUzogLy8gT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzCiAgICAg
ICAgIGlmIChtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMpCiAgICAgICAgICAgICByZXR1cm4gZ2V0
VW5zaWduZWRJbnRQYXJhbWV0ZXIoRXh0ZW5zaW9uczNEOjpGUkFHTUVOVF9TSEFERVJfREVSSVZB
VElWRV9ISU5UX09FUyk7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4
dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFt
ZSwgT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBXZWJH
TERlYnVnUmVuZGVyZXJJbmZvOjpVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTDoKICAgICAgICAgaWYg
KG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbykKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8obV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkVSKSk7Cisg
ICAgICAgICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6
OlJFTkRFUkVSKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBX
RUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBXZWJHTERl
YnVnUmVuZGVyZXJJbmZvOjpVTk1BU0tFRF9WRU5ET1JfV0VCR0w6CiAgICAgICAgIGlmIChtX3dl
YmdsRGVidWdSZW5kZXJlckluZm8pCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1f
Y29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1IpKTsKKyAgICAgICAg
ICAgIHJldHVybiBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVORE9S
KTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
RU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBXRUJHTF9kZWJ1
Z19yZW5kZXJlcl9pbmZvIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlZF
UlRFWF9BUlJBWV9CSU5ESU5HX09FUzogLy8gT0VTX3ZlcnRleF9hcnJheV9vYmplY3QKICAgICAg
ICAgaWYgKG1fb2VzVmVydGV4QXJyYXlPYmplY3QpIHsKLSAgICAgICAgICAgIGlmICghbV9ib3Vu
ZFZlcnRleEFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3QoKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4o
c3RhdGljX2Nhc3Q8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyo+KG1fYm91bmRWZXJ0ZXhBcnJh
eU9iamVjdC5nZXQoKSkpKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAg
ICAgICAgICAgIGlmIChtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgp
KQorICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgcmV0dXJuIG1h
a2VSZWZQdHIoc3RhdGljX2Nhc3Q8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyY+KCptX2JvdW5k
VmVydGV4QXJyYXlPYmplY3QpKTsKICAgICAgICAgfQogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFs
aWQgcGFyYW1ldGVyIG5hbWUsIE9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IG5vdCBlbmFibGVkIik7
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6Ok1BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVDog
Ly8gRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljCiAgICAgICAgIGlmIChtX2V4dFRleHR1
cmVGaWx0ZXJBbmlzb3Ryb3BpYykKICAgICAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBh
cmFtZXRlcihFeHRlbnNpb25zM0Q6Ok1BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCk7CiAg
ICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0s
ICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgRVhUX3RleHR1cmVfZmls
dGVyX2FuaXNvdHJvcGljIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6Ok1B
WF9DT0xPUl9BVFRBQ0hNRU5UU19FWFQ6IC8vIEVYVF9kcmF3X2J1ZmZlcnMgQkVHSU4KICAgICAg
ICAgaWYgKG1fd2ViZ2xEcmF3QnVmZmVycykKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oZ2V0TWF4Q29sb3JBdHRhY2htZW50cygpKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRNYXhD
b2xvckF0dGFjaG1lbnRzKCk7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIg
bmFtZSwgV0VCR0xfZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBFeHRlbnNp
b25zM0Q6Ok1BWF9EUkFXX0JVRkZFUlNfRVhUOgogICAgICAgICBpZiAobV93ZWJnbERyYXdCdWZm
ZXJzKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhnZXRNYXhEcmF3QnVmZmVycygp
KTsKKyAgICAgICAgICAgIHJldHVybiBnZXRNYXhEcmF3QnVmZmVycygpOwogICAgICAgICBzeW50
aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1l
dGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RyYXdfYnVmZmVycyBub3QgZW5h
YmxlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGlmIChtX3dlYmdsRHJhd0J1ZmZlcnMKICAg
ICAgICAgICAgICYmIHBuYW1lID49IEV4dGVuc2lvbnMzRDo6RFJBV19CVUZGRVIwX0VYVApAQCAt
Njk3LDEwICs3MDMsMTAgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0
UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgICAgICAgICAgICAgIHZhbHVlID0gbV9mcmFt
ZWJ1ZmZlckJpbmRpbmctPmdldERyYXdCdWZmZXIocG5hbWUpOwogICAgICAgICAgICAgZWxzZSAv
LyBlbXVsYXRlZCBiYWNrYnVmZmVyCiAgICAgICAgICAgICAgICAgdmFsdWUgPSBtX2JhY2tEcmF3
QnVmZmVyOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAg
ICAgICByZXR1cm4gdmFsdWU7CiAgICAgICAgIH0KICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlk
IHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDE4NzRmZTVhNWMzODMxMTk4
ZjQzYjk0YzIwOTZiOWVlYmU0M2U0NzAuLjBjNjFkZDY1NDEwNzE0MWZlY2ZlN2M0Yjc5MGU0YTE5
ZjNlYmMwMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTMyLDE2ICszMiwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBXZWJHTFJlbmRlcmluZ0NvbnRleHQgZmluYWwgOiBwdWJsaWMgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSB7CiBwdWJsaWM6CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNF
bGVtZW50JiwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzKTsKLSAgICBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmLCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNE
PiwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzKTsKKyAgICBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQoSFRNTENhbnZhc0VsZW1lbnQmLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIEdyYXBoaWNz
Q29udGV4dDNEQXR0cmlidXRlcyk7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBpc1dlYkdMMSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIFdlYkdMRXh0ZW5zaW9uKiBnZXRFeHRl
bnNpb24oY29uc3QgU3RyaW5nJikgZmluYWw7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFBhcmFtZXRl
cihHQzNEZW51bSBwbmFtZSkgZmluYWw7CisgICAgV2ViR0xBbnkgZ2V0UGFyYW1ldGVyKEdDM0Rl
bnVtIHBuYW1lKSBmaW5hbDsKICAgICBWZWN0b3I8U3RyaW5nPiBnZXRTdXBwb3J0ZWRFeHRlbnNp
b25zKCkgZmluYWw7CiAKLSAgICBXZWJHTEdldEluZm8gZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50
UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0g
cG5hbWUpIGZpbmFsOworICAgIFdlYkdMQW55IGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1l
KSBmaW5hbDsKICAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
KSBmaW5hbDsKICAgICBib29sIHZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyhjb25z
dCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVu
dCkgZmluYWw7CiAgICAgdm9pZCBoaW50KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gbW9kZSkg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IDY0OTgzNGY4NWI5YzFjZDEyMGExNmYyYzlhNTli
ZGY1MjQ5Yzg4ZmUuLjk4NDViM2VmNTgzZjk5OTgxNmNhZTdmMDRmZTRmNjc2ZTlhZTI1ZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsOSArMjQsOSBAQAogICovCiAKICNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAKICNpZiBFTkFC
TEUoV0VCR0wpCi0jaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgogCiAjaW5j
bHVkZSAiQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgpA
QCAtNDIzLDE3ICs0MjMsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZShIVE0KICAgICAgICAgcmV0
dXJuIHJlbmRlcmluZ0NvbnRleHQ7CiAgICAgfQogCi0gICAgSG9zdFdpbmRvdyogaG9zdFdpbmRv
dyA9IGRvY3VtZW50LnZpZXcoKS0+cm9vdCgpLT5ob3N0V2luZG93KCk7Ci0gICAgUmVmUHRyPEdy
YXBoaWNzQ29udGV4dDNEPiBjb250ZXh0KEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoYXR0cmli
dXRlcywgaG9zdFdpbmRvdykpOwotCisgICAgYXV0byBjb250ZXh0ID0gR3JhcGhpY3NDb250ZXh0
M0Q6OmNyZWF0ZShhdHRyaWJ1dGVzLCBkb2N1bWVudC52aWV3KCktPnJvb3QoKS0+aG9zdFdpbmRv
dygpKTsKICAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgp
KSB7CiAgICAgICAgIGNhbnZhcy5kaXNwYXRjaEV2ZW50KFdlYkdMQ29udGV4dEV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLndlYmdsY29udGV4dGNyZWF0aW9uZXJyb3JFdmVudCwgZmFsc2UsIHRy
dWUsICJDb3VsZCBub3QgY3JlYXRlIGEgV2ViR0wgY29udGV4dC4iKSk7CiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIH0KIAotICAgIEV4dGVuc2lvbnMzRCYgZXh0ZW5zaW9ucyA9IGNvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKTsKLSAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfRVhU
X2RlYnVnX21hcmtlciIpKQotICAgICAgICBleHRlbnNpb25zLnB1c2hHcm91cE1hcmtlckVYVCgi
V2ViR0xSZW5kZXJpbmdDb250ZXh0Iik7CisgICAgYXV0byYgZXh0ZW5zaW9ucyA9IGNvbnRleHQt
PmdldEV4dGVuc2lvbnMoKTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVy
YWwgeyAiR0xfRVhUX2RlYnVnX21hcmtlciIgfSkpCisgICAgICAgIGV4dGVuc2lvbnMucHVzaEdy
b3VwTWFya2VyRVhUKEFTQ0lJTGl0ZXJhbCB7ICJXZWJHTFJlbmRlcmluZ0NvbnRleHQiIH0pOwog
CiAjaWYgRU5BQkxFKFdFQkdMMikgJiYgUExBVEZPUk0oTUFDKQogICAgIC8vIGdsVGV4U3RvcmFn
ZSgpIHdhcyBvbmx5IGFkZGVkIHRvIENvcmUgaW4gT3BlbkdMIDQuMi4KQEAgLTQ0MiwxMyArNDQw
LDEzIEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoSFRNCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
I2VuZGlmCiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4g
cmVuZGVyaW5nQ29udGV4dCA9IG51bGxwdHI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U+IHJlbmRlcmluZ0NvbnRleHQ7CiAjaWYgRU5BQkxFKFdFQkdMMikK
ICAgICBpZiAodHlwZSA9PSAid2ViZ2wyIikKLSAgICAgICAgcmVuZGVyaW5nQ29udGV4dCA9IHN0
ZDo6bWFrZV91bmlxdWU8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oY2FudmFzLCBXVEZNb3ZlKGNv
bnRleHQpLCBhdHRyaWJ1dGVzKTsKKyAgICAgICAgcmVuZGVyaW5nQ29udGV4dCA9IHN0ZDo6bWFr
ZV91bmlxdWU8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4oY2FudmFzLCBjb250ZXh0LnJlbGVhc2VO
b25OdWxsKCksIGF0dHJpYnV0ZXMpOwogICAgIGVsc2UKICNlbmRpZgotICAgICAgICByZW5kZXJp
bmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KGNhbnZh
cywgV1RGTW92ZShjb250ZXh0KSwgYXR0cmlidXRlcyk7CisgICAgICAgIHJlbmRlcmluZ0NvbnRl
eHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4oY2FudmFzLCBjb250
ZXh0LnJlbGVhc2VOb25OdWxsKCksIGF0dHJpYnV0ZXMpOwogICAgIHJlbmRlcmluZ0NvbnRleHQt
PnN1c3BlbmRJZk5lZWRlZCgpOwogCiAgICAgcmV0dXJuIHJlbmRlcmluZ0NvbnRleHQ7CkBAIC00
NTcsNDQgKzQ1NSwyOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKEhUTQogV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxlbWVudCYg
cGFzc2VkQ2FudmFzLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgOiBD
YW52YXNSZW5kZXJpbmdDb250ZXh0KHBhc3NlZENhbnZhcykKICAgICAsIEFjdGl2ZURPTU9iamVj
dCgmcGFzc2VkQ2FudmFzLmRvY3VtZW50KCkpCi0gICAgLCBtX2NvbnRleHQobnVsbHB0cikKICAg
ICAsIG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50VGltZXIoKnRoaXMsICZXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRMb3N0RXZlbnQpCi0gICAgLCBtX3Jlc3RvcmVB
bGxvd2VkKGZhbHNlKQogICAgICwgbV9yZXN0b3JlVGltZXIoKnRoaXMsICZXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0KQotICAgICwgbV9nZW5lcmF0ZWRJbWFn
ZUNhY2hlKDApCi0gICAgLCBtX2NvbnRleHRMb3N0KGZhbHNlKQotICAgICwgbV9jb250ZXh0TG9z
dE1vZGUoU3ludGhldGljTG9zdENvbnRleHQpCiAgICAgLCBtX2F0dHJpYnV0ZXMoYXR0cmlidXRl
cykKLSAgICAsIG1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUodHJ1ZSkKICAgICAsIG1fbnVt
R0xFcnJvcnNUb0NvbnNvbGVBbGxvd2VkKG1heEdMRXJyb3JzQWxsb3dlZFRvQ29uc29sZSkKICAg
ICAsIG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbih0cnVlKQotICAgICwgbV9oYXNSZXF1ZXN0
ZWRQb2xpY3lSZXNvbHV0aW9uKGZhbHNlKQogewogfQogCi1XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRD
YW52YXMsIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4mJiBjb250ZXh0LCBXZWJHTENvbnRleHRB
dHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCitXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlKEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFJlZjxH
cmFwaGljc0NvbnRleHQzRD4mJiBjb250ZXh0LCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzIGF0dHJp
YnV0ZXMpCiAgICAgOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0KHBhc3NlZENhbnZhcykKICAgICAs
IEFjdGl2ZURPTU9iamVjdCgmcGFzc2VkQ2FudmFzLmRvY3VtZW50KCkpCiAgICAgLCBtX2NvbnRl
eHQoV1RGTW92ZShjb250ZXh0KSkKICAgICAsIG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50VGlt
ZXIoKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRMb3N0
RXZlbnQpCi0gICAgLCBtX3Jlc3RvcmVBbGxvd2VkKGZhbHNlKQogICAgICwgbV9yZXN0b3JlVGlt
ZXIoKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0
KQogICAgICwgbV9nZW5lcmF0ZWRJbWFnZUNhY2hlKDQpCi0gICAgLCBtX2NvbnRleHRMb3N0KGZh
bHNlKQotICAgICwgbV9jb250ZXh0TG9zdE1vZGUoU3ludGhldGljTG9zdENvbnRleHQpCiAgICAg
LCBtX2F0dHJpYnV0ZXMoYXR0cmlidXRlcykKLSAgICAsIG1fc3ludGhlc2l6ZWRFcnJvcnNUb0Nv
bnNvbGUodHJ1ZSkKICAgICAsIG1fbnVtR0xFcnJvcnNUb0NvbnNvbGVBbGxvd2VkKG1heEdMRXJy
b3JzQWxsb3dlZFRvQ29uc29sZSkKLSAgICAsIG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbihm
YWxzZSkKLSAgICAsIG1faGFzUmVxdWVzdGVkUG9saWN5UmVzb2x1dGlvbihmYWxzZSkKIHsKLSAg
ICBBU1NFUlQobV9jb250ZXh0KTsKICAgICBtX2NvbnRleHRHcm91cCA9IFdlYkdMQ29udGV4dEdy
b3VwOjpjcmVhdGUoKTsKLSAgICBtX2NvbnRleHRHcm91cC0+YWRkQ29udGV4dCh0aGlzKTsKKyAg
ICBtX2NvbnRleHRHcm91cC0+YWRkQ29udGV4dCgqdGhpcyk7CiAgICAgCiAgICAgbV9jb250ZXh0
LT5zZXRXZWJHTENvbnRleHQodGhpcyk7CiAKLSAgICBtX21heFZpZXdwb3J0RGltc1swXSA9IG1f
bWF4Vmlld3BvcnREaW1zWzFdID0gMDsKICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KEdyYXBo
aWNzQ29udGV4dDNEOjpNQVhfVklFV1BPUlRfRElNUywgbV9tYXhWaWV3cG9ydERpbXMpOwogCiAg
ICAgc2V0dXBGbGFncygpOwpAQCAtNjIyLDcgKzYwNSw3IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6On5XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKCkKICAgICBpZiAoIW1faXNQZW5kaW5n
UG9saWN5UmVzb2x1dGlvbikgewogICAgICAgICBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCk7
CiAgICAgICAgIGRlc3Ryb3lHcmFwaGljc0NvbnRleHQzRCgpOwotICAgICAgICBtX2NvbnRleHRH
cm91cC0+cmVtb3ZlQ29udGV4dCh0aGlzKTsKKyAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92
ZUNvbnRleHQoKnRoaXMpOwogICAgIH0KIH0KIApAQCAtOTE2LDcgKzg5OSw3IEBAIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YmluZEJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFdlYkdM
QnVmZmVyKiBidWZmZXIpCiAgICAgaWYgKCFjaGVja09iamVjdFRvQmVCb3VuZCgiYmluZEJ1ZmZl
ciIsIGJ1ZmZlciwgZGVsZXRlZCkpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoZGVsZXRlZCkK
LSAgICAgICAgYnVmZmVyID0gMDsKKyAgICAgICAgYnVmZmVyID0gbnVsbHB0cjsKICAgICBpZiAo
YnVmZmVyICYmIGJ1ZmZlci0+Z2V0VGFyZ2V0KCkgJiYgYnVmZmVyLT5nZXRUYXJnZXQoKSAhPSB0
YXJnZXQpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklO
VkFMSURfT1BFUkFUSU9OLCAiYmluZEJ1ZmZlciIsICJidWZmZXJzIGNhbiBub3QgYmUgdXNlZCB3
aXRoIG11bHRpcGxlIHRhcmdldHMiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTM5OCw3ICsxMzgx
LDcgQEAgUmVmUHRyPFdlYkdMQnVmZmVyPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVh
dGVCdWZmZXIoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIGF1dG8gYnVmZmVyID0gV2ViR0xCdWZmZXI6OmNyZWF0ZSgqdGhp
cyk7Ci0gICAgYWRkU2hhcmVkT2JqZWN0KGJ1ZmZlci5wdHIoKSk7CisgICAgYWRkU2hhcmVkT2Jq
ZWN0KGJ1ZmZlci5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUoYnVmZmVyKTsKIH0KIApAQCAt
MTQwNyw3ICsxMzkwLDcgQEAgUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmNyZWF0ZUZyYW1lYnVmZmVyKCkKICAgICBpZiAoaXNDb250ZXh0TG9zdE9y
UGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIGJ1ZmZlciA9IFdl
YkdMRnJhbWVidWZmZXI6OmNyZWF0ZSgqdGhpcyk7Ci0gICAgYWRkQ29udGV4dE9iamVjdChidWZm
ZXIucHRyKCkpOworICAgIGFkZENvbnRleHRPYmplY3QoYnVmZmVyLmdldCgpKTsKICAgICByZXR1
cm4gV1RGTW92ZShidWZmZXIpOwogfQogCkBAIC0xNDE2LDcgKzEzOTksNyBAQCBSZWZQdHI8V2Vi
R0xUZXh0dXJlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVUZXh0dXJlKCkKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICBhdXRvIHRleHR1cmUgPSBXZWJHTFRleHR1cmU6OmNyZWF0ZSgqdGhpcyk7Ci0gICAgYWRk
U2hhcmVkT2JqZWN0KHRleHR1cmUucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdCh0ZXh0dXJl
LmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92ZSh0ZXh0dXJlKTsKIH0KIApAQCAtMTQyNSw3ICsx
NDA4LDcgQEAgUmVmUHRyPFdlYkdMUHJvZ3JhbT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Y3JlYXRlUHJvZ3JhbSgpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBwcm9ncmFtID0gV2ViR0xQcm9ncmFtOjpjcmVh
dGUoKnRoaXMpOwotICAgIGFkZFNoYXJlZE9iamVjdChwcm9ncmFtLnB0cigpKTsKKyAgICBhZGRT
aGFyZWRPYmplY3QocHJvZ3JhbS5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUocHJvZ3JhbSk7
CiB9CiAKQEAgLTE0MzQsNyArMTQxNyw3IEBAIFJlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4gV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlUmVuZGVyYnVmZmVyKCkKICAgICBpZiAoaXND
b250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRv
IGJ1ZmZlciA9IFdlYkdMUmVuZGVyYnVmZmVyOjpjcmVhdGUoKnRoaXMpOwotICAgIGFkZFNoYXJl
ZE9iamVjdChidWZmZXIucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdChidWZmZXIuZ2V0KCkp
OwogICAgIHJldHVybiBXVEZNb3ZlKGJ1ZmZlcik7CiB9CiAKQEAgLTE0NDgsNyArMTQzMSw3IEBA
IFJlZlB0cjxXZWJHTFNoYWRlcj4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlU2hh
ZGVyKEdDM0RlbnVtIHR5cGUpCiAgICAgfQogCiAgICAgYXV0byBzaGFkZXIgPSBXZWJHTFNoYWRl
cjo6Y3JlYXRlKCp0aGlzLCB0eXBlKTsKLSAgICBhZGRTaGFyZWRPYmplY3Qoc2hhZGVyLnB0cigp
KTsKKyAgICBhZGRTaGFyZWRPYmplY3Qoc2hhZGVyLmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92
ZShzaGFkZXIpOwogfQogCkBAIC0xNDgxLDcgKzE0NjQsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmRlbGV0ZUJ1ZmZlcihXZWJHTEJ1ZmZlciogYnVmZmVyKQogICAgIGlmICht
X2JvdW5kQXJyYXlCdWZmZXIgPT0gYnVmZmVyKQogICAgICAgICBtX2JvdW5kQXJyYXlCdWZmZXIg
PSBudWxscHRyOwogCi0gICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT51bmJpbmRCdWZmZXIo
YnVmZmVyKTsKKyAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPnVuYmluZEJ1ZmZlcigqYnVm
ZmVyKTsKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVGcmFtZWJ1
ZmZlcihXZWJHTEZyYW1lYnVmZmVyKiBmcmFtZWJ1ZmZlcikKQEAgLTIxODcsMTAgKzIxNzAsMTAg
QEAgR0MzRGludCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBdHRyaWJMb2NhdGlvbihX
ZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnMKICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRBdHRy
aWJMb2NhdGlvbihvYmplY3RPclplcm8ocHJvZ3JhbSksIG5hbWUpOwogfQogCi1XZWJHTEdldElu
Zm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVt
IHRhcmdldCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRCdWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSkK
IHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgYm9vbCB2YWxpZCA9
IGZhbHNlOwogICAgIGlmICh0YXJnZXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZF
UiB8fCB0YXJnZXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkVMRU1FTlRfQVJSQVlfQlVGRkVSKQpA
QCAtMjIxMCwxOSArMjE5MywxOSBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6Z2V0QnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRAogI2VuZGlmCiAg
ICAgaWYgKCF2YWxpZCkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0QnVmZmVyUGFyYW1ldGVyIiwgImludmFsaWQgdGFyZ2V0
Iik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogCiAgICAgaWYgKHBuYW1lICE9IEdyYXBoaWNzQ29udGV4dDNEOjpCVUZGRVJf
U0laRSAmJiBwbmFtZSAhPSBHcmFwaGljc0NvbnRleHQzRDo6QlVGRkVSX1VTQUdFKSB7CiAgICAg
ICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJn
ZXRCdWZmZXJQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAog
ICAgIEdDM0RpbnQgdmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0QnVmZmVyUGFyYW1ldGVy
aXYodGFyZ2V0LCBwbmFtZSwgJnZhbHVlKTsKICAgICBpZiAocG5hbWUgPT0gR3JhcGhpY3NDb250
ZXh0M0Q6OkJVRkZFUl9TSVpFKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsK
LSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4odmFsdWUp
KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4odmFsdWUpOwogfQogCiBzdGQ6Om9wdGlvbmFsPFdlYkdMQ29udGV4dEF0dHJpYnV0ZXM+IFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldENvbnRleHRBdHRyaWJ1dGVzKCkKQEAgLTIyNDks
MzAgKzIyMzIsMzAgQEAgR0MzRGVudW0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0RXJy
b3IoKQogICAgIHJldHVybiBtX2NvbnRleHQtPmdldEVycm9yKCk7CiB9CiAKLVdlYkdMR2V0SW5m
byBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRQcm9ncmFtUGFyYW1ldGVyKFdlYkdMUHJv
Z3JhbSogcHJvZ3JhbSwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRQcm9ncmFtUGFyYW1ldGVyKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgR0Mz
RGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFs
aWRhdGVXZWJHTE9iamVjdCgiZ2V0UHJvZ3JhbVBhcmFtZXRlciIsIHByb2dyYW0pKQotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAg
R0MzRGludCB2YWx1ZSA9IDA7CiAgICAgc3dpdGNoIChwbmFtZSkgewogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRFTEVURV9TVEFUVVM6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
cHJvZ3JhbS0+aXNEZWxldGVkKCkpOworICAgICAgICByZXR1cm4gcHJvZ3JhbS0+aXNEZWxldGVk
KCk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VkFMSURBVEVfU1RBVFVTOgogICAgICAg
ICBtX2NvbnRleHQtPmdldFByb2dyYW1pdihvYmplY3RPclplcm8ocHJvZ3JhbSksIHBuYW1lLCAm
dmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PGJvb2w+KHZh
bHVlKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29sPih2YWx1ZSk7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6TElOS19TVEFUVVM6Ci0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8ocHJvZ3JhbS0+Z2V0TGlua1N0YXR1cygpKTsKKyAgICAgICAgcmV0dXJuIHByb2dyYW0t
PmdldExpbmtTdGF0dXMoKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBVFRBQ0hFRF9T
SEFERVJTOgogICAgICAgICBtX2NvbnRleHQtPmdldFByb2dyYW1pdihvYmplY3RPclplcm8ocHJv
Z3JhbSksIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVl
KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFD
VElWRV9BVFRSSUJVVEVTOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFDVElWRV9VTklG
T1JNUzoKICAgICAgICAgbV9jb250ZXh0LT5nZXROb25CdWlsdEluQWN0aXZlU3ltYm9sQ291bnQo
b2JqZWN0T3JaZXJvKHByb2dyYW0pLCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVN
LCAiZ2V0UHJvZ3JhbVBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogfQogCkBAIC0yMjgzLDE3ICsyMjY2LDE3IEBAIFN0cmluZyBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRQcm9ncmFtSW5mb0xvZyhXZWJHTFByb2dyYW0qIHByb2dyYW0pCiAgICAgcmV0
dXJuIGVuc3VyZU5vdE51bGwobV9jb250ZXh0LT5nZXRQcm9ncmFtSW5mb0xvZyhvYmplY3RPclpl
cm8ocHJvZ3JhbSkpKTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBu
YW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVy
UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlz
Q29udGV4dExvc3RPclBlbmRpbmcoKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAodGFyZ2V0ICE9IEdyYXBoaWNzQ29udGV4
dDNEOjpSRU5ERVJCVUZGRVIpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlciIsICJpbnZh
bGlkIHRhcmdldCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIH0KICAgICBpZiAoIW1fcmVuZGVyYnVmZmVyQmluZGluZyB8fCAh
bV9yZW5kZXJidWZmZXJCaW5kaW5nLT5vYmplY3QoKSkgewogICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJnZXRSZW5kZXJidWZm
ZXJQYXJhbWV0ZXIiLCAibm8gcmVuZGVyYnVmZmVyIGJvdW5kIik7Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgaWYg
KG1fcmVuZGVyYnVmZmVyQmluZGluZy0+Z2V0SW50ZXJuYWxGb3JtYXQoKSA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6REVQVEhfU1RFTkNJTApAQCAtMjMyMCwxMiArMjMwMywxMiBAQCBXZWJHTEdldElu
Zm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKEdD
M0RlbnVtIHRhcmdldAogICAgICAgICAgICAgdmFsdWUgPSA4OwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9JTlRFUk5BTF9G
T1JNQVQ6Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fcmVuZGVyYnVmZmVyQmlu
ZGluZy0+Z2V0SW50ZXJuYWxGb3JtYXQoKSk7CisgICAgICAgICAgICByZXR1cm4gbV9yZW5kZXJi
dWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgpOwogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5V
TSwgImdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7
Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsK
KyAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIH0KIAogICAgIEdDM0RpbnQgdmFsdWUgPSAwOwpA
QCAtMjMzOSwzMiArMjMyMiwzMiBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldAogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFOgogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkU6CiAgICAgICAgIG1fY29u
dGV4dC0+Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYodGFyZ2V0LCBwbmFtZSwgJnZhbHVlKTsK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgICAgIHJldHVybiB2YWx1
ZTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9S
TUFUOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fcmVuZGVyYnVmZmVyQmluZGluZy0+
Z2V0SW50ZXJuYWxGb3JtYXQoKSk7CisgICAgICAgIHJldHVybiBtX3JlbmRlcmJ1ZmZlckJpbmRp
bmctPmdldEludGVybmFsRm9ybWF0KCk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6
ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFJlbmRlcmJ1ZmZl
clBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogfQogCi1XZWJH
TEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0U2hhZGVyUGFyYW1ldGVyKFdl
YkdMU2hhZGVyKiBzaGFkZXIsIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0U2hhZGVyUGFyYW1ldGVyKFdlYkdMU2hhZGVyKiBzaGFkZXIsIEdD
M0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZh
bGlkYXRlV2ViR0xPYmplY3QoImdldFNoYWRlclBhcmFtZXRlciIsIHNoYWRlcikpCi0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgR0Mz
RGludCB2YWx1ZSA9IDA7CiAgICAgc3dpdGNoIChwbmFtZSkgewogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkRFTEVURV9TVEFUVVM6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc2hh
ZGVyLT5pc0RlbGV0ZWQoKSk7CisgICAgICAgIHJldHVybiBzaGFkZXItPmlzRGVsZXRlZCgpOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBJTEVfU1RBVFVTOgogICAgICAgICBtX2Nv
bnRleHQtPmdldFNoYWRlcml2KG9iamVjdE9yWmVybyhzaGFkZXIpLCBwbmFtZSwgJnZhbHVlKTsK
LSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxib29sPih2YWx1ZSkpOwor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWUpOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OlNIQURFUl9UWVBFOgogICAgICAgICBtX2NvbnRleHQtPmdldFNoYWRlcml2
KG9iamVjdE9yWmVybyhzaGFkZXIpLCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZhbHVlKSk7CisgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmFsdWUpOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRT
aGFkZXJQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwotICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIH0KIApA
QCAtMjQxMywxMyArMjM5NiwxMyBAQCBTdHJpbmcgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
Z2V0U2hhZGVyU291cmNlKFdlYkdMU2hhZGVyKiBzaGFkZXIpCiAgICAgcmV0dXJuIGVuc3VyZU5v
dE51bGwoc2hhZGVyLT5nZXRTb3VyY2UoKSk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFRleFBhcmFt
ZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgV2ViR0xUZXh0dXJlKiB0ZXggPSB2YWxpZGF0ZVRleHR1
cmVCaW5kaW5nKCJnZXRUZXhQYXJhbWV0ZXIiLCB0YXJnZXQsIGZhbHNlKTsKICAgICBpZiAoIXRl
eCkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBzd2l0Y2ggKHBuYW1lKSB7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9NQUdfRklMVEVSOgpAQCAtMjQyNywyNyArMjQx
MCwyNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFy
YW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlRFWFRVUkVfV1JBUF9TOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVf
V1JBUF9UOgogICAgICAgICBtX2NvbnRleHQtPmdldFRleFBhcmFtZXRlcml2KHRhcmdldCwgcG5h
bWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8dW5z
aWduZWQgaW50Pih2YWx1ZSkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KHZhbHVlKTsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6VEVYVFVSRV9NQVhfQU5JU09UUk9QWV9F
WFQ6IC8vIEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYwogICAgICAgICBpZiAobV9leHRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWMpIHsKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0VGV4
UGFyYW1ldGVyaXYodGFyZ2V0LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2YWx1ZSkpOworICAgICAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZSk7CiAgICAgICAgIH0KICAgICAg
ICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdl
dFRleFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBFWFRfdGV4dHVyZV9maWx0
ZXJfYW5pc290cm9waWMgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50
aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0VGV4UGFy
YW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKLVdlYkdMR2V0
SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSog
cHJvZ3JhbSwgY29uc3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qIHVuaWZvcm1Mb2NhdGlvbikKK1dl
YkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFt
KiBwcm9ncmFtLCBjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogdW5pZm9ybUxvY2F0aW9uKQog
ewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmpl
Y3QoImdldFVuaWZvcm0iLCBwcm9ncmFtKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIXVuaWZvcm1Mb2NhdGlvbiB8fCB1
bmlmb3JtTG9jYXRpb24tPnByb2dyYW0oKSAhPSBwcm9ncmFtKSB7CiAgICAgICAgIHN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgImdldFVuaWZv
cm0iLCAibm8gdW5pZm9ybWxvY2F0aW9uIG9yIG5vdCB2YWxpZCBmb3IgdGhpcyBwcm9ncmFtIik7
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQogICAgIEdDM0RpbnQgbG9jYXRpb24gPSB1bmlmb3JtTG9jYXRpb24tPmxvY2F0aW9u
KCk7CiAKQEAgLTI1MjIsNyArMjUwNSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QKICAgICBk
ZWZhdWx0OgogICAgICAgICAvLyBDYW4ndCBoYW5kbGUgdGhpcyB0eXBlCiAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFLCAiZ2V0VW5pZm9y
bSIsICJ1bmhhbmRsZWQgdHlwZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICBzd2l0Y2ggKGJhc2VUeXBlKSB7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQ6IHsKQEAgLTI1MzIsOCArMjUxNSw4IEBA
IFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdM
UHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9jb250
ZXh0LT5nZXRVbmlmb3JtZnYob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBsb2NhdGlvbiwgdmFsdWUp
OwogICAgICAgICBpZiAobGVuZ3RoID09IDEpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHZhbHVlWzBdKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEZs
b2F0MzJBcnJheT4oRmxvYXQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCkpKTsKKyAgICAg
ICAgICAgIHJldHVybiB2YWx1ZVswXTsKKyAgICAgICAgcmV0dXJuIEZsb2F0MzJBcnJheTo6Y3Jl
YXRlKHZhbHVlLCBsZW5ndGgpOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlQ6IHsKICAgICAgICAgR0MzRGludCB2YWx1ZVs0XSA9IHswfTsKQEAgLTI1NDIsOCArMjUyNSw4
IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdl
YkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9j
b250ZXh0LT5nZXRVbmlmb3JtaXYob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBsb2NhdGlvbiwgdmFs
dWUpOwogICAgICAgICBpZiAobGVuZ3RoID09IDEpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKHZhbHVlWzBdKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRy
PEludDMyQXJyYXk+KEludDMyQXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKSkpOworICAgICAg
ICAgICAgcmV0dXJuIHZhbHVlWzBdOworICAgICAgICByZXR1cm4gSW50MzJBcnJheTo6Y3JlYXRl
KHZhbHVlLCBsZW5ndGgpOwogICAgIH0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCT09M
OiB7CiAgICAgICAgIEdDM0RpbnQgdmFsdWVbNF0gPSB7MH07CkBAIC0yNTUyLDEyICsyNTM1LDEy
IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdl
YkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9j
b250ZXh0LT5nZXRVbmlmb3JtaXYob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBsb2NhdGlvbiwgdmFs
dWUpOwogICAgICAgICBpZiAobGVuZ3RoID4gMSkgewotICAgICAgICAgICAgYm9vbCBib29sVmFs
dWVbMTZdID0gezB9OworICAgICAgICAgICAgVmVjdG9yPGJvb2w+IHZlY3RvcihsZW5ndGgpOwog
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBqID0gMDsgaiA8IGxlbmd0aDsgaisrKQotICAgICAg
ICAgICAgICAgIGJvb2xWYWx1ZVtqXSA9IHN0YXRpY19jYXN0PGJvb2w+KHZhbHVlW2pdKTsKLSAg
ICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oYm9vbFZhbHVlLCBsZW5ndGgpOworICAgICAg
ICAgICAgICAgIHZlY3RvcltqXSA9IHZhbHVlW2pdOworICAgICAgICAgICAgcmV0dXJuIFdURk1v
dmUodmVjdG9yKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRp
Y19jYXN0PGJvb2w+KHZhbHVlWzBdKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29s
Pih2YWx1ZVswXSk7CiAgICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIG5vdEltcGxlbWVudGVk
KCk7CkBAIC0yNTY1LDcgKzI1NDgsNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Z2V0VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0CiAKICAgICAv
LyBJZiB3ZSBnZXQgaGVyZSwgc29tZXRoaW5nIHdlbnQgd3JvbmcgaW4gb3VyIHVuZm9ydHVuYXRl
bHkgY29tcGxleCBsb2dpYyBhYm92ZQogICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX1ZBTFVFLCAiZ2V0VW5pZm9ybSIsICJ1bmtub3duIGVycm9yIik7Ci0g
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBSZWZQ
dHI8V2ViR0xVbmlmb3JtTG9jYXRpb24+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVu
aWZvcm1Mb2NhdGlvbihXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0IFN0cmluZyYgbmFtZSkK
QEAgLTI2MDYsNDMgKzI1ODksNDMgQEAgUmVmUHRyPFdlYkdMVW5pZm9ybUxvY2F0aW9uPiBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtTG9jYXRpb24oV2ViR0wKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldFZlcnRleEF0dHJpYihHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFu
eSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRyaWIoR0MzRHVpbnQgaW5k
ZXgsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkp
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBpZiAoaW5kZXggPj0gbV9tYXhWZXJ0ZXhBdHRyaWJzKSB7CiAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFLCAiZ2V0VmVydGV4
QXR0cmliIiwgImluZGV4IG91dCBvZiByYW5nZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIGNvbnN0IFdlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlOjpWZXJ0ZXhBdHRyaWJTdGF0ZSYgc3RhdGUgPSBtX2JvdW5k
VmVydGV4QXJyYXlPYmplY3QtPmdldFZlcnRleEF0dHJpYlN0YXRlKGluZGV4KTsKIAogICAgIGlm
ICgoaXNXZWJHTDIoKSB8fCBtX2FuZ2xlSW5zdGFuY2VkQXJyYXlzKSAmJiBwbmFtZSA9PSBHcmFw
aGljc0NvbnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9ESVZJU09SX0FOR0xFKQotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRlLmRpdmlzb3IpOworICAgICAgICByZXR1cm4gc3Rh
dGUuZGl2aXNvcjsKIAogICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HOgogICAgICAgICBpZiAo
KCFpc0dMRVMyQ29tcGxpYW50KCkgJiYgIWluZGV4ICYmIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVj
dC0+Z2V0VmVydGV4QXR0cmliU3RhdGUoMCkuYnVmZmVyQmluZGluZyA9PSBtX3ZlcnRleEF0dHJp
YjBCdWZmZXIpCiAgICAgICAgICAgICB8fCAhc3RhdGUuYnVmZmVyQmluZGluZwogICAgICAgICAg
ICAgfHwgIXN0YXRlLmJ1ZmZlckJpbmRpbmctPm9iamVjdCgpKQotICAgICAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8
V2ViR0xCdWZmZXI+KHN0YXRlLmJ1ZmZlckJpbmRpbmcpKTsKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICByZXR1cm4gc3RhdGUuYnVmZmVyQmluZGluZzsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRUQ6Ci0gICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oc3RhdGUuZW5hYmxlZCk7CisgICAgICAgIHJldHVybiBzdGF0ZS5l
bmFibGVkOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlf
Tk9STUFMSVpFRDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS5ub3JtYWxpemVk
KTsKKyAgICAgICAgcmV0dXJuIHN0YXRlLm5vcm1hbGl6ZWQ7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6VkVSVEVYX0FUVFJJQl9BUlJBWV9TSVpFOgotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKHN0YXRlLnNpemUpOworICAgICAgICByZXR1cm4gc3RhdGUuc2l6ZTsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX1NUUklERToKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS5vcmlnaW5hbFN0cmlkZSk7CisgICAgICAgIHJldHVy
biBzdGF0ZS5vcmlnaW5hbFN0cmlkZTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJU
RVhfQVRUUklCX0FSUkFZX1RZUEU6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGUu
dHlwZSk7CisgICAgICAgIHJldHVybiBzdGF0ZS50eXBlOwogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkNVUlJFTlRfVkVSVEVYX0FUVFJJQjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4oRmxvYXQzMkFycmF5OjpjcmVhdGUobV92ZXJ0ZXhB
dHRyaWJWYWx1ZVtpbmRleF0udmFsdWUsIDQpKSk7CisgICAgICAgIHJldHVybiBGbG9hdDMyQXJy
YXk6OmNyZWF0ZShtX3ZlcnRleEF0dHJpYlZhbHVlW2luZGV4XS52YWx1ZSwgNCk7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgImdldFZlcnRleEF0dHJpYiIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogfQogCkBAIC0yNjUwLDggKzI2MzMsNyBAQCBsb25nIGxvbmcgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Z2V0VmVydGV4QXR0cmliT2Zmc2V0KEdDM0R1aW50IGluZGV4LCBHQzNEZQog
ewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiAwOwot
ICAgIEdDM0RzaXplaXB0ciByZXN1bHQgPSBtX2NvbnRleHQtPmdldFZlcnRleEF0dHJpYk9mZnNl
dChpbmRleCwgcG5hbWUpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KHJlc3Vs
dCk7CisgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0VmVydGV4QXR0cmliT2Zmc2V0KGluZGV4LCBw
bmFtZSk7CiB9CiAKIEdDM0Rib29sZWFuIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzQnVm
ZmVyKFdlYkdMQnVmZmVyKiBidWZmZXIpCkBAIC0zMTEzLDggKzMwOTUsOCBAQCB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdD
M0RzaXplaSB3aWR0aAogI3VuZGVmIFBBQ0tFRF9JTlRFUk5BTF9GT1JNQVRfQ0hFQ0sKIAogICAg
IC8vIENhbGN1bGF0ZSBhcnJheSBzaXplLCB0YWtpbmcgaW50byBjb25zaWRlcmF0aW9uIG9mIFBB
Q0tfQUxJR05NRU5ULgotICAgIHVuc2lnbmVkIGludCB0b3RhbEJ5dGVzUmVxdWlyZWQgPSAwOwot
ICAgIHVuc2lnbmVkIGludCBwYWRkaW5nID0gMDsKKyAgICB1bnNpZ25lZCB0b3RhbEJ5dGVzUmVx
dWlyZWQgPSAwOworICAgIHVuc2lnbmVkIHBhZGRpbmcgPSAwOwogICAgIGlmICghbV9pc1JvYnVz
dG5lc3NFWFRTdXBwb3J0ZWQpIHsKICAgICAgICAgR0MzRGVudW0gZXJyb3IgPSBtX2NvbnRleHQt
PmNvbXB1dGVJbWFnZVNpemVJbkJ5dGVzKGZvcm1hdCwgdHlwZSwgd2lkdGgsIGhlaWdodCwgbV9w
YWNrQWxpZ25tZW50LCAmdG90YWxCeXRlc1JlcXVpcmVkLCAmcGFkZGluZyk7CiAgICAgICAgIGlm
IChlcnJvciAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9fRVJST1IpIHsKQEAgLTQ1OTAsNyArNDU3
Miw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliUG9pbnRl
cihHQzNEdWludCBpbmRleCwgR0MzRGludCBzaXplCiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgLy8gRGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgdGhlIGJvdW5kIGJ1ZmZlciBj
YW4gaG9sZCwgZ2l2ZW4gdGhlIG9mZnNldCwgc2l6ZSwgdHlwZSBhbmQgc3RyaWRlCi0gICAgdW5z
aWduZWQgaW50IHR5cGVTaXplID0gc2l6ZUluQnl0ZXModHlwZSk7CisgICAgYXV0byB0eXBlU2l6
ZSA9IHNpemVJbkJ5dGVzKHR5cGUpOwogICAgIGlmICghdHlwZVNpemUpIHsKICAgICAgICAgc3lu
dGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgInZlcnRleEF0
dHJpYlBvaW50ZXIiLCAiaW52YWxpZCB0eXBlIik7CiAgICAgICAgIHJldHVybjsKQEAgLTQ2MDEs
NyArNDU4Myw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmli
UG9pbnRlcihHQzNEdWludCBpbmRleCwgR0MzRGludCBzaXplCiAgICAgfQogICAgIEdDM0RzaXpl
aSBieXRlc1BlckVsZW1lbnQgPSBzaXplICogdHlwZVNpemU7CiAKLSAgICBtX2JvdW5kVmVydGV4
QXJyYXlPYmplY3QtPnNldFZlcnRleEF0dHJpYlN0YXRlKGluZGV4LCBieXRlc1BlckVsZW1lbnQs
IHNpemUsIHR5cGUsIG5vcm1hbGl6ZWQsIHN0cmlkZSwgc3RhdGljX2Nhc3Q8R0MzRGludHB0cj4o
b2Zmc2V0KSwgbV9ib3VuZEFycmF5QnVmZmVyKTsKKyAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmpl
Y3QtPnNldFZlcnRleEF0dHJpYlN0YXRlKGluZGV4LCBieXRlc1BlckVsZW1lbnQsIHNpemUsIHR5
cGUsIG5vcm1hbGl6ZWQsIHN0cmlkZSwgc3RhdGljX2Nhc3Q8R0MzRGludHB0cj4ob2Zmc2V0KSwg
Km1fYm91bmRBcnJheUJ1ZmZlcik7CiAgICAgbV9jb250ZXh0LT52ZXJ0ZXhBdHRyaWJQb2ludGVy
KGluZGV4LCBzaXplLCB0eXBlLCBub3JtYWxpemVkLCBzdHJpZGUsIHN0YXRpY19jYXN0PEdDM0Rp
bnRwdHI+KG9mZnNldCkpOwogfQogCkBAIC00NjkyLDcgKzQ2NzQsNyBAQCBQbGF0Zm9ybUxheWVy
KiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKICAgICBy
ZXR1cm4gKCFpc0NvbnRleHRMb3N0KCkgJiYgIW1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikg
PyBtX2NvbnRleHQtPnBsYXRmb3JtTGF5ZXIoKSA6IDA7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6cmVtb3ZlU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmpl
Y3QpCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlbW92ZVNoYXJlZE9iamVjdChX
ZWJHTFNoYXJlZE9iamVjdCYgb2JqZWN0KQogewogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJl
c29sdXRpb24pCiAgICAgICAgIHJldHVybjsKQEAgLTQ3MDAsNyArNDY4Miw3IEBAIHZvaWQgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVtb3ZlU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2Jq
ZWN0KiBvYmplY3QpCiAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZU9iamVjdChvYmplY3QpOwog
fQogCi12b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZFNoYXJlZE9iamVjdChXZWJH
TFNoYXJlZE9iamVjdCogb2JqZWN0KQordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjph
ZGRTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmIG9iamVjdCkKIHsKICAgICBpZiAobV9p
c1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKQogICAgICAgICByZXR1cm47CkBAIC00NzA5LDIxICs0
NjkxLDIxIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRkU2hhcmVkT2JqZWN0
KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QpCiAgICAgbV9jb250ZXh0R3JvdXAtPmFkZE9iamVj
dChvYmplY3QpOwogfQogCi12b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlbW92ZUNv
bnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OnJlbW92ZUNvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0JiBv
YmplY3QpCiB7CiAgICAgaWYgKG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikKICAgICAgICAg
cmV0dXJuOwogCi0gICAgbV9jb250ZXh0T2JqZWN0cy5yZW1vdmUob2JqZWN0KTsKKyAgICBtX2Nv
bnRleHRPYmplY3RzLnJlbW92ZSgmb2JqZWN0KTsKIH0KIAotdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjphZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCogb2JqZWN0KQor
dm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29u
dGV4dE9iamVjdCYgb2JqZWN0KQogewogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRp
b24pCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVCghaXNDb250ZXh0TG9zdCgpKTsKLSAg
ICBtX2NvbnRleHRPYmplY3RzLmFkZChvYmplY3QpOworICAgIG1fY29udGV4dE9iamVjdHMuYWRk
KCZvYmplY3QpOwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRldGFjaEFu
ZFJlbW92ZUFsbE9iamVjdHMoKQpAQCAtNDc2MSw1NiArNDc0Myw1NiBAQCBib29sIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCitib29sIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUp
CiB7CiAgICAgR0MzRGJvb2xlYW4gdmFsdWUgPSAwOwogICAgIG1fY29udGV4dC0+Z2V0Qm9vbGVh
bnYocG5hbWUsICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDxi
b29sPih2YWx1ZSkpOworICAgIHJldHVybiB2YWx1ZTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJvb2xlYW5BcnJheVBhcmFtZXRlcihHQzNEZW51bSBw
bmFtZSkKK1ZlY3Rvcjxib29sPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFu
QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKHBuYW1lICE9IEdyYXBo
aWNzQ29udGV4dDNEOjpDT0xPUl9XUklURU1BU0spIHsKICAgICAgICAgbm90SW1wbGVtZW50ZWQo
KTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygwLCAwKTsKKyAgICAgICAgcmV0dXJuIHsg
fTsKICAgICB9Ci0gICAgR0MzRGJvb2xlYW4gdmFsdWVbNF0gPSB7MH07CisgICAgR0MzRGJvb2xl
YW4gdmFsdWVbNF0gPSB7IDAgfTsKICAgICBtX2NvbnRleHQtPmdldEJvb2xlYW52KHBuYW1lLCB2
YWx1ZSk7Ci0gICAgYm9vbCBib29sVmFsdWVbNF07Ci0gICAgZm9yIChpbnQgaWkgPSAwOyBpaSA8
IDQ7ICsraWkpCi0gICAgICAgIGJvb2xWYWx1ZVtpaV0gPSBzdGF0aWNfY2FzdDxib29sPih2YWx1
ZVtpaV0pOwotICAgIHJldHVybiBXZWJHTEdldEluZm8oYm9vbFZhbHVlLCA0KTsKKyAgICBWZWN0
b3I8Ym9vbD4gdmVjdG9yKDQpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCA0OyArK2kp
CisgICAgICAgIHZlY3RvcltpXSA9IHZhbHVlW2ldOworICAgIHJldHVybiB2ZWN0b3I7CiB9CiAK
LVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRGbG9hdFBhcmFtZXRl
cihHQzNEZW51bSBwbmFtZSkKK2Zsb2F0IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEZs
b2F0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdDM0RmbG9hdCB2YWx1ZSA9IDA7
CiAgICAgbV9jb250ZXh0LT5nZXRGbG9hdHYocG5hbWUsICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgcmV0dXJuIHZhbHVlOwogfQogCi1XZWJHTEdldEluZm8g
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0SW50UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQoraW50IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEludFBhcmFtZXRlcihHQzNEZW51
bSBwbmFtZSkKIHsKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBtX2NvbnRleHQtPmdldElu
dGVnZXJ2KHBuYW1lLCAmdmFsdWUpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOwor
ICAgIHJldHVybiB2YWx1ZTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQordW5zaWduZWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoR0MzRGVu
dW0gcG5hbWUpCiB7CiAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAgICAgbV9jb250ZXh0LT5nZXRJ
bnRlZ2VydihwbmFtZSwgJnZhbHVlKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19j
YXN0PHVuc2lnbmVkIGludD4odmFsdWUpKTsKKyAgICByZXR1cm4gdmFsdWU7CiB9CiAKLVdlYkdM
R2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRJbnQ2NFBhcmFtZXRlcihHQzNE
ZW51bSBwbmFtZSkKK2xvbmcgbG9uZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRJbnQ2
NFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNEaW50NjQgdmFsdWUgPSAwOwog
ICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcjY0dihwbmFtZSwgJnZhbHVlKTsKLSAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICByZXR1cm4gdmFsdWU7CiB9CiAKLVdlYkdMR2V0SW5m
byBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRXZWJHTEZsb2F0QXJyYXlQYXJhbWV0ZXIo
R0MzRGVudW0gcG5hbWUpCitSZWZQdHI8RmxvYXQzMkFycmF5PiBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRXZWJHTEZsb2F0QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAg
ICAgR0MzRGZsb2F0IHZhbHVlWzRdID0gezB9OwogICAgIG1fY29udGV4dC0+Z2V0RmxvYXR2KHBu
YW1lLCB2YWx1ZSk7CkBAIC00ODI4LDEwICs0ODEwLDEwIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpnZXRXZWJHTEZsb2F0QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0g
cG5hCiAgICAgZGVmYXVsdDoKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICB9Ci0gICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4oRmxvYXQzMkFycmF5
OjpjcmVhdGUodmFsdWUsIGxlbmd0aCkpKTsKKyAgICByZXR1cm4gRmxvYXQzMkFycmF5OjpjcmVh
dGUodmFsdWUsIGxlbmd0aCk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQorUmVmUHRy
PEludDMyQXJyYXk+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFdlYkdMSW50QXJyYXlQ
YXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgR0MzRGludCB2YWx1ZVs0XSA9IHswfTsK
ICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KHBuYW1lLCB2YWx1ZSk7CkBAIC00ODQ3LDcgKzQ4
MjksNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJ
bnRBcnJheVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZQogICAgIGRlZmF1bHQ6CiAgICAgICAgIG5v
dEltcGxlbWVudGVkKCk7CiAgICAgfQotICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0
cjxJbnQzMkFycmF5PihJbnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCkpKTsKKyAgICBy
ZXR1cm4gSW50MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgpOwogfQogCiBib29sIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrVGV4dHVyZUNvbXBsZXRlbmVzcyhjb25zdCBjaGFy
KiBmdW5jdGlvbk5hbWUsIGJvb2wgcHJlcGFyZVRvRHJhdykKQEAgLTUwNzEsNyArNTA1Myw3IEBA
IGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVDb21wcmVzc2VkVGV4RnVu
Y0RhdGEoY29uc3QgY2hhciogZnVuY3RpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
LSAgICB1bnNpZ25lZCBpbnQgYnl0ZXNSZXF1aXJlZCA9IDA7CisgICAgdW5zaWduZWQgYnl0ZXNS
ZXF1aXJlZCA9IDA7CiAKICAgICBzd2l0Y2ggKGZvcm1hdCkgewogICAgIGNhc2UgRXh0ZW5zaW9u
czNEOjpDT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhUOgpAQCAtNTMyOCwxNyArNTMxMCwxNiBA
QCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlVW5pZm9ybU1hdHJpeFBh
cmFtZXRlcnMoY29uc3QgY2hhciogZnVuYwogCiBXZWJHTEJ1ZmZlciogV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dmFsaWRhdGVCdWZmZXJEYXRhUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5j
dGlvbk5hbWUsIEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gdXNhZ2UpCiB7Ci0gICAgV2ViR0xC
dWZmZXIqIGJ1ZmZlciA9IDA7CisgICAgc3RkOjpvcHRpb25hbDxXZWJHTEJ1ZmZlcio+IGJ1ZmZl
cjsKICAgICBzd2l0Y2ggKHRhcmdldCkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkVM
RU1FTlRfQVJSQVlfQlVGRkVSOgotICAgICAgICBidWZmZXIgPSBtX2JvdW5kVmVydGV4QXJyYXlP
YmplY3QtPmdldEVsZW1lbnRBcnJheUJ1ZmZlcigpLmdldCgpOworICAgICAgICBidWZmZXIgPSBt
X2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1lbnRBcnJheUJ1ZmZlcigpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9CVUZGRVI6CiAgICAg
ICAgIGJ1ZmZlciA9IG1fYm91bmRBcnJheUJ1ZmZlci5nZXQoKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgZGVmYXVsdDoKICNpZiBFTkFCTEUoV0VCR0wyKQotICAgICAgICBib29sIHN1Y2Nlc3MgPSB0
cnVlOwogICAgICAgICBpZiAoaXNXZWJHTDIoKSkgewogICAgICAgICAgICAgc3dpdGNoICh0YXJn
ZXQpIHsKICAgICAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPUFlfUkVBRF9CVUZG
RVI6CkBAIC01MzU5LDE5ICs1MzQwLDE1IEBAIFdlYkdMQnVmZmVyKiBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjp2YWxpZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqCiAgICAg
ICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTklGT1JNX0JVRkZFUjoKICAgICAgICAg
ICAgICAgICBidWZmZXIgPSBtX2JvdW5kVW5pZm9ybUJ1ZmZlci5nZXQoKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgc3VjY2Vz
cyA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICAgICAgaWYgKHN1Y2Nl
c3MpCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmIChidWZmZXIpCisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICNlbmRpZgogICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJpbnZh
bGlkIHRhcmdldCIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgaWYgKCFi
dWZmZXIpIHsKKyAgICBpZiAoIWJ1ZmZlciB8fCAhYnVmZmVyLnZhbHVlKCkpIHsKICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCBm
dW5jdGlvbk5hbWUsICJubyBidWZmZXIiKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQpAQCAtNTM3OSw3ICs1MzU2LDcgQEAgV2ViR0xCdWZmZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OnZhbGlkYXRlQnVmZmVyRGF0YVBhcmFtZXRlcnMoY29uc3QgY2hhcioKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTVFJFQU1fRFJBVzoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpTVEFUSUNfRFJBVzoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEWU5BTUlDX0RS
QVc6Ci0gICAgICAgIHJldHVybiBidWZmZXI7CisgICAgICAgIHJldHVybiBidWZmZXIudmFsdWUo
KTsKICAgICB9CiAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCB1c2FnZSIpOwogICAgIHJldHVybiBudWxs
cHRyOwpAQCAtNTkyOSw2ICs1OTA2LDE2IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6dmVydGV4QXR0cmliRGl2aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2CiAgICAg
bV9jb250ZXh0LT52ZXJ0ZXhBdHRyaWJEaXZpc29yKGluZGV4LCBkaXZpc29yKTsKIH0KIAorYm9v
bCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjplbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oY29u
c3QgY2hhciogZXh0ZW5zaW9uTmFtZUxpdGVyYWwpCit7CisgICAgQVNTRVJUKG1fY29udGV4dCk7
CisgICAgYXV0byYgZXh0ZW5zaW9ucyA9IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpOworICAg
IFN0cmluZyBleHRlbnNpb25OYW1lIHsgQVNDSUlMaXRlcmFsIHsgZXh0ZW5zaW9uTmFtZUxpdGVy
YWwgfSB9OworICAgIGlmICghZXh0ZW5zaW9ucy5zdXBwb3J0cyhleHRlbnNpb25OYW1lKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGV4dGVuc2lvbnMuZW5zdXJlRW5hYmxlZChleHRlbnNp
b25OYW1lKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmgKaW5kZXggNzM5M2EzODYyODMzZmNiODZiYjE3MWIyMDZiMjdiY2VkOWIzOWVj
Zi4uOWY5ZThiNjQxZmY2YmNkMzlhZDI3NTZkMjczNzdkZTIzMjljZGY2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMwLDEzICszMCwxMCBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAj
aW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgIldl
YkdMQW55LmgiCiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIgotI2luY2x1ZGUg
IldlYkdMR2V0SW5mby5oIgotI2luY2x1ZGUgIldlYkdMT2JqZWN0LmgiCiAjaW5jbHVkZSAiV2Vi
R0xUZXh0dXJlLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgotI2luY2x1ZGUgPHJ1bnRpbWUvRmxvYXQz
MkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9JbnQzMkFycmF5Lmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNDgsNyArNDUsNiBAQCBjbGFzcyBFWFRzUkdCOwogY2xhc3MgRVhURnJh
Z0RlcHRoOwogY2xhc3MgSFRNTEltYWdlRWxlbWVudDsKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7
Ci1jbGFzcyBJbWFnZUJ1ZmZlcjsKIGNsYXNzIEltYWdlRGF0YTsKIGNsYXNzIEludFNpemU7CiBj
bGFzcyBPRVNTdGFuZGFyZERlcml2YXRpdmVzOwpAQCAtMTkxLDI0ICsxODcsMjQgQEAgcHVibGlj
OgogICAgIFJlZlB0cjxXZWJHTEFjdGl2ZUluZm8+IGdldEFjdGl2ZVVuaWZvcm0oV2ViR0xQcm9n
cmFtKiwgR0MzRHVpbnQgaW5kZXgpOwogICAgIGJvb2wgZ2V0QXR0YWNoZWRTaGFkZXJzKFdlYkdM
UHJvZ3JhbSosIFZlY3RvcjxSZWZQdHI8V2ViR0xTaGFkZXI+PiYpOwogICAgIEdDM0RpbnQgZ2V0
QXR0cmliTG9jYXRpb24oV2ViR0xQcm9ncmFtKiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICBX
ZWJHTEdldEluZm8gZ2V0QnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0g
cG5hbWUpOworICAgIFdlYkdMQW55IGdldEJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQs
IEdDM0RlbnVtIHBuYW1lKTsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkdMQ29udGV4dEF0dHJpYnV0
ZXM+IGdldENvbnRleHRBdHRyaWJ1dGVzKCk7CiAgICAgR0MzRGVudW0gZ2V0RXJyb3IoKTsKICAg
ICB2aXJ0dWFsIFdlYkdMRXh0ZW5zaW9uKiBnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1l
KSA9IDA7Ci0gICAgdmlydHVhbCBXZWJHTEdldEluZm8gZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50
UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0g
cG5hbWUpID0gMDsKLSAgICB2aXJ0dWFsIFdlYkdMR2V0SW5mbyBnZXRQYXJhbWV0ZXIoR0MzRGVu
dW0gcG5hbWUpID0gMDsKLSAgICBXZWJHTEdldEluZm8gZ2V0UHJvZ3JhbVBhcmFtZXRlcihXZWJH
TFByb2dyYW0qLCBHQzNEZW51bSBwbmFtZSk7CisgICAgdmlydHVhbCBXZWJHTEFueSBnZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRh
Y2htZW50LCBHQzNEZW51bSBwbmFtZSkgPSAwOworICAgIHZpcnR1YWwgV2ViR0xBbnkgZ2V0UGFy
YW1ldGVyKEdDM0RlbnVtIHBuYW1lKSA9IDA7CisgICAgV2ViR0xBbnkgZ2V0UHJvZ3JhbVBhcmFt
ZXRlcihXZWJHTFByb2dyYW0qLCBHQzNEZW51bSBwbmFtZSk7CiAgICAgU3RyaW5nIGdldFByb2dy
YW1JbmZvTG9nKFdlYkdMUHJvZ3JhbSopOwotICAgIFdlYkdMR2V0SW5mbyBnZXRSZW5kZXJidWZm
ZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7Ci0gICAgV2ViR0xH
ZXRJbmZvIGdldFNoYWRlclBhcmFtZXRlcihXZWJHTFNoYWRlciosIEdDM0RlbnVtIHBuYW1lKTsK
KyAgICBXZWJHTEFueSBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0U2hhZGVyUGFyYW1ldGVyKFdlYkdMU2hh
ZGVyKiwgR0MzRGVudW0gcG5hbWUpOwogICAgIFN0cmluZyBnZXRTaGFkZXJJbmZvTG9nKFdlYkdM
U2hhZGVyKik7CiAgICAgUmVmUHRyPFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0PiBnZXRTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0MzRGVudW0gcHJlY2lzaW9u
VHlwZSk7CiAgICAgU3RyaW5nIGdldFNoYWRlclNvdXJjZShXZWJHTFNoYWRlciopOwogICAgIHZp
cnR1YWwgVmVjdG9yPFN0cmluZz4gZ2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpID0gMDsKLSAgICBX
ZWJHTEdldEluZm8gZ2V0VGV4UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5h
bWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFdl
YkdMVW5pZm9ybUxvY2F0aW9uKik7CisgICAgV2ViR0xBbnkgZ2V0VGV4UGFyYW1ldGVyKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldFVuaWZvcm0oV2Vi
R0xQcm9ncmFtKiwgY29uc3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qKTsKICAgICBSZWZQdHI8V2Vi
R0xVbmlmb3JtTG9jYXRpb24+IGdldFVuaWZvcm1Mb2NhdGlvbihXZWJHTFByb2dyYW0qLCBjb25z
dCBTdHJpbmcmKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0VmVydGV4QXR0cmliKEdDM0R1aW50IGlu
ZGV4LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0VmVydGV4QXR0cmliKEdDM0R1
aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSk7CiAgICAgbG9uZyBsb25nIGdldFZlcnRleEF0dHJp
Yk9mZnNldChHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUpOwogCiAgICAgdmlydHVhbCB2
b2lkIGhpbnQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBtb2RlKSA9IDA7CkBAIC0zMjMsOCAr
MzE5LDggQEAgcHVibGljOgogICAgIHZvaWQgcGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMo
KSBvdmVycmlkZTsKICAgICBSZWZQdHI8SW1hZ2VEYXRhPiBwYWludFJlbmRlcmluZ1Jlc3VsdHNU
b0ltYWdlRGF0YSgpOwogCi0gICAgdm9pZCByZW1vdmVTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRP
YmplY3QqKTsKLSAgICB2b2lkIHJlbW92ZUNvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0
Kik7CisgICAgdm9pZCByZW1vdmVTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmKTsKKyAg
ICB2b2lkIHJlbW92ZUNvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0Jik7CiAgICAgCiAg
ICAgdW5zaWduZWQgZ2V0TWF4VmVydGV4QXR0cmlicygpIGNvbnN0IHsgcmV0dXJuIG1fbWF4VmVy
dGV4QXR0cmliczsgfQogCkBAIC0zMzUsNyArMzMxLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6
CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxlbWVudCYsIFdlYkdM
Q29udGV4dEF0dHJpYnV0ZXMpOwotICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENh
bnZhc0VsZW1lbnQmLCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4dEF0
dHJpYnV0ZXMpOworICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENhbnZhc0VsZW1l
bnQmLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwog
CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMRHJhd0J1ZmZlcnM7CiAgICAgZnJpZW5kIGNsYXNzIFdl
YkdMRnJhbWVidWZmZXI7CkBAIC0zNjAsOCArMzU2LDggQEAgcHJvdGVjdGVkOgogICAgIGNvbnN0
IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGNh
blN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZv
aWQgYWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Kik7Ci0gICAgdm9pZCBhZGRDb250
ZXh0T2JqZWN0KFdlYkdMQ29udGV4dE9iamVjdCopOworICAgIHZvaWQgYWRkU2hhcmVkT2JqZWN0
KFdlYkdMU2hhcmVkT2JqZWN0Jik7CisgICAgdm9pZCBhZGRDb250ZXh0T2JqZWN0KFdlYkdMQ29u
dGV4dE9iamVjdCYpOwogICAgIHZvaWQgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpOwogCiAg
ICAgdm9pZCBkZXN0cm95R3JhcGhpY3NDb250ZXh0M0QoKTsKQEAgLTQwNSw2ICs0MDEsOCBAQCBw
cm90ZWN0ZWQ6CiAKICAgICBXZWJHTFRleHR1cmU6OlRleHR1cmVFeHRlbnNpb25GbGFnIHRleHR1
cmVFeHRlbnNpb25GbGFncygpIGNvbnN0OwogCisgICAgYm9vbCBlbmFibGVTdXBwb3J0ZWRFeHRl
bnNpb24oY29uc3QgY2hhciogZXh0ZW5zaW9uTmFtZUxpdGVyYWwpOworCiAgICAgUmVmUHRyPEdy
YXBoaWNzQ29udGV4dDNEPiBtX2NvbnRleHQ7CiAgICAgUmVmUHRyPFdlYkdMQ29udGV4dEdyb3Vw
PiBtX2NvbnRleHRHcm91cDsKIApAQCAtNDE0LDcgKzQxMiw3IEBAIHByb3RlY3RlZDoKICAgICAv
LyBvbiBob3cgZXhhY3RseSB0aGUgcGxhdGZvcm0gZGlzY292ZXJzIHRoYXQgdGhlIGNvbnRleHQg
d2FzIGxvc3QuIEZvciBiZXR0ZXIKICAgICAvLyBwb3J0YWJpbGl0eSB3ZSBhbHdheXMgZGVmZXIg
dGhlIGRpc3BhdGNoIG9mIHRoZSBldmVudC4KICAgICBUaW1lciBtX2Rpc3BhdGNoQ29udGV4dExv
c3RFdmVudFRpbWVyOwotICAgIGJvb2wgbV9yZXN0b3JlQWxsb3dlZDsKKyAgICBib29sIG1fcmVz
dG9yZUFsbG93ZWQgeyBmYWxzZSB9OwogICAgIFRpbWVyIG1fcmVzdG9yZVRpbWVyOwogCiAgICAg
Ym9vbCBtX25lZWRzVXBkYXRlOwpAQCAtNDMyLDEyICs0MzAsMTAgQEAgcHJvdGVjdGVkOgogCiAg
ICAgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlPiBtX2RlZmF1bHRWZXJ0ZXhBcnJh
eU9iamVjdDsKICAgICBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U+IG1fYm91bmRW
ZXJ0ZXhBcnJheU9iamVjdDsKLSAgICB2b2lkIHNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QoUGFz
c1JlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZT4gYXJyYXlPYmplY3QpCisKKyAgICB2
b2lkIHNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QoV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2Uq
IGFycmF5T2JqZWN0KQogICAgIHsKLSAgICAgICAgaWYgKGFycmF5T2JqZWN0KQotICAgICAgICAg
ICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0ID0gYXJyYXlPYmplY3Q7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCA9IG1fZGVmYXVsdFZlcnRleEFy
cmF5T2JqZWN0OworICAgICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBhcnJheU9iamVj
dCA/IGFycmF5T2JqZWN0IDogbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CiAgICAgfQogICAg
IAogICAgIGNsYXNzIFZlcnRleEF0dHJpYlZhbHVlIHsKQEAgLTQ5MywxMiArNDg5LDEyIEBAIHBy
b3RlY3RlZDoKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlcj5bXT4gbV9idWZmZXJzOwogICAgICAgICBpbnQgbV9jYXBhY2l0eTsKICAgICB9OwotICAg
IExSVUltYWdlQnVmZmVyQ2FjaGUgbV9nZW5lcmF0ZWRJbWFnZUNhY2hlOworICAgIExSVUltYWdl
QnVmZmVyQ2FjaGUgbV9nZW5lcmF0ZWRJbWFnZUNhY2hlIHsgMCB9OwogCiAgICAgR0MzRGludCBt
X21heFRleHR1cmVTaXplOwogICAgIEdDM0RpbnQgbV9tYXhDdWJlTWFwVGV4dHVyZVNpemU7CiAg
ICAgR0MzRGludCBtX21heFJlbmRlcmJ1ZmZlclNpemU7Ci0gICAgR0MzRGludCBtX21heFZpZXdw
b3J0RGltc1syXTsKKyAgICBHQzNEaW50IG1fbWF4Vmlld3BvcnREaW1zWzJdIHsgMCwgMCB9Owog
ICAgIEdDM0RpbnQgbV9tYXhUZXh0dXJlTGV2ZWw7CiAgICAgR0MzRGludCBtX21heEN1YmVNYXBU
ZXh0dXJlTGV2ZWw7CiAKQEAgLTUxMyw4ICs1MDksOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBt
X3VucGFja0ZsaXBZOwogICAgIGJvb2wgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhOwogICAgIEdD
M0RlbnVtIG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb247Ci0gICAgYm9vbCBtX2NvbnRleHRM
b3N0OwotICAgIExvc3RDb250ZXh0TW9kZSBtX2NvbnRleHRMb3N0TW9kZTsKKyAgICBib29sIG1f
Y29udGV4dExvc3QgeyBmYWxzZSB9OworICAgIExvc3RDb250ZXh0TW9kZSBtX2NvbnRleHRMb3N0
TW9kZSB7IFN5bnRoZXRpY0xvc3RDb250ZXh0IH07CiAgICAgV2ViR0xDb250ZXh0QXR0cmlidXRl
cyBtX2F0dHJpYnV0ZXM7CiAKICAgICBib29sIG1fbGF5ZXJDbGVhcmVkOwpAQCAtNTM1LDE3ICs1
MzEsMTggQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9pc0RlcHRoU3RlbmNpbFN1cHBvcnRlZDsK
ICAgICBib29sIG1faXNSb2J1c3RuZXNzRVhUU3VwcG9ydGVkOwogCi0gICAgYm9vbCBtX3N5bnRo
ZXNpemVkRXJyb3JzVG9Db25zb2xlOworICAgIGJvb2wgbV9zeW50aGVzaXplZEVycm9yc1RvQ29u
c29sZSB7IHRydWUgfTsKICAgICBpbnQgbV9udW1HTEVycm9yc1RvQ29uc29sZUFsbG93ZWQ7CiAK
ICAgICAvLyBBIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBjYW4gYmUgY3JlYXRlZCBpbiBhIHN0YXRl
IHdoZXJlIGl0IGFwcGVhcnMgYXMKICAgICAvLyBhIHZhbGlkIGFuZCBhY3RpdmUgY29udGV4dCwg
YnV0IHdpbGwgbm90IGV4ZWN1dGUgYW55IGltcG9ydGFudCBvcGVyYXRpb25zCiAgICAgLy8gdW50
aWwgaXRzIGxvYWQgcG9saWN5IGlzIGNvbXBsZXRlbHkgcmVzb2x2ZWQuCi0gICAgYm9vbCBtX2lz
UGVuZGluZ1BvbGljeVJlc29sdXRpb247Ci0gICAgYm9vbCBtX2hhc1JlcXVlc3RlZFBvbGljeVJl
c29sdXRpb247CisgICAgYm9vbCBtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24geyBmYWxzZSB9
OworICAgIGJvb2wgbV9oYXNSZXF1ZXN0ZWRQb2xpY3lSZXNvbHV0aW9uIHsgZmFsc2UgfTsKICAg
ICBib29sIGlzQ29udGV4dExvc3RPclBlbmRpbmcoKTsKIAotICAgIC8vIEVuYWJsZWQgZXh0ZW5z
aW9uIG9iamVjdHMuIEZJWE1FOiBNb3ZlIHRoZXNlIHRvIFdlYkdMMVJlbmRlcmluZ0NvbnRleHQs
IG5vdCBuZWVkZWQgZm9yIFdlYkdMMgorICAgIC8vIEVuYWJsZWQgZXh0ZW5zaW9uIG9iamVjdHMu
CisgICAgLy8gRklYTUU6IE1vdmUgc29tZSBvZiB0aGVzZSB0byBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQsIHRoZSBvbmVzIG5vdCBuZWVkZWQgZm9yIFdlYkdMMgogICAgIHN0ZDo6dW5pcXVlX3B0cjxF
WFRGcmFnRGVwdGg+IG1fZXh0RnJhZ0RlcHRoOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFWFRCbGVu
ZE1pbk1heD4gbV9leHRCbGVuZE1pbk1heDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RVhUc1JHQj4g
bV9leHRzUkdCOwpAQCAtNTY4LDE1ICs1NjUsMTUgQEAgcHJvdGVjdGVkOgogICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJHTERyYXdCdWZmZXJzPiBtX3dlYmdsRHJhd0J1ZmZlcnM7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPEFOR0xFSW5zdGFuY2VkQXJyYXlzPiBtX2FuZ2xlSW5zdGFuY2VkQXJyYXlzOwog
Ci0gICAgLy8gSGVscGVycyBmb3IgZ2V0UGFyYW1ldGVyIGFuZCBvdGhlcnMKLSAgICBXZWJHTEdl
dEluZm8gZ2V0Qm9vbGVhblBhcmFtZXRlcihHQzNEZW51bSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdl
dEJvb2xlYW5BcnJheVBhcmFtZXRlcihHQzNEZW51bSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEZs
b2F0UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0SW50UGFyYW1ldGVy
KEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoR0Mz
RGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRJbnQ2NFBhcmFtZXRlcihHQzNEZW51bSk7Ci0g
ICAgV2ViR0xHZXRJbmZvIGdldFdlYkdMRmxvYXRBcnJheVBhcmFtZXRlcihHQzNEZW51bSk7Ci0g
ICAgV2ViR0xHZXRJbmZvIGdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0pOworICAg
IC8vIEhlbHBlcnMgZm9yIGdldFBhcmFtZXRlciBhbmQgb3RoZXIgc2ltaWxhciBmdW5jdGlvbnMu
CisgICAgYm9vbCBnZXRCb29sZWFuUGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBWZWN0b3I8Ym9v
bD4gZ2V0Qm9vbGVhbkFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBmbG9hdCBnZXRGbG9h
dFBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgaW50IGdldEludFBhcmFtZXRlcihHQzNEZW51bSk7
CisgICAgdW5zaWduZWQgZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoR0MzRGVudW0pOworICAgIGxv
bmcgbG9uZyBnZXRJbnQ2NFBhcmFtZXRlcihHQzNEZW51bSk7CisgICAgUmVmUHRyPEZsb2F0MzJB
cnJheT4gZ2V0V2ViR0xGbG9hdEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBSZWZQdHI8
SW50MzJBcnJheT4gZ2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihHQzNEZW51bSk7CiAKICAgICAv
LyBDbGVhciB0aGUgYmFja2J1ZmZlciBpZiBpdCB3YXMgY29tcG9zaXRlZCBzaW5jZSB0aGUgbGFz
dCBvcGVyYXRpb24uCiAgICAgLy8gY2xlYXJNYXNrIGlzIHNldCB0byB0aGUgYml0ZmllbGQgb2Yg
YW55IGNsZWFyIHRoYXQgd291bGQgaGFwcGVuIGFueXdheSBhdCB0aGlzIHRpbWUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2FtcGxlci5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmgKaW5kZXggYmQ5YzBlYWRkMDNhNzUyOTAz
Y2RjZWRkM2U5NmVjZmFiMjE4MTJjNS4uYTA1MzFmZjI3Yzg2M2M0NzNjYmRkMmU4YTdlNDZhMDA0
MzhjNmUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1w
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEs
MTcgKzMxLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2ViR0xTYW1wbGVyIGZp
bmFsIDogcHVibGljIFdlYkdMU2hhcmVkT2JqZWN0IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5X
ZWJHTFNhbXBsZXIoKTsKLQogICAgIHN0YXRpYyBSZWY8V2ViR0xTYW1wbGVyPiBjcmVhdGUoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOworICAgIHZpcnR1YWwgfldlYkdMU2FtcGxlcigpOwog
CiBwcm90ZWN0ZWQ6Ci0gICAgV2ViR0xTYW1wbGVyKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
KTsKLQotICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRm
b3JtM0RPYmplY3QpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIGJvb2wgaXNTYW1wbGVyKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGV4cGxpY2l0IFdlYkdMU2FtcGxl
cihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CisgICAgdm9pZCBkZWxldGVPYmplY3RJbXBs
KEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgZmluYWw7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFNoYWRlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIu
aAppbmRleCA2YWY1YzI2OWQ1MGFhZTRkODU1YjdkMDcwZWEzMTg4ZWU1NDNiOTBjLi45NTJjZGNj
NjU0M2VhZmJiYWRjNGNmMDkzNDU3MDNhMWQ3Y2UxZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMU2hhZGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA5LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsOSArMzEsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFdlYkdMU2hhZGVyIGZpbmFsIDogcHVibGljIFdlYkdMU2hhcmVkT2JqZWN0
IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJHTFNoYWRlcigpOwotCiAgICAgc3RhdGljIFJl
ZjxXZWJHTFNoYWRlcj4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBHQzNEZW51
bSk7CisgICAgdmlydHVhbCB+V2ViR0xTaGFkZXIoKTsKIAogICAgIEdDM0RlbnVtIGdldFR5cGUo
KSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KICAgICBjb25zdCBTdHJpbmcmIGdldFNvdXJjZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9CkBAIC00Niw5ICs0NSw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgV2ViR0xTaGFkZXIoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIEdDM0Rl
bnVtKTsKIAotICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBs
YXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwotCi0gICAgYm9vbCBpc1NoYWRlcigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhp
Y3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBmaW5hbDsKIAogICAgIEdDM0RlbnVtIG1f
dHlwZTsKICAgICBTdHJpbmcgbV9zb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAKaW5kZXggMzZkYzE1ZDNhMGU3ZTVmNmE5NzA2MWU0
YzNiZDNjMjQxYzFiODRlOS4uMWIyMjM2ZmJkNzEyYThiNzFjMDgyMGQxYzBhYTYyM2JjMzM4MjAw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yNCw0MSArMjQsMzkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViR0xTaGFyZWRPYmplY3QuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUg
IldlYkdMU2hhcmVkT2JqZWN0LmgiCi0KICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgog
I2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBXZWJHTFNoYXJlZE9iamVjdDo6V2ViR0xTaGFyZWRPYmplY3QoV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYgY29udGV4dCkKLSAgICA6IFdlYkdMT2JqZWN0KGNvbnRleHQpCi0gICAg
LCBtX2NvbnRleHRHcm91cChjb250ZXh0LmNvbnRleHRHcm91cCgpKQorICAgIDogbV9jb250ZXh0
R3JvdXAoY29udGV4dC5jb250ZXh0R3JvdXAoKSkKIHsKIH0KIAogV2ViR0xTaGFyZWRPYmplY3Q6
On5XZWJHTFNoYXJlZE9iamVjdCgpCiB7CiAgICAgaWYgKG1fY29udGV4dEdyb3VwKQotICAgICAg
ICBtX2NvbnRleHRHcm91cC0+cmVtb3ZlT2JqZWN0KHRoaXMpOworICAgICAgICBtX2NvbnRleHRH
cm91cC0+cmVtb3ZlT2JqZWN0KCp0aGlzKTsKIH0KIAogdm9pZCBXZWJHTFNoYXJlZE9iamVjdDo6
ZGV0YWNoQ29udGV4dEdyb3VwKCkKIHsKICAgICBkZXRhY2goKTsKICAgICBpZiAobV9jb250ZXh0
R3JvdXApIHsKLSAgICAgICAgZGVsZXRlT2JqZWN0KDApOwotICAgICAgICBtX2NvbnRleHRHcm91
cC0+cmVtb3ZlT2JqZWN0KHRoaXMpOwotICAgICAgICBtX2NvbnRleHRHcm91cCA9IDA7CisgICAg
ICAgIGRlbGV0ZU9iamVjdChudWxscHRyKTsKKyAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92
ZU9iamVjdCgqdGhpcyk7CisgICAgICAgIG1fY29udGV4dEdyb3VwID0gbnVsbHB0cjsKICAgICB9
CiB9CiAKIEdyYXBoaWNzQ29udGV4dDNEKiBXZWJHTFNoYXJlZE9iamVjdDo6Z2V0QUdyYXBoaWNz
Q29udGV4dDNEKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jb250ZXh0R3JvdXAgPyBtX2NvbnRl
eHRHcm91cC0+Z2V0QUdyYXBoaWNzQ29udGV4dDNEKCkgOiAwOworICAgIHJldHVybiBtX2NvbnRl
eHRHcm91cCA/ICZtX2NvbnRleHRHcm91cC0+Z2V0QUdyYXBoaWNzQ29udGV4dDNEKCkgOiBudWxs
cHRyOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFNoYXJlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRP
YmplY3QuaAppbmRleCBhYmU0ODAzMzM3MmM5NTZjYzcxMzBlYjdmN2JmZmZkY2QxYTlmNTdiLi45
NzJlNTgwZWVjYjAxOWI4YWZlMTE4MDcwMjE5MzI2YzM2YzkzOGNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsMjQgKzMzLDE1IEBAIGNs
YXNzIEdyYXBoaWNzQ29udGV4dDNEOwogY2xhc3MgV2ViR0xDb250ZXh0R3JvdXA7CiBjbGFzcyBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOwogCi0vLyBXZWJHTFNoYXJlZE9iamVjdCB0aGUgYmFz
ZSBjbGFzcyBmb3Igb2JqZWN0cyB0aGF0IGNhbiBiZSBzaGFyZWQgYnkgbXVsdGlwbGUKLS8vIFdl
YkdMUmVuZGVyaW5nQ29udGV4dHMuCisvLyBXZWJHTFNoYXJlZE9iamVjdCB0aGUgYmFzZSBjbGFz
cyBmb3Igb2JqZWN0cyB0aGF0IGNhbiBiZSBzaGFyZWQgYnkgbXVsdGlwbGUgV2ViR0xSZW5kZXJp
bmdDb250ZXh0cy4KIGNsYXNzIFdlYkdMU2hhcmVkT2JqZWN0IDogcHVibGljIFdlYkdMT2JqZWN0
IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJHTFNoYXJlZE9iamVjdCgpOwogCiAgICAgV2Vi
R0xDb250ZXh0R3JvdXAqIGNvbnRleHRHcm91cCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dEdy
b3VwOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNCdWZmZXIoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dyYW0oKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQotICAgIHZpcnR1YWwgYm9vbCBpc1F1ZXJ5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJidWZmZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQot
ICAgIHZpcnR1YWwgYm9vbCBpc1NhbXBsZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAg
IHZpcnR1YWwgYm9vbCBpc1NoYWRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmly
dHVhbCBib29sIGlzU3luYygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzVGV4dHVyZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29s
IGlzVHJhbnNmb3JtRmVlZGJhY2soKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1
YWwgYm9vbCBpc1ZlcnRleEFycmF5T2JqZWN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAog
ICAgIGJvb2wgdmFsaWRhdGUoY29uc3QgV2ViR0xDb250ZXh0R3JvdXAqIGNvbnRleHRHcm91cCwg
Y29uc3QgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpIGNvbnN0IG92ZXJyaWRlCiAgICAgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTeW5jLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFN5bmMuaAppbmRleCBlZjZlYzlkY2Q1OTY0ZmI0
NmQyMzdhMDA2M2Q0YzU2YjEyY2RhNzRjLi5mOWU3MTgwMTc0MWQwMzM3NjJjMmMyMWI0YzNjNmEz
ZDk4MTgyMGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFN5
bmMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFN5bmMuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw5ICsz
OSw2IEBAIHByb3RlY3RlZDoKICAgICBXZWJHTFN5bmMoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSYpOwogCiAgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxh
dGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAgYm9vbCBpc1N5bmMoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9y
bUZlZWRiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZl
ZWRiYWNrLmgKaW5kZXggNjljZjhlN2JiNTQxOGVhYTllNDU2OTIxMTQwOGY0NzZiMjZhNjc4Ni4u
NzE0OTIzMzg0NWFkYTFkZWE0M2MwMWQ4MDViNzk4MTZiNzczZWI5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw5ICsz
OSw2IEBAIHByb3RlY3RlZDoKICAgICBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UmKTsKIAogICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0Nv
bnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIGJv
b2wgaXNUcmFuc2Zvcm1GZWVkYmFjaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKaW5kZXggN2ZhNjljOWE0OTRk
YmVlYTlkYmViZjg5ZTg1ZjQzZjljZmQwMjg0OS4uODlhZTIxZjMzZWY4NTg4Y2QxOGQ0MDMxYzg1
N2FhOGExNDRlNTU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMzMgKzI0LDMzIEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKFdFQkdMKSAmJiBFTkFCTEUoV0VCR0wyKQogI2lu
Y2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIKIAorI2lmIEVOQUJMRShXRUJHTDIpCisK
ICNpbmNsdWRlICJXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViR0xDb250
ZXh0R3JvdXAuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAotUmVmPFdlYkdMVmVydGV4
QXJyYXlPYmplY3Q+IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZShXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiBjdHgsIFZBT1R5cGUgdHlwZSkKK1JlZjxXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0PiBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZSYgY29udGV4dCwgVHlwZSB0eXBlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YkdMVmVydGV4QXJyYXlPYmplY3QoY3R4LCB0eXBlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdChjb250ZXh0LCB0eXBlKSk7CiB9CiAKIFdlYkdMVmVy
dGV4QXJyYXlPYmplY3Q6On5XZWJHTFZlcnRleEFycmF5T2JqZWN0KCkKIHsKLSAgICBkZWxldGVP
YmplY3QoMCk7CisgICAgZGVsZXRlT2JqZWN0KG51bGxwdHIpOwogfQogCi1XZWJHTFZlcnRleEFy
cmF5T2JqZWN0OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmIGN0eCwgVkFPVHlwZSB0eXBlKQotICAgIDogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2Uo
Y3R4LCB0eXBlKQorV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBUeXBlIHR5cGUpCisgICAgOiBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShjb250ZXh0LCB0eXBlKQogewogICAgIHN3aXRjaCAo
bV90eXBlKSB7Ci0gICAgY2FzZSBWQU9UeXBlRGVmYXVsdDoKKyAgICBjYXNlIFR5cGU6OkRlZmF1
bHQ6CiAgICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHNldE9iamVjdChjb250
ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCktPmNyZWF0ZVZlcnRleEFycmF5KCkpOworICAgIGNh
c2UgVHlwZTo6VXNlcjoKKyAgICAgICAgc2V0T2JqZWN0KHRoaXMtPmNvbnRleHQoKS0+Z3JhcGhp
Y3NDb250ZXh0M0QoKS0+Y3JlYXRlVmVydGV4QXJyYXkoKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIH0KQEAgLTU4LDkgKzU4LDkgQEAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6V2ViR0xWZXJ0
ZXhBcnJheU9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIFYKIHZvaWQgV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdDo6ZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCog
Y29udGV4dDNkLCBQbGF0Zm9ybTNET2JqZWN0IG9iamVjdCkKIHsKICAgICBzd2l0Y2ggKG1fdHlw
ZSkgewotICAgIGNhc2UgVkFPVHlwZURlZmF1bHQ6CisgICAgY2FzZSBUeXBlOjpEZWZhdWx0Ogog
ICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgorICAgIGNhc2UgVHlwZTo6VXNlcjoKICAgICAg
ICAgY29udGV4dDNkLT5kZWxldGVWZXJ0ZXhBcnJheShvYmplY3QpOwogICAgICAgICBicmVhazsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRl
eEFycmF5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFy
cmF5T2JqZWN0LmgKaW5kZXggNWI0OWM3MDhhNDYyNTRkZTU5MGUxYzA2ZGNjOTg2MmE2NjRjMzE0
Mi4uMmY3ZWQzNTA4MTcyM2YwYWJhZjI1M2IyYWJjZmQwMTM5NzAzNjQwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw4
ICsyNyw2IEBACiAKICNpZiBFTkFCTEUoV0VCR0wyKQogCi0jaW5jbHVkZSAiV2ViR0xCdWZmZXIu
aCIKLSNpbmNsdWRlICJXZWJHTENvbnRleHRPYmplY3QuaCIKICNpbmNsdWRlICJXZWJHTFZlcnRl
eEFycmF5T2JqZWN0QmFzZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNywxMiArMzUs
MTEgQEAgY2xhc3MgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDsKIAogY2xhc3MgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdCBmaW5hbCA6IHB1YmxpYyBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBjcmVhdGUoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFZBT1R5cGUpOworICAgIHN0YXRpYyBSZWY8V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdD4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBl
KTsKICAgICB2aXJ0dWFsIH5XZWJHTFZlcnRleEFycmF5T2JqZWN0KCk7CiBwcml2YXRlOgotICAg
IFdlYkdMVmVydGV4QXJyYXlPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFZBT1R5
cGUpOwotICAgIGJvb2wgaXNUcmFuc2Zvcm1GZWVkYmFjaygpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KLSAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9y
bTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0KFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBlKTsKKyAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3Jh
cGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBmaW5hbDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAppbmRleCA2OTY0OWM2MmY2ZTFkYmVmMmY5
ZWRhNjE3YzQyNDI0ZGY3M2YxNzVmLi41OGRmYTNkNzNjNmFkYjkzOWNlNDA0OTJmODE3OWE5OGJm
ZTc5MWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRl
eEFycmF5T2JqZWN0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDI0ICsyNCwyMiBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oIgog
CiAjaWYgRU5BQkxFKFdFQkdMKQotI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNl
LmgiCiAKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OldlYkdMVmVydGV4QXJy
YXlPYmplY3RCYXNlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwgVkFPVHlwZSB0eXBl
KQotICAgIDogV2ViR0xDb250ZXh0T2JqZWN0KGN0eCkKK1dlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
JiBjb250ZXh0LCBUeXBlIHR5cGUpCisgICAgOiBXZWJHTENvbnRleHRPYmplY3QoY29udGV4dCkK
ICAgICAsIG1fdHlwZSh0eXBlKQotICAgICwgbV9oYXNFdmVyQmVlbkJvdW5kKGZhbHNlKQotICAg
ICwgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlcigwKQogewotICAgIG1fdmVydGV4QXR0cmliU3Rh
dGUucmVzaXplKGN0eC5nZXRNYXhWZXJ0ZXhBdHRyaWJzKCkpOworICAgIG1fdmVydGV4QXR0cmli
U3RhdGUucmVzaXplKGNvbnRleHQuZ2V0TWF4VmVydGV4QXR0cmlicygpKTsKIH0KIAotdm9pZCBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0RWxlbWVudEFycmF5QnVmZmVyKFBhc3NSZWZQ
dHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKK3ZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6
OnNldEVsZW1lbnRBcnJheUJ1ZmZlcihXZWJHTEJ1ZmZlciogYnVmZmVyKQogewogICAgIGlmIChi
dWZmZXIpCiAgICAgICAgIGJ1ZmZlci0+b25BdHRhY2hlZCgpOwpAQCAtNTEsMTggKzQ5LDE3IEBA
IHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldEVsZW1lbnRBcnJheUJ1ZmZlcihQ
YXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBiCiAgICAgCiB9CiAKLXZvaWQgV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1aW50IGluZGV4LCBHQzNEc2l6
ZWkgYnl0ZXNQZXJFbGVtZW50LCBHQzNEaW50IHNpemUsIEdDM0RlbnVtIHR5cGUsIEdDM0Rib29s
ZWFuIG5vcm1hbGl6ZWQsIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIgb2Zmc2V0LCBQYXNz
UmVmUHRyPFdlYkdMQnVmZmVyPiBidWZmZXIpCit2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlOjpzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShHQzNEdWludCBpbmRleCwgR0MzRHNpemVpIGJ5dGVz
UGVyRWxlbWVudCwgR0MzRGludCBzaXplLCBHQzNEZW51bSB0eXBlLCBHQzNEYm9vbGVhbiBub3Jt
YWxpemVkLCBHQzNEc2l6ZWkgc3RyaWRlLCBHQzNEaW50cHRyIG9mZnNldCwgV2ViR0xCdWZmZXIm
IGJ1ZmZlcikKIHsKICAgICBHQzNEc2l6ZWkgdmFsaWRhdGVkU3RyaWRlID0gc3RyaWRlID8gc3Ry
aWRlIDogYnl0ZXNQZXJFbGVtZW50OwogICAgIAotICAgIFZlcnRleEF0dHJpYlN0YXRlJiBzdGF0
ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOworICAgIGF1dG8mIHN0YXRlID0gbV92ZXJ0
ZXhBdHRyaWJTdGF0ZVtpbmRleF07CiAgICAgCi0gICAgaWYgKGJ1ZmZlcikKLSAgICAgICAgYnVm
ZmVyLT5vbkF0dGFjaGVkKCk7CisgICAgYnVmZmVyLm9uQXR0YWNoZWQoKTsKICAgICBpZiAoc3Rh
dGUuYnVmZmVyQmluZGluZykKICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZy0+b25EZXRhY2hl
ZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOwogICAgIAotICAgIHN0YXRlLmJ1ZmZl
ckJpbmRpbmcgPSBidWZmZXI7CisgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9ICZidWZmZXI7CiAg
ICAgc3RhdGUuYnl0ZXNQZXJFbGVtZW50ID0gYnl0ZXNQZXJFbGVtZW50OwogICAgIHN0YXRlLnNp
emUgPSBzaXplOwogICAgIHN0YXRlLnR5cGUgPSB0eXBlOwpAQCAtNzIsMTcgKzY5LDE3IEBAIHZv
aWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1
aW50IGluZGV4LCBHQzNEc2l6ZWkKICAgICBzdGF0ZS5vZmZzZXQgPSBvZmZzZXQ7CiB9CiAKLXZv
aWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZlcihQYXNzUmVmUHRyPFdl
YkdMQnVmZmVyPiBidWZmZXIpCit2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJp
bmRCdWZmZXIoV2ViR0xCdWZmZXImIGJ1ZmZlcikKIHsKLSAgICBpZiAobV9ib3VuZEVsZW1lbnRB
cnJheUJ1ZmZlciA9PSBidWZmZXIpIHsKKyAgICBpZiAobV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZl
ciA9PSAmYnVmZmVyKSB7CiAgICAgICAgIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXItPm9uRGV0
YWNoZWQoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpKTsKICAgICAgICAgbV9ib3VuZEVs
ZW1lbnRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAgICAgfQogICAgIAogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5zaXplKCk7ICsraSkgewotICAgICAgICBW
ZXJ0ZXhBdHRyaWJTdGF0ZSYgc3RhdGUgPSBtX3ZlcnRleEF0dHJpYlN0YXRlW2ldOwotICAgICAg
ICBpZiAoc3RhdGUuYnVmZmVyQmluZGluZyA9PSBidWZmZXIpIHsKLSAgICAgICAgICAgIGJ1ZmZl
ci0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgICAgICBh
dXRvJiBzdGF0ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaV07CisgICAgICAgIGlmIChzdGF0ZS5i
dWZmZXJCaW5kaW5nID09ICZidWZmZXIpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5vbkRldGFjaGVk
KGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKSk7CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGlmICghaSAmJiAhY29udGV4dCgpLT5pc0dMRVMyQ29tcGxpYW50KCkpIHsKICAgICAgICAg
ICAgICAgICBzdGF0ZS5idWZmZXJCaW5kaW5nID0gY29udGV4dCgpLT5tX3ZlcnRleEF0dHJpYjBC
dWZmZXI7CkBAIC0xMDIsOCArOTksNyBAQCB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNl
Ojp1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVmZmVyKQogCiB2b2lkIFdl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJEaXZpc29yKEdDM0R1aW50
IGluZGV4LCBHQzNEdWludCBkaXZpc29yKQogewotICAgIFZlcnRleEF0dHJpYlN0YXRlJiBzdGF0
ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOwotICAgIHN0YXRlLmRpdmlzb3IgPSBkaXZp
c29yOworICAgIG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdLmRpdmlzb3IgPSBkaXZpc29yOwog
fQogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlLmgKaW5kZXggMjkwYWI4ZDNkNzBmMzM3YTg2MzVhMjMxNjI3
NmQ5MWRjNDNkNGFhOS4uMTI3NTUzM2Q4YTE0NjE5MWE2NTViMjlhMDdmYmI4ZjE4N2EyODcwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFy
cmF5T2JqZWN0QmFzZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTMyLDY1ICszMiw0NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlIDogcHVibGljIFdlYkdMQ29udGV4dE9iamVj
dCB7CiBwdWJsaWM6Ci0gICAgZW51bSBWQU9UeXBlIHsKLSAgICAgICAgVkFPVHlwZURlZmF1bHQs
Ci0gICAgICAgIFZBT1R5cGVVc2VyLAotICAgIH07Ci0gICAgCi0gICAgdmlydHVhbCB+V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2UoKSB7IH0KKyAgICBlbnVtIGNsYXNzIFR5cGUgeyBEZWZhdWx0
LCBVc2VyIH07CiAKICAgICAvLyBDYWNoZWQgdmFsdWVzIGZvciB2ZXJ0ZXggYXR0cmliIHJhbmdl
IGNoZWNrcwogICAgIHN0cnVjdCBWZXJ0ZXhBdHRyaWJTdGF0ZSB7Ci0gICAgICAgIFZlcnRleEF0
dHJpYlN0YXRlKCkKLSAgICAgICAgICAgIDogZW5hYmxlZChmYWxzZSkKLSAgICAgICAgICAgICwg
Ynl0ZXNQZXJFbGVtZW50KDApCi0gICAgICAgICAgICAsIHNpemUoNCkKLSAgICAgICAgICAgICwg
dHlwZShHcmFwaGljc0NvbnRleHQzRDo6RkxPQVQpCi0gICAgICAgICAgICAsIG5vcm1hbGl6ZWQo
ZmFsc2UpCi0gICAgICAgICAgICAsIHN0cmlkZSgxNikKLSAgICAgICAgICAgICwgb3JpZ2luYWxT
dHJpZGUoMCkKLSAgICAgICAgICAgICwgb2Zmc2V0KDApCi0gICAgICAgICAgICAsIGRpdmlzb3Io
MCkKLSAgICAgICAgewotICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICBib29sIGlzQm91bmQo
KSBjb25zdCB7IHJldHVybiBidWZmZXJCaW5kaW5nICYmIGJ1ZmZlckJpbmRpbmctPm9iamVjdCgp
OyB9CiAgICAgICAgIGJvb2wgdmFsaWRhdGVCaW5kaW5nKCkgY29uc3QgeyByZXR1cm4gIWVuYWJs
ZWQgfHwgaXNCb3VuZCgpOyB9CiAgICAgICAgIAotICAgICAgICBib29sIGVuYWJsZWQ7CisgICAg
ICAgIGJvb2wgZW5hYmxlZCB7IGZhbHNlIH07CiAgICAgICAgIFJlZlB0cjxXZWJHTEJ1ZmZlcj4g
YnVmZmVyQmluZGluZzsKLSAgICAgICAgR0MzRHNpemVpIGJ5dGVzUGVyRWxlbWVudDsKLSAgICAg
ICAgR0MzRGludCBzaXplOwotICAgICAgICBHQzNEZW51bSB0eXBlOwotICAgICAgICBib29sIG5v
cm1hbGl6ZWQ7Ci0gICAgICAgIEdDM0RzaXplaSBzdHJpZGU7Ci0gICAgICAgIEdDM0RzaXplaSBv
cmlnaW5hbFN0cmlkZTsKLSAgICAgICAgR0MzRGludHB0ciBvZmZzZXQ7Ci0gICAgICAgIEdDM0R1
aW50IGRpdmlzb3I7CisgICAgICAgIEdDM0RzaXplaSBieXRlc1BlckVsZW1lbnQgeyAwIH07Cisg
ICAgICAgIEdDM0RpbnQgc2l6ZSB7IDQgfTsKKyAgICAgICAgR0MzRGVudW0gdHlwZSB7IEdyYXBo
aWNzQ29udGV4dDNEOjpGTE9BVCB9OworICAgICAgICBib29sIG5vcm1hbGl6ZWQgeyBmYWxzZSB9
OworICAgICAgICBHQzNEc2l6ZWkgc3RyaWRlIHsgMTYgfTsKKyAgICAgICAgR0MzRHNpemVpIG9y
aWdpbmFsU3RyaWRlIHsgMCB9OworICAgICAgICBHQzNEaW50cHRyIG9mZnNldCB7IDAgfTsKKyAg
ICAgICAgR0MzRHVpbnQgZGl2aXNvciB7IDAgfTsKICAgICB9OwotICAgIAotICAgIGJvb2wgaXNE
ZWZhdWx0T2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFZBT1R5cGVEZWZhdWx0OyB9
Ci0gICAgCisKKyAgICBib29sIGlzRGVmYXVsdE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZSA9PSBUeXBlOjpEZWZhdWx0OyB9CisKICAgICBib29sIGhhc0V2ZXJCZWVuQm91bmQoKSBjb25z
dCB7IHJldHVybiBvYmplY3QoKSAmJiBtX2hhc0V2ZXJCZWVuQm91bmQ7IH0KICAgICB2b2lkIHNl
dEhhc0V2ZXJCZWVuQm91bmQoKSB7IG1faGFzRXZlckJlZW5Cb3VuZCA9IHRydWU7IH0KLSAgICAK
LSAgICBQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPiBnZXRFbGVtZW50QXJyYXlCdWZmZXIoKSBjb25z
dCB7IHJldHVybiBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyOyB9Ci0gICAgdm9pZCBzZXRFbGVt
ZW50QXJyYXlCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4pOwotICAgIAorCisgICAgV2Vi
R0xCdWZmZXIqIGdldEVsZW1lbnRBcnJheUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fYm91bmRF
bGVtZW50QXJyYXlCdWZmZXIuZ2V0KCk7IH0KKyAgICB2b2lkIHNldEVsZW1lbnRBcnJheUJ1ZmZl
cihXZWJHTEJ1ZmZlciopOworCiAgICAgVmVydGV4QXR0cmliU3RhdGUmIGdldFZlcnRleEF0dHJp
YlN0YXRlKGludCBpbmRleCkgeyByZXR1cm4gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF07IH0K
LSAgICB2b2lkIHNldFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1aW50LCBHQzNEc2l6ZWksIEdDM0Rp
bnQsIEdDM0RlbnVtLCBHQzNEYm9vbGVhbiwgR0MzRHNpemVpLCBHQzNEaW50cHRyLCBQYXNzUmVm
UHRyPFdlYkdMQnVmZmVyPik7Ci0gICAgdm9pZCB1bmJpbmRCdWZmZXIoUGFzc1JlZlB0cjxXZWJH
TEJ1ZmZlcj4pOwotICAgIAorICAgIHZvaWQgc2V0VmVydGV4QXR0cmliU3RhdGUoR0MzRHVpbnQs
IEdDM0RzaXplaSwgR0MzRGludCwgR0MzRGVudW0sIEdDM0Rib29sZWFuLCBHQzNEc2l6ZWksIEdD
M0RpbnRwdHIsIFdlYkdMQnVmZmVyJik7CisgICAgdm9pZCB1bmJpbmRCdWZmZXIoV2ViR0xCdWZm
ZXImKTsKKwogICAgIHZvaWQgc2V0VmVydGV4QXR0cmliRGl2aXNvcihHQzNEdWludCBpbmRleCwg
R0MzRHVpbnQgZGl2aXNvcik7CiAKIHByb3RlY3RlZDoKLSAgICBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0QmFzZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVkFPVHlwZSk7CisgICAgV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2UoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFR5cGUpOwog
ICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RP
YmplY3QpIG92ZXJyaWRlID0gMDsKLSAgICAKLSAgICBWQU9UeXBlIG1fdHlwZTsKLSAgICBib29s
IG1faGFzRXZlckJlZW5Cb3VuZDsKKworICAgIFR5cGUgbV90eXBlOworICAgIGJvb2wgbV9oYXNF
dmVyQmVlbkJvdW5kIHsgZmFsc2UgfTsKICAgICBSZWZQdHI8V2ViR0xCdWZmZXI+IG1fYm91bmRF
bGVtZW50QXJyYXlCdWZmZXI7CiAgICAgVmVjdG9yPFZlcnRleEF0dHJpYlN0YXRlPiBtX3ZlcnRl
eEF0dHJpYlN0YXRlOwogfTsKLSAgICAKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9F
Uy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTLmNwcAppbmRleCA1ZjNiNjU1N2E3MGI1Y2I4NDJjMGMyZWE3NzgxNzhhZmE2NGMwMWZmLi5h
ZjU1NjVjZDk0NDQyNGI1M2I4MzU3ZGIyYzAxOTBiZTFjZTViNDY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNw
cApAQCAtMzQsMzcgKzM0LDM1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFdlYkdM
VmVydGV4QXJyYXlPYmplY3RPRVM+IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmNyZWF0ZShX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIFZBT1R5cGUgdHlwZSkKK1JlZjxXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTPiBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwgVHlwZSB0eXBlKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoY3R4LCB0eXBlKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyhjb250ZXh0
LCB0eXBlKSk7CiB9CiAKLVdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OldlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWQU9UeXBlIHR5cGUp
Ci0gICAgOiBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShjdHgsIHR5cGUpCitXZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UmIGNvbnRleHQsIFR5cGUgdHlwZSkKKyAgICA6IFdlYkdMVmVydGV4QXJyYXlP
YmplY3RCYXNlKGNvbnRleHQsIHR5cGUpCiB7Ci0gICAgRXh0ZW5zaW9uczNEJiBleHRlbnNpb25z
ID0gY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpLT5nZXRFeHRlbnNpb25zKCk7Ci0gICAg
c3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVEZWZhdWx0OgorICAgIHN3aXRjaCAo
dHlwZSkgeworICAgIGNhc2UgVHlwZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVm
YXVsdDoKLSAgICAgICAgc2V0T2JqZWN0KGV4dGVuc2lvbnMuY3JlYXRlVmVydGV4QXJyYXlPRVMo
KSk7CisgICAgY2FzZSBUeXBlOjpVc2VyOgorICAgICAgICBzZXRPYmplY3QodGhpcy0+Y29udGV4
dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpLT5nZXRFeHRlbnNpb25zKCkuY3JlYXRlVmVydGV4QXJy
YXlPRVMoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUzo6fldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKQogewotICAgIGRlbGV0ZU9iamVj
dCgwKTsKKyAgICBkZWxldGVPYmplY3QobnVsbHB0cik7CiB9CiAKIHZvaWQgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUzo6ZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCogY29udGV4
dDNkLCBQbGF0Zm9ybTNET2JqZWN0IG9iamVjdCkKIHsKLSAgICBFeHRlbnNpb25zM0QmIGV4dGVu
c2lvbnMgPSBjb250ZXh0M2QtPmdldEV4dGVuc2lvbnMoKTsKICAgICBzd2l0Y2ggKG1fdHlwZSkg
ewotICAgIGNhc2UgVkFPVHlwZURlZmF1bHQ6CisgICAgY2FzZSBUeXBlOjpEZWZhdWx0OgogICAg
ICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBleHRlbnNpb25zLmRlbGV0ZVZlcnRl
eEFycmF5T0VTKG9iamVjdCk7CisgICAgY2FzZSBUeXBlOjpVc2VyOgorICAgICAgICBjb250ZXh0
M2QtPmdldEV4dGVuc2lvbnMoKS5kZWxldGVWZXJ0ZXhBcnJheU9FUyhvYmplY3QpOwogICAgICAg
ICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaAppbmRleCBkMDhkMjIzZTM1NzA2Njk0ZTkxY2Fl
NmFjZGM4YzRiY2E5ZjE2N2U5Li5mOWEyYTU4ZWMyNzQ3YzJkNTA2MzBiNWI2ZjZjZmYwNWE2MzYw
YzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFy
cmF5T2JqZWN0T0VTLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUy5oCkBAIC0yNSwxOSArMjUsMTcgQEAKIAogI3ByYWdtYSBvbmNlCiAK
LSNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkdMQ29udGV4dE9iamVjdC5o
IgogI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyBmaW5hbCA6IHB1Ymxp
YyBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSYsIFZBT1R5cGUpOworICAgIHN0YXRpYyBSZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4g
Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBUeXBlKTsKICAgICB2aXJ0dWFsIH5X
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKCk7CiBwcml2YXRlOgotICAgIFdlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFZBT1R5cGUpOwotICAgIHZv
aWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3Qp
IG92ZXJyaWRlOworICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYsIFR5cGUpOworICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0Nv
bnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9GaWxlSWNvbkxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmNwcApp
bmRleCA5YmNkNDdmNzc5ZTA1MWZhYTQwNTkwYzc5M2ZiMjNmYzUxYjJkZTFlLi4yNzVkNmVjNDRl
MDU4NDU2ZWVmZmZkMWNlZjI4ZDVhNzVmOGIxZjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA3LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CkBAIC0zNywxMyArMzcsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdm9p
ZCBGaWxlSWNvbkxvYWRlcjo6aW52YWxpZGF0ZSgpCiB7CiAgICAgQVNTRVJUKG1fY2xpZW50KTsK
LSAgICBtX2NsaWVudCA9IDA7CisgICAgbV9jbGllbnQgPSBudWxscHRyOwogfQogCi12b2lkIEZp
bGVJY29uTG9hZGVyOjpub3RpZnlGaW5pc2hlZChQYXNzUmVmUHRyPEljb24+IGljb24pCit2b2lk
IEZpbGVJY29uTG9hZGVyOjppY29uTG9hZGVkKFJlZlB0cjxJY29uPiYmIGljb24pCiB7CiAgICAg
aWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dXBkYXRlUmVuZGVyaW5nKGljb24pOwor
ICAgICAgICBtX2NsaWVudC0+aWNvbkxvYWRlZChXVEZNb3ZlKGljb24pKTsKIH0KIAogRmlsZUlj
b25Mb2FkZXI6OkZpbGVJY29uTG9hZGVyKEZpbGVJY29uTG9hZGVyQ2xpZW50JiBjbGllbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmgKaW5kZXggMzUzMTNkZTNh
Mjg1MzYwZDk4NjdiODJhNWFhY2JjMDdkMDVlN2JkNS4uN2RhNzNmYzkyZTE2Y2UzYWNkYmU0OGIy
YWUzYzQwMTM2OTA4MjgzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9mb3Jtcy9G
aWxlSWNvbkxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmlsZUljb25M
b2FkZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcs
IDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CkBAIC0zNCwxMyArMzQsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBGaWxl
SWNvbkxvYWRlcjsKIGNsYXNzIEljb247CiAKIGNsYXNzIEZpbGVJY29uTG9hZGVyQ2xpZW50IHsK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5GaWxlSWNvbkxvYWRlckNsaWVudCgpIHsgfQotICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVSZW5kZXJpbmcoUGFzc1JlZlB0cjxJY29uPikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBpY29uTG9hZGVkKFJlZlB0cjxJY29uPiYmKSA9IDA7CiB9OwogCiBjbGFzcyBG
aWxlSWNvbkxvYWRlciB7CkBAIC00OCw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBG
aWxlSWNvbkxvYWRlcihGaWxlSWNvbkxvYWRlckNsaWVudCYpOwogCiAgICAgdm9pZCBpbnZhbGlk
YXRlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBub3RpZnlGaW5pc2hlZChQYXNzUmVmUHRy
PEljb24+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGljb25Mb2FkZWQoUmVmUHRyPEljb24+
JiYpOwogCiBwcml2YXRlOgogICAgIEZpbGVJY29uTG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNw
cAppbmRleCA0NjdhMTM0ZDM2YmE1M2E3MmJjMmQ3MGEyZWI5NzY4MWViOGY5M2ZiLi5kYzFhZDcz
YTFiMDA0YjM2YzllNDc1NTRiMTE4NDEzZWIwYmY2MGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE3NCw3ICsxNzQsNyBA
QCBzdGF0aWMgaW5saW5lIHZvaWQgZXhlY3V0ZVRhc2soSFRNTENvbnN0cnVjdGlvblNpdGVUYXNr
JiB0YXNrKQogCiB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjphdHRhY2hMYXRlcihDb250YWlu
ZXJOb2RlJiBwYXJlbnQsIFJlZjxOb2RlPiYmIGNoaWxkLCBib29sIHNlbGZDbG9zaW5nKQogewot
ICAgIEFTU0VSVChzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKG1fcGFyc2VyQ29udGVudFBvbGlj
eSkgfHwgIWlzPEVsZW1lbnQ+KGNoaWxkLmdldCgpKSB8fCAhdG9TY3JpcHRFbGVtZW50SWZQb3Nz
aWJsZShkb3duY2FzdDxFbGVtZW50PihjaGlsZC5wdHIoKSkpKTsKKyAgICBBU1NFUlQoc2NyaXB0
aW5nQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpIHx8ICFpczxFbGVtZW50
PihjaGlsZC5nZXQoKSkgfHwgIWlzU2NyaXB0RWxlbWVudChkb3duY2FzdDxFbGVtZW50PihjaGls
ZC5nZXQoKSkpKTsKICAgICBBU1NFUlQocGx1Z2luQ29udGVudElzQWxsb3dlZChtX3BhcnNlckNv
bnRlbnRQb2xpY3kpIHx8ICFjaGlsZC0+aXNQbHVnaW5FbGVtZW50KCkpOwogCiAgICAgaWYgKHNo
b3VsZEZvc3RlclBhcmVudCgpKSB7CkBAIC01NDEsNyArNTQxLDcgQEAgdm9pZCBIVE1MQ29uc3Ry
dWN0aW9uU2l0ZTo6aW5zZXJ0Rm9yZWlnbkVsZW1lbnQoQXRvbWljSFRNTFRva2VuJiYgdG9rZW4s
IGNvbnN0IEEKICAgICBub3RJbXBsZW1lbnRlZCgpOyAvLyBwYXJzZUVycm9yIHdoZW4geG1sbnMg
b3IgeG1sbnM6eGxpbmsgYXJlIHdyb25nLgogCiAgICAgYXV0byBlbGVtZW50ID0gY3JlYXRlRWxl
bWVudCh0b2tlbiwgbmFtZXNwYWNlVVJJKTsKLSAgICBpZiAoc2NyaXB0aW5nQ29udGVudElzQWxs
b3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpIHx8ICF0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxl
KGVsZW1lbnQucHRyKCkpKQorICAgIGlmIChzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKG1fcGFy
c2VyQ29udGVudFBvbGljeSkgfHwgIWlzU2NyaXB0RWxlbWVudChlbGVtZW50LmdldCgpKSkKICAg
ICAgICAgYXR0YWNoTGF0ZXIoY3VycmVudE5vZGUoKSwgZWxlbWVudC5jb3B5UmVmKCksIHRva2Vu
LnNlbGZDbG9zaW5nKCkpOwogICAgIGlmICghdG9rZW4uc2VsZkNsb3NpbmcoKSkKICAgICAgICAg
bV9vcGVuRWxlbWVudHMucHVzaChIVE1MU3RhY2tJdGVtOjpjcmVhdGUoV1RGTW92ZShlbGVtZW50
KSwgV1RGTW92ZSh0b2tlbiksIG5hbWVzcGFjZVVSSSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggYWNlYTBhYWFkMmNkZjQ4
MTdhNjVlN2FmOWQ3YzlmZDM1N2RmYzMzNy4uNTE2M2YxYTVmNzgyNDgzYTkwMjRlYzZkYTkxNTNk
MDk2YjAzNGM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERv
Y3VtZW50UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9j
dW1lbnRQYXJzZXIuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJIVE1MVHJlZUJ1aWxkZXIu
aCIKICNpbmNsdWRlICJIVE1MVW5rbm93bkVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0N1c3RvbUVs
ZW1lbnRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtMjA1LDcgKzIwNiw3IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2Vy
OjpydW5TY3JpcHRzRm9yUGF1c2VkVHJlZUJ1aWxkZXIoKQogICAgICAgICBBU1NFUlQoIW1fdHJl
ZUJ1aWxkZXItPmhhc1BhcnNlckJsb2NraW5nU2NyaXB0V29yaygpKTsKICAgICAgICAgLy8gV2Ug
d2lsbCBub3QgaGF2ZSBhIHNjcmlwdFJ1bm5lciB3aGVuIHBhcnNpbmcgYSBEb2N1bWVudEZyYWdt
ZW50LgogICAgICAgICBpZiAobV9zY3JpcHRSdW5uZXIpCi0gICAgICAgICAgICBtX3NjcmlwdFJ1
bm5lci0+ZXhlY3V0ZShXVEZNb3ZlKHNjcmlwdEVsZW1lbnQpLCBzY3JpcHRTdGFydFBvc2l0aW9u
KTsKKyAgICAgICAgICAgIG1fc2NyaXB0UnVubmVyLT5leGVjdXRlKHNjcmlwdEVsZW1lbnQucmVs
ZWFzZU5vbk51bGwoKSwgc2NyaXB0U3RhcnRQb3NpdGlvbik7CiAgICAgfQogfQogCkBAIC01MDAs
NyArNTAxLDcgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OndhdGNoRm9yTG9hZChQZW5kaW5n
U2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogICAgIC8vIHNldENsaWVudCB3b3VsZCBjYWxsIG5vdGlm
eUZpbmlzaGVkIGlmIHRoZSBsb2FkIHdlcmUgY29tcGxldGUuCiAgICAgLy8gQ2FsbGVycyBkbyBu
b3QgZXhwZWN0IHRvIGJlIHJlLWVudGVyZWQgZnJvbSB0aGlzIGNhbGwsIHNvIHRoZXkgc2hvdWxk
CiAgICAgLy8gbm90IGFuIGFscmVhZHktbG9hZGVkIFBlbmRpbmdTY3JpcHQuCi0gICAgcGVuZGlu
Z1NjcmlwdC5zZXRDbGllbnQodGhpcyk7CisgICAgcGVuZGluZ1NjcmlwdC5zZXRDbGllbnQoKnRo
aXMpOwogfQogCiB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6c3RvcFdhdGNoaW5nRm9yTG9hZChQ
ZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcAppbmRleCBjMjU2YjQyOTU2Y2U0ODExYTk0ZjBjYjM0
YjhlZDcyNTcyNWU4ZjU0Li5jMWY0MmMyMjVkMDA3NzlhYjQ0NWMxMTI1MWQzNzNhNDg3ZjJjZDJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNw
cApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTcwLDcgKzcxLDcgQEAgSFRNTFNjcmlwdFJ1bm5lcjo6fkhUTUxTY3JpcHRSdW5uZXIoKQog
CiB2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmRldGFjaCgpCiB7Ci0gICAgbV9kb2N1bWVudCA9IDA7
CisgICAgbV9kb2N1bWVudCA9IG51bGxwdHI7CiB9CiAKIHN0YXRpYyBVUkwgZG9jdW1lbnRVUkxG
b3JTY3JpcHRFeGVjdXRpb24oRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtOTksMjkgKzEwMCwxOCBA
QCBib29sIEhUTUxTY3JpcHRSdW5uZXI6OmlzUGVuZGluZ1NjcmlwdFJlYWR5KGNvbnN0IFBlbmRp
bmdTY3JpcHQmIHNjcmlwdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBIVE1MU2NyaXB0
UnVubmVyOjpleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0KCkKLXsKLSAgICBBU1NFUlQobV9k
b2N1bWVudCk7Ci0gICAgQVNTRVJUKCFpc0V4ZWN1dGluZ1NjcmlwdCgpKTsKLSAgICBBU1NFUlQo
bV9kb2N1bWVudC0+aGF2ZVN0eWxlc2hlZXRzTG9hZGVkKCkpOwotICAgIEFTU0VSVChpc1BlbmRp
bmdTY3JpcHRSZWFkeSgqbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCkpOwotCi0gICAgSW5zZXJ0aW9u
UG9pbnRSZWNvcmQgaW5zZXJ0aW9uUG9pbnRSZWNvcmQobV9ob3N0LmlucHV0U3RyZWFtKCkpOwot
ICAgIGV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChXVEZNb3ZlKG1fcGFyc2Vy
QmxvY2tpbmdTY3JpcHQpKTsKLX0KLQotdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlUGVu
ZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQoUmVmUHRyPFBlbmRpbmdTY3JpcHQ+IHBlbmRpbmdT
Y3JpcHQpCit2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlz
cGF0Y2hFdmVudChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogewogICAgIC8vIFN0b3Ag
d2F0Y2hpbmcgbG9hZHMgYmVmb3JlIGV4ZWN1dGVTY3JpcHQgdG8gcHJldmVudCByZWN1cnNpb24g
aWYgdGhlIHNjcmlwdCByZWxvYWRzIGl0c2VsZi4KLSAgICBpZiAocGVuZGluZ1NjcmlwdC0+d2F0
Y2hpbmdGb3JMb2FkKCkpCi0gICAgICAgIHN0b3BXYXRjaGluZ0ZvckxvYWQoKnBlbmRpbmdTY3Jp
cHQpOworICAgIGlmIChwZW5kaW5nU2NyaXB0LndhdGNoaW5nRm9yTG9hZCgpKQorICAgICAgICBz
dG9wV2F0Y2hpbmdGb3JMb2FkKHBlbmRpbmdTY3JpcHQpOwogCiAgICAgaWYgKCFpc0V4ZWN1dGlu
Z1NjcmlwdCgpKQogICAgICAgICBNaWNyb3Rhc2tRdWV1ZTo6bWFpblRocmVhZFF1ZXVlKCkucGVy
Zm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKIAotICAgIGlmIChhdXRvKiBzY3JpcHRFbGVtZW50
ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmcGVuZGluZ1NjcmlwdC0+ZWxlbWVudCgpKSkg
eworICAgIHsKICAgICAgICAgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVsSW5j
cmVtZW50ZXIobV9zY3JpcHROZXN0aW5nTGV2ZWwpOwotICAgICAgICBzY3JpcHRFbGVtZW50LT5l
eGVjdXRlUGVuZGluZ1NjcmlwdCgqcGVuZGluZ1NjcmlwdCk7CisgICAgICAgIHBlbmRpbmdTY3Jp
cHQuZWxlbWVudCgpLmV4ZWN1dGVQZW5kaW5nU2NyaXB0KHBlbmRpbmdTY3JpcHQpOwogICAgIH0K
ICAgICBBU1NFUlQoIWlzRXhlY3V0aW5nU2NyaXB0KCkpOwogfQpAQCAtMTQwLDE1ICsxMzAsMTQg
QEAgdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpzdG9wV2F0Y2hpbmdGb3JMb2FkKFBlbmRpbmdTY3Jp
cHQmIHBlbmRpbmdTY3JpcHQpCiAKIC8vIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG1hdGNoIDEwLjIu
NS4xMSAiQW4gZW5kIHRhZyB3aG9zZSB0YWcgbmFtZSBpcyAnc2NyaXB0JyIKIC8vIFNjcmlwdCBo
YW5kbGluZyBsaXZlcyBvdXRzaWRlIHRoZSB0cmVlIGJ1aWxkZXIgdG8ga2VlcCB0aGUgZWFjaCBj
bGFzcyBzaW1wbGUuCi12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGUoUGFzc1JlZlB0cjxF
bGVtZW50PiBzY3JpcHRFbGVtZW50LCBjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9z
aXRpb24pCit2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGUoUmVmPFNjcmlwdEVsZW1lbnQ+
JiYgZWxlbWVudCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogewot
ICAgIEFTU0VSVChzY3JpcHRFbGVtZW50KTsKICAgICAvLyBGSVhNRTogSWYgc2NyaXB0aW5nIGlz
IGRpc2FibGVkLCBhbHdheXMganVzdCByZXR1cm4uCiAKICAgICBib29sIGhhZFByZWxvYWRTY2Fu
bmVyID0gbV9ob3N0Lmhhc1ByZWxvYWRTY2FubmVyKCk7CiAKICAgICAvLyBUcnkgdG8gZXhlY3V0
ZSB0aGUgc2NyaXB0IGdpdmVuIHRvIHVzLgotICAgIHJ1blNjcmlwdChzY3JpcHRFbGVtZW50Lmdl
dCgpLCBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICBydW5TY3JpcHQoZWxlbWVudC5nZXQoKSwg
c2NyaXB0U3RhcnRQb3NpdGlvbik7CiAKICAgICBpZiAoaGFzUGFyc2VyQmxvY2tpbmdTY3JpcHQo
KSkgewogICAgICAgICBpZiAoaXNFeGVjdXRpbmdTY3JpcHQoKSkKQEAgLTE2Nyw4ICsxNTYsMTMg
QEAgYm9vbCBIVE1MU2NyaXB0UnVubmVyOjpoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdCgpIGNvbnN0
CiAKIHZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBhcnNpbmdCbG9ja2luZ1NjcmlwdHMo
KQogewotICAgIHdoaWxlIChoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdCgpICYmIGlzUGVuZGluZ1Nj
cmlwdFJlYWR5KCptX3BhcnNlckJsb2NraW5nU2NyaXB0KSkKLSAgICAgICAgZXhlY3V0ZVBhcnNp
bmdCbG9ja2luZ1NjcmlwdCgpOworICAgIHdoaWxlIChoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdCgp
ICYmIGlzUGVuZGluZ1NjcmlwdFJlYWR5KCptX3BhcnNlckJsb2NraW5nU2NyaXB0KSkgeworICAg
ICAgICBBU1NFUlQobV9kb2N1bWVudCk7CisgICAgICAgIEFTU0VSVCghaXNFeGVjdXRpbmdTY3Jp
cHQoKSk7CisgICAgICAgIEFTU0VSVChtX2RvY3VtZW50LT5oYXZlU3R5bGVzaGVldHNMb2FkZWQo
KSk7CisgICAgICAgIEluc2VydGlvblBvaW50UmVjb3JkIGluc2VydGlvblBvaW50UmVjb3JkKG1f
aG9zdC5pbnB1dFN0cmVhbSgpKTsKKyAgICAgICAgZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNw
YXRjaEV2ZW50KG1fcGFyc2VyQmxvY2tpbmdTY3JpcHQucmVsZWFzZU5vbk51bGwoKS5nZXQoKSk7
CisgICAgfQogfQogCiB2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHRzV2FpdGlu
Z0ZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1NjcmlwdCkKQEAgLTIwMSw3ICsxOTUsNyBA
QCBib29sIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHRzV2FpdGluZ0ZvclBhcnNpbmco
KQogICAgICAgICAgICAgd2F0Y2hGb3JMb2FkKG1fc2NyaXB0c1RvRXhlY3V0ZUFmdGVyUGFyc2lu
Zy5maXJzdCgpKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQotICAgICAg
ICBleGVjdXRlUGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQobV9zY3JpcHRzVG9FeGVjdXRl
QWZ0ZXJQYXJzaW5nLnRha2VGaXJzdCgpKTsKKyAgICAgICAgZXhlY3V0ZVBlbmRpbmdTY3JpcHRB
bmREaXNwYXRjaEV2ZW50KG1fc2NyaXB0c1RvRXhlY3V0ZUFmdGVyUGFyc2luZy50YWtlRmlyc3Qo
KS5nZXQoKSk7CiAgICAgICAgIC8vIEZJWE1FOiBXaGF0IGlzIHRoaXMgbV9kb2N1bWVudCBjaGVj
ayBmb3I/CiAgICAgICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTIwOSwxOCArMjAzLDE3IEBAIGJvb2wgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNj
cmlwdHNXYWl0aW5nRm9yUGFyc2luZygpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBS
ZWY8UGVuZGluZ1NjcmlwdD4gcmVxdWVzdFBlbmRpbmdTY3JpcHQoRWxlbWVudCogc2NyaXB0KQor
c3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0PiByZXF1ZXN0UGVuZGluZ1NjcmlwdChTY3JpcHRFbGVt
ZW50JiBzY3JpcHRFbGVtZW50KQogewotICAgIGF1dG8mIHNjcmlwdEVsZW1lbnQgPSAqdG9TY3Jp
cHRFbGVtZW50SWZQb3NzaWJsZShzY3JpcHQpOwogICAgIEFTU0VSVChzY3JpcHRFbGVtZW50Lndp
bGxCZVBhcnNlckV4ZWN1dGVkKCkpOwogICAgIEFTU0VSVChzY3JpcHRFbGVtZW50LmxvYWRhYmxl
U2NyaXB0KCkpOwotICAgIHJldHVybiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoKnNjcmlwdCwgKnNj
cmlwdEVsZW1lbnQubG9hZGFibGVTY3JpcHQoKSk7CisgICAgcmV0dXJuIFBlbmRpbmdTY3JpcHQ6
OmNyZWF0ZShzY3JpcHRFbGVtZW50LCAqc2NyaXB0RWxlbWVudC5sb2FkYWJsZVNjcmlwdCgpKTsK
IH0KIAotdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0
KEVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3RQYXJzaW5n
QmxvY2tpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCYgc2NyaXB0RWxlbWVudCkKIHsKICAgICBBU1NF
UlQoIW1fcGFyc2VyQmxvY2tpbmdTY3JpcHQpOwotICAgIG1fcGFyc2VyQmxvY2tpbmdTY3JpcHQg
PSByZXF1ZXN0UGVuZGluZ1NjcmlwdChlbGVtZW50KTsKKyAgICBtX3BhcnNlckJsb2NraW5nU2Ny
aXB0ID0gcmVxdWVzdFBlbmRpbmdTY3JpcHQoc2NyaXB0RWxlbWVudCk7CiAgICAgQVNTRVJUKG1f
cGFyc2VyQmxvY2tpbmdTY3JpcHQtPm5lZWRzTG9hZGluZygpKTsKIAogICAgIC8vIFdlIG9ubHkg
Y2FyZSBhYm91dCBhIGxvYWQgY2FsbGJhY2sgaWYgTG9hZGFibGVTY3JpcHQgaXMgbm90IGFscmVh
ZHkKQEAgLTIzMCw1NSArMjIzLDQ0IEBAIHZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6cmVxdWVzdFBh
cnNpbmdCbG9ja2luZ1NjcmlwdChFbGVtZW50KiBlbGVtZW50KQogICAgICAgICB3YXRjaEZvckxv
YWQoKm1fcGFyc2VyQmxvY2tpbmdTY3JpcHQpOwogfQogCi12b2lkIEhUTUxTY3JpcHRSdW5uZXI6
OnJlcXVlc3REZWZlcnJlZFNjcmlwdChFbGVtZW50KiBlbGVtZW50KQordm9pZCBIVE1MU2NyaXB0
UnVubmVyOjpyZXF1ZXN0RGVmZXJyZWRTY3JpcHQoU2NyaXB0RWxlbWVudCYgc2NyaXB0RWxlbWVu
dCkKIHsKLSAgICBhdXRvIHBlbmRpbmdTY3JpcHQgPSByZXF1ZXN0UGVuZGluZ1NjcmlwdChlbGVt
ZW50KTsKKyAgICBhdXRvIHBlbmRpbmdTY3JpcHQgPSByZXF1ZXN0UGVuZGluZ1NjcmlwdChzY3Jp
cHRFbGVtZW50KTsKICAgICBBU1NFUlQocGVuZGluZ1NjcmlwdC0+bmVlZHNMb2FkaW5nKCkpOwog
ICAgIG1fc2NyaXB0c1RvRXhlY3V0ZUFmdGVyUGFyc2luZy5hcHBlbmQoV1RGTW92ZShwZW5kaW5n
U2NyaXB0KSk7CiB9CiAKIC8vIFRoaXMgbWV0aG9kIGlzIG1lYW50IHRvIG1hdGNoIHRoZSBIVE1M
NSBkZWZpbml0aW9uIG9mICJydW5uaW5nIGEgc2NyaXB0IgogLy8gaHR0cDovL3d3dy53aGF0d2cu
b3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2Uvc2NyaXB0aW5nLTEuaHRt
bCNydW5uaW5nLWEtc2NyaXB0Ci12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJ1blNjcmlwdChFbGVt
ZW50KiBzY3JpcHQsIGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKK3Zv
aWQgSFRNTFNjcmlwdFJ1bm5lcjo6cnVuU2NyaXB0KFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1l
bnQsIGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKIHsKICAgICBBU1NF
UlQobV9kb2N1bWVudCk7CiAgICAgQVNTRVJUKCFoYXNQYXJzZXJCbG9ja2luZ1NjcmlwdCgpKTsK
LSAgICB7Ci0gICAgICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVs
ZW1lbnRJZlBvc3NpYmxlKHNjcmlwdCk7Ci0KLSAgICAgICAgLy8gVGhpcyBjb250YWlucyBib3Ro
IGFuZCBBU1NFUlRJT04gYW5kIGEgbnVsbCBjaGVjayBzaW5jZSB3ZSBzaG91bGQgbm90Ci0gICAg
ICAgIC8vIGJlIGdldHRpbmcgaW50byB0aGUgY2FzZSBvZiBhIG51bGwgc2NyaXB0IGVsZW1lbnQs
IGJ1dCBzZWVtIHRvIGJlIGZyb20KLSAgICAgICAgLy8gdGltZSB0byB0aW1lLiBUaGUgYXNzZXJ0
aW9uIGlzIGxlZnQgaW4gdG8gaGVscCBmaW5kIHRob3NlIGNhc2VzIGFuZAotICAgICAgICAvLyBp
cyBiZWluZyB0cmFja2VkIGJ5IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjA1NTk+LgotICAgICAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7Ci0gICAgICAgIGlmICgh
c2NyaXB0RWxlbWVudCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAvLyBGSVhNRTog
VGhpcyBtYXkgYmUgdG9vIGFncmVzc2l2ZSBhcyB3ZSBhbHdheXMgZGVsaXZlciBtdXRhdGlvbnMg
YXQKLSAgICAgICAgLy8gZXZlcnkgc2NyaXB0IGVsZW1lbnQsIGV2ZW4gaWYgaXQncyBub3QgcmVh
ZHkgdG8gZXhlY3V0ZSB5ZXQuIFRoZXJlJ3MKLSAgICAgICAgLy8gdW5mb3J0dWFudGVseSBubyBv
YnZpb3VzIHdheSB0byB0ZWxsIGlmIHByZXBhcmVTY3JpcHQgaXMgZ29pbmcgdG8KLSAgICAgICAg
Ly8gZXhlY3V0ZSB0aGUgc2NyaXB0IGZyb20gb3V0IGhlcmUuCi0gICAgICAgIGlmICghaXNFeGVj
dXRpbmdTY3JpcHQoKSkKLSAgICAgICAgICAgIE1pY3JvdGFza1F1ZXVlOjptYWluVGhyZWFkUXVl
dWUoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOwotCi0gICAgICAgIEluc2VydGlvblBv
aW50UmVjb3JkIGluc2VydGlvblBvaW50UmVjb3JkKG1faG9zdC5pbnB1dFN0cmVhbSgpKTsKLSAg
ICAgICAgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVsSW5jcmVtZW50ZXIobV9z
Y3JpcHROZXN0aW5nTGV2ZWwpOwogCi0gICAgICAgIHNjcmlwdEVsZW1lbnQtPnByZXBhcmVTY3Jp
cHQoc2NyaXB0U3RhcnRQb3NpdGlvbik7Ci0KLSAgICAgICAgaWYgKCFzY3JpcHRFbGVtZW50LT53
aWxsQmVQYXJzZXJFeGVjdXRlZCgpKQotICAgICAgICAgICAgcmV0dXJuOworICAgIC8vIEZJWE1F
OiBUaGlzIG1heSBiZSB0b28gYWdyZXNzaXZlIGFzIHdlIGFsd2F5cyBkZWxpdmVyIG11dGF0aW9u
cyBhdAorICAgIC8vIGV2ZXJ5IHNjcmlwdCBlbGVtZW50LCBldmVuIGlmIGl0J3Mgbm90IHJlYWR5
IHRvIGV4ZWN1dGUgeWV0LiBUaGVyZSdzCisgICAgLy8gdW5mb3J0dW5hdGVseSBubyBvYnZpb3Vz
IHdheSB0byB0ZWxsIGlmIHByZXBhcmVTY3JpcHQgaXMgZ29pbmcgdG8KKyAgICAvLyBleGVjdXRl
IHRoZSBzY3JpcHQgYmVmb3JlIGNhbGxpbmcgaXQuCisgICAgaWYgKCFpc0V4ZWN1dGluZ1Njcmlw
dCgpKQorICAgICAgICBNaWNyb3Rhc2tRdWV1ZTo6bWFpblRocmVhZFF1ZXVlKCkucGVyZm9ybU1p
Y3JvdGFza0NoZWNrcG9pbnQoKTsKIAotICAgICAgICBpZiAoc2NyaXB0RWxlbWVudC0+d2lsbEV4
ZWN1dGVXaGVuRG9jdW1lbnRGaW5pc2hlZFBhcnNpbmcoKSkKLSAgICAgICAgICAgIHJlcXVlc3RE
ZWZlcnJlZFNjcmlwdChzY3JpcHQpOwotICAgICAgICBlbHNlIGlmIChzY3JpcHRFbGVtZW50LT5y
ZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgpKSB7Ci0gICAgICAgICAgICBpZiAobV9zY3JpcHROZXN0
aW5nTGV2ZWwgPT0gMSkKLSAgICAgICAgICAgICAgICBtX3BhcnNlckJsb2NraW5nU2NyaXB0ID0g
UGVuZGluZ1NjcmlwdDo6Y3JlYXRlKCpzY3JpcHQsIHNjcmlwdFN0YXJ0UG9zaXRpb24pOwotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNjcmlwdEVsZW1lbnQtPmV4ZWN1dGVDbGFz
c2ljU2NyaXB0KFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0LT50ZXh0Q29udGVudCgpLCBkb2N1bWVu
dFVSTEZvclNjcmlwdEV4ZWN1dGlvbihtX2RvY3VtZW50KSwgc2NyaXB0U3RhcnRQb3NpdGlvbikp
OwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3Jp
cHQoc2NyaXB0KTsKLSAgICB9CisgICAgSW5zZXJ0aW9uUG9pbnRSZWNvcmQgaW5zZXJ0aW9uUG9p
bnRSZWNvcmQobV9ob3N0LmlucHV0U3RyZWFtKCkpOworICAgIE5lc3RpbmdMZXZlbEluY3JlbWVu
dGVyIG5lc3RpbmdMZXZlbEluY3JlbWVudGVyKG1fc2NyaXB0TmVzdGluZ0xldmVsKTsKKworICAg
IHNjcmlwdEVsZW1lbnQucHJlcGFyZVNjcmlwdChzY3JpcHRTdGFydFBvc2l0aW9uKTsKKworICAg
IGlmICghc2NyaXB0RWxlbWVudC53aWxsQmVQYXJzZXJFeGVjdXRlZCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoc2NyaXB0RWxlbWVudC53aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlz
aGVkUGFyc2luZygpKQorICAgICAgICByZXF1ZXN0RGVmZXJyZWRTY3JpcHQoc2NyaXB0RWxlbWVu
dCk7CisgICAgZWxzZSBpZiAoc2NyaXB0RWxlbWVudC5yZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgp
KSB7CisgICAgICAgIGlmIChtX3NjcmlwdE5lc3RpbmdMZXZlbCA9PSAxKQorICAgICAgICAgICAg
bV9wYXJzZXJCbG9ja2luZ1NjcmlwdCA9IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShzY3JpcHRFbGVt
ZW50LCBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2Ny
aXB0RWxlbWVudC5leGVjdXRlQ2xhc3NpY1NjcmlwdChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdEVs
ZW1lbnQuZWxlbWVudCgpLnRleHRDb250ZW50KCksIGRvY3VtZW50VVJMRm9yU2NyaXB0RXhlY3V0
aW9uKG1fZG9jdW1lbnQpLCBzY3JpcHRTdGFydFBvc2l0aW9uKSk7CisgICAgfSBlbHNlCisgICAg
ICAgIHJlcXVlc3RQYXJzaW5nQmxvY2tpbmdTY3JpcHQoc2NyaXB0RWxlbWVudCk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuaAppbmRleCA3
NjgwMGQ3MTNjZTdkMmU0NjM1YTY2MjM1YjE2N2MxOWY0NTdjODAzLi5jODY3NDdkOTFiYWUwNWU0
Mjc2NmRkZmZlZDU5YTA4M2U3YWExZmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFNjcmlwdFJ1bm5lci5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsMTMgKzMzLDEyIEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lOwogY2xh
c3MgSFRNTFNjcmlwdFJ1bm5lckhvc3Q7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogCiBjbGFz
cyBIVE1MU2NyaXB0UnVubmVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShIVE1MU2NyaXB0
UnVubmVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CiAgICAgSFRNTFNjcmlwdFJ1bm5lcihEb2N1bWVudCYsIEhUTUxTY3Jp
cHRSdW5uZXJIb3N0Jik7CiAgICAgfkhUTUxTY3JpcHRSdW5uZXIoKTsKQEAgLTQ2LDcgKzQ2LDcg
QEAgcHVibGljOgogICAgIHZvaWQgZGV0YWNoKCk7CiAKICAgICAvLyBQcm9jZXNzZXMgdGhlIHBh
c3NlZCBpbiBzY3JpcHQgYW5kIGFueSBwZW5kaW5nIHNjcmlwdHMgaWYgcG9zc2libGUuCi0gICAg
dm9pZCBleGVjdXRlKFBhc3NSZWZQdHI8RWxlbWVudD4gc2NyaXB0VG9Qcm9jZXNzLCBjb25zdCBU
ZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgIHZvaWQgZXhlY3V0ZShSZWY8
U2NyaXB0RWxlbWVudD4mJiwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9u
KTsKIAogICAgIHZvaWQgZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9yTG9hZChQZW5kaW5nU2NyaXB0
Jik7CiAgICAgYm9vbCBoYXNTY3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKCkgY29uc3QgeyBy
ZXR1cm4gbV9oYXNTY3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzOyB9CkBAIC01OSwxNiArNTks
MTQgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdDsKIAotICAg
IHZvaWQgZXhlY3V0ZVBhcnNpbmdCbG9ja2luZ1NjcmlwdCgpOwotICAgIHZvaWQgZXhlY3V0ZVBl
bmRpbmdTY3JpcHRBbmREaXNwYXRjaEV2ZW50KFJlZlB0cjxQZW5kaW5nU2NyaXB0Pik7CisgICAg
dm9pZCBleGVjdXRlUGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQoUGVuZGluZ1NjcmlwdCYp
OwogICAgIHZvaWQgZXhlY3V0ZVBhcnNpbmdCbG9ja2luZ1NjcmlwdHMoKTsKIAotICAgIHZvaWQg
cmVxdWVzdFBhcnNpbmdCbG9ja2luZ1NjcmlwdChFbGVtZW50Kik7Ci0gICAgdm9pZCByZXF1ZXN0
RGVmZXJyZWRTY3JpcHQoRWxlbWVudCopOworICAgIHZvaWQgcmVxdWVzdFBhcnNpbmdCbG9ja2lu
Z1NjcmlwdChTY3JpcHRFbGVtZW50Jik7CisgICAgdm9pZCByZXF1ZXN0RGVmZXJyZWRTY3JpcHQo
U2NyaXB0RWxlbWVudCYpOwogCi0gICAgdm9pZCBydW5TY3JpcHQoRWxlbWVudCosIGNvbnN0IFRl
eHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgdm9pZCBydW5TY3JpcHQoU2Ny
aXB0RWxlbWVudCYsIGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CiAK
LSAgICAvLyBIZWxwZXJzIGZvciBkZWFsaW5nIHdpdGggSFRNTFNjcmlwdFJ1bm5lckhvc3QKICAg
ICB2b2lkIHdhdGNoRm9yTG9hZChQZW5kaW5nU2NyaXB0Jik7CiAgICAgdm9pZCBzdG9wV2F0Y2hp
bmdGb3JMb2FkKFBlbmRpbmdTY3JpcHQmKTsKICAgICBib29sIGlzUGVuZGluZ1NjcmlwdFJlYWR5
KGNvbnN0IFBlbmRpbmdTY3JpcHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4IDQ1MjRjMWVhYWNmZDkzMjkwMjZjNjZjYjcyYWI1NGIw
MDhmNjJhNGMuLmQ0Zjg0ZDJmYTU1ZDU5OTBlNmY3NzVjZGYwZTQ0YTMyMGM3YWM2MmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtMSw2
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
NSwxMCArMzUsMTIgQEAKICNpbmNsdWRlICJIVE1MT3B0R3JvdXBFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCisj
aW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGFibGVFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiTG9j
YWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAi
U1ZHU2NyaXB0RWxlbWVudC5oIgogI2luY2x1ZGUgIlhMaW5rTmFtZXMuaCIKICNpbmNsdWRlICJY
TUxOU05hbWVzLmgiCiAjaW5jbHVkZSAiWE1MTmFtZXMuaCIKQEAgLTU3LDEwICs1OSwxMiBAQCBD
dXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YTo6Q3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRh
dGEoUmVmPEpTQ3VzdG9tRWxlbWVudAogICAgIDogZWxlbWVudEludGVyZmFjZShXVEZNb3ZlKGN1
c3RvbUVsZW1lbnRJbnRlcmZhY2UpKQogICAgICwgbmFtZShuYW1lKQogICAgICwgYXR0cmlidXRl
cyhXVEZNb3ZlKGF0dHJpYnV0ZXMpKQoteyB9Cit7Cit9CiAKIEN1c3RvbUVsZW1lbnRDb25zdHJ1
Y3Rpb25EYXRhOjp+Q3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGEoKQoteyB9Cit7Cit9CiAK
IG5hbWVzcGFjZSB7CiAKQEAgLTMxOCw3ICszMjIsNyBAQCBpbmxpbmUgSFRNTFN0YWNrSXRlbSYg
SFRNTFRyZWVCdWlsZGVyOjpGcmFnbWVudFBhcnNpbmdDb250ZXh0Ojpjb250ZXh0RWxlbWVudFN0
YQogICAgIHJldHVybiAqbV9jb250ZXh0RWxlbWVudFN0YWNrSXRlbTsKIH0KIAotUmVmUHRyPEVs
ZW1lbnQ+IEhUTUxUcmVlQnVpbGRlcjo6dGFrZVNjcmlwdFRvUHJvY2VzcyhUZXh0UG9zaXRpb24m
IHNjcmlwdFN0YXJ0UG9zaXRpb24pCitSZWZQdHI8U2NyaXB0RWxlbWVudD4gSFRNTFRyZWVCdWls
ZGVyOjp0YWtlU2NyaXB0VG9Qcm9jZXNzKFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlv
bikKIHsKICAgICBBU1NFUlQoIW1fZGVzdHJveWVkKTsKIApAQCAtMjA1Nyw3ICsyMDYxLDcgQEAg
dm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuJiYgdG9r
ZW4pCiAgICAgICAgICAgICAvLyBQYXVzZSBvdXJzZWx2ZXMgc28gdGhhdCBwYXJzaW5nIHN0b3Bz
IHVudGlsIHRoZSBzY3JpcHQgY2FuIGJlIHByb2Nlc3NlZCBieSB0aGUgY2FsbGVyLgogICAgICAg
ICAgICAgQVNTRVJUKG1fdHJlZS5jdXJyZW50U3RhY2tJdGVtKCkuaGFzVGFnTmFtZShzY3JpcHRU
YWcpKTsKICAgICAgICAgICAgIGlmIChzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKG1fdHJlZS5w
YXJzZXJDb250ZW50UG9saWN5KCkpKQotICAgICAgICAgICAgICAgIG1fc2NyaXB0VG9Qcm9jZXNz
ID0gJm1fdHJlZS5jdXJyZW50RWxlbWVudCgpOworICAgICAgICAgICAgICAgIG1fc2NyaXB0VG9Q
cm9jZXNzID0gJmRvd25jYXN0PEhUTUxTY3JpcHRFbGVtZW50PihtX3RyZWUuY3VycmVudEVsZW1l
bnQoKSk7CiAgICAgICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCkucG9wKCk7CiAgICAgICAg
ICAgICBtX2luc2VydGlvbk1vZGUgPSBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZTsKIApAQCAtMjc4
Nyw3ICsyNzkxLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUb2tlbkluRm9yZWln
bkNvbnRlbnQoQXRvbWljSFRNTFRva2VuJiYgdG9rZW4pCiAKICAgICAgICAgaWYgKHRva2VuLm5h
bWUoKSA9PSBTVkdOYW1lczo6c2NyaXB0VGFnICYmIG1fdHJlZS5jdXJyZW50U3RhY2tJdGVtKCku
aGFzVGFnTmFtZShTVkdOYW1lczo6c2NyaXB0VGFnKSkgewogICAgICAgICAgICAgaWYgKHNjcmlw
dGluZ0NvbnRlbnRJc0FsbG93ZWQobV90cmVlLnBhcnNlckNvbnRlbnRQb2xpY3koKSkpCi0gICAg
ICAgICAgICAgICAgbV9zY3JpcHRUb1Byb2Nlc3MgPSAmbV90cmVlLmN1cnJlbnRFbGVtZW50KCk7
CisgICAgICAgICAgICAgICAgbV9zY3JpcHRUb1Byb2Nlc3MgPSAmZG93bmNhc3Q8U1ZHU2NyaXB0
RWxlbWVudD4obV90cmVlLmN1cnJlbnRFbGVtZW50KCkpOwogICAgICAgICAgICAgbV90cmVlLm9w
ZW5FbGVtZW50cygpLnBvcCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCmluZGV4IGQ3MDkyOWY2
MGE2MGJjNjU5NmY2NzkwY2QwMGRlZjE2Zjk4NTU5YTUuLmFlY2NhYjQ1ZGE1NTBjZTM5YTY4OTY4
MGIwY2Y0NGNjNTAyZjFmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
cmVlQnVpbGRlci5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U7CiBjbGFzcyBIVE1MRG9jdW1lbnRQYXJzZXI7
CitjbGFzcyBTY3JpcHRFbGVtZW50OwogCiBzdHJ1Y3QgQ3VzdG9tRWxlbWVudENvbnN0cnVjdGlv
bkRhdGEgewogICAgIEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhKFJlZjxKU0N1c3RvbUVs
ZW1lbnRJbnRlcmZhY2U+JiYsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPEF0dHJp
YnV0ZT4mJik7CkBAIC02Miw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1BhcnNlckJs
b2NraW5nU2NyaXB0V29yaygpIGNvbnN0OwogCiAgICAgLy8gTXVzdCBiZSBjYWxsZWQgdG8gdGFr
ZSB0aGUgcGFyc2VyLWJsb2NraW5nIHNjcmlwdCBiZWZvcmUgY2FsbGluZyB0aGUgcGFyc2VyIGFn
YWluLgotICAgIFJlZlB0cjxFbGVtZW50PiB0YWtlU2NyaXB0VG9Qcm9jZXNzKFRleHRQb3NpdGlv
biYgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgUmVmUHRyPFNjcmlwdEVsZW1lbnQ+IHRha2VT
Y3JpcHRUb1Byb2Nlc3MoVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YT4gdGFrZUN1c3Rv
bUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhKCkgeyByZXR1cm4gV1RGTW92ZShtX2N1c3RvbUVsZW1l
bnRUb0NvbnN0cnVjdCk7IH0KICAgICB2b2lkIGRpZENyZWF0ZUN1c3RvbU9yQ2FsbGJhY2tFbGVt
ZW50KFJlZjxFbGVtZW50PiYmLCBDdXN0b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YSYpOwpAQCAt
MjA2LDcgKzIwNyw3IEBAIHByaXZhdGU6CiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjY29uY2VwdC1wZW5kaW5nLXRhYmxlLWNoYXItdG9r
ZW5zCiAgICAgU3RyaW5nQnVpbGRlciBtX3BlbmRpbmdUYWJsZUNoYXJhY3RlcnM7CiAKLSAgICBS
ZWZQdHI8RWxlbWVudD4gbV9zY3JpcHRUb1Byb2Nlc3M7IC8vIDxzY3JpcHQ+IHRhZyB3aGljaCBu
ZWVkcyBwcm9jZXNzaW5nIGJlZm9yZSByZXN1bWluZyB0aGUgcGFyc2VyLgorICAgIFJlZlB0cjxT
Y3JpcHRFbGVtZW50PiBtX3NjcmlwdFRvUHJvY2VzczsgLy8gPHNjcmlwdD4gdGFnIHdoaWNoIG5l
ZWRzIHByb2Nlc3NpbmcgYmVmb3JlIHJlc3VtaW5nIHRoZSBwYXJzZXIuCiAgICAgVGV4dFBvc2l0
aW9uIG1fc2NyaXB0VG9Qcm9jZXNzU3RhcnRQb3NpdGlvbjsgLy8gU3RhcnRpbmcgbGluZSBudW1i
ZXIgb2YgdGhlIHNjcmlwdCB0YWcgbmVlZGluZyBwcm9jZXNzaW5nLgogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhPiBtX2N1c3RvbUVsZW1lbnRUb0Nv
bnN0cnVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1
bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQ
YXJzZXIuY3BwCmluZGV4IGFkNWY2ZTc4ZTM4MWFhZGNjYzZiOTFiYTk3Y2E0MjU1ODA0Y2I5NzAu
LmY5ODgyNWIyMDYwOTdmMmM0YThjMWZlODRiNDBiNmQ4ZjBhNWVhY2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmNwcApAQCAtMjYsNiAr
MjYsNyBAQAogI2luY2x1ZGUgIlRleHREb2N1bWVudFBhcnNlci5oIgogCiAjaW5jbHVkZSAiSFRN
TFRyZWVCdWlsZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1
ZGl0b3JEZWxlZ2F0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9y
RGVsZWdhdGUuY3BwCmluZGV4IDNmNDNlMDRkNWRlZWI3ZDI5MzExNmU4ZGVjMjNjN2IwYmY3ZmI3
NzkuLjliNTBiYTNiMTQzNjhjMjNkMTM2NjExZWY4Yzk0ODZkY2JlY2MzNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcApAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlLCBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSw3ICs0Niw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogWFNTQXVkaXRvckRlbGVnYXRlOjpYU1NBdWRpdG9y
RGVsZWdhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkK
LSAgICAsIG1fZGlkU2VuZE5vdGlmaWNhdGlvbnMoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKIH0KQEAgLTY5LDIyICs2OSwyMiBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBi
dWlsZENvbnNvbGVFcnJvcihjb25zdCBYU1NJbmZvJiB4c3NJbmZvKQogICAgIHJldHVybiBtZXNz
YWdlLnRvU3RyaW5nKCk7CiB9CiAKLVBhc3NSZWZQdHI8Rm9ybURhdGE+IFhTU0F1ZGl0b3JEZWxl
Z2F0ZTo6Z2VuZXJhdGVWaW9sYXRpb25SZXBvcnQoY29uc3QgWFNTSW5mbyYgeHNzSW5mbykKK1Jl
ZjxGb3JtRGF0YT4gWFNTQXVkaXRvckRlbGVnYXRlOjpnZW5lcmF0ZVZpb2xhdGlvblJlcG9ydChj
b25zdCBYU1NJbmZvJiB4c3NJbmZvKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAK
LSAgICBGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIgPSBtX2RvY3VtZW50LmZyYW1lKCktPmxvYWRl
cigpOworICAgIGF1dG8mIGZyYW1lTG9hZGVyID0gbV9kb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIo
KTsKICAgICBTdHJpbmcgaHR0cEJvZHk7CiAgICAgaWYgKGZyYW1lTG9hZGVyLmRvY3VtZW50TG9h
ZGVyKCkpIHsKLSAgICAgICAgaWYgKEZvcm1EYXRhKiBmb3JtRGF0YSA9IGZyYW1lTG9hZGVyLmRv
Y3VtZW50TG9hZGVyKCktPm9yaWdpbmFsUmVxdWVzdCgpLmh0dHBCb2R5KCkpCisgICAgICAgIGlm
IChhdXRvKiBmb3JtRGF0YSA9IGZyYW1lTG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPm9yaWdpbmFs
UmVxdWVzdCgpLmh0dHBCb2R5KCkpCiAgICAgICAgICAgICBodHRwQm9keSA9IGZvcm1EYXRhLT5m
bGF0dGVuVG9TdHJpbmcoKTsKICAgICB9CiAKLSAgICBSZWY8SW5zcGVjdG9yT2JqZWN0PiByZXBv
cnREZXRhaWxzID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBhdXRvIHJlcG9ydERl
dGFpbHMgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwogICAgIHJlcG9ydERldGFpbHMtPnNl
dFN0cmluZygicmVxdWVzdC11cmwiLCB4c3NJbmZvLm1fb3JpZ2luYWxVUkwpOwogICAgIHJlcG9y
dERldGFpbHMtPnNldFN0cmluZygicmVxdWVzdC1ib2R5IiwgaHR0cEJvZHkpOwogCi0gICAgUmVm
PEluc3BlY3Rvck9iamVjdD4gcmVwb3J0T2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUo
KTsKKyAgICBhdXRvIHJlcG9ydE9iamVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAg
ICAgcmVwb3J0T2JqZWN0LT5zZXRPYmplY3QoInhzcy1yZXBvcnQiLCBXVEZNb3ZlKHJlcG9ydERl
dGFpbHMpKTsKIAogICAgIHJldHVybiBGb3JtRGF0YTo6Y3JlYXRlKHJlcG9ydE9iamVjdC0+dG9K
U09OU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oCmluZGV4IDBhZTI3NGIzMTkyZGZhNDdhNjNjZTk2YTJh
OTc5NDY1ZWM4ODA4ZWYuLjY3YTMyZWQ5MzBkN2Q5ZGQ0ZGFjNDA4OTIyMGJkZjNmMmFkNzZlODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5o
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUsIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3
LDEzICsyOCwxNCBAQAogCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4
dFBvc2l0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBGb3JtRGF0YTsKIAorLy8gRklY
TUU6IFNob3VsZCBjaGFuZ2UgaW50byBhIHN0cnVjdC4KKy8vIEZJWE1FOiBTaG91bGQgcmV0dXJu
IGJ5IHZhbHVlIGluc3RlYWQgb2YgdXNpbmcgYSB1bmlxdWVfcHRyLgogY2xhc3MgWFNTSW5mbyB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC01MSw3ICs1Myw2IEBA
IHB1YmxpYzoKIH07CiAKIGNsYXNzIFhTU0F1ZGl0b3JEZWxlZ2F0ZSB7Ci0gICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoWFNTQXVkaXRvckRlbGVnYXRlKTsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBY
U1NBdWRpdG9yRGVsZWdhdGUoRG9jdW1lbnQmKTsKIApAQCAtNTksMTAgKzYwLDEwIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFJlcG9ydFVSTChjb25zdCBVUkwmIHVybCkgeyBtX3JlcG9ydFVSTCA9
IHVybDsgfQogCiBwcml2YXRlOgotICAgIFBhc3NSZWZQdHI8Rm9ybURhdGE+IGdlbmVyYXRlVmlv
bGF0aW9uUmVwb3J0KGNvbnN0IFhTU0luZm8mKTsKKyAgICBSZWY8Rm9ybURhdGE+IGdlbmVyYXRl
VmlvbGF0aW9uUmVwb3J0KGNvbnN0IFhTU0luZm8mKTsKIAogICAgIERvY3VtZW50JiBtX2RvY3Vt
ZW50OwotICAgIGJvb2wgbV9kaWRTZW5kTm90aWZpY2F0aW9uczsKKyAgICBib29sIG1fZGlkU2Vu
ZE5vdGlmaWNhdGlvbnMgeyBmYWxzZSB9OwogICAgIFVSTCBtX3JlcG9ydFVSTDsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suY3BwCmluZGV4IDhjMzU2Zjc5MTVkNDk4
Y2UzNDEyZjc5ODgyZjhkMDYwYjA4NTYxOTIuLmVlYjA1NTM3ZjY0NTM0ZjY1NTU3YTZjZjQ0ZjM4
MDFkMWQzNmJiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9U
cmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcApA
QCAtMSw2ICsxLDYgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQpAQCAtMzAsMTMgKzMwLDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkF1ZGlvVHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAot
I2luY2x1ZGUgIkF1ZGlvVHJhY2suaCIKLQotI2luY2x1ZGUgIkF1ZGlvVHJhY2tMaXN0LmgiCi0j
aW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKQEAgLTc4LDEwICs3NSwxMCBAQCBjb25zdCBBdG9t
aWNTdHJpbmcmIEF1ZGlvVHJhY2s6OmNvbW1lbnRhcnlLZXl3b3JkKCkKICAgICByZXR1cm4gY29t
bWVudGFyeTsKIH0KIAotQXVkaW9UcmFjazo6QXVkaW9UcmFjayhBdWRpb1RyYWNrQ2xpZW50KiBj
bGllbnQsIFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKLSAgICA6
IE1lZGlhVHJhY2tCYXNlKE1lZGlhVHJhY2tCYXNlOjpBdWRpb1RyYWNrLCB0cmFja1ByaXZhdGUt
PmlkKCksIHRyYWNrUHJpdmF0ZS0+bGFiZWwoKSwgdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpKQot
ICAgICwgbV9lbmFibGVkKHRyYWNrUHJpdmF0ZS0+ZW5hYmxlZCgpKQotICAgICwgbV9jbGllbnQo
Y2xpZW50KQorQXVkaW9UcmFjazo6QXVkaW9UcmFjayhBdWRpb1RyYWNrQ2xpZW50JiBjbGllbnQs
IEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgOiBNZWRpYVRyYWNrQmFzZShN
ZWRpYVRyYWNrQmFzZTo6QXVkaW9UcmFjaywgdHJhY2tQcml2YXRlLmlkKCksIHRyYWNrUHJpdmF0
ZS5sYWJlbCgpLCB0cmFja1ByaXZhdGUubGFuZ3VhZ2UoKSkKKyAgICAsIG1fZW5hYmxlZCh0cmFj
a1ByaXZhdGUuZW5hYmxlZCgpKQorICAgICwgbV9jbGllbnQoJmNsaWVudCkKICAgICAsIG1fcHJp
dmF0ZSh0cmFja1ByaXZhdGUpCiB7CiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CkBA
IC05Myw4MCArOTAsNzAgQEAgQXVkaW9UcmFjazo6fkF1ZGlvVHJhY2soKQogICAgIG1fcHJpdmF0
ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwogfQogCi12b2lkIEF1ZGlvVHJhY2s6OnNldFByaXZhdGUo
UGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQordm9pZCBBdWRpb1Ry
YWNrOjpzZXRQcml2YXRlKEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiB7Ci0gICAg
QVNTRVJUKG1fcHJpdmF0ZSk7Ci0gICAgQVNTRVJUKHRyYWNrUHJpdmF0ZSk7Ci0KLSAgICBpZiAo
bV9wcml2YXRlID09IHRyYWNrUHJpdmF0ZSkKKyAgICBpZiAobV9wcml2YXRlLnB0cigpID09ICZ0
cmFja1ByaXZhdGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50
KG51bGxwdHIpOwogICAgIG1fcHJpdmF0ZSA9IHRyYWNrUHJpdmF0ZTsKKyAgICBtX3ByaXZhdGUt
PnNldEVuYWJsZWQobV9lbmFibGVkKTsKICAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlzKTsK
IAotICAgIG1fcHJpdmF0ZS0+c2V0RW5hYmxlZChtX2VuYWJsZWQpOwogICAgIHVwZGF0ZUtpbmRG
cm9tUHJpdmF0ZSgpOwogfQogCiBib29sIEF1ZGlvVHJhY2s6OmlzVmFsaWRLaW5kKGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHZhbHVlID09IGFsdGVybmF0
aXZlS2V5d29yZCgpCisgICAgICAgIHx8IHZhbHVlID09IGNvbW1lbnRhcnlLZXl3b3JkKCkKICAg
ICAgICAgfHwgdmFsdWUgPT0gZGVzY3JpcHRpb25LZXl3b3JkKCkKICAgICAgICAgfHwgdmFsdWUg
PT0gbWFpbktleXdvcmQoKQogICAgICAgICB8fCB2YWx1ZSA9PSBtYWluRGVzY0tleXdvcmQoKQot
ICAgICAgICB8fCB2YWx1ZSA9PSB0cmFuc2xhdGlvbktleXdvcmQoKQotICAgICAgICB8fCB2YWx1
ZSA9PSBjb21tZW50YXJ5S2V5d29yZCgpOworICAgICAgICB8fCB2YWx1ZSA9PSB0cmFuc2xhdGlv
bktleXdvcmQoKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjpzZXRFbmFibGVkKGNvbnN0IGJvb2wg
ZW5hYmxlZCkKK3ZvaWQgQXVkaW9UcmFjazo6c2V0RW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAg
ICAgaWYgKG1fZW5hYmxlZCA9PSBlbmFibGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2Vu
YWJsZWQgPSBlbmFibGVkOwogICAgIG1fcHJpdmF0ZS0+c2V0RW5hYmxlZChlbmFibGVkKTsKLQot
ICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmF1ZGlvVHJhY2tFbmFibGVkQ2hh
bmdlZCh0aGlzKTsKIH0KIAotc2l6ZV90IEF1ZGlvVHJhY2s6OmluYmFuZFRyYWNrSW5kZXgoKQor
c2l6ZV90IEF1ZGlvVHJhY2s6OmluYmFuZFRyYWNrSW5kZXgoKSBjb25zdAogewotICAgIEFTU0VS
VChtX3ByaXZhdGUpOwogICAgIHJldHVybiBtX3ByaXZhdGUtPnRyYWNrSW5kZXgoKTsKIH0KIAot
dm9pZCBBdWRpb1RyYWNrOjplbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrUHJpdmF0ZSogdHJhY2tQ
cml2YXRlLCBib29sIGVuYWJsZWQpCit2b2lkIEF1ZGlvVHJhY2s6OmVuYWJsZWRDaGFuZ2VkKGJv
b2wgZW5hYmxlZCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2
YXRlID09IG1fcHJpdmF0ZSk7CisgICAgaWYgKG1fZW5hYmxlZCA9PSBlbmFibGVkKQorICAgICAg
ICByZXR1cm47CisKICAgICBtX2VuYWJsZWQgPSBlbmFibGVkOwogCiAgICAgaWYgKG1fY2xpZW50
KQotICAgICAgICBtX2NsaWVudC0+YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKHRoaXMpOworICAg
ICAgICBtX2NsaWVudC0+YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKCp0aGlzKTsKIH0KIAotdm9p
ZCBBdWRpb1RyYWNrOjppZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBj
b25zdCBBdG9taWNTdHJpbmcmIGlkKQordm9pZCBBdWRpb1RyYWNrOjppZENoYW5nZWQoY29uc3Qg
QXRvbWljU3RyaW5nJiBpZCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJh
Y2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0SWQoaWQpOwogfQogCi12b2lkIEF1ZGlv
VHJhY2s6OmxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0
IEF0b21pY1N0cmluZyYgbGFiZWwpCit2b2lkIEF1ZGlvVHJhY2s6OmxhYmVsQ2hhbmdlZChjb25z
dCBBdG9taWNTdHJpbmcmIGxhYmVsKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRl
LCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRMYWJlbChsYWJlbCk7CiB9CiAK
LXZvaWQgQXVkaW9UcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNr
UHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKK3ZvaWQgQXVkaW9UcmFjazo6
bGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpCiB7Ci0gICAgQVNT
RVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAg
IHNldExhbmd1YWdlKGxhbmd1YWdlKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjp3aWxsUmVtb3Zl
KFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSkKK3ZvaWQgQXVkaW9UcmFjazo6d2lsbFJl
bW92ZSgpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9
PSBtX3ByaXZhdGUpOwogICAgIG1lZGlhRWxlbWVudCgpLT5yZW1vdmVBdWRpb1RyYWNrKCp0aGlz
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNr
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAppbmRleCA2MWM1YjJj
ZDQyOThkNTc0ZjdmNzE1YmMxYzE5MjAwNzkxZGQyM2FhLi4wN2M3Nzk0ZmEwOTNmNmQyOGEyOTQx
NzNiODUzM2I3YmMyYzliOTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0F1ZGlvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2su
aApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yOSw5ICsyOSw3IEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAj
aW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUV4cG9ydE1h
Y3Jvcy5oIgogI2luY2x1ZGUgIlRyYWNrQmFzZS5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQwLDEyICszOCwxMiBAQCBjbGFz
cyBBdWRpb1RyYWNrOwogY2xhc3MgQXVkaW9UcmFja0NsaWVudCB7CiBwdWJsaWM6CiAgICAgdmly
dHVhbCB+QXVkaW9UcmFja0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNr
RW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYXVkaW9U
cmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2smKSA9IDA7CiB9OwogCi1jbGFzcyBBdWRpb1Ry
YWNrIGZpbmFsIDogcHVibGljIE1lZGlhVHJhY2tCYXNlLCBwdWJsaWMgQXVkaW9UcmFja1ByaXZh
dGVDbGllbnQgeworY2xhc3MgQXVkaW9UcmFjayBmaW5hbCA6IHB1YmxpYyBNZWRpYVRyYWNrQmFz
ZSwgcHJpdmF0ZSBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxBdWRpb1RyYWNrPiBjcmVhdGUoQXVkaW9UcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVm
UHRyPEF1ZGlvVHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCisgICAgc3RhdGljIFJlZjxBdWRp
b1RyYWNrPiBjcmVhdGUoQXVkaW9UcmFja0NsaWVudCYgY2xpZW50LCBBdWRpb1RyYWNrUHJpdmF0
ZSYgdHJhY2tQcml2YXRlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVk
aW9UcmFjayhjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogICAgIH0KQEAgLTU3LDM5ICs1NSwzNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbWFpbkRlc2NLZXl3b3Jk
KCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhbnNsYXRpb25LZXl3b3JkKCk7
CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29tbWVudGFyeUtleXdvcmQoKTsKLSAg
ICBjb25zdCBBdG9taWNTdHJpbmcmIGRlZmF1bHRLaW5kS2V5d29yZCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGVtcHR5QXRvbTsgfQogCi0gICAgYm9vbCBlbmFibGVkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9lbmFibGVkOyB9CisgICAgYm9vbCBlbmFibGVkKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9lbmFibGVkOyB9CiAgICAgdm9pZCBzZXRFbmFibGVkKGNvbnN0IGJvb2wpOwog
Ci0gICAgdm9pZCBjbGVhckNsaWVudCgpIG92ZXJyaWRlIHsgbV9jbGllbnQgPSBudWxscHRyOyB9
CisgICAgdm9pZCBjbGVhckNsaWVudCgpIGZpbmFsIHsgbV9jbGllbnQgPSBudWxscHRyOyB9CiAg
ICAgQXVkaW9UcmFja0NsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0K
IAotICAgIHNpemVfdCBpbmJhbmRUcmFja0luZGV4KCk7CisgICAgc2l6ZV90IGluYmFuZFRyYWNr
SW5kZXgoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0UHJpdmF0ZShQYXNzUmVmUHRyPEF1ZGlvVHJh
Y2tQcml2YXRlPik7Ci0KLXByb3RlY3RlZDoKLSAgICBBdWRpb1RyYWNrKEF1ZGlvVHJhY2tDbGll
bnQqLCBQYXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPik7CisgICAgdm9pZCBzZXRQcml2YXRl
KEF1ZGlvVHJhY2tQcml2YXRlJik7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBpc1ZhbGlkS2luZChj
b25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKKyAgICBBdWRpb1RyYWNrKEF1ZGlv
VHJhY2tDbGllbnQmLCBBdWRpb1RyYWNrUHJpdmF0ZSYpOworCisgICAgYm9vbCBpc1ZhbGlkS2lu
ZChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIEF1ZGlvVHJhY2tQ
cml2YXRlQ2xpZW50Ci0gICAgdm9pZCBlbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrUHJpdmF0ZSos
IGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgZW5hYmxlZENoYW5nZWQoYm9vbCkgZmluYWw7CiAK
ICAgICAvLyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50Ci0gICAgdm9pZCBpZENoYW5nZWQoVHJhY2tQ
cml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgbGFi
ZWxDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRv
bWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJh
c2UqKSBvdmVycmlkZTsKKyAgICB2b2lkIGlkQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBm
aW5hbDsKKyAgICB2b2lkIGxhYmVsQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsK
KyAgICB2b2lkIGxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBmaW5hbDsKKyAg
ICB2b2lkIHdpbGxSZW1vdmUoKSBmaW5hbDsKIAogICAgIHZvaWQgdXBkYXRlS2luZEZyb21Qcml2
YXRlKCk7CiAKICAgICBib29sIG1fZW5hYmxlZDsKICAgICBBdWRpb1RyYWNrQ2xpZW50KiBtX2Ns
aWVudDsKIAotICAgIFJlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOworICAgIFJl
ZjxBdWRpb1RyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4
dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFj
ay5jcHAKaW5kZXggYmU1OGNjODExOWJmZTZkNjBmMDMwYmEwMTkzYzBjZGU1Mjg0OTE5OC4uNmQ5
NTQwMWI0ZWIzMjcyM2U4MjUwMzQxZTk2ZTkxYzRmM2U5ZDI3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNCBDYWJsZSBUZWxldmlzaW9uIExhYnMgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMzLDM1ICszMywzMyBAQAogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1
ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8
SW5iYW5kRGF0YVRleHRUcmFjaz4gSW5iYW5kRGF0YVRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBSZWZQdHI8
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4mJiB0cmFja1ByaXZhdGUpCitpbmxpbmUgSW5iYW5kRGF0
YVRleHRUcmFjazo6SW5iYW5kRGF0YVRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYg
dHJhY2tQcml2YXRlKQorICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgdHJh
Y2tQcml2YXRlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZERhdGFUZXh0VHJh
Y2soY29udGV4dCwgY2xpZW50LCBXVEZNb3ZlKHRyYWNrUHJpdmF0ZSkpKTsKIH0KIAotSW5iYW5k
RGF0YVRleHRUcmFjazo6SW5iYW5kRGF0YVRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUmVmUHRyPEluYmFuZFRleHRUcmFj
a1ByaXZhdGU+JiYgdHJhY2tQcml2YXRlKQotICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQs
IGNsaWVudCwgdHJhY2tQcml2YXRlKQorUmVmPEluYmFuZERhdGFUZXh0VHJhY2s+IEluYmFuZERh
dGFUZXh0VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUZXh0
VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRl
KQogeworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZERhdGFUZXh0VHJhY2soY29udGV4
dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpKTsKIH0KIAogSW5iYW5kRGF0YVRleHRUcmFjazo6fklu
YmFuZERhdGFUZXh0VHJhY2soKQogewogfQogCi12b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OmFk
ZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgp
Cit2b2lkIEluYmFuZERhdGFUZXh0VHJhY2s6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBz
dGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxl
bmd0aCkKIHsKICAgICBhZGRDdWUoRGF0YUN1ZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksIHN0YXJ0LCBlbmQsIGRhdGEsIGxlbmd0aCkpOwogfQogCiAjaWYgRU5BQkxFKERBVEFD
VUVfVkFMVUUpCiAKLXZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZShJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1l
JiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBycFBs
YXRmb3JtVmFsdWUsIGNvbnN0IFN0cmluZyYgdHlwZSkKK3ZvaWQgSW5iYW5kRGF0YVRleHRUcmFj
azo6YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVu
ZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiYmIHBsYXRmb3JtVmFsdWUs
IGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKLSAgICBSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVw
cmVzZW50YXRpb24+IHBsYXRmb3JtVmFsdWUgPSBwcnBQbGF0Zm9ybVZhbHVlOwotICAgIGlmICht
X2luY29tcGxldGVDdWVNYXAuZmluZChwbGF0Zm9ybVZhbHVlLmdldCgpKSAhPSBtX2luY29tcGxl
dGVDdWVNYXAuZW5kKCkpCisgICAgaWYgKG1faW5jb21wbGV0ZUN1ZU1hcC5jb250YWlucyhwbGF0
Zm9ybVZhbHVlLnB0cigpKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBjdWUgPSBEYXRh
Q3VlOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3RhcnQsIGVuZCwgcGxhdGZv
cm1WYWx1ZS5jb3B5UmVmKCksIHR5cGUpOwpAQCAtNzgsMjUgKzc2LDE5IEBAIHZvaWQgSW5iYW5k
RGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3Qg
TWVkaWFUaW1lJiBzCiAgICAgYWRkQ3VlKFdURk1vdmUoY3VlKSk7CiB9CiAKLXZvaWQgSW5iYW5k
RGF0YVRleHRUcmFjazo6dXBkYXRlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29u
c3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBpbkVuZCwgUGFzc1JlZlB0cjxT
ZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcHJwUGxhdGZvcm1WYWx1ZSkKK3ZvaWQg
SW5iYW5kRGF0YVRleHRUcmFjazo6dXBkYXRlRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0
LCBjb25zdCBNZWRpYVRpbWUmIGluRW5kLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlv
biYgcGxhdGZvcm1WYWx1ZSkKIHsKLSAgICBNZWRpYVRpbWUgZW5kID0gaW5FbmQ7Ci0KLSAgICBS
ZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBsYXRmb3JtVmFsdWUgPSBw
cnBQbGF0Zm9ybVZhbHVlOwotICAgIGF1dG8gaXRlciA9IG1faW5jb21wbGV0ZUN1ZU1hcC5maW5k
KHBsYXRmb3JtVmFsdWUuZ2V0KCkpOwotICAgIGlmIChpdGVyID09IG1faW5jb21wbGV0ZUN1ZU1h
cC5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVmUHRyPERhdGFDdWU+IGN1ZSA9IGl0
ZXItPnZhbHVlOworICAgIFJlZlB0cjxEYXRhQ3VlPiBjdWUgPSBtX2luY29tcGxldGVDdWVNYXAu
Z2V0KCZwbGF0Zm9ybVZhbHVlKTsKICAgICBpZiAoIWN1ZSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgY3VlLT53aWxsQ2hhbmdlKCk7CiAKKyAgICBNZWRpYVRpbWUgZW5kID0gaW5FbmQ7CiAgICAg
aWYgKGVuZC5pc1Bvc2l0aXZlSW5maW5pdGUoKSAmJiBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAg
ZW5kID0gbWVkaWFFbGVtZW50KCktPmR1cmF0aW9uTWVkaWFUaW1lKCk7CiAgICAgZWxzZQotICAg
ICAgICBtX2luY29tcGxldGVDdWVNYXAucmVtb3ZlKHBsYXRmb3JtVmFsdWUuZ2V0KCkpOworICAg
ICAgICBtX2luY29tcGxldGVDdWVNYXAucmVtb3ZlKCZwbGF0Zm9ybVZhbHVlKTsKIAogICAgIExP
RyhNZWRpYSwgIkluYmFuZERhdGFUZXh0VHJhY2s6OnVwZGF0ZURhdGFDdWU6IHdhcyBzdGFydD0l
cywgZW5kPSVzLCB3aWxsIGJlIHN0YXJ0PSVzLCBlbmQ9JXNcbiIsIHRvU3RyaW5nKGN1ZS0+c3Rh
cnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKGN1ZS0+ZW5kVGltZSgpKS51dGY4KCku
ZGF0YSgpLCB0b1N0cmluZyhzdGFydCkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoZW5kKS51dGY4
KCkuZGF0YSgpKTsKIApAQCAtMTA2LDE0ICs5OCw5IEBAIHZvaWQgSW5iYW5kRGF0YVRleHRUcmFj
azo6dXBkYXRlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1l
CiAgICAgY3VlLT5kaWRDaGFuZ2UoKTsKIH0KIAotdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjpy
ZW1vdmVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmLCBj
b25zdCBNZWRpYVRpbWUmLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0
aW9uPiBwcnBQbGF0Zm9ybVZhbHVlKQordm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjpyZW1vdmVE
YXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFNlcmlhbGl6ZWRQbGF0
Zm9ybVJlcHJlc2VudGF0aW9uJiBwbGF0Zm9ybVZhbHVlKQogewotICAgIFJlZlB0cjxTZXJpYWxp
emVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcGxhdGZvcm1WYWx1ZSA9IHBycFBsYXRmb3JtVmFs
dWU7Ci0gICAgYXV0byBpdGVyID0gbV9pbmNvbXBsZXRlQ3VlTWFwLmZpbmQocGxhdGZvcm1WYWx1
ZS5nZXQoKSk7Ci0gICAgaWYgKGl0ZXIgPT0gbV9pbmNvbXBsZXRlQ3VlTWFwLmVuZCgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBpZiAoUmVmUHRyPERhdGFDdWU+IGN1ZSA9IGl0ZXItPnZhbHVl
KSB7CisgICAgaWYgKGF1dG8qIGN1ZSA9IG1faW5jb21wbGV0ZUN1ZU1hcC5nZXQoJnBsYXRmb3Jt
VmFsdWUpKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZERhdGFUZXh0VHJhY2s6OnJlbW92
ZURhdGFDdWUgcmVtb3ZpbmcgY3VlOiBzdGFydD0lcywgZW5kPSVzXG4iLCB0b1N0cmluZyhjdWUt
PnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWUtPmVuZFRpbWUoKSkudXRm
OCgpLmRhdGEoKSk7CiAgICAgICAgIHJlbW92ZUN1ZSgqY3VlKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFjay5oCmluZGV4IDI3YThkYjYx
NjlkMGI0NzZjNTRkMzJlNDgxNDI4NjIxZGIyYTMwODMuLjY3YWViNmQwNTE3NGI4NGMwN2E1MzZk
MzljMjNhYTE4MjM4NzY0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
SW5iYW5kRGF0YVRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kRGF0YVRleHRUcmFjay5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxNCBDYWJsZSBUZWxldmlzaW9uIExhYnMgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsMjMgKzMzLDIxIEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGFDdWU7Ci1jbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlOwotY2xhc3MgU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb247CiAKIGNsYXNzIElu
YmFuZERhdGFUZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgSW5iYW5kVGV4dFRyYWNrIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPEluYmFuZERhdGFUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUmVmUHRyPEluYmFuZFRleHRUcmFja1By
aXZhdGU+JiYpOworICAgIHN0YXRpYyBSZWY8SW5iYW5kRGF0YVRleHRUcmFjaz4gY3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlJik7CiAgICAgdmlydHVhbCB+SW5iYW5kRGF0YVRleHRUcmFjaygpOwogCiBwcml2YXRl
OgotICAgIEluYmFuZERhdGFUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRU
cmFja0NsaWVudCosIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiYmKTsKKyAgICBJbmJh
bmREYXRhVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQm
LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CiAKLSAgICB2b2lkIGFkZERhdGFDdWUoSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGlt
ZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpIGZpbmFsOworICAgIHZvaWQgYWRkRGF0YUN1
ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9p
ZCosIHVuc2lnbmVkKSBmaW5hbDsKIAogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQotICAgIHZv
aWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBz
dGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3Jt
UmVwcmVzZW50YXRpb24+LCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKLSAgICB2b2lkIHVwZGF0ZURh
dGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNv
bnN0IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2Vu
dGF0aW9uPikgZmluYWw7Ci0gICAgdm9pZCByZW1vdmVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1By
aXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFz
c1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4pIGZpbmFsOworICAgIHZv
aWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVu
ZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiYmLCBjb25zdCBTdHJpbmcm
KSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwg
Y29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uJikg
ZmluYWw7CisgICAgdm9pZCByZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNv
bnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbiYpIGZp
bmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlbW92ZUN1ZShUZXh0VHJhY2tDdWUmKSBmaW5h
bDsKIAogICAgIEhhc2hNYXA8UmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9u
PiwgUmVmUHRyPERhdGFDdWU+PiBtX2luY29tcGxldGVDdWVNYXA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcAppbmRleCAwOTFh
NWQyYjE4NTI2MGI1OGY2OGUyZmJjZjg5Yjg3NmM3NTY1YzJlLi45ODY3OWIzNjAzOTFmMDU4MDgx
ZmNlOTU5NTgwNzE0MzI2YWNiNGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0luYmFuZEdlbmVyaWNUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEyLTIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjUsMTAyICs2NSw5OSBAQCB2
b2lkIEdlbmVyaWNUZXh0VHJhY2tDdWVNYXA6OnJlbW92ZShUZXh0VHJhY2tDdWUmIGN1ZSkKICAg
ICAgICAgbV9kYXRhVG9DdWVNYXAucmVtb3ZlKGRhdGEpOwogfQogCi1SZWY8SW5iYW5kR2VuZXJp
Y1RleHRUcmFjaz4gSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPElu
YmFuZFRleHRUcmFja1ByaXZhdGU+IHBsYXllclByaXZhdGUpCitpbmxpbmUgSW5iYW5kR2VuZXJp
Y1RleHRUcmFjazo6SW5iYW5kR2VuZXJpY1RleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSYgdHJhY2tQcml2YXRlKQorICAgIDogSW5iYW5kVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwg
dHJhY2tQcml2YXRlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZEdlbmVyaWNU
ZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7CiB9CiAKLUluYmFuZEdl
bmVyaWNUZXh0VHJhY2s6OkluYmFuZEdlbmVyaWNUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQotICAgIDogSW5iYW5kVGV4dFRyYWNrKGNv
bnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKQorUmVmPEluYmFuZEdlbmVyaWNUZXh0VHJhY2s+
IEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYg
dHJhY2tQcml2YXRlKQogeworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFuZEdlbmVyaWNU
ZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpKTsKIH0KIAogSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjazo6fkluYmFuZEdlbmVyaWNUZXh0VHJhY2soKQogewogfQogCi12b2lkIElu
YmFuZEdlbmVyaWNUZXh0VHJhY2s6OnVwZGF0ZUN1ZUZyb21DdWVEYXRhKFRleHRUcmFja0N1ZUdl
bmVyaWMqIGN1ZSwgR2VuZXJpY0N1ZURhdGEqIGN1ZURhdGEpCit2b2lkIEluYmFuZEdlbmVyaWNU
ZXh0VHJhY2s6OnVwZGF0ZUN1ZUZyb21DdWVEYXRhKFRleHRUcmFja0N1ZUdlbmVyaWMmIGN1ZSwg
R2VuZXJpY0N1ZURhdGEmIGN1ZURhdGEpCiB7Ci0gICAgY3VlLT53aWxsQ2hhbmdlKCk7CisgICAg
Y3VlLndpbGxDaGFuZ2UoKTsKIAotICAgIGN1ZS0+c2V0U3RhcnRUaW1lKGN1ZURhdGEtPnN0YXJ0
VGltZSgpKTsKLSAgICBNZWRpYVRpbWUgZW5kVGltZSA9IGN1ZURhdGEtPmVuZFRpbWUoKTsKKyAg
ICBjdWUuc2V0U3RhcnRUaW1lKGN1ZURhdGEuc3RhcnRUaW1lKCkpOworICAgIE1lZGlhVGltZSBl
bmRUaW1lID0gY3VlRGF0YS5lbmRUaW1lKCk7CiAgICAgaWYgKGVuZFRpbWUuaXNQb3NpdGl2ZUlu
ZmluaXRlKCkgJiYgbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIGVuZFRpbWUgPSBtZWRpYUVsZW1l
bnQoKS0+ZHVyYXRpb25NZWRpYVRpbWUoKTsKLSAgICBjdWUtPnNldEVuZFRpbWUoZW5kVGltZSk7
Ci0gICAgY3VlLT5zZXRUZXh0KGN1ZURhdGEtPmNvbnRlbnQoKSk7Ci0gICAgY3VlLT5zZXRJZChj
dWVEYXRhLT5pZCgpKTsKLSAgICBjdWUtPnNldEJhc2VGb250U2l6ZVJlbGF0aXZlVG9WaWRlb0hl
aWdodChjdWVEYXRhLT5iYXNlRm9udFNpemUoKSk7Ci0gICAgY3VlLT5zZXRGb250U2l6ZU11bHRp
cGxpZXIoY3VlRGF0YS0+cmVsYXRpdmVGb250U2l6ZSgpKTsKLSAgICBjdWUtPnNldEZvbnROYW1l
KGN1ZURhdGEtPmZvbnROYW1lKCkpOwotCi0gICAgaWYgKGN1ZURhdGEtPnBvc2l0aW9uKCkgPiAw
KQotICAgICAgICBjdWUtPnNldFBvc2l0aW9uKHN0ZDo6cm91bmQoY3VlRGF0YS0+cG9zaXRpb24o
KSkpOwotICAgIGlmIChjdWVEYXRhLT5saW5lKCkgPiAwKQotICAgICAgICBjdWUtPnNldExpbmUo
c3RkOjpyb3VuZChjdWVEYXRhLT5saW5lKCkpKTsKLSAgICBpZiAoY3VlRGF0YS0+c2l6ZSgpID4g
MCkKLSAgICAgICAgY3VlLT5zZXRTaXplKHN0ZDo6cm91bmQoY3VlRGF0YS0+c2l6ZSgpKSk7Ci0g
ICAgaWYgKGN1ZURhdGEtPmJhY2tncm91bmRDb2xvcigpLmlzVmFsaWQoKSkKLSAgICAgICAgY3Vl
LT5zZXRCYWNrZ3JvdW5kQ29sb3IoY3VlRGF0YS0+YmFja2dyb3VuZENvbG9yKCkucmdiKCkpOwot
ICAgIGlmIChjdWVEYXRhLT5mb3JlZ3JvdW5kQ29sb3IoKS5pc1ZhbGlkKCkpCi0gICAgICAgIGN1
ZS0+c2V0Rm9yZWdyb3VuZENvbG9yKGN1ZURhdGEtPmZvcmVncm91bmRDb2xvcigpLnJnYigpKTsK
LSAgICBpZiAoY3VlRGF0YS0+aGlnaGxpZ2h0Q29sb3IoKS5pc1ZhbGlkKCkpCi0gICAgICAgIGN1
ZS0+c2V0SGlnaGxpZ2h0Q29sb3IoY3VlRGF0YS0+aGlnaGxpZ2h0Q29sb3IoKS5yZ2IoKSk7Ci0K
LSAgICBpZiAoY3VlRGF0YS0+YWxpZ24oKSA9PSBHZW5lcmljQ3VlRGF0YTo6U3RhcnQpCi0gICAg
ICAgIGN1ZS0+c2V0QWxpZ24oQVNDSUlMaXRlcmFsKCJzdGFydCIpKTsKLSAgICBlbHNlIGlmIChj
dWVEYXRhLT5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpNaWRkbGUpCi0gICAgICAgIGN1ZS0+
c2V0QWxpZ24oQVNDSUlMaXRlcmFsKCJtaWRkbGUiKSk7Ci0gICAgZWxzZSBpZiAoY3VlRGF0YS0+
YWxpZ24oKSA9PSBHZW5lcmljQ3VlRGF0YTo6RW5kKQotICAgICAgICBjdWUtPnNldEFsaWduKEFT
Q0lJTGl0ZXJhbCgiZW5kIikpOwotICAgIGN1ZS0+c2V0U25hcFRvTGluZXMoZmFsc2UpOwotCi0g
ICAgY3VlLT5kaWRDaGFuZ2UoKTsKLX0KLQotdm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjph
ZGRHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgUGFzc1Jl
ZlB0cjxHZW5lcmljQ3VlRGF0YT4gcHJwQ3VlRGF0YSkKLXsKLSAgICBBU1NFUlRfVU5VU0VEKHRy
YWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7Ci0KLSAgICBSZWZQdHI8R2Vu
ZXJpY0N1ZURhdGE+IGN1ZURhdGEgPSBwcnBDdWVEYXRhOwotICAgIGlmIChtX2N1ZU1hcC5maW5k
KCpjdWVEYXRhKSkKKyAgICBjdWUuc2V0RW5kVGltZShlbmRUaW1lKTsKKyAgICBjdWUuc2V0VGV4
dChjdWVEYXRhLmNvbnRlbnQoKSk7CisgICAgY3VlLnNldElkKGN1ZURhdGEuaWQoKSk7CisgICAg
Y3VlLnNldEJhc2VGb250U2l6ZVJlbGF0aXZlVG9WaWRlb0hlaWdodChjdWVEYXRhLmJhc2VGb250
U2l6ZSgpKTsKKyAgICBjdWUuc2V0Rm9udFNpemVNdWx0aXBsaWVyKGN1ZURhdGEucmVsYXRpdmVG
b250U2l6ZSgpKTsKKyAgICBjdWUuc2V0Rm9udE5hbWUoY3VlRGF0YS5mb250TmFtZSgpKTsKKwor
ICAgIGlmIChjdWVEYXRhLnBvc2l0aW9uKCkgPiAwKQorICAgICAgICBjdWUuc2V0UG9zaXRpb24o
c3RkOjpyb3VuZChjdWVEYXRhLnBvc2l0aW9uKCkpKTsKKyAgICBpZiAoY3VlRGF0YS5saW5lKCkg
PiAwKQorICAgICAgICBjdWUuc2V0TGluZShzdGQ6OnJvdW5kKGN1ZURhdGEubGluZSgpKSk7Cisg
ICAgaWYgKGN1ZURhdGEuc2l6ZSgpID4gMCkKKyAgICAgICAgY3VlLnNldFNpemUoc3RkOjpyb3Vu
ZChjdWVEYXRhLnNpemUoKSkpOworICAgIGlmIChjdWVEYXRhLmJhY2tncm91bmRDb2xvcigpLmlz
VmFsaWQoKSkKKyAgICAgICAgY3VlLnNldEJhY2tncm91bmRDb2xvcihjdWVEYXRhLmJhY2tncm91
bmRDb2xvcigpLnJnYigpKTsKKyAgICBpZiAoY3VlRGF0YS5mb3JlZ3JvdW5kQ29sb3IoKS5pc1Zh
bGlkKCkpCisgICAgICAgIGN1ZS5zZXRGb3JlZ3JvdW5kQ29sb3IoY3VlRGF0YS5mb3JlZ3JvdW5k
Q29sb3IoKS5yZ2IoKSk7CisgICAgaWYgKGN1ZURhdGEuaGlnaGxpZ2h0Q29sb3IoKS5pc1ZhbGlk
KCkpCisgICAgICAgIGN1ZS5zZXRIaWdobGlnaHRDb2xvcihjdWVEYXRhLmhpZ2hsaWdodENvbG9y
KCkucmdiKCkpOworCisgICAgaWYgKGN1ZURhdGEuYWxpZ24oKSA9PSBHZW5lcmljQ3VlRGF0YTo6
U3RhcnQpCisgICAgICAgIGN1ZS5zZXRBbGlnbihBU0NJSUxpdGVyYWwoInN0YXJ0IikpOworICAg
IGVsc2UgaWYgKGN1ZURhdGEuYWxpZ24oKSA9PSBHZW5lcmljQ3VlRGF0YTo6TWlkZGxlKQorICAg
ICAgICBjdWUuc2V0QWxpZ24oQVNDSUlMaXRlcmFsKCJtaWRkbGUiKSk7CisgICAgZWxzZSBpZiAo
Y3VlRGF0YS5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpFbmQpCisgICAgICAgIGN1ZS5zZXRB
bGlnbihBU0NJSUxpdGVyYWwoImVuZCIpKTsKKyAgICBjdWUuc2V0U25hcFRvTGluZXMoZmFsc2Up
OworCisgICAgY3VlLmRpZENoYW5nZSgpOworfQorCit2b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJh
Y2s6OmFkZEdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmIGN1ZURhdGEpCit7CisgICAgaWYgKG1f
Y3VlTWFwLmZpbmQoY3VlRGF0YSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gY3VlID0g
VGV4dFRyYWNrQ3VlR2VuZXJpYzo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGN1
ZURhdGEtPnN0YXJ0VGltZSgpLCBjdWVEYXRhLT5lbmRUaW1lKCksIGN1ZURhdGEtPmNvbnRlbnQo
KSk7Ci0gICAgdXBkYXRlQ3VlRnJvbUN1ZURhdGEoY3VlLnB0cigpLCBjdWVEYXRhLmdldCgpKTsK
KyAgICBhdXRvIGN1ZSA9IFRleHRUcmFja0N1ZUdlbmVyaWM6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBjdWVEYXRhLnN0YXJ0VGltZSgpLCBjdWVEYXRhLmVuZFRpbWUoKSwgY3Vl
RGF0YS5jb250ZW50KCkpOworICAgIHVwZGF0ZUN1ZUZyb21DdWVEYXRhKGN1ZS5nZXQoKSwgY3Vl
RGF0YSk7CiAgICAgaWYgKGhhc0N1ZShjdWUucHRyKCksIFRleHRUcmFja0N1ZTo6SWdub3JlRHVy
YXRpb24pKSB7Ci0gICAgICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmFk
ZEdlbmVyaWNDdWUgaWdub3JpbmcgYWxyZWFkeSBhZGRlZCBjdWU6IHN0YXJ0PSVzLCBlbmQ9JXMs
IGNvbnRlbnQ9XCIlc1wiXG4iLCB0b1N0cmluZyhjdWVEYXRhLT5zdGFydFRpbWUoKSkudXRmOCgp
LmRhdGEoKSwgdG9TdHJpbmcoY3VlRGF0YS0+ZW5kVGltZSgpKS51dGY4KCkuZGF0YSgpLCBjdWVE
YXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIExPRyhNZWRpYSwgIkluYmFu
ZEdlbmVyaWNUZXh0VHJhY2s6OmFkZEdlbmVyaWNDdWUgaWdub3JpbmcgYWxyZWFkeSBhZGRlZCBj
dWU6IHN0YXJ0PSVzLCBlbmQ9JXMsIGNvbnRlbnQ9XCIlc1wiXG4iLCB0b1N0cmluZyhjdWVEYXRh
LnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWVEYXRhLmVuZFRpbWUoKSku
dXRmOCgpLmRhdGEoKSwgY3VlRGF0YS5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBMT0coTWVkaWEsICJJbmJhbmRHZW5lcmljVGV4dFRyYWNr
OjphZGRHZW5lcmljQ3VlIGFkZGVkIGN1ZTogc3RhcnQ9JS4yZiwgZW5kPSUuMmYsIGNvbnRlbnQ9
XCIlc1wiXG4iLCBjdWVEYXRhLT5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLT5lbmRU
aW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS0+Y29udGVudCgpLnV0ZjgoKS5kYXRhKCkpOworICAg
IExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmFkZEdlbmVyaWNDdWUgYWRkZWQg
Y3VlOiBzdGFydD0lLjJmLCBlbmQ9JS4yZiwgY29udGVudD1cIiVzXCJcbiIsIGN1ZURhdGEuc3Rh
cnRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS5lbmRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0
YS5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICBpZiAoY3VlRGF0YS0+c3RhdHVzKCkg
IT0gR2VuZXJpY0N1ZURhdGE6OkNvbXBsZXRlKQotICAgICAgICBtX2N1ZU1hcC5hZGQoKmN1ZURh
dGEsIGN1ZSk7CisgICAgaWYgKGN1ZURhdGEuc3RhdHVzKCkgIT0gR2VuZXJpY0N1ZURhdGE6OkNv
bXBsZXRlKQorICAgICAgICBtX2N1ZU1hcC5hZGQoY3VlRGF0YSwgY3VlKTsKIAogICAgIGFkZEN1
ZShXVEZNb3ZlKGN1ZSkpOwogfQogCi12b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnVwZGF0
ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKiBjdWVE
YXRhKQordm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVHZW5lcmljQ3VlKEdlbmVy
aWNDdWVEYXRhJiBjdWVEYXRhKQogewotICAgIGF1dG8qIGN1ZSA9IG1fY3VlTWFwLmZpbmQoKmN1
ZURhdGEpOworICAgIGF1dG8qIGN1ZSA9IG1fY3VlTWFwLmZpbmQoY3VlRGF0YSk7CiAgICAgaWYg
KCFjdWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZUN1ZUZyb21DdWVEYXRhKGN1ZSwg
Y3VlRGF0YSk7CisgICAgdXBkYXRlQ3VlRnJvbUN1ZURhdGEoKmN1ZSwgY3VlRGF0YSk7CiAKLSAg
ICBpZiAoY3VlRGF0YS0+c3RhdHVzKCkgPT0gR2VuZXJpY0N1ZURhdGE6OkNvbXBsZXRlKQotICAg
ICAgICBtX2N1ZU1hcC5yZW1vdmUoKmN1ZURhdGEpOworICAgIGlmIChjdWVEYXRhLnN0YXR1cygp
ID09IEdlbmVyaWNDdWVEYXRhOjpDb21wbGV0ZSkKKyAgICAgICAgbV9jdWVNYXAucmVtb3ZlKGN1
ZURhdGEpOwogfQogCi12b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVyaWND
dWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKiBjdWVEYXRhKQordm9p
ZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpyZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRh
JiBjdWVEYXRhKQogewotICAgIGF1dG8qIGN1ZSA9IG1fY3VlTWFwLmZpbmQoKmN1ZURhdGEpOwor
ICAgIGF1dG8qIGN1ZSA9IG1fY3VlTWFwLmZpbmQoY3VlRGF0YSk7CiAgICAgaWYgKGN1ZSkgewot
ICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpyZW1vdmVHZW5lcmlj
Q3VlIHJlbW92aW5nIGN1ZTogc3RhcnQ9JXMsIGVuZD0lcywgY29udGVudD1cIiVzXCJcbiIsICB0
b1N0cmluZyhjdWVEYXRhLT5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoY3Vl
RGF0YS0+ZW5kVGltZSgpKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLT5jb250ZW50KCkudXRmOCgp
LmRhdGEoKSk7CisgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJl
bW92ZUdlbmVyaWNDdWUgcmVtb3ZpbmcgY3VlOiBzdGFydD0lcywgZW5kPSVzLCBjb250ZW50PVwi
JXNcIlxuIiwgIHRvU3RyaW5nKGN1ZURhdGEuc3RhcnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRv
U3RyaW5nKGN1ZURhdGEuZW5kVGltZSgpKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLmNvbnRlbnQo
KS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmVtb3ZlQ3VlKCpjdWUpOwogICAgIH0gZWxzZSB7
Ci0gICAgICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVy
aWNDdWUgVU5BQkxFIHRvIGZpbmQgY3VlOiBzdGFydD0lLjJmLCBlbmQ9JS4yZiwgY29udGVudD1c
IiVzXCJcbiIsIGN1ZURhdGEtPnN0YXJ0VGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEtPmVuZFRp
bWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CisgICAg
ICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVyaWNDdWUg
VU5BQkxFIHRvIGZpbmQgY3VlOiBzdGFydD0lLjJmLCBlbmQ9JS4yZiwgY29udGVudD1cIiVzXCJc
biIsIGN1ZURhdGEuc3RhcnRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS5lbmRUaW1lKCkudG9E
b3VibGUoKSwgY3VlRGF0YS5jb250ZW50KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgfQogfQogCkBA
IC0xNzksMTUgKzE3NiwxMyBAQCBXZWJWVFRQYXJzZXImIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6
OnBhcnNlcigpCiAgICAgcmV0dXJuICptX3dlYlZUVFBhcnNlcjsKIH0KIAotdm9pZCBJbmJhbmRH
ZW5lcmljVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSogdHJhY2tQcml2YXRlLCBjb25zdCBJU09XZWJWVFRDdWUmIGN1ZURhdGEpCit2b2lkIEluYmFu
ZEdlbmVyaWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUm
IGN1ZURhdGEpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0
ZSA9PSBtX3ByaXZhdGUpOwogICAgIHBhcnNlcigpLnBhcnNlQ3VlRGF0YShjdWVEYXRhKTsKIH0K
IAotdm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEZpbGVIZWFkZXIoSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZSogdHJhY2tQcml2YXRlLCBTdHJpbmcmJiBoZWFkZXIpCit2b2lk
IEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRURmlsZUhlYWRlcihTdHJpbmcmJiBo
ZWFkZXIpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9
PSBtX3ByaXZhdGUpOwogICAgIHBhcnNlcigpLnBhcnNlRmlsZUhlYWRlcihXVEZNb3ZlKGhlYWRl
cikpOwogfQogCkBAIC0yMTQsNyArMjA5LDcgQEAgdm9pZCBJbmJhbmRHZW5lcmljVGV4dFRyYWNr
OjpuZXdSZWdpb25zUGFyc2VkKCkKIAogICAgIGZvciAoYXV0byYgcmVnaW9uIDogbmV3UmVnaW9u
cykgewogICAgICAgICByZWdpb24tPnNldFRyYWNrKHRoaXMpOwotICAgICAgICByZWdpb25zKCkt
PmFkZChyZWdpb24pOworICAgICAgICByZWdpb25zKCktPmFkZChyZWdpb24ucmVsZWFzZU5vbk51
bGwoKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L0luYmFuZEdlbmVyaWNUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kR2VuZXJpY1RleHRUcmFjay5oCmluZGV4IDFjMzQ4YjJkYTU1MTAzZWJiZmNhODc4ZDQwYjdm
OTA3ODliZDQ0NjMuLmU1ZmViMjU0YmJlMmY5YTNiZjI2ODg1ZmM4ZjNkMmFiZWRkNzViOTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFj
ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFj
ay5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzMsOSArMzMsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERv
Y3VtZW50OwotY2xhc3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTsKLQogY2xhc3MgR2VuZXJpY1Rl
eHRUcmFja0N1ZU1hcCB7CiBwdWJsaWM6CiAgICAgdm9pZCBhZGQoR2VuZXJpY0N1ZURhdGEmLCBU
ZXh0VHJhY2tDdWVHZW5lcmljJik7CkBAIC01NiwyMyArNTMsMjIgQEAgcHJpdmF0ZToKIAogY2xh
c3MgSW5iYW5kR2VuZXJpY1RleHRUcmFjayBmaW5hbCA6IHB1YmxpYyBJbmJhbmRUZXh0VHJhY2ss
IHByaXZhdGUgV2ViVlRUUGFyc2VyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPElu
YmFuZEdlbmVyaWNUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4
dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CisgICAg
c3RhdGljIFJlZjxJbmJhbmRHZW5lcmljVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIFRleHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKICAg
ICB2aXJ0dWFsIH5JbmJhbmRHZW5lcmljVGV4dFRyYWNrKCk7CiAKIHByaXZhdGU6Ci0gICAgSW5i
YW5kR2VuZXJpY1RleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xp
ZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CisgICAgSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50Jiwg
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogCi0gICAgdm9pZCBhZGRHZW5lcmljQ3VlKEluYmFu
ZFRleHRUcmFja1ByaXZhdGUqLCBQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPikgZmluYWw7Ci0g
ICAgdm9pZCB1cGRhdGVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBHZW5lcmlj
Q3VlRGF0YSopIGZpbmFsOwotICAgIHZvaWQgcmVtb3ZlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqKSBmaW5hbDsKKyAgICB2b2lkIGFkZEdlbmVyaWND
dWUoR2VuZXJpY0N1ZURhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoR2Vu
ZXJpY0N1ZURhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUoR2VuZXJpY0N1
ZURhdGEmKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiByZW1vdmVDdWUoVGV4dFRyYWNr
Q3VlJikgZmluYWw7CiAKLSAgICBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUdlbmVyaWM+IGNyZWF0
ZUN1ZShQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPik7Ci0gICAgdm9pZCB1cGRhdGVDdWVGcm9t
Q3VlRGF0YShUZXh0VHJhY2tDdWVHZW5lcmljKiwgR2VuZXJpY0N1ZURhdGEqKTsKKyAgICB2b2lk
IHVwZGF0ZUN1ZUZyb21DdWVEYXRhKFRleHRUcmFja0N1ZUdlbmVyaWMmLCBHZW5lcmljQ3VlRGF0
YSYpOwogCiAgICAgV2ViVlRUUGFyc2VyJiBwYXJzZXIoKTsKLSAgICB2b2lkIHBhcnNlV2ViVlRU
Q3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNPV2ViVlRUQ3VlJikgZmlu
YWw7Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSosIFN0cmluZyYmKSBmaW5hbDsKKyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJ
U09XZWJWVFRDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihTdHJp
bmcmJikgZmluYWw7CiAKICAgICB2b2lkIG5ld0N1ZXNQYXJzZWQoKSBmaW5hbDsKICAgICB2b2lk
IG5ld1JlZ2lvbnNQYXJzZWQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
SW5iYW5kVGV4dFRyYWNrLmNwcAppbmRleCBmMmVlZWFlMGZjMDA5NGU0MjhhODdhNjVkMTgzMTdk
M2NmZjQ0MDc5Li5iZDY1ZTU0OGE4NzYyMjkwYTUxMGQzZDdmOTJjMWFhYjE2OTQ5MmYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCw0MyAr
MjQsMzQgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5iYW5kVGV4
dFRyYWNrLmgiCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbmNsdWRlICJJbmJhbmRU
ZXh0VHJhY2suaCIKLQotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIK
ICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5iYW5kRGF0YVRleHRU
cmFjay5oIgogI2luY2x1ZGUgIkluYmFuZEdlbmVyaWNUZXh0VHJhY2suaCIKICNpbmNsdWRlICJJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiSW5iYW5kV2ViVlRUVGV4dFRyYWNr
LmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlRleHRUcmFja0N1ZUxpc3QuaCIK
LSNpbmNsdWRlIDxtYXRoLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrPiBJbmJhbmRUZXh0
VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAotICAgIFRleHRU
cmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHRy
YWNrUHJpdmF0ZSkKK1JlZjxJbmJhbmRUZXh0VHJhY2s+IEluYmFuZFRleHRUcmFjazo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50
LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiB7Ci0gICAgc3dpdGNoICh0
cmFja1ByaXZhdGUtPmN1ZUZvcm1hdCgpKSB7CisgICAgc3dpdGNoICh0cmFja1ByaXZhdGUuY3Vl
Rm9ybWF0KCkpIHsKICAgICBjYXNlIEluYmFuZFRleHRUcmFja1ByaXZhdGU6OkRhdGE6CiAgICAg
ICAgIHJldHVybiBJbmJhbmREYXRhVGV4dFRyYWNrOjpjcmVhdGUoY29udGV4dCwgY2xpZW50LCB0
cmFja1ByaXZhdGUpOwogICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6R2VuZXJpYzoK
ICAgICAgICAgcmV0dXJuIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OmNyZWF0ZShjb250ZXh0LCBj
bGllbnQsIHRyYWNrUHJpdmF0ZSk7CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpX
ZWJWVFQ6CiAgICAgICAgIHJldHVybiBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmNyZWF0ZShjb250
ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSk7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiAwOwogICAgIH0KKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICByZXR1cm4gSW5iYW5kRGF0YVRleHRUcmFjazo6Y3JlYXRlKGNvbnRl
eHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKTsKIH0KIAotSW5iYW5kVGV4dFRyYWNrOjpJbmJhbmRU
ZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50
KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRl
KQotICAgIDogVGV4dFRyYWNrKGNvbnRleHQsIGNsaWVudCwgZW1wdHlBdG9tLCB0cmFja1ByaXZh
dGUtPmlkKCksIHRyYWNrUHJpdmF0ZS0+bGFiZWwoKSwgdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgp
LCBJbkJhbmQpCitJbmJhbmRUZXh0VHJhY2s6OkluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNsaWVudCwgSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQorICAgIDogVGV4dFRyYWNrKCZjb250ZXh0LCAmY2xp
ZW50LCBlbXB0eUF0b20sIHRyYWNrUHJpdmF0ZS5pZCgpLCB0cmFja1ByaXZhdGUubGFiZWwoKSwg
dHJhY2tQcml2YXRlLmxhbmd1YWdlKCksIEluQmFuZCkKICAgICAsIG1fcHJpdmF0ZSh0cmFja1By
aXZhdGUpCiB7CiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CkBAIC03MiwxMiArNjMs
OSBAQCBJbmJhbmRUZXh0VHJhY2s6On5JbmJhbmRUZXh0VHJhY2soKQogICAgIG1fcHJpdmF0ZS0+
c2V0Q2xpZW50KG51bGxwdHIpOwogfQogCi12b2lkIEluYmFuZFRleHRUcmFjazo6c2V0UHJpdmF0
ZShQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKK3ZvaWQg
SW5iYW5kVGV4dFRyYWNrOjpzZXRQcml2YXRlKEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNr
UHJpdmF0ZSkKIHsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKLSAgICBBU1NFUlQodHJhY2tQcml2
YXRlKTsKLQotICAgIGlmIChtX3ByaXZhdGUgPT0gdHJhY2tQcml2YXRlKQorICAgIGlmIChtX3By
aXZhdGUucHRyKCkgPT0gJnRyYWNrUHJpdmF0ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9w
cml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CkBAIC0xMTUsODAgKzEwMyw2MCBAQCB2b2lkIElu
YmFuZFRleHRUcmFjazo6c2V0TW9kZUludGVybmFsKE1vZGUgbW9kZSkKIAogYm9vbCBJbmJhbmRU
ZXh0VHJhY2s6OmlzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRl
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICByZXR1cm4gbV9wcml2YXRlLT5pc0Nsb3Nl
ZENhcHRpb25zKCk7CiB9CiAKIGJvb2wgSW5iYW5kVGV4dFRyYWNrOjppc1NESCgpIGNvbnN0CiB7
Ci0gICAgaWYgKCFtX3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKICAgICBy
ZXR1cm4gbV9wcml2YXRlLT5pc1NESCgpOwogfQogCiBib29sIEluYmFuZFRleHRUcmFjazo6Y29u
dGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPmNvbnRh
aW5zT25seUZvcmNlZFN1YnRpdGxlcygpOwogfQogCiBib29sIEluYmFuZFRleHRUcmFjazo6aXNN
YWluUHJvZ3JhbUNvbnRlbnQoKSBjb25zdAogewotICAgIGlmICghbV9wcml2YXRlKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aXNNYWluUHJvZ3Jh
bUNvbnRlbnQoKTsKIH0KIAogYm9vbCBJbmJhbmRUZXh0VHJhY2s6OmlzRWFzeVRvUmVhZCgpIGNv
bnN0CiB7Ci0gICAgaWYgKCFtX3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAK
ICAgICByZXR1cm4gbV9wcml2YXRlLT5pc0Vhc3lUb1JlYWQoKTsKIH0KICAgICAKIHNpemVfdCBJ
bmJhbmRUZXh0VHJhY2s6OmluYmFuZFRyYWNrSW5kZXgoKQogewotICAgIEFTU0VSVChtX3ByaXZh
dGUpOwogICAgIHJldHVybiBtX3ByaXZhdGUtPnRyYWNrSW5kZXgoKTsKIH0KIAogQXRvbWljU3Ry
aW5nIEluYmFuZFRleHRUcmFjazo6aW5CYW5kTWV0YWRhdGFUcmFja0Rpc3BhdGNoVHlwZSgpIGNv
bnN0CiB7Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aW5C
YW5kTWV0YWRhdGFUcmFja0Rpc3BhdGNoVHlwZSgpOwogfQogCi12b2lkIEluYmFuZFRleHRUcmFj
azo6aWRDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiBpZCkKK3ZvaWQgSW5iYW5kVGV4dFRyYWNrOjppZENoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJiBpZCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2
YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0SWQoaWQpOwogfQogCi12b2lkIEluYmFuZFRleHRU
cmFjazo6bGFiZWxDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSwgY29uc3Qg
QXRvbWljU3RyaW5nJiBsYWJlbCkKK3ZvaWQgSW5iYW5kVGV4dFRyYWNrOjpsYWJlbENoYW5nZWQo
Y29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJp
dmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0TGFiZWwobGFiZWwpOwog
fQogCi12b2lkIEluYmFuZFRleHRUcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJh
c2UqIHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKK3ZvaWQgSW5i
YW5kVGV4dFRyYWNrOjpsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFn
ZSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1f
cHJpdmF0ZSk7CiAgICAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2UpOwogfQogCi12b2lkIEluYmFuZFRl
eHRUcmFjazo6d2lsbFJlbW92ZShUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUpCit2b2lk
IEluYmFuZFRleHRUcmFjazo6d2lsbFJlbW92ZSgpCiB7Ci0gICAgaWYgKCFtZWRpYUVsZW1lbnQo
KSkKKyAgICBhdXRvKiBlbGVtZW50ID0gbWVkaWFFbGVtZW50KCk7CisgICAgaWYgKCFlbGVtZW50
KQogICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNr
UHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwotICAgIG1lZGlhRWxlbWVudCgpLT5yZW1vdmVUZXh0VHJh
Y2soKnRoaXMpOworICAgIGVsZW1lbnQtPnJlbW92ZVRleHRUcmFjaygqdGhpcyk7CiB9CiAKIHZv
aWQgSW5iYW5kVGV4dFRyYWNrOjp1cGRhdGVLaW5kRnJvbVByaXZhdGUoKQpAQCAtMTk2LDM0ICsx
NjQsMzAgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2s6OnVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpCiAg
ICAgc3dpdGNoIChtX3ByaXZhdGUtPmtpbmQoKSkgewogICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZTo6U3VidGl0bGVzOgogICAgICAgICBzZXRLaW5kKEtpbmQ6OlN1YnRpdGxlcyk7Ci0g
ICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlOjpDYXB0aW9uczoKICAgICAgICAgc2V0S2luZChLaW5kOjpDYXB0aW9ucyk7Ci0gICAg
ICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlOjpEZXNjcmlwdGlvbnM6CiAgICAgICAgIHNldEtpbmQoS2luZDo6RGVzY3JpcHRpb25zKTsK
LSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluYmFuZFRleHRUcmFj
a1ByaXZhdGU6OkNoYXB0ZXJzOgogICAgICAgICBzZXRLaW5kKEtpbmQ6OkNoYXB0ZXJzKTsKLSAg
ICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluYmFuZFRleHRUcmFja1By
aXZhdGU6Ok1ldGFkYXRhOgogICAgICAgICBzZXRLaW5kKEtpbmQ6Ok1ldGFkYXRhKTsKLSAgICAg
ICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluYmFuZFRleHRUcmFja1ByaXZh
dGU6OkZvcmNlZDoKICAgICAgICAgc2V0S2luZChLaW5kOjpGb3JjZWQpOwotICAgICAgICBicmVh
azsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6Tm9u
ZToKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiBNZWRpYVRpbWUg
SW5iYW5kVGV4dFRyYWNrOjpzdGFydFRpbWVWYXJpYW5jZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFt
X3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7Ci0gICAgCiAg
ICAgcmV0dXJuIG1fcHJpdmF0ZS0+c3RhcnRUaW1lVmFyaWFuY2UoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmgKaW5kZXggOWNkMDI3YzM2Yzg1YjBh
YTUxNTY3ZWU2OTZlMTI2NmQwODQ1ZjMzZS4uNmNmMjY4N2JiODZlOTU0OWJjMWYxNjU1NTNkOTI1
MGI4YzU3ZWUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRU
ZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFj
ay5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI5LDE1ICsyOSwxMiBAQAogCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgIlRleHRUcmFjay5oIgotI2luY2x1ZGUgIlRleHRUcmFj
a0N1ZUdlbmVyaWMuaCIKLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1R5
cGVDYXN0cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEluYmFuZFRleHRUcmFj
ayA6IHB1YmxpYyBUZXh0VHJhY2ssIHB1YmxpYyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50
IHsKK2NsYXNzIEluYmFuZFRleHRUcmFjayA6IHB1YmxpYyBUZXh0VHJhY2ssIHByaXZhdGUgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRU
cmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIHN0
YXRpYyBSZWY8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IFRleHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKICAgICB2aXJ0dWFs
IH5JbmJhbmRUZXh0VHJhY2soKTsKIAogICAgIGJvb2wgaXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0
IG92ZXJyaWRlOwpAQCAtNTAsMzggKzQ3LDM4IEBAIHB1YmxpYzoKIAogICAgIEF0b21pY1N0cmlu
ZyBpbkJhbmRNZXRhZGF0YVRyYWNrRGlzcGF0Y2hUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAg
ICB2b2lkIHNldFByaXZhdGUoUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7Cisg
ICAgdm9pZCBzZXRQcml2YXRlKEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKIAogcHJvdGVjdGVk
OgotICAgIEluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNr
Q2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPik7CisgICAgSW5iYW5k
VGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0VHJhY2tDbGllbnQmLCBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlJik7CiAKICAgICB2b2lkIHNldE1vZGVJbnRlcm5hbChNb2RlKTsK
ICAgICB2b2lkIHVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSgpOwogCi0gICAgUmVmUHRyPEluYmFuZFRl
eHRUcmFja1ByaXZhdGU+IG1fcHJpdmF0ZTsKKyAgICBSZWY8SW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZT4gbV9wcml2YXRlOwogCiBwcml2YXRlOgogICAgIGJvb2wgaXNJbmJhbmQoKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdm9pZCBpZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSos
IGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgbGFiZWxDaGFuZ2VkKFRy
YWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lk
IGxhbmd1YWdlQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2UqKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGlkQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGxhYmVsQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGxhbmd1YWdlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
b2lkIHdpbGxSZW1vdmUoKSBvdmVycmlkZTsKIAotICAgIHZvaWQgYWRkRGF0YUN1ZShJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgY29u
c3Qgdm9pZCosIHVuc2lnbmVkKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Cisg
ICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNv
bnN0IHZvaWQqLCB1bnNpZ25lZCkgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQog
CiAjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUpCi0gICAgdm9pZCBhZGREYXRhQ3VlKEluYmFuZFRl
eHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiwgY29uc3QgU3RyaW5nJikg
b3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZvaWQgdXBkYXRlRGF0YUN1
ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFU
aW1lJiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4pIG92ZXJy
aWRlICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdm9pZCByZW1vdmVEYXRhQ3VlKElu
YmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUm
LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPikgb3ZlcnJpZGUg
IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIGFkZERhdGFDdWUoY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2Vu
dGF0aW9uPiYmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9CisgICAgdm9pZCB1cGRhdGVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlh
VGltZSYsIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uJikgb3ZlcnJpZGUgIHsgQVNT
RVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIHJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFU
aW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24m
KSBvdmVycmlkZSAgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogI2VuZGlmCiAKLSAgICB2b2lk
IGFkZEdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFBhc3NSZWZQdHI8R2VuZXJp
Y0N1ZURhdGE+KSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdm9pZCB1
cGRhdGVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBHZW5lcmljQ3VlRGF0YSop
IG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2b2lkIHJlbW92ZUdlbmVy
aWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgb3ZlcnJpZGUg
eyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgYWRkR2VuZXJpY0N1ZShHZW5lcmlj
Q3VlRGF0YSYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIHVw
ZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9CisgICAgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgb3Zl
cnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCi0gICAgdm9pZCBwYXJzZVdlYlZUVEZp
bGVIZWFkZXIoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFN0cmluZyYmKSBvdmVycmlkZSB7IEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCkgb3ZlcnJpZGUgeyBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRl
eHRUcmFja1ByaXZhdGUqLCBjb25zdCBJU09XZWJWVFRDdWUmKSBvdmVycmlkZSB7IEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYp
IG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIHBhcnNlV2ViVlRU
Q3VlRGF0YShjb25zdCBjaGFyKiwgdW5zaWduZWQpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KKyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUm
KSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICBNZWRpYVRpbWUgc3Rh
cnRUaW1lVmFyaWFuY2UoKSBjb25zdCBvdmVycmlkZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAKaW5kZXggZTU0MGU0OTQx
YWVjYTg2YzBmZmVhNzUzNGI3YWEyMjZiMTJjYzJhNi4uZDBmYWU0ZTliODU2YTA0MTJiMzI2ODdj
NzcyZWUzNmZkZjE5NDRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9J
bmJhbmRXZWJWVFRUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
SW5iYW5kV2ViVlRUVGV4dFRyYWNrLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIsIDIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMjcgKzI0LDI2IEBACiAgKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkluYmFuZFdlYlZUVFRleHRUcmFjay5oIgog
CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiSW5iYW5kV2ViVlRUVGV4dFRy
YWNrLmgiCi0KICNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiVlRUQ3Vl
LmgiCiAjaW5jbHVkZSAiVlRUUmVnaW9uTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8SW5iYW5kVGV4dFRyYWNrPiBJbmJh
bmRXZWJWVFRUZXh0VHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2
YXRlPiBwbGF5ZXJQcml2YXRlKQoraW5saW5lIEluYmFuZFdlYlZUVFRleHRUcmFjazo6SW5iYW5k
V2ViVlRUVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFj
a0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisg
ICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kV2ViVlRUVGV4dFRyYWNrKGNvbnRleHQsIGNs
aWVudCwgcGxheWVyUHJpdmF0ZSkpOwogfQogCi1JbmJhbmRXZWJWVFRUZXh0VHJhY2s6OkluYmFu
ZFdlYlZUVFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJh
Y2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0cmFj
a1ByaXZhdGUpCi0gICAgOiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFja1By
aXZhdGUpCitSZWY8SW5iYW5kVGV4dFRyYWNrPiBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OmNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQmIGNsaWVu
dCwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogeworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEluYmFuZFdlYlZUVFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNr
UHJpdmF0ZSkpOwogfQogCiBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6On5JbmJhbmRXZWJWVFRUZXh0
VHJhY2soKQpAQCAtNTgsMTUgKzU3LDEzIEBAIFdlYlZUVFBhcnNlciYgSW5iYW5kV2ViVlRUVGV4
dFRyYWNrOjpwYXJzZXIoKQogICAgIHJldHVybiAqbV93ZWJWVFRQYXJzZXI7CiB9CiAKLXZvaWQg
SW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZSogdHJhY2tQcml2YXRlLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgp
Cit2b2lkIEluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IGNo
YXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJp
dmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgcGFyc2VyKCkucGFyc2VCeXRl
cyhkYXRhLCBsZW5ndGgpOwogfQogCi12b2lkIEluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VX
ZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqIHRyYWNrUHJpdmF0ZSwgY29uc3Qg
SVNPV2ViVlRUQ3VlJiBjdWVEYXRhKQordm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBhcnNl
V2ViVlRUQ3VlRGF0YShjb25zdCBJU09XZWJWVFRDdWUmIGN1ZURhdGEpCiB7Ci0gICAgQVNTRVJU
X1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHBh
cnNlcigpLnBhcnNlQ3VlRGF0YShjdWVEYXRhKTsKIH0KIApAQCAtNzQsMTAgKzcxLDggQEAgdm9p
ZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6Om5ld0N1ZXNQYXJzZWQoKQogewogICAgIFZlY3RvcjxS
ZWZQdHI8V2ViVlRUQ3VlRGF0YT4+IGN1ZXM7CiAgICAgcGFyc2VyKCkuZ2V0TmV3Q3VlcyhjdWVz
KTsKLQogICAgIGZvciAoYXV0byYgY3VlRGF0YSA6IGN1ZXMpIHsKICAgICAgICAgYXV0byB2dHRD
dWUgPSBWVFRDdWU6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqY3VlRGF0YSk7
Ci0KICAgICAgICAgaWYgKGhhc0N1ZSh2dHRDdWUucHRyKCksIFRleHRUcmFja0N1ZTo6SWdub3Jl
RHVyYXRpb24pKSB7CiAgICAgICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRXZWJWVFRUZXh0VHJh
Y2s6Om5ld0N1ZXNQYXJzZWQgaWdub3JpbmcgYWxyZWFkeSBhZGRlZCBjdWU6IHN0YXJ0PSUuMmYs
IGVuZD0lLjJmLCBjb250ZW50PVwiJXNcIlxuIiwgdnR0Q3VlLT5zdGFydFRpbWUoKSwgdnR0Q3Vl
LT5lbmRUaW1lKCksIHZ0dEN1ZS0+dGV4dCgpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtOTAsMTMgKzg1LDEyIEBAIHZvaWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpu
ZXdSZWdpb25zUGFyc2VkKCkKIHsKICAgICBWZWN0b3I8UmVmUHRyPFZUVFJlZ2lvbj4+IG5ld1Jl
Z2lvbnM7CiAgICAgcGFyc2VyKCkuZ2V0TmV3UmVnaW9ucyhuZXdSZWdpb25zKTsKLQogICAgIGZv
ciAoYXV0byYgcmVnaW9uIDogbmV3UmVnaW9ucykgewogICAgICAgICByZWdpb24tPnNldFRyYWNr
KHRoaXMpOwotICAgICAgICByZWdpb25zKCktPmFkZChyZWdpb24pOworICAgICAgICByZWdpb25z
KCktPmFkZChyZWdpb24ucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogfQotICAgIAorCiB2b2lk
IEluYmFuZFdlYlZUVFRleHRUcmFjazo6ZmlsZUZhaWxlZFRvUGFyc2UoKQogewogICAgIExPRyhN
ZWRpYSwgIkVycm9yIHBhcnNpbmcgV2ViVlRUIHN0cmVhbS4iKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oCmluZGV4IDhjYzc3YTljZWRh
M2MzN2JiMWY2ZTFkNWE1OTNkMjYzYzNkMjQ5ZWYuLjIxZDkxMzQ2OTc1YTlhNmU3OTc5YjhhYzAz
OWY0YTYzYzNlODE0YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kV2ViVlRUVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJh
bmRXZWJWVFRUZXh0VHJhY2suaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCwyNSArMzAsMjQgQEAKICNpbmNsdWRlICJJbmJh
bmRUZXh0VHJhY2suaCIKICNpbmNsdWRlICJXZWJWVFRQYXJzZXIuaCIKICNpbmNsdWRlIDxtZW1v
cnk+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEluYmFuZFdlYlZUVFRleHRUcmFjayBmaW5hbCA6IHB1YmxpYyBJbmJhbmRUZXh0VHJhY2ss
IHByaXZhdGUgV2ViVlRUUGFyc2VyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPElu
YmFuZFRleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tD
bGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+KTsKKyAgICBzdGF0aWMg
UmVmPEluYmFuZFRleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUZXh0
VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CiAgICAgdmlydHVhbCB+SW5i
YW5kV2ViVlRUVGV4dFRyYWNrKCk7CiAKIHByaXZhdGU6Ci0gICAgSW5iYW5kV2ViVlRUVGV4dFRy
YWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRy
PEluYmFuZFRleHRUcmFja1ByaXZhdGU+KTsKKyAgICBJbmJhbmRXZWJWVFRUZXh0VHJhY2soU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIFRleHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1By
aXZhdGUmKTsKIAogICAgIFdlYlZUVFBhcnNlciYgcGFyc2VyKCk7Ci0gICAgdm9pZCBwYXJzZVdl
YlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IGNoYXIqIGRhdGEsIHVu
c2lnbmVkIGxlbmd0aCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IElTT1dlYlZUVEN1ZSYpIG92ZXJyaWRlOworICAg
IHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0
aCkgZmluYWw7CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3Vl
JikgZmluYWw7CiAKLSAgICB2b2lkIG5ld0N1ZXNQYXJzZWQoKSBvdmVycmlkZTsKLSAgICB2b2lk
IG5ld1JlZ2lvbnNQYXJzZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIGZpbGVGYWlsZWRUb1BhcnNl
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBuZXdDdWVzUGFyc2VkKCkgZmluYWw7CisgICAgdm9pZCBu
ZXdSZWdpb25zUGFyc2VkKCkgZmluYWw7CisgICAgdm9pZCBmaWxlRmFpbGVkVG9QYXJzZSgpIGZp
bmFsOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlZUVFBhcnNlcj4gbV93ZWJWVFRQYXJzZXI7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRU
cmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmNw
cAppbmRleCAyMTBmNmE5ZGY1YWM3NzE3NWE5ODEyYWMwNTEwNDIyMzJhMzQwZjMzLi41NTI4ZGUx
N2IyOWY0YmUwYzk2ODM4NDM4MjkzZTczNjg2ZTg1Y2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMTQgKzI1
LDExIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvYWRhYmxlVGV4
dFRyYWNrLmgiCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbmNsdWRlICJMb2FkYWJs
ZVRleHRUcmFjay5oIgotCi0jaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJIVE1MVHJhY2tF
bGVtZW50LmgiCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
IlRleHRUcmFja0N1ZUxpc3QuaCIKICNpbmNsdWRlICJWVFRSZWdpb25MaXN0LmgiCiAKQEAgLTk2
LDExICs5NCwxMSBAQCB2b2lkIExvYWRhYmxlVGV4dFRyYWNrOjpuZXdDdWVzQXZhaWxhYmxlKFRl
eHRUcmFja0xvYWRlciogbG9hZGVyKQogCiAgICAgZm9yIChhdXRvJiBuZXdDdWUgOiBuZXdDdWVz
KSB7CiAgICAgICAgIG5ld0N1ZS0+c2V0VHJhY2sodGhpcyk7Ci0gICAgICAgIG1fY3Vlcy0+YWRk
KG5ld0N1ZSk7CisgICAgICAgIG1fY3Vlcy0+YWRkKG5ld0N1ZS5yZWxlYXNlTm9uTnVsbCgpKTsK
ICAgICB9CiAKICAgICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT50ZXh0VHJhY2tB
ZGRDdWVzKHRoaXMsIG1fY3Vlcy5nZXQoKSk7CisgICAgICAgIGNsaWVudCgpLT50ZXh0VHJhY2tB
ZGRDdWVzKCp0aGlzLCAqbV9jdWVzKTsKIH0KIAogdm9pZCBMb2FkYWJsZVRleHRUcmFjazo6Y3Vl
TG9hZGluZ0NvbXBsZXRlZChUZXh0VHJhY2tMb2FkZXIqIGxvYWRlciwgYm9vbCBsb2FkaW5nRmFp
bGVkKQpAQCAtMTIyLDcgKzEyMCw3IEBAIHZvaWQgTG9hZGFibGVUZXh0VHJhY2s6Om5ld1JlZ2lv
bnNBdmFpbGFibGUoVGV4dFRyYWNrTG9hZGVyKiBsb2FkZXIpCiAKICAgICBmb3IgKGF1dG8mIG5l
d1JlZ2lvbiA6IG5ld1JlZ2lvbnMpIHsKICAgICAgICAgbmV3UmVnaW9uLT5zZXRUcmFjayh0aGlz
KTsKLSAgICAgICAgcmVnaW9ucygpLT5hZGQobmV3UmVnaW9uKTsKKyAgICAgICAgcmVnaW9ucygp
LT5hZGQobmV3UmVnaW9uLnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5oCmluZGV4IDAxMDIwYjBiNGNi
ZmYxMzkxNGJlNzJhMDkxNjI5MjZiNmI4OGQzNjEuLmJhOWM3NmZiMmMzNThkYWI4OWVmNTgxNjBl
ZDEwMWQzNjc1Nzc1OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9h
ZGFibGVUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxl
VGV4dFRyYWNrLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI5LDEyICszMCwxMCBAQAogCiAjaW5jbHVkZSAiVGV4dFRyYWNrLmgiCiAj
aW5jbHVkZSAiVGV4dFRyYWNrTG9hZGVyLmgiCi0jaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxUcmFja0VsZW1lbnQ7Ci1jbGFzcyBM
b2FkYWJsZVRleHRUcmFjazsKIAogY2xhc3MgTG9hZGFibGVUZXh0VHJhY2sgZmluYWwgOiBwdWJs
aWMgVGV4dFRyYWNrLCBwcml2YXRlIFRleHRUcmFja0xvYWRlckNsaWVudCB7CiBwdWJsaWM6CkBA
IC00OSw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBIVE1MVHJhY2tFbGVtZW50KiB0cmFja0VsZW1l
bnQoKSBjb25zdCB7IHJldHVybiBtX3RyYWNrRWxlbWVudDsgfQogICAgIHZvaWQgY2xlYXJFbGVt
ZW50KCkgeyBtX3RyYWNrRWxlbWVudCA9IG51bGxwdHI7IH0KIAotICAgIHZvaWQgc2V0SXNEZWZh
dWx0KGJvb2wgaXNEZWZhdWx0KSBmaW5hbCAgeyBtX2lzRGVmYXVsdCA9IGlzRGVmYXVsdDsgfQor
ICAgIHZvaWQgc2V0SXNEZWZhdWx0KGJvb2wgaXNEZWZhdWx0KSBmaW5hbCB7IG1faXNEZWZhdWx0
ID0gaXNEZWZhdWx0OyB9CiAKIHByaXZhdGU6CiAgICAgTG9hZGFibGVUZXh0VHJhY2soSFRNTFRy
YWNrRWxlbWVudCYsIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29u
c3QgU3RyaW5nJiBsYW5ndWFnZSk7CkBAIC02OCw3ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgVGlt
ZXIgbV9sb2FkVGltZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFRleHRUcmFja0xvYWRlcj4gbV9s
b2FkZXI7CiAgICAgVVJMIG1fdXJsOwotICAgIGJvb2wgbV9pc0RlZmF1bHQ7CisgICAgYm9vbCBt
X2lzRGVmYXVsdCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5kZXggOTZiY2Q3ZWQzNTBkMjhlMDQy
ZWFlNjhjZWQ1MjAxYTcxZjNjNWYwOS4uMWYyM2M0NDMyZjNjMTU3ZDI5ZjVlNTU3ZDQ1Njg5ODdh
YjI2ZmMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcApAQCAtMSw2
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTMgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKQEAgLTMwLDExICszMCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJUZXh0VHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotI2luY2x1ZGUg
IlRleHRUcmFjay5oIgotCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25D
b2RlLmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgpAQCAtNDYsOCArNDUsNiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBjb25zdCBpbnQgaW52YWxpZFRyYWNrSW5k
ZXggPSAtMTsKLQogY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2s6OnN1YnRpdGxlc0tleXdv
cmQoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IHN1
YnRpdGxlcygic3VidGl0bGVzIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CkBAIC0xMDEsOCArOTgsNiBAQCBUZXh0VHJhY2s6OlRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgYwogICAgICwgbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAg
LCBtX3RyYWNrVHlwZSh0eXBlKQotICAgICwgbV90cmFja0luZGV4KGludmFsaWRUcmFja0luZGV4
KQotICAgICwgbV9yZW5kZXJlZFRyYWNrSW5kZXgoaW52YWxpZFRyYWNrSW5kZXgpCiB7CiAgICAg
aWYgKGtpbmQgPT0gY2FwdGlvbnNLZXl3b3JkKCkpCiAgICAgICAgIG1fa2luZCA9IEtpbmQ6OkNh
cHRpb25zOwpAQCAtMTIwLDggKzExNSw3IEBAIFRleHRUcmFjazo6flRleHRUcmFjaygpCiB7CiAg
ICAgaWYgKG1fY3VlcykgewogICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2Ns
aWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0aGlzLCBtX2N1ZXMuZ2V0KCkpOwotCisgICAgICAg
ICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlcygqdGhpcywgKm1fY3Vlcyk7CiAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jdWVzLT5sZW5ndGgoKTsgKytpKQogICAgICAg
ICAgICAgbV9jdWVzLT5pdGVtKGkpLT5zZXRUcmFjayhudWxscHRyKTsKICAgICB9CkBAIC0xODks
NyArMTgzLDcgQEAgdm9pZCBUZXh0VHJhY2s6OnNldEtpbmQoS2luZCBuZXdLaW5kKQogICAgIC8v
IDMuIElmIHRoZSBzb3VyY2VCdWZmZXIgYXR0cmlidXRlIG9uIHRoaXMgdHJhY2sgaXMgbm90IG51
bGwsIHRoZW4gcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUKICAgICAvLyBldmVudCBuYW1l
ZCBjaGFuZ2UgYXQgc291cmNlQnVmZmVyLnRleHRUcmFja3MuCiAgICAgaWYgKG1fc291cmNlQnVm
ZmVyKQotICAgICAgICBtX3NvdXJjZUJ1ZmZlci0+dGV4dFRyYWNrcygpLT5zY2hlZHVsZUNoYW5n
ZUV2ZW50KCk7CisgICAgICAgIG1fc291cmNlQnVmZmVyLT50ZXh0VHJhY2tzKCkuc2NoZWR1bGVD
aGFuZ2VFdmVudCgpOwogCiAgICAgLy8gNC4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUg
ZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHRoZSBUZXh0VHJhY2tMaXN0IG9iamVjdCByZWZlcmVuY2Vk
IGJ5CiAgICAgLy8gdGhlIHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVt
ZW50LgpAQCAtMTk4LDcgKzE5Miw3IEBAIHZvaWQgVGV4dFRyYWNrOjpzZXRLaW5kKEtpbmQgbmV3
S2luZCkKICNlbmRpZgogCiAgICAgaWYgKG1fY2xpZW50ICYmIG9sZEtpbmQgIT0gbV9raW5kKQot
ICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrS2luZENoYW5nZWQodGhpcyk7CisgICAgICAgIG1f
Y2xpZW50LT50ZXh0VHJhY2tLaW5kQ2hhbmdlZCgqdGhpcyk7CiB9CiAKIHZvaWQgVGV4dFRyYWNr
OjpzZXRLaW5kS2V5d29yZElnbm9yaW5nQVNDSUlDYXNlKFN0cmluZ1ZpZXcga2V5d29yZCkKQEAg
LTIzNiw3ICsyMzAsNyBAQCB2b2lkIFRleHRUcmFjazo6c2V0TW9kZShNb2RlIG1vZGUpCiAgICAg
Ly8gSWYgbW9kZSBjaGFuZ2VzIHRvIGRpc2FibGVkLCByZW1vdmUgdGhpcyB0cmFjaydzIGN1ZXMg
ZnJvbSB0aGUgY2xpZW50CiAgICAgLy8gYmVjYXVzZSB0aGV5IHdpbGwgbm8gbG9uZ2VyIGJlIGFj
Y2Vzc2libGUgZnJvbSB0aGUgY3VlcygpIGZ1bmN0aW9uLgogICAgIGlmIChtb2RlID09IE1vZGU6
OkRpc2FibGVkICYmIG1fY2xpZW50ICYmIG1fY3VlcykKLSAgICAgICAgbV9jbGllbnQtPnRleHRU
cmFja1JlbW92ZUN1ZXModGhpcywgbV9jdWVzLmdldCgpKTsKKyAgICAgICAgbV9jbGllbnQtPnRl
eHRUcmFja1JlbW92ZUN1ZXMoKnRoaXMsICptX2N1ZXMpOwogCiAgICAgaWYgKG1vZGUgIT0gTW9k
ZTo6U2hvd2luZyAmJiBtX2N1ZXMpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X2N1ZXMtPmxlbmd0aCgpOyArK2kpIHsKQEAgLTI0OSw3ICsyNDMsNyBAQCB2b2lkIFRleHRUcmFj
azo6c2V0TW9kZShNb2RlIG1vZGUpCiAgICAgbV9tb2RlID0gbW9kZTsKIAogICAgIGlmIChtX2Ns
aWVudCkKLSAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja01vZGVDaGFuZ2VkKHRoaXMpOworICAg
ICAgICBtX2NsaWVudC0+dGV4dFRyYWNrTW9kZUNoYW5nZWQoKnRoaXMpOwogfQogCiBUZXh0VHJh
Y2tDdWVMaXN0KiBUZXh0VHJhY2s6OmN1ZXMoKQpAQCAtMjcwLDcgKzI2NCw3IEBAIHZvaWQgVGV4
dFRyYWNrOjpyZW1vdmVBbGxDdWVzKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fY2xp
ZW50KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0aGlzLCBtX2N1ZXMu
Z2V0KCkpOworICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlcygqdGhpcywgKm1f
Y3Vlcyk7CiAgICAgCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2N1ZXMtPmxlbmd0aCgp
OyArK2kpCiAgICAgICAgIG1fY3Vlcy0+aXRlbShpKS0+c2V0VHJhY2sobnVsbHB0cik7CkBAIC0y
ODgsNyArMjgyLDcgQEAgVGV4dFRyYWNrQ3VlTGlzdCogVGV4dFRyYWNrOjphY3RpdmVDdWVzKCkg
Y29uc3QKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrLyNkb20tdGV4dHRyYWNrLWFjdGl2ZWN1ZXMKICAgICBpZiAoIW1fY3VlcyB8fCBtX21v
ZGUgPT0gTW9kZTo6RGlzYWJsZWQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVy
biBtX2N1ZXMtPmFjdGl2ZUN1ZXMoKTsKKyAgICByZXR1cm4gJm1fY3Vlcy0+YWN0aXZlQ3Vlcygp
OwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBUZXh0VHJhY2s6OmFkZEN1ZShSZWY8VGV4dFRyYWNr
Q3VlPiYmIGN1ZSkKQEAgLTMxOCwxMCArMzEyLDEwIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFRleHRU
cmFjazo6YWRkQ3VlKFJlZjxUZXh0VHJhY2tDdWU+JiYgY3VlKQogCiAgICAgLy8gMi4gQWRkIGN1
ZSB0byB0aGUgbWV0aG9kJ3MgVGV4dFRyYWNrIG9iamVjdCdzIHRleHQgdHJhY2sncyB0ZXh0IHRy
YWNrIGxpc3Qgb2YgY3Vlcy4KICAgICBjdWUtPnNldFRyYWNrKHRoaXMpOwotICAgIGVuc3VyZVRl
eHRUcmFja0N1ZUxpc3QoKS5hZGQoY3VlLnB0cigpKTsKKyAgICBlbnN1cmVUZXh0VHJhY2tDdWVM
aXN0KCkuYWRkKGN1ZS5jb3B5UmVmKCkpOwogICAgIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAg
ICAgbV9jbGllbnQtPnRleHRUcmFja0FkZEN1ZSh0aGlzLCBjdWUpOworICAgICAgICBtX2NsaWVu
dC0+dGV4dFRyYWNrQWRkQ3VlKCp0aGlzLCBjdWUpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAg
LTMzOCwxMiArMzMyLDEyIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFRleHRUcmFjazo6cmVtb3ZlQ3Vl
KFRleHRUcmFja0N1ZSYgY3VlKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTk9UX0ZPVU5E
X0VSUiB9OwogCiAgICAgLy8gMi4gUmVtb3ZlIGN1ZSBmcm9tIHRoZSBtZXRob2QncyBUZXh0VHJh
Y2sgb2JqZWN0J3MgdGV4dCB0cmFjaydzIHRleHQgdHJhY2sgbGlzdCBvZiBjdWVzLgotICAgIGlm
ICghbV9jdWVzIHx8ICFtX2N1ZXMtPnJlbW92ZSgmY3VlKSkKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IElOVkFMSURfU1RBVEVfRVJSIH07Ci0KKyAgICBBU1NFUlQobV9jdWVzKTsKKyAgICBt
X2N1ZXMtPnJlbW92ZShjdWUpOworICAgIGN1ZS5zZXRJc0FjdGl2ZShmYWxzZSk7CiAgICAgY3Vl
LnNldFRyYWNrKG51bGxwdHIpOwogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQt
PnRleHRUcmFja1JlbW92ZUN1ZSh0aGlzLCBjdWUpOworICAgICAgICBtX2NsaWVudC0+dGV4dFRy
YWNrUmVtb3ZlQ3VlKCp0aGlzLCBjdWUpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTM5Miwx
MCArMzg2LDkgQEAgdm9pZCBUZXh0VHJhY2s6OmFkZFJlZ2lvbihSZWZQdHI8VlRUUmVnaW9uPiYm
IHJlZ2lvbikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIE90aGVyd2lzZTogYWRk
IHJlZ2lvbiB0byB0aGUgbWV0aG9kJ3MgVGV4dFRyYWNrIG9iamVjdCdzIHRleHQgdHJhY2sKLSAg
ICAvLyBsaXN0IG9mIHJlZ2lvbnMuCisgICAgLy8gT3RoZXJ3aXNlOiBhZGQgcmVnaW9uIHRvIHRo
ZSBtZXRob2QncyBUZXh0VHJhY2sgb2JqZWN0J3MgdGV4dCB0cmFjayBsaXN0IG9mIHJlZ2lvbnMu
CiAgICAgcmVnaW9uLT5zZXRUcmFjayh0aGlzKTsKLSAgICByZWdpb25MaXN0LmFkZChXVEZNb3Zl
KHJlZ2lvbikpOworICAgIHJlZ2lvbkxpc3QuYWRkKHJlZ2lvbi5yZWxlYXNlTm9uTnVsbCgpKTsK
IH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gVGV4dFRyYWNrOjpyZW1vdmVSZWdpb24oVlRUUmVnaW9u
KiByZWdpb24pCkBAIC00MDgsOSArNDAxLDggQEAgRXhjZXB0aW9uT3I8dm9pZD4gVGV4dFRyYWNr
OjpyZW1vdmVSZWdpb24oVlRUUmVnaW9uKiByZWdpb24pCiAgICAgaWYgKHJlZ2lvbi0+dHJhY2so
KSAhPSB0aGlzKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTk9UX0ZPVU5EX0VSUiB9Owog
Ci0gICAgaWYgKCFtX3JlZ2lvbnMgfHwgIW1fcmVnaW9ucy0+cmVtb3ZlKHJlZ2lvbikpCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX1NUQVRFX0VSUiB9OwotCisgICAgQVNTRVJU
KG1fcmVnaW9ucyk7CisgICAgbV9yZWdpb25zLT5yZW1vdmUoKnJlZ2lvbik7CiAgICAgcmVnaW9u
LT5zZXRUcmFjayhudWxscHRyKTsKICAgICByZXR1cm4geyB9OwogfQpAQCAtNDIyLDcgKzQxNCw3
IEBAIHZvaWQgVGV4dFRyYWNrOjpjdWVXaWxsQ2hhbmdlKFRleHRUcmFja0N1ZSogY3VlKQogCiAg
ICAgLy8gVGhlIGN1ZSBtYXkgbmVlZCB0byBiZSByZXBvc2l0aW9uZWQgaW4gdGhlIG1lZGlhIGVs
ZW1lbnQncyBpbnRlcnZhbCB0cmVlLCBtYXkgbmVlZCB0bwogICAgIC8vIGJlIHJlLXJlbmRlcmVk
LCBldGMsIHNvIHJlbW92ZSBpdCBiZWZvcmUgdGhlIG1vZGlmaWNhdGlvbi4uLgotICAgIG1fY2xp
ZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUodGhpcywgKmN1ZSk7CisgICAgbV9jbGllbnQtPnRleHRU
cmFja1JlbW92ZUN1ZSgqdGhpcywgKmN1ZSk7CiB9CiAKIHZvaWQgVGV4dFRyYWNrOjpjdWVEaWRD
aGFuZ2UoVGV4dFRyYWNrQ3VlKiBjdWUpCkBAIC00MzEsMjYgKzQyMywyNCBAQCB2b2lkIFRleHRU
cmFjazo6Y3VlRGlkQ2hhbmdlKFRleHRUcmFja0N1ZSogY3VlKQogICAgICAgICByZXR1cm47CiAK
ICAgICAvLyBNYWtlIHN1cmUgdGhlIFRleHRUcmFja0N1ZUxpc3Qgb3JkZXIgaXMgdXAtdG8tZGF0
ZS4KLSAgICBlbnN1cmVUZXh0VHJhY2tDdWVMaXN0KCkudXBkYXRlQ3VlSW5kZXgoY3VlKTsKKyAg
ICBlbnN1cmVUZXh0VHJhY2tDdWVMaXN0KCkudXBkYXRlQ3VlSW5kZXgoKmN1ZSk7CiAKICAgICAv
LyAuLi4gYW5kIGFkZCBpdCBiYWNrIGFnYWluLgotICAgIG1fY2xpZW50LT50ZXh0VHJhY2tBZGRD
dWUodGhpcywgKmN1ZSk7CisgICAgbV9jbGllbnQtPnRleHRUcmFja0FkZEN1ZSgqdGhpcywgKmN1
ZSk7CiB9CiAKIGludCBUZXh0VHJhY2s6OnRyYWNrSW5kZXgoKQogewogICAgIEFTU0VSVChtX21l
ZGlhRWxlbWVudCk7Ci0KLSAgICBpZiAobV90cmFja0luZGV4ID09IGludmFsaWRUcmFja0luZGV4
KQorICAgIGlmICghbV90cmFja0luZGV4KQogICAgICAgICBtX3RyYWNrSW5kZXggPSBtX21lZGlh
RWxlbWVudC0+dGV4dFRyYWNrcygpLmdldFRyYWNrSW5kZXgoKnRoaXMpOwotCi0gICAgcmV0dXJu
IG1fdHJhY2tJbmRleDsKKyAgICByZXR1cm4gbV90cmFja0luZGV4LnZhbHVlKCk7CiB9CiAKIHZv
aWQgVGV4dFRyYWNrOjppbnZhbGlkYXRlVHJhY2tJbmRleCgpCiB7Ci0gICAgbV90cmFja0luZGV4
ID0gaW52YWxpZFRyYWNrSW5kZXg7Ci0gICAgbV9yZW5kZXJlZFRyYWNrSW5kZXggPSBpbnZhbGlk
VHJhY2tJbmRleDsKKyAgICBtX3RyYWNrSW5kZXggPSBzdGQ6Om51bGxvcHQ7CisgICAgbV9yZW5k
ZXJlZFRyYWNrSW5kZXggPSBzdGQ6Om51bGxvcHQ7CiB9CiAKIGJvb2wgVGV4dFRyYWNrOjppc1Jl
bmRlcmVkKCkKQEAgLTQ2OSwxMSArNDU5LDkgQEAgVGV4dFRyYWNrQ3VlTGlzdCYgVGV4dFRyYWNr
OjplbnN1cmVUZXh0VHJhY2tDdWVMaXN0KCkKIGludCBUZXh0VHJhY2s6OnRyYWNrSW5kZXhSZWxh
dGl2ZVRvUmVuZGVyZWRUcmFja3MoKQogewogICAgIEFTU0VSVChtX21lZGlhRWxlbWVudCk7Ci0g
ICAgCi0gICAgaWYgKG1fcmVuZGVyZWRUcmFja0luZGV4ID09IGludmFsaWRUcmFja0luZGV4KQor
ICAgIGlmICghbV9yZW5kZXJlZFRyYWNrSW5kZXgpCiAgICAgICAgIG1fcmVuZGVyZWRUcmFja0lu
ZGV4ID0gbV9tZWRpYUVsZW1lbnQtPnRleHRUcmFja3MoKS5nZXRUcmFja0luZGV4UmVsYXRpdmVU
b1JlbmRlcmVkVHJhY2tzKCp0aGlzKTsKLSAgICAKLSAgICByZXR1cm4gbV9yZW5kZXJlZFRyYWNr
SW5kZXg7CisgICAgcmV0dXJuIG1fcmVuZGVyZWRUcmFja0luZGV4LnZhbHVlKCk7CiB9CiAKIGJv
b2wgVGV4dFRyYWNrOjpoYXNDdWUoVGV4dFRyYWNrQ3VlKiBjdWUsIFRleHRUcmFja0N1ZTo6Q3Vl
TWF0Y2hSdWxlcyBtYXRjaCkKQEAgLTU2NCw3ICs1NTIsNyBAQCB2b2lkIFRleHRUcmFjazo6c2V0
TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKICAgICAvLyAzLiBJZiB0aGUg
c291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1
ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlCiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0
IHNvdXJjZUJ1ZmZlci50ZXh0VHJhY2tzLgogICAgIGlmIChtX3NvdXJjZUJ1ZmZlcikKLSAgICAg
ICAgbV9zb3VyY2VCdWZmZXItPnRleHRUcmFja3MoKS0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwor
ICAgICAgICBtX3NvdXJjZUJ1ZmZlci0+dGV4dFRyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQo
KTsKIAogICAgIC8vIDQuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVk
IGNoYW5nZSBhdCB0aGUgVGV4dFRyYWNrTGlzdCBvYmplY3QgcmVmZXJlbmNlZCBieQogICAgIC8v
IHRoZSB0ZXh0VHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCmluZGV4IGI4MDQ5YzcwY2FlMWFhOTc4NWMwNGE1
NDk5YmM3YWU2YzgzMGNlZGIuLjhiYjQ3YjI3NmY2ZTU1YjkxNjY2N2Q3ZmNlMTU3NDQ1NzhmM2Jl
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaApAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzAsOCArMzAsNiBAQAogCiAjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlLmgiCiAjaW5jbHVkZSAi
VHJhY2tCYXNlLmgiCi0jaW5jbHVkZSAiVlRUQ3VlLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDQsMTIgKzQyLDEyIEBAIGNs
YXNzIFZUVFJlZ2lvbkxpc3Q7CiBjbGFzcyBUZXh0VHJhY2tDbGllbnQgewogcHVibGljOgogICAg
IHZpcnR1YWwgflRleHRUcmFja0NsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJh
Y2tLaW5kQ2hhbmdlZChUZXh0VHJhY2sqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFj
a01vZGVDaGFuZ2VkKFRleHRUcmFjayopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNr
QWRkQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0KikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFj
a0N1ZUxpc3QqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZShUZXh0VHJh
Y2sqLCBUZXh0VHJhY2tDdWUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92
ZUN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRl
eHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4
dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0
VHJhY2tBZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4
dFRyYWNrQ3VlTGlzdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRl
eHRUcmFjayYsIFRleHRUcmFja0N1ZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNr
UmVtb3ZlQ3VlKFRleHRUcmFjayYsIFRleHRUcmFja0N1ZSYpID0gMDsKIH07CiAKIGNsYXNzIFRl
eHRUcmFjayA6IHB1YmxpYyBUcmFja0Jhc2UsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVE
YXRhIHsKQEAgLTE2Nyw4ICsxNjUsOCBAQCBwcml2YXRlOgogICAgIFRleHRUcmFja0NsaWVudCog
bV9jbGllbnQ7CiAgICAgVGV4dFRyYWNrVHlwZSBtX3RyYWNrVHlwZTsKICAgICBSZWFkaW5lc3NT
dGF0ZSBtX3JlYWRpbmVzc1N0YXRlIHsgTm90TG9hZGVkIH07Ci0gICAgaW50IG1fdHJhY2tJbmRl
eDsKLSAgICBpbnQgbV9yZW5kZXJlZFRyYWNrSW5kZXg7CisgICAgc3RkOjpvcHRpb25hbDxpbnQ+
IG1fdHJhY2tJbmRleDsKKyAgICBzdGQ6Om9wdGlvbmFsPGludD4gbV9yZW5kZXJlZFRyYWNrSW5k
ZXg7CiAgICAgYm9vbCBtX2hhc0JlZW5Db25maWd1cmVkIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAppbmRleCBmY2JhMTlkMGRiYmFk
NGUwMDQ3OTA5MWVjZDU2ZTgyNzJkY2U1OGVkLi4zMzkxNzJkMTA1NTIzMDI1M2VjZWM0MTEwNDc4
YmRkM2U5ZjE1NGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0N1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUu
Y3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBHb29n
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAx
MiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMCwxMSArMzAsMTAgQEAKICAqLwogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlLmgiCiAKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCiAKLSNpbmNsdWRlICJUZXh0VHJhY2tDdWUuaCIKLQogI2luY2x1ZGUg
IkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5j
bHVkZSAiRXZlbnQuaCIKQEAgLTQ5LDggKzQ4LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1zdGF0aWMgY29uc3QgaW50IGludmFsaWRDdWVJbmRleCA9IC0xOwotCiBjb25zdCBBdG9taWNT
dHJpbmcmIFRleHRUcmFja0N1ZTo6Y3VlU2hhZG93UHNldWRvSWQoKQogewogICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGN1ZSgiY3VlIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CkBAIC02MCw5ICs1Nyw2IEBAIGNvbnN0IEF0b21pY1N0
cmluZyYgVGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCgpCiBUZXh0VHJhY2tDdWU6OlRl
eHRUcmFja0N1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBNZWRpYVRp
bWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCkKICAgICA6IG1fc3RhcnRUaW1lKHN0YXJ0
KQogICAgICwgbV9lbmRUaW1lKGVuZCkKLSAgICAsIG1fY3VlSW5kZXgoaW52YWxpZEN1ZUluZGV4
KQotICAgICwgbV9wcm9jZXNzaW5nQ3VlQ2hhbmdlcygwKQotICAgICwgbV90cmFjaygwKQogICAg
ICwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQpCiAgICAgLCBtX2lzQWN0aXZlKGZh
bHNlKQogICAgICwgbV9wYXVzZU9uRXhpdChmYWxzZSkKQEAgLTE0OSwyMyArMTQzLDYgQEAgdm9p
ZCBUZXh0VHJhY2tDdWU6OnNldFBhdXNlT25FeGl0KGJvb2wgdmFsdWUpCiAgICAgbV9wYXVzZU9u
RXhpdCA9IHZhbHVlOwogfQogCi1pbnQgVGV4dFRyYWNrQ3VlOjpjdWVJbmRleCgpCi17Ci0gICAg
aWYgKG1fY3VlSW5kZXggPT0gaW52YWxpZEN1ZUluZGV4KSB7Ci0gICAgICAgIEFTU0VSVCh0cmFj
aygpKTsKLSAgICAgICAgQVNTRVJUKHRyYWNrKCktPmN1ZXMoKSk7Ci0gICAgICAgIGlmIChUZXh0
VHJhY2tDdWVMaXN0KiBjdWVMaXN0ID0gdHJhY2soKS0+Y3VlcygpKQotICAgICAgICAgICAgbV9j
dWVJbmRleCA9IGN1ZUxpc3QtPmdldEN1ZUluZGV4KHRoaXMpOwotICAgIH0KLQotICAgIHJldHVy
biBtX2N1ZUluZGV4OwotfQotCi12b2lkIFRleHRUcmFja0N1ZTo6aW52YWxpZGF0ZUN1ZUluZGV4
KCkKLXsKLSAgICBtX2N1ZUluZGV4ID0gaW52YWxpZEN1ZUluZGV4OwotfQotCiBib29sIFRleHRU
cmFja0N1ZTo6ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCiB7CiAgICAgLy8gV2hlbiBhIFRl
eHRUcmFjaydzIG1vZGUgaXMgZGlzYWJsZWQ6IG5vIGN1ZXMgYXJlIGFjdGl2ZSwgbm8gZXZlbnRz
IGZpcmVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tD
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKaW5kZXggNTcz
NTFkYzYwZTJiNmVhZjUwODBmMDMwOWE0NTE2OGY3ODMwYTczNC4uNDkwNzU0NmEyN2FlNDgyNGUx
MmExNDBhOTlhZmU5NjQ4MzE1NTBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0N1ZS5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTY1LDkgKzY1LDYgQEAgcHVibGljOgogICAgIE1lZGlh
VGltZSBlbmRNZWRpYVRpbWUoKSBjb25zdCB7IHJldHVybiBtX2VuZFRpbWU7IH0KICAgICB2b2lk
IHNldEVuZFRpbWUoY29uc3QgTWVkaWFUaW1lJik7CiAKLSAgICBpbnQgY3VlSW5kZXgoKTsKLSAg
ICB2b2lkIGludmFsaWRhdGVDdWVJbmRleCgpOwotCiAgICAgYm9vbCBpc0FjdGl2ZSgpOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRJc0FjdGl2ZShib29sKTsKIApAQCAtODIsOSArNzksNiBAQCBwdWJs
aWM6CiAKICAgICBlbnVtIEN1ZU1hdGNoUnVsZXMgeyBNYXRjaEFsbEZpZWxkcywgSWdub3JlRHVy
YXRpb24gfTsKICAgICB2aXJ0dWFsIGJvb2wgaXNFcXVhbChjb25zdCBUZXh0VHJhY2tDdWUmLCBD
dWVNYXRjaFJ1bGVzKSBjb25zdDsKLXByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGN1ZUNvbnRl
bnRzTWF0Y2goY29uc3QgVGV4dFRyYWNrQ3VlJikgY29uc3Q7Ci1wdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIGRvZXNFeHRlbmRDdWUoY29uc3QgVGV4dFRyYWNrQ3VlJikgY29uc3Q7CiAKICAgICB2
b2lkIHdpbGxDaGFuZ2UoKTsKQEAgLTEwOCwxMyArMTAyLDE0IEBAIHByaXZhdGU6CiAgICAgRXZl
bnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBUZXh0VHJhY2tDdWVFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KICAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gJm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsgfQogCisgICAgdmlydHVhbCBib29sIGN1
ZUNvbnRlbnRzTWF0Y2goY29uc3QgVGV4dFRyYWNrQ3VlJikgY29uc3Q7CisKICAgICBTdHJpbmcg
bV9pZDsKICAgICBNZWRpYVRpbWUgbV9zdGFydFRpbWU7CiAgICAgTWVkaWFUaW1lIG1fZW5kVGlt
ZTsKLSAgICBpbnQgbV9jdWVJbmRleDsKLSAgICBpbnQgbV9wcm9jZXNzaW5nQ3VlQ2hhbmdlczsK
KyAgICBpbnQgbV9wcm9jZXNzaW5nQ3VlQ2hhbmdlcyB7IDAgfTsKIAotICAgIFRleHRUcmFjayog
bV90cmFjazsKKyAgICBUZXh0VHJhY2sqIG1fdHJhY2sgeyBudWxscHRyIH07CiAKICAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuY3BwCmluZGV4IGZmZDhlYWU0
ZDk5MzY0ODBhNmE1YmMzNTkyZmUwODBiNzE2ZTEzYTEuLjMwOTYxM2I4MWQ1OGE0YjhmZjgyMTQ1
NjI0MTZjYTA4ZmQ5YWIzOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrQ3VlTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWVMaXN0LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI5LDExNyArMzAsMTAwIEBACiAKICNpbmNsdWRlICJUZXh0VHJhY2tDdWVM
aXN0LmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKKy8vIENoZWNraW5nIHNvcnRpbmcgaXMgdG9v
IHNsb3cgZm9yIGdlbmVyYWwgdXNlOyB0dXJuIGl0IG9uIGV4cGxpY2l0bHkgd2hlbiB3b3JraW5n
IG9uIHRoaXMgY2xhc3MuCisjdW5kZWYgQ0hFQ0tfU09SVElORwogCi1UZXh0VHJhY2tDdWVMaXN0
OjpUZXh0VHJhY2tDdWVMaXN0KCkKLXsKLX0KKyNpZmRlZiBDSEVDS19TT1JUSU5HCisjZGVmaW5l
IEFTU0VSVF9TT1JURUQoYmVnaW4sIGVuZCkgQVNTRVJUKHN0ZDo6aXNfc29ydGVkKGJlZ2luLCBl
bmQsIGNvbXBhcmVDdWVzKSkKKyNlbHNlCisjZGVmaW5lIEFTU0VSVF9TT1JURUQoYmVnaW4sIGVu
ZCkgKCh2b2lkKTApCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgewogCi11bnNpZ25lZCBs
b25nIFRleHRUcmFja0N1ZUxpc3Q6Omxlbmd0aCgpIGNvbnN0CitzdGF0aWMgaW5saW5lIGJvb2wg
Y29tcGFyZUN1ZXMoY29uc3QgUmVmUHRyPFRleHRUcmFja0N1ZT4mIGEsIGNvbnN0IFJlZlB0cjxU
ZXh0VHJhY2tDdWU+JiBiKQogewotICAgIHJldHVybiBtX2xpc3Quc2l6ZSgpOworICAgIHJldHVy
biBhLT5pc09yZGVyZWRCZWZvcmUoYi5nZXQoKSk7CiB9CiAKLXVuc2lnbmVkIGxvbmcgVGV4dFRy
YWNrQ3VlTGlzdDo6Z2V0Q3VlSW5kZXgoVGV4dFRyYWNrQ3VlKiBjdWUpIGNvbnN0Cit1bnNpZ25l
ZCBUZXh0VHJhY2tDdWVMaXN0OjpjdWVJbmRleChUZXh0VHJhY2tDdWUmIGN1ZSkgY29uc3QKIHsK
LSAgICByZXR1cm4gbV9saXN0LmZpbmQoY3VlKTsKKyAgICBBU1NFUlQobV92ZWN0b3IuY29udGFp
bnMoJmN1ZSkpOworICAgIHJldHVybiBtX3ZlY3Rvci5maW5kKCZjdWUpOwogfQogCiBUZXh0VHJh
Y2tDdWUqIFRleHRUcmFja0N1ZUxpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0CiB7Ci0g
ICAgaWYgKGluZGV4IDwgbV9saXN0LnNpemUoKSkKLSAgICAgICAgcmV0dXJuIG1fbGlzdFtpbmRl
eF0uZ2V0KCk7Ci0gICAgcmV0dXJuIDA7CisgICAgaWYgKGluZGV4ID49IG1fdmVjdG9yLnNpemUo
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIG1fdmVjdG9yW2luZGV4XS5n
ZXQoKTsKIH0KIAogVGV4dFRyYWNrQ3VlKiBUZXh0VHJhY2tDdWVMaXN0OjpnZXRDdWVCeUlkKGNv
bnN0IFN0cmluZyYgaWQpIGNvbnN0CiB7Ci0gICAgZm9yIChhdXRvJiBjdWUgOiBtX2xpc3QpIHsK
KyAgICBmb3IgKGF1dG8mIGN1ZSA6IG1fdmVjdG9yKSB7CiAgICAgICAgIGlmIChjdWUtPmlkKCkg
PT0gaWQpCiAgICAgICAgICAgICByZXR1cm4gY3VlLmdldCgpOwogICAgIH0KLSAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotVGV4dFRyYWNrQ3VlTGlzdCogVGV4dFRyYWNr
Q3VlTGlzdDo6YWN0aXZlQ3VlcygpCitUZXh0VHJhY2tDdWVMaXN0JiBUZXh0VHJhY2tDdWVMaXN0
OjphY3RpdmVDdWVzKCkKIHsKICAgICBpZiAoIW1fYWN0aXZlQ3VlcykKICAgICAgICAgbV9hY3Rp
dmVDdWVzID0gY3JlYXRlKCk7CiAKLSAgICBtX2FjdGl2ZUN1ZXMtPmNsZWFyKCk7Ci0gICAgZm9y
IChhdXRvJiBjdWUgOiBtX2xpc3QpIHsKKyAgICBWZWN0b3I8UmVmUHRyPFRleHRUcmFja0N1ZT4+
IGFjdGl2ZUN1ZXNWZWN0b3I7CisgICAgZm9yIChhdXRvJiBjdWUgOiBtX3ZlY3RvcikgewogICAg
ICAgICBpZiAoY3VlLT5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgbV9hY3RpdmVDdWVzLT5hZGQo
Y3VlKTsKKyAgICAgICAgICAgIGFjdGl2ZUN1ZXNWZWN0b3IuYXBwZW5kKGN1ZSk7CiAgICAgfQot
ICAgIHJldHVybiBtX2FjdGl2ZUN1ZXMuZ2V0KCk7CisgICAgQVNTRVJUX1NPUlRFRChhY3RpdmVD
dWVzVmVjdG9yLmJlZ2luKCksIGFjdGl2ZUN1ZXNWZWN0b3IuZW5kKCkpOworICAgIG1fYWN0aXZl
Q3Vlcy0+bV92ZWN0b3IgPSBXVEZNb3ZlKGFjdGl2ZUN1ZXNWZWN0b3IpOworCisgICAgLy8gRklY
TUU6IFRoaXMgbGlzdCBvZiBhY3RpdmUgY3VlcyBpcyBub3QgdXBkYXRlZCBhcyBjdWVzIGFyZSBh
ZGRlZCwgcmVtb3ZlZCwgYmVjb21lIGFjdGl2ZSwgYW5kIGJlY29tZSBpbmFjdGl2ZS4KKyAgICAv
LyBJbnN0ZWFkIGl0IGlzIG9ubHkgdXBkYXRlZCBlYWNoIHRpbWUgdGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgYWdhaW4uIFRoYXQgaXMgbm90IGNvbnNpc3RlbnQgd2l0aCBvdGhlciBkeW5hbWljIERP
TSBsaXN0cy4KKyAgICByZXR1cm4gKm1fYWN0aXZlQ3VlczsKIH0KIAotYm9vbCBUZXh0VHJhY2tD
dWVMaXN0OjphZGQoUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+IGN1ZSkKK3ZvaWQgVGV4dFRyYWNr
Q3VlTGlzdDo6YWRkKFJlZjxUZXh0VHJhY2tDdWU+JiYgY3VlKQogeworICAgIEFTU0VSVCghbV92
ZWN0b3IuY29udGFpbnMoJmN1ZSkpOwogICAgIEFTU0VSVChjdWUtPnN0YXJ0TWVkaWFUaW1lKCkg
Pj0gTWVkaWFUaW1lOjp6ZXJvVGltZSgpKTsKICAgICBBU1NFUlQoY3VlLT5lbmRNZWRpYVRpbWUo
KSA+PSBNZWRpYVRpbWU6Onplcm9UaW1lKCkpOwogCi0gICAgcmV0dXJuIGFkZChjdWUsIDAsIG1f
bGlzdC5zaXplKCkpOworICAgIFJlZlB0cjxUZXh0VHJhY2tDdWU+IGN1ZVJlZlB0ciB7IFdURk1v
dmUoY3VlKSB9OworICAgIHVuc2lnbmVkIGluc2VydGlvblBvc2l0aW9uID0gc3RkOjp1cHBlcl9i
b3VuZChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSwgY3VlUmVmUHRyLCBjb21wYXJl
Q3VlcykgLSBtX3ZlY3Rvci5iZWdpbigpOworICAgIEFTU0VSVF9TT1JURUQobV92ZWN0b3IuYmVn
aW4oKSwgbV92ZWN0b3IuZW5kKCkpOworICAgIG1fdmVjdG9yLmluc2VydChpbnNlcnRpb25Qb3Np
dGlvbiwgV1RGTW92ZShjdWVSZWZQdHIpKTsKKyAgICBBU1NFUlRfU09SVEVEKG1fdmVjdG9yLmJl
Z2luKCksIG1fdmVjdG9yLmVuZCgpKTsKIH0KIAotYm9vbCBUZXh0VHJhY2tDdWVMaXN0OjphZGQo
UGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+IHBycEN1ZSwgc2l6ZV90IHN0YXJ0LCBzaXplX3QgZW5k
KQordm9pZCBUZXh0VHJhY2tDdWVMaXN0OjpyZW1vdmUoVGV4dFRyYWNrQ3VlJiBjdWUpCiB7Ci0g
ICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oc3RhcnQgPD0gbV9saXN0LnNpemUo
KSk7Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oZW5kIDw9IG1fbGlzdC5z
aXplKCkpOwotCi0gICAgLy8gTWFpbnRhaW4gdGV4dCB0cmFjayBjdWUgb3JkZXI6Ci0gICAgLy8g
aHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jdGV4dC10
cmFjay1jdWUtb3JkZXIKLSAgICBSZWZQdHI8VGV4dFRyYWNrQ3VlPiBjdWUgPSBwcnBDdWU7Ci0g
ICAgaWYgKHN0YXJ0ID09IGVuZCkgewotICAgICAgICBpZiAoIW1fbGlzdC5pc0VtcHR5KCkgJiYg
KHN0YXJ0ID4gMCkgJiYgKG1fbGlzdFtzdGFydCAtIDFdLmdldCgpID09IGN1ZS5nZXQoKSkpCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgbV9saXN0Lmluc2VydChzdGFydCwg
Y3VlKTsKLSAgICAgICAgaW52YWxpZGF0ZUN1ZUluZGV4ZXMoc3RhcnQpOwotICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBzaXplX3QgaW5kZXggPSAoc3RhcnQgKyBlbmQpIC8gMjsK
LSAgICBpZiAoY3VlLT5pc09yZGVyZWRCZWZvcmUobV9saXN0W2luZGV4XS5nZXQoKSkpCi0gICAg
ICAgIHJldHVybiBhZGQoV1RGTW92ZShjdWUpLCBzdGFydCwgaW5kZXgpOwotCi0gICAgcmV0dXJu
IGFkZChXVEZNb3ZlKGN1ZSksIGluZGV4ICsgMSwgZW5kKTsKKyAgICBBU1NFUlRfU09SVEVEKG1f
dmVjdG9yLmJlZ2luKCksIG1fdmVjdG9yLmVuZCgpKTsKKyAgICBtX3ZlY3Rvci5yZW1vdmUoY3Vl
SW5kZXgoY3VlKSk7CisgICAgQVNTRVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rv
ci5lbmQoKSk7CiB9CiAKLWJvb2wgVGV4dFRyYWNrQ3VlTGlzdDo6cmVtb3ZlKFRleHRUcmFja0N1
ZSogY3VlKQordm9pZCBUZXh0VHJhY2tDdWVMaXN0Ojp1cGRhdGVDdWVJbmRleChUZXh0VHJhY2tD
dWUmIGN1ZSkKIHsKLSAgICBzaXplX3QgaW5kZXggPSBtX2xpc3QuZmluZChjdWUpOwotICAgIGlm
IChpbmRleCA9PSBub3RGb3VuZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgY3VlLT5z
ZXRJc0FjdGl2ZShmYWxzZSk7Ci0gICAgbV9saXN0LnJlbW92ZShpbmRleCk7Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KLWJvb2wgVGV4dFRyYWNrQ3VlTGlzdDo6Y29udGFpbnMoVGV4dFRyYWNrQ3Vl
KiBjdWUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbGlzdC5jb250YWlucyhjdWUpOwotfQotCi1i
b29sIFRleHRUcmFja0N1ZUxpc3Q6OnVwZGF0ZUN1ZUluZGV4KFRleHRUcmFja0N1ZSogY3VlKQot
ewotICAgIGlmICghY29udGFpbnMoY3VlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAot
ICAgIHJlbW92ZShjdWUpOwotICAgIHJldHVybiBhZGQoY3VlKTsKLX0KLQotdm9pZCBUZXh0VHJh
Y2tDdWVMaXN0OjpjbGVhcigpCi17Ci0gICAgbV9saXN0LmNsZWFyKCk7Ci19CisgICAgYXV0byBj
dWVQb3NpdGlvbiA9IG1fdmVjdG9yLmJlZ2luKCkgKyBjdWVJbmRleChjdWUpOworICAgIGF1dG8g
YWZ0ZXJDdWVQb3NpdGlvbiA9IGN1ZVBvc2l0aW9uICsgMTsKKworICAgIEFTU0VSVF9TT1JURUQo
bV92ZWN0b3IuYmVnaW4oKSwgY3VlUG9zaXRpb24pOworICAgIEFTU0VSVF9TT1JURUQoYWZ0ZXJD
dWVQb3NpdGlvbiwgbV92ZWN0b3IuZW5kKCkpOworCisgICAgYXV0byByZWluc2VydGlvblBvc2l0
aW9uID0gc3RkOjp1cHBlcl9ib3VuZChtX3ZlY3Rvci5iZWdpbigpLCBjdWVQb3NpdGlvbiwgKmN1
ZVBvc2l0aW9uLCBjb21wYXJlQ3Vlcyk7CisgICAgaWYgKHJlaW5zZXJ0aW9uUG9zaXRpb24gIT0g
Y3VlUG9zaXRpb24pCisgICAgICAgIHN0ZDo6cm90YXRlKHJlaW5zZXJ0aW9uUG9zaXRpb24sIGN1
ZVBvc2l0aW9uLCBhZnRlckN1ZVBvc2l0aW9uKTsKKyAgICBlbHNlIHsKKyAgICAgICAgcmVpbnNl
cnRpb25Qb3NpdGlvbiA9IHN0ZDo6dXBwZXJfYm91bmQoYWZ0ZXJDdWVQb3NpdGlvbiwgbV92ZWN0
b3IuZW5kKCksICpjdWVQb3NpdGlvbiwgY29tcGFyZUN1ZXMpOworICAgICAgICBpZiAocmVpbnNl
cnRpb25Qb3NpdGlvbiAhPSBhZnRlckN1ZVBvc2l0aW9uKQorICAgICAgICAgICAgc3RkOjpyb3Rh
dGUoY3VlUG9zaXRpb24sIGFmdGVyQ3VlUG9zaXRpb24sIHJlaW5zZXJ0aW9uUG9zaXRpb24pOwor
ICAgIH0KIAotdm9pZCBUZXh0VHJhY2tDdWVMaXN0OjppbnZhbGlkYXRlQ3VlSW5kZXhlcyhzaXpl
X3Qgc3RhcnQpCi17Ci0gICAgZm9yIChzaXplX3QgaSA9IHN0YXJ0OyBpIDwgbV9saXN0LnNpemUo
KTsgKytpKQotICAgICAgICBtX2xpc3RbaV0tPmludmFsaWRhdGVDdWVJbmRleCgpOworICAgIEFT
U0VSVF9TT1JURUQobV92ZWN0b3IuYmVnaW4oKSwgbV92ZWN0b3IuZW5kKCkpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0N1ZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
Q3VlTGlzdC5oCmluZGV4IGEyMThmYjY5MDg5NjI0YzFmMjgzOWM3NTNhYzEyNWZmMGRiM2MyOTku
LmZlMDRjNDQ2ZDI5NzdjN2ZjZTkzMmM2M2I4Mjk3OTgzNGYyMjVlNzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5oCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNDQgKzI5LDQyIEBACiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlLmgiCi0jaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBUZXh0VHJhY2tD
dWVMaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8VGV4dFRyYWNrQ3VlTGlzdD4gewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8VGV4dFRyYWNrQ3VlTGlzdD4gY3JlYXRlKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFRleHRUcmFja0N1ZUxpc3QpOwotICAgIH0KLQotICAgIH5U
ZXh0VHJhY2tDdWVMaXN0KCkgeyB9Ci0KLSAgICB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0
OwotICAgIHVuc2lnbmVkIGxvbmcgZ2V0Q3VlSW5kZXgoVGV4dFRyYWNrQ3VlKikgY29uc3Q7Cisg
ICAgc3RhdGljIFJlZjxUZXh0VHJhY2tDdWVMaXN0PiBjcmVhdGUoKTsKIAorICAgIHVuc2lnbmVk
IGxlbmd0aCgpIGNvbnN0OwogICAgIFRleHRUcmFja0N1ZSogaXRlbSh1bnNpZ25lZCBpbmRleCkg
Y29uc3Q7CiAgICAgVGV4dFRyYWNrQ3VlKiBnZXRDdWVCeUlkKGNvbnN0IFN0cmluZyYpIGNvbnN0
OwotICAgIFRleHRUcmFja0N1ZUxpc3QqIGFjdGl2ZUN1ZXMoKTsKIAotICAgIGJvb2wgYWRkKFBh
c3NSZWZQdHI8VGV4dFRyYWNrQ3VlPik7Ci0gICAgYm9vbCByZW1vdmUoVGV4dFRyYWNrQ3VlKik7
Ci0gICAgYm9vbCBjb250YWlucyhUZXh0VHJhY2tDdWUqKSBjb25zdDsKLSAgICAKLSAgICBib29s
IHVwZGF0ZUN1ZUluZGV4KFRleHRUcmFja0N1ZSopOworICAgIHVuc2lnbmVkIGN1ZUluZGV4KFRl
eHRUcmFja0N1ZSYpIGNvbnN0OworCisgICAgdm9pZCBhZGQoUmVmPFRleHRUcmFja0N1ZT4mJik7
CisgICAgdm9pZCByZW1vdmUoVGV4dFRyYWNrQ3VlJik7CisgICAgdm9pZCB1cGRhdGVDdWVJbmRl
eChUZXh0VHJhY2tDdWUmKTsKKworICAgIFRleHRUcmFja0N1ZUxpc3QmIGFjdGl2ZUN1ZXMoKTsK
IAogcHJpdmF0ZToKLSAgICBUZXh0VHJhY2tDdWVMaXN0KCk7Ci0gICAgYm9vbCBhZGQoUGFzc1Jl
ZlB0cjxUZXh0VHJhY2tDdWU+LCBzaXplX3QsIHNpemVfdCk7Ci0gICAgdm9pZCBjbGVhcigpOwot
ICAgIHZvaWQgaW52YWxpZGF0ZUN1ZUluZGV4ZXMoc2l6ZV90KTsKKyAgICBUZXh0VHJhY2tDdWVM
aXN0KCkgPSBkZWZhdWx0OwogCi0gICAgVmVjdG9yPFJlZlB0cjxUZXh0VHJhY2tDdWU+PiBtX2xp
c3Q7CisgICAgVmVjdG9yPFJlZlB0cjxUZXh0VHJhY2tDdWU+PiBtX3ZlY3RvcjsKICAgICBSZWZQ
dHI8VGV4dFRyYWNrQ3VlTGlzdD4gbV9hY3RpdmVDdWVzOwogfTsKIAoraW5saW5lIFJlZjxUZXh0
VHJhY2tDdWVMaXN0PiBUZXh0VHJhY2tDdWVMaXN0OjpjcmVhdGUoKQoreworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFRleHRUcmFja0N1ZUxpc3QpOworfQorCitpbmxpbmUgdW5zaWduZWQgVGV4
dFRyYWNrQ3VlTGlzdDo6bGVuZ3RoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92ZWN0b3Iuc2l6
ZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoVklE
RU9fVFJBQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKaW5kZXggN2Rk
OGRkYjRiZjY0ZTVkODIzMTZhNGVmZGVjNTMxN2UxNTBkNmMxZC4uYzhhM2YzOGQ1NzhlNGZhZTQx
NWVmOGVkZTJjNTQwM2Y4ZmFjNWM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UcmFja0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tC
YXNlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNjgsNyArNjgsNyBAQCB2b2lkIE1lZGlhVHJhY2tCYXNlOjpzZXRLaW5kSW50ZXJu
YWwoY29uc3QgQXRvbWljU3RyaW5nJiBraW5kKQogICAgIGlmIChpc1ZhbGlkS2luZChraW5kKSkK
ICAgICAgICAgbV9raW5kID0ga2luZDsKICAgICBlbHNlCi0gICAgICAgIG1fa2luZCA9IGRlZmF1
bHRLaW5kS2V5d29yZCgpOworICAgICAgICBtX2tpbmQgPSBlbXB0eUF0b207CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VHJhY2tCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5oCmluZGV4
IGQ2YzVlNDg1NmE1NWFhODhmNGM2OWYwNzNkMDdkMDZkNGIwYjVjNzAuLmZhODI1Mjc1YjhjYWUx
NWJhMDE5MTRkOTgwODk3M2NhNjdjY2ExYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVHJhY2tCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFj
a0Jhc2UuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMjcsOSArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1
ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC05Nyw3ICs5NSw2IEBAIHByb3RlY3RlZDoKIAog
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5n
JikgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBkZWZhdWx0S2lu
ZEtleXdvcmQoKSBjb25zdCA9IDA7CiAKICAgICBBdG9taWNTdHJpbmcgbV9raW5kOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuY3BwCmluZGV4IGI3ZTc5ZDBm
N2U2YmJjNzRlNDFhNzFmZDViZWU3NDFkYzEyZDdkZDIuLmNmYzE2MjIzZjM1MzRjOWRmNmFjZGYw
ZDc1YTJjYmYwOTA4YjgzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VlRUUmVnaW9uTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdp
b25MaXN0LmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yOSw1NyArMjksNDEgQEAKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVZUVFJlZ2lvbkxpc3Q6OlZUVFJlZ2lvbkxpc3QoKQot
ewotfQotCi11bnNpZ25lZCBsb25nIFZUVFJlZ2lvbkxpc3Q6Omxlbmd0aCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fbGlzdC5zaXplKCk7Ci19Ci0KIFZUVFJlZ2lvbiogVlRUUmVnaW9uTGlzdDo6
aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKIHsKLSAgICBpZiAoaW5kZXggPCBtX2xpc3Quc2l6
ZSgpKQotICAgICAgICByZXR1cm4gbV9saXN0W2luZGV4XS5nZXQoKTsKLQotICAgIHJldHVybiAw
OworICAgIGlmIChpbmRleCA+PSBtX3ZlY3Rvci5zaXplKCkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiBjb25zdF9jYXN0PFZUVFJlZ2lvbio+KG1fdmVjdG9yW2luZGV4XS5w
dHIoKSk7CiB9CiAKIFZUVFJlZ2lvbiogVlRUUmVnaW9uTGlzdDo6Z2V0UmVnaW9uQnlJZChjb25z
dCBTdHJpbmcmIGlkKSBjb25zdAogeworICAgIC8vIEZJWE1FOiBXaHkgaXMgdGhpcyBzcGVjaWFs
IGNhc2UgbmVlZGVkPwogICAgIGlmIChpZC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAwOwot
Ci0gICAgZm9yIChjb25zdCBhdXRvJiByZWdpb24gOiBtX2xpc3QpIHsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgZm9yIChhdXRvJiByZWdpb24gOiBtX3ZlY3RvcikgewogICAgICAgICBp
ZiAocmVnaW9uLT5pZCgpID09IGlkKQotICAgICAgICAgICAgcmV0dXJuIHJlZ2lvbi5nZXQoKTsK
KyAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0PFZUVFJlZ2lvbio+KHJlZ2lvbi5wdHIoKSk7
CiAgICAgfQotCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQg
VlRUUmVnaW9uTGlzdDo6YWRkKFBhc3NSZWZQdHI8VlRUUmVnaW9uPiByZWdpb24pCit2b2lkIFZU
VFJlZ2lvbkxpc3Q6OmFkZChSZWY8VlRUUmVnaW9uPiYmIHJlZ2lvbikKIHsKLSAgICBtX2xpc3Qu
YXBwZW5kKHJlZ2lvbik7CisgICAgbV92ZWN0b3IuYXBwZW5kKFdURk1vdmUocmVnaW9uKSk7CiB9
CiAKLWJvb2wgVlRUUmVnaW9uTGlzdDo6cmVtb3ZlKFZUVFJlZ2lvbiogcmVnaW9uKQordm9pZCBW
VFRSZWdpb25MaXN0OjpyZW1vdmUoVlRUUmVnaW9uJiByZWdpb24pCiB7Ci0gICAgc2l6ZV90IGlu
ZGV4ID0gbV9saXN0LmZpbmQocmVnaW9uKTsKLSAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIG1fbGlzdC5yZW1vdmUoaW5kZXgpOwotICAgIHJl
dHVybiB0cnVlOwotfQotCi12b2lkIFZUVFJlZ2lvbkxpc3Q6OmNsZWFyKCkKLXsKLSAgICBtX2xp
c3QuY2xlYXIoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBzaXplID0gbV92ZWN0b3Iuc2l6
ZSgpOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIGlmIChtX3ZlY3RvcltpXS5wdHIoKSA9PSAm
cmVnaW9uKSB7CisgICAgICAgICAgICBtX3ZlY3Rvci5yZW1vdmUoaSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVlRUUmVnaW9uTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdp
b25MaXN0LmgKaW5kZXggMmZkZGRjMmVkMTlhNTZlNDgxYWFjZjQ2NWJjODhhN2IyYjdmY2NlMy4u
N2Y5ZmQ1NWRjYmUxMjQ3ZjI4YjljMzkzOWMyMDhiZThlOTQwNmQzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMzYgKzI5LDQzIEBACiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiVlRUUmVnaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBWVFRSZWdpb25MaXN0IDog
cHVibGljIFJlZkNvdW50ZWQ8VlRUUmVnaW9uTGlzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8VlRUUmVnaW9uTGlzdD4gY3JlYXRlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFZUVFJlZ2lvbkxpc3QpOwotICAgIH0KLQotICAgIH5WVFRSZWdpb25MaXN0KCkgeyB9
Ci0KLSAgICB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0OworICAgIHN0YXRpYyBSZWY8VlRU
UmVnaW9uTGlzdD4gY3JlYXRlKCk7CiAKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKICAg
ICBWVFRSZWdpb24qIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OwogICAgIFZUVFJlZ2lvbiog
Z2V0UmVnaW9uQnlJZChjb25zdCBTdHJpbmcmKSBjb25zdDsKIAotICAgIHZvaWQgYWRkKFBhc3NS
ZWZQdHI8VlRUUmVnaW9uPik7Ci0gICAgYm9vbCByZW1vdmUoVlRUUmVnaW9uKik7CisgICAgdm9p
ZCBhZGQoUmVmPFZUVFJlZ2lvbj4mJik7CisgICAgdm9pZCByZW1vdmUoVlRUUmVnaW9uJik7CiAK
IHByaXZhdGU6Ci0gICAgVlRUUmVnaW9uTGlzdCgpOworICAgIFZUVFJlZ2lvbkxpc3QoKSA9IGRl
ZmF1bHQ7CisKICAgICB2b2lkIGNsZWFyKCk7CiAKLSAgICBWZWN0b3I8UmVmUHRyPFZUVFJlZ2lv
bj4+IG1fbGlzdDsKKyAgICBWZWN0b3I8UmVmPFZUVFJlZ2lvbj4+IG1fdmVjdG9yOwogfTsKIAor
aW5saW5lIFJlZjxWVFRSZWdpb25MaXN0PiBWVFRSZWdpb25MaXN0OjpjcmVhdGUoKQoreworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFZUVFJlZ2lvbkxpc3QpOworfQorCitpbmxpbmUgdW5zaWdu
ZWQgVlRUUmVnaW9uTGlzdDo6bGVuZ3RoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92ZWN0b3Iu
c2l6ZSgpOworfQorCitpbmxpbmUgdm9pZCBWVFRSZWdpb25MaXN0OjpjbGVhcigpCit7CisgICAg
bV92ZWN0b3IuY2xlYXIoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WVFRSZWdpb25MaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVn
aW9uTGlzdC5pZGwKaW5kZXggNTM4MWQzOWM2NmYxY2ZjM2QwMjFiMWRjNDBlYzMyODE0MmM3YmNk
MS4uODQzMWQ4YjUxYjJhZDQwZDlhMDkxYjY3Y2I4NWZlNTA5NjA5YTg5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaWRsCkBAIC0xLDUgKzEsNiBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMTIgKzI1LDExIEBACiAgKi8KIAog
WwotICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogICAgIENvbmRpdGlvbmFsPVZJREVPX1RSQUNLLAog
ICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgTm9JbnRlcmZhY2VPYmplY3QsCiBd
IGludGVyZmFjZSBWVFRSZWdpb25MaXN0IHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBsZW5ndGg7Ci0gICAgZ2V0dGVyIFZUVFJlZ2lvbiBpdGVtKHVuc2lnbmVkIGxvbmcg
aW5kZXgpOwotICAgIFZUVFJlZ2lvbiBnZXRSZWdpb25CeUlkKERPTVN0cmluZyBpZCk7CisgICAg
Z2V0dGVyIFZUVFJlZ2lvbj8gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICBWVFRSZWdp
b24/IGdldFJlZ2lvbkJ5SWQoRE9NU3RyaW5nIGlkKTsKIH07Ci0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZpZGVvVHJhY2suY3BwCmluZGV4IGY4MGJjMTBhOGNjOGRlMjgyZDlmYWYzMTk0NmQ2
MWNkZTBjYmM0MzEuLjQwOTdlMTZiYTVmZTllNzZhZTI3MjU2MGYxODAyYTM1NDdlNzFmYTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcApAQCAtMSw2ICsxLDYgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
MzAsMTIgKzMwLDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlZp
ZGVvVHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotI2luY2x1ZGUgIlZpZGVv
VHJhY2suaCIKLQotI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVu
dC5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tMaXN0LmgiCiAKQEAgLTgxLDEwICs3OSwxMCBAQCBj
b25zdCBBdG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6OmNvbW1lbnRhcnlLZXl3b3JkKCkKICAgICBy
ZXR1cm4gY29tbWVudGFyeTsKIH0KIAotVmlkZW9UcmFjazo6VmlkZW9UcmFjayhWaWRlb1RyYWNr
Q2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0
ZSkKLSAgICA6IE1lZGlhVHJhY2tCYXNlKE1lZGlhVHJhY2tCYXNlOjpWaWRlb1RyYWNrLCB0cmFj
a1ByaXZhdGUtPmlkKCksIHRyYWNrUHJpdmF0ZS0+bGFiZWwoKSwgdHJhY2tQcml2YXRlLT5sYW5n
dWFnZSgpKQotICAgICwgbV9zZWxlY3RlZCh0cmFja1ByaXZhdGUtPnNlbGVjdGVkKCkpCi0gICAg
LCBtX2NsaWVudChjbGllbnQpCitWaWRlb1RyYWNrOjpWaWRlb1RyYWNrKFZpZGVvVHJhY2tDbGll
bnQmIGNsaWVudCwgVmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAgICA6IE1lZGlh
VHJhY2tCYXNlKE1lZGlhVHJhY2tCYXNlOjpWaWRlb1RyYWNrLCB0cmFja1ByaXZhdGUuaWQoKSwg
dHJhY2tQcml2YXRlLmxhYmVsKCksIHRyYWNrUHJpdmF0ZS5sYW5ndWFnZSgpKQorICAgICwgbV9z
ZWxlY3RlZCh0cmFja1ByaXZhdGUuc2VsZWN0ZWQoKSkKKyAgICAsIG1fY2xpZW50KCZjbGllbnQp
CiAgICAgLCBtX3ByaXZhdGUodHJhY2tQcml2YXRlKQogewogICAgIG1fcHJpdmF0ZS0+c2V0Q2xp
ZW50KHRoaXMpOwpAQCAtOTMsMTUgKzkxLDEyIEBAIFZpZGVvVHJhY2s6OlZpZGVvVHJhY2soVmlk
ZW9UcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPiB0CiAK
IFZpZGVvVHJhY2s6On5WaWRlb1RyYWNrKCkKIHsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudCgw
KTsKKyAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKIH0KIAotdm9pZCBWaWRlb1Ry
YWNrOjpzZXRQcml2YXRlKFBhc3NSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0
ZSkKK3ZvaWQgVmlkZW9UcmFjazo6c2V0UHJpdmF0ZShWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQ
cml2YXRlKQogewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIEFTU0VSVCh0cmFja1ByaXZh
dGUpOwotCi0gICAgaWYgKG1fcHJpdmF0ZSA9PSB0cmFja1ByaXZhdGUpCisgICAgaWYgKG1fcHJp
dmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3By
aXZhdGUtPnNldENsaWVudChudWxscHRyKTsKQEAgLTExNCwyMCArMTA5LDEyIEBAIHZvaWQgVmlk
ZW9UcmFjazo6c2V0UHJpdmF0ZShQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPiB0cmFja1By
aXZhdGUpCiAKIGJvb2wgVmlkZW9UcmFjazo6aXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSkgY29uc3QKIHsKLSAgICBpZiAodmFsdWUgPT0gYWx0ZXJuYXRpdmVLZXl3b3JkKCkp
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmICh2YWx1ZSA9PSBjYXB0aW9uc0tleXdvcmQo
KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKHZhbHVlID09IG1haW5LZXl3b3JkKCkp
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmICh2YWx1ZSA9PSBzaWduS2V5d29yZCgpKQot
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAodmFsdWUgPT0gc3VidGl0bGVzS2V5d29yZCgp
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAodmFsdWUgPT0gY29tbWVudGFyeUtleXdv
cmQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0
dXJuIHZhbHVlID09IGFsdGVybmF0aXZlS2V5d29yZCgpCisgICAgICAgIHx8IHZhbHVlID09IGNv
bW1lbnRhcnlLZXl3b3JkKCkKKyAgICAgICAgfHwgdmFsdWUgPT0gY2FwdGlvbnNLZXl3b3JkKCkK
KyAgICAgICAgfHwgdmFsdWUgPT0gbWFpbktleXdvcmQoKQorICAgICAgICB8fCB2YWx1ZSA9PSBz
aWduS2V5d29yZCgpCisgICAgICAgIHx8IHZhbHVlID09IHN1YnRpdGxlc0tleXdvcmQoKTsKIH0K
IAogdm9pZCBWaWRlb1RyYWNrOjpzZXRTZWxlY3RlZChjb25zdCBib29sIHNlbGVjdGVkKQpAQCAt
MTM5LDQ2ICsxMjYsNDQgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZXRTZWxlY3RlZChjb25zdCBib29s
IHNlbGVjdGVkKQogICAgIG1fcHJpdmF0ZS0+c2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOwogCiAgICAg
aWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdl
ZCh0aGlzKTsKKyAgICAgICAgbV9jbGllbnQtPnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoKnRo
aXMpOwogfQogCiBzaXplX3QgVmlkZW9UcmFjazo6aW5iYW5kVHJhY2tJbmRleCgpCiB7Ci0gICAg
QVNTRVJUKG1fcHJpdmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dHJhY2tJbmRleCgpOwog
fQogCi12b2lkIFZpZGVvVHJhY2s6OnNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrUHJpdmF0ZSog
dHJhY2tQcml2YXRlLCBib29sIHNlbGVjdGVkKQordm9pZCBWaWRlb1RyYWNrOjpzZWxlY3RlZENo
YW5nZWQoYm9vbCBzZWxlY3RlZCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwg
dHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOwog
fQogCi12b2lkIFZpZGVvVHJhY2s6OmlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1By
aXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCit2b2lkIFZpZGVvVHJhY2s6OmlkQ2hhbmdl
ZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2
YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRJZChpZCk7CiB9CiAKLXZv
aWQgVmlkZW9UcmFjazo6bGFiZWxDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkKK3ZvaWQgVmlkZW9UcmFjazo6bGFiZWxDaGFu
Z2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFj
a1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNldExhYmVsKGxhYmVs
KTsKIH0KIAotdm9pZCBWaWRlb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRlQmFz
ZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKQordm9pZCBWaWRl
b1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKIHsK
LSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0
ZSk7CiAgICAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2UpOwogfQogCi12b2lkIFZpZGVvVHJhY2s6Ondp
bGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlKQordm9pZCBWaWRlb1RyYWNr
Ojp3aWxsUmVtb3ZlKCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQ
cml2YXRlID09IG1fcHJpdmF0ZSk7Ci0gICAgbWVkaWFFbGVtZW50KCktPnJlbW92ZVZpZGVvVHJh
Y2soKnRoaXMpOworICAgIGF1dG8qIGVsZW1lbnQgPSBtZWRpYUVsZW1lbnQoKTsKKyAgICBpZiAo
IWVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKyAgICBlbGVtZW50LT5yZW1vdmVWaWRlb1RyYWNr
KCp0aGlzKTsKIH0KIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKIHZvaWQgVmlkZW9UcmFj
azo6c2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQpCiB7CiAgICAgLy8gMTAuMSBraW5k
LCBvbiBzZXR0aW5nOgpAQCAtMTkzLDcgKzE3OCw3IEBAIHZvaWQgVmlkZW9UcmFjazo6c2V0S2lu
ZChjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQpCiAgICAgLy8gMy4gSWYgdGhlIHNvdXJjZUJ1ZmZl
ciBhdHRyaWJ1dGUgb24gdGhpcyB0cmFjayBpcyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBhIHRhc2sg
dG8gZmlyZSBhIHNpbXBsZQogICAgIC8vIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCBzb3VyY2VCdWZm
ZXIudmlkZW9UcmFja3MuCiAgICAgaWYgKG1fc291cmNlQnVmZmVyKQotICAgICAgICBtX3NvdXJj
ZUJ1ZmZlci0+dmlkZW9UcmFja3MoKS0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOworICAgICAgICBt
X3NvdXJjZUJ1ZmZlci0+dmlkZW9UcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICAg
ICAvLyA0LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2Ug
YXQgdGhlIFZpZGVvVHJhY2tMaXN0IG9iamVjdCByZWZlcmVuY2VkIGJ5CiAgICAgLy8gdGhlIHZp
ZGVvVHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KQEAgLTIxMywxMiAr
MTk4LDEzIEBAIHZvaWQgVmlkZW9UcmFjazo6c2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5n
JiBsYW5ndWFnZSkKICAgICAvLyAzLiBJZiB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0
aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxl
CiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHNvdXJjZUJ1ZmZlci52aWRlb1RyYWNrcy4K
ICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVmZmVyLT52aWRlb1Ry
YWNrcygpLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CisgICAgICAgIG1fc291cmNlQnVmZmVyLT52
aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIC8vIDQuIFF1ZXVlIGEg
dGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCB0aGUgVmlkZW9UcmFj
a0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdmlkZW9UcmFja3MgYXR0cmli
dXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAgIG1lZGlhRWxlbWVudCgpLT52aWRlb1Ry
YWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgVmlkZW9U
cmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKCkKQEAgLTIyNiwyOSArMjEyLDI3IEBAIHZvaWQg
VmlkZW9UcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKCkKICAgICBzd2l0Y2ggKG1fcHJpdmF0
ZS0+a2luZCgpKSB7CiAgICAgY2FzZSBWaWRlb1RyYWNrUHJpdmF0ZTo6QWx0ZXJuYXRpdmU6CiAg
ICAgICAgIHNldEtpbmRJbnRlcm5hbChWaWRlb1RyYWNrOjphbHRlcm5hdGl2ZUtleXdvcmQoKSk7
Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBWaWRlb1RyYWNrUHJp
dmF0ZTo6Q2FwdGlvbnM6CiAgICAgICAgIHNldEtpbmRJbnRlcm5hbChWaWRlb1RyYWNrOjpjYXB0
aW9uc0tleXdvcmQoKSk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2Fz
ZSBWaWRlb1RyYWNrUHJpdmF0ZTo6TWFpbjoKICAgICAgICAgc2V0S2luZEludGVybmFsKFZpZGVv
VHJhY2s6Om1haW5LZXl3b3JkKCkpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2UgVmlkZW9UcmFja1ByaXZhdGU6OlNpZ246CiAgICAgICAgIHNldEtpbmRJbnRlcm5h
bChWaWRlb1RyYWNrOjpzaWduS2V5d29yZCgpKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJl
dHVybjsKICAgICBjYXNlIFZpZGVvVHJhY2tQcml2YXRlOjpTdWJ0aXRsZXM6CiAgICAgICAgIHNl
dEtpbmRJbnRlcm5hbChWaWRlb1RyYWNrOjpzdWJ0aXRsZXNLZXl3b3JkKCkpOwotICAgICAgICBi
cmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmlkZW9UcmFja1ByaXZhdGU6OkNvbW1l
bnRhcnk6CiAgICAgICAgIHNldEtpbmRJbnRlcm5hbChWaWRlb1RyYWNrOjpjb21tZW50YXJ5S2V5
d29yZCgpKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFZpZGVv
VHJhY2tQcml2YXRlOjpOb25lOgogICAgICAgICBzZXRLaW5kSW50ZXJuYWwoZW1wdHlTdHJpbmco
KSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaAppbmRleCBjNTJmOWIzYjEyZmM2OTY4OGRhN2ZkNjcw
MzM3MDFmYjFiODRmMzJjLi5lYmVlODI5ZTE2OThmYzFjMmIxM2M1YjBlMTBmYzk0OWRlZTJiNTRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaApAQCAtMSw2ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSwx
MiArMzksMTIgQEAgY2xhc3MgVmlkZW9UcmFjazsKIGNsYXNzIFZpZGVvVHJhY2tDbGllbnQgewog
cHVibGljOgogICAgIHZpcnR1YWwgflZpZGVvVHJhY2tDbGllbnQoKSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrKikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2smKSA9IDA7CiB9
OwogCi1jbGFzcyBWaWRlb1RyYWNrIGZpbmFsIDogcHVibGljIE1lZGlhVHJhY2tCYXNlLCBwdWJs
aWMgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQgeworY2xhc3MgVmlkZW9UcmFjayBmaW5hbCA6IHB1
YmxpYyBNZWRpYVRyYWNrQmFzZSwgcHJpdmF0ZSBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxWaWRlb1RyYWNrPiBjcmVhdGUoVmlkZW9UcmFja0NsaWVu
dCogY2xpZW50LCBQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCisg
ICAgc3RhdGljIFJlZjxWaWRlb1RyYWNrPiBjcmVhdGUoVmlkZW9UcmFja0NsaWVudCYgY2xpZW50
LCBWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogICAgIHsKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFjayhjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogICAgIH0K
QEAgLTU2LDQ4ICs1Niw0NiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmlu
ZyYgc2lnbktleXdvcmQoKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdWJ0aXRs
ZXNLZXl3b3JkKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29tbWVudGFyeUtl
eXdvcmQoKTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGRlZmF1bHRLaW5kS2V5d29yZCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGVtcHR5QXRvbTsgfQogCiAgICAgYm9vbCBzZWxlY3RlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0ZWQ7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0
ZWQoY29uc3QgYm9vbCk7CiAKLSAgICB2b2lkIGNsZWFyQ2xpZW50KCkgb3ZlcnJpZGUgeyBtX2Ns
aWVudCA9IDA7IH0KKyAgICB2b2lkIGNsZWFyQ2xpZW50KCkgZmluYWwgeyBtX2NsaWVudCA9IG51
bGxwdHI7IH0KICAgICBWaWRlb1RyYWNrQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBt
X2NsaWVudDsgfQogCiAgICAgc2l6ZV90IGluYmFuZFRyYWNrSW5kZXgoKTsKIAogI2lmIEVOQUJM
RShNRURJQV9TT1VSQ0UpCi0gICAgdm9pZCBzZXRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIG92
ZXJyaWRlOwotICAgIHZvaWQgc2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzZXRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZv
aWQgc2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CiAjZW5kaWYKIAogICAg
IGNvbnN0IE1lZGlhRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKCkgY29uc3Q7CiAKLSAgICB2b2lk
IHNldFByaXZhdGUoUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4pOwotCi1wcm90ZWN0ZWQ6
Ci0gICAgVmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxWaWRlb1RyYWNr
UHJpdmF0ZT4gcHJpdmF0ZVRyYWNrKTsKKyAgICB2b2lkIHNldFByaXZhdGUoVmlkZW9UcmFja1By
aXZhdGUmKTsKIAogcHJpdmF0ZToKLSAgICBib29sIGlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0
cmluZyYpIGNvbnN0IG92ZXJyaWRlOworICAgIFZpZGVvVHJhY2soVmlkZW9UcmFja0NsaWVudCYs
IFZpZGVvVHJhY2tQcml2YXRlJik7CisKKyAgICBib29sIGlzVmFsaWRLaW5kKGNvbnN0IEF0b21p
Y1N0cmluZyYpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8gVmlkZW9UcmFja1ByaXZhdGVDbGllbnQK
LSAgICB2b2lkIHNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrUHJpdmF0ZSosIGJvb2wpIG92ZXJy
aWRlOworICAgIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJvb2wpIGZpbmFsOwogCiAgICAgLy8gVHJh
Y2tQcml2YXRlQmFzZUNsaWVudAotICAgIHZvaWQgaWRDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2Uq
LCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIGxhYmVsQ2hhbmdlZChU
cmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYp
IG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbFJlbW92ZShUcmFja1ByaXZhdGVCYXNlKikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAg
dm9pZCBsYWJlbENoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBs
YW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCB3aWxs
UmVtb3ZlKCkgZmluYWw7CiAKLSAgICBib29sIGVuYWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBzZWxlY3RlZCgpOyB9CisgICAgYm9vbCBlbmFibGVkKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gc2VsZWN0ZWQoKTsgfQogCiAgICAgdm9pZCB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIAog
ICAgIGJvb2wgbV9zZWxlY3RlZDsKICAgICBWaWRlb1RyYWNrQ2xpZW50KiBtX2NsaWVudDsKIAot
ICAgIFJlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOworICAgIFJlZjxWaWRlb1Ry
YWNrUHJpdmF0ZT4gbV9wcml2YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDJjMTIzOTVmYTY2MWQxNWJiNTQ1MDg4
OTRmYzBhYWNkZDU1Y2U2ZTcuLjNiZDg4YjRmNjM5N2JmYTY2YWZiZTk2NmZiM2QzM2FkYWZhYTlh
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTEsNiArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA2IEVyaWMgU2VpZGVsIChlcmljQHdlYmtpdC5vcmcpCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgogICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25p
Y3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMTcyLDcgKzE3Miw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVD
aG9vc2VyPikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXIqKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGxvYWRJ
Y29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciYpIG92ZXJy
aWRlIHsgfQogCiAgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgTm9kZSopIG92ZXJyaWRl
IHsgfQogICAgIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9kZSopIG92ZXJyaWRlIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCmluZGV4IDAxODg5NDZlN2Q4ZGY0MjUyYzFl
ZDQ5NGFkN2E5OTE2NzY5MTE2OGIuLjQ3MzJhOTI1NTU3MmYxZjg2YmU5M2VkMTVmZjRkZTE2YmM5
MzAwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKQEAgLTEsNyArMSw3IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgUm9vcGVzaCBDaGFuZGVyIChyb29wQHJvb3BjLm5l
dCkKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTU3LDM4ICs1
Nyw1MCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBFTkFCTEUoQ09OVEVOVF9FWFRF
TlNJT05TKQotc3RhdGljIENvbnRlbnRFeHRlbnNpb25zOjpCbG9ja2VkU3RhdHVzIHByb2Nlc3ND
b250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgVVJM
JiB1cmwsIFJlc291cmNlVHlwZSByZXNvdXJjZVR5cGUpCisjaWYgIUVOQUJMRShDT05URU5UX0VY
VEVOU0lPTlMpCisKKy8vIFJldHVybnMgdHJ1ZSBpZiB3ZSBzaG91bGQgYmxvY2sgdGhlIGxvYWQu
CitzdGF0aWMgaW5saW5lIGJvb2wgcHJvY2Vzc0NvbnRlbnRFeHRlbnNpb25SdWxlc0ZvckxvYWQo
Y29uc3QgRnJhbWUmLCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZVR5cGUpCiB7Ci0gICAgaWYg
KERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IGZyYW1lLmxvYWRlcigpLmRvY3VtZW50
TG9hZGVyKCkpIHsKLSAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFtZS5wYWdlKCkpCi0gICAg
ICAgICAgICByZXR1cm4gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50
RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKHVybCwgcmVzb3VyY2VUeXBlLCAqZG9jdW1lbnRMb2FkZXIp
OwotICAgIH0KLSAgICByZXR1cm4geyB9OworICAgIHJldHVybiBmYWxzZTsKK30KKworI2Vsc2UK
KworLy8gUmV0dXJucyB0cnVlIGlmIHdlIHNob3VsZCBibG9jayB0aGUgbG9hZC4KK3N0YXRpYyBi
b29sIHByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKGNvbnN0IEZyYW1lJiBmcmFt
ZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlKQor
eworICAgIGF1dG8qIGRvY3VtZW50TG9hZGVyID0gZnJhbWUubG9hZGVyKCkuZG9jdW1lbnRMb2Fk
ZXIoKTsKKyAgICBpZiAoIWRvY3VtZW50TG9hZGVyKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgYXV0byogcGFnZSA9IGZyYW1lLnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBhdXRvIHN0YXR1cyA9IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlkZXIo
KS5wcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZChyZXF1ZXN0LnVybCgpLCByZXNv
dXJjZVR5cGUsICpkb2N1bWVudExvYWRlcik7CisgICAgYXBwbHlCbG9ja2VkU3RhdHVzVG9SZXF1
ZXN0KHN0YXR1cywgcmVxdWVzdCk7CisgICAgcmV0dXJuIHN0YXR1cy5ibG9ja2VkTG9hZDsKIH0K
KwogI2VuZGlmCiAKIHZvaWQgUGluZ0xvYWRlcjo6bG9hZEltYWdlKEZyYW1lJiBmcmFtZSwgY29u
c3QgVVJMJiB1cmwpCiB7Ci0gICAgaWYgKCFmcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdp
bigpLT5jYW5EaXNwbGF5KHVybCkpIHsKKyAgICBBU1NFUlQoZnJhbWUuZG9jdW1lbnQoKSk7Cisg
ICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUuZG9jdW1lbnQoKTsKKworICAgIGlmICghZG9jdW1l
bnQuc2VjdXJpdHlPcmlnaW4oKS0+Y2FuRGlzcGxheSh1cmwpKSB7CiAgICAgICAgIEZyYW1lTG9h
ZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQoJmZyYW1lLCB1cmwpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsKTsKLQotI2lmIEVOQUJM
RShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgYXV0byBibG9ja2VkU3RhdHVzID0gcHJvY2Vzc0Nv
bnRlbnRFeHRlbnNpb25SdWxlc0ZvckxvYWQoZnJhbWUsIHVybCwgUmVzb3VyY2VUeXBlOjpJbWFn
ZSk7Ci0gICAgYXBwbHlCbG9ja2VkU3RhdHVzVG9SZXF1ZXN0KGJsb2NrZWRTdGF0dXMsIHJlcXVl
c3QpOwotICAgIGlmIChibG9ja2VkU3RhdHVzLmJsb2NrZWRMb2FkKQorICAgIGlmIChwcm9jZXNz
Q29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZChmcmFtZSwgcmVxdWVzdCwgUmVzb3VyY2VUeXBl
OjpJbWFnZSkpCiAgICAgICAgIHJldHVybjsKLSNlbmRpZgogCi0gICAgaWYgKERvY3VtZW50KiBk
b2N1bWVudCA9IGZyYW1lLmRvY3VtZW50KCkpCi0gICAgICAgIGRvY3VtZW50LT5jb250ZW50U2Vj
dXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKHJlcXVlc3QsIENv
bnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CisgICAgZG9j
dW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJZk5l
ZWRlZChyZXF1ZXN0LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6
OkxvYWQpOwogCiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6
OkNhY2hlQ29udHJvbCwgIm1heC1hZ2U9MCIpOwotICAgIFN0cmluZyByZWZlcnJlciA9IFNlY3Vy
aXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVyKGZyYW1lLmRvY3VtZW50KCktPnJlZmVy
cmVyUG9saWN5KCksIHJlcXVlc3QudXJsKCksIGZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJy
ZXIoKSk7CisgICAgU3RyaW5nIHJlZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVm
ZXJyZXJIZWFkZXIoZG9jdW1lbnQucmVmZXJyZXJQb2xpY3koKSwgcmVxdWVzdC51cmwoKSwgZnJh
bWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKTsKICAgICBpZiAoIXJlZmVycmVyLmlzRW1w
dHkoKSkKICAgICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIocmVmZXJyZXIpOwogICAgIGZy
YW1lLmxvYWRlcigpLmFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJjZVJlcXVlc3QocmVxdWVzdCk7
CkBAIC05OSwxOSArMTExLDE3IEBAIHZvaWQgUGluZ0xvYWRlcjo6bG9hZEltYWdlKEZyYW1lJiBm
cmFtZSwgY29uc3QgVVJMJiB1cmwpCiAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2Vi
LWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9saW5rcy5odG1sI2h5cGVybGluay1hdWRpdGlu
Zwogdm9pZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcGlu
Z1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCkKIHsKKyAgICBBU1NFUlQoZnJhbWUuZG9j
dW1lbnQoKSk7CisKICAgICBpZiAoIXBpbmdVUkwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChwaW5nVVJMKTsK
LSAgICAKLSNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAgIGF1dG8gYmxvY2tlZFN0
YXR1cyA9IHByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKGZyYW1lLCBwaW5nVVJM
LCBSZXNvdXJjZVR5cGU6OlJhdyk7Ci0gICAgYXBwbHlCbG9ja2VkU3RhdHVzVG9SZXF1ZXN0KGJs
b2NrZWRTdGF0dXMsIHJlcXVlc3QpOwotICAgIGlmIChibG9ja2VkU3RhdHVzLmJsb2NrZWRMb2Fk
KQorICAgIGlmIChwcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZChmcmFtZSwgcmVx
dWVzdCwgUmVzb3VyY2VUeXBlOjpSYXcpKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYKIAotICAg
IGZyYW1lLmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1
cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdCwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3Vy
ZVJlcXVlc3RUeXBlOjpMb2FkKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9ICpmcmFtZS5kb2N1bWVu
dCgpOworICAgIGRvY3VtZW50LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1
cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdCwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3Vy
ZVJlcXVlc3RUeXBlOjpMb2FkKTsKIAogICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZCgiUE9TVCIp
OwogICAgIHJlcXVlc3Quc2V0SFRUUENvbnRlbnRUeXBlKCJ0ZXh0L3BpbmciKTsKQEAgLTExOSwx
NCArMTI5LDE0IEBAIHZvaWQgUGluZ0xvYWRlcjo6c2VuZFBpbmcoRnJhbWUmIGZyYW1lLCBjb25z
dCBVUkwmIHBpbmdVUkwsIGNvbnN0IFVSTCYgZGVzdGluYXRpCiAgICAgcmVxdWVzdC5zZXRIVFRQ
SGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNhY2hlQ29udHJvbCwgIm1heC1hZ2U9MCIpOwog
ICAgIGZyYW1lLmxvYWRlcigpLmFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJjZVJlcXVlc3QocmVx
dWVzdCk7CiAKLSAgICBTZWN1cml0eU9yaWdpbiogc291cmNlT3JpZ2luID0gZnJhbWUuZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKLSAgICBSZWY8U2VjdXJpdHlPcmlnaW4+IHBpbmdPcmln
aW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShwaW5nVVJMKSk7Ci0gICAgRnJhbWVMb2FkZXI6OmFk
ZEhUVFBPcmlnaW5JZk5lZWRlZChyZXF1ZXN0LCBzb3VyY2VPcmlnaW4tPnRvU3RyaW5nKCkpOwor
ICAgIEFTU0VSVChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpKTsKKyAgICBhdXRvJiBzb3VyY2VP
cmlnaW4gPSAqZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKTsKKyAgICBGcmFtZUxvYWRlcjo6YWRk
SFRUUE9yaWdpbklmTmVlZGVkKHJlcXVlc3QsIHNvdXJjZU9yaWdpbi50b1N0cmluZygpKTsKICAg
ICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UGluZ1RvLCBkZXN0
aW5hdGlvblVSTCk7CiAgICAgaWYgKCFTZWN1cml0eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVycmVy
KHBpbmdVUkwsIGZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSkpIHsKLSAgICAgICAg
cmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlBpbmdGcm9tLCBmcmFt
ZS5kb2N1bWVudCgpLT51cmwoKSk7Ci0gICAgICAgIGlmICghc291cmNlT3JpZ2luLT5pc1NhbWVT
Y2hlbWVIb3N0UG9ydCgmcGluZ09yaWdpbi5nZXQoKSkpIHsKLSAgICAgICAgICAgIFN0cmluZyBy
ZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVyKGZyYW1lLmRv
Y3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIHBpbmdVUkwsIGZyYW1lLmxvYWRlcigpLm91dGdv
aW5nUmVmZXJyZXIoKSk7CisgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpQaW5nRnJvbSwgZG9jdW1lbnQudXJsKCkpOworICAgICAgICBpZiAoIXNvdXJj
ZU9yaWdpbi5pc1NhbWVTY2hlbWVIb3N0UG9ydChTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHBpbmdV
UkwpLnB0cigpKSkgeworICAgICAgICAgICAgU3RyaW5nIHJlZmVycmVyID0gU2VjdXJpdHlQb2xp
Y3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIoZG9jdW1lbnQucmVmZXJyZXJQb2xpY3koKSwgcGlu
Z1VSTCwgZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKTsKICAgICAgICAgICAgIGlm
ICghcmVmZXJyZXIuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUFJl
ZmVycmVyKHJlZmVycmVyKTsKICAgICAgICAgfQpAQCAtMTM1LDE5ICsxNDUsMTYgQEAgdm9pZCBQ
aW5nTG9hZGVyOjpzZW5kUGluZyhGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcGluZ1VSTCwgY29u
c3QgVVJMJiBkZXN0aW5hdGkKICAgICBzdGFydFBpbmdMb2FkKGZyYW1lLCByZXF1ZXN0LCBTaG91
bGRGb2xsb3dSZWRpcmVjdHM6Olllcyk7CiB9CiAKLXZvaWQgUGluZ0xvYWRlcjo6c2VuZFZpb2xh
dGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBSZWZQdHI8Rm9y
bURhdGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBlIHJlcG9ydFR5cGUpCit2b2lkIFBp
bmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHJl
cG9ydFVSTCwgUmVmPEZvcm1EYXRhPiYmIHJlcG9ydCwgVmlvbGF0aW9uUmVwb3J0VHlwZSByZXBv
cnRUeXBlKQogewotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHJlcG9ydFVSTCk7CisgICAg
QVNTRVJUKGZyYW1lLmRvY3VtZW50KCkpOwogCi0jaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9O
UykKLSAgICBhdXRvIGJsb2NrZWRTdGF0dXMgPSBwcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVz
Rm9yTG9hZChmcmFtZSwgcmVwb3J0VVJMLCBSZXNvdXJjZVR5cGU6OlJhdyk7Ci0gICAgYXBwbHlC
bG9ja2VkU3RhdHVzVG9SZXF1ZXN0KGJsb2NrZWRTdGF0dXMsIHJlcXVlc3QpOwotICAgIGlmIChi
bG9ja2VkU3RhdHVzLmJsb2NrZWRMb2FkKQorICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHJl
cG9ydFVSTCk7CisgICAgaWYgKHByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKGZy
YW1lLCByZXF1ZXN0LCBSZXNvdXJjZVR5cGU6OlJhdykpCiAgICAgICAgIHJldHVybjsKLSNlbmRp
ZgogCi0gICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLmRvY3VtZW50KCkpCi0gICAg
ICAgIGRvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVx
dWVzdElmTmVlZGVkKHJlcXVlc3QsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1
ZXN0VHlwZTo6TG9hZCk7CisgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUuZG9jdW1lbnQoKTsK
KyAgICBkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVx
dWVzdElmTmVlZGVkKHJlcXVlc3QsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1
ZXN0VHlwZTo6TG9hZCk7CiAKICAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoQVNDSUlMaXRlcmFs
KCJQT1NUIikpOwogICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkoV1RGTW92ZShyZXBvcnQpKTsKQEAg
LTE2MSwxOCArMTY4LDE2IEBAIHZvaWQgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChG
cmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBSZWZQdHI8CiAgICAgfQogCiAgICAg
Ym9vbCByZW1vdmVDb29raWVzID0gdHJ1ZTsKLSAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0g
ZnJhbWUuZG9jdW1lbnQoKSkgewotICAgICAgICBpZiAoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5
T3JpZ2luID0gZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkpIHsKLSAgICAgICAgICAgIGlmIChz
ZWN1cml0eU9yaWdpbi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQoU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZShyZXBvcnRVUkwpLnB0cigpKSkKLSAgICAgICAgICAgICAgICByZW1vdmVDb29raWVzID0gZmFs
c2U7Ci0gICAgICAgIH0KKyAgICBpZiAoYXV0byogc2VjdXJpdHlPcmlnaW4gPSBkb2N1bWVudC5z
ZWN1cml0eU9yaWdpbigpKSB7CisgICAgICAgIGlmIChzZWN1cml0eU9yaWdpbi0+aXNTYW1lU2No
ZW1lSG9zdFBvcnQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShyZXBvcnRVUkwpLnB0cigpKSkKKyAg
ICAgICAgICAgIHJlbW92ZUNvb2tpZXMgPSBmYWxzZTsKICAgICB9CiAgICAgaWYgKHJlbW92ZUNv
b2tpZXMpCiAgICAgICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVzKGZhbHNlKTsKIAogICAgIGZy
YW1lLmxvYWRlcigpLmFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJjZVJlcXVlc3QocmVxdWVzdCk7
CiAKLSAgICBTdHJpbmcgcmVmZXJyZXIgPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJl
ckhlYWRlcihmcmFtZS5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGljeSgpLCByZXBvcnRVUkwsIGZy
YW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSk7CisgICAgU3RyaW5nIHJlZmVycmVyID0g
U2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIoZG9jdW1lbnQucmVmZXJyZXJQ
b2xpY3koKSwgcmVwb3J0VVJMLCBmcmFtZS5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpOwog
ICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgpKQogICAgICAgICByZXF1ZXN0LnNldEhUVFBSZWZl
cnJlcihyZWZlcnJlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5n
TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCmluZGV4IGNmNjU3
N2MzMzU2ZWEwNTgxYjUzOTE4OTE5OGZkZTg3NjRmYjk5MzcuLmIyOWU4ZGE4ZjgwOGE3YjA2MGU1
MDk3OGZjMmFlZDJjZTJkOGYxMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
aW5nTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaApAQCAt
MSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMSw3
ICszMiw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSw3ICs1MCw3
IEBAIGNsYXNzIFBpbmdMb2FkZXIgewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGxvYWRJbWFn
ZShGcmFtZSYsIGNvbnN0IFVSTCYpOwogICAgIHN0YXRpYyB2b2lkIHNlbmRQaW5nKEZyYW1lJiwg
Y29uc3QgVVJMJiBwaW5nVVJMLCBjb25zdCBVUkwmIGRlc3RpbmF0aW9uVVJMKTsKLSAgICBzdGF0
aWMgdm9pZCBzZW5kVmlvbGF0aW9uUmVwb3J0KEZyYW1lJiwgY29uc3QgVVJMJiByZXBvcnRVUkws
IFJlZlB0cjxGb3JtRGF0YT4mJiByZXBvcnQsIFZpb2xhdGlvblJlcG9ydFR5cGUpOworICAgIHN0
YXRpYyB2b2lkIHNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUmLCBjb25zdCBVUkwmIHJlcG9ydFVS
TCwgUmVmPEZvcm1EYXRhPiYmIHJlcG9ydCwgVmlvbGF0aW9uUmVwb3J0VHlwZSk7CiAKIHByaXZh
dGU6CiAgICAgZW51bSBjbGFzcyBTaG91bGRGb2xsb3dSZWRpcmVjdHMgeyBObywgWWVzIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggNWMwMjU0NGE1ZTdiZDNmMDZmYjFhYmFiMDFlZTI2Yzhh
MzQ0NmYzZS4uZDAxNWJhNDVhMzNhZWJjZTE3MjlkM2I5OWIyNTVmNTQ1MzAxZTc2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDcsIDIwMDksIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQogICogQ29weXJpZ2h0IChDKSAyMDEyLCBTYW1zdW5nIEVsZWN0cm9u
aWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTQzOCw3ICs0MzgsNyBAQCB2b2lkIENo
cm9tZTo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4g
ZmlsZUNob29zZXIpCiAgICAgbV9jbGllbnQucnVuT3BlblBhbmVsKGZyYW1lLCBmaWxlQ2hvb3Nl
cik7CiB9CiAKLXZvaWQgQ2hyb21lOjpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9hZGVyKiBsb2FkZXIpCit2b2lkIENocm9tZTo6bG9h
ZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxv
YWRlciYgbG9hZGVyKQogewogICAgIG1fY2xpZW50LmxvYWRJY29uRm9yRmlsZXMoZmlsZW5hbWVz
LCBsb2FkZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggZjJmMmIwYjFjM2MwYTlmM2EyNzVk
MTRmMDJkM2RjMWE4ZWRhNGVhMS4uZjIzODYwYTJiZGFmM2MyOTNlMDE5M2MyY2E0OTJiYTZhODhm
N2M1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgogICogQ29weXJpZ2h0IChDKSAyMDEyLCBTYW1zdW5nIEVsZWN0
cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTI4LDkgKzI4LDcgQEAKICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSNpZm5kZWYgX19PQkpD
X18KLWNsYXNzIE5TVmlldzsKLSNlbmRpZgorT0JKQ19DTEFTUyBOU1ZpZXc7CiAjZW5kaWYKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU5LDcgKzE1Nyw3IEBAIHB1YmxpYzoKICNlbmRpZgog
CiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPik7
Ci0gICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUlj
b25Mb2FkZXIqKTsKKyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mLCBGaWxlSWNvbkxvYWRlciYpOwogCiAgICAgdm9pZCBkaXNwYXRjaFZpZXdwb3J0UHJvcGVy
dGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYpIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA0NWZlYzU5OTgwNGU0M2U2ZTdkMTg5YTA4ZTZjZWI4
MDIyOWQzNmZkLi40MjFjZGE5YTE3NmY5YWNhMGE0NjExMGRiMmZhYTQwN2EwNjI0MDY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEyIEFwcGxlLCBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBs
ZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqIENvcHlyaWdodCAo
QykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAg
LTI3NSw3ICsyNzUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVs
KEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pID0gMDsKICAgICAvLyBBc3luY2hyb25v
dXMgcmVxdWVzdCB0byBsb2FkIGFuIGljb24gZm9yIHNwZWNpZmllZCBmaWxlbmFtZXMuCi0gICAg
dmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxl
SWNvbkxvYWRlciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJikgPSAwOwogICAgICAgICAKICAgICB2
aXJ0dWFsIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IE5vZGUqKSB7IH07CiAgICAgdmlydHVh
bCB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUqKSB7IH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCBjYjc4ZDA2YTdl
ZjE0M2YyNmVlNTQ5NjM5YjI0OTU2NWM0NmFhMDY4Li5mMDU5YjYwMTRjODRiN2ZhNGE3MzZmOTU0
YTg5MTMxNGFiNzNhNWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250
ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRl
bnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjI1LDggKzYyNSw4IEBAIHZvaWQgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9s
YXRlZERpcmVjCiAKICAgICBBU1NFUlQoIW1fZnJhbWUgfHwgZWZmZWN0aXZlVmlvbGF0ZWREaXJl
Y3RpdmUgPT0gQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXM6OmZyYW1lQW5jZXN0
b3JzKTsKIAotICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGlzPERvY3VtZW50PihtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50KCk7Ci0gICAgRnJhbWUqIGZyYW1lID0gZG9jdW1l
bnQuZnJhbWUoKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9IGlzPERvY3VtZW50PihtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAgYXV0byogZnJhbWUgPSBkb2N1bWVu
dC5mcmFtZSgpOwogICAgIEFTU0VSVCghbV9mcmFtZSB8fCBtX2ZyYW1lID09IGZyYW1lKTsKICAg
ICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC02NDYsMTMgKzY0NiwxNCBAQCB2b2lk
IENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZWZm
ZWN0aXZlVmlvbGF0ZWREaXJlYwogICAgIFN0cmluZyBvcmlnaW5hbFBvbGljeSA9IHZpb2xhdGVk
RGlyZWN0aXZlTGlzdC5oZWFkZXIoKTsKICAgICBTdHJpbmcgcmVmZXJyZXIgPSBkb2N1bWVudC5y
ZWZlcnJlcigpOwogICAgIEFTU0VSVChkb2N1bWVudC5sb2FkZXIoKSk7CisgICAgLy8gRklYTUU6
IElzIGl0IHBvbGljeSB0byBub3QgdXNlIHRoZSBzdGF0dXMgY29kZSBmb3IgSFRUUFMsIG9yIGlz
IHRoYXQgYSBidWc/CiAgICAgdW5zaWduZWQgc2hvcnQgc3RhdHVzQ29kZSA9IGRvY3VtZW50LnVy
bCgpLnByb3RvY29sSXMoImh0dHAiKSAmJiBkb2N1bWVudC5sb2FkZXIoKSA/IGRvY3VtZW50Lmxv
YWRlcigpLT5yZXNwb25zZSgpLmh0dHBTdGF0dXNDb2RlKCkgOiAwOwogCiAgICAgU3RyaW5nIHNv
dXJjZUZpbGU7CiAgICAgaW50IGxpbmVOdW1iZXIgPSAwOwogICAgIGludCBjb2x1bW5OdW1iZXIg
PSAwOwotICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrID0gY3JlYXRlU2NyaXB0Q2Fs
bFN0YWNrKEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCksIDIpOwotICAgIGNv
bnN0IFNjcmlwdENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2stPmZpcnN0Tm9uTmF0aXZlQ2Fs
bEZyYW1lKCk7CisgICAgYXV0byBzdGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhKU01haW5U
aHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCAyKTsKKyAgICBhdXRvKiBjYWxsRnJhbWUg
PSBzdGFjay0+Zmlyc3ROb25OYXRpdmVDYWxsRnJhbWUoKTsKICAgICBpZiAoY2FsbEZyYW1lICYm
IGNhbGxGcmFtZS0+bGluZU51bWJlcigpKSB7CiAgICAgICAgIHNvdXJjZUZpbGUgPSBzdHJpcFVS
TEZvclVzZUluUmVwb3J0KGRvY3VtZW50LCBVUkwoVVJMKCksIGNhbGxGcmFtZS0+c291cmNlVVJM
KCkpKTsKICAgICAgICAgbGluZU51bWJlciA9IGNhbGxGcmFtZS0+bGluZU51bWJlcigpOwpAQCAt
NjY1LDcgKzY2Niw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRp
b24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAgICAgZG9jdW1lbnQuZW5x
dWV1ZURvY3VtZW50RXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5zZWN1cml0eXBvbGljeXZpb2xhdGlvbkV2ZW50LCBjYW5CdWJibGUsIGNhbmNl
bGFibGUsIGRvY3VtZW50VVJJLCByZWZlcnJlciwgYmxvY2tlZFVSSSwgdmlvbGF0ZWREaXJlY3Rp
dmVUZXh0LCBlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZSwgb3JpZ2luYWxQb2xpY3ksIHNvdXJj
ZUZpbGUsIHN0YXR1c0NvZGUsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikpOwogCiAgICAgLy8g
Mi4gU2VuZCB2aW9sYXRpb24gcmVwb3J0IChpZiBhcHBsaWNhYmxlKS4KLSAgICBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgcmVwb3J0VVJJcyA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5yZXBvcnRVUklz
KCk7CisgICAgYXV0byYgcmVwb3J0VVJJcyA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5yZXBvcnRV
UklzKCk7CiAgICAgaWYgKHJlcG9ydFVSSXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAK
QEAgLTY5MywxMCArNjk0LDEwIEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRW
aW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAgICAgICAgIGNz
cFJlcG9ydC0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwoImNvbHVtbi1udW1iZXIiKSwgY29sdW1u
TnVtYmVyKTsKICAgICB9CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXBvcnRPYmpl
Y3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGF1dG8gcmVwb3J0T2JqZWN0ID0g
SW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKICAgICByZXBvcnRPYmplY3QtPnNldE9iamVjdChB
U0NJSUxpdGVyYWwoImNzcC1yZXBvcnQiKSwgV1RGTW92ZShjc3BSZXBvcnQpKTsKIAotICAgIFJl
ZlB0cjxGb3JtRGF0YT4gcmVwb3J0ID0gRm9ybURhdGE6OmNyZWF0ZShyZXBvcnRPYmplY3QtPnRv
SlNPTlN0cmluZygpLnV0ZjgoKSk7CisgICAgYXV0byByZXBvcnQgPSBGb3JtRGF0YTo6Y3JlYXRl
KHJlcG9ydE9iamVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgpKTsKICAgICBmb3IgKGNvbnN0IGF1
dG8mIHVybCA6IHJlcG9ydFVSSXMpCiAgICAgICAgIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25S
ZXBvcnQoKmZyYW1lLCBpczxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSA/IGRv
Y3VtZW50LmNvbXBsZXRlVVJMKHVybCkgOiBkb2N1bWVudC5jb21wbGV0ZVVSTCh1cmwsIGJsb2Nr
ZWRVUkwpLCByZXBvcnQuY29weVJlZigpLCBWaW9sYXRpb25SZXBvcnRUeXBlOjpDb250ZW50U2Vj
dXJpdHlQb2xpY3kpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQpp
bmRleCBiMTBmMmU5ZWI3OGQ1OWUwMjZiYmRiNGRmZDcwZTRkYTUzYjlhNDcwLi5mNjM1YWVkM2I5
N2YwMTI5ZmY5ZWE4M2QxNGM3OTFiYmU3NWY4YjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2Rl
bE1lZGlhRWxlbWVudC5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yOCwyNCArMjgsMjQgQEAKIAogI2lmIFBMQVRGT1JNKElPUykgfHwg
KFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKIAorI2lt
cG9ydCAiQXVkaW9UcmFja0xpc3QuaCIKKyNpbXBvcnQgIkV2ZW50LmgiCisjaW1wb3J0ICJFdmVu
dExpc3RlbmVyLmgiCisjaW1wb3J0ICJFdmVudE5hbWVzLmgiCisjaW1wb3J0ICJIVE1MRWxlbWVu
dC5oIgorI2ltcG9ydCAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgog
I2ltcG9ydCAiTWVkaWFDb250cm9sc0hvc3QuaCIKKyNpbXBvcnQgIlBhZ2UuaCIKKyNpbXBvcnQg
IlBhZ2VHcm91cC5oIgorI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKKyNpbXBvcnQgIlRleHRUcmFj
a0xpc3QuaCIKKyNpbXBvcnQgIlRpbWVSYW5nZXMuaCIKICNpbXBvcnQgIldlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9Db3JlQW5pbWF0aW9uLmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL0F1ZGlvVHJhY2tMaXN0Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0V2ZW50
Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0V2ZW50TGlzdGVuZXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUv
RXZlbnROYW1lcy5oPgotI2ltcG9ydCA8V2ViQ29yZS9IVE1MRWxlbWVudC5oPgotI2ltcG9ydCA8
V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KLSNp
bXBvcnQgPFdlYkNvcmUvUGFnZUdyb3VwLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5n
Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1RleHRUcmFja0xpc3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUv
VGltZVJhbmdlcy5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKLXVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXZWJQbGF5YmFja1Nlc3Np
b25Nb2RlbE1lZGlhRWxlbWVudDo6V2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQo
KQogICAgIDogRXZlbnRMaXN0ZW5lcihFdmVudExpc3RlbmVyOjpDUFBFdmVudExpc3RlbmVyVHlw
ZSkKQEAgLTIzMywxNyArMjMzLDggQEAgdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlh
RWxlbWVudDo6c2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBzZWxlY3QKICAgICBpZiAo
IW1fbWVkaWFFbGVtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoc2VsZWN0ZWRB
dWRpb0luZGV4IDwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7Ci0gICAgQXVk
aW9UcmFjayogc2VsZWN0ZWRBdWRpb1RyYWNrID0gbnVsbHB0cjsKLQotICAgIGZvciAoc2l6ZV90
IGluZGV4ID0gMDsgaW5kZXggPCBtX2F1ZGlvVHJhY2tzRm9yTWVudS5zaXplKCk7ICsraW5kZXgp
IHsKLSAgICAgICAgYXV0byYgYXVkaW9UcmFjayA9IG1fYXVkaW9UcmFja3NGb3JNZW51W2luZGV4
XTsKLSAgICAgICAgYXVkaW9UcmFjay0+c2V0RW5hYmxlZChpbmRleCA9PSBzdGF0aWNfY2FzdDxz
aXplX3Q+KHNlbGVjdGVkQXVkaW9JbmRleCkpOwotICAgICAgICBpZiAoYXVkaW9UcmFjay0+ZW5h
YmxlZCgpKQotICAgICAgICAgICAgc2VsZWN0ZWRBdWRpb1RyYWNrID0gYXVkaW9UcmFjay5nZXQo
KTsKLSAgICB9Ci0KLSAgICBtX21lZGlhRWxlbWVudC0+YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2Vk
KHNlbGVjdGVkQXVkaW9UcmFjayk7CisgICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBtX2F1
ZGlvVHJhY2tzRm9yTWVudS5zaXplKCk7IGkgPCBzaXplOyArK2kpCisgICAgICAgIG1fYXVkaW9U
cmFja3NGb3JNZW51W2ldLT5zZXRFbmFibGVkKGkgPT0gc2VsZWN0ZWRBdWRpb0luZGV4KTsKIH0K
IAogdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6c2VsZWN0TGVnaWJs
ZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQpAQCAtMjUxLDkgKzI0Miw3IEBAIHZvaWQgV2Vi
UGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnNlbGVjdExlZ2libGVNZWRpYU9wdGlv
bih1aW50NjRfdCBpbmRlCiAgICAgaWYgKCFtX21lZGlhRWxlbWVudCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgQVNTRVJUKGluZGV4IDwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgo
KSk7Ci0gICAgVGV4dFRyYWNrKiB0ZXh0VHJhY2sgPSBudWxscHRyOwotCisgICAgVGV4dFRyYWNr
KiB0ZXh0VHJhY2s7CiAgICAgaWYgKGluZGV4IDwgbV9sZWdpYmxlVHJhY2tzRm9yTWVudS5zaXpl
KCkpCiAgICAgICAgIHRleHRUcmFjayA9IG1fbGVnaWJsZVRyYWNrc0Zvck1lbnVbc3RhdGljX2Nh
c3Q8c2l6ZV90PihpbmRleCldLmdldCgpOwogICAgIGVsc2UKQEAgLTQ3MSw0ICs0NjAsNiBAQCBi
b29sIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Ojp3aXJlbGVzc1ZpZGVvUGxh
eWJhY2tEaXNhYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fbWVkaWFFbGVtZW50ICYmIG1fbWVk
aWFFbGVtZW50LT5tZWRpYVNlc3Npb24oKS53aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgq
bV9tZWRpYUVsZW1lbnQpOwogfQogCit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmgKaW5kZXggM2JjOTdlZDcw
MmFiMDRhZGJlMTQxNWFkZjliZTM1Mjk4ZGZhZGRkYi4uNzEwZDE3MDIwNWE1YWM5ZTBkZDBmNDli
YzM1NjM1ZWE4YTBlMzMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotI2lmbmRlZiBBdWRpb1RyYWNrUHJpdmF0ZV9oCi0jZGVmaW5lIEF1ZGlvVHJhY2tQ
cml2YXRlX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZS5oIgog
CkBAIC0zNiw3ICszNSw3IEBAIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOwogCiBjbGFzcyBBdWRp
b1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1
YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlZENoYW5nZWQoQXVkaW9UcmFja1ByaXZhdGUq
LCBib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGVuYWJsZWRDaGFuZ2VkKGJvb2wpID0gMDsK
IH07CiAKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlIDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2Ug
ewpAQCAtNTUsMjYgKzU0LDIyIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgbV9lbmFibGVkID0gZW5hYmxlZDsKICAgICAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICAg
ICAgbV9jbGllbnQtPmVuYWJsZWRDaGFuZ2VkKHRoaXMsIGVuYWJsZWQpOwotICAgIH07Ci0gICAg
dmlydHVhbCBib29sIGVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2VuYWJsZWQ7IH0KKyAgICAg
ICAgICAgIG1fY2xpZW50LT5lbmFibGVkQ2hhbmdlZChlbmFibGVkKTsKKyAgICB9CisKKyAgICBi
b29sIGVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2VuYWJsZWQ7IH0KIAogICAgIGVudW0gS2lu
ZCB7IEFsdGVybmF0aXZlLCBEZXNjcmlwdGlvbiwgTWFpbiwgTWFpbkRlc2MsIFRyYW5zbGF0aW9u
LCBDb21tZW50YXJ5LCBOb25lIH07CiAgICAgdmlydHVhbCBLaW5kIGtpbmQoKSBjb25zdCB7IHJl
dHVybiBOb25lOyB9CiAKIHByb3RlY3RlZDoKLSAgICBBdWRpb1RyYWNrUHJpdmF0ZSgpCi0gICAg
ICAgIDogbV9jbGllbnQoMCkKLSAgICAgICAgLCBtX2VuYWJsZWQoZmFsc2UpCi0gICAgewotICAg
IH0KKyAgICBBdWRpb1RyYWNrUHJpdmF0ZSgpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAgICBB
dWRpb1RyYWNrUHJpdmF0ZUNsaWVudCogbV9jbGllbnQ7Ci0gICAgYm9vbCBtX2VuYWJsZWQ7Cisg
ICAgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OworICAgIGJv
b2wgbV9lbmFibGVkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaAppbmRleCA3NjBmNjc5
ZDEzNTBhNzE5MDA0NDcwYTdjYjdhNzQxN2E4YmM0OTE1Li45YTExMDc5YmJlNDI4MTRlNjRhMDY2
MGUyZmFmYTM5MDIxNDBhMGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjMsOCArMjMsOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEluYmFuZFRleHRU
cmFja1ByaXZhdGVDbGllbnRfaAotI2RlZmluZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50
X2gKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAi
Q29sb3IuaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlLmgiCkBAIC0zNCw4ICszNSw2IEBA
CiAjaW5jbHVkZSAiU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24uaCIKICNlbmRpZgog
Ci0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEluYmFuZFRleHRUcmFja1ByaXZhdGU7CkBAIC00Myw5ICs0Miw3IEBAIGNsYXNzIElTT1dlYlZU
VEN1ZTsKIAogY2xhc3MgR2VuZXJpY0N1ZURhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxHZW5lcmlj
Q3VlRGF0YT4gewogcHVibGljOgotCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8R2VuZXJpY0N1ZURh
dGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW5lcmljQ3VlRGF0YSgpKTsgfQot
ICAgIHZpcnR1YWwgfkdlbmVyaWNDdWVEYXRhKCkgeyB9CisgICAgc3RhdGljIFJlZjxHZW5lcmlj
Q3VlRGF0YT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBHZW5lcmljQ3VlRGF0YSk7
IH0KIAogICAgIE1lZGlhVGltZSBzdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0VGlt
ZTsgfQogICAgIHZvaWQgc2V0U3RhcnRUaW1lKGNvbnN0IE1lZGlhVGltZSYgc3RhcnRUaW1lKSB7
IG1fc3RhcnRUaW1lID0gc3RhcnRUaW1lOyB9CkBAIC01MywxMSArNTAsMTEgQEAgcHVibGljOgog
ICAgIE1lZGlhVGltZSBlbmRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9lbmRUaW1lOyB9CiAgICAg
dm9pZCBzZXRFbmRUaW1lKGNvbnN0IE1lZGlhVGltZSYgZW5kVGltZSkgeyBtX2VuZFRpbWUgPSBl
bmRUaW1lOyB9CiAKLSAgICBTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9Ci0gICAg
dm9pZCBzZXRJZChTdHJpbmcgaWQpIHsgbV9pZCA9IGlkOyB9CisgICAgY29uc3QgU3RyaW5nJiBp
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAgICB2b2lkIHNldElkKGNvbnN0IFN0cmluZyYg
aWQpIHsgbV9pZCA9IGlkOyB9CiAKLSAgICBTdHJpbmcgY29udGVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fY29udGVudDsgfQotICAgIHZvaWQgc2V0Q29udGVudChTdHJpbmcgY29udGVudCkgeyBtX2Nv
bnRlbnQgPSBjb250ZW50OyB9CisgICAgY29uc3QgU3RyaW5nJiBjb250ZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9jb250ZW50OyB9CisgICAgdm9pZCBzZXRDb250ZW50KGNvbnN0IFN0cmluZyYgY29u
dGVudCkgeyBtX2NvbnRlbnQgPSBjb250ZW50OyB9CiAKICAgICBkb3VibGUgbGluZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbGluZTsgfQogICAgIHZvaWQgc2V0TGluZShkb3VibGUgbGluZSkgeyBtX2xp
bmUgPSBsaW5lOyB9CkBAIC02OCwxNyArNjUsMTIgQEAgcHVibGljOgogICAgIGRvdWJsZSBzaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgdm9pZCBzZXRTaXplKGRvdWJsZSBzaXpl
KSB7IG1fc2l6ZSA9IHNpemU7IH0KIAotICAgIGVudW0gQWxpZ25tZW50IHsKLSAgICAgICAgTm9u
ZSwKLSAgICAgICAgU3RhcnQsCi0gICAgICAgIE1pZGRsZSwKLSAgICAgICAgRW5kCi0gICAgfTsK
KyAgICBlbnVtIEFsaWdubWVudCB7IE5vbmUsIFN0YXJ0LCBNaWRkbGUsIEVuZCB9OwogICAgIEFs
aWdubWVudCBhbGlnbigpIGNvbnN0IHsgcmV0dXJuIG1fYWxpZ247IH0KICAgICB2b2lkIHNldEFs
aWduKEFsaWdubWVudCBhbGlnbikgeyBtX2FsaWduID0gYWxpZ247IH0KIAotICAgIFN0cmluZyBm
b250TmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udE5hbWU7IH0KLSAgICB2b2lkIHNldEZvbnRO
YW1lKFN0cmluZyBmb250TmFtZSkgeyBtX2ZvbnROYW1lID0gZm9udE5hbWU7IH0KKyAgICBjb25z
dCBTdHJpbmcmIGZvbnROYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mb250TmFtZTsgfQorICAgIHZv
aWQgc2V0Rm9udE5hbWUoY29uc3QgU3RyaW5nJiBmb250TmFtZSkgeyBtX2ZvbnROYW1lID0gZm9u
dE5hbWU7IH0KIAogICAgIGRvdWJsZSBiYXNlRm9udFNpemUoKSBjb25zdCB7IHJldHVybiBtX2Jh
c2VGb250U2l6ZTsgfQogICAgIHZvaWQgc2V0QmFzZUZvbnRTaXplKGRvdWJsZSBiYXNlRm9udFNp
emUpIHsgbV9iYXNlRm9udFNpemUgPSBiYXNlRm9udFNpemU7IH0KQEAgLTk1LDQzICs4NywzMCBA
QCBwdWJsaWM6CiAgICAgY29uc3QgQ29sb3ImIGhpZ2hsaWdodENvbG9yKCkgY29uc3QgeyByZXR1
cm4gbV9oaWdobGlnaHRDb2xvcjsgfQogICAgIHZvaWQgc2V0SGlnaGxpZ2h0Q29sb3IoY29uc3Qg
Q29sb3ImIGNvbG9yKSB7IG1faGlnaGxpZ2h0Q29sb3IgPSBjb2xvcjsgfQogCi0gICAgZW51bSBT
dGF0dXMgewotICAgICAgICBVbmluaXRpYWxpemVkLAotICAgICAgICBQYXJ0aWFsLAotICAgICAg
ICBDb21wbGV0ZSwKLSAgICB9OworICAgIGVudW0gU3RhdHVzIHsgVW5pbml0aWFsaXplZCwgUGFy
dGlhbCwgQ29tcGxldGUgfTsKICAgICBTdGF0dXMgc3RhdHVzKCkgeyByZXR1cm4gbV9zdGF0dXM7
IH0KICAgICB2b2lkIHNldFN0YXR1cyhTdGF0dXMgc3RhdHVzKSB7IG1fc3RhdHVzID0gc3RhdHVz
OyB9CiAKICAgICBib29sIGRvZXNFeHRlbmRDdWVEYXRhKGNvbnN0IEdlbmVyaWNDdWVEYXRhJikg
Y29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgR2VuZXJpY0N1ZURhdGEoKQotICAgICAgICA6IG1fbGlu
ZSgtMSkKLSAgICAgICAgLCBtX3Bvc2l0aW9uKC0xKQotICAgICAgICAsIG1fc2l6ZSgtMSkKLSAg
ICAgICAgLCBtX2FsaWduKE5vbmUpCi0gICAgICAgICwgbV9iYXNlRm9udFNpemUoMCkKLSAgICAg
ICAgLCBtX3JlbGF0aXZlRm9udFNpemUoMCkKLSAgICAgICAgLCBtX3N0YXR1cyhVbmluaXRpYWxp
emVkKQotICAgIHsKLSAgICB9CisgICAgR2VuZXJpY0N1ZURhdGEoKSA9IGRlZmF1bHQ7CiAKICAg
ICBNZWRpYVRpbWUgbV9zdGFydFRpbWU7CiAgICAgTWVkaWFUaW1lIG1fZW5kVGltZTsKICAgICBT
dHJpbmcgbV9pZDsKICAgICBTdHJpbmcgbV9jb250ZW50OwotICAgIGRvdWJsZSBtX2xpbmU7Ci0g
ICAgZG91YmxlIG1fcG9zaXRpb247Ci0gICAgZG91YmxlIG1fc2l6ZTsKLSAgICBBbGlnbm1lbnQg
bV9hbGlnbjsKKyAgICBkb3VibGUgbV9saW5lIHsgLTEgfTsKKyAgICBkb3VibGUgbV9wb3NpdGlv
biB7IC0xIH07CisgICAgZG91YmxlIG1fc2l6ZSB7IC0xIH07CisgICAgQWxpZ25tZW50IG1fYWxp
Z24geyBOb25lIH07CiAgICAgU3RyaW5nIG1fZm9udE5hbWU7Ci0gICAgZG91YmxlIG1fYmFzZUZv
bnRTaXplOwotICAgIGRvdWJsZSBtX3JlbGF0aXZlRm9udFNpemU7CisgICAgZG91YmxlIG1fYmFz
ZUZvbnRTaXplIHsgMCB9OworICAgIGRvdWJsZSBtX3JlbGF0aXZlRm9udFNpemUgeyAwIH07CiAg
ICAgQ29sb3IgbV9mb3JlZ3JvdW5kQ29sb3I7CiAgICAgQ29sb3IgbV9iYWNrZ3JvdW5kQ29sb3I7
CiAgICAgQ29sb3IgbV9oaWdobGlnaHRDb2xvcjsKLSAgICBTdGF0dXMgbV9zdGF0dXM7CisgICAg
U3RhdHVzIG1fc3RhdHVzIHsgVW5pbml0aWFsaXplZCB9OwogfTsKIAogaW5saW5lIGJvb2wgR2Vu
ZXJpY0N1ZURhdGE6OmRvZXNFeHRlbmRDdWVEYXRhKGNvbnN0IEdlbmVyaWNDdWVEYXRhJiBvdGhl
cikgY29uc3QKQEAgLTE2OCwyNCArMTQ3LDIzIEBAIGNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZh
dGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZUNsaWVudCB7CiBwdWJsaWM6CiAgICAg
dmlydHVhbCB+SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCgpIHsgfQogCi0gICAgdmlydHVh
bCB2b2lkIGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGlt
ZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBj
b25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9pZCosIHVuc2lnbmVkKSA9IDA7CiAKICNpZiBF
TkFCTEUoREFUQUNVRV9WQUxVRSkKLSAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YUN1ZShJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1l
JiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+LCBjb25z
dCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZURhdGFDdWUoSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYg
ZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPikgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBj
b25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxT
ZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwg
UmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiYmLCBjb25zdCBTdHJpbmcmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFy
dCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9u
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYg
c3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRh
dGlvbiYpID0gMDsKICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lkIGFkZEdlbmVyaWNDdWUoSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZSosIFBhc3NSZWZQdHI8R2VuZXJpY0N1ZURhdGE+KSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSos
IEdlbmVyaWNDdWVEYXRhKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVHZW5lcmljQ3Vl
KEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBHZW5lcmljQ3VlRGF0YSopID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgYWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpID0gMDsKIAotICAgIHZpcnR1
YWwgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFN0
cmluZyYmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNl
V2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgY2hhciogZGF0YSwg
dW5zaWduZWQgbGVuZ3RoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0
YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNPV2ViVlRUQ3VlJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3RyaW5nJiYpIHsgQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0
IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYXJz
ZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJikgPSAwOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oCmluZGV4IDA4ZTYyYzM0
ODYyYWRkOTRmYTA4NGI0MjVjNTg3YWE0ZmJkMzY0YmQuLjdhYzVkZDI3NWJhYTU3YjBhYWU4YmU1
NTA4Nzg3NmZmMTE5MWUwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yOCwyMSArMjgsMTcgQEAK
ICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwotI2lmbmRlZiBTb3VyY2VCdWZm
ZXJQcml2YXRlX2gKLSNkZWZpbmUgU291cmNlQnVmZmVyUHJpdmF0ZV9oCisKKyNwcmFnbWEgb25j
ZQogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgi
Ci0jaW5jbHVkZSAiVGltZVJhbmdlcy5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0j
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1l
ZGlhU2FtcGxlOwogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDsKLWNsYXNzIFRpbWVS
YW5nZXM7CiAKIGNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxT
b3VyY2VCdWZmZXJQcml2YXRlPiB7CiBwdWJsaWM6CkBAIC01OCwxNyArNTQsMTYgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZSkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGZsdXNoKEF0b21pY1N0cmluZykgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4sIEF0
b21pY1N0cmluZykgeyB9Ci0gICAgdmlydHVhbCBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhB
dG9taWNTdHJpbmcpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGZsdXNoKGNv
bnN0IEF0b21pY1N0cmluZyYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBlbnF1ZXVlU2FtcGxlKFJl
ZjxNZWRpYVNhbXBsZT4mJiwgY29uc3QgQXRvbWljU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCBi
b29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmKSB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCkgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpIHsgfQotICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJp
bmcpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wQXNraW5nRm9yTW9yZVNhbXBsZXMoY29uc3Qg
QXRvbWljU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFk
eUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYpIHsgfQogCi0gICAgdmlydHVhbCBW
ZWN0b3I8U3RyaW5nPiBlbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKEF0b21pY1N0cmluZykgeyBy
ZXR1cm4ge307IH0KKyAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGVucXVldWVkU2FtcGxlc0Zv
clRyYWNrSUQoY29uc3QgQXRvbWljU3RyaW5nJikgeyByZXR1cm4geyB9OyB9CiB9OwogCiB9CiAK
ICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmgKaW5kZXggMjk0YWQ2NWY0NjMz
NWRmMDY5MTUzZjRhY2IzOTcwM2JmMWM5ZjBmMi4uMTgwODdkNWUzZDI2Y2ExMWRiYTBmNjg3MzAw
ZDg2OTY4ODBiNWNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwxMiArMzIsMTEgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlOwogY2xh
c3MgQXVkaW9UcmFja1ByaXZhdGU7Ci1jbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIElu
YmFuZFRleHRUcmFja1ByaXZhdGU7CiBjbGFzcyBNZWRpYVNhbXBsZTsKIGNsYXNzIE1lZGlhRGVz
Y3JpcHRpb247CitjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIAogY2xhc3MgU291cmNlQnVmZmVy
UHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6CkBAIC02NCwyMyArNjMsMTkgQEAgcHVibGljOgogICAg
ICAgICB9OwogICAgICAgICBWZWN0b3I8VGV4dFRyYWNrSW5mb3JtYXRpb24+IHRleHRUcmFja3M7
CiAgICAgfTsKLSAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJ
bml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IEluaXRpYWxp
emF0aW9uU2VnbWVudCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVTYW1wbGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIE1lZGlhU2FtcGxlJikgPSAw
OwotICAgIHZpcnR1YWwgYm9vbCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oY29uc3QgU291
cmNlQnVmZmVyUHJpdmF0ZSopIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgc291cmNlQnVm
ZmVyUHJpdmF0ZUhhc1ZpZGVvKGNvbnN0IFNvdXJjZUJ1ZmZlclByaXZhdGUqKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6
YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUm
KSA9IDA7CisgICAgdmlydHVhbCBib29sIHNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCkg
Y29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNv
bWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBdG9taWNTdHJpbmcg
dHJhY2tJRCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVj
b21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpID0gMDsK
IAotICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVG
b3JNZWRpYVRpbWUoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgdGltZSwg
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJikgeyByZXR1cm4gdGltZTsgfQotICAg
IHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGltZShTb3VyY2VCdWZmZXJQ
cml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJikgeyB9OworICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNv
dXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1l
JiB0aW1lLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmKSB7IHJldHVybiB0aW1l
OyB9CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKGNvbnN0
IE1lZGlhVGltZSYpIHsgfTsKIAotICAgIGVudW0gQXBwZW5kUmVzdWx0IHsKLSAgICAgICAgQXBw
ZW5kU3VjY2VlZGVkLAotICAgICAgICBSZWFkU3RyZWFtRmFpbGVkLAotICAgICAgICBQYXJzaW5n
RmFpbGVkLAotICAgIH07Ci0gICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBl
bmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXBwZW5kUmVzdWx0KSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3Io
U291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvY0NvZGUpID0gMDsKKyAgICBlbnVtIEFwcGVu
ZFJlc3VsdCB7IEFwcGVuZFN1Y2NlZWRlZCwgUmVhZFN0cmVhbUZhaWxlZCwgUGFyc2luZ0ZhaWxl
ZCB9OworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUo
QXBwZW5kUmVzdWx0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoaW50IGVycm9yQ29kZSkgPSAwOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFz
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5o
CmluZGV4IDczMWFhOGQ5MzZhNWFhZWEwZDFjMDNhYTY4YTJhYzZiMmIyYjllNjQuLjBiMDBjYTVm
NjYxNTQ5NjI4NTFjM2VjN2Y5MTY4MzA0OGI4NmJmNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNlLmgKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBDYWJsZSBUZWxldmlzaW9uIExhYnMsIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI1LDM0ICsyNSwyOSBA
QAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFRyYWNrUHJpdmF0ZUJhc2VfaAotI2Rl
ZmluZSBUcmFja1ByaXZhdGVCYXNlX2gKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQogCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFU
aW1lLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAotI2lmIEVOQUJM
RShWSURFT19UUkFDSykKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBUcmFja1ByaXZh
dGVCYXNlOwotCiBjbGFzcyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5UcmFja1ByaXZhdGVCYXNlQ2xpZW50KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGlk
Q2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0b21p
Y1N0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJp
dmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHdp
bGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaWRDaGFu
Z2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGFiZWxDaGFu
Z2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGFuZ3VhZ2VD
aGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJl
bW92ZSgpID0gMDsKIH07CiAKIGNsYXNzIFRyYWNrUHJpdmF0ZUJhc2UgOiBwdWJsaWMgUmVmQ291
bnRlZDxUcmFja1ByaXZhdGVCYXNlPiB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVHJhY2tQ
cml2YXRlQmFzZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFRyYWNrUHJpdmF0ZUJhc2UpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIHZpcnR1YWwgflRyYWNrUHJpdmF0ZUJhc2UoKSB7IH0KKyAgICB2aXJ0dWFs
IH5UcmFja1ByaXZhdGVCYXNlKCkgPSBkZWZhdWx0OwogCiAgICAgdmlydHVhbCBUcmFja1ByaXZh
dGVCYXNlQ2xpZW50KiBjbGllbnQoKSBjb25zdCA9IDA7CiAKQEAgLTYzLDE4ICs1OCwxNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBpbnQgdHJhY2tJbmRleCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0K
IAogICAgIHZpcnR1YWwgTWVkaWFUaW1lIHN0YXJ0VGltZVZhcmlhbmNlKCkgY29uc3QgeyByZXR1
cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOyB9Ci0gICAgCisKICAgICB2b2lkIHdpbGxCZVJlbW92
ZWQoKQogICAgIHsKLSAgICAgICAgaWYgKFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQqIGNsaWVudCA9
IHRoaXMtPmNsaWVudCgpKQotICAgICAgICAgICAgY2xpZW50LT53aWxsUmVtb3ZlKHRoaXMpOwor
ICAgICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpCisgICAgICAgICAgICBj
bGllbnQtPndpbGxSZW1vdmUoKTsKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICBUcmFja1ByaXZh
dGVCYXNlKCkgeyB9CisgICAgVHJhY2tQcml2YXRlQmFzZSgpID0gZGVmYXVsdDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCmluZGV4IGZlZDM0
OWE3YjM3MjhmNTAyN2M4MmU3YTEwYzM1MjdkMGY1OTM1ZGQuLmY5NDUzMzU2N2ZmMmJiMzA1Njhl
ODExM2Q0NzVkOGU4NjE1MDcxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywyOSArMjMsMjEgQEAKICAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAotI2lmbmRlZiBWaWRlb1RyYWNrUHJpdmF0ZV9oCi0jZGVmaW5lIFZpZGVv
VHJhY2tQcml2YXRlX2gKLQotI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZUJhc2UuaCIKKyNwcmFnbWEg
b25jZQogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Cisj
aW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZS5oIgogCi1jbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsK
K25hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQgOiBw
dWJsaWMgVHJhY2tQcml2YXRlQmFzZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lk
IHNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrUHJpdmF0ZSosIGJvb2wpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJvb2wpID0gMDsKIH07CiAKIGNsYXNzIFZpZGVvVHJh
Y2tQcml2YXRlIDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2UgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBWaWRlb1RyYWNrUHJpdmF0ZSgpKTsKLSAgICB9Ci0KICAgICB2
b2lkIHNldENsaWVudChWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50
ID0gY2xpZW50OyB9CiAgICAgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKQEAgLTU1LDI2ICs0NywyMSBAQCBwdWJs
aWM6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1fc2VsZWN0ZWQgPSBzZWxlY3RlZDsK
ICAgICAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICAgICAgbV9jbGllbnQtPnNlbGVjdGVkQ2hh
bmdlZCh0aGlzLCBtX3NlbGVjdGVkKTsKLSAgICB9OworICAgICAgICAgICAgbV9jbGllbnQtPnNl
bGVjdGVkQ2hhbmdlZChtX3NlbGVjdGVkKTsKKyAgICB9CiAgICAgdmlydHVhbCBib29sIHNlbGVj
dGVkKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3RlZDsgfQogCiAgICAgZW51bSBLaW5kIHsgQWx0
ZXJuYXRpdmUsIENhcHRpb25zLCBNYWluLCBTaWduLCBTdWJ0aXRsZXMsIENvbW1lbnRhcnksIE5v
bmUgfTsKICAgICB2aXJ0dWFsIEtpbmQga2luZCgpIGNvbnN0IHsgcmV0dXJuIE5vbmU7IH0KIAog
cHJvdGVjdGVkOgotICAgIFZpZGVvVHJhY2tQcml2YXRlKCkKLSAgICAgICAgOiBtX2NsaWVudCgw
KQotICAgICAgICAsIG1fc2VsZWN0ZWQoZmFsc2UpCi0gICAgewotICAgIH0KKyAgICBWaWRlb1Ry
YWNrUHJpdmF0ZSgpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAgICBWaWRlb1RyYWNrUHJpdmF0
ZUNsaWVudCogbV9jbGllbnQ7Ci0gICAgYm9vbCBtX3NlbGVjdGVkOworICAgIFZpZGVvVHJhY2tQ
cml2YXRlQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKKyAgICBib29sIG1fc2VsZWN0ZWQg
eyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0F1ZGlvVHJhY2tQcml2YXRlQVZGLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFja1ByaXZhdGVBVkYuaAppbmRleCAxMzFmZDUxYjRj
MTY5MzQwOGI0ZjhhNGI1OTZlYjI2ZmJkNmQyOTZiLi4xOWI1NjBiY2NiYTU4MTk1Y2U0NWVmNmVm
ODFjOGRjZGVjMjk1YmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFja1ByaXZhdGVBVkYuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFja1ByaXZhdGVBVkYu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8K
IAotI2lmbmRlZiBBdWRpb1RyYWNrUHJpdmF0ZUFWRl9oCi0jZGVmaW5lIEF1ZGlvVHJhY2tQcml2
YXRlQVZGX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCkBAIC0z
NSw3ICszNCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRl
QVZGIDogcHVibGljIEF1ZGlvVHJhY2tQcml2YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShBdWRpb1RyYWNrUHJpdmF0ZUFWRikKIHB1YmxpYzoKLQogICAgIHZpcnR1YWwgS2luZCBraW5k
KCkgY29uc3QgeyByZXR1cm4gbV9raW5kOyB9CiAgICAgdmlydHVhbCBBdG9taWNTdHJpbmcgaWQo
KSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAgICAgdmlydHVhbCBBdG9taWNTdHJpbmcgbGFiZWwo
KSBjb25zdCB7IHJldHVybiBtX2xhYmVsOyB9CkBAIC00NCwyNiArNDIsMjAgQEAgcHVibGljOgog
CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRLaW5kKEtpbmQga2luZCkgeyBtX2tpbmQgPSBraW5k
OyB9Ci0gICAgdm9pZCBzZXRJZChBdG9taWNTdHJpbmcgbmV3SWQpIHsgbV9pZCA9IG5ld0lkOyB9
Ci0gICAgdm9pZCBzZXRMYWJlbChBdG9taWNTdHJpbmcgbGFiZWwpIHsgbV9sYWJlbCA9IGxhYmVs
OyB9Ci0gICAgdm9pZCBzZXRMYW5ndWFnZShBdG9taWNTdHJpbmcgbGFuZ3VhZ2UpIHsgbV9sYW5n
dWFnZSA9IGxhbmd1YWdlOyB9CisgICAgdm9pZCBzZXRJZChjb25zdCBBdG9taWNTdHJpbmcmIG5l
d0lkKSB7IG1faWQgPSBuZXdJZDsgfQorICAgIHZvaWQgc2V0TGFiZWwoY29uc3QgQXRvbWljU3Ry
aW5nJiBsYWJlbCkgeyBtX2xhYmVsID0gbGFiZWw7IH0KKyAgICB2b2lkIHNldExhbmd1YWdlKGNv
bnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpIHsgbV9sYW5ndWFnZSA9IGxhbmd1YWdlOyB9CiAg
ICAgdm9pZCBzZXRUcmFja0luZGV4KGludCBpbmRleCkgeyBtX2luZGV4ID0gaW5kZXg7IH0KIAot
ICAgIEtpbmQgbV9raW5kOworICAgIEtpbmQgbV9raW5kIHsgTm9uZSB9OwogICAgIEF0b21pY1N0
cmluZyBtX2lkOwogICAgIEF0b21pY1N0cmluZyBtX2xhYmVsOwogICAgIEF0b21pY1N0cmluZyBt
X2xhbmd1YWdlOwotICAgIGludCBtX2luZGV4OworICAgIGludCBtX2luZGV4IHsgMCB9OwogCi0g
ICAgQXVkaW9UcmFja1ByaXZhdGVBVkYoKQotICAgICAgICA6IG1fa2luZChOb25lKQotICAgICAg
ICAsIG1faW5kZXgoMCkKLSAgICB7Ci0gICAgfQorICAgIEF1ZGlvVHJhY2tQcml2YXRlQVZGKCkg
PSBkZWZhdWx0OwogfTsKIAogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKQotCi0j
ZW5kaWYgLy8gQXVkaW9UcmFja1ByaXZhdGVBVkZfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNr
UHJpdmF0ZUFWRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcAppbmRleCA5YzZjYTg3
YjBjMGY5MDA2NzExN2Y0NDJkM2U2NmQ5NDEzM2FmMTQwLi5iNDliZDFlMzdmMGM3ZDA2YTllYjM4
YmNkMGMxYzNjMGJjMzg3OTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5i
YW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDkgKzI0LDkgQEAKICAq
LwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5iYW5kTWV0YWRhdGFUZXh0VHJh
Y2tQcml2YXRlQVZGLmgiCiAKICNpZiBFTkFCTEUoVklERU8pICYmIEVOQUJMRShEQVRBQ1VFX1ZB
TFVFKSAmJiAoVVNFKEFWRk9VTkRBVElPTikgfHwgUExBVEZPUk0oSU9TKSkKLSNpbmNsdWRlICJJ
bmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuaCIKIAogI2luY2x1ZGUgIkluYmFuZFRl
eHRUcmFja1ByaXZhdGVDbGllbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC01NCw2ICs1
NCw3IEBAIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6fkluYmFuZE1ldGFkYXRh
VGV4dFRyYWNrUHJpdmF0ZUFWRigpCiB9CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKKwog
dm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OmFkZERhdGFDdWUoY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFs
aXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBycEN1ZURhdGEsIGNvbnN0IFN0cmluZyYgdHlw
ZSkKIHsKICAgICBBU1NFUlQoY3VlRm9ybWF0KCkgPT0gRGF0YSk7CkBAIC02Niw3ICs2Nyw3IEBA
IHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjphZGREYXRhQ3VlKGNvbnN0
IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0CiAgICAgbV9jdXJyZW50Q3VlU3RhcnRUaW1lID0gc3Rh
cnQ7CiAgICAgaWYgKGVuZC5pc1Bvc2l0aXZlSW5maW5pdGUoKSkKICAgICAgICAgbV9pbmNvbXBs
ZXRlQ3Vlcy5hcHBlbmQoSW5jb21wbGV0ZU1ldGFEYXRhQ3VlIHsgY3VlRGF0YS5nZXQoKSwgc3Rh
cnQgfSk7Ci0gICAgY2xpZW50KCktPmFkZERhdGFDdWUodGhpcywgc3RhcnQsIGVuZCwgY3VlRGF0
YSwgdHlwZSk7CisgICAgY2xpZW50KCktPmFkZERhdGFDdWUoc3RhcnQsIGVuZCwgY3VlRGF0YS5y
ZWxlYXNlTm9uTnVsbCgpLCB0eXBlKTsKIH0KIAogdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFj
a1ByaXZhdGVBVkY6OnVwZGF0ZVBlbmRpbmdDdWVFbmRUaW1lcyhjb25zdCBNZWRpYVRpbWUmIHRp
bWUpCkBAIC03Nyw3ICs3OCw3IEBAIHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRl
QVZGOjp1cGRhdGVQZW5kaW5nQ3VlRW5kVGltZXMoY29uc3QgTWVkaWFUaW1lCiAgICAgICAgIGlm
IChjbGllbnQoKSkgewogICAgICAgICAgICAgZm9yIChhdXRvJiBwYXJ0aWFsQ3VlIDogbV9pbmNv
bXBsZXRlQ3VlcykgewogICAgICAgICAgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZE1ldGFkYXRh
VGV4dFRyYWNrUHJpdmF0ZUFWRjo6dXBkYXRlUGVuZGluZ0N1ZUVuZFRpbWVzKCVwKSAtIHVwZGF0
aW5nIGN1ZTogc3RhcnQ9JXMsIGVuZD0lcyIsIHRoaXMsIHRvU3RyaW5nKHBhcnRpYWxDdWUuc3Rh
cnRUaW1lKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpKTsKLSAg
ICAgICAgICAgICAgICBjbGllbnQoKS0+dXBkYXRlRGF0YUN1ZSh0aGlzLCBwYXJ0aWFsQ3VlLnN0
YXJ0VGltZSwgdGltZSwgcGFydGlhbEN1ZS5jdWVEYXRhKTsKKyAgICAgICAgICAgICAgICBjbGll
bnQoKS0+dXBkYXRlRGF0YUN1ZShwYXJ0aWFsQ3VlLnN0YXJ0VGltZSwgdGltZSwgKnBhcnRpYWxD
dWUuY3VlRGF0YSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UKQEAgLTg2
LDYgKzg3LDcgQEAgdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OnVwZGF0
ZVBlbmRpbmdDdWVFbmRUaW1lcyhjb25zdCBNZWRpYVRpbWUKICAgICBtX2luY29tcGxldGVDdWVz
LnJlc2l6ZSgwKTsKICAgICBtX2N1cnJlbnRDdWVTdGFydFRpbWUgPSBNZWRpYVRpbWU6Onplcm9U
aW1lKCk7CiB9CisKICNlbmRpZgogCiB2b2lkIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0
ZUFWRjo6Zmx1c2hQYXJ0aWFsQ3VlcygpCkBAIC05NSw3ICs5Nyw3IEBAIHZvaWQgSW5iYW5kTWV0
YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjpmbHVzaFBhcnRpYWxDdWVzKCkKIAogICAgIGlmIChj
bGllbnQoKSkgewogICAgICAgICBmb3IgKGF1dG8mIHBhcnRpYWxDdWUgOiBtX2luY29tcGxldGVD
dWVzKQotICAgICAgICAgICAgY2xpZW50KCktPnJlbW92ZURhdGFDdWUodGhpcywgcGFydGlhbEN1
ZS5zdGFydFRpbWUsIE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKSwgcGFydGlhbEN1
ZS5jdWVEYXRhKTsKKyAgICAgICAgICAgIGNsaWVudCgpLT5yZW1vdmVEYXRhQ3VlKHBhcnRpYWxD
dWUuc3RhcnRUaW1lLCBNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5pdGVUaW1lKCksICpwYXJ0aWFs
Q3VlLmN1ZURhdGEpOwogICAgIH0KIAogICAgIG1faW5jb21wbGV0ZUN1ZXMucmVzaXplKDApOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCmluZGV4
IDNiN2JkYTg2NmQyZTYwZDkzMmViOGU2MDk2ZWY4YTkzMzM3YzY2YzAuLjk1OTZmOGNhM2MxN2U0
NWRmY2UxOGQ3YWQwMjRlMGM1MWQ1MmQwZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEyLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwxMSArMjQsMTEgQEAKICAqLwogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5o
IgogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEFWRk9VTkRBVElPTikgfHwgUExBVEZPUk0o
SU9TKSkKIAotI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCIKLQorI2luY2x1
ZGUgIkNvcmVNZWRpYVNvZnRMaW5rLmgiCiAjaW5jbHVkZSAiSVNPVlRUQ3VlLmgiCiAjaW5jbHVk
ZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
QEAgLTQzLDEyICs0Myw2IEBACiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMu
aD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAotI2luY2x1ZGUgIkNvcmVN
ZWRpYVNvZnRMaW5rLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotY2xhc3MgQXJyYXlCdWZmZXI7Ci19
Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQVZGSW5iYW5kVHJhY2tQYXJlbnQ6On5BVkZJbmJh
bmRUcmFja1BhcmVudCgpCkBAIC0zMjMsMzMgKzMxNywzMyBAQCB2b2lkIEluYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRyaWJ1dGVkU3RyaW5ncyhDRkFycmF5UmVmIGF0dHJpYnV0
ZWRTdAogewogICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nl
c3NDdWUgLSAlbGkgY3VlcyBhdCB0aW1lICVzXG4iLCBhdHRyaWJ1dGVkU3RyaW5ncyA/IENGQXJy
YXlHZXRDb3VudChhdHRyaWJ1dGVkU3RyaW5ncykgOiAwLCB0b1N0cmluZyh0aW1lKS51dGY4KCku
ZGF0YSgpKTsKIAotICAgIFZlY3RvcjxSZWZQdHI8R2VuZXJpY0N1ZURhdGE+PiBhcnJpdmluZ0N1
ZXM7CisgICAgVmVjdG9yPFJlZjxHZW5lcmljQ3VlRGF0YT4+IGFycml2aW5nQ3VlczsKICAgICBp
ZiAoYXR0cmlidXRlZFN0cmluZ3MpIHsKICAgICAgICAgQ0ZJbmRleCBjb3VudCA9IENGQXJyYXlH
ZXRDb3VudChhdHRyaWJ1dGVkU3RyaW5ncyk7CiAgICAgICAgIGZvciAoQ0ZJbmRleCBpID0gMDsg
aSA8IGNvdW50OyBpKyspIHsKICAgICAgICAgICAgIENGQXR0cmlidXRlZFN0cmluZ1JlZiBhdHRy
aWJ1dGVkU3RyaW5nID0gc3RhdGljX2Nhc3Q8Q0ZBdHRyaWJ1dGVkU3RyaW5nUmVmPihDRkFycmF5
R2V0VmFsdWVBdEluZGV4KGF0dHJpYnV0ZWRTdHJpbmdzLCBpKSk7Ci0gICAgICAgICAgICAKKwog
ICAgICAgICAgICAgaWYgKCFhdHRyaWJ1dGVkU3RyaW5nIHx8ICFDRkF0dHJpYnV0ZWRTdHJpbmdH
ZXRMZW5ndGgoYXR0cmlidXRlZFN0cmluZykpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIFJlZlB0cjxHZW5lcmljQ3VlRGF0YT4gY3VlRGF0YSA9
IEdlbmVyaWNDdWVEYXRhOjpjcmVhdGUoKTsKLSAgICAgICAgICAgIHByb2Nlc3NDdWVBdHRyaWJ1
dGVzKGF0dHJpYnV0ZWRTdHJpbmcsICpjdWVEYXRhLmdldCgpKTsKKworICAgICAgICAgICAgYXV0
byBjdWVEYXRhID0gR2VuZXJpY0N1ZURhdGE6OmNyZWF0ZSgpOworICAgICAgICAgICAgcHJvY2Vz
c0N1ZUF0dHJpYnV0ZXMoYXR0cmlidXRlZFN0cmluZywgY3VlRGF0YS5nZXQoKSk7CiAgICAgICAg
ICAgICBpZiAoIWN1ZURhdGEtPmNvbnRlbnQoKS5sZW5ndGgoKSkKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgYXJyaXZpbmdDdWVzLmFwcGVuZChj
dWVEYXRhKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBjdWVEYXRhLT5zZXRTdGFydFRp
bWUodGltZSk7CiAgICAgICAgICAgICBjdWVEYXRhLT5zZXRFbmRUaW1lKE1lZGlhVGltZTo6cG9z
aXRpdmVJbmZpbml0ZVRpbWUoKSk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgLy8gQVZG
b3VuZGF0aW9uIGN1ZSAicG9zaXRpb24iIGlzIHRvIHRoZSBjZW50ZXIgb2YgdGhlIHRleHQgc28g
YWRqdXN0IHJlbGF0aXZlIHRvIHRoZSBlZGdlIGJlY2F1c2Ugd2Ugd2lsbCB1c2UgaXQgdG8KICAg
ICAgICAgICAgIC8vIHNldCBDU1MgImxlZnQiLgogICAgICAgICAgICAgaWYgKGN1ZURhdGEtPnBv
c2l0aW9uKCkgPj0gMCAmJiBjdWVEYXRhLT5zaXplKCkgPiAwKQogICAgICAgICAgICAgICAgIGN1
ZURhdGEtPnNldFBvc2l0aW9uKGN1ZURhdGEtPnBvc2l0aW9uKCkgLSBjdWVEYXRhLT5zaXplKCkg
LyAyKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlKCVwKSAtIGNvbnNpZGVyaW5nIGN1ZSAoXCIlc1wi
KSBmb3IgdGltZSA9ICVzLCBwb3NpdGlvbiA9ICAlLjJmLCBsaW5lID0gICUuMmYiLCB0aGlzLCBj
dWVEYXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoY3VlRGF0YS0+c3RhcnRU
aW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEtPnBvc2l0aW9uKCksIGN1ZURhdGEtPmxpbmUo
KSk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgY3VlRGF0YS0+c2V0U3RhdHVzKEdlbmVy
aWNDdWVEYXRhOjpQYXJ0aWFsKTsKKworICAgICAgICAgICAgYXJyaXZpbmdDdWVzLmFwcGVuZChX
VEZNb3ZlKGN1ZURhdGEpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMzYwLDE3ICszNTQsMTcg
QEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQXR0cmlidXRlZFN0cmlu
Z3MoQ0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3QKICAgICAgICAgaWYgKG1fY3VycmVudEN1ZUVuZFRp
bWUgPj0gbV9jdXJyZW50Q3VlU3RhcnRUaW1lKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIGN1
ZURhdGEgOiBtX2N1ZXMpIHsKICAgICAgICAgICAgICAgICAvLyBTZWUgaWYgb25lIG9mIHRoZSBu
ZXdseS1hcnJpdmVkIGN1ZXMgaXMgYW4gZXh0ZW5zaW9uIG9mIHRoaXMgY3VlLgotICAgICAgICAg
ICAgICAgIFZlY3RvcjxSZWZQdHI8R2VuZXJpY0N1ZURhdGE+PiBub25FeHRlbnNpb25DdWVzOwor
ICAgICAgICAgICAgICAgIFZlY3RvcjxSZWY8R2VuZXJpY0N1ZURhdGE+PiBub25FeHRlbnNpb25D
dWVzOwogICAgICAgICAgICAgICAgIGZvciAoYXV0byYgYXJyaXZpbmdDdWUgOiBhcnJpdmluZ0N1
ZXMpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFhcnJpdmluZ0N1ZS0+ZG9lc0V4dGVuZEN1
ZURhdGEoKmN1ZURhdGEpKQotICAgICAgICAgICAgICAgICAgICAgICAgbm9uRXh0ZW5zaW9uQ3Vl
cy5hcHBlbmQoYXJyaXZpbmdDdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgbm9uRXh0ZW5z
aW9uQ3Vlcy5hcHBlbmQoV1RGTW92ZShhcnJpdmluZ0N1ZSkpOwogICAgICAgICAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBMT0coTWVkaWEsICJJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlKCVwKSAtIGZvdW5kIGFuIGV4dGVuc2lvbiBjdWUgKFwi
JXNcIikgZm9yIHRpbWUgPSAlLjJmLCBlbmQgPSAlLjJmLCBwb3NpdGlvbiA9ICAlLjJmLCBsaW5l
ID0gICUuMmYiLCB0aGlzLCBhcnJpdmluZ0N1ZS0+Y29udGVudCgpLnV0ZjgoKS5kYXRhKCksIGFy
cml2aW5nQ3VlLT5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBhcnJpdmluZ0N1ZS0+ZW5kVGltZSgp
LnRvRG91YmxlKCksIGFycml2aW5nQ3VlLT5wb3NpdGlvbigpLCBhcnJpdmluZ0N1ZS0+bGluZSgp
KTsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBib29sIGN1cnJlbnRDdWVJ
c0V4dGVuZGVkID0gKGFycml2aW5nQ3Vlcy5zaXplKCkgIT0gbm9uRXh0ZW5zaW9uQ3Vlcy5zaXpl
KCkpOwogCi0gICAgICAgICAgICAgICAgYXJyaXZpbmdDdWVzID0gbm9uRXh0ZW5zaW9uQ3VlczsK
KyAgICAgICAgICAgICAgICBhcnJpdmluZ0N1ZXMgPSBXVEZNb3ZlKG5vbkV4dGVuc2lvbkN1ZXMp
OwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Q3VlSXNFeHRl
bmRlZCkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CkBAIC0zODAsNyArMzc0LDcgQEAg
dm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQXR0cmlidXRlZFN0cmluZ3Mo
Q0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3QKICAgICAgICAgICAgICAgICAgICAgY3VlRGF0YS0+c2V0
U3RhdHVzKEdlbmVyaWNDdWVEYXRhOjpDb21wbGV0ZSk7CiAKICAgICAgICAgICAgICAgICAgICAg
TE9HKE1lZGlhLCAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSglcCkgLSB1
cGRhdGluZyBjdWUgXCIlc1wiOiBzdGFydD0lLjJmLCBlbmQ9JS4yZiIsIHRoaXMsIGN1ZURhdGEt
PmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLT5zdGFydFRpbWUoKS50b0RvdWJsZSgp
LCBtX2N1cnJlbnRDdWVFbmRUaW1lLnRvRG91YmxlKCkpOwotICAgICAgICAgICAgICAgICAgICBj
bGllbnQoKS0+dXBkYXRlR2VuZXJpY0N1ZSh0aGlzLCBjdWVEYXRhLmdldCgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgY2xpZW50KCktPnVwZGF0ZUdlbmVyaWNDdWUoKmN1ZURhdGEpOwogICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gYXNz
dW1lIHRoYXQgdGhlIGltcGxpY2l0IGR1cmF0aW9uIGlzIGludmFsaWQgZm9yIGN1ZXMgZGVsaXZl
cmVkIGR1cmluZyBhIHNlZWsgYmVjYXVzZSB0aGUgQVZGIGRlY29kZSBwaXBlbGluZSBtYXkgbm90
CiAgICAgICAgICAgICAgICAgICAgIC8vIHNlZSBldmVyeSBjdWUsIHNvIERPIE5PVCB1cGRhdGUg
Y3VlIGR1cmF0aW9uIHdoaWxlIHNlZWtpbmcuCkBAIC0zOTksMTIgKzM5MywxMSBAQCB2b2lkIElu
YmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRyaWJ1dGVkU3RyaW5ncyhDRkFycmF5
UmVmIGF0dHJpYnV0ZWRTdAogICAgIG1fY3VycmVudEN1ZVN0YXJ0VGltZSA9IHRpbWU7CiAKICAg
ICBmb3IgKGF1dG8mIGN1ZURhdGEgOiBhcnJpdmluZ0N1ZXMpIHsKLQotICAgICAgICBtX2N1ZXMu
YXBwZW5kKGN1ZURhdGEpOworICAgICAgICBtX2N1ZXMuYXBwZW5kKGN1ZURhdGEucHRyKCkpOwog
ICAgICAgICAKICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6
cHJvY2Vzc0N1ZSglcCkgLSBhZGRpbmcgY3VlIFwiJXNcIiBmb3IgdGltZSA9ICUuMmYsIGVuZCA9
ICUuMmYsIHBvc2l0aW9uID0gICUuMmYsIGxpbmUgPSAgJS4yZiIsIHRoaXMsIGN1ZURhdGEtPmNv
bnRlbnQoKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLT5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBj
dWVEYXRhLT5lbmRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS0+cG9zaXRpb24oKSwgY3VlRGF0
YS0+bGluZSgpKTsKIAotICAgICAgICBjbGllbnQoKS0+YWRkR2VuZXJpY0N1ZSh0aGlzLCBXVEZN
b3ZlKGN1ZURhdGEpKTsKKyAgICAgICAgY2xpZW50KCktPmFkZEdlbmVyaWNDdWUoV1RGTW92ZShj
dWVEYXRhKSk7CiAgICAgfQogCiAgICAgbV9wZW5kaW5nQ3VlU3RhdHVzID0gc2Vla2luZygpID8g
RGVsaXZlcmVkRHVyaW5nU2VlayA6IFZhbGlkOwpAQCAtNDUxLDkgKzQ0NCw5IEBAIHZvaWQgSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cmVzZXRDdWVWYWx1ZXMoKQogICAgIGlmIChtX2N1cnJl
bnRDdWVFbmRUaW1lICYmIG1fY3Vlcy5zaXplKCkpCiAgICAgICAgIExPRyhNZWRpYSwgIkluYmFu
ZFRleHRUcmFja1ByaXZhdGVBVkY6OnJlc2V0Q3VlVmFsdWVzIGZsdXNoaW5nIGRhdGEgZm9yIGN1
ZXM6IHN0YXJ0PSVzXG4iLCB0b1N0cmluZyhtX2N1cnJlbnRDdWVTdGFydFRpbWUpLnV0ZjgoKS5k
YXRhKCkpOwogCi0gICAgaWYgKGNsaWVudCgpKSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9jdWVzLnNpemUoKTsgaSsrKQotICAgICAgICAgICAgY2xpZW50KCktPnJlbW92ZUdl
bmVyaWNDdWUodGhpcywgbV9jdWVzW2ldLmdldCgpKTsKKyAgICBpZiAoYXV0byogY2xpZW50ID0g
dGhpcy0+Y2xpZW50KCkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBjdWUgOiBtX2N1ZXMpCisgICAg
ICAgICAgICBjbGllbnQtPnJlbW92ZUdlbmVyaWNDdWUoKmN1ZSk7CiAgICAgfQogCiAgICAgbV9j
dWVzLnJlc2l6ZSgwKTsKQEAgLTUwOSw3ICs1MDIsNyBAQCB2b2lkIEluYmFuZFRleHRUcmFja1By
aXZhdGVBVkY6OnByb2Nlc3NOYXRpdmVTYW1wbGVzKENGQXJyYXlSZWYgbmF0aXZlU2FtcGxlcywg
YwogICAgICAgICAgICAgTE9HKE1lZGlhLCAiICAgIGlkID0gXCIlc1wiLCBzZXR0aW5ncyA9IFwi
JXNcIiwgY3VlIHRleHQgPSBcIiVzXCIiLCBjdWVEYXRhLmlkKCkudXRmOCgpLmRhdGEoKSwgY3Vl
RGF0YS5zZXR0aW5ncygpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEuY3VlVGV4dCgpLnV0ZjgoKS5k
YXRhKCkpOwogICAgICAgICAgICAgTE9HKE1lZGlhLCAiICAgIHNvdXJjZUlEID0gXCIlc1wiLCBv
cmlnaW5hbFN0YXJ0VGltZSA9IFwiJXNcIiIsIGN1ZURhdGEuc291cmNlSUQoKS51dGY4KCkuZGF0
YSgpLCBjdWVEYXRhLm9yaWdpbmFsU3RhcnRUaW1lKCkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICAg
ICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEN1ZURhdGEodGhpcywgY3VlRGF0YSk7CisgICAg
ICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRDdWVEYXRhKGN1ZURhdGEpOwogICAgICAgICB9
CiAKICAgICAgICAgZG8gewpAQCAtNTQyLDcgKzUzNSw3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWRjo6cHJvY2Vzc05hdGl2ZVNhbXBsZXMoQ0ZBcnJheVJlZiBuYXRpdmVTYW1wbGVz
LCBjCiAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kKCJcblxuIik7CiAKICAgICAgICAgICAgIExP
RyhNZWRpYSwgIiAgICB2dHQgaGVhZGVyID0gXG4lcyIsIGhlYWRlci50b1N0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOwotICAgICAgICAgICAgY2xpZW50KCktPnBhcnNlV2ViVlRURmlsZUhlYWRlcih0
aGlzLCBoZWFkZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJW
VFRGaWxlSGVhZGVyKGhlYWRlci50b1N0cmluZygpKTsKICAgICAgICAgICAgIG1faGF2ZVJlcG9y
dGVkVlRUSGVhZGVyID0gdHJ1ZTsKICAgICAgICAgfSB3aGlsZSAoMCk7CiAKQEAgLTU1NSw3ICs1
NDgsNyBAQCBib29sIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnJlYWROYXRpdmVTYW1wbGVC
dWZmZXIoQ0ZBcnJheVJlZiBuYXRpdmVTYW1wbGVzLAogI2lmIE9TKFdJTkRPV1MpICYmIEhBVkUo
QVZDRlBMQVlFUklURU1fQ0FMTEJBQ0tfVkVSU0lPTl8yKQogICAgIHJldHVybiBmYWxzZTsKICNl
bHNlCi0gICAgQ01TYW1wbGVCdWZmZXJSZWYgY29uc3Qgc2FtcGxlQnVmZmVyID0gcmVpbnRlcnBy
ZXRfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oY29uc3RfY2FzdDx2b2lkKj4oQ0ZBcnJheUdldFZh
bHVlQXRJbmRleChuYXRpdmVTYW1wbGVzLCBpbmRleCkpKTsKKyAgICBDTVNhbXBsZUJ1ZmZlclJl
ZiBzYW1wbGVCdWZmZXIgPSByZWludGVycHJldF9jYXN0PENNU2FtcGxlQnVmZmVyUmVmPihjb25z
dF9jYXN0PHZvaWQqPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KG5hdGl2ZVNhbXBsZXMsIGluZGV4
KSkpOwogICAgIGlmICghc2FtcGxlQnVmZmVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9W
aWRlb1RyYWNrUHJpdmF0ZUFWRi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL1ZpZGVvVHJhY2tQcml2YXRlQVZGLmgKaW5kZXggODU4ZjQxYzYxOGVhZjc5
NGUzZTY1MWQwNDE2YTA1MGVkZjE4YTVhYi4uYTNmMGY0ZWNhMDU3M2RkODJmYjk0N2Y0YjlmOWYw
NzFhMGYzYzJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL1ZpZGVvVHJhY2tQcml2YXRlQVZGLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1ZpZGVvVHJhY2tQcml2YXRlQVZGLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMs
OCArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNp
Zm5kZWYgVmlkZW9UcmFja1ByaXZhdGVBVkZfaAotI2RlZmluZSBWaWRlb1RyYWNrUHJpdmF0ZUFW
Rl9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIApAQCAtMzUsNyAr
MzQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUFWRiA6
IHB1YmxpYyBWaWRlb1RyYWNrUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVmlk
ZW9UcmFja1ByaXZhdGVBVkYpCiBwdWJsaWM6Ci0KICAgICBpbnQgdHJhY2tJbmRleCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1faW5kZXg7IH0KICAgICBLaW5kIGtpbmQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX2tpbmQ7IH0KICAgICBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX2lkOyB9CkBAIC00NCwyNiArNDIsMjAgQEAgcHVibGljOgogCiBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBzZXRLaW5kKEtpbmQga2luZCkgeyBtX2tpbmQgPSBraW5kOyB9Ci0g
ICAgdm9pZCBzZXRJZChBdG9taWNTdHJpbmcgbmV3SWQpIHsgbV9pZCA9IG5ld0lkOyB9Ci0gICAg
dm9pZCBzZXRMYWJlbChBdG9taWNTdHJpbmcgbGFiZWwpIHsgbV9sYWJlbCA9IGxhYmVsOyB9Ci0g
ICAgdm9pZCBzZXRMYW5ndWFnZShBdG9taWNTdHJpbmcgbGFuZ3VhZ2UpIHsgbV9sYW5ndWFnZSA9
IGxhbmd1YWdlOyB9CisgICAgdm9pZCBzZXRJZChjb25zdCBBdG9taWNTdHJpbmcmIG5ld0lkKSB7
IG1faWQgPSBuZXdJZDsgfQorICAgIHZvaWQgc2V0TGFiZWwoY29uc3QgQXRvbWljU3RyaW5nJiBs
YWJlbCkgeyBtX2xhYmVsID0gbGFiZWw7IH0KKyAgICB2b2lkIHNldExhbmd1YWdlKGNvbnN0IEF0
b21pY1N0cmluZyYgbGFuZ3VhZ2UpIHsgbV9sYW5ndWFnZSA9IGxhbmd1YWdlOyB9CiAgICAgdm9p
ZCBzZXRUcmFja0luZGV4KGludCBpbmRleCkgeyBtX2luZGV4ID0gaW5kZXg7IH0KIAotICAgIEtp
bmQgbV9raW5kOworICAgIEtpbmQgbV9raW5kIHsgTm9uZSB9OwogICAgIEF0b21pY1N0cmluZyBt
X2lkOwogICAgIEF0b21pY1N0cmluZyBtX2xhYmVsOwogICAgIEF0b21pY1N0cmluZyBtX2xhbmd1
YWdlOwotICAgIGludCBtX2luZGV4OworICAgIGludCBtX2luZGV4IHsgMCB9OwogCi0gICAgVmlk
ZW9UcmFja1ByaXZhdGVBVkYoKQotICAgICAgICA6IG1fa2luZChOb25lKQotICAgICAgICAsIG1f
aW5kZXgoMCkKLSAgICB7Ci0gICAgfQorICAgIFZpZGVvVHJhY2tQcml2YXRlQVZGKCkgPSBkZWZh
dWx0OwogfTsKIAogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKQotCi0jZW5kaWYg
Ly8gVmlkZW9UcmFja1ByaXZhdGVBVkZfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwCmluZGV4
IGZlOTM0NGI2MzFmMDM1ZjllZGU3MzU3NDQwN2YzNDM5YWEyNGU1MDIuLmVjMGQwZWRkYmY3M2Jl
ZWRhNjcxN2I3YTUxOGM3MzIxMjYwOTVhZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5jcHAK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzYsOCArMzYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMoQVZBc3Nl
dFRyYWNrKiB0cmFjaywgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIHBhcmVudCkKICAgICA6
IG1faW1wbChzdGQ6Om1ha2VfdW5pcXVlPEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNr
KSkKICAgICAsIG1fcGFyZW50KHBhcmVudCkKLSAgICAsIG1fdHJhY2tJRCgtMSkKLSAgICAsIG1f
ZW5hYmxlZChmYWxzZSkKIHsKICAgICByZXNldFByb3BlcnRpZXNGcm9tVHJhY2soKTsKIH0KQEAg
LTYzLDE3ICs2MSwxMiBAQCBBVkFzc2V0VHJhY2sqIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjphc3NldFRyYWNrKCkKICAgICByZXR1cm4gbV9pbXBsLT5hc3NldFRyYWNrKCk7
CiB9CiAKLWJvb2wgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmVuYWJsZWQo
KSBjb25zdAotewotICAgIHJldHVybiBtX2VuYWJsZWQ7Ci19Ci0KIHZvaWQgQXVkaW9UcmFja1By
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEVuYWJsZWQoYm9vbCBlbmFibGVkKQogewotICAg
IGlmIChtX2VuYWJsZWQgPT0gZW5hYmxlZCkKKyAgICBpZiAoZW5hYmxlZCA9PSB0aGlzLT5lbmFi
bGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CisgICAg
QXVkaW9UcmFja1ByaXZhdGVBVkY6OnNldEVuYWJsZWQoZW5hYmxlZCk7CiAgICAgbV9wYXJlbnQt
PnRyYWNrRGlkQ2hhbmdlRW5hYmxlZCh0aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgK
aW5kZXggYmJlODljZGRhMTNiMDgyZGNmODNmMDI1ZmNjODVjNDI4ZmRjOTE0Ny4uMjEyODcyMTRh
M2JmNWNlMTQwODA0NTUwZDlhZWVjMzhhMzA2MTFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTIzLDE1ICsyMywxMyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBBdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQ19oCi0jZGVmaW5lIEF1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQXVkaW9UcmFj
a1ByaXZhdGVBVkYuaCIKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEVOQUJMRShWSURF
T19UUkFDSykKIAogT0JKQ19DTEFTUyBBVkFzc2V0VHJhY2s7Ci1PQkpDX0NMQVNTIEFWUGxheWVy
SXRlbVRyYWNrOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQxLDEzICszOSwxMiBAQCBj
bGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzsKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDIGZpbmFsIDogcHVibGljIEF1ZGlvVHJhY2tQcml2YXRlQVZGIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQykKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDPiBjcmVhdGUoQVZBc3NldFRyYWNrKiB0cmFjaywgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMqIHBhcmVudCkKKyAgICBzdGF0aWMgUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDPiBjcmVhdGUoQVZBc3NldFRyYWNrICp0cmFjaywgU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakMqIHBhcmVudCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakModHJhY2ssIHBhcmVudCkp
OwogICAgIH0KIAotICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQg
c2V0RW5hYmxlZChib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCkgZmlu
YWw7CiAKICAgICB2b2lkIHNldEFzc2V0VHJhY2soQVZBc3NldFRyYWNrKik7CiAgICAgQVZBc3Nl
dFRyYWNrKiBhc3NldFRyYWNrKCk7CkBAIC02MiwxMSArNTksOCBAQCBwcml2YXRlOgogICAgIHN0
ZDo6dW5pcXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsPiBtX2ltcGw7CiAgICAgU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIG1fcGFyZW50OwogICAgIGludCBtX3RyYWNrSUQ7Ci0g
ICAgYm9vbCBtX2VuYWJsZWQ7CiB9OwogCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU09V
UkNFKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLm1tCmluZGV4IGQ0YzQ2MWQ4OGJmNWY3MmNmYWQ5OWM5ZWM4ZGRmZTUwNjQxNGYwYzEuLmY2
N2E4N2Q2Y2RkZjViYjJhNjE3ZTI0YmRhMTBmYjYwOGY4ZThkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
My0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiQVZGb3VuZGF0aW9uU1BJ
LmgiCiAjaW1wb3J0ICJBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmgiCiAjaW1wb3J0ICJD
bG9jay5oIgorI2ltcG9ydCAiQ29yZU1lZGlhU29mdExpbmsuaCIKICNpbXBvcnQgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2
YXRlLmgiCkBAIC00OSw4ICs1MCw2IEBACiAKICNwcmFnbWEgbWFyayAtIFNvZnQgTGlua2luZwog
Ci0jaW1wb3J0ICJDb3JlTWVkaWFTb2Z0TGluay5oIgotCiBTT0ZUX0xJTktfRlJBTUVXT1JLX09Q
VElPTkFMKEFWRm91bmRhdGlvbikKIAogU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRh
dGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpCkBAIC0zODAsMTAgKzM3OSwxMCBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheSgpCiAjZW5kaWYK
IAogICAgIGZvciAoY29uc3QgYXV0byYgdHJhY2sgOiBtX2F1ZGlvVHJhY2tNYXAudmFsdWVzKCkp
IHsKLSAgICAgICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgpIHx8ICF0cmFjay0+c3RyZWFtVHJhY2so
KS0+cHJldmlldygpKQorICAgICAgICBpZiAoIXRyYWNrLT5lbmFibGVkKCkgfHwgIXRyYWNrLT5z
dHJlYW1UcmFjaygpLnByZXZpZXcoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAg
IHRyYWNrLT5zdHJlYW1UcmFjaygpLT5wcmV2aWV3KCktPnBsYXkoKTsKKyAgICAgICAgdHJhY2st
PnN0cmVhbVRyYWNrKCkucHJldmlldygpLT5wbGF5KCk7CiAgICAgfQogCiAgICAgbV9oYXZlRXZl
clBsYXllZCA9IHRydWU7CkBAIC00MTEsMTAgKzQxMCwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2UoKQogI2VuZGlmCiAKICAgICBmb3IgKGNvbnN0
IGF1dG8mIHRyYWNrIDogbV9hdWRpb1RyYWNrTWFwLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmICgh
dHJhY2stPmVuYWJsZWQoKSB8fCAhdHJhY2stPnN0cmVhbVRyYWNrKCktPnByZXZpZXcoKSkKKyAg
ICAgICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgpIHx8ICF0cmFjay0+c3RyZWFtVHJhY2soKS5wcmV2
aWV3KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICB0cmFjay0+c3RyZWFtVHJh
Y2soKS0+cHJldmlldygpLT5wYXVzZSgpOworICAgICAgICB0cmFjay0+c3RyZWFtVHJhY2soKS5w
cmV2aWV3KCktPnBhdXNlKCk7CiAgICAgfQogCiAgICAgdXBkYXRlRGlzcGxheU1vZGUoKTsKQEAg
LTQzNSwxMCArNDM0LDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjppbnRlcm5hbFNldFZvbHVtZShmbG9hdCB2b2x1bWUsIGJvb2wKICAgICAgICAgcmV0dXJu
OwogCiAgICAgZm9yIChjb25zdCBhdXRvJiB0cmFjayA6IG1fYXVkaW9UcmFja01hcC52YWx1ZXMo
KSkgewotICAgICAgICBpZiAoIXRyYWNrLT5lbmFibGVkKCkgfHwgIXRyYWNrLT5zdHJlYW1UcmFj
aygpLT5wcmV2aWV3KCkpCisgICAgICAgIGlmICghdHJhY2stPmVuYWJsZWQoKSB8fCAhdHJhY2st
PnN0cmVhbVRyYWNrKCkucHJldmlldygpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAg
ICAgdHJhY2stPnN0cmVhbVRyYWNrKCktPnByZXZpZXcoKS0+c2V0Vm9sdW1lKHZvbHVtZSk7Cisg
ICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLnByZXZpZXcoKS0+c2V0Vm9sdW1lKHZvbHVtZSk7
CiAgICAgfQogfQogCkBAIC02MTcsNiArNjE2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1AK
IH0KIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RF
KQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0VmlkZW9G
dWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9GdWxsc2NyZWVuTGF5ZXIsIHN0ZDo6
ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3ZpZGVvRnVsbHNj
cmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9GdWxsc2NyZWVu
TGF5ZXIsIGNvbXBsZXRpb25IYW5kbGVyKTsKQEAgLTYyNiw2ICs2MjYsNyBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUo
RmxvYXRSZWN0IGZyYQogewogICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRW
aWRlb0Z1bGxzY3JlZW5GcmFtZShmcmFtZSk7CiB9CisKICNlbmRpZgogCiB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgUmVmVCwgdHlwZW5hbWUgUGFzc1JlZlQ+CkBAIC02NDQsMTIgKzY0NSwxMiBAQCB2b2lk
IHVwZGF0ZVRyYWNrc09mVHlwZShIYXNoTWFwPFN0cmluZywgUmVmVD4mIHRyYWNrTWFwLCBSZWFs
dGltZU1lZGlhU291cmNlOjpUeQogICAgIH0KIAogICAgIGZvciAoY29uc3QgYXV0byYgdHJhY2sg
OiB0cmFja01hcC52YWx1ZXMoKSkgewotICAgICAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSog
c3RyZWFtVHJhY2sgPSB0cmFjay0+c3RyZWFtVHJhY2soKTsKLSAgICAgICAgaWYgKGN1cnJlbnRU
cmFja3MuY29udGFpbnMoc3RyZWFtVHJhY2spKQorICAgICAgICBhdXRvJiBzdHJlYW1UcmFjayA9
IHRyYWNrLT5zdHJlYW1UcmFjaygpOworICAgICAgICBpZiAoY3VycmVudFRyYWNrcy5jb250YWlu
cygmc3RyZWFtVHJhY2spKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgcmVtb3Zl
ZFRyYWNrcy5hcHBlbmQodHJhY2spOwotICAgICAgICB0cmFja01hcC5yZW1vdmUoc3RyZWFtVHJh
Y2stPmlkKCkpOworICAgICAgICB0cmFja01hcC5yZW1vdmUoc3RyZWFtVHJhY2suaWQoKSk7CiAg
ICAgfQogCiAgICAgZm9yIChhdXRvJiB0cmFjayA6IGFkZGVkUHJpdmF0ZVRyYWNrcykgewpAQCAt
NjY0LDEyICs2NjUsMTIgQEAgdm9pZCB1cGRhdGVUcmFja3NPZlR5cGUoSGFzaE1hcDxTdHJpbmcs
IFJlZlQ+JiB0cmFja01hcCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHkKIAogICAgIGZvciAoYXV0
byYgdHJhY2sgOiByZW1vdmVkVHJhY2tzKSB7CiAgICAgICAgIChwbGF5ZXItPipyZW1vdmVkRnVu
Y3Rpb24pKCp0cmFjayk7Ci0gICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLT5yZW1vdmVPYnNl
cnZlcigqdHJhY2tPYnNlcnZlcik7CisgICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLnJlbW92
ZU9ic2VydmVyKCp0cmFja09ic2VydmVyKTsKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIHRyYWNr
IDogYWRkZWRUcmFja3MpIHsKICAgICAgICAgKHBsYXllci0+KmFkZGVkRnVuY3Rpb24pKCp0cmFj
ayk7Ci0gICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLT5hZGRPYnNlcnZlcigqdHJhY2tPYnNl
cnZlcik7CisgICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLmFkZE9ic2VydmVyKCp0cmFja09i
c2VydmVyKTsKICAgICB9CiB9CiAKQEAgLTY4MCwxNCArNjgxLDE0IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVUcmFja3MoKQogICAgIHN0ZDo6ZnVu
Y3Rpb248dm9pZChSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbT4sIGludCk+IGVu
YWJsZUF1ZGlvVHJhY2sgPSBbdGhpc10oYXV0byB0cmFjaywgaW50IGluZGV4KQogICAgIHsKICAg
ICAgICAgdHJhY2stPnNldFRyYWNrSW5kZXgoaW5kZXgpOwotICAgICAgICB0cmFjay0+c2V0RW5h
YmxlZCh0cmFjay0+c3RyZWFtVHJhY2soKS0+ZW5hYmxlZCgpICYmICF0cmFjay0+c3RyZWFtVHJh
Y2soKS0+bXV0ZWQoKSk7CisgICAgICAgIHRyYWNrLT5zZXRFbmFibGVkKHRyYWNrLT5zdHJlYW1U
cmFjaygpLmVuYWJsZWQoKSAmJiAhdHJhY2stPnN0cmVhbVRyYWNrKCkubXV0ZWQoKSk7CiAgICAg
fTsKICAgICB1cGRhdGVUcmFja3NPZlR5cGUobV9hdWRpb1RyYWNrTWFwLCBSZWFsdGltZU1lZGlh
U291cmNlOjpBdWRpbywgY3VycmVudFRyYWNrcywgJkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJl
YW06OmNyZWF0ZSwgbV9wbGF5ZXIsICZNZWRpYVBsYXllcjo6cmVtb3ZlQXVkaW9UcmFjaywgJk1l
ZGlhUGxheWVyOjphZGRBdWRpb1RyYWNrLCBlbmFibGVBdWRpb1RyYWNrLCAoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGU6Ok9ic2VydmVyKikgdGhpcyk7CiAKICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQo
UmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0+LCBpbnQpPiBlbmFibGVWaWRlb1Ry
YWNrID0gW3RoaXNdKGF1dG8gdHJhY2ssIGludCBpbmRleCkKICAgICB7CiAgICAgICAgIHRyYWNr
LT5zZXRUcmFja0luZGV4KGluZGV4KTsKLSAgICAgICAgYm9vbCBzZWxlY3RlZCA9IHRyYWNrLT5z
dHJlYW1UcmFjaygpID09IG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5hY3RpdmVWaWRlb1RyYWNrKCk7
CisgICAgICAgIGJvb2wgc2VsZWN0ZWQgPSAmdHJhY2stPnN0cmVhbVRyYWNrKCkgPT0gbV9tZWRp
YVN0cmVhbVByaXZhdGUtPmFjdGl2ZVZpZGVvVHJhY2soKTsKICAgICAgICAgdHJhY2stPnNldFNl
bGVjdGVkKHNlbGVjdGVkKTsKIAogICAgICAgICBpZiAoc2VsZWN0ZWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaAppbmRleCAxZjc1
ODJlMThiYjY4Y2NiOGMwNjU3NmY0MGMxYzE5NTM3ZmE3ZTdhLi4zZTViYzgxY2E2Mzk4YjJhNDli
YTg3OTFlYTNlMmRlMWUzZmQyNzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEzLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKICAqLwogCi0jaWZuZGVmIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDX2gKLSNk
ZWZpbmUgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakNfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBF
TkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCkBAIC0xMTQsMTggKzEx
MywxOCBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
KE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMqKTsKIAogICAgIC8vIFNvdXJjZUJ1ZmZlclByaXZh
dGUgb3ZlcnJpZGVzCi0gICAgdm9pZCBzZXRDbGllbnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVu
dCopIG92ZXJyaWRlOwotICAgIHZvaWQgYXBwZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEs
IHVuc2lnbmVkIGxlbmd0aCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBhYm9ydCgpIG92ZXJyaWRlOwot
ICAgIHZvaWQgcmVzZXRQYXJzZXJTdGF0ZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlZEZy
b21NZWRpYVNvdXJjZSgpIG92ZXJyaWRlOwotICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJl
YWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQ
bGF5ZXI6OlJlYWR5U3RhdGUpIG92ZXJyaWRlOwotICAgIHZvaWQgZmx1c2goQXRvbWljU3RyaW5n
IHRyYWNrSUQpIG92ZXJyaWRlOwotICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1l
ZGlhU2FtcGxlPiwgQXRvbWljU3RyaW5nIHRyYWNrSUQpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNS
ZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZyB0cmFja0lEKSBvdmVycmlkZTsKLSAgICB2
b2lkIHNldEFjdGl2ZShib29sKSBvdmVycmlkZTsKLSAgICB2b2lkIG5vdGlmeUNsaWVudFdoZW5S
ZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZyB0cmFja0lEKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNldENsaWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KikgZmluYWw7CisgICAgdm9p
ZCBhcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBmaW5h
bDsKKyAgICB2b2lkIGFib3J0KCkgZmluYWw7CisgICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkg
ZmluYWw7CisgICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKCkgZmluYWw7CisgICAgTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQg
c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkgZmluYWw7CisgICAgdm9pZCBm
bHVzaChjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpIGZpbmFsOworICAgIHZvaWQgZW5xdWV1
ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYsIGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkg
ZmluYWw7CisgICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5n
JiB0cmFja0lEKSBmaW5hbDsKKyAgICB2b2lkIHNldEFjdGl2ZShib29sKSBmaW5hbDsKKyAgICB2
b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHJhY2tJRCkgZmluYWw7CiAKICAgICB2b2lkIGRpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBs
ZXMoaW50IHRyYWNrSUQpOwogICAgIHZvaWQgYXBwZW5kQ29tcGxldGVkKCk7CkBAIC0xNTUsMjEg
KzE1NCwxOSBAQCBwcml2YXRlOgogICAgIE9TT2JqZWN0UHRyPGRpc3BhdGNoX2dyb3VwX3Q+IG1f
aXNBcHBlbmRpbmdHcm91cDsKIAogICAgIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMqIG1fbWVk
aWFTb3VyY2U7Ci0gICAgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCogbV9jbGllbnQ7CisgICAg
U291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CiAjaWYgRU5B
QkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAgICAgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZG
T2JqQyogbV9zZXNzaW9uIHsgbnVsbHB0ciB9OwogI2VuZGlmCiAKICAgICBzdGQ6Om9wdGlvbmFs
PEZsb2F0U2l6ZT4gbV9jYWNoZWRTaXplOwogICAgIEZsb2F0U2l6ZSBtX2N1cnJlbnRTaXplOwot
ICAgIGJvb2wgbV9wYXJzaW5nU3VjY2VlZGVkOworICAgIGJvb2wgbV9wYXJzaW5nU3VjY2VlZGVk
IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9wYXJzZXJTdGF0ZVdhc1Jlc2V0IHsgZmFsc2UgfTsKLSAg
ICBpbnQgbV9lbmFibGVkVmlkZW9UcmFja0lEOwotICAgIGludCBtX3Byb3RlY3RlZFRyYWNrSUQ7
CisgICAgaW50IG1fZW5hYmxlZFZpZGVvVHJhY2tJRCB7IC0xIH07CisgICAgaW50IG1fcHJvdGVj
dGVkVHJhY2tJRCB7IC0xIH07CiB9OwogCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU09V
UkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KaW5kZXggM2IwZDY4Y2My
YmYyZDIyYjc4YjM5MmJmMzgyOGZlNjEzOGU5YjAxOC4uZTdiMWIyMDc0ZGEzMzIzMjFmZjgwOGRm
NjgzMzMyMDVhY2U2MjQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEzLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNTEsMTAgKzE1MSw3IEBAIC0gKHZvaWQp
aW52YWxpZGF0ZQogCiAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNl
ciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkUGFyc2VTdHJlYW1EYXRhQXNBc3NldDooQVZBc3NldCAq
KWFzc2V0CiB7Ci0jaWYgQVNTRVJUX0RJU0FCTEVECi0gICAgVU5VU0VEX1BBUkFNKHN0cmVhbURh
dGFQYXJzZXIpOwotI2VuZGlmCi0gICAgQVNTRVJUKHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNl
cik7CisgICAgQVNTRVJUX1VOVVNFRChzdHJlYW1EYXRhUGFyc2VyLCBzdHJlYW1EYXRhUGFyc2Vy
ID09IF9wYXJzZXIpOwogCiAgICAgUmV0YWluUHRyPEFWQXNzZXQqPiBwcm90ZWN0ZWRBc3NldCA9
IGFzc2V0OwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3BhcmVudCA9IF9wYXJlbnQsIHByb3RlY3Rl
ZEFzc2V0ID0gV1RGTW92ZShwcm90ZWN0ZWRBc3NldCldIHsKQEAgLTE2NiwxMCArMTYzLDcgQEAg
LSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRh
UGFyc2VyIGRpZFBhcnNlU3RyZWFtRGEKIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJl
YW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0
OihBVkFzc2V0ICopYXNzZXQgd2l0aERpc2NvbnRpbnVpdHk6KEJPT0wpZGlzY29udGludWl0eQog
ewogICAgIFVOVVNFRF9QQVJBTShkaXNjb250aW51aXR5KTsKLSNpZiBBU1NFUlRfRElTQUJMRUQK
LSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5kaWYKLSAgICBBU1NFUlQo
c3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN0cmVhbURh
dGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKICAgICBSZXRhaW5QdHI8
QVZBc3NldCo+IHByb3RlY3RlZEFzc2V0ID0gYXNzZXQ7CiAgICAgY2FsbE9uTWFpblRocmVhZChb
cGFyZW50ID0gX3BhcmVudCwgcHJvdGVjdGVkQXNzZXQgPSBXVEZNb3ZlKHByb3RlY3RlZEFzc2V0
KV0gewpAQCAtMTgwLDEwICsxNzQsNyBAQCAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3Ry
ZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkUGFyc2VTdHJlYW1EYQogCiAtICh2
b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJz
ZXIgZGlkRmFpbFRvUGFyc2VTdHJlYW1EYXRhV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKIHsK
LSNpZiBBU1NFUlRfRElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7
Ci0jZW5kaWYKLSAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBB
U1NFUlRfVU5VU0VEKHN0cmVhbURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNl
cik7CiAKICAgICBSZXRhaW5QdHI8TlNFcnJvcj4gcHJvdGVjdGVkRXJyb3IgPSBlcnJvcjsKICAg
ICBjYWxsT25NYWluVGhyZWFkKFtwYXJlbnQgPSBfcGFyZW50LCBwcm90ZWN0ZWRFcnJvciA9IFdU
Rk1vdmUocHJvdGVjdGVkRXJyb3IpXSB7CkBAIC0xOTQsMTAgKzE4NSw3IEBAIC0gKHZvaWQpc3Ry
ZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRG
YWlsVG9QYXJzZVN0CiAKIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFy
c2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRQcm92aWRlTWVkaWFEYXRhOihDTVNhbXBsZUJ1ZmZl
clJlZilzYW1wbGUgZm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEIG1lZGlh
VHlwZTooTlNTdHJpbmcgKiluc01lZGlhVHlwZSBmbGFnczooQVZTdHJlYW1EYXRhUGFyc2VyT3V0
cHV0TWVkaWFEYXRhRmxhZ3MpZmxhZ3MKIHsKLSNpZiBBU1NFUlRfRElTQUJMRUQKLSAgICBVTlVT
RURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5kaWYKLSAgICBBU1NFUlQoc3RyZWFtRGF0
YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN0cmVhbURhdGFQYXJzZXIs
IHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKICAgICBSZXRhaW5QdHI8Q01TYW1wbGVC
dWZmZXJSZWY+IHByb3RlY3RlZFNhbXBsZSA9IHNhbXBsZTsKICAgICBTdHJpbmcgbWVkaWFUeXBl
ID0gbnNNZWRpYVR5cGU7CkBAIC0yMDksMTAgKzE5Nyw3IEBAIC0gKHZvaWQpc3RyZWFtRGF0YVBh
cnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRQcm92aWRlTWVk
aWFECiAKIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3Ry
ZWFtRGF0YVBhcnNlciBkaWRSZWFjaEVuZE9mVHJhY2tXaXRoVHJhY2tJRDooQ01QZXJzaXN0ZW50
VHJhY2tJRCl0cmFja0lEIG1lZGlhVHlwZTooTlNTdHJpbmcgKiluc01lZGlhVHlwZQogewotI2lm
IEFTU0VSVF9ESVNBQkxFRAotICAgIFVOVVNFRF9QQVJBTShzdHJlYW1EYXRhUGFyc2VyKTsKLSNl
bmRpZgotICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOworICAgIEFTU0VS
VF9VTlVTRUQoc3RyZWFtRGF0YVBhcnNlciwgc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsK
IAogICAgIFN0cmluZyBtZWRpYVR5cGUgPSBuc01lZGlhVHlwZTsKICAgICBjYWxsT25NYWluVGhy
ZWFkKFtwYXJlbnQgPSBfcGFyZW50LCB0cmFja0lELCBtZWRpYVR5cGVdIHsKQEAgLTIyMywxMCAr
MjA4LDcgQEAgLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilz
dHJlYW1EYXRhUGFyc2VyIGRpZFJlYWNoRW5kT2ZUcmEKIAogLSAodm9pZClzdHJlYW1EYXRhUGFy
c2VyV2lsbFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YTooQVZTdHJl
YW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBmb3JUcmFja0lEOihDTVBlcnNpc3RlbnRU
cmFja0lEKXRyYWNrSUQKIHsKLSNpZiBBU1NFUlRfRElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0o
c3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5kaWYKLSAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9
PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN0cmVhbURhdGFQYXJzZXIsIHN0cmVhbURh
dGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKICAgICAvLyBXZSBtdXN0IGNhbGwgc3luY2hyb25vdXNs
eSB0byB0aGUgbWFpbiB0aHJlYWQsIGFzIHRoZSBBVlN0cmVhbVNlc3Npb24gbXVzdCBiZSBhc3Nv
Y2lhdGVkCiAgICAgLy8gd2l0aCB0aGUgc3RyZWFtRGF0YVBhcnNlciBiZWZvcmUgdGhlIGRlbGVn
YXRlIG1ldGhvZCByZXR1cm5zLgpAQCAtMjM4LDEwICsyMjAsNyBAQCAtICh2b2lkKXN0cmVhbURh
dGFQYXJzZXJXaWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhOihB
VlN0cmVhbQogCiAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAq
KXN0cmVhbURhdGFQYXJzZXIgZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRp
b25EYXRhOihOU0RhdGEgKilpbml0RGF0YSBmb3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lE
KXRyYWNrSUQKIHsKLSNpZiBBU1NFUlRfRElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFt
RGF0YVBhcnNlcik7Ci0jZW5kaWYKLSAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFy
c2VyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN0cmVhbURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJz
ZXIgPT0gX3BhcnNlcik7CiAKICAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9zZW1hcGhvcmVfdD4g
aGFzU2Vzc2lvblNlbWFwaG9yZSA9IGFkb3B0T1NPYmplY3QoZGlzcGF0Y2hfc2VtYXBob3JlX2Ny
ZWF0ZSgwKSk7CiAgICAgY2FsbE9uTWFpblRocmVhZChbcGFyZW50ID0gX3BhcmVudCwgcHJvdGVj
dGVkSW5pdERhdGEgPSBSZXRhaW5QdHI8TlNEYXRhPihpbml0RGF0YSksIHRyYWNrSUQsIGhhc1Nl
c3Npb25TZW1hcGhvcmVdIHsKQEAgLTQ0OSwxMCArNDI4LDYgQEAgU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKE1lZGlhU291cmNlUHJpdmF0ZUFW
Rk9iakMKICAgICAsIG1fZXJyb3JMaXN0ZW5lcihhZG9wdE5TKFtbV2ViQVZTYW1wbGVCdWZmZXJF
cnJvckxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aFBhcmVudDp0aGlzXSkpCiAgICAgLCBtX2lzQXBw
ZW5kaW5nR3JvdXAoYWRvcHRPU09iamVjdChkaXNwYXRjaF9ncm91cF9jcmVhdGUoKSkpCiAgICAg
LCBtX21lZGlhU291cmNlKHBhcmVudCkKLSAgICAsIG1fY2xpZW50KDApCi0gICAgLCBtX3BhcnNp
bmdTdWNjZWVkZWQodHJ1ZSkKLSAgICAsIG1fZW5hYmxlZFZpZGVvVHJhY2tJRCgtMSkKLSAgICAs
IG1fcHJvdGVjdGVkVHJhY2tJRCgtMSkKIHsKIH0KIApAQCAtNTEyLDEwICs0ODcsMTAgQEAgdm9p
ZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUGFyc2VTdHJlYW1EYXRhQXNBc3NldChB
VkFzc2V0KiBhc3NldCkKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPmNoYXJhY3Rl
cmlzdGljc0NoYW5nZWQoKTsKIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQt
PnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KHRoaXMs
IHNlZ21lbnQpOworICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2Vp
dmVJbml0aWFsaXphdGlvblNlZ21lbnQoc2VnbWVudCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakM6OmRpZEZhaWxUb1BhcnNlU3RyZWFtRGF0YVdpdGhFcnJvcihOU0Vycm9y
KiBlcnJvcikKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZEZhaWxUb1BhcnNl
U3RyZWFtRGF0YVdpdGhFcnJvcihOU0Vycm9yICplcnJvcikKIHsKICNpZiBMT0dfRElTQUJMRUQK
ICAgICBVTlVTRURfUEFSQU0oZXJyb3IpOwpAQCAtNTMxLDEwICs1MDYsOCBAQCBzdHJ1Y3QgUHJv
Y2Vzc0NvZGVkRnJhbWVJbmZvIHsKICAgICBjb25zdCBTdHJpbmcmIG1lZGlhVHlwZTsKIH07CiAK
LXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVNZWRpYURhdGFGb3JU
cmFja0lEKGludCB0cmFja0lELCBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIGNvbnN0
IFN0cmluZyYgbWVkaWFUeXBlLCB1bnNpZ25lZCBmbGFncykKK3ZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVNZWRpYURhdGFGb3JUcmFja0lEKGludCB0cmFja0lELCBD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlLCB1
bnNpZ25lZCkKIHsKLSAgICBVTlVTRURfUEFSQU0oZmxhZ3MpOwotCiAgICAgcHJvY2Vzc0NvZGVk
RnJhbWUodHJhY2tJRCwgc2FtcGxlQnVmZmVyLCBtZWRpYVR5cGUpOwogfQogCkBAIC01NDksMTYg
KzUyMiwxNCBAQCBib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpwcm9jZXNzQ29kZWRG
cmFtZShpbnQgdHJhY2tJRCwgQ01TYW1wbGVCdWZmZXJSZQogICAgIGlmIChtX2NsaWVudCkgewog
ICAgICAgICBSZWY8TWVkaWFTYW1wbGU+IG1lZGlhU2FtcGxlID0gTWVkaWFTYW1wbGVBVkZPYmpD
OjpjcmVhdGUoc2FtcGxlQnVmZmVyLCB0cmFja0lEKTsKICAgICAgICAgTE9HKE1lZGlhU291cmNl
U2FtcGxlcywgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpwcm9jZXNzQ29kZWRGcmFtZSgl
cCkgLSBzYW1wbGUoJXMpIiwgdGhpcywgdG9TdHJpbmcobWVkaWFTYW1wbGUuZ2V0KCkpLnV0Zjgo
KS5kYXRhKCkpOwotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2Vp
dmVTYW1wbGUodGhpcywgbWVkaWFTYW1wbGUpOworICAgICAgICBtX2NsaWVudC0+c291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUobWVkaWFTYW1wbGUpOwogICAgIH0KIAogICAgIHJl
dHVybiB0cnVlOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRSZWFj
aEVuZE9mVHJhY2tXaXRoVHJhY2tJRChpbnQgdHJhY2tJRCwgY29uc3QgU3RyaW5nJiBtZWRpYVR5
cGUpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRSZWFjaEVuZE9mVHJhY2tX
aXRoVHJhY2tJRChpbnQsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKG1lZGlh
VHlwZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRyYWNrSUQpOwogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKQEAgLTU5MCw3ICs1NjEsNiBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGbwogICAgIGlm
ICghbV9tZWRpYVNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVU5VU0VEX1BBUkFNKHRy
YWNrSUQpOwogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQogICAgIExPRyhNZWRp
YVNvdXJjZSwgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtl
eVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKCVwKSAtIHRyYWNrOiVkIiwgdGhp
cywgdHJhY2tJRCk7CiAgICAgbV9wcm90ZWN0ZWRUcmFja0lEID0gdHJhY2tJRDsKQEAgLTYwNyw2
ICs1NzcsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGbwogICAgIH0KICNlbHNlCiAgICAgVU5V
U0VEX1BBUkFNKGluaXREYXRhKTsKKyAgICBVTlVTRURfUEFSQU0odHJhY2tJRCk7CiAgICAgVU5V
U0VEX1BBUkFNKGhhc1Nlc3Npb25TZW1hcGhvcmUpOwogI2VuZGlmCiB9CkBAIC02NTksNyArNjMw
LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5kQ29tcGxldGVkKCkK
ICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldExvYWRpbmdQcm9ncmVzc3NlZCh0
cnVlKTsKIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZl
clByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCBtX3BhcnNpbmdTdWNjZWVkZWQgPyBTb3VyY2VC
dWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQgOiBTb3VyY2VCdWZmZXJQcml2YXRl
Q2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclBy
aXZhdGVBcHBlbmRDb21wbGV0ZShtX3BhcnNpbmdTdWNjZWVkZWQgPyBTb3VyY2VCdWZmZXJQcml2
YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQgOiBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpQ
YXJzaW5nRmFpbGVkKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YWJv
cnQoKQpAQCAtNzM1LDE4ICs3MDYsMTIgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXQKIAogYm9v
bCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6aGFzVmlkZW8oKSBjb25zdAogewotICAgIGlm
ICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBtX2NsaWVu
dC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKHRoaXMpOworICAgIHJldHVybiBtX2NsaWVu
dCAmJiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCk7CiB9CiAKIGJvb2wg
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Omhhc0F1ZGlvKCkgY29uc3QKIHsKLSAgICBpZiAo
IW1fY2xpZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9jbGllbnQt
PnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyh0aGlzKTsKKyAgICByZXR1cm4gbV9jbGllbnQg
JiYgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygpOwogfQogCiB2b2lkIFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0cmFja0RpZENoYW5nZUVuYWJsZWQoVmlkZW9UcmFj
a1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMqIHRyYWNrKQpAQCAtODc0LDcgKzgzOSw3IEBAIHZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmxheWVyRGlkUmVjZWl2ZUVycm9yKEFWU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyCiAgICAgaW50IGVycm9yQ29kZSA9IFtbW2Vycm9yIHVzZXJJ
bmZvXSB2YWx1ZUZvcktleTpAIk9TU3RhdHVzIl0gaW50VmFsdWVdOwogCiAgICAgaWYgKG1fY2xp
ZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5k
ZXJpbmdFcnJvcih0aGlzLCBlcnJvckNvZGUpOworICAgICAgICBtX2NsaWVudC0+c291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihlcnJvckNvZGUpOwogfQogCiB2b2lk
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlckRpZFJlY2VpdmVFcnJvcihBVlNh
bXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKnJlbmRlcmVyLCBOU0Vycm9yICplcnJvcikKQEAgLTg5
NSw3ICs4NjAsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlckRp
ZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZAogICAgICAgICByZXR1cm47CiB9
CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmZsdXNoKEF0b21pY1N0cmluZyB0
cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Zmx1c2goY29u
c3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAgIGludCB0cmFja0lEID0gdHJh
Y2tJRFN0cmluZy50b0ludCgpOwogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpmbHVzaCglcCkgLSB0cmFja0lkOiAlZCIsIHRoaXMsIHRyYWNrSUQpOwpA
QCAtOTI1LDE5ICs4OTAsMTcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Zmx1
c2goQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICpyZW5kZXJlcikKICAgICAgICAgbV9tZWRp
YVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxlKHJlbmRlcmVyLCBm
YWxzZSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1w
bGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJwTWVkaWFTYW1wbGUsIEF0b21pY1N0cmluZyB0
cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNh
bXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNr
SURTdHJpbmcpCiB7CiAgICAgaW50IHRyYWNrSUQgPSB0cmFja0lEU3RyaW5nLnRvSW50KCk7CiAg
ICAgaWYgKHRyYWNrSUQgIT0gbV9lbmFibGVkVmlkZW9UcmFja0lEICYmICFtX2F1ZGlvUmVuZGVy
ZXJzLmNvbnRhaW5zKHRyYWNrSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZWZQdHI8TWVk
aWFTYW1wbGU+IG1lZGlhU2FtcGxlID0gcHJwTWVkaWFTYW1wbGU7Ci0KLSAgICBQbGF0Zm9ybVNh
bXBsZSBwbGF0Zm9ybVNhbXBsZSA9IG1lZGlhU2FtcGxlLT5wbGF0Zm9ybVNhbXBsZSgpOworICAg
IFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlID0gc2FtcGxlLT5wbGF0Zm9ybVNhbXBsZSgp
OwogICAgIGlmIChwbGF0Zm9ybVNhbXBsZS50eXBlICE9IFBsYXRmb3JtU2FtcGxlOjpDTVNhbXBs
ZUJ1ZmZlclR5cGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIExPRyhNZWRpYVNvdXJjZVNhbXBs
ZXMsICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZSglcCkgLSBzYW1w
bGUoJXMpIiwgdGhpcywgdG9TdHJpbmcoKm1lZGlhU2FtcGxlKS51dGY4KCkuZGF0YSgpKTsKKyAg
ICBMT0coTWVkaWFTb3VyY2VTYW1wbGVzLCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVu
cXVldWVTYW1wbGUoJXApIC0gc2FtcGxlKCVzKSIsIHRoaXMsIHRvU3RyaW5nKHNhbXBsZS5nZXQo
KSkudXRmOCgpLmRhdGEoKSk7CiAKICAgICBpZiAodHJhY2tJRCA9PSBtX2VuYWJsZWRWaWRlb1Ry
YWNrSUQpIHsKICAgICAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlv
biA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24ocGxhdGZvcm1TYW1wbGUuc2Ft
cGxlLmNtU2FtcGxlQnVmZmVyKTsKQEAgLTk1MCwyMiArOTEzLDIyIEBAIHZvaWQgU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4g
cHJwTWVkaWFTCiAgICAgICAgICAgICAgICAgaWYgKHNpemVXYXNOdWxsKQogICAgICAgICAgICAg
ICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2V0TmF0dXJhbFNpemUoZm9ybWF0U2l6
ZSk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBtX21lZGlhU291
cmNlLT5wbGF5ZXIoKS0+c2l6ZVdpbGxDaGFuZ2VBdFRpbWUobWVkaWFTYW1wbGUtPnByZXNlbnRh
dGlvblRpbWUoKSwgZm9ybWF0U2l6ZSk7CisgICAgICAgICAgICAgICAgICAgIG1fbWVkaWFTb3Vy
Y2UtPnBsYXllcigpLT5zaXplV2lsbENoYW5nZUF0VGltZShzYW1wbGUtPnByZXNlbnRhdGlvblRp
bWUoKSwgZm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBb
bV9kaXNwbGF5TGF5ZXIgZW5xdWV1ZVNhbXBsZUJ1ZmZlcjpwbGF0Zm9ybVNhbXBsZS5zYW1wbGUu
Y21TYW1wbGVCdWZmZXJdOwogICAgICAgICBpZiAobV9tZWRpYVNvdXJjZSkKLSAgICAgICAgICAg
IG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zZXRIYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCFtZWRp
YVNhbXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOworICAgICAgICAgICAgbV9tZWRpYVNvdXJjZS0+
cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoIXNhbXBsZS0+aXNOb25EaXNwbGF5
aW5nKCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8gcmVuZGVyZXIgPSBtX2F1ZGlvUmVu
ZGVyZXJzLmdldCh0cmFja0lEKTsKICAgICAgICAgW3JlbmRlcmVyIGVucXVldWVTYW1wbGVCdWZm
ZXI6cGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyXTsKICAgICAgICAgaWYgKG1f
bWVkaWFTb3VyY2UpCi0gICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2V0SGFz
QXZhaWxhYmxlQXVkaW9TYW1wbGUocmVuZGVyZXIuZ2V0KCksICFtZWRpYVNhbXBsZS0+aXNOb25E
aXNwbGF5aW5nKCkpOworICAgICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhh
c0F2YWlsYWJsZUF1ZGlvU2FtcGxlKHJlbmRlcmVyLmdldCgpLCAhc2FtcGxlLT5pc05vbkRpc3Bs
YXlpbmcoKSk7CiAgICAgfQogfQogCi1ib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpp
c1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSURTdHJpbmcpCitib29sIFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRv
bWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAgIGludCB0cmFja0lEID0gdHJhY2tJRFN0
cmluZy50b0ludCgpOwogICAgIGlmICh0cmFja0lEID09IG1fZW5hYmxlZFZpZGVvVHJhY2tJRCkK
QEAgLTk4NCw5ICs5NDcsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRB
Y3RpdmUoYm9vbCBpc0FjdGl2ZSkKIAogTWVkaWFUaW1lIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjpmYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoTWVkaWFUaW1lIHRpbWUsIE1lZGlhVGltZSBu
ZWdhdGl2ZVRocmVzaG9sZCwgTWVkaWFUaW1lIHBvc2l0aXZlVGhyZXNob2xkKQogewotICAgIGlm
IChtX2NsaWVudCkKLSAgICAgICAgcmV0dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRl
RmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRoaXMsIHRpbWUsIG5lZ2F0aXZlVGhyZXNob2xkLCBw
b3NpdGl2ZVRocmVzaG9sZCk7Ci0gICAgcmV0dXJuIHRpbWU7CisgICAgaWYgKCFtX2NsaWVudCkK
KyAgICAgICAgcmV0dXJuIHRpbWU7CisgICAgcmV0dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQ
cml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRpbWUsIG5lZ2F0aXZlVGhyZXNob2xkLCBw
b3NpdGl2ZVRocmVzaG9sZCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OndpbGxTZWVrKCkKQEAgLTEwMDEsNyArOTY0LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6d2lsbFNlZWsoKQogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2Vl
a1RvVGltZShNZWRpYVRpbWUgdGltZSkKIHsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1f
Y2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGltZSh0aGlzLCB0aW1lKTsKKyAgICAg
ICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKHRpbWUpOwogfQogCiBG
bG9hdFNpemUgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om5hdHVyYWxTaXplKCkKQEAgLTEw
MjEsMTAgKzk4NCwxMCBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRCZWNv
bWVSZWFkeUZvck1vcmVTYW1wbGVzKGludCB0cmFja0lEKQogICAgIH0KIAogICAgIGlmIChtX2Ns
aWVudCkKLSAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFk
eUZvck1vcmVTYW1wbGVzKHRoaXMsIEF0b21pY1N0cmluZzo6bnVtYmVyKHRyYWNrSUQpKTsKKyAg
ICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVT
YW1wbGVzKEF0b21pY1N0cmluZzo6bnVtYmVyKHRyYWNrSUQpKTsKIH0KIAotdm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMo
QXRvbWljU3RyaW5nIHRyYWNrSURTdHJpbmcpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjpub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJp
bmcmIHRyYWNrSURTdHJpbmcpCiB7CiAgICAgaW50IHRyYWNrSUQgPSB0cmFja0lEU3RyaW5nLnRv
SW50KCk7CiAgICAgaWYgKHRyYWNrSUQgPT0gbV9lbmFibGVkVmlkZW9UcmFja0lEKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcApp
bmRleCBlOWM2NjIyMjNjODM2NWRkMDc3NmU4YTJjNGVlZDQ4YzBmMTMwMWZkLi5jODcxYzU5NDgz
NTUwODU3MTgyYzdhMjRkNTUzNGI4NWE1ZDRlZjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFW
Rk9iakMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsMTEgKzI1LDEyIEBACiAK
ICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgi
Ci0jaW1wb3J0ICJBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmgiCi0jaW1wb3J0ICJNZWRpYVNl
bGVjdGlvbkdyb3VwQVZGT2JqQy5oIgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCisjaW1w
b3J0ICJBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmgiCisjaW1wb3J0ICJNZWRpYVNlbGVjdGlv
bkdyb3VwQVZGT2JqQy5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFZpZGVvVHJhY2tQcml2
YXRlQVZGT2JqQzo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKEFWUGxheWVySXRlbVRyYWNrKiB0
cmFjaykKQEAgLTEwNSw0ICsxMDYsMyBAQCB2b2lkIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6
c2V0U2VsZWN0ZWQoYm9vbCBlbmFibGVkKQogfQogCiAjZW5kaWYKLQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZE1ldGFkYXRhVGV4
dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oCmlu
ZGV4IGY2NjZiZWJjMmI3ZjQzMmFiYzU2ZmI4ODZjODk5NzZmNzlhMzU0YWQuLmU5NDJhMmM1ZmMw
N2U3YjBhYTU2NTEzMWZhMTg1MThjYzVjNDRjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZh
dGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTIzLDgg
KzIzLDcgQEAKICAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQ
cml2YXRlR1N0cmVhbWVyX2gKLSNkZWZpbmUgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRl
R1N0cmVhbWVyX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NU
UkVBTUVSKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCiAKQEAgLTUwLDEzICs0OSwxMyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1l
ZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgewog
ICAgICAgICBBU1NFUlQoY3VlRm9ybWF0KCkgPT0gRGF0YSk7Ci0gICAgICAgIGNsaWVudCgpLT5h
ZGREYXRhQ3VlKHRoaXMsIHN0YXJ0LCBlbmQsIGRhdGEsIGxlbmd0aCk7CisgICAgICAgIGNsaWVu
dCgpLT5hZGREYXRhQ3VlKHN0YXJ0LCBlbmQsIGRhdGEsIGxlbmd0aCk7CiAgICAgfQogCiAgICAg
dm9pZCBhZGRHZW5lcmljQ3VlKFBhc3NSZWZQdHI8R2VuZXJpY0N1ZURhdGE+IGRhdGEpCiAgICAg
ewogICAgICAgICBBU1NFUlQoY3VlRm9ybWF0KCkgPT0gR2VuZXJpYyk7Ci0gICAgICAgIGNsaWVu
dCgpLT5hZGRHZW5lcmljQ3VlKHRoaXMsIGRhdGEpOworICAgICAgICBjbGllbnQoKS0+YWRkR2Vu
ZXJpY0N1ZSgqZGF0YSk7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtNzYsNSArNzUsMyBAQCBwcml2
YXRlOgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPKSAm
JiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCi0KLSNlbmRpZiAvLyBJbmJh
bmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXJfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZh
dGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDZiMWZmYWI5M2Mz
NDhmY2NjNzdjNjMwZmViNmJlODJlMTAxOWRhZDYuLjFkOTQ1Mjc4YmE0ZDAyYzA0N2YzMmExNTc0
OTVkYmRlNjhjZmEwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCB2b2lkIEluYmFuZFRleHRU
cmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZTYW1wbGUoKQogCiAgICAgICAgIEdT
VF9JTkZPKCJUcmFjayAlZCBwYXJzaW5nIHNhbXBsZTogJS4qcyIsIG1faW5kZXgsIHN0YXRpY19j
YXN0PGludD4oaW5mby5zaXplKSwKICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+
KGluZm8uZGF0YSkpOwotICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRDdWVEYXRhKHRoaXMs
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGluZm8uZGF0YSksIGluZm8uc2l6ZSk7CisgICAgICAg
IGNsaWVudCgpLT5wYXJzZVdlYlZUVEN1ZURhdGEocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oaW5m
by5kYXRhKSwgaW5mby5zaXplKTsKICAgICAgICAgZ3N0X2J1ZmZlcl91bm1hcChidWZmZXIsICZp
bmZvKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAKaW5kZXggNjE5ZjJjYTYxY2FiZTU5NDBhZWMzZDEzZWNmN2RkZjU3MzVmZDcyMS4uOWJl
MWZlYTJkZmY1YTA2Y2U0MGU4NTFmYTUzYTAzZjY0ODRhZTVkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIHZvaWQg
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6bm90aWZ5VHJhY2tPZlRhZ3NDaGFuZ2VkKCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGdldFRhZyh0YWdzLmdldCgpLCBHU1RfVEFHX1RJVExF
LCBtX2xhYmVsKSkKLSAgICAgICAgY2xpZW50LT5sYWJlbENoYW5nZWQobV9vd25lciwgbV9sYWJl
bCk7CisgICAgICAgIGNsaWVudC0+bGFiZWxDaGFuZ2VkKG1fbGFiZWwpOwogCiAgICAgQXRvbWlj
U3RyaW5nIGxhbmd1YWdlOwogICAgIGlmICghZ2V0TGFuZ3VhZ2VDb2RlKHRhZ3MuZ2V0KCksIGxh
bmd1YWdlKSkKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2b2lkIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFt
ZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1f
bGFuZ3VhZ2UgPSBsYW5ndWFnZTsKLSAgICBjbGllbnQtPmxhbmd1YWdlQ2hhbmdlZChtX293bmVy
LCBtX2xhbmd1YWdlKTsKKyAgICBjbGllbnQtPmxhbmd1YWdlQ2hhbmdlZChtX2xhbmd1YWdlKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5l
LmNwcAppbmRleCAwMDUxMmU2M2M3MzJlMzkzZWY2NTE2MDEwZDFlNjdlZTZmZWRiYjM4Li44NDky
NjdmMjFlMDY5OGZiNWQyYWRkZWFlNTA5MWIzYzVkMDkyZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0Fw
cGVuZFBpcGVsaW5lLmNwcApAQCAtNjc2LDcgKzY3Niw3IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6
OmFwcHNpbmtOZXdTYW1wbGUoR3N0U2FtcGxlKiBzYW1wbGUpCiAgICAgICAgICAgICBtZWRpYVNh
bXBsZS0+YXBwbHlQdHNPZmZzZXQoTWVkaWFUaW1lOjp6ZXJvVGltZSgpKTsKICAgICAgICAgfQog
Ci0gICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZS0+ZGlkUmVjZWl2ZVNhbXBsZShtZWRpYVNh
bXBsZSk7CisgICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZS0+ZGlkUmVjZWl2ZVNhbXBsZSgq
bWVkaWFTYW1wbGUpOwogICAgICAgICBzZXRBcHBlbmRTdGF0ZShBcHBlbmRTdGF0ZTo6U2FtcGxp
bmcpOwogICAgICAgICBtX2Zsb3dSZXR1cm4gPSBHU1RfRkxPV19PSzsKICAgICAgICAgbV9uZXdT
YW1wbGVDb25kaXRpb24ubm90aWZ5T25lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9T
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA3ZjU0NWVlMzVlNDhhYTA2YjAy
YTk5NjNlMTFhY2JjYmRjYTc3OTQxLi5lNGIxMDdmNzBmNWM4YzY5ODE3NDE1ZWJjYTRkNjU1YjNh
YjVlYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
R1N0cmVhbWVyOjphcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGUK
ICAgICBpZiAobV9jbGllbnQtPmFwcGVuZCh0aGlzLCBkYXRhLCBsZW5ndGgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclBy
aXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpSZWFk
U3RyZWFtRmFpbGVkKTsKKyAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1
ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpSZWFk
U3RyZWFtRmFpbGVkKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjph
Ym9ydCgpCkBAIC0xMDYsMjAgKzEwNiwxOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3Ry
ZWFtZXI6OnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgc3RhdGUpCiAgICAg
bV9tZWRpYVNvdXJjZS0+c2V0UmVhZHlTdGF0ZShzdGF0ZSk7CiB9CiAKLXZvaWQgU291cmNlQnVm
ZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Zmx1c2goQXRvbWljU3RyaW5nIHRyYWNrSWQpCit2b2lkIFNv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYgdHJh
Y2tJZCkKIHsKICAgICBtX2NsaWVudC0+Zmx1c2godHJhY2tJZCk7CiB9CiAKLXZvaWQgU291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2Ft
cGxlPiBwcnBTYW1wbGUsIEF0b21pY1N0cmluZykKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lcjo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdCBB
dG9taWNTdHJpbmcmKQogewogICAgIG1fbm90aWZ5V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMgPSBm
YWxzZTsKIAotICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gcHJvdGVjdGVkUHJwU2FtcGxlID0gcHJw
U2FtcGxlOwotICAgIG1fY2xpZW50LT5lbnF1ZXVlU2FtcGxlKHByb3RlY3RlZFBycFNhbXBsZSk7
CisgICAgbV9jbGllbnQtPmVucXVldWVTYW1wbGUoV1RGTW92ZShzYW1wbGUpKTsKIH0KIAotYm9v
bCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRv
bWljU3RyaW5nKQorYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjppc1JlYWR5Rm9y
TW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikKIHsKICAgICByZXR1cm4gbV9pc1JlYWR5
Rm9yTW9yZVNhbXBsZXM7CiB9CkBAIC0xMzUsNyArMTM0LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyOjpub3RpZnlSZWFkeUZvck1vcmVTYW1wbGVzKCkKICAgICBBU1NFUlQo
V1RGOjppc01haW5UaHJlYWQoKSk7CiAgICAgc2V0UmVhZHlGb3JNb3JlU2FtcGxlcyh0cnVlKTsK
ICAgICBpZiAobV9ub3RpZnlXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcykKLSAgICAgICAgbV9zb3Vy
Y2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlG
b3JNb3JlU2FtcGxlcyh0aGlzLCBtX3RyYWNrSWQpOworICAgICAgICBtX3NvdXJjZUJ1ZmZlclBy
aXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1w
bGVzKG1fdHJhY2tJZCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6
c2V0QWN0aXZlKGJvb2wgaXNBY3RpdmUpCkBAIC0xNDQsMTIgKzE0MywxMiBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnNldEFjdGl2ZShib29sIGlzQWN0aXZlKQogICAgICAg
ICBtX21lZGlhU291cmNlLT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkQ2hhbmdlQWN0aXZlU3RhdGUo
dGhpcywgaXNBY3RpdmUpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6
OnN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpCit2b2lkIFNvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXI6OnN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNT
dHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRv
bWljU3RyaW5nIHRyYWNrSWQpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6Om5v
dGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJh
Y2tJZCkKIHsKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CiAgICAgbV9ub3RpZnlX
aGVuUmVhZHlGb3JNb3JlU2FtcGxlcyA9IHRydWU7CkBAIC0xNTksMjAgKzE1OCwxOSBAQCB2b2lk
IFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1v
cmVTYW1wbGVzKEF0b21pY1N0cgogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpk
aWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IFNvdXJjZUJ1ZmZlclByaXZhdGVD
bGllbnQ6OkluaXRpYWxpemF0aW9uU2VnbWVudCYgaW5pdGlhbGl6YXRpb25TZWdtZW50KQogewog
ICAgIGlmIChtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQpCi0gICAgICAgIG1fc291cmNlQnVm
ZmVyUHJpdmF0ZUNsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXph
dGlvblNlZ21lbnQodGhpcywgaW5pdGlhbGl6YXRpb25TZWdtZW50KTsKKyAgICAgICAgbV9zb3Vy
Y2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRp
YWxpemF0aW9uU2VnbWVudChpbml0aWFsaXphdGlvblNlZ21lbnQpOwogfQogCi12b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVTYW1wbGUoUGFzc1JlZlB0cjxNZWRp
YVNhbXBsZT4gcHJwU2FtcGxlKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpk
aWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiB7Ci0gICAgUmVmUHRyPE1lZGlh
U2FtcGxlPiBwcm90ZWN0ZWRQcnBTYW1wbGUgPSBwcnBTYW1wbGU7CiAgICAgaWYgKG1fc291cmNl
QnVmZmVyUHJpdmF0ZUNsaWVudCkKLSAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50
LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSh0aGlzLCAqcHJvdGVjdGVkUHJw
U2FtcGxlKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZm
ZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShzYW1wbGUpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVBbGxQZW5kaW5nU2FtcGxlcygpCiB7CiAgICAg
aWYgKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCkKLSAgICAgICAgbV9zb3VyY2VCdWZmZXJQ
cml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUodGhpcywgU291
cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBwZW5kU3VjY2VlZGVkKTsKKyAgICAgICAgbV9zb3Vy
Y2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUo
U291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBwZW5kU3VjY2VlZGVkKTsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9T
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaAppbmRl
eCAzMDg0MjVkNTAzY2FhNGViODY4YjM4OTk5YjVkNDY3NjhkZDU0OTg3Li41NjcxMzEwZmY4MmM4
M2Y5OGMyNjBlODdiNDhmMTM0MWVjOGFmNjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFt
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaApAQCAtNTQsMjYgKzU0LDI2IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgY2xlYXJNZWRpYVNvdXJjZSgpIHsgbV9tZWRpYVNvdXJjZSA9IG51bGxw
dHI7IH0KIAotICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqKSBv
dmVycmlkZTsKLSAgICB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQp
IG92ZXJyaWRlOwotICAgIHZvaWQgYWJvcnQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlc2V0UGFy
c2VyU3RhdGUoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKSBv
dmVycmlkZTsKLSAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRl
KSBvdmVycmlkZTsKLQotICAgIHZvaWQgZmx1c2goQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4sIEF0b21pY1N0cmlu
Zykgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5n
KSBvdmVycmlkZTsKLSAgICB2b2lkIHNldEFjdGl2ZShib29sKSBvdmVycmlkZTsKLSAgICB2b2lk
IHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpIG92ZXJyaWRlOwotICAgIHZv
aWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHNldENsaWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KikgZmlu
YWw7CisgICAgdm9pZCBhcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciosIHVuc2lnbmVkKSBmaW5h
bDsKKyAgICB2b2lkIGFib3J0KCkgZmluYWw7CisgICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkg
ZmluYWw7CisgICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKCkgZmluYWw7CisgICAgTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQg
c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkgZmluYWw7CisKKyAgICB2b2lk
IGZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgZW5xdWV1ZVNhbXBs
ZShSZWY8TWVkaWFTYW1wbGU+JiYsIGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIGJv
b2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAg
IHZvaWQgc2V0QWN0aXZlKGJvb2wpIGZpbmFsOworICAgIHZvaWQgc3RvcEFza2luZ0Zvck1vcmVT
YW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgbm90aWZ5Q2xpZW50
V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CiAKICAg
ICB2b2lkIHNldFJlYWR5Rm9yTW9yZVNhbXBsZXMoYm9vbCk7CiAgICAgdm9pZCBub3RpZnlSZWFk
eUZvck1vcmVTYW1wbGVzKCk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNl
Z21lbnQoY29uc3QgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6SW5pdGlhbGl6YXRpb25TZWdt
ZW50Jik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmKTsKICAgICB2b2lkIGRp
ZFJlY2VpdmVBbGxQZW5kaW5nU2FtcGxlcygpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0
cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1By
aXZhdGVNZWRpYVN0cmVhbS5oCmluZGV4IGJhMTkxMjFjMjIyZmI2Mjc2NjM5MmE3MWVmYmM1NjVm
ZTljODc5NjMuLjYwYzAwNzVkNjcyYTYyOTAyNTgxZjkzOGU2YWZhNDgzYjE2NjA0OGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgQXVkaW9UcmFja1ByaXZh
dGVNZWRpYVN0cmVhbV9oCi0jZGVmaW5lIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1faAor
I3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAKQEAgLTM2LDE0ICszNSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBB
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtIGZpbmFsIDogcHVibGljIEF1ZGlvVHJhY2tQcml2
YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3Ry
ZWFtKQogcHVibGljOgotCiAgICAgc3RhdGljIFJlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtPiBjcmVhdGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0
cmVhbShzdHJlYW1UcmFjaykpOwogICAgIH0KIAotICAgIHZpcnR1YWwgfkF1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW0oKSB7IH0KLQogICAgIEtpbmQga2luZCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIEtpbmQ6Ok1haW47IH0KICAgICBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX2lkOyB9CiAgICAgQXRvbWljU3RyaW5nIGxhYmVsKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9sYWJlbDsgfQpAQCAtNTIsMTcgKzQ4LDE3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgc2V0VHJhY2tJbmRleChpbnQgaW5kZXgpIHsgbV9pbmRleCA9IGluZGV4OyB9CiAKLSAg
ICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogc3RyZWFtVHJhY2soKSBjb25zdCB7IHJldHVybiBt
X3N0cmVhbVRyYWNrLmdldCgpOyB9CisgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHN0cmVh
bVRyYWNrKCkgeyByZXR1cm4gbV9zdHJlYW1UcmFjay5nZXQoKTsgfQogCiBwcml2YXRlOgogICAg
IEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0oTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRy
YWNrKQotICAgICAgICA6IG1fc3RyZWFtVHJhY2soJnRyYWNrKQorICAgICAgICA6IG1fc3RyZWFt
VHJhY2sodHJhY2spCiAgICAgICAgICwgbV9pZCh0cmFjay5pZCgpKQogICAgICAgICAsIG1fbGFi
ZWwodHJhY2subGFiZWwoKSkKICAgICB7CiAgICAgfQogCi0gICAgUmVmUHRyPE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlPiBtX3N0cmVhbVRyYWNrOworICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZT4gbV9zdHJlYW1UcmFjazsKICAgICBBdG9taWNTdHJpbmcgbV9pZDsKICAgICBBdG9taWNT
dHJpbmcgbV9sYWJlbDsKICAgICBpbnQgbV9pbmRleCB7IDAgfTsKQEAgLTcxLDUgKzY3LDMgQEAg
cHJpdmF0ZToKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKLQotI2VuZGlmIC8vIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1faApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vVmlkZW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCmluZGV4IGUxYmZhMTZmMTRkNzI5YWZk
MGQxZTRlZWZiMWNlOTk2MjE1NzAxNjYuLjA0NTgzODlmMzk3NDg3MjcyYTc5MzEwNGIwYTNkZjVi
M2EyZmJkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsOCArMjMs
NyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYg
VmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbV9oCi0jZGVmaW5lIFZpZGVvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW1faAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAKQEAgLTM2LDE0ICszNSwxMSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtIGZpbmFsIDogcHVibGlj
IFZpZGVvVHJhY2tQcml2YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShWaWRlb1RyYWNr
UHJpdmF0ZU1lZGlhU3RyZWFtKQogcHVibGljOgotCiAgICAgc3RhdGljIFJlZlB0cjxWaWRlb1Ry
YWNrUHJpdmF0ZU1lZGlhU3RyZWFtPiBjcmVhdGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHN0
cmVhbVRyYWNrKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbShzdHJlYW1UcmFjaykpOwogICAgIH0KIAotICAgIHZpcnR1YWwg
flZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0oKSB7IH0KLQogICAgIEtpbmQga2luZCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIEtpbmQ6Ok1haW47IH0KICAgICBBdG9taWNTdHJpbmcgaWQo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lkOyB9CiAgICAgQXRvbWljU3RyaW5nIGxhYmVs
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9sYWJlbDsgfQpAQCAtNTIsMTcgKzQ4LDE3IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VHJhY2tJbmRleChpbnQgaW5kZXgpIHsgbV9pbmRleCA9
IGluZGV4OyB9CiAKLSAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogc3RyZWFtVHJhY2soKSBj
b25zdCB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CisgICAgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmIHN0cmVhbVRyYWNrKCkgeyByZXR1cm4gbV9zdHJlYW1UcmFjay5nZXQoKTsgfQog
CiBwcml2YXRlOgogICAgIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0oTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmIHRyYWNrKQotICAgICAgICA6IG1fc3RyZWFtVHJhY2soJnRyYWNrKQorICAg
ICAgICA6IG1fc3RyZWFtVHJhY2sodHJhY2spCiAgICAgICAgICwgbV9pZCh0cmFjay5pZCgpKQog
ICAgICAgICAsIG1fbGFiZWwodHJhY2subGFiZWwoKSkKICAgICB7CiAgICAgfQogCi0gICAgUmVm
UHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBtX3N0cmVhbVRyYWNrOworICAgIFJlZjxNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9zdHJlYW1UcmFjazsKICAgICBBdG9taWNTdHJpbmcgbV9p
ZDsKICAgICBBdG9taWNTdHJpbmcgbV9sYWJlbDsKICAgICBpbnQgbV9pbmRleCB7IDAgfTsKQEAg
LTcxLDUgKzY3LDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShWSURFT19UUkFD
SykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2VuZGlmIC8vIFZpZGVvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW1faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9t
ZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcAppbmRl
eCA0OGRmNGJjYzRjM2JiOGRhMmM1ZjQ5MDBlMTc1MDYwMDc5MTg1NmYzLi5lMDMxYTliNWQyMGQx
MmExYjk2ZTBlMTE2Y2U0YmFhOTU0Y2YwMjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZm
ZXJQcml2YXRlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMt
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQ
cml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSA8bWFwPgogI2luY2x1ZGUgPHJ1bnRpbWUvQXJyYXlC
dWZmZXIuaD4KLSNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTY1LDcgKzE2NCw3
IEBAIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmFwcGVuZChjb25zdCB1bnNpZ25lZCBj
aGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgfQogCiAgICAgaWYgKG1fY2xpZW50KQot
ICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKHRoaXMs
IHJlc3VsdCk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29t
cGxldGUocmVzdWx0KTsKIH0KIAogdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVj
ZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBNb2NrSW5pdGlhbGl6YXRpb25Cb3gmIGlu
aXRCb3gpCkBAIC0xOTYsNyArMTk1LDcgQEAgdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6
ZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBNb2NrSW5pdGlhbGkKICAgICAg
ICAgfQogICAgIH0KIAotICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2
ZUluaXRpYWxpemF0aW9uU2VnbWVudCh0aGlzLCBzZWdtZW50KTsKKyAgICBtX2NsaWVudC0+c291
cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoc2VnbWVudCk7
CiB9CiAKIApAQCAtMjA1LDcgKzIwNCw3IEBAIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6
OmRpZFJlY2VpdmVTYW1wbGUoY29uc3QgTW9ja1NhbXBsZUJveCYgc2FtcGxlQm94KQogICAgIGlm
ICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY2xpZW50LT5zb3VyY2VCdWZm
ZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSh0aGlzLCBNb2NrTWVkaWFTYW1wbGU6OmNyZWF0ZShz
YW1wbGVCb3gpKTsKKyAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVT
YW1wbGUoTW9ja01lZGlhU2FtcGxlOjpjcmVhdGUoc2FtcGxlQm94KSk7CiB9CiAKIHZvaWQgTW9j
a1NvdXJjZUJ1ZmZlclByaXZhdGU6OmFib3J0KCkKQEAgLTIzOSwyMiArMjM4LDIxIEBAIHZvaWQg
TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OnNldEFjdGl2ZShib29sIGlzQWN0aXZlKQogICAgICAg
ICBtX21lZGlhU291cmNlLT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkQ2hhbmdlQWN0aXZlU3RhdGUo
dGhpcywgaXNBY3RpdmUpOwogfQogCi1WZWN0b3I8U3RyaW5nPiBNb2NrU291cmNlQnVmZmVyUHJp
dmF0ZTo6ZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChBdG9taWNTdHJpbmcpCitWZWN0b3I8U3Ry
aW5nPiBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChj
b25zdCBBdG9taWNTdHJpbmcmKQogewogICAgIHJldHVybiBtX2VucXVldWVkU2FtcGxlczsKIH0K
IAotdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRy
PE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUsIEF0b21pY1N0cmluZykKK3ZvaWQgTW9ja1NvdXJjZUJ1
ZmZlclByaXZhdGU6OmVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgY29u
c3QgQXRvbWljU3RyaW5nJikKIHsKLSAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IHNhbXBsZSA9IHBy
cFNhbXBsZTsKLSAgICBpZiAoIW1fbWVkaWFTb3VyY2UgfHwgIXNhbXBsZSkKKyAgICBpZiAoIW1f
bWVkaWFTb3VyY2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRm
b3JtU2FtcGxlID0gc2FtcGxlLT5wbGF0Zm9ybVNhbXBsZSgpOwogICAgIGlmIChwbGF0Zm9ybVNh
bXBsZS50eXBlICE9IFBsYXRmb3JtU2FtcGxlOjpNb2NrU2FtcGxlQm94VHlwZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgTW9ja1NhbXBsZUJveCogYm94ID0gcGxhdGZvcm1TYW1wbGUuc2FtcGxl
Lm1vY2tTYW1wbGVCb3g7CisgICAgYXV0byogYm94ID0gcGxhdGZvcm1TYW1wbGUuc2FtcGxlLm1v
Y2tTYW1wbGVCb3g7CiAgICAgaWYgKCFib3gpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjY2LDM3
ICsyNjQsMzAgQEAgdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1ZVNhbXBsZShQ
YXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUsIEEKICAgICBpZiAoYm94LT5pc0RlbGF5
ZWQoKSkKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+aW5jcmVtZW50VG90YWxGcmFtZURlbGF5Qnko
TWVkaWFUaW1lKDEsIDEpKTsKIAotICAgIG1fZW5xdWV1ZWRTYW1wbGVzLmFwcGVuZCh0b1N0cmlu
ZyhzYW1wbGUpKTsKKyAgICBtX2VucXVldWVkU2FtcGxlcy5hcHBlbmQodG9TdHJpbmcoc2FtcGxl
LmdldCgpKSk7CiB9CiAKIGJvb2wgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6Omhhc1ZpZGVvKCkg
Y29uc3QKIHsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNWaWRlbyh0aGlzKTsKKyAg
ICByZXR1cm4gbV9jbGllbnQgJiYgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNWaWRl
bygpOwogfQogCiBib29sIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpoYXNBdWRpbygpIGNvbnN0
CiB7Ci0gICAgaWYgKCFtX2NsaWVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0
dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8odGhpcyk7CisgICAgcmV0
dXJuIG1fY2xpZW50ICYmIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oKTsK
IH0KIAotCiBNZWRpYVRpbWUgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmZhc3RTZWVrVGltZUZv
ck1lZGlhVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IE1lZGlhVGltZSYgbmVnYXRp
dmVUaHJlc2hvbGQsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpdmVUaHJlc2hvbGQpCiB7CiAgICAg
aWYgKG1fY2xpZW50KQotICAgICAgICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZh
dGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUodGhpcywgdGltZSwgbmVnYXRpdmVUaHJlc2hvbGQs
IHBvc2l0aXZlVGhyZXNob2xkKTsKKyAgICAgICAgcmV0dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZm
ZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRpbWUsIG5lZ2F0aXZlVGhyZXNob2xk
LCBwb3NpdGl2ZVRocmVzaG9sZCk7CiAgICAgcmV0dXJuIHRpbWU7CiB9CiAKIHZvaWQgTW9ja1Nv
dXJjZUJ1ZmZlclByaXZhdGU6OnNlZWtUb1RpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lKQogewog
ICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVT
ZWVrVG9UaW1lKHRoaXMsIHRpbWUpOworICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJp
dmF0ZVNlZWtUb1RpbWUodGltZSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclBy
aXZhdGUuaAppbmRleCA3NDRiNGMxMDdjMzEwMjZmYTQyOWE4ZjEyZDI1NjNiZmMzNjMyZDI4Li40
OTY1MDU1M2IwN2JlYWMwN2Y1MzEwZWY1ZTU2ZWY4MmM3MjBhMDYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2Nr
U291cmNlQnVmZmVyUHJpdmF0ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMy0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMTUgKzIzLDExIEBACiAgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKICAqLwogCi0jaWZuZGVmIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlX2gKLSNkZWZpbmUgTW9j
a1NvdXJjZUJ1ZmZlclByaXZhdGVfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFf
U09VUkNFKQogCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0
Zi9NZWRpYVRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQzLDcgKzM5LDcgQEAgY2xhc3Mg
TW9ja1NhbXBsZUJveDsKIGNsYXNzIFRpbWVSYW5nZXM7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0
ZTsKIAotY2xhc3MgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUgOiBwdWJsaWMgU291cmNlQnVmZmVy
UHJpdmF0ZSB7CitjbGFzcyBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZSBmaW5hbCA6IHB1YmxpYyBT
b3VyY2VCdWZmZXJQcml2YXRlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPE1vY2tTb3Vy
Y2VCdWZmZXJQcml2YXRlPiBjcmVhdGUoTW9ja01lZGlhU291cmNlUHJpdmF0ZSopOwogICAgIHZp
cnR1YWwgfk1vY2tTb3VyY2VCdWZmZXJQcml2YXRlKCk7CkBAIC02MCwyMCArNTYsMjAgQEAgcHJp
dmF0ZToKICAgICBleHBsaWNpdCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZShNb2NrTWVkaWFTb3Vy
Y2VQcml2YXRlKik7CiAKICAgICAvLyBTb3VyY2VCdWZmZXJQcml2YXRlIG92ZXJyaWRlcwotICAg
IHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgp
IG92ZXJyaWRlOwotICAgIHZvaWQgYWJvcnQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlc2V0UGFy
c2VyU3RhdGUoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKSBv
dmVycmlkZTsKLSAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRl
KSBvdmVycmlkZTsKKyAgICB2b2lkIHNldENsaWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50
KikgZmluYWw7CisgICAgdm9pZCBhcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5z
aWduZWQgbGVuZ3RoKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KCkgZmluYWw7CisgICAgdm9pZCBy
ZXNldFBhcnNlclN0YXRlKCkgZmluYWw7CisgICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNl
KCkgZmluYWw7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0
IGZpbmFsOworICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkg
ZmluYWw7CiAKLSAgICB2b2lkIGZsdXNoKEF0b21pY1N0cmluZykgb3ZlcnJpZGUgeyBtX2VucXVl
dWVkU2FtcGxlcy5jbGVhcigpOyB9Ci0gICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFBhc3NSZWZQdHI8
TWVkaWFTYW1wbGU+LCBBdG9taWNTdHJpbmcpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNSZWFkeUZv
ck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAg
IHZvaWQgc2V0QWN0aXZlKGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgZmx1c2goY29uc3QgQXRv
bWljU3RyaW5nJikgZmluYWwgeyBtX2VucXVldWVkU2FtcGxlcy5jbGVhcigpOyB9CisgICAgdm9p
ZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiwgY29uc3QgQXRvbWljU3RyaW5nJikg
ZmluYWw7CisgICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5n
JikgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIGZpbmFs
OwogCi0gICAgVmVjdG9yPFN0cmluZz4gZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChBdG9taWNT
dHJpbmcpIG92ZXJyaWRlOworICAgIFZlY3RvcjxTdHJpbmc+IGVucXVldWVkU2FtcGxlc0ZvclRy
YWNrSUQoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVJ
bml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgTW9ja0luaXRpYWxpemF0aW9uQm94Jik7CiAgICAg
dm9pZCBkaWRSZWNlaXZlU2FtcGxlKGNvbnN0IE1vY2tTYW1wbGVCb3gmKTsKQEAgLTg4LDYgKzg0
LDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVT
RShBVkZPVU5EQVRJT04pCi0KLSNlbmRpZgotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tUcmFja3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1RyYWNrcy5oCmluZGV4IDhkMDMxOWYyZDBkNjY4
ODZkNWE1OTAxZmUxMmRiYjM2NDIzYmNlNmIuLjA3M2YzNjg2MzdiMDk2YmUwZjI1YmEyMzhhMzdm
NzJiMjY1OTM4YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVk
aWFzb3VyY2UvTW9ja1RyYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
bWVkaWFzb3VyY2UvTW9ja1RyYWNrcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAog
ICovCiAKLSNpZm5kZWYgTW9ja1RyYWNrc19oCi0jZGVmaW5lIE1vY2tUcmFja3NfaAorI3ByYWdt
YSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCkBAIC0zNyw3ICszNiw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTW9ja0F1ZGlvVHJhY2tQcml2YXRlIDogcHVibGlj
IEF1ZGlvVHJhY2tQcml2YXRlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPE1vY2tBdWRp
b1RyYWNrUHJpdmF0ZT4gY3JlYXRlKGNvbnN0IE1vY2tUcmFja0JveCYgYm94KSB7IHJldHVybiBh
ZG9wdFJlZihuZXcgTW9ja0F1ZGlvVHJhY2tQcml2YXRlKGJveCkpOyB9CisgICAgc3RhdGljIFJl
ZjxNb2NrQXVkaW9UcmFja1ByaXZhdGU+IGNyZWF0ZShjb25zdCBNb2NrVHJhY2tCb3gmIGJveCkg
eyByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2NrQXVkaW9UcmFja1ByaXZhdGUoYm94KSk7IH0KICAg
ICB2aXJ0dWFsIH5Nb2NrQXVkaW9UcmFja1ByaXZhdGUoKSB7IH0KIAogICAgIHZpcnR1YWwgQXRv
bWljU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQpAQCAtNDUsNyArNDQsNyBAQCBw
dWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgTW9ja0F1ZGlvVHJhY2tQcml2YXRlKGNvbnN0IE1vY2tU
cmFja0JveCYgYm94KQogICAgICAgICA6IG1fYm94KGJveCkKLSAgICAgICAgLCBtX2lkKFN0cmlu
Zzo6Zm9ybWF0KCIlZCIsIGJveC50cmFja0lEKCkpKQorICAgICAgICAsIG1faWQoQXRvbWljU3Ry
aW5nOjpudW1iZXIoYm94LnRyYWNrSUQoKSkpCiAgICAgewogICAgIH0KICAgICBNb2NrVHJhY2tC
b3ggbV9ib3g7CkBAIC02Myw3ICs2Miw3IEBAIHByb3RlY3RlZDoKICAgICBNb2NrVGV4dFRyYWNr
UHJpdmF0ZShjb25zdCBNb2NrVHJhY2tCb3gmIGJveCkKICAgICAgICAgOiBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlKEluYmFuZFRleHRUcmFja1ByaXZhdGU6OkdlbmVyaWMpCiAgICAgICAgICwgbV9i
b3goYm94KQotICAgICAgICAsIG1faWQoU3RyaW5nOjpmb3JtYXQoIiVkIiwgYm94LnRyYWNrSUQo
KSkpCisgICAgICAgICwgbV9pZChBdG9taWNTdHJpbmc6Om51bWJlcihib3gudHJhY2tJRCgpKSkK
ICAgICB7CiAgICAgfQogICAgIE1vY2tUcmFja0JveCBtX2JveDsKQEAgLTgxLDcgKzgwLDcgQEAg
cHVibGljOgogcHJvdGVjdGVkOgogICAgIE1vY2tWaWRlb1RyYWNrUHJpdmF0ZShjb25zdCBNb2Nr
VHJhY2tCb3gmIGJveCkKICAgICAgICAgOiBtX2JveChib3gpCi0gICAgICAgICwgbV9pZChTdHJp
bmc6OmZvcm1hdCgiJWQiLCBib3gudHJhY2tJRCgpKSkKKyAgICAgICAgLCBtX2lkKEF0b21pY1N0
cmluZzo6bnVtYmVyKGJveC50cmFja0lEKCkpKQogICAgIHsKICAgICB9CiAgICAgTW9ja1RyYWNr
Qm94IG1fYm94OwpAQCAtOTEsNSArOTAsMyBAQCBwcm90ZWN0ZWQ6CiB9CiAKICNlbmRpZgotCi0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4uY3BwCmluZGV4IDMzZmU0Mzk2MDJjY2QwNzUwYWUzYzNjYjBjNGQ3ODBjZjcxYmVj
ODMuLjdmMmM2OTA5NzZkNjhhMWNkZDk1ODQ0YTNmMGRiZDVlODBiMjM0YWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00
Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAjaW5jbHVkZSAiUGF0aC5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIlJlbmRlckltYWdlUmVz
b3VyY2UuaCIKICNpbmNsdWRlICJSZW5kZXJJdGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRlclZp
ZXcuaCIKICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgpAQCAtNTIsNyArNTMsNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6UmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyU3R5bGUmJiBz
dHlsZSkKICAgICA6IFJlbmRlckVtYmVkZGVkT2JqZWN0KGVsZW1lbnQsIFdURk1vdmUoc3R5bGUp
KQogICAgICwgbV9zbmFwc2hvdFJlc291cmNlKHN0ZDo6bWFrZV91bmlxdWU8UmVuZGVySW1hZ2VS
ZXNvdXJjZT4oKSkKLSAgICAsIG1faXNQb3RlbnRpYWxNb3VzZUFjdGl2YXRpb24oZmFsc2UpCiB7
CiAgICAgbV9zbmFwc2hvdFJlc291cmNlLT5pbml0aWFsaXplKHRoaXMpOwogfQpAQCAtODIsMTMg
KzgyLDEzIEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmxheW91dCgpCiAgICAgdmll
dygpLmZyYW1lVmlldygpLmFkZEVtYmVkZGVkT2JqZWN0VG9VcGRhdGUoKnRoaXMpOwogfQogCi12
b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPElt
YWdlPiBpbWFnZSkKK3ZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnVwZGF0ZVNuYXBzaG90
KEltYWdlKiBpbWFnZSkKIHsKICAgICAvLyBaZXJvLXNpemUgcGx1Z2lucyB3aWxsIGhhdmUgbm8g
aW1hZ2UuCiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9zbmFwc2hv
dFJlc291cmNlLT5zZXRDYWNoZWRJbWFnZShuZXcgQ2FjaGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIHZp
ZXcoKS5mcmFtZVZpZXcoKS5mcmFtZSgpLnBhZ2UoKS0+c2Vzc2lvbklEKCkpKTsKKyAgICBtX3Nu
YXBzaG90UmVzb3VyY2UtPnNldENhY2hlZEltYWdlKG5ldyBDYWNoZWRJbWFnZShpbWFnZSwgdmll
dygpLmZyYW1lVmlldygpLmZyYW1lKCkucGFnZSgpLT5zZXNzaW9uSUQoKSkpOwogICAgIHJlcGFp
bnQoKTsKIH0KIApAQCAtMTUwLDEyICsxNTAsMTIgQEAgQ3Vyc29yRGlyZWN0aXZlIFJlbmRlclNu
YXBzaG90dGVkUGx1Z0luOjpnZXRDdXJzb3IoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBDdXIK
ICAgICByZXR1cm4gUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmdldEN1cnNvcihwb2ludCwgb3ZlcnJp
ZGVDdXJzb3IpOwogfQogCi12b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpoYW5kbGVFdmVu
dChFdmVudCogZXZlbnQpCit2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpoYW5kbGVFdmVu
dChFdmVudCYgZXZlbnQpCiB7Ci0gICAgaWYgKCFpczxNb3VzZUV2ZW50PigqZXZlbnQpKQorICAg
IGlmICghaXM8TW91c2VFdmVudD4oZXZlbnQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBNb3Vz
ZUV2ZW50JiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VFdmVudD4oKmV2ZW50KTsKKyAgICBh
dXRvJiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VFdmVudD4oZXZlbnQpOwogCiAgICAgLy8g
SWYgd2UncmUgYSBzbmFwc2hvdHRlZCBwbHVnaW4sIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHdlIGFj
dGl2YXRlIG9uCiAgICAgLy8gY2xpY2tzIGV2ZW4gaWYgdGhlIHBhZ2UgaXMgcHJldmVudGluZyBv
dXIgZGVmYXVsdCBiZWhhdmlvdXIuIE90aGVyd2lzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAppbmRleCAxMzRkYjgzM2I3OThlZTVj
MzdiMWJhMjdkYTU0OGZjNTQzZWY4NjQ3Li5jYWI1YmZiYzRmYWY2N2Q2NmI2Yjg5ODIxNWRiMjYw
YTEyNmVhZWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEy
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNiwxMiArMjYsMTEgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuaCIKLSNpbmNsdWRlICJSZW5kZXJJbWFnZVJlc291cmNl
LmgiCi0jaW5jbHVkZSAiVGltZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50OworY2xhc3MgUmVuZGVySW1hZ2VSZXNvdXJjZTsKIAogY2xh
c3MgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gZmluYWwgOiBwdWJsaWMgUmVuZGVyRW1iZWRkZWRP
YmplY3QgewogcHVibGljOgpAQCAtMzksMjcgKzM4LDIxIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbigpOwogCiAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVu
dCYgcGx1Z0luSW1hZ2VFbGVtZW50KCkgY29uc3Q7Ci0KLSAgICB2b2lkIHVwZGF0ZVNuYXBzaG90
KFBhc3NSZWZQdHI8SW1hZ2U+KTsKLQotICAgIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqKTsKKyAg
ICB2b2lkIHVwZGF0ZVNuYXBzaG90KEltYWdlKik7CisgICAgdm9pZCBoYW5kbGVFdmVudChFdmVu
dCYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgZnJhbWVPd25lckVsZW1lbnQoKSBjb25zdCA9IGRl
bGV0ZTsKLSAgICBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gIlJlbmRlclNuYXBzaG90dGVkUGx1Z0luIjsgfQotCi0gICAgQ3Vyc29yRGlyZWN0aXZlIGdl
dEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYsIEN1cnNvciYpIGNvbnN0IG92ZXJyaWRlOwotICAg
IGJvb2wgaXNTbmFwc2hvdHRlZFBsdWdJbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KLSAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJp
ZGU7Ci0gICAgCi0gICAgYm9vbCBjYW5IYXZlV2lkZ2V0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KLQorICAgIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAiUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4iOyB9CisgICAgQ3Vyc29yRGlyZWN0aXZl
IGdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYsIEN1cnNvciYpIGNvbnN0IGZpbmFsOworICAg
IGJvb2wgaXNTbmFwc2hvdHRlZFBsdWdJbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
KyAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgZmluYWw7Cisg
ICAgYm9vbCBjYW5IYXZlV2lkZ2V0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2b2lkIHBhaW50U25hcHNob3QoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKLQot
ICAgIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBsYXlvdXQoKSBmaW5hbDsKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJJbWFnZVJlc291cmNlPiBtX3NuYXBzaG90UmVzb3Vy
Y2U7Ci0gICAgYm9vbCBtX2lzUG90ZW50aWFsTW91c2VBY3RpdmF0aW9uOworICAgIGJvb2wgbV9p
c1BvdGVudGlhbE1vdXNlQWN0aXZhdGlvbiB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAppbmRleCA4YjdkOTI0
NTY0YTY0ZjAxYzk2ZDBiZTI0MzA4Y2VhYTk4NmQxNmU5Li5lMjY3ODY5ZmU3NzExMDcxMDQyMDJl
YjE0NjY2ZDg5NWZhMTRhOGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2Ny
aXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgK
QEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA4IE5p
a29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMp
IDIwMDgtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTI5LDEzICszMCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAsIHB1YmxpYyBTVkdVUklSZWZlcmVuY2UKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLCBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKK2NsYXNz
IFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVudCwgcHVibGljIFNWR1VS
SVJlZmVyZW5jZSwgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIHB1YmxpYyBT
Y3JpcHRFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNWR1NjcmlwdEVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVk
QnlQYXJzZXIpOwogCisgICAgdXNpbmcgU1ZHRWxlbWVudDo6cmVmOworICAgIHVzaW5nIFNWR0Vs
ZW1lbnQ6OmRlcmVmOworCiBwcml2YXRlOgogICAgIFNWR1NjcmlwdEVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIGFs
cmVhZHlTdGFydGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9Y
TUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3Vt
ZW50UGFyc2VyLmNwcAppbmRleCA5MjYwNWZjMDIzNWM3YWVmYmU3NmFjODYxZTBmODVmNmU4YTVk
YThmLi42OTU2ZDc4YTcxYjIwNWZhMTJiNDMzMzBjM2UzODQ5N2MxNjYzZTMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMSw2ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgUGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNv
bSkKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtv
diAoYXBAd2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIChz
YW1Ad2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKQEAgLTIzNyw4ICsyMzcsNyBAQCB2b2lkIFhNTERv
Y3VtZW50UGFyc2VyOjpub3RpZnlGaW5pc2hlZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0
KQogICAgIG1fcGVuZGluZ1NjcmlwdCA9IG51bGxwdHI7CiAgICAgcGVuZGluZ1NjcmlwdC5jbGVh
ckNsaWVudCgpOwogCi0gICAgYXV0byYgc2NyaXB0RWxlbWVudCA9ICp0b1NjcmlwdEVsZW1lbnRJ
ZlBvc3NpYmxlKCZwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKSk7Ci0gICAgc2NyaXB0RWxlbWVudC5l
eGVjdXRlUGVuZGluZ1NjcmlwdChwZW5kaW5nU2NyaXB0KTsKKyAgICBwZW5kaW5nU2NyaXB0LmVs
ZW1lbnQoKS5leGVjdXRlUGVuZGluZ1NjcmlwdChwZW5kaW5nU2NyaXB0KTsKIAogICAgIGlmICgh
aXNEZXRhY2hlZCgpICYmICFtX3JlcXVlc3RpbmdTY3JpcHQpCiAgICAgICAgIHJlc3VtZVBhcnNp
bmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQ
YXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQ
YXJzZXJMaWJ4bWwyLmNwcAppbmRleCA3MDY3Njc2ZGQxN2E3NGQ5ZTQyNzI5ZDNkMjlkM2RkOGU4
YTdmOGNlLi5mNDgxMDA1MjY3MTE2MjkwZmIxZmQ1MzZjODA4OTEwY2JlNTZhODMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnht
bDIuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwMCBQZXRlciBL
ZWxseSA8cG1rQHBvc3QuY29tPgotICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQ
cm9za3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVs
IFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCkBAIC03OTksOCArNzk5LDcgQEAg
dm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50TnMoY29uc3QgeG1sQ2hhciogeG1s
TG9jYWxOYW1lLCBjb25zdCB4bWxDaGEKIAogICAgIG5ld0VsZW1lbnQtPmJlZ2luUGFyc2luZ0No
aWxkcmVuKCk7CiAKLSAgICBTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRF
bGVtZW50SWZQb3NzaWJsZShuZXdFbGVtZW50LnB0cigpKTsKLSAgICBpZiAoc2NyaXB0RWxlbWVu
dCkKKyAgICBpZiAoaXNTY3JpcHRFbGVtZW50KG5ld0VsZW1lbnQuZ2V0KCkpKQogICAgICAgICBt
X3NjcmlwdFN0YXJ0UG9zaXRpb24gPSB0ZXh0UG9zaXRpb24oKTsKIAogICAgIG1fY3VycmVudE5v
ZGUtPnBhcnNlckFwcGVuZENoaWxkKG5ld0VsZW1lbnQpOwpAQCAtODQzLDcgKzg0Miw3IEBAIHZv
aWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgaWYgKGhhY2tBcm91bmRM
aWJYTUxFbnRpdHlQYXJzaW5nQnVnKCkgJiYgY29udGV4dCgpLT5kZXB0aCA8PSBkZXB0aFRyaWdn
ZXJpbmdFbnRpdHlFeHBhbnNpb24oKSkKICAgICAgICAgc2V0RGVwdGhUcmlnZ2VyaW5nRW50aXR5
RXhwYW5zaW9uKC0xKTsKIAotICAgIGlmICghc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChwYXJz
ZXJDb250ZW50UG9saWN5KCkpICYmIGlzPEVsZW1lbnQ+KCpub2RlKSAmJiB0b1NjcmlwdEVsZW1l
bnRJZlBvc3NpYmxlKGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUuZ2V0KCkpKSkgeworICAgIGlmICgh
c2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChwYXJzZXJDb250ZW50UG9saWN5KCkpICYmIGlzPEVs
ZW1lbnQ+KCpub2RlKSAmJiBpc1NjcmlwdEVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUp
KSkgewogICAgICAgICBwb3BDdXJyZW50Tm9kZSgpOwogICAgICAgICBub2RlLT5yZW1vdmUoKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtODU0LDcgKzg1Myw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJz
ZXI6OmVuZEVsZW1lbnROcygpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBFbGVtZW50
JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpOworICAgIGF1dG8mIGVsZW1lbnQg
PSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7CiAKICAgICAvLyBUaGUgZWxlbWVudCdzIHBhcmVu
dCBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gcmVtb3ZlZCBmcm9tIGRvY3VtZW50LgogICAgIC8vIFBh
cnNpbmcgY29udGludWVzIGluIHRoaXMgY2FzZSwgYnV0IHNjcmlwdHMgYXJlbid0IGV4ZWN1dGVk
LgpAQCAtODYzLDggKzg2Miw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnRO
cygpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTY3JpcHRFbGVtZW50KiBzY3JpcHRF
bGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmZWxlbWVudCk7Ci0gICAgaWYgKCFz
Y3JpcHRFbGVtZW50KSB7CisgICAgaWYgKCFpc1NjcmlwdEVsZW1lbnQoZWxlbWVudCkpIHsKICAg
ICAgICAgcG9wQ3VycmVudE5vZGUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTg3Mywx
NSArODcxLDE2IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAg
QVNTRVJUKCFtX3BlbmRpbmdTY3JpcHQpOwogICAgIG1fcmVxdWVzdGluZ1NjcmlwdCA9IHRydWU7
CiAKLSAgICBpZiAoc2NyaXB0RWxlbWVudC0+cHJlcGFyZVNjcmlwdChtX3NjcmlwdFN0YXJ0UG9z
aXRpb24sIFNjcmlwdEVsZW1lbnQ6OkFsbG93TGVnYWN5VHlwZUluVHlwZUF0dHJpYnV0ZSkpIHsK
KyAgICBhdXRvJiBzY3JpcHRFbGVtZW50ID0gZG93bmNhc3RTY3JpcHRFbGVtZW50KGVsZW1lbnQp
OworICAgIGlmIChzY3JpcHRFbGVtZW50LnByZXBhcmVTY3JpcHQobV9zY3JpcHRTdGFydFBvc2l0
aW9uLCBTY3JpcHRFbGVtZW50OjpBbGxvd0xlZ2FjeVR5cGVJblR5cGVBdHRyaWJ1dGUpKSB7CiAg
ICAgICAgIC8vIEZJWE1FOiBTY3JpcHQgZXhlY3V0aW9uIHNob3VsZCBiZSBzaGFyZWQgYmV0d2Vl
bgogICAgICAgICAvLyB0aGUgbGlieG1sMiBhbmQgUXQgWE1MRG9jdW1lbnRQYXJzZXIgaW1wbGVt
ZW50YXRpb25zLgogCi0gICAgICAgIGlmIChzY3JpcHRFbGVtZW50LT5yZWFkeVRvQmVQYXJzZXJF
eGVjdXRlZCgpKQotICAgICAgICAgICAgc2NyaXB0RWxlbWVudC0+ZXhlY3V0ZUNsYXNzaWNTY3Jp
cHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRFbGVtZW50LT5zY3JpcHRDb250ZW50KCksIGRvY3Vt
ZW50KCktPnVybCgpLCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24pKTsKLSAgICAgICAgZWxzZSBpZiAo
c2NyaXB0RWxlbWVudC0+d2lsbEJlUGFyc2VyRXhlY3V0ZWQoKSAmJiBzY3JpcHRFbGVtZW50LT5s
b2FkYWJsZVNjcmlwdCgpKSB7Ci0gICAgICAgICAgICBtX3BlbmRpbmdTY3JpcHQgPSBQZW5kaW5n
U2NyaXB0OjpjcmVhdGUoZWxlbWVudCwgKnNjcmlwdEVsZW1lbnQtPmxvYWRhYmxlU2NyaXB0KCkp
OwotICAgICAgICAgICAgbV9wZW5kaW5nU2NyaXB0LT5zZXRDbGllbnQodGhpcyk7CisgICAgICAg
IGlmIChzY3JpcHRFbGVtZW50LnJlYWR5VG9CZVBhcnNlckV4ZWN1dGVkKCkpCisgICAgICAgICAg
ICBzY3JpcHRFbGVtZW50LmV4ZWN1dGVDbGFzc2ljU2NyaXB0KFNjcmlwdFNvdXJjZUNvZGUoc2Ny
aXB0RWxlbWVudC5zY3JpcHRDb250ZW50KCksIGRvY3VtZW50KCktPnVybCgpLCBtX3NjcmlwdFN0
YXJ0UG9zaXRpb24pKTsKKyAgICAgICAgZWxzZSBpZiAoc2NyaXB0RWxlbWVudC53aWxsQmVQYXJz
ZXJFeGVjdXRlZCgpICYmIHNjcmlwdEVsZW1lbnQubG9hZGFibGVTY3JpcHQoKSkgeworICAgICAg
ICAgICAgbV9wZW5kaW5nU2NyaXB0ID0gUGVuZGluZ1NjcmlwdDo6Y3JlYXRlKHNjcmlwdEVsZW1l
bnQsICpzY3JpcHRFbGVtZW50LmxvYWRhYmxlU2NyaXB0KCkpOworICAgICAgICAgICAgbV9wZW5k
aW5nU2NyaXB0LT5zZXRDbGllbnQoKnRoaXMpOwogCiAgICAgICAgICAgICAvLyBtX3BlbmRpbmdT
Y3JpcHQgd2lsbCBiZSBudWxscHRyIGlmIHNjcmlwdCB3YXMgYWxyZWFkeSBsb2FkZWQgYW5kIHNl
dENsaWVudCgpIGV4ZWN1dGVkIGl0LgogICAgICAgICAgICAgaWYgKG1fcGVuZGluZ1NjcmlwdCkK
QEAgLTg5NiwxOSArODk1LDE5IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnRO
cygpCiAgICAgcG9wQ3VycmVudE5vZGUoKTsKIH0KIAotdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6
Y2hhcmFjdGVycyhjb25zdCB4bWxDaGFyKiBzLCBpbnQgbGVuKQordm9pZCBYTUxEb2N1bWVudFBh
cnNlcjo6Y2hhcmFjdGVycyhjb25zdCB4bWxDaGFyKiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKQog
ewogICAgIGlmIChpc1N0b3BwZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fcGFy
c2VyUGF1c2VkKSB7Ci0gICAgICAgIG1fcGVuZGluZ0NhbGxiYWNrcy0+YXBwZW5kQ2hhcmFjdGVy
c0NhbGxiYWNrKHMsIGxlbik7CisgICAgICAgIG1fcGVuZGluZ0NhbGxiYWNrcy0+YXBwZW5kQ2hh
cmFjdGVyc0NhbGxiYWNrKGNoYXJhY3RlcnMsIGxlbmd0aCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICAgICBpZiAoIW1fbGVhZlRleHROb2RlKQogICAgICAgICBjcmVhdGVMZWFmVGV4dE5v
ZGUoKTsKLSAgICBtX2J1ZmZlcmVkVGV4dC5hcHBlbmQocywgbGVuKTsKKyAgICBtX2J1ZmZlcmVk
VGV4dC5hcHBlbmQoY2hhcmFjdGVycywgbGVuZ3RoKTsKIH0KIAogdm9pZCBYTUxEb2N1bWVudFBh
cnNlcjo6ZXJyb3IoWE1MRXJyb3JzOjpFcnJvclR5cGUgdHlwZSwgY29uc3QgY2hhciogbWVzc2Fn
ZSwgdmFfbGlzdCBhcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBjMTAxOTI0ZWE1ZjFkNjYyOTNiMTk5YTMwMDEyNGRi
MmMyM2Y1N2I0Li45MDAwNmViMTAzNjMyNTZlM2E3MjMwN2MyNDRhYWVjYmIxODExZTdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDA4LCAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzEsMTIgKzMxLDYgQEAKICNpbXBvcnQgPFdlYkNvcmUv
Rm9jdXNEaXJlY3Rpb24uaD4KICNpbXBvcnQgPHd0Zi9Gb3J3YXJkLmg+CiAKLSNpZiBQTEFURk9S
TShJT1MpCi0jaW1wb3J0IDx3dGYvUGxhdGZvcm0uaD4KLSNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgotI2ltcG9ydCA8V2ViQ29yZS9DaHJvbWUuaD4KLSNlbmRpZgotCiBAY2xhc3MgV2Vi
VmlldzsKIAogY2xhc3MgV2ViQ2hyb21lQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkNocm9tZUNs
aWVudCB7CkBAIC0xMjUsNyArMTE5LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHJ1
bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29z
ZXI+KSBvdmVycmlkZTsKLSAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdU
Rjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyKikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpG
aWxlSWNvbkxvYWRlciYpIG92ZXJyaWRlOwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICB2b2lk
IHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsKQEAgLTIxNCwxMSAr
MjA4LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzUmVsZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcyhi
b29sIGlzVGV4dE9ubHkpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJ
T1MpCiAgICAgV2ViVmlldyogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fd2ViVmlldzsgfQot
I2Vsc2UKLSAgICBXZWJWaWV3KiB3ZWJWaWV3KCkgeyByZXR1cm4gbV93ZWJWaWV3OyB9Ci0jZW5k
aWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJ
T1MpCiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCAvKmNv
bnRleHRJZCovKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCBiY2VhZmQ1MTE2NTMyMmIzYWRiYTc5NGMw
YzFmNThkYjVjZTE5YThiLi5kN2VjOGNiMWI0NmFiNzgxOGUwZGUyMjQxMjZjYWE1YTA2NWRhMjkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC03NTcsOSArNzU3LDkgQEAgdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNo
b29zZXI+IGNob29zZXIpCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAotdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
IGZpbGVuYW1lcywgRmlsZUljb25Mb2FkZXIqIGljb25Mb2FkZXIpCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBG
aWxlSWNvbkxvYWRlciYgaWNvbkxvYWRlcikKIHsKLSAgICBpY29uTG9hZGVyLT5ub3RpZnlGaW5p
c2hlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7CisgICAgaWNvbkxvYWRl
ci5pY29uTG9hZGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAog
I2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAwM2Q4YTI2ZDkzOGYxMjY3MDViMDBlNjMx
YTUzMzgyNjY3NjMzMTc5Li5mMjRlNjMzNDQ1ZTQzNTViM2I0MjhmOTk4N2RjNDJmODEyYzFiZmZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LTIw
MDgsIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTY4MCw5ICs2ODAsOSBAQCB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJw
RmlsZUNob29zZQogICAgIC8vIEZJWE1FOiBTaG93IHNvbWUgc29ydCBvZiBlcnJvciBpZiB0b28g
bWFueSBmaWxlcyBhcmUgc2VsZWN0ZWQgYW5kIHRoZSBidWZmZXIgaXMgdG9vIHNtYWxsLiAgRm9y
IG5vdywgdGhpcyB3aWxsIGZhaWwgc2lsZW50bHkuCiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50
Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIGZpbGVuYW1lcywg
V2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqIGxvYWRlcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojps
b2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIGZpbGVuYW1lcywgV2Vi
Q29yZTo6RmlsZUljb25Mb2FkZXImIGxvYWRlcikKIHsKLSAgICBsb2FkZXItPm5vdGlmeUZpbmlz
aGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKKyAgICBsb2FkZXIuaWNv
bkxvYWRlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7CiB9CiAKIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4
IDg5ZDZjODc0YmQ0NGY5Y2Q2ZWQ1NWIwNjBiZGZjZGI4NzM2ZmMyODIuLjM0OGY0YzM1ZWY3MjBm
Yjk5ZDg3ZDY0M2VkYzg1YTlkMDE1Y2RjZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNi0yMDA5LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0xMTYsNyArMTE2LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVk
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNz
UmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPik7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRJY29u
Rm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9h
ZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdU
Rjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJik7CiAKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKaW5kZXggN2YwZTc1ZGNiOTgyM2JiMmRkYzEwY2U2MDkxZDE5NDRhZDkyMmE3NS4uZGMzZmVk
NWM5YmJmZTMwYzhiZDIwYWVlOWU5YjAxZDgyZGZlNGZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dApAQCAtNzYxLDkgKzc2MSw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFu
ZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBwcnBGaWxlCiAgICAgbV9w
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bk9wZW5QYW5lbCh3ZWJGcmFtZS0+
ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIGZpbGVDaG9v
c2VyLT5zZXR0aW5ncygpKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZv
ckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9hZGVyKiBs
b2FkZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0
b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciYgbG9hZGVyKQogewotICAgIGxv
YWRlci0+bm90aWZ5RmluaXNoZWQoSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykp
OworICAgIGxvYWRlci5pY29uTG9hZGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFt
ZXMpKTsKIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAw
NWU0YjM1YTFkZTE4YjllYmVmODU0MDUyNmFmYjJhNWVmZGZkNzZjLi43NmVlMjJlNmU5ZDZiOWNi
MzRlMDE4MzkxNWY5OGY2NjE3MzM2OWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExLCAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBA
IC0xODIsNyArMTgyLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFu
ZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jiwg
V2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKSBvdmVycmlkZTsKKyAgICB2b2lkIGxvYWRJY29uRm9y
RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpIG92
ZXJyaWRlOwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBX
ZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298057</attachid>
            <date>2017-01-04 18:49:32 -0800</date>
            <delta_ts>2017-01-04 21:11:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166635-20170104184804.patch</filename>
            <type>text/plain</type>
            <size>690039</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMzExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ5MDc5YWQwOGEyOTM1MGM1MjZiZjM3
ODRkNGRiMmNlZjVjZmE1OGQuLjZlMjc0Y2FkMWM3ODE2YjllZjAwOTdiMGFhYjUwZjA0YmM5MGU0
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDEtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRt
bCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpt
YWtlUmVmUHRyKTogQWRkZWQuCisKIDIwMTctMDEtMDQgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjEwMjU3KTogY29tLmFwcGxlLldlYktpdC5X
ZWJDb250ZW50LkRldmVsb3BtZW50IGNyYXNoZWQgaW4gY29tLmFwcGxlLldlYkNvcmU6IFdlYkNv
cmU6OkV4Y2VwdGlvbk9yPFdURjo6UmVmPFdlYkNvcmU6OkRhdGFiYXNlPiA+OjpvcGVyYXRvcj0g
KyAxNApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDNjMjc3MTIxYzU3MzM0OWVkYWI0MWM2Nzg0YTNiZDY5YTExNTA5
ODUuLjMwZWY5ZWVhOTVkM2VkYzFkNzFjNTRjYWQ3MzM5MjY3ODFlMWUyYzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw3NzIgQEAKKzIwMTctMDEtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRtbCIgZGly
ZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IFJlbW92ZWQgdGhlIGR1cGxpY2F0
ZSBjb3BpZXMgb2YgYWxsIHRoZSBXZWJHTC1zcGVjaWZpYyBmaWxlcworICAgICAgICBpbiB0aGUg
bWFpbiBsaXN0IG9mIHNvdXJjZSBmaWxlczsgdGhlcmUgaXMgbm8gdmFsdWUgaW4gbGlzdGluZyB0
aGVtIHR3aWNlLgorICAgICAgICBSZXBsYWNlZCBXZWJHTEdldEluZm8uY3BwIHdpdGggV2ViR0xB
bnkuY3BwLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKTogVXBk
YXRlcyBzaW5jZSB0aGUgdHJhY2tzIGZ1bmN0aW9ucworICAgICAgICByZXR1cm4gcmVmZXJlbmNl
cyBub3cuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0
U2Vla1RpbWVGb3JNZWRpYVRpbWUpOiBSZW1vdmVkCisgICAgICAgIHVubmVlZGVkIFNvdXJjZUJ1
ZmZlclByaXZhdGUqIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjph
cHBlbmRCdWZmZXJUaW1lckZpcmVkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VC
dWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJl
bmRlcmluZ0Vycm9yKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnZp
ZGVvVHJhY2tzKTogUmV0dXJuIGEgcmVmZXJlbmNlIHJhdGhlciB0aGFuIGEgcG9pbnRlci4KKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6YXVkaW9UcmFja3MpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrcyk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRp
YWxpemF0aW9uU2VnbWVudCk6CisgICAgICAgIFJlbW92ZWQgdW5uZWVkZWQgU291cmNlQnVmZmVy
UHJpdmF0ZSogYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnZhbGlk
YXRlSW5pdGlhbGl6YXRpb25TZWdtZW50KTogVXBkYXRlZCBzaW5jZSB0cmFja3MKKyAgICAgICAg
ZnVuY3Rpb25zIG5vdyByZXR1cm4gYSBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSk6IFJlbW92ZWQgdW5u
ZWVkZWQKKyAgICAgICAgU291cmNlQnVmZmVyUHJpdmF0ZSogYXJndW1lbnQuCisgICAgICAgIChX
ZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlSGFz
VmlkZW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dmlkZW9UcmFj
a1NlbGVjdGVkQ2hhbmdlZCk6IFRha2UgYSByZWZlcmVuY2UgcmF0aGVyIHRoYW4KKyAgICAgICAg
YSBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjphdWRpb1RyYWNrRW5h
YmxlZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dGV4
dFRyYWNrTW9kZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
cjo6dGV4dFRyYWNrQWRkQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXI6OnRleHRUcmFja0FkZEN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXI6OnRleHRUcmFja1JlbW92ZUN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrS2luZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZEJlY29tZVJlYWR5Rm9y
TW9yZVNhbXBsZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6cHJv
dmlkZU1lZGlhRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpy
ZWVucXVldWVNZWRpYUZvclRpbWUpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBSZXBsYWNlZCBXZWJHTEdldElu
Zm8gd2l0aCBXZWJHTEFueS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTENhbnZhc1N0
eWxlKTogUmVtb3ZlZCBleHBsaWNpdCBjYXN0IHRvIENhbnZhc1N0eWxlIGFuZCB1bm5lZWRlZAor
ICAgICAgICBjb252ZXJzaW9uIHRvIGEgcG9pbnRlciBzaW5jZSBDYW52YXNTdHlsZSBjb25zdHJ1
Y3RvcnMgbm93IHRha2UgcmVmZXJlbmNlcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1
Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5JbnN0YW5j
ZSk6IFVwZGF0ZWQgc2luY2UgYmluZGluZ3NJbnN0YW5jZSBub3cgcmV0dXJucyBhIHJhdyBwb2lu
dGVyLgorICAgICAgICAoV2ViQ29yZTo6cGx1Z2luU2NyaXB0T2JqZWN0KTogRGl0dG8uCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IE1vdmVkIHRvIFdlYkdMQW55LmgvY3BwLgorICAgICAg
ICAoV2ViQ29yZTo6SlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVy
KTogVXBkYXRlZCBzaW5jZSB0aGUgdG9KUworICAgICAgICBmdW5jdGlvbiBpbiBXZWJHTEFueS5o
IHRha2VzIHJlZmVyZW5jZXMsIG5vdCBwb2ludGVycy4KKworICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHA6IFJlbW92ZWQgcXVpdGUgYSBm
ZXcgdW5uZWVkZWQKKyAgICAgICAgaW5jbHVkZXMgYW5kIGdvdCByaWQgb2YgYSBsb3Qgb2YgdW5u
ZWVkZWQgSlNDIHByZWZpeGVzLgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IE1vdmVkIHRvIFdl
YkdMQW55LmgvY3BwLgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpvYmplY3RQYXJhbWV0ZXIpOiBSZW5hbWVkIGZyb20gZ2V0T2JqZWN0UGFy
YW1ldGVyIGFuZCBhbHNvIGNoYW5nZWQgdG8KKyAgICAgICAgdGFrZSBhIHBvaW50ZXIgdG8gbWVt
YmVyIGZ1bmN0aW9uIHNvIHdlIGRvbid0IG5lZWQgYW4gZW51bSBhbmQgYSBzd2l0Y2ggc3RhdGVt
ZW50LgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IENoYW5nZWQgdG8gdGFrZSByZWZlcmVuY2Vz
IHJhdGhlciB0aGFuIHBvaW50ZXJzLgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRBdHRhY2hlZFNoYWRlcnMpOiBVc2UgYSBtb2Rlcm4gZm9yIGxvb3Au
CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZl
clBhcmFtZXRlcik6IFVzZSBvYmplY3RQYXJhbWV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpKU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0
ZXhBdHRyaWIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnRvTnVtYmVyVmVjdG9yKTogUmVu
YW1lZCBmcm9tIHRvVmVjdG9yLCBzaW5jZSB0aGlzIGlzIHNwZWNpZmljYWxseSBmb3IKKyAgICAg
ICAgdmVjdG9ycyBvZiBudW1iZXJzLiBVc2UgdW5jaGVja2VkQXBwZW5kIGluc3RlYWQgb2YgYXNz
aWdubWVudC4KKyAgICAgICAgKFdlYkNvcmU6OmZ1bmN0aW9uRm9yVW5pZm9ybSk6IE1hcmtlZCB0
aGlzIGlubGluZS4KKyAgICAgICAgKFdlYkNvcmU6OmRhdGFGdW5jdGlvbmYpOiBVcGRhdGVkIGZv
ciBhYm92ZSBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uaSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uTWF0cml4KTogRGl0dG8uCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6IE1vdmVkIGFzc2VydGlvbnMgdG8gdGhlIHRv
cCBvZiB0aGUgZnVuY3Rpb24uCisgICAgICAgIEFsc28gYWRkZWQgYSBGSVhNRSBiZWNhdXNlIGl0
J3MgdW5jbGVhciB3aHkgdGhlc2UgYXNzZXJ0aW9ucyBhcmUgY29ycmVjdC4gVXBkYXRlZAorICAg
ICAgICB0byB1c2UgZG93bmNhc3RTY3JpcHRFbGVtZW50IGluc3RlYWQgb2YgdG9TY3JpcHRFbGVt
ZW50SWZQb3NzaWJsZS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOiBTb3J0ZWQgbGlzdCBv
ZiBmb3J3YXJkLWRlY2xhcmVkIGNsYXNzZXMuIFJlbW92ZWQgZHVwbGljYXRlCisgICAgICAgIGZv
cndhcmQgZGVjbGFyYXRpb24gb2YgU2NyaXB0TW9kdWxlTG9hZGVyLgorCisgICAgICAgICogZG9t
L1BlbmRpbmdTY3JpcHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ1NjcmlwdDo6Y3Jl
YXRlKTogVGFrZSBhIFNjcmlwdEVsZW1lbnQgaW5zdGVhZCBvZiBhbiBFbGVtZW50LgorICAgICAg
ICAoV2ViQ29yZTo6UGVuZGluZ1NjcmlwdDo6UGVuZGluZ1NjcmlwdCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6UGVuZGluZ1NjcmlwdDo6bG9hZGFibGVTY3JpcHQpOiBNb3ZlZCBpbmxpbmUg
dG8gaGVhZGVyIGFuZCBtYWRlIGlubGluZS4KKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdTY3Jp
cHQ6OnNldENsaWVudCk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisg
ICAgICAgICogZG9tL1BlbmRpbmdTY3JpcHQuaDogVVBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4K
KworICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQpOiBQYXNzIGEgcmVmZXJlbmNlIGluc3RlYWQgb2Yg
YSBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVmKTogQWRkZWQu
IEZvcndhcmRzIHJlZi9kZXJlZiB0byB0aGUgdW5kZXJseWluZyBlbGVtZW50CisgICAgICAgIHNv
IHdlIGNhbiB1c2UgUmVmIGFuZCBSZWZQdHIgd2l0aCB0aGlzIGNsYXNzLgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0RWxlbWVudDo6ZGVyZWYpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Omlz
U2NyaXB0RWxlbWVudCk6IEFkZGVkLiBSZXBsYWNlcyBvbmUgb2YgdGhlIHR3byB1c2VzIG9mCisg
ICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUsIGFuZCBpcyBzaW1pbGFyIGluIHN0eWxl
IHRvIGlzPEVsZW1lbnQ+LgorICAgICAgICAoV2ViQ29yZTo6ZG93bmNhc3RTY3JpcHRFbGVtZW50
KTogRGl0dG8sIGJ1dCBmb3IgZG93bmNhc3QuCisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQu
aDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGRvbS9TY3JpcHRSdW5u
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4
ZWN1dGlvbik6IFRha2UgcmVmZXJlbmNlIHJhdGhlciB0aGFuCisgICAgICAgIHBvaW50ZXIsIGFu
ZCBwYXNzIFNjcmlwdEVsZW1lbnQgcmF0aGVyIHRoYW4gRWxlbWVudC4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdFJ1bm5lcjo6bm90aWZ5RmluaXNoZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCk6IERpdHRvLgorICAgICAgICAqIGRvbS9TY3Jp
cHRSdW5uZXIuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwv
RmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpmaWxl
cyk6IFVwZGF0ZWQgc2luY2UgbV9maWxlTGlzdCBpcyBhIFJlZi4KKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVJbnB1dFR5cGU6OmNyZWF0ZUZpbGVMaXN0KTogVXBkYXRlZCB0byByZXR1cm4gYSBSZWYg
aW5zdGVhZCBvZgorICAgICAgICBhIFBhc3NSZWZQdHIuIEFsc28gdXNlIHJlc2VydmVJbml0aWFs
Q2FwYWNpdHkvdW5jaGVja2VkQXBwZW5kLgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlw
ZTo6cmVxdWVzdEljb24pOiBVcGRhdGVkIHNpbmNlIHRoZSB1cGRhdGVSZW5kZXJpbmcKKyAgICAg
ICAgZnVuY3Rpb24gaXMgbm93IGNhbGxlZCBpY29uTG9hZGVkLiBBbHNvIHVzZSByZWZlcmVuY2Vz
IGluc3RlYWQgb2YgcG9pbnRlcnMuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpz
ZXRGaWxlcyk6IFRha2UgYSBSZWZQdHImJiBpbnN0ZWQgb2YgYSBQYXNzUmVmUHRyLgorICAgICAg
ICBBbHNvIHB1dCBzb21lIGNvbmRpdGlvbmFsIGNvZGUgaW5zaWRlIGFuICNpZi4KKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKTogVXBkYXRlZCBmb3IgZnVuY3Rp
b24gbmFtZSBjaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjppY29uTG9h
ZGVkKTogUmVuYW1lZCBmcm9tIHVwZGF0ZVJlbmRlcmluZy4KKyAgICAgICAgQ2hhbmdlZCBhcmd1
bWVudCB0byBSZWZQdHImJiBmcm9tIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpGaWxl
SW5wdXRUeXBlOjpkZWZhdWx0VG9vbFRpcCk6IEdvdCByaWQgb2YgdW5uZWVkZWQgbG9jYWwgdmFy
aWFibGUKKyAgICAgICAgYW5kIHVzZWQgdGhlIGNvcnJlY3QgdHlwZSwgdW5zaWduZWQsIHJhdGhl
ciB0aGFuIHNpemVfdC4KKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDogVXBkYXRlZCBm
b3IgdGhlIGFib3ZlIGNoYW5nZXMsIHVzZSBmaW5hbCBpbnN0ZWFkCisgICAgICAgIG9mIG92ZXJy
aWRlLCBhbmQgdXNlIFJlZiBpbnN0ZWFkIG9mIFJlZlB0ci4KKworICAgICAgICAqIGh0bWwvSFRN
TEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmZvcm0pOiBSZW5h
bWVkIGZyb20gdmlydHVhbEZvcm0uCisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOiBSZXBs
YWNlZCB0aGUgZm9ybS92aXJ0dWFsRm9ybSBwYWlyIG9mIGZ1bmN0aW9ucyB3aXRoCisgICAgICAg
IGp1c3QgYSBmb3JtIGZ1bmN0aW9uLiBUaGUgb2xkIGRlc2lnbiBkYXRlcyBiYWNrIGJlZm9yZSB3
ZSBoYWQgImZpbmFsIiBmb3IKKyAgICAgICAgdmlydHVhbCBmdW5jdGlvbnMsIGFuZCBub3cgd2Ug
Y2FuIGp1c3QgdXNlIHRoYXQgaW5zdGVhZC4KKworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50
Ojp2aXJ0dWFsRm9ybSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50Lmg6IE1hcmsgdGhlIGZvcm0gZnVuY3Rpb24gZmluYWwsIHNpbmNlIGl0J3MKKyAgICAg
ICAgbm93IGJvdGggYW4gaW5saW5lIGZ1bmN0aW9uIGluIHRoaXMgY2xhc3MsIGFuZCBhbiBvdmVy
cmlkZSBvZiBhIHZpcnR1YWwKKyAgICAgICAgZnVuY3Rpb24gaW5oZXJpdGVkIGZyb20gdGhlIGJh
c2UgY2xhc3MuIERlbGV0ZWQgdGhlIHZpcnR1YWxGb3JtIGZ1bmN0aW9uLgorCisgICAgICAgICog
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBSZW1vdmVkIHVzZSBvZiB0aGUKKyAgICAgICAg
Zm9ybUZvclN1Ym1pc3Npb24gZnVuY3Rpb24sIHdoaWNoIHdhcyBqdXN0IGFub3RoZXIgd2F5IHRv
IGdldCB0aGUgc2FtZQorICAgICAgICB0aGluZyBhcyB0aGUgZm9ybSBmdW5jdGlvbjsgcGVyaGFw
cyB0aGV5IHdlcmUgZGlmZmVyZW50IGluIHRoZSBwYXN0LgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6c2V0RmlsZXMpOiBUYWtlIGEgUmVmUHRyJiYgcmF0aGVyIHRoYW4gYSBQ
YXNzUmVmUHRyLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOiBVcGRhdGVkIGZv
ciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTExhYmVsRWxlbWVudDo6Y29udHJvbCk6IE1hZGUgdGhpcyBjb25z
dC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMYWJlbEVsZW1lbnQ6OmZvcm0pOiBNYWRlIHRoaXMg
Y29uc3QsIHNvIGl0IGNhbiBiZSB1c2VkIHRvCisgICAgICAgIG92ZXJyaWRlIHRoZSBjb25zdCBm
b3JtIGZ1bmN0aW9uIGZyb20gdGhlIGJhc2UgY2xhc3MuCisgICAgICAgICogaHRtbC9IVE1MTGFi
ZWxFbGVtZW50Lmg6IE1hcmtlZCB0aGUgZm9ybSBmdW5jdGlvbiBmaW5hbCwgc2luY2Ugd2Ugd2Fu
dCBpdAorICAgICAgICB0byBvdmVycmlkZSB0aGUgZm9ybSBmdW5jdGlvbiBpbmhlcml0ZWQgZnJv
bSBIVE1MRWxlbWVudC4KKworICAgICAgICAqIGh0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTExlZ2VuZEVsZW1lbnQ6OmZvcm0pOiBSZW5hbWVkIGZyb20g
dmlydHVhbEZvcm0uCisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oOiBPdmVycmlk
ZSBmb3JtIGluc3RlYWQgb2YgdmlydHVhbEZvcm0gYW5kIG1hcmsgaXQgZmluYWwKKyAgICAgICAg
VGhpcyBtYWtlcyB0aGluZ3MgbW9yZSBlZmZpY2llbnQgaWYgc29tZW9uZSBjYWxscyBmb3JtIGRp
cmVjdGx5IG9uIHRoaXMgY2xhc3M7CisgICAgICAgIGJlZm9yZSBpdCB3b3VsZCBtYWtlIGFuIHVu
bmVjZXNzYXJ5IHZpcnR1YWwgZnVuY3Rpb24gY2FsbC4KKworICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFja0Rpc3BsYXlVcGRhdGVTY29w
ZTo6VHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUpOiBUYWtlIGEgcmVmZXJlbmNlCisgICAgICAgIHJh
dGhlciB0aGFuIGEgcG9pbnRlci4KKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrRGlzcGxheVVwZGF0
ZVNjb3BlOjp+VHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OmV2ZW50VGltZUN1ZUNvbXBhcmUpOiBDb21wYXJlIHRoZSBjdWVzIHRoZSBzYW1lIHdheSB0
aGUgY3VlIGxpc3Qgd291bGQKKyAgICAgICAgcmF0aGVyIHRoYW4gdXNpbmcgY3VlSW5kZXguCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRpb1RyYWNrRW5hYmxlZENoYW5n
ZWQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0tpbmRDaGFuZ2VkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZW1v
dmVDdWVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0
VHJhY2tBZGRDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnRleHRUcmFja1JlbW92ZUN1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKTogUGFzcyByZWZlcmVuY2VzLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRUZXh0
VHJhY2spOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlh
UGxheWVyRGlkQWRkVmlkZW9UcmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6cmVtb3ZlVGV4dFRyYWNrKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50Ojpmb3JnZXRSZXNvdXJjZVNwZWNpZmljVHJhY2tzKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyKTogVGFrZSBh
IFJlZlB0ciYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRp
YUVsZW1lbnQuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwv
SFRNTE9iamVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1l
bnQ6OnZpcnR1YWxGb3JtKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVt
ZW50Lmg6IE1hZGUgdGhlIGZvcm0gZnVuY3Rpb24gaW5saW5lIGFuZCBmaW5hbCwgd2hpY2gKKyAg
ICAgICAgYWNoaWV2ZXMgdGhlIHNhbWUgdGhpbmcgd2UgZGlkIGJlZm9yZSB3aXRoIHVzaW5nLCBi
dXQgd2l0aG91dCByZXF1aXJpbmcgdGhlCisgICAgICAgIHNlcGFyYXRlIHZpcnR1YWxGb3JtIGZ1
bmN0aW9uLCBub3cgZGVsZXRlZC4KKworICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25J
bm5lclRleHQpOiBVc2UgaXNTY3JpcHRFbGVtZW50CisgICAgICAgIGluc3RlYWQgb2YgdG9TY3Jp
cHRFbGVtZW50SWZQb3NzaWJsZS4KKworICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OmJpbmRpbmdzSW5zdGFu
Y2UpOiBSZW5hbWVkIGZyb20gZ2V0SW5zdGFuY2UgYW5kCisgICAgICAgIGNoYW5nZWQgdGhlIHJl
dHVybiB0eXBlIHRvIGEgcmF3IHBvaW50ZXIuCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUgY2hhbmdlcy4gQWxzbyBjaGFuZ2VkIHRoZQor
ICAgICAgICB1cGRhdGVTbmFwc2hvdCBmdW5jdGlvbiB0byB0YWtlIGEgcmF3IHBvaW50ZXIgaW5z
dGVhZCBvZiBhIFBhc3NSZWZQdHIuCisKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKTogUGFzcyBhIHBvaW50ZXIKKyAgICAgICAgdG8gdXBkYXRlU25h
cHNob3QuCisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVT
bmFwc2hvdCk6IFVwZGF0ZWQgdG8gdGFrZSBhIHJhdworICAgICAgICBwb2ludGVyIGluc3RlYWQg
b2YgYSBQYXNzUmVmUHRyLgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5o
OiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0
RWxlbWVudC5oOiBBZGRlZCB1c2luZyB0byByZXNvbHZlIHRoZSBhbWJpZ3VpdHkgd2l0aCB0aGUK
KyAgICAgICAgcmVmL2RlcmVmIGZyb20gSFRNTEVsZW1lbnQgYW5kIGZyb20gU2NyaXB0RWxlbWVu
dC4KKworICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvbik6IFJl
dHVybiBhIFJlZlB0ciBpbnN0ZWFkCisgICAgICAgIG9mIGEgUGFzc1JlZlB0ci4KKyAgICAgICAg
KiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNo
YW5nZXMuCisKKyAgICAgICAgKiBodG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQpOiBUYWtlIGEg
cmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNr
TW9kZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmFja0VsZW1lbnQ6
OnRleHRUcmFja0FkZEN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmFja0Vs
ZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlKTogRGl0dG8uCisgICAgICAg
ICogaHRtbC9IVE1MVHJhY2tFbGVtZW50Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisK
KyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGU6OmZvcm1Gb3JTdWJtaXNzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZTo6c2V0RmlsZXMpOiBUYWtlIGEgUmVmUHRyJiYgaW5zdGVhZCBvZiBhIFBhc3NSZWZQdHIu
CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4K
KworICAgICAgICAqIGh0bWwvUGx1Z2luRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKTogUGFzcyBhIHJl
ZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRvY3VtZW50OjpzZXRQbHVnaW5FbGVt
ZW50KTogVGFrZSBhIHJlZmVyZW5jZSByYXRoZXIgdGhhbgorICAgICAgICBhIFBhc3NSZWZQdHIu
CisgICAgICAgICogaHRtbC9QbHVnaW5Eb2N1bWVudC5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFu
Z2VzLgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0U3Ryb2tl
U3R5bGUpOiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpzZXRGaWxsU3R5bGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbCk6IERpdHRvLgorCisgICAg
ICAgICogaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fu
dmFzU3R5bGU6OkNhbnZhc1N0eWxlKTogUmV3cml0ZSBhbGwgY29uc3RydWN0b3JzIHRvIHVzZSB0
aGUKKyAgICAgICAgbV9zdHlsZSB2YXJpYW50IGluc3RlYWQgb2Ygc2VwYXJhdGUgbV90eXBlIGFu
ZCBvdGhlciBkYXRhIG1lbWJlcnMuIEFsc28KKyAgICAgICAgY2hhbmdlIGZyb20gUGFzc1JlZlB0
ciB0byBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjpjcmVhdGVG
cm9tU3RyaW5nKTogVXBkYXRlIHRvIHVzZSB0aGUgdmFyaWFudC4KKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhc1N0eWxlOjpjcmVhdGVGcm9tU3RyaW5nV2l0aE92ZXJyaWRlQWxwaGEpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDb2xvcik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmlzRXF1aXZhbGVudFJHQkEpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDTVlLQSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKTogRGVsZXRl
ZCBjb3B5IGNvbnN0cnVjdG9yOyB0aGUgY29tcGlsZXIKKyAgICAgICAgY2FuIG5vdyBnZW5lcmF0
ZSBhIGNvcnJlY3QgY29weSBvciBtb3ZlIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzU3R5bGU6On5DYW52YXNTdHlsZSk6IERlbGV0ZWQuIENvbXBpbGVyIGdlbmVyYXRlcyB0
aGlzCisgICAgICAgIHByb3Blcmx5IG5vdyB3aXRob3V0IGhlbHAgZnJvbSB1cy4KKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhc1N0eWxlOjpvcGVyYXRvcj0pOiBEZWxldGVkLiBUaGUgY29tcGlsZXIg
Y2FuIG5vdyBnZW5lcmF0ZQorICAgICAgICBhIGNvcnJlY3QgY29weSBvZiBtb3ZlIGFzc2lnbm1l
bnQgb3BlcmF0b3IuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHlsZTo6YXBwbHlTdHJva2VD
b2xvcik6IFVwZGF0ZWQgdG8gdGFrZSBhIHJlZmVyZW5jZSBhbmQKKyAgICAgICAgdXNlIHRoZSB2
YXJpYW50LgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmFwcGx5RmlsbENvbG9yKTog
RGl0dG8uCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oOiBSZWRpZCB0aGlz
IGNsYXNzIHRvIHVzZSBhIHZhcmlhbnQgaW5zdGVhZCBvZgorICAgICAgICBhIHR5cGUgZW51bWVy
YXRpb24gYW5kIGEgdW5pb24uCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJh
eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPRVNWZXJ0ZXhBcnJheU9iamVjdDo6Y3Jl
YXRlVmVydGV4QXJyYXlPRVMpOiBVcGRhdGVkIHVzZSBvZiBlbnVtCisgICAgICAgIHNpbmNlIGl0
J3Mgbm93IGFuIGVudW0gY2xhc3MuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQpOiBVc2UgUmVmJiYgaW5zdGVhZCBvZgorICAgICAg
ICBSZWZQdHImJiBmb3IgdGhlIEdyYXBoaWNzQ29udGV4dDNELgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cyk6IFVw
ZGF0ZWQgZW51bQorICAgICAgICBhbmQgYWxzbyB1c2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVy
KTogVXNlIG51bGxwdHIgdG8KKyAgICAgICAgcmV0dXJuIG51bGwgcmF0aGVyIHRoYW4gdGhlIG9s
ZCBpZGlvbSAoZGVmYXVsdC1jb25zdHJ1Y3RlZCBXZWJHTEdldEluZm8pLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dGV4U3RvcmFnZTJEKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRRdWVyeVBhcmFtZXRlcik6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2Ft
cGxlclBhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6Z2V0U3luY1BhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2Nr
UGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpnZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVWZXJ0ZXhBcnJheSk6IFVwZGF0ZWQgZW51
bSBhbmQgYWxzbworICAgICAgICB1c2UgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKTogUmVhcnJhbmdlZCBsb2dpYyBpbiB0
aHJlZSB3YXlzOgorICAgICAgICAoMSkgTW92ZWQgY2hlY2tzIGZvciB3aGV0aGVyIGFuIGV4dGVu
c2lvbiBpcyBzdXBwb3J0ZWQgaW5zaWRlIHRoZSBjYXNlIGZvciB0aGF0CisgICAgICAgIGV4dGVu
c2lvbiwgcmF0aGVyIHRoYW4gY29tYmluaW5nIHRoZSBleHRlbnNpb24gbmFtZSBjaGVjayB3aXRo
IHRoZSBleHRlbnNpb25zCisgICAgICAgIGVuYWJsZWQgY2hlY2suICgyKSBVc2VkIHRoZSBuZXcg
ZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uIGZ1bmN0aW9uIHRvIHNpbXBsaWZ5CisgICAgICAgIG1h
bnkgb2YgdGhlIGNoZWNrcyB0byBhdm9pZCByZXBlYXRpbmcgdGhlIGV4dGVuc2lvbiBuYW1lIHR3
aWNlLiAoMykgQ2hhbmdlZCB0aGUKKyAgICAgICAgaWRpb20gc28gd2Ugc2V0IHRoZSBwb2ludGVy
cyB0byBudWxscHRyIGV4cGxpY2l0bHksIHByZXBhcmluZyBmb3IgYSBmdXR1cmUgd2hlcmUKKyAg
ICAgICAgd2UgbWlnaHQgbWFrZSB0aGUgZXh0ZW5zaW9uIHBvaW50ZXJzIHVzZSBzdGQ6Om9wdGlv
bmFsIHNvIHdlIGNhbiBjYWNoZSBhIG5lZ2F0aXZlCisgICAgICAgIGZvciBlYWNoIGV4dGVuc2lv
biB0b28sIG5vdCBqdXN0IGEgcG9zaXRpdmUgcmVzdWx0LgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucyk6IFVzZSBBU0NJSUxp
dGVyYWwuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIpOiBVc2UgbnVsbHB0cgorICAgICAgICBhcyBhYm92
ZS4gRm9yIG5vbi1udWxsIHR5cGVzLCByZXR1cm4gdGhlIG9iamVjdCB3aXRob3V0IGNvbnZlcnRp
bmcsIGxldHRpbmcgdGhlCisgICAgICAgIFdlYkdMQW55IGNsYXNzIGhhbmRsZSB0aGluZ3MsIGV4
Y2VwdCBmb3IgZW51bWVyYXRpb25zLCB3aGljaCB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkKKyAgICAg
ICAgc3RhdGljX2Nhc3QgdG8gYW4gaW50ZWdyYWwgdHlwZSwgYW5kIHRoaW5ncyB0aGF0IHdpbGwg
YmUgc3RvcmVkIGluIHRoZSB2YXJpYW50IGluCisgICAgICAgIGEgUmVmUHRyLCB3aGVyZSB3ZSB1
c2UgbWFrZVJlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OnZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyk6CisgICAgICAgIFNpbXBsaWZpZWQg
YW5kIGNsYXJpZmllZCB0aGUgaGFuZGxpbmcgb2YgQ09MT1JfQVRUQUNITUVOVC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcik6IFJldHVybiBX
ZWJHTEFueSwgc2FtZSBpZGlvbSBhcworICAgICAgICBkZXNjcmliZWQgYWJvdmUgZm9yIGdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlci4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJH
TDJSZW5kZXJpbmdDb250ZXh0Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTEFueS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
dG9KUyk6IEhhbmRsZXMgY29udmVyc2lvbiB0byBKYXZhU2NyaXB0IHR5cGVzLiBUaGlzIGZ1bmN0
aW9uIGlzIGJhc2VkCisgICAgICAgIG9uIHRoZSBleGlzdGluZyB0b0pTIGZ1bmN0aW9ucyBmcm9t
IHRoZSB0d28gY2xhc3NlcyB0aGF0IHdlcmUgdXNpbmcgV2ViR0xHZXRJbmZvLgorICAgICAgICBF
dmVudHVhbGx5IHdlIGNhbiBwcm9iYWJseSBqdXN0IGdldCB0aGUgYmluZGluZ3MgdG8gYXV0b21h
dGljYWxseSBnZW5lcmF0ZSB0aGlzLAorICAgICAgICBidXQgdGhlcmUgaXMgc29tZSB3b3JrIHRv
IGRvIHRvIGdldCB0byB0aGF0IHBvaW50LgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQW55
Lmg6IEFkZGVkLiBUaGlzIHR5cGUsIGEgdmFyaWFudCwgcmVwbGFjZXMgdGhlIFdlYkdMR2V0SW5m
bworICAgICAgICBjbGFzcy4gQWxzbyBpbmNsdWRlcyB0aGUgdG9KUyBmdW5jdGlvbiwgd2hpY2gg
aXMgdGhlIHJlYWwgcG9pbnQgb2YgdGhpcyB0eXBlLCBzaW5jZQorICAgICAgICBpdCdzIGFib3V0
IHJldHVybmluZyBhIHZhcmlhbnQgbWFwcGVkIGFwcHJvcHJpYXRlbHkgdG8gSmF2YVNjcmlwdCB0
eXBlcy4KKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjpnZXRBR3JhcGhpY3NDb250ZXh0M0Qp
OiBDaGFuZ2VkIHRvIHJldHVybiBhIHJlZmVyZW5jZS4KKyAgICAgICAgRHJvcGVkIHVubmVjZXNz
YXJ5IGxvY2FsIHZhcmlhYmxlIHdpdGggYSBsb25nIHR5cGUgbmFtZS4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMQ29udGV4dEdyb3VwOjphZGRDb250ZXh0KTogVGFrZSBhIHJlZmVyZW5jZS4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjpyZW1vdmVDb250ZXh0KTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlT2JqZWN0KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRHcm91cDo6YWRkT2JqZWN0KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRHcm91cDo6ZGV0YWNoQW5kUmVtb3Zl
QWxsT2JqZWN0cyk6IERyb3BwZWQgdW5uZWNlc3NhcnkKKyAgICAgICAgbG9jYWwgdmFyaWFibGUg
d2l0aCBhIGxvbmcgdHlwZSBuYW1lLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4
dEdyb3VwLmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xDb250
ZXh0T2JqZWN0Ojp+V2ViR0xDb250ZXh0T2JqZWN0KTogUGFzcyByZWZlcmVuY2VzLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0T2JqZWN0OjpkZXRhY2hDb250ZXh0KTogRGl0dG8uCisK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oOiBSZW1vdmVkLgorCisgICAgICAgICogaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dDo6V2ViR0xSZW5kZXJpbmdDb250ZXh0KTogVGFrZSBhIFJlZiYm
IGluc3RlYWQKKyAgICAgICAgb2YgYXMgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cyk6IFVwZGF0
ZWQgZW51bQorICAgICAgICBhbmQgYWxzbyB1c2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKTogUmVhcnJhbmdlZCBsb2dp
YyBpbiB0aHJlZSB3YXlzOgorICAgICAgICAoMSkgTW92ZWQgY2hlY2tzIGZvciB3aGV0aGVyIGFu
IGV4dGVuc2lvbiBpcyBzdXBwb3J0ZWQgaW5zaWRlIHRoZSBjYXNlIGZvciB0aGF0CisgICAgICAg
IGV4dGVuc2lvbiwgcmF0aGVyIHRoYW4gY29tYmluaW5nIHRoZSBleHRlbnNpb24gbmFtZSBjaGVj
ayB3aXRoIHRoZSBleHRlbnNpb25zCisgICAgICAgIGVuYWJsZWQgY2hlY2suICgyKSBVc2VkIHRo
ZSBuZXcgZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uIGZ1bmN0aW9uIHRvIHNpbXBsaWZ5CisgICAg
ICAgIG1hbnkgb2YgdGhlIGNoZWNrcyB0byBhdm9pZCByZXBlYXRpbmcgdGhlIGV4dGVuc2lvbiBu
YW1lIHR3aWNlLiAoMykgQ2hhbmdlZCB0aGUKKyAgICAgICAgaWRpb20gc28gd2Ugc2V0IHRoZSBw
b2ludGVycyB0byBudWxscHRyIGV4cGxpY2l0bHksIHByZXBhcmluZyBmb3IgYSBmdXR1cmUgd2hl
cmUKKyAgICAgICAgd2UgbWlnaHQgbWFrZSB0aGUgZXh0ZW5zaW9uIHBvaW50ZXJzIHVzZSBzdGQ6
Om9wdGlvbmFsIHNvIHdlIGNhbiBjYWNoZSBhIG5lZ2F0aXZlCisgICAgICAgIGZvciBlYWNoIGV4
dGVuc2lvbiB0b28sIG5vdCBqdXN0IGEgcG9zaXRpdmUgcmVzdWx0LgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKTogVXNlIEFT
Q0lJTGl0ZXJhbC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0
RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKTogVXNlIG51bGxwdHIKKyAgICAgICAgYXMg
YWJvdmUuIEZvciBub24tbnVsbCB0eXBlcywgcmV0dXJuIHRoZSBvYmplY3Qgd2l0aG91dCBjb252
ZXJ0aW5nLCBsZXR0aW5nIHRoZQorICAgICAgICBXZWJHTEFueSBjbGFzcyBoYW5kbGUgdGhpbmdz
LCBleGNlcHQgZm9yIGVudW1lcmF0aW9ucywgd2hpY2ggd2UgbmVlZCB0byBleHBsaWNpdGx5Cisg
ICAgICAgIHN0YXRpY19jYXN0IHRvIGFuIGludGVncmFsIHR5cGUsIGFuZCB0aGluZ3MgdGhhdCB3
aWxsIGJlIHN0b3JlZCBpbiB0aGUgdmFyaWFudCBpbgorICAgICAgICBhIFJlZlB0ciwgd2hlcmUg
d2UgdXNlIG1ha2VSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OnZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyk6CisgICAgICAgIFNpbXBsaWZp
ZWQgYW5kIGNsYXJpZmllZCB0aGUgaGFuZGxpbmcgb2YgQ09MT1JfQVRUQUNITUVOVCBhZGRpbmcg
YSBGSVhNRSBhYm91dAorICAgICAgICBzb21ldGhpbmcgcXVlc3Rpb25hYmxlLgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIpOiBSZXR1cm4gV2Vi
R0xBbnksIHNhbWUgaWRpb20gYXMKKyAgICAgICAgZGVzY3JpYmVkIGFib3ZlIGZvciBnZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZSk6IFVwZGF0ZWQgdG8gcGFz
cyByZWZlcmVuY2VzCisgICAgICAgIGluc3RlYWQgb2YgcG9pbnRlcnMgaW4gYSBjb3VwbGUgY2Fz
ZXMKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UpOiBDaGFuZ2VkIGdyYXBoaWNzCisgICAgICAgIGNvbnRleHQgYXJn
dW1lbnQgdHlwZSBmcm9tIFJlZlB0ciYmIHRvIFJlZiYmLiBBbHNvIG1vdmVkIGluaXRpYWxpemF0
aW9uIG9mIHNjYWxhcnMKKyAgICAgICAgZnJvbSB0aGUgY29uc3RydWN0b3IgdG8gdGhlIGNsYXNz
IGRlZmluaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Ojp+V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVCdWZmZXIpOiBQYXNz
IGEgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlRnJhbWVidWZmZXIpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZVRleHR1cmUpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0
ZVByb2dyYW0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmNyZWF0ZVJlbmRlcmJ1ZmZlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlU2hhZGVyKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVCdWZmZXIpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBh
cmFtZXRlcik6IFVwZGF0ZSB0byB1c2UgV2ViR0xBbnkuCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRQcm9ncmFtUGFyYW1ldGVyKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZmZXJQ
YXJhbWV0ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFNoYWRlclBhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhB
dHRyaWIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldFZlcnRleEF0dHJpYk9mZnNldCk6IFJlbW92ZWQgdW5ubmVlZAorICAgICAgICB0eXBl
IGNhc3RzLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVy
dGV4QXR0cmliUG9pbnRlcik6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVTaGFyZWRPYmplY3QpOiBUYWtlIGEgcmVm
ZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRk
U2hhcmVkT2JqZWN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpyZW1vdmVDb250ZXh0T2JqZWN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphZGRDb250ZXh0T2JqZWN0KTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuUGFy
YW1ldGVyKTogQ2hhbmdlZCByZXR1cm4gdHlwZTsKKyAgICAgICAgY29ubnZlcnNpb24gdG8gV2Vi
R0xBbnkgY2FuIGhhcHBlbiBhdCB0aGUgcG9pbnQgb2YgdXNlLgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Qm9vbGVhbkFycmF5UGFyYW1ldGVyKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRGbG9h
dFBhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Z2V0SW50UGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbnNpZ25lZEludFBhcmFtZXRlcik6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0SW50NjRQYXJh
bWV0ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldFdlYkdMRmxvYXRBcnJheVBhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcik6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFs
aWRhdGVCdWZmZXJEYXRhUGFyYW1ldGVycyk6IFVzZQorICAgICAgICBvcHRpb25hbCB0byBzaW1w
bGlmeSBsb2dpYyBhbmQgZ2V0IHJpZCBvZiBhIGJvb2xlYW4uCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjplbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24pOiBBZGRl
ZC4KKyAgICAgICAgSGVscGVyIHVzZWQgYnkgdGhlIGdldEV4dGVuc2lvbiBmdW5jdGlvbnMuCisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOiBVcGRhdGVk
IGZvciB0aGUgYWJvdmUgY2hhbmdlcy4KKyAgICAgICAgQWxzbyBjaGFuZ2VkIHNldEJvdW5kVmVy
dGV4QXJyYXlPYmplY3QgdG8gdGFrZSBhIHJhdyBwb2ludGVyIGluc3RlYWQgb2YKKyAgICAgICAg
YXMgUGFzc1JlZlB0ci4KKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMU2hhcmVkT2JqZWN0Ojp+V2ViR0xTaGFyZWRP
YmplY3QpOiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTaGFyZWRP
YmplY3Q6OmRldGFjaENvbnRleHRHcm91cCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xTaGFyZWRPYmplY3Q6OmdldEFHcmFwaGljc0NvbnRleHQzRCk6IFVwZGF0ZWQgc2luY2UgdGhl
CisgICAgICAgIHVuZGVybHlpbmcgZ2V0QUdyYXBoaWNzQ29udGV4dDNEIGZ1bmN0aW9uIG5vdyBy
ZXR1cm5zIGEgcmVmZXJlbmNlLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRP
YmplY3QuaDogUmVtb3ZlZCBtYW55IHVudXNlZCAiaXMiIHZpcnR1YWwgZnVuY3Rpb25zLgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaDogRGl0dG8uCisKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZSk6IFVwZGF0ZWQgZm9yIG5l
dyB0eXBlIGVudW1lcmF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9i
amVjdDo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6ZGVsZXRlT2JqZWN0SW1wbCk6IERpdHRvLgorICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaDogVXBkYXRlZCBmb3IgYWJv
dmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmpl
Y3RCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNl
OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSk6IFVwZGF0ZWQgZm9yIG5ldworICAgICAgICB0
eXBlIGVudW1lcmF0aW9uIGFuZCBtb3ZlZCBpbml0aWFsaXphdGlvbiB0byBjbGFzcyBkZWZpbml0
aW9uLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldEVs
ZW1lbnRBcnJheUJ1ZmZlcik6IENoYW5nZWQgYXJndW1lbnQgdG8KKyAgICAgICAgcmF3IHBvaW50
ZXIgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhB
cnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKTogQ2hhbmdlZCBhcmd1bWVudCB0
bworICAgICAgICByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZlcik6IENoYW5nZWQg
YXJ1Z21lbnQgdHlwZSB0bworICAgICAgICByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRy
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRl
eEF0dHJpYkRpdmlzb3IpOiBSZW1vdmVkIHVubmVlZGVkCisgICAgICAgIGxvY2FsIHZhcmlhYmxl
LgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmg6IFVw
ZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisgICAgICAgIFJlcGxhY2VkIFZBT1R5cGUgd2l0aCBU
eXBlLiBVc2VkIGNsYXNzIG1lbWJlciBpbml0aWFsaXphdGlvbi4KKworICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKTogVXBkYXRlZCBmb3IgbmV3IHR5cGUg
ZW51bWVyYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjp+V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUykgRGl0
dG8uOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6ZGVsZXRl
T2JqZWN0SW1wbCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0
bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUljb25M
b2FkZXI6Omljb25Mb2FkZWQpOiBSZW5hbWVkIGZyb20gbm90aWZ5RmluaXNoZWQuIEFsc28gY2hh
bmdlZAorICAgICAgICB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gdGhpcyBjYWxscyB0byBpY29u
TG9hZGVkLiBDaGFuZ2VkIHRoZSBhcmd1ZW1udCB0bworICAgICAgICBSZWZQdHImJiBpbnN0ZWFk
IG9mIFBhc3NSZWZQdHIuCisgICAgICAgICogaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5oOiBV
cGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNp
dGU6OmF0dGFjaExhdGVyKTogVXNlIGlzU2NyaXB0RWxlbWVudCBpbnN0ZWFkIG9mCisgICAgICAg
IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3Ry
dWN0aW9uU2l0ZTo6aW5zZXJ0Rm9yZWlnbkVsZW1lbnQpOiBEaXR0by4KKworICAgICAgICAqIGh0
bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
RG9jdW1lbnRQYXJzZXI6OnJ1blNjcmlwdHNGb3JQYXVzZWRUcmVlQnVpbGRlcik6IFBhc3Mgc2Ny
aXB0CisgICAgICAgIGVsZW1lbnQgYXMgYSBSZWYgcmF0aGVyIHRoYW4gUmVmUHRyLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjp3YXRjaEZvckxvYWQpOiBQYXNzIGEgcmVm
ZXJlbmNlIGluc3RlYWQgb2YgYSBwb2ludGVyLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRN
TFNjcmlwdFJ1bm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVubmVyOjpl
eGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0KTogRGVsZXRlZC4gTW92ZWQgdGhlIGNvZGUKKyAg
ICAgICAgaW50byB0aGUgc2luZ2xlIGNhbGwgc2l0ZSwgZXhlY3V0ZSBQYXJzaW5nQmxvY2tpbmdT
Y3JpcHRzLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBlbmRp
bmdTY3JpcHRBbmREaXNwYXRjaEV2ZW50KTogQ2hhbmdlZCBhcmd1bWVudAorICAgICAgICB0eXBl
IHRvIGEgcmVmZXJlbmNlIGZyb20gYSBSZWZQdHI7IHRoaXMgZnVudGlvbiB3YXMgbm90IHRha2lu
ZyBvd25lcnNoaXAuIEFsc28gcmVtb3ZlCisgICAgICAgIGNhbGwgdG8gdG9TY3JpcHRFbGVtZW50
SWZQb3NzaWJsZSwKKyAgICAgICAgc2luY2UgcGVuZGluZyBzY3JpcHRzIG5vdyBjb250YWlucyBz
Y3JpcHQgZWxlbWVudHMgYWxyZWFkeS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5u
ZXI6OmV4ZWN1dGUpOiBDaGFuZ2VkIGFyZ3VtZW50IHR5cGUgdG8gUmVmPFNjcmlwdEVsZW1lbnQ+
JiYKKyAgICAgICAgZnJvbSBQYXNzUmVmUHRyPEVsZW1lbnQ+LgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBhcnNpbmdCbG9ja2luZ1NjcmlwdHMpOiBNb3ZlZCBj
b2RlIGhlcmUgZnJvbQorICAgICAgICBleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0LiBBbHNv
IHBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVubmVyOjpl
eGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JQYXJzaW5nKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OnJlcXVlc3RQZW5kaW5nU2NyaXB0KTogQ2hhbmdlZCBhcmd1bWVudCB0eXBl
IHRvIFNjcmlwdEVsZW1lbnQmIGZyb20KKyAgICAgICAgRWxlbWVudCouCisgICAgICAgIChXZWJD
b3JlOjpIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0RGVmZXJyZWRT
Y3JpcHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OnJ1blNj
cmlwdCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuaDog
VXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxU
cmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnRha2VT
Y3JpcHRUb1Byb2Nlc3MpOiBDaGFuZ2VkIHJldHVybiB0eXBlIGZyb20KKyAgICAgICAgUmVmUHRy
PEVsZW1lbnQ+IHRvIFJlZlB0cjxTY3JpcHRFbGVtZW50Pi4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyk6IERvd25jYXN0IHRoZSBzY3JpcHQgZWxlbWVu
dCB0bworICAgICAgICBIVE1MU2NyaXB0RWxlbWVudCBzbyB3ZSBjYW4gc3RvcmUgaXQgYXMgYSBT
Y3JpcHRFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
VG9rZW5JbkZvcmVpZ25Db250ZW50KTogRG93bmNhc3QgdGhlIHNjcmlwdAorICAgICAgICBlbGVt
ZW50IHRvIFNWR1NjcmlwdEVsZW1lbnQgc28gd2UgY2FuIHN0b3JlIGl0IGFzIGEgc2NyaXB0IGVs
ZW1lbnQuCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmg6IFVwZGF0ZWQg
Zm9yIGFib3ZlIGNoYW5nZXMuIENoYW5nZWQgdGhlIHR5cGUKKyAgICAgICAgb2YgbV9zY3JpcHRU
b1Byb2Nlc3MgdG8gUmVmUHRyPFNjcmlwdEVsZW1lbnQ+LgorCisgICAgICAgICogaHRtbC9wYXJz
ZXIvVGV4dERvY3VtZW50UGFyc2VyLmNwcDogQWRkZWQgbm93LW5lZWRlZCBpbmNsdWRlLgorCisg
ICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlhTU0F1ZGl0b3JEZWxlZ2F0ZTo6Z2VuZXJhdGVWaW9sYXRpb25SZXBvcnQpOiBDaGFu
Z2VkIHJldHVybiB0eXBlCisgICAgICAgIHRvIFJlZiBmcm9tIFBhc3NSZWZQdHIuCisgICAgICAg
ICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmg6IFVwZGF0ZWQgZm9yIGFib3ZlLgor
CisgICAgICAgICogaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvVHJhY2s6OkF1ZGlvVHJhY2spOiBUYWtlIHJlZmVyZW5jZXMuCisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1RyYWNrOjpzZXRQcml2YXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1RyYWNrOjpzZXRFbmFibGVkKTogUmVtb3ZlZCByZWR1bmRhbnQgY29kZSB0byBkbyB3aGF0
IHRoZQorICAgICAgICBwcml2YXRlIHNldEVuYWJsZWQgZnVuY3Rpb24gaXMgYWxyZWFkeSBnb2lu
ZyB0byBkby4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmluYmFuZFRyYWNrSW5kZXgp
OiBSZW1vdmVkIGFzc2VydGlvbiBzaW5jZSBtX3ByaXZhdGUKKyAgICAgICAgaXMgbm93IGEgUmVm
IHJhdGhlciB0aGFuIFJlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmVuYWJs
ZWRDaGFuZ2VkKTogQWRkZWQgYW4gZWFybHkgZXhpdCBzbyB3ZSB3aWxsIG9ubHkKKyAgICAgICAg
Y2FsbCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQgaWYgbV9lbmFibGVkIGlzIGFjdHVhbGx5IGNo
YW5naW5nLiBBbHNvIHJlbW92ZWQKKyAgICAgICAgdGhlIHVubmVlZGVkIHRyYWNrIHByaXZhdGUg
YXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjppZENoYW5nZWQpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmxhYmVsQ2hhbmdlZCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjp3aWxsUmVtb3ZlKTogRGl0dG8uCisgICAgICAg
ICogaHRtbC90cmFjay9BdWRpb1RyYWNrLmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisK
KyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZSk6IFJlbW92ZWQgaW5iYW5k
IHRleHQgdHJhY2sgcHJpdmF0ZQorICAgICAgICBhcmd1bWVudC4gVXNlIGNvbnRhaW5zIGluc3Rl
YWQgb2YgZmluZC9lbmQuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4dFRyYWNrOjp1
cGRhdGVEYXRhQ3VlKTogRGl0dG8uIFVzZSBnZXQgaW5zdGVhZCBvZiBmaW5kL2VuZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkluYmFuZERhdGFUZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUpOiBEaXR0by4K
KyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaDogVXBkYXRlZCBmb3Ig
YWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRU
cmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpJbmJh
bmRHZW5lcmljVGV4dFRyYWNrKTogVGFrZSByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29yZTo6
SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVDdWVGcm9tQ3VlRGF0YSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSk6
IERpdHRvLiBBbHNvIHJlbW92ZWQgdW51c2VkCisgICAgICAgIHRyYWNrIHByaXZhdGUgYXJndW1l
bnQuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVHZW5l
cmljQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNr
OjpyZW1vdmVHZW5lcmljQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5l
cmljVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRURmlsZUhlYWRlcik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6bmV3UmVnaW9uc1Bh
cnNlZCk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRHZW5l
cmljVGV4dFRyYWNrLmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBo
dG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRU
ZXh0VHJhY2s6OmNyZWF0ZSk6IFJldHVybiBhIFJlZiBpbnN0ZWFkIG9mIGEgUGFzc1JlZlB0ci4g
VGFrZQorICAgICAgICByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRy
YWNrOjpJbmJhbmRUZXh0VHJhY2spOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRl
eHRUcmFjazo6c2V0UHJpdmF0ZSk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIFBhc3NS
ZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OmlzQ2xvc2VkQ2FwdGlv
bnMpOiBSZW1vdmVkIGNoZWNrIGZvciBudWxsIHNpbmNlIG1fcHJpdmF0ZQorICAgICAgICBpcyBu
b3cgYSBSZWYgYW5kIHNvIG5ldmVyIG51bGwuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0
VHJhY2s6OmlzU0RIKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6
OmNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
SW5iYW5kVGV4dFRyYWNrOjppc01haW5Qcm9ncmFtQ29udGVudCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjppc0Vhc3lUb1JlYWQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6aW5iYW5kVHJhY2tJbmRleCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjppbkJhbmRNZXRhZGF0YVRyYWNrRGlzcGF0
Y2hUeXBlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OmlkQ2hh
bmdlZCk6IFJlbW92ZWQgdW5uZWVkZWQgdHJhY2sgcHJpdmF0ZSBhcmd1bWVudC4KKyAgICAgICAg
KFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6bGFiZWxDaGFuZ2VkKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6Omxhbmd1YWdlQ2hhbmdlZCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjp3aWxsUmVtb3ZlKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OnVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSk6IElt
cHJvdmVkIHN3aXRjaCBzdGF0ZW1lbnQKKyAgICAgICAgYnkgcmVtb3ZpbmcgZGVmYXVsdCBzbyB3
ZSBnZXQgYSB3YXJuaW5nIGlmIHdlIGZvcmdldCB0byBoYW5kbGUgYSBraW5kIHZhbHVlLgorICAg
ICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjpzdGFydFRpbWVWYXJpYW5jZSk6IFJlbW92
ZWQgY2hlY2sgZm9yIG51bGwuCisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2su
aDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4gQ2hhbmdlZCBtX3ByaXZhdGUgZnJvbQorICAg
ICAgICBhIFJlZlB0ciB0byBhIFJlZi4KKworICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kV2Vi
VlRUVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFdlYlZUVFRleHRUcmFj
azo6SW5iYW5kV2ViVlRUVGV4dFRyYWNrKTogVGFrZSByZWZlcmVuY2VzLgorICAgICAgICAoV2Vi
Q29yZTo6SW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKTogUmVtb3Zl
ZCB1bm5lZWRlZCB0cmFjaworICAgICAgICBwcml2YXRlIGFyZ3VlbW50LgorICAgICAgICAoV2Vi
Q29yZTo6SW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpuZXdSZWdpb25zUGFyc2VkKTogUGFzcyBhIHJl
ZmVyZW5jZS4KKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oOiBV
cGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC90cmFjay9Mb2FkYWJs
ZVRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2FkYWJsZVRleHRUcmFjazo6bmV3
Q3Vlc0F2YWlsYWJsZSk6IFBhc3MgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6OkxvYWRh
YmxlVGV4dFRyYWNrOjpuZXdSZWdpb25zQXZhaWxhYmxlKTogRGl0dG8uCisKKyAgICAgICAgKiBo
dG1sL3RyYWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6On5U
ZXh0VHJhY2spOiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6
c2V0S2luZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpzZXRNb2RlKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OnJlbW92ZUFsbEN1ZXMpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6YWN0aXZlQ3Vlcyk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjphZGRDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlRleHRUcmFjazo6cmVtb3ZlQ3VlKTogUmVtb3ZlZCB1bm5lZWRlZCBjb2RlIHRvIGhhbmRs
ZSBhIGN1ZQorICAgICAgICB0aGF0IHBvaW50cyB0byBhIHRyYWNrIGJ1dCBpcyBub3QgaW4gdGhh
dCB0cmFjay4gQWRkZWQgYSBjYWxsIHRvCisgICAgICAgIHNldElzQWN0aXZlKGZhbHNlKSBoZXJl
IGluc3RlYWQgb2YgaGF2aW5nIHRoZSByZW1vdmUgZnVuY3Rpb24gZG8gaXQuCisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2s6OmFkZFJlZ2lvbik6IFVzZSByZWZlcmVuY2VzLgorICAgICAgICAo
V2ViQ29yZTo6VGV4dFRyYWNrOjpyZW1vdmVSZWdpb24pOiBSZW1vdmVkIHVubmVlZGVkIGNvZGUg
dG8gaGFuZGxlIGEKKyAgICAgICAgcmVnaW9uIHRoYXQgcG9pbnRzIHRvIGEgdHJhY2sgYnV0IGlz
IG5vdCBpbiB0aGF0IHRyYWNrLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpjdWVXaWxs
Q2hhbmdlKTogVXNlIHJlZmVyZW5jZXMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OmN1
ZURpZENoYW5nZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpzZXRMYW5n
dWFnZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrLmg6IFVwZGF0ZWQg
Zm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OlRleHRUcmFja0N1ZSk6IEluaXRp
YWxpemVkIHRoZSBkYXRhIG1lbWJlcnMKKyAgICAgICAgaW4gdGhlIGNsYXNzIGRlZmluaXRpb24u
CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmN1ZUluZGV4KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6aW52YWxpZGF0ZUN1ZUluZGV4KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oOiBVcGRhdGVkIGZvciB0aGUg
YWJvdmUuIFJlbW92ZWQgbV9jdWVJbmRleCwKKyAgICAgICAgYmVjYXVzZSBpdCBpcyBub3QgYSBn
b29kIGRlc2lnbiB0byBzdG9yZSB0aGVzZSBhbmQgdHJ5IHRvIGtlZXAgdGhlbSB1cAorICAgICAg
ICB0byBkYXRlLgorCisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVDdWVzKTogQWRkZWQuIEhlbHBlciBmb3Igc29ydGlu
ZyBhbmQgY2hlY2tpbmcgc29ydGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxp
c3Q6OlRleHRUcmFja0N1ZUxpc3QpOiBEZWxldGVkLiBMZXQgdGhlIGNvbXBpbGVyCisgICAgICAg
IGdlbmVyYXRlIHRoaXMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjpsZW5n
dGgpOiBNb3ZlZCB0byBoZWFkZXIuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0
OjpjdWVJbmRleCk6IFJlbmFtZWQgZnJvbSBnZXRDdWVJbmRleC4KKyAgICAgICAgQ2hhbmdlZCBy
ZXR1cm4gdHlwZSB0byB1bnNpZ25lZCByYXRoZXIgdGhhbiB1bnNpZ25lZCBsb25nLgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlTGlzdDo6aXRlbSk6IFVwZGF0ZWQgZm9yIG5hbWUgY2hh
bmdlLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlTGlzdDo6Z2V0Q3VlQnlJZCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlTGlzdDo6YWN0aXZlQ3Vlcyk6IEJ1
aWxkIHRoZSB2ZWN0b3IgZGlyZWN0bHkKKyAgICAgICAgcmF0aGVyIHRoYW4gd2FzdGVmdWxseSBh
ZGRpbmcgd2l0aCBUZXh0VHJhY2tDdWVMaXN0OjphZGQsIHdoaWNoIHdpbGwKKyAgICAgICAgdHJ5
IHRvIHNvcnQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjphZGQpOiBUYWtl
IGEgUmVmJiYgaW5zdGVhZCBvZiBhIFBhc3NSZWZQdHIuCisgICAgICAgIEFsc28sIGtlZXAgc29y
dGVkIHVzaW5nIHN0ZDo6dXBwZXJfYm91bmQgaW5zdGVhZCBvZiB0aGUgcmVjdXJzaXZlCisgICAg
ICAgIGJpbmFyeSBzZWFyY2ggdGhpcyBjb2RlIHdhcyB1c2luZyBiZWZvcmUuIEFsc28gcmVtb3Zl
IHRoZQorICAgICAgICBpbnZhbGlkYXRlQ3VlSW5kZXhlcyBjYWxsIHNpbmNlIHRoZXJlIGFyZSBu
byBjdWUgaW5kaWNlcyBhbnkgbW9yZS4KKyAgICAgICAgQWxzbyByZW1vdmUgdGhlIGJvb2xlYW4g
cmV0dXJuIHZhbHVlIHNpbmNlIG5vIGNhbGxlciB3YXMgdXNpbmcgaXQuCisgICAgICAgIChXZWJD
b3JlOjpUZXh0VHJhY2tDdWVMaXN0OjpyZW1vdmUpOiBUYWtlIGEgcmVmZXJlbmNlIGluc3RlYWQg
b2YgYQorICAgICAgICBwb2ludGVyLiBBbHNvIHJlbW92ZSB0aGUgYm9vbGVhbiByZXR1cm4gdmFs
dWUgc2luY2Ugbm8gY2FsbGVyIHdhcyB1c2luZyBpdC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRU
cmFja0N1ZUxpc3Q6OmNvbnRhaW5zKTogRGVsZXRlZC4gV2FzIHVudXNlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6OnVwZGF0ZUN1ZUluZGV4KTogUmVpbXBsZW1lbnRlZCB1
c2luZyB0aGUKKyAgICAgICAgc3RkOjp1cHBlcl9ib3VuZCBhbmQgc3RkOjpyb3RhdGUgb3BlcmF0
aW9ucy4gVGhlIG9sZCBjb2RlIHRoYXQgdXNlZAorICAgICAgICByZW1vdmUgYW5kIGFkZCB3YXMg
aW5lZmZpY2llbnQgYW5kIGFsc28gY291bGQgY2F1c2UgYSBjdWUgdG8gYmUgZGVhbGxvY2F0ZWQK
KyAgICAgICAgaWYgc29tZXRoaW5nIGVsc2Ugd2Fzbid0IGhvbGRpbmcgYSByZWZlcmVuY2UgdG8g
dGhlIGN1ZS4gQWxzbyBjaGFuZ2VkIHRvIHRha2UKKyAgICAgICAgYSByZWZlcmVuY2UuCisgICAg
ICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjpjbGVhcik6IERlbGV0ZWQuIFdhcyB1bnVz
ZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjppbnZhbGlkYXRlQ3VlSW5k
ZXhlcyk6IERlbGV0ZWQuIE5vIGxvbmdlcgorICAgICAgICBuZWVkZWQgc2luY2Ugd2UgZG9uJ3Qg
c3RvcmUgY3VlIGluZGljZXMgaW4gdGhlIGN1ZXMgYW55IG1vcmUuCisgICAgICAgICogaHRtbC90
cmFjay9UZXh0VHJhY2tDdWVMaXN0Lmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZSBjaGFuZ2VzLgor
CisgICAgICAgICogaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlZUVFJlZ2lvbkxpc3Q6OlZUVFJlZ2lvbkxpc3QpOiBEZWxldGVkLiBMZXQgdGhlIGNvbXBp
bGVyCisgICAgICAgIGdlbmVyYXRlIHRoaXMuCisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb25M
aXN0OjpsZW5ndGgpOiBNb3ZlZCB0byBoZWFkZXIuCisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdp
b25MaXN0OjppdGVtKTogVXBkYXRlZCBmb3IgbmFtZSBhbmQgdHlwZSBjaGFuZ2VzLgorICAgICAg
ICAoV2ViQ29yZTo6VlRUUmVnaW9uTGlzdDo6Z2V0UmVnaW9uQnlJZCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6VlRUUmVnaW9uTGlzdDo6YWRkKTogQ2hhbmdlZCB0byB0YWtlIGEgUmVmJiYg
aW5zdGVhZCBvZiBhCisgICAgICAgIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpWVFRS
ZWdpb25MaXN0OjpyZW1vdmUpOiBVcGRhdGVkLgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVnaW9u
TGlzdDo6Y2xlYXIpOiBEZWxldGVkLiBXYXMgdW51c2VkLgorICAgICAgICAqIGh0bWwvdHJhY2sv
VlRUUmVnaW9uTGlzdC5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUgY2hhbmdlcy4KKyAgICAgICAg
KiBodG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaWRsOiBNYWRlIHJldHVybiB2YWx1ZXMgbnVsbGFi
bGUgdG8gcmVmbGVjdAorICAgICAgICB0aGUgYWN0dWFsIHNlbWFudGljIG9mIHRoZSBjb2RlLgor
CisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvVHJhY2s6OlZpZGVvVHJhY2spOiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvVHJhY2s6OnNldFByaXZhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvVHJhY2s6OnNldFNlbGVjdGVkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1Ry
YWNrOjppbmJhbmRUcmFja0luZGV4KTogUmVtb3ZlZCBhc3NlcnRpb24gc2luY2UgbV9wcml2YXRl
CisgICAgICAgIGlzIG5vdyBhIFJlZiBpbnN0ZWFkIG9mIGEgUmVmUHRyLgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9UcmFjazo6c2VsZWN0ZWRDaGFuZ2VkKTogUmVtb3ZlZCB1bm5lZWRlZCB0cmFj
ayBwcml2YXRlIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6aWRDaGFu
Z2VkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpsYWJlbENoYW5nZWQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6Omxhbmd1YWdlQ2hhbmdlZCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6d2lsbFJlbW92ZSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6c2V0S2luZCk6IFVwZGF0ZWQgdG8gdXNl
IHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OnNldExhbmd1YWdlKTog
RGl0dG8uCisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmg6IFVwZGF0ZWQgZm9yIHRo
ZSBhYm92ZS4gQ2hhbmdlZCBkZXJpdmF0aW9uIHRvIHByaXZhdGUuCisgICAgICAgIFJlbW92ZWQg
dW5uZWVkZWQgZGVmYXVsdEtpbmRLZXl3b3JkLgorCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oOiBVcGRhdGVkIHRvIHVzZSByZWZlcmVuY2UuCisKKyAgICAgICAgKiBsb2FkZXIvUGlu
Z0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9u
UmVwb3J0KTogVGFrZSBhIFJlZiYmIGluc3RlYWQgb2YgUmVmUHRyJiYuCisgICAgICAgICogbG9h
ZGVyL1BpbmdMb2FkZXIuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlLgorCisgICAgICAgICog
cGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpsb2FkSWNvbkZvckZp
bGVzKTogVGFrZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOiBVcGRhdGVk
IGZvciBhYm92ZSBjaGFuZ2UuCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogRGl0dG8u
CisKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24pOiBVc2Ug
YXV0by4KKworICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVs
TWVkaWFFbGVtZW50Lm1tOgorICAgICAgICAoV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVs
ZW1lbnQ6OnNlbGVjdEF1ZGlvTWVkaWFPcHRpb24pOiBTaW1wbGlmaWVkCisgICAgICAgIGFsZ29y
aXRobSBieSByZW1vdmluZyB1bm5lZWRlZCBkaXJlY3QgY2FsbCB0byBhdWRpb1RyYWNrRW5hYmxl
ZENoYW5nZWQsCisgICAgICAgIHdoaWNoIHdpbGwgYmUgY2FsbGVkIGJ5IHNldEVuYWJsZWQgYW5k
IGRvZXNuJ3QgbmVlZCB0byBiZSBjYWxsZWQgYWdhaW4gaGVyZS4KKyAgICAgICAgKFdlYlBsYXli
YWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24pOiBS
ZW1vdmVkCisgICAgICAgIHVuaGVscGZ1bCBhc3NlcnRpb24gYW5kIHVubm5lZGVkIGluaXRpYWxp
emF0aW9uLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUu
aDogUmVtb3ZlZCB1bm5uZWVlZCB0cmFjayBwcml2YXRlCisgICAgICAgIGFyZ3VtZW50IGFuZCBp
bml0aWFsaXplZCBkYXRhIG1lbWJlcnMgd2hlcmUgdGhleSBhcmUgZGVmaW5lZC4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaDogVXNl
IFJlZiBpbnN0ZWFkIG9mCisgICAgICAgIFBhc3NSZWZQdHIsIGluaXRpYWxpemUgZGF0YSBtZW1i
ZXJzIHdoZXJlIHRoZXkgYXJlIGRlZmluZWQsIGFuZCByZW1vdmVkCisgICAgICAgIHRoZSB1bm5l
ZWRlZCB0cmFjayBwcml2YXRlIGFyZ3VtZW50cyBmcm9tIHRoZSBjbGllbnQgZnVuY3Rpb25zLgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oOiBGaXhl
ZCBmdW5jdGlvbnMgdGhhdCB3ZXJlIHRha2luZworICAgICAgICBBdG9taWNTdHJpbmcgdG8gdGFr
ZSBhIGNvbnN0JiBpbnN0ZWFkLiBVc2UgUmVmJiYgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oOiBS
ZW1vdmVkIHVubmVkZWQgcHJpdmF0ZSBwb2ludGVyCisgICAgICAgIGFyZ3VtZW50cyBmcm9tIGNs
aWVudCBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZh
dGVCYXNlLmg6IFJlbW92ZWQgdW5uZWVkZWQgcHJpdmF0ZSBwb2ludGVycworICAgICAgICBmcm9t
IGNsaWVudCBmdW5jdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFj
a1ByaXZhdGU6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0F1ZGlvVHJhY2tQcml2YXRlQVZGLmg6IFVzZQorICAgICAgICBjb25zdCBBdG9taWNTdHJp
bmcmLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZE1l
dGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRN
ZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OmFkZERhdGFDdWUpOiBVcGRhdGVkIGZvciBjaGFu
Z2UgdG8gYXJndW1lbnRzLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kTWV0YWRhdGFUZXh0VHJh
Y2tQcml2YXRlQVZGOjp1cGRhdGVQZW5kaW5nQ3VlRW5kVGltZXMpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6Zmx1c2hQYXJ0aWFs
Q3Vlcyk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9J
bmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRl
eHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRyaWJ1dGVkU3RyaW5ncyk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cmVzZXRDdWVWYWx1ZXMp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnBy
b2Nlc3NOYXRpdmVTYW1wbGVzKTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMpOgorICAgICAgICBNb3ZlZCBp
bml0aWFsaXphdGlvbiBvZiBkYXRhIG1lbWVicnMgdG8gd2hlcmUgdGhleSBhcmUgZGVmaW5lZC4K
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpl
bmFibGVkKTogRGVsZXRlZC4gTm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRFbmFibGVkKTogQ2hhbmdlZCB0
byB1c2UgdGhlIGVuYWJsZWQKKyAgICAgICAgZmxhZyBmcm9tIHRoZSBiYXNlIGNsYXNzIGluc3Rl
YWQgb2YgYSBzZXBhcmF0ZSBtX2VuYWJsZWQgaW4gdGhpcyBjbGFzcy4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5oOgorICAgICAgICBSZW1vdmVkIHRoZSBlbmFibGVkIGZ1bmN0aW9uIGFuZCB0
aGUgbV9lbmFibGVkIGRhdGEgbWVtYmVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaDogTWFya2VkIGZ1
bmN0aW9ucworICAgICAgICBmaW5hbCBpbnN0ZWFkIG9mIG92ZXJyaWRlIGFuZCB1cGRhdGVkIGFy
Z3VlbW50cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9T
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0KTogVXBkYXRlZCBm
b3IgY2hhbmdlCisgICAgICAgIHRvIGFyZ3VtZW50cy4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpwcm9jZXNzQ29kZWRGcmFtZSk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVuZENvbXBsZXRlZCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Omhh
c1ZpZGVvKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6aGFzQXVkaW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpsYXllckRpZFJlY2VpdmVFcnJvcik6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmZsdXNoKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmlzUmVh
ZHlGb3JNb3JlU2FtcGxlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakM6OmZhc3RTZWVrVGltZUZvck1lZGlhVGltZSk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNlZWtUb1RpbWUpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRCZWNv
bWVSZWFkeUZvck1vcmVTYW1wbGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMp
OiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRN
ZXRhZGF0YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaDogVXBkYXRlZCBmb3IKKyAgICAgICAg
Y2hhbmdlcyB0byBhcmd1bWVudHMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5VHJhY2tPZlNhbXBsZSk6
IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZh
dGVCYXNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJpdmF0ZUJhc2VH
U3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtOZXdTYW1wbGUpOiBEaXR0by4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lcjo6YXBwZW5kKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyOjpmbHVzaCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZW5xdWV1ZVNhbXBsZSk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNSZWFkeUZvck1vcmVTYW1w
bGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyOjpub3RpZnlSZWFkeUZvck1vcmVTYW1wbGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpzdG9wQXNraW5nRm9yTW9yZVNhbXBsZXMp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6
Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlSW5pdGlhbGl6
YXRpb25TZWdtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2
YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlU2FtcGxlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlQWxsUGVuZGluZ1NhbXBs
ZXMpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1Nv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6YXBwZW5kKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZUluaXRpYWxpemF0
aW9uU2VnbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1NvdXJjZUJ1ZmZlclBy
aXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tT
b3VyY2VCdWZmZXJQcml2YXRlOjplbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1ZVNhbXBsZSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6Omhhc1Zp
ZGVvKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6
aGFzQXVkaW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2
YXRlOjpmYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpzZWVrVG9UaW1lKTogRGl0dG8uCisgICAgICAgICog
cGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oOiBEaXR0
by4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6dXBkYXRlU25hcHNob3Qp
OiBUYWtlIHJhdyBwb2ludGVyIGluc3RlYWQKKyAgICAgICAgb2YgUGFzc1JlZlB0ci4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaDogVXBkYXRlZCBmb3IgYWJv
dmUgY2hhbmdlLgorCisgICAgICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaDogQWRkZWQgdXNp
bmcgdG8gcmVzb2x2ZSB0aGUgYW1iaWd1aXR5IHdpdGggdGhlCisgICAgICAgIHJlZi9kZXJlZiBm
cm9tIFNWR0VsZW1lbnQgYW5kIGZyb20gU2NyaXB0RWxlbWVudC4KKworICAgICAgICAqIHhtbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1l
bnRQYXJzZXI6Om5vdGlmeUZpbmlzaGVkKTogVXBkYXRlZCB0byBzaW1wbGlmeSBzaW5jZQorICAg
ICAgICB0aGUgcGVuZGluZyBzY3JpcHQgbm93IGhhcyBhIHNjcmlwdCBlbGVtZW50LgorCisgICAg
ICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVudE5zKTogVXNlIGlzU2NpcHJ0
RWxlbWVudCBpbnN0ZWFkCisgICAgICAgIG9mIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUuCisg
ICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKTogRGl0dG8u
IEFsc28gdXNlIGRvd25jYXN0U2NyaXB0RWxlbWVudC4KKwogMjAxNy0wMS0wNCAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBUZWFjaCBTaGFyZWRCdWZm
ZXIgdG8gcmV0dXJuIGFuIE5TQXJyYXkgb2YgZGF0YSBzZWdtZW50cyB0byBhdm9pZCBmbGF0dGVu
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggOTMzOWNjNThhODFmYWEwODcyMjM5ZTQ1YWExODE5Y2Jh
ZTJlNGNiOS4uMDBhNjNlY2YwN2NmYjNjNjRhY2Q3ZGNlOGIzMTEzZWIxMjhmNjZiZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAxLTA0ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciB1c2UgZnJvbSB0aGUg
Imh0bWwiIGRpcmVjdG9yeSwgb3RoZXIgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2MzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAg
ICAgICAgKFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyk6IFRha2UgYSByZWZlcmVu
Y2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisKIDIwMTctMDEtMDQgIFJ5YW4gSGFkZGFkICA8cnlh
bmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIx
MDI4Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBiMTYxNTg1YmY5NjM1YTFlM2U0MzE2OGU2ZTQxM2Iy
MmE5NmY5YWQ2Li4wZDc5MmNhNTY1Y2ZkNTY0YzRiYjJkNDJlZGQ4NzRmODNjODE1MTdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDEtMDQgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRo
ZSAiaHRtbCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyk6
IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKwogMjAx
Ni0xMi0zMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zl
IFBhc3NSZWZQdHIgdXNlIGZyb20gdGhlICJkb20iIGRpcmVjdG9yeSwgcmVsYXRlZCBjbGVhbnVw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggYjg5NGU5NjE2ZTRhMzU4MWY0OGFiYzI0OTBkOGYxOWZlZDE4ZDMzNi4u
ODJkY2QxNjMyODNhODljNDYwNzk1MmYxNjkzNWQ2YjI1NjkxZTYxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDE3LTAxLTA0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciB1c2UgZnJvbSB0aGUgImh0bWwiIGRpcmVjdG9y
eSwgb3RoZXIgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjY2MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVz
KTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgcG9pbnRlci4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOiBEaXR0by4KKwogMjAxNy0w
MS0wNCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMjEwMjg3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
UmVmUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAppbmRleCA4N2ZjNDU2ZjM3MDQwNDli
ZjRlY2NjYmYzYTRmZjU3Njk3OWU2NzdmLi5mZTE2MzBjOTczNWI1ZmY1MzUzY2IyYzU1OGUzMTA1
ODEyNDc4N2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9SZWZQdHIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJpZ2h0IChD
KSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjQyLDEwICsy
NDIsMjEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFJlZlB0cjxUPiBhZG9wdFJlZihU
KiBwKQogICAgIHJldHVybiBSZWZQdHI8VD4ocCwgUmVmUHRyPFQ+OjpBZG9wdCk7CiB9CiAKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4gbWFrZVJlZlB0cihUKiBwb2ludGVy
KQoreworICAgIHJldHVybiBwb2ludGVyOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxp
bmUgUmVmUHRyPFQ+IG1ha2VSZWZQdHIoVCYgcmVmZXJlbmNlKQoreworICAgIHJldHVybiAmcmVm
ZXJlbmNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNpbmcgV1RGOjpSZWZQdHI7CiB1
c2luZyBXVEY6OmFkb3B0UmVmOwordXNpbmcgV1RGOjptYWtlUmVmUHRyOwogdXNpbmcgV1RGOjpz
dGF0aWNfcG9pbnRlcl9jYXN0OwogCiAjZW5kaWYgLy8gV1RGX1JlZlB0cl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDI1ZjI4YzU3MzdjZTcwOGQ1MTJiODJjZWEyMDIyZjM3ODJhNjY1OWYuLmI2
MjYzMTRmN2ZlNTRkN2U4Nzk3NmQ4OGViYjEwZjk1MzhjMWZmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0xNzU5LDcgKzE3NTksNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9W
YWxpZGF0aW9uTWVzc2FnZS5jcHAKICAgICBodG1sL1dlZWtJbnB1dFR5cGUuY3BwCiAKLSAgICBo
dG1sL2NhbnZhcy9BTkdMRUluc3RhbmNlZEFycmF5cy5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52
YXNHcmFkaWVudC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNQYXRoLmNwcAogICAgIGh0bWwv
Y2FudmFzL0NhbnZhc1BhdHRlcm4uY3BwCkBAIC0xNzY4LDUxICsxNzY3LDYgQEAgc2V0KFdlYkNv
cmVfU09VUkNFUwogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAK
ICAgICBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKICAgICBodG1sL2NhbnZhcy9ET01QYXRo
LmNwcAotICAgIGh0bWwvY2FudmFzL0VYVEJsZW5kTWluTWF4LmNwcAotICAgIGh0bWwvY2FudmFz
L0VYVEZyYWdEZXB0aC5jcHAKLSAgICBodG1sL2NhbnZhcy9FWFRTaGFkZXJUZXh0dXJlTE9ELmNw
cAotICAgIGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAKLSAgICBo
dG1sL2NhbnZhcy9FWFRzUkdCLmNwcAotICAgIGh0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVp
bnQuY3BwCi0gICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAKLSAgICBo
dG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwCi0gICAgaHRtbC9jYW52YXMvT0VTVGV4dHVy
ZUZsb2F0TGluZWFyLmNwcAotICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXQuY3Bw
Ci0gICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5jcHAKLSAgICBodG1s
L2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTDJS
ZW5kZXJpbmdDb250ZXh0LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcAotICAg
IGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwCi0gICAgaHRtbC9jYW52
YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2
ZW50LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAotICAgIGh0bWwv
Y2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTERlYnVn
UmVuZGVyZXJJbmZvLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcAot
ICAgIGh0bWwvY2FudmFzL1dlYkdMRGVwdGhUZXh0dXJlLmNwcAotICAgIGh0bWwvY2FudmFzL1dl
YkdMRHJhd0J1ZmZlcnMuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwCi0g
ICAgaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJH
TEdldEluZm8uY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHAKLSAgICBo
dG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0u
Y3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmJ1ZmZlci5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKLSAgICBo
dG1sL2NhbnZhcy9XZWJHTFNhbXBsZXIuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIu
Y3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwCi0gICAg
aHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xT
eW5jLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5jcHAKLSAgICBodG1sL2NhbnZh
cy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMVW5pZm9y
bUxvY2F0aW9uLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3Bw
Ci0gICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCi0gICAgaHRt
bC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKIAogICAgIGh0bWwvZm9ybXMv
RmlsZUljb25Mb2FkZXIuY3BwCiAKQEAgLTMwNzQsNiArMzAyOCw3IEBAIGlmIChFTkFCTEVfV0VC
R0wpCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXIuY3BwCiAg
ICAgICAgIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAogICAgICAgICBodG1s
L2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorICAgICAgICBodG1sL2NhbnZhcy9X
ZWJHTEFueS5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCiAgICAgICAg
IGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwCiAgICAgICAgIGh0bWwv
Y2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHAKQEAgLTMwODcsNyArMzA0Miw2
IEBAIGlmIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRHJhd0J1ZmZl
cnMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmNwcAogICAgICAgICBo
dG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcAotICAgICAgICBodG1sL2NhbnZhcy9XZWJH
TEdldEluZm8uY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuY3BwCiAg
ICAgICAgIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcAogICAgICAgICBodG1sL2NhbnZhcy9X
ZWJHTFByb2dyYW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IDQzYzBkMDAwZDhlNzM1NTZmZWUxNzA0MmFmNjM5ZTA3
OWVkOTkzMDQuLjRmMTg4Yjg1MjQ4ZmM0MjEzOWQ3NTgxZGUxOTBkM2YyN2ViNjExNmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3Bw
CkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQpAQCAtNjkzLDE4ICs2OTMsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6
OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICBidWZmZXIuYWJv
cnRJZlVwZGF0aW5nKCk7CiAKICAgICAvLyA0LiBMZXQgU291cmNlQnVmZmVyIGF1ZGlvVHJhY2tz
IGxpc3QgZXF1YWwgdGhlIEF1ZGlvVHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSBzb3VyY2VC
dWZmZXIuYXVkaW9UcmFja3MuCi0gICAgUmVmUHRyPEF1ZGlvVHJhY2tMaXN0PiBhdWRpb1RyYWNr
cyA9IGJ1ZmZlci5hdWRpb1RyYWNrcygpOworICAgIGF1dG8mIGF1ZGlvVHJhY2tzID0gYnVmZmVy
LmF1ZGlvVHJhY2tzKCk7CiAKICAgICAvLyA1LiBJZiB0aGUgU291cmNlQnVmZmVyIGF1ZGlvVHJh
Y2tzIGxpc3QgaXMgbm90IGVtcHR5LCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAg
IGlmIChhdWRpb1RyYWNrcy0+bGVuZ3RoKCkpIHsKKyAgICBpZiAoYXVkaW9UcmFja3MubGVuZ3Ro
KCkpIHsKICAgICAgICAgLy8gNS4xIExldCBIVE1MTWVkaWFFbGVtZW50IGF1ZGlvVHJhY2tzIGxp
c3QgZXF1YWwgdGhlIEF1ZGlvVHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSB0aGUgYXVkaW9U
cmFja3MKICAgICAgICAgLy8gYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAg
ICAgICAvLyA1LjIgTGV0IHRoZSByZW1vdmVkIGVuYWJsZWQgYXVkaW8gdHJhY2sgZmxhZyBlcXVh
bCBmYWxzZS4KICAgICAgICAgYm9vbCByZW1vdmVkRW5hYmxlZEF1ZGlvVHJhY2sgPSBmYWxzZTsK
IAogICAgICAgICAvLyA1LjMgRm9yIGVhY2ggQXVkaW9UcmFjayBvYmplY3QgaW4gdGhlIFNvdXJj
ZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0LCBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAg
ICAgd2hpbGUgKGF1ZGlvVHJhY2tzLT5sZW5ndGgoKSkgewotICAgICAgICAgICAgYXV0byYgdHJh
Y2sgPSAqYXVkaW9UcmFja3MtPmxhc3RJdGVtKCk7CisgICAgICAgIHdoaWxlIChhdWRpb1RyYWNr
cy5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byYgdHJhY2sgPSAqYXVkaW9UcmFja3MubGFz
dEl0ZW0oKTsKIAogICAgICAgICAgICAgLy8gNS4zLjEgU2V0IHRoZSBzb3VyY2VCdWZmZXIgYXR0
cmlidXRlIG9uIHRoZSBBdWRpb1RyYWNrIG9iamVjdCB0byBudWxsLgogICAgICAgICAgICAgdHJh
Y2suc2V0U291cmNlQnVmZmVyKG51bGxwdHIpOwpAQCAtNzIzLDcgKzcyMyw3IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyJiBi
dWZmZXIpCiAgICAgICAgICAgICAvLyA1LjMuNSBSZW1vdmUgdGhlIEF1ZGlvVHJhY2sgb2JqZWN0
IGZyb20gdGhlIFNvdXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0LgogICAgICAgICAgICAgLy8g
NS4zLjYgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIHJlbW92ZXRy
YWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMgbm90CiAgICAgICAgICAgICAvLyBjYW5j
ZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGludGVyZmFjZSwgYXQgdGhlIFNv
dXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0LgotICAgICAgICAgICAgYXVkaW9UcmFja3MtPnJl
bW92ZSh0cmFjayk7CisgICAgICAgICAgICBhdWRpb1RyYWNrcy5yZW1vdmUodHJhY2spOwogICAg
ICAgICB9CiAKICAgICAgICAgLy8gNS40IElmIHRoZSByZW1vdmVkIGVuYWJsZWQgYXVkaW8gdHJh
Y2sgZmxhZyBlcXVhbHMgdHJ1ZSwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBl
dmVudApAQCAtNzMzLDE4ICs3MzMsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6
OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICB9CiAKICAgICAv
LyA2LiBMZXQgU291cmNlQnVmZmVyIHZpZGVvVHJhY2tzIGxpc3QgZXF1YWwgdGhlIFZpZGVvVHJh
Y2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSBzb3VyY2VCdWZmZXIudmlkZW9UcmFja3MuCi0gICAg
UmVmUHRyPFZpZGVvVHJhY2tMaXN0PiB2aWRlb1RyYWNrcyA9IGJ1ZmZlci52aWRlb1RyYWNrcygp
OworICAgIGF1dG8mIHZpZGVvVHJhY2tzID0gYnVmZmVyLnZpZGVvVHJhY2tzKCk7CiAKICAgICAv
LyA3LiBJZiB0aGUgU291cmNlQnVmZmVyIHZpZGVvVHJhY2tzIGxpc3QgaXMgbm90IGVtcHR5LCB0
aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIGlmICh2aWRlb1RyYWNrcy0+bGVuZ3Ro
KCkpIHsKKyAgICBpZiAodmlkZW9UcmFja3MubGVuZ3RoKCkpIHsKICAgICAgICAgLy8gNy4xIExl
dCBIVE1MTWVkaWFFbGVtZW50IHZpZGVvVHJhY2tzIGxpc3QgZXF1YWwgdGhlIFZpZGVvVHJhY2tM
aXN0IG9iamVjdCByZXR1cm5lZCBieSB0aGUgdmlkZW9UcmFja3MKICAgICAgICAgLy8gYXR0cmli
dXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAgICAgICAvLyA3LjIgTGV0IHRoZSByZW1v
dmVkIHNlbGVjdGVkIHZpZGVvIHRyYWNrIGZsYWcgZXF1YWwgZmFsc2UuCiAgICAgICAgIGJvb2wg
cmVtb3ZlZFNlbGVjdGVkVmlkZW9UcmFjayA9IGZhbHNlOwogCiAgICAgICAgIC8vIDcuMyBGb3Ig
ZWFjaCBWaWRlb1RyYWNrIG9iamVjdCBpbiB0aGUgU291cmNlQnVmZmVyIHZpZGVvVHJhY2tzIGxp
c3QsIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICB3aGlsZSAodmlkZW9UcmFja3Mt
Pmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiB0cmFjayA9ICp2aWRlb1RyYWNrcy0+bGFz
dEl0ZW0oKTsKKyAgICAgICAgd2hpbGUgKHZpZGVvVHJhY2tzLmxlbmd0aCgpKSB7CisgICAgICAg
ICAgICBhdXRvJiB0cmFjayA9ICp2aWRlb1RyYWNrcy5sYXN0SXRlbSgpOwogCiAgICAgICAgICAg
ICAvLyA3LjMuMSBTZXQgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhlIFZpZGVvVHJh
Y2sgb2JqZWN0IHRvIG51bGwuCiAgICAgICAgICAgICB0cmFjay5zZXRTb3VyY2VCdWZmZXIobnVs
bHB0cik7CkBAIC03NjMsNyArNzYzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6
OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICAgICAgICAgIC8v
IDcuMy41IFJlbW92ZSB0aGUgVmlkZW9UcmFjayBvYmplY3QgZnJvbSB0aGUgU291cmNlQnVmZmVy
IHZpZGVvVHJhY2tzIGxpc3QuCiAgICAgICAgICAgICAvLyA3LjMuNiBRdWV1ZSBhIHRhc2sgdG8g
ZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgcmVtb3ZldHJhY2ssIHRoYXQgZG9lcyBub3QgYnVi
YmxlIGFuZCBpcyBub3QKICAgICAgICAgICAgIC8vIGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMg
dGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgU291cmNlQnVmZmVyIHZpZGVvVHJhY2tz
IGxpc3QuCi0gICAgICAgICAgICB2aWRlb1RyYWNrcy0+cmVtb3ZlKHRyYWNrKTsKKyAgICAgICAg
ICAgIHZpZGVvVHJhY2tzLnJlbW92ZSh0cmFjayk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyA3
LjQgSWYgdGhlIHJlbW92ZWQgc2VsZWN0ZWQgdmlkZW8gdHJhY2sgZmxhZyBlcXVhbHMgdHJ1ZSwg
dGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudApAQCAtNzczLDE4ICs3NzMs
MTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcihT
b3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICB9CiAKICAgICAvLyA4LiBMZXQgU291cmNlQnVmZmVy
IHRleHRUcmFja3MgbGlzdCBlcXVhbCB0aGUgVGV4dFRyYWNrTGlzdCBvYmplY3QgcmV0dXJuZWQg
Ynkgc291cmNlQnVmZmVyLnRleHRUcmFja3MuCi0gICAgUmVmUHRyPFRleHRUcmFja0xpc3Q+IHRl
eHRUcmFja3MgPSBidWZmZXIudGV4dFRyYWNrcygpOworICAgIGF1dG8mIHRleHRUcmFja3MgPSBi
dWZmZXIudGV4dFRyYWNrcygpOwogCiAgICAgLy8gOS4gSWYgdGhlIFNvdXJjZUJ1ZmZlciB0ZXh0
VHJhY2tzIGxpc3QgaXMgbm90IGVtcHR5LCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgot
ICAgIGlmICh0ZXh0VHJhY2tzLT5sZW5ndGgoKSkgeworICAgIGlmICh0ZXh0VHJhY2tzLmxlbmd0
aCgpKSB7CiAgICAgICAgIC8vIDkuMSBMZXQgSFRNTE1lZGlhRWxlbWVudCB0ZXh0VHJhY2tzIGxp
c3QgZXF1YWwgdGhlIFRleHRUcmFja0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5IHRoZSB0ZXh0VHJh
Y2tzCiAgICAgICAgIC8vIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAgICAg
ICAgLy8gOS4yIExldCB0aGUgcmVtb3ZlZCBlbmFibGVkIHRleHQgdHJhY2sgZmxhZyBlcXVhbCBm
YWxzZS4KICAgICAgICAgYm9vbCByZW1vdmVkRW5hYmxlZFRleHRUcmFjayA9IGZhbHNlOwogCiAg
ICAgICAgIC8vIDkuMyBGb3IgZWFjaCBUZXh0VHJhY2sgb2JqZWN0IGluIHRoZSBTb3VyY2VCdWZm
ZXIgdGV4dFRyYWNrcyBsaXN0LCBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAgICAgd2hp
bGUgKHRleHRUcmFja3MtPmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiB0cmFjayA9ICp0
ZXh0VHJhY2tzLT5sYXN0SXRlbSgpOworICAgICAgICB3aGlsZSAodGV4dFRyYWNrcy5sZW5ndGgo
KSkgeworICAgICAgICAgICAgYXV0byYgdHJhY2sgPSAqdGV4dFRyYWNrcy5sYXN0SXRlbSgpOwog
CiAgICAgICAgICAgICAvLyA5LjMuMSBTZXQgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24g
dGhlIFRleHRUcmFjayBvYmplY3QgdG8gbnVsbC4KICAgICAgICAgICAgIHRyYWNrLnNldFNvdXJj
ZUJ1ZmZlcihudWxscHRyKTsKQEAgLTgwMyw3ICs4MDMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBN
ZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciYgYnVmZmVyKQogICAg
ICAgICAgICAgLy8gOS4zLjUgUmVtb3ZlIHRoZSBUZXh0VHJhY2sgb2JqZWN0IGZyb20gdGhlIFNv
dXJjZUJ1ZmZlciB0ZXh0VHJhY2tzIGxpc3QuCiAgICAgICAgICAgICAvLyA5LjMuNiBRdWV1ZSBh
IHRhc2sgdG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgcmVtb3ZldHJhY2ssIHRoYXQgZG9l
cyBub3QgYnViYmxlIGFuZCBpcyBub3QKICAgICAgICAgICAgIC8vIGNhbmNlbGFibGUsIGFuZCB0
aGF0IHVzZXMgdGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgU291cmNlQnVmZmVyIHRl
eHRUcmFja3MgbGlzdC4KLSAgICAgICAgICAgIHRleHRUcmFja3MtPnJlbW92ZSh0cmFjayk7Cisg
ICAgICAgICAgICB0ZXh0VHJhY2tzLnJlbW92ZSh0cmFjayk7CiAgICAgICAgIH0KIAogICAgICAg
ICAvLyA5LjQgSWYgdGhlIHJlbW92ZWQgZW5hYmxlZCB0ZXh0IHRyYWNrIGZsYWcgZXF1YWxzIHRy
dWUsIHRoZW4gcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAppbmRleCA3
ZmVlN2U2MGIyMmU0NDgzNDFjYWEwOWFkOTg5OTY4MDlhNWU0MjZjLi5kOWFlNTI3ODYzNWVjOGZh
YjhiYTdkZjUyZDczNDE0YTU4ODNlZTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
Q29weXJpZ2h0IChDKSAyMDEzLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTksOSArNTksNiBAQAog
I2luY2x1ZGUgPHJ1bnRpbWUvVk0uaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpZiAhTE9HX0RJU0FCTEVECi0jaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNDIxLDcgKzQxOCw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzZWVrVG9UaW1lKGNv
bnN0IE1lZGlhVGltZSYgdGltZSkKICAgICB9CiB9CiAKLU1lZGlhVGltZSBTb3VyY2VCdWZmZXI6
OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoU291cmNlQnVmZmVy
UHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgdGFyZ2V0VGltZSwgY29uc3QgTWVkaWFUaW1lJiBu
ZWdhdGl2ZVRocmVzaG9sZCwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRocmVzaG9sZCkKK01l
ZGlhVGltZSBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JN
ZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1lJiB0YXJnZXRUaW1lLCBjb25zdCBNZWRpYVRpbWUmIG5l
Z2F0aXZlVGhyZXNob2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKQogewog
ICAgIE1lZGlhVGltZSBzZWVrVGltZSA9IHRhcmdldFRpbWU7CiAgICAgTWVkaWFUaW1lIGxvd2Vy
Qm91bmRUaW1lID0gdGFyZ2V0VGltZSAtIG5lZ2F0aXZlVGhyZXNob2xkOwpAQCAtNTY2LDcgKzU2
Myw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZpcmVkKCkKIAogICAg
IC8vIDEuIExvb3AgVG9wOiBJZiB0aGUgaW5wdXQgYnVmZmVyIGlzIGVtcHR5LCB0aGVuIGp1bXAg
dG8gdGhlIG5lZWQgbW9yZSBkYXRhIHN0ZXAgYmVsb3cuCiAgICAgaWYgKCFtX3BlbmRpbmdBcHBl
bmREYXRhLnNpemUoKSkgewotICAgICAgICBzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxl
dGUoJm1fcHJpdmF0ZS5nZXQoKSwgQXBwZW5kU3VjY2VlZGVkKTsKKyAgICAgICAgc291cmNlQnVm
ZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKEFwcGVuZFN1Y2NlZWRlZCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTU3NCw3ICs1NzEsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6YXBwZW5k
QnVmZmVyVGltZXJGaXJlZCgpCiAgICAgbV9wZW5kaW5nQXBwZW5kRGF0YS5jbGVhcigpOwogfQog
Ci12b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFNv
dXJjZUJ1ZmZlclByaXZhdGUqLCBBcHBlbmRSZXN1bHQgcmVzdWx0KQordm9pZCBTb3VyY2VCdWZm
ZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShBcHBlbmRSZXN1bHQgcmVzdWx0
KQogewogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjM1LDcgKzYz
Miw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxl
dGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIEFwcGVuCiAgICAgTE9HKE1lZGlhLCAiU291cmNlQnVm
ZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoJXApIC0gYnVmZmVyZWQgPSAl
cyIsIHRoaXMsIHRvU3RyaW5nKG1fYnVmZmVyZWQtPnJhbmdlcygpKS51dGY4KCkuZGF0YSgpKTsK
IH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlUmVu
ZGVyaW5nRXJyb3IoU291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvcikKK3ZvaWQgU291cmNl
QnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmluZ0Vycm9yKGludCBl
cnJvcikKIHsKICNpZiBMT0dfRElTQUJMRUQKICAgICBVTlVTRURfUEFSQU0oZXJyb3IpOwpAQCAt
OTQ1LDM1ICs5NDIsMzIgQEAgc2l6ZV90IFNvdXJjZUJ1ZmZlcjo6bWF4aW11bUJ1ZmZlclNpemUo
KSBjb25zdAogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBI
VE1MTWVkaWFFbGVtZW50KiBlbGVtZW50ID0gbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpOworICAg
IGF1dG8qIGVsZW1lbnQgPSBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCk7CiAgICAgaWYgKCFlbGVt
ZW50KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHJldHVybiBlbGVtZW50LT5tYXhpbXVtU291
cmNlQnVmZmVyU2l6ZSgqdGhpcyk7CiB9CiAKLVZpZGVvVHJhY2tMaXN0KiBTb3VyY2VCdWZmZXI6
OnZpZGVvVHJhY2tzKCkKK1ZpZGVvVHJhY2tMaXN0JiBTb3VyY2VCdWZmZXI6OnZpZGVvVHJhY2tz
KCkKIHsKICAgICBpZiAoIW1fdmlkZW9UcmFja3MpCi0gICAgICAgIG1fdmlkZW9UcmFja3MgPSBW
aWRlb1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgQWN0aXZlRE9N
T2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0gICAgcmV0dXJuIG1fdmlkZW9U
cmFja3MuZ2V0KCk7CisgICAgICAgIG1fdmlkZW9UcmFja3MgPSBWaWRlb1RyYWNrTGlzdDo6Y3Jl
YXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
KyAgICByZXR1cm4gKm1fdmlkZW9UcmFja3M7CiB9CiAKLUF1ZGlvVHJhY2tMaXN0KiBTb3VyY2VC
dWZmZXI6OmF1ZGlvVHJhY2tzKCkKK0F1ZGlvVHJhY2tMaXN0JiBTb3VyY2VCdWZmZXI6OmF1ZGlv
VHJhY2tzKCkKIHsKICAgICBpZiAoIW1fYXVkaW9UcmFja3MpCi0gICAgICAgIG1fYXVkaW9UcmFj
a3MgPSBBdWRpb1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgQWN0
aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0gICAgcmV0dXJuIG1f
YXVkaW9UcmFja3MuZ2V0KCk7CisgICAgICAgIG1fYXVkaW9UcmFja3MgPSBBdWRpb1RyYWNrTGlz
dDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKKyAgICByZXR1cm4gKm1fYXVkaW9UcmFja3M7CiB9CiAKLVRleHRUcmFja0xpc3QqIFNv
dXJjZUJ1ZmZlcjo6dGV4dFRyYWNrcygpCitUZXh0VHJhY2tMaXN0JiBTb3VyY2VCdWZmZXI6OnRl
eHRUcmFja3MoKQogewogICAgIGlmICghbV90ZXh0VHJhY2tzKQotICAgICAgICBtX3RleHRUcmFj
a3MgPSBUZXh0VHJhY2tMaXN0OjpjcmVhdGUobV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLCBBY3Rp
dmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0KLSAgICByZXR1cm4gbV90
ZXh0VHJhY2tzLmdldCgpOworICAgICAgICBtX3RleHRUcmFja3MgPSBUZXh0VHJhY2tMaXN0Ojpj
cmVhdGUobV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
OworICAgIHJldHVybiAqbV90ZXh0VHJhY2tzOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlcjo6c2V0
QWN0aXZlKGJvb2wgYWN0aXZlKQpAQCAtOTg3LDcgKzk4MSw3IEBAIHZvaWQgU291cmNlQnVmZmVy
OjpzZXRBY3RpdmUoYm9vbCBhY3RpdmUpCiAgICAgICAgIG1fc291cmNlLT5zb3VyY2VCdWZmZXJE
aWRDaGFuZ2VBY3RpdmVTdGF0ZSgqdGhpcywgYWN0aXZlKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZm
ZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNv
dXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmIHNlZ21lbnQp
Cit2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFs
aXphdGlvblNlZ21lbnQoY29uc3QgSW5pdGlhbGl6YXRpb25TZWdtZW50JiBzZWdtZW50KQogewog
ICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTAyNCw0MCArMTAxOCw0
MCBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0
aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgICAgIC8vIDMuMiBBZGQgdGhlIGFwcHJvcHJpYXRlIHRyYWNrIGRlc2NyaXB0aW9u
cyBmcm9tIHRoaXMgaW5pdGlhbGl6YXRpb24gc2VnbWVudCB0byBlYWNoIG9mIHRoZSB0cmFjayBi
dWZmZXJzLgotICAgICAgICBBU1NFUlQoc2VnbWVudC5hdWRpb1RyYWNrcy5zaXplKCkgPT0gYXVk
aW9UcmFja3MoKS0+bGVuZ3RoKCkpOworICAgICAgICBBU1NFUlQoc2VnbWVudC5hdWRpb1RyYWNr
cy5zaXplKCkgPT0gYXVkaW9UcmFja3MoKS5sZW5ndGgoKSk7CiAgICAgICAgIGZvciAoYXV0byYg
YXVkaW9UcmFja0luZm8gOiBzZWdtZW50LmF1ZGlvVHJhY2tzKSB7Ci0gICAgICAgICAgICBpZiAo
YXVkaW9UcmFja3MoKS0+bGVuZ3RoKCkgPT0gMSkgewotICAgICAgICAgICAgICAgIGF1ZGlvVHJh
Y2tzKCktPml0ZW0oMCktPnNldFByaXZhdGUoYXVkaW9UcmFja0luZm8udHJhY2spOworICAgICAg
ICAgICAgaWYgKGF1ZGlvVHJhY2tzKCkubGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgICAg
IGF1ZGlvVHJhY2tzKCkuaXRlbSgwKS0+c2V0UHJpdmF0ZSgqYXVkaW9UcmFja0luZm8udHJhY2sp
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBh
dXRvIGF1ZGlvVHJhY2sgPSBhdWRpb1RyYWNrcygpLT5nZXRUcmFja0J5SWQoYXVkaW9UcmFja0lu
Zm8udHJhY2stPmlkKCkpOworICAgICAgICAgICAgYXV0byBhdWRpb1RyYWNrID0gYXVkaW9UcmFj
a3MoKS5nZXRUcmFja0J5SWQoYXVkaW9UcmFja0luZm8udHJhY2stPmlkKCkpOwogICAgICAgICAg
ICAgQVNTRVJUKGF1ZGlvVHJhY2spOwotICAgICAgICAgICAgYXVkaW9UcmFjay0+c2V0UHJpdmF0
ZShhdWRpb1RyYWNrSW5mby50cmFjayk7CisgICAgICAgICAgICBhdWRpb1RyYWNrLT5zZXRQcml2
YXRlKCphdWRpb1RyYWNrSW5mby50cmFjayk7CiAgICAgICAgIH0KIAotICAgICAgICBBU1NFUlQo
c2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkgPT0gdmlkZW9UcmFja3MoKS0+bGVuZ3RoKCkpOwor
ICAgICAgICBBU1NFUlQoc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkgPT0gdmlkZW9UcmFja3Mo
KS5sZW5ndGgoKSk7CiAgICAgICAgIGZvciAoYXV0byYgdmlkZW9UcmFja0luZm8gOiBzZWdtZW50
LnZpZGVvVHJhY2tzKSB7Ci0gICAgICAgICAgICBpZiAodmlkZW9UcmFja3MoKS0+bGVuZ3RoKCkg
PT0gMSkgewotICAgICAgICAgICAgICAgIHZpZGVvVHJhY2tzKCktPml0ZW0oMCktPnNldFByaXZh
dGUodmlkZW9UcmFja0luZm8udHJhY2spOworICAgICAgICAgICAgaWYgKHZpZGVvVHJhY2tzKCku
bGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgICAgIHZpZGVvVHJhY2tzKCkuaXRlbSgwKS0+
c2V0UHJpdmF0ZSgqdmlkZW9UcmFja0luZm8udHJhY2spOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBhdXRvIHZpZGVvVHJhY2sgPSB2aWRlb1Ry
YWNrcygpLT5nZXRUcmFja0J5SWQodmlkZW9UcmFja0luZm8udHJhY2stPmlkKCkpOworICAgICAg
ICAgICAgYXV0byB2aWRlb1RyYWNrID0gdmlkZW9UcmFja3MoKS5nZXRUcmFja0J5SWQodmlkZW9U
cmFja0luZm8udHJhY2stPmlkKCkpOwogICAgICAgICAgICAgQVNTRVJUKHZpZGVvVHJhY2spOwot
ICAgICAgICAgICAgdmlkZW9UcmFjay0+c2V0UHJpdmF0ZSh2aWRlb1RyYWNrSW5mby50cmFjayk7
CisgICAgICAgICAgICB2aWRlb1RyYWNrLT5zZXRQcml2YXRlKCp2aWRlb1RyYWNrSW5mby50cmFj
ayk7CiAgICAgICAgIH0KIAotICAgICAgICBBU1NFUlQoc2VnbWVudC50ZXh0VHJhY2tzLnNpemUo
KSA9PSB0ZXh0VHJhY2tzKCktPmxlbmd0aCgpKTsKKyAgICAgICAgQVNTRVJUKHNlZ21lbnQudGV4
dFRyYWNrcy5zaXplKCkgPT0gdGV4dFRyYWNrcygpLmxlbmd0aCgpKTsKICAgICAgICAgZm9yIChh
dXRvJiB0ZXh0VHJhY2tJbmZvIDogc2VnbWVudC50ZXh0VHJhY2tzKSB7Ci0gICAgICAgICAgICBp
ZiAodGV4dFRyYWNrcygpLT5sZW5ndGgoKSA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgZG93bmNh
c3Q8SW5iYW5kVGV4dFRyYWNrPigqdGV4dFRyYWNrcygpLT5pdGVtKDApKS5zZXRQcml2YXRlKHRl
eHRUcmFja0luZm8udHJhY2spOworICAgICAgICAgICAgaWYgKHRleHRUcmFja3MoKS5sZW5ndGgo
KSA9PSAxKSB7CisgICAgICAgICAgICAgICAgZG93bmNhc3Q8SW5iYW5kVGV4dFRyYWNrPigqdGV4
dFRyYWNrcygpLml0ZW0oMCkpLnNldFByaXZhdGUoKnRleHRUcmFja0luZm8udHJhY2spOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBhdXRvIHRl
eHRUcmFjayA9IHRleHRUcmFja3MoKS0+Z2V0VHJhY2tCeUlkKHRleHRUcmFja0luZm8udHJhY2st
PmlkKCkpOworICAgICAgICAgICAgYXV0byB0ZXh0VHJhY2sgPSB0ZXh0VHJhY2tzKCkuZ2V0VHJh
Y2tCeUlkKHRleHRUcmFja0luZm8udHJhY2stPmlkKCkpOwogICAgICAgICAgICAgQVNTRVJUKHRl
eHRUcmFjayk7Ci0gICAgICAgICAgICBkb3duY2FzdDxJbmJhbmRUZXh0VHJhY2s+KCp0ZXh0VHJh
Y2spLnNldFByaXZhdGUodGV4dFRyYWNrSW5mby50cmFjayk7CisgICAgICAgICAgICBkb3duY2Fz
dDxJbmJhbmRUZXh0VHJhY2s+KCp0ZXh0VHJhY2spLnNldFByaXZhdGUoKnRleHRUcmFja0luZm8u
dHJhY2spOwogICAgICAgICB9CiAKICAgICAgICAgLy8gMy4zIFNldCB0aGUgbmVlZCByYW5kb20g
YWNjZXNzIHBvaW50IGZsYWcgb24gYWxsIHRyYWNrIGJ1ZmZlcnMgdG8gdHJ1ZS4KQEAgLTEwNzYs
MTYgKzEwNzAsMTQgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRS
ZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKIAogICAgICAgICAvLyA1LjIg
Rm9yIGVhY2ggYXVkaW8gdHJhY2sgaW4gdGhlIGluaXRpYWxpemF0aW9uIHNlZ21lbnQsIHJ1biBm
b2xsb3dpbmcgc3RlcHM6CiAgICAgICAgIGZvciAoYXV0byYgYXVkaW9UcmFja0luZm8gOiBzZWdt
ZW50LmF1ZGlvVHJhY2tzKSB7Ci0gICAgICAgICAgICBBdWRpb1RyYWNrUHJpdmF0ZSogYXVkaW9U
cmFja1ByaXZhdGUgPSBhdWRpb1RyYWNrSW5mby50cmFjay5nZXQoKTsKLQogICAgICAgICAgICAg
Ly8gRklYTUU6IEltcGxlbWVudCBzdGVwcyA1LjIuMS01LjIuOC4xIGFzIHBlciBFZGl0b3IncyBE
cmFmdCAwOSBKYW51YXJ5IDIwMTUsIGFuZCByZW9yZGVyIHRoaXMKICAgICAgICAgICAgIC8vIDUu
Mi4xIExldCBuZXcgYXVkaW8gdHJhY2sgYmUgYSBuZXcgQXVkaW9UcmFjayBvYmplY3QuCiAgICAg
ICAgICAgICAvLyA1LjIuMiBHZW5lcmF0ZSBhIHVuaXF1ZSBJRCBhbmQgYXNzaWduIGl0IHRvIHRo
ZSBpZCBwcm9wZXJ0eSBvbiBuZXcgdmlkZW8gdHJhY2suCi0gICAgICAgICAgICBhdXRvIG5ld0F1
ZGlvVHJhY2sgPSBBdWRpb1RyYWNrOjpjcmVhdGUodGhpcywgYXVkaW9UcmFja1ByaXZhdGUpOwor
ICAgICAgICAgICAgYXV0byBuZXdBdWRpb1RyYWNrID0gQXVkaW9UcmFjazo6Y3JlYXRlKCp0aGlz
LCAqYXVkaW9UcmFja0luZm8udHJhY2spOwogICAgICAgICAgICAgbmV3QXVkaW9UcmFjay0+c2V0
U291cmNlQnVmZmVyKHRoaXMpOwogCiAgICAgICAgICAgICAvLyA1LjIuMyBJZiBhdWRpb1RyYWNr
cy5sZW5ndGggZXF1YWxzIDAsIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAg
ICAgICBpZiAoIWF1ZGlvVHJhY2tzKCktPmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpZiAoIWF1
ZGlvVHJhY2tzKCkubGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICAvLyA1LjIuMy4xIFNldCB0
aGUgZW5hYmxlZCBwcm9wZXJ0eSBvbiBuZXcgYXVkaW8gdHJhY2sgdG8gdHJ1ZS4KICAgICAgICAg
ICAgICAgICBuZXdBdWRpb1RyYWNrLT5zZXRFbmFibGVkKHRydWUpOwogCkBAIC0xMDk3LDcgKzEw
ODksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJ
bml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogICAgICAgICAgICAgLy8gNS4yLjUgUXVl
dWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRyYWNrLCB0aGF0IGRv
ZXMgbm90IGJ1YmJsZSBhbmQgaXMKICAgICAgICAgICAgIC8vIG5vdCBjYW5jZWxhYmxlLCBhbmQg
dGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGludGVyZmFjZSwgYXQgdGhlIEF1ZGlvVHJhY2tMaXN0
IG9iamVjdAogICAgICAgICAgICAgLy8gcmVmZXJlbmNlZCBieSB0aGUgYXVkaW9UcmFja3MgYXR0
cmlidXRlIG9uIHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4KLSAgICAgICAgICAgIGF1ZGlvVHJh
Y2tzKCktPmFwcGVuZChuZXdBdWRpb1RyYWNrLmNvcHlSZWYoKSk7CisgICAgICAgICAgICBhdWRp
b1RyYWNrcygpLmFwcGVuZChuZXdBdWRpb1RyYWNrLmNvcHlSZWYoKSk7CiAKICAgICAgICAgICAg
IC8vIDUuMi42IEFkZCBuZXcgYXVkaW8gdHJhY2sgdG8gdGhlIGF1ZGlvVHJhY2tzIGF0dHJpYnV0
ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAgICAgICAgICAgIC8vIDUuMi43IFF1ZXVlIGEg
dGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5v
dCBidWJibGUgYW5kIGlzCkBAIC0xMTA3LDcgKzEwOTksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6
c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNl
QnVmZgogCiAgICAgICAgICAgICAvLyA1LjIuOCBDcmVhdGUgYSBuZXcgdHJhY2sgYnVmZmVyIHRv
IHN0b3JlIGNvZGVkIGZyYW1lcyBmb3IgdGhpcyB0cmFjay4KICAgICAgICAgICAgIEFTU0VSVCgh
bV90cmFja0J1ZmZlck1hcC5jb250YWlucyhuZXdBdWRpb1RyYWNrLT5pZCgpKSk7Ci0gICAgICAg
ICAgICBUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVmZmVyTWFwLmFkZChuZXdB
dWRpb1RyYWNrLT5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFsdWU7CisgICAgICAg
ICAgICBhdXRvJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKG5ld0F1ZGlvVHJh
Y2stPmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKIAogICAgICAgICAgICAg
Ly8gNS4yLjkgQWRkIHRoZSB0cmFjayBkZXNjcmlwdGlvbiBmb3IgdGhpcyB0cmFjayB0byB0aGUg
dHJhY2sgYnVmZmVyLgogICAgICAgICAgICAgdHJhY2tCdWZmZXIuZGVzY3JpcHRpb24gPSBhdWRp
b1RyYWNrSW5mby5kZXNjcmlwdGlvbjsKQEAgLTExMTcsMTYgKzExMDksMTQgQEAgdm9pZCBTb3Vy
Y2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdt
ZW50KFNvdXJjZUJ1ZmYKIAogICAgICAgICAvLyA1LjMgRm9yIGVhY2ggdmlkZW8gdHJhY2sgaW4g
dGhlIGluaXRpYWxpemF0aW9uIHNlZ21lbnQsIHJ1biBmb2xsb3dpbmcgc3RlcHM6CiAgICAgICAg
IGZvciAoYXV0byYgdmlkZW9UcmFja0luZm8gOiBzZWdtZW50LnZpZGVvVHJhY2tzKSB7Ci0gICAg
ICAgICAgICBWaWRlb1RyYWNrUHJpdmF0ZSogdmlkZW9UcmFja1ByaXZhdGUgPSB2aWRlb1RyYWNr
SW5mby50cmFjay5nZXQoKTsKLQogICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBzdGVw
cyA1LjMuMS01LjMuOC4xIGFzIHBlciBFZGl0b3IncyBEcmFmdCAwOSBKYW51YXJ5IDIwMTUsIGFu
ZCByZW9yZGVyIHRoaXMKICAgICAgICAgICAgIC8vIDUuMy4xIExldCBuZXcgdmlkZW8gdHJhY2sg
YmUgYSBuZXcgVmlkZW9UcmFjayBvYmplY3QuCiAgICAgICAgICAgICAvLyA1LjMuMiBHZW5lcmF0
ZSBhIHVuaXF1ZSBJRCBhbmQgYXNzaWduIGl0IHRvIHRoZSBpZCBwcm9wZXJ0eSBvbiBuZXcgdmlk
ZW8gdHJhY2suCi0gICAgICAgICAgICBhdXRvIG5ld1ZpZGVvVHJhY2sgPSBWaWRlb1RyYWNrOjpj
cmVhdGUodGhpcywgdmlkZW9UcmFja1ByaXZhdGUpOworICAgICAgICAgICAgYXV0byBuZXdWaWRl
b1RyYWNrID0gVmlkZW9UcmFjazo6Y3JlYXRlKCp0aGlzLCAqdmlkZW9UcmFja0luZm8udHJhY2sp
OwogICAgICAgICAgICAgbmV3VmlkZW9UcmFjay0+c2V0U291cmNlQnVmZmVyKHRoaXMpOwogCiAg
ICAgICAgICAgICAvLyA1LjMuMyBJZiB2aWRlb1RyYWNrcy5sZW5ndGggZXF1YWxzIDAsIHRoZW4g
cnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgICAgICBpZiAoIXZpZGVvVHJhY2tzKCkt
Pmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpZiAoIXZpZGVvVHJhY2tzKCkubGVuZ3RoKCkpIHsK
ICAgICAgICAgICAgICAgICAvLyA1LjMuMy4xIFNldCB0aGUgc2VsZWN0ZWQgcHJvcGVydHkgb24g
bmV3IHZpZGVvIHRyYWNrIHRvIHRydWUuCiAgICAgICAgICAgICAgICAgbmV3VmlkZW9UcmFjay0+
c2V0U2VsZWN0ZWQodHJ1ZSk7CiAKQEAgLTExMzgsNyArMTEyOCw3IEBAIHZvaWQgU291cmNlQnVm
ZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChT
b3VyY2VCdWZmCiAgICAgICAgICAgICAvLyA1LjMuNSBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHRy
dXN0ZWQgZXZlbnQgbmFtZWQgYWRkdHJhY2ssIHRoYXQgZG9lcyBub3QgYnViYmxlIGFuZCBpcwog
ICAgICAgICAgICAgLy8gbm90IGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMgdGhlIFRyYWNrRXZl
bnQgaW50ZXJmYWNlLCBhdCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0CiAgICAgICAgICAgICAv
LyByZWZlcmVuY2VkIGJ5IHRoZSB2aWRlb1RyYWNrcyBhdHRyaWJ1dGUgb24gdGhpcyBTb3VyY2VC
dWZmZXIgb2JqZWN0LgotICAgICAgICAgICAgdmlkZW9UcmFja3MoKS0+YXBwZW5kKG5ld1ZpZGVv
VHJhY2suY29weVJlZigpKTsKKyAgICAgICAgICAgIHZpZGVvVHJhY2tzKCkuYXBwZW5kKG5ld1Zp
ZGVvVHJhY2suY29weVJlZigpKTsKIAogICAgICAgICAgICAgLy8gNS4zLjYgQWRkIG5ldyB2aWRl
byB0cmFjayB0byB0aGUgdmlkZW9UcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVt
ZW50LgogICAgICAgICAgICAgLy8gNS4zLjcgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVk
IGV2ZW50IG5hbWVkIGFkZHRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMKQEAgLTEx
NDgsNyArMTEzOCw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlk
UmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmCiAKICAgICAgICAgICAgIC8v
IDUuMy44IENyZWF0ZSBhIG5ldyB0cmFjayBidWZmZXIgdG8gc3RvcmUgY29kZWQgZnJhbWVzIGZv
ciB0aGlzIHRyYWNrLgogICAgICAgICAgICAgQVNTRVJUKCFtX3RyYWNrQnVmZmVyTWFwLmNvbnRh
aW5zKG5ld1ZpZGVvVHJhY2stPmlkKCkpKTsKLSAgICAgICAgICAgIFRyYWNrQnVmZmVyJiB0cmFj
a0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKG5ld1ZpZGVvVHJhY2stPmlkKCksIFRyYWNr
QnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgICAgIGF1dG8mIHRyYWNrQnVmZmVy
ID0gbV90cmFja0J1ZmZlck1hcC5hZGQobmV3VmlkZW9UcmFjay0+aWQoKSwgVHJhY2tCdWZmZXIo
KSkuaXRlcmF0b3ItPnZhbHVlOwogCiAgICAgICAgICAgICAvLyA1LjMuOSBBZGQgdGhlIHRyYWNr
IGRlc2NyaXB0aW9uIGZvciB0aGlzIHRyYWNrIHRvIHRoZSB0cmFjayBidWZmZXIuCiAgICAgICAg
ICAgICB0cmFja0J1ZmZlci5kZXNjcmlwdGlvbiA9IHZpZGVvVHJhY2tJbmZvLmRlc2NyaXB0aW9u
OwpAQCAtMTE1OCwzMyArMTE0OCwzMyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVy
UHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogCiAgICAg
ICAgIC8vIDUuNCBGb3IgZWFjaCB0ZXh0IHRyYWNrIGluIHRoZSBpbml0aWFsaXphdGlvbiBzZWdt
ZW50LCBydW4gZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICBmb3IgKGF1dG8mIHRleHRUcmFja0lu
Zm8gOiBzZWdtZW50LnRleHRUcmFja3MpIHsKLSAgICAgICAgICAgIEluYmFuZFRleHRUcmFja1By
aXZhdGUqIHRleHRUcmFja1ByaXZhdGUgPSB0ZXh0VHJhY2tJbmZvLnRyYWNrLmdldCgpOworICAg
ICAgICAgICAgYXV0byYgdGV4dFRyYWNrUHJpdmF0ZSA9ICp0ZXh0VHJhY2tJbmZvLnRyYWNrOwog
CiAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHN0ZXBzIDUuNC4xLTUuNC44LjEgYXMg
cGVyIEVkaXRvcidzIERyYWZ0IDA5IEphbnVhcnkgMjAxNSwgYW5kIHJlb3JkZXIgdGhpcwogICAg
ICAgICAgICAgLy8gNS40LjEgTGV0IG5ldyB0ZXh0IHRyYWNrIGJlIGEgbmV3IFRleHRUcmFjayBv
YmplY3Qgd2l0aCBpdHMgcHJvcGVydGllcyBwb3B1bGF0ZWQgd2l0aCB0aGUKICAgICAgICAgICAg
IC8vIGFwcHJvcHJpYXRlIGluZm9ybWF0aW9uIGZyb20gdGhlIGluaXRpYWxpemF0aW9uIHNlZ21l
bnQuCi0gICAgICAgICAgICBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrPiBuZXdUZXh0VHJhY2sgPSBJ
bmJhbmRUZXh0VHJhY2s6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRoaXMsIHRl
eHRUcmFja1ByaXZhdGUpOworICAgICAgICAgICAgYXV0byBuZXdUZXh0VHJhY2sgPSBJbmJhbmRU
ZXh0VHJhY2s6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgdGV4dFRy
YWNrUHJpdmF0ZSk7CiAKICAgICAgICAgICAgIC8vIDUuNC4yIElmIHRoZSBtb2RlIHByb3BlcnR5
IG9uIG5ldyB0ZXh0IHRyYWNrIGVxdWFscyAic2hvd2luZyIgb3IgImhpZGRlbiIsIHRoZW4gc2V0
IGFjdGl2ZQogICAgICAgICAgICAgLy8gdHJhY2sgZmxhZyB0byB0cnVlLgotICAgICAgICAgICAg
aWYgKHRleHRUcmFja1ByaXZhdGUtPm1vZGUoKSAhPSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpE
aXNhYmxlZCkKKyAgICAgICAgICAgIGlmICh0ZXh0VHJhY2tQcml2YXRlLm1vZGUoKSAhPSBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlOjpEaXNhYmxlZCkKICAgICAgICAgICAgICAgICBhY3RpdmVUcmFj
a0ZsYWcgPSB0cnVlOwogCiAgICAgICAgICAgICAvLyA1LjQuMyBBZGQgbmV3IHRleHQgdHJhY2sg
dG8gdGhlIHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4K
ICAgICAgICAgICAgIC8vIDUuNC40IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVu
dCBuYW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCiAgICAgICAgICAg
ICAvLyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZh
Y2UsIGF0IHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoaXMKICAgICAgICAgICAgIC8vIFNvdXJj
ZUJ1ZmZlciBvYmplY3QuCi0gICAgICAgICAgICB0ZXh0VHJhY2tzKCktPmFwcGVuZCgqbmV3VGV4
dFRyYWNrKTsKKyAgICAgICAgICAgIHRleHRUcmFja3MoKS5hcHBlbmQobmV3VGV4dFRyYWNrLmdl
dCgpKTsKIAogICAgICAgICAgICAgLy8gNS40LjUgQWRkIG5ldyB0ZXh0IHRyYWNrIHRvIHRoZSB0
ZXh0VHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAgICAgICAgICAg
IC8vIDUuNC42IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0
cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCiAgICAgICAgICAgICAvLyBub3QgY2Fu
Y2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZhY2UsIGF0IHRoZSBU
ZXh0VHJhY2tMaXN0IG9iamVjdAogICAgICAgICAgICAgLy8gcmVmZXJlbmNlZCBieSB0aGUgdGV4
dFRyYWNrcyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCi0gICAgICAgICAgICBt
X3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja3MoKS5hcHBlbmQobmV3VGV4dFRyYWNr
LnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgp
LT50ZXh0VHJhY2tzKCkuYXBwZW5kKFdURk1vdmUobmV3VGV4dFRyYWNrKSk7CiAKICAgICAgICAg
ICAgIC8vIDUuNC43IENyZWF0ZSBhIG5ldyB0cmFjayBidWZmZXIgdG8gc3RvcmUgY29kZWQgZnJh
bWVzIGZvciB0aGlzIHRyYWNrLgotICAgICAgICAgICAgQVNTRVJUKCFtX3RyYWNrQnVmZmVyTWFw
LmNvbnRhaW5zKHRleHRUcmFja1ByaXZhdGUtPmlkKCkpKTsKLSAgICAgICAgICAgIFRyYWNrQnVm
ZmVyJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKHRleHRUcmFja1ByaXZhdGUt
PmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgICAgIEFTU0VS
VCghbV90cmFja0J1ZmZlck1hcC5jb250YWlucyh0ZXh0VHJhY2tQcml2YXRlLmlkKCkpKTsKKyAg
ICAgICAgICAgIGF1dG8mIHRyYWNrQnVmZmVyID0gbV90cmFja0J1ZmZlck1hcC5hZGQodGV4dFRy
YWNrUHJpdmF0ZS5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFsdWU7CiAKICAgICAg
ICAgICAgIC8vIDUuNC44IEFkZCB0aGUgdHJhY2sgZGVzY3JpcHRpb24gZm9yIHRoaXMgdHJhY2sg
dG8gdGhlIHRyYWNrIGJ1ZmZlci4KICAgICAgICAgICAgIHRyYWNrQnVmZmVyLmRlc2NyaXB0aW9u
ID0gdGV4dFRyYWNrSW5mby5kZXNjcmlwdGlvbjsKQEAgLTEyMzEsOSArMTIyMSw5IEBAIGJvb2wg
U291cmNlQnVmZmVyOjp2YWxpZGF0ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBJbml0aWFs
aXphdGlvblNlZ21lbnQmIHNlCiAKICAgICAvLyBOb3RlOiB0aG9zZSBhcmUgY2hlY2tzIGZyb20g
c3RlcCAzLjEKICAgICAvLyAgICogVGhlIG51bWJlciBvZiBhdWRpbywgdmlkZW8sIGFuZCB0ZXh0
IHRyYWNrcyBtYXRjaCB3aGF0IHdhcyBpbiB0aGUgZmlyc3QgaW5pdGlhbGl6YXRpb24gc2VnbWVu
dC4KLSAgICBpZiAoc2VnbWVudC5hdWRpb1RyYWNrcy5zaXplKCkgIT0gYXVkaW9UcmFja3MoKS0+
bGVuZ3RoKCkKLSAgICAgICAgfHwgc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkgIT0gdmlkZW9U
cmFja3MoKS0+bGVuZ3RoKCkKLSAgICAgICAgfHwgc2VnbWVudC50ZXh0VHJhY2tzLnNpemUoKSAh
PSB0ZXh0VHJhY2tzKCktPmxlbmd0aCgpKQorICAgIGlmIChzZWdtZW50LmF1ZGlvVHJhY2tzLnNp
emUoKSAhPSBhdWRpb1RyYWNrcygpLmxlbmd0aCgpCisgICAgICAgIHx8IHNlZ21lbnQudmlkZW9U
cmFja3Muc2l6ZSgpICE9IHZpZGVvVHJhY2tzKCkubGVuZ3RoKCkKKyAgICAgICAgfHwgc2VnbWVu
dC50ZXh0VHJhY2tzLnNpemUoKSAhPSB0ZXh0VHJhY2tzKCkubGVuZ3RoKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIC8vICAgKiBUaGUgY29kZWNzIGZvciBlYWNoIHRyYWNrLCBtYXRj
aCB3aGF0IHdhcyBzcGVjaWZpZWQgaW4gdGhlIGZpcnN0IGluaXRpYWxpemF0aW9uIHNlZ21lbnQu
CkBAIC0xMzE5LDcgKzEzMDksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6YXBwZW5kRXJyb3IoYm9v
bCBkZWNvZGVFcnJvclBhcmFtKQogICAgICAgICBtX3NvdXJjZS0+c3RyZWFtRW5kZWRXaXRoRXJy
b3IoTWVkaWFTb3VyY2U6OkVuZE9mU3RyZWFtRXJyb3I6OkRlY29kZSk7CiB9CiAKLXZvaWQgU291
cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShTb3VyY2VCdWZm
ZXJQcml2YXRlKiwgTWVkaWFTYW1wbGUmIHNhbXBsZSkKK3ZvaWQgU291cmNlQnVmZmVyOjpzb3Vy
Y2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogewog
ICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTY2NiwzMCArMTY1Niwz
MCBAQCBib29sIFNvdXJjZUJ1ZmZlcjo6aGFzVmlkZW8oKSBjb25zdAogICAgIHJldHVybiBtX3Zp
ZGVvVHJhY2tzICYmIG1fdmlkZW9UcmFja3MtPmxlbmd0aCgpOwogfQogCi1ib29sIFNvdXJjZUJ1
ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKGNvbnN0IFNvdXJjZUJ1ZmZlclByaXZh
dGUqKSBjb25zdAorYm9vbCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRp
bygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc0F1ZGlvKCk7CiB9CiAKLWJvb2wgU291cmNlQnVm
ZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8oY29uc3QgU291cmNlQnVmZmVyUHJpdmF0
ZSopIGNvbnN0Citib29sIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVv
KCkgY29uc3QKIHsKICAgICByZXR1cm4gaGFzVmlkZW8oKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZm
ZXI6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayogdHJhY2spCit2b2lkIFNv
dXJjZUJ1ZmZlcjo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrJiB0cmFjaykK
IHsKICAgICAvLyAyLjQuNSBDaGFuZ2VzIHRvIHNlbGVjdGVkL2VuYWJsZWQgdHJhY2sgc3RhdGUK
ICAgICAvLyBJZiB0aGUgc2VsZWN0ZWQgdmlkZW8gdHJhY2sgY2hhbmdlcywgdGhlbiBydW4gdGhl
IGZvbGxvd2luZyBzdGVwczoKICAgICAvLyAxLiBJZiB0aGUgU291cmNlQnVmZmVyIGFzc29jaWF0
ZWQgd2l0aCB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCB2aWRlbyB0cmFjayBpcyBub3QgYXNzb2Np
YXRlZCB3aXRoCiAgICAgLy8gYW55IG90aGVyIGVuYWJsZWQgdHJhY2tzLCBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczoKLSAgICBpZiAoIXRyYWNrLT5zZWxlY3RlZCgpCisgICAgaWYgKCF0cmFjay5z
ZWxlY3RlZCgpCiAgICAgICAgICYmICghbV92aWRlb1RyYWNrcyB8fCAhbV92aWRlb1RyYWNrcy0+
aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX2F1ZGlvVHJhY2tzIHx8ICFtX2F1
ZGlvVHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAgICAgICAmJiAoIW1fdGV4dFRyYWNr
cyB8fCAhbV90ZXh0VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKSkgewogICAgICAgICAvLyAx
LjEgUmVtb3ZlIHRoZSBTb3VyY2VCdWZmZXIgZnJvbSBhY3RpdmVTb3VyY2VCdWZmZXJzLgogICAg
ICAgICAvLyAxLjIgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgcmVt
b3Zlc291cmNlYnVmZmVyIGF0IGFjdGl2ZVNvdXJjZUJ1ZmZlcnMKICAgICAgICAgc2V0QWN0aXZl
KGZhbHNlKTsKLSAgICB9IGVsc2UgaWYgKHRyYWNrLT5zZWxlY3RlZCgpKSB7CisgICAgfSBlbHNl
IGlmICh0cmFjay5zZWxlY3RlZCgpKSB7CiAgICAgICAgIC8vIDIuIElmIHRoZSBTb3VyY2VCdWZm
ZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBuZXdseSBzZWxlY3RlZCB2aWRlbyB0cmFjayBpcyBub3Qg
YWxyZWFkeSBpbiBhY3RpdmVTb3VyY2VCdWZmZXJzLAogICAgICAgICAvLyBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczoKICAgICAgICAgLy8gMi4xIEFkZCB0aGUgU291cmNlQnVmZmVyIHRvIGFjdGl2
ZVNvdXJjZUJ1ZmZlcnMuCkBAIC0xNjk3LDI2ICsxNjg3LDI2IEBAIHZvaWQgU291cmNlQnVmZmVy
Ojp2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqIHRyYWNrKQogICAgICAgICBz
ZXRBY3RpdmUodHJ1ZSk7CiAgICAgfQogCi0gICAgaWYgKG1fdmlkZW9UcmFja3MgJiYgbV92aWRl
b1RyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV92aWRlb1RyYWNrcyAmJiBtX3Zp
ZGVvVHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fdmlkZW9UcmFja3MtPnNjaGVk
dWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIGlmICghaXNSZW1vdmVkKCkpCiAgICAgICAgIG1fc291
cmNlLT5tZWRpYUVsZW1lbnQoKS0+dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCh0cmFjayk7CiB9
CiAKLXZvaWQgU291cmNlQnVmZmVyOjphdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFj
ayogdHJhY2spCit2b2lkIFNvdXJjZUJ1ZmZlcjo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1
ZGlvVHJhY2smIHRyYWNrKQogewogICAgIC8vIDIuNC41IENoYW5nZXMgdG8gc2VsZWN0ZWQvZW5h
YmxlZCB0cmFjayBzdGF0ZQogICAgIC8vIElmIGFuIGF1ZGlvIHRyYWNrIGJlY29tZXMgZGlzYWJs
ZWQgYW5kIHRoZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdHJhY2sgaXMgbm90
CiAgICAgLy8gYXNzb2NpYXRlZCB3aXRoIGFueSBvdGhlciBlbmFibGVkIG9yIHNlbGVjdGVkIHRy
YWNrLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIGlmICghdHJhY2stPmVuYWJs
ZWQoKQorICAgIGlmICghdHJhY2suZW5hYmxlZCgpCiAgICAgICAgICYmICghbV92aWRlb1RyYWNr
cyB8fCAhbV92aWRlb1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFt
X2F1ZGlvVHJhY2tzIHx8ICFtX2F1ZGlvVHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAg
ICAgICAmJiAoIW1fdGV4dFRyYWNrcyB8fCAhbV90ZXh0VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxl
ZCgpKSkgewogICAgICAgICAvLyAxLiBSZW1vdmUgdGhlIFNvdXJjZUJ1ZmZlciBhc3NvY2lhdGVk
IHdpdGggdGhlIGF1ZGlvIHRyYWNrIGZyb20gYWN0aXZlU291cmNlQnVmZmVycwogICAgICAgICAv
LyAyLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCByZW1vdmVzb3Vy
Y2VidWZmZXIgYXQgYWN0aXZlU291cmNlQnVmZmVycwogICAgICAgICBzZXRBY3RpdmUoZmFsc2Up
OwotICAgIH0gZWxzZSBpZiAodHJhY2stPmVuYWJsZWQoKSkgeworICAgIH0gZWxzZSBpZiAodHJh
Y2suZW5hYmxlZCgpKSB7CiAgICAgICAgIC8vIElmIGFuIGF1ZGlvIHRyYWNrIGJlY29tZXMgZW5h
YmxlZCBhbmQgdGhlIFNvdXJjZUJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhpcyB0cmFjayBpcwog
ICAgICAgICAvLyBub3QgYWxyZWFkeSBpbiBhY3RpdmVTb3VyY2VCdWZmZXJzLCB0aGVuIHJ1biB0
aGUgZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICAvLyAxLiBBZGQgdGhlIFNvdXJjZUJ1ZmZlciBh
c3NvY2lhdGVkIHdpdGggdGhlIGF1ZGlvIHRyYWNrIHRvIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMKQEAg
LTE3MjQsMTkgKzE3MTQsMTkgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OmF1ZGlvVHJhY2tFbmFibGVk
Q2hhbmdlZChBdWRpb1RyYWNrKiB0cmFjaykKICAgICAgICAgc2V0QWN0aXZlKHRydWUpOwogICAg
IH0KIAotICAgIGlmIChtX2F1ZGlvVHJhY2tzICYmIG1fYXVkaW9UcmFja3MtPmNvbnRhaW5zKCp0
cmFjaykpCisgICAgaWYgKG1fYXVkaW9UcmFja3MgJiYgbV9hdWRpb1RyYWNrcy0+Y29udGFpbnMo
dHJhY2spKQogICAgICAgICBtX2F1ZGlvVHJhY2tzLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAK
ICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCkt
PmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCh0cmFjayk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVy
Ojp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQordm9pZCBTb3VyY2VCdWZm
ZXI6OnRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7CiAgICAgLy8gMi40
LjUgQ2hhbmdlcyB0byBzZWxlY3RlZC9lbmFibGVkIHRyYWNrIHN0YXRlCiAgICAgLy8gSWYgYSB0
ZXh0IHRyYWNrIG1vZGUgYmVjb21lcyAiZGlzYWJsZWQiIGFuZCB0aGUgU291cmNlQnVmZmVyIGFz
c29jaWF0ZWQgd2l0aCB0aGlzIHRyYWNrIGlzIG5vdAogICAgIC8vIGFzc29jaWF0ZWQgd2l0aCBh
bnkgb3RoZXIgZW5hYmxlZCBvciBzZWxlY3RlZCB0cmFjaywgdGhlbiBydW4gdGhlIGZvbGxvd2lu
ZyBzdGVwczoKLSAgICBpZiAodHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2Fi
bGVkCisgICAgaWYgKHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkCiAg
ICAgICAgICYmICghbV92aWRlb1RyYWNrcyB8fCAhbV92aWRlb1RyYWNrcy0+aXNBbnlUcmFja0Vu
YWJsZWQoKSkKICAgICAgICAgJiYgKCFtX2F1ZGlvVHJhY2tzIHx8ICFtX2F1ZGlvVHJhY2tzLT5p
c0FueVRyYWNrRW5hYmxlZCgpKQogICAgICAgICAmJiAoIW1fdGV4dFRyYWNrcyB8fCAhbV90ZXh0
VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKSkgewpAQCAtMTc1MSw1NiArMTc0MSw1NiBAQCB2
b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykK
ICAgICAgICAgc2V0QWN0aXZlKHRydWUpOwogICAgIH0KIAotICAgIGlmIChtX3RleHRUcmFja3Mg
JiYgbV90ZXh0VHJhY2tzLT5jb250YWlucygqdHJhY2spKQorICAgIGlmIChtX3RleHRUcmFja3Mg
JiYgbV90ZXh0VHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fdGV4dFRyYWNrcy0+
c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogCiAgICAgaWYgKCFpc1JlbW92ZWQoKSkKICAgICAgICAg
bV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tNb2RlQ2hhbmdlZCh0cmFjayk7CiB9
CiAKLXZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiB0cmFjaywg
VGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrQWRkQ3VlKFRl
eHRUcmFjayYgdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogewogICAgIGlmICghaXNSZW1vdmVk
KCkpCiAgICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dGV4dFRyYWNrQWRkQ3VlKHRy
YWNrLCBjdWUpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrQWRkQ3VlcyhUZXh0
VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWVMaXN0IGNvbnN0KiBjdWVMaXN0KQordm9pZCBTb3Vy
Y2VCdWZmZXI6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiB0cmFjaywgY29uc3QgVGV4dFRy
YWNrQ3VlTGlzdCYgY3VlTGlzdCkKIHsKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBt
X3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja0FkZEN1ZXModHJhY2ssIGN1ZUxpc3Qp
OwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayog
dHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja1Jl
bW92ZUN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKICAgICBpZiAo
IWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFj
a1JlbW92ZUN1ZSh0cmFjaywgY3VlKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFj
a1JlbW92ZUN1ZXMoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlTGlzdCBjb25zdCogY3Vl
TGlzdCkKK3ZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYg
dHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZUxpc3QpCiB7CiAgICAgaWYgKCFpc1Jl
bW92ZWQoKSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tSZW1v
dmVDdWVzKHRyYWNrLCBjdWVMaXN0KTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFj
a0tpbmRDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRy
YWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykKIHsKICAgICBpZiAoIWlzUmVtb3ZlZCgp
KQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja0tpbmRDaGFuZ2Vk
KHRyYWNrKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRC
ZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBdG9taWNTdHJp
bmcgdHJhY2tJRCkKK3ZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVj
b21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpCiB7CiAg
ICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlk
QmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyglcCkiLCB0aGlzKTsKICAgICBhdXRvIGl0ID0gbV90
cmFja0J1ZmZlck1hcC5maW5kKHRyYWNrSUQpOwogICAgIGlmIChpdCA9PSBtX3RyYWNrQnVmZmVy
TWFwLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBUcmFja0J1ZmZlciYgdHJhY2tCdWZm
ZXIgPSBpdC0+dmFsdWU7CisgICAgYXV0byYgdHJhY2tCdWZmZXIgPSBpdC0+dmFsdWU7CiAgICAg
aWYgKCF0cmFja0J1ZmZlci5uZWVkc1JlZW5xdWV1ZWluZyAmJiAhbV9zb3VyY2UtPmlzU2Vla2lu
ZygpKQogICAgICAgICBwcm92aWRlTWVkaWFEYXRhKHRyYWNrQnVmZmVyLCB0cmFja0lEKTsKIH0K
IAotdm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoVHJhY2tCdWZmZXImIHRyYWNr
QnVmZmVyLCBBdG9taWNTdHJpbmcgdHJhY2tJRCkKK3ZvaWQgU291cmNlQnVmZmVyOjpwcm92aWRl
TWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgY29uc3QgQXRvbWljU3RyaW5nJiB0
cmFja0lEKQogewogICAgIGlmIChtX3NvdXJjZS0+aXNTZWVraW5nKCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTE4MzQsNyArMTgyNCw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpwcm92aWRlTWVkaWFE
YXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5nIHRyYWNrCiAKICAgICAg
ICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSA9IHNhbXBsZS0+cHJl
c2VudGF0aW9uVGltZSgpOwogICAgICAgICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVF
bmRUaW1lID0gc2FtcGxlLT5kZWNvZGVUaW1lKCkgKyBzYW1wbGUtPmR1cmF0aW9uKCk7Ci0gICAg
ICAgIG1fcHJpdmF0ZS0+ZW5xdWV1ZVNhbXBsZShXVEZNb3ZlKHNhbXBsZSksIHRyYWNrSUQpOwor
ICAgICAgICBtX3ByaXZhdGUtPmVucXVldWVTYW1wbGUoc2FtcGxlLnJlbGVhc2VOb25OdWxsKCks
IHRyYWNrSUQpOwogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgKytlbnF1ZXVlZFNhbXBsZXM7
CiAjZW5kaWYKQEAgLTE4NDMsNyArMTgzMyw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpwcm92aWRl
TWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5nIHRyYWNrCiAg
ICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyOjpwcm92aWRlTWVkaWFEYXRhKCVwKSAt
IEVucXVldWVkICV1IHNhbXBsZXMiLCB0aGlzLCBlbnF1ZXVlZFNhbXBsZXMpOwogfQogCi12b2lk
IFNvdXJjZUJ1ZmZlcjo6cmVlbnF1ZXVlTWVkaWFGb3JUaW1lKFRyYWNrQnVmZmVyJiB0cmFja0J1
ZmZlciwgQXRvbWljU3RyaW5nIHRyYWNrSUQsIGNvbnN0IE1lZGlhVGltZSYgdGltZSkKK3ZvaWQg
U291cmNlQnVmZmVyOjpyZWVucXVldWVNZWRpYUZvclRpbWUoVHJhY2tCdWZmZXImIHRyYWNrQnVm
ZmVyLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQsIGNvbnN0IE1lZGlhVGltZSYgdGltZSkK
IHsKICAgICBtX3ByaXZhdGUtPmZsdXNoKHRyYWNrSUQpOwogICAgIHRyYWNrQnVmZmVyLmRlY29k
ZVF1ZXVlLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXIuaAppbmRleCBkOWUxNzQ3OTk5MjRhZmIwZTg4ZDc0NzcyZThmOGE5MWEy
Y2YwMmIwLi41YTE0MmQ0Y2ExMDIzNTRlZWQ4MGJjMWFjMWJlYmMzMTU3NmM4ZjhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKQEAg
LTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIEF1ZGlvVHJhY2tMaXN0OwogY2xhc3MgQnVmZmVyU291
cmNlOwogY2xhc3MgTWVkaWFTb3VyY2U7CiBjbGFzcyBQbGF0Zm9ybVRpbWVSYW5nZXM7CitjbGFz
cyBTb3VyY2VCdWZmZXJQcml2YXRlOwogY2xhc3MgVGV4dFRyYWNrTGlzdDsKIGNsYXNzIFRpbWVS
YW5nZXM7CiBjbGFzcyBWaWRlb1RyYWNrTGlzdDsKQEAgLTY0LDkgKzY1LDkgQEAgcHVibGljOgog
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFRpbWVzdGFtcE9mZnNldChkb3VibGUpOwogCiAjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQotICAgIFZpZGVvVHJhY2tMaXN0KiB2aWRlb1RyYWNrcygpOwot
ICAgIEF1ZGlvVHJhY2tMaXN0KiBhdWRpb1RyYWNrcygpOwotICAgIFRleHRUcmFja0xpc3QqIHRl
eHRUcmFja3MoKTsKKyAgICBWaWRlb1RyYWNrTGlzdCYgdmlkZW9UcmFja3MoKTsKKyAgICBBdWRp
b1RyYWNrTGlzdCYgYXVkaW9UcmFja3MoKTsKKyAgICBUZXh0VHJhY2tMaXN0JiB0ZXh0VHJhY2tz
KCk7CiAjZW5kaWYKIAogICAgIGRvdWJsZSBhcHBlbmRXaW5kb3dTdGFydCgpIGNvbnN0OwpAQCAt
MTI0LDI1ICsxMjUsMjQgQEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNw
ZW5zaW9uKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRS
ZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBJ
bml0aWFsaXphdGlvblNlZ21lbnQmKSBmaW5hbDsKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZh
dGVEaWRSZWNlaXZlU2FtcGxlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBNZWRpYVNhbXBsZSYpIGZp
bmFsOwotICAgIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKGNvbnN0IFNvdXJjZUJ1
ZmZlclByaXZhdGUqKSBjb25zdCBmaW5hbDsKLSAgICBib29sIHNvdXJjZUJ1ZmZlclByaXZhdGVI
YXNWaWRlbyhjb25zdCBTb3VyY2VCdWZmZXJQcml2YXRlKikgY29uc3QgZmluYWw7Ci0gICAgdm9p
ZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhTb3VyY2VC
dWZmZXJQcml2YXRlKiwgQXRvbWljU3RyaW5nIHRyYWNrSUQpIGZpbmFsOwotICAgIE1lZGlhVGlt
ZSBzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKFNvdXJjZUJ1ZmZl
clByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZlVGhy
ZXNob2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKSBmaW5hbDsKLSAgICB2
b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2YXRl
KiwgQXBwZW5kUmVzdWx0KSBmaW5hbDsKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRS
ZWNlaXZlUmVuZGVyaW5nRXJyb3IoU291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvckNvZGUp
IGZpbmFsOwotCi0gICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayop
IGZpbmFsOwotCi0gICAgdm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sq
KSBmaW5hbDsKLQotICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrKikgZmlu
YWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqKSBmaW5hbDsKLSAg
ICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlz
dCopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBjb25z
dCBUZXh0VHJhY2tDdWVMaXN0KikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4
dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVD
dWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgZmluYWw7CisgICAgdm9pZCBzb3VyY2VCdWZm
ZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBJbml0aWFsaXph
dGlvblNlZ21lbnQmKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNl
aXZlU2FtcGxlKE1lZGlhU2FtcGxlJikgZmluYWw7CisgICAgYm9vbCBzb3VyY2VCdWZmZXJQcml2
YXRlSGFzQXVkaW8oKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHNvdXJjZUJ1ZmZlclByaXZhdGVI
YXNWaWRlbygpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZEJl
Y29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKSBmaW5h
bDsKKyAgICBNZWRpYVRpbWUgc291cmNlQnVmZmVyUHJpdmF0ZUZhc3RTZWVrVGltZUZvck1lZGlh
VGltZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZlVGhyZXNob2xk
LCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKSBmaW5hbDsKKyAgICB2b2lkIHNv
dXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShBcHBlbmRSZXN1bHQpIGZpbmFsOworICAg
IHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihpbnQgZXJy
b3JDb2RlKSBmaW5hbDsKKworICAgIHZvaWQgYXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlv
VHJhY2smKSBmaW5hbDsKKyAgICB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9U
cmFjayYpIGZpbmFsOworCisgICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2sm
KSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIGZpbmFs
OworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tD
dWVMaXN0JikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYs
IGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja0FkZEN1
ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja1Jl
bW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKIAogICAgIEV2ZW50VGFy
Z2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
U291cmNlQnVmZmVyRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAKQEAgLTE1Nyw4ICsxNTcs
OCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCB2YWxpZGF0ZUluaXRpYWxpemF0aW9uU2VnbWVudChj
b25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmKTsKIAotICAgIHZvaWQgcmVlbnF1ZXVlTWVkaWFG
b3JUaW1lKFRyYWNrQnVmZmVyJiwgQXRvbWljU3RyaW5nIHRyYWNrSUQsIGNvbnN0IE1lZGlhVGlt
ZSYpOwotICAgIHZvaWQgcHJvdmlkZU1lZGlhRGF0YShUcmFja0J1ZmZlciYsIEF0b21pY1N0cmlu
ZyB0cmFja0lEKTsKKyAgICB2b2lkIHJlZW5xdWV1ZU1lZGlhRm9yVGltZShUcmFja0J1ZmZlciYs
IGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCwgY29uc3QgTWVkaWFUaW1lJik7CisgICAgdm9p
ZCBwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiwgY29uc3QgQXRvbWljU3RyaW5nJiB0cmFj
a0lEKTsKICAgICB2b2lkIGRpZERyb3BTYW1wbGUoKTsKICAgICB2b2lkIGV2aWN0Q29kZWRGcmFt
ZXMoc2l6ZV90IG5ld0RhdGFTaXplKTsKICAgICBzaXplX3QgbWF4aW11bUJ1ZmZlclNpemUoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAxMDJiYzU2ZDU0ZGFlZjk1NmNjZmY1OTc5MTBjZjYzOTQ2MjVlMGUwLi4xYTM5
MGQxZDQ0NmQ3ZjBkYzhmNDlkOTRmMjFjYjI5YTU5NTQ0M2NiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjE0LDggKzI2MTQs
OCBAQAogCQk2RTNGQUU4RTE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUzRkFFOEMx
NDczM0ZEQjAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmNwcCAqLzsgfTsKIAkJNkUzRkFF
OEYxNDczM0ZEQjAwRTQyMzA2IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4RDE0NzMzRkRC
MDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCAqLzsgfTsKIAkJNkUzRkFF
OEYxNDczM0ZEQjAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4RDE0NzMzRkRCMDBFNDIzMDcg
LyogV2ViR0xEZXB0aFRleHR1cmUuaCAqLzsgfTsKLQkJNkU0N0U2NjAxMEI3OTQ0QjAwQjE4NkM4
IC8qIFdlYkdMR2V0SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCAq
LzsgfTsKLQkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU0N0U2NUYxMEI3OTQ0
QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5oICovOyB9OworCQk2RTQ3RTY2MDEwQjc5NDRCMDBC
MTg2QzggLyogV2ViR0xBbnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkU0N0U2NUUxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmNwcCAqLzsg
fTsKKwkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTQ3RTY1RjEwQjc5NDRCMDBCMTg2
QzggLyogV2ViR0xBbnkuaCAqLzsgfTsKIAkJNkU0QUJDRDQxMzhFQTBCNzAwNzFEMjkxIC8qIEpT
SFRNTFVua25vd25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZFNEFCQ0QyMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtub3duRWxl
bWVudC5jcHAgKi87IH07CiAJCTZFNEFCQ0Q1MTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtu
b3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkU0QUJDRDMxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50LmggKi87
IH07CiAJCTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTRFOTFB
QTEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05OTE0LDggKzk5MTQsOCBA
QAogCQk2RTNGQUU4RDE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xEZXB0aFRleHR1cmUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFFOTAxNDczM0ZFQTAwRTQyMzA2IC8qIFdlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHTENv
bXByZXNzZWRUZXh0dXJlUzNUQy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZF
M0ZBRTkwMTQ3MzNGRUEwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVyZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gV2ViR0xEZXB0aFRleHR1cmUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMR2V0SW5mby5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFNDdFNjVGMTBCNzk0NEIwMEIxODZDOCAvKiBX
ZWJHTEdldEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xHZXRJ
bmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFNDdFNjVFMTBCNzk0NEIwMEIx
ODZDOCAvKiBXZWJHTEFueS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJHTEFueS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFNDdFNjVGMTBC
Nzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJHTEFueS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTRBQkNEMjEz
OEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2RTRBQkNEMzEzOEVBMEI3MDA3MUQyOTEgLyogSlNIVE1M
VW5rbm93bkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1M
VW5rbm93bkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkU0RTkxQUEx
MEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTY5MjYsOCArMTY5MjYsOCBAQAogCQkJCTQ5QzdCOUFFMTA0
MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmNwcCAqLywKIAkJCQk0OUM3QjlBRjEw
NDJEMzJFMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5oICovLAogCQkJCTQ5QzdCOUIwMTA0
MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmlkbCAqLywKLQkJCQk2RTQ3RTY1RTEw
Qjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCAqLywKLQkJCQk2RTQ3RTY1RjEwQjc5
NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmggKi8sCisJCQkJNkU0N0U2NUUxMEI3OTQ0QjAw
QjE4NkM4IC8qIFdlYkdMQW55LmNwcCAqLywKKwkJCQk2RTQ3RTY1RjEwQjc5NDRCMDBCMTg2Qzgg
LyogV2ViR0xBbnkuaCAqLywKIAkJCQk5M0YxRDVCNzEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xM
b3NlQ29udGV4dC5jcHAgKi8sCiAJCQkJOTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdM
TG9zZUNvbnRleHQuaCAqLywKIAkJCQk5M0YxRDVCOTEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xM
b3NlQ29udGV4dC5pZGwgKi8sCkBAIC0yODI0MCw3ICsyODI0MCw3IEBACiAJCQkJNUIzMDY5NUUx
OEIzRDM0NTAwOTlENUU4IC8qIFdlYkdMRHJhd0J1ZmZlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTZFQkYwRTU1MTJBODkyOTgwMERCMTcwOSAvKiBXZWJHTEV4dGVuc2lvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDlDN0I5Q0YxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMRnJhbWVidWZmZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCTZFNDdFNjYxMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldElu
Zm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTZFNDdFNjYxMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJH
TEFueS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlGRkJGM0YxMUM5M0VFMzAwNkE3MTE4IC8qIFdl
YkdMTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjFENUJCMTJENTMyQzQwMDgzMkJFQyAv
KiBXZWJHTExvc2VDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3QjlENTEwNDJEMzJG
MDAwOUQ0NDcgLyogV2ViR0xPYmplY3QuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3MjksNyArMzE3
MjksNyBAQAogCQkJCTVCMzA2OTVEMThCM0QzNDUwMDk5RDVFOCAvKiBXZWJHTERyYXdCdWZmZXJz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFQkYwRTU0MTJBODkyOTgwMERCMTcwOSAvKiBXZWJH
TEV4dGVuc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUM3QjlDRTEwNDJEMzJGMDAwOUQ0
NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk2RTQ3RTY2MDEw
Qjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTZF
NDdFNjYwMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk0OUZGQkY0MDExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTkzRjFENUJBMTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUQ0MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTE9iamVj
dC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAppbmRleCBl
MjBiMjM4Njg2NGRhY2RkYWQ1NjJmYzNlZWM2YWEzMzk0ZmYxMGE1Li45M2I3OTZhNDViZmVjZWY2
NmRmNzk0OTc1ZmIwNDk1N2JjY2I2MjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTY1LDkgKzY1LDkgQEAgc3RhdGljIENhbnZhc1N0eWxlIHRvSFRNTENhbnZhc1N0eWxlKEV4ZWNT
dGF0ZSosIEpTVmFsdWUgdmFsdWUpCiAgICAgICAgIHJldHVybiBDYW52YXNTdHlsZSgpOwogICAg
IEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7CiAgICAgaWYgKG9iamVjdC0+aW5o
ZXJpdHMoSlNDYW52YXNHcmFkaWVudDo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIENhbnZhc1N0
eWxlKCZqc0Nhc3Q8SlNDYW52YXNHcmFkaWVudCo+KG9iamVjdCktPndyYXBwZWQoKSk7CisgICAg
ICAgIHJldHVybiBqc0Nhc3Q8SlNDYW52YXNHcmFkaWVudCo+KG9iamVjdCktPndyYXBwZWQoKTsK
ICAgICBpZiAob2JqZWN0LT5pbmhlcml0cyhKU0NhbnZhc1BhdHRlcm46OmluZm8oKSkpCi0gICAg
ICAgIHJldHVybiBDYW52YXNTdHlsZSgmanNDYXN0PEpTQ2FudmFzUGF0dGVybio+KG9iamVjdCkt
PndyYXBwZWQoKSk7CisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNDYW52YXNQYXR0ZXJuKj4ob2Jq
ZWN0KS0+d3JhcHBlZCgpOwogICAgIHJldHVybiBDYW52YXNTdHlsZSgpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25z
LmNwcAppbmRleCBmNzhhMTE4NjIxOGM2YTliZDFkNzdiZTg3ODc0M2U5ZWFjYmFjNzQ0Li40MTgx
ZDc0Nzg2ZjM5ZjNkZDVmZDc5NzdlY2Y2ODFkZGM2MjUyOTY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKQEAg
LTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRl
biAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDgsIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNC0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAg
LTQwLDcgKzQwLDcgQEAgSW5zdGFuY2UqIHBsdWdpbkluc3RhbmNlKEhUTUxFbGVtZW50JiBlbGVt
ZW50KQogICAgIC8vIFRoZSBwbHVnaW4gZWxlbWVudCBob2xkcyBhbiBvd25pbmcgcmVmZXJlbmNl
LCBzbyB3ZSBkb24ndCBoYXZlIHRvLgogICAgIGlmICghaXM8SFRNTFBsdWdJbkVsZW1lbnQ+KGVs
ZW1lbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBJbnN0YW5jZSogaW5zdGFuY2Ug
PSBkb3duY2FzdDxIVE1MUGx1Z0luRWxlbWVudD4oZWxlbWVudCkuZ2V0SW5zdGFuY2UoKS5nZXQo
KTsKKyAgICBhdXRvKiBpbnN0YW5jZSA9IGRvd25jYXN0PEhUTUxQbHVnSW5FbGVtZW50PihlbGVt
ZW50KS5iaW5kaW5nc0luc3RhbmNlKCk7CiAgICAgaWYgKCFpbnN0YW5jZSB8fCAhaW5zdGFuY2Ut
PnJvb3RPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGluc3Rh
bmNlOwpAQCAtNzEsMjMgKzcxLDIzIEBAIEpTT2JqZWN0KiBwbHVnaW5TY3JpcHRPYmplY3QoRXhl
Y1N0YXRlKiBleGVjLCBKU0hUTUxFbGVtZW50KiBqc0hUTUxFbGVtZW50KQogICAgIGlmICghaXM8
SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIEhUTUxQbHVnSW5FbGVtZW50JiBwbHVnaW5FbGVtZW50ID0gZG93bmNhc3Q8SFRNTFBsdWdJ
bkVsZW1lbnQ+KGVsZW1lbnQpOworICAgIGF1dG8mIHBsdWdpbkVsZW1lbnQgPSBkb3duY2FzdDxI
VE1MUGx1Z0luRWxlbWVudD4oZWxlbWVudCk7CiAKICAgICAvLyBDaG9rZSBwb2ludCBmb3Igc2Ny
aXB0L3BsdWdpbiBpbnRlcmFjdGlvbjsgbm90aWZ5IERPTVRpbWVyIG9mIHRoZSBldmVudC4KICAg
ICBET01UaW1lcjo6c2NyaXB0RGlkSW50ZXJhY3RXaXRoUGx1Z2luKHBsdWdpbkVsZW1lbnQpOwog
CiAgICAgLy8gRmlyc3QsIHNlZSBpZiB0aGUgZWxlbWVudCBoYXMgYSBwbHVnLWluIHJlcGxhY2Vt
ZW50IHdpdGggYSBzY3JpcHQuCi0gICAgaWYgKEpTT2JqZWN0KiBzY3JpcHRPYmplY3QgPSBwbHVn
aW5FbGVtZW50LnNjcmlwdE9iamVjdEZvclBsdWdpblJlcGxhY2VtZW50KCkpCisgICAgaWYgKGF1
dG8qIHNjcmlwdE9iamVjdCA9IHBsdWdpbkVsZW1lbnQuc2NyaXB0T2JqZWN0Rm9yUGx1Z2luUmVw
bGFjZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIHNjcmlwdE9iamVjdDsKICAgICAKICAgICAvLyBO
ZXh0LCBzZWUgaWYgd2UgY2FuIGFzayB0aGUgcGx1Zy1pbiB2aWV3IGZvciBpdHMgc2NyaXB0IG9i
amVjdC4KLSAgICBpZiAoSlNPYmplY3QqIHNjcmlwdE9iamVjdCA9IHBsdWdpblNjcmlwdE9iamVj
dEZyb21QbHVnaW5WaWV3QmFzZShwbHVnaW5FbGVtZW50LCBqc0hUTUxFbGVtZW50LT5nbG9iYWxP
YmplY3QoKSkpCisgICAgaWYgKGF1dG8qIHNjcmlwdE9iamVjdCA9IHBsdWdpblNjcmlwdE9iamVj
dEZyb21QbHVnaW5WaWV3QmFzZShwbHVnaW5FbGVtZW50LCBqc0hUTUxFbGVtZW50LT5nbG9iYWxP
YmplY3QoKSkpCiAgICAgICAgIHJldHVybiBzY3JpcHRPYmplY3Q7CiAKICAgICAvLyBPdGhlcndp
c2UsIGZhbGwgYmFjayB0byBnZXR0aW5nIHRoZSBvYmplY3QgZnJvbSB0aGUgaW5zdGFuY2UuCiAK
ICAgICAvLyBUaGUgcGx1Z2luIGVsZW1lbnQgaG9sZHMgYW4gb3duaW5nIHJlZmVyZW5jZSwgc28g
d2UgZG9uJ3QgaGF2ZSB0by4KLSAgICBJbnN0YW5jZSogaW5zdGFuY2UgPSBwbHVnaW5FbGVtZW50
LmdldEluc3RhbmNlKCkuZ2V0KCk7CisgICAgYXV0byogaW5zdGFuY2UgPSBwbHVnaW5FbGVtZW50
LmJpbmRpbmdzSW5zdGFuY2UoKTsKICAgICBpZiAoIWluc3RhbmNlIHx8ICFpbnN0YW5jZS0+cm9v
dE9iamVjdCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3Rv
bS5jcHAKaW5kZXggNzg4YWQyNDQ0NjkyMGQwZmEyZWFlZWI3NDhkNjQ5YmJlMzY4YzQ3MS4uNGM1
MGNjZjhmMzA0NmVkMDA4MzY1MDg4Njc3ZmE0YTc4ZTdjZGVlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRD
dXN0b20uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzYsMzcgKzM2LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi0vLyBGSVhNRTogVGhlcmUgaXMgYSBkdXBsaWNhdGUgdmVyc2lv
biBvZiB0aGlzIGZ1bmN0aW9uIGluIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5j
cHAsCi0vLyBidXQgaXQgaXMgbm90IGV4YWN0bHkgdGhlIHNhbWUhIFdlIHNob3VsZCBtZXJnZSB0
aGVzZS4KLXN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgV2ViR0xHZXRJbmZvJiBpbmZvKQotewotICAgIHN3
aXRjaCAoaW5mby5nZXRUeXBlKCkpIHsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVCb29s
OgotICAgICAgICByZXR1cm4ganNCb29sZWFuKGluZm8uZ2V0Qm9vbCgpKTsKLSAgICBjYXNlIFdl
YkdMR2V0SW5mbzo6a1R5cGVCb29sQXJyYXk6IHsKLSAgICAgICAgTWFya2VkQXJndW1lbnRCdWZm
ZXIgbGlzdDsKLSAgICAgICAgZm9yIChhdXRvJiB2YWx1ZSA6IGluZm8uZ2V0Qm9vbEFycmF5KCkp
Ci0gICAgICAgICAgICBsaXN0LmFwcGVuZChqc0Jvb2xlYW4odmFsdWUpKTsKLSAgICAgICAgcmV0
dXJuIGNvbnN0cnVjdEFycmF5KHN0YXRlLCAwLCBnbG9iYWxPYmplY3QsIGxpc3QpOwotICAgIH0K
LSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVGbG9hdDoKLSAgICAgICAgcmV0dXJuIGpzTnVt
YmVyKGluZm8uZ2V0RmxvYXQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlSW50Ogot
ICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRJbnQoKSk7Ci0gICAgY2FzZSBXZWJHTEdl
dEluZm86OmtUeXBlTnVsbDoKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIGNhc2UgV2Vi
R0xHZXRJbmZvOjprVHlwZVN0cmluZzoKLSAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hl
KHN0YXRlLCBpbmZvLmdldFN0cmluZygpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVV
bnNpZ25lZEludDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0VW5zaWduZWRJbnQo
KSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlSW50NjQ6Ci0gICAgICAgIHJldHVybiBq
c051bWJlcihpbmZvLmdldEludDY0KCkpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLX0KLQogdm9p
ZCBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQogewogICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCgmd3JhcHBlZCgp
KTsKQEAgLTEwNCw3ICs3Myw3IEBAIEpTVmFsdWUgSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRJbmRleGVkUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgSlNWYWx1ZSgpKTsKICAgICB1bnNpZ25lZCBpbmRleCA9IHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0YXRlKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0
KCksIHdyYXBwZWQoKS5nZXRJbmRleGVkUGFyYW1ldGVyKHBuYW1lLCBpbmRleCkpOworICAgIHJl
dHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRJbmRleGVkUGFy
YW1ldGVyKHBuYW1lLCBpbmRleCkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKEV4ZWNTdGF0ZSYpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2VDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlQ3VzdG9tLmNwcAppbmRleCA4MjVkMjUwOTRkMmNjNjIyMDZiMDQ5OTZjMTBk
NTMxZTU0Mjk4MDkxLi41MzNiMGI2YjNjMDJmN2IxYWMxMWVlZjcwNmJjNGZiNjZmOTA1OTM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2VDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNywxNyArMjcsMTIgQEAKIAog
I2lmIEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUgIkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oIgotCi0jaW5jbHVkZSAiQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIKICNpbmNsdWRlICJFWFRC
bGVuZE1pbk1heC5oIgogI2luY2x1ZGUgIkVYVEZyYWdEZXB0aC5oIgogI2luY2x1ZGUgIkVYVFNo
YWRlclRleHR1cmVMT0QuaCIKICNpbmNsdWRlICJFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
aCIKICNpbmNsdWRlICJFWFRzUkdCLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2lu
Y2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5o
IgogI2luY2x1ZGUgIkpTQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIKICNpbmNsdWRlICJKU0VYVEJs
ZW5kTWluTWF4LmgiCiAjaW5jbHVkZSAiSlNFWFRGcmFnRGVwdGguaCIKQEAgLTczLDcgKzY4LDYg
QEAKICNpbmNsdWRlICJKU1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIKICNpbmNsdWRlICJKU1dl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKICNpbmNsdWRlICJKU1dlYktpdENTU01hdHJpeC5o
IgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiT0VTRWxlbWVudEluZGV4
VWludC5oIgogI2luY2x1ZGUgIk9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCIKICNpbmNsdWRlICJP
RVNUZXh0dXJlRmxvYXQuaCIKQEAgLTkxLDcgKzg1LDYgQEAKICNpbmNsdWRlICJXZWJHTERyYXdC
dWZmZXJzLmgiCiAjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKICNpbmNsdWRlICJXZWJHTEZy
YW1lYnVmZmVyLmgiCi0jaW5jbHVkZSAiV2ViR0xHZXRJbmZvLmgiCiAjaW5jbHVkZSAiV2ViR0xM
b3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKQEAgLTEwNSw3ICs5OCw2IEBACiAjaW5jbHVkZSA8d3Rm
L0Zhc3RNYWxsb2MuaD4KIAogI2lmIEVOQUJMRShWSURFTykKLSNpbmNsdWRlICJIVE1MVmlkZW9F
bGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MVmlkZW9FbGVtZW50LmgiCiAjZW5kaWYKIApAQCAt
MTE3LDcgKzEwOSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZT4mJiBvYmplY3QpCitKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+
JiYgb2JqZWN0KQogewogI2lmIEVOQUJMRShXRUJHTDIpCiAgICAgaWYgKGlzPFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ+KG9iamVjdCkpCkBAIC0xMzEsNjQgKzEyMyw3IEBAIEpTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBXZWJHTFJl
bmRlcmluZ0NvCiAgICAgcmV0dXJuIHdyYXAoc3RhdGUsIGdsb2JhbE9iamVjdCwgb2JqZWN0KTsK
IH0KICAgICAKLS8vIEZJWE1FOiBUaGVyZSBpcyBhIGR1cGxpY2F0ZSB2ZXJzaW9uIG9mIHRoaXMg
ZnVuY3Rpb24gaW4gSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCwKLS8vIGJ1dCBp
dCBpcyBub3QgZXhhY3RseSB0aGUgc2FtZSEgV2Ugc2hvdWxkIG1lcmdlIHRoZXNlLgotc3RhdGlj
IEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIGNvbnN0IFdlYkdMR2V0SW5mbyYgaW5mbykKLXsKLSAgICBzd2l0Y2ggKGluZm8uZ2V0
VHlwZSgpKSB7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlQm9vbDoKLSAgICAgICAgcmV0
dXJuIGpzQm9vbGVhbihpbmZvLmdldEJvb2woKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtU
eXBlQm9vbEFycmF5OiB7Ci0gICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGxpc3Q7Ci0gICAg
ICAgIGZvciAoYXV0byYgdmFsdWUgOiBpbmZvLmdldEJvb2xBcnJheSgpKQotICAgICAgICAgICAg
bGlzdC5hcHBlbmQoanNCb29sZWFuKHZhbHVlKSk7Ci0gICAgICAgIHJldHVybiBjb25zdHJ1Y3RB
cnJheShleGVjLCAwLCBnbG9iYWxPYmplY3QsIGxpc3QpOwotICAgIH0KLSAgICBjYXNlIFdlYkdM
R2V0SW5mbzo6a1R5cGVGbG9hdDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0Rmxv
YXQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlSW50OgotICAgICAgICByZXR1cm4g
anNOdW1iZXIoaW5mby5nZXRJbnQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlTnVs
bDoKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlw
ZVN0cmluZzoKLSAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIGluZm8uZ2V0
U3RyaW5nKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVVuc2lnbmVkSW50OgotICAg
ICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRVbnNpZ25lZEludCgpKTsKLSAgICBjYXNlIFdl
YkdMR2V0SW5mbzo6a1R5cGVXZWJHTEJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMQnVmZmVyKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJ
bmZvOjprVHlwZVdlYkdMRmxvYXRBcnJheToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xv
YmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMRmxvYXRBcnJheSgpKTsKLSAgICBjYXNlIFdlYkdMR2V0
SW5mbzo6a1R5cGVXZWJHTEZyYW1lYnVmZmVyOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xGcmFtZWJ1ZmZlcigpKTsKLSAgICBjYXNlIFdlYkdM
R2V0SW5mbzo6a1R5cGVXZWJHTEludEFycmF5OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xJbnRBcnJheSgpKTsKLSAgICAgICAgLy8gRklYTUU6
IGltcGxlbWVudCBXZWJHTE9iamVjdEFycmF5Ci0gICAgICAgIC8vIGNhc2UgV2ViR0xHZXRJbmZv
OjprVHlwZVdlYkdMT2JqZWN0QXJyYXk6Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2Vi
R0xQcm9ncmFtOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8u
Z2V0V2ViR0xQcm9ncmFtKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMUmVu
ZGVyYnVmZmVyOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8u
Z2V0V2ViR0xSZW5kZXJidWZmZXIoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2Vi
R0xUZXh0dXJlOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8u
Z2V0V2ViR0xUZXh0dXJlKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVW5z
aWduZWRCeXRlQXJyYXk6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwg
aW5mby5nZXRXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZv
OjprVHlwZVdlYkdMVW5zaWduZWRJbnRBcnJheToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMVW5zaWduZWRJbnRBcnJheSgpKTsKLSNpZiBFTkFC
TEUoV0VCR0wyKQotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVmVydGV4QXJyYXlP
YmplY3Q6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRX
ZWJHTFZlcnRleEFycmF5T2JqZWN0KCkpOwotI2VuZGlmCi0gICAgY2FzZSBXZWJHTEdldEluZm86
OmtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzoKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKSk7Ci0g
ICAgZGVmYXVsdDoKLSAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7Ci0gICAgfQotfQotCi1lbnVtIE9iamVjdFR5cGUgeyBrQnVmZmVyLCBrUmVu
ZGVyYnVmZmVyLCBrVGV4dHVyZSwga1ZlcnRleEF0dHJpYiB9OwotCi1zdGF0aWMgSlNWYWx1ZSBn
ZXRPYmplY3RQYXJhbWV0ZXIoSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBvYmosIEV4ZWNT
dGF0ZSYgc3RhdGUsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSkKK3N0YXRpYyBKU1ZhbHVlIG9iamVj
dFBhcmFtZXRlcihKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIEV4ZWNTdGF0
ZSYgc3RhdGUsIFdlYkdMQW55IChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjoqZ2V0dGVyKShH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5Niw5
MCArMTMxLDY2IEBAIHN0YXRpYyBKU1ZhbHVlIGdldE9iamVjdFBhcmFtZXRlcihKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UqIG9iaiwgRXhlY1N0YXRlJiBzCiAgICAgaWYgKHN0YXRlLmFyZ3Vt
ZW50Q291bnQoKSAhPSAyKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBz
Y29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CiAgICAgCi0gICAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCA9IG9iai0+d3JhcHBlZCgpOwotICAg
IHVuc2lnbmVkIHRhcmdldCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0
YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHVu
c2lnbmVkIHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUp
OwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgV2ViR0xH
ZXRJbmZvIGluZm87Ci0gICAgc3dpdGNoIChvYmplY3RUeXBlKSB7Ci0gICAgY2FzZSBrQnVmZmVy
OgotICAgICAgICBpbmZvID0gY29udGV4dC5nZXRCdWZmZXJQYXJhbWV0ZXIodGFyZ2V0LCBwbmFt
ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Uga1JlbmRlcmJ1ZmZlcjoKLSAgICAgICAgaW5m
byA9IGNvbnRleHQuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKHRhcmdldCwgcG5hbWUpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIGtUZXh0dXJlOgotICAgICAgICBpbmZvID0gY29udGV4dC5n
ZXRUZXhQYXJhbWV0ZXIodGFyZ2V0LCBwbmFtZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
a1ZlcnRleEF0dHJpYjoKLSAgICAgICAgLy8gdGFyZ2V0ID0+IGluZGV4Ci0gICAgICAgIGluZm8g
PSBjb250ZXh0LmdldFZlcnRleEF0dHJpYih0YXJnZXQsIHBuYW1lKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgfQotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgb2JqLT5nbG9iYWxPYmplY3QoKSwgaW5m
byk7CisgICAgYXV0byB0YXJnZXQgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMy
KCZzdGF0ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBhdXRv
IHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUs
ICpjb250ZXh0Lmdsb2JhbE9iamVjdCgpLCAoY29udGV4dC53cmFwcGVkKCkuKmdldHRlcikodGFy
Z2V0LCBwbmFtZSkpOwogfQogCi1lbnVtIFdoaWNoUHJvZ3JhbUNhbGwgewotICAgIGtQcm9ncmFt
UGFyYW1ldGVyLCBrVW5pZm9ybQotfTsKLQotc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUq
IGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdlYkdMRXh0ZW5zaW9uKiBl
eHRlbnNpb24pCitzdGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTRE9NR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFdlYkdMRXh0ZW5zaW9uKiBleHRlbnNpb24pCiB7CiAg
ICAgaWYgKCFleHRlbnNpb24pCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKICAgICBzd2l0Y2gg
KGV4dGVuc2lvbi0+Z2V0TmFtZSgpKSB7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xM
b3NlQ29udGV4dE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwg
c3RhdGljX2Nhc3Q8V2ViR0xMb3NlQ29udGV4dCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1
cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMTG9zZUNvbnRl
eHQqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRTaGFkZXJUZXh0
dXJlTE9ETmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxFWFRTaGFkZXJUZXh0dXJlTE9EKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUU2hhZGVyVGV4dHVy
ZUxPRCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpY05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9i
amVjdCwgc3RhdGljX2Nhc3Q8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9u
KSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBX
ZWJHTEV4dGVuc2lvbjo6RVhUc1JHQk5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUc1JHQio+KGV4dGVuc2lvbikpOworICAgICAgICBy
ZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVHNSR0IqPihl
eHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRGcmFnRGVwdGhOYW1lOgot
ICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVEZy
YWdEZXB0aCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9i
YWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVEZyYWdEZXB0aCo+KGV4dGVuc2lvbikpOwogICAgIGNh
c2UgV2ViR0xFeHRlbnNpb246OkVYVEJsZW5kTWluTWF4TmFtZToKLSAgICAgICAgcmV0dXJuIHRv
SlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRCbGVuZE1pbk1heCo+KGV4dGVu
c2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PEVYVEJsZW5kTWluTWF4Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVu
c2lvbjo6T0VTU3RhbmRhcmREZXJpdmF0aXZlc05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTU3RhbmRhcmREZXJpdmF0aXZlcyo+KGV4
dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0
YXRpY19jYXN0PE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMqPihleHRlbnNpb24pKTsKICAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpPRVNUZXh0dXJlRmxvYXROYW1lOgotICAgICAgICByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVGbG9hdCo+KGV4dGVu
c2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PE9FU1RleHR1cmVGbG9hdCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246Ok9FU1RleHR1cmVGbG9hdExpbmVhck5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0TGluZWFyKj4oZXh0
ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3Rh
dGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0TGluZWFyKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBX
ZWJHTEV4dGVuc2lvbjo6T0VTVGV4dHVyZUhhbGZGbG9hdE5hbWU6Ci0gICAgICAgIHJldHVybiB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUhhbGZGbG9hdCo+
KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3Qs
IHN0YXRpY19jYXN0PE9FU1RleHR1cmVIYWxmRmxvYXQqPihleHRlbnNpb24pKTsKICAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyTmFtZToKLSAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlSGFs
ZkZsb2F0TGluZWFyKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwg
Jmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcio+KGV4
dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1ZlcnRleEFycmF5T2JqZWN0
TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9K
Uygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0
Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTRWxlbWVudEluZGV4
VWludE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGlj
X2Nhc3Q8T0VTRWxlbWVudEluZGV4VWludCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4g
dG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU0VsZW1lbnRJbmRleFVp
bnQqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxXZWJHTERlYnVnUmVuZGVyZXJJbmZvKj4oZXh0ZW5zaW9uKSk7CisgICAgICAg
IHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Oldl
YkdMRGVidWdTaGFkZXJzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlYnVnU2hhZGVycyo+KGV4dGVuc2lvbikpOworICAgICAg
ICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVi
dWdTaGFkZXJzKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xD
b21wcmVzc2VkVGV4dHVyZUFUQ05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQyo+KGV4dGVuc2lv
bikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19j
YXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdl
YkdMRXh0ZW5zaW9uOjpXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVENOYW1lOgotICAgICAgICBy
ZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQyo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUs
ICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQyo+
KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQyo+KGV4dGVuc2lvbikpOworICAg
ICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVu
c2lvbjo6V2ViR0xEZXB0aFRleHR1cmVOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVwdGhUZXh0dXJlKj4oZXh0ZW5zaW9uKSk7
CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8
V2ViR0xEZXB0aFRleHR1cmUqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9u
OjpXZWJHTERyYXdCdWZmZXJzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERyYXdCdWZmZXJzKj4oZXh0ZW5zaW9uKSk7CisgICAg
ICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xE
cmF3QnVmZmVycyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkFOR0xF
SW5zdGFuY2VkQXJyYXlzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxBTkdMRUluc3RhbmNlZEFycmF5cyo+KGV4dGVuc2lvbikpOworICAg
ICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEFOR0xF
SW5zdGFuY2VkQXJyYXlzKj4oZXh0ZW5zaW9uKSk7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIHJldHVybiBqc051bGwoKTsKIH0KIAotYm9vbCBKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK2Jvb2wg
SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEhhbmRsZTxVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
IHsKICAgICBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGpzV2ViR0xSZW5kZXJpbmdDb250
ZXh0ID0ganNDYXN0PEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+KGhhbmRsZS5zbG90KCkt
PmFzQ2VsbCgpKTsKICAgICB2b2lkKiByb290ID0gV2ViQ29yZTo6cm9vdChqc1dlYkdMUmVuZGVy
aW5nQ29udGV4dC0+d3JhcHBlZCgpLmNhbnZhcygpKTsKQEAgLTMwNiw5ICsyMTcsOSBAQCBKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QXR0YWNoZWRTaGFkZXJzKEV4ZWNT
dGF0ZSYgc3RhdGUpCiAgICAgVmVjdG9yPFJlZlB0cjxXZWJHTFNoYWRlcj4+IHNoYWRlcnM7CiAg
ICAgaWYgKCFjb250ZXh0LmdldEF0dGFjaGVkU2hhZGVycyhwcm9ncmFtLCBzaGFkZXJzKSkKICAg
ICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgbGlz
dDsKLSAgICBmb3IgKHNpemVfdCBpaSA9IDA7IGlpIDwgc2hhZGVycy5zaXplKCk7ICsraWkpCi0g
ICAgICAgIGxpc3QuYXBwZW5kKHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgc2hhZGVyc1tp
aV0uZ2V0KCkpKTsKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBsaXN0OworICAgIGZvciAoYXV0
byYgc2hhZGVyIDogc2hhZGVycykKKyAgICAgICAgbGlzdC5hcHBlbmQodG9KUygmc3RhdGUsIGds
b2JhbE9iamVjdCgpLCBzaGFkZXIuZ2V0KCkpKTsKICAgICByZXR1cm4gY29uc3RydWN0QXJyYXko
JnN0YXRlLCAwLCBnbG9iYWxPYmplY3QoKSwgbGlzdCk7CiB9CiAKQEAgLTMyMCwxNCArMjMxLDE0
IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRFeHRlbnNpb24oRXhl
Y1N0YXRlJiBzdGF0ZSkKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAg
ICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKCZzdGF0ZSkpOwogICAgIAotICAgIFN0cmluZyBuYW1lID0gc3RhdGUudW5j
aGVja2VkQXJndW1lbnQoMCkudG9XVEZTdHJpbmcoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFs
T2JqZWN0KCksIHdyYXBwZWQoKS5nZXRFeHRlbnNpb24obmFtZSkpOworICAgIGF1dG8gbmFtZSA9
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvV1RGU3RyaW5nKCZzdGF0ZSk7CisgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmds
b2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0RXh0ZW5zaW9uKG5hbWUpKTsKIH0KIAogSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFtZXRlcihFeGVjU3Rh
dGUmIHN0YXRlKQogewotICAgIHJldHVybiBnZXRPYmplY3RQYXJhbWV0ZXIodGhpcywgc3RhdGUs
IGtCdWZmZXIpOworICAgIHJldHVybiBvYmplY3RQYXJhbWV0ZXIoKnRoaXMsIHN0YXRlLCAmV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVyUGFyYW1ldGVyKTsKIH0KIAogSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBh
cmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQpAQCAtMzM4LDEzICsyNDksMTMgQEAgSlNWYWx1ZSBK
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlcihFeGVjU3RhdGUKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDMpCiAgICAg
ICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICB1bnNpZ25lZCB0YXJnZXQgPSBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICB1bnNpZ25lZCBhdHRhY2htZW50ID0gc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgdW5zaWduZWQgcG5hbWUgPSBzdGF0ZS51
bmNoZWNrZWRBcmd1bWVudCgyKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9i
amVjdCgpLCB3cmFwcGVkKCkuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKHRhcmdl
dCwgYXR0YWNobWVudCwgcG5hbWUpKTsKKyAgICBhdXRvIHRhcmdldCA9IHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOworICAgIGF1dG8gYXR0YWNobWVudCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDEpLnRvSW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OworICAgIGF1dG8gcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKS50b0ludDMyKCZz
dGF0ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4g
dG9KUyhzdGF0ZSwgKmdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0RnJhbWVidWZmZXJBdHRh
Y2htZW50UGFyYW1ldGVyKHRhcmdldCwgYXR0YWNobWVudCwgcG5hbWUpKTsKIH0KIAogSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFBhcmFtZXRlcihFeGVjU3RhdGUmIHN0
YXRlKQpAQCAtMzU1LDkgKzI2Niw5IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICBpZiAoc3RhdGUuYXJndW1l
bnRDb3VudCgpICE9IDEpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNj
b3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICB1
bnNpZ25lZCBwbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRl
KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRQYXJhbWV0ZXIocG5h
bWUpKTsKKyAgICBhdXRvIHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkudG9JbnQz
Migmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0
dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFBhcmFtZXRlcihw
bmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJv
Z3JhbVBhcmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQpAQCAtMzY4LDE3ICsyNzksMTcgQEAgSlNW
YWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJhbWV0ZXIoRXhl
Y1N0YXRlJiBzdGF0ZSkKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDIpCiAgICAg
ICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0g
PSBKU1dlYkdMUHJvZ3JhbTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsK
KyAgICBhdXRvKiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvV3JhcHBlZChzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFwcm9ncmFtICYmICFzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgdW5zaWduZWQgcG5hbWUgPSBzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgSlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgp
LCB3cmFwcGVkKCkuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBwbmFtZSkpOworICAgIGF1
dG8gcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Cisg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0
ZSwgKmdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFt
LCBwbmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGdl
dE9iamVjdFBhcmFtZXRlcih0aGlzLCBzdGF0ZSwga1JlbmRlcmJ1ZmZlcik7CisgICAgcmV0dXJu
IG9iamVjdFBhcmFtZXRlcigqdGhpcywgc3RhdGUsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0U2hhZGVyUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC0z
OTMsOCArMzA0LDggQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNo
YWRlclBhcmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoJnN0YXRlLCBzY29wZSk7CiAgICAgV2ViR0xTaGFkZXIqIHNoYWRlciA9IEpTV2ViR0xT
aGFkZXI6OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgdW5zaWdu
ZWQgcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Ci0g
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gdG9K
Uygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0U2hhZGVyUGFyYW1ldGVyKHNo
YWRlciwgcG5hbWUpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAg
IHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRTaGFkZXJQ
YXJhbWV0ZXIoc2hhZGVyLCBwbmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucyhFeGVjU3RhdGUmIHN0YXRlKQpAQCAt
NDEwLDcgKzMyMSw3IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRT
dXBwb3J0ZWRFeHRlbnNpb25zKEV4ZWNTdGF0ZSYgc3RhdGUpCiAKIEpTVmFsdWUgSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsK
LSAgICByZXR1cm4gZ2V0T2JqZWN0UGFyYW1ldGVyKHRoaXMsIHN0YXRlLCBrVGV4dHVyZSk7Cisg
ICAgcmV0dXJuIG9iamVjdFBhcmFtZXRlcigqdGhpcywgc3RhdGUsICZXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybShFeGVjU3RhdGUmIHN0YXRlKQpAQCAtNDI3LDM2ICsz
MzgsMzUgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0o
RXhlY1N0YXRlJiBzdGF0ZSkKICAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBK
U1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MSkpOwogICAgIGlmICghbG9jYXRpb24gJiYgIXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLmlz
VW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUs
IHNjb3BlKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVk
KCkuZ2V0VW5pZm9ybShwcm9ncmFtLCBsb2NhdGlvbikpOworICAgIHJldHVybiB0b0pTKHN0YXRl
LCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRVbmlmb3JtKHByb2dyYW0sIGxvY2F0aW9u
KSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhB
dHRyaWIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4gZ2V0T2JqZWN0UGFyYW1ldGVy
KHRoaXMsIHN0YXRlLCBrVmVydGV4QXR0cmliKTsKKyAgICByZXR1cm4gb2JqZWN0UGFyYW1ldGVy
KCp0aGlzLCBzdGF0ZSwgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0dHJp
Yik7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eT4KLWJv
b2wgdG9WZWN0b3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFZl
Y3RvcjxULCBpbmxpbmVDYXBhY2l0eT4mIHZlY3RvcikKK3RlbXBsYXRlPHR5cGVuYW1lIFZlY3Rv
clR5cGU+IGJvb2wgdG9OdW1iZXJWZWN0b3IoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1
ZSwgVmVjdG9yVHlwZSYgdmVjdG9yKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKCF2YWx1ZS5p
c09iamVjdCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgSlNDOjpKU09iamVj
dCogb2JqZWN0ID0gYXNPYmplY3QodmFsdWUpOwotICAgIGludDMyX3QgbGVuZ3RoID0gb2JqZWN0
LT5nZXQoJnN0YXRlLCBzdGF0ZS52bSgpLnByb3BlcnR5TmFtZXMtPmxlbmd0aCkudG9JbnQzMigm
c3RhdGUpOwotICAgIAorCisgICAgYXV0byYgb2JqZWN0ID0gKmFzT2JqZWN0KHZhbHVlKTsKKyAg
ICBpbnQzMl90IGxlbmd0aCA9IG9iamVjdC5nZXQoJnN0YXRlLCBzdGF0ZS52bSgpLnByb3BlcnR5
TmFtZXMtPmxlbmd0aCkudG9JbnQzMigmc3RhdGUpOworCiAgICAgaWYgKCF2ZWN0b3IudHJ5UmVz
ZXJ2ZUNhcGFjaXR5KGxlbmd0aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB2ZWN0b3Iu
cmVzaXplKGxlbmd0aCk7Ci0gICAgCisKICAgICBmb3IgKGludDMyX3QgaSA9IDA7IGkgPCBsZW5n
dGg7ICsraSkgewotICAgICAgICBKU0M6OkpTVmFsdWUgdiA9IG9iamVjdC0+Z2V0KCZzdGF0ZSwg
aSk7CisgICAgICAgIGF1dG8gdmFsdWUgPSBvYmplY3QuZ2V0KCZzdGF0ZSwgaSk7CisgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICAgICAgdmVjdG9yLnVuY2hl
Y2tlZEFwcGVuZCh2YWx1ZS50b051bWJlcigmc3RhdGUpKTsKICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZmFsc2UpOwotICAgICAgICB2ZWN0b3JbaV0gPSBzdGF0aWNfY2FzdDxU
Pih2LnRvTnVtYmVyKCZzdGF0ZSkpOwogICAgIH0KLSAgICAKKwogICAgIHJldHVybiB0cnVlOwog
fQogCkBAIC00NjksNyArMzc5LDcgQEAgZW51bSBEYXRhRnVuY3Rpb25NYXRyaXhUb0NhbGwgewog
ICAgIGZfdW5pZm9ybU1hdHJpeDJmdiwgZl91bmlmb3JtTWF0cml4M2Z2LCBmX3VuaWZvcm1NYXRy
aXg0ZnYKIH07CiAKLXN0YXRpYyBib29sIGZ1bmN0aW9uRm9yVW5pZm9ybShEYXRhRnVuY3Rpb25U
b0NhbGwgZikKK3N0YXRpYyBpbmxpbmUgYm9vbCBmdW5jdGlvbkZvclVuaWZvcm0oRGF0YUZ1bmN0
aW9uVG9DYWxsIGYpCiB7CiAgICAgc3dpdGNoIChmKSB7CiAgICAgY2FzZSBmX3VuaWZvcm0xdjoK
QEAgLTQ3NywxMiArMzg3LDEyIEBAIHN0YXRpYyBib29sIGZ1bmN0aW9uRm9yVW5pZm9ybShEYXRh
RnVuY3Rpb25Ub0NhbGwgZikKICAgICBjYXNlIGZfdW5pZm9ybTN2OgogICAgIGNhc2UgZl91bmlm
b3JtNHY6CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGRlZmF1bHQ6IGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwog
fQogCi1zdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxs
IGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29u
dGV4dCkKK3N0YXRpYyBKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYs
IEV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiB7
CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC00OTAsMjIgKzQwMCwxOSBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRh
dGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwg
VwogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgIT0gMikKICAgICAgICAgcmV0dXJuIHRo
cm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KCZzdGF0ZSkpOwogICAgIAotICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IDA7
Ci0gICAgbG9uZyBpbmRleCA9IC0xOwotICAgIAorICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBs
b2NhdGlvbiA9IG51bGxwdHI7CisgICAgR0x1aW50IGluZGV4ID0gLTE7CisKICAgICBpZiAoZnVu
Y3Rpb25Gb3JVbmlmb3JtKGYpKSB7CiAgICAgICAgIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1M
b2NhdGlvbjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICAgICAg
aWYgKCFsb2NhdGlvbiAmJiAhc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRP
ck51bGwoKSkKICAgICAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3Bl
KTsKLSAgICB9IGVsc2UKKyAgICB9IGVsc2UgewogICAgICAgICBpbmRleCA9IHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKLSAgICAKLSAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIAotICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+
IHdlYkdMQXJyYXkgPSB0b1Vuc2hhcmVkRmxvYXQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAg
IAotICAgIGlmICh3ZWJHTEFycmF5KSB7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisgICAgfQorCisgICAgaWYgKGF1dG8gd2ViR0xBcnJheSA9IHRvVW5zaGFyZWRG
bG9hdDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpKSB7CiAgICAgICAgIHN3aXRj
aCAoZikgewogICAgICAgICBjYXNlIGZfdW5pZm9ybTF2OgogICAgICAgICAgICAgY29udGV4dC51
bmlmb3JtMWZ2KGxvY2F0aW9uLCAqd2ViR0xBcnJheSk7CkBAIC01MzIsMTQgKzQzOSwxMyBAQCBz
dGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpT
Qzo6RXhlY1N0YXRlJiBzdGF0ZSwgVwogICAgICAgICAgICAgY29udGV4dC52ZXJ0ZXhBdHRyaWI0
ZnYoaW5kZXgsICp3ZWJHTEFycmF5KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0g
ICAgICAgIAogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgCisKICAg
ICBWZWN0b3I8ZmxvYXQsIDY0PiBhcnJheTsKLSAgICBpZiAoIXRvVmVjdG9yKHN0YXRlLCBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgxKSwgYXJyYXkpKQorICAgIGlmICghdG9OdW1iZXJWZWN0b3Io
c3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLCBhcnJheSkpCiAgICAgICAgIHJldHVy
biB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICAKKwogICAgIHN3aXRjaCAoZikg
ewogICAgIGNhc2UgZl91bmlmb3JtMXY6CiAgICAgICAgIGNvbnRleHQudW5pZm9ybTFmdihsb2Nh
dGlvbiwgYXJyYXkuZGF0YSgpLCBhcnJheS5zaXplKCkpOwpAQCAtNTY2LDI1ICs0NzIsMjIgQEAg
c3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25mKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBK
U0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAgICAgICAgY29udGV4dC52ZXJ0ZXhBdHRyaWI0ZnYo
aW5kZXgsIGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQotICAgIAogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgSlNDOjpKU1Zh
bHVlIGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBz
dGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCkKK3N0YXRpYyBKU1ZhbHVl
IGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEV4ZWNTdGF0ZSYgc3RhdGUsIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUu
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBp
ZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDIpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2Vw
dGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUp
KTsKLSAgICAKLSAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5p
Zm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworCisg
ICAgYXV0byogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghbG9jYXRpb24gJiYgIXN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0
aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICAKLSAgICBSZWZQdHI8SW50MzJBcnJh
eT4gd2ViR0xBcnJheSA9IHRvVW5zaGFyZWRJbnQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpKTsKLSAgICAKLSAgICBpZiAod2ViR0xBcnJheSkgeworCisgICAgaWYgKGF1dG8gd2Vi
R0xBcnJheSA9IHRvVW5zaGFyZWRJbnQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEp
KSkgewogICAgICAgICBzd2l0Y2ggKGYpIHsKICAgICAgICAgY2FzZSBmX3VuaWZvcm0xdjoKICAg
ICAgICAgICAgIGNvbnRleHQudW5pZm9ybTFpdihsb2NhdGlvbiwgKndlYkdMQXJyYXkpOwpAQCAt
NjAxLDE1ICs1MDQsMTMgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25pKERhdGFG
dW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgCi0gICAgCisKICAgICBWZWN0b3I8aW50LCA2
ND4gYXJyYXk7Ci0gICAgaWYgKCF0b1ZlY3RvcihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMSksIGFycmF5KSkKKyAgICBpZiAoIXRvTnVtYmVyVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgxKSwgYXJyYXkpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3Io
JnN0YXRlLCBzY29wZSk7Ci0gICAgCisKICAgICBzd2l0Y2ggKGYpIHsKICAgICBjYXNlIGZfdW5p
Zm9ybTF2OgogICAgICAgICBjb250ZXh0LnVuaWZvcm0xaXYobG9jYXRpb24sIGFycmF5LmRhdGEo
KSwgYXJyYXkuc2l6ZSgpKTsKQEAgLTYyNiwyOCArNTI3LDI1IEBAIHN0YXRpYyBKU0M6OkpTVmFs
dWUgZGF0YUZ1bmN0aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0
YXRlLCBXCiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIAogICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlv
bk1hdHJpeChEYXRhRnVuY3Rpb25NYXRyaXhUb0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRl
LCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQorc3RhdGljIEpTVmFsdWUgZGF0
YUZ1bmN0aW9uTWF0cml4KERhdGFGdW5jdGlvbk1hdHJpeFRvQ2FsbCBmLCBFeGVjU3RhdGUmIHN0
YXRlLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQogewogICAgIFZNJiB2bSA9
IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
CiAgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSAhPSAzKQogICAgICAgICByZXR1cm4gdGhy
b3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
JnN0YXRlKSk7Ci0gICAgCi0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gSlNX
ZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDAp
KTsKKworICAgIGF1dG8qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFw
cGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIWxvY2F0aW9uICYmICFz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgCisKICAgICBib29sIHRy
YW5zcG9zZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvQm9vbGVhbigmc3RhdGUpOwot
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgCi0gICAgUmVm
UHRyPEZsb2F0MzJBcnJheT4gd2ViR0xBcnJheSA9IHRvVW5zaGFyZWRGbG9hdDMyQXJyYXkoc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMikpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHsgfSk7CiAKLSAgICBpZiAod2ViR0xBcnJheSkgeworICAgIGlmIChhdXRvIHdlYkdMQXJyYXkg
PSB0b1Vuc2hhcmVkRmxvYXQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKSkgewog
ICAgICAgICBzd2l0Y2ggKGYpIHsKICAgICAgICAgY2FzZSBmX3VuaWZvcm1NYXRyaXgyZnY6CiAg
ICAgICAgICAgICBjb250ZXh0LnVuaWZvcm1NYXRyaXgyZnYobG9jYXRpb24sIHRyYW5zcG9zZSwg
KndlYkdMQXJyYXkpOwpAQCAtNjU5LDE0ICs1NTcsMTMgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBk
YXRhRnVuY3Rpb25NYXRyaXgoRGF0YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYsIEpTQzo6RXhlY1N0
YXQKICAgICAgICAgICAgIGNvbnRleHQudW5pZm9ybU1hdHJpeDRmdihsb2NhdGlvbiwgdHJhbnNw
b3NlLCAqd2ViR0xBcnJheSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotCiAgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KLSAgICAKKwogICAgIFZlY3RvcjxmbG9h
dCwgNjQ+IGFycmF5OwotICAgIGlmICghdG9WZWN0b3Ioc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDIpLCBhcnJheSkpCisgICAgaWYgKCF0b051bWJlclZlY3RvcihzdGF0ZSwgc3RhdGUu
dW5jaGVja2VkQXJndW1lbnQoMiksIGFycmF5KSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVy
cm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgIAorCiAgICAgc3dpdGNoIChmKSB7CiAgICAgY2FzZSBm
X3VuaWZvcm1NYXRyaXgyZnY6CiAgICAgICAgIGNvbnRleHQudW5pZm9ybU1hdHJpeDJmdihsb2Nh
dGlvbiwgdHJhbnNwb3NlLCBhcnJheS5kYXRhKCksIGFycmF5LnNpemUoKSk7CkBAIC02NzgsODEg
KzU3NSw4MCBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbk1hdHJpeChEYXRhRnVu
Y3Rpb25NYXRyaXhUb0NhbGwgZiwgSlNDOjpFeGVjU3RhdAogICAgICAgICBjb250ZXh0LnVuaWZv
cm1NYXRyaXg0ZnYobG9jYXRpb24sIHRyYW5zcG9zZSwgYXJyYXkuZGF0YSgpLCBhcnJheS5zaXpl
KCkpOwogICAgICAgICBicmVhazsKICAgICB9Ci0KICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
IH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFm
dihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6dW5pZm9ybTFmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVu
Y3Rpb25mKGZfdW5pZm9ybTF2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFpdihKU0M6OkV4ZWNTdGF0ZSYg
c3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFpdihF
eGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5pZm9ybTF2
LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dW5pZm9ybTJmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTJmdihFeGVjU3RhdGUmIHN0YXRlKQog
ewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdW5pZm9ybTJ2LCBzdGF0ZSwgd3JhcHBlZCgp
KTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9y
bTJpdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6dW5pZm9ybTJpdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRh
RnVuY3Rpb25pKGZfdW5pZm9ybTJ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTNmdihKU0M6OkV4ZWNTdGF0
ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTNm
dihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdW5pZm9y
bTN2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6dW5pZm9ybTNpdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTNpdihFeGVjU3RhdGUmIHN0YXRl
KQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5pZm9ybTN2LCBzdGF0ZSwgd3JhcHBl
ZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5p
Zm9ybTRmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dW5pZm9ybTRmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBk
YXRhRnVuY3Rpb25mKGZfdW5pZm9ybTR2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTRpdihKU0M6OkV4ZWNT
dGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9y
bTRpdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5p
Zm9ybTR2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDJmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUp
CitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDJmdihF
eGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25NYXRyaXgoZl91bmlm
b3JtTWF0cml4MmZ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDNmdihKU0M6OkV4ZWNTdGF0ZSYg
c3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJp
eDNmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25NYXRyaXgo
Zl91bmlmb3JtTWF0cml4M2Z2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDRmdihKU0M6OkV4ZWNT
dGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9y
bU1hdHJpeDRmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25N
YXRyaXgoZl91bmlmb3JtTWF0cml4NGZ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMWZ2KEpTQzo6
RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2
ZXJ0ZXhBdHRyaWIxZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0
aW9uZihmX3ZlcnRleEF0dHJpYjF2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMmZ2KEpTQzo6RXhl
Y1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0
ZXhBdHRyaWIyZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9u
ZihmX3ZlcnRleEF0dHJpYjJ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliM2Z2KEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhB
dHRyaWIzZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihm
X3ZlcnRleEF0dHJpYjN2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliNGZ2KEpTQzo6RXhlY1N0YXRl
JiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRy
aWI0ZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3Zl
cnRleEF0dHJpYjR2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IDlmYTI5NDA3OGJiYWNh
M2RjMjc2MTA3MGE0OGIyOGI1YjcyY2M2NGQuLmUxMmEyNDBkN2U2ODdiOWNhNjk2NDBkODJkNmM0
MzRmZTc4ZDZhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
TW9kdWxlTG9hZGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0xMzUsNiArMTM1LDEwIEBAIEpTQzo6SlNJbnRlcm5hbFBy
b21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBq
c0dsb2JhCiAKIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0
Y2goSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlLCBK
U0M6OkpTVmFsdWUgaW5pdGlhdG9yKQogeworICAgIC8vIEZJWE1FOiBXaGF0IGd1YXJhbnRlZXMg
dGhlc2UgYXJlIHRydWU/IFdoeSBkb24ndCB3ZSBuZWVkIHRvIGNoZWNrPworICAgIEFTU0VSVChK
U0M6OmpzRHluYW1pY0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKSk7CisgICAgQVNTRVJUKGlz
U2NyaXB0RWxlbWVudChKU0M6OmpzRHluYW1pY0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKS0+
d3JhcHBlZCgpKSk7CisKICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqSlNDOjpqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihqc0dsb2JhbE9iamVjdCk7CiAgICAgYXV0byYganNQcm9taXNlID0g
KkpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsICZnbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gZGVmZXJyZWQgPSBEZWZlcnJlZFByb21pc2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIGpzUHJvbWlzZSk7CkBAIC0xNTYsMTcgKzE2MCwxMiBAQCBKU0M6OkpTSW50ZXJuYWxQ
cm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpz
R2xvYmFsTwogICAgICAgICByZXR1cm4ganNQcm9taXNlLnByb21pc2UoKTsKICAgICB9CiAKLSAg
ICBBU1NFUlRfV0lUSF9NRVNTQUdFKEpTQzo6anNEeW5hbWljQ2FzdDxKU0VsZW1lbnQqPihpbml0
aWF0b3IpLCAiSW5pdGlhdG9yIHNob3VsZCBiZSBhbiBKU0VsZW1lbnQiKTsKLSAgICBhdXRvKiBz
Y3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmSlNDOjpqc0Nhc3Q8SlNF
bGVtZW50Kj4oaW5pdGlhdG9yKS0+d3JhcHBlZCgpKTsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KHNjcmlwdEVsZW1lbnQsICJJbml0aWF0b3Igc2hvdWxkIGJlIFNjcmlwdEVsZW1lbnQuIik7Ci0K
ICAgICBpZiAoYXV0byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgYXV0
byBsb2FkZXIgPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJy
ZWQuZ2V0KCkpOwogICAgICAgICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOwotICAg
ICAgICBpZiAoIWxvYWRlci0+bG9hZCgqc2NyaXB0RWxlbWVudCwgY29tcGxldGVkVVJMKSkgewor
ICAgICAgICBpZiAoIWxvYWRlci0+bG9hZChkb3duY2FzdFNjcmlwdEVsZW1lbnQoSlNDOjpqc0Nh
c3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKS0+d3JhcHBlZCgpKSwgY29tcGxldGVkVVJMKSkgewog
ICAgICAgICAgICAgbG9hZGVyLT5jbGVhckNsaWVudCgpOwogICAgICAgICAgICAgbV9sb2FkZXJz
LnJlbW92ZShXVEZNb3ZlKGxvYWRlcikpOwotCiAgICAgICAgICAgICBkZWZlcnJlZC0+cmVqZWN0
KGZyYW1lLT5zY3JpcHQoKS5tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgp
KTsKICAgICAgICAgICAgIHJldHVybiBqc1Byb21pc2UucHJvbWlzZSgpOwogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDRjNDNiZGQxZDdlNDgyNzYzOWVhYTNmNDU3YTg1NGE1NzI1
NmUwYTAuLjk3MmJlYjFlZmNiMmMzNzgyOTIwNjdlZTc2ZDY5YjIxZTBjODg2NWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC0zLDcgKzMsNyBAQAogICogICAgICAgICAgIChDKSAxOTk5IEFudHRp
IEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERpcmsg
TXVlbGxlciAobXVlbGxlckBrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQ
cm9za3VyeWFrb3YgKGFwQHdlYmtpdC5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCwg
MjAxMi0yMDEzLCAyMDE1LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC02
Niw5ICs2Niw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRXhlY1N0YXRlOwotI2lmIEVO
QUJMRShXRUJfUkVQTEFZKQogY2xhc3MgSW5wdXRDdXJzb3I7Ci0jZW5kaWYKIH0KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtOTksOCArOTcsOCBAQCBjbGFzcyBEb2N1bWVudFBhcnNlcjsKIGNs
YXNzIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbDsKIGNsYXNzIERvY3VtZW50VHlwZTsKIGNsYXNz
IEV4dGVuc2lvblN0eWxlU2hlZXRzOwotY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgRmxvYXRRdWFk
OworY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgRm9ybUNvbnRyb2xsZXI7CiBjbGFzcyBGcmFtZTsK
IGNsYXNzIEZyYW1lVmlldzsKQEAgLTEyMSwxMSArMTE5LDEwIEBAIGNsYXNzIEhUTUxTY3JpcHRF
bGVtZW50OwogY2xhc3MgSGl0VGVzdFJlcXVlc3Q7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xh
c3MgSW50UG9pbnQ7CitjbGFzcyBKU05vZGU7CiBjbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExh
eW91dFJlY3Q7CiBjbGFzcyBMaXZlTm9kZUxpc3Q7Ci1jbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXI7
Ci1jbGFzcyBKU05vZGU7CiBjbGFzcyBMb2NhbGU7CiBjbGFzcyBMb2NhdGlvbjsKIGNsYXNzIE1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lcjsKQEAgLTEzMyw3ICsxMzAsNiBAQCBjbGFzcyBNZWRpYVBsYXli
YWNrVGFyZ2V0OwogY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldENsaWVudDsKIGNsYXNzIE1lZGlh
UXVlcnlMaXN0OwogY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXI7Ci1jbGFzcyBTY3JpcHRNb2R1bGVM
b2FkZXI7CiBjbGFzcyBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3MgTmFtZWRG
bG93Q29sbGVjdGlvbjsKIGNsYXNzIE5vZGVGaWx0ZXI7CkBAIC0xNDMsMjMgKzEzOSwyNCBAQCBj
bGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiBjbGFzcyBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb247CiBj
bGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgUmFuZ2U7Ci1jbGFzcyBSZW5kZXJWaWV3OwogY2xh
c3MgUmVuZGVyRnVsbFNjcmVlbjsKLWNsYXNzIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlcjsKK2Ns
YXNzIFJlbmRlclZpZXc7CitjbGFzcyBTVkdEb2N1bWVudEV4dGVuc2lvbnM7CitjbGFzcyBTVkdT
VkdFbGVtZW50OwogY2xhc3MgU2NyaXB0RWxlbWVudERhdGE7CitjbGFzcyBTY3JpcHRNb2R1bGVM
b2FkZXI7CiBjbGFzcyBTY3JpcHRSdW5uZXI7CitjbGFzcyBTY3JpcHRhYmxlRG9jdW1lbnRQYXJz
ZXI7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFNlZ21lbnRlZFN0cmluZzsKIGNsYXNz
IFNlbGVjdG9yUXVlcnk7CiBjbGFzcyBTZWxlY3RvclF1ZXJ5Q2FjaGU7CiBjbGFzcyBTZXJpYWxp
emVkU2NyaXB0VmFsdWU7Ci1jbGFzcyBTZWdtZW50ZWRTdHJpbmc7CiBjbGFzcyBTZXR0aW5nczsK
IGNsYXNzIFN0eWxlUmVzb2x2ZXI7CiBjbGFzcyBTdHlsZVNoZWV0OwogY2xhc3MgU3R5bGVTaGVl
dENvbnRlbnRzOwogY2xhc3MgU3R5bGVTaGVldExpc3Q7Ci1jbGFzcyBTVkdEb2N1bWVudEV4dGVu
c2lvbnM7Ci1jbGFzcyBTVkdTVkdFbGVtZW50OwogY2xhc3MgVGV4dDsKIGNsYXNzIFRleHRSZXNv
dXJjZURlY29kZXI7CiBjbGFzcyBUcmVlV2Fsa2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1BlbmRpbmdTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3Jp
cHQuY3BwCmluZGV4IDJiZTBlMmViOTAzMmRkMzg5YWI1NzRkNDgwODYwNGYyZTZiZmI1NDkuLjJm
OTg2ODIyYWYzYWU3MWE0MTA1N2IxMDQ3ZDVlMmY1ZGI5MjBkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UGVuZGluZ1NjcmlwdC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yNiwzMCArMjcsMzAgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAKLSNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiUGVuZGluZ1NjcmlwdENsaWVudC5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8UGVuZGluZ1NjcmlwdD4gUGVuZGluZ1Njcmlw
dDo6Y3JlYXRlKEVsZW1lbnQmIGVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlw
dCkKK1JlZjxQZW5kaW5nU2NyaXB0PiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoU2NyaXB0RWxlbWVu
dCYgZWxlbWVudCwgTG9hZGFibGVTY3JpcHQmIGxvYWRhYmxlU2NyaXB0KQogewotICAgIFJlZjxQ
ZW5kaW5nU2NyaXB0PiBwZW5kaW5nU2NyaXB0ID0gYWRvcHRSZWYoKm5ldyBQZW5kaW5nU2NyaXB0
KGVsZW1lbnQsIGxvYWRhYmxlU2NyaXB0KSk7CisgICAgYXV0byBwZW5kaW5nU2NyaXB0ID0gYWRv
cHRSZWYoKm5ldyBQZW5kaW5nU2NyaXB0KGVsZW1lbnQsIGxvYWRhYmxlU2NyaXB0KSk7CiAgICAg
bG9hZGFibGVTY3JpcHQuYWRkQ2xpZW50KHBlbmRpbmdTY3JpcHQuZ2V0KCkpOwogICAgIHJldHVy
biBwZW5kaW5nU2NyaXB0OwogfQogCi1SZWY8UGVuZGluZ1NjcmlwdD4gUGVuZGluZ1NjcmlwdDo6
Y3JlYXRlKEVsZW1lbnQmIGVsZW1lbnQsIFRleHRQb3NpdGlvbiBzY3JpcHRTdGFydFBvc2l0aW9u
KQorUmVmPFBlbmRpbmdTY3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShTY3JpcHRFbGVtZW50
JiBlbGVtZW50LCBUZXh0UG9zaXRpb24gc2NyaXB0U3RhcnRQb3NpdGlvbikKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBQZW5kaW5nU2NyaXB0KGVsZW1lbnQsIHNjcmlwdFN0YXJ0UG9zaXRp
b24pKTsKIH0KIAotUGVuZGluZ1NjcmlwdDo6UGVuZGluZ1NjcmlwdChFbGVtZW50JiBlbGVtZW50
LCBUZXh0UG9zaXRpb24gc3RhcnRpbmdQb3NpdGlvbikKK1BlbmRpbmdTY3JpcHQ6OlBlbmRpbmdT
Y3JpcHQoU2NyaXB0RWxlbWVudCYgZWxlbWVudCwgVGV4dFBvc2l0aW9uIHN0YXJ0aW5nUG9zaXRp
b24pCiAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKICAgICAsIG1fc3RhcnRpbmdQb3NpdGlvbihz
dGFydGluZ1Bvc2l0aW9uKQogewogfQogCi1QZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KEVs
ZW1lbnQmIGVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlwdCkKK1BlbmRpbmdT
Y3JpcHQ6OlBlbmRpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCYgZWxlbWVudCwgTG9hZGFibGVTY3Jp
cHQmIGxvYWRhYmxlU2NyaXB0KQogICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX2xv
YWRhYmxlU2NyaXB0KCZsb2FkYWJsZVNjcmlwdCkKIHsKQEAgLTYxLDExICs2Miw2IEBAIFBlbmRp
bmdTY3JpcHQ6On5QZW5kaW5nU2NyaXB0KCkKICAgICAgICAgbV9sb2FkYWJsZVNjcmlwdC0+cmVt
b3ZlQ2xpZW50KCp0aGlzKTsKIH0KIAotTG9hZGFibGVTY3JpcHQqIFBlbmRpbmdTY3JpcHQ6Omxv
YWRhYmxlU2NyaXB0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9sb2FkYWJsZVNjcmlwdC5nZXQo
KTsKLX0KLQogdm9pZCBQZW5kaW5nU2NyaXB0Ojpub3RpZnlDbGllbnRGaW5pc2hlZCgpCiB7CiAg
ICAgUmVmPFBlbmRpbmdTY3JpcHQ+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwpAQCAtODgsMTAgKzg0
LDEwIEBAIGJvb2wgUGVuZGluZ1NjcmlwdDo6ZXJyb3IoKSBjb25zdAogICAgIHJldHVybiBtX2xv
YWRhYmxlU2NyaXB0ICYmIG1fbG9hZGFibGVTY3JpcHQtPmVycm9yKCk7CiB9CiAKLXZvaWQgUGVu
ZGluZ1NjcmlwdDo6c2V0Q2xpZW50KFBlbmRpbmdTY3JpcHRDbGllbnQqIGNsaWVudCkKK3ZvaWQg
UGVuZGluZ1NjcmlwdDo6c2V0Q2xpZW50KFBlbmRpbmdTY3JpcHRDbGllbnQmIGNsaWVudCkKIHsK
ICAgICBBU1NFUlQoIW1fY2xpZW50KTsKLSAgICBtX2NsaWVudCA9IGNsaWVudDsKKyAgICBtX2Ns
aWVudCA9ICZjbGllbnQ7CiAgICAgaWYgKGlzTG9hZGVkKCkpCiAgICAgICAgIG5vdGlmeUNsaWVu
dEZpbmlzaGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1Nj
cmlwdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaAppbmRleCA5OTBmMjUw
ODNiMDFiMDI3YzRhYzAxNDE3ZjhmNDkxNmE5ZThlNjY2Li5mYzc1OGQwN2RkNjBkZWMzMThiYjg4
ZGFkMDc4N2Y4NDg4MmY4MjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGlu
Z1NjcmlwdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKQEAgLTM0
LDE1ICszNCwxNSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRTY3JpcHQ7
Ci1jbGFzcyBFbGVtZW50OwogY2xhc3MgUGVuZGluZ1NjcmlwdENsaWVudDsKK2NsYXNzIFNjcmlw
dEVsZW1lbnQ7CiAKIC8vIEEgY29udGFpbmVyIGZvciBzY3JpcHRzIHdoaWNoIG1heSBiZSBsb2Fk
ZWQgYW5kIGV4ZWN1dGVkLgogLy8gVGhpcyBjYW4gaG9sZCBMb2FkYWJsZVNjcmlwdCBhbmQgbm9u
IGV4dGVybmFsIGlubGluZSBzY3JpcHQuCiBjbGFzcyBQZW5kaW5nU2NyaXB0IGZpbmFsIDogcHVi
bGljIFJlZkNvdW50ZWQ8UGVuZGluZ1NjcmlwdD4sIHB1YmxpYyBMb2FkYWJsZVNjcmlwdENsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0PiBjcmVhdGUoRWxlbWVu
dCYsIExvYWRhYmxlU2NyaXB0Jik7Ci0gICAgc3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0PiBjcmVh
dGUoRWxlbWVudCYsIFRleHRQb3NpdGlvbiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICBzdGF0
aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IGNyZWF0ZShTY3JpcHRFbGVtZW50JiwgTG9hZGFibGVTY3Jp
cHQmKTsKKyAgICBzdGF0aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IGNyZWF0ZShTY3JpcHRFbGVtZW50
JiwgVGV4dFBvc2l0aW9uIHNjcmlwdFN0YXJ0UG9zaXRpb24pOwogCiAgICAgdmlydHVhbCB+UGVu
ZGluZ1NjcmlwdCgpOwogCkBAIC01MSw4ICs1MSw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgd2F0
Y2hpbmdGb3JMb2FkKCkgY29uc3QgeyByZXR1cm4gbmVlZHNMb2FkaW5nKCkgJiYgbV9jbGllbnQ7
IH0KIAotICAgIEVsZW1lbnQmIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0K
LSAgICBjb25zdCBFbGVtZW50JiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50Lmdl
dCgpOyB9CisgICAgU2NyaXB0RWxlbWVudCYgZWxlbWVudCgpIHsgcmV0dXJuIG1fZWxlbWVudC5n
ZXQoKTsgfQorICAgIGNvbnN0IFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQoKSBjb25zdCB7IHJldHVy
biBtX2VsZW1lbnQuZ2V0KCk7IH0KIAogICAgIExvYWRhYmxlU2NyaXB0KiBsb2FkYWJsZVNjcmlw
dCgpIGNvbnN0OwogICAgIGJvb2wgbmVlZHNMb2FkaW5nKCkgY29uc3QgeyByZXR1cm4gbG9hZGFi
bGVTY3JpcHQoKTsgfQpAQCAtNjIsMTkgKzYyLDI0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbm90
aWZ5RmluaXNoZWQoTG9hZGFibGVTY3JpcHQmKSBvdmVycmlkZTsKIAotICAgIHZvaWQgc2V0Q2xp
ZW50KFBlbmRpbmdTY3JpcHRDbGllbnQqKTsKKyAgICB2b2lkIHNldENsaWVudChQZW5kaW5nU2Ny
aXB0Q2xpZW50Jik7CiAgICAgdm9pZCBjbGVhckNsaWVudCgpOwogCiBwcml2YXRlOgotICAgIFBl
bmRpbmdTY3JpcHQoRWxlbWVudCYsIExvYWRhYmxlU2NyaXB0Jik7Ci0gICAgUGVuZGluZ1Njcmlw
dChFbGVtZW50JiwgVGV4dFBvc2l0aW9uIHN0YXJ0aW5nUG9zaXRpb24pOworICAgIFBlbmRpbmdT
Y3JpcHQoU2NyaXB0RWxlbWVudCYsIExvYWRhYmxlU2NyaXB0Jik7CisgICAgUGVuZGluZ1Njcmlw
dChTY3JpcHRFbGVtZW50JiwgVGV4dFBvc2l0aW9uIHN0YXJ0aW5nUG9zaXRpb24pOwogCiAgICAg
dm9pZCBub3RpZnlDbGllbnRGaW5pc2hlZCgpOwogCi0gICAgUmVmPEVsZW1lbnQ+IG1fZWxlbWVu
dDsKKyAgICBSZWY8U2NyaXB0RWxlbWVudD4gbV9lbGVtZW50OwogICAgIFRleHRQb3NpdGlvbiBt
X3N0YXJ0aW5nUG9zaXRpb247IC8vIE9ubHkgdXNlZCBmb3IgaW5saW5lIHNjcmlwdCB0YWdzLgog
ICAgIFJlZlB0cjxMb2FkYWJsZVNjcmlwdD4gbV9sb2FkYWJsZVNjcmlwdDsKICAgICBQZW5kaW5n
U2NyaXB0Q2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKIH07CiAKK2lubGluZSBMb2FkYWJs
ZVNjcmlwdCogUGVuZGluZ1NjcmlwdDo6bG9hZGFibGVTY3JpcHQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2xvYWRhYmxlU2NyaXB0LmdldCgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAKaW5kZXggNjFmMjQ4MmY1ODcxZDhhZDBiNzUyNmY2ZjQ0NWJjZGI3NzRmYzQ4
Zi4uZjY4NjM3YWM0ZDk1Y2U4OGExZmIwNTUzMWRmZGFmZjUwMDE0MDBmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykg
MTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFu
dHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERp
cmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4
IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAg
LTI2MywxMSArMjYzLDExIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25z
dCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAgfSBlbHNlIGlm
ICgoaXNDbGFzc2ljRXh0ZXJuYWxTY3JpcHQgfHwgc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpN
b2R1bGUpICYmICFhc3luY0F0dHJpYnV0ZVZhbHVlKCkgJiYgIW1fZm9yY2VBc3luYykgewogICAg
ICAgICBtX3dpbGxFeGVjdXRlSW5PcmRlciA9IHRydWU7CiAgICAgICAgIEFTU0VSVChtX2xvYWRh
YmxlU2NyaXB0KTsKLSAgICAgICAgZG9jdW1lbnQuc2NyaXB0UnVubmVyKCktPnF1ZXVlU2NyaXB0
Rm9yRXhlY3V0aW9uKHRoaXMsICptX2xvYWRhYmxlU2NyaXB0LCBTY3JpcHRSdW5uZXI6OklOX09S
REVSX0VYRUNVVElPTik7CisgICAgICAgIGRvY3VtZW50LnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNj
cmlwdEZvckV4ZWN1dGlvbigqdGhpcywgKm1fbG9hZGFibGVTY3JpcHQsIFNjcmlwdFJ1bm5lcjo6
SU5fT1JERVJfRVhFQ1VUSU9OKTsKICAgICB9IGVsc2UgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgp
IHx8IHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6TW9kdWxlKSB7CiAgICAgICAgIEFTU0VSVCht
X2xvYWRhYmxlU2NyaXB0KTsKICAgICAgICAgQVNTRVJUKGFzeW5jQXR0cmlidXRlVmFsdWUoKSB8
fCBtX2ZvcmNlQXN5bmMpOwotICAgICAgICBkb2N1bWVudC5zY3JpcHRSdW5uZXIoKS0+cXVldWVT
Y3JpcHRGb3JFeGVjdXRpb24odGhpcywgKm1fbG9hZGFibGVTY3JpcHQsIFNjcmlwdFJ1bm5lcjo6
QVNZTkNfRVhFQ1VUSU9OKTsKKyAgICAgICAgZG9jdW1lbnQuc2NyaXB0UnVubmVyKCktPnF1ZXVl
U2NyaXB0Rm9yRXhlY3V0aW9uKCp0aGlzLCAqbV9sb2FkYWJsZVNjcmlwdCwgU2NyaXB0UnVubmVy
OjpBU1lOQ19FWEVDVVRJT04pOwogICAgIH0gZWxzZSBpZiAoIWhhc1NvdXJjZUF0dHJpYnV0ZSgp
ICYmIG1fcGFyc2VySW5zZXJ0ZWQgJiYgIWRvY3VtZW50LmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgp
KSB7CiAgICAgICAgIEFTU0VSVChzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6OkNsYXNzaWMpOwog
ICAgICAgICBtX3dpbGxCZVBhcnNlckV4ZWN1dGVkID0gdHJ1ZTsKQEAgLTQ4NywxNSArNDg3LDI2
IEBAIFN0cmluZyBTY3JpcHRFbGVtZW50OjpzY3JpcHRDb250ZW50KCkgY29uc3QKICAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CiB9CiAKLVNjcmlwdEVsZW1lbnQqIHRvU2NyaXB0RWxlbWVu
dElmUG9zc2libGUoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgU2NyaXB0RWxlbWVudDo6cmVmKCkK
IHsKLSAgICBpZiAoaXM8SFRNTFNjcmlwdEVsZW1lbnQ+KCplbGVtZW50KSkKLSAgICAgICAgcmV0
dXJuIGRvd25jYXN0PEhUTUxTY3JpcHRFbGVtZW50PihlbGVtZW50KTsKKyAgICBtX2VsZW1lbnQu
cmVmKCk7Cit9CiAKLSAgICBpZiAoaXM8U1ZHU2NyaXB0RWxlbWVudD4oKmVsZW1lbnQpKQotICAg
ICAgICByZXR1cm4gZG93bmNhc3Q8U1ZHU2NyaXB0RWxlbWVudD4oZWxlbWVudCk7Cit2b2lkIFNj
cmlwdEVsZW1lbnQ6OmRlcmVmKCkKK3sKKyAgICBtX2VsZW1lbnQuZGVyZWYoKTsKK30KIAotICAg
IHJldHVybiBudWxscHRyOworYm9vbCBpc1NjcmlwdEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkK
K3sKKyAgICByZXR1cm4gaXM8SFRNTFNjcmlwdEVsZW1lbnQ+KGVsZW1lbnQpIHx8IGlzPFNWR1Nj
cmlwdEVsZW1lbnQ+KGVsZW1lbnQpOworfQorCitTY3JpcHRFbGVtZW50JiBkb3duY2FzdFNjcmlw
dEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAoaXM8SFRNTFNjcmlwdEVsZW1l
bnQ+KGVsZW1lbnQpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTFNjcmlwdEVsZW1lbnQ+
KGVsZW1lbnQpOworICAgIHJldHVybiBkb3duY2FzdDxTVkdTY3JpcHRFbGVtZW50PihlbGVtZW50
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKaW5kZXggNDA3OWMxNzA5MzIx
Nzg0MDg3ZTllM2Y3MzIzNDZjNTU4MDBmN2IxNC4uNWYxODFkZjJlM2IwZTg4OGVmMzk0N2JiY2Rj
MThkOTMwN2RkZWIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1l
cm1hbm5Aa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsMTkgKzI2LDE3IEBA
CiAjaW5jbHVkZSAiTG9hZGFibGVTY3JpcHQuaCIKICNpbmNsdWRlICJMb2FkYWJsZVNjcmlwdENs
aWVudC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8
d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0OwogY2xh
c3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ29udGFpbmVyTm9kZTsKIGNsYXNzIEVsZW1lbnQ7CiBj
bGFzcyBQZW5kaW5nU2NyaXB0OwotY2xhc3MgU2NyaXB0RWxlbWVudDsKIGNsYXNzIFNjcmlwdFNv
dXJjZUNvZGU7Ci1jbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHQ7CitjbGFzcyBVUkw7CiAKIGNsYXNz
IFNjcmlwdEVsZW1lbnQgewogcHVibGljOgpAQCAtNzMsNiArNzIsOSBAQCBwdWJsaWM6CiAgICAg
ZW51bSBjbGFzcyBTY3JpcHRUeXBlIHsgQ2xhc3NpYywgTW9kdWxlIH07CiAgICAgU2NyaXB0VHlw
ZSBzY3JpcHRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9pc01vZHVsZVNjcmlwdCA/IFNjcmlwdFR5
cGU6Ok1vZHVsZSA6IFNjcmlwdFR5cGU6OkNsYXNzaWM7IH0KIAorICAgIHZvaWQgcmVmKCk7Cisg
ICAgdm9pZCBkZXJlZigpOworCiBwcm90ZWN0ZWQ6CiAgICAgU2NyaXB0RWxlbWVudChFbGVtZW50
JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIsIGJvb2wgaXNFdmFsdWF0ZWQpOwogCkBAIC0xMjcsNyAr
MTI5LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TG9hZGFibGVTY3JpcHQ+IG1fbG9hZGFibGVT
Y3JpcHQ7CiB9OwogCi0vLyBGSVhNRTogcmVwbGFjZSB3aXRoIGRvd25jYXN0PFNjcmlwdEVsZW1l
bnQ+LgotU2NyaXB0RWxlbWVudCogdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShFbGVtZW50Kik7
CisvLyBGSVhNRTogcmVwbGFjZSB3aXRoIGlzL2Rvd25jYXN0PFNjcmlwdEVsZW1lbnQ+LgorYm9v
bCBpc1NjcmlwdEVsZW1lbnQoRWxlbWVudCYpOworU2NyaXB0RWxlbWVudCYgZG93bmNhc3RTY3Jp
cHRFbGVtZW50KEVsZW1lbnQmKTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdFJ1bm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcApp
bmRleCA3MDk4OWViNDBjMDQ1YWRlNzc0YWU1N2QwOWE0MDQ4YjU5ZTM4ODA0Li4wNDFlNmQxMzMx
ZjQ0MjNjMTVjOTg3NjlmOWEyMjc0Y2VkMGFkMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0UnVubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVu
bmVyLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
LCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTU2LDI2ICs1NywyMiBAQCBTY3JpcHRSdW5uZXI6On5TY3JpcHRSdW5uZXIoKQog
ICAgIH0KIH0KIAotdm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNj
cmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlw
dCwgRXhlY3V0aW9uVHlwZSBleGVjdXRpb25UeXBlKQordm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVl
U2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQsIExvYWRhYmxl
U2NyaXB0JiBsb2FkYWJsZVNjcmlwdCwgRXhlY3V0aW9uVHlwZSBleGVjdXRpb25UeXBlKQogewot
ICAgIEFTU0VSVChzY3JpcHRFbGVtZW50KTsKLQotICAgIEVsZW1lbnQmIGVsZW1lbnQgPSBzY3Jp
cHRFbGVtZW50LT5lbGVtZW50KCk7Ci0gICAgQVNTRVJUKGVsZW1lbnQuaW5Eb2N1bWVudCgpKTsK
KyAgICBBU1NFUlQoc2NyaXB0RWxlbWVudC5lbGVtZW50KCkuaW5Eb2N1bWVudCgpKTsKIAogICAg
IG1fZG9jdW1lbnQuaW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogCi0gICAgUmVmPFBl
bmRpbmdTY3JpcHQ+IHBlbmRpbmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoZWxlbWVu
dCwgbG9hZGFibGVTY3JpcHQpOworICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IFBlbmRpbmdTY3Jp
cHQ6OmNyZWF0ZShzY3JpcHRFbGVtZW50LCBsb2FkYWJsZVNjcmlwdCk7CiAgICAgc3dpdGNoIChl
eGVjdXRpb25UeXBlKSB7CiAgICAgY2FzZSBBU1lOQ19FWEVDVVRJT046CiAgICAgICAgIG1fcGVu
ZGluZ0FzeW5jU2NyaXB0cy5hZGQocGVuZGluZ1NjcmlwdC5jb3B5UmVmKCkpOwogICAgICAgICBi
cmVhazsKLQogICAgIGNhc2UgSU5fT1JERVJfRVhFQ1VUSU9OOgogICAgICAgICBtX3NjcmlwdHNU
b0V4ZWN1dGVJbk9yZGVyLmFwcGVuZChwZW5kaW5nU2NyaXB0LmNvcHlSZWYoKSk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KLSAgICBwZW5kaW5nU2NyaXB0LT5zZXRDbGllbnQodGhpcyk7CisgICAg
cGVuZGluZ1NjcmlwdC0+c2V0Q2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBTY3JpcHRSdW5uZXI6
OnN1c3BlbmQoKQpAQCAtOTEsOSArODgsNyBAQCB2b2lkIFNjcmlwdFJ1bm5lcjo6cmVzdW1lKCkK
IAogdm9pZCBTY3JpcHRSdW5uZXI6Om5vdGlmeUZpbmlzaGVkKFBlbmRpbmdTY3JpcHQmIHBlbmRp
bmdTY3JpcHQpCiB7Ci0gICAgYXV0byogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElm
UG9zc2libGUoJnBlbmRpbmdTY3JpcHQuZWxlbWVudCgpKTsKLSAgICBBU1NFUlQoc2NyaXB0RWxl
bWVudCk7Ci0gICAgaWYgKHNjcmlwdEVsZW1lbnQtPndpbGxFeGVjdXRlSW5PcmRlcigpKQorICAg
IGlmIChwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKS53aWxsRXhlY3V0ZUluT3JkZXIoKSkKICAgICAg
ICAgQVNTRVJUKCFtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyLmlzRW1wdHkoKSk7CiAgICAgZWxz
ZSB7CiAgICAgICAgIEFTU0VSVChtX3BlbmRpbmdBc3luY1NjcmlwdHMuY29udGFpbnMocGVuZGlu
Z1NjcmlwdCkpOwpAQCAtMTIyLDEwICsxMTcsOCBAQCB2b2lkIFNjcmlwdFJ1bm5lcjo6dGltZXJG
aXJlZCgpCiAgICAgICAgIC8vIFBhcGVyIG92ZXIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0NDA1MAogICAgICAgICBpZiAoIXNjcmlwdCkKICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICBhdXRvKiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZSgmc2NyaXB0LT5lbGVtZW50KCkpOwotICAgICAgICBBU1NFUlQoc2NyaXB0RWxlbWVu
dCk7CiAgICAgICAgIEFTU0VSVChzY3JpcHQtPm5lZWRzTG9hZGluZygpKTsKLSAgICAgICAgc2Ny
aXB0RWxlbWVudC0+ZXhlY3V0ZVBlbmRpbmdTY3JpcHQoKnNjcmlwdCk7CisgICAgICAgIHNjcmlw
dC0+ZWxlbWVudCgpLmV4ZWN1dGVQZW5kaW5nU2NyaXB0KCpzY3JpcHQpOwogICAgICAgICBtX2Rv
Y3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKICAgICB9CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0UnVubmVyLmgKaW5kZXggZGZjZjNjNWZhOTBlNGE0NTA5NDA0MmQ4NzdkZTNiY2U0
NDgwMGQ5YS4uOGU4ZjQ4NmFkMWRiMGRiYzBkMGJlNjQ1MjExMWVlZDc3MGYxNTMxMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRSdW5uZXIuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDEzICsyOSwxMSBAQAogI2luY2x1ZGUgIlBlbmRp
bmdTY3JpcHRDbGllbnQuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgUGVu
ZGluZ1NjcmlwdDsKIGNsYXNzIFNjcmlwdEVsZW1lbnQ7CiBjbGFzcyBMb2FkYWJsZVNjcmlwdDsK
IApAQCAtNDUsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgflNjcmlwdFJ1bm5lcigpOwogCiAgICAg
ZW51bSBFeGVjdXRpb25UeXBlIHsgQVNZTkNfRVhFQ1VUSU9OLCBJTl9PUkRFUl9FWEVDVVRJT04g
fTsKLSAgICB2b2lkIHF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqLCBMb2Fk
YWJsZVNjcmlwdCYsIEV4ZWN1dGlvblR5cGUpOworICAgIHZvaWQgcXVldWVTY3JpcHRGb3JFeGVj
dXRpb24oU2NyaXB0RWxlbWVudCYsIExvYWRhYmxlU2NyaXB0JiwgRXhlY3V0aW9uVHlwZSk7CiAg
ICAgYm9vbCBoYXNQZW5kaW5nU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJuICFtX3NjcmlwdHNUb0V4
ZWN1dGVTb29uLmlzRW1wdHkoKSB8fCAhbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5pc0VtcHR5
KCkgfHwgIW1fcGVuZGluZ0FzeW5jU2NyaXB0cy5pc0VtcHR5KCk7IH0KICAgICB2b2lkIHN1c3Bl
bmQoKTsKICAgICB2b2lkIHJlc3VtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5j
cHAKaW5kZXggMTM2N2I0ZjIwZWEwOTExZGY5Y2RkY2YxYzE2MmU3MzlkMWUwMjZlMy4uNTdkMGRj
MWM3NjNkNjdiNmIwMjI4Yzg2MDUxM2Q3ZjFlOWM1MzYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yMjEsNyArMjIxLDcgQEAgYm9v
bCBGaWxlSW5wdXRUeXBlOjpjYW5TZXRTdHJpbmdWYWx1ZSgpIGNvbnN0CiAKIEZpbGVMaXN0KiBG
aWxlSW5wdXRUeXBlOjpmaWxlcygpCiB7Ci0gICAgcmV0dXJuIG1fZmlsZUxpc3QuZ2V0KCk7Cisg
ICAgcmV0dXJuIG1fZmlsZUxpc3QucHRyKCk7CiB9CiAKIGJvb2wgRmlsZUlucHV0VHlwZTo6Y2Fu
U2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTI1OCwxMiArMjU4LDEyIEBAIHZvaWQg
RmlsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvcikKICAgICBlbGVtZW50KCkuaW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwog
fQogCi1QYXNzUmVmUHRyPEZpbGVMaXN0PiBGaWxlSW5wdXRUeXBlOjpjcmVhdGVGaWxlTGlzdChj
b25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mIGZpbGVzKSBjb25zdAorUmVmPEZpbGVM
aXN0PiBGaWxlSW5wdXRUeXBlOjpjcmVhdGVGaWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29z
ZXJGaWxlSW5mbz4mIGZpbGVzKQogewogICAgIFZlY3RvcjxSZWZQdHI8RmlsZT4+IGZpbGVPYmpl
Y3RzOwotICAgIGZvciAoY29uc3QgRmlsZUNob29zZXJGaWxlSW5mbyYgaW5mbyA6IGZpbGVzKQot
ICAgICAgICBmaWxlT2JqZWN0cy5hcHBlbmQoRmlsZTo6Y3JlYXRlV2l0aE5hbWUoaW5mby5wYXRo
LCBpbmZvLmRpc3BsYXlOYW1lKSk7Ci0KKyAgICBmaWxlT2JqZWN0cy5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KGZpbGVzLnNpemUoKSk7CisgICAgZm9yIChhdXRvJiBpbmZvIDogZmlsZXMpCisgICAg
ICAgIGZpbGVPYmplY3RzLnVuY2hlY2tlZEFwcGVuZChGaWxlOjpjcmVhdGVXaXRoTmFtZShpbmZv
LnBhdGgsIGluZm8uZGlzcGxheU5hbWUpKTsKICAgICByZXR1cm4gRmlsZUxpc3Q6OmNyZWF0ZShX
VEZNb3ZlKGZpbGVPYmplY3RzKSk7CiB9CiAKQEAgLTMwMiwyOSArMzAyLDMyIEBAIHZvaWQgRmls
ZUlucHV0VHlwZTo6bXVsdGlwbGVBdHRyaWJ1dGVDaGFuZ2VkKCkKICAgICAgICAgYnV0dG9uLT5z
ZXRWYWx1ZShlbGVtZW50KCkubXVsdGlwbGUoKSA/IGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZp
bGVzTGFiZWwoKSA6IGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKSk7CiB9CiAKKyNpZiAhUExB
VEZPUk0oSU9TKQorCiB2b2lkIEZpbGVJbnB1dFR5cGU6OnJlcXVlc3RJY29uKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBwYXRocykKIHsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgVU5VU0VEX1BBUkFN
KHBhdGhzKTsKLSNlbHNlCiAgICAgaWYgKCFwYXRocy5zaXplKCkpIHsKLSAgICAgICAgdXBkYXRl
UmVuZGVyaW5nKG51bGxwdHIpOworICAgICAgICBpY29uTG9hZGVkKG51bGxwdHIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgQ2hyb21lKiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKTsK
LSAgICBpZiAoIWNocm9tZSkKKyAgICBhdXRvKiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKTsKKyAg
ICBpZiAoIWNocm9tZSkgeworICAgICAgICBpY29uTG9hZGVkKG51bGxwdHIpOwogICAgICAgICBy
ZXR1cm47CisgICAgfQogCiAgICAgaWYgKG1fZmlsZUljb25Mb2FkZXIpCiAgICAgICAgIG1fZmls
ZUljb25Mb2FkZXItPmludmFsaWRhdGUoKTsKIAotICAgIG1fZmlsZUljb25Mb2FkZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPEZpbGVJY29uTG9hZGVyPihzdGF0aWNfY2FzdDxGaWxlSWNvbkxvYWRlckNs
aWVudCY+KCp0aGlzKSk7CisgICAgRmlsZUljb25Mb2FkZXJDbGllbnQmIGNsaWVudCA9ICp0aGlz
OworICAgIG1fZmlsZUljb25Mb2FkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZpbGVJY29uTG9hZGVy
PihjbGllbnQpOwogCi0gICAgY2hyb21lLT5sb2FkSWNvbkZvckZpbGVzKHBhdGhzLCBtX2ZpbGVJ
Y29uTG9hZGVyLmdldCgpKTsKLSNlbmRpZgorICAgIGNocm9tZS0+bG9hZEljb25Gb3JGaWxlcyhw
YXRocywgKm1fZmlsZUljb25Mb2FkZXIpOwogfQogCisjZW5kaWYKKwogdm9pZCBGaWxlSW5wdXRU
eXBlOjphcHBseUZpbGVDaG9vc2VyU2V0dGluZ3MoY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYg
c2V0dGluZ3MpCiB7CiAgICAgaWYgKG1fZmlsZUNob29zZXIpCkBAIC0zMzMsMTggKzMzNiwyMCBA
QCB2b2lkIEZpbGVJbnB1dFR5cGU6OmFwcGx5RmlsZUNob29zZXJTZXR0aW5ncyhjb25zdCBGaWxl
Q2hvb3NlclNldHRpbmdzJiBzZXR0aW5ncwogICAgIG1fZmlsZUNob29zZXIgPSBGaWxlQ2hvb3Nl
cjo6Y3JlYXRlKHRoaXMsIHNldHRpbmdzKTsKIH0KIAotdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRG
aWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0PiBmaWxlcykKK3ZvaWQgRmlsZUlucHV0VHlwZTo6c2V0
RmlsZXMoUmVmUHRyPEZpbGVMaXN0PiYmIGZpbGVzKQogewogICAgIGlmICghZmlsZXMpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dChlbGVtZW50KCkp
OwogCisgICAgdW5zaWduZWQgbGVuZ3RoID0gZmlsZXMtPmxlbmd0aCgpOworCiAgICAgYm9vbCBw
YXRoc0NoYW5nZWQgPSBmYWxzZTsKLSAgICBpZiAoZmlsZXMtPmxlbmd0aCgpICE9IG1fZmlsZUxp
c3QtPmxlbmd0aCgpKQorICAgIGlmIChsZW5ndGggIT0gbV9maWxlTGlzdC0+bGVuZ3RoKCkpCiAg
ICAgICAgIHBhdGhzQ2hhbmdlZCA9IHRydWU7CiAgICAgZWxzZSB7Ci0gICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBmaWxlcy0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIGlmIChmaWxlcy0+
aXRlbShpKS0+cGF0aCgpICE9IG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSkgewogICAgICAg
ICAgICAgICAgIHBhdGhzQ2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBA
IC0zNTIsMTUgKzM1NywxOCBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQ
dHI8RmlsZUxpc3Q+IGZpbGVzKQogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9maWxlTGlzdCA9
IGZpbGVzOworICAgIG1fZmlsZUxpc3QgPSBmaWxlcy5yZWxlYXNlTm9uTnVsbCgpOwogCiAgICAg
aW5wdXQtPnNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CiAgICAgaW5w
dXQtPnVwZGF0ZVZhbGlkaXR5KCk7CiAKKyNpZiAhUExBVEZPUk0oSU9TKQogICAgIFZlY3RvcjxT
dHJpbmc+IHBhdGhzOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2ZpbGVMaXN0LT5s
ZW5ndGgoKTsgKytpKQotICAgICAgICBwYXRocy5hcHBlbmQobV9maWxlTGlzdC0+aXRlbShpKS0+
cGF0aCgpKTsKKyAgICBwYXRocy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGxlbmd0aCk7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICBwYXRocy51bmNo
ZWNrZWRBcHBlbmQobV9maWxlTGlzdC0+aXRlbShpKS0+cGF0aCgpKTsKICAgICByZXF1ZXN0SWNv
bihwYXRocyk7CisjZW5kaWYKIAogICAgIGlmIChpbnB1dC0+cmVuZGVyZXIoKSkKICAgICAgICAg
aW5wdXQtPnJlbmRlcmVyKCktPnJlcGFpbnQoKTsKQEAgLTM3NCwxNyArMzgyLDE5IEBAIHZvaWQg
RmlsZUlucHV0VHlwZTo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCiB9CiAK
ICNpZiBQTEFURk9STShJT1MpCisKIHZvaWQgRmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4oY29u
c3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBwYXRocywgY29uc3QgU3RyaW5nJiBkaXNw
bGF5U3RyaW5nLCBJY29uKiBpY29uKQogewogICAgIG1fZGlzcGxheVN0cmluZyA9IGRpc3BsYXlT
dHJpbmc7CiAgICAgZmlsZXNDaG9zZW4ocGF0aHMpOwotICAgIHVwZGF0ZVJlbmRlcmluZyhpY29u
KTsKKyAgICBpY29uTG9hZGVkKGljb24pOwogfQogCiBTdHJpbmcgRmlsZUlucHV0VHlwZTo6ZGlz
cGxheVN0cmluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZGlzcGxheVN0cmluZzsKIH0KKwog
I2VuZGlmCiAKIHZvaWQgRmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZp
bGVDaG9vc2VyRmlsZUluZm8+JiBmaWxlcykKQEAgLTM5MiwxMiArNDAyLDEyIEBAIHZvaWQgRmls
ZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+
JiBmaWxlcykKICAgICBzZXRGaWxlcyhjcmVhdGVGaWxlTGlzdChmaWxlcykpOwogfQogCi12b2lk
IEZpbGVJbnB1dFR5cGU6OnVwZGF0ZVJlbmRlcmluZyhQYXNzUmVmUHRyPEljb24+IGljb24pCit2
b2lkIEZpbGVJbnB1dFR5cGU6Omljb25Mb2FkZWQoUmVmUHRyPEljb24+JiYgaWNvbikKIHsKICAg
ICBpZiAobV9pY29uID09IGljb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1faWNvbiA9IGlj
b247CisgICAgbV9pY29uID0gV1RGTW92ZShpY29uKTsKICAgICBpZiAoZWxlbWVudCgpLnJlbmRl
cmVyKCkpCiAgICAgICAgIGVsZW1lbnQoKS5yZW5kZXJlcigpLT5yZXBhaW50KCk7CiB9CkBAIC00
MzQsOCArNDQ0LDcgQEAgSWNvbiogRmlsZUlucHV0VHlwZTo6aWNvbigpIGNvbnN0CiAKIFN0cmlu
ZyBGaWxlSW5wdXRUeXBlOjpkZWZhdWx0VG9vbFRpcCgpIGNvbnN0CiB7Ci0gICAgRmlsZUxpc3Qq
IGZpbGVMaXN0ID0gbV9maWxlTGlzdC5nZXQoKTsKLSAgICB1bnNpZ25lZCBsaXN0U2l6ZSA9IGZp
bGVMaXN0LT5sZW5ndGgoKTsKKyAgICB1bnNpZ25lZCBsaXN0U2l6ZSA9IG1fZmlsZUxpc3QtPmxl
bmd0aCgpOwogICAgIGlmICghbGlzdFNpemUpIHsKICAgICAgICAgaWYgKGVsZW1lbnQoKS5tdWx0
aXBsZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJl
bCgpOwpAQCAtNDQzLDggKzQ1Miw4IEBAIFN0cmluZyBGaWxlSW5wdXRUeXBlOjpkZWZhdWx0VG9v
bFRpcCgpIGNvbnN0CiAgICAgfQogCiAgICAgU3RyaW5nQnVpbGRlciBuYW1lczsKLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKLSAgICAgICAgbmFtZXMuYXBwZW5k
KGZpbGVMaXN0LT5pdGVtKGkpLT5uYW1lKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgIG5hbWVzLmFwcGVuZChtX2ZpbGVMaXN0LT5pdGVt
KGkpLT5uYW1lKCkpOwogICAgICAgICBpZiAoaSAhPSBsaXN0U2l6ZSAtIDEpCiAgICAgICAgICAg
ICBuYW1lcy5hcHBlbmQoJ1xuJyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUu
aAppbmRleCBmOGEwZGZmMmQ4ZDNjMzA1ZjAxYTFkZjhjODkxYTI5MGUzNjU2M2YxLi5lZTQwNjQ4
ZDY5NTFkYTZhZDI5MzlhMDJmNTM2ZTc3ODg2OWMyZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJ
bnB1dFR5cGUuaApAQCAtNTAsNDUgKzUwLDQ1IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgVmVjdG9y
PEZpbGVDaG9vc2VyRmlsZUluZm8+IGZpbGVzRnJvbUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9y
bUNvbnRyb2xTdGF0ZSYpOwogCiBwcml2YXRlOgotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZm9y
bUNvbnRyb2xUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgRm9ybUNvbnRyb2xTdGF0ZSBzYXZl
Rm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgcmVzdG9yZUZvcm1D
b250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIG92ZXJyaWRlOwotICAgIGJvb2wg
YXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgU3Ry
aW5nIHZhbHVlTWlzc2luZ1RleHQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGhhbmRsZURP
TUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKLSAgICBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYmKSBvdmVycmlkZTsKLSAgICBi
b29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgRmlsZUxpc3QqIGZp
bGVzKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0Pikg
b3ZlcnJpZGU7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25z
dCBmaW5hbDsKKyAgICBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29u
c3QgZmluYWw7CisgICAgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29u
dHJvbFN0YXRlJikgZmluYWw7CisgICAgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3Qm
LCBib29sKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcm
KSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcgdmFsdWVNaXNzaW5nVGV4dCgpIGNvbnN0IGZpbmFs
OworICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIGZpbmFsOworICAgIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYp
IGZpbmFsOworICAgIGJvb2wgY2FuU2V0U3RyaW5nVmFsdWUoKSBjb25zdCBmaW5hbDsKKyAgICBG
aWxlTGlzdCogZmlsZXMoKSBmaW5hbDsKKyAgICB2b2lkIHNldEZpbGVzKFJlZlB0cjxGaWxlTGlz
dD4mJikgZmluYWw7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIFN0cmluZyBkaXNwbGF5U3RyaW5n
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgU3RyaW5nIGRpc3BsYXlTdHJpbmcoKSBjb25zdCBmaW5h
bDsKICNlbmRpZgotICAgIGJvb2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7
Ci0gICAgYm9vbCBnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKSBvdmVycmlkZTsgLy8gQ2hl
Y2tlZCBmaXJzdCwgYmVmb3JlIGludGVybmFsIHN0b3JhZ2Ugb3IgdGhlIHZhbHVlIGF0dHJpYnV0
ZS4KLSAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBU
ZXh0RmllbGRFdmVudEJlaGF2aW9yKSBvdmVycmlkZTsKKyAgICBib29sIGNhblNldFZhbHVlKGNv
bnN0IFN0cmluZyYpIGZpbmFsOworICAgIGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5n
JikgZmluYWw7IC8vIENoZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdlIG9yIHRo
ZSB2YWx1ZSBhdHRyaWJ1dGUuCisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29s
IHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgZmluYWw7CiAKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQotICAgIGJvb2wgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBEcmFn
RGF0YSYpIG92ZXJyaWRlOworICAgIGJvb2wgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBEcmFn
RGF0YSYpIGZpbmFsOwogI2VuZGlmCiAKLSAgICBJY29uKiBpY29uKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgYm9vbCBpc0ZpbGVVcGxvYWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGNyZWF0
ZVNoYWRvd1N1YnRyZWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2FibGVkQXR0cmlidXRlQ2hh
bmdlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgbXVsdGlwbGVBdHRyaWJ1dGVDaGFuZ2VkKCkgb3Zl
cnJpZGU7Ci0gICAgU3RyaW5nIGRlZmF1bHRUb29sVGlwKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
SWNvbiogaWNvbigpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgaXNGaWxlVXBsb2FkKCkgY29uc3Qg
ZmluYWw7CisgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgZmluYWw7CisgICAgdm9pZCBk
aXNhYmxlZEF0dHJpYnV0ZUNoYW5nZWQoKSBmaW5hbDsKKyAgICB2b2lkIG11bHRpcGxlQXR0cmli
dXRlQ2hhbmdlZCgpIGZpbmFsOworICAgIFN0cmluZyBkZWZhdWx0VG9vbFRpcCgpIGNvbnN0IGZp
bmFsOwogCiAgICAgLy8gRmlsZUNob29zZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCi0gICAgdm9p
ZCBmaWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZv
PiYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2b2lkIGZpbGVzQ2hvc2VuKGNvbnN0
IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYsIGNvbnN0IFN0cmluZyYgZGlzcGxheVN0cmlu
ZywgSWNvbiopIG92ZXJyaWRlOworICAgIHZvaWQgZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZp
bGVDaG9vc2VyRmlsZUluZm8+JiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5U3RyaW5nLCBJY29uKikg
ZmluYWw7CiAjZW5kaWYKIAogICAgIC8vIEZpbGVJY29uTG9hZGVyQ2xpZW50IGltcGxlbWVudGF0
aW9uLgotICAgIHZvaWQgdXBkYXRlUmVuZGVyaW5nKFBhc3NSZWZQdHI8SWNvbj4pIG92ZXJyaWRl
OworICAgIHZvaWQgaWNvbkxvYWRlZChSZWZQdHI8SWNvbj4mJikgZmluYWw7CiAKLSAgICBQYXNz
UmVmUHRyPEZpbGVMaXN0PiBjcmVhdGVGaWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29zZXJG
aWxlSW5mbz4mIGZpbGVzKSBjb25zdDsKKyAgICBzdGF0aWMgUmVmPEZpbGVMaXN0PiBjcmVhdGVG
aWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mKTsKICAgICB2b2lkIHJl
cXVlc3RJY29uKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAKICAgICB2b2lkIGFwcGx5RmlsZUNo
b29zZXJTZXR0aW5ncyhjb25zdCBGaWxlQ2hvb3NlclNldHRpbmdzJik7CkBAIC05OCw3ICs5OCw3
IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEZpbGVJY29uTG9hZGVyPiBtX2ZpbGVJ
Y29uTG9hZGVyOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8RmlsZUxpc3Q+IG1fZmlsZUxpc3Q7Cisg
ICAgUmVmPEZpbGVMaXN0PiBtX2ZpbGVMaXN0OwogICAgIFJlZlB0cjxJY29uPiBtX2ljb247CiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIFN0cmluZyBtX2Rpc3BsYXlTdHJpbmc7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGY0YmU3MTU4YzUxMDA4NTgzMDU4MGI2YTczODU4NzIw
MzAzOWEzZDkuLjAzMjJiMTM5ZDI4NWIwZjI4ZjExYjYzMGY5NDM5MTkwMThkYzYxNTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChD
KSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICogQ29weXJpZ2h0
IChDKSAyMDExIE1vdG9yb2xhIE1vYmlsaXR5LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAg
LTc1Miw3ICs3NTIsNyBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLAogICAgIHJldHVybiBSZW5k
ZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIH0KIAotSFRNTEZv
cm1FbGVtZW50KiBIVE1MRWxlbWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAorSFRNTEZvcm1FbGVt
ZW50KiBIVE1MRWxlbWVudDo6Zm9ybSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEhUTUxGb3JtRWxl
bWVudDo6ZmluZENsb3Nlc3RGb3JtQW5jZXN0b3IoKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5oCmluZGV4IDM5ZDRjYjcyYjY3NjM3Mjc3NTkxMTI2YThhMTUyNTA1NDAyZGZlMGMu
LmMxZjllY2I3NmRmNzM1MzM4YmI5NTBjYmY3MDE0YjhkZGRiMWFhYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmgKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAxOTk5
IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkg
S29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOSwg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikgb3ZlcnJpZGU7CiAKLSAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCB7
IHJldHVybiB2aXJ0dWFsRm9ybSgpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBIVE1M
Rm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IEF0
b21pY1N0cmluZyYgZGlyKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREaXIo
Y29uc3QgQXRvbWljU3RyaW5nJik7CkBAIC0xMzMsOCArMTMzLDYgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgbWFwTGFuZ3VhZ2VBdHRyaWJ1dGVUb0xvY2FsZShjb25zdCBBdG9taWNTdHJpbmcmLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzJik7CiAKLSAgICB2aXJ0dWFsIEhUTUxGb3JtRWxlbWVudCog
dmlydHVhbEZvcm0oKSBjb25zdDsKLQogICAgIEV4Y2VwdGlvbk9yPFJlZjxEb2N1bWVudEZyYWdt
ZW50Pj4gdGV4dFRvRnJhZ21lbnQoY29uc3QgU3RyaW5nJik7CiAKICAgICB2b2lkIGRpckF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA4NDUxNmNiNjI0NGMzM2IxZjcwNWUw
NmRlMjgyMmFlYTExZTUxYmQ4Li4yZTg3MmFhYmFlNjRiMDQ0OGQyMjE0ZTk2MmJiMTZmNmNiZjk5
MDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5j
cHAKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25v
bGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlz
dG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJA
a2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgICAgICAgICAgKEMpIDIwMDYg
QWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTU5Mywx
MSArNTkzLDYgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVu
dChSZWZQdHI8RWxlbWVudD4mJiBuZXdGb2N1c2VkRWxlbWUKICAgICBoaWRlVmlzaWJsZVZhbGlk
YXRpb25NZXNzYWdlKCk7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAotewotICAgIHJldHVybiBGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQ6OmZvcm0oKTsKLX0KLQogI2lmIEVOQUJMRShJT1NfQVVUT0NPUlJFQ1RfQU5EX0FVVE9D
QVBJVEFMSVpFKQogCiAvLyBGSVhNRTogV2Ugc2hvdWxkIGxvb2sgdG8gc2hhcmUgdGhpcyBjb2Rl
IHdpdGggY2xhc3MgSFRNTEZvcm1FbGVtZW50IGluc3RlYWQgb2YgZHVwbGljYXRpbmcgdGhlIGxv
Z2ljLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRl
eCA0ZmY0ODk0ZjM1ZmU2MWQyZWRmMGMwODU1ZTkyMjQ0YWNkYzVjNGZjLi41MGI4Y2Q0YzE4MTQx
MzUwM2Q1NDM3ZTdmOWUwNTI0ZjczM2Q1NTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykg
MTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFu
dHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAwIERp
cmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDYsNyArNDYsNyBAQCBjbGFz
cyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IDogcHVibGljIExhYmVsYWJsZUVsZW1lbnQsIHB1Ymxp
YyBGb3JtQXNzb2NpYXRlZEVsZQogcHVibGljOgogICAgIHZpcnR1YWwgfkhUTUxGb3JtQ29udHJv
bEVsZW1lbnQoKTsKIAotICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IHsgcmV0dXJu
IEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybSgpOyB9CisgICAgSFRNTEZvcm1FbGVtZW50KiBm
b3JtKCkgY29uc3QgZmluYWwgeyByZXR1cm4gRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtKCk7
IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBmb3JtRW5jdHlwZSgpIGNvbnN0OwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Rm9ybUVuY3R5cGUoY29uc3QgU3RyaW5nJik7CkBAIC0x
NjksNyArMTY5LDYgQEAgcHJpdmF0ZToKIAogICAgIGludCB0YWJJbmRleCgpIGNvbnN0IGZpbmFs
OwogCi0gICAgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFsRm9ybSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgaXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpIGNvbnN0OwogCiAgICAgYm9vbCBj
b21wdXRlSXNEaXNhYmxlZEJ5RmllbGRzZXRBbmNlc3RvcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggZDQzZDRlZjllMDExOTI2ZDBlOGEwZWJk
ZWM4NzUyZDNlZmZkZmMyNC4uODIxMmNiMjk4OGMzNDE5MjdjZjdlMTNmMTliYjUyYzBkZDY2NjVh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0yLDcgKzIs
NyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAg
KiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAg
KiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIw
MTEsIDIwMTMsIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkK
ICAqIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIChzYW1Ad2Via2l0Lm9yZykKICAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAt
MTE4NCwxMCArMTE4NCw5IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCYgZXZlbnQpCiAgICAgICAgIGlmICh3YXNDaGFuZ2VkU2luY2VMYXN0Rm9ybUNv
bnRyb2xDaGFuZ2VFdmVudCgpKQogICAgICAgICAgICAgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5n
ZUV2ZW50KCk7CiAKLSAgICAgICAgUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gZm9ybUZvclN1Ym1p
c3Npb24gPSBtX2lucHV0VHlwZS0+Zm9ybUZvclN1Ym1pc3Npb24oKTsKICAgICAgICAgLy8gRm9y
bSBtYXkgbmV2ZXIgaGF2ZSBiZWVuIHByZXNlbnQsIG9yIG1heSBoYXZlIGJlZW4gZGVzdHJveWVk
IGJ5IGNvZGUgcmVzcG9uZGluZyB0byB0aGUgY2hhbmdlIGV2ZW50LgotICAgICAgICBpZiAoZm9y
bUZvclN1Ym1pc3Npb24pCi0gICAgICAgICAgICBmb3JtRm9yU3VibWlzc2lvbi0+c3VibWl0SW1w
bGljaXRseShldmVudCwgY2FuVHJpZ2dlckltcGxpY2l0U3VibWlzc2lvbigpKTsKKyAgICAgICAg
aWYgKGF1dG8qIGZvcm1FbGVtZW50ID0gZm9ybSgpKQorICAgICAgICAgICAgZm9ybUVsZW1lbnQt
PnN1Ym1pdEltcGxpY2l0bHkoZXZlbnQsIGNhblRyaWdnZXJJbXBsaWNpdFN1Ym1pc3Npb24oKSk7
CiAKICAgICAgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtMTM0Miw5ICsxMzQxLDkgQEAgRmlsZUxpc3QqIEhUTUxJbnB1dEVsZW1lbnQ6OmZpbGVzKCkK
ICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmZpbGVzKCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxl
bWVudDo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCit2b2lkIEhUTUxJbnB1
dEVsZW1lbnQ6OnNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4mJiBmaWxlcykKIHsKLSAgICBtX2lu
cHV0VHlwZS0+c2V0RmlsZXMoZmlsZXMpOworICAgIG1faW5wdXRUeXBlLT5zZXRGaWxlcyhXVEZN
b3ZlKGZpbGVzKSk7CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpAQCAtMTg2OSw3ICsx
ODY4LDcgQEAgUmFkaW9CdXR0b25Hcm91cHMqIEhUTUxJbnB1dEVsZW1lbnQ6OnJhZGlvQnV0dG9u
R3JvdXBzKCkgY29uc3QKIHsKICAgICBpZiAoIWlzUmFkaW9CdXR0b24oKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgaWYgKEhUTUxGb3JtRWxlbWVudCogZm9ybUVsZW1lbnQgPSBmb3Jt
KCkpCisgICAgaWYgKGF1dG8qIGZvcm1FbGVtZW50ID0gZm9ybSgpKQogICAgICAgICByZXR1cm4g
JmZvcm1FbGVtZW50LT5yYWRpb0J1dHRvbkdyb3VwcygpOwogICAgIGlmIChpbkRvY3VtZW50KCkp
CiAgICAgICAgIHJldHVybiAmZG9jdW1lbnQoKS5mb3JtQ29udHJvbGxlcigpLnJhZGlvQnV0dG9u
R3JvdXBzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDhhZmZk
OTgxMTc1NGQ5ZTQ5MjM2MjU2ZTY1NWQ2ZGE1NTgzZjU2ZDYuLmJmMDBiYWZmYzQ2MjAzNmE4YjIy
ZWQ5ZGNiY2EzNWIyYjExZmUxNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtu
b2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZp
c3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVy
QGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmlj
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00Myw4ICs0Myw4IEBAIGNs
YXNzIEljb247CiBjbGFzcyBJbnB1dFR5cGU7CiBjbGFzcyBMaXN0QXR0cmlidXRlVGFyZ2V0T2Jz
ZXJ2ZXI7CiBjbGFzcyBSYWRpb0J1dHRvbkdyb3VwczsKLWNsYXNzIFRleHRDb250cm9sSW5uZXJU
ZXh0RWxlbWVudDsKIGNsYXNzIFVSTDsKKwogc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRl
cnM7CiAKIHN0cnVjdCBJbnB1dEVsZW1lbnRDbGlja1N0YXRlIHsKQEAgLTIzOCw3ICsyMzgsNyBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTaG93QXV0b0ZpbGxCdXR0b24o
QXV0b0ZpbGxCdXR0b25UeXBlKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIEZpbGVMaXN0KiBmaWxl
cygpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlz
dD4pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RmlsZXMoUmVmUHRyPEZpbGVMaXN0PiYm
KTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRo
ZSBnaXZlbiBEcmFnRGF0YSBoYXMgbW9yZSB0aGFuIG9uZSBkcm9wcGVkIGZpbGVzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAKaW5kZXggNzExZDA2ZDIzMjNmMGQ2ZDU1
ZTFhYWNhZWRlYWY0ZWUwNjc3MzlhYy4uMDEwZmZjNGMzNGI4MDk1Y2E5OTQ1MzAwM2FlMGZiNmNl
ODdiZjFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCkBAIC0y
LDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5v
cmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5v
cmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcp
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQ
cm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC01OCwzMCArNTgsMjgg
QEAgUmVmPEhUTUxMYWJlbEVsZW1lbnQ+IEhUTUxMYWJlbEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2MKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1M
TGFiZWxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLUxhYmVsYWJsZUVsZW1lbnQq
IEhUTUxMYWJlbEVsZW1lbnQ6OmNvbnRyb2woKQorTGFiZWxhYmxlRWxlbWVudCogSFRNTExhYmVs
RWxlbWVudDo6Y29udHJvbCgpIGNvbnN0CiB7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBjb250
cm9sSWQgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGZvckF0dHIpOworICAgIGF1
dG8mIGNvbnRyb2xJZCA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oZm9yQXR0cik7
CiAgICAgaWYgKGNvbnRyb2xJZC5pc051bGwoKSkgewogICAgICAgICAvLyBTZWFyY2ggdGhlIGNo
aWxkcmVuIGFuZCBkZXNjZW5kYW50cyBvZiB0aGUgbGFiZWwgZWxlbWVudCBmb3IgYSBmb3JtIGVs
ZW1lbnQuCiAgICAgICAgIC8vIHBlciBodHRwOi8vZGV2LnczLm9yZy9odG1sNS9zcGVjL092ZXJ2
aWV3Lmh0bWwjdGhlLWxhYmVsLWVsZW1lbnQKICAgICAgICAgLy8gdGhlIGZvcm0gZWxlbWVudCBt
dXN0IGJlICJsYWJlbGFibGUgZm9ybS1hc3NvY2lhdGVkIGVsZW1lbnQiLgogICAgICAgICBmb3Ig
KGF1dG8mIGxhYmVsYWJsZUVsZW1lbnQgOiBkZXNjZW5kYW50c09mVHlwZTxMYWJlbGFibGVFbGVt
ZW50PigqdGhpcykpIHsKICAgICAgICAgICAgIGlmIChsYWJlbGFibGVFbGVtZW50LnN1cHBvcnRM
YWJlbHMoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gJmxhYmVsYWJsZUVsZW1lbnQ7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8TGFiZWxhYmxlRWxlbWVudCo+KCZsYWJlbGFi
bGVFbGVtZW50KTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0g
ICAgCiAgICAgcmV0dXJuIGluRG9jdW1lbnQoKSA/IGZpcnN0RWxlbWVudFdpdGhJZElmTGFiZWxh
YmxlKHRyZWVTY29wZSgpLCBjb250cm9sSWQpIDogbnVsbHB0cjsKIH0KIAotSFRNTEZvcm1FbGVt
ZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpmb3JtKCkKK0hUTUxGb3JtRWxlbWVudCogSFRNTExhYmVs
RWxlbWVudDo6Zm9ybSgpIGNvbnN0CiB7Ci0gICAgYXV0byogbGFiZWxlZENvbnRyb2wgPSBjb250
cm9sKCk7Ci0gICAgaWYgKCFsYWJlbGVkQ29udHJvbCkKKyAgICBhdXRvKiBjb250cm9sID0gdGhp
cy0+Y29udHJvbCgpOworICAgIGlmICghaXM8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oY29udHJv
bCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIGlzPEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ+KCpsYWJlbGVkQ29udHJvbCkgPyBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xF
bGVtZW50PigqbGFiZWxlZENvbnRyb2wpLmZvcm0oKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIGRv
d25jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KCpjb250cm9sKS5mb3JtKCk7CiB9CiAKIHZv
aWQgSFRNTExhYmVsRWxlbWVudDo6c2V0QWN0aXZlKGJvb2wgZG93biwgYm9vbCBwYXVzZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKaW5kZXggMTQwZDk4OTVkMWY0MGQ4YTJk
MzZmNTdlMTM1NGFkYWViMjQ1ZjE5ZS4uYTNkMTQyMTA4YjQyNmQ2YWRlNDNiZTY5MTJiZjZjNWJj
MDE0NThlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKQEAgLTIsNyAr
Miw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykK
ICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykK
ICAqICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAq
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDggKzMxLDgg
QEAgY2xhc3MgSFRNTExhYmVsRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxIVE1MTGFiZWxFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBMYWJlbGFibGVF
bGVtZW50KiBjb250cm9sKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgSFRNTEZvcm1FbGVtZW50KiBm
b3JtKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgTGFiZWxhYmxlRWxlbWVudCogY29udHJvbCgpIGNv
bnN0OworICAgIFdFQkNPUkVfRVhQT1JUIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IGZp
bmFsOwogCiAgICAgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIGZpbmFsOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwCmluZGV4IDA0ODEwNjEx
ZTFkYTJjZmQzOTc4Y2ZiYTlmOWYyOTMwNTliZDQ1Y2UuLjA5MGUwYzcyZDliNmIzNWM1M2Y0Mjc4
MTQ1YjYxOWZlNDdmODJjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExl
Z2VuZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1l
bnQuY3BwCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwg
KGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtv
aXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVs
bGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA2IEFs
ZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zMSwxMyAr
MzEsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwotCi0KIGlubGluZSBIVE1MTGVnZW5kRWxlbWVudDo6SFRNTExlZ2VuZEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRN
TEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7Ci0gICAgQVNTRVJUKGhhc1RhZ05hbWUobGVn
ZW5kVGFnKSk7CisgICAgQVNTRVJUKGhhc1RhZ05hbWUoSFRNTE5hbWVzOjpsZWdlbmRUYWcpKTsK
IH0KIAogUmVmPEhUTUxMZWdlbmRFbGVtZW50PiBIVE1MTGVnZW5kRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTU5LDcg
KzU2LDYgQEAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogSFRNTExlZ2VuZEVsZW1lbnQ6OmFzc29j
aWF0ZWRDb250cm9sKCkKIAogdm9pZCBIVE1MTGVnZW5kRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0
b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKLSAgICAv
LyBUbyBtYXRjaCBvdGhlciBicm93c2VycycgYmVoYXZpb3IsIG5ldmVyIHJlc3RvcmUgcHJldmlv
dXMgc2VsZWN0aW9uLgogICAgIGlmIChkb2N1bWVudCgpLmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgp
KSB7CiAgICAgICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKCk7CiAgICAgICAgIGlmIChpc0ZvY3VzYWJsZSgpKSB7CkBAIC02NywyNSArNjMsMjYgQEAg
dm9pZCBIVE1MTGVnZW5kRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rp
b24sIEZvY3VzRGlyZWN0aW9uIGRpcmUKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgIH0KKworICAgIC8vIFRvIG1hdGNoIG90aGVyIGJyb3dzZXJzJyBiZWhhdmlvciwgbmV2ZXIg
cmVzdG9yZSBwcmV2aW91cyBzZWxlY3Rpb24uCiAgICAgaWYgKGF1dG8qIGNvbnRyb2wgPSBhc3Nv
Y2lhdGVkQ29udHJvbCgpKQogICAgICAgICBjb250cm9sLT5mb2N1cyhmYWxzZSwgZGlyZWN0aW9u
KTsKIH0KIAogdm9pZCBIVE1MTGVnZW5kRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2Vu
ZE1vdXNlRXZlbnRzKQogewotICAgIGlmIChIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBjb250cm9s
ID0gYXNzb2NpYXRlZENvbnRyb2woKSkKKyAgICBpZiAoYXV0byogY29udHJvbCA9IGFzc29jaWF0
ZWRDb250cm9sKCkpCiAgICAgICAgIGNvbnRyb2wtPmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VF
dmVudHMpOwogfQogCi1IVE1MRm9ybUVsZW1lbnQqIEhUTUxMZWdlbmRFbGVtZW50Ojp2aXJ0dWFs
Rm9ybSgpIGNvbnN0CitIVE1MRm9ybUVsZW1lbnQqIEhUTUxMZWdlbmRFbGVtZW50Ojpmb3JtKCkg
Y29uc3QKIHsKICAgICAvLyBBY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmljYXRpb24sIElmIHRoZSBs
ZWdlbmQgaGFzIGEgZmllbGRzZXQgZWxlbWVudCBhcwogICAgIC8vIGl0cyBwYXJlbnQsIHRoZW4g
dGhlIGZvcm0gYXR0cmlidXRlIG11c3QgcmV0dXJuIHRoZSBzYW1lIHZhbHVlIGFzIHRoZQogICAg
IC8vIGZvcm0gYXR0cmlidXRlIG9uIHRoYXQgZmllbGRzZXQgZWxlbWVudC4gT3RoZXJ3aXNlLCBp
dCBtdXN0IHJldHVybiBudWxsLgotICAgIENvbnRhaW5lck5vZGUqIGZpZWxkc2V0ID0gcGFyZW50
Tm9kZSgpOworICAgIGF1dG8qIGZpZWxkc2V0ID0gcGFyZW50Tm9kZSgpOwogICAgIGlmICghaXM8
SFRNTEZpZWxkU2V0RWxlbWVudD4oZmllbGRzZXQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LQogICAgIHJldHVybiBkb3duY2FzdDxIVE1MRmllbGRTZXRFbGVtZW50PigqZmllbGRzZXQpLmZv
cm0oKTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2Vu
ZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaAppbmRl
eCAwMzhjYzlhMTc2ZWJjMGQ3MDYyZTYwZTVjOTU5YTE1ZTgzODQ2ZjJmLi4xNDRlMTlmNjJiODFk
OTMyYjhhMTlhYmM2YzhmZmYxOWYxMDU1OTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMZWdlbmRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVn
ZW5kRWxlbWVudC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMg
S25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlz
dG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVy
IChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0
LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0zMywxNSArMzMsMTYgQEAgY2xhc3MgSFRNTExlZ2VuZEVsZW1lbnQgZmluYWwgOiBwdWJs
aWMgSFRNTEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8SFRNTExlZ2VuZEVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAorICAgIFdFQkNP
UkVfRVhQT1JUIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IGZpbmFsOworCiBwcml2YXRl
OgogICAgIEhUTUxMZWdlbmRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCi0gICAgLy8gQ29udHJvbCBpbiB0aGUgbGVnZW5kJ3MgZmllbGRzZXQgdGhhdCBnZXRzIGZv
Y3VzIGFuZCBhY2Nlc3Mga2V5LgorICAgIC8vIENvbnRyb2wgaW4gdGhlIGxlZ2VuZCdzIGZpZWxk
IHNldCB0aGF0IGdldHMgZm9jdXMgYW5kIGFjY2VzcyBrZXkuCiAgICAgSFRNTEZvcm1Db250cm9s
RWxlbWVudCogYXNzb2NpYXRlZENvbnRyb2woKTsKIAogICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9u
KGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsKICAgICB2b2lkIGZvY3VzKGJvb2wgcmVzdG9y
ZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbikgZmluYWw7Ci0gICAgSFRNTEZvcm1F
bGVtZW50KiB2aXJ0dWFsRm9ybSgpIGNvbnN0IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggY2Q0
YjVhMjc2YzIwYTM4Y2U5Njc2NTBiYTliYWQ5YjdlNDY4YjVmNi4uNWUyMWI4M2M2ODdhZDNmYjUw
NzY0MDYwNGYwNmMyNTQyODhhZmRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNy0yMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjQsMTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKIAogI2lmIEVOQUJMRShWSURFTykKIAot
I2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKLQogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmgiCiAjaW5jbHVk
ZSAiQXR0cmlidXRlLmgiCkBAIC0yNjksMjIgKzI2OCwyMyBAQCBzdGF0aWMgdm9pZCByZW1vdmVF
bGVtZW50RnJvbURvY3VtZW50TWFwKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQsIERvY3VtZW50
JiBkbwogfQogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorCiBjbGFzcyBUcmFja0Rpc3BsYXlV
cGRhdGVTY29wZSB7CiBwdWJsaWM6Ci0gICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUoSFRNTE1l
ZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQorICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlKEhU
TUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpCisgICAgICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCiAg
ICAgewotICAgICAgICBtX21lZGlhRWxlbWVudCA9IG1lZGlhRWxlbWVudDsKLSAgICAgICAgbV9t
ZWRpYUVsZW1lbnQtPmJlZ2luSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpOwor
ICAgICAgICBtX2VsZW1lbnQuYmVnaW5JZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0ZVJlcXVlc3Rz
KCk7CiAgICAgfQogICAgIH5UcmFja0Rpc3BsYXlVcGRhdGVTY29wZSgpCiAgICAgewotICAgICAg
ICBBU1NFUlQobV9tZWRpYUVsZW1lbnQpOwotICAgICAgICBtX21lZGlhRWxlbWVudC0+ZW5kSWdu
b3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpOworICAgICAgICBtX2VsZW1lbnQuZW5k
SWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpOwogICAgIH0KICAgICAKIHByaXZh
dGU6Ci0gICAgSFRNTE1lZGlhRWxlbWVudCogbV9tZWRpYUVsZW1lbnQ7CisgICAgSFRNTE1lZGlh
RWxlbWVudCYgbV9lbGVtZW50OwogfTsKKwogI2VuZGlmCiAKIHN0cnVjdCBIVE1MTWVkaWFFbGVt
ZW50OjpUcmFja0dyb3VwIHsKQEAgLTE1NTQsNyArMTU1NCw3IEBAIHN0YXRpYyBib29sIGV2ZW50
VGltZUN1ZUNvbXBhcmUoY29uc3Qgc3RkOjpwYWlyPE1lZGlhVGltZSwgVGV4dFRyYWNrQ3VlKj4m
IGEsIGNvCiAgICAgLy8gMTIgLSBGdXJ0aGVyIHNvcnQgdGFza3MgaW4gZXZlbnRzIHRoYXQgaGF2
ZSB0aGUgc2FtZSB0aW1lIGJ5IHRoZQogICAgIC8vIHJlbGF0aXZlIHRleHQgdHJhY2sgY3VlIG9y
ZGVyIG9mIHRoZSB0ZXh0IHRyYWNrIGN1ZXMgYXNzb2NpYXRlZAogICAgIC8vIHdpdGggdGhlc2Ug
dGFza3MuCi0gICAgcmV0dXJuIGEuc2Vjb25kLT5jdWVJbmRleCgpIC0gYi5zZWNvbmQtPmN1ZUlu
ZGV4KCkgPCAwOworICAgIHJldHVybiBhLnNlY29uZC0+aXNPcmRlcmVkQmVmb3JlKGIuc2Vjb25k
KTsKIH0KIAogc3RhdGljIGJvb2wgY29tcGFyZUN1ZUludGVydmFsKGNvbnN0IEN1ZUludGVydmFs
JiBvbmUsIGNvbnN0IEN1ZUludGVydmFsJiB0d28pCkBAIC0xODE3LDIyICsxODE3LDIxIEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVhZHlTdGF0ZUNoYW5nZWQoVGV4dFRyYWNr
KiB0cmFjaykKICAgICB9CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YXVkaW9UcmFja0Vu
YWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2sqIHRyYWNrKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojph
dWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayYgdHJhY2spCiB7Ci0gICAgQVNTRVJU
KHRyYWNrKTsKLSAgICBpZiAobV9hdWRpb1RyYWNrcyAmJiBtX2F1ZGlvVHJhY2tzLT5jb250YWlu
cygqdHJhY2spKQorICAgIGlmIChtX2F1ZGlvVHJhY2tzICYmIG1fYXVkaW9UcmFja3MtPmNvbnRh
aW5zKHRyYWNrKSkKICAgICAgICAgbV9hdWRpb1RyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVudCgp
OwogICAgIGlmIChTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRp
YSgpKQogICAgICAgICByZW1vdmVCZWhhdmlvcnNSZXN0cmljdGlvbnNBZnRlckZpcnN0VXNlckdl
c3R1cmUoTWVkaWFFbGVtZW50U2Vzc2lvbjo6QWxsUmVzdHJpY3Rpb25zICYgfk1lZGlhRWxlbWVu
dFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcik7CiB9
CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNr
KiB0cmFjaykKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4
dFRyYWNrJiB0cmFjaykKIHsKICAgICBib29sIHRyYWNrSXNMb2FkZWQgPSB0cnVlOwotICAgIGlm
ICh0cmFjay0+dHJhY2tUeXBlKCkgPT0gVGV4dFRyYWNrOjpUcmFja0VsZW1lbnQpIHsKKyAgICBp
ZiAodHJhY2sudHJhY2tUeXBlKCkgPT0gVGV4dFRyYWNrOjpUcmFja0VsZW1lbnQpIHsKICAgICAg
ICAgdHJhY2tJc0xvYWRlZCA9IGZhbHNlOwogICAgICAgICBmb3IgKGF1dG8mIHRyYWNrRWxlbWVu
dCA6IGNoaWxkcmVuT2ZUeXBlPEhUTUxUcmFja0VsZW1lbnQ+KCp0aGlzKSkgewotICAgICAgICAg
ICAgaWYgKCZ0cmFja0VsZW1lbnQudHJhY2soKSA9PSB0cmFjaykgeworICAgICAgICAgICAgaWYg
KCZ0cmFja0VsZW1lbnQudHJhY2soKSA9PSAmdHJhY2spIHsKICAgICAgICAgICAgICAgICBpZiAo
dHJhY2tFbGVtZW50LnJlYWR5U3RhdGUoKSA9PSBIVE1MVHJhY2tFbGVtZW50OjpMT0FESU5HIHx8
IHRyYWNrRWxlbWVudC5yZWFkeVN0YXRlKCkgPT0gSFRNTFRyYWNrRWxlbWVudDo6TE9BREVEKQog
ICAgICAgICAgICAgICAgICAgICB0cmFja0lzTG9hZGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAg
ICBicmVhazsKQEAgLTE4NDUsMzMgKzE4NDQsMzIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0
ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQogICAgICAgICBtX3RleHRUcmFj
a3MgPSBUZXh0VHJhY2tMaXN0OjpjcmVhdGUodGhpcywgQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpOwogICAgIAogICAgIC8vIE1hcmsgdGhpcyB0cmFjayBhcyAiY29u
ZmlndXJlZCIgc28gY29uZmlndXJlVGV4dFRyYWNrcyB3b24ndCBjaGFuZ2UgdGhlIG1vZGUgYWdh
aW4uCi0gICAgdHJhY2stPnNldEhhc0JlZW5Db25maWd1cmVkKHRydWUpOworICAgIHRyYWNrLnNl
dEhhc0JlZW5Db25maWd1cmVkKHRydWUpOwogICAgIAotICAgIGlmICh0cmFjay0+bW9kZSgpICE9
IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQgJiYgdHJhY2tJc0xvYWRlZCkKLSAgICAgICAgdGV4
dFRyYWNrQWRkQ3Vlcyh0cmFjaywgdHJhY2stPmN1ZXMoKSk7CisgICAgaWYgKHRyYWNrLm1vZGUo
KSAhPSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkICYmIHRyYWNrSXNMb2FkZWQpCisgICAgICAg
IHRleHRUcmFja0FkZEN1ZXModHJhY2ssICp0cmFjay5jdWVzKCkpOwogCiAgICAgY29uZmlndXJl
VGV4dFRyYWNrRGlzcGxheShBc3N1bWVUZXh0VHJhY2tWaXNpYmlsaXR5Q2hhbmdlZCk7CiAKLSAg
ICBpZiAobV90ZXh0VHJhY2tzICYmIG1fdGV4dFRyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAg
ICBpZiAobV90ZXh0VHJhY2tzICYmIG1fdGV4dFRyYWNrcy0+Y29udGFpbnModHJhY2spKQogICAg
ICAgICBtX3RleHRUcmFja3MtPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogI2lmIEVOQUJMRShB
VkZfQ0FQVElPTlMpCi0gICAgaWYgKHRyYWNrLT50cmFja1R5cGUoKSA9PSBUZXh0VHJhY2s6OlRy
YWNrRWxlbWVudCAmJiBtX3BsYXllcikKKyAgICBpZiAodHJhY2sudHJhY2tUeXBlKCkgPT0gVGV4
dFRyYWNrOjpUcmFja0VsZW1lbnQgJiYgbV9wbGF5ZXIpCiAgICAgICAgIG1fcGxheWVyLT5ub3Rp
ZnlUcmFja01vZGVDaGFuZ2VkKCk7CiAjZW5kaWYKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50
Ojp2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqIHRyYWNrKQordm9pZCBIVE1M
TWVkaWFFbGVtZW50Ojp2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2smIHRyYWNr
KQogewotICAgIEFTU0VSVCh0cmFjayk7Ci0gICAgaWYgKG1fdmlkZW9UcmFja3MgJiYgbV92aWRl
b1RyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV92aWRlb1RyYWNrcyAmJiBtX3Zp
ZGVvVHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fdmlkZW9UcmFja3MtPnNjaGVk
dWxlQ2hhbmdlRXZlbnQoKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tL
aW5kQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0
VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2smIHRyYWNrKQogewotICAgIGlmICh0cmFjay0+a2lu
ZCgpICE9IFRleHRUcmFjazo6S2luZDo6Q2FwdGlvbnMgJiYgdHJhY2stPmtpbmQoKSAhPSBUZXh0
VHJhY2s6OktpbmQ6OlN1YnRpdGxlcyAmJiB0cmFjay0+bW9kZSgpID09IFRleHRUcmFjazo6TW9k
ZTo6U2hvd2luZykKLSAgICAgICAgdHJhY2stPnNldE1vZGUoVGV4dFRyYWNrOjpNb2RlOjpIaWRk
ZW4pOworICAgIGlmICh0cmFjay5raW5kKCkgIT0gVGV4dFRyYWNrOjpLaW5kOjpDYXB0aW9ucyAm
JiB0cmFjay5raW5kKCkgIT0gVGV4dFRyYWNrOjpLaW5kOjpTdWJ0aXRsZXMgJiYgdHJhY2subW9k
ZSgpID09IFRleHRUcmFjazo6TW9kZTo6U2hvd2luZykKKyAgICAgICAgdHJhY2suc2V0TW9kZShU
ZXh0VHJhY2s6Ok1vZGU6OkhpZGRlbik7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YmVn
aW5JZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0ZVJlcXVlc3RzKCkKQEAgLTE4ODcsMjYgKzE4ODUs
MjggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjplbmRJZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0
ZVJlcXVlc3RzKCkKICAgICAgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcyhjdXJyZW50TWVk
aWFUaW1lKCkpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMo
VGV4dFRyYWNrKiB0cmFjaywgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCogY3VlcykgCit2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiB0cmFjaywgY29uc3Qg
VGV4dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAgICBpZiAodHJhY2stPm1vZGUoKSA9PSBUZXh0
VHJhY2s6Ok1vZGU6OkRpc2FibGVkKQorICAgIGlmICh0cmFjay5tb2RlKCkgPT0gVGV4dFRyYWNr
OjpNb2RlOjpEaXNhYmxlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVHJhY2tEaXNwbGF5VXBk
YXRlU2NvcGUgc2NvcGUodGhpcyk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjdWVzLT5s
ZW5ndGgoKTsgKytpKQotICAgICAgICB0ZXh0VHJhY2tBZGRDdWUodHJhY2ssICpjdWVzLT5pdGVt
KGkpKTsKKyAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSBzY29wZSB7ICp0aGlzIH07CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGN1ZXMubGVuZ3RoKCk7ICsraSkKKyAgICAgICAgdGV4
dFRyYWNrQWRkQ3VlKHRyYWNrLCAqY3Vlcy5pdGVtKGkpKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1
ZUxpc3QqIGN1ZXMpCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMo
VGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAgICBUcmFja0Rp
c3BsYXlVcGRhdGVTY29wZSBzY29wZSh0aGlzKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGN1ZXMtPmxlbmd0aCgpOyArK2kpCi0gICAgICAgIHRleHRUcmFja1JlbW92ZUN1ZShjdWVzLT5p
dGVtKGkpLT50cmFjaygpLCAqY3Vlcy0+aXRlbShpKSk7CisgICAgVHJhY2tEaXNwbGF5VXBkYXRl
U2NvcGUgc2NvcGUgeyAqdGhpcyB9OworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjdWVz
Lmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgYXV0byYgY3VlID0gKmN1ZXMuaXRlbShpKTsKKyAg
ICAgICAgdGV4dFRyYWNrUmVtb3ZlQ3VlKCpjdWUudHJhY2soKSwgY3VlKTsKKyAgICB9CiB9CiAK
LXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayogdHJhY2ss
IFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRD
dWUoVGV4dFRyYWNrJiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCiB7Ci0gICAgaWYgKHRyYWNr
LT5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCkKKyAgICBpZiAodHJhY2subW9k
ZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAogICAg
IC8vIE5lZ2F0aXZlIGR1cmF0aW9uIGN1ZXMgbmVlZCBiZSB0cmVhdGVkIGluIHRoZSBpbnRlcnZh
bCB0cmVlIGFzCkBAIC0xOTE5LDcgKzE5MTksNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRl
eHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKICAgICB1
cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKGN1cnJlbnRNZWRpYVRpbWUoKSk7CiB9CiAKLXZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayosIFRleHRUcmFj
a0N1ZSYgY3VlKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4
dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJiBjdWUpCiB7CiAgICAgLy8gTmVnYXRpdmUgZHVyYXRpb24g
Y3VlcyBuZWVkIHRvIGJlIHRyZWF0ZWQgaW4gdGhlIGludGVydmFsIHRyZWUgYXMKICAgICAvLyB6
ZXJvLWxlbmd0aCBjdWVzLgpAQCAtMzIxMiw2ICszMjEyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjpwYXVzZUludGVybmFsKCkKIH0KIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6ZGV0YWNoTWVkaWFTb3VyY2UoKQogewogICAgIGlmICghbV9t
ZWRpYVNvdXJjZSkKQEAgLTMyMjAsNiArMzIyMSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
ZGV0YWNoTWVkaWFTb3VyY2UoKQogICAgIG1fbWVkaWFTb3VyY2UtPmRldGFjaEZyb21FbGVtZW50
KCp0aGlzKTsKICAgICBtX21lZGlhU291cmNlID0gbnVsbHB0cjsKIH0KKwogI2VuZGlmCiAKIGJv
b2wgSFRNTE1lZGlhRWxlbWVudDo6bG9vcCgpIGNvbnN0CkBAIC0zNTA4LDE0ICszNTEwLDE0IEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKEF1ZGlv
VHJhY2tQcml2YXRlJiB0cmFjaykKICAgICBpZiAoaXNQbGF5aW5nKCkgJiYgIW1fbWVkaWFTZXNz
aW9uLT5wbGF5YmFja1Blcm1pdHRlZCgqdGhpcykpCiAgICAgICAgIHBhdXNlSW50ZXJuYWwoKTsK
IAotICAgIGFkZEF1ZGlvVHJhY2soQXVkaW9UcmFjazo6Y3JlYXRlKHRoaXMsICZ0cmFjaykpOwor
ICAgIGFkZEF1ZGlvVHJhY2soQXVkaW9UcmFjazo6Y3JlYXRlKCp0aGlzLCB0cmFjaykpOwogfQog
CiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkQWRkVGV4dFRyYWNrKEluYmFu
ZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrKQogewogICAgIC8vIDQuOC4xMC4xMi4yIFNvdXJjaW5n
IGluLWJhbmQgdGV4dCB0cmFja3MKICAgICAvLyAxLiBBc3NvY2lhdGUgdGhlIHJlbGV2YW50IGRh
dGEgd2l0aCBhIG5ldyB0ZXh0IHRyYWNrIGFuZCBpdHMgY29ycmVzcG9uZGluZyBuZXcgVGV4dFRy
YWNrIG9iamVjdC4KLSAgICBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrPiB0ZXh0VHJhY2sgPSBJbmJh
bmRUZXh0VHJhY2s6OmNyZWF0ZShBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgdGhpcywgJnRyYWNrKTsKKyAgICBhdXRvIHRleHRUcmFjayA9IEluYmFuZFRleHRUcmFj
azo6Y3JlYXRlKCpBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRo
aXMsIHRyYWNrKTsKICAgICB0ZXh0VHJhY2stPnNldE1lZGlhRWxlbWVudCh0aGlzKTsKICAgICAK
ICAgICAvLyAyLiBTZXQgdGhlIG5ldyB0ZXh0IHRyYWNrJ3Mga2luZCwgbGFiZWwsIGFuZCBsYW5n
dWFnZSBiYXNlZCBvbiB0aGUgc2VtYW50aWNzIG9mIHRoZSByZWxldmFudCBkYXRhLApAQCAtMzU0
MSwxMiArMzU0MywxMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkQWRk
VGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrKQogICAgIC8vIDkuIEZpcmUg
YW4gZXZlbnQgd2l0aCB0aGUgbmFtZSBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5k
IGlzIG5vdCBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50CiAgICAgLy8g
aW50ZXJmYWNlLCB3aXRoIHRoZSB0cmFjayBhdHRyaWJ1dGUgaW5pdGlhbGl6ZWQgdG8gdGhlIHRl
eHQgdHJhY2sncyBUZXh0VHJhY2sgb2JqZWN0LCBhdCB0aGUgbWVkaWEgZWxlbWVudCdzCiAgICAg
Ly8gdGV4dFRyYWNrcyBhdHRyaWJ1dGUncyBUZXh0VHJhY2tMaXN0IG9iamVjdC4KLSAgICBhZGRU
ZXh0VHJhY2sodGV4dFRyYWNrLnJlbGVhc2VOb25OdWxsKCkpOworICAgIGFkZFRleHRUcmFjayhX
VEZNb3ZlKHRleHRUcmFjaykpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxh
eWVyRGlkQWRkVmlkZW9UcmFjayhWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2spCiB7Ci0gICAgYWRk
VmlkZW9UcmFjayhWaWRlb1RyYWNrOjpjcmVhdGUodGhpcywgJnRyYWNrKSk7CisgICAgYWRkVmlk
ZW9UcmFjayhWaWRlb1RyYWNrOjpjcmVhdGUoKnRoaXMsIHRyYWNrKSk7CiB9CiAKIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRSZW1vdmVBdWRpb1RyYWNrKEF1ZGlvVHJhY2tQ
cml2YXRlJiB0cmFjaykKQEAgLTM2MDMsOSArMzYwNSw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6cmVtb3ZlQXVkaW9UcmFjayhBdWRpb1RyYWNrJiB0cmFjaykKIAogdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpyZW1vdmVUZXh0VHJhY2soVGV4dFRyYWNrJiB0cmFjaywgYm9vbCBzY2hlZHVsZUV2
ZW50KQogewotICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlKHRoaXMpOwotICAgIGlm
IChUZXh0VHJhY2tDdWVMaXN0KiBjdWVzID0gdHJhY2suY3VlcygpKQotICAgICAgICB0ZXh0VHJh
Y2tSZW1vdmVDdWVzKCZ0cmFjaywgY3Vlcyk7CisgICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUg
c2NvcGUgeyAqdGhpcyB9OworICAgIGlmIChhdXRvKiBjdWVzID0gdHJhY2suY3VlcygpKQorICAg
ICAgICB0ZXh0VHJhY2tSZW1vdmVDdWVzKHRyYWNrLCAqY3Vlcyk7CiAgICAgdHJhY2suY2xlYXJD
bGllbnQoKTsKICAgICBpZiAobV90ZXh0VHJhY2tzKQogICAgICAgICBtX3RleHRUcmFja3MtPnJl
bW92ZSh0cmFjaywgc2NoZWR1bGVFdmVudCk7CkBAIC0zNjI1LDcgKzM2MjcsNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OmZvcmdldFJlc291cmNlU3BlY2lmaWNUcmFja3MoKQogICAgICAgICBy
ZW1vdmVBdWRpb1RyYWNrKCptX2F1ZGlvVHJhY2tzLT5sYXN0SXRlbSgpKTsKIAogICAgIGlmICht
X3RleHRUcmFja3MpIHsKLSAgICAgICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUodGhp
cyk7CisgICAgICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlIHsgKnRoaXMgfTsKICAg
ICAgICAgZm9yIChpbnQgaSA9IG1fdGV4dFRyYWNrcy0+bGVuZ3RoKCkgLSAxOyBpID49IDA7IC0t
aSkgewogICAgICAgICAgICAgYXV0byYgdHJhY2sgPSAqbV90ZXh0VHJhY2tzLT5pdGVtKGkpOwog
ICAgICAgICAgICAgaWYgKHRyYWNrLnRyYWNrVHlwZSgpID09IFRleHRUcmFjazo6SW5CYW5kKQpA
QCAtNjA3OCwxMiArNjA4MCwxMiBAQCBNZWRpYUNvbnRyb2xsZXIqIEhUTUxNZWRpYUVsZW1lbnQ6
OmNvbnRyb2xsZXIoKSBjb25zdAogICAgIHJldHVybiBtX21lZGlhQ29udHJvbGxlci5nZXQoKTsK
IH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyKFBhc3NSZWZQdHI8TWVk
aWFDb250cm9sbGVyPiBjb250cm9sbGVyKQordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250
cm9sbGVyKFJlZlB0cjxNZWRpYUNvbnRyb2xsZXI+JiYgY29udHJvbGxlcikKIHsKICAgICBpZiAo
bV9tZWRpYUNvbnRyb2xsZXIpCiAgICAgICAgIG1fbWVkaWFDb250cm9sbGVyLT5yZW1vdmVNZWRp
YUVsZW1lbnQoKnRoaXMpOwogCi0gICAgbV9tZWRpYUNvbnRyb2xsZXIgPSBjb250cm9sbGVyOwor
ICAgIG1fbWVkaWFDb250cm9sbGVyID0gV1RGTW92ZShjb250cm9sbGVyKTsKIAogICAgIGlmICht
X21lZGlhQ29udHJvbGxlcikKICAgICAgICAgbV9tZWRpYUNvbnRyb2xsZXItPmFkZE1lZGlhRWxl
bWVudCgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDAy
M2NjMzM2MjgzM2ZhODA2MTk5YTQxMzAzYWZmMTkwNWNiZjY1ZGYuLmNhMTg5OGQ2ZTZlMjIxYTFh
YzE1MzVhOTc5MGE1MjFjYzI5YTJlMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNy0yMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjcsMTAgKzI3LDEwIEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNs
dWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1
ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5oIgor
I2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudEVudW1z
LmgiCiAjaW5jbHVkZSAiTWVkaWFDYW5TdGFydExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiTWVkaWFD
b250cm9sbGVySW50ZXJmYWNlLmgiCkBAIC02OSw5ICs2OSw3IEBAIGNsYXNzIE1lZGlhQ29udHJv
bHM7CiBjbGFzcyBNZWRpYUNvbnRyb2xzSG9zdDsKIGNsYXNzIE1lZGlhRWxlbWVudEF1ZGlvU291
cmNlTm9kZTsKIGNsYXNzIE1lZGlhRXJyb3I7Ci0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkK
IGNsYXNzIE1lZGlhS2V5czsKLSNlbmRpZgogY2xhc3MgTWVkaWFQbGF5ZXI7CiBjbGFzcyBNZWRp
YVNlc3Npb247CiBjbGFzcyBNZWRpYVNvdXJjZTsKQEAgLTgxLDcgKzc5LDYgQEAgY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFNvdXJjZUJ1ZmZlcjsKIGNsYXNzIFRleHRUcmFj
a0xpc3Q7CiBjbGFzcyBUaW1lUmFuZ2VzOwotY2xhc3MgVVJMOwogY2xhc3MgVmlkZW9QbGF5YmFj
a1F1YWxpdHk7CiBjbGFzcyBWaWRlb1RyYWNrTGlzdDsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRl
OwpAQCAtMzMxLDIwICszMjgsMjAgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlVGV4dFRyYWNr
RGlzcGxheSgpOwogCiAgICAgLy8gQXVkaW9UcmFja0NsaWVudAotICAgIHZvaWQgYXVkaW9UcmFj
a0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2sqKSBvdmVycmlkZTsKKyAgICB2b2lkIGF1ZGlvVHJh
Y2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrJikgZmluYWw7CiAKICAgICB2b2lkIHRleHRUcmFj
a1JlYWR5U3RhdGVDaGFuZ2VkKFRleHRUcmFjayopOwogCiAgICAgLy8gVGV4dFRyYWNrQ2xpZW50
Ci0gICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2sqKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayopIG92ZXJyaWRlOwotICAgIHZv
aWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0Kikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayosIGNvbnN0
IFRleHRUcmFja0N1ZUxpc3QqKSBvdmVycmlkZTsKLSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZShU
ZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlkZTsKLSAgICB2b2lkIHRleHRUcmFja1Jl
bW92ZUN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRl
eHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayYpIG92ZXJyaWRlOworICAgIHZvaWQgdGV4dFRy
YWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrJikgb3ZlcnJpZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tB
ZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3Vl
TGlzdCYpIG92ZXJyaWRlOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYsIFRl
eHRUcmFja0N1ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRU
cmFjayYsIFRleHRUcmFja0N1ZSYpIG92ZXJyaWRlOwogCiAgICAgLy8gVmlkZW9UcmFja0NsaWVu
dAotICAgIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrKikgb3ZlcnJp
ZGU7CisgICAgdm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2smKSBmaW5h
bDsKIAogICAgIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0Owog
ICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24qKTsKQEAgLTQyMiw3ICs0MTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNZWRpYUdyb3Vw
KGNvbnN0IFN0cmluZyYpOwogCiAgICAgTWVkaWFDb250cm9sbGVyKiBjb250cm9sbGVyKCkgY29u
c3Q7Ci0gICAgdm9pZCBzZXRDb250cm9sbGVyKFBhc3NSZWZQdHI8TWVkaWFDb250cm9sbGVyPik7
CisgICAgdm9pZCBzZXRDb250cm9sbGVyKFJlZlB0cjxNZWRpYUNvbnRyb2xsZXI+JiYpOwogCiAg
ICAgdm9pZCBlbnRlcmVkT3JFeGl0ZWRGdWxsc2NyZWVuKCkgeyBjb25maWd1cmVNZWRpYUNvbnRy
b2xzKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAppbmRl
eCA4OTBhYTZhZThjOTdmNTFkODFlYzc2Yzg3NjhiN2MzNjAzNTJhYzkyLi41M2NkY2Q2NTUzY2Ew
YjE1MDBmY2VmMDlmZmVjYjA5NWVjNGEzZDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
YmplY3RFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBM
YXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtv
aXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAwIFN0ZWZhbiBT
Y2hpbWFuc2tpICgxU3RlaW5AZ214LmRlKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC01MTksMTEgKzUxOSw2IEBAIGJvb2wg
SFRNTE9iamVjdEVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYgZW5jb2Rpbmcs
IGJvb2wpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTE9iamVj
dEVsZW1lbnQ6OnZpcnR1YWxGb3JtKCkgY29uc3QKLXsKLSAgICByZXR1cm4gRm9ybUFzc29jaWF0
ZWRFbGVtZW50Ojpmb3JtKCk7Ci19Ci0KIGJvb2wgSFRNTE9iamVjdEVsZW1lbnQ6OmNhbkNvbnRh
aW5SYW5nZUVuZFBvaW50KCkgY29uc3QKIHsKICAgICAvLyBDYWxsIHRocm91Z2ggdG8gSFRNTEVs
ZW1lbnQgYmVjYXVzZSB3ZSBuZWVkIHRvIHNraXAgSFRNTFBsdWdJbkVsZW1lbnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAppbmRleCBlM2M1NWU0ZjA1NTFlNmM2ZjU5ZGY0
Nzc1NzhmZjk2ODIyZGFmZWQ5Li45ZWE4OTNiMDFkNGMwMjZlZTE1N2EyMzhhYjU2NzE0YTU0OTdl
NjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCkBAIC0xLDcgKzEs
NyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3Jn
KQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3Jn
KQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNTQsNyAr
NTQsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cmVmOwog
ICAgIHVzaW5nIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmRlcmVmOwogCi0gICAgdXNpbmcgRm9y
bUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtOworICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybSgpOyB9CiAKIHBy
aXZhdGU6CiAgICAgSFRNTE9iamVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50JiwgSFRNTEZvcm1FbGVtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwpAQCAtOTEsNyAr
OTEsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKSBm
aW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJlZkZvcm1Bc3NvY2lhdGVkRWxlbWVudCgpIGZp
bmFsIHsgZGVyZWYoKTsgfQotICAgIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25z
dCBmaW5hbDsKIAogICAgIEZvcm1OYW1lZEl0ZW0qIGFzRm9ybU5hbWVkSXRlbSgpIGZpbmFsIHsg
cmV0dXJuIHRoaXM7IH0KICAgICBIVE1MT2JqZWN0RWxlbWVudCYgYXNIVE1MRWxlbWVudCgpIGZp
bmFsIHsgcmV0dXJuICp0aGlzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPcHRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1l
bnQuY3BwCmluZGV4IDlhMzA1ZmYxZjcyNjAyMmI1ZjNmNzIwMzI3OGMwNjZiZDQxZjU5ZmQuLjhm
YmU1MWVkYjE3N2EwYzI3MTNiNjAxY2U4MzY4MGNlMmVmZWRkNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBAIC0zLDcgKzMsNyBAQAogICogICAgICAgICAg
IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAg
IChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQogICogICAgICAgICAgIChD
KSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKLSAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiwgMjAxMCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC0zMzQsNyArMzM0LDcgQEAgU3RyaW5nIEhUTUxP
cHRpb25FbGVtZW50Ojpjb2xsZWN0T3B0aW9uSW5uZXJUZXh0KCkgY29uc3QKICAgICAgICAgaWYg
KGlzPFRleHQ+KCpub2RlKSkKICAgICAgICAgICAgIHRleHQuYXBwZW5kKG5vZGUtPm5vZGVWYWx1
ZSgpKTsKICAgICAgICAgLy8gVGV4dCBub2RlcyBpbnNpZGUgc2NyaXB0IGVsZW1lbnRzIGFyZSBu
b3QgcGFydCBvZiB0aGUgb3B0aW9uIHRleHQuCi0gICAgICAgIGlmIChpczxFbGVtZW50Pigqbm9k
ZSkgJiYgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShkb3duY2FzdDxFbGVtZW50Pihub2RlKSkp
CisgICAgICAgIGlmIChpczxFbGVtZW50Pigqbm9kZSkgJiYgaXNTY3JpcHRFbGVtZW50KGRvd25j
YXN0PEVsZW1lbnQ+KCpub2RlKSkpCiAgICAgICAgICAgICBub2RlID0gTm9kZVRyYXZlcnNhbDo6
bmV4dFNraXBwaW5nQ2hpbGRyZW4oKm5vZGUsIHRoaXMpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBub2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbm9kZSwgdGhpcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IGE4NjRlODdlYWZkNDI4M2U1NGYx
ZTQwYmZlY2Y5MjI1YTVjYjVkZDYuLmNlNmQzYjY4ZjI2MmNjMmMzMjYyNTUyNTIzMDM0ZmY3MWU2
MDQzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC0x
LDggKzEsOCBAQAotLyoqCisvKgogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtu
b2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZp
c3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgU3RlZmFuIFNjaGltYW5za2kgKDFT
dGVpbkBnbXguZGUpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMTQgQXBw
bGUgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMDgsMjEgKzEwOCwyMCBAQCB2b2lk
IEhUTUxQbHVnSW5FbGVtZW50OjpyZXNldEluc3RhbmNlKCkKICAgICBtX2luc3RhbmNlID0gbnVs
bHB0cjsKIH0KIAotUGFzc1JlZlB0cjxKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZT4gSFRNTFBsdWdJ
bkVsZW1lbnQ6OmdldEluc3RhbmNlKCkKK0pTQzo6QmluZGluZ3M6Okluc3RhbmNlKiBIVE1MUGx1
Z0luRWxlbWVudDo6YmluZGluZ3NJbnN0YW5jZSgpCiB7Ci0gICAgRnJhbWUqIGZyYW1lID0gZG9j
dW1lbnQoKS5mcmFtZSgpOworICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwog
ICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIC8vIElmIHRoZSBob3N0IGR5bmFtaWNhbGx5IHR1cm5zIG9mZiBKYXZhU2NyaXB0
IChvciBKYXZhKSB3ZSB3aWxsIHN0aWxsIHJldHVybgogICAgIC8vIHRoZSBjYWNoZWQgYWxsb2Nh
dGVkIEJpbmRpbmdzOjpJbnN0YW5jZS4gIE5vdCBzdXBwb3J0aW5nIHRoaXMgZWRnZS1jYXNlIGlz
IE9LLgotICAgIGlmIChtX2luc3RhbmNlKQotICAgICAgICByZXR1cm4gbV9pbnN0YW5jZTsKLQot
ICAgIGlmIChXaWRnZXQqIHdpZGdldCA9IHBsdWdpbldpZGdldCgpKQotICAgICAgICBtX2luc3Rh
bmNlID0gZnJhbWUtPnNjcmlwdCgpLmNyZWF0ZVNjcmlwdEluc3RhbmNlRm9yV2lkZ2V0KHdpZGdl
dCk7CiAKLSAgICByZXR1cm4gbV9pbnN0YW5jZTsKKyAgICBpZiAoIW1faW5zdGFuY2UpIHsKKyAg
ICAgICAgaWYgKGF1dG8qIHdpZGdldCA9IHBsdWdpbldpZGdldCgpKQorICAgICAgICAgICAgbV9p
bnN0YW5jZSA9IGZyYW1lLT5zY3JpcHQoKS5jcmVhdGVTY3JpcHRJbnN0YW5jZUZvcldpZGdldCh3
aWRnZXQpOworICAgIH0KKyAgICByZXR1cm4gbV9pbnN0YW5jZS5nZXQoKTsKIH0KIAogYm9vbCBI
VE1MUGx1Z0luRWxlbWVudDo6Z3VhcmRlZERpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KGNvbnN0IFN0
cmluZyYgc291cmNlVVJMKQpAQCAtMTk5LDcgKzE5OCw3IEBAIHZvaWQgSFRNTFBsdWdJbkVsZW1l
bnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKGlzPFJlbmRlclNuYXBzaG90dGVkUGx1Z0luPigqcmVuZGVyZXIpICYmIGRpc3BsYXlT
dGF0ZSgpIDwgUmVzdGFydGluZykgewotICAgICAgICAgICAgZG93bmNhc3Q8UmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW4+KCpyZW5kZXJlcikuaGFuZGxlRXZlbnQoJmV2ZW50KTsKKyAgICAgICAgICAg
IGRvd25jYXN0PFJlbmRlclNuYXBzaG90dGVkUGx1Z0luPigqcmVuZGVyZXIpLmhhbmRsZUV2ZW50
KGV2ZW50KTsKICAgICAgICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6ZGVmYXVsdEV2ZW50
SGFuZGxlcihldmVudCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAppbmRleCA1YjhjNWFkNDI4MmFiZjk1YTA1MjYy
OGIyOGZlOWQ0MDFhOWM3NzgzLi44OTI3MWM0OGIzZGIwZDdiYzI5YjViZTk1NWU1ZWQ0YjBlY2I4
YTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCkBAIC0xLDcgKzEs
NyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3Jn
KQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3Jn
KQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
NDQsNyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0SW5zdGFuY2UoKTsKIAotICAg
IFBhc3NSZWZQdHI8SlNDOjpCaW5kaW5nczo6SW5zdGFuY2U+IGdldEluc3RhbmNlKCk7CisgICAg
SlNDOjpCaW5kaW5nczo6SW5zdGFuY2UqIGJpbmRpbmdzSW5zdGFuY2UoKTsKIAogICAgIGVudW0g
Y2xhc3MgUGx1Z2luTG9hZGluZ1BvbGljeSB7IERvTm90TG9hZCwgTG9hZCB9OwogICAgIFdFQkNP
UkVfRVhQT1JUIFdpZGdldCogcGx1Z2luV2lkZ2V0KFBsdWdpbkxvYWRpbmdQb2xpY3kgPSBQbHVn
aW5Mb2FkaW5nUG9saWN5OjpMb2FkKSBjb25zdDsKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgog
ICAgIH07CiAgICAgRGlzcGxheVN0YXRlIGRpc3BsYXlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGlzcGxheVN0YXRlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldERpc3BsYXlTdGF0ZShEaXNwbGF5
U3RhdGUpOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdl
PikgeyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNuYXBzaG90KEltYWdlKikgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoUGVuZGluZ01vdXNlQ2xpY2soKSB7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNSZXN0YXJ0ZWRQbHVnaW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAppbmRleCBmYTIz
NDdiNjBhOTYyYjYwNWUzZTc5ODY1MGMxMzFhOGIyYjI1YTg4Li4yYTc2MjhhMmNjZDZkMmQyMjRm
NDhkYTM0N2I3YzkxNzJjNWQ3ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA4LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA4LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC0xNzEsNyArMTcxLDcgQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhU
TUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHkKIAog
ICAgIGlmIChkaXNwbGF5U3RhdGUoKSA9PSBEaXNwbGF5aW5nU25hcHNob3QpIHsKICAgICAgICAg
YXV0byByZW5kZXJTbmFwc2hvdHRlZFBsdWdJbiA9IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNuYXBz
aG90dGVkUGx1Z0luPigqdGhpcywgV1RGTW92ZShzdHlsZSkpOwotICAgICAgICByZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbi0+dXBkYXRlU25hcHNob3QobV9zbmFwc2hvdEltYWdlKTsKKyAgICAgICAg
cmVuZGVyU25hcHNob3R0ZWRQbHVnSW4tPnVwZGF0ZVNuYXBzaG90KG1fc25hcHNob3RJbWFnZS5n
ZXQoKSk7CiAgICAgICAgIHJldHVybiBXVEZNb3ZlKHJlbmRlclNuYXBzaG90dGVkUGx1Z0luKTsK
ICAgICB9CiAKQEAgLTMwMSw3ICszMDEsNyBAQCB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6
OnN0YXJ0TG9hZGluZ0ltYWdlKCkKICAgICBtX2ltYWdlTG9hZGVyLT51cGRhdGVGcm9tRWxlbWVu
dCgpOwogfQogCi12b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnVwZGF0ZVNuYXBzaG90KFBh
c3NSZWZQdHI8SW1hZ2U+IGltYWdlKQordm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRh
dGVTbmFwc2hvdChJbWFnZSogaW1hZ2UpCiB7CiAgICAgaWYgKGRpc3BsYXlTdGF0ZSgpID4gRGlz
cGxheWluZ1NuYXBzaG90KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCmluZGV4IGEzZjdlMTA4Y2Y5MmUwNWE5YmI4ZGE0ZGE2
OTJhZjQwMGZkMDZhNDYuLmIxYzc2MjZhM2M0ZTk0YzljZGQwOGQ4ZmZhMmRhMWMzNGYzNWZiNzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTE4LDcgKzExOCw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JikgZmluYWw7
CiAgICAgdm9pZCBkaXNwYXRjaFBlbmRpbmdNb3VzZUNsaWNrKCkgZmluYWw7CiAKLSAgICB2b2lk
IHVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+KSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0
ZVNuYXBzaG90KEltYWdlKikgZmluYWw7CiAKICAgICB2b2lkIHN0YXJ0TG9hZGluZ0ltYWdlKCk7
CiAgICAgdm9pZCB1cGRhdGVXaWRnZXRJZk5lY2Vzc2FyeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTY3JpcHRFbGVtZW50LmNwcAppbmRleCBlZGMyN2I5YTUwMDM5Y2VjMzAxYjZiOGY1Y2My
YmFhMzRmMzgzYzAyLi43YTJiODJkZWM0NGViZDg4YjU2NjE1ZjQ2NTZlZTdmYTU1ODJhN2EzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcg
QEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICog
ICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICog
ICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29w
eXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IGYyYmQ1MjVjNzRkZGQzZDdiOGExZmMxZTk2
OTI1MmU4NjNjZGY1NzUuLjMyZDhlZTAzODRjMjE1ZjhjMWI1YzQ5OTdjYzg2ODE4NWJmZjE4MTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTEsNyArMSw3IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAg
KiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTcgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IE5pa29sYXMgWmlt
bWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTQzLDYgKzQzLDkg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q3Jvc3NPcmlnaW4oY29uc3Qg
QXRvbWljU3RyaW5nJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNyb3NzT3JpZ2luKCkg
Y29uc3Q7CiAKKyAgICB1c2luZyBIVE1MRWxlbWVudDo6cmVmOworICAgIHVzaW5nIEhUTUxFbGVt
ZW50OjpkZXJlZjsKKwogcHJpdmF0ZToKICAgICBIVE1MU2NyaXB0RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJvb2wgYWxy
ZWFkeVN0YXJ0ZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDdkYjkxNGY3MDZiM2E2ZmFmOTQzNGE4ZjI0ZWUxMjE4
MTVhNzRkZjIuLmE5YTUzNzRjYzZhNGIxMmE3MGYyYjk4NDYzYjlmOWY4OGM2OTg5NDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
CkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xs
QGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3Rv
QGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtk
ZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA2IEFs
ZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00MjcsNyAr
NDI3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldENvbnRhaW5lckFuZE9mZnNldEZvclJhbmdl
KE5vZGUqIG5vZGUsIGludCBvZmZzZXQsIE5vZGUqJgogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxS
YW5nZT4gSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvbigpIGNvbnN0CitSZWZQ
dHI8UmFuZ2U+IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3Rpb24oKSBjb25zdAog
ewogICAgIGlmICghcmVuZGVyZXIoKSB8fCAhaXNUZXh0Rm9ybUNvbnRyb2woKSB8fCAhaGFzQ2Fj
aGVkU2VsZWN0aW9uKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4IDRhNjNlOTcxYWFi
MWZlYjVkMzQ2ZGM0MjIzMWI2YjEyNjZjMGI2M2YuLjEyOGIwMzE4YjA3ZTZmYjg0ODJlYTZkZGY0
ZTgzZDU2NmY4OGUzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50LmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkg
TGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBL
b2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11
ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAw
NiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC03NCw3ICs3NCw3IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFJhbmdl
VGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQg
ZW5kLCBjb25zdCBTdHJpbmcmIHNlbGVjdGlvbk1vZGUpOwogICAgIHZvaWQgc2V0U2VsZWN0aW9u
UmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgY29uc3Qg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3RhcnQsIGludCBl
bmQsIFRleHRGaWVsZFNlbGVjdGlvbkRpcmVjdGlvbiA9IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9u
LCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpKTsKLSAgICBQYXNzUmVmUHRyPFJhbmdlPiBzZWxlY3Rpb24oKSBjb25zdDsKKyAgICBSZWZQ
dHI8UmFuZ2U+IHNlbGVjdGlvbigpIGNvbnN0OwogICAgIFN0cmluZyBzZWxlY3RlZFRleHQoKSBj
b25zdDsKIAogICAgIHZvaWQgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCkgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAppbmRleCAwN2Y0MmQ5OWY4
ZDdiNDhhOWJhMjQxYjRjNDcxZDU3OWY1NWU4YmQ1Li42NjhiODEyYjhjZWY1MzE3NzMwOWZjNTgy
ZDhiOTQ2MTczZGFkMzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFj
a0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5j
cHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTQyLDYgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKIAogI2lmICFMT0dfRElTQUJMRUQKKwogc3RhdGljIFN0cmluZyB1cmxG
b3JMb2dnaW5nVHJhY2soY29uc3QgVVJMJiB1cmwpCiB7CiAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIG1heGltdW1VUkxMZW5ndGhGb3JMb2dnaW5nID0gMTI4OwpAQCAtNTAsNiArNTIsNyBAQCBz
dGF0aWMgU3RyaW5nIHVybEZvckxvZ2dpbmdUcmFjayhjb25zdCBVUkwmIHVybCkKICAgICAgICAg
cmV0dXJuIHVybC5zdHJpbmcoKTsKICAgICByZXR1cm4gdXJsLnN0cmluZygpLnN1YnN0cmluZygw
LCBtYXhpbXVtVVJMTGVuZ3RoRm9yTG9nZ2luZykgKyAiLi4uIjsKIH0KKwogI2VuZGlmCiAgICAg
CiBpbmxpbmUgSFRNTFRyYWNrRWxlbWVudDo6SFRNTFRyYWNrRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC0yNzksNDMgKzI4Miw0MyBA
QCBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxUcmFja0VsZW1lbnQ6Om1lZGlhRWxlbWVudENyb3Nz
T3JpZ2luQXR0cmlidXRlKCkgY29uc3QKICAgICByZXR1cm4gbnVsbEF0b207CiB9CiAKLXZvaWQg
SFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykK
K3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJiB0
cmFjaykKIHsKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50
KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJl
bnQtPnRleHRUcmFja0tpbmRDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBIVE1MVHJhY2tFbGVt
ZW50Ojp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQordm9pZCBIVE1MVHJh
Y2tFbGVtZW50Ojp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2smIHRyYWNrKQogewogICAg
IC8vIFNpbmNlIHdlJ3ZlIG1vdmVkIHRvIGEgbmV3IHBhcmVudCwgd2UgbWF5IG5vdyBiZSBhYmxl
IHRvIGxvYWQuCiAgICAgaWYgKHJlYWR5U3RhdGUoKSA9PSBIVE1MVHJhY2tFbGVtZW50OjpOT05F
KQogICAgICAgICBzY2hlZHVsZUxvYWQoKTsKIAotICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBw
YXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKKyAgICBpZiAoYXV0byogcGFyZW50ID0gbWVkaWFFbGVt
ZW50KCkpCiAgICAgICAgIHBhcmVudC0+dGV4dFRyYWNrTW9kZUNoYW5nZWQodHJhY2spOwogfQog
Ci12b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiB0cmFj
aywgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCogY3VlcykKK3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6
dGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smIHRyYWNrLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0
JiBjdWVzKQogewotICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBwYXJlbnQgPSBtZWRpYUVsZW1l
bnQoKSkKKyAgICBpZiAoYXV0byogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIHBh
cmVudC0+dGV4dFRyYWNrQWRkQ3Vlcyh0cmFjaywgY3Vlcyk7CiB9CiAgICAgCi12b2lkIEhUTUxU
cmFja0VsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrKiB0cmFjaywgY29uc3Qg
VGV4dFRyYWNrQ3VlTGlzdCogY3VlcykKK3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNr
UmVtb3ZlQ3VlcyhUZXh0VHJhY2smIHRyYWNrLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JiBjdWVz
KQogewotICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkK
KyAgICBpZiAoYXV0byogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIHBhcmVudC0+
dGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0cmFjaywgY3Vlcyk7CiB9CiAgICAgCi12b2lkIEhUTUxUcmFj
a0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWUm
IGN1ZSkKK3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYg
dHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogewotICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBw
YXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKKyAgICBpZiAoYXV0byogcGFyZW50ID0gbWVkaWFFbGVt
ZW50KCkpCiAgICAgICAgIHBhcmVudC0+dGV4dFRyYWNrQWRkQ3VlKHRyYWNrLCBjdWUpOwogfQog
ICAgIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNr
KiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRU
cmFja1JlbW92ZUN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKLSAg
ICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYg
KGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFj
a1JlbW92ZUN1ZSh0cmFjaywgY3VlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVHJhY2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0Vs
ZW1lbnQuaAppbmRleCA5YjQyNWRjZDg1ZDFlMGQ0ZjM2MGM4NmQyZWE2MmQxOTA4ZTRiN2IwLi4y
MjUxMDI3OWNkZjJiYmUyMTllNTIzYzE3OWY2MjZkMzNkZjc5MGIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUcmFja0VsZW1lbnQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzQsMTIgKzc1LDEyIEBAIHByaXZhdGU6CiAgICAgSFRN
TE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KCkgY29uc3Q7CiAKICAgICAvLyBUZXh0VHJhY2tD
bGllbnQKLSAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayopIGZpbmFsOwot
ICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrKikgZmluYWw7Ci0gICAgdm9p
ZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBm
aW5hbDsKLSAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4
dFRyYWNrQ3VlTGlzdCopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFj
ayosIFRleHRUcmFja0N1ZSYpIGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRl
eHRUcmFjayosIFRleHRUcmFja0N1ZSYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrTW9kZUNo
YW5nZWQoVGV4dFRyYWNrJikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChU
ZXh0VHJhY2smKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiwg
Y29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrUmVtb3Zl
Q3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JikgZmluYWw7CisgICAgdm9p
ZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgZmluYWw7CisgICAg
dm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgZmluYWw7
CiAKICAgICBib29sIGNhbkxvYWRVUkwoY29uc3QgVVJMJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmNwcAppbmRleCBmNmE2YmJjNDY0YjlhZmEzOGQ1N2I0ZDFlYzQ3Y2YzY2NhOTI2NmQ0Li4z
YTg2MWFkNjYwNDk1NDFkNjdhMTRjMmNlZmRkNGQxZTU2NTExMzM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuY3BwCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMg
S25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlz
dG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVy
IChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFr
b3YgKGFwQG55cG9wLmNvbSkKICAqIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIChz
YW1Ad2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCwgMjAxMSwgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNDgyLDExICs0ODIsNiBAQCBib29s
IElucHV0VHlwZTo6c2hvdWxkU3VibWl0SW1wbGljaXRseShFdmVudCYgZXZlbnQpCiAgICAgcmV0
dXJuIGlzPEtleWJvYXJkRXZlbnQ+KGV2ZW50KSAmJiBldmVudC50eXBlKCkgPT0gZXZlbnROYW1l
cygpLmtleXByZXNzRXZlbnQgJiYgZG93bmNhc3Q8S2V5Ym9hcmRFdmVudD4oZXZlbnQpLmNoYXJD
b2RlKCkgPT0gJ1xyJzsKIH0KIAotUGFzc1JlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IElucHV0VHlw
ZTo6Zm9ybUZvclN1Ym1pc3Npb24oKSBjb25zdAotewotICAgIHJldHVybiBlbGVtZW50KCkuZm9y
bSgpOwotfQotCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSW5wdXRUeXBlOjpjcmVhdGVJbnB1
dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUpCiB7CiAgICAgcmV0dXJuIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PihSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoZWxlbWVudCgpLCBXVEZNb3Zl
KHN0eWxlKSkpOwpAQCAtNTUxLDcgKzU0Niw3IEBAIENocm9tZSogSW5wdXRUeXBlOjpjaHJvbWUo
KSBjb25zdAogewogICAgIGlmIChQYWdlKiBwYWdlID0gZWxlbWVudCgpLmRvY3VtZW50KCkucGFn
ZSgpKQogICAgICAgICByZXR1cm4gJnBhZ2UtPmNocm9tZSgpOwotICAgIHJldHVybiAwOworICAg
IHJldHVybiBudWxscHRyOwogfQogCiBib29sIElucHV0VHlwZTo6Y2FuU2V0U3RyaW5nVmFsdWUo
KSBjb25zdApAQCAtNjM2LDcgKzYzMSw3IEBAIGJvb2wgSW5wdXRUeXBlOjpjYW5CZVN1Y2Nlc3Nm
dWxTdWJtaXRCdXR0b24oKQogCiBIVE1MRWxlbWVudCogSW5wdXRUeXBlOjpwbGFjZWhvbGRlckVs
ZW1lbnQoKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQog
CiBib29sIElucHV0VHlwZTo6cmVuZGVyZXJJc05lZWRlZCgpCkBAIC02NDYsMTAgKzY0MSwxMCBA
QCBib29sIElucHV0VHlwZTo6cmVuZGVyZXJJc05lZWRlZCgpCiAKIEZpbGVMaXN0KiBJbnB1dFR5
cGU6OmZpbGVzKCkKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAot
dm9pZCBJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KQordm9pZCBJbnB1
dFR5cGU6OnNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4mJikKIHsKIH0KIApAQCAtNzMxLDI1ICs3
MjYsMjkgQEAgU3RyaW5nIElucHV0VHlwZTo6c2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHBy
b3Bvc2VkVmFsdWUpIGNvbnN0CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorCiBib29s
IElucHV0VHlwZTo6cmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBEcmFnRGF0YSYpCiB7CiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCiAjZW5kaWYKIAog
SWNvbiogSW5wdXRUeXBlOjppY29uKCkgY29uc3QKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogI2lmIFBMQVRGT1JN
KElPUykKKwogU3RyaW5nIElucHV0VHlwZTo6ZGlzcGxheVN0cmluZygpIGNvbnN0CiB7CiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQorCiAjZW5kaWYK
IAogYm9vbCBJbnB1dFR5cGU6OnNob3VsZFJlc2V0T25Eb2N1bWVudEFjdGl2YXRpb24oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggYzRiZTczZDQwMDRkNjhkOTEzMGI5YWI5NDZhMTcwMGU3
MDMzZGUyNC4uOThjZmY4OWFhYjhiNTlhYjk1NmU0MzYwMjg1MWMwYTg0YzQ5YmNhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAy
MDExLCAyMDE0LTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CkBAIC0xOTIsNyArMTkyLDYgQEAgcHVibGljOgogICAgIC8vIEhl
bHBlcnMgZm9yIGV2ZW50IGhhbmRsZXJzLgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFN1Ym1p
dEltcGxpY2l0bHkoRXZlbnQmKTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SFRNTEZvcm1FbGVt
ZW50PiBmb3JtRm9yU3VibWlzc2lvbigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBoYXNDdXN0
b21Gb2N1c0xvZ2ljKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2Fi
bGUoS2V5Ym9hcmRFdmVudCYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNh
YmxlKCkgY29uc3Q7CkBAIC0yMzksNyArMjM4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBtYXhSZXN1bHRzQXR0cmlidXRlQ2hhbmdlZCgpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRS
ZXNwZWN0QWxpZ25BdHRyaWJ1dGUoKTsKICAgICB2aXJ0dWFsIEZpbGVMaXN0KiBmaWxlcygpOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0Pik7CisgICAgdmly
dHVhbCB2b2lkIHNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4mJik7CiAgICAgdmlydHVhbCBJY29u
KiBpY29uKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFNlbmRDaGFuZ2VFdmVudEFm
dGVyQ2hlY2tlZENoYW5nZWQoKTsKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0VmFsdWUoY29uc3Qg
U3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4IGYzNTFm
OTc5NTE1ZjVjZWM5YTQ5OTRlMGQ3NWQwMWRjNDIxODk2MDUuLmJiMzAwYjBmZmI5ZjNiYzdhNGFj
N2QyZWJhZTRjOTA1YWM2MGQ2ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1
Z2luRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQu
Y3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCwgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTUzLDE1ICs1MywxMyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFBs
dWdpbkRvY3VtZW50UGFyc2VyKERvY3VtZW50JiBkb2N1bWVudCkKICAgICAgICAgOiBSYXdEYXRh
RG9jdW1lbnRQYXJzZXIoZG9jdW1lbnQpCi0gICAgICAgICwgbV9lbWJlZEVsZW1lbnQoMCkKICAg
ICB7CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmRCeXRlcyhEb2N1bWVudFdyaXRlciYsIGNvbnN0
IGNoYXIqLCBzaXplX3QpIG92ZXJyaWRlOwotCisgICAgdm9pZCBhcHBlbmRCeXRlcyhEb2N1bWVu
dFdyaXRlciYsIGNvbnN0IGNoYXIqLCBzaXplX3QpIGZpbmFsOwogICAgIHZvaWQgY3JlYXRlRG9j
dW1lbnRTdHJ1Y3R1cmUoKTsKIAotICAgIEhUTUxFbWJlZEVsZW1lbnQqIG1fZW1iZWRFbGVtZW50
OworICAgIEhUTUxFbWJlZEVsZW1lbnQqIG1fZW1iZWRFbGVtZW50IHsgbnVsbHB0ciB9OwogfTsK
IAogdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQpA
QCAtMTA0LDcgKzEwMiw3IEBAIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3Vt
ZW50U3RydWN0dXJlKCkKICAgICBpZiAoYXV0byogbG9hZGVyID0gZG9jdW1lbnQubG9hZGVyKCkp
CiAgICAgICAgIG1fZW1iZWRFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKHR5cGVBdHRyLCBsb2FkZXItPndyaXRlcigpLm1pbWVUeXBlKCkpOwogCi0gICAgZG9jdW1l
bnQuc2V0UGx1Z2luRWxlbWVudChtX2VtYmVkRWxlbWVudCk7CisgICAgZG9jdW1lbnQuc2V0UGx1
Z2luRWxlbWVudCgqbV9lbWJlZEVsZW1lbnQpOwogCiAgICAgYm9keS0+YXBwZW5kQ2hpbGQoZW1i
ZWRFbGVtZW50KTsKIH0KQEAgLTExNiw3ICsxMTQsNyBAQCB2b2lkIFBsdWdpbkRvY3VtZW50UGFy
c2VyOjphcHBlbmRCeXRlcyhEb2N1bWVudFdyaXRlciYsIGNvbnN0IGNoYXIqLCBzaXplX3QpCiAK
ICAgICBjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpOwogCi0gICAgRnJhbWUqIGZyYW1lID0gZG9j
dW1lbnQoKS0+ZnJhbWUoKTsKKyAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7
CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNDIsNyArMTQwLDYgQEAg
dm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBj
b25zdCBjaGFyKiwgc2l6ZV90KQogCiBQbHVnaW5Eb2N1bWVudDo6UGx1Z2luRG9jdW1lbnQoRnJh
bWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKICAgICA6IEhUTUxEb2N1bWVudChmcmFtZSwgdXJs
LCBQbHVnaW5Eb2N1bWVudENsYXNzKQotICAgICwgbV9zaG91bGRMb2FkUGx1Z2luTWFudWFsbHko
dHJ1ZSkKIHsKICAgICBzZXRDb21wYXRpYmlsaXR5TW9kZShEb2N1bWVudENvbXBhdGliaWxpdHlN
b2RlOjpRdWlya3NNb2RlKTsKICAgICBsb2NrQ29tcGF0aWJpbGl0eU1vZGUoKTsKQEAgLTE1NSwx
NCArMTUyLDE3IEBAIFJlZjxEb2N1bWVudFBhcnNlcj4gUGx1Z2luRG9jdW1lbnQ6OmNyZWF0ZVBh
cnNlcigpCiAKIFdpZGdldCogUGx1Z2luRG9jdW1lbnQ6OnBsdWdpbldpZGdldCgpCiB7Ci0gICAg
aWYgKG1fcGx1Z2luRWxlbWVudCAmJiBtX3BsdWdpbkVsZW1lbnQtPnJlbmRlcmVyKCkpCi0gICAg
ICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJFbWJlZGRlZE9iamVjdD4oKm1fcGx1Z2luRWxlbWVu
dC0+cmVuZGVyZXIoKSkud2lkZ2V0KCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKCFt
X3BsdWdpbkVsZW1lbnQpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGF1dG8qIHJlbmRl
cmVyID0gbV9wbHVnaW5FbGVtZW50LT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyZXIpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJFbWJlZGRl
ZE9iamVjdD4oKm1fcGx1Z2luRWxlbWVudC0+cmVuZGVyZXIoKSkud2lkZ2V0KCk7CiB9CiAKLXZv
aWQgUGx1Z2luRG9jdW1lbnQ6OnNldFBsdWdpbkVsZW1lbnQoUGFzc1JlZlB0cjxIVE1MUGx1Z0lu
RWxlbWVudD4gZWxlbWVudCkKK3ZvaWQgUGx1Z2luRG9jdW1lbnQ6OnNldFBsdWdpbkVsZW1lbnQo
SFRNTFBsdWdJbkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9wbHVnaW5FbGVtZW50ID0gZWxl
bWVudDsKKyAgICBtX3BsdWdpbkVsZW1lbnQgPSAmZWxlbWVudDsKIH0KIAogdm9pZCBQbHVnaW5E
b2N1bWVudDo6ZGV0YWNoRnJvbVBsdWdpbkVsZW1lbnQoKQpAQCAtMTc5LDkgKzE3OSwxMCBAQCB2
b2lkIFBsdWdpbkRvY3VtZW50OjpjYW5jZWxNYW51YWxQbHVnaW5Mb2FkKCkKICAgICBpZiAoIXNo
b3VsZExvYWRQbHVnaW5NYW51YWxseSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBEb2N1bWVu
dExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZSgpLT5sb2FkZXIoKS5hY3RpdmVEb2N1bWVu
dExvYWRlcigpOwotICAgIGRvY3VtZW50TG9hZGVyLT5jYW5jZWxNYWluUmVzb3VyY2VMb2FkKGZy
YW1lKCktPmxvYWRlcigpLmNhbmNlbGxlZEVycm9yKGRvY3VtZW50TG9hZGVyLT5yZXF1ZXN0KCkp
KTsKLSAgICBzZXRTaG91bGRMb2FkUGx1Z2luTWFudWFsbHkoZmFsc2UpOworICAgIGF1dG8mIGZy
YW1lTG9hZGVyID0gZnJhbWUoKS0+bG9hZGVyKCk7CisgICAgYXV0byYgZG9jdW1lbnRMb2FkZXIg
PSAqZnJhbWVMb2FkZXIuYWN0aXZlRG9jdW1lbnRMb2FkZXIoKTsKKyAgICBkb2N1bWVudExvYWRl
ci5jYW5jZWxNYWluUmVzb3VyY2VMb2FkKGZyYW1lTG9hZGVyLmNhbmNlbGxlZEVycm9yKGRvY3Vt
ZW50TG9hZGVyLnJlcXVlc3QoKSkpOworICAgIG1fc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5ID0g
ZmFsc2U7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9j
dW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuaAppbmRleCAzY2Qw
NjEyNTUwZjZmOGZiZTk2Yzg5YjViNWZiNWU1NjE0M2M1ZjdlLi5iZDdlZDZjYTFhMDZlNWQ4OWYz
MmMyMmMwM2Q5NWIzNTY0YTg1YjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bs
dWdpbkRvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCwgMjAwOSwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDI2ICszOCwyMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFBsdWdpbkRvY3VtZW50KGZyYW1lLCB1cmwpKTsKICAgICB9CiAKLSAg
ICB2b2lkIHNldFBsdWdpbkVsZW1lbnQoUGFzc1JlZlB0cjxIVE1MUGx1Z0luRWxlbWVudD4pOwot
CiAgICAgV0VCQ09SRV9FWFBPUlQgV2lkZ2V0KiBwbHVnaW5XaWRnZXQoKTsKICAgICBIVE1MUGx1
Z0luRWxlbWVudCogcGx1Z2luRWxlbWVudCgpIHsgcmV0dXJuIG1fcGx1Z2luRWxlbWVudC5nZXQo
KTsgfQogCisgICAgdm9pZCBzZXRQbHVnaW5FbGVtZW50KEhUTUxQbHVnSW5FbGVtZW50Jik7CiAg
ICAgdm9pZCBkZXRhY2hGcm9tUGx1Z2luRWxlbWVudCgpOwogCiAgICAgdm9pZCBjYW5jZWxNYW51
YWxQbHVnaW5Mb2FkKCk7CiAKLSAgICBib29sIHNob3VsZExvYWRQbHVnaW5NYW51YWxseSgpIHsg
cmV0dXJuIG1fc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5OyB9CisgICAgYm9vbCBzaG91bGRMb2Fk
UGx1Z2luTWFudWFsbHkoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZExvYWRQbHVnaW5NYW51YWxs
eTsgfQogCiBwcml2YXRlOgogICAgIFBsdWdpbkRvY3VtZW50KEZyYW1lKiwgY29uc3QgVVJMJik7
CiAKLSAgICBSZWY8RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigpIG92ZXJyaWRlOwotCi0g
ICAgdm9pZCBzZXRTaG91bGRMb2FkUGx1Z2luTWFudWFsbHkoYm9vbCBsb2FkTWFudWFsbHkpIHsg
bV9zaG91bGRMb2FkUGx1Z2luTWFudWFsbHkgPSBsb2FkTWFudWFsbHk7IH0KKyAgICBSZWY8RG9j
dW1lbnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigpIGZpbmFsOwogCi0gICAgYm9vbCBtX3Nob3VsZExv
YWRQbHVnaW5NYW51YWxseTsKICAgICBSZWZQdHI8SFRNTFBsdWdJbkVsZW1lbnQ+IG1fcGx1Z2lu
RWxlbWVudDsKKyAgICBib29sIG1fc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5IHsgdHJ1ZSB9Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXggOTRlOGI0ZGNl
YzQ0ZmQ4ZmU2YWE5MjE0ZDU1ZDk1OWI1ODcxOWRlNS4uNzdmYTUxOGZmZDAzNjQ2YmI5ZTgyNGE3
MjBmYTE5YTMxYjFmNjU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwg
MjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgpAQCAt
MTcyLDcgKzE3Miw3IEBAIGJvb2wgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjppc0FjY2VsZXJh
dGVkKCkgY29uc3QKICNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKSB8fCBF
TkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgIGlmICghY2FudmFzKCkuaGFzQ3JlYXRl
ZEltYWdlQnVmZmVyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQgPSBkcmF3aW5nQ29udGV4dCgpOworICAgIGF1dG8qIGNvbnRleHQgPSBkcmF3
aW5nQ29udGV4dCgpOwogICAgIHJldHVybiBjb250ZXh0ICYmIGNvbnRleHQtPmlzQWNjZWxlcmF0
ZWRDb250ZXh0KCk7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKQEAgLTQxNyw3ICs0MTcsNyBA
QCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0U3Ryb2tlU3R5bGUoQ2FudmFzU3R5
bGUgc3R5bGUpCiAgICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAg
ICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKLSAgICBzdGF0ZS5zdHJva2VTdHlsZS5hcHBseVN0
cm9rZUNvbG9yKGMpOworICAgIHN0YXRlLnN0cm9rZVN0eWxlLmFwcGx5U3Ryb2tlQ29sb3IoKmMp
OwogICAgIHN0YXRlLnVucGFyc2VkU3Ryb2tlQ29sb3IgPSBTdHJpbmcoKTsKIH0KIApAQCAtNDQ0
LDcgKzQ0NCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRGaWxsU3R5bGUo
Q2FudmFzU3R5bGUgc3R5bGUpCiAgICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRl
eHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKLSAgICBzdGF0ZS5maWxsU3R5bGUu
YXBwbHlGaWxsQ29sb3IoYyk7CisgICAgc3RhdGUuZmlsbFN0eWxlLmFwcGx5RmlsbENvbG9yKCpj
KTsKICAgICBzdGF0ZS51bnBhcnNlZEZpbGxDb2xvciA9IFN0cmluZygpOwogfQogCkBAIC05MzAs
MTMgKzkzMCwxMyBAQCBzdGF0aWMgYm9vbCB2YWxpZGF0ZVJlY3RGb3JDYW52YXMoZmxvYXQmIHgs
IGZsb2F0JiB5LCBmbG9hdCYgd2lkdGgsIGZsb2F0JiBoZWlnaAogICAgIHJldHVybiB0cnVlOwog
fQogCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQotdm9pZCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OmNsZWFyUGF0aEZvckRhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUo
KQoraW5saW5lIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbGVhclBhdGhGb3JEYXNo
Ym9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKCkKIHsKKyNpZiBFTkFCTEUoREFTSEJPQVJE
X1NVUFBPUlQpCiAgICAgaWYgKG1fdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKQogICAg
ICAgICBtX3BhdGguY2xlYXIoKTsKLX0KICNlbmRpZgorfQogCiBzdGF0aWMgYm9vbCBpc0Z1bGxD
YW52YXNDb21wb3NpdGVNb2RlKENvbXBvc2l0ZU9wZXJhdG9yIG9wKQogewpAQCAtOTU0LDI4ICs5
NTQsMTkgQEAgc3RhdGljIFdpbmRSdWxlIHRvV2luZFJ1bGUoQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpXaW5kaW5nUnVsZSBydWxlKQogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZp
bGwoV2luZGluZ1J1bGUgd2luZGluZ1J1bGUpCiB7CiAgICAgZmlsbEludGVybmFsKG1fcGF0aCwg
d2luZGluZ1J1bGUpOwotCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIGNsZWFy
UGF0aEZvckRhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoKTsKLSNlbmRpZgogfQog
CiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlKCkKIHsKICAgICBzdHJva2VJ
bnRlcm5hbChtX3BhdGgpOwotCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIGNs
ZWFyUGF0aEZvckRhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoKTsKLSNlbmRpZgog
fQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y2xpcChXaW5kaW5nUnVsZSB3aW5k
aW5nUnVsZSkKIHsKICAgICBjbGlwSW50ZXJuYWwobV9wYXRoLCB3aW5kaW5nUnVsZSk7Ci0KLSNp
ZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgY2xlYXJQYXRoRm9yRGFzaGJvYXJkQmFj
a3dhcmRDb21wYXRpYmlsaXR5TW9kZSgpOwotI2VuZGlmCiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpmaWxsKERPTVBhdGgmIHBhdGgsIFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxl
KQpAQCAtOTk1LDE5ICs5ODYsMTkgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNs
aXAoRE9NUGF0aCYgcGF0aCwgV2luZGluZ1J1bGUgd2luZGluZ1J1bGUpCiAKIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpmaWxsSW50ZXJuYWwoY29uc3QgUGF0aCYgcGF0aCwgV2luZGlu
Z1J1bGUgd2luZGluZ1J1bGUpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0Nv
bnRleHQoKTsKKyAgICBhdXRvKiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAg
ICAgICAgIHJldHVybjsKICAgICBpZiAoIXN0YXRlKCkuaGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gSWYgZ3JhZGllbnQgc2l6ZSBpcyB6ZXJvLCB0aGVu
IHBhaW50IG5vdGhpbmcuCi0gICAgR3JhZGllbnQqIGdyYWRpZW50ID0gYy0+ZmlsbEdyYWRpZW50
KCk7CisgICAgYXV0byogZ3JhZGllbnQgPSBjLT5maWxsR3JhZGllbnQoKTsKICAgICBpZiAoZ3Jh
ZGllbnQgJiYgZ3JhZGllbnQtPmlzWmVyb1NpemUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aWYgKCFwYXRoLmlzRW1wdHkoKSkgewotICAgICAgICBXaW5kUnVsZSB3aW5kUnVsZSA9IGMtPmZp
bGxSdWxlKCk7CisgICAgICAgIGF1dG8gc2F2ZWRGaWxsUnVsZSA9IGMtPmZpbGxSdWxlKCk7CiAg
ICAgICAgIGMtPnNldEZpbGxSdWxlKHRvV2luZFJ1bGUod2luZGluZ1J1bGUpKTsKIAogICAgICAg
ICBpZiAoaXNGdWxsQ2FudmFzQ29tcG9zaXRlTW9kZShzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSkp
IHsKQEAgLTEwMjQsMjAgKzEwMTUsMjAgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OmZpbGxJbnRlcm5hbChjb25zdCBQYXRoJiBwYXRoLCBXaW5kaW5nUnVsZSB3aW5kaW4KICAgICAg
ICAgICAgIGRpZERyYXcocGF0aC5mYXN0Qm91bmRpbmdSZWN0KCkpOwogICAgICAgICB9CiAgICAg
ICAgIAotICAgICAgICBjLT5zZXRGaWxsUnVsZSh3aW5kUnVsZSk7CisgICAgICAgIGMtPnNldEZp
bGxSdWxlKHNhdmVkRmlsbFJ1bGUpOwogICAgIH0KIH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OnN0cm9rZUludGVybmFsKGNvbnN0IFBhdGgmIHBhdGgpCiB7Ci0gICAgR3JhcGhp
Y3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBjID0gZHJhd2luZ0Nv
bnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIXN0YXRlKCku
aGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gSWYgZ3Jh
ZGllbnQgc2l6ZSBpcyB6ZXJvLCB0aGVuIHBhaW50IG5vdGhpbmcuCi0gICAgR3JhZGllbnQqIGdy
YWRpZW50ID0gYy0+c3Ryb2tlR3JhZGllbnQoKTsKKyAgICBhdXRvKiBncmFkaWVudCA9IGMtPnN0
cm9rZUdyYWRpZW50KCk7CiAgICAgaWYgKGdyYWRpZW50ICYmIGdyYWRpZW50LT5pc1plcm9TaXpl
KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTA2Miw3ICsxMDUzLDcgQEAgdm9pZCBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ6OnN0cm9rZUludGVybmFsKGNvbnN0IFBhdGgmIHBhdGgpCiAKIHZv
aWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbGlwSW50ZXJuYWwoY29uc3QgUGF0aCYgcGF0
aCwgV2luZGluZ1J1bGUgd2luZGluZ1J1bGUpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0KiBjID0g
ZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBp
ZiAoIWMpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIXN0YXRlKCkuaGFzSW52ZXJ0aWJsZVRy
YW5zZm9ybSkKQEAgLTExMDgsMTMgKzEwOTksMTMgQEAgYm9vbCBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OmlzUG9pbnRJblN0cm9rZShET01QYXRoJiBwYXRoLCBmbG9hdCB4LCBmbG9hdCB5KQog
CiBib29sIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6aXNQb2ludEluUGF0aEludGVybmFsKGNv
bnN0IFBhdGgmIHBhdGgsIGZsb2F0IHgsIGZsb2F0IHksIFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxl
KQogewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0
byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIEZsb2F0UG9pbnQgdHJhbnNmb3JtZWRQb2ludCA9IHN0YXRlKCku
dHJhbnNmb3JtLmludmVyc2UoKS52YWx1ZV9vcihBZmZpbmVUcmFuc2Zvcm0oKSkubWFwUG9pbnQo
RmxvYXRQb2ludCh4LCB5KSk7CisgICAgYXV0byB0cmFuc2Zvcm1lZFBvaW50ID0gc3RhdGUoKS50
cmFuc2Zvcm0uaW52ZXJzZSgpLnZhbHVlX29yKEFmZmluZVRyYW5zZm9ybSgpKS5tYXBQb2ludChG
bG9hdFBvaW50KHgsIHkpKTsKIAogICAgIGlmICghc3RkOjppc2Zpbml0ZSh0cmFuc2Zvcm1lZFBv
aW50LngoKSkgfHwgIXN0ZDo6aXNmaW5pdGUodHJhbnNmb3JtZWRQb2ludC55KCkpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0xMTI0LDEzICsxMTE1LDEzIEBAIGJvb2wgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjppc1BvaW50SW5QYXRoSW50ZXJuYWwoY29uc3QgUGF0aCYgcGF0aCwgZmxv
YXQgeCwKIAogYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmlzUG9pbnRJblN0cm9rZUlu
dGVybmFsKGNvbnN0IFBhdGgmIHBhdGgsIGZsb2F0IHgsIGZsb2F0IHkpCiB7Ci0gICAgR3JhcGhp
Y3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBjID0gZHJhd2luZ0Nv
bnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIXN0
YXRlKCkuaGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgRmxvYXRQb2ludCB0cmFuc2Zvcm1lZFBvaW50ID0gc3RhdGUoKS50cmFuc2Zvcm0uaW52ZXJz
ZSgpLnZhbHVlX29yKEFmZmluZVRyYW5zZm9ybSgpKS5tYXBQb2ludChGbG9hdFBvaW50KHgsIHkp
KTsKKyAgICBhdXRvIHRyYW5zZm9ybWVkUG9pbnQgPSBzdGF0ZSgpLnRyYW5zZm9ybS5pbnZlcnNl
KCkudmFsdWVfb3IoQWZmaW5lVHJhbnNmb3JtKCkpLm1hcFBvaW50KEZsb2F0UG9pbnQoeCwgeSkp
OwogICAgIGlmICghc3RkOjppc2Zpbml0ZSh0cmFuc2Zvcm1lZFBvaW50LngoKSkgfHwgIXN0ZDo6
aXNmaW5pdGUodHJhbnNmb3JtZWRQb2ludC55KCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
QEAgLTExNDIsNyArMTEzMyw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbGVh
clJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlCiB7CiAgICAgaWYg
KCF2YWxpZGF0ZVJlY3RGb3JDYW52YXMoeCwgeSwgd2lkdGgsIGhlaWdodCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBkcmF3aW5nQ29udGV4dCgpOwor
ICAgIGF1dG8qIGNvbnRleHQgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghY29udGV4dCkK
ICAgICAgICAgcmV0dXJuOwogICAgIGlmICghc3RhdGUoKS5oYXNJbnZlcnRpYmxlVHJhbnNmb3Jt
KQpAQCAtMTE4MCw3ICsxMTcxLDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZp
bGxSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWkKICAgICBpZiAo
IXZhbGlkYXRlUmVjdEZvckNhbnZhcyh4LCB5LCB3aWR0aCwgaGVpZ2h0KSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBh
dXRvKiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsK
ICAgICBpZiAoIXN0YXRlKCkuaGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkKQEAgLTExODksNyArMTE4
MCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmaWxsUmVjdChmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpCiAgICAgLy8gZnJvbSB0aGUgSFRNTDUgQ2Fu
dmFzIHNwZWM6CiAgICAgLy8gSWYgeDAgPSB4MSBhbmQgeTAgPSB5MSwgdGhlbiB0aGUgbGluZWFy
IGdyYWRpZW50IG11c3QgcGFpbnQgbm90aGluZwogICAgIC8vIElmIHgwID0geDEgYW5kIHkwID0g
eTEgYW5kIHIwID0gcjEsIHRoZW4gdGhlIHJhZGlhbCBncmFkaWVudCBtdXN0IHBhaW50IG5vdGhp
bmcKLSAgICBHcmFkaWVudCogZ3JhZGllbnQgPSBjLT5maWxsR3JhZGllbnQoKTsKKyAgICBhdXRv
KiBncmFkaWVudCA9IGMtPmZpbGxHcmFkaWVudCgpOwogICAgIGlmIChncmFkaWVudCAmJiBncmFk
aWVudC0+aXNaZXJvU2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTEyMTgsNyArMTIwOSw3
IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzdHJva2VSZWN0KGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoCiAgICAgaWYgKCF2YWxpZGF0ZVJlY3RGb3JDYW52
YXMoeCwgeSwgd2lkdGgsIGhlaWdodCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEdyYXBoaWNz
Q29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250
ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhh
c0ludmVydGlibGVUcmFuc2Zvcm0pCkBAIC0xMjI3LDcgKzEyMTgsNyBAQCB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0
aCwgZmxvYXQgaAogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZiBncmFkaWVudCBzaXplIGlz
IHplcm8sIHRoZW4gcGFpbnQgbm90aGluZy4KLSAgICBHcmFkaWVudCogZ3JhZGllbnQgPSBjLT5z
dHJva2VHcmFkaWVudCgpOworICAgIGF1dG8qIGdyYWRpZW50ID0gYy0+c3Ryb2tlR3JhZGllbnQo
KTsKICAgICBpZiAoZ3JhZGllbnQgJiYgZ3JhZGllbnQtPmlzWmVyb1NpemUoKSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC0xMjUxLDExICsxMjQyLDEyIEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjpzdHJva2VSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBo
CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRTaGFkb3coZmxvYXQgd2lkdGgs
IGZsb2F0IGhlaWdodCwgZmxvYXQgYmx1ciwgY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZywgc3Rk
OjpvcHRpb25hbDxmbG9hdD4gYWxwaGEpCiB7Ci0gICAgQ29sb3IgY29sb3IgPSBwYXJzZUNvbG9y
T3JDdXJyZW50Q29sb3IoY29sb3JTdHJpbmcsICZjYW52YXMoKSk7Ci0gICAgaWYgKCFjb2xvclN0
cmluZy5pc051bGwoKSAmJiAhY29sb3IuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0gICAg
aWYgKCFjb2xvci5pc1ZhbGlkKCkpCi0gICAgICAgIGNvbG9yID0gQ29sb3I6OnRyYW5zcGFyZW50
OworICAgIENvbG9yIGNvbG9yID0gQ29sb3I6OnRyYW5zcGFyZW50OworICAgIGlmICghY29sb3JT
dHJpbmcuaXNOdWxsKCkpIHsKKyAgICAgICAgY29sb3IgPSBwYXJzZUNvbG9yT3JDdXJyZW50Q29s
b3IoY29sb3JTdHJpbmcsICZjYW52YXMoKSk7CisgICAgICAgIGlmICghY29sb3IuaXNWYWxpZCgp
KQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KICAgICAvLyBGSVhNRTogU2hvdWxkIG5vdCB1
c2UgUkdCQTMyIGhlcmUuCiAgICAgc2V0U2hhZG93KEZsb2F0U2l6ZSh3aWR0aCwgaGVpZ2h0KSwg
Ymx1ciwgY29sb3JXaXRoT3ZlcnJpZGVBbHBoYShjb2xvci5yZ2IoKSwgYWxwaGEpKTsKIH0KQEAg
LTEyOTYsNyArMTI4OCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRTaGFk
b3coY29uc3QgRmxvYXRTaXplJiBvZmZzZXQsIGZsb2F0IGJsdXIsIGNvCiAKIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjphcHBseVNoYWRvdygpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0
KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBjID0gZHJhd2luZ0NvbnRleHQoKTsK
ICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTMxMywzNSArMTMwNSwzMyBAQCBi
b29sIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2hvdWxkRHJhd1NoYWRvd3MoKSBjb25zdAog
ICAgIHJldHVybiBzdGF0ZSgpLnNoYWRvd0NvbG9yLmlzVmlzaWJsZSgpICYmIChzdGF0ZSgpLnNo
YWRvd0JsdXIgfHwgIXN0YXRlKCkuc2hhZG93T2Zmc2V0LmlzWmVybygpKTsKIH0KIAotZW51bSBJ
bWFnZVNpemVUeXBlIHsKLSAgICBJbWFnZVNpemVBZnRlckRldmljZVBpeGVsUmF0aW8sCi0gICAg
SW1hZ2VTaXplQmVmb3JlRGV2aWNlUGl4ZWxSYXRpbwotfTsKLQotc3RhdGljIExheW91dFNpemUg
c2l6ZShIVE1MSW1hZ2VFbGVtZW50JiBpbWFnZUVsZW1lbnQsIEltYWdlU2l6ZVR5cGUgc2l6ZVR5
cGUgPSBJbWFnZVNpemVCZWZvcmVEZXZpY2VQaXhlbFJhdGlvKQorZW51bSBjbGFzcyBJbWFnZVNp
emVUeXBlIHsgQWZ0ZXJEZXZpY2VQaXhlbFJhdGlvLCBCZWZvcmVEZXZpY2VQaXhlbFJhdGlvIH07
CitzdGF0aWMgTGF5b3V0U2l6ZSBzaXplKEhUTUxJbWFnZUVsZW1lbnQmIGVsZW1lbnQsIEltYWdl
U2l6ZVR5cGUgc2l6ZVR5cGUgPSBJbWFnZVNpemVUeXBlOjpCZWZvcmVEZXZpY2VQaXhlbFJhdGlv
KQogewogICAgIExheW91dFNpemUgc2l6ZTsKLSAgICBpZiAoQ2FjaGVkSW1hZ2UqIGNhY2hlZElt
YWdlID0gaW1hZ2VFbGVtZW50LmNhY2hlZEltYWdlKCkpIHsKLSAgICAgICAgc2l6ZSA9IGNhY2hl
ZEltYWdlLT5pbWFnZVNpemVGb3JSZW5kZXJlcihpbWFnZUVsZW1lbnQucmVuZGVyZXIoKSwgMS4w
Zik7IC8vIEZJWE1FOiBOb3Qgc3VyZSBhYm91dCB0aGlzLgotCi0gICAgICAgIGlmIChzaXplVHlw
ZSA9PSBJbWFnZVNpemVBZnRlckRldmljZVBpeGVsUmF0aW8gJiYgaXM8UmVuZGVySW1hZ2U+KGlt
YWdlRWxlbWVudC5yZW5kZXJlcigpKSAmJiBjYWNoZWRJbWFnZS0+aW1hZ2UoKSAmJiAhY2FjaGVk
SW1hZ2UtPmltYWdlKCktPmhhc1JlbGF0aXZlV2lkdGgoKSkKLSAgICAgICAgICAgIHNpemUuc2Nh
bGUoZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCppbWFnZUVsZW1lbnQucmVuZGVyZXIoKSkuaW1hZ2VE
ZXZpY2VQaXhlbFJhdGlvKCkpOworICAgIGlmIChhdXRvKiBjYWNoZWRJbWFnZSA9IGVsZW1lbnQu
Y2FjaGVkSW1hZ2UoKSkgeworICAgICAgICBzaXplID0gY2FjaGVkSW1hZ2UtPmltYWdlU2l6ZUZv
clJlbmRlcmVyKGVsZW1lbnQucmVuZGVyZXIoKSwgMS4wZik7IC8vIEZJWE1FOiBOb3Qgc3VyZSBh
Ym91dCB0aGlzLgorICAgICAgICBpZiAoc2l6ZVR5cGUgPT0gSW1hZ2VTaXplVHlwZTo6QWZ0ZXJE
ZXZpY2VQaXhlbFJhdGlvICYmIGlzPFJlbmRlckltYWdlPihlbGVtZW50LnJlbmRlcmVyKCkpICYm
IGNhY2hlZEltYWdlLT5pbWFnZSgpICYmICFjYWNoZWRJbWFnZS0+aW1hZ2UoKS0+aGFzUmVsYXRp
dmVXaWR0aCgpKQorICAgICAgICAgICAgc2l6ZS5zY2FsZShkb3duY2FzdDxSZW5kZXJJbWFnZT4o
KmVsZW1lbnQucmVuZGVyZXIoKSkuaW1hZ2VEZXZpY2VQaXhlbFJhdGlvKCkpOwogICAgIH0KICAg
ICByZXR1cm4gc2l6ZTsKIH0KIAotc3RhdGljIEZsb2F0U2l6ZSBzaXplKEhUTUxDYW52YXNFbGVt
ZW50JiBjYW52YXNFbGVtZW50KQorc3RhdGljIGlubGluZSBGbG9hdFNpemUgc2l6ZShIVE1MQ2Fu
dmFzRWxlbWVudCYgY2FudmFzRWxlbWVudCkKIHsKLSAgICByZXR1cm4gRmxvYXRTaXplKGNhbnZh
c0VsZW1lbnQuc2l6ZSgpKTsKKyAgICByZXR1cm4gY2FudmFzRWxlbWVudC5zaXplKCk7CiB9CiAK
ICNpZiBFTkFCTEUoVklERU8pCi1zdGF0aWMgRmxvYXRTaXplIHNpemUoSFRNTFZpZGVvRWxlbWVu
dCYgdmlkZW8pCisKK3N0YXRpYyBpbmxpbmUgRmxvYXRTaXplIHNpemUoSFRNTFZpZGVvRWxlbWVu
dCYgdmlkZW8pCiB7Ci0gICAgaWYgKE1lZGlhUGxheWVyKiBwbGF5ZXIgPSB2aWRlby5wbGF5ZXIo
KSkKLSAgICAgICAgcmV0dXJuIHBsYXllci0+bmF0dXJhbFNpemUoKTsKLSAgICByZXR1cm4gRmxv
YXRTaXplKCk7CisgICAgYXV0byogcGxheWVyID0gdmlkZW8ucGxheWVyKCk7CisgICAgaWYgKCFw
bGF5ZXIpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIHBsYXllci0+bmF0dXJhbFNp
emUoKTsKIH0KKwogI2VuZGlmCiAKIHN0YXRpYyBpbmxpbmUgRmxvYXRSZWN0IG5vcm1hbGl6ZVJl
Y3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQpAQCAtMTM1Niw4ICsxMzQ2LDggQEAgRXhjZXB0aW9u
T3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UoQ2FudmFzSW1hZ2VT
b3VyY2UmJiBpbWFnZSwKIHsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihpbWFnZSwKICAgICAg
ICAgWyZdIChSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4mIGltYWdlRWxlbWVudCkgLT4gRXhjZXB0
aW9uT3I8dm9pZD4gewotICAgICAgICAgICAgTGF5b3V0U2l6ZSBkZXN0UmVjdFNpemUgPSBzaXpl
KCppbWFnZUVsZW1lbnQsIEltYWdlU2l6ZUFmdGVyRGV2aWNlUGl4ZWxSYXRpbyk7Ci0gICAgICAg
ICAgICBMYXlvdXRTaXplIHNvdXJjZVJlY3RTaXplID0gc2l6ZSgqaW1hZ2VFbGVtZW50LCBJbWFn
ZVNpemVCZWZvcmVEZXZpY2VQaXhlbFJhdGlvKTsKKyAgICAgICAgICAgIExheW91dFNpemUgZGVz
dFJlY3RTaXplID0gc2l6ZSgqaW1hZ2VFbGVtZW50LCBJbWFnZVNpemVUeXBlOjpBZnRlckRldmlj
ZVBpeGVsUmF0aW8pOworICAgICAgICAgICAgTGF5b3V0U2l6ZSBzb3VyY2VSZWN0U2l6ZSA9IHNp
emUoKmltYWdlRWxlbWVudCwgSW1hZ2VTaXplVHlwZTo6QmVmb3JlRGV2aWNlUGl4ZWxSYXRpbyk7
CiAgICAgICAgICAgICByZXR1cm4gdGhpcy0+ZHJhd0ltYWdlKCppbWFnZUVsZW1lbnQsIEZsb2F0
UmVjdCB7IDAsIDAsIHNvdXJjZVJlY3RTaXplLndpZHRoKCksIHNvdXJjZVJlY3RTaXplLmhlaWdo
dCgpIH0sIEZsb2F0UmVjdCB7IGR4LCBkeSwgZGVzdFJlY3RTaXplLndpZHRoKCksIGRlc3RSZWN0
U2l6ZS5oZWlnaHQoKSB9KTsKICAgICAgICAgfSwKICAgICAgICAgWyZdIChhdXRvJiBlbGVtZW50
KSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CkBAIC0xNDA2LDcgKzEzOTYsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdJbWFnZShIVE1MSW1hZ2VFbGVt
ZW50JiBpbWFnZUVsZQogICAgIEZsb2F0UmVjdCBub3JtYWxpemVkU3JjUmVjdCA9IG5vcm1hbGl6
ZVJlY3Qoc3JjUmVjdCk7CiAgICAgRmxvYXRSZWN0IG5vcm1hbGl6ZWREc3RSZWN0ID0gbm9ybWFs
aXplUmVjdChkc3RSZWN0KTsKIAotICAgIEZsb2F0UmVjdCBpbWFnZVJlY3QgPSBGbG9hdFJlY3Qo
RmxvYXRQb2ludCgpLCBzaXplKGltYWdlRWxlbWVudCwgSW1hZ2VTaXplQmVmb3JlRGV2aWNlUGl4
ZWxSYXRpbykpOworICAgIEZsb2F0UmVjdCBpbWFnZVJlY3QgPSBGbG9hdFJlY3QoRmxvYXRQb2lu
dCgpLCBzaXplKGltYWdlRWxlbWVudCwgSW1hZ2VTaXplVHlwZTo6QmVmb3JlRGV2aWNlUGl4ZWxS
YXRpbykpOwogICAgIGlmICghc3JjUmVjdC53aWR0aCgpIHx8ICFzcmNSZWN0LmhlaWdodCgpKQog
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5ERVhfU0laRV9FUlIgfTsKIApAQCAtMTU3NCw3
ICsxNTY0LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpk
cmF3SW1hZ2UoSFRNTFZpZGVvRWxlbWVudCYgdmlkZW8sIGMKIHZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpkcmF3SW1hZ2VGcm9tUmVjdChIVE1MSW1hZ2VFbGVtZW50JiBpbWFnZUVsZW1l
bnQsIGZsb2F0IHN4LCBmbG9hdCBzeSwgZmxvYXQgc3csIGZsb2F0IHNoLCBmbG9hdCBkeCwgZmxv
YXQgZHksIGZsb2F0IGR3LCBmbG9hdCBkaCwgY29uc3QgU3RyaW5nJiBjb21wb3NpdGVPcGVyYXRp
b24pCiB7CiAgICAgQ29tcG9zaXRlT3BlcmF0b3Igb3A7Ci0gICAgQmxlbmRNb2RlIGJsZW5kT3Ag
PSBCbGVuZE1vZGVOb3JtYWw7CisgICAgYXV0byBibGVuZE9wID0gQmxlbmRNb2RlTm9ybWFsOwog
ICAgIGlmICghcGFyc2VDb21wb3NpdGVBbmRCbGVuZE9wZXJhdG9yKGNvbXBvc2l0ZU9wZXJhdGlv
biwgb3AsIGJsZW5kT3ApIHx8IGJsZW5kT3AgIT0gQmxlbmRNb2RlTm9ybWFsKQogICAgICAgICBv
cCA9IENvbXBvc2l0ZVNvdXJjZU92ZXI7CiAgICAgZHJhd0ltYWdlKGltYWdlRWxlbWVudCwgRmxv
YXRSZWN0IHsgc3gsIHN5LCBzdywgc2ggfSwgRmxvYXRSZWN0IHsgZHgsIGR5LCBkdywgZGggfSwg
b3AsIEJsZW5kTW9kZU5vcm1hbCk7CkBAIC0xNTkyLDE0ICsxNTgyLDEzIEBAIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpzZXRDb21wb3NpdGVPcGVyYXRpb24oY29uc3QgU3RyaW5nJiBv
cGVyYXRpb24pCiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbGVhckNhbnZhcygp
CiB7Ci0gICAgRmxvYXRSZWN0IGNhbnZhc1JlY3QoMCwgMCwgY2FudmFzKCkud2lkdGgoKSwgY2Fu
dmFzKCkuaGVpZ2h0KCkpOwotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0
KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAg
ICByZXR1cm47CiAKICAgICBjLT5zYXZlKCk7CiAgICAgYy0+c2V0Q1RNKGNhbnZhcygpLmJhc2VU
cmFuc2Zvcm0oKSk7Ci0gICAgYy0+Y2xlYXJSZWN0KGNhbnZhc1JlY3QpOworICAgIGMtPmNsZWFy
UmVjdChGbG9hdFJlY3QoMCwgMCwgY2FudmFzKCkud2lkdGgoKSwgY2FudmFzKCkuaGVpZ2h0KCkp
KTsKICAgICBjLT5yZXN0b3JlKCk7CiB9CiAKQEAgLTE2NDgsNyArMTYzNyw3IEBAIHZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjb21wb3NpdGVCdWZmZXIoSW1hZ2VCdWZmZXImIGJ1ZmZl
ciwgY29uc3QgSW50UmVjCiAgICAgSW50UmVjdCBjYW52YXNSZWN0KDAsIDAsIGNhbnZhcygpLndp
ZHRoKCksIGNhbnZhcygpLmhlaWdodCgpKTsKICAgICBjYW52YXNSZWN0ID0gY2FudmFzKCkuYmFz
ZVRyYW5zZm9ybSgpLm1hcFJlY3QoY2FudmFzUmVjdCk7CiAKLSAgICBHcmFwaGljc0NvbnRleHQq
IGMgPSBkcmF3aW5nQ29udGV4dCgpOworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwog
ICAgIGlmICghYykKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNjc5LDE3ICsxNjY4LDE3IEBAIHRl
bXBsYXRlPGNsYXNzIFQ+IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmdWxsQ2FudmFz
Q29tcG9zaXRlZERyYXdJbWFnZShUCiAgICAgQVNTRVJUKGlzRnVsbENhbnZhc0NvbXBvc2l0ZU1v
ZGUob3ApKTsKIAogICAgIEludFNpemUgY3JvcHBlZE9mZnNldDsKLSAgICBJbnRSZWN0IGJ1ZmZl
clJlY3QgPSBjYWxjdWxhdGVDb21wb3NpdGluZ0J1ZmZlclJlY3QoZGVzdCwgJmNyb3BwZWRPZmZz
ZXQpOworICAgIGF1dG8gYnVmZmVyUmVjdCA9IGNhbGN1bGF0ZUNvbXBvc2l0aW5nQnVmZmVyUmVj
dChkZXN0LCAmY3JvcHBlZE9mZnNldCk7CiAgICAgaWYgKGJ1ZmZlclJlY3QuaXNFbXB0eSgpKSB7
CiAgICAgICAgIGNsZWFyQ2FudmFzKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlciA9IGNyZWF0ZUNvbXBvc2l0aW5nQnVm
ZmVyKGJ1ZmZlclJlY3QpOworICAgIGF1dG8gYnVmZmVyID0gY3JlYXRlQ29tcG9zaXRpbmdCdWZm
ZXIoYnVmZmVyUmVjdCk7CiAgICAgaWYgKCFidWZmZXIpCiAgICAgICAgIHJldHVybjsKIAotICAg
IEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRy
YXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAKQEAgLTE3MjAs
NyArMTcwOSw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxDYW52YXNHcmFkaWVudD4+IENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6Y3JlYXRlTGluZWFyR3JhZGllbnQoCiAgICAgaWYgKCFzdGQ6OmlzZmlu
aXRlKHgwKSB8fCAhc3RkOjppc2Zpbml0ZSh5MCkgfHwgIXN0ZDo6aXNmaW5pdGUoeDEpIHx8ICFz
dGQ6OmlzZmluaXRlKHkxKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5PVF9TVVBQT1JU
RURfRVJSIH07CiAKLSAgICBSZWY8Q2FudmFzR3JhZGllbnQ+IGdyYWRpZW50ID0gQ2FudmFzR3Jh
ZGllbnQ6OmNyZWF0ZShGbG9hdFBvaW50KHgwLCB5MCksIEZsb2F0UG9pbnQoeDEsIHkxKSk7Cisg
ICAgYXV0byBncmFkaWVudCA9IENhbnZhc0dyYWRpZW50OjpjcmVhdGUoRmxvYXRQb2ludCh4MCwg
eTApLCBGbG9hdFBvaW50KHgxLCB5MSkpOwogICAgIHByZXBhcmVHcmFkaWVudEZvckRhc2hib2Fy
ZChncmFkaWVudC5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUoZ3JhZGllbnQpOwogfQpAQCAt
MTczMyw3ICsxNzIyLDcgQEAgRXhjZXB0aW9uT3I8UmVmPENhbnZhc0dyYWRpZW50Pj4gQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhdGVSYWRpYWxHcmFkaWVudCgKICAgICBpZiAocjAgPCAw
IHx8IHIxIDwgMCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOREVYX1NJWkVfRVJSIH07
CiAKLSAgICBSZWY8Q2FudmFzR3JhZGllbnQ+IGdyYWRpZW50ID0gQ2FudmFzR3JhZGllbnQ6OmNy
ZWF0ZShGbG9hdFBvaW50KHgwLCB5MCksIHIwLCBGbG9hdFBvaW50KHgxLCB5MSksIHIxKTsKKyAg
ICBhdXRvIGdyYWRpZW50ID0gQ2FudmFzR3JhZGllbnQ6OmNyZWF0ZShGbG9hdFBvaW50KHgwLCB5
MCksIHIwLCBGbG9hdFBvaW50KHgxLCB5MSksIHIxKTsKICAgICBwcmVwYXJlR3JhZGllbnRGb3JE
YXNoYm9hcmQoZ3JhZGllbnQuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKGdyYWRpZW50KTsK
IH0KQEAgLTE3NDUsNyArMTczNCw3IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxDYW52YXNQYXR0ZXJu
Pj4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhdGVQYXR0ZXJuKENhbnZhCiAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBTWU5UQVhfRVJSIH07CiAKICAgICByZXR1cm4gV1RGOjpzd2l0
Y2hPbihpbWFnZSwKLSAgICAgICAgWyZdKGF1dG8mIGVsZW1lbnQpIC0+IEV4Y2VwdGlvbk9yPFJl
ZlB0cjxDYW52YXNQYXR0ZXJuPj4geyByZXR1cm4gdGhpcy0+Y3JlYXRlUGF0dGVybigqZWxlbWVu
dCwgcmVwZWF0WCwgcmVwZWF0WSk7IH0KKyAgICAgICAgWyZdIChhdXRvJiBlbGVtZW50KSAtPiBF
eGNlcHRpb25PcjxSZWZQdHI8Q2FudmFzUGF0dGVybj4+IHsgcmV0dXJuIHRoaXMtPmNyZWF0ZVBh
dHRlcm4oKmVsZW1lbnQsIHJlcGVhdFgsIHJlcGVhdFkpOyB9CiAgICAgKTsKIH0KIApAQCAtMTgx
Miw3ICsxODAxLDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRpZERyYXdFbnRp
cmVDYW52YXMoKQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZGlkRHJhdyhjb25z
dCBGbG9hdFJlY3QmIHIsIHVuc2lnbmVkIG9wdGlvbnMpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0
KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBjID0gZHJhd2luZ0NvbnRleHQoKTsK
ICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIXN0YXRlKCkuaGFzSW52ZXJ0
aWJsZVRyYW5zZm9ybSkKQEAgLTE4NjYsMTkgKzE4NTUsMTcgQEAgdm9pZCBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KGJvb2wgdHJhY2tzRGlzcGxh
eUxpc3QKIAogU3RyaW5nIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZGlzcGxheUxpc3RBc1Rl
eHQoRGlzcGxheUxpc3Q6OkFzVGV4dEZsYWdzIGZsYWdzKSBjb25zdAogewotICAgIGlmIChtX3Jl
Y29yZGluZ0NvbnRleHQpCi0gICAgICAgIHJldHVybiBtX3JlY29yZGluZ0NvbnRleHQtPmRpc3Bs
YXlMaXN0LmFzVGV4dChmbGFncyk7Ci0gICAgCi0gICAgcmV0dXJuIFN0cmluZygpOworICAgIGlm
ICghbV9yZWNvcmRpbmdDb250ZXh0KQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBt
X3JlY29yZGluZ0NvbnRleHQtPmRpc3BsYXlMaXN0LmFzVGV4dChmbGFncyk7CiB9CiAKIFN0cmlu
ZyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJlcGxheURpc3BsYXlMaXN0QXNUZXh0KERpc3Bs
YXlMaXN0OjpBc1RleHRGbGFncyBmbGFncykgY29uc3QKIHsKLSAgICBhdXRvIGl0ID0gY29udGV4
dERpc3BsYXlMaXN0TWFwKCkuZmluZCh0aGlzKTsKLSAgICBpZiAoaXQgIT0gY29udGV4dERpc3Bs
YXlMaXN0TWFwKCkuZW5kKCkpCi0gICAgICAgIHJldHVybiBpdC0+dmFsdWUtPmFzVGV4dChmbGFn
cyk7Ci0KLSAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgYXV0byogZGlzcGxheUxpc3QgPSBjb250
ZXh0RGlzcGxheUxpc3RNYXAoKS5nZXQodGhpcyk7CisgICAgaWYgKCFkaXNwbGF5TGlzdCkKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gZGlzcGxheUxpc3QtPmFzVGV4dChmbGFncyk7
CiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpwYWludFJlbmRlcmluZ1Jlc3Vs
dHNUb0NhbnZhcygpCkBAIC0xODg2LDcgKzE4NzMsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKQogICAgIGlmIChVTkxJS0VM
WShtX3VzZXNEaXNwbGF5TGlzdERyYXdpbmcpKSB7CiAgICAgICAgIGlmICghbV9yZWNvcmRpbmdD
b250ZXh0KQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgICAgICBGbG9hdFJl
Y3QgY2xpcChGbG9hdFBvaW50Ojp6ZXJvKCksIGNhbnZhcygpLnNpemUoKSk7CiAgICAgICAgIERp
c3BsYXlMaXN0OjpSZXBsYXllciByZXBsYXllcigqY2FudmFzKCkuZHJhd2luZ0NvbnRleHQoKSwg
bV9yZWNvcmRpbmdDb250ZXh0LT5kaXNwbGF5TGlzdCk7CiAKQEAgLTE5MDUsNyArMTg5Miw2IEBA
IEdyYXBoaWNzQ29udGV4dCogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3aW5nQ29udGV4
dCgpIGNvbnN0CiAgICAgaWYgKFVOTElLRUxZKG1fdXNlc0Rpc3BsYXlMaXN0RHJhd2luZykpIHsK
ICAgICAgICAgaWYgKCFtX3JlY29yZGluZ0NvbnRleHQpCiAgICAgICAgICAgICBtX3JlY29yZGlu
Z0NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQ+KEZs
b2F0UmVjdChGbG9hdFBvaW50Ojp6ZXJvKCksIGNhbnZhcygpLnNpemUoKSkpOwotCiAgICAgICAg
IHJldHVybiAmbV9yZWNvcmRpbmdDb250ZXh0LT5jb250ZXh0OwogICAgIH0KIApAQCAtMTkxNCwx
MiArMTkwMCwxMCBAQCBHcmFwaGljc0NvbnRleHQqIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
ZHJhd2luZ0NvbnRleHQoKSBjb25zdAogCiBzdGF0aWMgUmVmUHRyPEltYWdlRGF0YT4gY3JlYXRl
RW1wdHlJbWFnZURhdGEoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICBpZiAoUmVmUHRyPElt
YWdlRGF0YT4gZGF0YSA9IEltYWdlRGF0YTo6Y3JlYXRlKHNpemUpKSB7CisgICAgYXV0byBkYXRh
ID0gSW1hZ2VEYXRhOjpjcmVhdGUoc2l6ZSk7CisgICAgaWYgKGRhdGEpCiAgICAgICAgIGRhdGEt
PmRhdGEoKS0+emVyb0ZpbGwoKTsKLSAgICAgICAgcmV0dXJuIGRhdGE7Ci0gICAgfQotCi0gICAg
cmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGRhdGE7CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZlB0
cjxJbWFnZURhdGE+PiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZUltYWdlRGF0YShJ
bWFnZURhdGEqIGltYWdlRGF0YSkgY29uc3QKQEAgLTIwMzgsMTEgKzIwMjIsOSBAQCB2b2lkIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ZvY3VzSWZOZWVkZWQoRE9NUGF0aCYgcGF0aCwg
RWxlbWVudCYgZWxlbWVudAogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0Zv
Y3VzSWZOZWVkZWRJbnRlcm5hbChjb25zdCBQYXRoJiBwYXRoLCBFbGVtZW50JiBlbGVtZW50KQog
ewotICAgIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCA9IGRyYXdpbmdDb250ZXh0KCk7Ci0KKyAg
ICBhdXRvKiBjb250ZXh0ID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWVsZW1lbnQuZm9j
dXNlZCgpIHx8ICFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0gfHwgcGF0aC5pc0VtcHR5
KCkgfHwgIWVsZW1lbnQuaXNEZXNjZW5kYW50T2YoY2FudmFzKCkpIHx8ICFjb250ZXh0KQogICAg
ICAgICByZXR1cm47Ci0KICAgICBjb250ZXh0LT5kcmF3Rm9jdXNSaW5nKHBhdGgsIDEsIDEsIFJl
bmRlclRoZW1lOjpmb2N1c1JpbmdDb2xvcigpKTsKIH0KIApAQCAtMjI3MCw3ICsyMjUyLDYgQEAg
c3RhdGljIGlubGluZSBib29sIGlzU3BhY2VUaGF0TmVlZHNSZXBsYWNpbmcoVUNoYXIgYykKIHN0
YXRpYyB2b2lkIG5vcm1hbGl6ZVNwYWNlcyhTdHJpbmcmIHRleHQpCiB7CiAgICAgc2l6ZV90IGkg
PSB0ZXh0LmZpbmQoaXNTcGFjZVRoYXROZWVkc1JlcGxhY2luZyk7Ci0KICAgICBpZiAoaSA9PSBu
b3RGb3VuZCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMzAxLDEwICsyMjgyLDEwIEBAIFJlZjxU
ZXh0TWV0cmljcz4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjptZWFzdXJlVGV4dChjb25zdCBT
dHJpbmcmIHRleHQpCiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dElu
dGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvYXQgeSwgYm9vbCBmaWxsLCBz
dGQ6Om9wdGlvbmFsPGZsb2F0PiBtYXhXaWR0aCkKIHsKLSAgICBjb25zdCBhdXRvJiBmb250UHJv
eHkgPSB0aGlzLT5mb250UHJveHkoKTsKLSAgICBjb25zdCBGb250TWV0cmljcyYgZm9udE1ldHJp
Y3MgPSBmb250UHJveHkuZm9udE1ldHJpY3MoKTsKKyAgICBhdXRvJiBmb250UHJveHkgPSB0aGlz
LT5mb250UHJveHkoKTsKKyAgICBjb25zdCBhdXRvJiBmb250TWV0cmljcyA9IGZvbnRQcm94eS5m
b250TWV0cmljcygpOwogCi0gICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQo
KTsKKyAgICBhdXRvKiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAg
IHJldHVybjsKICAgICBpZiAoIXN0YXRlKCkuaGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkKQEAgLTIz
MTUsNyArMjI5Niw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dElu
dGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAgICAgICAgIHJldHVybjsK
IAogICAgIC8vIElmIGdyYWRpZW50IHNpemUgaXMgemVybywgdGhlbiBwYWludCBub3RoaW5nLgot
ICAgIEdyYWRpZW50KiBncmFkaWVudCA9IGMtPnN0cm9rZUdyYWRpZW50KCk7CisgICAgYXV0byog
Z3JhZGllbnQgPSBjLT5zdHJva2VHcmFkaWVudCgpOwogICAgIGlmICghZmlsbCAmJiBncmFkaWVu
dCAmJiBncmFkaWVudC0+aXNaZXJvU2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTIzMjks
NyArMjMxMCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVy
bmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAgICAgLy8gRklYTUU6IE5lZWQg
dG8gdHVybiBvZmYgZm9udCBzbW9vdGhpbmcuCiAKICAgICBjb25zdCBSZW5kZXJTdHlsZSogY29t
cHV0ZWRTdHlsZTsKLSAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IHRvVGV4dERpcmVjdGlv
bihzdGF0ZSgpLmRpcmVjdGlvbiwgJmNvbXB1dGVkU3R5bGUpOworICAgIGF1dG8gZGlyZWN0aW9u
ID0gdG9UZXh0RGlyZWN0aW9uKHN0YXRlKCkuZGlyZWN0aW9uLCAmY29tcHV0ZWRTdHlsZSk7CiAg
ICAgYm9vbCBpc1JUTCA9IGRpcmVjdGlvbiA9PSBSVEw7CiAgICAgYm9vbCBvdmVycmlkZSA9IGNv
bXB1dGVkU3R5bGUgPyBpc092ZXJyaWRlKGNvbXB1dGVkU3R5bGUtPnVuaWNvZGVCaWRpKCkpIDog
ZmFsc2U7CiAKQEAgLTIzNTksNyArMjM0MCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAg
ICAgYm9vbCB1c2VNYXhXaWR0aCA9IG1heFdpZHRoICYmIG1heFdpZHRoLnZhbHVlKCkgPCBmb250
V2lkdGg7CiAgICAgZmxvYXQgd2lkdGggPSB1c2VNYXhXaWR0aCA/IG1heFdpZHRoLnZhbHVlKCkg
OiBmb250V2lkdGg7CiAKLSAgICBUZXh0QWxpZ24gYWxpZ24gPSBzdGF0ZSgpLnRleHRBbGlnbjsK
KyAgICBhdXRvIGFsaWduID0gc3RhdGUoKS50ZXh0QWxpZ247CiAgICAgaWYgKGFsaWduID09IFN0
YXJ0VGV4dEFsaWduKQogICAgICAgICBhbGlnbiA9IGlzUlRMID8gUmlnaHRUZXh0QWxpZ24gOiBM
ZWZ0VGV4dEFsaWduOwogICAgIGVsc2UgaWYgKGFsaWduID09IEVuZFRleHRBbGlnbikKQEAgLTIz
ODUsNyArMjM2Niw2IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dElu
dGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAjaWYgVVNFKENHKQogICAg
IGNvbnN0IENhbnZhc1N0eWxlJiBkcmF3U3R5bGUgPSBmaWxsID8gc3RhdGUoKS5maWxsU3R5bGUg
OiBzdGF0ZSgpLnN0cm9rZVN0eWxlOwogICAgIGlmIChkcmF3U3R5bGUuY2FudmFzR3JhZGllbnQo
KSB8fCBkcmF3U3R5bGUuY2FudmFzUGF0dGVybigpKSB7Ci0KICAgICAgICAgSW50UmVjdCBtYXNr
UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QodGV4dFJlY3QpOwogCiAgICAgICAgIC8vIElmIHdlIGhh
dmUgYSBzaGFkb3csIHdlIG5lZWQgdG8gZHJhdyBpdCBiZWZvcmUgdGhlIG1hc2sgb3BlcmF0aW9u
LgpAQCAtMjM5NCw3ICsyMzc0LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRy
YXdUZXh0SW50ZXJuYWwoY29uc3QgU3RyaW5nJiB0ZXh0LCBmbG9hdCB4LCBmbG8KICAgICAgICAg
aWYgKHNob3VsZERyYXdTaGFkb3dzKCkpIHsKICAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0
YXRlU2F2ZXIgc3RhdGVTYXZlcigqYyk7CiAKLSAgICAgICAgICAgIEZsb2F0U2l6ZSBvZmZzZXQg
PSBGbG9hdFNpemUoMCwgMiAqIG1hc2tSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgICAgIEZsb2F0
U2l6ZSBvZmZzZXQoMCwgMiAqIG1hc2tSZWN0LmhlaWdodCgpKTsKIAogICAgICAgICAgICAgRmxv
YXRTaXplIHNoYWRvd09mZnNldDsKICAgICAgICAgICAgIGZsb2F0IHNoYWRvd1JhZGl1czsKQEAg
LTI0MjIsNyArMjQwMiw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4
dEludGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAgICAgICAgIGlmICgh
bWFza0ltYWdlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIEdyYXBoaWNzQ29udGV4
dCYgbWFza0ltYWdlQ29udGV4dCA9IG1hc2tJbWFnZS0+Y29udGV4dCgpOworICAgICAgICBhdXRv
JiBtYXNrSW1hZ2VDb250ZXh0ID0gbWFza0ltYWdlLT5jb250ZXh0KCk7CiAKICAgICAgICAgaWYg
KGZpbGwpCiAgICAgICAgICAgICBtYXNrSW1hZ2VDb250ZXh0LnNldEZpbGxDb2xvcihDb2xvcjo6
YmxhY2spOwpAQCAtMjQ0NSw3ICsyNDI1LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OmRyYXdUZXh0SW50ZXJuYWwoY29uc3QgU3RyaW5nJiB0ZXh0LCBmbG9hdCB4LCBmbG8KIAog
ICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmMpOwogICAgICAg
ICBjLT5jbGlwVG9JbWFnZUJ1ZmZlcigqbWFza0ltYWdlLCBtYXNrUmVjdCk7Ci0gICAgICAgIGRy
YXdTdHlsZS5hcHBseUZpbGxDb2xvcihjKTsKKyAgICAgICAgZHJhd1N0eWxlLmFwcGx5RmlsbENv
bG9yKCpjKTsKICAgICAgICAgYy0+ZmlsbFJlY3QobWFza1JlY3QpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtMjQ4NywyNyArMjQ2NywyNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6aW5mbGF0ZVN0cm9rZVJlY3QoRmxvYXRSZWN0JiByZWN0KSBjb25zdAogICAgICAgICBk
ZWx0YSAqPSBzdGF0ZSgpLm1pdGVyTGltaXQ7CiAgICAgZWxzZSBpZiAoc3RhdGUoKS5saW5lQ2Fw
ID09IFNxdWFyZUNhcCkKICAgICAgICAgZGVsdGEgKj0gcm9vdDI7Ci0KICAgICByZWN0LmluZmxh
dGUoZGVsdGEpOwogfQogCiBhdXRvIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Zm9udFByb3h5
KCkgLT4gY29uc3QgRm9udFByb3h5JgogewogICAgIGNhbnZhcygpLmRvY3VtZW50KCkudXBkYXRl
U3R5bGVJZk5lZWRlZCgpOwotCiAgICAgaWYgKCFzdGF0ZSgpLmZvbnQucmVhbGl6ZWQoKSkKICAg
ICAgICAgc2V0Rm9udChzdGF0ZSgpLnVucGFyc2VkRm9udCk7CiAgICAgcmV0dXJuIHN0YXRlKCku
Zm9udDsKIH0KIAogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisKIFBsYXRmb3Jt
TGF5ZXIqIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIGNhbnZhcygpLmJ1ZmZlcigpID8gY2FudmFzKCkuYnVmZmVyKCktPnBsYXRm
b3JtTGF5ZXIoKSA6IDA7CisgICAgcmV0dXJuIGNhbnZhcygpLmJ1ZmZlcigpID8gY2FudmFzKCku
YnVmZmVyKCktPnBsYXRmb3JtTGF5ZXIoKSA6IG51bGxwdHI7CiB9CisKICNlbmRpZgogCi1zdGF0
aWMgSW50ZXJwb2xhdGlvblF1YWxpdHkgc21vb3RoaW5nVG9JbnRlcnBvbGF0aW9uUXVhbGl0eShD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OkltYWdlU21vb3RoaW5nUXVhbGl0eSBxdWFsaXR5KQor
c3RhdGljIGlubGluZSBJbnRlcnBvbGF0aW9uUXVhbGl0eSBzbW9vdGhpbmdUb0ludGVycG9sYXRp
b25RdWFsaXR5KENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6SW1hZ2VTbW9vdGhpbmdRdWFsaXR5
IHF1YWxpdHkpCiB7CiAgICAgc3dpdGNoIChxdWFsaXR5KSB7CiAgICAgY2FzZSBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OkltYWdlU21vb3RoaW5nUXVhbGl0eTo6TG93OgpAQCAtMjU1NCw3ICsy
NTM0LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldEltYWdlU21vb3RoaW5n
RW5hYmxlZChib29sIGVuYWJsZWQpCiAKICAgICByZWFsaXplU2F2ZXMoKTsKICAgICBtb2RpZmlh
YmxlU3RhdGUoKS5pbWFnZVNtb290aGluZ0VuYWJsZWQgPSBlbmFibGVkOwotICAgIEdyYXBoaWNz
Q29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250
ZXh0KCk7CiAgICAgaWYgKGMpCiAgICAgICAgIGMtPnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxp
dHkoZW5hYmxlZCA/IHNtb290aGluZ1RvSW50ZXJwb2xhdGlvblF1YWxpdHkoc3RhdGUoKS5pbWFn
ZVNtb290aGluZ1F1YWxpdHkpIDogSW50ZXJwb2xhdGlvbk5vbmUpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAppbmRl
eCA1NGJlOWQwMGNmNTgyM2IxNmQxNjc2OGFkYWU1M2U1YTY1MzFlNjA5Li5lMzlmMWI2NzI4OWVi
OTYzYjY0NzQyZThjNDIzNGVkMTBjMWUyMDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaApAQCAtMzQwLDkgKzM0MCw3
IEBAIHByaXZhdGU6CiAgICAgLy8gVGhlcmVmb3JlLCBhbGwgZm9udCBvcGVyYXRpb25zIG11c3Qg
cGFzcyB0aHJvdWdoIHRoZSBTdGF0ZS4KICAgICBjb25zdCBGb250UHJveHkmIGZvbnRQcm94eSgp
OwogCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIHZvaWQgY2xlYXJQYXRoRm9y
RGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSgpOwotI2VuZGlmCiAKICAgICB2b2lk
IGJlZ2luQ29tcG9zaXRlTGF5ZXIoKTsKICAgICB2b2lkIGVuZENvbXBvc2l0ZUxheWVyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKaW5kZXggOWFhMGEwNTJm
NDYxYWQ2YjJjNWVhYzZhZmVjMzIzMTU2NWUwMjEzNi4uOWRjOGYwNDhkNzZmOGM5MmJiYTJlMTk5
NmRhOGQ3YWQ4YTJlYjM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0
eWxlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgs
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDA4LCAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQogICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDggRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KQEAgLTUzLDcg
KzUzLDYgQEAgc3RhdGljIENvbG9yIHBhcnNlQ29sb3IoY29uc3QgU3RyaW5nJiBjb2xvclN0cmlu
ZywgRG9jdW1lbnQqIGRvY3VtZW50ID0gbnVsbHB0cikKICAgICBDb2xvciBjb2xvciA9IENTU1Bh
cnNlcjo6cGFyc2VDb2xvcihjb2xvclN0cmluZyk7CiAgICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkK
ICAgICAgICAgcmV0dXJuIGNvbG9yOwotCiAgICAgcmV0dXJuIENTU1BhcnNlcjo6cGFyc2VTeXN0
ZW1Db2xvcihjb2xvclN0cmluZywgZG9jdW1lbnQpOwogfQogCkBAIC03NiwyMDggKzc1LDE1MCBA
QCBDb2xvciBwYXJzZUNvbG9yT3JDdXJyZW50Q29sb3IoY29uc3QgU3RyaW5nJiBjb2xvclN0cmlu
ZywgSFRNTENhbnZhc0VsZW1lbnQqIGNhbgogfQogCiBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUo
Q29sb3IgY29sb3IpCi0gICAgOiBtX2NvbG9yKGNvbG9yKQotICAgICwgbV90eXBlKFJHQkEpCisg
ICAgOiBtX3N0eWxlKGNvbG9yKQogewogfQogCiBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoZmxv
YXQgZ3JheUxldmVsLCBmbG9hdCBhbHBoYSkKLSAgICA6IG1fY29sb3IoQ29sb3IoZ3JheUxldmVs
LCBncmF5TGV2ZWwsIGdyYXlMZXZlbCwgYWxwaGEpKQotICAgICwgbV90eXBlKFJHQkEpCisgICAg
OiBtX3N0eWxlKENvbG9yIHsgZ3JheUxldmVsLCBncmF5TGV2ZWwsIGdyYXlMZXZlbCwgYWxwaGEg
fSkKIHsKIH0KIAogQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGZsb2F0IHIsIGZsb2F0IGcsIGZs
b2F0IGIsIGZsb2F0IGEpCi0gICAgOiBtX2NvbG9yKENvbG9yKHIsIGcsIGIsIGEpKQotICAgICwg
bV90eXBlKFJHQkEpCisgICAgOiBtX3N0eWxlKENvbG9yIHsgciwgZywgYiwgYSB9KQogewogfQog
CiBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoZmxvYXQgYywgZmxvYXQgbSwgZmxvYXQgeSwgZmxv
YXQgaywgZmxvYXQgYSkKLSAgICA6IG1fY215a2EobmV3IENNWUtBVmFsdWVzKENvbG9yKGMsIG0s
IHksIGssIGEpLCBjLCBtLCB5LCBrLCBhKSkKLSAgICAsIG1fdHlwZShDTVlLQSkKKyAgICA6IG1f
c3R5bGUoQ01ZS0FDb2xvciB7IENvbG9yIHsgYywgbSwgeSwgaywgYSB9LCBjLCBtLCB5LCBrLCBh
IH0pCiB7CiB9CiAKLUNhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShQYXNzUmVmUHRyPENhbnZhc0dy
YWRpZW50PiBncmFkaWVudCkKLSAgICA6IG1fZ3JhZGllbnQoZ3JhZGllbnQubGVha1JlZigpKQot
ICAgICwgbV90eXBlKEdyYWRpZW50KQorQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKENhbnZhc0dy
YWRpZW50JiBncmFkaWVudCkKKyAgICA6IG1fc3R5bGUobWFrZVJlZlB0cihncmFkaWVudCkpCiB7
Ci0gICAgaWYgKCFtX2dyYWRpZW50KQotICAgICAgICBtX3R5cGUgPSBJbnZhbGlkOwogfQogCi1D
YW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoUGFzc1JlZlB0cjxDYW52YXNQYXR0ZXJuPiBwYXR0ZXJu
KQotICAgIDogbV9wYXR0ZXJuKHBhdHRlcm4ubGVha1JlZigpKQotICAgICwgbV90eXBlKEltYWdl
UGF0dGVybikKK0NhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShDYW52YXNQYXR0ZXJuJiBwYXR0ZXJu
KQorICAgIDogbV9zdHlsZShtYWtlUmVmUHRyKHBhdHRlcm4pKQogewotICAgIGlmICghbV9wYXR0
ZXJuKQotICAgICAgICBtX3R5cGUgPSBJbnZhbGlkOwogfQogCi1DYW52YXNTdHlsZTo6fkNhbnZh
c1N0eWxlKCkKK2lubGluZSBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoQ3VycmVudENvbG9yIGNv
bG9yKQorICAgIDogbV9zdHlsZShjb2xvcikKIHsKLSAgICBpZiAobV90eXBlID09IEdyYWRpZW50
KQotICAgICAgICBtX2dyYWRpZW50LT5kZXJlZigpOwotICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBJ
bWFnZVBhdHRlcm4pCi0gICAgICAgIG1fcGF0dGVybi0+ZGVyZWYoKTsKLSAgICBlbHNlIGlmICht
X3R5cGUgPT0gQ01ZS0EpCi0gICAgICAgIGRlbGV0ZSBtX2NteWthOwogfQogCiBDYW52YXNTdHls
ZSBDYW52YXNTdHlsZTo6Y3JlYXRlRnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5n
LCBEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgaWYgKGlzQ3VycmVudENvbG9yU3RyaW5nKGNv
bG9yU3RyaW5nKSkKLSAgICAgICAgcmV0dXJuIENhbnZhc1N0eWxlKENvbnN0cnVjdEN1cnJlbnRD
b2xvcik7CisgICAgICAgIHJldHVybiBDdXJyZW50Q29sb3IgeyBzdGQ6Om51bGxvcHQgfTsKIAog
ICAgIENvbG9yIGNvbG9yID0gcGFyc2VDb2xvcihjb2xvclN0cmluZywgZG9jdW1lbnQpOwotICAg
IGlmIChjb2xvci5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiBDYW52YXNTdHlsZShjb2xvcik7
CisgICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBy
ZXR1cm4gQ2FudmFzU3R5bGUoKTsKKyAgICByZXR1cm4gY29sb3I7CiB9CiAKIENhbnZhc1N0eWxl
IENhbnZhc1N0eWxlOjpjcmVhdGVGcm9tU3RyaW5nV2l0aE92ZXJyaWRlQWxwaGEoY29uc3QgU3Ry
aW5nJiBjb2xvclN0cmluZywgZmxvYXQgYWxwaGEpCiB7CiAgICAgaWYgKGlzQ3VycmVudENvbG9y
U3RyaW5nKGNvbG9yU3RyaW5nKSkKLSAgICAgICAgcmV0dXJuIENhbnZhc1N0eWxlKEN1cnJlbnRD
b2xvcldpdGhPdmVycmlkZUFscGhhLCBhbHBoYSk7CisgICAgICAgIHJldHVybiBDdXJyZW50Q29s
b3IgeyBhbHBoYSB9OwogCiAgICAgQ29sb3IgY29sb3IgPSBwYXJzZUNvbG9yKGNvbG9yU3RyaW5n
KTsKLSAgICBpZiAoY29sb3IuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUo
Y29sb3JXaXRoT3ZlcnJpZGVBbHBoYShjb2xvci5yZ2IoKSwgYWxwaGEpKTsKKyAgICBpZiAoIWNv
bG9yLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBDYW52YXNT
dHlsZSgpOworICAgIHJldHVybiBDb2xvciB7IGNvbG9yV2l0aE92ZXJyaWRlQWxwaGEoY29sb3Iu
cmdiKCksIGFscGhhKSB9OwogfQogCiBib29sIENhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDb2xv
cihjb25zdCBDYW52YXNTdHlsZSYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgaWYgKG1fdHlwZSAhPSBv
dGhlci5tX3R5cGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoV1RGOjpob2xkc19h
bHRlcm5hdGl2ZTxDb2xvcj4obV9zdHlsZSkgJiYgV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDb2xv
cj4ob3RoZXIubV9zdHlsZSkpCisgICAgICAgIHJldHVybiBXVEY6OmdldDxDb2xvcj4obV9zdHls
ZSkgPT0gV1RGOjpnZXQ8Q29sb3I+KG90aGVyLm1fc3R5bGUpOwogCi0gICAgc3dpdGNoIChtX3R5
cGUpIHsKLSAgICBjYXNlIFJHQkE6Ci0gICAgICAgIHJldHVybiBtX2NvbG9yID09IG90aGVyLm1f
Y29sb3I7Ci0gICAgY2FzZSBDTVlLQToKLSAgICAgICAgcmV0dXJuIG1fY215a2EtPmMgPT0gb3Ro
ZXIubV9jbXlrYS0+YwotICAgICAgICAgICAgJiYgbV9jbXlrYS0+bSA9PSBvdGhlci5tX2NteWth
LT5tCi0gICAgICAgICAgICAmJiBtX2NteWthLT55ID09IG90aGVyLm1fY215a2EtPnkKLSAgICAg
ICAgICAgICYmIG1fY215a2EtPmsgPT0gb3RoZXIubV9jbXlrYS0+awotICAgICAgICAgICAgJiYg
bV9jbXlrYS0+YSA9PSBvdGhlci5tX2NteWthLT5hOwotICAgIGNhc2UgR3JhZGllbnQ6Ci0gICAg
Y2FzZSBJbWFnZVBhdHRlcm46Ci0gICAgY2FzZSBDdXJyZW50Q29sb3I6Ci0gICAgY2FzZSBDdXJy
ZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBoYToKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNh
c2UgSW52YWxpZDoKLSAgICAgICAgYnJlYWs7CisgICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJuYXRp
dmU8Q01ZS0FDb2xvcj4obV9zdHlsZSkgJiYgV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDTVlLQUNv
bG9yPihvdGhlci5tX3N0eWxlKSkgeworICAgICAgICBhdXRvJiBhID0gV1RGOjpnZXQ8Q01ZS0FD
b2xvcj4obV9zdHlsZSk7CisgICAgICAgIGF1dG8mIGIgPSBXVEY6OmdldDxDTVlLQUNvbG9yPihv
dGhlci5tX3N0eWxlKTsKKyAgICAgICAgcmV0dXJuIGEuYyA9PSBiLmMgJiYgYS5tID09IGIubSAm
JiBhLnkgPT0gYi55ICYmIGEuayA9PSBiLmsgJiYgYS5hID09IGIuYTsKICAgICB9CiAKLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgQ2FudmFz
U3R5bGU6OmlzRXF1aXZhbGVudFJHQkEoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQg
YSkgY29uc3QKIHsKLSAgICBpZiAobV90eXBlICE9IFJHQkEpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIHJldHVybiBtX2NvbG9yID09IENvbG9yKHIsIGcsIGIsIGEpOworICAgIHJldHVy
biBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENvbG9yPihtX3N0eWxlKSAmJiBXVEY6OmdldDxDb2xv
cj4obV9zdHlsZSkgPT0gQ29sb3IgeyByLCBnLCBiLCBhIH07CiB9CiAKIGJvb2wgQ2FudmFzU3R5
bGU6OmlzRXF1aXZhbGVudENNWUtBKGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGss
IGZsb2F0IGEpIGNvbnN0CiB7Ci0gICAgaWYgKG1fdHlwZSAhPSBDTVlLQSkKKyAgICBpZiAoIVdU
Rjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q01ZS0FDb2xvcj4obV9zdHlsZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIHJldHVybiBjID09IG1fY215a2EtPmMKLSAgICAgICAgJiYgbSA9PSBt
X2NteWthLT5tCi0gICAgICAgICYmIHkgPT0gbV9jbXlrYS0+eQotICAgICAgICAmJiBrID09IG1f
Y215a2EtPmsKLSAgICAgICAgJiYgYSA9PSBtX2NteWthLT5hOwotfQotCi1DYW52YXNTdHlsZTo6
Q2FudmFzU3R5bGUoY29uc3QgQ2FudmFzU3R5bGUmIG90aGVyKQotewotICAgIG1lbWNweSh0aGlz
LCAmb3RoZXIsIHNpemVvZihDYW52YXNTdHlsZSkpOwotICAgIGlmIChtX3R5cGUgPT0gR3JhZGll
bnQpCi0gICAgICAgIG1fZ3JhZGllbnQtPnJlZigpOwotICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBJ
bWFnZVBhdHRlcm4pCi0gICAgICAgIG1fcGF0dGVybi0+cmVmKCk7Ci0gICAgZWxzZSBpZiAobV90
eXBlID09IENNWUtBKQotICAgICAgICBtX2NteWthID0gbmV3IENNWUtBVmFsdWVzKG90aGVyLm1f
Y215a2EtPmNvbG9yLCBvdGhlci5tX2NteWthLT5jLCBvdGhlci5tX2NteWthLT5tLCBvdGhlci5t
X2NteWthLT55LCBvdGhlci5tX2NteWthLT5rLCBvdGhlci5tX2NteWthLT5hKTsKLX0KLQotQ2Fu
dmFzU3R5bGUmIENhbnZhc1N0eWxlOjpvcGVyYXRvcj0oY29uc3QgQ2FudmFzU3R5bGUmIG90aGVy
KQotewotICAgIGlmICh0aGlzICE9ICZvdGhlcikgewotICAgICAgICB0aGlzLT5+Q2FudmFzU3R5
bGUoKTsKLSAgICAgICAgbmV3ICh0aGlzKSBDYW52YXNTdHlsZShvdGhlcik7Ci0gICAgfQotICAg
IHJldHVybiAqdGhpczsKKyAgICBhdXRvJiBjaGFubmVscyA9IFdURjo6Z2V0PENNWUtBQ29sb3I+
KG1fc3R5bGUpOworICAgIHJldHVybiBjID09IGNoYW5uZWxzLmMgJiYgbSA9PSBjaGFubmVscy5t
ICYmIHkgPT0gY2hhbm5lbHMueSAmJiBrID09IGNoYW5uZWxzLmsgJiYgYSA9PSBjaGFubmVscy5h
OwogfQogCi12b2lkIENhbnZhc1N0eWxlOjphcHBseVN0cm9rZUNvbG9yKEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCkgY29uc3QKK3ZvaWQgQ2FudmFzU3R5bGU6OmFwcGx5U3Ryb2tlQ29sb3IoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAogewotICAgIGlmICghY29udGV4dCkKLSAgICAg
ICAgcmV0dXJuOwotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBSR0JBOgotICAgICAg
ICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihtX2NvbG9yKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBDTVlLQTogewotICAgICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdoIHBsYXRmb3Jt
LWluZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCi0gICAgICAgIC8vIFdlJ2xsIG5lZWQg
YSBmYW5jaWVyIENvbG9yIGFic3RyYWN0aW9uIHRvIHN1cHBvcnQgQ01ZS0EgY29ycmVjdGx5Cisg
ICAgV1RGOjpzd2l0Y2hPbihtX3N0eWxlLAorICAgICAgICBbJmNvbnRleHRdIChjb25zdCBDb2xv
ciYgY29sb3IpIHsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IoY29sb3IpOwor
ICAgICAgICB9LAorICAgICAgICBbJmNvbnRleHRdIChjb25zdCBDTVlLQUNvbG9yJiBjb2xvcikg
eworICAgICAgICAgICAgLy8gRklYTUU6IERvIHRoaXMgdGhyb3VnaCBwbGF0Zm9ybS1pbmRlcGVu
ZGVudCBHcmFwaGljc0NvbnRleHQgQVBJLgorICAgICAgICAgICAgLy8gV2UnbGwgbmVlZCBhIGZh
bmNpZXIgQ29sb3IgYWJzdHJhY3Rpb24gdG8gc3VwcG9ydCBDTVlLQSBjb3JyZWN0bHkKICNpZiBV
U0UoQ0cpCi0gICAgICAgIENHQ29udGV4dFNldENNWUtTdHJva2VDb2xvcihjb250ZXh0LT5wbGF0
Zm9ybUNvbnRleHQoKSwgbV9jbXlrYS0+YywgbV9jbXlrYS0+bSwgbV9jbXlrYS0+eSwgbV9jbXlr
YS0+aywgbV9jbXlrYS0+YSk7CisgICAgICAgICAgICBDR0NvbnRleHRTZXRDTVlLU3Ryb2tlQ29s
b3IoY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSwgY29sb3IuYywgY29sb3IubSwgY29sb3IueSwg
Y29sb3IuaywgY29sb3IuYSk7CiAjZWxzZQotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xv
cihtX2NteWthLT5jb2xvcik7CisgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGNv
bG9yLmNvbG9yKTsKICNlbmRpZgotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBHcmFk
aWVudDoKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlR3JhZGllbnQoY2FudmFzR3JhZGllbnQo
KS0+Z3JhZGllbnQoKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW1hZ2VQYXR0ZXJuOgot
ICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VQYXR0ZXJuKGNhbnZhc1BhdHRlcm4oKS0+cGF0dGVy
bigpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDdXJyZW50Q29sb3I6Ci0gICAgY2FzZSBD
dXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBoYToKLSAgICBjYXNlIEludmFsaWQ6Ci0gICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLXZvaWQg
Q2FudmFzU3R5bGU6OmFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkgY29u
c3QKLXsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICBzd2l0Y2ggKG1f
dHlwZSkgewotICAgIGNhc2UgUkdCQToKLSAgICAgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKG1f
Y29sb3IpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENNWUtBOiB7Ci0gICAgICAgIC8vIEZJ
WE1FOiBEbyB0aGlzIHRocm91Z2ggcGxhdGZvcm0taW5kZXBlbmRlbnQgR3JhcGhpY3NDb250ZXh0
IEFQSS4KLSAgICAgICAgLy8gV2UnbGwgbmVlZCBhIGZhbmNpZXIgQ29sb3IgYWJzdHJhY3Rpb24g
dG8gc3VwcG9ydCBDTVlLQSBjb3JyZWN0bHkKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0
XSAoY29uc3QgUmVmUHRyPENhbnZhc0dyYWRpZW50PiYgZ3JhZGllbnQpIHsKKyAgICAgICAgICAg
IGNvbnRleHQuc2V0U3Ryb2tlR3JhZGllbnQoZ3JhZGllbnQtPmdyYWRpZW50KCkpOworICAgICAg
ICB9LAorICAgICAgICBbJmNvbnRleHRdIChjb25zdCBSZWZQdHI8Q2FudmFzUGF0dGVybj4mIHBh
dHRlcm4pIHsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlUGF0dGVybihwYXR0ZXJuLT5w
YXR0ZXJuKCkpOworICAgICAgICB9LAorICAgICAgICBbXSAoY29uc3QgQ3VycmVudENvbG9yJikg
eworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0sCisgICAgICAg
IFtdIChjb25zdCBJbnZhbGlkJikgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIH0KKyAgICApOworfQorCit2b2lkIENhbnZhc1N0eWxlOjphcHBseUZpbGxDb2xv
cihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0Cit7CisgICAgV1RGOjpzd2l0Y2hPbiht
X3N0eWxlLAorICAgICAgICBbJmNvbnRleHRdIChjb25zdCBDb2xvciYgY29sb3IpIHsKKyAgICAg
ICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGNvbG9yKTsKKyAgICAgICAgfSwKKyAgICAgICAg
WyZjb250ZXh0XSAoY29uc3QgQ01ZS0FDb2xvciYgY29sb3IpIHsKKyAgICAgICAgICAgIC8vIEZJ
WE1FOiBEbyB0aGlzIHRocm91Z2ggcGxhdGZvcm0taW5kZXBlbmRlbnQgR3JhcGhpY3NDb250ZXh0
IEFQSS4KKyAgICAgICAgICAgIC8vIFdlJ2xsIG5lZWQgYSBmYW5jaWVyIENvbG9yIGFic3RyYWN0
aW9uIHRvIHN1cHBvcnQgQ01ZS0EgY29ycmVjdGx5CiAjaWYgVVNFKENHKQotICAgICAgICBDR0Nv
bnRleHRTZXRDTVlLRmlsbENvbG9yKGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLCBtX2NteWth
LT5jLCBtX2NteWthLT5tLCBtX2NteWthLT55LCBtX2NteWthLT5rLCBtX2NteWthLT5hKTsKKyAg
ICAgICAgICAgIENHQ29udGV4dFNldENNWUtGaWxsQ29sb3IoY29udGV4dC5wbGF0Zm9ybUNvbnRl
eHQoKSwgY29sb3IuYywgY29sb3IubSwgY29sb3IueSwgY29sb3IuaywgY29sb3IuYSk7CiAjZWxz
ZQotICAgICAgICBjb250ZXh0LT5zZXRGaWxsQ29sb3IobV9jbXlrYS0+Y29sb3IpOworICAgICAg
ICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IoY29sb3IuY29sb3IpOwogI2VuZGlmCi0gICAgICAg
IGJyZWFrOwotICAgIH0KLSAgICBjYXNlIEdyYWRpZW50OgotICAgICAgICBjb250ZXh0LT5zZXRG
aWxsR3JhZGllbnQoY2FudmFzR3JhZGllbnQoKS0+Z3JhZGllbnQoKSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgSW1hZ2VQYXR0ZXJuOgotICAgICAgICBjb250ZXh0LT5zZXRGaWxsUGF0dGVy
bihjYW52YXNQYXR0ZXJuKCktPnBhdHRlcm4oKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
Q3VycmVudENvbG9yOgotICAgIGNhc2UgQ3VycmVudENvbG9yV2l0aE92ZXJyaWRlQWxwaGE6Ci0g
ICAgY2FzZSBJbnZhbGlkOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgfQorICAgICAgICB9LAorICAgICAgICBbJmNvbnRleHRdIChjb25zdCBSZWZQ
dHI8Q2FudmFzR3JhZGllbnQ+JiBncmFkaWVudCkgeworICAgICAgICAgICAgY29udGV4dC5zZXRG
aWxsR3JhZGllbnQoZ3JhZGllbnQtPmdyYWRpZW50KCkpOworICAgICAgICB9LAorICAgICAgICBb
JmNvbnRleHRdIChjb25zdCBSZWZQdHI8Q2FudmFzUGF0dGVybj4mIHBhdHRlcm4pIHsKKyAgICAg
ICAgICAgIGNvbnRleHQuc2V0RmlsbFBhdHRlcm4ocGF0dGVybi0+cGF0dGVybigpKTsKKyAgICAg
ICAgfSwKKyAgICAgICAgW10gKGNvbnN0IEN1cnJlbnRDb2xvciYpIHsKKyAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9LAorICAgICAgICBbXSAoY29uc3QgSW52YWxp
ZCYpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAg
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
U3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgKaW5kZXgg
YjZiZjQ3YzQwM2MzZDllOTU2MDU2OTE0YTA0YmJjMzBhMGFhYmEyYi4uZDc4MDMwYWM5ZWYwNjc5
ODFlY2EwZThlZGU2ZDRiNzI0ODZmNWJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNTdHlsZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CkBAIC0yNiwxMzUgKzI2LDEwMCBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgIkNhbnZhc0dyYWRpZW50LmgiCisjaW5jbHVkZSAiQ2FudmFzUGF0dGVybi5o
IgogI2luY2x1ZGUgIkNvbG9yLmgiCi0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBDYW52YXNHcmFkaWVudDsKLSAgICBjbGFz
cyBDYW52YXNQYXR0ZXJuOwotICAgIGNsYXNzIERvY3VtZW50OwotICAgIGNsYXNzIEdyYXBoaWNz
Q29udGV4dDsKLSAgICBjbGFzcyBIVE1MQ2FudmFzRWxlbWVudDsKLQotICAgIGNsYXNzIENhbnZh
c1N0eWxlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIENhbnZhc1N0eWxlKCk7Ci0gICAgICAgIGV4
cGxpY2l0IENhbnZhc1N0eWxlKENvbG9yKTsKLSAgICAgICAgQ2FudmFzU3R5bGUoZmxvYXQgZ3Jh
eUxldmVsLCBmbG9hdCBhbHBoYSk7Ci0gICAgICAgIENhbnZhc1N0eWxlKGZsb2F0IHIsIGZsb2F0
IGcsIGZsb2F0IGIsIGZsb2F0IGFscGhhKTsKLSAgICAgICAgQ2FudmFzU3R5bGUoZmxvYXQgYywg
ZmxvYXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYWxwaGEpOwotICAgICAgICBleHBsaWNp
dCBDYW52YXNTdHlsZShQYXNzUmVmUHRyPENhbnZhc0dyYWRpZW50Pik7Ci0gICAgICAgIGV4cGxp
Y2l0IENhbnZhc1N0eWxlKFBhc3NSZWZQdHI8Q2FudmFzUGF0dGVybj4pOwotICAgICAgICB+Q2Fu
dmFzU3R5bGUoKTsKLQotICAgICAgICBzdGF0aWMgQ2FudmFzU3R5bGUgY3JlYXRlRnJvbVN0cmlu
Zyhjb25zdCBTdHJpbmcmIGNvbG9yLCBEb2N1bWVudCogPSAwKTsKLSAgICAgICAgc3RhdGljIENh
bnZhc1N0eWxlIGNyZWF0ZUZyb21TdHJpbmdXaXRoT3ZlcnJpZGVBbHBoYShjb25zdCBTdHJpbmcm
IGNvbG9yLCBmbG9hdCBhbHBoYSk7Ci0KLSAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlICE9IEludmFsaWQ7IH0KLSAgICAgICAgYm9vbCBpc0N1cnJlbnRDb2xvcigp
IGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBDdXJyZW50Q29sb3IgfHwgbV90eXBlID09IEN1cnJl
bnRDb2xvcldpdGhPdmVycmlkZUFscGhhOyB9Ci0gICAgICAgIGJvb2wgaGFzT3ZlcnJpZGVBbHBo
YSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBo
YTsgfQotICAgICAgICBmbG9hdCBvdmVycmlkZUFscGhhKCkgY29uc3QgeyBBU1NFUlQobV90eXBl
ID09IEN1cnJlbnRDb2xvcldpdGhPdmVycmlkZUFscGhhKTsgcmV0dXJuIG1fb3ZlcnJpZGVBbHBo
YTsgfQotCi0gICAgICAgIFN0cmluZyBjb2xvcigpIGNvbnN0OwotICAgICAgICBDYW52YXNHcmFk
aWVudCogY2FudmFzR3JhZGllbnQoKSBjb25zdDsKLSAgICAgICAgQ2FudmFzUGF0dGVybiogY2Fu
dmFzUGF0dGVybigpIGNvbnN0OwotCi0gICAgICAgIHZvaWQgYXBwbHlGaWxsQ29sb3IoR3JhcGhp
Y3NDb250ZXh0KikgY29uc3Q7Ci0gICAgICAgIHZvaWQgYXBwbHlTdHJva2VDb2xvcihHcmFwaGlj
c0NvbnRleHQqKSBjb25zdDsKLQotICAgICAgICBib29sIGlzRXF1aXZhbGVudENvbG9yKGNvbnN0
IENhbnZhc1N0eWxlJikgY29uc3Q7Ci0gICAgICAgIGJvb2wgaXNFcXVpdmFsZW50UkdCQShmbG9h
dCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhKSBjb25zdDsKLSAgICAgICAgYm9vbCBpc0Vx
dWl2YWxlbnRDTVlLQShmbG9hdCBjLCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBh
KSBjb25zdDsKLQotICAgICAgICBDYW52YXNTdHlsZShjb25zdCBDYW52YXNTdHlsZSYpOwotICAg
ICAgICBDYW52YXNTdHlsZSYgb3BlcmF0b3I9KGNvbnN0IENhbnZhc1N0eWxlJik7Ci0gICAgICAg
IENhbnZhc1N0eWxlKENhbnZhc1N0eWxlJiYpOwotICAgICAgICBDYW52YXNTdHlsZSYgb3BlcmF0
b3I9KENhbnZhc1N0eWxlJiYpOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgZW51bSBUeXBlIHsg
UkdCQSwgQ01ZS0EsIEdyYWRpZW50LCBJbWFnZVBhdHRlcm4sIEN1cnJlbnRDb2xvciwgQ3VycmVu
dENvbG9yV2l0aE92ZXJyaWRlQWxwaGEsIEludmFsaWQgfTsKLSAgICAgICAgc3RydWN0IENNWUtB
VmFsdWVzIHsKLSAgICAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgICAgICAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ01ZS0FWYWx1ZXMpOwotICAgICAgICBwdWJsaWM6Ci0g
ICAgICAgICAgICBDTVlLQVZhbHVlcygpCi0gICAgICAgICAgICAgICAgOiBjb2xvcigpLCBjKDAp
LCBtKDApLCB5KDApLCBrKDApLCBhKDApCi0gICAgICAgICAgICB7IH0KLQotICAgICAgICAgICAg
Q01ZS0FWYWx1ZXMoQ29sb3IgY29sb3IsIGZsb2F0IGN5YW4sIGZsb2F0IG1hZ2VudGEsIGZsb2F0
IHllbGxvdywgZmxvYXQgYmxhY2ssIGZsb2F0IGFscGhhKQotICAgICAgICAgICAgICAgIDogY29s
b3IoY29sb3IpLCBjKGN5YW4pLCBtKG1hZ2VudGEpLCB5KHllbGxvdyksIGsoYmxhY2spLCBhKGFs
cGhhKQotICAgICAgICAgICAgeyB9Ci0gICAgICAgICAgICBDb2xvciBjb2xvcjsKLSAgICAgICAg
ICAgIGZsb2F0IGM7Ci0gICAgICAgICAgICBmbG9hdCBtOwotICAgICAgICAgICAgZmxvYXQgeTsK
LSAgICAgICAgICAgIGZsb2F0IGs7Ci0gICAgICAgICAgICBmbG9hdCBhOwotICAgICAgICB9Owot
Ci0gICAgICAgIGVudW0gQ29uc3RydWN0Q3VycmVudENvbG9yVGFnIHsgQ29uc3RydWN0Q3VycmVu
dENvbG9yIH07Ci0gICAgICAgIENhbnZhc1N0eWxlKENvbnN0cnVjdEN1cnJlbnRDb2xvclRhZykg
OiBtX3R5cGUoQ3VycmVudENvbG9yKSB7IH0KLSAgICAgICAgQ2FudmFzU3R5bGUoVHlwZSB0eXBl
LCBmbG9hdCBvdmVycmlkZUFscGhhKQotICAgICAgICAgICAgOiBtX292ZXJyaWRlQWxwaGEob3Zl
cnJpZGVBbHBoYSkKLSAgICAgICAgICAgICwgbV90eXBlKHR5cGUpCitjbGFzcyBEb2N1bWVudDsK
K2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKK2NsYXNzIEhUTUxDYW52YXNFbGVtZW50OworCitjbGFz
cyBDYW52YXNTdHlsZSB7CitwdWJsaWM6CisgICAgQ2FudmFzU3R5bGUoKTsKKyAgICBDYW52YXNT
dHlsZShDb2xvcik7CisgICAgQ2FudmFzU3R5bGUoZmxvYXQgZ3JheUxldmVsLCBmbG9hdCBhbHBo
YSk7CisgICAgQ2FudmFzU3R5bGUoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQgYWxw
aGEpOworICAgIENhbnZhc1N0eWxlKGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGss
IGZsb2F0IGFscGhhKTsKKyAgICBDYW52YXNTdHlsZShDYW52YXNHcmFkaWVudCYpOworICAgIENh
bnZhc1N0eWxlKENhbnZhc1BhdHRlcm4mKTsKKworICAgIHN0YXRpYyBDYW52YXNTdHlsZSBjcmVh
dGVGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgY29sb3IsIERvY3VtZW50KiA9IG51bGxwdHIpOwor
ICAgIHN0YXRpYyBDYW52YXNTdHlsZSBjcmVhdGVGcm9tU3RyaW5nV2l0aE92ZXJyaWRlQWxwaGEo
Y29uc3QgU3RyaW5nJiBjb2xvciwgZmxvYXQgYWxwaGEpOworCisgICAgYm9vbCBpc1ZhbGlkKCkg
Y29uc3QgeyByZXR1cm4gIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8SW52YWxpZD4obV9zdHlsZSk7
IH0KKyAgICBib29sIGlzQ3VycmVudENvbG9yKCkgY29uc3QgeyByZXR1cm4gV1RGOjpob2xkc19h
bHRlcm5hdGl2ZTxDdXJyZW50Q29sb3I+KG1fc3R5bGUpOyB9CisgICAgYm9vbCBoYXNPdmVycmlk
ZUFscGhhKCkgY29uc3QgeyByZXR1cm4gaXNDdXJyZW50Q29sb3IoKSAmJiBXVEY6OmdldDxDdXJy
ZW50Q29sb3I+KG1fc3R5bGUpLm92ZXJyaWRlQWxwaGE7IH0KKyAgICBmbG9hdCBvdmVycmlkZUFs
cGhhKCkgY29uc3QgeyByZXR1cm4gV1RGOjpnZXQ8Q3VycmVudENvbG9yPihtX3N0eWxlKS5vdmVy
cmlkZUFscGhhLnZhbHVlKCk7IH0KKworICAgIFN0cmluZyBjb2xvcigpIGNvbnN0OworICAgIENh
bnZhc0dyYWRpZW50KiBjYW52YXNHcmFkaWVudCgpIGNvbnN0OworICAgIENhbnZhc1BhdHRlcm4q
IGNhbnZhc1BhdHRlcm4oKSBjb25zdDsKKworICAgIHZvaWQgYXBwbHlGaWxsQ29sb3IoR3JhcGhp
Y3NDb250ZXh0JikgY29uc3Q7CisgICAgdm9pZCBhcHBseVN0cm9rZUNvbG9yKEdyYXBoaWNzQ29u
dGV4dCYpIGNvbnN0OworCisgICAgYm9vbCBpc0VxdWl2YWxlbnRDb2xvcihjb25zdCBDYW52YXNT
dHlsZSYpIGNvbnN0OworICAgIGJvb2wgaXNFcXVpdmFsZW50UkdCQShmbG9hdCByZWQsIGZsb2F0
IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSkgY29uc3Q7CisgICAgYm9vbCBpc0VxdWl2
YWxlbnRDTVlLQShmbG9hdCBjeWFuLCBmbG9hdCBtYWdlbnRhLCBmbG9hdCB5ZWxsb3csIGZsb2F0
IGJsYWNrLCBmbG9hdCBhbHBoYSkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgc3RydWN0IEludmFs
aWQgeyB9OworCisgICAgc3RydWN0IENNWUtBQ29sb3IgeworICAgICAgICBDTVlLQUNvbG9yKCkg
PSBkZWZhdWx0OworCisgICAgICAgIENNWUtBQ29sb3IoQ29sb3IgY29sb3IsIGZsb2F0IGN5YW4s
IGZsb2F0IG1hZ2VudGEsIGZsb2F0IHllbGxvdywgZmxvYXQgYmxhY2ssIGZsb2F0IGFscGhhKQor
ICAgICAgICAgICAgOiBjb2xvcihjb2xvciksIGMoY3lhbiksIG0obWFnZW50YSksIHkoeWVsbG93
KSwgayhibGFjayksIGEoYWxwaGEpCiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIHVu
aW9uIHsKLSAgICAgICAgICAgIENvbG9yIG1fY29sb3I7Ci0gICAgICAgICAgICBmbG9hdCBtX292
ZXJyaWRlQWxwaGE7Ci0gICAgICAgICAgICBDYW52YXNHcmFkaWVudCogbV9ncmFkaWVudDsKLSAg
ICAgICAgICAgIENhbnZhc1BhdHRlcm4qIG1fcGF0dGVybjsKLSAgICAgICAgICAgIENNWUtBVmFs
dWVzKiBtX2NteWthOwotICAgICAgICB9OwotICAgICAgICBUeXBlIG1fdHlwZTsKKyAgICAgICAg
Q29sb3IgY29sb3I7CisgICAgICAgIGZsb2F0IGMgeyAwIH07CisgICAgICAgIGZsb2F0IG0geyAw
IH07CisgICAgICAgIGZsb2F0IHkgeyAwIH07CisgICAgICAgIGZsb2F0IGsgeyAwIH07CisgICAg
ICAgIGZsb2F0IGEgeyAwIH07CiAgICAgfTsKIAotICAgIENvbG9yIGN1cnJlbnRDb2xvcihIVE1M
Q2FudmFzRWxlbWVudCopOwotICAgIENvbG9yIHBhcnNlQ29sb3JPckN1cnJlbnRDb2xvcihjb25z
dCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBIVE1MQ2FudmFzRWxlbWVudCopOwotCi0gICAgaW5saW5l
IENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZSgpCi0gICAgICAgIDogbV90eXBlKEludmFsaWQpCi0g
ICAgewotICAgIH0KLQotICAgIGlubGluZSBDYW52YXNHcmFkaWVudCogQ2FudmFzU3R5bGU6OmNh
bnZhc0dyYWRpZW50KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmIChtX3R5cGUgPT0gR3JhZGll
bnQpCi0gICAgICAgICAgICByZXR1cm4gbV9ncmFkaWVudDsKLSAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgfQotCi0gICAgaW5saW5lIENhbnZhc1BhdHRlcm4qIENhbnZhc1N0eWxlOjpjYW52YXNQYXR0
ZXJuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmIChtX3R5cGUgPT0gSW1hZ2VQYXR0ZXJuKQot
ICAgICAgICAgICAgcmV0dXJuIG1fcGF0dGVybjsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQot
Ci0gICAgaW5saW5lIFN0cmluZyBDYW52YXNTdHlsZTo6Y29sb3IoKSBjb25zdAotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG1fdHlwZSA9PSBSR0JBIHx8IG1fdHlwZSA9PSBDTVlLQSk7Ci0gICAgICAg
IGlmIChtX3R5cGUgPT0gUkdCQSkKLSAgICAgICAgICAgIHJldHVybiBtX2NvbG9yLnNlcmlhbGl6
ZWQoKTsKLSAgICAgICAgcmV0dXJuIG1fY215a2EtPmNvbG9yLnNlcmlhbGl6ZWQoKTsKLSAgICB9
Ci0KLSAgICBpbmxpbmUgQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKENhbnZhc1N0eWxlJiYgb3Ro
ZXIpCi0gICAgewotICAgICAgICBtZW1jcHkodGhpcywgJm90aGVyLCBzaXplb2YoQ2FudmFzU3R5
bGUpKTsKLSAgICAgICAgb3RoZXIubV90eXBlID0gSW52YWxpZDsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgQ2FudmFzU3R5bGUmIENhbnZhc1N0eWxlOjpvcGVyYXRvcj0oQ2FudmFzU3R5bGUmJiBvdGhl
cikKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzICE9ICZvdGhlcikgewotICAgICAgICAgICAgbWVt
Y3B5KHRoaXMsICZvdGhlciwgc2l6ZW9mKENhbnZhc1N0eWxlKSk7Ci0gICAgICAgICAgICBvdGhl
ci5tX3R5cGUgPSBJbnZhbGlkOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAg
ICB9CisgICAgc3RydWN0IEN1cnJlbnRDb2xvciB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8Zmxv
YXQ+IG92ZXJyaWRlQWxwaGE7CisgICAgfTsKKworICAgIENhbnZhc1N0eWxlKEN1cnJlbnRDb2xv
cik7CisKKyAgICBWYXJpYW50PEludmFsaWQsIENvbG9yLCBDTVlLQUNvbG9yLCBSZWZQdHI8Q2Fu
dmFzR3JhZGllbnQ+LCBSZWZQdHI8Q2FudmFzUGF0dGVybj4sIEN1cnJlbnRDb2xvcj4gbV9zdHls
ZTsKK307CisKK0NvbG9yIGN1cnJlbnRDb2xvcihIVE1MQ2FudmFzRWxlbWVudCopOworQ29sb3Ig
cGFyc2VDb2xvck9yQ3VycmVudENvbG9yKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIEhUTUxD
YW52YXNFbGVtZW50Kik7CisKK2lubGluZSBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoKQorICAg
IDogbV9zdHlsZShJbnZhbGlkIHsgfSkKK3sKK30KKworaW5saW5lIENhbnZhc0dyYWRpZW50KiBD
YW52YXNTdHlsZTo6Y2FudmFzR3JhZGllbnQoKSBjb25zdAoreworICAgIGlmICghV1RGOjpob2xk
c19hbHRlcm5hdGl2ZTxSZWZQdHI8Q2FudmFzR3JhZGllbnQ+PihtX3N0eWxlKSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFdURjo6Z2V0PFJlZlB0cjxDYW52YXNHcmFkaWVu
dD4+KG1fc3R5bGUpLmdldCgpOworfQorCitpbmxpbmUgQ2FudmFzUGF0dGVybiogQ2FudmFzU3R5
bGU6OmNhbnZhc1BhdHRlcm4oKSBjb25zdAoreworICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5h
dGl2ZTxSZWZQdHI8Q2FudmFzUGF0dGVybj4+KG1fc3R5bGUpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gV1RGOjpnZXQ8UmVmUHRyPENhbnZhc1BhdHRlcm4+PihtX3N0eWxl
KS5nZXQoKTsKK30KKworaW5saW5lIFN0cmluZyBDYW52YXNTdHlsZTo6Y29sb3IoKSBjb25zdAor
eworICAgIGF1dG8mIGNvbG9yID0gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDb2xvcj4obV9zdHls
ZSkgPyBXVEY6OmdldDxDb2xvcj4obV9zdHlsZSkgOiBXVEY6OmdldDxDTVlLQUNvbG9yPihtX3N0
eWxlKS5jb2xvcjsKKyAgICByZXR1cm4gY29sb3Iuc2VyaWFsaXplZCgpOworfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9P
RVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNW
ZXJ0ZXhBcnJheU9iamVjdC5jcHAKaW5kZXggYzhiMTBmN2JmYmM2ODFkOGFhODU5NTlhM2YxZTI3
ZDYzNzhlNjlhZS4uMTExYmMzYmU2NmM0NDg3ODYzYmJiNGM2OWMxNGVkY2FmMzAxOTA0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0
LmNwcApAQCAtMjQsMTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIk9FU1ZlcnRleEFycmF5T2JqZWN0LmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNp
bmNsdWRlICJPRVNWZXJ0ZXhBcnJheU9iamVjdC5oIgotCiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNE
LmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCiAKQEAgLTQ5LDggKzQ4LDgg
QEAgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IE9FU1ZlcnRleEFycmF5T2JqZWN0
OjpjcmVhdGVWZXJ0ZXhBcnJheU9FUygpCiAgICAgaWYgKG1fY29udGV4dC5pc0NvbnRleHRMb3N0
KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBvYmplY3QgPSBXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUobV9jb250ZXh0LCBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTOjpWQU9UeXBlVXNlcik7Ci0gICAgbV9jb250ZXh0LmFkZENvbnRleHRPYmplY3Qob2Jq
ZWN0LnB0cigpKTsKKyAgICBhdXRvIG9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6
OmNyZWF0ZShtX2NvbnRleHQsIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OlR5cGU6OlVzZXIp
OworICAgIG1fY29udGV4dC5hZGRDb250ZXh0T2JqZWN0KG9iamVjdC5nZXQoKSk7CiAgICAgcmV0
dXJuIFdURk1vdmUob2JqZWN0KTsKIH0KIApAQCAtNTgsOSArNTcsOSBAQCB2b2lkIE9FU1ZlcnRl
eEFycmF5T2JqZWN0OjpkZWxldGVWZXJ0ZXhBcnJheU9FUyhXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTKiBhcnJheQogewogICAgIGlmICghYXJyYXlPYmplY3QgfHwgbV9jb250ZXh0LmlzQ29udGV4
dExvc3QoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGlmICghYXJyYXlPYmplY3QtPmlz
RGVmYXVsdE9iamVjdCgpICYmIGFycmF5T2JqZWN0ID09IHN0YXRpY19jYXN0PFdlYkdMUmVuZGVy
aW5nQ29udGV4dCo+KCZtX2NvbnRleHQpLT5tX2JvdW5kVmVydGV4QXJyYXlPYmplY3QpCi0gICAg
ICAgIHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCo+KCZtX2NvbnRleHQpLT5zZXRC
b3VuZFZlcnRleEFycmF5T2JqZWN0KDApOworCisgICAgaWYgKCFhcnJheU9iamVjdC0+aXNEZWZh
dWx0T2JqZWN0KCkgJiYgYXJyYXlPYmplY3QgPT0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdD
b250ZXh0Jj4obV9jb250ZXh0KS5tX2JvdW5kVmVydGV4QXJyYXlPYmplY3QpCisgICAgICAgIHN0
YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCY+KG1fY29udGV4dCkuc2V0Qm91bmRWZXJ0
ZXhBcnJheU9iamVjdChudWxscHRyKTsKIAogICAgIGFycmF5T2JqZWN0LT5kZWxldGVPYmplY3Qo
bV9jb250ZXh0LmdyYXBoaWNzQ29udGV4dDNEKCkpOwogfQpAQCAtODksNyArODgsNyBAQCB2b2lk
IE9FU1ZlcnRleEFycmF5T2JqZWN0OjpiaW5kVmVydGV4QXJyYXlPRVMoV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdE9FUyogYXJyYXlPYgogICAgICAgICBjb250ZXh0LnNldEJvdW5kVmVydGV4QXJyYXlP
YmplY3QoYXJyYXlPYmplY3QpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGV4dGVuc2lvbnMuYmlu
ZFZlcnRleEFycmF5T0VTKDApOwotICAgICAgICBjb250ZXh0LnNldEJvdW5kVmVydGV4QXJyYXlP
YmplY3QoMCk7CisgICAgICAgIGNvbnRleHQuc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChudWxs
cHRyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggNDgwYTBjYTk1YjUxODMxMjM4MGM5Y2Vm
Yjg0NDhmMjU5MTA4MTgxNy4uNzljMTNjMmY2ZDNkZDJjNmNlNTA3YjFjMWE1ZmY1MDZkOGZkY2Jm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVy
aW5nQ29udGV4dC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjQsMTAgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgotCi0jaWYgRU5BQkxFKFdFQkdMKSAmJiBFTkFCTEUoV0VCR0wyKQogI2luY2x1ZGUgIldlYkdM
MlJlbmRlcmluZ0NvbnRleHQuaCIKIAorI2lmIEVOQUJMRShXRUJHTDIpCisKICNpbmNsdWRlICJD
YWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIgog
I2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgpAQCAtNjMsNyArNjMsNyBAQCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBwYXNz
ZWRDYW52YXMsCiB7CiB9CiAKLVdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OldlYkdMMlJlbmRlcmlu
Z0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUmVmUHRyPEdyYXBoaWNz
Q29udGV4dDNEPiYmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1
dGVzKQorV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1M
Q2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29u
dGV4dCwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgOiBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlKHBhc3NlZENhbnZhcywgV1RGTW92ZShjb250ZXh0KSwgYXR0
cmlidXRlcykKIHsKICAgICBpbml0aWFsaXplU2hhZGVyRXh0ZW5zaW9ucygpOwpAQCAtNzIsOCAr
NzIsOCBAQCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0KEhU
TUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsCiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cygpCiB7Ci0gICAgbV9kZWZhdWx0VmVy
dGV4QXJyYXlPYmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdl
YkdMVmVydGV4QXJyYXlPYmplY3Q6OlZBT1R5cGVEZWZhdWx0KTsKLSAgICBhZGRDb250ZXh0T2Jq
ZWN0KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0LmdldCgpKTsKKyAgICBtX2RlZmF1bHRWZXJ0
ZXhBcnJheU9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZSgqdGhpcywgV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdDo6VHlwZTo6RGVmYXVsdCk7CisgICAgYWRkQ29udGV4dE9iamVj
dCgqbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QpOwogICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9i
amVjdCA9IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OwogICAgIGlmICghaXNHTEVTMkNvbXBs
aWFudCgpKQogICAgICAgICBpbml0VmVydGV4QXR0cmliMCgpOwpAQCAtMjAzLDcgKzIwMyw3IEBA
IHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y29weUJ1ZmZlclN1YkRhdGEoR0MzRGVudW0g
cmVhZFRhcmdldCwgR0MzRGVudW0gd3JpCiAgICAgfQogCiAgICAgbV9jb250ZXh0LT5tb3ZlRXJy
b3JzVG9TeW50aGV0aWNFcnJvckxpc3QoKTsKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JN
KElPUykKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBtX2NvbnRleHQtPmNvcHlCdWZmZXJTdWJE
YXRhKHJlYWRUYXJnZXQsIHdyaXRlVGFyZ2V0LCBjaGVja2VkUmVhZE9mZnNldC51bnNhZmVHZXQo
KSwgY2hlY2tlZFdyaXRlT2Zmc2V0LnVuc2FmZUdldCgpLCBjaGVja2VkU2l6ZS51bnNhZmVHZXQo
KSk7CiAjZW5kaWYKICAgICBpZiAobV9jb250ZXh0LT5tb3ZlRXJyb3JzVG9TeW50aGV0aWNFcnJv
ckxpc3QoKSkgewpAQCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0QnVmZmVyU3ViRGF0YShHQzNEZW51bSB0YXJnZXQsIGxvbmcgbG9uZyBzcmNCeXRlCiAg
ICAgfQogCiAgICAgbV9jb250ZXh0LT5tb3ZlRXJyb3JzVG9TeW50aGV0aWNFcnJvckxpc3QoKTsK
LSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShDT0NPQSkK
ICAgICAvLyBGSVhNRTogQ29hbGVzY2UgbXVsdGlwbGUgZ2V0QnVmZmVyU3ViRGF0YSgpIGNhbGxz
IHRvIHVzZSBhIHNpbmdsZSBtYXAoKSBjYWxsCiAgICAgdm9pZCogcHRyID0gbV9jb250ZXh0LT5t
YXBCdWZmZXJSYW5nZSh0YXJnZXQsIGNoZWNrZWRTcmNCeXRlT2Zmc2V0LnVuc2FmZUdldCgpLCBz
dGF0aWNfY2FzdDxHQzNEc2l6ZWlwdHI+KGNoZWNrZWRDb3B5TGVuZ3RoUHRyLnVuc2FmZUdldCgp
ICogY2hlY2tlZEVsZW1lbnRTaXplLnVuc2FmZUdldCgpKSwgR3JhcGhpY3NDb250ZXh0M0Q6Ok1B
UF9SRUFEX0JJVCk7CiAgICAgbWVtY3B5KHN0YXRpY19jYXN0PGNoYXIqPihkc3REYXRhLT5iYXNl
QWRkcmVzcygpKSArIGRzdERhdGEtPmJ5dGVPZmZzZXQoKSArIGRzdE9mZnNldCAqIGVsZW1lbnRT
aXplLCBwdHIsIGNvcHlMZW5ndGggKiBlbGVtZW50U2l6ZSk7CkBAIC0yOTAsMTYgKzI5MCwxNiBA
QCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmZyYW1lYnVmZmVyVGV4dHVyZUxheWVyKEdD
M0RlbnVtLCBHQzNEZW51bSwgR0MzRHVpbgogewogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoR0MzRGVudW0sIEdDM0Rl
bnVtLCBHQzNEZW51bSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEludGVy
bmFsZm9ybWF0UGFyYW1ldGVyKEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGVudW0pCiB7Ci0gICAg
cmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIHJldHVybiBudWxscHRyOwogfQogCi12b2lkIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmludmFsaWRhdGVGcmFtZWJ1ZmZlcihHQzNEZW51bSwgVmVj
dG9yPEdDM0RlbnVtPikKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aW52YWxpZGF0ZUZy
YW1lYnVmZmVyKEdDM0RlbnVtLCBjb25zdCBWZWN0b3I8R0MzRGVudW0+JikKIHsKIH0KIAotdm9p
ZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjppbnZhbGlkYXRlU3ViRnJhbWVidWZmZXIoR0MzRGVu
dW0sIFZlY3RvcjxHQzNEZW51bT4sIEdDM0RpbnQsIEdDM0RpbnQsIEdDM0RzaXplaSwgR0MzRHNp
emVpKQordm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjppbnZhbGlkYXRlU3ViRnJhbWVidWZm
ZXIoR0MzRGVudW0sIGNvbnN0IFZlY3RvcjxHQzNEZW51bT4mLCBHQzNEaW50LCBHQzNEaW50LCBH
QzNEc2l6ZWksIEdDM0RzaXplaSkKIHsKIH0KIApAQCAtNDA3LDcgKzQwNyw3IEBAIHZvaWQgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6dGV4U3RvcmFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNp
emVpIGxldmVscywgR0MzCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgV2ViR0xUZXh0dXJlKiB0ZXh0dXJlID0gdmFsaWRhdGVUZXh0dXJl
QmluZGluZygidGV4U3RvcmFnZTJEIiwgdGFyZ2V0LCBmYWxzZSk7CisgICAgYXV0byogdGV4dHVy
ZSA9IHZhbGlkYXRlVGV4dHVyZUJpbmRpbmcoInRleFN0b3JhZ2UyRCIsIHRhcmdldCwgZmFsc2Up
OwogICAgIGlmICghdGV4dHVyZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC01MDIsNyArNTAyLDcg
QEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpjb21wcmVzc2VkVGV4U3ViSW1hZ2UzRChH
QzNEZW51bSwgR0MzRGludCwgR0MzRGludCwKIHsKIH0KIAotR0MzRGludCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpnZXRGcmFnRGF0YUxvY2F0aW9uKFdlYkdMUHJvZ3JhbSosIFN0cmluZykKK0dD
M0RpbnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhZ0RhdGFMb2NhdGlvbihXZWJHTFBy
b2dyYW0qLCBjb25zdCBTdHJpbmcmKQogewogICAgIHJldHVybiAwOwogfQpAQCAtNjMzLDcgKzYz
Myw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZHJhd1JhbmdlRWxlbWVudHMoR0Mz
RGVudW0sIEdDM0R1aW50LCBHQzNEdWludCwgR0MzCiB7CiB9CiAKLXZvaWQgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6ZHJhd0J1ZmZlcnMoVmVjdG9yPEdDM0RlbnVtPiBidWZmZXJzKQordm9pZCBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkcmF3QnVmZmVycyhjb25zdCBWZWN0b3I8R0MzRGVudW0+
JiBidWZmZXJzKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsK
QEAgLTc4Miw5ICs3ODIsOSBAQCBSZWZQdHI8V2ViR0xRdWVyeT4gV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0UXVlcnkoR0MzRGVudW0sIEdDM0RlbnVtKQogICAgIHJldHVybiBudWxscHRyOwog
fQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnlQYXJhbWV0
ZXIoV2ViR0xRdWVyeSosIEdDM0RlbnVtKQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0UXVlcnlQYXJhbWV0ZXIoV2ViR0xRdWVyeSosIEdDM0RlbnVtKQogewotICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVmUHRyPFdlYkdM
U2FtcGxlcj4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlU2FtcGxlcigpCkBAIC04MTMs
OSArODEzLDkgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpzYW1wbGVyUGFyYW1ldGVy
ZihXZWJHTFNhbXBsZXIqLCBHQzNEZW51bSwgR0MzRGZsb2EKIHsKIH0KIAotV2ViR0xHZXRJbmZv
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFNhbXBsZXJQYXJhbWV0ZXIoV2ViR0xTYW1wbGVy
KiwgR0MzRGVudW0pCitXZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRTYW1wbGVy
UGFyYW1ldGVyKFdlYkdMU2FtcGxlciosIEdDM0RlbnVtKQogewotICAgIHJldHVybiBXZWJHTEdl
dEluZm8oKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVmUHRyPFdlYkdMU3luYz4gV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6ZmVuY2VTeW5jKEdDM0RlbnVtLCBHQzNEYml0ZmllbGQpCkBA
IC04NDEsOSArODQxLDkgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp3YWl0U3luYyhX
ZWJHTFN5bmMqLCBHQzNEYml0ZmllbGQsIEdDM0R1aW50NjQpCiB7CiB9CiAKLVdlYkdMR2V0SW5m
byBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRTeW5jUGFyYW1ldGVyKFdlYkdMU3luYyosIEdD
M0RlbnVtKQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0U3luY1BhcmFtZXRl
cihXZWJHTFN5bmMqLCBHQzNEZW51bSkKIHsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZlB0cjxXZWJHTFRyYW5zZm9ybUZlZWRiYWNrPiBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVUcmFuc2Zvcm1GZWVkYmFjaygpCkBAIC04NzIs
NyArODcyLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjplbmRUcmFuc2Zvcm1GZWVk
YmFjaygpCiB7CiB9CiAKLXZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dHJhbnNmb3JtRmVl
ZGJhY2tWYXJ5aW5ncyhXZWJHTFByb2dyYW0qLCBWZWN0b3I8U3RyaW5nPiwgR0MzRGVudW0pCit2
b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MoV2Vi
R0xQcm9ncmFtKiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBHQzNEZW51bSkKIHsKIH0KIApAQCAt
ODk3LDcgKzg5Nyw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmluZEJ1ZmZlclJh
bmdlKEdDM0RlbnVtLCBHQzNEdWludCwgV2ViR0xCdWZmZXIqLCBHCiB7CiB9CiAKLVdlYkdMR2V0
SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVyKEdDM0RlbnVt
IHRhcmdldCwgR0MzRHVpbnQpCitXZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJ
bmRleGVkUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRHVpbnQpCiB7CiAgICAgc3dpdGNo
ICh0YXJnZXQpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpUUkFOU0ZPUk1fRkVFREJB
Q0tfQlVGRkVSX0JJTkRJTkc6CkBAIC05MDcsMTYgKzkwNywxNCBAQCBXZWJHTEdldEluZm8gV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQs
IEdDM0R1aQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOSUZPUk1fQlVGRkVSX1NJWkU6
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5JRk9STV9CVUZGRVJfU1RBUlQ6CiAgICAg
ICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJn
ZXRJbmRleGVkUGFyYW1ldGVyIiwgInBhcmFtZXRlciBuYW1lIG5vdCB5ZXQgc3VwcG9ydGVkIik7
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfRU5VTSwgImdldEluZGV4ZWRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0
ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgICAgICAgICAK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIHJldHVybiBXZWJHTEdldEluZm8o
KTsKIH0KIAotVWludDMyQXJyYXkqIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZvcm1J
bmRpY2VzKFdlYkdMUHJvZ3JhbSosIFZlY3RvcjxTdHJpbmc+KQorVWludDMyQXJyYXkqIFdlYkdM
MlJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZvcm1JbmRpY2VzKFdlYkdMUHJvZ3JhbSosIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JikKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KQEAgLTkyNiwxOSAr
OTI0LDE5IEBAIEludDMyQXJyYXkqIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVu
aWZvcm1zKFdlYkdMUHJvZ3JhbSosIFJlZlB0cjxVaW50CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKLUdDM0R1aW50IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZvcm1CbG9ja0luZGV4
KFdlYkdMUHJvZ3JhbSosIFN0cmluZykKK0dDM0R1aW50IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmdldFVuaWZvcm1CbG9ja0luZGV4KFdlYkdMUHJvZ3JhbSosIGNvbnN0IFN0cmluZyYpCiB7CiAg
ICAgcmV0dXJuIDA7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQsIEdD
M0RlbnVtKQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9y
bUJsb2NrUGFyYW1ldGVyKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50LCBHQzNEZW51bSkKIHsKLSAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVdlYkdM
R2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1l
KFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50KQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShXZWJHTFByb2dyYW0qLCBHQzNEdWludCkKIHsK
LSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIHZv
aWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybUJsb2NrQmluZGluZyhXZWJHTFByb2dy
YW0qLCBHQzNEdWludCwgR0MzRHVpbnQpCkBAIC05NTAsOCArOTQ4LDggQEAgUmVmUHRyPFdlYkdM
VmVydGV4QXJyYXlPYmplY3Q+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVZlcnRleEFy
cmF5KCkKICAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICAKLSAgICBhdXRvIG9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZSgq
dGhpcywgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6VkFPVHlwZVVzZXIpOwotICAgIGFkZENvbnRl
eHRPYmplY3Qob2JqZWN0LnB0cigpKTsKKyAgICBhdXRvIG9iamVjdCA9IFdlYkdMVmVydGV4QXJy
YXlPYmplY3Q6OmNyZWF0ZSgqdGhpcywgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6VHlwZTo6VXNl
cik7CisgICAgYWRkQ29udGV4dE9iamVjdChvYmplY3QuZ2V0KCkpOwogICAgIHJldHVybiBXVEZN
b3ZlKG9iamVjdCk7CiB9CiAKQEAgLTk2NCw3ICs5NjIsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmRlbGV0ZVZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIGFycmF5
T2JqZQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgaWYgKCFhcnJheU9iamVjdC0+aXNEZWZh
dWx0T2JqZWN0KCkgJiYgYXJyYXlPYmplY3QgPT0gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0KQot
ICAgICAgICBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KDApOworICAgICAgICBzZXRCb3VuZFZl
cnRleEFycmF5T2JqZWN0KG51bGxwdHIpOwogICAgIAogICAgIGFycmF5T2JqZWN0LT5kZWxldGVP
YmplY3QoZ3JhcGhpY3NDb250ZXh0M0QoKSk7CiB9CkBAIC05NzIsMTAgKzk3MCwxMCBAQCB2b2lk
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0ZVZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJy
YXlPYmplY3QqIGFycmF5T2JqZQogR0MzRGJvb2xlYW4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
aXNWZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamVjdCkKIHsKICAg
ICBpZiAoIWFycmF5T2JqZWN0IHx8IGlzQ29udGV4dExvc3QoKSkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBpZiAoIWFycmF5T2JqZWN0LT5oYXNF
dmVyQmVlbkJvdW5kKCkgfHwgIWFycmF5T2JqZWN0LT52YWxpZGF0ZSgwLCAqdGhpcykpCi0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgcmV0dXJuIG1f
Y29udGV4dC0+aXNWZXJ0ZXhBcnJheShhcnJheU9iamVjdC0+b2JqZWN0KCkpOwogfQpAQCAtOTk2
LDcgKzk5NCw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmluZFZlcnRleEFycmF5
KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIGFycmF5T2JqZWN0CiAgICAgICAgIHNldEJvdW5kVmVy
dGV4QXJyYXlPYmplY3QoYXJyYXlPYmplY3QpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fY29u
dGV4dC0+YmluZFZlcnRleEFycmF5KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0LT5vYmplY3Qo
KSk7Ci0gICAgICAgIHNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QobV9kZWZhdWx0VmVydGV4QXJy
YXlPYmplY3QpOworICAgICAgICBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KG1fZGVmYXVsdFZl
cnRleEFycmF5T2JqZWN0LmdldCgpKTsKICAgICB9CiB9CiAKQEAgLTEwMDUsNDMgKzEwMDMsMzgg
QEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihj
b25zdCBTdHJpbmcmIG5hbWUpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBpZiAoKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
bmFtZSwgIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpIHx8IGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UobmFtZSwgIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkK
LSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF90
ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UobmFtZSwgIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpIHx8IGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9w
aWMiKSkgewogICAgICAgICBpZiAoIW1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKSB7Ci0g
ICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9F
WFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTsKLSAgICAgICAgICAgIG1fZXh0VGV4dHVy
ZUZpbHRlckFuaXNvdHJvcGljID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWM+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJv
cGljID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5p
c290cm9waWMiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWM+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmdldCgpOwogICAgIH0KLSAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxvYXQiKQotICAg
ICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1
cmVfZmxvYXQiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNf
dGV4dHVyZV9mbG9hdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlRmxvYXQpIHsKLSAg
ICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09F
U190ZXh0dXJlX2Zsb2F0Iik7Ci0gICAgICAgICAgICBtX29lc1RleHR1cmVGbG9hdCA9IHN0ZDo6
bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0PigqdGhpcyk7CisgICAgICAgICAgICBtX29lc1Rl
eHR1cmVGbG9hdCA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfT0VTX3RleHR1cmVfZmxv
YXQiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXQ+
KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVy
ZUZsb2F0LmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1l
LCAiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7Cisg
ICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0X2xp
bmVhciIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIpIHsKLSAgICAg
ICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190
ZXh0dXJlX2Zsb2F0X2xpbmVhciIpOwotICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXRMaW5l
YXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdExpbmVhcj4oKnRoaXMpOworICAg
ICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNp
b24oIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpCisgICAgICAgICAgICAgICAgPyBzdGQ6
Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdExpbmVhcj4oKnRoaXMpIDogbnVsbHB0cjsKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIuZ2V0KCk7CiAg
ICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9o
YWxmX2Zsb2F0IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpIHsKICAgICAgICAgaWYg
KCFtX29lc1RleHR1cmVIYWxmRmxvYXQpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiKTsKLSAg
ICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdCA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4
dHVyZUhhbGZGbG9hdD4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0
ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikK
KyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdD4o
KnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJl
SGFsZkZsb2F0LmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShu
YW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKQotICAgICAgICAmJiBtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9s
aW5lYXIiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4
dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlSGFs
ZkZsb2F0TGluZWFyKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5l
bnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpOwotICAgICAg
ICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNU
ZXh0dXJlSGFsZkZsb2F0TGluZWFyPigqdGhpcyk7CisgICAgICAgICAgICBtX29lc1RleHR1cmVI
YWxmRmxvYXRMaW5lYXIgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oIkdMX09FU190ZXh0dXJl
X2hhbGZfZmxvYXRfbGluZWFyIikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8
T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcj4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyLmdldCgpOwogICAgIH0K
QEAgLTEwNTAsMjggKzEwNDMsMzIgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgICAgICBtX3dl
YmdsTG9zZUNvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMTG9zZUNvbnRleHQ+KCp0aGlz
KTsKICAgICAgICAgcmV0dXJuIG1fd2ViZ2xMb3NlQ29udGV4dC5nZXQoKTsKICAgICB9Ci0gICAg
aWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfV0VCR0xfY29tcHJlc3Nl
ZF90ZXh0dXJlX2F0YyIpKQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDOjpz
dXBwb3J0ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJl
QVRDKQotICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDID0gc3RkOjptYWtl
X3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVf
YXRjIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMpIHsKKyAg
ICAgICAgICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMp
KQorICAgICAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQyA9IHN0ZDo6bWFr
ZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQz4oKnRoaXMpOworICAgICAgICB9CiAg
ICAgICAgIHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMuZ2V0KCk7CiAgICAgfQot
ICAgIGlmICgoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXBy
ZXNzZWRfdGV4dHVyZV9wdnJ0YyIpKQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJl
UFZSVEM6OnN1cHBvcnRlZCgqdGhpcykpIHsKLSAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQykKLSAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRD
ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM+KCp0aGlzKTsK
KyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXBy
ZXNzZWRfdGV4dHVyZV9wdnJ0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRU
ZXh0dXJlUFZSVEMpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRD
ID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpCisgICAgICAg
ICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQz4o
KnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXBy
ZXNzZWRUZXh0dXJlUFZSVEMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVND
SUlDYXNlKG5hbWUsICJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpCi0gICAgICAgICYm
IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0gICAgICAg
IGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQykKLSAgICAgICAgICAgIG1fd2ViZ2xD
b21wcmVzc2VkVGV4dHVyZVMzVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwg
IldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmds
Q29tcHJlc3NlZFRleHR1cmVTM1RDKSB7CisgICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRl
eHR1cmVTM1RDID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhpcykK
KyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVMzVEM+KCp0aGlzKSA6IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2Vi
Z2xDb21wcmVzc2VkVGV4dHVyZVMzVEMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZXB0aF90ZXh0dXJlIikKLSAgICAgICAgJiYgV2Vi
R0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqZ3JhcGhpY3NDb250ZXh0M0QoKSkpIHsKLSAgICAg
ICAgaWYgKCFtX3dlYmdsRGVwdGhUZXh0dXJlKQotICAgICAgICAgICAgbV93ZWJnbERlcHRoVGV4
dHVyZSA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZXB0aFRleHR1cmU+KCp0aGlzKTsKKyAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVwdGhfdGV4dHVyZSIpKSB7
CisgICAgICAgIGlmICghbV93ZWJnbERlcHRoVGV4dHVyZSkgeworICAgICAgICAgICAgbV93ZWJn
bERlcHRoVGV4dHVyZSA9IFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoKmdyYXBoaWNzQ29u
dGV4dDNEKCkpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVwdGhU
ZXh0dXJlPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3dl
YmdsRGVwdGhUZXh0dXJlLmdldCgpOwogICAgIH0KICAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShuYW1lLCAiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpKSB7CkBAIC0xMDc5LDEwICsx
MDc2LDExIEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRl
bnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICAgICAgbV93ZWJnbERlYnVnUmVuZGVy
ZXJJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnUmVuZGVyZXJJbmZvPigqdGhpcyk7
CiAgICAgICAgIHJldHVybiBtX3dlYmdsRGVidWdSZW5kZXJlckluZm8uZ2V0KCk7CiAgICAgfQot
ICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19zaGFkZXJz
IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FO
R0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERl
YnVnU2hhZGVycykKLSAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkdMRGVidWdTaGFkZXJzPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UobmFtZSwgIldFQkdMX2RlYnVnX3NoYWRlcnMiKSkgeworICAgICAgICBpZiAoIW1f
d2ViZ2xEZWJ1Z1NoYWRlcnMpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBt
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfQU5H
TEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIiB9KQorICAgICAgICAgICAgICAgID8gc3RkOjpt
YWtlX3VuaXF1ZTxXZWJHTERlYnVnU2hhZGVycz4oKnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAg
fQogICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnU2hhZGVycy5nZXQoKTsKICAgICB9CiAKQEAg
LTEwOTYsOTAgKzEwOTQsOTAgQEAgVmVjdG9yPFN0cmluZz4gV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpCiAgICAgaWYgKG1faXNQZW5kaW5nUG9saWN5UmVz
b2x1dGlvbikKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAotICAgIGlmIChtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfZmxvYXQiKSkKLSAgICAgICAg
cmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVfZmxvYXQiKTsKLSAgICBpZiAobV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKQot
ICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKTsKLSAgICBp
ZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hh
bGZfZmxvYXQiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVfaGFsZl9mbG9h
dCIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VT
X3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VT
X3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKQot
ICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJv
cGljIik7CisgICAgYXV0byYgZXh0ZW5zaW9ucyA9IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
OworICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4
dHVyZV9mbG9hdCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9F
U190ZXh0dXJlX2Zsb2F0IiB9KTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxp
dGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9KSkKKyAgICAgICAgcmVzdWx0
LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9KTsKKyAg
ICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVf
aGFsZl9mbG9hdCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9F
U190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pOworICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKEFT
Q0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIgfSkpCisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRf
bGluZWFyIiB9KTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAi
R0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIiB9KSkKKyAgICAgICAgcmVzdWx0LmFw
cGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCS0lUX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3Bp
YyIgfSk7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZCgqdGhp
cykpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1
cmVfYXRjIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQktJVF9X
RUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIiB9KTsKICAgICBpZiAoV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJX
RUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIik7CisgICAgICAgIHJlc3VsdC5h
cHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZy
dGMiIH0pOwogICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKCp0
aGlzKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3Mz
dGMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfY29tcHJl
c3NlZF90ZXh0dXJlX3MzdGMiIH0pOwogICAgIGlmIChXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9y
dGVkKCpncmFwaGljc0NvbnRleHQzRCgpKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xf
ZGVwdGhfdGV4dHVyZSIpOwotICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2xvc2VfY29udGV4dCIp
OwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfQU5HTEVf
dHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdM
X2RlYnVnX3NoYWRlcnMiKTsKLSAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19yZW5kZXJl
cl9pbmZvIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2Rl
cHRoX3RleHR1cmUiIH0pOworICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdM
X2xvc2VfY29udGV4dCIgfSk7CisgICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRl
cmFsIHsgIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIgfSkpCisgICAgICAgIHJl
c3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RlYnVnX3NoYWRlcnMiIH0pOworICAg
IHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8i
IH0pOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpCiB7CiAg
ICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVGcmFtZWJ1ZmZlckZ1
bmNQYXJhbWV0ZXJzKCJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLCB0YXJnZXQs
IGF0dGFjaG1lbnQpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIAogICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgfHwgIW1f
ZnJhbWVidWZmZXJCaW5kaW5nLT5vYmplY3QoKSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIiLCAibm8gZnJhbWVidWZmZXIgYm91bmQiKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAg
Ci0gICAgV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCA9IG1fZnJhbWVidWZmZXJCaW5kaW5nLT5n
ZXRBdHRhY2htZW50T2JqZWN0KGF0dGFjaG1lbnQpOworICAgIGF1dG8qIG9iamVjdCA9IG1fZnJh
bWVidWZmZXJCaW5kaW5nLT5nZXRBdHRhY2htZW50T2JqZWN0KGF0dGFjaG1lbnQpOwogICAgIGlm
ICghb2JqZWN0KSB7CiAgICAgICAgIGlmIChwbmFtZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6RlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSkKLSAgICAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpOwotICAgICAgICAvLyBPcGVuR0wgRVMg
Mi4wIHNwZWNpZmllcyBJTlZBTElEX0VOVU0gaW4gdGhpcyBjYXNlLCB3aGlsZSBkZXNrdG9wIEdM
Ci0gICAgICAgIC8vIHNwZWNpZmllcyBJTlZBTElEX09QRVJBVElPTi4KKyAgICAgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpOworICAg
ICAgICAvLyBPcGVuR0wgRVMgMi4wIHNwZWNpZmllcyBJTlZBTElEX0VOVU0gaW4gdGhpcyBjYXNl
LCB3aGlsZSBkZXNrdG9wIEdMIHNwZWNpZmllcyBJTlZBTElEX09QRVJBVElPTi4KICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQogICAgIAotICAgIEFTU0VSVChvYmplY3QtPmlzVGV4dHVyZSgpIHx8IG9iamVjdC0+
aXNSZW5kZXJidWZmZXIoKSk7CiAgICAgaWYgKG9iamVjdC0+aXNUZXh0dXJlKCkpIHsKICAgICAg
ICAgc3dpdGNoIChwbmFtZSkgewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRSk7CisgICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFKTsKICAgICAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
TkFNRToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8ocmVpbnRlcnByZXRfY2FzdDxX
ZWJHTFRleHR1cmUqPihvYmplY3QpKTsKKyAgICAgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHJl
aW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJlJj4oKm9iamVjdCkpOwogICAgICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEVWRUw6CiAg
ICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVY
VFVSRV9DVUJFX01BUF9GQUNFOgogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HOiB7CiAgICAgICAgICAgICBHQzNEaW50
IHZhbHVlID0gMDsKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RnJhbWVidWZmZXJBdHRhY2ht
ZW50UGFyYW1ldGVyaXYodGFyZ2V0LCBhdHRhY2htZW50LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHZh
bHVlOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUgZm9yIHRleHR1cmUg
YXR0YWNobWVudCIpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9IGVsc2UgeworICAgICAgICBB
U1NFUlQob2JqZWN0LT5pc1JlbmRlcmJ1ZmZlcigpKTsKICAgICAgICAgc3dpdGNoIChwbmFtZSkg
ewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X09CSkVDVF9UWVBFOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGljc0Nv
bnRleHQzRDo6UkVOREVSQlVGRkVSKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUik7CiAgICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUU6Ci0g
ICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5k
ZXJidWZmZXIqPihvYmplY3QpKTsKKyAgICAgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5kZXJidWZmZXImPigqb2JqZWN0KSk7CiAgICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcg
OiB7Ci0gICAgICAgICAgICBXZWJHTFJlbmRlcmJ1ZmZlciogcmVuZGVyQnVmZmVyID0gcmVpbnRl
cnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZlcio+KG9iamVjdCk7Ci0gICAgICAgICAgICBHQzNE
ZW51bSByZW5kZXJCdWZmZXJGb3JtYXQgPSByZW5kZXJCdWZmZXItPmdldEludGVybmFsRm9ybWF0
KCk7Ci0gICAgICAgICAgICBpZiAocmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4
dDNEOjpTUkdCOF9BTFBIQTgKLSAgICAgICAgICAgICAgICB8fCByZW5kZXJCdWZmZXJGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfRVRDMgotICAgICAgICAgICAg
ICAgIHx8IHJlbmRlckJ1ZmZlckZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NF
RF9TUkdCOF9BTFBIQThfRVRDMl9FQUMKLSAgICAgICAgICAgICAgICB8fCByZW5kZXJCdWZmZXJG
b3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfUFVOQ0hUSFJPVUdI
X0FMUEhBMV9FVEMyKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFw
aGljc0NvbnRleHQzRDo6U1JHQik7CisgICAgICAgICAgICBhdXRvJiByZW5kZXJCdWZmZXIgPSBy
ZWludGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyJj4oKm9iamVjdCk7CisgICAgICAgICAg
ICBhdXRvIGZvcm1hdCA9IHJlbmRlckJ1ZmZlci5nZXRJbnRlcm5hbEZvcm1hdCgpOworICAgICAg
ICAgICAgaWYgKGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6U1JHQjhfQUxQSEE4CisgICAg
ICAgICAgICAgICAgfHwgZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NS
R0I4X0VUQzIKKyAgICAgICAgICAgICAgICB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6
OkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJfRUFDCisgICAgICAgICAgICAgICAgfHwgZm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NSR0I4X1BVTkNIVEhST1VHSF9B
TFBIQTFfRVRDMikgeworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oR3JhcGhpY3NDb250ZXh0M0Q6OlNSR0IpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKKyAgICAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVB
Uik7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBmb3IgcmVuZGVyYnVm
ZmVyIGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMTE5MSwx
OSArMTE4OSwxNiBAQCBib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlRnJhbWVi
dWZmZXJGdW5jUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdAogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogICAgIHN3aXRjaCAoYXR0YWNobWVudCkgewotICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkRFUFRIX0FUVEFDSE1FTlQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9B
VFRBQ0hNRU5UOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUxfQVRU
QUNITUVOVDoKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1
bHQ6Ci0gICAgICAgIGlmIChhdHRhY2htZW50ID4gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FU
VEFDSE1FTlQwCi0gICAgICAgICAgICAmJiBhdHRhY2htZW50IDwgc3RhdGljX2Nhc3Q8R0MzRGVu
dW0+KEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCArIGdldE1heENvbG9yQXR0
YWNobWVudHMoKSkpCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgaWYgKGF0dGFjaG1lbnQg
Pj0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwICYmIGF0dGFjaG1lbnQgPCBz
dGF0aWNfY2FzdDxHQzNEZW51bT4oR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQw
ICsgZ2V0TWF4Q29sb3JBdHRhY2htZW50cygpKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVN
LCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIGF0dGFjaG1lbnQiKTsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKIH0KIAogR0MzRGludCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpnZXRNYXhEcmF3QnVmZmVycygpCkBAIC0xMzk1LDcgKzEzOTAsNyBAQCBHQzNE
ZW51bSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiYXNlSW50ZXJuYWxGb3JtYXRGcm9tSW50ZXJu
YWxGb3JtYXQoR0MzRGVudW0gaQogYm9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppc0ludGVn
ZXJGb3JtYXQoR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQpCiB7CiAgICAgLy8gRklYTUU6IGJhc2VJ
bnRlcm5hbEZvcm1hdEZyb21JbnRlcm5hbEZvcm1hdCgpIG5ldmVyIHJldHVybnMgYW55IG9mIHRo
ZXNlIGVudW1zLgotICAgIC8vIEN1cnJlbnRseSwgVGhpcyBmdW5jdGlvbiBlcnJvbmVvdXNseSBh
bHdheXMgcmV0dXJucyBmYWxzZS4KKyAgICAvLyBCZWNhdXNlIG9mIHRoYXQsIHRoaXMgZnVuY3Rp
b24gZXJyb25lb3VzbHkgYWx3YXlzIHJldHVybnMgZmFsc2UhCiAgICAgc3dpdGNoIChiYXNlSW50
ZXJuYWxGb3JtYXRGcm9tSW50ZXJuYWxGb3JtYXQoaW50ZXJuYWxmb3JtYXQpKSB7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkVEX0lOVEVHRVI6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdfSU5URUdFUjoKQEAgLTE0MDYsMTEgKzE0MDEsMTAgQEAgYm9vbCBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0Ojppc0ludGVnZXJGb3JtYXQoR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQpCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKLSAgICBj
b25zdCBpbnQgaW50WmVybyA9IDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHN3aXRj
aCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVfVEVYVFVSRToK
ICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKQEAgLTE0MjEs
NyArMTQxNSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJh
bWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUxQSEFf
QklUUzoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8obV9ib3VuZEFycmF5QnVmZmVyLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIG1f
Ym91bmRBcnJheUJ1ZmZlcjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORDoKICAg
ICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkJMRU5EX0NPTE9SOgpAQCAtMTQ0NSwxNiArMTQzOSwxNiBAQCBXZWJHTEdl
dEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX1dSSVRFTUFTSzoKICAgICAgICAg
cmV0dXJuIGdldEJvb2xlYW5BcnJheVBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6Q09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFM6Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oUGFzc1JlZlB0cjxVaW50MzJBcnJheT4oVWludDMyQXJyYXk6OmNyZWF0ZSht
X2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5kYXRhKCksIG1fY29tcHJlc3NlZFRleHR1cmVGb3Jt
YXRzLnNpemUoKSkpKTsKKyAgICAgICAgcmV0dXJuIFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21w
cmVzc2VkVGV4dHVyZUZvcm1hdHMuZGF0YSgpLCBtX2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5z
aXplKCkpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNVTExfRkFDRToKICAgICAgICAg
cmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkNVTExfRkFDRV9NT0RFOgogICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJh
bWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNVUlJFTlRfUFJPR1JB
TToKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2N1cnJlbnRQcm9ncmFtLmdldCgpKTsK
KyAgICAgICAgcmV0dXJuIG1fY3VycmVudFByb2dyYW07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6REVQVEhfQklUUzoKICAgICAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAh
bV9hdHRyaWJ1dGVzLmRlcHRoKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhpbnRa
ZXJvKTsKKyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1l
dGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DTEVBUl9WQUxV
RToKICAgICAgICAgcmV0dXJuIGdldEZsb2F0UGFyYW1ldGVyKHBuYW1lKTsKQEAgLTE0NjksOSAr
MTQ2Myw5IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0
ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RElUSEVSOgog
ICAgICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1lbnRBcnJh
eUJ1ZmZlcigpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIobV9ib3VuZFZlcnRleEFycmF5
T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyht
X2ZyYW1lYnVmZmVyQmluZGluZy5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX2ZyYW1lYnVmZmVy
QmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUk9OVF9GQUNFOgogICAgICAg
ICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkdFTkVSQVRFX01JUE1BUF9ISU5UOgpAQCAtMTUxOSw5ICsxNTEzLDkgQEAg
V2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51
bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRURfQklUUzoKICAgICAgICAg
cmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkVOREVSQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9y
ZW5kZXJidWZmZXJCaW5kaW5nLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIG1fcmVuZGVyYnVmZmVy
QmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJFUjoKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhTdHJpbmcoIldlYktpdCBXZWJHTCIpKTsKKyAgICAgICAgcmV0
dXJuIFN0cmluZyB7IEFTQ0lJTGl0ZXJhbCB7ICJXZWJLaXQgV2ViR0wiIH0gfTsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTQU1QTEVfQlVGRkVSUzoKICAgICAgICAgcmV0dXJuIGdldElu
dFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0FNUExFX0NP
VkVSQUdFX0lOVkVSVDoKQEAgLTE1MzUsNyArMTUyOSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6U0NJU1NPUl9URVNUOgogICAgICAgICByZXR1cm4gZ2V0Qm9vbGVh
blBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0hBRElOR19M
QU5HVUFHRV9WRVJTSU9OOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCJXZWJHTCBHTFNM
IEVTIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpTSEFE
SU5HX0xBTkdVQUdFX1ZFUlNJT04pICsgIikiKTsKKyAgICAgICAgcmV0dXJuICJXZWJHTCBHTFNM
IEVTIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpTSEFE
SU5HX0xBTkdVQUdFX1ZFUlNJT04pICsgIikiOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlNURU5DSUxfQkFDS19GQUlMOgogICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0
ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQkFDS19GVU5D
OgpAQCAtMTU1Miw3ICsxNTQ2LDcgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICAgICAgcmV0dXJuIGdldFVuc2ln
bmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVO
Q0lMX0JJVFM6CiAgICAgICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgJiYgIW1fYXR0cmli
dXRlcy5zdGVuY2lsKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhpbnRaZXJvKTsK
KyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBu
YW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0NMRUFSX1ZBTFVFOgog
ICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKQEAgLTE1NzUsMzggKzE1Njks
MzggQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVUJQSVhFTF9CSVRT
OgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfMkQ6Ci0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4dHVyZTJEQmluZGlu
Zy5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVV
bml0XS50ZXh0dXJlMkRCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkVfQklORElOR19DVUJFX01BUDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3RleHR1
cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlQ3ViZU1hcEJpbmRpbmcuZ2V0KCkp
OworICAgICAgICByZXR1cm4gbV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4
dHVyZUN1YmVNYXBCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19B
TElHTk1FTlQ6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19GTElQX1lfV0VCR0w6Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8obV91bnBhY2tGbGlwWSk7CisgICAgICAgIHJldHVybiBtX3VucGFja0Zs
aXBZOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19QUkVNVUxUSVBMWV9BTFBI
QV9XRUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3VucGFja1ByZW11bHRpcGx5
QWxwaGEpOworICAgICAgICByZXR1cm4gbV91bnBhY2tQcmVtdWx0aXBseUFscGhhOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19DT0xPUlNQQUNFX0NPTlZFUlNJT05fV0VCR0w6
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lv
bik7CisgICAgICAgIHJldHVybiBtX3VucGFja0NvbG9yc3BhY2VDb252ZXJzaW9uOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFTkRPUjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhTdHJpbmcoIldlYktpdCIpKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZyB7IEFTQ0lJTGl0ZXJh
bCB7ICJXZWJLaXQiIH0gfTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJTSU9OOgot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCJXZWJHTCAyLjAgKCIgKyBtX2NvbnRleHQtPmdl
dFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTikgKyAiKSIpOworICAgICAgICByZXR1
cm4gIldlYkdMIDIuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNE
OjpWRVJTSU9OKSArICIpIjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWSUVXUE9SVDoK
ICAgICAgICAgcmV0dXJuIGdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNh
c2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURfUkVOREVSRVJfV0VCR0w6CiAgICAg
ICAgIGlmIChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCi0gICAgICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJF
UikpOworICAgICAgICAgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29u
dGV4dDNEOjpSRU5ERVJFUik7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIg
bmFtZSwgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBub3QgZW5hYmxlZCIpOwotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2Ug
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURfVkVORE9SX1dFQkdMOgogICAgICAgICBp
ZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVORE9SKSk7Cisg
ICAgICAgICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6
OlZFTkRPUik7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgV0VC
R0xfZGVidWdfcmVuZGVyZXJfaW5mbyBub3QgZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2UgRXh0ZW5zaW9u
czNEOjpNQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQ6IC8vIEVYVF90ZXh0dXJlX2ZpbHRl
cl9hbmlzb3Ryb3BpYwogICAgICAgICBpZiAobV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMp
CiAgICAgICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoRXh0ZW5zaW9uczNE
OjpNQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQpOwogICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImlu
dmFsaWQgcGFyYW1ldGVyIG5hbWUsIEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyBub3Qg
ZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQUdNRU5UX1NIQURFUl9E
RVJJVkFUSVZFX0hJTlQ6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6Ok1BWF8zRF9URVhUVVJFX1NJWkU6CkBAIC0xNjg5
LDEyICsxNjgzLDEwIEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQ
YXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1l
dGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTklGT1JNX0JVRkZFUl9P
RkZTRVRfQUxJR05NRU5UOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsK
LSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVJSQVlfQklORElORzogewotICAg
ICAgICBpZiAoIW1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkpCi0g
ICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PFdlYkdMVmVydGV4QXJy
YXlPYmplY3QqPihtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QuZ2V0KCkpKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOworICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BUlJBWV9CSU5ESU5HOgorICAgICAgICBpZiAobV9i
b3VuZFZlcnRleEFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3QoKSkKKyAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihzdGF0aWNfY2FzdDxXZWJH
TFZlcnRleEFycmF5T2JqZWN0Jj4oKm1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCkpOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMDoKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpEUkFXX0JVRkZFUjE6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RFJBV19C
VUZGRVIyOgpAQCAtMTcxMCwxNCArMTcwMiwxMCBAQCBXZWJHTEdldEluZm8gV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTI6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RFJBV19CVUZGRVIxMzoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JVRkZFUjE0
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTU6IHsKLSAgICAgICAg
R0MzRGludCB2YWx1ZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FOworICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTU6CiAgICAgICAgIGlmIChtX2ZyYW1lYnVmZmVyQmlu
ZGluZykKLSAgICAgICAgICAgIHZhbHVlID0gbV9mcmFtZWJ1ZmZlckJpbmRpbmctPmdldERyYXdC
dWZmZXIocG5hbWUpOwotICAgICAgICBlbHNlIC8vIGVtdWxhdGVkIGJhY2tidWZmZXIKLSAgICAg
ICAgICAgIHZhbHVlID0gbV9iYWNrRHJhd0J1ZmZlcjsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyh2YWx1ZSk7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBtX2ZyYW1lYnVmZmVy
QmluZGluZy0+Z2V0RHJhd0J1ZmZlcihwbmFtZSk7CisgICAgICAgIHJldHVybiBtX2JhY2tEcmF3
QnVmZmVyOyAvLyBlbXVsYXRlZCBiYWNrYnVmZmVyCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6Q09QWV9SRUFEX0JVRkZFUjoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT1BZX1dS
SVRFX0JVRkZFUjoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpQSVhFTF9QQUNLX0JVRkZF
Ul9CSU5ESU5HOiAgIApAQCAtMTczMCwxMCArMTcxOCwxMCBAQCBXZWJHTEdldEluZm8gV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORzoKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTklGT1JNX0JVRkZFUl9CSU5ESU5HOgogICAgICAg
ICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0
UGFyYW1ldGVyIiwgInBhcmFtZXRlciBuYW1lIG5vdCB5ZXQgc3VwcG9ydGVkIik7Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogfQogCkBAIC0xNzU0LDcgKzE3NDIsNyBAQCBib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OnZhbGlkYXRlSW5kZXhBcnJheUNvbnNlcnZhdGl2ZShHQzNEZW51bSB0eXBlLCB1bnNpZwogICAg
IC8vIFRoZSBjYXNlIGNvdW50PT0wIGlzIGFscmVhZHkgZGVhbHQgd2l0aCBpbiBkcmF3RWxlbWVu
dHMgYmVmb3JlIHZhbGlkYXRlSW5kZXhBcnJheUNvbnNlcnZhdGl2ZS4KICAgICBpZiAoIW51bUVs
ZW1lbnRzKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY29uc3QgQXJyYXlCdWZmZXIqIGJ1
ZmZlciA9IGVsZW1lbnRBcnJheUJ1ZmZlci0+ZWxlbWVudEFycmF5QnVmZmVyKCk7CisgICAgYXV0
byogYnVmZmVyID0gZWxlbWVudEFycmF5QnVmZmVyLT5lbGVtZW50QXJyYXlCdWZmZXIoKTsKICAg
ICBBU1NFUlQoYnVmZmVyKTsKICAgICAKICAgICBpbnQgbWF4SW5kZXggPSBlbGVtZW50QXJyYXlC
dWZmZXItPmdldENhY2hlZE1heEluZGV4KHR5cGUpOwpAQCAtMTgwNiw3ICsxNzk0LDYgQEAgYm9v
bCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUJsZW5kRXF1YXRpb24oY29uc3QgY2hh
ciogZnVuY3Rpb25OYW1lLCBHQzMKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpNSU46CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TUFYOgogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCBtb2Rl
Iik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaAppbmRleCA3NTVkZTZiYmRkMjY5ODE2N2Qz
YmFhMGZkZGQzNGJiZTA2MTE1ZDU5Li5iNDgwM2FmMTYyZWM1ZjA0M2U3OTk2OWQ2ZDg1ZTUzMGVk
MzY1Y2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI4LDcgKzI4LDYgQEAKICNpZiBFTkFCTEUoV0VCR0wyKQogCiAjaW5j
bHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgotI2luY2x1ZGUgPHd0Zi9WYXJpYW50
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsOSArNDAsOSBAQCBjbGFzcyBXZWJH
TFZlcnRleEFycmF5T2JqZWN0OwogY2xhc3MgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCBmaW5hbCA6
IHB1YmxpYyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlIHsKIHB1YmxpYzoKICAgICBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiwgV2ViR0xDb250ZXh0QXR0cmlidXRl
cyk7Ci0gICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYsIFJlZlB0
cjxHcmFwaGljc0NvbnRleHQzRD4mJiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyk7CisgICAgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYsIFJlZjxHcmFwaGljc0NvbnRl
eHQzRD4mJiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyk7CiAKLSAgICAvKiBCdWZmZXIgb2JqZWN0
cyAqLworICAgIC8vIEJ1ZmZlciBvYmplY3RzCiAgICAgdXNpbmcgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6YnVmZmVyRGF0YTsKICAgICB1c2luZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpidWZmZXJTdWJEYXRhOwogICAgIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0YXJnZXQsIGNv
bnN0IEFycmF5QnVmZmVyVmlldyYgZGF0YSwgR0MzRGVudW0gdXNhZ2UsIEdDM0R1aW50IHNyY09m
ZnNldCwgR0MzRHVpbnQgbGVuZ3RoKTsKQEAgLTUxLDE5ICs1MCwxOSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjb3B5QnVmZmVyU3ViRGF0YShHQzNEZW51bSByZWFkVGFyZ2V0LCBHQzNEZW51bSB3cml0
ZVRhcmdldCwgR0MzRGludDY0IHJlYWRPZmZzZXQsIEdDM0RpbnQ2NCB3cml0ZU9mZnNldCwgR0Mz
RGludDY0IHNpemUpOwogICAgIHZvaWQgZ2V0QnVmZmVyU3ViRGF0YShHQzNEZW51bSB0YXJnZXQs
IGxvbmcgbG9uZyBzcmNCeXRlT2Zmc2V0LCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmIGRzdERh
dGEsIEdDM0R1aW50IGRzdE9mZnNldCA9IDAsIEdDM0R1aW50IGxlbmd0aCA9IDApOwogICAgIAot
ICAgIC8qIEZyYW1lYnVmZmVyIG9iamVjdHMgKi8KLSAgICBXZWJHTEdldEluZm8gZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNo
bWVudCwgR0MzRGVudW0gcG5hbWUpIGZpbmFsOworICAgIC8vIEZyYW1lYnVmZmVyIG9iamVjdHMK
KyAgICBXZWJHTEFueSBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0g
dGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBwbmFtZSkgZmluYWw7CiAgICAg
dm9pZCBibGl0RnJhbWVidWZmZXIoR0MzRGludCBzcmNYMCwgR0MzRGludCBzcmNZMCwgR0MzRGlu
dCBzcmNYMSwgR0MzRGludCBzcmNZMSwgR0MzRGludCBkc3RYMCwgR0MzRGludCBkc3RZMCwgR0Mz
RGludCBkc3RYMSwgR0MzRGludCBkc3RZMSwgR0MzRGJpdGZpZWxkIG1hc2ssIEdDM0RlbnVtIGZp
bHRlcik7CiAgICAgdm9pZCBmcmFtZWJ1ZmZlclRleHR1cmVMYXllcihHQzNEZW51bSB0YXJnZXQs
IEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0R1aW50IHRleHR1cmUsIEdDM0RpbnQgbGV2ZWwsIEdD
M0RpbnQgbGF5ZXIpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRl
cihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBwbmFt
ZSk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBWZWN0
b3I8R0MzRGVudW0+IGF0dGFjaG1lbnRzKTsKLSAgICB2b2lkIGludmFsaWRhdGVTdWJGcmFtZWJ1
ZmZlcihHQzNEZW51bSB0YXJnZXQsIFZlY3RvcjxHQzNEZW51bT4gYXR0YWNobWVudHMsIEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpOworICAg
IFdlYkdMQW55IGdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RlbnVtIHBuYW1lKTsKKyAgICB2b2lkIGludmFsaWRh
dGVGcmFtZWJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIGNvbnN0IFZlY3RvcjxHQzNEZW51bT4mIGF0
dGFjaG1lbnRzKTsKKyAgICB2b2lkIGludmFsaWRhdGVTdWJGcmFtZWJ1ZmZlcihHQzNEZW51bSB0
YXJnZXQsIGNvbnN0IFZlY3RvcjxHQzNEZW51bT4mIGF0dGFjaG1lbnRzLCBHQzNEaW50IHgsIEdD
M0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKICAgICB2b2lkIHJl
YWRCdWZmZXIoR0MzRGVudW0gc3JjKTsKICAgICAKLSAgICAvKiBSZW5kZXJidWZmZXIgb2JqZWN0
cyAqLworICAgIC8vIFJlbmRlcmJ1ZmZlciBvYmplY3RzCiAgICAgdm9pZCByZW5kZXJidWZmZXJT
dG9yYWdlTXVsdGlzYW1wbGUoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgc2FtcGxlcywgR0Mz
RGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7
CiAgICAgCi0gICAgLyogVGV4dHVyZSBvYmplY3RzICovCisgICAgLy8gVGV4dHVyZSBvYmplY3Rz
CiAgICAgdm9pZCB0ZXhTdG9yYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxz
LCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVp
Z2h0KTsKICAgICB2b2lkIHRleFN0b3JhZ2UzRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBs
ZXZlbHMsIEdDM0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXpl
aSBoZWlnaHQsIEdDM0RzaXplaSBkZXB0aCk7CiAgICAgdm9pZCB0ZXhJbWFnZTNEKEdDM0RlbnVt
IHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVp
IHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEc2l6ZWkgZGVwdGgsIEdDM0RpbnQgYm9yZGVy
LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+
JiYgcGl4ZWxzKTsKQEAgLTc2LDEwICs3NSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21wcmVz
c2VkVGV4SW1hZ2UzRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGlu
dGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RzaXpl
aSBkZXB0aCwgR0MzRGludCBib3JkZXIsIEdDM0RzaXplaSBpbWFnZVNpemUsIFJlZlB0cjxBcnJh
eUJ1ZmZlclZpZXc+JiYgZGF0YSk7CiAgICAgdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UzRChH
QzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5
b2Zmc2V0LCBHQzNEaW50IHpvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdo
dCwgR0MzRHNpemVpIGRlcHRoLCBHQzNEZW51bSBmb3JtYXQsIEdDM0RzaXplaSBpbWFnZVNpemUs
IFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+JiYgZGF0YSk7CiAgICAgCi0gICAgLyogUHJvZ3JhbXMg
YW5kIHNoYWRlcnMgKi8KLSAgICBHQzNEaW50IGdldEZyYWdEYXRhTG9jYXRpb24oV2ViR0xQcm9n
cmFtKiBwcm9ncmFtLCBTdHJpbmcgbmFtZSk7CisgICAgLy8gUHJvZ3JhbXMgYW5kIHNoYWRlcnMK
KyAgICBHQzNEaW50IGdldEZyYWdEYXRhTG9jYXRpb24oV2ViR0xQcm9ncmFtKiwgY29uc3QgU3Ry
aW5nJiBuYW1lKTsKICAgICAKLSAgICAvKiBVbmlmb3JtcyBhbmQgYXR0cmlidXRlcyAqLworICAg
IC8vIFVuaWZvcm1zIGFuZCBhdHRyaWJ1dGVzCiAgICAgdm9pZCB1bmlmb3JtMXVpKFdlYkdMVW5p
Zm9ybUxvY2F0aW9uKiwgR0MzRHVpbnQgdjApOwogICAgIHZvaWQgdW5pZm9ybTJ1aShXZWJHTFVu
aWZvcm1Mb2NhdGlvbiosIEdDM0R1aW50IHYwLCBHQzNEdWludCB2MSk7CiAgICAgdm9pZCB1bmlm
b3JtM3VpKFdlYkdMVW5pZm9ybUxvY2F0aW9uKiwgR0MzRHVpbnQgdjAsIEdDM0R1aW50IHYxLCBH
QzNEdWludCB2Mik7CkBAIC0xMDAsNzAgKzk5LDcwIEBAIHB1YmxpYzoKICAgICB2b2lkIHZlcnRl
eEF0dHJpYkk0dWl2KEdDM0R1aW50IGluZGV4LCBSZWZQdHI8VWludDMyQXJyYXk+JiYgdik7CiAg
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWJJUG9pbnRlcihHQzNEdWludCBpbmRleCwgR0MzRGludCBzaXpl
LCBHQzNEZW51bSB0eXBlLCBHQzNEc2l6ZWkgc3RyaWRlLCBHQzNEaW50NjQgb2Zmc2V0KTsKICAg
ICAKLSAgICAvKiBXcml0aW5nIHRvIHRoZSBkcmF3aW5nIGJ1ZmZlciAqLworICAgIC8vIFdyaXRp
bmcgdG8gdGhlIGRyYXdpbmcgYnVmZmVyCiAgICAgdm9pZCBjbGVhcihHQzNEYml0ZmllbGQgbWFz
aykgZmluYWw7CiAgICAgdm9pZCB2ZXJ0ZXhBdHRyaWJEaXZpc29yKEdDM0R1aW50IGluZGV4LCBH
QzNEdWludCBkaXZpc29yKTsKICAgICB2b2lkIGRyYXdBcnJheXNJbnN0YW5jZWQoR0MzRGVudW0g
bW9kZSwgR0MzRGludCBmaXJzdCwgR0MzRHNpemVpIGNvdW50LCBHQzNEc2l6ZWkgaW5zdGFuY2VD
b3VudCk7CiAgICAgdm9pZCBkcmF3RWxlbWVudHNJbnN0YW5jZWQoR0MzRGVudW0gbW9kZSwgR0Mz
RHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50NjQgb2Zmc2V0LCBHQzNEc2l6ZWkg
aW5zdGFuY2VDb3VudCk7CiAgICAgdm9pZCBkcmF3UmFuZ2VFbGVtZW50cyhHQzNEZW51bSBtb2Rl
LCBHQzNEdWludCBzdGFydCwgR0MzRHVpbnQgZW5kLCBHQzNEc2l6ZWkgY291bnQsIEdDM0RlbnVt
IHR5cGUsIEdDM0RpbnQ2NCBvZmZzZXQpOwogICAgIAotICAgIC8qIE11bHRpcGxlIFJlbmRlciBU
YXJnZXRzICovCi0gICAgdm9pZCBkcmF3QnVmZmVycyhWZWN0b3I8R0MzRGVudW0+IGJ1ZmZlcnMp
OworICAgIC8vIE11bHRpcGxlIHJlbmRlciB0YXJnZXRzCisgICAgdm9pZCBkcmF3QnVmZmVycyhj
b25zdCBWZWN0b3I8R0MzRGVudW0+JiBidWZmZXJzKTsKICAgICB2b2lkIGNsZWFyQnVmZmVyaXYo
R0MzRGVudW0gYnVmZmVyLCBHQzNEaW50IGRyYXdidWZmZXIsIFJlZlB0cjxJbnQzMkFycmF5PiYm
IHZhbHVlKTsKICAgICB2b2lkIGNsZWFyQnVmZmVydWl2KEdDM0RlbnVtIGJ1ZmZlciwgR0MzRGlu
dCBkcmF3YnVmZmVyLCBSZWZQdHI8VWludDMyQXJyYXk+JiYgdmFsdWUpOwogICAgIHZvaWQgY2xl
YXJCdWZmZXJmdihHQzNEZW51bSBidWZmZXIsIEdDM0RpbnQgZHJhd2J1ZmZlciwgUmVmUHRyPEZs
b2F0MzJBcnJheT4mJiB2YWx1ZSk7CiAgICAgdm9pZCBjbGVhckJ1ZmZlcmZpKEdDM0RlbnVtIGJ1
ZmZlciwgR0MzRGludCBkcmF3YnVmZmVyLCBHQzNEZmxvYXQgZGVwdGgsIEdDM0RpbnQgc3RlbmNp
bCk7CiAgICAgCi0gICAgLyogUXVlcnkgT2JqZWN0cyAqLworICAgIC8vIFF1ZXJ5IG9iamVjdHMK
ICAgICBSZWZQdHI8V2ViR0xRdWVyeT4gY3JlYXRlUXVlcnkoKTsKLSAgICB2b2lkIGRlbGV0ZVF1
ZXJ5KFdlYkdMUXVlcnkqIHF1ZXJ5KTsKLSAgICBHQzNEYm9vbGVhbiBpc1F1ZXJ5KFdlYkdMUXVl
cnkqIHF1ZXJ5KTsKLSAgICB2b2lkIGJlZ2luUXVlcnkoR0MzRGVudW0gdGFyZ2V0LCBXZWJHTFF1
ZXJ5KiBxdWVyeSk7CisgICAgdm9pZCBkZWxldGVRdWVyeShXZWJHTFF1ZXJ5Kik7CisgICAgR0Mz
RGJvb2xlYW4gaXNRdWVyeShXZWJHTFF1ZXJ5Kik7CisgICAgdm9pZCBiZWdpblF1ZXJ5KEdDM0Rl
bnVtIHRhcmdldCwgV2ViR0xRdWVyeSopOwogICAgIHZvaWQgZW5kUXVlcnkoR0MzRGVudW0gdGFy
Z2V0KTsKICAgICBSZWZQdHI8V2ViR0xRdWVyeT4gZ2V0UXVlcnkoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEZW51bSBwbmFtZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdM
UXVlcnkqIHF1ZXJ5LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0UXVlcnlQYXJh
bWV0ZXIoV2ViR0xRdWVyeSosIEdDM0RlbnVtIHBuYW1lKTsKICAgICAKLSAgICAvKiBTYW1wbGVy
IE9iamVjdHMgKi8KKyAgICAvLyBTYW1wbGVyIG9iamVjdHMKICAgICBSZWZQdHI8V2ViR0xTYW1w
bGVyPiBjcmVhdGVTYW1wbGVyKCk7Ci0gICAgdm9pZCBkZWxldGVTYW1wbGVyKFdlYkdMU2FtcGxl
ciogc2FtcGxlcik7Ci0gICAgR0MzRGJvb2xlYW4gaXNTYW1wbGVyKFdlYkdMU2FtcGxlciogc2Ft
cGxlcik7Ci0gICAgdm9pZCBiaW5kU2FtcGxlcihHQzNEdWludCB1bml0LCBXZWJHTFNhbXBsZXIq
IHNhbXBsZXIpOwotICAgIHZvaWQgc2FtcGxlclBhcmFtZXRlcmkoV2ViR0xTYW1wbGVyKiBzYW1w
bGVyLCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7Ci0gICAgdm9pZCBzYW1wbGVyUGFy
YW1ldGVyZihXZWJHTFNhbXBsZXIqIHNhbXBsZXIsIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQg
cGFyYW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRTYW1wbGVyUGFyYW1ldGVyKFdlYkdMU2FtcGxl
ciogc2FtcGxlciwgR0MzRGVudW0gcG5hbWUpOworICAgIHZvaWQgZGVsZXRlU2FtcGxlcihXZWJH
TFNhbXBsZXIqKTsKKyAgICBHQzNEYm9vbGVhbiBpc1NhbXBsZXIoV2ViR0xTYW1wbGVyKik7Cisg
ICAgdm9pZCBiaW5kU2FtcGxlcihHQzNEdWludCB1bml0LCBXZWJHTFNhbXBsZXIqKTsKKyAgICB2
b2lkIHNhbXBsZXJQYXJhbWV0ZXJpKFdlYkdMU2FtcGxlciosIEdDM0RlbnVtIHBuYW1lLCBHQzNE
aW50IHBhcmFtKTsKKyAgICB2b2lkIHNhbXBsZXJQYXJhbWV0ZXJmKFdlYkdMU2FtcGxlciosIEdD
M0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQgcGFyYW0pOworICAgIFdlYkdMQW55IGdldFNhbXBsZXJQ
YXJhbWV0ZXIoV2ViR0xTYW1wbGVyKiwgR0MzRGVudW0gcG5hbWUpOwogICAgIAotICAgIC8qIFN5
bmMgb2JqZWN0cyAqLworICAgIC8vIFN5bmMgb2JqZWN0cwogICAgIFJlZlB0cjxXZWJHTFN5bmM+
IGZlbmNlU3luYyhHQzNEZW51bSBjb25kaXRpb24sIEdDM0RiaXRmaWVsZCBmbGFncyk7Ci0gICAg
R0MzRGJvb2xlYW4gaXNTeW5jKFdlYkdMU3luYyogc3luYyk7Ci0gICAgdm9pZCBkZWxldGVTeW5j
KFdlYkdMU3luYyogc3luYyk7Ci0gICAgR0MzRGVudW0gY2xpZW50V2FpdFN5bmMoV2ViR0xTeW5j
KiBzeW5jLCBHQzNEYml0ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7Ci0gICAgdm9p
ZCB3YWl0U3luYyhXZWJHTFN5bmMqIHN5bmMsIEdDM0RiaXRmaWVsZCBmbGFncywgR0MzRHVpbnQ2
NCB0aW1lb3V0KTsKLSAgICBXZWJHTEdldEluZm8gZ2V0U3luY1BhcmFtZXRlcihXZWJHTFN5bmMq
IHN5bmMsIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBHQzNEYm9vbGVhbiBpc1N5bmMoV2ViR0xTeW5j
Kik7CisgICAgdm9pZCBkZWxldGVTeW5jKFdlYkdMU3luYyopOworICAgIEdDM0RlbnVtIGNsaWVu
dFdhaXRTeW5jKFdlYkdMU3luYyosIEdDM0RiaXRmaWVsZCBmbGFncywgR0MzRHVpbnQ2NCB0aW1l
b3V0KTsKKyAgICB2b2lkIHdhaXRTeW5jKFdlYkdMU3luYyosIEdDM0RiaXRmaWVsZCBmbGFncywg
R0MzRHVpbnQ2NCB0aW1lb3V0KTsKKyAgICBXZWJHTEFueSBnZXRTeW5jUGFyYW1ldGVyKFdlYkdM
U3luYyosIEdDM0RlbnVtIHBuYW1lKTsKICAgICAKLSAgICAvKiBUcmFuc2Zvcm0gRmVlZGJhY2sg
Ki8KKyAgICAvLyBUcmFuc2Zvcm0gZmVlZGJhY2sKICAgICBSZWZQdHI8V2ViR0xUcmFuc2Zvcm1G
ZWVkYmFjaz4gY3JlYXRlVHJhbnNmb3JtRmVlZGJhY2soKTsKICAgICB2b2lkIGRlbGV0ZVRyYW5z
Zm9ybUZlZWRiYWNrKFdlYkdMVHJhbnNmb3JtRmVlZGJhY2sqIGlkKTsKICAgICBHQzNEYm9vbGVh
biBpc1RyYW5zZm9ybUZlZWRiYWNrKFdlYkdMVHJhbnNmb3JtRmVlZGJhY2sqIGlkKTsKICAgICB2
b2lkIGJpbmRUcmFuc2Zvcm1GZWVkYmFjayhHQzNEZW51bSB0YXJnZXQsIFdlYkdMVHJhbnNmb3Jt
RmVlZGJhY2sqIGlkKTsKICAgICB2b2lkIGJlZ2luVHJhbnNmb3JtRmVlZGJhY2soR0MzRGVudW0g
cHJpbWl0aXZlTW9kZSk7CiAgICAgdm9pZCBlbmRUcmFuc2Zvcm1GZWVkYmFjaygpOwotICAgIHZv
aWQgdHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncyhXZWJHTFByb2dyYW0qLCBWZWN0b3I8U3RyaW5n
PiB2YXJ5aW5ncywgR0MzRGVudW0gYnVmZmVyTW9kZSk7CisgICAgdm9pZCB0cmFuc2Zvcm1GZWVk
YmFja1ZhcnlpbmdzKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2YXJ5aW5n
cywgR0MzRGVudW0gYnVmZmVyTW9kZSk7CiAgICAgUmVmUHRyPFdlYkdMQWN0aXZlSW5mbz4gZ2V0
VHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5nKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50IGluZGV4KTsK
ICAgICB2b2lkIHBhdXNlVHJhbnNmb3JtRmVlZGJhY2soKTsKICAgICB2b2lkIHJlc3VtZVRyYW5z
Zm9ybUZlZWRiYWNrKCk7CiAgICAgCi0gICAgLyogVW5pZm9ybSBCdWZmZXIgT2JqZWN0cyBhbmQg
VHJhbnNmb3JtIEZlZWRiYWNrIEJ1ZmZlcnMgKi8KLSAgICB2b2lkIGJpbmRCdWZmZXJCYXNlKEdD
M0RlbnVtIHRhcmdldCwgR0MzRHVpbnQgaW5kZXgsIFdlYkdMQnVmZmVyKiBidWZmZXIpOwotICAg
IHZvaWQgYmluZEJ1ZmZlclJhbmdlKEdDM0RlbnVtIHRhcmdldCwgR0MzRHVpbnQgaW5kZXgsIFdl
YkdMQnVmZmVyKiBidWZmZXIsIEdDM0RpbnQ2NCBvZmZzZXQsIEdDM0RpbnQ2NCBzaXplKTsKLSAg
ICBXZWJHTEdldEluZm8gZ2V0SW5kZXhlZFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0R1
aW50IGluZGV4KTsKLSAgICBVaW50MzJBcnJheSogZ2V0VW5pZm9ybUluZGljZXMoV2ViR0xQcm9n
cmFtKiwgVmVjdG9yPFN0cmluZz4gdW5pZm9ybU5hbWVzKTsKKyAgICAvLyBVbmlmb3JtIGJ1ZmZl
ciBvYmplY3RzIGFuZCB0cmFuc2Zvcm0gZmVlZGJhY2sgYnVmZmVycworICAgIHZvaWQgYmluZEJ1
ZmZlckJhc2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWludCBpbmRleCwgV2ViR0xCdWZmZXIqKTsK
KyAgICB2b2lkIGJpbmRCdWZmZXJSYW5nZShHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4
LCBXZWJHTEJ1ZmZlciosIEdDM0RpbnQ2NCBvZmZzZXQsIEdDM0RpbnQ2NCBzaXplKTsKKyAgICBX
ZWJHTEFueSBnZXRJbmRleGVkUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRHVpbnQgaW5k
ZXgpOworICAgIFVpbnQzMkFycmF5KiBnZXRVbmlmb3JtSW5kaWNlcyhXZWJHTFByb2dyYW0qLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgdW5pZm9ybU5hbWVzKTsKICAgICBJbnQzMkFycmF5KiBnZXRB
Y3RpdmVVbmlmb3JtcyhXZWJHTFByb2dyYW0qLCBSZWZQdHI8VWludDMyQXJyYXk+JiYgdW5pZm9y
bUluZGljZXMsIEdDM0RlbnVtIHBuYW1lKTsKLSAgICBHQzNEdWludCBnZXRVbmlmb3JtQmxvY2tJ
bmRleChXZWJHTFByb2dyYW0qLCBTdHJpbmcgdW5pZm9ybUJsb2NrTmFtZSk7Ci0gICAgV2ViR0xH
ZXRJbmZvIGdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNE
dWludCB1bmlmb3JtQmxvY2tJbmRleCwgR0MzRGVudW0gcG5hbWUpOwotICAgIFdlYkdMR2V0SW5m
byBnZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50IHVuaWZv
cm1CbG9ja0luZGV4KTsKKyAgICBHQzNEdWludCBnZXRVbmlmb3JtQmxvY2tJbmRleChXZWJHTFBy
b2dyYW0qLCBjb25zdCBTdHJpbmcmIHVuaWZvcm1CbG9ja05hbWUpOworICAgIFdlYkdMQW55IGdl
dEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNEdWludCB1bmlm
b3JtQmxvY2tJbmRleCwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldEFjdGl2ZVVu
aWZvcm1CbG9ja05hbWUoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgp
OwogICAgIHZvaWQgdW5pZm9ybUJsb2NrQmluZGluZyhXZWJHTFByb2dyYW0qLCBHQzNEdWludCB1
bmlmb3JtQmxvY2tJbmRleCwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrQmluZGluZyk7CiAgICAgCi0g
ICAgLyogVmVydGV4IEFycmF5IE9iamVjdHMgKi8KKyAgICAvLyBWZXJ0ZXggYXJyYXkgb2JqZWN0
cwogICAgIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBjcmVhdGVWZXJ0ZXhBcnJheSgp
OwogICAgIHZvaWQgZGVsZXRlVmVydGV4QXJyYXkoV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCogdmVy
dGV4QXJyYXkpOwogICAgIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXkoV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdCogdmVydGV4QXJyYXkpOwpAQCAtMTcyLDEwICsxNzEsMTAgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBib29sIGlzV2ViR0wyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQog
Ci0gICAgLyogRXh0ZW5zaW9ucyAqLworICAgIC8vIEV4dGVuc2lvbnMKICAgICBXZWJHTEV4dGVu
c2lvbiogZ2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYpIGZpbmFsOwogICAgIFZlY3RvcjxTdHJp
bmc+IGdldFN1cHBvcnRlZEV4dGVuc2lvbnMoKSBmaW5hbDsKLSAgICBXZWJHTEdldEluZm8gZ2V0
UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKKyAgICBXZWJHTEFueSBnZXRQYXJhbWV0
ZXIoR0MzRGVudW0gcG5hbWUpIGZpbmFsOwogCiAgICAgdm9pZCByZW5kZXJidWZmZXJTdG9yYWdl
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCkgZmluYWw7CiAgICAgdm9pZCBoaW50KEdDM0RlbnVtIHRhcmdl
dCwgR0MzRGVudW0gbW9kZSkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTEFueS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFu
eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTdlNGY1NjcyODcxYjM4MGVkOGQyMGUwNzZhNDk5NWZmZDEzMTdk
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQW55
LmNwcApAQCAtMCwwICsxLDEyMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTEFueS5oIgor
CisjaWYgRU5BQkxFKFdFQkdMKQorCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVk
ZSAiSlNXZWJHTEJ1ZmZlci5oIgorI2luY2x1ZGUgIkpTV2ViR0xGcmFtZWJ1ZmZlci5oIgorI2lu
Y2x1ZGUgIkpTV2ViR0xQcm9ncmFtLmgiCisjaW5jbHVkZSAiSlNXZWJHTFJlbmRlcmJ1ZmZlci5o
IgorI2luY2x1ZGUgIkpTV2ViR0xUZXh0dXJlLmgiCisjaW5jbHVkZSAiSlNXZWJHTFZlcnRleEFy
cmF5T2JqZWN0T0VTLmgiCisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KKworI2lmIEVOQUJMRShX
RUJHTDIpCisjaW5jbHVkZSAiSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0LmgiCisjZW5kaWYKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSlNDOworCisvLyBGSVhNRTog
VGhpcyBsaWtlbHkgY2FuIGJlIGF1dG9nZW5lcmF0ZWQgd2l0aCBhIGJpdCBvZiB3b3JrLgorSlNW
YWx1ZSB0b0pTKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QsIGNvbnN0IFdlYkdMQW55JiBhbnkpCit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24oYW55
LAorICAgICAgICBbXSAoc3RkOjpudWxscHRyX3QpIHsKKyAgICAgICAgICAgIHJldHVybiBqc051
bGwoKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10gKGJvb2wgdmFsdWUpIHsKKyAgICAgICAgICAg
IHJldHVybiBqc0Jvb2xlYW4odmFsdWUpOworICAgICAgICB9LAorICAgICAgICBbXSAoaW50IHZh
bHVlKSB7CisgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIodmFsdWUpOworICAgICAgICB9LAor
ICAgICAgICBbXSAodW5zaWduZWQgdmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBqc051bWJl
cih2YWx1ZSk7CisgICAgICAgIH0sCisgICAgICAgIFtdIChsb25nIGxvbmcgdmFsdWUpIHsKKyAg
ICAgICAgICAgIHJldHVybiBqc051bWJlcih2YWx1ZSk7CisgICAgICAgIH0sCisgICAgICAgIFtd
IChmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHZhbHVlKTsKKyAg
ICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBTdHJpbmcmIHZhbHVlKSB7CisgICAgICAgICAg
ICByZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoJnN0YXRlLCB2YWx1ZSk7CisgICAgICAgIH0sCisg
ICAgICAgIFsmXSAoY29uc3QgVmVjdG9yPGJvb2w+JiB2YWx1ZXMpIHsKKyAgICAgICAgICAgIE1h
cmtlZEFyZ3VtZW50QnVmZmVyIGxpc3Q7CisgICAgICAgICAgICBmb3IgKGF1dG8mIHZhbHVlIDog
dmFsdWVzKQorICAgICAgICAgICAgICAgIGxpc3QuYXBwZW5kKGpzQm9vbGVhbih2YWx1ZSkpOwor
ICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5KCZzdGF0ZSwgMCwgJmdsb2JhbE9iamVj
dCwgbGlzdCk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPEZsb2F0MzJB
cnJheT4mIGFycmF5KSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxP
YmplY3QsIGFycmF5LmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQ
dHI8SW50MzJBcnJheT4mIGFycmF5KSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUs
ICZnbG9iYWxPYmplY3QsIGFycmF5LmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChj
b25zdCBSZWZQdHI8VWludDhBcnJheT4mIGFycmF5KSB7CisgICAgICAgICAgICByZXR1cm4gdG9K
Uygmc3RhdGUsICZnbG9iYWxPYmplY3QsIGFycmF5LmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAg
ICAgWyZdIChjb25zdCBSZWZQdHI8VWludDMyQXJyYXk+JiBhcnJheSkgeworICAgICAgICAgICAg
cmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBhcnJheS5nZXQoKSk7CisgICAgICAg
IH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdlYkdMQnVmZmVyPiYgYnVmZmVyKSB7Cisg
ICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIGJ1ZmZlci5nZXQo
KSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdlYkdMRnJhbWVidWZm
ZXI+JiBidWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9i
amVjdCwgYnVmZmVyLmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQ
dHI8V2ViR0xQcm9ncmFtPiYgcHJvZ3JhbSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCAmZ2xvYmFsT2JqZWN0LCBwcm9ncmFtLmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAg
WyZdIChjb25zdCBSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+JiBidWZmZXIpIHsKKyAgICAgICAg
ICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYnVmZmVyLmdldCgpKTsKKyAg
ICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2ViR0xUZXh0dXJlPiYgdGV4dHVy
ZSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCB0ZXh0
dXJlLmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUz4mIGFycmF5KSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygm
c3RhdGUsICZnbG9iYWxPYmplY3QsIGFycmF5LmdldCgpKTsKKyAgICAgICAgfQorI2lmIEVOQUJM
RShXRUJHTDIpCisgICAgICAgICwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2ViR0xWZXJ0
ZXhBcnJheU9iamVjdD4mIGFycmF5KSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUs
ICZnbG9iYWxPYmplY3QsIGFycmF5LmdldCgpKTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgKTsK
K30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQW55LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNjN2JiN2Y5ODczOTRmMjczYTc0Yjg4MWIwMDc4MGU3NzNiNjAyNjAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5oCkBAIC0wLDAg
KzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIldlYkdMQnVmZmVy
LmgiCisjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgorI2luY2x1ZGUgIldlYkdMUHJvZ3Jh
bS5oIgorI2luY2x1ZGUgIldlYkdMUmVuZGVyYnVmZmVyLmgiCisjaW5jbHVkZSAiV2ViR0xUZXh0
dXJlLmgiCisjaW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgorI2luY2x1ZGUg
PHJ1bnRpbWUvRmxvYXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8cnVudGltZS9JbnQzMkFycmF5Lmg+
CisjaW5jbHVkZSA8cnVudGltZS9VaW50MzJBcnJheS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvVWlu
dDhBcnJheS5oPgorCisjaWYgRU5BQkxFKFdFQkdMMikKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFy
cmF5T2JqZWN0LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBFeGVjU3RhdGU7
CitjbGFzcyBKU1ZhbHVlOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTRE9N
R2xvYmFsT2JqZWN0OworCit1c2luZyBXZWJHTEFueSA9IFZhcmlhbnQ8c3RkOjpudWxscHRyX3Qs
IGJvb2wsIGludCwgdW5zaWduZWQsIGxvbmcgbG9uZywgZmxvYXQsIFN0cmluZywgVmVjdG9yPGJv
b2w+LAorICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+LAorICAgIFJlZlB0cjxJbnQzMkFycmF5PiwK
KyAgICBSZWZQdHI8VWludDMyQXJyYXk+LAorICAgIFJlZlB0cjxVaW50OEFycmF5PiwKKyAgICBS
ZWZQdHI8V2ViR0xCdWZmZXI+LAorICAgIFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiwKKyAgICBS
ZWZQdHI8V2ViR0xQcm9ncmFtPiwKKyAgICBSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+LAorICAg
IFJlZlB0cjxXZWJHTFRleHR1cmU+LAorICAgIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTPgorI2lmIEVOQUJMRShXRUJHTDIpCisgICAgLCBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9i
amVjdD4KKyNlbmRpZgorPjsKKworSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUmLCBK
U0RPTUdsb2JhbE9iamVjdCYsIGNvbnN0IFdlYkdMQW55Jik7CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTEJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5j
cHAKaW5kZXggZGYxNzcxMWRiMGI4OWVhZDAzOGY3M2MzMWQyMmZlMWUzMmE1ZTNjYy4uYmRiODFk
NmU1NWZkNzQzZWViN2QwN2EzMmI0MDI0MzBlMzljNjliNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwxMSArMjQsMTAgQEAKICAqLwogCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKIAogI2lmIEVOQUJMRShXRUJH
TCkKIAotI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCi0KICNpbmNsdWRlICJXZWJHTENvbnRleHRH
cm91cC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKIApAQCAtNDEs
OSArNDAsNiBAQCBSZWY8V2ViR0xCdWZmZXI+IFdlYkdMQnVmZmVyOjpjcmVhdGUoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSYgY3R4KQogCiBXZWJHTEJ1ZmZlcjo6V2ViR0xCdWZmZXIoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4KQogICAgIDogV2ViR0xTaGFyZWRPYmplY3QoY3R4KQot
ICAgICwgbV90YXJnZXQoMCkKLSAgICAsIG1fYnl0ZUxlbmd0aCgwKQotICAgICwgbV9uZXh0QXZh
aWxhYmxlQ2FjaGVFbnRyeSgwKQogewogICAgIHNldE9iamVjdChjdHguZ3JhcGhpY3NDb250ZXh0
M0QoKS0+Y3JlYXRlQnVmZmVyKCkpOwogICAgIGNsZWFyQ2FjaGVkTWF4SW5kaWNlcygpOwpAQCAt
NTYsNyArNTIsNyBAQCBXZWJHTEJ1ZmZlcjo6fldlYkdMQnVmZmVyKCkKIAogdm9pZCBXZWJHTEJ1
ZmZlcjo6ZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dDNkLCBQbGF0
Zm9ybTNET2JqZWN0IG9iamVjdCkKIHsKLSAgICAgIGNvbnRleHQzZC0+ZGVsZXRlQnVmZmVyKG9i
amVjdCk7CisgICAgY29udGV4dDNkLT5kZWxldGVCdWZmZXIob2JqZWN0KTsKIH0KIAogYm9vbCBX
ZWJHTEJ1ZmZlcjo6YXNzb2NpYXRlQnVmZmVyRGF0YUltcGwoY29uc3Qgdm9pZCogZGF0YSwgR0Mz
RHNpemVpcHRyIGJ5dGVMZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTEJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZm
ZXIuaAppbmRleCAxYjQxNGU4ZmM5YTEzNWE5Y2VjMGJjZDZjNmYyMmUwOWMyNzcxZDRlLi5kM2Jk
OWEwMzhlY2I4ZDcwYzdkMDQ3OGVjNDA4YzkyMWE0NzkzMGU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMQnVmZmVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsOSArMzcsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFdlYkdMQnVmZmVyIGZpbmFsIDogcHVibGljIFdlYkdMU2hhcmVkT2JqZWN0IHsK
IHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJHTEJ1ZmZlcigpOwotCiAgICAgc3RhdGljIFJlZjxX
ZWJHTEJ1ZmZlcj4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKKyAgICB2aXJ0
dWFsIH5XZWJHTEJ1ZmZlcigpOwogCiAgICAgYm9vbCBhc3NvY2lhdGVCdWZmZXJEYXRhKEdDM0Rz
aXplaXB0ciBzaXplKTsKICAgICBib29sIGFzc29jaWF0ZUJ1ZmZlckRhdGEoSlNDOjpBcnJheUJ1
ZmZlciopOwpAQCAtNzAsMTIgKzY5LDEwIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGRlbGV0ZU9i
amVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsK
IAogcHJpdmF0ZToKLSAgICBib29sIGlzQnVmZmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQotCi0gICAgR0MzRGVudW0gbV90YXJnZXQ7CisgICAgR0MzRGVudW0gbV90YXJnZXQg
eyAwIH07CiAKICAgICBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4gbV9lbGVtZW50QXJyYXlCdWZm
ZXI7Ci0gICAgR0MzRHNpemVpcHRyIG1fYnl0ZUxlbmd0aDsKKyAgICBHQzNEc2l6ZWlwdHIgbV9i
eXRlTGVuZ3RoIHsgMCB9OwogCiAgICAgLy8gT3B0aW1pemF0aW9uIGZvciBpbmRleCB2YWxpZGF0
aW9uLiBGb3IgZWFjaCB0eXBlIG9mIGluZGV4CiAgICAgLy8gKGkuZS4sIFVOU0lHTkVEX1NIT1JU
KSwgY2FjaGUgdGhlIG1heGltdW0gaW5kZXggaW4gdGhlCkBAIC05Miw3ICs4OSw3IEBAIHByaXZh
dGU6CiAgICAgLy8gYW5kIFVOU0lHTkVEX1NIT1JUKSwgYnV0IG1pZ2h0IGFzIHdlbGwgbGVhdmUg
b3BlbiB0aGUKICAgICAvLyBwb3NzaWJpbGl0eSBvZiBhZGRpbmcgb3RoZXJzLgogICAgIE1heElu
ZGV4Q2FjaGVFbnRyeSBtX21heEluZGV4Q2FjaGVbNF07Ci0gICAgdW5zaWduZWQgaW50IG1fbmV4
dEF2YWlsYWJsZUNhY2hlRW50cnk7CisgICAgdW5zaWduZWQgbV9uZXh0QXZhaWxhYmxlQ2FjaGVF
bnRyeSB7IDAgfTsKIAogICAgIC8vIENsZWFycyBhbGwgb2YgdGhlIGNhY2hlZCBtYXggaW5kaWNl
cy4KICAgICB2b2lkIGNsZWFyQ2FjaGVkTWF4SW5kaWNlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwCmluZGV4IDIxMzNmMzNlZmM4Y2Uw
OTg3YjQ5ODMzY2JjMTBmYzc1OTEyYTA4MjIuLjlkZGVmMTU4Y2QwYWNkZTZiNjhjYWRkZDJiYzkz
Y2VkNWE4M2RlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
Q29udGV4dEdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENv
bnRleHRHcm91cC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjQsMTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAK
LSNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgotCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0M0QuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAjaW5jbHVk
ZSAiV2ViR0xTaGFyZWRPYmplY3QuaCIKQEAgLTM3LDExICszNiw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogUmVmPFdlYkdMQ29udGV4dEdyb3VwPiBXZWJHTENvbnRleHRHcm91cDo6Y3JlYXRl
KCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTENvbnRleHRHcm91cCgpKTsKLX0K
LQotV2ViR0xDb250ZXh0R3JvdXA6OldlYkdMQ29udGV4dEdyb3VwKCkKLXsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXZWJHTENvbnRleHRHcm91cCk7CiB9CiAKIFdlYkdMQ29udGV4dEdyb3Vw
Ojp+V2ViR0xDb250ZXh0R3JvdXAoKQpAQCAtNDksNDMgKzQ0LDQwIEBAIFdlYkdMQ29udGV4dEdy
b3VwOjp+V2ViR0xDb250ZXh0R3JvdXAoKQogICAgIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMo
KTsKIH0KIAotR3JhcGhpY3NDb250ZXh0M0QqIFdlYkdMQ29udGV4dEdyb3VwOjpnZXRBR3JhcGhp
Y3NDb250ZXh0M0QoKQorR3JhcGhpY3NDb250ZXh0M0QmIFdlYkdMQ29udGV4dEdyb3VwOjpnZXRB
R3JhcGhpY3NDb250ZXh0M0QoKQogewogICAgIEFTU0VSVCghbV9jb250ZXh0cy5pc0VtcHR5KCkp
OwotICAgIEhhc2hTZXQ8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+OjppdGVyYXRvciBpdCA9
IG1fY29udGV4dHMuYmVnaW4oKTsKLSAgICByZXR1cm4gKCppdCktPmdyYXBoaWNzQ29udGV4dDNE
KCk7CisgICAgcmV0dXJuICooKm1fY29udGV4dHMuYmVnaW4oKSktPmdyYXBoaWNzQ29udGV4dDNE
KCk7CiB9CiAKLXZvaWQgV2ViR0xDb250ZXh0R3JvdXA6OmFkZENvbnRleHQoV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSogY29udGV4dCkKK3ZvaWQgV2ViR0xDb250ZXh0R3JvdXA6OmFkZENvbnRl
eHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCkKIHsKLSAgICBtX2NvbnRleHRz
LmFkZChjb250ZXh0KTsKKyAgICBtX2NvbnRleHRzLmFkZCgmY29udGV4dCk7CiB9CiAKLXZvaWQg
V2ViR0xDb250ZXh0R3JvdXA6OnJlbW92ZUNvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSogY29udGV4dCkKK3ZvaWQgV2ViR0xDb250ZXh0R3JvdXA6OnJlbW92ZUNvbnRleHQoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCkKIHsKICAgICAvLyBXZSBtdXN0IGNhbGwgZGV0
YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cyBiZWZvcmUgcmVtb3ZpbmcgdGhlIGxhc3QgY29udGV4dC4K
LSAgICBpZiAobV9jb250ZXh0cy5zaXplKCkgPT0gMSAmJiBtX2NvbnRleHRzLmNvbnRhaW5zKGNv
bnRleHQpKQorICAgIGlmIChtX2NvbnRleHRzLnNpemUoKSA9PSAxICYmIG1fY29udGV4dHMuY29u
dGFpbnMoJmNvbnRleHQpKQogICAgICAgICBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCk7CiAK
LSAgICBtX2NvbnRleHRzLnJlbW92ZShjb250ZXh0KTsKKyAgICBtX2NvbnRleHRzLnJlbW92ZSgm
Y29udGV4dCk7CiB9CiAKLXZvaWQgV2ViR0xDb250ZXh0R3JvdXA6OnJlbW92ZU9iamVjdChXZWJH
TFNoYXJlZE9iamVjdCogb2JqZWN0KQordm9pZCBXZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlT2Jq
ZWN0KFdlYkdMU2hhcmVkT2JqZWN0JiBvYmplY3QpCiB7Ci0gICAgbV9ncm91cE9iamVjdHMucmVt
b3ZlKG9iamVjdCk7CisgICAgbV9ncm91cE9iamVjdHMucmVtb3ZlKCZvYmplY3QpOwogfQogCi12
b2lkIFdlYkdMQ29udGV4dEdyb3VwOjphZGRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVj
dCkKK3ZvaWQgV2ViR0xDb250ZXh0R3JvdXA6OmFkZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCYg
b2JqZWN0KQogewotICAgIG1fZ3JvdXBPYmplY3RzLmFkZChvYmplY3QpOworICAgIG1fZ3JvdXBP
YmplY3RzLmFkZCgmb2JqZWN0KTsKIH0KIAogdm9pZCBXZWJHTENvbnRleHRHcm91cDo6ZGV0YWNo
QW5kUmVtb3ZlQWxsT2JqZWN0cygpCiB7Ci0gICAgd2hpbGUgKCFtX2dyb3VwT2JqZWN0cy5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgSGFzaFNldDxXZWJHTFNoYXJlZE9iamVjdCo+OjppdGVyYXRvciBp
dCA9IG1fZ3JvdXBPYmplY3RzLmJlZ2luKCk7Ci0gICAgICAgICgqaXQpLT5kZXRhY2hDb250ZXh0
R3JvdXAoKTsKLSAgICB9CisgICAgd2hpbGUgKCFtX2dyb3VwT2JqZWN0cy5pc0VtcHR5KCkpCisg
ICAgICAgICgqbV9ncm91cE9iamVjdHMuYmVnaW4oKSktPmRldGFjaENvbnRleHRHcm91cCgpOwog
fQogCiB2b2lkIFdlYkdMQ29udGV4dEdyb3VwOjpsb3NlQ29udGV4dEdyb3VwKFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6Okxvc3RDb250ZXh0TW9kZSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKaW5kZXggOWQwMTBiZmNjMjA5OTZhMTQ2
NDg1N2FmY2VlZjNjNGFhN2E2YjliNy4uMTFiNzM3MDMyMjZlMTFiZTNlNTRmNmViYzU2MjIyMGMy
ZDE1NWE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0R3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI2LDM1ICsyNiwyNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdyYXBo
aWNzQ29udGV4dDNEOwotY2xhc3MgV2ViR0xFeHRlbnNpb247Ci1jbGFzcyBXZWJHTFNoYXJlZE9i
amVjdDsKLWNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7Ci0KLWNsYXNzIFdlYkdMQ29u
dGV4dEdyb3VwIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR0xDb250ZXh0R3JvdXA+IHsK
K2NsYXNzIFdlYkdMQ29udGV4dEdyb3VwIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR0xDb250ZXh0
R3JvdXA+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkdMQ29udGV4dEdyb3VwPiBjcmVh
dGUoKTsKICAgICB+V2ViR0xDb250ZXh0R3JvdXAoKTsKIAotICAgIHZvaWQgYWRkQ29udGV4dChX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKik7Ci0gICAgdm9pZCByZW1vdmVDb250ZXh0KFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UqKTsKKyAgICB2b2lkIGFkZENvbnRleHQoV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYpOworICAgIHZvaWQgcmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJik7CiAKLSAgICB2b2lkIGFkZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCopOwot
ICAgIHZvaWQgcmVtb3ZlT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Kik7CisgICAgdm9pZCBhZGRP
YmplY3QoV2ViR0xTaGFyZWRPYmplY3QmKTsKKyAgICB2b2lkIHJlbW92ZU9iamVjdChXZWJHTFNo
YXJlZE9iamVjdCYpOwogCi0gICAgR3JhcGhpY3NDb250ZXh0M0QqIGdldEFHcmFwaGljc0NvbnRl
eHQzRCgpOworICAgIEdyYXBoaWNzQ29udGV4dDNEJiBnZXRBR3JhcGhpY3NDb250ZXh0M0QoKTsK
IAogICAgIHZvaWQgbG9zZUNvbnRleHRHcm91cChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpM
b3N0Q29udGV4dE1vZGUpOwogCi0gIHByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIFdlYkdMT2Jq
ZWN0OwotCi0gICAgV2ViR0xDb250ZXh0R3JvdXAoKTsKK3ByaXZhdGU6CisgICAgV2ViR0xDb250
ZXh0R3JvdXAoKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIGRldGFjaEFuZFJlbW92ZUFsbE9iamVj
dHMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9i
amVjdC5jcHAKaW5kZXggNTIzZTZlNjQyZDc0OWI2MDIyZjM3NzNhODhlZGY0ZWEwZWNiOWJiOC4u
NmExYzdhYjI5OTljODQ1Y2U5ZmU0MzEyOTE0MGVjM2NiYmM0MDVlYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCkBAIC0yNCwyNSAr
MjQsMjMgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xDb250
ZXh0T2JqZWN0LmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNpbmNsdWRlICJXZWJHTENvbnRl
eHRPYmplY3QuaCIKLQogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBXZWJHTENvbnRleHRPYmplY3Q6OldlYkdMQ29udGV4dE9i
amVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQotICAgIDogV2ViR0xPYmpl
Y3QoY29udGV4dCkKLSAgICAsIG1fY29udGV4dCgmY29udGV4dCkKKyAgICA6IG1fY29udGV4dCgm
Y29udGV4dCkKIHsKIH0KIAogV2ViR0xDb250ZXh0T2JqZWN0Ojp+V2ViR0xDb250ZXh0T2JqZWN0
KCkKIHsKICAgICBpZiAobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNvbnRl
eHRPYmplY3QodGhpcyk7CisgICAgICAgIG1fY29udGV4dC0+cmVtb3ZlQ29udGV4dE9iamVjdCgq
dGhpcyk7CiB9CiAKIHZvaWQgV2ViR0xDb250ZXh0T2JqZWN0OjpkZXRhY2hDb250ZXh0KCkKQEAg
LTUwLDE0ICs0OCwxNCBAQCB2b2lkIFdlYkdMQ29udGV4dE9iamVjdDo6ZGV0YWNoQ29udGV4dCgp
CiAgICAgZGV0YWNoKCk7CiAgICAgaWYgKG1fY29udGV4dCkgewogICAgICAgICBkZWxldGVPYmpl
Y3QobV9jb250ZXh0LT5ncmFwaGljc0NvbnRleHQzRCgpKTsKLSAgICAgICAgbV9jb250ZXh0LT5y
ZW1vdmVDb250ZXh0T2JqZWN0KHRoaXMpOwotICAgICAgICBtX2NvbnRleHQgPSAwOworICAgICAg
ICBtX2NvbnRleHQtPnJlbW92ZUNvbnRleHRPYmplY3QoKnRoaXMpOworICAgICAgICBtX2NvbnRl
eHQgPSBudWxscHRyOwogICAgIH0KIH0KIAogR3JhcGhpY3NDb250ZXh0M0QqIFdlYkdMQ29udGV4
dE9iamVjdDo6Z2V0QUdyYXBoaWNzQ29udGV4dDNEKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9j
b250ZXh0ID8gbV9jb250ZXh0LT5ncmFwaGljc0NvbnRleHQzRCgpIDogMDsKKyAgICByZXR1cm4g
bV9jb250ZXh0ID8gbV9jb250ZXh0LT5ncmFwaGljc0NvbnRleHQzRCgpIDogbnVsbHB0cjsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1
ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNw
cAppbmRleCBmOWI3YzIwMjI4ODNkNTc5MmIwMjVmMDIxMWQwMmU0ZGE2YjY2NjNhLi5jMjc2MmIy
MzY3YjdjMzQxOTZiNDdmZWUzZjllYzM0ZGZjYmEwOWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwxMSArMjQsMTAgQEAKICAqLwog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgogCiAj
aWYgRU5BQkxFKFdFQkdMKQogCi0jaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgotCiAjaW5j
bHVkZSAiRXh0ZW5zaW9uczNELmgiCiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKICNp
bmNsdWRlICJXZWJHTERyYXdCdWZmZXJzLmgiCkBAIC02MDYsNiArNjA1LDkgQEAgdm9pZCBXZWJH
TEZyYW1lYnVmZmVyOjpkcmF3QnVmZmVycyhjb25zdCBWZWN0b3I8R0MzRGVudW0+JiBidWZzKQog
dm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KGJvb2wgZm9yY2Up
CiB7CiAjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAvLyBGSVhNRTogVGhlIGxvZ2ljIGhlcmUgc2Vl
bXMgd3JvbmcuIElmIHdlIGRvbid0IGhhdmUgV2ViR0wgMiBlbmFibGVkIGF0IGFsbCwgdGhlbgor
ICAgIC8vIHdlIHNraXAgdGhlIG1fd2ViZ2xEcmF3QnVmZmVycyBjaGVjay4gQnV0IGlmIHdlIGRv
IGhhdmUgV2ViR0wgMiBlbmFibGVkLCB0aGVuIHdlCisgICAgLy8gcGVyZm9ybSB0aGlzIGNoZWNr
LCBmb3IgV2ViR0wgMSBjb250ZXh0cyBvbmx5LgogICAgIGlmICghY29udGV4dCgpLT5tX3dlYmds
RHJhd0J1ZmZlcnMgJiYgIWNvbnRleHQoKS0+aXNXZWJHTDIoKSkKICAgICAgICAgcmV0dXJuOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldElu
Zm8uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGVhZDFjZmQ2Mzc0MmIwMGQ1MjQyZGU3MTk1NzIz
YWIzZWYzZDFlYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsMzcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShXRUJHTCkKLQotI2lu
Y2x1ZGUgIldlYkdMR2V0SW5mby5oIgotCi0jaW5jbHVkZSA8cnVudGltZS9GbG9hdDMyQXJyYXku
aD4KLSNpbmNsdWRlIDxydW50aW1lL0ludDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL1Vp
bnQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9VaW50OEFycmF5Lmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oYm9vbCB2YWx1ZSkKLSAg
ICA6IG1fdHlwZShrVHlwZUJvb2wpCi0gICAgLCBtX2Jvb2wodmFsdWUpCi0gICAgLCBtX2Zsb2F0
KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2
NCgwKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhjb25zdCBib29sKiB2YWx1
ZSwgaW50IHNpemUpCi0gICAgOiBtX3R5cGUoa1R5cGVCb29sQXJyYXkpCi0gICAgLCBtX2Jvb2wo
ZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25l
ZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotewotICAgIGlmICghdmFsdWUgfHwgc2l6ZSA8PTAp
Ci0gICAgICAgIHJldHVybjsKLSAgICBtX2Jvb2xBcnJheS5yZXNpemUoc2l6ZSk7Ci0gICAgZm9y
IChpbnQgaWkgPSAwOyBpaSA8IHNpemU7ICsraWkpCi0gICAgICAgIG1fYm9vbEFycmF5W2lpXSA9
IHZhbHVlW2lpXTsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oZmxvYXQgdmFsdWUp
Ci0gICAgOiBtX3R5cGUoa1R5cGVGbG9hdCkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1f
ZmxvYXQodmFsdWUpCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAg
ICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhpbnQgdmFs
dWUpCi0gICAgOiBtX3R5cGUoa1R5cGVJbnQpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBt
X2Zsb2F0KDApCi0gICAgLCBtX2ludCh2YWx1ZSkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAg
ICAsIG1faW50NjQoMCkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oKQotICAg
IDogbV90eXBlKGtUeXBlTnVsbCkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQo
MCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0
KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKGNvbnN0IFN0cmluZyYgdmFs
dWUpCi0gICAgOiBtX3R5cGUoa1R5cGVTdHJpbmcpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAg
LCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV9zdHJpbmcodmFsdWUpCi0gICAg
LCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5m
bzo6V2ViR0xHZXRJbmZvKHVuc2lnbmVkIGludCB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVVu
c2lnbmVkSW50KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwg
bV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQodmFsdWUpCi0gICAgLCBtX2ludDY0KDApCi17
Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKGxvbmcgbG9uZyB2YWx1ZSkKLSAgICA6
IG1fdHlwZShrVHlwZUludDY0KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgw
KQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQo
dmFsdWUpCi17Ci19Ci0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxX
ZWJHTEJ1ZmZlcj4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJHTEJ1ZmZlcikKLSAgICAs
IG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBt
X3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmdsQnVmZmVyKHZh
bHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEZsb2F0
MzJBcnJheT4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJHTEZsb2F0QXJyYXkpCi0gICAg
LCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwg
bV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbEZsb2F0QXJy
YXkodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8
V2ViR0xGcmFtZWJ1ZmZlcj4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJHTEZyYW1lYnVm
ZmVyKQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQo
MCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2Vi
Z2xGcmFtZWJ1ZmZlcih2YWx1ZSkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8o
UGFzc1JlZlB0cjxJbnQzMkFycmF5PiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMSW50
QXJyYXkpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2lu
dCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93
ZWJnbEludEFycmF5KHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQ
YXNzUmVmUHRyPFdlYkdMUHJvZ3JhbT4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJHTFBy
b2dyYW0pCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2lu
dCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93
ZWJnbFByb2dyYW0odmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBh
c3NSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlV2Vi
R0xSZW5kZXJidWZmZXIpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0g
ICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQot
ICAgICwgbV93ZWJnbFJlbmRlcmJ1ZmZlcih2YWx1ZSkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpX
ZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+IHZhbHVlKQotICAgIDogbV90eXBl
KGtUeXBlV2ViR0xUZXh0dXJlKQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgw
KQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQo
MCkKLSAgICAsIG1fd2ViZ2xUZXh0dXJlKHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86Oldl
YkdMR2V0SW5mbyhQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHZhbHVlKQotICAgIDogbV90eXBlKGtU
eXBlV2ViR0xVbnNpZ25lZEJ5dGVBcnJheSkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1f
ZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBt
X2ludDY0KDApCi0gICAgLCBtX3dlYmdsVW5zaWduZWRCeXRlQXJyYXkodmFsdWUpCi17Ci19Ci0K
LVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDMyQXJyYXk+IHZhbHVl
KQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xVbnNpZ25lZEludEFycmF5KQotICAgICwgbV9ib29s
KGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWdu
ZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xVbnNpZ25lZEludEFycmF5
KHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUykKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQo
MCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0
KDApCi0gICAgLCBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3RPRVModmFsdWUpCi17Ci19Ci0KLSNp
ZiBFTkFCTEUoV0VCR0wyKQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxX
ZWJHTFZlcnRleEFycmF5T2JqZWN0PiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMVmVy
dGV4QXJyYXlPYmplY3QpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0g
ICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQot
ICAgICwgbV93ZWJnbFZlcnRleEFycmF5T2JqZWN0KHZhbHVlKQotewotfQotI2VuZGlmCi0KLVdl
YkdMR2V0SW5mbzo6fldlYkdMR2V0SW5mbygpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6VHlwZSBX
ZWJHTEdldEluZm86OmdldFR5cGUoKSBjb25zdAotewotICAgIHJldHVybiBtX3R5cGU7Ci19Ci0K
LWJvb2wgV2ViR0xHZXRJbmZvOjpnZXRCb29sKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlw
ZSgpID09IGtUeXBlQm9vbCk7Ci0gICAgcmV0dXJuIG1fYm9vbDsKLX0KLQotY29uc3QgVmVjdG9y
PGJvb2w+JiBXZWJHTEdldEluZm86OmdldEJvb2xBcnJheSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJU
KGdldFR5cGUoKSA9PSBrVHlwZUJvb2xBcnJheSk7Ci0gICAgcmV0dXJuIG1fYm9vbEFycmF5Owot
fQotCi1mbG9hdCBXZWJHTEdldEluZm86OmdldEZsb2F0KCkgY29uc3QKLXsKLSAgICBBU1NFUlQo
Z2V0VHlwZSgpID09IGtUeXBlRmxvYXQpOwotICAgIHJldHVybiBtX2Zsb2F0OwotfQotCi1pbnQg
V2ViR0xHZXRJbmZvOjpnZXRJbnQoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0g
a1R5cGVJbnQpOwotICAgIHJldHVybiBtX2ludDsKLX0KLQotY29uc3QgU3RyaW5nJiBXZWJHTEdl
dEluZm86OmdldFN0cmluZygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlw
ZVN0cmluZyk7Ci0gICAgcmV0dXJuIG1fc3RyaW5nOwotfQotCi11bnNpZ25lZCBpbnQgV2ViR0xH
ZXRJbmZvOjpnZXRVbnNpZ25lZEludCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9
PSBrVHlwZVVuc2lnbmVkSW50KTsKLSAgICByZXR1cm4gbV91bnNpZ25lZEludDsKLX0KLQotbG9u
ZyBsb25nIFdlYkdMR2V0SW5mbzo6Z2V0SW50NjQoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRU
eXBlKCkgPT0ga1R5cGVJbnQ2NCk7Ci0gICAgcmV0dXJuIG1faW50NjQ7Ci19Ci0KLVdlYkdMQnVm
ZmVyKiBXZWJHTEdldEluZm86OmdldFdlYkdMQnVmZmVyKCkgY29uc3QKLXsKLSAgICBBU1NFUlQo
Z2V0VHlwZSgpID09IGtUeXBlV2ViR0xCdWZmZXIpOwotICAgIHJldHVybiBtX3dlYmdsQnVmZmVy
LmdldCgpOwotfQotCi1GbG9hdDMyQXJyYXkqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xGbG9hdEFy
cmF5KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xGbG9hdEFy
cmF5KTsKLSAgICByZXR1cm4gbV93ZWJnbEZsb2F0QXJyYXkuZ2V0KCk7Ci19Ci0KLVdlYkdMRnJh
bWVidWZmZXIqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xGcmFtZWJ1ZmZlcigpIGNvbnN0Ci17Ci0g
ICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMRnJhbWVidWZmZXIpOwotICAgIHJldHVy
biBtX3dlYmdsRnJhbWVidWZmZXIuZ2V0KCk7Ci19Ci0KLUludDMyQXJyYXkqIFdlYkdMR2V0SW5m
bzo6Z2V0V2ViR0xJbnRBcnJheSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBr
VHlwZVdlYkdMSW50QXJyYXkpOwotICAgIHJldHVybiBtX3dlYmdsSW50QXJyYXkuZ2V0KCk7Ci19
Ci0KLVdlYkdMUHJvZ3JhbSogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTFByb2dyYW0oKSBjb25zdAot
ewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTFByb2dyYW0pOwotICAgIHJldHVy
biBtX3dlYmdsUHJvZ3JhbS5nZXQoKTsKLX0KLQotV2ViR0xSZW5kZXJidWZmZXIqIFdlYkdMR2V0
SW5mbzo6Z2V0V2ViR0xSZW5kZXJidWZmZXIoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBl
KCkgPT0ga1R5cGVXZWJHTFJlbmRlcmJ1ZmZlcik7Ci0gICAgcmV0dXJuIG1fd2ViZ2xSZW5kZXJi
dWZmZXIuZ2V0KCk7Ci19Ci0KLVdlYkdMVGV4dHVyZSogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTFRl
eHR1cmUoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTFRleHR1
cmUpOwotICAgIHJldHVybiBtX3dlYmdsVGV4dHVyZS5nZXQoKTsKLX0KLQotVWludDhBcnJheSog
V2ViR0xHZXRJbmZvOjpnZXRXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KCkgY29uc3QKLXsKLSAgICBB
U1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xVbnNpZ25lZEJ5dGVBcnJheSk7Ci0gICAgcmV0
dXJuIG1fd2ViZ2xVbnNpZ25lZEJ5dGVBcnJheS5nZXQoKTsKLX0KLQotVWludDMyQXJyYXkqIFdl
YkdMR2V0SW5mbzo6Z2V0V2ViR0xVbnNpZ25lZEludEFycmF5KCkgY29uc3QKLXsKLSAgICBBU1NF
UlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xVbnNpZ25lZEludEFycmF5KTsKLSAgICByZXR1cm4g
bV93ZWJnbFVuc2lnbmVkSW50QXJyYXkuZ2V0KCk7Ci19Ci0KLVdlYkdMVmVydGV4QXJyYXlPYmpl
Y3RPRVMqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygpIGNvbnN0
Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3RP
RVMpOwotICAgIHJldHVybiBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3RPRVMuZ2V0KCk7Ci19Ci0K
LSNpZiBFTkFCTEUoV0VCR0wyKQotV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCogV2ViR0xHZXRJbmZv
OjpnZXRXZWJHTFZlcnRleEFycmF5T2JqZWN0KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlw
ZSgpID09IGtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xW
ZXJ0ZXhBcnJheU9iamVjdC5nZXQoKTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMR2V0SW5mby5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNmY2OTNjNWQ3
NjM2MjIzZWQ1Y2FlM2MzOWZiNjAwM2JhZjc4ZmNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0
SW5mby5oCisrKyAvZGV2L251bGwKQEAgLTEsMTU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiV2Vi
R0xCdWZmZXIuaCIKLSNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCi0jaW5jbHVkZSAiV2Vi
R0xQcm9ncmFtLmgiCi0jaW5jbHVkZSAiV2ViR0xSZW5kZXJidWZmZXIuaCIKLSNpbmNsdWRlICJX
ZWJHTFRleHR1cmUuaCIKLSNpZiBFTkFCTEUoV0VCR0wyKQotI2luY2x1ZGUgIldlYkdMVmVydGV4
QXJyYXlPYmplY3QuaCIKLSNlbmRpZgotI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RP
RVMuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Zsb2F0MzJBcnJheS5oPgotI2luY2x1ZGUgPHJ1bnRp
bWUvSW50MzJBcnJheS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvVWludDMyQXJyYXkuaD4KLSNpbmNs
dWRlIDxydW50aW1lL1VpbnQ4QXJyYXkuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgot
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBBIHRhZ2dlZCB1bmlvbiByZXByZXNlbnRpbmcg
dGhlIHJlc3VsdCBvZiBnZXQgcXVlcmllcyBsaWtlCi0vLyBnZXRQYXJhbWV0ZXIgKGVuY29tcGFz
c2luZyBnZXRCb29sZWFudiwgZ2V0SW50ZWdlcnYsIGdldEZsb2F0dikgYW5kCi0vLyBzaW1pbGFy
IHZhcmlhbnRzLiBGb3IgcmVmZXJlbmNlIGNvdW50ZWQgdHlwZXMsIGluY3JlbWVudHMgYW5kCi0v
LyBkZWNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIHRhcmdldCBvYmplY3QuCi0K
LWNsYXNzIFdlYkdMR2V0SW5mbyBmaW5hbCB7Ci1wdWJsaWM6Ci0gICAgZW51bSBUeXBlIHsKLSAg
ICAgICAga1R5cGVCb29sLAotICAgICAgICBrVHlwZUJvb2xBcnJheSwKLSAgICAgICAga1R5cGVG
bG9hdCwKLSAgICAgICAga1R5cGVJbnQsCi0gICAgICAgIGtUeXBlTnVsbCwKLSAgICAgICAga1R5
cGVTdHJpbmcsCi0gICAgICAgIGtUeXBlVW5zaWduZWRJbnQsCi0gICAgICAgIGtUeXBlSW50NjQs
Ci0gICAgICAgIGtUeXBlV2ViR0xCdWZmZXIsCi0gICAgICAgIGtUeXBlV2ViR0xGbG9hdEFycmF5
LAotICAgICAgICBrVHlwZVdlYkdMRnJhbWVidWZmZXIsCi0gICAgICAgIGtUeXBlV2ViR0xJbnRB
cnJheSwKLSAgICAgICAga1R5cGVXZWJHTE9iamVjdEFycmF5LAotICAgICAgICBrVHlwZVdlYkdM
UHJvZ3JhbSwKLSAgICAgICAga1R5cGVXZWJHTFJlbmRlcmJ1ZmZlciwKLSAgICAgICAga1R5cGVX
ZWJHTFRleHR1cmUsCi0gICAgICAgIGtUeXBlV2ViR0xVbnNpZ25lZEJ5dGVBcnJheSwKLSAgICAg
ICAga1R5cGVXZWJHTFVuc2lnbmVkSW50QXJyYXksCi0gICAgICAgIGtUeXBlV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUywKLSAgICAgICAga1R5cGVXZWJHTFZlcnRleEFycmF5T2JqZWN0LAotICAg
IH07Ci0KLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oYm9vbCB2YWx1ZSk7Ci0gICAgV2ViR0xH
ZXRJbmZvKGNvbnN0IGJvb2wqIHZhbHVlLCBpbnQgc2l6ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xH
ZXRJbmZvKGZsb2F0IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oaW50IHZhbHVl
KTsKLSAgICAvLyBSZXByZXNlbnRzIHRoZSBudWxsIHZhbHVlIGFuZCB0eXBlLgotICAgIFdlYkdM
R2V0SW5mbygpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhjb25zdCBTdHJpbmcmIHZhbHVl
KTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8odW5zaWduZWQgaW50IHZhbHVlKTsKLSAgICBl
eHBsaWNpdCBXZWJHTEdldEluZm8obG9uZyBsb25nIHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJH
TEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdl
YkdMR2V0SW5mbyhQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gdmFsdWUpOwotICAgIGV4cGxpY2l0
IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IHZhbHVlKTsKLSAgICBl
eHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxJbnQzMkFycmF5PiB2YWx1ZSk7Ci0gICAg
Ly8gRklYTUU6IGltcGxlbWVudCBXZWJHTE9iamVjdEFycmF5Ci0gICAgLy8gV2ViR0xHZXRJbmZv
KFBhc3NSZWZQdHI8V2ViR0xPYmplY3RBcnJheT4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdM
R2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUHJvZ3JhbT4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdl
YkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPiB2YWx1ZSk7Ci0gICAgZXhw
bGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xUZXh0dXJlPiB2YWx1ZSk7Ci0gICAg
ZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDhBcnJheT4gdmFsdWUpOwotICAg
IGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiB2YWx1ZSk7Ci0g
ICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUz4gdmFsdWUpOwotI2lmIEVOQUJMRShXRUJHTDIpCi0gICAgZXhwbGljaXQgV2ViR0xHZXRJ
bmZvKFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4gdmFsdWUpOwotI2VuZGlmCi0K
LSAgICB+V2ViR0xHZXRJbmZvKCk7Ci0KLSAgICBUeXBlIGdldFR5cGUoKSBjb25zdDsKLQotICAg
IGJvb2wgZ2V0Qm9vbCgpIGNvbnN0OwotICAgIGNvbnN0IFZlY3Rvcjxib29sPiYgZ2V0Qm9vbEFy
cmF5KCkgY29uc3Q7Ci0gICAgZmxvYXQgZ2V0RmxvYXQoKSBjb25zdDsKLSAgICBpbnQgZ2V0SW50
KCkgY29uc3Q7Ci0gICAgY29uc3QgU3RyaW5nJiBnZXRTdHJpbmcoKSBjb25zdDsKLSAgICB1bnNp
Z25lZCBpbnQgZ2V0VW5zaWduZWRJbnQoKSBjb25zdDsKLSAgICBsb25nIGxvbmcgZ2V0SW50NjQo
KSBjb25zdDsKLSAgICBXZWJHTEJ1ZmZlciogZ2V0V2ViR0xCdWZmZXIoKSBjb25zdDsKLSAgICBG
bG9hdDMyQXJyYXkqIGdldFdlYkdMRmxvYXRBcnJheSgpIGNvbnN0OwotICAgIFdlYkdMRnJhbWVi
dWZmZXIqIGdldFdlYkdMRnJhbWVidWZmZXIoKSBjb25zdDsKLSAgICBJbnQzMkFycmF5KiBnZXRX
ZWJHTEludEFycmF5KCkgY29uc3Q7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudCBXZWJHTE9iamVj
dEFycmF5Ci0gICAgLy8gV2ViR0xPYmplY3RBcnJheSogZ2V0V2ViR0xPYmplY3RBcnJheSgpIGNv
bnN0OwotICAgIFdlYkdMUHJvZ3JhbSogZ2V0V2ViR0xQcm9ncmFtKCkgY29uc3Q7Ci0gICAgV2Vi
R0xSZW5kZXJidWZmZXIqIGdldFdlYkdMUmVuZGVyYnVmZmVyKCkgY29uc3Q7Ci0gICAgV2ViR0xU
ZXh0dXJlKiBnZXRXZWJHTFRleHR1cmUoKSBjb25zdDsKLSAgICBVaW50OEFycmF5KiBnZXRXZWJH
TFVuc2lnbmVkQnl0ZUFycmF5KCkgY29uc3Q7Ci0gICAgVWludDMyQXJyYXkqIGdldFdlYkdMVW5z
aWduZWRJbnRBcnJheSgpIGNvbnN0OwotICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMqIGdl
dFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKSBjb25zdDsKLSNpZiBFTkFCTEUoV0VCR0wyKQot
ICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIGdldFdlYkdMVmVydGV4QXJyYXlPYmplY3QoKSBj
b25zdDsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIFR5cGUgbV90eXBlOwotICAgIGJvb2wgbV9i
b29sOwotICAgIFZlY3Rvcjxib29sPiBtX2Jvb2xBcnJheTsKLSAgICBmbG9hdCBtX2Zsb2F0Owot
ICAgIGludCBtX2ludDsKLSAgICBTdHJpbmcgbV9zdHJpbmc7Ci0gICAgdW5zaWduZWQgaW50IG1f
dW5zaWduZWRJbnQ7Ci0gICAgbG9uZyBsb25nIG1faW50NjQ7Ci0gICAgUmVmUHRyPFdlYkdMQnVm
ZmVyPiBtX3dlYmdsQnVmZmVyOwotICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IG1fd2ViZ2xGbG9h
dEFycmF5OwotICAgIFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiBtX3dlYmdsRnJhbWVidWZmZXI7
Ci0gICAgUmVmUHRyPEludDMyQXJyYXk+IG1fd2ViZ2xJbnRBcnJheTsKLSAgICAvLyBGSVhNRTog
aW1wbGVtZW50IFdlYkdMT2JqZWN0QXJyYXkKLSAgICAvLyBSZWZQdHI8V2ViR0xPYmplY3RBcnJh
eT4gbV93ZWJnbE9iamVjdEFycmF5OwotICAgIFJlZlB0cjxXZWJHTFByb2dyYW0+IG1fd2ViZ2xQ
cm9ncmFtOwotICAgIFJlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4gbV93ZWJnbFJlbmRlcmJ1ZmZl
cjsKLSAgICBSZWZQdHI8V2ViR0xUZXh0dXJlPiBtX3dlYmdsVGV4dHVyZTsKLSAgICBSZWZQdHI8
VWludDhBcnJheT4gbV93ZWJnbFVuc2lnbmVkQnl0ZUFycmF5OwotICAgIFJlZlB0cjxVaW50MzJB
cnJheT4gbV93ZWJnbFVuc2lnbmVkSW50QXJyYXk7Ci0gICAgUmVmUHRyPFdlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVM+IG1fd2ViZ2xWZXJ0ZXhBcnJheU9iamVjdE9FUzsKLSNpZiBFTkFCTEUoV0VC
R0wyKQotICAgIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBtX3dlYmdsVmVydGV4QXJy
YXlPYmplY3Q7Ci0jZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcAppbmRleCA1ZDkyMDk1ZmZmMTc4NmIy
MjVjMjg1YTk3MDNjNjY5OTYxYjU5NzVlLi40OGY5MzllMGRhOGY0ZTMyYzgyMmQyOTEyMTI0ZmZj
YmU0ZTVhYTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI0LDExICsyNCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJHTE9iamVjdC5oIgogCiAjaWYgRU5BQkxFKFdFQkdMKQogCi0jaW5jbHVkZSAiV2ViR0xPYmpl
Y3QuaCIKLQogI2luY2x1ZGUgIldlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmgiCiAjaW5jbHVk
ZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKICNpbmNsdWRlICJXZWJHTERlYnVnUmVuZGVyZXJJbmZv
LmgiCkBAIC0zOCwyMSArMzcsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1XZWJHTE9i
amVjdDo6V2ViR0xPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpCi0gICAgOiBtX29i
amVjdCgwKQotICAgICwgbV9hdHRhY2htZW50Q291bnQoMCkKLSAgICAsIG1fZGVsZXRlZChmYWxz
ZSkKLXsKLX0KLQotV2ViR0xPYmplY3Q6On5XZWJHTE9iamVjdCgpCi17Ci19Ci0KIHZvaWQgV2Vi
R0xPYmplY3Q6OnNldE9iamVjdChQbGF0Zm9ybTNET2JqZWN0IG9iamVjdCkKIHsKLSAgICAvLyBv
YmplY3Q9PTAgJiYgbV9kZWxldGVkPT1mYWxzZSBpbmRpY2F0aW5nIGFuIHVuaW5pdGlhbGl6ZWQg
c3RhdGU7Ci0gICAgQVNTRVJUKCFtX29iamVjdCAmJiAhbV9kZWxldGVkKTsKKyAgICBBU1NFUlQo
IW1fb2JqZWN0KTsKKyAgICBBU1NFUlQoIW1fZGVsZXRlZCk7CiAgICAgbV9vYmplY3QgPSBvYmpl
Y3Q7CiB9CiAKQEAgLTc5LDggKzY3LDcgQEAgdm9pZCBXZWJHTE9iamVjdDo6ZGVsZXRlT2JqZWN0
KEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M2QpCiB2b2lkIFdlYkdMT2JqZWN0OjpkZXRhY2go
KQogewogICAgIG1fYXR0YWNobWVudENvdW50ID0gMDsgLy8gTWFrZSBzdXJlIE9wZW5HTCByZXNv
dXJjZSBpcyBkZWxldGVkLgotICAgIH0KLQorfQogCiB2b2lkIFdlYkdMT2JqZWN0OjpvbkRldGFj
aGVkKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M2QpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xPYmplY3QuaAppbmRleCA3YjMyM2Q2YzlmN2E3OGFmNGIyZjQzZTY1MDNmOWUw
MTI5ZWNjNzQ3Li42OWRiYjVhYTA3ZWI5Mjk5NWQzY2VlNzExZjRiMjg3YzY2M2U0NWE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsMTcgKzI2LDE1IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCi0jaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBHcmFwaGlj
c0NvbnRleHQzRDsKIGNsYXNzIFdlYkdMQ29udGV4dEdyb3VwOwogY2xhc3MgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTsKIAogY2xhc3MgV2ViR0xPYmplY3QgOiBwdWJsaWMgUmVmQ291bnRlZDxX
ZWJHTE9iamVjdD4gewogcHVibGljOgotICAgIHZpcnR1YWwgfldlYkdMT2JqZWN0KCk7CisgICAg
dmlydHVhbCB+V2ViR0xPYmplY3QoKSB7IH0KIAogICAgIFBsYXRmb3JtM0RPYmplY3Qgb2JqZWN0
KCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3Q7IH0KIApAQCAtNTcsNyArNTUsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIHZhbGlkYXRlKGNvbnN0IFdlYkdMQ29udGV4dEdyb3VwKiwgY29u
c3QgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpIGNvbnN0ID0gMDsKIAogcHJvdGVjdGVkOgot
ICAgIFdlYkdMT2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKKyAgICBXZWJHTE9i
amVjdCgpID0gZGVmYXVsdDsKIAogICAgIC8vIHNldE9iamVjdCBzaG91bGQgYmUgb25seSBjYWxs
ZWQgb25jZSByaWdodCBhZnRlciBjcmVhdGluZyBhIFdlYkdMT2JqZWN0LgogICAgIHZvaWQgc2V0
T2JqZWN0KFBsYXRmb3JtM0RPYmplY3QpOwpAQCAtNzIsOSArNzAsOSBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCBHcmFwaGljc0NvbnRleHQzRCogZ2V0QUdyYXBoaWNzQ29udGV4dDNEKCkgY29u
c3QgPSAwOwogCiBwcml2YXRlOgotICAgIFBsYXRmb3JtM0RPYmplY3QgbV9vYmplY3Q7Ci0gICAg
dW5zaWduZWQgbV9hdHRhY2htZW50Q291bnQ7Ci0gICAgYm9vbCBtX2RlbGV0ZWQ7CisgICAgUGxh
dGZvcm0zRE9iamVjdCBtX29iamVjdCB7IDAgfTsKKyAgICB1bnNpZ25lZCBtX2F0dGFjaG1lbnRD
b3VudCB7IDAgfTsKKyAgICBib29sIG1fZGVsZXRlZCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFByb2dyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFt
LmNwcAppbmRleCA3N2FmZTk0YzQ1ODVhMWJiM2UxNzc2Yzg5MTUzYjg0YmI4NmMxNzAzLi5jMjQz
MzVkYzQ2N2Q3NjdiYWZhODNlYmNmMTE5ZjMyZWEzYTVkMzM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKQEAgLTI0LDEzICsyNCwxMyBAQAogICovCiAK
ICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKIAogI2lmIEVO
QUJMRShXRUJHTCkKIAotI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgotCiAjaW5jbHVkZSAiV2Vi
R0xDb250ZXh0R3JvdXAuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgi
CisjaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00
MSw5ICs0MSw2IEBAIFJlZjxXZWJHTFByb2dyYW0+IFdlYkdMUHJvZ3JhbTo6Y3JlYXRlKFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKIAogV2ViR0xQcm9ncmFtOjpXZWJHTFByb2dyYW0o
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4KQogICAgIDogV2ViR0xTaGFyZWRPYmplY3Qo
Y3R4KQotICAgICwgbV9saW5rU3RhdHVzKGZhbHNlKQotICAgICwgbV9saW5rQ291bnQoMCkKLSAg
ICAsIG1faW5mb1ZhbGlkKHRydWUpCiB7CiAgICAgc2V0T2JqZWN0KGN0eC5ncmFwaGljc0NvbnRl
eHQzRCgpLT5jcmVhdGVQcm9ncmFtKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFByb2dyYW0uaAppbmRleCA3MTdjY2UxMzhjNDI4YzU3Y2RkYjdjNTVjMTQ2ODVmYTQ2MjIz
MmYzLi5lYWI3NmM4OTc1MWNiZTQ5MmI0NmU3NGNmZThkMTk1ODA5ZTEzMWE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSwxNyArMjUsMTYgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJHTFNoYWRlci5oIgogI2luY2x1ZGUgIldlYkdMU2hh
cmVkT2JqZWN0LmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK2NsYXNzIFdlYkdMU2hhZGVyOworCiBjbGFzcyBXZWJHTFByb2dyYW0gZmluYWwgOiBw
dWJsaWMgV2ViR0xTaGFyZWRPYmplY3QgewogcHVibGljOgotICAgIHZpcnR1YWwgfldlYkdMUHJv
Z3JhbSgpOwotCiAgICAgc3RhdGljIFJlZjxXZWJHTFByb2dyYW0+IGNyZWF0ZShXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlJik7CisgICAgdmlydHVhbCB+V2ViR0xQcm9ncmFtKCk7CiAKICAgICB1
bnNpZ25lZCBudW1BY3RpdmVBdHRyaWJMb2NhdGlvbnMoKTsKICAgICBHQzNEaW50IGdldEFjdGl2
ZUF0dHJpYkxvY2F0aW9uKEdDM0R1aW50IGluZGV4KTsKQEAgLTYzLDIzICs2MiwyMCBAQCBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxh
dGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBpc1Byb2dyYW0o
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0KICAgICB2b2lkIGNhY2hlQWN0aXZl
QXR0cmliTG9jYXRpb25zKEdyYXBoaWNzQ29udGV4dDNEKik7CiAgICAgdm9pZCBjYWNoZUluZm9J
Zk5lZWRlZCgpOwogCiAgICAgVmVjdG9yPEdDM0RpbnQ+IG1fYWN0aXZlQXR0cmliTG9jYXRpb25z
OwogCi0gICAgR0MzRGludCBtX2xpbmtTdGF0dXM7CisgICAgR0MzRGludCBtX2xpbmtTdGF0dXMg
eyAwIH07CiAKLSAgICAvLyBUaGlzIGlzIHVzZWQgdG8gdHJhY2sgd2hldGhlciBhIFdlYkdMVW5p
Zm9ybUxvY2F0aW9uIGJlbG9uZ3MgdG8gdGhpcwotICAgIC8vIHByb2dyYW0gb3Igbm90LgotICAg
IHVuc2lnbmVkIG1fbGlua0NvdW50OworICAgIC8vIFRoaXMgaXMgdXNlZCB0byB0cmFjayB3aGV0
aGVyIGEgV2ViR0xVbmlmb3JtTG9jYXRpb24gYmVsb25ncyB0byB0aGlzIHByb2dyYW0gb3Igbm90
LgorICAgIHVuc2lnbmVkIG1fbGlua0NvdW50IHsgMCB9OwogCiAgICAgUmVmUHRyPFdlYkdMU2hh
ZGVyPiBtX3ZlcnRleFNoYWRlcjsKICAgICBSZWZQdHI8V2ViR0xTaGFkZXI+IG1fZnJhZ21lbnRT
aGFkZXI7CiAKLSAgICBib29sIG1faW5mb1ZhbGlkOworICAgIGJvb2wgbV9pbmZvVmFsaWQgeyB0
cnVlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFF1ZXJ5LmgKaW5kZXggNDZkYjU5MmE4NWFmNjJmZTgwZjcxZjM3M2JlNTkxNmJj
YjljMTg1OS4uM2NiNzYxNzc3Nzc1MjAxYmNhMDFhYTYwNmM1YmMxOTU0YTI2ZjI3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSwxNyArMzEsMTIgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFF1ZXJ5IGZpbmFsIDogcHVibGljIFdlYkdMU2hh
cmVkT2JqZWN0IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJHTFF1ZXJ5KCk7Ci0KICAgICBz
dGF0aWMgUmVmPFdlYkdMUXVlcnk+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7
CisgICAgdmlydHVhbCB+V2ViR0xRdWVyeSgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV2ViR0xRdWVy
eShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7Ci0KKyAgICBleHBsaWNpdCBXZWJHTFF1ZXJ5
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKICAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwo
R3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKLQotcHJpdmF0
ZToKLSAgICBib29sIGlzUXVlcnkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCBiMDZkNmM5Yzg2YTMxNmMy
MDE5OTM1Y2U4NDEzNDgwOWUzMzQxNmFmLi43ZGZmYzM1N2ExNzJiNTkxMWFjZjBiMDg1ZjJlZDIx
ODg2MjVhOTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsOSArMjQsOSBAQAogICovCiAKICNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKIAogI2lmIEVOQUJMRShX
RUJHTCkKLSNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKIAogI2luY2x1ZGUgIkFO
R0xFSW5zdGFuY2VkQXJyYXlzLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKQEAgLTcwLDE2
ICs3MCwxNiBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OldlYkdMUmVuZGVyaW5nQ29udGV4dChI
VE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLCBHcgogewogfQogCi1XZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OldlYkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2Vk
Q2FudmFzLCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0LAotICAgIEdyYXBo
aWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzKSA6IFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UocGFzc2VkQ2FudmFzLCBjb250ZXh0LCBhdHRyaWJ1dGVzKQorV2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENh
bnZhcywgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDNE
QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorICAgIDogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShw
YXNzZWRDYW52YXMsIFdURk1vdmUoY29udGV4dCksIGF0dHJpYnV0ZXMpCiB7CiAgICAgaW5pdGlh
bGl6ZVZlcnRleEFycmF5T2JqZWN0cygpOwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cygpCiB7Ci0gICAgbV9kZWZhdWx0VmVydGV4
QXJyYXlPYmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUoKnRoaXMsIFdl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OlZBT1R5cGVEZWZhdWx0KTsKLSAgICBhZGRDb250ZXh0
T2JqZWN0KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0LmdldCgpKTsKKyAgICBtX2RlZmF1bHRW
ZXJ0ZXhBcnJheU9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmNyZWF0ZSgqdGhp
cywgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6VHlwZTo6RGVmYXVsdCk7CisgICAgYWRkQ29u
dGV4dE9iamVjdCgqbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QpOwogICAgIG1fYm91bmRWZXJ0
ZXhBcnJheU9iamVjdCA9IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OwogICAgIGlmICghaXNH
TEVTMkNvbXBsaWFudCgpKQogICAgICAgICBpbml0VmVydGV4QXR0cmliMCgpOwpAQCAtOTAsOTkg
KzkwLDkxIEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVu
c2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmco
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgaWYgKGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UobmFtZSwgIkVYVF9ibGVuZF9taW5tYXgiKQotICAgICAgICAmJiBtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX2JsZW5kX21pbm1heCIpKSB7CisgICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9ibGVuZF9taW5tYXgiKSkgewog
ICAgICAgICBpZiAoIW1fZXh0QmxlbmRNaW5NYXgpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX0VYVF9ibGVuZF9taW5tYXgiKTsKLSAg
ICAgICAgICAgIG1fZXh0QmxlbmRNaW5NYXggPSBzdGQ6Om1ha2VfdW5pcXVlPEVYVEJsZW5kTWlu
TWF4PigqdGhpcyk7CisgICAgICAgICAgICBtX2V4dEJsZW5kTWluTWF4ID0gZW5hYmxlU3VwcG9y
dGVkRXh0ZW5zaW9uKCJHTF9FWFRfYmxlbmRfbWlubWF4IikKKyAgICAgICAgICAgICAgICA/IHN0
ZDo6bWFrZV91bmlxdWU8RVhUQmxlbmRNaW5NYXg+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuIG1fZXh0QmxlbmRNaW5NYXguZ2V0KCk7CiAgICAgfQotICAgIGlm
IChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfc1JHQiIpCi0gICAgICAgICYmIG1f
Y29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfc1JHQiIpKSB7CisgICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9zUkdCIikpIHsKICAgICAgICAg
aWYgKCFtX2V4dHNSR0IpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LmVuc3VyZUVuYWJsZWQoIkdMX0VYVF9zUkdCIik7Ci0gICAgICAgICAgICBtX2V4dHNSR0IgPSBz
dGQ6Om1ha2VfdW5pcXVlPEVYVHNSR0I+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fZXh0c1JHQiA9
IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfRVhUX3NSR0IiKQorICAgICAgICAgICAgICAg
ID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRzUkdCPigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9
CiAgICAgICAgIHJldHVybiBtX2V4dHNSR0IuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfZnJhZ19kZXB0aCIpCi0gICAgICAgICYmIG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfZnJhZ19kZXB0aCIpKSB7Cisg
ICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9mcmFnX2RlcHRoIikpIHsK
ICAgICAgICAgaWYgKCFtX2V4dEZyYWdEZXB0aCkgewotICAgICAgICAgICAgbV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX2ZyYWdfZGVwdGgiKTsKLSAgICAg
ICAgICAgIG1fZXh0RnJhZ0RlcHRoID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRGcmFnRGVwdGg+KCp0
aGlzKTsKKyAgICAgICAgICAgIG1fZXh0RnJhZ0RlcHRoID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5z
aW9uKCJHTF9FWFRfZnJhZ19kZXB0aCIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5p
cXVlPEVYVEZyYWdEZXB0aD4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gbV9leHRGcmFnRGVwdGguZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKG5hbWUsICJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIikKLSAgICAgICAgJiYgKG1f
Y29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfc2hhZGVyX3RleHR1cmVf
bG9kIikgfHwgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FSQl9zaGFk
ZXJfdGV4dHVyZV9sb2QiKSkpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1l
LCAiRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpKSB7CiAgICAgICAgIGlmICghbV9leHRTaGFkZXJU
ZXh0dXJlTE9EKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1
cmVFbmFibGVkKCJHTF9FWFRfc2hhZGVyX3RleHR1cmVfbG9kIik7Ci0gICAgICAgICAgICBtX2V4
dFNoYWRlclRleHR1cmVMT0QgPSBzdGQ6Om1ha2VfdW5pcXVlPEVYVFNoYWRlclRleHR1cmVMT0Q+
KCp0aGlzKTsKKyAgICAgICAgICAgIGlmICghKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1
cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfc2hhZGVyX3RleHR1cmVfbG9kIiB9KSB8fCBt
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfQVJC
X3NoYWRlcl90ZXh0dXJlX2xvZCIgfSkpKQorICAgICAgICAgICAgICAgIG1fZXh0U2hhZGVyVGV4
dHVyZUxPRCA9IG51bGxwdHI7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBt
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0ZXJhbCB7ICJH
TF9FWFRfc2hhZGVyX3RleHR1cmVfbG9kIiB9KTsKKyAgICAgICAgICAgICAgICBtX2V4dFNoYWRl
clRleHR1cmVMT0QgPSBzdGQ6Om1ha2VfdW5pcXVlPEVYVFNoYWRlclRleHR1cmVMT0Q+KCp0aGlz
KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9leHRTaGFkZXJU
ZXh0dXJlTE9ELmdldCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
bmFtZSwgIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpIHx8IGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UobmFtZSwgIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkK
LSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF90
ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UobmFtZSwgIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpIHx8IGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9w
aWMiKSkgewogICAgICAgICBpZiAoIW1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKSB7Ci0g
ICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9F
WFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTsKLSAgICAgICAgICAgIG1fZXh0VGV4dHVy
ZUZpbHRlckFuaXNvdHJvcGljID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWM+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJv
cGljID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5p
c290cm9waWMiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWM+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmdldCgpOwogICAgIH0KLSAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVz
IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09F
U19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UobmFtZSwgIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpKSB7CiAgICAgICAgIGlmICghbV9v
ZXNTdGFuZGFyZERlcml2YXRpdmVzKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVu
c2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKTsKLSAg
ICAgICAgICAgIG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcyA9IHN0ZDo6bWFrZV91bmlxdWU8T0VT
U3RhbmRhcmREZXJpdmF0aXZlcz4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNTdGFuZGFyZERl
cml2YXRpdmVzID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfc3RhbmRhcmRfZGVy
aXZhdGl2ZXMiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNTdGFuZGFy
ZERlcml2YXRpdmVzPigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVy
biBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdCIpCi0gICAgICAgICYmIG1f
Y29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIp
KSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zs
b2F0IikpIHsKICAgICAgICAgaWYgKCFtX29lc1RleHR1cmVGbG9hdCkgewotICAgICAgICAgICAg
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVf
ZmxvYXQiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0ID0gc3RkOjptYWtlX3VuaXF1
ZTxPRVNUZXh0dXJlRmxvYXQ+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0
ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpCisgICAg
ICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdD4oKnRoaXMpIDog
bnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlRmxvYXQuZ2V0
KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4
dHVyZV9mbG9hdF9saW5lYXIiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpIHsKKyAgICBpZiAoZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpIHsK
ICAgICAgICAgaWYgKCFtX29lc1RleHR1cmVGbG9hdExpbmVhcikgewotICAgICAgICAgICAgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVfZmxv
YXRfbGluZWFyIik7Ci0gICAgICAgICAgICBtX29lc1RleHR1cmVGbG9hdExpbmVhciA9IHN0ZDo6
bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0TGluZWFyPigqdGhpcyk7CisgICAgICAgICAgICBt
X29lc1RleHR1cmVGbG9hdExpbmVhciA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfT0VT
X3RleHR1cmVfZmxvYXRfbGluZWFyIikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlx
dWU8T0VTVGV4dHVyZUZsb2F0TGluZWFyPigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAg
ICAgICAgIHJldHVybiBtX29lc1RleHR1cmVGbG9hdExpbmVhci5nZXQoKTsKICAgICB9Ci0gICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQi
KQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VT
X3RleHR1cmVfaGFsZl9mbG9hdCIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
bmFtZSwgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSkgewogICAgICAgICBpZiAoIW1fb2VzVGV4
dHVyZUhhbGZGbG9hdCkgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
ZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpOwotICAgICAgICAgICAg
bV9vZXNUZXh0dXJlSGFsZkZsb2F0ID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZs
b2F0PigqdGhpcyk7CisgICAgICAgICAgICBtX29lc1RleHR1cmVIYWxmRmxvYXQgPSBlbmFibGVT
dXBwb3J0ZWRFeHRlbnNpb24oIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiKQorICAgICAgICAg
ICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZsb2F0PigqdGhpcykgOiBu
dWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVIYWxmRmxvYXQu
Z2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNf
dGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpKSB7
CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2hhbGZf
ZmxvYXRfbGluZWFyIikpIHsKICAgICAgICAgaWYgKCFtX29lc1RleHR1cmVIYWxmRmxvYXRMaW5l
YXIpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJs
ZWQoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik7Ci0gICAgICAgICAgICBtX29l
c1RleHR1cmVIYWxmRmxvYXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxm
RmxvYXRMaW5lYXI+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdExp
bmVhciA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9h
dF9saW5lYXIiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJl
SGFsZkZsb2F0TGluZWFyPigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJl
dHVybiBtX29lc1RleHR1cmVIYWxmRmxvYXRMaW5lYXIuZ2V0KCk7CiAgICAgfQotICAgIGlmIChl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpCi0g
ICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdmVy
dGV4X2FycmF5X29iamVjdCIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFt
ZSwgIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IikpIHsKICAgICAgICAgaWYgKCFtX29lc1ZlcnRl
eEFycmF5T2JqZWN0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5l
bnN1cmVFbmFibGVkKCJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIpOwotICAgICAgICAgICAg
bV9vZXNWZXJ0ZXhBcnJheU9iamVjdCA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVmVydGV4QXJyYXlP
YmplY3Q+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVmVydGV4QXJyYXlPYmplY3QgPSBlbmFi
bGVTdXBwb3J0ZWRFeHRlbnNpb24oIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IikKKyAgICAg
ICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTVmVydGV4QXJyYXlPYmplY3Q+KCp0aGlz
KSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVmVydGV4QXJyYXlP
YmplY3QuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUs
ICJPRVNfZWxlbWVudF9pbmRleF91aW50IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU19lbGVtZW50X2luZGV4X3VpbnQiKSkgeworICAgIGlm
IChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfZWxlbWVudF9pbmRleF91aW50Iikp
IHsKICAgICAgICAgaWYgKCFtX29lc0VsZW1lbnRJbmRleFVpbnQpIHsKLSAgICAgICAgICAgIG1f
Y29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU19lbGVtZW50X2lu
ZGV4X3VpbnQiKTsKLSAgICAgICAgICAgIG1fb2VzRWxlbWVudEluZGV4VWludCA9IHN0ZDo6bWFr
ZV91bmlxdWU8T0VTRWxlbWVudEluZGV4VWludD4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNF
bGVtZW50SW5kZXhVaW50ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfZWxlbWVu
dF9pbmRleF91aW50IikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTRWxl
bWVudEluZGV4VWludD4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gbV9vZXNFbGVtZW50SW5kZXhVaW50LmdldCgpOwogICAgIH0KQEAgLTE5MSw0MSArMTgzLDUz
IEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihj
b25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgICAgICBtX3dlYmdsTG9zZUNvbnRleHQgPSBzdGQ6
Om1ha2VfdW5pcXVlPFdlYkdMTG9zZUNvbnRleHQ+KCp0aGlzKTsKICAgICAgICAgcmV0dXJuIG1f
d2ViZ2xMb3NlQ29udGV4dC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKChlcXVhbElnbm9yaW5nQVND
SUlDYXNlKG5hbWUsICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpKQotICAg
ICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0g
ICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDKQotICAgICAgICAgICAgbV93
ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNz
ZWRUZXh0dXJlQVRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFt
ZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIikpIHsKKyAgICAgICAgaWYg
KCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xDb21w
cmVzc2VkVGV4dHVyZUFUQyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZCgq
dGhpcykKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2Vk
VGV4dHVyZUFUQz4oKnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4g
bV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDLmdldCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVf
cHZydGMiKSkKLSAgICAgICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0
ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMp
Ci0gICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQyA9IHN0ZDo6bWFrZV91
bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVf
cHZydGMiKSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKSB7
CisgICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQyA9IFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0aGlzKQorICAgICAgICAgICAgICAgID8gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM+KCp0aGlzKSA6IG51bGxw
dHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBW
UlRDLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAi
V0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKQotICAgICAgICAmJiBXZWJHTENvbXByZXNz
ZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xD
b21wcmVzc2VkVGV4dHVyZVMzVEMpCi0gICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1
cmVTM1RDID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQz4oKnRo
aXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9jb21wcmVz
c2VkX3RleHR1cmVfczN0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0
dXJlUzNUQykgeworICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQyA9IFdl
YkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpCisgICAgICAgICAgICAg
ICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDPigqdGhpcykg
OiBudWxscHRyOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRl
eHR1cmVTM1RDLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShu
YW1lLCAiV0VCR0xfZGVwdGhfdGV4dHVyZSIpCi0gICAgICAgICYmIFdlYkdMRGVwdGhUZXh0dXJl
OjpzdXBwb3J0ZWQoKmdyYXBoaWNzQ29udGV4dDNEKCkpKSB7Ci0gICAgICAgIGlmICghbV93ZWJn
bERlcHRoVGV4dHVyZSkKLSAgICAgICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUgPSBzdGQ6Om1h
a2VfdW5pcXVlPFdlYkdMRGVwdGhUZXh0dXJlPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlcHRoX3RleHR1cmUiKSkgeworICAgICAgICBpZiAo
IW1fd2ViZ2xEZXB0aFRleHR1cmUpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUg
PSBXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCptX2NvbnRleHQpCisgICAgICAgICAgICAg
ICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVwdGhUZXh0dXJlPigqdGhpcykgOiBudWxscHRy
OworICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3dlYmdsRGVwdGhUZXh0dXJlLmdldCgpOwog
ICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZHJhd19i
dWZmZXJzIikgJiYgc3VwcG9ydHNEcmF3QnVmZmVycygpKSB7CisgICAgaWYgKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RyYXdfYnVmZmVycyIpKSB7CiAgICAgICAgIGlmICgh
bV93ZWJnbERyYXdCdWZmZXJzKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5lbnN1cmVFbmFibGVkKCJHTF9FWFRfZHJhd19idWZmZXJzIik7Ci0gICAgICAgICAgICBt
X3dlYmdsRHJhd0J1ZmZlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRHJhd0J1ZmZlcnM+KCp0
aGlzKTsKKyAgICAgICAgICAgIGlmICghc3VwcG9ydHNEcmF3QnVmZmVycygpKQorICAgICAgICAg
ICAgICAgIG1fd2ViZ2xEcmF3QnVmZmVycyA9IG51bGxwdHI7CisgICAgICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVk
KEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfZHJhd19idWZmZXJzIiB9KTsKKyAgICAgICAgICAgICAg
ICBtX3dlYmdsRHJhd0J1ZmZlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRHJhd0J1ZmZlcnM+
KCp0aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJn
bERyYXdCdWZmZXJzLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShuYW1lLCAiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpICYmIEFOR0xFSW5zdGFuY2VkQXJyYXlz
OjpzdXBwb3J0ZWQoKnRoaXMpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFt
ZSwgIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSkgewogICAgICAgICBpZiAoIW1fYW5nbGVJbnN0
YW5jZWRBcnJheXMpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVu
c3VyZUVuYWJsZWQoIkdMX0FOR0xFX2luc3RhbmNlZF9hcnJheXMiKTsKLSAgICAgICAgICAgIG1f
YW5nbGVJbnN0YW5jZWRBcnJheXMgPSBzdGQ6Om1ha2VfdW5pcXVlPEFOR0xFSW5zdGFuY2VkQXJy
YXlzPigqdGhpcyk7CisgICAgICAgICAgICBpZiAoIUFOR0xFSW5zdGFuY2VkQXJyYXlzOjpzdXBw
b3J0ZWQoKnRoaXMpKQorICAgICAgICAgICAgICAgIG1fYW5nbGVJbnN0YW5jZWRBcnJheXMgPSBu
dWxscHRyOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyAiR0xfQU5HTEVfaW5z
dGFuY2VkX2FycmF5cyIgfSk7CisgICAgICAgICAgICAgICAgbV9hbmdsZUluc3RhbmNlZEFycmF5
cyA9IHN0ZDo6bWFrZV91bmlxdWU8QU5HTEVJbnN0YW5jZWRBcnJheXM+KCp0aGlzKTsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9hbmdsZUluc3RhbmNlZEFycmF5
cy5nZXQoKTsKICAgICB9CkBAIC0yMzQsMTAgKzIzOCwxMSBAQCBXZWJHTEV4dGVuc2lvbiogV2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAg
ICAgICAgICAgbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJH
TERlYnVnUmVuZGVyZXJJbmZvPigqdGhpcyk7CiAgICAgICAgIHJldHVybiBtX3dlYmdsRGVidWdS
ZW5kZXJlckluZm8uZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KG5hbWUsICJXRUJHTF9kZWJ1Z19zaGFkZXJzIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIp
KSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERlYnVnU2hhZGVycykKLSAgICAgICAgICAgIG1fd2Vi
Z2xEZWJ1Z1NoYWRlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVidWdTaGFkZXJzPigqdGhp
cyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlYnVnX3No
YWRlcnMiKSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1NoYWRlcnMpIHsKKyAgICAgICAg
ICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIiB9
KQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnU2hhZGVycz4o
KnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVn
U2hhZGVycy5nZXQoKTsKICAgICB9CiAKQEAgLTI1MSwxMDkgKzI1NiwxMDkgQEAgVmVjdG9yPFN0
cmluZz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkKICAg
ICBpZiAobV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKQogICAgICAgICByZXR1cm4gcmVzdWx0
OwogICAgIAotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xf
RVhUX2JsZW5kX21pbm1heCIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJFWFRfYmxlbmRfbWlu
bWF4Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9F
WFRfc1JHQiIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJFWFRfc1JHQiIpOwotICAgIGlmICht
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX2ZyYWdfZGVwdGgiKSkK
LSAgICAgICAgcmVzdWx0LmFwcGVuZCgiRVhUX2ZyYWdfZGVwdGgiKTsKLSAgICBpZiAobV9jb250
ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0IikpCi0g
ICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2Zsb2F0Iik7Ci0gICAgaWYgKG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5l
YXIiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIik7
Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4
dHVyZV9oYWxmX2Zsb2F0IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hh
bGZfZmxvYXQiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMo
IkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikpCi0gICAgICAgIHJlc3VsdC5hcHBl
bmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKSkK
LSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIik7Ci0gICAg
aWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfc2hhZGVyX3Rl
eHR1cmVfbG9kIikgfHwgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FS
Ql9zaGFkZXJfdGV4dHVyZV9sb2QiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiRVhUX3NoYWRl
cl90ZXh0dXJlX2xvZCIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cygiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpCi0gICAgICAgIHJlc3Vs
dC5hcHBlbmQoIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOwotICAgIGlmIChtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmpl
Y3QiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTsK
LSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU19lbGVt
ZW50X2luZGV4X3VpbnQiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX2VsZW1lbnRfaW5k
ZXhfdWludCIpOwotICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2xvc2VfY29udGV4dCIpOworICAg
IGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAi
R0xfRVhUX2JsZW5kX21pbm1heCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRl
cmFsIHsgIkVYVF9ibGVuZF9taW5tYXgiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVu
c2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX3NSR0IiIH0pKQorICAgICAg
ICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJFWFRfc1JHQiIgfSk7CisgICAgaWYgKG1f
Y29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRf
ZnJhZ19kZXB0aCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIkVY
VF9mcmFnX2RlcHRoIiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3Vw
cG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2Zsb2F0IiB9KSkKKyAgICAgICAg
cmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfZmxvYXQiIH0pOworICAg
IGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAi
R0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChB
U0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9KTsKKyAgICBpZiAobV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190
ZXh0dXJlX2hhbGZfZmxvYXQiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJh
bCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZf
ZmxvYXRfbGluZWFyIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAi
T0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3N0YW5kYXJkX2Rl
cml2YXRpdmVzIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VT
X3N0YW5kYXJkX2Rlcml2YXRpdmVzIiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF9zaGFkZXJfdGV4dHVyZV9sb2Qi
IH0pIHx8IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7
ICJHTF9BUkJfc2hhZGVyX3RleHR1cmVfbG9kIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChB
U0NJSUxpdGVyYWwgeyAiRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIgfSk7CisgICAgaWYgKG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfdGV4
dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJ
TGl0ZXJhbCB7ICJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pOworICAgIGlmICht
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VT
X3ZlcnRleF9hcnJheV9vYmplY3QiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0
ZXJhbCB7ICJPRVNfdmVydGV4X2FycmF5X29iamVjdCIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfZWxlbWVudF9p
bmRleF91aW50IiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VT
X2VsZW1lbnRfaW5kZXhfdWludCIgfSk7CisgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwg
eyAiV0VCR0xfbG9zZV9jb250ZXh0IiB9KTsKICAgICBpZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dF
QkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJ
SUxpdGVyYWwgeyAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiIH0pOwogICAg
IGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OnN1cHBvcnRlZCgqdGhpcykpCi0gICAg
ICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMi
KTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCS0lUX1dFQkdMX2Nv
bXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIgfSk7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9j
b21wcmVzc2VkX3RleHR1cmVfczN0YyIpOwotICAgIGlmIChXZWJHTERlcHRoVGV4dHVyZTo6c3Vw
cG9ydGVkKCpncmFwaGljc0NvbnRleHQzRCgpKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VC
R0xfZGVwdGhfdGV4dHVyZSIpOworICAgIGlmIChXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVk
KCptX2NvbnRleHQpKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJH
TF9kZXB0aF90ZXh0dXJlIiB9KTsKICAgICBpZiAoc3VwcG9ydHNEcmF3QnVmZmVycygpKQotICAg
ICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kcmF3X2J1ZmZlcnMiKTsKKyAgICAgICAgcmVzdWx0
LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfZHJhd19idWZmZXJzIiB9KTsKICAgICBpZiAo
QU5HTEVJbnN0YW5jZWRBcnJheXM6OnN1cHBvcnRlZCgqdGhpcykpCi0gICAgICAgIHJlc3VsdC5h
cHBlbmQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIp
KQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19zaGFkZXJzIik7Ci0gICAgcmVz
dWx0LmFwcGVuZCgiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpOworICAgICAgICByZXN1bHQu
YXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIiB9KTsKKyAgICBp
ZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdM
X0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBl
bmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RlYnVnX3NoYWRlcnMiIH0pOworICAgIHJlc3VsdC5h
cHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iIH0pOwogCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJn
ZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0Nv
bnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVy
cygiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgdGFyZ2V0LCBhdHRhY2htZW50
KSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICAKICAgICBpZiAoIW1fZnJhbWVidWZmZXJCaW5kaW5nIHx8ICFtX2ZyYW1lYnVmZmVy
QmluZGluZy0+b2JqZWN0KCkpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyIiwgIm5vIGZyYW1lYnVmZmVyIGJvdW5kIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIFdlYkdM
U2hhcmVkT2JqZWN0KiBvYmplY3QgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVu
dE9iamVjdChhdHRhY2htZW50KTsKKyAgICBhdXRvKiBvYmplY3QgPSBtX2ZyYW1lYnVmZmVyQmlu
ZGluZy0+Z2V0QXR0YWNobWVudE9iamVjdChhdHRhY2htZW50KTsKICAgICBpZiAoIW9iamVjdCkg
ewogICAgICAgICBpZiAocG5hbWUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FU
VEFDSE1FTlRfT0JKRUNUX1RZUEUpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdy
YXBoaWNzQ29udGV4dDNEOjpOT05FKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpOwogICAgICAgICAvLyBPcGVuR0wgRVMg
Mi4wIHNwZWNpZmllcyBJTlZBTElEX0VOVU0gaW4gdGhpcyBjYXNlLCB3aGlsZSBkZXNrdG9wIEdM
CiAgICAgICAgIC8vIHNwZWNpZmllcyBJTlZBTElEX09QRVJBVElPTi4KICAgICAgICAgc3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogICAgIAotICAgIEFTU0VSVChvYmplY3QtPmlzVGV4dHVyZSgpIHx8IG9iamVjdC0+aXNSZW5k
ZXJidWZmZXIoKSk7CiAgICAgaWYgKG9iamVjdC0+aXNUZXh0dXJlKCkpIHsKICAgICAgICAgc3dp
dGNoIChwbmFtZSkgewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZF
Ul9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRSk7CisgICAgICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFKTsKICAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRToK
LSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+
KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJlKj4ob2JqZWN0KSkpOworICAgICAgICAgICAg
cmV0dXJuIG1ha2VSZWZQdHIocmVpbnRlcnByZXRfY2FzdDxXZWJHTFRleHR1cmUmPigqb2JqZWN0
KSk7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfVEVYVFVSRV9MRVZFTDoKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVC
VUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NVQkVfTUFQX0ZBQ0U6CiAgICAgICAgIGNhc2UgRXh0
ZW5zaW9uczNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HX0VYVDogewog
ICAgICAgICAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAgICAgICAgICAgICBtX2NvbnRleHQtPmdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2KHRhcmdldCwgYXR0YWNobWVudCwgcG5h
bWUsICZ2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAg
ICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5V
TSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRl
ciBuYW1lIGZvciB0ZXh0dXJlIGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CiAgICAg
fSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG9iamVjdC0+aXNSZW5kZXJidWZmZXIoKSk7CiAgICAg
ICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRToKLSAgICAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUik7CisgICAgICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZG
RVIpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX09CSkVDVF9OQU1FOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVm
UHRyPFdlYkdMUmVuZGVyYnVmZmVyPihyZWludGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVy
Kj4ob2JqZWN0KSkpOworICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIocmVpbnRlcnByZXRf
Y2FzdDxXZWJHTFJlbmRlcmJ1ZmZlciY+KCpvYmplY3QpKTsKICAgICAgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkdfRVhUOiB7CiAgICAg
ICAgICAgICBpZiAoIW1fZXh0c1JHQikgewogICAgICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVy
cm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFj
aG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBmb3IgcmVuZGVyYnVmZmVy
IGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBXZWJHTFJlbmRlcmJ1ZmZlciogcmVuZGVyQnVmZmVyID0gcmVpbnRlcnByZXRfY2FzdDxXZWJH
TFJlbmRlcmJ1ZmZlcio+KG9iamVjdCk7CiAgICAgICAgICAgICBHQzNEZW51bSByZW5kZXJCdWZm
ZXJGb3JtYXQgPSByZW5kZXJCdWZmZXItPmdldEludGVybmFsRm9ybWF0KCk7CiAgICAgICAgICAg
ICBBU1NFUlQocmVuZGVyQnVmZmVyRm9ybWF0ICE9IEV4dGVuc2lvbnMzRDo6U1JHQl9FWFQgJiYg
cmVuZGVyQnVmZmVyRm9ybWF0ICE9IEV4dGVuc2lvbnMzRDo6U1JHQl9BTFBIQV9FWFQpOwogICAg
ICAgICAgICAgaWYgKHJlbmRlckJ1ZmZlckZvcm1hdCA9PSBFeHRlbnNpb25zM0Q6OlNSR0I4X0FM
UEhBOF9FWFQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhFeHRlbnNpb25z
M0Q6OlNSR0JfRVhUKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3ND
b250ZXh0M0Q6OkxJTkVBUik7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihFeHRlbnNpb25zM0Q6OlNSR0JfRVhUKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7CiAgICAgICAgIH0K
ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNz
Q29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0
ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBmb3IgcmVuZGVyYnVmZmVyIGF0dGFjaG1lbnQi
KTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMzY0LDIxICszNjksMjIgQEAgYm9v
bCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVy
cyhjb25zdCBjaGFyKiBmdW5jdGkKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCB0YXJnZXQiKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKyAgICAvLyBGSVhNRTogV2h5IGRvZXMgdGhp
cyByZXR1cm4gdHJ1ZSB1bmNvbmRpdGlvbmFsbHkgZm9yIENPTE9SX0FUVEFDSE1FTlQwLAorICAg
IC8vIGJ1dCBmYWxzZSBmb3Igb3RoZXIgQ09MT1JfQVRUQUNITUVOVCB2YWx1ZXMgaWYgbV93ZWJn
bERyYXdCdWZmZXJzIGlzIGZhbHNlPwogICAgIHN3aXRjaCAoYXR0YWNobWVudCkgewogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwOgogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRFUFRIX0FUVEFDSE1FTlQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6U1RFTkNJTF9BVFRBQ0hNRU5UOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRI
X1NURU5DSUxfQVRUQUNITUVOVDoKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB0cnVl
OwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGlmIChtX3dlYmdsRHJhd0J1ZmZlcnMKLSAgICAgICAg
ICAgICYmIGF0dGFjaG1lbnQgPiBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAK
KyAgICAgICAgICAgICYmIGF0dGFjaG1lbnQgPj0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FU
VEFDSE1FTlQwCiAgICAgICAgICAgICAmJiBhdHRhY2htZW50IDwgc3RhdGljX2Nhc3Q8R0MzRGVu
dW0+KEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCArIGdldE1heENvbG9yQXR0
YWNobWVudHMoKSkpCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIGF0dGFjaG1lbnQiKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKIH0KICAgICAKIHZvaWQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpyZW5kZXJidWZmZXJTdG9yYWdlKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVu
dW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkKQEAg
LTQ1NSw3ICs0NjEsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Y2xlYXIoR0MzRGJp
dGZpZWxkIG1hc2spCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY29uc3QgY2hhciogcmVh
c29uID0gImZyYW1lYnVmZmVyIGluY29tcGxldGUiOwotICAgIGlmIChtX2ZyYW1lYnVmZmVyQmlu
ZGluZyAmJiAhbV9mcmFtZWJ1ZmZlckJpbmRpbmctPm9uQWNjZXNzKGdyYXBoaWNzQ29udGV4dDNE
KCksICZyZWFzb24pKSB7CisgICAgaWYgKG1fZnJhbWVidWZmZXJCaW5kaW5nICYmICFtX2ZyYW1l
YnVmZmVyQmluZGluZy0+b25BY2Nlc3MobV9jb250ZXh0LmdldCgpLCAmcmVhc29uKSkgewogICAg
ICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9GUkFNRUJV
RkZFUl9PUEVSQVRJT04sICJjbGVhciIsIHJlYXNvbik7CiAgICAgICAgIHJldHVybjsKICAgICB9
CkBAIC00NjQsMTEgKzQ3MCwxMSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Y2xlYXIo
R0MzRGJpdGZpZWxkIG1hc2spCiAgICAgbWFya0NvbnRleHRDaGFuZ2VkKCk7CiB9CiAKLVdlYkdM
R2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFt
ZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVt
IHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCi0gICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oKTsKLSAgICBjb25zdCBpbnQgaW50WmVybyA9IDA7CisgICAgICAg
IHJldHVybiBudWxscHRyOworCiAgICAgc3dpdGNoIChwbmFtZSkgewogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFDVElWRV9URVhUVVJFOgogICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJ
bnRQYXJhbWV0ZXIocG5hbWUpOwpAQCAtNDc5LDcgKzQ4NSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpBTFBIQV9CSVRTOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFy
YW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9CVUZGRVJf
QklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMQnVm
ZmVyPihtX2JvdW5kQXJyYXlCdWZmZXIpKTsKKyAgICAgICAgcmV0dXJuIG1fYm91bmRBcnJheUJ1
ZmZlcjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORDoKICAgICAgICAgcmV0dXJu
IGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkJMRU5EX0NPTE9SOgpAQCAtNTAzLDE2ICs1MDksMTYgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkNPTE9SX1dSSVRFTUFTSzoKICAgICAgICAgcmV0dXJuIGdldEJvb2xl
YW5BcnJheVBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09N
UFJFU1NFRF9URVhUVVJFX0ZPUk1BVFM6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFz
c1JlZlB0cjxVaW50MzJBcnJheT4oVWludDMyQXJyYXk6OmNyZWF0ZShtX2NvbXByZXNzZWRUZXh0
dXJlRm9ybWF0cy5kYXRhKCksIG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLnNpemUoKSkpKTsK
KyAgICAgICAgcmV0dXJuIFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21wcmVzc2VkVGV4dHVyZUZv
cm1hdHMuZGF0YSgpLCBtX2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5zaXplKCkpOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNVTExfRkFDRToKICAgICAgICAgcmV0dXJuIGdldEJvb2xl
YW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNVTExfRkFD
RV9NT0RFOgogICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNVUlJFTlRfUFJPR1JBTToKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUHJvZ3JhbT4obV9jdXJyZW50UHJvZ3Jh
bSkpOworICAgICAgICByZXR1cm4gbV9jdXJyZW50UHJvZ3JhbTsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpERVBUSF9CSVRTOgogICAgICAgICBpZiAoIW1fZnJhbWVidWZmZXJCaW5kaW5n
ICYmICFtX2F0dHJpYnV0ZXMuZGVwdGgpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KGludFplcm8pOworICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIHJldHVybiBnZXRJbnRQ
YXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NMRUFS
X1ZBTFVFOgogICAgICAgICByZXR1cm4gZ2V0RmxvYXRQYXJhbWV0ZXIocG5hbWUpOwpAQCAtNTI3
LDkgKzUzMyw5IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFt
ZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpESVRIRVI6
CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpFTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HOgotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+KG1fYm91bmRWZXJ0ZXhB
cnJheU9iamVjdC0+Z2V0RWxlbWVudEFycmF5QnVmZmVyKCkpKTsKKyAgICAgICAgcmV0dXJuIG1h
a2VSZWZQdHIobV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIo
KSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQklORElORzoKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+KG1f
ZnJhbWVidWZmZXJCaW5kaW5nKSk7CisgICAgICAgIHJldHVybiBtX2ZyYW1lYnVmZmVyQmluZGlu
ZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUk9OVF9GQUNFOgogICAgICAgICByZXR1
cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkdFTkVSQVRFX01JUE1BUF9ISU5UOgpAQCAtNTc3LDkgKzU4Myw5IEBAIFdlYkdMR2V0
SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRURfQklUUzoKICAgICAgICAgcmV0dXJuIGdl
dEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVS
QlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxX
ZWJHTFJlbmRlcmJ1ZmZlcj4obV9yZW5kZXJidWZmZXJCaW5kaW5nKSk7CisgICAgICAgIHJldHVy
biBtX3JlbmRlcmJ1ZmZlckJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVO
REVSRVI6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oU3RyaW5nKCJXZWJLaXQgV2ViR0wi
KSk7CisgICAgICAgIHJldHVybiBTdHJpbmcgeyBBU0NJSUxpdGVyYWwgeyAiV2ViS2l0IFdlYkdM
IiB9IH07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0FNUExFX0JVRkZFUlM6CiAgICAg
ICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQ6CkBAIC01OTMsNyArNTk5LDcgQEAgV2ViR0xH
ZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNDSVNTT1JfVEVTVDoKICAgICAgICAgcmV0
dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygiV2ViR0wgR0xTTCBFUyAxLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0Nv
bnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OKSArICIpIik7CisgICAgICAgIHJldHVy
biAiV2ViR0wgR0xTTCBFUyAxLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0Nv
bnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OKSArICIpIjsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JBQ0tfRkFJTDoKICAgICAgICAgcmV0dXJuIGdldFVuc2ln
bmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVO
Q0lMX0JBQ0tfRlVOQzoKQEAgLTYxMCw3ICs2MTYsNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgICAgIHJldHVy
biBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6U1RFTkNJTF9CSVRTOgogICAgICAgICBpZiAoIW1fZnJhbWVidWZmZXJCaW5kaW5nICYm
ICFtX2F0dHJpYnV0ZXMuc3RlbmNpbCkKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
aW50WmVybyk7CisgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgcmV0dXJuIGdldEludFBh
cmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9DTEVB
Ul9WQUxVRToKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CkBAIC02MzMs
NjEgKzYzOSw2MSBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJh
bWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1VCUElY
RUxfQklUUzoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5HXzJEOgotICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xUZXh0dXJlPihtX3RleHR1cmVVbml0c1ttX2Fj
dGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlMkRCaW5kaW5nKSk7CisgICAgICAgIHJldHVybiBtX3Rl
eHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlMkRCaW5kaW5nOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfQklORElOR19DVUJFX01BUDoKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMVGV4dHVyZT4obV90ZXh0dXJlVW5p
dHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4dHVyZUN1YmVNYXBCaW5kaW5nKSk7CisgICAgICAg
IHJldHVybiBtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlQ3ViZU1h
cEJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0FMSUdOTUVOVDoK
ICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VU5QQUNLX0ZMSVBfWV9XRUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhtX3VucGFja0ZsaXBZKTsKKyAgICAgICAgcmV0dXJuIG1fdW5wYWNrRmxpcFk7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMOgot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7Cisg
ICAgICAgIHJldHVybiBtX3VucGFja1ByZW11bHRpcGx5QWxwaGE7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTDoKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhtX3VucGFja0NvbG9yc3BhY2VDb252ZXJzaW9uKTsKKyAgICAg
ICAgcmV0dXJuIG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb247CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VkVORE9SOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFN0cmluZygi
V2ViS2l0IikpOworICAgICAgICByZXR1cm4gU3RyaW5nIHsgQVNDSUlMaXRlcmFsIHsgIldlYktp
dCIgfSB9OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlNJT046Ci0gICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oIldlYkdMIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdy
YXBoaWNzQ29udGV4dDNEOjpWRVJTSU9OKSArICIpIik7CisgICAgICAgIHJldHVybiAiV2ViR0wg
MS4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlNJT04p
ICsgIikiOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZJRVdQT1JUOgogICAgICAgICBy
ZXR1cm4gZ2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkZSQUdNRU5UX1NIQURFUl9ERVJJVkFUSVZFX0hJTlRfT0VTOiAvLyBPRVNfc3RhbmRh
cmRfZGVyaXZhdGl2ZXMKICAgICAgICAgaWYgKG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcykKICAg
ICAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihFeHRlbnNpb25zM0Q6OkZS
QUdNRU5UX1NIQURFUl9ERVJJVkFUSVZFX0hJTlRfT0VTKTsKICAgICAgICAgc3ludGhlc2l6ZUdM
RXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJp
bnZhbGlkIHBhcmFtZXRlciBuYW1lLCBPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMgbm90IGVuYWJs
ZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJlckluZm86OlVOTUFTS0VEX1JFTkRFUkVS
X1dFQkdMOgogICAgICAgICBpZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQotICAgICAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRl
eHQzRDo6UkVOREVSRVIpKTsKKyAgICAgICAgICAgIHJldHVybiBtX2NvbnRleHQtPmdldFN0cmlu
ZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpOwogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFs
aWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8gbm90IGVuYWJsZWQi
KTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJlckluZm86OlVOTUFTS0VEX1ZFTkRPUl9XRUJH
TDoKICAgICAgICAgaWYgKG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbykKLSAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8obV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6
OlZFTkRPUikpOworICAgICAgICAgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBo
aWNzQ29udGV4dDNEOjpWRU5ET1IpOwogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGlj
c0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1l
dGVyIG5hbWUsIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8gbm90IGVuYWJsZWQiKTsKLSAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBj
YXNlIEV4dGVuc2lvbnMzRDo6VkVSVEVYX0FSUkFZX0JJTkRJTkdfT0VTOiAvLyBPRVNfdmVydGV4
X2FycmF5X29iamVjdAogICAgICAgICBpZiAobV9vZXNWZXJ0ZXhBcnJheU9iamVjdCkgewotICAg
ICAgICAgICAgaWYgKCFtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgp
KQotICAgICAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTPihzdGF0aWNfY2FzdDxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
Kj4obV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LmdldCgpKSkpOwotICAgICAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygpOworICAgICAgICAgICAgaWYgKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVj
dC0+aXNEZWZhdWx0T2JqZWN0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihzdGF0aWNfY2FzdDxXZWJHTFZlcnRleEFycmF5
T2JqZWN0T0VTJj4oKm1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCkpOwogICAgICAgICB9CiAgICAg
ICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJn
ZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgT0VTX3ZlcnRleF9hcnJheV9v
YmplY3Qgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVf
TUFYX0FOSVNPVFJPUFlfRVhUOiAvLyBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMKICAg
ICAgICAgaWYgKG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKQogICAgICAgICAgICAgcmV0
dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFY
X0FOSVNPVFJPUFlfRVhUKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBu
YW1lLCBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMgbm90IGVuYWJsZWQiKTsKLSAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBj
YXNlIEV4dGVuc2lvbnMzRDo6TUFYX0NPTE9SX0FUVEFDSE1FTlRTX0VYVDogLy8gRVhUX2RyYXdf
YnVmZmVycyBCRUdJTgogICAgICAgICBpZiAobV93ZWJnbERyYXdCdWZmZXJzKQotICAgICAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkpOworICAgICAg
ICAgICAgcmV0dXJuIGdldE1heENvbG9yQXR0YWNobWVudHMoKTsKICAgICAgICAgc3ludGhlc2l6
ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIs
ICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBXRUJHTF9kcmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQi
KTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX0RSQVdfQlVGRkVSU19FWFQ6CiAgICAgICAg
IGlmIChtX3dlYmdsRHJhd0J1ZmZlcnMpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KGdldE1heERyYXdCdWZmZXJzKCkpOworICAgICAgICAgICAgcmV0dXJuIGdldE1heERyYXdCdWZm
ZXJzKCk7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgV0VCR0xf
ZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgZGVmYXVsdDoKICAgICAgICAgaWYgKG1f
d2ViZ2xEcmF3QnVmZmVycwogICAgICAgICAgICAgJiYgcG5hbWUgPj0gRXh0ZW5zaW9uczNEOjpE
UkFXX0JVRkZFUjBfRVhUCkBAIC02OTcsMTAgKzcwMywxMCBAQCBXZWJHTEdldEluZm8gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgICAgICAg
ICAgICAgdmFsdWUgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0RHJhd0J1ZmZlcihwbmFtZSk7
CiAgICAgICAgICAgICBlbHNlIC8vIGVtdWxhdGVkIGJhY2tidWZmZXIKICAgICAgICAgICAgICAg
ICB2YWx1ZSA9IG1fYmFja0RyYXdCdWZmZXI7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgfQogICAgICAg
ICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0
UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKaW5k
ZXggMTg3NGZlNWE1YzM4MzExOThmNDNiOTRjMjA5NmI5ZWViZTQzZTQ3MC4uMGM2MWRkNjU0MTA3
MTQxZmVjZmU3YzRiNzkwZTRhMTlmM2ViYzAzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsMTYgKzMyLDE2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBmaW5hbCA6IHB1Ymxp
YyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlIHsKIHB1YmxpYzoKICAgICBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmLCBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMp
OwotICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYsIFBhc3NSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+LCBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMpOworICAg
IFdlYkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYsIFJlZjxHcmFwaGljc0Nv
bnRleHQzRD4mJiwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzKTsKIAogcHJpdmF0ZToKICAg
ICBib29sIGlzV2ViR0wxKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgV2Vi
R0xFeHRlbnNpb24qIGdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmKSBmaW5hbDsKLSAgICBXZWJH
TEdldEluZm8gZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKKyAgICBXZWJHTEFu
eSBnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpIGZpbmFsOwogICAgIFZlY3RvcjxTdHJpbmc+
IGdldFN1cHBvcnRlZEV4dGVuc2lvbnMoKSBmaW5hbDsKIAotICAgIFdlYkdMR2V0SW5mbyBnZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBh
dHRhY2htZW50LCBHQzNEZW51bSBwbmFtZSkgZmluYWw7CisgICAgV2ViR0xBbnkgZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNo
bWVudCwgR0MzRGVudW0gcG5hbWUpIGZpbmFsOwogICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFn
ZShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lk
dGgsIEdDM0RzaXplaSBoZWlnaHQpIGZpbmFsOwogICAgIGJvb2wgdmFsaWRhdGVGcmFtZWJ1ZmZl
ckZ1bmNQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBhdHRhY2htZW50KSBmaW5hbDsKICAgICB2b2lkIGhpbnQoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEZW51bSBtb2RlKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggNjQ5ODM0Zjg1
YjljMWNkMTIwYTE2ZjJjOWE1OWJkZjUyNDljODhmZS4uOTg0NWIzZWY1ODNmOTk5ODE2Y2FlN2Yw
NGZlNGY2NzZlOWFlMjVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCw5ICsyNCw5IEBACiAg
Ki8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKLSNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmgiCiAKICNpbmNsdWRlICJBTkdMRUluc3RhbmNlZEFycmF5cy5oIgogI2luY2x1
ZGUgIkNhY2hlZEltYWdlLmgiCkBAIC00MjMsMTcgKzQyMywxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3Jl
YXRlKEhUTQogICAgICAgICByZXR1cm4gcmVuZGVyaW5nQ29udGV4dDsKICAgICB9CiAKLSAgICBI
b3N0V2luZG93KiBob3N0V2luZG93ID0gZG9jdW1lbnQudmlldygpLT5yb290KCktPmhvc3RXaW5k
b3coKTsKLSAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQoR3JhcGhpY3NDb250
ZXh0M0Q6OmNyZWF0ZShhdHRyaWJ1dGVzLCBob3N0V2luZG93KSk7Ci0KKyAgICBhdXRvIGNvbnRl
eHQgPSBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKGF0dHJpYnV0ZXMsIGRvY3VtZW50LnZpZXco
KS0+cm9vdCgpLT5ob3N0V2luZG93KCkpOwogICAgIGlmICghY29udGV4dCB8fCAhY29udGV4dC0+
bWFrZUNvbnRleHRDdXJyZW50KCkpIHsKICAgICAgICAgY2FudmFzLmRpc3BhdGNoRXZlbnQoV2Vi
R0xDb250ZXh0RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2ViZ2xjb250ZXh0Y3JlYXRpb25l
cnJvckV2ZW50LCBmYWxzZSwgdHJ1ZSwgIkNvdWxkIG5vdCBjcmVhdGUgYSBXZWJHTCBjb250ZXh0
LiIpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgRXh0ZW5zaW9uczNE
JiBleHRlbnNpb25zID0gY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpOwotICAgIGlmIChleHRlbnNp
b25zLnN1cHBvcnRzKCJHTF9FWFRfZGVidWdfbWFya2VyIikpCi0gICAgICAgIGV4dGVuc2lvbnMu
cHVzaEdyb3VwTWFya2VyRVhUKCJXZWJHTFJlbmRlcmluZ0NvbnRleHQiKTsKKyAgICBhdXRvJiBl
eHRlbnNpb25zID0gY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpOworICAgIGlmIChleHRlbnNpb25z
LnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfZGVidWdfbWFya2VyIiB9KSkKKyAgICAg
ICAgZXh0ZW5zaW9ucy5wdXNoR3JvdXBNYXJrZXJFWFQoQVNDSUlMaXRlcmFsIHsgIldlYkdMUmVu
ZGVyaW5nQ29udGV4dCIgfSk7CiAKICNpZiBFTkFCTEUoV0VCR0wyKSAmJiBQTEFURk9STShNQUMp
CiAgICAgLy8gZ2xUZXhTdG9yYWdlKCkgd2FzIG9ubHkgYWRkZWQgdG8gQ29yZSBpbiBPcGVuR0wg
NC4yLgpAQCAtNDQyLDEzICs0NDAsMTMgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZShIVE0KICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlPiByZW5kZXJpbmdDb250ZXh0ID0gbnVsbHB0cjsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4gcmVuZGVyaW5nQ29udGV4dDsK
ICNpZiBFTkFCTEUoV0VCR0wyKQogICAgIGlmICh0eXBlID09ICJ3ZWJnbDIiKQotICAgICAgICBy
ZW5kZXJpbmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTDJSZW5kZXJpbmdDb250ZXh0
PihjYW52YXMsIFdURk1vdmUoY29udGV4dCksIGF0dHJpYnV0ZXMpOworICAgICAgICByZW5kZXJp
bmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PihjYW52
YXMsIGNvbnRleHQucmVsZWFzZU5vbk51bGwoKSwgYXR0cmlidXRlcyk7CiAgICAgZWxzZQogI2Vu
ZGlmCi0gICAgICAgIHJlbmRlcmluZ0NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMUmVu
ZGVyaW5nQ29udGV4dD4oY2FudmFzLCBXVEZNb3ZlKGNvbnRleHQpLCBhdHRyaWJ1dGVzKTsKKyAg
ICAgICAgcmVuZGVyaW5nQ29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xSZW5kZXJpbmdD
b250ZXh0PihjYW52YXMsIGNvbnRleHQucmVsZWFzZU5vbk51bGwoKSwgYXR0cmlidXRlcyk7CiAg
ICAgcmVuZGVyaW5nQ29udGV4dC0+c3VzcGVuZElmTmVlZGVkKCk7CiAKICAgICByZXR1cm4gcmVu
ZGVyaW5nQ29udGV4dDsKQEAgLTQ1Nyw0NCArNDU1LDI5IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUo
SFRNCiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
KEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMg
YXR0cmlidXRlcykKICAgICA6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQocGFzc2VkQ2FudmFzKQog
ICAgICwgQWN0aXZlRE9NT2JqZWN0KCZwYXNzZWRDYW52YXMuZG9jdW1lbnQoKSkKLSAgICAsIG1f
Y29udGV4dChudWxscHRyKQogICAgICwgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lcigq
dGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dExvc3RFdmVu
dCkKLSAgICAsIG1fcmVzdG9yZUFsbG93ZWQoZmFsc2UpCiAgICAgLCBtX3Jlc3RvcmVUaW1lcigq
dGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQpCi0g
ICAgLCBtX2dlbmVyYXRlZEltYWdlQ2FjaGUoMCkKLSAgICAsIG1fY29udGV4dExvc3QoZmFsc2Up
Ci0gICAgLCBtX2NvbnRleHRMb3N0TW9kZShTeW50aGV0aWNMb3N0Q29udGV4dCkKICAgICAsIG1f
YXR0cmlidXRlcyhhdHRyaWJ1dGVzKQotICAgICwgbV9zeW50aGVzaXplZEVycm9yc1RvQ29uc29s
ZSh0cnVlKQogICAgICwgbV9udW1HTEVycm9yc1RvQ29uc29sZUFsbG93ZWQobWF4R0xFcnJvcnNB
bGxvd2VkVG9Db25zb2xlKQogICAgICwgbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKHRydWUp
Ci0gICAgLCBtX2hhc1JlcXVlc3RlZFBvbGljeVJlc29sdXRpb24oZmFsc2UpCiB7CiB9CiAKLVdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENh
bnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNv
bnRleHQsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKK1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQm
IHBhc3NlZENhbnZhcywgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQsIFdlYkdMQ29u
dGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICA6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQo
cGFzc2VkQ2FudmFzKQogICAgICwgQWN0aXZlRE9NT2JqZWN0KCZwYXNzZWRDYW52YXMuZG9jdW1l
bnQoKSkKICAgICAsIG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQogICAgICwgbV9kaXNwYXRj
aENvbnRleHRMb3N0RXZlbnRUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmRpc3BhdGNoQ29udGV4dExvc3RFdmVudCkKLSAgICAsIG1fcmVzdG9yZUFsbG93ZWQoZmFsc2Up
CiAgICAgLCBtX3Jlc3RvcmVUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
Om1heWJlUmVzdG9yZUNvbnRleHQpCiAgICAgLCBtX2dlbmVyYXRlZEltYWdlQ2FjaGUoNCkKLSAg
ICAsIG1fY29udGV4dExvc3QoZmFsc2UpCi0gICAgLCBtX2NvbnRleHRMb3N0TW9kZShTeW50aGV0
aWNMb3N0Q29udGV4dCkKICAgICAsIG1fYXR0cmlidXRlcyhhdHRyaWJ1dGVzKQotICAgICwgbV9z
eW50aGVzaXplZEVycm9yc1RvQ29uc29sZSh0cnVlKQogICAgICwgbV9udW1HTEVycm9yc1RvQ29u
c29sZUFsbG93ZWQobWF4R0xFcnJvcnNBbGxvd2VkVG9Db25zb2xlKQotICAgICwgbV9pc1BlbmRp
bmdQb2xpY3lSZXNvbHV0aW9uKGZhbHNlKQotICAgICwgbV9oYXNSZXF1ZXN0ZWRQb2xpY3lSZXNv
bHV0aW9uKGZhbHNlKQogewotICAgIEFTU0VSVChtX2NvbnRleHQpOwogICAgIG1fY29udGV4dEdy
b3VwID0gV2ViR0xDb250ZXh0R3JvdXA6OmNyZWF0ZSgpOwotICAgIG1fY29udGV4dEdyb3VwLT5h
ZGRDb250ZXh0KHRoaXMpOworICAgIG1fY29udGV4dEdyb3VwLT5hZGRDb250ZXh0KCp0aGlzKTsK
ICAgICAKICAgICBtX2NvbnRleHQtPnNldFdlYkdMQ29udGV4dCh0aGlzKTsKIAotICAgIG1fbWF4
Vmlld3BvcnREaW1zWzBdID0gbV9tYXhWaWV3cG9ydERpbXNbMV0gPSAwOwogICAgIG1fY29udGV4
dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6Ok1BWF9WSUVXUE9SVF9ESU1TLCBtX21h
eFZpZXdwb3J0RGltcyk7CiAKICAgICBzZXR1cEZsYWdzKCk7CkBAIC02MjIsNyArNjA1LDcgQEAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6fldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoKQog
ICAgIGlmICghbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKSB7CiAgICAgICAgIGRldGFjaEFu
ZFJlbW92ZUFsbE9iamVjdHMoKTsKICAgICAgICAgZGVzdHJveUdyYXBoaWNzQ29udGV4dDNEKCk7
Ci0gICAgICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVDb250ZXh0KHRoaXMpOworICAgICAgICBt
X2NvbnRleHRHcm91cC0+cmVtb3ZlQ29udGV4dCgqdGhpcyk7CiAgICAgfQogfQogCkBAIC05MTYs
NyArODk5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpiaW5kQnVmZmVyKEdD
M0RlbnVtIHRhcmdldCwgV2ViR0xCdWZmZXIqIGJ1ZmZlcikKICAgICBpZiAoIWNoZWNrT2JqZWN0
VG9CZUJvdW5kKCJiaW5kQnVmZmVyIiwgYnVmZmVyLCBkZWxldGVkKSkKICAgICAgICAgcmV0dXJu
OwogICAgIGlmIChkZWxldGVkKQotICAgICAgICBidWZmZXIgPSAwOworICAgICAgICBidWZmZXIg
PSBudWxscHRyOwogICAgIGlmIChidWZmZXIgJiYgYnVmZmVyLT5nZXRUYXJnZXQoKSAmJiBidWZm
ZXItPmdldFRhcmdldCgpICE9IHRhcmdldCkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJiaW5kQnVmZmVyIiwgImJ1ZmZl
cnMgY2FuIG5vdCBiZSB1c2VkIHdpdGggbXVsdGlwbGUgdGFyZ2V0cyIpOwogICAgICAgICByZXR1
cm47CkBAIC0xMzk4LDcgKzEzODEsNyBAQCBSZWZQdHI8V2ViR0xCdWZmZXI+IFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmNyZWF0ZUJ1ZmZlcigpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBl
bmRpbmcoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBidWZmZXIgPSBXZWJH
TEJ1ZmZlcjo6Y3JlYXRlKCp0aGlzKTsKLSAgICBhZGRTaGFyZWRPYmplY3QoYnVmZmVyLnB0cigp
KTsKKyAgICBhZGRTaGFyZWRPYmplY3QoYnVmZmVyLmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92
ZShidWZmZXIpOwogfQogCkBAIC0xNDA3LDcgKzEzOTAsNyBAQCBSZWZQdHI8V2ViR0xGcmFtZWJ1
ZmZlcj4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlRnJhbWVidWZmZXIoKQogICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIGF1dG8gYnVmZmVyID0gV2ViR0xGcmFtZWJ1ZmZlcjo6Y3JlYXRlKCp0aGlzKTsKLSAgICBh
ZGRDb250ZXh0T2JqZWN0KGJ1ZmZlci5wdHIoKSk7CisgICAgYWRkQ29udGV4dE9iamVjdChidWZm
ZXIuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKGJ1ZmZlcik7CiB9CiAKQEAgLTE0MTYsNyAr
MTM5OSw3IEBAIFJlZlB0cjxXZWJHTFRleHR1cmU+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmNyZWF0ZVRleHR1cmUoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gdGV4dHVyZSA9IFdlYkdMVGV4dHVyZTo6Y3Jl
YXRlKCp0aGlzKTsKLSAgICBhZGRTaGFyZWRPYmplY3QodGV4dHVyZS5wdHIoKSk7CisgICAgYWRk
U2hhcmVkT2JqZWN0KHRleHR1cmUuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKHRleHR1cmUp
OwogfQogCkBAIC0xNDI1LDcgKzE0MDgsNyBAQCBSZWZQdHI8V2ViR0xQcm9ncmFtPiBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVQcm9ncmFtKCkKICAgICBpZiAoaXNDb250ZXh0TG9z
dE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIHByb2dyYW0g
PSBXZWJHTFByb2dyYW06OmNyZWF0ZSgqdGhpcyk7Ci0gICAgYWRkU2hhcmVkT2JqZWN0KHByb2dy
YW0ucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdChwcm9ncmFtLmdldCgpKTsKICAgICByZXR1
cm4gV1RGTW92ZShwcm9ncmFtKTsKIH0KIApAQCAtMTQzNCw3ICsxNDE3LDcgQEAgUmVmUHRyPFdl
YkdMUmVuZGVyYnVmZmVyPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVSZW5kZXJi
dWZmZXIoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIGF1dG8gYnVmZmVyID0gV2ViR0xSZW5kZXJidWZmZXI6OmNyZWF0ZSgq
dGhpcyk7Ci0gICAgYWRkU2hhcmVkT2JqZWN0KGJ1ZmZlci5wdHIoKSk7CisgICAgYWRkU2hhcmVk
T2JqZWN0KGJ1ZmZlci5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUoYnVmZmVyKTsKIH0KIApA
QCAtMTQ0OCw3ICsxNDMxLDcgQEAgUmVmUHRyPFdlYkdMU2hhZGVyPiBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpjcmVhdGVTaGFkZXIoR0MzRGVudW0gdHlwZSkKICAgICB9CiAKICAgICBhdXRv
IHNoYWRlciA9IFdlYkdMU2hhZGVyOjpjcmVhdGUoKnRoaXMsIHR5cGUpOwotICAgIGFkZFNoYXJl
ZE9iamVjdChzaGFkZXIucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdChzaGFkZXIuZ2V0KCkp
OwogICAgIHJldHVybiBXVEZNb3ZlKHNoYWRlcik7CiB9CiAKQEAgLTE0ODEsNyArMTQ2NCw3IEBA
IHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlQnVmZmVyKFdlYkdMQnVmZmVy
KiBidWZmZXIpCiAgICAgaWYgKG1fYm91bmRBcnJheUJ1ZmZlciA9PSBidWZmZXIpCiAgICAgICAg
IG1fYm91bmRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAKLSAgICBtX2JvdW5kVmVydGV4QXJyYXlP
YmplY3QtPnVuYmluZEJ1ZmZlcihidWZmZXIpOworICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVj
dC0+dW5iaW5kQnVmZmVyKCpidWZmZXIpOwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmRlbGV0ZUZyYW1lYnVmZmVyKFdlYkdMRnJhbWVidWZmZXIqIGZyYW1lYnVmZmVyKQpA
QCAtMjE4NywxMCArMjE3MCwxMCBAQCBHQzNEaW50IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldEF0dHJpYkxvY2F0aW9uKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29ucwogICAgIHJldHVy
biBtX2NvbnRleHQtPmdldEF0dHJpYkxvY2F0aW9uKG9iamVjdE9yWmVybyhwcm9ncmFtKSwgbmFt
ZSk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCdWZm
ZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJn
ZXQsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkp
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBib29sIHZhbGlkID0gZmFsc2U7CiAgICAgaWYgKHRhcmdldCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6QVJSQVlfQlVGRkVSIHx8IHRhcmdldCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RUxF
TUVOVF9BUlJBWV9CVUZGRVIpCkBAIC0yMjEwLDE5ICsyMTkzLDE5IEBAIFdlYkdMR2V0SW5mbyBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCdWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFy
Z2V0LCBHQzNECiAjZW5kaWYKICAgICBpZiAoIXZhbGlkKSB7CiAgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRCdWZmZXJQYXJhbWV0
ZXIiLCAiaW52YWxpZCB0YXJnZXQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAocG5hbWUgIT0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkJVRkZFUl9TSVpFICYmIHBuYW1lICE9IEdyYXBoaWNzQ29udGV4dDNEOjpC
VUZGRVJfVVNBR0UpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfRU5VTSwgImdldEJ1ZmZlclBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRl
ciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgfQogCiAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAgICAgbV9jb250ZXh0
LT5nZXRCdWZmZXJQYXJhbWV0ZXJpdih0YXJnZXQsIHBuYW1lLCAmdmFsdWUpOwogICAgIGlmIChw
bmFtZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6QlVGRkVSX1NJWkUpCi0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8odmFsdWUpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8
dW5zaWduZWQgaW50Pih2YWx1ZSkpOworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZSk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8V2ViR0xD
b250ZXh0QXR0cmlidXRlcz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Q29udGV4dEF0
dHJpYnV0ZXMoKQpAQCAtMjI0OSwzMCArMjIzMiwzMCBAQCBHQzNEZW51bSBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRFcnJvcigpCiAgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0RXJyb3Io
KTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dy
YW1QYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSkKK1dlYkdM
QW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJhbWV0ZXIoV2ViR0xQ
cm9ncmFtKiBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9z
dE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJnZXRQcm9ncmFtUGFyYW1ldGVy
IiwgcHJvZ3JhbSkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBzd2l0Y2ggKHBuYW1l
KSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVMRVRFX1NUQVRVUzoKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhwcm9ncmFtLT5pc0RlbGV0ZWQoKSk7CisgICAgICAgIHJldHVy
biBwcm9ncmFtLT5pc0RlbGV0ZWQoKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWQUxJ
REFURV9TVEFUVVM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0UHJvZ3JhbWl2KG9iamVjdE9yWmVy
byhwcm9ncmFtKSwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
c3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJv
b2w+KHZhbHVlKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5LX1NUQVRVUzoKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhwcm9ncmFtLT5nZXRMaW5rU3RhdHVzKCkpOworICAg
ICAgICByZXR1cm4gcHJvZ3JhbS0+Z2V0TGlua1N0YXR1cygpOwogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkFUVEFDSEVEX1NIQURFUlM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0UHJvZ3Jh
bWl2KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6QUNUSVZFX0FUVFJJQlVURVM6CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6QUNUSVZFX1VOSUZPUk1TOgogICAgICAgICBtX2NvbnRleHQtPmdldE5vbkJ1aWx0
SW5BY3RpdmVTeW1ib2xDb3VudChvYmplY3RPclplcm8ocHJvZ3JhbSksIHBuYW1lLCAmdmFsdWUp
OwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHZh
bHVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQcm9ncmFtUGFyYW1ldGVyIiwgImludmFsaWQgcGFy
YW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTIyODMsMTcgKzIyNjYsMTcgQEAgU3RyaW5n
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1JbmZvTG9nKFdlYkdMUHJvZ3Jh
bSogcHJvZ3JhbSkKICAgICByZXR1cm4gZW5zdXJlTm90TnVsbChtX2NvbnRleHQtPmdldFByb2dy
YW1JbmZvTG9nKG9iamVjdE9yWmVybyhwcm9ncmFtKSkpOwogfQogCi1XZWJHTEdldEluZm8gV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVt
IHRhcmdldCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBw
bmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlmICh0YXJn
ZXQgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUikgewogICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UmVuZGVyYnVm
ZmVyUGFyYW1ldGVyIiwgImludmFsaWQgdGFyZ2V0Iik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIGlmICghbV9yZW5k
ZXJidWZmZXJCaW5kaW5nIHx8ICFtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPm9iamVjdCgpKSB7CiAg
ICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJB
VElPTiwgImdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlciIsICJubyByZW5kZXJidWZmZXIgYm91bmQi
KTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAKICAgICBpZiAobV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZv
cm1hdCgpID09IEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMCkBAIC0yMzIwLDEyICsy
MzAzLDEyIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5k
ZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0CiAgICAgICAgICAgICB2YWx1ZSA9IDg7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVO
REVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVDoKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8obV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgpKTsKKyAgICAgICAg
ICAgIHJldHVybiBtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdldEludGVybmFsRm9ybWF0KCk7CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIiwgImludmFs
aWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgfQogCiAgICAg
R0MzRGludCB2YWx1ZSA9IDA7CkBAIC0yMzM5LDMyICsyMzIyLDMyIEBAIFdlYkdMR2V0SW5mbyBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVu
dW0gdGFyZ2V0CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSX0RFUFRI
X1NJWkU6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSX1NURU5DSUxf
U0laRToKICAgICAgICAgbV9jb250ZXh0LT5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXJpdih0YXJn
ZXQsIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsK
KyAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRF
UkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQ6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9y
ZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgpKTsKKyAgICAgICAgcmV0dXJu
IG1fcmVuZGVyYnVmZmVyQmluZGluZy0+Z2V0SW50ZXJuYWxGb3JtYXQoKTsKICAgICBkZWZhdWx0
OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCAiZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUi
KTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpn
ZXRTaGFkZXJQYXJhbWV0ZXIoV2ViR0xTaGFkZXIqIHNoYWRlciwgR0MzRGVudW0gcG5hbWUpCitX
ZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRTaGFkZXJQYXJhbWV0ZXIoV2Vi
R0xTaGFkZXIqIHNoYWRlciwgR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29udGV4dExv
c3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0U2hhZGVyUGFyYW1ldGVy
Iiwgc2hhZGVyKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBzd2l0Y2ggKHBuYW1lKSB7
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVMRVRFX1NUQVRVUzoKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhzaGFkZXItPmlzRGVsZXRlZCgpKTsKKyAgICAgICAgcmV0dXJuIHNo
YWRlci0+aXNEZWxldGVkKCk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUElMRV9T
VEFUVVM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0U2hhZGVyaXYob2JqZWN0T3JaZXJvKHNoYWRl
ciksIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19j
YXN0PGJvb2w+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29sPih2YWx1
ZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0hBREVSX1RZUEU6CiAgICAgICAgIG1f
Y29udGV4dC0+Z2V0U2hhZGVyaXYob2JqZWN0T3JaZXJvKHNoYWRlciksIHBuYW1lLCAmdmFsdWUp
OwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4o
dmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZSk7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfRU5VTSwgImdldFNoYWRlclBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBu
YW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogfQogCkBAIC0yNDEzLDEzICsyMzk2LDEzIEBAIFN0cmluZyBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpnZXRTaGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIqIHNoYWRlcikK
ICAgICByZXR1cm4gZW5zdXJlTm90TnVsbChzaGFkZXItPmdldFNvdXJjZSgpKTsKIH0KIAotV2Vi
R0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFRleFBhcmFtZXRlcihHQzNE
ZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Z2V0VGV4UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUp
CiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBXZWJHTFRleHR1cmUq
IHRleCA9IHZhbGlkYXRlVGV4dHVyZUJpbmRpbmcoImdldFRleFBhcmFtZXRlciIsIHRhcmdldCwg
ZmFsc2UpOwogICAgIGlmICghdGV4KQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIEdDM0RpbnQgdmFsdWUgPSAwOwogICAgIHN3aXRj
aCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01BR19GSUxU
RVI6CkBAIC0yNDI3LDI3ICsyNDEwLDI3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1M6CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1Q6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0VGV4UGFy
YW1ldGVyaXYodGFyZ2V0LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4odmFsdWUpOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpURVhU
VVJFX01BWF9BTklTT1RST1BZX0VYVDogLy8gRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGlj
CiAgICAgICAgIGlmIChtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykgewogICAgICAgICAg
ICAgbV9jb250ZXh0LT5nZXRUZXhQYXJhbWV0ZXJpdih0YXJnZXQsIHBuYW1lLCAmdmFsdWUpOwot
ICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+
KHZhbHVlKSk7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVl
KTsKICAgICAgICAgfQogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQz
RDo6SU5WQUxJRF9FTlVNLCAiZ2V0VGV4UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5h
bWUsIEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyBub3QgZW5hYmxlZCIpOwotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX0VOVU0sICJnZXRUZXhQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVu
aWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiog
dW5pZm9ybUxvY2F0aW9uKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9u
KiB1bmlmb3JtTG9jYXRpb24pCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8
fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0VW5pZm9ybSIsIHByb2dyYW0pKQotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlmICgh
dW5pZm9ybUxvY2F0aW9uIHx8IHVuaWZvcm1Mb2NhdGlvbi0+cHJvZ3JhbSgpICE9IHByb2dyYW0p
IHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
T1BFUkFUSU9OLCAiZ2V0VW5pZm9ybSIsICJubyB1bmlmb3JtbG9jYXRpb24gb3Igbm90IHZhbGlk
IGZvciB0aGlzIHByb2dyYW0iKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgR0MzRGludCBsb2NhdGlvbiA9IHVuaWZv
cm1Mb2NhdGlvbi0+bG9jYXRpb24oKTsKIApAQCAtMjUyMiw3ICsyNTA1LDcgQEAgV2ViR0xHZXRJ
bmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBw
cm9ncmFtLCBjb25zdAogICAgIGRlZmF1bHQ6CiAgICAgICAgIC8vIENhbid0IGhhbmRsZSB0aGlz
IHR5cGUKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfVkFMVUUsICJnZXRVbmlmb3JtIiwgInVuaGFuZGxlZCB0eXBlIik7Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIHN3
aXRjaCAoYmFzZVR5cGUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDogewpA
QCAtMjUzMiw4ICsyNTE1LDggQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdAogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1mdihvYmplY3RPclplcm8ocHJvZ3Jh
bSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGggPT0gMSkKLSAgICAgICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWVbMF0pOwotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PihGbG9hdDMyQXJyYXk6OmNyZWF0ZSh2YWx1
ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlWzBdOworICAgICAgICByZXR1
cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCk7CiAgICAgfQogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OklOVDogewogICAgICAgICBHQzNEaW50IHZhbHVlWzRdID0gezB9
OwpAQCAtMjU0Miw4ICsyNTI1LDggQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdAogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1pdihvYmplY3RPclplcm8ocHJv
Z3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGggPT0gMSkKLSAgICAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWVbMF0pOwotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKFBhc3NSZWZQdHI8SW50MzJBcnJheT4oSW50MzJBcnJheTo6Y3JlYXRlKHZhbHVl
LCBsZW5ndGgpKSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVbMF07CisgICAgICAgIHJldHVy
biBJbnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCk7CiAgICAgfQogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkJPT0w6IHsKICAgICAgICAgR0MzRGludCB2YWx1ZVs0XSA9IHswfTsK
QEAgLTI1NTIsMTIgKzI1MzUsMTIgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdAogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1pdihvYmplY3RPclplcm8ocHJv
Z3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGggPiAxKSB7Ci0gICAg
ICAgICAgICBib29sIGJvb2xWYWx1ZVsxNl0gPSB7MH07CisgICAgICAgICAgICBWZWN0b3I8Ym9v
bD4gdmVjdG9yKGxlbmd0aCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwg
bGVuZ3RoOyBqKyspCi0gICAgICAgICAgICAgICAgYm9vbFZhbHVlW2pdID0gc3RhdGljX2Nhc3Q8
Ym9vbD4odmFsdWVbal0pOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhib29sVmFs
dWUsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgdmVjdG9yW2pdID0gdmFsdWVbal07CisgICAg
ICAgICAgICByZXR1cm4gV1RGTW92ZSh2ZWN0b3IpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWVbMF0pKTsKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGJvb2w+KHZhbHVlWzBdKTsKICAgICB9CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTI1NjUsNyArMjU0OCw3IEBAIFdlYkdMR2V0SW5m
byBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSogcHJv
Z3JhbSwgY29uc3QKIAogICAgIC8vIElmIHdlIGdldCBoZXJlLCBzb21ldGhpbmcgd2VudCB3cm9u
ZyBpbiBvdXIgdW5mb3J0dW5hdGVseSBjb21wbGV4IGxvZ2ljIGFib3ZlCiAgICAgc3ludGhlc2l6
ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUsICJnZXRVbmlmb3JtIiwg
InVua25vd24gZXJyb3IiKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKIFJlZlB0cjxXZWJHTFVuaWZvcm1Mb2NhdGlvbj4gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybUxvY2F0aW9uKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwg
Y29uc3QgU3RyaW5nJiBuYW1lKQpAQCAtMjYwNiw0MyArMjU4OSw0MyBAQCBSZWZQdHI8V2ViR0xV
bmlmb3JtTG9jYXRpb24+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm1Mb2Nh
dGlvbihXZWJHTAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VmVydGV4QXR0cmliKEdDM0R1aW50IGluZGV4LCBHQzNE
ZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRl
eEF0dHJpYihHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29u
dGV4dExvc3RPclBlbmRpbmcoKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmIChpbmRleCA+PSBtX21heFZlcnRleEF0dHJp
YnMpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfVkFMVUUsICJnZXRWZXJ0ZXhBdHRyaWIiLCAiaW5kZXggb3V0IG9mIHJhbmdlIik7Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogCiAgICAgY29uc3QgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OlZlcnRleEF0dHJpYlN0
YXRlJiBzdGF0ZSA9IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0VmVydGV4QXR0cmliU3Rh
dGUoaW5kZXgpOwogCiAgICAgaWYgKChpc1dlYkdMMigpIHx8IG1fYW5nbGVJbnN0YW5jZWRBcnJh
eXMpICYmIHBuYW1lID09IEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX0RJ
VklTT1JfQU5HTEUpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGUuZGl2aXNvcik7
CisgICAgICAgIHJldHVybiBzdGF0ZS5kaXZpc29yOwogCiAgICAgc3dpdGNoIChwbmFtZSkgewog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJ
TkRJTkc6CiAgICAgICAgIGlmICgoIWlzR0xFUzJDb21wbGlhbnQoKSAmJiAhaW5kZXggJiYgbV9i
b3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRWZXJ0ZXhBdHRyaWJTdGF0ZSgwKS5idWZmZXJCaW5k
aW5nID09IG1fdmVydGV4QXR0cmliMEJ1ZmZlcikKICAgICAgICAgICAgIHx8ICFzdGF0ZS5idWZm
ZXJCaW5kaW5nCiAgICAgICAgICAgICB8fCAhc3RhdGUuYnVmZmVyQmluZGluZy0+b2JqZWN0KCkp
Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4oc3RhdGUuYnVmZmVyQmluZGluZykpOwor
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBzdGF0ZS5idWZmZXJC
aW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlf
RU5BQkxFRDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS5lbmFibGVkKTsKKyAg
ICAgICAgcmV0dXJuIHN0YXRlLmVuYWJsZWQ7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
VkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHN0YXRlLm5vcm1hbGl6ZWQpOworICAgICAgICByZXR1cm4gc3RhdGUubm9ybWFsaXplZDsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX1NJWkU6Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGUuc2l6ZSk7CisgICAgICAgIHJldHVybiBz
dGF0ZS5zaXplOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJS
QVlfU1RSSURFOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRlLm9yaWdpbmFsU3Ry
aWRlKTsKKyAgICAgICAgcmV0dXJuIHN0YXRlLm9yaWdpbmFsU3RyaWRlOwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRToKLSAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbyhzdGF0ZS50eXBlKTsKKyAgICAgICAgcmV0dXJuIHN0YXRlLnR5cGU7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VSUkVOVF9WRVJURVhfQVRUUklCOgotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PihGbG9hdDMyQXJy
YXk6OmNyZWF0ZShtX3ZlcnRleEF0dHJpYlZhbHVlW2luZGV4XS52YWx1ZSwgNCkpKTsKKyAgICAg
ICAgcmV0dXJuIEZsb2F0MzJBcnJheTo6Y3JlYXRlKG1fdmVydGV4QXR0cmliVmFsdWVbaW5kZXhd
LnZhbHVlLCA0KTsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0VmVydGV4QXR0cmliIiwgImludmFsaWQg
cGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTI2NTAsOCArMjYzMyw3IEBAIGxvbmcg
bG9uZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0Mz
RHVpbnQgaW5kZXgsIEdDM0RlCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkK
ICAgICAgICAgcmV0dXJuIDA7Ci0gICAgR0MzRHNpemVpcHRyIHJlc3VsdCA9IG1fY29udGV4dC0+
Z2V0VmVydGV4QXR0cmliT2Zmc2V0KGluZGV4LCBwbmFtZSk7Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PGxvbmcgbG9uZz4ocmVzdWx0KTsKKyAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRWZXJ0ZXhB
dHRyaWJPZmZzZXQoaW5kZXgsIHBuYW1lKTsKIH0KIAogR0MzRGJvb2xlYW4gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6aXNCdWZmZXIoV2ViR0xCdWZmZXIqIGJ1ZmZlcikKQEAgLTMxMTMsOCAr
MzA5NSw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVhZFBpeGVscyhHQzNE
aW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoCiAjdW5kZWYgUEFDS0VEX0lOVEVSTkFM
X0ZPUk1BVF9DSEVDSwogCiAgICAgLy8gQ2FsY3VsYXRlIGFycmF5IHNpemUsIHRha2luZyBpbnRv
IGNvbnNpZGVyYXRpb24gb2YgUEFDS19BTElHTk1FTlQuCi0gICAgdW5zaWduZWQgaW50IHRvdGFs
Qnl0ZXNSZXF1aXJlZCA9IDA7Ci0gICAgdW5zaWduZWQgaW50IHBhZGRpbmcgPSAwOworICAgIHVu
c2lnbmVkIHRvdGFsQnl0ZXNSZXF1aXJlZCA9IDA7CisgICAgdW5zaWduZWQgcGFkZGluZyA9IDA7
CiAgICAgaWYgKCFtX2lzUm9idXN0bmVzc0VYVFN1cHBvcnRlZCkgewogICAgICAgICBHQzNEZW51
bSBlcnJvciA9IG1fY29udGV4dC0+Y29tcHV0ZUltYWdlU2l6ZUluQnl0ZXMoZm9ybWF0LCB0eXBl
LCB3aWR0aCwgaGVpZ2h0LCBtX3BhY2tBbGlnbm1lbnQsICZ0b3RhbEJ5dGVzUmVxdWlyZWQsICZw
YWRkaW5nKTsKICAgICAgICAgaWYgKGVycm9yICE9IEdyYXBoaWNzQ29udGV4dDNEOjpOT19FUlJP
UikgewpAQCAtNDU5MCw3ICs0NTcyLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Ojp2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50IHNpemUKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICAvLyBEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBlbGVtZW50
cyB0aGUgYm91bmQgYnVmZmVyIGNhbiBob2xkLCBnaXZlbiB0aGUgb2Zmc2V0LCBzaXplLCB0eXBl
IGFuZCBzdHJpZGUKLSAgICB1bnNpZ25lZCBpbnQgdHlwZVNpemUgPSBzaXplSW5CeXRlcyh0eXBl
KTsKKyAgICBhdXRvIHR5cGVTaXplID0gc2l6ZUluQnl0ZXModHlwZSk7CiAgICAgaWYgKCF0eXBl
U2l6ZSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5W
QUxJRF9FTlVNLCAidmVydGV4QXR0cmliUG9pbnRlciIsICJpbnZhbGlkIHR5cGUiKTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtNDYwMSw3ICs0NTgzLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjp2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50IHNpemUK
ICAgICB9CiAgICAgR0MzRHNpemVpIGJ5dGVzUGVyRWxlbWVudCA9IHNpemUgKiB0eXBlU2l6ZTsK
IAotICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+c2V0VmVydGV4QXR0cmliU3RhdGUoaW5k
ZXgsIGJ5dGVzUGVyRWxlbWVudCwgc2l6ZSwgdHlwZSwgbm9ybWFsaXplZCwgc3RyaWRlLCBzdGF0
aWNfY2FzdDxHQzNEaW50cHRyPihvZmZzZXQpLCBtX2JvdW5kQXJyYXlCdWZmZXIpOworICAgIG1f
Ym91bmRWZXJ0ZXhBcnJheU9iamVjdC0+c2V0VmVydGV4QXR0cmliU3RhdGUoaW5kZXgsIGJ5dGVz
UGVyRWxlbWVudCwgc2l6ZSwgdHlwZSwgbm9ybWFsaXplZCwgc3RyaWRlLCBzdGF0aWNfY2FzdDxH
QzNEaW50cHRyPihvZmZzZXQpLCAqbV9ib3VuZEFycmF5QnVmZmVyKTsKICAgICBtX2NvbnRleHQt
PnZlcnRleEF0dHJpYlBvaW50ZXIoaW5kZXgsIHNpemUsIHR5cGUsIG5vcm1hbGl6ZWQsIHN0cmlk
ZSwgc3RhdGljX2Nhc3Q8R0MzRGludHB0cj4ob2Zmc2V0KSk7CiB9CiAKQEAgLTQ2OTIsNyArNDY3
NCw3IEBAIFBsYXRmb3JtTGF5ZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnBsYXRmb3Jt
TGF5ZXIoKSBjb25zdAogICAgIHJldHVybiAoIWlzQ29udGV4dExvc3QoKSAmJiAhbV9pc1BlbmRp
bmdQb2xpY3lSZXNvbHV0aW9uKSA/IG1fY29udGV4dC0+cGxhdGZvcm1MYXllcigpIDogMDsKIH0K
IAotdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVTaGFyZWRPYmplY3QoV2Vi
R0xTaGFyZWRPYmplY3QqIG9iamVjdCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
cmVtb3ZlU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0JiBvYmplY3QpCiB7CiAgICAgaWYg
KG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikKICAgICAgICAgcmV0dXJuOwpAQCAtNDcwMCw3
ICs0NjgyLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVTaGFyZWRP
YmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCkKICAgICBtX2NvbnRleHRHcm91cC0+cmVt
b3ZlT2JqZWN0KG9iamVjdCk7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
YWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmFkZFNoYXJlZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCYgb2Jq
ZWN0KQogewogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pCiAgICAgICAgIHJl
dHVybjsKQEAgLTQ3MDksMjEgKzQ2OTEsMjEgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjphZGRTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCkKICAgICBtX2Nv
bnRleHRHcm91cC0+YWRkT2JqZWN0KG9iamVjdCk7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6cmVtb3ZlQ29udGV4dE9iamVjdChXZWJHTENvbnRleHRPYmplY3QqIG9iamVj
dCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVtb3ZlQ29udGV4dE9iamVjdChX
ZWJHTENvbnRleHRPYmplY3QmIG9iamVjdCkKIHsKICAgICBpZiAobV9pc1BlbmRpbmdQb2xpY3lS
ZXNvbHV0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NvbnRleHRPYmplY3RzLnJlbW92
ZShvYmplY3QpOworICAgIG1fY29udGV4dE9iamVjdHMucmVtb3ZlKCZvYmplY3QpOwogfQogCi12
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZENvbnRleHRPYmplY3QoV2ViR0xDb250
ZXh0T2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZENv
bnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0JiBvYmplY3QpCiB7CiAgICAgaWYgKG1faXNQ
ZW5kaW5nUG9saWN5UmVzb2x1dGlvbikKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKCFp
c0NvbnRleHRMb3N0KCkpOwotICAgIG1fY29udGV4dE9iamVjdHMuYWRkKG9iamVjdCk7CisgICAg
bV9jb250ZXh0T2JqZWN0cy5hZGQoJm9iamVjdCk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6ZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpCkBAIC00NzYxLDU2ICs0NzQz
LDU2IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2FuU3VzcGVuZEZvckRvY3Vt
ZW50U3VzcGVuc2lvbigpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1XZWJHTEdldElu
Zm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Qm9vbGVhblBhcmFtZXRlcihHQzNEZW51
bSBwbmFtZSkKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Qm9vbGVhblBhcmFt
ZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNEYm9vbGVhbiB2YWx1ZSA9IDA7CiAgICAg
bV9jb250ZXh0LT5nZXRCb29sZWFudihwbmFtZSwgJnZhbHVlKTsKLSAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKHN0YXRpY19jYXN0PGJvb2w+KHZhbHVlKSk7CisgICAgcmV0dXJuIHZhbHVlOwogfQog
Ci1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Qm9vbGVhbkFycmF5
UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQorVmVjdG9yPGJvb2w+IFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmdldEJvb2xlYW5BcnJheVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAg
ICBpZiAocG5hbWUgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX1dSSVRFTUFTSykgewogICAg
ICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKDAsIDAp
OworICAgICAgICByZXR1cm4geyB9OwogICAgIH0KLSAgICBHQzNEYm9vbGVhbiB2YWx1ZVs0XSA9
IHswfTsKKyAgICBHQzNEYm9vbGVhbiB2YWx1ZVs0XSA9IHsgMCB9OwogICAgIG1fY29udGV4dC0+
Z2V0Qm9vbGVhbnYocG5hbWUsIHZhbHVlKTsKLSAgICBib29sIGJvb2xWYWx1ZVs0XTsKLSAgICBm
b3IgKGludCBpaSA9IDA7IGlpIDwgNDsgKytpaSkKLSAgICAgICAgYm9vbFZhbHVlW2lpXSA9IHN0
YXRpY19jYXN0PGJvb2w+KHZhbHVlW2lpXSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhib29s
VmFsdWUsIDQpOworICAgIFZlY3Rvcjxib29sPiB2ZWN0b3IoNCk7CisgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IDQ7ICsraSkKKyAgICAgICAgdmVjdG9yW2ldID0gdmFsdWVbaV07CisgICAg
cmV0dXJuIHZlY3RvcjsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldEZsb2F0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQorZmxvYXQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0RmxvYXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAg
R0MzRGZsb2F0IHZhbHVlID0gMDsKICAgICBtX2NvbnRleHQtPmdldEZsb2F0dihwbmFtZSwgJnZh
bHVlKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICByZXR1cm4gdmFsdWU7
CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRJbnRQYXJh
bWV0ZXIoR0MzRGVudW0gcG5hbWUpCitpbnQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
SW50UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdDM0RpbnQgdmFsdWUgPSAwOwog
ICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYocG5hbWUsICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgcmV0dXJuIHZhbHVlOwogfQogCi1XZWJHTEdldEluZm8g
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoR0MzRGVu
dW0gcG5hbWUpCit1bnNpZ25lZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbnNpZ25l
ZEludFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNEaW50IHZhbHVlID0gMDsK
ICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KHBuYW1lLCAmdmFsdWUpOwotICAgIHJldHVybiBX
ZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2YWx1ZSkpOworICAgIHJldHVy
biB2YWx1ZTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omdl
dEludDY0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQorbG9uZyBsb25nIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldEludDY0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdD
M0RpbnQ2NCB2YWx1ZSA9IDA7CiAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VyNjR2KHBuYW1lLCAm
dmFsdWUpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgIHJldHVybiB2YWx1
ZTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFdlYkdM
RmxvYXRBcnJheVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKK1JlZlB0cjxGbG9hdDMyQXJyYXk+
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFdlYkdMRmxvYXRBcnJheVBhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNEZmxvYXQgdmFsdWVbNF0gPSB7MH07CiAgICAgbV9j
b250ZXh0LT5nZXRGbG9hdHYocG5hbWUsIHZhbHVlKTsKQEAgLTQ4MjgsMTAgKzQ4MTAsMTAgQEAg
V2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFdlYkdMRmxvYXRBcnJh
eVBhcmFtZXRlcihHQzNEZW51bSBwbmEKICAgICBkZWZhdWx0OgogICAgICAgICBub3RJbXBsZW1l
bnRlZCgpOwogICAgIH0KLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8RmxvYXQz
MkFycmF5PihGbG9hdDMyQXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKSkpOworICAgIHJldHVy
biBGbG9hdDMyQXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKTsKIH0KIAotV2ViR0xHZXRJbmZv
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIoR0Mz
RGVudW0gcG5hbWUpCitSZWZQdHI8SW50MzJBcnJheT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNE
aW50IHZhbHVlWzRdID0gezB9OwogICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYocG5hbWUsIHZh
bHVlKTsKQEAgLTQ4NDcsNyArNDgyOSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lCiAgICAg
ZGVmYXVsdDoKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICB9Ci0gICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhQYXNzUmVmUHRyPEludDMyQXJyYXk+KEludDMyQXJyYXk6OmNyZWF0ZSh2YWx1
ZSwgbGVuZ3RoKSkpOworICAgIHJldHVybiBJbnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0
aCk7CiB9CiAKIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2hlY2tUZXh0dXJlQ29t
cGxldGVuZXNzKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgYm9vbCBwcmVwYXJlVG9EcmF3KQpA
QCAtNTA3MSw3ICs1MDUzLDcgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxp
ZGF0ZUNvbXByZXNzZWRUZXhGdW5jRGF0YShjb25zdCBjaGFyKiBmdW5jdGkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHVuc2lnbmVkIGludCBieXRlc1JlcXVpcmVkID0gMDsK
KyAgICB1bnNpZ25lZCBieXRlc1JlcXVpcmVkID0gMDsKIAogICAgIHN3aXRjaCAoZm9ybWF0KSB7
CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTVBSRVNTRURfUkdCX1MzVENfRFhUMV9FWFQ6CkBA
IC01MzI4LDE3ICs1MzEwLDE2IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFs
aWRhdGVVbmlmb3JtTWF0cml4UGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jCiAKIFdlYkdMQnVm
ZmVyKiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxpZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0
ZXJzKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSB1
c2FnZSkKIHsKLSAgICBXZWJHTEJ1ZmZlciogYnVmZmVyID0gMDsKKyAgICBzdGQ6Om9wdGlvbmFs
PFdlYkdMQnVmZmVyKj4gYnVmZmVyOwogICAgIHN3aXRjaCAodGFyZ2V0KSB7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVI6Ci0gICAgICAgIGJ1ZmZlciA9
IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVudEFycmF5QnVmZmVyKCkuZ2V0KCk7
CisgICAgICAgIGJ1ZmZlciA9IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVudEFy
cmF5QnVmZmVyKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkFSUkFZX0JVRkZFUjoKICAgICAgICAgYnVmZmVyID0gbV9ib3VuZEFycmF5QnVmZmVyLmdldCgp
OwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogI2lmIEVOQUJMRShXRUJHTDIpCi0gICAg
ICAgIGJvb2wgc3VjY2VzcyA9IHRydWU7CiAgICAgICAgIGlmIChpc1dlYkdMMigpKSB7CiAgICAg
ICAgICAgICBzd2l0Y2ggKHRhcmdldCkgewogICAgICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6Q09QWV9SRUFEX0JVRkZFUjoKQEAgLTUzNTksMTkgKzUzNDAsMTUgQEAgV2ViR0xCdWZm
ZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlQnVmZmVyRGF0YVBhcmFtZXRl
cnMoY29uc3QgY2hhcioKICAgICAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOSUZP
Uk1fQlVGRkVSOgogICAgICAgICAgICAgICAgIGJ1ZmZlciA9IG1fYm91bmRVbmlmb3JtQnVmZmVy
LmdldCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNl
OwotICAgICAgICBpZiAoc3VjY2VzcykKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
aWYgKGJ1ZmZlcikKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogI2VuZGlmCiAg
ICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0s
IGZ1bmN0aW9uTmFtZSwgImludmFsaWQgdGFyZ2V0Iik7CiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KLSAgICBpZiAoIWJ1ZmZlcikgeworICAgIGlmICghYnVmZmVyIHx8ICFidWZmZXIu
dmFsdWUoKSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6
SU5WQUxJRF9PUEVSQVRJT04sIGZ1bmN0aW9uTmFtZSwgIm5vIGJ1ZmZlciIpOwogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CkBAIC01Mzc5LDcgKzUzNTYsNyBAQCBXZWJHTEJ1ZmZlciog
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVCdWZmZXJEYXRhUGFyYW1ldGVycyhj
b25zdCBjaGFyKgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNUUkVBTV9EUkFXOgogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNUQVRJQ19EUkFXOgogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkRZTkFNSUNfRFJBVzoKLSAgICAgICAgcmV0dXJuIGJ1ZmZlcjsKKyAgICAgICAg
cmV0dXJuIGJ1ZmZlci52YWx1ZSgpOwogICAgIH0KICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIHVzYWdl
Iik7CiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC01OTI5LDYgKzU5MDYsMTYgQEAgdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWJEaXZpc29yKEdDM0R1aW50IGluZGV4
LCBHQzNEdWludCBkaXYKICAgICBtX2NvbnRleHQtPnZlcnRleEF0dHJpYkRpdmlzb3IoaW5kZXgs
IGRpdmlzb3IpOwogfQogCitib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmVuYWJsZVN1
cHBvcnRlZEV4dGVuc2lvbihjb25zdCBjaGFyKiBleHRlbnNpb25OYW1lTGl0ZXJhbCkKK3sKKyAg
ICBBU1NFUlQobV9jb250ZXh0KTsKKyAgICBhdXRvJiBleHRlbnNpb25zID0gbV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCk7CisgICAgU3RyaW5nIGV4dGVuc2lvbk5hbWUgeyBBU0NJSUxpdGVyYWwg
eyBleHRlbnNpb25OYW1lTGl0ZXJhbCB9IH07CisgICAgaWYgKCFleHRlbnNpb25zLnN1cHBvcnRz
KGV4dGVuc2lvbk5hbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZXh0ZW5zaW9ucy5l
bnN1cmVFbmFibGVkKGV4dGVuc2lvbk5hbWUpOworICAgIHJldHVybiB0cnVlOworfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCA3MzkzYTM4NjI4MzNmY2I4NmJi
MTcxYjIwNmIyN2JjZWQ5YjM5ZWNmLi45ZjllOGI2NDFmZjZiY2QzOWFkMjc1NmQyNzM3N2RlMjMy
OWNkZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsMTMgKzMwLDEwIEBACiAjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlRp
bWVyLmgiCisjaW5jbHVkZSAiV2ViR0xBbnkuaCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRBdHRy
aWJ1dGVzLmgiCi0jaW5jbHVkZSAiV2ViR0xHZXRJbmZvLmgiCi0jaW5jbHVkZSAiV2ViR0xPYmpl
Y3QuaCIKICNpbmNsdWRlICJXZWJHTFRleHR1cmUuaCIKICNpbmNsdWRlIDxtZW1vcnk+Ci0jaW5j
bHVkZSA8cnVudGltZS9GbG9hdDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL0ludDMyQXJy
YXkuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OCw3ICs0NSw2IEBAIGNsYXNzIEVY
VHNSR0I7CiBjbGFzcyBFWFRGcmFnRGVwdGg7CiBjbGFzcyBIVE1MSW1hZ2VFbGVtZW50OwogY2xh
c3MgSFRNTFZpZGVvRWxlbWVudDsKLWNsYXNzIEltYWdlQnVmZmVyOwogY2xhc3MgSW1hZ2VEYXRh
OwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM7CkBAIC0xOTEs
MjQgKzE4NywyNCBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFdlYkdMQWN0aXZlSW5mbz4gZ2V0QWN0
aXZlVW5pZm9ybShXZWJHTFByb2dyYW0qLCBHQzNEdWludCBpbmRleCk7CiAgICAgYm9vbCBnZXRB
dHRhY2hlZFNoYWRlcnMoV2ViR0xQcm9ncmFtKiwgVmVjdG9yPFJlZlB0cjxXZWJHTFNoYWRlcj4+
Jik7CiAgICAgR0MzRGludCBnZXRBdHRyaWJMb2NhdGlvbihXZWJHTFByb2dyYW0qLCBjb25zdCBT
dHJpbmcmIG5hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRCdWZmZXJQYXJhbWV0ZXIoR0MzRGVu
dW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0QnVmZmVyUGFyYW1l
dGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOwogICAgIHN0ZDo6b3B0aW9uYWw8
V2ViR0xDb250ZXh0QXR0cmlidXRlcz4gZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsKICAgICBHQzNE
ZW51bSBnZXRFcnJvcigpOwogICAgIHZpcnR1YWwgV2ViR0xFeHRlbnNpb24qIGdldEV4dGVuc2lv
bihjb25zdCBTdHJpbmcmIG5hbWUpID0gMDsKLSAgICB2aXJ0dWFsIFdlYkdMR2V0SW5mbyBnZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBh
dHRhY2htZW50LCBHQzNEZW51bSBwbmFtZSkgPSAwOwotICAgIHZpcnR1YWwgV2ViR0xHZXRJbmZv
IGdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkgPSAwOwotICAgIFdlYkdMR2V0SW5mbyBnZXRQ
cm9ncmFtUGFyYW1ldGVyKFdlYkdMUHJvZ3JhbSosIEdDM0RlbnVtIHBuYW1lKTsKKyAgICB2aXJ0
dWFsIFdlYkdMQW55IGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKSA9IDA7CisgICAgdmly
dHVhbCBXZWJHTEFueSBnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpID0gMDsKKyAgICBXZWJH
TEFueSBnZXRQcm9ncmFtUGFyYW1ldGVyKFdlYkdMUHJvZ3JhbSosIEdDM0RlbnVtIHBuYW1lKTsK
ICAgICBTdHJpbmcgZ2V0UHJvZ3JhbUluZm9Mb2coV2ViR0xQcm9ncmFtKik7Ci0gICAgV2ViR0xH
ZXRJbmZvIGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IHBuYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0U2hhZGVyUGFyYW1ldGVyKFdlYkdMU2hhZGVy
KiwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRl
cihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBnZXRTaGFk
ZXJQYXJhbWV0ZXIoV2ViR0xTaGFkZXIqLCBHQzNEZW51bSBwbmFtZSk7CiAgICAgU3RyaW5nIGdl
dFNoYWRlckluZm9Mb2coV2ViR0xTaGFkZXIqKTsKICAgICBSZWZQdHI8V2ViR0xTaGFkZXJQcmVj
aXNpb25Gb3JtYXQ+IGdldFNoYWRlclByZWNpc2lvbkZvcm1hdChHQzNEZW51bSBzaGFkZXJUeXBl
LCBHQzNEZW51bSBwcmVjaXNpb25UeXBlKTsKICAgICBTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFdl
YkdMU2hhZGVyKik7CiAgICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBnZXRTdXBwb3J0ZWRFeHRl
bnNpb25zKCkgPSAwOwotICAgIFdlYkdMR2V0SW5mbyBnZXRUZXhQYXJhbWV0ZXIoR0MzRGVudW0g
dGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFVuaWZvcm0oV2Vi
R0xQcm9ncmFtKiwgY29uc3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qKTsKKyAgICBXZWJHTEFueSBn
ZXRUZXhQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2Vi
R0xBbnkgZ2V0VW5pZm9ybShXZWJHTFByb2dyYW0qLCBjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlv
biopOwogICAgIFJlZlB0cjxXZWJHTFVuaWZvcm1Mb2NhdGlvbj4gZ2V0VW5pZm9ybUxvY2F0aW9u
KFdlYkdMUHJvZ3JhbSosIGNvbnN0IFN0cmluZyYpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRWZXJ0
ZXhBdHRyaWIoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBn
ZXRWZXJ0ZXhBdHRyaWIoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lKTsKICAgICBsb25n
IGxvbmcgZ2V0VmVydGV4QXR0cmliT2Zmc2V0KEdDM0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFt
ZSk7CiAKICAgICB2aXJ0dWFsIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1v
ZGUpID0gMDsKQEAgLTMyMyw4ICszMTksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYWludFJlbmRl
cmluZ1Jlc3VsdHNUb0NhbnZhcygpIG92ZXJyaWRlOwogICAgIFJlZlB0cjxJbWFnZURhdGE+IHBh
aW50UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKCk7CiAKLSAgICB2b2lkIHJlbW92ZVNoYXJl
ZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCopOwotICAgIHZvaWQgcmVtb3ZlQ29udGV4dE9iamVj
dChXZWJHTENvbnRleHRPYmplY3QqKTsKKyAgICB2b2lkIHJlbW92ZVNoYXJlZE9iamVjdChXZWJH
TFNoYXJlZE9iamVjdCYpOworICAgIHZvaWQgcmVtb3ZlQ29udGV4dE9iamVjdChXZWJHTENvbnRl
eHRPYmplY3QmKTsKICAgICAKICAgICB1bnNpZ25lZCBnZXRNYXhWZXJ0ZXhBdHRyaWJzKCkgY29u
c3QgeyByZXR1cm4gbV9tYXhWZXJ0ZXhBdHRyaWJzOyB9CiAKQEAgLTMzNSw3ICszMzEsNyBAQCBw
dWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKEhUTUxD
YW52YXNFbGVtZW50JiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyk7Ci0gICAgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxlbWVudCYsIFJlZlB0cjxHcmFwaGljc0NvbnRleHQz
RD4mJiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyk7CisgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZShIVE1MQ2FudmFzRWxlbWVudCYsIFJlZjxHcmFwaGljc0NvbnRleHQzRD4mJiwgV2ViR0xD
b250ZXh0QXR0cmlidXRlcyk7CiAKICAgICBmcmllbmQgY2xhc3MgV2ViR0xEcmF3QnVmZmVyczsK
ICAgICBmcmllbmQgY2xhc3MgV2ViR0xGcmFtZWJ1ZmZlcjsKQEAgLTM2MCw4ICszNTYsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0
IG92ZXJyaWRlOwogCi0gICAgdm9pZCBhZGRTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3Qq
KTsKLSAgICB2b2lkIGFkZENvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0Kik7CisgICAg
dm9pZCBhZGRTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmKTsKKyAgICB2b2lkIGFkZENv
bnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0Jik7CiAgICAgdm9pZCBkZXRhY2hBbmRSZW1v
dmVBbGxPYmplY3RzKCk7CiAKICAgICB2b2lkIGRlc3Ryb3lHcmFwaGljc0NvbnRleHQzRCgpOwpA
QCAtNDA1LDYgKzQwMSw4IEBAIHByb3RlY3RlZDoKIAogICAgIFdlYkdMVGV4dHVyZTo6VGV4dHVy
ZUV4dGVuc2lvbkZsYWcgdGV4dHVyZUV4dGVuc2lvbkZsYWdzKCkgY29uc3Q7CiAKKyAgICBib29s
IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbihjb25zdCBjaGFyKiBleHRlbnNpb25OYW1lTGl0ZXJh
bCk7CisKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1fY29udGV4dDsKICAgICBSZWZQ
dHI8V2ViR0xDb250ZXh0R3JvdXA+IG1fY29udGV4dEdyb3VwOwogCkBAIC00MTQsNyArNDEyLDcg
QEAgcHJvdGVjdGVkOgogICAgIC8vIG9uIGhvdyBleGFjdGx5IHRoZSBwbGF0Zm9ybSBkaXNjb3Zl
cnMgdGhhdCB0aGUgY29udGV4dCB3YXMgbG9zdC4gRm9yIGJldHRlcgogICAgIC8vIHBvcnRhYmls
aXR5IHdlIGFsd2F5cyBkZWZlciB0aGUgZGlzcGF0Y2ggb2YgdGhlIGV2ZW50LgogICAgIFRpbWVy
IG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50VGltZXI7Ci0gICAgYm9vbCBtX3Jlc3RvcmVBbGxv
d2VkOworICAgIGJvb2wgbV9yZXN0b3JlQWxsb3dlZCB7IGZhbHNlIH07CiAgICAgVGltZXIgbV9y
ZXN0b3JlVGltZXI7CiAKICAgICBib29sIG1fbmVlZHNVcGRhdGU7CkBAIC00MzIsMTIgKzQzMCwx
MCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U+
IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OwogICAgIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5
T2JqZWN0QmFzZT4gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0OwotICAgIHZvaWQgc2V0Qm91bmRW
ZXJ0ZXhBcnJheU9iamVjdChQYXNzUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlPiBh
cnJheU9iamVjdCkKKworICAgIHZvaWQgc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChXZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZSogYXJyYXlPYmplY3QpCiAgICAgewotICAgICAgICBpZiAoYXJy
YXlPYmplY3QpCi0gICAgICAgICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBhcnJheU9i
amVjdDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0
ID0gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CisgICAgICAgIG1fYm91bmRWZXJ0ZXhBcnJh
eU9iamVjdCA9IGFycmF5T2JqZWN0ID8gYXJyYXlPYmplY3QgOiBtX2RlZmF1bHRWZXJ0ZXhBcnJh
eU9iamVjdDsKICAgICB9CiAgICAgCiAgICAgY2xhc3MgVmVydGV4QXR0cmliVmFsdWUgewpAQCAt
NDkzLDEyICs0ODksMTIgQEAgcHJvdGVjdGVkOgogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8c3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPltdPiBtX2J1ZmZlcnM7CiAgICAgICAgIGludCBtX2Nh
cGFjaXR5OwogICAgIH07Ci0gICAgTFJVSW1hZ2VCdWZmZXJDYWNoZSBtX2dlbmVyYXRlZEltYWdl
Q2FjaGU7CisgICAgTFJVSW1hZ2VCdWZmZXJDYWNoZSBtX2dlbmVyYXRlZEltYWdlQ2FjaGUgeyAw
IH07CiAKICAgICBHQzNEaW50IG1fbWF4VGV4dHVyZVNpemU7CiAgICAgR0MzRGludCBtX21heEN1
YmVNYXBUZXh0dXJlU2l6ZTsKICAgICBHQzNEaW50IG1fbWF4UmVuZGVyYnVmZmVyU2l6ZTsKLSAg
ICBHQzNEaW50IG1fbWF4Vmlld3BvcnREaW1zWzJdOworICAgIEdDM0RpbnQgbV9tYXhWaWV3cG9y
dERpbXNbMl0geyAwLCAwIH07CiAgICAgR0MzRGludCBtX21heFRleHR1cmVMZXZlbDsKICAgICBH
QzNEaW50IG1fbWF4Q3ViZU1hcFRleHR1cmVMZXZlbDsKIApAQCAtNTEzLDggKzUwOSw4IEBAIHBy
b3RlY3RlZDoKICAgICBib29sIG1fdW5wYWNrRmxpcFk7CiAgICAgYm9vbCBtX3VucGFja1ByZW11
bHRpcGx5QWxwaGE7CiAgICAgR0MzRGVudW0gbV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lvbjsK
LSAgICBib29sIG1fY29udGV4dExvc3Q7Ci0gICAgTG9zdENvbnRleHRNb2RlIG1fY29udGV4dExv
c3RNb2RlOworICAgIGJvb2wgbV9jb250ZXh0TG9zdCB7IGZhbHNlIH07CisgICAgTG9zdENvbnRl
eHRNb2RlIG1fY29udGV4dExvc3RNb2RlIHsgU3ludGhldGljTG9zdENvbnRleHQgfTsKICAgICBX
ZWJHTENvbnRleHRBdHRyaWJ1dGVzIG1fYXR0cmlidXRlczsKIAogICAgIGJvb2wgbV9sYXllckNs
ZWFyZWQ7CkBAIC01MzUsMTcgKzUzMSwxOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2lzRGVw
dGhTdGVuY2lsU3VwcG9ydGVkOwogICAgIGJvb2wgbV9pc1JvYnVzdG5lc3NFWFRTdXBwb3J0ZWQ7
CiAKLSAgICBib29sIG1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGU7CisgICAgYm9vbCBtX3N5
bnRoZXNpemVkRXJyb3JzVG9Db25zb2xlIHsgdHJ1ZSB9OwogICAgIGludCBtX251bUdMRXJyb3Jz
VG9Db25zb2xlQWxsb3dlZDsKIAogICAgIC8vIEEgV2ViR0xSZW5kZXJpbmdDb250ZXh0IGNhbiBi
ZSBjcmVhdGVkIGluIGEgc3RhdGUgd2hlcmUgaXQgYXBwZWFycyBhcwogICAgIC8vIGEgdmFsaWQg
YW5kIGFjdGl2ZSBjb250ZXh0LCBidXQgd2lsbCBub3QgZXhlY3V0ZSBhbnkgaW1wb3J0YW50IG9w
ZXJhdGlvbnMKICAgICAvLyB1bnRpbCBpdHMgbG9hZCBwb2xpY3kgaXMgY29tcGxldGVseSByZXNv
bHZlZC4KLSAgICBib29sIG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbjsKLSAgICBib29sIG1f
aGFzUmVxdWVzdGVkUG9saWN5UmVzb2x1dGlvbjsKKyAgICBib29sIG1faXNQZW5kaW5nUG9saWN5
UmVzb2x1dGlvbiB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1JlcXVlc3RlZFBvbGljeVJlc29s
dXRpb24geyBmYWxzZSB9OwogICAgIGJvb2wgaXNDb250ZXh0TG9zdE9yUGVuZGluZygpOwogCi0g
ICAgLy8gRW5hYmxlZCBleHRlbnNpb24gb2JqZWN0cy4gRklYTUU6IE1vdmUgdGhlc2UgdG8gV2Vi
R0wxUmVuZGVyaW5nQ29udGV4dCwgbm90IG5lZWRlZCBmb3IgV2ViR0wyCisgICAgLy8gRW5hYmxl
ZCBleHRlbnNpb24gb2JqZWN0cy4KKyAgICAvLyBGSVhNRTogTW92ZSBzb21lIG9mIHRoZXNlIHRv
IFdlYkdMUmVuZGVyaW5nQ29udGV4dCwgdGhlIG9uZXMgbm90IG5lZWRlZCBmb3IgV2ViR0wyCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEVYVEZyYWdEZXB0aD4gbV9leHRGcmFnRGVwdGg7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEVYVEJsZW5kTWluTWF4PiBtX2V4dEJsZW5kTWluTWF4OwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxFWFRzUkdCPiBtX2V4dHNSR0I7CkBAIC01NjgsMTUgKzU2NSwxNSBAQCBwcm90
ZWN0ZWQ6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMRHJhd0J1ZmZlcnM+IG1fd2ViZ2xEcmF3
QnVmZmVyczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QU5HTEVJbnN0YW5jZWRBcnJheXM+IG1fYW5n
bGVJbnN0YW5jZWRBcnJheXM7CiAKLSAgICAvLyBIZWxwZXJzIGZvciBnZXRQYXJhbWV0ZXIgYW5k
IG90aGVycwotICAgIFdlYkdMR2V0SW5mbyBnZXRCb29sZWFuUGFyYW1ldGVyKEdDM0RlbnVtKTsK
LSAgICBXZWJHTEdldEluZm8gZ2V0Qm9vbGVhbkFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAg
ICBXZWJHTEdldEluZm8gZ2V0RmxvYXRQYXJhbWV0ZXIoR0MzRGVudW0pOwotICAgIFdlYkdMR2V0
SW5mbyBnZXRJbnRQYXJhbWV0ZXIoR0MzRGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRVbnNp
Z25lZEludFBhcmFtZXRlcihHQzNEZW51bSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEludDY0UGFy
YW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0V2ViR0xGbG9hdEFycmF5UGFy
YW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0V2ViR0xJbnRBcnJheVBhcmFt
ZXRlcihHQzNEZW51bSk7CisgICAgLy8gSGVscGVycyBmb3IgZ2V0UGFyYW1ldGVyIGFuZCBvdGhl
ciBzaW1pbGFyIGZ1bmN0aW9ucy4KKyAgICBib29sIGdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVu
dW0pOworICAgIFZlY3Rvcjxib29sPiBnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0p
OworICAgIGZsb2F0IGdldEZsb2F0UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBpbnQgZ2V0SW50
UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICB1bnNpZ25lZCBnZXRVbnNpZ25lZEludFBhcmFtZXRl
cihHQzNEZW51bSk7CisgICAgbG9uZyBsb25nIGdldEludDY0UGFyYW1ldGVyKEdDM0RlbnVtKTsK
KyAgICBSZWZQdHI8RmxvYXQzMkFycmF5PiBnZXRXZWJHTEZsb2F0QXJyYXlQYXJhbWV0ZXIoR0Mz
RGVudW0pOworICAgIFJlZlB0cjxJbnQzMkFycmF5PiBnZXRXZWJHTEludEFycmF5UGFyYW1ldGVy
KEdDM0RlbnVtKTsKIAogICAgIC8vIENsZWFyIHRoZSBiYWNrYnVmZmVyIGlmIGl0IHdhcyBjb21w
b3NpdGVkIHNpbmNlIHRoZSBsYXN0IG9wZXJhdGlvbi4KICAgICAvLyBjbGVhck1hc2sgaXMgc2V0
IHRvIHRoZSBiaXRmaWVsZCBvZiBhbnkgY2xlYXIgdGhhdCB3b3VsZCBoYXBwZW4gYW55d2F5IGF0
IHRoaXMgdGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xT
YW1wbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNhbXBsZXIuaAppbmRl
eCBiZDljMGVhZGQwM2E3NTI5MDNjZGNlZGQzZTk2ZWNmYWIyMTgxMmM1Li5hMDUzMWZmMjdjODYz
YzQ3M2NiZGQyZThhN2U0NmEwMDQzOGM2ZTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFNhbXBsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFNhbXBsZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMSwxNyArMzEsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBXZWJHTFNhbXBsZXIgZmluYWwgOiBwdWJsaWMgV2ViR0xTaGFyZWRPYmplY3QgewogcHVi
bGljOgotICAgIHZpcnR1YWwgfldlYkdMU2FtcGxlcigpOwotCiAgICAgc3RhdGljIFJlZjxXZWJH
TFNhbXBsZXI+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CisgICAgdmlydHVh
bCB+V2ViR0xTYW1wbGVyKCk7CiAKIHByb3RlY3RlZDoKLSAgICBXZWJHTFNhbXBsZXIoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSYpOwotCi0gICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBo
aWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0g
ICAgYm9vbCBpc1NhbXBsZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAg
ZXhwbGljaXQgV2ViR0xTYW1wbGVyKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKKyAgICB2
b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0
KSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFNoYWRlci5oCmluZGV4IDZhZjVjMjY5ZDUwYWFlNGQ4NTViN2QwNzBlYTMx
ODhlZTU0M2I5MGMuLjk1MmNkY2M2NTQzZWFmYmJhZGM0Y2YwOTM0NTcwM2ExZDdjZTFlYzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw5ICszMSw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2ViR0xTaGFkZXIgZmluYWwgOiBwdWJs
aWMgV2ViR0xTaGFyZWRPYmplY3QgewogcHVibGljOgotICAgIHZpcnR1YWwgfldlYkdMU2hhZGVy
KCk7Ci0KICAgICBzdGF0aWMgUmVmPFdlYkdMU2hhZGVyPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYsIEdDM0RlbnVtKTsKKyAgICB2aXJ0dWFsIH5XZWJHTFNoYWRlcigpOwogCiAg
ICAgR0MzRGVudW0gZ2V0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIGNvbnN0
IFN0cmluZyYgZ2V0U291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH0KQEAgLTQ2LDkg
KzQ1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJHTFNoYWRlcihXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiwgR0MzRGVudW0pOwogCi0gICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdy
YXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7Ci0KLSAgICBib29s
IGlzU2hhZGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZvaWQgZGVs
ZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIGZpbmFs
OwogCiAgICAgR0MzRGVudW0gbV90eXBlOwogICAgIFN0cmluZyBtX3NvdXJjZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcAppbmRleCAzNmRj
MTVkM2EwZTdlNWY2YTk3MDYxZTRjM2JkM2MyNDFjMWI4NGU5Li4xYjIyMzZmYmQ3MTJhOGI3MWMw
ODIwZDFjMGFhNjIzYmMzMzgyMDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDQxICsyNCwzOSBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTFNoYXJlZE9iamVjdC5oIgogCiAjaWYgRU5BQkxF
KFdFQkdMKQogCi0jaW5jbHVkZSAiV2ViR0xTaGFyZWRPYmplY3QuaCIKLQogI2luY2x1ZGUgIldl
YkdMQ29udGV4dEdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdlYkdMU2hhcmVkT2JqZWN0OjpXZWJHTFNoYXJl
ZE9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQotICAgIDogV2ViR0xP
YmplY3QoY29udGV4dCkKLSAgICAsIG1fY29udGV4dEdyb3VwKGNvbnRleHQuY29udGV4dEdyb3Vw
KCkpCisgICAgOiBtX2NvbnRleHRHcm91cChjb250ZXh0LmNvbnRleHRHcm91cCgpKQogewogfQog
CiBXZWJHTFNoYXJlZE9iamVjdDo6fldlYkdMU2hhcmVkT2JqZWN0KCkKIHsKICAgICBpZiAobV9j
b250ZXh0R3JvdXApCi0gICAgICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVPYmplY3QodGhpcyk7
CisgICAgICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVPYmplY3QoKnRoaXMpOwogfQogCiB2b2lk
IFdlYkdMU2hhcmVkT2JqZWN0OjpkZXRhY2hDb250ZXh0R3JvdXAoKQogewogICAgIGRldGFjaCgp
OwogICAgIGlmIChtX2NvbnRleHRHcm91cCkgewotICAgICAgICBkZWxldGVPYmplY3QoMCk7Ci0g
ICAgICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVPYmplY3QodGhpcyk7Ci0gICAgICAgIG1fY29u
dGV4dEdyb3VwID0gMDsKKyAgICAgICAgZGVsZXRlT2JqZWN0KG51bGxwdHIpOworICAgICAgICBt
X2NvbnRleHRHcm91cC0+cmVtb3ZlT2JqZWN0KCp0aGlzKTsKKyAgICAgICAgbV9jb250ZXh0R3Jv
dXAgPSBudWxscHRyOwogICAgIH0KIH0KIAogR3JhcGhpY3NDb250ZXh0M0QqIFdlYkdMU2hhcmVk
T2JqZWN0OjpnZXRBR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdAogewotICAgIHJldHVybiBtX2Nv
bnRleHRHcm91cCA/IG1fY29udGV4dEdyb3VwLT5nZXRBR3JhcGhpY3NDb250ZXh0M0QoKSA6IDA7
CisgICAgcmV0dXJuIG1fY29udGV4dEdyb3VwID8gJm1fY29udGV4dEdyb3VwLT5nZXRBR3JhcGhp
Y3NDb250ZXh0M0QoKSA6IG51bGxwdHI7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oCmluZGV4IGFiZTQ4MDMzMzcyYzk1NmNjNzEzMGVi
N2Y3YmZmZmRjZDFhOWY1N2IuLjk3MmU1ODBlZWNiMDE5YjhhZmUxMTgwNzAyMTkzMjZjMzZjOTM4
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3Qu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zMywyNCArMzMsMTUgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiBjbGFzcyBXZWJHTENv
bnRleHRHcm91cDsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CiAKLS8vIFdlYkdM
U2hhcmVkT2JqZWN0IHRoZSBiYXNlIGNsYXNzIGZvciBvYmplY3RzIHRoYXQgY2FuIGJlIHNoYXJl
ZCBieSBtdWx0aXBsZQotLy8gV2ViR0xSZW5kZXJpbmdDb250ZXh0cy4KKy8vIFdlYkdMU2hhcmVk
T2JqZWN0IHRoZSBiYXNlIGNsYXNzIGZvciBvYmplY3RzIHRoYXQgY2FuIGJlIHNoYXJlZCBieSBt
dWx0aXBsZSBXZWJHTFJlbmRlcmluZ0NvbnRleHRzLgogY2xhc3MgV2ViR0xTaGFyZWRPYmplY3Qg
OiBwdWJsaWMgV2ViR0xPYmplY3QgewogcHVibGljOgogICAgIHZpcnR1YWwgfldlYkdMU2hhcmVk
T2JqZWN0KCk7CiAKICAgICBXZWJHTENvbnRleHRHcm91cCogY29udGV4dEdyb3VwKCkgY29uc3Qg
eyByZXR1cm4gbV9jb250ZXh0R3JvdXA7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc0J1ZmZlcigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzUHJvZ3JhbSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzUXVlcnkoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlcmJ1ZmZlcigpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzU2FtcGxlcigpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzU2hhZGVyKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTeW5jKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0dXJlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNUcmFuc2Zvcm1GZWVkYmFjaygpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVmVydGV4QXJyYXlPYmplY3QoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogCiAgICAgYm9vbCB2YWxpZGF0ZShjb25zdCBXZWJHTENvbnRleHRH
cm91cCogY29udGV4dEdyb3VwLCBjb25zdCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJikgY29u
c3Qgb3ZlcnJpZGUKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFN5bmMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU3luYy5oCmlu
ZGV4IGVmNmVjOWRjZDU5NjRmYjQ2ZDIzN2EwMDYzZDRjNTZiMTJjZGE3NGMuLmY5ZTcxODAxNzQx
ZDAzMzc2MmMyYzIxYjRjM2M2YTNkOTgxODIwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMU3luYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMU3luYy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTM5LDkgKzM5LDYgQEAgcHJvdGVjdGVkOgogICAgIFdlYkdMU3luYyhXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CiAKICAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3Jh
cGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKLQotcHJpdmF0ZToK
LSAgICBib29sIGlzU3luYygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaAppbmRleCA2OWNmOGU3YmI1NDE4ZWFhOWU0NTY5
MjExNDA4ZjQ3NmIyNmE2Nzg2Li43MTQ5MjMzODQ1YWRhMWRlYTQzYzAxZDgwNWI3OTgxNmI3NzNl
YjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9y
bUZlZWRiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zv
cm1GZWVkYmFjay5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTM5LDkgKzM5LDYgQEAgcHJvdGVjdGVkOgogICAgIFdlYkdMVHJhbnNmb3Jt
RmVlZGJhY2soV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwogCiAgICAgdm9pZCBkZWxldGVP
YmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7
Ci0KLXByaXZhdGU6Ci0gICAgYm9vbCBpc1RyYW5zZm9ybUZlZWRiYWNrKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmNw
cAppbmRleCA3ZmE2OWM5YTQ5NGRiZWVhOWRiZWJmODllODVmNDNmOWNmZDAyODQ5Li44OWFlMjFm
MzNlZjg1ODhjZDE4ZDQwMzFjODU3YWE4YTE0NGU1NTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwzMyArMjQs
MzMgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoV0VCR0wpICYm
IEVOQUJMRShXRUJHTDIpCiAjaW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oIgogCisj
aWYgRU5BQkxFKFdFQkdMMikKKwogI2luY2x1ZGUgIldlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCIK
ICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgCi1SZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6
Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwgVkFPVHlwZSB0eXBlKQorUmVm
PFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZShX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBUeXBlIHR5cGUpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdChjdHgsIHR5cGUpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTFZlcnRleEFycmF5T2JqZWN0KGNvbnRleHQsIHR5
cGUpKTsKIH0KIAogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6fldlYkdMVmVydGV4QXJyYXlPYmpl
Y3QoKQogewotICAgIGRlbGV0ZU9iamVjdCgwKTsKKyAgICBkZWxldGVPYmplY3QobnVsbHB0cik7
CiB9CiAKLVdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OldlYkdMVmVydGV4QXJyYXlPYmplY3QoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWQU9UeXBlIHR5cGUpCi0gICAgOiBXZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZShjdHgsIHR5cGUpCitXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpX
ZWJHTFZlcnRleEFycmF5T2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQs
IFR5cGUgdHlwZSkKKyAgICA6IFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKGNvbnRleHQsIHR5
cGUpCiB7CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVEZWZhdWx0Ogor
ICAgIGNhc2UgVHlwZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAg
ICAgICAgc2V0T2JqZWN0KGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+Y3JlYXRlVmVy
dGV4QXJyYXkoKSk7CisgICAgY2FzZSBUeXBlOjpVc2VyOgorICAgICAgICBzZXRPYmplY3QodGhp
cy0+Y29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpLT5jcmVhdGVWZXJ0ZXhBcnJheSgpKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNTgsOSArNTgsOSBAQCBXZWJHTFZlcnRleEFy
cmF5T2JqZWN0OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmIGN0eCwgVgogdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpkZWxldGVPYmplY3RJbXBs
KEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M2QsIFBsYXRmb3JtM0RPYmplY3Qgb2JqZWN0KQog
ewogICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBWQU9UeXBlRGVmYXVsdDoKKyAgICBj
YXNlIFR5cGU6OkRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6CisgICAgY2Fz
ZSBUeXBlOjpVc2VyOgogICAgICAgICBjb250ZXh0M2QtPmRlbGV0ZVZlcnRleEFycmF5KG9iamVj
dCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaAppbmRleCA1YjQ5YzcwOGE0NjI1NGRlNTkw
ZTFjMDZkY2M5ODYyYTY2NGMzMTQyLi4yZjdlZDM1MDgxNzIzZjBhYmFmMjUzYjJhYmNmZDAxMzk3
MDM2NDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRl
eEFycmF5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI3LDggKzI3LDYgQEAKIAogI2lmIEVOQUJMRShXRUJHTDIpCiAKLSNp
bmNsdWRlICJXZWJHTEJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkdMQ29udGV4dE9iamVjdC5oIgog
I2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTM3LDEyICszNSwxMSBAQCBjbGFzcyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Owog
CiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0IGZpbmFsIDogcHVibGljIFdlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkdMVmVydGV4QXJy
YXlPYmplY3Q+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVkFPVHlwZSk7Cisg
ICAgc3RhdGljIFJlZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBjcmVhdGUoV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYsIFR5cGUpOwogICAgIHZpcnR1YWwgfldlYkdMVmVydGV4QXJyYXlPYmpl
Y3QoKTsKIHByaXZhdGU6Ci0gICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdChXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiwgVkFPVHlwZSk7Ci0gICAgYm9vbCBpc1RyYW5zZm9ybUZlZWRiYWNrKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGlj
c0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAgIFdlYkdMVmVydGV4
QXJyYXlPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFR5cGUpOworICAgIHZvaWQg
ZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIGZp
bmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCmluZGV4
IDY5NjQ5YzYyZjZlMWRiZWYyZjllZGE2MTdjNDI0MjRkZjczZjE3NWYuLjU4ZGZhM2Q3M2M2YWRi
OTM5Y2U0MDQ5MmY4MTc5YTk4YmZlNzkxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMjQgKzI0
LDIyIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlLmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCi0jaW5jbHVkZSAiV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2UuaCIKIAogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1XZWJHTFZlcnRleEFycmF5T2JqZWN0
QmFzZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSYgY3R4LCBWQU9UeXBlIHR5cGUpCi0gICAgOiBXZWJHTENvbnRleHRPYmplY3QoY3R4KQorV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIFR5cGUgdHlwZSkKKyAgICA6IFdlYkdMQ29u
dGV4dE9iamVjdChjb250ZXh0KQogICAgICwgbV90eXBlKHR5cGUpCi0gICAgLCBtX2hhc0V2ZXJC
ZWVuQm91bmQoZmFsc2UpCi0gICAgLCBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyKDApCiB7Ci0g
ICAgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5yZXNpemUoY3R4LmdldE1heFZlcnRleEF0dHJpYnMoKSk7
CisgICAgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5yZXNpemUoY29udGV4dC5nZXRNYXhWZXJ0ZXhBdHRy
aWJzKCkpOwogfQogCi12b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRFbGVtZW50
QXJyYXlCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVmZmVyKQordm9pZCBXZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZTo6c2V0RWxlbWVudEFycmF5QnVmZmVyKFdlYkdMQnVmZmVyKiBi
dWZmZXIpCiB7CiAgICAgaWYgKGJ1ZmZlcikKICAgICAgICAgYnVmZmVyLT5vbkF0dGFjaGVkKCk7
CkBAIC01MSwxOCArNDksMTcgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0
RWxlbWVudEFycmF5QnVmZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IGIKICAgICAKIH0KIAot
dm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4QXR0cmliU3RhdGUoR0Mz
RHVpbnQgaW5kZXgsIEdDM0RzaXplaSBieXRlc1BlckVsZW1lbnQsIEdDM0RpbnQgc2l6ZSwgR0Mz
RGVudW0gdHlwZSwgR0MzRGJvb2xlYW4gbm9ybWFsaXplZCwgR0MzRHNpemVpIHN0cmlkZSwgR0Mz
RGludHB0ciBvZmZzZXQsIFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKK3ZvaWQgV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1aW50IGlu
ZGV4LCBHQzNEc2l6ZWkgYnl0ZXNQZXJFbGVtZW50LCBHQzNEaW50IHNpemUsIEdDM0RlbnVtIHR5
cGUsIEdDM0Rib29sZWFuIG5vcm1hbGl6ZWQsIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIg
b2Zmc2V0LCBXZWJHTEJ1ZmZlciYgYnVmZmVyKQogewogICAgIEdDM0RzaXplaSB2YWxpZGF0ZWRT
dHJpZGUgPSBzdHJpZGUgPyBzdHJpZGUgOiBieXRlc1BlckVsZW1lbnQ7CiAgICAgCi0gICAgVmVy
dGV4QXR0cmliU3RhdGUmIHN0YXRlID0gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF07CisgICAg
YXV0byYgc3RhdGUgPSBtX3ZlcnRleEF0dHJpYlN0YXRlW2luZGV4XTsKICAgICAKLSAgICBpZiAo
YnVmZmVyKQotICAgICAgICBidWZmZXItPm9uQXR0YWNoZWQoKTsKKyAgICBidWZmZXIub25BdHRh
Y2hlZCgpOwogICAgIGlmIChzdGF0ZS5idWZmZXJCaW5kaW5nKQogICAgICAgICBzdGF0ZS5idWZm
ZXJCaW5kaW5nLT5vbkRldGFjaGVkKGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKSk7CiAg
ICAgCi0gICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IGJ1ZmZlcjsKKyAgICBzdGF0ZS5idWZmZXJC
aW5kaW5nID0gJmJ1ZmZlcjsKICAgICBzdGF0ZS5ieXRlc1BlckVsZW1lbnQgPSBieXRlc1BlckVs
ZW1lbnQ7CiAgICAgc3RhdGUuc2l6ZSA9IHNpemU7CiAgICAgc3RhdGUudHlwZSA9IHR5cGU7CkBA
IC03MiwxNyArNjksMTcgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0VmVy
dGV4QXR0cmliU3RhdGUoR0MzRHVpbnQgaW5kZXgsIEdDM0RzaXplaQogICAgIHN0YXRlLm9mZnNl
dCA9IG9mZnNldDsKIH0KIAotdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5k
QnVmZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKK3ZvaWQgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZlcihXZWJHTEJ1ZmZlciYgYnVmZmVyKQogewotICAg
IGlmIChtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID09IGJ1ZmZlcikgeworICAgIGlmIChtX2Jv
dW5kRWxlbWVudEFycmF5QnVmZmVyID09ICZidWZmZXIpIHsKICAgICAgICAgbV9ib3VuZEVsZW1l
bnRBcnJheUJ1ZmZlci0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkp
OwogICAgICAgICBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3ZlcnRleEF0dHJpYlN0YXRlLnNpemUo
KTsgKytpKSB7Ci0gICAgICAgIFZlcnRleEF0dHJpYlN0YXRlJiBzdGF0ZSA9IG1fdmVydGV4QXR0
cmliU3RhdGVbaV07Ci0gICAgICAgIGlmIChzdGF0ZS5idWZmZXJCaW5kaW5nID09IGJ1ZmZlcikg
ewotICAgICAgICAgICAgYnVmZmVyLT5vbkRldGFjaGVkKGNvbnRleHQoKS0+Z3JhcGhpY3NDb250
ZXh0M0QoKSk7CisgICAgICAgIGF1dG8mIHN0YXRlID0gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpXTsK
KyAgICAgICAgaWYgKHN0YXRlLmJ1ZmZlckJpbmRpbmcgPT0gJmJ1ZmZlcikgeworICAgICAgICAg
ICAgYnVmZmVyLm9uRGV0YWNoZWQoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpKTsKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFpICYmICFjb250ZXh0KCktPmlzR0xFUzJDb21w
bGlhbnQoKSkgewogICAgICAgICAgICAgICAgIHN0YXRlLmJ1ZmZlckJpbmRpbmcgPSBjb250ZXh0
KCktPm1fdmVydGV4QXR0cmliMEJ1ZmZlcjsKQEAgLTEwMiw4ICs5OSw3IEBAIHZvaWQgV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZlcihQYXNzUmVmUHRyPFdlYkdMQnVmZmVy
PiBidWZmZXIpCiAKIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0
dHJpYkRpdmlzb3IoR0MzRHVpbnQgaW5kZXgsIEdDM0R1aW50IGRpdmlzb3IpCiB7Ci0gICAgVmVy
dGV4QXR0cmliU3RhdGUmIHN0YXRlID0gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF07Ci0gICAg
c3RhdGUuZGl2aXNvciA9IGRpdmlzb3I7CisgICAgbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF0u
ZGl2aXNvciA9IGRpdmlzb3I7CiB9CiAgICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaAppbmRleCAyOTBhYjhk
M2Q3MGYzMzdhODYzNWEyMzE2Mjc2ZDkxZGM0M2Q0YWE5Li4xMjc1NTMzZDhhMTQ2MTkxYTY1NWIy
OWEwN2ZiYjhmMTg3YTI4NzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNjUgKzMyLDQ3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UgOiBwdWJs
aWMgV2ViR0xDb250ZXh0T2JqZWN0IHsKIHB1YmxpYzoKLSAgICBlbnVtIFZBT1R5cGUgewotICAg
ICAgICBWQU9UeXBlRGVmYXVsdCwKLSAgICAgICAgVkFPVHlwZVVzZXIsCi0gICAgfTsKLSAgICAK
LSAgICB2aXJ0dWFsIH5XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSgpIHsgfQorICAgIGVudW0g
Y2xhc3MgVHlwZSB7IERlZmF1bHQsIFVzZXIgfTsKIAogICAgIC8vIENhY2hlZCB2YWx1ZXMgZm9y
IHZlcnRleCBhdHRyaWIgcmFuZ2UgY2hlY2tzCiAgICAgc3RydWN0IFZlcnRleEF0dHJpYlN0YXRl
IHsKLSAgICAgICAgVmVydGV4QXR0cmliU3RhdGUoKQotICAgICAgICAgICAgOiBlbmFibGVkKGZh
bHNlKQotICAgICAgICAgICAgLCBieXRlc1BlckVsZW1lbnQoMCkKLSAgICAgICAgICAgICwgc2l6
ZSg0KQotICAgICAgICAgICAgLCB0eXBlKEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVCkKLSAgICAg
ICAgICAgICwgbm9ybWFsaXplZChmYWxzZSkKLSAgICAgICAgICAgICwgc3RyaWRlKDE2KQotICAg
ICAgICAgICAgLCBvcmlnaW5hbFN0cmlkZSgwKQotICAgICAgICAgICAgLCBvZmZzZXQoMCkKLSAg
ICAgICAgICAgICwgZGl2aXNvcigwKQotICAgICAgICB7Ci0gICAgICAgIH0KLSAgICAgICAgCiAg
ICAgICAgIGJvb2wgaXNCb3VuZCgpIGNvbnN0IHsgcmV0dXJuIGJ1ZmZlckJpbmRpbmcgJiYgYnVm
ZmVyQmluZGluZy0+b2JqZWN0KCk7IH0KICAgICAgICAgYm9vbCB2YWxpZGF0ZUJpbmRpbmcoKSBj
b25zdCB7IHJldHVybiAhZW5hYmxlZCB8fCBpc0JvdW5kKCk7IH0KICAgICAgICAgCi0gICAgICAg
IGJvb2wgZW5hYmxlZDsKKyAgICAgICAgYm9vbCBlbmFibGVkIHsgZmFsc2UgfTsKICAgICAgICAg
UmVmUHRyPFdlYkdMQnVmZmVyPiBidWZmZXJCaW5kaW5nOwotICAgICAgICBHQzNEc2l6ZWkgYnl0
ZXNQZXJFbGVtZW50OwotICAgICAgICBHQzNEaW50IHNpemU7Ci0gICAgICAgIEdDM0RlbnVtIHR5
cGU7Ci0gICAgICAgIGJvb2wgbm9ybWFsaXplZDsKLSAgICAgICAgR0MzRHNpemVpIHN0cmlkZTsK
LSAgICAgICAgR0MzRHNpemVpIG9yaWdpbmFsU3RyaWRlOwotICAgICAgICBHQzNEaW50cHRyIG9m
ZnNldDsKLSAgICAgICAgR0MzRHVpbnQgZGl2aXNvcjsKKyAgICAgICAgR0MzRHNpemVpIGJ5dGVz
UGVyRWxlbWVudCB7IDAgfTsKKyAgICAgICAgR0MzRGludCBzaXplIHsgNCB9OworICAgICAgICBH
QzNEZW51bSB0eXBlIHsgR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUIH07CisgICAgICAgIGJvb2wg
bm9ybWFsaXplZCB7IGZhbHNlIH07CisgICAgICAgIEdDM0RzaXplaSBzdHJpZGUgeyAxNiB9Owor
ICAgICAgICBHQzNEc2l6ZWkgb3JpZ2luYWxTdHJpZGUgeyAwIH07CisgICAgICAgIEdDM0RpbnRw
dHIgb2Zmc2V0IHsgMCB9OworICAgICAgICBHQzNEdWludCBkaXZpc29yIHsgMCB9OwogICAgIH07
Ci0gICAgCi0gICAgYm9vbCBpc0RlZmF1bHRPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX3R5cGUg
PT0gVkFPVHlwZURlZmF1bHQ7IH0KLSAgICAKKworICAgIGJvb2wgaXNEZWZhdWx0T2JqZWN0KCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OkRlZmF1bHQ7IH0KKwogICAgIGJvb2wgaGFz
RXZlckJlZW5Cb3VuZCgpIGNvbnN0IHsgcmV0dXJuIG9iamVjdCgpICYmIG1faGFzRXZlckJlZW5C
b3VuZDsgfQogICAgIHZvaWQgc2V0SGFzRXZlckJlZW5Cb3VuZCgpIHsgbV9oYXNFdmVyQmVlbkJv
dW5kID0gdHJ1ZTsgfQotICAgIAotICAgIFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IGdldEVsZW1l
bnRBcnJheUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXI7
IH0KLSAgICB2b2lkIHNldEVsZW1lbnRBcnJheUJ1ZmZlcihQYXNzUmVmUHRyPFdlYkdMQnVmZmVy
Pik7Ci0gICAgCisKKyAgICBXZWJHTEJ1ZmZlciogZ2V0RWxlbWVudEFycmF5QnVmZmVyKCkgY29u
c3QgeyByZXR1cm4gbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlci5nZXQoKTsgfQorICAgIHZvaWQg
c2V0RWxlbWVudEFycmF5QnVmZmVyKFdlYkdMQnVmZmVyKik7CisKICAgICBWZXJ0ZXhBdHRyaWJT
dGF0ZSYgZ2V0VmVydGV4QXR0cmliU3RhdGUoaW50IGluZGV4KSB7IHJldHVybiBtX3ZlcnRleEF0
dHJpYlN0YXRlW2luZGV4XTsgfQotICAgIHZvaWQgc2V0VmVydGV4QXR0cmliU3RhdGUoR0MzRHVp
bnQsIEdDM0RzaXplaSwgR0MzRGludCwgR0MzRGVudW0sIEdDM0Rib29sZWFuLCBHQzNEc2l6ZWks
IEdDM0RpbnRwdHIsIFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+KTsKLSAgICB2b2lkIHVuYmluZEJ1
ZmZlcihQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPik7Ci0gICAgCisgICAgdm9pZCBzZXRWZXJ0ZXhB
dHRyaWJTdGF0ZShHQzNEdWludCwgR0MzRHNpemVpLCBHQzNEaW50LCBHQzNEZW51bSwgR0MzRGJv
b2xlYW4sIEdDM0RzaXplaSwgR0MzRGludHB0ciwgV2ViR0xCdWZmZXImKTsKKyAgICB2b2lkIHVu
YmluZEJ1ZmZlcihXZWJHTEJ1ZmZlciYpOworCiAgICAgdm9pZCBzZXRWZXJ0ZXhBdHRyaWJEaXZp
c29yKEdDM0R1aW50IGluZGV4LCBHQzNEdWludCBkaXZpc29yKTsKIAogcHJvdGVjdGVkOgotICAg
IFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBW
QU9UeXBlKTsKKyAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJiwgVHlwZSk7CiAgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29u
dGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGUgPSAwOwotICAgIAotICAgIFZBT1R5
cGUgbV90eXBlOwotICAgIGJvb2wgbV9oYXNFdmVyQmVlbkJvdW5kOworCisgICAgVHlwZSBtX3R5
cGU7CisgICAgYm9vbCBtX2hhc0V2ZXJCZWVuQm91bmQgeyBmYWxzZSB9OwogICAgIFJlZlB0cjxX
ZWJHTEJ1ZmZlcj4gbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlcjsKICAgICBWZWN0b3I8VmVydGV4
QXR0cmliU3RhdGU+IG1fdmVydGV4QXR0cmliU3RhdGU7CiB9OwotICAgIAorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwCmluZGV4IDVmM2I2NTU3YTcwYjVjYjg0MmMwYzJl
YTc3ODE3OGFmYTY0YzAxZmYuLmFmNTU2NWNkOTQ0NDI0YjUzYjgzNTdkYjJjMDE5MGJlMWNlNWI0
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMuY3BwCkBAIC0zNCwzNyArMzQsMzUgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1SZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdE9FUzo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwgVkFPVHlw
ZSB0eXBlKQorUmVmPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IFdlYkdMVmVydGV4QXJyYXlP
YmplY3RPRVM6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBUeXBl
IHR5cGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUyhjdHgsIHR5cGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTFZlcnRleEFy
cmF5T2JqZWN0T0VTKGNvbnRleHQsIHR5cGUpKTsKIH0KIAotV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUzo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
JiBjdHgsIFZBT1R5cGUgdHlwZSkKLSAgICA6IFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKGN0
eCwgdHlwZSkKK1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OldlYkdMVmVydGV4QXJyYXlPYmpl
Y3RPRVMoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwgVHlwZSB0eXBlKQorICAg
IDogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoY29udGV4dCwgdHlwZSkKIHsKLSAgICBFeHRl
bnNpb25zM0QmIGV4dGVuc2lvbnMgPSBjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCktPmdl
dEV4dGVuc2lvbnMoKTsKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgVkFPVHlwZURl
ZmF1bHQ6CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBUeXBlOjpEZWZhdWx0OgogICAg
ICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBzZXRPYmplY3QoZXh0ZW5zaW9ucy5j
cmVhdGVWZXJ0ZXhBcnJheU9FUygpKTsKKyAgICBjYXNlIFR5cGU6OlVzZXI6CisgICAgICAgIHNl
dE9iamVjdCh0aGlzLT5jb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCktPmdldEV4dGVuc2lv
bnMoKS5jcmVhdGVWZXJ0ZXhBcnJheU9FUygpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQog
CiBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjp+V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygp
CiB7Ci0gICAgZGVsZXRlT2JqZWN0KDApOworICAgIGRlbGV0ZU9iamVjdChudWxscHRyKTsKIH0K
IAogdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpkZWxldGVPYmplY3RJbXBsKEdyYXBo
aWNzQ29udGV4dDNEKiBjb250ZXh0M2QsIFBsYXRmb3JtM0RPYmplY3Qgb2JqZWN0KQogewotICAg
IEV4dGVuc2lvbnMzRCYgZXh0ZW5zaW9ucyA9IGNvbnRleHQzZC0+Z2V0RXh0ZW5zaW9ucygpOwog
ICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBWQU9UeXBlRGVmYXVsdDoKKyAgICBjYXNl
IFR5cGU6OkRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGV4
dGVuc2lvbnMuZGVsZXRlVmVydGV4QXJyYXlPRVMob2JqZWN0KTsKKyAgICBjYXNlIFR5cGU6OlVz
ZXI6CisgICAgICAgIGNvbnRleHQzZC0+Z2V0RXh0ZW5zaW9ucygpLmRlbGV0ZVZlcnRleEFycmF5
T0VTKG9iamVjdCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oCmluZGV4IGQw
OGQyMjNlMzU3MDY2OTRlOTFjYWU2YWNkYzhjNGJjYTlmMTY3ZTkuLmY5YTJhNThlYzI3NDdjMmQ1
MDYzMGI1YjZmNmNmZjA1YTYzNjBjNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgKQEAgLTI1LDE5ICsyNSwxNyBA
QAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCi0jaW5jbHVkZSAi
V2ViR0xDb250ZXh0T2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJh
c2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTIGZpbmFsIDogcHVibGljIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IGNyZWF0ZShXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVkFPVHlwZSk7CisgICAgc3RhdGljIFJlZjxXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFR5
cGUpOwogICAgIHZpcnR1YWwgfldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKTsKIHByaXZhdGU6
Ci0gICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
JiwgVkFPVHlwZSk7Ci0gICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNE
KiwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUyhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVHlwZSk7CisgICAgdm9pZCBkZWxldGVP
YmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgZmluYWw7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMv
RmlsZUljb25Mb2FkZXIuY3BwCmluZGV4IDliY2Q0N2Y3NzllMDUxZmFhNDA1OTBjNzkzZmIyM2Zj
NTFiMmRlMWUuLjI3NWQ2ZWM0NGUwNTg0NTZlZWZmZmQxY2VmMjhkNWE3NWY4YjFmMTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM3LDEzICszNywxMyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiB2b2lkIEZpbGVJY29uTG9hZGVyOjppbnZhbGlkYXRlKCkKIHsKICAg
ICBBU1NFUlQobV9jbGllbnQpOwotICAgIG1fY2xpZW50ID0gMDsKKyAgICBtX2NsaWVudCA9IG51
bGxwdHI7CiB9CiAKLXZvaWQgRmlsZUljb25Mb2FkZXI6Om5vdGlmeUZpbmlzaGVkKFBhc3NSZWZQ
dHI8SWNvbj4gaWNvbikKK3ZvaWQgRmlsZUljb25Mb2FkZXI6Omljb25Mb2FkZWQoUmVmUHRyPElj
b24+JiYgaWNvbikKIHsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT51cGRh
dGVSZW5kZXJpbmcoaWNvbik7CisgICAgICAgIG1fY2xpZW50LT5pY29uTG9hZGVkKFdURk1vdmUo
aWNvbikpOwogfQogCiBGaWxlSWNvbkxvYWRlcjo6RmlsZUljb25Mb2FkZXIoRmlsZUljb25Mb2Fk
ZXJDbGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMv
RmlsZUljb25Mb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmlsZUljb25Mb2Fk
ZXIuaAppbmRleCAzNTMxM2RlM2EyODUzNjBkOTg2N2I4MmE1YWFjYmMwN2QwNWU3YmQ1Li43ZGE3
M2ZjOTJlMTZjZTNhY2RiZTQ4YjJhZTNjNDAxMzY5MDgyODMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM0LDEzICszNCwxMiBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIEZpbGVJY29uTG9hZGVyOwogY2xhc3MgSWNvbjsKIAogY2xhc3MgRmls
ZUljb25Mb2FkZXJDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkZpbGVJY29uTG9hZGVy
Q2xpZW50KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJlbmRlcmluZyhQYXNzUmVmUHRy
PEljb24+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGljb25Mb2FkZWQoUmVmUHRyPEljb24+JiYp
ID0gMDsKIH07CiAKIGNsYXNzIEZpbGVJY29uTG9hZGVyIHsKQEAgLTQ4LDcgKzQ3LDcgQEAgcHVi
bGljOgogICAgIGV4cGxpY2l0IEZpbGVJY29uTG9hZGVyKEZpbGVJY29uTG9hZGVyQ2xpZW50Jik7
CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG5vdGlm
eUZpbmlzaGVkKFBhc3NSZWZQdHI8SWNvbj4pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaWNv
bkxvYWRlZChSZWZQdHI8SWNvbj4mJik7CiAKIHByaXZhdGU6CiAgICAgRmlsZUljb25Mb2FkZXJD
bGllbnQqIG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTENvbnN0cnVjdGlvblNpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TENvbnN0cnVjdGlvblNpdGUuY3BwCmluZGV4IDQ2N2ExMzRkMzZiYTUzYTcyYmMyZDcwYTJlYjk3
NjgxZWI4ZjkzZmIuLmRjMWFkNzNhMWIwMDRiMzZjOWU0NzU1NGIxMTg0MTNlYjBiZjYwYzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0
ZS5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMTc0LDcgKzE3NCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBleGVjdXRlVGFzayhIVE1M
Q29uc3RydWN0aW9uU2l0ZVRhc2smIHRhc2spCiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6
OmF0dGFjaExhdGVyKENvbnRhaW5lck5vZGUmIHBhcmVudCwgUmVmPE5vZGU+JiYgY2hpbGQsIGJv
b2wgc2VsZkNsb3NpbmcpCiB7Ci0gICAgQVNTRVJUKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQo
bV9wYXJzZXJDb250ZW50UG9saWN5KSB8fCAhaXM8RWxlbWVudD4oY2hpbGQuZ2V0KCkpIHx8ICF0
b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGRvd25jYXN0PEVsZW1lbnQ+KGNoaWxkLnB0cigpKSkp
OworICAgIEFTU0VSVChzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKG1fcGFyc2VyQ29udGVudFBv
bGljeSkgfHwgIWlzPEVsZW1lbnQ+KGNoaWxkLmdldCgpKSB8fCAhaXNTY3JpcHRFbGVtZW50KGRv
d25jYXN0PEVsZW1lbnQ+KGNoaWxkLmdldCgpKSkpOwogICAgIEFTU0VSVChwbHVnaW5Db250ZW50
SXNBbGxvd2VkKG1fcGFyc2VyQ29udGVudFBvbGljeSkgfHwgIWNoaWxkLT5pc1BsdWdpbkVsZW1l
bnQoKSk7CiAKICAgICBpZiAoc2hvdWxkRm9zdGVyUGFyZW50KCkpIHsKQEAgLTU0MSw3ICs1NDEs
NyBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRGb3JlaWduRWxlbWVudChBdG9t
aWNIVE1MVG9rZW4mJiB0b2tlbiwgY29uc3QgQQogICAgIG5vdEltcGxlbWVudGVkKCk7IC8vIHBh
cnNlRXJyb3Igd2hlbiB4bWxucyBvciB4bWxuczp4bGluayBhcmUgd3JvbmcuCiAKICAgICBhdXRv
IGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KHRva2VuLCBuYW1lc3BhY2VVUkkpOwotICAgIGlmIChz
Y3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKG1fcGFyc2VyQ29udGVudFBvbGljeSkgfHwgIXRvU2Ny
aXB0RWxlbWVudElmUG9zc2libGUoZWxlbWVudC5wdHIoKSkpCisgICAgaWYgKHNjcmlwdGluZ0Nv
bnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSB8fCAhaXNTY3JpcHRFbGVtZW50
KGVsZW1lbnQuZ2V0KCkpKQogICAgICAgICBhdHRhY2hMYXRlcihjdXJyZW50Tm9kZSgpLCBlbGVt
ZW50LmNvcHlSZWYoKSwgdG9rZW4uc2VsZkNsb3NpbmcoKSk7CiAgICAgaWYgKCF0b2tlbi5zZWxm
Q2xvc2luZygpKQogICAgICAgICBtX29wZW5FbGVtZW50cy5wdXNoKEhUTUxTdGFja0l0ZW06OmNy
ZWF0ZShXVEZNb3ZlKGVsZW1lbnQpLCBXVEZNb3ZlKHRva2VuKSwgbmFtZXNwYWNlVVJJKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApp
bmRleCBhY2VhMGFhYWQyY2RmNDgxN2E2NWU3YWY5ZDdjOWZkMzU3ZGZjMzM3Li41MTYzZjFhNWY3
ODI0ODNhOTAyNGVjNmRhOTE1M2QwOTZiMDM0YzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1
ZGUgIkhUTUxUcmVlQnVpbGRlci5oIgogI2luY2x1ZGUgIkhUTUxVbmtub3duRWxlbWVudC5oIgog
I2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgorI2luY2x1ZGUgIlNjcmlwdEVs
ZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yMDUsNyArMjA2LDcgQEAgdm9p
ZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnJ1blNjcmlwdHNGb3JQYXVzZWRUcmVlQnVpbGRlcigpCiAg
ICAgICAgIEFTU0VSVCghbV90cmVlQnVpbGRlci0+aGFzUGFyc2VyQmxvY2tpbmdTY3JpcHRXb3Jr
KCkpOwogICAgICAgICAvLyBXZSB3aWxsIG5vdCBoYXZlIGEgc2NyaXB0UnVubmVyIHdoZW4gcGFy
c2luZyBhIERvY3VtZW50RnJhZ21lbnQuCiAgICAgICAgIGlmIChtX3NjcmlwdFJ1bm5lcikKLSAg
ICAgICAgICAgIG1fc2NyaXB0UnVubmVyLT5leGVjdXRlKFdURk1vdmUoc2NyaXB0RWxlbWVudCks
IHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgICAgICAgICAgbV9zY3JpcHRSdW5uZXItPmV4ZWN1
dGUoc2NyaXB0RWxlbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBzY3JpcHRTdGFydFBvc2l0aW9uKTsK
ICAgICB9CiB9CiAKQEAgLTUwMCw3ICs1MDEsNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6
d2F0Y2hGb3JMb2FkKFBlbmRpbmdTY3JpcHQmIHBlbmRpbmdTY3JpcHQpCiAgICAgLy8gc2V0Q2xp
ZW50IHdvdWxkIGNhbGwgbm90aWZ5RmluaXNoZWQgaWYgdGhlIGxvYWQgd2VyZSBjb21wbGV0ZS4K
ICAgICAvLyBDYWxsZXJzIGRvIG5vdCBleHBlY3QgdG8gYmUgcmUtZW50ZXJlZCBmcm9tIHRoaXMg
Y2FsbCwgc28gdGhleSBzaG91bGQKICAgICAvLyBub3QgYW4gYWxyZWFkeS1sb2FkZWQgUGVuZGlu
Z1NjcmlwdC4KLSAgICBwZW5kaW5nU2NyaXB0LnNldENsaWVudCh0aGlzKTsKKyAgICBwZW5kaW5n
U2NyaXB0LnNldENsaWVudCgqdGhpcyk7CiB9CiAKIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpz
dG9wV2F0Y2hpbmdGb3JMb2FkKFBlbmRpbmdTY3JpcHQmIHBlbmRpbmdTY3JpcHQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwCmluZGV4IGMyNTZi
NDI5NTZjZTQ4MTFhOTRmMGNiMzRiOGVkNzI1NzI1ZThmNTQuLmMxZjQyYzIyNWQwMDc3OWFiNDQ1
YzExMjUxZDM3M2E0ODdmMmNkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxTY3JpcHRSdW5uZXIuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzAsNyArNzEsNyBAQCBIVE1MU2NyaXB0UnVubmVyOjp+
SFRNTFNjcmlwdFJ1bm5lcigpCiAKIHZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZGV0YWNoKCkKIHsK
LSAgICBtX2RvY3VtZW50ID0gMDsKKyAgICBtX2RvY3VtZW50ID0gbnVsbHB0cjsKIH0KIAogc3Rh
dGljIFVSTCBkb2N1bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlvbihEb2N1bWVudCogZG9jdW1lbnQp
CkBAIC05OSwyOSArMTAwLDE4IEBAIGJvb2wgSFRNTFNjcmlwdFJ1bm5lcjo6aXNQZW5kaW5nU2Ny
aXB0UmVhZHkoY29uc3QgUGVuZGluZ1NjcmlwdCYgc2NyaXB0KQogICAgIHJldHVybiB0cnVlOwog
fQogCi12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQYXJzaW5nQmxvY2tpbmdTY3JpcHQo
KQotewotICAgIEFTU0VSVChtX2RvY3VtZW50KTsKLSAgICBBU1NFUlQoIWlzRXhlY3V0aW5nU2Ny
aXB0KCkpOwotICAgIEFTU0VSVChtX2RvY3VtZW50LT5oYXZlU3R5bGVzaGVldHNMb2FkZWQoKSk7
Ci0gICAgQVNTRVJUKGlzUGVuZGluZ1NjcmlwdFJlYWR5KCptX3BhcnNlckJsb2NraW5nU2NyaXB0
KSk7Ci0KLSAgICBJbnNlcnRpb25Qb2ludFJlY29yZCBpbnNlcnRpb25Qb2ludFJlY29yZChtX2hv
c3QuaW5wdXRTdHJlYW0oKSk7Ci0gICAgZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRjaEV2
ZW50KFdURk1vdmUobV9wYXJzZXJCbG9ja2luZ1NjcmlwdCkpOwotfQotCi12b2lkIEhUTUxTY3Jp
cHRSdW5uZXI6OmV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChSZWZQdHI8UGVu
ZGluZ1NjcmlwdD4gcGVuZGluZ1NjcmlwdCkKK3ZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0
ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRjaEV2ZW50KFBlbmRpbmdTY3JpcHQmIHBlbmRpbmdTY3Jp
cHQpCiB7CiAgICAgLy8gU3RvcCB3YXRjaGluZyBsb2FkcyBiZWZvcmUgZXhlY3V0ZVNjcmlwdCB0
byBwcmV2ZW50IHJlY3Vyc2lvbiBpZiB0aGUgc2NyaXB0IHJlbG9hZHMgaXRzZWxmLgotICAgIGlm
IChwZW5kaW5nU2NyaXB0LT53YXRjaGluZ0ZvckxvYWQoKSkKLSAgICAgICAgc3RvcFdhdGNoaW5n
Rm9yTG9hZCgqcGVuZGluZ1NjcmlwdCk7CisgICAgaWYgKHBlbmRpbmdTY3JpcHQud2F0Y2hpbmdG
b3JMb2FkKCkpCisgICAgICAgIHN0b3BXYXRjaGluZ0ZvckxvYWQocGVuZGluZ1NjcmlwdCk7CiAK
ICAgICBpZiAoIWlzRXhlY3V0aW5nU2NyaXB0KCkpCiAgICAgICAgIE1pY3JvdGFza1F1ZXVlOjpt
YWluVGhyZWFkUXVldWUoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOwogCi0gICAgaWYg
KGF1dG8qIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5n
U2NyaXB0LT5lbGVtZW50KCkpKSB7CisgICAgewogICAgICAgICBOZXN0aW5nTGV2ZWxJbmNyZW1l
bnRlciBuZXN0aW5nTGV2ZWxJbmNyZW1lbnRlcihtX3NjcmlwdE5lc3RpbmdMZXZlbCk7Ci0gICAg
ICAgIHNjcmlwdEVsZW1lbnQtPmV4ZWN1dGVQZW5kaW5nU2NyaXB0KCpwZW5kaW5nU2NyaXB0KTsK
KyAgICAgICAgcGVuZGluZ1NjcmlwdC5lbGVtZW50KCkuZXhlY3V0ZVBlbmRpbmdTY3JpcHQocGVu
ZGluZ1NjcmlwdCk7CiAgICAgfQogICAgIEFTU0VSVCghaXNFeGVjdXRpbmdTY3JpcHQoKSk7CiB9
CkBAIC0xNDAsMTUgKzEzMCwxNCBAQCB2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnN0b3BXYXRjaGlu
Z0ZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1NjcmlwdCkKIAogLy8gVGhpcyBmdW5jdGlv
biBzaG91bGQgbWF0Y2ggMTAuMi41LjExICJBbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICdz
Y3JpcHQnIgogLy8gU2NyaXB0IGhhbmRsaW5nIGxpdmVzIG91dHNpZGUgdGhlIHRyZWUgYnVpbGRl
ciB0byBrZWVwIHRoZSBlYWNoIGNsYXNzIHNpbXBsZS4KLXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6
ZXhlY3V0ZShQYXNzUmVmUHRyPEVsZW1lbnQ+IHNjcmlwdEVsZW1lbnQsIGNvbnN0IFRleHRQb3Np
dGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKK3ZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0
ZShSZWY8U2NyaXB0RWxlbWVudD4mJiBlbGVtZW50LCBjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlw
dFN0YXJ0UG9zaXRpb24pCiB7Ci0gICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOwogICAgIC8vIEZJ
WE1FOiBJZiBzY3JpcHRpbmcgaXMgZGlzYWJsZWQsIGFsd2F5cyBqdXN0IHJldHVybi4KIAogICAg
IGJvb2wgaGFkUHJlbG9hZFNjYW5uZXIgPSBtX2hvc3QuaGFzUHJlbG9hZFNjYW5uZXIoKTsKIAog
ICAgIC8vIFRyeSB0byBleGVjdXRlIHRoZSBzY3JpcHQgZ2l2ZW4gdG8gdXMuCi0gICAgcnVuU2Ny
aXB0KHNjcmlwdEVsZW1lbnQuZ2V0KCksIHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgIHJ1blNj
cmlwdChlbGVtZW50LmdldCgpLCBzY3JpcHRTdGFydFBvc2l0aW9uKTsKIAogICAgIGlmIChoYXNQ
YXJzZXJCbG9ja2luZ1NjcmlwdCgpKSB7CiAgICAgICAgIGlmIChpc0V4ZWN1dGluZ1NjcmlwdCgp
KQpAQCAtMTY3LDggKzE1NiwxMyBAQCBib29sIEhUTUxTY3JpcHRSdW5uZXI6Omhhc1BhcnNlckJs
b2NraW5nU2NyaXB0KCkgY29uc3QKIAogdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlUGFy
c2luZ0Jsb2NraW5nU2NyaXB0cygpCiB7Ci0gICAgd2hpbGUgKGhhc1BhcnNlckJsb2NraW5nU2Ny
aXB0KCkgJiYgaXNQZW5kaW5nU2NyaXB0UmVhZHkoKm1fcGFyc2VyQmxvY2tpbmdTY3JpcHQpKQot
ICAgICAgICBleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0KCk7CisgICAgd2hpbGUgKGhhc1Bh
cnNlckJsb2NraW5nU2NyaXB0KCkgJiYgaXNQZW5kaW5nU2NyaXB0UmVhZHkoKm1fcGFyc2VyQmxv
Y2tpbmdTY3JpcHQpKSB7CisgICAgICAgIEFTU0VSVChtX2RvY3VtZW50KTsKKyAgICAgICAgQVNT
RVJUKCFpc0V4ZWN1dGluZ1NjcmlwdCgpKTsKKyAgICAgICAgQVNTRVJUKG1fZG9jdW1lbnQtPmhh
dmVTdHlsZXNoZWV0c0xvYWRlZCgpKTsKKyAgICAgICAgSW5zZXJ0aW9uUG9pbnRSZWNvcmQgaW5z
ZXJ0aW9uUG9pbnRSZWNvcmQobV9ob3N0LmlucHV0U3RyZWFtKCkpOworICAgICAgICBleGVjdXRl
UGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQobV9wYXJzZXJCbG9ja2luZ1NjcmlwdC5yZWxl
YXNlTm9uTnVsbCgpLmdldCgpKTsKKyAgICB9CiB9CiAKIHZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6
ZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9yTG9hZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0
KQpAQCAtMjAxLDcgKzE5NSw3IEBAIGJvb2wgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlw
dHNXYWl0aW5nRm9yUGFyc2luZygpCiAgICAgICAgICAgICB3YXRjaEZvckxvYWQobV9zY3JpcHRz
VG9FeGVjdXRlQWZ0ZXJQYXJzaW5nLmZpcnN0KCkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICB9Ci0gICAgICAgIGV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVu
dChtX3NjcmlwdHNUb0V4ZWN1dGVBZnRlclBhcnNpbmcudGFrZUZpcnN0KCkpOworICAgICAgICBl
eGVjdXRlUGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQobV9zY3JpcHRzVG9FeGVjdXRlQWZ0
ZXJQYXJzaW5nLnRha2VGaXJzdCgpLmdldCgpKTsKICAgICAgICAgLy8gRklYTUU6IFdoYXQgaXMg
dGhpcyBtX2RvY3VtZW50IGNoZWNrIGZvcj8KICAgICAgICAgaWYgKCFtX2RvY3VtZW50KQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjA5LDE4ICsyMDMsMTcgQEAgYm9vbCBIVE1MU2Ny
aXB0UnVubmVyOjpleGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JQYXJzaW5nKCkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotc3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0PiByZXF1ZXN0UGVuZGluZ1Njcmlw
dChFbGVtZW50KiBzY3JpcHQpCitzdGF0aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IHJlcXVlc3RQZW5k
aW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQpCiB7Ci0gICAgYXV0byYgc2Ny
aXB0RWxlbWVudCA9ICp0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKHNjcmlwdCk7CiAgICAgQVNT
RVJUKHNjcmlwdEVsZW1lbnQud2lsbEJlUGFyc2VyRXhlY3V0ZWQoKSk7CiAgICAgQVNTRVJUKHNj
cmlwdEVsZW1lbnQubG9hZGFibGVTY3JpcHQoKSk7Ci0gICAgcmV0dXJuIFBlbmRpbmdTY3JpcHQ6
OmNyZWF0ZSgqc2NyaXB0LCAqc2NyaXB0RWxlbWVudC5sb2FkYWJsZVNjcmlwdCgpKTsKKyAgICBy
ZXR1cm4gUGVuZGluZ1NjcmlwdDo6Y3JlYXRlKHNjcmlwdEVsZW1lbnQsICpzY3JpcHRFbGVtZW50
LmxvYWRhYmxlU2NyaXB0KCkpOwogfQogCi12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3RQ
YXJzaW5nQmxvY2tpbmdTY3JpcHQoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgSFRNTFNjcmlwdFJ1
bm5lcjo6cmVxdWVzdFBhcnNpbmdCbG9ja2luZ1NjcmlwdChTY3JpcHRFbGVtZW50JiBzY3JpcHRF
bGVtZW50KQogewogICAgIEFTU0VSVCghbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCk7Ci0gICAgbV9w
YXJzZXJCbG9ja2luZ1NjcmlwdCA9IHJlcXVlc3RQZW5kaW5nU2NyaXB0KGVsZW1lbnQpOworICAg
IG1fcGFyc2VyQmxvY2tpbmdTY3JpcHQgPSByZXF1ZXN0UGVuZGluZ1NjcmlwdChzY3JpcHRFbGVt
ZW50KTsKICAgICBBU1NFUlQobV9wYXJzZXJCbG9ja2luZ1NjcmlwdC0+bmVlZHNMb2FkaW5nKCkp
OwogCiAgICAgLy8gV2Ugb25seSBjYXJlIGFib3V0IGEgbG9hZCBjYWxsYmFjayBpZiBMb2FkYWJs
ZVNjcmlwdCBpcyBub3QgYWxyZWFkeQpAQCAtMjMwLDU1ICsyMjMsNDQgQEAgdm9pZCBIVE1MU2Ny
aXB0UnVubmVyOjpyZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KEVsZW1lbnQqIGVsZW1lbnQp
CiAgICAgICAgIHdhdGNoRm9yTG9hZCgqbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCk7CiB9CiAKLXZv
aWQgSFRNTFNjcmlwdFJ1bm5lcjo6cmVxdWVzdERlZmVycmVkU2NyaXB0KEVsZW1lbnQqIGVsZW1l
bnQpCit2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3REZWZlcnJlZFNjcmlwdChTY3JpcHRF
bGVtZW50JiBzY3JpcHRFbGVtZW50KQogewotICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IHJlcXVl
c3RQZW5kaW5nU2NyaXB0KGVsZW1lbnQpOworICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IHJlcXVl
c3RQZW5kaW5nU2NyaXB0KHNjcmlwdEVsZW1lbnQpOwogICAgIEFTU0VSVChwZW5kaW5nU2NyaXB0
LT5uZWVkc0xvYWRpbmcoKSk7CiAgICAgbV9zY3JpcHRzVG9FeGVjdXRlQWZ0ZXJQYXJzaW5nLmFw
cGVuZChXVEZNb3ZlKHBlbmRpbmdTY3JpcHQpKTsKIH0KIAogLy8gVGhpcyBtZXRob2QgaXMgbWVh
bnQgdG8gbWF0Y2ggdGhlIEhUTUw1IGRlZmluaXRpb24gb2YgInJ1bm5pbmcgYSBzY3JpcHQiCiAv
LyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRp
cGFnZS9zY3JpcHRpbmctMS5odG1sI3J1bm5pbmctYS1zY3JpcHQKLXZvaWQgSFRNTFNjcmlwdFJ1
bm5lcjo6cnVuU2NyaXB0KEVsZW1lbnQqIHNjcmlwdCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3Jp
cHRTdGFydFBvc2l0aW9uKQordm9pZCBIVE1MU2NyaXB0UnVubmVyOjpydW5TY3JpcHQoU2NyaXB0
RWxlbWVudCYgc2NyaXB0RWxlbWVudCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBv
c2l0aW9uKQogewogICAgIEFTU0VSVChtX2RvY3VtZW50KTsKICAgICBBU1NFUlQoIWhhc1BhcnNl
ckJsb2NraW5nU2NyaXB0KCkpOwotICAgIHsKLSAgICAgICAgU2NyaXB0RWxlbWVudCogc2NyaXB0
RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoc2NyaXB0KTsKLQotICAgICAgICAv
LyBUaGlzIGNvbnRhaW5zIGJvdGggYW5kIEFTU0VSVElPTiBhbmQgYSBudWxsIGNoZWNrIHNpbmNl
IHdlIHNob3VsZCBub3QKLSAgICAgICAgLy8gYmUgZ2V0dGluZyBpbnRvIHRoZSBjYXNlIG9mIGEg
bnVsbCBzY3JpcHQgZWxlbWVudCwgYnV0IHNlZW0gdG8gYmUgZnJvbQotICAgICAgICAvLyB0aW1l
IHRvIHRpbWUuIFRoZSBhc3NlcnRpb24gaXMgbGVmdCBpbiB0byBoZWxwIGZpbmQgdGhvc2UgY2Fz
ZXMgYW5kCi0gICAgICAgIC8vIGlzIGJlaW5nIHRyYWNrZWQgYnkgPGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDU1OT4uCi0gICAgICAgIEFTU0VSVChzY3JpcHRFbGVt
ZW50KTsKLSAgICAgICAgaWYgKCFzY3JpcHRFbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgIC8vIEZJWE1FOiBUaGlzIG1heSBiZSB0b28gYWdyZXNzaXZlIGFzIHdlIGFsd2F5
cyBkZWxpdmVyIG11dGF0aW9ucyBhdAotICAgICAgICAvLyBldmVyeSBzY3JpcHQgZWxlbWVudCwg
ZXZlbiBpZiBpdCdzIG5vdCByZWFkeSB0byBleGVjdXRlIHlldC4gVGhlcmUncwotICAgICAgICAv
LyB1bmZvcnR1YW50ZWx5IG5vIG9idmlvdXMgd2F5IHRvIHRlbGwgaWYgcHJlcGFyZVNjcmlwdCBp
cyBnb2luZyB0bwotICAgICAgICAvLyBleGVjdXRlIHRoZSBzY3JpcHQgZnJvbSBvdXQgaGVyZS4K
LSAgICAgICAgaWYgKCFpc0V4ZWN1dGluZ1NjcmlwdCgpKQotICAgICAgICAgICAgTWljcm90YXNr
UXVldWU6Om1haW5UaHJlYWRRdWV1ZSgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7Ci0K
LSAgICAgICAgSW5zZXJ0aW9uUG9pbnRSZWNvcmQgaW5zZXJ0aW9uUG9pbnRSZWNvcmQobV9ob3N0
LmlucHV0U3RyZWFtKCkpOwotICAgICAgICBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlciBuZXN0aW5n
TGV2ZWxJbmNyZW1lbnRlcihtX3NjcmlwdE5lc3RpbmdMZXZlbCk7CiAKLSAgICAgICAgc2NyaXB0
RWxlbWVudC0+cHJlcGFyZVNjcmlwdChzY3JpcHRTdGFydFBvc2l0aW9uKTsKLQotICAgICAgICBp
ZiAoIXNjcmlwdEVsZW1lbnQtPndpbGxCZVBhcnNlckV4ZWN1dGVkKCkpCi0gICAgICAgICAgICBy
ZXR1cm47CisgICAgLy8gRklYTUU6IFRoaXMgbWF5IGJlIHRvbyBhZ3Jlc3NpdmUgYXMgd2UgYWx3
YXlzIGRlbGl2ZXIgbXV0YXRpb25zIGF0CisgICAgLy8gZXZlcnkgc2NyaXB0IGVsZW1lbnQsIGV2
ZW4gaWYgaXQncyBub3QgcmVhZHkgdG8gZXhlY3V0ZSB5ZXQuIFRoZXJlJ3MKKyAgICAvLyB1bmZv
cnR1bmF0ZWx5IG5vIG9idmlvdXMgd2F5IHRvIHRlbGwgaWYgcHJlcGFyZVNjcmlwdCBpcyBnb2lu
ZyB0bworICAgIC8vIGV4ZWN1dGUgdGhlIHNjcmlwdCBiZWZvcmUgY2FsbGluZyBpdC4KKyAgICBp
ZiAoIWlzRXhlY3V0aW5nU2NyaXB0KCkpCisgICAgICAgIE1pY3JvdGFza1F1ZXVlOjptYWluVGhy
ZWFkUXVldWUoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOwogCi0gICAgICAgIGlmIChz
Y3JpcHRFbGVtZW50LT53aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlzaGVkUGFyc2luZygpKQot
ICAgICAgICAgICAgcmVxdWVzdERlZmVycmVkU2NyaXB0KHNjcmlwdCk7Ci0gICAgICAgIGVsc2Ug
aWYgKHNjcmlwdEVsZW1lbnQtPnJlYWR5VG9CZVBhcnNlckV4ZWN1dGVkKCkpIHsKLSAgICAgICAg
ICAgIGlmIChtX3NjcmlwdE5lc3RpbmdMZXZlbCA9PSAxKQotICAgICAgICAgICAgICAgIG1fcGFy
c2VyQmxvY2tpbmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoKnNjcmlwdCwgc2NyaXB0
U3RhcnRQb3NpdGlvbik7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgc2NyaXB0
RWxlbWVudC0+ZXhlY3V0ZUNsYXNzaWNTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHQtPnRl
eHRDb250ZW50KCksIGRvY3VtZW50VVJMRm9yU2NyaXB0RXhlY3V0aW9uKG1fZG9jdW1lbnQpLCBz
Y3JpcHRTdGFydFBvc2l0aW9uKSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgcmVxdWVz
dFBhcnNpbmdCbG9ja2luZ1NjcmlwdChzY3JpcHQpOwotICAgIH0KKyAgICBJbnNlcnRpb25Qb2lu
dFJlY29yZCBpbnNlcnRpb25Qb2ludFJlY29yZChtX2hvc3QuaW5wdXRTdHJlYW0oKSk7CisgICAg
TmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVsSW5jcmVtZW50ZXIobV9zY3JpcHRO
ZXN0aW5nTGV2ZWwpOworCisgICAgc2NyaXB0RWxlbWVudC5wcmVwYXJlU2NyaXB0KHNjcmlwdFN0
YXJ0UG9zaXRpb24pOworCisgICAgaWYgKCFzY3JpcHRFbGVtZW50LndpbGxCZVBhcnNlckV4ZWN1
dGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChzY3JpcHRFbGVtZW50LndpbGxFeGVj
dXRlV2hlbkRvY3VtZW50RmluaXNoZWRQYXJzaW5nKCkpCisgICAgICAgIHJlcXVlc3REZWZlcnJl
ZFNjcmlwdChzY3JpcHRFbGVtZW50KTsKKyAgICBlbHNlIGlmIChzY3JpcHRFbGVtZW50LnJlYWR5
VG9CZVBhcnNlckV4ZWN1dGVkKCkpIHsKKyAgICAgICAgaWYgKG1fc2NyaXB0TmVzdGluZ0xldmVs
ID09IDEpCisgICAgICAgICAgICBtX3BhcnNlckJsb2NraW5nU2NyaXB0ID0gUGVuZGluZ1Njcmlw
dDo6Y3JlYXRlKHNjcmlwdEVsZW1lbnQsIHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBzY3JpcHRFbGVtZW50LmV4ZWN1dGVDbGFzc2ljU2NyaXB0KFNjcmlw
dFNvdXJjZUNvZGUoc2NyaXB0RWxlbWVudC5lbGVtZW50KCkudGV4dENvbnRlbnQoKSwgZG9jdW1l
bnRVUkxGb3JTY3JpcHRFeGVjdXRpb24obV9kb2N1bWVudCksIHNjcmlwdFN0YXJ0UG9zaXRpb24p
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmVxdWVzdFBhcnNpbmdCbG9ja2luZ1NjcmlwdChzY3Jp
cHRFbGVtZW50KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFNjcmlwdFJ1bm5lci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNj
cmlwdFJ1bm5lci5oCmluZGV4IDc2ODAwZDcxM2NlN2QyZTQ2MzVhNjYyMzViMTY3YzE5ZjQ1N2M4
MDMuLmM4Njc0N2Q5MWJhZTA1ZTQyNzY2ZGRmZmVkNTlhMDgzZTdhYTFmZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmgKQEAgLTEsNSArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwxMyArMzMsMTIg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBFbGVtZW50
OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBIVE1MU2NyaXB0UnVubmVySG9zdDsKIGNsYXNzIFNjcmlw
dFNvdXJjZUNvZGU7CiAKIGNsYXNzIEhUTUxTY3JpcHRSdW5uZXIgewotICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEhUTUxTY3JpcHRSdW5uZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBIVE1MU2NyaXB0UnVubmVy
KERvY3VtZW50JiwgSFRNTFNjcmlwdFJ1bm5lckhvc3QmKTsKICAgICB+SFRNTFNjcmlwdFJ1bm5l
cigpOwpAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZXRhY2goKTsKIAogICAg
IC8vIFByb2Nlc3NlcyB0aGUgcGFzc2VkIGluIHNjcmlwdCBhbmQgYW55IHBlbmRpbmcgc2NyaXB0
cyBpZiBwb3NzaWJsZS4KLSAgICB2b2lkIGV4ZWN1dGUoUGFzc1JlZlB0cjxFbGVtZW50PiBzY3Jp
cHRUb1Byb2Nlc3MsIGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7Cisg
ICAgdm9pZCBleGVjdXRlKFJlZjxTY3JpcHRFbGVtZW50PiYmLCBjb25zdCBUZXh0UG9zaXRpb24m
IHNjcmlwdFN0YXJ0UG9zaXRpb24pOwogCiAgICAgdm9pZCBleGVjdXRlU2NyaXB0c1dhaXRpbmdG
b3JMb2FkKFBlbmRpbmdTY3JpcHQmKTsKICAgICBib29sIGhhc1NjcmlwdHNXYWl0aW5nRm9yU3R5
bGVzaGVldHMoKSBjb25zdCB7IHJldHVybiBtX2hhc1NjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVl
dHM7IH0KQEAgLTU5LDE2ICs1OSwxNCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEZyYW1lKiBm
cmFtZSgpIGNvbnN0OwogCi0gICAgdm9pZCBleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0KCk7
Ci0gICAgdm9pZCBleGVjdXRlUGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQoUmVmUHRyPFBl
bmRpbmdTY3JpcHQ+KTsKKyAgICB2b2lkIGV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hF
dmVudChQZW5kaW5nU2NyaXB0Jik7CiAgICAgdm9pZCBleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2Ny
aXB0cygpOwogCi0gICAgdm9pZCByZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KEVsZW1lbnQq
KTsKLSAgICB2b2lkIHJlcXVlc3REZWZlcnJlZFNjcmlwdChFbGVtZW50Kik7CisgICAgdm9pZCBy
ZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQmKTsKKyAgICB2b2lkIHJl
cXVlc3REZWZlcnJlZFNjcmlwdChTY3JpcHRFbGVtZW50Jik7CiAKLSAgICB2b2lkIHJ1blNjcmlw
dChFbGVtZW50KiwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAg
ICB2b2lkIHJ1blNjcmlwdChTY3JpcHRFbGVtZW50JiwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3Jp
cHRTdGFydFBvc2l0aW9uKTsKIAotICAgIC8vIEhlbHBlcnMgZm9yIGRlYWxpbmcgd2l0aCBIVE1M
U2NyaXB0UnVubmVySG9zdAogICAgIHZvaWQgd2F0Y2hGb3JMb2FkKFBlbmRpbmdTY3JpcHQmKTsK
ICAgICB2b2lkIHN0b3BXYXRjaGluZ0ZvckxvYWQoUGVuZGluZ1NjcmlwdCYpOwogICAgIGJvb2wg
aXNQZW5kaW5nU2NyaXB0UmVhZHkoY29uc3QgUGVuZGluZ1NjcmlwdCYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKaW5kZXggNDUyNGMxZWFhY2Zk
OTMyOTAyNmM2NmNiNzJhYjU0YjAwOGY2MmE0Yy4uZDRmODRkMmZhNTVkNTk5MGU2Zjc3NWNkZjBl
NDRhMzIwYzdhYzYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJl
ZUJ1aWxkZXIuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDEwICszNSwxMiBAQAogI2luY2x1ZGUgIkhUTUxPcHRHcm91
cEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxQYXJzZXJJZGlvbXMuaCIKKyNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxUYWJsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0N1c3RvbUVsZW1lbnRJbnRlcmZh
Y2UuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKKyNpbmNsdWRlICJTVkdTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiWExpbmtO
YW1lcy5oIgogI2luY2x1ZGUgIlhNTE5TTmFtZXMuaCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgpA
QCAtNTcsMTAgKzU5LDEyIEBAIEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhOjpDdXN0b21F
bGVtZW50Q29uc3RydWN0aW9uRGF0YShSZWY8SlNDdXN0b21FbGVtZW50CiAgICAgOiBlbGVtZW50
SW50ZXJmYWNlKFdURk1vdmUoY3VzdG9tRWxlbWVudEludGVyZmFjZSkpCiAgICAgLCBuYW1lKG5h
bWUpCiAgICAgLCBhdHRyaWJ1dGVzKFdURk1vdmUoYXR0cmlidXRlcykpCi17IH0KK3sKK30KIAog
Q3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGE6On5DdXN0b21FbGVtZW50Q29uc3RydWN0aW9u
RGF0YSgpCi17IH0KK3sKK30KIAogbmFtZXNwYWNlIHsKIApAQCAtMzE4LDcgKzMyMiw3IEBAIGlu
bGluZSBIVE1MU3RhY2tJdGVtJiBIVE1MVHJlZUJ1aWxkZXI6OkZyYWdtZW50UGFyc2luZ0NvbnRl
eHQ6OmNvbnRleHRFbGVtZW50U3RhCiAgICAgcmV0dXJuICptX2NvbnRleHRFbGVtZW50U3RhY2tJ
dGVtOwogfQogCi1SZWZQdHI8RWxlbWVudD4gSFRNTFRyZWVCdWlsZGVyOjp0YWtlU2NyaXB0VG9Q
cm9jZXNzKFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKK1JlZlB0cjxTY3JpcHRF
bGVtZW50PiBIVE1MVHJlZUJ1aWxkZXI6OnRha2VTY3JpcHRUb1Byb2Nlc3MoVGV4dFBvc2l0aW9u
JiBzY3JpcHRTdGFydFBvc2l0aW9uKQogewogICAgIEFTU0VSVCghbV9kZXN0cm95ZWQpOwogCkBA
IC0yMDU3LDcgKzIwNjEsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhB
dG9taWNIVE1MVG9rZW4mJiB0b2tlbikKICAgICAgICAgICAgIC8vIFBhdXNlIG91cnNlbHZlcyBz
byB0aGF0IHBhcnNpbmcgc3RvcHMgdW50aWwgdGhlIHNjcmlwdCBjYW4gYmUgcHJvY2Vzc2VkIGJ5
IHRoZSBjYWxsZXIuCiAgICAgICAgICAgICBBU1NFUlQobV90cmVlLmN1cnJlbnRTdGFja0l0ZW0o
KS5oYXNUYWdOYW1lKHNjcmlwdFRhZykpOwogICAgICAgICAgICAgaWYgKHNjcmlwdGluZ0NvbnRl
bnRJc0FsbG93ZWQobV90cmVlLnBhcnNlckNvbnRlbnRQb2xpY3koKSkpCi0gICAgICAgICAgICAg
ICAgbV9zY3JpcHRUb1Byb2Nlc3MgPSAmbV90cmVlLmN1cnJlbnRFbGVtZW50KCk7CisgICAgICAg
ICAgICAgICAgbV9zY3JpcHRUb1Byb2Nlc3MgPSAmZG93bmNhc3Q8SFRNTFNjcmlwdEVsZW1lbnQ+
KG1fdHJlZS5jdXJyZW50RWxlbWVudCgpKTsKICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVu
dHMoKS5wb3AoKTsKICAgICAgICAgICAgIG1faW5zZXJ0aW9uTW9kZSA9IG1fb3JpZ2luYWxJbnNl
cnRpb25Nb2RlOwogCkBAIC0yNzg3LDcgKzI3OTEsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudChBdG9taWNIVE1MVG9rZW4mJiB0b2tlbikKIAog
ICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09IFNWR05hbWVzOjpzY3JpcHRUYWcgJiYgbV90cmVl
LmN1cnJlbnRTdGFja0l0ZW0oKS5oYXNUYWdOYW1lKFNWR05hbWVzOjpzY3JpcHRUYWcpKSB7CiAg
ICAgICAgICAgICBpZiAoc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChtX3RyZWUucGFyc2VyQ29u
dGVudFBvbGljeSgpKSkKLSAgICAgICAgICAgICAgICBtX3NjcmlwdFRvUHJvY2VzcyA9ICZtX3Ry
ZWUuY3VycmVudEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBtX3NjcmlwdFRvUHJvY2VzcyA9
ICZkb3duY2FzdDxTVkdTY3JpcHRFbGVtZW50PihtX3RyZWUuY3VycmVudEVsZW1lbnQoKSk7CiAg
ICAgICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCkucG9wKCk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxUcmVlQnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmgKaW5kZXggZDcwOTI5ZjYwYTYwYmM2NTk2ZjY3OTBjZDAwZGVmMTZmOTg1NTlhNS4uYWVj
Y2FiNDVkYTU1MGNlMzlhNjg5NjgwYjBjZjQ0Y2M1MDJmMWYxZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNiArMzUsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTsKIGNsYXNz
IEhUTUxEb2N1bWVudFBhcnNlcjsKK2NsYXNzIFNjcmlwdEVsZW1lbnQ7CiAKIHN0cnVjdCBDdXN0
b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YSB7CiAgICAgQ3VzdG9tRWxlbWVudENvbnN0cnVjdGlv
bkRhdGEoUmVmPEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZT4mJiwgY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBWZWN0b3I8QXR0cmlidXRlPiYmKTsKQEAgLTYyLDcgKzYzLDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaGFzUGFyc2VyQmxvY2tpbmdTY3JpcHRXb3JrKCkgY29uc3Q7CiAKICAgICAvLyBN
dXN0IGJlIGNhbGxlZCB0byB0YWtlIHRoZSBwYXJzZXItYmxvY2tpbmcgc2NyaXB0IGJlZm9yZSBj
YWxsaW5nIHRoZSBwYXJzZXIgYWdhaW4uCi0gICAgUmVmUHRyPEVsZW1lbnQ+IHRha2VTY3JpcHRU
b1Byb2Nlc3MoVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICBSZWZQdHI8
U2NyaXB0RWxlbWVudD4gdGFrZVNjcmlwdFRvUHJvY2VzcyhUZXh0UG9zaXRpb24mIHNjcmlwdFN0
YXJ0UG9zaXRpb24pOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEN1c3RvbUVsZW1lbnRDb25zdHJ1
Y3Rpb25EYXRhPiB0YWtlQ3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGEoKSB7IHJldHVybiBX
VEZNb3ZlKG1fY3VzdG9tRWxlbWVudFRvQ29uc3RydWN0KTsgfQogICAgIHZvaWQgZGlkQ3JlYXRl
Q3VzdG9tT3JDYWxsYmFja0VsZW1lbnQoUmVmPEVsZW1lbnQ+JiYsIEN1c3RvbUVsZW1lbnRDb25z
dHJ1Y3Rpb25EYXRhJik7CkBAIC0yMDYsNyArMjA3LDcgQEAgcHJpdmF0ZToKICAgICAvLyBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNjb25jZXB0LXBl
bmRpbmctdGFibGUtY2hhci10b2tlbnMKICAgICBTdHJpbmdCdWlsZGVyIG1fcGVuZGluZ1RhYmxl
Q2hhcmFjdGVyczsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBtX3NjcmlwdFRvUHJvY2VzczsgLy8g
PHNjcmlwdD4gdGFnIHdoaWNoIG5lZWRzIHByb2Nlc3NpbmcgYmVmb3JlIHJlc3VtaW5nIHRoZSBw
YXJzZXIuCisgICAgUmVmUHRyPFNjcmlwdEVsZW1lbnQ+IG1fc2NyaXB0VG9Qcm9jZXNzOyAvLyA8
c2NyaXB0PiB0YWcgd2hpY2ggbmVlZHMgcHJvY2Vzc2luZyBiZWZvcmUgcmVzdW1pbmcgdGhlIHBh
cnNlci4KICAgICBUZXh0UG9zaXRpb24gbV9zY3JpcHRUb1Byb2Nlc3NTdGFydFBvc2l0aW9uOyAv
LyBTdGFydGluZyBsaW5lIG51bWJlciBvZiB0aGUgc2NyaXB0IHRhZyBuZWVkaW5nIHByb2Nlc3Np
bmcuCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGE+
IG1fY3VzdG9tRWxlbWVudFRvQ29uc3RydWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAKaW5kZXggYWQ1ZjZlNzhlMzgxYWFkY2NjNmI5
MWJhOTdjYTQyNTU4MDRjYjk3MC4uZjk4ODI1YjIwNjA5N2YyYzRhOGMxZmU4NGI0MGI2ZDhmMGE1
ZWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQ
YXJzZXIuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiVGV4dERvY3VtZW50UGFyc2Vy
LmgiCiAKICNpbmNsdWRlICJIVE1MVHJlZUJ1aWxkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRFbGVt
ZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKaW5kZXggM2Y0M2UwNGQ1ZGVlYjdkMjkz
MTE2ZThkZWMyM2M3YjBiZjdmYjc3OS4uOWI1MGJhM2IxNDM2OGMyM2QxMzY2MTFlZjhjOTQ4NmRj
YmVjYzM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRv
ckRlbGVnYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9y
RGVsZWdhdGUuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBH
b29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTQ1LDcgKzQ2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBYU1NBdWRpdG9y
RGVsZWdhdGU6OlhTU0F1ZGl0b3JEZWxlZ2F0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBt
X2RvY3VtZW50KGRvY3VtZW50KQotICAgICwgbV9kaWRTZW5kTm90aWZpY2F0aW9ucyhmYWxzZSkK
IHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogfQpAQCAtNjksMjIgKzY5LDIyIEBAIHN0
YXRpYyBpbmxpbmUgU3RyaW5nIGJ1aWxkQ29uc29sZUVycm9yKGNvbnN0IFhTU0luZm8mIHhzc0lu
Zm8pCiAgICAgcmV0dXJuIG1lc3NhZ2UudG9TdHJpbmcoKTsKIH0KIAotUGFzc1JlZlB0cjxGb3Jt
RGF0YT4gWFNTQXVkaXRvckRlbGVnYXRlOjpnZW5lcmF0ZVZpb2xhdGlvblJlcG9ydChjb25zdCBY
U1NJbmZvJiB4c3NJbmZvKQorUmVmPEZvcm1EYXRhPiBYU1NBdWRpdG9yRGVsZWdhdGU6OmdlbmVy
YXRlVmlvbGF0aW9uUmVwb3J0KGNvbnN0IFhTU0luZm8mIHhzc0luZm8pCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKIAotICAgIEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciA9IG1fZG9j
dW1lbnQuZnJhbWUoKS0+bG9hZGVyKCk7CisgICAgYXV0byYgZnJhbWVMb2FkZXIgPSBtX2RvY3Vt
ZW50LmZyYW1lKCktPmxvYWRlcigpOwogICAgIFN0cmluZyBodHRwQm9keTsKICAgICBpZiAoZnJh
bWVMb2FkZXIuZG9jdW1lbnRMb2FkZXIoKSkgewotICAgICAgICBpZiAoRm9ybURhdGEqIGZvcm1E
YXRhID0gZnJhbWVMb2FkZXIuZG9jdW1lbnRMb2FkZXIoKS0+b3JpZ2luYWxSZXF1ZXN0KCkuaHR0
cEJvZHkoKSkKKyAgICAgICAgaWYgKGF1dG8qIGZvcm1EYXRhID0gZnJhbWVMb2FkZXIuZG9jdW1l
bnRMb2FkZXIoKS0+b3JpZ2luYWxSZXF1ZXN0KCkuaHR0cEJvZHkoKSkKICAgICAgICAgICAgIGh0
dHBCb2R5ID0gZm9ybURhdGEtPmZsYXR0ZW5Ub1N0cmluZygpOwogICAgIH0KIAotICAgIFJlZjxJ
bnNwZWN0b3JPYmplY3Q+IHJlcG9ydERldGFpbHMgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgp
OworICAgIGF1dG8gcmVwb3J0RGV0YWlscyA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAg
ICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJyZXF1ZXN0LXVybCIsIHhzc0luZm8ubV9vcmln
aW5hbFVSTCk7CiAgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJyZXF1ZXN0LWJvZHkiLCBo
dHRwQm9keSk7CiAKLSAgICBSZWY8SW5zcGVjdG9yT2JqZWN0PiByZXBvcnRPYmplY3QgPSBJbnNw
ZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGF1dG8gcmVwb3J0T2JqZWN0ID0gSW5zcGVjdG9y
T2JqZWN0OjpjcmVhdGUoKTsKICAgICByZXBvcnRPYmplY3QtPnNldE9iamVjdCgieHNzLXJlcG9y
dCIsIFdURk1vdmUocmVwb3J0RGV0YWlscykpOwogCiAgICAgcmV0dXJuIEZvcm1EYXRhOjpjcmVh
dGUocmVwb3J0T2JqZWN0LT50b0pTT05TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmgKaW5kZXggMGFlMjc0
YjMxOTJkZmE0N2E2M2NlOTZhMmE5Nzk0NjVlYzg4MDhlZi4uNjdhMzJlZDkzMGQ3ZDlkZDRkYWM0
MDg5MjIwYmRmM2YyYWQ3NmU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvWFNTQXVkaXRvckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
WFNTQXVkaXRvckRlbGVnYXRlLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDEzIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjcsMTMgKzI4LDE0IEBACiAKICNpbmNsdWRlICJVUkwuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKIGNsYXNz
IEZvcm1EYXRhOwogCisvLyBGSVhNRTogU2hvdWxkIGNoYW5nZSBpbnRvIGEgc3RydWN0LgorLy8g
RklYTUU6IFNob3VsZCByZXR1cm4gYnkgdmFsdWUgaW5zdGVhZCBvZiB1c2luZyBhIHVuaXF1ZV9w
dHIuCiBjbGFzcyBYU1NJbmZvIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKQEAgLTUxLDcgKzUzLDYgQEAgcHVibGljOgogfTsKIAogY2xhc3MgWFNTQXVkaXRvckRlbGVn
YXRlIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShYU1NBdWRpdG9yRGVsZWdhdGUpOwogcHVi
bGljOgogICAgIGV4cGxpY2l0IFhTU0F1ZGl0b3JEZWxlZ2F0ZShEb2N1bWVudCYpOwogCkBAIC01
OSwxMCArNjAsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVwb3J0VVJMKGNvbnN0IFVSTCYg
dXJsKSB7IG1fcmVwb3J0VVJMID0gdXJsOyB9CiAKIHByaXZhdGU6Ci0gICAgUGFzc1JlZlB0cjxG
b3JtRGF0YT4gZ2VuZXJhdGVWaW9sYXRpb25SZXBvcnQoY29uc3QgWFNTSW5mbyYpOworICAgIFJl
ZjxGb3JtRGF0YT4gZ2VuZXJhdGVWaW9sYXRpb25SZXBvcnQoY29uc3QgWFNTSW5mbyYpOwogCiAg
ICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7Ci0gICAgYm9vbCBtX2RpZFNlbmROb3RpZmljYXRpb25z
OworICAgIGJvb2wgbV9kaWRTZW5kTm90aWZpY2F0aW9ucyB7IGZhbHNlIH07CiAgICAgVVJMIG1f
cmVwb3J0VVJMOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9B
dWRpb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAK
aW5kZXggOGMzNTZmNzkxNWQ0OThjZTM0MTJmNzk4ODJmOGQwNjBiMDg1NjE5Mi4uZWViMDU1Mzdm
NjQ1MzRmNjU1NTdhNmNmNDRmMzgwMWQxZDM2YmJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0F1ZGlvVHJhY2suY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykg
MjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMCwxMyArMzAsMTAgQEAKICAqLwog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXVkaW9UcmFjay5oIgogCiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiQXVkaW9UcmFjay5oIgotCi0jaW5jbHVkZSAi
QXVkaW9UcmFja0xpc3QuaCIKLSNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkhUTUxNZWRp
YUVsZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNzgsMTAg
Kzc1LDEwIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgQXVkaW9UcmFjazo6Y29tbWVudGFyeUtleXdv
cmQoKQogICAgIHJldHVybiBjb21tZW50YXJ5OwogfQogCi1BdWRpb1RyYWNrOjpBdWRpb1RyYWNr
KEF1ZGlvVHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4g
dHJhY2tQcml2YXRlKQotICAgIDogTWVkaWFUcmFja0Jhc2UoTWVkaWFUcmFja0Jhc2U6OkF1ZGlv
VHJhY2ssIHRyYWNrUHJpdmF0ZS0+aWQoKSwgdHJhY2tQcml2YXRlLT5sYWJlbCgpLCB0cmFja1By
aXZhdGUtPmxhbmd1YWdlKCkpCi0gICAgLCBtX2VuYWJsZWQodHJhY2tQcml2YXRlLT5lbmFibGVk
KCkpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCitBdWRpb1RyYWNrOjpBdWRpb1RyYWNrKEF1ZGlv
VHJhY2tDbGllbnQmIGNsaWVudCwgQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAg
ICA6IE1lZGlhVHJhY2tCYXNlKE1lZGlhVHJhY2tCYXNlOjpBdWRpb1RyYWNrLCB0cmFja1ByaXZh
dGUuaWQoKSwgdHJhY2tQcml2YXRlLmxhYmVsKCksIHRyYWNrUHJpdmF0ZS5sYW5ndWFnZSgpKQor
ICAgICwgbV9lbmFibGVkKHRyYWNrUHJpdmF0ZS5lbmFibGVkKCkpCisgICAgLCBtX2NsaWVudCgm
Y2xpZW50KQogICAgICwgbV9wcml2YXRlKHRyYWNrUHJpdmF0ZSkKIHsKICAgICBtX3ByaXZhdGUt
PnNldENsaWVudCh0aGlzKTsKQEAgLTkzLDgwICs5MCw3MCBAQCBBdWRpb1RyYWNrOjp+QXVkaW9U
cmFjaygpCiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiB9CiAKLXZvaWQgQXVk
aW9UcmFjazo6c2V0UHJpdmF0ZShQYXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPiB0cmFja1By
aXZhdGUpCit2b2lkIEF1ZGlvVHJhY2s6OnNldFByaXZhdGUoQXVkaW9UcmFja1ByaXZhdGUmIHRy
YWNrUHJpdmF0ZSkKIHsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKLSAgICBBU1NFUlQodHJhY2tQ
cml2YXRlKTsKLQotICAgIGlmIChtX3ByaXZhdGUgPT0gdHJhY2tQcml2YXRlKQorICAgIGlmICht
X3ByaXZhdGUucHRyKCkgPT0gJnRyYWNrUHJpdmF0ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
bV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiAgICAgbV9wcml2YXRlID0gdHJhY2tQcml2
YXRlOworICAgIG1fcHJpdmF0ZS0+c2V0RW5hYmxlZChtX2VuYWJsZWQpOwogICAgIG1fcHJpdmF0
ZS0+c2V0Q2xpZW50KHRoaXMpOwogCi0gICAgbV9wcml2YXRlLT5zZXRFbmFibGVkKG1fZW5hYmxl
ZCk7CiAgICAgdXBkYXRlS2luZEZyb21Qcml2YXRlKCk7CiB9CiAKIGJvb2wgQXVkaW9UcmFjazo6
aXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkgY29uc3QKIHsKICAgICByZXR1
cm4gdmFsdWUgPT0gYWx0ZXJuYXRpdmVLZXl3b3JkKCkKKyAgICAgICAgfHwgdmFsdWUgPT0gY29t
bWVudGFyeUtleXdvcmQoKQogICAgICAgICB8fCB2YWx1ZSA9PSBkZXNjcmlwdGlvbktleXdvcmQo
KQogICAgICAgICB8fCB2YWx1ZSA9PSBtYWluS2V5d29yZCgpCiAgICAgICAgIHx8IHZhbHVlID09
IG1haW5EZXNjS2V5d29yZCgpCi0gICAgICAgIHx8IHZhbHVlID09IHRyYW5zbGF0aW9uS2V5d29y
ZCgpCi0gICAgICAgIHx8IHZhbHVlID09IGNvbW1lbnRhcnlLZXl3b3JkKCk7CisgICAgICAgIHx8
IHZhbHVlID09IHRyYW5zbGF0aW9uS2V5d29yZCgpOwogfQogCi12b2lkIEF1ZGlvVHJhY2s6OnNl
dEVuYWJsZWQoY29uc3QgYm9vbCBlbmFibGVkKQordm9pZCBBdWRpb1RyYWNrOjpzZXRFbmFibGVk
KGJvb2wgZW5hYmxlZCkKIHsKICAgICBpZiAobV9lbmFibGVkID09IGVuYWJsZWQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CiAgICAgbV9wcml2YXRlLT5zZXRF
bmFibGVkKGVuYWJsZWQpOwotCi0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+
YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKHRoaXMpOwogfQogCi1zaXplX3QgQXVkaW9UcmFjazo6
aW5iYW5kVHJhY2tJbmRleCgpCitzaXplX3QgQXVkaW9UcmFjazo6aW5iYW5kVHJhY2tJbmRleCgp
IGNvbnN0CiB7Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
dHJhY2tJbmRleCgpOwogfQogCi12b2lkIEF1ZGlvVHJhY2s6OmVuYWJsZWRDaGFuZ2VkKEF1ZGlv
VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIGJvb2wgZW5hYmxlZCkKK3ZvaWQgQXVkaW9UcmFj
azo6ZW5hYmxlZENoYW5nZWQoYm9vbCBlbmFibGVkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJh
Y2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKKyAgICBpZiAobV9lbmFibGVk
ID09IGVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKwogICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7
CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5hdWRpb1RyYWNrRW5hYmxl
ZENoYW5nZWQodGhpcyk7CisgICAgICAgIG1fY2xpZW50LT5hdWRpb1RyYWNrRW5hYmxlZENoYW5n
ZWQoKnRoaXMpOwogfQogCi12b2lkIEF1ZGlvVHJhY2s6OmlkQ2hhbmdlZChUcmFja1ByaXZhdGVC
YXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCit2b2lkIEF1ZGlvVHJh
Y2s6OmlkQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKQogewotICAgIEFTU0VSVF9VTlVT
RUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRJZChp
ZCk7CiB9CiAKLXZvaWQgQXVkaW9UcmFjazo6bGFiZWxDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2Uq
IHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkKK3ZvaWQgQXVkaW9UcmFj
azo6bGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpCiB7Ci0gICAgQVNTRVJU
X1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNl
dExhYmVsKGxhYmVsKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoVHJh
Y2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdl
KQordm9pZCBBdWRpb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBs
YW5ndWFnZSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRl
ID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2UpOwogfQogCi12b2lkIEF1
ZGlvVHJhY2s6OndpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlKQordm9p
ZCBBdWRpb1RyYWNrOjp3aWxsUmVtb3ZlKCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJp
dmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgbWVkaWFFbGVtZW50KCktPnJl
bW92ZUF1ZGlvVHJhY2soKnRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0F1ZGlvVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9U
cmFjay5oCmluZGV4IDYxYzViMmNkNDI5OGQ1NzRmN2Y3MTViYzFjMTkyMDA3OTFkZDIzYWEuLjA3
Yzc3OTRmYTA5M2Y2ZDI4YTI5NDE3M2I4NTMzYjdiYzJjOWI5OWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svQXVkaW9UcmFjay5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDkgKzI5LDcgQEAKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCiAKICNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgotI2luY2x1
ZGUgIlBsYXRmb3JtRXhwb3J0TWFjcm9zLmgiCiAjaW5jbHVkZSAiVHJhY2tCYXNlLmgiCi0jaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NDAsMTIgKzM4LDEyIEBAIGNsYXNzIEF1ZGlvVHJhY2s7CiBjbGFzcyBBdWRpb1RyYWNrQ2xpZW50
IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BdWRpb1RyYWNrQ2xpZW50KCkgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayYpID0gMDsK
IH07CiAKLWNsYXNzIEF1ZGlvVHJhY2sgZmluYWwgOiBwdWJsaWMgTWVkaWFUcmFja0Jhc2UsIHB1
YmxpYyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCB7CitjbGFzcyBBdWRpb1RyYWNrIGZpbmFsIDog
cHVibGljIE1lZGlhVHJhY2tCYXNlLCBwcml2YXRlIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEF1ZGlvVHJhY2s+IGNyZWF0ZShBdWRpb1RyYWNrQ2xp
ZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkK
KyAgICBzdGF0aWMgUmVmPEF1ZGlvVHJhY2s+IGNyZWF0ZShBdWRpb1RyYWNrQ2xpZW50JiBjbGll
bnQsIEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiAgICAgewogICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrKGNsaWVudCwgdHJhY2tQcml2YXRlKSk7CiAgICAg
fQpAQCAtNTcsMzkgKzU1LDM3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3Ry
aW5nJiBtYWluRGVzY0tleXdvcmQoKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiB0
cmFuc2xhdGlvbktleXdvcmQoKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjb21t
ZW50YXJ5S2V5d29yZCgpOwotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZGVmYXVsdEtpbmRLZXl3
b3JkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZW1wdHlBdG9tOyB9CiAKLSAgICBib29sIGVu
YWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2VuYWJsZWQ7IH0KKyAgICBib29sIGVu
YWJsZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2VuYWJsZWQ7IH0KICAgICB2b2lkIHNldEVu
YWJsZWQoY29uc3QgYm9vbCk7CiAKLSAgICB2b2lkIGNsZWFyQ2xpZW50KCkgb3ZlcnJpZGUgeyBt
X2NsaWVudCA9IG51bGxwdHI7IH0KKyAgICB2b2lkIGNsZWFyQ2xpZW50KCkgZmluYWwgeyBtX2Ns
aWVudCA9IG51bGxwdHI7IH0KICAgICBBdWRpb1RyYWNrQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudDsgfQogCi0gICAgc2l6ZV90IGluYmFuZFRyYWNrSW5kZXgoKTsKKyAg
ICBzaXplX3QgaW5iYW5kVHJhY2tJbmRleCgpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRQcml2YXRl
KFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+KTsKLQotcHJvdGVjdGVkOgotICAgIEF1ZGlv
VHJhY2soQXVkaW9UcmFja0NsaWVudCosIFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+KTsK
KyAgICB2b2lkIHNldFByaXZhdGUoQXVkaW9UcmFja1ByaXZhdGUmKTsKIAogcHJpdmF0ZToKLSAg
ICBib29sIGlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIEF1ZGlvVHJhY2soQXVkaW9UcmFja0NsaWVudCYsIEF1ZGlvVHJhY2tQcml2YXRlJik7CisK
KyAgICBib29sIGlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IGZpbmFsOwog
CiAgICAgLy8gQXVkaW9UcmFja1ByaXZhdGVDbGllbnQKLSAgICB2b2lkIGVuYWJsZWRDaGFuZ2Vk
KEF1ZGlvVHJhY2tQcml2YXRlKiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbmFibGVkQ2hh
bmdlZChib29sKSBmaW5hbDsKIAogICAgIC8vIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQKLSAgICB2
b2lkIGlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0
b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJp
dmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxS
ZW1vdmUoVHJhY2tQcml2YXRlQmFzZSopIG92ZXJyaWRlOworICAgIHZvaWQgaWRDaGFuZ2VkKGNv
bnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgbGFiZWxDaGFuZ2VkKGNvbnN0IEF0
b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21p
Y1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgd2lsbFJlbW92ZSgpIGZpbmFsOwogCiAgICAgdm9p
ZCB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIAogICAgIGJvb2wgbV9lbmFibGVkOwogICAgIEF1
ZGlvVHJhY2tDbGllbnQqIG1fY2xpZW50OwogCi0gICAgUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRl
PiBtX3ByaXZhdGU7CisgICAgUmVmPEF1ZGlvVHJhY2tQcml2YXRlPiBtX3ByaXZhdGU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAppbmRleCBiZTU4Y2M4MTE5YmZlNmQ2MGYwMzBiYTAx
OTNjMGNkZTUyODQ5MTk4Li42ZDk1NDAxYjRlYjMyNzIzZTgyNTAzNDFlOTZlOTFjNGYzZTlkMjdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJh
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFj
ay5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE0IENhYmxlIFRl
bGV2aXNpb24gTGFicyBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsMzUgKzMzLDMzIEBACiAjaW5jbHVkZSAiSFRNTE1lZGlh
RWxlbWVudC5oIgogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGUuaCIKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCi0jaW5jbHVkZSA8cnVudGltZS9BcnJheUJ1ZmZlci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVJlZjxJbmJhbmREYXRhVGV4dFRyYWNrPiBJbmJhbmREYXRhVGV4dFRy
YWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xp
ZW50KiBjbGllbnQsIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiYmIHRyYWNrUHJpdmF0
ZSkKK2lubGluZSBJbmJhbmREYXRhVGV4dFRyYWNrOjpJbmJhbmREYXRhVGV4dFRyYWNrKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgOiBJbmJhbmRUZXh0VHJhY2so
Y29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSW5iYW5kRGF0YVRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIFdURk1vdmUodHJhY2tQcml2
YXRlKSkpOwogfQogCi1JbmJhbmREYXRhVGV4dFRyYWNrOjpJbmJhbmREYXRhVGV4dFRyYWNrKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBS
ZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4mJiB0cmFja1ByaXZhdGUpCi0gICAgOiBJbmJh
bmRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCitSZWY8SW5iYW5kRGF0
YVRleHRUcmFjaz4gSW5iYW5kRGF0YVRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlJiB0cmFja1ByaXZhdGUpCiB7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5k
RGF0YVRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogfQogCiBJbmJh
bmREYXRhVGV4dFRyYWNrOjp+SW5iYW5kRGF0YVRleHRUcmFjaygpCiB7CiB9CiAKLXZvaWQgSW5i
YW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29u
c3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRh
dGEsIHVuc2lnbmVkIGxlbmd0aCkKK3ZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1
ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9p
ZCogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIGFkZEN1ZShEYXRhQ3VlOjpjcmVhdGUo
KnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3RhcnQsIGVuZCwgZGF0YSwgbGVuZ3RoKSk7CiB9
CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKIAotdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNr
OjphZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0
YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1S
ZXByZXNlbnRhdGlvbj4gcHJwUGxhdGZvcm1WYWx1ZSwgY29uc3QgU3RyaW5nJiB0eXBlKQordm9p
ZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRp
b24+JiYgcGxhdGZvcm1WYWx1ZSwgY29uc3QgU3RyaW5nJiB0eXBlKQogewotICAgIFJlZlB0cjxT
ZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcGxhdGZvcm1WYWx1ZSA9IHBycFBsYXRm
b3JtVmFsdWU7Ci0gICAgaWYgKG1faW5jb21wbGV0ZUN1ZU1hcC5maW5kKHBsYXRmb3JtVmFsdWUu
Z2V0KCkpICE9IG1faW5jb21wbGV0ZUN1ZU1hcC5lbmQoKSkKKyAgICBpZiAobV9pbmNvbXBsZXRl
Q3VlTWFwLmNvbnRhaW5zKHBsYXRmb3JtVmFsdWUucHRyKCkpKQogICAgICAgICByZXR1cm47CiAK
ICAgICBhdXRvIGN1ZSA9IERhdGFDdWU6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LCBzdGFydCwgZW5kLCBwbGF0Zm9ybVZhbHVlLmNvcHlSZWYoKSwgdHlwZSk7CkBAIC03OCwyNSAr
NzYsMTkgQEAgdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKEluYmFuZFRleHRU
cmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHMKICAgICBhZGRDdWUoV1RGTW92ZShjdWUp
KTsKIH0KIAotdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKEluYmFuZFRl
eHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUm
IGluRW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwcnBQ
bGF0Zm9ybVZhbHVlKQordm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKGNv
bnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgaW5FbmQsIFNlcmlhbGl6ZWRQ
bGF0Zm9ybVJlcHJlc2VudGF0aW9uJiBwbGF0Zm9ybVZhbHVlKQogewotICAgIE1lZGlhVGltZSBl
bmQgPSBpbkVuZDsKLQotICAgIFJlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlv
bj4gcGxhdGZvcm1WYWx1ZSA9IHBycFBsYXRmb3JtVmFsdWU7Ci0gICAgYXV0byBpdGVyID0gbV9p
bmNvbXBsZXRlQ3VlTWFwLmZpbmQocGxhdGZvcm1WYWx1ZS5nZXQoKSk7Ci0gICAgaWYgKGl0ZXIg
PT0gbV9pbmNvbXBsZXRlQ3VlTWFwLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZWZQ
dHI8RGF0YUN1ZT4gY3VlID0gaXRlci0+dmFsdWU7CisgICAgUmVmUHRyPERhdGFDdWU+IGN1ZSA9
IG1faW5jb21wbGV0ZUN1ZU1hcC5nZXQoJnBsYXRmb3JtVmFsdWUpOwogICAgIGlmICghY3VlKQog
ICAgICAgICByZXR1cm47CiAKICAgICBjdWUtPndpbGxDaGFuZ2UoKTsKIAorICAgIE1lZGlhVGlt
ZSBlbmQgPSBpbkVuZDsKICAgICBpZiAoZW5kLmlzUG9zaXRpdmVJbmZpbml0ZSgpICYmIG1lZGlh
RWxlbWVudCgpKQogICAgICAgICBlbmQgPSBtZWRpYUVsZW1lbnQoKS0+ZHVyYXRpb25NZWRpYVRp
bWUoKTsKICAgICBlbHNlCi0gICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUocGxhdGZv
cm1WYWx1ZS5nZXQoKSk7CisgICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUoJnBsYXRm
b3JtVmFsdWUpOwogCiAgICAgTE9HKE1lZGlhLCAiSW5iYW5kRGF0YVRleHRUcmFjazo6dXBkYXRl
RGF0YUN1ZTogd2FzIHN0YXJ0PSVzLCBlbmQ9JXMsIHdpbGwgYmUgc3RhcnQ9JXMsIGVuZD0lc1xu
IiwgdG9TdHJpbmcoY3VlLT5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoY3Vl
LT5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKHN0YXJ0KS51dGY4KCkuZGF0YSgp
LCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5kYXRhKCkpOwogCkBAIC0xMDYsMTQgKzk4LDkgQEAgdm9p
ZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZh
dGUqLCBjb25zdCBNZWRpYVRpbWUKICAgICBjdWUtPmRpZENoYW5nZSgpOwogfQogCi12b2lkIElu
YmFuZERhdGFUZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSos
IGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBycFBsYXRmb3JtVmFsdWUpCit2b2lkIEluYmFuZERh
dGFUZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFU
aW1lJiwgU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24mIHBsYXRmb3JtVmFsdWUpCiB7
Ci0gICAgUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwbGF0Zm9ybVZh
bHVlID0gcHJwUGxhdGZvcm1WYWx1ZTsKLSAgICBhdXRvIGl0ZXIgPSBtX2luY29tcGxldGVDdWVN
YXAuZmluZChwbGF0Zm9ybVZhbHVlLmdldCgpKTsKLSAgICBpZiAoaXRlciA9PSBtX2luY29tcGxl
dGVDdWVNYXAuZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChSZWZQdHI8RGF0YUN1
ZT4gY3VlID0gaXRlci0+dmFsdWUpIHsKKyAgICBpZiAoYXV0byogY3VlID0gbV9pbmNvbXBsZXRl
Q3VlTWFwLmdldCgmcGxhdGZvcm1WYWx1ZSkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5k
RGF0YVRleHRUcmFjazo6cmVtb3ZlRGF0YUN1ZSByZW1vdmluZyBjdWU6IHN0YXJ0PSVzLCBlbmQ9
JXNcbiIsIHRvU3RyaW5nKGN1ZS0+c3RhcnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5n
KGN1ZS0+ZW5kVGltZSgpKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmVtb3ZlQ3VlKCpjdWUp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0
YVRleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRy
YWNrLmgKaW5kZXggMjdhOGRiNjE2OWQwYjQ3NmM1NGQzMmU0ODE0Mjg2MjFkYjJhMzA4My4uNjdh
ZWI2ZDA1MTc0Yjg0YzA3YTUzNmQzOWMyM2FhMTgyMzg3NjRmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKQEAgLTEsNiArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDE0IENhYmxlIFRlbGV2aXNpb24gTGFicyBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMywy
MyArMzMsMjEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGF0YUN1ZTsKLWNsYXNz
IEluYmFuZFRleHRUcmFja1ByaXZhdGU7Ci1jbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNl
bnRhdGlvbjsKIAogY2xhc3MgSW5iYW5kRGF0YVRleHRUcmFjayBmaW5hbCA6IHB1YmxpYyBJbmJh
bmRUZXh0VHJhY2sgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SW5iYW5kRGF0YVRleHRUcmFj
az4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBSZWZQ
dHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4mJik7CisgICAgc3RhdGljIFJlZjxJbmJhbmREYXRh
VGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRleHRUcmFja0NsaWVu
dCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKICAgICB2aXJ0dWFsIH5JbmJhbmREYXRhVGV4
dFRyYWNrKCk7CiAKIHByaXZhdGU6Ci0gICAgSW5iYW5kRGF0YVRleHRUcmFjayhTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUmVmUHRyPEluYmFuZFRleHRUcmFja1By
aXZhdGU+JiYpOworICAgIEluYmFuZERhdGFUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIFRleHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKIAotICAgIHZv
aWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBz
dGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkgZmluYWw7
CisgICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlh
VGltZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpIGZpbmFsOwogCiAjaWYgRU5BQkxFKERB
VEFDVUVfVkFMVUUpCi0gICAgdm9pZCBhZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUq
LCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0
cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4sIGNvbnN0IFN0cmluZyYpIGZpbmFs
OwotICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFs
aXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+KSBmaW5hbDsKLSAgICB2b2lkIHJlbW92ZURhdGFD
dWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0
IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0
aW9uPikgZmluYWw7CisgICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRp
b24+JiYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShjb25z
dCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRm
b3JtUmVwcmVzZW50YXRpb24mKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZURhdGFDdWUoY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9y
bVJlcHJlc2VudGF0aW9uJikgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVtb3ZlQ3Vl
KFRleHRUcmFja0N1ZSYpIGZpbmFsOwogCiAgICAgSGFzaE1hcDxSZWZQdHI8U2VyaWFsaXplZFBs
YXRmb3JtUmVwcmVzZW50YXRpb24+LCBSZWZQdHI8RGF0YUN1ZT4+IG1faW5jb21wbGV0ZUN1ZU1h
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1Rl
eHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0
VHJhY2suY3BwCmluZGV4IDA5MWE1ZDJiMTg1MjYwYjU4ZjY4ZTJmYmNmODliODc2Yzc1NjVjMmUu
Ljk4Njc5YjM2MDM5MWYwNTgwODFmY2U5NTk1ODA3MTQzMjZhY2I0ZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC02NSwxMDIgKzY1LDk5IEBAIHZvaWQgR2VuZXJpY1RleHRUcmFja0N1ZU1hcDo6cmVtb3ZlKFRl
eHRUcmFja0N1ZSYgY3VlKQogICAgICAgICBtX2RhdGFUb0N1ZU1hcC5yZW1vdmUoZGF0YSk7CiB9
CiAKLVJlZjxJbmJhbmRHZW5lcmljVGV4dFRyYWNrPiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBj
bGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkK
K2lubGluZSBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgOiBJbmJhbmRUZXh0VHJh
Y2soY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSW5iYW5kR2VuZXJpY1RleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHBsYXllclByaXZh
dGUpKTsKIH0KIAotSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6SW5iYW5kR2VuZXJpY1RleHRUcmFj
ayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVu
dCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCi0gICAg
OiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCitSZWY8SW5i
YW5kR2VuZXJpY1RleHRUcmFjaz4gSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6Y3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiB7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSW5iYW5kR2VuZXJpY1RleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0
ZSkpOwogfQogCiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp+SW5iYW5kR2VuZXJpY1RleHRUcmFj
aygpCiB7CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6dXBkYXRlQ3VlRnJvbUN1
ZURhdGEoVGV4dFRyYWNrQ3VlR2VuZXJpYyogY3VlLCBHZW5lcmljQ3VlRGF0YSogY3VlRGF0YSkK
K3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6dXBkYXRlQ3VlRnJvbUN1ZURhdGEoVGV4dFRy
YWNrQ3VlR2VuZXJpYyYgY3VlLCBHZW5lcmljQ3VlRGF0YSYgY3VlRGF0YSkKIHsKLSAgICBjdWUt
PndpbGxDaGFuZ2UoKTsKKyAgICBjdWUud2lsbENoYW5nZSgpOwogCi0gICAgY3VlLT5zZXRTdGFy
dFRpbWUoY3VlRGF0YS0+c3RhcnRUaW1lKCkpOwotICAgIE1lZGlhVGltZSBlbmRUaW1lID0gY3Vl
RGF0YS0+ZW5kVGltZSgpOworICAgIGN1ZS5zZXRTdGFydFRpbWUoY3VlRGF0YS5zdGFydFRpbWUo
KSk7CisgICAgTWVkaWFUaW1lIGVuZFRpbWUgPSBjdWVEYXRhLmVuZFRpbWUoKTsKICAgICBpZiAo
ZW5kVGltZS5pc1Bvc2l0aXZlSW5maW5pdGUoKSAmJiBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAg
ZW5kVGltZSA9IG1lZGlhRWxlbWVudCgpLT5kdXJhdGlvbk1lZGlhVGltZSgpOwotICAgIGN1ZS0+
c2V0RW5kVGltZShlbmRUaW1lKTsKLSAgICBjdWUtPnNldFRleHQoY3VlRGF0YS0+Y29udGVudCgp
KTsKLSAgICBjdWUtPnNldElkKGN1ZURhdGEtPmlkKCkpOwotICAgIGN1ZS0+c2V0QmFzZUZvbnRT
aXplUmVsYXRpdmVUb1ZpZGVvSGVpZ2h0KGN1ZURhdGEtPmJhc2VGb250U2l6ZSgpKTsKLSAgICBj
dWUtPnNldEZvbnRTaXplTXVsdGlwbGllcihjdWVEYXRhLT5yZWxhdGl2ZUZvbnRTaXplKCkpOwot
ICAgIGN1ZS0+c2V0Rm9udE5hbWUoY3VlRGF0YS0+Zm9udE5hbWUoKSk7Ci0KLSAgICBpZiAoY3Vl
RGF0YS0+cG9zaXRpb24oKSA+IDApCi0gICAgICAgIGN1ZS0+c2V0UG9zaXRpb24oc3RkOjpyb3Vu
ZChjdWVEYXRhLT5wb3NpdGlvbigpKSk7Ci0gICAgaWYgKGN1ZURhdGEtPmxpbmUoKSA+IDApCi0g
ICAgICAgIGN1ZS0+c2V0TGluZShzdGQ6OnJvdW5kKGN1ZURhdGEtPmxpbmUoKSkpOwotICAgIGlm
IChjdWVEYXRhLT5zaXplKCkgPiAwKQotICAgICAgICBjdWUtPnNldFNpemUoc3RkOjpyb3VuZChj
dWVEYXRhLT5zaXplKCkpKTsKLSAgICBpZiAoY3VlRGF0YS0+YmFja2dyb3VuZENvbG9yKCkuaXNW
YWxpZCgpKQotICAgICAgICBjdWUtPnNldEJhY2tncm91bmRDb2xvcihjdWVEYXRhLT5iYWNrZ3Jv
dW5kQ29sb3IoKS5yZ2IoKSk7Ci0gICAgaWYgKGN1ZURhdGEtPmZvcmVncm91bmRDb2xvcigpLmlz
VmFsaWQoKSkKLSAgICAgICAgY3VlLT5zZXRGb3JlZ3JvdW5kQ29sb3IoY3VlRGF0YS0+Zm9yZWdy
b3VuZENvbG9yKCkucmdiKCkpOwotICAgIGlmIChjdWVEYXRhLT5oaWdobGlnaHRDb2xvcigpLmlz
VmFsaWQoKSkKLSAgICAgICAgY3VlLT5zZXRIaWdobGlnaHRDb2xvcihjdWVEYXRhLT5oaWdobGln
aHRDb2xvcigpLnJnYigpKTsKLQotICAgIGlmIChjdWVEYXRhLT5hbGlnbigpID09IEdlbmVyaWND
dWVEYXRhOjpTdGFydCkKLSAgICAgICAgY3VlLT5zZXRBbGlnbihBU0NJSUxpdGVyYWwoInN0YXJ0
IikpOwotICAgIGVsc2UgaWYgKGN1ZURhdGEtPmFsaWduKCkgPT0gR2VuZXJpY0N1ZURhdGE6Ok1p
ZGRsZSkKLSAgICAgICAgY3VlLT5zZXRBbGlnbihBU0NJSUxpdGVyYWwoIm1pZGRsZSIpKTsKLSAg
ICBlbHNlIGlmIChjdWVEYXRhLT5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpFbmQpCi0gICAg
ICAgIGN1ZS0+c2V0QWxpZ24oQVNDSUlMaXRlcmFsKCJlbmQiKSk7Ci0gICAgY3VlLT5zZXRTbmFw
VG9MaW5lcyhmYWxzZSk7Ci0KLSAgICBjdWUtPmRpZENoYW5nZSgpOwotfQotCi12b2lkIEluYmFu
ZEdlbmVyaWNUZXh0VHJhY2s6OmFkZEdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSog
dHJhY2tQcml2YXRlLCBQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPiBwcnBDdWVEYXRhKQotewot
ICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRl
KTsKLQotICAgIFJlZlB0cjxHZW5lcmljQ3VlRGF0YT4gY3VlRGF0YSA9IHBycEN1ZURhdGE7Ci0g
ICAgaWYgKG1fY3VlTWFwLmZpbmQoKmN1ZURhdGEpKQorICAgIGN1ZS5zZXRFbmRUaW1lKGVuZFRp
bWUpOworICAgIGN1ZS5zZXRUZXh0KGN1ZURhdGEuY29udGVudCgpKTsKKyAgICBjdWUuc2V0SWQo
Y3VlRGF0YS5pZCgpKTsKKyAgICBjdWUuc2V0QmFzZUZvbnRTaXplUmVsYXRpdmVUb1ZpZGVvSGVp
Z2h0KGN1ZURhdGEuYmFzZUZvbnRTaXplKCkpOworICAgIGN1ZS5zZXRGb250U2l6ZU11bHRpcGxp
ZXIoY3VlRGF0YS5yZWxhdGl2ZUZvbnRTaXplKCkpOworICAgIGN1ZS5zZXRGb250TmFtZShjdWVE
YXRhLmZvbnROYW1lKCkpOworCisgICAgaWYgKGN1ZURhdGEucG9zaXRpb24oKSA+IDApCisgICAg
ICAgIGN1ZS5zZXRQb3NpdGlvbihzdGQ6OnJvdW5kKGN1ZURhdGEucG9zaXRpb24oKSkpOworICAg
IGlmIChjdWVEYXRhLmxpbmUoKSA+IDApCisgICAgICAgIGN1ZS5zZXRMaW5lKHN0ZDo6cm91bmQo
Y3VlRGF0YS5saW5lKCkpKTsKKyAgICBpZiAoY3VlRGF0YS5zaXplKCkgPiAwKQorICAgICAgICBj
dWUuc2V0U2l6ZShzdGQ6OnJvdW5kKGN1ZURhdGEuc2l6ZSgpKSk7CisgICAgaWYgKGN1ZURhdGEu
YmFja2dyb3VuZENvbG9yKCkuaXNWYWxpZCgpKQorICAgICAgICBjdWUuc2V0QmFja2dyb3VuZENv
bG9yKGN1ZURhdGEuYmFja2dyb3VuZENvbG9yKCkucmdiKCkpOworICAgIGlmIChjdWVEYXRhLmZv
cmVncm91bmRDb2xvcigpLmlzVmFsaWQoKSkKKyAgICAgICAgY3VlLnNldEZvcmVncm91bmRDb2xv
cihjdWVEYXRhLmZvcmVncm91bmRDb2xvcigpLnJnYigpKTsKKyAgICBpZiAoY3VlRGF0YS5oaWdo
bGlnaHRDb2xvcigpLmlzVmFsaWQoKSkKKyAgICAgICAgY3VlLnNldEhpZ2hsaWdodENvbG9yKGN1
ZURhdGEuaGlnaGxpZ2h0Q29sb3IoKS5yZ2IoKSk7CisKKyAgICBpZiAoY3VlRGF0YS5hbGlnbigp
ID09IEdlbmVyaWNDdWVEYXRhOjpTdGFydCkKKyAgICAgICAgY3VlLnNldEFsaWduKEFTQ0lJTGl0
ZXJhbCgic3RhcnQiKSk7CisgICAgZWxzZSBpZiAoY3VlRGF0YS5hbGlnbigpID09IEdlbmVyaWND
dWVEYXRhOjpNaWRkbGUpCisgICAgICAgIGN1ZS5zZXRBbGlnbihBU0NJSUxpdGVyYWwoIm1pZGRs
ZSIpKTsKKyAgICBlbHNlIGlmIChjdWVEYXRhLmFsaWduKCkgPT0gR2VuZXJpY0N1ZURhdGE6OkVu
ZCkKKyAgICAgICAgY3VlLnNldEFsaWduKEFTQ0lJTGl0ZXJhbCgiZW5kIikpOworICAgIGN1ZS5z
ZXRTbmFwVG9MaW5lcyhmYWxzZSk7CisKKyAgICBjdWUuZGlkQ2hhbmdlKCk7Cit9CisKK3ZvaWQg
SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYgY3Vl
RGF0YSkKK3sKKyAgICBpZiAobV9jdWVNYXAuZmluZChjdWVEYXRhKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgYXV0byBjdWUgPSBUZXh0VHJhY2tDdWVHZW5lcmljOjpjcmVhdGUoKnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgY3VlRGF0YS0+c3RhcnRUaW1lKCksIGN1ZURhdGEtPmVuZFRpbWUo
KSwgY3VlRGF0YS0+Y29udGVudCgpKTsKLSAgICB1cGRhdGVDdWVGcm9tQ3VlRGF0YShjdWUucHRy
KCksIGN1ZURhdGEuZ2V0KCkpOworICAgIGF1dG8gY3VlID0gVGV4dFRyYWNrQ3VlR2VuZXJpYzo6
Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGN1ZURhdGEuc3RhcnRUaW1lKCksIGN1
ZURhdGEuZW5kVGltZSgpLCBjdWVEYXRhLmNvbnRlbnQoKSk7CisgICAgdXBkYXRlQ3VlRnJvbUN1
ZURhdGEoY3VlLmdldCgpLCBjdWVEYXRhKTsKICAgICBpZiAoaGFzQ3VlKGN1ZS5wdHIoKSwgVGV4
dFRyYWNrQ3VlOjpJZ25vcmVEdXJhdGlvbikpIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5k
R2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSBpZ25vcmluZyBhbHJlYWR5IGFkZGVkIGN1
ZTogc3RhcnQ9JXMsIGVuZD0lcywgY29udGVudD1cIiVzXCJcbiIsIHRvU3RyaW5nKGN1ZURhdGEt
PnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWVEYXRhLT5lbmRUaW1lKCkp
LnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAg
ICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSBpZ25v
cmluZyBhbHJlYWR5IGFkZGVkIGN1ZTogc3RhcnQ9JXMsIGVuZD0lcywgY29udGVudD1cIiVzXCJc
biIsIHRvU3RyaW5nKGN1ZURhdGEuc3RhcnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5n
KGN1ZURhdGEuZW5kVGltZSgpKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLmNvbnRlbnQoKS51dGY4
KCkuZGF0YSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIExPRyhNZWRpYSwgIklu
YmFuZEdlbmVyaWNUZXh0VHJhY2s6OmFkZEdlbmVyaWNDdWUgYWRkZWQgY3VlOiBzdGFydD0lLjJm
LCBlbmQ9JS4yZiwgY29udGVudD1cIiVzXCJcbiIsIGN1ZURhdGEtPnN0YXJ0VGltZSgpLnRvRG91
YmxlKCksIGN1ZURhdGEtPmVuZFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLT5jb250ZW50KCku
dXRmOCgpLmRhdGEoKSk7CisgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6
YWRkR2VuZXJpY0N1ZSBhZGRlZCBjdWU6IHN0YXJ0PSUuMmYsIGVuZD0lLjJmLCBjb250ZW50PVwi
JXNcIlxuIiwgY3VlRGF0YS5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLmVuZFRpbWUo
KS50b0RvdWJsZSgpLCBjdWVEYXRhLmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgIGlm
IChjdWVEYXRhLT5zdGF0dXMoKSAhPSBHZW5lcmljQ3VlRGF0YTo6Q29tcGxldGUpCi0gICAgICAg
IG1fY3VlTWFwLmFkZCgqY3VlRGF0YSwgY3VlKTsKKyAgICBpZiAoY3VlRGF0YS5zdGF0dXMoKSAh
PSBHZW5lcmljQ3VlRGF0YTo6Q29tcGxldGUpCisgICAgICAgIG1fY3VlTWFwLmFkZChjdWVEYXRh
LCBjdWUpOwogCiAgICAgYWRkQ3VlKFdURk1vdmUoY3VlKSk7CiB9CiAKLXZvaWQgSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjazo6dXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwg
R2VuZXJpY0N1ZURhdGEqIGN1ZURhdGEpCit2b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnVw
ZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmIGN1ZURhdGEpCiB7Ci0gICAgYXV0byogY3Vl
ID0gbV9jdWVNYXAuZmluZCgqY3VlRGF0YSk7CisgICAgYXV0byogY3VlID0gbV9jdWVNYXAuZmlu
ZChjdWVEYXRhKTsKICAgICBpZiAoIWN1ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRl
Q3VlRnJvbUN1ZURhdGEoY3VlLCBjdWVEYXRhKTsKKyAgICB1cGRhdGVDdWVGcm9tQ3VlRGF0YSgq
Y3VlLCBjdWVEYXRhKTsKIAotICAgIGlmIChjdWVEYXRhLT5zdGF0dXMoKSA9PSBHZW5lcmljQ3Vl
RGF0YTo6Q29tcGxldGUpCi0gICAgICAgIG1fY3VlTWFwLnJlbW92ZSgqY3VlRGF0YSk7CisgICAg
aWYgKGN1ZURhdGEuc3RhdHVzKCkgPT0gR2VuZXJpY0N1ZURhdGE6OkNvbXBsZXRlKQorICAgICAg
ICBtX2N1ZU1hcC5yZW1vdmUoY3VlRGF0YSk7CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRU
cmFjazo6cmVtb3ZlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1
ZURhdGEqIGN1ZURhdGEpCit2b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVy
aWNDdWUoR2VuZXJpY0N1ZURhdGEmIGN1ZURhdGEpCiB7Ci0gICAgYXV0byogY3VlID0gbV9jdWVN
YXAuZmluZCgqY3VlRGF0YSk7CisgICAgYXV0byogY3VlID0gbV9jdWVNYXAuZmluZChjdWVEYXRh
KTsKICAgICBpZiAoY3VlKSB7Ci0gICAgICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0
VHJhY2s6OnJlbW92ZUdlbmVyaWNDdWUgcmVtb3ZpbmcgY3VlOiBzdGFydD0lcywgZW5kPSVzLCBj
b250ZW50PVwiJXNcIlxuIiwgIHRvU3RyaW5nKGN1ZURhdGEtPnN0YXJ0VGltZSgpKS51dGY4KCku
ZGF0YSgpLCB0b1N0cmluZyhjdWVEYXRhLT5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURh
dGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5k
R2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1ZSByZW1vdmluZyBjdWU6IHN0YXJ0PSVz
LCBlbmQ9JXMsIGNvbnRlbnQ9XCIlc1wiXG4iLCAgdG9TdHJpbmcoY3VlRGF0YS5zdGFydFRpbWUo
KSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoY3VlRGF0YS5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRh
KCksIGN1ZURhdGEuY29udGVudCgpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZW1vdmVDdWUo
KmN1ZSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1Rl
eHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1ZSBVTkFCTEUgdG8gZmluZCBjdWU6IHN0YXJ0PSUuMmYs
IGVuZD0lLjJmLCBjb250ZW50PVwiJXNcIlxuIiwgY3VlRGF0YS0+c3RhcnRUaW1lKCkudG9Eb3Vi
bGUoKSwgY3VlRGF0YS0+ZW5kVGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEtPmNvbnRlbnQoKS51
dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFj
azo6cmVtb3ZlR2VuZXJpY0N1ZSBVTkFCTEUgdG8gZmluZCBjdWU6IHN0YXJ0PSUuMmYsIGVuZD0l
LjJmLCBjb250ZW50PVwiJXNcIlxuIiwgY3VlRGF0YS5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBj
dWVEYXRhLmVuZFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLmNvbnRlbnQoKS51dGY4KCkuZGF0
YSgpKTsKICAgICB9CiB9CiAKQEAgLTE3OSwxNSArMTc2LDEzIEBAIFdlYlZUVFBhcnNlciYgSW5i
YW5kR2VuZXJpY1RleHRUcmFjazo6cGFyc2VyKCkKICAgICByZXR1cm4gKm1fd2ViVlRUUGFyc2Vy
OwogfQogCi12b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3VlRGF0YShJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIGNvbnN0IElTT1dlYlZUVEN1ZSYg
Y3VlRGF0YSkKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRh
KGNvbnN0IElTT1dlYlZUVEN1ZSYgY3VlRGF0YSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNr
UHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgcGFyc2VyKCkucGFyc2VD
dWVEYXRhKGN1ZURhdGEpOwogfQogCi12b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnBhcnNl
V2ViVlRURmlsZUhlYWRlcihJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIFN0
cmluZyYmIGhlYWRlcikKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cGFyc2VXZWJWVFRG
aWxlSGVhZGVyKFN0cmluZyYmIGhlYWRlcikKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJp
dmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgcGFyc2VyKCkucGFyc2VGaWxl
SGVhZGVyKFdURk1vdmUoaGVhZGVyKSk7CiB9CiAKQEAgLTIxNCw3ICsyMDksNyBAQCB2b2lkIElu
YmFuZEdlbmVyaWNUZXh0VHJhY2s6Om5ld1JlZ2lvbnNQYXJzZWQoKQogCiAgICAgZm9yIChhdXRv
JiByZWdpb24gOiBuZXdSZWdpb25zKSB7CiAgICAgICAgIHJlZ2lvbi0+c2V0VHJhY2sodGhpcyk7
Ci0gICAgICAgIHJlZ2lvbnMoKS0+YWRkKHJlZ2lvbik7CisgICAgICAgIHJlZ2lvbnMoKS0+YWRk
KHJlZ2lvbi5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmgKaW5kZXggMWMzNDhiMmRh
NTUxMDNlYmJmY2E4NzhkNDBiN2Y5MDc4OWJkNDQ2My4uZTVmZWIyNTRiYmUyZjlhM2JmMjY4ODVm
YzhmM2QyYWJlZGQ3NWI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9J
bmJhbmRHZW5lcmljVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9J
bmJhbmRHZW5lcmljVGV4dFRyYWNrLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEyLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw5ICszMyw2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2YXRl
OwotCiBjbGFzcyBHZW5lcmljVGV4dFRyYWNrQ3VlTWFwIHsKIHB1YmxpYzoKICAgICB2b2lkIGFk
ZChHZW5lcmljQ3VlRGF0YSYsIFRleHRUcmFja0N1ZUdlbmVyaWMmKTsKQEAgLTU2LDIzICs1Mywy
MiBAQCBwcml2YXRlOgogCiBjbGFzcyBJbmJhbmRHZW5lcmljVGV4dFRyYWNrIGZpbmFsIDogcHVi
bGljIEluYmFuZFRleHRUcmFjaywgcHJpdmF0ZSBXZWJWVFRQYXJzZXJDbGllbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8SW5iYW5kR2VuZXJpY1RleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRleHRU
cmFja1ByaXZhdGU+KTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZEdlbmVyaWNUZXh0VHJhY2s+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSYpOwogICAgIHZpcnR1YWwgfkluYmFuZEdlbmVyaWNUZXh0VHJhY2soKTsK
IAogcHJpdmF0ZToKLSAgICBJbmJhbmRHZW5lcmljVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZh
dGU+KTsKKyAgICBJbmJhbmRHZW5lcmljVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CiAKLSAgICB2b2lk
IGFkZEdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFBhc3NSZWZQdHI8R2VuZXJp
Y0N1ZURhdGE+KSBmaW5hbDsKLSAgICB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgZmluYWw7Ci0gICAgdm9pZCByZW1vdmVHZW5l
cmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBHZW5lcmljQ3VlRGF0YSopIGZpbmFsOwor
ICAgIHZvaWQgYWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpIGZpbmFsOworICAgIHZvaWQg
dXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpIGZpbmFsOworICAgIHZvaWQgcmVtb3Zl
R2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHJlbW92ZUN1ZShUZXh0VHJhY2tDdWUmKSBmaW5hbDsKIAotICAgIFBhc3NSZWZQdHI8VGV4dFRy
YWNrQ3VlR2VuZXJpYz4gY3JlYXRlQ3VlKFBhc3NSZWZQdHI8R2VuZXJpY0N1ZURhdGE+KTsKLSAg
ICB2b2lkIHVwZGF0ZUN1ZUZyb21DdWVEYXRhKFRleHRUcmFja0N1ZUdlbmVyaWMqLCBHZW5lcmlj
Q3VlRGF0YSopOworICAgIHZvaWQgdXBkYXRlQ3VlRnJvbUN1ZURhdGEoVGV4dFRyYWNrQ3VlR2Vu
ZXJpYyYsIEdlbmVyaWNDdWVEYXRhJik7CiAKICAgICBXZWJWVFRQYXJzZXImIHBhcnNlcigpOwot
ICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25z
dCBJU09XZWJWVFRDdWUmKSBmaW5hbDsKLSAgICB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgU3RyaW5nJiYpIGZpbmFsOworICAgIHZvaWQgcGFyc2VX
ZWJWVFRDdWVEYXRhKGNvbnN0IElTT1dlYlZUVEN1ZSYpIGZpbmFsOworICAgIHZvaWQgcGFyc2VX
ZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmKSBmaW5hbDsKIAogICAgIHZvaWQgbmV3Q3Vlc1BhcnNl
ZCgpIGZpbmFsOwogICAgIHZvaWQgbmV3UmVnaW9uc1BhcnNlZCgpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCmluZGV4IGYyZWVlYWUwZmMw
MDk0ZTQyOGE4N2E2NWQxODMxN2QzY2ZmNDQwNzkuLmJkNjVlNTQ4YTg3NjIyOTBhNTEwZDNkN2Y5
MmMxYWFiMTY5NDkyZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRl
eHRUcmFjay5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI0LDQzICsyNCwzNCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
IAotI2luY2x1ZGUgIkluYmFuZFRleHRUcmFjay5oIgotCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIK
LSNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNs
dWRlICJJbmJhbmREYXRhVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiSW5iYW5kR2VuZXJpY1RleHRU
cmFjay5oIgogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJJ
bmJhbmRXZWJWVFRUZXh0VHJhY2suaCIKLSNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAi
VGV4dFRyYWNrQ3VlTGlzdC5oIgotI2luY2x1ZGUgPG1hdGguaD4KLSNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxJbmJhbmRU
ZXh0VHJhY2s+IEluYmFuZFRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsCi0gICAgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQorUmVmPEluYmFuZFRleHRUcmFjaz4gSW5i
YW5kVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4
dFRyYWNrQ2xpZW50JiBjbGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0
ZSkKIHsKLSAgICBzd2l0Y2ggKHRyYWNrUHJpdmF0ZS0+Y3VlRm9ybWF0KCkpIHsKKyAgICBzd2l0
Y2ggKHRyYWNrUHJpdmF0ZS5jdWVGb3JtYXQoKSkgewogICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZTo6RGF0YToKICAgICAgICAgcmV0dXJuIEluYmFuZERhdGFUZXh0VHJhY2s6OmNyZWF0
ZShjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSk7CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlOjpHZW5lcmljOgogICAgICAgICByZXR1cm4gSW5iYW5kR2VuZXJpY1RleHRUcmFj
azo6Y3JlYXRlKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKTsKICAgICBjYXNlIEluYmFu
ZFRleHRUcmFja1ByaXZhdGU6OldlYlZUVDoKICAgICAgICAgcmV0dXJuIEluYmFuZFdlYlZUVFRl
eHRUcmFjazo6Y3JlYXRlKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKTsKLSAgICBkZWZh
dWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBJbmJhbmREYXRhVGV4
dFRyYWNrOjpjcmVhdGUoY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpOwogfQogCi1JbmJh
bmRUZXh0VHJhY2s6OkluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlPiB0cmFja1ByaXZhdGUpCi0gICAgOiBUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBl
bXB0eUF0b20sIHRyYWNrUHJpdmF0ZS0+aWQoKSwgdHJhY2tQcml2YXRlLT5sYWJlbCgpLCB0cmFj
a1ByaXZhdGUtPmxhbmd1YWdlKCksIEluQmFuZCkKK0luYmFuZFRleHRUcmFjazo6SW5iYW5kVGV4
dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYg
Y2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgOiBUZXh0
VHJhY2soJmNvbnRleHQsICZjbGllbnQsIGVtcHR5QXRvbSwgdHJhY2tQcml2YXRlLmlkKCksIHRy
YWNrUHJpdmF0ZS5sYWJlbCgpLCB0cmFja1ByaXZhdGUubGFuZ3VhZ2UoKSwgSW5CYW5kKQogICAg
ICwgbV9wcml2YXRlKHRyYWNrUHJpdmF0ZSkKIHsKICAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0
aGlzKTsKQEAgLTcyLDEyICs2Myw5IEBAIEluYmFuZFRleHRUcmFjazo6fkluYmFuZFRleHRUcmFj
aygpCiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiB9CiAKLXZvaWQgSW5iYW5k
VGV4dFRyYWNrOjpzZXRQcml2YXRlKFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4g
dHJhY2tQcml2YXRlKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6OnNldFByaXZhdGUoSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwot
ICAgIEFTU0VSVCh0cmFja1ByaXZhdGUpOwotCi0gICAgaWYgKG1fcHJpdmF0ZSA9PSB0cmFja1By
aXZhdGUpCisgICAgaWYgKG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQogICAgICAg
ICByZXR1cm47CiAKICAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKQEAgLTExNSw4
MCArMTAzLDYwIEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrOjpzZXRNb2RlSW50ZXJuYWwoTW9kZSBt
b2RlKQogCiBib29sIEluYmFuZFRleHRUcmFjazo6aXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0CiB7
Ci0gICAgaWYgKCFtX3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIHJldHVy
biBtX3ByaXZhdGUtPmlzQ2xvc2VkQ2FwdGlvbnMoKTsKIH0KIAogYm9vbCBJbmJhbmRUZXh0VHJh
Y2s6OmlzU0RIKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPmlzU0RIKCk7CiB9CiAKIGJvb2wg
SW5iYW5kVGV4dFRyYWNrOjpjb250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMoKSBjb25zdAogewot
ICAgIGlmICghbV9wcml2YXRlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCiAgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+Y29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCk7CiB9CiAKIGJvb2wg
SW5iYW5kVGV4dFRyYWNrOjppc01haW5Qcm9ncmFtQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgaWYg
KCFtX3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKICAgICByZXR1cm4gbV9w
cml2YXRlLT5pc01haW5Qcm9ncmFtQ29udGVudCgpOwogfQogCiBib29sIEluYmFuZFRleHRUcmFj
azo6aXNFYXN5VG9SZWFkKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPmlzRWFzeVRvUmVhZCgp
OwogfQogICAgIAogc2l6ZV90IEluYmFuZFRleHRUcmFjazo6aW5iYW5kVHJhY2tJbmRleCgpCiB7
Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dHJhY2tJbmRl
eCgpOwogfQogCiBBdG9taWNTdHJpbmcgSW5iYW5kVGV4dFRyYWNrOjppbkJhbmRNZXRhZGF0YVRy
YWNrRGlzcGF0Y2hUeXBlKCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKICAgICBy
ZXR1cm4gbV9wcml2YXRlLT5pbkJhbmRNZXRhZGF0YVRyYWNrRGlzcGF0Y2hUeXBlKCk7CiB9CiAK
LXZvaWQgSW5iYW5kVGV4dFRyYWNrOjppZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQ
cml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6Omlk
Q2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJh
Y2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRJZChpZCk7CiB9
CiAKLXZvaWQgSW5iYW5kVGV4dFRyYWNrOjpsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSog
dHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQordm9pZCBJbmJhbmRUZXh0
VHJhY2s6OmxhYmVsQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQogewotICAgIEFT
U0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAg
ICBzZXRMYWJlbChsYWJlbCk7CiB9CiAKLXZvaWQgSW5iYW5kVGV4dFRyYWNrOjpsYW5ndWFnZUNo
YW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcm
IGxhbmd1YWdlKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6Omxhbmd1YWdlQ2hhbmdlZChjb25zdCBB
dG9taWNTdHJpbmcmIGxhbmd1YWdlKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRl
LCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRMYW5ndWFnZShsYW5ndWFnZSk7
CiB9CiAKLXZvaWQgSW5iYW5kVGV4dFRyYWNrOjp3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2Uq
IHRyYWNrUHJpdmF0ZSkKK3ZvaWQgSW5iYW5kVGV4dFRyYWNrOjp3aWxsUmVtb3ZlKCkKIHsKLSAg
ICBpZiAoIW1lZGlhRWxlbWVudCgpKQorICAgIGF1dG8qIGVsZW1lbnQgPSBtZWRpYUVsZW1lbnQo
KTsKKyAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlRfVU5VU0VE
KHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7Ci0gICAgbWVkaWFFbGVt
ZW50KCktPnJlbW92ZVRleHRUcmFjaygqdGhpcyk7CisgICAgZWxlbWVudC0+cmVtb3ZlVGV4dFRy
YWNrKCp0aGlzKTsKIH0KIAogdm9pZCBJbmJhbmRUZXh0VHJhY2s6OnVwZGF0ZUtpbmRGcm9tUHJp
dmF0ZSgpCkBAIC0xOTYsMzQgKzE2NCwzMCBAQCB2b2lkIEluYmFuZFRleHRUcmFjazo6dXBkYXRl
S2luZEZyb21Qcml2YXRlKCkKICAgICBzd2l0Y2ggKG1fcHJpdmF0ZS0+a2luZCgpKSB7CiAgICAg
Y2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpTdWJ0aXRsZXM6CiAgICAgICAgIHNldEtpbmQo
S2luZDo6U3VidGl0bGVzKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBj
YXNlIEluYmFuZFRleHRUcmFja1ByaXZhdGU6OkNhcHRpb25zOgogICAgICAgICBzZXRLaW5kKEtp
bmQ6OkNhcHRpb25zKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNl
IEluYmFuZFRleHRUcmFja1ByaXZhdGU6OkRlc2NyaXB0aW9uczoKICAgICAgICAgc2V0S2luZChL
aW5kOjpEZXNjcmlwdGlvbnMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAg
IGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6Q2hhcHRlcnM6CiAgICAgICAgIHNldEtpbmQo
S2luZDo6Q2hhcHRlcnMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6TWV0YWRhdGE6CiAgICAgICAgIHNldEtpbmQoS2lu
ZDo6TWV0YWRhdGEpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6Rm9yY2VkOgogICAgICAgICBzZXRLaW5kKEtpbmQ6OkZv
cmNlZCk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlOjpOb25lOgotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CiAKIE1lZGlhVGltZSBJbmJhbmRUZXh0VHJhY2s6OnN0YXJ0VGltZVZhcmlhbmNlKCkg
Y29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6
emVyb1RpbWUoKTsKLSAgICAKICAgICByZXR1cm4gbV9wcml2YXRlLT5zdGFydFRpbWVWYXJpYW5j
ZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRl
eHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suaApp
bmRleCA5Y2QwMjdjMzZjODViMGFhNTE1NjdlZTY5NmUxMjY2ZDA4NDVmMzNlLi42Y2YyNjg3YmI4
NmU5NTQ5YmMxZjE2NTU1M2Q5MjUwYjhjNTdlZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svSW5iYW5kVGV4dFRyYWNrLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMTUgKzI5LDEyIEBACiAKICNpbmNsdWRl
ICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrLmgi
Ci0jaW5jbHVkZSAiVGV4dFRyYWNrQ3VlR2VuZXJpYy5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KLSNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgSW5iYW5kVGV4dFRyYWNrIDogcHVibGljIFRleHRUcmFjaywgcHVibGljIEluYmFuZFRl
eHRUcmFja1ByaXZhdGVDbGllbnQgeworY2xhc3MgSW5iYW5kVGV4dFRyYWNrIDogcHVibGljIFRl
eHRUcmFjaywgcHJpdmF0ZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlPik7CisgICAgc3RhdGljIFJlZjxJbmJhbmRUZXh0VHJhY2s+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSYpOwogICAgIHZpcnR1YWwgfkluYmFuZFRleHRUcmFjaygpOwogCiAgICAgYm9vbCBpc0Ns
b3NlZENhcHRpb25zKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC01MCwzOCArNDcsMzggQEAgcHVibGlj
OgogCiAgICAgQXRvbWljU3RyaW5nIGluQmFuZE1ldGFkYXRhVHJhY2tEaXNwYXRjaFR5cGUoKSBj
b25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgc2V0UHJpdmF0ZShQYXNzUmVmUHRyPEluYmFuZFRl
eHRUcmFja1ByaXZhdGU+KTsKKyAgICB2b2lkIHNldFByaXZhdGUoSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSYpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgSW5iYW5kVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1By
aXZhdGU+KTsKKyAgICBJbmJhbmRUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRl
eHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKIAogICAgIHZvaWQgc2V0
TW9kZUludGVybmFsKE1vZGUpOwogICAgIHZvaWQgdXBkYXRlS2luZEZyb21Qcml2YXRlKCk7CiAK
LSAgICBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOworICAgIFJlZjxJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlPiBtX3ByaXZhdGU7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBp
c0luYmFuZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2b2lkIGlkQ2hhbmdl
ZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYp
IG92ZXJyaWRlOwotICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBj
b25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxSZW1vdmUoVHJhY2tQ
cml2YXRlQmFzZSopIG92ZXJyaWRlOworICAgIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21pY1N0
cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgbGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmlu
ZyYpIG92ZXJyaWRlOworICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmlu
ZyYpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbFJlbW92ZSgpIG92ZXJyaWRlOwogCi0gICAgdm9p
ZCBhZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmLCBj
b25zdCBNZWRpYVRpbWUmLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpIG92ZXJyaWRlIHsgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIGFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwg
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3Qgdm9pZCosIHVuc2lnbmVkKSBvdmVycmlkZSB7IEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLSAgICB2b2lk
IGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYsIGNv
bnN0IE1lZGlhVGltZSYsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRp
b24+LCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0g
ICAgdm9pZCB1cGRhdGVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRp
YVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJl
cHJlc2VudGF0aW9uPikgb3ZlcnJpZGUgIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2
b2lkIHJlbW92ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGlt
ZSYsIGNvbnN0IE1lZGlhVGltZSYsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVz
ZW50YXRpb24+KSBvdmVycmlkZSAgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQg
YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBSZWY8U2VyaWFs
aXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+JiYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIHVwZGF0ZURhdGFDdWUoY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRp
b24mKSBvdmVycmlkZSAgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgcmVtb3Zl
RGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBTZXJpYWxpemVkUGxh
dGZvcm1SZXByZXNlbnRhdGlvbiYpIG92ZXJyaWRlICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CiAjZW5kaWYKIAotICAgIHZvaWQgYWRkR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRl
KiwgUGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0YT4pIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KLSAgICB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSosIEdlbmVyaWNDdWVEYXRhKikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQot
ICAgIHZvaWQgcmVtb3ZlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJp
Y0N1ZURhdGEqKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBh
ZGRHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQorICAgIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpIG92ZXJy
aWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUo
R2VuZXJpY0N1ZURhdGEmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKLSAg
ICB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgU3Ry
aW5nJiYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2b2lkIHBhcnNl
V2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgY2hhciosIHVuc2ln
bmVkKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdm9pZCBwYXJzZVdl
YlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IElTT1dlYlZUVEN1ZSYp
IG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIHBhcnNlV2ViVlRU
RmlsZUhlYWRlcihTdHJpbmcmJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQor
ICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCkgb3ZlcnJp
ZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRh
KGNvbnN0IElTT1dlYlZUVEN1ZSYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
IAogICAgIE1lZGlhVGltZSBzdGFydFRpbWVWYXJpYW5jZSgpIGNvbnN0IG92ZXJyaWRlOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRy
YWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNr
LmNwcAppbmRleCBlNTQwZTQ5NDFhZWNhODZjMGZmZWE3NTM0YjdhYTIyNmIxMmNjMmE2Li5kMGZh
ZTRlOWI4NTZhMDQxMmIzMjY4N2M3NzJlZTM2ZmRmMTk0NGY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwy
NyArMjQsMjYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5iYW5k
V2ViVlRUVGV4dFRyYWNrLmgiCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbmNsdWRl
ICJJbmJhbmRXZWJWVFRUZXh0VHJhY2suaCIKLQogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1By
aXZhdGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKKyNpbmNsdWRlICJWVFRDdWUuaCIKICNpbmNsdWRlICJWVFRSZWdpb25MaXN0LmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxJ
bmJhbmRUZXh0VHJhY2s+IEluYmFuZFdlYlZUVFRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRy
PEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHBsYXllclByaXZhdGUpCitpbmxpbmUgSW5iYW5kV2Vi
VlRUVGV4dFRyYWNrOjpJbmJhbmRXZWJWVFRUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50JiBjbGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZh
dGUmIHRyYWNrUHJpdmF0ZSkKKyAgICA6IEluYmFuZFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQs
IHRyYWNrUHJpdmF0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbmJhbmRXZWJWVFRU
ZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7CiB9CiAKLUluYmFuZFdl
YlZUVFRleHRUcmFjazo6SW5iYW5kV2ViVlRUVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPEluYmFuZFRl
eHRUcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKLSAgICA6IEluYmFuZFRleHRUcmFjayhjb250
ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkKK1JlZjxJbmJhbmRUZXh0VHJhY2s+IEluYmFuZFdl
YlZUVFRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRl
eHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZh
dGUpCiB7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kV2ViVlRUVGV4dFRyYWNrKGNv
bnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKSk7CiB9CiAKIEluYmFuZFdlYlZUVFRleHRUcmFj
azo6fkluYmFuZFdlYlZUVFRleHRUcmFjaygpCkBAIC01OCwxNSArNTcsMTMgQEAgV2ViVlRUUGFy
c2VyJiBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBhcnNlcigpCiAgICAgcmV0dXJuICptX3dlYlZU
VFBhcnNlcjsKIH0KIAotdm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3Vl
RGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIGNvbnN0IGNoYXIqIGRh
dGEsIHVuc2lnbmVkIGxlbmd0aCkKK3ZvaWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpwYXJzZVdl
YlZUVEN1ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogewotICAgIEFT
U0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAg
ICBwYXJzZXIoKS5wYXJzZUJ5dGVzKGRhdGEsIGxlbmd0aCk7CiB9CiAKLXZvaWQgSW5iYW5kV2Vi
VlRUVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSog
dHJhY2tQcml2YXRlLCBjb25zdCBJU09XZWJWVFRDdWUmIGN1ZURhdGEpCit2b2lkIEluYmFuZFdl
YlZUVFRleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IElTT1dlYlZUVEN1ZSYgY3Vl
RGF0YSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09
IG1fcHJpdmF0ZSk7CiAgICAgcGFyc2VyKCkucGFyc2VDdWVEYXRhKGN1ZURhdGEpOwogfQogCkBA
IC03NCwxMCArNzEsOCBAQCB2b2lkIEluYmFuZFdlYlZUVFRleHRUcmFjazo6bmV3Q3Vlc1BhcnNl
ZCgpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJWVFRDdWVEYXRhPj4gY3VlczsKICAgICBwYXJz
ZXIoKS5nZXROZXdDdWVzKGN1ZXMpOwotCiAgICAgZm9yIChhdXRvJiBjdWVEYXRhIDogY3Vlcykg
ewogICAgICAgICBhdXRvIHZ0dEN1ZSA9IFZUVEN1ZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksICpjdWVEYXRhKTsKLQogICAgICAgICBpZiAoaGFzQ3VlKHZ0dEN1ZS5wdHIoKSwg
VGV4dFRyYWNrQ3VlOjpJZ25vcmVEdXJhdGlvbikpIHsKICAgICAgICAgICAgIExPRyhNZWRpYSwg
IkluYmFuZFdlYlZUVFRleHRUcmFjazo6bmV3Q3Vlc1BhcnNlZCBpZ25vcmluZyBhbHJlYWR5IGFk
ZGVkIGN1ZTogc3RhcnQ9JS4yZiwgZW5kPSUuMmYsIGNvbnRlbnQ9XCIlc1wiXG4iLCB2dHRDdWUt
PnN0YXJ0VGltZSgpLCB2dHRDdWUtPmVuZFRpbWUoKSwgdnR0Q3VlLT50ZXh0KCkudXRmOCgpLmRh
dGEoKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC05MCwxMyArODUsMTIgQEAgdm9pZCBJbmJh
bmRXZWJWVFRUZXh0VHJhY2s6Om5ld1JlZ2lvbnNQYXJzZWQoKQogewogICAgIFZlY3RvcjxSZWZQ
dHI8VlRUUmVnaW9uPj4gbmV3UmVnaW9uczsKICAgICBwYXJzZXIoKS5nZXROZXdSZWdpb25zKG5l
d1JlZ2lvbnMpOwotCiAgICAgZm9yIChhdXRvJiByZWdpb24gOiBuZXdSZWdpb25zKSB7CiAgICAg
ICAgIHJlZ2lvbi0+c2V0VHJhY2sodGhpcyk7Ci0gICAgICAgIHJlZ2lvbnMoKS0+YWRkKHJlZ2lv
bik7CisgICAgICAgIHJlZ2lvbnMoKS0+YWRkKHJlZ2lvbi5yZWxlYXNlTm9uTnVsbCgpKTsKICAg
ICB9CiB9Ci0gICAgCisKIHZvaWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpmaWxlRmFpbGVkVG9Q
YXJzZSgpCiB7CiAgICAgTE9HKE1lZGlhLCAiRXJyb3IgcGFyc2luZyBXZWJWVFQgc3RyZWFtLiIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0
VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNr
LmgKaW5kZXggOGNjNzdhOWNlZGEzYzM3YmIxZjZlMWQ1YTU5M2QyNjNjM2QyNDllZi4uMjFkOTEz
NDY5NzVhOWE2ZTc5NzliOGFjMDM5ZjRhNjNjM2U4MTRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDI1ICszMCwy
NCBAQAogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFjay5oIgogI2luY2x1ZGUgIldlYlZUVFBhcnNl
ci5oIgogI2luY2x1ZGUgPG1lbW9yeT4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5iYW5kV2ViVlRUVGV4dFRyYWNrIGZpbmFsIDogcHVi
bGljIEluYmFuZFRleHRUcmFjaywgcHJpdmF0ZSBXZWJWVFRQYXJzZXJDbGllbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZT4pOworICAgIHN0YXRpYyBSZWY8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIFRleHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUm
KTsKICAgICB2aXJ0dWFsIH5JbmJhbmRXZWJWVFRUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKLSAg
ICBJbmJhbmRXZWJWVFRUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFj
a0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIEluYmFu
ZFdlYlZUVFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50
JiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogCiAgICAgV2ViVlRUUGFyc2VyJiBwYXJzZXIo
KTsKLSAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwg
Y29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBvdmVycmlkZTsKLSAgICB2b2lkIHBh
cnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNPV2ViVlRU
Q3VlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgY2hhciog
ZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBmaW5hbDsKKyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0
YShjb25zdCBJU09XZWJWVFRDdWUmKSBmaW5hbDsKIAotICAgIHZvaWQgbmV3Q3Vlc1BhcnNlZCgp
IG92ZXJyaWRlOwotICAgIHZvaWQgbmV3UmVnaW9uc1BhcnNlZCgpIG92ZXJyaWRlOwotICAgIHZv
aWQgZmlsZUZhaWxlZFRvUGFyc2UoKSBvdmVycmlkZTsKKyAgICB2b2lkIG5ld0N1ZXNQYXJzZWQo
KSBmaW5hbDsKKyAgICB2b2lkIG5ld1JlZ2lvbnNQYXJzZWQoKSBmaW5hbDsKKyAgICB2b2lkIGZp
bGVGYWlsZWRUb1BhcnNlKCkgZmluYWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViVlRUUGFy
c2VyPiBtX3dlYlZUVFBhcnNlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
TG9hZGFibGVUZXh0VHJhY2suY3BwCmluZGV4IDIxMGY2YTlkZjVhYzc3MTc1YTk4MTJhYzA1MTA0
MjIzMmEzNDBmMzMuLjU1MjhkZTE3YjI5ZjRiZTBjOTY4Mzg0MzgyOTNlNzM2ODZlODVjZDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3BwCkBA
IC0xLDUgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBHb29nbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yNCwxNCArMjUsMTEgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiTG9hZGFibGVUZXh0VHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
IAotI2luY2x1ZGUgIkxvYWRhYmxlVGV4dFRyYWNrLmgiCi0KLSNpbmNsdWRlICJFdmVudC5oIgog
I2luY2x1ZGUgIkhUTUxUcmFja0VsZW1lbnQuaCIKLSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlTGlzdC5oIgogI2luY2x1ZGUgIlZUVFJl
Z2lvbkxpc3QuaCIKIApAQCAtOTYsMTEgKzk0LDExIEBAIHZvaWQgTG9hZGFibGVUZXh0VHJhY2s6
Om5ld0N1ZXNBdmFpbGFibGUoVGV4dFRyYWNrTG9hZGVyKiBsb2FkZXIpCiAKICAgICBmb3IgKGF1
dG8mIG5ld0N1ZSA6IG5ld0N1ZXMpIHsKICAgICAgICAgbmV3Q3VlLT5zZXRUcmFjayh0aGlzKTsK
LSAgICAgICAgbV9jdWVzLT5hZGQobmV3Q3VlKTsKKyAgICAgICAgbV9jdWVzLT5hZGQobmV3Q3Vl
LnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KIAogICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAg
Y2xpZW50KCktPnRleHRUcmFja0FkZEN1ZXModGhpcywgbV9jdWVzLmdldCgpKTsKKyAgICAgICAg
Y2xpZW50KCktPnRleHRUcmFja0FkZEN1ZXMoKnRoaXMsICptX2N1ZXMpOwogfQogCiB2b2lkIExv
YWRhYmxlVGV4dFRyYWNrOjpjdWVMb2FkaW5nQ29tcGxldGVkKFRleHRUcmFja0xvYWRlciogbG9h
ZGVyLCBib29sIGxvYWRpbmdGYWlsZWQpCkBAIC0xMjIsNyArMTIwLDcgQEAgdm9pZCBMb2FkYWJs
ZVRleHRUcmFjazo6bmV3UmVnaW9uc0F2YWlsYWJsZShUZXh0VHJhY2tMb2FkZXIqIGxvYWRlcikK
IAogICAgIGZvciAoYXV0byYgbmV3UmVnaW9uIDogbmV3UmVnaW9ucykgewogICAgICAgICBuZXdS
ZWdpb24tPnNldFRyYWNrKHRoaXMpOwotICAgICAgICByZWdpb25zKCktPmFkZChuZXdSZWdpb24p
OworICAgICAgICByZWdpb25zKCktPmFkZChuZXdSZWdpb24ucmVsZWFzZU5vbk51bGwoKSk7CiAg
ICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxl
VGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNr
LmgKaW5kZXggMDEwMjBiMGI0Y2JmZjEzOTE0YmU3MmEwOTE2MjkyNmI2Yjg4ZDM2MS4uYmE5Yzc2
ZmIyYzM1OGRhYjg5ZWY1ODE2MGVkMTAxZDM2NzU3NzU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMTIgKzMwLDEwIEBACiAKICNpbmNs
dWRlICJUZXh0VHJhY2suaCIKICNpbmNsdWRlICJUZXh0VHJhY2tMb2FkZXIuaCIKLSNpbmNsdWRl
IDx3dGYvVHlwZUNhc3RzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTFRy
YWNrRWxlbWVudDsKLWNsYXNzIExvYWRhYmxlVGV4dFRyYWNrOwogCiBjbGFzcyBMb2FkYWJsZVRl
eHRUcmFjayBmaW5hbCA6IHB1YmxpYyBUZXh0VHJhY2ssIHByaXZhdGUgVGV4dFRyYWNrTG9hZGVy
Q2xpZW50IHsKIHB1YmxpYzoKQEAgLTQ5LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIEhUTUxUcmFj
a0VsZW1lbnQqIHRyYWNrRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tFbGVtZW50OyB9
CiAgICAgdm9pZCBjbGVhckVsZW1lbnQoKSB7IG1fdHJhY2tFbGVtZW50ID0gbnVsbHB0cjsgfQog
Ci0gICAgdm9pZCBzZXRJc0RlZmF1bHQoYm9vbCBpc0RlZmF1bHQpIGZpbmFsICB7IG1faXNEZWZh
dWx0ID0gaXNEZWZhdWx0OyB9CisgICAgdm9pZCBzZXRJc0RlZmF1bHQoYm9vbCBpc0RlZmF1bHQp
IGZpbmFsIHsgbV9pc0RlZmF1bHQgPSBpc0RlZmF1bHQ7IH0KIAogcHJpdmF0ZToKICAgICBMb2Fk
YWJsZVRleHRUcmFjayhIVE1MVHJhY2tFbGVtZW50JiwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25z
dCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlKTsKQEAgLTY4LDcgKzY3LDcg
QEAgcHJpdmF0ZToKICAgICBUaW1lciBtX2xvYWRUaW1lcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
VGV4dFRyYWNrTG9hZGVyPiBtX2xvYWRlcjsKICAgICBVUkwgbV91cmw7Ci0gICAgYm9vbCBtX2lz
RGVmYXVsdDsKKyAgICBib29sIG1faXNEZWZhdWx0IHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAppbmRl
eCAzMDQ0N2MzMGE0YjM0NDI0MWE0Mjc0NmE4OTU3ODUyMGY1NDQxNjU4Li4yMDRjM2YxYTFjZWRl
ODYyMzA4OTU4NzFmNGRmN2E1MzM5YTJmYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2suY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSwg
MjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzAsMTEgKzMwLDEwIEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRUcmFjay5oIgogCiAjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQogCi0jaW5jbHVkZSAiVGV4dFRyYWNrLmgiCi0KICNpbmNsdWRlICJFdmVudC5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50Lmgi
CkBAIC00Niw4ICs0NSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGNvbnN0
IGludCBpbnZhbGlkVHJhY2tJbmRleCA9IC0xOwotCiBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRU
cmFjazo6c3VidGl0bGVzS2V5d29yZCgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21pY1N0cmluZz4gc3VidGl0bGVzKCJzdWJ0aXRsZXMiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKQEAgLTEwMSw4ICs5OCw2IEBAIFRleHRUcmFjazo6VGV4dFRy
YWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xp
ZW50LCBjCiAgICAgLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkKICAgICAsIG1f
Y2xpZW50KGNsaWVudCkKICAgICAsIG1fdHJhY2tUeXBlKHR5cGUpCi0gICAgLCBtX3RyYWNrSW5k
ZXgoaW52YWxpZFRyYWNrSW5kZXgpCi0gICAgLCBtX3JlbmRlcmVkVHJhY2tJbmRleChpbnZhbGlk
VHJhY2tJbmRleCkKIHsKICAgICBpZiAoa2luZCA9PSBjYXB0aW9uc0tleXdvcmQoKSkKICAgICAg
ICAgbV9raW5kID0gS2luZDo6Q2FwdGlvbnM7CkBAIC0xMjAsOCArMTE1LDcgQEAgVGV4dFRyYWNr
Ojp+VGV4dFRyYWNrKCkKIHsKICAgICBpZiAobV9jdWVzKSB7CiAgICAgICAgIGlmIChtX2NsaWVu
dCkKLSAgICAgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKHRoaXMsIG1fY3Vl
cy5nZXQoKSk7Ci0KKyAgICAgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKCp0
aGlzLCAqbV9jdWVzKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2N1ZXMtPmxl
bmd0aCgpOyArK2kpCiAgICAgICAgICAgICBtX2N1ZXMtPml0ZW0oaSktPnNldFRyYWNrKG51bGxw
dHIpOwogICAgIH0KQEAgLTE4OSw3ICsxODMsNyBAQCB2b2lkIFRleHRUcmFjazo6c2V0S2luZChL
aW5kIG5ld0tpbmQpCiAgICAgLy8gMy4gSWYgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24g
dGhpcyB0cmFjayBpcyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBs
ZQogICAgIC8vIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCBzb3VyY2VCdWZmZXIudGV4dFRyYWNrcy4K
ICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVmZmVyLT50ZXh0VHJh
Y2tzKCktPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXItPnRl
eHRUcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICAgICAvLyA0LiBRdWV1ZSBhIHRh
c2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2UgYXQgdGhlIFRleHRUcmFja0xp
c3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdGV4dFRyYWNrcyBhdHRyaWJ1dGUg
b24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCkBAIC0xOTgsNyArMTkyLDcgQEAgdm9pZCBUZXh0VHJh
Y2s6OnNldEtpbmQoS2luZCBuZXdLaW5kKQogI2VuZGlmCiAKICAgICBpZiAobV9jbGllbnQgJiYg
b2xkS2luZCAhPSBtX2tpbmQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tLaW5kQ2hhbmdl
ZCh0aGlzKTsKKyAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja0tpbmRDaGFuZ2VkKCp0aGlzKTsK
IH0KIAogdm9pZCBUZXh0VHJhY2s6OnNldEtpbmRLZXl3b3JkSWdub3JpbmdBU0NJSUNhc2UoU3Ry
aW5nVmlldyBrZXl3b3JkKQpAQCAtMjM2LDcgKzIzMCw3IEBAIHZvaWQgVGV4dFRyYWNrOjpzZXRN
b2RlKE1vZGUgbW9kZSkKICAgICAvLyBJZiBtb2RlIGNoYW5nZXMgdG8gZGlzYWJsZWQsIHJlbW92
ZSB0aGlzIHRyYWNrJ3MgY3VlcyBmcm9tIHRoZSBjbGllbnQKICAgICAvLyBiZWNhdXNlIHRoZXkg
d2lsbCBubyBsb25nZXIgYmUgYWNjZXNzaWJsZSBmcm9tIHRoZSBjdWVzKCkgZnVuY3Rpb24uCiAg
ICAgaWYgKG1vZGUgPT0gTW9kZTo6RGlzYWJsZWQgJiYgbV9jbGllbnQgJiYgbV9jdWVzKQotICAg
ICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0aGlzLCBtX2N1ZXMuZ2V0KCkpOwor
ICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlcygqdGhpcywgKm1fY3Vlcyk7CiAK
ICAgICBpZiAobW9kZSAhPSBNb2RlOjpTaG93aW5nICYmIG1fY3VlcykgewogICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkgewpAQCAtMjQ5LDcgKzI0
Myw3IEBAIHZvaWQgVGV4dFRyYWNrOjpzZXRNb2RlKE1vZGUgbW9kZSkKICAgICBtX21vZGUgPSBt
b2RlOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrTW9k
ZUNoYW5nZWQodGhpcyk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tNb2RlQ2hhbmdlZCgq
dGhpcyk7CiB9CiAKIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6Y3VlcygpCkBAIC0yNzAs
NyArMjY0LDcgQEAgdm9pZCBUZXh0VHJhY2s6OnJlbW92ZUFsbEN1ZXMoKQogICAgICAgICByZXR1
cm47CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1v
dmVDdWVzKHRoaXMsIG1fY3Vlcy5nZXQoKSk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tS
ZW1vdmVDdWVzKCp0aGlzLCAqbV9jdWVzKTsKICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkKICAgICAgICAgbV9jdWVzLT5pdGVtKGkpLT5zZXRU
cmFjayhudWxscHRyKTsKQEAgLTI4OCw3ICsyODIsNyBAQCBUZXh0VHJhY2tDdWVMaXN0KiBUZXh0
VHJhY2s6OmFjdGl2ZUN1ZXMoKSBjb25zdAogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9z
cGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI2RvbS10ZXh0dHJhY2stYWN0aXZlY3VlcwogICAg
IGlmICghbV9jdWVzIHx8IG1fbW9kZSA9PSBNb2RlOjpEaXNhYmxlZCkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgcmV0dXJuIG1fY3Vlcy0+YWN0aXZlQ3VlcygpOworICAgIHJldHVybiAm
bV9jdWVzLT5hY3RpdmVDdWVzKCk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFRleHRUcmFjazo6
YWRkQ3VlKFJlZjxUZXh0VHJhY2tDdWU+JiYgY3VlKQpAQCAtMzE4LDEwICszMTIsMTAgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gVGV4dFRyYWNrOjphZGRDdWUoUmVmPFRleHRUcmFja0N1ZT4mJiBjdWUp
CiAKICAgICAvLyAyLiBBZGQgY3VlIHRvIHRoZSBtZXRob2QncyBUZXh0VHJhY2sgb2JqZWN0J3Mg
dGV4dCB0cmFjaydzIHRleHQgdHJhY2sgbGlzdCBvZiBjdWVzLgogICAgIGN1ZS0+c2V0VHJhY2so
dGhpcyk7Ci0gICAgZW5zdXJlVGV4dFRyYWNrQ3VlTGlzdCgpLmFkZChjdWUucHRyKCkpOworICAg
IGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKS5hZGQoY3VlLmNvcHlSZWYoKSk7CiAgICAgCiAgICAg
aWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrQWRkQ3VlKHRoaXMsIGN1
ZSk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tBZGRDdWUoKnRoaXMsIGN1ZSk7CiAKICAg
ICByZXR1cm4geyB9OwogfQpAQCAtMzM4LDEyICszMzIsMTIgQEAgRXhjZXB0aW9uT3I8dm9pZD4g
VGV4dFRyYWNrOjpyZW1vdmVDdWUoVGV4dFRyYWNrQ3VlJiBjdWUpCiAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOT1RfRk9VTkRfRVJSIH07CiAKICAgICAvLyAyLiBSZW1vdmUgY3VlIGZyb20g
dGhlIG1ldGhvZCdzIFRleHRUcmFjayBvYmplY3QncyB0ZXh0IHRyYWNrJ3MgdGV4dCB0cmFjayBs
aXN0IG9mIGN1ZXMuCi0gICAgaWYgKCFtX2N1ZXMgfHwgIW1fY3Vlcy0+cmVtb3ZlKCZjdWUpKQot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFURV9FUlIgfTsKLQorICAgIEFT
U0VSVChtX2N1ZXMpOworICAgIG1fY3Vlcy0+cmVtb3ZlKGN1ZSk7CisgICAgY3VlLnNldElzQWN0
aXZlKGZhbHNlKTsKICAgICBjdWUuc2V0VHJhY2sobnVsbHB0cik7CiAgICAgaWYgKG1fY2xpZW50
KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKHRoaXMsIGN1ZSk7CisgICAg
ICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUoKnRoaXMsIGN1ZSk7CiAKICAgICByZXR1
cm4geyB9OwogfQpAQCAtMzkyLDEwICszODYsOSBAQCB2b2lkIFRleHRUcmFjazo6YWRkUmVnaW9u
KFJlZlB0cjxWVFRSZWdpb24+JiYgcmVnaW9uKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgLy8gT3RoZXJ3aXNlOiBhZGQgcmVnaW9uIHRvIHRoZSBtZXRob2QncyBUZXh0VHJhY2sgb2Jq
ZWN0J3MgdGV4dCB0cmFjawotICAgIC8vIGxpc3Qgb2YgcmVnaW9ucy4KKyAgICAvLyBPdGhlcndp
c2U6IGFkZCByZWdpb24gdG8gdGhlIG1ldGhvZCdzIFRleHRUcmFjayBvYmplY3QncyB0ZXh0IHRy
YWNrIGxpc3Qgb2YgcmVnaW9ucy4KICAgICByZWdpb24tPnNldFRyYWNrKHRoaXMpOwotICAgIHJl
Z2lvbkxpc3QuYWRkKFdURk1vdmUocmVnaW9uKSk7CisgICAgcmVnaW9uTGlzdC5hZGQocmVnaW9u
LnJlbGVhc2VOb25OdWxsKCkpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBUZXh0VHJhY2s6OnJl
bW92ZVJlZ2lvbihWVFRSZWdpb24qIHJlZ2lvbikKQEAgLTQwOCw5ICs0MDEsOCBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBUZXh0VHJhY2s6OnJlbW92ZVJlZ2lvbihWVFRSZWdpb24qIHJlZ2lvbikKICAg
ICBpZiAocmVnaW9uLT50cmFjaygpICE9IHRoaXMpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOT1RfRk9VTkRfRVJSIH07CiAKLSAgICBpZiAoIW1fcmVnaW9ucyB8fCAhbV9yZWdpb25zLT5y
ZW1vdmUocmVnaW9uKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfU1RBVEVf
RVJSIH07Ci0KKyAgICBBU1NFUlQobV9yZWdpb25zKTsKKyAgICBtX3JlZ2lvbnMtPnJlbW92ZSgq
cmVnaW9uKTsKICAgICByZWdpb24tPnNldFRyYWNrKG51bGxwdHIpOwogICAgIHJldHVybiB7IH07
CiB9CkBAIC00MjIsNyArNDE0LDcgQEAgdm9pZCBUZXh0VHJhY2s6OmN1ZVdpbGxDaGFuZ2UoVGV4
dFRyYWNrQ3VlKiBjdWUpCiAKICAgICAvLyBUaGUgY3VlIG1heSBuZWVkIHRvIGJlIHJlcG9zaXRp
b25lZCBpbiB0aGUgbWVkaWEgZWxlbWVudCdzIGludGVydmFsIHRyZWUsIG1heSBuZWVkIHRvCiAg
ICAgLy8gYmUgcmUtcmVuZGVyZWQsIGV0Yywgc28gcmVtb3ZlIGl0IGJlZm9yZSB0aGUgbW9kaWZp
Y2F0aW9uLi4uCi0gICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZSh0aGlzLCAqY3VlKTsK
KyAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKCp0aGlzLCAqY3VlKTsKIH0KIAogdm9p
ZCBUZXh0VHJhY2s6OmN1ZURpZENoYW5nZShUZXh0VHJhY2tDdWUqIGN1ZSkKQEAgLTQzMSwyNiAr
NDIzLDI0IEBAIHZvaWQgVGV4dFRyYWNrOjpjdWVEaWRDaGFuZ2UoVGV4dFRyYWNrQ3VlKiBjdWUp
CiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE1ha2Ugc3VyZSB0aGUgVGV4dFRyYWNrQ3VlTGlz
dCBvcmRlciBpcyB1cC10by1kYXRlLgotICAgIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKS51cGRh
dGVDdWVJbmRleChjdWUpOworICAgIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKS51cGRhdGVDdWVJ
bmRleCgqY3VlKTsKIAogICAgIC8vIC4uLiBhbmQgYWRkIGl0IGJhY2sgYWdhaW4uCi0gICAgbV9j
bGllbnQtPnRleHRUcmFja0FkZEN1ZSh0aGlzLCAqY3VlKTsKKyAgICBtX2NsaWVudC0+dGV4dFRy
YWNrQWRkQ3VlKCp0aGlzLCAqY3VlKTsKIH0KIAogaW50IFRleHRUcmFjazo6dHJhY2tJbmRleCgp
CiB7CiAgICAgQVNTRVJUKG1fbWVkaWFFbGVtZW50KTsKLQotICAgIGlmIChtX3RyYWNrSW5kZXgg
PT0gaW52YWxpZFRyYWNrSW5kZXgpCisgICAgaWYgKCFtX3RyYWNrSW5kZXgpCiAgICAgICAgIG1f
dHJhY2tJbmRleCA9IG1fbWVkaWFFbGVtZW50LT50ZXh0VHJhY2tzKCkuZ2V0VHJhY2tJbmRleCgq
dGhpcyk7Ci0KLSAgICByZXR1cm4gbV90cmFja0luZGV4OworICAgIHJldHVybiBtX3RyYWNrSW5k
ZXgudmFsdWUoKTsKIH0KIAogdm9pZCBUZXh0VHJhY2s6OmludmFsaWRhdGVUcmFja0luZGV4KCkK
IHsKLSAgICBtX3RyYWNrSW5kZXggPSBpbnZhbGlkVHJhY2tJbmRleDsKLSAgICBtX3JlbmRlcmVk
VHJhY2tJbmRleCA9IGludmFsaWRUcmFja0luZGV4OworICAgIG1fdHJhY2tJbmRleCA9IHN0ZDo6
bnVsbG9wdDsKKyAgICBtX3JlbmRlcmVkVHJhY2tJbmRleCA9IHN0ZDo6bnVsbG9wdDsKIH0KIAog
Ym9vbCBUZXh0VHJhY2s6OmlzUmVuZGVyZWQoKQpAQCAtNDY5LDExICs0NTksOSBAQCBUZXh0VHJh
Y2tDdWVMaXN0JiBUZXh0VHJhY2s6OmVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKQogaW50IFRleHRU
cmFjazo6dHJhY2tJbmRleFJlbGF0aXZlVG9SZW5kZXJlZFRyYWNrcygpCiB7CiAgICAgQVNTRVJU
KG1fbWVkaWFFbGVtZW50KTsKLSAgICAKLSAgICBpZiAobV9yZW5kZXJlZFRyYWNrSW5kZXggPT0g
aW52YWxpZFRyYWNrSW5kZXgpCisgICAgaWYgKCFtX3JlbmRlcmVkVHJhY2tJbmRleCkKICAgICAg
ICAgbV9yZW5kZXJlZFRyYWNrSW5kZXggPSBtX21lZGlhRWxlbWVudC0+dGV4dFRyYWNrcygpLmdl
dFRyYWNrSW5kZXhSZWxhdGl2ZVRvUmVuZGVyZWRUcmFja3MoKnRoaXMpOwotICAgIAotICAgIHJl
dHVybiBtX3JlbmRlcmVkVHJhY2tJbmRleDsKKyAgICByZXR1cm4gbV9yZW5kZXJlZFRyYWNrSW5k
ZXgudmFsdWUoKTsKIH0KIAogYm9vbCBUZXh0VHJhY2s6Omhhc0N1ZShUZXh0VHJhY2tDdWUqIGN1
ZSwgVGV4dFRyYWNrQ3VlOjpDdWVNYXRjaFJ1bGVzIG1hdGNoKQpAQCAtNTY1LDcgKzU1Myw3IEBA
IHZvaWQgVGV4dFRyYWNrOjpzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdl
KQogICAgIC8vIDMuIElmIHRoZSBzb3VyY2VCdWZmZXIgYXR0cmlidXRlIG9uIHRoaXMgdHJhY2sg
aXMgbm90IG51bGwsIHRoZW4gcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUKICAgICAvLyBl
dmVudCBuYW1lZCBjaGFuZ2UgYXQgc291cmNlQnVmZmVyLnRleHRUcmFja3MuCiAgICAgaWYgKG1f
c291cmNlQnVmZmVyKQotICAgICAgICBtX3NvdXJjZUJ1ZmZlci0+dGV4dFRyYWNrcygpLT5zY2hl
ZHVsZUNoYW5nZUV2ZW50KCk7CisgICAgICAgIG1fc291cmNlQnVmZmVyLT50ZXh0VHJhY2tzKCku
c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogCiAgICAgLy8gNC4gUXVldWUgYSB0YXNrIHRvIGZpcmUg
YSBzaW1wbGUgZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHRoZSBUZXh0VHJhY2tMaXN0IG9iamVjdCBy
ZWZlcmVuY2VkIGJ5CiAgICAgLy8gdGhlIHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1M
TWVkaWFFbGVtZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKaW5kZXggYjgw
NDljNzBjYWUxYWE5Nzg1YzA0YTU0OTliYzdhZTZjODMwY2VkYi4uOGJiNDdiMjc2ZjZlNTViOTE2
NjY3ZDdmY2UxNTc0NDU3OGYzYmU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
ay5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEtMjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw4ICszMCw2IEBACiAKICNpbmNsdWRlICJUZXh0VHJh
Y2tDdWUuaCIKICNpbmNsdWRlICJUcmFja0Jhc2UuaCIKLSNpbmNsdWRlICJWVFRDdWUuaCIKLSNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC00NCwxMiArNDIsMTIgQEAgY2xhc3MgVlRUUmVnaW9uTGlzdDsKIGNsYXNzIFRleHRUcmFja0Ns
aWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGV4dFRyYWNrQ2xpZW50KCkgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIHRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayopID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgdGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1
ZUxpc3QqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRy
YWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4
dFRyYWNrQWRkQ3VlKFRleHRUcmFjayosIFRleHRUcmFja0N1ZSYpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayosIFRleHRUcmFja0N1ZSYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2smKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRy
YWNrQ3VlTGlzdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhU
ZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikg
PSAwOwogfTsKIAogY2xhc3MgVGV4dFRyYWNrIDogcHVibGljIFRyYWNrQmFzZSwgcHVibGljIEV2
ZW50VGFyZ2V0V2l0aElubGluZURhdGEgewpAQCAtMTY3LDggKzE2NSw4IEBAIHByaXZhdGU6CiAg
ICAgVGV4dFRyYWNrQ2xpZW50KiBtX2NsaWVudDsKICAgICBUZXh0VHJhY2tUeXBlIG1fdHJhY2tU
eXBlOwogICAgIFJlYWRpbmVzc1N0YXRlIG1fcmVhZGluZXNzU3RhdGUgeyBOb3RMb2FkZWQgfTsK
LSAgICBpbnQgbV90cmFja0luZGV4OwotICAgIGludCBtX3JlbmRlcmVkVHJhY2tJbmRleDsKKyAg
ICBzdGQ6Om9wdGlvbmFsPGludD4gbV90cmFja0luZGV4OworICAgIHN0ZDo6b3B0aW9uYWw8aW50
PiBtX3JlbmRlcmVkVHJhY2tJbmRleDsKICAgICBib29sIG1faGFzQmVlbkNvbmZpZ3VyZWQgeyBm
YWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3Bw
CmluZGV4IGZjYmExOWQwZGJiYWQ0ZTAwNDc5MDkxZWNkNTZlODI3MmRjZTU4ZWQuLjMzOTE3MmQx
MDU1MjMwMjUzZWNlYzQxMTA0NzhiZGQzZTlmMTU0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDEzIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29w
eXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMwLDEx
ICszMCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0VHJh
Y2tDdWUuaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotI2luY2x1ZGUgIlRleHRUcmFj
a0N1ZS5oIgotCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1Zh
bHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJFdmVudC5oIgpAQCAtNDksOCArNDgsNiBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBjb25zdCBpbnQgaW52YWxpZEN1ZUluZGV4ID0g
LTE7Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9J
ZCgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gY3Vl
KCJjdWUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKQEAgLTYwLDkgKzU3
LDYgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lk
KCkKIFRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3VlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kKQogICAg
IDogbV9zdGFydFRpbWUoc3RhcnQpCiAgICAgLCBtX2VuZFRpbWUoZW5kKQotICAgICwgbV9jdWVJ
bmRleChpbnZhbGlkQ3VlSW5kZXgpCi0gICAgLCBtX3Byb2Nlc3NpbmdDdWVDaGFuZ2VzKDApCi0g
ICAgLCBtX3RyYWNrKDApCiAgICAgLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkK
ICAgICAsIG1faXNBY3RpdmUoZmFsc2UpCiAgICAgLCBtX3BhdXNlT25FeGl0KGZhbHNlKQpAQCAt
MTQ5LDIzICsxNDMsNiBAQCB2b2lkIFRleHRUcmFja0N1ZTo6c2V0UGF1c2VPbkV4aXQoYm9vbCB2
YWx1ZSkKICAgICBtX3BhdXNlT25FeGl0ID0gdmFsdWU7CiB9CiAKLWludCBUZXh0VHJhY2tDdWU6
OmN1ZUluZGV4KCkKLXsKLSAgICBpZiAobV9jdWVJbmRleCA9PSBpbnZhbGlkQ3VlSW5kZXgpIHsK
LSAgICAgICAgQVNTRVJUKHRyYWNrKCkpOwotICAgICAgICBBU1NFUlQodHJhY2soKS0+Y3Vlcygp
KTsKLSAgICAgICAgaWYgKFRleHRUcmFja0N1ZUxpc3QqIGN1ZUxpc3QgPSB0cmFjaygpLT5jdWVz
KCkpCi0gICAgICAgICAgICBtX2N1ZUluZGV4ID0gY3VlTGlzdC0+Z2V0Q3VlSW5kZXgodGhpcyk7
Ci0gICAgfQotCi0gICAgcmV0dXJuIG1fY3VlSW5kZXg7Ci19Ci0KLXZvaWQgVGV4dFRyYWNrQ3Vl
OjppbnZhbGlkYXRlQ3VlSW5kZXgoKQotewotICAgIG1fY3VlSW5kZXggPSBpbnZhbGlkQ3VlSW5k
ZXg7Ci19Ci0KIGJvb2wgVGV4dFRyYWNrQ3VlOjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCkK
IHsKICAgICAvLyBXaGVuIGEgVGV4dFRyYWNrJ3MgbW9kZSBpcyBkaXNhYmxlZDogbm8gY3VlcyBh
cmUgYWN0aXZlLCBubyBldmVudHMgZmlyZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuaAppbmRleCA1NzM1MWRjNjBlMmI2ZWFmNTA4MGYwMzA5YTQ1MTY4Zjc4MzBhNzM0
Li40OTA3NTQ2YTI3YWU0ODI0ZTEyYTE0MGE5OWFmZTk2NDgzMTU1MGYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNjUsOSArNjUsNiBA
QCBwdWJsaWM6CiAgICAgTWVkaWFUaW1lIGVuZE1lZGlhVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZW5kVGltZTsgfQogICAgIHZvaWQgc2V0RW5kVGltZShjb25zdCBNZWRpYVRpbWUmKTsKIAotICAg
IGludCBjdWVJbmRleCgpOwotICAgIHZvaWQgaW52YWxpZGF0ZUN1ZUluZGV4KCk7Ci0KICAgICBi
b29sIGlzQWN0aXZlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElzQWN0aXZlKGJvb2wpOwogCkBA
IC04Miw5ICs3OSw2IEBAIHB1YmxpYzoKIAogICAgIGVudW0gQ3VlTWF0Y2hSdWxlcyB7IE1hdGNo
QWxsRmllbGRzLCBJZ25vcmVEdXJhdGlvbiB9OwogICAgIHZpcnR1YWwgYm9vbCBpc0VxdWFsKGNv
bnN0IFRleHRUcmFja0N1ZSYsIEN1ZU1hdGNoUnVsZXMpIGNvbnN0OwotcHJpdmF0ZToKLSAgICB2
aXJ0dWFsIGJvb2wgY3VlQ29udGVudHNNYXRjaChjb25zdCBUZXh0VHJhY2tDdWUmKSBjb25zdDsK
LXB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZG9lc0V4dGVuZEN1ZShjb25zdCBUZXh0VHJhY2tD
dWUmKSBjb25zdDsKIAogICAgIHZvaWQgd2lsbENoYW5nZSgpOwpAQCAtMTA4LDEzICsxMDIsMTQg
QEAgcHJpdmF0ZToKICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFj
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFRleHRUcmFja0N1ZUV2ZW50VGFyZ2V0SW50ZXJmYWNl
VHlwZTsgfQogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiAmbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9CiAK
KyAgICB2aXJ0dWFsIGJvb2wgY3VlQ29udGVudHNNYXRjaChjb25zdCBUZXh0VHJhY2tDdWUmKSBj
b25zdDsKKwogICAgIFN0cmluZyBtX2lkOwogICAgIE1lZGlhVGltZSBtX3N0YXJ0VGltZTsKICAg
ICBNZWRpYVRpbWUgbV9lbmRUaW1lOwotICAgIGludCBtX2N1ZUluZGV4OwotICAgIGludCBtX3By
b2Nlc3NpbmdDdWVDaGFuZ2VzOworICAgIGludCBtX3Byb2Nlc3NpbmdDdWVDaGFuZ2VzIHsgMCB9
OwogCi0gICAgVGV4dFRyYWNrKiBtX3RyYWNrOworICAgIFRleHRUcmFjayogbV90cmFjayB7IG51
bGxwdHIgfTsKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIG1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJh
Y2tDdWVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlz
dC5jcHAKaW5kZXggZmZkOGVhZTRkOTkzNjQ4MGE2YTViYzM1OTJmZTA4MGI3MTZlMTNhMS4uMDM4
MjdjOGE3NGUzMGI2NDkyMGYxMTYwN2NhNjAzYTIxNmZhMzhkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMTE3ICszMCwxMDAgQEAKIAogI2lu
Y2x1ZGUgIlRleHRUcmFja0N1ZUxpc3QuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworLy8gQ2hl
Y2tpbmcgc29ydGluZyBpcyB0b28gc2xvdyBmb3IgZ2VuZXJhbCB1c2U7IHR1cm4gaXQgb24gZXhw
bGljaXRseSB3aGVuIHdvcmtpbmcgb24gdGhpcyBjbGFzcy4KKyN1bmRlZiBDSEVDS19TT1JUSU5H
CiAKLVRleHRUcmFja0N1ZUxpc3Q6OlRleHRUcmFja0N1ZUxpc3QoKQotewotfQorI2lmZGVmIENI
RUNLX1NPUlRJTkcKKyNkZWZpbmUgQVNTRVJUX1NPUlRFRChiZWdpbiwgZW5kKSBBU1NFUlQoc3Rk
Ojppc19zb3J0ZWQoYmVnaW4sIGVuZCwgY29tcGFyZUN1ZXMpKQorI2Vsc2UKKyNkZWZpbmUgQVNT
RVJUX1NPUlRFRChiZWdpbiwgZW5kKSAoKHZvaWQpMCkKKyNlbmRpZgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXVuc2lnbmVkIGxvbmcgVGV4dFRyYWNrQ3VlTGlzdDo6bGVuZ3RoKCkgY29uc3QK
K3N0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJlQ3Vlcyhjb25zdCBSZWZQdHI8VGV4dFRyYWNrQ3Vl
PiYgYSwgY29uc3QgUmVmUHRyPFRleHRUcmFja0N1ZT4mIGIpCiB7Ci0gICAgcmV0dXJuIG1fbGlz
dC5zaXplKCk7CisgICAgcmV0dXJuIGEtPmlzT3JkZXJlZEJlZm9yZShiLmdldCgpKTsKIH0KIAot
dW5zaWduZWQgbG9uZyBUZXh0VHJhY2tDdWVMaXN0OjpnZXRDdWVJbmRleChUZXh0VHJhY2tDdWUq
IGN1ZSkgY29uc3QKK3Vuc2lnbmVkIFRleHRUcmFja0N1ZUxpc3Q6OmN1ZUluZGV4KFRleHRUcmFj
a0N1ZSYgY3VlKSBjb25zdAogewotICAgIHJldHVybiBtX2xpc3QuZmluZChjdWUpOworICAgIEFT
U0VSVChtX3ZlY3Rvci5jb250YWlucygmY3VlKSk7CisgICAgcmV0dXJuIG1fdmVjdG9yLmZpbmQo
JmN1ZSk7CiB9CiAKIFRleHRUcmFja0N1ZSogVGV4dFRyYWNrQ3VlTGlzdDo6aXRlbSh1bnNpZ25l
ZCBpbmRleCkgY29uc3QKIHsKLSAgICBpZiAoaW5kZXggPCBtX2xpc3Quc2l6ZSgpKQotICAgICAg
ICByZXR1cm4gbV9saXN0W2luZGV4XS5nZXQoKTsKLSAgICByZXR1cm4gMDsKKyAgICBpZiAoaW5k
ZXggPj0gbV92ZWN0b3Iuc2l6ZSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1
cm4gbV92ZWN0b3JbaW5kZXhdLmdldCgpOwogfQogCiBUZXh0VHJhY2tDdWUqIFRleHRUcmFja0N1
ZUxpc3Q6OmdldEN1ZUJ5SWQoY29uc3QgU3RyaW5nJiBpZCkgY29uc3QKIHsKLSAgICBmb3IgKGF1
dG8mIGN1ZSA6IG1fbGlzdCkgeworICAgIGZvciAoYXV0byYgY3VlIDogbV92ZWN0b3IpIHsKICAg
ICAgICAgaWYgKGN1ZS0+aWQoKSA9PSBpZCkKICAgICAgICAgICAgIHJldHVybiBjdWUuZ2V0KCk7
CiAgICAgfQotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCi1UZXh0VHJh
Y2tDdWVMaXN0KiBUZXh0VHJhY2tDdWVMaXN0OjphY3RpdmVDdWVzKCkKK1RleHRUcmFja0N1ZUxp
c3QmIFRleHRUcmFja0N1ZUxpc3Q6OmFjdGl2ZUN1ZXMoKQogewogICAgIGlmICghbV9hY3RpdmVD
dWVzKQogICAgICAgICBtX2FjdGl2ZUN1ZXMgPSBjcmVhdGUoKTsKIAotICAgIG1fYWN0aXZlQ3Vl
cy0+Y2xlYXIoKTsKLSAgICBmb3IgKGF1dG8mIGN1ZSA6IG1fbGlzdCkgeworICAgIFZlY3RvcjxS
ZWZQdHI8VGV4dFRyYWNrQ3VlPj4gYWN0aXZlQ3Vlc1ZlY3RvcjsKKyAgICBmb3IgKGF1dG8mIGN1
ZSA6IG1fdmVjdG9yKSB7CiAgICAgICAgIGlmIChjdWUtPmlzQWN0aXZlKCkpCi0gICAgICAgICAg
ICBtX2FjdGl2ZUN1ZXMtPmFkZChjdWUpOworICAgICAgICAgICAgYWN0aXZlQ3Vlc1ZlY3Rvci5h
cHBlbmQoY3VlKTsKICAgICB9Ci0gICAgcmV0dXJuIG1fYWN0aXZlQ3Vlcy5nZXQoKTsKKyAgICBB
U1NFUlRfU09SVEVEKGFjdGl2ZUN1ZXNWZWN0b3IuYmVnaW4oKSwgYWN0aXZlQ3Vlc1ZlY3Rvci5l
bmQoKSk7CisgICAgbV9hY3RpdmVDdWVzLT5tX3ZlY3RvciA9IFdURk1vdmUoYWN0aXZlQ3Vlc1Zl
Y3Rvcik7CisKKyAgICAvLyBGSVhNRTogVGhpcyBsaXN0IG9mIGFjdGl2ZSBjdWVzIGlzIG5vdCB1
cGRhdGVkIGFzIGN1ZXMgYXJlIGFkZGVkLCByZW1vdmVkLCBiZWNvbWUgYWN0aXZlLCBhbmQgYmVj
b21lIGluYWN0aXZlLgorICAgIC8vIEluc3RlYWQgaXQgaXMgb25seSB1cGRhdGVkIGVhY2ggdGlt
ZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBhZ2Fpbi4gVGhhdCBpcyBub3QgY29uc2lzdGVudCB3
aXRoIG90aGVyIGR5bmFtaWMgRE9NIGxpc3RzLgorICAgIHJldHVybiAqbV9hY3RpdmVDdWVzOwog
fQogCi1ib29sIFRleHRUcmFja0N1ZUxpc3Q6OmFkZChQYXNzUmVmUHRyPFRleHRUcmFja0N1ZT4g
Y3VlKQordm9pZCBUZXh0VHJhY2tDdWVMaXN0OjphZGQoUmVmPFRleHRUcmFja0N1ZT4mJiBjdWUp
CiB7CisgICAgQVNTRVJUKCFtX3ZlY3Rvci5jb250YWlucyhjdWUucHRyKCkpKTsKICAgICBBU1NF
UlQoY3VlLT5zdGFydE1lZGlhVGltZSgpID49IE1lZGlhVGltZTo6emVyb1RpbWUoKSk7CiAgICAg
QVNTRVJUKGN1ZS0+ZW5kTWVkaWFUaW1lKCkgPj0gTWVkaWFUaW1lOjp6ZXJvVGltZSgpKTsKIAot
ICAgIHJldHVybiBhZGQoY3VlLCAwLCBtX2xpc3Quc2l6ZSgpKTsKKyAgICBSZWZQdHI8VGV4dFRy
YWNrQ3VlPiBjdWVSZWZQdHIgeyBXVEZNb3ZlKGN1ZSkgfTsKKyAgICB1bnNpZ25lZCBpbnNlcnRp
b25Qb3NpdGlvbiA9IHN0ZDo6dXBwZXJfYm91bmQobV92ZWN0b3IuYmVnaW4oKSwgbV92ZWN0b3Iu
ZW5kKCksIGN1ZVJlZlB0ciwgY29tcGFyZUN1ZXMpIC0gbV92ZWN0b3IuYmVnaW4oKTsKKyAgICBB
U1NFUlRfU09SVEVEKG1fdmVjdG9yLmJlZ2luKCksIG1fdmVjdG9yLmVuZCgpKTsKKyAgICBtX3Zl
Y3Rvci5pbnNlcnQoaW5zZXJ0aW9uUG9zaXRpb24sIFdURk1vdmUoY3VlUmVmUHRyKSk7CisgICAg
QVNTRVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSk7CiB9CiAKLWJv
b2wgVGV4dFRyYWNrQ3VlTGlzdDo6YWRkKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBwcnBDdWUs
IHNpemVfdCBzdGFydCwgc2l6ZV90IGVuZCkKK3ZvaWQgVGV4dFRyYWNrQ3VlTGlzdDo6cmVtb3Zl
KFRleHRUcmFja0N1ZSYgY3VlKQogewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKHN0YXJ0IDw9IG1fbGlzdC5zaXplKCkpOwotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKGVuZCA8PSBtX2xpc3Quc2l6ZSgpKTsKLQotICAgIC8vIE1haW50YWluIHRleHQg
dHJhY2sgY3VlIG9yZGVyOgotICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWIt
YXBwcy9jdXJyZW50LXdvcmsvI3RleHQtdHJhY2stY3VlLW9yZGVyCi0gICAgUmVmUHRyPFRleHRU
cmFja0N1ZT4gY3VlID0gcHJwQ3VlOwotICAgIGlmIChzdGFydCA9PSBlbmQpIHsKLSAgICAgICAg
aWYgKCFtX2xpc3QuaXNFbXB0eSgpICYmIChzdGFydCA+IDApICYmIChtX2xpc3Rbc3RhcnQgLSAx
XS5nZXQoKSA9PSBjdWUuZ2V0KCkpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
ICAgIG1fbGlzdC5pbnNlcnQoc3RhcnQsIGN1ZSk7Ci0gICAgICAgIGludmFsaWRhdGVDdWVJbmRl
eGVzKHN0YXJ0KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgc2l6ZV90IGlu
ZGV4ID0gKHN0YXJ0ICsgZW5kKSAvIDI7Ci0gICAgaWYgKGN1ZS0+aXNPcmRlcmVkQmVmb3JlKG1f
bGlzdFtpbmRleF0uZ2V0KCkpKQotICAgICAgICByZXR1cm4gYWRkKFdURk1vdmUoY3VlKSwgc3Rh
cnQsIGluZGV4KTsKLQotICAgIHJldHVybiBhZGQoV1RGTW92ZShjdWUpLCBpbmRleCArIDEsIGVu
ZCk7CisgICAgQVNTRVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSk7
CisgICAgbV92ZWN0b3IucmVtb3ZlKGN1ZUluZGV4KGN1ZSkpOworICAgIEFTU0VSVF9TT1JURUQo
bV92ZWN0b3IuYmVnaW4oKSwgbV92ZWN0b3IuZW5kKCkpOwogfQogCi1ib29sIFRleHRUcmFja0N1
ZUxpc3Q6OnJlbW92ZShUZXh0VHJhY2tDdWUqIGN1ZSkKK3ZvaWQgVGV4dFRyYWNrQ3VlTGlzdDo6
dXBkYXRlQ3VlSW5kZXgoVGV4dFRyYWNrQ3VlJiBjdWUpCiB7Ci0gICAgc2l6ZV90IGluZGV4ID0g
bV9saXN0LmZpbmQoY3VlKTsKLSAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIGN1ZS0+c2V0SXNBY3RpdmUoZmFsc2UpOwotICAgIG1fbGlzdC5y
ZW1vdmUoaW5kZXgpOwotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIFRleHRUcmFja0N1ZUxp
c3Q6OmNvbnRhaW5zKFRleHRUcmFja0N1ZSogY3VlKSBjb25zdAotewotICAgIHJldHVybiBtX2xp
c3QuY29udGFpbnMoY3VlKTsKLX0KLQotYm9vbCBUZXh0VHJhY2tDdWVMaXN0Ojp1cGRhdGVDdWVJ
bmRleChUZXh0VHJhY2tDdWUqIGN1ZSkKLXsKLSAgICBpZiAoIWNvbnRhaW5zKGN1ZSkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICByZW1vdmUoY3VlKTsKLSAgICByZXR1cm4gYWRk
KGN1ZSk7Ci19Ci0KLXZvaWQgVGV4dFRyYWNrQ3VlTGlzdDo6Y2xlYXIoKQotewotICAgIG1fbGlz
dC5jbGVhcigpOwotfQorICAgIGF1dG8gY3VlUG9zaXRpb24gPSBtX3ZlY3Rvci5iZWdpbigpICsg
Y3VlSW5kZXgoY3VlKTsKKyAgICBhdXRvIGFmdGVyQ3VlUG9zaXRpb24gPSBjdWVQb3NpdGlvbiAr
IDE7CisKKyAgICBBU1NFUlRfU09SVEVEKG1fdmVjdG9yLmJlZ2luKCksIGN1ZVBvc2l0aW9uKTsK
KyAgICBBU1NFUlRfU09SVEVEKGFmdGVyQ3VlUG9zaXRpb24sIG1fdmVjdG9yLmVuZCgpKTsKKwor
ICAgIGF1dG8gcmVpbnNlcnRpb25Qb3NpdGlvbiA9IHN0ZDo6dXBwZXJfYm91bmQobV92ZWN0b3Iu
YmVnaW4oKSwgY3VlUG9zaXRpb24sICpjdWVQb3NpdGlvbiwgY29tcGFyZUN1ZXMpOworICAgIGlm
IChyZWluc2VydGlvblBvc2l0aW9uICE9IGN1ZVBvc2l0aW9uKQorICAgICAgICBzdGQ6OnJvdGF0
ZShyZWluc2VydGlvblBvc2l0aW9uLCBjdWVQb3NpdGlvbiwgYWZ0ZXJDdWVQb3NpdGlvbik7Cisg
ICAgZWxzZSB7CisgICAgICAgIHJlaW5zZXJ0aW9uUG9zaXRpb24gPSBzdGQ6OnVwcGVyX2JvdW5k
KGFmdGVyQ3VlUG9zaXRpb24sIG1fdmVjdG9yLmVuZCgpLCAqY3VlUG9zaXRpb24sIGNvbXBhcmVD
dWVzKTsKKyAgICAgICAgaWYgKHJlaW5zZXJ0aW9uUG9zaXRpb24gIT0gYWZ0ZXJDdWVQb3NpdGlv
bikKKyAgICAgICAgICAgIHN0ZDo6cm90YXRlKGN1ZVBvc2l0aW9uLCBhZnRlckN1ZVBvc2l0aW9u
LCByZWluc2VydGlvblBvc2l0aW9uKTsKKyAgICB9CiAKLXZvaWQgVGV4dFRyYWNrQ3VlTGlzdDo6
aW52YWxpZGF0ZUN1ZUluZGV4ZXMoc2l6ZV90IHN0YXJ0KQotewotICAgIGZvciAoc2l6ZV90IGkg
PSBzdGFydDsgaSA8IG1fbGlzdC5zaXplKCk7ICsraSkKLSAgICAgICAgbV9saXN0W2ldLT5pbnZh
bGlkYXRlQ3VlSW5kZXgoKTsKKyAgICBBU1NFUlRfU09SVEVEKG1fdmVjdG9yLmJlZ2luKCksIG1f
dmVjdG9yLmVuZCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuaAppbmRleCBhMjE4ZmI2OTA4OTYyNGMx
ZjI4MzljNzUzYWMxMjVmZjBkYjNjMjk5Li5mZTA0YzQ0NmQyOTc3YzdmY2U5MzJjNjNiODI5Nzk4
MzRmMjI1ZTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
a0N1ZUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxp
c3QuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI4LDQ0ICsyOSw0MiBAQAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAogI2luY2x1ZGUgIlRl
eHRUcmFja0N1ZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgVGV4dFRyYWNrQ3VlTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFRleHRU
cmFja0N1ZUxpc3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFRleHRUcmFja0N1ZUxpc3Q+
IGNyZWF0ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0VHJhY2tD
dWVMaXN0KTsKLSAgICB9Ci0KLSAgICB+VGV4dFRyYWNrQ3VlTGlzdCgpIHsgfQotCi0gICAgdW5z
aWduZWQgbG9uZyBsZW5ndGgoKSBjb25zdDsKLSAgICB1bnNpZ25lZCBsb25nIGdldEN1ZUluZGV4
KFRleHRUcmFja0N1ZSopIGNvbnN0OworICAgIHN0YXRpYyBSZWY8VGV4dFRyYWNrQ3VlTGlzdD4g
Y3JlYXRlKCk7CiAKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKICAgICBUZXh0VHJhY2tD
dWUqIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OwogICAgIFRleHRUcmFja0N1ZSogZ2V0Q3Vl
QnlJZChjb25zdCBTdHJpbmcmKSBjb25zdDsKLSAgICBUZXh0VHJhY2tDdWVMaXN0KiBhY3RpdmVD
dWVzKCk7CiAKLSAgICBib29sIGFkZChQYXNzUmVmUHRyPFRleHRUcmFja0N1ZT4pOwotICAgIGJv
b2wgcmVtb3ZlKFRleHRUcmFja0N1ZSopOwotICAgIGJvb2wgY29udGFpbnMoVGV4dFRyYWNrQ3Vl
KikgY29uc3Q7Ci0gICAgCi0gICAgYm9vbCB1cGRhdGVDdWVJbmRleChUZXh0VHJhY2tDdWUqKTsK
KyAgICB1bnNpZ25lZCBjdWVJbmRleChUZXh0VHJhY2tDdWUmKSBjb25zdDsKKworICAgIHZvaWQg
YWRkKFJlZjxUZXh0VHJhY2tDdWU+JiYpOworICAgIHZvaWQgcmVtb3ZlKFRleHRUcmFja0N1ZSYp
OworICAgIHZvaWQgdXBkYXRlQ3VlSW5kZXgoVGV4dFRyYWNrQ3VlJik7CisKKyAgICBUZXh0VHJh
Y2tDdWVMaXN0JiBhY3RpdmVDdWVzKCk7CiAKIHByaXZhdGU6Ci0gICAgVGV4dFRyYWNrQ3VlTGlz
dCgpOwotICAgIGJvb2wgYWRkKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiwgc2l6ZV90LCBzaXpl
X3QpOwotICAgIHZvaWQgY2xlYXIoKTsKLSAgICB2b2lkIGludmFsaWRhdGVDdWVJbmRleGVzKHNp
emVfdCk7CisgICAgVGV4dFRyYWNrQ3VlTGlzdCgpID0gZGVmYXVsdDsKIAotICAgIFZlY3RvcjxS
ZWZQdHI8VGV4dFRyYWNrQ3VlPj4gbV9saXN0OworICAgIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNr
Q3VlPj4gbV92ZWN0b3I7CiAgICAgUmVmUHRyPFRleHRUcmFja0N1ZUxpc3Q+IG1fYWN0aXZlQ3Vl
czsKIH07CiAKK2lubGluZSBSZWY8VGV4dFRyYWNrQ3VlTGlzdD4gVGV4dFRyYWNrQ3VlTGlzdDo6
Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0VHJhY2tDdWVMaXN0KTsK
K30KKworaW5saW5lIHVuc2lnbmVkIFRleHRUcmFja0N1ZUxpc3Q6Omxlbmd0aCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fdmVjdG9yLnNpemUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9UcmFja0Jhc2UuY3BwCmluZGV4IDJmZDBiZGI0NzIzNjAzNTBlOTg2YjM1YzNjMTFiYjRjMzIw
NTdjNWEuLmJjOTUxMTFlMWVmNmM3ZGZkMGZmMjMzNWMxM2VhZGJkMmEyMzRlYjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lkIE1l
ZGlhVHJhY2tCYXNlOjpzZXRLaW5kSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiBraW5kKQog
ICAgIGlmIChpc1ZhbGlkS2luZChraW5kKSkKICAgICAgICAgbV9raW5kID0ga2luZDsKICAgICBl
bHNlCi0gICAgICAgIG1fa2luZCA9IGRlZmF1bHRLaW5kS2V5d29yZCgpOworICAgICAgICBtX2tp
bmQgPSBlbXB0eUF0b207CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RyYWNrQmFzZS5oCmluZGV4IDE4MjUwMGUwNzczZjhlMTM3MjM4ZWUyNzUzODE5
ZTNhYTFhZWMwYTYuLjE2ZDE2MmExMzVmNjFhOTVjNzcyY2FlZWMzYmI1YzJiZGFhZTk3OTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jhc2UuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsOSArMjcsNyBAQAogCiAjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKLSNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC05
OSw3ICs5Nyw2IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNW
YWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBkZWZhdWx0S2luZEtleXdvcmQoKSBjb25zdCA9IDA7CiAKICAgICBB
dG9taWNTdHJpbmcgbV9raW5kOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVlRUUmVnaW9uTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJl
Z2lvbkxpc3QuY3BwCmluZGV4IGI3ZTc5ZDBmN2U2YmJjNzRlNDFhNzFmZDViZWU3NDFkYzEyZDdk
ZDIuLmNmYzE2MjIzZjM1MzRjOWRmNmFjZGYwZDc1YTJjYmYwOTA4YjgzYWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNwcApAQCAtMSw2ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw1NyArMjksNDEgQEAKIAog
I2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVZUVFJl
Z2lvbkxpc3Q6OlZUVFJlZ2lvbkxpc3QoKQotewotfQotCi11bnNpZ25lZCBsb25nIFZUVFJlZ2lv
bkxpc3Q6Omxlbmd0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbGlzdC5zaXplKCk7Ci19Ci0K
IFZUVFJlZ2lvbiogVlRUUmVnaW9uTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKIHsK
LSAgICBpZiAoaW5kZXggPCBtX2xpc3Quc2l6ZSgpKQotICAgICAgICByZXR1cm4gbV9saXN0W2lu
ZGV4XS5nZXQoKTsKLQotICAgIHJldHVybiAwOworICAgIGlmIChpbmRleCA+PSBtX3ZlY3Rvci5z
aXplKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjb25zdF9jYXN0PFZU
VFJlZ2lvbio+KG1fdmVjdG9yW2luZGV4XS5wdHIoKSk7CiB9CiAKIFZUVFJlZ2lvbiogVlRUUmVn
aW9uTGlzdDo6Z2V0UmVnaW9uQnlJZChjb25zdCBTdHJpbmcmIGlkKSBjb25zdAogeworICAgIC8v
IEZJWE1FOiBXaHkgaXMgdGhpcyBzcGVjaWFsIGNhc2UgbmVlZGVkPwogICAgIGlmIChpZC5pc0Vt
cHR5KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgZm9yIChjb25zdCBhdXRvJiByZWdpb24g
OiBtX2xpc3QpIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgZm9yIChhdXRvJiByZWdp
b24gOiBtX3ZlY3RvcikgewogICAgICAgICBpZiAocmVnaW9uLT5pZCgpID09IGlkKQotICAgICAg
ICAgICAgcmV0dXJuIHJlZ2lvbi5nZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0
PFZUVFJlZ2lvbio+KHJlZ2lvbi5wdHIoKSk7CiAgICAgfQotCi0gICAgcmV0dXJuIDA7CisgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgVlRUUmVnaW9uTGlzdDo6YWRkKFBhc3NSZWZQdHI8
VlRUUmVnaW9uPiByZWdpb24pCit2b2lkIFZUVFJlZ2lvbkxpc3Q6OmFkZChSZWY8VlRUUmVnaW9u
PiYmIHJlZ2lvbikKIHsKLSAgICBtX2xpc3QuYXBwZW5kKHJlZ2lvbik7CisgICAgbV92ZWN0b3Iu
YXBwZW5kKFdURk1vdmUocmVnaW9uKSk7CiB9CiAKLWJvb2wgVlRUUmVnaW9uTGlzdDo6cmVtb3Zl
KFZUVFJlZ2lvbiogcmVnaW9uKQordm9pZCBWVFRSZWdpb25MaXN0OjpyZW1vdmUoVlRUUmVnaW9u
JiByZWdpb24pCiB7Ci0gICAgc2l6ZV90IGluZGV4ID0gbV9saXN0LmZpbmQocmVnaW9uKTsKLSAg
ICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIG1f
bGlzdC5yZW1vdmUoaW5kZXgpOwotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIFZUVFJlZ2lv
bkxpc3Q6OmNsZWFyKCkKLXsKLSAgICBtX2xpc3QuY2xlYXIoKTsKKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwLCBzaXplID0gbV92ZWN0b3Iuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAg
IGlmIChtX3ZlY3RvcltpXS5wdHIoKSA9PSAmcmVnaW9uKSB7CisgICAgICAgICAgICBtX3ZlY3Rv
ci5yZW1vdmUoaSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmgKaW5kZXggMmZkZGRjMmVkMTlhNTZl
NDgxYWFjZjQ2NWJjODhhN2IyYjdmY2NlMy4uN2Y5ZmQ1NWRjYmUxMjQ3ZjI4YjljMzkzOWMyMDhi
ZThlOTQwNmQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdp
b25MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmgK
QEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjksMzYgKzI5LDQzIEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiVlRU
UmVnaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBWVFRSZWdpb25MaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8VlRUUmVnaW9uTGlz
dD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VlRUUmVnaW9uTGlzdD4gY3JlYXRlKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZUVFJlZ2lvbkxpc3QpOwotICAgIH0K
LQotICAgIH5WVFRSZWdpb25MaXN0KCkgeyB9Ci0KLSAgICB1bnNpZ25lZCBsb25nIGxlbmd0aCgp
IGNvbnN0OworICAgIHN0YXRpYyBSZWY8VlRUUmVnaW9uTGlzdD4gY3JlYXRlKCk7CiAKKyAgICB1
bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKICAgICBWVFRSZWdpb24qIGl0ZW0odW5zaWduZWQgaW5k
ZXgpIGNvbnN0OwogICAgIFZUVFJlZ2lvbiogZ2V0UmVnaW9uQnlJZChjb25zdCBTdHJpbmcmKSBj
b25zdDsKIAotICAgIHZvaWQgYWRkKFBhc3NSZWZQdHI8VlRUUmVnaW9uPik7Ci0gICAgYm9vbCBy
ZW1vdmUoVlRUUmVnaW9uKik7CisgICAgdm9pZCBhZGQoUmVmPFZUVFJlZ2lvbj4mJik7CisgICAg
dm9pZCByZW1vdmUoVlRUUmVnaW9uJik7CiAKIHByaXZhdGU6Ci0gICAgVlRUUmVnaW9uTGlzdCgp
OworICAgIFZUVFJlZ2lvbkxpc3QoKSA9IGRlZmF1bHQ7CisKICAgICB2b2lkIGNsZWFyKCk7CiAK
LSAgICBWZWN0b3I8UmVmUHRyPFZUVFJlZ2lvbj4+IG1fbGlzdDsKKyAgICBWZWN0b3I8UmVmPFZU
VFJlZ2lvbj4+IG1fdmVjdG9yOwogfTsKIAoraW5saW5lIFJlZjxWVFRSZWdpb25MaXN0PiBWVFRS
ZWdpb25MaXN0OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZUVFJlZ2lv
bkxpc3QpOworfQorCitpbmxpbmUgdW5zaWduZWQgVlRUUmVnaW9uTGlzdDo6bGVuZ3RoKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV92ZWN0b3Iuc2l6ZSgpOworfQorCitpbmxpbmUgdm9pZCBWVFRS
ZWdpb25MaXN0OjpjbGVhcigpCit7CisgICAgbV92ZWN0b3IuY2xlYXIoKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5pZGwKaW5kZXggNTM4MWQzOWM2NmYx
Y2ZjM2QwMjFiMWRjNDBlYzMyODE0MmM3YmNkMS4uODQzMWQ4YjUxYjJhZDQwZDlhMDkxYjY3Y2I4
NWZlNTA5NjA5YTg5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRS
ZWdpb25MaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxp
c3QuaWRsCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjQsMTIgKzI1LDExIEBACiAgKi8KIAogWwotICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogICAg
IENvbmRpdGlvbmFsPVZJREVPX1RSQUNLLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUs
CisgICAgTm9JbnRlcmZhY2VPYmplY3QsCiBdIGludGVyZmFjZSBWVFRSZWdpb25MaXN0IHsKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgZ2V0dGVyIFZU
VFJlZ2lvbiBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwotICAgIFZUVFJlZ2lvbiBnZXRSZWdp
b25CeUlkKERPTVN0cmluZyBpZCk7CisgICAgZ2V0dGVyIFZUVFJlZ2lvbj8gaXRlbSh1bnNpZ25l
ZCBsb25nIGluZGV4KTsKKyAgICBWVFRSZWdpb24/IGdldFJlZ2lvbkJ5SWQoRE9NU3RyaW5nIGlk
KTsKIH07Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFj
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCmluZGV4IDgy
NzAwOWU1MGIxNzM3YjliMGZlM2IwYWRlN2NlNzVjYTQxMGI4MTYuLmY2NjJkYWUzYTY3OTRlZGQ3
YzYzMTVhZmFlY2U5ODIyN2RjNmM2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVmlkZW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRl
b1RyYWNrLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIw
MTIsIDIwMTMgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzAsMTIgKzMwLDEwIEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKIAotI2luY2x1ZGUgIlZpZGVvVHJhY2suaCIKLQotI2luY2x1ZGUgIkV2ZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tMaXN0
LmgiCiAKQEAgLTgxLDEwICs3OSwxMCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6
OmNvbW1lbnRhcnlLZXl3b3JkKCkKICAgICByZXR1cm4gY29tbWVudGFyeTsKIH0KIAotVmlkZW9U
cmFjazo6VmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8Vmlk
ZW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKLSAgICA6IE1lZGlhVHJhY2tCYXNlKE1lZGlh
VHJhY2tCYXNlOjpWaWRlb1RyYWNrLCB0cmFja1ByaXZhdGUtPmlkKCksIHRyYWNrUHJpdmF0ZS0+
bGFiZWwoKSwgdHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpKQotICAgICwgbV9zZWxlY3RlZCh0cmFj
a1ByaXZhdGUtPnNlbGVjdGVkKCkpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCitWaWRlb1RyYWNr
OjpWaWRlb1RyYWNrKFZpZGVvVHJhY2tDbGllbnQmIGNsaWVudCwgVmlkZW9UcmFja1ByaXZhdGUm
IHRyYWNrUHJpdmF0ZSkKKyAgICA6IE1lZGlhVHJhY2tCYXNlKE1lZGlhVHJhY2tCYXNlOjpWaWRl
b1RyYWNrLCB0cmFja1ByaXZhdGUuaWQoKSwgdHJhY2tQcml2YXRlLmxhYmVsKCksIHRyYWNrUHJp
dmF0ZS5sYW5ndWFnZSgpKQorICAgICwgbV9zZWxlY3RlZCh0cmFja1ByaXZhdGUuc2VsZWN0ZWQo
KSkKKyAgICAsIG1fY2xpZW50KCZjbGllbnQpCiAgICAgLCBtX3ByaXZhdGUodHJhY2tQcml2YXRl
KQogewogICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwpAQCAtOTMsMTUgKzkxLDEyIEBA
IFZpZGVvVHJhY2s6OlZpZGVvVHJhY2soVmlkZW9UcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVm
UHRyPFZpZGVvVHJhY2tQcml2YXRlPiB0CiAKIFZpZGVvVHJhY2s6On5WaWRlb1RyYWNrKCkKIHsK
LSAgICBtX3ByaXZhdGUtPnNldENsaWVudCgwKTsKKyAgICBtX3ByaXZhdGUtPnNldENsaWVudChu
dWxscHRyKTsKIH0KIAotdm9pZCBWaWRlb1RyYWNrOjpzZXRQcml2YXRlKFBhc3NSZWZQdHI8Vmlk
ZW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKK3ZvaWQgVmlkZW9UcmFjazo6c2V0UHJpdmF0
ZShWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewotICAgIEFTU0VSVChtX3ByaXZh
dGUpOwotICAgIEFTU0VSVCh0cmFja1ByaXZhdGUpOwotCi0gICAgaWYgKG1fcHJpdmF0ZSA9PSB0
cmFja1ByaXZhdGUpCisgICAgaWYgKG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQog
ICAgICAgICByZXR1cm47CiAKICAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKQEAg
LTExNCwyMCArMTA5LDEyIEBAIHZvaWQgVmlkZW9UcmFjazo6c2V0UHJpdmF0ZShQYXNzUmVmUHRy
PFZpZGVvVHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCiAKIGJvb2wgVmlkZW9UcmFjazo6aXNW
YWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkgY29uc3QKIHsKLSAgICBpZiAodmFs
dWUgPT0gYWx0ZXJuYXRpdmVLZXl3b3JkKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlm
ICh2YWx1ZSA9PSBjYXB0aW9uc0tleXdvcmQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
aWYgKHZhbHVlID09IG1haW5LZXl3b3JkKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlm
ICh2YWx1ZSA9PSBzaWduS2V5d29yZCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAo
dmFsdWUgPT0gc3VidGl0bGVzS2V5d29yZCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBp
ZiAodmFsdWUgPT0gY29tbWVudGFyeUtleXdvcmQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0K
LSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHZhbHVlID09IGFsdGVybmF0aXZlS2V5d29y
ZCgpCisgICAgICAgIHx8IHZhbHVlID09IGNvbW1lbnRhcnlLZXl3b3JkKCkKKyAgICAgICAgfHwg
dmFsdWUgPT0gY2FwdGlvbnNLZXl3b3JkKCkKKyAgICAgICAgfHwgdmFsdWUgPT0gbWFpbktleXdv
cmQoKQorICAgICAgICB8fCB2YWx1ZSA9PSBzaWduS2V5d29yZCgpCisgICAgICAgIHx8IHZhbHVl
ID09IHN1YnRpdGxlc0tleXdvcmQoKTsKIH0KIAogdm9pZCBWaWRlb1RyYWNrOjpzZXRTZWxlY3Rl
ZChjb25zdCBib29sIHNlbGVjdGVkKQpAQCAtMTM5LDQ2ICsxMjYsNDQgQEAgdm9pZCBWaWRlb1Ry
YWNrOjpzZXRTZWxlY3RlZChjb25zdCBib29sIHNlbGVjdGVkKQogICAgIG1fcHJpdmF0ZS0+c2V0
U2VsZWN0ZWQoc2VsZWN0ZWQpOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVu
dC0+dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCh0aGlzKTsKKyAgICAgICAgbV9jbGllbnQtPnZp
ZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoKnRoaXMpOwogfQogCiBzaXplX3QgVmlkZW9UcmFjazo6
aW5iYW5kVHJhY2tJbmRleCgpCiB7Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7CiAgICAgcmV0dXJu
IG1fcHJpdmF0ZS0+dHJhY2tJbmRleCgpOwogfQogCi12b2lkIFZpZGVvVHJhY2s6OnNlbGVjdGVk
Q2hhbmdlZChWaWRlb1RyYWNrUHJpdmF0ZSogdHJhY2tQcml2YXRlLCBib29sIHNlbGVjdGVkKQor
dm9pZCBWaWRlb1RyYWNrOjpzZWxlY3RlZENoYW5nZWQoYm9vbCBzZWxlY3RlZCkKIHsKLSAgICBB
U1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAg
ICAgc2V0U2VsZWN0ZWQoc2VsZWN0ZWQpOwogfQogCi12b2lkIFZpZGVvVHJhY2s6OmlkQ2hhbmdl
ZChUcmFja1ByaXZhdGVCYXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQp
Cit2b2lkIFZpZGVvVHJhY2s6OmlkQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKQogewot
ICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRl
KTsKICAgICBzZXRJZChpZCk7CiB9CiAKLXZvaWQgVmlkZW9UcmFjazo6bGFiZWxDaGFuZ2VkKFRy
YWNrUHJpdmF0ZUJhc2UqIHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkK
K3ZvaWQgVmlkZW9UcmFjazo6bGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwp
CiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3By
aXZhdGUpOwogICAgIHNldExhYmVsKGxhYmVsKTsKIH0KIAotdm9pZCBWaWRlb1RyYWNrOjpsYW5n
dWFnZUNoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNT
dHJpbmcmIGxhbmd1YWdlKQordm9pZCBWaWRlb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoY29uc3Qg
QXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0
ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2Up
OwogfQogCi12b2lkIFZpZGVvVHJhY2s6OndpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSogdHJh
Y2tQcml2YXRlKQordm9pZCBWaWRlb1RyYWNrOjp3aWxsUmVtb3ZlKCkKIHsKLSAgICBBU1NFUlRf
VU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7Ci0gICAgbWVk
aWFFbGVtZW50KCktPnJlbW92ZVZpZGVvVHJhY2soKnRoaXMpOworICAgIGF1dG8qIGVsZW1lbnQg
PSBtZWRpYUVsZW1lbnQoKTsKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKyAg
ICBlbGVtZW50LT5yZW1vdmVWaWRlb1RyYWNrKCp0aGlzKTsKIH0KIAogI2lmIEVOQUJMRShNRURJ
QV9TT1VSQ0UpCisKIHZvaWQgVmlkZW9UcmFjazo6c2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcm
IGtpbmQpCiB7CiAgICAgLy8gMTAuMSBraW5kLCBvbiBzZXR0aW5nOgpAQCAtMTkzLDcgKzE3OCw3
IEBAIHZvaWQgVmlkZW9UcmFjazo6c2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQpCiAg
ICAgLy8gMy4gSWYgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhpcyB0cmFjayBpcyBu
b3QgbnVsbCwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZQogICAgIC8vIGV2ZW50
IG5hbWVkIGNoYW5nZSBhdCBzb3VyY2VCdWZmZXIudmlkZW9UcmFja3MuCiAgICAgaWYgKG1fc291
cmNlQnVmZmVyKQotICAgICAgICBtX3NvdXJjZUJ1ZmZlci0+dmlkZW9UcmFja3MoKS0+c2NoZWR1
bGVDaGFuZ2VFdmVudCgpOworICAgICAgICBtX3NvdXJjZUJ1ZmZlci0+dmlkZW9UcmFja3MoKS5z
Y2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICAgICAvLyA0LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBh
IHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2UgYXQgdGhlIFZpZGVvVHJhY2tMaXN0IG9iamVjdCBy
ZWZlcmVuY2VkIGJ5CiAgICAgLy8gdGhlIHZpZGVvVHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRN
TE1lZGlhRWxlbWVudC4KQEAgLTIxNCwxMiArMTk5LDEzIEBAIHZvaWQgVmlkZW9UcmFjazo6c2V0
TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKICAgICAvLyAzLiBJZiB0aGUg
c291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1
ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlCiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0
IHNvdXJjZUJ1ZmZlci52aWRlb1RyYWNrcy4KICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAg
ICAgIG1fc291cmNlQnVmZmVyLT52aWRlb1RyYWNrcygpLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7
CisgICAgICAgIG1fc291cmNlQnVmZmVyLT52aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZl
bnQoKTsKIAogICAgIC8vIDQuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5h
bWVkIGNoYW5nZSBhdCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAg
ICAvLyB0aGUgdmlkZW9UcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50Lgog
ICAgIG1lZGlhRWxlbWVudCgpLT52aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsK
IH0KKwogI2VuZGlmCiAKIHZvaWQgVmlkZW9UcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKCkK
QEAgLTIyNywyOSArMjEzLDI3IEBAIHZvaWQgVmlkZW9UcmFjazo6dXBkYXRlS2luZEZyb21Qcml2
YXRlKCkKICAgICBzd2l0Y2ggKG1fcHJpdmF0ZS0+a2luZCgpKSB7CiAgICAgY2FzZSBWaWRlb1Ry
YWNrUHJpdmF0ZTo6QWx0ZXJuYXRpdmU6CiAgICAgICAgIHNldEtpbmRJbnRlcm5hbChWaWRlb1Ry
YWNrOjphbHRlcm5hdGl2ZUtleXdvcmQoKSk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1
cm47CiAgICAgY2FzZSBWaWRlb1RyYWNrUHJpdmF0ZTo6Q2FwdGlvbnM6CiAgICAgICAgIHNldEtp
bmRJbnRlcm5hbChWaWRlb1RyYWNrOjpjYXB0aW9uc0tleXdvcmQoKSk7Ci0gICAgICAgIGJyZWFr
OworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBWaWRlb1RyYWNrUHJpdmF0ZTo6TWFpbjoKICAg
ICAgICAgc2V0S2luZEludGVybmFsKFZpZGVvVHJhY2s6Om1haW5LZXl3b3JkKCkpOwotICAgICAg
ICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmlkZW9UcmFja1ByaXZhdGU6OlNp
Z246CiAgICAgICAgIHNldEtpbmRJbnRlcm5hbChWaWRlb1RyYWNrOjpzaWduS2V5d29yZCgpKTsK
LSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFZpZGVvVHJhY2tQcml2
YXRlOjpTdWJ0aXRsZXM6CiAgICAgICAgIHNldEtpbmRJbnRlcm5hbChWaWRlb1RyYWNrOjpzdWJ0
aXRsZXNLZXl3b3JkKCkpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgVmlkZW9UcmFja1ByaXZhdGU6OkNvbW1lbnRhcnk6CiAgICAgICAgIHNldEtpbmRJbnRlcm5h
bChWaWRlb1RyYWNrOjpjb21tZW50YXJ5S2V5d29yZCgpKTsKLSAgICAgICAgYnJlYWs7CisgICAg
ICAgIHJldHVybjsKICAgICBjYXNlIFZpZGVvVHJhY2tQcml2YXRlOjpOb25lOgogICAgICAgICBz
ZXRLaW5kSW50ZXJuYWwoZW1wdHlTdHJpbmcoKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1
bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKKyAgICAg
ICAgcmV0dXJuOwogICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9W
aWRlb1RyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaAppbmRl
eCBjNTJmOWIzYjEyZmM2OTY4OGRhN2ZkNjcwMzM3MDFmYjFiODRmMzJjLi5lYmVlODI5ZTE2OThm
YzFjMmIxM2M1YjBlMTBmYzk0OWRlZTJiNTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZpZGVvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Zp
ZGVvVHJhY2suaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAx
MiwgMjAxMyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSwxMiArMzksMTIgQEAgY2xhc3MgVmlkZW9UcmFjazsK
IGNsYXNzIFZpZGVvVHJhY2tDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgflZpZGVvVHJh
Y2tDbGllbnQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdl
ZChWaWRlb1RyYWNrKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRD
aGFuZ2VkKFZpZGVvVHJhY2smKSA9IDA7CiB9OwogCi1jbGFzcyBWaWRlb1RyYWNrIGZpbmFsIDog
cHVibGljIE1lZGlhVHJhY2tCYXNlLCBwdWJsaWMgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQgewor
Y2xhc3MgVmlkZW9UcmFjayBmaW5hbCA6IHB1YmxpYyBNZWRpYVRyYWNrQmFzZSwgcHJpdmF0ZSBW
aWRlb1RyYWNrUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxWaWRlb1Ry
YWNrPiBjcmVhdGUoVmlkZW9UcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPFZpZGVvVHJh
Y2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCisgICAgc3RhdGljIFJlZjxWaWRlb1RyYWNrPiBjcmVh
dGUoVmlkZW9UcmFja0NsaWVudCYgY2xpZW50LCBWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2
YXRlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFjayhjbGll
bnQsIHRyYWNrUHJpdmF0ZSkpOwogICAgIH0KQEAgLTU2LDQ4ICs1Niw0NiBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc2lnbktleXdvcmQoKTsKICAgICBzdGF0aWMg
Y29uc3QgQXRvbWljU3RyaW5nJiBzdWJ0aXRsZXNLZXl3b3JkKCk7CiAgICAgc3RhdGljIGNvbnN0
IEF0b21pY1N0cmluZyYgY29tbWVudGFyeUtleXdvcmQoKTsKLSAgICBjb25zdCBBdG9taWNTdHJp
bmcmIGRlZmF1bHRLaW5kS2V5d29yZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGVtcHR5QXRv
bTsgfQogCiAgICAgYm9vbCBzZWxlY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0ZWQ7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWQoY29uc3QgYm9vbCk7CiAKLSAgICB2b2lkIGNs
ZWFyQ2xpZW50KCkgb3ZlcnJpZGUgeyBtX2NsaWVudCA9IDA7IH0KKyAgICB2b2lkIGNsZWFyQ2xp
ZW50KCkgZmluYWwgeyBtX2NsaWVudCA9IG51bGxwdHI7IH0KICAgICBWaWRlb1RyYWNrQ2xpZW50
KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQogCiAgICAgc2l6ZV90IGluYmFu
ZFRyYWNrSW5kZXgoKTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgdm9pZCBzZXRL
aW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0TGFuZ3VhZ2Uo
Y29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRLaW5kKGNvbnN0IEF0
b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgc2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3Ry
aW5nJikgZmluYWw7CiAjZW5kaWYKIAogICAgIGNvbnN0IE1lZGlhRGVzY3JpcHRpb24mIGRlc2Ny
aXB0aW9uKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldFByaXZhdGUoUGFzc1JlZlB0cjxWaWRlb1Ry
YWNrUHJpdmF0ZT4pOwotCi1wcm90ZWN0ZWQ6Ci0gICAgVmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xp
ZW50KiwgUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4gcHJpdmF0ZVRyYWNrKTsKKyAgICB2
b2lkIHNldFByaXZhdGUoVmlkZW9UcmFja1ByaXZhdGUmKTsKIAogcHJpdmF0ZToKLSAgICBib29s
IGlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IG92ZXJyaWRlOworICAgIFZp
ZGVvVHJhY2soVmlkZW9UcmFja0NsaWVudCYsIFZpZGVvVHJhY2tQcml2YXRlJik7CisKKyAgICBi
b29sIGlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IGZpbmFsOwogCiAgICAg
Ly8gVmlkZW9UcmFja1ByaXZhdGVDbGllbnQKLSAgICB2b2lkIHNlbGVjdGVkQ2hhbmdlZChWaWRl
b1RyYWNrUHJpdmF0ZSosIGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2VsZWN0ZWRDaGFuZ2Vk
KGJvb2wpIGZpbmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAotICAgIHZvaWQg
aWRDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWlj
U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRl
QmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbFJlbW92
ZShUcmFja1ByaXZhdGVCYXNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBpZENoYW5nZWQoY29uc3Qg
QXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYWJlbENoYW5nZWQoY29uc3QgQXRvbWlj
U3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWljU3Ry
aW5nJikgZmluYWw7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAKLSAgICBib29sIGVu
YWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzZWxlY3RlZCgpOyB9CisgICAgYm9vbCBl
bmFibGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gc2VsZWN0ZWQoKTsgfQogCiAgICAgdm9pZCB1
cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIAogICAgIGJvb2wgbV9zZWxlY3RlZDsKICAgICBWaWRl
b1RyYWNrQ2xpZW50KiBtX2NsaWVudDsKIAotICAgIFJlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4g
bV9wcml2YXRlOworICAgIFJlZjxWaWRlb1RyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmlu
ZGV4IDJjMTIzOTVmYTY2MWQxNWJiNTQ1MDg4OTRmYzBhYWNkZDU1Y2U2ZTcuLjNiZDg4YjRmNjM5
N2JmYTY2YWZiZTk2NmZiM2QzM2FkYWZhYTlhMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IEVyaWMg
U2VpZGVsIChlcmljQHdlYmtpdC5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICogQ29weXJpZ2h0
IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpA
QCAtMTcyLDcgKzE3Miw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFu
ZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBs
b2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXIqKSBv
dmVycmlkZSB7IH0KKyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mLCBGaWxlSWNvbkxvYWRlciYpIG92ZXJyaWRlIHsgfQogCiAgICAgdm9pZCBlbGVtZW50RGlk
Rm9jdXMoY29uc3QgTm9kZSopIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgZWxlbWVudERpZEJsdXIo
Y29uc3QgTm9kZSopIG92ZXJyaWRlIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1BpbmdMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3Bw
CmluZGV4IDAxODg5NDZlN2Q4ZGY0MjUyYzFlZDQ5NGFkN2E5OTE2NzY5MTE2OGIuLjQ3MzJhOTI1
NTU3MmYxZjg2YmU5M2VkMTVmZjRkZTE2YmM5MzAwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGlu
Z0xvYWRlci5jcHAKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgUm9v
cGVzaCBDaGFuZGVyIChyb29wQHJvb3BjLm5ldCkKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKQEAgLTU3LDM4ICs1Nyw1MCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLSNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotc3RhdGljIENvbnRlbnRFeHRlbnNp
b25zOjpCbG9ja2VkU3RhdHVzIHByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKGNv
bnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwsIFJlc291cmNlVHlwZSByZXNvdXJjZVR5
cGUpCisjaWYgIUVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCisKKy8vIFJldHVybnMgdHJ1ZSBp
ZiB3ZSBzaG91bGQgYmxvY2sgdGhlIGxvYWQuCitzdGF0aWMgaW5saW5lIGJvb2wgcHJvY2Vzc0Nv
bnRlbnRFeHRlbnNpb25SdWxlc0ZvckxvYWQoY29uc3QgRnJhbWUmLCBSZXNvdXJjZVJlcXVlc3Qm
LCBSZXNvdXJjZVR5cGUpCiB7Ci0gICAgaWYgKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRl
ciA9IGZyYW1lLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpIHsKLSAgICAgICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBmcmFtZS5wYWdlKCkpCi0gICAgICAgICAgICByZXR1cm4gcGFnZS0+dXNlckNvbnRl
bnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKHVybCwgcmVz
b3VyY2VUeXBlLCAqZG9jdW1lbnRMb2FkZXIpOwotICAgIH0KLSAgICByZXR1cm4geyB9OworICAg
IHJldHVybiBmYWxzZTsKK30KKworI2Vsc2UKKworLy8gUmV0dXJucyB0cnVlIGlmIHdlIHNob3Vs
ZCBibG9jayB0aGUgbG9hZC4KK3N0YXRpYyBib29sIHByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVs
ZXNGb3JMb2FkKGNvbnN0IEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBS
ZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlKQoreworICAgIGF1dG8qIGRvY3VtZW50TG9hZGVyID0g
ZnJhbWUubG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKTsKKyAgICBpZiAoIWRvY3VtZW50TG9hZGVy
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgYXV0byogcGFnZSA9IGZyYW1lLnBhZ2UoKTsK
KyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBhdXRvIHN0YXR1cyA9
IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVz
Rm9yTG9hZChyZXF1ZXN0LnVybCgpLCByZXNvdXJjZVR5cGUsICpkb2N1bWVudExvYWRlcik7Cisg
ICAgYXBwbHlCbG9ja2VkU3RhdHVzVG9SZXF1ZXN0KHN0YXR1cywgcmVxdWVzdCk7CisgICAgcmV0
dXJuIHN0YXR1cy5ibG9ja2VkTG9hZDsKIH0KKwogI2VuZGlmCiAKIHZvaWQgUGluZ0xvYWRlcjo6
bG9hZEltYWdlKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiB7Ci0gICAgaWYgKCFmcmFt
ZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5jYW5EaXNwbGF5KHVybCkpIHsKKyAgICBB
U1NFUlQoZnJhbWUuZG9jdW1lbnQoKSk7CisgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUuZG9j
dW1lbnQoKTsKKworICAgIGlmICghZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS0+Y2FuRGlzcGxh
eSh1cmwpKSB7CiAgICAgICAgIEZyYW1lTG9hZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQoJmZy
YW1lLCB1cmwpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgUmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QodXJsKTsKLQotI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgYXV0
byBibG9ja2VkU3RhdHVzID0gcHJvY2Vzc0NvbnRlbnRFeHRlbnNpb25SdWxlc0ZvckxvYWQoZnJh
bWUsIHVybCwgUmVzb3VyY2VUeXBlOjpJbWFnZSk7Ci0gICAgYXBwbHlCbG9ja2VkU3RhdHVzVG9S
ZXF1ZXN0KGJsb2NrZWRTdGF0dXMsIHJlcXVlc3QpOwotICAgIGlmIChibG9ja2VkU3RhdHVzLmJs
b2NrZWRMb2FkKQorICAgIGlmIChwcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZChm
cmFtZSwgcmVxdWVzdCwgUmVzb3VyY2VUeXBlOjpJbWFnZSkpCiAgICAgICAgIHJldHVybjsKLSNl
bmRpZgogCi0gICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLmRvY3VtZW50KCkpCi0g
ICAgICAgIGRvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJl
UmVxdWVzdElmTmVlZGVkKHJlcXVlc3QsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVS
ZXF1ZXN0VHlwZTo6TG9hZCk7CisgICAgZG9jdW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5KCkt
PnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRlZChyZXF1ZXN0LCBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6OkxvYWQpOwogCiAgICAgcmVxdWVzdC5zZXRIVFRQ
SGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNhY2hlQ29udHJvbCwgIm1heC1hZ2U9MCIpOwot
ICAgIFN0cmluZyByZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVh
ZGVyKGZyYW1lLmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIHJlcXVlc3QudXJsKCksIGZy
YW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSk7CisgICAgU3RyaW5nIHJlZmVycmVyID0g
U2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIoZG9jdW1lbnQucmVmZXJyZXJQ
b2xpY3koKSwgcmVxdWVzdC51cmwoKSwgZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigp
KTsKICAgICBpZiAoIXJlZmVycmVyLmlzRW1wdHkoKSkKICAgICAgICAgcmVxdWVzdC5zZXRIVFRQ
UmVmZXJyZXIocmVmZXJyZXIpOwogICAgIGZyYW1lLmxvYWRlcigpLmFkZEV4dHJhRmllbGRzVG9T
dWJyZXNvdXJjZVJlcXVlc3QocmVxdWVzdCk7CkBAIC05OSwxOSArMTExLDE3IEBAIHZvaWQgUGlu
Z0xvYWRlcjo6bG9hZEltYWdlKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAvLyBodHRw
Oi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9s
aW5rcy5odG1sI2h5cGVybGluay1hdWRpdGluZwogdm9pZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhG
cmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcGluZ1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVS
TCkKIHsKKyAgICBBU1NFUlQoZnJhbWUuZG9jdW1lbnQoKSk7CisKICAgICBpZiAoIXBpbmdVUkwu
cHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdChwaW5nVVJMKTsKLSAgICAKLSNpZiBFTkFCTEUoQ09OVEVOVF9FWFRF
TlNJT05TKQotICAgIGF1dG8gYmxvY2tlZFN0YXR1cyA9IHByb2Nlc3NDb250ZW50RXh0ZW5zaW9u
UnVsZXNGb3JMb2FkKGZyYW1lLCBwaW5nVVJMLCBSZXNvdXJjZVR5cGU6OlJhdyk7Ci0gICAgYXBw
bHlCbG9ja2VkU3RhdHVzVG9SZXF1ZXN0KGJsb2NrZWRTdGF0dXMsIHJlcXVlc3QpOwotICAgIGlm
IChibG9ja2VkU3RhdHVzLmJsb2NrZWRMb2FkKQorICAgIGlmIChwcm9jZXNzQ29udGVudEV4dGVu
c2lvblJ1bGVzRm9yTG9hZChmcmFtZSwgcmVxdWVzdCwgUmVzb3VyY2VUeXBlOjpSYXcpKQogICAg
ICAgICByZXR1cm47Ci0jZW5kaWYKIAotICAgIGZyYW1lLmRvY3VtZW50KCktPmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdCwgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsKKyAgICBhdXRv
JiBkb2N1bWVudCA9ICpmcmFtZS5kb2N1bWVudCgpOworICAgIGRvY3VtZW50LmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdCwgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsKIAogICAgIHJl
cXVlc3Quc2V0SFRUUE1ldGhvZCgiUE9TVCIpOwogICAgIHJlcXVlc3Quc2V0SFRUUENvbnRlbnRU
eXBlKCJ0ZXh0L3BpbmciKTsKQEAgLTExOSwxNCArMTI5LDE0IEBAIHZvaWQgUGluZ0xvYWRlcjo6
c2VuZFBpbmcoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHBpbmdVUkwsIGNvbnN0IFVSTCYgZGVz
dGluYXRpCiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNh
Y2hlQ29udHJvbCwgIm1heC1hZ2U9MCIpOwogICAgIGZyYW1lLmxvYWRlcigpLmFkZEV4dHJhRmll
bGRzVG9TdWJyZXNvdXJjZVJlcXVlc3QocmVxdWVzdCk7CiAKLSAgICBTZWN1cml0eU9yaWdpbiog
c291cmNlT3JpZ2luID0gZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKLSAgICBS
ZWY8U2VjdXJpdHlPcmlnaW4+IHBpbmdPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShwaW5n
VVJMKSk7Ci0gICAgRnJhbWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChyZXF1ZXN0LCBz
b3VyY2VPcmlnaW4tPnRvU3RyaW5nKCkpOworICAgIEFTU0VSVChkb2N1bWVudC5zZWN1cml0eU9y
aWdpbigpKTsKKyAgICBhdXRvJiBzb3VyY2VPcmlnaW4gPSAqZG9jdW1lbnQuc2VjdXJpdHlPcmln
aW4oKTsKKyAgICBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKHJlcXVlc3QsIHNv
dXJjZU9yaWdpbi50b1N0cmluZygpKTsKICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChI
VFRQSGVhZGVyTmFtZTo6UGluZ1RvLCBkZXN0aW5hdGlvblVSTCk7CiAgICAgaWYgKCFTZWN1cml0
eVBvbGljeTo6c2hvdWxkSGlkZVJlZmVycmVyKHBpbmdVUkwsIGZyYW1lLmxvYWRlcigpLm91dGdv
aW5nUmVmZXJyZXIoKSkpIHsKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OlBpbmdGcm9tLCBmcmFtZS5kb2N1bWVudCgpLT51cmwoKSk7Ci0gICAgICAg
IGlmICghc291cmNlT3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydCgmcGluZ09yaWdpbi5nZXQo
KSkpIHsKLSAgICAgICAgICAgIFN0cmluZyByZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5OjpnZW5l
cmF0ZVJlZmVycmVySGVhZGVyKGZyYW1lLmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIHBp
bmdVUkwsIGZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSk7CisgICAgICAgIHJlcXVl
c3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpQaW5nRnJvbSwgZG9jdW1lbnQu
dXJsKCkpOworICAgICAgICBpZiAoIXNvdXJjZU9yaWdpbi5pc1NhbWVTY2hlbWVIb3N0UG9ydChT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHBpbmdVUkwpLnB0cigpKSkgeworICAgICAgICAgICAgU3Ry
aW5nIHJlZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIoZG9j
dW1lbnQucmVmZXJyZXJQb2xpY3koKSwgcGluZ1VSTCwgZnJhbWUubG9hZGVyKCkub3V0Z29pbmdS
ZWZlcnJlcigpKTsKICAgICAgICAgICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgpKQogICAgICAg
ICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKHJlZmVycmVyKTsKICAgICAgICAgfQpA
QCAtMTM1LDE5ICsxNDUsMTYgQEAgdm9pZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhGcmFtZSYgZnJh
bWUsIGNvbnN0IFVSTCYgcGluZ1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGkKICAgICBzdGFydFBp
bmdMb2FkKGZyYW1lLCByZXF1ZXN0LCBTaG91bGRGb2xsb3dSZWRpcmVjdHM6Olllcyk7CiB9CiAK
LXZvaWQgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0
IFVSTCYgcmVwb3J0VVJMLCBSZWZQdHI8Rm9ybURhdGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBv
cnRUeXBlIHJlcG9ydFR5cGUpCit2b2lkIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQo
RnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgUmVmPEZvcm1EYXRhPiYmIHJlcG9y
dCwgVmlvbGF0aW9uUmVwb3J0VHlwZSByZXBvcnRUeXBlKQogewotICAgIFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0KHJlcG9ydFVSTCk7CisgICAgQVNTRVJUKGZyYW1lLmRvY3VtZW50KCkpOwogCi0j
aWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAgICBhdXRvIGJsb2NrZWRTdGF0dXMgPSBw
cm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZChmcmFtZSwgcmVwb3J0VVJMLCBSZXNv
dXJjZVR5cGU6OlJhdyk7Ci0gICAgYXBwbHlCbG9ja2VkU3RhdHVzVG9SZXF1ZXN0KGJsb2NrZWRT
dGF0dXMsIHJlcXVlc3QpOwotICAgIGlmIChibG9ja2VkU3RhdHVzLmJsb2NrZWRMb2FkKQorICAg
IFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHJlcG9ydFVSTCk7CisgICAgaWYgKHByb2Nlc3NDb250
ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKGZyYW1lLCByZXF1ZXN0LCBSZXNvdXJjZVR5cGU6OlJh
dykpCiAgICAgICAgIHJldHVybjsKLSNlbmRpZgogCi0gICAgaWYgKERvY3VtZW50KiBkb2N1bWVu
dCA9IGZyYW1lLmRvY3VtZW50KCkpCi0gICAgICAgIGRvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQ
b2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKHJlcXVlc3QsIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CisgICAgYXV0byYgZG9j
dW1lbnQgPSAqZnJhbWUuZG9jdW1lbnQoKTsKKyAgICBkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQ
b2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKHJlcXVlc3QsIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CiAKICAgICByZXF1ZXN0
LnNldEhUVFBNZXRob2QoQVNDSUlMaXRlcmFsKCJQT1NUIikpOwogICAgIHJlcXVlc3Quc2V0SFRU
UEJvZHkoV1RGTW92ZShyZXBvcnQpKTsKQEAgLTE2MSwxOCArMTY4LDE2IEBAIHZvaWQgUGluZ0xv
YWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcmVwb3J0
VVJMLCBSZWZQdHI8CiAgICAgfQogCiAgICAgYm9vbCByZW1vdmVDb29raWVzID0gdHJ1ZTsKLSAg
ICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUuZG9jdW1lbnQoKSkgewotICAgICAgICBp
ZiAoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luID0gZG9jdW1lbnQtPnNlY3VyaXR5T3Jp
Z2luKCkpIHsKLSAgICAgICAgICAgIGlmIChzZWN1cml0eU9yaWdpbi0+aXNTYW1lU2NoZW1lSG9z
dFBvcnQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShyZXBvcnRVUkwpLnB0cigpKSkKLSAgICAgICAg
ICAgICAgICByZW1vdmVDb29raWVzID0gZmFsc2U7Ci0gICAgICAgIH0KKyAgICBpZiAoYXV0byog
c2VjdXJpdHlPcmlnaW4gPSBkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpKSB7CisgICAgICAgIGlm
IChzZWN1cml0eU9yaWdpbi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQoU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZShyZXBvcnRVUkwpLnB0cigpKSkKKyAgICAgICAgICAgIHJlbW92ZUNvb2tpZXMgPSBmYWxz
ZTsKICAgICB9CiAgICAgaWYgKHJlbW92ZUNvb2tpZXMpCiAgICAgICAgIHJlcXVlc3Quc2V0QWxs
b3dDb29raWVzKGZhbHNlKTsKIAogICAgIGZyYW1lLmxvYWRlcigpLmFkZEV4dHJhRmllbGRzVG9T
dWJyZXNvdXJjZVJlcXVlc3QocmVxdWVzdCk7CiAKLSAgICBTdHJpbmcgcmVmZXJyZXIgPSBTZWN1
cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihmcmFtZS5kb2N1bWVudCgpLT5yZWZl
cnJlclBvbGljeSgpLCByZXBvcnRVUkwsIGZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIo
KSk7CisgICAgU3RyaW5nIHJlZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJy
ZXJIZWFkZXIoZG9jdW1lbnQucmVmZXJyZXJQb2xpY3koKSwgcmVwb3J0VVJMLCBmcmFtZS5sb2Fk
ZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpOwogICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgpKQog
ICAgICAgICByZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihyZWZlcnJlcik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUGluZ0xvYWRlci5oCmluZGV4IGNmNjU3N2MzMzU2ZWEwNTgxYjUzOTE4OTE5OGZkZTg3NjRm
Yjk5MzcuLmIyOWU4ZGE4ZjgwOGE3YjA2MGU1MDk3OGZjMmFlZDJjZTJkOGYxMzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1BpbmdMb2FkZXIuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMSw3ICszMiw3IEBACiAKICNwcmFnbWEgb25jZQogCi0j
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC00OSw3ICs1MCw3IEBAIGNsYXNzIFBpbmdMb2FkZXIgewogcHVibGlj
OgogICAgIHN0YXRpYyB2b2lkIGxvYWRJbWFnZShGcmFtZSYsIGNvbnN0IFVSTCYpOwogICAgIHN0
YXRpYyB2b2lkIHNlbmRQaW5nKEZyYW1lJiwgY29uc3QgVVJMJiBwaW5nVVJMLCBjb25zdCBVUkwm
IGRlc3RpbmF0aW9uVVJMKTsKLSAgICBzdGF0aWMgdm9pZCBzZW5kVmlvbGF0aW9uUmVwb3J0KEZy
YW1lJiwgY29uc3QgVVJMJiByZXBvcnRVUkwsIFJlZlB0cjxGb3JtRGF0YT4mJiByZXBvcnQsIFZp
b2xhdGlvblJlcG9ydFR5cGUpOworICAgIHN0YXRpYyB2b2lkIHNlbmRWaW9sYXRpb25SZXBvcnQo
RnJhbWUmLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgUmVmPEZvcm1EYXRhPiYmIHJlcG9ydCwgVmlv
bGF0aW9uUmVwb3J0VHlwZSk7CiAKIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBTaG91bGRGb2xs
b3dSZWRpcmVjdHMgeyBObywgWWVzIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggNWMwMjU0
NGE1ZTdiZDNmMDZmYjFhYmFiMDFlZTI2YzhhMzQ0NmYzZS4uZDAxNWJhNDVhMzNhZWJjZTE3Mjlk
M2I5OWIyNTVmNTQ1MzAxZTc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDksIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICogQ29weXJpZ2h0
IChDKSAyMDEyLCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
QEAgLTQzOCw3ICs0MzgsNyBAQCB2b2lkIENocm9tZTo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFt
ZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIpCiAgICAgbV9jbGllbnQucnVu
T3BlblBhbmVsKGZyYW1lLCBmaWxlQ2hvb3Nlcik7CiB9CiAKLXZvaWQgQ2hyb21lOjpsb2FkSWNv
bkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9hZGVy
KiBsb2FkZXIpCit2b2lkIENocm9tZTo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciYgbG9hZGVyKQogewogICAgIG1fY2xpZW50
LmxvYWRJY29uRm9yRmlsZXMoZmlsZW5hbWVzLCBsb2FkZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgK
aW5kZXggZjJmMmIwYjFjM2MwYTlmM2EyNzVkMTRmMDJkM2RjMWE4ZWRhNGVhMS4uZjIzODYwYTJi
ZGFmM2MyOTNlMDE5M2MyY2E0OTJiYTZhODhmN2M1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICogQ29weXJp
Z2h0IChDKSAyMDEyLCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKQEAgLTI4LDkgKzI4LDcgQEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKLSNpZm5kZWYgX19PQkpDX18KLWNsYXNzIE5TVmlldzsKLSNlbmRpZgorT0JK
Q19DTEFTUyBOU1ZpZXc7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU5LDcg
KzE1Nyw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUq
LCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPik7Ci0gICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXIqKTsKKyAgICB2b2lkIGxvYWRJY29u
Rm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciYpOwogCiAgICAg
dm9pZCBkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFy
Z3VtZW50cyYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA0NWZl
YzU5OTgwNGU0M2U2ZTdkMTg5YTA4ZTZjZWI4MDIyOWQzNmZkLi40MjFjZGE5YTE3NmY5YWNhMGE0
NjExMGRiMmZhYTQwN2EwNjI0MDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5
LCAyMDEwLCAyMDExLCAyMDEyIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKS4KICAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTI3NSw3ICsyNzUsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nl
cj4pID0gMDsKICAgICAvLyBBc3luY2hyb25vdXMgcmVxdWVzdCB0byBsb2FkIGFuIGljb24gZm9y
IHNwZWNpZmllZCBmaWxlbmFtZXMuCi0gICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciopID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9h
ZGVyJikgPSAwOwogICAgICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEZvY3VzKGNv
bnN0IE5vZGUqKSB7IH07CiAgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IE5v
ZGUqKSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2Vj
dXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5
UG9saWN5LmNwcAppbmRleCBjYjc4ZDA2YTdlZjE0M2YyNmVlNTQ5NjM5YjI0OTU2NWM0NmFhMDY4
Li5mMDU5YjYwMTRjODRiN2ZhNGE3MzZmOTU0YTg5MTMxNGFiNzNhNWVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTEsNiAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSwgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjI1
LDggKzYyNSw4IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24o
Y29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAKICAgICBBU1NFUlQoIW1fZnJh
bWUgfHwgZWZmZWN0aXZlVmlvbGF0ZWREaXJlY3RpdmUgPT0gQ29udGVudFNlY3VyaXR5UG9saWN5
RGlyZWN0aXZlTmFtZXM6OmZyYW1lQW5jZXN0b3JzKTsKIAotICAgIERvY3VtZW50JiBkb2N1bWVu
dCA9IGlzPERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8RG9j
dW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50KCk7
Ci0gICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKTsKKyAgICBhdXRvJiBkb2N1bWVu
dCA9IGlzPERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8RG9j
dW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50KCk7
CisgICAgYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOwogICAgIEFTU0VSVCghbV9mcmFt
ZSB8fCBtX2ZyYW1lID09IGZyYW1lKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47
CkBAIC02NDYsMTMgKzY0NiwxNCBAQCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0
VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZWZmZWN0aXZlVmlvbGF0ZWREaXJlYwogICAgIFN0cmlu
ZyBvcmlnaW5hbFBvbGljeSA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5oZWFkZXIoKTsKICAgICBT
dHJpbmcgcmVmZXJyZXIgPSBkb2N1bWVudC5yZWZlcnJlcigpOwogICAgIEFTU0VSVChkb2N1bWVu
dC5sb2FkZXIoKSk7CisgICAgLy8gRklYTUU6IElzIGl0IHBvbGljeSB0byBub3QgdXNlIHRoZSBz
dGF0dXMgY29kZSBmb3IgSFRUUFMsIG9yIGlzIHRoYXQgYSBidWc/CiAgICAgdW5zaWduZWQgc2hv
cnQgc3RhdHVzQ29kZSA9IGRvY3VtZW50LnVybCgpLnByb3RvY29sSXMoImh0dHAiKSAmJiBkb2N1
bWVudC5sb2FkZXIoKSA/IGRvY3VtZW50LmxvYWRlcigpLT5yZXNwb25zZSgpLmh0dHBTdGF0dXND
b2RlKCkgOiAwOwogCiAgICAgU3RyaW5nIHNvdXJjZUZpbGU7CiAgICAgaW50IGxpbmVOdW1iZXIg
PSAwOwogICAgIGludCBjb2x1bW5OdW1iZXIgPSAwOwotICAgIFJlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+IHN0YWNrID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6
Y3VycmVudFN0YXRlKCksIDIpOwotICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSogY2FsbEZyYW1l
ID0gc3RhY2stPmZpcnN0Tm9uTmF0aXZlQ2FsbEZyYW1lKCk7CisgICAgYXV0byBzdGFjayA9IGNy
ZWF0ZVNjcmlwdENhbGxTdGFjayhKU01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgp
LCAyKTsKKyAgICBhdXRvKiBjYWxsRnJhbWUgPSBzdGFjay0+Zmlyc3ROb25OYXRpdmVDYWxsRnJh
bWUoKTsKICAgICBpZiAoY2FsbEZyYW1lICYmIGNhbGxGcmFtZS0+bGluZU51bWJlcigpKSB7CiAg
ICAgICAgIHNvdXJjZUZpbGUgPSBzdHJpcFVSTEZvclVzZUluUmVwb3J0KGRvY3VtZW50LCBVUkwo
VVJMKCksIGNhbGxGcmFtZS0+c291cmNlVVJMKCkpKTsKICAgICAgICAgbGluZU51bWJlciA9IGNh
bGxGcmFtZS0+bGluZU51bWJlcigpOwpAQCAtNjY1LDcgKzY2Niw3IEBAIHZvaWQgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9s
YXRlZERpcmVjCiAgICAgZG9jdW1lbnQuZW5xdWV1ZURvY3VtZW50RXZlbnQoU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zZWN1cml0eXBvbGljeXZpb2xh
dGlvbkV2ZW50LCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIGRvY3VtZW50VVJJLCByZWZlcnJlciwg
YmxvY2tlZFVSSSwgdmlvbGF0ZWREaXJlY3RpdmVUZXh0LCBlZmZlY3RpdmVWaW9sYXRlZERpcmVj
dGl2ZSwgb3JpZ2luYWxQb2xpY3ksIHNvdXJjZUZpbGUsIHN0YXR1c0NvZGUsIGxpbmVOdW1iZXIs
IGNvbHVtbk51bWJlcikpOwogCiAgICAgLy8gMi4gU2VuZCB2aW9sYXRpb24gcmVwb3J0IChpZiBh
cHBsaWNhYmxlKS4KLSAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcmVwb3J0VVJJcyA9IHZpb2xh
dGVkRGlyZWN0aXZlTGlzdC5yZXBvcnRVUklzKCk7CisgICAgYXV0byYgcmVwb3J0VVJJcyA9IHZp
b2xhdGVkRGlyZWN0aXZlTGlzdC5yZXBvcnRVUklzKCk7CiAgICAgaWYgKHJlcG9ydFVSSXMuaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTY5MywxMCArNjk0LDEwIEBAIHZvaWQgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3Rp
dmVWaW9sYXRlZERpcmVjCiAgICAgICAgIGNzcFJlcG9ydC0+c2V0SW50ZWdlcihBU0NJSUxpdGVy
YWwoImNvbHVtbi1udW1iZXIiKSwgY29sdW1uTnVtYmVyKTsKICAgICB9CiAKLSAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiByZXBvcnRPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgp
OworICAgIGF1dG8gcmVwb3J0T2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKICAg
ICByZXBvcnRPYmplY3QtPnNldE9iamVjdChBU0NJSUxpdGVyYWwoImNzcC1yZXBvcnQiKSwgV1RG
TW92ZShjc3BSZXBvcnQpKTsKIAotICAgIFJlZlB0cjxGb3JtRGF0YT4gcmVwb3J0ID0gRm9ybURh
dGE6OmNyZWF0ZShyZXBvcnRPYmplY3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7CisgICAgYXV0
byByZXBvcnQgPSBGb3JtRGF0YTo6Y3JlYXRlKHJlcG9ydE9iamVjdC0+dG9KU09OU3RyaW5nKCku
dXRmOCgpKTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIHVybCA6IHJlcG9ydFVSSXMpCiAgICAgICAg
IFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoKmZyYW1lLCBpczxEb2N1bWVudD4obV9z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KSA/IGRvY3VtZW50LmNvbXBsZXRlVVJMKHVybCkgOiBkb2N1
bWVudC5jb21wbGV0ZVVSTCh1cmwsIGJsb2NrZWRVUkwpLCByZXBvcnQuY29weVJlZigpLCBWaW9s
YXRpb25SZXBvcnRUeXBlOjpDb250ZW50U2VjdXJpdHlQb2xpY3kpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRp
YUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nl
c3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQppbmRleCBiMTBmMmU5ZWI3OGQ1OWUwMjZiYmRiNGRm
ZDcwZTRkYTUzYjlhNDcwLi5mNjM1YWVkM2I5N2YwMTI5ZmY5ZWE4M2QxNGM3OTFiYmU3NWY4Yjdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nl
c3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwyNCArMjgsMjQg
QEAKIAogI2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVP
X1BSRVNFTlRBVElPTl9NT0RFKSkKIAorI2ltcG9ydCAiQXVkaW9UcmFja0xpc3QuaCIKKyNpbXBv
cnQgIkV2ZW50LmgiCisjaW1wb3J0ICJFdmVudExpc3RlbmVyLmgiCisjaW1wb3J0ICJFdmVudE5h
bWVzLmgiCisjaW1wb3J0ICJIVE1MRWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTE1lZGlhRWxlbWVu
dC5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFDb250cm9sc0hvc3QuaCIK
KyNpbXBvcnQgIlBhZ2UuaCIKKyNpbXBvcnQgIlBhZ2VHcm91cC5oIgorI2ltcG9ydCAiU29mdExp
bmtpbmcuaCIKKyNpbXBvcnQgIlRleHRUcmFja0xpc3QuaCIKKyNpbXBvcnQgIlRpbWVSYW5nZXMu
aCIKICNpbXBvcnQgIldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oIgogI2ltcG9ydCA8UXVh
cnR6Q29yZS9Db3JlQW5pbWF0aW9uLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0F1ZGlvVHJhY2tMaXN0
Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0V2ZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0V2ZW50TGlz
dGVuZXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUvRXZlbnROYW1lcy5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9IVE1MRWxlbWVudC5oPgotI2ltcG9ydCA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGFnZUdyb3VwLmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1RleHRUcmFj
a0xpc3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvVGltZVJhbmdlcy5oPgogI2ltcG9ydCA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6V2ViUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQoKQogICAgIDogRXZlbnRMaXN0ZW5lcihFdmVudExp
c3RlbmVyOjpDUFBFdmVudExpc3RlbmVyVHlwZSkKQEAgLTIzMywxNyArMjMzLDggQEAgdm9pZCBX
ZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6c2VsZWN0QXVkaW9NZWRpYU9wdGlv
bih1aW50NjRfdCBzZWxlY3QKICAgICBpZiAoIW1fbWVkaWFFbGVtZW50KQogICAgICAgICByZXR1
cm47CiAKLSAgICBBU1NFUlQoc2VsZWN0ZWRBdWRpb0luZGV4IDwgc3RkOjpudW1lcmljX2xpbWl0
czxzaXplX3Q+OjptYXgoKSk7Ci0gICAgQXVkaW9UcmFjayogc2VsZWN0ZWRBdWRpb1RyYWNrID0g
bnVsbHB0cjsKLQotICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBtX2F1ZGlvVHJh
Y2tzRm9yTWVudS5zaXplKCk7ICsraW5kZXgpIHsKLSAgICAgICAgYXV0byYgYXVkaW9UcmFjayA9
IG1fYXVkaW9UcmFja3NGb3JNZW51W2luZGV4XTsKLSAgICAgICAgYXVkaW9UcmFjay0+c2V0RW5h
YmxlZChpbmRleCA9PSBzdGF0aWNfY2FzdDxzaXplX3Q+KHNlbGVjdGVkQXVkaW9JbmRleCkpOwot
ICAgICAgICBpZiAoYXVkaW9UcmFjay0+ZW5hYmxlZCgpKQotICAgICAgICAgICAgc2VsZWN0ZWRB
dWRpb1RyYWNrID0gYXVkaW9UcmFjay5nZXQoKTsKLSAgICB9Ci0KLSAgICBtX21lZGlhRWxlbWVu
dC0+YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKHNlbGVjdGVkQXVkaW9UcmFjayk7CisgICAgZm9y
IChzaXplX3QgaSA9IDAsIHNpemUgPSBtX2F1ZGlvVHJhY2tzRm9yTWVudS5zaXplKCk7IGkgPCBz
aXplOyArK2kpCisgICAgICAgIG1fYXVkaW9UcmFja3NGb3JNZW51W2ldLT5zZXRFbmFibGVkKGkg
PT0gc2VsZWN0ZWRBdWRpb0luZGV4KTsKIH0KIAogdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2Rl
bE1lZGlhRWxlbWVudDo6c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQpA
QCAtMjUxLDkgKzI0Miw3IEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1l
bnQ6OnNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRlCiAgICAgaWYgKCFtX21l
ZGlhRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKGluZGV4IDwgc3RkOjpu
dW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7Ci0gICAgVGV4dFRyYWNrKiB0ZXh0VHJhY2sg
PSBudWxscHRyOwotCisgICAgVGV4dFRyYWNrKiB0ZXh0VHJhY2s7CiAgICAgaWYgKGluZGV4IDwg
bV9sZWdpYmxlVHJhY2tzRm9yTWVudS5zaXplKCkpCiAgICAgICAgIHRleHRUcmFjayA9IG1fbGVn
aWJsZVRyYWNrc0Zvck1lbnVbc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCldLmdldCgpOwogICAg
IGVsc2UKQEAgLTQ3MSw0ICs0NjAsNiBAQCBib29sIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVk
aWFFbGVtZW50Ojp3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpIGNvbnN0CiAgICAgcmV0
dXJuIG1fbWVkaWFFbGVtZW50ICYmIG1fbWVkaWFFbGVtZW50LT5tZWRpYVNlc3Npb24oKS53aXJl
bGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgqbV9tZWRpYUVsZW1lbnQpOwogfQogCit9CisKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9U
cmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJh
Y2tQcml2YXRlLmgKaW5kZXggM2JjOTdlZDcwMmFiMDRhZGJlMTQxNWFkZjliZTM1Mjk4ZGZhZGRk
Yi4uNzEwZDE3MDIwNWE1YWM5ZTBkZDBmNDliYzM1NjM1ZWE4YTBlMzMxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIz
LDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBBdWRpb1RyYWNrUHJp
dmF0ZV9oCi0jZGVmaW5lIEF1ZGlvVHJhY2tQcml2YXRlX2gKKyNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiVHJhY2tQcml2YXRlQmFzZS5oIgogCkBAIC0zNiw3ICszNSw3IEBAIGNsYXNzIEF1ZGlv
VHJhY2tQcml2YXRlOwogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBU
cmFja1ByaXZhdGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgZW5hYmxl
ZENoYW5nZWQoQXVkaW9UcmFja1ByaXZhdGUqLCBib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGVuYWJsZWRDaGFuZ2VkKGJvb2wpID0gMDsKIH07CiAKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRl
IDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2UgewpAQCAtNTUsMjYgKzU0LDIyIEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9lbmFibGVkID0gZW5hYmxlZDsKICAgICAg
ICAgaWYgKG1fY2xpZW50KQotICAgICAgICAgICAgbV9jbGllbnQtPmVuYWJsZWRDaGFuZ2VkKHRo
aXMsIGVuYWJsZWQpOwotICAgIH07Ci0gICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX2VuYWJsZWQ7IH0KKyAgICAgICAgICAgIG1fY2xpZW50LT5lbmFibGVkQ2hhbmdl
ZChlbmFibGVkKTsKKyAgICB9CisKKyAgICBib29sIGVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X2VuYWJsZWQ7IH0KIAogICAgIGVudW0gS2luZCB7IEFsdGVybmF0aXZlLCBEZXNjcmlwdGlvbiwg
TWFpbiwgTWFpbkRlc2MsIFRyYW5zbGF0aW9uLCBDb21tZW50YXJ5LCBOb25lIH07CiAgICAgdmly
dHVhbCBLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBOb25lOyB9CiAKIHByb3RlY3RlZDoKLSAg
ICBBdWRpb1RyYWNrUHJpdmF0ZSgpCi0gICAgICAgIDogbV9jbGllbnQoMCkKLSAgICAgICAgLCBt
X2VuYWJsZWQoZmFsc2UpCi0gICAgewotICAgIH0KKyAgICBBdWRpb1RyYWNrUHJpdmF0ZSgpID0g
ZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAgICBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCogbV9jbGll
bnQ7Ci0gICAgYm9vbCBtX2VuYWJsZWQ7CisgICAgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQqIG1f
Y2xpZW50IHsgbnVsbHB0ciB9OworICAgIGJvb2wgbV9lbmFibGVkIHsgZmFsc2UgfTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1By
aXZhdGVDbGllbnQuaAppbmRleCA3NjBmNjc5ZDEzNTBhNzE5MDA0NDcwYTdjYjdhNzQxN2E4YmM0
OTE1Li45YTExMDc5YmJlNDI4MTRlNjRhMDY2MGUyZmFmYTM5MDIxNDBhMGY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRl
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUNsaWVudC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMi0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsOCArMjMsOSBAQAogICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCi0jaWZuZGVmIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnRfaAotI2RlZmluZSBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50X2gKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJUcmFja1ByaXZh
dGVCYXNlLmgiCkBAIC0zNCw4ICszNSw2IEBACiAjaW5jbHVkZSAiU2VyaWFsaXplZFBsYXRmb3Jt
UmVwcmVzZW50YXRpb24uaCIKICNlbmRpZgogCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGU7CkBAIC00
Myw5ICs0Miw3IEBAIGNsYXNzIElTT1dlYlZUVEN1ZTsKIAogY2xhc3MgR2VuZXJpY0N1ZURhdGEg
OiBwdWJsaWMgUmVmQ291bnRlZDxHZW5lcmljQ3VlRGF0YT4gewogcHVibGljOgotCi0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8R2VuZXJpY0N1ZURhdGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVm
KG5ldyBHZW5lcmljQ3VlRGF0YSgpKTsgfQotICAgIHZpcnR1YWwgfkdlbmVyaWNDdWVEYXRhKCkg
eyB9CisgICAgc3RhdGljIFJlZjxHZW5lcmljQ3VlRGF0YT4gY3JlYXRlKCkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBHZW5lcmljQ3VlRGF0YSk7IH0KIAogICAgIE1lZGlhVGltZSBzdGFydFRpbWUo
KSBjb25zdCB7IHJldHVybiBtX3N0YXJ0VGltZTsgfQogICAgIHZvaWQgc2V0U3RhcnRUaW1lKGNv
bnN0IE1lZGlhVGltZSYgc3RhcnRUaW1lKSB7IG1fc3RhcnRUaW1lID0gc3RhcnRUaW1lOyB9CkBA
IC01MywxMSArNTAsMTEgQEAgcHVibGljOgogICAgIE1lZGlhVGltZSBlbmRUaW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9lbmRUaW1lOyB9CiAgICAgdm9pZCBzZXRFbmRUaW1lKGNvbnN0IE1lZGlhVGlt
ZSYgZW5kVGltZSkgeyBtX2VuZFRpbWUgPSBlbmRUaW1lOyB9CiAKLSAgICBTdHJpbmcgaWQoKSBj
b25zdCB7IHJldHVybiBtX2lkOyB9Ci0gICAgdm9pZCBzZXRJZChTdHJpbmcgaWQpIHsgbV9pZCA9
IGlkOyB9CisgICAgY29uc3QgU3RyaW5nJiBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAg
ICB2b2lkIHNldElkKGNvbnN0IFN0cmluZyYgaWQpIHsgbV9pZCA9IGlkOyB9CiAKLSAgICBTdHJp
bmcgY29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudDsgfQotICAgIHZvaWQgc2V0Q29u
dGVudChTdHJpbmcgY29udGVudCkgeyBtX2NvbnRlbnQgPSBjb250ZW50OyB9CisgICAgY29uc3Qg
U3RyaW5nJiBjb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50OyB9CisgICAgdm9pZCBz
ZXRDb250ZW50KGNvbnN0IFN0cmluZyYgY29udGVudCkgeyBtX2NvbnRlbnQgPSBjb250ZW50OyB9
CiAKICAgICBkb3VibGUgbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZTsgfQogICAgIHZvaWQg
c2V0TGluZShkb3VibGUgbGluZSkgeyBtX2xpbmUgPSBsaW5lOyB9CkBAIC02OCwxNyArNjUsMTIg
QEAgcHVibGljOgogICAgIGRvdWJsZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAg
ICAgdm9pZCBzZXRTaXplKGRvdWJsZSBzaXplKSB7IG1fc2l6ZSA9IHNpemU7IH0KIAotICAgIGVu
dW0gQWxpZ25tZW50IHsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgU3RhcnQsCi0gICAgICAgIE1p
ZGRsZSwKLSAgICAgICAgRW5kCi0gICAgfTsKKyAgICBlbnVtIEFsaWdubWVudCB7IE5vbmUsIFN0
YXJ0LCBNaWRkbGUsIEVuZCB9OwogICAgIEFsaWdubWVudCBhbGlnbigpIGNvbnN0IHsgcmV0dXJu
IG1fYWxpZ247IH0KICAgICB2b2lkIHNldEFsaWduKEFsaWdubWVudCBhbGlnbikgeyBtX2FsaWdu
ID0gYWxpZ247IH0KIAotICAgIFN0cmluZyBmb250TmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9u
dE5hbWU7IH0KLSAgICB2b2lkIHNldEZvbnROYW1lKFN0cmluZyBmb250TmFtZSkgeyBtX2ZvbnRO
YW1lID0gZm9udE5hbWU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGZvbnROYW1lKCkgY29uc3QgeyBy
ZXR1cm4gbV9mb250TmFtZTsgfQorICAgIHZvaWQgc2V0Rm9udE5hbWUoY29uc3QgU3RyaW5nJiBm
b250TmFtZSkgeyBtX2ZvbnROYW1lID0gZm9udE5hbWU7IH0KIAogICAgIGRvdWJsZSBiYXNlRm9u
dFNpemUoKSBjb25zdCB7IHJldHVybiBtX2Jhc2VGb250U2l6ZTsgfQogICAgIHZvaWQgc2V0QmFz
ZUZvbnRTaXplKGRvdWJsZSBiYXNlRm9udFNpemUpIHsgbV9iYXNlRm9udFNpemUgPSBiYXNlRm9u
dFNpemU7IH0KQEAgLTk1LDQzICs4NywzMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQ29sb3ImIGhp
Z2hsaWdodENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9oaWdobGlnaHRDb2xvcjsgfQogICAgIHZv
aWQgc2V0SGlnaGxpZ2h0Q29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKSB7IG1faGlnaGxpZ2h0Q29s
b3IgPSBjb2xvcjsgfQogCi0gICAgZW51bSBTdGF0dXMgewotICAgICAgICBVbmluaXRpYWxpemVk
LAotICAgICAgICBQYXJ0aWFsLAotICAgICAgICBDb21wbGV0ZSwKLSAgICB9OworICAgIGVudW0g
U3RhdHVzIHsgVW5pbml0aWFsaXplZCwgUGFydGlhbCwgQ29tcGxldGUgfTsKICAgICBTdGF0dXMg
c3RhdHVzKCkgeyByZXR1cm4gbV9zdGF0dXM7IH0KICAgICB2b2lkIHNldFN0YXR1cyhTdGF0dXMg
c3RhdHVzKSB7IG1fc3RhdHVzID0gc3RhdHVzOyB9CiAKICAgICBib29sIGRvZXNFeHRlbmRDdWVE
YXRhKGNvbnN0IEdlbmVyaWNDdWVEYXRhJikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgR2VuZXJp
Y0N1ZURhdGEoKQotICAgICAgICA6IG1fbGluZSgtMSkKLSAgICAgICAgLCBtX3Bvc2l0aW9uKC0x
KQotICAgICAgICAsIG1fc2l6ZSgtMSkKLSAgICAgICAgLCBtX2FsaWduKE5vbmUpCi0gICAgICAg
ICwgbV9iYXNlRm9udFNpemUoMCkKLSAgICAgICAgLCBtX3JlbGF0aXZlRm9udFNpemUoMCkKLSAg
ICAgICAgLCBtX3N0YXR1cyhVbmluaXRpYWxpemVkKQotICAgIHsKLSAgICB9CisgICAgR2VuZXJp
Y0N1ZURhdGEoKSA9IGRlZmF1bHQ7CiAKICAgICBNZWRpYVRpbWUgbV9zdGFydFRpbWU7CiAgICAg
TWVkaWFUaW1lIG1fZW5kVGltZTsKICAgICBTdHJpbmcgbV9pZDsKICAgICBTdHJpbmcgbV9jb250
ZW50OwotICAgIGRvdWJsZSBtX2xpbmU7Ci0gICAgZG91YmxlIG1fcG9zaXRpb247Ci0gICAgZG91
YmxlIG1fc2l6ZTsKLSAgICBBbGlnbm1lbnQgbV9hbGlnbjsKKyAgICBkb3VibGUgbV9saW5lIHsg
LTEgfTsKKyAgICBkb3VibGUgbV9wb3NpdGlvbiB7IC0xIH07CisgICAgZG91YmxlIG1fc2l6ZSB7
IC0xIH07CisgICAgQWxpZ25tZW50IG1fYWxpZ24geyBOb25lIH07CiAgICAgU3RyaW5nIG1fZm9u
dE5hbWU7Ci0gICAgZG91YmxlIG1fYmFzZUZvbnRTaXplOwotICAgIGRvdWJsZSBtX3JlbGF0aXZl
Rm9udFNpemU7CisgICAgZG91YmxlIG1fYmFzZUZvbnRTaXplIHsgMCB9OworICAgIGRvdWJsZSBt
X3JlbGF0aXZlRm9udFNpemUgeyAwIH07CiAgICAgQ29sb3IgbV9mb3JlZ3JvdW5kQ29sb3I7CiAg
ICAgQ29sb3IgbV9iYWNrZ3JvdW5kQ29sb3I7CiAgICAgQ29sb3IgbV9oaWdobGlnaHRDb2xvcjsK
LSAgICBTdGF0dXMgbV9zdGF0dXM7CisgICAgU3RhdHVzIG1fc3RhdHVzIHsgVW5pbml0aWFsaXpl
ZCB9OwogfTsKIAogaW5saW5lIGJvb2wgR2VuZXJpY0N1ZURhdGE6OmRvZXNFeHRlbmRDdWVEYXRh
KGNvbnN0IEdlbmVyaWNDdWVEYXRhJiBvdGhlcikgY29uc3QKQEAgLTE2OCwyNCArMTQ3LDIzIEBA
IGNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQcml2YXRl
QmFzZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUNsaWVudCgpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGFkZERhdGFDdWUoSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5k
LCBjb25zdCB2b2lkKiwgdW5zaWduZWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YUN1
ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9p
ZCosIHVuc2lnbmVkKSA9IDA7CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLSAgICB2aXJ0
dWFsIHZvaWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFU
aW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBs
YXRmb3JtUmVwcmVzZW50YXRpb24+LCBjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIHVwZGF0ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGlt
ZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0
Zm9ybVJlcHJlc2VudGF0aW9uPikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVEYXRhQ3Vl
KEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBN
ZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlv
bj4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0
YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2Vu
dGF0aW9uPiYmLCBjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZURh
dGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlh
bGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVEYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBT
ZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbiYpID0gMDsKICNlbmRpZgogCi0gICAgdmly
dHVhbCB2b2lkIGFkZEdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFBhc3NSZWZQ
dHI8R2VuZXJpY0N1ZURhdGE+KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdlbmVyaWND
dWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBHZW5l
cmljQ3VlRGF0YSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkR2VuZXJpY0N1ZShHZW5lcmlj
Q3VlRGF0YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShHZW5lcmlj
Q3VlRGF0YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlR2VuZXJpY0N1ZShHZW5lcmlj
Q3VlRGF0YSYpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIo
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFN0cmluZyYmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29u
c3QgSVNPV2ViVlRUQ3VlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEZpbGVI
ZWFkZXIoU3RyaW5nJiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRU
Q3VlJikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVm
ZmVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVm
ZmVyUHJpdmF0ZS5oCmluZGV4IDA4ZTYyYzM0ODYyYWRkOTRmYTA4NGI0MjVjNTg3YWE0ZmJkMzY0
YmQuLjdhYzVkZDI3NWJhYTU3YjBhYWU4YmU1NTA4Nzg3NmZmMTE5MWUwYmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRl
LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCkBAIC0yOCwyMSArMjgsMTcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwotI2lmbmRlZiBTb3VyY2VCdWZmZXJQcml2YXRlX2gKLSNkZWZpbmUgU291cmNlQnVm
ZmVyUHJpdmF0ZV9oCisKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkK
IAogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCi0jaW5jbHVkZSAiVGltZVJhbmdlcy5oIgotI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhU2FtcGxlOwogY2xhc3MgU291cmNlQnVmZmVy
UHJpdmF0ZUNsaWVudDsKLWNsYXNzIFRpbWVSYW5nZXM7CiAKIGNsYXNzIFNvdXJjZUJ1ZmZlclBy
aXZhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxTb3VyY2VCdWZmZXJQcml2YXRlPiB7CiBwdWJsaWM6
CkBAIC01OCwxNyArNTQsMTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVh
ZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lk
IGZsdXNoKEF0b21pY1N0cmluZykgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGVucXVldWVTYW1wbGUo
UGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4sIEF0b21pY1N0cmluZykgeyB9Ci0gICAgdmlydHVhbCBi
b29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpIHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCB2b2lkIGZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiwgY29uc3QgQXRvbWlj
U3RyaW5nJikgeyB9CisgICAgdmlydHVhbCBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25z
dCBBdG9taWNTdHJpbmcmKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRB
Y3RpdmUoYm9vbCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxl
cyhBdG9taWNTdHJpbmcpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlDbGllbnRXaGVuUmVh
ZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9w
QXNraW5nRm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgeyB9CisgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0
cmluZyYpIHsgfQogCi0gICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBlbnF1ZXVlZFNhbXBsZXNG
b3JUcmFja0lEKEF0b21pY1N0cmluZykgeyByZXR1cm4ge307IH0KKyAgICB2aXJ0dWFsIFZlY3Rv
cjxTdHJpbmc+IGVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoY29uc3QgQXRvbWljU3RyaW5nJikg
eyByZXR1cm4geyB9OyB9CiB9OwogCiB9CiAKICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRl
Q2xpZW50LmgKaW5kZXggMjk0YWQ2NWY0NjMzNWRmMDY5MTUzZjRhY2IzOTcwM2JmMWM5ZjBmMi4u
MTgwODdkNWUzZDI2Y2ExMWRiYTBmNjg3MzAwZDg2OTY4ODBiNWNkMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZh
dGVDbGllbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMiwxMiArMzIsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBTb3VyY2VCdWZmZXJQcml2YXRlOwogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGU7Ci1jbGFzcyBW
aWRlb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGU7CiBjbGFzcyBN
ZWRpYVNhbXBsZTsKIGNsYXNzIE1lZGlhRGVzY3JpcHRpb247CitjbGFzcyBWaWRlb1RyYWNrUHJp
dmF0ZTsKIAogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6CkBAIC02
NCwyMyArNjMsMTkgQEAgcHVibGljOgogICAgICAgICB9OwogICAgICAgICBWZWN0b3I8VGV4dFRy
YWNrSW5mb3JtYXRpb24+IHRleHRUcmFja3M7CiAgICAgfTsKLSAgICB2aXJ0dWFsIHZvaWQgc291
cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVm
ZmVyUHJpdmF0ZSosIGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoU291cmNlQnVmZmVy
UHJpdmF0ZSosIE1lZGlhU2FtcGxlJikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBzb3VyY2VCdWZm
ZXJQcml2YXRlSGFzQXVkaW8oY29uc3QgU291cmNlQnVmZmVyUHJpdmF0ZSopIGNvbnN0ID0gMDsK
LSAgICB2aXJ0dWFsIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKGNvbnN0IFNvdXJj
ZUJ1ZmZlclByaXZhdGUqKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxpemF0
aW9uU2VnbWVudCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURp
ZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmKSA9IDA7CisgICAgdmlydHVhbCBib29sIHNvdXJj
ZUJ1ZmZlclByaXZhdGVIYXNBdWRpbygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc291
cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKCkgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lk
IHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1
ZmZlclByaXZhdGUqLCBBdG9taWNTdHJpbmcgdHJhY2tJRCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBB
dG9taWNTdHJpbmcmIHRyYWNrSUQpID0gMDsKIAotICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNvdXJj
ZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoU291cmNlQnVmZmVyUHJpdmF0
ZSosIGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFU
aW1lJikgeyByZXR1cm4gdGltZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2
YXRlU2Vla1RvVGltZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJikgeyB9
OworICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVG
b3JNZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBNZWRpYVRpbWUmLCBjb25z
dCBNZWRpYVRpbWUmKSB7IHJldHVybiB0aW1lOyB9CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1
ZmZlclByaXZhdGVTZWVrVG9UaW1lKGNvbnN0IE1lZGlhVGltZSYpIHsgfTsKIAotICAgIGVudW0g
QXBwZW5kUmVzdWx0IHsKLSAgICAgICAgQXBwZW5kU3VjY2VlZGVkLAotICAgICAgICBSZWFkU3Ry
ZWFtRmFpbGVkLAotICAgICAgICBQYXJzaW5nRmFpbGVkLAotICAgIH07Ci0gICAgdmlydHVhbCB2
b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2YXRl
KiwgQXBwZW5kUmVzdWx0KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZh
dGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoU291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJv
Y0NvZGUpID0gMDsKKyAgICBlbnVtIEFwcGVuZFJlc3VsdCB7IEFwcGVuZFN1Y2NlZWRlZCwgUmVh
ZFN0cmVhbUZhaWxlZCwgUGFyc2luZ0ZhaWxlZCB9OworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VC
dWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoQXBwZW5kUmVzdWx0KSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoaW50IGVy
cm9yQ29kZSkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVHJhY2tQcml2YXRlQmFzZS5oCmluZGV4IDczMWFhOGQ5MzZhNWFhZWEwZDFjMDNh
YTY4YTJhYzZiMmIyYjllNjQuLjBiMDBjYTVmNjYxNTQ5NjI4NTFjM2VjN2Y5MTY4MzA0OGI4NmJm
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJp
dmF0ZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1By
aXZhdGVCYXNlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBD
YWJsZSBUZWxldmlzaW9uIExhYnMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKQEAgLTI1LDM0ICsyNSwyOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZu
ZGVmIFRyYWNrUHJpdmF0ZUJhc2VfaAotI2RlZmluZSBUcmFja1ByaXZhdGVCYXNlX2gKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9B
dG9taWNTdHJpbmcuaD4KIAotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLQogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBUcmFja1ByaXZhdGVCYXNlOwotCiBjbGFzcyBUcmFja1ByaXZhdGVC
YXNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5UcmFja1ByaXZhdGVCYXNlQ2xpZW50
KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29u
c3QgQXRvbWljU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBsYWJlbENoYW5nZWQoVHJh
Y2tQcml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgbGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcm
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSopID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgbGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZSgpID0gMDsKIH07CiAKIGNsYXNzIFRyYWNr
UHJpdmF0ZUJhc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxUcmFja1ByaXZhdGVCYXNlPiB7Ci0gICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoVHJhY2tQcml2YXRlQmFzZSk7IFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRyYWNrUHJpdmF0ZUJhc2UpOworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHZpcnR1YWwgflRyYWNrUHJp
dmF0ZUJhc2UoKSB7IH0KKyAgICB2aXJ0dWFsIH5UcmFja1ByaXZhdGVCYXNlKCkgPSBkZWZhdWx0
OwogCiAgICAgdmlydHVhbCBUcmFja1ByaXZhdGVCYXNlQ2xpZW50KiBjbGllbnQoKSBjb25zdCA9
IDA7CiAKQEAgLTYzLDE4ICs1OCwxNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgdHJhY2tJ
bmRleCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAogICAgIHZpcnR1YWwgTWVkaWFUaW1lIHN0YXJ0
VGltZVZhcmlhbmNlKCkgY29uc3QgeyByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOyB9Ci0g
ICAgCisKICAgICB2b2lkIHdpbGxCZVJlbW92ZWQoKQogICAgIHsKLSAgICAgICAgaWYgKFRyYWNr
UHJpdmF0ZUJhc2VDbGllbnQqIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQotICAgICAgICAgICAg
Y2xpZW50LT53aWxsUmVtb3ZlKHRoaXMpOworICAgICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhp
cy0+Y2xpZW50KCkpCisgICAgICAgICAgICBjbGllbnQtPndpbGxSZW1vdmUoKTsKICAgICB9CiAK
IHByb3RlY3RlZDoKLSAgICBUcmFja1ByaXZhdGVCYXNlKCkgeyB9CisgICAgVHJhY2tQcml2YXRl
QmFzZSgpID0gZGVmYXVsdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Zp
ZGVvVHJhY2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRl
b1RyYWNrUHJpdmF0ZS5oCmluZGV4IGZlZDM0OWE3YjM3MjhmNTAyN2M4MmU3YTEwYzM1MjdkMGY1
OTM1ZGQuLmY5NDUzMzU2N2ZmMmJiMzA1NjhlODExM2Q0NzVkOGU4NjE1MDcxYWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yMywyOSArMjMsMjEgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBWaWRlb1Ry
YWNrUHJpdmF0ZV9oCi0jZGVmaW5lIFZpZGVvVHJhY2tQcml2YXRlX2gKLQotI2luY2x1ZGUgIlRy
YWNrUHJpdmF0ZUJhc2UuaCIKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZS5oIgog
Ci1jbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKK25hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
VmlkZW9UcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZUNsaWVudCB7
CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIHNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrUHJp
dmF0ZSosIGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJvb2wp
ID0gMDsKIH07CiAKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlIDogcHVibGljIFRyYWNrUHJpdmF0
ZUJhc2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRl
PiBjcmVhdGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWaWRlb1RyYWNr
UHJpdmF0ZSgpKTsKLSAgICB9Ci0KICAgICB2b2lkIHNldENsaWVudChWaWRlb1RyYWNrUHJpdmF0
ZUNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAgICAgVmlkZW9UcmFja1By
aXZhdGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xpZW50OyB9
CiAKQEAgLTU1LDI2ICs0NywyMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIG1fc2VsZWN0ZWQgPSBzZWxlY3RlZDsKICAgICAgICAgaWYgKG1fY2xpZW50KQotICAgICAg
ICAgICAgbV9jbGllbnQtPnNlbGVjdGVkQ2hhbmdlZCh0aGlzLCBtX3NlbGVjdGVkKTsKLSAgICB9
OworICAgICAgICAgICAgbV9jbGllbnQtPnNlbGVjdGVkQ2hhbmdlZChtX3NlbGVjdGVkKTsKKyAg
ICB9CiAgICAgdmlydHVhbCBib29sIHNlbGVjdGVkKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rl
ZDsgfQogCiAgICAgZW51bSBLaW5kIHsgQWx0ZXJuYXRpdmUsIENhcHRpb25zLCBNYWluLCBTaWdu
LCBTdWJ0aXRsZXMsIENvbW1lbnRhcnksIE5vbmUgfTsKICAgICB2aXJ0dWFsIEtpbmQga2luZCgp
IGNvbnN0IHsgcmV0dXJuIE5vbmU7IH0KIAogcHJvdGVjdGVkOgotICAgIFZpZGVvVHJhY2tQcml2
YXRlKCkKLSAgICAgICAgOiBtX2NsaWVudCgwKQotICAgICAgICAsIG1fc2VsZWN0ZWQoZmFsc2Up
Ci0gICAgewotICAgIH0KKyAgICBWaWRlb1RyYWNrUHJpdmF0ZSgpID0gZGVmYXVsdDsKIAogcHJp
dmF0ZToKLSAgICBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCogbV9jbGllbnQ7Ci0gICAgYm9vbCBt
X3NlbGVjdGVkOworICAgIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50KiBtX2NsaWVudCB7IG51bGxw
dHIgfTsKKyAgICBib29sIG1fc2VsZWN0ZWQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvVHJhY2tQcml2YXRlQVZGLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFja1By
aXZhdGVBVkYuaAppbmRleCAxMzFmZDUxYjRjMTY5MzQwOGI0ZjhhNGI1OTZlYjI2ZmJkNmQyOTZi
Li4xOWI1NjBiY2NiYTU4MTk1Y2U0NWVmNmVmODFjOGRjZGVjMjk1YmM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFja1By
aXZhdGVBVkYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vQXVkaW9UcmFja1ByaXZhdGVBVkYuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBBdWRpb1RyYWNrUHJpdmF0ZUFW
Rl9oCi0jZGVmaW5lIEF1ZGlvVHJhY2tQcml2YXRlQVZGX2gKKyNwcmFnbWEgb25jZQogCiAjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQogCkBAIC0zNSw3ICszNCw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlQVZGIDogcHVibGljIEF1ZGlvVHJhY2tQcml2YXRl
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1RyYWNrUHJpdmF0ZUFWRikKIHB1Ymxp
YzoKLQogICAgIHZpcnR1YWwgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gbV9raW5kOyB9CiAg
ICAgdmlydHVhbCBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAgICAg
dmlydHVhbCBBdG9taWNTdHJpbmcgbGFiZWwoKSBjb25zdCB7IHJldHVybiBtX2xhYmVsOyB9CkBA
IC00NCwyNiArNDIsMjAgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRLaW5k
KEtpbmQga2luZCkgeyBtX2tpbmQgPSBraW5kOyB9Ci0gICAgdm9pZCBzZXRJZChBdG9taWNTdHJp
bmcgbmV3SWQpIHsgbV9pZCA9IG5ld0lkOyB9Ci0gICAgdm9pZCBzZXRMYWJlbChBdG9taWNTdHJp
bmcgbGFiZWwpIHsgbV9sYWJlbCA9IGxhYmVsOyB9Ci0gICAgdm9pZCBzZXRMYW5ndWFnZShBdG9t
aWNTdHJpbmcgbGFuZ3VhZ2UpIHsgbV9sYW5ndWFnZSA9IGxhbmd1YWdlOyB9CisgICAgdm9pZCBz
ZXRJZChjb25zdCBBdG9taWNTdHJpbmcmIG5ld0lkKSB7IG1faWQgPSBuZXdJZDsgfQorICAgIHZv
aWQgc2V0TGFiZWwoY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkgeyBtX2xhYmVsID0gbGFiZWw7
IH0KKyAgICB2b2lkIHNldExhbmd1YWdlKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpIHsg
bV9sYW5ndWFnZSA9IGxhbmd1YWdlOyB9CiAgICAgdm9pZCBzZXRUcmFja0luZGV4KGludCBpbmRl
eCkgeyBtX2luZGV4ID0gaW5kZXg7IH0KIAotICAgIEtpbmQgbV9raW5kOworICAgIEtpbmQgbV9r
aW5kIHsgTm9uZSB9OwogICAgIEF0b21pY1N0cmluZyBtX2lkOwogICAgIEF0b21pY1N0cmluZyBt
X2xhYmVsOwogICAgIEF0b21pY1N0cmluZyBtX2xhbmd1YWdlOwotICAgIGludCBtX2luZGV4Owor
ICAgIGludCBtX2luZGV4IHsgMCB9OwogCi0gICAgQXVkaW9UcmFja1ByaXZhdGVBVkYoKQotICAg
ICAgICA6IG1fa2luZChOb25lKQotICAgICAgICAsIG1faW5kZXgoMCkKLSAgICB7Ci0gICAgfQor
ICAgIEF1ZGlvVHJhY2tQcml2YXRlQVZGKCkgPSBkZWZhdWx0OwogfTsKIAogfQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFZJREVPX1RSQUNLKQotCi0jZW5kaWYgLy8gQXVkaW9UcmFja1ByaXZhdGVBVkZf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQ
cml2YXRlQVZGLmNwcAppbmRleCA5YzZjYTg3YjBjMGY5MDA2NzExN2Y0NDJkM2U2NmQ5NDEzM2Fm
MTQwLi5iNDliZDFlMzdmMGM3ZDA2YTllYjM4YmNkMGMxYzNjMGJjMzg3OTJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0
YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZG
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI0LDkgKzI0LDkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmgiCiAKICNpZiBFTkFCTEUo
VklERU8pICYmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKSAmJiAoVVNFKEFWRk9VTkRBVElPTikgfHwg
UExBVEZPUk0oSU9TKSkKLSNpbmNsdWRlICJJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVB
VkYuaCIKIAogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCkBAIC01NCw2ICs1NCw3IEBAIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNr
UHJpdmF0ZUFWRjo6fkluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRigpCiB9CiAKICNp
ZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKKwogdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1By
aXZhdGVBVkY6OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFU
aW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBy
cEN1ZURhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICBBU1NFUlQoY3VlRm9ybWF0KCkg
PT0gRGF0YSk7CkBAIC02Niw3ICs2Nyw3IEBAIHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQ
cml2YXRlQVZGOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0CiAgICAg
bV9jdXJyZW50Q3VlU3RhcnRUaW1lID0gc3RhcnQ7CiAgICAgaWYgKGVuZC5pc1Bvc2l0aXZlSW5m
aW5pdGUoKSkKICAgICAgICAgbV9pbmNvbXBsZXRlQ3Vlcy5hcHBlbmQoSW5jb21wbGV0ZU1ldGFE
YXRhQ3VlIHsgY3VlRGF0YS5nZXQoKSwgc3RhcnQgfSk7Ci0gICAgY2xpZW50KCktPmFkZERhdGFD
dWUodGhpcywgc3RhcnQsIGVuZCwgY3VlRGF0YSwgdHlwZSk7CisgICAgY2xpZW50KCktPmFkZERh
dGFDdWUoc3RhcnQsIGVuZCwgY3VlRGF0YS5yZWxlYXNlTm9uTnVsbCgpLCB0eXBlKTsKIH0KIAog
dm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OnVwZGF0ZVBlbmRpbmdDdWVF
bmRUaW1lcyhjb25zdCBNZWRpYVRpbWUmIHRpbWUpCkBAIC03Nyw3ICs3OCw3IEBAIHZvaWQgSW5i
YW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjp1cGRhdGVQZW5kaW5nQ3VlRW5kVGltZXMo
Y29uc3QgTWVkaWFUaW1lCiAgICAgICAgIGlmIChjbGllbnQoKSkgewogICAgICAgICAgICAgZm9y
IChhdXRvJiBwYXJ0aWFsQ3VlIDogbV9pbmNvbXBsZXRlQ3VlcykgewogICAgICAgICAgICAgICAg
IExPRyhNZWRpYSwgIkluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6dXBkYXRlUGVu
ZGluZ0N1ZUVuZFRpbWVzKCVwKSAtIHVwZGF0aW5nIGN1ZTogc3RhcnQ9JXMsIGVuZD0lcyIsIHRo
aXMsIHRvU3RyaW5nKHBhcnRpYWxDdWUuc3RhcnRUaW1lKS51dGY4KCkuZGF0YSgpLCB0b1N0cmlu
Zyh0aW1lKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICBjbGllbnQoKS0+dXBkYXRl
RGF0YUN1ZSh0aGlzLCBwYXJ0aWFsQ3VlLnN0YXJ0VGltZSwgdGltZSwgcGFydGlhbEN1ZS5jdWVE
YXRhKTsKKyAgICAgICAgICAgICAgICBjbGllbnQoKS0+dXBkYXRlRGF0YUN1ZShwYXJ0aWFsQ3Vl
LnN0YXJ0VGltZSwgdGltZSwgKnBhcnRpYWxDdWUuY3VlRGF0YSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICB9IGVsc2UKQEAgLTg2LDYgKzg3LDcgQEAgdm9pZCBJbmJhbmRNZXRhZGF0
YVRleHRUcmFja1ByaXZhdGVBVkY6OnVwZGF0ZVBlbmRpbmdDdWVFbmRUaW1lcyhjb25zdCBNZWRp
YVRpbWUKICAgICBtX2luY29tcGxldGVDdWVzLnJlc2l6ZSgwKTsKICAgICBtX2N1cnJlbnRDdWVT
dGFydFRpbWUgPSBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiB9CisKICNlbmRpZgogCiB2b2lkIElu
YmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6Zmx1c2hQYXJ0aWFsQ3VlcygpCkBAIC05
NSw3ICs5Nyw3IEBAIHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjpmbHVz
aFBhcnRpYWxDdWVzKCkKIAogICAgIGlmIChjbGllbnQoKSkgewogICAgICAgICBmb3IgKGF1dG8m
IHBhcnRpYWxDdWUgOiBtX2luY29tcGxldGVDdWVzKQotICAgICAgICAgICAgY2xpZW50KCktPnJl
bW92ZURhdGFDdWUodGhpcywgcGFydGlhbEN1ZS5zdGFydFRpbWUsIE1lZGlhVGltZTo6cG9zaXRp
dmVJbmZpbml0ZVRpbWUoKSwgcGFydGlhbEN1ZS5jdWVEYXRhKTsKKyAgICAgICAgICAgIGNsaWVu
dCgpLT5yZW1vdmVEYXRhQ3VlKHBhcnRpYWxDdWUuc3RhcnRUaW1lLCBNZWRpYVRpbWU6OnBvc2l0
aXZlSW5maW5pdGVUaW1lKCksICpwYXJ0aWFsQ3VlLmN1ZURhdGEpOwogICAgIH0KIAogICAgIG1f
aW5jb21wbGV0ZUN1ZXMucmVzaXplKDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRl
eHRUcmFja1ByaXZhdGVBVkYuY3BwCmluZGV4IDNiN2JkYTg2NmQyZTYwZDkzMmViOGU2MDk2ZWY4
YTkzMzM3YzY2YzAuLjk1OTZmOGNhM2MxN2U0NWRmY2UxOGQ3YWQwMjRlMGM1MWQ1MmQwZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9J
bmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yNCwxMSArMjQsMTEgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oIgogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNF
KEFWRk9VTkRBVElPTikgfHwgUExBVEZPUk0oSU9TKSkKIAotI2luY2x1ZGUgIkluYmFuZFRleHRU
cmFja1ByaXZhdGVBVkYuaCIKLQorI2luY2x1ZGUgIkNvcmVNZWRpYVNvZnRMaW5rLmgiCiAjaW5j
bHVkZSAiSVNPVlRUQ3VlLmgiCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVu
dC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTQzLDEyICs0Myw2IEBACiAjaW5jbHVkZSA8
d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRT
dHJlYW0uaD4KIAotI2luY2x1ZGUgIkNvcmVNZWRpYVNvZnRMaW5rLmgiCi0KLW5hbWVzcGFjZSBK
U0MgewotY2xhc3MgQXJyYXlCdWZmZXI7Ci19Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQVZG
SW5iYW5kVHJhY2tQYXJlbnQ6On5BVkZJbmJhbmRUcmFja1BhcmVudCgpCkBAIC0zMjMsMzMgKzMx
NywzMyBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRyaWJ1dGVk
U3RyaW5ncyhDRkFycmF5UmVmIGF0dHJpYnV0ZWRTdAogewogICAgIExPRyhNZWRpYSwgIkluYmFu
ZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NDdWUgLSAlbGkgY3VlcyBhdCB0aW1lICVzXG4i
LCBhdHRyaWJ1dGVkU3RyaW5ncyA/IENGQXJyYXlHZXRDb3VudChhdHRyaWJ1dGVkU3RyaW5ncykg
OiAwLCB0b1N0cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpKTsKIAotICAgIFZlY3RvcjxSZWZQdHI8
R2VuZXJpY0N1ZURhdGE+PiBhcnJpdmluZ0N1ZXM7CisgICAgVmVjdG9yPFJlZjxHZW5lcmljQ3Vl
RGF0YT4+IGFycml2aW5nQ3VlczsKICAgICBpZiAoYXR0cmlidXRlZFN0cmluZ3MpIHsKICAgICAg
ICAgQ0ZJbmRleCBjb3VudCA9IENGQXJyYXlHZXRDb3VudChhdHRyaWJ1dGVkU3RyaW5ncyk7CiAg
ICAgICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKICAgICAgICAgICAg
IENGQXR0cmlidXRlZFN0cmluZ1JlZiBhdHRyaWJ1dGVkU3RyaW5nID0gc3RhdGljX2Nhc3Q8Q0ZB
dHRyaWJ1dGVkU3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dHJpYnV0ZWRTdHJp
bmdzLCBpKSk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgaWYgKCFhdHRyaWJ1dGVkU3Ry
aW5nIHx8ICFDRkF0dHJpYnV0ZWRTdHJpbmdHZXRMZW5ndGgoYXR0cmlidXRlZFN0cmluZykpCiAg
ICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFJlZlB0
cjxHZW5lcmljQ3VlRGF0YT4gY3VlRGF0YSA9IEdlbmVyaWNDdWVEYXRhOjpjcmVhdGUoKTsKLSAg
ICAgICAgICAgIHByb2Nlc3NDdWVBdHRyaWJ1dGVzKGF0dHJpYnV0ZWRTdHJpbmcsICpjdWVEYXRh
LmdldCgpKTsKKworICAgICAgICAgICAgYXV0byBjdWVEYXRhID0gR2VuZXJpY0N1ZURhdGE6OmNy
ZWF0ZSgpOworICAgICAgICAgICAgcHJvY2Vzc0N1ZUF0dHJpYnV0ZXMoYXR0cmlidXRlZFN0cmlu
ZywgY3VlRGF0YS5nZXQoKSk7CiAgICAgICAgICAgICBpZiAoIWN1ZURhdGEtPmNvbnRlbnQoKS5s
ZW5ndGgoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIAotICAgICAg
ICAgICAgYXJyaXZpbmdDdWVzLmFwcGVuZChjdWVEYXRhKTsKLSAgICAgICAgICAgIAorCiAgICAg
ICAgICAgICBjdWVEYXRhLT5zZXRTdGFydFRpbWUodGltZSk7CiAgICAgICAgICAgICBjdWVEYXRh
LT5zZXRFbmRUaW1lKE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKSk7Ci0gICAgICAg
ICAgICAKKwogICAgICAgICAgICAgLy8gQVZGb3VuZGF0aW9uIGN1ZSAicG9zaXRpb24iIGlzIHRv
IHRoZSBjZW50ZXIgb2YgdGhlIHRleHQgc28gYWRqdXN0IHJlbGF0aXZlIHRvIHRoZSBlZGdlIGJl
Y2F1c2Ugd2Ugd2lsbCB1c2UgaXQgdG8KICAgICAgICAgICAgIC8vIHNldCBDU1MgImxlZnQiLgog
ICAgICAgICAgICAgaWYgKGN1ZURhdGEtPnBvc2l0aW9uKCkgPj0gMCAmJiBjdWVEYXRhLT5zaXpl
KCkgPiAwKQogICAgICAgICAgICAgICAgIGN1ZURhdGEtPnNldFBvc2l0aW9uKGN1ZURhdGEtPnBv
c2l0aW9uKCkgLSBjdWVEYXRhLT5zaXplKCkgLyAyKTsKLSAgICAgICAgICAgIAorCiAgICAgICAg
ICAgICBMT0coTWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlKCVw
KSAtIGNvbnNpZGVyaW5nIGN1ZSAoXCIlc1wiKSBmb3IgdGltZSA9ICVzLCBwb3NpdGlvbiA9ICAl
LjJmLCBsaW5lID0gICUuMmYiLCB0aGlzLCBjdWVEYXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEo
KSwgdG9TdHJpbmcoY3VlRGF0YS0+c3RhcnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEt
PnBvc2l0aW9uKCksIGN1ZURhdGEtPmxpbmUoKSk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAg
ICAgY3VlRGF0YS0+c2V0U3RhdHVzKEdlbmVyaWNDdWVEYXRhOjpQYXJ0aWFsKTsKKworICAgICAg
ICAgICAgYXJyaXZpbmdDdWVzLmFwcGVuZChXVEZNb3ZlKGN1ZURhdGEpKTsKICAgICAgICAgfQog
ICAgIH0KIApAQCAtMzYwLDE3ICszNTQsMTcgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRl
QVZGOjpwcm9jZXNzQXR0cmlidXRlZFN0cmluZ3MoQ0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3QKICAg
ICAgICAgaWYgKG1fY3VycmVudEN1ZUVuZFRpbWUgPj0gbV9jdXJyZW50Q3VlU3RhcnRUaW1lKSB7
CiAgICAgICAgICAgICBmb3IgKGF1dG8mIGN1ZURhdGEgOiBtX2N1ZXMpIHsKICAgICAgICAgICAg
ICAgICAvLyBTZWUgaWYgb25lIG9mIHRoZSBuZXdseS1hcnJpdmVkIGN1ZXMgaXMgYW4gZXh0ZW5z
aW9uIG9mIHRoaXMgY3VlLgotICAgICAgICAgICAgICAgIFZlY3RvcjxSZWZQdHI8R2VuZXJpY0N1
ZURhdGE+PiBub25FeHRlbnNpb25DdWVzOworICAgICAgICAgICAgICAgIFZlY3RvcjxSZWY8R2Vu
ZXJpY0N1ZURhdGE+PiBub25FeHRlbnNpb25DdWVzOwogICAgICAgICAgICAgICAgIGZvciAoYXV0
byYgYXJyaXZpbmdDdWUgOiBhcnJpdmluZ0N1ZXMpIHsKICAgICAgICAgICAgICAgICAgICAgaWYg
KCFhcnJpdmluZ0N1ZS0+ZG9lc0V4dGVuZEN1ZURhdGEoKmN1ZURhdGEpKQotICAgICAgICAgICAg
ICAgICAgICAgICAgbm9uRXh0ZW5zaW9uQ3Vlcy5hcHBlbmQoYXJyaXZpbmdDdWUpOworICAgICAg
ICAgICAgICAgICAgICAgICAgbm9uRXh0ZW5zaW9uQ3Vlcy5hcHBlbmQoV1RGTW92ZShhcnJpdmlu
Z0N1ZSkpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAg
ICBMT0coTWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlKCVwKSAt
IGZvdW5kIGFuIGV4dGVuc2lvbiBjdWUgKFwiJXNcIikgZm9yIHRpbWUgPSAlLjJmLCBlbmQgPSAl
LjJmLCBwb3NpdGlvbiA9ICAlLjJmLCBsaW5lID0gICUuMmYiLCB0aGlzLCBhcnJpdmluZ0N1ZS0+
Y29udGVudCgpLnV0ZjgoKS5kYXRhKCksIGFycml2aW5nQ3VlLT5zdGFydFRpbWUoKS50b0RvdWJs
ZSgpLCBhcnJpdmluZ0N1ZS0+ZW5kVGltZSgpLnRvRG91YmxlKCksIGFycml2aW5nQ3VlLT5wb3Np
dGlvbigpLCBhcnJpdmluZ0N1ZS0+bGluZSgpKTsKICAgICAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgICAgICBib29sIGN1cnJlbnRDdWVJc0V4dGVuZGVkID0gKGFycml2aW5nQ3Vlcy5zaXpl
KCkgIT0gbm9uRXh0ZW5zaW9uQ3Vlcy5zaXplKCkpOwogCi0gICAgICAgICAgICAgICAgYXJyaXZp
bmdDdWVzID0gbm9uRXh0ZW5zaW9uQ3VlczsKKyAgICAgICAgICAgICAgICBhcnJpdmluZ0N1ZXMg
PSBXVEZNb3ZlKG5vbkV4dGVuc2lvbkN1ZXMpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgIGlmIChjdXJyZW50Q3VlSXNFeHRlbmRlZCkKICAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CkBAIC0zODAsNyArMzc0LDcgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZG
Ojpwcm9jZXNzQXR0cmlidXRlZFN0cmluZ3MoQ0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3QKICAgICAg
ICAgICAgICAgICAgICAgY3VlRGF0YS0+c2V0U3RhdHVzKEdlbmVyaWNDdWVEYXRhOjpDb21wbGV0
ZSk7CiAKICAgICAgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUFWRjo6cHJvY2Vzc0N1ZSglcCkgLSB1cGRhdGluZyBjdWUgXCIlc1wiOiBzdGFydD0lLjJm
LCBlbmQ9JS4yZiIsIHRoaXMsIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpLCBjdWVE
YXRhLT5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBtX2N1cnJlbnRDdWVFbmRUaW1lLnRvRG91Ymxl
KCkpOwotICAgICAgICAgICAgICAgICAgICBjbGllbnQoKS0+dXBkYXRlR2VuZXJpY0N1ZSh0aGlz
LCBjdWVEYXRhLmdldCgpKTsKKyAgICAgICAgICAgICAgICAgICAgY2xpZW50KCktPnVwZGF0ZUdl
bmVyaWNDdWUoKmN1ZURhdGEpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgICAgIC8vIFdlIGhhdmUgdG8gYXNzdW1lIHRoYXQgdGhlIGltcGxpY2l0IGR1cmF0aW9u
IGlzIGludmFsaWQgZm9yIGN1ZXMgZGVsaXZlcmVkIGR1cmluZyBhIHNlZWsgYmVjYXVzZSB0aGUg
QVZGIGRlY29kZSBwaXBlbGluZSBtYXkgbm90CiAgICAgICAgICAgICAgICAgICAgIC8vIHNlZSBl
dmVyeSBjdWUsIHNvIERPIE5PVCB1cGRhdGUgY3VlIGR1cmF0aW9uIHdoaWxlIHNlZWtpbmcuCkBA
IC0zOTksMTIgKzM5MywxMSBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nl
c3NBdHRyaWJ1dGVkU3RyaW5ncyhDRkFycmF5UmVmIGF0dHJpYnV0ZWRTdAogICAgIG1fY3VycmVu
dEN1ZVN0YXJ0VGltZSA9IHRpbWU7CiAKICAgICBmb3IgKGF1dG8mIGN1ZURhdGEgOiBhcnJpdmlu
Z0N1ZXMpIHsKLQotICAgICAgICBtX2N1ZXMuYXBwZW5kKGN1ZURhdGEpOworICAgICAgICBtX2N1
ZXMuYXBwZW5kKGN1ZURhdGEucHRyKCkpOwogICAgICAgICAKICAgICAgICAgTE9HKE1lZGlhLCAi
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSglcCkgLSBhZGRpbmcgY3VlIFwi
JXNcIiBmb3IgdGltZSA9ICUuMmYsIGVuZCA9ICUuMmYsIHBvc2l0aW9uID0gICUuMmYsIGxpbmUg
PSAgJS4yZiIsIHRoaXMsIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRh
LT5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLT5lbmRUaW1lKCkudG9Eb3VibGUoKSwg
Y3VlRGF0YS0+cG9zaXRpb24oKSwgY3VlRGF0YS0+bGluZSgpKTsKIAotICAgICAgICBjbGllbnQo
KS0+YWRkR2VuZXJpY0N1ZSh0aGlzLCBXVEZNb3ZlKGN1ZURhdGEpKTsKKyAgICAgICAgY2xpZW50
KCktPmFkZEdlbmVyaWNDdWUoV1RGTW92ZShjdWVEYXRhKSk7CiAgICAgfQogCiAgICAgbV9wZW5k
aW5nQ3VlU3RhdHVzID0gc2Vla2luZygpID8gRGVsaXZlcmVkRHVyaW5nU2VlayA6IFZhbGlkOwpA
QCAtNDUxLDkgKzQ0NCw5IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cmVzZXRD
dWVWYWx1ZXMoKQogICAgIGlmIChtX2N1cnJlbnRDdWVFbmRUaW1lICYmIG1fY3Vlcy5zaXplKCkp
CiAgICAgICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnJlc2V0Q3Vl
VmFsdWVzIGZsdXNoaW5nIGRhdGEgZm9yIGN1ZXM6IHN0YXJ0PSVzXG4iLCB0b1N0cmluZyhtX2N1
cnJlbnRDdWVTdGFydFRpbWUpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgaWYgKGNsaWVudCgpKSB7
Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jdWVzLnNpemUoKTsgaSsrKQotICAg
ICAgICAgICAgY2xpZW50KCktPnJlbW92ZUdlbmVyaWNDdWUodGhpcywgbV9jdWVzW2ldLmdldCgp
KTsKKyAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpIHsKKyAgICAgICAgZm9y
IChhdXRvJiBjdWUgOiBtX2N1ZXMpCisgICAgICAgICAgICBjbGllbnQtPnJlbW92ZUdlbmVyaWND
dWUoKmN1ZSk7CiAgICAgfQogCiAgICAgbV9jdWVzLnJlc2l6ZSgwKTsKQEAgLTUwOSw3ICs1MDIs
NyBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NOYXRpdmVTYW1wbGVz
KENGQXJyYXlSZWYgbmF0aXZlU2FtcGxlcywgYwogICAgICAgICAgICAgTE9HKE1lZGlhLCAiICAg
IGlkID0gXCIlc1wiLCBzZXR0aW5ncyA9IFwiJXNcIiwgY3VlIHRleHQgPSBcIiVzXCIiLCBjdWVE
YXRhLmlkKCkudXRmOCgpLmRhdGEoKSwgY3VlRGF0YS5zZXR0aW5ncygpLnV0ZjgoKS5kYXRhKCks
IGN1ZURhdGEuY3VlVGV4dCgpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgTE9HKE1lZGlh
LCAiICAgIHNvdXJjZUlEID0gXCIlc1wiLCBvcmlnaW5hbFN0YXJ0VGltZSA9IFwiJXNcIiIsIGN1
ZURhdGEuc291cmNlSUQoKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLm9yaWdpbmFsU3RhcnRUaW1l
KCkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICAgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEN1
ZURhdGEodGhpcywgY3VlRGF0YSk7CisgICAgICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRD
dWVEYXRhKGN1ZURhdGEpOwogICAgICAgICB9CiAKICAgICAgICAgZG8gewpAQCAtNTQyLDcgKzUz
NSw3IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc05hdGl2ZVNhbXBs
ZXMoQ0ZBcnJheVJlZiBuYXRpdmVTYW1wbGVzLCBjCiAgICAgICAgICAgICBoZWFkZXIuYXBwZW5k
KCJcblxuIik7CiAKICAgICAgICAgICAgIExPRyhNZWRpYSwgIiAgICB2dHQgaGVhZGVyID0gXG4l
cyIsIGhlYWRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgY2xpZW50
KCktPnBhcnNlV2ViVlRURmlsZUhlYWRlcih0aGlzLCBoZWFkZXIudG9TdHJpbmcoKSk7CisgICAg
ICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRGaWxlSGVhZGVyKGhlYWRlci50b1N0cmluZygp
KTsKICAgICAgICAgICAgIG1faGF2ZVJlcG9ydGVkVlRUSGVhZGVyID0gdHJ1ZTsKICAgICAgICAg
fSB3aGlsZSAoMCk7CiAKQEAgLTU1NSw3ICs1NDgsNyBAQCBib29sIEluYmFuZFRleHRUcmFja1By
aXZhdGVBVkY6OnJlYWROYXRpdmVTYW1wbGVCdWZmZXIoQ0ZBcnJheVJlZiBuYXRpdmVTYW1wbGVz
LAogI2lmIE9TKFdJTkRPV1MpICYmIEhBVkUoQVZDRlBMQVlFUklURU1fQ0FMTEJBQ0tfVkVSU0lP
Tl8yKQogICAgIHJldHVybiBmYWxzZTsKICNlbHNlCi0gICAgQ01TYW1wbGVCdWZmZXJSZWYgY29u
c3Qgc2FtcGxlQnVmZmVyID0gcmVpbnRlcnByZXRfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oY29u
c3RfY2FzdDx2b2lkKj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChuYXRpdmVTYW1wbGVzLCBpbmRl
eCkpKTsKKyAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSByZWludGVycHJldF9j
YXN0PENNU2FtcGxlQnVmZmVyUmVmPihjb25zdF9jYXN0PHZvaWQqPihDRkFycmF5R2V0VmFsdWVB
dEluZGV4KG5hdGl2ZVNhbXBsZXMsIGluZGV4KSkpOwogICAgIGlmICghc2FtcGxlQnVmZmVyKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9WaWRlb1RyYWNrUHJpdmF0ZUFWRi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1ZpZGVvVHJhY2tQcml2YXRl
QVZGLmgKaW5kZXggODU4ZjQxYzYxOGVhZjc5NGUzZTY1MWQwNDE2YTA1MGVkZjE4YTVhYi4uYTNm
MGY0ZWNhMDU3M2RkODJmYjk0N2Y0YjlmOWYwNzFhMGYzYzJmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1ZpZGVvVHJhY2tQcml2YXRl
QVZGLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L1ZpZGVvVHJhY2tQcml2YXRlQVZGLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgVmlkZW9UcmFja1ByaXZhdGVBVkZfaAot
I2RlZmluZSBWaWRlb1RyYWNrUHJpdmF0ZUFWRl9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKIApAQCAtMzUsNyArMzQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUFWRiA6IHB1YmxpYyBWaWRlb1RyYWNrUHJpdmF0ZSB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVmlkZW9UcmFja1ByaXZhdGVBVkYpCiBwdWJsaWM6Ci0K
ICAgICBpbnQgdHJhY2tJbmRleCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faW5kZXg7IH0K
ICAgICBLaW5kIGtpbmQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2tpbmQ7IH0KICAgICBB
dG9taWNTdHJpbmcgaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lkOyB9CkBAIC00NCwy
NiArNDIsMjAgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRLaW5kKEtpbmQg
a2luZCkgeyBtX2tpbmQgPSBraW5kOyB9Ci0gICAgdm9pZCBzZXRJZChBdG9taWNTdHJpbmcgbmV3
SWQpIHsgbV9pZCA9IG5ld0lkOyB9Ci0gICAgdm9pZCBzZXRMYWJlbChBdG9taWNTdHJpbmcgbGFi
ZWwpIHsgbV9sYWJlbCA9IGxhYmVsOyB9Ci0gICAgdm9pZCBzZXRMYW5ndWFnZShBdG9taWNTdHJp
bmcgbGFuZ3VhZ2UpIHsgbV9sYW5ndWFnZSA9IGxhbmd1YWdlOyB9CisgICAgdm9pZCBzZXRJZChj
b25zdCBBdG9taWNTdHJpbmcmIG5ld0lkKSB7IG1faWQgPSBuZXdJZDsgfQorICAgIHZvaWQgc2V0
TGFiZWwoY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkgeyBtX2xhYmVsID0gbGFiZWw7IH0KKyAg
ICB2b2lkIHNldExhbmd1YWdlKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpIHsgbV9sYW5n
dWFnZSA9IGxhbmd1YWdlOyB9CiAgICAgdm9pZCBzZXRUcmFja0luZGV4KGludCBpbmRleCkgeyBt
X2luZGV4ID0gaW5kZXg7IH0KIAotICAgIEtpbmQgbV9raW5kOworICAgIEtpbmQgbV9raW5kIHsg
Tm9uZSB9OwogICAgIEF0b21pY1N0cmluZyBtX2lkOwogICAgIEF0b21pY1N0cmluZyBtX2xhYmVs
OwogICAgIEF0b21pY1N0cmluZyBtX2xhbmd1YWdlOwotICAgIGludCBtX2luZGV4OworICAgIGlu
dCBtX2luZGV4IHsgMCB9OwogCi0gICAgVmlkZW9UcmFja1ByaXZhdGVBVkYoKQotICAgICAgICA6
IG1fa2luZChOb25lKQotICAgICAgICAsIG1faW5kZXgoMCkKLSAgICB7Ci0gICAgfQorICAgIFZp
ZGVvVHJhY2tQcml2YXRlQVZGKCkgPSBkZWZhdWx0OwogfTsKIAogfQogCiAjZW5kaWYgLy8gRU5B
QkxFKFZJREVPX1RSQUNLKQotCi0jZW5kaWYgLy8gVmlkZW9UcmFja1ByaXZhdGVBVkZfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMuY3BwCmluZGV4IGZlOTM0NGI2MzFmMDM1ZjllZGU3MzU3NDQwN2Yz
NDM5YWEyNGU1MDIuLmVjMGQwZWRkYmY3M2JlZWRhNjcxN2I3YTUxOGM3MzIxMjYwOTVhZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsOCArMzYsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaywgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMqIHBhcmVudCkKICAgICA6IG1faW1wbChzdGQ6Om1ha2VfdW5pcXVlPEFWVHJh
Y2tQcml2YXRlQVZGT2JqQ0ltcGw+KHRyYWNrKSkKICAgICAsIG1fcGFyZW50KHBhcmVudCkKLSAg
ICAsIG1fdHJhY2tJRCgtMSkKLSAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKICAgICByZXNldFBy
b3BlcnRpZXNGcm9tVHJhY2soKTsKIH0KQEAgLTYzLDE3ICs2MSwxMiBAQCBBVkFzc2V0VHJhY2sq
IEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphc3NldFRyYWNrKCkKICAgICBy
ZXR1cm4gbV9pbXBsLT5hc3NldFRyYWNrKCk7CiB9CiAKLWJvb2wgQXVkaW9UcmFja1ByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6OmVuYWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX2VuYWJs
ZWQ7Ci19Ci0KIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEVu
YWJsZWQoYm9vbCBlbmFibGVkKQogewotICAgIGlmIChtX2VuYWJsZWQgPT0gZW5hYmxlZCkKKyAg
ICBpZiAoZW5hYmxlZCA9PSB0aGlzLT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1fZW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgQXVkaW9UcmFja1ByaXZhdGVBVkY6OnNldEVuYWJs
ZWQoZW5hYmxlZCk7CiAgICAgbV9wYXJlbnQtPnRyYWNrRGlkQ2hhbmdlRW5hYmxlZCh0aGlzKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggYmJlODljZGRhMTNiMDgyZGNmODNmMDI1
ZmNjODVjNDI4ZmRjOTE0Ny4uMjEyODcyMTRhM2JmNWNlMTQwODA0NTUwZDlhZWVjMzhhMzA2MTFh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDE1ICsyMywxMyBAQAogICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCiAgKi8KIAotI2lmbmRlZiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQ19o
Ci0jZGVmaW5lIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDX2gKKyNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVBVkYuaCIKIAogI2lmIEVOQUJMRShN
RURJQV9TT1VSQ0UpICYmIEVOQUJMRShWSURFT19UUkFDSykKIAogT0JKQ19DTEFTUyBBVkFzc2V0
VHJhY2s7Ci1PQkpDX0NMQVNTIEFWUGxheWVySXRlbVRyYWNrOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTQxLDEzICszOSwxMiBAQCBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
QzsKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDIGZpbmFsIDogcHVi
bGljIEF1ZGlvVHJhY2tQcml2YXRlQVZGIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQykKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
UHRyPEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPiBjcmVhdGUoQVZBc3NldFRy
YWNrKiB0cmFjaywgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIHBhcmVudCkKKyAgICBzdGF0
aWMgUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPiBjcmVhdGUoQVZB
c3NldFRyYWNrICp0cmFjaywgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIHBhcmVudCkKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakModHJhY2ssIHBhcmVudCkpOwogICAgIH0KIAotICAgIGJvb2wgZW5hYmxlZCgp
IGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0RW5hYmxlZChib29sKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNldEVuYWJsZWQoYm9vbCkgZmluYWw7CiAKICAgICB2b2lkIHNldEFzc2V0VHJhY2so
QVZBc3NldFRyYWNrKik7CiAgICAgQVZBc3NldFRyYWNrKiBhc3NldFRyYWNrKCk7CkBAIC02Miwx
MSArNTksOCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFW
Rk9iakNJbXBsPiBtX2ltcGw7CiAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIG1fcGFy
ZW50OwogICAgIGludCBtX3RyYWNrSUQ7Ci0gICAgYm9vbCBtX2VuYWJsZWQ7CiB9OwogCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCi0K
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IGQ0YzQ2MWQ4OGJmNWY3MmNm
YWQ5OWM5ZWM4ZGRmZTUwNjQxNGYwYzEuLmY2N2E4N2Q2Y2RkZjViYjJhNjE3ZTI0YmRhMTBmYjYw
OGY4ZThkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNiArMzEsNyBA
QAogI2ltcG9ydCAiQVZGb3VuZGF0aW9uU1BJLmgiCiAjaW1wb3J0ICJBdWRpb1RyYWNrUHJpdmF0
ZU1lZGlhU3RyZWFtLmgiCiAjaW1wb3J0ICJDbG9jay5oIgorI2ltcG9ydCAiQ29yZU1lZGlhU29m
dExpbmsuaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiTG9nZ2luZy5o
IgogI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCkBAIC00OSw4ICs1MCw2IEBACiAKICNw
cmFnbWEgbWFyayAtIFNvZnQgTGlua2luZwogCi0jaW1wb3J0ICJDb3JlTWVkaWFTb2Z0TGluay5o
IgotCiBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAogU09GVF9M
SU5LX0NMQVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXIpCkBAIC0zODAsMTAgKzM3OSwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cGxheSgpCiAjZW5kaWYKIAogICAgIGZvciAoY29uc3QgYXV0byYgdHJhY2sg
OiBtX2F1ZGlvVHJhY2tNYXAudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKCF0cmFjay0+ZW5hYmxl
ZCgpIHx8ICF0cmFjay0+c3RyZWFtVHJhY2soKS0+cHJldmlldygpKQorICAgICAgICBpZiAoIXRy
YWNrLT5lbmFibGVkKCkgfHwgIXRyYWNrLT5zdHJlYW1UcmFjaygpLnByZXZpZXcoKSkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLT5wcmV2aWV3
KCktPnBsYXkoKTsKKyAgICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCkucHJldmlldygpLT5wbGF5
KCk7CiAgICAgfQogCiAgICAgbV9oYXZlRXZlclBsYXllZCA9IHRydWU7CkBAIC00MTEsMTAgKzQx
MCwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2Uo
KQogI2VuZGlmCiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIHRyYWNrIDogbV9hdWRpb1RyYWNrTWFw
LnZhbHVlcygpKSB7Ci0gICAgICAgIGlmICghdHJhY2stPmVuYWJsZWQoKSB8fCAhdHJhY2stPnN0
cmVhbVRyYWNrKCktPnByZXZpZXcoKSkKKyAgICAgICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgpIHx8
ICF0cmFjay0+c3RyZWFtVHJhY2soKS5wcmV2aWV3KCkpCiAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICB0cmFjay0+c3RyZWFtVHJhY2soKS0+cHJldmlldygpLT5wYXVzZSgpOworICAg
ICAgICB0cmFjay0+c3RyZWFtVHJhY2soKS5wcmV2aWV3KCktPnBhdXNlKCk7CiAgICAgfQogCiAg
ICAgdXBkYXRlRGlzcGxheU1vZGUoKTsKQEAgLTQzNSwxMCArNDM0LDEwIEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppbnRlcm5hbFNldFZvbHVtZShmbG9hdCB2
b2x1bWUsIGJvb2wKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChjb25zdCBhdXRvJiB0cmFj
ayA6IG1fYXVkaW9UcmFja01hcC52YWx1ZXMoKSkgewotICAgICAgICBpZiAoIXRyYWNrLT5lbmFi
bGVkKCkgfHwgIXRyYWNrLT5zdHJlYW1UcmFjaygpLT5wcmV2aWV3KCkpCisgICAgICAgIGlmICgh
dHJhY2stPmVuYWJsZWQoKSB8fCAhdHJhY2stPnN0cmVhbVRyYWNrKCkucHJldmlldygpKQogICAg
ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCktPnByZXZp
ZXcoKS0+c2V0Vm9sdW1lKHZvbHVtZSk7CisgICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLnBy
ZXZpZXcoKS0+c2V0Vm9sdW1lKHZvbHVtZSk7CiAgICAgfQogfQogCkBAIC02MTcsNiArNjE2LDcg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNhbXBsZUJ1ZmZl
clVwZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1AKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5B
QkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAq
dmlkZW9GdWxsc2NyZWVuTGF5ZXIsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxs
c2NyZWVuTGF5ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIsIGNvbXBsZXRpb25IYW5kbGVyKTsKQEAg
LTYyNiw2ICs2MjYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IGZyYQogewogICAgIG1fdmlkZW9G
dWxsc2NyZWVuTGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShmcmFtZSk7CiB9
CisKICNlbmRpZgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgUmVmVCwgdHlwZW5hbWUgUGFzc1JlZlQ+
CkBAIC02NDQsMTIgKzY0NSwxMiBAQCB2b2lkIHVwZGF0ZVRyYWNrc09mVHlwZShIYXNoTWFwPFN0
cmluZywgUmVmVD4mIHRyYWNrTWFwLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeQogICAgIH0KIAog
ICAgIGZvciAoY29uc3QgYXV0byYgdHJhY2sgOiB0cmFja01hcC52YWx1ZXMoKSkgewotICAgICAg
ICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogc3RyZWFtVHJhY2sgPSB0cmFjay0+c3RyZWFtVHJh
Y2soKTsKLSAgICAgICAgaWYgKGN1cnJlbnRUcmFja3MuY29udGFpbnMoc3RyZWFtVHJhY2spKQor
ICAgICAgICBhdXRvJiBzdHJlYW1UcmFjayA9IHRyYWNrLT5zdHJlYW1UcmFjaygpOworICAgICAg
ICBpZiAoY3VycmVudFRyYWNrcy5jb250YWlucygmc3RyZWFtVHJhY2spKQogICAgICAgICAgICAg
Y29udGludWU7CiAKICAgICAgICAgcmVtb3ZlZFRyYWNrcy5hcHBlbmQodHJhY2spOwotICAgICAg
ICB0cmFja01hcC5yZW1vdmUoc3RyZWFtVHJhY2stPmlkKCkpOworICAgICAgICB0cmFja01hcC5y
ZW1vdmUoc3RyZWFtVHJhY2suaWQoKSk7CiAgICAgfQogCiAgICAgZm9yIChhdXRvJiB0cmFjayA6
IGFkZGVkUHJpdmF0ZVRyYWNrcykgewpAQCAtNjY0LDEyICs2NjUsMTIgQEAgdm9pZCB1cGRhdGVU
cmFja3NPZlR5cGUoSGFzaE1hcDxTdHJpbmcsIFJlZlQ+JiB0cmFja01hcCwgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHkKIAogICAgIGZvciAoYXV0byYgdHJhY2sgOiByZW1vdmVkVHJhY2tzKSB7CiAg
ICAgICAgIChwbGF5ZXItPipyZW1vdmVkRnVuY3Rpb24pKCp0cmFjayk7Ci0gICAgICAgIHRyYWNr
LT5zdHJlYW1UcmFjaygpLT5yZW1vdmVPYnNlcnZlcigqdHJhY2tPYnNlcnZlcik7CisgICAgICAg
IHRyYWNrLT5zdHJlYW1UcmFjaygpLnJlbW92ZU9ic2VydmVyKCp0cmFja09ic2VydmVyKTsKICAg
ICB9CiAKICAgICBmb3IgKGF1dG8mIHRyYWNrIDogYWRkZWRUcmFja3MpIHsKICAgICAgICAgKHBs
YXllci0+KmFkZGVkRnVuY3Rpb24pKCp0cmFjayk7Ci0gICAgICAgIHRyYWNrLT5zdHJlYW1UcmFj
aygpLT5hZGRPYnNlcnZlcigqdHJhY2tPYnNlcnZlcik7CisgICAgICAgIHRyYWNrLT5zdHJlYW1U
cmFjaygpLmFkZE9ic2VydmVyKCp0cmFja09ic2VydmVyKTsKICAgICB9CiB9CiAKQEAgLTY4MCwx
NCArNjgxLDE0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1
cGRhdGVUcmFja3MoKQogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWZQdHI8QXVkaW9UcmFja1By
aXZhdGVNZWRpYVN0cmVhbT4sIGludCk+IGVuYWJsZUF1ZGlvVHJhY2sgPSBbdGhpc10oYXV0byB0
cmFjaywgaW50IGluZGV4KQogICAgIHsKICAgICAgICAgdHJhY2stPnNldFRyYWNrSW5kZXgoaW5k
ZXgpOwotICAgICAgICB0cmFjay0+c2V0RW5hYmxlZCh0cmFjay0+c3RyZWFtVHJhY2soKS0+ZW5h
YmxlZCgpICYmICF0cmFjay0+c3RyZWFtVHJhY2soKS0+bXV0ZWQoKSk7CisgICAgICAgIHRyYWNr
LT5zZXRFbmFibGVkKHRyYWNrLT5zdHJlYW1UcmFjaygpLmVuYWJsZWQoKSAmJiAhdHJhY2stPnN0
cmVhbVRyYWNrKCkubXV0ZWQoKSk7CiAgICAgfTsKICAgICB1cGRhdGVUcmFja3NPZlR5cGUobV9h
dWRpb1RyYWNrTWFwLCBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbywgY3VycmVudFRyYWNrcywg
JkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW06OmNyZWF0ZSwgbV9wbGF5ZXIsICZNZWRpYVBs
YXllcjo6cmVtb3ZlQXVkaW9UcmFjaywgJk1lZGlhUGxheWVyOjphZGRBdWRpb1RyYWNrLCBlbmFi
bGVBdWRpb1RyYWNrLCAoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyKikgdGhpcyk7
CiAKICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW0+LCBpbnQpPiBlbmFibGVWaWRlb1RyYWNrID0gW3RoaXNdKGF1dG8gdHJhY2ssIGludCBp
bmRleCkKICAgICB7CiAgICAgICAgIHRyYWNrLT5zZXRUcmFja0luZGV4KGluZGV4KTsKLSAgICAg
ICAgYm9vbCBzZWxlY3RlZCA9IHRyYWNrLT5zdHJlYW1UcmFjaygpID09IG1fbWVkaWFTdHJlYW1Q
cml2YXRlLT5hY3RpdmVWaWRlb1RyYWNrKCk7CisgICAgICAgIGJvb2wgc2VsZWN0ZWQgPSAmdHJh
Y2stPnN0cmVhbVRyYWNrKCkgPT0gbV9tZWRpYVN0cmVhbVByaXZhdGUtPmFjdGl2ZVZpZGVvVHJh
Y2soKTsKICAgICAgICAgdHJhY2stPnNldFNlbGVjdGVkKHNlbGVjdGVkKTsKIAogICAgICAgICBp
ZiAoc2VsZWN0ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMuaAppbmRleCAxZjc1ODJlMThiYjY4Y2NiOGMwNjU3NmY0MGMxYzE5NTM3
ZmE3ZTdhLi4zZTViYzgxY2E2Mzk4YjJhNDliYTg3OTFlYTNlMmRlMWUzZmQyNzM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9T
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yMyw4ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0jaWZuZGVmIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDX2gKLSNkZWZpbmUgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akNfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZG
T1VOREFUSU9OKQogCkBAIC0xMTQsMTggKzExMywxOCBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMqKTsK
IAogICAgIC8vIFNvdXJjZUJ1ZmZlclByaXZhdGUgb3ZlcnJpZGVzCi0gICAgdm9pZCBzZXRDbGll
bnQoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwotICAgIHZvaWQgYXBwZW5k
KGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBhYm9ydCgpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzZXRQYXJzZXJTdGF0ZSgpIG92
ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpIG92ZXJyaWRlOwotICAg
IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKLSAg
ICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpIG92ZXJyaWRlOwot
ICAgIHZvaWQgZmx1c2goQXRvbWljU3RyaW5nIHRyYWNrSUQpIG92ZXJyaWRlOwotICAgIHZvaWQg
ZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiwgQXRvbWljU3RyaW5nIHRyYWNr
SUQpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmlu
ZyB0cmFja0lEKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldEFjdGl2ZShib29sKSBvdmVycmlkZTsK
LSAgICB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmlu
ZyB0cmFja0lEKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldENsaWVudChTb3VyY2VCdWZmZXJQcml2
YXRlQ2xpZW50KikgZmluYWw7CisgICAgdm9pZCBhcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciog
ZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KCkgZmluYWw7Cisg
ICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkgZmluYWw7CisgICAgdm9pZCByZW1vdmVkRnJvbU1l
ZGlhU291cmNlKCkgZmluYWw7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0
ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSkgZmluYWw7CisgICAgdm9pZCBmbHVzaChjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNr
SUQpIGZpbmFsOworICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYsIGNv
bnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkgZmluYWw7CisgICAgYm9vbCBpc1JlYWR5Rm9yTW9y
ZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKSBmaW5hbDsKKyAgICB2b2lkIHNl
dEFjdGl2ZShib29sKSBmaW5hbDsKKyAgICB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1v
cmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkgZmluYWw7CiAKICAgICB2b2lk
IGRpZEJlY29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoaW50IHRyYWNrSUQpOwogICAgIHZvaWQgYXBw
ZW5kQ29tcGxldGVkKCk7CkBAIC0xNTUsMjEgKzE1NCwxOSBAQCBwcml2YXRlOgogICAgIE9TT2Jq
ZWN0UHRyPGRpc3BhdGNoX2dyb3VwX3Q+IG1faXNBcHBlbmRpbmdHcm91cDsKIAogICAgIE1lZGlh
U291cmNlUHJpdmF0ZUFWRk9iakMqIG1fbWVkaWFTb3VyY2U7Ci0gICAgU291cmNlQnVmZmVyUHJp
dmF0ZUNsaWVudCogbV9jbGllbnQ7CisgICAgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCogbV9j
bGllbnQgeyBudWxscHRyIH07CiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAg
ICAgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQyogbV9zZXNzaW9uIHsgbnVsbHB0ciB9Owog
I2VuZGlmCiAKICAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0U2l6ZT4gbV9jYWNoZWRTaXplOwogICAg
IEZsb2F0U2l6ZSBtX2N1cnJlbnRTaXplOwotICAgIGJvb2wgbV9wYXJzaW5nU3VjY2VlZGVkOwor
ICAgIGJvb2wgbV9wYXJzaW5nU3VjY2VlZGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9wYXJzZXJT
dGF0ZVdhc1Jlc2V0IHsgZmFsc2UgfTsKLSAgICBpbnQgbV9lbmFibGVkVmlkZW9UcmFja0lEOwot
ICAgIGludCBtX3Byb3RlY3RlZFRyYWNrSUQ7CisgICAgaW50IG1fZW5hYmxlZFZpZGVvVHJhY2tJ
RCB7IC0xIH07CisgICAgaW50IG1fcHJvdGVjdGVkVHJhY2tJRCB7IC0xIH07CiB9OwogCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotCi0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMubW0KaW5kZXggM2IwZDY4Y2MyYmYyZDIyYjc4YjM5MmJmMzgyOGZlNjEzOGU5YjAx
OC4uZTdiMWIyMDc0ZGEzMzIzMjFmZjgwOGRmNjgzMzMyMDVhY2U2MjQyOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0xNTEsMTAgKzE1MSw3IEBAIC0gKHZvaWQpaW52YWxpZGF0ZQogCiAtICh2b2lkKXN0cmVhbURh
dGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkUGFyc2VT
dHJlYW1EYXRhQXNBc3NldDooQVZBc3NldCAqKWFzc2V0CiB7Ci0jaWYgQVNTRVJUX0RJU0FCTEVE
Ci0gICAgVU5VU0VEX1BBUkFNKHN0cmVhbURhdGFQYXJzZXIpOwotI2VuZGlmCi0gICAgQVNTRVJU
KHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CisgICAgQVNTRVJUX1VOVVNFRChzdHJlYW1E
YXRhUGFyc2VyLCBzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwogCiAgICAgUmV0YWluUHRy
PEFWQXNzZXQqPiBwcm90ZWN0ZWRBc3NldCA9IGFzc2V0OwogICAgIGNhbGxPbk1haW5UaHJlYWQo
W3BhcmVudCA9IF9wYXJlbnQsIHByb3RlY3RlZEFzc2V0ID0gV1RGTW92ZShwcm90ZWN0ZWRBc3Nl
dCldIHsKQEAgLTE2NiwxMCArMTYzLDcgQEAgLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0
cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFBhcnNlU3RyZWFtRGEKIC0gKHZv
aWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNl
ciBkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0OihBVkFzc2V0ICopYXNzZXQgd2l0aERpc2NvbnRp
bnVpdHk6KEJPT0wpZGlzY29udGludWl0eQogewogICAgIFVOVVNFRF9QQVJBTShkaXNjb250aW51
aXR5KTsKLSNpZiBBU1NFUlRfRElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBh
cnNlcik7Ci0jZW5kaWYKLSAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsK
KyAgICBBU1NFUlRfVU5VU0VEKHN0cmVhbURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0g
X3BhcnNlcik7CiAKICAgICBSZXRhaW5QdHI8QVZBc3NldCo+IHByb3RlY3RlZEFzc2V0ID0gYXNz
ZXQ7CiAgICAgY2FsbE9uTWFpblRocmVhZChbcGFyZW50ID0gX3BhcmVudCwgcHJvdGVjdGVkQXNz
ZXQgPSBXVEZNb3ZlKHByb3RlY3RlZEFzc2V0KV0gewpAQCAtMTgwLDEwICsxNzQsNyBAQCAtICh2
b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJz
ZXIgZGlkUGFyc2VTdHJlYW1EYQogCiAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFt
RGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkRmFpbFRvUGFyc2VTdHJlYW1EYXRhV2l0
aEVycm9yOihOU0Vycm9yICopZXJyb3IKIHsKLSNpZiBBU1NFUlRfRElTQUJMRUQKLSAgICBVTlVT
RURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5kaWYKLSAgICBBU1NFUlQoc3RyZWFtRGF0
YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN0cmVhbURhdGFQYXJzZXIs
IHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKICAgICBSZXRhaW5QdHI8TlNFcnJvcj4g
cHJvdGVjdGVkRXJyb3IgPSBlcnJvcjsKICAgICBjYWxsT25NYWluVGhyZWFkKFtwYXJlbnQgPSBf
cGFyZW50LCBwcm90ZWN0ZWRFcnJvciA9IFdURk1vdmUocHJvdGVjdGVkRXJyb3IpXSB7CkBAIC0x
OTQsMTAgKzE4NSw3IEBAIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFy
c2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRGYWlsVG9QYXJzZVN0CiAKIC0gKHZvaWQpc3RyZWFt
RGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRQcm92
aWRlTWVkaWFEYXRhOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGUgZm9yVHJhY2tJRDooQ01QZXJz
aXN0ZW50VHJhY2tJRCl0cmFja0lEIG1lZGlhVHlwZTooTlNTdHJpbmcgKiluc01lZGlhVHlwZSBm
bGFnczooQVZTdHJlYW1EYXRhUGFyc2VyT3V0cHV0TWVkaWFEYXRhRmxhZ3MpZmxhZ3MKIHsKLSNp
ZiBBU1NFUlRfRElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0j
ZW5kaWYKLSAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBBU1NF
UlRfVU5VU0VEKHN0cmVhbURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7
CiAKICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHByb3RlY3RlZFNhbXBsZSA9IHNh
bXBsZTsKICAgICBTdHJpbmcgbWVkaWFUeXBlID0gbnNNZWRpYVR5cGU7CkBAIC0yMDksMTAgKzE5
Nyw3IEBAIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3Ry
ZWFtRGF0YVBhcnNlciBkaWRQcm92aWRlTWVkaWFECiAKIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNl
cjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRSZWFjaEVuZE9mVHJh
Y2tXaXRoVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEIG1lZGlhVHlwZTooTlNT
dHJpbmcgKiluc01lZGlhVHlwZQogewotI2lmIEFTU0VSVF9ESVNBQkxFRAotICAgIFVOVVNFRF9Q
QVJBTShzdHJlYW1EYXRhUGFyc2VyKTsKLSNlbmRpZgotICAgIEFTU0VSVChzdHJlYW1EYXRhUGFy
c2VyID09IF9wYXJzZXIpOworICAgIEFTU0VSVF9VTlVTRUQoc3RyZWFtRGF0YVBhcnNlciwgc3Ry
ZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKIAogICAgIFN0cmluZyBtZWRpYVR5cGUgPSBuc01l
ZGlhVHlwZTsKICAgICBjYWxsT25NYWluVGhyZWFkKFtwYXJlbnQgPSBfcGFyZW50LCB0cmFja0lE
LCBtZWRpYVR5cGVdIHsKQEAgLTIyMywxMCArMjA4LDcgQEAgLSAodm9pZClzdHJlYW1EYXRhUGFy
c2VyOihBVlN0cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFJlYWNoRW5kT2ZU
cmEKIAogLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyV2lsbFByb3ZpZGVDb250ZW50S2V5UmVxdWVz
dEluaXRpYWxpemF0aW9uRGF0YTooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNl
ciBmb3JUcmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQKIHsKLSNpZiBBU1NFUlRf
RElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5kaWYKLSAg
ICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRfVU5VU0VE
KHN0cmVhbURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKICAgICAv
LyBXZSBtdXN0IGNhbGwgc3luY2hyb25vdXNseSB0byB0aGUgbWFpbiB0aHJlYWQsIGFzIHRoZSBB
VlN0cmVhbVNlc3Npb24gbXVzdCBiZSBhc3NvY2lhdGVkCiAgICAgLy8gd2l0aCB0aGUgc3RyZWFt
RGF0YVBhcnNlciBiZWZvcmUgdGhlIGRlbGVnYXRlIG1ldGhvZCByZXR1cm5zLgpAQCAtMjM4LDEw
ICsyMjAsNyBAQCAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXJXaWxsUHJvdmlkZUNvbnRlbnRLZXlS
ZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhOihBVlN0cmVhbQogCiAtICh2b2lkKXN0cmVhbURhdGFQ
YXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkUHJvdmlkZUNv
bnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhOihOU0RhdGEgKilpbml0RGF0YSBmb3JU
cmFja0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQKIHsKLSNpZiBBU1NFUlRfRElTQUJM
RUQKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5kaWYKLSAgICBBU1NF
UlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN0cmVh
bURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKICAgICBPU09iamVj
dFB0cjxkaXNwYXRjaF9zZW1hcGhvcmVfdD4gaGFzU2Vzc2lvblNlbWFwaG9yZSA9IGFkb3B0T1NP
YmplY3QoZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKSk7CiAgICAgY2FsbE9uTWFpblRocmVh
ZChbcGFyZW50ID0gX3BhcmVudCwgcHJvdGVjdGVkSW5pdERhdGEgPSBSZXRhaW5QdHI8TlNEYXRh
Pihpbml0RGF0YSksIHRyYWNrSUQsIGhhc1Nlc3Npb25TZW1hcGhvcmVdIHsKQEAgLTQ0OSwxMCAr
NDI4LDYgQEAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OlNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDKE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMKICAgICAsIG1fZXJyb3JMaXN0ZW5lcihh
ZG9wdE5TKFtbV2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aFBh
cmVudDp0aGlzXSkpCiAgICAgLCBtX2lzQXBwZW5kaW5nR3JvdXAoYWRvcHRPU09iamVjdChkaXNw
YXRjaF9ncm91cF9jcmVhdGUoKSkpCiAgICAgLCBtX21lZGlhU291cmNlKHBhcmVudCkKLSAgICAs
IG1fY2xpZW50KDApCi0gICAgLCBtX3BhcnNpbmdTdWNjZWVkZWQodHJ1ZSkKLSAgICAsIG1fZW5h
YmxlZFZpZGVvVHJhY2tJRCgtMSkKLSAgICAsIG1fcHJvdGVjdGVkVHJhY2tJRCgtMSkKIHsKIH0K
IApAQCAtNTEyLDEwICs0ODcsMTAgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
ZGlkUGFyc2VTdHJlYW1EYXRhQXNBc3NldChBVkFzc2V0KiBhc3NldCkKICAgICAgICAgbV9tZWRp
YVNvdXJjZS0+cGxheWVyKCktPmNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsKIAogICAgIGlmICht
X2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZl
SW5pdGlhbGl6YXRpb25TZWdtZW50KHRoaXMsIHNlZ21lbnQpOworICAgICAgICBtX2NsaWVudC0+
c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoc2VnbWVu
dCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZEZhaWxUb1BhcnNl
U3RyZWFtRGF0YVdpdGhFcnJvcihOU0Vycm9yKiBlcnJvcikKK3ZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OmRpZEZhaWxUb1BhcnNlU3RyZWFtRGF0YVdpdGhFcnJvcihOU0Vycm9yICpl
cnJvcikKIHsKICNpZiBMT0dfRElTQUJMRUQKICAgICBVTlVTRURfUEFSQU0oZXJyb3IpOwpAQCAt
NTMxLDEwICs1MDYsOCBAQCBzdHJ1Y3QgUHJvY2Vzc0NvZGVkRnJhbWVJbmZvIHsKICAgICBjb25z
dCBTdHJpbmcmIG1lZGlhVHlwZTsKIH07CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6OmRpZFByb3ZpZGVNZWRpYURhdGFGb3JUcmFja0lEKGludCB0cmFja0lELCBDTVNhbXBsZUJ1
ZmZlclJlZiBzYW1wbGVCdWZmZXIsIGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlLCB1bnNpZ25lZCBm
bGFncykKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVNZWRpYURh
dGFGb3JUcmFja0lEKGludCB0cmFja0lELCBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIs
IGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlLCB1bnNpZ25lZCkKIHsKLSAgICBVTlVTRURfUEFSQU0o
ZmxhZ3MpOwotCiAgICAgcHJvY2Vzc0NvZGVkRnJhbWUodHJhY2tJRCwgc2FtcGxlQnVmZmVyLCBt
ZWRpYVR5cGUpOwogfQogCkBAIC01NDksMTYgKzUyMiwxNCBAQCBib29sIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpwcm9jZXNzQ29kZWRGcmFtZShpbnQgdHJhY2tJRCwgQ01TYW1wbGVCdWZm
ZXJSZQogICAgIGlmIChtX2NsaWVudCkgewogICAgICAgICBSZWY8TWVkaWFTYW1wbGU+IG1lZGlh
U2FtcGxlID0gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoc2FtcGxlQnVmZmVyLCB0cmFja0lE
KTsKICAgICAgICAgTE9HKE1lZGlhU291cmNlU2FtcGxlcywgIlNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpwcm9jZXNzQ29kZWRGcmFtZSglcCkgLSBzYW1wbGUoJXMpIiwgdGhpcywgdG9TdHJp
bmcobWVkaWFTYW1wbGUuZ2V0KCkpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBtX2NsaWVudC0+
c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUodGhpcywgbWVkaWFTYW1wbGUpOwor
ICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUobWVk
aWFTYW1wbGUpOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRSZWFjaEVuZE9mVHJhY2tXaXRoVHJhY2tJRChpbnQgdHJh
Y2tJRCwgY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpkaWRSZWFjaEVuZE9mVHJhY2tXaXRoVHJhY2tJRChpbnQsIGNvbnN0IFN0cmluZyYp
CiB7Ci0gICAgVU5VU0VEX1BBUkFNKG1lZGlhVHlwZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRyYWNr
SUQpOwogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKQEAgLTU5MCw3ICs1NjEsNiBAQCB2b2lk
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJ
bml0aWFsaXphdGlvbkRhdGFGbwogICAgIGlmICghbV9tZWRpYVNvdXJjZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgVU5VU0VEX1BBUkFNKHRyYWNrSUQpOwogI2lmIEVOQUJMRShMRUdBQ1lfRU5D
UllQVEVEX01FRElBKQogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JU
cmFja0lEKCVwKSAtIHRyYWNrOiVkIiwgdGhpcywgdHJhY2tJRCk7CiAgICAgbV9wcm90ZWN0ZWRU
cmFja0lEID0gdHJhY2tJRDsKQEAgLTYwNyw2ICs1NzcsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRh
dGFGbwogICAgIH0KICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGluaXREYXRhKTsKKyAgICBVTlVT
RURfUEFSQU0odHJhY2tJRCk7CiAgICAgVU5VU0VEX1BBUkFNKGhhc1Nlc3Npb25TZW1hcGhvcmUp
OwogI2VuZGlmCiB9CkBAIC02NTksNyArNjMwLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6YXBwZW5kQ29tcGxldGVkKCkKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVy
KCktPnNldExvYWRpbmdQcm9ncmVzc3NlZCh0cnVlKTsKIAogICAgIGlmIChtX2NsaWVudCkKLSAg
ICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCBt
X3BhcnNpbmdTdWNjZWVkZWQgPyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNj
ZWVkZWQgOiBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKKyAgICAg
ICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShtX3BhcnNpbmdT
dWNjZWVkZWQgPyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQgOiBT
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKIH0KIAogdm9pZCBTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YWJvcnQoKQpAQCAtNzM1LDE4ICs3MDYsMTIgQEAgdm9p
ZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSByZWFkeVN0YXQKIAogYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
aGFzVmlkZW8oKSBjb25zdAogewotICAgIGlmICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIHJldHVybiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVv
KHRoaXMpOworICAgIHJldHVybiBtX2NsaWVudCAmJiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJp
dmF0ZUhhc1ZpZGVvKCk7CiB9CiAKIGJvb2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Omhh
c0F1ZGlvKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyh0
aGlzKTsKKyAgICByZXR1cm4gbV9jbGllbnQgJiYgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZh
dGVIYXNBdWRpbygpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0cmFj
a0RpZENoYW5nZUVuYWJsZWQoVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMqIHRy
YWNrKQpAQCAtODc0LDcgKzgzOSw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OmxheWVyRGlkUmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyCiAgICAgaW50
IGVycm9yQ29kZSA9IFtbW2Vycm9yIHVzZXJJbmZvXSB2YWx1ZUZvcktleTpAIk9TU3RhdHVzIl0g
aW50VmFsdWVdOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNl
QnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcih0aGlzLCBlcnJvckNvZGUpOwor
ICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdF
cnJvcihlcnJvckNvZGUpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpy
ZW5kZXJlckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKnJlbmRl
cmVyLCBOU0Vycm9yICplcnJvcikKQEAgLTg5NSw3ICs4NjAsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjpyZW5kZXJlckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1
ZGlvUmVuZAogICAgICAgICByZXR1cm47CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6OmZsdXNoKEF0b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6Zmx1c2goY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5n
KQogewogICAgIGludCB0cmFja0lEID0gdHJhY2tJRFN0cmluZy50b0ludCgpOwogICAgIExPRyhN
ZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVzaCglcCkgLSB0cmFj
a0lkOiAlZCIsIHRoaXMsIHRyYWNrSUQpOwpAQCAtOTI1LDE5ICs4OTAsMTcgQEAgdm9pZCBTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Zmx1c2goQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVy
ICpyZW5kZXJlcikKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWls
YWJsZUF1ZGlvU2FtcGxlKHJlbmRlcmVyLCBmYWxzZSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJw
TWVkaWFTYW1wbGUsIEF0b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxl
LCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSURTdHJpbmcpCiB7CiAgICAgaW50IHRyYWNrSUQg
PSB0cmFja0lEU3RyaW5nLnRvSW50KCk7CiAgICAgaWYgKHRyYWNrSUQgIT0gbV9lbmFibGVkVmlk
ZW9UcmFja0lEICYmICFtX2F1ZGlvUmVuZGVyZXJzLmNvbnRhaW5zKHRyYWNrSUQpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IG1lZGlhU2FtcGxlID0gcHJwTWVk
aWFTYW1wbGU7Ci0KLSAgICBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBsZSA9IG1lZGlhU2Ft
cGxlLT5wbGF0Zm9ybVNhbXBsZSgpOworICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxl
ID0gc2FtcGxlLT5wbGF0Zm9ybVNhbXBsZSgpOwogICAgIGlmIChwbGF0Zm9ybVNhbXBsZS50eXBl
ICE9IFBsYXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpCiAgICAgICAgIHJldHVybjsK
IAotICAgIExPRyhNZWRpYVNvdXJjZVNhbXBsZXMsICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qzo6ZW5xdWV1ZVNhbXBsZSglcCkgLSBzYW1wbGUoJXMpIiwgdGhpcywgdG9TdHJpbmcoKm1lZGlh
U2FtcGxlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBMT0coTWVkaWFTb3VyY2VTYW1wbGVzLCAiU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoJXApIC0gc2FtcGxlKCVzKSIs
IHRoaXMsIHRvU3RyaW5nKHNhbXBsZS5nZXQoKSkudXRmOCgpLmRhdGEoKSk7CiAKICAgICBpZiAo
dHJhY2tJRCA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQpIHsKICAgICAgICAgQ01Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVz
Y3JpcHRpb24ocGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKQEAgLTk1MCwy
MiArOTEzLDIyIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1w
bGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJwTWVkaWFTCiAgICAgICAgICAgICAgICAgaWYg
KHNpemVXYXNOdWxsKQogICAgICAgICAgICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIo
KS0+c2V0TmF0dXJhbFNpemUoZm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2l6ZVdpbGxDaGFuZ2VB
dFRpbWUobWVkaWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSwgZm9ybWF0U2l6ZSk7CisgICAg
ICAgICAgICAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zaXplV2lsbENoYW5nZUF0
VGltZShzYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSwgZm9ybWF0U2l6ZSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KIAogICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZW5xdWV1ZVNhbXBsZUJ1
ZmZlcjpwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXJdOwogICAgICAgICBpZiAo
bV9tZWRpYVNvdXJjZSkKLSAgICAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zZXRI
YXNBdmFpbGFibGVWaWRlb0ZyYW1lKCFtZWRpYVNhbXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOwor
ICAgICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZVZpZGVv
RnJhbWUoIXNhbXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IGF1dG8gcmVuZGVyZXIgPSBtX2F1ZGlvUmVuZGVyZXJzLmdldCh0cmFja0lEKTsKICAgICAgICAg
W3JlbmRlcmVyIGVucXVldWVTYW1wbGVCdWZmZXI6cGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2Ft
cGxlQnVmZmVyXTsKICAgICAgICAgaWYgKG1fbWVkaWFTb3VyY2UpCi0gICAgICAgICAgICBtX21l
ZGlhU291cmNlLT5wbGF5ZXIoKS0+c2V0SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUocmVuZGVyZXIu
Z2V0KCksICFtZWRpYVNhbXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOworICAgICAgICAgICAgbV9t
ZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxlKHJlbmRlcmVy
LmdldCgpLCAhc2FtcGxlLT5pc05vbkRpc3BsYXlpbmcoKSk7CiAgICAgfQogfQogCi1ib29sIFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3Ry
aW5nIHRyYWNrSURTdHJpbmcpCitib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjppc1Jl
YWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewog
ICAgIGludCB0cmFja0lEID0gdHJhY2tJRFN0cmluZy50b0ludCgpOwogICAgIGlmICh0cmFja0lE
ID09IG1fZW5hYmxlZFZpZGVvVHJhY2tJRCkKQEAgLTk4NCw5ICs5NDcsOSBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRBY3RpdmUoYm9vbCBpc0FjdGl2ZSkKIAogTWVkaWFU
aW1lIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUo
TWVkaWFUaW1lIHRpbWUsIE1lZGlhVGltZSBuZWdhdGl2ZVRocmVzaG9sZCwgTWVkaWFUaW1lIHBv
c2l0aXZlVGhyZXNob2xkKQogewotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgcmV0dXJuIG1f
Y2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRoaXMs
IHRpbWUsIG5lZ2F0aXZlVGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7Ci0gICAgcmV0dXJu
IHRpbWU7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuIHRpbWU7CisgICAgcmV0
dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1l
KHRpbWUsIG5lZ2F0aXZlVGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7CiB9CiAKIHZvaWQg
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OndpbGxTZWVrKCkKQEAgLTEwMDEsNyArOTY0LDcg
QEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6d2lsbFNlZWsoKQogdm9pZCBTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2Vla1RvVGltZShNZWRpYVRpbWUgdGltZSkKIHsKICAg
ICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlU2Vl
a1RvVGltZSh0aGlzLCB0aW1lKTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZh
dGVTZWVrVG9UaW1lKHRpbWUpOwogfQogCiBGbG9hdFNpemUgU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6Om5hdHVyYWxTaXplKCkKQEAgLTEwMjEsMTAgKzk4NCwxMCBAQCB2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKGludCB0cmFj
a0lEKQogICAgIH0KIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnNvdXJj
ZUJ1ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKHRoaXMsIEF0b21pY1N0
cmluZzo6bnVtYmVyKHRyYWNrSUQpKTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZzo6bnVtYmVyKHRy
YWNrSUQpKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6bm90aWZ5Q2xp
ZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSURTdHJpbmcpCit2
b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JN
b3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSURTdHJpbmcpCiB7CiAgICAgaW50
IHRyYWNrSUQgPSB0cmFja0lEU3RyaW5nLnRvSW50KCk7CiAgICAgaWYgKHRyYWNrSUQgPT0gbV9l
bmFibGVkVmlkZW9UcmFja0lEKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlk
ZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcAppbmRleCBlOWM2NjIyMjNjODM2NWRkMDc3NmU4YTJj
NGVlZDQ4YzBmMTMwMWZkLi5jODcxYzU5NDgzNTUwODU3MTgyYzdhMjRkNTUzNGI4NWE1ZDRlZjdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZG
T2JqQy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMjUsMTEgKzI1LDEyIEBACiAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAi
VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgiCi0jaW1wb3J0ICJBVlRyYWNrUHJpdmF0ZUFWRk9i
akNJbXBsLmgiCi0jaW1wb3J0ICJNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIgogCiAjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQogCisjaW1wb3J0ICJBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBs
LmgiCisjaW1wb3J0ICJNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIgorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6VmlkZW9UcmFja1ByaXZhdGVB
VkZPYmpDKEFWUGxheWVySXRlbVRyYWNrKiB0cmFjaykKQEAgLTEwNSw0ICsxMDYsMyBAQCB2b2lk
IFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6c2V0U2VsZWN0ZWQoYm9vbCBlbmFibGVkKQogfQog
CiAjZW5kaWYKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZE1ldGFkYXRhVGV4
dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IGY2NjZiZWJjMmI3ZjQzMmFiYzU2ZmI4ODZj
ODk5NzZmNzlhMzU0YWQuLmU5NDJhMmM1ZmMwN2U3YjBhYTU2NTEzMWZhMTg1MThjYzVjNDRjZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9J
bmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5k
ZWYgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyX2gKLSNkZWZpbmUgSW5i
YW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyX2gKKyNwcmFnbWEgb25jZQogCiAj
aWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUoVklERU9fVFJBQ0sp
CiAKQEAgLTUwLDEzICs0OSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0
IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgewogICAgICAgICBBU1NFUlQoY3VlRm9ybWF0KCkgPT0g
RGF0YSk7Ci0gICAgICAgIGNsaWVudCgpLT5hZGREYXRhQ3VlKHRoaXMsIHN0YXJ0LCBlbmQsIGRh
dGEsIGxlbmd0aCk7CisgICAgICAgIGNsaWVudCgpLT5hZGREYXRhQ3VlKHN0YXJ0LCBlbmQsIGRh
dGEsIGxlbmd0aCk7CiAgICAgfQogCiAgICAgdm9pZCBhZGRHZW5lcmljQ3VlKFBhc3NSZWZQdHI8
R2VuZXJpY0N1ZURhdGE+IGRhdGEpCiAgICAgewogICAgICAgICBBU1NFUlQoY3VlRm9ybWF0KCkg
PT0gR2VuZXJpYyk7Ci0gICAgICAgIGNsaWVudCgpLT5hZGRHZW5lcmljQ3VlKHRoaXMsIGRhdGEp
OworICAgICAgICBjbGllbnQoKS0+YWRkR2VuZXJpY0N1ZSgqZGF0YSk7CiAgICAgfQogCiBwcml2
YXRlOgpAQCAtNzYsNSArNzUsMyBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUoVklE
RU9fVFJBQ0spCi0KLSNlbmRpZiAvLyBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVHU3Ry
ZWFtZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3Ry
ZWFtZXIuY3BwCmluZGV4IDZiMWZmYWI5M2MzNDhmY2NjNzdjNjMwZmViNmJlODJlMTAxOWRhZDYu
LjFkOTQ1Mjc4YmE0ZDAyYzA0N2YzMmExNTc0OTVkYmRlNjhjZmEwNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTExMyw3
ICsxMTMsNyBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRy
YWNrT2ZTYW1wbGUoKQogCiAgICAgICAgIEdTVF9JTkZPKCJUcmFjayAlZCBwYXJzaW5nIHNhbXBs
ZTogJS4qcyIsIG1faW5kZXgsIHN0YXRpY19jYXN0PGludD4oaW5mby5zaXplKSwKICAgICAgICAg
ICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGluZm8uZGF0YSkpOwotICAgICAgICBjbGllbnQo
KS0+cGFyc2VXZWJWVFRDdWVEYXRhKHRoaXMsIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGluZm8u
ZGF0YSksIGluZm8uc2l6ZSk7CisgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEN1ZURhdGEo
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oaW5mby5kYXRhKSwgaW5mby5zaXplKTsKICAgICAgICAg
Z3N0X2J1ZmZlcl91bm1hcChidWZmZXIsICZpbmZvKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFz
ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5jcHAKaW5kZXggNjE5ZjJjYTYxY2FiZTU5NDBh
ZWMzZDEzZWNmN2RkZjU3MzVmZDcyMS4uOWJlMWZlYTJkZmY1YTA2Y2U0MGU4NTFmYTUzYTAzZjY0
ODRhZTVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNw
cApAQCAtMTU3LDcgKzE1Nyw3IEBAIHZvaWQgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6bm90
aWZ5VHJhY2tPZlRhZ3NDaGFuZ2VkKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGdldFRh
Zyh0YWdzLmdldCgpLCBHU1RfVEFHX1RJVExFLCBtX2xhYmVsKSkKLSAgICAgICAgY2xpZW50LT5s
YWJlbENoYW5nZWQobV9vd25lciwgbV9sYWJlbCk7CisgICAgICAgIGNsaWVudC0+bGFiZWxDaGFu
Z2VkKG1fbGFiZWwpOwogCiAgICAgQXRvbWljU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmICghZ2V0
TGFuZ3VhZ2VDb2RlKHRhZ3MuZ2V0KCksIGxhbmd1YWdlKSkKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2
b2lkIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCgp
CiAgICAgICAgIHJldHVybjsKIAogICAgIG1fbGFuZ3VhZ2UgPSBsYW5ndWFnZTsKLSAgICBjbGll
bnQtPmxhbmd1YWdlQ2hhbmdlZChtX293bmVyLCBtX2xhbmd1YWdlKTsKKyAgICBjbGllbnQtPmxh
bmd1YWdlQ2hhbmdlZChtX2xhbmd1YWdlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21z
ZS9BcHBlbmRQaXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAppbmRleCAwMDUxMmU2M2M3MzJlMzkzZWY2
NTE2MDEwZDFlNjdlZTZmZWRiYjM4Li44NDkyNjdmMjFlMDY5OGZiNWQyYWRkZWFlNTA5MWIzYzVk
MDkyZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcApAQCAtNjc2LDcgKzY3
Niw3IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtOZXdTYW1wbGUoR3N0U2FtcGxlKiBz
YW1wbGUpCiAgICAgICAgICAgICBtZWRpYVNhbXBsZS0+YXBwbHlQdHNPZmZzZXQoTWVkaWFUaW1l
Ojp6ZXJvVGltZSgpKTsKICAgICAgICAgfQogCi0gICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0
ZS0+ZGlkUmVjZWl2ZVNhbXBsZShtZWRpYVNhbXBsZSk7CisgICAgICAgIG1fc291cmNlQnVmZmVy
UHJpdmF0ZS0+ZGlkUmVjZWl2ZVNhbXBsZSgqbWVkaWFTYW1wbGUpOwogICAgICAgICBzZXRBcHBl
bmRTdGF0ZShBcHBlbmRTdGF0ZTo6U2FtcGxpbmcpOwogICAgICAgICBtX2Zsb3dSZXR1cm4gPSBH
U1RfRkxPV19PSzsKICAgICAgICAgbV9uZXdTYW1wbGVDb25kaXRpb24ubm90aWZ5T25lKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNw
cAppbmRleCA3ZjU0NWVlMzVlNDhhYTA2YjAyYTk5NjNlMTFhY2JjYmRjYTc3OTQxLi5lNGIxMDdm
NzBmNWM4YzY5ODE3NDE1ZWJjYTRkNjU1YjNhYjVlYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9tc2UvU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTc2LDcgKzc2LDcg
QEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjphcHBlbmQoY29uc3QgdW5zaWdu
ZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGUKICAgICBpZiAobV9jbGllbnQtPmFwcGVuZCh0aGlz
LCBkYXRhLCBsZW5ndGgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3NvdXJjZUJ1ZmZlclBy
aXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCBTb3Vy
Y2VCdWZmZXJQcml2YXRlQ2xpZW50OjpSZWFkU3RyZWFtRmFpbGVkKTsKKyAgICBtX3NvdXJjZUJ1
ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3Vy
Y2VCdWZmZXJQcml2YXRlQ2xpZW50OjpSZWFkU3RyZWFtRmFpbGVkKTsKIH0KIAogdm9pZCBTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjphYm9ydCgpCkBAIC0xMDYsMjAgKzEwNiwxOSBAQCB2
b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5
ZXI6OlJlYWR5U3RhdGUgc3RhdGUpCiAgICAgbV9tZWRpYVNvdXJjZS0+c2V0UmVhZHlTdGF0ZShz
dGF0ZSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Zmx1c2goQXRv
bWljU3RyaW5nIHRyYWNrSWQpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmZs
dXNoKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJZCkKIHsKICAgICBtX2NsaWVudC0+Zmx1c2go
dHJhY2tJZCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZW5xdWV1
ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUsIEF0b21pY1N0cmluZykK
K3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVk
aWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAgIG1fbm90aWZ5
V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMgPSBmYWxzZTsKIAotICAgIFJlZlB0cjxNZWRpYVNhbXBs
ZT4gcHJvdGVjdGVkUHJwU2FtcGxlID0gcHJwU2FtcGxlOwotICAgIG1fY2xpZW50LT5lbnF1ZXVl
U2FtcGxlKHByb3RlY3RlZFBycFNhbXBsZSk7CisgICAgbV9jbGllbnQtPmVucXVldWVTYW1wbGUo
V1RGTW92ZShzYW1wbGUpKTsKIH0KIAotYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVy
Ojppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKQorYm9vbCBTb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5n
JikKIHsKICAgICByZXR1cm4gbV9pc1JlYWR5Rm9yTW9yZVNhbXBsZXM7CiB9CkBAIC0xMzUsNyAr
MTM0LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlSZWFkeUZv
ck1vcmVTYW1wbGVzKCkKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CiAgICAgc2V0
UmVhZHlGb3JNb3JlU2FtcGxlcyh0cnVlKTsKICAgICBpZiAobV9ub3RpZnlXaGVuUmVhZHlGb3JN
b3JlU2FtcGxlcykKLSAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VC
dWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyh0aGlzLCBtX3RyYWNrSWQp
OworICAgICAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZh
dGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKG1fdHJhY2tJZCk7CiB9CiAKIHZvaWQgU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0QWN0aXZlKGJvb2wgaXNBY3RpdmUpCkBAIC0x
NDQsMTIgKzE0MywxMiBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnNldEFj
dGl2ZShib29sIGlzQWN0aXZlKQogICAgICAgICBtX21lZGlhU291cmNlLT5zb3VyY2VCdWZmZXJQ
cml2YXRlRGlkQ2hhbmdlQWN0aXZlU3RhdGUodGhpcywgaXNBY3RpdmUpOwogfQogCi12b2lkIFNv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhBdG9t
aWNTdHJpbmcpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnN0b3BBc2tpbmdG
b3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5Q2xpZW50
V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSWQpCit2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1w
bGVzKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJZCkKIHsKICAgICBBU1NFUlQoV1RGOjppc01h
aW5UaHJlYWQoKSk7CiAgICAgbV9ub3RpZnlXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyA9IHRydWU7
CkBAIC0xNTksMjAgKzE1OCwxOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6
Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cgogdm9pZCBTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50
KGNvbnN0IFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9uU2VnbWVudCYg
aW5pdGlhbGl6YXRpb25TZWdtZW50KQogewogICAgIGlmIChtX3NvdXJjZUJ1ZmZlclByaXZhdGVD
bGllbnQpCi0gICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC0+c291cmNlQnVmZmVy
UHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQodGhpcywgaW5pdGlhbGl6YXRp
b25TZWdtZW50KTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VC
dWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChpbml0aWFsaXphdGlv
blNlZ21lbnQpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJl
Y2VpdmVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJwU2FtcGxlKQordm9pZCBTb3Vy
Y2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJiBz
YW1wbGUpCiB7Ci0gICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBwcm90ZWN0ZWRQcnBTYW1wbGUgPSBw
cnBTYW1wbGU7CiAgICAgaWYgKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCkKLSAgICAgICAg
bV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2
ZVNhbXBsZSh0aGlzLCAqcHJvdGVjdGVkUHJwU2FtcGxlKTsKKyAgICAgICAgbV9zb3VyY2VCdWZm
ZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShzYW1w
bGUpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVB
bGxQZW5kaW5nU2FtcGxlcygpCiB7CiAgICAgaWYgKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVu
dCkKLSAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2
YXRlQXBwZW5kQ29tcGxldGUodGhpcywgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBwZW5k
U3VjY2VlZGVkKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VC
dWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBw
ZW5kU3VjY2VlZGVkKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCAzMDg0MjVkNTAzY2FhNGViODY4YjM4OTk5YjVk
NDY3NjhkZDU0OTg3Li41NjcxMzEwZmY4MmM4M2Y5OGMyNjBlODdiNDhmMTM0MWVjOGFmNjFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIu
aApAQCAtNTQsMjYgKzU0LDI2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2xlYXJNZWRpYVNvdXJj
ZSgpIHsgbV9tZWRpYVNvdXJjZSA9IG51bGxwdHI7IH0KIAotICAgIHZvaWQgc2V0Q2xpZW50KFNv
dXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqKSBvdmVycmlkZTsKLSAgICB2b2lkIGFwcGVuZChjb25z
dCB1bnNpZ25lZCBjaGFyKiwgdW5zaWduZWQpIG92ZXJyaWRlOwotICAgIHZvaWQgYWJvcnQoKSBv
dmVycmlkZTsKLSAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBvdmVycmlkZTsKLSAgICB2b2lk
IHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKSBvdmVycmlkZTsKLSAgICBNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRSZWFkeVN0
YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsKLQotICAgIHZvaWQgZmx1c2go
QXRvbWljU3RyaW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIGVucXVldWVTYW1wbGUoUGFzc1JlZlB0
cjxNZWRpYVNhbXBsZT4sIEF0b21pY1N0cmluZykgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWR5
Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldEFjdGl2
ZShib29sKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhBdG9t
aWNTdHJpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9y
ZVNhbXBsZXMoQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldENsaWVudChTb3Vy
Y2VCdWZmZXJQcml2YXRlQ2xpZW50KikgZmluYWw7CisgICAgdm9pZCBhcHBlbmQoY29uc3QgdW5z
aWduZWQgY2hhciosIHVuc2lnbmVkKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KCkgZmluYWw7Cisg
ICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkgZmluYWw7CisgICAgdm9pZCByZW1vdmVkRnJvbU1l
ZGlhU291cmNlKCkgZmluYWw7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0
ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSkgZmluYWw7CisKKyAgICB2b2lkIGZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYpIGZp
bmFsOworICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYsIGNvbnN0IEF0
b21pY1N0cmluZyYpIGZpbmFsOworICAgIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0
IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIGZpbmFsOwor
ICAgIHZvaWQgc3RvcEFza2luZ0Zvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYpIGZp
bmFsOworICAgIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3Qg
QXRvbWljU3RyaW5nJikgZmluYWw7CiAKICAgICB2b2lkIHNldFJlYWR5Rm9yTW9yZVNhbXBsZXMo
Ym9vbCk7CiAgICAgdm9pZCBub3RpZnlSZWFkeUZvck1vcmVTYW1wbGVzKCk7CiAKICAgICB2b2lk
IGRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgU291cmNlQnVmZmVyUHJpdmF0
ZUNsaWVudDo6SW5pdGlhbGl6YXRpb25TZWdtZW50Jik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2Ft
cGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTYW1wbGUo
TWVkaWFTYW1wbGUmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVBbGxQZW5kaW5nU2FtcGxlcygpOwog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCmluZGV4IGJhMTkx
MjFjMjIyZmI2Mjc2NjM5MmE3MWVmYmM1NjVmZTljODc5NjMuLjYwYzAwNzVkNjcyYTYyOTAyNTgx
ZjkzOGU2YWZhNDgzYjE2NjA0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFt
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLSNpZm5kZWYgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbV9oCi0jZGVmaW5lIEF1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTdHJlYW1faAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoVklE
RU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKQEAgLTM2LDE0ICszNSwxMSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtIGZp
bmFsIDogcHVibGljIEF1ZGlvVHJhY2tQcml2YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtKQogcHVibGljOgotCiAgICAgc3RhdGljIFJl
ZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtPiBjcmVhdGUoTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmIHN0cmVhbVRyYWNrKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbShzdHJlYW1UcmFjaykpOwogICAgIH0KIAot
ICAgIHZpcnR1YWwgfkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0oKSB7IH0KLQogICAgIEtp
bmQga2luZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEtpbmQ6Ok1haW47IH0KICAgICBBdG9t
aWNTdHJpbmcgaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lkOyB9CiAgICAgQXRvbWlj
U3RyaW5nIGxhYmVsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9sYWJlbDsgfQpAQCAtNTIs
MTcgKzQ4LDE3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VHJhY2tJbmRleChpbnQgaW5kZXgp
IHsgbV9pbmRleCA9IGluZGV4OyB9CiAKLSAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogc3Ry
ZWFtVHJhY2soKSBjb25zdCB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CisgICAgTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKCkgeyByZXR1cm4gbV9zdHJlYW1UcmFj
ay5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0o
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQotICAgICAgICA6IG1fc3RyZWFtVHJhY2so
JnRyYWNrKQorICAgICAgICA6IG1fc3RyZWFtVHJhY2sodHJhY2spCiAgICAgICAgICwgbV9pZCh0
cmFjay5pZCgpKQogICAgICAgICAsIG1fbGFiZWwodHJhY2subGFiZWwoKSkKICAgICB7CiAgICAg
fQogCi0gICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBtX3N0cmVhbVRyYWNrOwor
ICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9zdHJlYW1UcmFjazsKICAgICBBdG9t
aWNTdHJpbmcgbV9pZDsKICAgICBBdG9taWNTdHJpbmcgbV9sYWJlbDsKICAgICBpbnQgbV9pbmRl
eCB7IDAgfTsKQEAgLTcxLDUgKzY3LDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmIC8vIEVOQUJM
RShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2VuZGlmIC8vIEF1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTdHJlYW1faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVh
bS5oCmluZGV4IGUxYmZhMTZmMTRkNzI5YWZkMGQxZTRlZWZiMWNlOTk2MjE1NzAxNjYuLjA0NTgz
ODlmMzk3NDg3MjcyYTc5MzEwNGIwYTNkZjViM2EyZmJkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9WaWRlb1RyYWNrUHJp
dmF0ZU1lZGlhU3RyZWFtLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbV9o
Ci0jZGVmaW5lIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1faAorI3ByYWdtYSBvbmNlCiAK
ICNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKQEAgLTM2
LDE0ICszNSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0
ZU1lZGlhU3RyZWFtIGZpbmFsIDogcHVibGljIFZpZGVvVHJhY2tQcml2YXRlIHsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtKQogcHVibGljOgot
CiAgICAgc3RhdGljIFJlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtPiBjcmVhdGUo
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKQogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbShzdHJlYW1UcmFj
aykpOwogICAgIH0KIAotICAgIHZpcnR1YWwgflZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0o
KSB7IH0KLQogICAgIEtpbmQga2luZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEtpbmQ6Ok1h
aW47IH0KICAgICBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lk
OyB9CiAgICAgQXRvbWljU3RyaW5nIGxhYmVsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9s
YWJlbDsgfQpAQCAtNTIsMTcgKzQ4LDE3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VHJhY2tJ
bmRleChpbnQgaW5kZXgpIHsgbV9pbmRleCA9IGluZGV4OyB9CiAKLSAgICBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSogc3RyZWFtVHJhY2soKSBjb25zdCB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdl
dCgpOyB9CisgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKCkgeyByZXR1
cm4gbV9zdHJlYW1UcmFjay5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIFZpZGVvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW0oTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQotICAgICAgICA6
IG1fc3RyZWFtVHJhY2soJnRyYWNrKQorICAgICAgICA6IG1fc3RyZWFtVHJhY2sodHJhY2spCiAg
ICAgICAgICwgbV9pZCh0cmFjay5pZCgpKQogICAgICAgICAsIG1fbGFiZWwodHJhY2subGFiZWwo
KSkKICAgICB7CiAgICAgfQogCi0gICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBt
X3N0cmVhbVRyYWNrOworICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9zdHJlYW1U
cmFjazsKICAgICBBdG9taWNTdHJpbmcgbV9pZDsKICAgICBBdG9taWNTdHJpbmcgbV9sYWJlbDsK
ICAgICBpbnQgbV9pbmRleCB7IDAgfTsKQEAgLTcxLDUgKzY3LDMgQEAgcHJpdmF0ZToKIH0KIAog
I2VuZGlmIC8vIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQot
I2VuZGlmIC8vIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1faApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJp
dmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tT
b3VyY2VCdWZmZXJQcml2YXRlLmNwcAppbmRleCA0OGRmNGJjYzRjM2JiOGRhMmM1ZjQ5MDBlMTc1
MDYwMDc5MTg1NmYzLi5lMDMxYTliNWQyMGQxMmExYjk2ZTBlMTE2Y2U0YmFhOTU0Y2YwMjIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tT
b3VyY2VCdWZmZXJQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDcgKzM4LDYg
QEAKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSA8bWFw
PgogI2luY2x1ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXIuaD4KLSNpbmNsdWRlIDx3dGYvUHJpbnRT
dHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMTY1LDcgKzE2NCw3IEBAIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZh
dGU6OmFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiAg
ICAgfQogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVy
UHJpdmF0ZUFwcGVuZENvbXBsZXRlKHRoaXMsIHJlc3VsdCk7CisgICAgICAgIG1fY2xpZW50LT5z
b3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUocmVzdWx0KTsKIH0KIAogdm9pZCBNb2Nr
U291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25z
dCBNb2NrSW5pdGlhbGl6YXRpb25Cb3gmIGluaXRCb3gpCkBAIC0xOTYsNyArMTk1LDcgQEAgdm9p
ZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVu
dChjb25zdCBNb2NrSW5pdGlhbGkKICAgICAgICAgfQogICAgIH0KIAotICAgIG1fY2xpZW50LT5z
b3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudCh0aGlzLCBz
ZWdtZW50KTsKKyAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0
aWFsaXphdGlvblNlZ21lbnQoc2VnbWVudCk7CiB9CiAKIApAQCAtMjA1LDcgKzIwNCw3IEBAIHZv
aWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUoY29uc3QgTW9ja1Nh
bXBsZUJveCYgc2FtcGxlQm94KQogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsK
IAotICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSh0aGlz
LCBNb2NrTWVkaWFTYW1wbGU6OmNyZWF0ZShzYW1wbGVCb3gpKTsKKyAgICBtX2NsaWVudC0+c291
cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoTW9ja01lZGlhU2FtcGxlOjpjcmVhdGUo
c2FtcGxlQm94KSk7CiB9CiAKIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmFib3J0KCkK
QEAgLTIzOSwyMiArMjM4LDIxIEBAIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OnNldEFj
dGl2ZShib29sIGlzQWN0aXZlKQogICAgICAgICBtX21lZGlhU291cmNlLT5zb3VyY2VCdWZmZXJQ
cml2YXRlRGlkQ2hhbmdlQWN0aXZlU3RhdGUodGhpcywgaXNBY3RpdmUpOwogfQogCi1WZWN0b3I8
U3RyaW5nPiBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJ
RChBdG9taWNTdHJpbmcpCitWZWN0b3I8U3RyaW5nPiBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6
ZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAgIHJl
dHVybiBtX2VucXVldWVkU2FtcGxlczsKIH0KIAotdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0
ZTo6ZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUsIEF0b21p
Y1N0cmluZykKK3ZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmVucXVldWVTYW1wbGUoUmVm
PE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgY29uc3QgQXRvbWljU3RyaW5nJikKIHsKLSAgICBSZWZQ
dHI8TWVkaWFTYW1wbGU+IHNhbXBsZSA9IHBycFNhbXBsZTsKLSAgICBpZiAoIW1fbWVkaWFTb3Vy
Y2UgfHwgIXNhbXBsZSkKKyAgICBpZiAoIW1fbWVkaWFTb3VyY2UpCiAgICAgICAgIHJldHVybjsK
IAogICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlID0gc2FtcGxlLT5wbGF0Zm9ybVNh
bXBsZSgpOwogICAgIGlmIChwbGF0Zm9ybVNhbXBsZS50eXBlICE9IFBsYXRmb3JtU2FtcGxlOjpN
b2NrU2FtcGxlQm94VHlwZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTW9ja1NhbXBsZUJveCog
Ym94ID0gcGxhdGZvcm1TYW1wbGUuc2FtcGxlLm1vY2tTYW1wbGVCb3g7CisgICAgYXV0byogYm94
ID0gcGxhdGZvcm1TYW1wbGUuc2FtcGxlLm1vY2tTYW1wbGVCb3g7CiAgICAgaWYgKCFib3gpCiAg
ICAgICAgIHJldHVybjsKIApAQCAtMjY2LDM3ICsyNjQsMzAgQEAgdm9pZCBNb2NrU291cmNlQnVm
ZmVyUHJpdmF0ZTo6ZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1w
bGUsIEEKICAgICBpZiAoYm94LT5pc0RlbGF5ZWQoKSkKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+
aW5jcmVtZW50VG90YWxGcmFtZURlbGF5QnkoTWVkaWFUaW1lKDEsIDEpKTsKIAotICAgIG1fZW5x
dWV1ZWRTYW1wbGVzLmFwcGVuZCh0b1N0cmluZyhzYW1wbGUpKTsKKyAgICBtX2VucXVldWVkU2Ft
cGxlcy5hcHBlbmQodG9TdHJpbmcoc2FtcGxlLmdldCgpKSk7CiB9CiAKIGJvb2wgTW9ja1NvdXJj
ZUJ1ZmZlclByaXZhdGU6Omhhc1ZpZGVvKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fY2xpZW50KQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZl
clByaXZhdGVIYXNWaWRlbyh0aGlzKTsKKyAgICByZXR1cm4gbV9jbGllbnQgJiYgbV9jbGllbnQt
PnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNWaWRlbygpOwogfQogCiBib29sIE1vY2tTb3VyY2VCdWZm
ZXJQcml2YXRlOjpoYXNBdWRpbygpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2NsaWVudCkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2
YXRlSGFzQXVkaW8odGhpcyk7CisgICAgcmV0dXJuIG1fY2xpZW50ICYmIG1fY2xpZW50LT5zb3Vy
Y2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oKTsKIH0KIAotCiBNZWRpYVRpbWUgTW9ja1NvdXJjZUJ1
ZmZlclByaXZhdGU6OmZhc3RTZWVrVGltZUZvck1lZGlhVGltZShjb25zdCBNZWRpYVRpbWUmIHRp
bWUsIGNvbnN0IE1lZGlhVGltZSYgbmVnYXRpdmVUaHJlc2hvbGQsIGNvbnN0IE1lZGlhVGltZSYg
cG9zaXRpdmVUaHJlc2hvbGQpCiB7CiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICByZXR1cm4g
bV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUodGhp
cywgdGltZSwgbmVnYXRpdmVUaHJlc2hvbGQsIHBvc2l0aXZlVGhyZXNob2xkKTsKKyAgICAgICAg
cmV0dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFU
aW1lKHRpbWUsIG5lZ2F0aXZlVGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7CiAgICAgcmV0
dXJuIHRpbWU7CiB9CiAKIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OnNlZWtUb1RpbWUo
Y29uc3QgTWVkaWFUaW1lJiB0aW1lKQogewogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9j
bGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKHRoaXMsIHRpbWUpOworICAgICAg
ICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZVNlZWtUb1RpbWUodGltZSk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9j
a1NvdXJjZUJ1ZmZlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVk
aWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaAppbmRleCA3NDRiNGMxMDdjMzEwMjZm
YTQyOWE4ZjEyZDI1NjNiZmMzNjMyZDI4Li40OTY1MDU1M2IwN2JlYWMwN2Y1MzEwZWY1ZTU2ZWY4
MmM3MjBhMDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlh
c291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMs
MTUgKzIzLDExIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0jaWZuZGVmIE1vY2tTb3VyY2VC
dWZmZXJQcml2YXRlX2gKLSNkZWZpbmUgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGVfaAorI3ByYWdt
YSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiU291cmNlQnVm
ZmVyUHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTQzLDcgKzM5LDcgQEAgY2xhc3MgTW9ja1NhbXBsZUJveDsKIGNsYXNzIFRpbWVSYW5n
ZXM7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIAotY2xhc3MgTW9ja1NvdXJjZUJ1ZmZlclBy
aXZhdGUgOiBwdWJsaWMgU291cmNlQnVmZmVyUHJpdmF0ZSB7CitjbGFzcyBNb2NrU291cmNlQnVm
ZmVyUHJpdmF0ZSBmaW5hbCA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQcml2YXRlIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmUHRyPE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlPiBjcmVhdGUoTW9ja01l
ZGlhU291cmNlUHJpdmF0ZSopOwogICAgIHZpcnR1YWwgfk1vY2tTb3VyY2VCdWZmZXJQcml2YXRl
KCk7CkBAIC02MCwyMCArNTYsMjAgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBNb2NrU291cmNl
QnVmZmVyUHJpdmF0ZShNb2NrTWVkaWFTb3VyY2VQcml2YXRlKik7CiAKICAgICAvLyBTb3VyY2VC
dWZmZXJQcml2YXRlIG92ZXJyaWRlcwotICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclBy
aXZhdGVDbGllbnQqKSBvdmVycmlkZTsKLSAgICB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25lZCBj
aGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIG92ZXJyaWRlOwotICAgIHZvaWQgYWJvcnQoKSBv
dmVycmlkZTsKLSAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBvdmVycmlkZTsKLSAgICB2b2lk
IHJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKSBvdmVycmlkZTsKLSAgICBNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRSZWFkeVN0
YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldENsaWVu
dChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50KikgZmluYWw7CisgICAgdm9pZCBhcHBlbmQoY29u
c3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBmaW5hbDsKKyAgICB2b2lk
IGFib3J0KCkgZmluYWw7CisgICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkgZmluYWw7CisgICAg
dm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKCkgZmluYWw7CisgICAgTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0UmVhZHlTdGF0
ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkgZmluYWw7CiAKLSAgICB2b2lkIGZsdXNoKEF0b21p
Y1N0cmluZykgb3ZlcnJpZGUgeyBtX2VucXVldWVkU2FtcGxlcy5jbGVhcigpOyB9Ci0gICAgdm9p
ZCBlbnF1ZXVlU2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+LCBBdG9taWNTdHJpbmcpIG92
ZXJyaWRlOwotICAgIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIG92ZXJyaWRl
OworICAgIHZvaWQgZmx1c2goY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWwgeyBtX2VucXVldWVk
U2FtcGxlcy5jbGVhcigpOyB9CisgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBs
ZT4mJiwgY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBpc1JlYWR5Rm9yTW9y
ZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAg
IHZvaWQgc2V0QWN0aXZlKGJvb2wpIGZpbmFsOwogCi0gICAgVmVjdG9yPFN0cmluZz4gZW5xdWV1
ZWRTYW1wbGVzRm9yVHJhY2tJRChBdG9taWNTdHJpbmcpIG92ZXJyaWRlOworICAgIFZlY3RvcjxT
dHJpbmc+IGVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoY29uc3QgQXRvbWljU3RyaW5nJikgZmlu
YWw7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgTW9j
a0luaXRpYWxpemF0aW9uQm94Jik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2FtcGxlKGNvbnN0IE1v
Y2tTYW1wbGVCb3gmKTsKQEAgLTg4LDYgKzg0LDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIFVTRShBVkZPVU5EQVRJT04pCi0KLSNlbmRpZgotCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tU
cmFja3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1Ry
YWNrcy5oCmluZGV4IDhkMDMxOWYyZDBkNjY4ODZkNWE1OTAxZmUxMmRiYjM2NDIzYmNlNmIuLjA3
M2YzNjg2MzdiMDk2YmUwZjI1YmEyMzhhMzdmNzJiMjY1OTM4YzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1RyYWNrcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1RyYWNrcy5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDgg
KzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5kZWYgTW9ja1RyYWNrc19oCi0j
ZGVmaW5lIE1vY2tUcmFja3NfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKQogCkBAIC0zNyw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTW9j
a0F1ZGlvVHJhY2tQcml2YXRlIDogcHVibGljIEF1ZGlvVHJhY2tQcml2YXRlIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmUHRyPE1vY2tBdWRpb1RyYWNrUHJpdmF0ZT4gY3JlYXRlKGNvbnN0IE1v
Y2tUcmFja0JveCYgYm94KSB7IHJldHVybiBhZG9wdFJlZihuZXcgTW9ja0F1ZGlvVHJhY2tQcml2
YXRlKGJveCkpOyB9CisgICAgc3RhdGljIFJlZjxNb2NrQXVkaW9UcmFja1ByaXZhdGU+IGNyZWF0
ZShjb25zdCBNb2NrVHJhY2tCb3gmIGJveCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2NrQXVk
aW9UcmFja1ByaXZhdGUoYm94KSk7IH0KICAgICB2aXJ0dWFsIH5Nb2NrQXVkaW9UcmFja1ByaXZh
dGUoKSB7IH0KIAogICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1cm4g
bV9pZDsgfQpAQCAtNDUsNyArNDQsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgTW9ja0F1
ZGlvVHJhY2tQcml2YXRlKGNvbnN0IE1vY2tUcmFja0JveCYgYm94KQogICAgICAgICA6IG1fYm94
KGJveCkKLSAgICAgICAgLCBtX2lkKFN0cmluZzo6Zm9ybWF0KCIlZCIsIGJveC50cmFja0lEKCkp
KQorICAgICAgICAsIG1faWQoQXRvbWljU3RyaW5nOjpudW1iZXIoYm94LnRyYWNrSUQoKSkpCiAg
ICAgewogICAgIH0KICAgICBNb2NrVHJhY2tCb3ggbV9ib3g7CkBAIC02Myw3ICs2Miw3IEBAIHBy
b3RlY3RlZDoKICAgICBNb2NrVGV4dFRyYWNrUHJpdmF0ZShjb25zdCBNb2NrVHJhY2tCb3gmIGJv
eCkKICAgICAgICAgOiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlKEluYmFuZFRleHRUcmFja1ByaXZh
dGU6OkdlbmVyaWMpCiAgICAgICAgICwgbV9ib3goYm94KQotICAgICAgICAsIG1faWQoU3RyaW5n
Ojpmb3JtYXQoIiVkIiwgYm94LnRyYWNrSUQoKSkpCisgICAgICAgICwgbV9pZChBdG9taWNTdHJp
bmc6Om51bWJlcihib3gudHJhY2tJRCgpKSkKICAgICB7CiAgICAgfQogICAgIE1vY2tUcmFja0Jv
eCBtX2JveDsKQEAgLTgxLDcgKzgwLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIE1vY2tW
aWRlb1RyYWNrUHJpdmF0ZShjb25zdCBNb2NrVHJhY2tCb3gmIGJveCkKICAgICAgICAgOiBtX2Jv
eChib3gpCi0gICAgICAgICwgbV9pZChTdHJpbmc6OmZvcm1hdCgiJWQiLCBib3gudHJhY2tJRCgp
KSkKKyAgICAgICAgLCBtX2lkKEF0b21pY1N0cmluZzo6bnVtYmVyKGJveC50cmFja0lEKCkpKQog
ICAgIHsKICAgICB9CiAgICAgTW9ja1RyYWNrQm94IG1fYm94OwpAQCAtOTEsNSArOTAsMyBAQCBw
cm90ZWN0ZWQ6CiB9CiAKICNlbmRpZgotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCmluZGV4IDMzZmU0Mzk2MDJj
Y2QwNzUwYWUzYzNjYjBjNGQ3ODBjZjcxYmVjODMuLjdmMmM2OTA5NzZkNjhhMWNkZDk1ODQ0YTNm
MGRiZDVlODBiMjM0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiUGFpbnRJ
bmZvLmgiCiAjaW5jbHVkZSAiUGF0aC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5o
IgorI2luY2x1ZGUgIlJlbmRlckltYWdlUmVzb3VyY2UuaCIKICNpbmNsdWRlICJSZW5kZXJJdGVy
YXRvci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0
cy5oPgpAQCAtNTIsNyArNTMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4oSFRNTFBsdWdJbkltYWdlRWxlbWVu
dCYgZWxlbWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlckVtYmVkZGVkT2Jq
ZWN0KGVsZW1lbnQsIFdURk1vdmUoc3R5bGUpKQogICAgICwgbV9zbmFwc2hvdFJlc291cmNlKHN0
ZDo6bWFrZV91bmlxdWU8UmVuZGVySW1hZ2VSZXNvdXJjZT4oKSkKLSAgICAsIG1faXNQb3RlbnRp
YWxNb3VzZUFjdGl2YXRpb24oZmFsc2UpCiB7CiAgICAgbV9zbmFwc2hvdFJlc291cmNlLT5pbml0
aWFsaXplKHRoaXMpOwogfQpAQCAtODIsMTMgKzgyLDEzIEBAIHZvaWQgUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW46OmxheW91dCgpCiAgICAgdmlldygpLmZyYW1lVmlldygpLmFkZEVtYmVkZGVkT2Jq
ZWN0VG9VcGRhdGUoKnRoaXMpOwogfQogCi12b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1
cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKK3ZvaWQgUmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW46OnVwZGF0ZVNuYXBzaG90KEltYWdlKiBpbWFnZSkKIHsKICAgICAvLyBaZXJv
LXNpemUgcGx1Z2lucyB3aWxsIGhhdmUgbm8gaW1hZ2UuCiAgICAgaWYgKCFpbWFnZSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9zbmFwc2hvdFJlc291cmNlLT5zZXRDYWNoZWRJbWFnZShuZXcg
Q2FjaGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIHZpZXcoKS5mcmFtZVZpZXcoKS5mcmFtZSgpLnBhZ2Uo
KS0+c2Vzc2lvbklEKCkpKTsKKyAgICBtX3NuYXBzaG90UmVzb3VyY2UtPnNldENhY2hlZEltYWdl
KG5ldyBDYWNoZWRJbWFnZShpbWFnZSwgdmlldygpLmZyYW1lVmlldygpLmZyYW1lKCkucGFnZSgp
LT5zZXNzaW9uSUQoKSkpOwogICAgIHJlcGFpbnQoKTsKIH0KIApAQCAtMTUwLDEyICsxNTAsMTIg
QEAgQ3Vyc29yRGlyZWN0aXZlIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpnZXRDdXJzb3IoY29u
c3QgTGF5b3V0UG9pbnQmIHBvaW50LCBDdXIKICAgICByZXR1cm4gUmVuZGVyRW1iZWRkZWRPYmpl
Y3Q6OmdldEN1cnNvcihwb2ludCwgb3ZlcnJpZGVDdXJzb3IpOwogfQogCi12b2lkIFJlbmRlclNu
YXBzaG90dGVkUGx1Z0luOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQpCit2b2lkIFJlbmRlclNu
YXBzaG90dGVkUGx1Z0luOjpoYW5kbGVFdmVudChFdmVudCYgZXZlbnQpCiB7Ci0gICAgaWYgKCFp
czxNb3VzZUV2ZW50PigqZXZlbnQpKQorICAgIGlmICghaXM8TW91c2VFdmVudD4oZXZlbnQpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBNb3VzZUV2ZW50JiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8
TW91c2VFdmVudD4oKmV2ZW50KTsKKyAgICBhdXRvJiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91
c2VFdmVudD4oZXZlbnQpOwogCiAgICAgLy8gSWYgd2UncmUgYSBzbmFwc2hvdHRlZCBwbHVnaW4s
IHdlIHdhbnQgdG8gbWFrZSBzdXJlIHdlIGFjdGl2YXRlIG9uCiAgICAgLy8gY2xpY2tzIGV2ZW4g
aWYgdGhlIHBhZ2UgaXMgcHJldmVudGluZyBvdXIgZGVmYXVsdCBiZWhhdmlvdXIuIE90aGVyd2lz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVk
UGx1Z0luLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW4uaAppbmRleCAxMzRkYjgzM2I3OThlZTVjMzdiMWJhMjdkYTU0OGZjNTQzZWY4NjQ3Li5jYWI1
YmZiYzRmYWY2N2Q2NmI2Yjg5ODIxNWRiMjYwYTEyNmVhZWI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxMiArMjYsMTEg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuaCIKLSNp
bmNsdWRlICJSZW5kZXJJbWFnZVJlc291cmNlLmgiCi0jaW5jbHVkZSAiVGltZXIuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OworY2xhc3Mg
UmVuZGVySW1hZ2VSZXNvdXJjZTsKIAogY2xhc3MgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gZmlu
YWwgOiBwdWJsaWMgUmVuZGVyRW1iZWRkZWRPYmplY3QgewogcHVibGljOgpAQCAtMzksMjcgKzM4
LDIxIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbigpOwog
CiAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCYgcGx1Z0luSW1hZ2VFbGVtZW50KCkgY29uc3Q7
Ci0KLSAgICB2b2lkIHVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+KTsKLQotICAgIHZv
aWQgaGFuZGxlRXZlbnQoRXZlbnQqKTsKKyAgICB2b2lkIHVwZGF0ZVNuYXBzaG90KEltYWdlKik7
CisgICAgdm9pZCBoYW5kbGVFdmVudChFdmVudCYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgZnJh
bWVPd25lckVsZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsKLSAgICBjb25zdCBjaGFyKiByZW5kZXJO
YW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlclNuYXBzaG90dGVkUGx1Z0luIjsg
fQotCi0gICAgQ3Vyc29yRGlyZWN0aXZlIGdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYsIEN1
cnNvciYpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNTbmFwc2hvdHRlZFBsdWdJbigpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYs
IGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7Ci0gICAgCi0gICAgYm9vbCBjYW5IYXZlV2lk
Z2V0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLQorICAgIGNvbnN0IGNoYXIq
IHJlbmRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW4iOyB9CisgICAgQ3Vyc29yRGlyZWN0aXZlIGdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYs
IEN1cnNvciYpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgaXNTbmFwc2hvdHRlZFBsdWdJbigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNv
bnN0IExheW91dFBvaW50JikgZmluYWw7CisgICAgYm9vbCBjYW5IYXZlV2lkZ2V0KCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIHBhaW50U25hcHNob3QoUGFpbnRJbmZv
JiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKLQotICAgIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBsYXlvdXQoKSBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJJbWFn
ZVJlc291cmNlPiBtX3NuYXBzaG90UmVzb3VyY2U7Ci0gICAgYm9vbCBtX2lzUG90ZW50aWFsTW91
c2VBY3RpdmF0aW9uOworICAgIGJvb2wgbV9pc1BvdGVudGlhbE1vdXNlQWN0aXZhdGlvbiB7IGZh
bHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Nj
cmlwdEVsZW1lbnQuaAppbmRleCA4YjdkOTI0NTY0YTY0ZjAxYzk2ZDBiZTI0MzA4Y2VhYTk4NmQx
NmU5Li5lMjY3ODY5ZmU3NzExMDcxMDQyMDJlYjE0NjY2ZDg5NWZhMTRhOGIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBr
ZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3IFJvYiBCdWlzIDxidWlz
QGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI5LDEzICszMCwxMyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJs
aWMgU1ZHRWxlbWVudAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBTVkdV
UklSZWZlcmVuY2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1
YmxpYyBTY3JpcHRFbGVtZW50IHsKK2NsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJs
aWMgU1ZHRWxlbWVudCwgcHVibGljIFNWR1VSSVJlZmVyZW5jZSwgcHVibGljIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmPFNWR1NjcmlwdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIpOwogCisgICAgdXNpbmcgU1ZHRWxl
bWVudDo6cmVmOworICAgIHVzaW5nIFNWR0VsZW1lbnQ6OmRlcmVmOworCiBwcml2YXRlOgogICAg
IFNWR1NjcmlwdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3
YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIGFscmVhZHlTdGFydGVkKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCA5MjYwNWZjMDIz
NWM3YWVmYmU3NmFjODYxZTBmODVmNmU4YTVkYThmLi42OTU2ZDc4YTcxYjIwNWZhMTJiNDMzMzBj
M2UzODQ5N2MxNjYzZTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hN
TERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERv
Y3VtZW50UGFyc2VyLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDAgUGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAw
NiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAd2Via2l0Lm9yZykKICAqIENvcHlyaWdo
dCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIChzYW1Ad2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAo
QykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKQEAg
LTIzNyw4ICsyMzcsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpub3RpZnlGaW5pc2hlZChQ
ZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0KQogICAgIG1fcGVuZGluZ1NjcmlwdCA9IG51bGxw
dHI7CiAgICAgcGVuZGluZ1NjcmlwdC5jbGVhckNsaWVudCgpOwogCi0gICAgYXV0byYgc2NyaXB0
RWxlbWVudCA9ICp0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5nU2NyaXB0LmVsZW1l
bnQoKSk7Ci0gICAgc2NyaXB0RWxlbWVudC5leGVjdXRlUGVuZGluZ1NjcmlwdChwZW5kaW5nU2Ny
aXB0KTsKKyAgICBwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKS5leGVjdXRlUGVuZGluZ1NjcmlwdChw
ZW5kaW5nU2NyaXB0KTsKIAogICAgIGlmICghaXNEZXRhY2hlZCgpICYmICFtX3JlcXVlc3RpbmdT
Y3JpcHQpCiAgICAgICAgIHJlc3VtZVBhcnNpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCA3MDY3Njc2
ZGQxN2E3NGQ5ZTQyNzI5ZDNkMjlkM2RkOGU4YTdmOGNlLi5mNDgxMDA1MjY3MTE2MjkwZmIxZmQ1
MzZjODA4OTEwY2JlNTZhODMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2Vy
L1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3Bh
cnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwMCBQZXRlciBLZWxseSA8cG1rQHBvc3QuY29tPgotICogQ29weXJp
Z2h0IChDKSAyMDA1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+CiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCkBAIC03OTksOCArNzk5LDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRF
bGVtZW50TnMoY29uc3QgeG1sQ2hhciogeG1sTG9jYWxOYW1lLCBjb25zdCB4bWxDaGEKIAogICAg
IG5ld0VsZW1lbnQtPmJlZ2luUGFyc2luZ0NoaWxkcmVuKCk7CiAKLSAgICBTY3JpcHRFbGVtZW50
KiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShuZXdFbGVtZW50LnB0
cigpKTsKLSAgICBpZiAoc2NyaXB0RWxlbWVudCkKKyAgICBpZiAoaXNTY3JpcHRFbGVtZW50KG5l
d0VsZW1lbnQuZ2V0KCkpKQogICAgICAgICBtX3NjcmlwdFN0YXJ0UG9zaXRpb24gPSB0ZXh0UG9z
aXRpb24oKTsKIAogICAgIG1fY3VycmVudE5vZGUtPnBhcnNlckFwcGVuZENoaWxkKG5ld0VsZW1l
bnQpOwpAQCAtODQzLDcgKzg0Miw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1l
bnROcygpCiAgICAgaWYgKGhhY2tBcm91bmRMaWJYTUxFbnRpdHlQYXJzaW5nQnVnKCkgJiYgY29u
dGV4dCgpLT5kZXB0aCA8PSBkZXB0aFRyaWdnZXJpbmdFbnRpdHlFeHBhbnNpb24oKSkKICAgICAg
ICAgc2V0RGVwdGhUcmlnZ2VyaW5nRW50aXR5RXhwYW5zaW9uKC0xKTsKIAotICAgIGlmICghc2Ny
aXB0aW5nQ29udGVudElzQWxsb3dlZChwYXJzZXJDb250ZW50UG9saWN5KCkpICYmIGlzPEVsZW1l
bnQ+KCpub2RlKSAmJiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGRvd25jYXN0PEVsZW1lbnQ+
KG5vZGUuZ2V0KCkpKSkgeworICAgIGlmICghc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChwYXJz
ZXJDb250ZW50UG9saWN5KCkpICYmIGlzPEVsZW1lbnQ+KCpub2RlKSAmJiBpc1NjcmlwdEVsZW1l
bnQoZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpKSkgewogICAgICAgICBwb3BDdXJyZW50Tm9kZSgp
OwogICAgICAgICBub2RlLT5yZW1vdmUoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtODU0LDcgKzg1
Myw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4o
Km5vZGUpOworICAgIGF1dG8mIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7CiAK
ICAgICAvLyBUaGUgZWxlbWVudCdzIHBhcmVudCBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gcmVtb3Zl
ZCBmcm9tIGRvY3VtZW50LgogICAgIC8vIFBhcnNpbmcgY29udGludWVzIGluIHRoaXMgY2FzZSwg
YnV0IHNjcmlwdHMgYXJlbid0IGV4ZWN1dGVkLgpAQCAtODYzLDggKzg2Miw3IEBAIHZvaWQgWE1M
RG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3Nz
aWJsZSgmZWxlbWVudCk7Ci0gICAgaWYgKCFzY3JpcHRFbGVtZW50KSB7CisgICAgaWYgKCFpc1Nj
cmlwdEVsZW1lbnQoZWxlbWVudCkpIHsKICAgICAgICAgcG9wQ3VycmVudE5vZGUoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KQEAgLTg3MywxNSArODcxLDE2IEBAIHZvaWQgWE1MRG9jdW1lbnRQ
YXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgQVNTRVJUKCFtX3BlbmRpbmdTY3JpcHQpOwogICAg
IG1fcmVxdWVzdGluZ1NjcmlwdCA9IHRydWU7CiAKLSAgICBpZiAoc2NyaXB0RWxlbWVudC0+cHJl
cGFyZVNjcmlwdChtX3NjcmlwdFN0YXJ0UG9zaXRpb24sIFNjcmlwdEVsZW1lbnQ6OkFsbG93TGVn
YWN5VHlwZUluVHlwZUF0dHJpYnV0ZSkpIHsKKyAgICBhdXRvJiBzY3JpcHRFbGVtZW50ID0gZG93
bmNhc3RTY3JpcHRFbGVtZW50KGVsZW1lbnQpOworICAgIGlmIChzY3JpcHRFbGVtZW50LnByZXBh
cmVTY3JpcHQobV9zY3JpcHRTdGFydFBvc2l0aW9uLCBTY3JpcHRFbGVtZW50OjpBbGxvd0xlZ2Fj
eVR5cGVJblR5cGVBdHRyaWJ1dGUpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBTY3JpcHQgZXhlY3V0
aW9uIHNob3VsZCBiZSBzaGFyZWQgYmV0d2VlbgogICAgICAgICAvLyB0aGUgbGlieG1sMiBhbmQg
UXQgWE1MRG9jdW1lbnRQYXJzZXIgaW1wbGVtZW50YXRpb25zLgogCi0gICAgICAgIGlmIChzY3Jp
cHRFbGVtZW50LT5yZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgpKQotICAgICAgICAgICAgc2NyaXB0
RWxlbWVudC0+ZXhlY3V0ZUNsYXNzaWNTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRFbGVt
ZW50LT5zY3JpcHRDb250ZW50KCksIGRvY3VtZW50KCktPnVybCgpLCBtX3NjcmlwdFN0YXJ0UG9z
aXRpb24pKTsKLSAgICAgICAgZWxzZSBpZiAoc2NyaXB0RWxlbWVudC0+d2lsbEJlUGFyc2VyRXhl
Y3V0ZWQoKSAmJiBzY3JpcHRFbGVtZW50LT5sb2FkYWJsZVNjcmlwdCgpKSB7Ci0gICAgICAgICAg
ICBtX3BlbmRpbmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoZWxlbWVudCwgKnNjcmlw
dEVsZW1lbnQtPmxvYWRhYmxlU2NyaXB0KCkpOwotICAgICAgICAgICAgbV9wZW5kaW5nU2NyaXB0
LT5zZXRDbGllbnQodGhpcyk7CisgICAgICAgIGlmIChzY3JpcHRFbGVtZW50LnJlYWR5VG9CZVBh
cnNlckV4ZWN1dGVkKCkpCisgICAgICAgICAgICBzY3JpcHRFbGVtZW50LmV4ZWN1dGVDbGFzc2lj
U2NyaXB0KFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0RWxlbWVudC5zY3JpcHRDb250ZW50KCksIGRv
Y3VtZW50KCktPnVybCgpLCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24pKTsKKyAgICAgICAgZWxzZSBp
ZiAoc2NyaXB0RWxlbWVudC53aWxsQmVQYXJzZXJFeGVjdXRlZCgpICYmIHNjcmlwdEVsZW1lbnQu
bG9hZGFibGVTY3JpcHQoKSkgeworICAgICAgICAgICAgbV9wZW5kaW5nU2NyaXB0ID0gUGVuZGlu
Z1NjcmlwdDo6Y3JlYXRlKHNjcmlwdEVsZW1lbnQsICpzY3JpcHRFbGVtZW50LmxvYWRhYmxlU2Ny
aXB0KCkpOworICAgICAgICAgICAgbV9wZW5kaW5nU2NyaXB0LT5zZXRDbGllbnQoKnRoaXMpOwog
CiAgICAgICAgICAgICAvLyBtX3BlbmRpbmdTY3JpcHQgd2lsbCBiZSBudWxscHRyIGlmIHNjcmlw
dCB3YXMgYWxyZWFkeSBsb2FkZWQgYW5kIHNldENsaWVudCgpIGV4ZWN1dGVkIGl0LgogICAgICAg
ICAgICAgaWYgKG1fcGVuZGluZ1NjcmlwdCkKQEAgLTg5NiwxOSArODk1LDE5IEBAIHZvaWQgWE1M
RG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgcG9wQ3VycmVudE5vZGUoKTsKIH0K
IAotdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6Y2hhcmFjdGVycyhjb25zdCB4bWxDaGFyKiBzLCBp
bnQgbGVuKQordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6Y2hhcmFjdGVycyhjb25zdCB4bWxDaGFy
KiBjaGFyYWN0ZXJzLCBpbnQgbGVuZ3RoKQogewogICAgIGlmIChpc1N0b3BwZWQoKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgaWYgKG1fcGFyc2VyUGF1c2VkKSB7Ci0gICAgICAgIG1fcGVuZGlu
Z0NhbGxiYWNrcy0+YXBwZW5kQ2hhcmFjdGVyc0NhbGxiYWNrKHMsIGxlbik7CisgICAgICAgIG1f
cGVuZGluZ0NhbGxiYWNrcy0+YXBwZW5kQ2hhcmFjdGVyc0NhbGxiYWNrKGNoYXJhY3RlcnMsIGxl
bmd0aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIW1fbGVhZlRleHROb2Rl
KQogICAgICAgICBjcmVhdGVMZWFmVGV4dE5vZGUoKTsKLSAgICBtX2J1ZmZlcmVkVGV4dC5hcHBl
bmQocywgbGVuKTsKKyAgICBtX2J1ZmZlcmVkVGV4dC5hcHBlbmQoY2hhcmFjdGVycywgbGVuZ3Ro
KTsKIH0KIAogdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZXJyb3IoWE1MRXJyb3JzOjpFcnJvclR5
cGUgdHlwZSwgY29uc3QgY2hhciogbWVzc2FnZSwgdmFfbGlzdCBhcmdzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBjMTAx
OTI0ZWE1ZjFkNjYyOTNiMTk5YTMwMDEyNGRiMmMyM2Y1N2I0Li45MDAwNmViMTAzNjMyNTZlM2E3
MjMwN2MyNDRhYWVjYmIxODExZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzEsMTIg
KzMxLDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvRm9jdXNEaXJlY3Rpb24uaD4KICNpbXBvcnQgPHd0
Zi9Gb3J3YXJkLmg+CiAKLSNpZiBQTEFURk9STShJT1MpCi0jaW1wb3J0IDx3dGYvUGxhdGZvcm0u
aD4KLSNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotI2ltcG9ydCA8V2ViQ29yZS9DaHJv
bWUuaD4KLSNlbmRpZgotCiBAY2xhc3MgV2ViVmlldzsKIAogY2xhc3MgV2ViQ2hyb21lQ2xpZW50
IDogcHVibGljIFdlYkNvcmU6OkNocm9tZUNsaWVudCB7CkBAIC0xMjUsNyArMTE5LDcgQEAgcHVi
bGljOgogI2VuZGlmCiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSosIFBh
c3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KSBvdmVycmlkZTsKLSAgICB2b2lkIGxvYWRJ
Y29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29u
TG9hZGVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3Rv
cjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpIG92ZXJyaWRlOwogCiAj
aWYgIVBMQVRGT1JNKElPUykKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJz
b3ImKSBvdmVycmlkZTsKQEAgLTIxNCwxMSArMjA4LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFz
UmVsZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcyhib29sIGlzVGV4dE9ubHkpIGNvbnN0IG92ZXJyaWRl
OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCiAgICAgV2ViVmlldyogd2ViVmlldygpIGNv
bnN0IHsgcmV0dXJuIG1fd2ViVmlldzsgfQotI2Vsc2UKLSAgICBXZWJWaWV3KiB3ZWJWaWV3KCkg
eyByZXR1cm4gbV93ZWJWaWV3OyB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZ
QkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1MpCiAgICAgdm9pZCBhZGRQbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudCh1aW50NjRfdCAvKmNvbnRleHRJZCovKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRl
eCBiY2VhZmQ1MTE2NTMyMmIzYWRiYTc5NGMwYzFmNThkYjVjZTE5YThiLi5kN2VjOGNiMWI0NmFi
NzgxOGUwZGUyMjQxMjZjYWE1YTA2NWRhMjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CkBAIC03NTcsOSArNzU3LDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5l
bChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IGNob29zZXIpCiAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9y
RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUljb25Mb2FkZXIqIGlj
b25Mb2FkZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciYgaWNvbkxvYWRlcikKIHsK
LSAgICBpY29uTG9hZGVyLT5ub3RpZnlGaW5pc2hlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMo
ZmlsZW5hbWVzKSk7CisgICAgaWNvbkxvYWRlci5pY29uTG9hZGVkKEljb246OmNyZWF0ZUljb25G
b3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRl
eCAwM2Q4YTI2ZDkzOGYxMjY3MDViMDBlNjMxYTUzMzgyNjY3NjMzMTc5Li5mMjRlNjMzNDQ1ZTQz
NTViM2I0MjhmOTk4N2RjNDJmODEyYzFiZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMDgsIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTY4
MCw5ICs2ODAsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lKiwg
UGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZUNob29zZQogICAgIC8vIEZJWE1FOiBTaG93
IHNvbWUgc29ydCBvZiBlcnJvciBpZiB0b28gbWFueSBmaWxlcyBhcmUgc2VsZWN0ZWQgYW5kIHRo
ZSBidWZmZXIgaXMgdG9vIHNtYWxsLiAgRm9yIG5vdywgdGhpcyB3aWxsIGZhaWwgc2lsZW50bHku
CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3Rv
cjxXVEY6OlN0cmluZz4mIGZpbGVuYW1lcywgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqIGxvYWRl
cikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxX
VEY6OlN0cmluZz4mIGZpbGVuYW1lcywgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXImIGxvYWRlcikK
IHsKLSAgICBsb2FkZXItPm5vdGlmeUZpbmlzaGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhm
aWxlbmFtZXMpKTsKKyAgICBsb2FkZXIuaWNvbkxvYWRlZChJY29uOjpjcmVhdGVJY29uRm9yRmls
ZXMoZmlsZW5hbWVzKSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRDdXJzb3IoY29u
c3QgQ3Vyc29yJiBjdXJzb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDg5ZDZjODc0YmQ0NGY5Y2Q2ZWQ1NWIwNjBiZGZj
ZGI4NzM2ZmMyODIuLjM0OGY0YzM1ZWY3MjBmYjk5ZDg3ZDY0M2VkYzg1YTlkMDE1Y2RjZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNi0yMDA5LCAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CkBAIC0xMTYsNyArMTE2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBy
ZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
KiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKTsKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVu
UGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPik7
Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3Ry
aW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGxvYWRJ
Y29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29u
TG9hZGVyJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1
cnNvciYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMo
Ym9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggN2YwZTc1ZGNiOTgyM2JiMmRkYzEw
Y2U2MDkxZDE5NDRhZDkyMmE3NS4uZGMzZmVkNWM5YmJmZTMwYzhiZDIwYWVlOWU5YjAxZDgyZGZl
NGZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNzYxLDkgKzc2MSw5IEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZp
bGVDaG9vc2VyPiBwcnBGaWxlCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJ1bk9wZW5QYW5lbCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6
OmZyb21GcmFtZShmcmFtZSksIGZpbGVDaG9vc2VyLT5zZXR0aW5ncygpKSk7CiB9CiAKLXZvaWQg
V2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBm
aWxlbmFtZXMsIEZpbGVJY29uTG9hZGVyKiBsb2FkZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNv
bkxvYWRlciYgbG9hZGVyKQogewotICAgIGxvYWRlci0+bm90aWZ5RmluaXNoZWQoSWNvbjo6Y3Jl
YXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOworICAgIGxvYWRlci5pY29uTG9hZGVkKEljb246
OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogI2lmICFQTEFURk9STShJT1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAwNWU0YjM1YTFkZTE4YjllYmVmODU0MDUyNmFmYjJh
NWVmZGZkNzZjLi43NmVlMjJlNmU5ZDZiOWNiMzRlMDE4MzkxNWY5OGY2NjE3MzM2OWFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDEwLCAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0xODIsNyArMTgyLDcgQEAgcHJpdmF0ZToKICNl
bmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRy
PFdlYkNvcmU6OkZpbGVDaG9vc2VyPikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2FkSWNvbkZvckZp
bGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBX
ZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpIG92ZXJyaWRlOwogCiAjaWYgIVBMQVRGT1JNKElPUykK
ICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>298063</attachid>
            <date>2017-01-04 20:20:28 -0800</date>
            <delta_ts>2017-01-04 21:30:55 -0800</delta_ts>
            <desc>Archive of layout-test-results from ews115 for mac-elcapitan</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>1793650</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">UEsDBBQAAgAIALWbJEqrjG4RLFgAACt3AQAiABwARHVtcFJlbmRlclRyZWUtMjk1OTctY3Jhc2gt
bG9nLnR4dFVUCQADpr1tWKa9bVh1eAsAAQT1AQAABBQAAADsXW1z2ziS/nz8FfywlZVnYpsgwdfy
ecqR7Yxn/LaWkszdVIoFkqDNNUVqSMqJ79dfA6AkkpJsw1aS3ZU9VRO9kN1PNxqNbnQTuizykJal
p7b/Diej8RXNIloMC0rVP3XXdO3PyiWpbrqXwt/uxzydjGi5+/Hi9MPZ0e5Pu+37lZOIZlUSJ7Tw
VnNRPtKiTPKsy0BT+nlE1eH9mLa/+sOxti2s9s5JldzRLUBXABv1siPS5X11k2dCBuuzckXLcZ6V
SZC2yK2Q+ENJC/XksIvJ1JCiHJKK7g6TUQeWriF7W0PbGlaR6+map+EdDSN1W3M0TbkYqMvkPCOh
Cl/9oSJtB6EdS+0h8z3Skb4FgMd5US3chZBykOXZ/SiflOqHDw2Mtv7uAB+Y77bddzbeth3N3UY2
Bl256Lj/7vD48OjdoaIoDLl68IXcUnWQZCFV3+V55amWBn9qScM8i0pFGdyXFR2pJ1lFr4ukumfq
rWhYcSg0I6DGSFH6BSlvaKQObwpKohkSDfSalGNShTfqXxM6AU2F+WiHjMcp3RmRJNuu+A2KcvQ1
pGNGtD3OR3/0/XcHh/5Bv380GKi9wcn7wdH7j1uN65lxzAb796Orc//k/OPB6QncdHh4xe4ilap9
1eq/ICBRQGncoHAOArU49i+uLgdH/vnF8OT4fxTl45l6Ra/hylI9p6QAYlMinrK9va8q7D7fHx79
MVyYGjVXpNmapsOL7cYHIWGa/lNVwS5+/6wW2193iy9f1cHZf/cvPi2ZVYpyAIpLQsJRD8Y0hCkV
wtDEeTHiH3pK/+pg8OvJ+Xt1eDQYeupNVY293d00D0l6k5eV5wCv3ZtqlO6WdERgUoblLh0FNIpo
tA1DXsEM2h3RKCHbNKUjeFfuJvBpEROYVLtD+rUaFiS83SVR1J/QHUZKUd6neUBSlX0DZjSJY5g0
vYLegclSNbwp8ixP82tAnk4Na8tTHHvHMpCmm0xP/eNzWn3Ji9sFDf6XGDs7jmMXW3Foma467F/C
uGcZDIUdE4c4hh1SojHjAsuq6I4agxEi+61KC3A5Ws0LGe5aeAVBuMALd3jptiHBy3ZIbBgr5QJN
gmNDO20WhmmvhQUXZykLQ8OWlMYCVw9WSlFWpKjAW9SkHbQW0hx9g7SDTQOtwaYQ1nCoPzzOwAtj
8+WDMOW1ZBAcbOs2frmmpixmmnJ2sG1p69AUJpGhR11N6Q1NcV66tgZNTXktaMrZcXSY4NoaBt6i
BkYLA++8bfPSDWstvDQaPuS4OC8D43XwiiL8oEFzXthCazDoWofdYVJEgACBQR0xeN4TIwQ2sPNv
fiN3ZBAWybjq5wVt4eKLq0MssG1b/TQ85ozUn1Xw/b2DEsI5tlCWO+F47Bm6saWgFuFPNJhTVBcI
I40QM9SxWl/nebMVEVbD0wRWWA9Wxh7w9bwrGu8tvW7/zZstQIQQhHnd+zkwF20puiwu5MRkCS4O
CIg/DRNM0wYmoSVkbimGDBotDhzTDRpa+mc5o8nix7yCIO94kvEw8oDD65M0pUXvt0Hf846+0nBQ
QXT909s5id8GMxLwMb8OjCn/MgjzMeXYDRiXXuMyjt50IITGsuixDdF7mmfX4n8zEO+SLEqyawF2
bxm2fc+DMCe9GNOCh2R7b3rfUQtbb9U5uz6B0D0a3iTlUVHkxTt6Q+6SvNjS9hcZhDcQ2EJkVlY/
MVVamKvy8OKslnjnxjMssEpTVpM6CUIZO+hCY2h0Z8m42tqWwjzwL7/8oq7+q9HgyLIIZZCAlgYk
HRNpBtaQjnXLwoot510sPQgsU01TCI198HDFPUPpuo6pONKUYvCHbUoQFTtIcaUpERosYHIsQwFH
vCbpEJKkhLFO1bvREaMyzOc3MCkNrCBdih4GX2SFwux/Oxmy1M/zKNjKpKoN5+PZdFpw+2Lz6bgg
I2FHhgHOrb6PG5EDFo0MKQgGtS1IcjgLlhQX4wLW0qIDA5hfA9sj/hnLkaeomnNOiDG4CP4J+TQH
iB0bTL1BVqC0GUwsA9MOA0piU7CgdySdkIr2liMY5JMipHyPhTuANzNkH+E++lblC8c5uaXRZVXs
1UTq5Hmfe17LttVeX8QV8CFHDWsSoDZlUYdYE+zHRR4nKY2OHkZ/yS8DD3VFSZln65PJ0RZF0mEl
hEVbZl02I5dAON5w4GcQ1YgwaCbMj5fWNpmLXQINHD+fJbak1Aa4nrnU01EHN5CzFW5ulCfZp7xI
o17n0iUiza6AVelTAUBowW9tfjWT6pBWJElLMe3By/S6CMSAskUEObKiGUH0FNFkZFoKHCLxFbgd
C3C7cripY0Ok3sF0JDZ5Zu6rn5KyTELx5aMCcMthgXWLGIeIEUDUNUmIVmyGKyGCSxyTgk6xMZtm
McFlXiZ8R2xBqZ37T+k1Ce/Z/uJgMmZ7qjy2MLCzDL9uO4AfyUQ7lEaRDUnujP+vw7NTQflqkmXM
NIpJtly1Nes39VxdIhcHy/xsl6qAa0KYq+uycE0rfgjudE1bTB1aqCF3eBi37a6AjTCDbcjB1nTT
IG3Yh3k4YUguSVG29Fwe58UlmZQQBxeUvpskaQTxNc++DBMLVO2bhTo1F3BhWVxWYD2MazwZjYf5
Lc2S/6PFaZ6Pew9ePrjPxO7ppDyDWfdWDfI8bRj4JZAb0JLVBYR9oAdEMsDX6aakSMjRIwmRpMTh
EQ82VyPmU9CSRcwizqcjPonBXnk1SBo7sldrm68sui2J3QhI/Ihh0xLes3cQBBzEECLWM5HPVLAD
btuGY6xEhl0IYnRHFlkcoYeRZXmVxPfHSZawfZ25Mi8pTyAFTJGnW+5KdKbBJp4riQ4SuVjN8mz7
LimqCUnV6maS3apVvi7I2F6NGAFiQ26h04JAcxsurMVwiqufJsBpho77UTC41rUcgcUAIGkAofsI
gEXFnOYkYtlMQzPgUZZAstmWkdRqFEe2TazG4tnm9YBSDAxhUvtqMTAYMBiSGEwHxYsYWlHRavX0
SQjvr2jJ46RaPeYcXIuMcBMauAkDS4M0HzP3lyNnJr8aOHNvhtxiYtBYs3R1BU/Pg3fh7TkHWC/Q
LANrXVTvRzLelixvZKPVvGOuESYu2HEjNruBeDMSBU2RoLvLIemwUhly3h4j5DZXKkF2OlBPBYRg
few1b61zbzb/5PIaJ9YN0Pic1SQoahkZDOYvoyQ6buGK8glYh9g3ZlF09xYxD7mNSyYrhkvjhjO4
egzJwpW/kizi2y5zjCYsileL+CwM+S2Wc+Cho7mIqNt/1le2uR6UhzSFZKPieVImuiUOO5C9z2z4
HGu2YbuKxs5oBOE96BC3fPyyAk27DEQdTEzV9y1z+8/zwYer0/4MDN9iysBz+F+S6mb++UEWTdl6
eZbeH4Sstcb77AdpHt76SXYHcRPLTF0F67JoILpRX4yEp2yGgg1Z7noQP8Zd8FiO4TPfnlMwluQb
QVYLY+D/77lut1iLlcyvXatu+VHNyu8a99EHZAj9j3Pei3F8d3fUHRGkYQWbUuAcR9es6AngkMPV
M9XFQQmx8NHl7+Eirktk+f3jFqnL3w2j85Gg3p8UrF/L/3hGvrbF8XUukKaw7oM0CaK6QrgT3cO7
lcXIwNV1rAWqP73eD4UYrCCTT9ieMwygLUfS0DTwXXOSHbVjG9TuyNoiskMVsuAUEsB3jB7b3oHM
2fOmCuBcend5EtVFmbcqeyOqIcCx5U2Z8zjOJ1kkGoMWOJohOKwIq/3jg6Ig96yJ6H5adGFz2VFM
TVYCzTaXSzCmBWtHqldwWzFlnZYdI0s9m6RVAjd8hfymXqKbhHVHV0xZ/2NHsCIuIexPKc80bAN1
Q07DQJ4imEr946sP56cXF5f+ycDvH5yenpy/9y8+DP3hhX/gDy4+XPWPNP/y6Or44urMP/5w3h+e
XJz7Pk8nFRPLccVRjELBdZKx7YTDXEhVshqXaVqKacpSxEbcpAj/AClXB3CWJKmQgsKbhGYta6yc
BNjshbbL5dW7ul9ONzSQtphkQ1pWvbKKYOx85HkBAR/ll1UBvnKPFTLfqvMv2Xu/KkhSlfy7/eaX
zC+EpMoL8ZW639izsni1qI2PL8WaZWwppiOJHVkkmmJnuRIt7uodIFGZMpbxQnwfynQleWkhQI9a
d/TAQbeqvCKchYm/jK2hQ0hkabLD4zpR5w5WUFjOGrHEcQlrbEAozVpQZFi7BqG6ytpFeD7YJcxQ
MOIGZISQgXD/f59GS3x/14pd3YhMGDjeNcVQzzpY0IOdK40VZntEMnJNC97BAp+XvKHWv4W4g6Zt
CA3OToBti8ZEveUtNP5fecnXRN6uIrUkOgiy6vn6Nbou5qsXWCXvM5EiaEdh1CEoenSYy9FnCtK9
Z0iMNALOp6SjLzBh/TK5ZrFZU+6aVvgITGyZcaRBkkyyvEwpHTMirjsVNvz55x20fPibVKhlUI33
zE0dRnWTlLW0nscJ+7B09Jruhu0RQoIyqds/Zk0kTb/Dv9tD6VsW5dR/adv92Gan5+bxlqeYuJAN
8qDhMcRPgcUAvVCyjkzIdsCl1mCwYXQbc54gom0RQw1G3HHX8jQwTrIEpqLPApK92UWsjJmEZxOI
T/bftJeG50nERXHBfTUo79x4ltVtj3mKPBCxzuX5lZIxSBUSmPPX9McIxjp/GI56I8ERXTZSQllR
7HSFAisIRcA/mIq3JdKWJjvN3pLtxSFxqLtozo5nJ0NSNhTF6IsAWu11YP201dvaZ7OE2WQdqfTq
jRWTNQzWxGB8kQ7gHFlwAcQLawHHW2guWaLVewk5URF3OqIhWO9dWdEiPdZFWtKwKr92Nv64yL/e
7zUc0QTI7glggORlMrx9kUp/Yp5tFu1jBNrw/bjOiEjqQ0BJPcz20Fjn1HzVGQvRWgtHc72w3SBy
XVgc6wv9II/ueR6EeOeUJCVE5pRmAQhka0iXJBUYkIV1CRmzldrwmqFLZ4dEbJRJL+VWDK4NIjIW
IJTXLAAfL1vHn0LICIwZIZ7VdFpjn5CJUKTjZlLDou8khLgwvLnMuTp0pHfW26fkSiYNF3MlZEDe
hdV1J0uqXLob6sSCiKy74dUT47ml+s2dWsZS7HCBGtruvgu7O0LUpYhaTLvnA2FPvrAxkdOC5XGH
vp5J5Khrm0Suut5JhJ8T7pqQtfg+G8e/+PUFrSZFtmyiPEVW03bmsn75axaUI90xppGvjLwYibyn
RWsusdlyG/3jAQQntNoZF8kdqegztKHZIvhPwVTnOpCZRUDGJHxGCjBnIvUSfe3yKlhph8b67BCv
2Q6tjbNDe+MkdjZOYnfjJEba5omMNk9kffNENjZP5M0LDpG5eSJbEBBP+1DUU3bkwqDKCwhA5TVh
RoEFmhizvY0bP7xj2+HPVAO19YYa2OELfk3NtuxOKv34pg9FpqnVvd6cIqSWEW/39jxGVrSK8z1J
0UXmqD1xYZJdXwoQ9cO31sJjpU9iHzsr2FfJiEafOhia/T98r3EFGNuS34wmoQv2ypldkuIWaJ7m
rAIOr2ewSJren4zGabuWz+/hj2xGp2QURGSPNXarva39+UMMC5eI/azuJewUl0+sOeM+I6Mk7LMt
YvaIQ2PbnW9wzRGKpicNL3mY8/ekEg9JLGt6ckzX0WNtUWD2+oqWk7R6gjKEpPy62efv2H4bN58P
WZWke/xbmEC3+73Zy6fK63l/T7m+/t7bEv3y34OZBtz2l4wxIzYbr+8JRtpIXKtlI+KpL0vaQFAc
f2s5eZHCYA/n1cQBrL1QN3gcLMFmGKgLNZZxVQh40xaZ2cRrFk8iGhMweN60VdEVN6jsP+GMaFnC
QvAPVideebFQ0HFe1FcfJ2lFC/BpoAymlHxS7T2fWq85NVbcVGu4HpQmG+ZXxRyfDtO3BjF7pugT
uA0mvnhcBAa+yZkVL0yjW5d5wuCjmLgvEoR1k7mLYFhV05UGo5HmY28iaqjP0los/4jyFGb1x8aF
oi1b3+o87f0E7locmE/mzp6oDkjdnCb60dAyJKwaKvm0OIlYx4UYlBAIVTW93qxoJHjWvXDtQws8
72++5nk5P3chL3pbUx9YP6MwW/fFI9Ww+kk+e87QWVG3vO5PO/bY576IV/0v4ulUbj777BrWgLj3
Arne1DPymXeLoz3Yk1ZLylxY/hl4pgotbGlhSnb6+iXSLu/QegHB/WkxkFVTWxbCPIram+vEQ5iV
oOUetnc0CLED0kAddx3IKsO02sxt15B9Zh4GgwYWFbNmwVXMJikyne4csLTuw+xPiL81CyY15/Wl
iocr2enMNS4PtZHliMfJ11RXddZXV3XXuxWP7NeE8DUhfE0IXxPC14TwNSF8TQhfE8LXhPA1IXxN
CF8TwteEcDMTws1r3EGb17mjb17njr55nTv65nXu6JvXuaNvXueOvnmdO/rmNU3rm9c1rW9e9KVv
XvRlbF70ZaBmnYk/D3mcpHRQwbej11LTa6np36LU9PBpebpr2/ZrqWmTS02PGYgVWv86paZHwBJb
i19LTf+ppabHBt+i2vcrNT02bYgTNw4C5r9dlLHwod5TXw7qzZvV9ZWmF1yxzW3a9fkT8zhl/nss
mrQA5EVVmG8kOivRfCvSj9dvkLQS8WP1m28kzIrizjfiJl/50X9k5cf4jpUf/IMqP+baKj/W+io/
9pqPWNG9+Wt23grX28GkytkP94bD+W8c/qekapZpPDtXcs2VuRL74Rtj03IlyeQQ2Th0X3OlDcqV
TGkDCX5cW57scXI2tiz3YbDH03aQFVAH9Y+Oc99otiEh9Iwz52wDB85SJ+553P3PMdAGNIZ4f24H
qxuUsAnD3KFc/zDRMw6hsw09enGj0svknDYsvZDKo4GvK60aLXxK49LLcD/QwPQywvLhrPYjw1n0
HcNZ/QeFs8bawlm8vnDWXHM4+4yyuBXHoaWWdETGNzAGPg8D+TG/C4cDPv0s4ii07MZZxHPq4vzg
NP/CVyH3Oacco+YvCbDSEG0cdIyw85xTwFYMNV7feWLmms8TM8zXod6UobZaJ/qFoFwYt4TsEJZf
Jvm/TX7KfPwZQ77qVPcIAmDDVFkSepHNgkE+1ktOAX2MlGtg9Ti5HkwtUuxXp4T9mAxfoLrHgXKC
Qwhog/zrMs2FhuUYmq1qX+u3RgxfiVG3EeqeBfo4RNPRqRon12Kgz8Q5+RayeCy+Hru212fXzrrt
2n51YZviwpwFF0YmUZLvHPxD/OjQ60HG/1oHGYvRqYQv3Dlg72rH2NKebpo00NX3/8/etXW3cSPp
d/0KPnomBxTul5w9ew6ujucoY8VyvPPabDYdbiRSS0pOnF+/hW6SanQ3Je2s35I8SAyBBr5CFaq+
KsDqZtPs1vVh7GPG1NL0XkJg+KDG8PpJlqyZeXtdjnz64u/de+H/HH/QmJm/vOafxGty/Jeq/yyq
Jn+p+k+iajyrd1V+ze8sv7xx9i8tZ4eW/OKYZvZGcrRYP/zt+4vZbFf9/v3sVA/Di0W1XDTNChoW
p4Y8rdCL1YIpsKBdfe6JZdEA/9GaUpwnWa57LYTolaopzmPtzzUs7oeza0bbJyYbYJLZTg+mbzvl
BvP0SKUrKmrTLPJYBPef0LymC9Gw3EAGT7QdsiSETkxCcgPrS0KxJnWFdW7guQGwrvqP5AYx0UDz
JOv7/lhYV1LifDC9W90OZieY4lzv3NEpncBYF1fbz+u6up3565+/b20JMt242213M79dNt1XT4/K
i495Z//z8W7R7E79Ly7celPtvs7e3VWfm322m8Nj+R1sAAHkQbPiy9qAXLPvBu9ye4P/NvsPjVkI
XEZEBQmIaU+R81ggYyxWQslgY/jP2eWn7e3jXbO//PT+6ucf4+XfL8uxCgykqccY4Eug8LPvYBsd
LpXkV/Dd/LK+O+ytFo2RXCcvPbIkABqTPDKSJqR9hDG8lBHjKTTnRi1xreQYF8t/GmOM6/H+Hoh8
HxqJmkTLMdJMR8REZPDJOMSTCYImqYKOr4DWH7hAJ/lqhE6vNM/ozpfQ30jMv4OH4NeczNl3eQ2t
4IH7gIgMANQJDaspMUomWhmFVd6SKaDlyPPVrrprste+/NSAZ9hu9pd20KePf8H4coS/ZoyuVovx
3z2Ywi0ktcpqjQIjDnQvGRihILDAinNDrLZRTOHuRpzG27X1cTZELYY4CQHoeYdMXNaaAAqPJ2WM
RC55DwvMHLJYWyQ1JyKxwJRPZ4CeX9lDYw8q0bxSI6haL5qBSRR/SmICL5GRcMk4omDAYLkmIh3z
FsdeOIe18dOW2x/3ueXtevSRN1iOF7nBaoj8t2ZR5zfWbh5W7UXXp1lmb8ScwPPwM5s0J1ZKI5BW
CYNpWImMjwk5yTFn2kUbKEhw08bsy6v1Ygf+8fK6ewVKOo657xa5nc9uqtuv+/W+J9e4sScSpU0z
8qz5Szmwm0OdI3/+Idgf7NX17ePnd5vZG6pAIRSe7z6AVElErrnxSFoKzi5QcHuOJZQk1h5HblIQ
Y6ni7wDxoIDDLPNfm98fLg/g95fdjE/NJxDzxWN+p/lTzx+r+v3NuF9fbr4kY7k50MaBKu2P4UO1
bLabf3Ho/vYqwOI3u9kbMud0TgQ8D5/mWWxCKEjNLNIQqxDjDDaStwYBZXQcFgRjbp4Xe3Kqc8JN
di4lXDYjCQVdtDFzZj++6z1/4wHPMSocRAORvEnJ8giCUJUQY+C6NMEYGS2IVcGBI+bfUKRzkPpS
CYXFWCqdedpQbz9+vHK77eaP5rzOtDZMRQk6Iw50hhWoywWFCI0x8OSNdfYlAQfTnNfXoGNfKi07
vlZIpSVZtbqCJbgO6cO767k96shIPFdZAE65UTEgqRgBH2gdMpFSBIHbOxZcjpVjAXquIzvnt8DG
flnX+2ln+OHwJq/95QhHTwTN6rEImi0ZHgTKzpE8btYP+7nf3t1vN3mVsnIIazVDGMglgSIJkgyK
CnTCDPATa6lCOhllDeyzIMhYrqfxWrnaUty8Pn45VMmpS18MuRAjlqdlI8TAvqrD2MumLuWQ8/ww
/AQpXNLwMFBP8IQU9k+ArRPgB40kBSoCUSI8K0ULz3eTnJWj1+miQ5yTFrnSurdTTl8u6iq/pD6/
oXj2hoEZ0W4jcCUZ0FLvMex0AgTAes+RElZj4SPHJCN93O+yFVzmp3tzaUMrPJwLthYbRhG/vd3u
br5u6tkbPjftSrW/M4LkYSuC55Qia9w7CmvFDfjQTJeZDkmrZy05u3tIQnLl+FC3PmPQhfUf8Ez3
PDUXsrKKjGUVdNlaCKzO26vr3fYzjHdXLda364evJ8dK26jvbYQ96gRSkSmwCuUhD9AcCCHwQU+Z
4oY/K+n7+2bz9moactd93e3WM0gKacRyOZZGkqG9f2jutg/Np3Xz23FxIfS3CiQ4C+Wo1gTwgygJ
2HkgHjnuEiJCAJlhhgrGXkNlxvOc80rDfhelAHJKKnn0p3fNQ3Xblpr2D9Xd/VFD8NAcz3kXHEKM
FoK6QsoK4DExUWQ5mKWNEHG8gy+deI1Ib69/zlt6fdsngpfnQAzEUFNiqNG2qrdVdj0kc8tuQ2Ol
tIJwEGgODAkSDmsgrbOGAWmmzAtFXggMMOa5bQFNA5x6jNNoBnu5Xe7t4r/rp+Aldd7wQYiQAzci
yYHFUAvMnQB95zwom6KElF31XM5glGJ6U9GJ6Ss6WKb/eax2D3/0uDiZZzJAs/2K4ME9B4j/Eagq
sxkNTQQlSo3BynLjzLPr9VM7+PSCdW19yFVlxg6zWpDlclnSmPzzH9fxbQbb7rY2rEDEdwGUKTLB
VkkhB0wMQboABJRgWD/zGsM8DT6N+tR8UWJsxsDrZdOGeVCMu7I3J4dHJG23kuOeEk0lEtExcO4y
IAexD3nLtZbgDKWVzzv3um5u80XA5kWf/qWpM3Oc7FbgK8RaUTEWa0XN0WHcV3dzepSLZvv1yQcC
bBGSNwfpcqIOOQduD0RlUUchErGl/fbGGMxdTcxtzMB8b5pqV//SVhkyf8UHHpuxJCKM1VpD2uEh
FZZguBayXxQdcUx7E5JjL9LAV0fNE5DpnqfmvpALrMYeeUE5X62Kf4XUbZWuREE6f8YJnhMOUjIf
rQInjiSDvIo5CexAWo2AurgkAzg57V6xR88XK57aL0qUY9tYsGYxSQmnzoGH7JYpHI0AqzFC+lwS
oghookfYEu6TtJjp551Nf/Azm7fXoxCGi9VYGK5O7GXq3OYNo1zPgSsSEKBLdj1QspQcWJhyYHU4
gMExyDsUuHRLhPW4b/zdoJfTw5fwVDMBbzksY7U1Yl/dPzzums5YVLshVLsdTGKEsqARNSHzbpqQ
DRL8pTMOdiVApPTZ9R0OP73Gw16FIIKYsSBAglp7B6lv/7ir5uLkKVuP4jEThjiUrABi6CEGwS4m
CBy6xIzBmvpYepT+IOXsjI9nl1QetfyP65MzAzqQJ1cpAC2AySG0wOZSkPC3VakIVE7G4GWi5OU1
e/f+FUnkafKLEp2agqyPgaWbee6e2DQFwoNbSo2BkXHtIQ0mHCKiBdyOOQJZsUycqkB9kOXKlaOV
QDgbA9FLNmTE1W8eJN1Vh4y/5V8GHtOcty6ZG0MhPAQDhshkjEhbYGFGG0gGcSSay6nc78kPXw5n
GCZ+p/YCvl6NCf3C8Oao+vrxfv8UyjgT7YY2RGiejwFou4IQwZCVhCEfKaXaYMhSdLmC/XEKAJUe
Uxv4kgw8/f1uvelFkPl1/v+8E9qNTKXMjjJqkRT2KKjAwc1EgpzWFnmSBGbJGB/s83Gt2i22mxcj
2nWJpd+rbRrIRyfkq8jAPnIFuKof9vMvAGJ55G+UMNWaLCeCAnswiLhcbbcQA8BcLKJWEYK1VEy8
KrtoR5+G3jaV0KvFFPTlwLvG9C6f6G2OKV42EKaJwMRoFEKuBXrFcnkTVKG4c0xJZph9Dd7j2NOQ
j6191McLqgXqWh9C1pl7r0e6rBiELDBxnKtlwBuAJTigy/AbMZxPvSArQhp2PAMGl4Pvs+bUn2Ja
gH6PQgigERNCLMSRYB4C477aLPPgx+0JQTfXaAA8tVI7ZiCvVlqCweB8bGApEhJyJXAmJjn9XMgt
Ri6gLVbjmFvXfLi+2/tmU99mm+hibfs7O18FMycmkcU4nxulkIs2GjIpHn0+CcAqvljP8GfqGV1b
AXeJ6zHcJR/Wmn4KwFu6owmG8wLiFAWDRBWBPxO5RMGRJVGhpGmIJBAsI/nmFaafwhmqGUqZJJ+Q
ybBB8XRZPVTL5qGpH7a7fT5Lwq10OjMyw42GpBlSQZ+TQkXhUw4/KppEvSd8qmI63p8BpgjHKaax
F11KMcyEGA0eZjJPTv/d+zafATczz4oiRJm56OzdCmwCszGXASGAEti22njgRVRasHuMlXuBxL0/
m6K0TX3kSyzHFQz4shrsgZtqVe3WY+23uS4mrQjwG3ZG1ol0VhsJJmZDgp1BA4R/DAmwp9IQI1mC
MPYanZybtci6ij4D2RYTsi3IkRFUjw/bE6vSOe4aY6IkOCFOWuCWgQiQWYroMTdOCkgoSzbwNEY5
9YTXgy+HqVNY7+9vq69H9Om/8tZtbVvldeTCReKyo44EAxygdzZvZCud9E5oDWbyKtsupzlj3WWn
Upxm7CmXZGkG4vz0uK5/vdpuf/35Xeqf/LYnA0a2JzfCcmtTBGoDCTp4I4uRYZIgDxlK4F7mmPpv
F5yKbics55LeU4dCVkomVEcpGbikq2rz+XiwnKOuOhQmuthAdKAEcjFkGWwDpjMBVtwirKMIXHDM
lfjmPrcP6UyVvNejFFqNqcZSZW63mqpS3N1v9/lksTvUZ4y3lVfKBJUceZvve+RyopFJIZFkEjQF
L9w3Umwfw/MFja7PRSkUnZJ06Ko/fPQfmny1Z735nJNs0WXZIivXWpxpn4ZwH7JyIde2QBMR19Yl
zDmkq+lVNf/eHGfSx16PUop6nKstdbUaSNGWMt9+sr3daOakIwfdh2yrHIcAJBcZ74EfJKW6krkL
OloHWvOGvbqsCpM9U1WF1kIMvcATYizwqM7/lB2CMqjuqkrdB5AgsgAeBdQQfb4RQznkFIoGZIQz
kksnVEsR/z9lwH6PQgSznBDBNEMS2Yr/6bqvCZprSi2f7GpLENelU5AZ2bZYHGI+SrJAKiHyeJyA
qGn6aj3AVM/oAVoLISo6wQLA5a+akR7szx6gEz4/5Kvdp5z4a+yJgWApfch3CgQowVOKMIXMlQrl
vdevgX+Y5LwaoPGixEkmwNPqWECZvEAARh2lpx5JcE1gMlHmZdeQVXDLBMGOKPstLxAMbw+ccE6c
hyybpRgl1btmfzTQm1+qXbPMf7zrar3PLJLPeVYFn+fLKyRQG5RySCkNCSsVEIRoS/yxBUajCSX+
G9bECyxnKFrRpy8+SD8mzvBl/YwDmKeb+OVwd4JS1pbCcuQ9fm5resIBVc6Zer4EmyzsKQPKDYLx
RCIxythvtwRHPGc6HlpLsWkzITavjsy0Od60OZptSwdTMIIGK5Fz4BuYdxIZSI1RTuII8cILPqiT
DsYpMfDFBIZqMQr5B5p0ltGB52WMSJMPuQhkYBoMLpmIiHWGcpw0E/qFwH+Y4gWiVsKvxtlwM773
2ftndW/k3LSGIky2EWJzmoURbPWU6YpFWiaGCNeSSWFlTM+nWU8jT8H2vfYC95KPVb+iYPF1gftL
W1aevdHtUuvuqohIjhOaj7dYe9MOFlrlQM2Mwsnndcbf7DSxnf9Mfa1tuygFWE5INSqw/dhAHg9Z
dFvu7BgzBOp5yx9F4lj5fB2Nco6YJQLloIQ0DcFhTjF8/e027RHJuWpW11rKWE1pblUNEoMf3j1R
FQjsOcKLljZCcJegP498EjafWHJI7BNHMQXlbb46YsI3zwme0Ex3fWovZV2NncOK5d3VneI8bn5b
b5anYzIxzzQsyeg4JDiIB0LzxWSLgD9CQmCYSuCzwNmzyUpdf7QChpDjTb4Smk6Eh7YAaR8fftnu
WspOW25lRAZmdSKuO4nIVy6CB2qiKQQFKnXAREqu42upSTnPeZZS9iul0mxCqhWZoIxDdduPN7Dc
SuWsy0DYzzULpUw0RCKs8kG4t0AbCcSHJLXzjlBLX8i7/h2zAhxn6OXHm1LW1TjdWmmjB7LmFQud
Y6BtbOGkNSlgLlZwQ5DMAYYp6sAfAK3RPEbsU+DOv+wUwtl9fmy9KNGNTzBXdb58VJzjfFovm+3z
ZXevPJUQXSBSi3w6R5ChUSEirbeBKRLT8+D7U0wL0O9xUeLVU0KYIyneNXfbL81qnYurh5J7ex1I
0JhYDt48p7aSRWSwMIgLCImeJm0KivG0hYfjDcBUE2Do6Qzg7dXgqqDCQRDJGcIczDmf6SLYwgRZ
mTyEby3oCxcF/g9XBafwiim8ciK7zieT1XqTayH8cH5H5rwr5KZ83KkwRcQDfuYgPzUGZPIqKuGZ
45zoV+Zzp2nO5nSnHqUgCk8IoofFDp/yeoX1ri1tf22jc3sFhRje3vBPRkhFkRARBEkGMmuiCPA9
7YW0MRquX9TGafSXL6emV/QfdCql1lPqWwyl3jf142798HW9eWh2q6puToewEK+lyGrMtkgc8CtH
TD4AzGexKiLLgKHgKJUmSjGhnr+ge3OY591xnnPXhwbdCpkaNhEzGs6OW2ixv4M8/BiPs9ZUJFxg
7pHVmVQJAA8x0CERRLLOK2ro4G5Ab4xybv6/xF1Zkxs3kn7nr9jHeUEH7uMRp0ex1ljha59JdtHq
cIvU9uEY+ddvJooXqkA2w9PhjXBYVBUEZFYBmV+eJXtr28Pa6+X681GMGLRBnZLW++wI9wHEiOKK
uBzhwXFvosSwnTRdMXI2VUtCJ7YOF1dHEp4390cSFENHXX15iheagvaECbD/BGxgjEkkYrgVMoGy
ZFZMwvunmSYUrHsUTC3VM4g9JuTVYBz+u/1f8W+1gAEMcZXQVGISn5Am1khFSokpgMqMyfwtmYHj
vQmnmw6nS3owTv+8Y8eMVgC444MOIocgeSEApQRAeGuIg0dPBLWZygTQ3sf2QR+naRdfqs7iCLLb
x5xhp9W4k6lp2JgByo3kpMDeIsJi0hPsflJAaVkWaj3P+xkPPl+Qw7nlpQeih836sGnTw/K37e75
5WG9/+TA89hN55QchTtFcikCGA5Y7udwCwfiIhgQTnnONBciuMk5vj7vhMSO3baRruN+qv01qx2N
JvIdQwzKNIAdUUN+QuhYIpzzZOCtg6lDAteCKJ0SSJ1Eg01vvoDv90tcBmuHEYuW3o6839j1LE/i
ZfkI0kHfaZTx8Aemd1DFsPsXAUMApKQBrOM9CHuQNyAerM3aiTdSI2DWy1bkY0vpaiZEAGvyaRHX
KU6MPP/P9/5fGGcdESajeOaQ8iDQ4yOIKSBZhRCAimlkRAoOm52lFG8ogcK5Lz9tvLtoSbVz+hmX
B9FQAIV8Wj5hXOawh5Wtz5lr453PkkgmMKoNBqJNmEsD0jg6rbQt5e+zUhrX7JToRcuc6nF89NR9
Hh6+3C8fyfJ5e5SKUokKHmpKpmUpS4q5jWCiCQyIgSHMsfLFM6aSjsm1p3c+Y0OQnIdM8OIxXXCf
9XK/fX4+2ueaK8ymGaN0DOwbB6+AIypgGqxF2EZECQsIwWrDRLqWTXM2b0OWYh2ylGKn4qBfpuVA
yXiFdqvIImKZCfqpjQKxYWGP6+BcDO+F8X/pUbxezim2epqYfUCJh0xbZYQwh9ykzLNSGOHlNoLa
4VhEDsIaE+IDgAsDNrq4CRteh4SLlsTOjrTGTjTkMQ0v7n98wnmBjm0Fum1SnmEcpAanhLGASTSg
uF0B0VK45qFkeWsIsLPWJekyG9gyOY9HO7ocpmjrAR2R+0waFOpOVMPLZ8EM+vsLA7ubwlvxAASI
1NIBDiy8iPAekegP+9WvZEm36TbIwn2Pr6mfdEzfROmJgR2maslr0TlpMCcVGpEio//KOIxxCMEy
j4Bk01/OCR3vTUiduTvR6jNzL9XYAGJ0rksq7ySSW4QEu1FnMJsACwLYBhM+akuidgEMY5Ule9Pb
eeHZxv29RUPZPI0aLophkt+PSObl8fkgi2yV1GPNN02wbyyR1HJAkAybllgFFowGA0obo/nVNMNm
4payeRpnvdiJ1U8UHKgSi4UgtiLcpEwSYMkgygZxCZKyJEuyj8kCEJQAfN9HgXYGNvxsXIcfQJLT
lLFvX1a7w0S1dAelp6VjlrihoRgN9k5AUFtYJlZFD4KTF5tBpNp4U6y7WeSCED0f0jKymessXiNI
F9BYjZ1byhk7w2Oc3YmxcBL0sDEgfEiwAuSOE4AqaQHVn0qhPHCWeg7+CwH8usyVEH69v2goH0yH
neFYyhV//fgTNoR42E7a4RwUsqIC/a2kZh8C+Qr7iiSiwdwwANBk0PR9FPIFShpuuJ1LSrg4TPOG
h/XD9uGlqVADaMM8CBuSsLxYFFngjQBGdl7xIE0UWYerGcPnc06I2nSImnVwSQ9jh/6nb00oCDWu
otWvLSj8UmCvxuA9PGvA7Y7Br6Cw6DYzsEPe0V6d03MpBXA6ruFezItr8OLRnv1YO8kdYTBHNYDV
O6GALjYZHfgpZBCrgPJMAWykS5RKyRb/NrM066/MHLHx1T4ahK6b3ddv5x5tVinwGNDFUsUiCgh2
Cf8LARSRjFqVRPHrwbzvi2qmaymZR3AcXys3CQWmh+ffx65eZ8Hz6lutwlAyUzF5cIqrxDnR1WMC
x40E78DMB/ziVMnMaXtjmud+uYsZnvv7DTNr3RGDa706aM74+WE7PA8/734ftg9/npl2aNcZB0cL
bDuAWZpheYQljscEWEtRw1zWNk3eb3+6hqKBzs1MuDg9Zs9fhwG2ytOw3v22fWg1QM1NPLQcGpsO
ZeWdpZ4U2HOYlKwwjwI7agGqYjbCVszvUVPzU6Xqxx5RjVqaDmufAOs9ASwKa4yTT0+7l9169xhe
N5va6aWmAaGACT6rrCJ6rRXWjMIJdEYyknOJKgsqdb4p5NmucKlU6HxMywd3HT4QlY1x5Pjd0d19
xGSA3e8wQ0MaIWvpk+IoOijmJYKGJQnAI+XSZy3Y35Hu0KquGcEtv64jIge3Ppyl7fBSkcTBUw34
c++pziUnZ3gmSuH2pJGC0RINMcZRsMyCdDK1B6mZq6Vi1Xvqq+OJ/nF5/7BE26wthSxZwbZLHKxA
FdCHF7HvDCWxCFCctfJVvFMpZEvBOfFgrs28pnhxmlB5sMs/P2BO6z5qQ3Xt7GdCBoJhw2M2qGGe
+AzYkuXMfeJSJ/suxXMH6/yfH65b7//8MOFvblcJxu87OQ2fUjnEFavvRroQSsFIP/oqM5ZV2FSI
19mJ4IKhptyaxgBTX/b7wc1FS12HZLWeqrvvht053hnhsQJd5+oO58lao5ghwQgMDJQCmCeBmVW0
T44Vp8NN7RvOlumzcDZg0VK87LHRTdUdqfiw3exqAKc2zKh/1iZNgDBVjoRmrMcXwA22piAadB4I
LcdLjjfj/NNCV8D+aVDDkGZzOCr0eloRhln/r3AyP+7uh8eaHHPqqaFsZNbL2kkDa68Bn4HpS4lx
hnKXmKH+pvKp6RqX6w/ORzXcGDoHVXBRHwuh10/DsP1xWN6fMIjk+k7WJHbAkgboJVIZ9I6A2HJS
YeqF56DqwZIvE/E5n25CjelRM3Wz/fz0+vyS/1g+vlb70v82bF+O5aO4WSgHoOtkJiVjgyCH3Q9Q
rmeuWPAK4Ge56QH3Fuo/5N7IljWpO6zJoWZ7I/B9vF9/fR22YJ8dVQQWPdYGZV4H7B5HlAd9LCiT
IGYtBZtRWzjM1FMb/nLRY6Np51Q0TLj13D4UbpATf8/y+ayZw1HZSlZsZqwQFjBXvTA4wV54DP0o
Y0ARW++uWYjHWRuSlqKzZZZSHUha/Ymp/qcoPbp1uM1gBipLIsXtAWiZeAyeMYMtTWIMQk7wczNL
u37vvS5Xywse7U2TGjtqUMZRgybvZcGGbaagAU3RMM0a63lCcMUaVuhtKQ/Xc2R9Z1zL0Jp1GFqL
mU9vu3n47fVpXOjg2aO8BmGqtZ1yMKk4oi0FfgyW00crCKb+WctLoTX4dMW3N1tgQucc9Ylhfey6
9b3/5ON/z7oDSc6FzfDGdUADysEDB/XOsUDb08it4Uz8Td2BzilsWNuozp7aqNUssRezHYGc5+eH
seXaQckYV11LWbMgFQFTFtPKKLYUw/I/lhnoUufsGzWt8/mvlKE34ybczIGMZHQEMt99n6uwOTrE
ikkhC9g2gqELWyRNvCgSY5bOxewSHNy/7BA7weHDuoduF4e/L1oilx3KZ+9h7MVz7PCI6FHs2w2K
mkOevUmyiECoBoQssM0KWMWRROu4lonSJN8ulRobTF4u0Dk2lzwRuu5Qr6etRb5+xkaPtT362Blz
rOygqEe9ZtqXoAgXQmNFJcgkCnITrkouErpXw00GLa4xtmC/AB/PR7RcGNnhwsjuOxg7fdZH8ct2
7F3VtkKyQXHHSeEYAuU+kKC5JTYK4Q1Phir+disknPlKHyS8PeFA9TgYpl2GfqiS5ePwZff0bcTA
Z4jRCQuQJpLsCwpTwDJeCEU0Tw59l5E5fcuLmC1yqWR9MqxhqOcllnxWzVm/cLQcv5r608vuqZZW
7EGaGK0TGy1nUloiuUO2xL4ntdQG89etirdaJ7OlLlkps4Eta8vOieeDPUXUR59F68QPgRXmEZ8x
ykCnUJBZAWwum6woETPLyrtlzp6t31I+zN0PUrpZK9k/zhHIoamm1HdurEuVAM4SFYUoBZoDDNwC
XCRDDKNaWhV8fgNq+l/fwh/nIxoWqp6YsqD1/QEiH4DBKVXL8toorEI6A7qCY7qsyGhSRaCbw3lJ
MQepswQ5dhVtdB6pdj163DH/8btPv+xDKR+HJ8BU096r2PrDxJAIz7b2AMkA2xUAPGUK94DnS/Q3
9vQ8hGxu2CF9olrGlh2NrFfTfL+9q/f52/bl89CUt6Ojd9+JffxR0xmSpxSrObPn2DgjEOzSSpRL
gSPILfr9q+9Hh+5PcwrnXt/joPZRrOaOL7AcZ8Uu5V+j4++//mGwS85dLYUef1U5Fhyc80wShh4F
Q4OC+Uy4VyVTbrEh3HUFf5j/UuL1/vaiJVN0aN9MU/DWj7vX+99BZ0X8UfMGJBwc7mqUG3/UpBqh
AoB0wrDwA/OS0Dlh4ZdUAE9Ktul6HPIw+QUG9ndb+jedbbiUx9AW7N5H2F2HIuLa4oFnyrIMhMtY
W3WDYY/HHDRFsZhkLZWbdg47TbJoF+posaXhB1H/afvbxFXLvQPgAQaDlFhL5pMjsMEZwQSR7DxL
Rqh3ctUeF29JNp0Xvpp16A2Pr8PLbvfyGZGorDk69c9NtcKp4dmDjCwcvw7DMQiKifZOCBcNtYCB
3mi998Nx/kvg4Thg0RJqO9QLeQhLPMEDePwDFNGxP3JFoIoGFQFyOpCcQntKrE6M0MClxg5LoUwa
n7bTnFOglmK+4dTqlEm5fvr29WUHZr67s8dogTuomASGrDY+ERDkmMXnAKwY+J9iIbvg9P4TIOd7
bzZfQ87KLTvkrMXkdWKkZ1i/DPf1EB2R1AkcGil04EEQEAj4bRIKJi3FBja0MCGCyJTyW8NOs4Uu
R59mQ1vmOua5pmLZqUG7WC6sWGJFyEIc9q6pTbGtsJzwxEQyqoBseruk/C040o5ZNOQq0+FhPWyG
1T72/TTs3/HBvSTUwd0Fu5aqAtDJK4mFwyAyrAkAp7JkVlovIrtQjjGZtSVpPfc+A/JRE3fTeaME
3Cq11zjm6h06MTCrqEdvjPB2/FiAxei3SNir25ibevhe78RwPmLRUrvusKCnReQfXx9fHl52r6C5
p+AHnjOVh25re/jBVfEcuzcKje0HjOCAwYvCNgyMSwoauFeMMD8EV5ZtfB7TYS2LmvVYdJM8mn0w
cdZ4ANQvutEEugW1pk4lsPdA2oHGs3AGnMqZSGULU0UnyuQ1YNtfY0LtskOt67Y8HDtCo0qx1I1f
naCCF4zDoL1gCpg+muP3z0zOWWQPL+Gmx76f/IqHaQIfjOgkZcPFY/bz7v6sPInXWmkrY8DPeCVd
8+EdCEpd94hGBV6oK5OqjrM5mrXVfWcPq2FWTfz8PLxELK86i9HJ0cEix1qpwqVDhy+8Z48hFAmy
2wiiDXfZ5KR0uq29+mylC8bXbFzL18DnfGnGJonuX05pA9VPRG1m9XMFGo15bAwEUs/Wz3qgcArA
ydVN+qXziDXrkjKLs2EHz18+jH2ZRc33EtXRqxSXgBQjkTVwi0X/8IY1yUoIzg1+dYfeFGQbF7i4
N+dDLzdxPhvQ8GrmxX7OWDt0KoJeH2oTI2RT69GJwgR2zyjEU2/wcyrYu1BHoooy0hTPAve3Rqgv
9W0b7y1a8jqaqBaZt9ni1fy4Kw/b+4/f0oBbrvm8AIBOyQqmYWHRcQAOggZ45QBr06jB7JA3pcyc
z3/hPZ2NaBhx8zYa9eLFIsPqVsR/cHaJjZUnygrQngybBkcBqghrMAuWZMYYAKPBOcj/WfrM6f6E
h6HDw6z69lMqVYCLcQONXgrji4hWYcU0AADr0JqC7cOz4kZz7C+l3iNxf1z7Apys91qOVh2l5GZh
qPbbsv+Ao4D9iGoD/5Sw1j8SAJHAl0foFWOtFWERdJNT6mq4sZm5JW1tOqTdHyvr/718OiVk7tvB
Ck5BN2rYCNJjRmZC5yAjhgKFVjkq4iTieDZJu/j9PDZklptjTfLz/z4+vAziqPeYrk8DvziiQKNg
xitsTIOgWpkIasc5UDWYzj5pstlMtGhXm/tMzIoe/WI/fcXCru63OUDbAgEUq+YwBmwlPAeAcKDz
hIoyw5sK6W+Kvk2pXLTcdPT7itvJ7vuyfHzcHf2R2hzK17GqK9uAlbEMWynAtrOBCezowJlgcK7M
1bqG83lbunhH6N4r2rGq9r2M2OHzHagu5FjFaAzHNAgAPoxmIA+klBWOk6iSiQquAWp7E/1fSd47
3l60ZHZA8f1KHraN/7WMMa5jquv+8w/e2RQKPD2HAsqUQBy32OaGZaGzziql/9Al3fheWjpaFlaq
w8LMYv95tx32dJzrOoAfCmStJC5g4VrwGtN+QAhITgvnEat4b8pKOU1/IRnlNKAhf+Bz/5HFXJ8J
ar2/fxqen0PTHOyQ8Me0caOu47JYLpIgEb/lJnxxJGBntMg02iog49gbuq63TqPsTgMWDcnzDhvO
shn02PtMj19QPH8XsSRnrYbXkBKWjbAMMggzF63lTnrsFXKd+OnkfQ6moxYtxa7Dxiw1Dk9TbTmD
9NvaIGTs08O85xL7vsZQSy40hjNTJoxJJ5XkWrq3mw7WmS8f43q7pXo9hxqWz8KZq+X699evTdPq
O1Mz8OuftViNyozZYw5UApxrl4nTCjZRsfD0VZCW3pSBHyYrnbMw3lu0pG469K+m32L9PvlPTd9Q
kJ3jwx87PjqfBZY1koKRPpChCbvlZEDdVkSUSkFfj/nhAhesBLjTktxJLUa12dko1VL+8AM2atjn
IBg3aqTkOH4tLxsk16KFlrMl1MsEZpWDU13e3Cv7yd/ov/Xhh4Z44XSH+OWyk3qbXoeXtBy+7LaH
7PbzI8uSpvBfBAiDGCr4QKymhgDl2gKMQpPuVjtnvtKVXlWzsS1/889c4MXNjL8vOMNyOzyOhUlj
7Sy6eKQHu0B5zELHHrRgsuGHYUEgccGk8cnz7N4jd/qchEvsnkY0TFo9t5GsBTSy991jOf+Pw28P
zy9nUVA1fu3FG5qSdNiSBpS4kAnYA6OCFBlgW1uanWb/j10IWrJbrlcdfenkzMTdNnoS7A83NunF
TVuMjvi9ClHwS6M6YANrYQBqSYpYIAhh3+Pdfthe0KFwY9GS73o8TZvk//vr+m7/sD8utwDlvtQc
29NpTE4n43UiOWVAZeiSDCo5AlLRg1ykjAX1RrriZPZL2YqTYS03unP4llz8H2/X1hy5rZzf9VdO
wYX75RFX24ld2aw2jt9OzU27U9ZKirRyjv99usEZDkFiRuNY5RdbHtJAgwQbffn66x7THXzG0wWU
yDKoQDC/hEdrDMxzjw3ekcrXyUTBGzZ/Rp1cViA3rYCyI/V69G1rneEh/bKkV8qaW4FBhaAwZMIY
BV8S/FybeSgMnEkrZnmoxXitNOueNFvTL/z6aYVdoW53X1cPyHUD1/YPn1uC7SE8NfyBOyWAgsZc
sipw2AuRIpha2FpBhOyNNFq+wTnRnfIc1r1za7va7TILadeMz6tJd+vXz0MVM6prURuGVKIDDtuF
RyVIcBIz5QYMmJw5AT/eeAQDq+s6tU5nOFM6OLnjphW3u4a5Cfbrh3j4ekakD1oCmTPOkyalIE5D
KQ4WF9PElSRAUQVJ01WYvtPofelP11vZV53dBj8e9/5vuz++fh5LDTjCta0wLGYlcQMlIiJufZEK
yc5Go1nQpUZyl970dKyZEKonxBjBQTzW7eZ5/4Q9AP7r2/7+5JMOwDWfaPIRnFBsDz6UyTnnCgGr
MGrGeEh+Fk45M+RMrI6ptN7ysx1thpfkt1/3D3iGjVX/Q1eMCpjAFLn2leMMA5IMG99KZOmPoWQV
vOHmupr/5UznSv+Xd7ar3IreKuenKhbO+uf1flwW/84MjaBQeSvlKPeeKFGRnBjLMJSRknKC708J
+gbYaDb6+drdyU2zVbjeKtbHTMnrZNfU4lAZHTxxG4jSAlt1gLPpBRfgNcjCZAZDXM/I2l7P7JJO
7slu3Fjx8PvP+5cxJgWTVXclFM14MYkUj7MXxPWFjBBFFmLgLMeo/qbA20S+m3YJnd2/WS9q9L68
PvwG39ApwKIHVrRad55M4eA+ElDDGc2tAF+oF0RZ8IaZUHjmXHWot5OcOdvbm5rFbDtQHUeVnVXv
NYwCg6l3aEfLhD50qcI/aiVf8CW62uoBtrzC8hlWJLEmWebBEtOSvh97wUmWS9w180SWo51UsqOG
9rHOuJ0en5FAQh26idc/au0CC8VwSYpFEFqFoVKda9c3rajSUqo/gXceJrqIdR5uaRdztzwlHNNz
6HnTJ20z6Q87oMay1UyDPUwcRXPNarAcmI1Ecp11Ssx3KePe6JV2/sUsbrtppbedJS24vf9997ze
PT++HDtjDZSs0kgZ4NhFV1WAtUm8V5pkMCYEN7TwfNmTOQ7al/t4tRW3w64CP9oZjmJ9/7j5bSxl
17UhB5cyuQTnnkauDxWQsZ+CvtNWschlsFldisBPh5yJtNT7jgs1e4LdhqPHT7t+2NIMKRF4mhY+
30BipghpBB0daJKEFhexP1cx5v0Z6kdxLvQhXWweLnRv6SeuG4wX/jyj02Sunj9K02QQHGsofMuC
Ckqcjo5U+EMMJoECeyeem4UUs0WseovYHs9t+D9OFPvIOFfJzRgVgYP0SViwomyEY8VxTzLTIcVA
qad9kv3TaI0Q2w5vFlaon6PY71OdGxp9kpjzLxYTI9oQcE0o9ifJjGoeuaDXxfTeiOg1su9cRyvu
3MguccQdPX7b301iQfSYG0vShpQFbnCThx7yHsvSozI2C+esifEioGkycCtYJxAHP85BFF9290/4
PEXFcMvKR6qSl9j4kYaILpFHZlIDKprCkR0TGGhavkeQ5geY+kxHCLgyW8xdZzHrkQJzUyN1sQEf
wtdpRvihQwgcR3oYGSQmOCTB9jx4CoG5ACofzIkz8MP5yI1gd7JzgtydYNObf/xjtd6fst9mYOni
PJcgNKHZwUtHqgsL3wDJIEuUAnRhpDPs7GScVoCeZXVnxuDJ/er1YfNlZMbW9YkMbqRELj9FFEP2
Z7AH4QADVyjHIliwlEXVdyOnI05FWdFONnZVMa6DQvztXxNdsuhqHwQmPhymDQoWooqhKFDyQB2D
byGyPinoadRWGLHuCLOZJwk+7J7vHp+/Ig/ItJPi8ZSnJkUL5zl4Kb4gxh0cFGxu71IE+zl4G/lV
eL7ONGeOmuWNzbJ4p74bfpyTUtZ0c1w9fXvFI3ZIVbrqAfsIL5gGQzADAitCcGKRBrZe8fBpRyXM
+0RgJxJcIKc83DFb47azRql6jQVvP3449oKq4C9JvYqg9LVUfHB4fCyGcBe8BvPBRGmvp8X4+OES
H8bHD63UsvdmDL+QTT4ykE4R37ZlRQ0+G1AS2NY5Yit7RQn485Kgf6OFtTnl8mdYUd+Gf8/vaxfZ
weivhJLLYMUGaaWet5XqA3ZejYE6imCkmqxVkloFRgQY/+D0C7CHCDbvJNHxDCY0kvn6tyIWpynO
xitOt9y0EqvOMvQcr3qxI4VgHssfQH/GekpSTzAHAIqcwXcUQD84/Vc7UpzrL4HC8s4KrD6q/X/7
kL+f1etY7otBCYPI4DE7cAQcdpKIQnpusbljLO9Ur3OavRV62/mw1W48IPabV3QYT50SlWLfIXkP
Pm7rXICVIEqKEgGGHrEIHitgJLGkElfRtEfmbLSbdtLO6aCZ6yRKjk5E5dx6QPZ2PLoqkSL+G1Fc
mTFW4P0nU7D5nLDEI5NNLM6KkGSONlybOpnP9nYn0OOdN+1SVr31zY+JewTgvgyI/emx58C6V8UF
klNFhosC1pKzJPGgtQkx6euC+nX8N4+KqRRnwmSTO2br7Owo1LmHGtnf0+2HeexPGcpBj2aSCkV0
trKghJBZJMM75Bauhr+L8uIkXrOqatItViXZDG737Xl14k/jFDG3VbdmJxiLVBBsJH5I5RWBHF3S
KV1K4foi1HMybiuW7Ogco0as5ebr02ho6np2yVB41MQUid0BkP8Pi6fhO4suBytyLDMrdxxhOvGa
dqBy69ogvtnNj6AtX445hQFgU9X1IUkhdA5Fo38oEDDBnMHyqQKWTzSBG2x6Et7D8mlSG+f1+nhL
u9RONgB+nMP8f149fH5+/L3BjvNkdQATFWwfzG0E8HNC1JqAWk80OpqtvK7k5zD2mdqTw9VGatnh
y1vLzZwqcpg6Nkw22X9AGuFfayXIUJWFf6BnzLLIFAwejnBsAfY2sdmCEvLgH7nkZClXUZwdZ+iv
53i1Xc92mZVb6+3dcaeXx5f7f27/eFh93Z/K7/V3fOgh6VIAf5JgZzg4ZsEOBUuHYTyL0+JETnJW
k7scrREG+aAXwji5PQqz3b88Vb7ao56jtf1XLQOLRjqH1cuaeay5N4l4lT3RKoE9GUUqrk882w7a
yrPsHgo/Krc0z29XD9vamW7Rlwyx9JozOrSDEsEIxK8G8PYy9c4nMAKvtdMPk5y11A/X2yWo3hIW
HY9//jne1tgI4oXVYJAr6UrIJRKlCpaXUAb+kwLfGXu4mlh4kFdRj+DYZ74wuNJIu+rw7qxXGGMd
YnSr582XPXyv/FR2iS2RqmkSwV/0nBEtsMW013DWySCIwl4tXAZj6CwxOxusFaQT8VyvTk24XlYv
9/wkBq8lcXAUmQRbmNCIW5Bi4RFznoBPH71lSdoyw2c0w7QCdIrU16tFv+AmtfMft5fatnMTGQ/g
CRuLBXs2gaeFH2+KKmhjheJJv18a6STLmXPhtleGBivcdJa9nacCv7+9HT+1qkGDdBReNKIDkQXE
GQ+GqVEEm5/pjDVFb+TIYMQzxDG37RbddOww/PFosbw+jHqy8iukFFgG74NEA/JU0wC+G9ymWSFU
1Baaz7Rp7anIDet8zxs51Cd8/9PH3cN297x7LvePq28jHwlTtlJGgBWgaitjMAERt6oT0zaUAiKK
d6HWaqY/MWw1P7fL6YDS4Mexj8TX1ebLGOa0Rg3mDcOkbvEEK2ExgGaxTakirGiuZM6SnXmkk9Fm
Utx1pFj0U+4c6rUibMA2V9SftVZnKgVoe1BAwksHlgmCMCzoUpojHAKXkdk9w+EC2qK5sVnTnelo
sDszVyCfYmywcSrnwBMY1EgdC9+RIs6ETDiPATkcg/VXtaaBYc9UKMQ4E7Pzwd+txnD3y+HMO7V7
Qu6VQeV7i2C9JAlHQINgtV0tWAAiUCuNMGAlprm+bUZrJVkvbf6N2M1TM7/vK+i/gONwLD09FtUN
ZXVZScotWB6S4yOkBnxkHsAqUjzDTxKrsa4qbDzMcEbVHq7eNNLesc4S7uQiCX/7OrbgBMe+nvqH
v6rFkpF/QaOJgk0EUoBjTEciLecqY5OiN7oAj+Ofy7sfLs9kXwaqNkrMPZ///FTrGA0SpKL2B712
oHjLIgUQFhM4mF2Cxx7ADCUF9nCM3mfFL1O81ZH7EtdLN61g6460cu68xOfVy5ePO3Tmd8+3Y/Th
EF0zDLMTFJQzD7BtCzL5C2yiERz8g0pmCrg5ml0Hy+vNdSam0rmzXV3H+NioRd+kX/a7/w3P+22t
NlOVvqOydyTLBAsGww7I1YPYPZcU7CdnOYuwtRS/ioT3NP65dszH6430mi1VCvy4O1d3gGDLnx4/
f55xNSMRHUfOAB8dom3BcIezCk5OLLvOlrsYxJ+qOpjM80bNweTOdmW8o6I0n69s0exgUFRoaA5A
ugFKp4OnmjtKksTKUMUisQZruTTLRbNSqLoq9NWd7so2DAsVpkVviWK7CLsfQsVHJOq85ccYvNbF
cpNoJrRQjkcDLJB7S7jiVsNpF70pb4TfZ1OdicC3d7WL6viRG630smyt3B7ZgYfIgJXcKyE10l7B
OyqcY2tfhOJYjTWcnhX+VrVauT1bolZuWzk7tDcbbeax4tsvq+f6sUgJ9qUYeKYOf1aLN3ELvhAB
Wwc8Xo7kPQi31y4UB1ME6a/yeA/TnNlJw8VW/E7Hmo1e0JmMhG4Ts0fEaBgCSh02v2AgrfUW9kyE
b4OVLKy4Cix7kcutw+S2MT1dZfSulwD8xZcpDR/9Tgw0fPgHukDIPyBUxjJMP3RHdA70b0yeZpth
z1/3OR/mupAP/MW3a+gQtW7Akz/6yl93mxVMNsZLna7BadAxkYaE4G5E+skC1ptPBbYJ7PiYI/hw
s+hRM1AjwqYTOIIf7Tn89Mug/Wtt1zHsMZRWxqhEAkeZOC6www6Wy3MWiPPGgKmpheDXa/06fu9B
hsn12UJcZyGCL7I1CNXwrwPT28kNlsFqI2D3Co1lVyVj31eBR5jxUSVZbLgyh3oc/1K5GF5vpV+2
TYcfV/OCkh+Gnqut6CoJrYSFDy8ggJcrR8CXAqsoSm9gDSZch5Y8DH4ObVMvtkKvlriWzZbencXe
1169+7LvdAl2TijHwSkNAj3T4hNSfyWSvRURLLkQ49U9Q3CKC82C4WqzjC3TnWUINqdLfmrYPOXk
rEFMmQm6MvhgMgU70lkViDaBU10kSypfrUA+vL58uXhgzu+aLmZLO/XqW2rmuIjKQZceNyOQBfT0
4A2okhyYaYlQl7AhE3wNIcDbUNrxzDTYOeIqDqBxhgvslni5lb6DZ9+iPtyNEK4nREZMiL9quUux
ooCHmLAjUELiOEM85q5ZyEFRQ72YhzAXI7VydHiy4Mem2qzcVk6oOWqTC4ukBJ6A14/9L4Mk3vuC
DSRTpiymHP37oTYbIWZLkL0lbGbMwE/3q28IJhrBX/IYfufOOwpeK+xi7KARhSAWezHrKLy1UQbP
LsKB25Fnsm07sm1HqpD4sdy+7r+Nz1bICrOyQcZkifbIyE9BwwUePFga3NPgg/VRzGr4mmFaCTql
KKC56HjywlN+GQ9enD5Lx1yggiSHrYd9wWik0CRKpqKzWRQ6Y9WcjtFO3gk2bBmbU2L8uJl2WNW2
xkrwX7Updc4pZE2KwtqUgPBLjvEcEaIHXx5rVq8C+2/eQkBP72hWwVadl8hWY8oJacM//9Hkn9mI
aKUeHmfEPKtUqO6TwmIwjEt6fKpcL7h1FsO1wnSoj7ag02bn5wKdMgShhoTiQJ4Ks4O2BptbZnAb
BDxYJ/GtRy2ysdRx+xcIaw8XG9HF2nRE36hO4vrz/RCYHgSuf6Cfxp0zAVkgYkK0noFDFINQKRuF
BTDeRP7/1jjDtUZgedd58RgpaysMEFfzctxaxw3gjjjOonyJWGEH3xI6Ozbg2wczRmhd4NRMb/Uw
boduBNSdEoituZsTfm53L799e3x6mbQCQ3DEEJI+tD/12lEN31VElm5BEzxaZR2hUuussuRdxope
4Wqd6vgd4Q3n6lcXN960q+gckHaBggeHaTBxB49YD7lyOMEDA4WukB8Wjin0LnkhHM53E60vycgr
XbXz9u3h4k0rX0ff2UOHbmzqsn/YrZ79/efdxNkZ+a9KyUpmcG8KmFJwDlFPrJaeSFAfIWACnf9d
/FcdQduFdoqMt9bMe3ufb64YFE8eE92OJzjjElL7IQtjsM4ljRVckV3BXNoRbdWpMtuuDJuA45/2
8JT+eWq3rGumgCECB1z7orAIxfqMDCKOGJCSSUULKJ1zmPh2wFYcwzviWNNhhRroU8eAA2hnn7gG
3UxtQYoILOW3mhjKDdiocMnJaxmhzoatDxdbkW3n5a7WtkMj7H+JPySMNAxAXQX/43dD620JpmBg
SGVlEFdGi0PssScO6/MQ009lvNbNqbNc6G6Dl9sVdDhxtqsNG5szlF8xOLTbzpoylBJEQHYV6jNI
ruCR110JThl1oliwD9/JpJ1J0Eq/6W2ZzYgsu189fN5PRK81FDHKglpbRTQzQFtjQ61CchZesZKo
5bw1M6ajTKff8bvl64cfRwa/l6f9w/b169PpqBuwINQZowzMSYtHS0dKRBKCn25SSTwqHqOdpdqa
kRohRCeHvRMr3cM2tG3th0wbtrUfDEjmdcAaaoSowLfEJfZTTAEb2/PgIrfwpV+NR327uf3itnZZ
HezCTmzH8mxkVlkWpyiZmOAYa1QIHUzg71mXwQKC5815cYnZfv+ScbhWiA5LJPw4OiX/87p6RoqM
U69Bi6cqBfdeu4LQFWQU81yRgH3pszRBKKuTo33ewvl4jTCqUzK5U3dz/fjjw7f7D8+7u93z7qGa
MAfOClcJNBm1HnuJa89g59HAkCwsYUrSwKZjgl3X/nM2yTnOnOamdjG9T0fL9aT+6ZSlZnw4Cm2J
At4vUvJjn2HpLHE+KrDLQfpgCrx8uSh/6qWnd1otQyI7MOU7ivvT7l9I9aqGxyjdgSjdg6tlBYiR
ZEEkCkPGblDiSUuWNPh/+Y287nHs8x8HXr1pBew8NLMbQxCffixlBt4HlSLBTvDES6/BUoqW2KIp
Kchd6hyPgsp3Au+fZm+F3sme0HP9dLvbxMft7r+f4T+xHfgC+seKxTgm6G2HXPuhwm7gH0kny43U
wtir2jO0E53t7Ti5Z7Yc01vOqXr3+18//fE0qUU49goooNYDllIHcGdAKTgsYM/IXQnug9BGBeb+
Yq+A5nXMBGkWYTs1Rztr6KhcX+6/TT4/WSspDI8J/HM448v/tXZ0TY7asHd+hV86szfTZLABAzuz
Dw6QlNtkc92QvbYvmWxCtpnmYxvY+/j3lcxHDAGybY+HhIBlSUYWkiNLuNrBbdYTvhf0hOOCfQoa
D75ryXeVbqr4nYZ3lsyDVpGJv2VK5M12lxZF9fJAX3kix9QzHQb6HTxHGTMLqsHTac+jpuubDji7
jvEjki5nzYYZIS1RDWqTCrPu82U8VLx6rseR/BJGx+NOhr2yvHqgk2/7xE2WhodxhnI3oQn+muvp
QW9InYFBfRpYV9K0vHdjbUFCy3p/cbvC3mrToErXcbmT9du+EtvpZpkp/IHwucf9nj/EIDoW6Fjw
gIJLYXEwgigTNq0J0745uBNwNRAQny2F7ep4+HKmwJRJM3VL6MICI5thGWwML3OGGN/CsNKYYHwQ
uPVdQUovWhVVg5EQX6x9bLFMYEGDLdOQSUqEcBnjGH3vowUI5qjguKLpCdwHYQ/hrdbl3p27rRCF
IndB1EYvswSPwvqbwg8wyzKmoLXAcjEGgYFxJkYPd30MbCYEv6Kf3v+mKJHXSG6wbzYXe49QDSql
mc5eYGCB++8K0EqWBwpWB8MAHGSwYcGFAnFzDZsGVxXslaJMlSZV6p3LGKaNfqHSxnITdFdksT90
BXc9o6dzgaXmOdab1UXP0gOYFp6gjid+XGRxlZ62bHBqG5XrDdMvHbCN4dTXnuahulU1e2SmkdVd
EGIwsBi3e4E9sHGrgYXFUWkv4NyCqeiAXL7LeVdxNPOhttA0TCYs9+VNjuvtpnCKZm/7PfR/C1x6
y90uIfvlOibP3wk8bzBLXk9HrM8LTy5dnl5iuWEo/XObFDdu5eiky+SvxeZ4Wrxu17eEZtdkGvzF
Cj7T+Jbo6sUkThdJWl6vIr7Wvf7/uocfClcwAhIfxvaCF9KED5St6/w7nNrThGB+UHV8sXj99LD7
TjBeDu8cN6T0+29JdEyXuzuLg9U9Iac42a7jQ3qn39/oP30gyVe0y9aL41u6ALLeDjLPOyBb5xA3
VId22ufTNl0+72LoAJGX3bK+OyJf4WYaH4o+O3AUl1Q82EWOhUi+u4+n8DGaizGcPQajcPpAtPw7
+v1T0A42C/+Qd73p/CEiN4fjobc6LndxsorXH4h2dz5aOijvFieaWKXbL1jjOjotVyi+DQfTTee+
/EE0b0QwDzW2TlJcZ2+AoY7NazBbmTq/46Dgz5QwhoRJ5FJPBpo0Ayl4bIDBZa0DtJdC1HLYLitg
KMtg5mFOH+adaoIx+HkMeA0GTNJGxugZDzGJ5ueboUATolP/JmmscWU6KOHncVMUZcfBTHXcshoF
4bQLgjtnGAa0fZyRj2FEXrJKvjDkK3B4atwwlTarDeYm++MFJZIQx+UVfoqjaENAFSyzVAYEBgej
ppVp9UG7B50c74jAK2R6WLXIj6OyPxHj8dTrnH/M0fu0IMuyS5gXsNrX5LVNTg2milpWx5lEyxcY
QbdNpi2uioAKY9HWiVCZOtnSKBmNZ+MOjqp4PmUqnICYviYgC1j4+tq0nv063qZxxv0KQwau4UGY
SHj3ZDQXj34raRbvs2KsTYRJQXlcUZDM7rslDIja02Qhn5CIgq5ZUKoPCs/nc/yMfwxMpDi1DnXf
GuVobBi3xcIXkbhCm9u3J8UpRRh8NIN5OI7Ch1nb43EqY71YhBMxCroRWawGMw4f7gMfplz7sCly
TV2EiYLfoivs0HKsmSvxzB9Cb+p3UmdZTKVtL9+OrYpQkmPofWNSEkq0XLfvsynRNhP6ZsmP+d9e
cdE0EuNrb2Sjz0c5maaTw/xM9qClk4qyypRUzkTfUWG0fwBQSwMEFAACAAgAtZskSumfbvLUUAAA
9oIBACIAHABEdW1wUmVuZGVyVHJlZS0zMDk0Ny1jcmFzaC1sb2cudHh0VVQJAAOmvW1Ypr1tWHV4
CwABBPUBAAAEFAAAAOxdbXPbOJL+fPwV/HCVlTKxQwB8r5y3bNnOeMZvZynJ3E2lWCAJ2txQpIak
7Ph+/TUASiJpyjZjXfa2ZG/Vji2R3U+/oNHdaDKXeRawonDV5s/hfDq7YmnI8knOmPon0Rzd+qpc
0vKmfSn8vP+cJfMpK95/vjj9dHb0/u375v3KScjSMo5ilrvruSifWV7EWdpmoCmjLGTq5H7Gml/9
YZs7pq4OzmkZ37IhoMuBjXrZEunyvrzJUvVP7BiO+VW5YsUsS4vYTxrk1kj8qWC5enLYxmRoSFEO
acneT+JpCxbWkLWjoR1NV5HjYuQa2q6ObXVHszVNuRirXXKe0UCFr/5QkbaL0K6pDpDxEWGEhwB4
luXlg7sQUvbTLL2fZvNC/fSphtHCB/v6vnGw4xxY+o5la84OsnTQlYOORweHx4dHB4eKonDk6v4d
/cbUcZwGTD3IstJVTQ1+1IIFWRoWijK+L0o2VU/Skl3ncXnP1VuyoBRQWEpBjaGijHJa3LBQndzk
jIZLJBroNS5mtAxu1L/mbA6aCrLpLp3NErY7pXG6U4obFOXoe8BmnGjTzkd/jLyD/UNvfzQ6Go/V
wfjk4/jo4+dh7XruHEtj/350de6dnH/ePz2Bmw4Pr/hdtFS171r14/s09BmLahTOQaAGx9HF1eX4
yDu/mJwc/5eifD5Tr9g1XFmo54zmQGxBxFV2dvZUhd/neZOjPyYPlkbFFWkIGz78srP6gGDCNf2n
qoJf/P5VzXe+v8/vvqvjs/8YXXzpWFWKsg+KiwMqUI9nLIAlFYBpoiyfig9dZXS1P/715PyjOjka
T1x1ysKYvi9zGnx7f0eC9zGYMY8orI/3E/a9nIgvaBiO5mz3ppwmivIxyXyaqPwb8Ih5FIH/D3J2
C97H1OAmz9Isya4BRLLwkaGrIKTvGrpDsAMij47PWXmX5d8eKOPfpBmsKIpgcflBGNrq+fjT1eko
S1PpU2oUp7Fwpbu4vFFZnme5ugNeAxFgByFYQJyXZVpEM38OL8fQTRP9DF7GLnFMjPSfwcvchRAG
7H4OL7ib6D14mVFgGo46GV2qnBWsOCuyLQvz/4UajyEQQEq2q0YQaxB5x/m66pKXQewectk0ImQt
L/B82FPQbouFYxobEcdEbXGw1hLH1g20EXE4r05xwBVsu484voP9tSyKkuYlbAoVaYyMjZDmxliR
tnY13QDcLzaCYSNMtbYRnJoNBCtYly+2wYLVQxtwFhZ28IsVtWBRVxTWHM1yXu6tBGvYeHTxCV7I
RBvhFZDHjQKsiEZevjAqsbqMwlkQYyMsuDSdLCBGOhtYexWLht0RQtjcCGmuoAZpBwLGy11KizAL
gifM7AB768U2WLDqtIFDdJ28WFELFnVF6bphaeTl68FEVNOfWHvAy0b2RnjZ9HGjcFb6BtZeJVaX
UYAF5JMbYcGl6WZhWf28uHuBVCyadrdsbGyENFfQgrQi6yuoq6qCy3WfWWBBJVb75jd6S8dBHs/K
UZazBh5Rm+DAt6CKVb9MjgUj9ReVOOpgv4BqmGd9xW4wm7lQwAwV1CD8hfkriupDwjSItADranWd
6y6rEKhATuOidF2oRgbA13WvWPSh87q9N2+GgAjyC3XQvl8Ac9BQwT1xscCOaAcuAQiIPw+TZeIa
JqklZAwV0guNE4aa49e09I9iSZOX31kJNfLxPBUZ+L6AN6JJwvLBb+OR6x59Z8G4pCV7+25F4rfx
kgR8LK4DZ8ruxkE2YwI7AbsMapcJ9IaNh4reE30QWZquJll6Lf9vCeIgTsM4vZZgP3Rh23NdKC2T
ixnLRUX74c3gJ2ph+E5dsRvRAtbc5CYujnhVc8Bu6G2c5UNt7yGD4IbmoKK0KN9yVZq6UOXhxVkl
8e6NS0zwSqOvJkPqB338oA2No8F2h10tbajw5ODvf/+7uv6nQoMtCAkm5pHBhuDzi6pj28G2aemQ
WSKsWP2ii20FPtRPSRKnpQdxOb/nKB3HNhS7N6UI4mGTEkGajRSnNyXK/AeYbJMoUNNsSDqEelIy
dMzU2+kRpzLJVjdwKYmuINyLngl7khlIt//tZMI7Z67LwFfmZeU4n88Wy0L4F19PxzmdSj8isB8P
qvuEE9ng0Yj0g0BsM2CSBe8p5rMccoy8BQOYXwPbI/EZbzEuUNXXnBRjfOH/gwVy2em2Ba5eIytR
Whym3gcmirSIRoZkwW5pMqclG3QjGGfzPGCiRS0CwJslss9wH3unio3jnH5j4WWZf6iIVL3HPRF5
TctSByOZb8GHAjXUBYDa6Is6gGxBsJjlWRQnLDx6HP2luAwi1BWjRZZuTiZbeygShp0QNu0++7KN
dQqJUS2An0FWI9OgpTD/fGktg4fYDmgQ+MUqsfpJjRiEnpXUC6tDGMj4DrdyypP0S5Yn4aB1aYdI
yytgV/qSAxCWi1vrXy2lOmQljZNCLnuIMoM2AmlQvonwkqOfaMQPnyNaH5k6gZtoHW7bBNxOP9yE
WFBftDAdJWwKIX4ZvkYJLYo4kF8+KYDwHJ5YN4gJiDoCiFjrCRFFRrAWIoTEGc3ZAhv3aZ4TXGZF
LDq5D5Tauv+UXdPgnh/PjOczfiQlcgui2134sWUDftQr20Gw4WnGiv+vk7NTSflqnqbcNfJ52q3a
ivWbaq12yCXA8jjbpirhGpDmYtwXrmFGj8Fd7GkPS4cGaqgdHsdtOWtgI53DJr1ga3poENqEfZgF
c47kkuZFQ8/FcZZf0nkBeXDO2ME8TkLIr0X1RQxdomreLNWpOYBL74vL9M3Hcc3m09kk+8bS+H9Y
fppls8Gjl4/vU3liNS/OYNW9U/0sS2oOfgnkxqzgx6rSP9AjIhGIddjoKVJg47CHSL3EERmPbqxH
LJag2Rcxzzifj/gkAn8Vh+m9sSNrvbbFzoKtntiZicnj2Pm2l676C3w7F7+PyxyyghNIV6pC3rbJ
WnBE9Bd6bXs2tUyH1WLbIeNHZOEhLWk3xoP7khUrnS4u+pLHkNe+aVSc79R5WsTXKQtFuS10CwXI
YC0PWQFyDffaA23fdyKtpuEmKNEp4cwGT2BzOLbGrVUM1ocK0fohMsPIYQ8RnWY05IiA1DQunwNK
h+g/aN4ue0kGGJu0N7Lf41Juhx2oYF/QwdyhuvMnXCnKJ25HUZakNBmq3gqV+5WHHdj0BotLd6dT
17HBNgT342mDj2mSJ/fbKwb7fQGyyGmBnAUsvpXO4PKjWv6LTEgEBsSbBJ23ckCI57CE9AOELUKp
BLRi1tJEAxbH4WgCxuoGzh7rvIWm92Nv0MC01IVapUVHSSxSGWmAkoX848Ea73nbWmRQzgtPgRUw
6CIrFKVpkLcRo58TW5odaU85sYDaBQhrdqfn2iZswsTsDQWZ66GEYJerymadYAzUDcaxuQmtvmB8
57lgam274IaFV6wQ7vNmjRHXwTRgzyT9QrtJDMNAahsAvVtgcN00K+PoXrpJwX37Cy261bgMTAug
vIh5QLHqEFiA1emLVUf6o1irIC5Hf2p5NqBkofxUtt/BNGuQccfT+9UuPmE6qiXT47mfVySX5o7D
Smcc30VeIWybt0qlF7t7F36RcC/b0/XSGAhf0vsEOPI6R2RYPPl+gEbmAbxo0FFfOQ0DP1POhQ0e
lg8/KIyN18pCCMjSqwCilq0zWqs3r54UpH3lrzQNRXPvGSJWC8ICr7t6iN8kEHf1XpUQZYFvsEju
UPzKJqr94pAlsL+Uolqvxp1aTrif5/Re7Fuk2hUeoyN3Ur42GltZ1xFh83CQQUJhqJ5nGjt/tuav
Fnup6vFNffX5fhou2LpZmtzvB3xG1v3q+UkWfPPi9BYyeN4jcRTd6IuG+HxffyES0Twgim725Y79
6Cnukkc3hq+iUazoVk++QUSZ6rXYHj50h4E3Om5cA+7twWfiy2Wgus3isHZgZGNFt/sC8n3uFN5/
n2OrwVDuM17Vi8KOF1ayex3ee3TbdgmkG4ru9AJj21iDhPdpMMgW9lkYY7+AsvDo8vfgEyISxSwT
I6rHt5fIbCvy8ndCWh9J6qN5zie/vc9n9PtRQxwPi4xNUwzYjpLYD6vD8t3wHv5aex7vOxjrmq96
i+u9QIrBzyazOT9+sRU+ldeHJNE02K1XJFtq1y1dMXDfxYCsQL2ap0mWzQ44Pd7pZN8hxV0oQHAZ
1NxN+p48GASOjZDJo9dxNk9DWTQ84GgESAtCXa28mY8j3y/OH3kwAaX0Dm2aZXRLMGM5H2yuuk2W
YvSNU1YEqezZPCljuOE7y6typ0EYyhTF6BuCrBBSxA7C3oLyUsMWULf6aRjIMyQixtWn89OLi0vv
ZOyN9k9PT84/ehefJt7kwtv3xhefrkZHmnd5dHV8cXXmHX86H01OLs49T3RWFMPux1UPIxRIrvOU
d9YOMylVwY97DcNUDKcvRZ1EdYrwH17gYUsxtZ6kAgYKrxNaDr/zk1VT4SOHrQc4ug+yq1F8K9BA
2nyeTlhRDooyBNt5yHV9CjHKK0Qz6ANPLN+pqy/5316Z07gsxHd79S95XAhomeXyK3Wv1r41xcFp
E58oazUTki4T98ROTRousAPOMctvq2aoPKQlXbyQaMmapCcvJwDoYeOOgcixa1m3PHqFANvFlmAE
bPW+5nHssHUHP1vrZo2w0claJ1DL8THtPqxZQBlW+eQU16XeJsxRcOJEB9KmjP/3SdgR+9te7GAS
GmA4McrFUS+HuZArprOAQCGetfG+QSbDkibNGinb1y3TAJSex8PUX+L6nJXzPBWbnRjJWlGbyQmw
Brk6MMvxQ8Oy1cWF3t1f8hfZFSJikqoXOZ9AUSTkbNAiS4nxo2NrtT11Z0pTes3yH1AQi6j6TUz9
eX9lRUMxz08CbN5HXe3Y0+t8tV9jZC5U83yCVhiELYJLBRl4qSCydS6hb53Exo9IDFUrSFyw6R1s
Qx5vFUHJ0yFv8IQr6qYRhVqkpjTNioSxmWjoOAsxg19+2UXdQa1OhZmEaVirbYPlTVxUHu26grAH
CdGgvonyQyDXDefVfF+tc7G6Snz3ASXveO5e/STNTdUyWkOVT44ehTosQFNWXk8hfg4sDuiFkrVk
QhZv0FRgdNGR6SuibVKi+lORjlTy1DDO0xjCrcfT7A/Li/icShyczSHr3nvTTHh+TKLlIU+N8u6N
a5rt+cfnyIMhE1hC5V7/KS3j5JgmBfvpgskD5DfL2ZKGeBaRA5X9xEORsxLvV0ZnYLSAwrZ1zf4p
drP4sSfAqDrMkOZYfWWywshuywQ+HsgifbyQTp6l6HV2mjXsOwAa6iF20Iqd6ChMaFHTE6dfNVwG
LVhvh4PhHo8BfMVV1YUEhvkB6pIYmBey0mHfmdJQDyDH3wg4MQF6yZsjg5eQkwNddks0xCfUtJ6i
MRxh2UqoOZVXhVJvlmff7z/UwuwcyH6QwADJy2R49yKVvuVxe1mh6/wkyPOiqotBEw+KQObqfGof
ob45hOOEqxzCz8J7secjMajbkxKiK0rLosG0xcBtz0zEQGqb0CoPMd168t3qb8oOe+9ExYwii1dR
PMUtrnnRPOvKUp5DiPhkSUh0IlpPdjyje8AQ1uuNCF4xxwHUcsHNZSbUgRFuZRPP6W8YLHjY30DE
MFvb9gYaHM198+kWVYCpCflmu0s+kPYUB++rIxTOUrbFQQ3NLawNu20h5jDETK7d87H0J0/6mOxD
geeJ/WMzi8hWN7aIHHWzi8jauvLF3jqJna2TGGnbJ/L2deMQ3j6Rt6/Bhravw4aM7RPZ3D6Rty/3
QtuXfKHty77w9mVfeAvPQrcv+8Lbl33h7cu+8PZlX3j7si+8fdkXthsd89HxOAu+sXJ3lse3tGQ/
oA7Nkqf6CQvKlRL6NJCBjEFFM1qCOZNzM/KNRP11sLYFSzbXgtU33ILFP5AhmlEUmGrBpnR2Azr2
ynjKQjFa8eDI4vkzPiF/7mw147OiLmc2kuxODFk7PzI9hOozyXz9sNoAEdLtHzHQGlPrmzO1sWFT
E62xAgNQLp2Hcba7/59yIPz1wOr/14GVtE6ZZYmffd/d539N5B8N7WHDYD5WP7KU5XFQ0a5eKe6K
E/DVuS1y9NZZ1fOZhISpo/3LJuXlB/KBDG07Dq4Ieo2a2xI18YOoKV4Pv1vwZzjnCQv5K5TirH8C
Y4S+CYFlxmcxbrzglpvsB5M5ZuFaMsffL+9V1CzT6oikZ1yCdSPXoaWDTtQvQOAiHQGtuHpQBekd
0fMpUg7R1eP4erzwTE72iiXiH5/gNDvD6ONETR/7TBBdmOAYTHByMVk6p0HaZ/9PIzVszNQovpZU
zuQsu4lMES834+bW5tzc3rSbk9eIti0RTX819baY2oDNSzwlvj8vM/6vnQST1ZuN/xV2q6dHKgk2
DVK9CExQXG5ZrivclO848m0AYur3zTs1zOZ+wpYD1/K2OL2+lJCq9zTz1931HJYPotBhWIK5pPk3
oHma8Ycy4fclLJok9/ydSc3HS+ULlfgLdcNTOvVD+oFPTauD4d7qFXMPLpHjmu1L+D9R9IU/L3yf
0mkcjPgANH+XQW1mXsxvrhDKlwFoeu/ReRIYgaM9FJj/fsWKeVI+QxlSUnHd8vMDPk66mlyX75s6
BUH2Bstfnyuv6/4tEfr622Aoh9F/BjMNuO112JgTW9rrZ4Lp7ST8VSU1H5Hv5DR6O4gfRf/XcoqY
TvirUyvi/MkCq/eTBUFgmKbzONjjLH8U6rj6551EbDSakMS7Z6y+mHTdtzuDuOuKkL/CwGrQOOK9
lR/8u6e5bibeD57lg+HCG8QzqGDmFuXqdYT9HywAtDgM208LeYvH6vnnnmxbe3fybaoihu3xa/hb
Aj5sQM43lVVeSEW+0Y6/KbBjzl1HvR9rANVoQdDQyoLs4vdNSN/9ePUGCO8tng7gj1c0PIm/UFEd
rHTkIp27Ts9nI3BAbJ/W0C8IfljDduHA2Gwytxwy7PvO8BBHvsnkKnvw6Miqe2bYtWyh2jSHfd8n
HhJkAjzB666MJmvZYdtZl5xAsjjs/0zD+gct9M09aGFsOIU1X1PY1xT2NYV9TWFfU9jXFPY1hX1N
YV9T2NcU9l8rhbVeU9jXFPY1hX1NYV9T2NcU9jWFfU1h/5e9a+ttI8fS7/4VesxsgzLvl8ZiAV4z
mXEm7naSmddSqZRo17YCye7u9K/fwypd6ibbizUGCFB5iGWRIr9DnvOd75CVaJKwk4T9sSSsniTs
JGEnCTtJ2EnCThJ2krCThJ0k7CRhfywJayYJO0nYScJOEnaSsJOEnSTsJGEnCTtJ2B9KwnI8SdhJ
wk4SdpKwk4SdJOwkYScJO0nYScL+WBKWTBJ2krCThJ0k7CRhJwk7SdhJwk4SdpKwP5aEpZOEnSTs
JGEnCTtJ2EnCThJ2krCThJ0k7A8lYfGs3Ba7r9Vy9jskgNm/tJztW24eiodq9kZytFg//OXni9ls
W/zx8+y41HixKJaLqlpBw+LYkKcVlSkorcA/t+W5Tyw7DblNShC7uWXdaiGwfKWocB5rd65h8a03
u6mWpP7EaANMMtvq3vT5TybjrRlpyGMRPNJgcgM5TaKV0rpuyZYQOvIRkhtYx5KirAqpdW7guQGw
rvqzi5EGmidZf2uPBTy4UJhAEtyubnuzQyOGjF1u6diewFgXV5sva0gTM3/96efal+hF3G4325nf
LKvmndMn5cXH/B8+/+PxblFtm0bCLy4u3Pq+2H6fvbsrvlS77Db7jxFMqFhkc9Cs/SajFMya/RQe
7779Wt0vq+3HbQWOh/8y+0+NWQhcRkQFCYhpT5HzWCBjLFZCyWBj+K/Z5efN7eNdtbv8/OHq0/t4
+R+X3bE6GDinQwzw5mqlZj9BFP2zWmRi+VjtHm6+ru/2oVWjMZLr5KVHlgRAY5JHRtKEtI8EKy9l
xHgMzblRe7jUEJdYjuJ6/PZts31oQyNRk2g5RprpiJiIDF4Zh3gyQdAkVdDxBdDaA3fQ6QIP0DGy
FBndeXJ+AzXPT/Ah+DEnc/ZTXkMreOA+ICIDAHVCw2pKjJKJVkZhlbdkDGh35PlqW9xV+T/zvvxc
ATFAqrq0vT5t/EKYYoBfiswKizZ+WIu/Q6U8gltIapXVGgVGHOy9ZOCEgsACK84NsdpGMYa7GXEc
b9PWxqlZKQc4Fyu+yBHSxXlugeHjSRkjkUvewwIzhyzWFknNiUgsMOXTGaDnV3bf2IJKqFwNAonQ
BTY9l2iMvKq+FOX3MbxERsIl44iCA4Pnmoh0zCGOvXAOa+PHPbc97lPL2/RoIy9MZQbI4c1lb5H3
X4mUX/812L/aq+vbxy/v7mdvqAL0FD7fvAAjkohcc+ORtBSYIVDgCMcSShJrjyM3KWTvuKmz9uXV
erEFiryMfzxU93u0+1nm/1P98XAJRQ20POwumxlPzUcQ88Xj/fK2OvV8X5Qfbob92navVkU5sHu1
Khvngoi/DunXd9dzeyAWI/FcZRbmlBsVA5KKEdgi65CJlCLgFe9YcDmUh9alw57sLrPvvIVk8XVd
7sb36tdqt3nclrDBAxwtEyiReMBDlChMe05n34f3H6/cdnP/ZxW269+q7ewNmXM6B/mEZvBqnndN
a8NUlBZp4jBiWBlkXFCI0BgDT95YZ5/etcE05/Zl0LFjlRpyPyUFxz2rGocsIRfDMvrN3bfNfZ4D
omqePwx/g1EuaaIlJEpwRYoYCxiZAH/RSFKgIhAlwtCo02iX9Rc/+WaS8vD2wKBTp44lxUoMLSmp
6PFsY8nj/fqhawiZg+jOG0QYmCIhwwqSDIoKtoYZSG/WUoV0MsoaiLcgyJOmZL+z+0U7Y8ixS8eM
lWYDMyhmauhmvxbLanP/Lw7d316ddzWgRsDLwNVAhCHGGfCzt+BvVDkO1IExN8+52shU591tpPNF
xxi+GlooaFFzgf34rvX5Gw94DpywNw1M8iYlyyMYQlUCR4OMqAkGb9OCWBUckAJ/RZPOQbpo0OdU
LoHWW+nz+CZbFhz2DbpDncuA1GgT/VxJBhrOewz4CWRL6z1HSliNhY8ckxwoj7tt5qTL/OnWXNrQ
tiQ6vAnL0MsifnO72d58vy9nb/jc1IFa/8wIkgf+AX8AJQL+7R2FUOUGPCNrS6ZD0upJXs10D4I9
V+b7r7g7Q68dLt7jGe95bO7YygoytFXQZR0PsDpvr663my8w3l2xWN+uH74f3QWcJfuKjZAxnEAq
MgW+ojyIZs1BPYF48pQpbviTln74Vt2/vRqH3HRfN7njDJKONWK5HFojSV/M/lrdbR6qz+vq98Pi
QuqvNxAEcWZaqjXIdgOmJJCygXjkuEuICCE5ZoYKxoZGXTffctqybTjPuRzZ73fRNUCOWSUP2f2u
eihu66/r2T0Ud98OOwQfmuM5b2gqxGiBqhRSVoCOiYkiy8EtbYTazTt404mXmPT2+lOm4fUtxPPJ
lnMgemaoMTPUIKzKTZEzHyFZiNUBjaH6ViBOAs0yJYE6twZqIGsYKEzKvFDkGZkCY54LC2jq4dRD
nEYziOV6uTeL/y5PUkrqHPBBiCAAJiLJgcdQCzIXihPEeVA2RQn1rWpRTm+U9vRFYYbsUyzIcrns
Zqj899+u49vM3LXr1hIBxJwLsDIiq1WVFHJA1ihaYB9GMIAxL9nl4+Dja3ZsvuhirIbAy2VVKwSw
0l3ZmyN7EElrv3TcU6KpRCI6BkwpA3KgY5C3XGsJzCKtfJopy7K6zYeb1bME+VtV5uQy2q2Dr2PW
ioqhWStqDtH3rbib04NdNDuDTz4Q0JtIKweFWqIOOQccAqayqKMQidiuM7TG6M1djMxtTC9kbqpi
W36t69ssS/BenmQsiQgDxa0GZeKhCJMJQgfqLhQdcUx7E5Jjzyr8F6egI5DxnsfmtpELrIb0tqCc
r1asbeQvj8X24c+mOCYNOXCC54SDlcxHq4ARkWQgvZiTkGql1Qh0gEsyAGNo96SVp8HHkZ/aL7oo
h76xYNViVN6Pff9qXxgzhaMR4DVGSJ8PIygCye8RtoT7JC1m2jwdDq3BzwRvq0fHGC5WQ2O4OkqB
sUce3jDK9RyEFwEDGj3sQd+k5MDDlAOvwwEcjkFJqYAfLRHW47bzN4Nejg/fgSeIGcKDRFy7CXS+
/fOumIsjwdSB6DEThjiUrABx4oGVwfkJAh6UmDGA4mM3ENuDdGdnfDi7pPKwOH+7PnIApKQ8uUoB
UhNMDowMPqlASmuVMPxKvIzBy0SfTlr1Oeu7Dy8oq4+TX3TRqTHI+sDHzcxzd1J0FJIurmVdPtHl
2gckCYdEYgG3Y44gqWTiVAXqg+yuXHe0LhDOhkD0kvVVWfG7B0u3xb5QqDWAgY9pzmsm48ZQYNVg
AtCZjBFpC0rAaAP1MI5EczlWM57o67I/Q78UObZ34OvVUFQuDK8OW18+ftudMgBnoo4DQ4Tm+dyW
1isIxI+sJAz5SCnVULoor7sr2B6nA6DQQ0UAb5IeQX7bru9bxDu/zr/nSKgTApUy80vUIinsUVCB
Q3RGgpzWFnmSBGbJGB/s0+mg2C42988mgusulnavuqlrX7EYsa/on9rF9C5fY9wftHpeZaaJwMRo
FEIuVb1iufoGexR3jkEVCJX5SwTPYexxyIfWNuoSmGeAutR7ujyhrr+RtsX2dXJWDOgS/ATnQzjI
WZChHEg1+IkYzmf9IG+RhrBhoB4y8T+5J+0pxg1o9+gYASlsxIiFOIibPSnvivtlHvzg40D4udgG
8NRK7ZiBAklpCUQBmheUOkVCguiFiDTJ6afovjNyB9piNZSTZcn767uB+rG8zT6hGq/IPzODKZg5
MYksxvm0PIVcfWtkIo8+H+liFZ8tTP2ZwrRp68Bd4nIId8n7hwa/BMiZzRkzw3kBcYqCQcWBgBRE
rjU5siQqlDQNkQSCZSSvflTwSzgjc0LXJjNMemWF+/LzRDnvPtQiFOJzni0kRJm5aBzFCmwCszEf
hAB9E/B3bTxkZSotOAzGytGn0+GHs7qybmojX2I5pJQlXpADZxePD5tj3tOZGY0xURKcECfJ5wqO
IRtAMovoMTdOClDKXb4+jdGZmpJhSC0pJb2D0qvi/ou9L26/79b18ajay/bGe4kOFMp1wMDAF5jO
eU5xizCUD4ELjrkSr+4VbUhnDmRaPTpGq3KY4pc6nzmuBkXr28/2OOnsjQHdWIdD8yLbDpoxAK0j
4z1ERFKqqfZd0NE64aQ37MVFLEz2RA0LrR0z9AKPmLHAgyOKk6iYvVFUNxq+eQEWRBZS9IGi6PPN
F+UUdg8KclD2RnLphKpJ8f9TdLV7dEwwyxET6iuw4fHB5+v2TtCs4GsGbZQ8BKR0Khhk69I8xHwK
ZoFGIRw8TkBNmr54H2CqJ/YBWjtGFHR4BLOEdLCqBvtgP3mATqDabei/eZX1osaeGIhg6UO+AxKw
CZ5ShCkIHiqU916/BP5+kvPbAI0XXZxkBHw+gG909+hNHDh1lJ56JClkKkajzMuuIY9yywTBjij7
mjdx/Wu4I86R06dlNXgcoITZdgcHvflabKtlWt9WV+tdpn8+53kr+DzfJpBAbVBQCyqlQaJRAaRG
61SHLdCsJpT4VzyB6GA5cwzR6dM2H6wfZjx4s3yCAObpJv62v+SilNUVVGbyw+u6FBQOclzWpvlh
l2QhpgxsboCqMpFIjDL29ZbggOdMx31r12xajZjNi0O6rA53Owe3VTpHWDCCBiuRc8ANzDsJxRhQ
RZYthHjhBe+V171xuhiKoYCqgMx6S582ULrVeS3Xh6ZeaWHyIhObBQZGECvgZzFfycnEEOFaMims
jOlpgXEaeWzlfKu9g3vJh2u3ouAyZQf3b3U5P3uja5rSzTWRSI4Tmk/jWH13CKGhcqZjRuHkNRMa
v9rhZz3/eLem7aJrwHLEqkFN9r56KGBNirrMbCQMZLo5ywW7SBwrn+/fKYda0xIoDWBMBMI2OMwp
hrdfz+sPSM4VQE1r18ZibOdWRU+p/fXdKddDZswpUoi8fZAdJeyfRz4Jmw9YOUjaxFFMQXmbr41M
eHWRdkIz3vXU3rV1NRTEK5ajqzk9e7z/fX2/PJ7qiXnWMUlGx0FxIh4IzU/wWAQCjCMQYFBduQhs
yUaLu/ZoHRhCD3XiSqzIiDrpL4z9eAPAlMqVk4EMkzW7UiYaIhFW+YTbW1AoBKgoQU3qHaGWOvnq
GwA4ziiZjzddW1fDQmClje7Zmr08NCFE64c9OKkXH5KkFdwQJInM54fUQeRABtU8RuxT4M4/Hz7h
bEQcWi+66IZnrKsyX9F1Tpo+r5fV5ukzDa88lcDDkBREPj+E+oVCJUOk9TYwRWJ6Gnx7inED2j0u
unj1mBHmoL+21d3mt2oF6f94npGTtBA0JmYiJIwAJZdkUKpiYRAXkDw8Tdp0stnJ2fvj9cAUI2Do
8YDl7VXvQl3hIIjkDGEO7pxPnZFOhCArk4dEpwV95gbg/3ChPoZXjOGVI4VcPjst1vf5qRi+P2Ek
c94U+ykfyCpMEfGAnzkohYwBm7yKSnjmOCf6haXDcZqz5cOxR9cQhUcM0f2zC5/yeoX1tiofNtvv
dR6r75aI4fXTPckIqSgSIoIhyUARRxRBImovpI3RcP3sbhxHf/4RjvSC/r1OHasrNsKvFWcHd1vs
7qA8OrB8tlBFwgXmHlmdU7VQHDmgfSSCSNZ5RQ3tnfS3xujOzfnY3Powd1mUX48hp3JpYATX1kaD
qHUQcoIKZKBkhvrAKs/z+SFXoyHXGqoLYeSkHN48PgdZ7lbLIwRBVD6cqmOfJhyctIgwkOUMNhvZ
AHUYVPSMB0gsRLPeYf1ppB6CcgxBv4BoCbfmVro+Fcyf2/+af6sf0IT6SATQhYnwvEISacUFSskH
B+nFB/VvuR5v2nqWrkYsLfChZvhzTo7PSIBsahbasegcpwmBrGAgDLVCBpYeynMdMQ8gGK3vLvRx
mO7khRiZfFX0lzmCp+Eczqp+sCc/BkEVpyiBbyGmpUMWvB8lIHhNXP3c2+tJUhvPcFbs2jImzapV
eXDasC6+3G92D+vyfbXb5X974W/XUMKdrjqzp3DKmQM5mp+2NtmFHTIeZKkRlhJJGXOmF8dPj9uD
OFINrLgZORWo/+FcXZ3lwmtOsl4jEoQB0/VdB5M+eYjzoGDXQUAjRyVDQoYArBOw0+HZDbjaT3Fe
2Bx6XHTxjqS2VQ5N1S9pboEd5FxmpQ8/8j0TFkQrSMM65ISmQBdYS0wuaIAetI7SsGfuaGDU87XJ
bRfpYkAioMto/yHV07l7tvmfV/Yf+cGaRo0RnGMuI3csF+IMqQTMyhgDBYk9QZxRcHYSgn/BI955
7POrnVsvulD1ED+h/EANCTL2dbHdQVI/+LDQ9TpTqayxkSNOWL4lgLJDh3ypB2zsjRRSp/TvU/Sd
E7M+6IuucWLM4uMBytdqfbcsblGxuz+yIhcs66Wa540mIXKcn1SAcobJ/OBWNDQ/S2kJEUH6YLrR
OxyxA4gPT7Lzm8fL//312/J+tztWfZKKfK3H6yfuCNQCBraAZlVAJFRW4EZIMA0KQUtFWHjqWq81
bgeWICOwhCCnx00/9R8wDcqKXOOxyHx+cDEfHyoBtKHBx6UzxrvX0sOfxhCXxRCxlv2nk3ZV+bhd
P4CAbE5BhGL/S9yV9bhxJOn3/hX7OMAghbyPxzxtYawdwxob+0qyixKhFlvbzTZG8+s3IotXViXZ
HE/DCxgSXZXKjKjKjPjiLGEOQdLMs1IYyOE2gtrhWMMDwhqzwgKACwP27HXp8XE/+6W0qvFuQ/di
uJ/TvZiVwozxfDyA6LJlqlaFgN2fNKB3hZhdZO7QLYXeSyFY5hHAUPrDSQLjvQmpMz8MgmwzdwqM
JVyj109S+U4iuUVIgOk6k5QATgBeA4spakuidgHsEJUle9UNcyG0GPf37hrK5nk1cFEMkzwpVIa7
h+fDdrb1sI/p9TT5DOJNUssBhDAsO7QKQLAGDK6N0fxqyLyZuKVsnpJQL3aicBMZCdLIYkKdrSAp
KZMEgGEEanDi4LCVZEn2MVnAEhKw09vI4M7Ahp+16/ADYGSyMT5+/7p8PExUUyDxAFo6pg0ZGorR
AJkD4qLCMrEqejh7YNJnOJU23hTFaha5cA7Ph7SMrOdij1fX9gWFXqNilnIwRU8qnbN3YszmBlFu
TPGZBCsUEU4AMKEFtEcqhfLAWep5Hi+E5uoyV4Jz9f5dQ/lgOuwMx5TY+NuHj1ilttlOCloPMl1R
ge4tUhMCgHyFlYGJaECsBnS8DJq+jUy/QEnDDbdzSQkXh2kOzLDabDe7JtMXtCPzIGxIwpoHUWSB
NwIwy3nFgzRRZB2uZr+czzkhat0hajlMdkzajN0bnr43Pmr0xoBpWzNKKfxSYPLE4D08a4B+jsGv
oLASIDOAsm9o8szp6f+T+biGezHPtsSLR5Pow2K3+nyyLzmqAUznDAXMd5PRX5oC2PDAHeBeUK+6
RKmUbCFUM0uz/tLMlT5fWn70Izx++37uQGSVAo+RJkz5LqKAYJfwRwigiGTUqiSAg1bwvjujma6l
ZO4wd3yl3CRGkTbPX8a6/LOAfnVlVWEomamwLjjFVeKc6Gp0w3EjwTuwFFNhTpXMnL7JL3da7tLr
PdxvmKkl0DNm9PKgOePnzXZ4Hv7x+GXYbv51Zh2gaWAcHC0wD4igmmGqnyWOx0SkVtQwl7VNk/fb
n66haKBzSwUuTo/Z87dhgK3yNKweP203rQYAUxEzV1Dl4N8onbPyzlJPCuw5gHtJYYQUa+IBVTEb
YSvmt0iy/Fip+qVHVKOWpsPaJ8B6TwCzhBt8+/PT4+5x9fgQXtbrWghZA/woYILPKqvoAH4pzL2H
E+iMZCRnsPOzoFLnfMueale4lDt6Pqblg7sOH4jKxgBX/OH9djc8rRcokw4OUDgWGDqWRsiaC6s4
ig6KGUegYUkC8Ei59FkL9mfEYVvVNSO45dd1ROTgVoeztB12FUkcnJ2AP/fOzlxycoZnohRuTxop
8SUaYoyjhdMgnUztQWrmaqlY9p768niif1ncbxbb1TDJjS9ZwbZLnIBtG9ANFLH0l5JYBCjOWkEg
3ig3vqXgnHhB3czxhhenqVIH0+7zBrPV6Bj+pbr25jAhA8Gw4THPyzBPfAZsyXLmPnGpk32TbOqD
gffj++sG4I/vG/7YPKsDoNZqqjt+GB7PwcOINRUoDle3C0/WGsUMCUago7YUABAJbJaifXKsOLDB
b6ocPC3T5+JsQMOGZnMoJPRqmlmLuYkvsCs+PN4PD5vtp/O6OGXBaPWyVsNhIQhgAzC7KDHOUO4S
M9SzW3iYrnE5S/J8VMONoXOFDhf1sSpj9TQM21+Gxf1J/0mu38maGgk4xgC9RCqDljkcGScVRlk9
BzUDVmSZHN35dBNqTI8aO3m2/3h6ed7l3xcPL9W28Z+G7e6Yho82LeUAspzMpGSsmHVYwYQyJXPF
glcAfcpND7i3UP8h90a2rEndYU0ONYcQQdfD/erby7AF2+AonjB5vPYn8DpgDwmiPOgCQZmEI24p
2Cvawt6nntrwh5PHGyk/p6Jhwq3mtolwg5z4GhbPZwVZR0EvGVi4jBXCAmZAFpYA7YFd7z1TxoAS
sN5ds06OszYkLURnyyykOpC0/BcmkJ6CjOhS4GBpS64siRS3ByA14tH3zwyWJcYYhJxgt2aWdv3e
e10sFxcccusmX2yU3oyj9E7ey4INNExB442iUZQ1SDcdgivWsELNTV6564ljvjOuZWjFOgytxMyf
tF1vPr08jQsdvEqUVx9ytfRSDiYVR7SlwI/B2p5oBaFMa2t5KbT6zq/4lWYLTOicIw4xrI5l6D/5
n33826zCV3IubIY3rgOCdwcPPBS0j6j0NHJrOBN/UoXvOYUNa2vV2VNrtZxluwGWQHKenzdjD4KD
kjGuujWyZkEqAmYUZpBQrLG3kQiWmeDBOftKicN8/ivlPM24CTdzvS8ZHfX+Dz/lKmyOzphiwFQW
sG0EQ/epSJp4USSGXJyL2SU4uH/YGXOCYod1D6V3h/+/a4lcdCifvYexnvbY4AUTUMS+/4aoiZXZ
mySLCIRqQGcCaz7BIoskWse1TJQm+XoC/thf5nLa97G3zJFQIzvUG9mlfmyRUyf5dTtWbreFwDYo
7jgpHGMf3AcSNLfERiG84clQxV8vBMaZr1QB4+0JB6rHwTDh4P3f65n8MHx9fPr+frt+bLCWExbA
QCTZFxRDgAK8EIponhx6nCJz+hYoMFvkUu3PZFjDUM+3J/limgX0w7AdRrm3ePi4e3yqmbp7eCNG
GGyj5UxKSyR3yJbQBE5HIVIbTIe0Kt4Kg2dLXYLDs4Eta4vOWeGDPYXSRkuzdb2GwArziGwYZSCN
KZz2AODeJitKxJSS8mbpZWfrt5QPc6NRSjetMVj8fq67D/1ZpH7nxjohCbAmUVHAjgWZK0BnAxcJ
7FhGtbQq+PwKSPO/vaa5z0c0LFQJO2VB6/sDuDyo1FOOhuW1TL6CIQNSlmNOmchojIDxi33lcoo5
SJ2l9tf1dOeRatejxx0Tn374+de9A/zD8ARoZNrGB4sPTQyJ8GxrFWIGwKsAGilTuAckXKK/sT3M
wdF+ww7pE9UytujoMr2cJvrsHXTP37e7z0NTvobuuX1Tv/FHLRVInlKsrsmeYwViINjwhyiXAkd4
WPTbV9eNbriPcwrnvrrjoPZRLOfuCrC5+Cyj8b9Hd81//cVgne67Wpo2/qpyLDg455kkDBgJhlCc
+Uy4VyVTbn3S10/Ncf5L2Yn723ctmaJD+3qae7N6eHy5/wI6K+KPGu2VcHC4q7FJ/FGj6UIFgLeE
YXY0JiSgWW/hl1Sg2Eu26Xr06DD5BQb2d1v6151tuJDHgATs3gfYXYeirlrCyTNlWQbCZaw97sAk
xmMOmqJYzK6Uyk0bAJwmuWsX6mixheEHUf/z9tPEwca9A+ABUFtKLE3wyRHY4IxgWD87z5IR6o0c
bMfFW5JN54UvZ82ewsPLsHt83H1GDCdrxlX9e13tV2p49iAjC8euvBxDV4E54oRw0VALGOiVDhp/
P85/CTwcB9y1hNoO9UIenMlP8AAefgdFdGy1heEfrWhQ0QL8B8kptKfE6sQIDVxqrPEOZdL2p53m
nAK1EPMNp5anFKrV0/dvu0cwkN07e/TxuoOKSWACauMTAUGO6TsOwIqBPxQL2QWn961Xz/febL6G
nKVbdMhZicnrRP/8sNoN9/UQHZHUCRwaKXTgQRAQCNgTloIxSLHXAS1MiCAypfzWYMFsocsxg9nQ
lrmOYaupWHQKNS5WnymWWBGyEFdyHPurWWE54YmJZFQB2fR6id9rcKQdc9eQq0yHh9WwHpb7iOXT
sH/HB8eMUAdHEexaqgpAJ68k1qGByLAmAJzKkllpvYjsQh72ZNaWpNXcbwvIR00cNeeFq7hVats6
rCM7VMYyq6hHP4bwdmx7ajFmKRK2fTPmpg5W1ytjz0fctdSuOizoaU3ih5eH3Wb3+AKaewp+4DlT
eej3sIcfXBXPsQmL0FgOagQHDF4UlsUyLilo4F4W8vwQXFm28RZMh7UsatZj0U2yH/YhoFkhKKhf
dEAJdKhpTZ1KYO+BtAONZ+EMOJUzkcoWpopOlMlrwLa/xoTaRYda1226MvZDQ5ViqRv751LBSyZa
o71gCpg+mmPfeZNzFtnDS7jpse8nv+KbmcAHo+47+0gNs7K35+dhF7G24SwgI8dyYjkWKhQuHbor
4Vl7DABIkJ9GEG24yyYnpdNtDf5mK10wgGbjWr4GPudLMzbJMv16CrjSGi2wmdXukxoNamyWAJLH
1i6tKCACcHJ1o3zt7Awzrz5xxtqhk6L+sqnNDvBIaj0a90xgkXAhnnqDHWOxOYmORBVlpCmeBe5v
7RXw6/vLQubXJkAH5HUkZK0QbMTLpsLid2Wzvf/wPQ34GpqmjwCGJCuY1IEVYwE4CBrUvgMMSKMG
OCxvCsCfz3/Bmjkb0TDi5tXC9eLFqpfq7sJ/cHaJjanQygqQ6gx7UkUBIhKLggrWCMUYADvA3sj/
WTD+dL/lYdkRLW7mhm8/zPIX2DhY5V+bEKaEZY2RABQA9eRRgcZYU31ZBAnjlLoabmlmbklbmQ5p
98ciwn8unk7JUPu2QoJTkHAaHpv0mA2V0MXDiKFAoVWOijiJuJxN0i5+P/eNm8X6WFL2/L8Pm90g
jiE0puvTSFEkBTIJs83gNRqERspEEFzOgbDCVNJJP51mort2tbnla5b06N34+A3z8rv9RXVRQADF
ogeMgVkJzwEUMUhNoaLM8KZC+pOiD1Mq71puOhpiye1k932tX6Y6mh2mBn/w0Bhpsw1Y2MSwahS2
nQ1MYPEqZ4Jxo83VnOLzeVu6eEdE3Svawcb7Bgfs0IIUhasci1CM4RgGBojDaAby4Exb4TiJKpmo
4Bro3lcx3JXEmePtu5bMDrS5X8rDtvG/ldHHf0wz27ew9M6mUODpORoQKATiuMXad5aFzjqrlP5D
x2JjQbd0nLNg6byK1Vk20xB7l8uxBfu5eoglOWu1BCGQMFeYZdj8mK5iLXfSYz3udXk6nbzP0XTU
XUux67Cxuu/solrWjfTbWoQ71sIz77kELUxiqHm2GqMhKRPGpJNKci3d6z1k6syX90+93VK9mtvg
ls+iIcvF6svLt3PIj1285L6bV81BB4mTMW3DgSyCDeUycVo5AogUnr4K0tKb0i7DZKVzFsZ7dy2p
6w79Sz156j8l/3PTBgoO7fjwxwY+zmcwzQFfFAwUwOFNWJGeARxZEfE4BH09ZIALXHAHw52W5E4+
GcrrzkapQPv937HAcx/8M24Uhclx7NueDZJrEVzmbAn1MgE4ddq48upe2U9+ebfsBzTEC6c7xC8W
neZB6WXYpcXw9XF7SGk8P7IsaQr/RdCdqLyDD8RqaghQri3ob8N4vhWOzle60g9iNrblb96nEy+u
Z/x9xRkW2+FhzEavbj2HFqL0AN+Ux9RDbCkGyBq/ywICiQsmjU+eZ/cWCXPnJFxi9zSiYdLqOZS1
FtTg3vWHZYC/DJ82z7uzIIoae756Q1OSDkvZQXsImYC9yBwpMsC2tjQ7zf4fqxdbsluul3N3rXVy
ZolsvzRyjlYXGK89uFkxOmLDTVHwmxc6WCwYM6DjJfVFyCCEfYt3+357IfIAN+5a8l2Pp2lz7n9+
W73bP+wPiy1giK81ue10GpPTyXidSE454BfYYL+q5AhIRQ9ykTIW1Ct5QpPZL6UJTYa13OjO4Vtw
0esmA8f4nIESWQYRCOBfeNCeiAs9fpcLO7M5mWikwfw74uS6ALlrCZQdqpdHo6oWl+y9t/O2DFlz
K9D2CwotW8YoGDFgYNnMQ2FgxVgxcWPP5mupuZ+79e2STb8xlYbly6exmAsFmKitTEX13MED5FEJ
EpzE0JMBlZ4zJ2BSGY95aeq2r2icr3ChguJsxF1LbpeHKSj5n5/jfj8dQ+eoGzNnnCdNSsHAp1Ic
MAjTYGAnAUc3SJrCLfSfZu9Tf7rf0r7o7Aa4eNgNX4bvXz8ds145Zg5aYcB4VhLQBsaAIm4GkQrJ
zkajWdAl065hcz7XhAjVI+JoTGOCw/itwc3206+7zcPJPBgzQXyiyUewB/BDVWO1gHMOzFufo2aM
h+Qnlu2FKVuy7jsSeHk/lcBYWeOflpvd0zEvwoxdj+vH6sCw594TJWrSEBpchjJSUk6wM5Wgr8S1
J7NfLu45GzThwvW4WB4cgi9nz7NWj8joQgHLlSgtQLhmMEy84AIQpixMZgBtetIQ5OXS85sb0Hbl
jmmpv3/YPB8NZ1isQttQNOPFJFI8rl4whSRkzIZhIQbOcozqT/IOnNF317LQAZWr5ayO+/PLtn5v
fqQRd+vYeaMWpiVTOJgaBARURtUMBq31gigLlhMTCuD9bXiyXeSCHmgHNczcd6LCjio7qUhoSg5H
WLD/7gcTet9ZGn/U6oTg8Xt+2OUVtjx+TDawIok1yYLVqJOW9O3KG0+0XCtun3wmBDjsRC0cmPb9
tLrxS91YYar230CqP2qCKQvFcEmKxXyHmvFEda4tzrWiSkup/o3UunGhq2l145CWmfVcfjqmp1mO
2G3xftjVHlXPq/r2xs4IY4JCtpppwE7EUVTtVoNOZTYSsOWzTon5bluSjiaFZdJhmcsvZjbsrqXe
dliy08yavw1Py+Hp8Rl7NR1NtSCNxG+DVbNGADIh3itNMqhZwQ0tPF9HvYdJ+3Qf7rbkdsqv4aKd
hOyWD4+rL8daN1178XIJRnBSpGgsBlYBe42CYWm1VSxyGWz91u1FN+H5lBOS5nLfcaEmT7D7iYrD
0a4HW5rRbwtP08LxDSRmitkzIKMDTZLQ4mIEzFKMefvemkdyrny5YrZ5uNA91k/F8Ohb+jBp2cRc
1T8K7HyDeViGwlkWVFDidASDEaN8MZgEAuyNCuFnVEyYWPSYuD/obfxG4jHAcPjOYmFUBA7UJ2EF
fsMb1IrjnmSmQ4qBUk/77UFPszVE3Hcaa7iB9rqvV/dLv/WkodEniWG8YtF7qw0B0I5frwyZUc0j
F/Q2/88r3p+G9sF1pOLgjuWnhxD3426zPvMb0IMDP0kbUha4wU0eP9blsdQuKmOzcM6aGK/Gzs8m
bgnrOG3g4jQu+nl4+IbPU9R0QVl7XqnkJX6sgYaIxoLH7lcGRDQFlR0TADQt38Kg/xGWvtDLFu5M
mFl3mFke2yytqlcnNnkucDrNMdPFYbYFx/pxGSQ6wyXBztyohQAugMhPwV/IdJnO3BC2lh0Nsj5l
6K3++tfFcnMK0ZmxjQfnuQShyf/1dm29jdxK+l2/Qi8LJMC2wfslQB54aTo+GWcGI0+S3RdDlmTH
iG9ryTnJv9+qbqnVbLFlnZPB8cPY0xeyyCaLVeRX9ZHawkfHWFgDc6CqQZYgOOjCQAYwrV45uQAl
y+pWd472w/ztafFbl31RNT3SOlgCk/3ISlLMMAj2ICxgIlZ1SJx6Q2iQZQerX2JflDkpHBnNGzhV
qxB//7OnSw7owzzHTXKLW8wJo4V4G7khmCeWwlwItJx4al9qLgy/KQizGG4of1q93j6/PmKgcJ+U
Y7fKEx2DgfUcvBSXEE4JDgqPprIxgP3snQnsJOhIoZqRpebwwaxZrBCEBxeHaSabM7Ewf9m84RLb
Bi+3DLUuwAcmXle4Ww4tQhxMEhqGXnIwtYPk+uvs1vUkGLE0e08M2rgstFHIEqfI7PMnBHrvvpcR
xMmA/LtCstbhcSHpilnvFJgPOghzcn4cKPtIdhy4m0tdQErOuRSHfvwCUzK8LptQZfgoDSDFEgQT
NGdeUhAjYX0Fuxj8YQ6mAlJM8ypYVoN1ibnU3HvO/L6KUVd+/8gkl1gWmqGGiKWjyXM5dQhCBdUS
mgWEuAq3UkHHURhiHqaOVX83ee5YKlwUlhVaYHqMffX5ADVtmEsaJfS8BmfSgo1sBSzHgQvHDFKe
hPTVKPt2tedCLwtjXq463Xm/eENfas8fIiU9w1j9hgvNWg8tQZQDqTjYQJVB8EcC+4FGGZkMAw7a
QWmTvNKC4lTUFvabd/Z1k6/iCZNnolZvkhDhb0Rh1JTSBN8/6kQR8Wgqh5H4IVnDfRR1MP7UHehh
be/z4+yenORNmZfaN9SgD8j7tm5xk/0VwYLhK5NFdscmUSVPYEggDx3zSmkfojptJ/hhnHVu+NT6
GMiz/8SgnYURhYbJNlLpjzj7NNwWk5owJUldxUQQnycNKCGMjK7hGzIDd/1/KmR3L17WqsbaOWiV
oAO4zOZ1vs89wggizBrdWltOaSC8Qs6v7YlIgk/olLBSpZSYOgrV6pWbiyUKOkfLDiu1eHzpbDDV
5M4RPrGgKp0EJmfF3DkYwgbzLNjaG16HNDAAuxL6Fd+QAtTlhqjh0TOS5a13G9EtTqFR19udba5q
nxS6ThzPnanVCGJPYBQE7ZnGnNP+axgF2X74uF7vHsmbWtgoh4vDdCCX86e71+c/MqQki0Z5sN7A
LEBooQcXwAelKlDrkQRLaiNOA15vyx5BAG/vZlKLQq6ZG7EYpllqqw5ZJH7tPmEKvl8bLHCLjact
uXOkNa+JJBULGLUHpmhlagNKyIHrYKMVKYWT2C+3NYywX27v5u1ZHh7l3Kjl7W6kp+f1w/Xyr6f5
4/0+CFKdsZYYxkYPrlaFJBawzIKJBpYOxa0eRpLldRSDyKjD0jJhMJfigTBWLHfCLO/XL02ut52e
Iw1TQQPGD1qAdy1xzjmMfNSxcrJ2lZIxBBN4TLactC0vNJfnkBIILkp7aLnOWvrLAoWCZFopRkmb
jZ97zRF/5sERqomzLoIReKoJu61k1Ijd3s+bIEtNOOABu7wMs2bbAPF+UrdYRGGTr1OopEwIpiYU
XAsJbiUSM+mQmBcnBYBj2SMzDO5k0s4LeQNu5rj92G5fIe34PcxXtg9+wYz0jWkSwJVyjFaKI/Ga
U7DWCc8ryRvuVa81GfI+5oXlghQ2A2/mew6E9Xz9wPp08bYhmQg6whCuCDJUc5IwJNO6Ctzd4AyN
wqTBMXdWTC5AIVQQCXaPEZh9nB0jM2Q6UObBSdQGwyZMjFUzeWOQXmnDJYvq652w7GUZWRdmpUAE
aOGi0Ozl8JTsfDbrplqjQb2wBD40gqwwFttqB4apllXDXVsjgv6d4yMocSR8f5YP0UXBDsOLO4vl
7anTk02Ua4ye1uB9VEGDPI1pAPMGh2ktEXFnEqlHuJdKKnJBC/N5IVp88fmHz6un5ep19Zoenueb
LiqcStME7oIVIBt+MjABEf6nIlXGpwQi8q+SGiSrfp8hJLucN6eA7YGLXQ7mx/nit24H0GjZmjcU
zzuTqzAeCfeWDDIqyYomxaSoa0FHurRX2kCK24IUByRphUW9iX9oIaINeMoYo2oiOGh7UEDcCYs8
1rJKBnQpqQMsAscBriXDYSRJ8cGDWZtudUGD3eqhArkKIYMYybr2LIJBjZniYB7JympfV4wFjzmo
vHEncbZCsSPpvkIYiFmY8Lfzbid4xytNC5zVziDmKYqK4Vk/pw2zFlgA3BMjNNdgJcahvs1KyyU5
pNC2C74anlr8cd9gpxM4Du2BFz/jbQwS/kafRArCDFgegmEXEg0+MvNgFUlWCySRl/a0MJ5tDSOq
dnt3kkl7SwtNuBUH59OztyYfZZPPApafJl9N+1djsdQYBavQRMEEvNHDMqZCJQxjsgaXir1DWNaV
P3Ykvb2dyS4LG7wLecC7HV7n698+r9A9Xr3OOn9+u1+lKW6FE1B3zMNASJhXlmNKZ2/hHyKoTuA4
KHoaOqpU18guReHJrHWKHg5zuLgagxQjauzD893dIP8hpqhhVJHKBYtAOjAmQX+CNsfAt9owGzz/
lwDFvXregRP3nsxbxgrTRrFhyw6S17aTB42fFvfUIp+Ud0QxS6ooMNpI0lAZnUCJKlonRVMi8qTt
mGJ1J6bVPZhWquAGLJRUh8EbabZLTtc6dkYwJ7lQmDsCmpMYQ2IsBBkYhSE0jr7DZdqUORqokWa5
nIXY8YXSw60+pM1txpUQYB7wNlnD9s/GYInMgClbwVIFDgvDCHgEnSrrk4UqvHAnOSzbasapew9G
UiFZ90IdxAR3WVF6qxYPQVOEylnM+0tBWuNMDXY4DCOaam74ScDYowlRCulQFro0rbValY42MrZ0
eUbOeJvLBv9ACxaDJbmsq0CVa7lFrA22CtGR2tTMmdNG/rauYyTdLm9DIdvZAhyxnavzuFrMobJu
u8uqZm8RpmMgPiKgEzFMIsHi62KCYQIjPtQBTPCB858VlImwKPj9cHGImeyatN6SbWKEw85rbQOM
QpA8gp9TWcYxuThGKzLwtq0D/y8KxTk7XUE25Zc60vfuDxpiCw3h7GCzHQ+h3VubLmXvxQhvlOYw
ernC4INUI2sSR22vXZBRJHNaZPu+/GNBE3g/l/6QdBAuzof8LT+0jEW56DJyJbmBiecRmsikrcAU
hiU4CKehDdqfhgPbFj6GI2hu5kLPD0/sF0tyOzZ2Wo6t+3Rf4NiylkvLwKfwHB2L5CLmz4hV7QwP
YDb4ENKpowerOEK1BXf7zVgSdtj3S6KHh6RN7pP4vOhOtUG1te69TNGCERArYiOmb4cB5D00QCrL
anDzdCrBZQqy72o4klUJb+fSF8CtS1Qhqw7P8fKKWS73CScaVHgyPIFNHDF/eMSEJbpyeFpHfe0l
0cTx4abNQUm5HAW2LLiYhSmkWegTWO4gXIwb5LJzFfg5yJbjReWcS0g3E2tCQ6yD+3oQrkyIQRNE
qQmLQUa6l4f5BpEFHRJE7DYcmXWWgJ1eKY05jwPn4BV5UqnAnTFBeEePYgPzkgeyLQuyLbvg5vA5
zd7uN6uMmBQcIC8C+OjKYQ5VAkrBM+9gcWaOeAceZRhwcubF5BIUcOkw2Um3WEEvr7u1CquvhaXW
E15F63FfMOH+C1dVEFQGa2qeyCCbU7+MvPKCe7WkdJg86WLR52NSpvEO8VfDglbX0deqShKB6h6x
WAw9WO6RaTxisNNJyN/Fe3DI/hNZK+i88BHpvNtkx3SVd39lJ260g7cRB90Z8GRJSNSQUWLMBO7E
OOxVpg6yARwUlwtTSNawBJ02WHIOzuNbt7s9QmmTdkHtUaKZKpCQlEPHWoFfPShea0MsM38jUdr2
ZiY6v9EF0ReycFR399BuxbUCN3+gr8Os1R7Dh0NE6I6GdQfd7lhriWh4pwP7tzVOey8TWNwWPjzu
DeRwY0QSrHdDazcA7A7UlaRLoaGtBR0J/oHx+PVh5edKJc9IfI/xLC86E1AV8NBLfTtMNLVcrX/f
PL+se1wHeBzcbsJtyZKcskTBvAqYHZKTCF0rja2IUKqWtWDFUOdSfFdT1W4e4QNjYV4HD07yVhQW
SHMAiQUfo7UKWydStaeDsIJ7cH8riXnJYJlCh4ylisH6roNxKWpxonczbhJub05y+Qr6zmz5/DAN
9/3Tav7qHu5WPf+gy9iRUi1FDR5BIgrEDsRVRglXCVAf3uORIftPZewoCJo3tBCLtzR6yAQ4TsXi
JYsOj/Ysi7DGRUzdYzH3trE2KgznCPSEjFkF0eaFkJPlXNMeUvblHnrpek/Oppq9UYqYA/CGk0RE
unE1hp7bSoOUSBSeQOmMAWTzAnNxTKGn5jemkAvO/Rx+iOjpmjZbP7x41rLeCbCrPEUGTY2wFJIs
ovpcZTHyBdGyRIRTzeymliPJvfF23oJCZoLlfEG7DLvpV9ycWC0HmXVT8txjjDtBWlsuNWk/MTgF
xPJkwNj6SvbhQIJc+gUrSd8BUx7mT3f3PdEbdHIANxhVoAy4ZoPqQz6BVNU1d5KmSAxj+ZrdL6Vf
/YrdHn5+uNgl8Fm/3D8t3x5f9utGe5RMrNZSQ50kOTQbhEAgEviJOqbIgmQhmMFOfVZSJgQvHIGt
+FyVjkZzRsl2ox4ZJVtrjDrlMToRT7iRxVwgnUz0yCnJvA3MwLQ5Gc72Pq/kwWN5swpHnyu+7AIf
Mb79EPYtRaSc4V6XRORRBOfJ2JohtbVmLNlITTkJdVdcLkQhSRRc7Cz8/3ubv86fNj2qFYNLFEmC
Kpvw5BvzujgmwYUGlVML7bk0KlpSTls0LC8TRpZGmxI3PTD+/lyIbpnpTQocugRTkSIrlrCmsi5I
sAuVDl4n6C9xgMUvHQitlDx0yVdgShZ03dXqzw0ML9lGaAu7TRDpwNQ3HMSIIuHZL8VMhaD3ohI0
KvA/6vA+ZyOWPT6e8O4kF7DQaXrVucBXFykN4LIwCwWsU65ywilYqYOpTFKkSpjty1oWOBFfCS67
rz0XeiVKQg+n9Gy1CM/L1S+v8F8krzsA29BkcOsJVJ3FHKO+OeiGf6KKhmmhuDankcRmFY2ywfSe
GTRHl5qzDyU7//Xqr5ce+neXIzWBJvQY1+fBnIZ5hGTNFLxFQ8F85UpLT+3fzJGafY6BIFkjjCg0
wmjS6aP1w6Y3/USDXdYsRPAPYVlM6G0rzSoXQ105Y8E+AiUBvwfp6nrFZPXbm8ND+dXiZniY+cPF
1fPzQ4O9Ylv+RrMNy8EgGB4Q7NJEewgwoW0gdZWo8ZxGWst3wuhPDXzaiTCya7m7nTVvcVvQLstV
F2n052MGMLJt5DD4hVEFFauYEMnBaoK5TylYeVLBUkoZeJGD/n0sI4ygroIAq/16c794fvpjL0FL
wkykI06CqcYc5oZRqCkYaAqGpAOOKV/bITS9V8okr6qw1KwO3NF7ZAzZyaCblCKNJM5ZxhRCQCPa
EWDUOIWbTMEhGFenJI66ovtiM6EafuehULekSzV3fjFUnrHGVH3gE3MJ6x/3NTgBUfIKocdeM+fU
O1P2dOXZVT4Q2RZEPgDAo2boZWnfH56BlxacdTBRZVBIIymhAWCbwfzHKDrLNa3f1Tnv5GfPHsml
N4fH/rfkhh2QAmKQ2jF4W0wWnP7AK6Ic0hsqJG0Cn1OSGqZFcNQE9/Xgbbk8Y/SB/Wf6rb5l5NCM
v+VmuB3w5aKfp7z9ZIK3qW6d8+B1Kl3V4NIh3hUWDQL2fa2UhKloYFyetCvQr6Pcjv4TkwkmBmyC
Qy6fl/e3O9N69vb4COV/B60M84eH9fRxvlxNb/6awveGlfrl9RlJruDLbeavd6sGtb757X69u/Fd
0zub+fr369vn1+uX++V305aqvM2ler2Afzer76akf3G92lyvN931vOL3iid/r3j4T69V0ANNfQgw
A1u2VB8n3LB/rc7Jz5dTzPXV719kgPz49PDXFCEmeOf5dtp5j99Nr54384fvpZBn4nL6ulrfL1dP
m+/Jj9+Q//p2uv4nmirL6+e3zTWI9fbUJAuFypbbN76hBJ6b/PJ6v5nfPKygAKy8KxbMrPPpP+Hm
ZvW0K/NIHbtL/XqwiG0t06bdx39+vvh89cV9gL8+1+cXH3+aTra/r/7nUz3+2uzif5u74eOXn66m
3zw9P1WL5/nDar1YLb+dTr7f/4wU0N3d/TFxi839H0gUd/U6X+DwLfww8Ct/7P4znYTzKeaUxKfX
G9z6LLxDjVaDd+6b/KtHfgrvrJsNg/bVdfml3jsS3sHNkSd4vhlEIz/QoN07nLTvfLnYyoc858V6
FOnq4dNJ3KLrQauhm9eSfA4kBG+cXPba01N6R36Y6Nfzj9n0HxdX07uWbAu6YgG2+UAy1q9Hjr3z
TbtHjSNlOjVWZbLtfnbPTGGKzpdLPJGcQkMRUtcb7t9OfgRduXqYOrwy/fi0GPmupt+US/fhw8dw
dF4wy8/UVixKZPfOHbjTy+nL2PjhrKtHwzsN1dr0an4HfWnHxprMhlr/HUlHB2j2TrvxNT3/MPtw
pEW9esR08qlVrVMYci/r1bThpntvus2uXPhxev7FfY6j1Uh1xnafU0A9sw1M0HeUEAwb270D/fbz
5XXT2+6qPqk9lE4nv6xukMbgshkaY7KJM777ptROJ9fX0V25d2QTZ+ZyV2PzDnaz/3Lx4erip9mY
aCbrt+vri0t3Xh+vSLLBOx8ufvqxjjB9RkXT5IxedioL37mqf7063hzdLFz99nz56SJ8jEelk5L1
ZXtsVqBRBdX2r+76DYb4dLLVn4/t8B4b1Z1sU7A9/61l5Orjlfvw3qoH/tp5+5cVfPvOf08fQXuu
M8XTKpytQGe8/87k/wFQSwMEFAACAAgAtZskSgrfosD+SAAAM2cBACIAHABEdW1wUmVuZGVyVHJl
ZS0zMTAxMS1jcmFzaC1sb2cudHh0VVQJAAOmvW1Ypr1tWHV4CwABBPUBAAAEFAAAAOxdbXObyLL+
fPkV8+FWjrQb28zwTvl6y5blrHf9orLkZO/dSlEDDBYnCLSAnPj++tMzIAmw5JhEZ0+lhD4klga6
n+7p6Xl6ZoRGaeKxLLNR/XW+mM3vWOyzdJIyhv5UsIzxR2lE82nzUngdvU+ixYxlR+9vr+6vh0c/
HdXvly59FudhELLU3q5Fes/SLEzipgJZGiQ+Q5OnOas3/WHqB7qKejc0Dx9ZH9CloAaNGiaNnvJp
EqM/iaVa5KN0x7J5EmehG9XEbbH4PmMpujxvYtJkLEnnNGdHk3DWgEVkbBzI+EBWEbZsYtqycShr
KjqQTVmWbsdok53X1EPQ9AfC8iHGhzrqYe0dJpj0AfA8SfNnd2EsncZJ/DRLFhm6v69gNMjZqXqq
nR1YZ4Z6YJiydYANFXxl4YvB2fnF+fDsXJIkjhydfqafGBqHscfQWZLkNtJleKGMeUnsZ5I0fspy
NkOXcc4e0jB/4u7NmZcLKCym4EZfkgYpzabMR5Npyqi/QiKDX8NsTnNviv5asAV4yktmh3Q+j9jh
jIbxQS5ukKThF4/NudB6Pw//GDhnp+fO6WAwHI9Rb3z5bjx8975fuZ4Hx6qzfx/e3TiXN+9Pry7h
pvPzO34XzZH8RS5frkt9l7GgIuEGDKppHNzejcZD5+Z2cnnxv5L0/hrdsQe4MkM3jKYgbCnElg4O
TpDE73OcyfCPybOhUWrFsqbDP7J8UPnAs7in/0QI4uL3jyg9+HKUfv6Cxtf/M7j9sGFUSdIpOC70
qEA9njMPhpQHXRMk6Ux8aEuDu9Pxr5c379BkOJ7YaJrnc/voKEo8Gk2TLLdN0HU0zWfRUcZmFAal
lx2xmct8n/kH0OU5jKCjGfNDesAiNoN32VEIn6YBhUF1NGFf8klKvU9H1PcHC3bIRUnSuyhxaYR4
C4TRIghg0PRS9gghy5A3TZM4iZIHQB4tA6tvS6p+KCtENSzup8HFDcs/J+mnZx78r6LvjCAILFUP
fN9V0GQwgn6PY+gKI/BNbPqq7qkyGo+v0K8UxE95VJ/f3gyFFl3XDbWVFk/XrE1asO7JPIQhfnN2
iAIIday9RSyFxCaXugxda6HLMGmgKFt1gQ8hpeHDmgrT0kk7p3lmsNVpWU7TPIwfhPdi9pDkoQim
QpcFFu3EdUJXw3Vq3XUW1s2duE7o2uQ6w9Tkdua4FnFfdh3kv1I0UXYiWnR8RTQ2FFm2vr8TqAJp
x3zWCUq1E7gubSe6NOLSpi6roQpj6/v7e2nWhv7mKpSdqCis2ahCVbDx/f2+VFHrd1UhOxFdOKgi
msiWpZAddDMnO+TFbiYw7SnKDvqgVLWhDwjGhibvwFGlioqjNEVv2QduoOkMDYDWiKTqs4Auohw8
lHwKGYhOUvrA0Ocwn6J5wVSP3EXsRwyFK5b8zZohuV1wdVxzCNzo4tfJZDQQqsel5gzaoKuK/P4t
ShRLqym5Gb+kRCooIVDBkiPa9is5Ie/Qdctv9JGOvTSc54MkZTVkgk4Zskah99CHyYVQhH5GMPJ7
pxkQeD6bZYfefG4rROlLuCb4A3PXEtFzwYFsGR5RUXmdba84EPCfqxA4lQ1cqAd6bfuOBccbrzt5
86YPiDAGYt+8XwCzcF8ibXEpZkA34BKAQPjrMBnAJdaYCi9hrS8prdAwbBiWW/HSP7OVTF4xJDnQ
+otFLAqHUwFvQKOIpb3fxgPbHn5h3jiHeuqnt2sRv41XIuBjcR0EU/J57CVzJrADfUS9ymUCvWZC
0aS2Ra8bUK9FCYS0+GcF4iyMfQjmAuzxJmwntg3ENrqds1TwpuM3vb/RC/23aK1uQKFY8yfTMBum
aZKesSl9DJO0L588V+BNoZQBLp7lP3FX6qpw5fntdWnx4dRWdIhKra0nVep6beKgCY2jIeaGfjXk
vsTJ2y+//IK2v0o0im5oigcJXQZZMojULNMwMMwusmGYqmS0yi66hwMXeH0UQTHkQJpOnzhKyzI1
yWwtKYB8WJekwASNJau1JMrcZ5hMXZGwvCvrMG4pyVQJQ4+zIZcySdY3cCsVVcKklTxKNCiUi7D/
7XLCi33bZhAri7wMnPfXy2Eh4ouPp4uUzoo4UoDk9Mr7RBCZENFYaQXB8l0dylqhgi+DpPMUmE7a
gAHKH0DtUHzGV0WWqKpjrjBjfOv+k3nFsFNNA0K9IrZAaXCYaiuYxCU00AoV7JFGC5qz3mYE42SR
ekysqokE8GaF7D3cx94iMXHcQA3tj/L0uBRSLpeciMyrGwbqDQrWBx8K1BjDAMVaW9S8kBIqgA4F
YcT84cvoR+IyyFB3jGZJvDubgCI/M4nATAiTdpsM6HouBXJZSeDXwGoKGrQy5j9vraHxFLsBGiR+
MUqMllZrkHrWVi97HdJAwme4dVBexh+SNPJ7jUs3mLS6AmalDykAYam4tdq0suqc5TSMsmLYQ5bp
NREUHconEWy2NU1x/deY1samjcB1vA23qQNuqx1unxpQSDUwDYtlvVX6GkQ0y0KvaPyqASJyOLGu
CRMQVQwQidwSohlo3laIkBLnNGVLbDymOScYJVko1kCfObVx/xV7oN4TX1EeL+Z8FV1wC0U1N+En
hgn4cRv8vuoFUHis9f86ub4qJN8t4piHRrqIN7u2VP2mHKsb7BJgeZ5tSi3gakBzCWkLV9ODl+Au
57TnpUMNNdQOL+M2rC2wscphK61gK4GqKbQO+zzxFhzJiKZZzc/ZRZKO6CIDHpwydrYIIx/4tai+
FE0tUNVvLtwpW4BLbYtLd/WXcc0Xs/kk+cTi8P9ZepUk896Ll4+f4mK9fJFdw6h7i9wkiSoBPgJx
Y5bxnaAiPvALJimQ64jW0iTFJH4Lk1qZIxiPqm1HLIag3hYxZ5yvR3wZQLyK/b/W2KG42YpdzCzE
aIldc2nwlcBmGbzn74AEnAZAEcuRKEYqxIGIbcVUtiJTLSAxxGyLLPDxy8jiJA+Dp4swDvm6ztqZ
IyYKyAJmUafr1lZ0msIHntUSnS7jAMVJfPAYpvmCRiifLuJPKE92BVk1tiPGgFhpN9Hp1JetSgqr
KVziGkQhaFqhE3kUAq52rUCgcwC4NQDP+gqA5465SqjPq5mKZyCjbIBk8CWjVrMRg6igemXyrOt6
wSmKCjSpfnXRMSpgUFpiMEwcPMdQY0Xb3TOgHry/Y5ngSaV7tDW4mpgiTciQJhS1NUjta+H+/ch5
yG8HztOb0moy8SzGKzy0Radtwzvv040AWE7QvAKrXVSuR3Ldelvd2MDbdQfCI9xciOMKN5sC3/SL
LeyiQLc2QyIwUymtsr1HZcWqzlSF2GVHvRYQhvmxV721rL35+GtX1zCmKuDxtaqFm5Y2chg8X/qh
f1HD5ScLiI5i3Ziz6OYtxTgUMd6yWCEuCyrJ4O5rSJ5dyTf+xbLLGqMGk+Ldc3y6CvWt2iqBB8Qg
Fqbo4M/yyrrW0+ycRVBs5KJOiovzMecNyPZH3n2mvlqw3SbjcDYDeg8+VGs5ftMWTX1zhpkq1ZDj
6NrBnzfj+7urwQqMWGKKIXM4fOtp/flp7C/V2kkcPZ16/DCV/dFxo8T75ITxI/AmXplakkraolFc
7rHvRCJKNkVSlbbaiRt8TXuhYzOGj2J5TlLVlnp9WWPQB87/3RCjprqYyZwytRLd8UtVTjO4h/dY
Kfw/T8Tpm4vHx2GzR7CsSqrWCpxpEln3XwEOm8I9S1+cZsCFh6Pfvee4Rlh3Bhc1UaPfFaXxUSF9
sEj5CT3n/TX9UjfHIcIgvpuLUBS6frlDeOg/wbut25GuRYgqu8hZXu94hRl8QyZZ8DVn6ECjnUhF
hjxdEdlwu2qA2822sYgND0EVHEEBeMbl8eUdqJxte+kAoaX3mIR+uSnzFvE3xW4IaKxlU548LpJF
7BdHwZ5p1DyYbnwVDS5O05Q+8WNjT8tNFz6WTUmT21ogG9pmC+Ys5QfQyhnckLS2ScsIsI6u+YYy
3PAF6ptyiq4KJiaRtLb5x/BhRtwg2FlKXnnYAOlKOw+DeIZhKA0u7u5vrm5vR87l2BmcXl1d3rxz
bu8nzuTWOXXGt/d3g6HsjIZ3F7d3187F/c1gcnl74ziinJQ0tZ1W1Q+wV2hdxHw54TwprMrEHpem
S5rWVqKqBFWJ8B+IsgiA01uK8hg4vCpodUiRbycBNuPZQdvNu3flCUlCZLA2XcQTluW9LPeh7xxs
2y6FHOVkeQq58phvZL5F60b+3slTGuaZaDupNvK84NE8SYsmdFJZs9LFblEdn5iKZV3pS5rZErsM
JdcSO6+VWPpYrgAVO1PKJl1YrEPxE1htdOHAA+h+7Y4eJOjaLm9BZ2Hgb1KrEKBEuty2eyzTb9zB
NxQ2q8a8cNygWlWASuu4nWqLUEYQPy4i6sGmYI6CC1egIuRnJXn+f4r8Dbm/GcUWUXwNOk6cAeKo
VydYsC2OpICATJyJdj4BkWBRXWZFlOmqhq4BSsfhaeovcX3K8kUai8lOnENZS5sXx15q4qrADMv1
NcNEywudz38VfwjXmoo4PtJKnMvraGFnTZayspi8eFanMqcezGhMH1j6DQ5iAUWfxJku568kqznm
9STAxLpWmbFnD+l6viZYX7rm9QIN3/MbAlcO0sjKQcrehYS6dxZr32IxlilYnLHZZ5iGnCx84BXH
Bnu9r4SiqmuBLwcopnGSRYzNuRDLWprp/fzzId6c1KpSmK4wWZxrXE6D+TTMyoi2bSHYAULUq06i
fOUbyu5FeahpdTSqOpuKtmMcveXcvXxF9UnV0Bonyb5+kI8xi+iC/X4V8WtgcUDfaVnDJmyYQBRK
MKqiNI+bvcJEV6cKcmeCjpT2VDAu4hDSrcNp9vHqIr45H3rXC2DdJ2/qhOfbLBKmWDApVyQfTm1d
bx76eo09BJjACiqP+vs4D6MLGmXsbzes2DV7s9pQr5lnKMUpsnbm4cBam/cro3PoNI/CtPXA/iP9
ZvDtHoBRLv4BzTHa2kT9wGzaBDHuFUX6eGldv1hqqKqTjX7LU2+GHMjEwmt1YkVhQrOKn7j8ouhF
vQasn/q9/gnPAXzEldVFr1wM1fgh31IYdC8mAM5q64sA2PpOwIljbyO+ONL7HnHFKRazYRrmx3Lk
ln7HJCDFUkIlqJwylTrzNPnydFxJswsQe1wAAyTfZ8Pb73LpTzxvryp0FYM3HCcoVzFo5EARyGyV
r3vzM4rtOIRl+WsO4Sb+k5jzsTid2FISpmtJq6JBN8Upw5ZMRMOoKWjNQ3S7Sr4bq5rF4nZroqIH
gcGrKE5xswdeNM83sZTXCFJcZSVIrEQ0jrO/YvWAYaJWFyJ4xRx6UMt501Ei3EEwabCJ16xvaMx7
vr6BFU1vTNu7WOBA7ZaoPEJ14JvNRepe0Z995FR3V7jKYlUa3FCfwpqwmz3ELIaZzr17My7iySli
rFiHgsgT88duBpGJdjaILLTbQWTsXfli7p3F1t5ZjOX9M3n/VuMw2T+T92+BDe/fChvW9s9kff9M
3j/uhfePfOH9Y19k/9gX2cO90P1jX2T/2BfZP/ZF9o99kf1jX2T/2BfZP/ZFLNsuvpZ5usgT/kxA
b7J+mE4rR2i+q4Mj5nzfZup4j3xL9xu9wAxS8QJ//J9TSjN0o7FN8PUNLV/TNaX87qmQOACB4uun
tp2HM+Z/ANnF91fFnuub6hcCxHZ3cVsYP4wKSOWjgfg3rNseVaCyBfEilI1o+glkXiX8SCz8vYJF
o+jpcjaP6od7xT3iGS7+FZ25Pj3me9ao1z9Zf6v52SXFZlnzEv4gzw/8tPZTTGehN+Dbz/w7z5UT
C2L3bI2w+BaErLY9uKAbuulZ8nOD+d93LOMPuvq6MwpLxXWrz8/4Zt763MCxaL0CQ056qz9fa69t
/yMS/vpHr18cBfg7lMmg7WRDH3Nhq/76O8G0DhJLr8VI8RgIrXWAuEHw77aTj2RV4U/rKIXzcx1G
+3Mduqnr1stgL5L0Rajj8nmmIjdqdUgYG+3PZeiG6pobk7hti9y/xsAq0Djik3Uc/Lcj23YiHkmV
pL3+MhrECWDo5obk8hvw33CsQzeI7zfPajnLLzXwz51iBnU+Fw/wEDnshF/Dv6NxvAM735S98p1S
iqeh8S+nbzhlwL8wZrV2jex5Na8sxS7/3oX1mw+370DwyfJsBj/cUosk/h1+1Fv7yMYqD52Wz5yC
l+nSCvqlwOMtapcBzL//WFVuWEq/5WOqgEUQV2fFKHt2cGd15gRrZoUtlJNmv+UjrECXqgM8oetz
Hky2qiOmtY2cYN3stz9Rsv2Yi7q7Yy7abnfoFbmjsB2F7ShsR2E7CttR2I7CdhS2o7Adhf2xKCzu
KGxHYTsK21HYjsJ2FLajsB2F7ShsR2F/LApLOgrbUdiOwnYUtqOwHYXtKGxHYTsK21HYH4vCKh2F
7ShsR2E7CttR2I7CdhS2o7Adhe0o7I9FYdWOwnYUtqOwHYXtKGxHYTsK21HYjsJ2FPbHorBaR2E7
CttR2I7CdhS2o7Adhe0obEdhOwr7Y1FYvaOwHYXtKGxHYTsK21HYjsJ2FLajsB2F/bEorFH78bjB
xZhHan44T8NHmrNveEyubBQ/cBsxr8Jg2/yWGojRqPhdtgLMdfET0oLAkvbPxt3aLcrufo1M3fGv
kSlmV1l0lUVXWXSVRVdZdJVFV1l0lUVXWXSVxY9VWXzD733pQeDpKGMzOp9CHziCBvLk/fwHqP0w
m9Pcm9bFPcPpWsT3dAM5y+udtXQhOIuSz2IWspaVxeslGz52K5L5T4Ow1Fn//IZqfkuNsaWr1d1V
K9qOqxUZeSnNpsxHn2GuR3+YOipbxjkUkainqwdumPdtCaGUfrHRalTJrkt9l7EAGtxVA1erUS3w
FAMiKPW23eHXGuDFiMdkrsQPKy0we2uGR2QuK9vW4M6b2i2FiDs2NoASlJoN9QIeb7A2NHBZWN7Q
4PEGvFbim9gMRAu3BJMNt2DeoNQsYYEfGLLJG1TeAFiDpnZtQwPhSsJ5VRZkOo3KGPhOGkQN7Vgm
Ms+aKdnUJyBLukoeQmAEaDC6t0UsydIwTZMUDRKfFZ+s79SlCR/YN4uZy9J/8W5ly23kWPZdX+FH
z1SAwr5ETEwEVnf12FPuUpX7mUuyzGlJdJBSVbu+fg4yRSo3yo4ZRb+IVAIJnAvc5dwLsGtk8urq
Kuzul4evb368Q+J/rGrz9BqYmQYGiEPeDB6uLcR680N6vPvyc3O/aQ6/HBooHv23N/9hqUhJ6ky4
YokIGzkJkSrinKfYf518Tv/55vrT/vbxrjlef/rp/a8f8vW/Xw/HGmAwjZ1iwMPt1rz5AVb092ZV
Y8gvzfHh5vPu7sm0WjROS1uijsSzBDSuROI0L8TGjIWPWmdK59BcGnWEaz3F5YyZw/X45cv+8NCH
xrJl2UtKrLCZCJUFvrlAZHFJ8aJNsvk7oPUHHqBbSzFBhw1oV+1yHH6L9PYHvISPBVuIH+oaeiWT
jIkwnQA0KIvV1JQUl73Oypvo2RzQ4ciL7WF511Snff2pgWMAK7n2oz59/M6JZoJ/6bjYbld9/FiL
/9o9zOFWmnvjrSVJsIC91wJKqBgW2EjpmLc+qznc3YjzeLu2Ps610ZsxTpjtllcLGeK8tMB4vRjn
NAklRiywCMRT64m2kqkikjCxXAB6eWWfGntQmV66KVTdrORIJToh3ze/Lddf5/AynZnUQhIOBYbm
ukxsriZOowqBWhfnNbc/7kvL2/XoIedMKjpGXh/K0SIvHze7/cLX739J/i/+/cfbx99+vH/zlhug
53i/+wIhisrSSheJ9hyeIXH4iCAKKZraSLN0JVXtuGmj9vX73eoAF3md//nQ3D+hfZpl8Y/mnw/X
yF/R8nC87mZ8bj6DWKwe7ze3zXPPD8v1TzfTfledfDX8aW5W8lnu88NmtZTYMdg8CL/QdMGrRNZK
owU8XIy0EMGgSz5GSYzylqqYJWXV8z4eD9WHXNe3e3NZx5d0PJd1QujRGsf97f5w8/V+/eatXLhF
faH9rAhKFCZzSrQyjogYOHFJOgSA6nmFTcWa6ZqWkyZ0i4ZwVlOUm+bw+27dHOcVpffOGc98z3Pz
QFa12Uxl1UyNLOHn5m7/0HzaNX+c4ECVWpEZZRA4cGsZnAniSYFrTCySIEMhTCktqXBcCTEV+GNX
7e/JMJ1nXphpv6uhAHpOqm4Hsed3zQNS80rzQSvvvpyiEV5a0IWUi6pFKWfPGDfEeAW7yIUTL7GR
PjOuYsDDoL5HpHcff437uy+72+bQk+USiJEYZk4MM1HE9X4J9AtkiTDs1gSoMdb4QBIXjIgCb+8d
Yqp3Ah6Li6gMe1EB2zEvKRKaRjjtFKezAtrfLvd+9T/rhT+vsq0mkpRKCjAJKwEawz3cJoI1kTIZ
X7IGXzI9Ix2N0p9+uXRTe12u2GazGehw62D++jG/e/OWdapbFbeYnELCyqjq/UwxJKQsSfawV8Eo
wLjv2eXz4PNrdm6+GmJspsDXm6aN7JAyvPc3p1VDgOKtXgYZObNcE5WDgG/RiQQDDY1eWqszD9rr
l33Let3c1rpI802X8nuzxgDz3Qb4BmJtuZqKteXuZH1flncLfpKLV2WIJSbmQiLWBAT+wgMJAT4E
oopss1KF+aEy9MYYzb2cmdu5kcncNMvD+nPLl9hCdtpQP2s8ZMqBLFkiZERQ1wWmgzhOcmABLN6l
EsQ3TOfQfLfTPgOZ73lu7gu5ombq3lZcggSIvpB/e0TK/GdHtljnHCSjCyYhpYjZG3hEooVHhAoa
wUl7SxA5Q9EJHsOGF6V8Hnwe+XP71RDlVDdWolmN4k3HXx72+9vV/p8LX//7pfunFUW0+8VEFcTQ
7BS0xilkNyC3nFiNiE89k7FoT4V1L5tDb/ALxtvrMRBGqu1UGGk2rTAXClBvBZd2AarCIEBr0OAn
wpYSoGEG9FzSBIUTnHAD/+iZ8pH2lb8b9Hp++AE8xdwUHgJxqybofPvn3XKhzg6mNcRIQWORJRSv
DJwLvDKUnxH4QU2FAJSYh4bYH2Q4u5DT2TXXp8X568ezD0BIqpObkhCaMDk8MnTSGKSnplD8y6LO
KerCXw5abd7+40+XKMNx/3iATV73J78aojNzkO3JH3czL8IZN+cIutjKmruAFUiL5FAziUDigRv5
CyPa6CK5Aa1Oerhyw9GGQPop6+mh3YgxK1v+ESHpYflEqVsO4PCalbL1ZNI5Dq+aXII70xnpiQcT
cNZ5zmlmVs5Eir77uh7PMCbt5/YBfLudksqVk81p69ePX47PEUAK1dqBY8rKWgfg7QrC8ROvmSAx
c86to8j+7HAF++MMACztlBHgIRs5yC+H3X3P8S4+1v+rJbQBgWtd/Uu2qhgaSTJJwjozI8EiJ42s
KCqKczH5l8PB8rDa338zEHwcYun3apv68q1hwxP51vbJ8TzL96HZ7JY9v9mGOSPgeLDi1EA6eH/4
+gDSg08iaK3CgCgSCwUUiMPVhb4oXX+KefT9HgMhEAxmhFipE014cm/H5f2mDn7SFrjOmugBPPfa
BoHMNRirYXJgj+C8nCgN+gjddiXYlxznYOQBtNV2SszWazle3/2X5n59WzMh02lM/ay+wGDmIjTx
lNY6Rkk187PEZZljTbapyS+u6k8YOL6fX8+ubQB3Q9dTuBs5Tlj/lhB9uuxf0LqAtGQlwN0JzEvV
rE0Sz7IhxfKUWWJUZ/bqaerf0gXCkIYyuWn4WDd0TOSejffHn1o6h6x0USVkzLiF6hTFK+qS8Lkm
4XCEDPpuXUR849pDYSg1gb8cWH66yNDapj7yDdWrCfINXbGT91s+PuzPEcRWH+Ocy5rRQiQrseZC
gvgE8qlypNIFrcA5h57veYzB1JxNTWrDORuVCt8v73/z98vbr8fdsfoF80SAO+1lNnEkvsAgoAvC
1ohhpCcURDxJJak06tW1og9pvnO/x0Bou5o6+/pwkiU/x7U3bw23HY3svkDsLFLJMXGSYy3mcckh
NnJCkEunpQ7KtN7k/8P7+z0GIrTlyLEIrhn7mzaL/PTRnyet6s5adedPZBKarINJjvg2O0y5FmI8
/A/0KNICm7b8u/NZTPVCOovWgRBLPq0CbOBHt81kH/yvEdAZEq7Ob3bfKmWxNDIH1dcxUcQjhU2I
nBPKEXO5MjFG+z3wnya5vA1ovBriZDPg+fJE/X7+8eNzBcMhALXRM8JuI49Ec7h4wbOuy24RgKQX
itHAjP+myrw7LL983q2P38FaeyCG4GcKIJtmMy7irTHb8aSgN5+Xh2ZTdrfN+92x+k25kHUr5EJV
H5C4TwbpiDG2QDIFb8DbGEE9/JNlnMVXTIIHWC5kwoM+ffEh/TRU4OH6BQewKDf598pjWxIvWhJf
XeDpe5uNqIDgIBC66/ldQZrsHTY3IbEpLDNnnH+9JTjhudDxqXUoNm9mxJbLU5xpTiX6k9oaWy0s
OcWT1yQE+AYRg0Y+AFdR4z1jUUUlRxneaJwhhuWUeTRwZqOl7128Rori2pVWri4y8zUyUwJbgZ5l
4ZG9F0GYtFpo5XUuL0fm55HnVi722ge4N3K6dlsOlVkPcP/eZpRv3trWTdmutq9KkIzXgpCAi5IC
pmFcQLbnDC3RCmTtr1Z/a+ef79a1XQ0F2MxItdyMduND87DEmizbTKeL/Yh0C1FzRlUkNTHQGgCR
7ngGTo0xCRhhClRyisevp/UnJJcyh651KONybue2yxHF+cuPz7EekbGGSKXq9iE6auxfJLEoX2t8
ElywSJJLMtHXkwuXXp3dPKOZ7/rcPpR1O2WSW1GtqyvgPN7/sbvfnAtLalF5TNE5SFA1IhPj9VDS
Ex+UJNEJpCUhw1uK2ayoP9oAhrLTasRWbdkMOxkvjP/lBsCMqSmHQ4SpZNcYlx3ThJpaZI0eDIXB
FRUkczEw7nnQr74BwHGByfxyM5R1O2XQW+vGlwWqlqfOhHjtrSVrFx9B0ivpGNFM1xIWD7AcRFAr
c6axJBnit80nXbSIU+vVEN20zLdd11OiQbHj027T7F8uBkQTuYYfRlBQtYQF4s+RAjDto0/CsFxe
Bt+fYl6Afo+rIV47J4Q78a9Dc7f/vdki/J8LATVIK8VzES4jYCTkKlogx6PKEakQPCIv1g2i2bOy
j8cbgVnOgOHnysS7988VwI4r0KSYloJQCXWuhU9iC2PE6xIR6Kzi3yhC16T+3YWEv+u+6yjgaeoh
XjWHt6b/25GB1vLdcnffHOqZdVfkYgvZZcml1gQN5YRF4BcBqZBzkCmabFQUQUpmvzN1OE9zMX04
9xgKYuiMIHac9MdS1yvtDs36YX/42sax9niDuephGCtOacOJUhmCFIckjhmGdNpGpX3OTtpv7sZ5
9G+fu5fv6D/qNJC6ETP+tZHipG6r4x3So5OXrxKaXC+CyEi8raFaGUkC3D5RSRUfouGOj4rNvTGG
c0s5N7c9zb1erj+fTc7U1MApab3PjnAfYHKKK+KQMiM/8CbKWniTZtbkekMNIdj1DAQ7pu892tQd
S7bFrPre07/1v8rPJLITlcDKCpMVnybWSEVKiSnAucdk/iXno13bSNLtjKRLemLsfyKJPx2Sg7R0
eUgQOQTJC0FQR0bPrSGuUGQk1GYqE+iaj8O9Pg8znHypZiavxGm4zBn7TKsxmfZmRz0H50ZyUrCz
RFgdiIfukQL3allwpfhXJIQ+X/AYeSjLHDFqtuuT1qbd8rf7/fFht/7QHI/1Mme83SGBej7rqpoi
uRQBZLBe30KwVioQF0EKnfKcaS5EcCMrenncEcQZLr6VbiYnb3900eZGNe1ZsMqWmEZYFrYt0Qsd
S4SVJYNdB30lgWtBlE4JNp9osOmbG/D+aYrLtOLU42qIdyawbKtpmnFCcfvmrdILXXk2PurBCVXM
GgRBm2o4MYjK3jNX04kkorVZO/GNowWMejkzuB0iXU2cCFgRNyOkz+XiKvPf3/v/rjcrOi7EaLW5
ijyImgYLYgr8mhAC/I1GRqTgUHaWUkz5mytex7682rX1agjVTvEzLk+uoSBeflwejgipJx1Wtl1n
ro13PksimajFbZB+m4wgIZUUnVbalvKv49ODetUY9NVQODUn8bl88bnZ3W2Wt2R5vD97RalEZSut
n3eWpSxpPapGMiF0vbmTHYSP1jOmko7JDa13OuIAkJzWkevD8+nv06nR5v54POdcmqt6GiXbK1cM
TNxhC3iNyUwjr4EaESUs4rPVhon00mlUb9wBLMVmYCl1Pk549/7XERtFhPOqZlgii1hvrtXinVFw
GxY6roNzMbwWG/11DvF6OUVs9fh6yrFZPx52D6BvXQ1CGSHM6Wwv86xUPX/gFhm64PVSMJx1vRYU
kDMaZJMve4+bp9Ev3avpWge4l81minvZjMsn3YFuNcBaMGXKtBc+dU4a3FlVxiwyd7UoVGuHQrDM
I7Mi/Z9Pibu2EdRJFaRSXDNNybs74V3NTVKk4BVuERIkWWeSEuiEkAn5StSWRO0CsgCVJftmEeTC
iVh8arsaIJterMBD0YwuytRg+HB7PKmzbY29cs7oaPIZ7k1Sy0FCWP0dg1WgoBoMWBuj+YsnvYOB
h8imJ+ntw2nqNPaR8Ea23qiyLUlKyiThkYbyWsYsMLaSLMk+JgsuIcGdXscHz3QcyLN1M/KAjIwU
4+br3Wp/Gqi9A1cN0NLu3oihoRgNyhwqLyosE6uih+0hoc6wShu/6wxpMMkFO+x3GQqynbo93haW
LwT09kzKUo5E8Dmkc7YQ3XVeuHJjis8kWKGIcALEhBZEj1QK5YGzNFf3u3Aw1k7zwtFY2341QN6Y
GXGa853I+OnDTb32vrsf/ULm5NMVFbW4RNpzbMBX9acGiWgwVoMYL4Omr+PTLyAZSMPt1FPiYTO+
utGsd/e7h8FVT0RH5uFsSIo1nyiyYEdAs5xXPEgTRdbhxUsb/TFHoLYzoFbNSGPSrvvl7+HroEJc
ayGKtkU8QfFNIeWJwXusNaifY/gWVL0Knhmo7CumPFM8869M+w2kF9PrdvXhOSX60P629MykeA0D
9T5fKMESk2u1MgVk8ZAOvBfhVZcolZJDCjUYZTD/ykyDPl9Zfi4k7L987ZfvWIvA13Oeeue3iALH
LvEnBAQiGbUqCXTQCj5fTBgMN0Cy1jOeY61Xp2ATP+/um2Pzy/4fzf3uzx6hrmzaOGgjGDXSa82I
iMYSx2MiUitqmMvaptGSzA83QNTQKbnHw7FmHr80DVb30Kz3v93vhk4T2RWWvabl7Wd1aFl5Z6kn
BdsEhpRUPdKrv0sDEWE2Yvfya1xMu2lR/TwHauDJx92GK8DmVqDerBxQwo+H/cN+vb8Nj9ttrVG2
v2eQ1SaDzyqr6MBYVL2vDKV1RjKSM1LjLKjUOX+P+x7OcOm+Xb/PUA7uZuSoRKY7kYnvfrx/aA7b
ZTXjU8WOmUU965RGyPb+oOLV2qgxxCMokQS+Rbn0WQv2rzg4HHr7CeChvG7GqzRufbKl++ahDb5P
oipQNtWVrXLJyRmeifpf4q6sR44bSb/3r5hHAQMKvI9HnrYwo7XgXg/mbVFXSw21urV9CPb++o1g
VmUlM1nVtXDDCxjuQiVFRmSRcX4RVLg9aaTEl2iIMY4WToN0MrUHqZmrpWLde+vr8UT/utreru43
uxmeuGQF2y5xAu5gwMhJJLY4SmIRoGsq6lq8EZ64pWBKvKBuEavCL+fYnoM39OX2b++GYjIF/rGu
9bEmZCAYNjwCkwzzxGcwx1jO3CcudbJvgkA9+EQ/fzjvM/38oeGPLWEIYJ1s3Cwh+9PuYapvB/NM
geHp6nbhyVqjGPjwRmBssxTQuQnM/KJ9cqw4cFsvqrY6LtPnYjKgYUOzpfUg9GaOoUQU2gvsio8P
293d7f3naS2RsuDneVkriBA8D+oUPBVKjDOUu8QM9ewSHuZrnMbDTUc13BgqltwYqkck++Zxt7v/
dbfaHvWf5Pq9rAUJoPoN0EskuOTgzcCRcVJhWtBzUDPgeJXZ0V1O11DjNktzUbidnLl/q6dJkcQo
SCQDpwO8VcICQsIKSyR4cLW8B9fbgJCx3p0zGMdZG5JWYmmPi5VUB5LW/4OIumPWBb08Ds6P5Arc
ZIpFjmAJEI/hWPAXZfQxBiFntkEzS7u+1J3116sTMZKbBkAzSAfGUTok72VJ8GZMQXuaop2aNZwe
HYIr1rBCzUWBkvNIGt8Z1zK0YR2GNmLh4t/f3H5+eRwWOjj6lNewXjW+Uw4mFUc0eKMg7RBvH60g
lGltLQdnrYYzz7j6iwVmdC41mthtxtLQf/pPPv5jUXUnORc2wy+uAxqHDl54KGiyUulp5NZwJv6i
qrsphQ1rN6qzp27UegH/AV2F5Dw93a5v72oEbhBixlVPM2sWpCLMaUypU6x7tZEIlhk4b87ZV8DS
y/nPFAY046bcSEaXDoVkC26GSrEK6cRPmNcW+1psUfFa2ZskiwiEatChAquZwG6OJFrHtUyUJvk6
rrfOfQZNio9b6o3sUG/6dfovYDE/DVVuv90PNYltiZsNijtOCsegLveBBM0tsVEIb3gyVPHXS9xw
5jP1bfi44aDn40u+mufif9rd74bDtrq7fn54rHi5oTSci0G322g5kxK8Ou7wSAtNXMwFfCqDoCSr
4qW6fbHUKR2/GNiytupsLT70URlC6oP53IZgQmCFeSeIYhRcQ0c1iH+wWGyyokRMLZc3A3lM1m8p
3y0tYSndHOm7+jFVGIdCfanfu6HngwRdmqgoYJzDQRegKICLBMY5o1paBc7WK9Wf/l+vqYvpiIYF
tVu651LrbYWJT+T4MVdrea2XrBrYCJE4IjtERgsLLHpsWJFTzAFcQKn9eeXQeaV6CSiEL9fzvPje
OX/64/75y64pUkDXfN9UY/hQca3JU4pQ8Ow51pkEgg0SiHIpcFTdRb99DcXggl8vKVz66eOg9lWs
l64K+Gl8Ab/5j8FV+9s7g9VY72sdxfCpHvfg4DhkcGwLCFyGZhLzmXCvCji61id9fnON85+C0uwf
X7Vkig7tN/NU9ebu4WX7FSRhxA81OSJhf3FXQ/n4oSafhApgehCGUD7M36FJb+GTVKAuSrbpfLD1
MPkJBvZPG/pXsiNuV4YfZNIn8ANa95Z7BwoFDBEpEckKbhK4G5IRzENl51kyQr2Rezsu3pJsOq98
vWhPEe5eds8PD89fUDfLChGof2+qdU8Nzx4Oc+HYl4pjrDUwR5wQLhpqQbe9UvP7yzj/qQKtccBV
S6jtUC/kIZTzCC/g7gdIzLE5CMYrtaJBRQvGkQJnRHtKrAZPiQbww7GWLpRZo4J2mikFau2Wakit
N2L2/jActds877Z134w69uh3Gil04EGAlyawDREF25RiESctTIggMqX80tjYYqHTIbLF0Ja5jp2t
qVh1gLQnqwMUS6wICc5MyXFowWKF5YQnJpJR4PCo10swXlNU7ZirhlxlOjxsdje79T6m/bjbPP7x
/VjPJ4Q6+K2wTSg4yoZ4JbFOAM6oNQEUbZbMSutFZCdwcrNZW5I2yzAF6EQ18xunhUW4VWpnG8T5
HyqXwImnHt0q4UGuiVTrfkFaJ+wMY8xFTS7OVy5NR1y11G46LOh5zcjHl7vn2+eHF1BW+zzUROMK
Kg+FrHuNy1XxHOu0hcZyHSPAbQlFYdkS45KC0unh1JaH4MyyjfMyH9ayqFmPRTfLj+0jnotCHdA4
6A8L9O+1pk6laAiIFwcaCM6AUzkTqWxhquhEmTxn8vTXaKhV284PonYLfP/T0+45IohzEsiTQ92U
rFteFS4dhiGAaI+BIwmCyAiiDXfZ5KR0uqyZzmKlEzbmYlzL144v+dKMzQA9346BeopgA2ozq52e
NPosWBUKR9jWHmJ40gJwcvaNf+u8YrOE2Tpj7a6DBny5rVWduLe1HvwnJrAaqhBPvcF+Zli+rCNR
RRlpimeB+0uLIn/7cPq0/tYEdo1bVhPVL0/icqvfiv9g8hUbwFrKCpAqDNsmRAFHFEHDBTHEMQbQ
XfBK85/LfRyftzysVx0eFlGpthftO3jfWAVY++SkhGUPkYAqAvHoUYDHWMFILOacnVJno4/NzC1p
G9MhbTsWGfy+ejyma/f1+oJTU7SG1yY95msTOp+MGAoUWuWoiLMA5GSSdvHtMlRkVjcj5Pzpv+9u
n3dizBYzXd9GiiIpOMqYD4ef0aBqVibCeXcOzjiCXWaF6s1EV+1qS2fDrOn6QML1d0QOdltg6aKA
AIqwTAwJWwnvARQBCBuhoszwS4X0FwXj5lRetdx0BOua29nu+1b7ro92pqmxUDw0RlpwxBF6zbCq
BLadDUxgcQtngnGjzVnU03Teli7eMSK2inZss30BJDt0yUKZJAeYrDGcBa9AxTIKzriEM22F4ySq
ZKKC77wPr9oQZ/KU4+OrlsyOat2u5WHb+H+VIVg3ZvX3XZa8sykUeHuOBmz0FogDXxRDOFnorLNK
6U+GPBqXqaVjyoKlyyoXZ5mzM8G693LHTptTkz+W5KzVEoRAQjQTy7D5MTtoLXfSY73OeXk6n7zP
0XzUVUux67Cx2XZ2US37QvptLdIZauWY91yC8iIxVCSQxrBmAqcbvG6pJNfSvV5jXmc+vX/q45bq
zTLcY7nZzV7+erX5+vJ9anJiewy5b5NRUXIgcTJmyRzIIthQLhOnlSOhWHj7KkhLLyqXCrOVpiwM
zxr6eScXjsKv89ZrgP3DL1jPsQ+JGzfIleQ49unMYOqjSQkGTs6WUC8TGEhOG1deffH7yU+/+v2A
hnjhdIf41apTqZ/AZ0+r3beH+wMcY7r/WdIU/ougiFATBh/AD6eGAOXagjI0jOdLTaLlSmeKLxdj
W/5W6x5/Nwv+vuEMq/vd3QA+q0ERh+a+9GALKY+wCezfAdYdcQEOReCCSeOT59m9RbJ/SsIpdo8j
GiatXtqF1oJO2QdOEPX/6+7z7dPz4x/HYoWhx5c3NCXpsG4MRLGQCdiLzJEiA2xrS7PT7P+xWKEl
u+V6vQx2WSfnQvv2/msjNGiNZ/Dac5EVoyO2hRIFuwLrYBEfbkBhgn9ahAxC2Lf4bT/cn4icwoOr
lnzX42nejPH375v3+5c93In3bVfbpI2nMTmdjNeJ5JQDdnCH/aqSI1kIL0KhjAX1Sg56NvupFPRs
WMuN7hy+FRe90m04xlMGSmQZRCBY0sKDKkIjy2Nfb2yD4mSikQbzfxEn5wVIQ/VquwxD2jXjc9Tq
bv3yeUBLo8gQtcWVqIEPIJlHJUhwEoPVBjRSzpyAR2A8ogzUZX2KpyucQKBORly15HZ5mOvUf3+K
+19wzEmhNsqccZ40KQVTJUpxUKFMg3+YBByWIGkKl9B/nL1P/fF5S/tKdmhfjdiUr7s/vn0eMTIc
cSBWGPD9lAQHHGPWEfzYIFIh2dloNAu6ZNq1y6dzzYhQPSJGXxAzh8PtALf3n397vr07WrdDitUn
mnwEc9ZZuccWOufAO/M5asZ4SH7mmJ2YsiVr25F56+1c5qXbp6/+cX37/DgmHM3QDa+2lwe/lHtP
lKjJa/QXDGWkpJxgZypBX8mEzWY/BY5uBs24WHphduNGqM+Pj7dPo/eltKgVJ6FoxotJpIAEwxpy
cDZDxmQvCzFwlmNUf5GLOaHvqmWhY0xt1otypS8v9/VKvoFG3DNDgWnFXydTONirBMRERpUEXpEF
115ZML+ZUEKEy+yodpET8q8d1DCz7eSSHFV2hiJskPWDOtz3N2ZC7/v+4YeKKAy+RFdbicHGw0tY
AiuSWJMsuB46aUnfDsV/pOVcDdesHTJwqFcdts08Fv7hl3E7PTxiIYXa93qvHypoh4ViuCTFYp6y
JvSpzrUBpVZUaSkvUgLNQqfyaZMhLTM3SynmmJ5jXrClz3b3XBshPG3qrzcUAA5pzWw102AzEEex
l4bVoNmYjQQcwqxTYr5bfdvRZ7BMOixz+odZDLtqqbcdluw8I/6P3eN69/jwhC0JRhclSCPxDoRq
zgsLKtl7pUkGZSe4oYXn89beYdI+3YenLbmdKiP40s7yDmu8D3PEp+va8I1LcP6SIkVjzYsK2NAK
HCqrrWKRy2DrHTEnY03TKWckLW1Mx4WavcFuK97D0a4HW5oh+Adv08LxDSRmCqrOgYwONElCi4sR
LIdizNs3cBrJOdOhd7F5uNA91o81Xxig+DjrTMBc1T8K/FuD+AlD4SwLKihxOoKjhBmWGEwCAfZG
9V4LKmZMrHpMbA9JFLw9ZYxSH25gKYyKwIH6JKzAu69ArTjuSWY6pBgo9bTfg+o4W0PEtlM/6na0
1+Kzhh36/Y0MjT5JTKEUiyFAbQiYzhT732VGNY9c0MviHq9EPRrad64jFXduLBk55Okenm9vJv4y
PUSBk7QhZYEb3OThUgKP8PiojM3COWtiPJsAnEzcEtYJVsCX85zUl93dd3yfosJ8ZG3toJKX2EqX
hogmu8cmDwZENAWVHVORRcu3cGR/hqVPNEyDJzNmbjrMrMduApsazYhNsh5OpxnT9Q5TxhxrvmSQ
GFGVBNs/ohYCcwFEPpgTJ9L185kbwm5kR4PcHHE9m7//fbW+PeZ5zFCtynkuQWhCs4MfHetXLJwB
koGWKAXIwkhnvdAn87QE9CyrGzOmwO5WL/fjrZPvjK5vZHBzJNa0K6IYNtIBexAUmAQnPxbBgqUs
qr6bM51xSsqKdvIOq4oJGQTi198nsmRxTUIQGGl12FmrIAJbDDheyQN1DM5CZP3+CsdZW2LEukPM
Zh5I/bR7vHl4/IbFPdOWyQctT02KFvQ5UdoXBGHh5XXJEpci2M/B28jLRdib5TInVM1yYMMW7xQ2
wJfzbko1sRJX359fUMUOBUfD3VU+wg9MgyEYJQaOOPrj0sDWKx6OdlTCvE2UakLBCUtzMqLhUail
SF1hBU/7051tEiaY18aDwaNilWEUfGedwODhDLgM8Os5/WebhJ1q+YXE8g4HdnI5Rv5pBvez3BeD
FAaRwZ9xYKY5CRohCum5xdbOsbzZ7RiH1Vuil3eFuZXajcf3dvOC5vyxT7JS7D2WeOHrts4F4ASz
tZQIUMPEYhK7gApjSSWu4uy6p9lsV+2inbOrmeuE+g4mXi1zvMc2RShYark3/sVscmaMFfj9wRdm
iByyxGMBVyzOipBkjjZcGvybr/Z6H/DDyKuWlVWPv/khvnv4fHv/NOCPpkLJge2lisOLVGpLIFFA
lzlLEg9amwD+8GUhwTr/qwd5SsWJIMZkxIzPzo5C3bjHgv9I15/mkRllKAeXNpNUKMJzlAX/EAue
MvyG3MLT8FdV4hzJa7iqCnfBlWSztP/z4+pYssopImVqXjQ7wVikguClAPtgdIGf0GvplC6lcH0W
cjKZtyVLdmSOUSPmY/Pt+2gG6FpyDd4rj5qYIrENFpZcY5EAnLPocrAixzKzQcYZpguvaSdlv6Z6
nvXD2zSeDhHJId9axfU+xCl0DuCcgvUuMOXHnEEwKLjXNprADXb3C2+hl5rA6Gm5Pg5pWe1ETOHL
eRXpx9X958eHHw2KlyerAxgQREuESAWwQkPUmoBYTzQ6mq28DMC4n/sEbnH/tKFadkqU13Izr84f
lo5NgV32n7DZyb8rFHDAmLLhHrXEsshUUcKjVWBVwza2GS+h9WC9uuRkKfESfg4r9Pk5PG352S5j
+mu9vTns9PLwdPdf2z/uV99uj2Um+j0fGmC7FMDaJ9isF9Ss4sQqwTDawGlxIic5ayu2nK0hBrvW
LIhxcnsgZnbv+ztFa0fWCmqNRoKDp/DMeWy+bxLxKnuiVYrRRpGK67fHaCdt6Vm2PocvlVt2PLoe
7sfptIpV3GjNGR26jopgBOJoAtjimXrnE8/50lax+0VONtPZP29ZUD0WFvcdfPwYr6vnirglZQZM
lXQl5BKJUgWxlJSBdYu3Y2IDehMLD707sTqnDOY+ccLgSUPtqlPIuF5hBGyIoOANf7dwXvkRRI69
P6tpEsGa95wRLfCCCa8tXqsqiBL1cqZgDJ1fDNNO1hLSKTFZr1brc/ck/HJ97s4UbiLjAdwEY7GO
zKZE6tlJUQVtrFA86beLsR9pOSGWr3swYOBw02F7O8+T/HR9Pe70KsCCdBTeM8JLsNjMGQ92oVGk
3i2VnXfslQQCzHiiPvG63SGbjhmEXx4MBnCnRzsB6yJSCiyD8U+iAXqqZoZti7skqxy0s4XmEy3e
exJq04EBwJdjd7Zvq82XMWhijRrUMd5BKosniENHd9xip3NFWNFcyZwlO0HDZLYZFTcdKhaXF3SU
UMUdD9CsirOweA8qlQKkExwY4evFyyA/i4WzT3MEoXUeWNZTdCfaly0GNjzdLC/qxC/nJ+4/Y2zQ
CCrnwBMYgNgQAzaeIs6ETDiPAVshBOsvukwZpu2TDQ9mZHZOyM1qDJ4dLkpjnUvYvEV4RJKEY3pU
sNrxHu+ODNRKIwxYNbNmEbPZWkqWd8K5jdjNA70/bitmsYChO+QIxHsxQObxL9rQSlJuQVNKjq+Q
GvDpeAAtrniWeL+gchclkQ4rnJBN+6dXDbU3rMPCjVyk9K5fatudWuEK8roWfA+fqobNWP2kUaVi
ay68oRhbikrLucrgAvBXLhIY5z+Vxds/bmhXnZjYRi0ukouPq6cvv+7Qnds9Xo/+5z6+YhhGD6my
jgfYCAXbZwls9hYc/I9KZgoYuppdBuvorXXCq+6MbLgDB3rJnV7AVEacH8Jd/vnw+fP/9nZ9z23b
SPhdfwVfbqaZOXpAAMSPzPQBBAhXTRx3YiXt3YtHJqmcprbss+S2+e9vl5QogoJktc2cHhJZJIAF
SCx2gd3vG8G8YNI6zQRJjdUIiwDGD+hPcEAxT6NUVNuC/anYw0E7r0QeDu4Me0Yj00bQcc8OMLq6
yUMvdgEbXciGKAwRVJPUcYzyzzOLPKxIEJyVXmTek/ys7YNoc2eihx1MKxExWyuRi8OgaX+zw0jp
HBHFqckZFyltHStPKQLW47msEhi6brJXOIbaOo8GSPubUM5IzmAl5HhrCums2veKcwq2VJcVu/3a
rvCOqgwGHpYqMLApZj5ifJrQhdfQRMHNWQb2tpnjlFoHb1IExq8SB2hVfQL4YNVi1soMY3w0wptl
IK0yqkyJhdco8yVT7KwYupO535HM70rGprUUTQTCtfk85M7LwWFlXdo+fkGTD5OUWF6mNhOmQx3W
2urUOgP+d0mNOu/N37Z1ijzPhH2IwIVU4DjsnMSHpppDY/32jBbtXhhMR0sKh5FoGPbBPSy+xnl4
TeCNt6XV0oyc1aCiQIQqAm1XVYwe7KnicZd56dK599YyL5SQDB46Exje60uEIWeoJKWxueNeFf48
rbir/1RYMl4PpT/k0IAf52NA5B86CPBQ9NwxkTMF72uBQVA01ylYkLByWW4k9EEW50WcbCs/dmLZ
XgyFnh+eDVY1WRzlOG2h45d+GQGt15rlmoIpXjC0x71xmG7s0tIoZmG1Laz1565K2MQJ7Hq4OuxG
Tejh2NdEjkM82lRx91j152egETo3MvdOw9rpUqIdgjvCC1QU0IFcaFpmAhaf2MF8RPZdCydwF/By
KH0kjK7Gmdf0J8dPz4hRtM/PbaNAvWIeTEmH6IIO87tlavBQJivKIifgtrOxb35QUyhHBH4efuzP
ads89Rs75GPZBYtQppAcwoDzXSL8dMFTY4xH/GZXksy60ppvFywSCDHqAo91oRpBuzzdzzd4htmf
OfPdvhIFr5qAeZsKKRFBjzFwJgqSCsuMUpYXJjsZhRTWPJKtjshW97l49qO/eVlumoBnB/yGgltw
bYVBBCwCSqGghYE1jRpSGHDELBuhwQbVhBLUOiLBgvQ6HkZ53at4bL7kOtMFYanTRcspj34+E6nl
WW61KpknI7SJYR1h4xGvpM6yMdbEtBoCnAvVOlX4X0srUJauKEXqcwyJLTDqg6LjxwokznOYTnBW
jGH1WuDV8I6gF9k88hCzeb+XirhPX74GBytZH0hDDAynxQMEnqOGdDnGSOMGhsFRpeIgefWgulCY
SG5xDTpttOQcHLt23mq3U96BikDrLkfrjiPDD4OB1RyfuhWslIpoqv4GkMv2YiA6u5MR0as8ciLz
5b4DwOoEbr+gi0C1lgVmuyFjMjMS1h30Vl0pc4y7NdLSv6xxumuBwHwRefDoUoeBjQHD7e4F0Lvw
EZ8bb1seKNCRYFarAp8+rPxMCF9Q4l6jEAirDgQUkcjLWi7GuBx1s/518/i0HiCh4qlft3e1RR83
QhMB88oifhQjDoYWfGlwnIUo85LTQujz8jnapnbzCG84ltZxcOMk7EVkgVQHwXdgmndWYed7ie4Q
CFbwArzGFElzU1im0I+hPqWwvkurjHeSn+kUHDcJtxcnoXwRfae2BBkIorhcNfNnc/+lGZjVfYK5
92XOSzCkPREgtiVIS8tNykF9FAWeDNH/V4J5RNCwo5Hcm1rJMbXGcaDmAumA8QRHUwdrnAMFWSAh
aqG0dgIDx212BsBIRLR5JLi9nstsEJP3tIRRut2zHYh2SzHDo2VwIn2Osa/KlJjcqVMJUiLvnQel
cywUL6wwFEdFRmp+pyLQOeaz/cGhg9gR/+ZQ8KKjkeBgVxUZUtJIjD4gXoOHg0maGGOPcXmE27MJ
yrGVE6CSeDnsQST3t55XWc9L6X/paLJHyIXeF6zALFKCPFEsl6R7xOAUEM28AmPrG9mHIwlC6Ssa
k76PP7ifr74sB6K3cZDWco8qMLe4ZoPqQzRYn5YlM3nmHVGUhmv2sJZh8w1dHD5++LHHm1g/LVf1
y8PTft3oTgyJljJHFnTiDZoNnGO8CfiJ0nlHbU47SvrhBndQUyAEyw53sRo2F7EjuJCipdvfRoqW
zhrLjCh8xjFRGDNpKUewaVcgSQsttKUKps3ZUUuvE7Uc3BZ2K3LE1rC6T7HCDNLDANOcu4xR3CLK
McDEgfOkdEmRK05S6rXLVBzNsa8uFCKCaQI/9hb+f1/mz/PVBvTpHncYn6/nmdCegFGPMASG5uBC
g8opuSxYroTTJI6yMa4vECaPvW2C3w3CfvfHKdmW6lF5y2BIELkNMfO5Vqk2Nge7UEhbSA/jxQ+i
fmPnKI3ID13yBkzJiK6bNX9skDy6y8jkeounZcDUVwzEcNzjGSMYd0aA3nOCZ06A/1GewWSMdR9/
n/DqJBQwMmiy6V3g2dT7UVQkzEIO65RJDTcCVmqrUuUFST2C02hNLSP8G0VF7lsPhW54TOjxlL5p
KvtYNz8/w59R+t3MK9x6AlWnEZINzFXE8/Mw4E5RyQWT6jzWpaCho1jeg3tG3ZGx7uyTVi5/mX19
GgR57iDlPGjCAjOICjCnYR4h+1kG3qLKwHxlQuZFpv8mpFzwOEaCBJ1QPNIJJXui1T/W95vB9OuI
ySW1DvxDWBY9ettIIGwcEtsqDfYRKAn4f4SuNKgmaF/fHZ5lN9Xd+Azwh2nPx0237C5qmwCA4fbM
YlBFG1fOwYTWlpSpz1TBMpeV+Stps+emWExP8nX3l4PuVYuIdqmbPqfhj4d7ug9nobrLUQS/0Akr
XOo8YmfSkoBGoRlYebmApTSj4EWOxndQzyRsKyJAs19vltXj6re9BB2rGckNMUjvSg2iLwjUFBQ0
BQXd6gwVRanHEciDWiZhU5GlpjlwR5erRR83waXEda+VxBhNqcBIP4d2BBg1RuAmkzUYcym95ydd
0X21gVAtYdpYqAXpkZEup2Pl6UpElgKfmOUeGb9LcAJczlKMMC0kNUa8MmXPV5594yORdUTkgzhn
1AwDFNn9mRN4adZoAxM1twJJZpAlF2wzmP+Yr6ORs/5VnfMKfmxwSyi9OjwtX5A7ekAZgukwp8Ko
nNfg9FuWEmGQ/EQg5D74nDkpYVpYkylrvl0YVSjPMXKR4T3DXi8oOTTjF0yNtwM+TYewrt0j46wD
NDSmAK9TyLSUSCGOQVUFAfu+FCKHqajgvTxrV2DYRrwfwzsmE8SxanMArh7r5WJnWt+8PDxA/W+h
l3Z+f79OHuZ1k9x9TeB5w0r99PyIFAXw5Dbz5y9NG5y8+c9yvbvwth2dzXz96+3i8fn2aVm/TTru
vw7677aCfzfN24QMf1w3m9v1pv89bPi16snfqx7+GPQKRqBtD+OywJaNtQc2FKF/rs3J56sE0XSG
44v8MNer+68JRmbglcdF0nuPb5PZ42Z+/31O+YW8Sp6b9bJuVpvvybvvyD/eJOvf0VSpbx9fNrcg
1suqxbaDxuptCeT0/sebyc/Py8387r6BCrDxvtrsgl0mv8PFTbPa1Xmijd1Pw3awim0rSdvv05/P
04+zT+Y9fPtYXk6vPyST7f+zf/1UHi92M/13e9Vef/owS75bPa7S6nF+36yrpn6TTL7ff45U0F/d
fZmYarP8DWk+Zs/zCl/fyIeCX/mu/yOZ2MsEIdDw7vUGtz4jZTIlxajMsoULPPGJlFm3GwZd0XW8
0KCMgDK4ObKC+9uX6GhL+zK8K/NpupUPiQPjRUhfhiUTtw2iBq2Gbt5L295IQvDGydWgPwOld+JD
yXAMfrxJfpzOki8dawUMRQW2+ahALgbt5MfKfNftUeObkiRShLLtPrt7Epii87rGE8kEOoqRaIPX
/c3kHejK5j4x+EtyvaqOPFc1HLIr8/79tT05L1rSr51YlPdlvoA7XSdPx94fRvt2ZDL5qVNfCTzW
p3WTTMEievWVvpkZ+y65/GQ+uqPCwTDTnWw8gzIbmASvTHQq9/3h0M7nq9u2R2Z2YponfP8KwOP8
ublDLoKrdviPTp29bEwlk9tbZ2bmFdnYBduWoVRjmemVuSxPF8ppMG63t++nH96VDl63o83AqyZ3
smUZlpmVv8xOizZ4pSlry3z6MLXX7qR0eU6Hsj20GvvohO7EGTzTDMps9c1D84BpoceURz9uCdhq
f0ntzq5nrfo/PQoX5HKr2ITclvln8gDaZh1M1G6CbgW6oMMyk/8BUEsDBBQAAgAIALWbJEq5vSe3
ekwAABMjAQAiABwARHVtcFJlbmRlclRyZWUtMzEwMTUtY3Jhc2gtbG9nLnR4dFVUCQADpr1tWKa9
bVh1eAsAAQT1AQAABBQAAADsXVtzo8iSfl5+RT2c6CPNtGyKS3EJr0/IstTjGV8Ultw9uxMdRAGF
zTECDSBf9tdvVoEkQJJt2t45saGjh5m2gMwvs7KyMrOS0jhNPJZlNqp/Thez+TWLfZZOU8bQHyqW
sf5dGtP8rnkrfA6/JtFixrLDr1fnNxfDw58O689LZz6L8zAIWWrv5iJ9ZWkWJnGTgSwNEp+h6fOc
1S/9bpIe0VDnkubhA+sCuhTYoHFDpPFzfpfE6A/F0izlu3TNsnkSZ6Eb1cjtkPgmYyk6O21i0mUs
Sac0Z4fTcNaApcjY6Mm4J2sIW7Zi2rp+YCka6smmLEtXE7RNzgvqIbj0O8LyAcYHBHWw/gUrWOkC
4HmS5htPYSz14yR+niWLDN3cVDAayklf6+snPevE0HqGKVs9bGigKwuPBieno9PhyakkSRw56j/S
e4YmYewxdJIkuY2IDB+UMS+J/UySJs9ZzmboLM7ZbRrmz1y9OfNyAYXFFNToS9Igpdkd89H0LmXU
XyGRQa9hNqe5d4f+XLAFaMpLZgd0Po/YwYyGcS8XD0jS8Mljc060Ps7D3wfOSf/U6Q8Gw8kEdSZn
XybDL1+7lfu5cawG+7fh9aVzdvm1f34GD52eXvOnaI7kJ7n8uC71XcaCCoVLEKjGcXB1PZ4Mncur
6dnovyTp6wW6ZrdwZ4YuGU2B2JKILfV6x0jizznOdPj7dGNqlFyx7Ho+12xv/YVvMa7pPxACu/jt
O0p7T4fp4xOaXPzn4OrbllklSX1QXOhRgXoyZx5MKQ+GJkjSmfjSlgbX/ckvZ5df0HQ4mdpoxvyQ
HuYp9e4PH1XvMIRhTAMK8+Nwyp7yqbhAfX+wYAd3+SySpC9R4tII8StgEYsgAPvvpOwBrI8h7y5N
4iRKbgFEtLSRri1hU9OIoWmygQ8s3cSGhQajS5Y/Jun9hkr+oxgMIwgCSyOB77sqmg7GMJBxDLo1
As81PV0xiC+jyeQc/UKByR0309Ory2Gdl6WSVrw8M9jJK8tpmofxrWAas9skD4VSmxxNWX87R4/o
1k6OMBdgIuTsAAUwZ6zPiKXgIOUmQ8sw3srQMGmg7lYnDCM4SHywyUg9wJqqmcp7JVNkFRtNybD8
eQdHAk7ynaKVHF8WzTLezogErqW4L5sJ+LwmA2y9l0EpyTYGumFZlvxmBm6gE4YG4FqFQfssoIso
h1FJ7kMGDJKU3jL0GOZ3aF6slofuIvYjhsLVSv1O/jJBI86U8w/BS49+mU7HAwFgUvLP4BoYSW2G
/QAr1dJrrC4nL7GSiiUKlqZyzbLtN65RsJhVrvxKH+jES8N5PkhSVkMm3LtvqBQCAfRtOhKM0M9I
tVCnn0FAwb1KduDN57aqqF0J1wh/Y+6aItogjHXDMDwIJ8r7bHvlyMGJn4dZbtvg0DvA17avWXC0
9b7jT5+6gAhjCDSazwtgFu5KSltcqhnQLbgEICD+NkwGUSqYCi1hvSuprdBoJtiRW9HSP7MVTR7B
JDmEGaNFLAKZvoA3oFHE0s6vk4FtD5+YN8khvvvp85rEr5MVCfha3AfGlDxOvGTOBHYVxqVTuU2g
100I4rS26An3WFECJi3+swJxEsY+GHMB9mgbtmPbhtU5upqzVKxfR586f6EWup/Rmt2AQvDoT+/C
bJimSXrC7uhDmKRd+XiTgXcHoRUEFFn+E1cl0YQqT68uSokP7myVgFXqbTWpUddrYwdNaByNYm4Z
V0PuSgT4/eMf/0C7PyUahVDfU0zwDEBLBpKaAguKoWqqIauaJhntvIsSBC7RURRBROeAy06fOUrL
MnXJbE0pAH9YpwTZj4klqzUlytwNTCZRJSx/lHQYt6RkagpDD7MhpzJN1g9wKVVNwkoreljWdeIV
Zv/r2ZQnH7bNwFYWeWk4Xy+W00LYF59Po5TOCjtSVXBu5XPCiEywaKy2ggApDIHYXLDgaVk6TyHS
ShswgPktsB2K73iWtkRVnXOFGJMr95+Q0QmAmmmAqVfIFigNDlNrA9OzLIUGesGCPdBoQXPW2Y5g
kixSj4ksXziATytkX+E59hmJheMSUgB/nKdHJZEyfTsWnpdAjNwZFFEnfClQYwwTFOttUXuaXLCH
0CgIIb0dvox+LG4DD3XNaJbEHyeTKW+KpMBKCIt2m3VZoS6FcLPiwC8gqinCoJUw/3ppDZ272C3Q
wPGLWWK0lFoH17OWejnq4AYSvsKtjfIs/pakkd9p3LpFpNUdsCp9SwEIS8Wj1UsrqU5ZTsMoK6Y9
eJlOE0ExoHwRwWZb0VTXf4tobWTaCpzgXbhNAritdrhdakAG18A0jNgMXPzKfQ0immWhV1x8VQBh
OTywrhETEDUMEBW5JUQz0L2dEMElzmnKlti4TfOYYJxkoajJbCi18fw5u6XeM69wTRZzXtUTsQXk
3dvwK4YJ+HEb/KpLA0PW1/x/mV6cF5SvF3HMTSNdxNtVW7L+VM7VLXIJsNzPNqkWcHUIcxWlLVyd
BC/BXa5pm6lDDTXkDi/jNqwdsLHGYautYFNf01Vah32aeAuOZEzTrKbnbJSkY7rIIA5OGTtZhJEP
8bXIvlRdK1DVHy7UKVuAS2uLi7jkZVzzxWw+Te5ZHP4PS8+TZN558fbJc1wU/RbZBcy6z8hNkqhi
4GMgN2EZr0wX9oFfEEkFX6foLUVSTcVvIVIrcUTEo+m7EYspSNoi5hHn2xGfBWCvYj+iNXZs7Na2
WFkUoyV2HabkK4bNMvib/wVBQD+AELGciWKmgh0I21ZNdScyzYIgRjHbIgt8/DKyOMnD4HkUxiGv
66yVOWYigSxgFnk6sXai01U+8ayW6IiMAxQnce8hTPMFjVB+t4jvUZ58FGTN2I0YA2K11UKn+aYv
WxUXVmO4xDWIQuC0Qif8KBhc7V6BgHAAuDUAz3oFwKZizhPq82ymohnwKFsgGbxk1Go10qhmUVJZ
POu8XlCKqkGYVL+7GBgNMKgtMRgmDjYx1KKi3eoZUA/+vmaZiJNK9ehrcDUyhZuQwU2oWmuQ+mvm
/n7k3OR3A+fuTW23mMgelomCdvC0bfjLu78UAMsFmmdgtZvKeiTnTdryxgbezTsQGuHigh1XYrM7
iDf9Yh+uSNCt7ZAUWKnUdt5eZqpVXakKssuBeisgDOtjp/pomXvz+dcur9E9TQWNr1kt3LSUkcPg
/tIP/VENl58swDqKujGPopuPFPNQ2HjLZEV2WVBxBtevIdm4k+9birLLGqMOi+L1Jj6iQX6rtctU
LEhvMUW9P8o761z72SmLINnIRZ4UF/v1pw3I9nc+fCZZFWx30TiYzSC8Bx1qNR+/bYumvjnDTI3q
yHGI3vvjcnJzfT5YgRElphg8h8O3odbf92N/ydZO4ui57/HmDvu740aJd++E8QPETTwztSRNaYsG
Eg70biQiZVMlTW3LXXGD17gXPLZj+C7Kc5KmteTryzqDMXD++1IxaqyLlcwpXatCHL9k5TSNe3gD
uZrQ/zwRLQSjh4dhc0SwrEma3gqcaSoy8d8ADptCPUtd9DOIhYfj37xNXGNMnMGoRmr8m6o2viqo
DxYp7xhyvl7Qp7o4jiIEkiUNvHwUun65Q3jgP8NfO7cjXUtRNNlFzvJ+xyvE4BsyyYLXnGEAjXYk
VVkG37Um2VC7ZoDazba2iA0PQRYcQQJ4wunx8g5kzra9VIDg0nlIQr/clPmM+B/FbghwrHlT7jxG
ySL2i9aUDY46LLyez3fg+2lKn3kby/Ny04XPZVPS5bYSyIa+XYI5S3lDTLmCG5Le1mkZASbogm8o
wwNPkN+US3SVsGIqkt7W/xiQzG4j7CwprzRsAHW1nYaBPMMwlQaj65vL86ursXM2cQb98/Ozyy/O
1c3UmV45fWdydXM9GMrOeHg9urq+cEY3l4Pp2dWl44h0UtK1dlw1P8BewXUR83LCaVJIlfE9Ll0n
kq63paipQZUi/A9IWQqAIy1JeQwUXiW0apri20mAzdho/Nu+e1e2cAWGDNKmi3jKsryT5T6MnYNt
26Xgo5wsT8FXHvGNzM9ofZH/7eQpDfNMXDuuXuR+waN5khaX0HGlZkXEblEdn1iKZaJ2Jd1siV0n
1F9i57kSSx/KClCxM6Vu44VFHUq3WvLSPIDu157ogIOu7fIW4SxM/G1sVQVCIiK3HR7L9BtP8A2F
7awxTxy3sNZUCKUJbsXaJwZlCuLtIiIfbBLmKDhxFTJCyECE/3+O/C2+v2nFlqL6Ogyc6AriqFcd
LNgWLSlAIBM9ms49BBIsqtOskDJdzSA6oHQc7qb+FPenLF+ksVjsRB/Kmtq8aHupkasCMyzX1w0T
LW90Hv8s/iFUa6qifaQVOZfn0ULOGi11JbHyYq9OZU3tzWhMb1n6AwpiAUX3opnM+TPJaop5exBg
YqJXVuzZbbperxVMlqp5O0HD9/wGwZWCdGWlIHXvTELbO4n1vZOY/IjEWKYgccZmj7DwOll4y3Os
LfJ6r0w+jeiBLwcopnGSRYzNORHLWorp/fzzAd7uxqtUGFGZrMiVhT+/C7NyDtu2IOxACNiphg28
1m/b/qJs41o1g1XjB3HtCEefebZSfqJ6GGHojd6511sXPWYpRMT7ryJ+CywO6J2SNWTChgmhUQlG
U9Vmg90bRHQJVZE7EwFYKU8F4yIOYYFxeGJxtLqJtyOE3sUC8ozjT/UQ78ckEqJYEIZUKB/c2YQ0
29zeIo8Csc8KKrf6mzgPoxGNMvaXC1bsE35atRDUxDPUom+unXg4sNbi/cLoHAbNo7BQ37J/ybgZ
fIMLYJTlTgjsjLYyUT8wmzKBjXtFWWKylK5bFFeq7GSj27bPz/BlxcJrdqKGMqVZRU+cfpHmo04D
1k/dTveY+wA+48p8qlOWf3Xe1lwSg+HFCoCz2uoigKzmQ8CJRr8xLwd13kOu6NsxG6Jh3ogkt9Q7
VgKlKJ5UjMopXakzT5On56OKm10A2aMCGCB5nwyf36XSn7jfXtUkNAzacJygrNvQyIG0l9kar/Tz
rsx2MYRl+esYwk38Z7HmY9GP2ZISpmtKqzSJmKKvsmUkomPUJLSOQwy7mm406rhFOb91oEKCwOB5
Iw/qs1teJphvi1LeQkh11RUhUXtpNPC/oV7CsKJVSy+8RhB6kL16d+NEqEPBSiOaeEtFR2feZkUH
qzppLNsfUdJB7YpynkIJxJvNsnynGM8ucqr7SZxlUYcHNdSXsCbs5ggxi2FGuHYvJ4U9OYWNFZU3
sDyxfnzMJDLRh00iC33sJDL3Ln2x9k5iLO+fyPtXjcPK/om8fwU2vH8VNrx/JTZM9k9kY/9E3r/g
C+9f9KXsX/Sl7OFe6P5FX8r+RV/K/kVfyv5FX8r+RV/KD0RfJAg8gjI2o/O7JGVOHs6YL7Z3N8qm
b++s8D1iVDor1tSLfeMoeeSENetHejZwtROUDxSrtG1gzRSV1I+p+GkfV/HTP7jip5i1uvlgNEm8
e5YfzNPwgebsByxfNoq9/Yh5+XrY25SRgYxORUm6AHNR9AsVx8+0N/edw6J+3LBoHz0sFgyLeGW2
v8gTfn6cN10fdNRqQHTfJaDMOd9hunO8Bz51ftAPMUOp+CF+vpxTUjOI0djQeH3rzdWJrpbvBQuK
AyAoXg22beE9vgHt4t1isTv8qfqyhtiYLx4L49txAak8tom//d62qcKULfDYgtmYpvdA8zzh7crw
7xUsGkXPZ7N5VG+8Fs+I83X8czpzfXrEd9dRp3u8fuN845ZiW695Cz/08RvvpH+O6Sz0BnyjnL+P
XumtEPt8a4TFGyqy1rbFwmOa6VnypsD839cs4weSva6MQlJx3+r7E77tuO5wOBJXz0GQ487qn2+V
17b/Hgl9/b3TLZoW/gpmMnA73jLGnNhqvP5KMK2NxCI1GymO6NBbG4gbBP/XcoqlVuUnqZTEeQeK
0b4DRTMJsV4GO0rSF6FOygMzhW/U65AwNtp3kGiG5ppbnbhtC5e/xsAq0Dji47Ud/M2RbTsRx4Ul
aae7tAbRnQ3D3KBcnk7wAw0omqH4frOrzFm+cMK/d4oY1nksDlcRPuyY38Pfnzn6ADk/laPyTirF
SXX84IAt/RD8ZT6rtWpkz6tpZUl2+e+PkH77iwcfQPh42UXC23BqlsTPV0CdtY5srHHTaddD4/ka
MV1aQb8keLSD7dKA+bupVeaGpXbbHiFmuIpLWDHLNlqMVt0xWDcr0UK5aHbbHi9mQJYD8ASvxzyY
7mSnmNau4ASCxW773pfdDTnaxzXk6B8bwqryv5PIPUkiVVxLIj1Qrjjb+iDjL54vIubzw8vC5P9N
8sIdwAWXYNd7P7AogE4Qz1Cu4lWkIMZ8SwfWa6QsVUOj8HaytExO9ppF4uR84b22tWK9TJSAX2SC
6HIIRjAEZ1fTlXHqarMd63WkuqkwFIS3BZWL4oUqgomI1z7GzI2PM3Pzo81c+bdH2xePtn+7GTLy
yt+JEEeP/26S8gcjkDjoEXWI1nPDvGtLCKX0yd7ysw1wwV1d4Ix1NVAM1QBNpt6uJ/zaBfhYMqEy
Z+KHlSsY+57mUpnTynZdcOdN7pqqiCe2XuC/DZGaDfbiJn7BWj/iuablySbjkXGK5eoTCvV0Q+VH
UqUYN5/gHy4JVrYwwfyCWpVE4cdiE9PkFzR+AbAG1Uf4BX3LBYUzCedVWqszzlEaRA3uWFZkHvqm
yrYxAVrSefkrEoPxTfHjG5okDokWP+hR/hzH6kkiTbkvu1zM3OVvyMAyKEknYUzTZ3Q2o7css6Xl
j248rX5vA/VQ9Uvf8kEs9HPj1d6O3EVHpqyenmpk2FN0fNpTzYHSOxnIes+y+rKhG+S0Pzw9fv23
bqrsmIc3McCXQWCgn2Eeleeu8DeyJ3fhrJxcAo1FNHM0IINeH58CGms06FlEGfXMwRDLxoCQoSxv
Q7OLagOXsYHLk3VlG67ioMoqNDw08bCvyf/L25Usx3Ek2Tu+QkeatUUx9uUYK5s91IgtSpq51pIl
YRpE0QCwu6Wv7+eZqELlUiBmBtYXLJlREc8jfHnuEZXJvPKVKVMV/gqJ6RaKkc264usLoJ13fI5u
q6SaodttjSd0l5OpN5brP+FD+LUSK/UnmsNodNG5MGELgCbjMZuWsxZqtNVEl6NYAjruebWnxzeT
y337+A6e+7dx0uYMP1Zc8il+umr2+83kET//AXK4gNtYGV30nhUlEtbeKiihEZhgp3UQ0cdqlnAP
PS7jHe6d45Sd3s1w2tA/EHzpUUQLQPHx5kKwLLWcMcEqsch9ZNZrYZoqyuV2AejlmX28eQ51h8R9
BnVnAp+oxCDk8JTVJbzCVqGt0kxCgaG5oTJfycR5NilxH/Ky5p73+9z0Di3OkEujNjMXQBfNZJLX
X3fXhxU9GKX7c4l/jh8+3nz99f3td2+kA3qJzw9/QIhmqvY6ZGajhGcoEj4iqcaa5T7zqkMrpB3D
i5vefrje3MFFvq3/fOhuH9E+jrL6W/fPh7f9c1NuH+7fDiM+3T6BWA3vBnlq+f16+8OnebtzuT13
M+WSXlBoHK1Y/L58/9OHdHe4/aMrd0hG7r57I1ZaroTBZ/HXikT2PihXbWReJM4Ud4GFVBwTstai
Ww4xxedFng1zSahZw5FU9MaamVTaDKsJP/axtB/ff1zFo7sMlq8cCaClDq4WZp0SULyYWKhSMnjL
nFRJ5KDmArSjpt2/JYt4hxD42/X2flkDjw/vun87wzESwe7UXATn3XxhflzvusPtf2s0f/fh8uII
moKgsDhwfExhihA3I1ZIuqShqZzr8K3FWRjq8gItNB5J6MJ+LuHWrftFij+9P/v8pww8x8V6FA0i
5dBa1BWCSNeYUnDAHmbMgjciupKwWvoVRboE6WpAT0Zj5Xa9fZLqdLFTa3qeFD1M5Ls3UM6VHOwF
qYICZciZA7+Ac445a+ZM9NzkqrkgKvP1/o6U5S19+mwsH+SaT8eCBSo7cVr5cHO4o8fSfvdGr8KK
PtD/JgQtw2KhDxaEk6mcJAtFB2gGURnlS/PuWYU/e9XZ47fQLuj9yEge8Sy3PN0eyarWYi6rkbve
HjA77z48vkrh83pzfXP98PtJXaAspCuxwpSTYa4qB11xGRzNawRrxOosldNBPyvpD1+623cfliEP
za8Ho76AZCSN2e3m0lhhJtb9Y/f58ND9ct394zi5iDT9AgpOQiXpvQB+iNLAnIrILOnUmDDGaq4C
QpiaC/VxONFxJtt8nEvOa9ruaiyAXZLKHt3u5+5hfdMXPpB+fv5yXCF8aMVXenBTpdYIV+WYiwZh
szbJooZaxoqAnBMuJvMSkd59/JleynBNT8J/kuUSiIkYbkkMNzOr7WEN9CshKO73Bs0dXDSiRpEU
PxrIYAyg3DEoEBqpsnHiG/EDfV4yC9ya4PRznMErawaTOGz+Z/sU46wngy/GFAOYTLQEjZERrEqA
WmldXGzVIp1yZy5n0sv58Ot1mHuf9UbsdrtxhKKff/lY35Hn7lWXFLchyqaCmTFEjlxzLMFZsxrh
fZTgABNessqnzpfn7HT7aoyxmwPf7rqe+EPK9CF+OnkPYWWvl0lnKby0zNSk4CltYclBQ3PU3lt4
Fhvt855yu+1uaO+r+6aD/Hu3peCy2GyEbyTWXpq5WHsZjtb3Zf15JY9ySVKG3HIRYGjMu4S8oMnE
UoIPgaiq+mpME3GsDGd9TMZeL4wdwsRkPnXru+1vfTpFtIQ/0hPC0oQJyKU8mEkG57cNpgOaz2oS
CUl+KC2pb1KvF4egE5Dllqfb50JuuJu7t43Uer8fPQPwr1/Xdw9/DLmYGJyDptfFakipco0OHpFZ
BeqlkkWotdEz8IDUbIHH8OlZKZ86X0b+dP9qjHKuGxvVbSbxZkhvHg6Hm83hn6tI//00/NOLovr1
EooEcbwGA60JxmbKfSXzFvyFR6Fzs5ErH543h7POLxjvWYuRMNrs58Jod6ICS3XaN0pqv7L9W3vF
wIcz+E1rCRrmkL1rXqBwClzfwT9GYWLm58o/dPp2ufsRPCPCHB4Cca8maHzzx+f1ypwcTG+ImSPL
FYm1aEBOMrwylF8w+EHLlQKUXMeGeN7JeHSl56NbaY+T85ePJx+AkESDu1YQmjA4PDJ00oFKe9c4
/hXZ1pJtk88Hrb6s9/6HF+Q7p8GvxujcEmR/9MfDyKv0xOgkgi7vaR2VSrXPyNiERiCJwJ1UEkjg
bNPSIesudjxz497GQLSaA/E7NWVl639kSHq3fkwUeg4Q8DGvde/JdAgSXrWEAndma2U+ggkEH6KU
vAqvFyLFuft6Ox1hmoqc7o/g+/2cVG6C7o5Lv/365f4pAmhlejsIwnhNZULZzyAcP4tWKJaR+Eof
OJiyH8/geT8jAGs/ZwS4KCYO8svd9e2Z4119pP/JEvqAIK0l/1K9aY5nVlzRsM4qWPI+siya4aqF
kEt8Phys7zaH228Ggo9jLOet+ltj+dabBfnWu0mUq+09Vc1vj1ydZll5YbgInpVCqWp2irJvyON0
SgpZIDLzlxCeY9/LkI93z1Fv4XlmqLf+0V0+oe43fM+8fR+cnYK7hJ5wqo4gZiFCJVA1/GaKU2kZ
9JZ5mI0CeyDH/+yanA+xLMB5i5EQCGELQmxOFZ1Hp3y/vt1R50cdh8OnZBvgZbQ+qYAEyXkLRwHO
C6YumbEgvbDI0JJ/zt2Peh5B2+zndHJLT9wdz+8B+eP2hnTCDVpBv8mDOYzclGWRcyrOtkLZt2eh
6pqpgshd/WZimi8kpsO9Edwd387h7vS0aPDXgpg5lDQVpwnkrRqFjIPBKRjKNTWLojrWvCxVFMFt
Fa9eKvhruUBzylimMA96245P6eeTy3n/Q09CYZ8rklAIF1ZmUJRoeCgqViqEwH0L6LsPGVFZ2giF
4dwl+Xw4/OEir+xvnSPfcTt3KTu+EUefvf76cDjFPU+eMYRQreCNadEyZXCKxQLKbGrmOiRrwJTH
/vqpj9HQUsxNaielmOx/fFjf/hpv1ze/31/fk19wj7R90F7hi0S6DgwKuqA8xTmnI+NIH4o2mmtn
Xl0rziFdKMictRgJ7TfzEEUXZ7n9UzT+7o2TfiC/wx8Qu6rSai6S1Uw7FFJLiI1MFpQ4WG2Tcb03
+f9kK+ctRiKE3YIIoZv6mz73/eVjPA1K6i56dZePFBiabJMrgcU+py2VykcR/gd6lHmDTXv54iwc
Qz2ThOPuSIi1nNcudvCj+262DvHnDOgCaeLgN4e/iGh5nkWA6ttcaLvBYBGylIxLMAVpXM7ZvwT+
4yCXlwE3r8Y4xQJ4uT4S1sW9BZtht1lmZiVcvJLV0rR7BCAdlRE8CRdfc29hurFwwrlQttl1u2np
kY7u3R8VdHibDJ0bozePYzX0StNS6BWV4UWRsTgkUc55cBtp4A1kHyN4hH/yQor8iqn7CMuF/H3U
5lx8SD8PFbi4fcYBrNqnSk+avu9TD9WnHuQCj3/3OZRJCA5E6uhQQkNyHwMWtyAda6KK4EJ8vSk4
4rnQ8PHuWGzZLYit18c40x03RY5q6zxZWAlGlmhZSvANKieLLAauguK9ENlkoyd56aSfMYb51ojv
4MwmU3/2lUAkVqGfaRNokkWkyMwZbAV6VmkvyzbFhPZWWRNtbc9H5qeel2Yun90f4d7p+dztJVRm
O8L99z4P/u6N792UH/ZXTEtaSCpjqX7TDabhQkKOGhxv2Svj+atVDfvxl5sN967GAuwWpJolM993
D2vMybrPz4bYj0i3UpTpmqa5y7TVKzWStCjAqdEnAyMsiWvJcfn1tP6I5FLmMNwdy7heWrn9ekJx
/vz+KdYjMlKINIaWD9HRYv0yy81EqkxqcMGmWW3F5Uj7LaG8Ort5QrPc9On+WNb9nEnuFVnXUHb6
evuP69vdqRxmVsRjmq1Jg6oxXYSkkxaRxWQ0y0EhLUkV3lItZkXnvY1gGD+voezNXiywk+nExJ8+
AZhzlHIERBgiu86FGoRl3FFpOEcwFAFX1JDM5SRklMm++gIAxwUm89Onsaz7OYPe+zA9AUVaXgYT
ktTaatFPPoJkNDoIZoWlwptMsBxEUK9r5bkVnfK3zadctIjj3asxunlxcr+lva1RieaX6113eL4Y
kF2WFn4YQcFQ4Q3EXyIFEDbmWJQTtT0P/nyIZQHOW1yN8folIcKRf911nw9/7+ibBqdCAAVpY2Rt
KlQEjIJcxSrkeNwEpg2CR5bNh1E0e1L2aX8TMOsFMPJUmXj3YbIT7XgxwmrFuIY6U7mW+SYEi7Zl
BDpv5DdK5/+LneglvGYJL6X/+4mBUtFxfX1Lx0n0Y2lOrPSQJTeqZDoumcjArxJSoRAgU3bVmayS
1sK/MHU4DXMxfTi1GAvi+IIgfpr050bzVa7vuu3D4e73Po71mzIi6P5YTAvGOsmMqRCkBSRxwgmk
0z4bG2sN2n9zNU69f/vsQ3tB+0mjkdSdWvCvnVZHddvcf0Z6dPTyJKGrQhuuM4ueQrVxmiW4fWaK
aTFlJ4OclMjP+hiPrfXS2P449pZeL3kikJQaBKN9jDUwGRNMzkjDAlJm5AfRZU2FN+0WTe6sqzGE
hRIzLm5OEO73uxMEIxxVdXrbl42XZCMTCrRcYbFZLMjDkNErXRBYhFeTKvdTTxME2yUE0wTijLgN
27l9OY0+9/gv/dcfOUN+ZAp4YROaZsgy77RhreWSEF5ycf+WfeXh3kTS/YKka37MGf44vVLjDRyD
HCY6qZqSlo2BVigQQ+9YwNQjPfeV6wLCGPN4ok/djAdfm4XB9+vpNFdoGidzdv2JGDo/IJ2WrEG3
mPI2sQjtZw0O3ovUHxh7PUoa6wWfVceyLFGzbr89Km25Xv96e7inlx909/d0Rn548eHTHiFpipZa
JdBROhUbSIUTCxm0NJgohZVKpTCx4+f7nUBcyAb2OixUBfovJPfZGSVeK0F8TVgQA+X7TQJlc8uw
8+Kw6iDQLEmrmLGlwOsUnnz55gJ8eBziMrE5trga410IbXsyTTdNaW7gHezKEtPHL9qg4UZ4hzDs
CwU0B14QowiU0MA9eF9tUN/Y3ECvl3OTmzHSzcyJgJfJ6enOp4I1yfxfH+J/0omUgY0JTjZHyJOi
RFwx1+BZlVJgkDwLppWEsotS8gsOrVLfl2eb7l6Nofo5fiH10TW0w+nV50cdNr6fZ2ldDLFqpoWi
8jrSDl9oNwzeOAdrrG/t38foRxWzKeirsXBmSeJTAeW37vrzbn3D1ve3J6+ojSK+1Pv54EWpmtMW
P9IZZenEUw2SDiFGIUyxuYSx9c57HAHS80o2XTztmj/uW+1u7+9PWZ+VhvbDdH9UTSAXCFgCSaxA
WGRWUCNmlDf0EA0nVHluP+ys3xEsIxZgGSOezmn+PD2ZWVw0lOOpqjKd+KPyoTNwGx46blMIOb0W
H/55CfF2PUfs7fRYz323/Xp3/QACOVRBjFPKHXcXq6zG0A6I9BlhR9J3LeCs6ThVArlwyGef9x6f
Hnu/dB5puDvCve52c9zrblrAGTbCyQCpZCtMf84deX+xYO+GOLuqMlBZiqqXSokqM8hQ+T/vrg/3
JlBndRgi2W5eFBi+ajNU/TTXK01wm9Kg6bayUkAnwNeQMWXrWbYhIQ8xVYtvlmEu7Mnlx3tXI2Tz
Aym4qLrJASMKhg8390d19r2xD+fSeYkV7k1zL0FCBH09zBuQYAsObp2z8tm95lHHY2Tzvfz+4jx5
m/pIeCNPJ9F8T5KKcUWBDBNRg8XB2FrxrMZcPLiEBnd6HR+80HAkzz4syAMyMlGMT79/3hyOHfVn
B8kAPR/O2ziemrOgzIl4UROVeZMjbA8pfYVV+vyiXazRIBfs8LzJWJD93O3JvrR9IaD3u2KeS6Si
TyFdipUajkHDlTvXYmXJK8NUUCAmvCF6lNa4TFKUpcrjha25fphnNuf6+1cj5J1bEKc7nSXNv3z/
ib5NdH07+eLh0acbrqi8xfqddMA39A2uwiwYq0OM18ny1/HpF5CMpJF+7ilxsZseHum217fXD6Mj
soiOIsLZsEJfFlBNN6wIaFaIRibtsqo2PXts5LzPCaj9AqhNN9GYcj08Fefu91GNmqoxSG37o5gc
fxmkPDnFiLkG9QsCfyVDR+irAJV9xZRnjmf5I/N2I+nV/JgiXTylRN/3Tyk4MSlJYYDOQaaG9N1V
qpeWhBwe0oH3IrzalrUxekyhRr2Mxt+4edCXGy9PdYTDl9/PC4iiRxBpp4nOSjfV4Ng1fqSEQKSz
Na1w+j6+XC5njLobI5kXzIPcmjDZoyjX938bvj99tqHfl7J6Z6iF62ldCkaaIiWzfdINc2MpBmSK
pYlgWhXBvqgu9zTcpeU93h8Js7ULbnBrN8fImX+7vu3uu58Of+tur/84yw4oNXABpoX0gCluBZ2R
8yzIXJi2hjsRqvVlsr7L3Y0QdXyeqeDi1Mzuv3QdVOWu2x5+vb0eRwCkitAhqjH0v8k7VxOD55E1
6BzoXjG0Q0rfXQarEj5DFetrnE781KP6cQnUKCxNm41nQCzNAB2vHfHbj3eHh8P2cJO+7vf9Nwj7
DX5yMClWU00OoF+GDq3DAoPTgtWKPL8qrm2tL9Gp8QiXDl2etxnLIcOCHMTKhg2u/O79v4i7sh45
biT93r9iHwcYUOB9PPK0hbFgwV4P9m1RR7bcUKta24dg7a/fCGYdyUxWdc244QUMu6cyhxmRSUZ8
EfwiuHseHm9XaJMOCVBYFrh1LI2QlUSqOJoOagzx4GFJAvBIufRZC/ZX7MO2rmshcKvvuqfv+riW
fllt71a7zTCjc5es4IMnTiCqDJiAicQWR0ksAlxWJb2LN6JztxJMhRfULVJe+OOcpHQIqn6/+4+/
jZWJCsJsXbsXmJBBYJhqyLAyzBOfAdWxnLlPXOpk34QAfAitfnx/OfT68X2jH1vyKQDkbOZW+4fh
Yeq2R5SnwGS7akd4stYoZkgwAlOkpYDrThAtFO2TY8VB9HtVsdvpMX0tJjc0ami2BCFCb+ZkUKTT
vcCs+PCwHe7vdp+mpVzKQrjoZS3gwtoF8MoQ8FBinKHcJWaoZ9foMH/GeWLf9K5GG0OXrhR+1MdC
gs3jMOx+GfDIwGOOhut3staDAIIwIC+RENlDUARLxkmF+5ueg4GH+K2kWSXBYriZNKYnjZ292/98
fHl6zt9W9y81qvCfht3zkTmO0STlAG+czKRkLPJ0WHQDopLMFQteAegoV73g3oP6L7l3Z6ua1B3V
5FDZewh37rebry/DDlD50Twh3xm9ifY6YKMAojxYYUGZhCVuKUQK2sLcp57a8G/znRv7upSiUcJt
llGBcIOcRfmrp0kNkTjsJ0kGsSVjhbCA3MPCEuAsiKi9Z8qYnJz17lJccBy1EWklOlNmJdVBpPX/
InXztL2HwTyHGFdyZUmkOD0AIxGPWXdmsJIuxiDkDDU1o7TP733X1Xp1JhV22zC1RuvNOFrv5L0s
Cd6MKRg2UQxHsgbrpkNwxRpWqLkqH3aZsuU797UKbVhHoY1YZHJ2t3ef9qdLH/M5lNfsbY2xUg4m
FUe0paCPwXKUaAWhTGtrOcTkNWt9IaOzeMBMzmU4JIbNsXL6J//Rx38silIl58Jm+OI6IGx28MJD
wciESk8jt4Yz8RcVpU4lbFS7VZ05davWC54ZYAkU5+npbiybPzgZ42pCIWsWpCIQwCB3g2JZuI1E
sMwgRnfOvsLKX45/oQKluW+mzdLvS0ZHv//DT7kam2MapBgIUgVMG8EwcSmSJl4UiZsdzsXsEizc
fzsNcoJih+ceqsUO//umFXLVkXzxHcYS0Mp6xr+Q+iH2LSNEpTRmb5IsIhCqAZ0JLFOEWCiSaB3X
MlGa5OvU9zr2BcI1Xm6lN7IjvZFd6V8gCnoay1d/243Fxm3tqg2KO04Kx10H7gMJmltioxDe8GSo
4q/XruLIFwpX8fJMA9XTYJhp8P7nuiY/DF8eHr+/390+NFjLCQtgIJLsC5ohQAFeCEU0Tw5zPZE5
fQ0UWDzkXLnK7LZGoV5WTfLVnH/zw7AbRru3uv/1+eGxcmT38EaMMNhGy5mUlkjuUC2hCayOAoG/
QSKiVfFaGLx41Dk4vLixVW3VWSt8sKdNrDHGa5OeIbDCPCIbRhlYYwqrPQC4t8mKEpHMUd6M2DV5
fiv5sAwapXRzdv/q29R3H1qKSP3Ojc2rJMCaREUhSoHNFeCzQYtkiGFUS6uCz6+ANP/P1zz39I5G
hWph5ypovT2Ay4NLPbEjLK+V3RUMGbCyHNlcImMwAsEvdt7KKeYgdZbaX/bTnVeqXU8ed6Qc/fDx
t33q+cPwCGhk3nkG6+VMDInwbGvhXAbAqwAaKVO4ByRcor+yo8khxX3FDOkL1Sq26vgyvZ5TbPap
safvu+ffh6biChNj+7Zn4x+VpJ88pVjXkj3HorlAsEcNUS4FjvCw6LcvCBsTYL8uJVxmyY43ta9i
vUxXQMzFF1zCwzn1fzNYWvquFoWNf1U7Fhys80wSbtUIhlCc+Uy4VyVTbn3Sl1fNcfxzvMD95ZtW
TNGR/XbOetncP7xsP4PPivhH3WeVsHC4q7uC+EfdxxYqALwlDHnJSAXAsN7CX1KBYy/Zpsv7NofB
zyiwv9rKf9uZhit53AqA2XsPs+tQTlWrDnmmLMtAuIwArtAjOlzm4CmKRV6jVG5es34a5KZ9UMeL
rQw/mPqPu0+zBBv3DoAHQG0psSjAJ0dggjOCG+rZeZaMUG+UYDs+vBXZdD74etGfKNy/DM8PD8+/
I4aTletU/3tb41dqePZgIwvHvqUcN40Cc8QJ4aKhFjDQK00ffj6Ofw48HG+4aQW1HemFPKRxH+EF
3H8DR3TsDoUbL1rRoKIF+A+WU2hPidWJERq41FiWHMqsU007zFQCtRLLCafWJ/LS5vH71+cHCJDd
O3ukkrqDi0kQAmrjEwFDjsQZB2DFwL8UC9kFp/fNKadzbzFeI87arTribMTsc2JmfNg8D9u6iI5I
6gQOjRQ68CAIGATsmkkhGKRYnk8LEyKITCm/Nk2/eND5bP3i1la5TmCrqVh1SiTO1n0pllgRshBX
chxbgllhOeGJiWRUAdv0enHda3CkveemEVeZjg6b4XZY7/cKH4f9Nz4kZoQ6JIpg1lJVADp5JbEC
DEyGNQHgVJbMSutFZGcY0LNRW5E2y7wtIB81S9RMS0ZxqtROa1jBdahJZVZRj3kM4S3Gp7WjA7iu
hJ3KjLmq6dLlmtTpHTettJuOCnpeDfjh5f757vnhBTz3HPzAe6by0KJgDz+4Kp5j3xChsRDTCA4Y
vCgsSGVcUvDAPf7vchFceGyTLZjf1qqoWU9FN+Md7EanvijBBPeLCSiBCTWtqVMJ4j2wduDxLKwB
p3ImUtnCVNGJMnkJ2PafMZN21ZHWdfuEjC280KVY6mo/N0sFL5lojfGCKRD6aI6duU3OWWQPH+Gq
174f/EJuZgYfjNp25pEaFgVnT0/Dc8SqgsmGjBwLeeVYIlC4dJiuhHftcQNAgv00gmjDXTY5KZ2u
60m3eNKZAGhxX6vXwJd6acZm/M4vp61OWncLbGa1YaLGgBrbFIDlsbWxKBqIAJpcnChfOjPDLOs+
nLF26JDDX+5qmwFcklqPwT0TWJ5biKfeYJNT7KehI1FFGWmKZ4H7a6v0f3t/3sj81mzQgXgdC1lr
8xrzcldh8btyt9t++J4G/AxNn0IAQ5IVpFNgrVYADYIGt+8AA9KoAQ7Lq7a+p+OfiWYmdzSKuGWd
bv3xbL1JTXfh/2HyExtJyMoKsOoM2yhFASYSy3EKVufEGAA7wNzIf24b/HS91WHdMS1ukYZvD6/4
G0wcrK+vffNSwoLCSAAKgHvy6EBjrCRbFsHCOKUubrc0I7eibUxHtO2xfO+P1eOJhrTvhCM4BQun
4bVJjzykhCkeRgwFCa1yVMTZjstkkPbh22Vu3Kxuj8VcT/9zf/c8iOMWGtP1baQokgKbhDwv+IwG
oZEyEQyXc2CskMQ5awHTDHTTPm0Z+Zo1PWY3fv2KjPhuS0xdFAhAsdwA98CshPcAjhisplBRZvhS
If1Fuw9zKW9abToeYs3tbPZ9qWftHcMOUzd/cNEYabMNWFLEsF4Tpp0NTGDZKGeCcaPNRTbvdNxW
Lt4xUVtFO9h431qAHbpmonGVY/mHMRy3gQHiMJpBPFjTVjhOokomKvgNfO+rGO4CZeV4+aYVswNt
tmt5mDb+n2XM8R8JXvuui97ZFAq8PUcDAoVAHLdYdc6y0FlnldKfTCw2EXQrx1QFy5al0PDjZtt5
/bUSGe2qrXWjY/k2855LcF8khkoN1biNkDJhTDqpJNfSvd72pI58/sXXy63Um2XwavliG2G92nx+
+TrFytixSe47N1XaNCzVjHwHB4sYvoTLxGnlCEA5FQEoSEuvYgqG2ZOmKozXblpRbzvyr/Xsrf+U
/MemcxHM9vHljz1nnM8Q04JjLphhh1mfsIg6A6qwIuI8Cvpyrh0fcCaPCldakTtELDR0nYlSEer7
n7Emcb9rZtxoQ5Lj2KM7GxTXIirL2RLqZQJU57Rx5dW5sh/8/GzZ39AIL5zuCL9adfrdpJfhOa2G
Lw+7AwtvCoVY0hT+ieB00OsFH4jV1BCQXFtwfIbxfC2OWz7pQguDxb2tfsuejPjj7UK/LzjCajfc
jwTqmg9zGFpJD7hHeZg7CrtgASTFUysyCVwwaXzyPLu3YJpNRTin7umORkmrlxjQWvAf+5wZVq79
Mny6e3qe7D6osb+nNzQl6bD6GsyukAnUi8yRIgNMa0uz0+z/seCuFbvVer3Mc1onFxB+97mxc7Tm
jnjtt8yK0RGbK4qC5xvoYLHGyYBzlNQXIYMQ9i2+7fvdmZQ9XLhpxXc9neaNmP/4unm3f9kfVjtw
vl8qK+y0GpPTyXidSE454OFOMF9VcgSsoge7SBkL6hWCzWz0c/ya2W2tNrqz+FZc9BqgwDKeKlAi
y2ACATULD94TAZXHI3+wmZiTiUYazL9iTi4bkJtWQNmRen2MRmo9xD7tuewkkDW3AoOmoDAkZIwC
+ofIxGYeCgP4b8Us/7sYr5Vmu8yH2zXj8zqQYf3yaaw/QgMmattKUVNe8AJ5VIIEJ3HPxoBLz5kT
iEWMR0KXuu7EhOkTzpD+J3fctOJ2dZiDkv/6GPfz6bjnjL4xc8Z50qQU3DFUigMGYRoi0yRg6QZJ
U7hG/tPofelP11vZV53ZAD8eZsPn4fuXT0e6KEfKnRUGok4lAW3g5knEySBSIdnZaDQLumTajQim
Y82EUD0hjlEoMgPGY8zudp9+e767P+HqkULhE00+ApB2Vu4J7s45iAt9jpoxHpKfhYRnhmzF2nYs
8Ho7t8BYDOIf13fPj0dCgRk73NZzsCAi5t4TJSrbBiMVQxkpKSeYmUrQVzaEZ6Ofr0eZ3DTTwvW0
WB8yaS+T91kLHmR0oUDIR5QWYFxzhvhEcAEIUxYmM4A2Peth8XLu/S0jT7txRz7ntw93T8eIEx5W
oW0omvFiEiken16QexEy0khYiIGzHKP6i8LqiXw3rQodULlZL0qPf3/ZfYbZtZcRZ+vYLKLWUiVT
OIQaBAxURtcMkaD1gigLkRMTCuD9dXiyfcgZP9De1Ciz7WynOqrsjMrfVMmNsGB/xgMTet9FGP+o
tP7g8bQzbEwKUx7PqQysSGJNshA16qQlfbuKvJMsl+qxZ0dCuHq26lJtQ/t8NJxOD49YFKn2593U
Pyozk4ViuCTFIlGgUoWozrWdtVZUaSnVv8BJGx90kY823tIqc7u0n47pOT0QGwRuh+faVulpU7/e
WMw/7uxnq5kG7EQcRdduNfhUZiOBWD7rlJjvdtLoeFJ4TDo85vyHWdx200pvOyrZOSXlH8Pjenh8
eML2QsdQLUgj8RyoGtYIQCbEe6VJBjcruKGF58uo9zBoX+7D1VbcTsUw/Ghne13r+4fN52N5lq7t
Y7mEIDgpUjTWr6qA7TEhsLTaKha5DLYeo3k2vzYdcibS0u47LuZnOnaPIzgs7bqwpRkTnvA2LSzf
QGKmSDsBGx1okoQWFyNglmLM27eDPIpz4ZSCxeThQvdUP9VvY27pw6zLEHPV/yiI8w0SmAyFtSyo
oMTpCAEjbo/FYBIYsDeq3V5IMVNi1VNie/DbeB7eMTN/OFOvMCoCB+mTsAKPBwa34rgnmemQYqDU
035Hy9NojRDbTi8IN9Bew/Caful3SzQ0+iRx/6tYTHtqQwC040mFITOqeeSCXpf/eSX708g+uI5V
HNyxYvKwN/zwfHc7yRvQQ+Y7SRtSFjjBTR4PZvJYoxaVsVk4Z02MFzedJwO3gnWSNvDjfEPx9+H+
K75PUXl2srZpUslLbMxPQ8RgwWPDJgMmmoLLjgkAmpZvEdD/CI8+034VrsyUue0osz52BtrUrE5s
CCKwOs2RIuKQpsCx5FkGCIUdkwSbSaMXArgAJj8Ff4YiMh+5EexWdjzI7Ynatvn731fru9Pelhk7
T3CeSxCa0Ozgo2MRqYU1QDLIEqUAWxjpjN80GacVoIesbs0x0L5fvew2vx8bBur6RsYAS2J/GkUU
w6Z4gAfBgclEciyCBUtZVP0AazriVJQV7ey1rCoPaTSIn/+Y2JLFUVFBYJLcYYq5YJmNGEseJA/U
MVgLkfV7JZ1GbYUR644wm3lC+ePwePvw+AUrbKcHMBy8PDUpWvDnEKX4gjxEPN87WeJSBPwcvI38
Ks5F5zFnXM3yxkYt3qlegx/nnRHrZlJcfX1+QRc7Vv2Op5H6CB+YBkMwWw4aIYGkSANTr3hY2lEJ
8zbZuokEZ5Dm5I6ZjtuOjlJ1GvAMv/7yERnSh+9lJfUq4lmrUvEx4PGxGMJd8Brgg4nSXt3SBca+
0NAFrrZSdyiGK6HkMo7fYBeBx22t8YWPUpkcjuIufN3zUpJaBf4VcDHEwwKgAh4nLEh0PAO6xPZf
/rVg/vSIs6H86ZabVmLVUUPPqT4X+70K5pG9CaYlVgdCPcFUKtg4BlMswNJx+s/2ez3XvRWF5R0N
7OR0tvzDjG5suS8GJQwiQzDpACM7Ce44Cum5xVM6Ynmz49kOT2+F3nbmvBqOtvNu84Kx1OnIC6XY
Oyxyr+deORdAE6QHUCIAAxGLrIkC+IEllbiKs/NGZ6PdtA/tGE7NXCfffMDXtcXCDvs9olWvfXPw
v0hfyIyxAt8/mcKQKmiJxxL2WJwVIckcbbg2Az1/2utHuhzuvGlVWfX0m1vQezzj62kkHE49ggPg
q4rDk/xqb0VRAEjgmWM8aG1CTPq6TPD9+RPG5nc9XWJHTu+Y6dmZUQhM9iU+39KvH+dpMWUo14pm
kgpFYpuyYISwpDjDN+QWroa/qtb1JF6jVUU7C60km/FMnh9Xp6YdnCI1q9rW7ARjkQqC5zvtd0QK
fEKvpVO6lML1RY7TZNxWLNmxOUYdSUabL1+PGEzXdi8yFB41MUViP1Fs94K1X7DOosvBihzLDAAe
R5g+eE07HJE11fOtZzwY7emQiB55CtVc7zPbQudQNIZOAvedmTPI/i4ACqLBc99jCuEtQEGTDz9v
14+3tKp2EuXw47yPxofV7tPjw7eGYsiT1QHQG8AC5OQFCAFC1JqAWU80OpqtvI6xvB/7DHV2f7WR
Wm6XWx9rvb09zIzy8HT/39vvu9WXu1O1nX7Hx7M/XAoQmhA8pwDcEkAaQAYMUyOcFidykrMSnOVo
jTDYLm8hjJPbgzDbu6evtZ3XwS7Q2oy+sr6jkRCNKpyjHkvsTCJeZU+0SjHaKFJx/b5c7aCtPMtT
X+BH5ZZI79fxaMBOl3zFjdac0bHhuvi/3q6tt3EcWb/7V+hlgRngKKB4ZwPzwIuYyXbSvWi7Z+ac
l8CxlUywuW3szOXfb5Vky6JMO96dxslD4lgSWaTIYhX5VX1OMQQ6OXAcamKNDWA0nWrybSo5aPRt
rqdNELkm7FE9XV35aetmI7BMqA70xk10dfSlEBFRu6QCUxzpzJF7R/lIHT8p0hjLPjAi4Uoi7TwT
oH4zx+26brsHKZnvYXzTXZQFJh1vl3IProelVSkZcmtZCWsDd6wUrOWldEqRMSdeWlgqSGbz7Ga+
S3O/mq8e6JBK27Q8Al4FGMIlQfZeRiLG/hlbgnvowY0PXMfRsXBSTCpAJiYNyUePcVR9nh7jq6PK
V9SBU6U04vN1CGU7eYMXTirNBA3y251I7GQ5oEenOcQ7tHCRafZyfKp0Pp32U611Gx03BF40gpIw
6NcoC4acEmXL61kjVPud4xYo8UCc+DQdoouM3YJfblf4t6deT7bhlCG4qgZrvfQK5GmXUpg3OExr
gQg1HUl9gF4npyIXVWY+L3gHZD2//NI8LZvX5jU+PM/XffhxJXQbIQqrpmgpqMBkQricDJXULkYQ
kX2THBRJ9btUFMnXaXMyWBj4sk+z+zhf/NrvmGklOnOgwvPBaEsMfMG9GI2kOaKsoqSC1zWvDnTp
oLSRFLcZKfZ4sLr+8cM8Li3QvoNUtmAjrbWsCWeg7UEBMcsNcvyKMmrQpaT2sAgcB4Rm6jiUh3bv
xqRNtyqjwW7VWIHMvE8gOaKuHQ1ggGJKMphHojTK1SWl3mGyI6ctOynRlD/ApQgXRmJmJvztvN85
3XLuVhk+X6sRIxR4SfFsnFUteRKSpzuiuWIKrKow1rdJaakk+/TCZsGa8S7/b/dt7FQEQ7s7IGJn
rAt2wb9owwtOqAbLg1PsQqLAp6QOrCJBa44E28KcFi+yqeGAqt1cnSTS3laZJtzyvfPc6VubcrBN
nADLT5sYpfvUWiw1hltKNFEwx2pwsIxJX3JNqajBBaHvcFL15R86wt1cTmQXmQ3RhdjjJPav89Wv
Xxp0J5vXae//bvZ3VIVbxwTUHXUwECKmDmWYtdcZ+EV4pSIY2rI6DU2Uq+uAV5+5M2kdOPD7rZN7
6Kge7Iooq8vnu7tRoj3MhUIrSUrrDQLPwJgE/QnaHCOsak2Nd+w/AuAO6nkHfju4M20ZzUwbScct
28tP2k0eNH46nFCHFJLOEkkNKQPHsBZR+VKrCEpUVnWUVYxEnLR9ka3uxMype9NKZtyAhRTjofmp
WcfpNgsa77gfObWCcYlJCqA5kVLkPsJDeS0xVsNW79BVtmXm5W4vpXJmgpQXUo23xpAZtR1XnIN5
wLqsAJuPrcESqAZTtoSlChwWiqHWCNKUxkUDVThuT3JYNtUcZmcdjySVmyNKNrl99Z+GnMbijJyx
LgMJfkBzEEPcmKhLX0nbcTEY403pgwVnuqZWnzaMNnUdIzW2aRsyOaoW4NVs/YbHZjGHyvq9FiPb
jS0Y2564gGhCBNDwCCuZDRH6HIaPrz3YsyNPOikoEWGRcaLhS32ICH21ISdEeP3WBeyiW7wXLIDT
UBrKMBkzxphRcF2NBWcqcMkYPV3btOXnOtINro8aYjINYXRvpxdPQO1bl+Ri5xJwp6ViMHCZROR7
rJFlhqHqVNaLwKM+LR55V/4xxD5eT6XfJ2mDL+djvosfO4aXVHQRmBRMV6V2iIujwpRgV8J65rlV
0AblTgMhbQo/dIjdXkyFnu8fFy+W5PbQ2Ok4ie7jfYaTyBgmDAUD3TG00qMNmPUglLXVzMMa7LyP
p44erOIINRFcHTZjSeh+3y+JGp/QtRkrwvOiP1JlmnW+sojBwIoaSmICpruGAeQcNEBIQ2vwmVTM
YTUysm9rOJILBy+n0meQlUtUIU0PJnh5xdyEuzQBLSQ5ahbBwAyY9TlgmglVWjwqqlztBFHEsvEO
yF5JqRwZdiH4MsHIx6kfEv5t8UOUaeT+siU4Dcgu4nhprY1IzxFqUvlQe/vt8EOJEKMm8FwTFqM8
Yi8P8zUea/cwBL7dvaPGGgJGbykVZqr1jIGL4UgpPbNae+5sdRSYlpY8km2ZkW3Zh6T6L3H6dr9u
EiJH8CYc9+DwSouZLwkoBUedLYmnljgL7pkfcRimxaQSZEDRMNlJv1hBL6/6tQqrr7mpjCOsDMbh
JlvEzQwmS88r4Y2uWSSjHDzDMtLKM77KsqrGKW8uFkP+GqlbVwv/tKxRdR1cLcsoECXtEAhE0R1k
DpmZA0banAQ7XbyHxRvekbSimmdeYjXvd6wxyeDdn8lxT9Vjq4iF7vR4rMEFasggELCP2xoWe5XK
vRjuveJSYTIh9kvQaaMlZ+8wuPNhW+3dnTdbqD0ItPk4Ejgy6FjD8a17yWqliaH6L6S32lxMRGc3
KiP6QmTOie4eun2tTuD2AzoO1BjlMHbVB8SNKFh30IcNtRIIxbbK0/9a43TXEoH5bebFo6OdYl3x
GHu1HVrbAWC2iKIobPQtzSfoSDC2tcO3Dys/kzI6SsJ7DFFp0YmAMgPGXarbcXqgZbP65/r5ZTXI
UI9nkd2O1oZcxkpDJMwrjzn9GAnQteBhgzstZS1qTrNxtrngoraq7TzCGw7FGO3dOElbkVkg9R4e
ExykzirsPDLZjpMAK7gDX7IUmE0Klin0bmgsKazvymsbgzrpqG1T+EHXbGwPgnwZfac3/GeYPPn+
qZm/2oe7ZuAf9HkWYqwFr8EjiESC2J7YUktuSw7qwzk8f6P/X3kWMoKmDc0Egi21GjOnbbIR9Ud5
mu3SZdFg8ZzM0ABrXMCEKwYzJmtjgsRYAl+dkOcoI9o8E++wnKtqANN8uYdeut6RWcl2o7HCA29p
YKFBOLS2NcY9m1KBlEisHEHpHEJnpgWm4uhMT81vdCaDl/3J/xjQ09VdjnV48KxjCeNgV7kKGQcV
YiJINAgps0hrLluoJuH+VDO7reVISma8nLYgExa/nC+qPi9q/AU9/WY5yocao2MOA6wJ0oAyoUj3
isEpIIZFDcbWN7IPRxKk0i9oTvoeFfEwf7q7H4jeQmM9uMGoAoXHNRtUH2aBj2VdMyuqGIimNF2z
h6UMq2/o7f7rhy/7tCurl/un5dvjy27d6M5liVFKKKiTRItmA+eIggE/UYUYqBfUez3a9k5KSoRg
mfOkhs1l7pwxZeDrdr2Rga+zxiorHYbG4XExsj5zJAEJDjn4qDOeapg2J2Op3ufh27stbVbmHLFh
yz7qDoOr9zHHgoeKUQ3DUiDsJYDzpE1NkQpYURpNqHQ+dXBfXCpEJrUPfNlb+P96m7/On9YDggyN
SxSJvJIm4jEyJhWxVIALDSqn5soxoWUwJJ9sZlxeIozIjTbJbwZI8N0hS7Vh8tbRM+gSTCCJJFfc
6NJYL8AulMo7FaG/+B4QPHe60kix75I3YEpmdN2s+WMNw0t04cHcbNL6WTD1NQMxAo94kFphfjnQ
e0HyKkjwP2r/Pscdln14POHVSSpgptNU07vAs4sYR1hNmIUc1ilbWm4lrNRelzpKUkbM0WQM9Yzw
b4TV3NWeCt3wnNDjKT1tFv552fz8Cv8i2dcecqWKGreeQNUZzAzp2lNj+BVk0FRxyZQ+jVQzqegg
h8fgnlFzVK45uzim819mf74MoKfbzJYRNKHDoDIH5jTMIyS3rcBb1BWYr0wq4SrzFzNbJq9jJEjS
CM0zjdCK9Ppo9bAeTD/eAmcV9QH8Q1gWI3rbUtHSBl+XVhuwj0BJwN9RkrFBMUn95mb/hLtZ3IxP
Bn+8mD0/P7RAJrrhu9ObmBCMwGAekSNtqAEHE9p4Upex0o5VoarFOzHcp0bdbEU4sGu5vZw0b3Gb
0S7Lpg9z+eMxQeuYLmwV/MIgvQxliAiLoDXBjJUVWHlCwlJaUfAiR/37mIfrQF0ZAZrdenO/eH76
bSdBR1pLhCVWgKlGLSYmkagpKGgKiqniLZWuNmNc9KCUSVpVZqlp9tzRe+R52Mqg2nwWrSTWGkol
4g8D2hFg1FiJm0zeIhJURVD0xyzuXbGJUC0f7lioW9InCDu/GCvPUGOCNfCJmYD1j7kanIAgWIm4
V6eotfKdKXu68uwrH4lsMiLvoa9RMwxya+8OaMFL89ZYmKjCg84hsFaCzwKWEBjiMNwMU1X9rs55
J6t2cksqvd4/Q78lN3SPyg0jpI5hxUI04PR7VhJpkZROItUO+JyC1DAtvK20t98OK5bKc4j0bXjP
sNW3lOyb8bdMj7cDvl4Ms0t3r4yzLkGptQ68TqnKGlw6BI/CokHAvq+lFDAVNYzLk3YFhnXk2zG8
YzKp/9hEJlw9L+9vt6b19O3xEcr/AK3084eHVfE4XzbFzZ8FvG9YqV9en5GaCN7cev5617SQ6fWv
96vthQ9t76znq39e3z6/Xr/cLz8UHbVzlwHzegG/182Hggy/XDXr69W6/z6t+L3iyV8rHv4ZtAp6
oK0P0Vpgy+bqAxuKyP+szslPVwUmmhr2L/L2fX56+LNAvAZeeb4teu/xQzF7Xs8ffhBMnZmr4rVZ
3S+bp/UP5ON35G/fF6vf0VRZXj+/ra9BrLenNsUjVLbcPPFdReC+yc+v9+v5zUMDBWDlfbHVGTsv
foeL6+ZpW+aROrZfDevBIja1FG27j//8dPFl9tVewqcv9fnF50/FZPN39r//qA8/Nr34v/aq//z1
06z47un5qVw8zx+a1aJZfl9Mftj9HCigv7r9MLGL9f1vSO81e50vcPhmfij4lR/7f4qJPy8woSHe
vVrj1mfmmUorOXrmvs2aeeQn88yq3TDoHl3lHxo8I+EZ3Bx5gvvbQXSgHrprD6XdM18vNvIhL3T2
IUn6elgxCRuoOmg1dPM6asaRhOCNk6tBewZK78gP5cN6/j4t/n4xK+46iiToigXY5qMHhBzUIw49
8123R40jpSiUTGXb/mzvKWCKzpdLPJEsoKGITxsM9+8nH0FXNg+FxW+Kz0+LA+9VD5tyZS8vP/vi
+AhgZ2orlpD9M3fgTi+Ll0Pjh9G+HlVMug2p4vxyenmkl8Vu2PBi8o9O5RUwFF5WTdEyfb03DaYz
6z8W51/tl3CwGng11bY9DF7NdA0T5x3lQPkZ65/RBWjL67YX7Kw+1nO7YQPP/NzcYFL4q/aVHaqH
7mQTVTG5vg52Zt+VbfsMFQSfwW52Xy8uZxefpoe6Wif9dn19cWXP6+MVCTp65vLi08c6wLA+KBpG
KG3bUwl8Zlb/MjveHJgGum9PW8/XTxf+czgqnRB0KNtjuzIcVBydxgE/vpfNFJONXntsudwOPSTP
eP8M++/U++zzzF6+txrRM3K+mT262jzzP8UjaLVVohA6RbARCNfM3TOTfwNQSwMECgAAAAAAg5sk
SgAAAAAAAAAAAAAAAAsAHABfd3B0X2NlcnRzL1VUCQADRb1tWKi9bVh1eAsAAQT1AQAABBQAAABQ
SwMEFAACAAgAwZQkSkqPBa0QCQAAOhEAABUAHABfd3B0X2NlcnRzLzA3QjI2Qi5wZW1VVAkAA4qx
bViKsW1YdXgLAAEE9QEAAAQUAAAArVbZjuLIEn3nK/w4o9Ko0rsd0n3wBhgwVWYrire0nQazFtiU
ga+/Ee6ebkZN9UhX10IInBl7xDnhiVNV5EXKKwEtCR+fV/zbL3pm4lQWhz1IqvQHuyh//jgYi1PB
t9LwvEvECSSdaZpi0h0zUYzk7l6x3PPqfBKSs10eTkW12oFUrriiG2/4ZzR2gn16un5UaOWHUFiW
Z9LqDf9Ti+Svjy2v8sNp91clyqr86RvfFllRXX+8oGd4qCRX4G0BUo/vJUmXmAKqBUyRFCabUiea
/CLg5JU4SSC1RSJJ2m8ExudkLdLq3zz7fk16PSfbIpX64iqF+/wA/zB8d3iXmlPJHySEHkzVnQxI
fyhMs6SkqP78xzV6okN23p7Luyvwyx16GIMkA1uAkoGpgyGDIsBWQVfATCDRQE7ASsDWIU8fa9AF
yBYpsTISZzZYGhgaqAxUDroKpkKnOYPUfKwBrSQKWPjJQeegZpAIsDgoNqQZ/U3xb2NFKI818BQM
tCKTEhN9xlgE8CYWlCL/M+D4XoNMe6xBs0EWZA5/cAN0GxQZMhTnkCkkjm5gpCaH1HisIed0OWFg
pGQdYzdVSAyQbdBM4M3LVAdV/jIKPQMsh83psqY2VeBgGGBj4AlZTy2qiMCE8Mca6LICBnqSkiAa
MlFEp+IaWGUZtAQEo2/+hQ+YOqy4jp1gk12mQ2KDqoBsgm4Cy6lJsDeoYfQvosgpY7JKrioGzhDl
JM1BVkCk1EXYG6ZJpdG/qAUaxdRpWAu8b1FBTRmMvClrRu2kaqDpFGmWfNFRCjUhxsi+pUuQ85g0
agAVFBTPQbMa39QvorAoUuwZVaWoMWmZTNWk/CdNq2NvM/Ik/yIP2E7oqmKCbYBhgaFSShlax2pi
WU3IBWiC5sL6KpM6eYgTROHgfXTApExiLIrSlJVROBzHRH6sIdPJFraTbFA+cQBzhXo4symZGLuZ
0oBga2X8yyjQeSwE+oAf/ItNhRYxNPRHFaQQ1eKsqV90lIk9YP9yElw+DnuxRxw1dF1taENmjMk/
kWyuM/tTlcSlEnsioPKf6r8fu7xENPTwuDrxYl+VIP1iy3NgMpoGj8T/hukGnzP0B4mQaOcXHaoP
ZkB9iE1ryeB7gG/0ABwHnDb1uSeDrIPsgWOC0aaPhxPkgWk8suucqxXh/fXfLW/Etcjg/2W/4ffi
NOQ7Ac+/p7C/n7LheWAmuIgtbutRPBTFtORL8Sj9P/eLZhd4JB9QlTOR/VbRZDCW3pCfcfH4RLKm
HFLeUPHfRPk/rRoKNncKwobEouFEdEPuSTgNp23TtyYThGH3C7WBYItg5Yc4HakEbYT7zYW8wUck
AwRc/LZUUJu5xWkkDtOIXX6II3zgpsF1QkxE/BzpJwF0SUUUtsBOwTbBYgTfRDCCTPA78QxPDYIV
RFUlh7TBfRw5s+EzhCcd+SYHxgnHU6UZ17tB1ZEJBIFykhPWswQ0hfoIsRXhz87JASQ8RFtEXoMR
sos7pED0IZJA3rXJBGYAMcuyGiU55CphR5I0hJET/2H/8rs1AhEQQQSV4KqRJ2QFURuxJsvJEwwH
4Q8zhrGYjBgIo+Psp/g3qkMUFqgkJdrOWEN+MtgapAmFj3URSOcGIT6mQr1LnWgIFZkyabKEuwuu
KbwxgeEoKnGP1TAEdgV+o0vsTlxFnYx8wxgRXjFRyBAI93IjhYjMsNYYYEYMhCVGH+Q7mFZzmih0
ErsLaQw9wVJiDyBFGYLyrKa0DeCRqhN50B52l/lUJcBF5EW7mkbpRYLERUfHetmUf+wiRHxMvp1Q
J2CJrbvM0xaiEYVj+LjcYPPgHdyfsJGwRsgQ2JBYSvQZdzIsKHajdrf34H7GMpoOWgjyZrtS6LfV
bIGYcPQcs0cZy2mVQesY4E/nbSJ1fGmarb/ocYNOOJS8YDQJ26HnTILmbSsKQ3968zxnfV46deg6
y9B3zd4pcljHGx874zBR/ThwvXrqRC67dG7Owl0OZ64TRcE+27beC7lOOm222NnXZCyzxXzI0psj
2jW7DG/OJfKndbSOtMjv8e/vrpEf/3jXeqT1sVL0chzWfvze6x8W4eozHTroWcuNHX+5DF4dHy/E
Bw9/u85AEYP5bDX4GI6FGSeFPrfmq8JevwW9VSeuX7bD62fud6tB32ut5YP9eTh83Cbqy3q1Lk6d
/mW5j7P8GJw74Tn7cCfT8cgcjvliEWYaZx/Mnu9PnafVsU66mtFKzffFyLg8XSbdYh57/BS8TN52
/N2QzbB6UfuLj96x20kKMZhWyaI90IJz0R1VM75Yts+TcN6a1bY8/dC2czucVN67V0bW2Hy9bLKr
PnXnw+HkdcXSNyvL5yEbLQZJeRgX7ov6MrMOU3YdvbbGTv/21n3bRPXzkiWcGZp8nPoTubsP99vd
as3j6GDs8qfJp9eexb1JecgvlWXPw9N0yYy925LFsWxv1K61Py26ydDqtE3e3a2i8hQK7bi9WhPz
ejGCa7bceE4dOA5/cXc3z9352BZYuVZ3FAXuxPGduPuMJe048jTzl/Gb68Z2vm9Pl1ltz4/Hz14Z
zLr97DOxdmm2drsk3B1HQSv2nafl7y4fg9WHa9XdSZBE7oYMBE5djzNlVgzmbtl6n492idqrBvPR
NlVHt+Uy6pa7svbqd382Yq+ugyaWYRC5UeNdL46jyDl0PK/sOPG03XJrPHrQ946GcxE75efLTuu3
+/3zxlhMNp26PL+GZ2dcl0+XMrXW19Z+dRx1DpF6s6fvensvv/Snk83z7jTwq/d9TzhJfhCpsZ+v
lsPNwLrssv1GDNvdT++096yyl7ROn9dnN6689qIn7/VbZzSXl+x8muycTs/bXWZFEOaWUpjTD/sp
5bcnKxuaT+wtmAytwaAO31ti7sxvfW/Mt/5K7ScxX3Wm19uk1LeL1+lkf766VzZ969invtcLnwuv
vBY3r94ocXd7aH/cRq3epfDqeH1+FkybrYJn16pcxVrPg8vozNa1o9xm64528qNSpKOe/VnIt158
rIZnvRTPYX1p6d403b/FooyHF3GczWaHp/CF8Sd/sXnNdaXwNWWoL33Nq23/OVr3steL+g2hgqH/
Kz79F1BLAwQUAAIACADBlCRKrlDWiuoJAAA7EgAAFQAcAF93cHRfY2VydHMvMDdCMjZDLnBlbVVU
CQADirFtWIqxbVh1eAsAAQT1AQAABBQAAACdV9ly4sgSfecr9DgTnh6Xdikj5kEbm0E2ixf8VpJK
QiALgwQCvn4y1T1ueoznRlwF4QBVVS4ns85Je2JX52ke81pAR8LH5zX//o2eJ7Gr8k0Jkir9xo7K
7x8LM7HLeSGF+7dI7EDSmaYpFu0xI8WIL/blWcnr/U5ITpFtdnm9fAOpWnJFN57xx3TmBGW8O73X
6OXj0KCq9mTVC/9qRPTtveB1utm9fatFVVc/Y+NFnuT16eMFPeGmllyBuwVIQ15Kki4xBVQLmCIp
TDal3nj+6YCT1mIngdQVkSRp/3Fgto9WIq7byIpNzIvlpqr/vSo97KMij6U7cZIGZbqBX/xdLF4g
sqv4FRzoQYQuzoD0m8I0S4ry+vdfttEz3iT7Yl9dbIFPe+hhDHgKqQaRArIJlgFyApYKIgaFgSkD
1yFVQGOgW9ct4AZboT1RDLIAziCRyZpmg2VDqoJig60CV8Eyr1tIY9AMUBmwBBQOsQFKDCoaTEBP
6ZSNBjUwOchfxBDLkNqgaBAzsA2wBBgGpDroKkToOgE5BY5ltMHUrlsQBtk3EzBsUFPQTIgxHQ24
AJlDyuiDSwkDoV63YOHxGFgMttbmjjGngIExAVbSYpsQLKYFsX7dghoR/gYir1MkGC2PCUxdgzSB
xIDIoPeqDLLyRRYaecdkE3SKUAiKPxagWGDrYKhgtlWWMZH0ixg02m9Ebe1SQgD/RhyEQulwo22V
lDqEfYEDgoAbNIUQwF7SsawW1YVrkOAHKxKBoVNSEf8CSQVYCibGGUESEeYInbBANkBTwcBcErDb
2MQX1cRbG0cgBMGFrhMFDEYhGVhfQblgl2JLJxaY9hcdlYApQNdBNUERYDOIsBARAcgj0BLKDtuM
Y5W/sIBO0busA+OgG5B8bwyN6puYBAuVI4ZUBuOrasqUNZNBUajrMB2GoJmgWdQVeAqDx0TsmJr8
egzf7VvUeNiKWAK8YgQL/mwTUdQfzZB8YQGhVr5fB2xvlcphtQHg/cJ2xXSwKHIMsU1BXrWAd9mw
P60Ex/dNKUqkT0PXVZPUQmaMyT+Z7EVn9kGVxLEWJelO9av5H8sur5ANPVyudzwv6wqkT748B7rO
aBZcO/8PT7cEnWBAKIAkN5+M4G30Naq6LlPxPBk0DxhyE/alDD4D2YUuFhVfGuB2wXAg8Akyy77m
19nXSyL80//2vBanHG89GguIkPU2Ct+jN3oAjgNOFxSDIsJmkz1wTDC69PGQeD0wjc61AMjtY8Uz
ccWjn2d5jYr+Idh/oDSW0lS875Ockyz90Z5Hmcrfl2L3htFf8xFQ7RKR/Kez+WgmPaPY4hRxQOUl
YAiMmH+Sv3+VzClQqTG+/CCkkL9dTSScwYc2/9H+bJrmz3+9OpbfvpXWykgqXS2aZr3bLg+Kxa9t
Kw7im1Hw5M/PVpUr7+Q/f50M/q8JCLURVTFidHGtlMQWbzySdGpS2fHaoVykFm1AlopVIid2oZNc
oZbFJSQ/PSY6Fy31Ir0RPehEkKh+TCddQinG+41U8XE8TmkWiFoiQQlCJbdNYj68DyIC1SahxqiQ
U9ECqg0GKYufxw1OeoXMh76QgFNBuoGyJnTaiXSOISE5kUroxOsqBsZ+Hk9RK9KWxQVRFJIQRqtx
or3vRIjZoQv0q8Yt0aJoXBxHTUb0bFRjC1T8wmkYQTLDK4ofVAC0j1dUiykRlG70Li6Oq6hyjOJB
2kOyJDlVSdtFCxppacusmBpyOSknByv6eTxJiKdpcNBJQ5D4SfdalBJO5C0SGm3SluYVk4qoXIxI
dkSyj0qIGZHc6YSSaFNGj1hE5F3EhERVpvBwOjAu9BBZiSi/lQgUczX+IRq4B2uKConpoMJQDySk
ABge1uLjuGhdYzw4C6itemPRcXbAQQ8HRpqqRNs5ggacxCZflxqCVcY5jgYuhb6QkHKCCINHQHAE
wB7GqQRxQNh1m3I0L9oGtR1HGIQLZy6U4rSdJlBz0BRKDY4DSIRojSCKQFYJ3vSy57GUejtBpBQe
NgzeGmxjTAS7BQcKQ6Y5EXUYxxlsXdTAy6blJs0LaNOSO9/ocYPeIJS8YDofdAeeMw/at53xYOCX
Z89zNiJzmoHrZAPfNYfV2GE9b7btzQaR6k8C12senbHLjr2z8+pm4ZPrjMdBmRSdRS43Ua/LXt/s
UzST2etLyOKzI7oNO4Zn5zj2H5vxaqyN/SH/8e409icf7zpjd3IMVs7kH6ve8/GwULoV79nnxMfI
ZoPGnyyGd5vXwfIQhw5G404cP8uCBwfXO85k4+EP17m7ZdVS9PqLh2rQ7xXW2l28v45OB9fIWDQc
5un4fW3c92+DRePPdr2Rf2e/aGLaqfubRZOu182Q378enuaVwdKtUzC9fLf53O6f3dm+d/Abnvir
vGzGRfDmHqzgfjUVYVWuup177bUavrDhLuw+3iZcSefBTB9OUnXj4T+c2qZ4Dk/dY5mGY32Xp9bj
rbnLD0bEDohAOrK9TjaVJ97YW8vhvfn6NDOyzFZ79mGyEtnzRMmT8jhfO9Vhn8b+bBEM62h/l03C
pX5+0Z/CkzHpVE/1acsUd7Xt6axkT14RxUUwrWTZXaUP3VwTmTvYP+zdUTJgz0N9Mzyd1Yfupqp6
a1/op06zrVa95HZezuz+qXyIlmz5ds8mz/3xOh/11p7TBI7D713L91xz7gypWv3pOHBWDvVFr+PI
j4mfTZ6xNkN50J0+jrtjV8+mzD00kcNv+V4+53MnbQ/OxkHPd54zd2KnZfcxSxq787LdHoZV8NS/
Sw6R9RYnK2fUbp5YWNux5wqMoVn4T1NWuE7TeNlicNcs0N9jn1Y6adYuTt1+3CSLwTDq2avF83ET
qSHLMllN1Hj/y7u8q0U5q6PVchu+Tc+dcB5WiZrs4rK7SVYDbTHTq0gJl1EP+06ded1yuR/N5Cp5
e6zDt+Py1ft1veOXePw8+NVLppPn4+jtsq2d0M3W2+U679kNc51J1XWce2rlwJnm28bc3MzKsakO
80FxM/ImDWODTdGbRE/nW330fqM+vDh69tK9HaTu+eZkWQmfF5o27Bjn9Wl1M+ju9prgq96jGoxu
HONcmOswrgqnW87fmxvFts/1w10TbLOa5TnfapZXxJN8zV87uc/53WPcc9e+GbNG9/1dNm7cRjH2
YsPKoukPFlV9XIXj7UhN+s0rYvT69LxXyrJep/1NZ3iblW+37CEYWk+P93mu3k9iZs+nW/N1HcS9
981gbWEHrs/NndCSs60qx9icWCU/e+vVMj11dub9vrnX7pW4P3esxTBG+/erWW6N9vFduBk/T92b
bqgXPFZP2XPUOy3kYzg8mMHJ1Hb+k9rpN/rdet80vHaXRZ0ybbkW74qzzyZ//fWdC4PQ/8yEfwNQ
SwMEFAACAAgAwZQkSkqPBa0QCQAAOhEAABUAHABfd3B0X2NlcnRzL2NhY2VydC5wZW1VVAkAA4qx
bViKsW1YdXgLAAEE9QEAAAQUAAAArVbZjuLIEn3nK/w4o9Ko0rsd0n3wBhgwVWYrire0nQazFtiU
ga+/Ee6ebkZN9UhX10IInBl7xDnhiVNV5EXKKwEtCR+fV/zbL3pm4lQWhz1IqvQHuyh//jgYi1PB
t9LwvEvECSSdaZpi0h0zUYzk7l6x3PPqfBKSs10eTkW12oFUrriiG2/4ZzR2gn16un5UaOWHUFiW
Z9LqDf9Ti+Svjy2v8sNp91clyqr86RvfFllRXX+8oGd4qCRX4G0BUo/vJUmXmAKqBUyRFCabUiea
/CLg5JU4SSC1RSJJ2m8ExudkLdLq3zz7fk16PSfbIpX64iqF+/wA/zB8d3iXmlPJHySEHkzVnQxI
fyhMs6SkqP78xzV6okN23p7Luyvwyx16GIMkA1uAkoGpgyGDIsBWQVfATCDRQE7ASsDWIU8fa9AF
yBYpsTISZzZYGhgaqAxUDroKpkKnOYPUfKwBrSQKWPjJQeegZpAIsDgoNqQZ/U3xb2NFKI818BQM
tCKTEhN9xlgE8CYWlCL/M+D4XoNMe6xBs0EWZA5/cAN0GxQZMhTnkCkkjm5gpCaH1HisIed0OWFg
pGQdYzdVSAyQbdBM4M3LVAdV/jIKPQMsh83psqY2VeBgGGBj4AlZTy2qiMCE8Mca6LICBnqSkiAa
MlFEp+IaWGUZtAQEo2/+hQ+YOqy4jp1gk12mQ2KDqoBsgm4Cy6lJsDeoYfQvosgpY7JKrioGzhDl
JM1BVkCk1EXYG6ZJpdG/qAUaxdRpWAu8b1FBTRmMvClrRu2kaqDpFGmWfNFRCjUhxsi+pUuQ85g0
agAVFBTPQbMa39QvorAoUuwZVaWoMWmZTNWk/CdNq2NvM/Ik/yIP2E7oqmKCbYBhgaFSShlax2pi
WU3IBWiC5sL6KpM6eYgTROHgfXTApExiLIrSlJVROBzHRH6sIdPJFraTbFA+cQBzhXo4symZGLuZ
0oBga2X8yyjQeSwE+oAf/ItNhRYxNPRHFaQQ1eKsqV90lIk9YP9yElw+DnuxRxw1dF1taENmjMk/
kWyuM/tTlcSlEnsioPKf6r8fu7xENPTwuDrxYl+VIP1iy3NgMpoGj8T/hukGnzP0B4mQaOcXHaoP
ZkB9iE1ryeB7gG/0ABwHnDb1uSeDrIPsgWOC0aaPhxPkgWk8suucqxXh/fXfLW/Etcjg/2W/4ffi
NOQ7Ac+/p7C/n7LheWAmuIgtbutRPBTFtORL8Sj9P/eLZhd4JB9QlTOR/VbRZDCW3pCfcfH4RLKm
HFLeUPHfRPk/rRoKNncKwobEouFEdEPuSTgNp23TtyYThGH3C7WBYItg5Yc4HakEbYT7zYW8wUck
AwRc/LZUUJu5xWkkDtOIXX6II3zgpsF1QkxE/BzpJwF0SUUUtsBOwTbBYgTfRDCCTPA78QxPDYIV
RFUlh7TBfRw5s+EzhCcd+SYHxgnHU6UZ17tB1ZEJBIFykhPWswQ0hfoIsRXhz87JASQ8RFtEXoMR
sos7pED0IZJA3rXJBGYAMcuyGiU55CphR5I0hJET/2H/8rs1AhEQQQSV4KqRJ2QFURuxJsvJEwwH
4Q8zhrGYjBgIo+Psp/g3qkMUFqgkJdrOWEN+MtgapAmFj3URSOcGIT6mQr1LnWgIFZkyabKEuwuu
KbwxgeEoKnGP1TAEdgV+o0vsTlxFnYx8wxgRXjFRyBAI93IjhYjMsNYYYEYMhCVGH+Q7mFZzmih0
ErsLaQw9wVJiDyBFGYLyrKa0DeCRqhN50B52l/lUJcBF5EW7mkbpRYLERUfHetmUf+wiRHxMvp1Q
J2CJrbvM0xaiEYVj+LjcYPPgHdyfsJGwRsgQ2JBYSvQZdzIsKHajdrf34H7GMpoOWgjyZrtS6LfV
bIGYcPQcs0cZy2mVQesY4E/nbSJ1fGmarb/ocYNOOJS8YDQJ26HnTILmbSsKQ3968zxnfV46deg6
y9B3zd4pcljHGx874zBR/ThwvXrqRC67dG7Owl0OZ64TRcE+27beC7lOOm222NnXZCyzxXzI0psj
2jW7DG/OJfKndbSOtMjv8e/vrpEf/3jXeqT1sVL0chzWfvze6x8W4eozHTroWcuNHX+5DF4dHy/E
Bw9/u85AEYP5bDX4GI6FGSeFPrfmq8JevwW9VSeuX7bD62fud6tB32ut5YP9eTh83Cbqy3q1Lk6d
/mW5j7P8GJw74Tn7cCfT8cgcjvliEWYaZx/Mnu9PnafVsU66mtFKzffFyLg8XSbdYh57/BS8TN52
/N2QzbB6UfuLj96x20kKMZhWyaI90IJz0R1VM75Yts+TcN6a1bY8/dC2czucVN67V0bW2Hy9bLKr
PnXnw+HkdcXSNyvL5yEbLQZJeRgX7ov6MrMOU3YdvbbGTv/21n3bRPXzkiWcGZp8nPoTubsP99vd
as3j6GDs8qfJp9eexb1JecgvlWXPw9N0yYy925LFsWxv1K61Py26ydDqtE3e3a2i8hQK7bi9WhPz
ejGCa7bceE4dOA5/cXc3z9352BZYuVZ3FAXuxPGduPuMJe048jTzl/Gb68Z2vm9Pl1ltz4/Hz14Z
zLr97DOxdmm2drsk3B1HQSv2nafl7y4fg9WHa9XdSZBE7oYMBE5djzNlVgzmbtl6n492idqrBvPR
NlVHt+Uy6pa7svbqd382Yq+ugyaWYRC5UeNdL46jyDl0PK/sOPG03XJrPHrQ946GcxE75efLTuu3
+/3zxlhMNp26PL+GZ2dcl0+XMrXW19Z+dRx1DpF6s6fvensvv/Snk83z7jTwq/d9TzhJfhCpsZ+v
lsPNwLrssv1GDNvdT++096yyl7ROn9dnN6689qIn7/VbZzSXl+x8muycTs/bXWZFEOaWUpjTD/sp
5bcnKxuaT+wtmAytwaAO31ti7sxvfW/Mt/5K7ScxX3Wm19uk1LeL1+lkf766VzZ969invtcLnwuv
vBY3r94ocXd7aH/cRq3epfDqeH1+FkybrYJn16pcxVrPg8vozNa1o9xm64528qNSpKOe/VnIt158
rIZnvRTPYX1p6d403b/FooyHF3GczWaHp/CF8Sd/sXnNdaXwNWWoL33Nq23/OVr3steL+g2hgqH/
Kz79F1BLAwQUAAIACADBlCRKGJzu5EQFAADPBgAAFAAcAF93cHRfY2VydHMvY2FrZXkucGVtVVQJ
AAOKsW1YirFtWHV4CwABBPUBAAAEFAAAAG2Vt86z6AKEe67i79lPgMkrbQG85ByMgY4MJtlkuPr9
9tRn2ilGI82j+fn5FS/KqvXH87k/jqeGXCD+0cX4P+MHcuYp/wmuT/n3H+Iv0RK82AlEAAFR/1HH
avr7DxD9HxGI+I/AC39RPInSnMBy3IMjCYyEIJF5IZakV7BftIE68WH+irA8ST/qTHJVR6NLaPTo
lwemNnJo0q7ekCmlgzx7d7M2+AGV42DFdO7Fr8cNL62o7u6dND6vEFaxRRO63zzqdGazncjsk65Q
eUVlws65+iwIFuGAZhrXSSe3mlmotM7+sBOaXNrN8cYL/Oac8dKIaXNiaY/spf8UsG8YWOcwx5Tg
M9oSQVm9gjIpqcmJqt7aks+Rz5ToLk2T7I+56rR3pVBu736JNqTu8VY5GNNPbJ29sBoWsEOKUs56
e6ODt5zUF08umyApap3bT+CYXaYQcpDhaYKTAfIaTFrVlD6ZS+U2+DG1WZuH5E+Ssam94YnQISGq
NQ3Zl1qR0jn7vBeqn/Rv7leIwTWDCFxUO7HIbWZSClNQF1ZWQV1cWUMZFSQ9YqDubvYARkgo4U2/
jxRVZS+GJUO3w8HqjP7CzGKRyp6Zrs5/7R8aTiBf2KVdOTKpZevvR9kfAUOxuWWkr0TQnQN3dQoV
mPTjazWTadJnRFoOaP4hNsgm0a8N6hXFBrDzPvuVyE2QeMRovxw6XRKJNdpS2S3y4lELr8Szt3E/
bxNBzh18vgvYzbCqgCQlE/qMUvZ1367O3NaKoS07OMw00t8oOLMTRsuvR1ur4T4fjMp91KG8cU0n
uZwXgAjFLDN0PvyZXPr9EFVZYV6sl+Z9nu/LGYtKmalgFenLybQDYwq6ddhuyaqiQVlylconBLTp
3fgeRzVy+l8Bn6mt47inVSSt6vXuUdeU1z1F5d+JZBIhhoJWD3qqd14dhl55Q3pCJe9RwGQWpxPi
C2piEZKpLtZm5czpfArlZ9Fui3zVxuT2hyckYXM+6PdW+6uffmAo159GUIf+m48cZx1pbqRGt9Pl
1mPXuLqCzbpimR7qlNPPHXtE4XEuXJVlX94ttkUsoV7yt+kXOpugYSbrmJQXc1Q2LRh3Q1vSvVyP
FSOezYScIqdpuj0K2nvccc2fZx7ZRwh9FGHxYaZaa2+w5C5hJY81lFyUasnz4on9OGHusMmcu4st
TQ8lKx7XpVbdnh74g7ohGtNQs0se3ppaArx+pSjEds3PS6a16Zt76Uwb441fGlJDbyWPsY85LE/8
lo2niXTBCeXnjRE1aMtDR4ZK1dNyuOzh2mGNw9ZYmih8tqNe+wIPBkWNSRRMkjcFb/n1JWB3t6Ga
SJ+AduT4a0VkF3Vk1jNKmr/rEbkRr6Zg+m3Jd8EvUTq/cTGtwnhU+zqg6iLqzzuGtMQpERfkfFw0
7cU8jVNlZ8oI63t7GsJFZo5zo/saeNTv0JbXcQQxaQA2H0ZJAJ+MhQxFjO9GOVof6CmvNAIarE/H
dO2JNbAmMv33QIgTMN1rp8H3SZRTXA5jmqUSaVLRbULlqwHOgZHkJPCWn0XsU5qf2jUj93urJLrT
NXZi+U9Gy+20SshXgk9vylOatbtwlhUJOp8loF8IWWzJ+0XDGsW3pw7LlHnPdeH8UqJRJJye1MOU
s57K9qzKVdbAP/IJ4ihSZkixE/deqw0+/RwbmAOZCg/kGK7BI7aZDI+wlzaw9tVgFRdJJmHkpEP2
jCqSkyxnlwStpCwQWcZrH3FCxIk/3Gyo3KDMqIfuR7uyXINeWVyh0oGvV6lnaYG/cf/8A/3vlkQL
/P+7+hdQSwMECgAAAAAAg5skSgAAAAAAAAAAAAAAABQAHABfd3B0X2NlcnRzL2luZGV4LnR4dFVU
CQADRb1tWIqxbVh1eAsAAQT1AQAABBQAAABQSwMECgACAAAAwZQkSphceX8VAAAAFQAAABkAHABf
d3B0X2NlcnRzL2luZGV4LnR4dC5hdHRyVVQJAAOKsW1YirFtWHV4CwABBPUBAAAEFAAAAHVuaXF1
ZV9zdWJqZWN0ID0geWVzClBLAwQKAAIAAADBlCRKmFx5fxUAAAAVAAAAHQAcAF93cHRfY2VydHMv
aW5kZXgudHh0LmF0dHIub2xkVVQJAAOKsW1YirFtWHV4CwABBPUBAAAEFAAAAHVuaXF1ZV9zdWJq
ZWN0ID0geWVzClBLAwQKAAIAAADBlCRKLVXCCjcAAAA3AAAAGAAcAF93cHRfY2VydHMvaW5kZXgu
dHh0Lm9sZFVUCQADirFtWIqxbVh1eAsAAQT1AQAABBQAAABWCTE3MDIwNDAyMzgwMloJCTA3QjI2
Qgl1bmtub3duCS9DTj13ZWItcGxhdGZvcm0tdGVzdHMKUEsDBBQAAgAIAMGUJEo/CFh/BwUAAIsG
AAAYABwAX3dwdF9jZXJ0cy9sb2NhbGhvc3Qua2V5VVQJAAOKsW1YRr1tWHV4CwABBPUBAAAEFAAA
AG2VtxKr2gJDe77i9J475FTuTc45dmCSyTZgDF//zr31U6tmjTQj/fPPX0FJ0ew/fgD+uL4Wg1D6
Y0jZv8Y/iKVp0nJqEABDAJ4EPmhwyVRWtY+zfRbp5cmvcfganPoW/W2YdO6awoVqOL8HtrFlG2J9
8KajFazuevgIQjAu9MTHzv3xH4uQhlM946uLNZZsUAXnwhVzHKMBVxRkCnp6jI3IFHHVVsR20zk2
3rRhccjjn5y3fHMYIVq3OnPcr1eckVqqVBx2T4eO/kL0OAx0/QYo0p4298UMqMZAO40wwth9jM23
IJLPkuAFm4G5WOhEIzuecD1o/rT11pvwg3pDQKizjTRjRJqr8EtI4xNmirOUc9D4kRHvV+Qrdxop
NsclZscA6UU9KGnHej+bp3Y23SeXvC7kLDybnU3hfVk5yTuViTXGkz/UQMlYH2bPK9C2wtNE4AEI
ln/DFnMrNHr8eKXsASqkMKd644h9bIyGeJicyS1ZGs7t0nykt3ZknpfbE+m7FPXpDeYnkv78/NZr
xrh9e/TGD6nzTR65LoglInZiT5PNt66OaXCVPoSP+p0PX+F3JTJbP0y00bW86LcDvXLRGFmmyngE
+NP47peni57TzyBQ75nucJc9UT9qqV9LyiVAaunqlqUQz07KaNXOucjnjz4tfd82RKqitKeZzuK+
zgT6423gRm9O5moOv0RyNnI8Vtd9xaSUaeWEB2IRx/cUlbl9lByd5ojHyjTh8qXDieZFdmstEj9X
qd9JWWw1rcx9KaFoLDflxpBEU1Dc+shnWFTubTG3w8VI9Jj6i5WENpMAUZEMr2VHYS16kn4E0XwK
JNeW74Q2JilMA3v+BgRd3xbkQ6b+pPVWItMmDe3OnhyaJQJz0Ub/XGPxIczK/VRhWSd+7qrfL1mn
BUbsIG0fFB92d2g9Jq6XeBI5inShq/ra5Q0by1F6Vd5qpNUiT7z7hmqCe0mGGeI+zTp/PVglibsW
Y57/Ed+bqCP7hM0NykSiNkxE05ryOQAZp+vOWNeZDZn0Y77/FhlYqSqpwbBFYTVwlrQugXrzW94h
EMKFK144rQwLmF2/qO1iZ0DgGcd0lvUl+ne+PsUjE3W2atV2I+VhY4cZxtOQOHSAiONqPhslWKxI
bB6ntuKwq6y2DYtlVa29/VH+10u4v8jAFhx3xnE7bpiefi31Z/ZtHOE6lZ9hsDwz8sZtavRFgN/V
+qvWpNP4u+KU1b1ffZFyqkqfrxx+yRxmNc2/4k63hxo5YpSq8xeKve24gI0nPdxRzvQ1YZPRIBo+
mXv9Q1vaK4GzYDs5SwoloMzqa0lTCM0vkj339IKDq2U+6YL7y2XGrzsN2IqrP/18oNQas/9OQ+Hl
ngX3GJ8VeIa387Ff8rdTMMRpKUIZpMEE9rhzkOLzxWynV6oFD+6dhJcMWiU3W1II25S8z1ggHC4N
pu1M2Fl+nBPCB0kgC7sQdfcavhlXZBgmjPCvUBqD/InhfmoPHrX2FMcz4IgdTH9deWx01O+38N45
5F1iOFgUCPQCXth82FiUTWmZ8+jnI2PBoavvT2U7vRX+XQApVlvfcL8uT+i93DGFVCGa2gxKAG11
v0Hh9r2LQcwxSpO0Kb1I14P40L+0/fhFZ2rabtU5n9J2bbcs8HrK8z0k2rSqGkscPvA0IqvIt+eK
mW+VAQvkkmDDgMP7+I9DffN6cWyr15qO/Hcpki3+/6v5H1BLAwQUAAIACADBlCRKrlDWiuoJAAA7
EgAAGAAcAF93cHRfY2VydHMvbG9jYWxob3N0LnBlbVVUCQADirFtWEa9bVh1eAsAAQT1AQAABBQA
AACdV9ly4sgSfecr9DgTnh6Xdikj5kEbm0E2ixf8VpJKQiALgwQCvn4y1T1ueoznRlwF4QBVVS4n
s85Je2JX52ke81pAR8LH5zX//o2eJ7Gr8k0Jkir9xo7K7x8LM7HLeSGF+7dI7EDSmaYpFu0xI8WI
L/blWcnr/U5ITpFtdnm9fAOpWnJFN57xx3TmBGW8O73X6OXj0KCq9mTVC/9qRPTtveB1utm9fatF
VVc/Y+NFnuT16eMFPeGmllyBuwVIQ15Kki4xBVQLmCIpTDal3nj+6YCT1mIngdQVkSRp/3Fgto9W
Iq7byIpNzIvlpqr/vSo97KMij6U7cZIGZbqBX/xdLF4gsqv4FRzoQYQuzoD0m8I0S4ry+vdfttEz
3iT7Yl9dbIFPe+hhDHgKqQaRArIJlgFyApYKIgaFgSkD1yFVQGOgW9ct4AZboT1RDLIAziCRyZpm
g2VDqoJig60CV8Eyr1tIY9AMUBmwBBQOsQFKDCoaTEBP6ZSNBjUwOchfxBDLkNqgaBAzsA2wBBgG
pDroKkToOgE5BY5ltMHUrlsQBtk3EzBsUFPQTIgxHQ24AJlDyuiDSwkDoV63YOHxGFgMttbmjjGn
gIExAVbSYpsQLKYFsX7dghoR/gYir1MkGC2PCUxdgzSBxIDIoPeqDLLyRRYaecdkE3SKUAiKPxag
WGDrYKhgtlWWMZH0ixg02m9Ebe1SQgD/RhyEQulwo22VlDqEfYEDgoAbNIUQwF7SsawW1YVrkOAH
KxKBoVNSEf8CSQVYCibGGUESEeYInbBANkBTwcBcErDb2MQX1cRbG0cgBMGFrhMFDEYhGVhfQblg
l2JLJxaY9hcdlYApQNdBNUERYDOIsBARAcgj0BLKDtuMY5W/sIBO0busA+OgG5B8bwyN6puYBAuV
I4ZUBuOrasqUNZNBUajrMB2GoJmgWdQVeAqDx0TsmJr8egzf7VvUeNiKWAK8YgQL/mwTUdQfzZB8
YQGhVr5fB2xvlcphtQHg/cJ2xXSwKHIMsU1BXrWAd9mwP60Ex/dNKUqkT0PXVZPUQmaMyT+Z7EVn
9kGVxLEWJelO9av5H8sur5ANPVyudzwv6wqkT748B7rOaBZcO/8PT7cEnWBAKIAkN5+M4G30Naq6
LlPxPBk0DxhyE/alDD4D2YUuFhVfGuB2wXAg8Akyy77m19nXSyL80//2vBanHG89GguIkPU2Ct+j
N3oAjgNOFxSDIsJmkz1wTDC69PGQeD0wjc61AMjtY8UzccWjn2d5jYr+Idh/oDSW0lS875Ockyz9
0Z5Hmcrfl2L3htFf8xFQ7RKR/Kez+WgmPaPY4hRxQOUlYAiMmH+Sv3+VzClQqTG+/CCkkL9dTSSc
wYc2/9H+bJrmz3+9OpbfvpXWykgqXS2aZr3bLg+Kxa9tKw7im1Hw5M/PVpUr7+Q/f50M/q8JCLUR
VTFidHGtlMQWbzySdGpS2fHaoVykFm1AlopVIid2oZNcoZbFJSQ/PSY6Fy31Ir0RPehEkKh+TCdd
QinG+41U8XE8TmkWiFoiQQlCJbdNYj68DyIC1SahxqiQU9ECqg0GKYufxw1OeoXMh76QgFNBuoGy
JnTaiXSOISE5kUroxOsqBsZ+Hk9RK9KWxQVRFJIQRqtxor3vRIjZoQv0q8Yt0aJoXBxHTUb0bFRj
C1T8wmkYQTLDK4ofVAC0j1dUiykRlG70Li6Oq6hyjOJB2kOyJDlVSdtFCxppacusmBpyOSknByv6
eTxJiKdpcNBJQ5D4SfdalBJO5C0SGm3SluYVk4qoXIxIdkSyj0qIGZHc6YSSaFNGj1hE5F3EhERV
pvBwOjAu9BBZiSi/lQgUczX+IRq4B2uKConpoMJQDySkABge1uLjuGhdYzw4C6itemPRcXbAQQ8H
RpqqRNs5ggacxCZflxqCVcY5jgYuhb6QkHKCCINHQHAEwB7GqQRxQNh1m3I0L9oGtR1HGIQLZy6U
4rSdJlBz0BRKDY4DSIRojSCKQFYJ3vSy57GUejtBpBQeNgzeGmxjTAS7BQcKQ6Y5EXUYxxlsXdTA
y6blJs0LaNOSO9/ocYPeIJS8YDofdAeeMw/at53xYOCXZ89zNiJzmoHrZAPfNYfV2GE9b7btzQaR
6k8C12senbHLjr2z8+pm4ZPrjMdBmRSdRS43Ua/LXt/sUzST2etLyOKzI7oNO4Zn5zj2H5vxaqyN
/SH/8e409icf7zpjd3IMVs7kH6ve8/GwULoV79nnxMfIZoPGnyyGd5vXwfIQhw5G404cP8uCBwfX
O85k4+EP17m7ZdVS9PqLh2rQ7xXW2l28v45OB9fIWDQc5un4fW3c92+DRePPdr2Rf2e/aGLaqfub
RZOu182Q378enuaVwdKtUzC9fLf53O6f3dm+d/AbnvirvGzGRfDmHqzgfjUVYVWuup177bUavrDh
Luw+3iZcSefBTB9OUnXj4T+c2qZ4Dk/dY5mGY32Xp9bjrbnLD0bEDohAOrK9TjaVJ97YW8vhvfn6
NDOyzFZ79mGyEtnzRMmT8jhfO9Vhn8b+bBEM62h/l03CpX5+0Z/CkzHpVE/1acsUd7Xt6axkT14R
xUUwrWTZXaUP3VwTmTvYP+zdUTJgz0N9Mzyd1Yfupqp6a1/op06zrVa95HZezuz+qXyIlmz5ds8m
z/3xOh/11p7TBI7D713L91xz7gypWv3pOHBWDvVFr+PIj4mfTZ6xNkN50J0+jrtjV8+mzD00kcNv
+V4+53MnbQ/OxkHPd54zd2KnZfcxSxq787LdHoZV8NS/Sw6R9RYnK2fUbp5YWNux5wqMoVn4T1NW
uE7TeNlicNcs0N9jn1Y6adYuTt1+3CSLwTDq2avF83ETqSHLMllN1Hj/y7u8q0U5q6PVchu+Tc+d
cB5WiZrs4rK7SVYDbTHTq0gJl1EP+06ded1yuR/N5Cp5e6zDt+Py1ft1veOXePw8+NVLppPn4+jt
sq2d0M3W2+U679kNc51J1XWce2rlwJnm28bc3MzKsakO80FxM/ImDWODTdGbRE/nW330fqM+vDh6
9tK9HaTu+eZkWQmfF5o27Bjn9Wl1M+ju9prgq96jGoxuHONcmOswrgqnW87fmxvFts/1w10TbLOa
5TnfapZXxJN8zV87uc/53WPcc9e+GbNG9/1dNm7cRjH2YsPKoukPFlV9XIXj7UhN+s0rYvT69LxX
yrJep/1NZ3iblW+37CEYWk+P93mu3k9iZs+nW/N1HcS9981gbWEHrs/NndCSs60qx9icWCU/e+vV
Mj11dub9vrnX7pW4P3esxTBG+/erWW6N9vFduBk/T92bbqgXPFZP2XPUOy3kYzg8mMHJ1Hb+k9rp
N/rdet80vHaXRZ0ybbkW74qzzyZ//fWdC4PQ/8yEfwNQSwMECgACAAAAg5skSh6DRqsGAAAABgAA
ABEAHABfd3B0X2NlcnRzL3NlcmlhbFVUCQADRb1tWIqxbVh1eAsAAQT1AQAABBQAAAAwNGYyNDJQ
SwMECgACAAAAwZQkSsAaBk8HAAAABwAAABUAHABfd3B0X2NlcnRzL3NlcmlhbC5vbGRVVAkAA4qx
bViKsW1YdXgLAAEE9QEAAAQUAAAAMDdCMjZDClBLAwQUAAIACADHmiRKuUMbN3M4AwC3PR8ADgAc
AGFjY2Vzc19sb2cudHh0VVQJAAPmu21Yh7FtWHV4CwABBPUBAAAEFAAAANxda3PbNrP+/v4KzjuT
fDqMiTuQM55Orm3fNI3TONczZzq0RNtsKFIlqdj+92dBSrIsghIEXuye6TRxHEcLLHafvWKBsHgS
wH/I8+G//wno0X/C9AgHSDxF8ikNnlLs+YEMgv/1/v3zq1PvKI+KbJFPouKoSLIrv5jk8bx8Mk9+
mkZJeHOMgsD75fT05Ag9Qf/2MPzJ95AQmPJ/od2k0FPM75IK5/NJOLmMjmhA/VmYxudRUT65LGfJ
Fgn4jMBDCtEONKZZVPhpVvrRdQxUVuQ2KMEqPIKVxxnqQGeDf/FsnkRPyutyazuIeCiQ2IKIuEuk
plD96ufRNM6jSRlnaWHiGUESAyXMDyfzV+GXwBr/div6j5dhnkZF8eSvYouSogJjjyhiQUkeQCmP
5lleNukRLpiHkFCH05uE6Y+wWP7ml2GcltHUD8/LKPeneXjlx7PwIjKyU9CKneJworebW213nkfN
bWHMhPSwCFy2dVfyagmZZGmZZ8laUn6aZNPomAT48SJPjqufCc8SkKQwnWYzWNk16Pnl/HH95z/j
6TF6XP3Un8tPOp4vzpJ48l+PcDALr33glIaDTTyAD4cVK9LbJkwL/AlW9unF7x/ffzuh70/fvRe/
PydbvGTCw9QKkswCcrsK2OA1/O8n8Uzr3KR8Uvy4aOiz8LhCD/fc0swvyiyPHsOx/dl+bAEd+NSe
iWfvP5/89kJ+PWXPP349bZ4ao+Ifz0auBmbj2+fvxB9fn538fvrbu5eK/9JkIw/Ug2Zj9Y3dbJRc
DszGX1Tw9UvwUr05eff7uzefTGxk+J/ORoX40Gx8d8pefWbvnv2KTk7ffn5vUOrgASv1bFH5Hz/C
JJ6G5T5uKjEwN0/l6y+fnj3//AY/w68+/6oMQknI/xNuCjU0UsrP6PQLfs0/vf72DYtvr5vcpIT9
o/yte8DJk8/vnr/7KNW3L1//+PT7Z2HCyeBfT5+2U1c9OVkIY5vNmsnNL+MknlcBBsRm0WSRx+XN
E+31/1o5/fWPmXx/CDUo0Ob8cNqGsFAHu6s/mcLQKtoAekjSw+ltRbnz9GI7wEUQOwVI9rKVLWp3
I92KGmyEB3igfVCMepGGZiwmuFIewewhLdzuk4UTSx4OnCkZ9LSBNjh79fn16euXHyj6+e3bU/km
MPgr7CExscEiroZmET7h4vQEv/n08tOr55QZPGNmk1cigYMEMxv3ZvuTx2O+YKyn5bUx/9up/EUE
f5zS518ZP335m8FnwewBsejx8p84JIv04jkjAzNUvVFCvX9PP7z8dvIFf3vRZCgRZCBpJlT9A45q
ldhoHI60yVJ3OpyTk68n7OWv736RmKEPgptSQvSfzEIVBAOzEH0Un7/+/Iy/AoF7+w2/M7CQ4IfI
wiav8NBY8OXDs7ffnv8Cavnt568fPr4xGf+dsUyT+qY7WZUPiqObKEmyqy1IqEol4Hxj4iDPhhpC
VhhqIxgRTynuwsWmWzwptj8ecYI8JYTz519FZxfJUZbHF3HqT5IoTLVEnWc5BEITY+FFYCCJEHHB
UZDVKC2ncQHMinWlLCxLkI4ZfLMA2TjLro/C0o9nus4E6nuTRMVlFJWFD/9ES9DUtCBKOazHJhC1
kpWzcPL9Is8W6dRkQgj2OHE4zjul1XW0aYptA4khagicuXseJ2WUx+nFUaiFfllMW8GDkYGYVynB
A7QsySZhsqEE4Vlk0C6EsS7SIUw7MMw+UCdwQD7sRh6yk7uVziezOb2zCe7BBiiXvWzAKjynRPSC
FqaUSms1FUkqPSZ5r5xDCktKPcSU6gKwa9HVJkMbtaak3/7wPCwaKaM6UCBCsB6UajepCvI5+NBi
GHTc0DgjTp7n4SzSjNq2cyDHiIt+jxc4KkC7mRoLeSnugrzhmeZW7TVlKfw6+Q4HukYUH6gYVQNL
gEc387LuDpn6sxAM7C7gF4x4lPNh5GaSZ0XhL818JST7bKo2Qv2gng3fW9KuWHpciIFMIaDwHH4z
M4DrDpNeY624TTe1yUK8Z8yfgwxEebpKogMnkg8aJ8zdXApET/ChIcskhG1MAf5LFydoj7abFRxs
H8d0LBQjqmtr3lp1ruLy0q/aAu/CS5OfiGrKEiJSrNyRDEKCxJ8utEr552GcLHIIQPOwuDRiiMCe
UGQYqYIQEsQ7TA6IEsC1kqw3iZpmV2mShVPNihV6tZoQEigPA41hlbwo8+x7tEPNKQFhF0E/578u
KsP5+MViMomiqZn1EtwEqmzAFPWhXwwhF1JbvaJrsYKowgjaPLBKjKMD7WOrXLU1yHLiicBlx9s2
8gyCuu8W4SIXECpYOSqobynCVgqMDlVgs1UAxiLC3DlraRWNSNbqx1MPC4SHle86jkYBdti7Y9im
jYk5bOMB6wocu1GzjGdtIqA49iQLXCQg+x5XAf9Cu35/LzLd1gySvljZ7GgW+5MsyVKjqCOkzYUY
Fl7anG7KPM5ZR/WeLZIynsPedVrUv77MzT3xOr8ryDAqppOYAClns7goNLrs8g4glq0clrFsFFFB
b0A2z7OLPDLnIjSAecwqwe1iHvaFUG4cPQg+t095RwYEIensGSwX5Zc3cwjlLtIMWGCyYeaUbiDB
91TuOLIRQ9XfqUsOFYgbqwJgoSnrnZ65xIEIAcCg/VMzXcogiCDLloRDoXGtRy24iAi3u1XQbhNt
7psQOeDefPREV9+2mQoHKPmQZHEbWTzobmkLWYEcBKh5N2p/6Y/gvmMR/yyc+ptoZMA6qnsdqBjK
b8qjsDRXESjEuQx1kaQQIgA4uB9x6G86kHfcQlFdcaS4H8kxEDRtDek4y80X3G/OLsty7kd/L+If
e3IYEEgzOp6TIgdjcRvGMn1PTPXgrsyyaXx+c+up5MBerasQiRhZq000FkN7KxsH3eaoSAQxBx9M
d7MWR1FBtMUC+hAiPtLJN16UxmykqHRnoGh+niwu4nR3AhLpO9OUqPG0F/WjvcBQEKRyMd8SVhpA
lEpAX10C1R3G1OgbEVpdIQ3uzX/HLg7SYeCwkqJWZNBLcXEPDwHH/SFdMOhp18knTNGwDtqSTEBG
ds9qusrJOWuES6CVL+pvPplcxM0xENQtfWljSOpOkp1lRSQ15ArZx04v9uyUESeT2QxAkyjMd1MC
rvYSArbGDFgGY9kIypzT+BrTkvCmHtDgL1KQRb+qshf+suOh/hudbDQ71EroynOHLEXlTIFk+PU3
fL2EOPX/Mjo4HInhHLxt+78TRDHlHkUOZ7zK3cK5FvHED4tJHBsJMF3qtCGAnTV/T60RSXBjsV10
j7sqP5VWUTZu4eYtoU2+Ns0v1ubXqp6NdxuMioPIrBSaa6rz0VnrP3Jg3CwuJndydrOqE+6v+Xb7
J5EccQ9xjN2lAOBSazjoWaXelcpnaXKz1HkzE2ngMRR0EIlpdB4uktKP0knWViDkXDfNiD4EfK8d
Z0j1rM1APDInOhhmGpdVLxqVxIAZYeJ/z2Lp52alUgHvSadwm05xifo4p/3eAQ+Yi/JahQnnUR7l
/mUUTuE3wN94PgdLU5UTZ1Gpcyv1T4TJVXhjLrdRbHf7tx90IVbGvU2I4vQSghVdN11pob9d64GT
AS1tmQ4FsXYH3FnXL5ffMN+EQB7lg533bVrFePJN51ES6XEmB1Lcn5qay5zgr9Lcy1jfzrrx0/BH
fFF3f6TZbWPbvpCcoIBZunND8P42RP+p+gn4keNa7Rr+PG/coE4y8BVtlnpIMqZiiu4NcWBJ9EPv
vaKw+XUVys70BIgqjjX1KQTNbsbOu2vtk0UK6RsleBSLSwXtFbtM7GMSPAjER3GRCeWj8C2Qol9x
WI+hNMg78sg2vaH4h0TPYg5mbEe7Liae5LSbKm/GNZuKDEFO0RxvIigZRUB4Pwq878AEVmQcl08o
hUbzlZmi4+yKIeRwTmthr5rC/avLKF1bePDfQrCQfqm/qX1Ho0sFfhsOuOzPiN1J/E8uw7wl7sFE
ApywkdhLWSc/bSUqi/Lcl0b/qAriJOkLQeCreZYWLezUftDyL07h+8e66aL+IO0xReHsEXn+CAfL
H39EXn48fe3LxpI9zAR/oCu+inXrZOEjzFBz4dwlATXKuisJaS6YUTm06xxNLrM6X7N0olvamXkX
Cz7P4x9hGa0zwBBTtN1wBQtueYHQHqpr/TMitWUbw33IxCOMKwWE3w2SYWWfyQjLhnA/OwtzWL1h
lTYD07ZXaXDFXO0UFbYpdtLZ9Qysbmz1QUeMx9OW/h89+4eqezvaujpLrIrPnRlO7BpdiK2fkxd+
VcAwezdM38e3uj6zg+BVln+P8uIO4eVUfWPJDZwQhNgozFRYutDpM/G6rBqYM6/EY5z0w/3tFw38
+i9MHcUI8Jy487+4La5W6db2/kim50eIXgCxhai2F0UZzQ0z4LAume8abWBlrqJiU4lq87RIy+Nt
fw+r+ibBAQQP3yRubjIg6l7xeQmORA678+2nA5TUJVEXECmKo7Ms10p724rQkopTVN/4Iw64P81m
8P9koSHDB/TI47NFqce8LJLEvwQMSVpISsks+y+spHcJBZsOlCnTUz11goKhoNIhb75EzUbiXABg
Ogi8W2OhGBA/cBM/eCCHo0dM9Oh49JC+TRJ0gKoJgAIsINYBlrlbW3Cs3yASbqCwKaZ132OSXVxo
NW3ebdLDzjiVHUxorZerm03R9RzwznzBmTG36Os8KieXAHXTm4+Fdkxqb8BkpLEEyHHxB7ZMyOqp
g71jJ7huaAko6cVwRbN5ebPj5gDhvGd/Wg+RjPIfZm4igmwntZEREimMO4jOYS9KMdYThZ0vSREX
HTi8EkECqxLfHk1Y1bHbEgUcPHCFR4mAnMT/LnYYAFDfWsC8F8d+f1qcECxHOnvUxUDd5HGSxBMw
T+YGzGqOH8O9o1Fa4YDRgQ2w5Rjq7oIWKHrfoXYatYAyoUj3HY5q4qqy1UgKwkVPQeCmCLc+eiHA
k6O906v6uMz9JIHdE08WBPVLgvDFvFwO4MP+o5fBI/X60Uv0SAb66+evql9x9Svb+P6z6tftdwgk
120UcpDFdV4b0704PS/tPEwSbdY6L054ErGhfZNgSDn9KT7uygStTwEdCpcAEK9NLTJKW3DMH1C4
XyF3I9jXkY/qWX7TqNSh0MHi6588+/Bhm4965LVLsmbMFQrRT5x1d0xxF/WvOoGpfjKA9BZBLx+v
MKYFdECG+3a7Ku/jNidhnvlL9Iy7ATBoRyJWiP5yOpvb25n5Bq82cAWxVaxU39+oDd9GG1yVn12f
b+XpmrvYuSQgUWpgvH8NQo0fvQDBF49esOrr549eIBOu82CUoEX79wOfuCFXKaR8IBkOqgbfvyl3
iukoURUF9B54d9SwO6XGpqrzw/2keCziJYXEmJjMyChIgNU9oZ+Ph8O//QkuJfsz7VF23jIIUNk9
2teLeCKixhRPKboHICv7vHOWPVIQ9vF7zxJl/iruqOvdupXvIod/ZvYrwHskpK+CrC72gIw1LRkT
HhJCDE9Hv+gxwnaU5YzWPXK1fBxq5d439UXqt5qkSzvLVpK7ZVY5lbhLkJJebE16NU92ZRAmdCmO
TiN99f5mHVwbMYxiCLvoQ4r6WzWxEUhxy9fRaIdskV0RlFpakurr5WTUSZIVLf3HTIuZA12njga7
WJR29kSQVUaUdrb9zEppqBWSbbbINPFMv8PCXeTD1VA6ifsgARaXpI/D3O/3YBn0wGAri0Hs2kQO
PMs632qeGQ4aiLE7H4ubdKIHZvsbjXJxurwOHS2n65gfEOIQIjuofW0e9efqRsDKjZrG51pOQE+y
uRYuc9IrYAi8JjbSSSKlHLBmw3CWy7lErYaTYts3pvZCtFU7BemZ0s62CqxYfzZvru9w3G02NGZF
tbuD8BiWiNq1DlDnxKQ5ZND9HZgOhd8OgY65KC7sXh3qA9sJwmxUU91hX+VlnE+1MJergULAxyS8
bmnZxZgiD6OAD22v3TxrU/e/1eAgS6XPI9hFqudFLgdnLtvHd70BJbll21grbK8tUVUQWD0fttZN
XQY19jrqmiLvxZ+pZiWtZL4BrlzogfSouxFcvVi9x2HEnt0tWWp3RW95pKYp4tzy+S5qN9bfX5Rx
Uk2SA/n9exHlN+eLdKJV4XgaJVEZLVnc8KjAjjipnNHJaHMTkbv5OKgb0AmHXUbPo2DPHZW9x7YD
HXc4UYgCSCK7++1GR7Q5UHpZgq0c3/Vs6X0+12P9x+ZdIYgH+AMJtyhlXfIcq+6BIp4tkhDkruKN
3vXxpCh809WXx5NsNoPlHhclnOrmuKV1H3zDoDOq1FgeMWfdJHY/UmP8QOWSkWAkLmOX8+xH7EC+
GkL3eB6Wl8f1P8OGKZL6Pq5kD+HQsGFUPR7r0IR4oCzA48ntg5AC0mQBvzeF0rNRLVAc6UfsMX7I
B3XnHuXGXIgq0DU/hkIAzbG4L9ZXkbCdCdVF5RHjA8JdEhLF6oHmc4g5taPXMribYaHb3e475VHH
gW1TTolTTv2QgAHxYIiYrz2xLKUnncKxOzcew7Noa1prjQ8YmMYkH1puuOgRGa4vzffyIPawnA06
VpKmFlbDbFCmxMByiu0mJB4oNMt+EoR7jGVNpUzGdZkBDS2WUrqJ5WZ6Ot2csahPf1aPNDKGyHpr
wXA0r00kndJGdoKAXeDWYjPhfJ7Ek2oKcMuesDMI1xkMX7/Z0pq+5Ip5RNJhheO/lxOxjk2z2lDd
9jqw/LukRA6Qxb07FHQM8dm3DDcwHuQuN+vBfakFvO35eviVDAYHLlWHwySWyeEYtHr/HPXorJhd
OoQgjEGDHQPnHcGxrpm3N8zx+44CFmkRnkdtY0KIfmnHORgCSdw7NwgJwiHexQMGoY11uCRxEZMP
qWh5e2yNmqXuWxX3ws4dycn1SxfmBCUiQXdvbrqYzW4Mj3kLjxHez4ebVIR4DHf3RP9ehHmEgydn
s8bUfoKxo5s2iGXtwdVZbfYiPt82Tbq7W/ZGoClrTF/BU/1RMKQCdJsqYyPHJk4o3aMHioTVlllv
tsw8tJtbDmZmg+J0w8bBspgYelm2CowHYlAxAT6Uu9/wpUhCPEiGZsVqKW0nwpRndw/CqgfkKozL
evJjmpX6WdhplhoHnTD9Ei5Se26hsqG7QaQYSAIAJ/zbx1z9eZ7pd8urbocUtGRRrW6PgEhQYyXu
l0EcDX1CgKSvs6xeQCOo8YS8ZwnhVt4YG79SiAVTh6/M5Mo1rSiAgr5EfPjHD+o6r0a/V/+OGL1n
GlhNrru3Vbc0JShEH9iqEz2tY9eS7doVWE+dPL3IebOJB6Rc0n4+vLxuTJFE1SC9UeDzWTp9vuql
3g6DBYD4/SiFZUeB0JGdxPeM80Fwv4bOqi21/zM6pPUAM3W/h4R0dv9eVyCoulcxYcHgwZOl69oa
4sl6rM4DwD0ROPtukwQCF3/96oy+723uD1BcFxFczqR30dzToz38AohL3uNOery67D71i8tw3n4d
nbnkV0yzyXZfBzHeuRdYj5NnXaB6941rzIS0bCLYT6G1oZ9gh8TDeQy2Yh4fnSXZmc63Ax7oq22t
3fucUI8RhyDlfJEkxSSPonTjS5C9qhC2cZ20tW0LI0ogfiajiEnLxFPBPOni1q+4vPHkpoHf7RMb
9KBVNriAYtyBt9tH6K8fZjU2uOjyoFVls4WTID76Ytmajed5NvOnYRm21fpQQPQlx3vKimEiHczW
3ot25lvXmLjx1ukKmF3pZr/UFPDHWUvLKvWI6KGeXyTZld/6fDQYfX1QEomuwWOz0tAsKHCKeway
JQPbnz/gLtHISt/qgQOwLz0FrFY0/Vephq2omMCPtF2J1XfaBO0jr2DzUItyYGuSTcLkSG9M72v7
IG83rMOrLDVcn0dSz8ZQnfSgPWeMEGAIOXBjJ+8+wOeD26/t2zIA3JxXsUjKWN/cq/wJX9dWTOqt
RwAeWNnphzCuSgnjEybKk5SKeyGMggM9xF4IM6bnAnfxqtbtTFf6SXtfS7C/cuyw0ZthCkTLRp65
xSziVuK7oNDqMh0/fMNGl1lqx8PB/DvZL7v4mHe1/Ciw9Ei5rUtT5jca2SdxAWGp0Q8g2hF2oFnz
USfJqio2OIr1hPR6IlfdSFhVccBr3XFvGVwDj1EH+to70MN61nKjDY4Ovv1LrZhl5of/x96V9Tau
Y+m/4pepp1YVd5ENBIVBA41poB8GF9PAvF0ojpKoyrEMSa6lf/3wkLJjW6RMU0uiYIC7VGXx4XLO
4dm/Ncz7PgyGcw/TURSKR/BYl2uPuj14JxIcDM2P3O05ml933/5TJgi6hzgeIJ4GBqrX/YCpEyxI
2Yp40KlbsGJ9ZA4QC+5hRBScYjzONo6UfEqTsED8rOu0WkTY8+xKe1ykP2I/Oq9hQiI2dUtYRiky
hMCuNHgAsJ/vZ3+xdL15NqIUDS3rFCNMk8AID9lmT67jwEHJgUdf8xz2eerWrofN5xtnMSa16mJz
QEjQL4qtDOimEgXVAqXGsoJOERkuARbg4Yh5q3vUxBku65kUp/qzlcQzbYvNua0wvNExtpWSyZV6
q29FhLXYExOAqAcEPfT2qpdsU/zb6GC38tVmMYyfukHde7RiobVA1Wu5sRWGgMsIpGyg1hcJkJCY
J2h2RfhQ1D5dqJ8A+a51IcgW1Q8IUeL/1zniOikiy1hn0HjEd7BOJRdy73wZcnSj4T1OmI3rl4Dj
RRwQTtEyLjIoY/IeBGMh56kWIsBiGeeJJfqQ5zlOpkUZhluKZJCFPG3ybW6SSbWMA+Jk7DC6yUSH
htIZXjH6BuaHdnn1MySHhFG1r50XT9ukLzSMmQB88QihftqU99mmHVN7HFcLNYJmjvN9VhfrRHsW
r4ESV2QaEjV4pMjM5XY98WnFA8dz3E6y96ipWvGUjpcHq5us2QNc3oP9s4eDGSf6iNEk+72IT13S
N0EqGGufijclzyNUXW8RYg0apK/+ELBYhgV3TsOLplHstHbsgmbbEYbwMJXuJ2Bz4SQQfDcoqXjC
vRbh8eQLd0Cvg/SIpZyL+jnOJDPjWcVMtPkZbQ60MZ6J9jkkoxlIyufZN0Xnc4yxmQc73r4t8PMZ
CIQrkU0BaGSmDTsG4DL0BhsmaqYNnzexUsPZarSEZ1BoXw2K5wDSnKkA+VZrU9KiG+WbzPZKFHol
xsa8I5/MV+9wR4tRDupEqLfgayInsvGq/FEv6LnfzmNQhSDHu+zryZWwQYJj8HXaSf+JEWUq/IY5
m2XD7Ox5ZOZ55JJMaux8apnsDnVBBRSNcxB/Flst0Em5y7dJdl/um+R+k22/J9n2wbiGdX30H921
tjDRUakRHLSWm334M5hjbcLHxOqPzWymf+/nc6E5yXzNN4MMS3B31XhOCjRcZE1TFff7xqmWOQxW
Y2qUwpqehhWqRvVA2mfG1/sjtF8dkwOKK2SXk+zN94TSmMLCqDohgsQEGzuFY3Ph263CIBfTQbVr
V+a6pGNdFgvqF04jXv2maDbuUjnBV5yycffnFzQq5aikrrIHnvryDgOxxe03d6aFISQCRoMjZpRX
VXmwlf0ji3kKg9zx7cs4sI4JibUAb6W1nPVL8PSU6/c+ufdjW2EkaGiPwwVp00cM6FkPuyKpq7VF
Pt399mAZAszpVBLyo6gLiC5viu13N+QjdOIiPOyaT40oO7vBefHmxt2T4iTodDlA5R323/haOBVg
oY62T49xesfPHMzEmOFiaqLnxnBiwnBB0fRhVDG6pBoGz3hdN127TIG0D8sjzvVkWPLLUyuaVlxZ
ghFhvwR2zRqiTOJ0haVQY5LEiSDoF2MuigRJSlZYBCFFpS6D2/w3yWrbcwx5MjeYKqcUMiBjbowk
+s1HvzBCzpmf2j3VmjUNgnYOpumaxaWNbu1KkDCs9du0625fP5t8h/NIhYQpYOOLgscCYdATF0Hu
ktYtLUe9UxegH5KLdJgG2pbbZAz7QQQ2ggxTS+2QdYWGX0OLHm6Bmx0wKCoF4yTGqHZoBod5STD4
cyR2I6M0rpF0dJPEy09es4QwaYCRxloJZAr/3JbNn+5CehqYJPTqxKBBdhHnWmzXlck5Qtu5nfxR
rrUE3ufgRCQ+YAOGRSBu0W26t8p3m0zv16t+01R7ZBH7jIp80BibJyYUQXGEfdxCWgNiyCutp9Lv
9UDFKcOD2pGMmEMAU9/QZmNMRqh2ubNTurVVAGO6P5lv/mdzh+yf/l5Wd7ijCRQDRwylKMYOOjDQ
yRSbri8Ic8myYpt7oLdU4Khotwf4bZc/GcDhItt4xUQg01kVoW6PY6t2ZdXUx9xHsv69dodFsMIr
TniMBqh3+pPLCua41eUmb6FN9DuVgTK339ZafwuFIDZw7cY6oRBpFaNvtoszILVKRYPUaSch8Pnz
bcuwCVUWY328HviJyXv4mgdeTKQckL/VEGOneMj1zswTud89eBQsFgpG9qBbIlCvG9pp0bh4tBL4
mnsWgRZ/xoazi525lD35EimEpCsWY3O4TCrnRKw0cIhsXxirKe374JhvQDUBrIgY+ai6coWRPimO
pxasnlUcsIrRLHsleHKbjEY87O7k4X63y6t1BtMib0wjAi4bGsVL6qoQ/2CTMPCBkWi2Me0bI7q2
kNYnhl+xSxBFjHwAb7YT4YrkJavd9ZvccCQepuK3TfFY5JU3viaxDKzHDT4n4jonjtnkd8HFQK2+
Lqva1tkc8J6c014UXzE5xrVrJ9UaU853CuwnRAfmfi5YQG8s27i6z5jSPnCK4l8tayUep1Uavy05
OHTl/TdjOT0XG+deFbzJV8Y937xXnzKCIYQIDaTVh0acUnzLp99c8IUPBV+fgGHvmmrfmUYMpe63
ZSq7LpTrRmvnlfaEeAQYKwJF2nWP2mVLHoGT6mrdh2ZHEMErFpNJP5V/vU8bPfcHGVOwidjIUumc
6YDRlcSv7ENW/Jnfm8NrQ2IWVArKqZ5gkvW2+XSYkXjX/uQf9gf/Vu614dCdCaKdGxIE8CQDjrdr
HmFk0N9v2nCcBjiYBuL2vZyatZDobbQlYmZNmtO9+UAx5UEldDJa4ToZGGaFEXbLQUeqBr9S4FpY
SVgtm+/OtZOZV835SD8LstleuXvAXwoD/lI2jVyd3vit8oUB8jON54bD2b9GAeukNoAYfkNGMG37
0QiibcxLv39nIa9kWybZZvecOYlhyF5F8DucP9Q0GFSJwzRS20Nnb9wMH2zfhsSiCGiu9Ib6MVeh
E8l7OcGOV9Nf+xq7Ov2MP2b7jUPVoohzigtpB43ikCOEtBWNZ+4TxfOcm1lIPUyN5CpsyFbv7XKI
XZ+9ytwqbRzUZxWttpw+GiGBPpoMiRxohfS9gGHoT8FBA/BFeJAr6nz+W2SeV3CLtja4x6CjyJTx
D2CaXbkzeSP9Qmva9pT1IRg5bLV37c6LaAuBxdg6EZrKHXNlegGUvZmC8uqlsAEu8vZUsaegFEMF
ydsdQ7bRK9xqFuqO8eN0WG7VUNs3jzIBnNfPuy7AOhIYkAG0uiGD9I3eQrU3bec9Uf40ZYFYzWNe
LhGRatrETq4inEsFQTSmhrw7bcpHf9yx7whpu2pdbh/q7q0RJqBvNUZVB2NrdfcehaouYt7jMRbp
BwGEX/KglPOUDxCC07xaRxx8QSIoJqJsDJvlyEX6ep7cKl8JHticKEMjU1+7e+3CR5twFcXp27BC
IGAfhjdZ4KkPR3gO543k5BakPIbwPG8EiTF+LRVTPXDcjrax+l4HhLTFm0Y+/W344VHbuCZOqrdl
Skh/PHnKYISmpWbULzYEFdYrM5q8t3EvhOaUI0uUqMmJKo/wsqkJYzfhQUZbEGHqJDzDUTPPUYup
CXP3jmMiub0GHrli4FHFJ98r8bBVtPo90VEmLKsl06BMOtA6tKqXg53PVvP+rajWm0tMEFMDS6Rp
25v4HFM3z2A+yzmiQWrAhFSNT3UccfYAgS94Rfd9hfBSwOgJOY4mCFuFr+5DrFImxn7Ge9PmmGC1
opLMccEKp7Oc8X25365zbyUvYUrLEhktju8O32uZVYPVwtrqA32JHX0AkwBwtHWZv0D2w57drtpv
IYrTlv9W+Y9sUzx4571LQld8kAVtYNqSFvfYbWRiqBkZ5GeFjB2ICXbYC3rc5AZ1NwmLrSjGVhxH
xEhfi0MhOP06HR7qi5Omyg+hI+Mu2A6E15SWu6FUoEBfQQUI4ulF+pQaTVcsqMBTxfBL214UdJUq
0u+09100zvuOiieFMbcaqfSZ0kEdoYF1Nvx1sBLq4DTB/wLL89QA5GSE3pwNoiJ2lKD0zVd+Q4Ap
rFNB9Smz08XXjYmHg/oimrfynXsYKobaZjGP6mp98XegV24JbYWVDat+S04T3mU1jO5sZ/86+r6l
0MZqmGcXwwXYzwUwqFWkE9G9z2pnOE+l0FofcbTaWqifs13e3q0pf3KV+ECdnJCT390BLCiaS1yW
o9NKpJAVJuOcWK8HQykEP8kQMT3rv3O22pEgbBPVZ8vrTVXQtdzppQBgZU7jmQvGtdTN701uy2Ve
9o0dpr0zsJ91U+09U/9E6Gwvnzo9D1K/jlnW1shB89ledK/vjSmHhik2RJxbUl9gkAx0Gq09wPEy
VSIQT/0apxDp4hRJJIxvIHwIBVuIuTsPG4oV4ChzMsEHY0UkFFCoiA8/dYir8knTqosfea9TzAUZ
R5BcLN81ChnXTM45ntHYDoPDkSMZ291ZzCmDSJpSIZOTtGaL1Vg0JGB2+fmnNR27bF/nUNxXr6ti
1xyBl3ddlGkI0EkZ4sT0EXwtIll7enBZGoYme0klRHpxSKP25Qc7DNcbda7HKefpCvMQsPDugR7E
wtamfzFDdNorNNx63v9s2glBWs1P+AGRMaIR59Oayl8oSttACEW0/ZPxEp0NpwRwK9IJrvmgSwUa
5arrva01hLLDK+PfU7kKwgv3bykEMuQ23gsCNVScv7NVG1fdi+zZAp9QScQS141JSOf/O1x3UC3l
ezzvkM7H93je5LZ30DagHvTx6VzwuoFWVNDLbUHXZfcWNXEWuUy+ZFjEP1uv6zfHA6eU+k4Jetwk
4QsVXjTOIaUWlKncN7t94z4p61XChMCQ9sZ3qTEWeskYLXHdCg2K8PpGOn3+/MX+85jVzcFRPvHy
irUpwvgEONv/83uX35kf+Q/y99MJUEwLjvRPgeJSYBgDo01nuUhrRLFFKn1Jl6qG5TI1YkyyafSI
SipStkghS9Nl3vpi1x0RVrGu/znRwHoczBQKg1nxWVj3GcRnnvMrs2sJxRCLGxIzujWUKvCAQMr5
7T77MhAsZWFju1zB0h951RSQSdZX9LQ16cNNsT1U5bzmc93t9RirNC6QOoTPu+fymmr2hWmCKrQn
XqQXp7b7s4mXiaXg8KCwgdKSV/rm+6VF4bCxGf5TC7Mtz2P298X3vP58/7K7tCzhS47JoqhTRZNi
yvSjISeIVp9cTc/kM4zfjTz0RS4FJrMf0aErRQ5hX0C/yPbaCjL89a8//tnG7aHdfL1vIINXb/Qy
3Ii1qRTQ2Czev87iOJ1aqfeXViPOwmacXg99nNwaHBMUXZgRkTV0XNupKd8LKDOra32yD3dVuf5e
n9UM45UwzfpTXZy9tasWzPVrkzGPfqdDhSLsLBaBdHDMg9vBRr+2Uf8TBBVMAqPRLJs+ZEeMuRZX
Rhf6DGGUkjfmV2t1vOiHoFtlBcVVn/QOyp+mIEr/bidGYwvlSKr4O5G7vieNKTHBk3bkT8+bDxkA
MXdowr3EUBvzqGbamlU30hoKxHLxK7NOT/xzvtnlenebr11IZmWcz5h8anQTPpHszVXp7JlBD+uE
CBiWUwpYe06XmSOYCa0uJNvaC29ji7TAPCLly1Xtx/QfI8vfBGERhnL25cv9ORKRq7bZ9qrpf2W6
/HOaLn4+5ybwR9jEZLVOc4qd+gA3EdQbPuPr67dtU4I+gvR+hPcm/QA3gVMxcXSJeifBMcY+ACsT
Nkqch/jiPHSy0rs5T4nSDyDw/CM81+gDmLCEfoCbQPIjGE5BHQj4ahIHZutvH5KfVakXudZ6EUb6
Z5vaAyCqViwoBoHfMgXAg0oo8HsMWOOQsZSXSw8M+JGLsI4y7wMS8Xx03tFCvuyqsrFwhYfvdGZR
AQ2pIjZ5kr1oIQdahEngj6LRVtCjsykLEhhBlVfYFWY0g3qA6/SeLH/6cRYU9CcGVQ3jgAidd5O+
liy8SomK3acHJPmwWwdWMgYPVNEh3Hq0wajPBmNBQT48xEoOyMFiMQa7alaqPd3umHMURyZQ9OlF
xwSIPkNBicz3qCaVGFnKDnfjKyvBBIAs01GI2gnpLogaOtK29Nu62+QXJG6YSBogsalXYkOmUAyR
WLdhgsAwYWOI6euQSndCHMYESTmZpKYXtp7JyiEiliqpMQq8T1JPrsfV4kSCEHZGJChiBGoAPZay
eemxec+TiZn3R+XM54lnpRc00WnU/c1MD89MD83Ln3gssyP8AmdWaHhmgZj5RWLpzAyq1LA5Jyd2
5NnEk53D6rKTN0gaY3p1rMpvr7BYCczXM7U7r/gvLoMTMIv6QXsj3PqvBqfoTlDGJJdIiRQ7PH2M
LwpNTQjtUMUyaRTFAq+tKCFiTIvXY+/iFVUT2/TXfXCaTnTY16qR1mUFZ3P4+2tZUvuNw98vglxS
wPDz8zVffNQ7W7WFqFwRJZfqa2CkJlK17pc5CJsw3F33QSOJleART5Z7dBXIlwtoQatyqISMMRYH
BBCFHNYIMlZrLmVqaDLlJHWiXyz9gmnhLF8yo/42v90dXgYbQeCpnk7S/3TCgE0+xvthzt1EtXrm
k6oV5WK0KLxzR4qvOGNjZDPq/f3JCJqwpAZGFygIj0VVN3PQt1PJYDziuNrv8l59Corrd2NAMhJe
MZCclmsPWIYtZwOjA57oZX4y8tecPZ1a940VNuoJ7sa8Fo6BSIEpNkZut4pPqHTsYwM66UZ4plQz
34XVYDXPRFs0DK9W/KJAZw6aQrJbznUgj58AoV98L8Gvv96UxhJ0F+5zMbtk9qyatDar/tiz9T8W
26J+dnKyQjed+G0IHhexgCEcVOpNVRGKW4FmODe7nptm968IL+GN78siNWjfZ5Aufcl+JXXxb3e/
DhIpZJkCGcIOlTvdnrYJNVO87OyDBlYi/MG6THYkeUfxGVTrTw9Zk92Zof/PZecF1JxkBrmNqnDz
9XNpiTuOmWjeVUQON9ZvVvRBWE9BVsYvc8teQNiVUOn7ULX0MDDu1MY3IuEVA82oKzmSN9rirbkh
6mKyJbepyBvrzMaWuVfaXZnTHvi8MgfQNAMdRXf5h1hxwqO9o/I0KuweaShhvDAeYgyAtMKbZmBk
29id+VpCfrkdTKrN6oEhyv2mKY6DlZxONIKpQqNoQjhFuy39wP3Iq+Lx90Vt4p+dk/Z1a0foyIMs
dqTTIZnalQZ+xGNQqat1nR9rEDq0tFvL9AGroYxz1v/ZgnNQgyNJL/v9qFgxLKcjyFwEkYpQc2Hy
Zy1xKdl0W+KOLYX1+kQSFA6CJObBCyVIHAQxZRNuETspTikJqesWh7w41whKJ9uMFEY6193eyjqu
feoJ+Ua5GDUd8RINLXJhoVlK2MCjjvqsf7Um511T7fNO8iaFZ368nR3eevsI7bREoM4WtUOAeTxJ
C/ZQVsVTsU3+97/+SH4Wm80/9Tf/sChlThgYIJzKicN1JJ28FpPEVCLc2Pt6JoRXOycIEuP4LN4p
l5Zr0FDHBbpWml6vomur/WkM+86eIUIW4Wa+ruWxLC+u104tIIFjIX2neQBi1c5o9jP7nfx8Bigz
e69ZA3tvAP7mgJzkxCoxiFVyyEln93W52WsXbl9ttGtUFTtYiOayXbZ2OI2chI4BIu5zfcg3OYTM
no05ftKqbVQRfPcJkMbXPT4B9NauRAhC8+UiThSvnWlnc5inUT2Xb8W0O8rp7eQcgnPrpftmItEV
DwJwIldTUdvyZ1I/gzz/qJNd4YxFaIaHsX6piD3yCDfMd0FOlwwjPqglzCTQLQYRlGkfgWodYx2J
DGpPJ35X4gbWg9IkoSJYD0Y1VkXz+8tDlT0l5Q8TI3spQbIspmlPnxMGQC1CggpnyVAN7jsMnzYP
G2DlO42wqBvnKF60Iq2sIHwTMoLJGmbPkfF8KsrT6Qi63EYi5XQEqdMxxtMRZM4diukIumINBE+4
Q2esAanpCLr8cMLQdARdfjghExJ0esUq3mJqdZiBmtaKukXQs011Wntv19pue0jufyffai+M6wgq
7sboNA2q5b9isLQZi6MTtn4qvu63hXZf//Fwhz/9zXwbHtWq3NxtS5uB+ssBX/kvu6r4oR+yv7zs
jbvStrnrv2e/Er2Jbq2jWjEicITKDAwwt75pzNHcFFy2dLBAE18BmeIKOFVUzvQgEzrJg0y8D3IQ
XkosQRIdcowk6HyQaTodQef7SOh0BOPDxpEEnWHjaR5k0hPEldMRdBpVbEKmEU6xmGSH2Ao+GutM
RzQBwoA1rjtv9XP584/8Ma/y6h+wZWdCjkpJR6H2VOX5lnD0iyOHy6g90hXHZImvHJOMLdNCUiTG
i42J93D9ATL+jDQzGcz7fowmofekPR42SUBPH/3utz+qh6N4YOxwLlFqOCMeWMoGlU6O3FHHqH1o
TmYjaY1hLgeF1HoSQu11JJtiq7/f/N7k9XOeN/YWyuoBVLVV4MccUd1kVXM6KdUk5PRvPHWEgIVN
rRoca25HmND55KB1hiR+P/eiL6BzK3agXKuvOjmZBGbXzOWthNWHjumtyHRmb4Xhmb0Viee1dOns
7pFUc5vW6dz+GJ/XH5uUaZz+mOSzeyvpEtSyNgFe8oci+7yua9esSr6ETZgd2GZA9z4IGtQ2PlIn
r0hjctBvdZzQIO88TBbzxBxMz7bipbL+r7sblwc2PL6Tg9KWjXaxPWdFxNI2kuivV7+Ter9eQw2H
c1s0xvt4q23dV1mx2eS99xTWY/9utHVCPNsgA+zbh9IUxR1jZXWd3G/K9XcbGFvXO297MlraK+E7
vzDIr/ejoL37iEnPvrHa8bE0JsvWoN6NIbVUHeplu5QtJxShN/HNdS1yES+2cT+gIsuxg3SErPUu
r/QKoNTudMzQ18P4lrtLS+60Iu9TpZeOkaCp4IKlXApGLuAcYSJJuiAbb1cV28bD9GKE4G/fcXYi
32olyCClqGmvv/+3PYKuEDCYW8fxQrXuo1ZUHoUbc1GPebN+Pl7PS/mQm/lh7RKdTZ+pKa5fEHNn
+yrz+XooHc7cx6lrhu+Ovh9syayixRZJDukIAzJyGLp3+PE7mDvx1y9fjqv5q6aIhghSW3wdBsn9
vt5h92VhtRxTaZs86596zjcPPktcLul1KL9pnoPMmccuWpCp1/iCaIuyxJsfPkf/oys0idjC7Cqv
h5TSCWpunSfHzYg+tmCbx3uI7ymy9ZQHJe3/j70ra24kR87v/hX1YLVfulq4j4noGE93z6zX4WMj
PH5yODoosiTVNC9XkWppf70BVBVFsYAiCAI8ZiZio1fiSEociURm4vsyCdduLuPh7lrv9LwydcwE
ivnoblp8blqYvVtX0+40bqooNafRxr0x3c/K+5YYbP6c+cxAhd41n5o/d4N/ukG/qP9tpqE+0X/2
neERjaZFtWr81d/qdy2zydSXXRXPq9tRPS7LHi5M09GHCKEe3KHB8VspRYjKC/KRDIjPD/sB0YEo
xd0CQYblpS19w/XLH1/uqnJiQGLlqpjVH3UZoB9+gggTyvgN/7wbDGQIs5C3x9+/IvOELCDriyyO
SQPqE+OgtfzAyYhxUpyWGIdS7p8V2QLwaYlxGJyYGJcIUj1UhIeclhiXVCA/9R5akS0hVRXs1dC1
8bT0tRCAQd3XggokTsvBw4if9jJ9bz74ZD6w3q3KSfzzbrXcrX+uim1VDkTdp1dfAOWfMY5lo0Jq
RtgBRsO9W0yXAXzuAAH4lcFGYVVM9Rf5dKRGOVtMyvtyw35qyA8fVrNlV8vUDFFI0Ksgo5vpirOe
nfcey+jXLDrsIW5QjzDOWIx3kkDZhEd4gLSlLPvkBnE+oE8I9QNShM+htp9fzxK06yoFxw1ssECN
x5HvLxUA9LJOuN9SQiFCilvFVspAgDWXlF7y4PcCqwnkp2EyMsbPCEk4HjQNELiC4/X+6GsYCg7Y
5e/TEBYYYXgtE/DBaiMGLn86PhjtQ2mCzRF6nk11nNLK3C0BrKvs5+Zs6er6Fqot1cXkoLiGG8b5
Ang1d4wbKsuvwvQ7cbEMXY1FcU3hwMztldxfl/RXLGECp+A6ryKXGpFrsEVeYHd52ZeCm24PEZKX
PPIhZPs13ANDUHFJr+w4u9HU8EA0ddiF0BhL8JOxqur/bTl0dgWLOgCxhoJdjUl0xLYcHME4MaOZ
jbbK79gq3hCRSSwufqH2w5rZCU7N6G48KW7Al/uHx/I39f+Wh1NwDVH6Xlz1NbhHTjw14tcwegeO
2q8YHr6Aq9jligIvbBa+sMvYGZ/Jk6TvP33+8rMyKOom/uUv//LXf22+tFzKfqQa5+L2XzBewfUf
PjQP2OaHRsvyVn2w85v3iyo3rQNWC93ufmLpoQOBRo+I82uALySaCs1NDVDZIDghRSSeJK86+xCk
E4isPfUSCrTCCb0AkzginNCr/xyOCCekMp1AK5yQsvMf4APg6AKIgC3pwwT6LnPHCup7zubtyYtq
jSPCLmFC1QsvKIZj9iNIqOv2gmIsokn2g6/7eag4SoxPP/3Hv93QL02g336jAWPqV1df58V3dRKL
+iPs+xoIyFOMsomp2oE1gdUBo4TSrykgjvt6JUxrkBCj89robaFi2tVs+uHZhj4CVBfH9oIFRbVq
FGcCnWLbG4+33enG5z1EOT0T3ulG+X7PEXsfZZZqmoku4k2zyE4Pm+jI2p2u01RH2zkCeEagBCkO
Q9czM+CkmUCv+TefLMbrWVN0xVkfD3Ki5yLOv+BDXcigpOT8I7T2N20K+vsWscO7VI1agzEXVTfC
LWnravqjidR3G+A2LTeFLll/sjXp3NNJWbsaqkIuaaC+bnXReSonxcLRCx4Cpaie7T72iGm+N2DH
vhguYOZX49N6C9WrxXJpmPl7Kt1DX6Jd3D10bqAf/eUYpyLvUKW1PbZAGMccwaszo264fsoG4qBQ
JgzsHBLN9gyQRbO0UquFtqK5OcmYCD0tt7uHssOR98tUdDUoBq6dhsBhzvVsSd6tNGnD/Nlb9e3u
1kgkCMmo4PREu+MHqXEa78lidvtqGdUCzPJVVRQtTto4oQ32vmt5azcIGDEQltjZXFaL+3vtV+Wj
BsJnbT4D1fURohWdddukL+rHUaXCQQcZRifFeGrj9na++00cVrFv9Gv6nzRV6h/1j5Sj6Q3/BD98
QOCGfxmr9an/539vENhdInOFM6iu8LNbXCFOvEdO9+rtz+XOwjQq+FV3NIRpIyFLXMJAVJlGmMcj
RAOYV17nO0NW+QjeqR19UL8GQT8zgCgUMS6azSE3AYreVPPtR33mC80EtDwcCZQxDE68LVBKFv9I
W9xtjM6y+84nqFYbUKcNxKIMflUO9inDwJYjxDOK4GWaEGforiNKQfmFjroXkDB9l0qJr9JQI0lP
bREEgfSijyqyGW7IyKVs8GCig1JyTQcHHuqFxriSGIZn8nyHEjRYsks8FpAOnwskTm5AGGWnf15R
fw9Kgc+xRW3utduQjYdJbBsihbye+x4DrlntEHOSVov0uv6wWeU37wjFc1nrShXvXT+z8fBtdQjQ
Na42C852KQP2Ld+V/FDMdVskjYeol4t5XZiF/9wUAMlNBRDz4H2rlbhpsvq5bbLatU618YAphShB
1l7XW/p48wu4kb/cSHgjvtiiCSaucFtDrv5osSWPG1seaxsxABbriOE1RUPdxhJCrlAbETyPSd+Y
a6dB98WNNuBWfH1rD6/QfAlwhQuNIbu+hQ5BRZx7oRG7QhNIALrClb7K+AHQa9RpenU35GG/gRyX
Kr/Y7O7QdgF6fgdXu7WbByZq9XERF9dn4CW/wgMMJTwmPN2i53SfWaBVLQRCHJdmGywbqY9qXk/L
cWFO70MxaX5of7lIzjLh10TvtDgCeKbYw20FoxhOCABPGeJrMNpgmM8yBiKwWvbJQYhmVCRKh98+
jarb+8V0UlT1LZ/f1gyNEXykZEmJnI6Xc/oEIJqNlXEFD/PbX2+HjkdrlTuTTC0ph7Mp41DekpPj
nl1Wi/X4McCe2IoN8eveZ2KwYVSnVY9LYg/W+TxkTbGE8grf/PGBiPoozzp5xin+Y7rhEMgQp+Jw
bA6h/AzvdUA5aBSyU9HFArak4ePccF1MTP2rXCx74wMcQiU4K0qYZbotKjvTtgvGr269WlQ14Vxc
2tuc5WVOcnQGhqNaH90F5NzWumHZYcrl+9RxQOBvNDy/r5++fv765evPljZlANIzxxFcghTFpC3V
pAHDVJzBEmGqSVf8ggLRLVQPHUApq+grJMx8LGvlFLy8djb4rX41i10v+fyuUKMqcmdDbSEzivkx
HIu58TfvR9Pp3UjZbKUYhYsHgdUfVDeGPL1yUKxOISanF6ycvkxAgS8tP7IbYUFucYSEIPEdVi9A
CMHiCJ3cCodc2ukIjNQ1owKUOLI7oYZvshyNt4axqcZnK55kuF7h5Sgmi3y+WHWdPVujndfVOL9T
6vFNBbJ3L/m4XtoOKGdKOMSX7xExQBC7MFP/PtEppCHwMS997NB4uhpP93O7h5EqjcCpDkRrIF4/
6A3HTqdDGUf0VGPyWSUOM8Yuzsi/Pypc9lFOhBg5FUeZIl2mTQpxYRvPL/D1I8rGb3ZeAptzEALt
szmtagyzvF7fzcpVDtQoxov5xErWJQjqWn3X/dR05E2x2ROCLKeRH1gb7G//fWCCkaoLQW0CFCcr
TKCLIBEow+tPrO82JY+K52VZNXERtF4sDGHlerLQbJYpV/eteGm+yNVX+eO0zkdFDZGwhl9apSn8
Q+BSnL/yFnGBhiHFCBFIjrE7vYaASupD0VSM+HGXssdohsJVbyt9sqWE9mouBODD32ADa8YEgft2
NLxeL5eLyiYCcmUkSIT6HuN1VekQYVXOClfJEsjh8YL0Wrl5m0S5dpycQArh4Pg8zPdHdeanStut
9k1iFVojFv/eRsP3NlH3tjzHYyMEXkAnEluu9HoSIbFzTRn3emKMLJeiTEp82DrvSdi8qrEjUYOV
aeZedY0DZOrMuvmhSR9fQr0q/0ZeYTVZyLxK4ZB95CzT4XqTi8nvFpMX25mlmMmM8oAFttXcsxoj
CHyL4pBw36cXxPbdZsjEgaM4SJHWc5cqYb+yarGtBIa6VxRA55gySGUmtsU+Pz/3JAsvj4Qk67Hm
o4cUnmJTbKujhHplr8gej81kb19hTHp11vNS6elfJypgVUEQZPDdrnSZESEkPuv2JGo719Ek8RCF
XFKJ/rCT58yLbOnS+UVVPpTzrvm27ZahUmqA3u94gTdvyxjZynSFuA2xDjZVc5O/46Xnmwyp9fUU
nsVTZFSA37M9EYOvZYAFdSvQKSkDchnXda5LZNoeIHSIBTE9MMZy3tLbtqsrx24xYQJgXbsn8Slm
GEIOpHj3s06SFvXHXx/X72+UfKr+UYLUv1qU/gRpYRSrL//y779aDj2REKVbIUdAyFjGkAwNVx6n
9a1J1RrYdHk3LVcvSq5+PL8r6tzk1KzXC8Ak86sktH+6/ZrfbbVcFhqGHZYW5OS4aK8R1XzTJjuX
09FLvnos5nldFN9yA37Q9UHVwGYLtafj5qXfvrRQxYfJ3VLlIGCiri9fvcduvWdM8uN9mf9bL1Yj
szDlfF1MVAz9fd60bzAXwLTIuxNgTbYhqEILIoNPwq7GNEjcdV1UowcdyetQ4vDqxYjwgBG9TZ4+
jqq5tbCZJByhDGMUSUJV2FPbmHGaqeWV0Y/JelVOLccSU2wQZPQffvjBW1RdjNeVMl9vqj5X9Qa9
qXNbVTFRe1mOpvVuOf1GhTT7FlzNwWOQcHq8vus7YLSelIue4Z/htdj1BbRSMwDiiL0rl3eL5e2y
Wjx8LeeT4tkmUrnyGY+UP2mMTGtxvGyN/cWUCZIJxuOswuZxaXgdENbwHxJ15XVVcvBhtXsCuXKK
lDTMQmzL4BRdAiVVsvRrYOp7jwKmDiClh/p7LURv3EH01vXqtQJ/YQsBsTyjzjq8RakGdmBS4GCv
DeFzTRtZsZ1YWUqS2qoru0iZREdqVdeewKZOQERyU5fktvNhLE4L130B5Pl20KG4iFAVbwCcVnVh
bHM3rl6WK/BBfdm71DIOcfCGLiZFNc+bfW2Vp76tv5XLJtRoUQr9T/K79Wq1ULsxLcff7BhT5UZD
QmH0awb2rT6jSDch5CGJhcs6nQzhSJ5YMX+YlvXjbeOLLU2XEJtTxFFGBYTphI5G412uJZdEKu+P
sXTRnh2ehjUAkl5EaGcop351O08xmI7PSUiEXIndrOz2y+r+gyFXFZUNCgVoxiQ+Jiz9rTY5G5Pz
7UtAEKu4l6ZO8KvQmmMCjzcbGkRkvdRpUAxh3SaNTCqnRW8zqLrRCeSnuNGt7hfHGbv+rWKAYnaS
NXQxtKQ6U0Am9X8QFLG0cfPF02K6nhW6pIjdVhBl2xEm0eW+/dxa/EcFnIiS1K6H5EoSOdz3+Ju6
EGajQadD4Pj7pRyA9d2d2qr+ikFCoArvUGIdsQrWW5Vgsi6JalNk5tfM8zCJjf9tmyPVHdlgfInm
9TB3yxVMeREhEd8eueVY07CdYgkjepWjix2VlXl8GZCMuK7vEF2yxmvnU2Vbp1apgoZZm/3bu1rX
brlUuUooJCWzz76Oxos6LxvE1V5jiwkXuh5EomHcr6dTZbiKYu4xFEZ1fY8ECn/AelCk7AtCJJF9
qc1/UUG33ZxiqU4Aib8C6uCNR9XEbk91OTga/9BVo/E3jVyYW9UfI8piHvYH5ZitK83pHi8e5uXf
dc23/mfWl2YdwxKYciCr0dISKjGkfR2UUvCynI8fLY2XAIVJbE+t8ZzrqXWhsdDWPb5Mdacs1qt8
rn7KMlOhvPMU3nMrVcOPbC2qjVSS5uqui+qpHFsmi4lQHgMDaS7QDhnRV2SiHBWEQMp7uy+UAl3H
KFbCyw5cUAcUS5nKubU85+M0DtAmdLBEebpwZQIHvvXyLFZPu1sApPWmbU3jscbiJXWm+xsKuTqQ
lKW4z1/U1brWfBnnjCVKYm9fny6coql25BIYhNl6NThhmB1KYAkIXGzTNdFa/F3WC+0UavrR8VR+
24Bc7snXPUzuVqTglM1MAcAEKm2ggC6LRbWnmiAgrorv5XwyvNJQwvgrvai+q2BgWJ8R5CcIgfqL
jaVIYqffRON9sYDr6yF+FLR5krkbWWbLASJJVvpN8NUXy7AInO3QI3ezwpsX7jff5tPySZnuajGa
jEd2LrikunqNSJ1v7hc60PjUFBGwO+3QHwPmLEmY0mRh9olHUOqcnzhpLqo3CmXv0FlSUf2RAGiI
1cnyMBYDpLOBhCdzXpySIcPaIY8vuZwbDN6AZAqFp2Qcowysfu5J46QNTFE74SBaCLmNGms/nBZV
7qx9ggjCMR/xGvmdTrnFQkJjukxtqZfuLn0q6/KuNIwY9xCoxDFNWjMEpV7LupiYCjBu2ZDpYJPi
Q0Dyr3URdFGEYrs5UPOBLpZ516l6n3EgMo4jr/eWwXQvs4ibxm0VXMd57uXVsTyUOK5MfY7d09R1
giO6pa3IxmwMiMW6LQbl0cW+bEMPLSssdHni2LtaFRptqGsX7jk+AvCYXnEjvcmBaekDyy2iXoWt
YB1cDtgpHU8TlECm3uPvg/oFKWLxrycjvAsyh2SrxSaRj1QPV2szH/rFK7p6mfSje5s1UwtBFF3o
VoxlM1scxkwSNVLb4NIpleqa1QiyuFI7KIpzWyWU8fVp19WyzJZpuTjebaRspG122kyAI4kGjde2
qorRLB8/rue69nY5fnHwiGlGEb5eEBanIVCCrmi5KUWpi8k5WfBQiIxF4pW/gR42tHI7vY0CmTHE
EniW5czkaVwOpnK5OKBHs9kNm7E1II+j9gMrOlXXIQWp6QeIKfWikO5yyNoy7/3eGEqvqAAi4aa7
UKZEE8TSsmyQkJcFVUeEJltpKyWNUnW8vJIE1G427pURy4uqWlR58aRrhTZ2hADSnSxbOUpOtFol
1nXJpRQCSYeu21Tds5MwDdwAF6MMoEx4qSINV3UW8PdD4P0i2fphqwIrN4ExEa7ArzK1zprKGI0K
m7qMb0vQELOUULl6KGAxd+3GnpwsVnZXI1wOl5T6lAiOU+6y65RAfSOztKfEq4qBrylsG79ol63t
taIJVFYthjAjIaYnCvUAMxpdss+rOvbqX0BjP3tir25bx5wpnYWWArjOFLQ5737NS2hUBoUfkYEm
YFBAFn+ygwwKP/Anjcig8AteaXQGRUS5B6UElAML4gr2yvYgGd9sehFG4u+uJ2EEofjWei9hBFKc
yMfq3Y9WnwsijNJeFi7GCuTxr+UAxgpiiYZxMGPF732GpmWs+PWjoYkYKwl0cS9jhaXy0YYZK/F8
tOMYK35P2zQ+YwVKmlLwIGMF0AQ+4R7GSgKZ+xkrUPBUUgcYK369a2hsxoofUITGZqzABJ7SfsYK
4Kk8fQedJIFAr8oBCQz0HhqL30M2jUhjQYlDGhf0RSR18R00FslTXPKeNJb4M/alscD4gbIHjQWC
1OGUi8YSf7r7aSwi/h3rSyeBIoFqedBJ4kv1opPwBCvtQydRd8IJ4hM7nQRSkDZWcBEskiew7VwG
P2gkTctlADhRfO7HZYDoiIeR9gVmXY8erM8TCBCZkQReawBdIkHeLYwukeKi3EOXSCAxJl2CJqFL
yCT38z4GA0ybQ9/HYIgXTBzGYKBxxaZiMNAkDAYoIr+c+BMK4mm5N6Eguo7vJxREzEAcQihAWEQX
60coiDzdwwgF8TySQwkFMBAd03iZzb/59+LuabXKDeGtfUiyY9ikkklh5KPrQ2KAMIFMbxIDSCDc
k8QQXbO8SQwk+gvzXhJDxPz/IXSC2PegF50gYnJgANYfJKV7S34sJ8syX1aFKdy/LMfmRaUu/15Y
mzGZhLtf90l6fPuuOODR7XBsEBxPhEYOBc2tVn9cL+e4WtR1Plno7cqbj4sWvjYp6+VoNX60cgEQ
Fxo8HAMTcDeq1TRnSjDSoLwfWQ8Zj0WGEUghC9pk+fGHD5aF7LJYClnYLgsm1M+BroAQp5gjiTbH
/bKoVRbiKWRxu6wkayissiBNjEVPovPSOhcSWR9gYzeATRgNQZZ6HjCr60tUxMwRSyjUfaop50m1
BEp5dEqzbsBm3af2lh7AxN/RXFqjJSap+J//ZSLFf4bPOxNssplMt69LItW4tQ6x5nURJhFbzldF
9TSa5ht/3j4GqZ/LIU0yhjbRZReMMQjLlPvstJpyOXfIpTr3QZLILfSibyWv7SMgOmSUMuWSdylV
+wCQJNSzwlCI4r1JJdtHAIFJiohkuz88f0RwzPzqG+lNbGcXLDiPidh8I7ft5lZMi7Fu1ORW/qB8
9v6iR/2aR5TgBDwKj6J2gsa8hXfurYHW5ERnchGl0WPAupg7uuhQz6p1R052IJ4AiT0PIUJ49N4N
7BGh4JjnWt2cVc1CAwHW2vrbyfq6iYcYLsnk1IgtnpNNN6piXJRPVn3EUk1SxIkfevN0qARWKiFQ
FJGGlvBh9bzqmRYckvS0SKjL2XJa7Iho4yJ5XHzuanwltNZJGWf8beLNbZEo182BQ67ZclaYfwwN
JK/VXt9b0QgEZiQSEfTtbBz6pT31SPTsod0n+DRTajuMCnGO2AMDco5AKx57JjziQeRcEQ89S8QT
lIqLG/FAcOaIJ9WmHxDxIHTWiEeeJeKJCKAJjHhC3ivMDbjl/8wfGtd4VTyvhjiSzYsMIkgbO06O
ukZmi6cid2bLMJcyWpGPN8KWj8u+r4xE0IuvXkZdW6KY5OPHUVUXK8ufR1hmEGMWfSq50zUyDVaI
hCdaPUlZEkk/jhcz5VdMPqpAvFgV/Sg8KMF42BRbWjBgPpLY/r7T24W6bF2uGRIq7sRxhLW9yHV8
87WcT4pna19t5ovhYQd1Pwf97uccQ4iRMpw0QJo+bMrpm080cESbUBUtFnU+X6wMbCevVy/Ton4s
itWWMVM3h4on1S/9P3nX1ty4jaX/il7ab3TjfkmVqyuTqexLpjI12dnXFC3RFjuyqFCS056t+e+D
A+pmEaQgEISc3VQqbdFKHwI4d5zzHRssmyfFcg2jvp0IP8p4jvL6NwtiKOoFiXFGaT8iujU02lUh
xQXyHPonhoSrdJwdO8i++UrRJqu9BpWKXrNnGeacV4D256eqcvYpT7QKIDsvYcLym6E8K2tjzzMA
tqrqFwBBfCk32WNhPhVZV1RNhYaS9KQS45YP8y5elase64csFjg2GTJOjvE4Zu6iGrPlDMnxTrp9
wkzoyCsk/Svk5oBxlMOFM123DnXnmPjqQDhjHnPDTxyjLrliYah0R3KWm2GBZkMWC6s+lsY1eri/
/9z8e1r1Oc1XcC7rXeHn8fPLdrEpbYfI4une/OYOFvXfxgt+AKb5RH6EZ5bC95sHSpoff6zqFs4S
xhhiIoxlgLY42cR6Cgc3Lxar8xYsMCKUUOMBhUhHu+xgX962L3dz0dyBR4KUCDI+wzrZEwTUC4lY
BFT9umt+8YR7gUiFCERbEARCI25tA4ZzESTOxtMy4EXGBi8TiJGR3wpLKrFStBO4FkCUe8CRiQzW
5k5ucRxZOyY3jIOJYvqD7430mwbsfEXjK+3f0piwVVnvjGtHG6HyhDkMlaQmU2LMKVidfZKsU6Co
BNjvGAK1rWvLB+Y9XbkZm56RNLrD5FypU4Fp6uM9SAf17cqYnCnUvx3uZpweU5PyC6ByFa8zgbXm
F1kd/L4Wq5s4EkmvpPSt3hC6bJFXAk/28onrzNpsgaX0rFsQwXfdSGsv2zBkx43jo5nE2kv/PXwi
5BejLn6oqt/KwnxwnAH1iyeHvDPnxhHVjPe+88vWJhWsbOcbF7cIvwT7sN3VQknC7r6374WugI5n
gnIcwszr6WeGcJYvNkW9NBbltdib2lbWBk8g3e8HUS8v+dvHamJXeS/zqlu+1V4rHPJ6+z2w4cXX
/DXfgRbnT3DJ9pIv37Jv83rtxo4HjT+6pCiBtDQuTrMn1+wIlzpElfanT3E7fSo4ocLEYEEm1kHN
5hJhfmhLZ4sJoDVrEYfOc7EsjL9WZK/VzAbns23jvj2o9kBBirUwMReXEbYU4NEMVWiociQFDnmB
nch/XpeLYjkt7v/IX+/AlD3YZP1n+Lh3wM0Xnjfzh2V1V07fMqMs84e3M4R62DtBVMDre933uF1e
jLmxsSJIOVkbe/RvZ8WqWM5ABbY7BrXnrdJgRes3EmUgj1PJDC3xp+UzTJCyAGJCjr1ZqNksLGJY
v38VdbVbofNOgRMcm0yLlQ0VROLtWltZE0SEsDBYYztOXCgqNZWdJuvyTCchlEixG1KloMKkSEEl
ZC1HN2h3OzDP1/Nsl3Wdvk0X7gSCUe6MyOgWxX2djynmNzP8zK9+VHoPw7L2rTiW0jitJ8V4IhhO
wDWc8j+BOqAizMcHV+LkNecFQC0cXYv9zWMxc/oWgtMILJ4dbuHcnhKSfMIYC5ddW6J+oAa1Kc+G
x9cZAH3C1cIyfy2f805ew1h73rE5ec1dPPZ+hMHZx74LjmYcIR09uMfaKDBKuqb/QBZiVZevZiMd
CQn7aPdV4ZoUpCnXQ67abnCByPTlC0TKRCSd3xaNrh4HDUDZo1F9b3AokraWQyalx7xgKyPSkyiG
O7uCjpjnqtEx1bKrXARDf7gmaVcYos4GnWBqeioxvcTnJxJLIEtLz6/6NuZ+0sT7mXh9RP25/QUp
SFobx0Vim0MT0+MsMT06MgcKIrkSXHRwoLiCBV0caHw7GTPY6Qh1qMVUDszY5tvNvFhuyl2q4nAk
+Pw3a1uTUB2/0XTzNm3XzjeDiVdCjWTlOn1bORFkJM3s5FJJ41Dr7eUdWxVrpjQzMYHvJHkqdpPk
fW/QFOS20ICUr427zAZlRhwNz23Kf3VG30xauNQh5rI5jCbbn+Xrt+XUDVyHsKE29qUlM6Ei4xj5
Hg7vPxzX7aZGjMSIX455oLMa4KaYFeb9iojS8u6AuhQCmohIIvqU/7a/AXpZsVY/1iQop7rfxKV5
9WL262M++7V6/Gq0zdp1QWNWI8evixqd4TjSXiWU6pq9+tL83LoEEl4thspHFXRqAgxA69grZI2y
Jja6SeDG6jAl7n7Kjc/zUs3Kp7KY9XACbig2nOA4ccq8IKPUdaJ/QfKlV+m8Cpf8Hf6Bl/bs5zA3
nhylxs1X4VzV5JCy13VWvtj85gbcmSezsvn9qmU4EWXMiIuUJOJJdc5gFxOGeUxCTt9JDtAzq9lT
Bj1q5a6ZapovFo+2q9PpDTCYcEkHrGhTrbIeiF5MlPE3vKJMjz3bPlpS6264Vcw9r2v8qXUsTAoo
fIqyc+4LIWWHFMTi68PWdafYjTcQmZp7ZRQTz1vNweva6ToewH+9zXP5el0+X+wSBChZpqKwCHU2
FFC47xc68k7SHuEiKmA9Nmr/y89/y6rXoq6NSdqD2bl2DSYsMxLAh+VyvTLnVNXGL9n8UdW/nSwO
KpUcNT3GAcZUBdC6vt4GCxqHjE+nPkbG1+pDPlNXpVVOIOO20HphvvYuwfBl/+GBInxWNAeeRhDP
DMIN8Kq0UYMrbeKaNbeQK6OX/aLBoevhKO459aMtYL/73C43Z1ebZLazgPvxae5qnCaSapjHgohO
wQ9eyWZ18UJ1t7QGQGHVQjWiEvaQ7OQbvvXPdVHfUMxpI+aUoUDT4P1KxXReOY5ZaKPxuEwhIjSF
seAhMUZw3T7VI3lH/QgDgGKYRK353SIPdpAaVxOAGW8qmOTdKxHI9sfipgvK74bSL0go8SOJd/4p
aWcajDePWVA4dvVeUsaTaBl9W1al71iVQtqTJ/HbOL4dq/IkHBSUcbmeTzVLQUWidPqbUnRboZDt
21qWxHnF+ob6W6dxq5K4iBgnoUKDe+p8+taxEDLFOhhNoUKYTCJCSn7UrEOAASGR1QG5WJ2zhhxI
X3EOCTSfjnwq68inQnY6iQ9CRGSjxnry+iTEUPdlqlhXpoqj2L4VvYZvGmyYQyA6Nd+B/zNfuK+/
hAIcQ5VEX5MU5727QMQplkSRTEIliY9JUuwY0Ul2LCTev3h54lKXHOpHkgQaOE3YLZKwWgpfxA8R
dfiO0ehewrDLJk14Qj2LSHRj17f8xrpt68U7w3ZxT3isMP2pLpbT+aX7N0js6sj5OOrOxyFxBtkd
LWiPfBDNFQnBPO5J2CHjeT5tHYHmsD2c0KT86SOeepzzIgNvr/SZjOy/vB2fmXz45qwEebxt68jR
wKD1Mz953B3qeA8tJ+oMijbhSXmJffsChovbiiFpiaE4e6Mbcnt7u4SkH4LRmBYj+NFf19XSAcwp
WYSyqraRBBgmhPmQGrTtCvrGukfiQAl5ayLmRxPK9lUTZ+SmQklbQsnOagtuKJTt7TpvNb+VUJ4X
YNzIgXDcsp9hDXw0CZAX8SZu4VSw6DVDNPi2bVeteNbycUMpdBwZjnMV+k6nOw4GEGUZ+xgCz+Ik
yrdL+yR/XBQHkCQXJjTz7P91LfevP//thwYo8SeLJpUVr4Ak6eweQLI1PedGusxRhiGD67JcWGfu
HnDcHqR3Cw1E1TgidRgUtd4UDvnCLNKFwGVR1lqlkqAmLSYw/wh8LQPxckIcYbqfnvb/k5/VROGQ
Ksu+aGm/xC+AVtbA0a5Wi93WfIYwao9K+/C/nwiBB+aP7zb1FkAuyGu+2AK8/XeM/Ls1QBtOiiUR
P2XMiUwrfnxQP58Hl3tFTvoK9mZXXfEaR9fdz4yg38oLcO/85SxQQ15vDnOFLRC+xTfOmrEri2rp
jH4lk56wSjpOaw/xakLXEZtpsFctoY7VFoK9AGV1B/s2Dc/OenMKwBcBmxeupF6Xs/t8VX4if/FX
V1rrf7fvWRXS0WXO25a2YiTlhVum4/QnkLOKkl6jOv4ONBl5cU3sPOilOiw9AThcTQdIypHODiSg
q+cTg94JPO+TkbB7lHl7oVw9v7boSGUnUjMxnFYDtOCeQIsRM4bCz125ZklteBWsIYqeGDJoOK3m
81O5KBxLkgpDc0KoUAJmgJ0VMMvydWY+dQAEEyhbC9CgR+Thz/nS8HOdPebrcupu/5XQSRZXS9vE
+/q11UnHFcxAG7SeIxFggmk1cxyP5NjYbaoiEVpvp+aPtfmb3ZkFaVblBXyqOyd8/r7N6wIbAu1J
QJhoBkn/JFLqV5un+xIR4N8Yks4khOR8wklAIOA+F6irPnrmiy+zYpG/PRB+DiYkDDdoIUK0QluS
dlUql5DtmFCeTSEua/XL//zXj0bXZXZFRkt0gfwqGJEzUEOcINjYUlOb3N4t9iJ+HyLmBaQKXOaR
tGvBRe3QIZyQiUABKcozvtkBIhy4BrcHEWQgFEb4dG9nv8/GPtcmpJnOy8XsdHedbIPERBIc6ntO
yxnJVuW3wh2xmbUYAeQBquS8DRzaGawiccNNMuPC4HAqx517LJ9/ffndMSzacIEMsFoMscx4ftl6
Xm3NacAgguJbud58buHQwcRxlcKNkFhF1EvPj785+UpD91ikKMKOB4JRHq4AFmachvmUPUkBpzEB
MBG/GWh6cDsLGSKRblkkGhuDiGJ4XiA3/9gjkZpfF1MY4n0wjc5KfA1DitVolqODDzGnbOKH8uY8
tJ0LM6+rzWaxN4yASWfHNLx3Du+NY323/+qDhn/uWikD851zvtIKAM4oJUN4+EQD7J/ZCLc0EUxt
2PsB3ZUvz/iBfCOZ8ZeKJbh+8Ig85I+F0w9kJh4giqtxtR4JSdlcCR1JCUWKesMGNnCyqhM2EAtB
wrVAA2tix0+aB4vq2V10g0ysrDUaoAeoG3WMAWIbFhhHtAIXOrsYYMShW6oejCge7DTaTf1sJ6O7
PASlzO5KPZqKu7DJWlHjGtMQhBr/rlHFuRxyjCejaPfPOgJEAcGboIPiw0Z777BfF0bgnovNLxuj
Gv+ab9y8Is3mED4sZbAyLmWWbzZ1+bjdFHtJmdp5zC6iJrzwbF2O7/sTgmKu9eQ2CyYSbcpi7XBD
uYlVBSIxCS+rZWNi4GLJ+nFnyErW3DDDUYhG1QNtw0kE5NJEXHXThrbDjBoyUkQl4x7UZbiEsCH5
JphVtikyOLPW2NXGC+AqQG82IrV+NxB108w9d2mwDPbrymD07z//0pkOyl+L7O/tJTWk6EB/znoJ
C3BYgLXhXBpb6yppMo6L0VqSx8rLNPPzVu6lMQi4YNZfgliVaB7PSXFDeErPoTI+MvRkDM39ZvPU
9qQVqATGEoXDSEWmlNmSgU1p2M9FU9nrFpkiMI6ZUuhBYFDjxIv392f3CXCpdAwZMUJ3y9X8bCwf
zPWWkvloYOOjXemUnORbjZhUL0bTbFYdBX2C+OXyet6ix73tmCknjcVG19Ps8AHXdsp0tt7URf7i
hrO2Yx2H7fU+JVEBLrf7Ekz7JetHP1DpEwb6v4W//zeUn32ciyZeN74mZgFse7hI/2NeboqF8S0N
uy5m07x2Xo0IBV48irSoajMvapi86BYL4/oxn1CvJRYus7Wf1pqfObPgmxHA8iac4b47iRMqvv7S
F9B+D1H5OYN8iYy0/70uENVmT7yqbq/a/0dXFk5AYC8HcO+RmoOPu8cgSKKiEO0KX6ARI4DCstqU
T7tcqvnLofw+W9iwrwBmyddz5xxzCpjjPsOGu5VAXRn+3BWEZJDW7dCpMBwDj6zZ3YWKekJFwBKP
Z/W1uWPLVrXDISeES+UHbnHZNO7RF7rumRlWUIo2ZDHvOKV3XdJoOYnSWCPoDCCx5LnNkt24/piG
VBiGXWJzpXRsg9EiQ6RgUZi9Mv9ppnW1PRW4vtYshU3hiEPWCAU4Ko6RZy/5YtF5jx1kJNt6d50Z
kzwrp/Aor525IwWizMVgtQto0/kGEv3uu03MbF4iZmiyLiyf25//+Y+fHvodMm18P4kwDT+800IH
GxVN1ytI/bjvNKTgfpiH3mrkdIu7tIiy2PQj2Lbm6XKWPVWLpshq3/gKFbvrYglb1EiOO0Npr5hC
o0RHzgOixJaQQiCOcciu+4CpPxZPldn9LotITHjBglzOK9dIJcBxaTo2JWQpSSHiEeoG5wuxuMdc
7OEnm4d1rYRzheEeR2I5xCZdzpMzct3BXDKvB8k7sOamyg6/6RhqTmiCM/Nq5fC1G26rQY0/e6U4
B7srRnZ1il0TPI5xd94wCzuPL8UyFI+sZS+qV6DNhwU3kO6z1grGGRZ1XdTu0g4C1VhsDOPdabqh
y0uoSA5Se53ZvFiszHIdfq0GnDKKBqz22w7St1o1sZxxlRr/Ex53edNy4tWA3S8Kp5/MWn/f2oCh
qF9KY7PNo2V1GL/o9NJAwXAcx/Q0l9ouJ1vriddl4/Cz/XKe88QgqiKyqM4N5UuT96TR3HGi6Ivc
1ZUj41DfTGKFoI7EBLbje8fOwoXo84Bt7KzepiZ2wl5dOhwPkFWnfBql76eI8bXse2E0EmS4QlZ8
ZmvAV4N4qakMcOXRuJwI4TNs8ZzUUfvO6wxMJ8QofWV2BNx5w7No6EHuzs598YFYC0br2p0703Xv
9tCdXzAuiSHtUzbfuYsnguLazw4dw5XfCNpzso2/tSm+bU7a/uBjR1+9bOG7xVxdN3tiZA0IjkK6
Z+Ay1gFCftMaYyYk4iO/s6QmJuFYXPPO5DuE3O+sJox5DekO5SLSk932Gnber3bW8+oPd0kojJhU
iP2pTgOG23NCUsj0F5dQE5+WC7faOhZtzLb1LkVmG2LLRygpeHNraAWdniGqssvVzopvUJ9cOMNF
CraI8MTMfsX0eDcrrrePxwPMywXgioIB3BXXu/uGKPVr2O4OYi73ptzjpjvFdqZkGKFvu+bkdx0q
8IGefmAdvStUYsUgVeEXffXqhUXxnE/fPs+qLQDzdGkJoYjhv8FO7B/lcgb3bIZKBuNNFqU7slQa
+TVUuDMxo1SpYcy4HTcqmWDXSX+TVXNA9Pdya7vCV0IlIqE+6CXdeuCkPKOjMYowMqEkgLNMOGIk
3Uj2tDj9+Sj2m9LGSnYnZpmJn+rSXbgKew1NQgEqKOyK3AtP4+KRAtgJZE0gfCocBwjAXSgkIrv+
XpeiOGS6ayWIRkMoXAZp8JrOcSnYOmQSfVUPBrh6EkmtdiebzcKF0XE8EdfJkADIYVXr/PnF9qBY
nF7jwrlzwITCbB0WwCCrxfa5NBs4rQsoyn5Vu6qMrHr8avwV914SxsJ85BNl0WjdE/f1UMa382v7
t+HuiC8IPtbhq/tUzaJ6bpeSMCE/xDubl2u98d0q38wfHp9/NX8aP2bpGOWeQWaLjmcndgYiKw19
wA10h/dG2XkN/0ywj8+F18lDvRILcXNHeOXposhrT3alkoYL9Emc2CHaWdmZSaEK+Y1OdMdcV7W5
b75tnG3ukGAyq8nL8/kHzHjiE6G5FjFUbOOpLWz37wbEwq3yFBSF8EElYtfUvEmKBI1m7r+ge8Ww
VIRJxgURmCi3B0BwLF+p4wIiJMgNaCrDdq6UCOXf91fLz1ANbCWomlmx3ycSHlT78CjWAhv5Ufx2
xLkKWPl55ZiJh7N17QRdYwyA0HCcBV6otNEJqGDG+DBVB9CL7ko+BIlMkmARTKKRU4r47gf7613z
08NL/i3Ln4sH1M4WCoLSLFokoaJpCio8Ba+zEN1wpQPprt2lZh9lkn1kSfZRJaEy7FrXXR97AflD
wqgFnkSwaIqjojQF21GchO1C1OpoWh4RmYJNKEFJqIgkFosPSdJA09auMsYGcbu7LPe4ZeU3nD4C
UyahImWk2OFSU5WApLyMGX1pziUnJoaUDGuCOzBy06hcGinXeqma0cKj7/bfDVQkVVgmKcCB40mM
dYSQ6CSegGjPJkyOl2aQF7Hf+PwePrzB2cfoykR6cPk5ViiJSubBZRKvef3WaMqF0Y/ZrJpuXzqG
azHJr74ZCBU+lSb9YWJarCjvbZr0yBteY20AYZDxJIESTaIzRAp/7hziAcblgcynUx27RjR51rnS
+yJkrBfZj0CQXh4FSeJRkH5nev36nM2Kp3UGGscFpyUoFBGQBOvxm1FLLpc+vkemd+l/hJAfKN35
onxTCeWy3JQQnUALa0expyd4/HA+0UmoqF6k9nGEbjff26sFb+gCqVfKZLAQeNV7DD4sL2gep+o4
b22giLlhPIEK+7/D3l5WmyQJ4gevhQXIS09ari7yPkBX6NXmAbu3d+ngmhzGPTdNi9ulvd+ZmQXW
1ds6a77lTARq278dsFRXvHjc35BgkcCkXUqH2+sz8XMNYbTQGTT6su2v3wxhiy4065gQKJQfsP1w
UUkj9jyqqHgD8zKNPurqruPIpkpbe91QDl6OCNi0a/AGqJIpXMZllUF1b20cHncNEzcalaVxHVWS
QEZHyiu8c/0zDG2H9yvH/oH7LWmI9309yrLxG5NsIhfhJral5bvUu9SePaLDl4MHKd7evkb3LAgB
JjqJ2qXXacPwPKdO4oHTEN84BGsbPBuv+VwRvIsUjjgVMgUVLpMo8SReHydJAqQUO8YRDg7C53X2
WM3cIwq4UdIEJTl0SpN4IWnyCCEe1XmMesBAaOxoB94B6JckMsnRLid3m3w4gclKOlok2oTdF2Bm
NIbpSknSKMYRuuXu7m8bNE2yWkGTUGHDI1KrGd0oqVSNF8CBUl6bHxaFrSR86wDnpMbskw+Y5XN3
i3XsJQWw/I/oK4eyXYgd658c9AUzRbliGBNCkWOOkArxMi6lYf0R4jXCE5rkopKyFPab4yRqUCXx
q9Jkd2QSJ0SJIW7udgm9Z4AkVdih1E6lKpHfvOBxpSkobDi9V2h8R+sHTKtZ8UCRvDNe5QNQ/US/
/0R+NP8eKJgn0ERjHs22Ly9vLWhSW0Jz9fuc/13WW0UE3NaPtDgawlVdayMhdwnjrc0vH+q7NqE+
1No4+w931/7cNo6k/xX+Em/V5pgQb3CuXKk8r7bubl6Z2brfUrRES0xkUUNJtrN//aEBSZZEkIJA
EvJma2eiyB4+gO5GP77+usd38wkuzmADlBcSi9019Oenq7wgn+A6L8gHdaUXmKtrqc/6apjB9Rhc
ke1fE743V2VNW8Lps5IQxr0TSSaWyquqrOLspqyseEmcUBExH0RTo2nEHqZx06j4WvfRqrPnS6kL
219mxfzbl80Pv+jByF/GytGEgpB9qgAwEoU5yCm+QC2UO/Zq/vurIQpSJsLPS9l9vLZGPUzokPVf
ElEUpPaAcL8pM6u/yiCvGiRiCpOeSoUj/LC/oWxnhghxhBkPU1ZiIepxJNV8KsJDJ7ZUCzXyBQvv
AmFcc1SFWDjRKVTVTRstYaogwHEQpi4TpO6bBLlLGDgZSvur/ljbdICYHgcBkVLyw6SovEzZ+alD
EmTFglTIaSLOweHb+Ff37NhuNqG1ksl5xHn6XAvydXDTVj9Ny+dyoVwl3SDyZrnKVuul8mXR1Sqr
lDpfa5DxXR6jGoW2blXEOAz6NH2uNbf64jatmJl7EvEgbiBL0iB3cRmJLpsCDb1SMGZKid1sdkA1
a/5vHmgzy/KJdPauuMv/OKgIX+krvF1dI/PpU1ld0/q0pURScNN6NAv72lODukfSB0Z3hqNtBZ7D
+eoDVz06xO1nN9EnUaAFTICAKNxuUdlXs0AjazzjqSPDk0uNdXk/efVoIf1jeorZRfD6Xj7XWdBz
7g3V/1delfEsn09WU8Ao2EeJSIPg6zeEtgBSfdL/LYX2R0uUJSOU0L5k7VEPOUQ1xlocpSnt9R64
Tpvs+SI+83YRNA35JHhPoCAsuAc/4EjzwhEbQTdCrNNRoE6CDRReJ3Xmi8Wu5WyljqO7RpKwbnTr
T2MXqnwxy0Y5TL3Vgza3o60tu8eTVOrJNWkYcDSTJAieI0iA6SPz7iVEHAQgSzB+ru1VHm3WYWpZ
QWJxSZ8rwMYjpch7stq3ypC9Uj5cbTobi6RMn2tvkQdqXQaqe5x9l2U+WlfF6vuOPSNePhSr0VTP
Fa+KeyDsvanKh2XDjHGJITMXJpeZPNcMyEDcZd0FInmunUsnIvwTvJ6ch+o9xEGKTZQ823r/zj48
3cg0Tt4CsGZrM4q5m7HgiR+riTXF4DqYJcXBVjhIrY3iMLjjILX6IO05XtQfYbrGLPq1HXB3oGKN
05Zh2lU/et021QsLnwPLEss+ZMVqO3P+plzPx5kdy6bnxvk0+537YigImiC9TC4Si+S5OtFnZTzD
cE/QbnNKzhmKkrjND7kIvZPHXZIwJAYYh6nOB+E47Mon5EyhipWp40ESNjSMz4A60Jvo0arVerHK
x3FLmY/osbkeZq1h+MxS3WpZ/Ms+UYIJHlHZqafGanyoxfZQjhIfIM32vZ5uuX1Dg9VbTN7UyMCJ
AGQg7nCGG0fBLKQJO5SXD4deO7xKOvpipPcJkG59IqThdWmCYH5auV7tfbTqNIpSp44u0r3T4Itx
MGwMQEwoJWEdXnjPhu3tq+mZ3SLJf3qthG+UzablcvUTIMht/7keatpIRMcdR8Dh3mcCY8atM4Gh
Z5pLj6VrHR5t9671rC21NNfHCkogdvA32UMtTOLGmUw6HiNcnfJtNe7TMtsqdChRAYyPNTi/OiZC
LJfbAXW2ZXuzLsbXO9KMGp2vU09I003/7xMcGb8YMsIaW202U2cmgK5sR4gUjs4MCeLMkJ5Lm60s
Jb3toaFSY5FwKkyQIHnozsqW4BBS4USjRoLMF+t8lzTEirnFbJ3fRaAguy+C7IvH7k8LmBX+fQef
jr8uY/DONI56WuW3W+9DOwO2lluA5qVHeI4BzdGV+f7Az6Aa4gQeQBAtO8pZ/Ngv6yNUdQC5JUqP
l+vGkS1SOgbrxDnOVCt6r+GyLXGmdG1KIUESrG5uUCNb85NDVOeuJamK5v38zF28sihV3Pw9LiZz
sA+jKltObUNGEkKEiixDeEVusDISBFFwdBelDgsldmW1nde+ny/PVtmrr8tyXsu4YKl2KsSZToIE
NjQNY7LQ4IHN1SxbrparfFGLwUUauWFtL+JSNnT795OagT79OJIkSJgVZI05C3EX5oMy6MyRLhMm
/Y92LSaxAVMbGHWV35UN0xSphFQQHSzy1wX1sb35AXGoOvbsGG8B3AmscDkfW50YQlK/iGxva0fT
bD6BWrF54WmRV1k1mn4HgI5J9VodGS6U6HbJtNyoV/2mfDX9rs0eE6HQYtQlYZzdKPP6bpbNv+2+
M2j4x5XyX4rM7h4qZaBOAIYG6Z0vskWxa53atFLZNzFBrjCgc921+WK6kdz48bas6ynMF8Be5/LO
RVMivNh4ZlYvG0eMJr2dIjXOmIPjBLMzDxNNnBPGHU/lD5OdYZiEuAsNktGQQaKGIJkmhrqk2zd2
4oCRZlPeg6/Vl8vV91m+nOa53VBLiRz5djtvGk77yBhsW86xpfeGw9SxICor8UCeA271HCh2HOPX
vVoRRI8DWXHeZ1y+of62e3ZEKTQjQaI83uV81gGBqfdbUjM4BUFLMJNpoLxJt/qsTmjFxe22kwCc
Dv3dezCPV+bbQ7a6nf+h2epkcqVr2Y/mV5XdRK/Uv642/ZeagAFcz9fwpbmy0mL1kyKbHb8Vo5EM
kpthSIZft2OWv+N1w13WjSJEnp8odHol7EaEToJMamg4XM2f8dfsPjPIspah6SRxZjXqXoEVHYBP
5YNBPO1uaCepIESzJw2VgVCC8T3e4J7NT9RCaxcmv4fGbhtIEDrKBX5+qt3JJCLk4zI5pQMmVTYf
j6bFbFzl8+bkAOIscZzxdZHimEcSUvxgxlLQMBFXkDS8V4YGeqez5ff5SHNFjfNboGMzaF+bqZA8
4kFkjQbJHlAaIh5gjD1XvJfN3u0Vy80J8lCsprH+hfgGfiPe2j671SMRI0FiYhKidg0Hqq1uLYHP
KAzMCcsukZcmsj7iMNLtT1CQ8Cn/H1+6xqaLUMRS0v3CyobXy9BeeeIwytRIOAwZMhvpMGUiwjjp
9U6lld8YkQinYXBsQfwdH0zOLvqATL+uFhaz3F7VgTE7dJgsKdTQTqdJKQCrSJjUIg+CEyZJEPSI
/GHwwKEAYCQISjxMXi8Edsit5b9D9G6qprNtR5q9sQ9OQh7GoA+RLH3qYb66ZN4UozT9gd8u4clF
327YBA+MpH3Oe4c77h0LlNIPY0N+lCI9IfJZ61Q3qUNBCnAEned0GFqHemlehYkLE/HUMEsCyv9J
etEEQcoEvWyGIhECda7aWphH6gAxJrxMyXZPV9OiGscAFYM0e/mtyHVJaAEBLYD7rTES5uqfJEiS
f5Y/FsraW/uOBHCPJR7PYV70cHbEMl+9N1/Xo3gukNJQNKj3aacclsrrZT+uK4GJJB0qf9/VsxSj
L9kYgvst2YEdf0z8mn97tQmcdAHkqqBkcVNm1fjpk06ktJRwBZUE2Mxl7zwkDSRIHGOnoSa0h/wd
8U+fDEJzgFIsKY1SkXih7JQyVfmd0pRs9nq5mBWreJo/xqA5K7BJi3rXZYoIU2JF1Zq3R4r039kf
R6lTcoE2iu9f66w6JoszaXhXGTq9fqPMqP+r+1WNzQ9SzYnTEU29Do9N953JYOSrLF5lE8Ae3JRj
66EiJIe0dNplUbdacVx/MCpAnHpmGi/+dprfvVqtbmv7xSKSsPOvPNC0OHrKp9i4U+tVobTZcLb8
tc6r77fruR5SdW3QIhuvo7aUERInhtLQUwjaU87dpjPWWk1EKYvYiTQG7cGtciJRp66MXFZ3FaoK
Ke9NAdsP/ycd3A5Xa1NGlBK/RjafUIHCEInzl+HY3YI2r/t8xy0FFAF2tpxEdFx39zDhQf0sbwsW
CAL6N6eehR7NsFI9oMDa4742Ldl2McWORTx6ajr6uMyX8bxcGUZRK4Ey9Nf7HH5WYTjhfTPsCr0b
SAHP2QYksWMRelg5aYoJU2i4E6xXJ7uxdO1Gak/67UvFGKYPdDp3uh69ktNwZms2P2G4UmD8vOyC
8PNcEY8HUIf3p7I0D1BTyYgjdOkF8Dg59zRhXI7WEN099QFpzkloMcmBXsCWtGAs4j4O71PKwIRc
nzd//1U7fa+z9bgod029xhLmY2ynMSXKQ+Ne0WX/NrvJJGLIrlCBO23QXnL7eKvqtpEBhEt42Iit
j35fLIubmXKizN/t/lMqHJEo3cSuxjkCgodF/4J3VD/I4Ph5tJw8yhHiPiGk8+01p+Z6rmyBaTyu
A+lUZMKSbnkHm1uOLW45ZojyTtF4ewt2Q5omSfaucKOMwDIub+PVVGsbNCxkxW2tGRvLAfZFXV89
wFIZ56po9ssYZXqGZUi/zJo+EZCTF0NopfUQwCwiKfN31FUY8GXHDWxoj7cUwYYi64kW2J4HSJBm
fD7jCPBL5yZysDWtWzi1qlheLiKxrjQMd0Be/VaHc9i05TGtBRv7U69HYDhfkArMkp4X/a5cL3OQ
JqswIwhzPW651y2x6VszSQg74wuSMJMchfDgre4IFnBwJ8OZqvl9NivsvC8k8UsinLGpdW1CmiUl
gDZt39xOZ4cx7/vNmxl2CEKQshlsk3dgxA01DcjfrbJo9vYgKtW2p8O9fG3P4fW9rMdRbupukU8s
/RFuHCY9OF+cpj7rdrbkNm9nXZYpBtYqhHvezubuMhU7qSA76bIONuD9cqpiOBduEoTVlmPsE+u6
vnFNgOGdsdNpyzwOic18iXLR0KuVCuaosKwf6wFx9KnUJ8OpsiSkw0MN0JWspOczCI93DZmCfDkl
/lmzaJls95ZJdvtX5T7fxTeZiqfVrZv8ZwZ1tO7W7CSFhyCyN3E6w449CZbFknFo1kuS9uiBNb33
6ajUjJdwoy5lzVUTM/TmoRjZu5KgVoIGfQcuEiShdZ7xc27j1Y1GPBZrG0yWc11g+tJIaaD+QRHz
iaz8AEeUuQER+7eiTclIdW5jR1J55jI+TU8w+t48kwR4iMSwwskJdmyKYv6Jn3F+m6nl3uRh7C43
AU+XDvmuiEJ3QyR8lGR/hKO1kdY4t6mKl0QvV/9avzjADJ3Q+G1Xb4ZM4cSR8eJ8QdgfGHibb/W/
ZsIIiQTG5z+BDTKiQUA2nRKI6bucIWghDlIuaCcvRttutY/KZVkWo6ZRDgwNrul2y0mwdGTsYD3U
u6wOMEocMSLMoY60Xe7DOjfokeTAvU/SwYKP1TTWy92Qw1aRFiQvxGAH5zmACyLTiAg+iMxpBz0b
mWCwGrXtvSTScTS8g4Lp1Vg2onxoGsBTb9yDunURkA3mnPfls+hlX2XVJLc0CEkGbcnIR9HPVzPJ
hQwp5Y2oHawUDqX9SNekhJjTbr+F3208dGlDEG59W5Y4MkW0uiFPuSUrulp7JATBUNKut2qEHEsA
wnqs50WKs4x3etIN/Wm8LJRvkq3KSj8yOEnXW/6MY+/palTe3WXz8bUG+j7hu0bler6qD6r1OvLq
Y2rzu8XK5v0CzPC88GBoo0rc5t139yYSgcil9l53roC3cbj9V4tsNb12mDJsmzGMlCyzodwjAN01
JC+E42wf5kH4fHKMmnAcu36+7dblSrDar40473OKtfhEKtZzpAxvzBdpoEFzukjAnGzcv/O3P0l9
8+obeatBfSRkUJDo52jeFvibN5k7zjU8JWEaU1Dlt+pNpyemkGAOg3m6mAe9dOXkvj7ZS1CIZZJ+
igYn26hEl5fQh/xDeXt7fOlUuA4TYSe53t7ow8lS0ey4A21kctgn82933HXcor32N/rzn7//z3Wp
/I5q0TAwHKUcojcu+xZpfFKkJR3ygJjZsR0JIo5Yhx6sdEumgqSOC0BbsUI6ua47YCf7TZ9Xd8vJ
NbmyjhjnGFp7HKc5dQ/ghBjydMhmebVSXp29fxpJ6dig1vyet2oXdYkwm4+mJYyfbEaUqH8EGSZ4
MwI1V++sdG55/HdoUdPal890D3JbFp5B6RqnYdzaFCUBVx9z2fvq6zAZVDm+Kx4BDWF+S4981GSI
xa5J8C5T/2rEB6YERkGKIJanJbanIlXbIwfUyVztVKzHxUL6Up1EkCG/fkHeg4S+hKg5zv9aF/cv
yIcXGL83V4u3l4vN9dRPXm5uZH7vSOJfvsBirsyb+kP98AX5ePXX9a9vP3+ugTL1ZMxA4o5xMlBO
2H50p8lgdT0Hg6PiolIZXxUjfG+zNzzhEXMSON5sBsrqAfgyViXo10SbuFvldCxbAH4IrD9zKgTy
zgq384FaNI8zonFxbfkN7l/+JEoIY0d4Lu9TtfPqukGJ49+NiPyiROQFefuyRYfJu5cbeVIXePnq
1esDFo9ldp9v5A3cHLuucwFyJrpJ2kESvFXmYmyHwmEUpU79Bb6boGXNdeirmwN1mxUz+/g+hJJk
EA06ZWDm6s8dIFFZG/MBxMXomJ3YSjry33fXeJ2RyL4pcVgoxQfw2kgpJgwo3/2m3RpSx/Zf3o7U
XN5PDKbMlAsBpGmWaFyCH2L1QBLpOCrPVzSPN9GessFMuUJuPVP8XF/tRvtkO5DyXbYaTeNNWnOZ
zxqYDmDOq+gi53tH9x50VN9xP1ln57aC/FUXoT0lChY6eOi4TGWHe+7NOmi5s3qyGpqTqIMwGfrO
8aioRgZ0WssWKR1MzzmEve6MLbemacRSPLB1gjKAMkKtuQelfano6Zg8IAZoIzABCAxHQiSXUPs4
f4QhgU0eKlHmCA9uk1sfQnAcEaexGD1IR4uXCpkplnR6DiV7UHBSZ+FyrVZgXVVNA7TUO1Psca8T
TFYAKk4xHuC6G4Yst6JK/+qTyHQQ9bFmOI6PdS3TR2kPayZG8EimaT8mfj4vR+B53xejVXFn1d5U
HWckjN64hHkSm2qEzwnj5l/tskxKXAwR2PXfwDH+25Upb19ro3Oln37z2VgeLXzX78yzW1LyDDOG
hjPP2iorC72xy/C91U1NuUapDreATg4qkQMFPkc4HAfgtKTCcfq0g3/6qM6jDx9//sfHD/HGIuXa
Wc2Bd2rTgdVYYicEck6S/RuGtwe7bIJbhjpJezYHX6PKM90jV61nSrZ3cCFb8QmY7IiPA7SfCtMl
PoNgAaUagTDPGlEJArD/KerFGM+Km4cqW3y1UAEiZTo6iuheGVn7TBtVNeS4dY4RAiEMkyTYcThe
L9TPQVvMDhf3TRqi/CcWwnrV7H99Zio4+oyFPIp7upsOn00obV1lziOOWBcP7wDY52Bq9uRzr6Xx
wKZg9Qyce2Z4m55n94p+z8Mo6hjsHiLv4+Uqq85/xj3C8aPr1J5YIBR6BY/o0OuLmJ4nal2w1VRy
QjpuWYNEbNtpe8r8nLgLT4ZQz47qgIUTjXzXl3eDOp2+i5PabMn4Me4tKl03ctLLjslK+xm3Xkyq
bAyhjf5FKPb8tVanHBS+lsUo3v48u13thWGvQCbsyA8kmApp6DMqXeg0VHPpggJNUzqQN3PgycTT
Yqw8yIesmhdze3+RRI5TL/txrXa7PjILVmyLqrsCs921hdZZDz2rt13DX6dqPayuZkqFCumJwD3f
aVPPrLdIciW7mKMg0ac6htq7qoQ6kMhlc04H4rEvFHUzSLlUYZYPl5ETsA5rYB2u1Y903zwZ1Ou3
JX3ApHRO+lDiVRPcOzcmpSHRWG35q5vApoLpdsGeY247NgZLFYqRAfMUhzZ1k/BfWM0pFxGiZyq0
cSGdn+YIIWFaPy6lhTHkV3DXGtthvGkewrApNLU+iwFqykfgl+eyxAgDr6MQXSOFcxxMTpL+sDV7
QdCb2yKfjTVbkP50n83WeS0yAjZzIftC94CJAoO1tV23VXln5xJIojPjsePZNShJjrgYtrw/ECR5
zZHU3ANZtS9Gu++0bGqMllrH6+SquJuga/yI40mV53N4EvgKH30FlLrXpJawTJUmJwilPHQ+Sx9t
tnwWIj6QvrPiSkqJlRLr5phTw4SUEsnerc6moGwWqOFYQQhO706l2raX26DZKI6EjwPYonXq9Ib4
KFvG67n6PJpmN/Z58hgL5eHzC8ch1sp1Kh1bjoKFl8qctgwnSUjEEtLN87rPgPZQPYE+rFYPZQxp
0qU9E6xOJyqChTBtzezQliHR8wlh7PujoYEu56vo+Sk1l/v2Ksb83hflzPS+ZvNxvM9gZWFalzxi
0qnxQjg0ED4J2XJ900Tww6WK/Bll599zzypt2tfM8Z9tak4gWurGKhhcwuvvYX+tViCBVhrc+6bt
9XUvVFSxoeZUp0AtYRzreSus9ydwzcfBTjVn4ShVBxRqr+SLvqPiv7sFxG9N0qPWRcSV3Uoo8Xrm
g+O03Z02J6uUIbduv5vAfROROoEjJJ0SbcIpt6zUa3WgWvUh1AmA4bATX5boIbmnvMpwpvfYyzjR
NoYp4HJCm9dTM0lF7y7/32utWxKORY7CqCJ3mnQnXEp8rhJOMSeid7HzdyEBTtLsQQrhCJI973FH
5d1NMc+f+PS0OBQN7FvKFPGEdnkIowIwfmCVmzziE6RRQ3dbETwIyYjwvs1SayUAhtmdoQEtkS68
6E/6JV+rUO8/gWGO0/8o/vnul98fkv/+r0n5Vv3v589/Tj/+OYGPH+Ff796//Yf64/1vY/RrDl98
+Dj7+Ns/f6f47lf6An9i8t3bt3+oD29v06+Tnz9Wb/V/Ovv0x7fP69/u3r+31Pc9bK0ymnB2l9WW
6ub14xQKgctFqcxp43xORokxn0FdEGup+gVOLAgTmXRxV6ienCB4FyviBg38mim1MaM7lCjZgU8C
asNpN6ccvBBYUp0p0J6v9V6a6IeFP7Kfmr2bcwMSCBHTZEgjZZ+iBm0M6BIhpC3QbV4fytKIEXqp
mKUNNJCoeIWyAc64+RwAVJCt0FxKGwR0a5MOzOFOA/tgZxmuWskNtpZSeUmtbPelEUlTKBH3q5o7
fNyq3H7fqKTQgknO9DSHd/qaUSkcKPnI+Y/bB8yyKd8uTswjEJ2S3ZglPQW6lrMsRpb4Q0oMypME
Mzut3V/UkVi4L9usU25PptmWflBnPeFdZLCxSQzhAQKw9TKv3k7g+2k2Lh8+/PK/m2kqEO9DtnFS
lev5uMk8IDfGIhcJ3BQ37aaQRV43cm6RQ6xvM/tkWrcn5wZ28TQ7xuosUkI0Z/MlYgAfX78Bq8P0
WC3CLmCeOKW9ZWH2d6spGZMiMuBbYst9uUij/2fvbbvbNrJs4b/CL3JmekIb9V7Vd2ll2YlzOzPp
JN1OT898yqIoSOKYIhm+yFbfdf/7c04BpECiCigABZDu567V7ciULACFqnP2Pi/76DbQrziHZjWf
PI9X6+X92lc8ixIwfDhLX4QmFVafEBzsmIjzoM1qVCltszrVw5pp+MnNcu020QTDQLTH/cmcVkyg
UCSNk2fD8UJ7/WPYGplVyuaslXZs4CznjpbcbbgpdhPrHvNrIc2GhQNVDPLOHjFaab853mBNw+Nr
oJnlJkOiqbkIvG9bBmsEdNBTSjVMxF0R3fFCjbYxamz3VBbMbFkwKZcF4+w0lqhe7b0t/MhR9af0
ZoNWvnpKCpNI7CLE6RbLMW619CCbHBC5o6H6R6rfHnk8DY2rpcVICBNUyNvWHOZeGpfW3lY+UcgN
a1FShg7rGO9mc+zAWS78MQ4gMGYkNB2QRGbbMROjG092n2fz2cQ9z1EIAVYurvducQyUQciZDGVo
W/C80shu92PIkaSxuXmmZEgYjRWJObyg3CSU14mAh2hxtRcJbDsiAN7CNrWzG21pMZhh6t6DJHBO
a7dQFusUZHfnhXBMSJYScnc6SG5LUoclEt7ud1hlkgxgrbcP6aLK5RKFBEvoFhUGL1vsBbMWNtte
pdLGecobW2mcgBMU5NLDANC6NsgEqwmj3259CsG+T7jJg1pNSKpPERR7SKLfbkgNlzUzRcdXLjKB
N49lNJxHv8ESAA1EniIQsWivVc9eVDbJJvOy2M46fpgsbuduo6QUwrZqm6QjyV/U9QDqaJWDrIdd
VwX84AV/nG3zc7Jxz4E3GKIUapgVCJuXrTuXlxcqH6qqzCkdyTaWoKt9VyMhdacTdcRuUwQw2BZe
vhbVDOc6JZEuVn2QPerKqCUe1ECqhyhx8PgMp23AwbeEdrnzGixyEO/yCwDTBDGRpAP6qyNmlgEC
36SqMNXJkK1lm2F/ce9iDMglNNKFgN3Bvtmfl7wjtJOzYgkWoKv4pq1xP3nbAAlB9asOZtDNpNwR
EIUVJ72CmzBcY8vRSERcc4gk7DKt+Sp4Y/Umm61CELXYC7c6vI4B98sHBCDp4w1Y5dV854mFGYn5
K9Kjda2qCmYMPCOT6qJpgABu3gqY9dDEKyg3/cAIz7mBpZmv3MdHED6ShEQHblWnhwBKbuGC+iyq
ChubruuK2vMjWqpkl4kZUS5j+ff9W7Z47ORVW0frU5ymTLVb+97CIdVtuxqz3+QSwyGVYuYCw4CG
nQtnwv44SGp79N5FN2+xXH6c4WnabGb3ixfo7S2Nx6SXHAioVJX3tQUqoX7S/fRCBMpn6ZraGjgt
sGfzQbx24B3WxXtnnQgd4R1jm0zdDA+N4V0mzwHa/9AFrxOMxyWJOQtysXo6NcgFhZPCmvf7MoCz
gqdJF7Dxpihdsbjd6/NUtavhxC+iWVvcle2/gttDFjLOPnePu7QNzLqX452dwvD0tEGFDGIG5Aif
t+l6MZlXpCtJgpteJ70a4s+Pc9zU+YavpI2CBk7idNnFAurK/n43m7sFGlDMscuLKDUQZ3uhuAHK
lzXCjCTXFxWqqz/EjmAz7GOjyLmgzHa5Gs/Tp9SNKygwiUR2YRJ5N+V4M3vczSeAU18CWYiqcY5L
Pgwe1vDewv1X0+XjIyzeNSa4978J3sNusQVftH24fpP/yyJLzX9HNm9hVcpXY2sOH5ieuhrOBUt0
F3aAcORvf/2xmDFHZbFC+94CQ/pphhptt9KezLiHAhGbDu1jYV5GJ9ervEgFrNV0zOsUrMa+aC8j
PrjjrPpbNvYxQ33lCpFX2+dVem1/yxtXMwfltMUx3e/V/Q5dzaZbazHA0s1nt55jh6qol70eeRsG
TbQe0t1VVZnjaCkuk1iYHEeQus4MNnEOyj1P8wHVmFbYHcQIuZwgRKXwAw7pEom6EAg+WzykOJzm
NvPZzho/SQBXadLqeO4N+JFWZdFcHyx5Nplkua5I+hGG4lhGtbdKfg/6TalTgilUjDAxLmbPl11/
htHCb0gp58A0Fr/08mDU+WBC9vFgzPVgrE2AsP5a3HUtTlUf1xKua9E2hUABL0y6XhjlopeLKffF
9HBEs+K820GyQkdMBNbn/4iiPFAG1LcA1gB/G06k3MEHBTBxqEoUIAykjV0NSCGdpBM8dSgY0I0U
XZy5B0VLg/Iu5wgptpKvaRN+RDUGrtvU87Qp+5CGnKXso/4IY8E7YZKzIZF6aG8oY2rElOkUZChw
SycxQPI2ZPo8R5T1ijDGZvb52cGvW4NY4M7p8mLs9Nk8XloxexYOjzBGmB6NUdSpj5k0WL69cV7E
Pgh7RMay9kzJ5CXFKJ1JayVHjFA1bFyqMMfeGd/XqH3LBo7ZdRYo4lqKTl7gpRx4Plt8HHv9N0Ox
ehkDImT/xR6Tu3zOSKEk+XY5dVdii3YZ53pqIZ2USfZCmaiTxgjSC7PgTmbRBs0HXEy4L9YLGVTO
VYxWyH18ItyyF2IkZA/oZrPa50lmOGDNXfODyqVwGi8r3FYhuUWxDX9AOpvJMJwO1nMpBjFsOj4j
FjoWoQzq0CIJxuppn6UZjl1YTqBwCUhDxyixC5CzJjRhPT6wvaGXpz5GVRy4DGVwC2GTbQKzMf7O
AWo4s1y8CoiYeNFe2/x6W6UxqPlIBVWXmSF7VJxnx22ACAYfmqynpzB1urxNrwFlv0JIH1qMiphc
18wsNt0U/rjs+Nv9uiNl2REWNDo48jWDIvOm1+Ov2xz/ILUVYtVWfnn74cMrjCiUdFckar0kLNGq
+SIEIDftQm6ckV4uptzJENrn+20nadcm/oewMFDRzoQSMnvTbh1AwrEwudXZLxfjOccT5j/m9AsS
66FaPKo9Ezc47xK8vi0BnM8m7ksopsD1JNH3xm16N9nNsyjibDFHuf4q2S4WWvxtWlYhHnage2Qt
HYkg42MiAmi3rJ4ITZ2bzm3Kh3hXVSw3oclIKDYYNinDkLphJwRMqWl5RPvWIRTMSD0gdAgbLWVC
5m1ao5gP28SvAfRe1/N2nDEKR8nwRrdRMRllv0lx0+5nN1jPjst+fRzufYV9VLsNAEj6KhsVen08
NrTUw0QS3sIvtomGSzjZuh1CrtAiJiLqr8wrwJhh/RigsNDHJgcTWQikTn6QBDaimaCY6Wb8ab1c
3O/J3Dr9H9uxhFsP3JkrsSzIyLAuvqM20L7Z3eRjPam/sBc1I0dCqyE8eYW/sGJ9oi1mKQYkT9GL
pYfZJ3CqlzeTdclVGRxw2ve1tRbmD8RxbRlUb9T10r+5Lq2I6vnSP3z42X11gnHapP+r/0YTSr+2
9j4FP/T1U7rGeYvXiaNZWEo+wJsYu94EMbLvDbjb3v1WYpSJGgmTDPDUV+jhy88dpijT9eJ/dF6a
DXFp4lhxbvQAG995dTx2ivd/9bH36oT3v89hs7l2OpUJHeTRx65TjgJubaIpja6Pw3QXjmuTwObu
tpTn0Jf8CUumx1nHx91kNi8nDgSqs9H4pNlbgrNaL1cHSaB9Jc7Gz1oT1jcsPMGDGafggvbIRmtV
iouDImyELUSEB0Abp8qcF0YzLXtFr81lr7XCVPCAcaEMX/vbUZHudEsPtO9Uyc+dv7iM8ZGS4oyR
os+b+fZFWaFFG4iiKKVl2sflT5OQm9k/PJFljXuLtbBQ5fTu/hO4eNlKU8aFwhwA69FrvDQGOtp6
BepNxYzX3y99I4owPdCHf+yYSD3al68/O7g7B1sjYljfdYpKQodrObXWExE4bDL2Im3Xk8XGRuTu
dgsb0tu8hrUpvURlJUEHsLrFHVy2v2XEQ3A8rBw41uyVqubaGNq/xwx0lWA5u7nKmgxOVaGRxnot
bWLkU08r4Yy7LYr1cS3tvNZ53X2t1ydqJBPRx3KQxL32ope8OSHOvHkyUGh3u3R86o6wAlTmmvdi
hWoceavEe1+JgXpZ+LCxqZHRaKZnV9eHoQIFOOsc/gHt+orutbJdU12SXIHSgTUDOpAa07D5Eg0d
VpYffEoxNbpB+ZGEOBedEot7IufgCOW95ODoGXjn9nnumc/DE5tlvwxg7Vd1RVlVaWIg6WYaWlTx
4QNheOT3PTeV0TBBZKCKRoxENyV66ADYkQp12wCYoLrPGjmrXZeX0wK2xtvfPCx389vf1rvF9WL5
6nd3q1L4FQ605dV0s7q2J/uKJn+4Yu/gPy9Xhr9klCL7Bv7PflHa1hJDTeco/XlxoTW1P5pi1CnC
ab+brTGAMllvn/OTns+TQOruYuxUAwaTQ/gy9zyoxIw40UMzUa86c8J4XKPreyGOeIHBCQ+yh7Mb
5C43D6lbal5zOuKJjBn42ut+IXFxh7846v+eky5m7sjphThsFCW6BeeAC9hyuEPpIvNgPZxK2kNy
qj1ZqRZtBnTMCR2EaXrfDdO8P9xUzvigUDVRifwncrleHzuZTKrcLDcqUd2TDi+Xz0vLNyusnnMr
WiuchKGSFmWa1a075FUjcXnHkd5Xa56kVvEGMZHQrZg29HrWsSisqpN9FtQutw/peuUrBjcS29R6
oF0OmMHcwT0KGJBGMAvbh9n69tifWxiI164BeYpa5cTBUWh+nNqoyVFmhYwHJUF/COI/b7MQvqPP
hSsmkuEw1PIGSwIqB7Swdj1S1XCB+uACNer/F67oKlE13khJ1WUjNJAG8xc6UJK0632KnvnwI1rF
BSAnQqL7UNqXD8UYrBSNQqD7f59go2amNcCUHtYLi/r4Nf0jRp/KTXC7m5t5Or5dT+7H6RNsh417
BjGgC0WGbiJyqUkDKmYVq3v0mNlW6orA6xlZeW3DaUchreVkrJKi2gbrcAvBCIe7pWphe9XL+1dc
P7CDvN67NH7GxgjGPdlGwv95p5tzuFnmZeX1CdXGC9GalVeqGKMIDK/v6SjfbQH+f0yfb5Y4jDUz
PuNbuG2rj798mmH7wmQ+fvlpNzNnmC5sdhdn9zGKJJ1ecj1nQFyZ97K6E1Y42KQqSR50ohv6qQBh
uGiHvDWwMgaMfn2ZZuMbDcW6z+mmR7DL3h7wrgva6oBJo42fvDZRt5utx8tFzUmX8GKEim8caxiY
u3zeFqeaHveIr8SO0KDZipVG9+Uqp+Y3K/YpF7bg0ChKdEuQOZ1MH9J9+M2j5EDoSAjTyhwNK8rb
Jnpg9EjQxOjYIEJ5QQQnA57iooLH3r7Otu6oqnXZRg6BZ4V7/KMB4ELPiTVrwnmMhijYe45aca5U
8dBVjsQhhuNLGZJW8YYmLASxqb4Qm7JNS6Td8rQn9aIROmskDc047YVkPC5vd/P9XreplaqaaEI4
sX2SfVj9ukpNxXp0Nr3o7BrN+/L7mVRlNf5imgDykP9MuPiPjiiwCxVzaXjPfM1XR8OINT2RgYP2
AQemRQ/RrhOhxBoZbKIxqybNgAim9J3J7na2zBsral22ZklIq3vADikUv/r3iqvEB1iBYeqyAkcV
erxYaEyGY3Kbp/vxXZq1m6Xz1N/5RTQ4hiQ6MtF9IRONyESbgZFJZYak0S4PQIqih1BMmSw87ubb
2QqgSybAuXEn+wWQftXJBePLt1Jd+Zjzye3tZvwww5P0PAbO9OgMSXHZ2b40QWyLPW14mGwe3AcF
x4+b9vEA28m2mmxxvHDmImaL6doezMncr/5nDa1kw5M3nH4x2Twvpg/r5WK529SkDChWfHbatnAO
4QZmk7m91Dq9S9fuOTeUmJBBbhE2ZWliHW5LypMLiNl0qWwXHBtfpDpLvMQVmi5AD3cNK6ZiRb9w
1F1n1DLd00sAH05ktiuLx/I02GTnp5Gh7KadW1KpFYpdQqyHrXZCoUrOzF9M03Yc0BGPIteFnmgk
Ulm7CXyHvnRZlEA+SiQlPIljuR7ARI4tmghyqAL7H1u8B0exhxFRfk1Ab3hkPLz0gWBsn+3kZAvA
0unH9kb9CO/xhKDKuVbJJcRlHFK1AEZPZDrmy/vZov+VsaZMcTRngxyWsqMXWAIUn4/f7lbwX6vH
sQfk7riEClH/6DMcMN3UQD6uTEi/U4et4ZzZifrk5DLgcE1WgwNM1cklBCjsf+tEc7HlcbAQeQVk
sF0ItE/E8Pbdt9+jKwCfcLq9qGEjQjQZMC8kOpmZdmdIisgxz6JUxVG1nzvaqZEt8jimfZ2u5hPk
8GFxBfBqhg6+4ELoHjf0Af3mXQn5gfOVNgjMfXas73PdUPp4Y/X88nhangbzNKsi4pJD7AAHiddw
0PnFsF/wtG7WK3Fsbpf79JTdZ5oOcNnSFe3IpkExOXyzMj6dGDbquFdtdD73kHb+1hhu4YfHVXZV
b/LPEMA3rM/kX6B6Z2EmTrB2AcPUVkd+lfmy43nP7nckZLvQaGhxgy3h+x7+d+Du8Ekz9l7IjZ88
QlbsYJToOyfv9oRw6nTv0ZEiAPPkmUsdQod7ytf61e/XwZeFV/USLsH9up5lge7r7XqXvrIY8Nr+
Wcr605HgmiSRPPTp0XcI+DEUEGMsjisKj8cAwyPGiK7VyIUnzJ3/3XJdNnAZFnDdBzVYUC6jZnI3
M7y4I7dPKUBPeqYaUqGSIXzbqYDkqZc7Zh046Y5pGtJ33Sfbv0u304d6TitsQFz0fVbKkA1OC6Vi
IMTq1Y5Tonc00EjtUySqhxxpUCwkPDNoZWm6oEr7q3962UD2fj5vraE7yeM5b8DqWJAvwsfmJVnT
NBNp+Gown8tFwnqZeuVQA0uENsJ80Wixa3Fc/KSgIw/YCtRU0SZYzblbqka3ZPM9hTqtDKi/iY8G
Sfg3sEiFSMzs9haswAsS2xso50syoz5i2V6+vV17NNIJIxoFh7r6dWCiB1/udwjYhsdbbBa/to3z
LePUTEP6C3MiTjoe871vOHjxStOHycIj5KKpCJlvCvdH+utZccC+CnEDzc1IS/6FeVKUkJb8YQIO
8t1kcQt+AQfqTKbbdL2J72CrrlaqY0LRZhW0oKQLrM2TLc5ALDMo82I63ILfGGYFlbVmkBI5kjKJ
vgptcGxdoxKOmo5/p431TKtCgp6GPGqHA7DqgANpG3DA9+wLMaCytawpmiM1NriwQsc292CO8wr7
qo2mjRzBq5PN318pg6AofBGEIUhsEJvJIxXN+SPu81w1aeUAq0w0v8+CY39M4SAfbAlWfPmK9EQP
tqyhc1gs3VpHfVKqrZtVCVRqC2pkIQH9S8W34MQ7BPvnyEC+xKnlwTA6pFlEX+Kk+ljL4yb62END
e7fOjWRwOdeS9XhLGaZ/2m5L1TnALeiA6NIfUvy0XH90V3KThMuRaGOQz2FGjYq+nK0Jbo10LJhi
etmmeDtwgEuQhHY5Dq3JoBPxJgqnRpnBIO/R9LGs8/XlvFZwdYUi+EEh5hhOxe3W9IixHmhyOUiS
LV4eZcjVhO7t1EC7bLasCbZX8Tv573baNmVFSkk86JWpxbodL2zwhA62nZwhSf8ecztrgvI2zW8Z
bDZyneX6zSLdoms5MUvWDzyCZdg+r9LrySqrt7XK6Zvl4lX+CNf/54pS/AD+80c0H1/DF0+T+S7F
Dzj9vyXEP1LanMNPNYxZ27m8zpg1zobul4JlYeI0rTAoxpiRVPwcDPoPHcgzYeBAdCd0XWw9fcw0
Glb3Jb0BSeSIEkV6QRqOOlx4jfAyx7vFZnKXZjMMvMOTw/qXSbN8Ao7tHMMbgJucbfc76u2PP/78
d7c/Qs2kSASeKCZ78myot37oB/dE3qi04b9I9NApJV7HGQnqiwE66puyOR0AlnnzQR3A0+L29WQ1
u6Lvwl0BGKySL8AySR3HFJSjac0PBbFF5MklgMkDVqlGlQJLAtRZiLpLYFckogdL0IAqH6YCV4ef
VcIDhXHj+IbFOF3AMZ4ehO1tnzxwt6zcfbUEvLFczJ1694g5mNaXCkkrR8cqlH7mZBjf4Fw8FppP
b/6ii/GODq+83OWAbQVaqyGYWnEecT404AWEVgwktlonNBqKLyicFFopOWfhqC/XX6fsYkJL1frH
2D7TKY7SBAZ+9/6n//bUm2BofchoTq1+k0ShFNGTybDGbLEs7u/xzfP4dCy3c89zuDHRhXDhDh8n
r83h1FkjkM/jqzBieNrCOs7j4iTvrkHVbCXOUnDhqtzySr5QqUZhFfBt4dHt7nE1nqD27WfXSHvM
bYoBUQY2pp66nUU6wzlI+O3Jwo5EKv8IMIzcJfnn7jBOQkbudVjMTxPYe7vFdjbP9CfLteeKoO5j
CxP/P5k88bgwojxLT5SugVW2lOl4wcb75Y2nWIyFzYULsSgFAc/Vg4287u2KDWOt5uXiUWI65Zgb
RGEoNWd6RqqFPgv2i3YQHT2wUo9MonoKNNS4Z8kMzq09R9SxUrypRSRSZJHIwUK5uKTwpivm7fKR
5DIyIsQlOXXszhdLaGDdajN0k+csK9CNtJFIds6oAZav1XfsoPi3kcN586fJfHbrHTFpOOtYbugx
rIXsh9Ok8h5iETGldgQJ04GIvCyJGJiz+HkKH3Ei+mIL9m5OmcLGPaWZgreQrIurmm2W8wkw678v
1/NbLL7fO6hs+Md25k7jaokjNliMXZA/doUBo5KBETMXFXeolM9tFXd4BDw7eZOJGoMdXT97NUmI
EkAP6WUWzUQvkylRFDMSzJy7HaHk0apmhycEaZWIz5NTcGEHk3Uc9sTX59LxIYpiViMmurU2bLme
IVOwIGztBkBwMDoFNTyOw+syeMJip4F3YBUe3TNyOO3oFZo+HmsVsnLXh7chyT4+vi8nQwLpZuXY
Q056PQzuVIUE65yckVq5Zxa1EE1BasUJlZdbNzmMGyBBwT8amdYcdro9sdul/e8maF4lqpQL0+Wm
a/IBcPhyk0XH8/Qpnbun6AkVmJ6lLXDjdon1DB7cSNrlQyIOpRfEBJWb0z5zf1XlNpiOELzLJnkB
1zafXIWtcXa66JRobNJPLykLqkehjTv4HCikAowQbUaKsui7wPqgfLltHPJmucPgzGTxsUqfNAF7
LsmApsyZ76m0a+7NowGGCNX8xmvS1JuKPLVPKc4hp5OnrINiSrShMJ1HvYdxOykxwtE9RoFZCs4B
AykXLP4+jtc/8dUgSIAzQXpchNqgWfV8MBs046bFtvALCaAkUVYS605pJwA0tBpyIwK+jv8OgmI0
lXLBTGGLWXUWorm7yfFIWuFjNBupRMfz4kdh/yqek8B20y1sQhaBenlGu+OyURdonBewFte2c/px
xV/ZklX7zTfw16NbkCMKDpbLc94BMRTcxoiZIMJ3LuM4jG1MdCe4Ww6DAMRLt77xlXDFxEQ+bT5R
SkVHMpG9o7j0M45Cgs8qoJACHM3PwEY3x9Wl/gJXHo3t3Sxvn2vyAwy78WgyqPsxlA56PS55n6al
Zg+Wa3ckzmI4Cwjyq/6xhLS4pWJkca8Xbgvo7pbrT3Yw6mK79uw8gymxmjEltK12SGb4vPIhhBkx
UiQ5C5E7MgMZoatoamTgI+uUTmhE1VpKLtEN5yP1bqa3w8QrmUh6d1ZV3dyMKmwvj4dJl4sxXgE/
OcanK9vHkGemcKKNV9WXwy1ReRbiYGOV0+V8jqDGX0mOeQMlI0atZotJNuDybreYWqEQeG+r5Wq3
Gh94hU0IOI0Mh6PLk0FiyLsVbO7pZOOZ98gCK5rab2iPlTUjSqjoyduHbWp3Sq6bnevrrogkF0yC
8KthzK+mXRDby5xsPDtHfwN0Bj+V6Sjuaz2P5RVxH996UscC5RckGxa89pA5C+lsj1NaiuJ2jBAR
ndJkqSt39pi3Uz63Q3ULFST2MGPOpPxi8nJu+F20E5WsINLWyazTCTwumPwAb6MY1iT3cjOzo16T
xX7AHlq642Jf90w3gNpcRsf5btikA2UfmwRRltMd2q1xRXenICOmWix+Nsj5YYIF8NOlFYm5gcuN
Caaiph/nMyxqc4te0JHq9LoH8BbF/w2UXkCBsqF2Gu2UIe3Qb15R9ivQfXJBzsUcxplT8ABCQtC5
d7i3euJ/fFj9EQCsL2gTe3+5g30n1WrtaNCiVCjYIVpEucLSNXSNEjaiJnIK82a+g+P++w48/uvV
4t4h7kFVzYSZqO9u/DQD4vXobkNAPULe0ugWHjkzuNPn9WwO58tRimmwKJSdhflWy84zVL0wqh9m
l1lgvIXtD/BD65qqPUVN4BwXGlAxZGtV9n99qVbBGbqn0u8jRrgWcgCa7RbcDx2CfUZHbL8Ar5o8
TJ5S+3f4Y7OawIcDMTquY0JTFI+oqBkiWo44DZk9on2m1yY0Uadis8UJFdP7WZbUfP36Tfa/LAO6
lwo55DpRJOjXo3znK/sb3m6vSfbV98v1NS8RPZ5oKTtVu7VhvVjwdp9u326369nNDuiF1Shyl03j
PHNOOx3vly/BxG/ADG/Szdg2d2Uf3uxubububAFXcQshb54xVZm1BXzCT8ZwfKwXwoaBSoEraieT
hOyuk1spy8OeWrlSjynHpoSEJpxGzgynC3C1a6+SFufAb8OktOoZDSzxw+z2NrWzK9ZYD3M3S2HF
czTpDFnaoWD6Qoo/mbtwx2A94MBA2yeTHqaLRIcTqUYWwi/ZK6p3V+q7+N4v+72OKlYhKEsioaPp
Qzr9WLacVlTpabaZwddOrCKxwXhAuFjV7Iz1zA3TSdlo9BP4HmRrHKAeY5OEM3WBaQAUvO+FYRWs
vj/PJ9VItIlsFPsiK6cKCBE4u3zgdadK8/ORvIq6SMQbZMisAxU9NF6clJKfyp0VK3OT5GRGdFGT
OO/wg2usl/NseEjOkAGllyX2k0a1E90vm089JyxJdO+W9lfwQNi4UIEOJE7p6fQ6/YkBm59weho+
EobGLuU9sL7xQzpfuckfB+yh5UUjD/r9lfi2B+Rhf68LeTDSBnk0QPI2M/Rudi/cGxDsfaez0Jba
VuZyUStYyn7g+6qmmQunM4sgyXLWLmRVI14E/1chk5VicFgJ7h45LE+CSlBYT2iPqpHRtPmKu8MX
M0S4691qmymQwJa7f/QU9UrF7BClNrawH14WBO5YV+x1dAY8MLfLCXAENe5m6812vJ09egTnNTy+
brMJ+nj6RHV5Dc3gQZWkpiEjyTmPfi9BwPcwc2hsX2fWFeoOSMlAVsKqO1UOvZNgLqdL1FgEOzKd
rPBYwwo9Lp9KLTIyOcd1CSUjGlQ5w2KobB3qt60B8akJUR7Y/8qiFUBJ1eJ6TbHL+799O/73X9zo
xXbmdN8AgZstLKMZ41qM8AR9sw6KCMW4ItGMCT5SUsXYQZvJ4vZm+XmcoW4b+wJgvJltUFdn/OKs
3QAMNnNCzolHTOAwvWan+w4+fekPz2khdbtDJYEYkui30C7G7vRNQF1lQocygS/COLa4zeuLFKB3
ViOXyYaZMkG0lvGtcfDJckbRqKFdil4aqVRwRrt4yLbEclPImbqzpVbKk1zaqzE0icWAXg7L9CG1
R2m6nmwenMcYR8kp1enKtZUhJHFUhhCphG4B3rqPWHv5DW8f0sfXn5Z3d+XQJDGR+Q/+JZ2nPirK
uRlxqpoYrurnyDSK4PV2O4aOvd7FuRODwQ3VP2r84cPPY5pQ6oOODKCjSqK7r5pA+rEubNNhf5mA
+aa0WUlYULXtk/gunoUtRpR2gYwNSj+cx8Zg3ESrc1NkhCV+VMI4HEPTzb6vZp/fzJf3y9f3s+Ix
5wmHE54EKtj61sAWsy/StY1Z/vuHXyfr+3T7E5hUONFTWI+P48nt7fsnWKYf8590F3fZ6SNdQGFV
W+yRDc3ms/qLwAm2MBN5KbfCtDgjoWF8pIkahtA4OyIS3W7/76V7cA5v+hm23gSuSE63PzE4DH5o
KuKjH2GlWbX+NhujjgB3YaEcQNuquckSiXOXV3ya26vQ5DFkJBLZDa2mn/aJkBfFtBma1Wc3IU5a
WtBODfeGXCw+pTqGuS/altn89u+AnN7ttlsPdrMhNzU0ZjopPoiEmWQn8OdhgPmZ9asNMy17CU3U
QDQW1CExTFyEKzNE1PjDw+xu+9u///DBjf6xzInGPUFbC5q+tbNMWkMoLJEQCR1+a1IqW1j08sSq
6s4rxoUaUZ1EvZK3A4to3jPmqfDIWjMg9PrMEbCfPrhjYBJwiiC9QKasDMGqF48nd3ewTBt/a7Qt
9WhonSJjYzrSnVKsp4ht9ogljR/yTG9Vma0gaInOQl0rx34yzW3fVBtP1a4gjXfLJHj4mVvuDmW7
CYsU8TxYAuKs5RESRUQvFkT2QJqaTJ0kycC5ewZscRw4YYLVFVc94mTqfEDjqiw/jhU9TA6Wm8YA
Q5vz2qa5nnE6bB68G9tpJYlJe0kArx/Hk0ysCh11UC5YMrRXpn/EjJZztd1/x3krQPy5afEqIlZu
c2rOQmXCB7spxXvHVfncPefetVLNqgWi6u502vBVfIQr9v1iuZ3dPX8HduCKfUdKrkqwUOKcPUvb
O/nm5T6uSaleW49ow+BeXKzK+UhTeQZymGhyzlNPDZc9nvpDfV3ejpUP7LVdWOVwCkFpcH6Gt0BE
Jz576gYx1fP2xx9//vv778aZilghd4t7ceEe/4JF01zScxPbpVuTFTh/0g7fN0iGbR6A4cFtepJg
OH2Yn43W+acqJuC+RdIEJsY7wlwkwwMqd8UL0E0WpcoR5Qgmm+fF9GG9XCx3lWRfaEzS6CEq+rI2
z/zVbCq703GcIB8gGgsHaPyYbh+Wnn5jZud1x4035MZ8+zCx9Sm4VzZlQ+e8H5z70awWJyLCZSpy
LAQXPxu6uBecfwbShaVhbgOKDM/8swFIGVwU2jOAVD0E9ysSToxEPlYljHBbFS2Q2BqStDQwLRDz
N7/lH/12/bdfvx/rksHTiGbVgK+AtgoAdko0VcETThG90oELpHP2nH6ePALOfj1dPr4ppySwl4PE
jGLV2r+KnUs5TiHoMz5qe5ULFfe4XNiXvGcfSPSv2LtX8+X99fdvf/jx9avsO9f4w3+crHC4eY7k
x5/Sm4+zXJVvkW4308kq/Rr+4ewOK2jS22zOT/2/KcWvsUNZiSQWWqqqYAFaxdtUzFdGZsewCPfp
ukzjOIFHM/FZ5QtbKY4t3Etx3jxXKStxRrCgaRDmkE+5PiUQRxMg7RRBd8YGUzYD4EYcSpbZdhdM
02jKSE+UOLOyOLY+nwURxo4JB7jBGRvSw3ChztktpUeam37Ae3tZayrUBUQoPOl3LZJAPU4WMlGz
PCAV358tovZrY3JA+ZKc278dC1Hn/7sEp8cSHp+FLZ/S9XrmDlxRwmjHgpGWHgm7hHwgCPZpjeBV
p+1htRq2k3vcGw8pvLT1db6px/t/OM7+JTDEfztxVv92RRUOzYL/wJb5t9yjwT/6t83kCet08e9o
sYAd4gsHXhjiKQM8o12rV7/bHVqKjo4E7ebEj+KP//XnH/8E/uCvWWAhrAyfYi8RYf3w3ZO1/QZX
9jrmupYcHCOC9rcFB3wUQpkcUUn67pfJEwkAtm/GKDvhxikANhlPohcN2G6dorHzqtkxpdu1ELtR
pHXFDgzp1c21iYyglApvNte6gF2KJtffIAJcUwtzfl+czSA8u/OlNKj1nbeobj82p+5DivUftNH1
4wJqSVFjt8MC1OIAf0aAKGJz7bEv3pKCupErA+bO426QYkythcvl2FMeJKPOu1f4OxkFdqskHa7f
jPHMGmuUG5RECFIW5Q3Iei6vlpux6qyOAisrpIhl7q13xXwrXNgfRlRSBrYh8n5NO762sxt2omgL
w+5w95vpZlc7hkknga0UPGLLmE4GviCrDr3w/0fPSvRMGhK4ZhfPjSiWMvT2/oflRtyKUA1vnxkh
0c9szXSymjQXbxwvLVCOveF/mUzobgFK1Eh2Wu46mFk1fhZ1s7vBTGeEzekHsJA8LE/AK5PQ1unU
jKJKuiAcbxEJnKn58+vPR49mO9+5nZZ2IfDiin5//ritULLV0WrjepU4J08qKKFVZeoodty2V16A
3WjnLVlpp/xDx96nqNqHXfpGtmBmxfEEWNA2ufeoJBFOONCIFuvuVJKgDiUJ3iv1Psqv4j25S0jR
PGoVyxUe9PyCk0MsCRwAwvtODn1/EcSFUZHECDg4IvrVtcT4IhRpv91X6+X9OtNfXsw2WPIynczn
NxN3hTAFNMSFjELREItg7PM43OVUORYolniO2EWVCL1GLSPJzhgHZGSktegF3ddHk3iS9H38vyB2
eao66ieXAO91iz1zNopZo6eKDFPLWI4IzO0GOcH2zWxhfyIdHz6q5mmcI+jqfUsOt7DAdyni9w5Q
5tDtkFXWu4+yst0o9GIYAvxvNQfwcf4kE6Ok19TfAXX5a0wJA6hFIocCCmVqD7A06cJTb2lGigyX
RamsSU7MSHLT5SSU5ADyM4HZaLd/Dxa+9UEd9N2bxezuLkX3fpt9jezIedolsWXXLanRywPmzT12
yOALVUKDZWfgHobdbo8G3ZblAkQb8trLzRBDNeeY9mQXQqfdRJoESlsOY0etES1YPvhosbRjo89u
WTnmJJpDoIDDDN/C0uljrMwSkvUoy14MyMs1v9l/L721s71K05RGSvDonD0fU1aNjrCetFMst2lZ
UVHk6KXtsi7IDw4Pc/fkHFyvVhfeUCsn3GPwJ0Q2jErsExXDIJNcyt+pXhY40ocHCRdFk3O0RfAn
98twYMFI9E9YQ41zcmyX3ZbTmulf3n74cCYzzQ3RXbZZdsr/ZHn7m30Y2v7NVgDaRXIOxNaBw+Lj
+QfcHmGze4ICeOB3p9sZ0PDpfLkBDusJ4UocJXh2lwTY+v/FcVrEcZKmC3fxcRzGekhs7BbTvcPd
wAacwr1UlRdSDSiain+qMA7+IUgSy2Onjys4L+idc99SlahB4McU6xUtnN6QO2KMuJ+fG9d52q2M
xVTD+hxmNQfOT0m6xf4cMR6XB6zQd2VkJBPVC7EvCqI9zjaPk63t6fYhD6VQjJMNYwMrEb5qjICO
7wMVj/+cbjaT+7TAE9MFbI3Fbj6vMFcam6w77Yh6e1EO7fsKE6RuV7vYaFeOPRP2ZDsi2krxmjDD
hjwCsB+cb9/uPDKoHcy09nuPB9UYQkKsylD0d5D7oay/x7pIzLdPHuFFzDDR/ozdA+C/ACAvJlV8
W2JHPVHRC+J+/rT4Jde8+C7NLr9cu6vklMbyqR6hWdTpDnlYDIPwWdOBa8YDob1kz6uvnQ1xB3cj
zg6Hlt5WYw3kNK7186rwh8kte4nUUZyhIN27Bru393RlJS0Cv5AwLkQs0p8Pq2k0DotrDvjL9G75
F0v8rxf4GIovgcYCHOkcfOz6Gdb+1jMfCGewyhiJbYsnFssxGolsw/vmWFKN1TomFrA5YJjJ7na2
HGd5rvqyOUJGtBO7rehxOuiRzGfga+paneCNKx7jfOecr3SyZWJg0UM8qgjYVEUnMX0qX41pNZJB
/W2ic0UUkH871HJ29zy+XS4c1h1gFAvqEBXB1M6z012RTMN1pVdrtt74KeAp+/F4XmHNcFCGDErs
iRjGzANhFRBrIVuuQFD7hD1edc0TigF9IFx12QOPy6c9RQF/jSpVVp5y4+kwhXcvgtqiRRsECwYP
W/Wnm5X7eQW8f93h4g1oY8HkOi29IiNNeYd78feHo4t3elAxClNtEO2SJTbE5h6Pg4OqkvbbbAFM
ePpwN0PRvc3GVe7eyao2qu6rcZ6ZAGCHm4mGmd1hRGqnuhsTd+cVS6ZaYEwrY9fJDdcnKuy0ZwAe
VkqkXKdMqBzpNpapsAh5oZBjqomJhDDyiQn71ovtw3r5aQPbAmde+GZVM1sHrXt4srzmibNkAH96
mPXkEYHGTKVRvbw/qnh/q8fanMUX/7vbZNNnbMRss32ep5uHNM2n+d7auj5MYfpl5gzD0ctdPFHT
qhvPEGyiqALLlMRApIHrUVHUqs0orJQv8r2Af3NYJ6DghAS1MtXeTlbzdHxDT5P1M26jyXQKfBi/
yvdLfjffZH+9rpwbgyPoqOkL2p2K4qPkWwY7wfdRt34i74gLgLe+BRi3Xa7fTBbTB4A4aIRgLcaf
4PvpgeZQd4c0+jQykGWskqQVmS59kxuJE72iBKNHlLeiOYXFP8mLv7yA3SK1hUG3h1eRqZeX4uYE
DEsnDzi0FLxD+Z31BCpRcib9VDX53Z4kRmNARkcQsrJ1kGvV8dJF+PTy4LDS9wCbt7P5PudYUTRt
QruPu51kPMcJcQ9kl4FKxaJRXHBq841VJbka+boawIbCfcxnixTguZ1sgQlgbE9wy1QpW8QeL3xU
3BfFSBLuDE8cKUEhIHYWb+dmUGTEJRmM1VUdWmZ4x01TE2jwSGTYvl+m43mb6g1rF8INPDATKntk
s4F1vF9CAa/gSpov2zNL1WTL9URWRHLx7EC0edHV84qpe16xGEklYtkfP94t4UwbbmFCRoIrueXb
LbIB5JkbuJls0jHWKTsLo+iIqU7RmHL9xcMMa0ifa6W/iUGtAdFdoaiyLdERuUsIYbj2PKxxSQTO
vEIvs/28PTXuI2nUkG7/EOD1k9zEnN/XFBv6vpjeEZWQVmihVjnadWa8CtLcDiVOOtnGBZaLw2FZ
w3mBu0t9osAoqd7GPG3m+z26W92vJ9YCeMSaiFFipJKk3VXcRKWyCJNILM/tFMJskNibutVGKBxE
2eahLwnJMDY003PzO44crz/+4N26tm1Rt4g2lCtO8K/gxxZO4TXDFcWYAtdfBkk4se9n5wyMa90n
xrpdTnePNWkTIQO7MVqFZOqVzZhOIqHpku+AszJfpWsn1qIG/0giH5G81alcMSVV6AC7dojWaQUo
9lDLFv4kU9VYrp7tU86fsqCe20tKyoA6krNASV8EKWzgc+Q9ZdBzdrKEJ3Vg++T4Mp+T62RKYkSN
6R/8eaeGgI8TikcL6RdnvtnoQSGkaftqdjf5jdLxHDyve5oKxVSRll80iFFE9LCHvbtXaiuY+8VG
+6xPt6Mn4avDNeHrwvhJuGDJW3svURq+haM4FCEtrWnhtC0f7Vv/n9V9qa5WkswbNzjPVbb6G7jQ
NnVabKMGq9YYp59XFpL4Yn5tg93t7GXYkCHRYKxpeQ6kwIyxMgNVoxTlXzbh+i8EEw2UdCKcwWSp
YMfBzrvnraI2XtJ474efLMGSi48tG9m7gRFJrMBullirlBiSeLx5dHqBQnLVKV9hGXi8aNQmC6F4
i5JVqEhzNxicF8jUJlJlgtUyZJhkP3WXG2A2x/RDeVbr5da2JrhpJdZ5qGHiaD5JQ4p1U+3JFzac
jB938+1sNYeLTB5ncyA+cEd3k6mnxCFUi70pZizsfD9+5EKOtOZfAOR2i1bZuGHC4ifbjsN2FqgA
QsEn8gwCAT5VXRMiGxG60omprJCSQGFD9pDsr62JsTY3AM+I19zrqW/GEwxCwd/AVs6wz2CdYaKs
38BdnKRHUsnm194jhE26frJhgtxUI4eGVX+abeBsTeZ2wIDFzB5ZUmY0gH/aYfUbu5DKSAq6EBGU
ipTD5eTOPzUtCeo9kmGgIp9m72vcFUHBUel0ICmwh/fzFOO/P8ElrBopORlbs++TDWukkXXI+OQE
OKVBTZsdXnupvfiEE4PCOpIux6oagtaFuHHGGWt+9Uvyiw1dQqSqa2qVWkiHF9dmjJDsZPDKiPXA
gOtHzksRyM1k5FgqABLf99wwATUMdBs3vZm/We3nkYx3i83k7sUxuZtpzEjKpMOahEYonB6ZY2Ox
6WTum8ZhiQZ7QfoCAeDqb5fTEA0cqkxgtbgcNh68eQD48gkFG+/mQJLKgCAwFHzFvs92QroBO2TF
mjCo1j5CLG2NOTURwXshG+O0IxXT3PlICtLqVkI6Vqr7VCgZKSrbmYeCg/AZigrLRFEPgkTFTPT1
Z2eJogrsyjp9xqf7faXs7NEW58/+4SEEEv4tJ0mPR9ARQHbHjw8tqxaDwCHdqy6tp3BEj3DI4W5z
HAIf7e8HvnTe0ck5PUhTnTpoaZAgy/b0sFisHEQUx8vddrWr2HEU8d2wt3Q3W28q7gggE/CGPmlb
IXVZAlFEjChNOpBo2IvztJIYESuzOuiSw9IsF7cVdkejnGUrb9n6nrYPs3XFLWktwIDwaFQ1j/Vb
cT23hiNaxE7hi5pyNytq5pHwDAs0D4xUdouPi+Wn7PvtYMrRr8gwiw3hTfYCGRHhi8YEmexEfwrI
wZb3P8Dusft1vfS3wTGhMMxkojpt5paB12AaiZD9MTzn/uTawCYlLcHCyza8TeeT528tdvgRh5U6
lfWJbvUKLfLCtP16zNzNm6j6pXvwKxkKqpLESDRYMkGiR3BeBrBWpRHFiMnOr+5+naaLD7/vwKS/
hu+UdggPHDNSCZgPyM0i532WwbVLaGJkj/ZycG3RMAVnH+TAYcqo9YWrVgU8UBaWJkz1Dvopl+cI
uFmZgzbAqmO4w9ABKLOPKVvaLlSUKOPkBpz04r4cyeQ0cD75yTWyg5whL/T0qMeXDcw+FQ+zETkV
/UwXZjHAx+PUFpejqndmaeAr1/hxZOFSdTdnB380dlHCLJ+gOz11k0S/lwKiIJ1KIsdaEPiODygK
Eefv11fsW/wEGTd8dv1VblmPi4rwl18lpOL3H37rm6+u2PtSxFXhAGgi4j2PDd7kkcZyaTwLnG1V
uVcWmbMb53vGYd6kHhGmmGwLMzdYWWcZwGTxPM4S6YvxBnA4SqB7tJ21YYHiOTLS6JrSpBliDO3R
1d8vEWgU57w45LexMJ71BBz32ezJHG28O7XPwMtwwuPbiRvwpm43rpJAgVAZZ7ROSXNYYpxED59M
clfdinYQrRX/aZXrbYjWKU86waTlwlaDFKYD57jFXUpHYf8K3dJ0FWzFS8HqDVz9cYa5PxtZKHez
oGI7NbGDAf5MX5ZTbGGe4WpvJpvN7H4BIB4cdqYbnFpsP97MfRLlaJkTNmDAzuGTDLhaLnXSUzyi
pkhSBypStSXVAb1/bcpOjkMVzBuqULpHNAzn99k+Y7qdjGHrLQGgUl90i9O2RxcsXrrNoef4dofO
Bmz+5PZ5s51swQNMFvc5TL2fjid3W1iSTB3fClpP3HNnCAts2QpheVk8ePt5+00JeTCl2p3mAqEq
nGu40K3H2YJvH8lWvDzyYRZKyF55wN6AWjrghf9B2N+F+xM8NfG4eNkSVRWfAp1jnKiBcGJ1VxJs
KBOr7MS1+JWUyO5mEY8+Mw99ZnZQbyuU6o5nVa8pJYEdEnGYHukMl4KsbyFUEG6DpTEjpdnADspd
KKJHYfPQ+sZBnJN+IPUWYO7SLfFnUBKTdwFBDdr0KuvchOQAf03nPZsNL1jeP5XUv7XqDWe6F5cy
BbSPDVfQmJUxvnzgtkKSBWoH9b3hlSKx6VWl3qiFotL0YnTyRd872UyK9tC+lJkklyC4AtKuWtEw
cAq5hNO+RGmH7SXud66YVe3rN8uAdUK+LAPRJgF42HcQDAu1bsDW5TMQ/e2KGjVG2zggF9vGC9YS
boYxoFapacQama+d3WaOdpVaKvCiweIkmIIENoA2JLh2xavlhtGttIo3xuYjWssBg8/ZfO8gWzBO
F3B4pvB9UiKOmhp1oXed58IQXTn4rrn4xablxWaEDxemjrJDDDcjdvm3TUtgUwK1Izy5zPv2b20U
RCVcSXpZKc6kU4ozaZcXO+KiReCxhwTE3ZxtRlIklxCgYqZrdgT+Bo8MjDi9w10DhKacI2GUNE58
enFXjZ4F5bzH8Ko7V4HVvkk/2+dxspjdpZttKTymO/Zmh9Wp6GTIwIk7eo/ZgeipJwy5uXW2NWsZ
Aqkgxwv8+j7dbt2N7tLANWUvBsitrwzXk61KKCMbIMmk6A+SV6ecJMLyVr11AYtedWyZiuc5Xzxb
yNY2WF5HejIaDAXQR7RNmic4aiWFaOev9l5q3+ronimI1b2G98vK3WHXC2GIHLdH1eZU7TYnmPv5
/HlcV/oVpkOnLqEOudAl76hAlkFgR1XiqufHm+XcwipX1YkA1CoFjb5cL+G7B9QcKuisHpjMyv6k
HcVdEA/JCUP2Teoq7uVypIJ645QTnG0n04c9fMhGgH+HE8Bddi6BrRSU01blcBaW9mUEpByeFBxD
ZS3WPDZul0HlUypKHH0/I2mVOrviNda2cd7hdrz4jPnwGSe6xfXAbT+laxwdD1/Cdp7czNNbV7ET
7J6gBiQVNXZzvpOJHSCy7cEs4vxtlgT2R0LhN0hDe7TxzojH+VaWEG2ZlDTNnzkgmelMYtrhdqad
+9ni0ZvcLldbnLU9trpzzoskOnAwW8+WUOqE9QFYggwRCWypVS3QIjaWojZqUEWztOli2c7hFV7F
3vUdj6O3V2CB8h8VHnV89+nW8aupHRrd8VdTxy9mFKe2dHk/ZSKft/0Clf9lX8T0852bTCgTOC9Q
1YXX8FQ6MCDKW4R1+fR9CBPVZZndLD5vea5ux+Q8sFvr5Nqf0pvJevowe0rfHOlaFEqivbaPKQIX
NReKvF1CGUBrpWF9IDSfXUQ5qDZWuTa97jx/FXl2CparrW0B8Ps8vllP4HbGdiKzp95UCDyHySXQ
AqljncPq7rdcNsn59tVItWK/nZrGaMP1/3IAuwevm+SfE0U7QbSSKP4XlO6IirVqKlixWvACjr2k
phEGLji/l1s4xMEKPtCBqQjyi1b+FtWq39zlD2q1q8efHmbzdJw33nuKwDEwytrGjBab8Qorg60a
SiY84m4ItH3nqjMDhl/mfgwz0m3geYEC2snutsh67w5PxYTdhaSoJUFpdN8P92FFhOcT2/XtVEs0
gV1qlZzEmiL4yNqh36//z/8tg3xDuxiG8JJdj8RcElhG2Qz+5gE4uA1rnVx9VFUZBQUglWlxCQSd
mF4oWGU7G9WIySTtJUha1kfdh02ri40Jw3k+RnSiK1a0CYyaDQhVVjwSQuDsKzkgUZmn95NpjEwB
wPY2buag4YKFBfuNsn8acObTdOUTdyUMZ+fKCzgxvE6pU/VSWtW6c8xZUoXjsXQbj+psKyw4v1w7
xiPdEqb26XA4lt/BW4LdDo/s2SB6pDoRrCoMeoe1+hZ/fZrNb6eT9W2lCBbFgpGGpuS8nCeSbcC5
HEk3E3o8q9NhTB2hRGCYif6CEheRVhvgjcYBirr/Ff+GlNectTluTa9LHdclSf/XZa4oBuv/utzx
vGqAdRaO6yak/+tKx3VF0muczEL2DBgePqvSVucjykSEBKyL76IxsUp518u7u1O4IQElyv4uXEpN
AldLen/MRfmymqi+L3u3XJavq5J2B+t+Dr8meU2xcOr2F9hv8827ye3b9f3GLahDRyJpiXxmsI/X
CIwzRcA3hyDrN1dUXlFGlNBX7F05H0hYp6yPK67g7hTjdnp9n+mEF0ECbyZBcYOyoz2hv3DgR9SI
D1r21QJJuHJQBMA5aefdNniVLd74ZrveTbOgSG2tCcrDc60Hs20SJ8jz9pzVxpvzl5MJylm3cTNb
TNbPtm51sfFxV9R8bMX0j03NS4sFvuzHyWJadLH7UfewGMcpGKs4KQSgCBHrDnKFavvN7KoPk/XC
OaeHWEHgTgVodRG4itZOJmyYaXi63k3txcnZUfE7rCf3C+aU7nQakUn7QPUcnildTJd5E7I/JE4Y
jrdug/HdiYB943PmQw4DBVOUL97OvJEuVNllOvmnJrNuLsstoRXtjXThLFm7/B3K/29m28+lQkcj
7RAEGdEi3s9/w4X87W42PzHSj8t1+uZut5jiO9+EgUbwjVjnqnpCNAf18fw9epQM2YhT0+NOzDM3
dhPaUQiHYSWlUpGRbLMzAvxjliwWSjeuUmifkXiZ5kbh+Dylc89QL9GurM/x1DiOo/zYBIMpZLhD
sFvMnGlrCZtdcDPwjZTBikm0xonUA97I9rRFJQuCSEBsuk3QIeIoyup2MmykUYnpyPyqulsZS7ow
kiPE3ISbUEGwajISe0YX+KIHP08nHyvHGBIcbMmTfrKym/rCWCxQ54YMRGHdOty4ACQ6Y/j8sK5v
OxU4SZGzvj2N6N2qm4GQg7vkEoejdg0KzRaL5RTp9tMMkNOju0kYnpT1GnzahNeyhs3fdtCU3fZO
W4Umd/hAI3knF+4KZMu0X26scV03bx6eb2Z57yYcUgBGCwwtLG7n7pyysUGkkEXXsUPWJJEtrluX
pPDbqgp5MGU4OOIWd+OKL199R640v/ouuXqX2D+N/fOdjTh/r67ei6v35vrq/bdX79/DV6VuQ1iY
oIpu3cX0VFRWCZYE9trodhzeXceHcqlMRA402XezndxjiOmEozcBGK+yXsqshsH+9DV5ZUNWmT++
Yu/tkfuXD1s7IAHLpb59mKy/BTvxL8lnob+GP5j941//9X/BP3tz+HclU4VNNaLN8jdDDzeTzWxa
WWCnOaAYeSFnQgVpCZ7cyd7JhwILxoUKnH4WfiUvwKBBsXt9RocUNgtch2Po1WSN/ij9jOMaZzjj
Cc2zE5YIHthc1sYM2sSDlVXGUEIhEIe1sLPHe5zzO95s3bqiigM0I6z3A/oS+HPFBQs3XVvkwpkc
yaDchY4ZmXEykwSlSVtYFSfOyYJfgD/nyw34G+zoxbVZp5ONmxpqBtSszQEPdRv7EXBOrIV7mieR
nh0nmiCw2zxMPlY0MkuVBM690C1gvrt0D+OAotVjHgJA2/TzD3hU6Xd/+vXPPzpfJUczqviFnkNP
m6IIihU22fuF1+M8BeXIGNXGziCrglphbqcZpDo6G68CJGrCcJ0Dm11R2Rad+cBZNm6JJJT17ZM2
7ZySGvE2e8sN2oE8eUJbWODfzJqcIYMa78yOMZrIVZOz0n37voq9eTOGpbGRl8gorqAq6GyEiH5G
4qZe4+0P27pJqe4GVR1IGa8agJM1qn6TLk7Q2R6Wj3BAy4OBPIylHEIHRT0Bd8cYR7lQEhHnIKS0
JWxTHKxeGLDurhYkwOLaxLT2SfDd4m62mG0ww2FrDmxDJwDdfARMbifzFhh3MR1QVt5mCVoh7hoB
K6KVtoIFfQX5XJViRvQdU3TUo8qR0aY/cA/GY5u9/U+TzcGI7OwgbSvpeKiLdp8L7I5LRA/44f5w
M4sljuXxsgGSYD0Xod3AefdCOpH0REgyGHViODED4Z7YYgLTArEYREWhTxNCbxVajI71FpuU3tQT
M0IMwxbHpL0BPmmMy9oLcGx9/gPoEPY/46SgEtvzanc5+SM7uYGHGTY7HsFRvKxF6M75qwwICxwq
3V4xwF5g8pA+HnQCXLPqubZiATJsyK6O3EWByZo2oeA9Rz3MjMHCLVTcd7c0o5aNuezT6Kn8Fpxd
AEV4818fPrypJgEUSABF9bxW5H9jZwTDL3Fhf50Ji/PBYIZG9UHaF8zMNJqd2uKA7VjSkWqvN9gy
nUvGPy8mj7MpQu3HDGzCLl67m3QJU0BJJYtPN7y5QJK0P/k5kThk00rRKIVoIP6hny3+x+rawDma
zxaHWveKigvsrg4rXb6U0EYc84URDk3isCULtvbP24o26cCWlguJHsR5BehcR5Qa0ueTZyfCP4QV
8wSaxyFP05ryQMI40JBk+KwE7SXxBJt+uXgEO2p3uI97KZwIp9q6x9v15D5jonDs9nNo3R6Cg902
bCiTWlFCgIEg3hAQZCbVKZKRaaIDp1v4NtWImkj0v3DV1UNuwfZ9StM9ukqLsOt/wTcOuCt1hZFN
3Azsd+9/+sGjaI4lT0DbcGrhngHvbvyj6bFalMvLAN5NxBuExsa4Drwk32bLdS0xCSto7ZK3cxgR
B1jSCD979BI5XvMGfA8IyladbFbX8AsX1q+sp9i6Vyw9OdxlXnoCH+3vA7503gl8frgX+3V5jndW
0KBGRsnIGHg9e0JVpZv18tPGp9cn8A20yW+cAOLDznO8ZMQCon/zjSqIlSXIWEVPOtYB5sV/hwBA
PgxrstmkbsZhD1tiWrHpYxtZEK44toUnxjJ7/WAD/OABBe7B0vyTkINmakQ4wrG3XM4CtgS8i9nM
J/TPmfqnYAONNYkok5oNQAfQCrjYgBg1jBJ1QuaMtkDmnx/n6G/W6e87eG9v/uvPP/4J/vrX7K/v
K7XwsOBbUNP5msX1RBa8xQrn5coZKiZhgxvjXdAksscNFDJsynvzucvdp3KzYmTri06i31khaqs6
5A4rJ3QykP+tmpmGM8u5GPbBVaTayOly+XGGoBYf2nMK7VjRgc+EaGNUu1yPDbxzBR30epKYy+aN
FQmbIddJN3Om3Q1npiyFqQI98Akjw+5AQZOBT5jqXNr8YXdTV90skAbpYZ8sGdjZcNWeR2/S+V11
1EZROABq0CdiZtg3ppWOHQPZZz9DSg9DdTX9+WSsfSiGdR0jKbEfkko6tFvTfWUK/FL7VixGdE+2
4tEoUzowKLThgfviIhieAEbCTY/VGf4mCCcIfpU1Z2ff2xdyPKbbSR4+HcN2nT1dX1H6Id2Ov7U/
Bn+B7+YLiN96ucivcPXsh66/f/vDj9lPvilXfrAES6JYp8bSjjmIujLVxA7UID0wL0u4jnrhXybh
3MGb3L+ixf0Y34R7IKQYsX+S1HRTTTHKlIgWAszkHn1zLQjBipOgDj1Tae0nN/hc3mSsBnItguL4
psc62LCskvGH11FVFU421lyslouNW8JRo5QIa/WojdJXuWcrBxMTxUYiCCmYHspV68E2oRILRsOa
OMwQVck8qIzdBMRh8AAcz6Eag9/Kbmg12bm3DGUo48M73EKQtbpN7ya7uc0d+oYpi6TZtqkoH9jn
M7M61Py8oKHFYSq7zTWco1fbyfo+3V7vf9SaTdvWb43KXr12k/fcZ+74bjLfpEcIEm9UG97paJfv
u9XNZGJciKF5/NcZXFtnBbloi9O1tzbZrLpcgtQzlZEEUnNTJ92Af/Wq8RquKBBLSiJfKXf85W5d
qcSIGlkJYE0/CVFEapVlXFTiaGbW/r2+3FJWcfByKksZG3DZSZcd7Ce77uQ3jhdTMZ4sZ2V292aF
E6dYhJqRoT1d6xvbJgc27eNypsfrkh4Cg3WNhQ1u1suP6WKMWlxOzKVDe49qEQ+tRTyM6MiI5xFc
1WwFfnSzu9lvHXf/IeydsGkFkfwWjeS3bOSDkUjYe/Ow3OF4QYRl/gGOuPk5lT37pj3juV8u757d
SWge2Ec7mMuWiewJjnqz8J0sbGAjsZv1YSpQJMM4krAcYOMLVVtaQuCFDuQpRRJtJWHfAlu3Ft3O
J8W/XqN2l/neanplal7a/kntn8J+TkvaJyMV5/HB+tZ6VAb8WqnkLG85TOHFNAk5nhA2vIvlYgpm
7mMm9/0v5F8d8uzwBVM0SoCB1brbMJHzdgEGt+Mthxl0gk0Fl7j1W4VfWjm4YyjvZEomNJDZidsD
vQCSMd4tcLB9dq/uITbKyj4OaBhaHdAqhHMLn6yXz4cz8iuOPnVJcSUsUJfCNA3AlzUhmrUAUEIw
RMciE6zd1tMgTpBhic6vATDv6+3n7WlklZgR4cIMB8BZJADOEIC3gUE9olCexGKHu7u7FO7p7eNy
t9jmiZdD8Phmt3EDc42xIyV6t1cLZ6oEO65sT6NNk3hrDdCK8e77+aS6x0bUxvMZLKEV/rIJKgsE
psvHx4k7iaalDVy0CRfVCnrDgfbKd1OeMD7S3HReBdg948lqtXmTJMT9jNLAhWh7p5H7idvldPeI
ScFDQD5bCCdPxf7Iody4O4YKftuIONhyr1OTETRv714SJZ4aILpLTRL1Sn7RXWMGj6SmVbybJOCt
hCAxYLqqgek8sNW+uSEtoLA2JtWllQlH3JCotiQzXeUySRyaxRoGWzrBBdUKLmzXu7Q8PqYhngy4
7zY3k03utCVMvVnIYr9antEE9LBAn5gNmnBPAZOCwBdSd99KufNwluDC2xzfTWZZR9Nm9gh01V2U
mHSLzuSeCy4Ah+eDPWvux1aogSdinh9a8Vxa08Yh7/oQwGJZaIlF//y8mI6XK2d5Dgo7Expo23/+
5dcffv7pQ3iddQGJ2WOAAyzhDq+/fh7Pl/OvP4+tzP3XVzT5+mv4zP7tVdYxe+0cZFnSlEGQy5Im
vuli7p1qG2wbaOkf0+3D8hZu/+tf/vbr17ASje6VK9irZAAyscSKsxPvt0gBu9tqM3CES/tl6Uds
L3qxJssFBRNiO3PDVhyW6VyrDXehOmUxipB1+Tj+tMaqXUBgzlXBeWeKREyjHlvZckWtsoplug8j
O56cBDYsVhyRVqmygMvdOC9HlR4ULkY7NI60iIaTL+LXwDilE6pFEr4CjJB+VaJ3amQoaUVO/HXK
5UPzTS/a0jhcVKkYHEbXchhAdNGwXOntTdfpZOugqQJIWoyjV7puKJrMyEvpvlDruFWiODD34oNg
Dh5v1f909BiYnWSQMZPNeGKvv8F4lF+AmglspEjiGkp3GznVgQJHvUT0a3Wf7fTbFmzDM+4haqN3
NsrgtNsbS1CUpE3MYJj7Ht/ObPh5sf052zjlo8RGigxYbarjRAE05gwavuSeowBSiNiYbwYOdO2r
3+YmaZfSbLzPY+y1fad97ynYx8kcy+I94eQE1QWSM3o0V6OAUTg+NqrhdiFb8FQDBaqcSw9knxkW
9SmnjqcUIyp7o0Pj7JvEVYdBRpImvSHZY1OQ4dnZ4z0Aa4DX119Nbpa77R9v5pPFx6/gM4Da6/Vy
DZ8HI92v3ACXq74XkzpglSQj3QZZ+/cK8/Rd0ZEgqnebtK/lsURtlm48CT7RDsCd8glrfNxp5fZp
0o65oNqq+gSLVIzp2T5t4STc7LbVlkrEyWt7T4EzJciRbAkaqQrCyg5nkzuWG0+wHIPHJipfYL5k
E+EjwpSMUqWGcYTPMwCUi1IJDAXvTsxgT8RpomNDvoNm4MtHeHTsKLTcqrv3bEvS08yQWdbszERw
Oz9Z9+crnhfbyef39vnLzlcETvoJfu/cU2aCc4r5UDaqqi6CA5pSsvciJXfRvISzplhvWOdoCvVJ
6G5fvfLa/ui/YOd/EQgR+C98djJueg+HisrF5TlFI9qmW7Bd5Ucihqn8IDpaQaCd05CR99erslAA
+EwjaNxD6DW+EksdtRrmYtwqoQacNZJ0yAng1TNj9yfs3i8W3f/t1+/1q2wzX9/Obv+6W/xgDUb2
47jj2XfwJ8Ylrti7V2ipP9jfev3V5mFChRxf0e+f3v9K1//5Vv797x9++m/9X//9bn5F3737/e2P
yf2v3yd3//ik0uXTX/7yv+HTh5/ewm/8qtRsqkdUhKQRvetQ7fGKihVu5TycJEyjvweP9YU7wptw
1m9T2O2S9rwjyq/6l/Vyvrzfpa7xtnBDcvAber+aeW6IW3vQ/IbggD7N0k8p7JDd4+rtBsvK30w3
m+z1bB5SsD6fyy4JLIIImaJ0ermqCpOfF+99cEsnNEzyzfF4HvsjnLAKQ0PkyzQ9H/4U1fTI6jqR
EJtTiNYtAHGsLUN1GCLbZJSBD4ARKFE0u7XPSbN/9+Ns8TGTHHpYp3fZd64oyz7Ke5Tyn0fAcUU1
YBJjocr7b7NvfvtmUo63AIAfsZCa0NOHPQ0AWJa9Gd8vcegMGe8W+SgH1w5DoxoiAeLfYeUWiE06
9wugEqVZmH6h77DWUIXUQxKwCi2k2cP7pMe9nvY1+72VMJbTR7KAhSL1Y1sIfy0dFjAZoslZiZTH
2otvgmeUUS1jFQxklLXwMmdO9RH6JVv038r2fOyw5mO/LRchJSneBXicfU5vv81WAcCb/dwOb8/y
9LNFNpHLG2oU1qmKfnFkFXfXxk7TOOcJleYyD43zvGCpR7+L5VsnQVlMS6bcoTMdpj9xMe9DGPKl
kmGmOSDSd/QfbP7xhw833/285W//4/tf3/+y/uGXv/yHUj99q8Dr7lbf/Wf6tJr+/I97cbO5ffyP
h2T7g9nKj9/9+O//eP/7n5w2jZ9pk9KgbogglGHj6lYsbZ0CEZ+ntk8skxMsky6cZicu1I7gSPAp
/Hq4/9lkvnGbFapbMQpv7qvQM3hAwN7OQYxmSK6jmpfsYrAKJTYeJrHb+U0FIvTtwxq2s6M+RFZr
1sZwi5Ub42D4g8Y0Fm4nLG76wsRWZWlOYZVqeZPnb7/c2Q4Ev8O+3PMrpPiS3dC4BycUNMq34ZKc
ZvSrhgkDsOXkIk4wk4mIxTGKGuqVbCOvTXXKnCdipBSJae61p4pEh+UoL/NkCELHf3kgT//xnx/N
4nn5Z/3j3//xJ/PXj3fv3/3lp88fcVainP3jffL/sXetzWkjzfqv8MVOnXdfNnPR6LJVrj2x41s2
cRIncRKfOrUlQIBikAgSttlff7pHAmMYgZBGXHLeqsTmZiSNprufvj193rhlr63ru4eH0eePH07Y
4BLDh9fe2eP7duD/uLn/6YWD9vfbT93H+8Hby/OvrcH1QwcPnRFeLBJlVer7TihnQKuHtWJ1mlNZ
BmVGVDPahQzu1LjjlN6Gq+vV1dy2yFFoW1qlYAnoMcs5Ks8mgA4G0nQv038mdfLNjV+VhQju3Z7f
yuIykoySnPyqEv53lnzXS0i3aW8zeXCUkTrA159k9o812pJy5RKY0L9JZooPnpNuDXp/JsxQfw9H
wdHYiw6xB0xKC1ztv2AjKHrTBOEG04IXnub2hsNok8FcpgvxbOoKDmWJDFG2wOZsc03D2FwnnKEk
oyyUFksWZfL7pAp9xlnPo9sFKF1GrZIBg7JngN142wsb81xFdtuxOr+B5v8ttTi/vXz52wEzO3FG
NczX5oh0r4/ZP+L6Ixs0r98+/hPdhA3W71+OvpKPYMGOH68fhiIwu3+9U1kUB+ciG9VL/SjyhgHs
kT+QVRbAQeu/d1EPODbXFH9M8tZqwmRbElFtcfPDKRRAdqpyS4AIMq6aVWBJKXNqwrIq3GDtMIQb
29C8EygReW3hakaMxROfvgKfbvf8TjfpxUtPf2vW8l+LE+po+VKkaWwtg7cbe6k2utSSK3Hra73s
MxOOl8c6iN2dHy8MRcNh9tXI1K+2Xmk43uF7Y+9P+IEtVNb+Lx6GvPXmB7O/Gdbny+4BO/viB93X
Xz/xE/G63fx4c3L9z4Px5p316eup0tob+RoX14C6mRUtvEaZbdjaJLuYrWPUMUpfb06M89ykZH/J
IuvtZBqopfFUF4+SRJI4szTWq011u6KNlAHKN/X4O3038NvYH6B0MSbvLjQoyDa0cn5O0SNTk2q5
crfh/T4IOs82i4Gjao2yV5b1zYxrq9tUd0/jHhQ6lZCSZda0MCjDtpkqnmqLtNdElSamTtVprplp
kTMD2xKlqaQ45DXDYJXG1ZXHJQQnmNj7b6aHw1aXfDzpGebPnxeP7SC4I/a4hdZ6eNe98dmb+9fm
67ejLx84eXeZYaZNQrTX26a11F2vN/CGiioYxwR97WzjsLnGUK+hDyQoge/OKCApVbS6PG+Vq8MV
6Y2KmIc5vyr5lezOqzD+3PWGGQ3pjmR53Kc6SWufqghNbu6N1jplB7Zx8Oq4Gv8CEJ/gW4b8gjgV
RtdURDgZ51GoqidbqykpzCxsGLdMfSnB1Q3Mz1uU8zYkc76tBF4QyvzdDPbBLJ4qhce4s6XKV85s
R3d+X7ldOPJKlHAA464f1XFqM+wRMOrpBB2khJcVt4ox2VimQdda1tV6PK+nvaYeR/bzSnXXauUh
0HPh2KqNAzD3YdFsi+o9z8paL/LQP1k5yqIiNECTp6hsWl7PHR/xRQJl00aeNmFzoU9B0wWqGCyW
ZFvSWw7ZYn3esd8Ra0CfV8bBmaHCPW+IHfTfX8e3t+MfttkPGne94OL4fePmNIjcu5+3ze+R2/gZ
fXrTb2a5a9zZCyEQRVr9MzJ/OPip4WHjQCaDqW2bWKenyaXsu3G331P1zJvrx7XL0IMIxkQRaBf1
8H9cj4duEMmjyGFQM+il5cNO62VUTSBVg3AqrttQHtmycLrBRipXso7PqF4wvSJEwPmGwnLqEY9I
iyT2X7F+Ne7+ump37r+886IL7+Yb9c4Ds83ftkdBfGENjO8/3nrv3dHJK/A0MyNhrLIqYzUdlYUh
at3hz1nfde6tVBaSFGZ9MtlLXU2BQ8xyzRe0n58cTu/2g84zw5M8Sqj1OgjmsdY7HcwTxX4vmfmN
BZwKNn7QgPiAGnb5CuyJb5FZRcII8vtZxTTuzFDYnLr3UTFMjdbMIgqw4AlEPWVIWCdLC1XTiHJn
4/EE3bMMMNqwnk+SKzmWbnuD1eBHRam9mWPwChOnqrRlkvsDDWOVT/6lbC3qARAIYuj6GqzvR83Z
9qU+0oKiJ7YI0bhtUpyeDY8Z39feAn1sQ5RXmohmxrYje7OV+RiZTD6+ZFYLBvsMhxGqzXTN4Fvp
F6mHfVADW2PNyms/lwEMhSMvOJwZZbrctOi+o/LRbKtY7dGOiCNcYH+slC9mVbWN1ONijCLEhUt8
eJy1nqbn3SgDFDMk5SVEDxD3+g2vBQ52Jz30lKdQmeEwqBz7pis6nnSt16X9ABFxA9AvaiSEG9bc
z+7T1gEzs7ZrEXMgjW9rCHcsvMeuvnSwdNrclzoSCblGRtLBtLbmUmUW4Rv6S2/g/twluB5PfLbL
HMtvwFilnErLCnBsgbEeZy83ni7QIkq1vM+x2+FqPIJ7BVc8DJUDGS1mSJ783bLLlmyz5kJ/3G1W
CaY6cMmIa4c4NWHoggePeATU/gqQYOKM9DWz5qUCucSmpALrnU7dVNzTOs6qdgw9hnTOy/Zhnw9x
YQElo3gfFbG+h9Inlx8CGcePHC1kI9q+JARye79HD20sycfdnSiMZIsDJH9wxxE45+ipJ1+mcNRZ
TQhSAfXJTKou0bYeUo23FAyT1N5bUtopBZguUlqrIC5INlSiSzBiWA9Hcc+/R9bWprSF8DwBBxjX
UYY1BdJha3NTZ0uEcLHl0xNUecpQSyE8vQY0yaKQsDGfY9B9Jj/QZu5L4fscyk3tWNCaIYxdsK6F
iETWgqJRUSyKkfctFRcYVi5OPpoHdOBqqKISzAQblCuyT3d4IsKNF7Pre9d8eIiCsf04brwFcYM/
bHx0e+Q8bpOz26/W6fubnz878MZF4GbIYT4eBFqdMea5Gg9oUV08bWlMZHTiwSal2yAU2Q4jtbC2
1VzeKU83DNmyABvmEP9An+clfuCAN2ANPNP494eLqx/Nfu+h9Vp0G+c349ZJ5/Gvzw/3TXY1dr8d
kw+do6NVmA3nE9m5SLnorzRCJMtw5aKRoHnSJUw9DAsTj3aZ1c4Ofg3cIYiFp0w1c9C+NcELSOOz
FDPIeuz1B7JiVN5FfIA8EEdTUZTA7HJGEI/HF4kYLnYvgvdk23llsGCN5jIdoeUSmEkKmLUnqH2C
UFqtpRg3auaKutGn7/3w5fOOLQ7DAUUWKWOEMtRmchGoQ5RQEJkGma1dqfW9lu9KgLWk2se0TMBY
9P+hRs1SqiuogXZfxKmxYmzFLgsht2uU5CoDUKkobAsIwlh2A8xXKsvZmczZ552uipyIAmhoST4u
cw4LpRQwqM10+USTF+vp8tSbA8B3VOEmyfHJJt0mNE9CqmpobtCcqWW1TR3E4A6H4Z2vnhFJkUaA
bB34z1mw57BfSvuLQW8EKA+nZsfjATx3BwOQjwRpTphRkjGLgRdHTXfgvZhM3Vb3iCy/EJkSlyFg
Il6s8BtsEyN8wt5n2VfSVDtiKxD5XSIOSuPDV/Bt7Yj9XHYJeH67bkAzzx9RLDfJ/t8DJ+clfHt3
+vni/esduwTAMTbbc1jNVTqHG2Yha7Q8XD0tCM8OVVsYImTavTM4h4Ebd+sjtIl9P8DUvdJLE0Iy
RWzt2pkwtndwQbd41/mKzthql51scdkZs7a47NTZ4pXnmt+ZDalllziWYGA4Ws2hn7cZneap9sBY
Kjwb9RTFHjip3DCJ7WzShYn9vheO1K6ciZ2RZK/hsNtoHjAzK4ZjmZW5qaO4bSudVBNL/wtsp7ne
Arh3zTuwRgg9Wsk29oNmb9TC0HnwtKUX26KYIWq2yTfkEXxO95cSvTFONwtAJ7u96Alzi2kNo4RB
PVUTHri7D0ub/ijDvSOcsk6+9Oqb3iBecPJfzjjrXU+yqh4wJgiBn+iAwy+Zpn/ugxsGz+2DM4Yy
cQj7NIajYnBgoPDDOc71MMUGUwSl9gW4UpYlrF9CTWZOkHVKmdnRsKcuYHewxjnP/OL5VqunhZHl
XNgaEMVg4rBM4095+xZfP5SPzsLhEU8evoqPyGEfbuxnDEXJZPSg5/rBguBzYlnc3mtL+HYcdm7O
u4Pm+Bj/dy/PH+8b/WbnO3PixtebUevkmLjnZ+TyojVonD90vve/dG6/ih8Ndt27PTmmTdYb3Y6P
T75/u+pd/fjYaZ3bnebFm/vbi5sft5+Ouw3/uNfoX93fnt/cXV5ckWZffv6+9e36ofUNP9/twjHw
2FGDieD226V8Df6ue3l21fvOb8bwPZfw/eHl6Vl0y5yx++06bHwi9N3ny87teQ/+5oq89V/9fPuQ
vVUBsOn2/eb6u5QzhjnGYDXZhvlGLbASo0Bu52wwbBpoHLTjGVX9s20bILNUw8WCdPa84d99d6BQ
q9ThNcbNCvOd8RCbyWXWU11XhoOj+ZaD6orN9zysLkPjC2ONWmFzhONkf0+Gpf7Xqtg3oTjN0LF0
VYrUI+y+yRAXg2Oqpmj2TnK5GcR47kFh8g78FUqpU40pTpYXNStIoy+LnAJA2W7P/ycbs1EnIT4q
s6rPvceF9VUgfJPWHCp0q8Fg1FtWnSDWdmxyoONU76EZB5em6dU7TTU2tvJOulPuqEdUBXHSD5Xu
gHrPDTojrI51OyBAsPAALf17xXLbhl2zrTIZ4xm0Kp10v51GQ+ZKww9nxoMccCQkgX/Tvgd4BRNi
hwnTF1sg+koqySkrJR8bPVVaqtRzs6tapAxNS2uAxa2tHdnUGRfLo9kcE9kZ9mVTgNtQ4lSfdwgC
6j/pee7wq5x5+77xI2NYDU6TyDmRtqgNDMKg6c3W6XuBVM6t+kB+VKrrGUb3oYfjsdM3meK2WiKZ
wrBdpPXcvm2qduGAkDyhkxy1CwanzKoALsdukgHrANzB6GJbUqmmTaHKimABW5DRUv6y6g6p822s
Zhg7u9sVm93ERjKnGqgCaBQjvzjxfpEOi1A4cJHqlnmEPx0Z0ZFtEojQlNfJwCsVujzSqJe0AkVd
z4tV9Femjd1S1VShyxalvtcPh2OMHUbRSM1ibwqLIQdiObOYc5E54ZIy1tnkHc1HOkjXGr4A91ZJ
xmLWTLZRye55Hbepw5zRGmyE7ZqznSvAW2nBBFbfOeamLZjSgMlqTVKNjh71Yn+QZM3mN47FwTTo
qtSdtPwHYT0aNQbDMA6boXrEuQMblpPSemSqRmSWRc0aiqxWhi6jMFIpDmaznKQ4OYSw7Y4e64m6
UHPFAdTh1q5rKZUyNylm2TTvtSe5n9t1izxjnMEJ5PKa2XriHrZGPaxQd5/GSoGow37B6b699Gaq
az2wy9tc/4xWS71K2E2nZtliK1ZiYVcnhgLzvGlCiU25Lg+Y5QdB2ITLSXs34ZWl7JY4poKKXPCf
6RAKJRIzjZxtCEwnbwo3nTKXrb5FLEvxiFzxsZJrjBnUaehbbT1syfm9zpkUKJFCuEvBLgti56pn
V8loGw4Il11HsgNE9mr2TzSGBbTA6qv5EzRi34/Rm5g1l0ef5MsgXfgO/MLVgV/tMNnf8LAxRgob
+D/5m0PMVrd9r9eiR1feg/z0sI+gDl7HZ8MQn+FI86ePsqPDodvyw84wHA3oUdsDf9E7lKVEjfCR
HYXBYeT14NsnH/Dd5EDu0HPp0TtATwgjlx/ugJ3glXT9Jl5KwoSJV+DJs49ihGDyA16Av5KX49EQ
n8Uh/uj6Efwa4P05nFzvBcBUL/BacgT1QgwAmxPzMd6WtiXqMgZ0Pk1n/eOvMKZNz78HERwO3XFj
1G5n8cSZsGGXV8uw6g0Je2ZIrIkhscoaEidX1xRbysSbyv3v8GOR14fkDFOUOoRhmboOUb8HldyP
so5kEbNyo5BUUS2RCNu0cg7VWM8UKgnBDRAAwyynsZ+5L+k0yCUU0ZQaGG7SL/FPJZaLsr+AoZll
muCn2iWtIYZ70hhXGu9aNuLDlObeqH6PPfkyKldnxiFaGZAxOJh0m258mcDF2bZW5lOtjJD+5H8e
um7s3XvD/51jtF9fOeMkViaMMg5c33/0WifJbpgfPSJ5EcFvw+qVenYPgMlzJrtyYc+nYcghSL8c
NjEPQuWEIrIJ76agACj2v2BIW2lrgrRxOJgujirEg55XKcdkdifjLnCbWfU1hpwEUViw4TbU2y42
mQTTsFw98jpYOIVV9fBWpGbDQBdBFNh1+XmoXFD+yX2Vmek5Yd/0DqojxtWv8+e02+5cL9h3zN+b
pqlLvc3Nml4YrDLReVmzZSwmtC9/EE5WQFXT6ji1VbNGKzNgc2KfeBWpy5m8njExEt5PAjRHj0m+
wQ8Go3iS7Ej87+dvyKzIIzwAJ2/kHb340PPcyEv/An6N4fTRJ7+8+h1TGIdBGPvt8esw8I7oIbi3
D6+S86Hz60cEFjmadkVeIWz2hhJ6w7eVw2fzhSfRwI2b3dNMyg/wvXNyW6i1MNxrmYXEWIKsv1da
eoPCcnJNizlfYDj0AGB7QWIKBu4w81IJAm6mTymkeEMGjQF0JDSYU+76FejHkcEPukkksiT5sA4i
5zYIBy/lqGZm65XKzKLoAhQJUs474Yrtqrg+i0sfUR8KSrQebtnGKI6z4BD6OpYmGVnVhpBXaCyB
PY+O9l0ayho4PHZ030Hb6WGCN7MwzmR5Wy/LeexSLy+46uA4FHTVlwcp1OX1CPnFjqsFpZ9i1QxC
K4VcGSo3U8dyweTM7RLGLWH3f9Lq2Lilzj9iHT3ZJ7dCz30H70IQZ2tIU6laZyCnhIvJW2niI4Wg
k4IY79FNxqSH/ZdqjHj29EdUQZ8qGDPEHnlXem47pUmpdJE0rXqWhlSJcpDGn/Lxl+u3gPllBzCO
0VWmbnBYlUNEVeZpqm/ShckomMUqVlYenaQXW082YL0VqjUNTuq0nGqwtDpcbuedWFsGN6eu9HRo
s3qpcQ632IaNya48oRxpmguAg4wh7ZJhmxPrcDKtPbOFIb8OkXFigHnRAuaAA8HZWqZV1EjKlUsb
9VsjHK1az9pJJsWBLLQKXC0DAuqKAAcx1Y7gqXUqUU3CZGOFXswbeajnVyWliV4oNyNR0USkcjvK
NrqbtIzQa+0bUnYL2Q77RZDfGlWIGFeuzjWct73qBhKakzZ2D8DXGitPqYURbkHEBgu3iqSFcrrf
C0ppseKUMtDjRWCPGmSpiSBqplP1EQzKtEK3ZKYqKNUQzG7m+Cs4NLd2wEd7MtPzLtokoq/fQ8OO
AIMbmwONTyZuSWCC12yy8pzoH2J+r8lMpzucPY/pa/UH14/rDQ/DafVGOApa7lBZPo6HhweE8CJ1
dzuEW/PNRv5Prefu1HoKRovUuGXsuclWm8sl2mSl8DbCoWJaYFIiYtE83hzfor+QEX/NN8+MZ7px
La/tggTAqTTrLb8tMwRxPWGhyUozC4eVWa1ZU5FGgMBKIALMKhshJrgEvMwx83gnecIRBra9ifXO
5JdB/rmkmP9qsBt+5CtZ47kR3CgYeu369ANqtlyWs8eP58s/LamOZSjTXL8CnHfr0nVX98dg+UUu
f4PrhmzL43xmLg5RvrU4hEML7E3ttjVdw2dOXFp8uYJdnS+voV8wUpmqGQeVOaTAYmS0kKWNY9nD
dpnBa8LWt/proOmkKfxZmxuIVj15ed6dl6jZZOvcBX2+oNrAH/oBzooCXy7xCdNPJX6hfDbpYX8+
d/Lf8PZcJTR5XvU8aVuf+cpFxh0w4flmRvESYVbsf1aHWm1AUBuDm+riLJnD0gYcJQXUEswINlRY
+iRzobkzkVHJgrAYR5KWNJfTWBS6TGuR0/i2+jyoIcCaEFr1MqhWwLKL3e9iBp6rA2F2jecqCMzj
NyD3kzwa9jZ59S7gKXXlt1MzGNMs6dlRTCnzi3eeMUdSgReTt8LW0LC4PqU/iv2eH/tepLg+x+Y5
x9ZyLZFpSoW1F2Y3X78NX6NmMtHwywftMk6MmiCsam8tdZjBTiMI8B4H3tDHXgy3J0NBh0mA6e/h
KDgae9FhMxocPf0JGPjp6U34+X4e5T4DuD1TzHkoDd6R/LkwyM/GlShyG/4TM9xmzJDYVOixFXOb
FjmEZowGbtwAuwLrTzZlAksbSWMBfm6amZjqhDxkStPDyCTGwtbENnhCaUGz0IH1G2Ld/5S9BFST
3wL4gZejNMGc4cLqDGWo2ZiEyEnyx3WSeTBhm5uCOOq+Zgdb9zZ92dQiGz8ms4Wxb9YFXnqReEby
54uqrA3sQ6fE2sx186S88PUQ1KU6rWiBrNEC0KvkrnMcsQ0ItmYese36vYw8InE2vmi8kFZc4QBh
rTra62Wj1whm4djGr9fg9n+A154BL1rISV8dGcvsf8S9aazpO34pvTWJbZBNH5Nxy9lfq4lg1jS6
LuypYzeArXeG5NtuM4YVKGtMl323qgPA4typCurhqBmZmInqCTvrTLqw2fV7Lbm4Krfbcmrc3viu
otxxdiVDdSi7s9NuBqwJB6QMNznh3aeLKSxu1Rijxj6f/rqh5denb08/n5b3dUyqOzfM1PgSnBpK
qo2gqnswHTlY0NjC6nJzTRuo6abyNT25i9NXr8u7cmyXXLkgXLRJet22WOm5IYsktdaMOWlZfxyQ
UnFqFtch/TN4+PSH8GSFI3GYGRx7noY9YPanWJbX4TecgPE+kZxUNnkUNiBZ+MWnvxz8h6yDZ1lk
VVRg2NZcs+xGx+0ghTL66gBZ2JfDB9IIHY4zze54QUZKsZ6z9PWvs/fvj19dlwYQhfT7zlhgatt7
DSCIQ7Z129k2MHSSxFyCoQ2D7ItBiqsNJRJjzYi2rr3B2Jp1Cp9OX12fXJTeksaaGr9MEplRYm3h
GjlZU81rWlpi2dpDj2m9y+qBuxZlNUaZWXnRUzIzpD4KIrftZVN3WEQgkUOO0yHL0yZeo+4OBtFL
8n/sXVtz4zaW/ivaByeTnWFC3MFU+SHpJFPZzWym0jNV+8q2aItpSdTq4tj/fnEAypZFgAJJgJR3
p5Jq27IsksDBOd93roiYtJ+3i69bhCiRQ5xIFCcTwKpFGdXhqFBA5uTq1jTZlHLPYU7/cvVek6vX
rzK/C7E3XxMYFb1b5J8LGNC3XBbrhyLZqteq1dpRJylgFjhF8RXE2loSUA8YqssBqvXy2d4rVXqO
w+mUYuzI4ZlRwkYAaPUr3l7OLJ2xNIvmEPKTIEu1MBKew+Sj5Tr7GEY3oS5P854vDgi3cGbKoGJE
xDGy56n+XU+Tpcu37rknQiVnzot7iJvX9AK4d/KphItX9/f2wavQMLVPxoh3Oq49D5hT3x7YE1LW
Jk+VfdiiN2ZtXJFB9T/vk7btcnLXcxKtPm42UNe2aoE1KJCFYph76ww5MRNedV50qN2r1kXjtK4L
BZ+UulW/zpUMwLeNt1TbszI52xLqzjV4wGP0SjomXg2fqQfo9BATGFrPvOZp0nDqNdimWaZzqz3z
O9X0qhRR1mMLfECre+d55quyaXAw1u4ugw6yrIf2GBqoQiLQHrw12+X6MV+Wc53dru7A3qsKYeAK
jIRWNoOg3omSf+11claq9s1/f/z4zdtyNfWDOhE//nxvOpcD+iuKV0K3UlhXcTogsms9EhbI3n8o
bPixHteUmk/+Sv+JZofqi+aYO/jt37/7+PHHH76GS25sURaiJ/+xseUHcTS6zCLU0coO8C1CWjfr
cbGhLj6v+umhOEKfUP2DtVUl8FY6/sOrT84Cm4UGJzUGoq1ZJWQsiHT8h/eLE/jhIHhGm3DrB2QQ
JfeakUA7QeUTprws15+dg6yybkY4RNIe7ShYAa5J/PqvBxDmJsKSeIb7APkIR4lIOfpuE8KH6NA3
fnr1rX0aXQpNDLNuDxcmxQhxKqPC2M1mWeyTfHu3gOb6kNgPuZ3Wchk9DC88nQod6h0Y3D3few4k
khE8mr7GfvmhoSUNC0mjcIRWbgBBRmWCe7CTk4Fp6sqLfGv3M2dUYDyjKQ50hbrjUZPocsFmfvni
/UlOcqfE9/PRZat4t6scsliuyvltvlZ/vP1F2WdDb/I/l/Mb8sPry3+GWkf1yqs1V9z+mB+W6qyv
HzUzUXwkb/IRIqBTA+9j+y43tHEVbr7+5ZPR20ptI0eTuHSSg5TibgcpRBocyqQYztBeo+PU3p2B
Q9zv6i0A6PEIVoB2xTdBNpbQYaZnc9gtdntQx4fNXH3ZmblCW4c+hnwuwsaDHFakQZUqlXj0tcZc
kOsA0ikJeph1ZIum9Ot8V+7epLvQGfWcrE7DJ61lmAZCVTq/o1WwdcBD0NbM7ctu8xaToxUkm3Ey
xEHvKCbebCulBHVcxfZo6uNYR5oQag+JXzF7NOYr+LuwRsmXEewRk5hehbpCSAjPg/Xr3//x86//
9bEhdieRKTOn5JiBr9hoeacOgKIU5cNib5Lpkr3agupgMON9uSx0KOrlTTqG9Y/6LfunvUVsEfNV
BTYnxZh3SySkfpPgHjxw2yVKtoBR2FNA5ayXm9Jth5jduYKFZ7e5GOqrI2wOlFNMGB0BYoE3p92l
A6ktnE6owAmW14G4BJpADihOxUAEZMizQjdG91jxAYXpVzjoSbYlTxvDBHltg9wgI1rlCEaZ447e
u0CS5Jca3N17B71gP92X63xpD+2nSF18LNpkx4AZu47MgoZFdeeOQpp7/c7bL01KgKUc809QjPkX
qMHU/3z1FXQl+wB/5HDIIQ5MoFc46Ez8rLjGJA2doRurWMiUzGiGQkZmsB08SKoQ0nWwdprSkDpW
2gcFqQNH+/jgWrPolP04z4wAckUgwNbHvWu92IVJoULIGZZ4JFxkbwiHodkUnTSUe+2E1ljO/NPd
PIaLFYmBwQSwV/titUmAaLUxLisxFAwHZDyv96VOs0FMT5aUQAzTnq4DBRMxdSgH20M5XOHzUK47
+4hgCnNIR/VidJZORDLJRnNbdLw9TKFWNguYJgizjewJpZDem6JrXQkKZpOz4B6b2pABJLV1pFCf
RrP0KvQIzt5HkDCB7yKYMcQjVIic4BgtD8dWDScT4S+2O6NUBvM3mIkdVocDzzynkfcmIbt9bp+L
zDJIxQh0CrSk6VFE6yopntSm7Bwjz7IU0t/ElJ60KCnatRZ2lMZJQWcivQ4PHpYkJN0kjkTAtB/d
9F1oSwITTGSnuAv66WbsTg5U07VEGKAOjN6NOj/9P4ZqV5oPXYe76QwOuJ1N5o1A3QC+fGmmX3wJ
RSfPG/UzkOLyzuj3Jxhy97nc6/OerIv97i7fFPWMJp3I9/Ixq+qxLOBTHvPloejXb39+WK2ev979
cQ+f8009Caq+3YZzC4NziwjMJlWyV6LsgtVRHudugdjp7//52y+3TreQQd8wB4HzSRDOxWZUrE8+
QuhsRPVPk8GqLQuXfPL2CjWBxYRHxFx2uAW0Gb03h1kUyvN+bKT+BsoVF/ljcaxS3G1y9WIUk0mC
xYeK7bbaJsUjJEVti3z+nJjURnVxhc/LnR6roo6tAe27Yvuo92+3qdbzcv2QQA6cLW8LA2vH4znV
qaTB3QNQ5Hh5sIC8OGVsOJh04EiKJrXdWIjrcLJyNoLlrF/xdg5AYXqfTOPfTduU5HUtfnc1UsGE
cfATineiKMX3N+KHoQrRfEoj1qXrfBANyVipnbHCnGY26bmTkVDJvFiX0EHDIx6dMu7Zmjz++WcB
HDUnpe3bUttC4z1oKl4wwALjtIvKtz70SRxXmdzDDmypNrPVYZ98qubnHUsgtzyZyTQL5nA0Xe/t
DYGgkkygSfTqxYYfiFPyXrDhTzfsw2CVpz/FqvJSNG22OLsSVyUfWQOwlNO4sU2jjF3Ijw6qG7ZR
YOIM4krfuKBu5NDNM2dre0+w1wwZ5kNvjiEGa1gFvO2M97hWX5bCvUaQsVi+Nq/TyuLjddxjyf3x
i5WmZXzGMswGX/f45G9f1rkxuunjfXVYO3qnSZhxILrfQcf+NC+z2HXbM0eFE8/QjKPwN3Ni3teV
9hvUdt2aHaZABvOquIl2IvoswcXI05kwNPtfcoWdeTuAZEN8Bu2mA+H0KtQAzugQ+Ttna45aGPXI
fs16WSffUA32dAsBfSemK601ko2JOmsogqC1K6FmRwUKgwbT6BroxeVvWwwOHddCWUElXw8AyoE3
lOt8+9ySQ4EFzfqZQB/To0cH5eVSO0535WpjH0CdSaR43HWYYczQCPq/bVw0FZDZ0v0mwkaXqD1B
kmW0i4budom6kyfzynxgPXmsXhzflfGbJrzJz1vCmFnCAstei9X3qoYrzMgFzzsbSsJsx/qtWWVg
0Im6G4I56bUGATMY2qyS7yAzr7qZNy08bRyOomxaYJddB9WRNI65rV8yrY0fS2hyoNiokVqr+UNE
Sp3jG8X8vR6POvsp3z2v7+xoCMa1ZyGRH7cjPxiHgGlcE7cu2ggOI8izhqkr8luVux2EXwHynbmI
CYVG5HLCw4cFvYrDR7Ec6Np5dZWvCphn48a1hCPoZxTXGsEpA4vkiglD2arIfG+iRxr/pRtQmh8R
KqbV/GhqQImt6UqMhcOT2JGuROV1MAuRhfepvj2CDQcr4VA87Rey6kgtL88uZQrKZygilNdwsLY8
83yfAyI0aae38OO3l1NO/7KsHsp7M1XgC/X9LXRG/zcduCpXDydRq+LLxpQESAL0Czj0dqKY9CL9
tFb/LSWe+URnd2AW6Y3p1Kk9+uVErcODLUVcodeZXx/cAFjJXv1AZ7SPLHc7RdaxW3zG0STwgegA
N+Y9RmspPHTXGCGS7NTqIkuQCakviq9hcSV+UDEuR9Bn7w2KLlf5Q2FS3erYs7U1BaeeMxW9obuw
+wjVddKJYQxL2RDu4O47t6+gSsCKITGd8VSGUbMBXQnnuvmiJ8FMcOtVwPCkPT11fYTbxQDD6olf
n9y+Jtd1fOypeIQp1hXhfs7ZZos7lRHSj/J0NFrzYv1cj2C1qgkm0IxkLBj12h0+af3pHF5GM+1R
iOF/LNd6+bV+tHggudp0NGTTbeCeORIxGM3CY1t3vAQhSfUsj0nVsAJBaHpSTbMeS68xycMKvMf5
blfoOZCJS4hpqh5WYBIYkdQ4xB2QEurjqIwJ7e2yxU13iHfFmH767udfNGF6VcpuziRhvnomAyF4
a1GZHnynJx5bWzrAfONUsp6C+3ptmwjbubBxP5IZp5Gok6nIeBuPSWpJSFywCiHCZn4d1eKDbMdp
EIrd8pDA2t7rKhVQaYjjKtRqAyuw05kIu8MGpjtYk1GgYbXk0X2Fte5rGm9KsVoMMVr2H+kFFfRh
NATSUWslJYFE4JjQUxcqm+6nbQCUKTHmJBxIWRUJzL3eL+wAJaWAu+m18aUJoq3K3GRxNO4fi3Jf
LEtdj2SyjBaFMohbez4tyvqFGLWQ61JEkPHNuU2RHDohcV//uXWg3AWl5X7OpuIScDu9Unm7njjd
EqD1yEH9F5LpBLbN02ekHbcspGnL7NMIhPonQ0FYZ3L3fGeHy5gKmP8XRuXo5JL28lKmGCaPlS59
KvNQ0Lsr2g43Uqq9H1U4MWHJp+K+2haHtQaR8zJXuDpZ5fu7BUSzc6iiViuTHFernqVstTW6CCMi
gbhM/THjgcGDEbwENREEtEAjQoTxNYDgwUl6mVZd77sOepbz23KeNlyTShTFSBfHDQcPZHPIgdHT
y9dFzYemERL0Glr+pRiumGO7Xxgps8rj5Yu3KAJHDrlAIvp2sKYYCJxGvyxpXpankQ46dhx0Lnn0
56SWU5b1iT6cuQtqRa+DBqfa3u4rJjNB0Sha1NRMAnSTnA9+SjMtMJlXa4dbbYb9hpt1stuvldk6
v67e05a6J4x0nvV0+BAext7SEHLjvEK9PJh2tQMJDlHY7vdhw40a1ayrREn9CnSpwjL6HdYSLMpm
nLXrM95Pq7+KSV3R/7Tb3uuTr6lsF6H6QreDudVtoBs+TjhP1PMBOjuTwj+Eea1RhKC+UPQ+tuGu
Al/WvmgkH0JJPIudfQ6V6fWfqW9f/1D9YKMyXxgd+YNSkXbfxw2WFu8HDEp9YvIGfwDnx8uXTA9P
/fBSHW/xhAiuWyMN0innZFN9+Z9Duf3sGmSNROo5CoZ3sWAug8mAf3pFiXg3DgbO2j48jKdEqdAe
S97N0JlRLW2GTp3hGScj2JMLRU1gT+gF+MaDAijmFfPnE4wL5l4F1/yyZqqXxFBygBjHbiHYXlcM
fS2vUKW/keILlhULeZ2W1fYQ5rWmZUWU4zDISte2KFR5HLm7KEFBPSeKuK7sfdnSi0khVyMDLWad
UBnatliXsOHgMk1R09AXb93Ht/2OTEK/EiJEaUy1fqFLAQS0KZexLdzbaKnVwmGiRILHQTfYMYyM
eKZy8UgRtgua38BK86Zj2mH+qTrsv/20zNefj3mE9RsakFGnEaZcXp+a0PkNR3G4YCooZWMe05a2
YZD2gtGFOtjJLNebNbUYK07T9yEILfbCr58K71Ak0fSiMZhQiFh4pezpVLKrKsxnQvJhzMiUS5sU
XxuwROCgzUhkUEvszRLUwqd4Qntcl7HRbAxA4vSsYhg730fhOfuqwpGz9ValTEDSTkTLf6eWQJ0C
xcDd9dIog0rWPg88zhgxgmJjs7bQGBa4H/9tkYbK2moXEd2zKfSzDqk3oKgTv7mrqs9lcarl94ty
Owe3xv45Mb+FiqX8CXxA7pwEhTcQDLoedm0NZj6Yly0tsiCAItA1Ak/iBJ6X0Ca4CrlgJBgjrsvL
fDmx5IrSpWzgxtWCctiXS7VkWqUoNbd9vj+s9ULdzgvAJvXWNrSZstSMj6Qy7HTOTP+JwqKII70X
Gk/xyMuujtNPVWWWvVEuNROIR4AObQLYJPMIZ5miXGkwdlB3yD/sF+c2Fl6r57drm1fOb++r6p+7
RvgngYnH2POO2mtcBt4NTSFmPMv4Vd2NkHHBrhXqcmgCm06rpiSikx6Yowc9Hfcu2sg9xNf4FcQa
7N010qujo71Ckad09F5dTN0XwDGyLB6LZbJWhxx+NMEhuAf46bhM1gAdNFnl0Ryox1mOJ05UaOE+
L+7zw9IYZNdkSUjhhDLvMehVO7sK7+a+7GOvmx14NQQewSwPE5G31e56mpA96YdK6plIOjaud6L6
WkW93LFRUZewfgYos5eryFoMs8jX890i/1wkdwt1w8X6QVE19Vq1Uhph55ysyXo7xE4y3dRdFMce
FjoxwaQI6OrDFpqIKVWos4e5aKbcKyiCMIoD2e1DXlDKdVrDpBBEcDmy2naratOOZlIGk7IrAsbS
2/8xxt1gPChIdxn+vAAfg4Nq+GNUwkF3ImwdhoWgSg0jjsK4PjbgPNo+KtOmh3Q4htpTrvBFn9Cx
L76oc+RbfLcpR7reNgqFsrchlDPaR+lesDq6Ns/aqwdml6YiuPDVcjavClNInN/f68xukDLrUgus
Njy4j2NfvYiYunahiFEjYT8TUOWWpsN4kdJ9iYJnG93RUx94+EYPBvaTv8QMkWq4NzDKULBVcR82
BL3lCY1jo5lDpyijlGXBvEnKHN4dFFJenZZKBNoFxQcJDxJcjneXUGWV4S43GQ2UhwfjnCI8gilw
WQKJfWvJ+BSt7vuw0AsWQ3fpUJDydQLTUWBt2XpMzIgMFBjZg9Q95styDvDWigwEaI50YsR04iOx
N+yG+sM+pjWUXWlVaIzxa9G8rfdJhbwGvduudimJAFxODkHdrqfpYUaQXZkFxae/54953QwDrryq
tgo+ru8qcBtYIatCkCSCg/JlKV4wpK5vSDa5q58IpdAniMXBMNzRmojDAnhcUvQzTCatVP/2/mBV
hpjDFDwvkiK8lK/xS+nNf1Sif9glq2IF/kfnNFmMUOpZZCt6GaHjUYAl0zfloE+SUD0hqU1hCE+F
8VqNWm13Wluc8lezPWaU6Dnx1wMUasVxe+xNZn+XEbXbf//CDQh6jBs3fqC3pd8GKWQMd1mc0ADx
om4xmPHnn3777m8/HjHj6x99W5ed8RtMnjC7Id9jib760pIXrKusvGJvYshwHqd6sgy7gXJRKoKI
Zredfyn692vWJcZvrS8w+teRdR5ZL/suIgLd1nnO2jXIMZ1SsCntp9V8z7jWbc+boh4RfT65AOLq
lIt0pHvYPy+L3aIoGvcB1RCYerWA6Hs3tfJ+OVbatVcH4Jo5l9B0BsW8m5elsN9Rc8gGVkoY8YFQ
6WVrNFA6Xvn8Z2s+iPSKKPa5OLFEhjGaZZIM2ICLFnz/R3lX6O+0GS/s9ZzQfYik0dDhKn8ybQYd
HcxMzr/f4bxMdv9vGplskNZw0yZhj6tkaObXkznSOcxIOIHoabQYk5GeX9pVgbzgwf5/fwhQyrMg
MMb4iRKaUh2orw775FM1fz7bFqoziFDq5bEQXpk7+frZNlEORvZJOvqjqc+nwSSuy4W5Nx6Mdrql
5OPAQW2WG4gUEnAJR+Pcgs6iPL8FoufpZXwSAZB8JDD+tNg21h46egiZRcS9NRazYl57NpRni6xI
1hbiU9fjdbJjVku08gbjE9+TevGbb24wS7/r0PgZ4wuhTYQztTcyjcVJqB0LCK+IYSxxyGg8h/nb
9s8JHIrtXb6zT3OHiTuERloJ5Fr6iEyo3NVeSJhTdacWxh2zRYjzGe1Dhn2cS8DMF/lu0aaXMFaf
7NfzORhBtddmQy9DHFNjKzthV9eN4ny1JwJHk0mf08kjUUH7SAuUMSUDMhZe81AMzVOqJ1vEUpDY
wc5SFMOF2uv56Uz2efyLp+Gh3CmzrRTVJjfjr3d3i8JRpCxEpvuwTXcOGB7JJptSEprRKwZJxA8k
RUFIekAGwfEwg18vXiQz6plfMMRgGobZUgGN0lTx+T5mM9jRECSururWaKdz11uM6UiuN3O0mXfc
d7SOSp2b7CIi8LvY9JbmSjTlY2JNK9RUfI9mLIJxhQ5TiRJHdfH7CopJLXadZjOBaGB4p3b666dm
SigmnpUMQ5TlhRxMTiQki0a2HBeb2yIJVaokZjrKQwWpW9rsG1GwhGOVLvKbVS3ORjH5B2Tzx+J4
fSusJlkq4rFfSCeCrdrs23hvCrPZacy49Ok2NJdBpJkeSTqd/VYMc1z7lw7RObY8Ims2JhEzJuUV
g2hvR2MEEC2gCDTNrs6Ed+mpTALGk2I/g7OlMmPpu9iEtqbGqZxOeUESZZyLM4fDtk/zvrMifLKd
J6YDyJvu8I0GIJYbYARMFkEiKG7bbMtVuS8fHX5x6ll52wuk1txWj3VW2rG09bTI+IynPQBTc8zP
fXVYnyWnmaA4mXHOYvKBV8Vvb5OEYNyqiAxOL/alRhL6UlM2pccZjQpHerkVO9GSleIkJcy21jm1
0CHR6vrGcMwi42Gv+j1dBS7xlNQApwJdnV3s0sUbCREsj+dhWX3Kl8ljvi1hCvHOMTFVB04mozFI
gRlB+uHtk64iTsvU0puGZxlMiLhKMHipS7nSQfxdCHqrIy3raZpfKsVNQZd5luRuq7SmXcjpjDMy
ZeoKHglt1rYJkysisOcIxsJdX//ihnx3gwVS3BX+U1/FDfn+OChsXt0dVkrZfG1atOthYA2Smuo8
8T7b3Q6JlA4rQLlqy6i+nLaYcwgeUuaon+swGM9JY3mIMkcEWrLYiB+SUx2In+Fs5jeTvUWtqMvl
W2gZCA2w52r/l8vSVSuKU8L6pcV5nx+rRpOon1+8C+jzSf9JCUQjgpHKeWGeu7JPH8dEcUr17GMD
b4V/N0roHQlImdA8N1rpWh0SsOcIMzxlJRLL+LikS/BJIw8ZZZNBZUkBM6EpYUy0ujMHjGH8emDM
ZehiCsv/dAZSvrK3BSUp4VOpjLRn/b59OmWxLPTjWgeVQr8/HwecHAII1K90zHpeaUfVfaULK14y
Jf9YFIqXFOu5cZI6magCLwx1v1dPk7quLkcVBdeT5nosWLikHB7p4o4jLodIR/PMVmae7V+//0/o
kWvvCAldXdN2j4OMdviIX/qI7AdfFANXRLi1ioPB2BbaTc77m1F9Lk/7wrhNLLiiEgXxvLxR0cQ/
i3TxzIFneoi/fVKwi7UkG0d3esibp2za66MU9dC4zrFNtgFejMPQAjrVcb/k25RxMYxNH34B3+2K
/a169QzQmLff3nwQv/rgmtZkAVCzRKDhAgamu25Z+bSw01ABTr50rEth7gWEe+MEJV/rui99S7SF
Sc+yo1i6Mo0FFYhdV14ox4x4iBnjE66zpLEBQ0ueOM+g8cW4O80GQSSnEiwVC3h8SEB1WtuBEmUO
xUQiRkk25VEmMqo+c5QOosxzCFtAJSLlkMN06qt8KPZ/gzLJYv7h48ffDsv/Ze9afNy20fy/Iiww
zQatG/FNFhgEadqixeZuF5su7oDDYeGxFY8bj+T6kcz0rz9+lOSxLUqiJYpydm+7mfE445Aiv8fv
eydbbJ9BTyPGREfVZKriD4YuDNLRyjutGTfEBYtYF3O7LfCxXWfptkw3yuZP9R2OIfiC2RUgnjNm
z3GOfidHLWWs6UcL+MnRTlzBN/DD8ede5f9aNeQTMcQV7XQGNRHtKqlNaqPaUIYq+JguBDIUS9tL
3iD64nbWF4fw8w4dB7K3FzmiQXSGy9KMkB7C7Cjtf5MkKWbxI4u/XaeLc6CppQqWfjWyFmTanIAI
0zqBubNNozoBgDil2PUUalaQjUhEuBpSOe7Xi43G+I1IHzsmUjYxFbRn/JRMUy1QN8VEGdtpM2UY
eESGamsDOSRDMTUcOrBeLYfBc9izvnxutakV5u9QGJDz261J8X9Wfs+a7kizVSeIAf6XZFgGTB7X
2bZkAutRSWXmFktvQAqAaT2Wwgiayw0Ji9PJdDtbLsvyw0/T1V5fWjKbHP6FImBgn+KsoZ5CQzBK
48XYuAYh7A1UF/qhsFp/KF1OthtiQjjm1tTTg5nmo8GUFon1Zy2IjDjCAyhAe/0RidzqupylvVly
aw/QcciZ6e8DrjnNKrkQyRHEsbt4rpoFylbz2F32+Dyl8Lj/3yTdr6yZNExjVtrSx7EdQd2tpql1
XC40MOP9ZWcts7Y/dFMCrBQRZyPLuOfUcrvUByYnvZi8dmyZoMr4mka0Vo/kQDW3wKjsir5+9dOb
X969OlXaUO3X5o6HpAMimSfbLJcpiWliZ17/4+/vbosZE3o9+5hdbRrHhPeRpKcZ7vn9Gnt/e5/t
V3MT/887w0wgSDH5DL83mW3X9tZRHAZ8kt7ij8Y0HwJdbSNYyDsY/DWiELB4HSmBLPJYeFJrD4tJ
lhpOawm+x91g1RE/L9P1fjeBzomTbL9bLWEE5GJ26OdosnFrxsyYPvNMkTC6x65vkEnPHlXmlpmd
dokLfnAanFqb6jQ0/lKxN4iZzhO9+vyuKU9CyylT4D6KaqjjJUvg9mFxqP6OkfFhms85R3BtWgIh
FPuEn4vsbjqzoyOOujmx+tFanTSUFPm7cFQpFYV4rfDisLOZTIC6D6RtJWmhYPS6T7/0JUsz5tRs
SvWUekWD39UyTeyznfROnECQ6iX/i+qpUid9Xq7ms+nGHmEFC8QpD0ddpodhjykUrNQpY8L1YTgV
HKpaZWzA18VqOIb+xk6DetUwudRapcAwpd504C55aiiiUe9pE6XL9fjeY428pFjIPjdoVcpWphVC
02pLZa8KoI2rHFVRw2/JzRt6pIhzzQtlbMXfCIvahU7rmBAxAD9UEqWPj93WM0GiiHeRRq6SGlwS
cHwmQmuEtd3/qqEBASDi7c7zC6hoZaWFr+y0yhFf3SWWwBl0CMRa5fJA2sZqbymo76YX7cB30UxM
Jet5wN0BD+8jojxsAGM5mpYTVECBGEUdNfxZHe92l62Nvq+J0CiKIuEUQfOsr5pUqIiwjKV/cAWI
8837t7/8YoQZPvQQbBxyy8C13wF0nNpWxt21vyuIsO7RiXH44cEE+RrqoTX1z2td6wgzbhoShyaI
OvsOKx5Aw1qVqnAsLVDDdUbhqifhPc8vOSHB2iEyefIIxHq6LO1NBkozvQ31V8L73b1e57d8PFW2
KzK0t+vpLLG7kKRphzMMaD0VOEkR6TdQ9OuiG2Cs/3x9cAhh/OpGxq/KbgpVZ5Bp/1fJT4B0PuoN
5pvBW6BINmA7NvjfKBMw/ccj/Iut/hg5DE+UAezctHjc3f6kpWY1cM6UkyvaVToWY6U0nR69rMQk
UIRJJAgaaWUUYzkQGjyhLnvJEehEOpIcJFSqwdTx502WLlwqTBlM0hxKDZ7cjKlkyT5C/wRTgrve
LD9Nd8nkbpN9NoMbkhT6Us1tfTwgabqXf8gNttkTDqExftwRMz+TB+QWHZXy2NqlQP0bjkVPdjBU
2Er7VMTdaN+iBvUF/zFtqU9iSmrMc0ppb04++3PeJH4QufN6v5zfWpc732UkJQ2kBP42rYwSpuBG
I9SRAg75lgVfnVSu7d7mb1rQ7wQmhbYkuZw94OUrEMLE6B46G39/NRAw0gBvSA+2azN2SoYFSaSL
LDzj2Gfm1CoimUOZ8HS1nSTb2XRdZywTSHtGrg/n22lFZUzHC09IFiFEeezVVbBs8BWQqJOJ5ILy
P39EVn2kkQjh/kOC2cc8cRXIb/Ip2Zga9LvkKUvnE/RPZCc1qkwp/oiwFPMgeNzoRVRF5fJMU6NA
y+c1+pEQZGBQvrSicgUV+ggHO3lsscTOOvThQMuX/fqwCPb0pPr0PCZDg3w31yw12vRU5JNAZ1Fc
BZfhroLaCPFKzMJdtljUmIWkWoxOA51ScUkYSxXslpjlls5S81ig5csxBl2SeDx6zIhULNjxc8vx
n6EkHmj58vhFuKcXFml91q1LBFo+x6gRV2hgExZhNhYOwVzEI8UKXmj798WRQSzqDGFRKY+FWneC
x7HR9CJsXBONEI85STc/4huJb968PbfBocWuB2/9kQ1e0IO9vxFMu5NkEFvQbgdSxwHiw7ngHBv8
dDNEV8liOns6y8A/FFk2Vbxi4VgrcbnELUng1Xy5Qe0xG3yGjOGBw+7EKECh4VeMvDpFsjsI6NY6
Raga/Phx+/EjFOT4cevxC0aHNtfs7c6hJoUFNk9sxc6YQqZmmMuYQf8A+z0oSYdFQpryuE+NY5ju
H39/l4vEGYi+2d7MZ9muptt7e3Wyyd1QfGhIlouA6oBPiNgKMRK2EXxE9zM2Te84HlonXqgPEYPi
JI8CeZM8JA93CfRDmU+gaPRztpnrw9unOxNY328qUuCgETG+smCXJdbVC9gTjplPdPvTzff6/z9Y
0O15hOlDlo11rcRtlsdwDg5MYgd5h+Phj4KRDhuxGwEP2VwbAfPldJUtoPeQfV6kGW3FB394t6en
LjmLYXbikr7snSBez7KHBy23rZPqNEAQXW7Kl1pGLq1+uyzuai9i0Yc3asT5brOcfXyypyQRbfmg
/oLhCJGl2X5bk7kjuUbbpA/zN6HtLF09TWASdZk8ZMmX5jISiPfYga1PRNFtblk3CRGKsDqwmh3y
6EM3D5pDb01PlU4EHEAWZ43NC53ZunKxwNr2d2sBTbmTP/1ppK0Uxg13mcLRyN3r1VTvZGeiSlrb
TJYrAJwre3tWDXVcumAcLegb62POB2A21wGc4HuGBosXkGFb8kNF30/seReSmcYOXVb2iaOPBO95
PSf0VHhxWsv5Xv96uvgWJNhbDbvfZvPkz/Ejk9/oL8R8eWntrADNjlFzPtNlT2vtMMCkTyVRmmXa
cq9pp6JVBULD0o41S5ch4tZZq6O4fj1bJdNNNVdFPzQVXbR/o4CqFU9Ui2baSzyc0TyEgwofjMZ3
dUOInKrUeqj/h2Q3NVtZLtJsY+q3TOumZZ5RbL1xbRtERPg0jpoDkGYMhCUCjKgnojOCSlPZJ5hp
uZkuwCS3Oz4ITBE9tUfy3YV7+kI3S+QPeZ8zgUEE1jZdWP8haEyKtEeutLwVcjT1ZWHlr2ar/U5/
/vYbo8hmz4rs8bg5EMb/879f/Y4LhYbyFOfz24aeLUgw5u/5Hm0Ky2U0spuXYb3aw7emqjIYx4uI
Rw1pV00YQpoqmKSyCyquTlHtwALDJi94pDjtcb3tubX5ndfMio1w81jWwdZlMvamI/IR5yDAlune
CFGr80yftVNzR1dYsl/P9betRoAftNCwOwqwxFoj86B0bsmg5WdByfzXwm2jDE0jFvYoiC09rXoU
JOA2SpRA1aDKungN7WwelltIGrV5Eohyi997PAtLWi0n1BN6T6Gp2ST5pM9m8vOv//FuAmU0de4s
CllDZ6nl+Q7DncDBnxOWL5gtcZFVToIF3EaZPkFp0JPg1sLvyknwgNsoaaKLhuyxBVsyK67ShAi4
jcNJkNFN2rOMlpFsS85x2JPA7YJiOjSYmFrRhIwkD0wWxJOr4wI1Xo6+WZpsoE1SEwliZwOxp0Oj
mqkV1sgIxUSFvRQbnpBqHI9DM/ywOc6f/Q38RqMxkX9HsSxfoOIFouULnr+gcfFdFd9RXUd72kVo
nDqk9NMZo+5hkps+cFv2ECGHNERcJUYakg4OxNjFF9poZOblAZNVki7sng1kcmKJGjaGQWRgPWAF
jLR6zSzkRoprVoqGPQwbZkSiehg85EZKpRgHdv+L9gqwwMFiJLgFoYiQB1FcBkYKjxe2ZrxaldAn
GGHXAva4NeIUuXURdxGGR102tYb9eKpbD60O61LjmUDQP8BDatAynW6eJo8TSM6ARHSt7ef2bszM
raVsd2RYAwSd+hJfpPEeptuPefTtwcxUzfTtJ5tPdnenhMlcCg2EviYzfQofJ9PUDLFZfngCOJas
HoADzRyFd5o4cpQ1/Xo5vyE/PL/99f0m+aDfycHSY2z+x6fFj7yAWY+CV94h5TvlC4HLd1T5Tly+
KFDaI6n8y3xWvmDn/87hU1iWHy8/FZe/jJWGd3A9MMFoWoV6VMDkIER9+gww499qmj+Xa1quXGr2
+JbwUhHPIbG6EvumWBmKTYaOHE3Ec8W0tvMQ8L9bZXeT4ofJ3ZM+h03t2EeEoGc2CSHZUy1z7LNn
tJmh6ZANGrqaTOtmeGMJE4pwiLhd8yaIVP30+xZWg87Vy0LAzyGYlU+msAf0IWKAPeuY7f6unLdk
tPh0tqspcEEm81YMFjsx5+GhCwfS6IdiT9ArH524e6zmmGMeB1iDXr0+RzE/86Agef5GoUmVOveo
lDoWIXzmY2Gyu1+GwDqzbP109GPppmnS41zrcYJwB/l6eQkj47x/3Emzw0fNHfrdxvZBTEF7Dpfe
9xjViystLFer3PqYftBUlPcw0ztZfoI4vH70+0Oi2GRpuuh9WOpfwzW5maZWlV+0J89YhjAuLj+T
ekM1v43DTTxWn1pGqsuSvionOdYHL5wIHHkAcPaLxwxSjXtswR3DlNNc6kxTp9R6ayPd1XSzSCa/
baFsY6HVt80mxFIqxqBWjaoYq96UNpvO7g8lqAUP5hVC9vkGCnKQ2QDUVlHXRZ5ft27KVJKoZXxS
7Q49QblePOlnDxiLTifw72K6x3EXG97JdNecgi+//8tVPsZO5Q+DqTsoDMTjKR9FI0xwL4HkKvnt
diuG6/ao77WM00gnl8qlI7QoGrTeP5LxKEqAoD7iraZWcZdBGax9qDwExVFovWPTLBAP7PXwFrRj
LUrBALAp+n8J7sv52i64YRSwcPK59hbcSDA8KDypzRCXLAAwqV09jsdUV3oROp62IlTfu0Jj6gss
kBxGWU4f1lp7aHli9TMiUW023F1VZZ+SzWY5tzfVQIRrIwwPpivyccsmb+SPZJPltsneGCS1eTSc
wFw4dsWy/Pk6b8gbUyV1g+UrLTn/+/17/a1FdBLFjOcFeSRtKM54sjg8uNSShGFfGniTgEsJRgCn
8+yz6d6YTzlLdrsa35eA0hMRDyhIFkmabMDWnW3XRwLlPFnNP6FiYFRK2MD3SGIKvjLOw6yDWRi6
JCykdhueGqArmwx1dkoNvBBFGIiBylAPxMI8EBbXy0U9Zv+EkXcSxtTJOBBJxMMzE4+UY12kD0Us
aE8jBtTvU6F8rRcUOw6tdH4cTc2nzYly8tYLdIlmdbUNhidthBiKkIzFMHj/OE3P3r1CmztuPeX6
yyaKQmkpeqVQ4nq1x0H24UD6nfyLgNfy4AbnIVAaQNo40ANJPpRxDvXRJqd1dr9czetHxWMEmkXf
4DU7V0uXJspF702szs1zbZvfxMyY52ZkY5NzE2qHEPcKQOo0qaZYeuXGsTOh6CfiXF418HV+FkHB
v93fB3efzED/P9wtU4NA6htYI0owjIW/VqvY9eiAqGPFB/I5FW06n8wwa3tHKATtTmgvn5Mjlqtz
31IirhQdu14iiiWHscAdnJTPG4WN6VNK4Z4q02kVFRhHpAsYta5QNwWXcKhIuTCUkbNVSySh5OVq
9IIoHmF1YZ5X3zWlcuyK629JgSJBZPAlBRscExX1zM/Mb9uLFjOMx2EJi+kT516Cki7eBCwDPx4y
E0+/tNDPEbZ0Cf1c6GboLRioY5Md7O8eseZSGXZJ7tg2Bg/XqRlftr7PgLmC3rNIUHH5DiqQdZ9C
2aPJrNWKtWjqkDyuk9kumb+rr//HQkYciR5n0IC7GpOJKfT7dXJJ4l5qoVEfIKY0fo97X8BR3khx
FbvNNN1+sDfDpxHigzx5uYllCpMWJibzrAqvEMca6qhR+S52stRbqH6VbZMGbUhhCDwbj7+lMvNn
eHOHcHxNyvEmjnP9GDsoRhgpxKTsc77HVmMhOfIO7rkA2yTz5caIMGv5toRs/Q6y6xhQ5QvkvRE2
q1ugr+9evTJDLu+z7e47/bG4NT+skC+n9WgkxobSqRpGumYa7K5X+y28sAtYAwhlJ+q75EGN31No
S4YNKcyhk/xZS2frU0MDe8x9SvQjMdNgfQPMZ2I4ZrD3EYfoYf+H1Yefai6AvKB8xbqyC8mQacH5
xQg0d2kWa5jPXYahdyfh7ew+eQC9uJrCpEQrNIDut8Qj9S7TD8t0uUsmqyxbn62YSyi3yjJ/63HK
wq7H+lzqaS7/IX2uZfSQhnjYbcqDz3uUQdcTKA5MN4GfD4flC+aU9Pnl0guShAe+QBqYQMMyBIvp
qDYcwmEJlpPYM7wqQF05NqrF3KCQeUZGMyeFgMHhlIWVSkjFgeFIL3XdYC9tpx/sxXcUklnDiqZO
LreQZiuANG8gv/YmXv9eTKx58ev9cnuDY/NlCh1n9a/At3yHL15WYkpCiwPiwfDJa9issX2FHDtH
dTUIagwA/z6VUzlnH8Wt7R/aQV+6dkqynzFGSptd1GfUYZHsoLilHPw2WyxrJr+Z6m4aD7u2pTJS
ITmm2kacD+SQgsZcecdhu2eGQJtJHPS8EdAY74IDvfW8Ax+w5KNQeP70yJ80SbZbUzumbx9q2hsH
c2GYWOJBQG+2k9SsOU3n083cKI/VcqtB2qGkf3uf7VcQclkuFslG2+bJh9Vycb+r6YIoZUS5/7AA
FIfeZY/5qRSSd2vGzUHTp3yv2CbywZGu5JfiU7vBAt1gBv/p7+KGfH9xOSWNGcwAINKTulll6eKQ
5FXroRWxay++Wtz123YCywKFVcNqGDNhmij3oKz2+vMzHqxJptMAyavf//INgLF2wQbqve8gAA4c
beP+fKStfe64qXvBV7ERQcRV7IOj6zgPGMxyFfuIxSiqoBRY9iAW/FFXck/8OvahhvEL1IVOqUTX
8dxUXsk+roQO0JXIDeSa1/HXv/36y1//8/2Qe+kSaqqHUqX5XnRasWEpySIY1HMtB8CchVSAy8Bi
QHOzUC3G81e8vj1RM+BAy39+7vpVKZ2VkcLiem6PkKFM1N39UtuM6ymUn9ytgNzntS1PFL4iGhqN
nl+9Th7XmuiWu9XTGyCkn/Pfut1t9kllo5LQMaTxZZvk9AvYJNQIXP0mJcFfwEnKK2JkeT0oQWD8
L5q4RTi/IjAm8LiuF0zpNbigMLoehAGpGdezF3ZFtHpFfBM38w0JuBfZUtEWci9tsYGQewGjt120
EO/OMmt3agRRBHb5fqyG78N+tVuuV6bNaJELbQ1ZKxgRoK6HUgWOr4c6CLmec3EKe5J2yFPUWhQI
p6kLLEwT5rH0ziAXGP8WQ587pZWSkENsiFSXb+k8MHwMTmC8qX75R56bbVqcJw93ybxGcqBYCsf0
V+LidACB8vuqMRwOo3ti5sgdLbZT7ZOfMUIx3xYhEV+ysLcB4w2cU9gCZqS4+fvbF3kiGDQzRy9f
aJz/Ft6uAf1CRUxQJ5jbTRclD+vd03nAZpneJ/p3tQi6e4LUpjzSbAvo68uWqMfm2jF4TnL2NuQq
Ioh0uvG+64LQzdcFqghD5Xlbh0i2eICH4i45FldLMYSCa2uVQziLsOJkFJViT9Pkmt7pkArFKtCV
Rp+YddGtPUSQdWSWMh1NRhfwFcqxyvibmIGYj9tFvITxM5QNdr4XROOxiCgdQLzov4c8vlP0Upu/
RDiPhFO586VM3zQDiBKY24r9QiVrCAZi7lj5P+U0c5KnsRKD6K6W5Qv1JSQZxW7YZevJs2R2jB2y
GI2l5hFMOBkLYvBxUBV2yqMdbPWBDrxss1g3iUrTGaKHXLXgl60wHV+nngjmZ30KEROtTO+y/e47
Mwn5RdWQer/bwHgPaIHzVmvkt9k8+XP8yOQ3+gsxX16+fAUZu9owuyHfm9G/5Ps2rYwojhgR45GE
PDjyg1OEiHkgMGLVw7GApPrR2IENYW00NogiZvqgugK1aFOBSvi1OHKqb4qpEfBaUaV8O7zbi7QI
0fjXn7fMuSssRmblPuCzvn1DwzRGTI2Lf0Bmd+lkA+3x6GVayI3dn2uHjJCtKR7CAIs5Hnz56rJt
mTBBVO+paKqxZWN3W5ZhRvyfZUVjvs5f3/7XXyaP95szqVLpFhoJxkekLxGAui2rxvwKLyL+97sI
Kq/tIoiIuFIjXgQn1D/MsioXCcNKZTygkmvLIUeMOA7QcYEzaXYMZOxRP4pMEG4EQPnehGdt0dku
8eImHFlxN9kyJySDhvd4dC3bHAt0MWFbDVak75wyPpzpVrRzyNLVk915rK0Yv8bTOkm3kzT53ND6
VICpIEOR+tERVGvQwVgS2BuXmwm51sQcJk3N1kBWCqwL00Bmm+n23l5eTM3on5H81xLLns5JE3Cy
h9i0OaRGdI7DkLeW1emAq7cMAaQDXipxoWd6mdwqSh+z6Xybp8osHxaT7WZmt0FpRMd7fhQzNOLN
q5YqHDqEkxNDY2M5GsUxPtrSo3rcbUr1q7yY4YcsTW5RDlPKCoUf3SEKIJPDx85Fq+ARI9ipGTx1
0Y+l12I629lRtxIsYu1hlSG5Co3DVYqPJsdUPBpDw3S3kZYWHI0mS5z669E+LZ8KPQqKU4uXvAXR
Pzf79PYp2WpZUXTkO2zirCPf/7F3rc1tG0v2r3A/0ConBWveg9kqVcoP+TqP3WTlJE78ZQsiIYsJ
CPASlCzdX7/TA5DiYwAOiAEfultlyxQlcwBM9+mefpze6l4XxHd/5S8G+eSiXEsban1KOks1Hp1t
pMaE9n6pE50Z2w6k4yi5yabjeBh8+PW/frJ7BsB1I0Xz9bacXgfT2BR8RQk439onta0uBIU8pCfU
nGQawysGDDAnMr6dXLA5i+O8cJjYz+pKe2B+dPg6ykcDoz5LLwsOydHwgmFOsUWLt7Qrdbs4b3Tn
3nwCi/zPwxT0rVbDc6325yWdYklhiSGdTt+unwq1fWduY+WYE9sn0OtdUCRfzGk/DSXXe/1nQf6p
32kGNuYGgkmk9fCphTMYwlyJFZYrvay+doX4Tnvi6yrKcRMMY7/Y89Rs8iW2go6ClBiixDfE6jdN
QrKcwFAWJGK79wYwT/aFSFZAAqqEkHmCXr1aPLqPg2g6jR6v725u7F4rAfLIbYQjrEl7UfXOW5xW
BidR7t+ZcViYq+eEHQJ1L7s1NB/amGunhUu/wLFYuehIy+PfrqwuExEIoinYD360tGt1oLN67n36
P8Uv+ToK62+0AF5+f6N92sfsDtieY+B8nhVU0OM4z6Mv8IaWK/01zfSXH6L7qMilmFJVWPel+S9x
WvwDX4EsgKBfXn/8ePnuFSw52Tx4E2jIYiw8BeW6iUaJTZmkCFsL8nZO8bUTTOX/L8p4Fm0ApY8H
dmSNl5dBoFwjm9tMWA+WlNh9e/CrqWczprHn2j6bHMEsOtoV+Gl3NIgmkzgd6qdQnh2tE/EEdK7s
QWqemOjluWXv3SiZ/V0EIdarkF1cRQCty7tqEfgBNj5+hXGXsrMoCLcetjn8lUdstoiL2SLPxWwR
FvryYHKYUjGM05F+THPvxQx/q+jeJkK74dQfakIWqjqlihEmS80mbdVzkjy+etiU7hCYJLqOFpba
NYGRF15Cg4uMnQkQGjurpeebPn2zGJsBv1IZL2QweEEKtB8TTO0mWOp/herw2a89q42gKdd/kfIm
zk+y9iTYNcAKs8UZPujyhKgjxnXqguv02eD6ThFtdyMPOKA3JhnpfypHijKuj8hI7XBMn5PjO9Dl
U+2ABY4zqFuZsYqOcWhhbBOIWO0qSO/G12bsRF1Pgan1o/tBW2ZFWyjl2MX3rwKbeHoPVBijmb1r
RMKQB9RpGs7MiL7V+phAa/xKEi7NlhNnNYaQEBhjTRA70IVCthCutCzCqb9MJFyklu+oMfYiXaHP
SQg1X3ZvRoK5GAn2XIyECJ1KxHkbI2EN+6vQsBI3XroePrIJxM3sCEIR7XHmSfS2SRG3plsQRAlF
a50bxjfRXTILyqcfgJUIhto7u86iaUWWBfId2PtOuxYxaPz0XMPQ/IgSQm2UWyPeobCHu2APfzYO
KnEKPPA9Ev8I0SUYZvfxdKovIw/mGlxVJ8uEo0vJ66e8TbRQrOKEZaodpAWZW4mTB2QUVeFzSkLi
ARpnZWV9QUhhjTupEHLO3JPxyeN0WIrfIMn0SUHf610KR2a7nAEOId654Nv7OEJ9ImtvgNbAD2Li
tiLJsBc6xQN2VqhJNM1hr0fjgs7d5Izn3O6B6SIpTlN2hwDqsTA/YnsgXOyBeC72ACFJOvRQFgwF
JVcNXNhmKRA2EYtwa0WzJwVxq8fw6JRp7YinIzCIUXJxEyV5/MJyfFxxp1ayz4uLLR26zR+UaWn9
1vw69Uvrler3F9cKvz538GyeG9rJcd5F6aTVQEmlD83Uu4GyZneVxiXJPaJ0sai+4+qknOBwGDxR
WSxFbr8iyaREx3yYkC7GQz4T46H1RQmvDl19BSHmVHlxpYbZ4KcMtuJ9lWpiRmEA8p4CF6HdPRem
b++kLVVuxwXGqE9ckBBrEarDR1W5NtFqECKfZmNFNoNhNIusp1UqeoIdMxSGLlAYPhc/mnKKOoLC
+1FsJQjAgmmfhXqBwzsTrRlm46igOrFXnskelfRZuCt7wyXEBG8fUnp6RBN9qgngOVliSpz3MBat
TEYD/VZV9SCMyqOXkbM8Tm7O9i4MbpFwUautcQrplqD8NribJhWFXkrgHnMKrgpXVILa2CBLSzwt
i+ft/hP0rTrlHMWB7JNysU/q2cT9hQpbi94SDJkYt353+ghA9N3n/vu309Hgdh0OekwR0kYKtoYj
F4XDVj5y0iOEo0PcOGfcqd7XQfwXTJMm4DzPsSzNQNcYYB9woIAgLPSNAPbALiOmu+sQj5oqKbzL
WAuTY6tcWRSya0RxXtoYFy3fEMfs0/d6n/v0XW1jij+LRYAnmtCwvnS3OXoDshZFtBqvQLS/fcqj
6LvrE1JKuH71bXkDxfuoT998WzwD66TRuR/7qvBjYe4oIRbCDqqgDscpF3VQkVk+TJ+OyGA3nmn/
KEBCKQ+zMHaKPexs4sBXnbdEBgjb64CpY7BoZ3vzUGZ3s4kZrFhHe8zA86RtzP5qdWZ2/Rc05Wyp
zoS+KO7T1lWzqSHKe1SEHfjy9pYNwyzagR+1SynRU0eWBzqU5dOYnQ4Fs73bnzVJ37BDwzh9tFsW
YKrEDPH9oQGpRINQ+EGDNDYjO7VNDb7C6LxgwcAOhFuGea5k0bDHKSFwxHyqZYkGMy2CU0PnCLxR
1mAEFTD7qEOb0H+H+up9/x3uhwhev7k0X4n5ypfef22+oo1e9h7nHIeeJbxyx8xDKgS/4CHS8nSB
DWvrMg3K+R8fP56/3Ig2wlRyzo78aTIk/T1NvN5wCsUDRB0FDC9XdIYdwzBnDMvj3ngqGPIKMi5B
LgFT5YQvnM2Wg1TlxkCUy1ZaDK1/jO7PzNAqZlFBPXhBprfCjIbWOBR8GVQEGJRjhUZXEcXaHXox
HOXRdRIv/UoFy8Y5hOvOazklgXJKO3zi8EiTr0INY7RLqIHhOMDS41GRZ7dTO782xjCOSYmulahK
czjivoAjLRR1LSRYU+zEgUDUvykvx7rbyp0x1xpM6eGOMN1ROm4znlC24gkjZ9G0gtiMEAllxj5t
oD2vI/XRHrtYHrldcktP3sx5NwGHbaOLQxj/IClvsfx2ndUPOSg77PTRoqrvGvg0VPPrWN/Wh0Fc
nDLtsxsx62G3/inptKvT+3nFvDVfoqAgUba+qyeF+Vc8zYIkTr/Mbtc4UWC9oKc9KO972RwROjJy
39hywFjxego82ZH3sl3ZXkzjJHosQSYYDXMzWtQgz8V1rF8bToLCpyk+Td/kaHhxVnwDEyxTbXEu
zibJnXaZ4XuI1l2cRRPoDijaKB5gVunfo1nRVp7Gs3wQTeKzMkkaaZO1+Jhxdj+K4VPuo+ROf78F
vK0PaHg3Hj++yr/e9BGHjzovFjJPobx687rdxRcnaZ8XWG7XpmvIEWQvQoI8YM9sGgXmkcczMNtW
eg3JgUuA+Udcc//G61+0lNhj25xxx8yiGwaWgeSqEUMmkIybmZgWRTsShjMK1JFBrZ3OGVJwGVhr
QQJyO72eIQO2FqJoq8042S/Qd1A41iQHV1kHJAx3v1MRs/RCy5xkGs4svMxK0YNfQxhSX2oN7Wgw
E25aMYgUExY6zirzeM/Ecs9r48KuoyEYngNciWDiODyRtUGdp+qG9BFyMfSHc0OaX2C9G0IEkwfX
J6H2jKXUgqVOUdBur0Hvyp43g1nAbS0ovSdws1yJJOTgTwNjgptfhKeecyrlMXlctgKnmuJr3x6X
9BCsKaoCCl6+KB3EifF6r7OpPSKH9LlFsI48e6s/T6BiLzzdXf/G55YTJnyC8tLmz7Jy/62qRyWo
n2e1X9RcFM6PvVsaO9JTH+vu65/qP17VXjB2FC7u84+vHXdwzc2llT3OCOOeDEXBR1MYiBqCZIJE
j3O8nwCbfT6V0H+xT7Bc/QFQk1eT80gmeoQpvymlghD9r4q+ENhpt/o46VSfWg5S1qpezdQrKXcc
d3bIIBhSewuCEUraB6AASIdR+iWeZnf5Iv9srdUBMhGMfOdenuQNnrcrwLfCsvVUpACOPUnQacdX
C+MPf5Dy7QVIHvoM58PmQhqhGFVqiekHPUwFdtmQcJt0v06Sq5Lb9UO1dBNu0IU1X7G5zBWTN4B9
ALdY7sAS941nEWPYKb8ROhswCItu7/Dj4PML1lrQlkpeCcd2NwWa/49/x4syHP1icDvNtBMWP+hF
8+LkVKxk5AFaybwaMxWiWssSdnvQqBAXDycOICC5OHv67P8sihjXeu1enm1xrgkXwLvGsQ9QXEVE
KyBiYF0UyLu8Wr1qe3UsEF6qHXSzLr/1tSK5pd0b7cYL3xBUNbcXptmeCPZ7dSS4lAfW8n+rQEIl
mlCYHU0QxV61y97qB21oHQBJR2E1v2UKKvSEKNApFs1m09H13SwOrrOhta+SEjijOR0L620EHAQX
zBDzxqeN4kquHOuKDrqziz9PkVPfYVKqnAYoOWnS3XV9eRVC2jCzZst9uHz9zmFq3/+O49ltNnwa
3Fd7hCt/G375RTn4E6/Mt4ErUw0N+JYrXV1249SoGkrjvp4L2ZhlKJ1yzb6ei3BqCQn951MoYZ7t
vdYNDQCzx7IDmRDTfQnXcOHOLXR+vlG0CHCNJTpK8aEr4kNhQ5nPM2ut9GhHQYmjfCxyc7Q2py2s
0WpMeilzCbOHrexIWo3pHtWYq3A/5zFmLyOGTtH2vsXoJhhnQ5hpMQz0cnpxZIUPAZP5EPHoQK3M
oKodCogcB8+4WPRZlmm41I91Ej1WYaXCRBt16lenLQ0jrEf5XlYR/FQc/sIbnEWDzKtHiJVqZXKX
GmSS7KupmwDVLBddRQcTUWYajbDwtGZB6hcMKwZhYcp6bnNwtkBBepP9nP4yzb5A1fFl1TxGk+LV
L8LDxA5qoaMIEhRv+HFFkMlEYH4SAaInDeqj0GtCgBDczmfVagPsNIuR5Kbu0Ar3HAY6c09wf5cO
45tRqo1b/TEOw8xl5BEjlm/WSiqFBVQqhB601gTTbiuDx8qM2aTSo+kux59AWUIFgReH4hN19HGm
YsybV01BtD4pr3YAxnwSpQuSpwW6QR3RRiYDv+zTN+fnFjYnaNLXiuWyJ2rfSAZZcvOnOla0LdVe
fMJKaMlrSkyqHZ7chq5qExcNZqN76O3Rpxv7nFpqJts1X60CAUdwQquYZwnMHLSFRNQhA6mCd0KE
fym0Hp14BVWG0mhPvT3gcZT/PZ+MU5HQCrVR4/IIgGEDFWiPI4HJMaKCnT60qHd471G5mZJSdaQE
1E5lzBxj9W4COIm0n6HP73dT7bxrWMmhRrGYJDiNo9yeMVDAJ+eU+VRHQRtb7vskmt16TQshp84S
5VY6qWUAWLbKuOjIDgcMDlAE+/cTnA9QmxL6YhNC+oTYUaQfE6Awi8Ig0H7Gi0FyN9MrXzw8PBQ8
kpDrLD9J/3iZkn5zJDvUsxF+ikLYp+8N51ufviuoG726G8JpVl0LeCgJ4ayh1KIG8yQ3hdAo1R8+
9Ro+okh6NA9L7DxV9MfYtf/xeGxyyb3tFZox9mYjp8lTxt4+TR5IZlm3Hlo+H4AB8LpLWYl+Uz+r
7ywFaRQD2ZxTCcnRKG0pMp4tOuMhQh2pK6lKUEB7pEdRTbNgNo1GiQkyJxW9NiEnjnydx7jjnZpP
LE9FlTf02HhEiJ3qrnZhf/XpmXak0BVMsET/K9EJ7gGMYBrlkXbSYTe+jma3UR6PR4MsyVKvJ2bm
0gquhdkN78qAjT0cpsIeF/hENwNKVeFLpP8WCoJgVwA4JtHAcPZ59JcIrUO99e1ojnqL8ltTR+/Z
gyGQptjF49saZd3saSKhwoiKniIYuVBEVj66BsFIYQ8NQief05hDZ20CAQsG+sinL2wUVWW8ZI+5
pJ9chGYDVlnVsYa7NN00fNj7bLPyGnYMMUYnoq+W4wbHCAnfUmuG1JRc+laxFaGbz7s/GaoqZ6kU
Ie8RTKqkHz02zI5QIFFTjsUF0/9SdPJb0OUBhIVOM/ya6cYWrXCZZXzsW9LF6YHg4xLWXZrJvYbV
tLRIR7NTtI43yz1s+O/CVFApX+qQx5BiSQ0PBzgeWnOhEiy/jf62ApaCFg0enqxydBMlgwyDJ+9v
3gQQxKanLhhkYzN/vSK4LcDPZ89hO7rNACEpPTuHy90a86Qdf3j813USgWittG/ob+YZv82iAQyk
M0j4UunFm0Dirp/k3UBf/KJgL68cd8IRal2UuKjlnUDe1thZ87a1tNeszE24F1Gi0LMQ4i5sLseq
jY9emVSvHpjJwMy0WtQF0ezxfwYFlvjUhWFPoUNOgZOsO2CrwjHycrO2Gw6xIpTPYef2GGdkStLQ
O/RvHQmEkHYcXFonKW6h4faEgD5fCZcu38qlG4QJpZ0MVfYE2uHmtzx17T8b62fCpSP7fGBgYxL1
gyhdHrmDM9KngyGMrY0X3oilpZTCrLn/CAKbU0Lc4ov4OLTZq05Sl3rCXVQDgsj6O7s3z7Qb5njA
xkcDoV6tmaQnJHGLC/WbdtoLONSeUlyau/pEaGf3gdwUL5jcnAanjxS43X6aSWvFkNXgazb9G/rT
0mH8EA+H10GU6KOFfci85AxonqQnhF+aVBbM4oeKRj6oAA7xSeluV0JMKOHd4mdF7RAM9WYntQXL
HqhnNCVYtHkWT3e9oodltTOwSq2rpL06HxjXON4J0zxeAtce52Fg1R1TA42l/7zLZhtQSk1htzoF
wV7lb+/T913w92NBwpYCVQoOyNCT8GysZrhTiR8tcl9Rw2e36FlRqKU9X8lOT8jm8Ok15iadUo4H
fRJneRLfnPntyyTiFJxPAMoNkDSDp1xIa9bvYq3iCS4HBv3OoyijdGT3+Cgw7DqRjuxPTrawGWx4
HEh9s2gM9tq5HSLRDYYB34yVe5QA9+gO/vdfeUFj+fTU4VstemlsynXWM6BMEtKjnHleaRpPYFrQ
xnpUSN6jiHd1jrLzIelnSXCzHdzCjF4KlI3fhZpxWH6s7Jx82NjZxjcuOdGCxDvEwMrMIMZ9win5
/y/tvrxcj3QrCf3/ZE/x5tCqTkDgUd+huo8jEBVHchpkHmz0l+xuVjGVGuIwLqEf0tz4pBmcz2KN
49F10UtkZpNas+o8hCAUry9KJR6PDdRlqJnXFYlTjpg4Mq4Vm7p4w5AnmvGJlumJhLe51/24XVAm
XBxLyldLFNraf3pqB+/TN9dRHgvWJ2+H4/eP33/4IRnQ3/Ph29fq+39c3f9Jf599/sTRT+NhMrz8
Pf/8CSfX6dXb+Lfk7x/fDh8///Hf+PrD/6Q//jqbv777PE4eB/TqXfSPJP/8lt9dk6vk9/H7fPjp
ty+/fHyz+L0//7hCg3EyGv5xlQweefr5j6uf/9Sf//kyQZ8/oewHepXE8NkfOfnz0wP+/Kv2JN+t
+yiYmsj16rEViss6FwiD8bKn1tzNTtYeaVyY3cIhegAFFZtXIdfmnhQfssfrmM+9XSvqPtR1YLTW
2HSYbcFI7IbC2126hUUofDvDVK8PVeeNY38vzH8tPmCjtEIC2rqMQdsf4tkDEjBg5d8F7xgLw9bW
ryQKDqL8MR1UjOvV/oxLP3Qbf8bemyD1IZC1EbplT/EhT4I3P/389sfLd9bVoOJAHL2Ibx1L/O9h
6p0GfLmJvn1GGpG7wF2TFSjDcj9GAe+SC9qwAVDoLTH34uGvK+arB8u8DQknmI53WYTKu8Zbz+XK
ehqFTh+nwmNSH+Wqv0lG2sDaevnu1NRX11XvUmBDDWnHt0VDpxqpVktIFvo0Pwu+3Fo7pHpu7fg7
mFuDCjWtHJw33LXfmj5RFeJuVyBCsE4warF7NrCCenV2bM/O3NnmcIjFUIiygxjmjSS3WT5b6yBe
mtKQTa9HwyG0hc8ekzi/jWP9FPJkY/SKkOLooyIr1S/fdDRAmOKw2ZN4d/nT5a+XTX0UyjpfhFLK
OnJTXDqX5m1LgX53wyVRkHFVuIXIgbcMEymDUZqM0vjVwD7DMBQI8lF7eNi42Y5ah55s8QZCero6
6rvelyLS9fMOO99SRkLRqb9gL3YUFNILzVb+9OP7n39+8/pqBwzqfhl9IMN7WIa0g6wDaqDfGjrJ
mp29Pl6+vnr7oeGzJpy2NA+/TqM0v4mnZqy6sRc3oySumnqNQ4y1/467vzOpxMHtMgG7LC12mSmq
eOfPgIZUeIuAQjH/NBhEufVMSySBDDZlJ6q5vslcnWieW5gce4WoJI7kD5UKHc+iwS3QJ0fp8Dp7
mBP9B9FgENt9PwmRL9R1IKqpuuwQBsIN0wXvsu9nDZdAuJUznsV5kGazIH4Y5RvFFaZSi3CgIMF7
idlh6+w8xooyv0NDLzXQa34gLWcjTAzjctdiGyraudgi3rHYUtLqSFQNZlYMo1qGODp6M2JJLXns
MZTKm2Ba691Mx4qL3NDdhR8rjDqEgTb16ZaZghxxJ+eFtsmmOPm9tBL+y8rZKEns1E/CbdBPq3tw
iwjQ49FNbZC0btbkhfUvgEKWl6RfWi9Sv++kvyHUgrjFeWmb1IugpOMliGoorrskkGj9IY1uTUOM
0jQbgFbcjwaz0bggNaomdMQU94hbGzBtYM+KuYRWrNU+OeYuE1mXn2TjrA4itOMVVOhf8W1u5TDW
F2QKxazuZQggF3Z7r5Q2VK6dYtluibh2ixCBd1OwOvLDNJ4G5eSlf160LZxQQJiIEe3+UXAmGy3S
PNCs3TbV8RKENBTNHZbAhB6jiTd8Et2MMWWiGaLsGD9v6mHuGD93I5x00vybRJu1UZYC/SgQbVkh
mUAfBcF7uDVoHmm0zE5RU4JbuenTSBsx7RgEw9HNTTwF36SokrCzGSvVY5h1fleESt75Ili4jJXe
P3RkExBiYIw7KxLZ5af4bc5WnLd0ZheyY4/umh4x2daeG/biQTyZFc/zJpuODSNaBkz65/ND9Ti7
y+PsHnjKCPkhuo8+Lk9GnJ9FXw2zcTRKXxb/K9VON/z6d+MLaxtIQYZLZOsj6hOtaVDsdhBdQ3Ou
lUtO9Qgh/BjFcvJ/7D3ZcuNGkr/CfZB6xzakuo+Hjo1xuz2xD7OzMfJGzCtIghLcvEyQamm/fjML
4IkCWCQAkgpvhIIHSLEKWXmf7pci+NXDuETyFk/m4+RhMJtg51L3vXa7YkvS+BS2ENg5j7qehrZn
pG5LNGE19hrqoI1G8XQYDWfOPz6aoaqwTSf8/oKpWUXzv6KO2z8hGnixthcxcybxGCkvGUbAUWNv
wbwrlJStiCKXw+YCs17PETM9QZp7jqbJd8dcQVkoLiFu+8Ue0T3BmwiLU7jmOaZrJbLPwcZZRi9J
PEwWPjnImXMz6NaUsDPm3rZCHvfJNO6Pk+JS7llZ/9Nner87GY5/PaEzHf/yuPk3eANc7+t/joAD
vs9W2ME1wZG8RZfXYm7rTyhcZvCwFUTY/dUt+Rf8EO6uaAc7XE3mKMBG7kfwp/Ltw4t+Arf9U359
uvkYgQhP//3Xp6evvzzg5uaeeU2uqsJafnE8IlxdhB9NQYStGyD7q414Tyh5hkMwWI5m8esG2RBd
Nwi6hL1tP3P5uR2j/l7mroYbZUap5vxxNR5H8QrMqHKndaFUTzHR3OF6wC8qlqO6x60wt6gVDZNR
vBrv1ywiX9j18O/oR606AjjhrcjbDHMmVtMUjqTG+GMKe6k3xytQu6bJEtsCREsA72y1jJLFYraI
hquiGgUM+fT5ZVkxHI0ENmQ4QRTXdf80HFD9nFDYeZ2AFLn5gNUGyfMRZiXUx6qC4iK2g9ox2Xa/
hoWLhTGxuTYfr7A+A0uRXMP0vbLHt+h70v+WLnOoAgq5qHzLLS6b+FL2a6uWgFZFxCX1l8RyIrAS
O2BFUUfCaPYCkk0w06oAQF1IyQ0JCyrFEy2I6WmcDVKvUi0kBUJmDfZR5Jg5/CpSORMwrtGuz6pm
xwrBWr/z7gLCYF1/4Xf21zQDdeBptvi57Z6uyp6BCAdjWpCJLzY6CpB16i0951JhF+XT1jvQyXYg
XXf2Ze1UCYvaKZON7nZH+Tu8b39OPariQRKzFVLz0rtCL0GQH6NqD6MEzP7VYpzl4wdzTuNlLcJK
uGFCb4nCvJ0l2o7JCM1tE466U5yX+LUQKRGXlLx10B785ZA+uNjqMEcum6Bbni68njP1msbRJm/p
O3whqdCDNTpp1c0Lkg30a6fUtDvqwoqbB8uRmT0dsAcmtGyHPRzD13JjNQNiF+fVnbz8dtW4nzzM
p8+H6dsU1FdmPgazL79olQsFjbsLON9sVVm5oCgGroXuGt5bt1Up4ID5+sqyi+gzGL/PKpobUILd
Amkj46HWBzdC11d/PBt8ayVQQw1mWTbY7EuKg/beI2x4hiouQCfLvs8WXlWBoStWSHbrhHk4ZRhW
bzVoKFlr+NFKTKMZUq3DGzu/8v+RDtDFXBa5NB8Q2VueMmY0kU1s62vFO1rjtUXoI6zdzs0gQ9EH
Ae95vYlWeyKooEY28sbAsa1vkLyPsPFupEVAaaUp+9CACioEKWpL6iaWBvziP78+/eN//vnl61Nt
aQlyZhGUnChvpv7mBwcWqTk8KIkP+ErjK40d4ZXFVwIfbMu+WBLW/roKVtjyCUelgv6cuLp30FOA
X2bpMn1Nqko9pKkffCSPGiybdlNFzXU2W/hngnPdU+rjIcMONQQc9gZN5AaJRvv4w3c/rSEeDhq8
Yqp1eN3BNmB9WB12BvvCtzy/8li5G4bGPvuTE3KbZwsqa1AIuwqe6eQ5n0ZSNLRzQ4byMH51/J5b
0zOqiTawH+BEY/RvoOitFslXHG3k9VpQaxXecvuYXOM08HY4shLzeW1DqDtjaxSn42QI3HaRRYOX
BDRXvJKhJown4a8Eg9WZbchtQR2GH3ujhBz444rkfNNTvAmPRZEBL5PoOZkhZ3dp1j5fFGfoVGQf
mZ3fMf7HKlm83/Ff8jaoLY981h8aOPzX7oAjwkKEx8lhB0vzLIgN/q7HQ3nHYuMwgaBh9fKWPAa7
FmLX6KuNaAIfZIJROomfkygeLV12Sm7G40Exv49UYHZA99ZCjXfb4M1z9tHxokvKtWFlWaqZz90r
vTVFj399ebA6tVnu5lYqm+W6xMAoHa31KviBe3ftC3aeKrXM1UGlmeooZ/MsW1LKmWDYGajJgVzL
9dm6mwv4B7tx1FBBZZPqCuGI+vjCnzGiENgJS50h//zSj+keN6cteb77voGL3rf7qMeY4bfEhTrw
7IS78WzQcMhzYfE8QytzV5UpbYMR0WNBleeqG00KPRygSZmPjBIndVVqt9bVyotLsn6SV0BEOKn6
4EgL6RVUBx2g2NQttdVrwmY3naVnwpVxPEhwfX9+n6UWnoGj3d4pmKAa1JvU9k6lqbYz3WlQ4v/l
1K8yGt67fy99s9DOtiwXFLK9Uld4X/zYE/7Wn0xfE8xiMwvSRN7t+7W3B1zycKOhPZsOo+/pdDj7
7k2+MrrHBDGNtEesfv/y9HQs3x5w2vY41xdVN07VHY+yW6ZwpLa9Vd336P7d8DfWvrJTE9/wt9PG
+Eb3enhXYKTMiB4VWjemnC0nOlqwohWKetW+rgyycDgbRNgDe7qM+u+Yr7krWr2cQ/QE78q95h8G
SgMLek+8eVcAWlNSi8PJGGnEuFoXyCFi9s8kV7nAaYaGyMb0mP7qihaOFo9xDsK8S7O1P165mVCl
gBA2y7hlIeplF9KliNyo2KzwE3Fib1M++XOWpOpR2chtW8cgnUOtikFq9CQ1Jz3ng9yhvOj7S7pM
UKfwL2yx1bpqyVG9I/5/Tp9lNAD+6B8+pWlgJ6sz4OzmG24TiQuxxPwpcTiI25yhy1XY/wOQBp85
0fdrR8Am8XKTN1ckXjbiYnnms7b6FJdFC2zzxKBLa8K7GrHu8WWWLD/jda+8fvzX052hT0+P+1L5
UDXSOEJck/YpsKKVmwycyt4aAVRNTWeMyO7IP1p+Twdu3FaUTJE6Iqr66RKbz+A7L3MQCvRi9TFp
UgXVBepaFEIvRIg7gGpLYUHZYMFwLKoRXsBAwaAX3d33f/huPCwEpW8QRVg929ZnM9FomHhIDGcS
hTDJFSFMMnmcV4IVqanivH28e32ORvBJmPCmhHJMSlQN9nEq9/LyK2N7Kihb+nrI+Nefv/wKX3kA
CHtYFmtMuq/pMJlFc9gakPAxL6ZwQFNnEcF5N+qWZZbDHcvLYa3fBYNpb5p3xAFOV6P8KB6mVoUw
C41TnnnQSAwd5K3PXfHHOm1RbIRAPixNSnMJPK2R6VoaUFBNd6zVbxaC5qc+Nie9Fbo+QsaM3Bn7
vKHmdVb1MbkvbFgDsdMxM7ebggS/odiOh+ibxpPnRYIFzH+s4kXiRxbKOpGANQvn1UgM2wW3rzTF
w2E2jsFqyKJ+PPjmXvvNO94LyBWiNYfn0u2wdjxb4rA5PELX2//h4TH/G8XZ8tFhVLb7b8l0Gj/8
Pn++n6ST5Lf3efLZfQfO+fd58nzvfu2vy8/omdb5u19ni8+KlIYJW9dnjRBKrLwgNXhNeOtGnHxw
WujOJNqiZTGVcUeTeY0XP/Znz6vsjv/yeCe/PN7xnx0/vGOG3DELb2v5ocYE+UakFIwBNaLatb6m
skuCHs5WGBdzw52raFoEFfsebGGSZoNHWGQZTWbDdJQmw3Xo2++usjhi5LYVhAWOp65GdSHat5uX
i9hlbwfITo3FUFTy65MbY6eTm6Q0JFZBDm6g6KZ00M4zJzFv2h2z1pqw0tkQu7jI7DhiFwsGCpbU
uktCdi3eK9XvYjZ2A+raI2VHYkPMUPs79nP+Akono/DwX7NXfEmIgSeCeYOEwwPn8PZvf//t8NhF
z3DZ5aZ49Hewg0/YDxeXApLVgVs6y+98dEu/rZJsGL83OTtNVbewimBLpxye5KTLDQE2/Zr0T9uQ
7hhCJ26Iai1q5YO5hHwAmXuGOqaDFCFzNe3AieqH1+WyHM2l9Cygn7OiEzc6MJXUnCtsUI07pjUy
FpR8YFrQh/x9DUwPW7WeAPj96Q4Pk7nY+03VY3BjttVfpJYZIdy0rauTJdNnqG08oBMQrYFLI4N/
PvUY/Hhxbe9LyWydvU+pJUY6g5/RoDpB47NyNo0LqqdtatZTQdkop9EkUsliVqP4WfQJBWl+tXe2
zvl1nWry0Yv+1ua6p8RJuOzW2emKHKfj1SLxO65xgHpXhBLshy2B/Oxc0sfHlzuU2tUURonFTA4m
PqjkC+tYeDLKv87Gq4qsNwzZBjpBaxHeDaZ5y8ZRMQIHUyYe3jzpPrYnlO5aztX4iBRVPSH0mfe7
3/2t5s6zEjValytwA9S4iw0HtLiZFus6qv/7HWP4ETztR0Nc1CRbDHCE7Jsb6IRjZV1+dzVpYhyS
27Mhv4G3a0OVzYG7+qs1g2L49WeLqeU17ciN6TFlVeuUCoBPq8K460yB825tEmff1lX5A5woXDX2
lVFpPyrvVKrxwecgcn3NMhyws4ZWuVYXzgIYCSXcXJui97CmgWy9YyqewBH9PJjN349ospRi4ZoW
TRi5N5chS5a/FYPxRqtpZdcIRYEEmWyy/J5XcjE4mqqDQ37BRDNXUN6H6SA5rrsLSWSd7i4NQg1V
d8J5+5p18jaHHWfIofMG1v5sFHTsEt66/HcJkzsCOE/vGCzQkFt4h3jSwEy1IHaKdw9cz69xUAEW
kyZX5xP+A7ovvlL+uKLq69O/np4+/eVQJILezVlQbpOtoo7pbJmO3qNhxTQvKtGdoE5f4Qhc0mkG
TCDCSCO89RdHoOUe5J2xPmxJljFwlhHcKSguIMDej/qDFKWB8szWyrNCiYmOgNYK7HtXi6C2ewT1
HcT9AHRV+B3Ew2H6muuYKTy9oXhKC50z/6TA1tfn/Opu1eG/RdH9H+xzFOFbpu4YfyPxHe8Xzht3
gRm4cE5J42O+ZAldOU4uC+J19iRel8ussKoeCXJSmnMRN81c6fWuYeNTTS3qjUJ0TJneym/JwJoz
9vSl42EyTkAU95PlywK7O+3np+dDnjT8NmnC0s5Vh2v9oLm6a6Q4hWBDfLWStPqLa1/tOSSQ499s
uMJq6n7mLFbMzPVPU3WUdlvsi5fY14EYpft8pIp5IdvK/4GEMh6Curky9HSo7043XcJztkwHmV9g
gBoX5MaxNeq3M+edh7TGEyypchnrstHtlEkycl5ap5Gv5hgnzKL1qKl0mUyiHQD4OqZS0tPCdMzy
qjJ/hFYXkip+fi+BqNWtnMcpLSbb3NDzDJM7vbYimopcN9befPyv3OJJsJ41povFWHk1TXuatX70
Pvjur43zwqNeWH3mZbmAkvq2JM+uH6isC7OR+7uMCuz6U9GgcXyN8cUZN1G92OIcfThGN9NHCsjH
2ft04DdUte5xTVoXDtMkXrgGef6R28aAKmSaSf1VPx+zOo+fkxdEqhfQkcdJsWzmZjywCicHJp2w
xnzIgTWqbmjXM6T5IsnbEqdJjqvXsT11pML/AoR9cOAnuGpcPGbvbbQpVnt6/EtJZSTYfZPJG7V1
tGGtWSa5JAkbghDClA7oZYdO4LyjNUF5CZaB3aJVq/sYVo9hYWgXGN4+V6pNpMXObIpfnZD29lhy
a94R4rGwDlUfvBMTEvIQ5CQAzubJdKN4exVuEFtC8wYLb6ytl0UyigZj4CtZ2ERd69LCalWcw1WP
N4Td8ICDhrAtnngZqO20MCsZHtaIU4BzmXstRTsAh3RIIe2JqDvPJ+/V51QpplFzJw1W3+0lEU+/
+euceyzEEVi5Rp1Z7HIOEHlddXhhG0f992iQzaMJQD52MUTXvNjbn0EBqyehiHLQq6xFTAk6LyrQ
79kMmMeCu/l8Fj+2MGxE1Q2q1soqXFmEBF2Os9n5YracLd/n/uoWJXrc0lbIobyimwbl0nf8M+mE
CyzdBCLWngZGTYUMilQfwiknyO0WC8qu9nwLojtfpfCGS0k7QW0vQmMVExcN1pukb8mwuLHdwXjF
lJSQmWMa/ZWK3ATGVTTCBdZMWHMPmquk2zNfB89pSQnHZj3CkjNkce6DWI2X6Ry9EKv+JF36o9XY
H9uq1vGsVsWgbtDjSWvmh30ARccZ3BFjosxu4LoMTW1xfsw5sLwJHfUS6qkR7ehdpXmDjjWsCb96
Qo5wRYv62iryMe3YWqvPpMgpmNx7hWe+JYDzM6bbZ/1ZPEr8fUUptkRXTSijopzOU5Qa0sKekqPM
s7oKmWOHCUZUB6LMKzixj0C9+0/QU5DWe2L/8UcR2X387SXNfoS/+Ef89MdCepTddBh0DLLiqBdP
p9FqOTLRSxIPgYDR9PcENXCEkg4pvQ6BwMF9+5v3U9ljWCd2/oqhbKqSQQURCj3JcPw+W3yD9YEx
9oFdvSTwUebMRccqsyh5jcf+6AE3WCbWCjgGswk6d7DTizd/GUsxukJyHojkd/znkpOf9jS3Z+L5
rP87xoiSST8ZDl360iu2gxzH79iOIv3fJJomz6BWxNuRrIck4OahYkZTe7CBW14HjqYzl/eXlaMO
nPeYYaTB0RchqsFs4QJlmDAcoVWYVZhYDBObuyF24e9rJl31TVdIJ6Ktuz0v3kwnz9tiFf9AqtFs
lvfgKOfwuabA9HT4wE8eZpO5Ig7d2k8x3pxlYS75P+ZIB1kZpLnPy8kKVLMQlT7H8zkwtzz0kAwm
cf5VX6UPjjLrBK2qvBphxkeXAPk9fq0GiDBSdgCQxWCbslMFHY5THjS5nIRLJzhiIJ/ckRWugrg/
w7hYPB6j5Zolf6xQD8u/mfknPCkW1oOl00N9i2rwHFVsLe3Vt1iDeawnCbUtMlzPpLw/jg36OyYS
PfF3jj5oE+T9axu2y+RtWcPdCEfDiojWidntZa9htd+yw4icEtci5w272U3crCu4pUZhxqK41klW
EwfBoAxj5Po7ow+kHDLCwPkRVz1tv0H6kZ7o8CT5kaborKc4k+IWwEo9YJXMUNo6+Rx4FEPdiUcH
ERWcNllGYDCuksO0SNciWZsLMCN//QXwaX4VCVg6auajIGOMuRin9IY/tMu8aaKsH8RS8RG48CpL
KkbpXUsXLp0I9/I0eyQY1A1Pc5yLD/JnzfNnVTxrVry3xXtSPIvi/5Lic1o8F7+j5P7/r7/PTPE8
yp9l8V7y3WemGNn/HrP7+1xfP32/pV77PSUU1beAFcLHkqkKMhdZQx4m/P5/FlTZXbN+a8CRPpLR
JiiI283mKlQntGiPTN0KOa02tJNPdzmJ5YS1eQTiWhE5zB+pezTuUbtHsf1OItwV5h6tu5K/lu51
HN2tzDCBf9YxfixHZARXKI3vVkqzATxK3ofrdNT/VKsZUUZ70pqQIuZjp+kXSfDh1LkCFoPa0RvM
4BBSdS2kGqevSbVxxZkirQNou7kcVPmUROylMIm/JdHby8LNc98B4B0je4nLu9PdUYcrCV6s8r8a
ndb5KYhEBmvJBRis9CqJxE0noteDTY0NCLAhxp7B/N8mY8SPBbqysuVeDGr5sHwrNZkExDYdscvg
MHjVgd1/fL4qrAmyQxrz1breYhb4KiVNCG0dwEHnSuFbwYT+bB3SGb/DZ8kQm/7EY6/jVElshE9v
g4N+ms6myScfq6xvvF65t93Y5mI9VzwvOdmC5fNysUpK/uSeDqnJbMwCo2y1WMyewWKL5nFa3WWS
SNMFnswqssJcSxFmOwT6CB48UA+q1zqTLLfhdEA/v2vSn48tdI/a+p481+HHPuypnlP4C1gG8PgL
/Xpk9BiOpZSUd4FwGZaQ1NTvGwX4bjtnR9UYsOHYDmFPU/Lg0nof8NK7E7i+2Yt7XXj/SuMmVM+y
JvphqVY7b2FWFUJhAvRRegGG5+/Lgo1YRYenHuJlrVTR4rwt0roSoh9naWEwHWSZFg5WqZtTTjoN
zMpgHPMkbJdMMySkU2M/WuzieqSchf1Z3HiXcN+BviRoB26DEhPdRYwjeLHmpttYMOp7WTIefTrk
qoc1v6WxTRZUZ3kF83AvfSObTct6AliHkjQB/L73fqfVaGVdsKuX4420wxrWHQ+WK5Aag9lkEntX
B44n+LUPYzZYJq5KLIknvpwG2kyXv70QnjjPHGq2dlGRwiW/8nF7GoWjJxB0Jn150jvTSGrbLCgR
6oEZ8PjDD4/kJ/L4w08/PEbeFmGeATtAPPzaikWNA8XCytTaa3hRXfHB43x6mChtgR1qFpQ+xzuX
vYeWjEf2HmK0xjrAkMaslduvwVFgiGM34tTftoCHNZzoxuvrQy+cmye5aX6W521pPo7TQx3DYtce
YkyH+HV5acZqp46EYForLHQfPVuvsNsEEBgNklOd4NRr/1CiWyxolUHWAj+Hz2PlSu3AdIZNP80V
AeKP9GCMgBLVOSPfOsYRUvfVNtKn1dQlwabTcVr2kmNQQ4VU1p3FuFGriAj1np/Ffh1tSLwzw3Vl
vo1JEFKfWxG0o/lNkdzR2bNAxTPCqkNY/FBmGgnPFLgyveyKQlt12RUVOackpRFUGbnwOSoelC3N
691309nWb+cfJ+ymu92G3Nul7k0P4p/2BCAjb58/0fuixTD9dIJEhAdOj4hFikWMWoiuhNB6Osj2
RZ1E4hon25who0+vKHx4824AeLkRFxQ9JficL4dcgwzTqRzyD+g2KrAfT3tiqDzpSVJLmih3UyTi
YfIGqNPPh8xk2HZ+9ub3P2CmjNG3xEVYHRc5xjSQt+zxDXaMb2BiYZCTgvPAfJwEO5hmGXzuCctF
mMtIaFgVyFmcqqhx262Gq3B+GO465Zy8j9+zfAjd9paLKx5vH5fYTl2zbsh5FE8H73VxQa4Qwa2+
ICfcg7+HCxbMD3V1DzOEK8cS/yhYgJY0YxHbBLVo29IrgfuZgtzJBvG8YnojOd6d8VLsonz2hz1p
XegtwFGp0VJj1rYOUm/BhGVhbZPPo/5Nvyb0juZixj9RgSggDt0NWabT3910KsfSK/pgcOCnIqgr
3f+xd/W/bRtN+l/RL2rQ5GRxP0kWMII0SQ/vvbl7i6bFHXB4UVASJfONLCoiFdv9629mSdn6mCVX
/JDd4tAmVmxLy52deXZ2duYZN5nvGh4dazFBo47r3QqRzk5Y2y1KuSAnvRYleGy8R6vababj1//8
J+j/6/FJbB+bFr3/8O7Xd//7erzP3IwbapXthHhjGUje+TqajpskC76WAxY4VTg1Ul3A5QQ0d5ma
XkSWrhgSQFhql1nLJlbs0hYj4IDFLj2xjx/hXP51mspDKhN2bS4Ay7Ijof7UZS/ioRhg1LHKauSF
9iKb1jz14+Fe2UgMvkye+u+0CQ6fuLIMVsQT7Pw1qWens1Xan1wq3YLni30KCxqg7LRvimqjM2cM
V1SLDpRqZyEuxOukdirP5Bz3ZB8lOpKNQ8OBcGPhlM3hEWmJ4xV4XhZWXXAtUBl7mj49b401Rt6L
woMTMZFmz4as2j9FBgif97bb7LFrkNU0SKGkGsl1r0hlE8erUTLHlYw3GzynPmZMH+7xhnFI+gO3
AqIGOlw8Ui0tteTgZ0ime5N6DM9U0lNXxhLBW5W6a0uyOFY+8zqfr90v3hNB83Chxjq4lkC7Ttfb
9UG0bJSna7qUQgy44OxFwIxNk48C70hG9sq6kQ89XvF092ZffbVru2QtiAqxBsjXvVrsLMqjok8Y
2bAeHFKnK7tG1orPgZbaQTYz8+Ds7TPdtcrS6qoGvq96t+kzE3mphFwZviSbOtS1/b6a6L2/fo0H
5vGJI/9I/Idv/+Hfdp03x2NzjMYeSZVmVGZS8ItYkaCtCFuoyR715fLJQYq3s7Sdx0K3XsSM1pqW
LM+kuqIL1S2aWRftrOsV2DT2EoHw+obh9G5lZcDRJqcz6OSYubf8JdMnUWll8le4dxGrpVlOmXRk
PDtrxpSPGEhAKXGhkXwvvKA3uisrJokWLjVlrbrGkvUmXYMtP+wqmvhBi05j9kMxO7b6yU38MIRf
PgkyIXmOF7ZxXsr0hmUCqGSpKWemJxAXFzEpRTfL8wbaKZamalf9aMK1Faw+HH6damfVWZp/eGFt
OvgUtzS7Jx3N0jjDFhjgt0VwRCR918C0S6oOs6g+lXTItckU2PWSLdSVUtUADs5MqUaPal+92gbi
mMShnOgIjwf/ttjvPLZJv2DIhGhSYEIkHCNsYedass8rsoIZ58VV4iZG/74Ay0OHpD9l4xyQ14nd
QrUGATqIGToWFJxpiNmy4jAEG7njBbFt1OJouNc1bhfTSLLdy7JHwSYlJ+5jL6yasiT1PE6tLb5x
6rieAALKNfRbYXrteSR/WMZXsL4nQTzABKnaQoLJAXwfTW/i2Se8d6Bal/ie79IVuXogE639/HUb
beIr+MlJpb+EP2G/dpluJ8t4ZDoX0NFZNhCh14tt7lU9HY8acsfifNVDRFyFqtuR7e5oMSSWcukX
hQLHWkEjQRN68CLQ6XDE5ZijqSTrRfWS20WF+pks50bW7Qpg+SZaZfN0czvKU3wYAsukoUr3e7V+
pPjJk9hS5oeEs0HD3Oo9rP62sOTxM9gp4HNC7pQM3GoXputhGF4+9aJfx4klZChdYf2L0j2qGfUo
RJHpm5LVYc+UT7u476csPL3hpO17fgNyX0eoYzfpdgkrEo+SxSqFt4/ubgAPb6N8eoPJG9Hjoxl3
1Tiwb4bcP7iGgn8T5adM1TQ4ujBeHtjRWbdCtUj5Fs5h0S0I+8dpun6AL7V3RAIpegRrsGfvV0WY
89AI9qy0iAaO0pUtBwPbDfm8gSdtyYfBRNNr4fnf7SLXVsIRd0sw7mqRvnIItUXwWvJmJ+3GwxYE
xT72ahINFwot7apYrSs85F3BIe8qvk+y/GqRzI+dDMEHYaB73U3AzbH7kdgNzpP+peaK3Vgvguw0
ez6SXOjODJCuomGDoCaZtaFzPMf+zXgGpHzVcKB58JKw90DrCOxt4aTWeagaKwMD/pfawB13YLeq
txeL95yFQb9YWNUDHQ/V3I0b4myv1/hYVdikg2ZO5yk2oT8wSre5of0eLaZPyRsYabRkLDKmQscO
ti3AuSLRS3IxaLTpNjNa+ykTK7ZYoLwXBaYHantmfpPXTX4TbN9/BmyZR8mSxBYVhr0o93YVzefF
aQntHUOghria2QJomvUKcZt4GeVg+qNsehPTvFu4U3DPqRGprgS60oqKPKw5XiDH3ywFTxoT1Jwi
eLqzJeCW+wWtqoP7+rLWTa3Yvo2/Mdd/HwgvohN3Ccv/hA5brEz9FM2dL1p18d2v23jzQCdgaazw
DLrVzLtkNUvvRuk6XtlaYmPJwAtSCau8KOwvIxK30cMkfjOLVot4k26zN+ZNbzJTVFOL8KZphdJt
7HO9Mcb/8R6sNMPq/53cq+pBmdASVlyqy6gf3SRZ1raff67lt675YTvPuuVFLkKPOd39NRfyFmd8
m6yQA9LCdSSDsKhSOfs5CjfXxLoAL29TQMuCV7Lwakc0pQXuO07pWnadTr5hDsBkk96Z0jb0VUbR
NqfTQ7BYRDjV1urK4Py5ExUBpuX7L0qHKXXo+r7qrSUv8zHrc7KMbk4QRyBXeqs9Zi9NpeAyR4Uw
Sb1ZvFnBYl3fxZMvSf4dnnTv0s3seoNtEw6iNmyA1BDsiPu3eN+FH6aIFg98FvaiuXQsbsC0H3ay
BjjhESos4e7pcMB8P3wWi3Rrp90V4NJlIaFr+ZQdAdM8naaGGXcdbWDSUYYxqAw3efRa6dXF4mzZ
yeqaWChX3r3yrg75YoUnMWak/JcLe7yna3rRGPg84Tc0hl1RepYsViCjkbknnyfxcjZaWawcVwjc
+fCCZkDXdQQKfY+zHuPnf3w+hQFSBiY5a08Qhz0tjD0g3IlQeq0sogxd/fjpH+///vEDpiiYYMlv
v3yi0/cwhVC/YJ9AdGwcdTZR+gxkcEvpBl5bBXHAPFnG8Pzj/HY9/hQ9pNv8VxBWNsZ5jXPzksA6
fNdTjDKPNtjc7mhtSyKBxl7m2sRNkFAvNn2PkLUXViO/S6a0DYeeK5tfYxumQwEF2VLbnbvcq8tp
k8cSrTX8aecQlvd05TDR8i56yOhWPdLUk9eP5Z8xLXLz5wzTsZ24BP3abfh4hoYAwoz6tpjsyala
D8I6hk7/ovDTQxrIK5d0OaGcGNjOX4NluqBcXgmbDXe6SvFJfMhgf9tObpN8NAHgpOM2QoQmjNp8
WhXLld+Az2dK47MnDgnAqNo+WALbBzilxfo1+zwKwShctJphmn4yB8hMV9Tm7jOsCwqCF6Hp7qI7
povjCv9zJY0LkBnDjcDMd8TMWTyPtsucBk1klPVZ30hWPgIBZdzpYp2G7N12Dso0KeguotUXuryI
SSz7ED2Z1SZKlhjEKnnp6BOjxvxWcVG8ko5Z5dU7ok3QVJkAkyF/GfZKrsl+1bKdNausq/eijnor
MOxYo5v4Jlabxp01q/KGWIDnUq8D24rvcwx3LW3lTOBLInWJ7FTP9getiHb5Mhz4PLyMWdMnYKEH
kslncwXdqlmbCZ62cGwM/RItXJxHjYc/96KCh+Bscx+PR6NaDxWsnoueTgkViB8EbY2+vBpNc5oo
01cDt4iLo9ZlebymMgqQ7d5X/mWMW9JHZeFYE3LGVIWlAgcOyl7nO0SF7ycVQ0a/jmcnqdl5wSBg
wfM5mUIHLxKyJN0Qbzwe79hy2/semBilRPu4CHwa7VpjhrS+IMgpUz4dXAYWSBIHjWW3qu25hdxd
NevQHuFbaPtErpbU4B2q7uFmFX+jCY2kLNqxvkQrVGccDe6v2es/yX8dn2KQr0bJ0MnwgjYwbnSI
AnGnqFhAmoadaQvTs7XTRW7QIX65HQaDGjMvR7ObOQsHocdazO0MKxr9xj0e0LVQrq0JLItnKHp3
TQeIaXI4BIbVaYbBM2HLnlROggzDmA8DbxgFXW31eB8aOvH5NhM0D+XAd6KsCs7bNfbY0Ew9xyy9
Wy02ER2LlthPiYW9w5D1oShscuqt1IGVWctrmBAt1/02zqNi0FV8h5VQNgJuzmVwYbxUfgOtPmhI
MIUBM/i4kcnlIqcm8b7ae5Ewcl5oY/wad/7ujhAaGaF00Kfd04FFNnDkhKvaKfHSBkWJ/wYB2vKl
meKOTn0bMy5/gJdf282yuEQilRGrxtyK9rpCORLWgq7MzoRwi74GmS2pyRcw7wYj7pFvGG4h5h1n
tJX5KNL0SerRwikafnzr+PsRG3Ll8b0fV9wB+uBpe1JeGmR5u9U+6mmRxTmKxLz+7ZdP10/KQNof
NjUX0m/qF5eGpehPx1t1qcOujdt+Va46B0s7M6DUypyt2x4o9kR4qCAKFUQOQieOjVZwVEySjODx
dooRZQ+raVHCG9/DM+WYawtCnVmOhdjNi2Nq4/O6A4cnhyiKnggs91+vowNiy866wpsUPjdO+c6Q
CEs5XViPWY02L9M7iuSyiLPxMAyDUD434HFP8o5A6dsCvAqYMM1HEpgzQsA6h6WSO8FyN6wkN7j7
LEZ0JJHSir4tsGf07XKV/XAPLtmXxyy1u7u7qztxlW4WYwbaMTY/LfPQSvOaJpvpMob3b67Bx4Cv
4/LHxTDwjSgHk5sAuvwX1oeYj/jhBiQHPzJM8hk8w49PbVOG4t0TsaQ3iQH8rr0MXsar2TUsEr6c
J8vlNRzR4j/ipxHH0e76EeYDB4Aik+pDuoqv2Xez7e364zLGg8OPD5/jZTwFeVyXD3l8g86VSThy
OT2GbaD9SVEoeHeKwIWdXZNicoTLkCxsiTGhdgqYhu4uNO05Y66taiHCI7updnGwxko5Zf2HvWKn
p1opzaGqlL216JtSH6+CK1Es7BHFKHdgagw/xhe7lNv/+ZSs/m7Q5vqVIa3N4/t8jO8o2Wu9718V
b3nc8It/mE+i2v4xtyLPVrhQyp1MDQy70ei9MvVHzhbMKyoZ+5AsOsqyeENG18AHwq2ThxcEKHMa
CzsDjkU6iaZf6DADrnLYoRnZbwDhBCG57ludbLdHnAXdKBO8HMGWDLY7mjxg5edokiwUfe8RmsyD
y+oN3iA/B1BVyIXsTvhqOJFDNX/1/VFNEZxTYDO4xjcfeDUnnWLBbxEs7HILOO8eQgUMlbp3hT7n
HoI7sfg20vJliuHL4kBJNiZVgRpwIS7qyGmBDdq6wsnK4KTipheOm2kVtQ+1hS52EWNjhCXJ5MI9
n8tB4ER21EDx6UC8duxsXn8kLwMxJcPGadEHN9n6vnJKXQ77C33zUHbk39a4sr4fYKOl8wc7iW6R
Hx9IvLNll3ZeXFp4K68JDmX/SjJbX1XOPdFi3OP5VYRcffCbdIOxaODZxDauYYH9nj3ZalJt4q7c
r/QmXJawI2/icd0t3kQwr/Amsptknv8On1DrUjAm+5G2LdqJiuR3ZyxlRxxQsNEa5o5bCU0Z5MMh
noWh30qHz0I57sKT5DQY6o25OT3qy2hoK3SXEPCYS4mRPFKMMDGn+o8GKlM7eIitlV1S8d1gKNtO
TACmCoykZI6A4OIDHSMCyZ4WuvSEcdIbMtSU5jfxZo1BPDLShL1TQ91gO6sgMaipi7ZrBJbPwgwy
a8iRC96LKtoHLnq5+3AAcDlht4Exsqwy5MhmILoZufFWZX/cw8i8CXWVGXbXnNzJzr6zg3+s4cvf
8I7hId1i7X2MNwXIIQ9fylXDu4nVDP5epfDXf0Tfos+7uGEx7vfmLfGq+IJ/w4zhy8/vPn/++OEK
h1wTWcEKq5w493vAXNrL87GStle4pQl3xMCJyqSNgpMFhoB+bgTWl8CfUyem7A7WBKLbOU2earUp
FBwwRSWziQybQTMLxa6PDR1eIMaIOowRfxGMkSLQulOMWY6wSU9F0ENpGLUrta4bTfkKaWXO8yML
D4v2kC3qXVLHUtWWIOWgy2M7pa9klWWgYAtvubrnhyh8rrsGEJqxT7nREl0cO2Qddsi/CnaEnuey
1sx2dKkjyF+B8OAYdUM1kFGm79n5y980dMqF75K0uzfZaqCsofj28YQmXbpKn4yIbPLZTQynsWmW
HYuNMYAEdv6nPkkMPsba45iFAAHy/E93hlorynIBf5yayRyPvR/uneEijaI5hseMZuwJkwJY7Ljp
tJUxlwTRWTzZLkaTdPYwwnvlxSbdrmaHoZgiOOG4n7B6zd9XlhO9B4RlQvuyldY3PfjqgQraaVKp
PwXt3B6tPm1umMesOtAe8qhhbjV56yUr1PORRP04pKLBCpRotVoLGCwbKc5CMijAJPMDZGbvRvsO
5kPjrpBCd4snJ/qwF68/ZaGXgrVTilUKnw8uKh3jdL3RqRbmBnZ4mM7jUARTBMrSqeylnShNLwtb
9r5yima0nipsQlr7fc80XllCucqN6rRCZ34vuLt/N+3Ds9+LAX+3980UnDfbdv+VjdDZGz1Nt/zO
KbgAsmhsPNLKdbDFSx5bKFXES/aQaQTuWh7dlz0Nj64qMGri1Bas/8fMbzaoKLan5ExVlkw5bapu
YikqTJFNzO90ROsMy04pmKjechNPbtFt2DVBs9aYmiwS1ZXR7w9quxNv5J4cu1/F1rdGjh2w9Wv8
7MORzL0b9/wWu7rpzVJcRI+i9XoaTW/iqsZ2KhSgm1o0xbA43z/cwAafp6YfHJ0EarBLd6gjVdnc
AqygG3d2X6gls/E83bjJFwk/VNiRrpJXb7UKXPjYwqUcqGZDLs/wlVyCg8DJi+IOCgxHWpoSG07o
AcCAC//28UCF2iarxTI2PQujKZ7/1sn+6ejewsLtK95wwOgkogIK2uDpK/YtSnHvC0GCHJmFqN2F
+NC6Vk4DGeEpzCpqulhL06Urmpn+70X9zazoJkrfM8DpzukmhTuCTFXmN5KS+h2qO30S8zQDfQku
qC/cRuzPOtYXTle8DbhTuNdVrMKCIr5bzW+HZngYpiul2mquLuPshMq6FKqkhQpTkk2M3Wp/9Rk1
wi2HvGLE9uktTrm9zrJVFgZuju1RL6iw0oIDrGuNlbQThy2vOxSrJiN2oTQJ4Q7jCKsCYTsz0I8V
RSHGJOz3vkuH3+MBWuA3BTRuF4TiLPimgcbpRCEcV82n0/YQZ8JWi7Zf0xbNZtnoJsFI08MoyeNb
umuJj93Tgr5HfcuocV2oI5qOS/NUYfyX9zzoyVxxWK5UhwoU0GiKrVVZ0OE48OXrNtl8oU+kUmHX
m0BfEAZsbr9kF8Ui+iGU9+yA6MTK0dkzWDZTt7wv0asLqvymR9ujKJc5l5njGjpQpsHnEsPqjye3
q0Uy/+4WHLz8YR1fm18f47fwLej3nVQU6EArJgZM+Z4SvCNrnaXTraGWnKW3EfwbMQkfPFrCJOhQ
DpI8SM072UCnmzTLiJCSiTrvHobumsXd6hMdHuJYBmc9B9eYJ+3idEuH5diJvyKS5nOGrQBaDNiV
+IOuZn0XT7Kvy8rwoeDYHrLVeKvZJL2HrQlOMInpTpGskjyBeT6uvyXoEOBNnuxE4KWM8SZvYymx
cyNAbzNPOvMdjdprPzCGpIpJmuXMRpGpCCmuEbE1LT2+72GCpMvElev4j8s6TdMvCV11bdgoRYtR
94Pj1eOPNnE0G83iVUKruAQvzO046SwB0/c0T+m7adNRRPUz9aqBwfODP06HQHVeFHQU369h/6fF
yxUb+C51wO7iXcQpAqVJhFzE+fvtBrX75xQ7LtO8oNhWknsq7Efq5z9PwDHfg3fyONObePrl15vo
ccCPeEP6HhwJjBr/LXtvOpj+d5Lf7H7hNzgeRckymizjn9LNvz89/X/G+U1KJIFxc0snvS5Up9CY
BFNYkQaXFg8SPTohfyOduYvy6U2lujDpGOZqqS21TxIwbDwfdCmJCookJJLhzOt0uNt0ht0hs3g5
J/ddoRnmzbsIW58v7JrRhQJM5E6YqF0nvLv8ns0sd9AM85P6me7T2KaND3kXxiVD8m99kScgPTvB
sAtrDzLfxLfpNzpEzjG9zsnPaj7pYni75BkycIQXewbaqwbPy+26xyr8ItXQHGHKQU1Ozij+Zq7m
V+iERFZAQxY2Vskl6TD7abrJHvNZbtZv57CdXeebbXyy7w98p1DTGZM1/DLgW24w5rF8gJ/F4Fyi
o09G3TQLHe/4VKPgxtXVOJomM/HkhK1Xi+P4Bn7LGt8QTAofLEQzoRrg0ukWfxtl5G11gF4E4H3H
i7+3AJQOAN5qP+xVB+jEm6JTbNVc/XPnSkzNpcmwdSDr1PaiBHRYALs56PNHflKWdUGXMppGq2lM
tyTFvvNO+0S9HE1g5bMll50jBZjoVozpqgDFGjgMheeIDn49OhyKlM5cwr4rQXXvz/PVsgp/VdB+
difFKzhddsg0YUqCAMe00h2OVwAuDkeNpmA02dQIih7ymO8N6rLN50xP6Iw2zKV1y16q0c9Vat21
SxLNCcw1wqjVH5YYKDaOcUtuqpawObSOvm7jzQMGp6Jbo0Zfr4cf+TCQw3d8+FENgw/DgJ10VufY
TkReToF9r8MlXtqXWEjvecWqnSo2ztOxHQw66lcAglBKN3RC6p0l45mc6x/5OgA7RyfpgqjplJzp
pHSC07jCpM/xIMieV+t8rdprnWnPg2zJFgZ7JrAy3+tSqMsKoTKhO5oTqgic8YzmFGLG72R4u2DL
RlOBcCya6xNLtGppLKZe3MyWKPaAjdfp6s/WlQDLBspLx92BeTspv4H3cMkaIxhYe0KfoT3wTJ3y
UgK7Mhkih5qtH+3DqdAkOKp6d1lLyhidcnwrpPrByPCXeBndG5/3p3QzSWZwPIMXv/3y6TM8CJ23
z5HOXzpl97rKdGmVKaCevJxQtVN80SrUm2gdl3uZgYFKgiMdYvqbPn+8moK0oXg35D/B/49lafCd
AD4AvrV7VHj5+Cnwunjk8hYSCzc26RI/cyh+mgOoDcWHqyv4NfPX/vsOun8NuTYZEfDbRxtlkTYS
cl2JM/X9bGyP+RYfEqMr8L+lNdl35tGoHbzoUsaCJhjx8ldiHi2zmMjpClouxWPCtRnIVEr/KZQw
EPKvP3N60Z1auDsitt1R9bDKRZ0j4z8pnHHmy5eLZ8oPn/3hjtXw6el8Lv5fdM1E58aJ2JmPqftw
hyqTUJgWpgS1Q6xaVmCVH15QnF5jn/nbLhvD1IPDMTNL/ohHq3iR5ok1Yi0D3zHq6bqEljxH5MiR
zTDfpYGsfMH2qOUL3gV8J36A0NV+K832/8h71ia3jSP/Cr+sneiKEuY9I9dWKpGtxFW6yHVWch+v
sCR2FzJJMAS4u8qvv+kBySWJAdh40xWXH3pY6Of0dPf0g0hY54yKgKsBJtssjeeRW9nseubnr3NI
/M/U1I0uq5KCQeQwXB7yfv+SBgJwecjNw124WD+GOb/n83+Gm2/FlBVRwAF5BUhgVk62kEClEkAJ
FKd0CC54qVeyDfFdYGBQk/lK2b+ZzZMZPAru7UF5NTCVBPkceQEalNTvCqItYLeb7SJsZWDzkO4C
uCvBTl9XLkFOD95h/RUaDHLD+uLrC3sfNB5d+qcCTDNRlxfXVoAso9Vfcwyrf2SfBJ7TBzuHL1e5
VdF33JEBVSWLJEmjlTUbF5sklAwwm45Q5B41ZxQwmj2GqwcMQjKAJ1zeDzvWi21JlYaCTQ+kG70u
61jJoZevLqIaqg2bJgmOXBTYoFl4hs+r6qC2m1LE6tRm/N3ET2Fmf2eTPLuZu+UMh7JufnnmTxEN
pD9eeU8ywqCPAaP21UN2ouVdNJ9bIBYhD6+5EQ1BvBLoylSsR7CIn+zt/zA7LPScbcL0sWQ5HSHW
8CM21hahI6Sct0L5TxGb8FZQ61mTCkwIBcPaJf1pZq/jB5jIjDKsTGEWjZaIHxbZwjVl2fHo385g
LaVSrfX3BE7BXBiYhqD7Y2KFOaZu1FnTA+pmkkyf0n2ZpdcAKQXzh/ojrq4tpJ0cm1aXj+INGb5d
uTgF2mT2y5s30ToKs7LaKIK95Kv1F+wAxOyrfNa7x7vikC42AYa5tJGcK2wQJNKkEPVBOyrvzmvo
AmaDHM0afu6VaUVheWb8Env4BUeZGB+0Bx/yXJCGn3v08iJoytrY8zkjZcOvffUhF5imtP7m+xxB
HU3f5xZe1tGmarT0Yid0w89Fns8xRZsK9t7zOU5YUy2e+7AztCmxK9/nhG6qdzPf5xCTOko+l/g+
R2lTNV57T4VsKop/+Y5sY7XbeA1AU61LvWciaMq5zPc5xCSDks9t/Se2KbFPvs8hnnFKPvfsvSga
a92LF7ug6Zn45sUuaErsvz2fs/F4U1EQH3baNCWW+j5neNPPMT92TXnHvbxrLArhxS5oei1KL++a
uJ3uc8r3OSmbmgDtxc401Tvj/1zTeyzwSRaxAbCO30waX9pbN97/2Fn29swygdkkUhll7GcaTx9t
RF5Zuyg4h00s5e88RThdTNGfpemvgKV/PBdtehQtDheKe61ywRgjYlrHPm6NWINCbQErd0jQRr6H
jJ6rVj+86y2TLCqfkKxh2yvnLeCeP3Q76Cdgi7lLThmm8xkhz0W5PHljF6QTcapAtqavrAyPGe3G
9feqLpUZbgU1IXrU86II6YDBi3IGc6PGpE82uaFK5Qu1Jy51l7dW+HcDQLeTbHqRPcXzKHGFWdGm
5dsCtAWgzD1rRn11pYuWbCJQEQLzBRzRXRYv3SvCcaoUai1gCJC3E5hpPpFUNYT4qm0XYB/ufOLd
OWxU9Y3fDWzqhU0I6jpohYJ/CAfjciJRvmWZsrlHjmwDRB71W3oL9ghMmdeqW9U6driKrQCB7l6o
Vb6jdWNgwDWvA7V0HxX00ft2UnGh3OzFbmAk3sVXxEYJOqgDwufShmt4OEhzO3RaBLhbC5v6pklY
+jThAwH/0yzZrrLbwIeEYEMhketWoeUXsJBGDI3FD8ejTLw4KdP6GK+SisEehBpo3mxjmfIr+eTo
gqNX9mIJ1z8qBjmnypqD8Ohg5WD9++RIwAMNtqk185JVVG36iOamwzvlBJ730ZFNFJctFdXVdEWr
GcxLe4qjs5tssfAswZUTCiODgjEgE86RgZZPZ04qBay2LNe8QBkz/X2dGHuJcMz4UwuCV2ojwFps
yyr1JbMBr1GVEuLdS4jBR60N0Q3Iu8zB/OtMNWDemYXaBQ2nhgpCBP9GIBjjxXUdZr4uFF8VX47N
RBLVgobDx0/Zky/G1hOiUOWeDTnknWREIKkj6zCosNxtuQ7T9O3X9UMhVJFuYDBvfWIOc8p8W1KC
QGp4zwsI1RjtFdWg0oX3hlAoMsrma9rvPyz2KRM32fgkfbIbH7+LQKsn0zEqbQSIqjcQyOsKaPaO
daETLU19QI18dPfSVqWGl4e2hnc7Vp7w0LfpmHLrLynRKWmloQGutrRaLbPn5OBRpP7oTZH6UCpS
8W/flivMKTbe7RQ0QOUcsSpaCXHvUkltej+j/iMpiFuS1JX67jvJvXqraFPGPseLxTSNVkDZv7a5
GmfbjQ11YPeq9VqrX3oCYp2ToLVQD62fWTKF954pTP/xOuXM9CjP3fqEs9FXXvHCyLgWhzhfZTRP
MijS9Q55F9b+KcGH0R8pSTtK3FImKDmcPlsM/K0TAopmm1xSr+LbsS26j1fRLxsLdJN9y0X1uWLC
JZkIg6qml9Vw3YA9G/cvonBTkQjXTE8EKh/pG33m+JfveoCN9eWPusL+cejgrFKQyyNYH8N0ekKe
f0WLgNlpHXNwnWyyUv6hnr86JI+J7shzvq/vPjJwJaCChQ4po1q2pwzaG6fhfSGICLcv091ClsOi
Nm/q2vk9KNIvDxQ7xskFlm7326FAoNBNI2FWdeU5wYydfZgewc1BFoaZGaTLpZpxO59qhmA3g34x
GfSHSbq9wyOCOlp4RE4W0yP1z7oN9r+oNk3dUP9ev1zUP4bKcenOtJCiemB1I5bXUEKG2ThVcg9i
JgXn772uZzDgDSg+unCfH+OF/XcYZyXpbbd0R1LRG1/RR4qbCc4LRuABjUBJlvi75Th06wddAXoK
F9vo833p/kxFMLw11aD2U2qjl1nknmymhz6jkhXTAnJSpvJ2uDwR4DAjvBwS7F0PeBckrl1jj/MQ
C7sjdtN596vLdr9fspQN0hCUtsDoKM5YzR4t/Vn4kCes7hbh6jf7081D5H/mVdbHQ4VPl2Gv82oj
+xtwdqdfw6ew3GumXFjnElMKSYJqOazz+COOLkcEMGSfUkartIxc7tyGsHRr48XlHva3kpIEGEPd
A4FlDrtgUJZAG9rfmoZe8gak5cX3gLqvB89+2cg2GtFERAxzM9YQUVnQIWAvgZCdUAcxB4o8pD6U
k5dsfjtzOf1lhBqKYhoQ10W98Q7JZZSmYIHyFw/PPlxMbfclTlzY4qEodwNUe+DD4ZNt+YDKEyKU
8CK4XOuhNwQBr6xl+cUq3o8//f3nn36cWgDxw2p6WPX2WPJuJgUMfK/M+JLLHdIXAE/DLAtnv/mn
wyiBy+Q1ojpJs7IpckyZHqmGWX1VVBOuIMnXH9mrEp+OG2HDAkH6pT0PF6roh2pf1OFvQj80e1S7
VIwEqIn8ZdfycpElv0Wr+N8R+FBTGDGVv00XXABYe08CYpRhLXnurPsvZcMxYIRVT/q0SlZpZr3y
cDP/peIKVfbbRAvRn2p5EKnUMjeO3PTDlHWYPVYdMq6C/hixB37BxsCbdNDTjeJi8FmyKKW/uhqD
0Fb074BX0y+ppR/T5FuKTAUK+bYr750KYbPQrD/yd5u2Kq9Ve79w2g/pqQ2sZo9+n05a51b0R3kO
uppy2OQguqEcymWjVfa/+zeLcFH2qkWJaSvweLVKZrAO6ymeZfHSq1o2Ju9Kqqcvkv6XGM0mjMkO
NfnsGbRKjjZwJph1TEXzVT9EJwo1SIUwLCDqA0RgwAomy03YZfHt067+GwjCFyFMQ5Je0kU2vQth
wXpZ/oRRGLTBeGumncGaWkLfvvgqw22sovuBlhYTbtTGCO1pWyVQJAlDj8MsXBTGxlBl74pqL+Fy
DfPRPCo33LRUJaDqV6hulO8hyn79519/TGbbpdu6W5pCloGZMElb0hgt19ZYpE++WZ9cT4xkvZCV
3H0tqSGCAarwRFhFFm9LFmrOVSmYM7KiRT7PK8/Bx6vQ/uwpgvxvnpbzFjVoa4AxPXoYJOD7FomF
46zLt+/S/6WPOdJY/02hgmQE/P1jw2Y2DRdx6M07cmjkkrStXJEX+YWjLxrBeQ1737sdZn+4ofTj
n3/+9P6GBuF6Ha3mHx7jxfwPf7Q//y/7T76A7PBr9I8/zHfq//YumX97a2FEm799+e9Pt/Y3b9iH
tf0zbq7C7ff3CUgyih8es/d3yWL+g3XIk837TTT//ob99DGMF9tNZP93eG6OYfsIAgH24d3a/mEL
64d3787speCuUxajj2W8A+4U6tXhZQczr7f0q8datrI+YjzfN93mUzX9c8VtkFDdfYrRgFyp0VAJ
POowTJ8xhthXXcsPdLoOSwbaCyip4KRbfc+BrpIsvve7r1pMUDOeMLQuo+wxmeMMF3F1tJhFI/zy
1vV8oISvrpQa+xeTtXSo4OgoAnXrGCZJBJNiqC75tt4/bUY2fnOG318yx91zahX2l0vKXBnwAW7e
0LjMbq2lWcR5zHhDP4ZZsryhf3nxPDSBGVb94ABN0hb46WSX/PEO3u97BRrNlrujWfQrmNK9wn41
Cx7Y1WULHcImhaImeyiHBE894JXoV9VgpMl0Ga7i+6hQU+haXelg5LPhyf/q1zrRO2A37KNM43W/
Krde2Cu/4MdOmJFDWNavaVIAbqyq0UGAlxkaIay6DUL/Jk39F4s9bKxfpSt0KTq2d3KPryDT+hja
sNANaYO6iczl61Duj6KQUqun9j6/hGhM6RmGnjyQn9rwc1my/kVyieuJJuoyuE30sF1A7VE9vunA
OefVeqsQfJOkI0LOS/X8I7mhHV61AOhNFBeqBCtfemBUIGZsBIrob6vZ4yZZJdvUbe3xP3VC1l/X
kdSFfQwIoIxao2L6oNKh4Z6UbPR4FNWV7bMPmI1vLkeR5D2rLp7bbxrZrylyP78lQVDcmhDYvxRB
nVB9mfpdKZr9d/Sye2Pyd8wRjFHtkE4I6bhBPV/hycxfiiEb5N+6pSY8UN1D3JWEJ/7XHSWt2ehW
nK6h71R9LyUmwO5TxM6xtnj4k8jwxIaq+DL1YJevOYNJNKK6QZ2YOna6CLa6IgP6fmk3FFuva2pd
oWizCu0PVpn97bcvPprdLhDTEdB0Md1nSF/bjD0PVipwJRDNgZ48Wk23buGJB3LqnWTLG5DbRX3p
rnr+xd9J34cM9v/Drpn2xVdqJu05V7R74D5obg8LNT0J3idv6wHjSumQ1J2dqWotVy6L3S2x5QgU
iRf2hsa0aA6s7ELzq8OJYcZK0KCRknhPgoYdC7IFTIRy+HSCMqsXoiWtZcU+REIFLaoTAkVXDon6
3U9jo4zK7HQNEMx7H3NLi0B48vxMV5fbRRbbCz87gnT4Nae28coKysK9Db6Llw/k9mETWR/BOr0v
+1XP9pfpbXgXuZ9AG6PHJSZUWhrBLRbMtN9udflFRRsTtB6hh3i4QW1EZWfPN/aUgSXYjT15l6zC
O6hicc303jgVyghQc2aRkNabxMoxTR1E8PQ28d028/vWRGtXa94dnRbyOlmlEVQ0ZJF/d7v19qDX
FDNtkZVOEXKxcD4axKol7PLKlyW/fVsLNafUH5PNLfkO0nhfvq0jl717V4Y3CZS9zvkwqJ9NuoNU
binCviwzdU2wjFM5Cr4vFfx98bR8uI5dhqmRZ/KCNu76dUtPHXSzq+ryjgswjrpUTwe33oVpPJvO
o1UczT075iyfCbexRwdEOsHUO++wv1t2BRuS3zuwru/cnTP/6gOlJ6gWy0ZwnbD9cImycsY0DaKl
Ha/u4xX09i+SZO0fWY6Zpd0hPGUGpo/oQeGhpj10CE8ODE+pYfmpGBsUnhZyWPmxYc8fKpLpEh4j
A+vLsPwkig+rMF3ciPUUdNgDKAc22KidbUw1uOnLGrqIlNpe9JjFeI3gwlvcfpSlfyQa7B6iGrP9
5wICtRjNh4VHdMAHBYhasXkhND165Euec5/ZPTm5J748D2JF7MpFbul3h4e/4uIJ+A8lxgwrYjqs
iLkcGB5nw8JDXWYdwtPD0scwk8m7pE8MbBEIHVg/g2HhETUwP4eFJ+Ww/GRy4PNAuvJ9YLRyReJY
awULylgH0LJ4GcECPEzyljLo2e/gELp6hNA5VslTtCn17JR1TDltDy9vD0k9Gbkp8FL0CsAQzOTh
SxzLJzpGL+Esmy7DrHRnEuWux7+y+A2t8l6oFdWGLIBOItigXQN6s11r1aPvasAo37Umu/T2zhLF
+QT1RZxmJ1u+3hTKhslECz04Hjc0eGP/sX97EBKGDo9QYHy84WZ4GcGfvWF/vqEfobdg/+Rvf0UX
AwfHLkrHkF9dNKXmV4dmroLwd2D8uqioGkMX6zJ3dD19fn6mbzHKStgIWoA9SYwMj1ydIyTE4Pjd
1zVGbDRFrHNetBrxvGD4GJCxEMQoYjC8uUFZQXVdt/UN++g9I/LK0KReNAN+bWiWYcrotWHKvEZH
XxuawosoagfvsOfI/scn+BEuxAsc/QChjS/KMsHgqAIWB1Q/ff7w509/+/zrl3L7qQQbF0fU1TP8
WZ/6eEWGP8xvfIol+RgRSkHHhRIw02NwVL5/871POmaMYJO+sf94sRleRG9K7JASw5+fNyc202sd
GRsZK4TpIYyIUeRYF1HN5Bh4fmiAqlJ8DOtVB02wbKgJYR2jCdtMm3BUjuwTRS/hcr2I3q6izIse
G4WTXlSGd8m8niG5unDw9PMw6WQPwP649quNO+fq90Xkf6ygDMav1ZjHxMconJ9vYXyIsvxh1jsn
0AZ5onre9AXIFxonciaf/dYJtp4XVgUTRiSqqaIVW8q4wgV1qYPr4wrXqIKuxlxZuz0q5doCg4YM
RTLmFxv6DsaZQKKKC9txplxhGPyXXSVj7A/qG9HO+9veBtgONyEUp6NgfNLhVkC4pMdNMorZC1dL
845Xflbbb+4WBrS3CX1oHzcTo1CZ9za8KT2TRCDLJ0fhDGG4WsSmrLlgyTmfcFQGYByrZVC7B9ox
p1xxoN5KXy1vrMmRnWnO82OcReADg59qMfLvDqPK/qB6vCIzyFME0zKyl8LgzglMReji+z7C4vU0
nM+hr/Z1F3dhPjiD5U0YS2pqM/YoHvBXRcIEDWJ6gQ2/728fFjCNXfYD9ZXjUbqbCba9y8elp/71
SRYXQ3rHxb/KDTy4fvjgpu2XDDZRAUz1U73AreY2yfdpdAD6Kdps4nkEnpKbQ54brtTSPYvip2g+
TbMwcyMXZ7B4Or7PvsYl2uiayll9lIqVoPDTx3CzinxbPw1XlMIqndbEn9i0/eoql0rI9k7jDf0I
tN6wv8wsQmmU3bAf//Hl41R/t/vfb280u5EC/i20+7E6n1pnDb5pLyl35d0tkrs9ovnc+FIPgXIO
Rh9TdsKDJpAz13xXEA+hEGRiYv8jsPWu37PET2GWs5gYjPfRF3wC20rMqPA1HZl+TMtwn/D1yPRj
Zlz0Cp+MCh/1fNsXfNiUi7kd+uQ/MSPLv7Lfo0fLSy5k0boCfZztLyww9+Klg75uwrIrmBjFJjwY
URUYt17qmLYIRnRRHYyKgOTjMkAqNS78gI0KX6lx4Wst/3P1T/CJEiPrnxj5/JFxLkM+MdXbk8a5
C/lEYooOMVfhyS14mLjsuwmJMG6pUG2wDZMDHWjcehOvTkn0pHMpZOACrgYCx6DiIFBB9+Lzb6WX
1ocxciheChgHQnQ3xLmc5V2yXc3DzTf/Ug5uAUo9EHVSTrimjLambgPjDiBfWJ76CbSCfdO6A1iv
A7ZzqIdfcobH/RI5WRAK6xEn1uU7vfO3abQhQyCQ77Gc6LO5Mn3Bn0f34XaReRAQchju0yL35ZnD
A8TTIeAfmM8Hgb+Knkv5L6ju7KSVZOA17smnpyNmiBz1hKmzSViDnzBF9Xgn7GwBztAnTGkyCPzy
44XysMgF4OH8m3teyvcvT8PVvHxosSA8wLWbXwR7UjOUPDydL7hmAW7obE36/JuP4Q1RdAEsX4Bh
3ZDNoeYNqri9SwwMc/3cVbEJQStOGWDvyEJiWL9gp+sw9cZjE02DDtlsfwQLNcJFehjU9I//+eRP
AxrraIouNXdXgLJ1cxPdEX1n8SJHv37GgZ3dUmc1lnAChkUkn85pvWHVOzvoZXYEg7CDXmYHZrcF
XjWPyl6p/21YG9yyrXOYtTfuVBzg9eKbd+2Owgw8aYMYpe+Kg/dQgWATCVTWqlFDGK6G5Ah2HoQO
IQoSGN0zauqdZ+K7IT0Kw9vHQeCpBvVqSEeQg2GVS26PcPr8y5efP//910k9KPlYPIYpS2xFv0/Y
ph5QvKzdMMN5sr1beF0vSq0XRAWm9+8cfG2RV/yBJuogOO8XaY+cOKY9o7Gc/AISEsb+DSGgBkLg
qBqLboXAmggeJYRsE6+X8crf5EY1nTDMiMEqctMom2bRcj29jxd5dAk/cI0dpxhOqzH8Pwiptmlx
qCdqLCnWfM2SeXTLAvVdI52p5PB5XKTcEgneoYGvAT7nHaGmi9ONx8Dyd7m08f5tiTAJRb0DjKlu
Snd2/AdWNqbomMpmMLOShtQ10taS961rShvduWljA2gbcysT1KimDVf4NaC6BTS4bnUjNJBd27ah
tA1G+45p2wJ6ZfcovXK3jTDFeOfGjQ6gbvk+mGBc48bIld2lqFqYUY0bpaxr6zaUuonqLQL9q5vk
16VurO1N1bu6qZon9MefPv305aeriUslGVPhtL62sJRde6gQdJnE3mkbGUDbyO7lZ0zzRgJ+bbep
uXLzFkB1dce36VDqJviokakyVxaYEnbll6kwKujhMh1K32QwcrAg1ZV5b+TKg1ON2h9yrW8K+spu
M0WuPDaUipjfa1JfXpnvotu+2/YtbKqU/N0m1QW/tjcUfuWBESEUo5DsGpPaEpXlYINJ22CGTlWx
sv/HWVYLwWtKKXMRXJewUe3LIwpbMsq7PtmDJXQJuSphEyr5dUubmaAey64rocq1uS6BB1xcuS03
QdC5MR8q5OdMXJu4r/zqtp5k537aYNJGTXoZTtq6iSsxaEKPENqDMR9M3oJdl7zVlV/eohGGmALm
kjYnVeiTbmNOOq0fl7RnxLxF/P9P3rU1t20s6b/CF/thaxHN/ZIql1c3xynr2Iotx44fkoJIUMKa
IngIUpLz63d6QEoUOQAG5ABizj5EthSZfZmenu6Z7q9VMPWn2Ti3LbvQfLzEjXXCiDDMejRo3LOG
h2N+YzhKr64fzdJqZfnNq9l0nqy6hKcIOTuS2VCykqJrUdc7TinpcfpU4Yfz2bXZKn/HsHDRW7tc
/7lrIOmzrwFhPcHl/hj9qsdSwRUOc2Wr3rbaNne19tixb+bervYF1Z7ar39Z3GYF4OmEPd/6m63G
BOmO/nN5NYw024OjRdR0owa3tu71vQhX5VLQ/1+nJ0fNwsTWnAqSe3CKw5XdHriWlk8QTp/1/BZE
7YtPaUvRC59C99WntGxg4pkDhCBZWWKoxgD2GI/7yagcrQojLv1m0jQk6SYmNCAZ+Fz2sRpqw2Sa
TN1EjBK5zzjvWhrLpSxwM5c0nVPWzG7xGc4XkiQT1OuOvI7kTXJzmUyjy3hgIanusunADdbJMIC0
q4BSOokf9LO5kX0Yp6O5+dUn94n25m/zKl57IYeH5sqBdbjWxDbMsufihHpdYLbPCOYM7QUjRJM9
0Yigej8YoWtNIs9nrp7dRx3sG70nRkLInhgJ4vo5Pb7zgQYDPmOIhcomyThKxv1skI6vSsG3KeIh
Tz0Y4jafDSPlONex6BHp16rShNxdOh5kd3mECccOqqpHueQhiBaPbkuNOkH9KCWiR1WzAG03tHZM
G4Yt25MzC0ilIKQjchQbVfohqIcgZ+J3hrEXZHgzS3FOSjV2QpAMoMqVuBpADpP+dRbFedUmxJx6
oV9wLymH0+wmmmST+cTtYxTpMa81rCNnomM7lXOW3iTZ3CxjFv2dTDMnVUh3af3QBOZB1aLKLicM
Z8ajTqeZOzlTivUIqW/42KS61YANhngI+RYE0/EwHaczQKDOJu7Lg/pWucD0aKf0PMrEntDz3Y2u
DBcqrES3y8ex6JQeVbLb5etaPtHtdqCsW3uhtGv5Ol6/+tj/ny1f/Z1dYPk63u+k4/3AOtanZOHC
FzsvM0//TtyxqOwRrLbYDpVjHIrwz4ghTKiiwsmS3ExmP6J4Oo1/XM6HQ/dNOaHCJCtBj1gINqNR
Mr6aXTuRm5lgAam5axYZ0EEBDaMyR9GI+iSzjaWa3a/fc2PZ4zq4+oiDkvIZBdmUEHUSYjK46piT
ECcyPKFNE+cEptGFX6RNSgJKJ1H4VXJSYgKHpsQdyyRN2C9DymQz/GicRX2TKJrk2Fn2yy3gRTB3
8b+5yYCh3vhxro47FRbG/HHIfWYPGCC/8XRnHKIMJ2E+SfppPLJKjfuzknJqLGBkEPbRrAiR6ivV
nFKpKpdl4q75PJhpGZDUOJtFcd5P06i463bQ5D2td5cuT2BuFcQEUXlQIMwxwxRtRKzJnZuV1HWR
qQDfmJAwUg7iWRzdpsld+fBJzGHaESPPI6lsuJ6hCBPEQ6vYaUUwANYrWGlBRMYC7RXw42WFMwpK
dbxuFz0IzceDxOQ6ycCeG+XT0OCaGLWiVIcuLYpgS57ATQ7qgwIodGrOJpPGVQ96RkrYWuyOpKPE
OByMQxjmzL6dFgfUbTyau6MLRjkMFW9Or9kAa0qCSDSAuYPTbJ5X9WcRhgUMig949haPXkuaruc1
bUc8oBBSLv5aUFvMRr+7To2aJ3E/idJx9LCcm9MXCQyW9OBCelurFf3eBloFSw75NTgcr0vjsHSx
jViZfhbCmmL5HISp0g0JOw0tvZmMkqftroNknJrDJbk13jCvHvRGEYUZpqQjPkrG+JjEAVXUeT8h
vsskMYZ5B4JWDI4yQQRh7bPgdqcae94Qq8bUJ9PsagqvweX0qUC0x6mqWmbu/ZRYUM/hunidttls
r623XQ/hqFICqZ6QmuEuuNg8oymXrEc0rWpKNPRFA2NvxII5wk0u4hOW8Jrj7cZoOOpfz8ffH+fM
miz+3rnDjb6Nj5E7U32UepW+S9XGvXKksKq/XeI/o+qBjfZGJ4qHM3OIj5PZXTb9XlHwAO6U4Hq8
jU2yKzcECypmo81H8cxQggo5OE/W0Q5KeXu5rKcbpHk/G4+T/mYZNfGY79w2m5N4dv3qYA2NiNIe
ofU3+s/FG6b1BVHPxhvZ3zU1vMn95a2+peDZeMNyj9eUoL3lDe2z3sT++jcs6B7rbX99iEeN+jPu
0/1dU1ofkD6f3vAe2xvfYx9SP5a5qxC4LP7FPm0CXunBPF8wUN53q7BJvutvT+vJzScTQ8Nk+uZ/
PCnfdyf9mkhDV7RKFxJu+NsryP8O7h33HvDEuI2xbsNEehNfJQf57dWff56fff70558OhkAnXJFu
GIonk1Hat930B3kWT8r5ogDqoJDuhq9hlh1cxtMKNXGYrq1RN+xgQg+ODj9WssMY2uYc21I7fxnt
GA39XcESXJhj7eNFSBCWIh+WqFaYdMbSkhUvZSnutX5hOHshT32Y4ph5XRMFYopgL01BmWiHTDEv
prRHWV04pvipH1N+8WMomzryYoqhTpk68WIK4fq264BMHfu5BNGlTRHuxZQUrEuXIGuZMjE1w1R0
uHwCeZ010mNKfUBNUb8DUAjdIVPCZ/kglOrOJfyXl5kLQjs6jm1q4GxK6HEkvC7qSKjcYDK+cnBB
FeooaErHt/EoHazzYBJEjlWH4RFBfqcG6fIo437nq/QYwWuYooGY8jtfCdGyO6aI8mOKMtYhU9rP
8WBGu2OKHnudr9QDiCMgU6deTBFFcGdM/Y9ncERUhxblGUZi2uXieXkpjjyQZAIydejnz/3e/UO5
Tq/loxShLr0U8YrYKJbd7b0Dv7xSoC4d5xu/HMADACcgU16HsQnnsNidqdurqD9NYmDr8kd0f70o
5DXfQs1dnF9fZnEJgCJlyvPK3xdj1HBje77MnxvFfSaC5btbxhJI5srKPI1m1zGUFg7j+Wj28Lyy
+CXnO4cJgUwkW6958TOu5mQ+GWUx9GTYN5WH2jZb2hbFs9k0vZzP3I8eWCl4dKjv0jVMsBDV/rin
RT10whNqlSLbP6ykzmo6YihqTbqSjvU0ZqGla7ae0AvtZVOBltPEEvU5TzOJoe9nIWzNU6Ggymwh
ortbX0x4PTLNbuLCz0qkZUba+kemkNIyJdqVFirAo8Vvut9lCYHnvvqCkXBiK6VUSGpXyWytpZvh
AkQGhVVuPovNAVDuDi1iIxKdbhcc0B8+LdsuqSo2mwTVl2UFlJEyEUxGj+4AbILIHu9UQoZUMB//
gG8IlScLV5BNByWQ5cbfGQ+ASHPqj8Itm+ZtV81Gux7BgIBcMR/CfDRvs8uAaunjBqoRCObT1IIC
jOZ2FEE2SaZxZDFcTbbo7kNWPS7JzoRXECWqWIjS4TS+cTZkCiFhGKMMyIpd7qf8uDA1THyoW9U8
d8nLFQWj60r1vEL1koie9Ar+t9eBcK+50QFStCMdiCrzMxtB1b8W7qQD6STM/EBcA+lAVtkBRT3F
2vVCyklYQoKmdEc6UBU6MM6wJ5loVQfaSRhaHRXrSAW6ygyMJyYKtWoHGDmRhhTsBe3jD8TuSsCo
UgkaeqrUzqzADVg2no/L8jnBIVL1OvtrCN2MqpHasSLmLxwH1O4Tmpu3iuaIU155sggKT600RMeE
h1DpauX02afzRSh3auPVp9/l19l8NIhu4ln/2h3EStA/kaHZKu77LJjWJ1vbXXBykuYT4OW0LEki
QnEwCNERQ++zWS1PGHAkmddp2IylwcDSPEvzWTJOYEsuV8+9VyjAWeLga9W/TvrfI5g48Ah+Fg1N
BsRMcHyXzq7hLvkyG/xwJu5Y9ahUAffvohZ/g/j6pAuAjJSEtqMNgHxwqMMJKoQBrE01s9i3p4cn
G5yMs9npfbqJr1DIij3g4AwN2UjY4oEGXmUK+NGScRoMQoGdiT+ucQF1+mRuwSaAGjxCeGCPNpZ5
OhqCtR+ORh8XPe/FeLwSyCFAe0A7MwF533l8lbjWlhLu1WvTVFJjtJfpYGDiipvEbKSByfbv+8nE
5pxOB8OM78WCh+bDFmxFAJlnr1kHUX575Xj+wkpwnyFwDezMXuukxs4c5JhSJpriqm1pnaqWxpd7
4NhtJeq9C7dDih6l2yxtnvRNvDr7sXppDHMDCUf3HP20WYanpbEiiUKr9SY1Rgx+6ia9NybUj3M3
5rOWvqmr9A8o6xjZdF6gcHNi0/BqyHMYFjJMR0nNdiYMDiYScj8NsiQ3lp3AKbXuxCjrCSGCyzsf
zVJAqoH8yA0JaUNYHlzTAEC7OKAKcOza+EzJIEfFKsroccHBWYHO/TSt4AvMRoa88hm1pfD2dHZe
lAkIR9XOpB3yXgDNOE/zjX5PSVloWR+XtUjCF0nTKiy6860DRmtqL4v3lf8yvXrA4XFNmmUCS5Oa
K4q5egayxGNmVWPl22FuNhwsghTnPZTwwn3cinZBdVkQ5F5piBQwxs3pN8NlVKgRhfPPlSE2XEg8
eNFCtY5jyhzVpBnZk9Oz04vTAJQV8dnKetsVhYM5So1Jj/N0lt4mJfcf4MS8rhseGTk/vDh+G0AB
QoVXwG0ynaaD5CFIWfXiSyBDVxqvLJRh6+wsuiZsUl0Kv8W4hody1Do31aGkZrDtJQ3Nhr0v7E/j
3HmuSHOseN7Iad8bSjtBcj3xLOo8vF7PG4m3PEkukvtZTYTKoLiS4bY4+PzxzH3HCMC+Woud6a6i
VRbz4f9aZNoW6WI+Hb1yjzsB1UvmEZkTtCsDkIgOs/l4sPbMvGDC5+rOm4kyWkV+wE20igNSa4bb
qMw5TuTuKvetcHYMgjF2J3amX2LrX/91VrvZhOejTjMONkCSTe4wLnvRJiaQC2D3HiyUomxLYSsz
ZUBLrEWkNgcaxhrJ4IJDiaIR1qM2i3AoZtHNWHCeKy4ebvNiaIP5midT+6y5mAztri8wZxxjtKqy
qRsuzMmIduHi0QYWg1TBIUyzUXRpstd+kVU4DQLACjVtkbSNMkB6Yx/jqID7LeHEJDisLcuENgM3
MrxC2rPYyHsfDrK7ojAdHo6iQTKK7bPRa3NETC10zyv+0v70FUfrKabdIdSnwoDgJoqwBV/9eT7L
bqpw8gG7EobVsZ3prxyQT6lupiCRiYUwaUViOyJjOIrdz/7MPvv7RGDNSM/HeTxMomUw5PSDyH7x
CetJKbLZA4FllAVM/HxwMMr68eja7LyflfmH5Svz8DLjDso03l/mhFaVXsvXOMuo2KcZ45ilTy9O
DbWVK7xHfOtSEH1uSw8oD7gD60Yr0gD73SWkG7odRorVtJHrn7EhKMtMK4fxF3l/mk6MdY1eF74U
I7QJyycok6KOlPm65trjyaQf96+TA3j+v4nH6TDJS7YxtuPQ6Q404DXDPtTZ94yfluQ2Xme1CRXk
DnRW9Fccw445kRS2F/EgQmqJgOqW37mEWoDUYSnC0FtToyv1Yz1RU+PlJLb2yU/fGu0nYw51EaKl
j64bVev85EI99uvDQWRCD/c4Bah/w6TmXdZJZrt5ezV3vdurivHWFqHmiqr4ZLoNz7qtT/YzHNpg
RacJ3DpsrisVktvxac3p9ePxbZwv/ohmsclhYZiZ7X0bTOO7opLBabaSwQwKxNtSX81NtPOTHV01
Ju/bbKohXCrj1HEQCqV9O5iQ7Zdk5eYWoXvzXzQyaVRkgzpH3Qw1iT2W21B76sgLn7VMI5e+63U/
GySvzOn0EmJJ+zvx5chwE48HJruw40JMpPmy+P6vdPAKv7S/9dfik15N5pejtP/fLwi6ie8jY1MQ
MqCNyJJowUpCy7DKqsVc9teWSxOvjQqO3x9/evv7+Ym8+Mp//fT5fKOiv6eJ3No+JtfpKJ1Y95A/
FOj8BHv2V7tli19zFx5piGhEWxtX6P01w3EWmXx4mrw0VvhXqRVqRFq2DSro0ce3p+eIvNPv2Pkv
m7bhF9HU28ama5JC6x6ROMzH9/N8sxMc9wgnW+zjxSfbQyc/+JHYqzNHeRlUl5Fd+V9QuYz736+m
9sXCYdAUIK/5P92gpZQtG/SbT799/fb70W/v/3X+9Q2jaNOgucB7rUb7gxq/QFXLavx8oX89Ofz2
8f3pyYUS7z5tqrEOsmuXM6M02MMK3sEF/6cvoGKi5QV8d/Tuw7Fi58dSHbG3F0eufUA781xIt3XI
sz3ezDdzm0HZKpN4VrensW7ZJP54d4Tf8l/O6On7P97zb649jdB/iDaF5i1r88u7D+zN5zf626ev
Rx/eXyiHNikK7CEn8cwkxONlTD1MR6NPsx+jxH0pqaGg7p+VijkiYN56BPxZf0Tqzdsvv/yu0cWJ
w1FK0Z2j9PHJbJv7Jcqaf3ITY8zNmn5PKsyRUc9kjwXRJOftyjtLb8oaibUgvbopJ9uvJPWKX8Mo
kW1hNE+eTR7u/t39bKRXN2qhmoT/QwO1fYvM62qKhXlm4Iy2ZYIWTNH9mg2VDATvIGXRnVw4/Wxs
W1ChyWcpfFnrKSZK9Og2/suhXx8eSl6TiAKA8c52CNHBVV3SQAXlqXrHV8wHBdqiFPuCehOn48ed
4+q4oNAOgJWUojVzzkramDQCD0GCqXhZlAPGtLSfUoOmsJW47sqUqGxj75RKXPbCLGhPtqNxt10D
xJFSLVlWcZFQGSdjxQBYy0di7uTgLrm8Gh0sxtb3R0k8hlh5mE2NhvsleFIUqv2waE6zyXqXeUgG
r41oG3n3Jy/ASLNAEpTeJP6Bvnz4hr+cqbdnf6APv20mBhLhra2m8d2vqrzGXiNiy6ue2EjiuL6G
d0HSw4KIPTIGx10ZbXmlP/6O+LtPH3//+I2/+e3dl8+OFFCRHfbq0x06qerbpRz3oDOgwVo/faL/
6WbCnnyo6JEe5zjoJ2JNFGPwwCJbcGEPCirxX5gKC/MSUiJB7GMsUaxFgSL8E5idYy4A422SJaVk
dZtkWRlZLHd1m5XHfc1NBFbK7DHF9tnnYdS60zs8EWdfPojjY/LrpyN2xFz3l2oXp1c0AtymcbRa
BLw22TmC4tpATsRB0AmNIMDyaVcnNyVyr0Kt4p9sURYDzOttHFUjs/xFnZJ/HfIP5IQzKf544ziL
qW7NXspOHJhbrAM7LcNJ4rZQTvieOagys1m++m8YCq7DAdndUi6+HLOv8tfzo5N36lCefN72ibrU
gc1nJU3R0iJhdxX5E/xPNgStcZjdalbD7J3ZfLIBvodh2iLxqwDdxeDQydn7owty/PXo6Kt+88tb
h2tae3QYZVfpOLTABV6DWTUUltYC69VxA6ixb134unqLjuRBmk8yAL7IxiZQM7RvoDHUKPgyuz+I
AaUM6omNAZmILb9OklkemX8Cy+DEQIHmYYr2cldsmL+SumWr/PL261d8js5/w0fn4tevHgVPO1vK
Qy+MwzCNqSARehfMLysuqM3m11tlFB7GucKI00zLtowWUNu9i+ezmBzR3XUyjsbxbXoVz+AGN76L
f0Qz+CGcG26ocOb5CrOFOgqUg8VVp5W9bqea+BeprZkZpiOT1xnBD2zz8qIfoCq6Z8T4Bq3atgaX
IspsQUA3L976is1+Haw907gWntNeHaaE767b1viYMT7iV3e9hfqN0zNJfjxqcFAwAGrvTiUl6QOE
opo+28osnr6DxZH2JCqNFiCj1z7WLnbZgE5bKPXGzBxKXrmA8O5j3nRRKxAc8ebt7qKthHgVXYoa
b1hNqsAV8rT8LVYBnrYicyZb+M9sXLkFMZXAjNyCk4X3G/eTUTSYTy3QaAGgUQ5YxaQ5cLyKVnay
vnUNVIQBfgVsYovjL0ruJ+YPt96FhZZqTjmg51u4HY3CrP1D5ScoPJ/3+0lSAmisJGDTi5asANrd
o+Tf8/S25uyBISF4W9lXIeiXDs4o1O1vGcbPomO5i4H1jR0btabGhxt/6gZHIp7tNRvLmH1PbZXW
HI6qf88zaCa1IEyLwpfkJjV538iNTqUwNk5Ete1EVgypzH8o3FNbMdLAhoptqhUP4iwK4P7ya1RJ
UAB3eDnK+t89sgEhlbEgtb0FrXjB4idVrbbYvm2J8NRcrcMUQ3MbpcGpWVtxdtMpgJVuKbKbjOYm
laoO5zHAbBCBd4njPNqxCVU7etMHnHCLe3V/7UZZolx6virs5GaWmi31MVAyycUunvzHNB2N0j6M
EnTPLYdho7K7+BvCRHf8LSkPsWHyZHZc/NCBYmYOZC5EEKdzVUOHCayDOIBREk+rKTFMguy7UpAC
49DChKur1liKOCOhSp8HJwhjTm7cAHOAjx9GQsDGmAK65uJuiEQvTtAL/ebFCX6hEPz96NR+JfYr
X/n5of26fkeshPHu21isB3M782ZiBiwCszY0+RSkLTszBxc7qEUrep2+2pVFMHfCtj7RViG706tx
ZhyxK1twn9dI9agKvXjjZHaXTZuvXXR++H/sXdmS2ziW/RW92G+0sQOMiQxHV03U60xMdX8AU6Iy
aUukmpRs53z94ILUSoCCwEVSxDx0dVpOC9vdl3P//rs1McyMynjsHcoYD7LB86aVPrRvctNahjIR
QPxtaCEP5UDkwF5Q9Josrg39YtBwhYc9otXupEzbghh55Qplf+O6M3JEILvqJdSk3awwfi1M8Ks/
AEDkKMuj71YjWOhvoQQFn7vbJ7waIvNifdnb5mhCYVwNvtq5qvhLMyz59KdmavnpT25+/uPTn9im
EkTAXoZSCSTg1m+RGvV1A5pyMBHfYIP7gRvIYAlRn8ZPh8sBJWATGBqBaN0s4tcDNQKLRMTGJFxO
evYe9KqpB0SuFvhG3hoZXOSrj0YIO0YsggSk4+icMl2mpRbFDQh+tS2zzSZt0LDX6RaKLuvfSFa/
kg97hIQRz2iMle5hf6vkoxmCuMvhYkwipYoa36T+G9fkaYxhfh+jAyindbHIlh9HvXTAiLZHvhlS
ntF12Sc05HijtoGiKOxH9GCGRQpV+R/6zp0TxbF5bq/w3hinPgbIvpnf0L/yUpNmyx4V2mwJocqq
+vpalLDokfAcfZEx8GaI6B08ZCa8Qmayb8iMcUTDrvT0xDVXrYq3N7jXdoQeGi8pEqPq66NFTwQb
4uo8onOI9iKVvcNaZevdKtkWpaEZON6LvuHIRrSf58Vaq7LFS7VNyuO9RCdvYEEYJ+Je29T7aW3y
8ybZvr/U/4x8+b5p71hrAHKvHddD0K9eKyb6/cndnt8Qp9/zY04HsGHNNrBdX+NZkDG+zqr5WTps
bcpq2gRBldDCn7M4TFLVVYNLrXb0PbmsDk6kJ3iMQ3Acsk/NB/YOdKylExnXsrleoEL6SvyuvmaB
ydimhBmuaGztxqiwF58JiccmGDIUZxEXZ1EuprED6AhU0UQEwkzqWyMCVBtvY783pVM8Bo0pniSG
gpi8txu6SJeJlpx2P5R64hSHkSXjocz7nkHX1cehMK/IYc7ViTbuDsdRjLgWw9Mwtl8HUS+uYNPw
Nw6h1kWx1v+b74A6I02oZfa620JCZrdaRe+aXFcOV1DBKCDFH8gtblil5RdLrXPpRB6P7O8uOvlR
0LEJNSzTc/s1URUSQwh0dtFET88wGs9CwI9iM7LACBN4bFfDS1hSEXrY+sU2ZfYz2aaHJJ9WQy7M
bgxzzUMybd4eauvMIdEJzGN+lz12hCYOzeGO8IRAPna/GtNuytOf9jHulGFPJEbVVyOjWI52DwH6
0VxJSzvymSB8itvAXE5z68wLxb7/On7RTTWBVGZe6QnHiatjTUSRd9atc6ZgmNbdWbuI9jRd9/8A
uOBbqf+ZY6ajZ/pGOZNE2yYv50wSMQKAoGwIsnM8B3BytU03FlQmwcUjSRnn67TsMzHjXhFF1R0g
2s+2uIoZK6BQXwn0IFzLY9GHKrMlfHdeZ9UPXd8HjQ2XYWViLfFJzPpf+97Jd3VdCwxscfs6IYV4
GKNu4L3ebEfaTbOSB5xuVMNsXzbThExttpn+L3kgAW630CCSGMAbZ7GMZsv/hHIwWN3eDenbGjWc
CMKec17vIK9bfUd4xr0KcYJuR5vov21YLbFJwZABn//3e2kHNOPKMz4wiREXYrY6haUtHsK9a0tV
V1S3LuCqTaITDBwjp6qoAeqrtZLdIFPUEwXA8sCnEjtfRGuYY7mvEvy2fgEIoq/WAQQzIel4S/62
rcjZOIfUNsAqm5vwuX1hv7niPW73P+bvSalV5stuu4xUewN+DYSjKpnaHnLW7zEyKjFcuyBG5BSk
cX0buL9433N8JwwQjmeM8gfSezV9WIrouEDD6R470i/krUM03OXNN7hrzQNYwhSKQdVBkA4fxeMh
bEJyi9G9ZdAur5Jl6iqnpUx4yqF4Ip447rdlCiLP2XVxl8ha7NbrD0sTv5xRr1haPKRy9rJA4r4M
yKGAWA10c9sWbjnGnqXoHt/eviYe64cRvR/m37ukTAn68pYtLxeA0BkfbIHXdQskVMtZzwS83xJt
n5qT2LPwxW8FS+EYh0F1vD+5XorO2gWzz4rT/shUDEKkV+liPEV+U6jQQ3u5R3aHSGh7IB5NEdi7
KWwbMfBs9O4KqZUV1kYZV/2JcY8GfcV0IJ6Npl6k7zLKuFcRftw/BMvYg7AW5/GUTyhHouNqrsn1
GsKnNispGpWGQGz6+RC93nZ/WhdvagtBiTHe1a2alL5bTUpd0f64b7SfXpKvgsRRgCU0arh/BXgJ
HbF+Goc8zX5U29fXpMrmUVLNMzt+EmczEqsHu5OzFAi1XgtDXrjcw+/as3VGgn+i4pGlB1dUjiM9
tB9xgn8bbcoCJppAH36Wa2W/m8M/uyJAAf4rRHMN8Eq3tA5RqXow2HGzp6xmgZI3UN18bFnv+W5O
M00hT8T7uKs80OBhasv5Pdm4+3GpF4SplT3qIo4IkAaceL0i5mGGsA3epjtPb0cxheY5inqQVlML
HaX5vHBVWwqYccppHybzwC2kGA2ygjP3H3RRrSYjQxUuKFtKRYCllf4ENjMLfAVRlJbV6WcgmTb2
WXDC1GjEg4iWVbZNy2QV/SgyFZV26cKVnITWHbh3kmuLmY33iHss2aAgQ1MkZ95q37sILYTaYrRD
EHOYyiWGIZcTi7XeQP0XNl7DmkplD4rJ8ve0zACReC8zoks8cb0bVysSTFiQogcRHUmnIZrDNBdr
NhcA1UPs8TMdUBf2uQDbiWQjMeC3NgeGCbGAzrmwMNPNtb4iJLp+ygEtyjd/CcGiNFl/0eZSG+Z4
xuWwDGAtn4PiBY6HuMTrPSVEEjYJWfi1LQ2kbEKEY0i7a0hiYZlu5+9fX4vFx78qSOnV4tbaLwW1
Q2oaOmAUkz5GFFhQ70mZw/TiluqItbADi1oNtEKZwjwqCzS40Hqeoj5CdU9epprBHsHWhhPng+ih
Sv9x7YgvwjyheGCTqVmvY9anQoMyaX2LVh5VHA1mK+1zP45ArV+7VyebWhB1DCa7D0CpPuz5N2ea
GzcZ4Da+GrSIDEZOvDor/wVlfmCylwudUFwHtjwW3G/ow+XX34Yt7xOav1whoNdacDbEOldFv9fs
ZtfLn0RlLDTgBgpjEmBZhzifTwMtk31owkMheOXl+9ME5VhNQROMh9DekUn3tV2/wESM4PmjdJWa
j6zYJIzHMxLySEHkIJHqcbhTLGbnMTsVkxznaq0CVwGuDA2/WIhoXozfsY/b8fTjh+ABKSeRi15G
3iAEGfv0xrQk8LlWd/nlnI4s+igjPejZzBrqDF8wJbT9iG5f49RBPo0kAmTusfLNOueBaFuCBBzL
VijWujYBBlc8zJfbrHqqv5+Kvt/fq2CbSImH34BlHYbFINaeM14eqx5GWPWRz6GfJjrJoGd5A+eT
Ngi29jmwwg/oqovmTxNmpzdpCQeBWR7yYrcMD9tDYKtwY3NepgBXcbA0l2WxjvRVJq6iYc0I0m+g
rq/wOANOb7jAPi9J4bAnPNzpfsCJvYWawhp4KArRP22KvHKcD5j/pEy/FgOnIcZP9I9PBDW//on+
57/++VdLLFAoM2LDENnhalxmFmF+jYMeazWJp/Nq4gZpRpFJLB6B6IM+9K8sXwAWNyYct9+bxzTU
roFXgKyKaRM4SXdsTFrdynFIb4GwuI8+6CiD2FNGtKe9YwlEkefpfNtuHvYqjLzLs9nUNrwXkpPd
nqk/svEbDLfJ8kY3tmv4IQ2P1KPywydCjOzT/2+7XjKQ33k6A+hypI9WDFyIB7mfaFkUr0mpr8ly
HZQMqgzOKhPPZLU0UwPFRN4ciuk0z8yYnPACmWATUW+I1dRu7fZwXYO0RedKnekcEvPRrZ/Gyg55
K7fJW1aRqbmzG7raV8GyRwi5dpC0s2cqKIw5D3+VQ/w4reb6V+zJZUIEKPwebL19z8pFtEnK7X7G
CmA+Jr+dCzK9IJnewlhklcvIgCIF9NBKG6QHxCQYo11l6H7qCJzmIznW6meXb18ujU/oMouJeIqL
8Zpxdf99qpg8x3US+Qz7hAjZaOxA2uzghSfwAM+H0JOQGX0KMov5AKWi1ar4tcfzs3SrQUAbYa4v
ZDSCpm2C5iQ4adKer1THGep7PIxaumZTfoY/thEGJaPPwWkhEiHIzqb4STQxEkPciA/QNg0Ig6+K
ebL6ClYyGMmXqZKj9QxmY5FbnBCs2MyrV+oB3kLLk+nECTRGhOQ/phAnlKunMA8FnsprD3mpe0gT
9RyWDCbsOfYZyyfZJ38ESdLGYGUcP4dnFE8lSeJBKjn1T8cMXrvcQ2KtdNVjkgQnk8Vah6kOa8J0
u222yrYf5vz/3qXlx3KXm47bl0W6Srdp8xotoB6odxeP8BS0zZ2YPbIC7YwOAyBFWjpmSGAK4y17
JUW0bZtmb3nUVRKBmWAQEx4mxH65oKPQAFqfQ+KvHkt2HpbGkAUdZd2LBM3l6iZLI/CMU3TP5Vnf
kggLDeemEdc6yRkqAkVgTR0Ufx3KdsGHMyPe3gvNttsiSubzdHOorbVXNsTUE4r4pgPXskuLMv15
lqzsS1OpnVWvakXcXcxnuwP3iAiiTYGw6pqA0BVDPg1jlwdsCaemT9Y1SgBzg5VFOr3awS+Rehn3
2JtNm9VcvenCM7KBba8GnVcG2axYNxDoyXKbls0cNkOvWdd5tceFNbF6mTQ3n9i6HoOYygirnULh
2ZLJM68pzB7LdhS3eTXI2wjWLe9MStdX5kGuFfdyWAzVJPkiqrZauRgDDXbwUoNHasYH9MjP5i//
sX1B9U9/FWUrm4j1bpCRFFjexL9t+7Uj5dxFaUzfBkYkvmXxYJrGmAcI/JBJJLFgt5yoO8h3qsqu
ZIZlAGlP4QMQcSXqifv7oiS+Tdn993/9rVf6vV6BcdTgO52ipJpJ5TCgD545AnhDi6JlAPMXohnC
8g3a1xyUUdzqjiIxKk82slixQVe5ql8wJXRszrQkqYUPDOTgtEnqGYwjH9eSwhSMj70qs12ymHpV
LeqFYtM/rXaTAVA87idT+8acKIrlfc5OvFK8Ay/MAcWdBmvY+arIDbJpXXcMDY52d0o7b5QGeqZ1
30JUbNI8Sl6L3TZ6XSX5D2MtgnVaVQcT1o40EHvO825R1wG+DwpFq0PJbTT/mNvhzXCMZ1Si25dy
Of9psbSH6aQm1V6e8B5heetCooqJZ9MS7oOhh+Tg79KewqCYH+ih+yhnQLpgNX75cts2mhC+4vcV
b4KTfsR5plWAOi0yRc5kHCJS3DXG0BBpmhly/VGyyv7X+Kn2OIqSfhDZHobYNR4RiBvQp3GfVDsJ
fxVF/aQtZNKZ5Gj8F1Uz3teZ7ku5nKnxzxlPcM76Of+RL/7YN6dckrDUahnf+bYnugYnVSPaXy/U
bcfJm8syIAQC13e+aRHHw8sqhw/MuGd5Xz/R2DTcxuTeui6+Mw2LO3gSYNBL+QgyjN7h+CyG4ad4
QAPc/NwkN7S7U9ntfjPIiIT4GIOTvYzxwKKzbVBjyFaFBGZvs6g7dtHY0/zeVolQk1w2QfF9mIlS
doeVAQkLoXgwg+8UYbe9muRUK4vAh2wgTbJonVT28g8oIZcBPLncrVbVvEzT/OTHPTTbJaq01b7B
MAVcBmQf31bFa7JqdPxB1wMvvBlQFzPUQbPgsQvZhnsClRAh/HF8uE2R5SB4V8X8x9kf6sCCM7VA
4phCRpINKqHyYpst9TUUuSX0X4sj0WfBju+vo2hkxm4LIDhuMstz/ePVxOIgS9U5DFebgwITPA7Q
m3nyM3urpwGfwMQVzoFhWBtGXJEBeBwg8jVV2GHcCBXGpRjM/tgAeMM5RLh1WZirEJIJ9uL0Ml3q
S37v5naGwsRcuMimdFT2/twc+wW1Orl5SDj54EVli1RrfoPQsdsAupiVYIUWYV4jRgjxIyV92Lox
PVpoWs7fooaHUve4GMDzo16QXKTNNctCH3CZwDyQcr4fRmSP2cGMB6/iJ3LVMW1frhve0w/iityg
lisQdl0aGVJMXj2HA510D34V96OjU7ZpqMhmMIqZIN2+p4VOjt/9K301RNOYjTWQYbFIYb7YX/ov
Pu+xJl6a3/yf+hf/hESmBX8o0lzkBZp+uS0vqbjNtvYsEAFoaxXwyBelIdrIWW8Mvoa5iYDDM9SD
0jKTLF5mWpW7AuAKK091RwYzTAhBw63nYZ34DEJrkfUFq95SLdkJys60CegFxXSxoT0pm2L1RvwX
Bj4/2mpp9aZdiUX06p63ipGAbimvuuYQXvqZVWZAySrLf9hHCWOYTkL6P0Uzt7keY2xBhYqlmU4y
khQ75dlbpRmklim/ZV92pXHK1HqTycoWRtS+P/crhSCjlQdTPLzo3uyq92rrsLm4UJ44oBYCANI1
wxf3Yw/qitm65NCUtjcmUFRPIdTnT8uyKB0FE9Rv7NTlTuwFE7vNJi3nCZRo3Fg6wTzrNjo5osaZ
1Z99C72kz83YvzZwYxywuyAYAD+cLtK/0JZqrT0ok7ssYKJpjKgAIjPzLCEHtNhkYNzXkMkbO8Q1
g0aDK+nE60dKXlOoAG+JCaI1oh96bCeFcigwP5OCvBlURXpZN9n6rbmg+tJwJAj6zZhtrDFAZQII
PBtyQRJhhtBvjPQB20tyiqQmODG8nC3TzUq7fm5RC71KSA55VNtMZC4V9JkoMTBH2UAXTc3/gOdh
kf5G9ltgG7FQprD07bMng6CgiGnEH0Yhei9AA9ujLgwmYJHxBXDjmIcolT3TnYLGt8x6gHpNsjx1
2Rd6aXI3ve5W50z08VjzKi235zNszA7292+faCPhNkKJbojbSFbaNs61pLS48AHeZ5bPS3N4QCCq
RztpI6+KXlPoLDBrW31LLDzrMS3XYCLjZ2PHrfGCGHlWYnb5r9uiFh+WMRPQAoslF33k8JX56u2T
HrA/tbYrt54D1plg99mk3k1rizUECPwjm64xY08pv892tdPsc6MYHp+o++zRAE17vju6Mc5d59Nd
9P8N2ziAh1xEY9R/36RvpucxS1ZOUSEQDYvDgagoXr9DEmKZbcFcTD60eDSmz883R+JOhElnf7Vg
FVX66/CNoc0rb0Vsb8VkbzXc3OKfWTlfXXbOGwwGomaM4dHJjvHBKaIz2YoJgMT0Cwfvp4hG36si
byZYwBbMKc04UVMGRD6bT1+0H9UuuCOIKNRDqc3LojoZKW8cp2jvUTV3M3/PVtZLiImE6oNe7KGP
We5Mk3dHPlJKpl+Y9yXWeU2l+m1bVIr19wdc46EVqTJDSPRFaYMHPnMYIRg3435usPHbJrft0Srr
q3WEOQWYKyTk9exxvl/p648MSoLevEN8pmIhxMq0uT1tSnKFniAoRLzwGKhvbOhbe/n2vDMTMGJY
jr2wsC5MvKqvey0c2xf2mU7tXPgGCeE3/Y/aJMRylZqay8jPl4i1p07jgGPdIHat3iJIj5gN8o5+
DLMPFZApuWU/Ag5PySn7agV2Hy6hXiWnvRbGdvZUaOyFqX3hkNC5vTDkV6I1z/Zd66LTQqq2jy44
oLMg6WVK0EBnrZYm2dYqTYL8dSxHpw1mfyI2Om1wh7IafWHiUFbx3UkjLEpypZmMDmJUus1Jrk3o
IAV826tJ66vhGN/91W4IFiGq7r7dG+JGsRdSmutZjYdrijEO6L+LdGnqMarduqMAVAFOpwigqNop
M/+NkqoeAwsXZs9HcEo9y8AtlmP1nmzS5oZNsZxtAeihIcMY336X6ao6FZ7d6Q5ZsZcFx/r3ykws
LmEHpf12BVNai8hJDq/d0NzM7bbXkREWz+hA9GQBQyJYhlmPFlH8npopex3XihQgGA5DtJ2BLgp1
AaqXvPJB4hKol4iZJ6v95EkHtDD3LF50PM6m2Jh6An1h+mB1sG6T5iaR1sjOyr4ygvHj6j6Wrn44
OhDrnd6wS77AEG1KAyRdE//XOv8s/A940clq855YWQAjTxiaILJp3EESwNA+ZYiOCmM84yEi5Grb
haP1gc4Yl9MQSOPTIzTxfRIh+t2nd/uBDKKVWh5DCXS1/Vildenheret0VA3Zs1qW+4cnU9CeCI+
O5VOAxykv+3Qa4W0WtfLLqovm7YSFVAgi3joMwLs8dHs1FTR9YBagnnCO9OuuL/7gtv6iHG4Uq6G
0OOHy9W+/pu96CfWgpqhOPg6T+J5xjXTF2qQ0CwY1oBOEA9j/dgoEYrqJBvbTpABD5PlFdg3RfkV
eKlYpY2vuygMMTZ/nYK6WaRN4sLu4lJtQYdUCZ1WxZganN12qSKYgt3mMKyQMCC+lIekCm4nizjE
az/e6WlEufmsLjyzoMpyHqYBOqUVuSKtGOJiEvZCVxAhnFe40dbPBR9E8JnV7FGeODp26ZuuwYOr
9eem3OVgvzbFe2X6M1llCye8mYKa7b7WiZ82xb7TvTtk1XF2QZcjJQGgUfIeNtC5QjtO5dBssA/U
mDYCd6ADU05nNJZ9ZKcX3qEaZAVn9azfyGtv03WrCRXsn6xyEKSkZubFIPbrja/o8IA41D8Nk0Cq
dnUCHXLpV8AZzNsOYEHMi/UmqcyUnhqm3FL6rQREkbgcKX55COzc9h5eE9AFEg+2axPTP59j0x5z
RjDGQ8ncmp0a5vqSVFkL70ebWPQprwlTJp9y34Thp9w3Iuo575s/530T/KT75k9KJ0w86b7R//Pl
hPvG8XPSt2RPypejVWiMu29GyHPuGz0lnRAknlQOeoFeMq8Emj1vxmbMq/qZeUU83l1RDSaZGUh0
80J9HqG9t2PFi8MxJNIrwzDuJp1zsNu/GzlrsBQkE0jIaW5ZuAPTzCswOc1rd0UCmFe+ZdgrqvOf
fuNo78sPmCIUQEK2lJsFUZjAUF4v0ewnfrpwITE2/XtqhMc+LOvgBoqo56Tu0R57v0Vf2XJIrtR9
28QOLwd1A1Q9xLl8WJ0jPuLrR7aBwTUeryKqMxnEenYF4n1X4GdIdLxsy10LBx9yiXH8UE/lljl+
I8iYX/IASrV2MHluUf/smB3LOIQ7AyTyaZ5Jn7cuLnUneKQ27ViITLVHcU9OVw/TO/nghbS6RDGd
qRAzzHrIduYHIwz1+rSXRG8gMhrgEDPkdlulK+sAMq6Fuva6p7rO884IUOJ+eO1DrH3eHMFhba+B
eaxXoqcxVUKUdNApzzsxDJg5m+aGKcJn54a1hFfbmY/GcBK1K3sIlhEd7OBmZPc5fLct4wN5WzrR
bZOWmhSY3OHAXE504PPRzdQcWN3hwIxMdGDZgiYTmN/jhfEkB2Zn6oHV6oHhUBFtK8+xOvqUzUjP
GE4jnQDk3wVWwP+PvGvrbdxY0n9FD+vZF2vc90sAY5DMnOzJQbA4CBJggcViIEu0rYwk6pCUM95f
v11N6mKxm2rxJtELBBlbllTs7uq611cwWUg38unTf22MI4gB4tCBoKhZTQJnOJsUy3bl+XbHfHEQ
yKFr3CyGl8RPhnI6f4kq43i0jofpWFsOH+bC8aasHe85v7pHJIqacIbbs/xhntEky5L5w8YD/sgE
xIbPp1gPuLXRAe1Ybl/36A5zWBHfml5pbWTRGZfqYIUufEsqJOuVIK/DIg3ohUExtUhP6H7pMdwz
Pd7zfvbLn4z3zS99nx/p+b7TfteHer5/smd6PSuIMPw3hxX5EiXZHHrXJov50wpGQkSL+WrbXLbv
nfepXi0DmwSHezcYb+QC2N2DMmbjOC3swIdPdvLEx493+X+PkzQ7sugf5t+Mt/WwXH+A8eu/v66j
e3sUN/CS/Z4fs3uU//RznJTGZBEssfGRoPejTfvLY31hCzLfyZE4D0Ry1qZR7sNJE3aOcs24cQGH
sY5XMPkhnr0W6HgVqFoU2V4F3PVFrgZ2RByQxFrxrW3yxvpWFeAQGmZlBlDj4cxzTNd3wHzEg4Iz
/AqvthSylU3zu74ENyooD8zj8T26JypNwIN/BBaNzqiIwBDlisAoomDSn26wlcvJ93E6/9/IM7op
FPskhL2/WzpeWEezENwKpaqBHwTVOI2z5BP197JzNtDbqhvdVju4eVdf58YyoKGRvgBGe0vOG+fj
IxaU9mwkhFA7l6ci/kaCcFEacXSAxlWyCWsHFSq8OdbTJQlCkla23lvxaZGHKQzWU0O91lI12KIt
jtTqaTz5a7I1EAtsjwwGUNohXNtguBN1QIvA5Nbpczr3cXyVX9DL2/GNcmsIMCUVGSwr1dBth7gK
68nGeBrmgNJpMjdHVaDtl0EBjDsLFj6vY/XUGyqkGhlw+RSf9ds6FMP25osZ7uCLsSaKsRGjNTTP
m7QMiDvIJDgqs/Ky+O0IVF/dFJeADKY71k6ndROXzVhzD/kx9SCLMBnYws3DoBVyMEfnCXgHP8Ko
BiL1UOWHlm1tnyfjf5TsBxJCsM6JYnREFGb1NaO6Mg5pG7cTsKd496HBIjF+YFHNp9ZBO+YY8jO8
uOUZRhFSe745Rr/mSmAFEFOUclrnfm/RWwrb8w6mUAJC0nSTLJxFG1LDkCvc9i33nqb3phOILEjZ
ZNFnov6EjUoNWjaY01+NOf3VbU4DpF0NWiWEIXNQTiEphLHXeZOtywtp7ywsbWGr2OjQW1Cq5TpO
AJMqf4e7flkDAApVTVZbgip7jhbryLhPi0/l4kgN7YBhmRbeEjZaGNZRa2xKWCusQ3ysQ4KaQEWt
0zouroTTIiIoJiJOroh6VxRUt19vRcfVk7Ai86XtrEh6V8RoZys6Lo/UsKggoIFTC/pzP2tnDGCc
Fj5yD+TonI6Mjc3Hu6JNqmkbs5rUOMgQt4jU4fm9zIDxRvuWIhDI4yyJto6Dlc65ZbTHwXab09Ar
JYOma4i6LlqNhRaxlzf9yYEIcJhpFDjwS7QlkesEJw99rwML+40XtnbETyiyMxKFaMw/h5HJNLOw
tbanbjyLorV7a3EguF4duthPl2qjY1VHdMHpdmp2GTiKVYQ41UDAhf1IkAUslCE3UPpilEaS2e//
7kxYc4vwLc4nUKTB74wSKASLUXDFTzaU5IRYhZhP0Cgm2cTl5G8Ur3U5dZBN7VnjZAOA5RCMsYph
C9tcKA/QJYConsRGApnjteOrJ4u05secnhcCw4HqJpL4zHRuuQ1PMnA2JQoqpJN1Zn/YSPVJwX4y
8WHcmxqHXYqmn3oOP4wByCSmSEfbtMsHba+2vz96d/k9oX4GfZ1h/WJdHmj+/EtjspR7/KC178Nk
AbISvs58thQIyTEdjdWLu5CT2xyjuPxxVqX1scLoSu5lJXIFrx4d2q4EPhg7cfQ3Y1HsHfh4DN/v
7IInOqh4peODdya/i04xTER/kibkiHGQ+9nbQRN7uPnIkcMjf5yv5ulzaeIzzgun3t725yxb/5FG
CcR2B7SavAYL17R+WlaIROLe2dTLo0SfafPmI72353oASGtMXdh/MH6LQOCxGKFWfQSBu3rYaE/O
kgFq0kfNltdKNFyNvoMllLqdHZPWHxnHm2y9ydzblvMoGamgWPR1b5xScviHb4yu6zAT6JZvDt6f
S1+vxDUebmC54JUfAsfv4DZ0Zhz1uAY8/DXIoKHfV34OFL2Dc3gHd5rj4QtX8h40RNhsums3NOnw
2Unpd3AQYVgT174IShpEIePHx7zG0zvDDXZpRPB7OG7ErzyRYERDAx/0YQLFT8/RMhqnmwdvbITQ
0MRpo9jIW846vXRJGkTxoM3NDuuxCae8VNm+Nibf3dUUhiG4UD1vgjfe+vZ9/riWptLsFKd1g2sW
6hxYMZoVfRpzPy1z7zki17lF3gQTZCbC+pAqWemg6AKYiRylQfLKSRwI0nKJ/SkXhzBbfKwHyfKU
sPZOFGoschlB4Vg/kdLBwsA23R1B6iSouiMoHAQDxwzVpMgcFImS3RHkLoJSdEdQugiKDtlUubiG
oO4IaucZtkhwq6/zarb106c3nRs5SRlYXSoD285cuHMc6g7F1UjGyuSrQKqhhRglL1FSbSFqYyFS
OSTNhjlpZNxPHtJ4sclyOMQ0S+Zr6GY1z7ueTB1YhQCDLlDzFGdiTOJ4mZtis60tNn2al0wxAOaR
8kI2e/PJIFdiIe4TDXp4Dx02Q1a0MEddaTTAQyUCDe+hsRogJ2IhhvfQYT3l18bTdWyfiz80HyB7
YDJE6SEGyB50mDyNm5jd6Xya19FZf+eP334tGlgB62+6yQC1PF1M0mf32B2pjOM1RJMlbDLjdT20
4kMUBAQPkDvwEB+a8WvLnIQhIx89EsidZJ693s2SydM4frF1a8vYeMAwfQf6Uv2ZAWzxgJpEgt4E
nbayEXYBgE5hRzZF8fP9X9HDtzlM5EtTs3Gz+ySefkuPCqiF8ZCVrKzfU2dnQz69TBab6F5QjZHG
GAN0QDlBEoZOoTx7H9ZpETYITV1ZEoYHFWCp1uIjWAblTpUvEb6yC9uNJF5MXqPEB7trvtDwP667
vhLfOYlobrhLNVjSwbH5FudDaqR8xBFqhfaWKNxmG03bP8b2Ta5QJwR/jUl+9p0+iC6XbjdInyhx
FzlQOWJB7fV1VrwyDwHYK3lBQP6+40g3Z4GDn2o9QC4D9i+UHsfdYm2EDyZ9PVPILkk8ggGlZ7BF
6PQZwqUKBPbtdbUKtaJg0uf4r9+ixyiJkl8gxeNsPtNBwMOniT0lUbQiHH3nrilWWvLAWVx1dFph
YoyNxDN/z14XkXGroiz3vIwFAe3ied5pZ1mlmREVhzNYc5ioRfxURpclQcUXJ7SMTS0s5u6mdWNp
qFGYbdzT/piNKO1ObiPkWEvl22SsUiTVEFawisfLaDafOGahmfug9BDWYBeQw9c7l2GM11btiD37
+hBdAYcKDWjvAEvPuXNhyDg1dg5Wk5u1x4oImhflcLbOiAAj7D27Jwa3kLF5PXkdp5vcw3EtKyxC
dCWrekgm88UiqjomJdGQJPWYuFdBVHc3dbPy3FVFycA0hG/76gQyGm+fZGxQSsLLe3pwcs69Eql6
uEXfv38vcwIVdNi6wrOjPKwT/yrVhY/dW4oJnM8kaEBekdk8l19E0SD43NaBQlGmYwV0QPbPOpmv
MjcXCzFQgfNo7qjb4KZ0SE7XJpn43C4yPBPbzWR0OFptNX4273qOFjO3aSDUkK59/Gc0tbCs7ojI
kKyNzBfXIYNaxYtHZiE5MHXiMYtwrZTg1WgU36ooaRTxTuZP8xUgf0aZp5hA68D+4p52rhjEeioZ
wKSFsr0ihTtdRJMkLI9hTrXGjpe7atJkmkY7xPaSvYuRAhDXOrRCu5Swq7cNIAHDcoQ5ztohIJNx
RsYwuyyfBAvnAT/YYpQ8jVxOLAMMcPRhNskm94DmvniOSyFxSC6qo+xiXttyzma0VzeTz/WCFjnc
bpI9mj7H+YY4oKrM12HRrMCuLVhhXkfkuJzYQwFXUTQFkMqUk+Y1MWfXNRBdZ6V3dw9vxx65BjLb
C0cY1MeeF8g7vnYWMQ/mGr1Eyfzxdfz8+pDMZ1DqA2e6TO/hcv3wIyaUcSFv5OdSbMCoEML7fYZb
+8JP9gX3I0nFm6iHgIqFMFT4mmzsSe8JAc3vrZAt170V8MdnZo/bFuN72mUxjhWrr84O5LZ52shw
WxAgu7EtNai2fmW1JurKbpSRM5ezFOsUjAT2GnYrGSkj9Tn27WwVcmdc68yOf9zXjjkxjQnBzf2G
f23ibGJLkuerjSG50/52NvF6EY23Mso98Atjs36qL8rFtwEnpI42ywqFTRUCdFunZQU69L/XCR0W
9ayx9QkK1FM32q2CITy16lDChic9RI9x4p/1a8UnoZcXHTUrkaRq5mja3t+iWmu9+JTbxrhkG8MQ
b851R7x4ymeZxgkc8Pb3vfNS/GH7+5GsUQKmzoprPtuTFVpE4+t/fn+V1JmBr5Yk7OfiBaURdotV
chR5OOKwK2PmHMwCanH19TNDVd0XHc4CAuq9MGHk+pcTUOiFL1l13bzCC+MLFqq1UmSFa3nrJT8O
pGWOcZjFhcg8wqL8WjLJnCOMYBD4INSOdz8vWD/WTsGVWQK+Lu8kULcSSsgwhXyrl/OyYt7PVHVc
3jBvLm8VUoi06i5+ysdb3GfJJiqZRHIkRTt1+Hk8oQguBIUVxs6p5kJBpumq1VFFbw60M1/zo1cV
nzWLqPdzSf1FZ4EoVZcW97fNQ1pESz4w/eCvqwsbeXdpO8lfT0cxGoxq85yAvP4AyYkCunqn8DZx
dDgVKoUA6GSTxcsJTKBaLF7dYJ6MjGpRbkt9erKIWo+4IkMQ5tWlhLVCd+ekQvUA5Ki/RFHJ96jv
rulbHHFPTRtJS8hMZ5XZ83KA4avNIzv6wOkAIvP+2lQyEGvTX72JB2iF+VbDriGFF1ofypV5YNxH
BUUuGtCPVoaYfx0SgfMriJSdU6DKpG4nV/wYJ0uAO1/OszEyRpMxW2bOYgFG8OjcaJwnRWTIHcLc
BxVM6KPGsMd5kmZ9kM+LmUeS4EvZiMSJekn1SPA+rIfJw3QW3aAvj0/P8z/Nvw5nFqlm4a4c7jOH
MTs8HVelBANAM91exXTlBJta8RTHWOowHjd+SIel4K6RHLROQ3OT2vNacqvRqBopuyPoGlXDWYdb
6hocQ3GHK+R9ExTOSTWoO4LuwTFvzYFcLXZ0962CMd6+JN0t0jmsRuD2CAYOq5GiD3f3p89f/mYU
lTH1fv6Pv//yj/xHh9qSR4UYfRwz0axRld/eCS1suGySQJLIgrIex5AEP7u8s1W7xRPbIowbdlcd
x4VQj7UEPgPGXVeANenN7eE//eevN/xL7vsUvxiPY2U+mn1dRX8BxkR6j8u3Aykpm2VJz7DqhMTG
qqOt3cY4e46SGna+samVaKxszpy02U/SKzfjCw7Ibflz2AEjjnuT3cWD5dL7rKckqMOyemfriYCB
sYz2EVD0XShfcJEi0YktSvz+BOdt9M06p9EVcr1OGcpZnbkFHYL68jEJ7+6QXD5YLdUYSpA4CYru
CDpdIk4uKqtuTyjg21ZknerGYyBeP8zcjO4Iuv2wDhnH6RPpDlfoihYQ3uFddDrvqIPAMakOHDPw
tbpYJs5lHHJubAhFXVFN4JntMWJBR6adwc7CMLSRfqPEJ48ZAFVMkhRSBNPJahotzMsPr2aD3Q3r
nI7CWiZ1U4/OGXSWdCSDENqak/cNX9DGdwzyn3Rt35EGDSr28M40idN0u67/+vtvxmpbLH41f/wt
z+c46yUNWSJ1Xbbar6jo1N6loUBjbVZzQ/iX2T3+8Nn+GTY7iRfQUADXOro1P9gP3q6T+YuxJG+X
G2ssvUwW85n9ffJ9bK7bPSpVz5hH10HavcmDk24eXIm+mgaRVqqyN12fcmgf4/hoDkgOLgF42Oyy
8ogE2fw6wOVy9ygTFGj06/r2nCv8QVV9IZADRczGzzaAtNonde12w1+fJjBMqhiE4dxbLGGunRDt
S9scv8Jdus2RuRpY9r7dYe3HVyb+1Igb0S2HJ/7Mg3OtdX0GPxCDKxCDz3GUjl/S8XrunNRlhBX0
IXPEOyFptmb96qdLuEZ9MzRmGF2B/OCqQ/HhM9EgjNqxiUYk611EyaDqF91eGIPXkYmNHHwpuiPo
dPAV746gy8FnFLVHsDqsp2V3S8POw1PdEXSG9erch0Dh4qx5MjprxLtkUWeERnV467kzBtXhnZDO
FeouCFYFZzTrw/QovHkkejM6CoqE1DcJpxvjfb1E48KIg8YKV8TAfJyo3nUglgR1eOd99QKIGJ+E
dRvz6drngYTeDx8/3lkI1MPa4WLSYbTKbn3vyaFxynNAbTMD7s5DpE4pzCSw32V2a7cT3r2C1yE4
Pbajm7MYGsFmnr2TSDX33bZeWJ6ePbi2jvoCgFbnvZHMOVs0kX+zeLyKs/EuUJSm4wez49/yqNA0
XfvAXMN67OuypU9QYDoSHA2ONc/7BHFzM9ISdexzNbZoHZUxzrIYDkviNTjoIKTyHE2//TOnV27z
Zwyfbdm1xin+U22HEahoINaKDF+ST8N1hwi5UZf8wresPBhSkzM9oPdz9YVEXZjw1G/CU9Ki01Cu
HsaO6mHayAQsVMgmBfAMV6IBQXUu0n2FBzDp8MRql2bpFjsvmO6OoLuWgnZHkDkr6Ds8wx5DA/7O
C9rlljoLCFGHBJWTaVh3BHVbTFMqTI8SYwIDwsVWYdui0S3e7/2xGj+cvPAhWc3uuUBUEooxJ4oI
9cbWw/mMsRb8lKrHcCQNzhXwDQqha6jdvGjvRgIggfk/48KFLoA1Yy04lVYdwlKsGbuzxuCQbWf4
NF4CROp46wmC1vwQfV9vS9zt2++fs2z9w93d7ml+MBRRk1MqGhiYvLj7n1dYUi71bddmds1P5DWe
X3/6+vnrl69/c+WT0HtnFKHbCQIc2m6V1QtM6RGn+orcOmCFD3Yiwj3/sIhWT+ZMMCqLDdFwGnxL
g3+4FvTanOJi++hu+2R5+xQmXbKaf9RLLWl/TtDlzFxC99x8280Jct5SOtF1gs50ItN0xOjVsftt
IyslZKsZqxPJq1P5yInWqMNT9d/LsHbqJvcSv0/G2XGOdmgpLSluK7Q43lohbneAQZvwsOOzDaXl
7iQYcQU7Gf//EOz0fqS4mMVmEbTdLIqQg3E5a8K4JwzgSk6m1E4muxjtRnIwl7ppbk9uX3W3wcIE
I9VGC4PDYXGkokRPcVqGZb9xWiJ6jtMSJnqO02LRc5wWyZ7jtAz1G6ftdEudNWMI9RynJarfOC2l
vOeUGhGq75Qaaam9xKknKsJDTFELKdE98QoPQXdbUUZwg8aQHFNnclD67yonYgpiNqJbO7DkUTqs
USXrNBqYQwPbJU62AJoHj7VJFp8s4unxzIu8702NmCA9JAv8QMNB26Jpk/u1TuKnBEayTOPNKvPM
sFaY1ZPGZQOzzHTbW1TmPUgRIXzRE+gIMLo4WLx3vxz+hMSkWZlZ5Qhm6w4tJmZ7lvFs/jjftWbm
fUEfs+V6O4h5u9QSTOZInptLfVfnQ2U78eDSHfQoFOgt0b3fQk5HgrYTNvUVVoVC4ZymkM6Xa8Pp
b0lsdWWzYEYlglLAbXJELtl7Fm67VBR1hpYUesdrl7sApyMni+p0bR3wug85Q3F0tpM2MHmsqlIO
WtYD/oWYn003QOU5xIVguaV6VGMFY4pk7QhfmsXrtU2Hn+i6MU5UrRqsE5buv4Pr8m/wlvlkcSN/
wh8/EnQjv0yfJ0n63/9zQ9Dx01grWOBRUFiTopOyeVuX7fXYuIRR8SHFUsfUagX4WEjY8hQl17GC
Ut0snCgsVJo95boKqOOY4v5c4VCj5NDAsy9At8TD2DdsTitIcnRxgh4rhUFirAa9o0j9G2W6rzXZ
RenhTZP1/M68cH5jDkbgWvBWNqXK5AgRSP7zdt5jp5va15WhZs/OYN0UOg3n2esbMkm6y+uaQz0Y
p+WaPEkgOq50P9x7BjLTAblchX5fLqDAqRiocUA1By022mtsdWs0fY5dRjYbMc5qH+PB0I/UyHMY
he5OeEInruxA+pg7EJsl+oSQokYmoNbvwqdN9qjub35GN/rnG41v1BfX7aCkEfss45do7E1KGR9Q
j4jQbWiS3RkCHXs77K/3cKTR5ME5mE+RkdCoBeoVNAiRRmmpli7hwX467gEAx3Dd5gXcX7uyWQd6
wNh0F7jwCqL/WLe+p2OvdWVRrnhIsLC01hoqKSQw3Qq7YFRH+wWQ+rSdmZS78K5RWLXl9Wyefhsf
P8BTtIISSpjKlK7jVRpZt+tzvIK+7fHvr+soH8t7ByUJOVzT5wKuaQvC5CqQ4lIKfkHxJEOA1Zqx
ArOK2zhorH3mDtIxQUAsx2u0k9fy/49n8XSzzHstvD2RWDJAc+9aWI23Qa3UHZJHou5aD7CxX+az
KHYAcOdCmSEVhhhyikz+uw3XlclIBZ52p5p7ZZzByusBxb0tGO+n6BDCYR50P/dQnyn7T8SgrBQM
8P12weUiWISqSuGp5KKV3fCHtCml3eolG5AukVXsPN/7n3+cqeC5sQWx8ZJoXYl3LAW2xWbl7pJt
60iFjPxgw+9WkCzX7EMGWtJ+7Z35tYTrSxTUfFIuO7K73EXgGHNpzkVc4lacahghuwxX+ZIYS5x3
UcONXEqFaYKueoOIQ4xgRXB/dq6+xv3BvHKDNL86I9lhIjNJa5jIHgCbnOPHaTINwLGRgoHHe2Gb
DhN2YTNIEXIJ7n5b4Y1RVb6fMNoILaal9jmpib6mrXIXwxPUSs5hP+DcrVmR5EatqwGIGPMs6vLH
Boe1s4u56+S0lm3FU8pH6Cts0SOORWdUjxHLpPl2KVSv9Cjrd320NW8vjF6tZOpjlE2fd10ny3gW
WQZf+2sciCQkrIi51bXxRje3sg4PzKlxupibxwAL68lYC/ZNp+vvpBjBxDzWL19x3fO94e/63lDa
r1xoLzAfup/0fZ8f6Zc/meh3PxnqmT97li+M826ssruXSXL3GC9mUZLeydVdKsiU4GfO1pzpxXS9
4i8Ik+XU2GDoaXX3+12VIjjqA+AOe1vUKlvYLySLN9PnGkrKUdaq0LC3lIFJSnjgLJG2M8OMjvD/
sfdsu40bWf6KXrqflt11vwzQyGZmN/MywSw2s/saUBJtMS1LCim521nMv2+dIiXLYhVVLFXZ6UGA
wJHohg/PqXOvc5E3RsOjtcqTDjNor6bPrxv0FT9vl7WvZN5nvq4ghKpNhHJo1schQTaegcUk3ZAg
Rx1RuYbkYn3Xj+21f84+swHZ++6p/XPv6PfvyA/mvxMa5gn82S51XK4rcyB3Zb3+8EsLSzEhyrNB
3r76uv9Ytou6fqE1CEQPNDrkPFuqC33VdRf1u0cNYUGgh03dWHM1TqtLmIQwAoG1Thm+e4J3w+ox
t8P/8vwlWIqSnjNOc9+0MkThNkf+cQKDE2AiSemmpdMpkVTMt8snZ+UzFRru9/O4Pt60i5wRiv7Q
747TZ5kyDE4flCeqYBqpRKaU/XHMw2MmIkHh9KFpIDG8rx8qd4mhVjJBAZbdLu/vdsdxZzwdir4l
AO1YtOgu/sv2aeNegWz+VFi/nrvCwO4a/Vw9dR8K86lYrduirFpMlDOtyAgOWz2e2ts30q9kQul/
QVqf3od6c3aLeVtuH+DuxIjZBvSB+Vrsm6rqex5tY2lXD7EpH+t7b68TJQJ+oCT435Wfe+w/DEs/
zPEKLd4gmAMFwGOuwqZXzGFNbhaY9rCDQn4HCCz5jCj1NiQUkn9j1UZiRmA6PfnmXvtUJCXka1Xh
c6KglAbjN2AuBrWAb6AYTOClsJSpTKnXkmIyPcZO09FEIZWAUKwAGIP90RrthYHZ1vO1cRyLZQXF
NXPYj2cVvTOrQA33YpzAsRtbmEwFwkRT9X649Z0xLd+A4BiZEBLOO703ccWZYEK8in2TPK+j0IVK
WLM35J2wldlXlII7l0jpLGicDsXjBgkkszws6+1AHB/oQQ0aG6GJXE2H+uxsnk1RPD5z8Ekf5wb5
tQEIzuvdfLuzo1l+rjfL6qsLOeOXwJix6RD9wbtv65wwgZdICcjdr4yTUg8CAfRhfynOkmJMCXSi
yungJkka1wwLJPX7/4RMe9V++sfq8G/vzDtw88MAMj8BFDyhAIwh8/GvP/5jKJjcyA+f9La3tCVC
va+JjdgNB77f7oqRLQYmEMaBhTQ3HYBhLEQ0Cz0A4jkABf3DKOJtV3VrXurpOXf1SwvVzA9Fe5g/
1PtiXplv3c57Z4QqtNEpiST8MLcH0o6steczESMULhk8xXTjOowYSZQkLYYelpPCQMKJsfPpGM2F
wYxyptIArDb367pdfexs3s6mNFwmQQbuEZ6oRvEQRcFNkAb+Lv9GhFjPjOMTdK8YeR5lubgMwqVm
eqakSKm6QzN7GMU0zU8aSMQm6sREmIU1M+HUAQ7MG8zM61oJRjCf7DH0heCLYyH4od0/zwSqHOaM
hAWJiWnIISsVY2FcdvS4Cq5ARVsZzJfuRbvg6kn++rgK6HnFKokP5e4+UDBimPPEFm3RPO326IP5
OAg3Zomd0EDBM38QM3kTKV1ukL8fABs3SGeWdMUg80fQjZJ+nJfkCBlM8MHS+lVONqSYzDh/lcPp
g2wp/gXOJsbnHdWCZFwL8rBlMwHKiDqvMKntJGSZT4ZIhQij6vaTAUq6DKNSHL2JsaA3JI9eXr64
M/HGHaWSJRZTOhJKUky/bW6AtItMHH27pUdRKDgQ9Lbz72B1X/rCn926fCr2q2pjlEP1uZiXi89d
+Qx0fO9PJHDfZODAvSK3c8wx/xedezhd19jE8L4xeLbFquwfODufYbYfyp0BxIwTxrCYzKH/1ZT3
D+WICWEMMTL97V+W2qzKZlOZAG84tpPZTjclEkFoKve9PhWSh23Ensj4h70txRq4kpzCOBrxekxN
+U3DSKcMseACS/TNMjQnikdn56B5s9kUHTv0Ss0Q73O963ReX1gyfFLMD/u98Z4W63rx2T210vi3
YWWq2D2fwc7oKY7M4onkZlTFWv/BwKkj/g5x48peGyXxA5nHDzQ/4gXadc/XqXNXulPA8DMcowen
ZSCZ4CaWv0yynKbeOZiZSi1f+Srwda/PMI65EIxNM3OM4gXwziiqomqabVNUj1Cc1EmkMaBHzeqq
NYVR2Ujkz/cRphTxsJaLszSKucQYNV9sJBMSNhD9ml5yqmef3rLXYVXjqgJEfHIy76pHznweOdcJ
1FhXWNLVzR3aylhBiNCgci5idJhQN4jB8zsB59sooBME2xbyMsffj7QkMka3uk8bbj7rdTU4U24E
jSmWxgPcsY9HijpIaCDx7EFpjEhTpF5DpPswS7OEurQfNwV+XT+iBjjZ2WVkV0ug10OU4tyOgUZU
IaaFzzNwnTUXIpVIPTu60E3cu7KOAVdYCRHnHgTpjsHhO3UJj8olXEH8wuF1jR6F+x+t0pN80Rzm
c2OlHORm0KiCsxzz/mDMYzmv1i64RrkFjqOaSOVysW2LerOuN1VxleSUSRW2KDnqNe4O67UhflVt
Al5FcKjGpclfpZ5ADxM6aPOBJX+JTt5b+xvjPLt5kWoTGaD0PLFbl4uyWbpEDkHqCJH0RDefRpQc
gxsIlJ7t+mzirtw4pY4SLrKgCx19fllnigfWmQdBvTcG9NBAp+hie7+pf4MZF8NnztpoyF0TlvNF
9uVuCJkIArzGcwLe1ZvFaghaII5h4VcGo7Kqloe1k9BUySxsti6ftgdw4JaOKeVCaZ5Fl/dQYaub
aza6hcrzaBAThD3WCweylCloQOJ5JPl41TJkZCZEFrN9pkCGQDmCnXXpD7Zd187YnQoqDcD0pvhx
uz4YPH1wsdVPmOVzAB0gYd49opkMvksVgjFAKG9c4VphQLPIy7mhHzISFPIm1PvnHs2TsfIHGJTh
xViTLCf7fC/hBc2tK5v+jB8O+1GEcWBL0jSoZd1Yeo+gi7JQegeE9gJleRi6dyFH4MpZjvD4LFby
whbQhJoB567gwKexODjNOL0301Rf6s1ynNI5+Plu23wx4dA4P+dwaYZB4JDYVKssSL/IRwzBwoCt
uJa/cbCne4J56cBWIgIMjfPGgUOwgqosMcG1O12GMYEM3yvmOIbvQKUIHAARk/K5Bp4Y5s4iXGOJ
r8FbGNVCsuR5ruW9hm+CgCW0yJb0cch6ptTj0U/wQobGyMBhPRPZf2PbJ0Ygc6ygyyeLizIC1bqg
yfA9v0XrH66rpvBOYiEMhkKSxPCPx+wHi1nSfFc/eOZoSR7rtp7XdsiD/xW4pikzMN0rVOty11ZL
O7/LDxsL6PXAOi3sM5Xix1rZ9GZiwtugw48tBJbJYYJY+dG0M7/SKe8eZCfFI2ApIym11wns03mR
m4PCitP04tRUUMRTb+6vcbNCMmW+ooPeJWQA+gi5bdacJgYMkc6I2rDBHc4AE874yyh/YU6Sxlln
wI8RzxhsngHxywpOl/qAC6jUzN3lwvzHDJXM6Xm6i7BG1JbEKTMHHdQ+0vFC5Rh8rnSXih3UYyLX
e6wa6/QUvvR8HNgKgJtQRxsd6cIO1ESG/F6fGHfe0+oZy5AZf5mRd9ZHEOiNjS9HWdXLXX3aeLer
F/bmrq1/q9zdb3CxQ4LaBomn9Oiwg0bqfuqsc7055zMadJ9CghtYbC++wataVwvfEEtMMaxDjQD8
S2vnGJ2VafZPXHaTC5hWx6dDOavZahawFmBVrXeXYtYtsqYzHpS2IddqlOZlWxV2SRqB5WPfkUHv
DzWRG8sCizphEZUDFnPDYjlgcScsmgUv8Yo0lG680A264mx58bnWGHZ9KqiTwiIHWspNQp0DlnbC
womPC1tYg2YLC4wznea8NvYJzBM/qUXXRAI2UyIPh5zWa7f7ysUujOLX4kwUI3BxRO3qdQVBmSx0
X/iM2NucmVIkwi8IqgVwVoEaYxp0EZGCTbQgr8slYV0Zt3AJTn5YF7fdLpeYyMB9AD7MvCNpKVTA
hNXCO11T64x2P4sv1fxxb6Jg6ErtlbV7KohW3MQWabRyP93TN2gAynt0LHZn3m9fwt41kGzvH4eN
KorqOCd4+rRZglNj5O0qYigBRt13u8jLlc7FgUWEt9ONoxgwbVveg+OxaLZtCwsFYIdA97jqG12W
dbsr94uVe5ylVCaAkclB2233rukFsrv0GtvM5YV0xiAumE21qOpHZ5RLte2eTxJgHKP2YxTvigv7
pj+bMhCptLL1Ju2t6t9/urzl+3f8FdzMAWshCdsisryBzSu64dqrvhgvLAAs2CMPVCZmWPBM5N5X
jaF4cUrjut9Bw8wvkQfz3hi7AVOYD4FlHpIblOuNBy6YMUGzwK2A6Gf1A+43YHBTgHROko9LGdEM
ll7mo/04dAK1fyIP/l1G1A1YSZmN4/rm2GP+0M96mMe4G/VDZX/Yrr+iNf7ZnXu9kQEgaSSAM4th
nE3begg7tcY6Dp8XSVKJYtJ8FvCvh+2+WhaLVdm01d4R/RBqJ7lF/nmj9zdLuECzi+eX26otNtu9
9aqLdv+0rtpVVe3PEDbsa6w0bKaFwazmSbVpPUlhzownpPDNFLfvcfkKQImPd9utsxdqpph8VYK4
0Udx+adQ9Idoc8qToA3YtgN0ex4MPXwUOEorGPszGfCdPJtJRPOTwL2+0rhJNBfCQ0R5kCdIIxHt
+qqvNtMba8WCbgtpKM4OwEO1atDHDAVFjLEE6LS74XLg9qN/7qUDNZ55kNdCJ4m6E76TG7REMeFQ
8JRtQpmM5bfDzoRUC0ihn8y0M6zrylRuJqILnCN7Dg5PpAy1i48M4aJcG492U+5NmHpk2AtA5l+Z
IHkmgoYe3AwGq6ABuPRaTPx8qeK5UqGR2Pz57z8W28eqaWojdv6hR5SzmSCxQJ7xeAHO4DOAAxvX
GNNpAVEPoLAxTnTqCL7hBD6mkdIJTmiIB5TXU8wi1G7ueSYkLDPjQvk//v7jXzqp+hsMfFp2iTb3
7g4kYeJlZvQF4saWEO4d9AaTDn0TDJWxRZqjFGrg8oIVu7QBJjyG18bGJb4oNrv4WqxBC84b87JG
wztPSXOwhhE8OjrX2pjG+v7qkH9ldJf+PbMHzARU/KYCGhsJgVNiTma9fp4h9uHDx+6/8/uaRWmX
krT9lc3zdzuQ2ja0rO8+mN+8B1t9WlX9jvwAzyyE7/efKOk+/rBtBtKPMYbMKEVBKRuvej2WIcF4
bFfdPw0cK+6RKku0X8rHsh9UddwRvHkqvq4aJzdBqx4lLAlSTeUq2uQwIUfjWH5tD/PTavcK5rD2
E+CdyRcEuQDNU+il36pmW6yrzf1+dbHArTOAVOHUYAbEK2ZM01i9d+Uq032RiQN330UotfGZ/Qyb
OB7dwvo9tFXZwsRvKwqLp4V7QyPnMnBFAL11Iz0mGot4vOxt1UkAjD9W3ZdG2goYGgAnO77126gt
HVgdfpVTd3Bfdr/twG43vjVu2JaUxfgGz6hcOqTPNRJHl5RwNJjeAtNxw+p4bjGMxvxSKii+Zhg9
U/aZQJpH+pA//e9ff9jC7SyQwLiQviNQAqpk8c0Bhwte1XxoH++HU7+MOAV1i70h6TkWJOQVmUcS
7XKLNVzi1tum3te/ecWOSWr0KM1MDmXwUew6Oewf+fSOkJ+qffGX7fZzXZkvDtZUKKimm13TFM9J
rovkaVf6bE4CRcCxzFku6iUpdvXXyr3HgRnpMs4nikdjY1yZavnzvFz+vJ3/YmxZ60qFUaNwZASU
SQcsDTaG49noAV9ZfwauOA7KF0+ix3fd54G/whF6LVCMR4CCiZ7GRSna1fawXto7l+qrcV4+DriU
GAlWuQ9YIUY4U++/t8eJpgxdR0iRW4TILT7GWZnRoOvLt8JbhvVNeFis81uKx7aoH6ybvIcaoDvz
3qthIoohythMmKBCZeY0nluVGD2itcGno/gUepOwFlIPvXfLuwIqhuv+bnNh4uu53XDgrCxjgbWb
7KYVq0ILKbx5PxSwj0ZpHkGU5z3rm2r/Zdt8Pntlo7tLR5xJ8EwGZQR8ck7dOzgY7KRWlP3+ac0J
JTSSAM9vaUnRbSdxdQdC5TphOjM1KBaYEi81rDk3zuWjUUoOy24f9f9UIFdkwTT6tjGgCrMYXWPv
F59vVpfVrtosIb0+7G/VkEsWEfwUubFFCx0JbFIpMEYxPm+G/Q1iRgwnYp1UYh0VbIZ/dIypmFzL
HVZdEo7LUMdjKMYjVCQF41xyZ+BQhtIwf/iqHpHbndSaUI6x9GglMUEtOT1tGS3DccuGSA7fwpUu
N6Fy9iCWG/+RYh68RI1Q95bvMR9VqaCJBT4ftc8WlzswG0W7KF11b0RSmMhAMEqSIzkC7ZT6blCF
TyWcTyrVc2eo+GG/vxs63MpO1MWxVveMCazVOLPCx3rGauk0w1yyDFz+S7vdDC+rw7bA3OboGs6Q
iAevChzncheTc0H0N48FkzzG+xo79+OW4e/gbtd6JkaQ13V3HfQRGOJ9X8/06f/eEQIPzP/+tG8O
oPmJsQIHyIf+iZF/Dmq5Z4LzzDTHiAjNGX7/t9JYpYftsr6rq+UI5UkHsqO8KzaVqSVrnMKPm+WH
cle/I38Op7XW+p9DYyRiSi3ftGSA6aslA4RlSRUML2EwV7AwL9aNLA+wOnnfn2pxuskll79p7X3n
9vlftLBYbtvU9+4CdcxBe4mIFNrZjcKvh7KpDDVdDWtGu9sNGckRP7OiB6iVhdXSx19b9jp++UQR
viiUhB21MWbV5TaaKMzEYvuqeNwuLdzloauC+KSGy3Ep1gKiFsISBEcJVxnioKpRHuDMHIu0ygtm
gGwqoTANlgaliKfAmrsYz8SgKqiIgF8TbqDcfx8v+c2vq0W3naW/9nZJldAQmsTQNEfQ37dXYxk0
KoSnWZQalhjknp77L6t6X63rFirx10s7gNZBZ6FE2Fprwq8v8ntZyzAIMUBnGINBBb8BrWdwDgQ9
cwWgG5IGJYOvQ/VlOYoZo/oNZYUFXYJ6maXZbu6vNqpgJEInjQYc3xCkdyzETMZg90zbs6r84zNP
ulEYB34mKEkj5XdNtVmsriWRoKUyrJ6FT7Dv+Kpj000MGPNsYBA4YRGCM31tLMaUxhK9A9MNnd43
Vflg1P1h87laFvXClyrkMy1fyiswxP8YA3Ez5eM9K2o9K2Pj9U3epKfJwdHlgARWnKVh9gg3jnOK
k0qancdZlouBiGkOZfaXift8R36MKS9L1/RMInyzooaC09JO3HDXOWAG8z0SkdYqyr1j4qiAJY38
YlvFG0kReSFFxLyIvOheeIuzZoK+whlwrV8DCvpdHDR9cdAUDvqi6vEtDlow9ApHwKhK6HqdKxGf
56WM58VeAzMW4XFdXnBA962F4rT4kgX2xd6Mi5CvAOWyP+ONxFG+EEcJkx/124sjM7ZvbJzWND/6
tjwZDZvJxpMviadEJ4cbtOqPolexevRVoAQ1t/CrXaD1/c8Pv7pKs2aCi+THdHWPOSE0dGw7T77X
m/DcfOkZyhk2iJG/yWZvHr+tzzk3lgaOyOXJlqi5BsnI0D16POkWNcerCFi5SlB6hp9AD06IzkKP
4eJIB09QLQNXnPGoRXLOrRQkcB8pj1/f6BpdBXuu0mk31zr54TNn7SIsrE5n/10vsi93rg02BKWk
vAvwrt4sHE29AnGcRfe0JohZHpxrXTBVMnBJIose3oM1ESo5VsZqbQ9QTbR0VGgKpXngttcoqPW+
enAuiuaBi4ginAMTCjzWCwey3WaXDIxjTXT/zbUEUYQuxYv2DByLxBBoxvQOer+oZ0hcQWUWTnq5
IGjIS50GJBm0AWyIc4MkRmiUymRlXcpWgZTSvFGeZ7NiDpfmzIcfMhKWIpcb8WT076Ed3WBPAvdq
TST0aRHdSGDLssiP3Z45gjAOXM7GJ6+lHdmrDsEDzeW1je5zzwH3LE7wwhZQ3ZHBU+12O/oUB+eh
47mnQW2qL/VmeY3S6eEe90iOpody8PMwAHLsPdMqfyzu2KYtaeBK92lgT2Vp89KBrUSEBa4PuyH0
GoIVMB4lxtz7bjjd95sGCstg+a4tY2cYkyzGrw5fTc+ozOOvdkmVa+CJMYJZPNex1NKwwYLJPAdx
LbM0fBNkWYJmS6s4NAok9wjJlkT176sXNI+je7G5w2U4sMpin892CbigGn8T82T4urfUjmwEZoQC
6mnhH4/ZDxbD8gat0oI92avHuq3n9brej70C1zSlo9C9QrUud221vLbRXJi4KiyZNAH2mUrxY62s
P5gYaxthjCzYttiitDBBrEYWXSMcuPx5CshOiscWxsOqYoSTg326ssJc8aQe4PEOE2rdYGfbFW5W
SKZMwPS7zG32BaCPkNvefenEgCGeGlEbJrDBjGaACWf8ZZS/MCciZd7pDPgxrhqDzdPry+e0yIj6
IEkdsR6wTXz5j1nAyjSCkwM9m5HsUlsSpzeLfTzlhcoxBTFKzNLHrK33WDXWKdNdbs/Hga2AgZ4J
2QnqgR3YgZrg0fWxrgXv7qIzgw2NipXGKpLolJbFbg/GaXys8UBgckxdrt1vLBSaUYlzlBl6iwzB
PulbUgZfi7vGYtz3uO4aO32+tY9hFvCwSIwbq8hj+DtkFPC8Mgq78s4vJUrMWFQpyjhXjNWpdWxw
aNYvOOBq8Rr023aFdMnK+PCN3REcpWnkuso0vmYyHllwPYkontpGoe1O6MydbFF1UhEk9lbrUi2g
1/ttWW/YUsCje3wTnDuT9G3pMay851Gli6nowVFi7X1VbUNqhOC3PYVhwbWMajJJxpW3+ApfVw3E
NhUYzbEOV0Ilm8V3vfvwZJMcKWM83ZcRSAXOlBUTmHHVVHfXFqVIcGOmw3VpatdBeAwgzOEIylHF
ge1shsedZoHlk9dBt/X/s3dtva3jSPqv+KXzpkS8kwMEZ2dn0E8LdGN7F9i3QLEVW92O5ZbkXObX
L4uSr6JsmpIYd3YHg5PESYsqslj3+up1vUxP1B+JKXRFSo/DvMBozlfchrOBPV7n6n4Sp0gN7120
z0PQwoPsmFPPV+9VnHqWep8Lw+NdaHymsd/NlOa9G+dYiKMSQZibBqGF+shAx5I9W6MERdqiwyG0
yg+bWsFOxkXvXVUkxCoxD3Kn8Bgmz4UxSlDcLwNQhxX/NqsEkhhBuA5LHlhR1TYhIWG4LsxJhaCF
YHazZqsZdZQU1a7wxAzojAB5MKrHWi/zldUHEVA5GcYgjz10xcGMsWSlnfYiek7KbGqfD+zaEMkd
5pgBKVNrD4uA0h3sVnjpslK5meovpX60fbqskBOO4iG2zpgM5UWYJMol4LVfv+JVOKo0FlxSTJ1x
VGu0adaJo8rchqy6HEkd5TUZhmbrLkJLxRhNmJYQ57r0XZaeF/q2ThfZcna4vvWYYq7tL4/gwXb+
51VjTmM6rFiyyiLYQxIPb6fXvTzWfk6YL8GHdw2Ou4is/gEGtCo2+MrdHeNMuwVKDuTju8zSgHSx
O3QG/7rcYJ2Iw5INYEdAO2AaGdxNC6TxDtW4wQl8KLNlupqm9+/JW43YaTb2AX7cQgnW02YfV/ld
Nv00l+fx8wRzzkzxOHVxB9ttv2jfdlPRQI6o+wALNnS4k/SFFkYnoEPjHU1HZgMa9RUWf1n2RjiW
ggMODhvQEpo//2HVrAqAiY8F5XbHN+OLLwdAxViyQS/VpQknJ5bVuJvRwcJKTLhXuGlnhRwAYW8/
M3udaUYstIHyGN9lr3P0iD9wNIfKZgCRho/wY/KcWqHMKcBXn44YCcgrTqqunfiXnAzOP52wz4jE
8ZcKZNwSyDK+mdvdPhykveWbuG7sJHpza3zdLuCQcTyaC9ihLBAjdMIk/VIOJy0OZyeR2C/k8PYx
8RN0xC/TJ7Ifu6yh5iupqiLTXle6NS6mZmS3FZweXHaMPFmle3DcD0QlYZJjpkUHs4yRk/K2b7Kl
CEjJL71RonWjOLqZG9XeLoLYoKy8f5sNTNepsrS0NWlwCSvfhrKieMgNWOnXMPOfwUUxYauTqW9m
FjT0FRLp4VYdTAdKl2mVRut2Wfd22jTzSRDWQqg88tyqf9QfWgChIhjL4wPZ74nSrmJyXbD2119+
6wygJ9oj/dVeFq9vBqYeGbY24mX5miyXnZiXPvrfSkw912Vtp4YC5hHxMt5XeZW9NPerfDBly9HS
sHcK0e2kXNgUFtg2RHkhhrrDkDHW54QOwZKNqpmW60jfXnvhpeBsIoUYMIZwYZoWhZG0Co9hZhyk
JPTL5K/RoqrWHX07HDtWtnbKqV2OoEhtrWRMyAmmso97bo5xCdkgEL5ARlPk0r4IKMYx4HKgXqL3
6E6cpU5fu9inmOf41i3TeTL9fJjlm+dlGpWL/N0+wQiDoTiaH3OBYZUk+l56h5e2rWQQptVvYWVH
GElDyFD50+syZlgGYxmM+SAXLtf/JOXnampr/GN+Oe/rlyFOcXzhkqsy5pSBJvnlty16w7+hD0uA
jRBA+pPXL2y9eHWzjl1AatZwm90i3MogtHJ9a0suyNNoYUzHX4cAShNyUqyuK8EYHFvKRT+ACNz3
jJpOKq3LZtkUPkoK66gjCReZiuHo6i4IdIoOXM/xphnczu+Az4L5OBet+5Zp+8ux7kiMbKNwJkeh
fRvhj3YIAPadUAQ5Vhd67L9eOVt1yDmGHAND16+bAu0HCFD2N6AYeICOKeK3uET2F8CKMj8utA8C
fZvff7RrxCRzLIEQzgG4D0vNlnS1F12W+YDbco9aFoZRJfHo+8URH5QQYrOuMVGDHop9Rt4ESTrs
qeC2IwTgQ7KXLD1yMLs65YhTU5cYIeBH6Egy+ggzzS4ltKGmSUfxaBL6vIzCgCTLxlm9LhmzLyyF
gImvo6xb/65Ml6kxu7oVFB7fPo6N3aq46MXaLsHVWuVIAxc20GItV9sqhQDZn8fx2UJRcXXY8wfs
6eOgBlkERUM0gJ3NMB7oBM4GT4nBPkT9PZXGmzz8MCrSPzfGi04LrS1K+MhkcJrXtGcDtZlAqRxI
H73oy32vtfipXce0xaPUMN6ZNV7EzSIjOw/21gWl5RIJIypgHgfmeAi9Ps/BAbG3MCgzJH1Y2dC+
125x0943jsUMNi1WA924/bI+1w0jmPmJ+r7LpWu/yqNpslx2HbEgYEENvyPm159RvjYJnVlHtw8H
qAMPc/6qVgEyhjCoP13Nopd8CVmlfXkBnHuZriAZVDOi3fYHdcNJAHXGEe6zwZfzwQSLkZnYyrjS
VFdftfIlCbU71N1pVnm0+80J+U2hgxJy0HfolJJIKDHYNa13+IJsUAg5dp26iOZcS8RiDYULVjOU
TKiSvtcBLoGpAT+EfZ6n1W8Q2vxnhwBGgmqDp782aHbTTpa+I1jQYc/NelYwfg8hNoRBUG6eje/Q
BdREoeHQR2Xvc6u770xe1WYdMyaRdkwkVr3TLV2ZTSSI0qcjAwhhIlmIDIFX+M342we16Obnl2yZ
WsGsXSFanT3UMjX1Oeb7//7P/3g8LycUpJKEj9Pkk0dCXA67EPSTpAZR2rqklBMvKW+7WHWRmC1j
pRTgRrMgbB+HYHs0VEa2U1IwrvdMeWf57GGvY0Dkkx+jpqCow3xkjgj6Z6mGIUZQJKepjgC7dpnZ
DQGpYscxSm7auTTRtqisijR5tRII/WGYiP6qeYeV60oq8tMIB/KtBvROjRn5khZFWtjdPzxhqFcJ
1DUVjgIhNJSX57qXCkYkSQ9R/aWN+yx2G83pouDarBAt0qV2bGzRCWUq1jy2Sz/vJS9etfWWHn6/
x13R+gY8G7ONsyjVdzCzJ3IQZdph9qoHMWXTUK5jHKgZkLvlTVshp4Fo9gh+nJZZZq/zqCysABxU
m/cMqxBHeQp5xRF1nDvfh/MlF0JJgq7jfCrsnK83CyknVDLZKZD+3CRFqiWQtTdR0dhxqFiPBYgT
MIS8mV1XAHrs5INKv0vf3HYYRVwkz8uOeW9Qt+cEHSkHV7dueGPyvLqFOA1ow05sU8qE3mmPfe40
raP0Y51Oq9TqIps6QT4Yq/+I7zGAgwiKCKZKIEmt3O9mMlm5Xzv9eyy/JFvmb1rC6W1dpdV7Xthb
DSmB2lzS6/hOJOzRQUbYajlx7liQfHpllpt5ptl0qs1O7YW9yUZBRfnz7/ok7RoRU+ir4X0Y5yA1
1tG2jWFykk/S6ppm8ntUt5ObVvJIc9ZHw11HLeXwAzn8gXY0mxPDhTTGbtjM8iQC2sILvsB/7W4N
ob1lzfaSjC487XWfkFqQ/lx4oG46+DHKOsWZdqwnTHhc9ssAkRdR2pm23jy0eDPOa/ZiJtRrOzQp
I/2TXR9p58it7tFZfhKuRKyIJDHRUhRJZhegVwptOy9DVyAE12GrUwvnUr2acKrH8+TbbJVVGZgu
0IbUAfWNIAMZhljECB6YVYsUKqPSSwjuMGRJskF0YpHMX03zpWka1jaf3a3HhGkrF4U4W73pICUL
/Ub2W8S44xzTzlvUSN8DW3hX3NMYyee36G6av2oyZo/1xLHdn24zUMt83g5WuEFyj//O+uVab3y3
TqrF4/P8SX/VinV10oXbUEBj1sc8gTqTZrKL0QRRYiAZrfzGtBKU6ib2a546nTBisEG3ccTTZZoU
bmypJPZVete040iOxl8Gqhq5oGMvVJdPCkQH8hDONyMjYC16HvLSwRa75vKhWE24j9/skdpDQ2ix
2jdYplqLAA7vtCMMqK2kCSVxALqYD3M4WQYXgM6x35Zef3A4zDbK8SwOwPIu9TeabcAhsnczIChF
R7zXTbeXWl1oEBbIdUqSHKDskk+kkL4HWifBqkWRV9VSe0DGx4LgokEtPAZ7vte+0d32Tx8V/K9B
LFyvl03EDbyp091Q2ilnilA0chgU3f3D/LpJ6T2+Jh9RMk8fY1tGxS3R1SGcwawAvJ7aMd2sTNx/
preoyD+1C2n+ysoYSutT4ePP+VRnScrDaDlwHrFPJLNJmTyYPKF++lNutvJpma3+eGp++ZS8aKv2
aZaVU3At7B2vhLTgKL+Uv6hUyCMI1Ik7bZu1zbhpCRwi3NOUxnbVxAoFTls8qCAt0uQcDJiWaoz2
sGLMjTScE+kPtPHcaSxhiYYkzBkVySvJcFURLFK+F+ItKT5ri3Op7UzNF9MNuCvWLIZgE8o8SLke
fonEV67jLToVYiSI6ISiGeSGqnBBFe0Mz/oud4zSoRO3SoILYrJ8m0M+vYyAUWzgM1z7WGoEgeHe
m6ViUxYo+tyxI3A5GHUBwHJ3ercfYdmfyN9/wj/r/+9W0J/o58T6o9nm9fWzVZnNqcfrnD7KXO8Y
A2zSTdGGvM2705nBJKZ2aEjI7dDhdhALfEs7yIT66gvjNizDdXvVTV0+GqMBaUNfRNvuGeb7/VN+
Ij/Dc34i/9RP+glz/Sz9vXkaZvA8Bk9kh8+Ez+unsq49I/3CuEMfISFDsqdPZODCuHOLKpTM5PH+
L3CL1w3rbUnzvmUtgwsan4q1bh0lxvQSCMxEcQxPD9dof6VmMo1mKoQ9TqCqHEnOxpYM9YRB6ZNw
z1bTIgVvDNBD18usihbpB0RBa0SSdbs6QiHCYB4bxoIM52jYx4Jof9on0XgFs1hNQ70u9al82c+k
f85n9iiyNsu0k0uGCLNst67OCZRrzRcmQ/Wj7rOAQSZ3VVLonX408QvNPqg1rhzWV16VGq336Vqk
rv3WHobLjqrBIyNU+gR+jhEfTMVeXfzdlHy3QwrYFJ3I2MmRUv6BGOpktqjz8sTwpy1WQWOtIs5J
cDUAHAJ2EonqQl1OBw0ET7iTK6b6wy0gE2/pV/F9RY8LU8RpMXVW5tpFLXHEmVLX533u70/mfN6/
ruk+9aOJvVutF4+oVSogJPKhdy+GNyuog4DCvzSZ2euZEBKgqaUv6fver9mmqBO0dT49ewZYr097
gS/UGDI8ON9QC9tQKt1wBtVVSvRC0pJz5Wi6Kqf+l1Lzbpn9y57OZ4JDd5HHEe6beprKVG0M5W/2
kndtyhnA0P7St4bMa2vJyDH2PbySJAT7H9WesO2h1Umm9fwHavccx45Ns31UJGK9pKQWkk0Oy7gS
q/V6l47t7Og05dJ4KL+irCFXmjIFBJUebVscQaGZfrDyYRpNKnR35MW21uxwh2Fe7O9lvmqdH5Z6
c5WH8vbJOHMfi9EnCfzU2UouGKAf8oGsCUsDCLFKGk4nggexYcw8PUwl66NmTYLvjIoVUG3FYke7
0u4AHy+zg/CwZqY4h9HG11Okb9mm0Dr7IVmvm9z9e1ZNFwbpqMjeoInhucjfy462dQn9wAwNSeeh
Y9fKNwMaG+9B5imU4kteRDvSs5UbzRz0Lw5FM6D4iUFIPtuq5ONAWNZ4TVbZC5RgHO7s/fbTVg2G
ti5oOObhmA3TLbgtSNxNEWkmzVqW5bGSdfuLIGykY6yjYVhyX5P+uCxxDgBvpn0pn5nwytbOf5Rt
L40gxREIIPF1izOphln8POpa7K0y/pUWeTOFGEovO1BbYcgjCkAIkzLEKkj5m6SmxbHYrCvtWp9x
4gE8nKAQ1FBBA6xCaBBaqAiyCh/TbyQ+Hs/1RCifrbJojPckq7Z9mM/5ZjXrmD0Co5kw8lHG19PG
QuwgCSJsCCdDOoRNmby9AZEAPFWIAyK4j01WM1sdUaqN3ekyg6jI+QSUnCAW4sSwQkG2MAj3yRDK
wSsNcj0tQdQpQX1Ym8YI+vnyTXXwrdXV1zY/D3E2WAaRpSSMERKEFqoG8YYOhVo9qXpbefK3h3pG
6CIvq7+B82D7z81Muk4sa66VZBBJH2YVioKYFWiMq/1jk80eYeIzJNjak7NxEAmMg9hlQW45PQkq
7bZ21NOqY71swhT/PteKiWtCWNcKIQRVbJgEoeSk5WBEnrirPz9KgVNTXeDpmJxkkur8hqWzAivo
E44RE6SPZ2fBZrL7eCaEpY/2EbUciQmP8S3s9+lrjCXWVJDLSILQQoKYe0EMMUSCuHtB3AofM+Dq
m5SUVVml69aNFsoRnLR/aC2IISdQj2R0/l5noXcL2otDtRREPAg1Ug0aTDGIZ8X5YIqkjnhy6lKl
qSUeHpWbThQTKWGUXohwAfNJ2h/UXUDZvmUoAdIPjvs/eFqW7XIOzW+0j+pf58ts+hll8xUo+mmR
lAuboRHDCE0vv+QU8e4k22dqfpDQsob0efbfF+nrfVW9tJ7M/AKP7YLH1qAHLKnrLL7e1x2h/uxz
PK223h0+oSqMf6a+wOK/cpuOWn+GibtA0w50+oYxFuMeOuF/fgZF8Evdn9Jqwk1ghpj+x64YxATz
IIYqjUOsEiTGSsKsIoIY3SzM7Q7ipqggmVgZhJNJEFs0SO7LDcb7Swojtgau0RNRXX9cVx5DNXrH
LFsqHXvj+oszNZha6Gxo3CuIdmMVYNxSicmt1oLs3SJ9gH9ol8T043U7QoQiaIG61ToAj0RKkAKa
GN1qHs4jyMS/z7mQ4WzmVrv8kfGM2ZWmswiWCvOKTV7uAbS0RMQkjOYP45ZKMprHUc+CsteWarcV
h6lZClOiECS2RUgYlhDfpuaThAnlhkn2sz5XtRnMdoTS0cTG4WP9YVl9LtNykaZ2k0nC2ELcw7Ze
rZN1tmuIaBok7MjJMYJJw6RHtP9zlbxm06dkBu2R26YzuxVPJkjREezr1XqxHYf38ZK3ewe1LsHk
fNsOjS83X5jR8NnLthEYlLj5zECb3tWfHgPf7PS5Ab6R8Z1pEf+o/1RzAoIw9V3TQfJfgAdcpR/V
A3xYP1lbDABPkixPOZXRiXJBwz2la5xS4f6ruIT8B6BFhViFhjgX4hKuOF2lG8cEWyrtOVgOIsTx
O9UdDrBlJMQqPAgtLlNV+q+Cg4gYlyKUAU5fhqAlCI85FdQ4qLRp0kBsvVWtBk3TDC757SlN3Edp
YsFlkOspgojNIMxG4/BMcAoZOCgTKKT8dWf9Nfo9eUsaGJXukTIkhvonFIQXVBg7LQjHBbmjTr5k
/1WkuL3b08vvQAh5MIFPAJDBlNxvpoCYV5L5GKHPbJlBHqtRQ5stvHst54/kzlpyzPFEbzER0ltK
AI0Hwz7hRztwVCy0yPPxGk9DCjU81Q7HBuaZ2qvkYUUfbBA/YDousI92d4kPAfbK5QARhcptImgP
HQZ5BJN4zewzxCVDEyxDyEeGPfzYbtw0+7RwpG9eEJVCxwgy7bnx7ivjTTgW8kupG1erSS5u+uxw
P+pQkNAXxwOJ/QuxZIaJ2zDcv0g0zwkKcYCwQZhV6EBgbtcAAzKhghwUDrKFMghrizDh8DCSR32f
NAUJQksc34owOFilBtBs5ylmm9d1BGZrWwCICWNO03dOiTmQOdNFspqD9V3XVSyytEiK6eITgAFr
TE2rYcn12uQbsQSLgyRIUIhVYvR9NKpSQc4Ff5+oG2Y3Be+uPXZG9BfAKyQ0kCd6o2brVrhXi6yY
RdBX99mMMzWR9HUV1W12VomL+QTfuKPWz8n2Mv3aA0GbDd1UNS4/UPjnJi0+XzYrM0TlsQYWb4aG
ttr1JorRaza5rbAvnW7TTGsPISo2wYGSW0p9X6+f4jiI4pDq29RV0FgEUU9BVmFhVG0YXzWINIiD
rOITur+Qq8CWVAVmUoYhKIhFj0SQgkfmU420yMoqLz53HR7R72UEor2ZV1ZDhjf4QF3eJJbCDapi
gCsbJFQWxjOmQYQcCrNj+FYDctsg/SqvnnbTRt6z1Sx/3w4dqdl7P2ikIzuM4D1uxQX8q6QHwhTE
hAkyYTWAfH1Nq0QL1he98CKKITOQr2b2GiztMjrh53ba+slzvqn+fZms/th9Vk99+KiiZJkldhwe
hsH+DpJBZ99Gx1MURmcEuU4CBarODLEK+//0yvip8PNiDl8ScyRMf0ugACb9PnwdxkUOE1RA3yhA
Esaq96mZdjI+5kWymk0X2XJWpKtuUwRxFruNaxzgPqFhaD3AP6xTsu9ZtYjMH0TP8BfRlm47xWRC
wxTEh7kOSt5qvNArLkVEkMC0E0xioPuN+tLCeIhVgtDiBDzTexUnQK/+tJAgtGAUZMfiILSIILTI
77MKC3P6NMR9cepA6U8L+zbnwuIQtBAVhMcCSX76fWQyDyJhKA+yYx6c7OEJLdOPbJpY8Xex4Pof
Km5Gm8a9ZpkQxs936KMv7snp16yP4xDMT4SHUNomxPJVWhR58ZS+wRBoG8fFMfLDFXXq+sSm6xO3
eiLhC5bYgzKYbK0vUAknZkPpr8HQ5YSRYR5+jNRfP105Fkmce3o3gj6OJ8RHrB49vhNEX2r/pve7
75tFrQgdZiWCHCu2u4TAdJmtn/OkmO2/Mx2hZxANBJVE2wo0iBx/179Lz0lzvdlsgp0qJk/e5nfo
YC6raH+9tp/oi92eSoEJBTyUeNiVoJ2hvRQijnhInRLJpOO7BZIQUESLx+jht/ZL66vssW/7qRtl
la+bYRvWgScwNpmJHhzpDIiDhQchJ3M33vOXl9NHK4HdQDq7n200XD5/a88iEZQDPmyfh+9mYvww
U7ktkzEI4YMsYHt07PFoW4e42SJbtFggNuGI9eog8utaFFR4EHew7Cyfbl5hCuqu2kyL8ukfMMU6
hRFWNhxGBtXVPvpvrzhqe+635udfTUX3Q7KZZfkODbxGOU9n2Nq/K7SQE3Ev0g+453QT2lKVaUZC
AAJwhbE8fFW9ttrlTZvrvXoXKJJodGb+gWzsrMTXHqy4gC7a/wXKtPo5z+sXOF1f2+LsizeAMTa4
PNHPf3hOSv1WRVZLE6sooZ4m4IXV93tjhntuNNcva+z19swygfxsfudXMO2vW9SdtnCDMbFShLPJ
l6sLVjmIOjKGLLAqNKx1qVIeLLBtW3rLyux5mT41P9tRhhRMbpKjEdUWbBj09DjXyhwnQOY81Nn1
w8R6o7et7XeKajuYjvJKzYusNLtXeVGe/gyd2KYaSsshs4X1ED47OoiAnYsDeYX/S92VNrltJNm/
wi/SRFiGhLoL3uhwSLK84ZhZn+P56kCz0SQsXuYhyfvrN7MKZINEFVg42euYsdqUxAKqsjJfXi8p
j3sWiuX6sMuwhtop7QSnxOhBl6zKIgaUCBlDwzhdVvBZQcvGA2rYbDpfR2bW5j6doU+LrOl3L9h7
FLpXCKKi7K9D/ukF++4Fpe/tt0XHr4vs98HvvCoWsn/uQohfvaBqBSYEfoHffME+vPzr7ue3v/12
qWs45shlG5+t9pD9TAaMEFShyXALVkQKl6RBBdJ0CF2yzTbr7R6f8O86VSJjGTZa+PIpa/eliJy4
NKyiODy2w67UXTTbsBGtN56yqQQVZ1DRTMu3rUgBN5EP0rsUXLnY2fbOc4WjX61g/ASCAU7Sq5ob
zN69KqQIvuDV69dvzsgBdumnrJAyhNPumy4VSBeTqtuOW+Ks43ji438+rrfL6D4F/wle09eOA84T
J/wml3AFv554EOFG2h9wcyMzXMzd/68ntM1w6qBcCjO5FFLNpTBwlRPWQleZZdPd36tpzZ1XiUS4
kgx4CS733oTCqnhGMNjeoLpJesHY44zLrNb7/PFv58AqO5sIS/TUYLpuP4+M+4j33pmYQ5LLoPib
/+6Z5B+POa6UT91tnahTg/hItC88akKYgJGi3b4YG3hiI7H/sznPQgqeeEmW+TIzURxDavIGPzLf
8HZ/R+xP36+3d7wStOexEhiPrgsp0B6gs9Bxp90vafniHM4jrRhC1hKz5UEBglZihv6wJ++rsAW7
H/EyF3jnZjfFQgA9zj7Cle1JKPy5r4b6x7tlszUaP1+nNSw1DPY8Rawessf0sKh1VBmL26HLcNFc
uB2qGHaaCtFh5fqJdA/ZChS/iRkWvwMW3qgxb15SxAz7g1vsRnMqAdJGH5QMW7b/vN5+jHb58rBI
waIaEIFL3h1pnC8TTy+n6+USVPgdfEv2dCPgsA6rfVUBC9UCEx+TXqXrjOk6R/kGZWB5h5H/MgJ+
zI6wp3LVGT6BvNUh5KvpNsOLen4OLzfpfn7n2MfjF1nctJlVkIxCNkAqx9HCImlkmhuiRLiolpoJ
fCXL1XT3D0Tl/4Dd2cJfvzNA/aWJ1xQ/Z1822XRv3uLunR0M7GhPFEzJwXXu6m93dyQAW84G3LUg
bB3W1Eib09Jd1AHsv+yfOOkS/Ofl/pTM2yzSfHUJIjgoX6nCiq5ox/HX5pAco6813iOpu+iE+gm7
HtatOC59wz2A4l20foStzjDHisYqzR8rs3Ypa3Pba4cA7OZwv0ImRAIOw2bfeFjrbQtwFhnmKGAX
dm4ebh02kbVN/ADjF+nUhpC207q8hEa/lfIxrndFK16ejcDWw4T2hPt3h3vzAH7SINCrZCAE6Y4R
JjjVXd9YTwhBu2nS9LCfu98v1oGNg2OFxHbZ4rEmJMYxiqH7itmYW7dPt7PMQbWshWmt4aInnGO9
WrPSt+bn33/9190aNO92g3XvzuOR+MZMjKJy7i2WcT1IIjAsmPRz8UpxeXvapXyse5QujhXTI4NA
fLLOIJALSsQ4MDkW3TIZj2BxTPwcLuh8vY384ygYwTqUFhrpifDDUMTtYPsyExuJ9usIrmDkrp7D
wCWV8dj2zgiAy94JFaSA2IUCenr7J/xW2ge4jZ+xJN2Ecao9MEprDJuLRgu3FqYwunzWkzDRoG48
NpYBAnvgL8BC14EH1egyn/C3O36FtX+jnH4stO52+sW7wK2GLZ+Z/OgjeCq7mpw8ISjgsaq/5qxv
Nf9VmIZ/a9F4RXbBMVFhgJT5nLj6xAEVCnOAcS8r+KPQrJNAu7W587ZzNWFBhRchYnxNztz2hFBK
JoKR/lU4CB/Kkuv6JnSiFBlQtl0m7KtKpY1G3aXj3rVX3ZuTiWRJB/1eQo5fQD1/9+HHHz58FxUC
kRkYmW2jUyGGN0XFGPpySnV4lFKOMr//vE03f+4c9bECSxlJG60wmE3D6Yd+k6aw10e1zPeHDerE
ahDPrE5sDYmpJnHv+2UcGnzvaJl/wU0pMsYP6T41W5Kf7MIyPRkHl/vDsOicNX9As0P3oImm83SL
mRA/bZVieAox60k3nvXl1E2elRokVoD/MK7hxQjlN2/enF72G4xMvqBx8fkpZvmNmRPQwUhz839F
kpGVb6MXrIZlzDPTlhJXDvBeyp6JFdtP7rQWSVStAEomVMox1v7DuTZleuC1f/jtJ/fyRGDSdOjl
H9fr+3TrenUxxqv/Aa9IvzYCmN39mX79Kdvu8P7EDmeXcq4GfqLD/hGuha5sB445JmT4xf9wLS3o
GPIP7+26AaINHG+8+FfOpduAw8ZLf+NcWvIRliauw9ZihFvnXB0UDh9j9ci3uhj8ftvVI5elwVY6
PrSsLwAdrBxrE/BE42eG0f15D2krmBpgmCZZXpzaRuEu6BbC0KbsjcQq7sUPczUIt+oKnu52v2Ea
unVLMDfxoP4DmaWu1WMbm6fogmiGnTS6jRq9qCkrZQ1xR80OPc3/O6uxPQsg4oI0SciQcipVTDSf
JFx02OsesrJcat7uPS1XD7hiF3Q9R64rpPTl9BaOINeK6UEPTzKKfAxDrkE44bCKSPRNXNo2rqsn
gyiwjCxuA0UblL44S0wAj4fN8+gnInO5u6ad4SJM44zpKSS6kGIQM15pG/aX5AiWTDjpFrux5QHR
DpfCt54iYFh4B2gpRgNJGVkPvCbOlyYmHXabuEp9/AR0mQCER29sIWgi+9LiBy9JGeaFJRsQd6SL
bAtgLnUvb/J2PBkveHvYwO9j5N9KaP7JF+0PrFgZHt+bK32l1Y8Bvu90ivWK3rZlFKWOSCywT2f4
aPfrB6cBUDqUiqqP+/P0SMcKwLpnIwlDBpBuOerZ2naL7teRyYZHvhoshaVPgo0m3/nK/MXMVMbC
LhQ5ilIHt9sa8EASiO52sKZOjCuM3+rb4oazHSzvWzU7CRge6RboMGrior4uoEVKm/z4kE5kYNcD
qqzG9W5iwpO4Td7TafLwQppSguKmPm7XS3fmDHyXhI+rOu02Wc1eFLT786uCYg9SwAPy4G3ZZima
mHQXHVbw83Se3i8yD5nIRAaZ54vF4Rbhia+3x9ajN1/mWMi128CmZF7lLDj2OQeRefDOmuiEUmtU
khQskPOYD2PJmogK0XQiG6qjTuXNCqByLYDn4zUShHZMtX0kIy0mnnVskbnwI+K4KSh+TPMKKZjt
mNFBJfv+C18U3FjVl1ooaY4T5GqZ7zBhV657creYYjaTs95Ev61m9EUZElPMT5o/ny2rONyDzose
YAdsm63TPaEyJqADkkH0UStH4FqDQxw4Y4l3BiSzbF/fZwRghKlW6qF/nekTIgqetupkb0qX+j5z
hmQpp4FseN1tmonvpx+zHVaETjHbMIU9+JRto9OfdFM3cdA8fYEMo2T2ZwqmYj9UTDHuxVRPa54b
q28f82zxYBIP5qdP6eKQVSwYw0lhIhlVwzndL6zS1XpA4xXYqNISt4PpDULQLj1cNHfa1nfPSEYC
sIY2s+01sCZYOjlJ4psBP+dOIH2riNnAmgTheratD1hrOPhkNDNT11uGlFNBXVK8tgrgXA7rjyHh
EynF2MDX11EkGG+DgkJ12Ap0Z+4O1zBsvom7AVXA0QbcGMfUHIIzHov1XKTVeKfTaISnTT59ZuC8
4buDl7yLX+bLGbmjX2g022bZCo05fkQvPkKO4zt2CSQ4RozjwFb362CiwOxWHGz0vsplzOAeavqc
0Gl99xMG+zUfQacepdaRWUkws6KScXRojeLCpB/V/QhLvlqtpwh5P+WgOJ1xLplMaBs16VjNtN7a
NlznXZUSVqOt8QAcHaDXdA+3cmXCdpFhoEFDnS6KKV9OfwP2tBPKrleEJ4oHy4m5wyjyI5y823nm
OrDRnD8Deo5LcqHDDrYe3j3o0Hqp/bEVZJyS/iN/h81sCwf2FNffZn8d4IFwf3b5NDr+fvoIAneK
Cb42hsndaqgE1v/FTex/s0OBvxxIdcYH62hs4wpgQShyMT8DYSIJGBocBp4kLfyG4H28IK61jFq3
SkdFmE1ntCeH2oHMIuJYFWdKEa2oGDDtZHiJn8s2Eyy7l1yDHhgByfjNThXbcMwUJXELTFGtwsX/
nKfblRN4JlxRWEs3Cv73WyUa657kvEgQukl3Bewpa+XoecGZlTdL9+vjwCVh/Z89ANSQHJiGsw6b
GsObpuXvTa3awzpDMut9tEz303lUsAyiv+ueLoLFOSoeD+mhLbyWexM0aWezOytfKXhvOLOU2iq1
HnLOwuLdLKZ4OSVNRg6OuHrVAdUqNnhgP2GDXIwGxT1OaUw0qOdOYLqIh32aWZfLqi1c2Hr8D2ts
enZG5LD6N44HvAnUcRMk1g6F9ef7Xvnau54P3z1mj2iPwbcGMOBJJzmAABbjEyL4/8N0+BnWsP4p
J8loV+wqOHSz+iDNmLrBQ5pZZ8dvsbrwU75e2FkiSIJfHivgmMWmJU5U6CcGVXNz4Ga5iJBoPPTK
0TTfTm1bVmWO7AS7ZDpCu6srU8fSHJam9GaBjimaTm94g3MZOGRmpJByLfmIkBRnU9wECvpKCghB
vMxl/we8y7ZvZ/j5PH1Yf/7up/8pGhhR9tCHmW3Xh9WDzyZTrkeUuXLEK1z6iMB520wdO7xuFokk
Or7pIxTxK0Z1MpI3zzUZMnTEnKkCAfaHqZsB6Cu8PZQbcsEhK5ia4zomtbqFKx7ZALBv9BsLnL/J
nwUVUJvodpJgaV2sB3eqandaocVrk8irVQpFbLU6eUIqHPfeJplX4o+2LTLpPS7hHLDCFYCiEF9d
tLLiTWqomQ7t/BL9GW/4k7v11m24SSBpvLhSY7FaR4iysrMmqStVF6AAOe/vXPxq0HtCVR2oTB1U
EKG/GAI/12UGcQBmUt+dLp4fVZjkQWOkvE8OJ4UDZJAI6rA7kTn60LpSHdYKY3P8M/2U2kIutGnu
/k6lAX2QTvfqEvC0uGEqiUMZy0S/COiJvNAfRdSoC4Pim73pZW+xPyWBZX6ip2oZEhQXEe1glkFX
2K5v8RV+7nzrBCmC5bjG6DFfYCXEeuWvtSEUp9ZT0dP1OV2cAttVU65kEjaVUIwQBPTfFy4SME/9
X+ZOsZMaUihq2JTbWKuB7DqVQSPt/JZoha7LNkvNZKDtYZHtyhU9VeTJBaiVAU7MjyVMefMTlHBF
QBQ8ErmlRah3iwl6Qsg20EZwqnlHKxCmcrQmBXmWTijJmxUqOGxy8T2VrGSYFyOapkl9KY9SJW+J
G6zyVMgU2WAfG6Vt2zwPpjFGfp7SGXoeqZudsZ62nW1o8dgcvNJonq4eFtnW3Y+DFNxU94I2gkTU
1oxOkja2fnCZoJqTXrbCs0rBf0ep6qhSrn1/N59x/THHVOVul89WT4TxXgeDo3UZY9sS1but6EpX
1ia8JpBNNBZDGb4zoxehBthFn9PtCjxXdxUWARvXF8AthvtucLHqxaeaTYjqGOS5TEr69J1nqgWS
63Hew/0w40WvjOTSOLWnjV/p7ufDGtyf3VsbIZkX62kh8NhAkI6HWBShdjI0DDM9olPk04V53U1r
ONZViwF1xfkVK0LbG3dbvcJA9m0CZde53xijYhgn7qK3sRSoqmtxxOxcLFrulr2WpeuCbfuR/dxN
ImK7+rqZ4iaoRxHWi50004MKL3O/LnxP84rfVlq/A6smQ1HlKeJ3sKOD6sClOc34lkGCXWHTbbDg
GrUceMiihW0KGcX8+vWbi2nMJjF+nMZMhXy52swvhr5gfl7FWouOItpIXAjhZBD77JGcaJ4tNm4B
EoRPRJto2KAnIhNO+w9UFglTu0MeY0IIxXqJpJsRxaZDrE2xdmv/eR2hidi5g8OADdsEjXx0BKUo
44UUGBzhS6dQFtwUHYTafOwUeL5c9uPKlDYaXtwImGuHNVZetHixGjZ554A8xgXsoSS9ruTlrae6
UwiqYFKLdvnysEhBoT/BUBQazMFt7KjMKF/OzMO8nK6XS5ClO2RROH4TbP9htQdfbT+/e1P8zbJe
LL7D0sRvKmXvSJmsBoRuV9kFy2TYxtMMYSlBWjnWDWk3jPTapKCt64nSw5d8kadbN+sd+L4s5h3t
WXqf1UMt27AgxZDxAjAOUaG0UV1XiFXAIeMJa4Guj3J6lM5NPt2bqLWfn4JRoiaSsHHTZ5+z+4/5
vqjv2bkHWSZC4pCssVUqJ2pkl8vL1selaHMw17XVt7SSrlDYmkwGWSx2LqZlH4sZm2zEiGH30bek
4kggCw9PhliLudbidJC1uPO9yCBrCddaAGoHEQ7pEo5Wca+AxZR7sbgfcJi7WeOQVESIceyWGKBw
CGMhtmbIHaWSAEMHKL9o7apfJ3/sZlUKW7LNlut9ZmOKT2M0jEGrzaYTEtoOJ3rvMjDefBlyVbEH
wdFRXMako8CG1Q+xKwNkwrN4eATfmO1/Azrsv1CnSf51/p93P/36Of7nf8/Wb+GfH3/7ff7h9xn+
+AH/9e792x/gl/e/PJCfM/zguw+LD7/851dOlz/zF/R7od+9fftv+OHtY/Ln7McP27fmry6+//fH
3w6/LN+/r+ZhGenivZhJQjbYWTdHCCP2UtL+QRt4Qvf5KnuquDcQJXdHyzm2ocg+8iH2V2R7eSxi
4qWg78N66oaHwri/4/pYZ0yQLX0snlDBb1C6YnQTDn04FtiFlDcqkgTy17XWl+6wDTZLUPVcytk8
e+dUazhnhLTJE16HZtQJA2M+CFriTrQkh4FmwukkUDrELkonwJViiLWUcy2W9JhXuZ5OIQrUDtP8
VoEdi9OcNiTh7UKLbaMP2fIebv1mcZh5iBlk+yKbAXhLOQubLCF7KLAgkyRoJKJsnL+5CNh7qitA
EuIgR0JeizIXx1uJL0scAB40flmGBdb8gk0TzgKHdMiGEG21wopQTI1bTn4br65lIrY9mn0/SnsX
rZ4BFZA0E3FPknil8kUE9UvI3itfrittpDgkLGx0tQzHXqeS4v36+LkXhZmOeFGvDGVwUYWT46v4
Y25O88S0i7W/rjV4QzvBjU4GWUy5461C9H4l+4wCUEVbXMI+qsF9pFn8ylRb2W38RFAXp+wJh3xB
6t50cfT2nRYxbimSJa3z5Egv8tXHyBumZAK9lqTtXe/KpFrrSr+1pq3CpMpx7helvR9aD650bXu6
kIjG+4J15yfsLCU1oZIgZpNGhuTJeBzRR6HTnya4O0XNTOK8EmGUnSepXqd2kqGZTzmEU7Q73J9m
hvvYIgZ4Oh9+rGVh54G1QzIo0LeLPm/Xq9mRyWGb/WmuCgL4w2Lv8k0EFlQktLvyL5IoZQn15VJI
rGgX89cglssSpQdUvMFkkDEPCiX1ZAL9ITTLXkriDs+CIcbff/1XOZFlaPKfQo8rHPaW2T4VI4d1
40yUJIEUe/IaxceJPSb7krvLEBIcAUGYGPrCOVsAORG3vehM8JvAYsOffQUWK3RIdPx8POla4jeu
1IRS0id+NA/ltuoAx1hL/Hi8rGeTyspX83Rr7ZQXuEU1yoNpORGKDo923OCGYnsA6WI5yqDF2f0M
xilRN4S9eSlHkq3grKY4KHf1cCSFr8sa4rBYSsfDNeV4Rw3GwWEVsKu6v9jgLv9fz03RWk24Vr2h
mfqSkFGjDGcId7/eRAs4i4Wn8BCckl5sjZnUfOo2dXNx4KBW2Vd022rBYogi/gzK6+66H4YzEbgQ
nI3rZLcif2vjkCd6wjmNyWiaKSRpe11JOW4OvEnSxve6ng/UzgxuG6x3fa3EmXvkZIi1SOx8McoG
CagS4gyoxnpE78UigcuBSK75GMMYvGY04yWTWPZR8yVW+ZjfBDMCinT5Ot3lVXpxpthNQLlNqtSj
cmEwkaBDIr4COSB9mdGMBfuoO7oVBw7w69F3tZPmTJ2m26MUho1mEL/lol83ZFoKiWnck/U/kUz4
3l0jaZISI8dXOhMOCkYaxYRChuKF5lrwxivKh8y1MPJM/Jd8Nc/gS7AoxHyN02chyCf7vPp7C/Jr
EseJVnQcX0JKPajfZuoCisP6nN3vUH/s6ysbZE9qpGHvP2um32smbR9vK6pP+HSzBmk1Nxe1w925
FX8JG7Q/7OA+05d2jPvd+Uj3SjSPxKyLJTIX6X042nbvl8LGqucVM6sh/COBvS59BP45S3TnqdxF
Fx0GATfVWIMkcEViSkksxorNmW6RhzpyPM1Bp8Yjg3V32EdQNHgjgtvC+FxnSk40A8+Q9Rm+na19
Y/yQWoq3kfvGEHo/z1Z1Op0oZD4StAel/phvsdc83e7/LhR6YeW+7Bb7119clK3tCi56RibuaWUi
sG5YuiZGz8GyZitAg9gBfw+YOSLIPTX9uMh9JYxJgjgtjsfCFuoZhMW6tHYIPhEECcLG2S+te4U9
vrvyGu5KpSxQgtMth4eCgRhQIDvccwo6OoO/Sk5km1h8I/KMNgD9IiG93GSzs1myfMIAQ6iYDgez
q0LOtcYoQRcvMYTFqEpihENTu13gZqvREVHQaoHNff6KQ+Sx6haqvBq62h3uC6Yi6s8NEU2TCeVD
BvROYSP/jE4aY+S2TdncBUAvzO30722+gBNySDsWOgvSPfdYtEyiAj1SCyJ1mbvCTOFEmZbS3nNg
zEkwqPUoxUjl2sHqLamoWUGwxe+W2ffzyR1BXZwEHqtzANhq8P083z6c4wTz6Igrr4wKU+hq0ecQ
CDC/XuP0iwNnHMkxG1Cdh+8LZIhEDArSwvBZDKIn9IhGVTI2oOWoS/YxpjHZJ3vx0uBN5/nDA3jL
+Dnipcc8WzxED9ljiuVzzlyHmohWNc3lSLXNtX7Op56BN5jm1+PDFkPv7SzuQE4P8dx6VRI6Do6C
21D91F1xI0jjxIuNXF8AmiA5dcAcBq4awesRpgvs2t18CBk0oUCFBtCONcImheMMo3FYMh4w2R/I
/1dilw+mpmAgtDKI1Vn1FAvdbNebU3/4MSS682aMWdB4EjUQ7ro2CJUENvUonxI6Jv8ck3bZAN97
HJ+rWZdNrbeWbiOJVI5K936UbmhS19gC0ITxFjLVwFobHPcunwlnYpkiyTbptBPXYTla1qJCwzOo
DMtWBrj3IRZ9N8/c/I+a03YXqoeyo0Ih+YPxjGNLSCfLcqWcdL2fZ9uNL22VyImguo06DFA3JNZi
OH3DWYunbsVZTChhvYuPq9Ww+gBETEQQl4Uaj05U0CSIlUgNBP6owlqsW97nq9eaqImK+1eEbSMU
/8fet3a3bSTb/hV+kTNnJrTR78acpZXrZ+yM4yS28/ySBZGQyJgEGYLUI2ed/36rGiBFEg2wCTRA
OffOyjgWpQhAo7tq166qXUbKsLy9BxaUNjLb7lGG1Qhx5EcPdGW2dLgwVe12WT9BRNgKRMrCbffa
0jDUjsUKDfHKyx+f97/53o5Ywp6QrFXsdjudYPidn+NKbklQx1pbVU53zCfRHbiR2RXsidROKaHx
VE1cYrW3okKhKKiu+RxbXjH7+nI8sVyGKI3dldLLc5SmIGtdoFyyO3tF2+ei+FyhCB0b/jzh19kF
NrJWqogxxxrBtoJVrHC5T3LVqHlVFKCgCluHMAdVNquYjJJGJMpwPpU6KdgJe5qx7qkUrL1bdwNU
8ikC6wKZ7GyLOuY3dvatrURLQ+TF6Qlue7mIktSU216uEhNMp5baGAZxhwxZLUx0f60tq7c7Ehrp
6XXVOPyTuTFb+fjdPD43v+WJLcKjnAcP+hbX3FQoZZv4dos7tzJVEknHgLQPuN58+K6PVbplqIuF
Pd6QMTvME5VVRWJVCAtOE8yWCWMKFvBmzP6n+O5iFsFiZK1x/SHcm5kONLsep/AD0aR//9P2+Idh
eBB6eCtbx6P8/dgq8XBkjwxO6OcY7+kw6Bp62TME2lXuwjPoynDgofJdBUbNF2O4v3ezxthinIyz
fTQ7JeWSQZFS+iBsAWHWZlsOqJKiXgGvSXbUIB1E0GmUXdWtKcD90MB3bgsFTvuO9YZdYNDycA6r
OhTtAAZ8GI0vl79/8+aDHQQIMPb6mB14lKYM4+oU0d4/GwR6hPU4Jw3v+yAwshezYUFd2AI43avw
OtDZTTT2pgp6SghAUV+FntLvHkjNa4rZh1YczXQ2XE3W1aKm1Layt4lwAueMtwQDMjWKatTKNKJ5
LT1wpuAw4eVcxNgQ2J/GEEfhni4TkuYhOUkIYVU6ZAGjDyATVY6OFBc9FRwFN9a/IcCmDSwARZPe
vs/Ctk+wVfl3ymYBC047TNgIHnYXkqTXV/3LOGOw4klcrkGFk7/CU5KSnPdCrh4M4K4WL+TasWLd
GwR2lYpjTNVjhbaMOBaWmp7/KE2xmToaDlN4j7hYd/3xMrZOTKNcmo6N5mhn98nt4TTOX9W6M6+Z
rNtXRlE6sh8g1LFmyi/m2i6f3SEH7WgL67uF6uDVF0aZ4sunmnSfUliNF32422pYIcPQUVqsobvB
Id2ANUazoV2pxQzfarPyxkVty/mX3Y7u1cNMD+YaPO5peaAij6DKK9WYiX9ZCF9KjfrPCWLByp7s
GvGhSdzLZofmQPXG5s1bKwcgNqIq6BiLzMoACKork6D7QC0PZ+soL1E4z3WqEetCpq9+zz/6/fzH
j6/6usA46J5uRPmbBXh37w3MYt0uUdCtv+cZSuVzJTlJ7HL/PuGtWYMWJLpb4JtLIIMZZlKJ1Exn
UB2C0eauR4v40kxDdsNqIjDzaloQErIoCQWSB6KJezhC6am8f5ya3lj/mxPbmHNN4TEOeLbbNyN3
ztUpyhEZrUnLltZgs0Y4d9/IbBWIgd2DY5S9122bYz3PWOvXJpZ6+uz5K/RW4LYKGCTEEirmdVnX
FehEn4SJcm59JyETndisYpAhAkeVIeWqRGA9qoL2pJOCjG4WLWCLd+bbbb4US3udJFm0F3dV7qhQ
ioE52W/dGTNTKZHHnfSAtScIUvhOtBqOZzkAP0j/a2Y094+/32LTCX4JmyyJbX4g5AoiJ06l/5Wp
gvvwzUraMUBDGjLPj5+JqBcXgUmFw8ZC72uw5cLWw+nzYCI/amU1EIIjLpEt3pAFnhRnjSF7Q1kT
Y1Pu1DP9z4PunBKJAdVRt+C5KhaiJ8lbfBVmw96/j10aBaWsIJ4knBDi/R6ODoLtQ98kJrWPvzmb
74cjOomQWXWjljVmjBosywFutXze1n3YC/snKRORpYCyw05WxsK8YneG6GzL1A6/whCQRJuW7hBx
Z58lUkOLICPuWJumwsz72oFpBq3CM6Wj2Woy/H2xSs7v4vQRmJPz+x84g2uv7+mMPTUE5Z/nzpc9
o682ylJmIRZj9NzR5Hy5WMWPDFI8N38WulwoyksqenrryTtBOPu6XPtYZzdmNDKFGpaojg2zRxWG
lrPEFNfRZGW33grFf2ibb6hMlYxQ3lNEeUQXVl4Sw0k7K4k8dyOneoBmr1JdQtWjQ6PndGN567wQ
qwpg6VD2lNInBFiS9rQWfrykO9XJFIQ9vMOAsNpDbkWHdo0eAmeFfRauBT76ImMPzJ9fdOdqWva+
B1my6gkpGUsWsO5C7eWiRDmdYE7IrQm5tYjiQP0jZiFZjbU6Wh/tQL036qKFxL9/zBXxTE1Pri1T
NaKTAZCR8hh34ULYq9Drb1xz1XXopOOseTHeYcpRSVofrEAkNPT0e+hp2NFKkVAzdU4wL4gzHaSr
g5L8YAmFCj8z14WzAiUfReCRnkXJEPwSPnk0WMaL1L9Hq7pagRDDwlQuTkJ72CWnVVCPatg98hBR
b455OdmkzQX5KYn8AaxaJSPGVeg4HlNXFoCY01WtwB0cGKOlPU3IieOK5w3DsF5mrCUsPbBLojAh
Yf/QkwDECoGrQDdZuZIaiEx4FhaisAY9GeqWQ27rweXgn0Nyai+QzIpOoO1gZWmPVwSYcdIwGgBn
b0SmN+WYLCB27T/mOCSoMYityBgzylsJOlww0XwxW84Gs8kEjFlFAT/O5qvDCVmwEdqk2WqPjSud
kkTqXHXLgWIr0/0UUywyK6MRBKlD9lSP6iSPjtKftmzc9TjAHScHvxhuT+p6NNnx18uaJHuhOGmh
wGW8HIwOR8gCS8fCZpHWtgjX/f6xngyiHDuU2qIJGelpQh+0A1l2TXhBAN8m4bXR4rrBmud+VlB4
GY0nlhEj2Mdwggw1NiNE6V0yGC1myWx1AJljaTZrlUbNKLfr5bIQE4BjUV3GbAebsKVwnBTkPfP6
Tz+dEqgtwAOlfEMoWgahWAvkbb2EOmz7jAfb3vv7BXpaOZaNHufsaVvOHqlWHETQqbMXImwA99Bj
pcn48jJGpzbM/l4iv0AozuklQWfFm2AMsMt9laTRZZzB8/IxBYyeJH6vQj0Vreaahz3p1KTUOJWS
HdC8VjjXpb8yApWme9r0X8J6b38n/932SbEKtS9ISyH4AaOPmmxUB63GgccPREcNrBMl7v5ZUdWO
Cq2UB6Qrgu3QCOoQJ1Bzj2FipuFvzxHQVsqla8G5A4lCsASsIflowQCslEZhDZJDm+I8NAKkpTL+
Q1RItUI7E6Fj96IfH5WA34SjMdi0VJquemwrHpuixxmEHLNkYu20xB5jFnxuCIfrrhEO9UQSWId+
HGIOSIh2lBLdypbaYjCabK7iwpkafO0kDB4285WOTlICmCcN7uZAAOk05JaGQpmqgSaLYrG2qjTi
oqfBBeUarlQ64aewdXbwZrb4FC/sgB41V5xi1bApOt7ezbnE/D2yqdjORKPeeIM7LKDgbVVnA6UW
drENAhtYeV+acveGxRj7ViiJxzgqCb8dJWZqUvFHZou1hSqXGmBGmo218jROMKKiyoTgsJcm9VtH
tZJr6lQUsLcMcKqQZZotniTxEg/UHh1sQMF0DC4Ohb+j+RxWJ5+xmM6SR/ninf/PGaX4Afzr30jb
fgl/MRXX+AGn/1uAf44tD6F/cO1OlQahYwdi6N1pezsyRbcO5hsbhv0bgC3WfDWdQxBjavEtRDkF
RNTm5W+i8bK/SpbjSaacapmpgpIqYWf7z43JtJGX7Ljt5wLtVVvQHtWOpKwmL8MywcDa2F62AVDN
ZcfXMSrLpkh6lRQVUAIIucZWLuMjrmYXJfXK2FtFqawBvMp7/JG6zRjSkjmbOA6vU59ynQwfR/Px
GX3m7l3CMCy4F5RcJh6h1dbuLIKsCqxFNER+B6LdsEPozhnR3QE/eEXjofnCTlthh3uN27FRSSSk
qovIcDWfx4tBlJZIFqDMID8NFt3I4B8aR8chNGINQyNLAKtL6cIWVqQO0DvUbSHc9BbY3p1mctbp
Pmpff7nbjZnVAVIFeD2gXLB6lqHcOuV+Ja4wSSiFSVuAFbotWKFNARTtGFaIMPD8bowMlXVkW49J
2SIcNlU9VeU8f9o1jmr0t5rKIGOFzmjwzzP2DP5VKBSKv8i+gf+YvxTrMlDqm6pTkkyO8+MVtlfL
oO23V68my3sVViGMMvlBqTrGN3ZteBI2eg1gFeBuxtEkzZjxy3hhN6CUhODTwlN7eSwRKnfyDMew
U9ZFZGSvFQpwkQKPEHycRNmF13P88DXNZ/PVvL/xeqZ4yj61CLv9QtoBRLQr8iFMpQ/TSuDJ7sZS
ENlkCbZjMNtZXdfY7XhzM/8JtVf3Lj2ZwcFp//Lm5SvuKC8QdtIbZDyb1bBJ1ZCVPbRGNjZS97RT
55zDNWfTTOpzflWYniJxbmoQss4fjiiu/fFD6y5EJHLsLBHtcdldvLUDlrI5NvfbsoJaV9gHQ9o0
iEeiBxow3vneEFJ0Em/CA0K8SYQk/NQJ0bw3ipZlRN0mrXwukVBp6BNFUWX0E/BAPly00P+iE7xA
uAhb4XAz1IhqRXeI4Rzgo2I9HrLT5ovKba1d2wnlcvgpQ2jk4A73cGmcQNLOe94dW5CsMRqORdkt
RbW3sAuIooKThHmVI5aY5o7KsOWxLuYw8oua2ts+2O03OFfEnMyyDuYQI18lG8GZA6V0Jq09LwGo
JETTGHLaCVwkeHzqEBv7yaK8Caj0CKC+KiWkxfzFgZp4+D/OYA48AaD9zWWpAGBM4zT7BhdEP90P
HocbtJEVPWSzJSs6sDsCGQ2caye+NYAd7n1zm/6LgiXJJJ5t246G+P+wC5LKXsyOQ1hbLYTxMFUg
0Ew9hHhuE4NWB3ZYOy+9HOytrNZ8ZLqP1sfb9N8W4px+j5BjE1vee7gKmKdqlHpAAKM1ghhNFgt+
v09+FkvKKwohMKxx05VoB06Vz0UIsICUPFRsXymhqpDdrEWzW2sotHyQfjGfNHkxGHYTdmop/ILr
AewC+9bDqc6KeYdB+fJVwCCJMy/qQM7D4pJbLo1z5o68s94gFQb/TxBAZ4Gq5oB4SOtYpeL4j/Un
WPtQhOIUR29S4fVCC0vJLWUcG2dYeAJGYgNdzGmBwAj/nTqNdhBE1BPtsmi+lHbKF8lhhAYMSVve
rNdmnM4m0TIe/jxbTIYoibsOBbMhscuxvflVS9U40N/Me8GKVowMbszI+2S5KLloyMIeV7LjWoL8
uMe3kRmrCqbpSQGFw2HUYaPkcQlO25KTsSE0puhDZoHxb914ZCFE54tPWdgEFP4RXUfZ0yIvs/NV
P76Fn8pGp6yFC3YnquDpGM6squ1EYL1YwNsJ3nEeUVm4LkKFObvg1InsSmtuL9jRPd1CmG+hGbh1
4dCaNsqrl1PcJolhn01npI08l5duYrz+KJ7M7aEeF6yntOwk0st7nfYDvp0ifbM97EvEe6zOfj6A
gdMKEFwmVmoZEJL3yjeqnj7iclnVWE8SL3xEblMqIhAqWY/pGrFPpjw0m98Z6Dm5jk2Ab33DBNXO
JNGd0fjNfEYHDnv7n26cN+eBA+YXwXHOu9xtKxfZ6dLLVQHm5Qz7lUoAM8EpLg0uXDO2SXfZpVKJ
EFWp4bN/V1VH7CsI3Zex7aBxl7SKtxfNnMrGjlxvV6YApfTbowrY0w1bYCsOoTid4Yi3edwzj+Fn
FsvoCp84Gyh2njuQ/vo/7Gf/Jdznv/Y877/OqML7hn+dsWf/yt0z/Ef/SqPrOG9NRmd5xl4hzjxj
L9y6pQ+6ebM34Z28evrmbWHAFyYcXSxz7ZWrGvBFNXN8W3u9KwcvurukX+GCnvtczsKh40HA2tt5
HT4KRHcSy064f4tdqx6OldXQM5feksM2NUssVKExglhYdOjAtofbb3mwLMarKGxigQRQrI+/031G
7kD5hxDB0S7T/bdzFrbtvJoBRfMXQH3BCKyM+RpbueYRfNgNbhQkbLJEdfgXPKBX8fLpcrkYX6xw
iGHZzEiC5XVOWcNj8U5WnW8BPFTIOtfLoNwiSkf9DSN7GU3Hk7v+JTz8ZWRvzuaao9CT9z1aM4i3
h++oZN3EZO0THRVNsyFxU80+cjksFJKwv44Q52V0ud3AI+gG1zPTsGA1TUnaNx8+mlbbd7MhVl8O
4Nk/4Vizl9ewJG/zn7SXDXCBuvdNFt6ejzVZCbBHcCvj5VqR9Onbt9/9bO9XoDiA7iGbbPXsTL3w
b5qz32uRteCh08hSx0j7Yja8O5CUymanUH9waCdlXjV5MNCOo2Ncyl73uzVyVS8qgsKgLzA5XLCg
ttGPYX1fZpV477DWFr03eXxb3N2EYB2c+v9B5VFBJQ8la+ISKrMxx9soorELWv1dYk0WNKPmj9LO
CwPytwlssbOuESyqC50rs5Y4/aNRfLkBFNtFFePJ8GeIF5+tlkt7ywIxOrai1rutl3VjoluYpqT0
boOq6/ZF+HfiXf9tqdGysa4k4DVe7BYEuP9rfzhOwUWncdo3ElnZhxeri4uJHfpwhYI0vNN9pRul
MyynNVPbeY5ntn5AgMnlWpCoQ+7k1Zl43gIQN7/Xqi/XjCT0yWPaRRJRA0x5jNOdNJVqeZu1ViJO
M4lvYR9GgFDJjp4ER+XQniShV1hOH9/aaAfsyyKSnZKGSU3H5MFSCuqm8+Yam8H64xXwk904bW4q
5LNgDbvry7uLzLwx1shkb0ONGCxUwVobIf3rcTqGv1vXRdKebMRjHkNfvHj57teSOvMeZaQWCKpT
BcFpWxDIbV/Ye4NUI7q2LihOt/jkkhIV6qYg5jmOLN0sDBEz82iukQE0UevLF/1s1F1/CwsNRlFi
b/eVirm1hh/JMWV1HNbNa4In+fA2L3VSOa7hBCy6rZs0gamQLqsQRzJOqQ4I8c3tZLxRWlal7yRp
eoRHZiVtbAQl77pF4iFrG+9+RvzcFh45UPNBaHWZdA28mRvV5SiCQxsvLmeLaVq0afZhAiimTVrN
qECAsliCJyrJpDiKNzwcknD/VRftIhectH02unsgQhlgAcbqRPp2osGc68VqDj6wf3GH93M1LSkT
RG/LOfV8YAqOfliFHbHThlHPaNkQDnvoxz4Xh7oNYfTjZu813ao3hdJmT9T1bbACi9jE6lFy10fg
gw1vKSBS+Ahuyy5kHjJfXq5OONfPJh/b6QSC44vq8Nt7FTrp8m4Sp6M4XvYvomEfxxGY5bHJQXM4
mrr1atMC0invTi3T1z6K+iTnW4wOElhmbAB+h95rOBcIJ2GEudpcDHMyKrqKj3rirMsrq8VKC+NK
RAuw+vC1s4wInGpx4oD03Qd7SCrB5HDSMf1bhV441WifHwgPZmfA0CyRlsLmbPHARK4FQN0iaMKR
QPRTM3H/Ji8mK9hKf64A9j6eJ1e2YZcqbIvPMOWh+1wGqojZKEAW9iSVXXv0Ui9ehwQ3XmsYT+Dt
5wsxhFuBuNjkINMlRK7Z+89W5mqQy4dcj4cxYtfp7Dqyik9oAniPthQgNZDcI/5dy3CVTRiCtVvT
C/ZhJarhEf5/N9YOZMD9EXV36DMzEaUb/KQPmMT0J6O8UuWkXYqKKnUyl3vo0OnEbe1193MnQ1Q9
o8HfKhCngv294nAIRon2lTwqKfkjgaXkj0gWSOUr/r8PMgej2DgsUwputX5m4H3XMZ9dxJy4zZg/
igZYwau31yZJjtpXtIsUemYd8McXs0lauQhYk6mat7nE0/ny7vHs6nrn98sedRvt1274UUI/EM1R
H102OgXz8S2EyVezx1fjy/0EPgVA1moRiTWErRu0HwhhCWmlcvFQ8BoGDzBNFmjui2H/5du3r+Eu
32f9am7dCpSHsHkf4sJQ0uSudmQkoovZCrXlouTTOig7PCaL63rQetutxTfrZvx7CZgxOvS7kspP
CLlIG+IDVU0zUp7YrNxOJ/iNvM9y+0DnjjBzPv2LKB0PcpXxwdW4YFcU9591jKcXhubN316+Y0sG
SKG0ZTtsfKaMasQcALVfwq2k5dr/pnJZhi1VLu9aGbtRAVyIrblHGPnmeyDDYdhzptr0kwcHhdNG
ue8KRDo/0BDNNMpskRYJGzvPiZXGNR65OBVmivKz2cdFUwUIm3Cn8TNuPsEq1LXtKEo9Azb4KdIi
11zDj3NK4Z60Zy431+XPZZmrqwUUF/WSft7xeUmKQIugYW2WM9LZOanWyj63RkTiifCxWwskdujx
d1E9U1dtZuoaTZhX8M/G28MntcOIvSfIHX5QYxVbeJ00cBFx37+RxN6nkyMNYk0PCNlTtFrlgTSP
nkpa9eD/DZa7Rt+OW/86aYSm8pnvVpOmzOjxJrdQZHWyU2vvOKMh9hB6X+MDc1wOADVydEZly6Hm
rmNrZJWdz4LjLFWTJz+Cjrf6z1CwHnUKxeuer02tRB6BrpcmtmlcExLgsL2wwf3soB2wXhem66V6
FIZErS5dazvUactTPi+1pQmbe8ayPgvCQtETmnf2nLyOswdHEOXsK+DAxR2+Pnt1kRJgpsIWt65J
Zmz1T2FCAJvJ1lsYDekZe/ZoMrsy2bbHj7LvnOMP/zuaZ7lMgyr7N/HFp3Em2dtP4mU6iObxlzjb
9hI7meLhI/xt54f/m4JnBNup3FLnxAMDYDUiyAG7qPbu30FlKNSHxbkC1F/YWxxnm4VN3vtxiHt8
tORQyHXPTUvTsxFjqmukEnzeSFo6ceOt2o9dpdf8n9MbFS7dCraddvCm+dSZhWauQesxEHQ2WGFN
db+i+AfpFi1PYVuqNBk0kgwh84xXt7LPI9gjcVJi3sHcEiVOf06yjv+THwzFA95SrJKhuN1tWg7n
cMZmHdJ13To9X5jp5H1T9JB/aBt/jZQJCQKw9cKXQYC1TpFXWN7PY9t8VO3mEGwwWeNGrA3j1NIw
zgPdNpiqmq3NsIZd0pYiBMve6l+PB8vx1D7yVzkWH5Da3PPGN5S+chx8pGhQ/5XPF7OrBXqAy3Ey
TkcoYZr32trl7rG35QHgAvQQp7Z2gjhNVvYP8Y5Ik+RQjpJTuO2DXeMhxZVsYLA2VmMaL0ezoZ2m
VOClOdF+AVOcgLFYlKY+OCc4KZJ6R4ku4744pjWEfhinFDbwyWFJQLhqsskKTHy+3dBv2FGpoo6t
Zx6cQ/nMIK3BOYh23OXWAShXLzH6gqIjyGDtdWdKHU22ZXXKDq8fvrWaLPdwIQvwGqGkrey4+0t+
tf5ePDQKS/tVuLInG+VKji0bgj0vmiCD0nKPRTyf3O0JfhpAyjH8I/IhsBSvHgIg4UKJ8NSOviTV
HsrAbXzYgQx3eSUwaQZMdwyuuYoxrvmbriJkjLtV4eeBBJlqsEZVpaXVsg3YiiBYp1bYzB0L+cmt
MKe65q4fxstoMFrXcSSz5fjy7sUssQeCAeuJgLaKOPZPhZ2Pw25Fz2D7cryAHQaBuD2MCDQDqMEf
DN6Ff+aTaJycPEDlgvCOwJfVMBLtWPp4qKoJzwFctNwEg3EjSshODQwz9cX65A63pP+EEswzU3Vy
AyhY6MPnOBVGVrbfBziQ5eGExcZGbB1s+CiZGdWu0zNbUrHPIHlpxupZk5e8EfVSUfi60TCYjJNP
B+tf2dHAsKlRymogiWf/i1/EmbScne0KHZVqGz3oAVNDCAqUeSNdNtmXaDUcz/KW6MPZWdPx2FbJ
Cdr+LaFiaidd4A70gzFzwa6Fs9sgY/C+f/rhw6kMXqBVDUfpr0OFyyBoqTxl5/TCF7NpBXVMGI5o
UrS98k9jNw8VfyocbEipfihLQmulVe1xM/j8TBt0MJmlYF9KCvhkPbrEP7a0Ezo4WMtRXska2iZp
H87NZbyEADc/JiUN5Fj0GnhIEZndl8z6CDqyZy8TEaAaqyeDugWa9zvPlBAYx2HcVwJLfG648umc
Z9bKfPMJfFmgsyj308mQRsnwYnbbzzTYjNT3PF6ksCOxoaEawGB1AxzDbuvmnFhkrsqgp1lzeOZ+
ugSDi+Y2W/fHj59k/2QvKfdxTzavA6XzPu68kkfmNzxdnpPsb69mi3NumSarmDjtZiEh1ZzDvwLZ
Kv9jQ0TW86NITzYKjI+4l01tTJmivwzJST17GLq8FeocgpfYMRv9SQKn8H/v2n+kGV66v/b6E1iP
4qGljAsFz+kkC0yPSzY5Gy9bPorTA0KwtL13LtQDWwywEOL4W9riXHJLVPRTqo3fm5s07mRFjr9p
tzo22jxCs+vzEzifba6ak8sutTjTGYJTw64BDMRGA6MOnpa0GYOlEYR6NTMzW/8TlroxIpu8t5JA
wD4MBowaO9CN1J4BIb6taRMYCAFhTwW0wQ1VBSPYRh7fVAVgXMGeJqT+nk4g0BqMLseT+PEgTW11
rU76ENSdorYFehXqHAwBk/BukvYbWyH0mkZLk0oxvI21wRXso67hvfZzNrYAzyJKrXuhk0JAvat9
ZRqRzmfJ/mVlT3Vw2cvL4uOqOif7uOtezmaW6/ImFiWTGXxthD6frOdoma+y2umS3cSE7rGwieWw
U7IDc7yqSiBR+IQ3coMrM7hlkGUet3TWDV00HF9exmZgRrkQbMjAbAlyjAepZ1L61J4Wlz0ZSB9u
5Ga2+ARvGnZaYmQYAeNUpX1NqU+n1qykD1ZLVQ9p1Tdmqgaw3O7rrdKF5UKAH+Q+oknHbV3ReKBD
/Hf39wJH37L0mvfCgPq4m/EUxeh27+c6WtyhMQAcN1vgz69PfX4zX2Vfnu/K+xeEFXohYS2FHWtS
AEOP9SCKi7v+9rDLdBkt7NJgAu7tOOewp+S74x225lou4KiuFWqLQJcA+CLMbSYY9dE5dSBzJxH5
tEBi5NbTJKvtyj+NwL6bsUzMuLhSRx3ieFMa+gDB6KdyhcNjZuISDmeYCOE3vruCN5+J5uLMPIh4
lne5S7cXr1HdaxZ6uYiO5BvC9K7HJQLbhBuWQPuIq/NqvUJELQNsX+XtX0K0hzyzeuAysxaEfsO6
XPEQN7f1FKEKHKsF+CrTleW7uAICU2yMdpvOQpvT8AO7RhSF0F0J2pV5K8GBKmCOA0RovSq0GvYO
pToE092HvmDhglB27+aY5LIuNrakQZaoQL5KllmQNkfuCoz6dFZsDHArPPd9XUKJY368VujroBFB
RAfHbgtw2tuvXNsgfYNLWH7iWMZ4JJ6YXceLxbi06JZis0u3ML8c2vMeDYlHh7TVALi9FKUdgEzp
pk5olzvenidlwsT7b2fNkKuL/FZpfxJfx3ZwRQXDAWHHLExLMTQLPRgnR0OoqOzIIlSxQ6iqx8lD
D9Ul6+q9MMIDIWA7+slBWMKvytYsrhXYiBYR+lXJWDMMtzn3SE9m2+GDsQVp1RaUqGREVFcvmGjG
BA7fDHXrxw8PX0Dss9tgvUnoHY9gC3w1Fy+yIlv/LhEQ7sYLjpN8tBLs+sldNhO2SBOavvxGoMyO
CeyUChpdoX2drHLo81VxaATAbSqaYB/MwX8LTxddxVviE3EyBBO/mkwq5k7pQDt24/kJtqqsGwoG
USKDbmLgMjUISkPwJ8FJ0n4kEOIEeU6J0lj+44+jexA+j+aDQJ2Adgb0qdvz+nhTdkZIwrFs5Per
/dChwFg5Nsf4yQiaNoZTRD/LWen37DAQEwChaNVJ24vhZD0Ous2mzM/EcDDVrM4UdtPT1XC8nC2e
RAms0sLsEwiQ+jfw/XhTYWzX4qPYFkM7TJVs4/v7/vMMkJXDEUoYq8fI1CwFwbnOpkexLOR3G8l5
2uj3uMJH247aO4D3u2qVxGZDDzf7yyxUAcQS0hONQuIdCBtPxteomA7LYufjNc62puzzgCx79urk
hiiEANe7R78XRK6KLUUrb824rZxCwDsojgu010Izx8on5rBnt5MPg+tibpVp1ZO6ydWOiW1KScxQ
QMhXPX/muKfFT/vT7OP+pCKFxsBSMckaLICrB4R1mIyTuB9jVi8LgAejqGTslnJMvTC7hU/jBViq
eweHaHq+mF2PU7gR2JWmTwx9EUoSW2Ne3RNOpY/smOFD9l5zIXoiVA3ewEnjPGM/jYIW/G1zTfj7
ropWwTKWXqKQgic9HgZOsnjskL/f2xd21UEmWrjUWoLBiq4ALNB6p98KFqqPoWF8rKdO4dzxsMFG
rBloWaEEnAoma5zAOvMPJfHlb/KxVzmW7i9Hi9lNCmh2EM9LO0OY1o4SJ8xXha1o8rwljOouf2Ec
EATQyGGUzKbqKRp6t3pWMt9qd1UYYgDm/Q72YQ9gzHiBTqdcYxYrfJgkjdxNgnXPEEQtjNFJ47IR
sqhMpBt4VgiZJjGe3XIeRCCmPO4anuoVKIQ8lLXpS73Oc8+NYWqiTpz2Y5nqriSp5RmaXTuTQwR0
2GgtrXme726S7/MCvBdxdhezhT35ozRO320TGR04q8UBcjgTQ9Y01cNFZCQo+1mwmMsAW6VLOKq+
BZ254ozpvP/AnoGRDPZkcHqgWgjbTynzxniou46e7DET71FJffn1YjbCdBSXCJTTOoDCGisV3Bjc
wgSMhS0RHVAcSnDkM/urjAP7rBo4UpyKgy3hyDBWuVNpeviD7tc3BFQiGGsdIFU9PKOqx0jw8ILj
dAT3fxNdx/3LSZSOimbIMS4+Y6+yAx+nsOFMLx6S9vXDZYlTE2r5KGtAs+UozLzmdDmerIsYyhMG
KqSoptzCni3drRC59jSrs1PSyZOcJl3NrxaRKUotSbySUGFY6hA00L2rjMYp2PgdAIYGIJ8EYNGd
oSH8jzDqn5q8mC1KaC8FwD1sEhrW7d4KZJ3wt0l5OQs4LrKs4buLnTv45ShaJFZBrpAriEu4PCAI
eBy/u30st6lePJglRC9GfjRo1ZqXSP+hHOIDNOGr5FMyu8m+X89+7/yKzJibFppoM8TVn13XssfD
MPCWqrCkiA73Q7BG7/HYZHXJUHGiKCqVK290SZqlako70nBevewE5G8dawjbrDAflTQp6ywyXBcK
zmN7oaIKHAsVj6fx8lpU+LgfX17GmWhDZuLhb7ZJktSwep4tenYbltShBCwgqWruuBydFae8BUC1
tfnLwRUXEv5NuA9oAKe6H6V3cA4Ws2S2qqwyF9oMPiEtOo+rGeIF40LK3jSF5VeENAkzD7JxGEnk
1y8uP6oQKsbbdqGl11dc9ojQxFNMkXMLqyQyxzrrv7qI0ri/jK7s5dAQTrAmrm8vM75Oz8wwAi8h
VDQgfRb4B8PlzZ2AETu8HLhR1qLdNi0ECCriZdQfXyWzRdlAWoHNMx69eQWdgAVKPJC+zFhVi1aA
0+ulf7SGAeMB3SYMvhWrFW3UOyeENCIej925lDHdKbVAdEM2/ogiofKkADaZKd7xkS1tSBWknVAy
zXvP0nj5Bn5ocaD2WWEJbaNVcQXn1pXgrno3+1eHy6ErXA+KTvsR9qXDVxknOpgtssrcTFve3oxW
s2zA1p48m2Iw9viP+VWhQE4SiQC0Td9/Pza8XAgOEWidLEOpoCi2nC1vl/vGs0c5Ja0csjyqWjPf
GYc6XU2WY8yoZ0fQpsulAhTglv7qg/aKiatLiCnpSUH9ZoFzMvSgEgAJUX9Fyfrna7vT3Omk9Wer
5Xy1rKjVZAqcQegNrmRdeVlZrF2CMFAokN/lGmSzAkuXIGSkF8oWsU01ESUR30Dc3QzflCgy2LZm
qTIDN8PZeIeB4Vd4K+dOlqQfJ/BAA/g+KQ5coCF5oHe91YFcuG12LHY/wWLT4mKHteKAdPJkjqSQ
gYerJI0u40plS6JCx3E3nkgCP28VTTyWQMpWKM1iC9+a5KwudiGMuIrueMK4VVoLhNd8s7CH7Ka2
cuIHkWDgwfHrLn3OcjReVEwn1UjHuFUj8MNYyJBNI/DBGz35slYEZCeYE/nPi2u/FU2XneSKdlLD
Ztd44GaBrnJKOXMf406Y01BTXgtX2ivYsKRR0QYX3Q5lcuRW1TYpQ5y+5XU9S+c6cFjNKkjEjw4R
sPirvzkqmFX98/yMPcdPzmiAn51/kVfA7jZD4i8/C0jF79/81idfnLGXBU+megKzfE1P3eaQmeO3
rka3VVtopyDDejFsXF30mV0xBvvL3Obe8XI961Uao1FNSsSHwDtwJxDKj0LjeYq7unWQcxzifPy1
sxeSHSDMkZuy2PgWzu/+ZAnKeih66G1nG+tbVt7LmHG0dS52VGRRKvVGXTNN5TYfMBZ2t91/sr4J
excE1Sg232D3HJHV31WXcm4/J6hzxWgd318bjsDjzZIKPELAYvSk9mCiNvajv+ktKPSk6VD4Ot/V
7HNel2jtuleODTu8vU5VqljTBU8yL9DPF95S3Cs1KroJ3QSbOGH/j+NpjC3RFfS2BPPHNPeNeivm
I6CGiSSeUGfGai1vl18VomIaht5dVh7TwXE2clu2yqaqOEspUs+b7QIBVgoEGG0H784Xs6URb7bX
bXFH6TjuIbx20g6lKsR5Cdyf8WQlxpNhB5WW3RgNgPq8VQi+PrcGiZcibyfYbYPcFLeJP+xT2J2V
88lkT0jpx87ZnrcS9hHuKCNeA3UtMyNv5dFDasbjdeVnqgqtQtJz09asDzI2Eohbn1X3xNbCV3A7
TwCCjq+S/jyCS2QT02PTddNPJ2XzqkOGcnv1DEXeN7Aul1ilJSl8Cvilxznx6wU21aOHhbUlmF3i
nUOr1PLIyntqXHOvux1+lz09FoLhoN7P0P2FLbGLPXTZ4DjkxrH+fN1iuxggXQLm+ow9PaOv4J/N
3cInaLbho/X9wF+td7RXhW5zd+YgyxDF+UhTj7e9ldemjNinxIUmH9pKzGzd2hVC6WDHOWsRVlYU
XTHXTHWNZZ9GyfgyTpeFva97Mmiy97c0Qy7ix/PkqthRz2lPB9L7+bqET++PUX5ySmbw4fwDVgMs
blotl9EyXjeIrO/rkCiHkeQKdDdhd4UbJIFjAyT/XBQNhGYPi6gOmhDVPBSN4vNawZW9SBpzAEE9
wLRlCLagE0Tvw5JWQWSd3YbR1EQy9nFMODGxHStL7aW0rCdpDSNQzEFkqGA2jM/hFDxaH7UNItgc
uBwRbP2Gp6N4+vhmVyA6O0k0oOKYo1T9OzMYrCAmIdS7D8Vy6YOVPQJLGOpgxfT6aj1KJCsiSsd/
lWxcidMEWC3E6LCHKjy10LpFK96gNqO0dCUMJeZgasRgN/FFtBiMxtfxkx2EvCWzOliURGJMEbgy
f+BrRQplLCHW/EvfsRXyFnbZQM0AoNTOLN6vRpZjhLMz+LSVacR1SWBPnxuwPZ3zrHPV/PAT+LIw
GAcenreERPNe7ZB2EGSUxRaoq8DrcDWtLDcJqeYclVuPSlZuHcv7G9p4nq3TiVrH+yYMjBgJ/dAx
SEYdZGSYEI4V376SfhZaN1Q9yRRl3cQ/VpIQR4Eoj7zyPaJ1sTIhhJiCtUKNWp8WZ87rmomB63gx
vrzrw1/BTkcXk4yKKRQv92oB9nUwabLD+Ts1ff9ZKHcxTqLFnREQS9KyoBILGrDJr4V3uYhhD931
D1U3CMX9R7TlIK+iq16F3KieNsEW6wozs78292NXVCNYS0LrQcstjc14Et09N0jzLVzUWkukwDbr
phe6WsRx8uHPFRisx/CdQiAExl+LjsLOAxoARGM/WJ2csWdLLUKigtaDB1on6i3qA2cG4wXKlaTj
5W2hsyCUBoA/1NBTCVLr6KLfe3KZv+W+8YI3o/Ek7ucrZGcACfZ/+yfB7ruyRgBCtqeBbnD+3Pxk
P0qGm9AAvp2Xs2ffpLZKWi7BupFG1m1XjcJi54ogDSy8rFNteORVvyLF6zarUqkigw5UN4DtYe0v
9FfU8shMtX9dZrluHX4Grns1gV8TPKYIFobfgy+fpM+i4dPFVWrv66aOva1HB7SsLKClDQGB04py
S9Gn7uDQCMt1Q9JN5WVl45CQZsJf+ysgLSsgTx/hASg+MsTx0Vd2OufURy3fzsnI0z0vIdo0MnOf
BFLRPVWVNwWkJwLe1Grft+vjikyjZLCjCVjWcmPq6IWoV3liv4Ncsc58M7tqqf4hYYHuad42hVJR
3KQ1Ti9j7VMoJX4Nh3A1q6g10qsmRlkTl/vTbOyGHdszlO4m6OWq3u7K+hDxHafLxWqQle/Gyywg
K08VYZ0L6yDMps3B1tahuZr8jqfl90sIeXbP8XS2iJ9crpIBvvDUDaJx3NmS6NN7UKY4rccND7CO
2WTti8IX8PNCke6Wf5WMrdS3xGUOZcc3UrSkYaB1T2ne4Y0sxxMbkSjBnZCgTgW3a4soFTj9gQgv
VyhtmmR1XGJHDAvhD5TwsJUdBqIneOPik40xKB5CyXq8TrS0bWP6lzdDy6+mKC0kG/5qaqNjaL34
xtpLs4UB8gbukjSl0G0VGM/tdeyUKdGjddzQvfvfAbfHAAEqSE9S3gZNUYbmqAq8Mu8vXr57UyK/
i4kUsMOYPc0n41bJG6oQyTD1AAJqTf6uAbU9nuZOdLhwSjxUDz+mpGHr3AMO3q2xu5Ko+KirM+Ci
cfEHin6VFX8QHYKLO1BrIZzO+1Yd8O653jv4memFG6wgFSg4LuE0GFN47ZCXNfa68ZXwYHf9i0UE
V+mbAdYlCR94qJrJWt9hjXDK5IojeYvFFN6v2XXpYuBWBS+ZcmSLRZmLxd2dPhndXYyfRJN4Yfxr
Nox3BIdyYgcUIUqYhNT7IrRUf549mFGOtVSeS+bpsGzhBDDfU/RFk8io0ltFQkOUVPK+hOU2dxJf
RQMfSUycYl/Hsfk9hly6yewLD6JE1EnaUTSX66FOfIKoipaMp4aPzOH58/x//rcYfmgua+ISsAlY
2DzMypvmsekEqC6yUQDF3TJ4wj34wKpIrMxc2u2TDJljz367e1QQTo578gzyNucSjrSNRucXF/KM
vUpmy/Hl3YtZEp+xF6TYqMOoI+I5Er7v3clX9/dxTgrQC0IaHdZCXs0ahmq31lsbhQh6UV1nh5wq
KPLkRCA4IqRmcLT1bNdXWC3dH8aXKBwEp6TI1jMIjThRYT2zavAoPBMsEaxOSU8g7MVAn94fEhqo
Bla2IQNxqBww4KE5su1BRs8hqqedDm8FlYMCVgMt23N9a6+bsQOmoCL/RrSAXVpWZowyjsyposUl
VriAq2KAkI6iT3F5247ESVA0PPnhYEozVevRNwkS+OVvcMXpi9cfv7VO4dI8qB8Gj1HyFXuPsymz
Tzah9ldnVJ5RRpTQZ+xZkf+moWKe4xd74wXvUaXqmey1oV5P0rYb0kDU3CsdHnFbloNAQFTLmTVj
BOy9khw12Y6/l3Up8iq5HCfjFNlHY1lMQS6OzswYydwM5SfRLjitsf1Zn4IVQ+dTlRUgVKImAz19
XEBDwTxaYmwBNxVHAxQt3hIvttdwElVvZPue+EpOT8NmLA7kySaEwO8SIQ8a47y76QU8EMI8Wz2G
wIb7mp7NXx2VW7LwiBg3l6aAKPf7dTHZd5d2y4kd0k5aGJ9xGGGfgMcYV/UZkwk8VJxAWJ2xGOVs
HWGoMcDF3xq+2tErOBTqpiQsDnW3GO+RKXzhmOv8B9B6rX/GijwkAf9KfR3vY+qtDmM+QkIWGH2h
7rmIZlp/VkJC9rgi/AE4SOI2HPpzIs7kgek0nRFndR3yElMb0XA2X76D9SwP+kxzMgnbSc1avWJF
jpb2GMROxz+wwTpD2NNGYexeNfY6mowBcJmbLF8CxWRPkSZZQvc2jpIxEUFNusXzQRYQuLbHfNgL
nClxVHyrha/j6dxOBXIkGgLpg9XEo2aBujj9Q3DeUYhsjR2wmEge5e22nsyUVBOqbaJy2miXEF+5
WMQ490MEJnH0qXJmIwBJ7ViWdzSBWuydPq6AixLi2ox2OKo3V1u/klrhPdKINbOUq+WlNoIfdiEE
Leo9pm+bxXWoa3qMeHqxKdwyBMpstZxAUJH2rwYblRPjNsramompbxetxJKVTbOw9Ciw2wKRZe4E
KazoIlMcjpJP27EKBPbRamJXnsehU6HqnE2KDzRuhQBRmyKccZLMBlhpcz2GeGNqT2SDSWydEoWg
YDyo1MDXOGvMl0fNYAsc0skMghHE5iYsXcRRajfOGkumhfJDrJ+9IGean70Izp4F5s/Q/PnMUO2v
1NlLcfYyPD97+fzs5Uv42/6tqJ7bEIgu7kQx8gCMJa3jDdygVjJL+nA2x+MyVSBapwitXglQ2G5A
c98wWhrLKA5Wh4qOKpEC5ZnSMNt/GV0hmbFHbh0D3B5lKk79S9QXNz99Th4ZciSzaGfspQmI//Fh
uUAfi+nr56No8RzszD+CW6G/hD+Y+eO//uu/4T97svnvCoAE11sJ6tnubW0JqwUsltdCJAd+oHXc
v0UM2njDLY99MO3NIQCWdcpk7ZHf7cge5oZa9oSuETOs38Wm0htbK3EQqR0ZUcfKY1E5ZvyXb9++
hi/fZ1++rJSaRiUsWgcG3sPQ5wgzSzqCGO+pOq9nvW65gsTmZBb2LDb/1EHRe0sGB6kfzefpk8A+
So8EAJG4rgvX0c6AmbHOmCMc4+3mb30b8GEYZoarz+wTB6msUwDa4IKanCzkPSggFsIWYqzT5RBC
P1AjW9ZeKXxV/+dahWXRISEscGwj8/g66tRdN7herTKOJs+nRffRdtacYFdSDxyHgvk8caxxXdaH
1cWh0iyUrSLd2hJFu/UdQoVe3W0WiBSDPm6U0rs2BEErhFh6uLjChJlMdPy43aIAGXTsZqloj+Zf
TzS3cgZYxcjow8cUTa5Xx87lUcN8eQfh6OzT2F6JgbwA6fhxJOnY1Dz8Qip/EBIiDtGo/bGLqiZ/
j5v1jRM3sRxnT0n76Xg6n9jn7yB1IFWr1GHqXgsh6jz5OubPqZnZ4iBZQik/cTUm47qNV9yPcG5x
YQgCxg0nyFAdrHcOYDV8xFC2lbiwrgStRcb5KNQ7HATgxHh8VzWrF3Yqyo4jsHcgySOHjnY3Ft3C
hJ9RWZcLL6PCM7eIeu6N6cKNBbHwhfLoEuYKLmMx+xQnfSw3sBtl7DRRjVASbkk0wlMcYGvNXAfS
UZuq+uxBFL+oGIykpav4fBXRvkgx5Zd5luFdEk3HA/NwWYEIeOjFXQkppHoiCLwaGDsdTjV2OnVI
zlUUUB+TCMHBVZKELebSfObDKtNhQvcEJzysAY/3OkfyQUcJtvEPs6M0TgaT1TBLPG+OVXE5KUeJ
QafCRum842yujPW4Uyuf+1UGlquIejme9cgEU0YfjeLpZlBCka4hlGtTsiI5rbFsVSQK2A0sX4lv
57D7x8scrljrWCDuZk59adLFvK8uwZ/Gw6fT2QquH13CYehnuVTYPRer1GqsmGa6x0LSZA0OMa7l
hZOm2d9pcJU8uoQGHnqWTOGNmIRpaU0ywmJW4w62vB5AF3tZYAj2WTgNaXQ+MKzE4+AsKO39JXp1
BGVdooFocN8HMCbc9zIr4LyJ0s39r1KjHWdeHppUfIN2bIztenVe4HorpvHksjowxCGiToGh3PMe
VuXLrMsBFiEp6djiAMGU5/O2X7phOXmWTLirZK08phcgh9TYB4BcAE7Zsg6gt79tLuFdePCi+brk
DmHdepoVFOLkRBTdMmVc5RQJVdjj1WDn5SuBG7C4+sK1dFDWYGGsbgaRqhOn5m4Jy1IxxD0XIx8I
YenHmmLnZxgE3r1Aa8Sln8cmQSixLI12t724dJqsXXeZ93rXrDpPNU7vdnCbNw1tKr1yETO4JFy6
jMHkjDde4ixyT0ezFfZrIW1VPpVB0xBCxbAuOFssZgse8N0+fORCNc61DpjyuV+4nWvEGkWn1Nox
EQauoEN8oUVGPVZF2bKTKPvJLx8+PKmOoxEqS87red/rcXwTL54MV9P50/RjfLs0YuNbQ3pvLWk7
cPYsfBiQ+RjtJAHHX/q1dbzU1uFB0VR5eim76vWVM5RxOzDtDYptEeg5QgRQvrTUtYuwJ7lq4bqu
YDB7FYX7QnkSt9rUEjxohvGuZR3sBh6C8Wao8BATUNFMg0yA26Qtq6m/XS4igPj4CjYThyfg0VYY
gkRXYCBTePo/V+Nry4nSXKMefDcnCtED84GEa+8wy7SUwDQl/00Q85GSi0KFfwvEfLz+HgCTOps+
neD/l304cklq8iFGvWQrHzscp9lMcZsYF1U9VsfCFjd8Ft2n81mSxraHVCixKz35LlMNj5B5uYjj
fjyJp2hjMnajiC64ay5NlraFI4u9TedYhj4pOLmMKu0XlA/hk8XsbrO0+Pj2Cc/McRZmHRYh21R7
KBerOuydGyFmZNvikcslJRRljvXfzq5DWEv0QuXYOXLw1OQAyECBeJgpwaAoWrw8/zQb6/6i0GfK
eqFs6dKWgA+OLKtnlbYsg6N9urVUe5OeIrSzG0gLNxDyniTS646qhPc+LgYoYy+PlzULhT0iCG2f
bs4PqAXYKNQ8D1uBldNogi/XupFJAEBPCvKww8uSjEwtROQaeFm7ibkIHSt0KyitGUB8FpB7SGAd
AylM5aGXhNPgwLwtwhAGCK+hurJ6BwhgmCL+WSYrgMOWJ6JaxMz5TilN3mwyysZ3pfNz+IWJqflc
DFAHblvKbHOXuZQZfLS+D/ir9U7g8829mL/nQ1cKzbwIv4RsMV7eeehSZacsdD6K5iutBHeOIYvO
hAmIbEkYdoPshf6bR6tlw9OYr1Tx+mhlfd73a/1VuoyWq/QcTOmjZbSAl3++/lFz50YyweybtUtM
czlB88X5ZTRJ451KSbxREXpIHexuTmMF+hMIy5BLRJl3iM4M0hrMptOohI+X9fKQlUtYa11ylV44
vwH7WxMQZQqqKMfHvfrGDOeCzSrgix5vh3KoDp0IcZR7cCEgjFuwS1djcv2Ajub9Fb77/uOb7959
8O8EhJHeR4qzFuavJ0BDtNcrlU8/ZtLX/oHlXtxlZdhmGhV+eY4iR+ErI36UyR5p8yc1fwrzOS10
uve08hKXp6uLg6E5w7wpD7q8nOCkncBtNVmOcf/aKDXWk5r5iQ+2yrLmo1xNcC1aPFgnQuPtDOl/
wzc2KdLYKuxNfVpMXaIeAuEEZ12XB3HReiWs/dqS16un8Dq38ThrbLDPnv3NBJV5HZawGEbTg2E0
5/7Ss6Uvhwb0oGpyA9e2BSHN60GBcbif8y8B6MwmX972jSbdlxBUfvklfGa+epTFY+dWofGC+K0G
EHBAGbZmbNb6vcOZ1IFqm8HKZS4x3rU3DCnTydNacGs7SZtwliuvWWFdAVDRsne0y6fxcjQbwk75
8vsfP34J93zUtuAKcIDriYQLnOo+gxC8ufBeuZLB8P4onszjhSWBEMqeoPQUl2XUd2H3Giih/uRa
ftIegTACgJzUqjRrXgzJjkzyNiJFqCdSxOiMBW1UOGVZEXsZEeFS9ESd4tX2CBApWFurYK+jkpz7
CBrxS4j+EzBhOb9S1KiUqPhXh9+pvFzxQiFXlNbLdJW6KxKUtM8TMDXNOxOGs8HK1FBsUvuZAbDa
FzMxkXlOcCzG19Ey7l8sZjdpmfC4wEGmSrSWwrSb2OK51YGA1yvaiIdtYbAMeyL0u5lKk9AMgVad
VGkxamGHoxbFanmpOhEtk4F3ztsI4mZGN+1H6V0y6Kd4J+VtTUxgjQoJPEGSabQcTSe2gmoTRvPG
dmE8RVv6wUQIVpfPFYQEqsM8CPPk8hnq3ymf/dOE2OfLqnpp5/Z8vFDcU87d6HD1x8kf2SuzbhAq
e1S2UcSdRyQWK9Y3Rox6rJLaPQfFQnWlaU/WYaVLxFu8UlMmIVfgpzJtXb8HwLgVWBB7VC1I0DJ1
YHvSDX8gRV2PfQlHcWCE/rO5KXZ/RnpcfnY7QEpfKbH0+srmiDTmhbhvsLgedOXSd8VMNOwB0KgD
gAYTmz7ri4hVaEYR1C0XpzxJhKmHuc9LtniTYqzp+DYePs886pNxYj43av99g/cgVjIBUyn2FGbk
mmibuR1fJTO4r1WSRpfxOJmM7ZoDQiqjLnoSBpe5DQp6OPumzXKyTTFdRR8WDgOn0q9JqXbRRErR
HZZXtbD8crGKi6NLJfdMCySzLeEMpETwuM/m1pJPnP7EWE10scUrZzjjMfxRnLkGrweesb324XK9
QCvMf5RRwdn31p3GAMmjvOgza/A7P6P0Q7zsPzc/Bl/Ad9fvEb66v8hHuHr2Q+evnr55m/3kk2Jr
MhawCcaOFFZw2KV1tl7WuozaUartdy/0cS/fY97NTU7Z6en618mwP03LHhLFb8kDRdBgDgbw62EX
jCGstjsMfhSd5RZs9odjU0CRLL/LWKUii856tYRGjl42HzecDx5oJwvv/L7u9zb3lZS8RaPYR1ta
DIIkE2Y62+e7s4OgLTIlH1RNbDQ7cZQ6d0Y/dsE2FqLsXNA6RE+slbooj2YG3poq3VJpMgTupD2x
sDK0Yyn1BHtDVfAwzm8tPbijT9WR6XGszN1/h7ndayQI5bdDl0lfUfH27ILK+DgfqGVlNQLRU0K1
bGWoZT9L0iO0kfaMo/idvV8I6XFBGhKT2I6UZlvAEJRpZde/DFHPxcXxqUOUmD5IiQknDT/lYLQG
k7Hp8i8rT4S1DLGA9PjLOdjxrYLpOhbdNhotxG6TsMHdbodoKH3QvxmhTnEutItYJNsS82hVUtDJ
AscyBeWCgCbj5JONAoYt7qasqxpmX+01i9hlKo7bFY1YDe2H1dCmUavGy2loGbgTWa46i63rGKpD
LFw+lQFvJIXrDnBiSIUyMgUkylSNHWzDWYkRL4mSQoM+HBPp1Kujjs+U2HuHCQA53oq53DWS8MwF
Q5nEsCfRTSdwkmfmr4UfMXNctpvXbBUVAXGcsa3qAYe7ZBndvkT5QkuIInpS804djre1tDQCaqNh
o5oDAwPk7Qrn4AuUrGvUYLUAXQ9MhHJfrBVfYekaNv/Dt1J7EQYmZ1mDF1Wn5Igz6su1rj/s5y2O
/cGcAGy0eFtCtAnPmrzD+4c1at2ZbvcsLakAYtSxiNUN5GG97EWM84VKB+9qbBxuwXJZ/UJlfgaF
gEjbFvRe28Rq/yT6p9onajHNfDNKEs4nJUl0xYnjlKZjfNPKPgSMhASXltc36TZD/l2S2XDbdgpc
0zfqmAzLHv5GrDNLIIgZfDrP2gzJfxXbJOBlBlzo6up95Uiv3At2zBZpl1UlFPvRPqcneHRGA/jH
2gPj2OeSMzxHBjoV6NmczSyU2FVNNinHQEFoLRWrcbX93IzFBtimBDE8mqGX11qz7iQIhVc3g/3O
eRwZpfbyRUaFqIcvj7TxazRj0NnYDmNIIIWZ9Nv60QKDtcDRR/9GLgvM6fD/PMTDRgLeHvCPSyC/
AnfIghMeAxayo4yr+7RO8MilszkpDxjvqQODQpttvsvZDF76hfddQvxDRatAVrUU1hcY+3+x/0JR
uEop6Qd8rOfnZPSz/TVKM/vU7SUe7m4tvsjNJ/DTl5Px1SijdvLXeTL3/U9LMiZsLTwzgiK24ExC
lM26XX3TBnDy5a/6mXW3/G0fnPWn8bJQzh+GrCWz83dbrzxfr/yd8JpYzW0C2gEeKW+0vprhkE/S
h/A8022x1eBRbDCgJ35sKuuY8noYbdftlf+Soh5s3vyhmcdbLV4ll1Kg2rvzzSHLxSRKPpl50/PF
7Ao+msLWgUM6uetHw2EfLDOC2Ek/g9lWXpBzxykLjcC9CTzsWqGo3yllE/YmixDXMK689JsbCZQa
z9pWndhytJjd2KrDJD8qyqx/uaw/rSfr8LT1FNLCwOuVShXS3KrGDxAD6SqzgQfmGIYQFgS61fSu
XY0oQKabtkC33DuaeXGYtegJpihrOemD7zfbua9xqMG2uuGPH1/pR5l1OR+Oh+9XyRtz6LMfR9jA
XsCfCLrP2LNHaIE+mN96/kU6iqiQ/TP66vrlR7r46an8+ecP737Vv/z6bHJGnz378+nb4Orjq+Dy
rxsVz65/+OFr+HT07in8xi8KOVENgYsmngKX2bR/Ax/G/R/fv7XyMHBO3dpIm6x6cTm/h704u1pZ
TjQDw9Ek77g2Usl1NBkPy6aemkHwhHT+3C/n45Ln5hCwUsV8h062slmtOfIOLQbv93o268qdjaUr
PDgme6jowH/6amAKRe3qke08zXC1yKYT2iWvJYrU1+HhTrYuQsnP0np/eO3VeguiWmYxS/sAtTzm
yoc3imsodORG0c7xpGvDVdHPfWUb0fhhiUfu8eViNn0O++b5bBj/I7gV+kv4g5k//qt6gCPRZuDF
Z7HITu1FYvdu8xrHnbvO/pZVK1zh4HEkDfKayHQ5nkzWlZFWDWyK2lABC0Lud9XasmGUfM427Pei
Betb7Fe/3HpJ3Rx7bd6ZNfHHD6rotWYhueCyLdZknKTjYYyF6fbRj8KI/34OZ0CGymP2b3PzlkYk
MA5C+i1xiq/hDdnrX1DggfFTEjUb3jEvP7CQNG4zJFRlV2hOMNgLBXtE8LDtS7A6qUE7S229RMh7
XGjfMfI4SeLF64/fWiNlHgaO4w4fJD/BNAeE+4z+xSaf3ny4ePHdkj/9z6uPL79fvPn+h/8o9e65
gvBxNX/xU3w9H3z315W4SIfT/4yC5ZtwKT+9ePvNXy//fG3FuzrwTVJtZwX2vpUPCspSNf11YrZk
ZhDqconG7iz7V7bM72bLj6N4YW+UCXCLtF633OoW6bexQQhrkWpIo2R4MbuNh2D6o4kVg6JS2nHV
PUeFHLtmIws8xtMrWOh0MTj/IrqYrZb/NkmVL+CzWWIqYOBz55DkC3skQmoRd1tExFqWPE4G993l
FZpPLAx7XDcAB8vROO1fYuAwxEAin8WKfV2meWPXH5rmDeyopNwXKZZOtgeyWwZjSl3vAFcAklnS
zx1b3E/imz5ihTJRP0KJ7NUiAR+GBRGE9n8Ykev//PQpTO5m3+q3P//1Onz/6fLlsx/e3X7CqXNy
/NfL4OuL3+gL9f7Tzc3q4w/fP6fzN0ipvI9f3X53mYz/+On6z3g2v/z1tw+j2+v52zdf/zycv7+5
wkvbgxZOdduFY1VuyBJtCAY4KyRNIMpu+6spcC5HtwJdTxh4Oig7M16t6nPSSAgcseb7xbEFA1Ta
8gGYHdbySCPQqP4Xh9f/XY/g72UHsF//+Mk6sNhqMvcF3sF4rhKklypagiSXjur4RwUDazu95eix
b6YPnr2f+3C7ErFoJUzIWYZNBJnXROIgusFoDF4UsAa1KwljLYb25UJXNntANTXVjycKA0rnxZEH
G679C47Sv/Ij/K8nT/51RuXVsiSt/PNgFYzeQ+gm3v9A54P3b2//Sn+aXdDp9M3q5+AHMAnPbt/f
LEQiR//51nZEQwm7IGz8do6UCmYy8AdPjf53BTKFUK8WrVGwQhBNAC7/fRrNLWVXJAS3LoPWIokd
bLiXwViPEnhsfvQfqOS2HWYQU9dIcbraVv5iHWxsz18rYk54LtqcrsmrCe2CFQqDh8/mMD5nZ1rY
juJ/2GzGht/8QfUvXH18MwJA++M4Gb34+QN7Ll5cDn746fn7v274N9+qDz+/tB5F3pOBfGBgVeFo
nTo8bAkziv0/RoZyTZFuJlVviNJ8UrWPCTmZUKVwSsprn6DUDSXqh72jF4vhKPjh+YTLP/98fXuZ
JJ8CfTfEjb34NPppTL+5fiFfvF39+D0Lvn1TsqPdNOG1ewtrGk/Kle+JQqUsp65Z7tCKneKBWX+J
gp3DeBLdwfYtTNvCiZGBCriTtPfDeO0v6ZnmZ0+ftWPLBNiyGm/+CNBXpj6jqXKcz6OPIWryWANL
lozMQ/9qYKdplHAswNa1Qo6s2rg82ueYRA1lTYN3FQMqQGZhMyUnz10uUcDGCq9QiJeQ4yxssxZc
t0FvLZ2yZ+MrccQpe8rPXnHbEfsm0Mn0u/fL3367+0PLaXLxaZK8fvbdxU8vkzT69Odvg1/T6OLP
9MM300GZaaXVHTr6GLQZJQA3F6ay37LpDMOUIU/AkKg3PB4aqoFm/93bcfIp0w8eLeLL7DtnlGUf
5R34+c+jrz6jGgBpaHDqy+fZN58/iYpUNleoSCSOeUx/FQFUN/NdtWN167EmxFFo7YHv+5/5p/+8
u7y6/vHbOH0d//QLib9O5CV7e7lKlq/VnP/6x9v4u2j1HFFhGagQoWrTtWz60rKZ1et64ewowIsq
ZxaICpHiebAg4BBD6K/QUdazTTt+IB5fJWtZza2W6Q0CLG2cNj6QOdVz6IcbtYSf7zYarqbTO+u+
UGGzl4Kdvst4OjepQnPL+BfUTTjfHNvneGrfbB3aZ3evsyNbpG36PaLDGmbeznBQO+1LDo7d003b
JKtslp9louGBrI6uN/W4k/sHg4A1H5/7O+AH+KGH/Aqw9isI+Wdp04ZnVJZYNB6GjQmOnISL5vNs
5St0MSUJwT/wlqJbeK9Y6JGp/c2jRVm9JEcFNE5aC3L/iK6j7E2VNadxFjqmlbzh880gofJcGg0+
y+3tC/XxdimfQ7g8SznZcTknqPLWEJPunNYtROpycIU2olZNIjiPNyLD4JTcwXkJc4Cf35/9fx/R
meNEJdCHy8q71eh6OqaMevIfh2oyXB2KEuhP2Gcdr0kZnCS0+Tazeja8yIJAfQ6Qt+IRtNt4Kidq
GQM1+Go1sTDLKBXBA02Dh46vS9cKQ5yA88/VwGFxmjcDJ+lnv+1FU7AyjZLxJUqWWIHB+ruF3DU2
Q/kBKbVvAM6h47P/8u3Lj6+/e/HAXh9GuoQFXhYxugBXkFzteBtuTLtouD/KfrNbQaB+wEIrP8VL
+v46kjc3aXKnb+8u3oK1gP/w4odoEny9vAxe/fazevndT3/+eQXfeJ1EZWZENbGmezXauC63y/4Q
nn0xs45VUGDBGafthPb2LigzKVyeJIguS3JRFX7m2+9oF1aWQ6lDb9SPppfjaTwr0YeXqP7v1C73
d3sxZaYhFK2RX06l5BQnAhLfzKPVLDFpBLC7iW0+5rvQGs7w8PMOEUULBQUdHiFrnpd0i7TXVqrm
FiKcc9ZdiNfobjGgY/5yk1mdfElDNAfMyg5MGtB+q9d369Mdq9Eb2rxTnyB7jzz1t+ykMOEMYaxo
tId2CZTCbip2VeN8Ty6VaJltt5LbSsGh4UEnLHvpDZBAeUXx2ayM/nI2g4OUXNmxvHDt8nzAEI1Z
WwiPXM0DDKDLBg4lDgttPS7K51wdLP6TATPCSO0QCrkYl1H7ZN5JhfvfTrRqj1ey8Uk5U8JkW1Dd
rpqKmpXscz6H0cXgjMqyhl7GWyW2iPwcML593rjKlS47RFG+VQwRYzH5t9i9payeX+e8SgDP9zc/
YA2hsQe6WenTNhTJhLLXw4UHUXId2WdXMeyt5KJ5BLHxWKjUvYgNoVh0m1LQniSfNUB/eze7+unr
0Xxw9wz/P3rz9e31xXRw9SsNlxc//7QaPn8WRF+/Ct68Hs4vvr65+nX649VvP4s/Luj7yW/Pn5EB
nax+u3v2/Ndf3k3e/fHD1fBrfTV4/c31b69/+uO3D89GF+Nnk4vpu+vfvv7p05vX74LB1Pz89fCX
9zfDX/DnRyO4Bl47vaAi+e2XN+Yz+O9Gb169m/zKfrqD3/MGfv/szctX6W80vIt+eT+7+BCQbz++
ufrt6wn8N++Ct+Onf769qTgETirioszKblqh0mU0mWD/xFcmtC1+/sj87RVEdiz769PlefBoCkHv
x7t5fI6c+BMz/86SvFa6Gc12NAirJKfrgLACFHU8TQyu1a8XuNkcSjy9gAfE4ZjZ+L0leIn/y96V
PzduZOd/hb9IE9eaM+i74SrV1nhmHDvr2C6PN5uqVCoFkZCEMQVweejIX5/3ukHxQANsXATl2DUW
RYok0Nd73/vedb0GheKOZMNeoEKeUmpwzbu32HbFZC4lK0qFhEGIdIt81eCDS9UVONttvIPDMU8N
Y+UE91zJ1s6KTRGJvHREeYon5XAURT9+op0eMus0MeclzRb30Sz53/LaXCTEzgyk9ZHZCqWybt40
xDgV1Y1cOACaCczJAqQEZjqjlr1qIkwuDSw1bwJVaw5BoQjqTWLyd6LZ2+XjDXbcwr1lJ97SqlfR
7DF6XgI+RbBqv8yBVWHb8UCqzjZeoXqJ3YI2z6hQoxZRnZ9HIuxbcPkVpgvbTIJr/EqPQiLqX7kc
TTspNQ5AhHnVng4bHvc0wxDFHTd1nJok76ntDftsMM0OUFjE2OYo/yN1KDUFtyxC0fktJy8QZZpN
fNptURV60oJhcxxR5svnrM2F75OnePrBTsO7nYwAjDM2WeJwVExuYOnRUJKNmFc1iLC+3TWPFrBh
Yqc7hREOlpdX5GLYZV0l+C/ofM85/ZvFit0CVDI/1zPqxJ1Yb4edeoko82p+5yMxN1dOs/FyfT1f
ZKtskrlbGoVkxLzyScM2gbRothBORoKGnJ98YjFhtop5C08MiMrgEBam/sYYvviGC3YNYC+W/Otf
vv/py+R+9jj9KO6u//U/nqcfbp/+9tvjw4T+BDb+t8Evt1dXxxARdkrzC+DzkrqH9Y8ek9Xd2CGK
3c3i6EjVRAd2z7U9YJye/KJEsgbC/vjh+isc7PtkhfO+ax9cfTYvw47Cv8ADjgEebjIrHuHX62cE
1vD/5jOXuOVukng2JVc/xY/m3Yt7pMPgdXy2yPAZtqHfvpVeXS6iaZLdLrL1nFzdxGAIxZegBie/
X2dP9CpLL206/uYNSWQvFC3iiFz9e7aI4TvT6std0A84krtkgkOxlZ9xBLG5+yWcMTOix7s4xQf7
8mq9wGerDH/cJUt4mINefnu5Ge/30Xwep/HUtMIuRPtLgO6EqtNvlFCHHYv/7ZUPFEFRRzOk97U4
pZaexbfRpAtADWqlpmBzBfDUFSY0CLvHzjZkCFlrJ3I2xcS6N3esPVmRGciwu6dXrb9O55iEQnSn
sHICBe9nvMrM43LbqfeIwRDagrWnngGmSJtdth9pPk2mH2ZxtPhHkk6zx5+vv5R0WyIUU8k5bYSZ
qpmLl8Zg5ayF0hrTpWkrpblHme03LnfTdNzX87G95sdPP3767VPbFYYzHQ430SD2B7w4CQa8+JHe
Hv1eXA857WrIadeDTjsb4IRT0oSDdTOh2T3cxXKZV2FErFA6YI1tSQQ5c0Tnol8kALpBZDHjR8Lc
TkEUHEDAfZrA+NLfzGdr2PzYF2iFrvI3YM/AXFrN94QBJ78nK9uUPo1Xy0k0j99s+gq524dWD8TU
7DIOmUC8OcIzYI8PsCPqQcXvP73/2BorKhGc/KJwvkSvjEoJai099AwDbWqenU4mQtc0Xv/xt+9+
/vnb97+27xcQqs6t5kmcPIBgWyyi5+s1drhyVxOW6HPtxMlXGXobBKeS4c7gFsk9k7y8COJtM8sM
ALnpCnzIFJuGllIFcpANRXQTx61zrKts/jJGFw0KMysU6woa7MAid59BjpmawSCTSpmud+HPn97/
+uH79tyr6o9Sc4mJAq9GlYRZD8QAg6eSkp7Jk5zrf8mBcfroCXYSUgNMAOOic++2qVW0wgAggHX3
SYrkipOpw4ZOSvTE1G3AdDRDmPfkbplN9Kidv8dTdWBM50tklNvFqLFr8xA4qTz6gTCYHhZ4zA87
uKv79WyVzKPF7p28vDZ+jAB6X8dYo3h8na3TabRw2jhMMPwl8Cx8GdYJj3O3HsGC/EFH0nAa3yCv
mIfFolU6voZxZ2l2c+NmFMOw2R7wDkVyR2JJzgAT635Y5OVmo3mzyBor7DHV+6G0Oce5mHCTA6qZ
fPIWyYWlELAJfDMwPRCziUFNbjaIZz8Q9dK+Wh1ce2l7ttBCy5Y8KY0r+lpulVD2Sm41bBV01SYO
WQe0LbdjyJxJPF8VuJ13OxzNXYwp/FiwUgTYXQ15F3gwEmOfeuGceVMvlGILxcvJbL2CqyInNHfQ
L6CsBAtahReedOMyIgbaDpTooGsXk7t+Anayoz1xFCDir53yncAItexf0WxpXRfru8MNH/Xjc4Zh
ofp0MHGrvivoNIa+SNW1GbEfKOW8MrYrC4PerVezgQq6mgVIbkl6IvtlHD/NYVXcUIWiAalkL8g1
L+9nInYBuJS0bqHGI606YoWsqDA9rP5qfv/7rz9eLdcmuwEu57yDUIFY102AY1sTOmhgnZSkPW2y
nQ7cDzo4eoKvM5O7XEhsQqZQk9PHk4aSnqtkdQhWQTFFUfQT627E6n18ny2ex8Y1uV64+20LBRqJ
y5PHvUvJTx9oGijZs8XpQ71xtDZp0GD43nH/y+ghzjegOeMHLs5Tb/UxRqnJk683YLyh/cYORLHv
OTbe30IF/Zf+0LaZ1lfH3LsBwTDyVqltx7aUGf75bClC0E6hIhxAjHCthoDD1ayprJnA0UWsLWsS
Bdk5DMnnZQ8tWxBS1+XewZzwQLBeMHElFqYEDQNx8tFSWTMSuKOAIEE6D/JO17OqCG/hWSOqM3RZ
EbRVx3xnADZE5+7WZYy3cSwQA/P+wyEi+6gKBrgs8Wj3qr/B9za2zLHy73W2xhooUfo7aAuMGHc7
EiQsvRog8oqxkyUtkkD6SB9VbbjE11iTbvkuIMx6q/YHxvH4wzVJSI+zYHvL28l8yuP5wcU95Uk2
FU5xMf8InUOcipOPm4njmQa1z1K30tZp0quRqrlg3cXyHLeoizP2Z0LjgAmNIiBVjVMq9nd3Buo+
7DlVVPNFEPh417yimunxqg29HDhGjvc/6+eky+NxW3sXHpg86ka2Yp8bwTrXCf0RHN0MmxBbJoDV
U4cdxSryVjN+mOa4nEeryd2nh9ImtSEdsZpgw9d8xn4W1zcJlrBy+pICMmIiGGKOhW7Qvuk+WU4K
FMh4CduKFFvlYZOegBKixQDj4x7GWCUu2XPoVySLYiwbDULdYsO6NKQ7jBQ26nEKonil0qnEpptu
L2fIsHdMxzbAIfJ/SGK3GUm1TzLFiZB4nfIDMqAjyUn9Ozcn6/Y+SmbjaLnE8klZOi5ryMUDPVIB
6XAjbLlRsyVK4ie14uhG6mhXGM1nmOc0MyXK0mVJ3URTui7scbzFoYaEjjRjfxDAUyPfEgCPR+p7
O0LJGeKCHmEanox1MLKnyDzALZj2z4OaR2eX6nnUIhLYhU7IPwZOrnFaCFHUZAqLhiJ/O0CX8HfH
opmGPZz5+N4c8qlhpTbRanV3ttdNtH7KnYrEXRAy9KkuUzKfNv4BZsgdcI8BfJycObAoofikoF1p
XmyhNY7RIsKeQdNnjJNdYQHjFBRxssQRmpptRjvDhnwASADbY56l0yS9HZdMr0TXS5OV+5MOHJIO
pFo2OBFfbJLNeLtgX8rSbigTEneGbnimzXbFPTc/lIJaovDlqjUy3Nl2i8ScCosLi7alBFUH/5H/
l8jQo8rZH1HF4+YNVB1M6BS7OwsM4na9RDlqRKxxrWbTw6tz2+hI0bAnOI4VRsd///VHrxRSk/pf
VSyoR2RcwAwWHGM6Td6yhb60NrqgKknTbAKDziupwiuVzYw0xlM3gnDH2Y7SlIxAjhpRVB5huG7z
ihD4oVvBqjyV1XYKH0+TaJbdju+RXUVUEMHxQyU13txiefkBgWXPqT6x2OYi7IrReqErnJONPAkL
gj+B0CsDQkHA++Uf3Pk1IWtIbx1YkMlOMOfuSXUSvIKNFOGdm3S01KQjwanMLmfBN256HHRGIe6/
bNqVg/mEvSbXqTtxSWGJQ9b+BraBQ24jTMkRbxKTcZQrPRhjMbteSp+E3lojNBYFQv9omSwPoBFH
HrxHOGrLOMw2ZQRLjBvChQbLV7c+vTCzyc3zeJql7oqFZKR0H8tavZOLyYAcbC7RhEOpdq5Rd8Zl
OJKEd7mlhLscElXGETswuKV74FZtwK1qCW4F6wzcwlG4xRQRtJ2SNFo8VyQ7U8Wx5VDQt8m4cUMv
JjjRmD26SPAeo5lR9ZcWQPzPYp1ePcfLy8lyfrX9CEzjy+1t0tT/eeV9Bxf0u5dEgEujha7Mz8MN
BtJfMNJkGSq2sitw1FwNaREZyO7BPgqGJoDfNEWkkp/akK3OJabUpwZaA5kK07jEGUJhWiDu6UgQ
1jnwYk7ghfkZXHcMau3j+C5Kp8u76PcYA/lmsziFhVjAa9l9Gi+XpcW8meryDGh3AW+Mq6G1xHlL
LO3RgbSx6eA3344oaqJMSe/Opnt7SzDxVvg8OQJi4FSxJtMxrNSHl95YM8L8fNOXFuCcyJO57bhH
k+6Khei0+ou7AlAwOOhiL6ALWcQP//V4F63ih3jx3wc90+tjr1BioQb6JxH02ogg1ln6yw5ePl6j
XSiQnq9YcNoGZXcRTPm3oJhABmCIfwT4a7FsK0+rvttVIIUQEbbDvzYJ3qo5d/trv7pRnlAOO1VG
k7LWwYAvfDrOwLVIA/x8g+kYKKoB8Mymk2gxrez/Q9mIeVHppD6qzPt/u2yIEGAW5R1ddudglluw
hGhA7DLofNqbH8k0K57IbnHLygldtGnX2GQH1kO5dv2rSggbtlxUogbSF2o4OKSWqcnVl339yh1o
B3+38epXTzaWLknn69UmkM/q8v0/mIi/J/jlIZqt46s3v8xiEIH5J+DhGW4f9fsPP73F8LxLyx9+
zNL4iuCGeXxv74cUqnmhK4x7mWHEj8ErP7MMKx9TwV7LAVr1i/2pR1e/Ex2goCdV4q9FwDqlWrfa
hY5OAuV7kSrYi0SRFgM/SC3Ky+WMM4CT7t2vfBqSd7PijnB9pLfaQIb+zT/NyFmcB9YEV9T0Tia3
KdYBX6fL6CZO0llS4ugB+cyCBmJiF7tiDhrcEnKQbAbG7GycwlThU8toIU2Kzzaz5S7SBv+TsDu8
BfeFrNXqblnSkgIp2TbrcKCprULGWOrr9WpVhquxEjoZ8ogqeR5HQNZb6ja0FGAQPuSUh+o8tHAT
ZXToNoabiTcXMkkD1jWTre7gNsqvTzkfSX0CqZc6AzDRkQR/yoMvs3T27G6Ko+FG2WBY3ylBdkC/
Aez2TzmNlRsBm3Sb+Cm6n8/it5Ps/p0bpX+3/VABqQvD4CreGUbC7eE6mDYmD8lKKQc8l43Unsd+
PMxYrrszHeWpFYPN2QRE9yG5W4E8Vxypnaalqf42m8Wzkh4ifMSUGnK/UH0eCxDwnqypF7MmN6Sc
UTKKMp8ycZ1JCQx56gOlGebDXbq2H4vVoatAMBekQhonVpmmL3q18JZscZBI4OybjtAjHBL4yDPh
74IGu7Wkgic64q5YoC43pTxLLVC/XovwVdhyMNSnVUWdbbyisqK47zBLqgmM8mtLybgYlOUg7cjM
9fLOZkCu51N4WNpEgpLaGFT5Fqc7wUHisiOxbzy3leM24gsL7A+Pxrea4hCMb9jz7rE4TDgnfFCz
VetzIfMujXciD1nGG47xlvP+PqTI9jGFPTPoa759EbITABDTgcQ8cRZCYcHZkBd9GGtu0FuWQYbx
pH6y6Odffvvh558+V+SPRabjykuMhm2ZB++7mWH7LmsXjVfJfZytLezA0E6zi17eZLbfb/lbVk+r
YlEqTHnzu2FXkexT3izTI0JEW+LBLiPoDXuLTqXCtWe6io85kTfTgXP0JS4PpcDUSx107HiCURZb
V1PFzKqr1yz4Ai1e9e2HpKOlPtKWSSmsWibP3tXd0rldyDVARkCq4MwNOqmDIaAbMzn8jJ6J25+H
ryISo4ctykKmBmVeBvJiuFXiZZJ+H0dTsHus/ZS/y9pQ5tmmbhim1nyDkbnv8HNfw58PwqKD/RDo
Tamwna8sMAYYSsabbMUDROTEQVbNHKAhp8DWAQOgI8/kZKq+0XRFdrRAu6J1LM4W7pVHVDKJ7B8n
/TgsnHSNwLiCJsTnrn7CI7SK7+cmpasKU7uRP6fqdYTAvelB9HItxYC6l5/WSqy/ORiV58ImipPZ
pzWniXKsQN+KgtnVihjvbuShyVkY38Hl3cUUQhN1f6aTwhlOyvm7UrriqJ3NcksNcJsKguk8XOnX
IX37EL4YUtcZ8lyvklmySmJXumloqmsGekiUzVmfoNJ0k3cmbmHR4POQ4cIrYpP2tAB+FVloJ7wa
zHiDoZ6SmCqyUVrJysNIPcudHdukxZoQTGDopZcopifwHZy7QLbyOLqeTHuQyZQo0WLnVll7Jrzb
9G3F+r07HV9ghOPk/haHVyrHFBewScNuMNbBetzFsCu2YAvXJI2uZ3nuocFiGzbi2uY54ftenLcv
B86nbvnLZYyft8DTSizA4WWQ0d4CHclZnEMeNJgFb33pVpUcRBHvaPT1S5CQQIAsbCIGh8CD+Fsv
XKhXfjvtLeNBn4cW0qJnZVyih8GQFa8OueiwJbLb0oO24ps7Yw6tWtJictxW/m28GmNdiYodoQI5
YpK8GsGw+68X1i70av7Wm4okbZaiJFFzvshgvo396sxI5Z7d2BpoxGmcJhi26eGXCIT0jBOmJ0gU
pqcz6JQKOwcGpnmAM5YqlJ6xVOdx3s0vWMzmLnowpXOwvs1yHsGLvRx/SbSndmzIm9sTUaIiFeO8
bxNp2cxGUp7FmmlP/oxTYbdjkkH2Kimdc49HVvFXcmTVtxfqY9ujab+lYMJizI1qEnN/kD3KFtOx
zQ/fK3hYSA93JBUIkNiAH0Op26zHni8XfiUlGpGMGG9w6Io1lh1ljU1ZTsqwRviQVpGknSu/G2wp
BoJt267A8DDu+H6F5cc6M81bChdG+zPNKhUPD5tYp9sr4hTcRQt3Sc6QK4rsj+roCnmznKK9JrHW
ScjbXGbPM7hxCFYwcTsVxe15huNcOM2I9cYox4e0LKh+LaDvuwvxobUGMd/i0iAgUc8DSjDJu6FD
KjLUQs3rSJQmAXg4+fnH4NftB+HJESrispQL3w+2u6D682oBmvktfsMHkAIfTBlSHTwJfUE/wAN7
eQjxH9aR/66sPikRWI82pD0BOTNS1EDYV3CZmOQrlyGmCeaVdX4mD5NrXvo5mETJEg5Ahlg5WjXa
Kl4ScNOMKFT9Wleuyd/XeALvhMEuYJrrzri9+xgrvOaqwxkASEY81A2hXI5S8zypsZ2B8WQRLe/c
KYt8xGXXyiYXbeU7WhHQvkL3YL/evlS4T7Px7aR85CRgwjPLpRmk3CyB8TU+wLSUZNtoxke0icb1
kTDbvZ07v6Plc+rMMwopZiCKvtVdviccXWI49YzxrUds5wfiS/QQ5RACoJp7T2KetOpdylad/VCC
zaiC7gnFfalTYBeZRF3n1xCjKe4zV/fFyse+zCj78Tw6tCFsQJ1qwrzsik8wG2C2UlMPLsHC1LNZ
UnZ+KQoSEdBGGrHpOC04ASuwZwoS5QcqyjJnHQbnhk08AuUEB3VLa81NITi/0TYIND02UkCCRLAm
YSn1zqazkJAEFNqTZMpfsrUxHhL0CmENATMp7gABhk1KhOxNcd5HT7YKovPqppiGV3UU2lfGkI9y
KTdYkt3soe0nv7HJQhtP3FtbXP0rh03CscEybeIJaoIYnGoKUCOVemjyhJaQJ5R3Zp04hZFAwNbE
MVZiESzX12ZPlNaI5uGIcz607BOiNb18RL2OTRsKlwQkaqS0GvT6QvaP0adx+pxnbLn7KCnSzK1U
rm5ZaRAYJf3x7bAupksaBhysMliACtqdECk92340Mg1SFPx3MbzR4cVRSqFlcFrda+5ub6XyLhTI
iuX0pVM3YgdyJlsfE9OK11iK46c795oorKqnT3QlFnZlEjkTZEzhsLKjbxNkhHckXE/il0sih3dW
wI+CuhXt5NERA6jsjLh7zTJBR1zVSyGoNeQX9U+Ht7u00l2j4KPZS0eS9Juuss29t1LOcWlJR6IP
y6skzIox0hO4xrrfh6TzOJ+cMbYtces/ZCpbRXV0b/LsKM1tlbmDwgfv/vPz53f7xQ/gyRwefrix
/VnQCorjbRsykM1L2ALYKwY7WNkQrn8DG+lz3ug3sN/8lfmI6WkGD6Yz2hL/+sv7z58/fXyLl5y7
vDkMfXpe5eSZL37ibvwUiBEPaJsLdQYbSjCVwgZdlaeZtZVi2XxlQiqwYvRyPUdXvDOsAKSZVLrB
sviiTWwrgXcIBnoFzgwwzEW22R0uFcLKTEjCgvqXsiylQYMbRwcG401g0CUrjZEOwkt6sPoC7fEu
WcVgPGFbGdse3c6vkznSJBz5MWisFo7foV9mSfq722upYbur+pd2mOzjyfNkVtIyAHuJ80420O0i
jlMqgicROFz2obIONL/jaztR1Du75StbPL9Kov+G0y7lqih32nk5Y1mdnkhmRcekiAewgABXRPcr
mryiz0w4tqb9DJ26h85kKAfQYZ7WLtxhbxNCHKUScJszFZxAlC7nsBfiKlkKBiHz7M3OGoPC8QRW
5/dN04fk5rksKzWe3SfTqyiFDy9+BBFs4WD0l2R6wT5uX/4LppzCK1uBfcHeb+J2AhON88kgOcBv
URG/MUWR+faqccL6NIS5m3gGDOMpkI+jBiesZAqAGw/qXKS50D/Yg+5gUKl59yC3jl1IJe8MRIFN
U4GjKCEjyXg3EMLE/MH1TL9M26g5KivHKrnwrADbQgX58LCBKYIWdi3+thlflgi0d1CR5UCJbc/U
YuOVp7+tsjI7nFGO1Xi71jdlXh+BYJKzLjGVdC8r9pnsAZYjFh9nqdEh7oAbPWKMDoYvTIaTc6EZ
MRFZPYjZ7V7P0x2flosbo4oM+VLnZFyahgxXpvJeISQFeQ7RSjCadgdLFFC55excQqaxkXhfLEL3
s2VfO6wSxvGBv471nmRIGq7iQtQoQEKtGy75jsYtWfyiZ4xpSfCiAe/8BFu1j037TBPQTbZARbV7
ClCANUHDLuVswl9ATGx6ndwlqJ+fx4CN7t2J8bCHqO5bL9r22FV6MeBk5BcY0hKQvaRQOJx1Qope
jRJvprqgf8pjcqILGuTvvHpjKWZHGsG/YBLB15g7YH589RUWz/mAHyoxWIjk2Emc94fdAEIe5TWV
DDzbHNfCLc7TUdgRNleND22xUafrUlLemcFGSzyFqp0aLs3OVzwcyf9j72p7G0eO9F8RAnjmkkA7
7PdmgEEwO8ncLW6DBLvYzwEt0bZ2JFHRi8e+X39d3ZQtidVki2ST3iDYXczYK7vJ7np5qrrqqTaq
Vn+qtbav6gQ00I6ShlaNUXznmbWsx0okrLmm3nEaP+jC1PNNsq2z1lNqxt8mTsJ2yn2vipMIcJX+
Js66DiexwSBLDaU45RLqyoZU4BpeIZoYJK/7DwKLWwsYwG+jN0LQWC47WUg70Mxenk+Lw365eDQv
fT+zffrma9cABJ4cvQUVesLTMY1oWUPTJot2HXo8v4NFJcBOSZVD4ITpvFjnnocwYhgVL5kNWrtB
D3WXLQJG1fSafFF4ww+3TRwj5UDwRCeVRimS+CZy/3wsMvcNXdCNHS6j+BtbvHPUpQZsQQR9m27/
7CUwT5+0MAW/7mxl3vT1mY/fMctXowMTGQgFLUTJb+OQa0AF62YtAuNuUBks7BaB5ekDhN0XHt8f
dLsPQpUXECy+3ywPxlS+h2Iu48tNGL7ZmE1wbuVpauz718XeidI63+9m2SYvJ+nADPbVy69ZFY+L
HH7LY7Y85O3oceeH1er5u923O/g9H8p5PeXjVoJ8KLoWRLYJITzJp5ISIjT9pGU64Uz0XLYkPGVL
sg1kjVruS3s1UwW2ECXMKLmIh9Fm5vyhISVb+ju0SQpMIIRGQKt1ElcN+glN00maqIEQQk0MxaAz
RKuocNHTk0LSwKna/sjF7vnVMUuiWGBHSjwpOFb+82Gfoi5+VdKYJtp7/OoqtpuIcXXgAMNhQTzI
5xWwalYUXxf5KWeD+87UdQU8W+Rk7Nj2+e6wdkPA5zmgoc/uByvmysgqHSHtXLJAJuxtGMqwzu3g
MFJ7jII5bhYjZrOGOH+E6giwj8t8+1Izk90ZaHicm7i+t33seLuw41qLK4sm/PpSFE4WK4MMJ4rr
3sKwkr/8sH+4dOjwvXKUs72sWMw/3hXFL7vKlfPUGCzFQst3a1vKOj4NT4iRHOPQ2gDYcDd62Nxv
s3lem3KhltT57ewJbVXsZB38OSOAATLFxnHH49WcKSeNbevRrXVYhyFvYz+aL/AZMz40qJiXd0bY
tQCbBzly3tqRv7hw59FLR+6aqg47MKOzh8XSFiR6U9YsEVdV/l8X5qMceDSIA483x7cbSJRtAfCa
o8m3W9wYcGlcRtiwMh7qOVOcAE1ZNtDrFwq2fWsT0s0Wi2M1j81LTM1jTl9+Q02FlZaukazuuHls
y6DbHEQ9ltoXL+fvqo2qDQgpZAYJ7W9pv7gRDk3eaeRdbkIoXczvSeOQkScQ95ehJ0efCw9k3N1i
nlQKWycpI9e8fKtlSXXZsKuePhanFU6VwOqJLv7uCJTvi+Lu2VdSTIO3fgjMo2kSXRBE9Sy0SKMv
yxAR4PGX5dVlaSLkGzpzJZIOioDnTUoNsE1E1hE7PiuceZJNOGvxCBcVONC6cXK7i1HyQw8DlXJk
gDfP77LDcu+FeIzRwDLOALy1L16YSD3El1zxSVjzZkQE9NoCiaKgVAVyc7aMDsoup5rkeyJJ4Myh
a3HQyfE4MUGSrQR4lwfyVs1UqTQFdN5CY083wKCh6T5fbaYwzvt8rnfYMcEEmv1hV+US4LKBrYfH
vwWts3+hZOZBNchn9BpY6CZFmvQZRpk//nVYbL/6RpFADXjTSHh+RbYN7mAOu32xOvWsfYmKaKDV
44GVB/EekgP3aX++wA3/tLYGOKkPu+kqX0EK2zttjRJinkLIcf3DsT8R9w4scAxbR+/gcw6aQiPq
QNEEnj0LpUXgI0wzkUTExJd2IlM5hgktlGeBs+cjOas6A8SAru+NWMpaQ8mIZm/BUtYaSkKTkaG9
+3td7pa2Qdo4hrSm/Ki3l1+jN/aSxlpcYOEWgcKoDidy3qVtLyHxhl2uQ+vI2xng00pVIEkA1rZl
sYYTd2VhO08Sm8AYuDjoC+dJpwkLnCbR0he6OnL7f405xnsxTUAZNt2jK2BwhgA6/XJ8tEYaWMU9
bERw6bEaAwJHFt6qlvHJjg4oSyX9kYImllRcjWebBE0jLU5w20RNSN+LS3ulDiq2O+vPTm+7nN64
sWaXSTo7kqV0bR+PRa74p8pR5X9458dmLeavuymu59wu7ji07icyum7tI6+MSJJ0bDTroZcPm5IS
SUkU4/8RWZ/ISqUjnQz3WBDo2xpRSVRD4+01wcO/pUQAt01vO9TukAw2Ff85pNpDIm3wajDa8tDf
Qmt+P+6/BKE84S8F3LfF/BlpBAeB5GQ878GlHvyNNY0YCMB5zx4yKEItYwHPXIRe724uNp7izoEr
HicZAcHoQ7Z7qOXDgYklTSz111iea45caDnOuqkY2dhzJWmcaJ95zJgJcLUYMaHEkkiLJx7IxXnE
5MY51fEU1Gs7y3b4VF7GAkfSd885oUmvVLe7E4+b3BjhhpOlKh0zpxorHlQ+FUjU+Dc9KJ8SSWIZ
4AAdrW4WzBW4rp4t6uPwiZY6MiZwjqrmqpAkiWp3CREIyszWbPL1HCYwG+3H8ZiQkCUeMdeoyUCZ
AteM1iq3Geq0wkhziU5hbhGP7K/2xqDfHvb1nksYCdQyDlDC57GQBEbIkX6cpZ0cX98SKoCPkuoR
JVzQgbLpTsK5TOPa2esoPK6lyyUsSeO7rp7ewUdiKyVjkd1LQ+mqBMYeKX8TklBLEDem5qbxSq2+
bYv1fQhjqGh3idzOVdQVNnFtPFesGFPjAFu1WfAqb91I5Uvs1XXQc4gxwxrRw66XDkTXG2Axgtm4
hkOUcxH4/MM6kKvYPZloGPD4Vk6hzngn+nrBbWe4gELQ6C4KAKmasIbLJ9E9L3NDvxx/zPz19QfN
FxhKfefG+PylWOd4QuaGaiQlA9N5noS+oZ8hI/PyR2on9nyGZ/ClZ5ScCC6DejjF9VhfeKrsuLEp
Se9CcI6EVgYGLWB8p60FhJGp6LPQ0JGCkcy4CCrpEVehieKrq2AC1bdV5JaQJn8u1vMp+SfBC5R5
CnM1hnUpvMW7X+XHG0lViabMxLvi+ucYZGJVGNaMJJqcdTEL57Wh2foZaogvibeNEZacRXpFhQud
SOK6nzq0rKHeMXlzHvwavlSq6JvEUU10qTpRHc79xOWXA5ZLWiUodS3rjtGCX26cHU/Ib+LI60Ab
1SP6SE0GNREiiYSHpGd8uJxQpYfGQ9P8aWPZHPEOUjWhLO3bPcPVAzgFm/Awf5zS/5iH9FCnkcC8
eCzxS3nvZ3PBP1U7OSmFUQSRXl94Yn0eDZQu8/ts9nzRPRgyUVUbsGA2ox8j3uo+vcHyu3jNfejY
EZDdFof9n26X2frrscS//EAlFrMV/pxFybK4W8cyneUpjeE8HTGblfCxIbhvBJGKtCvSk9yUrHdr
c0KjfM4dYMR991AclvN/bg/rj8/57t1st/loxdpI8B9u2PeVeAkmqENZzThSysLo37rAOLSSi/Nk
3HSvSEQ8gGDA4Kz2RpgQ6JRLY8Gw1KMKTMR2Q1e6ICIMKooEDhWOflKz8USMpW5ptJRQUMdZrKDD
UwXCogO9I4fL7fPpVa0rWUVZs9mEBfUED455mBfzNAEdZaffajFm0jUZNNEp2mgRbsiMYhfr5fPU
kRkibKBEWr1tk9O+zl3U5LlkCgRZajSMwFUcE41zexNgW0rpWKhtXVjQdmJOALphuI0oMeZNB4u1
uK/iicVFijilgL72WrHPGI7weIbmz7Nlnm0/EvxufUzBErFgQoJbcyEHggl4Zg4iEdLbzcz9srjN
ltPHbLuAloCdh4TZ2HM+lj3XbfKxqFRbzGPE+BFSkNvsfuVjLNGM2JEIbw94eWFXmfJ4eWKX8mgC
Y8ZTC0qTvh2mOf7vnqp1a0Daz1vsamU0q80Jt3EoTfnpMgi0MSI0svk5xYztCSuSjun1T1M1IAju
4w4DvDc4LX+PAYFEdxJtLHuGXm0wZae3RroudN1+LyeFNnQoHuXqLWRp0YYZ3VLmLrPtfT79dQek
evdGbdHJNVqnQjAgGdCK9mcfHdUpvOdifbD+EacElvYiu0ejsdkuVov94tHTywdTutP46o4uTozV
6hwxAjHZY56tjQfYlsTPaOtFCpURvVuV5WJ9WhR0cucEqQhjScrihbpkhBZJY/F4s8nwH3xNu4ZM
4RKMkYjWtnx/mwmcX1wFlBMAZJKMacu0TsayZYqoni1Mvp4V83y6zNf3e/zelyXMhFI8TgyHDyvU
7Ra8xsjkT5uiIckMsq5EZBOwa2sDAPWE7JEMMfzz3CGWAt8KysDuK9llue5qzxtIhGQ7vauVC1z/
yfUb4fdBViN2+BRZCXcO6vrValV+le2+urjLrOtKn+2kIVzQFGucqyMHCr1ihFwpJ71L9SqfLzKr
vnW5WSUnLJWtNvZk3rXbIie6yxziaN88YtVCjuot6i5bz2+LJ5hD6x7jlBfJ29UsTMDGtOqoQscN
cFKc70GS7N9/+enHjyXvplkNH18GOVhGkg4HX5XSi8zRqtjmzrl65tOaszcmNel8Jl671nw6dUBP
Q91Z0Jy5i8dzwv/6VO5rSweNzGPXJDBl37DK42KeF57p1yThMHg2kT3b0d3h9si2bsmVstneAyWI
0LLde/Z32EhSjzOYASHFmMa9UW2cvf/hy0+f/vbXo71//aE/ld048oayJypu2PdUk9+/R6q67L0L
4cPYQNzuWUqSPqGDf8wzAyYvlpLBJa4udoSeZ0JjWt39t8Ust39zcQ1eCg5jg9LBLa9HAalKk75g
/H2+/1u2nz3k888///zTYZnvKD6Hm9siqm7Qo2HlqVcQOOT0KZHRVbEsxz/yoX1bLOezbIujMcgi
E/2GLCEuygj6vaH0xB6ab374cENF8ukK4ihKG6AyoemEa5iTPpzSeE6v1sLAlQRPIgL6vfHyXx2s
x8PyNPC6qqU+o3lRmbazZ+2FkXn1WrOuDg7mxhto5Z7De9Zw5cwFHV8ePWZdJbo3s14+QCmbfylm
B1+cR4RS9gzerh1jYXYsihHTNuCXPYWeF7JqN+d5k3+0X13qqAKKNd4lg3ZeLrBYZff51D2AvY20
Pba3z5vMyA1MUJt+g89BOhHnPZUy8IKjDx+Mmgs7qzBG9mWf2ekRi/u1iSbgSezelCNHUUQkSNqD
6fIIxlFxnfY87T9+yRbL6lCeQFains1ZnTdVE8n4SMrCRMOk22aAart9UN9BJiKogak3f4nKP00D
+QX7PXJ/IoAMJP//yHbYUCoV1FrRqzHAc6XEFll1towwWXib/+pI54t9WT6022T4/DWR6MBpQOHw
aVGDn5gJeFrmn4dBCsEBTwSkoAApSNmjcp6MoH79a4We286ZpiqILVr1v3IqVWR7v0ANfmpTpC1e
2gOY1/Pc2L35bV2JsIB77aD7XdWo52bd/7M7UEMWJ1I9YUEkG6qt23nVHRxxETVhrMUT9IhyGAlq
HFTXWfliboLjaf6YvXb2GDGAWdnbtfme2yJ0S+BmIMjoqhhCT/lFlPjpTJj+xxFYRlF+O+oeXe5S
bCdAG17nJtR1ucJSdu+K7auiogqj0gmTXRSmhwegTA+kLx5UJGR3E/V68tOZAUFm1UW23E3z3Szb
+K4nma0woa0OPg4+uLRuCDR4/Ykb9umGKmKgAfxj/lQ37Psjddv8mEJxw8YtPVsFAyQUWmVk1+M/
P3Q3BdMHyHgYHVs/uk8Q93/RDEgGWt7VGE1Sogd7e1p9e3lRT0UHWr7sstZsuLNnyNtf8JiygZY/
DmsIY//rZ31efX0VVNTaGZbg9ShSV9rZ+UCvX24/SVIRGQQ501edsmAwIVM6IizGGeAgyGeDSZxA
JO6isE8MtHx54qmWvYdbeAFh6BiNfl5VYob9XLflQMuXOx3GEN3P8gp5+4sqEDXQ8g7UTJQiowac
gfUVcSwbVYL1id7L5nLUiyiYKdAwQzNmoCTTkSM1+oaCleYAxVWu/ddFKPJ7vEyZKSFGDUMZUXFM
+FGkP8wXW9KYn1Ts/CngVIZ9EMcGM9GURd8O2rwdFzoXaTto43ZITod5kBmUw3ieQXXNbG6WmVkb
KFihMTCfLpbATrXES+hIaGtGOGwt1lY1//v7/7X1xHi+Ugb2QAb7FLvmLz/96JoIZtAKMzvYPsDd
Mts94DVHihtno/rENdt8la9uc+jJnE+hiuFbsZ2bwOqw3luW0oP5KK4FRAa1sgdBWUtUON2ZQ4Hy
ijqCEZjNdVFSflcUY20BpZS+jcPggvUeSK8Lx5b7jDdSGN+f0J5136v5HCA1F2n03Q7c7uStPAnh
bAQJ/POsWK2y9RzlSZ9CQVwyJirETPo7+Jt52I/muxcQ0X38481n9fcQpFh7h53ASJFE9Hfdd6ki
cCp4bZlBrCpWIHJmodHlCQ2swQ12kevisPNc6mo5YVR2fFcrI40vxhW8XKqvWSwEYLm3g9PEv+vR
94Ty/mzuYTM3f+ym2/wu327xvaYaGgePPCK/+91I73+Em5L37udcIgGurneP9yDtOZQtea+MJLB/
UBEDg5aPcJxTXZHE0JHe6opi1s222BhDt/BxX7Usn/Cr9bHz24BfD9mu7FixUYMtv30lOHGdMIKu
34DPuhCBcgrW473zOy+TrBD35fxVUvFQZwPK7Rf2t1UHDUyEAbQt0oa/7mwL6ElfaPmdalMoZUIm
gRQKrZT4yF53DCI8dcd0QtK0q4veQ9ekMRerqbOmllgCbws0ipvwkX1zi7DRQzEPxQAfWaLeHbnm
7bX/F/PvC+O8+c4553wTE4WVXhTcAP3eFCjpBkvnZ8B6huR9iOzV6O+2M4Mujwb4uXZ0ElDKXtxV
uqccbhdekk68N2yLq9AUNdFEchgR0UJrQ9vJ8SZyg/0mLAjP60AP6DFJPHDkmO7DLuLJFTJhQfdG
+mrHiztdbrk866yivtrpvugWeN1/Qdmy07OPtgD5YqCkdZcn7rHiFAWcTNA9ue5F6XDLoy9yj17N
j/IQbg7PRAWVkPb3BEitkLpIOLmPDfcYpQlMg9C/DrBCSxh4fewc8XYNqMQg4qA6Jf1m/TcljA4q
PlixlaqKDxvwMUrxMcGjGnQrsMKrC5vmPjbcY5RbQRI6rFQgFUGXKQX3seEeo9wKJYbdCaxiR1aF
Qg74GMdb3mRY9cCqdxCHqwZ8jJedSDugMV/EgXMVA+EcG2zffSHWhS5mkZGOJ8bRQ+8EVhdNkHCP
DvkgLvs70UEliz0+A8OqNmn0yKgMv3HyIhMIXHaJZrHhQ4biBw33oNdvxkkEvgNTAG0di5KMcg7p
f/8MUg5MJyRNhpUCjvknRCX4kA9SnoCiqs8A4JiL8HcxKi0Cy3l7fHEMK10Un2SxwVKGoiVjlJga
djMwuHRRvJ/FxksZCpjAQuthN0NhFppUN0MN+SDHzSC0k3W8ZLLYP1XrGxhl0ddomjKq415HnUDF
akGtTadVcmkfvnz64ccP5wk14AloqpigE8GpFGOkNzbLw/1ivTv5TStjoqfu2+fj5VwaQ7ZRNTw/
uirm2XI6X2TL4t6WdqAsY3bmUXf1vl2ss+3z9GkK1+vg8BdrPAmslfE0QZfsvaAthrcJAXFsNzU2
Elgsl+5WIbszgu9GP5jtWDxCvYM58YeXIUjThe3OvVuYj1HPpTQH9qaevP7LNHqzV2vHUIJzzKUM
rkx7NO5UyO+MLFyaTSEnqg3AQw3I6n5arPPtttg2FNUmgeUMDaK9LG6n5RfT22dz3ttsjd84EELc
EI/fhKmhehwH4Ds/pIJudf/CDpMQW4pgfy64lA71BYli/b34eb81N65bTwSRrRbwXMVXDDl+gckA
wzM+mGn1sl/1gBZvt8XX3M45q2VbF0ANqnTczfaUeDAYkdZrGse988v7Vge8ERMZKvobuKaBUl78
miaMeu5KLwAMaeax5l5XwCDDkHRPM82y2cPLFJHS7bvOK/xqH9yr0rEUEphr7XX7bgpF1fPT8dez
h8Vybm+p0bnXLbUUB5rOxdTe/MNAQZ2O7m6qglLxM5/ZzSd+4mmcawGikfL/KMSvKGPzZSJ6DKjc
ahXfktoZGz2au5MyrxIp4IOCQH07yEvX1SlV/ZuNdbGefvr58w8/WHGgLyPja+d7CNYufPGa/c3W
yPHUWZbjTX2ZqKtSOk5tmVI6hiFjhI1hyF7LbbyGLO07amqu2QKRTFkke3YuiHlZZ2St1B9LpsTE
/PfHFzBM6YcbnXw4UiFVgbClRqzwi09EwpMey6MSBApz3uVixVNPvi+gQR/ngDWRfVCqJ42knkxx
ff3yV+tJ+Z1gj5+C6SIdHizMhuK1pcp4LXb92qiSrotT9US1M+EkcJxpegW8MYLwaJuktmb/jXeY
7ov7+6XZ+xrcQxKbM1ad5dHJX/FoNn2B8w6nhMlAN5kGN+ttls9IGCKNWksWeSE3DJ4HjfPqvk4Y
TVUPG8d4MtBCREdeiBMK1wgNhN5pR0Q4zXwjwqklexId1LynZ0gGO1I1zJEGtVn2oHSE/7voAk3k
BEZLq1a60GeIiznkd5HgIw9jG+vjBBti67QrTmVJn6DRyPdlxh0EnnCieG84yGICFAoIGMkmRkGh
9eEapGuFGsa4pANBIabSgRZK00HMP2ND7RxnsQOSsJwOhyRTMoxvlXoY8adiqEPkA/hWkH49lJrJ
vkw0DON9GSGLWmoohhBsAM9DKRkqIMYvximUfcSCR00Zs/cG37w/ATzKB3RUJaqeCBbWFNoQwD/k
s6/TWbG6Xaxhr46T6LG9spNMG/oWr9qrm7/SG01vPn2+BD7M9o6PGb/pNxC/0b4w2abAHYzWcH9C
ogKyzWaZ76fZdvYAHG+gBb6SLy5l4ESi1HeNDO9s7No63+2qHAwpV5TCXVVPKxhbXWwRrgcmjfXs
tq1BGAKvtWDtIEPbE0UPkkPRtupJeLf5LAfRybbb7Pn2cHfnoevhDMpMSL/OBK1Jp0njqIrhI2ok
oO7iXbhmrFdL/+Xme/PvXxBLL9h1du4ff/+5+WLk6MeqZEoGR5lING5y0HtdzJMB3Ir/spoNYBjA
xNfbec6u9q9dz1ynE0WGFTNFJurK7H0PS8orHWhnZRITmUYIl/fbxeyrh4ATQMvAb2k2VpFhJZYb
iWXDviUQKQ5uiwVLe0YKUBiNV2UkMLqcDGQE8TpU2si3NgR2OFGvy0ozKGd+f15lFjTmEilqTieC
8zb7XQlSD2vI4262xf0WZs7mj9C8kD9tzLbn8x/z9T3OLgQUNlB73N9+Y2XVTCR9oc5tDs0YMPZ9
PS++WSohN8Y13+89WUJFJUxzjinUNo9+rIH6f/auvbeNY7t/FfYP2Q0SWvN+GBACx85Fbps2wXWK
Fi2KYkWuJMLkLkMubel++s6ZXVIUObs73J192G0CSBQtamZnzvvxO0VZgV8xpw4ZvdyTQbaJki24
AecCBbOJpqKlbQeX8FRcgfPJkJoIgsIpPYgUFXDoq1XkvGSBPCsd/QSlhVwsbXzGCOfT+Foz7jLd
xhUnaaSDZytMcNqtr9+jHjyFkddxn0zDsAdfNS1Z87pejdOFg2oJBz2+mi13mfn8zQ9WX8ye9cXj
cfsLIf/136/+JIXewHmK9hRowhwuJ7y6TPGy53t0Vfhhfvn9lVT4HeRwDWisET/UZzBN6bK+5Fy8
4y2LoczOp7GwO3rGPrOeT5cvVwVHgqUcPwxrCET5DJo/XbgU2tVQQPwy5JcnMghRLa79mP+S5SKJ
Cwvnlz/+5dcpdGiWURyjAF/IB6G4+pS6xG02VmEXHaBDoXHCDQuPNRF+ScAaontuVZ3mtnNZzF5x
7IeP7ctk8eYznPQicz+gBGwWGpKrFsndIllksbE70/WJdWXEB0xzE/2uJzjudz1B+l3Pp1Mv4Hqq
CX22WI/rfp9PSNHvepr1e56E9XyeneqWJLV4TJXYvBC71r0+tPZJoAUVAv0KOY57ZhLUr1DltGch
zvqlT4lJC6a8LM5B6EBuaLUZ7ApaPjuh4sqIDJl/x0jtX+DiBWb7FyJ/wVDxXRffsRuigWmGSLjj
cMUSmUQBLNb0U4m/gJnGzYzGaiM1XUPE270kRdCUeBnJ1uQV7uMMQqLT/Emh4e3H2TKONjfY0fim
sO527fM1idf80oBrYoh1iybGXbfQQZTJMG7x0bxbIxg+vRQJhwbIsrIYDn3+iPVgylRhkDBp+IAP
wgdAHxQzHEC2bLa28sSQSTKPNvPpNrqLl4stoBfs+7a3D+luCXH6xf29IQ/z4bvl4v4hK2lFVMqW
FQYKFRRUkvvquf7Yo4uUIH9BzZRig7COW0YDKgiR3VJrUjlvlFPoYSMdqf7pzOzn09QQkNmIOYgn
sAXi5QrQDRPzi5tfDYvnKj76fjG/oh+e3/7+wRyneSfX1I/I/iei4kdR6PhHKc7eoft39i8k2b+j
9++g/YvCRHikZ39ZzPYv+OnfOXyKqP3H959C+18m2tgWoEIBGzA6tzOYlBNuvJ4GJl4JnM4eReft
9fUBP+ftS/ScksqinJVOUBpzG5RgLBtRxyVL2cp3OZE0VFBtGxuSy/kzjyAbQbZLSuElmBK2S/qC
5yyPWIPgPEhCl9TM58PNnXlNY/RXj7jscR8jOY/L8mOd7UNoNI59EBJcYZyI70J/zKMsAoGdFxve
wI9voexlkefIrh+nhvc+LbI8X5LE2XYWreMflun94g5YLZ6/Mq9vfn/38eM/vJpt1zeQcjRKCepO
QC+9PnNDtdFHMK1iFOcscB8WbRKtSjSzyMtIR3EWTQJzlXiQU0MZxmQ8L6pndhoZ6s5IdFqGVMEM
wZHw9zjkrmAjkf/VCEEjPI/ffv/jr7/968cu94LYePYiRnQunI9nL5iOZy8ED7WX6x/jRzAZFtny
6R34ob/kv3WTbXbxObNXjyHvitkv26RgdPybVFSMf5MSka9gkxyNh5H1iPYiu49cVURZOTQ6KTz6
yBVG4iRRhdXpG0XMSOvTxNU+moQxOUllcdU8/UVhnVm6fjr6cZ8Nq4pYCTnhSCk8GhKUaDw6lms9
In0/IjuoVWbI5cwVtYH7FpeaoD9UntPxmKhcjUiCixG5EWRMmo2POygvkRoREY1oL5yMZy/0K4vT
wnArG6Z9NsLKI7UwY4S3Kk/yj5DuUYxKE/4KBU0bVeNPYE4ha4s6VWpOTQajfbweFVdn9o9Xh4lz
5uXf864X2wtkO6hKxjQaK1P64TifbsLf8F9Hm2iVowtUmf9cGoO0WvTg/+OJa4SaZLC9EtekBri9
hgZLVN4LajyRqsUYRuPV7I052GM/a9veJgKNH4M8s5RDnbVXjxtuIFk/L2JnKSoWDCY9tBIwL6Rr
vN3avmrD7ADeXzkjhkyol9JuKdpWqXn6StkmkJ3u0J2kdz6/xhzGIDcSqfWQNSc3UdLK5Zn763wb
XqMQfRRMpW3jvnxzCD4DXvz5zg4QTJOVeXTggfxQ3IUwxHO6TFseODQclswjp8RIIKZbbKS8sbdi
egdhE6pEV8Ine1hs5nAA2VMV+wPQA5Hs/02bUDV59RYNMe6MUqRXundbtQL6PcNr+zVU8Gcn5n55
HzcgNIqawqvuZbDP5LoettGFpZukPgYY4Zp0YuzWLL+3d5XqRglGq3W82RoR5LRDsDR+Lh3KyCdY
6tDK190uw8hR11XvzymbGJiXiruaTgkQd+SQ0gx7BHvA47xFyoEgpCaSq8FOn8uhnlqxwWhOdHTX
XmytSSi7Dpj9z5puZman2o/XhHsWyVf0nUXxuSLq2hhM//Hxo/lWYzFZ4CKqfEZcNBchNR3jFOBF
tQrrJeecU2USUAiBkia2YrmOiFfr7MkdbwWwY9WVT54TshtGVntinHS2Om7ghl4wgz4fog3dlJiH
t++em/W2+ahrZ7eecXIZEqLz5c+XlawDJ+NM+fyYv77593+ePj5sTpjrLKc0kbgje/O4bZS44ZWY
heEfjg6wYEPQgUCiaxFeFeYhxvO+UE/2Q4qsphusW2KQWA5BC0yO7CKonHCNB7wIIWlIPV9wRpZu
LdBufjjuhhQxcvsRAB/z6BrOpe0V0qfWpDElrxC31qSd4FcVgkNkwhESOKw5dxbncDmhiks7Gqgf
Oeg2ZY0Y5IH9E2do2dYQdJa+t/UDL7GeAEBwPxwJTmKblRRycG7BQwYxdBUa1NDFQWWMT55HEOk3
dqittVUa4KN0qKCq5HTAmCrGiPTMfuUsx+x8juEOQ1I9HBUMtjRUBn5tgaEjVV4fGDLeFB4ybSH7
cCgc7ivRwTS4N/wtwdAHo4OaqdnDxg0UZ4SXPBIZ7mVIh0yrxWBLi9pcAemOpHlNky3piKQJ4Wq4
yx5sae4V2CYX6ei1/Tadp1DSnGbT6O4OdLaFc3fDPpMJHZDVmB5sadnm9CsM08pKcoYpTHS8fOUa
/3O2iS0KWLQEcb5aOwEohDCLN3nsUiHuLu+CavlAMvQ22i5m9jqPXuYtL8bcYBiQxc6uVtWAbHS7
OL3oyYe1u64Qyk0v5GFz4QlH2gvZjlzYb5J3Mj1LrVWUzR6m6yh7KIEdhZGgXhV0F3DRcxfOfexk
Hw3Vgl75XT/22XzeA4c5gygwbUKSNqddZevNIqMTIDhYNrVHAoSs8jUIPDqdys/aYYwwYwXWtACT
hhVqdQtz3QWJn7btuYn9DKgIc0PqXPBuVBU0v6+Xuy28cGsrZOvjmsizIyFWmndmE8hHBeXiw/nm
fXPb+N/+9qvToxGovnii7SVbUOqndXyTH/pJhyWVMK6Q0772kD0t4+1DHJ/tQxnJbpw72SHZF1R3
uB1rmxZVF2dET8hEeIHmN97N4SjcO5ptz7ZkuLCJwikR/VleIT5Ll+6iPQy12ejrsSP8jQgoh8CE
90Pyi9XLbJ+ldmO0cSxET1t4fNicsT2dMK37OgObIDjbgppwprwGKjXdSJGZcPKXO+gD7TC8tTao
75A/rJB3yJd+Pg+HHRINhQsAj3ACmZ6PHjfKDOEetv/c4C+vXZvAbYyFl/0syW51axG3q7pZsDLr
dqk7IIHvJKOzSisBwsWrn6eBsQS9+e60qmpmqLe4eULcV4862MUUMAqa8hBY2S5sCdXKpC2jmHuA
TthMb5/W0XYL3s129hCXDPOTMJST0HA6tpRefvyzGGD5+o+HxfaKIPslglkj5lfgW47B8fq7s8IU
qEzhoayOxWq9hBqYTdmMO9KUkruErqcBWCv3ELYwBscsCJP/9t6BHb9XMnHCaCPPEtxL6XSdbjJr
f8XJXWqIx+GIwixbKVk3ogxSt3EC4AfuunIoB/aqSWpHB86wgx3fcJkIz8da+Fv/0WewS+ASnJgq
hg1Eh+rsPp1m6dRa5MUmzh0g5DvrhLRBdik9A5hsj7kIkxYwqyyf3jyeR6PVhImvxse5IhJfEQ7/
m+/yiv50cTsDQ8aJNG4d6kqiFLVfFqrH8PjC1ZmjxUQQNiR7YdmJTPWkbMyMWsHdyNXSEBoXXauw
EvVpZCnzkeO0DbndLYxZ4SY3TowWY+TyHXg/vRs8SRj5KatTi/SrjZ8g6TXhkXbGwH4TLWknDKyY
AMuMqhY7OLriIgxe3GhVwzCF5GmrZb2YyfyTpax5al3duxR83Wf398tDDIXlyRy8mwophyf8QrZr
TiR2v4cdGtumnIAokmYjlDURSiciYV/uW2x0CvEJo/m2D7dptHH3ARNAnlEdSYXqAZQVdFZICjty
0v77zevcXQRgCfzdayMF3sPbJSLBuLFMUy8gmUv5oa7ElloHSTYgs5O7XG/MKb64ScdQQkjNwXS3
yx+0yh3+UuILYyE9Xc86Ms2KTGseD3W6mtpOhsLDU+bZjTuJ8wpxoE9UT5vKXBnVuPUpnjwZxMBc
pWRg7vBaLItAS2GEeFBaLIFCBJAU3gF3V8FDMRjYx3Vo6ncmYjWF8tJQJ7m7rU6tIZhCLFBAisyf
EezgskcURk4KLoZnb8fQY2BtsEkNX9+mu+zt7TJKPr0+V0YfbS/Zm7tNunpvhMP7dB7/I3rk6gfz
hdov3313Da6wUW7GOba47/SnOgGBGTFqWeE22utlyqJoUqhJWQhwxttTdzr7FZBtN38pu3nMKJQa
kEDUnaXpdJkablpHT2VjBrVxJLsxByoLG6kAODsdkq9enG6OP+xaGJoYGVIhbnNng9LzdBXl7Zul
c3drIGFZH8z88jpKFDXyV9TMD26Y+U4TXhvNacOcDluOc0AmQvqi9cr5YpcYb2CRGBlcLfshVelV
/8oqKSUPnU+LH2003Z1B0AI3W7Du8p2MoKC0mLZ+uqMbtGa5eXfzZIdB/+fVX95vFrOHU5ccYJKR
DHaXCzjdktnvAvLNLc6zZfBBKwhfysGZv9px9NHVtZoZQggUxo0MQU9GNPCQXLOOk+00ib8UZbDu
xBPMU2eDPK5QknVA1GeBpeNKSSdsF55IKoIx8iraftrbxSVetuKeAIysu2gmacbPR4VCt/GbdXJ/
lj8mxrqlTTgoVLLDmCqYKT6MSuADLcw04T0wk5N/5ETUQOp2qx1ccu5VnqT4kCbxDc51xj7z8LO/
vgA1cfjYWS2NgMSmCmcCrKPFxhzzdrfZpPfGudtOoZPQzljfxNHWDbGhLZyJHFSYKMkHZHdjnVCi
O7Bv3fUx1pUmYfT0KlrepZuVuXTALnfat8b4gkbRjlj7rKMu71jNMy5G+nyGSpbbTfrFFpbFSXS7
hBLE85QnYhMuSYei7+oDutJ/ufqArxSC1z/9bL8S+5Ufvf/OfkWnDqwCZpW+Huyhs6c4kGNuiLP3
RV/vuYtnmIFzocd9DlxjPIi4dpD73pyn7xer++vtZnZdjOkpqgcxxNfo+1Omhx4Shi8yYS6/ScaE
6Fa4F3AyTssccMIl6VCuepZkkRoQxe7UClWYDOf1KojWcMLHzcu0UaQlUMkiDeWvPgsG86YNZ8Uz
C6Ofz4ObYqflY6QA9SoKqVH8nyH+aQfQGdEzvZ+VQIrrlno/oCLO0vv7EkUMUNA4WIgR0I4yYyjf
7jKnlOKQx9I4MAUeJops4rKAv5L5EJNuFQCmKgyBt1SXVVzx0tN5/kz+S6GcH/PD2nz7690VQU/p
Dur3Y6jiz/Li/kKRQYV/Mjdfk9R8+afoc/Qx/wPmfbvud/YjcZJ/g69Q9kXQ7+8+fvz5wxtYcn3u
ahFurUukh1FEBAk+rB4C0AWPHXBPljbyJdtEi6VtFlmWtMIrDnEcdPmyTUjZmUlQyohc1mYHTUSu
qy2BQJtRNbwGbytsKPMSNvwiW6OYp+oqLMJg36AarEDeFU9R7FWpx7vhKWIzcbj9eee2QxZtStAz
CJHK00jhA2kR4qNFyLeiRRCTIqAkXUcbMMjcvXbaXD2iXYmvNFk+TeHoiztyhWaFmgivgibuVWYC
1Zu36aMhi0Vp2Y+kfELJZbwdPB5J1GCyRWJtZIsm7UXL4yxeA6O6sQmNAIW6v37UM3WrZ+kJ7+ur
s/4eb9LpMk7us4eT/tn8YqXolptWcRZNoddhcZ+kG0vmth59kR+Ee7wBE56te74yxULNPkOblRR1
mLNnbMRqhfqoFfqtqBWqtQjA8cYqz6d7xRlYba6bV5J7lpx1xgdONoCuK84biP1GpVRyggnGwbnO
gjYVATon28FTataP0GVOoavZxefsorU74/6ZlS22n7OIi+EJETqgcK/GFVymxgtzAAsSzMewCdmt
4ileQ7XKamFBHFzV91TDcPh+T4M4MLbZS3fmNpongLbT/06MGkSDH4fyalkPuAd6vgct1OB7EKrn
c2AOeFsiR2wSMR+TiH0rJhGnJw0nPckJB1kIogYnTcFoaGulxk5RqlOdtVvfbwzFGt6wH4pL4g9+
AII1xorthYBU0HQWJbN4aU2XW3DAXa4xYnxCERsyBEGQEMOFIGDSOZa4p9g9dyZnAcwFi4Bsd0QE
WVrQgTsAJScS8VDMto1heFpinR+oNDRi+MHIzO1D9Cl2P7jybF1szHplkT4mRqz8uI/y49+K8mMq
gKGeU/wusTRvxV05cDU2EscTvqrDuCuVgwk9obk5hKA26Mt/AAGQ34VT6jAxESJUQOLwJvSmb7PN
bmZY7NDmtS2fH9MkMBSiFIOqniLRojRRzFlXMncLbBigNAfjM9/ZvUvhlY05Uo3RomQkobE8vWCY
RCVL3BtCnEfJfbxJd9tDTtk5/A6AObxML9E6X475ZWdZE26Eh3weXlqyJsWsxf11rWOFj44V30zM
XVJ6+WUcSbsjWgO4IZBvOXyqBSY9nZ8D4IQwtVYFWjO/pem8ZAoBpgBvSxpQeEAnxiuvJbqp0RAw
0JHLBtKrRqXW1mwgAAvXLITYfLdc/q3AbPulXGwSDtijXiq0nLKAhiFxc8CkssEJZ08J5xPGAwmy
Opkk3SaDUdiEdkBcZwo7z6Y2bGthik54y3t5KWWOb8iNnAhw3qQ17T2vignHbo9BQqQgOHutC5y2
yJDB54V7BgrQO/Vqnh9KlUofVSq/FVVqSKQXm41ozUOI1Zcy1T2700IqD6o/sUZkOP2pmW3G5v2I
eeX2y4RnIDaomHcJckQ9B0q190uYF9axj1A9qoeaZvFj5hbjtgGYD0nolGA1HKHD2DQixJgdM+Wj
TdS3k/lrEuU4kfJwKAd81YW7951QbuxIpDoTMFmU7WAWzjyeWl609uPOGo2wV6cxL4Af1WV21S8/
v/vgMZTkf4z1+JDOn+eSVEYzit+GX34Fj3BDEX6BSoutSsY45FZfrnsmKUSnGvEeGvjAtJ9t10cC
45Rxw985wRICsGyUl07O5tAILPqxCnRp3bDQPVIdD7tasJuhL26G2p2GdP0qj8UYREyO8ljkGXa2
H7REKPume3kBclddGL1syQKUdil4z6AE+hG7AD3EaLCMytbINGMb7ecFl8EEI9+K/0AGb/cHiTHH
E8ybxLZPCHJxN12lcxhuNZ+aNWfxFDl1AICoCxlW1jl6RtiEcdrHKhh3ZYRCUbBt85o9LJYVeMsE
Zq6oADeY3KW/Jb9v0nsYmfYzBMvLCw4UGrHXpX28Lv3NlJxQKkZuW3uTMqBJYT1qheX9LBJSlWKs
5ovvY0A0k/OR6jzfh7BzBTDTNICQtIDrD6XxZw19OkIHcrP2/VgWmmc/T/JoDlcJWB3T2rMXV7bS
TItkuUjiow253A0CM9j05Xs5O3mjGmxuKba2TsmcU8iee1XDye6y57SLk/cLimqCbDVcNSynvFgx
2/a/NQx3NaoIyPL7Z7SoK/rhipCCOs2r74tHyN9HV/Sn7w2dlo0B2wPRv8mB6GEoGCEO1E1ogmLI
K74mm3LWYzG2Js37r/dtkO6+Rzzxm/VyKVmfJxeM04ERFROJKKWdM3UlN2NurkGiDum7kLB2mP05
MB2GwQtqUP7GmuLB+FtpahQZ572z9wlrnLH5PE6e3IwL0OpYcBmGcRPDNDD00xDqlw1MSDwUqkKR
viGb+2kBJOken4EuJp8LeciiO75so3bKDy4AyyHwPZaezn40d463CV7KZnaDLZj+MermNYx2/c7F
c0SKLk8tH10OxcYRiEKX5GHQakjCHRg+rfIjasIIGlS0UK7pYLJFSgoBIYICcWp67JoXBiv49q66
IKbtmJnuKKyMorzK4WRHgYzKI3o1X2yhPu3oV0pA/a4hSnBdCVoOwLme4PjdUbdkbDDiFqA4sdLB
N1BgI00jO7o0P3+L8Ws1aO4oEudsaqMXRTBeS3K0/hPnsCI8wbknokX449gPXnTrRRiS16UDVezQ
BhuK1zcvdmuDcvbn5zqj81EeE+FVOqfqL68Y4havbo3qthOXayaRKgaNN6J11fCh8n0NyQ9bSbV9
Pge39W/LpDkRuMWzN6ccp+7A3HhissV+SpNB5UP1GGAQe8UZVFdk6iJJhCrtI9WRHqun4Fdg2T0V
xffTxXw7vUs3eUX+zW1sXtsus1y75X/NcOFifvM6/wFGNAKGwM3r9XJn2BF+hqu5eR2t1+bgcpp+
nH6Jbz8tjAqFtr0kzrazaB2/LqL0AK90+DOr9PMihr/yOVruzM9AY2+vrw/X+dYcE6o5oPlutXp6
s/1yd4U4/KnrfCF7CsXu7et2m89N9ZAbLK7r3EjgCIBmJJOd8XaOs3SiDRbJQwzOynx6+zTd7m5z
neXSmFBj1pXQrZz3qKia+HlA4c7FdQJEe+YUmm3jAjVNpJ30OQppczIb8msVNVcI+TDzcKLm8g1W
ixqjtYfRoFm6nj7bQp72HvcCLg7BeO7iE+k5fb6B8HOKPEI8+yi6vh/XXXjhkze+C58AHtX5/K0x
SMBv38Qat33lJ/GkcVX8Jn02JVxz0ot5hRDB3HdqR3CezutdXKzcyqw6Zwpzm9M8h+R0FkGMSva/
7F1rc9pIuv4rnA84lalVrL6rt8o1lTjO3HfmJNnJTL6cEiBsTYTEIHDs/fWn35bAgFrQQi0CM5ty
ORhstdT93i/P29kZrKP1GM0mbDkB1MUBrN3MFTJtPUOOxdfTGYAAsxVIrXivMpmdK01NrXS1bHbE
RVQN7jkvgiWQbIJHNWoH29pA2SbcWd5Tud/5XbZIRv83W6RXj1G+f2P30lIRB/ojvxjm06tyrSJ9
9CzN0uhZBaOYA4NZzYA9aO9XLe5apERmYG4GoDBWLC6thQrYAvvLbhgA4lilT7ZWrtbSa/5dlsVf
QDE9nGWfvOzjN+oL0nrJXZZDIUWzM9UZA28a5rmnJIW3DkaxkWwv6u/lnuEnhxKv7V3oyL1Qxu/R
SMp4rhggtsRBO+HI1KshQAc23yich1fPnq79zyKntFWW8/zZHvMGM94TkgTyL0T93KpQvR3ZlTOW
jcYCTNqzAjRsJMiMvYucWA4TlpYx9JnOK+wKoRPEe4TSM6AXDbNlog96ALVv1X9pc0Lx7xKeJk5j
c9k9UcrFrsP8IIIEs1m5S1E6ggaOQvHXTb2wMmC37uKPvHC8nvYWfrwLZ2mU51WhL6lQpjLF3PFK
dQNPCYfxCpJ8YRn/t3Lka3UJUdKIEcGayYY9MG8l9ZvgvQjpBUh2yVlxumNyEtcpb+5IzkMV3Gp0
pzfIRkZHlGBpmf7fJ75us8W8ZmAJVLj5XbtA5b7q4kUn/s7KpdNejzYLFc1+1SevIFa0+pVaJ4jq
JJro8sG3brSy8zAphrTygNdHJH7OZp90mm4UPUSj0WCXqayYtmeHAiEtO+8KClu9oVW9xlo3jIXA
eHNlAHHufPGi2acXMOpYeZTdqI9lYS7GulwTZP+VfbPa5WXFkGA9hoRvt1PYb7FTsXoyaGqbg9KJ
RtU9E1tFLMVFjngfy/ERW+UsX+o+tnGjvsypIN+mf2n7HuyVIUjNZetQVNdmSlnQozaw0nv2osQk
8ML8MR3WzDPnGrh9B/PWPuuaebEuMQudpM22beFpbtfy7ebdHuM+bFB1Gp79mlzTPg7g6CdQ4LAR
skyz9TDjDg2rpLyWYOIL3SjEVuFOy/DvztukCLc5123DbuO2dpiUBE7SBlLEjntqpqRjG/eszQpY
eWUt+bKke2CBJ9qvuH8ah5VJJxzYYEWbWQGt9s/Kh1pbwehD7V6C8a6XUJ6g7HoJIkTXKs8YWYZR
wYgeROOtow47BUoRXijecGN3+gzAaHgzkfHLvxuTvPA7XkEGtNsVCBfNRPfrmx9v3t803Sifd74I
4Yx3qaV35kCVQeE4Bdo8GAAZUWxVRtX2OKVADg2N0nIE2eUjM5a4ZT3a2pJGJKvd9NN06xqEMcx9
aET5ArTjp6K+zXT4w7VNdh/NZvEoyr1RNA4XSW2kiFAOGK5dHyJlwolltcxJatuq8dkKhpVXiZqZ
Eh9+ePPzz69evm16wAE5wjKEIXSEZfCettsjeKWY85PwjpUod26r5dMwXfXerwwuKEqsJOXRc6V4
Li8NTfbQGkEwbcZn725evr3+tiExIEQ6XwQJ7ncpIKfhTOPixRNIiMVzXQwQPZQ/6KK5dDEZ1BRR
ksAyWd52qzkjHRpPE6UY4mkSLfkAPAUD4AYE4rD0j+eGC3pkNxwFQUeWE66bwoKldBbZhFyMUodh
XgNDhi0hL9oEGghl9Lh2vuLWaBaDNRAmV+MwyaMLQ4huw0LfqAlZ3WzpI1Q/KItF1FvL+1QvjXeq
3l/dK/z60mcwOQOEN3S7DghmWA1IW/c3su/mDUUTEfIEFGFFC5Ie8wMblINWUbWgocA4JB6FccdH
SJA4V5YtOfPInIskD1z5og954r368efrH25em1va9Www9yavWvfFg6EYRNghbVtyjemJwLNGUnak
aInZYKd2UBKnrJdyM3lTSlySN7QmYV92uFW1a2Pao1h2nKlCVLhk3VX17k4eloqHO07BISq7TiFh
qyQ8aiyHVptoEkiC97hVIhq1ULJIigMerab6eFl0/M/Ly1W58VaseW1ubzYbxKOREmL5/DGJ8rso
UtuQJ5WBHcIqUNhmE3Agdha91p6sk/RTVYZfVK2/PsZmA7Af4X7g98PA8/rk5mKYLOZq5auHh4cC
iRBqTMsrqY/X4cArsLHgCQZW6ew2mw1Vxi2Y6XRsrqNpJUxRQw5onM6zKmdvswKhlLQ4dWjQ0Vhe
RcnUi2Gemycr2NqMbTaLk2abdVDS0Lcy2totQpFVxOLLsuKzPErGz45uCVKrJEnLQ5a82SLN806Y
NhTou/2NtfhxTUpUIssyvjZPRRgKut+4ZnLkwPQV8llLufh+Fqb5OJp5eTT3tKAcx0lU15+LAoR6
mPJjPJtPj7OFpNnTHJKHIFboerXntNkZCNAuu8csEWjJYe6N0o3wYr4cvwIG5iENTQ+6a+1rQyMs
QcpsQbz7c7Gs7mt5+D7GzvXkmijdNRNdINwjDaXdloyI5uHwDjoaC1iMqBwS4oXDYWS2o4RviXt0
kOLAddW6yrJqvuTWQT5BJnmFZeGFA+h2NKI7SZhn1mZrsyiHBmoveojzyhoFoDZTnhU7YJEtnNK5
sppmTx3TYR6bq1kAUh2J9vv4xOVrO1q0Y5qnFsmeIPKUrElTLf0qLKHsSeultd2oNh5iHH3yppjj
sbO52p0xqswQKGqwqmurJ6C1EOQ2KRmJSLlR3BfnoX0qqgfCGJKwUyfF9SD3+ZAi9rHfXkZHn3Xj
U5x65Vsand44tEpjVYmONBExa6IDlV+tBJ3O4nQ5L8tkYhCsgfg579LIADd6ibRR67yRHiG4lUIs
qxPDxOh9SJibKOXR9xYRB1QLCKvhYn5nAKWlnPfEgfb6+tifNBvC7t3HQyWkS4Ct+oluysrmAepW
TK/AFTRGjmMvAQQKIw5yHFvPUHNKSPQk5cdVDDW1+HX5kYPgyNYDZcbiex+L1uSvzL80mkNFmQcG
RLZQVi9MzfFGixLnJhon8e2dGQjBRwB24x9PwOF6AXeAM3UQcgvhqCO9RetCb9hvJb1n4a03mmVT
bxSPx9EMRFGRrDSfqZRKUaKT4Kd1iRR0zU++wPxMpK45MEP9lppqRSlGQhS+3WRyV7xO6tAn7QIn
eP9pTZWkLsd91qpjxqllOAF3yw75Jq1QSrrkBwEdjUK2eOwnsaO1og5fG41HHEBVhPMN3qKrWmKy
GXlYu3QD3sGENl9oEufDyyRUZLoaQV9W+NcW5tA9YgDXDcGyKnuo2F5QPmg1uqIj/ugODna/viDc
CX9ocP5FGiuLbIdixkoQYasiiwbEugvwKCC8R63y1Ycz5jxctrsVYxJrER+sjEwbkV8iD3mRRoXz
htlEe7Y1rrOeD3nAKa/h1Kwzr66nUso/uvoJhjNcK/rCMKryX9m9+i6F+uZD6tsn6hsh6sdvfnpf
GZHVY1bFEAffEvF+Usei1gos78cui9Ziizy1QU1uiImggxt6rzymUfhYObcmN9btyamjexMNGu0U
wx0fXdMbQvhI7NbgppS8xyeg4ToyAb8yWn8+EZZ2xCGob8uKRvbw+J9BEt5dbMHAqR+W5ZDVZhgE
oblAkrbaF7rJlfM/yeaRV+7frsAcuAKYS/cKUW+Sl8T5fNW/adZHjDLLdGobVWgOslBqiaBVt3S5
zDibTZYFLVEy8gCJNa+N2GP/uHzXQVVpkzRQbfUaB2hD32cdsmQdB+LnVcAbgCmTJDjUoVkNNq8P
QwmsLOxmQnfLn1l71F2UV00ucCp1n5o8JdIzJRt31E46Jz2CO5Y65nAPt5xOuJvOZtE0CZWI1a5G
AftvbuUSPURpG69uHCkXfTFL8iKuVCgXI4FTyaAg7Hxp7CuHBEaF2B9aFLvsPiWyNNaBcimTRBt+
GuL7xYvL4musDMPLeBLe6vaW1Z9FaRq++GN6ezFRu/IesMT176jb/WMa3V7oq72cXyFKiCh+epPN
rrhf6UWXIDgU18Eg4SZCWhPqWv9MGCeLWWRGeelJv43/v1muCAis30T5XK12A1BpRh2MpAQcHewk
6gC8YWY7GETCzpgT1Kfqy6XA9QGptnvzu0+Go/i+T6KV/W0AYybP++T6fzzPZIYHiOHjGMTmiUgc
agFIW/2gs4DQuaeb1ryya82QmpcwCakbRQiwxeons+FfzMhss3JRHLoci34fh96qquMzjCiuCTmq
ZQ/h/i2ptmej84qok6gXIHTipr8vj2X6Uy6tsMzILiLXdSf5NBxuT6AuGzKtQBPIznMOofBvUVuA
HChjjtHdco04kWs7Qwo2IJ99zPuYPOBx8ULxwbb5JmDSr82w1tpHOgH3tFBc8OVLtxqMSh7wFpuz
Zjbsk1xV6KOA94SV+0bq7MlwoLgkvd2u+0YUgK8P5JNJmH/ytHmpi/SntSXXlLchKwsdg+vG/to1
ee0WAsUTDu+i4adivk/5sNXKLRJwxCGaIM6Xi75ybPghSagTttkhhzmQMeNfSA7bC2FPCd8/F1ll
ti4lyvCUEp081RTJY/VieKeeU/Hfg1o0LyISxUqapvw+eeVS9Kq9Ya5kFIAHRsO52XNDlNkNLK89
hztl42ezRw+8UXDY9QTDz9nMuByGsl+7pvYWwrGm7ghg9N1re6OrY76DADxxZhEkIZ0ESZQ2rAZJ
4M1ljIQxLHfFSBCSfsB0kARzjs/BCgQBVCF5gF9inB/KYNE8VNw/VrevrPH5LHz04NCVMwSSzjxF
DSHldrJz0ZFOw4JW0+v2GCSlJtyYiWoqRKNgtHYjW5LMXLHF1cXwaR3trtCXS0OHkIMdTvVNC8r1
IIIRJU32MLKqJyBWIdOnXa0ETz31J5mSrJ/jdJR9NiqvQKjjbqO7oLEA8iVKT0QaFRXqi8GemMf3
5tpVgS3DN1tLhqMoiaCvOJorw2X4CZBZKq6QehyCT51yV19P0VvXoVoaUNShMqstjECojxnB//3W
7tvzbT6VAM7EKD3oTDdjnroXqOzIzzMz5jYioifwwfZ6NlooGRgOlKCCqag1+CCUwdxZehzzlZpL
V8B07yiukWbaeMq9eTjw8iRUptVQ2XRmvM6AKlkcnIvKLeTVPBxmTpUvchDtNdGeAWUd97gUXSyG
q6sJpHipTTQJJt/pKoESzlEPMS8qtOuLVYgM1P/nEcR6oqm+HziN9xIrlFVaL8TKe62dZ4mYED3o
p+5G2a6kSKF19Vzvvi8vG4etLvSfFheoVE6BcpFWZiDdQaI6lwO1AtFIWYSzvAi36neUEMw02Rr1
QGDbwEi/pPArJk45zafb9afTnTIIwnezNEy82qWkkkC09TqaA+oX4b2A7LY46V7rZBaN1LUekO9v
pTnKHtBA6UnfItZEHceaRvEw2h9qosxnu0JNLOAo0JEmP7DCfKDHlsuQb9Nf9d7KvqRdcYUN58ap
PBdW4c5aKZXql5F3G2XLFLQxAkIwVE+1WMnCLjSXjgg9oNI1cRhNYmY2/X2pn/0QVm6sz9AhGZiK
YMBKhQRWwLX7ZdAaZRSl+CuaKXfWXAmjTDx+kjxtBgIqcoRvnCoz2kqFa9Fc5njGc90CUaBGwUFg
MyYJ5YpSSTdcqql0VweeVYCUngTsU3na03B+51IYK2WMznEP+uTNn4to9tgnr3MtbpxqKEZZR7LT
pkVp2Z/kqXerBlSPCtrqzDZDz0VceR++KMCx+LjJnuzH/K/rqV4zV6GH2IvHSw9ZXeBCv3cNCJWV
QjNG3agPw7KVCRyAbobsYKJOj3cwCVN18ZnThBo7efrgFHWqZ8zFT5z0MJNnZVaUQIAuyUPJ1KAj
y8JsV2DRw1x8cSmOQYoLoxQnrcyeo0uPkihcGyAS7akX60JuDKICn0LjRBiLlrkjV2TnUk+qxG6U
2CnSQreGmGTdimxzQRRktwU61wPpQrtLzOUJcmkg+ReX8ERLeP2BMBjsCNqN7QZ3nBo1ze/iPM7D
PnkFdAWZgTCPJvEwS7LUac6Qina2AaCAXb97t68zFiMqLas8T/Eo1Cf6G/TCFIzuw5lAZwz03uRO
A0HCymRljQWvUd4S3SPQYr2CBL4P78N3xUbu65EWXIKYb51QAXx0byOrUu36xxrXgEmrbkLWPiTM
zSFhIcEX2SkuWSf1RIeEgwkFGpRB8x0r8r7LOe35YjCJ5+ZqDXUymLo/k2M2iDh10QIUyNY8GL/R
TVV7MQqI8oo5a7RcgcKxxYAaabMAcU5HG4W4VUZUHIBYwLljwRanf9QMRtBlkgHdn+1kW+uVzQvb
gkY7wEZDiEBGklq1cpr4Jc28TXwrU36EUqj59NuTiHbj1yjE+3wXzyMQYuaVJVXEEvBT4tS6wqpa
RnXsNjMiDxGOe+HMDLBpGDnWGXGaRjOvHHb651Xb1KEExHLEyNmTR5eeNPMx9w8WDqm3mI+DcmqC
RjcyBDKwT3ucB+7Fgzm+57MeJoEbUQ5Q9GWWMk49OAujAFS2IKbs/OmsgwABQ2K/8eBKz4lDfAVN
ygVOuhdNBtFIN33n97feKErCR5h3Fv8n8tLoVtkQ4VPGutIpGNhiyrBT7s53WzYQYNFWSWgoaOgL
LZ5fQ6qFRXx/mlwuPYtJtsgjKOkA9+LJ3ysnXC/b918USFzPi7/S1WHq5deTqyS7jdMKFgmMzBKo
vf8JvTs2cQgEKCQWaItVfjF4n/W8gqX6J1jQ3XN9bX6w87XUuslxMOxz4UpTTbPZfLkByobSbs8o
01MFx5mOlq6m/n2+gzkgUaolXfGXNbpUKmJBf4VT6zQbETDCWjPTfTyKMg/cVsVU+wKWVCPAUVe0
U4e9/zWgJ111R3AXURoOkqh8q6gxX/7RFQy0e5rvR24aQOmQ68vVn6kfFHXcfDdWlPKYLSAqGkXQ
4FJETidRnitB+Q/QB5n69qQ7IKKql3wOH6qnK0Oso8VkCjpnrC8ClypuX70YROqx/1G8n64+hk1U
//3y8t27m9cv4OamhiFWiAAGGwr+EtzWSSEJbSgst9BZ9+JVh/crSgRaXlHvXG3a02faJ+6YLzZU
tgCVHQT+uRPGsbJGiAf8r7BXR0zrUIYCmzgJb5+EEOYJyqJHiWhxB8baxTyavy9HzI0XaW1NEHRu
EKvKSX4aNOP05H2rodL8ZLjFLdlbBb9O5OEPnfS7awuIZFbITadz/h1tBCU+E2e1Eetqwy1fEOlb
xWv5aYEjKx+vC6BwxqzajPlpIkW7BdjEbXTFup9b2gZ7/FyKAwSj7E59+5/lSTR+5jSkIPwDxHIa
3se3OkZ9mc/V//k8HubmzCmCnO1JMfkeAIGKyPPlV6vuVaf+g90Iuvqtr9Y4ehp/UdeqL6aQT829
JQxhPI8m3tphGQqBocmGS8FP5abKphrmH/mGbrNBOPxkjIcJ3sMdqG+jBxPUDfKwGxnYaEdM+7BJ
tsSnOv3FTo5kmSTH2A5d1OPtFneEcEsU5VbS7ilAVO06YT0kGDt5eQvDigqroXwVTqdqIX0iMKIk
vA+XkdVXgzCPOO3j69HkzeN3336fDMmv+ej6pfzum7f3v5Nf5x8/MP/HySgZ3fyaf/yAkkH69jr6
d/Lph+vR48ff/oUG3/5v+sP7+fL14uMkeRySt6/Db5L84zVbDPDb5NfJm3z04d+3v7x7tfq93397
6w8nSTz67W0yfGTpx9/e/vy7uv7Hm8T/+MHPvidvkwiu/Y7h3z88oI/vlQp5XWldJDD6z9+NusXr
6mQgAvhiMqUbV1VSqEe47/SKSOIAJqFJ2c4eWAwKWPNpeBvdKRvMuwvTURLNdBH9PNcALrgGclf0
aCvu2RkfHS+SpJjB7SRnhYIeluT0LUbAaf67sBkW1CZXJSx0wRYRrxEvlOgsqdyoBDDp2Tkw9vcx
qgc+whp46YDlTmyi29+BQKmUVoMmxdGSqe2E4jKvunaV/6ZYoQAFCnpYM548kSyiMy1ZJhQpkc5F
k9FdksbADkxZtBorK2yCSbPh3ooJrlxEYuXYi9Mpz/uqo+FODCF+vjvhOAlEsFUG5AQ3w22Ym/tt
tmFfAraoujIj0mONIXOeR+CaGH0rR6u9XEa+uZeHKDv50O66tYlMKRx3Hg+9GZiMHhSkqm3fPvmA
9eCaPqPHXZEznx95RRT4x12RUMaO/IwBRyfPxZ3OrKb+AUZV8waEFw+mYb0EwdyW8zoAJW/UAezw
QdUvwK6Xt6ReGm9SvW91SIHoUeFL2dLu1E0gGrN7B0Q31JYAssBRpPkomir7P6zpk6QBVwb/SZKG
xvHoAn+ZBgGx8S+CYz9xNgXyAb/4WZwmcbpEIXf68IxYeblBR9mOAG7Dytk6+vZP9ZU8ddVtky56
CCfTJHoxzCZQxqx/z2n1hI/b7IhldMCY7Reoh61aFILWkmgSJtCipbQWzB0z2vuQrLWq6Qi+QLht
d/zs7xgxQwGmjQ7r8IhZi6iYidI83Q4sOhRDtxnE9dbFYYX3of0ZW5XTtWe+VMnEZUm9GYGc9DD+
gpoBBaSHqGyjmFcG2N0sGnvDJFLPbjfMU5KgRxg9Ra00isbhIqkMcd0wnNf0k1OnhcmgK7Wk3knC
YVGdYZ6AiCSA7bRY/2nzB0mYfjKDFEN7+Ckeu3l0b+kLbtNCMXpQvwmFb2uN0Ou/Bsm40rpZvTdN
FjBZaP44jXRDyUYq78H7HA0+xerAlNxVXuZcw3G5NHx40EoGu9f2VbK80H9e+c3SGHiSaUr/b7Qs
qp/Li72Da/3NzAOKpS6XPFnzYK/88ZSHHpCjGgjOnwFzAbA/RzIw0jAfxrF54p/yMgJyPOPC7TYi
HFCAAXNim0xn2TwDeWtOfgJeDD95hfQUiFP+8TXpyzdxnmbzd9nslfM+LMk7skH+n7wvb27cSvL8
Ktw/VLUuNyW8G/CGwmG7qid6xzvd0dU90xEbEx0QCVFwkQCLIHX0p9/MB5AiiQTwiINieX1IFCnh
XXm/zF9SB2B8RKPgvVgd5SO3nWWe4NdoMgvkSMuzcSvd3tsLsJvuJelkF037/5NqFdK3nrcLoQRv
pZtIbaQE0Ld/0rTPZxFU2ACCX1So+EwNCqWTDqqirkX8HE2LKey3XCviZS6dtQxD6Fk1IIn3TNyM
KY350INPubcm5Pl/OfEcvdmvi3ciy1eqkz2T7ed4pmxXZbp/Cga1/Ys6Cdqt3+59LeZDrxCg3bbl
KJMHvwILbTLa+bC1CbqLmqppz2dlzFaCVMd5pY82VT3ifzCQJVNNr+9sQ/BofYvvk8bLzT8+X/ns
8+ebQxPlWEqCe6e45BdP6U0tRPtXYUDqbDixM14/xRPb93scJROwLMdM38Xr8SaJ8SdSKGHXQqd4
SPD2xkT5RZ9nI6WnBjAvSH8GrzU0b8X/e9JnFUUJNg1bRffRaoXdQTO605v0QOZJM9KijQGFcdzs
IYrW15MsO34qY7BzLZ76ugx4DAX9mD89GCmn5lJBZ98TEYuyihabzBMK2GQogT2eRgS3Yt8WF4G8
8TyuuGqWyz4baT+QF8/sx1C/MHqvsGxu3QH6ksGk1PUDx4yCrjZIlfXB3S6YLo0Oeob75Z5QvRzC
JF3gRe71b8tZ6ag102D7B9/SbhdFC1iws51Ez448vxjbl2ZYN1vYReoaUGHc9/Q3eP6vWaxK3CEx
kBPplTLcEoIrbbB0upljBGdli8sWsAH5JXJFmTh3bKLVUhfQUQDtGMo29YjZj7OK5HZmpE2nZ8L/
pmnOKXO6SMaug6Z0eOJfP33+89//+sunz7W52Jhaxv0Wm7qfMJ83hQBzPV3lta151xD6fhLoUzih
TAYXkyH/wZ4DGO3wRSv8gq8MvjIcfwzwlcQvQc/aXGojLkatNGgR7l35wWynTLYWXJP9Ln23DszH
K32c7ecdrdIv6DhWOV0geTSXLckcr6Wuc1q/nqYgeUFvXEfP4Gldz+L746EE9h5n5nxj9REJ/xto
lD/nSfH7AjknAsvTeX8ZJBpUQbd7+UtAVosCiKAUqsd2HDpQ3xy77wlYB3beCQK1ExP3hxJC7H9a
I48RDke4yGPhnaS/w+k0m4fZQ5SNEb/LvqZjZwKoSnQYv2KHYBtg/bB62BnYF/xR5O/cVO4GR8Qd
dfpcKnRTZRYCY102/DBUv1e2VwmColEauXhPTZvciWtf4UMorvVUJyr8PSjpfrla8zZcdaDkbCni
L+HkIZr+ivYVhQhoBGe860A2Cvv56yZcRdfwSanxhXTrSDIo+T6Pa9QOxy5QrNZychGgVbHNV2la
tFbd86Qfw9X3d+lsgyg3N1fql5sr8bM1iK7AY77iAfxYaxAZMPoCF2SIZqlnAZnSzXoeP4Lcn03s
niIOwGQFk69AAgB7Arz7PlRAx+OtkU/YE4r5rHf5VBNDJ6+/A+WImtBeW0/TDeZffd1UYKqgwuaC
v8FpraPndY3p5wm8BHe5hutZs4o2zNPPblSTLO4GZ5J9cyp1zxC+4mK4FpgsYPztxTXnLcQ1N52o
vCeKY9deieg02HFCd5kccTObpLvLWfJKFoxqz/Q7pPtlMDffNIcN2mTW60QJjZoqwTLQyhAxqqk3
sRlLbMIoNmFOuT3DT47Tk3O5Vz0fWbtcbO7fsw2tO4QOvLfXHZ7XQncw9SZxgBLdCYLuZOD7+lun
uyElKpNKX8LhSVJogM05pLhH56jRMfHVJeyPoojb9zn71oh7iMQFJqV5s0OqcJY8BGoJxLdsyvWK
oiS0vgDfyJyu36TGMqQ2U2/wAizmyGY1J/2AYKTVmwkeG2yrigFIv9tdw5uT9UnIb73yQBC82ZHW
hZo9FKFM695VLc54ldZ4VAEfce21jRPbDA2L1fwYjfOAWh4WHpORToMymUn5dkdQE1vD4uVAi5Zb
8TqJUzdF+GJkvj3XrC07963VAjDAhtFqzqktJSZrXd98c/Nw5bE6dcg8BOoQTvKfNSQDIuxlHgiz
lzzZNj1w/gKfRVM4lRgog4yQK6BbF4jY4zk48AqJdiVAIbtUULcYr4k3ZdBlr0++IhLkPBQfSVF/
E8kccrFXWSEHbAnt3iHfrlebqNTHHs+5w9orueUxnW8qAE6xAMAJe9dhvdbm4wpYy7teJrNyqzUn
TXQyF6WLeE03p2ZIxf0T02oyTSdjzPPC0soXzLffF/d0rSfuwYD0ZHVKmaCM8lsyMeirCRaQZfEs
wf5AFjTrPo7m03FS1SYI8fq4UwCDdeu2RWdRSyykaMe0/WqnfX470k1AORs0A64tzMn/vOIcP4Jv
hwmXNjETiOkWPnnGcg5QzDzH4KhWVZgBJKSTVXsyk2V4JDWQzYiT7OS+sSPsiiONQZIdNlLap73J
LC41kRS225run9steJwFW66QoBpMeiU7Eb1Lky4aMgSWbvoXcfvQgJvoqNrSZoTjkctetEZBcnlX
mirbk8uRcYp4naYbUXquY7oqQ1qAMDYQQdmK/CqCMqAw2hp7BUrzNJpHQFzAykC60TSvLaI9Usz2
DbrLjDhxrHbhAhVid+OyMCeLBTO6vFmPjFZvrRIOyKyDs3LFdbhYXomfJ+nypSGOx5i9qPL8YQjY
lmG/ds8q5CNp1CuDt8i85/Mmh+KgAo1sseRyx9zcwoJzuBWeebdZzQ/Le6y4ekizdVHe00mi5o3F
fNGOUNuLcDRJO1NHt3TmLE1KHrcEgSQ7abUKNnxewgQzrE/Ou7/RHY8xudzX52QbugkGNucO3vh8
0sk6sh2oonBB5uuaNiRUKCpwxsHaB+9tfLdZr2mACiECTK39Njlay7fmr2cKQQI21GNBD7Y6nqDV
iNhXMUnX8f2L7SlOGOiGgX3OguAsbFVjXEnfb2d8dD4Wm919cxgXyVtMjJRn2hial0DiTqAoFYr9
tb1neIcJ7pUw5MxjcqSFeoNTs/cYZGMQEH7c6Dc3LWmd9q74lfLHFWig7//x+fP7747vgoORDAwb
wAd6nMF8EkcDEo5foKvb2YKsIjmqJMdX4q3IbTkP42OrKPAteMNlS4mffv7lj/ArR9VHhS5kYhDr
lh7TOgM8wCqLoHc7Etv6YWwGiBh+pH0e37ghOgxDQY93x9Z+gFnlhnnnY2W6cFODjxb0oDFgldi3
JE8nofS8MSMdfMvs4r0h8dA39myEzdFcxCJ3FsP751hzIWlkgMDv9eqWD69uKdZ/N5mD+xKtUKtO
48c8Sh/Dt2eMz8RF1D7/pNC9j7P83X1s7f8xHr/7ym/HY/yR6ysunr3wStwVuVv2De7DG22Au2/y
IY+PVGG5l3KyyvkgCSJlu0qjnmNqMCKjlb1h3begUTDWuCVG+QjQ1WESRRQ2SV/Dr3RKkHEDnT0e
6ELkotK6NWkUx2Cp0WZAZ1SjLaOw3VWHk3CRHGTWgeKIzyYGocS8ttjJ3PYZ2C5Bj2I+W0dLTmy1
ABWt/YsmxTyNNaOK6gt6dKri7U94Hp+VD5aOarOJdYcl6AZ0wHyqlQLusMs5FAMHq1Gpy1L+oqT8
j1xqdqiFq1Q/Kv38DzxXte1hyChgrN9Tl9Spez7YXl1EUoIbPY2eo+n0bow2yzgLk+ld+kxXggu3
dsu9SUBSDgfYbKa7AIRn0eGMYCTVNy73tNEDq0j6UgTcgD7M1Wb6qDHWsBeo8LraIaQhqpyiXDW8
9ppwPX7tr1Tk1ES2PyGdcwB8zmWPVje8tZlTjUyl1MABXF80+cMA9cR/YbpoP7Gg7Fvye/vfeVxK
bGwotNOt4GlkTN73YzmFMa3JtgBEoIQ04uko3bukWa9C2xLbwQ43HnPriNDIk0UFVjVPglh1Czid
JtCTKCzSNumLdpA5geqNUGCdsMKHkrijfDyG1QztreZ8oNwop5xIbO9pOkTKmp4PZDEyKuh967Jl
OKG9Yi1H2vPfWuodEdQJt1w2ffbgx/EOPfvzzXdEMavinF+2kWZlyfXjel1WUMEwjho1Yh5td8xY
rCP3RbQOc283iZ7mMd2A0SZHMt/0T/pr0DITF1sJr5VkJwV3imog3SSBSQz9x6jqwWAQBFrzoTa+
ED1kl17sdN7VNh2v4wWW/eDP4LJXGBSMwSoxo/qtBd3BSZRu7K88jwgYHNsPHGupuOgiw3IjGMTh
dTlxBUw96bn1LW5FEjQtaPhffati2cnDEgQVFxuk6IgCJslp6Z3+7AYqTJdRshNI5C2r0CAXugzs
JAprfHHb08Qpn0ucQoKVJlDbAyyFdfEoDwdRaHTAGLzezBJOhL2l5x9ubnaU/MMhHfcorsqE0k/L
4VJ8hHkuePB1LBRmL8kkB1mNnmFVa6xcGKeraYUfiL6Caqh5FsMrhGZW1Fj85RQTruGEZbrcLA/C
tON1uqTrRgQ2Eu1d5tik0iYYBUQM5X4LSrgQNRA4ktNRe+ce6clpm5nEiwbfk30TFU1QyjFl6jRd
ssls7SgWXeVpwvZS3hahl7Awc0Zi7eS8y47XWtiag4XtZK/VbHZdUIsb+F+oLmyzn+VNhs1wCV0M
gv2hXsGD8sSg8mGZwIyawIrOxk61h8skdvxzappy2t5Qpgr21YOtOdNQTs08vQarCJxdqg9MrvZ5
AP+wQJ9pQUp0Yf8CzX0eAw1V4HkwlKxc+4MIGVK0IK4fE70L18d4GqWOZYDKB9EgeznCoy1urE7H
RtC+18qGqx7UFsnX1sT7YM/7b2Gk7FkhIL2uF0tZrjZ0NkKO5kQ8kXvgldsazz6fyIK8RbqvL0K8
k3xsELPTC84j/1QX/s2NsIJBx3cvO/s+zrYvi2atYBHSKbjKsS7yNJFV69RgEaTvEnOUF+gVn8Mh
9lU908nhXdMmrxQbQJ5+gg2DZuF9RENIMe4Yk5RdOIXkkICBS2y6R4hg5CJOUeBhlOspuU3I19IE
/R0/ub0/fi2y027+9hBn38N/4ff46ffF1Mp3Z1iDL+TpB1CK0pASF1WCcUpglj1YMiRNg6MqgmAQ
kqbRyBh6xnKwgxaOB30lfi7FRMFXlqzHmcGAWyytJC2StEtoMMA/2qUb6eks/vQQJbWpgdrvKF2q
z17SXXrh7KXpTQP2a0QyxAo/4fAbHokgcaDyByN0OX4tMMpRk+PF7BVoq7AMdludWwb3aZp3mClX
z2DIRp1+NPDEY/RjdNF82dejWolfBwolBXKAsQY1kDzOk9/hXGx92B7DTrLleAGEHSLknk0JoVNt
tXBMEKsXFcUNVB7EvA+/ROPoEVHcKFfbA45Vpv8DgHW+5mtXnAY28nELIZ6w3qc4mYJFglcQlerJ
93o2Qw/xc7/e0szprE0IOFuBJfyeE+mqI0vFEt4+MKOl4GrXWATe4KNs3WUn+FRVdforS9efnmEk
zKfKtodfl4XJhLZyp8O4NMlb7mf6Ll6PN0mMqos2+YWP/3cYnhZBT+nqS7RCXrgDr+ghgo8yK3gs
d2QgAsI5HQTHCfn19e6qPfr/NMKtONyYch+AXXrb1cbzuOIKvilxU9/Ym4P4csMnr6ag+BFx5+5W
6ZPF2bXSO9ysH+itstJSn4F06JI7gXX6vMPwexgpYRZP8pXaWEOGNaeL6PYpuvsSr98hTCxQ1PR2
hcRzoLXxwgn8piMSzv/uzJOxDo6yYYV2DlwbN1b62vRyBLhei0hEBPZ1MNJOvdRUtVs6xXuDcXi/
xitFXN4r+hBZSSntfVs3gZyu0wne0aaLZbhCPMcMMxYylM/r+LECvtu3+Zjnlz9WyohJ/t12X4bv
uvhu2y/jz0Hxs1d8l8XfRcXnrPhePMc2a977++3vc7/4fp9/V8XPSux/55p7h7/Hg8N5bt8/fb4l
eIuRVszjLYms5LdMo7vNbHyXTl9s//fZKt0k07IlE2gYOeg+6BFBl7kVHoB97lvQ8wHA8wRGy+B5
YyukaDM2wIpPeT6VHi+W6Wr92e57lit4hAhC8F3wOhCnLou+bjAzOP9NOlOVadf2Hk1ChmxcnHsX
Z9CVko7lckfwlno6y4VodZeJke8EIe5AzAcj0cpHGuV1Uj2FQ/bzr3/+5d8/fUS0CRtI+ftff6XT
1/FCw1yCZfj+KheZuaDcfQVhufHUNP/K7FfffjX2q3z9nUjad7j9Gth38tfKvg7HVxt/GsEfmxA/
VvfePbzDWHi10YZP4KsSd/A+u797X2uVMuyMEJiuyjsBpxI2j4bFMJhjzluMUHPTdB/PI3BZb9aL
5c2v4Uu6Wf8NXLfsBi1i68VllA2Df/Xq6K/D1axsXOR3P9rXnflkFYJ7t3jdGyIhgqNfEPQl820E
Lkc0z6r6CCBgMOPBmRbndpvQVaQq0lDzhCMaS7UAKjKkCljkcP4UvmQ0uoiEXTWdeOifeUOXf06j
OYzyzzw2ULxJniRmtLmhDCtXcPwM2AFEmn0NUvb2lbbo8CTCYPM2GoXgzePdfi1F+zHf+BIlY1au
eCszZidF9lNV6rLpmY+1NiwYSD85XylXsc+7b1+RKe7WtPp0YpynM8rtlWLkO3V01R0lHBjJq1Vq
mw4sw7i6/Z1ToaB2lHdg4oVY1EwKPAMMyE8frE/ZI33DVKf1OsieYhMI4eOWJK9bloNa+eKaWNP0
sG3AP1qPH0OEG/6tjDZsvGH2sop1JGho1cUmzH3qomUTHhTozVt89uFIYyxy9BpuPvVbyF2Kqd9V
Bpo/+gJk6ceP7FN9nNn4oJR9JxAQ7W5U0rYk3k+0kX+52ROt96+/gGLAwcM8b7qzCZg7hpveOa5K
3dOeDOb5ix5FLPJ1VmdYMh++mzNoGFrKB9ajHljEVpp3bsWHQ2oYbXRb8i5dLtZCsI78gJ9Z/Eo1
lEz8xqLY54heKwTpVrKtqIyTGbaOewhX4QQvSJbxfjT5uaI9E/eCoOWIYakbmqMzfZrkqzExpUKI
Hq8vNTZLMcxPgy/AQIwNZMbDeW1Ce8W0COmUFqxWaU0Yc5s/EE7xNjhM4gUYE9Mcbo0eLEAn6S1t
ZjaUBocPE5u+s5rUwqRzLJVhA1ru+Xys6Y5IwbcLTGl6fljZPtR7s7zi3kGS4H5XajTvS31OFUJG
sjNqCaWxQTO/CMu5xEdHlvLNhw833h+8mw9/+HAzJjE/SxfIWIvmVBR7mkxLokf6jkliYZppwerP
izk+eoW3ZNl6H0oShP/6uYQYNJJmcB63qyRtNnEODq+DrQiAww0bRpxjy0dUJHRbSyEc+745qaza
OD4WAzN5dmnQibB6lJzvkzSJ3hMisqt6Izl6r1raZrGDz5rMViHtNUlsxGHMRUjNQ3LtvU4qzwNW
mOrlhOdmHFy1Bq/MGB/bx54+mKOMeU1BBMKjo/x0NjQId+GUbGc6cUf1tHYy0dYinGZrwFvbecBL
cibw/m4u9nURnywha2LGTJfzqSNn1P5jj9EVYnAATpCeppPeq5QFpDJknbhiTxmsosqLQIXpFm34
r5MqME6Vh2bA8HelWRTaXdtBsBT5mugTHGWqFJgxXr2wNucS1vvUvQO//8OB1Obe8+179q7Atmfv
TxDj8EWwBlmOjQi4GyBga/Hqco9a48AFInCE7jVtlTzd9IqNuFOz1J6UHHfKdeyoTPbPouEotlrl
tXgEzbAsmt+/P9Yux+VulPSQoqetRP6y8cWjOy0seHPLOupLH1AKwFODakJe2QnO6DPrA+WrN9YH
vV6HqkC3Ugrdxi5SJ0VH7tizG7LNnb12qLceAnFJGpDXacAmhYd68UDn8Sadh0n9grO31nk1IY1A
8s4cTem8an9GaqwdUhehgY79GkIDHYeADIaBvJ40DHl5mK4fotWyIs7OsNUeC5g3tPbJd4hSPE5X
5S0Uz32YwBRqLo2FLQuWvytdoOU5lWmAMNmDiSOsrKxtl4i5rA3QA+fSB2ViO249YC+DHaL9iDQr
3BACTU/RS9zod9UW8/tNYmuo4wTx+N8T6Yw+79/LKQat6OyrUM90lJt5Vn3e/Xub2FMJnYcdMwXn
Q4vJ11VTotKIYURlnCConUX+WiwqEA2EEIPo2YLZ7zfJxPap2r2o43wYQ3jnjCNpiTB+p2mqHImO
dgUrSK9IM6PaZCoJokGfUSqUTqS9iDBYzsUHFNRbA/zmw3//N4jUDzelO1fsrfzLx5/+9tP//XCz
3/MFjfA6cRzIkQKyd6F7/xRJQ1fsKsTN5aePVSlL4wRke0wjWCnXewC/jUSx444n89TW/1e08pMM
s3VEhznUCpWiSnO/nrPCbfERx1x22ngH6V7sCpVuIlocxG/ZGC2UPXSQ4h3CVYeT9hw7t/gusSxC
gFXKLi48RwxUv88wzwB0VS0tD0iNkJSFgERTixCY8E5TUg1wCjYrq5Oh/pmM3Srmfm2Dyz2E1cpb
BN69tr3tcp9bCoYwzDkWrHPSq81My/t+2tATbIUFyZgjie9S1a5n8f07bKpenDb8+g2+hX+yxlb2
7Nhi8LViYsTAJdOc96E+rEe/D8ZE9wsMRtL4PaqQ6iwhJR1LS06QKKVFVrcOxLwoLxhWfyHgWJSA
U4eUWtWJTAdDK46qHCa3Du2tdOdiM1/HS8zlzZa7JoQkHgFMQ/lDU4FFJKOrycxIKX5m5SI1O6Ny
2Z1FcQ7HjOihb8CGPoIoqYjLK4T3vSjNVGJbUgGxK1YfihEgYHSg+hSmJyVoKZ+B8cSHEXFFR7ym
9i8So2xOSIb+2bJVuJRDiT0X7F8fM7PPas9qLZAYLoLHqujmKPsD4VTfV+I1Xnm8ZnbwJrgw77ct
pisLqUEO+54U3YwrMN5Wr03mKsGI8jTWFrKgGYW+Cs6ydAW1iLIM7VQEbjsO/yMWiOG6F6JsHC6P
VoyUCfpSOvunUCWG3OCe24vCabgOUXWQuQoSMQo5H0YX0Hk82hGV0B8uLcStPU0rSbuH7UqCoqhG
jKQzS7xD8nh1dnMX98MHjDHelLzdHbA0/vkPfygsj+9ubmzkERtS1wo5ez87VGiqxr6VQY9Sta4y
WyBcsRqMyMCSxbmkm3X9hQJzrMToLl0ELV0Qeso/o0+xtzPtA/tajYzXl+NBZi80KoZCVDLdo2Su
yTbB5Eqny9lgmGyJhlYfbyQSRR8iEa9oxvCPm2BkVkkETqIj6C3hgYER0mVE9y2lG0EwxPbmHSZQ
Ky1xHigpe0h+huPBpFLR+1Q7Zga3zvANHGXHbgYgML/Q2Bx+Y9pKcDIbL1fpEtjoZQteULDPPsdd
iekxw909RC9X8Mul4Dpe2PrGG/D0zp8b5QQOHziaNHVV+hIdBW8QudRIXYGWjlVNnSRE+pRUYs8g
QqwfnEVIKhpvEKwCpzahQc/ln0SVp1YtJtJHyOCYcjC9pHDoye6C2tODUGz1uLmbZ8C1995OGF5x
bXO5QRbuiUVKJPoYg/C9AVQFHe/A5uZ+70R8WIqGO7XOU7+2WziephHWGBXdsWnd7nPHFtLdWZy+
dQscYzHtJSw5rieAT+SAkmWGmRSIs4Ym2CpCyyYXM4eW+XBny7lC8JXLkFllKzyXVUryM1v9igf9
s2I2r7FMpZHYVbZHk6W5wEbAd2V6Fsa9OJhVNwxlJ7IkuXEfPaPYgFxrEa6u4TxLYSXMGtWDUM5e
rUmpNSUfad6vTzMHqVEbrFauWQAdNEK6uZtHY9sPklaZzDFeHQxXSyM93ldEomnPFXaFdCtgCU5D
5BpHz0urOUgNoUAcemcVwJjN11D4d265dEyLtGxq068uv/x0CIBxxE81Hh9EvMSLWY2IseX3wZDh
gfUqTLL7dLVArFWYDCFdJbbtYmpYMxTmGK/jqAJFSY4E8/vgv5zt4mS8DDGCSsaefXiMG468q1xv
6Olo8A7O5QZSeifT13GeBXnnqgJHaNXjCexJdGx6BnubrCkylmDt+i7ZkieucJ+by2sl6kO/L2AJ
9mRFuQPvvmH9+gellr3rhzhDOgIafkg38+n4DihrhrpkmqfWgKSfPFipv5uadRKs2/D9FTcHlz7w
M4EeZlwI8XjXurcjdt53aw/mmQuHkqNAUpG1AdjWx105bF6qbEa6Ht+7cuCB9NiBeDspg6dRg/14
xXW4gLP8eZIuX+BbYz4Pyjf4IjqwY/s4lHZLL6mRNHvSdBxOp9kY+BA25mUcr6MFKd84wnS7ZFC7
kEXFCSdpjcWMTXsD/ywCni54Ao/TpX9RzXnPVoigpDgLyC1mktn7Fv67kvGuQtrT37KQVi45zd0Y
8kdGsSSXlySjDziYkNEdnIwmDwOTj5zgKboIiJq8HMmF211SFwG5mddlP2NMQQ1HhnR4GySWNueS
WNVuHtYMKu1/AzLkPozntKHneQMfXkmE5MfXn+R1uB/f/8s9hTjOXpJ1+DwGQyhdUQnDSl3ENNcP
K6wvqZqlbimPT9+V/PhG0le9Dli5vtzs1Z4bDnYLIbtJwvv73L+7e8k7MVhUalYRN8a8z0tSfQey
+cQKA6+XCgPFfDWshb6K5iE28R5nk4eIBtFGY66VGupAIrzqUkqYSyIRavf2CeV7e9n/kTC6e7GQ
GEYBZRddjcDpu0S15XISwjrqbCIVOMJWdSBJO6eHHJAE3v26iVYvdNqy7hgh3LtE29uHuKg+TFdu
W4Jw6tK/JLKs3EFKiBUBk0X4chd9Pw2TWbRKN9n39o++z2yZfKOoQnBzJr0z0QWdy5/jcfXDChPQ
nozOPsHyOxNc5GlXHrH11XftzptO07b80E6OD3M2ziime853Gzab0e2ljUuazfEkThvIFjgqt+5x
lSM1n9EGD3gRJ/aak0Zml37g1hakchrHFEzHpDzN3Er3eztdXtE8XJqeT5e+x8ES4nobnp2XYSli
6PsK98eKQoZdmcTdPHwoOQMC8ThVC6fVEdbk+vomnMRT8XrHv0xmx8gm+FYlsolgePPKuNLa4z3y
iqiQ9sZRq/QlGujyz8CxydvxNMp3vYswI1O3fTDstPLOKvPhC5EJ7PUu8g/H2cqEBmfzTWUCHyit
Q7SWCrLTuRxzm6yo2uGOBn0lmS/zBiDjSZhMojkN2azdStV7Y2m65tJXjhdDrFnSHq56zKr6LRnt
Xy7Ni55pvonUCz1JRV24EaZHalc0tTNuG2B1pYByIRKQBIMD2RsQQXoE6E1tvB7HyxU8DkeNhskt
fEg2o2MCvlvbE1qEbO4W8XqMCERwdJv1PdN3dCdioTFZPei8mZOHaPIld9DHy3AVLqzyBB74xK98
efUTv/qkrvyPV/6xHeSjrJTBORW2pM145dJe7ySNTVefGptfeznia4CslfdOWZe8kyquWdf6YRVF
ti4/ewWxAtHc2AEdYdC4Yv1x3bya65hTJJo7imZNljEGWOjsnT5Mn8ztu1SMuhgHhBtmnYBTPS8w
HsBD4KIh1MnPxITuxHoMhs8V/usKie97aA/wFkTXIV5CekYuAOyV2+8yztYzcqnAIkm/xMmC0/qT
ScMtplj7BdWRxiqM5+jsFojytE+tDegU06MsMXRJNOpp/rayRGt9GTxLHsw+ckc1bG+BWeSFPfVj
ZXKkUJf2R+rzalJ3y4VzJTSf9ifwBkS/sdZyAuTpg6dppxoNBKW7HalthdBg/nsovYKL5ClxGho2
fu6FOfrNyQx2czMeN5qs9japDV1W0j98+7qJV3R3cSGxVduJqiXvluHCCBTNy3MaBxVXZa2sg/5v
dPgZJ1HhjxrFz3ocpK0m+Jvbi8oX5xHFkg7ECMfolqsonleKYi5YcEZ29/yLFPyScnZuPtzc3Gyb
znS3mThiEfTmgE/TyQZnDi8WIfyMua3oq9YUbYAj5gZ570hW1Q6Kh45QJ2tmj7T28cD20otsqup2
2WSNDsaIVT9+3/FunzQPrkdSivMxmS/VeYQXGZvXApN8/B6pbF5NZaqTX7/PT1v+qW1byOwV2yUK
MHWCN/h8yz58I//27LgirpcS7EQvpxMzumWEiGHFoFusRnSXCOO/c4/7dMUid6wIF5RYeNxW2k+j
efgSTcdZ/K9onESzdB3beg/62tYgAH+Hpe9LiKfoLvta29dUCW5hBeoEhHgjAbF3MqXg0FXEr3zv
KvT7MnUsCrgLwGsfNFdd/RV0Ovlkepc+w+4/RPCGBbNIYiC2+avpVZEj6Hs2QaYPri8YPUmr0NYR
zqNBJb0VxZ0WS7n5gJK+P2tbY+TEpbttFwogg9ZoZQdDy9viA5giXuDk9zc0NFjQhFnbkUCo/jz4
pzffjdkVVx7f+7jmpsjgXXjQA8ciFFLONVZSZ+NwMsGCLtsQCTR1xbEZLIjQsu9jq7zxdcGsd1/q
TiRN0vRLTLckYhjf9d5YVBwqoDAMXwE+918vwwPgz3aNBysazwRukTbhUPdSfwrjVRROwWBJ4ooa
abx04Ez0RHOPOzAwuvURc4wpSVeiK0Ce6OZuXI7c0h7l6ftcNzBHjahqGy5VDtmZzI+OoKDzxxko
v+fFPMl+eEb0512Wy9PT0/WTuE5XsxsQfcGN/bTIYykYYBKvJvMI/n51yzwPvt8UH+fDwBvhGpji
brOO/gOzE+wjfnhYRffwkUXUzmAOP/8WPoZbpvjpFXHRu4vAsr31MngZJdNbOCd8eR/P57f3qyj6
V/Q64k24va2A9YD6TsDyvn/5mCbRLXs33SyWn+YREv/PL5+jeTSB/bgtJkmEoRQLXPrwudPiLErR
E7Jtr2fR+pfNCgX9X9IsrnIOFLZHcwofSDfmqxf60mPghrFhGOL01fscjSSXhgQO87G+8N8ewt2I
n7Bg+pdwPkeo9T9l+Cqa/hcYMNtf+HsCBBnPw7t59Md09W+v0/8/0fohnRJtkLF4UnjmzfiaUmET
ywoRvtgmsf3j1zj5d8t/t+8tvuk6el7f4F8UQKfed+/zP9kpqfwH+ySqVa7kIhiKU54QT6yWSZh0
LFntSLWNM/GxjbKW/bDrPjbEFhgf86AK2DXEWQ6zLKK714IR4dhKxv1Qarq9C8Xc8MRdFv6MhnA8
B6If370gfM/4Lp4pOl4TOFbvOC9ykU5BY4yxQxG5rwKL64wahtgaBhfq7cyGmkMhu5++v7qTV+r+
/XdHuflgEWfR+hb/+EA7lwLnykoVPRRJzVN0UHNTnYShxapv4fVqi27L8Kd0TxuO1q8YyBx9HRtW
HS3JChIuQZS7NKSFw+k6AU43IELg/3r9qY5C3o1p19UHjxD48xe67ZcBy4t50uuwGVVbsIoW6SN9
XcR96egAifq8YDQGSmUbdgj05+A5ysnMU21YK/stzqqabAqnoJNqFV2vxZUWTIDsHJa284Ot5i9m
EAYyaLkBe2J7cRdNp7BO2BPieIXvOXLQ0CpiRwkVKsK/r1ER2UN8v/4nPKFRTwgt2bkOlg6nY9iK
me6kbYv8wNCbx49RNp5NXnumYUeNCl3FmApGyu8kqnLHwd7fFWu2eFLj6BFDRXGC0YzKKyxfuRZR
O8qTorcI8vQSiAFFNQ2pYMBh5bIdue+5hukq26JnYEIWwr3drlebqOSNj7QSPWqnY+YiUVfc6sIp
ukK3DtvvwoAPdMMZTPxw8q9PIByk4WwMe4oJbvMX+CyaIhBwOCe1ggYbXjDWWSgeLLa0lcGIKdNw
B3U6oewtjaIXsOfcbnc6sAWnr3ewSDIY9FxppCQUBKItuWI/mfFjtoUyIEWNMTbvsddzJI7NKZ1/
SEVafdaHQU3rko8fonAarW45qWdPvpCAH5bw7U8Ynn1JN1j2GGGQFaHf4VuBc41h3WQKX5MUvvzv
8DH8vA0w5eN+Z/8kSvJv+BVWDN/+8tPnz58+XuOQSyL9RUkQtMqTQ1DvXqoEnRsBssgJGlU30pjN
efm8hWQqk5hUXcZxoBaygCKQAdrhHUYm9hYo0RoLDWZCIEDl1Dddd9jXU5S1k02iz8zFoomLxe+H
i136ZB4fgNUFm8TC8mHsfRvVBmc9Ciu8O6PZKGgjs4+MiIfQpoYkSX5oFEYlJt8zJ+e5gYOStNLe
fu2sAR5JvAY/t2LVxq0VKbnF0TGggycwACFaPm5FPY7Jto97oB4n28zuFN6UtHvjw/B+y4XcUQtx
K+ahHjchHicMZy0f9xv1OLciQ+pxCfk40/Zx98TjOOdtj2JKPU7wtrObkScrTMvHxdTjAt72cV+o
x/lStnzcnNo7JtvS3YI8CqfUW+pxKfU42ZrJlhQZe22siTy+Q81OO0FfUo/7Ss1O+m1Pdk3OTrbW
3DSTteXZR1KitOaKJ2p2RrQ9imfqcYq3JZQX6nGe15aM/0WJgPaLZaTBELQVn5x6nFsYU9cacWXb
8Xoyi0vtNHEw3XZrBSn7W5+UJPdCtOVBRaqS1gevycfJtidlyMW21kw+aXi2togC6nHCa/s4j2Qa
j53RC27tIZAGjlv+s7MlzD3VoyXMjeR9God+a+MwIjVDaxYkLWG39ARn76q9zidNV1/16ZQwqfwe
LWHgjT4tYRa0nt2CVNK+36MHBma/16NhzZjfp2EdtPE2B4/SyaYonfy9ROlkwIIePRG3MJxzBMlr
LdAzknSV6dFNYm7ty5zdJCX8Hv0apg3r0evisHk9ukl+a8eB8pJ806eT5LfeONpHah08JH0kaYIe
vZagtT1HOi2IHtmj0yJPDLocZV00tfdLQLBnm8nDUaDfDq9cuxM6u0y69d6QLhPnfbpMfuuoRUBq
AdGnw+TJoPcLl+2tpeNli4/Qc61DgJsEL6D3QxJk+qdQI2XkGX1D3jrMt5o3YOiBo2jbiXU/OFtV
jIUqMCidlG8wV1t2jhxZu7EFMKJS2LBE9rRSPK9oOrbHmCN44DsZ1nZbkF8y8UZ0uAncP8t59Vnq
wO9ImXvdVMuNKpUjiOZgR6hll3SBLNoBL23TRTd3xRuIgRIvMfcd23bSOZy21133E6zCuxIB4hw7
5fqZoTbYdyojNtUb/NFu51+jefhss0z+mK7u4uk0whd//+uvnys7XHJQvSPhhLVhGrZ3XrO95k23
1zhJwMrtfQiXUZGGbEXPDqOQ7CEduGJwmpPa+1a0bPY9eGs7VXi5ewq8zqdcACigwbdK5/jMK/HH
exCkV+Lj9TX8mv2y/3fZ1024ipjnIVD6FdcWlA5++0hT5liLzGtI/DXNMCkV8/wRZ4mNs+C/vVT0
/dm9s3OjdDjjgbR1I97v8Sjuw3lWPgtlvMs9CqwxeevJHW/b3uyYPmV23yiz6oZugMahwXbRvd6O
M87W4eob4Q1f/f6XTh66CswlM54yFyyzPNbSbnmMp1FqgTCjVccSJg57FAxhv9SWBTItPEckUGr9
T9HdOl5YPLF96ENEvEJUCbJmSfgSXCnV2VJsGHu3fnYU3CpkZIMz18/YnB7bD4ZePV2mJ8B54tKw
HsmsAs0yAJfjkuVRE8Z1pSFwMAz5aLfWw10GYP7lylLd2sWuoOh9y6vMSVz0z8V1jh8TDEOUrFdJ
XSugGfbXOc3i/y0b4/Xn+HWl23eWq4goxhESC1gD0dMY2KidqPixidUO2+bX0kaS1tQvAQlybFvo
nT7M0emAws5At1t5arPppq8rpXPk+UjoerPbd4gP2n5m99slIkvafmar2V04Xz6EOQdOp/8Zrl7K
QWBmEHDbvPkk3JJB6s85TaIG1ncqrWh/yrVciUBHbkm4vqMEOlgvWetiM2vPcrjkofpMd9jvPmbA
PCe7qZ6ucCLzTVWJnhZi5JZ7VElYq8k0nWCj4q1+rYYz5YilpEX30RAavwDChYEtMlbj2CYYuV3Z
NI5tkXfR37iPVivwgzDaj4WQdLm7UI64XL6Dq16MuLT32uB6zSw5lYYMQGW7HGpw4lJpUE0NLg7v
MFrjAo/XB9a2W5195fr2+yogl8zTNIsSEIeNyPVGe479iANXIG2kn9KMJlia6DIhjRdJbhVcp2/H
cr6pMD2MbcoletmHqjYC+ejjMHtJSJxx7jPEqu0sI21X1byfaonYwA3QPmYkeMJTLY79eKhsTmp3
I1TLZ1PKFUchUxr4KHC6FAt6MLCZdEoIbkGUq/gxXMMnq/TJJm9WUykiiroBngTdzX1pVGf6WD+l
O7MoIymFBbLFemoi++D7VhLS4XTI7mw+Zz1Sbu2AO7sQUQWGoKy8mwYt7oRjNlA/Yr9mJoyDL+C1
pbR4DtokStDw/7rJKXy9WSXZONnAJ2l9NEB5DFGSm8cG5VB33rtQ7Tod4x0D4pzSYtFFw5CDFWiq
U7ANswpUbgVCyuctVlNNSdka7M8ZJmY72RICwxCq2wotXiyOOH6COdEmAhCvU2/mlgutsRK4cLMS
6BXigvIeCVP4vzqRToEN5JTr0naBp2kc4XUhqr7sIj3YdtQIJ3u7IjuN/DKPsocoWo8RsLpeHEk5
QsjYmhDB8TgNN9w/3Nzsrjl/gD/zyGPJss84S7JJp3HJ/VasavU7ZECbGbiL0SzSdRFBpWnOd4s1
Vo57HCq3ox8MW4aelMDbmulBV1sblDL21qXP7cbbActzeR4fjRSruNsFYttR68PjPto/TqKuquuf
Bc5br/Dabi89uqI9msH2y7UM5tAsM1xi/CnLl3t4C1NUV2UULBuq5/qe3D0O/uMk3STrW4+ahHe2
SeRnUUI9xVloJTrbXUXWMfq7jICfZIgUrDBt8szL/V/7wIrk4l1KYBSvtCGeHuI5fA3jdRX+N0PM
H5ea9Mr157kRBzobJVoVsCGKEZcsvtKqQG+Fe35pPiy6pkSOtSc9H93xjgdq43JRMkHE+sc4OrqC
n1vg6SP+1SM+YjII3mJkJrFFvWq5twcYo7Cri6UsrUy4lBW2fDoLuA8LkPX5TUr0v3fAAOjQMxcu
ECevLX+69Fx0l6zlsSL/6JDVMNuI0+1CgiaI7OPxXsvEkjImQgCuhtdhDbuHH26PfThIIea73Ca2
3SESp5H5tjngCRt03Hc2XSD+9/Vvy1kp+QlMRMT8bSm+T9JdnDFmTt+7vGQVN4bC/4MnM88Fr7jy
SMBdms23Zq1tv3Zg4hbN0QtjsB48Gax8aduR1J1VMx5ueFcMezAeEfzmXPKR0S4sqzqtnl4smNBN
5ucpi93mtpKr9F2ut9uusujPe1SSSC5a4IVhg97sbdHK67ToIsYW3cdJ9JdVuoxW65d8gX+uwdzN
G5Z3HtZCZ4JdOY/CVY3D5mPrd+21FQuL+Tr9EiXxvyIcxHZhygVpSQRJhQYX00KKjof3EKLpvLdI
0mLlCswQ3fM+LlO6v5T7Luoel+dEJtppeVY/UUGEAGSMUxChx4VxJzXVsDBMIhmH9yU9H26ex0WH
5vAxnlU3Ire+VT9Huj8la/rheD/uQmml3ix6JJsCdy6I27Px3sD5mKUq02BknAzalrud13s6bDfi
C3CXHK62M8k2d+4TcYH2OGEi+y3pXelPBMHICdJAmZb09/rkMv0J08/IrkTIWZfx6nf8BBp0vMVs
ORFnEpTYx0/3M4+pxXNK6Vtb6Xj95DSObV37Z7pPoId9tvwW6rhFiM53KjxWxnUgTg0Ebo9kQrUc
5zmbr8d3YAbHiyqTQnABMsDJM6xPKj0aawwnd/1M5UqDp8uGGS0rt9bjblgYDaMlKYYKsEwhXIM9
fxwv4Aav3E4f5Zi+t9go0fMksrHb8e7GkaZ2D6yz+rYsqjmfcddHonogzBiVLhDbjStc2qtLe5lc
avtVQMIU+Y7bz+mVI/KGzzpMaM9JSyYPsPx1OMud/7t5mHyBH1eziC7GMP5Ic6+XsZf57Rp8gCHx
8WsvbrpRpBppl+wmFdSfwjJ3EuOo2W+zvVlMLW6qas61QYd7k63h0IuhXyoKxWyBXP/rqxJ+ClM/
nPypPtconPwO9zVWOVXKpgHoXlaHTpXT8sxIsU5HmK6+HNnU9K0zeMIuifkq6D/1oJhjgRKZ7/9v
GVErYrpvREPvJGyYytvQU/M+7B7ZdR9UTzTYOFxO9Niromm84AfPq4Y2HX/89B9/+vQRG33Hs2S8
60T+UBG61+DLibpwcM1wh01zawYeh+t1OPlCp/8bBf61HmjVaUYKT4lt5zQfcNUwcO2qmQRp46IQ
RcOFPFjfeX4Nlf3IA/jHwUVuv7tJhd0lAwxCe8PucO5E1u0y+EpcN+fatFw/ppfV2z2CNVQfO22D
Fet/qcoBdSqjaLfCJE2yNdiy4Wr6lxrVadCrNGa4wybmUXvugd11NcymLMP1Qy3Z+wOK0+3gDcIF
M1qHWj7GSibpvHL5Jhhw+cXg9cvHAnDPc9Ep7PT1r6IqTEUNvqZQ9TKPdVl9PnS9NjUuqCjtVp6B
PzJ5oE053XjunVaeD12/cn/k0KLebeUFCvB/ba9iwnlV0jhWZnZbdZwk6QR7+D3Gk3W8IAkrcAm6
ui3t8K6Vvl+y2KCiv9M8ut+tO0XMwRj5vosVzJsXuw0l08IabSRh6tfZnGC2l1Vva4crh5PgPksZ
9LOyWbT+/J//9jGdbBa233plAEx7eaS8bpHNmWDRYgkHlz1S1bTy/5H3rL1tG8v+FX1xi5sLxfve
ZQrj3j4S9AC5p8Vp+rUHtETb7JFEQaISp7/+7iwlx5aW5FBaLtkWSBq/6nnu7MzsPMxEGYbxsXhn
uorb32tK96FHmRvaL12yvaQDT1a22K+McCnEfJXazz5mkMCq8iLeV3NoxFCBeAu/3yKxcJx1+cJ9
9rL2+UMlzN1oQcAfUqWb2TRd5Kk37yNgWkybA8WD2dTmCFCcBedLQPCm2rRxxdi7b//x/g2s3liv
s9X8+4d8MXcLOP7b/q1m/z59jf3XN/O99r++LeafX1sY2ebHD//3/sZ+0y3/YMT1uNx8fVeAILP8
/qF8c1ss5t9Yz6jYvNlk86+v+Nt3ab7YbQ6rPXIYiIdAYL/3w8L65vr66LVAwrgigzkSdawD5pyU
LBLUUriG3/pcyVbVzpV9J0TVDekfSGJPVvsKRP2GNVcuzrNF+tn16lWjFNznN5Qc9wEksDchkaTl
vhHY5k80oZRDAQMNw94vyl0ZkO06rZnvI6FIoCWx1PmAVUCrFTv+vjXpTnUQWpdZ+VDMcYaSQqUh
THVoIvfo3fbkiURD053A+HkSgX0OlQyf14c3Ghsxbt0N4C/OgnOYdMHeIyzXFfwEt2rQWJY30C50
xd697HWrKmPtmdD9AoWOsOkyXeV32UkVkWTWAPVLdDZb7s/LqXPR5r1cCvvLWT2FLQjpB7a9YBZ5
FbQBCttidZIisHxPogCvo1/KiVQyBgppWSyv2HePnvet5rnP4VDYbLd+DNiEwnj9PjXwpJTfhswk
ks7Tk6Ita6EbZ70FBs884Gk86vkpeG5Mv+D91kbayLdfPXOTg2utbL8iXy+s+3USxUwE6tEFcY+v
IPv1kNr40O0Cghfs0mVRUH6JZtankOZSt4Qi6u1x5FQB/dSGocuaOWtKqAlHJW9VO7hNdr9bQBVF
N7YZlzRpvqUUgm06YWHoOC448o9OEEjnV3VJ3p3UOjWm3mEfVfvUJhtVqYBRlaaJCcTnz6vZw6ZY
Fbutm8jnf+1yOdIuytEywwcBlDM2QWwLP4NKh4Z7V7Bh5LP4rm51FoH2G4M5n7odk31FkP1v9rhP
+vt7mihmW1UnmNUrGmRo/JMmNaYAqTvEfV1z4c9+azXBmVo8VDfe56Vc22J3MMEwQblnNPxpXexz
dkfQ9YM9XYe7bvbMdBeLeQq2+bEaxoFQjAEz7SRbR98G/PaqW6X2g1Vpv/360Uc0I5j1Vkig28X0
kLT8Mm/HU0GtUY0jDUBfVFFPd26Ukgfy1jfoR6PuRhO+5m5fj/vomX2nL+JGnQgOP7DvoXz01cUo
V7ERHLYPGJRg06QnqfuETRVUc5Jw1B2dqGYd18jrsQu19QicUg+RHh2hrismR4eTMLQ3LfEeBXPh
sUMoh08nYIoeFZee97pCCKpc3Q8m4k1QFykAYn5HMKlWsjdd1ngY3Hsf26sC09sn5KWVmaq980a/
4ceR0m5R5tatKJ/BevqaOxz5yuqDpe6GfJUv7+nN/SaznogNnh4PK0nsl9lNepu5T2CokSe0okxZ
H8GFV4Rfvn4HwQ6NeehmR8UR9pCBIdgPI70uVuktNFW59mlv9CYMLpRgHAVovSnuYUerAwh+3ia/
3ZV+v5oa9z5lggG3gNfFaptBfUGZ+XcLWU8vmXB5BtDnBag2PKxGhFpleT27z6sNBK9fd8LMqdq7
YnNDv4J82ofP68yl0a7r0KbEHhEt46B+NHsI3i5qEfZl/RgEx4pQMgy+jw38ffRUwEPHKeEKEWod
v4CfiHzf+ld75KRVQNpYa9EC4lnH28tZcLfpNp9N59kqz+bAq5N2ZRhXTgOQ6MTS7aw7t5cEgg05
6D1Y1zTtTpl/8bY2mF7xM+E6UfvhUg1DzC+G+/zx/y5fwfC9RVGs/aPMJabuLCBAFZlAqURceDQu
PGHi8lOQyPAwybyQ8kNdPuHgcUykGxKeii0/GhkeiQuPR4ZHSGT9jAxPRT4PWvV00dc1uVClDK4m
+Cyw8DR12Czhn37lhnazuGJNYrsZJC48rVVkNyPutagxqa+QfqmJbVdN5HtfxmWoTJK/tt+m4sIT
iYxMX9zzoFhcfVEi+Uufd8kxfrBEXPgwTbYhPWtgMgPm8aoVWJkvs2KHy5EyDi3DqNieI3k6Lz5V
SSNXa+Hql6rkvMXB1ebesK+eqppOl0bAPzxR8nJGQBWCW/QzLT5mm1q3TnNk6UkLvKprYutJxk0n
JjH9Akgo5nGtjWPVKMLsMZ2V02Va1m5gYFAm01xC3QLq2SQzH9CGYj9OpGu77gL8vC3nQgeCUbv2
kJnLhVabIa5mWC/ybfliY8irk9p0ar1gFh2PK0Ze2b/2jwchKQZAiCQ+3gjUBR4WFfh/r/i3V+wd
1HgfnvntV8ypxQQcFU+GkF9XNKUQo0OzUkH4QxK/Lmo6iC52Za6WA+vpp0+f2GuMFhA6gBZgVVQO
cJI6SFmY+EforuMpH+C8HBSxC5pSDHheMAjywfiIMTfcRMdupMal+X7h73wXNirtGBNN5kNTJGZs
aNZgKiUfG6bc60yKsaEp/YjqsfET/vEiOrqT9D2ENt67W0ZHFbB4QvX9T99/+/7Hn3750GQ/9bA4
YnwgFd9Hm/qMeBIfj1c+xVJqiAjlRMellvZv/Cjk61dfe69YOUCYwV7Zv15s4tvTVzV2SIv4nHn1
wma+8loeNTBWqPBLDSLGzngOcAxfVTdfZ1SVHMJ4dUHTGTYVX/Kr3WJxlvD1sC5R9pgu14vs9Sor
feaHDMPJkaDiDbPGFw2+/PUwTucAwH7c+c0GbsABbp2LiPxzBBs9CIrxUC+J1cL6l7v27rOyepX1
zs4zxLUOhHhY9DZMVEw++tYLbD3Pqxpa45jsmyt1TBGw757SETKFB8ihNjBl7XZJ1OsK7fAI/bMN
e6PxRQvVO1/qtYV30JaYbKGUCB2YL89XKDZbFmHZgsq+qehHSSQTilnV1opcM29qNQYmD4sRs4aY
PlnTYmWEmDB5htqGbmx8TXCtjcIkxgyC7su+0RN8aztHpZScdxJwVKtFDGaW2WXqV380FVQjjZc5
VKlgZ/PTQ15m4P+Cj2ox8u81Ytp+0DigDm2mYDZG+XgyOnEilAny+3105etpOp9DL+2XbcsnA7r5
xAjaC1ufRQL+YkiYl4HqMekOG77v7xiWRCA7d7tD/cLwbLsf/7W7rWaH+7fawzZiynrHxb/RiuBm
r50B2w27r5liogl1h6odru4Mt5nb1G2zQDWLt4D+mG02+TyDO8cN/67M1tbSPcvyj9l8ui3T0o0d
nMHW2vyu/D2v0UbXR34GSqcloPDpQ7pZZb6th4nQjCFLjzXepB12+LgkQnm4fq/YO6D1in83swht
s/KK//Drh3dT89X+x2+uDL9SEv4rjftYH0+os64YvRxZd+HdLorbA6LVsPZaD8y6ptrtWOoJcOka
7k6kQxnEl1x1Atvt7j3K+JzM0pVwv5rhEKAuZiODImBQeZf+4GszLHwYrDIsAyQbVgHo0AIQyXAI
SAnbp4flQMKHtUHWPWj293u0v0yKGKCfJ/tPtjh78EoE6es6rLuGaaI5slOsL3kIGG45IAIkmSRD
WmML3xg1LP2oDG5/8KmWAytAMqwCUMKHlUCC6kDo6zoUE6OGVQDcgIP+4Gs9zGUIxlfR8V2GoBGB
LsMX9+DTmGXfXUhlAqPLI6UIuAjggK03+eoliZ6ULoPkJwlxwlDguP2jBSqnYLqJz7+jW0047wbs
AlbKCVcC9bCBoM0lLm+LHWyC/+zfTiEkMocagjqlYKKcERdTt4HZC5A0rM//EJiMgJoLZJBZsgPQ
py85s+O+RF8s6YQM0EQf6cxum21oDPjVYseJ0SYK/Hl2l+4W5SkCGnXlBSCenTJfHe3UAeJZDPh7
2hUzUeCvsk+1/Mc1teHOWU0S3lhes8FO2HGtfuwTdjykJ/oJU4wNdsLkUb1f7BOmRZwTXn+8khDH
K51/di9M1T7iabqa148qllQQ5MMPlmb3mFzcfzzeMW1dLEl4cPr8q4BBoVD1AG3AqoUX1gnZPBW9
QQm3d2lBwt2i+KbABK84dYC9sxEl7xfqdJ1uvcHYJOE0IJftR7BAI11sn2ZG/fqv9/4kIOy7CCLi
A/X7ApSdmxXlTui1xYs++/oRBw5e2VGXAxyAuIhUQzmt/cJ4wclFWLBWdhwHwbXs6A2RPTsMylNP
sKr5rOyV+V+HTYJbrXUMs/OCnYYDvF589m/ZQV0tFyDG2PUpUFR/7DkSaKxVYwlMtOoo/SoCjSEK
I5KeMdOnoqAEVUdyriy8LRwU3ml6J/ZcMcAuuqZL8wtOP/384R8//fOXSTco1Tg83HTo0MLmKEfr
HGG7KYbzYne78HpejIETxHkEI9jwP5yjDoqbfpH2yAnXo36umPzycVsH+TgvKSVIdBmcdTGiZFBu
8vUyX/nb25hh1n29UA7brJyW2XI9vcsXVWgJH7ga+ZcYTpsx/DfEU7vtifFya96CWa9ZMc9uONFf
naUzjRw+Dor0ftdhg3234WgX+94B/J53BDML4xkW2NCsDgPL3+XSBvs3dcJEeWPHCMVUN24wT9pN
GA6obVwPqW1GkHEpG8FUKw6pbFSLbucTY9t4BG3j4DgwPqS2oVZlRzVtmGKkIbVNKqJCm7ZoyibZ
kMqWYIaIxFQ2qsnITVvSUdkwpo1F0DYXEwkz6EXKx3WRGmVGrmwcM6Wjm2WLpWuqecBH/yECV+NS
Nj5yZRM8EZ0w/OHt+7cf3o4lSJAqGVbfhBzXVcrIyP02eEkOfpXSCOpG3fMLHVTdqDBj89z0yO2b
6KhuiMs0lrbBfqohwwQzsnQbkWLkto0mrIfLNJq+UTWsdTtHvn0qHOrRb0iFS4gJn3KL95wwtjSE
GHmGVSsi/7Tp/HPOUr+3yeiTTon88+bTOR3Z4WYjf6ujhLM/bUJ7bM8XqGf2YcNgLv68GWUqxhaG
jv0hnlwaKA8nbZGMzU+jY7+5UWX0o02qimRsgX9Cxy5w1CrZkWY1z4oq+r292bjlbWj4J7poWZ6R
FTaZZORJFtY1ETqyrB4f2/XNRy5woVQIlnlA13Q56Qm7tJK0rwJyqVW/iHkKyBVNgrE/L1Zb17AL
rceHwbHeCSKCIgcVc3reqHz7E3eL/P7hi1o6rhw+uSk3u+y5TXg5HOdCMKcdrobGJvW44ZSziTza
EPbtrnywR+WPFAQ3/dGJ668rA4Uyzb3KgAlcn04shj+3WCY4w3XzyMfe1f24Fm5s6t4z9wVBcr/9
ffEcCUBky4eTPxw1QuLBH8qqoWZS9H7UlEziKlt8dlc6rfShvPfvdXlqzPTyCDYF14fwN7Es/V4g
UrNBr29pxFhsSl+M3uv0U+/d38tDkZQM6h8IESL+zCzUFOY8pqtZtqgfVUWJ1BOW8OAg/cBUMmEy
BLC7bJNt/DAsD1kSMrCtJmYeYHqX2AmmpIkMkiZBNGWZLW+zzfQ2nbt5VJ+Kzdw/plNQXG89mkgv
7OtZsbOk36X5Ymd/9EU20aX9TpOJElU0ERorz4ymo8V8d0UxECaU0aBZrAswEWokiKCW2UaRjTbj
QEQepf+G09dEJ2oUPGG4uoIIwklQ5Swx1BX1Mtybzfe+z1DYFBLiOBfrbDXNVrNinq/ua+du86B5
ctjhtivvpsZzr1MYYU4THhjcp3w1Lz5tp5RJ6oFqrNOpMPsBbfzTDLR6cjsw1DvRj3NmiZSqE7SL
5rRLKlHlSyHAWQEKQVB1fSHAWS0QyJ6YEOCs+y54gjII3TTFuyfV6gkzAQT3zK2GAYfZ7KGYptum
M2jjMMyCViSRd5tiOV0X693ab2FgaJUOcfqsd+x2cpb5Mit2VorF9I9sU3ihQrDLTJuhYQQB1U2U
PWwXLqw93WwKf2xmjIB15N2BnrdXo/XdGkXeHmC+ustXeQmzp4u1PxvJ48IzrddSWHjKkE7wsIfR
F9/Cfs7Wav2w5ElNI6uLiUtfEpmfLDJ9nMSFJ+LqiySR5Sd5XPNC1V+an+0lTYHhER3ZvkSWH8XY
F47zXtyizG3+R+b3RPWEqzOgNe5vqJw/G8cq2CQVjpRsuS4/T9PNJv18u7u786fJGVfgXZMQYPck
gqs5XWSr+/LBO7RZmiQgNH+5ooACD60DMrMpQEkI7KYgwakqH4+z3FRbdQ/OPuaBZBCxeWdA3AtI
EB4akPBTFF5GwqPi0oYcrAchnUJSbNI+0+QMKXkhtcfgnSFJj5g0sZoXknsuvp+uiunMxok2NPZW
/MIWPxbOXPy+tfEvlBp/WajjD4SVQexZ6UKtu2AA/Mm7nY2DaTgKt+tslqcLx9R0VtZUUlMF2WN9
BmfPjPRDHvBDhbhvM49q79DuAmpVlNN0O8vzaZXn9sCUk8TwyzVlm8HGKnAKpvVegbL3DCfdzH+X
lJsj1ZfGNBMqE8bCUDlPy3T6Mc8+1S+dtNDkpP1lox9KqelIaSjALEEpr+jAYq8WcXtSUDZHBCeR
GFSWA0EiGPK6qhkDNSao9E0zoLuiOLoJ3VI3moCSqDB07FbzzIZS2dzdS/Vr1hhisdB5MvOIyq3O
oVHBtU8jwTB0Y+8+GyU2r48mBtaBkFjU2ZiaWp3RAcgr3btsdQF+TBc7v/ciuES+HYimeLjtUpcy
CEVzWGi4KXbbptYvJqiCPTsXQzyu4TrA9L3d2WPOExnCJJf7Dyto+43rnx5yy+Z1Osum+Wr6JM7T
tY7g44c9i470R+fIVSh56E8gQ0V5dLjU+lRSUDEIYCZQXr8MDpgmqHSZbFa0fLleZC87aefZKreX
S/bRWsNt8wo5TmAjPMpwhMCjZkUQdevT6kp8XwK/ZEmZQJ3sSwlt2EkFvay0fxT85jSxbKb9MGC9
Ke438NZcD58rl5rTTWIWaAe7gr6FbPQxbHvY/sdZ22MPkRujiJlI0VRPHhCLkzs6SSiFrY1Gmkb4
ooOyd0LBXuGUqgThBomW621pOTydPexW//mywXZaZo/eE54Iam2MuRjqF6qfw/exGsyr/UUJJpsu
mneeuYzRNL0r7SW+yspPxeY/DeUUYE4FJogVtevODkDsOdst0tICguI7uE6O5yjUovbVoVRvnm9n
xWqVzU5rtBnq+aRfNNdp+XBzfTTpiEOpJeejxY2o0eKWMDpa1DA53YFQk+PlGmfjPQeYR6mBcEMl
MobiGxsv3zgZr20TYqyoaTVibUvUiG/S0fKtfXf5cAchGS9q3IzF861ze6mQYWKC3XYPv76R11Ab
cRtxObjdem1h2PDefuNFQ4A/0k+YxiW7L4ALUTZ8dANB3/WjJ9kxEVpIEQeJfJneZ9fbj/e//fbz
+19/+e03D0IaWoJFJK6k6/Uin7n2/Ottka7r8eICZgFiymEkuRyvu6K4vk03DWySMI4HI7cQ6FDG
r7/79l+N6EhBhIrGnX9b7lgO/dGAUjKR0tB4ApuiUBJcsGgoHVBBYUYU5hEnEGZX+i0GKWESHk+p
rhhFIaWEJhGREiikpMFUb4ZCSqLEJynHlMIH06nvUJyCx5SISP2AQoqgnLJgSH2PQkowHlF8TOJO
H1MxTYJuRcp61IIqFc+sXymCU3STxOQUx1l0TiMqOlMo8RFC4hnPVxg+WdnRSGfPhQbeTgcogOWR
nIIqNliv7j1YKFR9iaQBsFh9TBf5/BgHCpc+pk4oBA5Ob1EnnGuG8rkDISVR9ytnHFMiEgwp1P3K
BZUROcUMCinrHUXkFEtw4tMyiYcU/x5joLlAvdYGQ+otCimmUFdZGKT+Fye89nULITXqexxSApU3
CSW877BIxdSob3FIoVp5g5lOnPiE0DF1iqHOHpeYNq5ASF3jhGeMiahR73DCYyyiRnHcZSxRHVxt
SH28n842WQpo3X6ePj7sq3ftp1Bol24fbou0ZiQjFwbkdTEOz0qdPt67RjL770lFH8eVbrbAOsym
uXc0b6blQwr1hHfpblE+va7sf8j7zmGd6Alr94LYG9KMyG69KFJo83BPKk/1bK6cbZqW5Sa/3ZX+
Nw9qDLQOSgQOQaahwLgz2s77F+AaSXb/OEq9FXQMyspYLOqEpY63PzN2pK6bPCms3xER5cmEEWEp
hl6fPbEtL4WKG2u/VET5MtbxsHSmFr5WQyw0VOmYyix1z6KFmu/p/if9j7IM2n7b88PhqE6oCqpQ
91l53BlHmVuiasLydlum1vrX20IBrU405lkhSUASX5Zp11QRC0z/T0gStSChSEQ0A1CulfWTIp4G
SrRioSh8mpUIJSd7O1Bs5jXjzxkF96h+RwGA5X2W/AsmMaQ393HvNrmbALDYuZ0DxTrbpFM3rJUQ
4e85tq6w4BcDfjY+ogmFaX63SZfe7kiloIdeB8TENXe9RMc3P8P6bLpXxksfudLwSftE61CMlw2M
10zZS4L2ygLll7hlAYvFAtWke9xgGkIuYoH2AhbQPUsisUA3aQG0GHLVKwuMF7CGsi8aiQWmgQVS
syAWqAl+4gUMLYdaRWJB0qQFYISp6ZMFlHgHCkHrv4l0D1HSyILEagHGrWvug4OMVLHareoiLGWF
zlEecguc5aJ5EjuFOcmoSA7b2PcC5GmOz95skslO8ELMnzYw/UMQFYKjz8uY3//y896Be+t8yJef
bR+K3WI+Xabl7MHvWKKtSiesquybG5f1i6uzrhD5Id+uAZW3dWELU8ZGZiwWPv8sylaUKMyJZCq4
4NL53MF8n2/L7P+Lu5retmEYet+v6Gk3o5YtWXKBYijWAjt0wFB0wG6DYyutMccZ4iTN/v1EyUna
mE7o2G4vORQoSOqD4iPpx1LDddzuHX5RQkkgFO+sRvqs0z8ejBPYk5t5UwNJuImHX/LlM6R1J/Ps
H4qjmSLiaPJXua4tviH8cIoFUEJK5o+zGkC5gCwHyhlkv8bupse3u5vbhiLlfHm3yZv0Bs5UxtXw
trpSCdRHHLtoy6QMTvkAocMWOybTNzMJmvxoQWyeIMqDKzqZvCimcNZviuKh/uLcDb5rIfzhQD7a
WwlAej+SJ41tbRiICxZGYmhLzZGd5Flm4omZNtcoM/B+k+q/FmWi3gUyYsOrYRunPODDsxnPzKvW
T0gZiqlIELNVgnjKbJIlN6cMEceVAVQhH9tYdKEluPHIH8XSDcaZIQHDcTa0sbPcHCxwHbN8Y/Y1
TSqcZDmGVysc0FyCHk13AqvAWBAOvwpVBbM5pnmhT9ywgPuUL6o6rEQ215U5bRqejUO3EnKYtDK4
uatimQNzCyAVnIFRAu1UMLRg4HutHwzHRX0yWlKSGEcKMqnnV6fBvSPDfhvii5ohMYjYmMbb1xJN
VkGWTI1h7iOITKq8anwHKQXFhUZdTN3vqgPDNX55TUKOlgIsO4zsrc3e/En+tCOlwUa68ogZ8yH8
i4MPEEsYTNp97e3UNBucuZgBTQYBwTwJhXSX7aRuG2XwjVYAOM4wvRtHoVJjGghvlJebHS6rfJmv
dQswj4jAYq9HXt7e/ToWeUOOYufL3R4jb+VFxCgPpexk/1ovFnmmd8/1a4+25bjDEKYCbjkxujp1
b73Fe63MTFzEFwHJy/ZT5nhIFXNFTEl30sJmsdJFUqEuVsKcYNK9l9S0mR1beAiJXDtAPPgab53q
o94sTwRqnJNY3M/V4OfDPZ75CqmRkyST8ruR5L9rCGipEGDiOj5lww0DC99DAcBI0/mqzA4qnlsl
+IBKtMlyYbIgFhep0rrR+QF7txD995zaA4vNH+Eh5bKpc476r+/3J++aiVtDObQCDepcE0KXbdXV
gFrb6a1CK/eyhMERpBKbGoqmWEA9gvn+4HZDF5uxldDBE4jIgLRYdFIBfVQwHdaVGxRgfiu9sFW2
ehQxXupmxu+wow0276KE9HkfJfYnoJ7cCc5gMS+8iYFwqYut0eMAIEr4I4q28QUYb05H6TkG2BZN
Aq7EWOcSmtBxsnDlx0RsocgJmhfXtgylDC/TRWILGV/M67CwvC7X4rP967XwD3EWXA/B1OCu0bYd
patqOZ8dY05nAVDtksIR6mocCG0CD894JEExOO5ssJ2ZMC0SvAbNFRXzdZK8Kqtkqr1tFIS6QN+G
fmcY3YyydtEV6HB1eVnM06R4NrfuSpl/bN+XXakADcYkqYf/o5QL1FGPFROPZpsUWyxg0PjZ/1i+
ymHt6Y5bOdWFEuaH9ZZKH+THw3AUG3Ei7wCS4fLTf1BLAwQKAAAAAADOlCRKAAAAAAAAAAAAAAAA
BwAcAGNyeXB0by9VVAkAA6SxbViovW1YdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAM+UJEoAAAAA
AAAAAAAAAAAOABwAY3J5cHRvL3N1YnRsZS9VVAkAA6WxbViovW1YdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAgAAAMmZJEol4NMILAAAACwAAAA+ABwAY3J5cHRvL3N1YnRsZS9yc2EtZ2VuZXJhdGUta2V5
LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLXN0ZGVyci50eHRVVAkAAwm6bViksW1YdXgLAAEE9QEAAAQU
AAAAQ291bGQgbm90IGdlbmVyYXRlIGEga2V5IHBhaXIsIHN0YXR1cyAtNDMwNApQSwMEFAACAAgA
yZkkSjA7uLFLAAAAaAAAADwAHABjcnlwdG8vc3VidGxlL3JzYS1pbXBvcnQta2V5LW1hbGZvcm1l
ZC1wYXJhbWV0ZXJzLXN0ZGVyci50eHRVVAkAAwq6bVilsW1YdXgLAAEE9QEAAAQUAAAAbcuxDYAw
DETRniluHxpWsGRLsYA4ci5EbA8NHfV/f0u/hIbd7o7pLDEIUXV6VDmgQoGkoQbRR2uRNF3Wj+OM
N7JIBWegpZ/Wf4YHUEsDBAoAAAAAAMyUJEoAAAAAAAAAAAAAAAAPABwAY3J5cHRvL3dvcmtlcnMv
VVQJAAOfsW1YqL1tWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADMlCRKAAAAAAAAAAAAAAAAFgAc
AGNyeXB0by93b3JrZXJzL3N1YnRsZS9VVAkAA5+xbViovW1YdXgLAAEE9QEAAAQUAAAAUEsDBAoA
AgAAAMWZJEol4NMILAAAACwAAAAxABwAY3J5cHRvL3dvcmtlcnMvc3VidGxlL3JzYS1nZW5lcmF0
ZS1rZXktc3RkZXJyLnR4dFVUCQADArptWJ+xbVh1eAsAAQT1AQAABBQAAABDb3VsZCBub3QgZ2Vu
ZXJhdGUgYSBrZXkgcGFpciwgc3RhdHVzIC00MzA0ClBLAwQKAAAAAADSlCRKAAAAAAAAAAAAAAAA
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
BBQAAgAIAO6ZJEpXGBNJ2gAAAFABAAAyABwAZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLW5vcGx1
Z2luLXhodG1sLXN0ZGVyci50eHRVVAkAA1C6bVjxsW1YdXgLAAEE9QEAAAQUAAAAdY1PS8NAEMXv
/RRzkkSkk4OCDCVQtLkoKok0581m0ixsM2F3UvHb29iAInh8f37v7crytSQojPPcggqYYHt3YohT
EzjKFCxDJwF61ZEQvVjje4lK91mWIZ+cX8ePboV78dORIz4aNbirK6y5eXKK1ffErB4k8Jk3LQdc
XtB2+MwHYz/P+fbire04Jne3WQoEUY06CyV3bxo2ywbRXySHfyMiG9goJ1aGqFC/F0SVBjcc4Orm
ByuCOfLsXGp7tiq/Dl+kZbjO50LUlqibBqtOhk0j4iFZ6DRPV19QSwMEFAACAAgA75kkSndNix3j
AAAAdwEAACwAHABlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtbm9zY3JpcHQtc3RkZXJyLnR4dFVU
CQADUbptWPKxbVh1eAsAAQT1AQAABBQAAAB1j0FLw0AQhe/9FXOSRKTjQS9LCRRtLhaVpDTnyWY2
LqSZsDsR+u9NbEQRepz33vdmZlcUb4WBnHzHDagABfvhPxniWAeOMgbL4CSAmwIGEY/SjSeO+ExK
uKtKrLh+8Yp7OsuoB44akRuvvm/xpyAi1bwe+nZ1FS+/g/P0JIGxE2o44HIMWod7bsmeJ3970dZ2
GJLHh/sUDEQl9RYKdu8aNkuHMf+RDK5axtjApJxY6aNCdciNKTVMT8DN3S+WBzrxrFxiR7Yqfxa+
SsNwm82BqI0xbuyteuk3tUgHyUKnWbr6AlBLAwQUAAIACADvmSRKSi4+MOIAAAB7AQAAMgAcAGVk
aXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1ub3NjcmlwdC14aHRtbC1zdGRlcnIudHh0VVQJAANRum1Y
8bFtWHV4CwABBPUBAAAEFAAAAHVOTUvDQBC991fMSRKRjge9LCUg2lxaVJLSnCe7k7olzYTdidB/
b2IjitDj+37rongrDOTkW3agAhTsh/9kiEMdOMoQLEMjAZrRYBBxL+1w4ogvpITrqsSK641X3NJZ
Bt1x1IjsvPrugD1F5VoouB9qeYyLqxXl99qEniUwtkKOA86H0Da45QPZ86g/Xbil7fvk8eE+BQNR
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
gxuvzaAFLWjxfoeDDdzgxo4MWtCCFvcIHGzgBvffud8BUEsDBAoAAAAAAEmVJEoAAAAAAAAAAAAA
AAAMABwAZmFzdC9mcmFtZXMvVVQJAAOKsm1YqL1tWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABD
miRKSxuBNacAAADSAAAALwAcAGZhc3QvZnJhbWVzL3NhbmRib3hlZC1pZnJhbWUtc3RvcmFnZS1z
dGRlcnIudHh0VVQJAAPtum1YirJtWHV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBB
tCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIE
hgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqM
yTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBAoAAAAAAA2VJEoAAAAAAAAAAAAA
AAANABwAZmFzdC9oaXN0b3J5L1VUCQADGbJtWKi9bVh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
BpokSksbgTWnAAAA0gAAAEAAHABmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1u
by10cmFuc2FjdGlvbi1kYi1zdGRlcnIudHh0VVQJAAN8um1YGbJtWHV4CwABBPUBAAAEFAAAADXM
zQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASe
nOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90Paz
tGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBAoA
AAAAABWVJEoAAAAAAAAAAAAAAAAMABwAZmFzdC9pbWFnZXMvVVQJAAMpsm1YqL1tWHV4CwABBPUB
AAAEFAAAAFBLAwQUAAIACAAOmiRKIY+9ODIAAAAzAAAALAAcAGZhc3QvaW1hZ2VzL3BkZi1hcy1p
bWFnZS1jcm9wLWJveC1zdGRlcnIudHh0VVQJAAOMum1YKbJtWHV4CwABBPUBAAAEFAAAAHPLSSxJ
dUlNzk9JtVJIAdGZeekKqUVF+UVWCpl5yflFRanJJQopiSWJCskZqcnZelwAUEsDBAoAAAAAAC2V
JEoAAAAAAAAAAAAAAAAKABwAZmFzdC90ZXh0L1VUCQADVrJtWKi9bVh1eAsAAQT1AQAABBQAAABQ
SwMEFAACAAgAJpokStw1eOV8AQAAjQkAACMAHABmYXN0L3RleHQvZW1vamktZ2VuZGVyLTItc3Rk
ZXJyLnR4dFVUCQADt7ptWFaybVh1eAsAAQT1AQAABBQAAADtk89Kw0AQxs/mKZYcS1p202w3CRrQ
luKphzaepIdNdlIDzR+SDURLwDfw7Jv4PL6Ar+Cm1qJQ8BKwh+xtZna++XZ/jIkJG2IyxBYijkuY
S8jIcgiaVUm+hFRA4RcA96YzwVTVGDGJtUbTrAAfaumiwWCA7tKE5zkIpL+/Pn+8vejocurPs1SV
cc2ikAruUG5b2NulPAF0hVb+Kks3Mh760+ESNtWWFwYq46e2RjAe4f0xUMJlEdcqiWsVCSjDIs5l
VqjMYcTsmDsOc9g4xJEaxqXqDioJ5f7+/IaXcXjLy4cfNwM+wei+jaOIBfbYtCy89nbyMW+9JJXk
wRaQiENpoDCrUtk6NDRIlXSr62kXJnJb9ZXKpBt0kBIUCxadkg6Va9XeetIXq/YNC/Up199e9ebL
7G+5gEXEsv+SO/GteqM1mtc0mnkCNCWTbkEDCZhDgx70uYEe06432p5YAe5Bnxto2vFGCwDGqN2D
PjfQzOl6o4UYE+hB/yPoT1BLAwQKAAAAAAAulSRKAAAAAAAAAAAAAAAACQAcAGZhc3QveHNsL1VU
CQADWLJtWKi9bVh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAJpokSk77IPiIAAAA5wAAACUAHABm
YXN0L3hzbC90cmFuc2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0VVQJAAO3um1YVLJtWHV4CwABBPUB
AAAEFAAAAKWOsQ7CMAxE936Ff6B4YMsME2wgOrutKyI5ceU4Uvl7AuUPWE4n38nvJk1rFPKoGdhM
LcAShb8SEPGhUhMXPJETnocbDjxeouOVXlr9zsULLlQctyJoXLTa1Orb0/pZp0O7gsTMcAQWTpwd
YlrVvGtJ2C0EqJnGBnUFUZp/8P/Q/f6c58+G7g1QSwMEFAACAAgAJpokSv2iLmSPAAAA7gAAACcA
HABmYXN0L3hzbC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRVVAkAA7e6bVhVsm1YdXgL
AAEE9QEAAAQUAAAAnY4xDsIwDEX3nsIXKB7YMsMEG4jObuuKSE5cOY5Ubk+gnIDly/9/23qTpjUK
edQMbKYWYInCXwmI+FCpiQueyAnPww0HHi/R8UovrX7n4gUXKo5bETQuWm1q6815P9Lcx7SqeV8t
HloGEjPDEVg4cXbY2641YR8hQM00NgBXEKX5B/InRtZSp+fnRbsT6d5QSwMEFAACAAgAJpokSs+P
Zg5QAAAAoAAAACQAHABmYXN0L3hzbC94c2x0LWNvbnRlbnRUeXBlLXN0ZGVyci50eHRVVAkAA7e6
bVhVsm1YdXgLAAEE9QEAAAQUAAAArcyxDcAgDAXRnin+BlHabIPACEs2RpaJMn7IDmmuu1dMJ0sO
tgFyN7/QWAgQHoQTJKQ0ArZirkg87ixcsbsIzRxK0a3uyyyVv7Cnh8rxkS9QSwMEFAACAAgAKJok
SoFKd61LAAAArAAAADQAHABmYXN0L3hzbC94c2x0LXRyYW5zZm9ybS10by1mcmFnbWVudC1jcmFz
aC1zdGRlcnIudHh0VVQJAAO7um1YWLJtWHV4CwABBPUBAAAEFAAAALXMsQ2AMAxE0T5T3Aq0bOPA
BVlybGQs5keiYAPqr/e3mKealIaDmZErhhoBUycW0DjphVtSpRtbcudQ11fEwGHRxb6O4lVt++X6
AFBLAwQUAAIACAC2myRKHWHzSb4BAABfAwAAEQAcAGZ1bGxfcmVzdWx0cy5qc29uVVQJAAOnvW1Y
qL1tWHV4CwABBPUBAAAEFAAAAMVRy27bMBD8FYOnFpCql9ug6smI3VfcNrCUpj0JK3EVERYpgVw1
Foz8e0nJNnoIci1PxOzuzOzsar0udpvsbptnr46M0JBh6ZFJ5ALchzRU+8vHF8ovQXHf0Njim4Zk
62oa+04TS9nH7ermN/MYHnqsCLmFbldZZhGoaADbzPLNr3wxgU8ee0wqNy8Uoa6hwkk7xwPlZ1ng
/Hp4Rmm3+WRtZ19+fH9Z7nq3yj5boAFTGOKoNUtJD/g0PY8J6Qjd6PHs5hFLv2+B6k5L/5LI2YFB
CYpENYEoS+QcuV91dgVFl+h8bFFawPzX9U47mr3oezeexHHoMTXIQuODRmNEp6yn2GMdNaiLSoNp
ZpfrQfY7VJYx14h+EoXRW4tbtmcqkau4MN2ieugnrzW0Bmc1KayUemCpVW9h7AYqplwLLqxfFvzs
2kGiCdZAEGzus+AeyxtBwXbqzacTeOwPameYpcuZtQdjnNllsnwXeawXB2xPvKigbP8xwYHQCoVX
afz+9tuiU4uvoAbQ4yJceos4jK5OGfYaiUZLTVUzJ+mxWhwc2xRfMkvXLexHllrVwVoo5gMBuTiL
Wrje6QivP/wFUEsDBAoAAAAAADGVJEoAAAAAAAAAAAAAAAAFABwAaHR0cC9VVAkAA12ybViovW1Y
dXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAHSVJEoAAAAAAAAAAAAAAAALABwAaHR0cC90ZXN0cy9V
VAkAA9yybViovW1YdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAADKVJEoAAAAAAAAAAAAAAAAvABwA
aHR0cC90ZXN0cy9jb250ZW50ZGlzcG9zaXRpb25hdHRhY2htZW50c2FuZGJveC9VVAkAA1+ybVio
vW1YdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIACqaJErcmG/vNgAAADoAAABRABwAaHR0cC90ZXN0
cy9jb250ZW50ZGlzcG9zaXRpb25hdHRhY2htZW50c2FuZGJveC9yZWZlcmVyLWhlYWRlci1zdHJp
cHBlZC1zdGRlcnIudHh0VVQJAAO/um1YX7JtWHV4CwABBPUBAAAEFAAAACvNS0lNy8xLTbFS8ApW
cA0K8g9SCKksSHUtKsovslIohUkrZBYr5OWXKCTmKeQnZaUml3ABAFBLAwQUAAIACAApmiRK3Jhv
7zYAAAA6AAAAagAcAGh0dHAvdGVzdHMvY29udGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRi
b3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtd2l0aC1tZXRhLXJlZmVyZXItYWx3YXlzLXN0ZGVy
ci50eHRVVAkAA726bVhdsm1YdXgLAAEE9QEAAAQUAAAAK81LSU3LzEtNsVLwClZwDQryD1IIqSxI
dS0qyi+yUiiFSStkFivk5ZcoJOYp5CdlpSaXcAEAUEsDBBQAAgAIACmaJErcmG/vNgAAADoAAABr
ABwAaHR0cC90ZXN0cy9jb250ZW50ZGlzcG9zaXRpb25hdHRhY2htZW50c2FuZGJveC9yZWZlcmVy
LWhlYWRlci1zdHJpcHBlZC13aXRoLW1ldGEtcmVmZXJlci1kZWZhdWx0LXN0ZGVyci50eHRVVAkA
A766bVhdsm1YdXgLAAEE9QEAAAQUAAAAK81LSU3LzEtNsVLwClZwDQryD1IIqSxIdS0qyi+yUiiF
SStkFivk5ZcoJOYp5CdlpSaXcAEAUEsDBBQAAgAIACmaJErcmG/vNgAAADoAAABpABwAaHR0cC90
ZXN0cy9jb250ZW50ZGlzcG9zaXRpb25hdHRhY2htZW50c2FuZGJveC9yZWZlcmVyLWhlYWRlci1z
dHJpcHBlZC13aXRoLW1ldGEtcmVmZXJlci1uZXZlci1zdGRlcnIudHh0VVQJAAO+um1YXbJtWHV4
CwABBPUBAAAEFAAAACvNS0lNy8xLTbFS8ApWcA0K8g9SCKksSHUtKsovslIohUkrZBYr5OWXKCTm
KeQnZaUml3ABAFBLAwQUAAIACAApmiRK3Jhv7zYAAAA6AAAAbwAcAGh0dHAvdGVzdHMvY29udGVu
dGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtd2l0
aC1tZXRhLXJlZmVyZXItbm8tcmVmZXJyZXItc3RkZXJyLnR4dFVUCQADvrptWF6ybVh1eAsAAQT1
AQAABBQAAAArzUtJTcvMS02xUvAKVnANCvIPUgipLEh1LSrKL7JSKIVJK2QWK+Tllygk5inkJ2Wl
JpdwAQBQSwMEFAACAAgAKZokStyYb+82AAAAOgAAAH4AHABodHRwL3Rlc3RzL2NvbnRlbnRkaXNw
b3NpdGlvbmF0dGFjaG1lbnRzYW5kYm94L3JlZmVyZXItaGVhZGVyLXN0cmlwcGVkLXdpdGgtbWV0
YS1yZWZlcmVyLW5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlLXN0ZGVyci50eHRVVAkAA766bVhe
sm1YdXgLAAEE9QEAAAQUAAAAK81LSU3LzEtNsVLwClZwDQryD1IIqSxIdS0qyi+yUiiFSStkFivk
5ZcoJOYp5CdlpSaXcAEAUEsDBBQAAgAIACmaJErcmG/vNgAAADoAAABqABwAaHR0cC90ZXN0cy9j
b250ZW50ZGlzcG9zaXRpb25hdHRhY2htZW50c2FuZGJveC9yZWZlcmVyLWhlYWRlci1zdHJpcHBl
ZC13aXRoLW1ldGEtcmVmZXJlci1vcmlnaW4tc3RkZXJyLnR4dFVUCQADvrptWF6ybVh1eAsAAQT1
AQAABBQAAAArzUtJTcvMS02xUvAKVnANCvIPUgipLEh1LSrKL7JSKIVJK2QWK+Tllygk5inkJ2Wl
JpdwAQBQSwMEFAACAAgAKpokStyYb+82AAAAOgAAAG4AHABodHRwL3Rlc3RzL2NvbnRlbnRkaXNw
b3NpdGlvbmF0dGFjaG1lbnRzYW5kYm94L3JlZmVyZXItaGVhZGVyLXN0cmlwcGVkLXdpdGgtbWV0
YS1yZWZlcmVyLXVuc2FmZS11cmwtc3RkZXJyLnR4dFVUCQADv7ptWF+ybVh1eAsAAQT1AQAABBQA
AAArzUtJTcvMS02xUvAKVnANCvIPUgipLEh1LSrKL7JSKIVJK2QWK+Tllygk5inkJ2WlJpdwAQBQ
SwMECgAAAAAAZ5UkSgAAAAAAAAAAAAAAABAAHABodHRwL3Rlc3RzL21pc2MvVVQJAAPBsm1YqL1t
WHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAA5miRKXoT0aeYAAABiAQAALQAcAGh0dHAvdGVzdHMv
bWlzYy9jb3B5LXJlc29sdmVzLXVybHMtc3RkZXJyLnR4dFVUCQAD3rptWH2ybVh1eAsAAQT1AQAA
BBQAAAB1jUFLw0AQhe/9FXOSRKSTiqIMJSDaXBSVRNrzdjNJV5JM2J0I/nsTG1EKMqf33vfmbfL8
JSfIjGu4BBUw3h7cB0MY9p6DDN4yVOLhoNoT4uryZpmMt6LbJEmwdcHiDxfQStubEJbvfb3ArTRD
O5oPRg1udgXueP/oFItveFL34hkbMSV7nHfRVvjEtbGfY3539Ja276PrqyQGgqBGnYWcq1f16/kH
0WklhX8jIuvZKEdWuqCwe8uICvWuq+Hs4reWedPy5ByxLVuVP4PPUjKcpxMQtCSqhs6qk269F2kg
mttxGi++AFBLAwQUAAIACABdmiRKFTU1knoAAAC8AAAAKgAcAGh0dHAvdGVzdHMvbWlzYy94c2x0
LWJhZC1pbXBvcnQtc3RkZXJyLnR4dFVUCQADIrttWMGybVh1eAsAAQT1AQAABBQAAACNjkEOwyAM
BO95hT9AIO2hFb8hxFUsGYyMkfr8EuUD1V5WO4fZLKURJyOpgKqiET7ECKdZi95vj9caZrb4DiH4
Qj17xS5DM3b/7WxuT4ej0kTNDaV1bsBUEZ6AjAWrwU2XSeJdIcKoaZ8aE2BJx3+6Kn3k87qXLDEv
P1BLAwQKAAAAAABqlSRKAAAAAAAAAAAAAAAAFAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvVVQJAAPH
sm1YqL1tWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABXlSRKAAAAAAAAAAAAAAAAKgAcAGh0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L1VUCQADprJtWKi9bVh1eAsAAQT1
AQAABBQAAABQSwMEFAACAAgAVJokSmOqrGyCAAAAqAAAAEAAHABodHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtYWxsb3dlZC1zdGRlcnIudHh0VVQJAAMPu21YpbJt
WHV4CwABBPUBAAAEFAAAAC2NQQrDMAwE73mFXhA7vaT4FYW+ILgbYlAsIyml/n1NKXtahtnNcrbC
mxepBFXRRHth0OHeUgjLbZ3jyJLuMcZgyJcW7yFLdVR//vtDuOQeFCaXZlgw74z5Y0xcKmglMM4h
0A/YAfg0aHpDbVwnksqdljnSjs2vMUSbguxqTdTxmr5QSwMEFAACAAgAVJokSmOqrGyCAAAAqAAA
AFIAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZl
Y3RlZC1ieS1zdHlsZS1zcmMtMi1zdGRlcnIudHh0VVQJAAMQu21YprJtWHV4CwABBPUBAAAEFAAA
AC2NQQrDMAwE73mFXhA7vaT4FYW+ILgbYlAsIyml/n1NKXtahtnNcrbCmxepBFXRRHth0OHeUgjL
bZ3jyJLuMcZgyJcW7yFLdVR//vtDuOQeFCaXZlgw74z5Y0xcKmglMM4h0A/YAfg0aHpDbVwnksqd
ljnSjs2vMUSbguxqTdTxmr5QSwMEFAACAAgARpokSq+IHNetAAAApAEAADoAHABodHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13ZWJzcWwtYWxsb3dlZC1zdGRlcnIudHh0VVQJAAPzum1Y
j7JtWHV4CwABBPUBAAAEFAAAAN2PzQrCMBCE732KPbYHjSBeggiiPYkUKuo5SbcQSHfDNqn69v6g
L+FtBr5vYOq2bVoNZzI2ICSGlIWACTw5wQEpmQAmJ55NxuU8QLkA4gSGAEVYqkJdOOQBR7U3yaj6
elJXtAef1ImzOHy3HQuqI3c5vLAb2u5FWjPiR3mHuYuxXK5WFWio7w5j8kyNrCf23Qa+C1r/cK0j
Ss8yNBFpS90FxfeP0jKHqqj/7tETUEsDBBQAAgAIAEaaJEpLG4E1pwAAANIAAAAyABwAaHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2Vic3FsLXN0ZGVyci50eHRVVAkAA/O6bViPsm1Y
dXgLAAEE9QEAAAQUAAAANczNCsIwEATgu0+xx/agEcRLEEG0J5FCi/acpFsIpLthm/jz9lbR2wx8
M1XT1I2GKxkbEBJDykLABJ6c4IiUTACTEy/vxuU8QrEG4gSGAEVYyoW6ccgjTupkklFV16oO7dkn
1XIWh592ZEF14T6HmT3Q9rO0ZsLv5BNWLsZis92WoKF6OozJM9Wyu7Pv9/B70PrPtY4oA8tYR6QD
9TcUP7wKyxzKxRtQSwMEFAACAAgAWZokSksbgTWnAAAA0gAAAD8AHABodHRwL3Rlc3RzL3NlY3Vy
aXR5L3N0b3JhZ2UtYmxvY2tpbmctbG9vc2VuZWQtd2Vic3FsLXN0ZGVyci50eHRVVAkAAxq7bVi1
sm1YdXgLAAEE9QEAAAQUAAAANczNCsIwEATgu0+xx/agEcRLEEG0J5FCi/acpFsIpLthm/jz9lbR
2wx8M1XT1I2GKxkbEBJDykLABJ6c4IiUTACTEy/vxuU8QrEG4gSGAEVYyoW6ccgjTupkklFV16oO
7dkn1XIWh592ZEF14T6HmT3Q9rO0ZsLv5BNWLsZis92WoKF6OozJM9Wyu7Pv9/B70PrPtY4oA8tY
R6QD9TcUP7wKyxzKxRtQSwMEFAACAAgAWZokSksbgTWnAAAA0gAAAEMAHABodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3N0b3JhZ2UtYmxvY2tpbmctc3RyZW5ndGhlbmVkLXdlYnNxbC1zdGRlcnIudHh0VVQJ
AAMau21YtrJtWHV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7
YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07q
ZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6
z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIAGSaJEpgS2YQkQAAAPsBAABFABwAaHR0cC90
ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhzbC1kb2N1bWVudC1zZWN1cml0eU9yaWdpbi1zdGRl
cnIudHh0VVQJAAMsu21Yx7JtWHV4CwABBPUBAAAEFAAAAO2OMQ6DMAxFd07hC4QEllaZYejSngEF
UyKZJLKdCm5fOvQGHau/vq/3Qt5KpEljToDMmT0skRBW1eKt7fpL6851/uqcs4KhctTD7iJmGO+3
cTC7kJlzqBsmNV/gwfEZU7tvBBQTQg9I+CFA9CCUFVGb8+lfyHK6PeREB3StgwUnrYwCEyNILSWz
4tyEf+iPQ99QSwMECgAAAAAARJUkSgAAAAAAAAAAAAAAABMAHABodHRwL3Rlc3RzL3N0b3JhZ2Uv
VVQJAAN/sm1YqL1tWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAA8miRKSxuBNacAAADSAAAARQAc
AGh0dHAvdGVzdHMvc3RvcmFnZS9jYWxsYmFja3MtYXJlLWNhbGxlZC1pbi1jb3JyZWN0LWNvbnRl
eHQtc3RkZXJyLnR4dFVUCQAD47ptWH+ybVh1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH9qAR
xEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G5TxC
sQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz3Zag
oXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQKAAAAAAB0lSRKAAAAAAAA
AAAAAAAAGgAcAGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvVVQJAAPcsm1YqL1tWHV4CwABBPUB
AAAEFAAAAFBLAwQUAAIACABumiRKfn/tF7EAAAABAQAAQQAcAGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1hc3luYy1zdGRlcnIudHh0VVQJAAM/u21Y3LJt
WHV4CwABBPUBAAAEFAAAAGWNsQrCQBBE+3zFVqKgHjaCB1YmglgoiZhCLC7JKoe522OzUfx7DQRU
LGd4My9J012qYePvprYVrMgLepkcngHHYPs2GDYOBRneucVppI5Utw4bFRsxKskzlWOxtaIyarnE
Lq2IUYXayIXYKY/yIL6pveEGq97SSaZlCMPZYj4CDQVRDf1U69ChX+SwJN8I5Ie11pmw9VcYjCHF
Eu0duSNgMILTT7H83MWtc88//Tl6AVBLAwQUAAIACABumiRKfn/tF7EAAAABAQAAQAAcAGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1zeW5jLXN0ZGVyci50
eHRVVAkAAz+7bVjcsm1YdXgLAAEE9QEAAAQUAAAAZY2xCsJAEET7fMVWoqAeNoIHViaCWCiJmEIs
Lskqh7nbY7NR/HsNBFQsZ3gzL0nTXaph4++mthWsyAt6mRyeAcdg+zYYNg4FGd65xWmkjlS3DhsV
GzEqyTOVY7G1ojJqucQurYhRhdrIhdgpj/Igvqm94Qar3tJJpmUIw9liPgINBVEN/VTr0KFf5LAk
3wjkh7XWmbD1VxiMIcUS7R25I2AwgtNPsfzcxa1zzz/9OXoBUEsDBBQAAgAIALiZJEpbBFgOogUA
AE0QAAAKABwAaHR0cGQuY29uZlVUCQAD67ltWBu9bVh1eAsAAQT1AQAABBQAAACtV21v2zYQ/q5f
QbgwsBWTnLhx5xVBANdxlixJnVlOAyxJDVqiJNYSqZFUYnvrfvuOlOUXyVEDbA4QicfnuTsdj8ej
S8QTESPOFWq0MikalnWdKTJHAY3Jh5ZK0tYdmV5SZd1Q/wxkANsIW5FSqe+k1G9YrscF+cixeBEm
NWKqEWBlTBPCM4XeHRxYl4SkvZg+ETRk1jWer8cj8mdGpJLocBtVUA874CxlbooFcc13AFDzdyQd
y1VYqB3ASu8dFzMj6xxoaZ8zRjxFOZM3RPQjGvvaMPws64pj/5r7GXwZzhSnzCfzSZILYjolc+K1
cIq9iLRbIJ6sQY7k2+SM0blfRzSAEgl7HpFy4vEkxarW6jawrCRTEZvoJfiO3yvUHvryVfTly/SI
S/V9ukaV6JR5cebXml5BSsSYh+AOC2hYx92gSvSIYB8ypI67gpSIUsZ1JJguERJI6jqGni/HVNJa
z/R8ieKFtI4B0yUCIyFXFOtNUUfcgmkFb7aXLsEhSXBau3YrTCXvzWasz3gDKRNjiutpGlAiCfIs
qKpdhBWkREyjtFOwVr8yGcYapYlWXok+4YSgw/bPzgH8HVrW8SkVUHy4WKDWiaV1DFPzaehClxEi
0RmPY/7sLpIrymYSXWexop8peZZoAKb6v14A0mwBaeg9jR6CJUF9oke5UgHJCvGBuZ98whYbKAoE
T/SMddxa+3JiWT1TU3RNNy47kcqrDLishRL9gxpfHpwf7s+jx/uxevz7/tR/vHfl40T/+7Fx8rLd
U3jZmNUSF1JIBgvj7nHL6AcXbiXpY8YZ9XBsnIBj4hyKBIP3K85nWSrRMAh0lQ6vyBOJ0TMWzLIG
QnABst3DiGip3vKOmquGIZ1xkWA4AZsRasaomaGmQg+NpnhooOaJRM2pHv01IgERRHyjINZjcEvY
vZAwpUUNBGV3ShnxX6exeWoYCWc7+I0VZJ+g5m0D8tIIdlHGNs5tN5B5KTLLpSHDKhMmTNbxRVBU
mHXeeycQ3EJ+UsaYSuPly9bz/SvMwgwMIB8jx59VxCxGDosrYsKQQ1hVrEBMKuJAICcQVZOQb34V
DQvskKrJSGfnGt2PsJBg7sId2t1u5xe7ixwqef5a4VLwC5qcsvgrfPNXvE9l+6Ddtn+7gWkqK7QZ
fM5MvEi7HBlX7Fn1ixmEjVXDxjiIeUWcQiBS/uIXt3MzaTVUKXxuqvaI7anQM/CoTMZqiZw4q8g9
iJGHq4skYZGqoZFPyJFPVSWA9kC/V2WIDDmianYZ2eM75MBDPZcj8JGGnaIUI6cYOVN4KUPvLj6d
Du9c+7DdOQTzqXkpg/o33ffv1/q8FEYvBl2bMmHf+FxgLocXXXtUqJlx2rUrSXLbd2HdCkzmyfY+
xNE24qiCGJ9Btq8RKuhaBrK7z7fP7NV2178iwDeCcjjsFnonw9aHbQ6aYZ/6Zv/BfoG9AXkOmQlZ
CPmU5w4sls4TyAlYf1jr1drslJuVt+NFCid1msZQ1rUTrbkNjTpyVLhcYwbM4z5lIZrbuqkVcO4g
5489s+GSpsgJl7v0c8z8GM4d6Gts6Qmq0x7eIcPjXTfgxqNvKQnsJ6kfZQXSVFY71fH1C0wVxHwb
S5tK05rV1VjTDGxq7J5QmCuTDThwNkpfB5xi9RqgLXkmPGIUy32Z4VOxnRHrbsB0Iii/1phg5a+F
f5VFholJEOPQdOHm2JWIs90pGXGhJjwlbKJgCNM1YSv6r5Vzo3w4YCEcu/q02xLCZc5HcJoOfr8d
uOPJ9WB8Pjz9hr6MR73+YBs40sqdt8hG92ePJeOfqVAZjnWvgd5+6B4dvcsN723hzIR7tfHmuLXF
B3VvrDeoB0tCbJkSjwbUM7dsuZCKJCgVXOW3TweQq96qIaTw/o8Waqu91A2b8/bBeXB0/+QHcAn+
Lxa2esV/AVBLAwQKAAAAAABulSRKAAAAAAAAAAAAAAAACQAcAGltcG9ydGVkL1VUCQAD0LJtWKi9
bVh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAdpUkSgAAAAAAAAAAAAAAAA0AHABpbXBvcnRlZC93
M2MvVVQJAAPfsm1YqL1tWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAB2lSRKAAAAAAAAAAAAAAAA
GgAcAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvVVQJAAPfsm1YqL1tWHV4CwABBPUBAAAEFAAA
AFBLAwQKAAAAAAB6lSRKAAAAAAAAAAAAAAAAJgAcAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkv
Z2VuZXJhdGVLZXkvVVQJAAPnsm1YqL1tWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABpmiRKjzQa
cEQAAACgCQAARwAcAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9m
YWlsdXJlc19SU0EtT0FFUC1zdGRlcnIudHh0VVQJAAM1u21Y37JtWHV4CwABBPUBAAAEFAAAAHPO
L81JUcjLL1FIT81LLUosSVVIVMhOrVQoSMws0lEoLkksKS1W0DUxNjDhch5VO6p2VO2o2lG1o2pH
1Y6qHVVLc7UAUEsDBBQAAgAIAG2aJEpUAsmyNgAAAMACAABQABwAaW1wb3J0ZWQvdzNjL1dlYkNy
eXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzX1JTQVNTQS1QS0NTMS12MV81LXN0ZGVy
ci50eHRVVAkAAz27bVjnsm1YdXgLAAEE9QEAAAQUAAAAc84vzUlRyMsvUUhPzUstSixJVUhUyE6t
VChIzCzSUSguSSwpLVbQNTE2MOFyHlU7qnaQqQUAUEsDBAoAAAAAALCaJEoAAAAAAAAAAAAAAAAg
ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9VVAkAA7u7bViovW1YdXgLAAEE9QEA
AAQUAAAAUEsDBAoAAAAAAJOVJEoAAAAAAAAAAAAAAAAqABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvVVQJAAMWs21YqL1tWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIA
CABomiRKRmgb25kAAADFAAAASAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmN1cnNvcl9pdGVyYXRpbmctc3RkZXJyLnR4dFVUCQADM7ttWNCybVh1eAsAAQT1
AQAABBQAAABdjrEKwjAURfd+xRvbxSCKQjZtO4iK2IAdJU3eEEj7QvpS/Hxr6eR44ZzDrZvm0Ug4
MWMfGJhA20kPBkGDoT54ZLRgUhwpZuJFPvU4ikqzFnWrRIvd1bFQlKLB3yoporiTTX7G3GDxg9Z2
YsQ4YRTqeXOMl+pcLsGNCSHfbY8FSOiIPKwBKWdELYqUf46U68E8uYEP+zcX2RdQSwMEFAACAAgA
cJokSh3RjyajAAAATwIAAEYAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJmYWN0b3J5X29wZW4xMS1zdGRlcnIudHh0VVQJAANEu21Y4bJtWHV4CwABBPUBAAAE
FAAAAO2PsQrCMBRF937FG9vFIIpCNm07iIrYgh0lTd4QSPtC+lL8fGvp5Bc4OF4453JvWVW3SsKB
GTvPwATKjKrXCAo0dd4howEdw0AhEQ9yscNBFIqVKJtaNNieLYuaYtD4STkFFFcy0U2Y7Q2+0JhW
DBhGDKK+XyzjqTjmc+FKe59u1vsMJLREDpYCKSeknhUpvxwpl4FptD3vtk/OkvJ/4kdOvAFQSwME
FAACAAgAcpokSkZoG9uZAAAAxQAAAEMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJpbmRleF9jb3VudC1zdGRlcnIudHh0VVQJAANHu21Y5bJtWHV4CwABBPUB
AAAEFAAAAF2OsQrCMBRF937FG9vFIIpCNm07iIrYgB0lTd4QSPtC+lL8fGvp5HjhnMOtm+bRSDgx
Yx8YmEDbSQ8GQYOhPnhktGBSHClm4kU+9TiKSrMWdatEi93VsVCUosHfKimiuJNNfsbcYPGD1nZi
xDhhFOp5c4yX6lwuwY0JId9tjwVI6Ig8rAEpZ0QtipR/jpTrwTy5gQ/7NxfZF1BLAwQUAAIACABx
miRKRmgb25kAAADFAAAARAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmluZGV4X2NvdW50Mi1zdGRlcnIudHh0VVQJAANGu21Y5LJtWHV4CwABBPUBAAAEFAAA
AF2OsQrCMBRF937FG9vFIIpCNm07iIrYgB0lTd4QSPtC+lL8fGvp5HjhnMOtm+bRSDgxYx8YmEDb
SQ8GQYOhPnhktGBSHClm4kU+9TiKSrMWdatEi93VsVCUosHfKimiuJNNfsbcYPGD1nZixDhhFOp5
c4yX6lwuwY0JId9tjwVI6Ig8rAEpZ0QtipR/jpTrwTy5gQ/7NxfZF1BLAwQUAAIACABymiRKRmgb
25kAAADFAAAARAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YmluZGV4X2NvdW50My1zdGRlcnIudHh0VVQJAANHu21Y5LJtWHV4CwABBPUBAAAEFAAAAF2OsQrC
MBRF937FG9vFIIpCNm07iIrYgB0lTd4QSPtC+lL8fGvp5HjhnMOtm+bRSDgxYx8YmEDbSQ8GQYOh
PnhktGBSHClm4kU+9TiKSrMWdatEi93VsVCUosHfKimiuJNNfsbcYPGD1nZixDhhFOp5c4yX6lwu
wY0JId9tjwVI6Ig8rAEpZ0QtipR/jpTrwTy5gQ/7NxfZF1BLAwQUAAIACAB6miRKRmgb25kAAADF
AAAASQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVj
dHN0b3JlX2NvdW50LXN0ZGVyci50eHRVVAkAA1e7bVj0sm1YdXgLAAEE9QEAAAQUAAAAXY6xCsIw
FEX3fsUb28UgikI2bTuIitiAHSVN3hBI+0L6Uvx8a+nkeOGcw62b5tFIODFjHxiYQNtJDwZBg6E+
eGS0YFIcKWbiRT71OIpKsxZ1q0SL3dWxUJSiwd8qKaK4k01+xtxg8YPWdmLEOGEU6nlzjJfqXC7B
jQkh322PBUjoiDysASlnRC2KlH+OlOvBPLmBD/s3F9kXUEsDBBQAAgAIAHmaJEpGaBvbmQAAAMUA
AABKABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0
c3RvcmVfY291bnQyLXN0ZGVyci50eHRVVAkAA1a7bVjzsm1YdXgLAAEE9QEAAAQUAAAAXY6xCsIw
FEX3fsUb28UgikI2bTuIitiAHSVN3hBI+0L6Uvx8a+nkeOGcw62b5tFIODFjHxiYQNtJDwZBg6E+
eGS0YFIcKWbiRT71OIpKsxZ1q0SL3dWxUJSiwd8qKaK4k01+xtxg8YPWdmLEOGEU6nlzjJfqXC7B
jQkh322PBUjoiDysASlnRC2KlH+OlOvBPLmBD/s3F9kXUEsDBBQAAgAIAHmaJEowPYU3nwAAAIoB
AABKABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0
c3RvcmVfY291bnQzLXN0ZGVyci50eHRVVAkAA1a7bVj0sm1YdXgLAAEE9QEAAAQUAAAA3Y+xCsIw
FEX3fsUb28UgikI2tR1ERWzAjpImbwikfSF9KX6+tXTyExwvnHu4t6rrey3hwIxdYGACbUfdGwQN
hrrgkdGCSXGgmIkn+dThIErNWlSNEg22F8dCUYoGv+lEEcWNbPIT5nqLb7S2FQPGEaNQj6tjPJfH
0yxcmRDyzXpfgISWyMMikHJC1FyR8qcj5TIwT67n3fbFRVb9w4kPUEsDBBQAAgAIAHyaJEpGaBvb
mQAAAMUAAABLABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfZGVsZXRlNS1zdGRlcnIudHh0VVQJAANbu21Y+LJtWHV4CwABBPUBAAAEFAAA
AF2OsQrCMBRF937FG9vFIIpCNm07iIrYgB0lTd4QSPtC+lL8fGvp5HjhnMOtm+bRSDgxYx8YmEDb
SQ8GQYOhPnhktGBSHClm4kU+9TiKSrMWdatEi93VsVCUosHfKimiuJNNfsbcYPGD1nZixDhhFOp5
c4yX6lwuwY0JId9tjwVI6Ig8rAEpZ0QtipR/jpTrwTy5gQ/7NxfZF1BLAwQUAAIACACCmiRKRmgb
25kAAADFAAAATgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
YnRyYW5zYWN0aW9uLW9uY29tcGxldGUtc3RkZXJyLnR4dFVUCQADZLttWAGzbVh1eAsAAQT1AQAA
BBQAAABdjrEKwjAURfd+xRvbxSCKQjZtO4iK2IAdJU3eEEj7QvpS/Hxr6eR44ZzDrZvm0Ug4MWMf
GJhA20kPBkGDoT54ZLRgUhwpZuJFPvU4ikqzFnWrRIvd1bFQlKLB3yoporiTTX7G3GDxg9Z2YsQ4
YRTqeXOMl+pcLsGNCSHfbY8FSOiIPKwBKWdELYqUf46U68E8uYEP+zcX2RdQSwMEFAACAAgAjpok
SjA9hTefAAAAigEAAFgAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi90cmFuc2FjdGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNoYW5nZS1zdGRlcnIudHh0VVQJAAN7u21Y
E7NtWHV4CwABBPUBAAAEFAAAAN2PsQrCMBRF937FG9vFIIpCNrUdREVswI6SJm8IpH0hfSl+vrV0
8hMcL5x7uLeq63st4cCMXWBgAm1H3RsEDYa64JHRgklxoJiJJ/nU4SBKzVpUjRINthfHQlGKBr/p
RBHFjWzyE+Z6i2+0thUDxhGjUI+rYzyXx9MsXJkQ8s16X4CElsjDIpByQtRckfKnI+UyME+u5932
xUVW/cOJD1BLAwQUAAIACACPmiRKRmgb25kAAADFAAAARgAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL3dyaXRlci1zdGFydmF0aW9uLXN0ZGVyci50eHRVVAkAA367
bVgWs21YdXgLAAEE9QEAAAQUAAAAXY6xCsIwFEX3fsUb28UgikI2bTuIitiAHSVN3hBI+0L6Uvx8
a+nkeOGcw62b5tFIODFjHxiYQNtJDwZBg6E+eGS0YFIcKWbiRT71OIpKsxZ1q0SL3dWxUJSiwd8q
KaK4k01+xtxg8YPWdmLEOGEU6nlzjJfqXC7BjQkh322PBUjoiDysASlnRC2KlH+OlOvBPLmBD/s3
F9kXUEsDBAoAAAAAAG6VJEoAAAAAAAAAAAAAAAAmABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9VVAkAA9CybViovW1YdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAG6VJEoA
AAAAAAAAAAAAAAAqABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
VVQJAAPQsm1YqL1tWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABzlSRKAAAAAAAAAAAAAAAALwAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvVVQJAAPasm1Y
qL1tWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABmmiRKtuUISAkCAAC9DAAARQAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1vcmlnaW4tc3RkZXJy
LnR4dFVUCQADMLttWNCybVh1eAsAAQT1AQAABBQAAADtll1r2zAUhu/3K3zT3p3k6FsqhBGytBts
SyHbdZGOpCbMjUPssfXfT25pt4RC05WxjRT7yjZ67Mcvr85k9nE+ez+tPkzn8/HZ9KSabZaXy1W1
6Lr1yXBYN+TrRdN2J9YiVsu2WjVd5eu6+ZZiFa6rMVFqW5g0q27T1DDu78DtGoNXk93FT1NHi2p8
/q4iv+pXqhsf71iMmwGWg92whrl/dujXy+Emtc3XTeEM15uU6+Xlohusr193zZe0GgWUOggbwCrU
IF2Q4IRgEITmRujgKfrjK//9wl+mER43N6826pFHYnzET8t5Dy5XevTxzfddXKVu0cR2dDb9NPiz
Wv6e8y0W29c599xFNAJ40AiSOQOO6QjKEDHPtc3EHnF+D751zg7I+VbO93YemUo8YAAueMk5CYSg
KIIjqShri0bR03J+MM7bLelOSrGvdC+zRNIWrGQCpLG+l17+AVcYePKoU3xYevug9Z59SNZ/wp5i
XYRsbFYSNHIC6UmAyywBRsGtVhGzf9T6r/1ySNZ/ex9V3GSXsgafgi39Ehl4khISKYOkSBhrnreP
ns/mL9J3hhfmbBlgLHipSqkrW5omGA0BufHE0VCg50l/Ox2/Gfx3XhzjjhEyQC1UCSM3ZbzzHjja
5ENOKlJ8Zhg/v2Rxp3WdisZqAT46CRJZKYCgBGA2LpJO5K37xwbpH1BLAwQUAAIACABnmiRKx0oe
Z10BAABsBQAAUQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Nv
cnMvY29ycy1wcmVmbGlnaHQtcmVkaXJlY3Qtc3RkZXJyLnR4dFVUCQADMbttWNGybVh1eAsAAQT1
AQAABBQAAADtlM1qwzAMx+97Cl/amxt/xU0KYZTSjsE+Cn2A4tjyGpbFIXZZ9/ZTButO7W2HwbCx
ZGFJf34Ir56fds8Pa/K43u2Wd+sF2UCyB7Lc3hNrui4k0gbjyCGlfpFlXMxnDBdfFAVjmR/fZqZv
sgFiOA4WInquGcCmWf9xm8IrdJXgGqzkmipla6q8LGjJC0sLBkqDFLrQfPpmTnvzAhWbfhfYx2TS
MVaS8WkbrElN6KpRx0QuJ2KD+6wGI6MeDH0pQoua8LRhiGhmMzzOCtHvB/Bt83IYRf70O0enpm3D
+/4AxsEQqxP1ARPpTxbZfrsEy/ahi0CaSEZa8WixR/TH9mb1+2g5cGc05DR3dU4V9yUta1tSWQqQ
JWNM1eIqWvGP9gJa67GbdwWVWhVUOV5TU4/X3HNlhZjnUl5FK//RXkDLVKmYdTiw4PFXEHOgtdI4
urx2oHJVan19aud/E+0nUEsDBBQAAgAIAGiaJEpylkNTnwIAALwQAABPABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC1zdGF0dXMt
c3RkZXJyLnR4dFVUCQADM7ttWNSybVh1eAsAAQT1AQAABBQAAADNl91qJDcQhe/zFH3lu/LopySV
DGZZFicEkuyCH8CUVFVrk4lncI/J5u1TE8heBxpC09C0mkbo61Kdc/Tp82+Pn395WH59eHz8+NPD
3fKjXubz8vHLz8vk19fTZTmeWJbny+V8dzjE1G6DX/GOKISDXb898Pnl8Kbr6f1t6no4v6kdX74+
X27Pf324nH7X1/tpodtAhVmxAGoloFomjFCk9t7zaOXmD/72xF/1Ptzw8Xj68+lZWfRtvf8GdvKJ
4fu8N9+fntYLX97X+xzC7fLl37eLr+V8el11eVmXK8D6Pn1hq70ff/j0P9ByTjFL+ge0AgYV6C0R
1Jis4ug95I20cUe0ynOgxA6pcwc0VRgpGuRUU1LCarKRNu2I1gqlgNpgqjpt6hG6TAatWVVLyZbH
Ntq8I9pORVrVBHlm384oAiwRwZu5KUmTqmEbLe6I1ndsbRIycL/ScjDoMyFYt0iICVn7NtqyJ9o8
Syg8gGYYgAUZBgUFQYp1ypwh8zbauifazhhlBhhxZNdk9L7V4H1rOiZxjlo20rYd0cbCrVgSL+Y0
p5UJXKhAZSlFQ5dMcRst7Yi2aOYgxiATBXBgBsqiwN7CrRTpbWxSKdyV30qVnmf0/WuleW3ngO7M
EIk5KOWqYtto95SlTDCW6IwxTPLaRoLeZ3NawjhrdZXaSLsnv1XkWDPNqwNFTxdiQBYEalKN7rg8
YttGu6csxVxDL+oGSxI8XXByleoVbIpNI2oDN9YWd0VrPFprHozVHajVDK5UAczEXJAr5rmxtntK
FzWan4FyhX4VKLTagIbfQkTtXHMl1S20ZVea3JGENROINu9bmwhjIoH/gjJqYg25baPdU9/S0DCy
n2rZzcZzsnliLm6/MfrYWu3Iso32v2ry31BLAwQUAAIACABpmiRK1picRJcBAADeBQAASAAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGln
aHQtc3RkZXJyLnR4dFVUCQADNbttWNaybVh1eAsAAQT1AQAABBQAAADN1Etr3DAQAOB7f4VOvc1a
ksd6LIRitm5TyIvulh6LHqN4qWu7a4Vm/33t5NLDQnIoYREMYvSaDwZtbm+2t1cNu2622/pzs2af
KIeW1XdfWHB9P2TWDS6yNudxXRRC6hWfh1gbw3mRlr2FG/fFgabh4RBoKsYDpW5/3+bVePyQh5/U
X4hANnDvwaJVgKV24K1G8JFXMVgUHPn7X+7xh7unC75i15TbIbKPzVWza9h+YksZruuGPxSZP7I6
zA9NsBn6fBg6qJcVeD40rd5t3kBkVZKkKwmcdAmoZAQjVABloyLhUdoynBDdfdudJYdE1F5UFSgl
CHC+BLzyCFFGjiSReylOcerd5vIsQVxH65WrQCBxQONK8OUyK7kPxnprjDkBumm+nyVn6SijeQBE
PwdNJTg7B4PIK6eTMwb/5Xyl3w80ZdaSi3RgaU9dZI+Q5xw858RrnZdP29/I6RHRucQhyOQBq0Tg
yjmUTmKqiFdWhRedS/3UZ9gdRzpLpZk/QG14BX7uRUBnFBifBIjAdVCJRJL/6/P4C1BLAwQUAAIA
CABrmiRKbKXhe8kCAAC/EwAAUQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2NvcnMvY29ycy1yZWRpcmVjdC1wcmVmbGlnaHQtc3RkZXJyLnR4dFVUCQADObttWNqy
bVh1eAsAAQT1AQAABBQAAADtl11rU0EQhu/9FeemuZtkvz8KQUJpVVAr9geU2d3ZJhhzYs4pbf+9
cyo2QkMQzIXakHBO2HwwPHmfndmzy49Xl+/Pmw/nV1ezN+enzQX1ed7MPr1rMq5Wbd8sWyzNvO/X
p5OJVH4s+CFPQxBiUofPTnC9mGyoa283mbrJekN1ubiZ9+P1w+uveH+NNzQVo779QqupUjF44SRE
GwmM0QQogwKLypKPohpVRhsqiw3l/rrrsb/tplrI0bLN2C/a1XQo5ETPTtQFP5/K4ZWhIF56LInv
XBRfc7vp+DYe8+WpRH79a5Gj3N6u+qkcN5/p2y11fTMnLLRp6oKWpbmHO52bRdcMLHC5bO+oNOmh
mWX+qQ7O2lW/aZcwG96Bt4/f7Mavzg6N9SeUgeoPlpht9MUyQQwIxlkJoUgJ0ngtjCiKih1t/4Df
pzqsLudt1/8J1X+NpnE1a+E9FKwJTJEJgqEKEqWPHFTrajgETfkf0tyrfLS5yuAcpBgEGFIKQs4c
U11kLDKkhGkHTnVU/nlIixfeRUO8X3pWXpCAEFUCF6q2hYoh5/aGVB2V39L0aLTL5CHxZgkmsffo
kuKgonA5VuViOgTNF6e894qEsI5xBg3GkuF+7yUkDqisgvVHvQOnPir/PKTWqYpVIcQyTEw28OyU
KECuTmEmEY3Se0Oqj8pvaUYVrVFkwVu03IysBqwWQRZXpZdI0oZD0HxxylNEHzUG8CUzWGUSRN4D
gLIn5XRWinYp74/K7xpFs1A8voN8DCmmCsHGBAKDzcYhGrW/L/mj8lua2VsRJSufYxmOnDx/RlsM
mFB4by08UGV3CJovr8vHYmt2OLR1xikEN3gnEqggsqgu6Ui4A2c4Kv88pNXJXE0uUImTavIQ0uoC
VBOdVTKpWv3ekIaj8luaAVEJzYO9LyhZdFmGszwCn0O1zJbDyaP7AWj+Bcp/B1BLAwQKAAAAAACw
miRKAAAAAAAAAAAAAAAAJQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9V
VAkAA7u7bViovW1YdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAALCaJEoAAAAAAAAAAAAAAAAvABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9VVAkAA7u7bVio
vW1YdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAALCaJEoAAAAAAAAAAAAAAABAABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L1VU
CQADu7ttWKi9bVh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAsJokSgAAAAAAAAAAAAAAAE8AHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvVVQJAAO7u21YqL1tWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAA
AACwmiRKAAAAAAAAAAAAAAAAWgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9pbnRlcmZhY2VzL1VU
CQADu7ttWKi9bVh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAsJokSgAAAAAAAAAAAAAAAGQAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvaW50ZXJmYWNlcy9UZXh0VHJhY2svVVQJAAO7u21YqL1tWHV4
CwABBPUBAAAEFAAAAFBLAwQUAAIACAC1myRKCt+iwP5IAAAzZwEAeAAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1l
bGVtZW50cy9pbnRlcmZhY2VzL1RleHRUcmFjay9hZGRDdWUtY3Jhc2gtbG9nLnR4dFVUCQADpr1t
WLu7bVh1eAsAAQT1AQAABBQAAADsXW1zm8iy/nz5FfPhVo60G9vM8E75esuW5ax3/aKy5GTv3UpR
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
LXBsYXRmb3JtLXRlc3RzL1VUCQADdb1tWKi9bVh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAm5sk
SgAAAAAAAAAAAAAAAC0AHAByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9VVAkAA3W9bViovW1YdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAJubJEoAAAAAAAAAAAAA
AAA3ABwAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL1VUCQADdb1tWKi9bVh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAm5skSgAAAAAAAAAAAAAA
AEgAHAByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9VVAkAA3W9bViovW1YdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAA
AJubJEoAAAAAAAAAAAAAAABXABwAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvVVQJAAN1
vW1YqL1tWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAACbmyRKAAAAAAAAAAAAAAAAYgAcAHJldHJp
ZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2ludGVyZmFjZXMvVVQJAAN1vW1YqL1tWHV4CwABBPUB
AAAEFAAAAFBLAwQKAAAAAACbmyRKAAAAAAAAAAAAAAAAbAAcAHJldHJpZXMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlh
LWVsZW1lbnRzL2ludGVyZmFjZXMvVGV4dFRyYWNrL1VUCQADdb1tWKi9bVh1eAsAAQT1AQAABBQA
AABQSwMEFAACAAgAm5skSgrfosD+SAAAM2cBAIAAHAByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWIt
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
VVQJAAOmvW1YqL1tWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAC1myRKAAAAAAAAAAAAAAAAFAAc
AHJldHJpZXMvbWVkaWEvdHJhY2svVVQJAAOmvW1YqL1tWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAA
AAC1myRKAAAAAAAAAAAAAAAAGAAcAHJldHJpZXMvbWVkaWEvdHJhY2svdzNjL1VUCQADpr1tWKi9
bVh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAtZskSgAAAAAAAAAAAAAAACMAHAByZXRyaWVzL21l
ZGlhL3RyYWNrL3czYy9pbnRlcmZhY2VzL1VUCQADpr1tWKi9bVh1eAsAAQT1AQAABBQAAABQSwME
CgAAAAAAtZskSgAAAAAAAAAAAAAAAC0AHAByZXRyaWVzL21lZGlhL3RyYWNrL3czYy9pbnRlcmZh
Y2VzL1RleHRUcmFjay9VVAkAA6a9bViovW1YdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALWbJEq5
vSe3ekwAABMjAQBBABwAcmV0cmllcy9tZWRpYS90cmFjay93M2MvaW50ZXJmYWNlcy9UZXh0VHJh
Y2svYWRkQ3VlLWNyYXNoLWxvZy50eHRVVAkAA6a9bVimvW1YdXgLAAEE9QEAAAQUAAAA7F1bc6PI
kn5efkU9nOgjzbRsiktxCa9PyLLU4xlfFJbcPbsTHUQBhc0xAg0gX/bXb1aBJECSbdreObGho4eZ
toDML7OysjKzktI4TTyWZTaqf04Xs/k1i32WTlPG0B8qlrH+XRrT/K55K3wOvybRYsayw69X5zcX
w8OfDuvPS2c+i/MwCFlq7+YifWVpFiZxk4EsDRKfoenznNUv/W6SHtFQ55Lm4QPrAroU2KBxQ6Tx
c36XxOgPxdIs5bt0zbJ5EmehG9XI7ZD4JmMpOjttYtJlLEmnNGeH03DWgKXI2OjJuCdrCFu2Ytq6
fmApGurJpixLVxO0Tc4L6iG49DvC8gHGBwR1sP4FK1jpAuB5kuYbT2Es9eMkfp4liwzd3FQwGspJ
X+vrJz3rxNB6hilbPWxooCsLjwYnp6PT4cmpJEkcOeo/0nuGJmHsMXSSJLmNiAwflDEvif1MkibP
Wc5m6CzO2W0a5s9cvTnzcgGFxRTU6EvSIKXZHfPR9C5l1F8hkUGvYTanuXeH/lywBWjKS2YHdD6P
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
x9cb86UdrAvqOXFhu2JD89D95/2v9+8Pb0832fj+9vzpqYq5RE9PA23h3LrC1zIkAsCR1Nfq56kn
7eH+4ZfbOfvt29PbTSrJdgFUJKGzTkdrpcBPP7+8vt34+9pW9fTTp/q3bdseX+5/vAk+On9+0GiJ
iFVdHb/1TdCJSiwnsCP4+PLpx/uHv/789vr9BdHg44hCTdrs7fF5kOkfH3+6LXmTeoTUHkhNcfc1
B2NBW3b9/REqpq4Bhvz8qlfuPz7enn78/vHfUS1Ee+fyKMrNfFwp4C+vXxGRaqU9dzx/e/r45dP3
l8eXzb3+ZZN3hKrfCaEo8yqpNx3+7f7n2730/Rkdk4aj85x0zqiysAniRXEIIxbXsfz4+uX3a0hc
GPRvSwMtSNpBEfS3P4l10WmPX1/ffi8g9a+fvm3v0O+3E/j+9PX7c+n5xeaFeJK45rY6dhdbpu7D
68vH48vHT0/PH4/HHMwfn18f/vrp/qfbP9328qY/3x9fvtxOw//7/baM9UfClhlVH81+ci7fPz+/
/u3T18cvT/c3qXr4vrUoY5HsHuqt8dx29cS2l5CkTx+/PL58qt/5/lJ+lf3A7kEvoaHyo1qUX1+/
PP30+4GRldltofZAUVpC2eaKpDRuc4Ju5sOXT/dfvsB7rNDkO03Vr20vIfy71t2JbqmykexOPfny
7sS+8k3/2pbzWpH8vQKzRwP8EZhzJ2y31WLeabKuI+Np4t0N5Nvry/tj5deXx5ffZXZFIiauyApB
+/L46+MbLx9m3k7HksQTkAgSEjGlSETmGEIJrb9ZIfm7hEkdeE3R3y2GWKExd3SeFtZSNq4J+7XN
c/0TW7Gqjl6QiYvLJgJLk/MuKKdLdFtFZNl0s40eCFFwNFUmZCwdRfJ3aSdNuFnrPIMgRNc2iV4X
exPW/XH88vS13Gi1deU/QL1UjZtuyvWwdDMkbAF5//5texK+b5bNp/tvT0tkm4OgZWBumEq6RTv5
32u2wKcfn7483R4D76/P27P52/0bsxe2+okaqqFIdUTVMP14//70wGIKB6a4+RBjSx1/eH1uc80f
7l9uD4y1L8Ic196mBPx2evf0jYLg009t+tynh9evtyfm9jbYrEsW294pfXt3beZEjO3Cev3t0/sv
N0v1b4CSdMDazR1kmz9oomRj7E00eRJ0R7N5pKzaF3R7+b8/lTW8Pj/RlwBP096ct7Zw2FqNtEuk
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
tQmuDRrvmjXRE9be8mF7PPy6FXOvXdMDIQNxI1IZtqzXseX//f8AUEsDBAoAAAAAAPSVJEoAAAAA
AAAAAAAAAAAIABwAc3RvcmFnZS9VVAkAA8yzbViovW1YdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAA
AFaWJEoAAAAAAAAAAAAAAAASABwAc3RvcmFnZS9pbmRleGVkZGIvVVQJAAODtG1YqL1tWHV4CwAB
BPUBAAAEFAAAAFBLAwQUAAIACAAUmyRKHdGPJqMAAABPAgAAKQAcAHN0b3JhZ2UvaW5kZXhlZGRi
L2luZGV4LWJhc2ljcy1zdGRlcnIudHh0VVQJAAN3vG1YELRtWHV4CwABBPUBAAAEFAAAAO2PsQrC
MBRF937FG9vFIIpCNm07iIrYgh0lTd4QSPtC+lL8fGvp5Bc4OF4453JvWVW3SsKBGTvPwATKjKrX
CAo0dd4howEdw0AhEQ9yscNBFIqVKJtaNNieLYuaYtD4STkFFFcy0U2Y7Q2+0JhWDBhGDKK+Xyzj
qTjmc+FKe59u1vsMJLREDpYCKSeknhUpvxwpl4FptD3vtk/OkvJ/4kdOvAFQSwMEFAACAAgAFJsk
Sh3RjyajAAAATwIAADEAHABzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1iYXNpY3Mtd29ya2Vycy1z
dGRlcnIudHh0VVQJAAN3vG1YELRtWHV4CwABBPUBAAAEFAAAAO2PsQrCMBRF937FG9vFIIpCNm07
iIrYgh0lTd4QSPtC+lL8fGvp5Bc4OF4453JvWVW3SsKBGTvPwATKjKrXCAo0dd4howEdw0AhEQ9y
scNBFIqVKJtaNNieLYuaYtD4STkFFFcy0U2Y7Q2+0JhWDBhGDKK+XyzjqTjmc+FKe59u1vsMJLRE
DpYCKSeknhUpvxwpl4FptD3vtk/OkvJ/4kdOvAFQSwMEFAACAAgAFZskSm1Nsp2vAAAAAQoAACgA
HABzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1jb3VudC1zdGRlcnIudHh0VVQJAAN5vG1YEbRtWHV4
CwABBPUBAAAEFAAAAO3PwQqCQBAG4LtPMUe9tERRsLdKD1ERKeQx1t05COrIOis9fiaeOvUAcxz4
/5/5sjy/5xoOzNj2DExg3Gg6i2DAUts3yOjABj+Qj9STmtDioFLDRmVloUqsLjWrgoK3+L1O5FHd
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
T1WY74kwXwl6eTQkrDBfhfkqzFdhvgrzVZjvuTFfSmSM7hJp9cHLl6LHTnGJiHGEt31FToSe4vMA
m7s85qLLColWSDSFREuQ3L4xsAaHILkVsO4Kypg3Axk6zribEk1WzJspeJJCz/vbKQqm7cpLDBr7
OZnjrq+0LtgVGK7A8HNcWrp0FP3j3DpSCLxC4A9E4M+Co7fgp3MUAq8QeIXAKwReIfAKgW8tAt8I
DFlzDcAJ0MyyGBxLixbgcofDoXsZ1TDfBuswLgYQPTXYef5yFTG4eyEAcEsKXypCxk2UzyhgWVnj
mNKq82HfZ1o9KZj8w8DkCv++aPxbIc7NIs4X9ruPFwr8KlxfXb/+1IhzS/+NkHMAx4ch5gqnbQCn
/TgY/ydHnM9zWVwhzgpxVoizQpwV4qwQZ4U4XyZgzIFCz/arxxLorg0gZ2NX6ythjOWBzRPd1f/s
IKdCMFuF2bV4VmhB/Y+6g1/TJXl151vd+VZgtrrzrTBvdedbIfDqzndr7nx/sJvaJJbm7XJDaPSw
Q0h+eN/oJT8DX9rvEYehU8OStH4lLKZIxypeiWwYF2gPF9NIo1wx3A8Njle1rjWoaFNN/w9QSwME
FAACAAgAKpskSnjgj8lgCQAAJI8AADIAHABzdG9yYWdlL2luZGV4ZWRkYi9sYXp5LWluZGV4LXBv
cHVsYXRpb24tc3RkZXJyLnR4dFVUCQADoLxtWDq0bVh1eAsAAQT1AQAABBQAAADtHctu4zYQ6DEn
fwKxl9pAAsh6+XFz7A1qtKjdTbZ32aITNYrkynaye+m3dyhZsh4kJVnyM1xsEJgeDofz4pAzZMaj
+0fsvWOv3zct88FyrNXLb4Zj2pbz/Df2VpbrDF8M5xk/eYazMuZraEB3qHEz3nV0l9gZ3X/D/27w
aj00nDm2bWzefHcsaAG4kbE2ZsYKsyAFvnrwxUTU7wOkCTKcLLFnkJYn6w17D5YH4E3pR2exWGjS
vKOpXalF+j5AP9f7CVqAbbzG4ZAh6qHrONjH/ORG+kKF5HxLmVCmqdmKk6crhtSCns03w3JaiILg
hegqHvmD5YNtP0dMWQFdTy/Yw8iAn7aiabKq9uQu2nLvphyqqbtcAn8NB7lh8y1y3A+05o2RR/Vw
43nYWUcjcToAyML13rY9Aq5E/XwZNM0ZtWcgrntj/gokPYIq4JvHv/6w1gQq3trvP+P1xPu6go42
+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
rLOfdfazzn7W2c86P3DWeWrxOnFGeuT8suNItJ919rNOtsssGfj0feK+T9z3ifs+8Xv3ic9p7wov
3ex/UzcKTXiod2p08rJvaxvpedPg+AaQrurKJyr63v0t2fFk/a1aRORnPMGhl2DzC1BLAwQUAAIA
CAD8miRKTBn+0EoGAACfNAAAPAAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRh
YmFzZS0yLXByaXZhdGUtc3RkZXJyLnR4dFVUCQADTLxtWN2zbVh1eAsAAQT1AQAABBQAAADtG8ly
o0b07pM/gaNUNa5qsQnpZkuWo0plUNme3BG0ZGIESoPs8SXfPt2sDb2AtnEm0VTNQfD2fnvj+fTu
CaI3iMbjaAvD6d0j/HsH42TihC4MAuhdfQt9/GQ+vZs6ibN0YiiCVG6U66v5+eh5OfwkCkPoJn4U
LmDo+eF6EkQxxNADHQw13dCHumVqmslyqjDHY5dLZYaizSTwYZgQ7g2aqmXJ5UlJeIdLkuG3ytDb
OH7YVziGbCHVoygZpqb2eYfhh2/RK7S3EDmE0G3oPSMnjJ2U7LO/gajXP+cxn4Se2ESRRLGZjzAn
ShaXWJEhwpPlH+ZZr6/0wPfharUywNLwsOn7maIzzDFCH9iBYAATWMAXdqhc4zkqXY0LKXnLkbBF
QKg5qYBiy704oRfAacqsHSz/XfpRjOV6foEIKg7+P9AMHYwsoFvKNgu/q/1ILaLtFp+1EyrlgX5R
wuhdSWQ82qSe7BDCwVJykiBgkFWENjlGZpUSL/NBb8nFzI7rznFfsUhP2BVk1vR8b8rCn8VF4UAr
XJTrg4UkJQ8MaNMhOB6jPBajzZZAehyQKKxTedq5LoxjLMqN4mbGVDC/mFjRj+ncZwxNQAiWpDw/
3jqJ+3L/ViY4KuC0EejXwo2kC5FyaSqhAkjpXWPb6EMNGKY1GKhsxpMYujXSlqmdRRmNKRGnCjZT
P3+wUTzOFmzEo6pQoy2rrvCZi+KOGJeOohQT4H+D4cgxLIIpC0O7gX6aUzEx/0+0mOdAqd5x4qDk
zywcJ1iINaRqZktbg6CTQBEu29qoQ0MVnt0Srv2QQp/Xj+LQNuYPuMGpAePR1FhuR7UTJ3ETTR+q
pZuIE7RNZ6Zu6bkSh/qBJZiQ48PclKLNxef17icvZXKmM7MBdKXqPZUqbxJf05cALIE3tNTVyBxB
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
ZWxldGVkYXRhYmFzZS1udWxsLW5hbWUtZXhjZXB0aW9uLXByaXZhdGUtc3RkZXJyLnR4dFVUCQAD
TLxtWN6zbVh1eAsAAQT1AQAABBQAAADNkL0KwjAUhXcnHyFjMgiVJq242Rahk6L1AWJzK8H2RtMq
Tj67aRURrG6C6+X83O+kSbQGewY7nZoDYBKt4HiCuokl5lCWoAYb1O6SJlEiG7mVNXxSkhEZDtI/
z6OV1MhIjyk3iJA32mBcmhrU3JoqLjVg0xoJHXMv9LngIZ8ILgLWV6zxbPawOICVbdAMVWYl1rKL
zXQFlrJfTqQe+vjJsgRUGncdklO/QAS+H3z33nfocX0e0XxBn2vr2F4a8zb/LaSP/vp2o4xQ7xIW
RSG8rVDuQ+amuAFQSwMEFAACAAgA/JokSpIViCZOAQAAnQMAAEgAHABzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2UtcmVxdWVzdC1ldmVudC1wcml2YXRlLXN0ZGVyci50eHRV
VAkAA0y8bVjes21YdXgLAAEE9QEAAAQUAAAAlVLBboJAEL176ifsEZKarAGKcgTaxFObaj9g3R0q
Kc7S3dW2l357B1GiETE9kMDw3ps3b2aep09COm1+kkRBBQ5y4cRKWGBjdjea52mmEUG6UuNSL8Ds
wFxDDvx9w/JzC4Q5VpPkouT5zOPfcVEUEV9FEAjuE9PbiBJ91iOwFqgqyPfNbsMO3881GNEMY8nX
cg0GmKBnEkQhn015OGU1oCrxffQ/qRdd16CYQKaP5XuG+ou5oR63XGdbYwBd12mAQJBCm82B0abS
8fY78NSql9muKxXygywt6BSG0lSlyi/xJ8uXlbZwQexL8/fWBUyC/QVcu8Gjk64HAWlizNNXIF3r
ksS0L5ne1A1S9UA0nqsstlKCtWRlzGQbJqN+tkmxtGwS8jgIozAOp1H8wBvBTkqVthZOrh93DYki
P51GBTPuX5tFn3rKBEqoKnL7B1BLAwQUAAIACAD9miRKtXrYKYoBAABCBAAAQAAcAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFzZS1yZXF1ZXN0LWV2ZW50LXN0ZGVyci50eHRV
VAkAA028bVjes21YdXgLAAEE9QEAAAQUAAAAlVTLbsIwELxz4hP2BkhFCkrSgI8QKiFVoi30A4y9
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
Pr4CCaWm8I5U55f6MGbhXQa4WYbgF/q82FOi3qwwB+ceUwoo3g7Ol5uuzgUUUHyzhVrI7w+9QyJ7
w9ZOgPJ7h6I6fmO+j7yFc5PzgpyYYuTDWF0ff/BSk5Fuahk3nNw0thHfF0vpREKK9wVT1eWpUELu
Q2DxWdw0qyJuTuaw8koEJUhYl/iJY8WcTeBqCoJoTSXXl3ee42faSzv9edrpmNIT3QZg37re4t5x
d3SDSwd+1h14+bO4bNJ2adAvDfr/vkE/uzz56cYFDRp0q3I9ccDugAiPLb3mWCS9Nn8sIHo/2cG7
zEc19ucT3xk8zV2Ty+XN8728KbkCdLnIc4yLPOdwr0Q3uv333itpMmX41VPS5ZbLaW65HHKvpL7q
l02YVxCKhssPEMb93VEL8lVCta4mXwnZv/vWSEZSXrNm68Tgyq2RF+6ZGsU3Ewt9dO1EYGgM1Dof
2Kecf2iqjv3a7YfjGa5c7T7wnCdFTsB+DbZuiOKE/tYKt0gXywkKly/jl8b70nhfvoz/8l/GD/kI
LGxzq/9/rFRgeZti562zzrFuDKDvmtL9G3pd1ZXmghYUtpO19b4fPkhDpx6UyPQqHJT8B1BLAwQU
AAIACAAGmyRKS2+MG8UEAACvGgAATAAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJkYXRh
YmFzZS10cmFuc2FjdGlvbi1mYWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAkAA1u8bVjss21Y
dXgLAAEE9QEAAAQUAAAAzVnLcqM4FN1n5U9gaVdNqniDs0twUuXFtF3tdO8FyDHTWHgEibs38+1z
eQuQBG47NZOqLBD3rXPulfB69bTD9APTh4fkhMnq6Sv++x2nmYdIgOMYh3ffSAQr69XTCmXIRykW
SSr3yuxufWN78yOKyELhKAUJITjIooR4cZLi8IUmRy+OMMlyRWWumapjmJbpmK5lWvaC5zgiH8kP
vDlhinJDjyR8pYikqDD7Gh0xnS9unhJjL6zkvSaXLSZhRN6KlECaScI2DFuuW9aBoyUuYiJJ/SWi
kBvjMcjtD4zwsv9nsDZfKHP1p7Pf7y3Vt0KIcFGW4gU8JvQX5INjnOFavq5Um91r0mTOlZS85UQ4
EiA2UBGguHIHRMIYrwpn42LVc4O0FOJ6PWCKFQT/mmGZ6tJVTVc5lft/d5mpbXI6wc4jojQb+odC
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
1KlTp17xU8xWJun2uh9TXebSOOi0+/2b6JFxSJ48efLkyZMnT548efLkyZMnT548efLkqywfpb0a
hGEwTfJl8DRbPdGemcSWRBJJJNlVkmJW16AtiSQlSjI3WukM7u4ny56611Erb0/jenfB8H1vGEQj
mOav89vb21bzptU9bTUPF6JnlK/Dh5+bpPkURF3IaHx5OQg/f+90gtFoIXLw9HNXzxkIr/q9IBzP
CXR7o/v2uPPt3Y/oXxqvG6/m8nRyuyRP90HYjTqljX4ulsUuMbOM6P0qnAQIECBAgAABAgQIECBA
gEC5BGLsvNr4G5v3XcXIwtpbdeL8/prdVylyMBe84zJKsF0vFahkM7bbrDqZN1TutuTLuk81Q7Ek
wbpv23s9TwgQIECAAAEClXnbSzDk3TRgVgQEsgskeOMFmwCB9H3/6smfVHNJyWYhzAtWYmIx+y3u
MWpLoqO2ipsxdFIX9a2fLbS18/iy99qZm2nCZpZ2Erm8JZbtTMEVBZue5zbPtyy2UCpaH5xSGr/P
jcu5xG0s2TGkZetzY+Z+L06tLUWfu40utZgeff034GLHZDGrUnpCZXw3ynSEcoYnfAWeFyUdRXur
ok6dOnXq1KlTp06dOnXq1KlTp06dOnXq1KlTp06den3Ua76edwvrCNUt6tSpU6dOnXqZ1jXudKV6
VY8ZKsv6/NKtx46BPtMS2Filk+gKoXpW4OQXIxXc0Au+NCrzYvL4NSNTA1kknqWU3fRFnjx58gmu
/6vApTvuS5Ik5yTucSJAgAABArs7+qy+J4m5IKCwg+pLfiBqYSe4ZT78L32bjFcx9HsECBAgQIAA
AQIECBAgQIAAAQIECBAgQIAAgaIFyrmYy+YW6tSpb/veFdu0uOZ6X66qshXWVli9Dddc79VlbNSp
U6dOnTp16tSpU6dOnTp16tT34Lg8BU6dOnXq1KlTp06dOnXq1Ku1WPXp3KHEx4dle9+u21VV1g1x
zTXXXHPNNddcc80111xzzTXXXHPNNddcc8319l0nWF+YeCOpasJ13E9ZWb5WZb5xd7tnO6RvPbnd
XZ35C+GefL3Mn9CKqpS+bqb/XJ1PZUxY3PU7Fae+l9dXrX+IW4pasHEN11xzzTXXXFfStWW/1Knv
/tzPzFNgk8PeU72gNA467X7/JsrNIXny5MmTJ08++wehJdkoYpp3NtOZZnxX5jfjrOFiBtO8kMSn
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
Nddcc80111zX9giP+lxnqipxzTXXXHPtwM29OXAzj+XeDlTIdXdHXXfk6LK55pprrrnmmmuuufY6
7XW6wNdpB0eRJ0+ePHny5MmTJ+/0UMcrSiKJJJI4eNVWZzTQqAWNnO+yTgbTNxCuueaaa6655ppr
rrnmmmuuueaaa6655pprrrnmmmuuueaaa665jnfHaBVvQiRPnjz5GslnfxjldCjWPj+vHUtl2MQ1
13t+zEVMqHmcc7iiBAp5ftbo1EgPKp3XCtdG2eTJp3saFdXDx+pM8j02OJfsG3JU6JW9gDFB1vxl
qY4lqBJlH0CUZaDluUR+T49t2eKmZCcoSCKJJJLsbxIHUzimAw000NgRDR9Eueaaa6655prryrq2
DYA8+UIXW1mprdflmmuuc3RtXZN1TdVe12TgZEWFJL6++qZUGxpxH/OoqUNooIEGGmiggQYaaOwz
jWxnt6lJaKCxXRop1lZs8b7FbF+Nii+tBDMlmXvLFCW1ppr4nMc111xzzTXXubuu2QoIh/1YAbGP
8g7t8Rjgmmuuueaaa4fsGQTV5eTC7FDrd2p4ZVbSF1N/Kj+1ULeD5IuoErkxKkcntG+X4Oy+l1Bm
mrGdV3ZeSVLuJPEWjMRT8Y7ONddcl/0u6FL0iZkUnpcuprRSwSEv+YoNrSuwBrp+wz1r3K34RwMN
NNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQ
QAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EAD
DTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw00
0EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBA
Aw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMN
NNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQ
QAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EAD
DTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw00
0EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBA
Aw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNDYIY273jQHb9vj9k17
FFxe/uz1+1fTv88kbbyaTzQaD+6j7B2dNs9PTlun59H/Tk7O5tN0+oNR8Fui44uLSaKrQRgGU+Ev
gweMkfXHwJd/+/jg7GqiMy991/77Jpj+/cNjMfz+O6fNVb8TlUT4TPyqHXaCfj/oLqB5dPgqocz/
A1BLAwQUAAIACAAKmyRK4eaI/wQWAACv3gcAOQAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9p
ZGJrZXktYXJyYXktZXF1YWxpdHktc3RkZXJyLnR4dFVUCQADY7xtWPWzbVh1eAsAAQT1AQAABBQA
AADt3V9z2kqChvH7XPkjcDd21ZwqbMAmuTuHJFWp2l1nk8zcYyQnbLBggeScc7OffQWOMZj/IIEk
fjM1NRXc7yPxtNQSrVb3h7d/fA77P8P+mzdBc9i8aw7CRjeKwtaw3Y0+hlHQjr42Ot1BWPqtdFkt
31SqtepNtX5dqVy/+lfU/t8f4Ye3f7ydS75501pIed/vPjQ67TAaxryzF8yrev3Vh+f96fbC6O0f
n8J4G4Nhoxm1wk4nDOa3uqzkaAuJ884fmu3oorQg9PyFx980ePFVz6e+aa1au75YgWredfvDL/1m
NGiOgY9bDu4WFu6F/ftu/+H3RZm44NRHo3186HXCYRjcxqnm6LMv7Yew/77dj7/eefmvm/v7+1r5
rhZUa+WLV/8ZPnT7f8eMP5qt73ENfh52+8v27uWWeo+VvnY79cl2pjcygxpv7/xi0Zd5aA9vo8f6
Xba3/fjjn+Ht3f/EdTP+6H23/++wPxjV07dm9DUcixvBn4/eL92nY+ZxG1Ob/bWZKV584oQjp5/C
VrcfLPp7MwiW/3EmPHW0zm95ru4X2Fi9+VUH74utjSs11e8qLCwsLCwsLCwsLCwsLCwsLCwsLCws
LCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCws
LCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCx8nPCf/fZweonc9+2oPfgWjhfZ
fR9/FJd/2sLTOrhPKxkvWgl4cckVf12wyu7cR+cX06shh5Vm+WLlGtPfmlHQCd+ON7a+2K9/T9Zg
HsT79eVb2A9Lzfh/l5Vatfy6Xq7WS78Wa361Hepjt9cLg1IzKnWfPv5nKer+WRqu2sa6vW786PfD
aDjZ0orAr5WvfyUerUxyK9fMfqyu6YWiV2wmaAcfV6yx/fm//yM+0ObWnf4aDm/77wYxpBMfdk+0
D9F9N049LbW++DBpRz+735+/ye9RMLXN8ULa56tWD++uCI5X4E7myKlUb64mtbpEwrzn0vij+F+l
+3YnLP3j7B+l2GPQHnxfXQNv52tserHs0Yrrc8FFbv9v3Tl4WRmfg8tagac9mWwjLng7vVz8aMXx
x3Xjn9ZaX1CkG81SPv9otcLBIN6V30qtx8O59PNxkfJSe1CaXjr+5ro8Ak5Qsbpec9j69u7nZKX5
qfXVK6/LFzMN3mhp+2Vfbrzs/VQTVjo/i91Ubyrl2nX98vLqYlr5dOGd2rq7sefFx++E/LybSTV3
19X0m7upbaTW3I2OqOfGbtrs1X1c58tavpHcmfNxlCzH/7ms1uu1epzcsz1beRbfvth6MpV6He/+
EYUHzbC8qj2OnfWH/348mxvxTnydviuZPwifD/m4XeuHzWG4LDs+R3+bbh2ubmpXS6v+Lvzajqbi
H2arYtcL0fKW8na6idisnXze9tQ/4u/YGIkYXTWej7TSn+3ht0krOd1E1srVUmuyS6XnBmxUa9W7
cvmuHNzUr+5fX78OKxevNq+sx+vC1Afj3Xx5Q7Couf9X72u/GYT/FYZBGGzSzF+/vo5bl/DPBZ9n
7NK//cXoeZuPx/fUbXucOT8rnV3MeZ4rOdY8fb/f+xE3UL8HwVz013H2cervgoKCgoKCWwWX3By/
vLWa3AcQKSgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKDgbnPn7
r/UAJwsHPi86OLMIYLVe3mB1v9vocR3JZatLLlwOcBb5tKzk2h2qlWcWtp1Hzy2WuGZlwuVrLC4o
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
JlQSAACggwMAOwAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1kZWxl
dGUtMS1zdGRlcnIudHh0VVQJAANpvG1Y+7NtWHV4CwABBPUBAAAEFAAAAO2dS3PbOBKA7z7pJ6By
iV2VrGWLetg3R45nU/uwN05mjluSCNvcyKSWkuLJZX/7gtSLEt8SRZHUN1WpKdHA12ADaABEo/Hl
9tOjtH9K+/pa7016/d5Ydi3TlIOJYZkP0tQN87k7tMZSfBQXWr3d0JpaW+u0Go3WyXfT+O9Ufrn9
dOvLeX09CKTc2dZrd2hIc6J4tQ3mZadz8iWqPC5C374ks/yxZTh97RnmmfBBY1GnHlKz1bg8Owlg
GOZP64e8H0m754BuTP2b3TPHPRf7zXiV9umZVw3WSJq3n75KxRlPuj1zIIdDqQeRg1M6JcucF64i
K+LF7gxbSQrP+9Iz9aFc/F6qaKxEfnuRthQ99e+i0dTqVw2tfSlGs5blvN2dEmPZv1SrkUM5WTIW
L79qD9+sZfsKTBnx14AS+x6dnonT+p/tp6enZr3flI1e/SxSXfNXdoVlo5lOXessNZMO9WCNRqqC
e6ZY1uIHYVpvYhIlI67U3altqx6ylBSRQSV5suzXeY6ZVpb5Zg1P7wfmnFXXp97ghyrSo2oK8uTx
X383Jk4q79Pr62c5ubc/j1XGoTF+WRC+mE+WErCwOUpSSHa/IOE+Ur/EkzGU4n3tvVCF1Y3xj4g3
1Q391l9kT/sbOAbGlzGoQv8X1wgvGm4jDOsGi5IsZaiE996uf31tz22A9TpyUuoBSSxznfI4HQzk
eKyK8lEMZvUplLyxU5HG2Gtzm+1W3QEuUUp1o95k8PL559Kwrt5Gb1zVz9Z6vGOmwl7ONWGePixO
a0o3WrtRb7Y6FxeXfksboejYzt539RxmSX1DU1b9vaXtv797ZOytvzstatXbvZq9fFJ1Htb1HeWu
9UcnZ139d6F1Os2OyrmjJYjsxfcb0rOp1JYq/gEVrveko/BQjNKZPfl91pu7qhDP0jPUx8zGbNmb
yLC8/hnZZbt5GVr1fflsmJ7sX9arYtvZV0h72ZQWObmYtYyUNnVVTs8PJabrKM0ZYVatUrwZk5el
RfWa02ZdE6uJqlgZO6eGtX693q/r7c7l01XrSjbOTpJX7OxtPQ/cYgYoxDc0fB892z1d/lNKXepJ
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
SYkZNozFqcdoxGliBL/r63VH7o+76AwtHMdCWwHsbvuQeeSOemPa/kj52y88Z85dh1yGdke8pAxn
KEe2eFJefX7PJ9dRVysSkZEk9ZIFDRCRxvn9pwxSfTCbk2VibV6dVicOmbeyaBNcIF7bp/Psdc42
bj3sE6dfY29j+dyfqmDfr7yG98N+6Y5NoGCDLzd28Oc2OgQqWa/SgySZSDqAW7iBPSa5aJmY6kb2
A3Hcxevmh3SinhiQZ7HKOSs7M7tSyblvIPWSBelvRgq+LnMxa9FIIuQMch3XkRpl+DwYZpD/mkXm
JeMJ3WkeP8T+QFGf9VnM7LnhEPsms5ItX8sa0EnoJHSyeifzmcJMONfVJguz3AkP+ALwhb3mC6+X
qjVS8MX4AiAKIAogCiAKIAogCiAKIAogCiAKIAogCiAKIAogCiAKIAogCiAKIAogCiAKIAogCiAK
IAogCiAKIAogCiAKIAogSjuI0vClXAdzfhUQBRAFEAU4CiAKIAogCiAKIAogCiAKIAogCiAKIAog
CiAKIAogCiAKIAogCiAKIAogCiAKIAogCiAKIAogCiAKIAogCiDKof/xoJXJerDz6qNpWVNWzlUN
xpl3M380gCnNJ8vCRkqT5ztrOp64rm1pn17UqwyVMflXlkfxOrrleDhRaaCqueGS+rsPV4GBplRO
XPRKe1pgVj7bej2pR5Eqjvt/UEsDBBQAAgAIABObJEoGCs7gEgYAAI8mAAAzABwAc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2luZGV4LTUtcHJpdmF0ZS1zdGRlcnIudHh0VVQJAAN1vG1YB7RtWHV4
CwABBPUBAAAEFAAAAO1aSZPiNhS+c+qf4CNUpasM3qBvtGkSKslAhp7cBRLdzhiZyKaXS357JMuL
jCTbgHs6h0xVVw322/SW7z1JXszu14i8IHJ3Fx0Qnt1/RX8fUZz4AG9RGCLY+4YD+mQxu5+BBGxA
jHSUxq1x0+vvQYAHhoJpG2GMtkkQYT+MYgTnJNr7YYBwwhiN/tA2Pct2bM8eO7bjDmpEgU1EkkcC
cAxSganmRbkSmFH6hcoVwjDAT6lmSi3oci3LlddYcoqGi1JOzK/KHI3HvT7cKI0/ILKLyH7asAZN
NNZ//BYkTOA92H6ntqyTiOg8cl7kKJ0ggC17fwhRguCSWgzYs8dgj8g8IJShb755u93OMTcOtB1z
IHEfuKsaeccKXqp5HyRLzF3BXpfheIxyB3EqgVH0nvxScoZCZW32nghsyHYYwFVNoBUcAX6JvqPC
YVMMBabUff26mohqGFO/V9zDMlgSorLqH+lZf1CJIE37Ac+eOdUYkXe6dsTyJqfPk0sVQzVlzVuF
hQ0GIgukBuo99wwwDNEsVdZMlv0u4hRTux6fEUEGoH9Dy7HNydi0x0ZWAb3zRK2iw4HWCMBGEdCf
DBy9Gkmdjiar/SMhFKkKTTUMGTxlHNwrBR9Peg2w8XCJuFRfHzOZ/kNSFA2tPEWVOZhbUuighEsR
J+/uSAaYOSQqSCJclbI+brcojqkpt8aWO9Og+mLmxSAWu4XjuSYTWIiCQXwAyfb54aVojkLBWRMO
mUW5MUzXLS7Fe6GAjP4N9Y3tWabjjofD0UBqOTWObqy0TepnXduRWmtXxebaH19sgo4PKzaWUWWp
iZ4d7WjMdXXHnCtWUcpp0n9DbwIc1mBry3B5wt5NVFyq/xM9BgGqXXecAJL8ycvRp0Y8odpZoTIO
EgQSpOOVh8GR54y0sdugpwAL7ItqKC4dE35HewoN0pR4qu2qcaKTNLFsb1SkiR6glyIytYPn0hzh
B7XAZ+Gj2ox8k0Dj9RokzwU4i8jsmLZRjv9GiZss1+yNaW5M6I1Hu4k7Qdag1z7FFPN29Xc+C0ld
5tvhiQCIviAEEWzTXdyJS0ENvSqeX9B1hIk4rYPl5i/qHI47t7S7GDeKef6UMl1Y+ZNW9TFZkimE
EmsW2ZXwvhtGbtMCQ/Sm2vuUb9m79D9sD3DEiU6Tz14a/Zx6IPAxgKaAFUdEx7zUU1y1kTp1fOOe
ShWp63aFetENOzKJvmZzJtPWb759iUGDmKokB5AFxFiuc+RYzIzhyBrajjXyTNd0hqNMnCirsjgq
4gt6FcQWmF3H8vAWxAy6ZLsrqf1KgkTkXTMgqgXscrPqXxslo78FYbihqxjUt1Gq01dlm6YD+N1n
ZoVbpUKslgpx0RyLjrPE/Cyo0/LNwa2parUgeLUAAQfbQUcBmZLo+jwqyGomP8FISXpDva+6t0ID
GHwT/JW1e1Vtiq8lcOTO03OhbURgq4LkkpoAU9QnnyhCmClUGFS+bOv4693V5Jc28NZkTrmudoki
ot01bvKb49GQIoqI8uHjQKKXgM2FIKSrTx/+it5b0Zzl0fMd1r4f8WW1Tvzze1ABW5ruI46Rl5Oc
6Oq2e60UWC9sG7LjqDNbWdvNwa77G4D/vdH1ZCO18ep8ya4pZkf0GM1BECKYLVaiC3CCCAWK9Fqj
uiN8DcJQuu24+azpKV1Qvtwphvy2K1tWrCvT04s0tdgFXpHoidAUKk83VI7/GfF9oSYNHwiJrpou
s6MRvnXsUInWG/UYnJKfe2974T3pOcWo6/Yq0U3bMMajP2Ej9PGLuIeYR6RyBsTLpmmWqZ0lumY+
3S/OAxzEz/wU7UdBXncXqXK0zhkHVDqqx7mW444/5fr2R563TptQMKfpncZKjf8lyR68b1D6AcUi
g6uqex3Pc7WGSTHjX5JIRvj8AwJytTHu0JWWvgvYyUCx+pMDWvY2RdzpjvbJSulnSEt/p8e2DV+s
8KVd/q2K8iMbxVcqnXyv41qjwcVFIeeWADUXHFFrcprD2i+sVmjya+9+/nMlKt4oRIdKCD2bJUQ1
atIXTp7N4nxO3lMO25TCkmm/qb1qlj9YOo/6X1BLAwQUAAIACAATmyRKd7R+Zz8GAAACJQAAKwAc
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC01LXN0ZGVyci50eHRVVAkAA3W8bVgItG1Y
dXgLAAEE9QEAAAQUAAAAzVpLb+M2EAZ69Mk/gdhLbSABZD0s2TevvWmNFrW7yfZOS3SiRqZcSk42
l/72DvWkHqSltbPdBYKNqJnhcOabj0Mq69XHe8JeCJvPPd+786kfPf2KqRf49PEvwiI/pMsnTB/J
A8M0wm4MA+gWDQfrUjE8Err6+Jn8cyJRvMTUJUFAvMEX6sMIyK1wjHc4IjLJ97InuDyfg6QHa9oc
CcN85ME/EHbnMxAfaV/t/X5vaTvLMx1tzHXvQC9kbxAVEpCY5FPmppchpSSx/BAW8WuVVLxtWVBj
aDQW3SMG1sagOTpgn45Ri4EnnjuySiY7L5Y9F0GJwK+HJ8IIwvAzMSxTmzma6aAseoN+prbh8Qjx
xRSF+fANouErilVznPN6eWKM0LiYSaEAIvuQHTKNNCqFXpKDkbdr1UzT9RG7z+DSPUCBDO7//N2P
uZQ4Op8/knjDPkWgGEDt5BbWdB/CBF6e76FMvTkRSobgCe39gKCfhz8jcNbzo2fFSqF4V02XBfy5
QRiRhmJbQv89B8KJkYBQVga5J8UcILgRC3U+Z1nFhocjl/RaREJatXJ/cl0SReDKLXLTfKKXlKCQ
H6GJqdmGaZm26Vj2VOMGC1MQuiOO3adPL1wJsl6peGNWq3hOKrLFJYQj1DAaDSE2pm1o1tSZTPRx
g8cUgT5b7LskzjLey55KN69V71Pz/etdmOPd6p0jqqx2MbL6HnIuK30e3Eo9ck0N/k1Mx7H4/nAh
EyireFOb/TpJnYL7/2PAPUx4wKVmIGYslrUbTRCWkAdeYwTHRNWqwI/ADrpt6W2w9ulL+FwGcUE9
wUzSLIzkkNmRR58K8mtap2EJU25EiujGk+WswgOscckDwXeNEmno1Y+fCpYUKdLSTOQWLqGSwHjW
zJ2m7TTPdvT9bDojxnjQPVktnVf1Oe+LGnT/5fjIsEf+IMQjXhean86mwC7ktWVcAbVQkeGkHbxO
wRmmrRcF138zKudM8b3Z/Q2pSunoFjYdNBw34tyQTMJcPkK1noCgFp7XUM1wthXeX0cx9WlNPfK1
BRnCW/4u+QVGwxONZTMt+Us0yqXHgh7nbSCiKGQy5Y1coufxQB34DU1LXFb4rZmqmswr/qxDllbp
OZqmGzg+Axo5/Juyko2wTofKTjvfQroabysI7PHkoc19znnrFZroxsS0DN1wTM3RNPWuu5U50TN6
aOTiINiBw2P1tgVzLttQINknltdHTEW7bQoRxRXhgkKLfWlDl4FPWqr2krLKSedcNUnJ6WIDAj91
K+mCyhqm1TgqxBSdViGirqOCipXnzc9824bCYcn/wxsUJnlHUQLisnQMZzbTz5gibsj4ncszeVNa
moClC0IjcQJKv7MHjrIzEGHQltYuVJBKnqPQTKpjIrsQ17ZfMEWa+lFxImHC7ZXxcHUe3bawjtDm
ZvcY3bbDFCjKjTDtrW6RuAmJW5+hazcoFaoN9+H1d8ZgcXZxk+4s3cNh2QjssLc5+jD80KeJ5qf7
tM/jZ4Odn+xBKAhfCUswwa/UoJVHp+OxHLlo7ypSlE7LYfjCr6OTc0zas1aKxYajS20A7QmsCIyz
BL5Rlxq4fJHfC+49sCaB+4lCdNxnwmdM8PwbLAnOQkIYZ7bujHnF/9QXLV3nLKgFJhl+P8SYmq45
N/WBNsRckNyrxL17l91zU+3fWRfNmLKnLqTeo5tutI4VMbwLWbw6kYfwDvsB8TLANuR8GhNGcbDg
8tXbgVc/SIfVVzDfqWNPFpQvd0G99ItctiwpoeGa/+1m13TLwkcGXFLeu7QF/heS3hFI+OgTY+FF
J5rs0i6t2itOIo2GukIScUXV1c11OYov2nSuQ6j4CqYvQWwXempdfocs9GGotjmq99SGNXW+/Z76
R7v+lFDw4lzp5zKDeq7aSa8UOeC3HVnyb57rrEar4bVseyp1rJGzxJDXcAIK+eDz9udSZ6aT5kFk
7/MrmGL1tfty/jahmcUeNofKbXxGL/Cc9BLVv0KQLK3qz9Qwpme+utT071h4SLmsieSp7jiqI7Ha
1KgSJ0Mff3NRNLElUM033NFLMN3tb2guKtF3+azvQaAVn/Ulf5TTW7qSAjiSH3OIih+YktEy8bbJ
AVlFDV93TYjjrE/dgYapDf4DUEsDBBQAAgAIABObJErMYBi3FgkAABpRAQA6ABwAc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2luZGV4LWN1cnNvci0xLXByaXZhdGUtc3RkZXJyLnR4dFVUCQADdrxt
WAm0bVh1eAsAAQT1AQAABBQAAADtnUtzm0gQx+8++SNwlKqSKiShh3VL5Nir2tpIFTvZMxJjmw0G
LSA7vuxn3+E9CGYYBHrE9U+VD4aepqenf9M9A+PMrz/fEfeFuNOpYRo3pm16T3/otmGZ9uMP4nqm
Y8+edPuR3Lu67elrn15QPiqXF/OsobMh9vXnb+TfLfH8mW6viWURQ06CUTudUimDPnexIa4eXLk3
n4l7Y7rEUDrqr/HDw8NQXQ0NbaJ2g7Y3tJ3jvlHLiUV8cq37+kr3SGLezLFtEmq+d9I+lkoK7n63
TWo0lUmuTqeFS50uax4Z6GqXtuw866bdVUoUPAX+Jdfhw6rF4t9Tp3jUrvsn4hJFpz+9wVBTryaq
NlFi713UU7V0NhvqX91WnOTyB8V2XhVf9Iwqq2db1yW2nz5J0ICKPDjuc9wi8kraLhyDjrEqbRkN
12d9/ZOadEdDQeRNGt3XRXlm8NeW45FCwzJv/lcVAb1BGAG8GEwsSZ9BBRcsIdOpG6PiPG8CSaNE
xLHzWu626zXxPGrKR2UdOVN5iQhWTE/paep4oA21sTYZjkdqoDBVZZjeRvfXT19egkbU5TncBlc7
uAU08zoXks4ApHQuqW+08UAdjia9Xr9bmBYEjq4kbRX6uaQlqzkzsy3YRtrhYWOecTDYgojKUGM9
23+gY87jLnAuS1HYUqX/euMrfRhMzkIMFzvN2xmVEX3+CT1m6ETYb8/XXZ+XUItRlMUsnZhcovtE
lIzpD4N3fzzsc8duRR5Nm2k+zw9FSQvTfnF+Zr7/ZBtM8zBDd7oXf5FnOjXQdqy24tMEDnIEDwhL
gHbCZKCN+2mY8CfoBTszyU3PmTnML9SCWTB89GmKkVy7VF5N/ymdnNmZeahqyjo1ScnmzSDWtJWq
rlRjPOk/XI2uyKB7IR9iUTrKVVv535NaqJBlvm8eXd0gXwkxiCGTXUZXIzqpkdeS63tknax/EQeL
1T/UOdG885FmF+WyW+hZQTLsWPZrIjG3DfKrxDPM3RZbbrb+wv1kFMveOJqWzH00RMMjNwyDlkaw
s7V9nvwsuKl0EuluC+2CYoImV89xeY0XfImaC0bxJLGwowTASwuls0peZZIPKg0aqrlCuKi6kOUq
Jjh+ciyR5dQGSalTaMDJ7mUTsm4EA6Is7pIsN79Wev1BTxsO+mN1pA57/VgdqyvXOariK3ll1Kb1
hajJl1+mF6TZot05Il5d02fb3gVJU1hc0GpgyXNMzVFSOmvdsla0F11xyUefOSuLNk61Mms/MnOt
yx7B0pITTgu5tDpa2DPLJCWzQ3N8w0lEDtw0KZddlhnISLIKtFhKBrFIVAgXK8IrQ+R4CkVrkVTV
310wanqyPgzpCAoxSKUOAUAh3hD6CH2E/tFCPyloq+KeW/hCARS8EwWPJFpXVSlI5NpXkK3dqlTk
V3mFrolnzlRMsEubioizD7vgLVjBSUfRa6ZvwYaarKElWYvVItEPvgaydtxa9tO8Fjfa3/pMh4Tt
hx3hBtpjB0UbDxvXeTGD/UvdolERXvyTvJ2+fzJGHt/Dsly17gcRjRWY8Rnhc1Uvkvio7Yd41h4M
HdGCNMGJLUjFZGHgW5GqajXKd7TuG+VZP/e2Pwtk2ShnKgSxdYyg8G1itVC2ilvWiS25MGXXeOdg
gnxdxFliLludmOUewo/gWi6t767GYV3Vv9YX6cuS5QTzFjf+Oki2upBd20uqk33nK/rqpCRS995W
aB7CeyDdtOhoNT7fQ/DJz1WniE+JGGsewqIptsEQS6w+K0OgMkRFMSIZuILgOE6CaDOw9qGj5l5q
FS7NC1t+QdN8W6Xof274SwTwnmVOW7NorTiXn2JPm7sPHcItzr0tJfDWw7e92GqrOjhl8J1xfm/1
jW4bwytK//wE3WQK5Zd4LYVeW/n9MGvq95vfm6+PMME12qU8u32ho2z6/O6L6jObDZoDVss6eYzO
Zxo6WrqScajUlCF23W3FvrzoDUH4BfeN49LHsM5jv+9m74bXf+jWlsTtLeeVjjO9/7fpP0Uemtuh
bHS25DeX/409L7EdfWjn1ZnZTzySzHkDzlg6BYnAgujKdFq4VHZEtd13RodRf1vvteiZqV/Uf6G4
U9xLvMPZX+SW+ahqf5H82Zg69cfpaoujlN/wBrwBb7x3b9yWfMEKb8Ab+dSY+zg5LtI84lN3fSPe
1vKZI+0/yVtUMB/bb4lda8f2TXtLbrZ2dCy/4zuRVcVOmn5gADnA2dic5qpvuwtmlN8QF2F5WX59
tyMnruTnOWFOMW+WCbH1fCygJAPxQelrY23c66vKWupzQJc8EBoAnHGqF+gyle98X7/L1b9zYdg1
5nbOjT2gC3SBLtAFukAX6AJdoAt0gS7QBbpAF+gCXaALdIEu0AW6QBfoAl2gC3SBLtAFukAX6AJd
oAt0gS7QBbpAF+gCXaDbLrqn/h99mv456sP9CcrjHzg8PFwHO18niA4cCkAuRC5ELgS6QBfoAl2g
C3SBLtAFukAX6AJdoAt0gS7QBbpAF+gCXaALdIEu0AW6QBfoAl2gC3SBLtAFukAX6AJdoAt0gS7Q
Bbo4FIBDATgUgFyIXIhciFwIdIEu0AW6QBfoAl2gC3SBLtDF5hE2j7B5hM0j5ELkQuRCoAt0gS7Q
BbpAF+gCXaALdIEuNo+weYTNI2weIRciFyIXAl2gC3SBLtAFukAX6AJdoAt0gS7QBbpAF+gCXaAL
dIEu0AW6QBfoAl2gC3SBLtAFukAX6AJdoAt0gS7QBbpAF+gCXRwKwKEAHApALkQuRC5ELgS6QBfo
Al2gC3SBLtAFukAX6AJdoAt0gS7QBbpAF+gCXaALdIEu0AW6QBfongu6zYLsTMAHukAXWRdZF+gC
XaALdIEu0AW6QBeHAnAoAIcCcCgAuRC5ELkQ6AJdoAt0gS7QBbpAF+gCXaCLzSNsHmHzCJtHyIXI
hciFKGOBLtAFukAX6AJdoAt0gS7Qfd/otkYddd2zGVqQjeqraVmz8DojGvWTtz2UdmCm22tiWcTI
q/R8Z0M709PU8UAbBqGsDQajvMzacjyyI9SfTLhRETfM7i0jP8wCPXnVz/rbioTX5/Hg7j5HU+t3
L+fIuIeXF/8DUEsDBBQAAgAIABSbJEqZW8YNlwsAADezAQAyABwAc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2luZGV4LWN1cnNvci0xLXN0ZGVyci50eHRVVAkAA3i8bVgKtG1YdXgLAAEE9QEAAAQU
AAAA7Z1Lc9pKFoCrZumVf4Lqbi5UOWMB4mHvEhynqMwdPHZuspwSqG1rAhIjCft6M799WhIIgR5I
IPyIv6RSKUT36dOv7zykFoOLTzfCeRDO+bk9E9bFp2vx37lwvb5ujcVkIoyjPy1TXhlcfLrQPX2k
uyKrpPJBOT4arOQZi/J927LE2DNt60pYhmnd9Se2K2TphqZ2W1pb62q9TqvVSba0qnl+Pk6VcunY
0/7EFJbnt74hs9nrxfWppH+1qW5adSWl0krBQDNjQ7VaTLO21u7Uc0TpI9vxvjm65eqBwLBlY5Ra
eCacW9uZfkyr84eY2s6TLP5JH/+UY3bj2U6WfFkqdsnvz3Q2EZ4whrIF3b/2zZwK59J05FDU1L+6
t7e3bXXUNrS2Wl+0FG9mTVjQYq2eaGQWzuXWJnpRE4nOOPLygxiO/iMHP7h0aTvfheP6E3GvW3ci
GJm07k1Nb2iFq8P/erXavtnLNROWilVcaBFrTi504Y/TtRjbjrHU0jLEX0vdPlueYwr3h+ndf9cn
c/FVPBUtFlu+hVTRDWOhR2KlpPQ+dzVvtBZbT8/V+dz+oQqqoAqqoMoLqfLomF7cqFyaluneS4cq
26gYpnGV462k1DCtB/uniNyDj5YRqxQ4C7U8R8rOqRh4GTl1pe9gTMTyc6SCK1X9di8coejyX6PV
1tSzltZtKgtXxjfZl7IZOVzL6VrKWLpZaY5Gesmcb1M0Tlyq1eNelGjpaj3XhV10OWismpHpqVov
Gplyoq7s2Uy6gbqlRLN4olj2o+LltbFN6/7ccaRLHrWUU2HhWC9qhKMS1ct1ycPpirupRzf/+ofc
Lgnn9U54Q+ezKytO5OZZShhYt7ZsYBlAyZYyqicbUoJL8pNya06E8vvx74pU1jDdn/n78iKpctz3
9COaRMW0Cf3ftkXYaAWLMGsbLDWJ2pAFh/FwzEdYGJct45OUIra1LuVmPh4L15WqfFDG4XwqD2GM
oJhuPGhsdzuqLzASJYdupnvj+88PUSQXC0xaZ2p9bcf7oWNW54KwMraHldqxHBut21LbnV6j0awn
otWcgd662UfBOGdFt4kIu6r93tEOv99jbRxsv/srarXb4yPbvJVznrX1/cFd249+TVX+aWi9XtsP
Y/ckQe4uHm60Xs2kdqT6Lzjghi7UPCMvx8zx1iL+eJCcn1RyhO6JrLrJlFKz225mTv1I3JlWrPpg
fSp29W4y1stma7nORbgySjJ1pWfsg2ym7w+ab2FWq1J5lJ5kRNQ4TtuqpqwyY8oKdv4MayNVHalG
t9e8PeuciVb9qPjEpmSs1j8vByRhGv6c3Tm6If4phCGMIiahc9aRJBKPKddfn+9Z0nDFMj7BXoi5
+LJO7Vg5TibtEiWDYY7HBmGJIORIyyyuvq2w5mwuAfrRMBKVFmv7KvY9Fan4zBUX8ffYnlteVvm+
/6VSW5auV1DP90ekgXVtJ6vyMLtEmez8VkhsTbWnUWWPOxLx8CUhekt2PFE+J1GeLJt/o6afqJBh
4dOArBv+hCjDm6XNHVwojWarobVbzVZPU3uqWij/0t93RJTaWJ9MRlLher6LJdvsp81shp/Sr34V
rNVOayK+MtcKRyY88ouGVnhL7wBbJdiwxTZJZADTLheZyLDktkW9KFVkOYdFcxdyaNM/KPFFFF+6
raZ6ooSFNi4fRR7nOOBUuPJlY4rUSQbdym/Hvx2FCPNdtJEZTIUysR+Fo/wUT0EWRHpUylxGmNGV
lbZhVT/d+eDf6w1cwhCpK0VavbOu9AI3Lii3QnpYco6dIE3q7qBF8d1acnrL79BoWeXuzajUIXZl
YhOwH9mP7Mf3vR+Xbva2zZjpjiMAAb+IgDsRRnvbBCzLVS9gFVFuE7Eeeya6lk/OqFhO/jg2SAnp
W8xkFJrn3lm79pOO0vo4wf/HJ4odGEvF3bCW0vicNbeICiySlOUbmjxJjWxJ0f34AmJ6Z50DjzDS
kY70Vy09gni+9KhYtvS4OXge6THrkS8/VjD3bsyyUAZc55aMHMY/hSFNQ+D2fpWE/aDUYlDtnrWb
dZ+6fyssJOK1rHX8kk0XtYdF4p93YTxZJu/VbWLmmXlmnpln5pn5gsNfzHuPp4B3nLAKvDMWFkhh
5pn5qpsuz8BSNCu6sCpD8S5LscLoucy6PfDQP2s6ehcj+Vo3UqlRPvAkvjrx2Te2S3sw61NXQHBR
mOyu4y702Lu1MszYvbGy+77Cic7dbS+5oKrqQLUPcVyl3G6OnYRYHIsr81zHQQKQff2ICjc8bikB
CTNf4fCXOJJ0q9YPw9EyD5/t3Mtfitxv0VksVqTMYqz0oeLXtyLezGhsQfiXrEfV0kYt+/h1+Ijx
hyySampP6736bfiMc1rkKfBie3KPpVH+Ae/dt1a5B9TP2qp2snkh8YB6iZWzU1fB3dvDXSmMFVmL
/pn1tcMSwYW0tbjfCB9aqTL+Y7UqsBLe3EqoJAg44Cp6LkI+R19YCWXUR2a1Mj9fXw+vz5WPniem
M0/xbGUhVNGVaJctvNSj0+/2ZD4V7qnvUp9+/nFz+kOMvpre6Y09d8bC/9SXjv/pH7Yxn8hiph/s
C8MYnbrBLjvd6MHfx7NZrdXo1pVzZWTbE2UhIHgdzdLfzez13LS8jvZvr3iMs2f8cpijm0WCmmQP
KnSjD3za9AUXd7Fn61NvmoIXZCITU/XMpir2QqHX8KIA//WFJ5sXKjAgbyPjkZF9+7L9TFaK5S5v
i4qIH5Y/6FXszkA8L5zzWsTVEWWSZb9msuxdj8aXlAP/jAajsY6/tXc5LMyqKzw5XNfCnU+82FtS
gwcOXmLclnqNbUs6FXNxObfCN73WpB8VaJXspHQUpALiAC84XJO87VUYCTXSv8i3f+tls03rRrl8
b22wVjgju2CmFyroGDfVk80LCf9r21M6jghq5Ks5yyi11HP5faho6EnoE+mjGk/Kve7GlWw0tR5K
omRxJfd8xKGAozzYlRUFHqlnwt+KktnBzCDX1u3tLAwyDR7+Av4C/kKv4lu+z2YSIApEgSgQBaJA
FIgCUSAKRIEoEAWiQBSIAlEgCkSBKBAFokAUiAJRIApEgSgQBaJAFIgCUSAKRIEoEAWiQBSIAlEg
CkSBKBAl7EDwttzNH4Nea84JBQ6zS+zDkH1/r/pgv0PKaxT2f43Ci75fIGfBcjIXrwGvgZN7KPmu
D2q+BU+WCedkLv4C/gJZBrIMEAWiQBSIAlEgCkSBKBAFokAUiAJRIApEgSgQBaJAFIgCUSAKRIEo
EAWiQBSIAlEgCkSBKBAFokAUiAJRIApEgSgQBaJAFE7mcjKXk7mczMVrwGvgZO57/6XXl+oi50k5
qokBwYAQdhJ2QhSIAlEgCkSBKBAFokAUUuOkxkmNkxrHa8BrIDWO/0VqHCcRA4IBAXuEnRAFokAU
iAJRIApEgSikxkmNkxonNU5qHK8Br4HUOEqiJEoSE5BlwF/AX4AoEAWiQBSIAlEgCkSBKBAFokAU
iAJRIApEgSgQBaJAFIgCUSAKRIEoEAWiQBSIAlEgCkSBKBAFokAUiAJRIApEgSgQBaJAFIjCyVxO
5nIyl5O5eA14DRwwREmUREliAmIC/AX8BYgCUSAKRIEoEAWiQBSIAlEgCkSBKBAFokAUiAJRIApE
gSgQBaJAFIgCUSAKRIEoEAWiQBSIAlEgCkSBKBAFokAUiAJRIApEgSiczOVkLidzOZmL14DXwAFD
lNxRyf3oWH0XcRIxIBgQDAhhJ0SBKBAFokAUiAJRIApEITVOapzUOKlxvAa8BlLjKImTiJOIAcGA
EHZCFIgCUSAKRIEoEAWiQBSIcjCiVAYDOXRTM9BgNauP5mTSD67Hiob9XBVyPXsm1WvIXdHS2lpX
/m21OutlxhPbFRuFmr1e5jwvKq6+uwp71vflrIue6k8jEVwfLKZrsx1NTXR2ofNxXho/moq+T4bJ
RBglS/8fUEsDBBQAAgAIABWbJEoeLBz0kAkAAK9zAQA6ABwAc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL2luZGV4LWN1cnNvci0yLXByaXZhdGUtc3RkZXJyLnR4dFVUCQADebxtWAu0bVh1eAsAAQT1
AQAABBQAAADtm8tz2sgWh/de5U/QEqomVTzEw94leJyi5oFvnJm7Fqht6wYkRog42czfflsSCIFa
LQmEYydfqrKwdPp9vvM73S3G1+/vhP9F+FdXthVYU2slRp7rilngeO6tcG3HfRjNvZUw3hptszXo
mj1zYA773W7/4i/X+WctxtfvrzMlr65mylpufG8xmjvCDWR9bw7q7AyHF+Ndf7ylcK/ffxSyjVUw
styZmM+FnW01zzJsofb6GgvLcZuGotBuwNFI7YOhNlIj7Zm9flNTlTX1/OCTb7krK6owbtmeKo2X
wr/3/MU7VRlpmHoU9nGxnItA2BNZygqffXIWwr9xfDm8Ruvr4P7+vtea9myz12pmSi/jhSwsO1SU
lS0vnGDixosRvt45yydvu0SxVapgev2yLzOzoWhSu2IHFUZzdvef350gNHxvzT7L4d4Fnp+7Jrl1
2459q1kYRQnH/eJ9FsnkvnPtVKFoqhs6n/E0BaM12pvK0EMzlah69W/mWaO5t9rSrZuxp93IFj3/
mxy7CH1sa791RNV6qy01bxU9LOig6FpRB/Nn7tFy7bm4jhorNtv8nazTSvbr06PwhWHJ/+1uz2xd
Dlvm0NjQclGtqltvuZQ8Wa6RLOgvhus9GYGujaJej9a+LwNR0pKmwCacbErEs5KU0waieLnS1Oj5
uM7an8VFRbu7dVGlD257krQhDSdpBbi68jdSsA2fChPP3a/lbj2bidVKduWtMYsn05DtrcJZdFZp
3esN+q2wwqQq21ktrWD2+OuXRDxSwHUv4/Ca4BaqVd7gIiVLAWQ03si5MQfdVq8/bLc7zYxAaia6
kLRpNM95gppJEuqCrW+eH7ZUG2eDLfSoHWrpme3cyzXP4y6c3DRFUcmW/NceXFq9UIy1GE4Oitez
Kn3Z/necMdsS2nGvAssP/o5xHMlOPAhtXrGX2PrCCkRe2Wxa2xn0OrlrNxUPjpsqPt5fimPThD/E
QoaGTA5z2NpJ6UQtbtI1B53ETfID9CQdmcqF5113Un/IHozC5ZOtGdvtjlyvJyd4TIJzOjL3Wqax
y+uNXdwMfc2ctlrTlj0Ydu4v+5ei27wo72KK3Hz/720ulFGZv5YPvmWLP4WwhV1GXfqXfRnUxJPi
+RGqk8qeIw4m0//JyYnjzlupLsYbRe5/aBkNbPfn1mLs2uKrateye5spuVwHE/+dbWcKbXziNvWe
ghR85oKR04Y7zbUb5NmPwpdGY2vdTJULpV1K3crz8wpP8i1O2q4fIlu4c1cxftrZQ37VBfv+jL3m
CCBrqz9mGWUK5GitKjxadrggxuRuqznja6Pd6bbNXrczaPVbvXZnU126rr3BySr+FE+pahO11xX5
9auzCkUv2+89z37ynSBd9i6UMK3U7445RqeuktGYWfP5VI6iqU/AZJsjlbfl5A6j+j1zr7SqiTQt
e8ZJWpXkKhM3PiQ8A75RECkHbiKuqsdlFjK2LAJtY1UGsdhUC1faJC+dKMdTZFqJpKLxHoJRcSar
w5CsoBaDxOocAGT87Xu4/ladi/w+V8WpgAp+kAoeRJxcFlWwtVMxu8kui6rYz1QzPdMHvsRMc+6T
GmOm9gJBua2/Fzm6FB+Bfww3+ypdSr9WjSO/iJh5/jP0XwrcpilFV3Yvn3+FqZ3af4Lak0Csrz0x
y689HdIVMVpff8pQe0K8NdpEk/jMYul7X5zwINKay8AbPfxNfCsdo0+PrEVR9LTYVyblryg46WQ/
P4E/nCHtbNee4d8e5iJl13O8d3q9uRV98av8M3l0hY3amZ2/1KyftwtlF7VSN0p4wLGTdT6fqXA3
FN5OV3Kxihv8miJiUTUlTJ6P+SMc7NSNgwLFmkJKNfk5RuBUEqWWnhqXsELkfAZay1Hy2tOaKjGp
Qo5ydHg6wk2OoUF3jlAIQpF3qUGp7N0vN6Wu4jQvQ6tee/b+gkLjK/K9Y5yjin9WWPaSfvwDZzin
Sur5KdbSWcmJ9Jdz59DcI2JIdVk+OqjUsb0rGYGOCiqvPrs+Pbmo8fzk+HD3ox0a1kj6h7xLxRqy
6+R0W/XxR/jixvPliOpIv49HobqLpz4WTA/gheXHYS//tuZrsZnwufcky8re/tcJHmOHH7tRz5W/
Qaw5n67cnRdmX0CR5vvOo8L+IUmaL0zzd5LRGONSV1eZR/GanwZEGZf/UO2ybO+Ut0T1k+q3ZS9u
15mOwZqfVtTiYM8SKJ93VpkNZoPZeP7Z+KD4bu3nnY2J+iO8jfyuRCCn66NYredB6sdgn8W3OnS4
+rxt+zXz3MBx1+Jm7cY/aGsEXtyr7CCdIOyAOMPvWPZqLvqGMdMN9Qt9NrBvm59oHNjps8DxnnFO
KueojNKZ2sbA2C7EL0bHHJiDdqdlxD9QKtq8++JeSAeoJV0ok4KNj533cpvjsdbtTuZ2nOt7oAu6
oAu6oAu6oPuTo/u9f+p96m98zvZVefmT0eKzzfLnlmeG6/RTxe9wjscOFC1EC9FCtBAtRAvRQrQQ
LUQLQRd0QRd0QRd0QZcdKDtQdqDsQNFCtBAtRAvRQrQQLUQL0UK0kCMd0AVd0AVd0AVd0AVd0AVd
0AVd0AVd0AVd0AVdrmy4suHKBi1EC9FCtBB0QRd0SWNJY0ljSWPRQrQQLSSNBV3QBV3QBV3QBV3Q
BV3QBV3QBV3QBV3QBV3Q5cqGKxuubLiyQQvRQrQQdEEXdEGXNJY0ljQWLUQL0UK0EHRBF3RBF3RB
F3RBF3RBF3RBF3RBF3RBF3RBlysbrmy4suHKBi1EC9FC0AVd0AVd0ljSWNJYtBAtRAvRQtAFXdAF
XdAFXdAFXdAFXdAFXdAFXdAFXdAFXa5suLLhyoYrG7QQLUQLSWNBF3RBlzSWNJY0ljQWLUQL0ULQ
BV3QBV3QBV3QBV3QBV3QBV3QBV3QBV3QBV3Q5cqGKxuubNBCtBAtRAtBF3RBlzSWNJY0ljQWLTxe
C090/VeopGgh6JLGksaCLuiCLuiCLuiCLuiCLuiCLuiCLuiCLuhyZcOVDVc2aCFaiBaihaALuqBL
GksaSxpLGosWooVoIWks6IIu6IIu6IIu6LIDZQfKDhQtRAvRQrQQLUQL0UK0EC1EC9FC0AVd0AVd
0AVd0GUHyg6UHSg7ULQQLUQLXxC6tVEnp27hRD3YreqTM5+PoucpU0XQXwXeMuyhTgaTkY0sdybm
c2FXt971bNNi22wNumYvJMLsdvv7NrO5txIHRp3hMNe5NgV3727j6RyF9exXvbC+TUX0fLzxkcN2
zNbF/wFQSwMEFAACAAgAFZskSv3kNRtCCwAAONMBADIAHABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vaW5kZXgtY3Vyc29yLTItc3RkZXJyLnR4dFVUCQADerxtWA20bVh1eAsAAQT1AQAABBQAAADt
nF1z2kgWhqv20lf+CV1zM1DlrAWID+cuwXGKys7itTPJ5ZZAbVsbIbGSsCc3+9u3JSEh0AcigJ2P
Z6amphDdp49Oq5/znlbj0eXbW+k9Su/1a3cuncu3N/K/C+kHQ8OZStuW5smfjqWujC7fXhqBMTF8
WdZSvBKnJ42ZYTlNUdBp6jqOnAaW6wxt15fmlefOhrYlnSDsKBotXet39K7e1wddvdtrVpgyJq4X
fPQMxzcig9HIo6130jAnhebm0rtzvdmbIqu73f0fcuZ6X1Xrt8b0i+Xc3wauV8Nfc2l7mIboWjqm
6h9FSrXOxKbX6fTyXq16ZgOdtbIR7nWb7cFg6XvW8YzHy3toNMtu0VOXH+V48h81cnTpyvU+Sc8P
p/vBcO5lFN1l70wzdfPSloG8kVPXM8OgrI06dWfz8GtzrCbJCK99tGbSu7I8FfGG9lf/7u6uq026
pt7Vmrne8/j+t/YdaOl9Oab8K7mbd07gWdL/bAUPnwx7IT/Ir0UOzqxg7MRTGX69moqPbjLBcatM
x+zs57/MTW/BkJUrbcNg5tlcC71hmsu4b5uXmtFhDMZgDMbY/PLJs4IsxK4sx/IfwpRcCjHTMq93
y8uW8+h+kSns3zhmplOE/kaVqHArOkY5o6KvynCmLZPPqQu+cvXjg/SkMNR/rU5X1y46er8tlokp
zAJXahgVrmQeEhuJRCjKJsUtK74t8Dh3qdHM5kTZMbRmpZxb3nI02GEiM9D0QRqZ3Uxdu/O5SuqG
I9JZPBOO+ySCqjG2eT1ceJ7SS+lIFR2WEnLZI45K2i8WxiXiM56urJg6uf3XP9RyyUmsexmMvXe+
6mirxZNYGDl3rhogkZBqpJLu+YFEdEl9EneWLcXvp78L5axp+V+q1+Vl3uWsnAnVZq5j0YT+b9tD
2OpED2HZMkg8ScdQDcdZcR4iLFbpiYwsaOI661ZuF9Op9H3lyisxjedTPMZKVlh+VjZ3+z0tNJia
UqGbG8H04d1jWtVkZGbnIpao6YoPC4mym4uKjMwaFo1TFRu939G6vUGr1W7m6p2KQG9d7JMozmW1
Tq7GONR67+nHX++ZMY623sMnarXas5Ft36k5L1v6YXDX1mPYU1P/tPTBoBsWJXuSoHIVjzdGP8yk
9pT7Lxhw05BaVZJXMfOCtbq0su5aK6s9aQSyrG++qG73u+3SqZ/Ie8vJdB85dTLAZq+9lFA5VcdZ
nNRj6mrszAfl3jAMWphhVk+leFJKMiVqFqddTRerzQuxgl04w/pE0yaa2R+07y56F7LTPKk/sXEO
WSui1z8nGiqXGv6c33uGKf8ppSnNOimhd9FTJJJPBde/P+25Y+LK7DBEayEj8VWfxqk4zW/B5FpG
Yc7WBnGLqOQomKfMt7me84XC4Bszv2u0fEKvM9/TkY7P3HFZRU/dhROUtR+GX4pG0rqZ6ReqA5Xu
fNcr6zwub7HLzufWJbt1d7Noje+3jVtuesveaK59xTZpvm31C4JhrkNJni7Co2GGEyLGt0kGHF2K
VrvT0ruddmegawNNq7UbMtw3IqIxNWx7ohxuVgseNeawaGZLVMPw8E/BWu+iIbJP5lrjNKGmKmXs
xG8/jrBUogVbb5Gkiazocp2JjFtue6iXreo8znHTygc5zs2vRPYhyj66nbZ2JuJGG5dPUv03jTgV
P/lqMKF8UiWw+O30t5MYYaFgmljRVAjbfZKe+CK/RnsSSt+Ihar30isrb+Ou4ebjY/geLhJoMVJX
jnQGF32lyTYuiDup9I6aYy/atPS/wYv6q3XH6d19haaPVeXaTFsdY1XmFsFLrMckPW9bjKVpHAMY
+EkM3MtYXW4zkLQrWrNLebnNxLpUzXlWDb60WcXmT+Yec9a3ZLlUkVdui9+EOwYqeXjR/0/PhBvl
OuFvJDuVOy7aW0xFCUXZCvNElaVWuaX0ZVoNM4OL3pEjjHWsY/27tp5CvNp62qzcejYdFPC92n6m
YeVmZ9KoBH8LR0nz6RdpKnhHuvKDYuAr0chgr3/RbTdDLv6ttpGUqKrXKWmjckN6VcFc7/bcZmuX
8nrkuky07F2MXBfIpsx+/vLl7o71Sd198rs9zyDuF41fazHt9OwebuXtvgoOtFaPvphg8YuymPAT
fsJP+Ak/4Sf8zxr+ZykjjlxrYf6nNf+MBSgg+vHzQI1C8dtmqF4FeoAmdR+Fb79TnhYW688b/vfJ
Fn75zwfiQzKvyu5Q1wb64Ls4vHPR1fSzzQsHOLyzkxfhOe61I0TRhZwX2MQmNn8dm+9ubsY3r8Wb
IJCzeSACVyyNCkOke+9LeJ6cf3LtxUz65yGuz999vj3/LCcfrOD81l14Uxl+GioIn//hmgtbNbNC
7EvTnJz7ka4537iDv0/n80an1W+K12LiurZYGoh+2pJIodK7XlhO0NP/HTQPoMfGdV76FlRCddLL
7tXS0RNST9PONi8802lSKuwK8+93OwKxq/nx7mcgNor4H+BF9/PUd3s1eZ85n1Lx+8XVccQf4+U9
RxmIBtEgGkSDaBANokE0Xjga7wt+PvPrRmNc/FugZcHsy0CF60b6CzvI/ImMaBf9JeKW+DV1ncBy
FvJq4cR/5qMRuLFX+Zu0gtABeYTf069Z3vZTqpwbxV9Ul6Drbcur24121ds8o7XGJa8WrOJGNTfd
2trZ5oXczsq2V0+ejHpUuzkvaZX4mXwfOxoX84btScP8Kh4MP+tkq60PcPJoTu5HsjobO6NvXVj1
fuowquTK3mAelcIFNsNm2AxRIApEgSgQBaLUJspL/wW2ff/yxtF+r13/JMB3cXbsSK/qj7/e93/Z
XOvVKHtEqAZUA6oB1YBqQDWgGlANqAZUAy9teLOE/mIfGDbDZogCUSAKRIEoEIU9IvaI2CNijwjV
gGpANaAaUA2oBlQDqgHVgGrgzRJO4uT3pmSPcIu7q+ODBwW5TSomFVPAU8BDFIgCUSAKRIEoEAWi
QBSIAlEgCkSBKBAFokAUDkJwEIKDEByE4CAEqgHVwJtxpA3YA3tgD6JQLFEsUSxRLFEsoRpQDZx1
xkmcRG4jt0nFpGKIAlEgCkSBKBAFokAUiAJRIApEgSgQBaJAFIgCUSAKByE4CMFBCA5CoBpQDagG
pA3SBuyBPYoliEKxRLFEsUSxhGpANaAaOEaMkziJ3EZuk4pJxRAFokAUiAJRIApEgSgQBaJAFIgC
USAKRIEoEAWiQBQOQnAQgoMQHIRANaAaOAiBtEHagD2wR7EEUSiWKJYoliiWUA2oBoolnMRJnERu
U8CTiknFEAWiQBSIAlEgCkSBKBAFokAUiAJRIApEgSgQBaJAFA5CcBCCgxAchEA1oBp46Yy0QdqA
PbAHUSAKxRLFEsUSxRKqAdVAsYSTOEkBj9ymgCcVk4ohCkSBKBAFokAUiAJRIApEgSgQBaJAFIgC
USAKRIEoHITgIAQHITgIgWpANfDSGWmDtAF7YA+iQBSKJYoliiWKJVQDqoFiCSdxkgIeuU0qJhWT
iiEKRIEoEAWiQBSIAlEgCkSBKBAFokAUiAJRIApEgSgchOAgBAchOAiBakA18NIZaUOxBPbAHkSB
KBRLFEsUSxRLqAZUA8USFR36CzbDZtgMUSAKRIEoEAWisEfEHhF7ROwRoRpQDagGVAOqAdWAakA1
oBpQDby04c0S+ot9YNgMmyEKRIEoEAWiQBT2iNgjYo+IPSJUA6oB1YBqeG6iHAwGKnQzK/JgNatP
lm0Po+uZpvF9rhr5gTtX7rXUqujoXb2v/u10euttprbry41G7cGgdJ6XHVffXcd3NgztrJueGV8n
Mro+Wk7X5ji6ViVk0ogPQwDYtjR3b70WyGU8Tk/+D1BLAwQUAAIACAAWmyRKkLX9ClARAAA0bwIA
OgAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1jdXJzb3ItMy1wcml2YXRlLXN0ZGVy
ci50eHRVVAkAA3y8bVgOtG1YdXgLAAEE9QEAAAQUAAAA7V1Lc9s4Er7nlJ+go1U1qZL1sGzfEilW
qXZ35E0ys2daghVuZFJL0fHkMr99wYcoUARAgAQlkvpSlYPFRgPdaABfN4DGfPrpK/F+Eu/+fmX5
1pO1IxPXccjSt13nkTgr21lPNu6OdD50roe98WA4Go6HtzeDwc27Pxz7f69kPv00zZS8v19yuTx4
7stkYxPHp/zeH/Hs396+mx/a426JM/30hdA6dv7EcpZksyGrbK0iyqAG4/yuXizb6XY4hQ4Ch5Ku
jkS9YiQdDUc3XQkr68n1/G+e5eyskGFU8+qJS7wl3rPrvXzklfn673/afkD+yVr+oH3w1Xc9EX9K
xfwUyPOy3RCfrBa0Biv47Zv9QrwH26OquOr9NX5+fh71nkar4ajXzZTeRp2eW/aWU5bW/GL7Cyfq
uODzwbC+ufvujKiYgmxfZz9mNMepUtq7RwxzrGFlrx4lHcMpYTs/3R8kUdhHZ8UUCtV3JbMZV1Iw
1HtKPYGFZpjwWvV35rerbqoHqVl3I+t5oDW63i8qOwnsZk+/Ny5eH/IpJV85LcxpIBlYYQPFmvtu
OasNmYaV5ZPFfyf9tKPt+vadeKRj0f/Xg9Gwd3fbG9524hHwTo/Vo7vd0jFiOZ2kQ3/rOO5bx5fV
kdfqyavn0YkoqUlSIJ5O4hKRVpJy0oko6i52ppGPj2mWvhITJdeDvYlybXDfkqQOSrhgV4D7ey9e
CvZTIofEddJcvr4ul2S3o0350FlGyuzQ+naBFu0du+6Nxje9gGHCamXvtpa//P75Z7J4MANucBdN
mclwC1YrkXDhSsYMoM7Ve6qb4XjQG93cXl/3u5kFUqLo3JH2FOpZtKBmQIKpwXYzrH6wMXVUNtgC
izoMNVaz/Wfa56JxFyiXHUVhyR79dz2+s0bBAisdhouj4mZ65YbWf0aNrSwilXvnW57/ZzQcJ7QR
ayLFCilg6xHLJ6KyWVjbH4/6xdd7QZ8/kbXtMPTzdBf+i7zQqSGD+45LlYITRsxkMBz3EzMRT9AL
dmZSm54PzWH+oC2YBN1Ha+vs3R3aX2+2/z2ZnNmZedQbdg64vnOYNwNbGz71ek+91fi2/3x3c0cG
3XfqJsbB2+m/91gos8r8sV171or8TsiKrFRWl5u7GzqpkTfO7wVWHQYRh+Ng8fRfqpxo3vlAV5fO
ew6eP6YMBTv8uaeYOyvyF88TOXzNlNy++gvv42qVKRTbxCPzHQVREAVbUDCcCgKf/NXxRfST4GPn
ak/dZcoFgIkCiJ3riQovxBSlAhvHE2FujIM3c5aL0ohZ50RIMvSSYEmWVh68mmQKCBAMb9GxVkGH
dBZf9yv5fNq57g+uh6NBf9y76Y2u+zE7lldKOMrid/LGsKXQK7/I57/sXQAlsu1OWfabZ/ts2a8B
MJACqEPwaFK2lzpXS2uzeaJSdOWwltY54VmbAJFNzFtmqjSvCna0pIgTsJogwIUThV4rGL7hJKI2
cBPIwvtZpSMjyryBFlOpDLGIVDq4WBIRSFMbTyGp1kjKk/d4YGhqUn8wJD0oHQYJVRUDIGNv5zD9
/eqcZ/fCVRwMwAAMwMAYgzWJIH4egz0db+aMMX4ei7S/kGmZfPlJyCQxTUbGDPecZf1RsxWCpT/a
u/kSRKlUGspBBywH8WeydD2+nIKGUXAQF9ISMFX3gUfBPjDXw7GUkR+69dyfdhCysza0G8Mf/0F+
VdwCVXtSMBRYQU2tQLGL1VsqswJxNwotw7Qm22NjKpZRy7mgOivI6+LiVnzoLcXWa5tItTONirHA
CtpuBY2wMaYFCSA3g2wTdqWQ7REXobUenZaJvYI845RLkGEkMVHphr2kOSocDsE1TaeCDatpsTe3
2hVugln3im1GKXsUKqvkPJptoNhqSxijWvN1J9LCnVy48/IQuiAqzO5VGiBRtVEFVuW9OmNSm42V
Px7HkxQ8A+ZUTXxaM9/mpWasEZyv2H7VukD17E9w+lBxRJi8BKBhERpDRNFy8nCu0HjKxENUraec
mdZhjS4dohA3VdZxJldJpU5VcTr0h6Hi/KM5/hQXj7KLYiV9Xwk+O0Hfl5jztEyBN9HxZzH9aehU
BtF+RJ3XpTozRZnJoMhibx7CaSzq6lDuaBnXM/Uya3vuKDg7ImyMeZ7Ke8gdAByzK4pE9dGewZXK
BMwq482bNKwTOCpnQThNRbf1QzhFLER+zu6ECKe8v1DGJ63XLF0whlNu2T9ZKP3SYji1gIT50c/6
RPjMzAPlB3pp3Hj+aPFJFooixqs+qg1atX7nV+XzVj+ISsMTPfNQN74ca5nl7HvLdrTDi3MPrkcb
WNARZm/gpRgFv/9pbV5JXNXGfaNy0e//sf3vUafOnZBWmheGHfyaLKs2mfNLWKAJWp65PvviiKFk
XZorQcnauIO3RGcwQdeSLSu+6ixyT58wJ0tUxlYyMamd2xHsukcV3t9nfipgz5U4+4mYKjphlKx6
FkjNE5BcVD4VSNLzlNsTIoQ2oA1oA9qANqCNgtqYce4wXq42FvwLmTEQ3BGfqusL2b1ufCbp1Q/y
Swyqq9Tbvl1L1/Ft55U8vDpR4q4r341alRXS9oMGkAoyy6Q4591nzTSD/0GOVNO0YhB8RCd3RuYp
YoE/YvOIWJ8hJujsO+K3Tn84Ho6v+73OUunmgUeeCTUAI8BaxT2YF9W7mpMwl5pd6XE7F9peTYcu
J1i5H72ihFDTo1i5ARb1mkDYmG3e/CHdODDGyMyUpnEPR/VEhOB+abq4fIaZFmxVuRNwWU4m7m4X
XzRSoWSP/vGTfHZ8zya7IOgVRsPk18u01pappiLNHI3IFQ4LImdBLDg+dC8Inaiaipf3qdpBQ0Wy
isHCVLA8XK7bA40AUAJQAlCaA5TVgxt9yFoc5JnHnTq6VAWfAJQAlACUAJQAlACUAJQAlLUHlJXW
dPaNpEYG+xChBKAEoASgBKAEoASgBKDElnetcFBJFGxOP9qRR70gJgAlACUAJeATACUAJQAlACXO
UBY7QylEguV213GGEoASgBKAEvAJGgGgBKAEoMSlnJzQY5u3p3FLFYASgBLwCRoBoASgBKDElrc6
3jzpiU3jqeDrfwJTG+6Yu3clfMzwlGFURdxTCBzrqlYPTbcddwJQAlACUAJQAlDilndbb3mfBJea
uUsuhYMlnnySI8IKXrObFjCK06y1WuhW6/mYc0d6S75B07B46/kzvwNiA1DWBVC2FA02DcS14BAd
9lFbto+KQBNWwcatglvRk3/x+se+kYeCKIiCLSjIPiYooo/fCttTd5lyrvgNrLiw5JWsMnP1lvOY
CW8ZFOoCDMAADMDAGIM150EhHoPkcVgOsnPUvO70rJtpmdrDqhJHhpUxw131JWVzrTDyyHJGDkO+
e7k3llWeMVZV+MnCGRXK2ijTLXX5QNrQatUA7uAO7uDeSO5rvSeuJdxZIMZBVqqPRUtqcE29EK0S
c9ZcvXRD2iXYiyPUbCRCgQTvoRqKXdceB14S5oWskBWyQlbIClkhK2SFrJAVskLWC5N1tg/HCFqy
Tn9PNSQ8vvDgerQaVlr2cAP7Nfw93MGJy2/cN+q00+/B1k4k0twJaQPPHfQNo8+xNOZIisDW3AwF
e+o181N0eK/6+FKzw4BgD/ZgD/Zgb5L9TG8/TJf9Qn9DrHaXBjV3mUBy4SQzZmNYQLIwtbOLfUlo
A9qANqANaAPagDagDWgD2oA2oA1oA9qANlqojRnnouTlamPBv/VZ04Qh9cp5ZSZVVfVpLpGL6QxJ
kirOfoQUykiah+x7l/XIW5vfcsOCiEfe8MgbUiXiTQ4kjwSgBKBs45sc2pizcqR4wmzXOjiuFOLm
sToz5AagBKAEoASgBKAEoASgBKBsbYTypFG8NodDASgBKAEoASihEQBKAEoAyvoBypI4SAuPNmr3
GIASgBKAEoASgBKAEoASgBKAEhFKRCgBKAEoASgBKAEoASgBKAEoASiLAEVEKAEoASgBKAEoASgB
KAEoLxFQVloTdo8RoTQLKE8MEfXwKwAlACUAJQAlACUAJQClsZpOC5eE8DUPR1URoWwkUETaIEQo
ASgBn6ARAMrLRYNNA3GVxtX0sVEFV2GqgGBAKe2HD8AFWAU1VsEt8yYhb/1j3yxEQRREwRYUjHEE
f5Mqpo+f7N1Td5lyrvgF0riw5I3SMnP1lvOYCW8ZFOoCDMAADMDAGIM150EhHoM1866z4O3yPBbp
WTfTMrUn3iWODCtjYe45np9GK062Q3Bcg7VaiU+HHz7ytJTy0ree+9PeUf1YGyp3+GPgoqOfTttP
Kn2iqg7I2ixZq50nockqZ7L6aFdRztxOUJ5MNVaceqwm4A7u4H4W7oljIeeekIm5sy4Kx+eQ82cI
xTVI4kbmN30e9dSuu9kD9tWwF29ssQHMOpHgvWa8Xg1tQBvQxpm0gagHZIWszZEV+BfwGtgZiADa
gDaAFoEqgCq6WFExa2LWPMUDM9nBmjvt6I/mvG3cvHGsuCNfd+vGMgpZIStkrSx5w9lVMtvvmQta
sk5/TzUkvH3x4Hq0GlYp7N0M9mv4eyh5XH7jvtGpmX4PVBKJNHdC2gA8gL5h9DmWxtyoEdiam6Fg
L+1mfgqqRKQU7CtjP9M7maTLfqF/NOnI4T6h59WwIy3FSWbMITIBycLUKTB46NAGtAFtQBvQRoXa
mHGueF6uNhb8+6o1TXVSr2xdZpJsnT1N/YVmkao4vVPFeZuQ/Bn5o+uZPxqJqC/hqbw255BuWAbM
Aqm/S+hYL8MlXhJEnm7k80TWcGQNh0aQQRa+GXwz+GbtfnWyVc8RwQssG6LFG0rwzeCbwTcD7oYn
Ao3AN4NvBt8MvlmDPSZRw9voSZ1ww6uKcy+NwPrqMBPQwPgF6MuMbDTRb4dLjNeL4cdAI/Ds4NnB
s4Nnp+vZ1eBMX/1cHGwQVrNNJsCK1ZwJziYqquZ4p0CoC/ZJ4GJg1w24GxqBRuCbwTeDbwbfrPX+
Fo5fotG4rYYTkfDN4JvBE4FG4Jtdqm8Gxwr+ELwUAH4AfiBxHMQCoIRG2gEot6LHt2IcyCbNRkEU
RMEWFGQfaRHRx68a7Km7TDlXnAI/LixJkl9mrt5yMjvzgIFQF2AABmAABsYYrDnZ1XkM1szDIoLn
XfJYpGfdTMvUXsGReICsjOAO7jXirvqyH68VeNnwEl82xMOWkBWyQlbIWrGs9YAQigpXaIVeSpSj
YgUziyhwydt83So/B5/3uDsgKLjXk/ta70VWCXfWG+e416oPskpq4L9mLJxFS+5Rm1tvtB7exUIM
WSErZIWskBWyQtZjWZPX1AUtWae/pxoS7k0/uB6thpWW3blmv4a/h+HHuPzGfSM7n34P4pKRSHMn
pA3OxYC+YfQ5lrbIwO1jW+MD8v0RrcxPtEo1H0b3dOWjnosE9mAP9mAP9mDPYz/Ti4npsl/oB8XU
bgGwW/YgAclpSGZM3FdAIjm5WvqmwCPntNnl3puANqANaAPagDagDWgD2oA2oA1oA9qANqANaAPa
gDbapI0Z56Lk5Wpjwb/1WdOEIfXK/WYm09rZs5JdaK6sirNLVZwPCskjkX8Sif3rm8iykUkVkecT
eT6R5xN5PpFOFIn9kWMTGoFG4JvBN4NvdsG+mUaryl1qV3vaVwlaG9Bw+ZeYzftmGr2m6sfBN4Nv
Bt8Mvhl8M3gi0Ah8M/hm8M3gm7XrATgdaC1qlQLk1nauhOi8tJOY43QZ2QzEvhl8M/hm8M3gmwF3
QyPQCHwz+GbwzeCb4Xgg3Bw0Gr4ZfDP4ZvDN4IlAI/DN3jdddS922ILDBPxmbzaT8HeGNJIzVXbn
u9soyzRbOv71etgbD4ajYFUeDgY3aZrlxt2RI6L+7a1w2owLHr49RiJPAj5p1i/WrycS/j6P+/G4
nmFP9vRr0hUTy1mSzYasNKn/D1BLAwQUAAIACAAXmyRKCcAY6xsXAABmOQMAMgAcAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9pbmRleC1jdXJzb3ItMy1zdGRlcnIudHh0VVQJAAN9vG1YELRtWHV4
CwABBPUBAAAEFAAAAO1dW3OjOBaumsc85Seo+mXtqvQY3y9v3U46lcr2OpvMdB6nbKMkbDvgxbgz
ednfvgIMwTYChAXG8M3U1FSwdHT0STo639Ht5vLrAzV/UXM0UqfWdDZd0bGh63RuaYZ+R3VV05/H
C2NFyWfS7Cj9dqfb6XcGvXa7d/anrv13TW8uv17u5RyN5qFSvpnG63ihUd1i8s53ZLYGg7ObD32M
JdUvv95TVsbKGk/1OV0sqLpfKi+lXcJZ7XWq6XUSkulDQUczdUe1WkCzbqfbq0eIms4M0/rDnOqr
qSPQKTm+JjV1FipuSc0nw3z9Eib1O301zHeW/Ot0/pOh+mAZJk8DN20wYSDFJk+tzhNpss+/6GT2
HwaS8+mbYf6g5soG7GWqP1NHP8HmcMsKCGXdji6oRe/p3DDVsN+nqrr5kRWyVYG58bq086oThtjU
/vaH9krNb5rJSqspf/efnp66yqyrdrpKPbboXelLt9vGyh4w2SGavWrWRHc7gIewrtK/PVyvdMvU
6OpRs15+TBdrekvfbSkfI+gPw+s9rrCA/GiUDoI4WeYkNeFrv9djQqCLHLc7AnkdS3qtUIac7oPM
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
6kNSur/ZuGG5d3t3PW8av5e32ofzra0fVSlK9YP5Y022TI4qu6uunll2v5cWDi6SqHjIgduJW6gb
XLJNtNGqYPC4lEdjXTH1vWdcSfnhuQFTQDiezJW6J4CZ08nSpzU+v3ajmE1j8vQmv4pWCtMfZwyO
DrO7FZ2sQ0xLY3ailHg07h00U4YSu/Gn9RIITq/D6pJFBlhxFK4kwGriONFVIzy+YRRKre43qh93
LgHuv0bGA2sIL6MKKYwrsjQOeRicj3JDnRuHmMCbV1ybKZpHbOvj8xlWUo2EFO8LpKrL06SE3CFn
76wYtsE9rYwjphjHFXT03d+F1hTkSS3jNpepn0XdeTMwOZri5Q0FSJCynjX9/vBBRVKQvx+iq+aa
LiOGYRqIKuZRmuVzk35u0s9N+tdv0gu+zqyRjSxVV4RGkK6jlUlv7B9LHL+f7cK7wmd4pTbnk+x2
HWcH4rxkdzpLdi1WU84LJl0smJzCvoNuDc2vs5bZZDViz+WOlksa5+2LbrYv2t9Nye52Wm4e2FE3
wrx1SYgpsb1J+tdy396ghTmkbY9lSrt2iK5kf32no0AUBHZFKD7ZGbmn/hPFQZBH3TE/dAilkzfO
iVkktxNVCzQYIiY8HEHMc+kf59qnMPnzmDbQU5v5gsejXC40SC5fvlxM6oIlhWHGGH7sN27MLWM0
MvdpzFvMUi2EMYemYPrKTs/55nBLqU+5XxyiBADP+VeHc9c9qJ8YP2xP/bAPIYcE+1F+l+CAyQac
n4ydN/BPdUDa+wvUQbX4vPb/3679d39ZuccmPDPEZL8n6m5SM602k9pnXzsXlh32J7qVodTflm8r
9aju112d6ruLvGNfneqtrmjzDq2Uj3Zn7LXXk5BMZwpsr4oPZN2R8lqQ+QlQSwMEFAACAAgAHJsk
SknNO6q7BgAA5zsAAD8AHABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmN1cnNvci1mYWls
dXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAkAA4e8bVgatG1YdXgLAAEE9QEAAAQUAAAA7RvLbuJI
8J5TPsFHkDaSwTYQbglMsmi1QzTJ7L3BBfGOsdm2Icllv33K77b7YTuAktEQKQfa9ep6V7s9m94+
At0DHY/9LXjT22/w3w6CcEK8Jbgu2BffPQdXZtPbKQnJggQgg9SutMuLWUHPTuEnvufBMnR87wE8
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
KiYAT5+mM9cOHNdzAzf0Hcc33ih5/4AsjVNNE0XFlX7JWZ1UBKhUpMkVbR6GhlkjQq2pBr2LMnsk
z3fm1ggK5YzLLUdUoBbYAIzsMj07AE3jV1A6IRNEC6gqwMYAabiy5Zk4H2x+AF4yXi+GPGxenols
ymNU7AndbSTjI357Tw2XYiVZKT5qXrakBr4kXNkx7c+gLEvPzj3shraladsGK9rNv6C4m+Q0lmjK
L5+6Zb8xXdsaxmZ0zdmOgxBna0KrLFh9qEACvmvf6+zf9KAlrjt6dDNul2OC1yPfOaAg9Mj2cJ5S
Zd0TtTObY5vLRoRtWP1siuZONMiQq2/tzbT+xK6Oy+p2bqk6Mv7Vrf6tzWjP4kTqrnOieG7g2J4f
zmZz679I+lE/Vv0DUEsDBBQAAgAIABybJEquumlANgEAAGkGAAA4ABwAc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL29wZW5kYXRhYmFzZS1yZXF1ZXN0LXN0ZGVyci50eHRVVAkAA4i8bVgbtG1YdXgL
AAEE9QEAAAQUAAAA7ZNNT4NAEIbvnPgJe4REk6V8liMQE041tv6AhR0skc7iQv349y4xtFqgWtOo
B0n2wGTeZ3bnnUmTaAnyEWQYihowYS3LWAPaLZYPW0iTqI+E4SBkmMSgz35RFC7NXLAzahJ9TPme
HAtEyNtSoGZsWIkmGRGsGfIK+v9FDZJ1ioZcktUaJBCmjmW7Dp0H1HOI4vMS77TTUNeiroEThkT0
4QuC4om0x2p8dut4KyVgu6t0RKBSCiE3ewXuVB86OyuoqaUTThk8G4V3SRHL79Wdl61Qb+mIVH2W
P2duoIj/Hv81j7/v5eF0RDegIE0bM8yhqoBPejbIVF3Tz86bbhAv+eLgeeeZGitwvS84+jP1FeSK
5Qr+8tamLrBfk5UYW+2uccTQ1QY6vk1dL7CsmflbpOEAnJb9ClBLAwQUAAIACAAcmyRKVmcixygE
AADdJAAAVAAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuZGF0YWJhc2Utc3VjY2Vzcy1h
ZnRlci12ZXJzaW9uY2hhbmdlLXByaXZhdGUtc3RkZXJyLnR4dFVUCQADiLxtWBu0bVh1eAsAAQT1
AQAABBQAAADtWc1vm0gUv/uUP2GOttRImG/7ljiN1lK7Tpuk9wEe9qh4xh1Isr3s374DGDzAgLHX
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
ixuT1dWnnOnIwBSFQQMtQSQLte5J2iyDy7UftMT8xo2ZzZl8fWt3zSrc+i0oZOLJZPvay01Egkqh
lBolKW56J1UFkcJv4nqr0oTkG5q2ZFE0rAWKUBM21CXG8WaRfXwiKJIHyO+pf3Uxqa5p3PqT7Bob
7bNa/hOJbonjB/gogftDjBLGMqkr7nsJ8DcuZXb4I8aAxbV0Y8YtBkLjKTOaqIfgwHtoCjMaoezJ
gbTm3OPPs9/OTDo7UjxgbflRiBL9TqGb6qVTIe6UuZ+tQPpZfV/XCiaXmOQ5VjvLTznOfaiSFXiX
rQMfc27yuswtEBXZj+Qz+RrdHihlWaWGaTZDFCb7MJ96Lyg87PesbArRkF+E3iOmEnpmI3tsy4Nf
0IPNVqlhp3L28oe5Wl0SMw3yoRddz0D/H16Tr9R38QFbS2WetGkU3fWeZ95g5lVIW9XFVyuNZ+p4
KZopzqeLJuokU9REyl/pbrPFLkj+771HaRmW+bU8izGs6VRvEZXUdUzWI3lRShrKJdkYdxZjKQ86
S/ZXx5me37/Kg3Qlq0hPPs9ZCaKMOyfONldHHu503WltBDqdqzB/qxyeFgFvkeJU0hd6CAm+8vz1
jetlckMAH8AH8AF8AB/AB/ABfAAfwAfwAXwAH8AH8AF8AB/AB/ABfAAfwAfwAXwAH8B/nT+rnxYp
AD6AD+AD+AA+gA/gA/gAPoAP4MMeH8AH8AF8WPEBfAAfwIcVH8AH8AF8AB/AB/ABfCj1AXwAH8AH
8AF8AB/AB/ABfAAfwAfwAXwAH8AH8AH8twT+r7qG/TRLwiXucIn7GS9xh+tkf+p1sm/rzny4AvZs
N/3/bte1bvOr5ttWky1/J33zodq9ZTu5S7g2apLL2/Hl72OrFGmt5ebUmuid8Ph07Hy7FWvy+/5P
rtY+ifxbVFth/G148CKmThQcnOjA5M49nxKo6qCqg6oOqrra4vfbFT3ftWBLXm1de8Ohv694emLG
b/yu0tN4QfnEzF4mLjSk8kXnVdE7+2VNkueLLGHUxzG17uOkbw1vGCubY0/5xXEGFIv5D1BLAwQU
AAIACAAgmyRKccKMtCMHAACWVAAAQwAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2Fj
dGlvbi1zY2hlZHVsZXItNS1wcml2YXRlLXN0ZGVyci50eHRVVAkAA4y8bVgetG1YdXgLAAEE9QEA
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
YvLyduEFrWR24pJXknAyhxOq23VAeO6VJ1ZKtEB0Pra/D8/wcn4y7g/NkdLeJe97iKc3DXHy0Fvn
fUmi9vkhkxR4LNuuzxMB4XZP1RQefe9S19/8FNpZzEx5hpA9ideqJR+GI1OoV3/+IEW552wbrzHl
0B4NYlVWqe90SeLxlTLo8rcWqpt7hTYHvY9kqrqnpXDm2cKZZwt2qh1zSbo7eadzcUtCewdzpROt
9M8b7R3bjeyGx3Ynr0uBZj8hP9HLdSHJkXnVJjbtWMjsUkkE1S3GYWiKj68EBdrdCNMche324Y4G
49Kgg2UfVM8BFEABFEABFEABFEABFEABFEABFEABFEABFEABFEABFEABFEABFEABFEABFEABFEAv
D1RbiaGtTpONkNSl9S1p2SuhomVPKgtz65cz/U+qktSIUdmLExD1tcS2b0EeKtFuK4mb3IesU7V9
e7ap6iu/hQQJdYGvcAmS7fJublj9UckJD93KtUkuDQinjhcVVZcvGMhrrXVVw7Zhjux/oWrYju7h
nFA1rCwSln5Xh1KLdUxQS0/NZ6yUqdnUmvVu7UtLFIWOj+Ft3orLA1Gf0r2A4sjCd6NARfb5K7Jz
hnLCnPGHG2zYXrhQfG9Ft5YUU0zhy20ULlm1UMhQVZXfJfSaMlwMniTS4Gt8WvsanzNuyloVtM2b
f1FUJjXTYnqx6x380Ffl8WIsy2Hn9IGzZ058/+gKsnSfvBxkS7czZe1fOWcfupEJFEABFEABFEAB
FEABFEABFEABFEABFEABFEABFEABFEABFEABFEABFEBxWRSKgjdVWQUoFSiAAiiAAiiAAiiA4uwU
yuq4GnW0TQtna11pqFkb+5++7nJhv+QIP8V4IT/F2ODWwz9QSwMEFAACAAgAIZskSs+DS/kABQAA
STUAAEsAHABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1hYm9ydC10aGVu
LXJlb3Blbi1wcml2YXRlLXN0ZGVyci50eHRVVAkAA428bVggtG1YdXgLAAEE9QEAAAQUAAAA7VvL
cuI4FN2zyid4CVWTKuM37Ijp1LCYITVJz162BbjayLTsJNOb+faRX1i2JdkYSJhupyoLbN2Hju7r
oGK1fHiG+A3i+Tw8QLR8+At+f4VRbAPkwiCA3mi1fHgEbhziH/O5BwMYwyWIgQMiKN1Ld8lrO0QI
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
JCMkIyQjJJGpBJaoPPPMM88888wzzzzzzDPPPPPMM88888wzzzwbCQNrJOy7Lsx8EUPMuy6860JV
qipVlYpMkSkyRabI1JiVqBqzPPPMM88888wzzzzzzDPPWs7AajlrOWs5azmLTCWwElii8nx/nu/I
4Ge5G/DMs3yWzzzzzDPPPPPMM88882yEBKwRkhGSEZIRkshUAktUJTDPPPPMs5GwkTDPPMtn+cwz
zzzzzDPPRkjAGiH96COkB10JP/IAyghJZIpMJbBE5ZlnnnnmmWeeeeaZZ5555plnnnnmmWeeeTYS
BtZI2KcKfarQSFhk+tSCTy1IVJ4taVXIPPPMM88888wzzzzzrOUMrJazlrOWs8gUmUpgicozzzzz
zDPPPPPMM88888wzzzzzzLMRErBGSEZIRkhGSCJTCSxReeaZZ5555plnnnn2KWGfEuaZZ/ksn3nm
2QgJWCMkIyQjJCMkkakElqg888wzzzzzzDPPPPPMM88888wzzzzzzDPPPBsJA2skbCRsJCwyRaYS
WKLyzDPPPPPMM88888wzzzzzrOUMrJazlrOWs5azyFQCS1SeeeaZZ5555plnnnnmmWeeeeaZZ56N
kIA1QjJCMkIyQhKZIlNkikyRKTJFpsj0z5n450x0jXhWAgOrBFYCK4GVwCLT4FSiKoF55plnnnnm
mWeeeeaZZ561nIHVctZy1nLWchaZSmAlsETlmWeeeeaZZ5555plnnnnmmWeeeTZCAtYIyQjJCMkI
SWSKTJEpMkWmyBSZIlNk6hpJVJ6VwMAqgZXASmAlsMgUmUpgicozzzzzzDPPPPPMsxYVsFpUWlRa
VFpUIlMJLFGVwDzzzDPPPPPMM88888wzz1rOwGo5azlrOWs5i0wlsERVAvPMM88888wzzzzzzDPP
PGs5A6vlrOWs5azlLDJFphJYovLMM88888wzzzzzzDPPPPPMM88882yEBKwRkhGSEZLIFJlKYInK
M88888wzzzzzzLMWFbBaVFpUWlRaVCJTCSxRlcA888wzzzzzzDPPT8jzHRn8LHcDnnmWz1rOwGo5
azlrOWs5i0xLWonKM88888wzzzzzzDPPPPPMs5YzsFrOWs5azlrOIlMJLFGVwDzzzDPPPPPMM888
88wzzzzzzDPPRkjAGiEZIRkhGSGJTCWwRFUC88wzzzzzzDPPPPOsRQWsFpUWlRaVyBSZSmCJyjPP
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
8+pR57GDOWf57YLil5j4GUpAeYO9kDp8z3HTOK++KXE9TLBM77hZ4iwPKRBGMecO3ndWmduM3MWG
4uSxxbgW7QDsMpykLhjtXmgvxc/mmvTR4F/Cb4dD6/dTHkRbQsztvhuzN3LnuL+TzytChHn2D724
LWyhjWPzPsGhkWOGR/sp69IJjs7fx1bq7xH/V+I/EO9t5jOnwlfyGc7j2KzncvAKcAZwBnAGcAZw
BnAGcAZwBnAGcAYPZ5waNuTHBtkX/WrcslcXFe49e+n2sr8ggFtt8lab5Q0FTfHIkayKRSBorhIO
9awv5pVzzcAEwATABHtjgv3w+BF/SwGYAJgAmACYAJgAmACYAJgAmACYAJgAmACYAJgAmACYAJgA
mACYAJgAmACYAJgAmACYAJgAmACYAJgAmACYoNJfOijtK3rABMAEwATABMAEwATABMAEwATABMAE
wATABMAEwATIJgAmACYAJgAmACYAJgAmACYAJgAmACYAJjgxJjjV5T5W1/OdBfe3KNkHqfxiPeWB
YU/IbMa5Sh2g/ZJGU61JsdeNZRvM+0aV4Fd7M95v0lRWb8nI/avHtEZTPvTqV6d0aQt84BfICMWS
+8eoK6CIVV2nE1ra+fsKaEdV/DCUoAS7O8mJ5EIPBthgsU5m7X9QSwMEFAACAAgAO5skSuf64tJN
BAAA3jMAADYAHABzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWJhZC12ZXJzaW9ucy1wcml2YXRlLXN0
ZGVyci50eHRVVAkAA8G8bVhZtG1YdXgLAAEE9QEAAAQUAAAA7VlLc6NGEL7r5J/AEaqyVTwl5JuN
44oOiVyxN/cBGossmiEDtuJ/n0EgNMAwlrRWWZsdl60q4e6efnfPx+Lu9hHoK9Dra5IDvrv9E/55
gaIMEI4gyyCefMUpe7K4u71DJQpRAWOU2hftarJQ8i5Knr5GKTY0AVNEMIaoTAkOMlJAfE/JOshS
wGXFqOmWa84c13P9qWM7ztSQiEIhoeUTRbhAW4EHWqLHoVBcDjQhdH0jkvo7rAl9Y+S3KPqW4ufH
ktAxDWpanpCjaHh0oyFbhn8zbzTiNjQteeL7FKfFSiXb4fLihj5os+wBcMzisE02Rs2ll2Nb0+FJ
e04+V3kpvYztyrSmvlyfOutP10RYNUMdPqYAPcs2RMFI8Sv5BktWMagSdINjLmuf0jVQluAqzCrM
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
okAUiAJRIApEgSgQBaJAFIgCUSAKRIEoEAWisB+F/SgQBaIQoxCjQBSIAlEgCkSBKBAFokAUiAJR
WEdhHQWiQBRurubmaojCd4/57jGzHogCUYhRIApEgSjEKBAFokAUYhRiFIgCUSAKMQpEgSgQhRgF
okAUiAJRIApEgSgQBaJAFIgCUSAKRIEoEAWiQBSIAlEgCkSBKBAFoiglSi4mKMIOJwU5KQhRiFGI
UYhRIApEgSgQBaJAFIgCUSAKRIEoEAWiQBSIAlEgCkSBKBClMkThXQ9EgSgQhRgFokAUiAJRIApE
gSgQBaJAFIgCUSAKRIEo3OEGUSAKRCFGgSgQBaJAFIjC22OIAlH4piBnjyEKRIEoEAWiQBSIwjoK
6ygQBaJAFIgCUSAKRIEoEAWiQBSIAlEgCkSBKBAFokAUiAJRIApEgSgQBaJAFIjCfhT2o0AUiEKM
QowCUSAKRIEoEAWiQBSIAlEgCkSBKBAFokAUiAJRIApEgSgQBaKoIsrd5D9SpbfWNEVgbgWVWMbu
0vS38KkfodTVg5IZKd0uJplbNSmBbhtZZHePjUczeuhWoRVwNJsd3/KVy8rDi7fC6/YvIV3SDf97
/klzQi/UvOChTdQN+mdj2e+lY/0KOksAghfLf9SkfU2WwH290T6cfzh7Y4TlaRMr9B1t5rwIN3S/
j+cfNd02tcV8/v5LQQhLX7v+tP1DDDtll+JS/u/T9g+xUmATm9jEJjb3s6loBkBrYBOb2MQmNrGJ
TWxiE5vYxCY2sYlNbGITm9jEJjaxiU1sYhOb2MQmNrGJTWxiE5vYxCY2sYlNbGITm9jEJjaxiU1s
YhOb2MQmNrGJTWxiE5vVtJl4CUb4kDQeXpGScQdGb9DPtvSXvfCE+XXmTL5bsze7ZE7mZE7mZE7m
ZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7m
ZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7mZE7m
ZE7mZE7mZE7mZE7mZE7mZE7mZE7mR828Y0662l+29b+LIN033dcnuifTzIU7ddynW1+4ui+WH4ZI
s29tPNR50i070aZpmfdLs98idSv6+Ynry+Gn7R9in5+I5f7T1W1PN3zLsbek7Rj6bDaRFeqejV2h
+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
NVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVAD
NVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVAD
NVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNVAD
NVADNVADNVADNVADNVADNVADNVADNVADNVADNVADNQ5QQ6azxwvXc9yoHstfbm484f9D+D+Et5gF
lTEWrhtU67d41c5PoduqXIZj+5a9EN8XdpiN1vGdZanilbT8oABimVSp+BuWN+RzbFuED/10lr8m
FCP5D3/ZllRE/vmb7usT3RMZdek86Zbd1WJJYs+Zk8SnZJ2njvt0mylQMQ97+Pc/Zd7Sxlfd+C11
ffAdN1ae9UOr5tTNZ902RKcrG37sLKQDXPQHF8PRoHfV711eXw4/bf+gTYV0FlkCVxiOa3q76njv
ijDFdgk2izlPeWpVztXflwUNf9T0mSt081V71L1oIa8Gn/vxQqY2WMClpNYo4A5ax9Bns4msULce
aqR0FCnFbRH3rUjTUsgKF1IR1BR6/vY4fJs6luQZiuvS34kXGhcv5BrxFfe/isYLxYd35X1sz3gh
71CsfPpxGPYgCjMQZiCVnIFAFIgCUY5JlAOij+MyCKJAFIhCjEKMAlEaTZTD/Eb9KgxEgSgQhZXZ
9q3MQhSIAlGIUSAKRIEoxCjNeHu8JwBOtpELokAUVmar/K4HokAUiEKMwqwHokAUYhRiFGIUiAJR
IApEgSgQpZ073DjXA1EgCkRhHQWiQBSIwrkeYhSIwrueur7rgSgQBaIQo7Ayy8osRIEoEAWiQBSI
wsos73ogCkSBKMQoxCgQBaIQoxCjQBRuM2j6bQYQBaJAFGIUZj3MeiAKRIEoEAWiQBSIwg43iAJR
IApEgSgQBaIw62HWA1F418PZY84eQxRiFPaj8PYYokAUzh5DFIgCUYhRmPUw64EoEIWVWd71QBSI
AlGIUSAKRIEoxCgQBaJAFGIUYhSIAlGIUdjhBlEgCkSBKBAFokAUiAJRIApEYc8sO9wgCud6ONfD
yixEgSjEKBAFokAUiMI6CusoEAWiQBSIAlEgCkSBKBAFokAUiAJRIApEgSgQBaLw9pi3xxAFokAU
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
WAJLYAksgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbCEnTjsxGFtCSyBJbAElsASWAJLYAks
gSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAElsASWAJL7AZLmMSBJbAElsASWAJLYAksgSWw
BJbAElgCS/ywG4QWs+WH0RJYAktgCSyBJbAElsASWAJLYAksgSWwBJYwiQNLYAksgSWwBJbAElgC
S2AJLIElsASWwBK7tBMHlsASWAJLYAksgSWwBJbAElgCS2AJLIElsMSWT+LYGB9SMSMHOWy8DAWW
wBJYAktgCSyBJbAElsASWAJLYAksgSW2ZLTEKjhYCzfWHPeQFTWMlsASWAJLYAksgSWwBJbAElgC
S2AJLIElsASWwBJYAktgCSyBJbAElsASWAJLYAksgSWwxK6yROatPvPOFlmwhgzAsUsv+AilkBSG
JJAEkkASSAJJIAkkgSSQBJJAEkhipQsrXRi7YewGlsASWAJLYAksgSWwBJbAElgCS2AJU0qy7B2S
MuJjXeXAElgCS2AJLIElsASWwBJYAktgCSyBJbDEc42WyD4KwnalWAJLYAksgSWwBJbAElgCS2AJ
LIElsASW2EGWMFoCS2AJLIElsASWwBJYAktgCSyBJbAElsASRksYLYElsASWwBJYAktgCSyBJbAE
lsASWAJLWPLSkpdYAktgCSyBJbAElsASWAJLYAksgSWwhCUvLXlpEgeWwBJYAktgCSyBJbAElsAS
WAJLYAksgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSxhbQlrS2AJLIElsASWwBJYAktgCSyBJbAE
lsASWGIbWKKIHTY2HVGxiRpshiAZgGOXXvARSiEpDEkgCSSBJJAEkkASSAJJIAkkgSSQxAKcBWGK
sRvgwdgNLIElsASWwBJYAktgCSyBJbAElsASP9yUEitdYAksgSWwBJbAElgCS2AJLIElsASWwBIW
4My9AGdmYMi7L2rsRJScU0qwBJbAElgCS2AJLIElsASWwBJYAktgCaMlXmcSRzFasIgeOSZobOwe
RktgCSyBJbAElsASWAJLYAksgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAElsASWOL5WCLH
kg/ZNijBElgCS2AJLIElsASWwBJYAktgCSyBJbCEJS/txIElsASWwBJYAktgCSyBJbAElsASWAJL
YImCNv4sZsnLIunCThxYAktgCSyBJbAElsASWAJLYAksgSWwhNESRktgCSyBJbAElsASWAJLYAks
gSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAElsASWMKSl3biwBJYAktgCSyBJbAElsASWAJL
YAksgSV2miWyaEERIyteYG2JzKtE5PWPBWvIgCC79IK/m4TyQiyx3RkJSSAJJIEkkASSQBJIAkkg
CSSBJJDElBJTSozdMHYDS2AJLIElsASWwBJYAktgCSyBJYzdeNmxG/YFwRJYAktgCSyBJbAElsAS
WAJLYAksgSWsdLE1K10YLYElsASWwBJYAktgCSyBJbAElsASWAJLmMRhEgeWwBJYAktgCSyBJbAE
lsASWAJLYAksgSVM4jCJA0tgCSyBJbAElsASWAJLYAksgSWwBJbAElgCS2AJLIElsASWwBJYAktg
CSyBJbAElthxlnixNSI2TerNsCCbAKwNLPmWoTCJA0tgCSyBJbAElsASWAJLYAksgSWwBJaw5OW6
S17mXjcCS2AJLIElsASWwBJYAktgCSyBJbAElsASJnGYxIElsASWwBJYAktgCSyBJbAElsASWAJL
YAksgSWwBJbAElgCS2AJLIElsASWwBJYAktgibe1QSiWwBJYAktgCSyBJbAElsASWAJLYAksgSWw
xCuxRJHkkMcarC2BJbAElsASWAJLYAksgSWwBJbAElgCS7zsJI5kLSgCN9aEg00neqSMe8i7tuaC
NWQAjl16wd9NQnkhltjujIQkkASSQBJIAkkgCSSBJJAEkkASSGKlC1NKjN0wdgNLYAksgSWwBJbY
HZZ4iQNoA22gDbSBNkxLealpKbY8RRtvlzYyPii9eievW9WtPsegwm1pireyUZs7Ohj27mJfZh14
Eweeytvjp08VuVqpVo7mwzQ7vUGwEKhydJJYa5fakItJIa2P4pmP+rbx12Uw/vzssRtZvE61vP51
xhG15LkDu3wgrqyHXUp3Rpz1RrcZdDqblvTnjt+BN3bg/1BLAwQUAAIACABJmyRKKUSVLgkQAAD+
1wQALQAcAHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUtc3RkZXJyLnR4dFVUCQAD
2bxtWHK0bVh1eAsAAQT1AQAABBQAAADt3U1z2kgaAOB7Tv4JqrlMXJVUAQbb8S1xJrOu2hp7k8ze
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
JV9NwLEbfetYAAGeaLWBYBDlmAzwwFGokgCre8sKWw/w8wNLAdtBLlP+Yg06xv13V0Q7655RFcjN
ajQMSttEVqlZDTvw5B0L82798fjrWUm9Ptn/vNt1KtxL6bJFuQ4V9kkdDa0J9ob3QsZtVNh+Yq6p
qk94jDxjW7a3R741r8qtrg3aTWdWsh3//ABLTNdWORTqqKXpAruX+rxy4HkNx0a+IjiYRTClM9ch
Jvc/SXTN5qSDYNc6hUajXnUyraIUFQbYKgh62hm37mb1ao3LCRZdf5ruuGq6jlm94w80thkFdM9t
Kr5JQqvgJWcwedvOV9vP7XbBnx3qzWOpdZK4sqnZa5uAPtHN0gXMcF/C5VfNoDn5Xdk5R+3V3NFd
eHa4lJP1+d55Xk7y4lyG9vf6vy1n9BHXQcTx7/WJACp91kwxxobR/LNvOekt+rXC0fOnJOse8om/
JVL3Q3EXLXy9r9yRM7burjjfrITffBOoQ1WSz8lVXhhgqHLJgRLuN/VXwCTTEf0L19B/UEsDBBQA
AgAIAEybJEozBe5FnQYAAKhTAABGABwAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY29v
cmRpbmF0aW9uLWFjcm9zcy1kYXRhYmFzZXMtc3RkZXJyLnR4dFVUCQAD37xtWHe0bVh1eAsAAQT1
AQAABBQAAADtXEtzozgQvufkn6Db2FWTKszDdnxLnEmtq7bW2XGyd2xEzAYLL5Bkc9nfvi0wWBhJ
QCB+ZJiaqSlj9UP9+FpqyUxvb+bYf8X+eGyZobkwAzzxCMHL0PHIPSaWQ54mrhdgdIn6ujLUdEMf
DTRN7Q8uHonzzwue3t7c5ijH4yWXy53vrSeug0kI/Dp7PPuD0cVUpk/Ewvq4JjF9oQ7dtemQHsox
LWTVZTipRl/tXXB4OOTVe8azDfZNyuiaWA++SQIzYvvgrLHf7cnN0LrlBNzibTC5vfmJgU8QTkyy
xK6LLR5n/kiq2S/HT+xCT2L4O8cHSWLalUksFyefUxcGIPJhhX2MTPjX1wxD1RXNUNEmjvwT0waY
3IEYz3+HHMMuDlMeiSt22fPgpdnIHSn5lqNx7lG3h7rKv0Pbtg1lORxoptKTOm875UhYM5bRr9RR
aplqrO69zQbCzSQo9eJ3RLw3FMpkFGk9efF9wJNUkoQAhtiev95SxFZJ6eI0sBZcythdN+byGVSa
Qyjgi/mfvzshHcU+HY+fcDjzfwRA6DrBKuEwJbYHAhKEBkkC8rwgFD2CT8h2XIy+db4hUNZygmfJ
TC3Hus2rzMTfksJxjpDn0P+KgrCvRUEoSoNEk1QGDJyxQDQe+1tE8tYbOtLiDPFIlsv8ZbnEQQCq
XKJl7E8E8gLqSCdgK5Q60BXKMGUFptuY4XL14zUtQ7vZGNqV0mszvs34NuN/2YynyyTR5KIlFJPD
qNsB2+hD9Uqnf/X8SlRi6MJkX0R2Fq3kckv3pvJd1z8/3xkZn5bvNKJ22c5aVrXB56LUp8bN5COl
VOgf3VwYI6CsiQTSLJ7tSW/GqepopBzR4IaJqcGFbMBmfvhXnM0TUOIJM4v7gt2qj80Qi2hzO1b1
CgDiw9tMUcgs8JNDmPFTUqZy7FNJFxdxZFTE1J2GzAcQM6FGoxVmF5XozQlXKaKycKqNdLTbyKMd
2FEPGwtFsa+woRi2MjRHw95FecfGs2UeRGpyDJIrDY+bJ9+08B8YW9gqUxKM4QCQCL9xnp/ebrNi
4WLaLVEuzBZ/g6ti6LqEAoU6vZydcyMjM+8+Qma/AJhdW1aOdBtn96LvtxNJZ7yzVkZ7faSUUGtG
4gQQpQV3HlmWST4UKmQomeqdZ53zcoFJJX2x/FgBsiQAmyMQYAovBEyLOgTN5kmWT29RX9X6uqEp
Q1UZQDGW16R7kRIVLYK6S9N1F6BwTw7qIHPC86wAGSfNR0GGmieCjczM4BQ0UiSekbjn2WiqJPlZ
lCFsHueeyf2XDpPU/3SIPH5TtJDugn7SAgEB60f/d74jL7I3CqLgYULW6GuDAlZ46fm0t/mM32Wc
dE3MCfKmLBtDgT1HmRy6r2Z6NmPE8S/E4tphf8+JMqYObzdlFXOgbH2zeWFfp7p467UTZkvmm+O6
k+i5fGFSz5L1tS4shPtzyJSy3JcFwB0bSnaus28xWS8lqWFcIlEdkw+upi5Twrhsy1ijUu3iScke
nCm06NY47RJVQl4Y5GoZJw+4WncEYwASFp5fkDG2Q4tkAgCnt8reswqDRJwtB53MFuyu7RD7mS1N
bJRoG9I5auNJEBR3DnGC1W/UVDB34Ta77VydS+eKPVYo614+0O0Bl4QV7+xf0Ws00aRwLVHkw6hZ
s2tXp6afy/F6239s+49t/7HtPx6n/9i2Eds2YttGPGwbsU5PpO1qtF2NtqvRdjUKVgWhxG/89VZm
CE62ZkVgkQ7cCxSuJiDq2rLolh8+vmIUigPkPPXPFpPPOOhtimljXSuuAaWoxqPgNDoUlYtqmMCT
l+ImS/XfMHydmRy9P3XoLlOjZ7wHoj2X9lSEdbB+Fnc6mm6sbBd514WC65iwSnumNXfljlaZFfT1
p01VvgoHDRLRpQPqPLVuf0cmXurMaZeyYHsTjcntXPYppQ3cpsUc9S7TV71IVYd7yTtYJbQ4p2ta
MadH8hJg68b1FneOu+UbNHazq7ZlG7kBdpJeKXEtrSEvfP3bbd6pXcg+PXCsEQGfksUN5mTTgHCY
LD4A/J5B4n/+3d8zuTV72CvKRzqCOoMydA6nZBWjurlDtfZW+Rc/f/34qWmlIKt6xCoNyvb89Wuf
v7Yn+W0kNXaSz6Bm7m1z/dFgNBI6QfrWuizrtfm+wNHz6bZQ7MuJF+fl5MSvgDt75YW/zsi/g23f
i7C72XDvCLBfsJdXo6fM5eE+fXlfgQHV/va9gKVNARSq8jFlqxmj2ugjGqKCov8DUEsDBBQAAgAI
AEybJEoOhqJ7XQYAAN86AABNABwAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY29vcmRp
bmF0aW9uLXdpdGhpbi1kYXRhYmFzZS1wcml2YXRlLXN0ZGVyci50eHRVVAkAA9+8bVh4tG1YdXgL
AAEE9QEAAAQUAAAA7VtLc5tIEL775J/AUapaVwECCetmozir2tpIFTt7H8FIZoNAC8hKLvvb0zw1
MC8kYVu2k0oOgn5P99fTM2E6ub3H0ROOxmMXJWiBYmyHQYCdxAuDOQ5cL1jZfhhj5UrRDHU0MEzD
Gg4Guja8+BZ4/23xdHI7oTjHY4cp5S4K17bv4SABeZcNmdrQupiK7MlEuMdbkvNLbeitkRf0FUqo
VFSPkKSbmt6/YMjwgqfwO55tcIRSQTeB+xChIEaZ2AdvjaNeXxyG38tyBssSbnAwuf2KQU6c2Chw
sO9jlyWZTZla9uHk8ZcwFAT+zotAE2GLk64yJYRly//Us15f6ak/Rsvl0lSdkQmp0T9nw4DgDjSG
0U+oPOzjBJf05QLta+ohrGqUSSl4y7BQYuBwgCSRe0SB6+NJpkxOVvyuCjAGux4ecYQVBP+0gWnq
hnGtW8omx62Lw0TNw80GkhAFSrWgfyhBuFMSkQ6Z1fY2igBlKk0CBiBZhtG64MijUvHlxeEumJz5
ct0i5zuYdA+pIIqm67kTmv5ZUnSoDcoUZeZgaUmlAwhnJDaMx1EBEuF6k1K6DJIwqEu53zoOjmMw
5Upx8mAqoC9Oo+jFZNPQh4aaCqxEuV68QYnz+Omp6gxEwQ2u1X6t3FIc4zmXYRxRQErvEmJjjPRr
I/1r0K1CEGhppS2yOPOgluqtXRWbYTx/sRE6nq3Y0ozalxoZWX0Ja86ruzS4ZBVlnCr80YaaZlop
p6gMZw32blZFtyz1FSNmIiz0O05QlPyTl6MNRqww0TMl+8EIowTzeKk9oX4NFc5duwVeeQHBPq0v
xbH7v7/xGqAB+EhptLaTthOdpIk6MPUqTfgAPSORqR08780hfoAFdrp8oE0p5wNYr52XPFbgTCLz
wDKU/aZd2eNmmmvmQlWX19hUzaU6Qtaof9E+xfJ2RDzIzGzkEbPLfNusIuTiLxi72G3TXczREEAN
7xjPj+g6xDCT1cFs8S8EJ8edK+guymWf8oyizBzb/4Sq3iaz6MZ1KdZiZee890XqVDm2z8+a9Yal
tjBrFuQpx0tEph91kWUGSg0y1VrrpUVTdSUJqWDqpGk5aFSCK8XAwRNWCiA3XRBldl/W1XSiaPpA
M0xIOXB7ZBmFOFJWzTkQ8QXvCLEVoolYPv3w4rSwabtrqbaLvITkvU/LVAhngD9zXmAOXCWl5yDf
X4AXfXGTAZ02K9s4+Gh3n5k1bpYKslpqxFXrqPB4FuSnHJ2Wb4kZsqolsYV6Jl6/ikywH6lIxDVV
IRinlPLh6WvaJlhZ2+41dsKIqwFKpEZQE7B/2aYO5oeFj8x6fg5zMf7k1J0zMoXoqMWkdmAet+2b
S1bqntK1wvXaS+qteOf5vp09F28xTovk6VZLG2zTh1qLpF5KwDcPlOg0thkx0elG2RuZTLz+KCDm
trKcqWp5wuZ15wVe/Ni2ezGtaRPEg9oWS0v9lFyFafqUo21eE2RlD9XGGOXDtPqSQwNIsggjSaEt
vbQ/lrhxfmNWIyoEgDFmjtSZAiNvlgmOajONXWRrOa8cPU4kgnVjj0Y1EtCJFj4UgwxjKsJGojAt
AVXQN9IjIvj5hJWEnyBv0/56wxNMaCuc8Iazzzgp9g7PIZBT7Dny/ZmWAOQ09ySH6B/MwAnRjMXB
uPNTdSaa4QCebLEUbw+/0ns/nrReSLbCRusRiGJd1aqGuG0KxJ3ie3cD0Avxnlf34kvMMA7V9kcd
HadK9oQ3UsVv8zz2TYa6zU64uwU71k3xrhssLU18Fu/Ox+rzumbIzgIlA0RGQ80GTU7hdXPXajrr
Cqty4yXbhK64W76XV08/FKfpno6fWi+oQAJ4+70wB5JWDYLaJvsJ+Vt8F0Z/4Z/tFbXBmAPMahks
8oxB4gm/so514ggb2xjR+UnmZ1aFVCN3nL6Nt34C5iTR1km2INf2wwB3cuL5jlw55fC2i6H2tQ6P
XxngDzy7PhPgPS31pfjYhXgRVH7EM/yDwP+oE/+ju1rLS4I27aXtRcI7wu4Pdc/xFq4Y38pod76X
Q+/iklZ8ofRhr3A/Dlz9xoGucYCqIiLtqS/qNGtoWVy3hV/m1UWv0c8Fzp5PCxxo6sk/VminJ//M
jXItTsIN8xa01Qvyv9hmT4n/bK2ln/NJYqVrxZeCrb0GDl0VfmJBf3B2GPUvUEsDBBQAAgAIAEyb
JErrxCuDFAEAALUDAAA/ABwAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gtaW4t
dGFza3MtcHJpdmF0ZS1zdGRlcnIudHh0VVQJAAPfvG1YeLRtWHV4CwABBPUBAAAEFAAAAK2STW6D
MBCF96xyBC9hUSkYQxJ2BYTEqlVLD+DiUWPFjImhkXr7mtCftECiVpHsha1537x5dpElj2AOYOJY
8I4/8xZSjQhVJzXeAwqJL6nSLZAb4rPlKmAhW0dBQP3IeUK5f4UiS7KRMo6rSUpudJ0qCdhZ3uIX
04/WTnHOzxEh/u9k0F/04NZcokdG0Iso94REQ596zgRD4kHv4K4Bw3vQLYrScGz5EVvKGozrncag
G8AseQDLabuUYwVKgZgiT1f2zq7Om49Inxksl8Z2mtduOQoFn+eviFrbstyCAcLt9oMwpGwZhJQ0
w8/qp8ttG23eBtP9xfcPKPWP0T/ow4MtPOKyFd2wfjHvuqRZ4Tj9v1W/A1BLAwQUAAIACABMmyRK
YmTJSy4BAAA2BAAANwAcAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNyYXNoLWluLXRh
c2tzLXN0ZGVyci50eHRVVAkAA9+8bVh4tG1YdXgLAAEE9QEAAAQUAAAArZPLboMwEEX3rPgEL0Fq
JR4GEpaAKrFK1aQfYPDQoJIxNaSPv69RBWkDpEEKMgtGc+8cru00ibYg30GGoagBE9ayjDWgPWP5
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
AE2bJEpv+kppXQYAAA84AAA8ABwAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tb3Zlcmxh
cHBpbmctcHJpdmF0ZS1zdGRlcnIudHh0VVQJAAPivG1Ye7RtWHV4CwABBPUBAAAEFAAAAO1bSXOb
SBS+++SfwFGqGlcBAgnrZqPYo5qaSBU7c29BS2aCQAPISi7z2/PYG/WGJBQvcSo5CN7Wb/lev+4w
ndw+4OgZR+NxuMHB5PYL/m+L48RGgYN9H7sXXwMPnkwntxOUoAWKMY9SuVIuL6bnk+cW9HYYBNhJ
vDCY48D1gpXthzEGas1QRwPDNKzhYKBrQ1pTzTkeO0wpd1G4tn0PB0mqfU+mNrTE9mQi3OMtyfml
NvTWyAv6CsORElE9QpJuanqfFQwveA6/4dkGRygVdBO4jxEKYpSJffTWOOr1BSaEAsY7L4IEIFzo
pFZSQlhW/U896/WVnvp9tFwuTdUZmbC0fp4vd6AxjH5AgLCPE1zSl+lUu/4xrELJpBS8ZVgoMXA4
QJmBfM89ocD18SRTJicrfldxisGuxyccYQXBP21gmrphXOuWssnT++IwUfNws4FURoFSBfQPJQh3
SiLSIbPa3kYRJGOlScAAJMswWhccuVcqviwGPXfB5MzDdYucb2DSA6SCyJuu505o+rOk6FAblCnK
zMHSkkoHEM5IZByPowIiw/UmpXQZJGHQlPKwdRwcx2DKleLkzlRAX5x60YtJbNGHhpoKrES5XrxB
ifP06bkCEKLgBtdqv1FuKYrzFpchPFFASu8SfGOM9Gsj/Wv0qcYhcLS00haZn3mNhoLgrorNMM5f
bISOsxVbmlF1qZGe1ZcQc17dpc4lqyjjVOGPNtQ001L74jKc7bF3ExXdstQX9JiJsHDdcYKi5J+8
HG0wYoWJninZNkQYJZjHS20d9GuocG7sFnjlBQT7tBmKY7cJf+M1QAPwkdJobSdtJzpJE3Vg6lWa
8AF6RiJTO3iuzSF+gAV2Gj7QppTbSIjXzkueKnAmkXlgGUq9t1Nq3ExzzVyo6vIam6q5VEfIGvUv
2qdY3o6IB5mZe3nE7DJfN6sIufgzxi5223QXczQEUMM7xvMjug6x583qYLb4F5yT484VdBflsk+t
jKLMFlb/hKreJrPoxnUp1iKyc977InWqHKvzs2G9YaktzJoFecrxEpG5jqbIMgOlBplqo/XSoqm6
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
wcHJNPu56vGdhpcaNj5gEsaAcPAOLHfCcAg3VVGP+11sdMS2x11GR36eSQxyl941544MOuPevDFw
I/mmUY7PC5OsHO1vqt6itzXOn8/LS9KhHRMeb6eYk/9fbFA6NcoP23eWbvByGb9eRzX/AlBLAwQU
AAIACABQmyRKhRgxXcQDAAAeFQAASQAcAHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb25jaGFuZ2Vy
ZXF1ZXN0LWFjdGl2ZWRvbW9iamVjdC1wcml2YXRlLXN0ZGVyci50eHRVVAkAA+i8bViCtG1YdXgL
AAEE9QEAAAQUAAAA7VhLc5swEL77lJ/A0Z5pZ3ja2LcE11MfWmcap3cZFlsTkKggSXPpb68AgwUI
4bymOTTjHIz38Wkf3y5aL69ugD0AWywClKEdSsGjhICfYUqugQSY7L2IpqB91gxbn1m2Y7tTyzKN
6eiW4F/3sF5eLTuai4UvtbJiNPYiDCTj9i5aNo2pO1qr8BQmgpcjKfUHMYxjhMlE6xgdNDUWLJmO
YU5GEhuYPNA72CTAUG7okgRbhkiKCrNbHAMbT9Rh+J+WD5AWmgBZXv0AbifNPER8iCIIZJblkjmy
D2+vP+RUEagVZtyTgMXPs9IxIsPyp/NsPNHG+u9ZGIaO7s8cnspJedAV90jZEy9IiCCDSr6Kw6nU
trQuXamk4lcJwgGAUwsVAPsjd0AkiGBZOBsWO36v6zLluLYHYKAh/m9YjmPa9tx0taRs59HzTF3T
JOG5RkSrE/pJI/RRy1Q+hlB794zx5qs9KRS4SEhZfNQoo1LrlTUY7KSaZbqukH/HId3wUlBFM8DB
siv/LiU6NayqRKU1WCGpfXDBjdiCiwU79iKNk1wykIhQ0rRyc+/7kKYcymfNL4OpcX9pHkWcilxq
Tm09N1ibCnCaoMw/fHmoCVNoOGuuTxrtltNF3+EKKhEaSBtf8NjYM3Nu5x+7y6CKQA922q6Icx+j
dUbOWzWbbb9/swk+3q3Z8oo6tZoYWTPkOe/ruzy4YhcVmjr/M6aG4bi5pqoNNy31t8mK6br6P4yY
g0B57jRDLPtZtqPHQexBmJkDaxIDlEGfbmdVMue8w3tzt4M9JoL6upmKl65F3yDm1MD1RGtdb69a
J96kTHTLMesy6SfojchM59HzCY7whSPw8vRxb1q1NvN8PeLsUJOzyMyWa2unXVY78WZea85O18M5
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
bC9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1c2Utc3RkZXJyLnR4dFVUCQADO7xtWMuzbVh1eAsA
AQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPU
jYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaH
n3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/
vArLHMrFG1BLAwQUAAIACAD0miRKSxuBNacAAADSAAAARgAcAHN0b3JhZ2Uvd2Vic3FsL2NoYW5n
ZS12ZXJzaW9uLW5vLWNyYXNoLW9uLXByZWZsaWdodC1mYWlsdXJlLXN0ZGVyci50eHRVVAkAAzu8
bVjLs21YdXgLAAEE9QEAAAQUAAAANczNCsIwEATgu0+xx/agEcRLEEG0J5FCi/acpFsIpLthm/jz
9lbR2wx8M1XT1I2GKxkbEBJDykLABJ6c4IiUTACTEy/vxuU8QrEG4gSGAEVYyoW6ccgjTupkklFV
16oO7dkn1XIWh592ZEF14T6HmT3Q9rO0ZsLv5BNWLsZis92WoKF6OozJM9Wyu7Pv9/B70PrPtY4o
A8tYR6QD9TcUP7wKyxzKxRtQSwMEFAACAAgA9JokSupkzncXAQAALwQAACgAHABzdG9yYWdlL3dl
YnNxbC9jaGFuZ2UtdmVyc2lvbi1zdGRlcnIudHh0VVQJAAM7vG1YzLNtWHV4CwABBPUBAAAEFAAA
AO3RwUoDMRAG4HufYk6yhWq00ksQoeh6sVJstXuUbDKVaHZmzU6qvr27raUUPIgnBW8J+Sf5P5LP
ZtOZhnsyZUAQBkmRgAk82YgVkpgAJgkfroxNqYLsGIgFDAHGyLHfUwsOqcJGXRoxKi/mqsDy2oua
c4oWu90FR1Q37FJoY69YujZZmgbXI93iyNZ1djoa9UFD/maxFs80jWcr9u4cPm/QehvXusa45FhN
a6QxuQVGv3zPSubQ7+X/or8imt9OvCBsn4Kl8QFdJ2xQ4KntRiY8VOzW6mI8GWxAejfiGwhsn9F9
21gHI10v1bwEtWmwRzwZDjtiV3Sn2s9pzS0qs0yNQHF31Z5L9PQIBwP46ZeNvjD9vo/7AFBLAwQU
AAIACAD0miRKSxuBNacAAADSAAAAMgAcAHN0b3JhZ2Uvd2Vic3FsL2Nsb3NlLWR1cmluZy1zdHJl
c3MtdGVzdC1zdGRlcnIudHh0VVQJAAM8vG1YzLNtWHV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtP
scf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv
78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7G
YrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIAPSaJEqv
iBzXrQAAAKQBAAA0ABwAc3RvcmFnZS93ZWJzcWwvZGF0YWJhc2UtbG9jay1hZnRlci1yZWxvYWQt
c3RkZXJyLnR4dFVUCQADPLxtWM2zbVh1eAsAAQT1AQAABBQAAADdj80KwjAQhO99ij22B40gXoII
oj2JFCrqOUm3EEh3wzap+vb+oC/hbQa+b2Dqtm1aDWcyNiAkhpSFgAk8OcEBKZkAJieeTcblPEC5
AOIEhgBFWKpCXTjkAUe1N8mo+npSV7QHn9SJszh8tx0LqiN3ObywG9ruRVoz4kd5h7mLsVyuVhVo
qO8OY/JMjawn9t0Gvgta/3CtI0rPMjQRaUvdBcX3j9Iyh6qo/+7RE1BLAwQUAAIACAD0miRKSxuB
NacAAADSAAAAKQAcAHN0b3JhZ2Uvd2Vic3FsL2VtcHR5LXN0YXRlbWVudC1zdGRlcnIudHh0VVQJ
AAM8vG1YzbNtWHV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7
YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07q
ZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6
z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIAPWaJEpLG4E1pwAAANIAAAAqABwAc3RvcmFn
ZS93ZWJzcWwvZXhlY3V0ZS1zcWwtYXJncy1zdGRlcnIudHh0VVQJAAM9vG1YzbNtWHV4CwABBPUB
AAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZ
GxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRB
deE+h5k90PaztGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8Cssc
ysUbUEsDBBQAAgAIAPWaJEpLG4E1pwAAANIAAAAyABwAc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZS1z
cWwtcm93c0FmZmVjdGVkLXN0ZGVyci50eHRVVAkAAz28bVjNs21YdXgLAAEE9QEAAAQUAAAANczN
CsIwEATgu0+xx/agEcRLEEG0J5FCi/acpFsIpLthm/jz9lbR2wx8M1XT1I2GKxkbEBJDykLABJ6c
4IiUTACTEy/vxuU8QrEG4gSGAEVYyoW6ccgjTupkklFV16oO7dkn1XIWh592ZEF14T6HmT3Q9rO0
ZsLv5BNWLsZis92WoKF6OozJM9Wyu7Pv9/B70PrPtY4oA8tYR6QD9TcUP7wKyxzKxRtQSwMEFAAC
AAgA9ZokSksbgTWnAAAA0gAAAD8AHABzdG9yYWdlL3dlYnNxbC9leGVjdXRlc3FsLWFjY2VwdHMt
b25seS1vbmUtc3RhdGVtZW50LXN0ZGVyci50eHRVVAkAAz28bVjNs21YdXgLAAEE9QEAAAQUAAAA
NczNCsIwEATgu0+xx/agEcRLEEG0J5FCi/acpFsIpLthm/jz9lbR2wx8M1XT1I2GKxkbEBJDykLA
BJ6c4IiUTACTEy/vxuU8QrEG4gSGAEVYyoW6ccgjTupkklFV16oO7dkn1XIWh592ZEF14T6HmT3Q
9rO0ZsLv5BNWLsZis92WoKF6OozJM9Wyu7Pv9/B70PrPtY4oA8tYR6QD9TcUP7wKyxzKxRtQSwME
FAACAAgA9pokSksbgTWnAAAA0gAAAC4AHABzdG9yYWdlL3dlYnNxbC9oYXNoLWNoYW5nZS13aXRo
LXhoci1zdGRlcnIudHh0VVQJAAM/vG1Yz7NtWHV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2
oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78bl
PEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPd
lqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIAPaaJEqviBzX
rQAAAKQBAAA/ABwAc3RvcmFnZS93ZWJzcWwvbXVsdGlwbGUtZGF0YWJhc2VzLWdhcmJhZ2UtY29s
bGVjdGlvbi1zdGRlcnIudHh0VVQJAAM/vG1Y0LNtWHV4CwABBPUBAAAEFAAAAN2PzQrCMBCE732K
PbYHjSBeggiiPYkUKuo5SbcQSHfDNqn69v6gL+FtBr5vYOq2bVoNZzI2ICSGlIWACTw5wQEpmQAm
J55NxuU8QLkA4gSGAEVYqkJdOOQBR7U3yaj6elJXtAef1ImzOHy3HQuqI3c5vLAb2u5FWjPiR3mH
uYuxXK5WFWio7w5j8kyNrCf23Qa+C1r/cK0jSs8yNBFpS90FxfeP0jKHqqj/7tETUEsDBBQAAgAI
APaaJEpopDc5sAAAAHYCAABEABwAc3RvcmFnZS93ZWJzcWwvbXVsdGlwbGUtdHJhbnNhY3Rpb25z
LW9uLWRpZmZlcmVudC1oYW5kbGVzLXN0ZGVyci50eHRVVAkAA0C8bVjQs21YdXgLAAEE9QEAAAQU
AAAA7Y/NCsIwEITvPsUe24NGEC9BBNGeRAoV6zlJVwiku2Gb+PP2WtF38OBtBr4Z+KqmqRsNJzI2
ICSGlIWACTw5wR4pmQAmJ55ejcu5h2IOxAkMAYqwlBPVcsg9DmpnklHV+ajOaPc+qSNncTi2LQuq
A3c5vLAb2u5FWjPgezKGmYuxWCyXJWio7g5j8ky1rK7suzV8HrT+4lpHlAtLX0ekDXUtir88Cssc
ykn1N/p5oydQSwMEFAACAAgA9pokSksbgTWnAAAA0gAAAC8AHABzdG9yYWdlL3dlYnNxbC9tdWx0
aXBsZS10cmFuc2FjdGlvbnMtc3RkZXJyLnR4dFVUCQADQLxtWNCzbVh1eAsAAQT1AQAABBQAAAA1
zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAE
npzgiJRMAJMTL+/G5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2
s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQU
AAIACAD2miRKSxuBNacAAADSAAAAKAAcAHN0b3JhZ2Uvd2Vic3FsL251bGwtY2FsbGJhY2tzLXN0
ZGVyci50eHRVVAkAA0C8bVjQs21YdXgLAAEE9QEAAAQUAAAANczNCsIwEATgu0+xx/agEcRLEEG0
J5FCi/acpFsIpLthm/jz9lbR2wx8M1XT1I2GKxkbEBJDykLABJ6c4IiUTACTEy/vxuU8QrEG4gSG
AEVYyoW6ccgjTupkklFV16oO7dkn1XIWh592ZEF14T6HmT3Q9rO0ZsLv5BNWLsZis92WoKF6OozJ
M9Wyu7Pv9/B70PrPtY4oA8tYR6QD9TcUP7wKyxzKxRtQSwMEFAACAAgA9pokSq+IHNetAAAApAEA
AEgAHABzdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLWlzb2xh
dGVkLXdvcmxkLXN0ZGVyci50eHRVVAkAA0C8bVjRs21YdXgLAAEE9QEAAAQUAAAA3Y/NCsIwEITv
fYo9tgeNIF6CCKI9iRQq6jlJtxBId8M2qfr2/qAv4W0Gvm9g6rZtWg1nMjYgJIaUhYAJPDnBASmZ
ACYnnk3G5TxAuQDiBIYARViqQl045AFHtTfJqPp6Ule0B5/UibM4fLcdC6ojdzm8sBva7kVaM+JH
eYe5i7FcrlYVaKjvDmPyTI2sJ/bdBr4LWv9wrSNKzzI0EWlL3QXF94/SMoeqqP/u0RNQSwMEFAAC
AAgA9pokSos2fx2yAAAASAMAADkAHABzdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWNyZWF0
aW9uLWNhbGxiYWNrLXN0ZGVyci50eHRVVAkAA0C8bVjRs21YdXgLAAEE9QEAAAQUAAAA7Y/NCsIw
EITvPsUe24NGEC9BBNGeRAoV6zlJVwiku2Gb+PP2WtFX8ORtBr4Z+KqmqRsNJzI2ICSGlIWACTw5
wR4pmQAmJ55ejcu5h2IOxAkMAYqwlBPVcsg9DmpnklHV+ajOaPc+qSNncTi2LQuqA3c5vLAb2u5F
WjPgezKGmYuxWCyXJWio7g5j8ky1rK7suzV8HrT+4lpHlAtLX0ekDXUtir88Csscykn1N/ob/dzo
CVBLAwQUAAIACAD3miRKSxuBNacAAADSAAAANQAcAHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJh
c2UtZW1wdHktdmVyc2lvbi1zdGRlcnIudHh0VVQJAANBvG1Y0bNtWHV4CwABBPUBAAAEFAAAADXM
zQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASe
nOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90Paz
tGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQA
AgAIAPeaJEpLG4E1pwAAANIAAAA0ABwAc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1leHBh
bmQtcXVvdGEtc3RkZXJyLnR4dFVUCQADQbxtWNGzbVh1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7
T7HH9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMT
L+/G5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1Yu
xmKz3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQUAAIACAD3miRK
CXDeEwoBAAC4AgAAOQAcAHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZl
cnNpb24tc3RkZXJyLnR4dFVUCQADQbxtWNKzbVh1eAsAAQT1AQAABBQAAADdkU9Lw0AQxe/9FHOS
BNSUSkEWEcTmJBJItD2WzWYii5uZMNmN9tubjX8OFTz15G2Xee/x5jd5WRalgmfStUPwDIJeLI4I
zg4euIVGe13rAYF0hwO0LMBiXyxBax3u98tFtmUXplm2maRZvquyHdYP1mcVBzEYf/csmD1yE9wk
e8P6O3S2xMeTaPOKcmn6PrlerVJQUDM7+PIqdSRUqkGHHou5SmKYprY/4gpNEOsPn9NohbPzP7I2
McsyTQ0xXeTHTHwQAiawZAQ7JK8d6OD5YtQmhA6SJRB70AQowpKehMiM4mq9jijyd4N9LFjIzci2
uf29i1I9ynScruiR7qjZotj2kESI/3GjD1BLAwQUAAIACAD3miRKr4gc160AAACkAQAARQAcAHN0
b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2Utd2hpbGUtdHJhbnNhY3Rpb24taW4tcHJvZ3Jlc3Mt
c3RkZXJyLnR4dFVUCQADQbxtWNKzbVh1eAsAAQT1AQAABBQAAADdj80KwjAQhO99ij22B40gXoII
oj2JFCrqOUm3EEh3wzap+vb+oC/hbQa+b2Dqtm1aDWcyNiAkhpSFgAk8OcEBKZkAJieeTcblPEC5
AOIEhgBFWKpCXTjkAUe1N8mo+npSV7QHn9SJszh8tx0LqiN3ObywG9ruRVoz4kd5h7mLsVyuVhVo
qO8OY/JMjawn9t0Gvgta/3CtI0rPMjQRaUvdBcX3j9Iyh6qo/+7RE1BLAwQUAAIACAD3miRKSxuB
NacAAADSAAAAOQAcAHN0b3JhZ2Uvd2Vic3FsL3ByaXZhdGUtYnJvd3Npbmctbm9yZWFkLW5vd3Jp
dGUtc3RkZXJyLnR4dFVUCQADQrxtWNKzbVh1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH9qAR
xEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G5TxC
sQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz3Zag
oXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQUAAIACAD3miRKaKQ3ObAA
AAB2AgAARwAcAHN0b3JhZ2Uvd2Vic3FsL3JlYWQtYW5kLXdyaXRlLXRyYW5zYWN0aW9ucy1kb250
LXJ1bi10b2dldGhlci1zdGRlcnIudHh0VVQJAANCvG1Y0rNtWHV4CwABBPUBAAAEFAAAAO2PzQrC
MBCE7z7FHtuDRhAvQQTRnkQKFes5SVcIpLthm/jz9lrRd/DgbQa+GfiqpqkbDScyNiAkhpSFgAk8
OcEeKZkAJieeXo3LuYdiDsQJDAGKsJQT1XLIPQ5qZ5JR1fmozmj3PqkjZ3E4ti0LqgN3ObywG9ru
RVoz4HsyhpmLsVgslyVoqO4OY/JMtayu7Ls1fB60/uJaR5QLS19HpA11LYq/PArLHMpJ9Tf6eaMn
UEsDBBQAAgAIAPeaJEqviBzXrQAAAKQBAABAABwAc3RvcmFnZS93ZWJzcWwvcmVhZC10cmFuc2Fj
dGlvbnMtcnVubmluZy1jb25jdXJyZW50bHktc3RkZXJyLnR4dFVUCQADQrxtWNKzbVh1eAsAAQT1
AQAABBQAAADdj80KwjAQhO99ij22B40gXoIIoj2JFCrqOUm3EEh3wzap+vb+oC/hbQa+b2Dqtm1a
DWcyNiAkhpSFgAk8OcEBKZkAJieeTcblPEC5AOIEhgBFWKpCXTjkAUe1N8mo+npSV7QHn9SJszh8
tx0LqiN3ObywG9ruRVoz4kd5h7mLsVyuVhVoqO8OY/JMjawn9t0Gvgta/3CtI0rPMjQRaUvdBcX3
j9Iyh6qo/+7RE1BLAwQUAAIACAD3miRKSxuBNacAAADSAAAAKAAcAHN0b3JhZ2Uvd2Vic3FsL3Nx
bC1kYXRhLXR5cGVzLXN0ZGVyci50eHRVVAkAA0K8bVjTs21YdXgLAAEE9QEAAAQUAAAANczNCsIw
EATgu0+xx/agEcRLEEG0J5FCi/acpFsIpLthm/jz9lbR2wx8M1XT1I2GKxkbEBJDykLABJ6c4IiU
TACTEy/vxuU8QrEG4gSGAEVYyoW6ccgjTupkklFV16oO7dkn1XIWh592ZEF14T6HmT3Q9rO0ZsLv
5BNWLsZis92WoKF6OozJM9Wyu7Pv9/B70PrPtY4oA8tYR6QD9TcUP7wKyxzKxRtQSwMEFAACAAgA
+JokSq+IHNetAAAApAEAAEEAHABzdG9yYWdlL3dlYnNxbC9zdGF0ZW1lbnQtZXJyb3ItY2FsbGJh
Y2staXNvbGF0ZWQtd29ybGQtc3RkZXJyLnR4dFVUCQADQ7xtWNOzbVh1eAsAAQT1AQAABBQAAADd
j80KwjAQhO99ij22B40gXoIIoj2JFCrqOUm3EEh3wzap+vb+oC/hbQa+b2Dqtm1aDWcyNiAkhpSF
gAk8OcEBKZkAJieeTcblPEC5AOIEhgBFWKpCXTjkAUe1N8mo+npSV7QHn9SJszh8tx0LqiN3Obyw
G9ruRVoz4kd5h7mLsVyuVhVoqO8OY/JMjawn9t0Gvgta/3CtI0rPMjQRaUvdBcX3j9Iyh6qo/+7R
E1BLAwQUAAIACAD4miRKSxuBNacAAADSAAAAMgAcAHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1l
cnJvci1jYWxsYmFjay1zdGRlcnIudHh0VVQJAANDvG1Y07NtWHV4CwABBPUBAAAEFAAAADXMzQrC
MBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCI
lEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC
7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAI
APiaJEqviBzXrQAAAKQBAABDABwAc3RvcmFnZS93ZWJzcWwvc3RhdGVtZW50LXN1Y2Nlc3MtY2Fs
bGJhY2staXNvbGF0ZWQtd29ybGQtc3RkZXJyLnR4dFVUCQADQ7xtWNSzbVh1eAsAAQT1AQAABBQA
AADdj80KwjAQhO99ij22B40gXoIIoj2JFCrqOUm3EEh3wzap+vb+oC/hbQa+b2Dqtm1aDWcyNiAk
hpSFgAk8OcEBKZkAJieeTcblPEC5AOIEhgBFWKpCXTjkAUe1N8mo+npSV7QHn9SJszh8tx0LqiN3
ObywG9ruRVoz4kd5h7mLsVyuVhVoqO8OY/JMjawn9t0Gvgta/3CtI0rPMjQRaUvdBcX3j9Iyh6qo
/+7RE1BLAwQUAAIACAD4miRKSxuBNacAAADSAAAAKgAcAHN0b3JhZ2Uvd2Vic3FsL3N1Y2Nlc3Mt
Y2FsbGJhY2stc3RkZXJyLnR4dFVUCQADRLxtWNSzbVh1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7
T7HH9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMT
L+/G5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1Yu
xmKz3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQUAAIACAD4miRK
SxuBNacAAADSAAAAQwAcAHN0b3JhZ2Uvd2Vic3FsL3N1Y2Nlc3MtY2FsbGJhY2std2hlbi1wYWdl
LWRlZmVycy1sb2FkaW5nLXN0ZGVyci50eHRVVAkAA0S8bVjUs21YdXgLAAEE9QEAAAQUAAAANczN
CsIwEATgu0+xx/agEcRLEEG0J5FCi/acpFsIpLthm/jz9lbR2wx8M1XT1I2GKxkbEBJDykLABJ6c
4IiUTACTEy/vxuU8QrEG4gSGAEVYyoW6ccgjTupkklFV16oO7dkn1XIWh592ZEF14T6HmT3Q9rO0
ZsLv5BNWLsZis92WoKF6OozJM9Wyu7Pv9/B70PrPtY4oA8tYR6QD9TcUP7wKyxzKxRtQSwMEFAAC
AAgA+ZokSksbgTWnAAAA0gAAACkAHABzdG9yYWdlL3dlYnNxbC90ZXN0LWF1dGhvcml6ZXItc3Rk
ZXJyLnR4dFVUCQADRbxtWNWzbVh1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQn
kUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYA
RVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz
1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQUAAIACAD5miRKSxuBNacAAADSAAAA
PgAcAHN0b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9uLWNhbGxiYWNrLWV4Y2VwdGlvbi1jcmFzaC1z
dGRlcnIudHh0VVQJAANFvG1Y1bNtWHV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBB
tCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIE
hgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqM
yTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIAPmaJEqviBzXrQAAAKQB
AAA9ABwAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tY2FsbGJhY2staXNvbGF0ZWQtd29ybGQt
c3RkZXJyLnR4dFVUCQADRbxtWNazbVh1eAsAAQT1AQAABBQAAADdj80KwjAQhO99ij22B40gXoII
oj2JFCrqOUm3EEh3wzap+vb+oC/hbQa+b2Dqtm1aDWcyNiAkhpSFgAk8OcEBKZkAJieeTcblPEC5
AOIEhgBFWKpCXTjkAUe1N8mo+npSV7QHn9SJszh8tx0LqiN3ObywG9ruRVoz4kd5h7mLsVyuVhVo
qO8OY/JMjawn9t0Gvgta/3CtI0rPMjQRaUvdBcX3j9Iyh6qo/+7RE1BLAwQUAAIACAD5miRKr4gc
160AAACkAQAAQwAcAHN0b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9uLWVycm9yLWNhbGxiYWNrLWlz
b2xhdGVkLXdvcmxkLXN0ZGVyci50eHRVVAkAA0W8bVjWs21YdXgLAAEE9QEAAAQUAAAA3Y/NCsIw
EITvfYo9tgeNIF6CCKI9iRQq6jlJtxBId8M2qfr2/qAv4W0Gvm9g6rZtWg1nMjYgJIaUhYAJPDnB
ASmZACYnnk3G5TxAuQDiBIYARViqQl045AFHtTfJqPp6Ule0B5/UibM4fLcdC6ojdzm8sBva7kVa
M+JHeYe5i7FcrlYVaKjvDmPyTI2sJ/bdBr4LWv9wrSNKzzI0EWlL3QXF94/SMoeqqP/u0RNQSwME
FAACAAgA+ZokSksbgTWnAAAA0gAAADQAHABzdG9yYWdlL3dlYnNxbC90cmFuc2FjdGlvbi1lcnJv
ci1jYWxsYmFjay1zdGRlcnIudHh0VVQJAANGvG1Y17NtWHV4CwABBPUBAAAEFAAAADXMzQrCMBAE
4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwA
kxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QT
Vi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIAPma
JEpLG4E1pwAAANIAAAAvABwAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tcHJvdG90eXBlLXN0
ZGVyci50eHRVVAkAA0a8bVjXs21YdXgLAAEE9QEAAAQUAAAANczNCsIwEATgu0+xx/agEcRLEEG0
J5FCi/acpFsIpLthm/jz9lbR2wx8M1XT1I2GKxkbEBJDykLABJ6c4IiUTACTEy/vxuU8QrEG4gSG
AEVYyoW6ccgjTupkklFV16oO7dkn1XIWh592ZEF14T6HmT3Q9rO0ZsLv5BNWLsZis92WoKF6OozJ
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
AAAAAQAAAKSBnXQBAGFjY2Vzc19sb2cudHh0VVQFAAPmu21YdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAzpQkSgAAAAAAAAAAAAAAAAcAGAAAAAAAAAAQAO1BWK0EAGNyeXB0by9VVAUAA6SxbVh1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADPlCRKAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA7UGZ
rQQAY3J5cHRvL3N1YnRsZS9VVAUAA6WxbVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAADJmSRK
JeDTCCwAAAAsAAAAPgAYAAAAAAABAAAApIHhrQQAY3J5cHRvL3N1YnRsZS9yc2EtZ2VuZXJhdGUt
a2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLXN0ZGVyci50eHRVVAUAAwm6bVh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADJmSRKMDu4sUsAAABoAAAAPAAYAAAAAAABAAAApIGFrgQAY3J5cHRvL3N1
YnRsZS9yc2EtaW1wb3J0LWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1zdGRlcnIudHh0VVQFAAMK
um1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAzJQkSgAAAAAAAAAAAAAAAA8AGAAAAAAAAAAQ
AO1BRq8EAGNyeXB0by93b3JrZXJzL1VUBQADn7FtWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AMyUJEoAAAAAAAAAAAAAAAAWABgAAAAAAAAAEADtQY+vBABjcnlwdG8vd29ya2Vycy9zdWJ0bGUv
VVQFAAOfsW1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgACAAAAxZkkSiXg0wgsAAAALAAAADEAGAAA
AAAAAQAAAKSB368EAGNyeXB0by93b3JrZXJzL3N1YnRsZS9yc2EtZ2VuZXJhdGUta2V5LXN0ZGVy
ci50eHRVVAUAAwK6bVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADSlCRKAAAAAAAAAAAAAAAA
DQAYAAAAAAAAABAA7UF2sAQAZGlzcGxheWxpc3RzL1VUBQADq7FtWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAMyZJEqjV/3oUAAAAI4AAAAyABgAAAAAAAEAAACkgb2wBABkaXNwbGF5bGlzdHMv
ZXh0ZW50LWluY2x1ZGVzLXRyYW5zZm9ybXMtc3RkZXJyLnR4dFVUBQADD7ptWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAMyZJErylpXVRwAAAEkAAAApABgAAAAAAAEAAACkgXmxBABkaXNwbGF5
bGlzdHMvbGF5ZXItZGlzcGF5LWxpc3Qtc3RkZXJyLnR4dFVUBQADD7ptWHV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAABeVJEoAAAAAAAAAAAAAAAAIABgAAAAAAAAAEADtQSOyBABlZGl0aW5nL1VU
BQADLrJtWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABeVJEoAAAAAAAAAAAAAAAARABgAAAAA
AAAAEADtQWWyBABlZGl0aW5nL2RlbGV0aW5nL1VUBQADLrJtWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIABCaJEpQDXW4uwEAABATAAAoABgAAAAAAAEAAACkgbCyBABlZGl0aW5nL2RlbGV0aW5n
L2RlbGV0ZS1lbW9qaS1zdGRlcnIudHh0VVQFAAOQum1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAA95QkSgAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BzbQEAGVkaXRpbmcvcGFzdGVib2FyZC9V
VAUAA/KxbVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADgmSRKfqnxIOkAAACCAQAAMAAYAAAA
AAABAAAApIEatQQAZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktcmVzb2x2ZXMtdXJscy1zdGRlcnIu
dHh0VVQFAAM0um1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7pkkSlcYE0naAAAAUAEAACwA
GAAAAAAAAQAAAKSBbbYEAGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1ub3BsdWdpbi1zdGRlcnIu
dHh0VVQFAANQum1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7pkkSlcYE0naAAAAUAEAADIA
GAAAAAAAAQAAAKSBrbcEAGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1ub3BsdWdpbi14aHRtbC1z
dGRlcnIudHh0VVQFAANQum1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA75kkSndNix3jAAAA
dwEAACwAGAAAAAAAAQAAAKSB87gEAGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1ub3NjcmlwdC1z
dGRlcnIudHh0VVQFAANRum1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA75kkSkouPjDiAAAA
ewEAADIAGAAAAAAAAQAAAKSBPLoEAGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1ub3NjcmlwdC14
aHRtbC1zdGRlcnIudHh0VVQFAANRum1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbJskShKJ
rBBGDgAAFnYAAA0AGAAAAAAAAQAAAKSBirsEAGVycm9yX2xvZy50eHRVVAUAAxu9bVh1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAABklSRKAAAAAAAAAAAAAAAABQAYAAAAAAAAABAA7UEXygQAZmFz
dC9VVAUAA7yybVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAElSRKAAAAAAAAAAAAAAAADAAY
AAAAAAAAABAA7UFWygQAZmFzdC9jYW52YXMvVVQFAAMIsm1YdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA/ZkkSsCFK0p8AAAAAgEAACYAGAAAAAAAAQAAAKSBnMoEAGZhc3QvY2FudmFzL2NhbnZh
cy1saW5lRGFzaC1zdGRlcnIudHh0VVQFAANtum1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
ZJUkSgAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1BeMsEAGZhc3QvY3NzL1VUBQADvLJtWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAFyaJEoFESfcsgAAAM4BAAA2ABgAAAAAAAEAAACkgbvLBABm
YXN0L2Nzcy9wZXJzcGVjdGl2ZS1vcmlnaW4taW5pdGlhbC1pbmhlcml0LXN0ZGVyci50eHRVVAUA
AyC7bVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAD9lCRKAAAAAAAAAAAAAAAACQAYAAAAAAAA
ABAA7UHdzAQAZmFzdC9kb20vVVQFAAP+sW1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA/ZQk
SgAAAAAAAAAAAAAAABoAGAAAAAAAAAAQAO1BIM0EAGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIv
VVQFAAP+sW1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA95kkSksbgTWnAAAA0gAAAD8AGAAA
AAAAAQAAAKSBdM0EAGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvZGF0YWJhc2UtY2FsbGJhY2st
ZGVsaXZlcnktc3RkZXJyLnR4dFVUBQADYbptWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAAWV
JEoAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQZTOBABmYXN0L2Zvcm1zL1VUBQADCrJtWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAACaJEouX9jvewEAAPg5AAAzABgAAAAAAAEAAACkgdnOBABm
YXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcGF0dGVybk1pc21hdGNoLXN0ZGVyci50eHRVVAUAA2+6
bVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABJlSRKAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA
7UHB0AQAZmFzdC9mcmFtZXMvVVQFAAOKsm1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAQ5ok
SksbgTWnAAAA0gAAAC8AGAAAAAAAAQAAAKSBB9EEAGZhc3QvZnJhbWVzL3NhbmRib3hlZC1pZnJh
bWUtc3RvcmFnZS1zdGRlcnIudHh0VVQFAAPtum1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
DZUkSgAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1BF9IEAGZhc3QvaGlzdG9yeS9VVAUAAxmybVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAGmiRKSxuBNacAAADSAAAAQAAYAAAAAAABAAAApIFe
0gQAZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2Utbm8tdHJhbnNhY3Rpb24tZGIt
c3RkZXJyLnR4dFVUBQADfLptWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABWVJEoAAAAAAAAA
AAAAAAAMABgAAAAAAAAAEADtQX/TBABmYXN0L2ltYWdlcy9VVAUAAymybVh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAOmiRKIY+9ODIAAAAzAAAALAAYAAAAAAABAAAApIHF0wQAZmFzdC9pbWFn
ZXMvcGRmLWFzLWltYWdlLWNyb3AtYm94LXN0ZGVyci50eHRVVAUAA4y6bVh1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAAAtlSRKAAAAAAAAAAAAAAAACgAYAAAAAAAAABAA7UFd1AQAZmFzdC90ZXh0
L1VUBQADVrJtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACaaJErcNXjlfAEAAI0JAAAjABgA
AAAAAAEAAACkgaHUBABmYXN0L3RleHQvZW1vamktZ2VuZGVyLTItc3RkZXJyLnR4dFVUBQADt7pt
WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAC6VJEoAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADt
QXrWBABmYXN0L3hzbC9VVAUAA1iybVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAmmiRKTvsg
+IgAAADnAAAAJQAYAAAAAAABAAAApIG91gQAZmFzdC94c2wvdHJhbnNmb3JtLXhoci1kb2Mtc3Rk
ZXJyLnR4dFVUBQADt7ptWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACaaJEr9oi5kjwAAAO4A
AAAnABgAAAAAAAEAAACkgaTXBABmYXN0L3hzbC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50
eHRVVAUAA7e6bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAmmiRKz49mDlAAAACgAAAAJAAY
AAAAAAABAAAApIGU2AQAZmFzdC94c2wveHNsdC1jb250ZW50VHlwZS1zdGRlcnIudHh0VVQFAAO3
um1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKJokSoFKd61LAAAArAAAADQAGAAAAAAAAQAA
AKSBQtkEAGZhc3QveHNsL3hzbHQtdHJhbnNmb3JtLXRvLWZyYWdtZW50LWNyYXNoLXN0ZGVyci50
eHRVVAUAA7u6bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC2myRKHWHzSb4BAABfAwAAEQAY
AAAAAAABAAAApIH72QQAZnVsbF9yZXN1bHRzLmpzb25VVAUAA6e9bVh1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAAAxlSRKAAAAAAAAAAAAAAAABQAYAAAAAAAAABAA7UEE3AQAaHR0cC9VVAUAA12y
bVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAB0lSRKAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA
7UFD3AQAaHR0cC90ZXN0cy9VVAUAA9yybVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAylSRK
AAAAAAAAAAAAAAAALwAYAAAAAAAAABAA7UGI3AQAaHR0cC90ZXN0cy9jb250ZW50ZGlzcG9zaXRp
b25hdHRhY2htZW50c2FuZGJveC9VVAUAA1+ybVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAq
miRK3Jhv7zYAAAA6AAAAUQAYAAAAAAABAAAApIHx3AQAaHR0cC90ZXN0cy9jb250ZW50ZGlzcG9z
aXRpb25hdHRhY2htZW50c2FuZGJveC9yZWZlcmVyLWhlYWRlci1zdHJpcHBlZC1zdGRlcnIudHh0
VVQFAAO/um1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKZokStyYb+82AAAAOgAAAGoAGAAA
AAAAAQAAAKSBst0EAGh0dHAvdGVzdHMvY29udGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRi
b3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtd2l0aC1tZXRhLXJlZmVyZXItYWx3YXlzLXN0ZGVy
ci50eHRVVAUAA726bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAApmiRK3Jhv7zYAAAA6AAAA
awAYAAAAAAABAAAApIGM3gQAaHR0cC90ZXN0cy9jb250ZW50ZGlzcG9zaXRpb25hdHRhY2htZW50
c2FuZGJveC9yZWZlcmVyLWhlYWRlci1zdHJpcHBlZC13aXRoLW1ldGEtcmVmZXJlci1kZWZhdWx0
LXN0ZGVyci50eHRVVAUAA766bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAApmiRK3Jhv7zYA
AAA6AAAAaQAYAAAAAAABAAAApIFn3wQAaHR0cC90ZXN0cy9jb250ZW50ZGlzcG9zaXRpb25hdHRh
Y2htZW50c2FuZGJveC9yZWZlcmVyLWhlYWRlci1zdHJpcHBlZC13aXRoLW1ldGEtcmVmZXJlci1u
ZXZlci1zdGRlcnIudHh0VVQFAAO+um1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKZokStyY
b+82AAAAOgAAAG8AGAAAAAAAAQAAAKSBQOAEAGh0dHAvdGVzdHMvY29udGVudGRpc3Bvc2l0aW9u
YXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtd2l0aC1tZXRhLXJlZmVy
ZXItbm8tcmVmZXJyZXItc3RkZXJyLnR4dFVUBQADvrptWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIACmaJErcmG/vNgAAADoAAAB+ABgAAAAAAAEAAACkgR/hBABodHRwL3Rlc3RzL2NvbnRlbnRk
aXNwb3NpdGlvbmF0dGFjaG1lbnRzYW5kYm94L3JlZmVyZXItaGVhZGVyLXN0cmlwcGVkLXdpdGgt
bWV0YS1yZWZlcmVyLW5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlLXN0ZGVyci50eHRVVAUAA766
bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAApmiRK3Jhv7zYAAAA6AAAAagAYAAAAAAABAAAA
pIEN4gQAaHR0cC90ZXN0cy9jb250ZW50ZGlzcG9zaXRpb25hdHRhY2htZW50c2FuZGJveC9yZWZl
cmVyLWhlYWRlci1zdHJpcHBlZC13aXRoLW1ldGEtcmVmZXJlci1vcmlnaW4tc3RkZXJyLnR4dFVU
BQADvrptWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACqaJErcmG/vNgAAADoAAABuABgAAAAA
AAEAAACkgefiBABodHRwL3Rlc3RzL2NvbnRlbnRkaXNwb3NpdGlvbmF0dGFjaG1lbnRzYW5kYm94
L3JlZmVyZXItaGVhZGVyLXN0cmlwcGVkLXdpdGgtbWV0YS1yZWZlcmVyLXVuc2FmZS11cmwtc3Rk
ZXJyLnR4dFVUBQADv7ptWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGeVJEoAAAAAAAAAAAAA
AAAQABgAAAAAAAAAEADtQcXjBABodHRwL3Rlc3RzL21pc2MvVVQFAAPBsm1YdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAOZokSl6E9GnmAAAAYgEAAC0AGAAAAAAAAQAAAKSBD+QEAGh0dHAvdGVz
dHMvbWlzYy9jb3B5LXJlc29sdmVzLXVybHMtc3RkZXJyLnR4dFVUBQAD3rptWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAF2aJEoVNTWSegAAALwAAAAqABgAAAAAAAEAAACkgVzlBABodHRwL3Rl
c3RzL21pc2MveHNsdC1iYWQtaW1wb3J0LXN0ZGVyci50eHRVVAUAAyK7bVh1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAABqlSRKAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UE65gQAaHR0cC90ZXN0
cy9zZWN1cml0eS9VVAUAA8eybVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABXlSRKAAAAAAAA
AAAAAAAAKgAYAAAAAAAAABAA7UGI5gQAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvVVQFAAOmsm1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVJokSmOqrGyCAAAA
qAAAAEAAGAAAAAAAAQAAAKSB7OYEAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRVVAUAAw+7bVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABUmiRKY6qsbIIAAACoAAAAUgAYAAAAAAABAAAApIHo5wQAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXVuYWZmZWN0ZWQtYnktc3R5bGUtc3JjLTIt
c3RkZXJyLnR4dFVUBQADELttWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEaaJEqviBzXrQAA
AKQBAAA6ABgAAAAAAAEAAACkgfboBABodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13
ZWJzcWwtYWxsb3dlZC1zdGRlcnIudHh0VVQFAAPzum1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgARpokSksbgTWnAAAA0gAAADIAGAAAAAAAAQAAAKSBF+oEAGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y3Jvc3Mtb3JpZ2luLXdlYnNxbC1zdGRlcnIudHh0VVQFAAPzum1YdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAWZokSksbgTWnAAAA0gAAAD8AGAAAAAAAAQAAAKSBKusEAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvc3RvcmFnZS1ibG9ja2luZy1sb29zZW5lZC13ZWJzcWwtc3RkZXJyLnR4dFVUBQADGrtt
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFmaJEpLG4E1pwAAANIAAABDABgAAAAAAAEAAACk
gUrsBABodHRwL3Rlc3RzL3NlY3VyaXR5L3N0b3JhZ2UtYmxvY2tpbmctc3RyZW5ndGhlbmVkLXdl
YnNxbC1zdGRlcnIudHh0VVQFAAMau21YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZJokSmBL
ZhCRAAAA+wEAAEUAGAAAAAAAAQAAAKSBbu0EAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklF
RC14c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4dFVUBQADLLttWHV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAESVJEoAAAAAAAAAAAAAAAATABgAAAAAAAAAEADtQX7uBABodHRw
L3Rlc3RzL3N0b3JhZ2UvVVQFAAN/sm1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAPJokSksb
gTWnAAAA0gAAAEUAGAAAAAAAAQAAAKSBy+4EAGh0dHAvdGVzdHMvc3RvcmFnZS9jYWxsYmFja3Mt
YXJlLWNhbGxlZC1pbi1jb3JyZWN0LWNvbnRleHQtc3RkZXJyLnR4dFVUBQAD47ptWHV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAHSVJEoAAAAAAAAAAAAAAAAaABgAAAAAAAAAEADtQfHvBABodHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L1VUBQAD3LJtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AG6aJEp+f+0XsQAAAAEBAABBABgAAAAAAAEAAACkgUXwBABodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUtYXN5bmMtc3RkZXJyLnR4dFVUBQADP7ttWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAG6aJEp+f+0XsQAAAAEBAABAABgAAAAAAAEAAACkgXHxBABo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUtc3luYy1zdGRl
cnIudHh0VVQFAAM/u21YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAuJkkSlsEWA6iBQAATRAA
AAoAGAAAAAAAAQAAAKSBnPIEAGh0dHBkLmNvbmZVVAUAA+u5bVh1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAABulSRKAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UGC+AQAaW1wb3J0ZWQvVVQFAAPQ
sm1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAdpUkSgAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQ
AO1BxfgEAGltcG9ydGVkL3czYy9VVAUAA9+ybVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAB2
lSRKAAAAAAAAAAAAAAAAGgAYAAAAAAAAABAA7UEM+QQAaW1wb3J0ZWQvdzNjL1dlYkNyeXB0b0FQ
SS9VVAUAA9+ybVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAB6lSRKAAAAAAAAAAAAAAAAJgAY
AAAAAAAAABAA7UFg+QQAaW1wb3J0ZWQvdzNjL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS9VVAUA
A+eybVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABpmiRKjzQacEQAAACgCQAARwAYAAAAAAAB
AAAApIHA+QQAaW1wb3J0ZWQvdzNjL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1
cmVzX1JTQS1PQUVQLXN0ZGVyci50eHRVVAUAAzW7bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABtmiRKVALJsjYAAADAAgAAUAAYAAAAAAABAAAApIGF+gQAaW1wb3J0ZWQvdzNjL1dlYkNyeXB0
b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzX1JTQVNTQS1QS0NTMS12MV81LXN0ZGVyci50
eHRVVAUAAz27bVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACwmiRKAAAAAAAAAAAAAAAAIAAY
AAAAAAAAABAA7UFF+wQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9VVAUAA7u7bVh1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACTlSRKAAAAAAAAAAAAAAAAKgAYAAAAAAAAABAA7UGf
+wQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvVVQFAAMWs21YdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAaJokSkZoG9uZAAAAxQAAAEgAGAAAAAAAAQAAAKSBA/wE
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmN1cnNvcl9pdGVy
YXRpbmctc3RkZXJyLnR4dFVUBQADM7ttWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHCaJEod
0Y8mowAAAE8CAABGABgAAAAAAAEAAACkgR79BABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW4xMS1zdGRlcnIudHh0VVQFAANEu21YdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAcpokSkZoG9uZAAAAxQAAAEMAGAAAAAAAAQAAAKSBQf4EAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2NvdW50LXN0
ZGVyci50eHRVVAUAA0e7bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABxmiRKRmgb25kAAADF
AAAARAAYAAAAAAABAAAApIFX/wQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiaW5kZXhfY291bnQyLXN0ZGVyci50eHRVVAUAA0a7bVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABymiRKRmgb25kAAADFAAAARAAYAAAAAAABAAAApIFuAAUAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfY291bnQzLXN0ZGVyci50eHRV
VAUAA0e7bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB6miRKRmgb25kAAADFAAAASQAYAAAA
AAABAAAApIGFAQUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfY291bnQtc3RkZXJyLnR4dFVUBQADV7ttWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAHmaJEpGaBvbmQAAAMUAAABKABgAAAAAAAEAAACkgaECBQBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jb3VudDItc3RkZXJyLnR4
dFVUBQADVrttWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHmaJEowPYU3nwAAAIoBAABKABgA
AAAAAAEAAACkgb4DBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJvYmplY3RzdG9yZV9jb3VudDMtc3RkZXJyLnR4dFVUBQADVrttWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAHyaJEpGaBvbmQAAAMUAAABLABgAAAAAAAEAAACkgeEEBQBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGU1LXN0ZGVy
ci50eHRVVAUAA1u7bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACCmiRKRmgb25kAAADFAAAA
TgAYAAAAAAABAAAApIH/BQUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRidHJhbnNhY3Rpb24tb25jb21wbGV0ZS1zdGRlcnIudHh0VVQFAANku21YdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAjpokSjA9hTefAAAAigEAAFgAGAAAAAAAAQAAAKSBIAcFAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uLWNyZWF0ZV9p
bl92ZXJzaW9uY2hhbmdlLXN0ZGVyci50eHRVVAUAA3u7bVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACPmiRKRmgb25kAAADFAAAARgAYAAAAAAABAAAApIFRCAUAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvd3JpdGVyLXN0YXJ2YXRpb24tc3RkZXJyLnR4dFVUBQAD
frttWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAG6VJEoAAAAAAAAAAAAAAAAmABgAAAAAAAAA
EADtQWoJBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL1VUBQAD0LJtWHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAG6VJEoAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQcoJ
BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9VVAUAA9CybVh1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAABzlSRKAAAAAAAAAAAAAAAALwAYAAAAAAAAABAA7UEuCgUA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9VVAUAA9qybVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABmmiRKtuUISAkCAAC9DAAARQAYAAAAAAABAAAApIGX
CgUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLW9y
aWdpbi1zdGRlcnIudHh0VVQFAAMwu21YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZ5okSsdK
HmddAQAAbAUAAFEAGAAAAAAAAQAAAKSBHw0FAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtcmVkaXJlY3Qtc3RkZXJyLnR4dFVUBQAD
MbttWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGiaJEpylkNTnwIAALwQAABPABgAAAAAAAEA
AACkgQcPBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2Nv
cnMtcHJlZmxpZ2h0LXN0YXR1cy1zdGRlcnIudHh0VVQFAAMzu21YdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAaZokStaYnESXAQAA3gUAAEgAGAAAAAAAAQAAAKSBLxIFAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtc3RkZXJyLnR4
dFVUBQADNbttWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGuaJEpspeF7yQIAAL8TAABRABgA
AAAAAAEAAACkgUgUBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9j
b3JzL2NvcnMtcmVkaXJlY3QtcHJlZmxpZ2h0LXN0ZGVyci50eHRVVAUAAzm7bVh1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAACwmiRKAAAAAAAAAAAAAAAAJQAYAAAAAAAAABAA7UGcFwUAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL1VUBQADu7ttWHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAALCaJEoAAAAAAAAAAAAAAAAvABgAAAAAAAAAEADtQfsXBQBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL1VUBQADu7ttWHV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAALCaJEoAAAAAAAAAAAAAAABAABgAAAAAAAAAEADtQWQYBQBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvVVQF
AAO7u21YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAsJokSgAAAAAAAAAAAAAAAE8AGAAAAAAA
AAAQAO1B3hgFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9VVAUAA7u7bVh1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAACwmiRKAAAAAAAAAAAAAAAAWgAYAAAAAAAAABAA7UFnGQUAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlh
LWVsZW1lbnRzL2ludGVyZmFjZXMvVVQFAAO7u21YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
sJokSgAAAAAAAAAAAAAAAGQAGAAAAAAAAAAQAO1B+xkFAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9p
bnRlcmZhY2VzL1RleHRUcmFjay9VVAUAA7u7bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC1
myRKCt+iwP5IAAAzZwEAeAAYAAAAAAABAAAApIGZGgUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2lu
dGVyZmFjZXMvVGV4dFRyYWNrL2FkZEN1ZS1jcmFzaC1sb2cudHh0VVQFAAOmvW1YdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAsJokSpvN3Hv6AwAADwwAAHUAGAAAAAAAAQAAAKSBSWQFAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC9tZWRpYS1lbGVtZW50cy9pbnRlcmZhY2VzL1RleHRUcmFjay9hZGRDdWUtc3RkZXJyLnR4dFVU
BQADu7ttWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAK2VJEoAAAAAAAAAAAAAAAADABgAAAAA
AAAAEADtQfJoBQBqcy9VVAUAA0azbVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADjlSRKAAAA
AAAAAAAAAAAABwAYAAAAAAAAABAA7UEvaQUAanMvZG9tL1VUBQADqrNtWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAKqaJEpLG4E1pwAAANIAAAA1ABgAAAAAAAEAAACkgXBpBQBqcy9kb20vY2Fs
bGJhY2stZnVuY3Rpb24td2l0aC1oYW5kbGUtZXZlbnQtc3RkZXJyLnR4dFVUBQADsLttWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAOGaJEpLG4E1pwAAANIAAAAwABgAAAAAAAEAAACkgYZqBQBq
cy9kb20vZXhjZXB0aW9ucy10aHJvd24taW4tY2FsbGJhY2tzLXN0ZGVyci50eHRVVAUAAxa8bVh1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADllSRKAAAAAAAAAAAAAAAABgAYAAAAAAAAABAA7UGX
awUAbWVkaWEvVVQFAAOus21YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA8JokSgAAAAAAAAAA
AAAAAAwAGAAAAAAAAAAQAO1B12sFAG1lZGlhL3RyYWNrL1VUBQADM7xtWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAOOaJEqN6RhUSwEAAFQCAAAqABgAAAAAAAEAAACkgR1sBQBtZWRpYS90cmFj
ay90cmFjay1pbi1iYW5kLXN0eWxlLWFjdHVhbC50eHRVVAUAAxm8bVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADjmiRKE8zBhm8BAAC5AgAAKAAYAAAAAAABAAAApIHMbQUAbWVkaWEvdHJhY2sv
dHJhY2staW4tYmFuZC1zdHlsZS1kaWZmLnR4dFVUBQADGbxtWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAOOaJEoM+uTqNgEAADMCAAAsABgAAAAAAAEAAACkgZ1vBQBtZWRpYS90cmFjay90cmFj
ay1pbi1iYW5kLXN0eWxlLWV4cGVjdGVkLnR4dFVUBQADGbxtWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAOOaJErLJuaLlQgAAM4gAAAwABgAAAAAAAEAAACkgTlxBQBtZWRpYS90cmFjay90cmFj
ay1pbi1iYW5kLXN0eWxlLXByZXR0eS1kaWZmLmh0bWxVVAUAAxm8bVh1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAADwmiRKAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA7UE4egUAbWVkaWEvdHJhY2sv
dzNjL1VUBQADM7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPCaJEoAAAAAAAAAAAAAAAAb
ABgAAAAAAAAAEADtQYJ6BQBtZWRpYS90cmFjay93M2MvaW50ZXJmYWNlcy9VVAUAAzO8bVh1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAADwmiRKAAAAAAAAAAAAAAAAJQAYAAAAAAAAABAA7UHXegUA
bWVkaWEvdHJhY2svdzNjL2ludGVyZmFjZXMvVGV4dFRyYWNrL1VUBQADM7xtWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIALWbJEq5vSe3ekwAABMjAQA5ABgAAAAAAAEAAACkgTZ7BQBtZWRpYS90
cmFjay93M2MvaW50ZXJmYWNlcy9UZXh0VHJhY2svYWRkQ3VlLWNyYXNoLWxvZy50eHRVVAUAA6a9
bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADwmiRK2P+NygwEAAAnDAAANgAYAAAAAAABAAAA
pIEjyAUAbWVkaWEvdHJhY2svdzNjL2ludGVyZmFjZXMvVGV4dFRyYWNrL2FkZEN1ZS1zdGRlcnIu
dHh0VVQFAAMzvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAxpUkSgAAAAAAAAAAAAAAAAgA
GAAAAAAAAAAQAO1Bn8wFAHBsdWdpbnMvVVQFAANzs21YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAw5okSpUOHD+tAAAA8QAAAC8AGAAAAAAAAQAAAKSB4cwFAHBsdWdpbnMvbW91c2UtY2xpY2st
aWZyYW1lLXRvLXBsdWdpbi1zdGRlcnIudHh0VVQFAAPeu21YdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAVpokSiLK87ZlAgAAohUAABoAGAAAAAAAAQAAAKSB980FAHB5d2Vic29ja2V0LndzLmxv
Zy1lcnIudHh0VVQFAAMUu21YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAR5okSuG8VrAJAQAA
jwIAABoAGAAAAAAAAQAAAKSBsNAFAHB5d2Vic29ja2V0LndzLmxvZy1vdXQudHh0VVQFAAP2um1Y
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAuZkkSgAAAAAAAAAAAAAAABsAGAAAAAAAAAAAAKSB
DdIFAHB5d2Vic29ja2V0Lndzcy5sb2ctZXJyLnR4dFVUBQAD7bltWHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAALmZJEoAAAAAAAAAAAAAAAAbABgAAAAAAAAAAACkgWLSBQBweXdlYnNvY2tldC53
c3MubG9nLW91dC50eHRVVAUAA+25bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC2myRKRSYd
OdEnAADLqgAADAAYAAAAAAABAAAApIG30gUAcmVzdWx0cy5odG1sVVQFAAOnvW1YdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAtZskSgAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1BzvoFAHJldHJp
ZXMvVVQFAAOmvW1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAm5skSgAAAAAAAAAAAAAAABEA
GAAAAAAAAAAQAO1BEPsFAHJldHJpZXMvaW1wb3J0ZWQvVVQFAAN1vW1YdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAm5skSgAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1BW/sFAHJldHJpZXMvaW1w
b3J0ZWQvdzNjL1VUBQADdb1tWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJubJEoAAAAAAAAA
AAAAAAAoABgAAAAAAAAAEADtQar7BQByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvVVQFAAN1vW1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAm5skSgAAAAAAAAAAAAAA
AC0AGAAAAAAAAAAQAO1BDPwFAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL1VUBQADdb1tWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJubJEoAAAAAAAAAAAAA
AAA3ABgAAAAAAAAAEADtQXP8BQByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvVVQFAAN1vW1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAm5sk
SgAAAAAAAAAAAAAAAEgAGAAAAAAAAAAQAO1B5PwFAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L1VUBQADdb1tWHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJubJEoAAAAAAAAAAAAAAABXABgAAAAAAAAAEADtQWb9
BQByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9VVAUAA3W9bVh1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAACbmyRKAAAAAAAAAAAAAAAAYgAYAAAAAAAAABAA7UH3/QUAcmV0cmllcy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvbWVkaWEtZWxlbWVudHMvaW50ZXJmYWNlcy9VVAUAA3W9bVh1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAACbmyRKAAAAAAAAAAAAAAAAbAAYAAAAAAAAABAA7UGT/gUAcmV0cmllcy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQv
bWVkaWEtZWxlbWVudHMvaW50ZXJmYWNlcy9UZXh0VHJhY2svVVQFAAN1vW1YdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAm5skSgrfosD+SAAAM2cBAIAAGAAAAAAAAQAAAKSBOf8FAHJldHJpZXMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50L21lZGlhLWVsZW1lbnRzL2ludGVyZmFjZXMvVGV4dFRyYWNrL2FkZEN1ZS1jcmFzaC1s
b2cudHh0VVQFAAN1vW1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAm5skSpGN7oH8AwAADwwA
AH0AGAAAAAAAAQAAAKSB8UgGAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2ludGVyZmFj
ZXMvVGV4dFRyYWNrL2FkZEN1ZS1zdGRlcnIudHh0VVQFAAN1vW1YdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAtZskSgAAAAAAAAAAAAAAAA4AGAAAAAAAAAAQAO1BpE0GAHJldHJpZXMvbWVkaWEv
VVQFAAOmvW1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAtZskSgAAAAAAAAAAAAAAABQAGAAA
AAAAAAAQAO1B7E0GAHJldHJpZXMvbWVkaWEvdHJhY2svVVQFAAOmvW1YdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAtZskSgAAAAAAAAAAAAAAABgAGAAAAAAAAAAQAO1BOk4GAHJldHJpZXMvbWVk
aWEvdHJhY2svdzNjL1VUBQADpr1tWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALWbJEoAAAAA
AAAAAAAAAAAjABgAAAAAAAAAEADtQYxOBgByZXRyaWVzL21lZGlhL3RyYWNrL3czYy9pbnRlcmZh
Y2VzL1VUBQADpr1tWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALWbJEoAAAAAAAAAAAAAAAAt
ABgAAAAAAAAAEADtQelOBgByZXRyaWVzL21lZGlhL3RyYWNrL3czYy9pbnRlcmZhY2VzL1RleHRU
cmFjay9VVAUAA6a9bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC1myRKub0nt3pMAAATIwEA
QQAYAAAAAAABAAAApIFQTwYAcmV0cmllcy9tZWRpYS90cmFjay93M2MvaW50ZXJmYWNlcy9UZXh0
VHJhY2svYWRkQ3VlLWNyYXNoLWxvZy50eHRVVAUAA6a9bVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAC1myRK/jq6A/4DAAAPDAAAPgAYAAAAAAABAAAApIFFnAYAcmV0cmllcy9tZWRpYS90cmFj
ay93M2MvaW50ZXJmYWNlcy9UZXh0VHJhY2svYWRkQ3VlLXN0ZGVyci50eHRVVAUAA6a9bVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAC2myRKTFGnzngjCQB4SzAACgAYAAAAAAABAAAApIG7oAYA
c3RhdHMuanNvblVUBQADp71tWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPSVJEoAAAAAAAAA
AAAAAAAIABgAAAAAAAAAEADtQXfEDwBzdG9yYWdlL1VUBQADzLNtWHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAFaWJEoAAAAAAAAAAAAAAAASABgAAAAAAAAAEADtQbnEDwBzdG9yYWdlL2luZGV4
ZWRkYi9VVAUAA4O0bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAUmyRKHdGPJqMAAABPAgAA
KQAYAAAAAAABAAAApIEFxQ8Ac3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtYmFzaWNzLXN0ZGVyci50
eHRVVAUAA3e8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAUmyRKHdGPJqMAAABPAgAAMQAY
AAAAAAABAAAApIELxg8Ac3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtYmFzaWNzLXdvcmtlcnMtc3Rk
ZXJyLnR4dFVUBQADd7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABWbJEptTbKdrwAAAAEK
AAAoABgAAAAAAAEAAACkgRnHDwBzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1jb3VudC1zdGRlcnIu
dHh0VVQFAAN5vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAGJskStbDpg6kAAAAFAMAAC0A
GAAAAAAAAQAAAKSBKsgPAHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LW11bHRpZW50cnktc3RkZXJy
LnR4dFVUBQADgLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABmbJEpGaBvbmQAAAMUAAAAt
ABgAAAAAAAEAAACkgTXJDwBzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1wb3B1bGF0aW9uLXN0ZGVy
ci50eHRVVAUAA4G8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAcmyRKuc5lV94FAAAxMgAA
RQAYAAAAAAAAAAAApIE1yg8Ac3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLWluLXVw
Z3JhZGVuZWVkZWQtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOIvG1YdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAHJskSqhBu7wFBgAA3jUAAD0AGAAAAAAAAAAAAKSBktAPAHN0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tb3Blbi1pbi11cGdyYWRlbmVlZGVkLXN0ZGVyci50eHRVVAUAA4i8bVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAdmyRKBPBwy3UEAAC1GAAAQQAYAAAAAAAAAAAApIEO
1w8Ac3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLXdpdGgtdmVyc2lvbi1wcml2YXRl
LXN0ZGVyci50eHRVVAUAA4m8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAdmyRKcG+FWmoE
AABVGAAAOQAYAAAAAAAAAAAApIH+2w8Ac3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVu
LXdpdGgtdmVyc2lvbi1zdGRlcnIudHh0VVQFAAOJvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAHZskSstM7hAbBQAAzTsAAFEAGAAAAAAAAAAAAKSB2+APAHN0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tcGVuZGluZy12ZXJzaW9uLWNoYW5nZXMtYXNjZW5kaW5nLXByaXZhdGUtc3RkZXJy
LnR4dFVUBQADirxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAB2bJEqYRU4cQQUAAA89AABJ
ABgAAAAAAAAAAACkgYHmDwBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXBlbmRpbmctdmVy
c2lvbi1jaGFuZ2VzLWFzY2VuZGluZy1zdGRlcnIudHh0VVQFAAOKvG1YdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAHZskSrn+8rb6BAAA1i4AAFIAGAAAAAAAAAAAAKSBRewPAHN0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24tcGVuZGluZy12ZXJzaW9uLWNoYW5nZXMtZGVzY2VuZGluZy1wcml2
YXRlLXN0ZGVyci50eHRVVAUAA4q8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAgmyRKgvpx
jxkFAAAtLAAASgAYAAAAAAAAAAAApIHL8Q8Ac3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1w
ZW5kaW5nLXZlcnNpb24tY2hhbmdlcy1kZXNjZW5kaW5nLXN0ZGVyci50eHRVVAUAA4u8bVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAgmyRKZ2oWv9wEAAABKwAATAAYAAAAAAAAAAAApIFo9w8A
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZW5kaW5nLXZlcnNpb24tY2hhbmdlcy1zYW1l
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADi7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACCb
JErJeknVIAUAACkwAABEABgAAAAAAAAAAACkgcr8DwBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLXBlbmRpbmctdmVyc2lvbi1jaGFuZ2VzLXNhbWUtc3RkZXJyLnR4dFVUBQADi7xtWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIACCbJErhpQsmSAQAAB4dAAA7ABgAAAAAAAAAAACkgWgCEABz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXBlcnNpc3RlbmNlLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADi7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACCbJEoa33/tGgQAAFQaAAAzABgA
AAAAAAAAAACkgSUHEABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXBlcnNpc3RlbmNlLXN0
ZGVyci50eHRVVAUAA4y8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAgmyRKMB8dsIIFAAD7
LAAAPwAYAAAAAAAAAAAApIGsCxAAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1yZXZlcnQt
b24tYWJvcnQtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOMvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAIJskShiCbl+LBQAAkS4AADcAGAAAAAAAAAAAAKSBpxEQAHN0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tcmV2ZXJ0LW9uLWFib3J0LXN0ZGVyci50eHRVVAUAA4y8bVh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAgmyRKzFLJZg8EAADoGQAARQAYAAAAAAAAAAAApIGjFxAAc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi10d28tb3BlbnMtbm8tdmVyc2lvbnMtcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAAOMvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIZskSpnh25Q1BAAA3xsA
AD0AGAAAAAAAAAAAAKSBMRwQAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tdHdvLW9wZW5z
LW5vLXZlcnNpb25zLXN0ZGVyci50eHRVVAUAA428bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAAhmyRKVlFmo1UFAAA5RwAAOAAYAAAAAAAAAAAApIHdIBAAc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi11cGdyYWRlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA428bVh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAhmyRKkUwvn30FAAA6SQAAMAAYAAAAAAAAAAAApIGkJhAAc3RvcmFnZS9p
bmRleGVkZGIvaW50dmVyc2lvbi11cGdyYWRlcy1zdGRlcnIudHh0VVQFAAOOvG1YdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAIZskSmNz/J85AwAAmREAADEAGAAAAAAAAAAAAKSBiywQAHN0b3Jh
Z2UvaW5kZXhlZGRiL2ludmFsaWQta2V5cy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA468bVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAhmyRKFhy/YNcDAAAhEwAAKQAYAAAAAAAAAAAApIEvMBAA
c3RvcmFnZS9pbmRleGVkZGIvaW52YWxpZC1rZXlzLXN0ZGVyci50eHRVVAUAA468bVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAimyRKaK1sc2EPAADwxgEAMgAYAAAAAAAAAAAApIFpNBAAc3Rv
cmFnZS9pbmRleGVkZGIva2V5LWdlbmVyYXRvci1wcml2YXRlLXN0ZGVyci50eHRVVAUAA5C8bVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAjmyRKrXKqYqwPAABSzwEAKgAYAAAAAAAAAAAApIE2
RBAAc3RvcmFnZS9pbmRleGVkZGIva2V5LWdlbmVyYXRvci1zdGRlcnIudHh0VVQFAAOSvG1YdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAI5skShwwumJUBQAAbD0AAEAAGAAAAAAAAAAAAKSBRlQQ
AHN0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWFjcm9zcy10eXBlcy1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA5K8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAkmyRKYLip7mAGAACM
RQAAOAAYAAAAAAAAAAAApIEUWhAAc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3JkZXItYWNy
b3NzLXR5cGVzLXN0ZGVyci50eHRVVAUAA5O8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAk
myRK/6HKF3IFAACoNAAAOAAYAAAAAAAAAAAApIHmYBAAc3RvcmFnZS9pbmRleGVkZGIva2V5LXNv
cnQtb3JkZXItZGF0ZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA5O8bVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAAkmyRKsG4aVj0GAABaPAAAMAAYAAAAAAAAAAAApIHKZhAAc3RvcmFnZS9pbmRl
eGVkZGIva2V5LXNvcnQtb3JkZXItZGF0ZS1zdGRlcnIudHh0VVQFAAOTvG1YdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAJZskSnEOimtYCAAA5doAADMAGAAAAAAAAAAAAKSBcW0QAHN0b3JhZ2Uv
aW5kZXhlZGRiL2tleS10eXBlLWFycmF5LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADlbxtWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIACWbJEob+g2GQAYAAMVAAAA0ABgAAAAAAAAAAACkgTZ2EABz
dG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1iaW5hcnktcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOV
vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJZskSq1JDksTBgAAJUIAACwAGAAAAAAAAAAA
AKSB5HwQAHN0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWJpbmFyeS1zdGRlcnIudHh0VVQFAAOV
vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJZskSh9066hjBAAAGBoAADYAGAAAAAAAAAAA
AKSBXYMQAHN0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWluZmluaXR5LXByaXZhdGUtc3RkZXJy
LnR4dFVUBQADlrxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACWbJErmz4HX4wQAAMMcAAAu
ABgAAAAAAAAAAACkgTCIEABzdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1pbmZpbml0eS1zdGRl
cnIudHh0VVQFAAOWvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJZskSjMoSac7BwAAZD0A
ADMAGAAAAAAAAAAAAKSBe40QAHN0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtYXJyYXlzLXByaXZh
dGUtc3RkZXJyLnR4dFVUBQADlrxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACabJEpX7/5g
mAcAAGFAAAArABgAAAAAAAAAAACkgSOVEABzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWFycmF5
cy1zdGRlcnIudHh0VVQFAAOXvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJ5skSvVC/TLA
AwAAVFAAADMAGAAAAAAAAAAAAKSBIJ0QAHN0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtYmFzaWNz
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADmbxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACib
JErzyosv9AQAAMqUAAArABgAAAAAAAAAAACkgU2hEABzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRo
LWJhc2ljcy1zdGRlcnIudHh0VVQFAAObvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKJsk
StYhwvHcBgAA8H8AADIAGAAAAAAAAAAAAKSBpqYQAHN0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgt
ZWRnZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAObvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAKJskSrgC7Pj4BQAAGDsAACoAGAAAAAAAAAAAAKSB7q0QAHN0b3JhZ2UvaW5kZXhlZGRiL2tl
eXBhdGgtZWRnZXMtc3RkZXJyLnR4dFVUBQADnLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ACibJErYpWG9SwUAAAtDAAA2ABgAAAAAAAAAAACkgUq0EABzdG9yYWdlL2luZGV4ZWRkYi9rZXlw
YXRoLWZldGNoLWtleS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA5y8bVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAAomyRK+782+EgGAADPSQAALgAYAAAAAAAAAAAApIEFuhAAc3RvcmFnZS9pbmRl
eGVkZGIva2V5cGF0aC1mZXRjaC1rZXktc3RkZXJyLnR4dFVUBQADnLxtWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIACmbJErQ4EEdjgcAACloAABBABgAAAAAAAAAAACkgbXAEABzdG9yYWdlL2lu
ZGV4ZWRkYi9rZXlwYXRoLWludHJpbnNpYy1wcm9wZXJ0aWVzLXByaXZhdGUtc3RkZXJyLnR4dFVU
BQADnbxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACmbJErANPg8SwgAALd4AAA5ABgAAAAA
AAAAAACkgb7IEABzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWludHJpbnNpYy1wcm9wZXJ0aWVz
LXN0ZGVyci50eHRVVAUAA528bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAApmyRKZu7Md+cA
AADQAgAALQAYAAAAAAAAAAAApIF80RAAc3RvcmFnZS9pbmRleGVkZGIva2V5cmFuZ2UtcHJpdmF0
ZS1zdGRlcnIudHh0VVQFAAOevG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKpskShoM3U+2
CAAA0IsAADoAGAAAAAAAAAAAAKSBytIQAHN0b3JhZ2UvaW5kZXhlZGRiL2xhenktaW5kZXgtcG9w
dWxhdGlvbi1wcml2YXRlLXN0ZGVyci50eHRVVAUAA6C8bVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAqmyRKeOCPyWAJAAAkjwAAMgAYAAAAAAAAAAAApIH02xAAc3RvcmFnZS9pbmRleGVkZGIv
bGF6eS1pbmRleC1wb3B1bGF0aW9uLXN0ZGVyci50eHRVVAUAA6C8bVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAArmyRK+JSXKYUHAAClZAAANQAYAAAAAAAAAAAApIHA5RAAc3RvcmFnZS9pbmRl
eGVkZGIvbGF6eS1pbmRleC10eXBlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA6G8bVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAArmyRKuvO9Qo4IAACPegAALQAYAAAAAAAAAAAApIG07RAAc3Rv
cmFnZS9pbmRleGVkZGIvbGF6eS1pbmRleC10eXBlcy1zdGRlcnIudHh0VVQFAAOhvG1YdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAK5skSlDPgEjsAAAA0AIAADUAGAAAAAAAAAAAAKSBqfYQAHN0
b3JhZ2UvaW5kZXhlZGRiL2xlZ2FjeS1jb25zdGFudHMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOh
vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAK5skSpJqgNq7BQAAY5UAADIAGAAAAAAAAAAA
AKSBBPgQAHN0b3JhZ2UvaW5kZXhlZGRiL2xpc3Qtb3JkZXJpbmctcHJpdmF0ZS1zdGRlcnIudHh0
VVQFAAOivG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALJskSsCOvbZ+BgAAVZYAACoAGAAA
AAAAAAAAAKSBK/4QAHN0b3JhZ2UvaW5kZXhlZGRiL2xpc3Qtb3JkZXJpbmctc3RkZXJyLnR4dFVU
BQADo7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACybJEqurGciVQYAAHRXAAAtABgAAAAA
AAAAAACkgQ0FEQBzdG9yYWdlL2luZGV4ZWRkYi9tZXRhZGF0YS1wcml2YXRlLXN0ZGVyci50eHRV
VAUAA6O8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAsmyRKcdhIUikFAAD5IAAAMgAYAAAA
AAAAAAAApIHJCxEAc3RvcmFnZS9pbmRleGVkZGIvbWV0YWRhdGEtcmFjZS1wcml2YXRlLXN0ZGVy
ci50eHRVVAUAA6S8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAtmyRKuoRTVQ4GAAC6JQAA
KgAYAAAAAAAAAAAApIFeEREAc3RvcmFnZS9pbmRleGVkZGIvbWV0YWRhdGEtcmFjZS1zdGRlcnIu
dHh0VVQFAAOlvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALZskSvuOXvYABwAA7FoAACUA
GAAAAAAAAAAAAKSB0BcRAHN0b3JhZ2UvaW5kZXhlZGRiL21ldGFkYXRhLXN0ZGVyci50eHRVVAUA
A6W8bVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAjliRKAAAAAAAAAAAAAAAAGQAYAAAAAAAA
ABAA7UEvHxEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL1VUBQADIbRtWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAPOaJErWzJ1DQwcAAEB0AAA3ABgAAAAAAAAAAACkgYIfEQBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vYXV0b2luY3JlbWVudC1hYm9ydC1zdGRlcnIudHh0VVQFAAM6vG1YdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA85okSkgdoZ1BBQAAjiAAADUAGAAAAAAAAAAAAKSBNicR
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9iYXNpYy1hZGQtcHJpdmF0ZS1zdGRlcnIudHh0VVQF
AAM6vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9JokStAyTklPBQAAMyAAAC0AGAAAAAAA
AAAAAKSB5iwRAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9iYXNpYy1hZGQtc3RkZXJyLnR4dFVU
BQADO7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPSaJEqwz05QCgUAAMQcAAA1ABgAAAAA
AAAAAACkgZwyEQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYmFzaWMtcHV0LXByaXZhdGUtc3Rk
ZXJyLnR4dFVUBQADO7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPSaJEoc4gaBGQUAAP0c
AAAtABgAAAAAAAAAAACkgRU4EQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYmFzaWMtcHV0LXN0
ZGVyci50eHRVVAUAAzu8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD0miRK75J7szMGAAAk
MgAAOQAYAAAAAAAAAAAApIGVPREAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2JpbmFyeS1rZXlz
LTEtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAM8vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
9JokSqhGCujiBgAAczYAADEAGAAAAAAAAAAAAKSBO0QRAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9iaW5hcnkta2V5cy0xLXN0ZGVyci50eHRVVAUAAzy8bVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAD1miRK2hcIMZgHAADsRwAALwAYAAAAAAAAAAAApIGISxEAc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2Jsb2ItY3Vyc29yLXN0ZGVyci50eHRVVAUAAz68bVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAD2miRKYpYR+XUKAAB6uwAALwAYAAAAAAAAAAAApIGJUxEAc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL2Jsb2Itc2ltcGxlLXN0ZGVyci50eHRVVAUAAz+8bVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAD2miRKBVo1rd8KAADHugAANwAYAAAAAAAAAAAApIFnXhEAc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2Jsb2Itc2ltcGxlLXdvcmtlcnMtc3RkZXJyLnR4dFVUBQADP7xtWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAPaaJEqlDO25TwYAAII3AAAyABgAAAAAAAAAAACkgbdpEQBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYmxvYi1zdmctaW1hZ2Utc3RkZXJyLnR4dFVUBQADQLxt
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPeaJErsm3HRlwYAAPw1AABEABgAAAAAAAAAAACk
gXJwEQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYmxvY2tlZC1vcGVuLWRiLXJlcXVlc3RzLXBy
aXZhdGUtc3RkZXJyLnR4dFVUBQADQbxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPeaJEp4
uH5H8QYAAFk2AAA8ABgAAAAAAAAAAACkgYd3EQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYmxv
Y2tlZC1vcGVuLWRiLXJlcXVlc3RzLXN0ZGVyci50eHRVVAUAA0G8bVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAD3miRKSx+6JXEGAAAqMwAAQQAYAAAAAAAAAAAApIHufhEAc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2NyZWF0ZS1pbmRleC1mYWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUA
A0G8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD3miRKfSXhf4UGAABAMAAAOQAYAAAAAAAA
AAAApIHahREAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2NyZWF0ZS1pbmRleC1mYWlsdXJlcy1z
dGRlcnIudHh0VVQFAANCvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA95okSjgb0wdmBgAA
AEkAAEMAGAAAAAAAAAAAAKSB0owRAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jcmVhdGVvYmpl
Y3RzdG9yZS1iYXNpYy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA0K8bVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAD3miRKP2GMxo8GAACcSgAAOwAYAAAAAAAAAAAApIG1kxEAc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2NyZWF0ZW9iamVjdHN0b3JlLWJhc2ljLXN0ZGVyci50eHRVVAUAA0K8bVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD4miRKrcqAhtIEAAC6HAAARgAYAAAAAAAAAAAApIG5
mhEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2NyZWF0ZW9iamVjdHN0b3JlLWZhaWx1cmVzLXBy
aXZhdGUtc3RkZXJyLnR4dFVUBQADQ7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPiaJEpd
4a4BfQQAAM0ZAAA+ABgAAAAAAAAAAACkgQugEQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Jl
YXRlb2JqZWN0c3RvcmUtZmFpbHVyZXMtc3RkZXJyLnR4dFVUBQADQ7xtWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAPiaJEpghHQ4wAYAAKxvAAA0ABgAAAAAAAAAAACkgQClEQBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTEtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANDvG1YdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA+JokSiAy2CopBwAArnsAACwAGAAAAAAAAAAAAKSBLqwRAHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItMS1zdGRlcnIudHh0VVQFAANEvG1YdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA+ZokSjmU76ZLBwAAc5QAADQAGAAAAAAAAAAAAKSBvbMRAHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItMi1wcml2YXRlLXN0ZGVyci50eHRVVAUAA0W8
bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD5miRKz7CNZxUIAABpqwAALAAYAAAAAAAAAAAA
pIF2uxEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci0yLXN0ZGVyci50eHRVVAUAA0W8
bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD5miRKOsSXAMQGAAD/ZQAANAAYAAAAAAAAAAAA
pIHxwxEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci0zLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADRrxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPmaJErAbzAfgQcAABJ7AAAsABgA
AAAAAAAAAACkgSPLEQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTMtc3RkZXJyLnR4
dFVUBQADRrxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPqaJEot9fFAlgYAAGNfAAA0ABgA
AAAAAAAAAACkgQrTEQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTQtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAANHvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+pokSmNvk7dgBwAA
aHEAACwAGAAAAAAAAAAAAKSBDtoRAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItNC1z
dGRlcnIudHh0VVQFAANHvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+pokSvPv9it+BgAA
JTUAADQAGAAAAAAAAAAAAKSB1OERAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItNS1w
cml2YXRlLXN0ZGVyci50eHRVVAUAA0e8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD6miRK
lYCuPfQGAABtOQAALAAYAAAAAAAAAAAApIHA6BEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1
cnNvci01LXN0ZGVyci50eHRVVAUAA0i8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD6miRK
5crxG3EGAACDNAAANAAYAAAAAAAAAAAApIEa8BEAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1
cnNvci02LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADSLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAPqaJErulnoU+QYAABc5AAAsABgAAAAAAAAAAACkgfn2EQBzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vY3Vyc29yLTYtc3RkZXJyLnR4dFVUBQADSLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAPuaJErU/yC6KwYAACYuAAA0ABgAAAAAAAAAAACkgVj+EQBzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vY3Vyc29yLTctcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANJvG1YdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA+5okSjS8NPmZBgAAvzAAACwAGAAAAAAAAAAAAKSB8QQSAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9jdXJzb3ItNy1zdGRlcnIudHh0VVQFAANJvG1YdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA+5okStj1aSowBgAAwi0AADQAGAAAAAAAAAAAAKSB8AsSAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9jdXJzb3ItOC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA0m8bVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAD7miRK99esfZgGAAALMQAALAAYAAAAAAAAAAAApIGOEhIAc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci04LXN0ZGVyci50eHRVVAUAA0m8bVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAD7miRKIhSmm5cGAAAOSAAANgAYAAAAAAAAAAAApIGMGRIAc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2RhdGUtYmFzaWMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANK
vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA/JokSg+/dSPQBgAArUkAAC4AGAAAAAAAAAAA
AKSBkyASAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kYXRlLWJhc2ljLXN0ZGVyci50eHRVVAUA
A0u8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD8miRKpIceFbEFAADHMAAAPAAYAAAAAAAA
AAAApIHLJxIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWRhdGFiYXNlLTEtcHJpdmF0
ZS1zdGRlcnIudHh0VVQFAANLvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA/JokSnuge7HK
BQAADzIAADQAGAAAAAAAAAAAAKSB8i0SAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVk
YXRhYmFzZS0xLXN0ZGVyci50eHRVVAUAA0u8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD8
miRKTBn+0EoGAACfNAAAPAAYAAAAAAAAAAAApIEqNBIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L2RlbGV0ZWRhdGFiYXNlLTItcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANMvG1YdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA/JokSpRmZ/FwBgAAsjQAADQAGAAAAAAAAAAAAKSB6joSAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFzZS0yLXN0ZGVyci50eHRVVAUAA0y8bVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAD8miRK0aoOUtgAAADOAgAATgAYAAAAAAAAAAAApIHIQRIA
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWRhdGFiYXNlLW51bGwtbmFtZS1leGNlcHRp
b24tcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANMvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
/JokSpIViCZOAQAAnQMAAEgAGAAAAAAAAAAAAKSBKEMSAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9kZWxldGVkYXRhYmFzZS1yZXF1ZXN0LWV2ZW50LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADTLxt
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAP2aJEq1etgpigEAAEIEAABAABgAAAAAAAAAAACk
gfhEEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2UtcmVxdWVzdC1ldmVu
dC1zdGRlcnIudHh0VVQFAANNvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA/ZokSmA29DJW
AAAAmQAAAEIAGAAAAAAAAAAAAKSB/EYSAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVk
YXRhYmFzZS1yZXF1ZXN0LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADTbxtWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAP2aJErBKy2yDwEAACEDAAA6ABgAAAAAAAAAAACkgc5HEgBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2UtcmVxdWVzdC1zdGRlcnIudHh0VVQFAANNvG1Y
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA/ZokSoBTXRObBwAAhj0AADkAGAAAAAAAAAAAAKSB
UUkSAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVpbmRleC0xLXByaXZhdGUtc3RkZXJy
LnR4dFVUBQADTbxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAP2aJEoiRpC+yggAADNEAAAx
ABgAAAAAAAAAAACkgV9REgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlaW5kZXgtMS1z
dGRlcnIudHh0VVQFAANNvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA/ZokSrDoYG0aCAAA
6lkAADkAGAAAAAAAAAAAAKSBlFoSAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVpbmRl
eC0yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADTrxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AP2aJEqQT9U0kgkAALdmAAAxABgAAAAAAAAAAACkgSFjEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vZGVsZXRlaW5kZXgtMi1zdGRlcnIudHh0VVQFAANOvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAAJskSsQFOSuoBQAAGScAADkAGAAAAAAAAAAAAKSBHm0SAHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9kZWxldGVpbmRleC0zLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADT7xtWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAACbJEq4kWEpMgYAAJcrAAAxABgAAAAAAAAAAACkgTlzEgBzdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlaW5kZXgtMy1zdGRlcnIudHh0VVQFAANPvG1YdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAAJskSl7uUxPUBQAAEzEAADkAGAAAAAAAAAAAAKSB1nkS
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVpbmRleC00LXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADT7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAACbJEon1XDI4wcAAEd0AAA/ABgA
AAAAAAAAAACkgR2AEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlb2JqZWN0c3RvcmUt
MS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA0+8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAA
myRKDq9OehgIAAAuegAANwAYAAAAAAAAAAAApIF5iBIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L2RlbGV0ZW9iamVjdHN0b3JlLTEtc3RkZXJyLnR4dFVUBQADULxtWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAACbJErljLK84AMAAH4VAAA4ABgAAAAAAAAAAACkgQKREgBzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vZG91YmxlLWFib3J0LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADULxtWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAACbJEoFJjfJAQQAAM0TAAAwABgAAAAAAAAAAACkgVSVEgBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZG91YmxlLWFib3J0LXN0ZGVyci50eHRVVAUAA1C8bVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAABmyRKPprQwm4DAACUEwAANwAYAAAAAAAAAAAApIG/
mRIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1vcGVuLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADUbxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAGbJEqBlKwRtAMAAG8XAAAvABgA
AAAAAAAAAACkgZ6dEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZG91YmxlLW9wZW4tc3RkZXJy
LnR4dFVUBQADUbxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAGbJEoYpB+WswQAAEwmAAA+
ABgAAAAAAAAAAACkgbuhEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZ2MtY2xvc2VzLWRhdGFi
YXNlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADUbxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AAGbJEoa0/IA3QQAAJYmAAA2ABgAAAAAAAAAAACkgeamEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vZ2MtY2xvc2VzLWRhdGFiYXNlLXN0ZGVyci50eHRVVAUAA1K8bVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAABmyRKWq+jX3AGAAC+OgAAPgAYAAAAAAAAAAAApIEzrBIAc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2dldC1pbmRleC1mYWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA1K8
bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAABmyRKLNgNMtQGAADzOQAANgAYAAAAAAAAAAAA
pIEbsxIAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2dldC1pbmRleC1mYWlsdXJlcy1zdGRlcnIu
dHh0VVQFAANSvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAApskSo9Kj6OlDAAA9jwCADgA
GAAAAAAAAAAAAKSBX7oSAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9nZXQta2V5cmFuZ2UtcHJp
dmF0ZS1zdGRlcnIudHh0VVQFAANUvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAA5skSsHh
yF6zCwAAyFoCADAAGAAAAAAAAAAAAKSBdscSAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9nZXQt
a2V5cmFuZ2Utc3RkZXJyLnR4dFVUBQADVbxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAOb
JEoOVsG11wUAADolAAA2ABgAAAAAAAAAAACkgZPTEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
aGFuZGxlLXVzZXItZGVsZXRlLXN0ZGVyci50eHRVVAUAA1W8bVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAEmyRK4MiHpnQSAABZ9QIATAAYAAAAAAAAAAAApIHa2RIAc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL2lkYmN1cnNvci1jb250aW51ZS1wcmltYXJ5LWtleS0xLXByaXZhdGUtc3RkZXJy
LnR4dFVUBQADV7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAWbJErbzRWYehMAADxgAwBE
ABgAAAAAAAAAAACkgdTsEgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiY3Vyc29yLWNvbnRp
bnVlLXByaW1hcnkta2V5LTEtc3RkZXJyLnR4dFVUBQADWrxtWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAAWbJEq7Tf67lgYAAMRDAABSABgAAAAAAAAAAACkgcwAEwBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vaWRiZGF0YWJhc2UtZGVsZXRlb2JqZWN0c3RvcmUtZmFpbHVyZXMtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAANavG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABZskSqgjqB1hBgAA
nDoAAEoAGAAAAAAAAAAAAKSB7gcTAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJkYXRhYmFz
ZS1kZWxldGVvYmplY3RzdG9yZS1mYWlsdXJlcy1zdGRlcnIudHh0VVQFAANavG1YdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgABpskSktvjBvFBAAArxoAAEwAGAAAAAAAAAAAAKSB0w4TAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9pZGJkYXRhYmFzZS10cmFuc2FjdGlvbi1mYWlsdXJlcy1wcml2
YXRlLXN0ZGVyci50eHRVVAUAA1u8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAGmyRKkKYQ
G+EEAAAtGwAARAAYAAAAAAAAAAAApIEeFBMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYmRh
dGFiYXNlLXRyYW5zYWN0aW9uLWZhaWx1cmVzLXN0ZGVyci50eHRVVAUAA1u8bVh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAGmyRK9rGsKSQHAADIWwAAPQAYAAAAAAAAAAAApIF9GRMAc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2lkYmluZGV4LWdldGFsbC0xLXByaXZhdGUtc3RkZXJyLnR4dFVU
BQADW7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAabJEpKUoJPNQgAAKd1AAA1ABgAAAAA
AAAAAACkgRghEwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiaW5kZXgtZ2V0YWxsLTEtc3Rk
ZXJyLnR4dFVUBQADXLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAabJEoFEAIQXQcAAEpd
AABBABgAAAAAAAAAAACkgbwpEwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiaW5kZXgtZ2V0
YWxsa2V5cy0xLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADXLxtWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAAebJEq2+aunGggAAMN1AAA5ABgAAAAAAAAAAACkgZQxEwBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vaWRiaW5kZXgtZ2V0YWxsa2V5cy0xLXN0ZGVyci50eHRVVAUAA128bVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAHmyRK6YS/bcIFAACUPQAARQAYAAAAAAAAAAAApIEhOhMAc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYmluZGV4LXByb3BlcnRpZXMtYmFzaWMtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAANdvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAB5skSgp1srTpBQAA
wTwAAD0AGAAAAAAAAAAAAKSBYkATAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJpbmRleC1w
cm9wZXJ0aWVzLWJhc2ljLXN0ZGVyci50eHRVVAUAA168bVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAImyRKkLefu1EVAADzpQYAQQAYAAAAAAAAAAAApIHCRhMAc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2lkYmtleS1hcnJheS1lcXVhbGl0eS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA2C8bVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAKmyRK4eaI/wQWAACv3gcAOQAYAAAAAAAAAAAApIGO
XBMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYmtleS1hcnJheS1lcXVhbGl0eS1zdGRlcnIu
dHh0VVQFAANjvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACpskSuZdiI/8BwAAfoEAAEIA
GAAAAAAAAAAAAKSBBXMTAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1j
bGVhci0xLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADY7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAAqbJEqF9TUYkgcAAICCAAA6ABgAAAAAAAAAAACkgX17EwBzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vaWRib2JqZWN0c3RvcmUtY2xlYXItMS1zdGRlcnIudHh0VVQFAANkvG1YdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgACpskSsxhkp3hCAAAK60AAEIAGAAAAAAAAAAAAKSBg4MTAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1jbGVhci0yLXByaXZhdGUtc3RkZXJy
LnR4dFVUBQADZLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAubJEpKRCVx8ggAAMGxAAA6
ABgAAAAAAAAAAACkgeCMEwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUt
Y2xlYXItMi1zdGRlcnIudHh0VVQFAANlvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAC5sk
SheQkqkzBwAAHMkAAEIAGAAAAAAAAAAAAKSBRpYTAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9p
ZGJvYmplY3RzdG9yZS1jb3VudC0xLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADZbxtWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAAubJEr08x/U5AkAAJ9RAQA6ABgAAAAAAAAAAACkgfWdEwBzdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtY291bnQtMS1zdGRlcnIudHh0VVQF
AANmvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAC5skShdCnBUpBgAAzzIAAEkAGAAAAAAA
AAAAAKSBTagTAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1jb3VudC1m
YWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA2a8bVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAMmyRKEK7DrE8GAABxMwAAQQAYAAAAAAAAAAAApIH5rhMAc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2lkYm9iamVjdHN0b3JlLWNvdW50LWZhaWx1cmVzLXN0ZGVyci50eHRVVAUAA2e8bVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAMmyRKxLbEe28MAADf3AEAQwAYAAAAAAAAAAAApIHD
tRMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS0xLXByaXZh
dGUtc3RkZXJyLnR4dFVUBQADaLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA2bJEqwP7Im
VBIAAKCDAwA7ABgAAAAAAAAAAACkga/CEwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2Jq
ZWN0c3RvcmUtZGVsZXRlLTEtc3RkZXJyLnR4dFVUBQADabxtWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAA2bJEqFk3S0zwYAAPg5AABDABgAAAAAAAAAAACkgXjVEwBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVsZXRlLTItcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANp
vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADZskSq9yEXDhBgAAsDkAADsAGAAAAAAAAAAA
AKSBxNwTAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1kZWxldGUtMi1z
dGRlcnIudHh0VVQFAANpvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADZskSgtOPl9pBgAA
eT0AAEoAGAAAAAAAAAAAAKSBGuQTAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3Rz
dG9yZS1kZWxldGUtZmFpbHVyZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANqvG1YdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgADZskSmHhuRLBBgAAyT0AAEIAGAAAAAAAAAAAAKSBB+sTAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1kZWxldGUtZmFpbHVyZXMtc3RkZXJy
LnR4dFVUBQADarxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA2bJErAMSwlMAYAAG8zAABH
ABgAAAAAAAAAAACkgUTyEwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUt
Z2V0LWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADarxtWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAA6bJEqCC/wBTQYAAG8zAAA/ABgAAAAAAAAAAACkgfX4EwBzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZ2V0LWZhaWx1cmVzLXN0ZGVyci50eHRVVAUAA2u8
bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAOmyRK1sUgTTcGAAC6SAAAQwAYAAAAAAAAAAAA
pIG7/xMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWdldGFsbC0xLXBy
aXZhdGUtc3RkZXJyLnR4dFVUBQADa7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA6bJEpS
8L90uAYAADxPAAA7ABgAAAAAAAAAAACkgW8GFABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRi
b2JqZWN0c3RvcmUtZ2V0YWxsLTEtc3RkZXJyLnR4dFVUBQADa7xtWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAA6bJEqbmEjmggYAAHtMAABHABgAAAAAAAAAAACkgZwNFABzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZ2V0YWxsa2V5cy0xLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADbLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA6bJEqXK3xXjAYAAFxPAAA/ABgA
AAAAAAAAAACkgZ8UFABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZ2V0
YWxsa2V5cy0xLXN0ZGVyci50eHRVVAUAA2y8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAP
myRKN1EGknMGAAAhRQAAQwAYAAAAAAAAAAAApIGkGxQAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L2lkYm9iamVjdHN0b3JlLWdldGtleS0xLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADbbxtWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAA+bJEoNLYeUjQYAAGJIAAA7ABgAAAAAAAAAAACkgZQiFABz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZ2V0a2V5LTEtc3RkZXJyLnR4
dFVUBQADbbxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA+bJEqPP7d5nwYAADNBAABRABgA
AAAAAAAAAACkgZYpFABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtcHV0
LWFuZC1jbGVhci1mYWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA228bVh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAPmyRK52KawsgGAADQPQAASQAYAAAAAAAAAAAApIHAMBQAc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLXB1dC1hbmQtY2xlYXItZmFpbHVyZXMt
c3RkZXJyLnR4dFVUBQADbrxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA+bJErTlx1QtAMA
AH0SAABPABgAAAAAAAAAAACkgQs4FABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRidHJhbnNh
Y3Rpb24tb2JqZWN0c3RvcmUtZmFpbHVyZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANuvG1YdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAD5skStBZNTg5BAAAvBQAAEcAGAAAAAAAAAAAAKSBSDwU
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJ0cmFuc2FjdGlvbi1vYmplY3RzdG9yZS1mYWls
dXJlcy1zdGRlcnIudHh0VVQFAANuvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAD5skSnST
qoA9BQAAiCkAAEkAGAAAAAAAAAAAAKSBAkEUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJ0
cmFuc2FjdGlvbi1vYmplY3RzdG9yZXMtMS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA268bVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAQmyRKswlIWxUFAACzJwAAQQAYAAAAAAAAAAAApIHCRhQA
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYnRyYW5zYWN0aW9uLW9iamVjdHN0b3Jlcy0xLXN0
ZGVyci50eHRVVAUAA2+8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAQmyRKKWE4ES8BAADk
BAAARQAYAAAAAAAAAAAApIFSTBQAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYnZlcnNpb25j
aGFuZ2VldmVudC1jb25zdHJ1Y3Rvci1zdGRlcnIudHh0VVQFAANvvG1YdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAEJskSm7P+gi2CQAAlYkBADMAGAAAAAAAAAAAAKSBAE4UAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9pbmRleC0xLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADcLxtWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIABGbJErejt/usQsAAMylAQArABgAAAAAAAAAAACkgSNYFABzdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtMS1zdGRlcnIudHh0VVQFAANxvG1YdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAEZskSs+GvSDCDwAA5KMBADMAGAAAAAAAAAAAAKSBOWQUAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC0yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADcrxtWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABKbJEp2JpVQxw4AAAK1AQArABgAAAAAAAAAAACkgWh0
FABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtMi1zdGRlcnIudHh0VVQFAANzvG1YdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAEpskSjTCV+DJBgAA0FUAADMAGAAAAAAAAAAAAKSBlIMU
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC0zLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD
dLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABKbJEqwPv7EwAcAAG5kAAArABgAAAAAAAAA
AACkgcqKFABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtMy1zdGRlcnIudHh0VVQFAAN0
vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAEpskSvvZ1b6yBwAA4JsAADMAGAAAAAAAAAAA
AKSB75IUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC00LXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADdLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABObJEqEtV4Q0AkAAPLLAAArABgA
AAAAAAAAAACkgQ6bFABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtNC1zdGRlcnIudHh0
VVQFAAN1vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAE5skSgYKzuASBgAAjyYAADMAGAAA
AAAAAAAAAKSBQ6UUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC01LXByaXZhdGUtc3Rk
ZXJyLnR4dFVUBQADdbxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABObJEp3tH5nPwYAAAIl
AAArABgAAAAAAAAAAACkgcKrFABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtNS1zdGRl
cnIudHh0VVQFAAN1vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAE5skSsxgGLcWCQAAGlEB
ADoAGAAAAAAAAAAAAKSBZrIUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1jdXJzb3It
MS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA3a8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAU
myRKmVvGDZcLAAA3swEAMgAYAAAAAAAAAAAApIHwuxQAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L2luZGV4LWN1cnNvci0xLXN0ZGVyci50eHRVVAUAA3i8bVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAVmyRKHiwc9JAJAACvcwEAOgAYAAAAAAAAAAAApIHzxxQAc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2luZGV4LWN1cnNvci0yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADebxtWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIABWbJEr95DUbQgsAADjTAQAyABgAAAAAAAAAAACkgffRFABzdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtY3Vyc29yLTItc3RkZXJyLnR4dFVUBQADerxtWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABabJEqQtf0KUBEAADRvAgA6ABgAAAAAAAAAAACkgaXd
FABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtY3Vyc29yLTMtcHJpdmF0ZS1zdGRlcnIu
dHh0VVQFAAN8vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAF5skSgnAGOsbFwAAZjkDADIA
GAAAAAAAAAAAAKSBae8UAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1jdXJzb3ItMy1z
dGRlcnIudHh0VVQFAAN9vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAF5skSlWVSp47BgAA
JikAAEEAGAAAAAAAAAAAAKSB8AYVAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1nZXQt
Y291bnQtYmFzaWMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAN+vG1YdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAF5skSiHly1PcBgAACSoAADkAGAAAAAAAAAAAAKSBpg0VAHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9pbmRleC1nZXQtY291bnQtYmFzaWMtc3RkZXJyLnR4dFVUBQADfrxtWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIABebJEobr2KwtQYAAMk4AABEABgAAAAAAAAAAACkgfUUFQBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtZ2V0LWNvdW50LWZhaWx1cmVzLXByaXZhdGUt
c3RkZXJyLnR4dFVUBQADfrxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABibJEq2H+8NqwcA
AO87AAA8ABgAAAAAAAAAAACkgSgcFQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtZ2V0
LWNvdW50LWZhaWx1cmVzLXN0ZGVyci50eHRVVAUAA3+8bVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAYmyRKq/ZKQSkHAABqSQAAOgAYAAAAAAAAAAAApIFJJBUAc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2luZGV4LXJlbmFtZS0xLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADf7xtWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIABibJEoa2Bt7pQcAAEhNAAAyABgAAAAAAAAAAACkgeYrFQBzdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtcmVuYW1lLTEtc3RkZXJyLnR4dFVUBQADf7xtWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABibJEqOgnj1PAUAABQpAAA5ABgAAAAAAAAAAACkgfcz
FQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4va2V5cGF0aC1iYXNpYy1wcml2YXRlLXN0ZGVyci50
eHRVVAUAA4C8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAYmyRKVBl/dxAFAAAvJwAAMQAY
AAAAAAAAAAAApIGmORUAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2tleXBhdGgtYmFzaWMtc3Rk
ZXJyLnR4dFVUBQADgLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABmbJEpB2XpELwUAAHoj
AAAqABgAAAAAAAAAAACkgSE/FQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vbGVhay0xLXN0ZGVy
ci50eHRVVAUAA4G8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAZmyRKg8yHFLQIAACfDQIA
VQAYAAAAAAAAAAAApIG0RBUAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL21lbW9yeS1pbmRleC1u
b3QtZGVsZXRlZC13aXRoLW9iamVjdHN0b3JlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADgrxtWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABqbJErHTpcMfwkAALMaAgBNABgAAAAAAAAAAACkgfdN
FQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vbWVtb3J5LWluZGV4LW5vdC1kZWxldGVkLXdpdGgt
b2JqZWN0c3RvcmUtc3RkZXJyLnR4dFVUBQADg7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ABqbJEo9m6BUHggAAKRwAABXABgAAAAAAAAAAACkgf1XFQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vbXVsdGlwbGUtb2JqZWN0c3RvcmUtaW5kZXgtY3Vyc29yLWNvbGxpc2lvbi1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA4O8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAamyRKt9uVO+sIAACA
gwAATwAYAAAAAAAAAAAApIGsYBUAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL211bHRpcGxlLW9i
amVjdHN0b3JlLWluZGV4LWN1cnNvci1jb2xsaXNpb24tc3RkZXJyLnR4dFVUBQADg7xtWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIABqbJErMCrSLEAYAAOYvAABCABgAAAAAAAAAAACkgSBqFQBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vbmV3LWRhdGFiYXNlLWFmdGVyLXVzZXItZGVsZXRlLXN0
ZGVyci50eHRVVAUAA4S8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAamyRKmjvU+78FAAB6
MQAAQgAYAAAAAAAAAAAApIGscBUAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3Jl
LWF0dHJpYnV0ZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOEvG1YdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAGpskSh2ghQbRBQAAwzAAADoAGAAAAAAAAAAAAKSB53YVAHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9vYmplY3RzdG9yZS1hdHRyaWJ1dGVzLXN0ZGVyci50eHRVVAUAA4S8bVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAbmyRK0kaZucEJAAA1nQAATwAYAAAAAAAAAAAApIEsfRUA
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWN1cnNvci1hZHZhbmNlLWZhaWx1
cmVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADhbxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ABubJEq89FPr9gkAANemAABHABgAAAAAAAAAAACkgXaHFQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vb2JqZWN0c3RvcmUtY3Vyc29yLWFkdmFuY2UtZmFpbHVyZXMtc3RkZXJyLnR4dFVUBQADhbxt
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABubJEr4fi3siQkAAPOiAABQABgAAAAAAAAAAACk
ge2RFQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb2JqZWN0c3RvcmUtY3Vyc29yLWNvbnRpbnVl
LWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADhrxtWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIABubJEoStaW9HgoAADOtAABIABgAAAAAAAAAAACkgQCcFQBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vb2JqZWN0c3RvcmUtY3Vyc29yLWNvbnRpbnVlLWZhaWx1cmVzLXN0ZGVyci50eHRV
VAUAA4a8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAbmyRKxj+KsoEGAACwPgAAQAAYAAAA
AAAAAAAApIGgphUAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLXJlbmFtZS0x
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADhrxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAByb
JEp8YdB+ggYAAGE/AAA4ABgAAAAAAAAAAACkgZutFQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
b2JqZWN0c3RvcmUtcmVuYW1lLTEtc3RkZXJyLnR4dFVUBQADh7xtWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIABybJEpJzTuquwYAAOc7AAA/ABgAAAAAAAAAAACkgY+0FQBzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vb3BlbmN1cnNvci1mYWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA4e8
bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAcmyRKjXzAnjwHAAAAPQAANwAYAAAAAAAAAAAA
pIHDuxUAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5jdXJzb3ItZmFpbHVyZXMtc3RkZXJy
LnR4dFVUBQADh7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABybJEqqgK5yqAIAAKQKAABG
ABgAAAAAAAAAAACkgXDDFQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXJl
cXVlc3QtZXZlbnQtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOIvG1YdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAHJskSuZSuygMAwAATQwAAD4AGAAAAAAAAAAAAKSBmMYVAHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9vcGVuZGF0YWJhc2UtcmVxdWVzdC1ldmVudC1zdGRlcnIudHh0VVQFAAOIvG1Y
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHJskSnwRpeNzAQAAIwUAAEAAGAAAAAAAAAAAAKSB
HMoVAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuZGF0YWJhc2UtcmVxdWVzdC1wcml2YXRl
LXN0ZGVyci50eHRVVAUAA4i8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAcmyRKrrppQDYB
AABpBgAAOAAYAAAAAAAAAAAApIEJzBUAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRh
YmFzZS1yZXF1ZXN0LXN0ZGVyci50eHRVVAUAA4i8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAAcmyRKVmcixygEAADdJAAAVAAYAAAAAAAAAAAApIGxzRUAc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL29wZW5kYXRhYmFzZS1zdWNjZXNzLWFmdGVyLXZlcnNpb25jaGFuZ2UtcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAAOIvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHZskSpkZYyhrBAAAXCYA
AEwAGAAAAAAAAAAAAKSBZ9IVAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuZGF0YWJhc2Ut
c3VjY2Vzcy1hZnRlci12ZXJzaW9uY2hhbmdlLXN0ZGVyci50eHRVVAUAA4m8bVh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAdmyRKmU5UcIQEAAAgMQAAQQAYAAAAAAAAAAAApIFY1xUAc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRhYmFzZS12ZXJzaW9ucy1wcml2YXRlLXN0ZGVyci50
eHRVVAUAA4m8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAdmyRKxFhWFI0EAAC5LAAAOQAY
AAAAAAAAAAAApIFX3BUAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRhYmFzZS12ZXJz
aW9ucy1zdGRlcnIudHh0VVQFAAOJvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHZskSk4g
hjoBBQAArB4AAD4AGAAAAAAAAAAAAKSBV+EVAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9yZXF1
ZXN0LXJlYWR5c3RhdGUtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOJvG1YdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAHZskSgC+4oONBQAA9iEAADYAGAAAAAAAAAAAAKSB0OYVAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9yZXF1ZXN0LXJlYWR5c3RhdGUtc3RkZXJyLnR4dFVUBQADirxtWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAB2bJEqpYOgyogYAABE7AABDABgAAAAAAAAAAACkgc3sFQBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTEtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAAOKvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHZskSqaQB84rBwAA
VkoAAEMAGAAAAAAAAAAAAKSB7PMVAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlv
bi1zY2hlZHVsZXItMi1wcml2YXRlLXN0ZGVyci50eHRVVAUAA4q8bVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAAdmyRK6NcY3PkGAAAOSwAAQwAYAAAAAAAAAAAApIGU+xUAc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVkdWxlci0zLXByaXZhdGUtc3RkZXJyLnR4dFVU
BQADirxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACCbJEp1KU6rtwYAAMhAAAA7ABgAAAAA
AAAAAACkgQoDFgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVy
LTMtc3RkZXJyLnR4dFVUBQADi7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACCbJErk89iJ
ogYAAM91AABDABgAAAAAAAAAAACkgTYKFgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNh
Y3Rpb24tc2NoZWR1bGVyLTQtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOLvG1YdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAIJskSs5VbFL/BgAAPn4AADsAGAAAAAAAAAAAAKSBVREWAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbi1zY2hlZHVsZXItNC1zdGRlcnIudHh0VVQFAAOL
vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIJskSnHCjLQjBwAAllQAAEMAGAAAAAAAAAAA
AKSByRgWAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbi1zY2hlZHVsZXItNS1w
cml2YXRlLXN0ZGVyci50eHRVVAUAA4y8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAgmyRK
TNGfw5cGAABhSQAAQwAYAAAAAAAAAAAApIFpIBYAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Ry
YW5zYWN0aW9uLXNjaGVkdWxlci02LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADjLxtWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIACGbJEor02N9RAUAAAYyAABLABgAAAAAAAAAAACkgX0nFgBzdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb25zLXN0b3Atb24tbmF2aWdhdGlvbi1wcml2
YXRlLXN0ZGVyci50eHRVVAUAA428bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAhmyRKbf+f
JgMHAADNdQAAQwAYAAAAAAAAAAAApIFGLRYAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5z
YWN0aW9ucy1zdG9wLW9uLW5hdmlnYXRpb24tc3RkZXJyLnR4dFVUBQADjbxtWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIACGbJErPg0v5AAUAAEk1AABLABgAAAAAAAAAAACkgcY0FgBzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1hYm9ydC10aGVuLXJlb3Blbi1wcml2YXRl
LXN0ZGVyci50eHRVVAUAA428bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAhmyRK3bLDG3cF
AAC8PgAAQwAYAAAAAAAAAAAApIFLOhYAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3ZlcnNpb25j
aGFuZ2UtYWJvcnQtdGhlbi1yZW9wZW4tc3RkZXJyLnR4dFVUBQADjrxtWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIACGbJEpqPAOgNAUAAF4rAAA/ABgAAAAAAAAAAACkgT9AFgBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1ldmVudC1wcml2YXRlLXN0ZGVyci50eHRVVAUA
A468bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAhmyRKVI5xnlwFAADIKwAANwAYAAAAAAAA
AAAApIHsRRYAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3ZlcnNpb25jaGFuZ2UtZXZlbnQtc3Rk
ZXJyLnR4dFVUBQADjrxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACKbJEpGV7H1VgEAABIF
AAA0ABgAAAAAAAAAAACkgblLFgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vd29ya2Vycy1kaXNh
YmxlZC1zdGRlcnIudHh0VVQFAAOPvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALZskSiKy
0vF/BwAAvHMAADQAGAAAAAAAAAAAAKSBfU0WAHN0b3JhZ2UvaW5kZXhlZGRiL211dGF0aW5nLWN1
cnNvci1wcml2YXRlLXN0ZGVyci50eHRVVAUAA6a8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAAtmyRKBy8JzSYIAACRgQAALAAYAAAAAAAAAAAApIFqVRYAc3RvcmFnZS9pbmRleGVkZGIvbXV0
YXRpbmctY3Vyc29yLXN0ZGVyci50eHRVVAUAA6a8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAAtmyRKcEmyAF4EAABfFwAARAAYAAAAAAAAAAAApIH2XRYAc3RvcmFnZS9pbmRleGVkZGIvb2Jq
ZWN0LWxvb2t1cHMtaW4tdmVyc2lvbmNoYW5nZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA6a8bVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAumyRKjasrTHYEAACHGAAAPAAYAAAAAAAAAAAApIHS
YhYAc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0LWxvb2t1cHMtaW4tdmVyc2lvbmNoYW5nZS1zdGRl
cnIudHh0VVQFAAOnvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALpskSjUrvIZSAwAAsQ8A
AEMAGAAAAAAAAAAAAKSBvmcWAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdFN0b3JlLXJlcXVpcmVk
LWFyZ3VtZW50cy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA6e8bVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAumyRKQGGsBMIDAACREQAAOwAYAAAAAAAAAAAApIGNaxYAc3RvcmFnZS9pbmRleGVk
ZGIvb2JqZWN0U3RvcmUtcmVxdWlyZWQtYXJndW1lbnRzLXN0ZGVyci50eHRVVAUAA6e8bVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAumyRKRSuGIVkIAADWegAAPgAYAAAAAAAAAAAApIHEbxYA
c3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYXV0b2luY3JlbWVudC1wcml2YXRlLXN0ZGVy
ci50eHRVVAUAA6i8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAumyRKWKbnmmsIAADBewAA
NgAYAAAAAAAAAAAApIGVeBYAc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYXV0b2luY3Jl
bWVudC1zdGRlcnIudHh0VVQFAAOovG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAL5skSjt0
5ivQCQAAo5UAADcAGAAAAAAAAAAAAKSBcIEWAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3Jl
LWJhc2ljcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA6m8bVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAwmyRKyasWT6cKAACLmwAALwAYAAAAAAAAAAAApIGxixYAc3RvcmFnZS9pbmRleGVkZGIv
b2JqZWN0c3RvcmUtYmFzaWNzLXN0ZGVyci50eHRVVAUAA6y8bVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAwmyRKdafPaE0LAADBnAAANwAYAAAAAAAAAAAApIHBlhYAc3RvcmFnZS9pbmRleGVk
ZGIvb2JqZWN0c3RvcmUtYmFzaWNzLXdvcmtlcnMtc3RkZXJyLnR4dFVUBQADq7xtWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIADCbJErB1HwIWwcAAFo+AAA2ABgAAAAAAAAAAACkgX+iFgBzdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jbGVhci1wcml2YXRlLXN0ZGVyci50eHRVVAUAA6y8
bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAwmyRK/U78Qa4HAACPQAAALgAYAAAAAAAAAAAA
pIFKqhYAc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY2xlYXItc3RkZXJyLnR4dFVUBQAD
rLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADGbJEqgns/6ywoAAGyzAQA2ABgAAAAAAAAA
AACkgWCyFgBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jb3VudC1wcml2YXRlLXN0ZGVy
ci50eHRVVAUAA628bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAymyRKfA5ZD/8NAACwEQMA
LgAYAAAAAAAAAAAApIGbvRYAc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY291bnQtc3Rk
ZXJyLnR4dFVUBQADr7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADabJEomEFN1RREAACtB
BwA3ABgAAAAAAAAAAACkgQLMFgBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jdXJzb3It
cHJpdmF0ZS1zdGRlcnIudHh0VVQFAAO3vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOZsk
Snd3uxRSFgAANPUIAC8AGAAAAAAAAAAAAKSBuN0WAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0
b3JlLWN1cnNvci1zdGRlcnIudHh0VVQFAAO+vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
OpskSk+5cJM+BwAAiUwAAEIAGAAAAAAAAAAAAKSBc/QWAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVj
dHN0b3JlLXJlbW92ZW9iamVjdHN0b3JlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADv7xtWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIADqbJEr8dcauywcAADFQAAA6ABgAAAAAAAAAAACkgS38FgBz
dG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1yZW1vdmVvYmplY3RzdG9yZS1zdGRlcnIudHh0
VVQFAAO/vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOpskSucUlSKYCAAAvQkBADAAGAAA
AAAAAAAAAKSBbAQXAHN0b3JhZ2UvaW5kZXhlZGRiL29kZC1zdHJpbmdzLXByaXZhdGUtc3RkZXJy
LnR4dFVUBQADwLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADubJErn+uLSTQQAAN4zAAA2
ABgAAAAAAAAAAACkgW4NFwBzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWJhZC12ZXJzaW9ucy1wcml2
YXRlLXN0ZGVyci50eHRVVAUAA8G8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA7myRKJeda
qeADAACFIgAALgAYAAAAAAAAAAAApIErEhcAc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1iYWQtdmVy
c2lvbnMtc3RkZXJyLnR4dFVUBQADwrxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADubJErh
7kHT1QQAAIEjAAAwABgAAAAAAAAAAACkgXMWFwBzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNv
ci1wcml2YXRlLXN0ZGVyci50eHRVVAUAA8K8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA8
myRKJB/d8qMFAAB+KAAAKAAYAAAAAAAAAAAApIGyGxcAc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1j
dXJzb3Itc3RkZXJyLnR4dFVUBQADw7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADybJEpX
g20sSgYAAFQ9AAA8ABgAAAAAAAAAAACkgbchFwBzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWR1cmlu
Zy10cmFuc2FjdGlvbi1wcml2YXRlLXN0ZGVyci50eHRVVAUAA8O8bVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAA8myRKwATGm08GAAAFQQAANAAYAAAAAAAAAAAApIF3KBcAc3RvcmFnZS9pbmRl
eGVkZGIvb3Blbi1kdXJpbmctdHJhbnNhY3Rpb24tc3RkZXJyLnR4dFVUBQADw7xtWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIADybJEqMFwMMAAUAAOo4AAAyABgAAAAAAAAAAACkgTQvFwBzdG9y
YWdlL2luZGV4ZWRkYi9vcGVuLW9yZGVyaW5nLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADw7xtWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADybJEo5DPC1JwUAAB06AAAqABgAAAAAAAAAAACkgaA0
FwBzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLW9yZGVyaW5nLXN0ZGVyci50eHRVVAUAA8S8bVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAA8myRKK9UX3O4DAAAcIgAALwAYAAAAAAAAAAAApIErOhcA
c3RvcmFnZS9pbmRleGVkZGIvb3Blbi10d2ljZS13b3JrZXJzLXN0ZGVyci50eHRVVAUAA8S8bVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA9myRKKpSeUTgJAAB3mwAAMwAYAAAAAAAAAAAApIGC
PhcAc3RvcmFnZS9pbmRleGVkZGIvb3BlbmN1cnNvci1rZXktcHJpdmF0ZS1zdGRlcnIudHh0VVQF
AAPFvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAPZskSozo7krBCQAAqL4AACsAGAAAAAAA
AAAAAKSBJ0gXAHN0b3JhZ2UvaW5kZXhlZGRiL29wZW5jdXJzb3Ita2V5LXN0ZGVyci50eHRVVAUA
A8W8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA9myRKJ9naI8AKAACJHgEANwAYAAAAAAAA
AAAApIFNUhcAc3RvcmFnZS9pbmRleGVkZGIvb3B0aW9uYWwtYXJndW1lbnRzLXByaXZhdGUtc3Rk
ZXJyLnR4dFVUBQADxrxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAD2bJEplI1MXawwAAGRp
AQAvABgAAAAAAAAAAACkgX5dFwBzdG9yYWdlL2luZGV4ZWRkYi9vcHRpb25hbC1hcmd1bWVudHMt
c3RkZXJyLnR4dFVUBQADxrxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAECbJEqmoYTR2AYA
AKI+AAA1ABgAAAAAAAAAAACkgVJqFwBzdG9yYWdlL2luZGV4ZWRkYi9wZW5kaW5nLWFjdGl2aXR5
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADyLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEGb
JErlTHnHZQcAAN5BAAAtABgAAAAAAAAAAACkgZlxFwBzdG9yYWdlL2luZGV4ZWRkYi9wZW5kaW5n
LWFjdGl2aXR5LXN0ZGVyci50eHRVVAUAA8q8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABB
myRK0Lmb0toHAAB8RQAANQAYAAAAAAAAAAAApIFleRcAc3RvcmFnZS9pbmRleGVkZGIvcGVuZGlu
Zy1hY3Rpdml0eS13b3JrZXJzLXN0ZGVyci50eHRVVAUAA8m8bVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABBmyRKIglJZQwFAADQJQAAQwAYAAAAAAAAAAAApIGugRcAc3RvcmFnZS9pbmRleGVk
ZGIvcGVuZGluZy12ZXJzaW9uLWNoYW5nZS1vbi1leGl0LXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD
yrxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEKbJEr0fqxm6AQAALIfAAA7ABgAAAAAAAAA
AACkgTeHFwBzdG9yYWdlL2luZGV4ZWRkYi9wZW5kaW5nLXZlcnNpb24tY2hhbmdlLW9uLWV4aXQt
c3RkZXJyLnR4dFVUBQADy7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEKbJEpm+MS8hwQA
AL8fAABBABgAAAAAAAAAAACkgZSMFwBzdG9yYWdlL2luZGV4ZWRkYi9wZW5kaW5nLXZlcnNpb24t
Y2hhbmdlLXN0dWNrLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADy7xtWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAEKbJErKYuc0vAQAAAokAAA5ABgAAAAAAAAAAACkgZaRFwBzdG9yYWdlL2luZGV4
ZWRkYi9wZW5kaW5nLXZlcnNpb24tY2hhbmdlLXN0dWNrLXN0ZGVyci50eHRVVAUAA8y8bVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABCmyRKio8y/7UEAABJIgAAVgAYAAAAAAAAAAAApIHFlhcA
c3RvcmFnZS9pbmRleGVkZGIvcGVuZGluZy12ZXJzaW9uLWNoYW5nZS1zdHVjay13b3Jrcy13aXRo
LXRlcm1pbmF0ZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA8u8bVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABCmyRK7/POUfQEAAC6JAAATgAYAAAAAAAAAAAApIEKnBcAc3RvcmFnZS9pbmRleGVk
ZGIvcGVuZGluZy12ZXJzaW9uLWNoYW5nZS1zdHVjay13b3Jrcy13aXRoLXRlcm1pbmF0ZS1zdGRl
cnIudHh0VVQFAAPLvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAQpskShu5eyduBgAAn2cA
ADAAGAAAAAAAAAAAAKSBhqEXAHN0b3JhZ2UvaW5kZXhlZGRiL3BlcnNpc3RlbmNlLXByaXZhdGUt
c3RkZXJyLnR4dFVUBQADzLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEKbJErjztWaewYA
AFVnAAAoABgAAAAAAAAAAACkgV6oFwBzdG9yYWdlL2luZGV4ZWRkYi9wZXJzaXN0ZW5jZS1zdGRl
cnIudHh0VVQFAAPMvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAQpskSqr12g+tCAAAsHYA
ADsAGAAAAAAAAAAAAKSBO68XAHN0b3JhZ2UvaW5kZXhlZGRiL3ByZWZldGNoLWJ1Z2ZpeC0xMDgw
NzEtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPMvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
Q5skSqCsRHeFCQAA4YIAADMAGAAAAAAAAAAAAKSBXbgXAHN0b3JhZ2UvaW5kZXhlZGRiL3ByZWZl
dGNoLWJ1Z2ZpeC0xMDgwNzEtc3RkZXJyLnR4dFVUBQADzbxtWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAEObJEozM1iP0B4AAPBDCAA6ABgAAAAAAAAAAACkgU/CFwBzdG9yYWdlL2luZGV4ZWRk
Yi9wcmVmZXRjaC1pbnZhbGlkYXRpb24tcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPOvG1YdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgARJskSo/8ZZiVJQAANqAJADIAGAAAAAAAAAAAAKSBk+EXAHN0
b3JhZ2UvaW5kZXhlZGRiL3ByZWZldGNoLWludmFsaWRhdGlvbi1zdGRlcnIudHh0VVQFAAPQvG1Y
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgARZskSqgdc/WoBwAAB2UAADIAGAAAAAAAAAAAAKSB
lAcYAHN0b3JhZ2UvaW5kZXhlZGRiL3ByZWZldGNoLXJhY2UtcHJpdmF0ZS1zdGRlcnIudHh0VVQF
AAPRvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgARZskSoSSC7jrBwAAmmsAACoAGAAAAAAA
AAAAAKSBqA8YAHN0b3JhZ2UvaW5kZXhlZGRiL3ByZWZldGNoLXJhY2Utc3RkZXJyLnR4dFVUBQAD
0bxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEWbJErbKWi+aQYAAJpHAABGABgAAAAAAAAA
AACkgfcXGABzdG9yYWdlL2luZGV4ZWRkYi9wcmltYXJ5LWtleS11bmlxdWUtdG8tb2JqZWN0c3Rv
cmUtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPRvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
RZskSqBeFC5yBgAA0EwAAD4AGAAAAAAAAAAAAKSB4B4YAHN0b3JhZ2UvaW5kZXhlZGRiL3ByaW1h
cnkta2V5LXVuaXF1ZS10by1vYmplY3RzdG9yZS1zdGRlcnIudHh0VVQFAAPRvG1YdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgARZskSj5C6GFWBQAA2SMAADQAGAAAAAAAAAAAAKSByiUYAHN0b3Jh
Z2UvaW5kZXhlZGRiL3F1ZXVlZC1jb21tYW5kcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA9G8bVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABFmyRK7sEw/fsFAAAcJgAALAAYAAAAAAAAAAAApIGO
KxgAc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLXN0ZGVyci50eHRVVAUAA9K8bVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABFmyRKNUHD+aoFAAD4IgAALQAYAAAAAAAAAAAApIHv
MRgAc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHktcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPSvG1Y
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgARZskSnlUapdJAwAApg8AADgAGAAAAAAAAAAAAKSB
ADgYAHN0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5LXByb3BlcnRpZXMtcHJpdmF0ZS1zdGRlcnIu
dHh0VVQFAAPSvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgARZskSiBsv2rBAwAAkREAADAA
GAAAAAAAAAAAAKSBuzsYAHN0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5LXByb3BlcnRpZXMtc3Rk
ZXJyLnR4dFVUBQAD0rxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEWbJErGFDq4MwYAAFwl
AAAlABgAAAAAAAAAAACkgeY/GABzdG9yYWdlL2luZGV4ZWRkYi9yZWFkb25seS1zdGRlcnIudHh0
VVQFAAPSvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgARpskShzCXey1BgAApy8AADsAGAAA
AAAAAAAAAKSBeEYYAHN0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtY29udGludWUtYWJvcnQtcHJp
dmF0ZS1zdGRlcnIudHh0VVQFAAPTvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgARpskSrPx
ZDnnBgAAYS4AADMAGAAAAAAAAAAAAKSBok0YAHN0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtY29u
dGludWUtYWJvcnQtc3RkZXJyLnR4dFVUBQAD07xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AEabJEpWs/+yYQYAAJdEAAA+ABgAAAAAAAAAAACkgfZUGABzdG9yYWdlL2luZGV4ZWRkYi9yZXF1
ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD07xtWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAEabJEpBMqOhbgYAAKNDAAA2ABgAAAAAAAAAAACkgc9bGABzdG9y
YWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLXN0ZGVyci50eHRVVAUAA9S8
bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABGmyRKxYYJFD4GAADnLAAAOQAYAAAAAAAAAAAA
pIGtYhgAc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1yZXN1bHQtY2FjaGUtcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAAPUvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgARpskSoYAg/CsBgAAFS4A
ADEAGAAAAAAAAAAAAKSBXmkYAHN0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtcmVzdWx0LWNhY2hl
LXN0ZGVyci50eHRVVAUAA9S8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABGmyRKw/qOt8wE
AADfIQAAOAAYAAAAAAAAAAAApIF1cBgAc3RvcmFnZS9pbmRleGVkZGIvc2V0X3ZlcnNpb25fYmxv
Y2tlZC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA9S8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABGmyRKFgp1e0oFAACTJAAAMAAYAAAAAAAAAAAApIGzdRgAc3RvcmFnZS9pbmRleGVkZGIvc2V0
X3ZlcnNpb25fYmxvY2tlZC1zdGRlcnIudHh0VVQFAAPUvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgARpskSqS9VurCBAAAiCkAAE4AGAAAAAAAAAAAAKSBZ3sYAHN0b3JhZ2UvaW5kZXhlZGRi
L3NldHZlcnNpb24tYmxvY2tlZC1ieS12ZXJzaW9uY2hhbmdlLWNsb3NlLXByaXZhdGUtc3RkZXJy
LnR4dFVUBQAD1LxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEebJEp0pnRwkQQAAMkqAABG
ABgAAAAAAAAAAACkgbGAGABzdG9yYWdlL2luZGV4ZWRkYi9zZXR2ZXJzaW9uLWJsb2NrZWQtYnkt
dmVyc2lvbmNoYW5nZS1jbG9zZS1zdGRlcnIudHh0VVQFAAPVvG1YdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAR5skShKfk/GvBAAAxScAADsAGAAAAAAAAAAAAKSBwoUYAHN0b3JhZ2UvaW5kZXhl
ZGRiL3NldHZlcnNpb24tbm90LWJsb2NrZWQtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPVvG1YdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAR5skSnqbnBTQBAAAvycAADMAGAAAAAAAAAAAAKSB5ooY
AHN0b3JhZ2UvaW5kZXhlZGRiL3NldHZlcnNpb24tbm90LWJsb2NrZWQtc3RkZXJyLnR4dFVUBQAD
1bxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEibJEpHDh9ThRAAACbNBAA1ABgAAAAAAAAA
AACkgSOQGABzdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLXByaXZhdGUtc3RkZXJy
LnR4dFVUBQAD17xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEmbJEopRJUuCRAAAP7XBAAt
ABgAAAAAAAAAAACkgRehGABzdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLXN0ZGVy
ci50eHRVVAUAA9m8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABJmyRKSo3LlRwGAABAKAAA
LgAYAAAAAAAAAAAApIGHsRgAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtc3Rk
ZXJyLnR4dFVUBQAD2bxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEmbJEr5e76qxAwAAHzz
AAA8ABgAAAAAAAAAAACkgQu4GABzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hY3RpdmUt
ZmxhZy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA9q8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABJmyRK2Iw5XjAPAADmHAEANAAYAAAAAAAAAAAApIFFxRgAc3RvcmFnZS9pbmRleGVkZGIvdHJh
bnNhY3Rpb24tYWN0aXZlLWZsYWctc3RkZXJyLnR4dFVUBQAD2rxtWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAEqbJEr75DMS+gUAAC8+AAA8ABgAAAAAAAAAAACkgePUGABzdG9yYWdlL2luZGV4
ZWRkYi90cmFuc2FjdGlvbi1hZnRlci1jbG9zZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA9u8bVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABKmyRKb0GaGAEGAAD7PQAANAAYAAAAAAAAAAAApIFT
2xgAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWZ0ZXItY2xvc2Utc3RkZXJyLnR4dFVU
BQAD27xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEqbJErRi4hbKQcAAMd0AABGABgAAAAA
AAAAAACkgcLhGABzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUt
Y2FsbHMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPbvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgASpskSrXnom9lBwAASoMAAD4AGAAAAAAAAAAAAKSBa+kYAHN0b3JhZ2UvaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy1zdGRlcnIudHh0VVQFAAPcvG1YdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgASpskSt0gHou2CAAALawAADcAGAAAAAAAAAAAAKSBSPEYAHN0
b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWJhc2ljcy1wcml2YXRlLXN0ZGVyci50eHRVVAUA
A9y8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABLmyRKUYKlTkYJAAB2swAALwAYAAAAAAAA
AAAApIFv+hgAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYmFzaWNzLXN0ZGVyci50eHRV
VAUAA928bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABLmyRKMftLhjgFAACPKgAAVwAYAAAA
AAAAAAAApIEeBBkAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY29tcGxldGUtd2l0aC1q
cy1yZWN1cnNpb24tY3Jvc3MtZnJhbWUtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPdvG1YdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAS5skSvCOlfDDBQAArikAAE8AGAAAAAAAAAAAAKSB5wkZAHN0
b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvbXBsZXRlLXdpdGgtanMtcmVjdXJzaW9uLWNy
b3NzLWZyYW1lLXN0ZGVyci50eHRVVAUAA928bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABL
myRKbVedfYgFAAB4KQAASwAYAAAAAAAAAAAApIEzEBkAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNh
Y3Rpb24tY29tcGxldGUtd2l0aC1qcy1yZWN1cnNpb24tcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPd
vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAS5skSnC6+nm9BQAArikAAEMAGAAAAAAAAAAA
AKSBQBYZAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvbXBsZXRlLXdpdGgtanMtcmVj
dXJzaW9uLXN0ZGVyci50eHRVVAUAA968bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABLmyRK
zuAOgcgGAABKVwAAQQAYAAAAAAAAAAAApIF6HBkAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tY29tcGxldGUtd29ya2Vycy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA968bVh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABLmyRKCzNJXGQGAADyUwAAOQAYAAAAAAAAAAAApIG9IxkAc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY29tcGxldGUtd29ya2Vycy1zdGRlcnIudHh0VVQFAAPe
vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAS5skSiSPBDSNBgAAjFEAAE4AGAAAAAAAAAAA
AKSBlCoZAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvb3JkaW5hdGlvbi1hY3Jvc3Mt
ZGF0YWJhc2VzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD3rxtWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAEybJEozBe5FnQYAAKhTAABGABgAAAAAAAAAAACkgakxGQBzdG9yYWdlL2luZGV4ZWRk
Yi90cmFuc2FjdGlvbi1jb29yZGluYXRpb24tYWNyb3NzLWRhdGFiYXNlcy1zdGRlcnIudHh0VVQF
AAPfvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgATJskSg6GontdBgAA3zoAAE0AGAAAAAAA
AAAAAKSBxjgZAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvb3JkaW5hdGlvbi13aXRo
aW4tZGF0YWJhc2UtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPfvG1YdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgATJskSuvEK4MUAQAAtQMAAD8AGAAAAAAAAAAAAKSBqj8ZAHN0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWNyYXNoLWluLXRhc2tzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD37xt
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEybJEpiZMlLLgEAADYEAAA3ABgAAAAAAAAAAACk
gTdBGQBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmFzaC1pbi10YXNrcy1zdGRlcnIu
dHh0VVQFAAPfvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgATJskSih39jeBBAAAzxgAAD8A
GAAAAAAAAAAAAKSB1kIZAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNyYXNoLW9uLWFi
b3J0LXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD4LxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AEybJEpunyDmqQQAAMAZAAA3ABgAAAAAAAAAAACkgdBHGQBzdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1jcmFzaC1vbi1hYm9ydC1zdGRlcnIudHh0VVQFAAPgvG1YdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgATJskSlktoj6kBwAAGGUAADYAGAAAAAAAAAAAAKSB6kwZAHN0b3JhZ2UvaW5k
ZXhlZGRiL3RyYW5zYWN0aW9uLWVycm9yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD4LxtWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAE2bJEp+fvBRMwgAAE9kAAAuABgAAAAAAAAAAACkgf5UGQBz
dG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1lcnJvci1zdGRlcnIudHh0VVQFAAPhvG1YdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgATZskSuZo0ss4BgAAhjcAAEIAGAAAAAAAAAAAAKSBmV0Z
AHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLXByaXZhdGUt
c3RkZXJyLnR4dFVUBQAD4bxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAE2bJEoB+FfcQgYA
AOc2AAA6ABgAAAAAAAAAAACkgU1kGQBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVu
dC1wcm9wYWdhdGlvbi1zdGRlcnIudHh0VVQFAAPhvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgATZskSoHv116hBQAATTIAADkAGAAAAAAAAAAAAKSBA2sZAHN0b3JhZ2UvaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLW9yZGVyaW5nLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD4bxtWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAE2bJErZirFI1QUAABMyAAAxABgAAAAAAAAAAACkgRdxGQBzdG9yYWdl
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1vcmRlcmluZy1zdGRlcnIudHh0VVQFAAPivG1YdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgATZskSm/6SmldBgAADzgAADwAGAAAAAAAAAAAAKSBV3cZAHN0
b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLW92ZXJsYXBwaW5nLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQAD4rxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAE2bJEofJCkbpwYAAOZUAAA0ABgA
AAAAAAAAAACkgSp+GQBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1vdmVybGFwcGluZy1z
dGRlcnIudHh0VVQFAAPivG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgATZskSp9tVMI8BgAA
vjUAADoAGAAAAAAAAAAAAKSBP4UZAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJlYWQt
b25seS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA+K8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABNmyRKSxwsTtIGAACUPgAAMgAYAAAAAAAAAAAApIHvixkAc3RvcmFnZS9pbmRleGVkZGIvdHJh
bnNhY3Rpb24tcmVhZC1vbmx5LXN0ZGVyci50eHRVVAUAA+K8bVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABOmyRKIf7uNj0GAACVSgAARAAYAAAAAAAAAAAApIEtkxkAc3RvcmFnZS9pbmRleGVk
ZGIvdHJhbnNhY3Rpb24tcmVhZHdyaXRlLWV4Y2x1c2l2ZS1wcml2YXRlLXN0ZGVyci50eHRVVAUA
A+O8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABOmyRK6EFJLGAGAACCSQAAPAAYAAAAAAAA
AAAApIHomRkAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcmVhZHdyaXRlLWV4Y2x1c2l2
ZS1zdGRlcnIudHh0VVQFAAPjvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgATpskSg5HzAu6
BgAAnjQAADkAGAAAAAAAAAAAAKSBvqAZAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJv
bGxiYWNrLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD47xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAE6bJEosrKDeLgcAAFM2AAAxABgAAAAAAAAAAACkgeunGQBzdG9yYWdlL2luZGV4ZWRkYi90
cmFuc2FjdGlvbi1yb2xsYmFjay1zdGRlcnIudHh0VVQFAAPjvG1YdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgATpskSmNdOI4qBgAAFk0AAEEAGAAAAAAAAAAAAKSBhK8ZAHN0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLXNjb3BlLXNlcXVlbmNpbmctcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPk
vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgATpskSkx64v4YBgAA0EQAADkAGAAAAAAAAAAA
AKSBKbYZAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXNjb3BlLXNlcXVlbmNpbmctc3Rk
ZXJyLnR4dFVUBQAD5LxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAE6bJEobf2CeDQMAADAO
AABEABgAAAAAAAAAAACkgbS8GQBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1zdG9yZU5h
bWVzLXJlcXVpcmVkLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD5LxtWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAE6bJEoDcSohnQMAAP8QAAA8ABgAAAAAAAAAAACkgT/AGQBzdG9yYWdlL2luZGV4
ZWRkYi90cmFuc2FjdGlvbi1zdG9yZU5hbWVzLXJlcXVpcmVkLXN0ZGVyci50eHRVVAUAA+S8bVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABOmyRKRTZUn8cEAAA9IgAAPgAYAAAAAAAAAAAApIFS
xBkAc3RvcmFnZS9pbmRleGVkZGIvdW5ibG9ja2VkLXZlcnNpb24tY2hhbmdlcy1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA+S8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABOmyRKGDGkiOMEAACw
IgAANgAYAAAAAAAAAAAApIGRyRkAc3RvcmFnZS9pbmRleGVkZGIvdW5ibG9ja2VkLXZlcnNpb24t
Y2hhbmdlcy1zdGRlcnIudHh0VVQFAAPkvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAT5sk
Slc5FbEiAQAAWAQAAC0AGAAAAAAAAAAAAKSB5M4ZAHN0b3JhZ2UvaW5kZXhlZGRiL3VucHJlZml4
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD5bxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAE+b
JEpqjBg1pgQAAKYZAAA0ABgAAAAAAAAAAACkgW3QGQBzdG9yYWdlL2luZGV4ZWRkYi92YWx1ZS11
bmRlZmluZWQtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPlvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAT5skSkWRW+W6BQAAuh8AACwAGAAAAAAAAAAAAKSBgdUZAHN0b3JhZ2UvaW5kZXhlZGRi
L3ZhbHVlLXVuZGVmaW5lZC1zdGRlcnIudHh0VVQFAAPlvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAT5skSsEAEWKKBQAATDUAADUAGAAAAAAAAAAAAKSBodsZAHN0b3JhZ2UvaW5kZXhlZGRi
L3ZhbHVlcy1vZGQtdHlwZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPlvG1YdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAT5skSnQFL1NOBgAA/jwAAC0AGAAAAAAAAAAAAKSBmuEZAHN0b3JhZ2Uv
aW5kZXhlZGRiL3ZhbHVlcy1vZGQtdHlwZXMtc3RkZXJyLnR4dFVUBQAD5rxtWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAE+bJEowezcD5AUAAKEvAAA5ABgAAAAAAAAAAACkgU/oGQBzdG9yYWdl
L2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1hYm9ydC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA+a8
bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABPmyRKmacFiboFAAC/LwAAMQAYAAAAAAAAAAAA
pIGm7hkAc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtYWJvcnQtc3RkZXJyLnR4dFVU
BQAD5rxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAE+bJEpXN0EfCgMAALEaAAA/ABgAAAAA
AAAAAACkgcv0GQBzdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1ldmVudC1iYXNpYy1w
cml2YXRlLXN0ZGVyci50eHRVVAUAA+a8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABPmyRK
9m0dXNcDAADbJwAANwAYAAAAAAAAAAAApIFO+BkAc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1j
aGFuZ2UtZXZlbnQtYmFzaWMtc3RkZXJyLnR4dFVUBQAD5rxtWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAE+bJEoUSKdj4wUAAE8zAAA5ABgAAAAAAAAAAACkgZb8GQBzdG9yYWdlL2luZGV4ZWRk
Yi92ZXJzaW9uLWNoYW5nZS1ldmVudC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA+a8bVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABQmyRKDSOQ7UsFAAD1KgAAMQAYAAAAAAAAAAAApIHsAhoAc3Rv
cmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtZXZlbnQtc3RkZXJyLnR4dFVUBQAD57xtWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFCbJEoSQ4haeQUAACtBAAA9ABgAAAAAAAAAAACkgaII
GgBzdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1leGNsdXNpdmUtcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAAPnvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUJskStjsbkSMBQAA0kMA
ADUAGAAAAAAAAAAAAKSBkg4aAHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWV4Y2x1
c2l2ZS1zdGRlcnIudHh0VVQFAAPnvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUJskSoUY
MV3EAwAAHhUAAEkAGAAAAAAAAAAAAKSBjRQaAHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb25jaGFu
Z2VyZXF1ZXN0LWFjdGl2ZWRvbW9iamVjdC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA+i8bVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABRmyRKJRjLRP8DAAAfFQAAQQAYAAAAAAAAAAAApIHUGBoA
c3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbmNoYW5nZXJlcXVlc3QtYWN0aXZlZG9tb2JqZWN0LXN0
ZGVyci50eHRVVAUAA+m8bVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAD6lSRKAAAAAAAAAAAA
AAAADwAYAAAAAAAAABAA7UFOHRoAc3RvcmFnZS93ZWJzcWwvVVQFAAPXs21YdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA9JokSksbgTWnAAAA0gAAAC0AGAAAAAAAAQAAAKSBlx0aAHN0b3JhZ2Uv
d2Vic3FsL2FsdGVyLXRvLWluZm8tdGFibGUtc3RkZXJyLnR4dFVUBQADO7xtWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAPSaJEpLG4E1pwAAANIAAAA1ABgAAAAAAAEAAACkgaUeGgBzdG9yYWdl
L3dlYnNxbC9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1c2Utc3RkZXJyLnR4dFVUBQADO7xtWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPSaJEpLG4E1pwAAANIAAABGABgAAAAAAAEAAACkgbsf
GgBzdG9yYWdlL3dlYnNxbC9jaGFuZ2UtdmVyc2lvbi1uby1jcmFzaC1vbi1wcmVmbGlnaHQtZmFp
bHVyZS1zdGRlcnIudHh0VVQFAAM7vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9JokSupk
zncXAQAALwQAACgAGAAAAAAAAQAAAKSB4iAaAHN0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9u
LXN0ZGVyci50eHRVVAUAAzu8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD0miRKSxuBNacA
AADSAAAAMgAYAAAAAAABAAAApIFbIhoAc3RvcmFnZS93ZWJzcWwvY2xvc2UtZHVyaW5nLXN0cmVz
cy10ZXN0LXN0ZGVyci50eHRVVAUAAzy8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD0miRK
r4gc160AAACkAQAANAAYAAAAAAABAAAApIFuIxoAc3RvcmFnZS93ZWJzcWwvZGF0YWJhc2UtbG9j
ay1hZnRlci1yZWxvYWQtc3RkZXJyLnR4dFVUBQADPLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAPSaJEpLG4E1pwAAANIAAAApABgAAAAAAAEAAACkgYkkGgBzdG9yYWdlL3dlYnNxbC9lbXB0
eS1zdGF0ZW1lbnQtc3RkZXJyLnR4dFVUBQADPLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
APWaJEpLG4E1pwAAANIAAAAqABgAAAAAAAEAAACkgZMlGgBzdG9yYWdlL3dlYnNxbC9leGVjdXRl
LXNxbC1hcmdzLXN0ZGVyci50eHRVVAUAAz28bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD1
miRKSxuBNacAAADSAAAAMgAYAAAAAAABAAAApIGeJhoAc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZS1z
cWwtcm93c0FmZmVjdGVkLXN0ZGVyci50eHRVVAUAAz28bVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAD1miRKSxuBNacAAADSAAAAPwAYAAAAAAABAAAApIGxJxoAc3RvcmFnZS93ZWJzcWwvZXhl
Y3V0ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1zdGRlcnIudHh0VVQFAAM9vG1YdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9pokSksbgTWnAAAA0gAAAC4AGAAAAAAAAQAAAKSB0Sga
AHN0b3JhZ2Uvd2Vic3FsL2hhc2gtY2hhbmdlLXdpdGgteGhyLXN0ZGVyci50eHRVVAUAAz+8bVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD2miRKr4gc160AAACkAQAAPwAYAAAAAAABAAAApIHg
KRoAc3RvcmFnZS93ZWJzcWwvbXVsdGlwbGUtZGF0YWJhc2VzLWdhcmJhZ2UtY29sbGVjdGlvbi1z
dGRlcnIudHh0VVQFAAM/vG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9pokSmikNzmwAAAA
dgIAAEQAGAAAAAAAAQAAAKSBBisaAHN0b3JhZ2Uvd2Vic3FsL211bHRpcGxlLXRyYW5zYWN0aW9u
cy1vbi1kaWZmZXJlbnQtaGFuZGxlcy1zdGRlcnIudHh0VVQFAANAvG1YdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA9pokSksbgTWnAAAA0gAAAC8AGAAAAAAAAQAAAKSBNCwaAHN0b3JhZ2Uvd2Vi
c3FsL211bHRpcGxlLXRyYW5zYWN0aW9ucy1zdGRlcnIudHh0VVQFAANAvG1YdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA9pokSksbgTWnAAAA0gAAACgAGAAAAAAAAQAAAKSBRC0aAHN0b3JhZ2Uv
d2Vic3FsL251bGwtY2FsbGJhY2tzLXN0ZGVyci50eHRVVAUAA0C8bVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAD2miRKr4gc160AAACkAQAASAAYAAAAAAABAAAApIFNLhoAc3RvcmFnZS93ZWJz
cWwvb3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1zdGRlcnIu
dHh0VVQFAANAvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9pokSos2fx2yAAAASAMAADkA
GAAAAAAAAQAAAKSBfC8aAHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2UtY3JlYXRpb24tY2Fs
bGJhY2stc3RkZXJyLnR4dFVUBQADQLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPeaJEpL
G4E1pwAAANIAAAA1ABgAAAAAAAEAAACkgaEwGgBzdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNl
LWVtcHR5LXZlcnNpb24tc3RkZXJyLnR4dFVUBQADQbxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAPeaJEpLG4E1pwAAANIAAAA0ABgAAAAAAAEAAACkgbcxGgBzdG9yYWdlL3dlYnNxbC9vcGVu
LWRhdGFiYXNlLWV4cGFuZC1xdW90YS1zdGRlcnIudHh0VVQFAANBvG1YdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA95okSglw3hMKAQAAuAIAADkAGAAAAAAAAQAAAKSBzDIaAHN0b3JhZ2Uvd2Vi
c3FsL29wZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24tc3RkZXJyLnR4dFVUBQADQbxtWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPeaJEqviBzXrQAAAKQBAABFABgAAAAAAAEAAACkgUk0
GgBzdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLXdoaWxlLXRyYW5zYWN0aW9uLWluLXByb2dy
ZXNzLXN0ZGVyci50eHRVVAUAA0G8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD3miRKSxuB
NacAAADSAAAAOQAYAAAAAAABAAAApIF1NRoAc3RvcmFnZS93ZWJzcWwvcHJpdmF0ZS1icm93c2lu
Zy1ub3JlYWQtbm93cml0ZS1zdGRlcnIudHh0VVQFAANCvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA95okSmikNzmwAAAAdgIAAEcAGAAAAAAAAQAAAKSBjzYaAHN0b3JhZ2Uvd2Vic3FsL3Jl
YWQtYW5kLXdyaXRlLXRyYW5zYWN0aW9ucy1kb250LXJ1bi10b2dldGhlci1zdGRlcnIudHh0VVQF
AANCvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA95okSq+IHNetAAAApAEAAEAAGAAAAAAA
AQAAAKSBwDcaAHN0b3JhZ2Uvd2Vic3FsL3JlYWQtdHJhbnNhY3Rpb25zLXJ1bm5pbmctY29uY3Vy
cmVudGx5LXN0ZGVyci50eHRVVAUAA0K8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD3miRK
SxuBNacAAADSAAAAKAAYAAAAAAABAAAApIHnOBoAc3RvcmFnZS93ZWJzcWwvc3FsLWRhdGEtdHlw
ZXMtc3RkZXJyLnR4dFVUBQADQrxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPiaJEqviBzX
rQAAAKQBAABBABgAAAAAAAEAAACkgfA5GgBzdG9yYWdlL3dlYnNxbC9zdGF0ZW1lbnQtZXJyb3It
Y2FsbGJhY2staXNvbGF0ZWQtd29ybGQtc3RkZXJyLnR4dFVUBQADQ7xtWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAPiaJEpLG4E1pwAAANIAAAAyABgAAAAAAAEAAACkgRg7GgBzdG9yYWdlL3dl
YnNxbC9zdGF0ZW1lbnQtZXJyb3ItY2FsbGJhY2stc3RkZXJyLnR4dFVUBQADQ7xtWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAPiaJEqviBzXrQAAAKQBAABDABgAAAAAAAEAAACkgSs8GgBzdG9y
YWdlL3dlYnNxbC9zdGF0ZW1lbnQtc3VjY2Vzcy1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1zdGRl
cnIudHh0VVQFAANDvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+JokSksbgTWnAAAA0gAA
ACoAGAAAAAAAAQAAAKSBVT0aAHN0b3JhZ2Uvd2Vic3FsL3N1Y2Nlc3MtY2FsbGJhY2stc3RkZXJy
LnR4dFVUBQADRLxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPiaJEpLG4E1pwAAANIAAABD
ABgAAAAAAAEAAACkgWA+GgBzdG9yYWdlL3dlYnNxbC9zdWNjZXNzLWNhbGxiYWNrLXdoZW4tcGFn
ZS1kZWZlcnMtbG9hZGluZy1zdGRlcnIudHh0VVQFAANEvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA+ZokSksbgTWnAAAA0gAAACkAGAAAAAAAAQAAAKSBhD8aAHN0b3JhZ2Uvd2Vic3FsL3Rl
c3QtYXV0aG9yaXplci1zdGRlcnIudHh0VVQFAANFvG1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgA+ZokSksbgTWnAAAA0gAAAD4AGAAAAAAAAQAAAKSBjkAaAHN0b3JhZ2Uvd2Vic3FsL3RyYW5z
YWN0aW9uLWNhbGxiYWNrLWV4Y2VwdGlvbi1jcmFzaC1zdGRlcnIudHh0VVQFAANFvG1YdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA+ZokSq+IHNetAAAApAEAAD0AGAAAAAAAAQAAAKSBrUEaAHN0
b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9uLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLXN0ZGVyci50
eHRVVAUAA0W8bVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD5miRKr4gc160AAACkAQAAQwAY
AAAAAAABAAAApIHRQhoAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tZXJyb3ItY2FsbGJhY2st
aXNvbGF0ZWQtd29ybGQtc3RkZXJyLnR4dFVUBQADRbxtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAPmaJEpLG4E1pwAAANIAAAA0ABgAAAAAAAEAAACkgftDGgBzdG9yYWdlL3dlYnNxbC90cmFu
c2FjdGlvbi1lcnJvci1jYWxsYmFjay1zdGRlcnIudHh0VVQFAANGvG1YdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA+ZokSksbgTWnAAAA0gAAAC8AGAAAAAAAAQAAAKSBEEUaAHN0b3JhZ2Uvd2Vi
c3FsL3RyYW5zYWN0aW9uLXByb3RvdHlwZS1zdGRlcnIudHh0VVQFAANGvG1YdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA+pokSq+IHNetAAAApAEAAEUAGAAAAAAAAQAAAKSBIEYaAHN0b3JhZ2Uv
d2Vic3FsL3RyYW5zYWN0aW9uLXN1Y2Nlc3MtY2FsbGJhY2staXNvbGF0ZWQtd29ybGQtc3RkZXJy
LnR4dFVUBQADR7xtWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIebJErSODoqrAIAAD4SAAAZ
ABgAAAAAAAEAAACkgUxHGgB3cHR3a19wcm9jZXNzX2xvZy5vdXQudHh0VVQFAANOvW1YdXgLAAEE
9QEAAAQUAAAAUEsFBgAAAAA8AjwCERQBAEtKGgAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298066</attachid>
            <date>2017-01-04 21:11:52 -0800</date>
            <delta_ts>2017-01-04 22:46:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166635-20170104211023.patch</filename>
            <type>text/plain</type>
            <size>690486</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMzExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ5MDc5YWQwOGEyOTM1MGM1MjZiZjM3
ODRkNGRiMmNlZjVjZmE1OGQuLjZlMjc0Y2FkMWM3ODE2YjllZjAwOTdiMGFhYjUwZjA0YmM5MGU0
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDEtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRt
bCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1JlZlB0ci5oOgorICAgICAgICAoV1RGOjpt
YWtlUmVmUHRyKTogQWRkZWQuCisKIDIwMTctMDEtMDQgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjEwMjU3KTogY29tLmFwcGxlLldlYktpdC5X
ZWJDb250ZW50LkRldmVsb3BtZW50IGNyYXNoZWQgaW4gY29tLmFwcGxlLldlYkNvcmU6IFdlYkNv
cmU6OkV4Y2VwdGlvbk9yPFdURjo6UmVmPFdlYkNvcmU6OkRhdGFiYXNlPiA+OjpvcGVyYXRvcj0g
KyAxNApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDNjMjc3MTIxYzU3MzM0OWVkYWI0MWM2Nzg0YTNiZDY5YTExNTA5
ODUuLjMwZWY5ZWVhOTVkM2VkYzFkNzFjNTRjYWQ3MzM5MjY3ODFlMWUyYzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw3NzIgQEAKKzIwMTctMDEtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRoZSAiaHRtbCIgZGly
ZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IFJlbW92ZWQgdGhlIGR1cGxpY2F0
ZSBjb3BpZXMgb2YgYWxsIHRoZSBXZWJHTC1zcGVjaWZpYyBmaWxlcworICAgICAgICBpbiB0aGUg
bWFpbiBsaXN0IG9mIHNvdXJjZSBmaWxlczsgdGhlcmUgaXMgbm8gdmFsdWUgaW4gbGlzdGluZyB0
aGVtIHR3aWNlLgorICAgICAgICBSZXBsYWNlZCBXZWJHTEdldEluZm8uY3BwIHdpdGggV2ViR0xB
bnkuY3BwLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKTogVXBk
YXRlcyBzaW5jZSB0aGUgdHJhY2tzIGZ1bmN0aW9ucworICAgICAgICByZXR1cm4gcmVmZXJlbmNl
cyBub3cuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0
U2Vla1RpbWVGb3JNZWRpYVRpbWUpOiBSZW1vdmVkCisgICAgICAgIHVubmVlZGVkIFNvdXJjZUJ1
ZmZlclByaXZhdGUqIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjph
cHBlbmRCdWZmZXJUaW1lckZpcmVkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VC
dWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJl
bmRlcmluZ0Vycm9yKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnZp
ZGVvVHJhY2tzKTogUmV0dXJuIGEgcmVmZXJlbmNlIHJhdGhlciB0aGFuIGEgcG9pbnRlci4KKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6YXVkaW9UcmFja3MpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrcyk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRp
YWxpemF0aW9uU2VnbWVudCk6CisgICAgICAgIFJlbW92ZWQgdW5uZWVkZWQgU291cmNlQnVmZmVy
UHJpdmF0ZSogYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnZhbGlk
YXRlSW5pdGlhbGl6YXRpb25TZWdtZW50KTogVXBkYXRlZCBzaW5jZSB0cmFja3MKKyAgICAgICAg
ZnVuY3Rpb25zIG5vdyByZXR1cm4gYSBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSk6IFJlbW92ZWQgdW5u
ZWVkZWQKKyAgICAgICAgU291cmNlQnVmZmVyUHJpdmF0ZSogYXJndW1lbnQuCisgICAgICAgIChX
ZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlSGFz
VmlkZW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dmlkZW9UcmFj
a1NlbGVjdGVkQ2hhbmdlZCk6IFRha2UgYSByZWZlcmVuY2UgcmF0aGVyIHRoYW4KKyAgICAgICAg
YSBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjphdWRpb1RyYWNrRW5h
YmxlZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dGV4
dFRyYWNrTW9kZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
cjo6dGV4dFRyYWNrQWRkQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXI6OnRleHRUcmFja0FkZEN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXI6OnRleHRUcmFja1JlbW92ZUN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrS2luZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZEJlY29tZVJlYWR5Rm9y
TW9yZVNhbXBsZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6cHJv
dmlkZU1lZGlhRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpy
ZWVucXVldWVNZWRpYUZvclRpbWUpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlci5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBSZXBsYWNlZCBXZWJHTEdldElu
Zm8gd2l0aCBXZWJHTEFueS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTENhbnZhc1N0
eWxlKTogUmVtb3ZlZCBleHBsaWNpdCBjYXN0IHRvIENhbnZhc1N0eWxlIGFuZCB1bm5lZWRlZAor
ICAgICAgICBjb252ZXJzaW9uIHRvIGEgcG9pbnRlciBzaW5jZSBDYW52YXNTdHlsZSBjb25zdHJ1
Y3RvcnMgbm93IHRha2UgcmVmZXJlbmNlcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1
Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5JbnN0YW5j
ZSk6IFVwZGF0ZWQgc2luY2UgYmluZGluZ3NJbnN0YW5jZSBub3cgcmV0dXJucyBhIHJhdyBwb2lu
dGVyLgorICAgICAgICAoV2ViQ29yZTo6cGx1Z2luU2NyaXB0T2JqZWN0KTogRGl0dG8uCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IE1vdmVkIHRvIFdlYkdMQW55LmgvY3BwLgorICAgICAg
ICAoV2ViQ29yZTo6SlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVy
KTogVXBkYXRlZCBzaW5jZSB0aGUgdG9KUworICAgICAgICBmdW5jdGlvbiBpbiBXZWJHTEFueS5o
IHRha2VzIHJlZmVyZW5jZXMsIG5vdCBwb2ludGVycy4KKworICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHA6IFJlbW92ZWQgcXVpdGUgYSBm
ZXcgdW5uZWVkZWQKKyAgICAgICAgaW5jbHVkZXMgYW5kIGdvdCByaWQgb2YgYSBsb3Qgb2YgdW5u
ZWVkZWQgSlNDIHByZWZpeGVzLgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IE1vdmVkIHRvIFdl
YkdMQW55LmgvY3BwLgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpvYmplY3RQYXJhbWV0ZXIpOiBSZW5hbWVkIGZyb20gZ2V0T2JqZWN0UGFy
YW1ldGVyIGFuZCBhbHNvIGNoYW5nZWQgdG8KKyAgICAgICAgdGFrZSBhIHBvaW50ZXIgdG8gbWVt
YmVyIGZ1bmN0aW9uIHNvIHdlIGRvbid0IG5lZWQgYW4gZW51bSBhbmQgYSBzd2l0Y2ggc3RhdGVt
ZW50LgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IENoYW5nZWQgdG8gdGFrZSByZWZlcmVuY2Vz
IHJhdGhlciB0aGFuIHBvaW50ZXJzLgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRBdHRhY2hlZFNoYWRlcnMpOiBVc2UgYSBtb2Rlcm4gZm9yIGxvb3Au
CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZl
clBhcmFtZXRlcik6IFVzZSBvYmplY3RQYXJhbWV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpKU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0
ZXhBdHRyaWIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OnRvTnVtYmVyVmVjdG9yKTogUmVu
YW1lZCBmcm9tIHRvVmVjdG9yLCBzaW5jZSB0aGlzIGlzIHNwZWNpZmljYWxseSBmb3IKKyAgICAg
ICAgdmVjdG9ycyBvZiBudW1iZXJzLiBVc2UgdW5jaGVja2VkQXBwZW5kIGluc3RlYWQgb2YgYXNz
aWdubWVudC4KKyAgICAgICAgKFdlYkNvcmU6OmZ1bmN0aW9uRm9yVW5pZm9ybSk6IE1hcmtlZCB0
aGlzIGlubGluZS4KKyAgICAgICAgKFdlYkNvcmU6OmRhdGFGdW5jdGlvbmYpOiBVcGRhdGVkIGZv
ciBhYm92ZSBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uaSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uTWF0cml4KTogRGl0dG8uCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6IE1vdmVkIGFzc2VydGlvbnMgdG8gdGhlIHRv
cCBvZiB0aGUgZnVuY3Rpb24uCisgICAgICAgIEFsc28gYWRkZWQgYSBGSVhNRSBiZWNhdXNlIGl0
J3MgdW5jbGVhciB3aHkgdGhlc2UgYXNzZXJ0aW9ucyBhcmUgY29ycmVjdC4gVXBkYXRlZAorICAg
ICAgICB0byB1c2UgZG93bmNhc3RTY3JpcHRFbGVtZW50IGluc3RlYWQgb2YgdG9TY3JpcHRFbGVt
ZW50SWZQb3NzaWJsZS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOiBTb3J0ZWQgbGlzdCBv
ZiBmb3J3YXJkLWRlY2xhcmVkIGNsYXNzZXMuIFJlbW92ZWQgZHVwbGljYXRlCisgICAgICAgIGZv
cndhcmQgZGVjbGFyYXRpb24gb2YgU2NyaXB0TW9kdWxlTG9hZGVyLgorCisgICAgICAgICogZG9t
L1BlbmRpbmdTY3JpcHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ1NjcmlwdDo6Y3Jl
YXRlKTogVGFrZSBhIFNjcmlwdEVsZW1lbnQgaW5zdGVhZCBvZiBhbiBFbGVtZW50LgorICAgICAg
ICAoV2ViQ29yZTo6UGVuZGluZ1NjcmlwdDo6UGVuZGluZ1NjcmlwdCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6UGVuZGluZ1NjcmlwdDo6bG9hZGFibGVTY3JpcHQpOiBNb3ZlZCBpbmxpbmUg
dG8gaGVhZGVyIGFuZCBtYWRlIGlubGluZS4KKyAgICAgICAgKFdlYkNvcmU6OlBlbmRpbmdTY3Jp
cHQ6OnNldENsaWVudCk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisg
ICAgICAgICogZG9tL1BlbmRpbmdTY3JpcHQuaDogVVBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4K
KworICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQpOiBQYXNzIGEgcmVmZXJlbmNlIGluc3RlYWQgb2Yg
YSBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVmKTogQWRkZWQu
IEZvcndhcmRzIHJlZi9kZXJlZiB0byB0aGUgdW5kZXJseWluZyBlbGVtZW50CisgICAgICAgIHNv
IHdlIGNhbiB1c2UgUmVmIGFuZCBSZWZQdHIgd2l0aCB0aGlzIGNsYXNzLgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0RWxlbWVudDo6ZGVyZWYpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Omlz
U2NyaXB0RWxlbWVudCk6IEFkZGVkLiBSZXBsYWNlcyBvbmUgb2YgdGhlIHR3byB1c2VzIG9mCisg
ICAgICAgIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUsIGFuZCBpcyBzaW1pbGFyIGluIHN0eWxl
IHRvIGlzPEVsZW1lbnQ+LgorICAgICAgICAoV2ViQ29yZTo6ZG93bmNhc3RTY3JpcHRFbGVtZW50
KTogRGl0dG8sIGJ1dCBmb3IgZG93bmNhc3QuCisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQu
aDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGRvbS9TY3JpcHRSdW5u
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckV4
ZWN1dGlvbik6IFRha2UgcmVmZXJlbmNlIHJhdGhlciB0aGFuCisgICAgICAgIHBvaW50ZXIsIGFu
ZCBwYXNzIFNjcmlwdEVsZW1lbnQgcmF0aGVyIHRoYW4gRWxlbWVudC4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdFJ1bm5lcjo6bm90aWZ5RmluaXNoZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCk6IERpdHRvLgorICAgICAgICAqIGRvbS9TY3Jp
cHRSdW5uZXIuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwv
RmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpmaWxl
cyk6IFVwZGF0ZWQgc2luY2UgbV9maWxlTGlzdCBpcyBhIFJlZi4KKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVJbnB1dFR5cGU6OmNyZWF0ZUZpbGVMaXN0KTogVXBkYXRlZCB0byByZXR1cm4gYSBSZWYg
aW5zdGVhZCBvZgorICAgICAgICBhIFBhc3NSZWZQdHIuIEFsc28gdXNlIHJlc2VydmVJbml0aWFs
Q2FwYWNpdHkvdW5jaGVja2VkQXBwZW5kLgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlw
ZTo6cmVxdWVzdEljb24pOiBVcGRhdGVkIHNpbmNlIHRoZSB1cGRhdGVSZW5kZXJpbmcKKyAgICAg
ICAgZnVuY3Rpb24gaXMgbm93IGNhbGxlZCBpY29uTG9hZGVkLiBBbHNvIHVzZSByZWZlcmVuY2Vz
IGluc3RlYWQgb2YgcG9pbnRlcnMuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpz
ZXRGaWxlcyk6IFRha2UgYSBSZWZQdHImJiBpbnN0ZWQgb2YgYSBQYXNzUmVmUHRyLgorICAgICAg
ICBBbHNvIHB1dCBzb21lIGNvbmRpdGlvbmFsIGNvZGUgaW5zaWRlIGFuICNpZi4KKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKTogVXBkYXRlZCBmb3IgZnVuY3Rp
b24gbmFtZSBjaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjppY29uTG9h
ZGVkKTogUmVuYW1lZCBmcm9tIHVwZGF0ZVJlbmRlcmluZy4KKyAgICAgICAgQ2hhbmdlZCBhcmd1
bWVudCB0byBSZWZQdHImJiBmcm9tIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpGaWxl
SW5wdXRUeXBlOjpkZWZhdWx0VG9vbFRpcCk6IEdvdCByaWQgb2YgdW5uZWVkZWQgbG9jYWwgdmFy
aWFibGUKKyAgICAgICAgYW5kIHVzZWQgdGhlIGNvcnJlY3QgdHlwZSwgdW5zaWduZWQsIHJhdGhl
ciB0aGFuIHNpemVfdC4KKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDogVXBkYXRlZCBm
b3IgdGhlIGFib3ZlIGNoYW5nZXMsIHVzZSBmaW5hbCBpbnN0ZWFkCisgICAgICAgIG9mIG92ZXJy
aWRlLCBhbmQgdXNlIFJlZiBpbnN0ZWFkIG9mIFJlZlB0ci4KKworICAgICAgICAqIGh0bWwvSFRN
TEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmZvcm0pOiBSZW5h
bWVkIGZyb20gdmlydHVhbEZvcm0uCisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOiBSZXBs
YWNlZCB0aGUgZm9ybS92aXJ0dWFsRm9ybSBwYWlyIG9mIGZ1bmN0aW9ucyB3aXRoCisgICAgICAg
IGp1c3QgYSBmb3JtIGZ1bmN0aW9uLiBUaGUgb2xkIGRlc2lnbiBkYXRlcyBiYWNrIGJlZm9yZSB3
ZSBoYWQgImZpbmFsIiBmb3IKKyAgICAgICAgdmlydHVhbCBmdW5jdGlvbnMsIGFuZCBub3cgd2Ug
Y2FuIGp1c3QgdXNlIHRoYXQgaW5zdGVhZC4KKworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50
Ojp2aXJ0dWFsRm9ybSk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50Lmg6IE1hcmsgdGhlIGZvcm0gZnVuY3Rpb24gZmluYWwsIHNpbmNlIGl0J3MKKyAgICAg
ICAgbm93IGJvdGggYW4gaW5saW5lIGZ1bmN0aW9uIGluIHRoaXMgY2xhc3MsIGFuZCBhbiBvdmVy
cmlkZSBvZiBhIHZpcnR1YWwKKyAgICAgICAgZnVuY3Rpb24gaW5oZXJpdGVkIGZyb20gdGhlIGJh
c2UgY2xhc3MuIERlbGV0ZWQgdGhlIHZpcnR1YWxGb3JtIGZ1bmN0aW9uLgorCisgICAgICAgICog
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBSZW1vdmVkIHVzZSBvZiB0aGUKKyAgICAgICAg
Zm9ybUZvclN1Ym1pc3Npb24gZnVuY3Rpb24sIHdoaWNoIHdhcyBqdXN0IGFub3RoZXIgd2F5IHRv
IGdldCB0aGUgc2FtZQorICAgICAgICB0aGluZyBhcyB0aGUgZm9ybSBmdW5jdGlvbjsgcGVyaGFw
cyB0aGV5IHdlcmUgZGlmZmVyZW50IGluIHRoZSBwYXN0LgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6c2V0RmlsZXMpOiBUYWtlIGEgUmVmUHRyJiYgcmF0aGVyIHRoYW4gYSBQ
YXNzUmVmUHRyLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOiBVcGRhdGVkIGZv
ciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTExhYmVsRWxlbWVudDo6Y29udHJvbCk6IE1hZGUgdGhpcyBjb25z
dC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMYWJlbEVsZW1lbnQ6OmZvcm0pOiBNYWRlIHRoaXMg
Y29uc3QsIHNvIGl0IGNhbiBiZSB1c2VkIHRvCisgICAgICAgIG92ZXJyaWRlIHRoZSBjb25zdCBm
b3JtIGZ1bmN0aW9uIGZyb20gdGhlIGJhc2UgY2xhc3MuCisgICAgICAgICogaHRtbC9IVE1MTGFi
ZWxFbGVtZW50Lmg6IE1hcmtlZCB0aGUgZm9ybSBmdW5jdGlvbiBmaW5hbCwgc2luY2Ugd2Ugd2Fu
dCBpdAorICAgICAgICB0byBvdmVycmlkZSB0aGUgZm9ybSBmdW5jdGlvbiBpbmhlcml0ZWQgZnJv
bSBIVE1MRWxlbWVudC4KKworICAgICAgICAqIGh0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTExlZ2VuZEVsZW1lbnQ6OmZvcm0pOiBSZW5hbWVkIGZyb20g
dmlydHVhbEZvcm0uCisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oOiBPdmVycmlk
ZSBmb3JtIGluc3RlYWQgb2YgdmlydHVhbEZvcm0gYW5kIG1hcmsgaXQgZmluYWwKKyAgICAgICAg
VGhpcyBtYWtlcyB0aGluZ3MgbW9yZSBlZmZpY2llbnQgaWYgc29tZW9uZSBjYWxscyBmb3JtIGRp
cmVjdGx5IG9uIHRoaXMgY2xhc3M7CisgICAgICAgIGJlZm9yZSBpdCB3b3VsZCBtYWtlIGFuIHVu
bmVjZXNzYXJ5IHZpcnR1YWwgZnVuY3Rpb24gY2FsbC4KKworICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFja0Rpc3BsYXlVcGRhdGVTY29w
ZTo6VHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUpOiBUYWtlIGEgcmVmZXJlbmNlCisgICAgICAgIHJh
dGhlciB0aGFuIGEgcG9pbnRlci4KKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrRGlzcGxheVVwZGF0
ZVNjb3BlOjp+VHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OmV2ZW50VGltZUN1ZUNvbXBhcmUpOiBDb21wYXJlIHRoZSBjdWVzIHRoZSBzYW1lIHdheSB0
aGUgY3VlIGxpc3Qgd291bGQKKyAgICAgICAgcmF0aGVyIHRoYW4gdXNpbmcgY3VlSW5kZXguCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRpb1RyYWNrRW5hYmxlZENoYW5n
ZWQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0tpbmRDaGFuZ2VkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRDdWVzKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZW1v
dmVDdWVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0
VHJhY2tBZGRDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnRleHRUcmFja1JlbW92ZUN1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKTogUGFzcyByZWZlcmVuY2VzLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRUZXh0
VHJhY2spOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlh
UGxheWVyRGlkQWRkVmlkZW9UcmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6cmVtb3ZlVGV4dFRyYWNrKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50Ojpmb3JnZXRSZXNvdXJjZVNwZWNpZmljVHJhY2tzKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyKTogVGFrZSBh
IFJlZlB0ciYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRp
YUVsZW1lbnQuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwv
SFRNTE9iamVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1l
bnQ6OnZpcnR1YWxGb3JtKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVt
ZW50Lmg6IE1hZGUgdGhlIGZvcm0gZnVuY3Rpb24gaW5saW5lIGFuZCBmaW5hbCwgd2hpY2gKKyAg
ICAgICAgYWNoaWV2ZXMgdGhlIHNhbWUgdGhpbmcgd2UgZGlkIGJlZm9yZSB3aXRoIHVzaW5nLCBi
dXQgd2l0aG91dCByZXF1aXJpbmcgdGhlCisgICAgICAgIHNlcGFyYXRlIHZpcnR1YWxGb3JtIGZ1
bmN0aW9uLCBub3cgZGVsZXRlZC4KKworICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6OmNvbGxlY3RPcHRpb25J
bm5lclRleHQpOiBVc2UgaXNTY3JpcHRFbGVtZW50CisgICAgICAgIGluc3RlYWQgb2YgdG9TY3Jp
cHRFbGVtZW50SWZQb3NzaWJsZS4KKworICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OmJpbmRpbmdzSW5zdGFu
Y2UpOiBSZW5hbWVkIGZyb20gZ2V0SW5zdGFuY2UgYW5kCisgICAgICAgIGNoYW5nZWQgdGhlIHJl
dHVybiB0eXBlIHRvIGEgcmF3IHBvaW50ZXIuCisgICAgICAgICogaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUgY2hhbmdlcy4gQWxzbyBjaGFuZ2VkIHRoZQor
ICAgICAgICB1cGRhdGVTbmFwc2hvdCBmdW5jdGlvbiB0byB0YWtlIGEgcmF3IHBvaW50ZXIgaW5z
dGVhZCBvZiBhIFBhc3NSZWZQdHIuCisKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y3Jl
YXRlRWxlbWVudFJlbmRlcmVyKTogUGFzcyBhIHBvaW50ZXIKKyAgICAgICAgdG8gdXBkYXRlU25h
cHNob3QuCisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRhdGVT
bmFwc2hvdCk6IFVwZGF0ZWQgdG8gdGFrZSBhIHJhdworICAgICAgICBwb2ludGVyIGluc3RlYWQg
b2YgYSBQYXNzUmVmUHRyLgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5o
OiBVcGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0
RWxlbWVudC5oOiBBZGRlZCB1c2luZyB0byByZXNvbHZlIHRoZSBhbWJpZ3VpdHkgd2l0aCB0aGUK
KyAgICAgICAgcmVmL2RlcmVmIGZyb20gSFRNTEVsZW1lbnQgYW5kIGZyb20gU2NyaXB0RWxlbWVu
dC4KKworICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvbik6IFJl
dHVybiBhIFJlZlB0ciBpbnN0ZWFkCisgICAgICAgIG9mIGEgUGFzc1JlZlB0ci4KKyAgICAgICAg
KiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNo
YW5nZXMuCisKKyAgICAgICAgKiBodG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQpOiBUYWtlIGEg
cmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNr
TW9kZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmFja0VsZW1lbnQ6
OnRleHRUcmFja0FkZEN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmFja0Vs
ZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlKTogRGl0dG8uCisgICAgICAg
ICogaHRtbC9IVE1MVHJhY2tFbGVtZW50Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisK
KyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGU6OmZvcm1Gb3JTdWJtaXNzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZTo6c2V0RmlsZXMpOiBUYWtlIGEgUmVmUHRyJiYgaW5zdGVhZCBvZiBhIFBhc3NSZWZQdHIu
CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4K
KworICAgICAgICAqIGh0bWwvUGx1Z2luRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50U3RydWN0dXJlKTogUGFzcyBhIHJl
ZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRvY3VtZW50OjpzZXRQbHVnaW5FbGVt
ZW50KTogVGFrZSBhIHJlZmVyZW5jZSByYXRoZXIgdGhhbgorICAgICAgICBhIFBhc3NSZWZQdHIu
CisgICAgICAgICogaHRtbC9QbHVnaW5Eb2N1bWVudC5oOiBVcGRhdGVkIGZvciBhYm92ZSBjaGFu
Z2VzLgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0U3Ryb2tl
U3R5bGUpOiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpzZXRGaWxsU3R5bGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbCk6IERpdHRvLgorCisgICAg
ICAgICogaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fu
dmFzU3R5bGU6OkNhbnZhc1N0eWxlKTogUmV3cml0ZSBhbGwgY29uc3RydWN0b3JzIHRvIHVzZSB0
aGUKKyAgICAgICAgbV9zdHlsZSB2YXJpYW50IGluc3RlYWQgb2Ygc2VwYXJhdGUgbV90eXBlIGFu
ZCBvdGhlciBkYXRhIG1lbWJlcnMuIEFsc28KKyAgICAgICAgY2hhbmdlIGZyb20gUGFzc1JlZlB0
ciB0byBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjpjcmVhdGVG
cm9tU3RyaW5nKTogVXBkYXRlIHRvIHVzZSB0aGUgdmFyaWFudC4KKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhc1N0eWxlOjpjcmVhdGVGcm9tU3RyaW5nV2l0aE92ZXJyaWRlQWxwaGEpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDb2xvcik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmlzRXF1aXZhbGVudFJHQkEpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDTVlLQSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKTogRGVsZXRl
ZCBjb3B5IGNvbnN0cnVjdG9yOyB0aGUgY29tcGlsZXIKKyAgICAgICAgY2FuIG5vdyBnZW5lcmF0
ZSBhIGNvcnJlY3QgY29weSBvciBtb3ZlIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzU3R5bGU6On5DYW52YXNTdHlsZSk6IERlbGV0ZWQuIENvbXBpbGVyIGdlbmVyYXRlcyB0
aGlzCisgICAgICAgIHByb3Blcmx5IG5vdyB3aXRob3V0IGhlbHAgZnJvbSB1cy4KKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhc1N0eWxlOjpvcGVyYXRvcj0pOiBEZWxldGVkLiBUaGUgY29tcGlsZXIg
Y2FuIG5vdyBnZW5lcmF0ZQorICAgICAgICBhIGNvcnJlY3QgY29weSBvZiBtb3ZlIGFzc2lnbm1l
bnQgb3BlcmF0b3IuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHlsZTo6YXBwbHlTdHJva2VD
b2xvcik6IFVwZGF0ZWQgdG8gdGFrZSBhIHJlZmVyZW5jZSBhbmQKKyAgICAgICAgdXNlIHRoZSB2
YXJpYW50LgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OmFwcGx5RmlsbENvbG9yKTog
RGl0dG8uCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oOiBSZWRpZCB0aGlz
IGNsYXNzIHRvIHVzZSBhIHZhcmlhbnQgaW5zdGVhZCBvZgorICAgICAgICBhIHR5cGUgZW51bWVy
YXRpb24gYW5kIGEgdW5pb24uCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJh
eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPRVNWZXJ0ZXhBcnJheU9iamVjdDo6Y3Jl
YXRlVmVydGV4QXJyYXlPRVMpOiBVcGRhdGVkIHVzZSBvZiBlbnVtCisgICAgICAgIHNpbmNlIGl0
J3Mgbm93IGFuIGVudW0gY2xhc3MuCisKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQpOiBVc2UgUmVmJiYgaW5zdGVhZCBvZgorICAgICAg
ICBSZWZQdHImJiBmb3IgdGhlIEdyYXBoaWNzQ29udGV4dDNELgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cyk6IFVw
ZGF0ZWQgZW51bQorICAgICAgICBhbmQgYWxzbyB1c2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEludGVybmFsZm9ybWF0UGFyYW1ldGVy
KTogVXNlIG51bGxwdHIgdG8KKyAgICAgICAgcmV0dXJuIG51bGwgcmF0aGVyIHRoYW4gdGhlIG9s
ZCBpZGlvbSAoZGVmYXVsdC1jb25zdHJ1Y3RlZCBXZWJHTEdldEluZm8pLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dGV4U3RvcmFnZTJEKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRRdWVyeVBhcmFtZXRlcik6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2Ft
cGxlclBhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6Z2V0U3luY1BhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2Nr
UGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpnZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVWZXJ0ZXhBcnJheSk6IFVwZGF0ZWQgZW51
bSBhbmQgYWxzbworICAgICAgICB1c2UgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKTogUmVhcnJhbmdlZCBsb2dpYyBpbiB0
aHJlZSB3YXlzOgorICAgICAgICAoMSkgTW92ZWQgY2hlY2tzIGZvciB3aGV0aGVyIGFuIGV4dGVu
c2lvbiBpcyBzdXBwb3J0ZWQgaW5zaWRlIHRoZSBjYXNlIGZvciB0aGF0CisgICAgICAgIGV4dGVu
c2lvbiwgcmF0aGVyIHRoYW4gY29tYmluaW5nIHRoZSBleHRlbnNpb24gbmFtZSBjaGVjayB3aXRo
IHRoZSBleHRlbnNpb25zCisgICAgICAgIGVuYWJsZWQgY2hlY2suICgyKSBVc2VkIHRoZSBuZXcg
ZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uIGZ1bmN0aW9uIHRvIHNpbXBsaWZ5CisgICAgICAgIG1h
bnkgb2YgdGhlIGNoZWNrcyB0byBhdm9pZCByZXBlYXRpbmcgdGhlIGV4dGVuc2lvbiBuYW1lIHR3
aWNlLiAoMykgQ2hhbmdlZCB0aGUKKyAgICAgICAgaWRpb20gc28gd2Ugc2V0IHRoZSBwb2ludGVy
cyB0byBudWxscHRyIGV4cGxpY2l0bHksIHByZXBhcmluZyBmb3IgYSBmdXR1cmUgd2hlcmUKKyAg
ICAgICAgd2UgbWlnaHQgbWFrZSB0aGUgZXh0ZW5zaW9uIHBvaW50ZXJzIHVzZSBzdGQ6Om9wdGlv
bmFsIHNvIHdlIGNhbiBjYWNoZSBhIG5lZ2F0aXZlCisgICAgICAgIGZvciBlYWNoIGV4dGVuc2lv
biB0b28sIG5vdCBqdXN0IGEgcG9zaXRpdmUgcmVzdWx0LgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucyk6IFVzZSBBU0NJSUxp
dGVyYWwuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIpOiBVc2UgbnVsbHB0cgorICAgICAgICBhcyBhYm92
ZS4gRm9yIG5vbi1udWxsIHR5cGVzLCByZXR1cm4gdGhlIG9iamVjdCB3aXRob3V0IGNvbnZlcnRp
bmcsIGxldHRpbmcgdGhlCisgICAgICAgIFdlYkdMQW55IGNsYXNzIGhhbmRsZSB0aGluZ3MsIGV4
Y2VwdCBmb3IgZW51bWVyYXRpb25zLCB3aGljaCB3ZSBuZWVkIHRvIGV4cGxpY2l0bHkKKyAgICAg
ICAgc3RhdGljX2Nhc3QgdG8gYW4gaW50ZWdyYWwgdHlwZSwgYW5kIHRoaW5ncyB0aGF0IHdpbGwg
YmUgc3RvcmVkIGluIHRoZSB2YXJpYW50IGluCisgICAgICAgIGEgUmVmUHRyLCB3aGVyZSB3ZSB1
c2UgbWFrZVJlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OnZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyk6CisgICAgICAgIFNpbXBsaWZpZWQg
YW5kIGNsYXJpZmllZCB0aGUgaGFuZGxpbmcgb2YgQ09MT1JfQVRUQUNITUVOVC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcik6IFJldHVybiBX
ZWJHTEFueSwgc2FtZSBpZGlvbSBhcworICAgICAgICBkZXNjcmliZWQgYWJvdmUgZm9yIGdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlci4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJH
TDJSZW5kZXJpbmdDb250ZXh0Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTEFueS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
dG9KUyk6IEhhbmRsZXMgY29udmVyc2lvbiB0byBKYXZhU2NyaXB0IHR5cGVzLiBUaGlzIGZ1bmN0
aW9uIGlzIGJhc2VkCisgICAgICAgIG9uIHRoZSBleGlzdGluZyB0b0pTIGZ1bmN0aW9ucyBmcm9t
IHRoZSB0d28gY2xhc3NlcyB0aGF0IHdlcmUgdXNpbmcgV2ViR0xHZXRJbmZvLgorICAgICAgICBF
dmVudHVhbGx5IHdlIGNhbiBwcm9iYWJseSBqdXN0IGdldCB0aGUgYmluZGluZ3MgdG8gYXV0b21h
dGljYWxseSBnZW5lcmF0ZSB0aGlzLAorICAgICAgICBidXQgdGhlcmUgaXMgc29tZSB3b3JrIHRv
IGRvIHRvIGdldCB0byB0aGF0IHBvaW50LgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQW55
Lmg6IEFkZGVkLiBUaGlzIHR5cGUsIGEgdmFyaWFudCwgcmVwbGFjZXMgdGhlIFdlYkdMR2V0SW5m
bworICAgICAgICBjbGFzcy4gQWxzbyBpbmNsdWRlcyB0aGUgdG9KUyBmdW5jdGlvbiwgd2hpY2gg
aXMgdGhlIHJlYWwgcG9pbnQgb2YgdGhpcyB0eXBlLCBzaW5jZQorICAgICAgICBpdCdzIGFib3V0
IHJldHVybmluZyBhIHZhcmlhbnQgbWFwcGVkIGFwcHJvcHJpYXRlbHkgdG8gSmF2YVNjcmlwdCB0
eXBlcy4KKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjpnZXRBR3JhcGhpY3NDb250ZXh0M0Qp
OiBDaGFuZ2VkIHRvIHJldHVybiBhIHJlZmVyZW5jZS4KKyAgICAgICAgRHJvcGVkIHVubmVjZXNz
YXJ5IGxvY2FsIHZhcmlhYmxlIHdpdGggYSBsb25nIHR5cGUgbmFtZS4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMQ29udGV4dEdyb3VwOjphZGRDb250ZXh0KTogVGFrZSBhIHJlZmVyZW5jZS4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjpyZW1vdmVDb250ZXh0KTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlT2JqZWN0KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRHcm91cDo6YWRkT2JqZWN0KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRHcm91cDo6ZGV0YWNoQW5kUmVtb3Zl
QWxsT2JqZWN0cyk6IERyb3BwZWQgdW5uZWNlc3NhcnkKKyAgICAgICAgbG9jYWwgdmFyaWFibGUg
d2l0aCBhIGxvbmcgdHlwZSBuYW1lLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4
dEdyb3VwLmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xDb250
ZXh0T2JqZWN0Ojp+V2ViR0xDb250ZXh0T2JqZWN0KTogUGFzcyByZWZlcmVuY2VzLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xDb250ZXh0T2JqZWN0OjpkZXRhY2hDb250ZXh0KTogRGl0dG8uCisK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oOiBSZW1vdmVkLgorCisgICAgICAgICogaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dDo6V2ViR0xSZW5kZXJpbmdDb250ZXh0KTogVGFrZSBhIFJlZiYm
IGluc3RlYWQKKyAgICAgICAgb2YgYXMgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cyk6IFVwZGF0
ZWQgZW51bQorICAgICAgICBhbmQgYWxzbyB1c2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKTogUmVhcnJhbmdlZCBsb2dp
YyBpbiB0aHJlZSB3YXlzOgorICAgICAgICAoMSkgTW92ZWQgY2hlY2tzIGZvciB3aGV0aGVyIGFu
IGV4dGVuc2lvbiBpcyBzdXBwb3J0ZWQgaW5zaWRlIHRoZSBjYXNlIGZvciB0aGF0CisgICAgICAg
IGV4dGVuc2lvbiwgcmF0aGVyIHRoYW4gY29tYmluaW5nIHRoZSBleHRlbnNpb24gbmFtZSBjaGVj
ayB3aXRoIHRoZSBleHRlbnNpb25zCisgICAgICAgIGVuYWJsZWQgY2hlY2suICgyKSBVc2VkIHRo
ZSBuZXcgZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uIGZ1bmN0aW9uIHRvIHNpbXBsaWZ5CisgICAg
ICAgIG1hbnkgb2YgdGhlIGNoZWNrcyB0byBhdm9pZCByZXBlYXRpbmcgdGhlIGV4dGVuc2lvbiBu
YW1lIHR3aWNlLiAoMykgQ2hhbmdlZCB0aGUKKyAgICAgICAgaWRpb20gc28gd2Ugc2V0IHRoZSBw
b2ludGVycyB0byBudWxscHRyIGV4cGxpY2l0bHksIHByZXBhcmluZyBmb3IgYSBmdXR1cmUgd2hl
cmUKKyAgICAgICAgd2UgbWlnaHQgbWFrZSB0aGUgZXh0ZW5zaW9uIHBvaW50ZXJzIHVzZSBzdGQ6
Om9wdGlvbmFsIHNvIHdlIGNhbiBjYWNoZSBhIG5lZ2F0aXZlCisgICAgICAgIGZvciBlYWNoIGV4
dGVuc2lvbiB0b28sIG5vdCBqdXN0IGEgcG9zaXRpdmUgcmVzdWx0LgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKTogVXNlIEFT
Q0lJTGl0ZXJhbC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0
RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKTogVXNlIG51bGxwdHIKKyAgICAgICAgYXMg
YWJvdmUuIEZvciBub24tbnVsbCB0eXBlcywgcmV0dXJuIHRoZSBvYmplY3Qgd2l0aG91dCBjb252
ZXJ0aW5nLCBsZXR0aW5nIHRoZQorICAgICAgICBXZWJHTEFueSBjbGFzcyBoYW5kbGUgdGhpbmdz
LCBleGNlcHQgZm9yIGVudW1lcmF0aW9ucywgd2hpY2ggd2UgbmVlZCB0byBleHBsaWNpdGx5Cisg
ICAgICAgIHN0YXRpY19jYXN0IHRvIGFuIGludGVncmFsIHR5cGUsIGFuZCB0aGluZ3MgdGhhdCB3
aWxsIGJlIHN0b3JlZCBpbiB0aGUgdmFyaWFudCBpbgorICAgICAgICBhIFJlZlB0ciwgd2hlcmUg
d2UgdXNlIG1ha2VSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OnZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVycyk6CisgICAgICAgIFNpbXBsaWZp
ZWQgYW5kIGNsYXJpZmllZCB0aGUgaGFuZGxpbmcgb2YgQ09MT1JfQVRUQUNITUVOVCBhZGRpbmcg
YSBGSVhNRSBhYm91dAorICAgICAgICBzb21ldGhpbmcgcXVlc3Rpb25hYmxlLgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIpOiBSZXR1cm4gV2Vi
R0xBbnksIHNhbWUgaWRpb20gYXMKKyAgICAgICAgZGVzY3JpYmVkIGFib3ZlIGZvciBnZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Lmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZSk6IFVwZGF0ZWQgdG8gcGFz
cyByZWZlcmVuY2VzCisgICAgICAgIGluc3RlYWQgb2YgcG9pbnRlcnMgaW4gYSBjb3VwbGUgY2Fz
ZXMKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UpOiBDaGFuZ2VkIGdyYXBoaWNzCisgICAgICAgIGNvbnRleHQgYXJn
dW1lbnQgdHlwZSBmcm9tIFJlZlB0ciYmIHRvIFJlZiYmLiBBbHNvIG1vdmVkIGluaXRpYWxpemF0
aW9uIG9mIHNjYWxhcnMKKyAgICAgICAgZnJvbSB0aGUgY29uc3RydWN0b3IgdG8gdGhlIGNsYXNz
IGRlZmluaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Ojp+V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVCdWZmZXIpOiBQYXNz
IGEgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlRnJhbWVidWZmZXIpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZVRleHR1cmUpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0
ZVByb2dyYW0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmNyZWF0ZVJlbmRlcmJ1ZmZlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlU2hhZGVyKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVCdWZmZXIpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBh
cmFtZXRlcik6IFVwZGF0ZSB0byB1c2UgV2ViR0xBbnkuCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRQcm9ncmFtUGFyYW1ldGVyKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZmZXJQ
YXJhbWV0ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFNoYWRlclBhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VGV4UGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhB
dHRyaWIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldFZlcnRleEF0dHJpYk9mZnNldCk6IFJlbW92ZWQgdW5ubmVlZAorICAgICAgICB0eXBl
IGNhc3RzLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVy
dGV4QXR0cmliUG9pbnRlcik6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVTaGFyZWRPYmplY3QpOiBUYWtlIGEgcmVm
ZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRk
U2hhcmVkT2JqZWN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpyZW1vdmVDb250ZXh0T2JqZWN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphZGRDb250ZXh0T2JqZWN0KTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCb29sZWFuUGFy
YW1ldGVyKTogQ2hhbmdlZCByZXR1cm4gdHlwZTsKKyAgICAgICAgY29ubnZlcnNpb24gdG8gV2Vi
R0xBbnkgY2FuIGhhcHBlbiBhdCB0aGUgcG9pbnQgb2YgdXNlLgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Qm9vbGVhbkFycmF5UGFyYW1ldGVyKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRGbG9h
dFBhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Z2V0SW50UGFyYW1ldGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbnNpZ25lZEludFBhcmFtZXRlcik6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0SW50NjRQYXJh
bWV0ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldFdlYkdMRmxvYXRBcnJheVBhcmFtZXRlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcik6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFs
aWRhdGVCdWZmZXJEYXRhUGFyYW1ldGVycyk6IFVzZQorICAgICAgICBvcHRpb25hbCB0byBzaW1w
bGlmeSBsb2dpYyBhbmQgZ2V0IHJpZCBvZiBhIGJvb2xlYW4uCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjplbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24pOiBBZGRl
ZC4KKyAgICAgICAgSGVscGVyIHVzZWQgYnkgdGhlIGdldEV4dGVuc2lvbiBmdW5jdGlvbnMuCisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOiBVcGRhdGVk
IGZvciB0aGUgYWJvdmUgY2hhbmdlcy4KKyAgICAgICAgQWxzbyBjaGFuZ2VkIHNldEJvdW5kVmVy
dGV4QXJyYXlPYmplY3QgdG8gdGFrZSBhIHJhdyBwb2ludGVyIGluc3RlYWQgb2YKKyAgICAgICAg
YXMgUGFzc1JlZlB0ci4KKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMU2hhcmVkT2JqZWN0Ojp+V2ViR0xTaGFyZWRP
YmplY3QpOiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTaGFyZWRP
YmplY3Q6OmRldGFjaENvbnRleHRHcm91cCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xTaGFyZWRPYmplY3Q6OmdldEFHcmFwaGljc0NvbnRleHQzRCk6IFVwZGF0ZWQgc2luY2UgdGhl
CisgICAgICAgIHVuZGVybHlpbmcgZ2V0QUdyYXBoaWNzQ29udGV4dDNEIGZ1bmN0aW9uIG5vdyBy
ZXR1cm5zIGEgcmVmZXJlbmNlLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRP
YmplY3QuaDogUmVtb3ZlZCBtYW55IHVudXNlZCAiaXMiIHZpcnR1YWwgZnVuY3Rpb25zLgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaDogRGl0dG8uCisKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZSk6IFVwZGF0ZWQgZm9yIG5l
dyB0eXBlIGVudW1lcmF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9i
amVjdDo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6ZGVsZXRlT2JqZWN0SW1wbCk6IERpdHRvLgorICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaDogVXBkYXRlZCBmb3IgYWJv
dmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmpl
Y3RCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNl
OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSk6IFVwZGF0ZWQgZm9yIG5ldworICAgICAgICB0
eXBlIGVudW1lcmF0aW9uIGFuZCBtb3ZlZCBpbml0aWFsaXphdGlvbiB0byBjbGFzcyBkZWZpbml0
aW9uLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldEVs
ZW1lbnRBcnJheUJ1ZmZlcik6IENoYW5nZWQgYXJndW1lbnQgdG8KKyAgICAgICAgcmF3IHBvaW50
ZXIgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhB
cnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKTogQ2hhbmdlZCBhcmd1bWVudCB0
bworICAgICAgICByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZlcik6IENoYW5nZWQg
YXJ1Z21lbnQgdHlwZSB0bworICAgICAgICByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRy
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRl
eEF0dHJpYkRpdmlzb3IpOiBSZW1vdmVkIHVubmVlZGVkCisgICAgICAgIGxvY2FsIHZhcmlhYmxl
LgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmg6IFVw
ZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisgICAgICAgIFJlcGxhY2VkIFZBT1R5cGUgd2l0aCBU
eXBlLiBVc2VkIGNsYXNzIG1lbWJlciBpbml0aWFsaXphdGlvbi4KKworICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6Y3JlYXRlKTogVXBkYXRlZCBmb3IgbmV3IHR5cGUg
ZW51bWVyYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjp+V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUykgRGl0
dG8uOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6ZGVsZXRl
T2JqZWN0SW1wbCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0
bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUljb25M
b2FkZXI6Omljb25Mb2FkZWQpOiBSZW5hbWVkIGZyb20gbm90aWZ5RmluaXNoZWQuIEFsc28gY2hh
bmdlZAorICAgICAgICB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gdGhpcyBjYWxscyB0byBpY29u
TG9hZGVkLiBDaGFuZ2VkIHRoZSBhcmd1ZW1udCB0bworICAgICAgICBSZWZQdHImJiBpbnN0ZWFk
IG9mIFBhc3NSZWZQdHIuCisgICAgICAgICogaHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5oOiBV
cGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNp
dGU6OmF0dGFjaExhdGVyKTogVXNlIGlzU2NyaXB0RWxlbWVudCBpbnN0ZWFkIG9mCisgICAgICAg
IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29uc3Ry
dWN0aW9uU2l0ZTo6aW5zZXJ0Rm9yZWlnbkVsZW1lbnQpOiBEaXR0by4KKworICAgICAgICAqIGh0
bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
RG9jdW1lbnRQYXJzZXI6OnJ1blNjcmlwdHNGb3JQYXVzZWRUcmVlQnVpbGRlcik6IFBhc3Mgc2Ny
aXB0CisgICAgICAgIGVsZW1lbnQgYXMgYSBSZWYgcmF0aGVyIHRoYW4gUmVmUHRyLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjp3YXRjaEZvckxvYWQpOiBQYXNzIGEgcmVm
ZXJlbmNlIGluc3RlYWQgb2YgYSBwb2ludGVyLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRN
TFNjcmlwdFJ1bm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVubmVyOjpl
eGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0KTogRGVsZXRlZC4gTW92ZWQgdGhlIGNvZGUKKyAg
ICAgICAgaW50byB0aGUgc2luZ2xlIGNhbGwgc2l0ZSwgZXhlY3V0ZSBQYXJzaW5nQmxvY2tpbmdT
Y3JpcHRzLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBlbmRp
bmdTY3JpcHRBbmREaXNwYXRjaEV2ZW50KTogQ2hhbmdlZCBhcmd1bWVudAorICAgICAgICB0eXBl
IHRvIGEgcmVmZXJlbmNlIGZyb20gYSBSZWZQdHI7IHRoaXMgZnVudGlvbiB3YXMgbm90IHRha2lu
ZyBvd25lcnNoaXAuIEFsc28gcmVtb3ZlCisgICAgICAgIGNhbGwgdG8gdG9TY3JpcHRFbGVtZW50
SWZQb3NzaWJsZSwKKyAgICAgICAgc2luY2UgcGVuZGluZyBzY3JpcHRzIG5vdyBjb250YWlucyBz
Y3JpcHQgZWxlbWVudHMgYWxyZWFkeS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5u
ZXI6OmV4ZWN1dGUpOiBDaGFuZ2VkIGFyZ3VtZW50IHR5cGUgdG8gUmVmPFNjcmlwdEVsZW1lbnQ+
JiYKKyAgICAgICAgZnJvbSBQYXNzUmVmUHRyPEVsZW1lbnQ+LgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVBhcnNpbmdCbG9ja2luZ1NjcmlwdHMpOiBNb3ZlZCBj
b2RlIGhlcmUgZnJvbQorICAgICAgICBleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0LiBBbHNv
IHBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVubmVyOjpl
eGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JQYXJzaW5nKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OnJlcXVlc3RQZW5kaW5nU2NyaXB0KTogQ2hhbmdlZCBhcmd1bWVudCB0eXBl
IHRvIFNjcmlwdEVsZW1lbnQmIGZyb20KKyAgICAgICAgRWxlbWVudCouCisgICAgICAgIChXZWJD
b3JlOjpIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0RGVmZXJyZWRT
Y3JpcHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6OnJ1blNj
cmlwdCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuaDog
VXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxU
cmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnRha2VT
Y3JpcHRUb1Byb2Nlc3MpOiBDaGFuZ2VkIHJldHVybiB0eXBlIGZyb20KKyAgICAgICAgUmVmUHRy
PEVsZW1lbnQ+IHRvIFJlZlB0cjxTY3JpcHRFbGVtZW50Pi4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyk6IERvd25jYXN0IHRoZSBzY3JpcHQgZWxlbWVu
dCB0bworICAgICAgICBIVE1MU2NyaXB0RWxlbWVudCBzbyB3ZSBjYW4gc3RvcmUgaXQgYXMgYSBT
Y3JpcHRFbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
VG9rZW5JbkZvcmVpZ25Db250ZW50KTogRG93bmNhc3QgdGhlIHNjcmlwdAorICAgICAgICBlbGVt
ZW50IHRvIFNWR1NjcmlwdEVsZW1lbnQgc28gd2UgY2FuIHN0b3JlIGl0IGFzIGEgc2NyaXB0IGVs
ZW1lbnQuCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmg6IFVwZGF0ZWQg
Zm9yIGFib3ZlIGNoYW5nZXMuIENoYW5nZWQgdGhlIHR5cGUKKyAgICAgICAgb2YgbV9zY3JpcHRU
b1Byb2Nlc3MgdG8gUmVmUHRyPFNjcmlwdEVsZW1lbnQ+LgorCisgICAgICAgICogaHRtbC9wYXJz
ZXIvVGV4dERvY3VtZW50UGFyc2VyLmNwcDogQWRkZWQgbm93LW5lZWRlZCBpbmNsdWRlLgorCisg
ICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlhTU0F1ZGl0b3JEZWxlZ2F0ZTo6Z2VuZXJhdGVWaW9sYXRpb25SZXBvcnQpOiBDaGFu
Z2VkIHJldHVybiB0eXBlCisgICAgICAgIHRvIFJlZiBmcm9tIFBhc3NSZWZQdHIuCisgICAgICAg
ICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmg6IFVwZGF0ZWQgZm9yIGFib3ZlLgor
CisgICAgICAgICogaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvVHJhY2s6OkF1ZGlvVHJhY2spOiBUYWtlIHJlZmVyZW5jZXMuCisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1RyYWNrOjpzZXRQcml2YXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1RyYWNrOjpzZXRFbmFibGVkKTogUmVtb3ZlZCByZWR1bmRhbnQgY29kZSB0byBkbyB3aGF0
IHRoZQorICAgICAgICBwcml2YXRlIHNldEVuYWJsZWQgZnVuY3Rpb24gaXMgYWxyZWFkeSBnb2lu
ZyB0byBkby4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmluYmFuZFRyYWNrSW5kZXgp
OiBSZW1vdmVkIGFzc2VydGlvbiBzaW5jZSBtX3ByaXZhdGUKKyAgICAgICAgaXMgbm93IGEgUmVm
IHJhdGhlciB0aGFuIFJlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmVuYWJs
ZWRDaGFuZ2VkKTogQWRkZWQgYW4gZWFybHkgZXhpdCBzbyB3ZSB3aWxsIG9ubHkKKyAgICAgICAg
Y2FsbCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQgaWYgbV9lbmFibGVkIGlzIGFjdHVhbGx5IGNo
YW5naW5nLiBBbHNvIHJlbW92ZWQKKyAgICAgICAgdGhlIHVubmVlZGVkIHRyYWNrIHByaXZhdGUg
YXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjppZENoYW5nZWQpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2s6OmxhYmVsQ2hhbmdlZCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9UcmFjazo6bGFuZ3VhZ2VDaGFuZ2VkKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrOjp3aWxsUmVtb3ZlKTogRGl0dG8uCisgICAgICAg
ICogaHRtbC90cmFjay9BdWRpb1RyYWNrLmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisK
KyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZSk6IFJlbW92ZWQgaW5iYW5k
IHRleHQgdHJhY2sgcHJpdmF0ZQorICAgICAgICBhcmd1bWVudC4gVXNlIGNvbnRhaW5zIGluc3Rl
YWQgb2YgZmluZC9lbmQuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmREYXRhVGV4dFRyYWNrOjp1
cGRhdGVEYXRhQ3VlKTogRGl0dG8uIFVzZSBnZXQgaW5zdGVhZCBvZiBmaW5kL2VuZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkluYmFuZERhdGFUZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUpOiBEaXR0by4K
KyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suaDogVXBkYXRlZCBmb3Ig
YWJvdmUgY2hhbmdlcy4KKworICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRU
cmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpJbmJh
bmRHZW5lcmljVGV4dFRyYWNrKTogVGFrZSByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29yZTo6
SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVDdWVGcm9tQ3VlRGF0YSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSk6
IERpdHRvLiBBbHNvIHJlbW92ZWQgdW51c2VkCisgICAgICAgIHRyYWNrIHByaXZhdGUgYXJndW1l
bnQuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp1cGRhdGVHZW5l
cmljQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNr
OjpyZW1vdmVHZW5lcmljQ3VlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRHZW5l
cmljVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRURmlsZUhlYWRlcik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6bmV3UmVnaW9uc1Bh
cnNlZCk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRHZW5l
cmljVGV4dFRyYWNrLmg6IFVwZGF0ZWQgZm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBo
dG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRU
ZXh0VHJhY2s6OmNyZWF0ZSk6IFJldHVybiBhIFJlZiBpbnN0ZWFkIG9mIGEgUGFzc1JlZlB0ci4g
VGFrZQorICAgICAgICByZWZlcmVuY2VzLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRy
YWNrOjpJbmJhbmRUZXh0VHJhY2spOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRl
eHRUcmFjazo6c2V0UHJpdmF0ZSk6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIFBhc3NS
ZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OmlzQ2xvc2VkQ2FwdGlv
bnMpOiBSZW1vdmVkIGNoZWNrIGZvciBudWxsIHNpbmNlIG1fcHJpdmF0ZQorICAgICAgICBpcyBu
b3cgYSBSZWYgYW5kIHNvIG5ldmVyIG51bGwuCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0
VHJhY2s6OmlzU0RIKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6
OmNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
SW5iYW5kVGV4dFRyYWNrOjppc01haW5Qcm9ncmFtQ29udGVudCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjppc0Vhc3lUb1JlYWQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6aW5iYW5kVHJhY2tJbmRleCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjppbkJhbmRNZXRhZGF0YVRyYWNrRGlzcGF0
Y2hUeXBlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OmlkQ2hh
bmdlZCk6IFJlbW92ZWQgdW5uZWVkZWQgdHJhY2sgcHJpdmF0ZSBhcmd1bWVudC4KKyAgICAgICAg
KFdlYkNvcmU6OkluYmFuZFRleHRUcmFjazo6bGFiZWxDaGFuZ2VkKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6Omxhbmd1YWdlQ2hhbmdlZCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjp3aWxsUmVtb3ZlKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2s6OnVwZGF0ZUtpbmRGcm9tUHJpdmF0ZSk6IElt
cHJvdmVkIHN3aXRjaCBzdGF0ZW1lbnQKKyAgICAgICAgYnkgcmVtb3ZpbmcgZGVmYXVsdCBzbyB3
ZSBnZXQgYSB3YXJuaW5nIGlmIHdlIGZvcmdldCB0byBoYW5kbGUgYSBraW5kIHZhbHVlLgorICAg
ICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrOjpzdGFydFRpbWVWYXJpYW5jZSk6IFJlbW92
ZWQgY2hlY2sgZm9yIG51bGwuCisgICAgICAgICogaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2su
aDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlcy4gQ2hhbmdlZCBtX3ByaXZhdGUgZnJvbQorICAg
ICAgICBhIFJlZlB0ciB0byBhIFJlZi4KKworICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kV2Vi
VlRUVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFdlYlZUVFRleHRUcmFj
azo6SW5iYW5kV2ViVlRUVGV4dFRyYWNrKTogVGFrZSByZWZlcmVuY2VzLgorICAgICAgICAoV2Vi
Q29yZTo6SW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkluYmFuZFdlYlZUVFRleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKTogUmVtb3Zl
ZCB1bm5lZWRlZCB0cmFjaworICAgICAgICBwcml2YXRlIGFyZ3VlbW50LgorICAgICAgICAoV2Vi
Q29yZTo6SW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpuZXdSZWdpb25zUGFyc2VkKTogUGFzcyBhIHJl
ZmVyZW5jZS4KKyAgICAgICAgKiBodG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oOiBV
cGRhdGVkIGZvciBhYm92ZSBjaGFuZ2VzLgorCisgICAgICAgICogaHRtbC90cmFjay9Mb2FkYWJs
ZVRleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2FkYWJsZVRleHRUcmFjazo6bmV3
Q3Vlc0F2YWlsYWJsZSk6IFBhc3MgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6OkxvYWRh
YmxlVGV4dFRyYWNrOjpuZXdSZWdpb25zQXZhaWxhYmxlKTogRGl0dG8uCisKKyAgICAgICAgKiBo
dG1sL3RyYWNrL1RleHRUcmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6On5U
ZXh0VHJhY2spOiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6
c2V0S2luZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpzZXRNb2RlKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OnJlbW92ZUFsbEN1ZXMpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFjazo6YWN0aXZlQ3Vlcyk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjphZGRDdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlRleHRUcmFjazo6cmVtb3ZlQ3VlKTogUmVtb3ZlZCB1bm5lZWRlZCBjb2RlIHRvIGhhbmRs
ZSBhIGN1ZQorICAgICAgICB0aGF0IHBvaW50cyB0byBhIHRyYWNrIGJ1dCBpcyBub3QgaW4gdGhh
dCB0cmFjay4gQWRkZWQgYSBjYWxsIHRvCisgICAgICAgIHNldElzQWN0aXZlKGZhbHNlKSBoZXJl
IGluc3RlYWQgb2YgaGF2aW5nIHRoZSByZW1vdmUgZnVuY3Rpb24gZG8gaXQuCisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2s6OmFkZFJlZ2lvbik6IFVzZSByZWZlcmVuY2VzLgorICAgICAgICAo
V2ViQ29yZTo6VGV4dFRyYWNrOjpyZW1vdmVSZWdpb24pOiBSZW1vdmVkIHVubmVlZGVkIGNvZGUg
dG8gaGFuZGxlIGEKKyAgICAgICAgcmVnaW9uIHRoYXQgcG9pbnRzIHRvIGEgdHJhY2sgYnV0IGlz
IG5vdCBpbiB0aGF0IHRyYWNrLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpjdWVXaWxs
Q2hhbmdlKTogVXNlIHJlZmVyZW5jZXMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2s6OmN1
ZURpZENoYW5nZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjpzZXRMYW5n
dWFnZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrLmg6IFVwZGF0ZWQg
Zm9yIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OlRleHRUcmFja0N1ZSk6IEluaXRp
YWxpemVkIHRoZSBkYXRhIG1lbWJlcnMKKyAgICAgICAgaW4gdGhlIGNsYXNzIGRlZmluaXRpb24u
CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmN1ZUluZGV4KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6aW52YWxpZGF0ZUN1ZUluZGV4KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oOiBVcGRhdGVkIGZvciB0aGUg
YWJvdmUuIFJlbW92ZWQgbV9jdWVJbmRleCwKKyAgICAgICAgYmVjYXVzZSBpdCBpcyBub3QgYSBn
b29kIGRlc2lnbiB0byBzdG9yZSB0aGVzZSBhbmQgdHJ5IHRvIGtlZXAgdGhlbSB1cAorICAgICAg
ICB0byBkYXRlLgorCisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVDdWVzKTogQWRkZWQuIEhlbHBlciBmb3Igc29ydGlu
ZyBhbmQgY2hlY2tpbmcgc29ydGluZy4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZUxp
c3Q6OlRleHRUcmFja0N1ZUxpc3QpOiBEZWxldGVkLiBMZXQgdGhlIGNvbXBpbGVyCisgICAgICAg
IGdlbmVyYXRlIHRoaXMuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjpsZW5n
dGgpOiBNb3ZlZCB0byBoZWFkZXIuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0
OjpjdWVJbmRleCk6IFJlbmFtZWQgZnJvbSBnZXRDdWVJbmRleC4KKyAgICAgICAgQ2hhbmdlZCBy
ZXR1cm4gdHlwZSB0byB1bnNpZ25lZCByYXRoZXIgdGhhbiB1bnNpZ25lZCBsb25nLgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlTGlzdDo6aXRlbSk6IFVwZGF0ZWQgZm9yIG5hbWUgY2hh
bmdlLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlTGlzdDo6Z2V0Q3VlQnlJZCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlTGlzdDo6YWN0aXZlQ3Vlcyk6IEJ1
aWxkIHRoZSB2ZWN0b3IgZGlyZWN0bHkKKyAgICAgICAgcmF0aGVyIHRoYW4gd2FzdGVmdWxseSBh
ZGRpbmcgd2l0aCBUZXh0VHJhY2tDdWVMaXN0OjphZGQsIHdoaWNoIHdpbGwKKyAgICAgICAgdHJ5
IHRvIHNvcnQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjphZGQpOiBUYWtl
IGEgUmVmJiYgaW5zdGVhZCBvZiBhIFBhc3NSZWZQdHIuCisgICAgICAgIEFsc28sIGtlZXAgc29y
dGVkIHVzaW5nIHN0ZDo6dXBwZXJfYm91bmQgaW5zdGVhZCBvZiB0aGUgcmVjdXJzaXZlCisgICAg
ICAgIGJpbmFyeSBzZWFyY2ggdGhpcyBjb2RlIHdhcyB1c2luZyBiZWZvcmUuIEFsc28gcmVtb3Zl
IHRoZQorICAgICAgICBpbnZhbGlkYXRlQ3VlSW5kZXhlcyBjYWxsIHNpbmNlIHRoZXJlIGFyZSBu
byBjdWUgaW5kaWNlcyBhbnkgbW9yZS4KKyAgICAgICAgQWxzbyByZW1vdmUgdGhlIGJvb2xlYW4g
cmV0dXJuIHZhbHVlIHNpbmNlIG5vIGNhbGxlciB3YXMgdXNpbmcgaXQuCisgICAgICAgIChXZWJD
b3JlOjpUZXh0VHJhY2tDdWVMaXN0OjpyZW1vdmUpOiBUYWtlIGEgcmVmZXJlbmNlIGluc3RlYWQg
b2YgYQorICAgICAgICBwb2ludGVyLiBBbHNvIHJlbW92ZSB0aGUgYm9vbGVhbiByZXR1cm4gdmFs
dWUgc2luY2Ugbm8gY2FsbGVyIHdhcyB1c2luZyBpdC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRU
cmFja0N1ZUxpc3Q6OmNvbnRhaW5zKTogRGVsZXRlZC4gV2FzIHVudXNlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlRleHRUcmFja0N1ZUxpc3Q6OnVwZGF0ZUN1ZUluZGV4KTogUmVpbXBsZW1lbnRlZCB1
c2luZyB0aGUKKyAgICAgICAgc3RkOjp1cHBlcl9ib3VuZCBhbmQgc3RkOjpyb3RhdGUgb3BlcmF0
aW9ucy4gVGhlIG9sZCBjb2RlIHRoYXQgdXNlZAorICAgICAgICByZW1vdmUgYW5kIGFkZCB3YXMg
aW5lZmZpY2llbnQgYW5kIGFsc28gY291bGQgY2F1c2UgYSBjdWUgdG8gYmUgZGVhbGxvY2F0ZWQK
KyAgICAgICAgaWYgc29tZXRoaW5nIGVsc2Ugd2Fzbid0IGhvbGRpbmcgYSByZWZlcmVuY2UgdG8g
dGhlIGN1ZS4gQWxzbyBjaGFuZ2VkIHRvIHRha2UKKyAgICAgICAgYSByZWZlcmVuY2UuCisgICAg
ICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjpjbGVhcik6IERlbGV0ZWQuIFdhcyB1bnVz
ZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWVMaXN0OjppbnZhbGlkYXRlQ3VlSW5k
ZXhlcyk6IERlbGV0ZWQuIE5vIGxvbmdlcgorICAgICAgICBuZWVkZWQgc2luY2Ugd2UgZG9uJ3Qg
c3RvcmUgY3VlIGluZGljZXMgaW4gdGhlIGN1ZXMgYW55IG1vcmUuCisgICAgICAgICogaHRtbC90
cmFjay9UZXh0VHJhY2tDdWVMaXN0Lmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZSBjaGFuZ2VzLgor
CisgICAgICAgICogaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlZUVFJlZ2lvbkxpc3Q6OlZUVFJlZ2lvbkxpc3QpOiBEZWxldGVkLiBMZXQgdGhlIGNvbXBp
bGVyCisgICAgICAgIGdlbmVyYXRlIHRoaXMuCisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdpb25M
aXN0OjpsZW5ndGgpOiBNb3ZlZCB0byBoZWFkZXIuCisgICAgICAgIChXZWJDb3JlOjpWVFRSZWdp
b25MaXN0OjppdGVtKTogVXBkYXRlZCBmb3IgbmFtZSBhbmQgdHlwZSBjaGFuZ2VzLgorICAgICAg
ICAoV2ViQ29yZTo6VlRUUmVnaW9uTGlzdDo6Z2V0UmVnaW9uQnlJZCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6VlRUUmVnaW9uTGlzdDo6YWRkKTogQ2hhbmdlZCB0byB0YWtlIGEgUmVmJiYg
aW5zdGVhZCBvZiBhCisgICAgICAgIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpWVFRS
ZWdpb25MaXN0OjpyZW1vdmUpOiBVcGRhdGVkLgorICAgICAgICAoV2ViQ29yZTo6VlRUUmVnaW9u
TGlzdDo6Y2xlYXIpOiBEZWxldGVkLiBXYXMgdW51c2VkLgorICAgICAgICAqIGh0bWwvdHJhY2sv
VlRUUmVnaW9uTGlzdC5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUgY2hhbmdlcy4KKyAgICAgICAg
KiBodG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaWRsOiBNYWRlIHJldHVybiB2YWx1ZXMgbnVsbGFi
bGUgdG8gcmVmbGVjdAorICAgICAgICB0aGUgYWN0dWFsIHNlbWFudGljIG9mIHRoZSBjb2RlLgor
CisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvVHJhY2s6OlZpZGVvVHJhY2spOiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvVHJhY2s6OnNldFByaXZhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvVHJhY2s6OnNldFNlbGVjdGVkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1Ry
YWNrOjppbmJhbmRUcmFja0luZGV4KTogUmVtb3ZlZCBhc3NlcnRpb24gc2luY2UgbV9wcml2YXRl
CisgICAgICAgIGlzIG5vdyBhIFJlZiBpbnN0ZWFkIG9mIGEgUmVmUHRyLgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9UcmFjazo6c2VsZWN0ZWRDaGFuZ2VkKTogUmVtb3ZlZCB1bm5lZWRlZCB0cmFj
ayBwcml2YXRlIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6aWRDaGFu
Z2VkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RyYWNrOjpsYWJlbENoYW5nZWQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6Omxhbmd1YWdlQ2hhbmdlZCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6d2lsbFJlbW92ZSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UcmFjazo6c2V0S2luZCk6IFVwZGF0ZWQgdG8gdXNl
IHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2s6OnNldExhbmd1YWdlKTog
RGl0dG8uCisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrLmg6IFVwZGF0ZWQgZm9yIHRo
ZSBhYm92ZS4gQ2hhbmdlZCBkZXJpdmF0aW9uIHRvIHByaXZhdGUuCisgICAgICAgIFJlbW92ZWQg
dW5uZWVkZWQgZGVmYXVsdEtpbmRLZXl3b3JkLgorCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oOiBVcGRhdGVkIHRvIHVzZSByZWZlcmVuY2UuCisKKyAgICAgICAgKiBsb2FkZXIvUGlu
Z0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9u
UmVwb3J0KTogVGFrZSBhIFJlZiYmIGluc3RlYWQgb2YgUmVmUHRyJiYuCisgICAgICAgICogbG9h
ZGVyL1BpbmdMb2FkZXIuaDogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlLgorCisgICAgICAgICog
cGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpsb2FkSWNvbkZvckZp
bGVzKTogVGFrZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOiBVcGRhdGVk
IGZvciBhYm92ZSBjaGFuZ2UuCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogRGl0dG8u
CisKKyAgICAgICAgKiBwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24pOiBVc2Ug
YXV0by4KKworICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVs
TWVkaWFFbGVtZW50Lm1tOgorICAgICAgICAoV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVs
ZW1lbnQ6OnNlbGVjdEF1ZGlvTWVkaWFPcHRpb24pOiBTaW1wbGlmaWVkCisgICAgICAgIGFsZ29y
aXRobSBieSByZW1vdmluZyB1bm5lZWRlZCBkaXJlY3QgY2FsbCB0byBhdWRpb1RyYWNrRW5hYmxl
ZENoYW5nZWQsCisgICAgICAgIHdoaWNoIHdpbGwgYmUgY2FsbGVkIGJ5IHNldEVuYWJsZWQgYW5k
IGRvZXNuJ3QgbmVlZCB0byBiZSBjYWxsZWQgYWdhaW4gaGVyZS4KKyAgICAgICAgKFdlYlBsYXli
YWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24pOiBS
ZW1vdmVkCisgICAgICAgIHVuaGVscGZ1bCBhc3NlcnRpb24gYW5kIHVubm5lZGVkIGluaXRpYWxp
emF0aW9uLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUu
aDogUmVtb3ZlZCB1bm5uZWVlZCB0cmFjayBwcml2YXRlCisgICAgICAgIGFyZ3VtZW50IGFuZCBp
bml0aWFsaXplZCBkYXRhIG1lbWJlcnMgd2hlcmUgdGhleSBhcmUgZGVmaW5lZC4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaDogVXNl
IFJlZiBpbnN0ZWFkIG9mCisgICAgICAgIFBhc3NSZWZQdHIsIGluaXRpYWxpemUgZGF0YSBtZW1i
ZXJzIHdoZXJlIHRoZXkgYXJlIGRlZmluZWQsIGFuZCByZW1vdmVkCisgICAgICAgIHRoZSB1bm5l
ZWRlZCB0cmFjayBwcml2YXRlIGFyZ3VtZW50cyBmcm9tIHRoZSBjbGllbnQgZnVuY3Rpb25zLgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oOiBGaXhl
ZCBmdW5jdGlvbnMgdGhhdCB3ZXJlIHRha2luZworICAgICAgICBBdG9taWNTdHJpbmcgdG8gdGFr
ZSBhIGNvbnN0JiBpbnN0ZWFkLiBVc2UgUmVmJiYgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oOiBS
ZW1vdmVkIHVubmVkZWQgcHJpdmF0ZSBwb2ludGVyCisgICAgICAgIGFyZ3VtZW50cyBmcm9tIGNs
aWVudCBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZh
dGVCYXNlLmg6IFJlbW92ZWQgdW5uZWVkZWQgcHJpdmF0ZSBwb2ludGVycworICAgICAgICBmcm9t
IGNsaWVudCBmdW5jdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFj
a1ByaXZhdGU6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0F1ZGlvVHJhY2tQcml2YXRlQVZGLmg6IFVzZQorICAgICAgICBjb25zdCBBdG9taWNTdHJp
bmcmLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZE1l
dGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRN
ZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OmFkZERhdGFDdWUpOiBVcGRhdGVkIGZvciBjaGFu
Z2UgdG8gYXJndW1lbnRzLgorICAgICAgICAoV2ViQ29yZTo6SW5iYW5kTWV0YWRhdGFUZXh0VHJh
Y2tQcml2YXRlQVZGOjp1cGRhdGVQZW5kaW5nQ3VlRW5kVGltZXMpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6Zmx1c2hQYXJ0aWFs
Q3Vlcyk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9J
bmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRl
eHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRyaWJ1dGVkU3RyaW5ncyk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cmVzZXRDdWVWYWx1ZXMp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnBy
b2Nlc3NOYXRpdmVTYW1wbGVzKTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMpOgorICAgICAgICBNb3ZlZCBp
bml0aWFsaXphdGlvbiBvZiBkYXRhIG1lbWVicnMgdG8gd2hlcmUgdGhleSBhcmUgZGVmaW5lZC4K
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpl
bmFibGVkKTogRGVsZXRlZC4gTm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRFbmFibGVkKTogQ2hhbmdlZCB0
byB1c2UgdGhlIGVuYWJsZWQKKyAgICAgICAgZmxhZyBmcm9tIHRoZSBiYXNlIGNsYXNzIGluc3Rl
YWQgb2YgYSBzZXBhcmF0ZSBtX2VuYWJsZWQgaW4gdGhpcyBjbGFzcy4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5oOgorICAgICAgICBSZW1vdmVkIHRoZSBlbmFibGVkIGZ1bmN0aW9uIGFuZCB0
aGUgbV9lbmFibGVkIGRhdGEgbWVtYmVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaDogTWFya2VkIGZ1
bmN0aW9ucworICAgICAgICBmaW5hbCBpbnN0ZWFkIG9mIG92ZXJyaWRlIGFuZCB1cGRhdGVkIGFy
Z3VlbW50cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9T
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQYXJzZVN0cmVhbURhdGFBc0Fzc2V0KTogVXBkYXRlZCBm
b3IgY2hhbmdlCisgICAgICAgIHRvIGFyZ3VtZW50cy4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpwcm9jZXNzQ29kZWRGcmFtZSk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmFwcGVuZENvbXBsZXRlZCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Omhh
c1ZpZGVvKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6aGFzQXVkaW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpsYXllckRpZFJlY2VpdmVFcnJvcik6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmZsdXNoKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmlzUmVh
ZHlGb3JNb3JlU2FtcGxlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakM6OmZhc3RTZWVrVGltZUZvck1lZGlhVGltZSk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNlZWtUb1RpbWUpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRCZWNv
bWVSZWFkeUZvck1vcmVTYW1wbGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMp
OiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRN
ZXRhZGF0YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaDogVXBkYXRlZCBmb3IKKyAgICAgICAg
Y2hhbmdlcyB0byBhcmd1bWVudHMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5VHJhY2tPZlNhbXBsZSk6
IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZh
dGVCYXNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyYWNrUHJpdmF0ZUJhc2VH
U3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtOZXdTYW1wbGUpOiBEaXR0by4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdT
dHJlYW1lcjo6YXBwZW5kKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyOjpmbHVzaCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZW5xdWV1ZVNhbXBsZSk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6aXNSZWFkeUZvck1vcmVTYW1w
bGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVh
bWVyOjpub3RpZnlSZWFkeUZvck1vcmVTYW1wbGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpzdG9wQXNraW5nRm9yTW9yZVNhbXBsZXMp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6
Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlSW5pdGlhbGl6
YXRpb25TZWdtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2
YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlU2FtcGxlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlQWxsUGVuZGluZ1NhbXBs
ZXMpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1Nv
dXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6YXBwZW5kKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZUluaXRpYWxpemF0
aW9uU2VnbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1NvdXJjZUJ1ZmZlclBy
aXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tT
b3VyY2VCdWZmZXJQcml2YXRlOjplbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1ZVNhbXBsZSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6Omhhc1Zp
ZGVvKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6
aGFzQXVkaW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2
YXRlOjpmYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpzZWVrVG9UaW1lKTogRGl0dG8uCisgICAgICAgICog
cGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oOiBEaXR0
by4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6dXBkYXRlU25hcHNob3Qp
OiBUYWtlIHJhdyBwb2ludGVyIGluc3RlYWQKKyAgICAgICAgb2YgUGFzc1JlZlB0ci4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaDogVXBkYXRlZCBmb3IgYWJv
dmUgY2hhbmdlLgorCisgICAgICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaDogQWRkZWQgdXNp
bmcgdG8gcmVzb2x2ZSB0aGUgYW1iaWd1aXR5IHdpdGggdGhlCisgICAgICAgIHJlZi9kZXJlZiBm
cm9tIFNWR0VsZW1lbnQgYW5kIGZyb20gU2NyaXB0RWxlbWVudC4KKworICAgICAgICAqIHhtbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1l
bnRQYXJzZXI6Om5vdGlmeUZpbmlzaGVkKTogVXBkYXRlZCB0byBzaW1wbGlmeSBzaW5jZQorICAg
ICAgICB0aGUgcGVuZGluZyBzY3JpcHQgbm93IGhhcyBhIHNjcmlwdCBlbGVtZW50LgorCisgICAg
ICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVudE5zKTogVXNlIGlzU2NpcHJ0
RWxlbWVudCBpbnN0ZWFkCisgICAgICAgIG9mIHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUuCisg
ICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKTogRGl0dG8u
IEFsc28gdXNlIGRvd25jYXN0U2NyaXB0RWxlbWVudC4KKwogMjAxNy0wMS0wNCAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBUZWFjaCBTaGFyZWRCdWZm
ZXIgdG8gcmV0dXJuIGFuIE5TQXJyYXkgb2YgZGF0YSBzZWdtZW50cyB0byBhdm9pZCBmbGF0dGVu
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggOTMzOWNjNThhODFmYWEwODcyMjM5ZTQ1YWExODE5Y2Jh
ZTJlNGNiOS4uMDBhNjNlY2YwN2NmYjNjNjRhY2Q3ZGNlOGIzMTEzZWIxMjhmNjZiZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAxLTA0ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciB1c2UgZnJvbSB0aGUg
Imh0bWwiIGRpcmVjdG9yeSwgb3RoZXIgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2MzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAg
ICAgICAgKFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyk6IFRha2UgYSByZWZlcmVu
Y2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisKIDIwMTctMDEtMDQgIFJ5YW4gSGFkZGFkICA8cnlh
bmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIx
MDI4Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBiMTYxNTg1YmY5NjM1YTFlM2U0MzE2OGU2ZTQxM2Iy
MmE5NmY5YWQ2Li4wZDc5MmNhNTY1Y2ZkNTY0YzRiYjJkNDJlZGQ4NzRmODNjODE1MTdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDEtMDQgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIHVzZSBmcm9tIHRo
ZSAiaHRtbCIgZGlyZWN0b3J5LCBvdGhlciBpbXByb3ZlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjYzNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyk6
IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIHBvaW50ZXIuCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKwogMjAx
Ni0xMi0zMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zl
IFBhc3NSZWZQdHIgdXNlIGZyb20gdGhlICJkb20iIGRpcmVjdG9yeSwgcmVsYXRlZCBjbGVhbnVw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggYjg5NGU5NjE2ZTRhMzU4MWY0OGFiYzI0OTBkOGYxOWZlZDE4ZDMzNi4u
ODJkY2QxNjMyODNhODljNDYwNzk1MmYxNjkzNWQ2YjI1NjkxZTYxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDE3LTAxLTA0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciB1c2UgZnJvbSB0aGUgImh0bWwiIGRpcmVjdG9y
eSwgb3RoZXIgaW1wcm92ZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjY2MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVz
KTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEgcG9pbnRlci4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOiBEaXR0by4KKwogMjAxNy0w
MS0wNCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMjEwMjg3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
UmVmUHRyLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAppbmRleCA4N2ZjNDU2ZjM3MDQwNDli
ZjRlY2NjYmYzYTRmZjU3Njk3OWU2NzdmLi5mZTE2MzBjOTczNWI1ZmY1MzUzY2IyYzU1OGUzMTA1
ODEyNDc4N2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9SZWZQdHIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJpZ2h0IChD
KSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjQyLDEwICsy
NDIsMjEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFJlZlB0cjxUPiBhZG9wdFJlZihU
KiBwKQogICAgIHJldHVybiBSZWZQdHI8VD4ocCwgUmVmUHRyPFQ+OjpBZG9wdCk7CiB9CiAKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4gbWFrZVJlZlB0cihUKiBwb2ludGVy
KQoreworICAgIHJldHVybiBwb2ludGVyOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxp
bmUgUmVmUHRyPFQ+IG1ha2VSZWZQdHIoVCYgcmVmZXJlbmNlKQoreworICAgIHJldHVybiAmcmVm
ZXJlbmNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNpbmcgV1RGOjpSZWZQdHI7CiB1
c2luZyBXVEY6OmFkb3B0UmVmOwordXNpbmcgV1RGOjptYWtlUmVmUHRyOwogdXNpbmcgV1RGOjpz
dGF0aWNfcG9pbnRlcl9jYXN0OwogCiAjZW5kaWYgLy8gV1RGX1JlZlB0cl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDI1ZjI4YzU3MzdjZTcwOGQ1MTJiODJjZWEyMDIyZjM3ODJhNjY1OWYuLmI2
MjYzMTRmN2ZlNTRkN2U4Nzk3NmQ4OGViYjEwZjk1MzhjMWZmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0xNzU5LDcgKzE3NTksNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9W
YWxpZGF0aW9uTWVzc2FnZS5jcHAKICAgICBodG1sL1dlZWtJbnB1dFR5cGUuY3BwCiAKLSAgICBo
dG1sL2NhbnZhcy9BTkdMRUluc3RhbmNlZEFycmF5cy5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52
YXNHcmFkaWVudC5jcHAKICAgICBodG1sL2NhbnZhcy9DYW52YXNQYXRoLmNwcAogICAgIGh0bWwv
Y2FudmFzL0NhbnZhc1BhdHRlcm4uY3BwCkBAIC0xNzY4LDUxICsxNzY3LDYgQEAgc2V0KFdlYkNv
cmVfU09VUkNFUwogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAK
ICAgICBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKICAgICBodG1sL2NhbnZhcy9ET01QYXRo
LmNwcAotICAgIGh0bWwvY2FudmFzL0VYVEJsZW5kTWluTWF4LmNwcAotICAgIGh0bWwvY2FudmFz
L0VYVEZyYWdEZXB0aC5jcHAKLSAgICBodG1sL2NhbnZhcy9FWFRTaGFkZXJUZXh0dXJlTE9ELmNw
cAotICAgIGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAKLSAgICBo
dG1sL2NhbnZhcy9FWFRzUkdCLmNwcAotICAgIGh0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVp
bnQuY3BwCi0gICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAKLSAgICBo
dG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwCi0gICAgaHRtbC9jYW52YXMvT0VTVGV4dHVy
ZUZsb2F0TGluZWFyLmNwcAotICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXQuY3Bw
Ci0gICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5jcHAKLSAgICBodG1s
L2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTDJS
ZW5kZXJpbmdDb250ZXh0LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcAotICAg
IGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwCi0gICAgaHRtbC9jYW52
YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2
ZW50LmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAotICAgIGh0bWwv
Y2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTERlYnVn
UmVuZGVyZXJJbmZvLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcAot
ICAgIGh0bWwvY2FudmFzL1dlYkdMRGVwdGhUZXh0dXJlLmNwcAotICAgIGh0bWwvY2FudmFzL1dl
YkdMRHJhd0J1ZmZlcnMuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwCi0g
ICAgaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJH
TEdldEluZm8uY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHAKLSAgICBo
dG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0u
Y3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmJ1ZmZlci5jcHAKLSAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
Y3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKLSAgICBo
dG1sL2NhbnZhcy9XZWJHTFNhbXBsZXIuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIu
Y3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwCi0gICAg
aHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCi0gICAgaHRtbC9jYW52YXMvV2ViR0xT
eW5jLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5jcHAKLSAgICBodG1sL2NhbnZh
cy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMVW5pZm9y
bUxvY2F0aW9uLmNwcAotICAgIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3Bw
Ci0gICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCi0gICAgaHRt
bC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKIAogICAgIGh0bWwvZm9ybXMv
RmlsZUljb25Mb2FkZXIuY3BwCiAKQEAgLTMwNzQsNiArMzAyOCw3IEBAIGlmIChFTkFCTEVfV0VC
R0wpCiAgICAgICAgIGh0bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXIuY3BwCiAg
ICAgICAgIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAogICAgICAgICBodG1s
L2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorICAgICAgICBodG1sL2NhbnZhcy9X
ZWJHTEFueS5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCiAgICAgICAg
IGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwCiAgICAgICAgIGh0bWwv
Y2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHAKQEAgLTMwODcsNyArMzA0Miw2
IEBAIGlmIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRHJhd0J1ZmZl
cnMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmNwcAogICAgICAgICBo
dG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcAotICAgICAgICBodG1sL2NhbnZhcy9XZWJH
TEdldEluZm8uY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuY3BwCiAg
ICAgICAgIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcAogICAgICAgICBodG1sL2NhbnZhcy9X
ZWJHTFByb2dyYW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IDQzYzBkMDAwZDhlNzM1NTZmZWUxNzA0MmFmNjM5ZTA3
OWVkOTkzMDQuLjRmMTg4Yjg1MjQ4ZmM0MjEzOWQ3NTgxZGUxOTBkM2YyN2ViNjExNmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3Bw
CkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQpAQCAtNjkzLDE4ICs2OTMsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6
OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICBidWZmZXIuYWJv
cnRJZlVwZGF0aW5nKCk7CiAKICAgICAvLyA0LiBMZXQgU291cmNlQnVmZmVyIGF1ZGlvVHJhY2tz
IGxpc3QgZXF1YWwgdGhlIEF1ZGlvVHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSBzb3VyY2VC
dWZmZXIuYXVkaW9UcmFja3MuCi0gICAgUmVmUHRyPEF1ZGlvVHJhY2tMaXN0PiBhdWRpb1RyYWNr
cyA9IGJ1ZmZlci5hdWRpb1RyYWNrcygpOworICAgIGF1dG8mIGF1ZGlvVHJhY2tzID0gYnVmZmVy
LmF1ZGlvVHJhY2tzKCk7CiAKICAgICAvLyA1LiBJZiB0aGUgU291cmNlQnVmZmVyIGF1ZGlvVHJh
Y2tzIGxpc3QgaXMgbm90IGVtcHR5LCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAg
IGlmIChhdWRpb1RyYWNrcy0+bGVuZ3RoKCkpIHsKKyAgICBpZiAoYXVkaW9UcmFja3MubGVuZ3Ro
KCkpIHsKICAgICAgICAgLy8gNS4xIExldCBIVE1MTWVkaWFFbGVtZW50IGF1ZGlvVHJhY2tzIGxp
c3QgZXF1YWwgdGhlIEF1ZGlvVHJhY2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSB0aGUgYXVkaW9U
cmFja3MKICAgICAgICAgLy8gYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAg
ICAgICAvLyA1LjIgTGV0IHRoZSByZW1vdmVkIGVuYWJsZWQgYXVkaW8gdHJhY2sgZmxhZyBlcXVh
bCBmYWxzZS4KICAgICAgICAgYm9vbCByZW1vdmVkRW5hYmxlZEF1ZGlvVHJhY2sgPSBmYWxzZTsK
IAogICAgICAgICAvLyA1LjMgRm9yIGVhY2ggQXVkaW9UcmFjayBvYmplY3QgaW4gdGhlIFNvdXJj
ZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0LCBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAg
ICAgd2hpbGUgKGF1ZGlvVHJhY2tzLT5sZW5ndGgoKSkgewotICAgICAgICAgICAgYXV0byYgdHJh
Y2sgPSAqYXVkaW9UcmFja3MtPmxhc3RJdGVtKCk7CisgICAgICAgIHdoaWxlIChhdWRpb1RyYWNr
cy5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byYgdHJhY2sgPSAqYXVkaW9UcmFja3MubGFz
dEl0ZW0oKTsKIAogICAgICAgICAgICAgLy8gNS4zLjEgU2V0IHRoZSBzb3VyY2VCdWZmZXIgYXR0
cmlidXRlIG9uIHRoZSBBdWRpb1RyYWNrIG9iamVjdCB0byBudWxsLgogICAgICAgICAgICAgdHJh
Y2suc2V0U291cmNlQnVmZmVyKG51bGxwdHIpOwpAQCAtNzIzLDcgKzcyMyw3IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IE1lZGlhU291cmNlOjpyZW1vdmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyJiBi
dWZmZXIpCiAgICAgICAgICAgICAvLyA1LjMuNSBSZW1vdmUgdGhlIEF1ZGlvVHJhY2sgb2JqZWN0
IGZyb20gdGhlIFNvdXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0LgogICAgICAgICAgICAgLy8g
NS4zLjYgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIHJlbW92ZXRy
YWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMgbm90CiAgICAgICAgICAgICAvLyBjYW5j
ZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGludGVyZmFjZSwgYXQgdGhlIFNv
dXJjZUJ1ZmZlciBhdWRpb1RyYWNrcyBsaXN0LgotICAgICAgICAgICAgYXVkaW9UcmFja3MtPnJl
bW92ZSh0cmFjayk7CisgICAgICAgICAgICBhdWRpb1RyYWNrcy5yZW1vdmUodHJhY2spOwogICAg
ICAgICB9CiAKICAgICAgICAgLy8gNS40IElmIHRoZSByZW1vdmVkIGVuYWJsZWQgYXVkaW8gdHJh
Y2sgZmxhZyBlcXVhbHMgdHJ1ZSwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBl
dmVudApAQCAtNzMzLDE4ICs3MzMsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6
OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICB9CiAKICAgICAv
LyA2LiBMZXQgU291cmNlQnVmZmVyIHZpZGVvVHJhY2tzIGxpc3QgZXF1YWwgdGhlIFZpZGVvVHJh
Y2tMaXN0IG9iamVjdCByZXR1cm5lZCBieSBzb3VyY2VCdWZmZXIudmlkZW9UcmFja3MuCi0gICAg
UmVmUHRyPFZpZGVvVHJhY2tMaXN0PiB2aWRlb1RyYWNrcyA9IGJ1ZmZlci52aWRlb1RyYWNrcygp
OworICAgIGF1dG8mIHZpZGVvVHJhY2tzID0gYnVmZmVyLnZpZGVvVHJhY2tzKCk7CiAKICAgICAv
LyA3LiBJZiB0aGUgU291cmNlQnVmZmVyIHZpZGVvVHJhY2tzIGxpc3QgaXMgbm90IGVtcHR5LCB0
aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIGlmICh2aWRlb1RyYWNrcy0+bGVuZ3Ro
KCkpIHsKKyAgICBpZiAodmlkZW9UcmFja3MubGVuZ3RoKCkpIHsKICAgICAgICAgLy8gNy4xIExl
dCBIVE1MTWVkaWFFbGVtZW50IHZpZGVvVHJhY2tzIGxpc3QgZXF1YWwgdGhlIFZpZGVvVHJhY2tM
aXN0IG9iamVjdCByZXR1cm5lZCBieSB0aGUgdmlkZW9UcmFja3MKICAgICAgICAgLy8gYXR0cmli
dXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAgICAgICAvLyA3LjIgTGV0IHRoZSByZW1v
dmVkIHNlbGVjdGVkIHZpZGVvIHRyYWNrIGZsYWcgZXF1YWwgZmFsc2UuCiAgICAgICAgIGJvb2wg
cmVtb3ZlZFNlbGVjdGVkVmlkZW9UcmFjayA9IGZhbHNlOwogCiAgICAgICAgIC8vIDcuMyBGb3Ig
ZWFjaCBWaWRlb1RyYWNrIG9iamVjdCBpbiB0aGUgU291cmNlQnVmZmVyIHZpZGVvVHJhY2tzIGxp
c3QsIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgICAgICB3aGlsZSAodmlkZW9UcmFja3Mt
Pmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiB0cmFjayA9ICp2aWRlb1RyYWNrcy0+bGFz
dEl0ZW0oKTsKKyAgICAgICAgd2hpbGUgKHZpZGVvVHJhY2tzLmxlbmd0aCgpKSB7CisgICAgICAg
ICAgICBhdXRvJiB0cmFjayA9ICp2aWRlb1RyYWNrcy5sYXN0SXRlbSgpOwogCiAgICAgICAgICAg
ICAvLyA3LjMuMSBTZXQgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhlIFZpZGVvVHJh
Y2sgb2JqZWN0IHRvIG51bGwuCiAgICAgICAgICAgICB0cmFjay5zZXRTb3VyY2VCdWZmZXIobnVs
bHB0cik7CkBAIC03NjMsNyArNzYzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6
OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICAgICAgICAgIC8v
IDcuMy41IFJlbW92ZSB0aGUgVmlkZW9UcmFjayBvYmplY3QgZnJvbSB0aGUgU291cmNlQnVmZmVy
IHZpZGVvVHJhY2tzIGxpc3QuCiAgICAgICAgICAgICAvLyA3LjMuNiBRdWV1ZSBhIHRhc2sgdG8g
ZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgcmVtb3ZldHJhY2ssIHRoYXQgZG9lcyBub3QgYnVi
YmxlIGFuZCBpcyBub3QKICAgICAgICAgICAgIC8vIGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMg
dGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgU291cmNlQnVmZmVyIHZpZGVvVHJhY2tz
IGxpc3QuCi0gICAgICAgICAgICB2aWRlb1RyYWNrcy0+cmVtb3ZlKHRyYWNrKTsKKyAgICAgICAg
ICAgIHZpZGVvVHJhY2tzLnJlbW92ZSh0cmFjayk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyA3
LjQgSWYgdGhlIHJlbW92ZWQgc2VsZWN0ZWQgdmlkZW8gdHJhY2sgZmxhZyBlcXVhbHMgdHJ1ZSwg
dGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudApAQCAtNzczLDE4ICs3NzMs
MTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFTb3VyY2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcihT
b3VyY2VCdWZmZXImIGJ1ZmZlcikKICAgICB9CiAKICAgICAvLyA4LiBMZXQgU291cmNlQnVmZmVy
IHRleHRUcmFja3MgbGlzdCBlcXVhbCB0aGUgVGV4dFRyYWNrTGlzdCBvYmplY3QgcmV0dXJuZWQg
Ynkgc291cmNlQnVmZmVyLnRleHRUcmFja3MuCi0gICAgUmVmUHRyPFRleHRUcmFja0xpc3Q+IHRl
eHRUcmFja3MgPSBidWZmZXIudGV4dFRyYWNrcygpOworICAgIGF1dG8mIHRleHRUcmFja3MgPSBi
dWZmZXIudGV4dFRyYWNrcygpOwogCiAgICAgLy8gOS4gSWYgdGhlIFNvdXJjZUJ1ZmZlciB0ZXh0
VHJhY2tzIGxpc3QgaXMgbm90IGVtcHR5LCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgot
ICAgIGlmICh0ZXh0VHJhY2tzLT5sZW5ndGgoKSkgeworICAgIGlmICh0ZXh0VHJhY2tzLmxlbmd0
aCgpKSB7CiAgICAgICAgIC8vIDkuMSBMZXQgSFRNTE1lZGlhRWxlbWVudCB0ZXh0VHJhY2tzIGxp
c3QgZXF1YWwgdGhlIFRleHRUcmFja0xpc3Qgb2JqZWN0IHJldHVybmVkIGJ5IHRoZSB0ZXh0VHJh
Y2tzCiAgICAgICAgIC8vIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAgICAg
ICAgLy8gOS4yIExldCB0aGUgcmVtb3ZlZCBlbmFibGVkIHRleHQgdHJhY2sgZmxhZyBlcXVhbCBm
YWxzZS4KICAgICAgICAgYm9vbCByZW1vdmVkRW5hYmxlZFRleHRUcmFjayA9IGZhbHNlOwogCiAg
ICAgICAgIC8vIDkuMyBGb3IgZWFjaCBUZXh0VHJhY2sgb2JqZWN0IGluIHRoZSBTb3VyY2VCdWZm
ZXIgdGV4dFRyYWNrcyBsaXN0LCBydW4gdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAgICAgd2hp
bGUgKHRleHRUcmFja3MtPmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiB0cmFjayA9ICp0
ZXh0VHJhY2tzLT5sYXN0SXRlbSgpOworICAgICAgICB3aGlsZSAodGV4dFRyYWNrcy5sZW5ndGgo
KSkgeworICAgICAgICAgICAgYXV0byYgdHJhY2sgPSAqdGV4dFRyYWNrcy5sYXN0SXRlbSgpOwog
CiAgICAgICAgICAgICAvLyA5LjMuMSBTZXQgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24g
dGhlIFRleHRUcmFjayBvYmplY3QgdG8gbnVsbC4KICAgICAgICAgICAgIHRyYWNrLnNldFNvdXJj
ZUJ1ZmZlcihudWxscHRyKTsKQEAgLTgwMyw3ICs4MDMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBN
ZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciYgYnVmZmVyKQogICAg
ICAgICAgICAgLy8gOS4zLjUgUmVtb3ZlIHRoZSBUZXh0VHJhY2sgb2JqZWN0IGZyb20gdGhlIFNv
dXJjZUJ1ZmZlciB0ZXh0VHJhY2tzIGxpc3QuCiAgICAgICAgICAgICAvLyA5LjMuNiBRdWV1ZSBh
IHRhc2sgdG8gZmlyZSBhIHRydXN0ZWQgZXZlbnQgbmFtZWQgcmVtb3ZldHJhY2ssIHRoYXQgZG9l
cyBub3QgYnViYmxlIGFuZCBpcyBub3QKICAgICAgICAgICAgIC8vIGNhbmNlbGFibGUsIGFuZCB0
aGF0IHVzZXMgdGhlIFRyYWNrRXZlbnQgaW50ZXJmYWNlLCBhdCB0aGUgU291cmNlQnVmZmVyIHRl
eHRUcmFja3MgbGlzdC4KLSAgICAgICAgICAgIHRleHRUcmFja3MtPnJlbW92ZSh0cmFjayk7Cisg
ICAgICAgICAgICB0ZXh0VHJhY2tzLnJlbW92ZSh0cmFjayk7CiAgICAgICAgIH0KIAogICAgICAg
ICAvLyA5LjQgSWYgdGhlIHJlbW92ZWQgZW5hYmxlZCB0ZXh0IHRyYWNrIGZsYWcgZXF1YWxzIHRy
dWUsIHRoZW4gcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAppbmRleCA3
ZmVlN2U2MGIyMmU0NDgzNDFjYWEwOWFkOTg5OTY4MDlhNWU0MjZjLi5kOWFlNTI3ODYzNWVjOGZh
YjhiYTdkZjUyZDczNDE0YTU4ODNlZTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
Q29weXJpZ2h0IChDKSAyMDEzLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTksOSArNTksNiBAQAog
I2luY2x1ZGUgPHJ1bnRpbWUvVk0uaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpZiAhTE9HX0RJU0FCTEVECi0jaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNDIxLDcgKzQxOCw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzZWVrVG9UaW1lKGNv
bnN0IE1lZGlhVGltZSYgdGltZSkKICAgICB9CiB9CiAKLU1lZGlhVGltZSBTb3VyY2VCdWZmZXI6
OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoU291cmNlQnVmZmVy
UHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgdGFyZ2V0VGltZSwgY29uc3QgTWVkaWFUaW1lJiBu
ZWdhdGl2ZVRocmVzaG9sZCwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRocmVzaG9sZCkKK01l
ZGlhVGltZSBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JN
ZWRpYVRpbWUoY29uc3QgTWVkaWFUaW1lJiB0YXJnZXRUaW1lLCBjb25zdCBNZWRpYVRpbWUmIG5l
Z2F0aXZlVGhyZXNob2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKQogewog
ICAgIE1lZGlhVGltZSBzZWVrVGltZSA9IHRhcmdldFRpbWU7CiAgICAgTWVkaWFUaW1lIGxvd2Vy
Qm91bmRUaW1lID0gdGFyZ2V0VGltZSAtIG5lZ2F0aXZlVGhyZXNob2xkOwpAQCAtNTY2LDcgKzU2
Myw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjphcHBlbmRCdWZmZXJUaW1lckZpcmVkKCkKIAogICAg
IC8vIDEuIExvb3AgVG9wOiBJZiB0aGUgaW5wdXQgYnVmZmVyIGlzIGVtcHR5LCB0aGVuIGp1bXAg
dG8gdGhlIG5lZWQgbW9yZSBkYXRhIHN0ZXAgYmVsb3cuCiAgICAgaWYgKCFtX3BlbmRpbmdBcHBl
bmREYXRhLnNpemUoKSkgewotICAgICAgICBzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxl
dGUoJm1fcHJpdmF0ZS5nZXQoKSwgQXBwZW5kU3VjY2VlZGVkKTsKKyAgICAgICAgc291cmNlQnVm
ZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKEFwcGVuZFN1Y2NlZWRlZCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTU3NCw3ICs1NzEsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6YXBwZW5k
QnVmZmVyVGltZXJGaXJlZCgpCiAgICAgbV9wZW5kaW5nQXBwZW5kRGF0YS5jbGVhcigpOwogfQog
Ci12b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUFwcGVuZENvbXBsZXRlKFNv
dXJjZUJ1ZmZlclByaXZhdGUqLCBBcHBlbmRSZXN1bHQgcmVzdWx0KQordm9pZCBTb3VyY2VCdWZm
ZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShBcHBlbmRSZXN1bHQgcmVzdWx0
KQogewogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjM1LDcgKzYz
Miw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxl
dGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIEFwcGVuCiAgICAgTE9HKE1lZGlhLCAiU291cmNlQnVm
ZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5kQ29tcGxldGUoJXApIC0gYnVmZmVyZWQgPSAl
cyIsIHRoaXMsIHRvU3RyaW5nKG1fYnVmZmVyZWQtPnJhbmdlcygpKS51dGY4KCkuZGF0YSgpKTsK
IH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlUmVu
ZGVyaW5nRXJyb3IoU291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvcikKK3ZvaWQgU291cmNl
QnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVJlbmRlcmluZ0Vycm9yKGludCBl
cnJvcikKIHsKICNpZiBMT0dfRElTQUJMRUQKICAgICBVTlVTRURfUEFSQU0oZXJyb3IpOwpAQCAt
OTQ1LDM1ICs5NDIsMzIgQEAgc2l6ZV90IFNvdXJjZUJ1ZmZlcjo6bWF4aW11bUJ1ZmZlclNpemUo
KSBjb25zdAogICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBI
VE1MTWVkaWFFbGVtZW50KiBlbGVtZW50ID0gbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpOworICAg
IGF1dG8qIGVsZW1lbnQgPSBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCk7CiAgICAgaWYgKCFlbGVt
ZW50KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHJldHVybiBlbGVtZW50LT5tYXhpbXVtU291
cmNlQnVmZmVyU2l6ZSgqdGhpcyk7CiB9CiAKLVZpZGVvVHJhY2tMaXN0KiBTb3VyY2VCdWZmZXI6
OnZpZGVvVHJhY2tzKCkKK1ZpZGVvVHJhY2tMaXN0JiBTb3VyY2VCdWZmZXI6OnZpZGVvVHJhY2tz
KCkKIHsKICAgICBpZiAoIW1fdmlkZW9UcmFja3MpCi0gICAgICAgIG1fdmlkZW9UcmFja3MgPSBW
aWRlb1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgQWN0aXZlRE9N
T2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0gICAgcmV0dXJuIG1fdmlkZW9U
cmFja3MuZ2V0KCk7CisgICAgICAgIG1fdmlkZW9UcmFja3MgPSBWaWRlb1RyYWNrTGlzdDo6Y3Jl
YXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
KyAgICByZXR1cm4gKm1fdmlkZW9UcmFja3M7CiB9CiAKLUF1ZGlvVHJhY2tMaXN0KiBTb3VyY2VC
dWZmZXI6OmF1ZGlvVHJhY2tzKCkKK0F1ZGlvVHJhY2tMaXN0JiBTb3VyY2VCdWZmZXI6OmF1ZGlv
VHJhY2tzKCkKIHsKICAgICBpZiAoIW1fYXVkaW9UcmFja3MpCi0gICAgICAgIG1fYXVkaW9UcmFj
a3MgPSBBdWRpb1RyYWNrTGlzdDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgQWN0
aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotCi0gICAgcmV0dXJuIG1f
YXVkaW9UcmFja3MuZ2V0KCk7CisgICAgICAgIG1fYXVkaW9UcmFja3MgPSBBdWRpb1RyYWNrTGlz
dDo6Y3JlYXRlKG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKKyAgICByZXR1cm4gKm1fYXVkaW9UcmFja3M7CiB9CiAKLVRleHRUcmFja0xpc3QqIFNv
dXJjZUJ1ZmZlcjo6dGV4dFRyYWNrcygpCitUZXh0VHJhY2tMaXN0JiBTb3VyY2VCdWZmZXI6OnRl
eHRUcmFja3MoKQogewogICAgIGlmICghbV90ZXh0VHJhY2tzKQotICAgICAgICBtX3RleHRUcmFj
a3MgPSBUZXh0VHJhY2tMaXN0OjpjcmVhdGUobV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLCBBY3Rp
dmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0KLSAgICByZXR1cm4gbV90
ZXh0VHJhY2tzLmdldCgpOworICAgICAgICBtX3RleHRUcmFja3MgPSBUZXh0VHJhY2tMaXN0Ojpj
cmVhdGUobV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
OworICAgIHJldHVybiAqbV90ZXh0VHJhY2tzOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlcjo6c2V0
QWN0aXZlKGJvb2wgYWN0aXZlKQpAQCAtOTg3LDcgKzk4MSw3IEBAIHZvaWQgU291cmNlQnVmZmVy
OjpzZXRBY3RpdmUoYm9vbCBhY3RpdmUpCiAgICAgICAgIG1fc291cmNlLT5zb3VyY2VCdWZmZXJE
aWRDaGFuZ2VBY3RpdmVTdGF0ZSgqdGhpcywgYWN0aXZlKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZm
ZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNv
dXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmIHNlZ21lbnQp
Cit2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFs
aXphdGlvblNlZ21lbnQoY29uc3QgSW5pdGlhbGl6YXRpb25TZWdtZW50JiBzZWdtZW50KQogewog
ICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTAyNCw0MCArMTAxOCw0
MCBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0
aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgICAgIC8vIDMuMiBBZGQgdGhlIGFwcHJvcHJpYXRlIHRyYWNrIGRlc2NyaXB0aW9u
cyBmcm9tIHRoaXMgaW5pdGlhbGl6YXRpb24gc2VnbWVudCB0byBlYWNoIG9mIHRoZSB0cmFjayBi
dWZmZXJzLgotICAgICAgICBBU1NFUlQoc2VnbWVudC5hdWRpb1RyYWNrcy5zaXplKCkgPT0gYXVk
aW9UcmFja3MoKS0+bGVuZ3RoKCkpOworICAgICAgICBBU1NFUlQoc2VnbWVudC5hdWRpb1RyYWNr
cy5zaXplKCkgPT0gYXVkaW9UcmFja3MoKS5sZW5ndGgoKSk7CiAgICAgICAgIGZvciAoYXV0byYg
YXVkaW9UcmFja0luZm8gOiBzZWdtZW50LmF1ZGlvVHJhY2tzKSB7Ci0gICAgICAgICAgICBpZiAo
YXVkaW9UcmFja3MoKS0+bGVuZ3RoKCkgPT0gMSkgewotICAgICAgICAgICAgICAgIGF1ZGlvVHJh
Y2tzKCktPml0ZW0oMCktPnNldFByaXZhdGUoYXVkaW9UcmFja0luZm8udHJhY2spOworICAgICAg
ICAgICAgaWYgKGF1ZGlvVHJhY2tzKCkubGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgICAg
IGF1ZGlvVHJhY2tzKCkuaXRlbSgwKS0+c2V0UHJpdmF0ZSgqYXVkaW9UcmFja0luZm8udHJhY2sp
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBh
dXRvIGF1ZGlvVHJhY2sgPSBhdWRpb1RyYWNrcygpLT5nZXRUcmFja0J5SWQoYXVkaW9UcmFja0lu
Zm8udHJhY2stPmlkKCkpOworICAgICAgICAgICAgYXV0byBhdWRpb1RyYWNrID0gYXVkaW9UcmFj
a3MoKS5nZXRUcmFja0J5SWQoYXVkaW9UcmFja0luZm8udHJhY2stPmlkKCkpOwogICAgICAgICAg
ICAgQVNTRVJUKGF1ZGlvVHJhY2spOwotICAgICAgICAgICAgYXVkaW9UcmFjay0+c2V0UHJpdmF0
ZShhdWRpb1RyYWNrSW5mby50cmFjayk7CisgICAgICAgICAgICBhdWRpb1RyYWNrLT5zZXRQcml2
YXRlKCphdWRpb1RyYWNrSW5mby50cmFjayk7CiAgICAgICAgIH0KIAotICAgICAgICBBU1NFUlQo
c2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkgPT0gdmlkZW9UcmFja3MoKS0+bGVuZ3RoKCkpOwor
ICAgICAgICBBU1NFUlQoc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkgPT0gdmlkZW9UcmFja3Mo
KS5sZW5ndGgoKSk7CiAgICAgICAgIGZvciAoYXV0byYgdmlkZW9UcmFja0luZm8gOiBzZWdtZW50
LnZpZGVvVHJhY2tzKSB7Ci0gICAgICAgICAgICBpZiAodmlkZW9UcmFja3MoKS0+bGVuZ3RoKCkg
PT0gMSkgewotICAgICAgICAgICAgICAgIHZpZGVvVHJhY2tzKCktPml0ZW0oMCktPnNldFByaXZh
dGUodmlkZW9UcmFja0luZm8udHJhY2spOworICAgICAgICAgICAgaWYgKHZpZGVvVHJhY2tzKCku
bGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgICAgIHZpZGVvVHJhY2tzKCkuaXRlbSgwKS0+
c2V0UHJpdmF0ZSgqdmlkZW9UcmFja0luZm8udHJhY2spOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBhdXRvIHZpZGVvVHJhY2sgPSB2aWRlb1Ry
YWNrcygpLT5nZXRUcmFja0J5SWQodmlkZW9UcmFja0luZm8udHJhY2stPmlkKCkpOworICAgICAg
ICAgICAgYXV0byB2aWRlb1RyYWNrID0gdmlkZW9UcmFja3MoKS5nZXRUcmFja0J5SWQodmlkZW9U
cmFja0luZm8udHJhY2stPmlkKCkpOwogICAgICAgICAgICAgQVNTRVJUKHZpZGVvVHJhY2spOwot
ICAgICAgICAgICAgdmlkZW9UcmFjay0+c2V0UHJpdmF0ZSh2aWRlb1RyYWNrSW5mby50cmFjayk7
CisgICAgICAgICAgICB2aWRlb1RyYWNrLT5zZXRQcml2YXRlKCp2aWRlb1RyYWNrSW5mby50cmFj
ayk7CiAgICAgICAgIH0KIAotICAgICAgICBBU1NFUlQoc2VnbWVudC50ZXh0VHJhY2tzLnNpemUo
KSA9PSB0ZXh0VHJhY2tzKCktPmxlbmd0aCgpKTsKKyAgICAgICAgQVNTRVJUKHNlZ21lbnQudGV4
dFRyYWNrcy5zaXplKCkgPT0gdGV4dFRyYWNrcygpLmxlbmd0aCgpKTsKICAgICAgICAgZm9yIChh
dXRvJiB0ZXh0VHJhY2tJbmZvIDogc2VnbWVudC50ZXh0VHJhY2tzKSB7Ci0gICAgICAgICAgICBp
ZiAodGV4dFRyYWNrcygpLT5sZW5ndGgoKSA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgZG93bmNh
c3Q8SW5iYW5kVGV4dFRyYWNrPigqdGV4dFRyYWNrcygpLT5pdGVtKDApKS5zZXRQcml2YXRlKHRl
eHRUcmFja0luZm8udHJhY2spOworICAgICAgICAgICAgaWYgKHRleHRUcmFja3MoKS5sZW5ndGgo
KSA9PSAxKSB7CisgICAgICAgICAgICAgICAgZG93bmNhc3Q8SW5iYW5kVGV4dFRyYWNrPigqdGV4
dFRyYWNrcygpLml0ZW0oMCkpLnNldFByaXZhdGUoKnRleHRUcmFja0luZm8udHJhY2spOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBhdXRvIHRl
eHRUcmFjayA9IHRleHRUcmFja3MoKS0+Z2V0VHJhY2tCeUlkKHRleHRUcmFja0luZm8udHJhY2st
PmlkKCkpOworICAgICAgICAgICAgYXV0byB0ZXh0VHJhY2sgPSB0ZXh0VHJhY2tzKCkuZ2V0VHJh
Y2tCeUlkKHRleHRUcmFja0luZm8udHJhY2stPmlkKCkpOwogICAgICAgICAgICAgQVNTRVJUKHRl
eHRUcmFjayk7Ci0gICAgICAgICAgICBkb3duY2FzdDxJbmJhbmRUZXh0VHJhY2s+KCp0ZXh0VHJh
Y2spLnNldFByaXZhdGUodGV4dFRyYWNrSW5mby50cmFjayk7CisgICAgICAgICAgICBkb3duY2Fz
dDxJbmJhbmRUZXh0VHJhY2s+KCp0ZXh0VHJhY2spLnNldFByaXZhdGUoKnRleHRUcmFja0luZm8u
dHJhY2spOwogICAgICAgICB9CiAKICAgICAgICAgLy8gMy4zIFNldCB0aGUgbmVlZCByYW5kb20g
YWNjZXNzIHBvaW50IGZsYWcgb24gYWxsIHRyYWNrIGJ1ZmZlcnMgdG8gdHJ1ZS4KQEAgLTEwNzYs
MTYgKzEwNzAsMTQgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRS
ZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmYKIAogICAgICAgICAvLyA1LjIg
Rm9yIGVhY2ggYXVkaW8gdHJhY2sgaW4gdGhlIGluaXRpYWxpemF0aW9uIHNlZ21lbnQsIHJ1biBm
b2xsb3dpbmcgc3RlcHM6CiAgICAgICAgIGZvciAoYXV0byYgYXVkaW9UcmFja0luZm8gOiBzZWdt
ZW50LmF1ZGlvVHJhY2tzKSB7Ci0gICAgICAgICAgICBBdWRpb1RyYWNrUHJpdmF0ZSogYXVkaW9U
cmFja1ByaXZhdGUgPSBhdWRpb1RyYWNrSW5mby50cmFjay5nZXQoKTsKLQogICAgICAgICAgICAg
Ly8gRklYTUU6IEltcGxlbWVudCBzdGVwcyA1LjIuMS01LjIuOC4xIGFzIHBlciBFZGl0b3IncyBE
cmFmdCAwOSBKYW51YXJ5IDIwMTUsIGFuZCByZW9yZGVyIHRoaXMKICAgICAgICAgICAgIC8vIDUu
Mi4xIExldCBuZXcgYXVkaW8gdHJhY2sgYmUgYSBuZXcgQXVkaW9UcmFjayBvYmplY3QuCiAgICAg
ICAgICAgICAvLyA1LjIuMiBHZW5lcmF0ZSBhIHVuaXF1ZSBJRCBhbmQgYXNzaWduIGl0IHRvIHRo
ZSBpZCBwcm9wZXJ0eSBvbiBuZXcgdmlkZW8gdHJhY2suCi0gICAgICAgICAgICBhdXRvIG5ld0F1
ZGlvVHJhY2sgPSBBdWRpb1RyYWNrOjpjcmVhdGUodGhpcywgYXVkaW9UcmFja1ByaXZhdGUpOwor
ICAgICAgICAgICAgYXV0byBuZXdBdWRpb1RyYWNrID0gQXVkaW9UcmFjazo6Y3JlYXRlKCp0aGlz
LCAqYXVkaW9UcmFja0luZm8udHJhY2spOwogICAgICAgICAgICAgbmV3QXVkaW9UcmFjay0+c2V0
U291cmNlQnVmZmVyKHRoaXMpOwogCiAgICAgICAgICAgICAvLyA1LjIuMyBJZiBhdWRpb1RyYWNr
cy5sZW5ndGggZXF1YWxzIDAsIHRoZW4gcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAg
ICAgICBpZiAoIWF1ZGlvVHJhY2tzKCktPmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpZiAoIWF1
ZGlvVHJhY2tzKCkubGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICAvLyA1LjIuMy4xIFNldCB0
aGUgZW5hYmxlZCBwcm9wZXJ0eSBvbiBuZXcgYXVkaW8gdHJhY2sgdG8gdHJ1ZS4KICAgICAgICAg
ICAgICAgICBuZXdBdWRpb1RyYWNrLT5zZXRFbmFibGVkKHRydWUpOwogCkBAIC0xMDk3LDcgKzEw
ODksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJ
bml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogICAgICAgICAgICAgLy8gNS4yLjUgUXVl
dWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVkIGV2ZW50IG5hbWVkIGFkZHRyYWNrLCB0aGF0IGRv
ZXMgbm90IGJ1YmJsZSBhbmQgaXMKICAgICAgICAgICAgIC8vIG5vdCBjYW5jZWxhYmxlLCBhbmQg
dGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50IGludGVyZmFjZSwgYXQgdGhlIEF1ZGlvVHJhY2tMaXN0
IG9iamVjdAogICAgICAgICAgICAgLy8gcmVmZXJlbmNlZCBieSB0aGUgYXVkaW9UcmFja3MgYXR0
cmlidXRlIG9uIHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4KLSAgICAgICAgICAgIGF1ZGlvVHJh
Y2tzKCktPmFwcGVuZChuZXdBdWRpb1RyYWNrLmNvcHlSZWYoKSk7CisgICAgICAgICAgICBhdWRp
b1RyYWNrcygpLmFwcGVuZChuZXdBdWRpb1RyYWNrLmNvcHlSZWYoKSk7CiAKICAgICAgICAgICAg
IC8vIDUuMi42IEFkZCBuZXcgYXVkaW8gdHJhY2sgdG8gdGhlIGF1ZGlvVHJhY2tzIGF0dHJpYnV0
ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAgICAgICAgICAgIC8vIDUuMi43IFF1ZXVlIGEg
dGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5v
dCBidWJibGUgYW5kIGlzCkBAIC0xMTA3LDcgKzEwOTksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6
c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNl
QnVmZgogCiAgICAgICAgICAgICAvLyA1LjIuOCBDcmVhdGUgYSBuZXcgdHJhY2sgYnVmZmVyIHRv
IHN0b3JlIGNvZGVkIGZyYW1lcyBmb3IgdGhpcyB0cmFjay4KICAgICAgICAgICAgIEFTU0VSVCgh
bV90cmFja0J1ZmZlck1hcC5jb250YWlucyhuZXdBdWRpb1RyYWNrLT5pZCgpKSk7Ci0gICAgICAg
ICAgICBUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIgPSBtX3RyYWNrQnVmZmVyTWFwLmFkZChuZXdB
dWRpb1RyYWNrLT5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFsdWU7CisgICAgICAg
ICAgICBhdXRvJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKG5ld0F1ZGlvVHJh
Y2stPmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKIAogICAgICAgICAgICAg
Ly8gNS4yLjkgQWRkIHRoZSB0cmFjayBkZXNjcmlwdGlvbiBmb3IgdGhpcyB0cmFjayB0byB0aGUg
dHJhY2sgYnVmZmVyLgogICAgICAgICAgICAgdHJhY2tCdWZmZXIuZGVzY3JpcHRpb24gPSBhdWRp
b1RyYWNrSW5mby5kZXNjcmlwdGlvbjsKQEAgLTExMTcsMTYgKzExMDksMTQgQEAgdm9pZCBTb3Vy
Y2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdt
ZW50KFNvdXJjZUJ1ZmYKIAogICAgICAgICAvLyA1LjMgRm9yIGVhY2ggdmlkZW8gdHJhY2sgaW4g
dGhlIGluaXRpYWxpemF0aW9uIHNlZ21lbnQsIHJ1biBmb2xsb3dpbmcgc3RlcHM6CiAgICAgICAg
IGZvciAoYXV0byYgdmlkZW9UcmFja0luZm8gOiBzZWdtZW50LnZpZGVvVHJhY2tzKSB7Ci0gICAg
ICAgICAgICBWaWRlb1RyYWNrUHJpdmF0ZSogdmlkZW9UcmFja1ByaXZhdGUgPSB2aWRlb1RyYWNr
SW5mby50cmFjay5nZXQoKTsKLQogICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBzdGVw
cyA1LjMuMS01LjMuOC4xIGFzIHBlciBFZGl0b3IncyBEcmFmdCAwOSBKYW51YXJ5IDIwMTUsIGFu
ZCByZW9yZGVyIHRoaXMKICAgICAgICAgICAgIC8vIDUuMy4xIExldCBuZXcgdmlkZW8gdHJhY2sg
YmUgYSBuZXcgVmlkZW9UcmFjayBvYmplY3QuCiAgICAgICAgICAgICAvLyA1LjMuMiBHZW5lcmF0
ZSBhIHVuaXF1ZSBJRCBhbmQgYXNzaWduIGl0IHRvIHRoZSBpZCBwcm9wZXJ0eSBvbiBuZXcgdmlk
ZW8gdHJhY2suCi0gICAgICAgICAgICBhdXRvIG5ld1ZpZGVvVHJhY2sgPSBWaWRlb1RyYWNrOjpj
cmVhdGUodGhpcywgdmlkZW9UcmFja1ByaXZhdGUpOworICAgICAgICAgICAgYXV0byBuZXdWaWRl
b1RyYWNrID0gVmlkZW9UcmFjazo6Y3JlYXRlKCp0aGlzLCAqdmlkZW9UcmFja0luZm8udHJhY2sp
OwogICAgICAgICAgICAgbmV3VmlkZW9UcmFjay0+c2V0U291cmNlQnVmZmVyKHRoaXMpOwogCiAg
ICAgICAgICAgICAvLyA1LjMuMyBJZiB2aWRlb1RyYWNrcy5sZW5ndGggZXF1YWxzIDAsIHRoZW4g
cnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6Ci0gICAgICAgICAgICBpZiAoIXZpZGVvVHJhY2tzKCkt
Pmxlbmd0aCgpKSB7CisgICAgICAgICAgICBpZiAoIXZpZGVvVHJhY2tzKCkubGVuZ3RoKCkpIHsK
ICAgICAgICAgICAgICAgICAvLyA1LjMuMy4xIFNldCB0aGUgc2VsZWN0ZWQgcHJvcGVydHkgb24g
bmV3IHZpZGVvIHRyYWNrIHRvIHRydWUuCiAgICAgICAgICAgICAgICAgbmV3VmlkZW9UcmFjay0+
c2V0U2VsZWN0ZWQodHJ1ZSk7CiAKQEAgLTExMzgsNyArMTEyOCw3IEBAIHZvaWQgU291cmNlQnVm
ZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChT
b3VyY2VCdWZmCiAgICAgICAgICAgICAvLyA1LjMuNSBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHRy
dXN0ZWQgZXZlbnQgbmFtZWQgYWRkdHJhY2ssIHRoYXQgZG9lcyBub3QgYnViYmxlIGFuZCBpcwog
ICAgICAgICAgICAgLy8gbm90IGNhbmNlbGFibGUsIGFuZCB0aGF0IHVzZXMgdGhlIFRyYWNrRXZl
bnQgaW50ZXJmYWNlLCBhdCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0CiAgICAgICAgICAgICAv
LyByZWZlcmVuY2VkIGJ5IHRoZSB2aWRlb1RyYWNrcyBhdHRyaWJ1dGUgb24gdGhpcyBTb3VyY2VC
dWZmZXIgb2JqZWN0LgotICAgICAgICAgICAgdmlkZW9UcmFja3MoKS0+YXBwZW5kKG5ld1ZpZGVv
VHJhY2suY29weVJlZigpKTsKKyAgICAgICAgICAgIHZpZGVvVHJhY2tzKCkuYXBwZW5kKG5ld1Zp
ZGVvVHJhY2suY29weVJlZigpKTsKIAogICAgICAgICAgICAgLy8gNS4zLjYgQWRkIG5ldyB2aWRl
byB0cmFjayB0byB0aGUgdmlkZW9UcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVt
ZW50LgogICAgICAgICAgICAgLy8gNS4zLjcgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSB0cnVzdGVk
IGV2ZW50IG5hbWVkIGFkZHRyYWNrLCB0aGF0IGRvZXMgbm90IGJ1YmJsZSBhbmQgaXMKQEAgLTEx
NDgsNyArMTEzOCw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlk
UmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmCiAKICAgICAgICAgICAgIC8v
IDUuMy44IENyZWF0ZSBhIG5ldyB0cmFjayBidWZmZXIgdG8gc3RvcmUgY29kZWQgZnJhbWVzIGZv
ciB0aGlzIHRyYWNrLgogICAgICAgICAgICAgQVNTRVJUKCFtX3RyYWNrQnVmZmVyTWFwLmNvbnRh
aW5zKG5ld1ZpZGVvVHJhY2stPmlkKCkpKTsKLSAgICAgICAgICAgIFRyYWNrQnVmZmVyJiB0cmFj
a0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKG5ld1ZpZGVvVHJhY2stPmlkKCksIFRyYWNr
QnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgICAgIGF1dG8mIHRyYWNrQnVmZmVy
ID0gbV90cmFja0J1ZmZlck1hcC5hZGQobmV3VmlkZW9UcmFjay0+aWQoKSwgVHJhY2tCdWZmZXIo
KSkuaXRlcmF0b3ItPnZhbHVlOwogCiAgICAgICAgICAgICAvLyA1LjMuOSBBZGQgdGhlIHRyYWNr
IGRlc2NyaXB0aW9uIGZvciB0aGlzIHRyYWNrIHRvIHRoZSB0cmFjayBidWZmZXIuCiAgICAgICAg
ICAgICB0cmFja0J1ZmZlci5kZXNjcmlwdGlvbiA9IHZpZGVvVHJhY2tJbmZvLmRlc2NyaXB0aW9u
OwpAQCAtMTE1OCwzMyArMTE0OCwzMyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVy
UHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZgogCiAgICAg
ICAgIC8vIDUuNCBGb3IgZWFjaCB0ZXh0IHRyYWNrIGluIHRoZSBpbml0aWFsaXphdGlvbiBzZWdt
ZW50LCBydW4gZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICBmb3IgKGF1dG8mIHRleHRUcmFja0lu
Zm8gOiBzZWdtZW50LnRleHRUcmFja3MpIHsKLSAgICAgICAgICAgIEluYmFuZFRleHRUcmFja1By
aXZhdGUqIHRleHRUcmFja1ByaXZhdGUgPSB0ZXh0VHJhY2tJbmZvLnRyYWNrLmdldCgpOworICAg
ICAgICAgICAgYXV0byYgdGV4dFRyYWNrUHJpdmF0ZSA9ICp0ZXh0VHJhY2tJbmZvLnRyYWNrOwog
CiAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHN0ZXBzIDUuNC4xLTUuNC44LjEgYXMg
cGVyIEVkaXRvcidzIERyYWZ0IDA5IEphbnVhcnkgMjAxNSwgYW5kIHJlb3JkZXIgdGhpcwogICAg
ICAgICAgICAgLy8gNS40LjEgTGV0IG5ldyB0ZXh0IHRyYWNrIGJlIGEgbmV3IFRleHRUcmFjayBv
YmplY3Qgd2l0aCBpdHMgcHJvcGVydGllcyBwb3B1bGF0ZWQgd2l0aCB0aGUKICAgICAgICAgICAg
IC8vIGFwcHJvcHJpYXRlIGluZm9ybWF0aW9uIGZyb20gdGhlIGluaXRpYWxpemF0aW9uIHNlZ21l
bnQuCi0gICAgICAgICAgICBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrPiBuZXdUZXh0VHJhY2sgPSBJ
bmJhbmRUZXh0VHJhY2s6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRoaXMsIHRl
eHRUcmFja1ByaXZhdGUpOworICAgICAgICAgICAgYXV0byBuZXdUZXh0VHJhY2sgPSBJbmJhbmRU
ZXh0VHJhY2s6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgdGV4dFRy
YWNrUHJpdmF0ZSk7CiAKICAgICAgICAgICAgIC8vIDUuNC4yIElmIHRoZSBtb2RlIHByb3BlcnR5
IG9uIG5ldyB0ZXh0IHRyYWNrIGVxdWFscyAic2hvd2luZyIgb3IgImhpZGRlbiIsIHRoZW4gc2V0
IGFjdGl2ZQogICAgICAgICAgICAgLy8gdHJhY2sgZmxhZyB0byB0cnVlLgotICAgICAgICAgICAg
aWYgKHRleHRUcmFja1ByaXZhdGUtPm1vZGUoKSAhPSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpE
aXNhYmxlZCkKKyAgICAgICAgICAgIGlmICh0ZXh0VHJhY2tQcml2YXRlLm1vZGUoKSAhPSBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlOjpEaXNhYmxlZCkKICAgICAgICAgICAgICAgICBhY3RpdmVUcmFj
a0ZsYWcgPSB0cnVlOwogCiAgICAgICAgICAgICAvLyA1LjQuMyBBZGQgbmV3IHRleHQgdHJhY2sg
dG8gdGhlIHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoaXMgU291cmNlQnVmZmVyIG9iamVjdC4K
ICAgICAgICAgICAgIC8vIDUuNC40IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVu
dCBuYW1lZCBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCiAgICAgICAgICAg
ICAvLyBub3QgY2FuY2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZh
Y2UsIGF0IHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoaXMKICAgICAgICAgICAgIC8vIFNvdXJj
ZUJ1ZmZlciBvYmplY3QuCi0gICAgICAgICAgICB0ZXh0VHJhY2tzKCktPmFwcGVuZCgqbmV3VGV4
dFRyYWNrKTsKKyAgICAgICAgICAgIHRleHRUcmFja3MoKS5hcHBlbmQobmV3VGV4dFRyYWNrLmdl
dCgpKTsKIAogICAgICAgICAgICAgLy8gNS40LjUgQWRkIG5ldyB0ZXh0IHRyYWNrIHRvIHRoZSB0
ZXh0VHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxlbWVudC4KICAgICAgICAgICAg
IC8vIDUuNC42IFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgdHJ1c3RlZCBldmVudCBuYW1lZCBhZGR0
cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5kIGlzCiAgICAgICAgICAgICAvLyBub3QgY2Fu
Y2VsYWJsZSwgYW5kIHRoYXQgdXNlcyB0aGUgVHJhY2tFdmVudCBpbnRlcmZhY2UsIGF0IHRoZSBU
ZXh0VHJhY2tMaXN0IG9iamVjdAogICAgICAgICAgICAgLy8gcmVmZXJlbmNlZCBieSB0aGUgdGV4
dFRyYWNrcyBhdHRyaWJ1dGUgb24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCi0gICAgICAgICAgICBt
X3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja3MoKS5hcHBlbmQobmV3VGV4dFRyYWNr
LnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgp
LT50ZXh0VHJhY2tzKCkuYXBwZW5kKFdURk1vdmUobmV3VGV4dFRyYWNrKSk7CiAKICAgICAgICAg
ICAgIC8vIDUuNC43IENyZWF0ZSBhIG5ldyB0cmFjayBidWZmZXIgdG8gc3RvcmUgY29kZWQgZnJh
bWVzIGZvciB0aGlzIHRyYWNrLgotICAgICAgICAgICAgQVNTRVJUKCFtX3RyYWNrQnVmZmVyTWFw
LmNvbnRhaW5zKHRleHRUcmFja1ByaXZhdGUtPmlkKCkpKTsKLSAgICAgICAgICAgIFRyYWNrQnVm
ZmVyJiB0cmFja0J1ZmZlciA9IG1fdHJhY2tCdWZmZXJNYXAuYWRkKHRleHRUcmFja1ByaXZhdGUt
PmlkKCksIFRyYWNrQnVmZmVyKCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgICAgIEFTU0VS
VCghbV90cmFja0J1ZmZlck1hcC5jb250YWlucyh0ZXh0VHJhY2tQcml2YXRlLmlkKCkpKTsKKyAg
ICAgICAgICAgIGF1dG8mIHRyYWNrQnVmZmVyID0gbV90cmFja0J1ZmZlck1hcC5hZGQodGV4dFRy
YWNrUHJpdmF0ZS5pZCgpLCBUcmFja0J1ZmZlcigpKS5pdGVyYXRvci0+dmFsdWU7CiAKICAgICAg
ICAgICAgIC8vIDUuNC44IEFkZCB0aGUgdHJhY2sgZGVzY3JpcHRpb24gZm9yIHRoaXMgdHJhY2sg
dG8gdGhlIHRyYWNrIGJ1ZmZlci4KICAgICAgICAgICAgIHRyYWNrQnVmZmVyLmRlc2NyaXB0aW9u
ID0gdGV4dFRyYWNrSW5mby5kZXNjcmlwdGlvbjsKQEAgLTEyMzEsOSArMTIyMSw5IEBAIGJvb2wg
U291cmNlQnVmZmVyOjp2YWxpZGF0ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBJbml0aWFs
aXphdGlvblNlZ21lbnQmIHNlCiAKICAgICAvLyBOb3RlOiB0aG9zZSBhcmUgY2hlY2tzIGZyb20g
c3RlcCAzLjEKICAgICAvLyAgICogVGhlIG51bWJlciBvZiBhdWRpbywgdmlkZW8sIGFuZCB0ZXh0
IHRyYWNrcyBtYXRjaCB3aGF0IHdhcyBpbiB0aGUgZmlyc3QgaW5pdGlhbGl6YXRpb24gc2VnbWVu
dC4KLSAgICBpZiAoc2VnbWVudC5hdWRpb1RyYWNrcy5zaXplKCkgIT0gYXVkaW9UcmFja3MoKS0+
bGVuZ3RoKCkKLSAgICAgICAgfHwgc2VnbWVudC52aWRlb1RyYWNrcy5zaXplKCkgIT0gdmlkZW9U
cmFja3MoKS0+bGVuZ3RoKCkKLSAgICAgICAgfHwgc2VnbWVudC50ZXh0VHJhY2tzLnNpemUoKSAh
PSB0ZXh0VHJhY2tzKCktPmxlbmd0aCgpKQorICAgIGlmIChzZWdtZW50LmF1ZGlvVHJhY2tzLnNp
emUoKSAhPSBhdWRpb1RyYWNrcygpLmxlbmd0aCgpCisgICAgICAgIHx8IHNlZ21lbnQudmlkZW9U
cmFja3Muc2l6ZSgpICE9IHZpZGVvVHJhY2tzKCkubGVuZ3RoKCkKKyAgICAgICAgfHwgc2VnbWVu
dC50ZXh0VHJhY2tzLnNpemUoKSAhPSB0ZXh0VHJhY2tzKCkubGVuZ3RoKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIC8vICAgKiBUaGUgY29kZWNzIGZvciBlYWNoIHRyYWNrLCBtYXRj
aCB3aGF0IHdhcyBzcGVjaWZpZWQgaW4gdGhlIGZpcnN0IGluaXRpYWxpemF0aW9uIHNlZ21lbnQu
CkBAIC0xMzE5LDcgKzEzMDksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6YXBwZW5kRXJyb3IoYm9v
bCBkZWNvZGVFcnJvclBhcmFtKQogICAgICAgICBtX3NvdXJjZS0+c3RyZWFtRW5kZWRXaXRoRXJy
b3IoTWVkaWFTb3VyY2U6OkVuZE9mU3RyZWFtRXJyb3I6OkRlY29kZSk7CiB9CiAKLXZvaWQgU291
cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShTb3VyY2VCdWZm
ZXJQcml2YXRlKiwgTWVkaWFTYW1wbGUmIHNhbXBsZSkKK3ZvaWQgU291cmNlQnVmZmVyOjpzb3Vy
Y2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogewog
ICAgIGlmIChpc1JlbW92ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTY2NiwzMCArMTY1Niwz
MCBAQCBib29sIFNvdXJjZUJ1ZmZlcjo6aGFzVmlkZW8oKSBjb25zdAogICAgIHJldHVybiBtX3Zp
ZGVvVHJhY2tzICYmIG1fdmlkZW9UcmFja3MtPmxlbmd0aCgpOwogfQogCi1ib29sIFNvdXJjZUJ1
ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKGNvbnN0IFNvdXJjZUJ1ZmZlclByaXZh
dGUqKSBjb25zdAorYm9vbCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRp
bygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc0F1ZGlvKCk7CiB9CiAKLWJvb2wgU291cmNlQnVm
ZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlSGFzVmlkZW8oY29uc3QgU291cmNlQnVmZmVyUHJpdmF0
ZSopIGNvbnN0Citib29sIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVv
KCkgY29uc3QKIHsKICAgICByZXR1cm4gaGFzVmlkZW8oKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZm
ZXI6OnZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFjayogdHJhY2spCit2b2lkIFNv
dXJjZUJ1ZmZlcjo6dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrJiB0cmFjaykK
IHsKICAgICAvLyAyLjQuNSBDaGFuZ2VzIHRvIHNlbGVjdGVkL2VuYWJsZWQgdHJhY2sgc3RhdGUK
ICAgICAvLyBJZiB0aGUgc2VsZWN0ZWQgdmlkZW8gdHJhY2sgY2hhbmdlcywgdGhlbiBydW4gdGhl
IGZvbGxvd2luZyBzdGVwczoKICAgICAvLyAxLiBJZiB0aGUgU291cmNlQnVmZmVyIGFzc29jaWF0
ZWQgd2l0aCB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCB2aWRlbyB0cmFjayBpcyBub3QgYXNzb2Np
YXRlZCB3aXRoCiAgICAgLy8gYW55IG90aGVyIGVuYWJsZWQgdHJhY2tzLCBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczoKLSAgICBpZiAoIXRyYWNrLT5zZWxlY3RlZCgpCisgICAgaWYgKCF0cmFjay5z
ZWxlY3RlZCgpCiAgICAgICAgICYmICghbV92aWRlb1RyYWNrcyB8fCAhbV92aWRlb1RyYWNrcy0+
aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFtX2F1ZGlvVHJhY2tzIHx8ICFtX2F1
ZGlvVHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAgICAgICAmJiAoIW1fdGV4dFRyYWNr
cyB8fCAhbV90ZXh0VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKSkgewogICAgICAgICAvLyAx
LjEgUmVtb3ZlIHRoZSBTb3VyY2VCdWZmZXIgZnJvbSBhY3RpdmVTb3VyY2VCdWZmZXJzLgogICAg
ICAgICAvLyAxLjIgUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZlbnQgbmFtZWQgcmVt
b3Zlc291cmNlYnVmZmVyIGF0IGFjdGl2ZVNvdXJjZUJ1ZmZlcnMKICAgICAgICAgc2V0QWN0aXZl
KGZhbHNlKTsKLSAgICB9IGVsc2UgaWYgKHRyYWNrLT5zZWxlY3RlZCgpKSB7CisgICAgfSBlbHNl
IGlmICh0cmFjay5zZWxlY3RlZCgpKSB7CiAgICAgICAgIC8vIDIuIElmIHRoZSBTb3VyY2VCdWZm
ZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBuZXdseSBzZWxlY3RlZCB2aWRlbyB0cmFjayBpcyBub3Qg
YWxyZWFkeSBpbiBhY3RpdmVTb3VyY2VCdWZmZXJzLAogICAgICAgICAvLyBydW4gdGhlIGZvbGxv
d2luZyBzdGVwczoKICAgICAgICAgLy8gMi4xIEFkZCB0aGUgU291cmNlQnVmZmVyIHRvIGFjdGl2
ZVNvdXJjZUJ1ZmZlcnMuCkBAIC0xNjk3LDI2ICsxNjg3LDI2IEBAIHZvaWQgU291cmNlQnVmZmVy
Ojp2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqIHRyYWNrKQogICAgICAgICBz
ZXRBY3RpdmUodHJ1ZSk7CiAgICAgfQogCi0gICAgaWYgKG1fdmlkZW9UcmFja3MgJiYgbV92aWRl
b1RyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV92aWRlb1RyYWNrcyAmJiBtX3Zp
ZGVvVHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fdmlkZW9UcmFja3MtPnNjaGVk
dWxlQ2hhbmdlRXZlbnQoKTsKIAogICAgIGlmICghaXNSZW1vdmVkKCkpCiAgICAgICAgIG1fc291
cmNlLT5tZWRpYUVsZW1lbnQoKS0+dmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZCh0cmFjayk7CiB9
CiAKLXZvaWQgU291cmNlQnVmZmVyOjphdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFj
ayogdHJhY2spCit2b2lkIFNvdXJjZUJ1ZmZlcjo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1
ZGlvVHJhY2smIHRyYWNrKQogewogICAgIC8vIDIuNC41IENoYW5nZXMgdG8gc2VsZWN0ZWQvZW5h
YmxlZCB0cmFjayBzdGF0ZQogICAgIC8vIElmIGFuIGF1ZGlvIHRyYWNrIGJlY29tZXMgZGlzYWJs
ZWQgYW5kIHRoZSBTb3VyY2VCdWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdHJhY2sgaXMgbm90
CiAgICAgLy8gYXNzb2NpYXRlZCB3aXRoIGFueSBvdGhlciBlbmFibGVkIG9yIHNlbGVjdGVkIHRy
YWNrLCB0aGVuIHJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzOgotICAgIGlmICghdHJhY2stPmVuYWJs
ZWQoKQorICAgIGlmICghdHJhY2suZW5hYmxlZCgpCiAgICAgICAgICYmICghbV92aWRlb1RyYWNr
cyB8fCAhbV92aWRlb1RyYWNrcy0+aXNBbnlUcmFja0VuYWJsZWQoKSkKICAgICAgICAgJiYgKCFt
X2F1ZGlvVHJhY2tzIHx8ICFtX2F1ZGlvVHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKQogICAg
ICAgICAmJiAoIW1fdGV4dFRyYWNrcyB8fCAhbV90ZXh0VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxl
ZCgpKSkgewogICAgICAgICAvLyAxLiBSZW1vdmUgdGhlIFNvdXJjZUJ1ZmZlciBhc3NvY2lhdGVk
IHdpdGggdGhlIGF1ZGlvIHRyYWNrIGZyb20gYWN0aXZlU291cmNlQnVmZmVycwogICAgICAgICAv
LyAyLiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCByZW1vdmVzb3Vy
Y2VidWZmZXIgYXQgYWN0aXZlU291cmNlQnVmZmVycwogICAgICAgICBzZXRBY3RpdmUoZmFsc2Up
OwotICAgIH0gZWxzZSBpZiAodHJhY2stPmVuYWJsZWQoKSkgeworICAgIH0gZWxzZSBpZiAodHJh
Y2suZW5hYmxlZCgpKSB7CiAgICAgICAgIC8vIElmIGFuIGF1ZGlvIHRyYWNrIGJlY29tZXMgZW5h
YmxlZCBhbmQgdGhlIFNvdXJjZUJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhpcyB0cmFjayBpcwog
ICAgICAgICAvLyBub3QgYWxyZWFkeSBpbiBhY3RpdmVTb3VyY2VCdWZmZXJzLCB0aGVuIHJ1biB0
aGUgZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICAvLyAxLiBBZGQgdGhlIFNvdXJjZUJ1ZmZlciBh
c3NvY2lhdGVkIHdpdGggdGhlIGF1ZGlvIHRyYWNrIHRvIGFjdGl2ZVNvdXJjZUJ1ZmZlcnMKQEAg
LTE3MjQsMTkgKzE3MTQsMTkgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OmF1ZGlvVHJhY2tFbmFibGVk
Q2hhbmdlZChBdWRpb1RyYWNrKiB0cmFjaykKICAgICAgICAgc2V0QWN0aXZlKHRydWUpOwogICAg
IH0KIAotICAgIGlmIChtX2F1ZGlvVHJhY2tzICYmIG1fYXVkaW9UcmFja3MtPmNvbnRhaW5zKCp0
cmFjaykpCisgICAgaWYgKG1fYXVkaW9UcmFja3MgJiYgbV9hdWRpb1RyYWNrcy0+Y29udGFpbnMo
dHJhY2spKQogICAgICAgICBtX2F1ZGlvVHJhY2tzLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAK
ICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCkt
PmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCh0cmFjayk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVy
Ojp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQordm9pZCBTb3VyY2VCdWZm
ZXI6OnRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYgdHJhY2spCiB7CiAgICAgLy8gMi40
LjUgQ2hhbmdlcyB0byBzZWxlY3RlZC9lbmFibGVkIHRyYWNrIHN0YXRlCiAgICAgLy8gSWYgYSB0
ZXh0IHRyYWNrIG1vZGUgYmVjb21lcyAiZGlzYWJsZWQiIGFuZCB0aGUgU291cmNlQnVmZmVyIGFz
c29jaWF0ZWQgd2l0aCB0aGlzIHRyYWNrIGlzIG5vdAogICAgIC8vIGFzc29jaWF0ZWQgd2l0aCBh
bnkgb3RoZXIgZW5hYmxlZCBvciBzZWxlY3RlZCB0cmFjaywgdGhlbiBydW4gdGhlIGZvbGxvd2lu
ZyBzdGVwczoKLSAgICBpZiAodHJhY2stPm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2Fi
bGVkCisgICAgaWYgKHRyYWNrLm1vZGUoKSA9PSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkCiAg
ICAgICAgICYmICghbV92aWRlb1RyYWNrcyB8fCAhbV92aWRlb1RyYWNrcy0+aXNBbnlUcmFja0Vu
YWJsZWQoKSkKICAgICAgICAgJiYgKCFtX2F1ZGlvVHJhY2tzIHx8ICFtX2F1ZGlvVHJhY2tzLT5p
c0FueVRyYWNrRW5hYmxlZCgpKQogICAgICAgICAmJiAoIW1fdGV4dFRyYWNrcyB8fCAhbV90ZXh0
VHJhY2tzLT5pc0FueVRyYWNrRW5hYmxlZCgpKSkgewpAQCAtMTc1MSw1NiArMTc0MSw1NiBAQCB2
b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykK
ICAgICAgICAgc2V0QWN0aXZlKHRydWUpOwogICAgIH0KIAotICAgIGlmIChtX3RleHRUcmFja3Mg
JiYgbV90ZXh0VHJhY2tzLT5jb250YWlucygqdHJhY2spKQorICAgIGlmIChtX3RleHRUcmFja3Mg
JiYgbV90ZXh0VHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fdGV4dFRyYWNrcy0+
c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogCiAgICAgaWYgKCFpc1JlbW92ZWQoKSkKICAgICAgICAg
bV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tNb2RlQ2hhbmdlZCh0cmFjayk7CiB9
CiAKLXZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiB0cmFjaywg
VGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrQWRkQ3VlKFRl
eHRUcmFjayYgdHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogewogICAgIGlmICghaXNSZW1vdmVk
KCkpCiAgICAgICAgIG1fc291cmNlLT5tZWRpYUVsZW1lbnQoKS0+dGV4dFRyYWNrQWRkQ3VlKHRy
YWNrLCBjdWUpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrQWRkQ3VlcyhUZXh0
VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWVMaXN0IGNvbnN0KiBjdWVMaXN0KQordm9pZCBTb3Vy
Y2VCdWZmZXI6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiB0cmFjaywgY29uc3QgVGV4dFRy
YWNrQ3VlTGlzdCYgY3VlTGlzdCkKIHsKICAgICBpZiAoIWlzUmVtb3ZlZCgpKQogICAgICAgICBt
X3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja0FkZEN1ZXModHJhY2ssIGN1ZUxpc3Qp
OwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayog
dHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFja1Jl
bW92ZUN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKICAgICBpZiAo
IWlzUmVtb3ZlZCgpKQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFj
a1JlbW92ZUN1ZSh0cmFjaywgY3VlKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFj
a1JlbW92ZUN1ZXMoVGV4dFRyYWNrKiB0cmFjaywgVGV4dFRyYWNrQ3VlTGlzdCBjb25zdCogY3Vl
TGlzdCkKK3ZvaWQgU291cmNlQnVmZmVyOjp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYg
dHJhY2ssIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmIGN1ZUxpc3QpCiB7CiAgICAgaWYgKCFpc1Jl
bW92ZWQoKSkKICAgICAgICAgbV9zb3VyY2UtPm1lZGlhRWxlbWVudCgpLT50ZXh0VHJhY2tSZW1v
dmVDdWVzKHRyYWNrLCBjdWVMaXN0KTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnRleHRUcmFj
a0tpbmRDaGFuZ2VkKFRleHRUcmFjayogdHJhY2spCit2b2lkIFNvdXJjZUJ1ZmZlcjo6dGV4dFRy
YWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJiB0cmFjaykKIHsKICAgICBpZiAoIWlzUmVtb3ZlZCgp
KQogICAgICAgICBtX3NvdXJjZS0+bWVkaWFFbGVtZW50KCktPnRleHRUcmFja0tpbmRDaGFuZ2Vk
KHRyYWNrKTsKIH0KIAotdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRC
ZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBBdG9taWNTdHJp
bmcgdHJhY2tJRCkKK3ZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVj
b21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpCiB7CiAg
ICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlk
QmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyglcCkiLCB0aGlzKTsKICAgICBhdXRvIGl0ID0gbV90
cmFja0J1ZmZlck1hcC5maW5kKHRyYWNrSUQpOwogICAgIGlmIChpdCA9PSBtX3RyYWNrQnVmZmVy
TWFwLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBUcmFja0J1ZmZlciYgdHJhY2tCdWZm
ZXIgPSBpdC0+dmFsdWU7CisgICAgYXV0byYgdHJhY2tCdWZmZXIgPSBpdC0+dmFsdWU7CiAgICAg
aWYgKCF0cmFja0J1ZmZlci5uZWVkc1JlZW5xdWV1ZWluZyAmJiAhbV9zb3VyY2UtPmlzU2Vla2lu
ZygpKQogICAgICAgICBwcm92aWRlTWVkaWFEYXRhKHRyYWNrQnVmZmVyLCB0cmFja0lEKTsKIH0K
IAotdm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoVHJhY2tCdWZmZXImIHRyYWNr
QnVmZmVyLCBBdG9taWNTdHJpbmcgdHJhY2tJRCkKK3ZvaWQgU291cmNlQnVmZmVyOjpwcm92aWRl
TWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgY29uc3QgQXRvbWljU3RyaW5nJiB0
cmFja0lEKQogewogICAgIGlmIChtX3NvdXJjZS0+aXNTZWVraW5nKCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTE4MzQsNyArMTgyNCw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpwcm92aWRlTWVkaWFE
YXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5nIHRyYWNrCiAKICAgICAg
ICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSA9IHNhbXBsZS0+cHJl
c2VudGF0aW9uVGltZSgpOwogICAgICAgICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVF
bmRUaW1lID0gc2FtcGxlLT5kZWNvZGVUaW1lKCkgKyBzYW1wbGUtPmR1cmF0aW9uKCk7Ci0gICAg
ICAgIG1fcHJpdmF0ZS0+ZW5xdWV1ZVNhbXBsZShXVEZNb3ZlKHNhbXBsZSksIHRyYWNrSUQpOwor
ICAgICAgICBtX3ByaXZhdGUtPmVucXVldWVTYW1wbGUoc2FtcGxlLnJlbGVhc2VOb25OdWxsKCks
IHRyYWNrSUQpOwogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgKytlbnF1ZXVlZFNhbXBsZXM7
CiAjZW5kaWYKQEAgLTE4NDMsNyArMTgzMyw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpwcm92aWRl
TWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgQXRvbWljU3RyaW5nIHRyYWNrCiAg
ICAgTE9HKE1lZGlhU291cmNlLCAiU291cmNlQnVmZmVyOjpwcm92aWRlTWVkaWFEYXRhKCVwKSAt
IEVucXVldWVkICV1IHNhbXBsZXMiLCB0aGlzLCBlbnF1ZXVlZFNhbXBsZXMpOwogfQogCi12b2lk
IFNvdXJjZUJ1ZmZlcjo6cmVlbnF1ZXVlTWVkaWFGb3JUaW1lKFRyYWNrQnVmZmVyJiB0cmFja0J1
ZmZlciwgQXRvbWljU3RyaW5nIHRyYWNrSUQsIGNvbnN0IE1lZGlhVGltZSYgdGltZSkKK3ZvaWQg
U291cmNlQnVmZmVyOjpyZWVucXVldWVNZWRpYUZvclRpbWUoVHJhY2tCdWZmZXImIHRyYWNrQnVm
ZmVyLCBjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQsIGNvbnN0IE1lZGlhVGltZSYgdGltZSkK
IHsKICAgICBtX3ByaXZhdGUtPmZsdXNoKHRyYWNrSUQpOwogICAgIHRyYWNrQnVmZmVyLmRlY29k
ZVF1ZXVlLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXIuaAppbmRleCBkOWUxNzQ3OTk5MjRhZmIwZTg4ZDc0NzcyZThmOGE5MWEy
Y2YwMmIwLi41YTE0MmQ0Y2ExMDIzNTRlZWQ4MGJjMWFjMWJlYmMzMTU3NmM4ZjhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKQEAg
LTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIEF1ZGlvVHJhY2tMaXN0OwogY2xhc3MgQnVmZmVyU291
cmNlOwogY2xhc3MgTWVkaWFTb3VyY2U7CiBjbGFzcyBQbGF0Zm9ybVRpbWVSYW5nZXM7CitjbGFz
cyBTb3VyY2VCdWZmZXJQcml2YXRlOwogY2xhc3MgVGV4dFRyYWNrTGlzdDsKIGNsYXNzIFRpbWVS
YW5nZXM7CiBjbGFzcyBWaWRlb1RyYWNrTGlzdDsKQEAgLTY0LDkgKzY1LDkgQEAgcHVibGljOgog
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFRpbWVzdGFtcE9mZnNldChkb3VibGUpOwogCiAjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQotICAgIFZpZGVvVHJhY2tMaXN0KiB2aWRlb1RyYWNrcygpOwot
ICAgIEF1ZGlvVHJhY2tMaXN0KiBhdWRpb1RyYWNrcygpOwotICAgIFRleHRUcmFja0xpc3QqIHRl
eHRUcmFja3MoKTsKKyAgICBWaWRlb1RyYWNrTGlzdCYgdmlkZW9UcmFja3MoKTsKKyAgICBBdWRp
b1RyYWNrTGlzdCYgYXVkaW9UcmFja3MoKTsKKyAgICBUZXh0VHJhY2tMaXN0JiB0ZXh0VHJhY2tz
KCk7CiAjZW5kaWYKIAogICAgIGRvdWJsZSBhcHBlbmRXaW5kb3dTdGFydCgpIGNvbnN0OwpAQCAt
MTI0LDI1ICsxMjUsMjQgQEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNw
ZW5zaW9uKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRS
ZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBJ
bml0aWFsaXphdGlvblNlZ21lbnQmKSBmaW5hbDsKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZh
dGVEaWRSZWNlaXZlU2FtcGxlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBNZWRpYVNhbXBsZSYpIGZp
bmFsOwotICAgIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc0F1ZGlvKGNvbnN0IFNvdXJjZUJ1
ZmZlclByaXZhdGUqKSBjb25zdCBmaW5hbDsKLSAgICBib29sIHNvdXJjZUJ1ZmZlclByaXZhdGVI
YXNWaWRlbyhjb25zdCBTb3VyY2VCdWZmZXJQcml2YXRlKikgY29uc3QgZmluYWw7Ci0gICAgdm9p
ZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhTb3VyY2VC
dWZmZXJQcml2YXRlKiwgQXRvbWljU3RyaW5nIHRyYWNrSUQpIGZpbmFsOwotICAgIE1lZGlhVGlt
ZSBzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKFNvdXJjZUJ1ZmZl
clByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZlVGhy
ZXNob2xkLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKSBmaW5hbDsKLSAgICB2
b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2YXRl
KiwgQXBwZW5kUmVzdWx0KSBmaW5hbDsKLSAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRS
ZWNlaXZlUmVuZGVyaW5nRXJyb3IoU291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvckNvZGUp
IGZpbmFsOwotCi0gICAgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayop
IGZpbmFsOwotCi0gICAgdm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sq
KSBmaW5hbDsKLQotICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrKikgZmlu
YWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqKSBmaW5hbDsKLSAg
ICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlz
dCopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBjb25z
dCBUZXh0VHJhY2tDdWVMaXN0KikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4
dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgZmluYWw7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVD
dWUoVGV4dFRyYWNrKiwgVGV4dFRyYWNrQ3VlJikgZmluYWw7CisgICAgdm9pZCBzb3VyY2VCdWZm
ZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBJbml0aWFsaXph
dGlvblNlZ21lbnQmKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNl
aXZlU2FtcGxlKE1lZGlhU2FtcGxlJikgZmluYWw7CisgICAgYm9vbCBzb3VyY2VCdWZmZXJQcml2
YXRlSGFzQXVkaW8oKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHNvdXJjZUJ1ZmZlclByaXZhdGVI
YXNWaWRlbygpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZEJl
Y29tZVJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKSBmaW5h
bDsKKyAgICBNZWRpYVRpbWUgc291cmNlQnVmZmVyUHJpdmF0ZUZhc3RTZWVrVGltZUZvck1lZGlh
VGltZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZlVGhyZXNob2xk
LCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVGhyZXNob2xkKSBmaW5hbDsKKyAgICB2b2lkIHNv
dXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShBcHBlbmRSZXN1bHQpIGZpbmFsOworICAg
IHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihpbnQgZXJy
b3JDb2RlKSBmaW5hbDsKKworICAgIHZvaWQgYXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlv
VHJhY2smKSBmaW5hbDsKKyAgICB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQoVmlkZW9U
cmFjayYpIGZpbmFsOworCisgICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2sm
KSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayYpIGZpbmFs
OworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tD
dWVMaXN0JikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayYs
IGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja0FkZEN1
ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja1Jl
bW92ZUN1ZShUZXh0VHJhY2smLCBUZXh0VHJhY2tDdWUmKSBmaW5hbDsKIAogICAgIEV2ZW50VGFy
Z2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
U291cmNlQnVmZmVyRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAKQEAgLTE1Nyw4ICsxNTcs
OCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCB2YWxpZGF0ZUluaXRpYWxpemF0aW9uU2VnbWVudChj
b25zdCBJbml0aWFsaXphdGlvblNlZ21lbnQmKTsKIAotICAgIHZvaWQgcmVlbnF1ZXVlTWVkaWFG
b3JUaW1lKFRyYWNrQnVmZmVyJiwgQXRvbWljU3RyaW5nIHRyYWNrSUQsIGNvbnN0IE1lZGlhVGlt
ZSYpOwotICAgIHZvaWQgcHJvdmlkZU1lZGlhRGF0YShUcmFja0J1ZmZlciYsIEF0b21pY1N0cmlu
ZyB0cmFja0lEKTsKKyAgICB2b2lkIHJlZW5xdWV1ZU1lZGlhRm9yVGltZShUcmFja0J1ZmZlciYs
IGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCwgY29uc3QgTWVkaWFUaW1lJik7CisgICAgdm9p
ZCBwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiwgY29uc3QgQXRvbWljU3RyaW5nJiB0cmFj
a0lEKTsKICAgICB2b2lkIGRpZERyb3BTYW1wbGUoKTsKICAgICB2b2lkIGV2aWN0Q29kZWRGcmFt
ZXMoc2l6ZV90IG5ld0RhdGFTaXplKTsKICAgICBzaXplX3QgbWF4aW11bUJ1ZmZlclNpemUoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAxMDJiYzU2ZDU0ZGFlZjk1NmNjZmY1OTc5MTBjZjYzOTQ2MjVlMGUwLi4xYTM5
MGQxZDQ0NmQ3ZjBkYzhmNDlkOTRmMjFjYjI5YTU5NTQ0M2NiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjE0LDggKzI2MTQs
OCBAQAogCQk2RTNGQUU4RTE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUzRkFFOEMx
NDczM0ZEQjAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmNwcCAqLzsgfTsKIAkJNkUzRkFF
OEYxNDczM0ZEQjAwRTQyMzA2IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4RDE0NzMzRkRC
MDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCAqLzsgfTsKIAkJNkUzRkFF
OEYxNDczM0ZEQjAwRTQyMzA3IC8qIFdlYkdMRGVwdGhUZXh0dXJlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4RDE0NzMzRkRCMDBFNDIzMDcg
LyogV2ViR0xEZXB0aFRleHR1cmUuaCAqLzsgfTsKLQkJNkU0N0U2NjAxMEI3OTQ0QjAwQjE4NkM4
IC8qIFdlYkdMR2V0SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCAq
LzsgfTsKLQkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkU0N0U2NUYxMEI3OTQ0
QjAwQjE4NkM4IC8qIFdlYkdMR2V0SW5mby5oICovOyB9OworCQk2RTQ3RTY2MDEwQjc5NDRCMDBC
MTg2QzggLyogV2ViR0xBbnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkU0N0U2NUUxMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmNwcCAqLzsg
fTsKKwkJNkU0N0U2NjExMEI3OTQ0QjAwQjE4NkM4IC8qIFdlYkdMQW55LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTQ3RTY1RjEwQjc5NDRCMDBCMTg2
QzggLyogV2ViR0xBbnkuaCAqLzsgfTsKIAkJNkU0QUJDRDQxMzhFQTBCNzAwNzFEMjkxIC8qIEpT
SFRNTFVua25vd25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZFNEFCQ0QyMTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtub3duRWxl
bWVudC5jcHAgKi87IH07CiAJCTZFNEFCQ0Q1MTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtu
b3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkU0QUJDRDMxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50LmggKi87
IH07CiAJCTZFNEU5MUFGMTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTRFOTFB
QTEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05OTE0LDggKzk5MTQsOCBA
QAogCQk2RTNGQUU4RDE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xEZXB0aFRleHR1cmUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFFOTAxNDczM0ZFQTAwRTQyMzA2IC8qIFdlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHTENv
bXByZXNzZWRUZXh0dXJlUzNUQy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZF
M0ZBRTkwMTQ3MzNGRUEwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVyZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gV2ViR0xEZXB0aFRleHR1cmUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk2RTQ3RTY1RTEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMR2V0SW5mby5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZFNDdFNjVGMTBCNzk0NEIwMEIxODZDOCAvKiBX
ZWJHTEdldEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xHZXRJ
bmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFNDdFNjVFMTBCNzk0NEIwMEIx
ODZDOCAvKiBXZWJHTEFueS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJHTEFueS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFNDdFNjVGMTBC
Nzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJHTEFueS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTRBQkNEMjEz
OEVBMEI3MDA3MUQyOTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2RTRBQkNEMzEzOEVBMEI3MDA3MUQyOTEgLyogSlNIVE1M
VW5rbm93bkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1M
VW5rbm93bkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkU0RTkxQUEx
MEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTY5MjYsOCArMTY5MjYsOCBAQAogCQkJCTQ5QzdCOUFFMTA0
MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmNwcCAqLywKIAkJCQk0OUM3QjlBRjEw
NDJEMzJFMDAwOUQ0NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5oICovLAogCQkJCTQ5QzdCOUIwMTA0
MkQzMkUwMDA5RDQ0NyAvKiBXZWJHTEZyYW1lYnVmZmVyLmlkbCAqLywKLQkJCQk2RTQ3RTY1RTEw
Qjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCAqLywKLQkJCQk2RTQ3RTY1RjEwQjc5
NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmggKi8sCisJCQkJNkU0N0U2NUUxMEI3OTQ0QjAw
QjE4NkM4IC8qIFdlYkdMQW55LmNwcCAqLywKKwkJCQk2RTQ3RTY1RjEwQjc5NDRCMDBCMTg2Qzgg
LyogV2ViR0xBbnkuaCAqLywKIAkJCQk5M0YxRDVCNzEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xM
b3NlQ29udGV4dC5jcHAgKi8sCiAJCQkJOTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdM
TG9zZUNvbnRleHQuaCAqLywKIAkJCQk5M0YxRDVCOTEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xM
b3NlQ29udGV4dC5pZGwgKi8sCkBAIC0yODI0MCw3ICsyODI0MCw3IEBACiAJCQkJNUIzMDY5NUUx
OEIzRDM0NTAwOTlENUU4IC8qIFdlYkdMRHJhd0J1ZmZlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTZFQkYwRTU1MTJBODkyOTgwMERCMTcwOSAvKiBXZWJHTEV4dGVuc2lvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDlDN0I5Q0YxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMRnJhbWVidWZmZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCTZFNDdFNjYxMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldElu
Zm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTZFNDdFNjYxMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJH
TEFueS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlGRkJGM0YxMUM5M0VFMzAwNkE3MTE4IC8qIFdl
YkdMTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjFENUJCMTJENTMyQzQwMDgzMkJFQyAv
KiBXZWJHTExvc2VDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3QjlENTEwNDJEMzJG
MDAwOUQ0NDcgLyogV2ViR0xPYmplY3QuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3MjksNyArMzE3
MjksNyBAQAogCQkJCTVCMzA2OTVEMThCM0QzNDUwMDk5RDVFOCAvKiBXZWJHTERyYXdCdWZmZXJz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFQkYwRTU0MTJBODkyOTgwMERCMTcwOSAvKiBXZWJH
TEV4dGVuc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUM3QjlDRTEwNDJEMzJGMDAwOUQ0
NDcgLyogV2ViR0xGcmFtZWJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk2RTQ3RTY2MDEw
Qjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTZF
NDdFNjYwMTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEFueS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk0OUZGQkY0MDExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTkzRjFENUJBMTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTQ5QzdCOUQ0MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTE9iamVj
dC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAppbmRleCBl
MjBiMjM4Njg2NGRhY2RkYWQ1NjJmYzNlZWM2YWEzMzk0ZmYxMGE1Li45M2I3OTZhNDViZmVjZWY2
NmRmNzk0OTc1ZmIwNDk1N2JjY2I2MjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTY1LDkgKzY1LDkgQEAgc3RhdGljIENhbnZhc1N0eWxlIHRvSFRNTENhbnZhc1N0eWxlKEV4ZWNT
dGF0ZSosIEpTVmFsdWUgdmFsdWUpCiAgICAgICAgIHJldHVybiBDYW52YXNTdHlsZSgpOwogICAg
IEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7CiAgICAgaWYgKG9iamVjdC0+aW5o
ZXJpdHMoSlNDYW52YXNHcmFkaWVudDo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIENhbnZhc1N0
eWxlKCZqc0Nhc3Q8SlNDYW52YXNHcmFkaWVudCo+KG9iamVjdCktPndyYXBwZWQoKSk7CisgICAg
ICAgIHJldHVybiBqc0Nhc3Q8SlNDYW52YXNHcmFkaWVudCo+KG9iamVjdCktPndyYXBwZWQoKTsK
ICAgICBpZiAob2JqZWN0LT5pbmhlcml0cyhKU0NhbnZhc1BhdHRlcm46OmluZm8oKSkpCi0gICAg
ICAgIHJldHVybiBDYW52YXNTdHlsZSgmanNDYXN0PEpTQ2FudmFzUGF0dGVybio+KG9iamVjdCkt
PndyYXBwZWQoKSk7CisgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNDYW52YXNQYXR0ZXJuKj4ob2Jq
ZWN0KS0+d3JhcHBlZCgpOwogICAgIHJldHVybiBDYW52YXNTdHlsZSgpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25z
LmNwcAppbmRleCBmNzhhMTE4NjIxOGM2YTliZDFkNzdiZTg3ODc0M2U5ZWFjYmFjNzQ0Li40MTgx
ZDc0Nzg2ZjM5ZjNkZDVmZDc5NzdlY2Y2ODFkZGM2MjUyOTY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKQEAg
LTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRl
biAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDgsIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNC0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAg
LTQwLDcgKzQwLDcgQEAgSW5zdGFuY2UqIHBsdWdpbkluc3RhbmNlKEhUTUxFbGVtZW50JiBlbGVt
ZW50KQogICAgIC8vIFRoZSBwbHVnaW4gZWxlbWVudCBob2xkcyBhbiBvd25pbmcgcmVmZXJlbmNl
LCBzbyB3ZSBkb24ndCBoYXZlIHRvLgogICAgIGlmICghaXM8SFRNTFBsdWdJbkVsZW1lbnQ+KGVs
ZW1lbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBJbnN0YW5jZSogaW5zdGFuY2Ug
PSBkb3duY2FzdDxIVE1MUGx1Z0luRWxlbWVudD4oZWxlbWVudCkuZ2V0SW5zdGFuY2UoKS5nZXQo
KTsKKyAgICBhdXRvKiBpbnN0YW5jZSA9IGRvd25jYXN0PEhUTUxQbHVnSW5FbGVtZW50PihlbGVt
ZW50KS5iaW5kaW5nc0luc3RhbmNlKCk7CiAgICAgaWYgKCFpbnN0YW5jZSB8fCAhaW5zdGFuY2Ut
PnJvb3RPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGluc3Rh
bmNlOwpAQCAtNzEsMjMgKzcxLDIzIEBAIEpTT2JqZWN0KiBwbHVnaW5TY3JpcHRPYmplY3QoRXhl
Y1N0YXRlKiBleGVjLCBKU0hUTUxFbGVtZW50KiBqc0hUTUxFbGVtZW50KQogICAgIGlmICghaXM8
SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIEhUTUxQbHVnSW5FbGVtZW50JiBwbHVnaW5FbGVtZW50ID0gZG93bmNhc3Q8SFRNTFBsdWdJ
bkVsZW1lbnQ+KGVsZW1lbnQpOworICAgIGF1dG8mIHBsdWdpbkVsZW1lbnQgPSBkb3duY2FzdDxI
VE1MUGx1Z0luRWxlbWVudD4oZWxlbWVudCk7CiAKICAgICAvLyBDaG9rZSBwb2ludCBmb3Igc2Ny
aXB0L3BsdWdpbiBpbnRlcmFjdGlvbjsgbm90aWZ5IERPTVRpbWVyIG9mIHRoZSBldmVudC4KICAg
ICBET01UaW1lcjo6c2NyaXB0RGlkSW50ZXJhY3RXaXRoUGx1Z2luKHBsdWdpbkVsZW1lbnQpOwog
CiAgICAgLy8gRmlyc3QsIHNlZSBpZiB0aGUgZWxlbWVudCBoYXMgYSBwbHVnLWluIHJlcGxhY2Vt
ZW50IHdpdGggYSBzY3JpcHQuCi0gICAgaWYgKEpTT2JqZWN0KiBzY3JpcHRPYmplY3QgPSBwbHVn
aW5FbGVtZW50LnNjcmlwdE9iamVjdEZvclBsdWdpblJlcGxhY2VtZW50KCkpCisgICAgaWYgKGF1
dG8qIHNjcmlwdE9iamVjdCA9IHBsdWdpbkVsZW1lbnQuc2NyaXB0T2JqZWN0Rm9yUGx1Z2luUmVw
bGFjZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIHNjcmlwdE9iamVjdDsKICAgICAKICAgICAvLyBO
ZXh0LCBzZWUgaWYgd2UgY2FuIGFzayB0aGUgcGx1Zy1pbiB2aWV3IGZvciBpdHMgc2NyaXB0IG9i
amVjdC4KLSAgICBpZiAoSlNPYmplY3QqIHNjcmlwdE9iamVjdCA9IHBsdWdpblNjcmlwdE9iamVj
dEZyb21QbHVnaW5WaWV3QmFzZShwbHVnaW5FbGVtZW50LCBqc0hUTUxFbGVtZW50LT5nbG9iYWxP
YmplY3QoKSkpCisgICAgaWYgKGF1dG8qIHNjcmlwdE9iamVjdCA9IHBsdWdpblNjcmlwdE9iamVj
dEZyb21QbHVnaW5WaWV3QmFzZShwbHVnaW5FbGVtZW50LCBqc0hUTUxFbGVtZW50LT5nbG9iYWxP
YmplY3QoKSkpCiAgICAgICAgIHJldHVybiBzY3JpcHRPYmplY3Q7CiAKICAgICAvLyBPdGhlcndp
c2UsIGZhbGwgYmFjayB0byBnZXR0aW5nIHRoZSBvYmplY3QgZnJvbSB0aGUgaW5zdGFuY2UuCiAK
ICAgICAvLyBUaGUgcGx1Z2luIGVsZW1lbnQgaG9sZHMgYW4gb3duaW5nIHJlZmVyZW5jZSwgc28g
d2UgZG9uJ3QgaGF2ZSB0by4KLSAgICBJbnN0YW5jZSogaW5zdGFuY2UgPSBwbHVnaW5FbGVtZW50
LmdldEluc3RhbmNlKCkuZ2V0KCk7CisgICAgYXV0byogaW5zdGFuY2UgPSBwbHVnaW5FbGVtZW50
LmJpbmRpbmdzSW5zdGFuY2UoKTsKICAgICBpZiAoIWluc3RhbmNlIHx8ICFpbnN0YW5jZS0+cm9v
dE9iamVjdCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3Rv
bS5jcHAKaW5kZXggNzg4YWQyNDQ0NjkyMGQwZmEyZWFlZWI3NDhkNjQ5YmJlMzY4YzQ3MS4uNGM1
MGNjZjhmMzA0NmVkMDA4MzY1MDg4Njc3ZmE0YTc4ZTdjZGVlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRD
dXN0b20uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzYsMzcgKzM2LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi0vLyBGSVhNRTogVGhlcmUgaXMgYSBkdXBsaWNhdGUgdmVyc2lv
biBvZiB0aGlzIGZ1bmN0aW9uIGluIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5j
cHAsCi0vLyBidXQgaXQgaXMgbm90IGV4YWN0bHkgdGhlIHNhbWUhIFdlIHNob3VsZCBtZXJnZSB0
aGVzZS4KLXN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgV2ViR0xHZXRJbmZvJiBpbmZvKQotewotICAgIHN3
aXRjaCAoaW5mby5nZXRUeXBlKCkpIHsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVCb29s
OgotICAgICAgICByZXR1cm4ganNCb29sZWFuKGluZm8uZ2V0Qm9vbCgpKTsKLSAgICBjYXNlIFdl
YkdMR2V0SW5mbzo6a1R5cGVCb29sQXJyYXk6IHsKLSAgICAgICAgTWFya2VkQXJndW1lbnRCdWZm
ZXIgbGlzdDsKLSAgICAgICAgZm9yIChhdXRvJiB2YWx1ZSA6IGluZm8uZ2V0Qm9vbEFycmF5KCkp
Ci0gICAgICAgICAgICBsaXN0LmFwcGVuZChqc0Jvb2xlYW4odmFsdWUpKTsKLSAgICAgICAgcmV0
dXJuIGNvbnN0cnVjdEFycmF5KHN0YXRlLCAwLCBnbG9iYWxPYmplY3QsIGxpc3QpOwotICAgIH0K
LSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVGbG9hdDoKLSAgICAgICAgcmV0dXJuIGpzTnVt
YmVyKGluZm8uZ2V0RmxvYXQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlSW50Ogot
ICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRJbnQoKSk7Ci0gICAgY2FzZSBXZWJHTEdl
dEluZm86OmtUeXBlTnVsbDoKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIGNhc2UgV2Vi
R0xHZXRJbmZvOjprVHlwZVN0cmluZzoKLSAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hl
KHN0YXRlLCBpbmZvLmdldFN0cmluZygpKTsKLSAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVV
bnNpZ25lZEludDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0VW5zaWduZWRJbnQo
KSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlSW50NjQ6Ci0gICAgICAgIHJldHVybiBq
c051bWJlcihpbmZvLmdldEludDY0KCkpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLX0KLQogdm9p
ZCBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQogewogICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCgmd3JhcHBlZCgp
KTsKQEAgLTEwNCw3ICs3Myw3IEBAIEpTVmFsdWUgSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRJbmRleGVkUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgSlNWYWx1ZSgpKTsKICAgICB1bnNpZ25lZCBpbmRleCA9IHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoJnN0YXRlKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0
KCksIHdyYXBwZWQoKS5nZXRJbmRleGVkUGFyYW1ldGVyKHBuYW1lLCBpbmRleCkpOworICAgIHJl
dHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRJbmRleGVkUGFy
YW1ldGVyKHBuYW1lLCBpbmRleCkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrUGFyYW1ldGVyKEV4ZWNTdGF0ZSYpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2VDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlQ3VzdG9tLmNwcAppbmRleCA4MjVkMjUwOTRkMmNjNjIyMDZiMDQ5OTZjMTBk
NTMxZTU0Mjk4MDkxLi41MzNiMGI2YjNjMDJmN2IxYWMxMWVlZjcwNmJjNGZiNjZmOTA1OTM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2VDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNywxNyArMjcsMTIgQEAKIAog
I2lmIEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUgIkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oIgotCi0jaW5jbHVkZSAiQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIKICNpbmNsdWRlICJFWFRC
bGVuZE1pbk1heC5oIgogI2luY2x1ZGUgIkVYVEZyYWdEZXB0aC5oIgogI2luY2x1ZGUgIkVYVFNo
YWRlclRleHR1cmVMT0QuaCIKICNpbmNsdWRlICJFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
aCIKICNpbmNsdWRlICJFWFRzUkdCLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2lu
Y2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5o
IgogI2luY2x1ZGUgIkpTQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIKICNpbmNsdWRlICJKU0VYVEJs
ZW5kTWluTWF4LmgiCiAjaW5jbHVkZSAiSlNFWFRGcmFnRGVwdGguaCIKQEAgLTczLDcgKzY4LDYg
QEAKICNpbmNsdWRlICJKU1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIKICNpbmNsdWRlICJKU1dl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKICNpbmNsdWRlICJKU1dlYktpdENTU01hdHJpeC5o
IgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiT0VTRWxlbWVudEluZGV4
VWludC5oIgogI2luY2x1ZGUgIk9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCIKICNpbmNsdWRlICJP
RVNUZXh0dXJlRmxvYXQuaCIKQEAgLTkxLDcgKzg1LDYgQEAKICNpbmNsdWRlICJXZWJHTERyYXdC
dWZmZXJzLmgiCiAjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKICNpbmNsdWRlICJXZWJHTEZy
YW1lYnVmZmVyLmgiCi0jaW5jbHVkZSAiV2ViR0xHZXRJbmZvLmgiCiAjaW5jbHVkZSAiV2ViR0xM
b3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKQEAgLTEwNSw3ICs5OCw2IEBACiAjaW5jbHVkZSA8d3Rm
L0Zhc3RNYWxsb2MuaD4KIAogI2lmIEVOQUJMRShWSURFTykKLSNpbmNsdWRlICJIVE1MVmlkZW9F
bGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MVmlkZW9FbGVtZW50LmgiCiAjZW5kaWYKIApAQCAt
MTE3LDcgKzEwOSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZT4mJiBvYmplY3QpCitKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+
JiYgb2JqZWN0KQogewogI2lmIEVOQUJMRShXRUJHTDIpCiAgICAgaWYgKGlzPFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ+KG9iamVjdCkpCkBAIC0xMzEsNjQgKzEyMyw3IEBAIEpTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBXZWJHTFJl
bmRlcmluZ0NvCiAgICAgcmV0dXJuIHdyYXAoc3RhdGUsIGdsb2JhbE9iamVjdCwgb2JqZWN0KTsK
IH0KICAgICAKLS8vIEZJWE1FOiBUaGVyZSBpcyBhIGR1cGxpY2F0ZSB2ZXJzaW9uIG9mIHRoaXMg
ZnVuY3Rpb24gaW4gSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCwKLS8vIGJ1dCBp
dCBpcyBub3QgZXhhY3RseSB0aGUgc2FtZSEgV2Ugc2hvdWxkIG1lcmdlIHRoZXNlLgotc3RhdGlj
IEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIGNvbnN0IFdlYkdMR2V0SW5mbyYgaW5mbykKLXsKLSAgICBzd2l0Y2ggKGluZm8uZ2V0
VHlwZSgpKSB7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlQm9vbDoKLSAgICAgICAgcmV0
dXJuIGpzQm9vbGVhbihpbmZvLmdldEJvb2woKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtU
eXBlQm9vbEFycmF5OiB7Ci0gICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGxpc3Q7Ci0gICAg
ICAgIGZvciAoYXV0byYgdmFsdWUgOiBpbmZvLmdldEJvb2xBcnJheSgpKQotICAgICAgICAgICAg
bGlzdC5hcHBlbmQoanNCb29sZWFuKHZhbHVlKSk7Ci0gICAgICAgIHJldHVybiBjb25zdHJ1Y3RB
cnJheShleGVjLCAwLCBnbG9iYWxPYmplY3QsIGxpc3QpOwotICAgIH0KLSAgICBjYXNlIFdlYkdM
R2V0SW5mbzo6a1R5cGVGbG9hdDoKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGluZm8uZ2V0Rmxv
YXQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlSW50OgotICAgICAgICByZXR1cm4g
anNOdW1iZXIoaW5mby5nZXRJbnQoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlTnVs
bDoKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlw
ZVN0cmluZzoKLSAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIGluZm8uZ2V0
U3RyaW5nKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVVuc2lnbmVkSW50OgotICAg
ICAgICByZXR1cm4ganNOdW1iZXIoaW5mby5nZXRVbnNpZ25lZEludCgpKTsKLSAgICBjYXNlIFdl
YkdMR2V0SW5mbzo6a1R5cGVXZWJHTEJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMQnVmZmVyKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJ
bmZvOjprVHlwZVdlYkdMRmxvYXRBcnJheToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xv
YmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMRmxvYXRBcnJheSgpKTsKLSAgICBjYXNlIFdlYkdMR2V0
SW5mbzo6a1R5cGVXZWJHTEZyYW1lYnVmZmVyOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xGcmFtZWJ1ZmZlcigpKTsKLSAgICBjYXNlIFdlYkdM
R2V0SW5mbzo6a1R5cGVXZWJHTEludEFycmF5OgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIGluZm8uZ2V0V2ViR0xJbnRBcnJheSgpKTsKLSAgICAgICAgLy8gRklYTUU6
IGltcGxlbWVudCBXZWJHTE9iamVjdEFycmF5Ci0gICAgICAgIC8vIGNhc2UgV2ViR0xHZXRJbmZv
OjprVHlwZVdlYkdMT2JqZWN0QXJyYXk6Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2Vi
R0xQcm9ncmFtOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8u
Z2V0V2ViR0xQcm9ncmFtKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMUmVu
ZGVyYnVmZmVyOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8u
Z2V0V2ViR0xSZW5kZXJidWZmZXIoKSk7Ci0gICAgY2FzZSBXZWJHTEdldEluZm86OmtUeXBlV2Vi
R0xUZXh0dXJlOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGluZm8u
Z2V0V2ViR0xUZXh0dXJlKCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVW5z
aWduZWRCeXRlQXJyYXk6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwg
aW5mby5nZXRXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KCkpOwotICAgIGNhc2UgV2ViR0xHZXRJbmZv
OjprVHlwZVdlYkdMVW5zaWduZWRJbnRBcnJheToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMVW5zaWduZWRJbnRBcnJheSgpKTsKLSNpZiBFTkFC
TEUoV0VCR0wyKQotICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVdlYkdMVmVydGV4QXJyYXlP
YmplY3Q6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW5mby5nZXRX
ZWJHTFZlcnRleEFycmF5T2JqZWN0KCkpOwotI2VuZGlmCi0gICAgY2FzZSBXZWJHTEdldEluZm86
OmtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzoKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBpbmZvLmdldFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKSk7Ci0g
ICAgZGVmYXVsdDoKLSAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7Ci0gICAgfQotfQotCi1lbnVtIE9iamVjdFR5cGUgeyBrQnVmZmVyLCBrUmVu
ZGVyYnVmZmVyLCBrVGV4dHVyZSwga1ZlcnRleEF0dHJpYiB9OwotCi1zdGF0aWMgSlNWYWx1ZSBn
ZXRPYmplY3RQYXJhbWV0ZXIoSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBvYmosIEV4ZWNT
dGF0ZSYgc3RhdGUsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSkKK3N0YXRpYyBKU1ZhbHVlIG9iamVj
dFBhcmFtZXRlcihKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIEV4ZWNTdGF0
ZSYgc3RhdGUsIFdlYkdMQW55IChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjoqZ2V0dGVyKShH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5Niw5
MCArMTMxLDY2IEBAIHN0YXRpYyBKU1ZhbHVlIGdldE9iamVjdFBhcmFtZXRlcihKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UqIG9iaiwgRXhlY1N0YXRlJiBzCiAgICAgaWYgKHN0YXRlLmFyZ3Vt
ZW50Q291bnQoKSAhPSAyKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBz
Y29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CiAgICAgCi0gICAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCA9IG9iai0+d3JhcHBlZCgpOwotICAg
IHVuc2lnbmVkIHRhcmdldCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0
YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHVu
c2lnbmVkIHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUp
OwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgV2ViR0xH
ZXRJbmZvIGluZm87Ci0gICAgc3dpdGNoIChvYmplY3RUeXBlKSB7Ci0gICAgY2FzZSBrQnVmZmVy
OgotICAgICAgICBpbmZvID0gY29udGV4dC5nZXRCdWZmZXJQYXJhbWV0ZXIodGFyZ2V0LCBwbmFt
ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Uga1JlbmRlcmJ1ZmZlcjoKLSAgICAgICAgaW5m
byA9IGNvbnRleHQuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKHRhcmdldCwgcG5hbWUpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIGtUZXh0dXJlOgotICAgICAgICBpbmZvID0gY29udGV4dC5n
ZXRUZXhQYXJhbWV0ZXIodGFyZ2V0LCBwbmFtZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
a1ZlcnRleEF0dHJpYjoKLSAgICAgICAgLy8gdGFyZ2V0ID0+IGluZGV4Ci0gICAgICAgIGluZm8g
PSBjb250ZXh0LmdldFZlcnRleEF0dHJpYih0YXJnZXQsIHBuYW1lKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgfQotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgb2JqLT5nbG9iYWxPYmplY3QoKSwgaW5m
byk7CisgICAgYXV0byB0YXJnZXQgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMy
KCZzdGF0ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICBhdXRv
IHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUs
ICpjb250ZXh0Lmdsb2JhbE9iamVjdCgpLCAoY29udGV4dC53cmFwcGVkKCkuKmdldHRlcikodGFy
Z2V0LCBwbmFtZSkpOwogfQogCi1lbnVtIFdoaWNoUHJvZ3JhbUNhbGwgewotICAgIGtQcm9ncmFt
UGFyYW1ldGVyLCBrVW5pZm9ybQotfTsKLQotc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUq
IGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdlYkdMRXh0ZW5zaW9uKiBl
eHRlbnNpb24pCitzdGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTRE9NR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFdlYkdMRXh0ZW5zaW9uKiBleHRlbnNpb24pCiB7CiAg
ICAgaWYgKCFleHRlbnNpb24pCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKICAgICBzd2l0Y2gg
KGV4dGVuc2lvbi0+Z2V0TmFtZSgpKSB7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xM
b3NlQ29udGV4dE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwg
c3RhdGljX2Nhc3Q8V2ViR0xMb3NlQ29udGV4dCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1
cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMTG9zZUNvbnRl
eHQqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRTaGFkZXJUZXh0
dXJlTE9ETmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxFWFRTaGFkZXJUZXh0dXJlTE9EKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUU2hhZGVyVGV4dHVy
ZUxPRCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkVYVFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpY05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9i
amVjdCwgc3RhdGljX2Nhc3Q8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9u
KSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBX
ZWJHTEV4dGVuc2lvbjo6RVhUc1JHQk5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RVhUc1JHQio+KGV4dGVuc2lvbikpOworICAgICAgICBy
ZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVHNSR0IqPihl
eHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpFWFRGcmFnRGVwdGhOYW1lOgot
ICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVEZy
YWdEZXB0aCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9i
YWxPYmplY3QsIHN0YXRpY19jYXN0PEVYVEZyYWdEZXB0aCo+KGV4dGVuc2lvbikpOwogICAgIGNh
c2UgV2ViR0xFeHRlbnNpb246OkVYVEJsZW5kTWluTWF4TmFtZToKLSAgICAgICAgcmV0dXJuIHRv
SlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxFWFRCbGVuZE1pbk1heCo+KGV4dGVu
c2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PEVYVEJsZW5kTWluTWF4Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVu
c2lvbjo6T0VTU3RhbmRhcmREZXJpdmF0aXZlc05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTU3RhbmRhcmREZXJpdmF0aXZlcyo+KGV4
dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0
YXRpY19jYXN0PE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMqPihleHRlbnNpb24pKTsKICAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpPRVNUZXh0dXJlRmxvYXROYW1lOgotICAgICAgICByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVGbG9hdCo+KGV4dGVu
c2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PE9FU1RleHR1cmVGbG9hdCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246Ok9FU1RleHR1cmVGbG9hdExpbmVhck5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0TGluZWFyKj4oZXh0
ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3Rh
dGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0TGluZWFyKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBX
ZWJHTEV4dGVuc2lvbjo6T0VTVGV4dHVyZUhhbGZGbG9hdE5hbWU6Ci0gICAgICAgIHJldHVybiB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUhhbGZGbG9hdCo+
KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3Qs
IHN0YXRpY19jYXN0PE9FU1RleHR1cmVIYWxmRmxvYXQqPihleHRlbnNpb24pKTsKICAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyTmFtZToKLSAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlSGFs
ZkZsb2F0TGluZWFyKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwg
Jmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcio+KGV4
dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1ZlcnRleEFycmF5T2JqZWN0
TmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9K
Uygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0
Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTRWxlbWVudEluZGV4
VWludE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGlj
X2Nhc3Q8T0VTRWxlbWVudEluZGV4VWludCo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4g
dG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU0VsZW1lbnRJbmRleFVp
bnQqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxXZWJHTERlYnVnUmVuZGVyZXJJbmZvKj4oZXh0ZW5zaW9uKSk7CisgICAgICAg
IHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Oldl
YkdMRGVidWdTaGFkZXJzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlYnVnU2hhZGVycyo+KGV4dGVuc2lvbikpOworICAgICAg
ICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVi
dWdTaGFkZXJzKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xD
b21wcmVzc2VkVGV4dHVyZUFUQ05hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQyo+KGV4dGVuc2lv
bikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19j
YXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdl
YkdMRXh0ZW5zaW9uOjpXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVENOYW1lOgotICAgICAgICBy
ZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQyo+KGV4dGVuc2lvbikpOworICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUs
ICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQyo+
KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQyo+KGV4dGVuc2lvbikpOworICAg
ICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVu
c2lvbjo6V2ViR0xEZXB0aFRleHR1cmVOYW1lOgotICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVwdGhUZXh0dXJlKj4oZXh0ZW5zaW9uKSk7
CisgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8
V2ViR0xEZXB0aFRleHR1cmUqPihleHRlbnNpb24pKTsKICAgICBjYXNlIFdlYkdMRXh0ZW5zaW9u
OjpXZWJHTERyYXdCdWZmZXJzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERyYXdCdWZmZXJzKj4oZXh0ZW5zaW9uKSk7CisgICAg
ICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xE
cmF3QnVmZmVycyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OkFOR0xF
SW5zdGFuY2VkQXJyYXlzTmFtZToKLSAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxBTkdMRUluc3RhbmNlZEFycmF5cyo+KGV4dGVuc2lvbikpOworICAg
ICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEFOR0xF
SW5zdGFuY2VkQXJyYXlzKj4oZXh0ZW5zaW9uKSk7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIHJldHVybiBqc051bGwoKTsKIH0KIAotYm9vbCBKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK2Jvb2wg
SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEhhbmRsZTxVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
IHsKICAgICBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGpzV2ViR0xSZW5kZXJpbmdDb250
ZXh0ID0ganNDYXN0PEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+KGhhbmRsZS5zbG90KCkt
PmFzQ2VsbCgpKTsKICAgICB2b2lkKiByb290ID0gV2ViQ29yZTo6cm9vdChqc1dlYkdMUmVuZGVy
aW5nQ29udGV4dC0+d3JhcHBlZCgpLmNhbnZhcygpKTsKQEAgLTMwNiw5ICsyMTcsOSBAQCBKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QXR0YWNoZWRTaGFkZXJzKEV4ZWNT
dGF0ZSYgc3RhdGUpCiAgICAgVmVjdG9yPFJlZlB0cjxXZWJHTFNoYWRlcj4+IHNoYWRlcnM7CiAg
ICAgaWYgKCFjb250ZXh0LmdldEF0dGFjaGVkU2hhZGVycyhwcm9ncmFtLCBzaGFkZXJzKSkKICAg
ICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIEpTQzo6TWFya2VkQXJndW1lbnRCdWZmZXIgbGlz
dDsKLSAgICBmb3IgKHNpemVfdCBpaSA9IDA7IGlpIDwgc2hhZGVycy5zaXplKCk7ICsraWkpCi0g
ICAgICAgIGxpc3QuYXBwZW5kKHRvSlMoJnN0YXRlLCBnbG9iYWxPYmplY3QoKSwgc2hhZGVyc1tp
aV0uZ2V0KCkpKTsKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBsaXN0OworICAgIGZvciAoYXV0
byYgc2hhZGVyIDogc2hhZGVycykKKyAgICAgICAgbGlzdC5hcHBlbmQodG9KUygmc3RhdGUsIGds
b2JhbE9iamVjdCgpLCBzaGFkZXIuZ2V0KCkpKTsKICAgICByZXR1cm4gY29uc3RydWN0QXJyYXko
JnN0YXRlLCAwLCBnbG9iYWxPYmplY3QoKSwgbGlzdCk7CiB9CiAKQEAgLTMyMCwxNCArMjMxLDE0
IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRFeHRlbnNpb24oRXhl
Y1N0YXRlJiBzdGF0ZSkKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAg
ICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKCZzdGF0ZSkpOwogICAgIAotICAgIFN0cmluZyBuYW1lID0gc3RhdGUudW5j
aGVja2VkQXJndW1lbnQoMCkudG9XVEZTdHJpbmcoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgZ2xvYmFs
T2JqZWN0KCksIHdyYXBwZWQoKS5nZXRFeHRlbnNpb24obmFtZSkpOworICAgIGF1dG8gbmFtZSA9
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvV1RGU3RyaW5nKCZzdGF0ZSk7CisgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgKmds
b2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0RXh0ZW5zaW9uKG5hbWUpKTsKIH0KIAogSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFtZXRlcihFeGVjU3Rh
dGUmIHN0YXRlKQogewotICAgIHJldHVybiBnZXRPYmplY3RQYXJhbWV0ZXIodGhpcywgc3RhdGUs
IGtCdWZmZXIpOworICAgIHJldHVybiBvYmplY3RQYXJhbWV0ZXIoKnRoaXMsIHN0YXRlLCAmV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QnVmZmVyUGFyYW1ldGVyKTsKIH0KIAogSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBh
cmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQpAQCAtMzM4LDEzICsyNDksMTMgQEAgSlNWYWx1ZSBK
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFt
ZXRlcihFeGVjU3RhdGUKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDMpCiAgICAg
ICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICB1bnNpZ25lZCB0YXJnZXQgPSBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgwKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICB1bnNpZ25lZCBhdHRhY2htZW50ID0gc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMigmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgdW5zaWduZWQgcG5hbWUgPSBzdGF0ZS51
bmNoZWNrZWRBcmd1bWVudCgyKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9i
amVjdCgpLCB3cmFwcGVkKCkuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKHRhcmdl
dCwgYXR0YWNobWVudCwgcG5hbWUpKTsKKyAgICBhdXRvIHRhcmdldCA9IHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOworICAgIGF1dG8gYXR0YWNobWVudCA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50
KDEpLnRvSW50MzIoJnN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OworICAgIGF1dG8gcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKS50b0ludDMyKCZz
dGF0ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4g
dG9KUyhzdGF0ZSwgKmdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0RnJhbWVidWZmZXJBdHRh
Y2htZW50UGFyYW1ldGVyKHRhcmdldCwgYXR0YWNobWVudCwgcG5hbWUpKTsKIH0KIAogSlNWYWx1
ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFBhcmFtZXRlcihFeGVjU3RhdGUmIHN0
YXRlKQpAQCAtMzU1LDkgKzI2Niw5IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICBpZiAoc3RhdGUuYXJndW1l
bnRDb3VudCgpICE9IDEpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNj
b3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICB1
bnNpZ25lZCBwbmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRl
KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIHJldHVy
biB0b0pTKCZzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRQYXJhbWV0ZXIocG5h
bWUpKTsKKyAgICBhdXRvIHBuYW1lID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkudG9JbnQz
Migmc3RhdGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgcmV0
dXJuIHRvSlMoc3RhdGUsICpnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLmdldFBhcmFtZXRlcihw
bmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UHJv
Z3JhbVBhcmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQpAQCAtMzY4LDE3ICsyNzksMTcgQEAgSlNW
YWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJhbWV0ZXIoRXhl
Y1N0YXRlJiBzdGF0ZSkKICAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDIpCiAgICAg
ICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcigmc3RhdGUpKTsKICAgICAKLSAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0g
PSBKU1dlYkdMUHJvZ3JhbTo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsK
KyAgICBhdXRvKiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvV3JhcHBlZChzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFwcm9ncmFtICYmICFzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgdW5zaWduZWQgcG5hbWUgPSBzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgSlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgp
LCB3cmFwcGVkKCkuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBwbmFtZSkpOworICAgIGF1
dG8gcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Cisg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0
ZSwgKmdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFt
LCBwbmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgcmV0dXJuIGdl
dE9iamVjdFBhcmFtZXRlcih0aGlzLCBzdGF0ZSwga1JlbmRlcmJ1ZmZlcik7CisgICAgcmV0dXJu
IG9iamVjdFBhcmFtZXRlcigqdGhpcywgc3RhdGUsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0U2hhZGVyUGFyYW1ldGVyKEV4ZWNTdGF0ZSYgc3RhdGUpCkBAIC0z
OTMsOCArMzA0LDggQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFNo
YWRlclBhcmFtZXRlcihFeGVjU3RhdGUmIHN0YXRlKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoJnN0YXRlLCBzY29wZSk7CiAgICAgV2ViR0xTaGFkZXIqIHNoYWRlciA9IEpTV2ViR0xT
aGFkZXI6OnRvV3JhcHBlZChzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgdW5zaWdu
ZWQgcG5hbWUgPSBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKCZzdGF0ZSk7Ci0g
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gdG9K
Uygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVkKCkuZ2V0U2hhZGVyUGFyYW1ldGVyKHNo
YWRlciwgcG5hbWUpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAg
IHJldHVybiB0b0pTKHN0YXRlLCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRTaGFkZXJQ
YXJhbWV0ZXIoc2hhZGVyLCBwbmFtZSkpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucyhFeGVjU3RhdGUmIHN0YXRlKQpAQCAt
NDEwLDcgKzMyMSw3IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRT
dXBwb3J0ZWRFeHRlbnNpb25zKEV4ZWNTdGF0ZSYgc3RhdGUpCiAKIEpTVmFsdWUgSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsK
LSAgICByZXR1cm4gZ2V0T2JqZWN0UGFyYW1ldGVyKHRoaXMsIHN0YXRlLCBrVGV4dHVyZSk7Cisg
ICAgcmV0dXJuIG9iamVjdFBhcmFtZXRlcigqdGhpcywgc3RhdGUsICZXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIpOwogfQogCiBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybShFeGVjU3RhdGUmIHN0YXRlKQpAQCAtNDI3LDM2ICsz
MzgsMzUgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0o
RXhlY1N0YXRlJiBzdGF0ZSkKICAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBK
U1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MSkpOwogICAgIGlmICghbG9jYXRpb24gJiYgIXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLmlz
VW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUs
IHNjb3BlKTsKLSAgICByZXR1cm4gdG9KUygmc3RhdGUsIGdsb2JhbE9iamVjdCgpLCB3cmFwcGVk
KCkuZ2V0VW5pZm9ybShwcm9ncmFtLCBsb2NhdGlvbikpOworICAgIHJldHVybiB0b0pTKHN0YXRl
LCAqZ2xvYmFsT2JqZWN0KCksIHdyYXBwZWQoKS5nZXRVbmlmb3JtKHByb2dyYW0sIGxvY2F0aW9u
KSk7CiB9CiAKIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhB
dHRyaWIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICByZXR1cm4gZ2V0T2JqZWN0UGFyYW1ldGVy
KHRoaXMsIHN0YXRlLCBrVmVydGV4QXR0cmliKTsKKyAgICByZXR1cm4gb2JqZWN0UGFyYW1ldGVy
KCp0aGlzLCBzdGF0ZSwgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0dHJp
Yik7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eT4KLWJv
b2wgdG9WZWN0b3IoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFZl
Y3RvcjxULCBpbmxpbmVDYXBhY2l0eT4mIHZlY3RvcikKK3RlbXBsYXRlPHR5cGVuYW1lIFZlY3Rv
clR5cGU+IGJvb2wgdG9OdW1iZXJWZWN0b3IoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1
ZSwgVmVjdG9yVHlwZSYgdmVjdG9yKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKCF2YWx1ZS5p
c09iamVjdCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgSlNDOjpKU09iamVj
dCogb2JqZWN0ID0gYXNPYmplY3QodmFsdWUpOwotICAgIGludDMyX3QgbGVuZ3RoID0gb2JqZWN0
LT5nZXQoJnN0YXRlLCBzdGF0ZS52bSgpLnByb3BlcnR5TmFtZXMtPmxlbmd0aCkudG9JbnQzMigm
c3RhdGUpOwotICAgIAorCisgICAgYXV0byYgb2JqZWN0ID0gKmFzT2JqZWN0KHZhbHVlKTsKKyAg
ICBpbnQzMl90IGxlbmd0aCA9IG9iamVjdC5nZXQoJnN0YXRlLCBzdGF0ZS52bSgpLnByb3BlcnR5
TmFtZXMtPmxlbmd0aCkudG9JbnQzMigmc3RhdGUpOworCiAgICAgaWYgKCF2ZWN0b3IudHJ5UmVz
ZXJ2ZUNhcGFjaXR5KGxlbmd0aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB2ZWN0b3Iu
cmVzaXplKGxlbmd0aCk7Ci0gICAgCisKICAgICBmb3IgKGludDMyX3QgaSA9IDA7IGkgPCBsZW5n
dGg7ICsraSkgewotICAgICAgICBKU0M6OkpTVmFsdWUgdiA9IG9iamVjdC0+Z2V0KCZzdGF0ZSwg
aSk7CisgICAgICAgIGF1dG8gdmFsdWUgPSBvYmplY3QuZ2V0KCZzdGF0ZSwgaSk7CisgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICAgICAgdmVjdG9yLnVuY2hl
Y2tlZEFwcGVuZCh2YWx1ZS50b051bWJlcigmc3RhdGUpKTsKICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZmFsc2UpOwotICAgICAgICB2ZWN0b3JbaV0gPSBzdGF0aWNfY2FzdDxU
Pih2LnRvTnVtYmVyKCZzdGF0ZSkpOwogICAgIH0KLSAgICAKKwogICAgIHJldHVybiB0cnVlOwog
fQogCkBAIC00NjksNyArMzc5LDcgQEAgZW51bSBEYXRhRnVuY3Rpb25NYXRyaXhUb0NhbGwgewog
ICAgIGZfdW5pZm9ybU1hdHJpeDJmdiwgZl91bmlmb3JtTWF0cml4M2Z2LCBmX3VuaWZvcm1NYXRy
aXg0ZnYKIH07CiAKLXN0YXRpYyBib29sIGZ1bmN0aW9uRm9yVW5pZm9ybShEYXRhRnVuY3Rpb25U
b0NhbGwgZikKK3N0YXRpYyBpbmxpbmUgYm9vbCBmdW5jdGlvbkZvclVuaWZvcm0oRGF0YUZ1bmN0
aW9uVG9DYWxsIGYpCiB7CiAgICAgc3dpdGNoIChmKSB7CiAgICAgY2FzZSBmX3VuaWZvcm0xdjoK
QEAgLTQ3NywxMiArMzg3LDEyIEBAIHN0YXRpYyBib29sIGZ1bmN0aW9uRm9yVW5pZm9ybShEYXRh
RnVuY3Rpb25Ub0NhbGwgZikKICAgICBjYXNlIGZfdW5pZm9ybTN2OgogICAgIGNhc2UgZl91bmlm
b3JtNHY6CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGRlZmF1bHQ6IGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwog
fQogCi1zdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxs
IGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29u
dGV4dCkKK3N0YXRpYyBKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYs
IEV4ZWNTdGF0ZSYgc3RhdGUsIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiB7
CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC00OTAsMjIgKzQwMCwxOSBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRh
dGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwg
VwogICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgIT0gMikKICAgICAgICAgcmV0dXJuIHRo
cm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KCZzdGF0ZSkpOwogICAgIAotICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IDA7
Ci0gICAgbG9uZyBpbmRleCA9IC0xOwotICAgIAorICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBs
b2NhdGlvbiA9IG51bGxwdHI7CisgICAgR0x1aW50IGluZGV4ID0gLTE7CisKICAgICBpZiAoZnVu
Y3Rpb25Gb3JVbmlmb3JtKGYpKSB7CiAgICAgICAgIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1M
b2NhdGlvbjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICAgICAg
aWYgKCFsb2NhdGlvbiAmJiAhc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRP
ck51bGwoKSkKICAgICAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3Bl
KTsKLSAgICB9IGVsc2UKKyAgICB9IGVsc2UgewogICAgICAgICBpbmRleCA9IHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDApLnRvSW50MzIoJnN0YXRlKTsKLSAgICAKLSAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIAotICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+
IHdlYkdMQXJyYXkgPSB0b1Vuc2hhcmVkRmxvYXQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAg
IAotICAgIGlmICh3ZWJHTEFycmF5KSB7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisgICAgfQorCisgICAgaWYgKGF1dG8gd2ViR0xBcnJheSA9IHRvVW5zaGFyZWRG
bG9hdDMyQXJyYXkoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpKSB7CiAgICAgICAgIHN3aXRj
aCAoZikgewogICAgICAgICBjYXNlIGZfdW5pZm9ybTF2OgogICAgICAgICAgICAgY29udGV4dC51
bmlmb3JtMWZ2KGxvY2F0aW9uLCAqd2ViR0xBcnJheSk7CkBAIC01MzIsMTQgKzQzOSwxMyBAQCBz
dGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpT
Qzo6RXhlY1N0YXRlJiBzdGF0ZSwgVwogICAgICAgICAgICAgY29udGV4dC52ZXJ0ZXhBdHRyaWI0
ZnYoaW5kZXgsICp3ZWJHTEFycmF5KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0g
ICAgICAgIAogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgCisKICAg
ICBWZWN0b3I8ZmxvYXQsIDY0PiBhcnJheTsKLSAgICBpZiAoIXRvVmVjdG9yKHN0YXRlLCBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgxKSwgYXJyYXkpKQorICAgIGlmICghdG9OdW1iZXJWZWN0b3Io
c3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLCBhcnJheSkpCiAgICAgICAgIHJldHVy
biB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICAKKwogICAgIHN3aXRjaCAoZikg
ewogICAgIGNhc2UgZl91bmlmb3JtMXY6CiAgICAgICAgIGNvbnRleHQudW5pZm9ybTFmdihsb2Nh
dGlvbiwgYXJyYXkuZGF0YSgpLCBhcnJheS5zaXplKCkpOwpAQCAtNTY2LDI1ICs0NzIsMjIgQEAg
c3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25mKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBK
U0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAgICAgICAgY29udGV4dC52ZXJ0ZXhBdHRyaWI0ZnYo
aW5kZXgsIGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQotICAgIAogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgSlNDOjpKU1Zh
bHVlIGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlJiBz
dGF0ZSwgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCkKK3N0YXRpYyBKU1ZhbHVl
IGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEV4ZWNTdGF0ZSYgc3RhdGUsIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUu
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBp
ZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpICE9IDIpCiAgICAgICAgIHJldHVybiB0aHJvd0V4Y2Vw
dGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUp
KTsKLSAgICAKLSAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5p
Zm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOworCisg
ICAgYXV0byogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghbG9jYXRpb24gJiYgIXN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0
aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICAKLSAgICBSZWZQdHI8SW50MzJBcnJh
eT4gd2ViR0xBcnJheSA9IHRvVW5zaGFyZWRJbnQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpKTsKLSAgICAKLSAgICBpZiAod2ViR0xBcnJheSkgeworCisgICAgaWYgKGF1dG8gd2Vi
R0xBcnJheSA9IHRvVW5zaGFyZWRJbnQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEp
KSkgewogICAgICAgICBzd2l0Y2ggKGYpIHsKICAgICAgICAgY2FzZSBmX3VuaWZvcm0xdjoKICAg
ICAgICAgICAgIGNvbnRleHQudW5pZm9ybTFpdihsb2NhdGlvbiwgKndlYkdMQXJyYXkpOwpAQCAt
NjAxLDE1ICs1MDQsMTMgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25pKERhdGFG
dW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIFcKICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgCi0gICAgCisKICAgICBWZWN0b3I8aW50LCA2
ND4gYXJyYXk7Ci0gICAgaWYgKCF0b1ZlY3RvcihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMSksIGFycmF5KSkKKyAgICBpZiAoIXRvTnVtYmVyVmVjdG9yKHN0YXRlLCBzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgxKSwgYXJyYXkpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3Io
JnN0YXRlLCBzY29wZSk7Ci0gICAgCisKICAgICBzd2l0Y2ggKGYpIHsKICAgICBjYXNlIGZfdW5p
Zm9ybTF2OgogICAgICAgICBjb250ZXh0LnVuaWZvcm0xaXYobG9jYXRpb24sIGFycmF5LmRhdGEo
KSwgYXJyYXkuc2l6ZSgpKTsKQEAgLTYyNiwyOCArNTI3LDI1IEBAIHN0YXRpYyBKU0M6OkpTVmFs
dWUgZGF0YUZ1bmN0aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0
YXRlLCBXCiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIAogICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlv
bk1hdHJpeChEYXRhRnVuY3Rpb25NYXRyaXhUb0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUmIHN0YXRl
LCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQorc3RhdGljIEpTVmFsdWUgZGF0
YUZ1bmN0aW9uTWF0cml4KERhdGFGdW5jdGlvbk1hdHJpeFRvQ2FsbCBmLCBFeGVjU3RhdGUmIHN0
YXRlLCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQogewogICAgIFZNJiB2bSA9
IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
CiAgICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSAhPSAzKQogICAgICAgICByZXR1cm4gdGhy
b3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
JnN0YXRlKSk7Ci0gICAgCi0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gSlNX
ZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFwcGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDAp
KTsKKworICAgIGF1dG8qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFw
cGVkKHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIWxvY2F0aW9uICYmICFz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgCisKICAgICBib29sIHRy
YW5zcG9zZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvQm9vbGVhbigmc3RhdGUpOwot
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgCi0gICAgUmVm
UHRyPEZsb2F0MzJBcnJheT4gd2ViR0xBcnJheSA9IHRvVW5zaGFyZWRGbG9hdDMyQXJyYXkoc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoMikpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHsgfSk7CiAKLSAgICBpZiAod2ViR0xBcnJheSkgeworICAgIGlmIChhdXRvIHdlYkdMQXJyYXkg
PSB0b1Vuc2hhcmVkRmxvYXQzMkFycmF5KHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKSkgewog
ICAgICAgICBzd2l0Y2ggKGYpIHsKICAgICAgICAgY2FzZSBmX3VuaWZvcm1NYXRyaXgyZnY6CiAg
ICAgICAgICAgICBjb250ZXh0LnVuaWZvcm1NYXRyaXgyZnYobG9jYXRpb24sIHRyYW5zcG9zZSwg
KndlYkdMQXJyYXkpOwpAQCAtNjU5LDE0ICs1NTcsMTMgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBk
YXRhRnVuY3Rpb25NYXRyaXgoRGF0YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYsIEpTQzo6RXhlY1N0
YXQKICAgICAgICAgICAgIGNvbnRleHQudW5pZm9ybU1hdHJpeDRmdihsb2NhdGlvbiwgdHJhbnNw
b3NlLCAqd2ViR0xBcnJheSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotCiAgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KLSAgICAKKwogICAgIFZlY3RvcjxmbG9h
dCwgNjQ+IGFycmF5OwotICAgIGlmICghdG9WZWN0b3Ioc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDIpLCBhcnJheSkpCisgICAgaWYgKCF0b051bWJlclZlY3RvcihzdGF0ZSwgc3RhdGUu
dW5jaGVja2VkQXJndW1lbnQoMiksIGFycmF5KSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVy
cm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgIAorCiAgICAgc3dpdGNoIChmKSB7CiAgICAgY2FzZSBm
X3VuaWZvcm1NYXRyaXgyZnY6CiAgICAgICAgIGNvbnRleHQudW5pZm9ybU1hdHJpeDJmdihsb2Nh
dGlvbiwgdHJhbnNwb3NlLCBhcnJheS5kYXRhKCksIGFycmF5LnNpemUoKSk7CkBAIC02NzgsODEg
KzU3NSw4MCBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbk1hdHJpeChEYXRhRnVu
Y3Rpb25NYXRyaXhUb0NhbGwgZiwgSlNDOjpFeGVjU3RhdAogICAgICAgICBjb250ZXh0LnVuaWZv
cm1NYXRyaXg0ZnYobG9jYXRpb24sIHRyYW5zcG9zZSwgYXJyYXkuZGF0YSgpLCBhcnJheS5zaXpl
KCkpOwogICAgICAgICBicmVhazsKICAgICB9Ci0KICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
IH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFm
dihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6dW5pZm9ybTFmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVu
Y3Rpb25mKGZfdW5pZm9ybTF2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFpdihKU0M6OkV4ZWNTdGF0ZSYg
c3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTFpdihF
eGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5pZm9ybTF2
LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dW5pZm9ybTJmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTJmdihFeGVjU3RhdGUmIHN0YXRlKQog
ewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdW5pZm9ybTJ2LCBzdGF0ZSwgd3JhcHBlZCgp
KTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9y
bTJpdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6dW5pZm9ybTJpdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRh
RnVuY3Rpb25pKGZfdW5pZm9ybTJ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTNmdihKU0M6OkV4ZWNTdGF0
ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTNm
dihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25mKGZfdW5pZm9y
bTN2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6dW5pZm9ybTNpdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTNpdihFeGVjU3RhdGUmIHN0YXRl
KQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5pZm9ybTN2LCBzdGF0ZSwgd3JhcHBl
ZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5p
Zm9ybTRmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dW5pZm9ybTRmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBk
YXRhRnVuY3Rpb25mKGZfdW5pZm9ybTR2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybTRpdihKU0M6OkV4ZWNT
dGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9y
bTRpdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25pKGZfdW5p
Zm9ybTR2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDJmdihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUp
CitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDJmdihF
eGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25NYXRyaXgoZl91bmlm
b3JtTWF0cml4MmZ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDNmdihKU0M6OkV4ZWNTdGF0ZSYg
c3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJp
eDNmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25NYXRyaXgo
Zl91bmlmb3JtTWF0cml4M2Z2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDRmdihKU0M6OkV4ZWNT
dGF0ZSYgc3RhdGUpCitKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5pZm9y
bU1hdHJpeDRmdihFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBkYXRhRnVuY3Rpb25N
YXRyaXgoZl91bmlmb3JtTWF0cml4NGZ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpK
U1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMWZ2KEpTQzo6
RXhlY1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2
ZXJ0ZXhBdHRyaWIxZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0
aW9uZihmX3ZlcnRleEF0dHJpYjF2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1Zh
bHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliMmZ2KEpTQzo6RXhl
Y1N0YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0
ZXhBdHRyaWIyZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9u
ZihmX3ZlcnRleEF0dHJpYjJ2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliM2Z2KEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhB
dHRyaWIzZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihm
X3ZlcnRleEF0dHJpYjN2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KIAotSlNDOjpKU1ZhbHVlIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliNGZ2KEpTQzo6RXhlY1N0YXRl
JiBzdGF0ZSkKK0pTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRy
aWI0ZnYoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICByZXR1cm4gZGF0YUZ1bmN0aW9uZihmX3Zl
cnRleEF0dHJpYjR2LCBzdGF0ZSwgd3JhcHBlZCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IDlmYTI5NDA3OGJiYWNh
M2RjMjc2MTA3MGE0OGIyOGI1YjcyY2M2NGQuLmUxMmEyNDBkN2U2ODdiOWNhNjk2NDBkODJkNmM0
MzRmZTc4ZDZhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
TW9kdWxlTG9hZGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0xMzUsNiArMTM1LDEwIEBAIEpTQzo6SlNJbnRlcm5hbFBy
b21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBq
c0dsb2JhCiAKIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0
Y2goSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPYmplY3QsIEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlLCBK
U0M6OkpTVmFsdWUgaW5pdGlhdG9yKQogeworICAgIC8vIEZJWE1FOiBXaGF0IGd1YXJhbnRlZXMg
dGhlc2UgYXJlIHRydWU/IFdoeSBkb24ndCB3ZSBuZWVkIHRvIGNoZWNrPworICAgIEFTU0VSVChK
U0M6OmpzRHluYW1pY0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKSk7CisgICAgQVNTRVJUKGlz
U2NyaXB0RWxlbWVudChKU0M6OmpzRHluYW1pY0Nhc3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKS0+
d3JhcHBlZCgpKSk7CisKICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqSlNDOjpqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihqc0dsb2JhbE9iamVjdCk7CiAgICAgYXV0byYganNQcm9taXNlID0g
KkpTQzo6SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsICZnbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gZGVmZXJyZWQgPSBEZWZlcnJlZFByb21pc2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIGpzUHJvbWlzZSk7CkBAIC0xNTYsMTcgKzE2MCwxMiBAQCBKU0M6OkpTSW50ZXJuYWxQ
cm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpz
R2xvYmFsTwogICAgICAgICByZXR1cm4ganNQcm9taXNlLnByb21pc2UoKTsKICAgICB9CiAKLSAg
ICBBU1NFUlRfV0lUSF9NRVNTQUdFKEpTQzo6anNEeW5hbWljQ2FzdDxKU0VsZW1lbnQqPihpbml0
aWF0b3IpLCAiSW5pdGlhdG9yIHNob3VsZCBiZSBhbiBKU0VsZW1lbnQiKTsKLSAgICBhdXRvKiBz
Y3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmSlNDOjpqc0Nhc3Q8SlNF
bGVtZW50Kj4oaW5pdGlhdG9yKS0+d3JhcHBlZCgpKTsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KHNjcmlwdEVsZW1lbnQsICJJbml0aWF0b3Igc2hvdWxkIGJlIFNjcmlwdEVsZW1lbnQuIik7Ci0K
ICAgICBpZiAoYXV0byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgYXV0
byBsb2FkZXIgPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJy
ZWQuZ2V0KCkpOwogICAgICAgICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOwotICAg
ICAgICBpZiAoIWxvYWRlci0+bG9hZCgqc2NyaXB0RWxlbWVudCwgY29tcGxldGVkVVJMKSkgewor
ICAgICAgICBpZiAoIWxvYWRlci0+bG9hZChkb3duY2FzdFNjcmlwdEVsZW1lbnQoSlNDOjpqc0Nh
c3Q8SlNFbGVtZW50Kj4oaW5pdGlhdG9yKS0+d3JhcHBlZCgpKSwgY29tcGxldGVkVVJMKSkgewog
ICAgICAgICAgICAgbG9hZGVyLT5jbGVhckNsaWVudCgpOwogICAgICAgICAgICAgbV9sb2FkZXJz
LnJlbW92ZShXVEZNb3ZlKGxvYWRlcikpOwotCiAgICAgICAgICAgICBkZWZlcnJlZC0+cmVqZWN0
KGZyYW1lLT5zY3JpcHQoKS5tb2R1bGVMb2FkZXJBbHJlYWR5UmVwb3J0ZWRFcnJvclN5bWJvbCgp
KTsKICAgICAgICAgICAgIHJldHVybiBqc1Byb21pc2UucHJvbWlzZSgpOwogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDRjNDNiZGQxZDdlNDgyNzYzOWVhYTNmNDU3YTg1NGE1NzI1
NmUwYTAuLjk3MmJlYjFlZmNiMmMzNzgyOTIwNjdlZTc2ZDY5YjIxZTBjODg2NWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC0zLDcgKzMsNyBAQAogICogICAgICAgICAgIChDKSAxOTk5IEFudHRp
IEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERpcmsg
TXVlbGxlciAobXVlbGxlckBrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQ
cm9za3VyeWFrb3YgKGFwQHdlYmtpdC5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCwg
MjAxMi0yMDEzLCAyMDE1LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC02
Niw5ICs2Niw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRXhlY1N0YXRlOwotI2lmIEVO
QUJMRShXRUJfUkVQTEFZKQogY2xhc3MgSW5wdXRDdXJzb3I7Ci0jZW5kaWYKIH0KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtOTksOCArOTcsOCBAQCBjbGFzcyBEb2N1bWVudFBhcnNlcjsKIGNs
YXNzIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbDsKIGNsYXNzIERvY3VtZW50VHlwZTsKIGNsYXNz
IEV4dGVuc2lvblN0eWxlU2hlZXRzOwotY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgRmxvYXRRdWFk
OworY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgRm9ybUNvbnRyb2xsZXI7CiBjbGFzcyBGcmFtZTsK
IGNsYXNzIEZyYW1lVmlldzsKQEAgLTEyMSwxMSArMTE5LDEwIEBAIGNsYXNzIEhUTUxTY3JpcHRF
bGVtZW50OwogY2xhc3MgSGl0VGVzdFJlcXVlc3Q7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xh
c3MgSW50UG9pbnQ7CitjbGFzcyBKU05vZGU7CiBjbGFzcyBMYXlvdXRQb2ludDsKIGNsYXNzIExh
eW91dFJlY3Q7CiBjbGFzcyBMaXZlTm9kZUxpc3Q7Ci1jbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXI7
Ci1jbGFzcyBKU05vZGU7CiBjbGFzcyBMb2NhbGU7CiBjbGFzcyBMb2NhdGlvbjsKIGNsYXNzIE1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lcjsKQEAgLTEzMyw3ICsxMzAsNiBAQCBjbGFzcyBNZWRpYVBsYXli
YWNrVGFyZ2V0OwogY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldENsaWVudDsKIGNsYXNzIE1lZGlh
UXVlcnlMaXN0OwogY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXI7Ci1jbGFzcyBTY3JpcHRNb2R1bGVM
b2FkZXI7CiBjbGFzcyBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3MgTmFtZWRG
bG93Q29sbGVjdGlvbjsKIGNsYXNzIE5vZGVGaWx0ZXI7CkBAIC0xNDMsMjMgKzEzOSwyNCBAQCBj
bGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiBjbGFzcyBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb247CiBj
bGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgUmFuZ2U7Ci1jbGFzcyBSZW5kZXJWaWV3OwogY2xh
c3MgUmVuZGVyRnVsbFNjcmVlbjsKLWNsYXNzIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlcjsKK2Ns
YXNzIFJlbmRlclZpZXc7CitjbGFzcyBTVkdEb2N1bWVudEV4dGVuc2lvbnM7CitjbGFzcyBTVkdT
VkdFbGVtZW50OwogY2xhc3MgU2NyaXB0RWxlbWVudERhdGE7CitjbGFzcyBTY3JpcHRNb2R1bGVM
b2FkZXI7CiBjbGFzcyBTY3JpcHRSdW5uZXI7CitjbGFzcyBTY3JpcHRhYmxlRG9jdW1lbnRQYXJz
ZXI7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFNlZ21lbnRlZFN0cmluZzsKIGNsYXNz
IFNlbGVjdG9yUXVlcnk7CiBjbGFzcyBTZWxlY3RvclF1ZXJ5Q2FjaGU7CiBjbGFzcyBTZXJpYWxp
emVkU2NyaXB0VmFsdWU7Ci1jbGFzcyBTZWdtZW50ZWRTdHJpbmc7CiBjbGFzcyBTZXR0aW5nczsK
IGNsYXNzIFN0eWxlUmVzb2x2ZXI7CiBjbGFzcyBTdHlsZVNoZWV0OwogY2xhc3MgU3R5bGVTaGVl
dENvbnRlbnRzOwogY2xhc3MgU3R5bGVTaGVldExpc3Q7Ci1jbGFzcyBTVkdEb2N1bWVudEV4dGVu
c2lvbnM7Ci1jbGFzcyBTVkdTVkdFbGVtZW50OwogY2xhc3MgVGV4dDsKIGNsYXNzIFRleHRSZXNv
dXJjZURlY29kZXI7CiBjbGFzcyBUcmVlV2Fsa2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1BlbmRpbmdTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3Jp
cHQuY3BwCmluZGV4IDJiZTBlMmViOTAzMmRkMzg5YWI1NzRkNDgwODYwNGYyZTZiZmI1NDkuLjJm
OTg2ODIyYWYzYWU3MWE0MTA1N2IxMDQ3ZDVlMmY1ZGI5MjBkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UGVuZGluZ1NjcmlwdC5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yNiwzMCArMjcsMzAgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAKLSNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiUGVuZGluZ1NjcmlwdENsaWVudC5oIgorI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8UGVuZGluZ1NjcmlwdD4gUGVuZGluZ1Njcmlw
dDo6Y3JlYXRlKEVsZW1lbnQmIGVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlw
dCkKK1JlZjxQZW5kaW5nU2NyaXB0PiBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoU2NyaXB0RWxlbWVu
dCYgZWxlbWVudCwgTG9hZGFibGVTY3JpcHQmIGxvYWRhYmxlU2NyaXB0KQogewotICAgIFJlZjxQ
ZW5kaW5nU2NyaXB0PiBwZW5kaW5nU2NyaXB0ID0gYWRvcHRSZWYoKm5ldyBQZW5kaW5nU2NyaXB0
KGVsZW1lbnQsIGxvYWRhYmxlU2NyaXB0KSk7CisgICAgYXV0byBwZW5kaW5nU2NyaXB0ID0gYWRv
cHRSZWYoKm5ldyBQZW5kaW5nU2NyaXB0KGVsZW1lbnQsIGxvYWRhYmxlU2NyaXB0KSk7CiAgICAg
bG9hZGFibGVTY3JpcHQuYWRkQ2xpZW50KHBlbmRpbmdTY3JpcHQuZ2V0KCkpOwogICAgIHJldHVy
biBwZW5kaW5nU2NyaXB0OwogfQogCi1SZWY8UGVuZGluZ1NjcmlwdD4gUGVuZGluZ1NjcmlwdDo6
Y3JlYXRlKEVsZW1lbnQmIGVsZW1lbnQsIFRleHRQb3NpdGlvbiBzY3JpcHRTdGFydFBvc2l0aW9u
KQorUmVmPFBlbmRpbmdTY3JpcHQ+IFBlbmRpbmdTY3JpcHQ6OmNyZWF0ZShTY3JpcHRFbGVtZW50
JiBlbGVtZW50LCBUZXh0UG9zaXRpb24gc2NyaXB0U3RhcnRQb3NpdGlvbikKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBQZW5kaW5nU2NyaXB0KGVsZW1lbnQsIHNjcmlwdFN0YXJ0UG9zaXRp
b24pKTsKIH0KIAotUGVuZGluZ1NjcmlwdDo6UGVuZGluZ1NjcmlwdChFbGVtZW50JiBlbGVtZW50
LCBUZXh0UG9zaXRpb24gc3RhcnRpbmdQb3NpdGlvbikKK1BlbmRpbmdTY3JpcHQ6OlBlbmRpbmdT
Y3JpcHQoU2NyaXB0RWxlbWVudCYgZWxlbWVudCwgVGV4dFBvc2l0aW9uIHN0YXJ0aW5nUG9zaXRp
b24pCiAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKICAgICAsIG1fc3RhcnRpbmdQb3NpdGlvbihz
dGFydGluZ1Bvc2l0aW9uKQogewogfQogCi1QZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KEVs
ZW1lbnQmIGVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlwdCkKK1BlbmRpbmdT
Y3JpcHQ6OlBlbmRpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCYgZWxlbWVudCwgTG9hZGFibGVTY3Jp
cHQmIGxvYWRhYmxlU2NyaXB0KQogICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX2xv
YWRhYmxlU2NyaXB0KCZsb2FkYWJsZVNjcmlwdCkKIHsKQEAgLTYxLDExICs2Miw2IEBAIFBlbmRp
bmdTY3JpcHQ6On5QZW5kaW5nU2NyaXB0KCkKICAgICAgICAgbV9sb2FkYWJsZVNjcmlwdC0+cmVt
b3ZlQ2xpZW50KCp0aGlzKTsKIH0KIAotTG9hZGFibGVTY3JpcHQqIFBlbmRpbmdTY3JpcHQ6Omxv
YWRhYmxlU2NyaXB0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9sb2FkYWJsZVNjcmlwdC5nZXQo
KTsKLX0KLQogdm9pZCBQZW5kaW5nU2NyaXB0Ojpub3RpZnlDbGllbnRGaW5pc2hlZCgpCiB7CiAg
ICAgUmVmPFBlbmRpbmdTY3JpcHQ+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwpAQCAtODgsMTAgKzg0
LDEwIEBAIGJvb2wgUGVuZGluZ1NjcmlwdDo6ZXJyb3IoKSBjb25zdAogICAgIHJldHVybiBtX2xv
YWRhYmxlU2NyaXB0ICYmIG1fbG9hZGFibGVTY3JpcHQtPmVycm9yKCk7CiB9CiAKLXZvaWQgUGVu
ZGluZ1NjcmlwdDo6c2V0Q2xpZW50KFBlbmRpbmdTY3JpcHRDbGllbnQqIGNsaWVudCkKK3ZvaWQg
UGVuZGluZ1NjcmlwdDo6c2V0Q2xpZW50KFBlbmRpbmdTY3JpcHRDbGllbnQmIGNsaWVudCkKIHsK
ICAgICBBU1NFUlQoIW1fY2xpZW50KTsKLSAgICBtX2NsaWVudCA9IGNsaWVudDsKKyAgICBtX2Ns
aWVudCA9ICZjbGllbnQ7CiAgICAgaWYgKGlzTG9hZGVkKCkpCiAgICAgICAgIG5vdGlmeUNsaWVu
dEZpbmlzaGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGluZ1Nj
cmlwdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaAppbmRleCA5OTBmMjUw
ODNiMDFiMDI3YzRhYzAxNDE3ZjhmNDkxNmE5ZThlNjY2Li5mYzc1OGQwN2RkNjBkZWMzMThiYjg4
ZGFkMDc4N2Y4NDg4MmY4MjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGVuZGlu
Z1NjcmlwdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKQEAgLTM0
LDE1ICszNCwxNSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRTY3JpcHQ7
Ci1jbGFzcyBFbGVtZW50OwogY2xhc3MgUGVuZGluZ1NjcmlwdENsaWVudDsKK2NsYXNzIFNjcmlw
dEVsZW1lbnQ7CiAKIC8vIEEgY29udGFpbmVyIGZvciBzY3JpcHRzIHdoaWNoIG1heSBiZSBsb2Fk
ZWQgYW5kIGV4ZWN1dGVkLgogLy8gVGhpcyBjYW4gaG9sZCBMb2FkYWJsZVNjcmlwdCBhbmQgbm9u
IGV4dGVybmFsIGlubGluZSBzY3JpcHQuCiBjbGFzcyBQZW5kaW5nU2NyaXB0IGZpbmFsIDogcHVi
bGljIFJlZkNvdW50ZWQ8UGVuZGluZ1NjcmlwdD4sIHB1YmxpYyBMb2FkYWJsZVNjcmlwdENsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0PiBjcmVhdGUoRWxlbWVu
dCYsIExvYWRhYmxlU2NyaXB0Jik7Ci0gICAgc3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0PiBjcmVh
dGUoRWxlbWVudCYsIFRleHRQb3NpdGlvbiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICBzdGF0
aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IGNyZWF0ZShTY3JpcHRFbGVtZW50JiwgTG9hZGFibGVTY3Jp
cHQmKTsKKyAgICBzdGF0aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IGNyZWF0ZShTY3JpcHRFbGVtZW50
JiwgVGV4dFBvc2l0aW9uIHNjcmlwdFN0YXJ0UG9zaXRpb24pOwogCiAgICAgdmlydHVhbCB+UGVu
ZGluZ1NjcmlwdCgpOwogCkBAIC01MSw4ICs1MSw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgd2F0
Y2hpbmdGb3JMb2FkKCkgY29uc3QgeyByZXR1cm4gbmVlZHNMb2FkaW5nKCkgJiYgbV9jbGllbnQ7
IH0KIAotICAgIEVsZW1lbnQmIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0K
LSAgICBjb25zdCBFbGVtZW50JiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50Lmdl
dCgpOyB9CisgICAgU2NyaXB0RWxlbWVudCYgZWxlbWVudCgpIHsgcmV0dXJuIG1fZWxlbWVudC5n
ZXQoKTsgfQorICAgIGNvbnN0IFNjcmlwdEVsZW1lbnQmIGVsZW1lbnQoKSBjb25zdCB7IHJldHVy
biBtX2VsZW1lbnQuZ2V0KCk7IH0KIAogICAgIExvYWRhYmxlU2NyaXB0KiBsb2FkYWJsZVNjcmlw
dCgpIGNvbnN0OwogICAgIGJvb2wgbmVlZHNMb2FkaW5nKCkgY29uc3QgeyByZXR1cm4gbG9hZGFi
bGVTY3JpcHQoKTsgfQpAQCAtNjIsMTkgKzYyLDI0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbm90
aWZ5RmluaXNoZWQoTG9hZGFibGVTY3JpcHQmKSBvdmVycmlkZTsKIAotICAgIHZvaWQgc2V0Q2xp
ZW50KFBlbmRpbmdTY3JpcHRDbGllbnQqKTsKKyAgICB2b2lkIHNldENsaWVudChQZW5kaW5nU2Ny
aXB0Q2xpZW50Jik7CiAgICAgdm9pZCBjbGVhckNsaWVudCgpOwogCiBwcml2YXRlOgotICAgIFBl
bmRpbmdTY3JpcHQoRWxlbWVudCYsIExvYWRhYmxlU2NyaXB0Jik7Ci0gICAgUGVuZGluZ1Njcmlw
dChFbGVtZW50JiwgVGV4dFBvc2l0aW9uIHN0YXJ0aW5nUG9zaXRpb24pOworICAgIFBlbmRpbmdT
Y3JpcHQoU2NyaXB0RWxlbWVudCYsIExvYWRhYmxlU2NyaXB0Jik7CisgICAgUGVuZGluZ1Njcmlw
dChTY3JpcHRFbGVtZW50JiwgVGV4dFBvc2l0aW9uIHN0YXJ0aW5nUG9zaXRpb24pOwogCiAgICAg
dm9pZCBub3RpZnlDbGllbnRGaW5pc2hlZCgpOwogCi0gICAgUmVmPEVsZW1lbnQ+IG1fZWxlbWVu
dDsKKyAgICBSZWY8U2NyaXB0RWxlbWVudD4gbV9lbGVtZW50OwogICAgIFRleHRQb3NpdGlvbiBt
X3N0YXJ0aW5nUG9zaXRpb247IC8vIE9ubHkgdXNlZCBmb3IgaW5saW5lIHNjcmlwdCB0YWdzLgog
ICAgIFJlZlB0cjxMb2FkYWJsZVNjcmlwdD4gbV9sb2FkYWJsZVNjcmlwdDsKICAgICBQZW5kaW5n
U2NyaXB0Q2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKIH07CiAKK2lubGluZSBMb2FkYWJs
ZVNjcmlwdCogUGVuZGluZ1NjcmlwdDo6bG9hZGFibGVTY3JpcHQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2xvYWRhYmxlU2NyaXB0LmdldCgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAKaW5kZXggNjFmMjQ4MmY1ODcxZDhhZDBiNzUyNmY2ZjQ0NWJjZGI3NzRmYzQ4
Zi4uZjY4NjM3YWM0ZDk1Y2U4OGExZmIwNTUzMWRmZGFmZjUwMDE0MDBmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykg
MTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFu
dHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERp
cmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4
IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAg
LTI2MywxMSArMjYzLDExIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25z
dCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAgfSBlbHNlIGlm
ICgoaXNDbGFzc2ljRXh0ZXJuYWxTY3JpcHQgfHwgc2NyaXB0VHlwZSA9PSBTY3JpcHRUeXBlOjpN
b2R1bGUpICYmICFhc3luY0F0dHJpYnV0ZVZhbHVlKCkgJiYgIW1fZm9yY2VBc3luYykgewogICAg
ICAgICBtX3dpbGxFeGVjdXRlSW5PcmRlciA9IHRydWU7CiAgICAgICAgIEFTU0VSVChtX2xvYWRh
YmxlU2NyaXB0KTsKLSAgICAgICAgZG9jdW1lbnQuc2NyaXB0UnVubmVyKCktPnF1ZXVlU2NyaXB0
Rm9yRXhlY3V0aW9uKHRoaXMsICptX2xvYWRhYmxlU2NyaXB0LCBTY3JpcHRSdW5uZXI6OklOX09S
REVSX0VYRUNVVElPTik7CisgICAgICAgIGRvY3VtZW50LnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNj
cmlwdEZvckV4ZWN1dGlvbigqdGhpcywgKm1fbG9hZGFibGVTY3JpcHQsIFNjcmlwdFJ1bm5lcjo6
SU5fT1JERVJfRVhFQ1VUSU9OKTsKICAgICB9IGVsc2UgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgp
IHx8IHNjcmlwdFR5cGUgPT0gU2NyaXB0VHlwZTo6TW9kdWxlKSB7CiAgICAgICAgIEFTU0VSVCht
X2xvYWRhYmxlU2NyaXB0KTsKICAgICAgICAgQVNTRVJUKGFzeW5jQXR0cmlidXRlVmFsdWUoKSB8
fCBtX2ZvcmNlQXN5bmMpOwotICAgICAgICBkb2N1bWVudC5zY3JpcHRSdW5uZXIoKS0+cXVldWVT
Y3JpcHRGb3JFeGVjdXRpb24odGhpcywgKm1fbG9hZGFibGVTY3JpcHQsIFNjcmlwdFJ1bm5lcjo6
QVNZTkNfRVhFQ1VUSU9OKTsKKyAgICAgICAgZG9jdW1lbnQuc2NyaXB0UnVubmVyKCktPnF1ZXVl
U2NyaXB0Rm9yRXhlY3V0aW9uKCp0aGlzLCAqbV9sb2FkYWJsZVNjcmlwdCwgU2NyaXB0UnVubmVy
OjpBU1lOQ19FWEVDVVRJT04pOwogICAgIH0gZWxzZSBpZiAoIWhhc1NvdXJjZUF0dHJpYnV0ZSgp
ICYmIG1fcGFyc2VySW5zZXJ0ZWQgJiYgIWRvY3VtZW50LmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgp
KSB7CiAgICAgICAgIEFTU0VSVChzY3JpcHRUeXBlID09IFNjcmlwdFR5cGU6OkNsYXNzaWMpOwog
ICAgICAgICBtX3dpbGxCZVBhcnNlckV4ZWN1dGVkID0gdHJ1ZTsKQEAgLTQ4NywxNSArNDg3LDI2
IEBAIFN0cmluZyBTY3JpcHRFbGVtZW50OjpzY3JpcHRDb250ZW50KCkgY29uc3QKICAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CiB9CiAKLVNjcmlwdEVsZW1lbnQqIHRvU2NyaXB0RWxlbWVu
dElmUG9zc2libGUoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgU2NyaXB0RWxlbWVudDo6cmVmKCkK
IHsKLSAgICBpZiAoaXM8SFRNTFNjcmlwdEVsZW1lbnQ+KCplbGVtZW50KSkKLSAgICAgICAgcmV0
dXJuIGRvd25jYXN0PEhUTUxTY3JpcHRFbGVtZW50PihlbGVtZW50KTsKKyAgICBtX2VsZW1lbnQu
cmVmKCk7Cit9CiAKLSAgICBpZiAoaXM8U1ZHU2NyaXB0RWxlbWVudD4oKmVsZW1lbnQpKQotICAg
ICAgICByZXR1cm4gZG93bmNhc3Q8U1ZHU2NyaXB0RWxlbWVudD4oZWxlbWVudCk7Cit2b2lkIFNj
cmlwdEVsZW1lbnQ6OmRlcmVmKCkKK3sKKyAgICBtX2VsZW1lbnQuZGVyZWYoKTsKK30KIAotICAg
IHJldHVybiBudWxscHRyOworYm9vbCBpc1NjcmlwdEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkK
K3sKKyAgICByZXR1cm4gaXM8SFRNTFNjcmlwdEVsZW1lbnQ+KGVsZW1lbnQpIHx8IGlzPFNWR1Nj
cmlwdEVsZW1lbnQ+KGVsZW1lbnQpOworfQorCitTY3JpcHRFbGVtZW50JiBkb3duY2FzdFNjcmlw
dEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBpZiAoaXM8SFRNTFNjcmlwdEVsZW1l
bnQ+KGVsZW1lbnQpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTFNjcmlwdEVsZW1lbnQ+
KGVsZW1lbnQpOworICAgIHJldHVybiBkb3duY2FzdDxTVkdTY3JpcHRFbGVtZW50PihlbGVtZW50
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKaW5kZXggNDA3OWMxNzA5MzIx
Nzg0MDg3ZTllM2Y3MzIzNDZjNTU4MDBmN2IxNC4uNWYxODFkZjJlM2IwZTg4OGVmMzk0N2JiY2Rj
MThkOTMwN2RkZWIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1l
cm1hbm5Aa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsMTkgKzI2LDE3IEBA
CiAjaW5jbHVkZSAiTG9hZGFibGVTY3JpcHQuaCIKICNpbmNsdWRlICJMb2FkYWJsZVNjcmlwdENs
aWVudC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8
d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0OwogY2xh
c3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ29udGFpbmVyTm9kZTsKIGNsYXNzIEVsZW1lbnQ7CiBj
bGFzcyBQZW5kaW5nU2NyaXB0OwotY2xhc3MgU2NyaXB0RWxlbWVudDsKIGNsYXNzIFNjcmlwdFNv
dXJjZUNvZGU7Ci1jbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHQ7CitjbGFzcyBVUkw7CiAKIGNsYXNz
IFNjcmlwdEVsZW1lbnQgewogcHVibGljOgpAQCAtNzMsNiArNzIsOSBAQCBwdWJsaWM6CiAgICAg
ZW51bSBjbGFzcyBTY3JpcHRUeXBlIHsgQ2xhc3NpYywgTW9kdWxlIH07CiAgICAgU2NyaXB0VHlw
ZSBzY3JpcHRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9pc01vZHVsZVNjcmlwdCA/IFNjcmlwdFR5
cGU6Ok1vZHVsZSA6IFNjcmlwdFR5cGU6OkNsYXNzaWM7IH0KIAorICAgIHZvaWQgcmVmKCk7Cisg
ICAgdm9pZCBkZXJlZigpOworCiBwcm90ZWN0ZWQ6CiAgICAgU2NyaXB0RWxlbWVudChFbGVtZW50
JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIsIGJvb2wgaXNFdmFsdWF0ZWQpOwogCkBAIC0xMjcsNyAr
MTI5LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TG9hZGFibGVTY3JpcHQ+IG1fbG9hZGFibGVT
Y3JpcHQ7CiB9OwogCi0vLyBGSVhNRTogcmVwbGFjZSB3aXRoIGRvd25jYXN0PFNjcmlwdEVsZW1l
bnQ+LgotU2NyaXB0RWxlbWVudCogdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShFbGVtZW50Kik7
CisvLyBGSVhNRTogcmVwbGFjZSB3aXRoIGlzL2Rvd25jYXN0PFNjcmlwdEVsZW1lbnQ+LgorYm9v
bCBpc1NjcmlwdEVsZW1lbnQoRWxlbWVudCYpOworU2NyaXB0RWxlbWVudCYgZG93bmNhc3RTY3Jp
cHRFbGVtZW50KEVsZW1lbnQmKTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdFJ1bm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcApp
bmRleCA3MDk4OWViNDBjMDQ1YWRlNzc0YWU1N2QwOWE0MDQ4YjU5ZTM4ODA0Li4wNDFlNmQxMzMx
ZjQ0MjNjMTVjOTg3NjlmOWEyMjc0Y2VkMGFkMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0UnVubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVu
bmVyLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
LCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTU2LDI2ICs1NywyMiBAQCBTY3JpcHRSdW5uZXI6On5TY3JpcHRSdW5uZXIoKQog
ICAgIH0KIH0KIAotdm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNj
cmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIExvYWRhYmxlU2NyaXB0JiBsb2FkYWJsZVNjcmlw
dCwgRXhlY3V0aW9uVHlwZSBleGVjdXRpb25UeXBlKQordm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVl
U2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQsIExvYWRhYmxl
U2NyaXB0JiBsb2FkYWJsZVNjcmlwdCwgRXhlY3V0aW9uVHlwZSBleGVjdXRpb25UeXBlKQogewot
ICAgIEFTU0VSVChzY3JpcHRFbGVtZW50KTsKLQotICAgIEVsZW1lbnQmIGVsZW1lbnQgPSBzY3Jp
cHRFbGVtZW50LT5lbGVtZW50KCk7Ci0gICAgQVNTRVJUKGVsZW1lbnQuaW5Eb2N1bWVudCgpKTsK
KyAgICBBU1NFUlQoc2NyaXB0RWxlbWVudC5lbGVtZW50KCkuaW5Eb2N1bWVudCgpKTsKIAogICAg
IG1fZG9jdW1lbnQuaW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogCi0gICAgUmVmPFBl
bmRpbmdTY3JpcHQ+IHBlbmRpbmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoZWxlbWVu
dCwgbG9hZGFibGVTY3JpcHQpOworICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IFBlbmRpbmdTY3Jp
cHQ6OmNyZWF0ZShzY3JpcHRFbGVtZW50LCBsb2FkYWJsZVNjcmlwdCk7CiAgICAgc3dpdGNoIChl
eGVjdXRpb25UeXBlKSB7CiAgICAgY2FzZSBBU1lOQ19FWEVDVVRJT046CiAgICAgICAgIG1fcGVu
ZGluZ0FzeW5jU2NyaXB0cy5hZGQocGVuZGluZ1NjcmlwdC5jb3B5UmVmKCkpOwogICAgICAgICBi
cmVhazsKLQogICAgIGNhc2UgSU5fT1JERVJfRVhFQ1VUSU9OOgogICAgICAgICBtX3NjcmlwdHNU
b0V4ZWN1dGVJbk9yZGVyLmFwcGVuZChwZW5kaW5nU2NyaXB0LmNvcHlSZWYoKSk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KLSAgICBwZW5kaW5nU2NyaXB0LT5zZXRDbGllbnQodGhpcyk7CisgICAg
cGVuZGluZ1NjcmlwdC0+c2V0Q2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBTY3JpcHRSdW5uZXI6
OnN1c3BlbmQoKQpAQCAtOTEsOSArODgsNyBAQCB2b2lkIFNjcmlwdFJ1bm5lcjo6cmVzdW1lKCkK
IAogdm9pZCBTY3JpcHRSdW5uZXI6Om5vdGlmeUZpbmlzaGVkKFBlbmRpbmdTY3JpcHQmIHBlbmRp
bmdTY3JpcHQpCiB7Ci0gICAgYXV0byogc2NyaXB0RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElm
UG9zc2libGUoJnBlbmRpbmdTY3JpcHQuZWxlbWVudCgpKTsKLSAgICBBU1NFUlQoc2NyaXB0RWxl
bWVudCk7Ci0gICAgaWYgKHNjcmlwdEVsZW1lbnQtPndpbGxFeGVjdXRlSW5PcmRlcigpKQorICAg
IGlmIChwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKS53aWxsRXhlY3V0ZUluT3JkZXIoKSkKICAgICAg
ICAgQVNTRVJUKCFtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyLmlzRW1wdHkoKSk7CiAgICAgZWxz
ZSB7CiAgICAgICAgIEFTU0VSVChtX3BlbmRpbmdBc3luY1NjcmlwdHMuY29udGFpbnMocGVuZGlu
Z1NjcmlwdCkpOwpAQCAtMTIyLDEwICsxMTcsOCBAQCB2b2lkIFNjcmlwdFJ1bm5lcjo6dGltZXJG
aXJlZCgpCiAgICAgICAgIC8vIFBhcGVyIG92ZXIgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0NDA1MAogICAgICAgICBpZiAoIXNjcmlwdCkKICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICBhdXRvKiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQ
b3NzaWJsZSgmc2NyaXB0LT5lbGVtZW50KCkpOwotICAgICAgICBBU1NFUlQoc2NyaXB0RWxlbWVu
dCk7CiAgICAgICAgIEFTU0VSVChzY3JpcHQtPm5lZWRzTG9hZGluZygpKTsKLSAgICAgICAgc2Ny
aXB0RWxlbWVudC0+ZXhlY3V0ZVBlbmRpbmdTY3JpcHQoKnNjcmlwdCk7CisgICAgICAgIHNjcmlw
dC0+ZWxlbWVudCgpLmV4ZWN1dGVQZW5kaW5nU2NyaXB0KCpzY3JpcHQpOwogICAgICAgICBtX2Rv
Y3VtZW50LmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKICAgICB9CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0UnVubmVyLmgKaW5kZXggZGZjZjNjNWZhOTBlNGE0NTA5NDA0MmQ4NzdkZTNiY2U0
NDgwMGQ5YS4uOGU4ZjQ4NmFkMWRiMGRiYzBkMGJlNjQ1MjExMWVlZDc3MGYxNTMxMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRSdW5uZXIuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDEzICsyOSwxMSBAQAogI2luY2x1ZGUgIlBlbmRp
bmdTY3JpcHRDbGllbnQuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgUGVu
ZGluZ1NjcmlwdDsKIGNsYXNzIFNjcmlwdEVsZW1lbnQ7CiBjbGFzcyBMb2FkYWJsZVNjcmlwdDsK
IApAQCAtNDUsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgflNjcmlwdFJ1bm5lcigpOwogCiAgICAg
ZW51bSBFeGVjdXRpb25UeXBlIHsgQVNZTkNfRVhFQ1VUSU9OLCBJTl9PUkRFUl9FWEVDVVRJT04g
fTsKLSAgICB2b2lkIHF1ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqLCBMb2Fk
YWJsZVNjcmlwdCYsIEV4ZWN1dGlvblR5cGUpOworICAgIHZvaWQgcXVldWVTY3JpcHRGb3JFeGVj
dXRpb24oU2NyaXB0RWxlbWVudCYsIExvYWRhYmxlU2NyaXB0JiwgRXhlY3V0aW9uVHlwZSk7CiAg
ICAgYm9vbCBoYXNQZW5kaW5nU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJuICFtX3NjcmlwdHNUb0V4
ZWN1dGVTb29uLmlzRW1wdHkoKSB8fCAhbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5pc0VtcHR5
KCkgfHwgIW1fcGVuZGluZ0FzeW5jU2NyaXB0cy5pc0VtcHR5KCk7IH0KICAgICB2b2lkIHN1c3Bl
bmQoKTsKICAgICB2b2lkIHJlc3VtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5j
cHAKaW5kZXggMTM2N2I0ZjIwZWEwOTExZGY5Y2RkY2YxYzE2MmU3MzlkMWUwMjZlMy4uNTdkMGRj
MWM3NjNkNjdiNmIwMjI4Yzg2MDUxM2Q3ZjFlOWM1MzYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yMjEsNyArMjIxLDcgQEAgYm9v
bCBGaWxlSW5wdXRUeXBlOjpjYW5TZXRTdHJpbmdWYWx1ZSgpIGNvbnN0CiAKIEZpbGVMaXN0KiBG
aWxlSW5wdXRUeXBlOjpmaWxlcygpCiB7Ci0gICAgcmV0dXJuIG1fZmlsZUxpc3QuZ2V0KCk7Cisg
ICAgcmV0dXJuIG1fZmlsZUxpc3QucHRyKCk7CiB9CiAKIGJvb2wgRmlsZUlucHV0VHlwZTo6Y2Fu
U2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTI1OCwxMiArMjU4LDEyIEBAIHZvaWQg
RmlsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvcikKICAgICBlbGVtZW50KCkuaW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwog
fQogCi1QYXNzUmVmUHRyPEZpbGVMaXN0PiBGaWxlSW5wdXRUeXBlOjpjcmVhdGVGaWxlTGlzdChj
b25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mIGZpbGVzKSBjb25zdAorUmVmPEZpbGVM
aXN0PiBGaWxlSW5wdXRUeXBlOjpjcmVhdGVGaWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29z
ZXJGaWxlSW5mbz4mIGZpbGVzKQogewogICAgIFZlY3RvcjxSZWZQdHI8RmlsZT4+IGZpbGVPYmpl
Y3RzOwotICAgIGZvciAoY29uc3QgRmlsZUNob29zZXJGaWxlSW5mbyYgaW5mbyA6IGZpbGVzKQot
ICAgICAgICBmaWxlT2JqZWN0cy5hcHBlbmQoRmlsZTo6Y3JlYXRlV2l0aE5hbWUoaW5mby5wYXRo
LCBpbmZvLmRpc3BsYXlOYW1lKSk7Ci0KKyAgICBmaWxlT2JqZWN0cy5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KGZpbGVzLnNpemUoKSk7CisgICAgZm9yIChhdXRvJiBpbmZvIDogZmlsZXMpCisgICAg
ICAgIGZpbGVPYmplY3RzLnVuY2hlY2tlZEFwcGVuZChGaWxlOjpjcmVhdGVXaXRoTmFtZShpbmZv
LnBhdGgsIGluZm8uZGlzcGxheU5hbWUpKTsKICAgICByZXR1cm4gRmlsZUxpc3Q6OmNyZWF0ZShX
VEZNb3ZlKGZpbGVPYmplY3RzKSk7CiB9CiAKQEAgLTMwMiwyOSArMzAyLDMyIEBAIHZvaWQgRmls
ZUlucHV0VHlwZTo6bXVsdGlwbGVBdHRyaWJ1dGVDaGFuZ2VkKCkKICAgICAgICAgYnV0dG9uLT5z
ZXRWYWx1ZShlbGVtZW50KCkubXVsdGlwbGUoKSA/IGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZp
bGVzTGFiZWwoKSA6IGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKSk7CiB9CiAKKyNpZiAhUExB
VEZPUk0oSU9TKQorCiB2b2lkIEZpbGVJbnB1dFR5cGU6OnJlcXVlc3RJY29uKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBwYXRocykKIHsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgVU5VU0VEX1BBUkFN
KHBhdGhzKTsKLSNlbHNlCiAgICAgaWYgKCFwYXRocy5zaXplKCkpIHsKLSAgICAgICAgdXBkYXRl
UmVuZGVyaW5nKG51bGxwdHIpOworICAgICAgICBpY29uTG9hZGVkKG51bGxwdHIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgQ2hyb21lKiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKTsK
LSAgICBpZiAoIWNocm9tZSkKKyAgICBhdXRvKiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKTsKKyAg
ICBpZiAoIWNocm9tZSkgeworICAgICAgICBpY29uTG9hZGVkKG51bGxwdHIpOwogICAgICAgICBy
ZXR1cm47CisgICAgfQogCiAgICAgaWYgKG1fZmlsZUljb25Mb2FkZXIpCiAgICAgICAgIG1fZmls
ZUljb25Mb2FkZXItPmludmFsaWRhdGUoKTsKIAotICAgIG1fZmlsZUljb25Mb2FkZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPEZpbGVJY29uTG9hZGVyPihzdGF0aWNfY2FzdDxGaWxlSWNvbkxvYWRlckNs
aWVudCY+KCp0aGlzKSk7CisgICAgRmlsZUljb25Mb2FkZXJDbGllbnQmIGNsaWVudCA9ICp0aGlz
OworICAgIG1fZmlsZUljb25Mb2FkZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZpbGVJY29uTG9hZGVy
PihjbGllbnQpOwogCi0gICAgY2hyb21lLT5sb2FkSWNvbkZvckZpbGVzKHBhdGhzLCBtX2ZpbGVJ
Y29uTG9hZGVyLmdldCgpKTsKLSNlbmRpZgorICAgIGNocm9tZS0+bG9hZEljb25Gb3JGaWxlcyhw
YXRocywgKm1fZmlsZUljb25Mb2FkZXIpOwogfQogCisjZW5kaWYKKwogdm9pZCBGaWxlSW5wdXRU
eXBlOjphcHBseUZpbGVDaG9vc2VyU2V0dGluZ3MoY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYg
c2V0dGluZ3MpCiB7CiAgICAgaWYgKG1fZmlsZUNob29zZXIpCkBAIC0zMzMsMTggKzMzNiwyMCBA
QCB2b2lkIEZpbGVJbnB1dFR5cGU6OmFwcGx5RmlsZUNob29zZXJTZXR0aW5ncyhjb25zdCBGaWxl
Q2hvb3NlclNldHRpbmdzJiBzZXR0aW5ncwogICAgIG1fZmlsZUNob29zZXIgPSBGaWxlQ2hvb3Nl
cjo6Y3JlYXRlKHRoaXMsIHNldHRpbmdzKTsKIH0KIAotdm9pZCBGaWxlSW5wdXRUeXBlOjpzZXRG
aWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0PiBmaWxlcykKK3ZvaWQgRmlsZUlucHV0VHlwZTo6c2V0
RmlsZXMoUmVmUHRyPEZpbGVMaXN0PiYmIGZpbGVzKQogewogICAgIGlmICghZmlsZXMpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dChlbGVtZW50KCkp
OwogCisgICAgdW5zaWduZWQgbGVuZ3RoID0gZmlsZXMtPmxlbmd0aCgpOworCiAgICAgYm9vbCBw
YXRoc0NoYW5nZWQgPSBmYWxzZTsKLSAgICBpZiAoZmlsZXMtPmxlbmd0aCgpICE9IG1fZmlsZUxp
c3QtPmxlbmd0aCgpKQorICAgIGlmIChsZW5ndGggIT0gbV9maWxlTGlzdC0+bGVuZ3RoKCkpCiAg
ICAgICAgIHBhdGhzQ2hhbmdlZCA9IHRydWU7CiAgICAgZWxzZSB7Ci0gICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBmaWxlcy0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIGlmIChmaWxlcy0+
aXRlbShpKS0+cGF0aCgpICE9IG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSkgewogICAgICAg
ICAgICAgICAgIHBhdGhzQ2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBA
IC0zNTIsMTUgKzM1NywxOCBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQ
dHI8RmlsZUxpc3Q+IGZpbGVzKQogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9maWxlTGlzdCA9
IGZpbGVzOworICAgIG1fZmlsZUxpc3QgPSBmaWxlcy5yZWxlYXNlTm9uTnVsbCgpOwogCiAgICAg
aW5wdXQtPnNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CiAgICAgaW5w
dXQtPnVwZGF0ZVZhbGlkaXR5KCk7CiAKKyNpZiAhUExBVEZPUk0oSU9TKQogICAgIFZlY3RvcjxT
dHJpbmc+IHBhdGhzOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2ZpbGVMaXN0LT5s
ZW5ndGgoKTsgKytpKQotICAgICAgICBwYXRocy5hcHBlbmQobV9maWxlTGlzdC0+aXRlbShpKS0+
cGF0aCgpKTsKKyAgICBwYXRocy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGxlbmd0aCk7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICBwYXRocy51bmNo
ZWNrZWRBcHBlbmQobV9maWxlTGlzdC0+aXRlbShpKS0+cGF0aCgpKTsKICAgICByZXF1ZXN0SWNv
bihwYXRocyk7CisjZW5kaWYKIAogICAgIGlmIChpbnB1dC0+cmVuZGVyZXIoKSkKICAgICAgICAg
aW5wdXQtPnJlbmRlcmVyKCktPnJlcGFpbnQoKTsKQEAgLTM3NCwxNyArMzgyLDE5IEBAIHZvaWQg
RmlsZUlucHV0VHlwZTo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCiB9CiAK
ICNpZiBQTEFURk9STShJT1MpCisKIHZvaWQgRmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4oY29u
c3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBwYXRocywgY29uc3QgU3RyaW5nJiBkaXNw
bGF5U3RyaW5nLCBJY29uKiBpY29uKQogewogICAgIG1fZGlzcGxheVN0cmluZyA9IGRpc3BsYXlT
dHJpbmc7CiAgICAgZmlsZXNDaG9zZW4ocGF0aHMpOwotICAgIHVwZGF0ZVJlbmRlcmluZyhpY29u
KTsKKyAgICBpY29uTG9hZGVkKGljb24pOwogfQogCiBTdHJpbmcgRmlsZUlucHV0VHlwZTo6ZGlz
cGxheVN0cmluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZGlzcGxheVN0cmluZzsKIH0KKwog
I2VuZGlmCiAKIHZvaWQgRmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZp
bGVDaG9vc2VyRmlsZUluZm8+JiBmaWxlcykKQEAgLTM5MiwxMiArNDAyLDEyIEBAIHZvaWQgRmls
ZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+
JiBmaWxlcykKICAgICBzZXRGaWxlcyhjcmVhdGVGaWxlTGlzdChmaWxlcykpOwogfQogCi12b2lk
IEZpbGVJbnB1dFR5cGU6OnVwZGF0ZVJlbmRlcmluZyhQYXNzUmVmUHRyPEljb24+IGljb24pCit2
b2lkIEZpbGVJbnB1dFR5cGU6Omljb25Mb2FkZWQoUmVmUHRyPEljb24+JiYgaWNvbikKIHsKICAg
ICBpZiAobV9pY29uID09IGljb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1faWNvbiA9IGlj
b247CisgICAgbV9pY29uID0gV1RGTW92ZShpY29uKTsKICAgICBpZiAoZWxlbWVudCgpLnJlbmRl
cmVyKCkpCiAgICAgICAgIGVsZW1lbnQoKS5yZW5kZXJlcigpLT5yZXBhaW50KCk7CiB9CkBAIC00
MzQsOCArNDQ0LDcgQEAgSWNvbiogRmlsZUlucHV0VHlwZTo6aWNvbigpIGNvbnN0CiAKIFN0cmlu
ZyBGaWxlSW5wdXRUeXBlOjpkZWZhdWx0VG9vbFRpcCgpIGNvbnN0CiB7Ci0gICAgRmlsZUxpc3Qq
IGZpbGVMaXN0ID0gbV9maWxlTGlzdC5nZXQoKTsKLSAgICB1bnNpZ25lZCBsaXN0U2l6ZSA9IGZp
bGVMaXN0LT5sZW5ndGgoKTsKKyAgICB1bnNpZ25lZCBsaXN0U2l6ZSA9IG1fZmlsZUxpc3QtPmxl
bmd0aCgpOwogICAgIGlmICghbGlzdFNpemUpIHsKICAgICAgICAgaWYgKGVsZW1lbnQoKS5tdWx0
aXBsZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZpbGVCdXR0b25Ob0ZpbGVzU2VsZWN0ZWRMYWJl
bCgpOwpAQCAtNDQzLDggKzQ1Miw4IEBAIFN0cmluZyBGaWxlSW5wdXRUeXBlOjpkZWZhdWx0VG9v
bFRpcCgpIGNvbnN0CiAgICAgfQogCiAgICAgU3RyaW5nQnVpbGRlciBuYW1lczsKLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKLSAgICAgICAgbmFtZXMuYXBwZW5k
KGZpbGVMaXN0LT5pdGVtKGkpLT5uYW1lKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgIG5hbWVzLmFwcGVuZChtX2ZpbGVMaXN0LT5pdGVt
KGkpLT5uYW1lKCkpOwogICAgICAgICBpZiAoaSAhPSBsaXN0U2l6ZSAtIDEpCiAgICAgICAgICAg
ICBuYW1lcy5hcHBlbmQoJ1xuJyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUu
aAppbmRleCBmOGEwZGZmMmQ4ZDNjMzA1ZjAxYTFkZjhjODkxYTI5MGUzNjU2M2YxLi5lZTQwNjQ4
ZDY5NTFkYTZhZDI5MzlhMDJmNTM2ZTc3ODg2OWMyZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJ
bnB1dFR5cGUuaApAQCAtNTAsNDUgKzUwLDQ1IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgVmVjdG9y
PEZpbGVDaG9vc2VyRmlsZUluZm8+IGZpbGVzRnJvbUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9y
bUNvbnRyb2xTdGF0ZSYpOwogCiBwcml2YXRlOgotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZm9y
bUNvbnRyb2xUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgRm9ybUNvbnRyb2xTdGF0ZSBzYXZl
Rm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgcmVzdG9yZUZvcm1D
b250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIG92ZXJyaWRlOwotICAgIGJvb2wg
YXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgU3Ry
aW5nIHZhbHVlTWlzc2luZ1RleHQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGhhbmRsZURP
TUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKLSAgICBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlSW5wdXRSZW5kZXJlcihSZW5kZXJTdHlsZSYmKSBvdmVycmlkZTsKLSAgICBi
b29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgRmlsZUxpc3QqIGZp
bGVzKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0Pikg
b3ZlcnJpZGU7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25z
dCBmaW5hbDsKKyAgICBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29u
c3QgZmluYWw7CisgICAgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29u
dHJvbFN0YXRlJikgZmluYWw7CisgICAgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3Qm
LCBib29sKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcm
KSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcgdmFsdWVNaXNzaW5nVGV4dCgpIGNvbnN0IGZpbmFs
OworICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIGZpbmFsOworICAgIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYp
IGZpbmFsOworICAgIGJvb2wgY2FuU2V0U3RyaW5nVmFsdWUoKSBjb25zdCBmaW5hbDsKKyAgICBG
aWxlTGlzdCogZmlsZXMoKSBmaW5hbDsKKyAgICB2b2lkIHNldEZpbGVzKFJlZlB0cjxGaWxlTGlz
dD4mJikgZmluYWw7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIFN0cmluZyBkaXNwbGF5U3RyaW5n
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgU3RyaW5nIGRpc3BsYXlTdHJpbmcoKSBjb25zdCBmaW5h
bDsKICNlbmRpZgotICAgIGJvb2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7
Ci0gICAgYm9vbCBnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKSBvdmVycmlkZTsgLy8gQ2hl
Y2tlZCBmaXJzdCwgYmVmb3JlIGludGVybmFsIHN0b3JhZ2Ugb3IgdGhlIHZhbHVlIGF0dHJpYnV0
ZS4KLSAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBU
ZXh0RmllbGRFdmVudEJlaGF2aW9yKSBvdmVycmlkZTsKKyAgICBib29sIGNhblNldFZhbHVlKGNv
bnN0IFN0cmluZyYpIGZpbmFsOworICAgIGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5n
JikgZmluYWw7IC8vIENoZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdlIG9yIHRo
ZSB2YWx1ZSBhdHRyaWJ1dGUuCisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29s
IHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgZmluYWw7CiAKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQotICAgIGJvb2wgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBEcmFn
RGF0YSYpIG92ZXJyaWRlOworICAgIGJvb2wgcmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBEcmFn
RGF0YSYpIGZpbmFsOwogI2VuZGlmCiAKLSAgICBJY29uKiBpY29uKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgYm9vbCBpc0ZpbGVVcGxvYWQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGNyZWF0
ZVNoYWRvd1N1YnRyZWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc2FibGVkQXR0cmlidXRlQ2hh
bmdlZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgbXVsdGlwbGVBdHRyaWJ1dGVDaGFuZ2VkKCkgb3Zl
cnJpZGU7Ci0gICAgU3RyaW5nIGRlZmF1bHRUb29sVGlwKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
SWNvbiogaWNvbigpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgaXNGaWxlVXBsb2FkKCkgY29uc3Qg
ZmluYWw7CisgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgZmluYWw7CisgICAgdm9pZCBk
aXNhYmxlZEF0dHJpYnV0ZUNoYW5nZWQoKSBmaW5hbDsKKyAgICB2b2lkIG11bHRpcGxlQXR0cmli
dXRlQ2hhbmdlZCgpIGZpbmFsOworICAgIFN0cmluZyBkZWZhdWx0VG9vbFRpcCgpIGNvbnN0IGZp
bmFsOwogCiAgICAgLy8gRmlsZUNob29zZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCi0gICAgdm9p
ZCBmaWxlc0Nob3Nlbihjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZv
PiYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2b2lkIGZpbGVzQ2hvc2VuKGNvbnN0
IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYsIGNvbnN0IFN0cmluZyYgZGlzcGxheVN0cmlu
ZywgSWNvbiopIG92ZXJyaWRlOworICAgIHZvaWQgZmlsZXNDaG9zZW4oY29uc3QgVmVjdG9yPEZp
bGVDaG9vc2VyRmlsZUluZm8+JiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5U3RyaW5nLCBJY29uKikg
ZmluYWw7CiAjZW5kaWYKIAogICAgIC8vIEZpbGVJY29uTG9hZGVyQ2xpZW50IGltcGxlbWVudGF0
aW9uLgotICAgIHZvaWQgdXBkYXRlUmVuZGVyaW5nKFBhc3NSZWZQdHI8SWNvbj4pIG92ZXJyaWRl
OworICAgIHZvaWQgaWNvbkxvYWRlZChSZWZQdHI8SWNvbj4mJikgZmluYWw7CiAKLSAgICBQYXNz
UmVmUHRyPEZpbGVMaXN0PiBjcmVhdGVGaWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29zZXJG
aWxlSW5mbz4mIGZpbGVzKSBjb25zdDsKKyAgICBzdGF0aWMgUmVmPEZpbGVMaXN0PiBjcmVhdGVG
aWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mKTsKICAgICB2b2lkIHJl
cXVlc3RJY29uKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAKICAgICB2b2lkIGFwcGx5RmlsZUNo
b29zZXJTZXR0aW5ncyhjb25zdCBGaWxlQ2hvb3NlclNldHRpbmdzJik7CkBAIC05OCw3ICs5OCw3
IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEZpbGVJY29uTG9hZGVyPiBtX2ZpbGVJ
Y29uTG9hZGVyOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8RmlsZUxpc3Q+IG1fZmlsZUxpc3Q7Cisg
ICAgUmVmPEZpbGVMaXN0PiBtX2ZpbGVMaXN0OwogICAgIFJlZlB0cjxJY29uPiBtX2ljb247CiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIFN0cmluZyBtX2Rpc3BsYXlTdHJpbmc7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGY0YmU3MTU4YzUxMDA4NTgzMDU4MGI2YTczODU4NzIw
MzAzOWEzZDkuLjAzMjJiMTM5ZDI4NWIwZjI4ZjExYjYzMGY5NDM5MTkwMThkYzYxNTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChD
KSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICogQ29weXJpZ2h0
IChDKSAyMDExIE1vdG9yb2xhIE1vYmlsaXR5LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAg
LTc1Miw3ICs3NTIsNyBAQCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSFRNTEVsZW1lbnQ6OmNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLAogICAgIHJldHVybiBSZW5k
ZXJFbGVtZW50OjpjcmVhdGVGb3IoKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIH0KIAotSFRNTEZv
cm1FbGVtZW50KiBIVE1MRWxlbWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAorSFRNTEZvcm1FbGVt
ZW50KiBIVE1MRWxlbWVudDo6Zm9ybSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEhUTUxGb3JtRWxl
bWVudDo6ZmluZENsb3Nlc3RGb3JtQW5jZXN0b3IoKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5oCmluZGV4IDM5ZDRjYjcyYjY3NjM3Mjc3NTkxMTI2YThhMTUyNTA1NDAyZGZlMGMu
LmMxZjllY2I3NmRmNzM1MzM4YmI5NTBjYmY3MDE0YjhkZGRiMWFhYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmgKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAxOTk5
IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkg
S29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOSwg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikgb3ZlcnJpZGU7CiAKLSAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdCB7
IHJldHVybiB2aXJ0dWFsRm9ybSgpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBIVE1M
Rm9ybUVsZW1lbnQqIGZvcm0oKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IEF0
b21pY1N0cmluZyYgZGlyKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREaXIo
Y29uc3QgQXRvbWljU3RyaW5nJik7CkBAIC0xMzMsOCArMTMzLDYgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgbWFwTGFuZ3VhZ2VBdHRyaWJ1dGVUb0xvY2FsZShjb25zdCBBdG9taWNTdHJpbmcmLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzJik7CiAKLSAgICB2aXJ0dWFsIEhUTUxGb3JtRWxlbWVudCog
dmlydHVhbEZvcm0oKSBjb25zdDsKLQogICAgIEV4Y2VwdGlvbk9yPFJlZjxEb2N1bWVudEZyYWdt
ZW50Pj4gdGV4dFRvRnJhZ21lbnQoY29uc3QgU3RyaW5nJik7CiAKICAgICB2b2lkIGRpckF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA4NDUxNmNiNjI0NGMzM2IxZjcwNWUw
NmRlMjgyMmFlYTExZTUxYmQ4Li4yZTg3MmFhYmFlNjRiMDQ0OGQyMjE0ZTk2MmJiMTZmNmNiZjk5
MDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5j
cHAKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25v
bGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlz
dG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJA
a2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgICAgICAgICAgKEMpIDIwMDYg
QWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTU5Mywx
MSArNTkzLDYgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVu
dChSZWZQdHI8RWxlbWVudD4mJiBuZXdGb2N1c2VkRWxlbWUKICAgICBoaWRlVmlzaWJsZVZhbGlk
YXRpb25NZXNzYWdlKCk7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6dmlydHVhbEZvcm0oKSBjb25zdAotewotICAgIHJldHVybiBGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQ6OmZvcm0oKTsKLX0KLQogI2lmIEVOQUJMRShJT1NfQVVUT0NPUlJFQ1RfQU5EX0FVVE9D
QVBJVEFMSVpFKQogCiAvLyBGSVhNRTogV2Ugc2hvdWxkIGxvb2sgdG8gc2hhcmUgdGhpcyBjb2Rl
IHdpdGggY2xhc3MgSFRNTEZvcm1FbGVtZW50IGluc3RlYWQgb2YgZHVwbGljYXRpbmcgdGhlIGxv
Z2ljLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRl
eCA0ZmY0ODk0ZjM1ZmU2MWQyZWRmMGMwODU1ZTkyMjQ0YWNkYzVjNGZjLi41MGI4Y2Q0YzE4MTQx
MzUwM2Q1NDM3ZTdmOWUwNTI0ZjczM2Q1NTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykg
MTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFu
dHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAwIERp
cmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDYsNyArNDYsNyBAQCBjbGFz
cyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IDogcHVibGljIExhYmVsYWJsZUVsZW1lbnQsIHB1Ymxp
YyBGb3JtQXNzb2NpYXRlZEVsZQogcHVibGljOgogICAgIHZpcnR1YWwgfkhUTUxGb3JtQ29udHJv
bEVsZW1lbnQoKTsKIAotICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IHsgcmV0dXJu
IEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybSgpOyB9CisgICAgSFRNTEZvcm1FbGVtZW50KiBm
b3JtKCkgY29uc3QgZmluYWwgeyByZXR1cm4gRm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtKCk7
IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBmb3JtRW5jdHlwZSgpIGNvbnN0OwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Rm9ybUVuY3R5cGUoY29uc3QgU3RyaW5nJik7CkBAIC0x
NjksNyArMTY5LDYgQEAgcHJpdmF0ZToKIAogICAgIGludCB0YWJJbmRleCgpIGNvbnN0IGZpbmFs
OwogCi0gICAgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFsRm9ybSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgaXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpIGNvbnN0OwogCiAgICAgYm9vbCBj
b21wdXRlSXNEaXNhYmxlZEJ5RmllbGRzZXRBbmNlc3RvcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggZDQzZDRlZjllMDExOTI2ZDBlOGEwZWJk
ZWM4NzUyZDNlZmZkZmMyNC4uODIxMmNiMjk4OGMzNDE5MjdjZjdlMTNmMTliYjUyYzBkZDY2NjVh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0yLDcgKzIs
NyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAg
KiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAg
KiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIw
MTEsIDIwMTMsIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkK
ICAqIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIChzYW1Ad2Via2l0Lm9yZykKICAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAt
MTE4NCwxMCArMTE4NCw5IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCYgZXZlbnQpCiAgICAgICAgIGlmICh3YXNDaGFuZ2VkU2luY2VMYXN0Rm9ybUNv
bnRyb2xDaGFuZ2VFdmVudCgpKQogICAgICAgICAgICAgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5n
ZUV2ZW50KCk7CiAKLSAgICAgICAgUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gZm9ybUZvclN1Ym1p
c3Npb24gPSBtX2lucHV0VHlwZS0+Zm9ybUZvclN1Ym1pc3Npb24oKTsKICAgICAgICAgLy8gRm9y
bSBtYXkgbmV2ZXIgaGF2ZSBiZWVuIHByZXNlbnQsIG9yIG1heSBoYXZlIGJlZW4gZGVzdHJveWVk
IGJ5IGNvZGUgcmVzcG9uZGluZyB0byB0aGUgY2hhbmdlIGV2ZW50LgotICAgICAgICBpZiAoZm9y
bUZvclN1Ym1pc3Npb24pCi0gICAgICAgICAgICBmb3JtRm9yU3VibWlzc2lvbi0+c3VibWl0SW1w
bGljaXRseShldmVudCwgY2FuVHJpZ2dlckltcGxpY2l0U3VibWlzc2lvbigpKTsKKyAgICAgICAg
aWYgKGF1dG8qIGZvcm1FbGVtZW50ID0gZm9ybSgpKQorICAgICAgICAgICAgZm9ybUVsZW1lbnQt
PnN1Ym1pdEltcGxpY2l0bHkoZXZlbnQsIGNhblRyaWdnZXJJbXBsaWNpdFN1Ym1pc3Npb24oKSk7
CiAKICAgICAgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtMTM0Miw5ICsxMzQxLDkgQEAgRmlsZUxpc3QqIEhUTUxJbnB1dEVsZW1lbnQ6OmZpbGVzKCkK
ICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmZpbGVzKCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxl
bWVudDo6c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMpCit2b2lkIEhUTUxJbnB1
dEVsZW1lbnQ6OnNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4mJiBmaWxlcykKIHsKLSAgICBtX2lu
cHV0VHlwZS0+c2V0RmlsZXMoZmlsZXMpOworICAgIG1faW5wdXRUeXBlLT5zZXRGaWxlcyhXVEZN
b3ZlKGZpbGVzKSk7CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpAQCAtMTg2OSw3ICsx
ODY4LDcgQEAgUmFkaW9CdXR0b25Hcm91cHMqIEhUTUxJbnB1dEVsZW1lbnQ6OnJhZGlvQnV0dG9u
R3JvdXBzKCkgY29uc3QKIHsKICAgICBpZiAoIWlzUmFkaW9CdXR0b24oKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgaWYgKEhUTUxGb3JtRWxlbWVudCogZm9ybUVsZW1lbnQgPSBmb3Jt
KCkpCisgICAgaWYgKGF1dG8qIGZvcm1FbGVtZW50ID0gZm9ybSgpKQogICAgICAgICByZXR1cm4g
JmZvcm1FbGVtZW50LT5yYWRpb0J1dHRvbkdyb3VwcygpOwogICAgIGlmIChpbkRvY3VtZW50KCkp
CiAgICAgICAgIHJldHVybiAmZG9jdW1lbnQoKS5mb3JtQ29udHJvbGxlcigpLnJhZGlvQnV0dG9u
R3JvdXBzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDhhZmZk
OTgxMTc1NGQ5ZTQ5MjM2MjU2ZTY1NWQ2ZGE1NTgzZjU2ZDYuLmJmMDBiYWZmYzQ2MjAzNmE4YjIy
ZWQ5ZGNiY2EzNWIyYjExZmUxNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtu
b2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZp
c3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVy
QGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmlj
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00Myw4ICs0Myw4IEBAIGNs
YXNzIEljb247CiBjbGFzcyBJbnB1dFR5cGU7CiBjbGFzcyBMaXN0QXR0cmlidXRlVGFyZ2V0T2Jz
ZXJ2ZXI7CiBjbGFzcyBSYWRpb0J1dHRvbkdyb3VwczsKLWNsYXNzIFRleHRDb250cm9sSW5uZXJU
ZXh0RWxlbWVudDsKIGNsYXNzIFVSTDsKKwogc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRl
cnM7CiAKIHN0cnVjdCBJbnB1dEVsZW1lbnRDbGlja1N0YXRlIHsKQEAgLTIzOCw3ICsyMzgsNyBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTaG93QXV0b0ZpbGxCdXR0b24o
QXV0b0ZpbGxCdXR0b25UeXBlKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIEZpbGVMaXN0KiBmaWxl
cygpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlz
dD4pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RmlsZXMoUmVmUHRyPEZpbGVMaXN0PiYm
KTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRo
ZSBnaXZlbiBEcmFnRGF0YSBoYXMgbW9yZSB0aGFuIG9uZSBkcm9wcGVkIGZpbGVzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAKaW5kZXggNzExZDA2ZDIzMjNmMGQ2ZDU1
ZTFhYWNhZWRlYWY0ZWUwNjc3MzlhYy4uMDEwZmZjNGMzNGI4MDk1Y2E5OTQ1MzAwM2FlMGZiNmNl
ODdiZjFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCkBAIC0y
LDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5v
cmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5v
cmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcp
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQ
cm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC01OCwzMCArNTgsMjgg
QEAgUmVmPEhUTUxMYWJlbEVsZW1lbnQ+IEhUTUxMYWJlbEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2MKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1M
TGFiZWxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLUxhYmVsYWJsZUVsZW1lbnQq
IEhUTUxMYWJlbEVsZW1lbnQ6OmNvbnRyb2woKQorTGFiZWxhYmxlRWxlbWVudCogSFRNTExhYmVs
RWxlbWVudDo6Y29udHJvbCgpIGNvbnN0CiB7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBjb250
cm9sSWQgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGZvckF0dHIpOworICAgIGF1
dG8mIGNvbnRyb2xJZCA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oZm9yQXR0cik7
CiAgICAgaWYgKGNvbnRyb2xJZC5pc051bGwoKSkgewogICAgICAgICAvLyBTZWFyY2ggdGhlIGNo
aWxkcmVuIGFuZCBkZXNjZW5kYW50cyBvZiB0aGUgbGFiZWwgZWxlbWVudCBmb3IgYSBmb3JtIGVs
ZW1lbnQuCiAgICAgICAgIC8vIHBlciBodHRwOi8vZGV2LnczLm9yZy9odG1sNS9zcGVjL092ZXJ2
aWV3Lmh0bWwjdGhlLWxhYmVsLWVsZW1lbnQKICAgICAgICAgLy8gdGhlIGZvcm0gZWxlbWVudCBt
dXN0IGJlICJsYWJlbGFibGUgZm9ybS1hc3NvY2lhdGVkIGVsZW1lbnQiLgogICAgICAgICBmb3Ig
KGF1dG8mIGxhYmVsYWJsZUVsZW1lbnQgOiBkZXNjZW5kYW50c09mVHlwZTxMYWJlbGFibGVFbGVt
ZW50PigqdGhpcykpIHsKICAgICAgICAgICAgIGlmIChsYWJlbGFibGVFbGVtZW50LnN1cHBvcnRM
YWJlbHMoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gJmxhYmVsYWJsZUVsZW1lbnQ7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8TGFiZWxhYmxlRWxlbWVudCo+KCZsYWJlbGFi
bGVFbGVtZW50KTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0g
ICAgCiAgICAgcmV0dXJuIGluRG9jdW1lbnQoKSA/IGZpcnN0RWxlbWVudFdpdGhJZElmTGFiZWxh
YmxlKHRyZWVTY29wZSgpLCBjb250cm9sSWQpIDogbnVsbHB0cjsKIH0KIAotSFRNTEZvcm1FbGVt
ZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpmb3JtKCkKK0hUTUxGb3JtRWxlbWVudCogSFRNTExhYmVs
RWxlbWVudDo6Zm9ybSgpIGNvbnN0CiB7Ci0gICAgYXV0byogbGFiZWxlZENvbnRyb2wgPSBjb250
cm9sKCk7Ci0gICAgaWYgKCFsYWJlbGVkQ29udHJvbCkKKyAgICBhdXRvKiBjb250cm9sID0gdGhp
cy0+Y29udHJvbCgpOworICAgIGlmICghaXM8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oY29udHJv
bCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIGlzPEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ+KCpsYWJlbGVkQ29udHJvbCkgPyBkb3duY2FzdDxIVE1MRm9ybUNvbnRyb2xF
bGVtZW50PigqbGFiZWxlZENvbnRyb2wpLmZvcm0oKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIGRv
d25jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KCpjb250cm9sKS5mb3JtKCk7CiB9CiAKIHZv
aWQgSFRNTExhYmVsRWxlbWVudDo6c2V0QWN0aXZlKGJvb2wgZG93biwgYm9vbCBwYXVzZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKaW5kZXggMTQwZDk4OTVkMWY0MGQ4YTJk
MzZmNTdlMTM1NGFkYWViMjQ1ZjE5ZS4uYTNkMTQyMTA4YjQyNmQ2YWRlNDNiZTY5MTJiZjZjNWJj
MDE0NThlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKQEAgLTIsNyAr
Miw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykK
ICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykK
ICAqICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAq
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDggKzMxLDgg
QEAgY2xhc3MgSFRNTExhYmVsRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxIVE1MTGFiZWxFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBMYWJlbGFibGVF
bGVtZW50KiBjb250cm9sKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgSFRNTEZvcm1FbGVtZW50KiBm
b3JtKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgTGFiZWxhYmxlRWxlbWVudCogY29udHJvbCgpIGNv
bnN0OworICAgIFdFQkNPUkVfRVhQT1JUIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IGZp
bmFsOwogCiAgICAgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIGZpbmFsOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwCmluZGV4IDA0ODEwNjEx
ZTFkYTJjZmQzOTc4Y2ZiYTlmOWYyOTMwNTliZDQ1Y2UuLjA5MGUwYzcyZDliNmIzNWM1M2Y0Mjc4
MTQ1YjYxOWZlNDdmODJjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExl
Z2VuZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1l
bnQuY3BwCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwg
KGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtv
aXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVs
bGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA2IEFs
ZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zMSwxMyAr
MzEsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwotCi0KIGlubGluZSBIVE1MTGVnZW5kRWxlbWVudDo6SFRNTExlZ2VuZEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogSFRN
TEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7Ci0gICAgQVNTRVJUKGhhc1RhZ05hbWUobGVn
ZW5kVGFnKSk7CisgICAgQVNTRVJUKGhhc1RhZ05hbWUoSFRNTE5hbWVzOjpsZWdlbmRUYWcpKTsK
IH0KIAogUmVmPEhUTUxMZWdlbmRFbGVtZW50PiBIVE1MTGVnZW5kRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTU5LDcg
KzU2LDYgQEAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogSFRNTExlZ2VuZEVsZW1lbnQ6OmFzc29j
aWF0ZWRDb250cm9sKCkKIAogdm9pZCBIVE1MTGVnZW5kRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0
b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKLSAgICAv
LyBUbyBtYXRjaCBvdGhlciBicm93c2VycycgYmVoYXZpb3IsIG5ldmVyIHJlc3RvcmUgcHJldmlv
dXMgc2VsZWN0aW9uLgogICAgIGlmIChkb2N1bWVudCgpLmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgp
KSB7CiAgICAgICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKCk7CiAgICAgICAgIGlmIChpc0ZvY3VzYWJsZSgpKSB7CkBAIC02NywyNSArNjMsMjYgQEAg
dm9pZCBIVE1MTGVnZW5kRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rp
b24sIEZvY3VzRGlyZWN0aW9uIGRpcmUKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgIH0KKworICAgIC8vIFRvIG1hdGNoIG90aGVyIGJyb3dzZXJzJyBiZWhhdmlvciwgbmV2ZXIg
cmVzdG9yZSBwcmV2aW91cyBzZWxlY3Rpb24uCiAgICAgaWYgKGF1dG8qIGNvbnRyb2wgPSBhc3Nv
Y2lhdGVkQ29udHJvbCgpKQogICAgICAgICBjb250cm9sLT5mb2N1cyhmYWxzZSwgZGlyZWN0aW9u
KTsKIH0KIAogdm9pZCBIVE1MTGVnZW5kRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2Vu
ZE1vdXNlRXZlbnRzKQogewotICAgIGlmIChIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBjb250cm9s
ID0gYXNzb2NpYXRlZENvbnRyb2woKSkKKyAgICBpZiAoYXV0byogY29udHJvbCA9IGFzc29jaWF0
ZWRDb250cm9sKCkpCiAgICAgICAgIGNvbnRyb2wtPmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VF
dmVudHMpOwogfQogCi1IVE1MRm9ybUVsZW1lbnQqIEhUTUxMZWdlbmRFbGVtZW50Ojp2aXJ0dWFs
Rm9ybSgpIGNvbnN0CitIVE1MRm9ybUVsZW1lbnQqIEhUTUxMZWdlbmRFbGVtZW50Ojpmb3JtKCkg
Y29uc3QKIHsKICAgICAvLyBBY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmljYXRpb24sIElmIHRoZSBs
ZWdlbmQgaGFzIGEgZmllbGRzZXQgZWxlbWVudCBhcwogICAgIC8vIGl0cyBwYXJlbnQsIHRoZW4g
dGhlIGZvcm0gYXR0cmlidXRlIG11c3QgcmV0dXJuIHRoZSBzYW1lIHZhbHVlIGFzIHRoZQogICAg
IC8vIGZvcm0gYXR0cmlidXRlIG9uIHRoYXQgZmllbGRzZXQgZWxlbWVudC4gT3RoZXJ3aXNlLCBp
dCBtdXN0IHJldHVybiBudWxsLgotICAgIENvbnRhaW5lck5vZGUqIGZpZWxkc2V0ID0gcGFyZW50
Tm9kZSgpOworICAgIGF1dG8qIGZpZWxkc2V0ID0gcGFyZW50Tm9kZSgpOwogICAgIGlmICghaXM8
SFRNTEZpZWxkU2V0RWxlbWVudD4oZmllbGRzZXQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LQogICAgIHJldHVybiBkb3duY2FzdDxIVE1MRmllbGRTZXRFbGVtZW50PigqZmllbGRzZXQpLmZv
cm0oKTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2Vu
ZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaAppbmRl
eCAwMzhjYzlhMTc2ZWJjMGQ3MDYyZTYwZTVjOTU5YTE1ZTgzODQ2ZjJmLi4xNDRlMTlmNjJiODFk
OTMyYjhhMTlhYmM2YzhmZmYxOWYxMDU1OTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMZWdlbmRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVn
ZW5kRWxlbWVudC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMg
S25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlz
dG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVy
IChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0
LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0zMywxNSArMzMsMTYgQEAgY2xhc3MgSFRNTExlZ2VuZEVsZW1lbnQgZmluYWwgOiBwdWJs
aWMgSFRNTEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8SFRNTExlZ2VuZEVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAorICAgIFdFQkNP
UkVfRVhQT1JUIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNvbnN0IGZpbmFsOworCiBwcml2YXRl
OgogICAgIEhUTUxMZWdlbmRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCi0gICAgLy8gQ29udHJvbCBpbiB0aGUgbGVnZW5kJ3MgZmllbGRzZXQgdGhhdCBnZXRzIGZv
Y3VzIGFuZCBhY2Nlc3Mga2V5LgorICAgIC8vIENvbnRyb2wgaW4gdGhlIGxlZ2VuZCdzIGZpZWxk
IHNldCB0aGF0IGdldHMgZm9jdXMgYW5kIGFjY2VzcyBrZXkuCiAgICAgSFRNTEZvcm1Db250cm9s
RWxlbWVudCogYXNzb2NpYXRlZENvbnRyb2woKTsKIAogICAgIHZvaWQgYWNjZXNzS2V5QWN0aW9u
KGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsKICAgICB2b2lkIGZvY3VzKGJvb2wgcmVzdG9y
ZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbikgZmluYWw7Ci0gICAgSFRNTEZvcm1F
bGVtZW50KiB2aXJ0dWFsRm9ybSgpIGNvbnN0IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggY2Q0
YjVhMjc2YzIwYTM4Y2U5Njc2NTBiYTliYWQ5YjdlNDY4YjVmNi4uNWUyMWI4M2M2ODdhZDNmYjUw
NzY0MDYwNGYwNmMyNTQyODhhZmRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNy0yMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjQsMTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKIAogI2lmIEVOQUJMRShWSURFTykKIAot
I2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKLQogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmgiCiAjaW5jbHVk
ZSAiQXR0cmlidXRlLmgiCkBAIC0yNjksMjIgKzI2OCwyMyBAQCBzdGF0aWMgdm9pZCByZW1vdmVF
bGVtZW50RnJvbURvY3VtZW50TWFwKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQsIERvY3VtZW50
JiBkbwogfQogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorCiBjbGFzcyBUcmFja0Rpc3BsYXlV
cGRhdGVTY29wZSB7CiBwdWJsaWM6Ci0gICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUoSFRNTE1l
ZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQorICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlKEhU
TUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpCisgICAgICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCiAg
ICAgewotICAgICAgICBtX21lZGlhRWxlbWVudCA9IG1lZGlhRWxlbWVudDsKLSAgICAgICAgbV9t
ZWRpYUVsZW1lbnQtPmJlZ2luSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpOwor
ICAgICAgICBtX2VsZW1lbnQuYmVnaW5JZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0ZVJlcXVlc3Rz
KCk7CiAgICAgfQogICAgIH5UcmFja0Rpc3BsYXlVcGRhdGVTY29wZSgpCiAgICAgewotICAgICAg
ICBBU1NFUlQobV9tZWRpYUVsZW1lbnQpOwotICAgICAgICBtX21lZGlhRWxlbWVudC0+ZW5kSWdu
b3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpOworICAgICAgICBtX2VsZW1lbnQuZW5k
SWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpOwogICAgIH0KICAgICAKIHByaXZh
dGU6Ci0gICAgSFRNTE1lZGlhRWxlbWVudCogbV9tZWRpYUVsZW1lbnQ7CisgICAgSFRNTE1lZGlh
RWxlbWVudCYgbV9lbGVtZW50OwogfTsKKwogI2VuZGlmCiAKIHN0cnVjdCBIVE1MTWVkaWFFbGVt
ZW50OjpUcmFja0dyb3VwIHsKQEAgLTE1NTQsNyArMTU1NCw3IEBAIHN0YXRpYyBib29sIGV2ZW50
VGltZUN1ZUNvbXBhcmUoY29uc3Qgc3RkOjpwYWlyPE1lZGlhVGltZSwgVGV4dFRyYWNrQ3VlKj4m
IGEsIGNvCiAgICAgLy8gMTIgLSBGdXJ0aGVyIHNvcnQgdGFza3MgaW4gZXZlbnRzIHRoYXQgaGF2
ZSB0aGUgc2FtZSB0aW1lIGJ5IHRoZQogICAgIC8vIHJlbGF0aXZlIHRleHQgdHJhY2sgY3VlIG9y
ZGVyIG9mIHRoZSB0ZXh0IHRyYWNrIGN1ZXMgYXNzb2NpYXRlZAogICAgIC8vIHdpdGggdGhlc2Ug
dGFza3MuCi0gICAgcmV0dXJuIGEuc2Vjb25kLT5jdWVJbmRleCgpIC0gYi5zZWNvbmQtPmN1ZUlu
ZGV4KCkgPCAwOworICAgIHJldHVybiBhLnNlY29uZC0+aXNPcmRlcmVkQmVmb3JlKGIuc2Vjb25k
KTsKIH0KIAogc3RhdGljIGJvb2wgY29tcGFyZUN1ZUludGVydmFsKGNvbnN0IEN1ZUludGVydmFs
JiBvbmUsIGNvbnN0IEN1ZUludGVydmFsJiB0d28pCkBAIC0xODE3LDIyICsxODE3LDIxIEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVhZHlTdGF0ZUNoYW5nZWQoVGV4dFRyYWNr
KiB0cmFjaykKICAgICB9CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YXVkaW9UcmFja0Vu
YWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2sqIHRyYWNrKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojph
dWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayYgdHJhY2spCiB7Ci0gICAgQVNTRVJU
KHRyYWNrKTsKLSAgICBpZiAobV9hdWRpb1RyYWNrcyAmJiBtX2F1ZGlvVHJhY2tzLT5jb250YWlu
cygqdHJhY2spKQorICAgIGlmIChtX2F1ZGlvVHJhY2tzICYmIG1fYXVkaW9UcmFja3MtPmNvbnRh
aW5zKHRyYWNrKSkKICAgICAgICAgbV9hdWRpb1RyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVudCgp
OwogICAgIGlmIChTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRp
YSgpKQogICAgICAgICByZW1vdmVCZWhhdmlvcnNSZXN0cmljdGlvbnNBZnRlckZpcnN0VXNlckdl
c3R1cmUoTWVkaWFFbGVtZW50U2Vzc2lvbjo6QWxsUmVzdHJpY3Rpb25zICYgfk1lZGlhRWxlbWVu
dFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcik7CiB9
CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNr
KiB0cmFjaykKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4
dFRyYWNrJiB0cmFjaykKIHsKICAgICBib29sIHRyYWNrSXNMb2FkZWQgPSB0cnVlOwotICAgIGlm
ICh0cmFjay0+dHJhY2tUeXBlKCkgPT0gVGV4dFRyYWNrOjpUcmFja0VsZW1lbnQpIHsKKyAgICBp
ZiAodHJhY2sudHJhY2tUeXBlKCkgPT0gVGV4dFRyYWNrOjpUcmFja0VsZW1lbnQpIHsKICAgICAg
ICAgdHJhY2tJc0xvYWRlZCA9IGZhbHNlOwogICAgICAgICBmb3IgKGF1dG8mIHRyYWNrRWxlbWVu
dCA6IGNoaWxkcmVuT2ZUeXBlPEhUTUxUcmFja0VsZW1lbnQ+KCp0aGlzKSkgewotICAgICAgICAg
ICAgaWYgKCZ0cmFja0VsZW1lbnQudHJhY2soKSA9PSB0cmFjaykgeworICAgICAgICAgICAgaWYg
KCZ0cmFja0VsZW1lbnQudHJhY2soKSA9PSAmdHJhY2spIHsKICAgICAgICAgICAgICAgICBpZiAo
dHJhY2tFbGVtZW50LnJlYWR5U3RhdGUoKSA9PSBIVE1MVHJhY2tFbGVtZW50OjpMT0FESU5HIHx8
IHRyYWNrRWxlbWVudC5yZWFkeVN0YXRlKCkgPT0gSFRNTFRyYWNrRWxlbWVudDo6TE9BREVEKQog
ICAgICAgICAgICAgICAgICAgICB0cmFja0lzTG9hZGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAg
ICBicmVhazsKQEAgLTE4NDUsMzMgKzE4NDQsMzIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0
ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQogICAgICAgICBtX3RleHRUcmFj
a3MgPSBUZXh0VHJhY2tMaXN0OjpjcmVhdGUodGhpcywgQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpOwogICAgIAogICAgIC8vIE1hcmsgdGhpcyB0cmFjayBhcyAiY29u
ZmlndXJlZCIgc28gY29uZmlndXJlVGV4dFRyYWNrcyB3b24ndCBjaGFuZ2UgdGhlIG1vZGUgYWdh
aW4uCi0gICAgdHJhY2stPnNldEhhc0JlZW5Db25maWd1cmVkKHRydWUpOworICAgIHRyYWNrLnNl
dEhhc0JlZW5Db25maWd1cmVkKHRydWUpOwogICAgIAotICAgIGlmICh0cmFjay0+bW9kZSgpICE9
IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQgJiYgdHJhY2tJc0xvYWRlZCkKLSAgICAgICAgdGV4
dFRyYWNrQWRkQ3Vlcyh0cmFjaywgdHJhY2stPmN1ZXMoKSk7CisgICAgaWYgKHRyYWNrLm1vZGUo
KSAhPSBUZXh0VHJhY2s6Ok1vZGU6OkRpc2FibGVkICYmIHRyYWNrSXNMb2FkZWQpCisgICAgICAg
IHRleHRUcmFja0FkZEN1ZXModHJhY2ssICp0cmFjay5jdWVzKCkpOwogCiAgICAgY29uZmlndXJl
VGV4dFRyYWNrRGlzcGxheShBc3N1bWVUZXh0VHJhY2tWaXNpYmlsaXR5Q2hhbmdlZCk7CiAKLSAg
ICBpZiAobV90ZXh0VHJhY2tzICYmIG1fdGV4dFRyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAg
ICBpZiAobV90ZXh0VHJhY2tzICYmIG1fdGV4dFRyYWNrcy0+Y29udGFpbnModHJhY2spKQogICAg
ICAgICBtX3RleHRUcmFja3MtPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAogI2lmIEVOQUJMRShB
VkZfQ0FQVElPTlMpCi0gICAgaWYgKHRyYWNrLT50cmFja1R5cGUoKSA9PSBUZXh0VHJhY2s6OlRy
YWNrRWxlbWVudCAmJiBtX3BsYXllcikKKyAgICBpZiAodHJhY2sudHJhY2tUeXBlKCkgPT0gVGV4
dFRyYWNrOjpUcmFja0VsZW1lbnQgJiYgbV9wbGF5ZXIpCiAgICAgICAgIG1fcGxheWVyLT5ub3Rp
ZnlUcmFja01vZGVDaGFuZ2VkKCk7CiAjZW5kaWYKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50
Ojp2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqIHRyYWNrKQordm9pZCBIVE1M
TWVkaWFFbGVtZW50Ojp2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2smIHRyYWNr
KQogewotICAgIEFTU0VSVCh0cmFjayk7Ci0gICAgaWYgKG1fdmlkZW9UcmFja3MgJiYgbV92aWRl
b1RyYWNrcy0+Y29udGFpbnMoKnRyYWNrKSkKKyAgICBpZiAobV92aWRlb1RyYWNrcyAmJiBtX3Zp
ZGVvVHJhY2tzLT5jb250YWlucyh0cmFjaykpCiAgICAgICAgIG1fdmlkZW9UcmFja3MtPnNjaGVk
dWxlQ2hhbmdlRXZlbnQoKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tL
aW5kQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0
VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2smIHRyYWNrKQogewotICAgIGlmICh0cmFjay0+a2lu
ZCgpICE9IFRleHRUcmFjazo6S2luZDo6Q2FwdGlvbnMgJiYgdHJhY2stPmtpbmQoKSAhPSBUZXh0
VHJhY2s6OktpbmQ6OlN1YnRpdGxlcyAmJiB0cmFjay0+bW9kZSgpID09IFRleHRUcmFjazo6TW9k
ZTo6U2hvd2luZykKLSAgICAgICAgdHJhY2stPnNldE1vZGUoVGV4dFRyYWNrOjpNb2RlOjpIaWRk
ZW4pOworICAgIGlmICh0cmFjay5raW5kKCkgIT0gVGV4dFRyYWNrOjpLaW5kOjpDYXB0aW9ucyAm
JiB0cmFjay5raW5kKCkgIT0gVGV4dFRyYWNrOjpLaW5kOjpTdWJ0aXRsZXMgJiYgdHJhY2subW9k
ZSgpID09IFRleHRUcmFjazo6TW9kZTo6U2hvd2luZykKKyAgICAgICAgdHJhY2suc2V0TW9kZShU
ZXh0VHJhY2s6Ok1vZGU6OkhpZGRlbik7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YmVn
aW5JZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0ZVJlcXVlc3RzKCkKQEAgLTE4ODcsMjYgKzE4ODUs
MjggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjplbmRJZ25vcmluZ1RyYWNrRGlzcGxheVVwZGF0
ZVJlcXVlc3RzKCkKICAgICAgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcyhjdXJyZW50TWVk
aWFUaW1lKCkpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMo
VGV4dFRyYWNrKiB0cmFjaywgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCogY3VlcykgCit2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiB0cmFjaywgY29uc3Qg
VGV4dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAgICBpZiAodHJhY2stPm1vZGUoKSA9PSBUZXh0
VHJhY2s6Ok1vZGU6OkRpc2FibGVkKQorICAgIGlmICh0cmFjay5tb2RlKCkgPT0gVGV4dFRyYWNr
OjpNb2RlOjpEaXNhYmxlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVHJhY2tEaXNwbGF5VXBk
YXRlU2NvcGUgc2NvcGUodGhpcyk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjdWVzLT5s
ZW5ndGgoKTsgKytpKQotICAgICAgICB0ZXh0VHJhY2tBZGRDdWUodHJhY2ssICpjdWVzLT5pdGVt
KGkpKTsKKyAgICBUcmFja0Rpc3BsYXlVcGRhdGVTY29wZSBzY29wZSB7ICp0aGlzIH07CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGN1ZXMubGVuZ3RoKCk7ICsraSkKKyAgICAgICAgdGV4
dFRyYWNrQWRkQ3VlKHRyYWNrLCAqY3Vlcy5pdGVtKGkpKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1
ZUxpc3QqIGN1ZXMpCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMo
VGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYgY3VlcykKIHsKLSAgICBUcmFja0Rp
c3BsYXlVcGRhdGVTY29wZSBzY29wZSh0aGlzKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGN1ZXMtPmxlbmd0aCgpOyArK2kpCi0gICAgICAgIHRleHRUcmFja1JlbW92ZUN1ZShjdWVzLT5p
dGVtKGkpLT50cmFjaygpLCAqY3Vlcy0+aXRlbShpKSk7CisgICAgVHJhY2tEaXNwbGF5VXBkYXRl
U2NvcGUgc2NvcGUgeyAqdGhpcyB9OworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjdWVz
Lmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgYXV0byYgY3VlID0gKmN1ZXMuaXRlbShpKTsKKyAg
ICAgICAgdGV4dFRyYWNrUmVtb3ZlQ3VlKCpjdWUudHJhY2soKSwgY3VlKTsKKyAgICB9CiB9CiAK
LXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayogdHJhY2ss
IFRleHRUcmFja0N1ZSYgY3VlKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tBZGRD
dWUoVGV4dFRyYWNrJiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCiB7Ci0gICAgaWYgKHRyYWNr
LT5tb2RlKCkgPT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCkKKyAgICBpZiAodHJhY2subW9k
ZSgpID09IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAogICAg
IC8vIE5lZ2F0aXZlIGR1cmF0aW9uIGN1ZXMgbmVlZCBiZSB0cmVhdGVkIGluIHRoZSBpbnRlcnZh
bCB0cmVlIGFzCkBAIC0xOTE5LDcgKzE5MTksNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnRl
eHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKICAgICB1
cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKGN1cnJlbnRNZWRpYVRpbWUoKSk7CiB9CiAKLXZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6dGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayosIFRleHRUcmFj
a0N1ZSYgY3VlKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4
dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJiBjdWUpCiB7CiAgICAgLy8gTmVnYXRpdmUgZHVyYXRpb24g
Y3VlcyBuZWVkIHRvIGJlIHRyZWF0ZWQgaW4gdGhlIGludGVydmFsIHRyZWUgYXMKICAgICAvLyB6
ZXJvLWxlbmd0aCBjdWVzLgpAQCAtMzIxMiw2ICszMjEyLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjpwYXVzZUludGVybmFsKCkKIH0KIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCisKIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6ZGV0YWNoTWVkaWFTb3VyY2UoKQogewogICAgIGlmICghbV9t
ZWRpYVNvdXJjZSkKQEAgLTMyMjAsNiArMzIyMSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
ZGV0YWNoTWVkaWFTb3VyY2UoKQogICAgIG1fbWVkaWFTb3VyY2UtPmRldGFjaEZyb21FbGVtZW50
KCp0aGlzKTsKICAgICBtX21lZGlhU291cmNlID0gbnVsbHB0cjsKIH0KKwogI2VuZGlmCiAKIGJv
b2wgSFRNTE1lZGlhRWxlbWVudDo6bG9vcCgpIGNvbnN0CkBAIC0zNTA4LDE0ICszNTEwLDE0IEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKEF1ZGlv
VHJhY2tQcml2YXRlJiB0cmFjaykKICAgICBpZiAoaXNQbGF5aW5nKCkgJiYgIW1fbWVkaWFTZXNz
aW9uLT5wbGF5YmFja1Blcm1pdHRlZCgqdGhpcykpCiAgICAgICAgIHBhdXNlSW50ZXJuYWwoKTsK
IAotICAgIGFkZEF1ZGlvVHJhY2soQXVkaW9UcmFjazo6Y3JlYXRlKHRoaXMsICZ0cmFjaykpOwor
ICAgIGFkZEF1ZGlvVHJhY2soQXVkaW9UcmFjazo6Y3JlYXRlKCp0aGlzLCB0cmFjaykpOwogfQog
CiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkQWRkVGV4dFRyYWNrKEluYmFu
ZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrKQogewogICAgIC8vIDQuOC4xMC4xMi4yIFNvdXJjaW5n
IGluLWJhbmQgdGV4dCB0cmFja3MKICAgICAvLyAxLiBBc3NvY2lhdGUgdGhlIHJlbGV2YW50IGRh
dGEgd2l0aCBhIG5ldyB0ZXh0IHRyYWNrIGFuZCBpdHMgY29ycmVzcG9uZGluZyBuZXcgVGV4dFRy
YWNrIG9iamVjdC4KLSAgICBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrPiB0ZXh0VHJhY2sgPSBJbmJh
bmRUZXh0VHJhY2s6OmNyZWF0ZShBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgdGhpcywgJnRyYWNrKTsKKyAgICBhdXRvIHRleHRUcmFjayA9IEluYmFuZFRleHRUcmFj
azo6Y3JlYXRlKCpBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRo
aXMsIHRyYWNrKTsKICAgICB0ZXh0VHJhY2stPnNldE1lZGlhRWxlbWVudCh0aGlzKTsKICAgICAK
ICAgICAvLyAyLiBTZXQgdGhlIG5ldyB0ZXh0IHRyYWNrJ3Mga2luZCwgbGFiZWwsIGFuZCBsYW5n
dWFnZSBiYXNlZCBvbiB0aGUgc2VtYW50aWNzIG9mIHRoZSByZWxldmFudCBkYXRhLApAQCAtMzU0
MSwxMiArMzU0MywxMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkQWRk
VGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrKQogICAgIC8vIDkuIEZpcmUg
YW4gZXZlbnQgd2l0aCB0aGUgbmFtZSBhZGR0cmFjaywgdGhhdCBkb2VzIG5vdCBidWJibGUgYW5k
IGlzIG5vdCBjYW5jZWxhYmxlLCBhbmQgdGhhdCB1c2VzIHRoZSBUcmFja0V2ZW50CiAgICAgLy8g
aW50ZXJmYWNlLCB3aXRoIHRoZSB0cmFjayBhdHRyaWJ1dGUgaW5pdGlhbGl6ZWQgdG8gdGhlIHRl
eHQgdHJhY2sncyBUZXh0VHJhY2sgb2JqZWN0LCBhdCB0aGUgbWVkaWEgZWxlbWVudCdzCiAgICAg
Ly8gdGV4dFRyYWNrcyBhdHRyaWJ1dGUncyBUZXh0VHJhY2tMaXN0IG9iamVjdC4KLSAgICBhZGRU
ZXh0VHJhY2sodGV4dFRyYWNrLnJlbGVhc2VOb25OdWxsKCkpOworICAgIGFkZFRleHRUcmFjayhX
VEZNb3ZlKHRleHRUcmFjaykpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxh
eWVyRGlkQWRkVmlkZW9UcmFjayhWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2spCiB7Ci0gICAgYWRk
VmlkZW9UcmFjayhWaWRlb1RyYWNrOjpjcmVhdGUodGhpcywgJnRyYWNrKSk7CisgICAgYWRkVmlk
ZW9UcmFjayhWaWRlb1RyYWNrOjpjcmVhdGUoKnRoaXMsIHRyYWNrKSk7CiB9CiAKIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRSZW1vdmVBdWRpb1RyYWNrKEF1ZGlvVHJhY2tQ
cml2YXRlJiB0cmFjaykKQEAgLTM2MDMsOSArMzYwNSw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6cmVtb3ZlQXVkaW9UcmFjayhBdWRpb1RyYWNrJiB0cmFjaykKIAogdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpyZW1vdmVUZXh0VHJhY2soVGV4dFRyYWNrJiB0cmFjaywgYm9vbCBzY2hlZHVsZUV2
ZW50KQogewotICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlKHRoaXMpOwotICAgIGlm
IChUZXh0VHJhY2tDdWVMaXN0KiBjdWVzID0gdHJhY2suY3VlcygpKQotICAgICAgICB0ZXh0VHJh
Y2tSZW1vdmVDdWVzKCZ0cmFjaywgY3Vlcyk7CisgICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUg
c2NvcGUgeyAqdGhpcyB9OworICAgIGlmIChhdXRvKiBjdWVzID0gdHJhY2suY3VlcygpKQorICAg
ICAgICB0ZXh0VHJhY2tSZW1vdmVDdWVzKHRyYWNrLCAqY3Vlcyk7CiAgICAgdHJhY2suY2xlYXJD
bGllbnQoKTsKICAgICBpZiAobV90ZXh0VHJhY2tzKQogICAgICAgICBtX3RleHRUcmFja3MtPnJl
bW92ZSh0cmFjaywgc2NoZWR1bGVFdmVudCk7CkBAIC0zNjI1LDcgKzM2MjcsNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OmZvcmdldFJlc291cmNlU3BlY2lmaWNUcmFja3MoKQogICAgICAgICBy
ZW1vdmVBdWRpb1RyYWNrKCptX2F1ZGlvVHJhY2tzLT5sYXN0SXRlbSgpKTsKIAogICAgIGlmICht
X3RleHRUcmFja3MpIHsKLSAgICAgICAgVHJhY2tEaXNwbGF5VXBkYXRlU2NvcGUgc2NvcGUodGhp
cyk7CisgICAgICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlIHsgKnRoaXMgfTsKICAg
ICAgICAgZm9yIChpbnQgaSA9IG1fdGV4dFRyYWNrcy0+bGVuZ3RoKCkgLSAxOyBpID49IDA7IC0t
aSkgewogICAgICAgICAgICAgYXV0byYgdHJhY2sgPSAqbV90ZXh0VHJhY2tzLT5pdGVtKGkpOwog
ICAgICAgICAgICAgaWYgKHRyYWNrLnRyYWNrVHlwZSgpID09IFRleHRUcmFjazo6SW5CYW5kKQpA
QCAtNjA3OCwxMiArNjA4MCwxMiBAQCBNZWRpYUNvbnRyb2xsZXIqIEhUTUxNZWRpYUVsZW1lbnQ6
OmNvbnRyb2xsZXIoKSBjb25zdAogICAgIHJldHVybiBtX21lZGlhQ29udHJvbGxlci5nZXQoKTsK
IH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyKFBhc3NSZWZQdHI8TWVk
aWFDb250cm9sbGVyPiBjb250cm9sbGVyKQordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250
cm9sbGVyKFJlZlB0cjxNZWRpYUNvbnRyb2xsZXI+JiYgY29udHJvbGxlcikKIHsKICAgICBpZiAo
bV9tZWRpYUNvbnRyb2xsZXIpCiAgICAgICAgIG1fbWVkaWFDb250cm9sbGVyLT5yZW1vdmVNZWRp
YUVsZW1lbnQoKnRoaXMpOwogCi0gICAgbV9tZWRpYUNvbnRyb2xsZXIgPSBjb250cm9sbGVyOwor
ICAgIG1fbWVkaWFDb250cm9sbGVyID0gV1RGTW92ZShjb250cm9sbGVyKTsKIAogICAgIGlmICht
X21lZGlhQ29udHJvbGxlcikKICAgICAgICAgbV9tZWRpYUNvbnRyb2xsZXItPmFkZE1lZGlhRWxl
bWVudCgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDAy
M2NjMzM2MjgzM2ZhODA2MTk5YTQxMzAzYWZmMTkwNWNiZjY1ZGYuLmNhMTg5OGQ2ZTZlMjIxYTFh
YzE1MzVhOTc5MGE1MjFjYzI5YTJlMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNy0yMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjcsMTAgKzI3LDEwIEBACiAKICNpZiBFTkFCTEUoVklERU8pCiAKLSNpbmNs
dWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1
ZGUgIkdlbmVyaWNFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5oIgor
I2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudEVudW1z
LmgiCiAjaW5jbHVkZSAiTWVkaWFDYW5TdGFydExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiTWVkaWFD
b250cm9sbGVySW50ZXJmYWNlLmgiCkBAIC02OSw5ICs2OSw3IEBAIGNsYXNzIE1lZGlhQ29udHJv
bHM7CiBjbGFzcyBNZWRpYUNvbnRyb2xzSG9zdDsKIGNsYXNzIE1lZGlhRWxlbWVudEF1ZGlvU291
cmNlTm9kZTsKIGNsYXNzIE1lZGlhRXJyb3I7Ci0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkK
IGNsYXNzIE1lZGlhS2V5czsKLSNlbmRpZgogY2xhc3MgTWVkaWFQbGF5ZXI7CiBjbGFzcyBNZWRp
YVNlc3Npb247CiBjbGFzcyBNZWRpYVNvdXJjZTsKQEAgLTgxLDcgKzc5LDYgQEAgY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFNvdXJjZUJ1ZmZlcjsKIGNsYXNzIFRleHRUcmFj
a0xpc3Q7CiBjbGFzcyBUaW1lUmFuZ2VzOwotY2xhc3MgVVJMOwogY2xhc3MgVmlkZW9QbGF5YmFj
a1F1YWxpdHk7CiBjbGFzcyBWaWRlb1RyYWNrTGlzdDsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRl
OwpAQCAtMzMxLDIwICszMjgsMjAgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlVGV4dFRyYWNr
RGlzcGxheSgpOwogCiAgICAgLy8gQXVkaW9UcmFja0NsaWVudAotICAgIHZvaWQgYXVkaW9UcmFj
a0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2sqKSBvdmVycmlkZTsKKyAgICB2b2lkIGF1ZGlvVHJh
Y2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrJikgZmluYWw7CiAKICAgICB2b2lkIHRleHRUcmFj
a1JlYWR5U3RhdGVDaGFuZ2VkKFRleHRUcmFjayopOwogCiAgICAgLy8gVGV4dFRyYWNrQ2xpZW50
Ci0gICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChUZXh0VHJhY2sqKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayopIG92ZXJyaWRlOwotICAgIHZv
aWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0Kikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWVzKFRleHRUcmFjayosIGNvbnN0
IFRleHRUcmFja0N1ZUxpc3QqKSBvdmVycmlkZTsKLSAgICB2b2lkIHRleHRUcmFja0FkZEN1ZShU
ZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlkZTsKLSAgICB2b2lkIHRleHRUcmFja1Jl
bW92ZUN1ZShUZXh0VHJhY2sqLCBUZXh0VHJhY2tDdWUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRl
eHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayYpIG92ZXJyaWRlOworICAgIHZvaWQgdGV4dFRy
YWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrJikgb3ZlcnJpZGU7CisgICAgdm9pZCB0ZXh0VHJhY2tB
ZGRDdWVzKFRleHRUcmFjayYsIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3Vl
TGlzdCYpIG92ZXJyaWRlOworICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYsIFRl
eHRUcmFja0N1ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRU
cmFjayYsIFRleHRUcmFja0N1ZSYpIG92ZXJyaWRlOwogCiAgICAgLy8gVmlkZW9UcmFja0NsaWVu
dAotICAgIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrKikgb3ZlcnJp
ZGU7CisgICAgdm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2smKSBmaW5h
bDsKIAogICAgIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0Owog
ICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24qKTsKQEAgLTQyMiw3ICs0MTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNZWRpYUdyb3Vw
KGNvbnN0IFN0cmluZyYpOwogCiAgICAgTWVkaWFDb250cm9sbGVyKiBjb250cm9sbGVyKCkgY29u
c3Q7Ci0gICAgdm9pZCBzZXRDb250cm9sbGVyKFBhc3NSZWZQdHI8TWVkaWFDb250cm9sbGVyPik7
CisgICAgdm9pZCBzZXRDb250cm9sbGVyKFJlZlB0cjxNZWRpYUNvbnRyb2xsZXI+JiYpOwogCiAg
ICAgdm9pZCBlbnRlcmVkT3JFeGl0ZWRGdWxsc2NyZWVuKCkgeyBjb25maWd1cmVNZWRpYUNvbnRy
b2xzKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAppbmRl
eCA4OTBhYTZhZThjOTdmNTFkODFlYzc2Yzg3NjhiN2MzNjAzNTJhYzkyLi41M2NkY2Q2NTUzY2Ew
YjE1MDBmY2VmMDlmZmVjYjA5NWVjNGEzZDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
YmplY3RFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBM
YXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtv
aXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAwIFN0ZWZhbiBT
Y2hpbWFuc2tpICgxU3RlaW5AZ214LmRlKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC01MTksMTEgKzUxOSw2IEBAIGJvb2wg
SFRNTE9iamVjdEVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYgZW5jb2Rpbmcs
IGJvb2wpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUhUTUxGb3JtRWxlbWVudCogSFRNTE9iamVj
dEVsZW1lbnQ6OnZpcnR1YWxGb3JtKCkgY29uc3QKLXsKLSAgICByZXR1cm4gRm9ybUFzc29jaWF0
ZWRFbGVtZW50Ojpmb3JtKCk7Ci19Ci0KIGJvb2wgSFRNTE9iamVjdEVsZW1lbnQ6OmNhbkNvbnRh
aW5SYW5nZUVuZFBvaW50KCkgY29uc3QKIHsKICAgICAvLyBDYWxsIHRocm91Z2ggdG8gSFRNTEVs
ZW1lbnQgYmVjYXVzZSB3ZSBuZWVkIHRvIHNraXAgSFRNTFBsdWdJbkVsZW1lbnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAppbmRleCBlM2M1NWU0ZjA1NTFlNmM2ZjU5ZGY0
Nzc1NzhmZjk2ODIyZGFmZWQ5Li45ZWE4OTNiMDFkNGMwMjZlZTE1N2EyMzhhYjU2NzE0YTU0OTdl
NjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCkBAIC0xLDcgKzEs
NyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3Jn
KQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3Jn
KQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNTQsNyAr
NTQsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cmVmOwog
ICAgIHVzaW5nIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmRlcmVmOwogCi0gICAgdXNpbmcgRm9y
bUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtOworICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybSgpOyB9CiAKIHBy
aXZhdGU6CiAgICAgSFRNTE9iamVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50JiwgSFRNTEZvcm1FbGVtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwpAQCAtOTEsNyAr
OTEsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKSBm
aW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJlZkZvcm1Bc3NvY2lhdGVkRWxlbWVudCgpIGZp
bmFsIHsgZGVyZWYoKTsgfQotICAgIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25z
dCBmaW5hbDsKIAogICAgIEZvcm1OYW1lZEl0ZW0qIGFzRm9ybU5hbWVkSXRlbSgpIGZpbmFsIHsg
cmV0dXJuIHRoaXM7IH0KICAgICBIVE1MT2JqZWN0RWxlbWVudCYgYXNIVE1MRWxlbWVudCgpIGZp
bmFsIHsgcmV0dXJuICp0aGlzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPcHRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1l
bnQuY3BwCmluZGV4IDlhMzA1ZmYxZjcyNjAyMmI1ZjNmNzIwMzI3OGMwNjZiZDQxZjU5ZmQuLjhm
YmU1MWVkYjE3N2EwYzI3MTNiNjAxY2U4MzY4MGNlMmVmZWRkNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBAIC0zLDcgKzMsNyBAQAogICogICAgICAgICAg
IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAg
IChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQogICogICAgICAgICAgIChD
KSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKLSAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiwgMjAxMCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC0zMzQsNyArMzM0LDcgQEAgU3RyaW5nIEhUTUxP
cHRpb25FbGVtZW50Ojpjb2xsZWN0T3B0aW9uSW5uZXJUZXh0KCkgY29uc3QKICAgICAgICAgaWYg
KGlzPFRleHQ+KCpub2RlKSkKICAgICAgICAgICAgIHRleHQuYXBwZW5kKG5vZGUtPm5vZGVWYWx1
ZSgpKTsKICAgICAgICAgLy8gVGV4dCBub2RlcyBpbnNpZGUgc2NyaXB0IGVsZW1lbnRzIGFyZSBu
b3QgcGFydCBvZiB0aGUgb3B0aW9uIHRleHQuCi0gICAgICAgIGlmIChpczxFbGVtZW50Pigqbm9k
ZSkgJiYgdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShkb3duY2FzdDxFbGVtZW50Pihub2RlKSkp
CisgICAgICAgIGlmIChpczxFbGVtZW50Pigqbm9kZSkgJiYgaXNTY3JpcHRFbGVtZW50KGRvd25j
YXN0PEVsZW1lbnQ+KCpub2RlKSkpCiAgICAgICAgICAgICBub2RlID0gTm9kZVRyYXZlcnNhbDo6
bmV4dFNraXBwaW5nQ2hpbGRyZW4oKm5vZGUsIHRoaXMpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBub2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbm9kZSwgdGhpcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IGE4NjRlODdlYWZkNDI4M2U1NGYx
ZTQwYmZlY2Y5MjI1YTVjYjVkZDYuLmNlNmQzYjY4ZjI2MmNjMmMzMjYyNTUyNTIzMDM0ZmY3MWU2
MDQzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC0x
LDggKzEsOCBAQAotLyoqCisvKgogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtu
b2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZp
c3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgU3RlZmFuIFNjaGltYW5za2kgKDFT
dGVpbkBnbXguZGUpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMTQgQXBw
bGUgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMDgsMjEgKzEwOCwyMCBAQCB2b2lk
IEhUTUxQbHVnSW5FbGVtZW50OjpyZXNldEluc3RhbmNlKCkKICAgICBtX2luc3RhbmNlID0gbnVs
bHB0cjsKIH0KIAotUGFzc1JlZlB0cjxKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZT4gSFRNTFBsdWdJ
bkVsZW1lbnQ6OmdldEluc3RhbmNlKCkKK0pTQzo6QmluZGluZ3M6Okluc3RhbmNlKiBIVE1MUGx1
Z0luRWxlbWVudDo6YmluZGluZ3NJbnN0YW5jZSgpCiB7Ci0gICAgRnJhbWUqIGZyYW1lID0gZG9j
dW1lbnQoKS5mcmFtZSgpOworICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwog
ICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIC8vIElmIHRoZSBob3N0IGR5bmFtaWNhbGx5IHR1cm5zIG9mZiBKYXZhU2NyaXB0
IChvciBKYXZhKSB3ZSB3aWxsIHN0aWxsIHJldHVybgogICAgIC8vIHRoZSBjYWNoZWQgYWxsb2Nh
dGVkIEJpbmRpbmdzOjpJbnN0YW5jZS4gIE5vdCBzdXBwb3J0aW5nIHRoaXMgZWRnZS1jYXNlIGlz
IE9LLgotICAgIGlmIChtX2luc3RhbmNlKQotICAgICAgICByZXR1cm4gbV9pbnN0YW5jZTsKLQot
ICAgIGlmIChXaWRnZXQqIHdpZGdldCA9IHBsdWdpbldpZGdldCgpKQotICAgICAgICBtX2luc3Rh
bmNlID0gZnJhbWUtPnNjcmlwdCgpLmNyZWF0ZVNjcmlwdEluc3RhbmNlRm9yV2lkZ2V0KHdpZGdl
dCk7CiAKLSAgICByZXR1cm4gbV9pbnN0YW5jZTsKKyAgICBpZiAoIW1faW5zdGFuY2UpIHsKKyAg
ICAgICAgaWYgKGF1dG8qIHdpZGdldCA9IHBsdWdpbldpZGdldCgpKQorICAgICAgICAgICAgbV9p
bnN0YW5jZSA9IGZyYW1lLT5zY3JpcHQoKS5jcmVhdGVTY3JpcHRJbnN0YW5jZUZvcldpZGdldCh3
aWRnZXQpOworICAgIH0KKyAgICByZXR1cm4gbV9pbnN0YW5jZS5nZXQoKTsKIH0KIAogYm9vbCBI
VE1MUGx1Z0luRWxlbWVudDo6Z3VhcmRlZERpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KGNvbnN0IFN0
cmluZyYgc291cmNlVVJMKQpAQCAtMTk5LDcgKzE5OCw3IEBAIHZvaWQgSFRNTFBsdWdJbkVsZW1l
bnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKGlzPFJlbmRlclNuYXBzaG90dGVkUGx1Z0luPigqcmVuZGVyZXIpICYmIGRpc3BsYXlT
dGF0ZSgpIDwgUmVzdGFydGluZykgewotICAgICAgICAgICAgZG93bmNhc3Q8UmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW4+KCpyZW5kZXJlcikuaGFuZGxlRXZlbnQoJmV2ZW50KTsKKyAgICAgICAgICAg
IGRvd25jYXN0PFJlbmRlclNuYXBzaG90dGVkUGx1Z0luPigqcmVuZGVyZXIpLmhhbmRsZUV2ZW50
KGV2ZW50KTsKICAgICAgICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6ZGVmYXVsdEV2ZW50
SGFuZGxlcihldmVudCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAppbmRleCA1YjhjNWFkNDI4MmFiZjk1YTA1MjYy
OGIyOGZlOWQ0MDFhOWM3NzgzLi44OTI3MWM0OGIzZGIwZDdiYzI5YjViZTk1NWU1ZWQ0YjBlY2I4
YTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCkBAIC0xLDcgKzEs
NyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3Jn
KQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3Jn
KQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
NDQsNyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0SW5zdGFuY2UoKTsKIAotICAg
IFBhc3NSZWZQdHI8SlNDOjpCaW5kaW5nczo6SW5zdGFuY2U+IGdldEluc3RhbmNlKCk7CisgICAg
SlNDOjpCaW5kaW5nczo6SW5zdGFuY2UqIGJpbmRpbmdzSW5zdGFuY2UoKTsKIAogICAgIGVudW0g
Y2xhc3MgUGx1Z2luTG9hZGluZ1BvbGljeSB7IERvTm90TG9hZCwgTG9hZCB9OwogICAgIFdFQkNP
UkVfRVhQT1JUIFdpZGdldCogcGx1Z2luV2lkZ2V0KFBsdWdpbkxvYWRpbmdQb2xpY3kgPSBQbHVn
aW5Mb2FkaW5nUG9saWN5OjpMb2FkKSBjb25zdDsKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgog
ICAgIH07CiAgICAgRGlzcGxheVN0YXRlIGRpc3BsYXlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGlzcGxheVN0YXRlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldERpc3BsYXlTdGF0ZShEaXNwbGF5
U3RhdGUpOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdl
PikgeyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNuYXBzaG90KEltYWdlKikgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoUGVuZGluZ01vdXNlQ2xpY2soKSB7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNSZXN0YXJ0ZWRQbHVnaW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAppbmRleCBmYTIz
NDdiNjBhOTYyYjYwNWUzZTc5ODY1MGMxMzFhOGIyYjI1YTg4Li4yYTc2MjhhMmNjZDZkMmQyMjRm
NDhkYTM0N2I3YzkxNzJjNWQ3ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA4LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA4LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC0xNzEsNyArMTcxLDcgQEAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhU
TUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHkKIAog
ICAgIGlmIChkaXNwbGF5U3RhdGUoKSA9PSBEaXNwbGF5aW5nU25hcHNob3QpIHsKICAgICAgICAg
YXV0byByZW5kZXJTbmFwc2hvdHRlZFBsdWdJbiA9IGNyZWF0ZVJlbmRlcmVyPFJlbmRlclNuYXBz
aG90dGVkUGx1Z0luPigqdGhpcywgV1RGTW92ZShzdHlsZSkpOwotICAgICAgICByZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbi0+dXBkYXRlU25hcHNob3QobV9zbmFwc2hvdEltYWdlKTsKKyAgICAgICAg
cmVuZGVyU25hcHNob3R0ZWRQbHVnSW4tPnVwZGF0ZVNuYXBzaG90KG1fc25hcHNob3RJbWFnZS5n
ZXQoKSk7CiAgICAgICAgIHJldHVybiBXVEZNb3ZlKHJlbmRlclNuYXBzaG90dGVkUGx1Z0luKTsK
ICAgICB9CiAKQEAgLTMwMSw3ICszMDEsNyBAQCB2b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6
OnN0YXJ0TG9hZGluZ0ltYWdlKCkKICAgICBtX2ltYWdlTG9hZGVyLT51cGRhdGVGcm9tRWxlbWVu
dCgpOwogfQogCi12b2lkIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnVwZGF0ZVNuYXBzaG90KFBh
c3NSZWZQdHI8SW1hZ2U+IGltYWdlKQordm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRh
dGVTbmFwc2hvdChJbWFnZSogaW1hZ2UpCiB7CiAgICAgaWYgKGRpc3BsYXlTdGF0ZSgpID4gRGlz
cGxheWluZ1NuYXBzaG90KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCmluZGV4IGEzZjdlMTA4Y2Y5MmUwNWE5YmI4ZGE0ZGE2
OTJhZjQwMGZkMDZhNDYuLmIxYzc2MjZhM2M0ZTk0YzljZGQwOGQ4ZmZhMmRhMWMzNGYzNWZiNzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTE4LDcgKzExOCw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JikgZmluYWw7
CiAgICAgdm9pZCBkaXNwYXRjaFBlbmRpbmdNb3VzZUNsaWNrKCkgZmluYWw7CiAKLSAgICB2b2lk
IHVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+KSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0
ZVNuYXBzaG90KEltYWdlKikgZmluYWw7CiAKICAgICB2b2lkIHN0YXJ0TG9hZGluZ0ltYWdlKCk7
CiAgICAgdm9pZCB1cGRhdGVXaWRnZXRJZk5lY2Vzc2FyeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTY3JpcHRFbGVtZW50LmNwcAppbmRleCBlZGMyN2I5YTUwMDM5Y2VjMzAxYjZiOGY1Y2My
YmFhMzRmMzgzYzAyLi43YTJiODJkZWM0NGViZDg4YjU2NjE1ZjQ2NTZlZTdmYTU1ODJhN2EzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcApAQCAtMiw3ICsyLDcg
QEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICog
ICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICog
ICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29w
eXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IGYyYmQ1MjVjNzRkZGQzZDdiOGExZmMxZTk2
OTI1MmU4NjNjZGY1NzUuLjMyZDhlZTAzODRjMjE1ZjhjMWI1YzQ5OTdjYzg2ODE4NWJmZjE4MTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTEsNyArMSw3IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAg
KiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTcgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IE5pa29sYXMgWmlt
bWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTQzLDYgKzQzLDkg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q3Jvc3NPcmlnaW4oY29uc3Qg
QXRvbWljU3RyaW5nJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNyb3NzT3JpZ2luKCkg
Y29uc3Q7CiAKKyAgICB1c2luZyBIVE1MRWxlbWVudDo6cmVmOworICAgIHVzaW5nIEhUTUxFbGVt
ZW50OjpkZXJlZjsKKwogcHJpdmF0ZToKICAgICBIVE1MU2NyaXB0RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJvb2wgYWxy
ZWFkeVN0YXJ0ZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDdkYjkxNGY3MDZiM2E2ZmFmOTQzNGE4ZjI0ZWUxMjE4
MTVhNzRkZjIuLmE5YTUzNzRjYzZhNGIxMmE3MGYyYjk4NDYzYjlmOWY4OGM2OTg5NDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
CkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xs
QGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3Rv
QGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtk
ZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA2IEFs
ZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00MjcsNyAr
NDI3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldENvbnRhaW5lckFuZE9mZnNldEZvclJhbmdl
KE5vZGUqIG5vZGUsIGludCBvZmZzZXQsIE5vZGUqJgogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxS
YW5nZT4gSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvbigpIGNvbnN0CitSZWZQ
dHI8UmFuZ2U+IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3Rpb24oKSBjb25zdAog
ewogICAgIGlmICghcmVuZGVyZXIoKSB8fCAhaXNUZXh0Rm9ybUNvbnRyb2woKSB8fCAhaGFzQ2Fj
aGVkU2VsZWN0aW9uKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4IDRhNjNlOTcxYWFi
MWZlYjVkMzQ2ZGM0MjIzMWI2YjEyNjZjMGI2M2YuLjEyOGIwMzE4YjA3ZTZmYjg0ODJlYTZkZGY0
ZTgzZDU2NmY4OGUzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50LmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkg
TGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBL
b2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11
ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAw
NiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC03NCw3ICs3NCw3IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFJhbmdl
VGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQg
ZW5kLCBjb25zdCBTdHJpbmcmIHNlbGVjdGlvbk1vZGUpOwogICAgIHZvaWQgc2V0U2VsZWN0aW9u
UmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgY29uc3Qg
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3RhcnQsIGludCBl
bmQsIFRleHRGaWVsZFNlbGVjdGlvbkRpcmVjdGlvbiA9IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9u
LCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpKTsKLSAgICBQYXNzUmVmUHRyPFJhbmdlPiBzZWxlY3Rpb24oKSBjb25zdDsKKyAgICBSZWZQ
dHI8UmFuZ2U+IHNlbGVjdGlvbigpIGNvbnN0OwogICAgIFN0cmluZyBzZWxlY3RlZFRleHQoKSBj
b25zdDsKIAogICAgIHZvaWQgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCkgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAppbmRleCAwN2Y0MmQ5OWY4
ZDdiNDhhOWJhMjQxYjRjNDcxZDU3OWY1NWU4YmQ1Li42NjhiODEyYjhjZWY1MzE3NzMwOWZjNTgy
ZDhiOTQ2MTczZGFkMzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFj
a0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5j
cHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEzIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTQyLDYgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKIAogI2lmICFMT0dfRElTQUJMRUQKKwogc3RhdGljIFN0cmluZyB1cmxG
b3JMb2dnaW5nVHJhY2soY29uc3QgVVJMJiB1cmwpCiB7CiAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIG1heGltdW1VUkxMZW5ndGhGb3JMb2dnaW5nID0gMTI4OwpAQCAtNTAsNiArNTIsNyBAQCBz
dGF0aWMgU3RyaW5nIHVybEZvckxvZ2dpbmdUcmFjayhjb25zdCBVUkwmIHVybCkKICAgICAgICAg
cmV0dXJuIHVybC5zdHJpbmcoKTsKICAgICByZXR1cm4gdXJsLnN0cmluZygpLnN1YnN0cmluZygw
LCBtYXhpbXVtVVJMTGVuZ3RoRm9yTG9nZ2luZykgKyAiLi4uIjsKIH0KKwogI2VuZGlmCiAgICAg
CiBpbmxpbmUgSFRNTFRyYWNrRWxlbWVudDo6SFRNTFRyYWNrRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC0yNzksNDMgKzI4Miw0MyBA
QCBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxUcmFja0VsZW1lbnQ6Om1lZGlhRWxlbWVudENyb3Nz
T3JpZ2luQXR0cmlidXRlKCkgY29uc3QKICAgICByZXR1cm4gbnVsbEF0b207CiB9CiAKLXZvaWQg
SFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrKiB0cmFjaykK
K3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJiB0
cmFjaykKIHsKLSAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50
KCkpCisgICAgaWYgKGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJl
bnQtPnRleHRUcmFja0tpbmRDaGFuZ2VkKHRyYWNrKTsKIH0KIAotdm9pZCBIVE1MVHJhY2tFbGVt
ZW50Ojp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQordm9pZCBIVE1MVHJh
Y2tFbGVtZW50Ojp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2smIHRyYWNrKQogewogICAg
IC8vIFNpbmNlIHdlJ3ZlIG1vdmVkIHRvIGEgbmV3IHBhcmVudCwgd2UgbWF5IG5vdyBiZSBhYmxl
IHRvIGxvYWQuCiAgICAgaWYgKHJlYWR5U3RhdGUoKSA9PSBIVE1MVHJhY2tFbGVtZW50OjpOT05F
KQogICAgICAgICBzY2hlZHVsZUxvYWQoKTsKIAotICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBw
YXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKKyAgICBpZiAoYXV0byogcGFyZW50ID0gbWVkaWFFbGVt
ZW50KCkpCiAgICAgICAgIHBhcmVudC0+dGV4dFRyYWNrTW9kZUNoYW5nZWQodHJhY2spOwogfQog
Ci12b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrKiB0cmFj
aywgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCogY3VlcykKK3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6
dGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2smIHRyYWNrLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0
JiBjdWVzKQogewotICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBwYXJlbnQgPSBtZWRpYUVsZW1l
bnQoKSkKKyAgICBpZiAoYXV0byogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIHBh
cmVudC0+dGV4dFRyYWNrQWRkQ3Vlcyh0cmFjaywgY3Vlcyk7CiB9CiAgICAgCi12b2lkIEhUTUxU
cmFja0VsZW1lbnQ6OnRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrKiB0cmFjaywgY29uc3Qg
VGV4dFRyYWNrQ3VlTGlzdCogY3VlcykKK3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNr
UmVtb3ZlQ3VlcyhUZXh0VHJhY2smIHRyYWNrLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JiBjdWVz
KQogewotICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBwYXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkK
KyAgICBpZiAoYXV0byogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCiAgICAgICAgIHBhcmVudC0+
dGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0cmFjaywgY3Vlcyk7CiB9CiAgICAgCi12b2lkIEhUTUxUcmFj
a0VsZW1lbnQ6OnRleHRUcmFja0FkZEN1ZShUZXh0VHJhY2sqIHRyYWNrLCBUZXh0VHJhY2tDdWUm
IGN1ZSkKK3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6dGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFjayYg
dHJhY2ssIFRleHRUcmFja0N1ZSYgY3VlKQogewotICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBw
YXJlbnQgPSBtZWRpYUVsZW1lbnQoKSkKKyAgICBpZiAoYXV0byogcGFyZW50ID0gbWVkaWFFbGVt
ZW50KCkpCiAgICAgICAgIHBhcmVudC0+dGV4dFRyYWNrQWRkQ3VlKHRyYWNrLCBjdWUpOwogfQog
ICAgIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50Ojp0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNr
KiB0cmFjaywgVGV4dFRyYWNrQ3VlJiBjdWUpCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnRleHRU
cmFja1JlbW92ZUN1ZShUZXh0VHJhY2smIHRyYWNrLCBUZXh0VHJhY2tDdWUmIGN1ZSkKIHsKLSAg
ICBpZiAoSFRNTE1lZGlhRWxlbWVudCogcGFyZW50ID0gbWVkaWFFbGVtZW50KCkpCisgICAgaWYg
KGF1dG8qIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpKQogICAgICAgICBwYXJlbnQtPnRleHRUcmFj
a1JlbW92ZUN1ZSh0cmFjaywgY3VlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVHJhY2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0Vs
ZW1lbnQuaAppbmRleCA5YjQyNWRjZDg1ZDFlMGQ0ZjM2MGM4NmQyZWE2MmQxOTA4ZTRiN2IwLi4y
MjUxMDI3OWNkZjJiYmUyMTllNTIzYzE3OWY2MjZkMzNkZjc5MGIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUcmFja0VsZW1lbnQuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzQsMTIgKzc1LDEyIEBAIHByaXZhdGU6CiAgICAgSFRN
TE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KCkgY29uc3Q7CiAKICAgICAvLyBUZXh0VHJhY2tD
bGllbnQKLSAgICB2b2lkIHRleHRUcmFja01vZGVDaGFuZ2VkKFRleHRUcmFjayopIGZpbmFsOwot
ICAgIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrKikgZmluYWw7Ci0gICAgdm9p
ZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBm
aW5hbDsKLSAgICB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4
dFRyYWNrQ3VlTGlzdCopIGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrQWRkQ3VlKFRleHRUcmFj
ayosIFRleHRUcmFja0N1ZSYpIGZpbmFsOwotICAgIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRl
eHRUcmFjayosIFRleHRUcmFja0N1ZSYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrTW9kZUNo
YW5nZWQoVGV4dFRyYWNrJikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tLaW5kQ2hhbmdlZChU
ZXh0VHJhY2smKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiwg
Y29uc3QgVGV4dFRyYWNrQ3VlTGlzdCYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrUmVtb3Zl
Q3VlcyhUZXh0VHJhY2smLCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JikgZmluYWw7CisgICAgdm9p
ZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgZmluYWw7CisgICAg
dm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgZmluYWw7
CiAKICAgICBib29sIGNhbkxvYWRVUkwoY29uc3QgVVJMJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmNwcAppbmRleCBmNmE2YmJjNDY0YjlhZmEzOGQ1N2I0ZDFlYzQ3Y2YzY2NhOTI2NmQ0Li4z
YTg2MWFkNjYwNDk1NDFkNjdhMTRjMmNlZmRkNGQxZTU2NTExMzM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuY3BwCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMg
S25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlz
dG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVy
IChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFr
b3YgKGFwQG55cG9wLmNvbSkKICAqIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIChz
YW1Ad2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCwgMjAxMSwgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtNDgyLDExICs0ODIsNiBAQCBib29s
IElucHV0VHlwZTo6c2hvdWxkU3VibWl0SW1wbGljaXRseShFdmVudCYgZXZlbnQpCiAgICAgcmV0
dXJuIGlzPEtleWJvYXJkRXZlbnQ+KGV2ZW50KSAmJiBldmVudC50eXBlKCkgPT0gZXZlbnROYW1l
cygpLmtleXByZXNzRXZlbnQgJiYgZG93bmNhc3Q8S2V5Ym9hcmRFdmVudD4oZXZlbnQpLmNoYXJD
b2RlKCkgPT0gJ1xyJzsKIH0KIAotUGFzc1JlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IElucHV0VHlw
ZTo6Zm9ybUZvclN1Ym1pc3Npb24oKSBjb25zdAotewotICAgIHJldHVybiBlbGVtZW50KCkuZm9y
bSgpOwotfQotCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSW5wdXRUeXBlOjpjcmVhdGVJbnB1
dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUpCiB7CiAgICAgcmV0dXJuIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PihSZW5kZXJFbGVtZW50OjpjcmVhdGVGb3IoZWxlbWVudCgpLCBXVEZNb3Zl
KHN0eWxlKSkpOwpAQCAtNTUxLDcgKzU0Niw3IEBAIENocm9tZSogSW5wdXRUeXBlOjpjaHJvbWUo
KSBjb25zdAogewogICAgIGlmIChQYWdlKiBwYWdlID0gZWxlbWVudCgpLmRvY3VtZW50KCkucGFn
ZSgpKQogICAgICAgICByZXR1cm4gJnBhZ2UtPmNocm9tZSgpOwotICAgIHJldHVybiAwOworICAg
IHJldHVybiBudWxscHRyOwogfQogCiBib29sIElucHV0VHlwZTo6Y2FuU2V0U3RyaW5nVmFsdWUo
KSBjb25zdApAQCAtNjM2LDcgKzYzMSw3IEBAIGJvb2wgSW5wdXRUeXBlOjpjYW5CZVN1Y2Nlc3Nm
dWxTdWJtaXRCdXR0b24oKQogCiBIVE1MRWxlbWVudCogSW5wdXRUeXBlOjpwbGFjZWhvbGRlckVs
ZW1lbnQoKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQog
CiBib29sIElucHV0VHlwZTo6cmVuZGVyZXJJc05lZWRlZCgpCkBAIC02NDYsMTAgKzY0MSwxMCBA
QCBib29sIElucHV0VHlwZTo6cmVuZGVyZXJJc05lZWRlZCgpCiAKIEZpbGVMaXN0KiBJbnB1dFR5
cGU6OmZpbGVzKCkKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAot
dm9pZCBJbnB1dFR5cGU6OnNldEZpbGVzKFBhc3NSZWZQdHI8RmlsZUxpc3Q+KQordm9pZCBJbnB1
dFR5cGU6OnNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4mJikKIHsKIH0KIApAQCAtNzMxLDI1ICs3
MjYsMjkgQEAgU3RyaW5nIElucHV0VHlwZTo6c2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHBy
b3Bvc2VkVmFsdWUpIGNvbnN0CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorCiBib29s
IElucHV0VHlwZTo6cmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBEcmFnRGF0YSYpCiB7CiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCiAjZW5kaWYKIAog
SWNvbiogSW5wdXRUeXBlOjppY29uKCkgY29uc3QKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogI2lmIFBMQVRGT1JN
KElPUykKKwogU3RyaW5nIElucHV0VHlwZTo6ZGlzcGxheVN0cmluZygpIGNvbnN0CiB7CiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQorCiAjZW5kaWYK
IAogYm9vbCBJbnB1dFR5cGU6OnNob3VsZFJlc2V0T25Eb2N1bWVudEFjdGl2YXRpb24oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggYzRiZTczZDQwMDRkNjhkOTEzMGI5YWI5NDZhMTcwMGU3
MDMzZGUyNC4uOThjZmY4OWFhYjhiNTlhYjk1NmU0MzYwMjg1MWMwYTg0YzQ5YmNhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAy
MDExLCAyMDE0LTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CkBAIC0xOTIsNyArMTkyLDYgQEAgcHVibGljOgogICAgIC8vIEhl
bHBlcnMgZm9yIGV2ZW50IGhhbmRsZXJzLgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFN1Ym1p
dEltcGxpY2l0bHkoRXZlbnQmKTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SFRNTEZvcm1FbGVt
ZW50PiBmb3JtRm9yU3VibWlzc2lvbigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBoYXNDdXN0
b21Gb2N1c0xvZ2ljKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2Fi
bGUoS2V5Ym9hcmRFdmVudCYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNh
YmxlKCkgY29uc3Q7CkBAIC0yMzksNyArMjM4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBtYXhSZXN1bHRzQXR0cmlidXRlQ2hhbmdlZCgpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRS
ZXNwZWN0QWxpZ25BdHRyaWJ1dGUoKTsKICAgICB2aXJ0dWFsIEZpbGVMaXN0KiBmaWxlcygpOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0Pik7CisgICAgdmly
dHVhbCB2b2lkIHNldEZpbGVzKFJlZlB0cjxGaWxlTGlzdD4mJik7CiAgICAgdmlydHVhbCBJY29u
KiBpY29uKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFNlbmRDaGFuZ2VFdmVudEFm
dGVyQ2hlY2tlZENoYW5nZWQoKTsKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0VmFsdWUoY29uc3Qg
U3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4IGYzNTFm
OTc5NTE1ZjVjZWM5YTQ5OTRlMGQ3NWQwMWRjNDIxODk2MDUuLmJiMzAwYjBmZmI5ZjNiYzdhNGFj
N2QyZWJhZTRjOTA1YWM2MGQ2ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1
Z2luRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQu
Y3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCwgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTUzLDE1ICs1MywxMyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFBs
dWdpbkRvY3VtZW50UGFyc2VyKERvY3VtZW50JiBkb2N1bWVudCkKICAgICAgICAgOiBSYXdEYXRh
RG9jdW1lbnRQYXJzZXIoZG9jdW1lbnQpCi0gICAgICAgICwgbV9lbWJlZEVsZW1lbnQoMCkKICAg
ICB7CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmRCeXRlcyhEb2N1bWVudFdyaXRlciYsIGNvbnN0
IGNoYXIqLCBzaXplX3QpIG92ZXJyaWRlOwotCisgICAgdm9pZCBhcHBlbmRCeXRlcyhEb2N1bWVu
dFdyaXRlciYsIGNvbnN0IGNoYXIqLCBzaXplX3QpIGZpbmFsOwogICAgIHZvaWQgY3JlYXRlRG9j
dW1lbnRTdHJ1Y3R1cmUoKTsKIAotICAgIEhUTUxFbWJlZEVsZW1lbnQqIG1fZW1iZWRFbGVtZW50
OworICAgIEhUTUxFbWJlZEVsZW1lbnQqIG1fZW1iZWRFbGVtZW50IHsgbnVsbHB0ciB9OwogfTsK
IAogdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnRTdHJ1Y3R1cmUoKQpA
QCAtMTA0LDcgKzEwMiw3IEBAIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3Vt
ZW50U3RydWN0dXJlKCkKICAgICBpZiAoYXV0byogbG9hZGVyID0gZG9jdW1lbnQubG9hZGVyKCkp
CiAgICAgICAgIG1fZW1iZWRFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKHR5cGVBdHRyLCBsb2FkZXItPndyaXRlcigpLm1pbWVUeXBlKCkpOwogCi0gICAgZG9jdW1l
bnQuc2V0UGx1Z2luRWxlbWVudChtX2VtYmVkRWxlbWVudCk7CisgICAgZG9jdW1lbnQuc2V0UGx1
Z2luRWxlbWVudCgqbV9lbWJlZEVsZW1lbnQpOwogCiAgICAgYm9keS0+YXBwZW5kQ2hpbGQoZW1i
ZWRFbGVtZW50KTsKIH0KQEAgLTExNiw3ICsxMTQsNyBAQCB2b2lkIFBsdWdpbkRvY3VtZW50UGFy
c2VyOjphcHBlbmRCeXRlcyhEb2N1bWVudFdyaXRlciYsIGNvbnN0IGNoYXIqLCBzaXplX3QpCiAK
ICAgICBjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpOwogCi0gICAgRnJhbWUqIGZyYW1lID0gZG9j
dW1lbnQoKS0+ZnJhbWUoKTsKKyAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7
CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNDIsNyArMTQwLDYgQEAg
dm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBj
b25zdCBjaGFyKiwgc2l6ZV90KQogCiBQbHVnaW5Eb2N1bWVudDo6UGx1Z2luRG9jdW1lbnQoRnJh
bWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKICAgICA6IEhUTUxEb2N1bWVudChmcmFtZSwgdXJs
LCBQbHVnaW5Eb2N1bWVudENsYXNzKQotICAgICwgbV9zaG91bGRMb2FkUGx1Z2luTWFudWFsbHko
dHJ1ZSkKIHsKICAgICBzZXRDb21wYXRpYmlsaXR5TW9kZShEb2N1bWVudENvbXBhdGliaWxpdHlN
b2RlOjpRdWlya3NNb2RlKTsKICAgICBsb2NrQ29tcGF0aWJpbGl0eU1vZGUoKTsKQEAgLTE1NSwx
NCArMTUyLDE3IEBAIFJlZjxEb2N1bWVudFBhcnNlcj4gUGx1Z2luRG9jdW1lbnQ6OmNyZWF0ZVBh
cnNlcigpCiAKIFdpZGdldCogUGx1Z2luRG9jdW1lbnQ6OnBsdWdpbldpZGdldCgpCiB7Ci0gICAg
aWYgKG1fcGx1Z2luRWxlbWVudCAmJiBtX3BsdWdpbkVsZW1lbnQtPnJlbmRlcmVyKCkpCi0gICAg
ICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJFbWJlZGRlZE9iamVjdD4oKm1fcGx1Z2luRWxlbWVu
dC0+cmVuZGVyZXIoKSkud2lkZ2V0KCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKCFt
X3BsdWdpbkVsZW1lbnQpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGF1dG8qIHJlbmRl
cmVyID0gbV9wbHVnaW5FbGVtZW50LT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyZXIpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJFbWJlZGRl
ZE9iamVjdD4oKm1fcGx1Z2luRWxlbWVudC0+cmVuZGVyZXIoKSkud2lkZ2V0KCk7CiB9CiAKLXZv
aWQgUGx1Z2luRG9jdW1lbnQ6OnNldFBsdWdpbkVsZW1lbnQoUGFzc1JlZlB0cjxIVE1MUGx1Z0lu
RWxlbWVudD4gZWxlbWVudCkKK3ZvaWQgUGx1Z2luRG9jdW1lbnQ6OnNldFBsdWdpbkVsZW1lbnQo
SFRNTFBsdWdJbkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9wbHVnaW5FbGVtZW50ID0gZWxl
bWVudDsKKyAgICBtX3BsdWdpbkVsZW1lbnQgPSAmZWxlbWVudDsKIH0KIAogdm9pZCBQbHVnaW5E
b2N1bWVudDo6ZGV0YWNoRnJvbVBsdWdpbkVsZW1lbnQoKQpAQCAtMTc5LDkgKzE3OSwxMCBAQCB2
b2lkIFBsdWdpbkRvY3VtZW50OjpjYW5jZWxNYW51YWxQbHVnaW5Mb2FkKCkKICAgICBpZiAoIXNo
b3VsZExvYWRQbHVnaW5NYW51YWxseSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBEb2N1bWVu
dExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZSgpLT5sb2FkZXIoKS5hY3RpdmVEb2N1bWVu
dExvYWRlcigpOwotICAgIGRvY3VtZW50TG9hZGVyLT5jYW5jZWxNYWluUmVzb3VyY2VMb2FkKGZy
YW1lKCktPmxvYWRlcigpLmNhbmNlbGxlZEVycm9yKGRvY3VtZW50TG9hZGVyLT5yZXF1ZXN0KCkp
KTsKLSAgICBzZXRTaG91bGRMb2FkUGx1Z2luTWFudWFsbHkoZmFsc2UpOworICAgIGF1dG8mIGZy
YW1lTG9hZGVyID0gZnJhbWUoKS0+bG9hZGVyKCk7CisgICAgYXV0byYgZG9jdW1lbnRMb2FkZXIg
PSAqZnJhbWVMb2FkZXIuYWN0aXZlRG9jdW1lbnRMb2FkZXIoKTsKKyAgICBkb2N1bWVudExvYWRl
ci5jYW5jZWxNYWluUmVzb3VyY2VMb2FkKGZyYW1lTG9hZGVyLmNhbmNlbGxlZEVycm9yKGRvY3Vt
ZW50TG9hZGVyLnJlcXVlc3QoKSkpOworICAgIG1fc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5ID0g
ZmFsc2U7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9j
dW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuaAppbmRleCAzY2Qw
NjEyNTUwZjZmOGZiZTk2Yzg5YjViNWZiNWU1NjE0M2M1ZjdlLi5iZDdlZDZjYTFhMDZlNWQ4OWYz
MmMyMmMwM2Q5NWIzNTY0YTg1YjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bs
dWdpbkRvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCwgMjAwOSwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDI2ICszOCwyMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFBsdWdpbkRvY3VtZW50KGZyYW1lLCB1cmwpKTsKICAgICB9CiAKLSAg
ICB2b2lkIHNldFBsdWdpbkVsZW1lbnQoUGFzc1JlZlB0cjxIVE1MUGx1Z0luRWxlbWVudD4pOwot
CiAgICAgV0VCQ09SRV9FWFBPUlQgV2lkZ2V0KiBwbHVnaW5XaWRnZXQoKTsKICAgICBIVE1MUGx1
Z0luRWxlbWVudCogcGx1Z2luRWxlbWVudCgpIHsgcmV0dXJuIG1fcGx1Z2luRWxlbWVudC5nZXQo
KTsgfQogCisgICAgdm9pZCBzZXRQbHVnaW5FbGVtZW50KEhUTUxQbHVnSW5FbGVtZW50Jik7CiAg
ICAgdm9pZCBkZXRhY2hGcm9tUGx1Z2luRWxlbWVudCgpOwogCiAgICAgdm9pZCBjYW5jZWxNYW51
YWxQbHVnaW5Mb2FkKCk7CiAKLSAgICBib29sIHNob3VsZExvYWRQbHVnaW5NYW51YWxseSgpIHsg
cmV0dXJuIG1fc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5OyB9CisgICAgYm9vbCBzaG91bGRMb2Fk
UGx1Z2luTWFudWFsbHkoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZExvYWRQbHVnaW5NYW51YWxs
eTsgfQogCiBwcml2YXRlOgogICAgIFBsdWdpbkRvY3VtZW50KEZyYW1lKiwgY29uc3QgVVJMJik7
CiAKLSAgICBSZWY8RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigpIG92ZXJyaWRlOwotCi0g
ICAgdm9pZCBzZXRTaG91bGRMb2FkUGx1Z2luTWFudWFsbHkoYm9vbCBsb2FkTWFudWFsbHkpIHsg
bV9zaG91bGRMb2FkUGx1Z2luTWFudWFsbHkgPSBsb2FkTWFudWFsbHk7IH0KKyAgICBSZWY8RG9j
dW1lbnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigpIGZpbmFsOwogCi0gICAgYm9vbCBtX3Nob3VsZExv
YWRQbHVnaW5NYW51YWxseTsKICAgICBSZWZQdHI8SFRNTFBsdWdJbkVsZW1lbnQ+IG1fcGx1Z2lu
RWxlbWVudDsKKyAgICBib29sIG1fc2hvdWxkTG9hZFBsdWdpbk1hbnVhbGx5IHsgdHJ1ZSB9Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXggOTRlOGI0ZGNl
YzQ0ZmQ4ZmU2YWE5MjE0ZDU1ZDk1OWI1ODcxOWRlNS4uNzdmYTUxOGZmZDAzNjQ2YmI5ZTgyNGE3
MjBmYTE5YTMxYjFmNjU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwg
MjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgpAQCAt
MTcyLDcgKzE3Miw3IEBAIGJvb2wgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjppc0FjY2VsZXJh
dGVkKCkgY29uc3QKICNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKSB8fCBF
TkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgIGlmICghY2FudmFzKCkuaGFzQ3JlYXRl
ZEltYWdlQnVmZmVyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQgPSBkcmF3aW5nQ29udGV4dCgpOworICAgIGF1dG8qIGNvbnRleHQgPSBkcmF3
aW5nQ29udGV4dCgpOwogICAgIHJldHVybiBjb250ZXh0ICYmIGNvbnRleHQtPmlzQWNjZWxlcmF0
ZWRDb250ZXh0KCk7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKQEAgLTQxNyw3ICs0MTcsNyBA
QCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0U3Ryb2tlU3R5bGUoQ2FudmFzU3R5
bGUgc3R5bGUpCiAgICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAg
ICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKLSAgICBzdGF0ZS5zdHJva2VTdHlsZS5hcHBseVN0
cm9rZUNvbG9yKGMpOworICAgIHN0YXRlLnN0cm9rZVN0eWxlLmFwcGx5U3Ryb2tlQ29sb3IoKmMp
OwogICAgIHN0YXRlLnVucGFyc2VkU3Ryb2tlQ29sb3IgPSBTdHJpbmcoKTsKIH0KIApAQCAtNDQ0
LDcgKzQ0NCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRGaWxsU3R5bGUo
Q2FudmFzU3R5bGUgc3R5bGUpCiAgICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRl
eHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKLSAgICBzdGF0ZS5maWxsU3R5bGUu
YXBwbHlGaWxsQ29sb3IoYyk7CisgICAgc3RhdGUuZmlsbFN0eWxlLmFwcGx5RmlsbENvbG9yKCpj
KTsKICAgICBzdGF0ZS51bnBhcnNlZEZpbGxDb2xvciA9IFN0cmluZygpOwogfQogCkBAIC05MzAs
MTMgKzkzMCwxMyBAQCBzdGF0aWMgYm9vbCB2YWxpZGF0ZVJlY3RGb3JDYW52YXMoZmxvYXQmIHgs
IGZsb2F0JiB5LCBmbG9hdCYgd2lkdGgsIGZsb2F0JiBoZWlnaAogICAgIHJldHVybiB0cnVlOwog
fQogCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQotdm9pZCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OmNsZWFyUGF0aEZvckRhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUo
KQoraW5saW5lIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbGVhclBhdGhGb3JEYXNo
Ym9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKCkKIHsKKyNpZiBFTkFCTEUoREFTSEJPQVJE
X1NVUFBPUlQpCiAgICAgaWYgKG1fdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKQogICAg
ICAgICBtX3BhdGguY2xlYXIoKTsKLX0KICNlbmRpZgorfQogCiBzdGF0aWMgYm9vbCBpc0Z1bGxD
YW52YXNDb21wb3NpdGVNb2RlKENvbXBvc2l0ZU9wZXJhdG9yIG9wKQogewpAQCAtOTU0LDI4ICs5
NTQsMTkgQEAgc3RhdGljIFdpbmRSdWxlIHRvV2luZFJ1bGUoQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpXaW5kaW5nUnVsZSBydWxlKQogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZp
bGwoV2luZGluZ1J1bGUgd2luZGluZ1J1bGUpCiB7CiAgICAgZmlsbEludGVybmFsKG1fcGF0aCwg
d2luZGluZ1J1bGUpOwotCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIGNsZWFy
UGF0aEZvckRhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoKTsKLSNlbmRpZgogfQog
CiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlKCkKIHsKICAgICBzdHJva2VJ
bnRlcm5hbChtX3BhdGgpOwotCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIGNs
ZWFyUGF0aEZvckRhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGUoKTsKLSNlbmRpZgog
fQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y2xpcChXaW5kaW5nUnVsZSB3aW5k
aW5nUnVsZSkKIHsKICAgICBjbGlwSW50ZXJuYWwobV9wYXRoLCB3aW5kaW5nUnVsZSk7Ci0KLSNp
ZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgY2xlYXJQYXRoRm9yRGFzaGJvYXJkQmFj
a3dhcmRDb21wYXRpYmlsaXR5TW9kZSgpOwotI2VuZGlmCiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpmaWxsKERPTVBhdGgmIHBhdGgsIFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxl
KQpAQCAtOTk1LDE5ICs5ODYsMTkgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNs
aXAoRE9NUGF0aCYgcGF0aCwgV2luZGluZ1J1bGUgd2luZGluZ1J1bGUpCiAKIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpmaWxsSW50ZXJuYWwoY29uc3QgUGF0aCYgcGF0aCwgV2luZGlu
Z1J1bGUgd2luZGluZ1J1bGUpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0Nv
bnRleHQoKTsKKyAgICBhdXRvKiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAg
ICAgICAgIHJldHVybjsKICAgICBpZiAoIXN0YXRlKCkuaGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gSWYgZ3JhZGllbnQgc2l6ZSBpcyB6ZXJvLCB0aGVu
IHBhaW50IG5vdGhpbmcuCi0gICAgR3JhZGllbnQqIGdyYWRpZW50ID0gYy0+ZmlsbEdyYWRpZW50
KCk7CisgICAgYXV0byogZ3JhZGllbnQgPSBjLT5maWxsR3JhZGllbnQoKTsKICAgICBpZiAoZ3Jh
ZGllbnQgJiYgZ3JhZGllbnQtPmlzWmVyb1NpemUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aWYgKCFwYXRoLmlzRW1wdHkoKSkgewotICAgICAgICBXaW5kUnVsZSB3aW5kUnVsZSA9IGMtPmZp
bGxSdWxlKCk7CisgICAgICAgIGF1dG8gc2F2ZWRGaWxsUnVsZSA9IGMtPmZpbGxSdWxlKCk7CiAg
ICAgICAgIGMtPnNldEZpbGxSdWxlKHRvV2luZFJ1bGUod2luZGluZ1J1bGUpKTsKIAogICAgICAg
ICBpZiAoaXNGdWxsQ2FudmFzQ29tcG9zaXRlTW9kZShzdGF0ZSgpLmdsb2JhbENvbXBvc2l0ZSkp
IHsKQEAgLTEwMjQsMjAgKzEwMTUsMjAgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OmZpbGxJbnRlcm5hbChjb25zdCBQYXRoJiBwYXRoLCBXaW5kaW5nUnVsZSB3aW5kaW4KICAgICAg
ICAgICAgIGRpZERyYXcocGF0aC5mYXN0Qm91bmRpbmdSZWN0KCkpOwogICAgICAgICB9CiAgICAg
ICAgIAotICAgICAgICBjLT5zZXRGaWxsUnVsZSh3aW5kUnVsZSk7CisgICAgICAgIGMtPnNldEZp
bGxSdWxlKHNhdmVkRmlsbFJ1bGUpOwogICAgIH0KIH0KIAogdm9pZCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OnN0cm9rZUludGVybmFsKGNvbnN0IFBhdGgmIHBhdGgpCiB7Ci0gICAgR3JhcGhp
Y3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBjID0gZHJhd2luZ0Nv
bnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIXN0YXRlKCku
aGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gSWYgZ3Jh
ZGllbnQgc2l6ZSBpcyB6ZXJvLCB0aGVuIHBhaW50IG5vdGhpbmcuCi0gICAgR3JhZGllbnQqIGdy
YWRpZW50ID0gYy0+c3Ryb2tlR3JhZGllbnQoKTsKKyAgICBhdXRvKiBncmFkaWVudCA9IGMtPnN0
cm9rZUdyYWRpZW50KCk7CiAgICAgaWYgKGdyYWRpZW50ICYmIGdyYWRpZW50LT5pc1plcm9TaXpl
KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTA2Miw3ICsxMDUzLDcgQEAgdm9pZCBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ6OnN0cm9rZUludGVybmFsKGNvbnN0IFBhdGgmIHBhdGgpCiAKIHZv
aWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbGlwSW50ZXJuYWwoY29uc3QgUGF0aCYgcGF0
aCwgV2luZGluZ1J1bGUgd2luZGluZ1J1bGUpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0KiBjID0g
ZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBp
ZiAoIWMpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIXN0YXRlKCkuaGFzSW52ZXJ0aWJsZVRy
YW5zZm9ybSkKQEAgLTExMDgsMTMgKzEwOTksMTMgQEAgYm9vbCBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OmlzUG9pbnRJblN0cm9rZShET01QYXRoJiBwYXRoLCBmbG9hdCB4LCBmbG9hdCB5KQog
CiBib29sIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6aXNQb2ludEluUGF0aEludGVybmFsKGNv
bnN0IFBhdGgmIHBhdGgsIGZsb2F0IHgsIGZsb2F0IHksIFdpbmRpbmdSdWxlIHdpbmRpbmdSdWxl
KQogewotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0
byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKCFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0pCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIEZsb2F0UG9pbnQgdHJhbnNmb3JtZWRQb2ludCA9IHN0YXRlKCku
dHJhbnNmb3JtLmludmVyc2UoKS52YWx1ZV9vcihBZmZpbmVUcmFuc2Zvcm0oKSkubWFwUG9pbnQo
RmxvYXRQb2ludCh4LCB5KSk7CisgICAgYXV0byB0cmFuc2Zvcm1lZFBvaW50ID0gc3RhdGUoKS50
cmFuc2Zvcm0uaW52ZXJzZSgpLnZhbHVlX29yKEFmZmluZVRyYW5zZm9ybSgpKS5tYXBQb2ludChG
bG9hdFBvaW50KHgsIHkpKTsKIAogICAgIGlmICghc3RkOjppc2Zpbml0ZSh0cmFuc2Zvcm1lZFBv
aW50LngoKSkgfHwgIXN0ZDo6aXNmaW5pdGUodHJhbnNmb3JtZWRQb2ludC55KCkpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0xMTI0LDEzICsxMTE1LDEzIEBAIGJvb2wgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjppc1BvaW50SW5QYXRoSW50ZXJuYWwoY29uc3QgUGF0aCYgcGF0aCwgZmxv
YXQgeCwKIAogYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmlzUG9pbnRJblN0cm9rZUlu
dGVybmFsKGNvbnN0IFBhdGgmIHBhdGgsIGZsb2F0IHgsIGZsb2F0IHkpCiB7Ci0gICAgR3JhcGhp
Y3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBjID0gZHJhd2luZ0Nv
bnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIXN0
YXRlKCkuaGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgRmxvYXRQb2ludCB0cmFuc2Zvcm1lZFBvaW50ID0gc3RhdGUoKS50cmFuc2Zvcm0uaW52ZXJz
ZSgpLnZhbHVlX29yKEFmZmluZVRyYW5zZm9ybSgpKS5tYXBQb2ludChGbG9hdFBvaW50KHgsIHkp
KTsKKyAgICBhdXRvIHRyYW5zZm9ybWVkUG9pbnQgPSBzdGF0ZSgpLnRyYW5zZm9ybS5pbnZlcnNl
KCkudmFsdWVfb3IoQWZmaW5lVHJhbnNmb3JtKCkpLm1hcFBvaW50KEZsb2F0UG9pbnQoeCwgeSkp
OwogICAgIGlmICghc3RkOjppc2Zpbml0ZSh0cmFuc2Zvcm1lZFBvaW50LngoKSkgfHwgIXN0ZDo6
aXNmaW5pdGUodHJhbnNmb3JtZWRQb2ludC55KCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
QEAgLTExNDIsNyArMTEzMyw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbGVh
clJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlCiB7CiAgICAgaWYg
KCF2YWxpZGF0ZVJlY3RGb3JDYW52YXMoeCwgeSwgd2lkdGgsIGhlaWdodCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBkcmF3aW5nQ29udGV4dCgpOwor
ICAgIGF1dG8qIGNvbnRleHQgPSBkcmF3aW5nQ29udGV4dCgpOwogICAgIGlmICghY29udGV4dCkK
ICAgICAgICAgcmV0dXJuOwogICAgIGlmICghc3RhdGUoKS5oYXNJbnZlcnRpYmxlVHJhbnNmb3Jt
KQpAQCAtMTE4MCw3ICsxMTcxLDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmZp
bGxSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWkKICAgICBpZiAo
IXZhbGlkYXRlUmVjdEZvckNhbnZhcyh4LCB5LCB3aWR0aCwgaGVpZ2h0KSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBh
dXRvKiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsK
ICAgICBpZiAoIXN0YXRlKCkuaGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkKQEAgLTExODksNyArMTE4
MCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmaWxsUmVjdChmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpCiAgICAgLy8gZnJvbSB0aGUgSFRNTDUgQ2Fu
dmFzIHNwZWM6CiAgICAgLy8gSWYgeDAgPSB4MSBhbmQgeTAgPSB5MSwgdGhlbiB0aGUgbGluZWFy
IGdyYWRpZW50IG11c3QgcGFpbnQgbm90aGluZwogICAgIC8vIElmIHgwID0geDEgYW5kIHkwID0g
eTEgYW5kIHIwID0gcjEsIHRoZW4gdGhlIHJhZGlhbCBncmFkaWVudCBtdXN0IHBhaW50IG5vdGhp
bmcKLSAgICBHcmFkaWVudCogZ3JhZGllbnQgPSBjLT5maWxsR3JhZGllbnQoKTsKKyAgICBhdXRv
KiBncmFkaWVudCA9IGMtPmZpbGxHcmFkaWVudCgpOwogICAgIGlmIChncmFkaWVudCAmJiBncmFk
aWVudC0+aXNaZXJvU2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTEyMTgsNyArMTIwOSw3
IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzdHJva2VSZWN0KGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoCiAgICAgaWYgKCF2YWxpZGF0ZVJlY3RGb3JDYW52
YXMoeCwgeSwgd2lkdGgsIGhlaWdodCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEdyYXBoaWNz
Q29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250
ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFzdGF0ZSgpLmhh
c0ludmVydGlibGVUcmFuc2Zvcm0pCkBAIC0xMjI3LDcgKzEyMTgsNyBAQCB2b2lkIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6c3Ryb2tlUmVjdChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0
aCwgZmxvYXQgaAogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZiBncmFkaWVudCBzaXplIGlz
IHplcm8sIHRoZW4gcGFpbnQgbm90aGluZy4KLSAgICBHcmFkaWVudCogZ3JhZGllbnQgPSBjLT5z
dHJva2VHcmFkaWVudCgpOworICAgIGF1dG8qIGdyYWRpZW50ID0gYy0+c3Ryb2tlR3JhZGllbnQo
KTsKICAgICBpZiAoZ3JhZGllbnQgJiYgZ3JhZGllbnQtPmlzWmVyb1NpemUoKSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC0xMjUxLDExICsxMjQyLDEyIEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjpzdHJva2VSZWN0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBo
CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRTaGFkb3coZmxvYXQgd2lkdGgs
IGZsb2F0IGhlaWdodCwgZmxvYXQgYmx1ciwgY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZywgc3Rk
OjpvcHRpb25hbDxmbG9hdD4gYWxwaGEpCiB7Ci0gICAgQ29sb3IgY29sb3IgPSBwYXJzZUNvbG9y
T3JDdXJyZW50Q29sb3IoY29sb3JTdHJpbmcsICZjYW52YXMoKSk7Ci0gICAgaWYgKCFjb2xvclN0
cmluZy5pc051bGwoKSAmJiAhY29sb3IuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0gICAg
aWYgKCFjb2xvci5pc1ZhbGlkKCkpCi0gICAgICAgIGNvbG9yID0gQ29sb3I6OnRyYW5zcGFyZW50
OworICAgIENvbG9yIGNvbG9yID0gQ29sb3I6OnRyYW5zcGFyZW50OworICAgIGlmICghY29sb3JT
dHJpbmcuaXNOdWxsKCkpIHsKKyAgICAgICAgY29sb3IgPSBwYXJzZUNvbG9yT3JDdXJyZW50Q29s
b3IoY29sb3JTdHJpbmcsICZjYW52YXMoKSk7CisgICAgICAgIGlmICghY29sb3IuaXNWYWxpZCgp
KQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KICAgICAvLyBGSVhNRTogU2hvdWxkIG5vdCB1
c2UgUkdCQTMyIGhlcmUuCiAgICAgc2V0U2hhZG93KEZsb2F0U2l6ZSh3aWR0aCwgaGVpZ2h0KSwg
Ymx1ciwgY29sb3JXaXRoT3ZlcnJpZGVBbHBoYShjb2xvci5yZ2IoKSwgYWxwaGEpKTsKIH0KQEAg
LTEyOTYsNyArMTI4OCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRTaGFk
b3coY29uc3QgRmxvYXRTaXplJiBvZmZzZXQsIGZsb2F0IGJsdXIsIGNvCiAKIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjphcHBseVNoYWRvdygpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0
KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBjID0gZHJhd2luZ0NvbnRleHQoKTsK
ICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTMxMywzNSArMTMwNSwzMyBAQCBi
b29sIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2hvdWxkRHJhd1NoYWRvd3MoKSBjb25zdAog
ICAgIHJldHVybiBzdGF0ZSgpLnNoYWRvd0NvbG9yLmlzVmlzaWJsZSgpICYmIChzdGF0ZSgpLnNo
YWRvd0JsdXIgfHwgIXN0YXRlKCkuc2hhZG93T2Zmc2V0LmlzWmVybygpKTsKIH0KIAotZW51bSBJ
bWFnZVNpemVUeXBlIHsKLSAgICBJbWFnZVNpemVBZnRlckRldmljZVBpeGVsUmF0aW8sCi0gICAg
SW1hZ2VTaXplQmVmb3JlRGV2aWNlUGl4ZWxSYXRpbwotfTsKLQotc3RhdGljIExheW91dFNpemUg
c2l6ZShIVE1MSW1hZ2VFbGVtZW50JiBpbWFnZUVsZW1lbnQsIEltYWdlU2l6ZVR5cGUgc2l6ZVR5
cGUgPSBJbWFnZVNpemVCZWZvcmVEZXZpY2VQaXhlbFJhdGlvKQorZW51bSBjbGFzcyBJbWFnZVNp
emVUeXBlIHsgQWZ0ZXJEZXZpY2VQaXhlbFJhdGlvLCBCZWZvcmVEZXZpY2VQaXhlbFJhdGlvIH07
CitzdGF0aWMgTGF5b3V0U2l6ZSBzaXplKEhUTUxJbWFnZUVsZW1lbnQmIGVsZW1lbnQsIEltYWdl
U2l6ZVR5cGUgc2l6ZVR5cGUgPSBJbWFnZVNpemVUeXBlOjpCZWZvcmVEZXZpY2VQaXhlbFJhdGlv
KQogewogICAgIExheW91dFNpemUgc2l6ZTsKLSAgICBpZiAoQ2FjaGVkSW1hZ2UqIGNhY2hlZElt
YWdlID0gaW1hZ2VFbGVtZW50LmNhY2hlZEltYWdlKCkpIHsKLSAgICAgICAgc2l6ZSA9IGNhY2hl
ZEltYWdlLT5pbWFnZVNpemVGb3JSZW5kZXJlcihpbWFnZUVsZW1lbnQucmVuZGVyZXIoKSwgMS4w
Zik7IC8vIEZJWE1FOiBOb3Qgc3VyZSBhYm91dCB0aGlzLgotCi0gICAgICAgIGlmIChzaXplVHlw
ZSA9PSBJbWFnZVNpemVBZnRlckRldmljZVBpeGVsUmF0aW8gJiYgaXM8UmVuZGVySW1hZ2U+KGlt
YWdlRWxlbWVudC5yZW5kZXJlcigpKSAmJiBjYWNoZWRJbWFnZS0+aW1hZ2UoKSAmJiAhY2FjaGVk
SW1hZ2UtPmltYWdlKCktPmhhc1JlbGF0aXZlV2lkdGgoKSkKLSAgICAgICAgICAgIHNpemUuc2Nh
bGUoZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCppbWFnZUVsZW1lbnQucmVuZGVyZXIoKSkuaW1hZ2VE
ZXZpY2VQaXhlbFJhdGlvKCkpOworICAgIGlmIChhdXRvKiBjYWNoZWRJbWFnZSA9IGVsZW1lbnQu
Y2FjaGVkSW1hZ2UoKSkgeworICAgICAgICBzaXplID0gY2FjaGVkSW1hZ2UtPmltYWdlU2l6ZUZv
clJlbmRlcmVyKGVsZW1lbnQucmVuZGVyZXIoKSwgMS4wZik7IC8vIEZJWE1FOiBOb3Qgc3VyZSBh
Ym91dCB0aGlzLgorICAgICAgICBpZiAoc2l6ZVR5cGUgPT0gSW1hZ2VTaXplVHlwZTo6QWZ0ZXJE
ZXZpY2VQaXhlbFJhdGlvICYmIGlzPFJlbmRlckltYWdlPihlbGVtZW50LnJlbmRlcmVyKCkpICYm
IGNhY2hlZEltYWdlLT5pbWFnZSgpICYmICFjYWNoZWRJbWFnZS0+aW1hZ2UoKS0+aGFzUmVsYXRp
dmVXaWR0aCgpKQorICAgICAgICAgICAgc2l6ZS5zY2FsZShkb3duY2FzdDxSZW5kZXJJbWFnZT4o
KmVsZW1lbnQucmVuZGVyZXIoKSkuaW1hZ2VEZXZpY2VQaXhlbFJhdGlvKCkpOwogICAgIH0KICAg
ICByZXR1cm4gc2l6ZTsKIH0KIAotc3RhdGljIEZsb2F0U2l6ZSBzaXplKEhUTUxDYW52YXNFbGVt
ZW50JiBjYW52YXNFbGVtZW50KQorc3RhdGljIGlubGluZSBGbG9hdFNpemUgc2l6ZShIVE1MQ2Fu
dmFzRWxlbWVudCYgY2FudmFzRWxlbWVudCkKIHsKLSAgICByZXR1cm4gRmxvYXRTaXplKGNhbnZh
c0VsZW1lbnQuc2l6ZSgpKTsKKyAgICByZXR1cm4gY2FudmFzRWxlbWVudC5zaXplKCk7CiB9CiAK
ICNpZiBFTkFCTEUoVklERU8pCi1zdGF0aWMgRmxvYXRTaXplIHNpemUoSFRNTFZpZGVvRWxlbWVu
dCYgdmlkZW8pCisKK3N0YXRpYyBpbmxpbmUgRmxvYXRTaXplIHNpemUoSFRNTFZpZGVvRWxlbWVu
dCYgdmlkZW8pCiB7Ci0gICAgaWYgKE1lZGlhUGxheWVyKiBwbGF5ZXIgPSB2aWRlby5wbGF5ZXIo
KSkKLSAgICAgICAgcmV0dXJuIHBsYXllci0+bmF0dXJhbFNpemUoKTsKLSAgICByZXR1cm4gRmxv
YXRTaXplKCk7CisgICAgYXV0byogcGxheWVyID0gdmlkZW8ucGxheWVyKCk7CisgICAgaWYgKCFw
bGF5ZXIpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIHBsYXllci0+bmF0dXJhbFNp
emUoKTsKIH0KKwogI2VuZGlmCiAKIHN0YXRpYyBpbmxpbmUgRmxvYXRSZWN0IG5vcm1hbGl6ZVJl
Y3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQpAQCAtMTM1Niw4ICsxMzQ2LDggQEAgRXhjZXB0aW9u
T3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UoQ2FudmFzSW1hZ2VT
b3VyY2UmJiBpbWFnZSwKIHsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihpbWFnZSwKICAgICAg
ICAgWyZdIChSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4mIGltYWdlRWxlbWVudCkgLT4gRXhjZXB0
aW9uT3I8dm9pZD4gewotICAgICAgICAgICAgTGF5b3V0U2l6ZSBkZXN0UmVjdFNpemUgPSBzaXpl
KCppbWFnZUVsZW1lbnQsIEltYWdlU2l6ZUFmdGVyRGV2aWNlUGl4ZWxSYXRpbyk7Ci0gICAgICAg
ICAgICBMYXlvdXRTaXplIHNvdXJjZVJlY3RTaXplID0gc2l6ZSgqaW1hZ2VFbGVtZW50LCBJbWFn
ZVNpemVCZWZvcmVEZXZpY2VQaXhlbFJhdGlvKTsKKyAgICAgICAgICAgIExheW91dFNpemUgZGVz
dFJlY3RTaXplID0gc2l6ZSgqaW1hZ2VFbGVtZW50LCBJbWFnZVNpemVUeXBlOjpBZnRlckRldmlj
ZVBpeGVsUmF0aW8pOworICAgICAgICAgICAgTGF5b3V0U2l6ZSBzb3VyY2VSZWN0U2l6ZSA9IHNp
emUoKmltYWdlRWxlbWVudCwgSW1hZ2VTaXplVHlwZTo6QmVmb3JlRGV2aWNlUGl4ZWxSYXRpbyk7
CiAgICAgICAgICAgICByZXR1cm4gdGhpcy0+ZHJhd0ltYWdlKCppbWFnZUVsZW1lbnQsIEZsb2F0
UmVjdCB7IDAsIDAsIHNvdXJjZVJlY3RTaXplLndpZHRoKCksIHNvdXJjZVJlY3RTaXplLmhlaWdo
dCgpIH0sIEZsb2F0UmVjdCB7IGR4LCBkeSwgZGVzdFJlY3RTaXplLndpZHRoKCksIGRlc3RSZWN0
U2l6ZS5oZWlnaHQoKSB9KTsKICAgICAgICAgfSwKICAgICAgICAgWyZdIChhdXRvJiBlbGVtZW50
KSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CkBAIC0xNDA2LDcgKzEzOTYsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdJbWFnZShIVE1MSW1hZ2VFbGVt
ZW50JiBpbWFnZUVsZQogICAgIEZsb2F0UmVjdCBub3JtYWxpemVkU3JjUmVjdCA9IG5vcm1hbGl6
ZVJlY3Qoc3JjUmVjdCk7CiAgICAgRmxvYXRSZWN0IG5vcm1hbGl6ZWREc3RSZWN0ID0gbm9ybWFs
aXplUmVjdChkc3RSZWN0KTsKIAotICAgIEZsb2F0UmVjdCBpbWFnZVJlY3QgPSBGbG9hdFJlY3Qo
RmxvYXRQb2ludCgpLCBzaXplKGltYWdlRWxlbWVudCwgSW1hZ2VTaXplQmVmb3JlRGV2aWNlUGl4
ZWxSYXRpbykpOworICAgIEZsb2F0UmVjdCBpbWFnZVJlY3QgPSBGbG9hdFJlY3QoRmxvYXRQb2lu
dCgpLCBzaXplKGltYWdlRWxlbWVudCwgSW1hZ2VTaXplVHlwZTo6QmVmb3JlRGV2aWNlUGl4ZWxS
YXRpbykpOwogICAgIGlmICghc3JjUmVjdC53aWR0aCgpIHx8ICFzcmNSZWN0LmhlaWdodCgpKQog
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5ERVhfU0laRV9FUlIgfTsKIApAQCAtMTU3NCw3
ICsxNTY0LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpk
cmF3SW1hZ2UoSFRNTFZpZGVvRWxlbWVudCYgdmlkZW8sIGMKIHZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpkcmF3SW1hZ2VGcm9tUmVjdChIVE1MSW1hZ2VFbGVtZW50JiBpbWFnZUVsZW1l
bnQsIGZsb2F0IHN4LCBmbG9hdCBzeSwgZmxvYXQgc3csIGZsb2F0IHNoLCBmbG9hdCBkeCwgZmxv
YXQgZHksIGZsb2F0IGR3LCBmbG9hdCBkaCwgY29uc3QgU3RyaW5nJiBjb21wb3NpdGVPcGVyYXRp
b24pCiB7CiAgICAgQ29tcG9zaXRlT3BlcmF0b3Igb3A7Ci0gICAgQmxlbmRNb2RlIGJsZW5kT3Ag
PSBCbGVuZE1vZGVOb3JtYWw7CisgICAgYXV0byBibGVuZE9wID0gQmxlbmRNb2RlTm9ybWFsOwog
ICAgIGlmICghcGFyc2VDb21wb3NpdGVBbmRCbGVuZE9wZXJhdG9yKGNvbXBvc2l0ZU9wZXJhdGlv
biwgb3AsIGJsZW5kT3ApIHx8IGJsZW5kT3AgIT0gQmxlbmRNb2RlTm9ybWFsKQogICAgICAgICBv
cCA9IENvbXBvc2l0ZVNvdXJjZU92ZXI7CiAgICAgZHJhd0ltYWdlKGltYWdlRWxlbWVudCwgRmxv
YXRSZWN0IHsgc3gsIHN5LCBzdywgc2ggfSwgRmxvYXRSZWN0IHsgZHgsIGR5LCBkdywgZGggfSwg
b3AsIEJsZW5kTW9kZU5vcm1hbCk7CkBAIC0xNTkyLDE0ICsxNTgyLDEzIEBAIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpzZXRDb21wb3NpdGVPcGVyYXRpb24oY29uc3QgU3RyaW5nJiBv
cGVyYXRpb24pCiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjbGVhckNhbnZhcygp
CiB7Ci0gICAgRmxvYXRSZWN0IGNhbnZhc1JlY3QoMCwgMCwgY2FudmFzKCkud2lkdGgoKSwgY2Fu
dmFzKCkuaGVpZ2h0KCkpOwotICAgIEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0
KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAg
ICByZXR1cm47CiAKICAgICBjLT5zYXZlKCk7CiAgICAgYy0+c2V0Q1RNKGNhbnZhcygpLmJhc2VU
cmFuc2Zvcm0oKSk7Ci0gICAgYy0+Y2xlYXJSZWN0KGNhbnZhc1JlY3QpOworICAgIGMtPmNsZWFy
UmVjdChGbG9hdFJlY3QoMCwgMCwgY2FudmFzKCkud2lkdGgoKSwgY2FudmFzKCkuaGVpZ2h0KCkp
KTsKICAgICBjLT5yZXN0b3JlKCk7CiB9CiAKQEAgLTE2NDgsNyArMTYzNyw3IEBAIHZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjb21wb3NpdGVCdWZmZXIoSW1hZ2VCdWZmZXImIGJ1ZmZl
ciwgY29uc3QgSW50UmVjCiAgICAgSW50UmVjdCBjYW52YXNSZWN0KDAsIDAsIGNhbnZhcygpLndp
ZHRoKCksIGNhbnZhcygpLmhlaWdodCgpKTsKICAgICBjYW52YXNSZWN0ID0gY2FudmFzKCkuYmFz
ZVRyYW5zZm9ybSgpLm1hcFJlY3QoY2FudmFzUmVjdCk7CiAKLSAgICBHcmFwaGljc0NvbnRleHQq
IGMgPSBkcmF3aW5nQ29udGV4dCgpOworICAgIGF1dG8qIGMgPSBkcmF3aW5nQ29udGV4dCgpOwog
ICAgIGlmICghYykKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNjc5LDE3ICsxNjY4LDE3IEBAIHRl
bXBsYXRlPGNsYXNzIFQ+IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpmdWxsQ2FudmFz
Q29tcG9zaXRlZERyYXdJbWFnZShUCiAgICAgQVNTRVJUKGlzRnVsbENhbnZhc0NvbXBvc2l0ZU1v
ZGUob3ApKTsKIAogICAgIEludFNpemUgY3JvcHBlZE9mZnNldDsKLSAgICBJbnRSZWN0IGJ1ZmZl
clJlY3QgPSBjYWxjdWxhdGVDb21wb3NpdGluZ0J1ZmZlclJlY3QoZGVzdCwgJmNyb3BwZWRPZmZz
ZXQpOworICAgIGF1dG8gYnVmZmVyUmVjdCA9IGNhbGN1bGF0ZUNvbXBvc2l0aW5nQnVmZmVyUmVj
dChkZXN0LCAmY3JvcHBlZE9mZnNldCk7CiAgICAgaWYgKGJ1ZmZlclJlY3QuaXNFbXB0eSgpKSB7
CiAgICAgICAgIGNsZWFyQ2FudmFzKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlciA9IGNyZWF0ZUNvbXBvc2l0aW5nQnVm
ZmVyKGJ1ZmZlclJlY3QpOworICAgIGF1dG8gYnVmZmVyID0gY3JlYXRlQ29tcG9zaXRpbmdCdWZm
ZXIoYnVmZmVyUmVjdCk7CiAgICAgaWYgKCFidWZmZXIpCiAgICAgICAgIHJldHVybjsKIAotICAg
IEdyYXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRy
YXdpbmdDb250ZXh0KCk7CiAgICAgaWYgKCFjKQogICAgICAgICByZXR1cm47CiAKQEAgLTE3MjAs
NyArMTcwOSw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxDYW52YXNHcmFkaWVudD4+IENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6Y3JlYXRlTGluZWFyR3JhZGllbnQoCiAgICAgaWYgKCFzdGQ6OmlzZmlu
aXRlKHgwKSB8fCAhc3RkOjppc2Zpbml0ZSh5MCkgfHwgIXN0ZDo6aXNmaW5pdGUoeDEpIHx8ICFz
dGQ6OmlzZmluaXRlKHkxKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5PVF9TVVBQT1JU
RURfRVJSIH07CiAKLSAgICBSZWY8Q2FudmFzR3JhZGllbnQ+IGdyYWRpZW50ID0gQ2FudmFzR3Jh
ZGllbnQ6OmNyZWF0ZShGbG9hdFBvaW50KHgwLCB5MCksIEZsb2F0UG9pbnQoeDEsIHkxKSk7Cisg
ICAgYXV0byBncmFkaWVudCA9IENhbnZhc0dyYWRpZW50OjpjcmVhdGUoRmxvYXRQb2ludCh4MCwg
eTApLCBGbG9hdFBvaW50KHgxLCB5MSkpOwogICAgIHByZXBhcmVHcmFkaWVudEZvckRhc2hib2Fy
ZChncmFkaWVudC5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUoZ3JhZGllbnQpOwogfQpAQCAt
MTczMyw3ICsxNzIyLDcgQEAgRXhjZXB0aW9uT3I8UmVmPENhbnZhc0dyYWRpZW50Pj4gQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhdGVSYWRpYWxHcmFkaWVudCgKICAgICBpZiAocjAgPCAw
IHx8IHIxIDwgMCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOREVYX1NJWkVfRVJSIH07
CiAKLSAgICBSZWY8Q2FudmFzR3JhZGllbnQ+IGdyYWRpZW50ID0gQ2FudmFzR3JhZGllbnQ6OmNy
ZWF0ZShGbG9hdFBvaW50KHgwLCB5MCksIHIwLCBGbG9hdFBvaW50KHgxLCB5MSksIHIxKTsKKyAg
ICBhdXRvIGdyYWRpZW50ID0gQ2FudmFzR3JhZGllbnQ6OmNyZWF0ZShGbG9hdFBvaW50KHgwLCB5
MCksIHIwLCBGbG9hdFBvaW50KHgxLCB5MSksIHIxKTsKICAgICBwcmVwYXJlR3JhZGllbnRGb3JE
YXNoYm9hcmQoZ3JhZGllbnQuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKGdyYWRpZW50KTsK
IH0KQEAgLTE3NDUsNyArMTczNCw3IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxDYW52YXNQYXR0ZXJu
Pj4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhdGVQYXR0ZXJuKENhbnZhCiAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBTWU5UQVhfRVJSIH07CiAKICAgICByZXR1cm4gV1RGOjpzd2l0
Y2hPbihpbWFnZSwKLSAgICAgICAgWyZdKGF1dG8mIGVsZW1lbnQpIC0+IEV4Y2VwdGlvbk9yPFJl
ZlB0cjxDYW52YXNQYXR0ZXJuPj4geyByZXR1cm4gdGhpcy0+Y3JlYXRlUGF0dGVybigqZWxlbWVu
dCwgcmVwZWF0WCwgcmVwZWF0WSk7IH0KKyAgICAgICAgWyZdIChhdXRvJiBlbGVtZW50KSAtPiBF
eGNlcHRpb25PcjxSZWZQdHI8Q2FudmFzUGF0dGVybj4+IHsgcmV0dXJuIHRoaXMtPmNyZWF0ZVBh
dHRlcm4oKmVsZW1lbnQsIHJlcGVhdFgsIHJlcGVhdFkpOyB9CiAgICAgKTsKIH0KIApAQCAtMTgx
Miw3ICsxODAxLDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRpZERyYXdFbnRp
cmVDYW52YXMoKQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZGlkRHJhdyhjb25z
dCBGbG9hdFJlY3QmIHIsIHVuc2lnbmVkIG9wdGlvbnMpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0
KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBjID0gZHJhd2luZ0NvbnRleHQoKTsK
ICAgICBpZiAoIWMpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIXN0YXRlKCkuaGFzSW52ZXJ0
aWJsZVRyYW5zZm9ybSkKQEAgLTE4NjYsMTkgKzE4NTUsMTcgQEAgdm9pZCBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OnNldFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KGJvb2wgdHJhY2tzRGlzcGxh
eUxpc3QKIAogU3RyaW5nIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZGlzcGxheUxpc3RBc1Rl
eHQoRGlzcGxheUxpc3Q6OkFzVGV4dEZsYWdzIGZsYWdzKSBjb25zdAogewotICAgIGlmIChtX3Jl
Y29yZGluZ0NvbnRleHQpCi0gICAgICAgIHJldHVybiBtX3JlY29yZGluZ0NvbnRleHQtPmRpc3Bs
YXlMaXN0LmFzVGV4dChmbGFncyk7Ci0gICAgCi0gICAgcmV0dXJuIFN0cmluZygpOworICAgIGlm
ICghbV9yZWNvcmRpbmdDb250ZXh0KQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBt
X3JlY29yZGluZ0NvbnRleHQtPmRpc3BsYXlMaXN0LmFzVGV4dChmbGFncyk7CiB9CiAKIFN0cmlu
ZyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJlcGxheURpc3BsYXlMaXN0QXNUZXh0KERpc3Bs
YXlMaXN0OjpBc1RleHRGbGFncyBmbGFncykgY29uc3QKIHsKLSAgICBhdXRvIGl0ID0gY29udGV4
dERpc3BsYXlMaXN0TWFwKCkuZmluZCh0aGlzKTsKLSAgICBpZiAoaXQgIT0gY29udGV4dERpc3Bs
YXlMaXN0TWFwKCkuZW5kKCkpCi0gICAgICAgIHJldHVybiBpdC0+dmFsdWUtPmFzVGV4dChmbGFn
cyk7Ci0KLSAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgYXV0byogZGlzcGxheUxpc3QgPSBjb250
ZXh0RGlzcGxheUxpc3RNYXAoKS5nZXQodGhpcyk7CisgICAgaWYgKCFkaXNwbGF5TGlzdCkKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gZGlzcGxheUxpc3QtPmFzVGV4dChmbGFncyk7
CiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpwYWludFJlbmRlcmluZ1Jlc3Vs
dHNUb0NhbnZhcygpCkBAIC0xODg2LDcgKzE4NzMsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKQogICAgIGlmIChVTkxJS0VM
WShtX3VzZXNEaXNwbGF5TGlzdERyYXdpbmcpKSB7CiAgICAgICAgIGlmICghbV9yZWNvcmRpbmdD
b250ZXh0KQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAKKwogICAgICAgICBGbG9hdFJl
Y3QgY2xpcChGbG9hdFBvaW50Ojp6ZXJvKCksIGNhbnZhcygpLnNpemUoKSk7CiAgICAgICAgIERp
c3BsYXlMaXN0OjpSZXBsYXllciByZXBsYXllcigqY2FudmFzKCkuZHJhd2luZ0NvbnRleHQoKSwg
bV9yZWNvcmRpbmdDb250ZXh0LT5kaXNwbGF5TGlzdCk7CiAKQEAgLTE5MDUsNyArMTg5Miw2IEBA
IEdyYXBoaWNzQ29udGV4dCogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3aW5nQ29udGV4
dCgpIGNvbnN0CiAgICAgaWYgKFVOTElLRUxZKG1fdXNlc0Rpc3BsYXlMaXN0RHJhd2luZykpIHsK
ICAgICAgICAgaWYgKCFtX3JlY29yZGluZ0NvbnRleHQpCiAgICAgICAgICAgICBtX3JlY29yZGlu
Z0NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQ+KEZs
b2F0UmVjdChGbG9hdFBvaW50Ojp6ZXJvKCksIGNhbnZhcygpLnNpemUoKSkpOwotCiAgICAgICAg
IHJldHVybiAmbV9yZWNvcmRpbmdDb250ZXh0LT5jb250ZXh0OwogICAgIH0KIApAQCAtMTkxNCwx
MiArMTkwMCwxMCBAQCBHcmFwaGljc0NvbnRleHQqIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
ZHJhd2luZ0NvbnRleHQoKSBjb25zdAogCiBzdGF0aWMgUmVmUHRyPEltYWdlRGF0YT4gY3JlYXRl
RW1wdHlJbWFnZURhdGEoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICBpZiAoUmVmUHRyPElt
YWdlRGF0YT4gZGF0YSA9IEltYWdlRGF0YTo6Y3JlYXRlKHNpemUpKSB7CisgICAgYXV0byBkYXRh
ID0gSW1hZ2VEYXRhOjpjcmVhdGUoc2l6ZSk7CisgICAgaWYgKGRhdGEpCiAgICAgICAgIGRhdGEt
PmRhdGEoKS0+emVyb0ZpbGwoKTsKLSAgICAgICAgcmV0dXJuIGRhdGE7Ci0gICAgfQotCi0gICAg
cmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGRhdGE7CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZlB0
cjxJbWFnZURhdGE+PiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZUltYWdlRGF0YShJ
bWFnZURhdGEqIGltYWdlRGF0YSkgY29uc3QKQEAgLTIwMzgsMTEgKzIwMjIsOSBAQCB2b2lkIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ZvY3VzSWZOZWVkZWQoRE9NUGF0aCYgcGF0aCwg
RWxlbWVudCYgZWxlbWVudAogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0Zv
Y3VzSWZOZWVkZWRJbnRlcm5hbChjb25zdCBQYXRoJiBwYXRoLCBFbGVtZW50JiBlbGVtZW50KQog
ewotICAgIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCA9IGRyYXdpbmdDb250ZXh0KCk7Ci0KKyAg
ICBhdXRvKiBjb250ZXh0ID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWVsZW1lbnQuZm9j
dXNlZCgpIHx8ICFzdGF0ZSgpLmhhc0ludmVydGlibGVUcmFuc2Zvcm0gfHwgcGF0aC5pc0VtcHR5
KCkgfHwgIWVsZW1lbnQuaXNEZXNjZW5kYW50T2YoY2FudmFzKCkpIHx8ICFjb250ZXh0KQogICAg
ICAgICByZXR1cm47Ci0KICAgICBjb250ZXh0LT5kcmF3Rm9jdXNSaW5nKHBhdGgsIDEsIDEsIFJl
bmRlclRoZW1lOjpmb2N1c1JpbmdDb2xvcigpKTsKIH0KIApAQCAtMjI3MCw3ICsyMjUyLDYgQEAg
c3RhdGljIGlubGluZSBib29sIGlzU3BhY2VUaGF0TmVlZHNSZXBsYWNpbmcoVUNoYXIgYykKIHN0
YXRpYyB2b2lkIG5vcm1hbGl6ZVNwYWNlcyhTdHJpbmcmIHRleHQpCiB7CiAgICAgc2l6ZV90IGkg
PSB0ZXh0LmZpbmQoaXNTcGFjZVRoYXROZWVkc1JlcGxhY2luZyk7Ci0KICAgICBpZiAoaSA9PSBu
b3RGb3VuZCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMzAxLDEwICsyMjgyLDEwIEBAIFJlZjxU
ZXh0TWV0cmljcz4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjptZWFzdXJlVGV4dChjb25zdCBT
dHJpbmcmIHRleHQpCiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dElu
dGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvYXQgeSwgYm9vbCBmaWxsLCBz
dGQ6Om9wdGlvbmFsPGZsb2F0PiBtYXhXaWR0aCkKIHsKLSAgICBjb25zdCBhdXRvJiBmb250UHJv
eHkgPSB0aGlzLT5mb250UHJveHkoKTsKLSAgICBjb25zdCBGb250TWV0cmljcyYgZm9udE1ldHJp
Y3MgPSBmb250UHJveHkuZm9udE1ldHJpY3MoKTsKKyAgICBhdXRvJiBmb250UHJveHkgPSB0aGlz
LT5mb250UHJveHkoKTsKKyAgICBjb25zdCBhdXRvJiBmb250TWV0cmljcyA9IGZvbnRQcm94eS5m
b250TWV0cmljcygpOwogCi0gICAgR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQo
KTsKKyAgICBhdXRvKiBjID0gZHJhd2luZ0NvbnRleHQoKTsKICAgICBpZiAoIWMpCiAgICAgICAg
IHJldHVybjsKICAgICBpZiAoIXN0YXRlKCkuaGFzSW52ZXJ0aWJsZVRyYW5zZm9ybSkKQEAgLTIz
MTUsNyArMjI5Niw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dElu
dGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAgICAgICAgIHJldHVybjsK
IAogICAgIC8vIElmIGdyYWRpZW50IHNpemUgaXMgemVybywgdGhlbiBwYWludCBub3RoaW5nLgot
ICAgIEdyYWRpZW50KiBncmFkaWVudCA9IGMtPnN0cm9rZUdyYWRpZW50KCk7CisgICAgYXV0byog
Z3JhZGllbnQgPSBjLT5zdHJva2VHcmFkaWVudCgpOwogICAgIGlmICghZmlsbCAmJiBncmFkaWVu
dCAmJiBncmFkaWVudC0+aXNaZXJvU2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTIzMjks
NyArMjMxMCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVy
bmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAgICAgLy8gRklYTUU6IE5lZWQg
dG8gdHVybiBvZmYgZm9udCBzbW9vdGhpbmcuCiAKICAgICBjb25zdCBSZW5kZXJTdHlsZSogY29t
cHV0ZWRTdHlsZTsKLSAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IHRvVGV4dERpcmVjdGlv
bihzdGF0ZSgpLmRpcmVjdGlvbiwgJmNvbXB1dGVkU3R5bGUpOworICAgIGF1dG8gZGlyZWN0aW9u
ID0gdG9UZXh0RGlyZWN0aW9uKHN0YXRlKCkuZGlyZWN0aW9uLCAmY29tcHV0ZWRTdHlsZSk7CiAg
ICAgYm9vbCBpc1JUTCA9IGRpcmVjdGlvbiA9PSBSVEw7CiAgICAgYm9vbCBvdmVycmlkZSA9IGNv
bXB1dGVkU3R5bGUgPyBpc092ZXJyaWRlKGNvbXB1dGVkU3R5bGUtPnVuaWNvZGVCaWRpKCkpIDog
ZmFsc2U7CiAKQEAgLTIzNTksNyArMjM0MCw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAg
ICAgYm9vbCB1c2VNYXhXaWR0aCA9IG1heFdpZHRoICYmIG1heFdpZHRoLnZhbHVlKCkgPCBmb250
V2lkdGg7CiAgICAgZmxvYXQgd2lkdGggPSB1c2VNYXhXaWR0aCA/IG1heFdpZHRoLnZhbHVlKCkg
OiBmb250V2lkdGg7CiAKLSAgICBUZXh0QWxpZ24gYWxpZ24gPSBzdGF0ZSgpLnRleHRBbGlnbjsK
KyAgICBhdXRvIGFsaWduID0gc3RhdGUoKS50ZXh0QWxpZ247CiAgICAgaWYgKGFsaWduID09IFN0
YXJ0VGV4dEFsaWduKQogICAgICAgICBhbGlnbiA9IGlzUlRMID8gUmlnaHRUZXh0QWxpZ24gOiBM
ZWZ0VGV4dEFsaWduOwogICAgIGVsc2UgaWYgKGFsaWduID09IEVuZFRleHRBbGlnbikKQEAgLTIz
ODUsNyArMjM2Niw2IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dElu
dGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAjaWYgVVNFKENHKQogICAg
IGNvbnN0IENhbnZhc1N0eWxlJiBkcmF3U3R5bGUgPSBmaWxsID8gc3RhdGUoKS5maWxsU3R5bGUg
OiBzdGF0ZSgpLnN0cm9rZVN0eWxlOwogICAgIGlmIChkcmF3U3R5bGUuY2FudmFzR3JhZGllbnQo
KSB8fCBkcmF3U3R5bGUuY2FudmFzUGF0dGVybigpKSB7Ci0KICAgICAgICAgSW50UmVjdCBtYXNr
UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QodGV4dFJlY3QpOwogCiAgICAgICAgIC8vIElmIHdlIGhh
dmUgYSBzaGFkb3csIHdlIG5lZWQgdG8gZHJhdyBpdCBiZWZvcmUgdGhlIG1hc2sgb3BlcmF0aW9u
LgpAQCAtMjM5NCw3ICsyMzc0LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRy
YXdUZXh0SW50ZXJuYWwoY29uc3QgU3RyaW5nJiB0ZXh0LCBmbG9hdCB4LCBmbG8KICAgICAgICAg
aWYgKHNob3VsZERyYXdTaGFkb3dzKCkpIHsKICAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0
YXRlU2F2ZXIgc3RhdGVTYXZlcigqYyk7CiAKLSAgICAgICAgICAgIEZsb2F0U2l6ZSBvZmZzZXQg
PSBGbG9hdFNpemUoMCwgMiAqIG1hc2tSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgICAgIEZsb2F0
U2l6ZSBvZmZzZXQoMCwgMiAqIG1hc2tSZWN0LmhlaWdodCgpKTsKIAogICAgICAgICAgICAgRmxv
YXRTaXplIHNoYWRvd09mZnNldDsKICAgICAgICAgICAgIGZsb2F0IHNoYWRvd1JhZGl1czsKQEAg
LTI0MjIsNyArMjQwMiw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4
dEludGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAgICAgICAgIGlmICgh
bWFza0ltYWdlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIEdyYXBoaWNzQ29udGV4
dCYgbWFza0ltYWdlQ29udGV4dCA9IG1hc2tJbWFnZS0+Y29udGV4dCgpOworICAgICAgICBhdXRv
JiBtYXNrSW1hZ2VDb250ZXh0ID0gbWFza0ltYWdlLT5jb250ZXh0KCk7CiAKICAgICAgICAgaWYg
KGZpbGwpCiAgICAgICAgICAgICBtYXNrSW1hZ2VDb250ZXh0LnNldEZpbGxDb2xvcihDb2xvcjo6
YmxhY2spOwpAQCAtMjQ0NSw3ICsyNDI1LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OmRyYXdUZXh0SW50ZXJuYWwoY29uc3QgU3RyaW5nJiB0ZXh0LCBmbG9hdCB4LCBmbG8KIAog
ICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmMpOwogICAgICAg
ICBjLT5jbGlwVG9JbWFnZUJ1ZmZlcigqbWFza0ltYWdlLCBtYXNrUmVjdCk7Ci0gICAgICAgIGRy
YXdTdHlsZS5hcHBseUZpbGxDb2xvcihjKTsKKyAgICAgICAgZHJhd1N0eWxlLmFwcGx5RmlsbENv
bG9yKCpjKTsKICAgICAgICAgYy0+ZmlsbFJlY3QobWFza1JlY3QpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtMjQ4NywyNyArMjQ2NywyNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6aW5mbGF0ZVN0cm9rZVJlY3QoRmxvYXRSZWN0JiByZWN0KSBjb25zdAogICAgICAgICBk
ZWx0YSAqPSBzdGF0ZSgpLm1pdGVyTGltaXQ7CiAgICAgZWxzZSBpZiAoc3RhdGUoKS5saW5lQ2Fw
ID09IFNxdWFyZUNhcCkKICAgICAgICAgZGVsdGEgKj0gcm9vdDI7Ci0KICAgICByZWN0LmluZmxh
dGUoZGVsdGEpOwogfQogCiBhdXRvIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Zm9udFByb3h5
KCkgLT4gY29uc3QgRm9udFByb3h5JgogewogICAgIGNhbnZhcygpLmRvY3VtZW50KCkudXBkYXRl
U3R5bGVJZk5lZWRlZCgpOwotCiAgICAgaWYgKCFzdGF0ZSgpLmZvbnQucmVhbGl6ZWQoKSkKICAg
ICAgICAgc2V0Rm9udChzdGF0ZSgpLnVucGFyc2VkRm9udCk7CiAgICAgcmV0dXJuIHN0YXRlKCku
Zm9udDsKIH0KIAogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisKIFBsYXRmb3Jt
TGF5ZXIqIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIGNhbnZhcygpLmJ1ZmZlcigpID8gY2FudmFzKCkuYnVmZmVyKCktPnBsYXRm
b3JtTGF5ZXIoKSA6IDA7CisgICAgcmV0dXJuIGNhbnZhcygpLmJ1ZmZlcigpID8gY2FudmFzKCku
YnVmZmVyKCktPnBsYXRmb3JtTGF5ZXIoKSA6IG51bGxwdHI7CiB9CisKICNlbmRpZgogCi1zdGF0
aWMgSW50ZXJwb2xhdGlvblF1YWxpdHkgc21vb3RoaW5nVG9JbnRlcnBvbGF0aW9uUXVhbGl0eShD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OkltYWdlU21vb3RoaW5nUXVhbGl0eSBxdWFsaXR5KQor
c3RhdGljIGlubGluZSBJbnRlcnBvbGF0aW9uUXVhbGl0eSBzbW9vdGhpbmdUb0ludGVycG9sYXRp
b25RdWFsaXR5KENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6SW1hZ2VTbW9vdGhpbmdRdWFsaXR5
IHF1YWxpdHkpCiB7CiAgICAgc3dpdGNoIChxdWFsaXR5KSB7CiAgICAgY2FzZSBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OkltYWdlU21vb3RoaW5nUXVhbGl0eTo6TG93OgpAQCAtMjU1NCw3ICsy
NTM0LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldEltYWdlU21vb3RoaW5n
RW5hYmxlZChib29sIGVuYWJsZWQpCiAKICAgICByZWFsaXplU2F2ZXMoKTsKICAgICBtb2RpZmlh
YmxlU3RhdGUoKS5pbWFnZVNtb290aGluZ0VuYWJsZWQgPSBlbmFibGVkOwotICAgIEdyYXBoaWNz
Q29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCk7CisgICAgYXV0byogYyA9IGRyYXdpbmdDb250
ZXh0KCk7CiAgICAgaWYgKGMpCiAgICAgICAgIGMtPnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxp
dHkoZW5hYmxlZCA/IHNtb290aGluZ1RvSW50ZXJwb2xhdGlvblF1YWxpdHkoc3RhdGUoKS5pbWFn
ZVNtb290aGluZ1F1YWxpdHkpIDogSW50ZXJwb2xhdGlvbk5vbmUpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAppbmRl
eCA1NGJlOWQwMGNmNTgyM2IxNmQxNjc2OGFkYWU1M2U1YTY1MzFlNjA5Li5lMzlmMWI2NzI4OWVi
OTYzYjY0NzQyZThjNDIzNGVkMTBjMWUyMDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaApAQCAtMzQwLDkgKzM0MCw3
IEBAIHByaXZhdGU6CiAgICAgLy8gVGhlcmVmb3JlLCBhbGwgZm9udCBvcGVyYXRpb25zIG11c3Qg
cGFzcyB0aHJvdWdoIHRoZSBTdGF0ZS4KICAgICBjb25zdCBGb250UHJveHkmIGZvbnRQcm94eSgp
OwogCi0jaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIHZvaWQgY2xlYXJQYXRoRm9y
RGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSgpOwotI2VuZGlmCiAKICAgICB2b2lk
IGJlZ2luQ29tcG9zaXRlTGF5ZXIoKTsKICAgICB2b2lkIGVuZENvbXBvc2l0ZUxheWVyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKaW5kZXggOWFhMGEwNTJm
NDYxYWQ2YjJjNWVhYzZhZmVjMzIzMTU2NWUwMjEzNi4uOWRjOGYwNDhkNzZmOGM5MmJiYTJlMTk5
NmRhOGQ3YWQ4YTJlYjM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0
eWxlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgs
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDA4LCAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQogICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDggRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KQEAgLTUzLDcg
KzUzLDYgQEAgc3RhdGljIENvbG9yIHBhcnNlQ29sb3IoY29uc3QgU3RyaW5nJiBjb2xvclN0cmlu
ZywgRG9jdW1lbnQqIGRvY3VtZW50ID0gbnVsbHB0cikKICAgICBDb2xvciBjb2xvciA9IENTU1Bh
cnNlcjo6cGFyc2VDb2xvcihjb2xvclN0cmluZyk7CiAgICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkK
ICAgICAgICAgcmV0dXJuIGNvbG9yOwotCiAgICAgcmV0dXJuIENTU1BhcnNlcjo6cGFyc2VTeXN0
ZW1Db2xvcihjb2xvclN0cmluZywgZG9jdW1lbnQpOwogfQogCkBAIC03NiwyMDggKzc1LDE1MCBA
QCBDb2xvciBwYXJzZUNvbG9yT3JDdXJyZW50Q29sb3IoY29uc3QgU3RyaW5nJiBjb2xvclN0cmlu
ZywgSFRNTENhbnZhc0VsZW1lbnQqIGNhbgogfQogCiBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUo
Q29sb3IgY29sb3IpCi0gICAgOiBtX2NvbG9yKGNvbG9yKQotICAgICwgbV90eXBlKFJHQkEpCisg
ICAgOiBtX3N0eWxlKGNvbG9yKQogewogfQogCiBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoZmxv
YXQgZ3JheUxldmVsLCBmbG9hdCBhbHBoYSkKLSAgICA6IG1fY29sb3IoQ29sb3IoZ3JheUxldmVs
LCBncmF5TGV2ZWwsIGdyYXlMZXZlbCwgYWxwaGEpKQotICAgICwgbV90eXBlKFJHQkEpCisgICAg
OiBtX3N0eWxlKENvbG9yIHsgZ3JheUxldmVsLCBncmF5TGV2ZWwsIGdyYXlMZXZlbCwgYWxwaGEg
fSkKIHsKIH0KIAogQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGZsb2F0IHIsIGZsb2F0IGcsIGZs
b2F0IGIsIGZsb2F0IGEpCi0gICAgOiBtX2NvbG9yKENvbG9yKHIsIGcsIGIsIGEpKQotICAgICwg
bV90eXBlKFJHQkEpCisgICAgOiBtX3N0eWxlKENvbG9yIHsgciwgZywgYiwgYSB9KQogewogfQog
CiBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoZmxvYXQgYywgZmxvYXQgbSwgZmxvYXQgeSwgZmxv
YXQgaywgZmxvYXQgYSkKLSAgICA6IG1fY215a2EobmV3IENNWUtBVmFsdWVzKENvbG9yKGMsIG0s
IHksIGssIGEpLCBjLCBtLCB5LCBrLCBhKSkKLSAgICAsIG1fdHlwZShDTVlLQSkKKyAgICA6IG1f
c3R5bGUoQ01ZS0FDb2xvciB7IENvbG9yIHsgYywgbSwgeSwgaywgYSB9LCBjLCBtLCB5LCBrLCBh
IH0pCiB7CiB9CiAKLUNhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShQYXNzUmVmUHRyPENhbnZhc0dy
YWRpZW50PiBncmFkaWVudCkKLSAgICA6IG1fZ3JhZGllbnQoZ3JhZGllbnQubGVha1JlZigpKQot
ICAgICwgbV90eXBlKEdyYWRpZW50KQorQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKENhbnZhc0dy
YWRpZW50JiBncmFkaWVudCkKKyAgICA6IG1fc3R5bGUobWFrZVJlZlB0cihncmFkaWVudCkpCiB7
Ci0gICAgaWYgKCFtX2dyYWRpZW50KQotICAgICAgICBtX3R5cGUgPSBJbnZhbGlkOwogfQogCi1D
YW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoUGFzc1JlZlB0cjxDYW52YXNQYXR0ZXJuPiBwYXR0ZXJu
KQotICAgIDogbV9wYXR0ZXJuKHBhdHRlcm4ubGVha1JlZigpKQotICAgICwgbV90eXBlKEltYWdl
UGF0dGVybikKK0NhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShDYW52YXNQYXR0ZXJuJiBwYXR0ZXJu
KQorICAgIDogbV9zdHlsZShtYWtlUmVmUHRyKHBhdHRlcm4pKQogewotICAgIGlmICghbV9wYXR0
ZXJuKQotICAgICAgICBtX3R5cGUgPSBJbnZhbGlkOwogfQogCi1DYW52YXNTdHlsZTo6fkNhbnZh
c1N0eWxlKCkKK2lubGluZSBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoQ3VycmVudENvbG9yIGNv
bG9yKQorICAgIDogbV9zdHlsZShjb2xvcikKIHsKLSAgICBpZiAobV90eXBlID09IEdyYWRpZW50
KQotICAgICAgICBtX2dyYWRpZW50LT5kZXJlZigpOwotICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBJ
bWFnZVBhdHRlcm4pCi0gICAgICAgIG1fcGF0dGVybi0+ZGVyZWYoKTsKLSAgICBlbHNlIGlmICht
X3R5cGUgPT0gQ01ZS0EpCi0gICAgICAgIGRlbGV0ZSBtX2NteWthOwogfQogCiBDYW52YXNTdHls
ZSBDYW52YXNTdHlsZTo6Y3JlYXRlRnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5n
LCBEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgaWYgKGlzQ3VycmVudENvbG9yU3RyaW5nKGNv
bG9yU3RyaW5nKSkKLSAgICAgICAgcmV0dXJuIENhbnZhc1N0eWxlKENvbnN0cnVjdEN1cnJlbnRD
b2xvcik7CisgICAgICAgIHJldHVybiBDdXJyZW50Q29sb3IgeyBzdGQ6Om51bGxvcHQgfTsKIAog
ICAgIENvbG9yIGNvbG9yID0gcGFyc2VDb2xvcihjb2xvclN0cmluZywgZG9jdW1lbnQpOwotICAg
IGlmIChjb2xvci5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiBDYW52YXNTdHlsZShjb2xvcik7
CisgICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBy
ZXR1cm4gQ2FudmFzU3R5bGUoKTsKKyAgICByZXR1cm4gY29sb3I7CiB9CiAKIENhbnZhc1N0eWxl
IENhbnZhc1N0eWxlOjpjcmVhdGVGcm9tU3RyaW5nV2l0aE92ZXJyaWRlQWxwaGEoY29uc3QgU3Ry
aW5nJiBjb2xvclN0cmluZywgZmxvYXQgYWxwaGEpCiB7CiAgICAgaWYgKGlzQ3VycmVudENvbG9y
U3RyaW5nKGNvbG9yU3RyaW5nKSkKLSAgICAgICAgcmV0dXJuIENhbnZhc1N0eWxlKEN1cnJlbnRD
b2xvcldpdGhPdmVycmlkZUFscGhhLCBhbHBoYSk7CisgICAgICAgIHJldHVybiBDdXJyZW50Q29s
b3IgeyBhbHBoYSB9OwogCiAgICAgQ29sb3IgY29sb3IgPSBwYXJzZUNvbG9yKGNvbG9yU3RyaW5n
KTsKLSAgICBpZiAoY29sb3IuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gQ2FudmFzU3R5bGUo
Y29sb3JXaXRoT3ZlcnJpZGVBbHBoYShjb2xvci5yZ2IoKSwgYWxwaGEpKTsKKyAgICBpZiAoIWNv
bG9yLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBDYW52YXNT
dHlsZSgpOworICAgIHJldHVybiBDb2xvciB7IGNvbG9yV2l0aE92ZXJyaWRlQWxwaGEoY29sb3Iu
cmdiKCksIGFscGhhKSB9OwogfQogCiBib29sIENhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDb2xv
cihjb25zdCBDYW52YXNTdHlsZSYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgaWYgKG1fdHlwZSAhPSBv
dGhlci5tX3R5cGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoV1RGOjpob2xkc19h
bHRlcm5hdGl2ZTxDb2xvcj4obV9zdHlsZSkgJiYgV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDb2xv
cj4ob3RoZXIubV9zdHlsZSkpCisgICAgICAgIHJldHVybiBXVEY6OmdldDxDb2xvcj4obV9zdHls
ZSkgPT0gV1RGOjpnZXQ8Q29sb3I+KG90aGVyLm1fc3R5bGUpOwogCi0gICAgc3dpdGNoIChtX3R5
cGUpIHsKLSAgICBjYXNlIFJHQkE6Ci0gICAgICAgIHJldHVybiBtX2NvbG9yID09IG90aGVyLm1f
Y29sb3I7Ci0gICAgY2FzZSBDTVlLQToKLSAgICAgICAgcmV0dXJuIG1fY215a2EtPmMgPT0gb3Ro
ZXIubV9jbXlrYS0+YwotICAgICAgICAgICAgJiYgbV9jbXlrYS0+bSA9PSBvdGhlci5tX2NteWth
LT5tCi0gICAgICAgICAgICAmJiBtX2NteWthLT55ID09IG90aGVyLm1fY215a2EtPnkKLSAgICAg
ICAgICAgICYmIG1fY215a2EtPmsgPT0gb3RoZXIubV9jbXlrYS0+awotICAgICAgICAgICAgJiYg
bV9jbXlrYS0+YSA9PSBvdGhlci5tX2NteWthLT5hOwotICAgIGNhc2UgR3JhZGllbnQ6Ci0gICAg
Y2FzZSBJbWFnZVBhdHRlcm46Ci0gICAgY2FzZSBDdXJyZW50Q29sb3I6Ci0gICAgY2FzZSBDdXJy
ZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBoYToKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNh
c2UgSW52YWxpZDoKLSAgICAgICAgYnJlYWs7CisgICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJuYXRp
dmU8Q01ZS0FDb2xvcj4obV9zdHlsZSkgJiYgV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDTVlLQUNv
bG9yPihvdGhlci5tX3N0eWxlKSkgeworICAgICAgICBhdXRvJiBhID0gV1RGOjpnZXQ8Q01ZS0FD
b2xvcj4obV9zdHlsZSk7CisgICAgICAgIGF1dG8mIGIgPSBXVEY6OmdldDxDTVlLQUNvbG9yPihv
dGhlci5tX3N0eWxlKTsKKyAgICAgICAgcmV0dXJuIGEuYyA9PSBiLmMgJiYgYS5tID09IGIubSAm
JiBhLnkgPT0gYi55ICYmIGEuayA9PSBiLmsgJiYgYS5hID09IGIuYTsKICAgICB9CiAKLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgQ2FudmFz
U3R5bGU6OmlzRXF1aXZhbGVudFJHQkEoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQg
YSkgY29uc3QKIHsKLSAgICBpZiAobV90eXBlICE9IFJHQkEpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIHJldHVybiBtX2NvbG9yID09IENvbG9yKHIsIGcsIGIsIGEpOworICAgIHJldHVy
biBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENvbG9yPihtX3N0eWxlKSAmJiBXVEY6OmdldDxDb2xv
cj4obV9zdHlsZSkgPT0gQ29sb3IgeyByLCBnLCBiLCBhIH07CiB9CiAKIGJvb2wgQ2FudmFzU3R5
bGU6OmlzRXF1aXZhbGVudENNWUtBKGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGss
IGZsb2F0IGEpIGNvbnN0CiB7Ci0gICAgaWYgKG1fdHlwZSAhPSBDTVlLQSkKKyAgICBpZiAoIVdU
Rjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q01ZS0FDb2xvcj4obV9zdHlsZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIHJldHVybiBjID09IG1fY215a2EtPmMKLSAgICAgICAgJiYgbSA9PSBt
X2NteWthLT5tCi0gICAgICAgICYmIHkgPT0gbV9jbXlrYS0+eQotICAgICAgICAmJiBrID09IG1f
Y215a2EtPmsKLSAgICAgICAgJiYgYSA9PSBtX2NteWthLT5hOwotfQotCi1DYW52YXNTdHlsZTo6
Q2FudmFzU3R5bGUoY29uc3QgQ2FudmFzU3R5bGUmIG90aGVyKQotewotICAgIG1lbWNweSh0aGlz
LCAmb3RoZXIsIHNpemVvZihDYW52YXNTdHlsZSkpOwotICAgIGlmIChtX3R5cGUgPT0gR3JhZGll
bnQpCi0gICAgICAgIG1fZ3JhZGllbnQtPnJlZigpOwotICAgIGVsc2UgaWYgKG1fdHlwZSA9PSBJ
bWFnZVBhdHRlcm4pCi0gICAgICAgIG1fcGF0dGVybi0+cmVmKCk7Ci0gICAgZWxzZSBpZiAobV90
eXBlID09IENNWUtBKQotICAgICAgICBtX2NteWthID0gbmV3IENNWUtBVmFsdWVzKG90aGVyLm1f
Y215a2EtPmNvbG9yLCBvdGhlci5tX2NteWthLT5jLCBvdGhlci5tX2NteWthLT5tLCBvdGhlci5t
X2NteWthLT55LCBvdGhlci5tX2NteWthLT5rLCBvdGhlci5tX2NteWthLT5hKTsKLX0KLQotQ2Fu
dmFzU3R5bGUmIENhbnZhc1N0eWxlOjpvcGVyYXRvcj0oY29uc3QgQ2FudmFzU3R5bGUmIG90aGVy
KQotewotICAgIGlmICh0aGlzICE9ICZvdGhlcikgewotICAgICAgICB0aGlzLT5+Q2FudmFzU3R5
bGUoKTsKLSAgICAgICAgbmV3ICh0aGlzKSBDYW52YXNTdHlsZShvdGhlcik7Ci0gICAgfQotICAg
IHJldHVybiAqdGhpczsKKyAgICBhdXRvJiBjaGFubmVscyA9IFdURjo6Z2V0PENNWUtBQ29sb3I+
KG1fc3R5bGUpOworICAgIHJldHVybiBjID09IGNoYW5uZWxzLmMgJiYgbSA9PSBjaGFubmVscy5t
ICYmIHkgPT0gY2hhbm5lbHMueSAmJiBrID09IGNoYW5uZWxzLmsgJiYgYSA9PSBjaGFubmVscy5h
OwogfQogCi12b2lkIENhbnZhc1N0eWxlOjphcHBseVN0cm9rZUNvbG9yKEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCkgY29uc3QKK3ZvaWQgQ2FudmFzU3R5bGU6OmFwcGx5U3Ryb2tlQ29sb3IoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAogewotICAgIGlmICghY29udGV4dCkKLSAgICAg
ICAgcmV0dXJuOwotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBSR0JBOgotICAgICAg
ICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihtX2NvbG9yKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBDTVlLQTogewotICAgICAgICAvLyBGSVhNRTogRG8gdGhpcyB0aHJvdWdoIHBsYXRmb3Jt
LWluZGVwZW5kZW50IEdyYXBoaWNzQ29udGV4dCBBUEkuCi0gICAgICAgIC8vIFdlJ2xsIG5lZWQg
YSBmYW5jaWVyIENvbG9yIGFic3RyYWN0aW9uIHRvIHN1cHBvcnQgQ01ZS0EgY29ycmVjdGx5Cisg
ICAgV1RGOjpzd2l0Y2hPbihtX3N0eWxlLAorICAgICAgICBbJmNvbnRleHRdIChjb25zdCBDb2xv
ciYgY29sb3IpIHsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IoY29sb3IpOwor
ICAgICAgICB9LAorICAgICAgICBbJmNvbnRleHRdIChjb25zdCBDTVlLQUNvbG9yJiBjb2xvcikg
eworICAgICAgICAgICAgLy8gRklYTUU6IERvIHRoaXMgdGhyb3VnaCBwbGF0Zm9ybS1pbmRlcGVu
ZGVudCBHcmFwaGljc0NvbnRleHQgQVBJLgorICAgICAgICAgICAgLy8gV2UnbGwgbmVlZCBhIGZh
bmNpZXIgQ29sb3IgYWJzdHJhY3Rpb24gdG8gc3VwcG9ydCBDTVlLQSBjb3JyZWN0bHkKICNpZiBV
U0UoQ0cpCi0gICAgICAgIENHQ29udGV4dFNldENNWUtTdHJva2VDb2xvcihjb250ZXh0LT5wbGF0
Zm9ybUNvbnRleHQoKSwgbV9jbXlrYS0+YywgbV9jbXlrYS0+bSwgbV9jbXlrYS0+eSwgbV9jbXlr
YS0+aywgbV9jbXlrYS0+YSk7CisgICAgICAgICAgICBDR0NvbnRleHRTZXRDTVlLU3Ryb2tlQ29s
b3IoY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSwgY29sb3IuYywgY29sb3IubSwgY29sb3IueSwg
Y29sb3IuaywgY29sb3IuYSk7CiAjZWxzZQotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xv
cihtX2NteWthLT5jb2xvcik7CisgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGNv
bG9yLmNvbG9yKTsKICNlbmRpZgotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBHcmFk
aWVudDoKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlR3JhZGllbnQoY2FudmFzR3JhZGllbnQo
KS0+Z3JhZGllbnQoKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW1hZ2VQYXR0ZXJuOgot
ICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VQYXR0ZXJuKGNhbnZhc1BhdHRlcm4oKS0+cGF0dGVy
bigpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDdXJyZW50Q29sb3I6Ci0gICAgY2FzZSBD
dXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBoYToKLSAgICBjYXNlIEludmFsaWQ6Ci0gICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLXZvaWQg
Q2FudmFzU3R5bGU6OmFwcGx5RmlsbENvbG9yKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkgY29u
c3QKLXsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICBzd2l0Y2ggKG1f
dHlwZSkgewotICAgIGNhc2UgUkdCQToKLSAgICAgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKG1f
Y29sb3IpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENNWUtBOiB7Ci0gICAgICAgIC8vIEZJ
WE1FOiBEbyB0aGlzIHRocm91Z2ggcGxhdGZvcm0taW5kZXBlbmRlbnQgR3JhcGhpY3NDb250ZXh0
IEFQSS4KLSAgICAgICAgLy8gV2UnbGwgbmVlZCBhIGZhbmNpZXIgQ29sb3IgYWJzdHJhY3Rpb24g
dG8gc3VwcG9ydCBDTVlLQSBjb3JyZWN0bHkKKyAgICAgICAgfSwKKyAgICAgICAgWyZjb250ZXh0
XSAoY29uc3QgUmVmUHRyPENhbnZhc0dyYWRpZW50PiYgZ3JhZGllbnQpIHsKKyAgICAgICAgICAg
IGNvbnRleHQuc2V0U3Ryb2tlR3JhZGllbnQoZ3JhZGllbnQtPmdyYWRpZW50KCkpOworICAgICAg
ICB9LAorICAgICAgICBbJmNvbnRleHRdIChjb25zdCBSZWZQdHI8Q2FudmFzUGF0dGVybj4mIHBh
dHRlcm4pIHsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlUGF0dGVybihwYXR0ZXJuLT5w
YXR0ZXJuKCkpOworICAgICAgICB9LAorICAgICAgICBbXSAoY29uc3QgQ3VycmVudENvbG9yJikg
eworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0sCisgICAgICAg
IFtdIChjb25zdCBJbnZhbGlkJikgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIH0KKyAgICApOworfQorCit2b2lkIENhbnZhc1N0eWxlOjphcHBseUZpbGxDb2xv
cihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0Cit7CisgICAgV1RGOjpzd2l0Y2hPbiht
X3N0eWxlLAorICAgICAgICBbJmNvbnRleHRdIChjb25zdCBDb2xvciYgY29sb3IpIHsKKyAgICAg
ICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGNvbG9yKTsKKyAgICAgICAgfSwKKyAgICAgICAg
WyZjb250ZXh0XSAoY29uc3QgQ01ZS0FDb2xvciYgY29sb3IpIHsKKyAgICAgICAgICAgIC8vIEZJ
WE1FOiBEbyB0aGlzIHRocm91Z2ggcGxhdGZvcm0taW5kZXBlbmRlbnQgR3JhcGhpY3NDb250ZXh0
IEFQSS4KKyAgICAgICAgICAgIC8vIFdlJ2xsIG5lZWQgYSBmYW5jaWVyIENvbG9yIGFic3RyYWN0
aW9uIHRvIHN1cHBvcnQgQ01ZS0EgY29ycmVjdGx5CiAjaWYgVVNFKENHKQotICAgICAgICBDR0Nv
bnRleHRTZXRDTVlLRmlsbENvbG9yKGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLCBtX2NteWth
LT5jLCBtX2NteWthLT5tLCBtX2NteWthLT55LCBtX2NteWthLT5rLCBtX2NteWthLT5hKTsKKyAg
ICAgICAgICAgIENHQ29udGV4dFNldENNWUtGaWxsQ29sb3IoY29udGV4dC5wbGF0Zm9ybUNvbnRl
eHQoKSwgY29sb3IuYywgY29sb3IubSwgY29sb3IueSwgY29sb3IuaywgY29sb3IuYSk7CiAjZWxz
ZQotICAgICAgICBjb250ZXh0LT5zZXRGaWxsQ29sb3IobV9jbXlrYS0+Y29sb3IpOworICAgICAg
ICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IoY29sb3IuY29sb3IpOwogI2VuZGlmCi0gICAgICAg
IGJyZWFrOwotICAgIH0KLSAgICBjYXNlIEdyYWRpZW50OgotICAgICAgICBjb250ZXh0LT5zZXRG
aWxsR3JhZGllbnQoY2FudmFzR3JhZGllbnQoKS0+Z3JhZGllbnQoKSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgSW1hZ2VQYXR0ZXJuOgotICAgICAgICBjb250ZXh0LT5zZXRGaWxsUGF0dGVy
bihjYW52YXNQYXR0ZXJuKCktPnBhdHRlcm4oKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
Q3VycmVudENvbG9yOgotICAgIGNhc2UgQ3VycmVudENvbG9yV2l0aE92ZXJyaWRlQWxwaGE6Ci0g
ICAgY2FzZSBJbnZhbGlkOgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgfQorICAgICAgICB9LAorICAgICAgICBbJmNvbnRleHRdIChjb25zdCBSZWZQ
dHI8Q2FudmFzR3JhZGllbnQ+JiBncmFkaWVudCkgeworICAgICAgICAgICAgY29udGV4dC5zZXRG
aWxsR3JhZGllbnQoZ3JhZGllbnQtPmdyYWRpZW50KCkpOworICAgICAgICB9LAorICAgICAgICBb
JmNvbnRleHRdIChjb25zdCBSZWZQdHI8Q2FudmFzUGF0dGVybj4mIHBhdHRlcm4pIHsKKyAgICAg
ICAgICAgIGNvbnRleHQuc2V0RmlsbFBhdHRlcm4ocGF0dGVybi0+cGF0dGVybigpKTsKKyAgICAg
ICAgfSwKKyAgICAgICAgW10gKGNvbnN0IEN1cnJlbnRDb2xvciYpIHsKKyAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9LAorICAgICAgICBbXSAoY29uc3QgSW52YWxp
ZCYpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAg
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
U3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgKaW5kZXgg
YjZiZjQ3YzQwM2MzZDllOTU2MDU2OTE0YTA0YmJjMzBhMGFhYmEyYi4uZDc4MDMwYWM5ZWYwNjc5
ODFlY2EwZThlZGU2ZDRiNzI0ODZmNWJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNTdHlsZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CkBAIC0yNiwxMzUgKzI2LDEwMCBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgIkNhbnZhc0dyYWRpZW50LmgiCisjaW5jbHVkZSAiQ2FudmFzUGF0dGVybi5o
IgogI2luY2x1ZGUgIkNvbG9yLmgiCi0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBDYW52YXNHcmFkaWVudDsKLSAgICBjbGFz
cyBDYW52YXNQYXR0ZXJuOwotICAgIGNsYXNzIERvY3VtZW50OwotICAgIGNsYXNzIEdyYXBoaWNz
Q29udGV4dDsKLSAgICBjbGFzcyBIVE1MQ2FudmFzRWxlbWVudDsKLQotICAgIGNsYXNzIENhbnZh
c1N0eWxlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIENhbnZhc1N0eWxlKCk7Ci0gICAgICAgIGV4
cGxpY2l0IENhbnZhc1N0eWxlKENvbG9yKTsKLSAgICAgICAgQ2FudmFzU3R5bGUoZmxvYXQgZ3Jh
eUxldmVsLCBmbG9hdCBhbHBoYSk7Ci0gICAgICAgIENhbnZhc1N0eWxlKGZsb2F0IHIsIGZsb2F0
IGcsIGZsb2F0IGIsIGZsb2F0IGFscGhhKTsKLSAgICAgICAgQ2FudmFzU3R5bGUoZmxvYXQgYywg
ZmxvYXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYWxwaGEpOwotICAgICAgICBleHBsaWNp
dCBDYW52YXNTdHlsZShQYXNzUmVmUHRyPENhbnZhc0dyYWRpZW50Pik7Ci0gICAgICAgIGV4cGxp
Y2l0IENhbnZhc1N0eWxlKFBhc3NSZWZQdHI8Q2FudmFzUGF0dGVybj4pOwotICAgICAgICB+Q2Fu
dmFzU3R5bGUoKTsKLQotICAgICAgICBzdGF0aWMgQ2FudmFzU3R5bGUgY3JlYXRlRnJvbVN0cmlu
Zyhjb25zdCBTdHJpbmcmIGNvbG9yLCBEb2N1bWVudCogPSAwKTsKLSAgICAgICAgc3RhdGljIENh
bnZhc1N0eWxlIGNyZWF0ZUZyb21TdHJpbmdXaXRoT3ZlcnJpZGVBbHBoYShjb25zdCBTdHJpbmcm
IGNvbG9yLCBmbG9hdCBhbHBoYSk7Ci0KLSAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlICE9IEludmFsaWQ7IH0KLSAgICAgICAgYm9vbCBpc0N1cnJlbnRDb2xvcigp
IGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBDdXJyZW50Q29sb3IgfHwgbV90eXBlID09IEN1cnJl
bnRDb2xvcldpdGhPdmVycmlkZUFscGhhOyB9Ci0gICAgICAgIGJvb2wgaGFzT3ZlcnJpZGVBbHBo
YSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBDdXJyZW50Q29sb3JXaXRoT3ZlcnJpZGVBbHBo
YTsgfQotICAgICAgICBmbG9hdCBvdmVycmlkZUFscGhhKCkgY29uc3QgeyBBU1NFUlQobV90eXBl
ID09IEN1cnJlbnRDb2xvcldpdGhPdmVycmlkZUFscGhhKTsgcmV0dXJuIG1fb3ZlcnJpZGVBbHBo
YTsgfQotCi0gICAgICAgIFN0cmluZyBjb2xvcigpIGNvbnN0OwotICAgICAgICBDYW52YXNHcmFk
aWVudCogY2FudmFzR3JhZGllbnQoKSBjb25zdDsKLSAgICAgICAgQ2FudmFzUGF0dGVybiogY2Fu
dmFzUGF0dGVybigpIGNvbnN0OwotCi0gICAgICAgIHZvaWQgYXBwbHlGaWxsQ29sb3IoR3JhcGhp
Y3NDb250ZXh0KikgY29uc3Q7Ci0gICAgICAgIHZvaWQgYXBwbHlTdHJva2VDb2xvcihHcmFwaGlj
c0NvbnRleHQqKSBjb25zdDsKLQotICAgICAgICBib29sIGlzRXF1aXZhbGVudENvbG9yKGNvbnN0
IENhbnZhc1N0eWxlJikgY29uc3Q7Ci0gICAgICAgIGJvb2wgaXNFcXVpdmFsZW50UkdCQShmbG9h
dCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhKSBjb25zdDsKLSAgICAgICAgYm9vbCBpc0Vx
dWl2YWxlbnRDTVlLQShmbG9hdCBjLCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBh
KSBjb25zdDsKLQotICAgICAgICBDYW52YXNTdHlsZShjb25zdCBDYW52YXNTdHlsZSYpOwotICAg
ICAgICBDYW52YXNTdHlsZSYgb3BlcmF0b3I9KGNvbnN0IENhbnZhc1N0eWxlJik7Ci0gICAgICAg
IENhbnZhc1N0eWxlKENhbnZhc1N0eWxlJiYpOwotICAgICAgICBDYW52YXNTdHlsZSYgb3BlcmF0
b3I9KENhbnZhc1N0eWxlJiYpOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgZW51bSBUeXBlIHsg
UkdCQSwgQ01ZS0EsIEdyYWRpZW50LCBJbWFnZVBhdHRlcm4sIEN1cnJlbnRDb2xvciwgQ3VycmVu
dENvbG9yV2l0aE92ZXJyaWRlQWxwaGEsIEludmFsaWQgfTsKLSAgICAgICAgc3RydWN0IENNWUtB
VmFsdWVzIHsKLSAgICAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgICAgICAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ01ZS0FWYWx1ZXMpOwotICAgICAgICBwdWJsaWM6Ci0g
ICAgICAgICAgICBDTVlLQVZhbHVlcygpCi0gICAgICAgICAgICAgICAgOiBjb2xvcigpLCBjKDAp
LCBtKDApLCB5KDApLCBrKDApLCBhKDApCi0gICAgICAgICAgICB7IH0KLQotICAgICAgICAgICAg
Q01ZS0FWYWx1ZXMoQ29sb3IgY29sb3IsIGZsb2F0IGN5YW4sIGZsb2F0IG1hZ2VudGEsIGZsb2F0
IHllbGxvdywgZmxvYXQgYmxhY2ssIGZsb2F0IGFscGhhKQotICAgICAgICAgICAgICAgIDogY29s
b3IoY29sb3IpLCBjKGN5YW4pLCBtKG1hZ2VudGEpLCB5KHllbGxvdyksIGsoYmxhY2spLCBhKGFs
cGhhKQotICAgICAgICAgICAgeyB9Ci0gICAgICAgICAgICBDb2xvciBjb2xvcjsKLSAgICAgICAg
ICAgIGZsb2F0IGM7Ci0gICAgICAgICAgICBmbG9hdCBtOwotICAgICAgICAgICAgZmxvYXQgeTsK
LSAgICAgICAgICAgIGZsb2F0IGs7Ci0gICAgICAgICAgICBmbG9hdCBhOwotICAgICAgICB9Owot
Ci0gICAgICAgIGVudW0gQ29uc3RydWN0Q3VycmVudENvbG9yVGFnIHsgQ29uc3RydWN0Q3VycmVu
dENvbG9yIH07Ci0gICAgICAgIENhbnZhc1N0eWxlKENvbnN0cnVjdEN1cnJlbnRDb2xvclRhZykg
OiBtX3R5cGUoQ3VycmVudENvbG9yKSB7IH0KLSAgICAgICAgQ2FudmFzU3R5bGUoVHlwZSB0eXBl
LCBmbG9hdCBvdmVycmlkZUFscGhhKQotICAgICAgICAgICAgOiBtX292ZXJyaWRlQWxwaGEob3Zl
cnJpZGVBbHBoYSkKLSAgICAgICAgICAgICwgbV90eXBlKHR5cGUpCitjbGFzcyBEb2N1bWVudDsK
K2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKK2NsYXNzIEhUTUxDYW52YXNFbGVtZW50OworCitjbGFz
cyBDYW52YXNTdHlsZSB7CitwdWJsaWM6CisgICAgQ2FudmFzU3R5bGUoKTsKKyAgICBDYW52YXNT
dHlsZShDb2xvcik7CisgICAgQ2FudmFzU3R5bGUoZmxvYXQgZ3JheUxldmVsLCBmbG9hdCBhbHBo
YSk7CisgICAgQ2FudmFzU3R5bGUoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQgYWxw
aGEpOworICAgIENhbnZhc1N0eWxlKGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGss
IGZsb2F0IGFscGhhKTsKKyAgICBDYW52YXNTdHlsZShDYW52YXNHcmFkaWVudCYpOworICAgIENh
bnZhc1N0eWxlKENhbnZhc1BhdHRlcm4mKTsKKworICAgIHN0YXRpYyBDYW52YXNTdHlsZSBjcmVh
dGVGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgY29sb3IsIERvY3VtZW50KiA9IG51bGxwdHIpOwor
ICAgIHN0YXRpYyBDYW52YXNTdHlsZSBjcmVhdGVGcm9tU3RyaW5nV2l0aE92ZXJyaWRlQWxwaGEo
Y29uc3QgU3RyaW5nJiBjb2xvciwgZmxvYXQgYWxwaGEpOworCisgICAgYm9vbCBpc1ZhbGlkKCkg
Y29uc3QgeyByZXR1cm4gIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8SW52YWxpZD4obV9zdHlsZSk7
IH0KKyAgICBib29sIGlzQ3VycmVudENvbG9yKCkgY29uc3QgeyByZXR1cm4gV1RGOjpob2xkc19h
bHRlcm5hdGl2ZTxDdXJyZW50Q29sb3I+KG1fc3R5bGUpOyB9CisgICAgYm9vbCBoYXNPdmVycmlk
ZUFscGhhKCkgY29uc3QgeyByZXR1cm4gaXNDdXJyZW50Q29sb3IoKSAmJiBXVEY6OmdldDxDdXJy
ZW50Q29sb3I+KG1fc3R5bGUpLm92ZXJyaWRlQWxwaGE7IH0KKyAgICBmbG9hdCBvdmVycmlkZUFs
cGhhKCkgY29uc3QgeyByZXR1cm4gV1RGOjpnZXQ8Q3VycmVudENvbG9yPihtX3N0eWxlKS5vdmVy
cmlkZUFscGhhLnZhbHVlKCk7IH0KKworICAgIFN0cmluZyBjb2xvcigpIGNvbnN0OworICAgIENh
bnZhc0dyYWRpZW50KiBjYW52YXNHcmFkaWVudCgpIGNvbnN0OworICAgIENhbnZhc1BhdHRlcm4q
IGNhbnZhc1BhdHRlcm4oKSBjb25zdDsKKworICAgIHZvaWQgYXBwbHlGaWxsQ29sb3IoR3JhcGhp
Y3NDb250ZXh0JikgY29uc3Q7CisgICAgdm9pZCBhcHBseVN0cm9rZUNvbG9yKEdyYXBoaWNzQ29u
dGV4dCYpIGNvbnN0OworCisgICAgYm9vbCBpc0VxdWl2YWxlbnRDb2xvcihjb25zdCBDYW52YXNT
dHlsZSYpIGNvbnN0OworICAgIGJvb2wgaXNFcXVpdmFsZW50UkdCQShmbG9hdCByZWQsIGZsb2F0
IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSkgY29uc3Q7CisgICAgYm9vbCBpc0VxdWl2
YWxlbnRDTVlLQShmbG9hdCBjeWFuLCBmbG9hdCBtYWdlbnRhLCBmbG9hdCB5ZWxsb3csIGZsb2F0
IGJsYWNrLCBmbG9hdCBhbHBoYSkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgc3RydWN0IEludmFs
aWQgeyB9OworCisgICAgc3RydWN0IENNWUtBQ29sb3IgeworICAgICAgICBDTVlLQUNvbG9yKCkg
PSBkZWZhdWx0OworCisgICAgICAgIENNWUtBQ29sb3IoQ29sb3IgY29sb3IsIGZsb2F0IGN5YW4s
IGZsb2F0IG1hZ2VudGEsIGZsb2F0IHllbGxvdywgZmxvYXQgYmxhY2ssIGZsb2F0IGFscGhhKQor
ICAgICAgICAgICAgOiBjb2xvcihjb2xvciksIGMoY3lhbiksIG0obWFnZW50YSksIHkoeWVsbG93
KSwgayhibGFjayksIGEoYWxwaGEpCiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIHVu
aW9uIHsKLSAgICAgICAgICAgIENvbG9yIG1fY29sb3I7Ci0gICAgICAgICAgICBmbG9hdCBtX292
ZXJyaWRlQWxwaGE7Ci0gICAgICAgICAgICBDYW52YXNHcmFkaWVudCogbV9ncmFkaWVudDsKLSAg
ICAgICAgICAgIENhbnZhc1BhdHRlcm4qIG1fcGF0dGVybjsKLSAgICAgICAgICAgIENNWUtBVmFs
dWVzKiBtX2NteWthOwotICAgICAgICB9OwotICAgICAgICBUeXBlIG1fdHlwZTsKKyAgICAgICAg
Q29sb3IgY29sb3I7CisgICAgICAgIGZsb2F0IGMgeyAwIH07CisgICAgICAgIGZsb2F0IG0geyAw
IH07CisgICAgICAgIGZsb2F0IHkgeyAwIH07CisgICAgICAgIGZsb2F0IGsgeyAwIH07CisgICAg
ICAgIGZsb2F0IGEgeyAwIH07CiAgICAgfTsKIAotICAgIENvbG9yIGN1cnJlbnRDb2xvcihIVE1M
Q2FudmFzRWxlbWVudCopOwotICAgIENvbG9yIHBhcnNlQ29sb3JPckN1cnJlbnRDb2xvcihjb25z
dCBTdHJpbmcmIGNvbG9yU3RyaW5nLCBIVE1MQ2FudmFzRWxlbWVudCopOwotCi0gICAgaW5saW5l
IENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZSgpCi0gICAgICAgIDogbV90eXBlKEludmFsaWQpCi0g
ICAgewotICAgIH0KLQotICAgIGlubGluZSBDYW52YXNHcmFkaWVudCogQ2FudmFzU3R5bGU6OmNh
bnZhc0dyYWRpZW50KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmIChtX3R5cGUgPT0gR3JhZGll
bnQpCi0gICAgICAgICAgICByZXR1cm4gbV9ncmFkaWVudDsKLSAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgfQotCi0gICAgaW5saW5lIENhbnZhc1BhdHRlcm4qIENhbnZhc1N0eWxlOjpjYW52YXNQYXR0
ZXJuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmIChtX3R5cGUgPT0gSW1hZ2VQYXR0ZXJuKQot
ICAgICAgICAgICAgcmV0dXJuIG1fcGF0dGVybjsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQot
Ci0gICAgaW5saW5lIFN0cmluZyBDYW52YXNTdHlsZTo6Y29sb3IoKSBjb25zdAotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG1fdHlwZSA9PSBSR0JBIHx8IG1fdHlwZSA9PSBDTVlLQSk7Ci0gICAgICAg
IGlmIChtX3R5cGUgPT0gUkdCQSkKLSAgICAgICAgICAgIHJldHVybiBtX2NvbG9yLnNlcmlhbGl6
ZWQoKTsKLSAgICAgICAgcmV0dXJuIG1fY215a2EtPmNvbG9yLnNlcmlhbGl6ZWQoKTsKLSAgICB9
Ci0KLSAgICBpbmxpbmUgQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKENhbnZhc1N0eWxlJiYgb3Ro
ZXIpCi0gICAgewotICAgICAgICBtZW1jcHkodGhpcywgJm90aGVyLCBzaXplb2YoQ2FudmFzU3R5
bGUpKTsKLSAgICAgICAgb3RoZXIubV90eXBlID0gSW52YWxpZDsKLSAgICB9Ci0KLSAgICBpbmxp
bmUgQ2FudmFzU3R5bGUmIENhbnZhc1N0eWxlOjpvcGVyYXRvcj0oQ2FudmFzU3R5bGUmJiBvdGhl
cikKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzICE9ICZvdGhlcikgewotICAgICAgICAgICAgbWVt
Y3B5KHRoaXMsICZvdGhlciwgc2l6ZW9mKENhbnZhc1N0eWxlKSk7Ci0gICAgICAgICAgICBvdGhl
ci5tX3R5cGUgPSBJbnZhbGlkOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAg
ICB9CisgICAgc3RydWN0IEN1cnJlbnRDb2xvciB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8Zmxv
YXQ+IG92ZXJyaWRlQWxwaGE7CisgICAgfTsKKworICAgIENhbnZhc1N0eWxlKEN1cnJlbnRDb2xv
cik7CisKKyAgICBWYXJpYW50PEludmFsaWQsIENvbG9yLCBDTVlLQUNvbG9yLCBSZWZQdHI8Q2Fu
dmFzR3JhZGllbnQ+LCBSZWZQdHI8Q2FudmFzUGF0dGVybj4sIEN1cnJlbnRDb2xvcj4gbV9zdHls
ZTsKK307CisKK0NvbG9yIGN1cnJlbnRDb2xvcihIVE1MQ2FudmFzRWxlbWVudCopOworQ29sb3Ig
cGFyc2VDb2xvck9yQ3VycmVudENvbG9yKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcsIEhUTUxD
YW52YXNFbGVtZW50Kik7CisKK2lubGluZSBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoKQorICAg
IDogbV9zdHlsZShJbnZhbGlkIHsgfSkKK3sKK30KKworaW5saW5lIENhbnZhc0dyYWRpZW50KiBD
YW52YXNTdHlsZTo6Y2FudmFzR3JhZGllbnQoKSBjb25zdAoreworICAgIGlmICghV1RGOjpob2xk
c19hbHRlcm5hdGl2ZTxSZWZQdHI8Q2FudmFzR3JhZGllbnQ+PihtX3N0eWxlKSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFdURjo6Z2V0PFJlZlB0cjxDYW52YXNHcmFkaWVu
dD4+KG1fc3R5bGUpLmdldCgpOworfQorCitpbmxpbmUgQ2FudmFzUGF0dGVybiogQ2FudmFzU3R5
bGU6OmNhbnZhc1BhdHRlcm4oKSBjb25zdAoreworICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5h
dGl2ZTxSZWZQdHI8Q2FudmFzUGF0dGVybj4+KG1fc3R5bGUpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gV1RGOjpnZXQ8UmVmUHRyPENhbnZhc1BhdHRlcm4+PihtX3N0eWxl
KS5nZXQoKTsKK30KKworaW5saW5lIFN0cmluZyBDYW52YXNTdHlsZTo6Y29sb3IoKSBjb25zdAor
eworICAgIGF1dG8mIGNvbG9yID0gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDb2xvcj4obV9zdHls
ZSkgPyBXVEY6OmdldDxDb2xvcj4obV9zdHlsZSkgOiBXVEY6OmdldDxDTVlLQUNvbG9yPihtX3N0
eWxlKS5jb2xvcjsKKyAgICByZXR1cm4gY29sb3Iuc2VyaWFsaXplZCgpOworfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9P
RVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNW
ZXJ0ZXhBcnJheU9iamVjdC5jcHAKaW5kZXggYzhiMTBmN2JmYmM2ODFkOGFhODU5NTlhM2YxZTI3
ZDYzNzhlNjlhZS4uMTExYmMzYmU2NmM0NDg3ODYzYmJiNGM2OWMxNGVkY2FmMzAxOTA0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0
LmNwcApAQCAtMjQsMTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIk9FU1ZlcnRleEFycmF5T2JqZWN0LmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNp
bmNsdWRlICJPRVNWZXJ0ZXhBcnJheU9iamVjdC5oIgotCiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNE
LmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCiAKQEAgLTQ5LDggKzQ4LDgg
QEAgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IE9FU1ZlcnRleEFycmF5T2JqZWN0
OjpjcmVhdGVWZXJ0ZXhBcnJheU9FUygpCiAgICAgaWYgKG1fY29udGV4dC5pc0NvbnRleHRMb3N0
KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBvYmplY3QgPSBXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUobV9jb250ZXh0LCBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTOjpWQU9UeXBlVXNlcik7Ci0gICAgbV9jb250ZXh0LmFkZENvbnRleHRPYmplY3Qob2Jq
ZWN0LnB0cigpKTsKKyAgICBhdXRvIG9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6
OmNyZWF0ZShtX2NvbnRleHQsIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OlR5cGU6OlVzZXIp
OworICAgIG1fY29udGV4dC5hZGRDb250ZXh0T2JqZWN0KG9iamVjdC5nZXQoKSk7CiAgICAgcmV0
dXJuIFdURk1vdmUob2JqZWN0KTsKIH0KIApAQCAtNTgsOSArNTcsOSBAQCB2b2lkIE9FU1ZlcnRl
eEFycmF5T2JqZWN0OjpkZWxldGVWZXJ0ZXhBcnJheU9FUyhXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTKiBhcnJheQogewogICAgIGlmICghYXJyYXlPYmplY3QgfHwgbV9jb250ZXh0LmlzQ29udGV4
dExvc3QoKSkKICAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGlmICghYXJyYXlPYmplY3QtPmlz
RGVmYXVsdE9iamVjdCgpICYmIGFycmF5T2JqZWN0ID09IHN0YXRpY19jYXN0PFdlYkdMUmVuZGVy
aW5nQ29udGV4dCo+KCZtX2NvbnRleHQpLT5tX2JvdW5kVmVydGV4QXJyYXlPYmplY3QpCi0gICAg
ICAgIHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCo+KCZtX2NvbnRleHQpLT5zZXRC
b3VuZFZlcnRleEFycmF5T2JqZWN0KDApOworCisgICAgaWYgKCFhcnJheU9iamVjdC0+aXNEZWZh
dWx0T2JqZWN0KCkgJiYgYXJyYXlPYmplY3QgPT0gc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdD
b250ZXh0Jj4obV9jb250ZXh0KS5tX2JvdW5kVmVydGV4QXJyYXlPYmplY3QpCisgICAgICAgIHN0
YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCY+KG1fY29udGV4dCkuc2V0Qm91bmRWZXJ0
ZXhBcnJheU9iamVjdChudWxscHRyKTsKIAogICAgIGFycmF5T2JqZWN0LT5kZWxldGVPYmplY3Qo
bV9jb250ZXh0LmdyYXBoaWNzQ29udGV4dDNEKCkpOwogfQpAQCAtODksNyArODgsNyBAQCB2b2lk
IE9FU1ZlcnRleEFycmF5T2JqZWN0OjpiaW5kVmVydGV4QXJyYXlPRVMoV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdE9FUyogYXJyYXlPYgogICAgICAgICBjb250ZXh0LnNldEJvdW5kVmVydGV4QXJyYXlP
YmplY3QoYXJyYXlPYmplY3QpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGV4dGVuc2lvbnMuYmlu
ZFZlcnRleEFycmF5T0VTKDApOwotICAgICAgICBjb250ZXh0LnNldEJvdW5kVmVydGV4QXJyYXlP
YmplY3QoMCk7CisgICAgICAgIGNvbnRleHQuc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChudWxs
cHRyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggNDgwYTBjYTk1YjUxODMxMjM4MGM5Y2Vm
Yjg0NDhmMjU5MTA4MTgxNy4uNzljMTNjMmY2ZDNkZDJjNmNlNTA3YjFjMWE1ZmY1MDZkOGZkY2Jm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVy
aW5nQ29udGV4dC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjQsMTAgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgotCi0jaWYgRU5BQkxFKFdFQkdMKSAmJiBFTkFCTEUoV0VCR0wyKQogI2luY2x1ZGUgIldlYkdM
MlJlbmRlcmluZ0NvbnRleHQuaCIKIAorI2lmIEVOQUJMRShXRUJHTDIpCisKICNpbmNsdWRlICJD
YWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIgog
I2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgpAQCAtNjMsNyArNjMsNyBAQCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiBwYXNz
ZWRDYW52YXMsCiB7CiB9CiAKLVdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OldlYkdMMlJlbmRlcmlu
Z0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUmVmUHRyPEdyYXBoaWNz
Q29udGV4dDNEPiYmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1
dGVzKQorV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1M
Q2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLCBSZWY8R3JhcGhpY3NDb250ZXh0M0Q+JiYgY29u
dGV4dCwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgOiBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlKHBhc3NlZENhbnZhcywgV1RGTW92ZShjb250ZXh0KSwgYXR0
cmlidXRlcykKIHsKICAgICBpbml0aWFsaXplU2hhZGVyRXh0ZW5zaW9ucygpOwpAQCAtNzIsOCAr
NzIsOCBAQCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0KEhU
TUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsCiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cygpCiB7Ci0gICAgbV9kZWZhdWx0VmVy
dGV4QXJyYXlPYmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoKnRoaXMsIFdl
YkdMVmVydGV4QXJyYXlPYmplY3Q6OlZBT1R5cGVEZWZhdWx0KTsKLSAgICBhZGRDb250ZXh0T2Jq
ZWN0KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0LmdldCgpKTsKKyAgICBtX2RlZmF1bHRWZXJ0
ZXhBcnJheU9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZSgqdGhpcywgV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdDo6VHlwZTo6RGVmYXVsdCk7CisgICAgYWRkQ29udGV4dE9iamVj
dCgqbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QpOwogICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9i
amVjdCA9IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OwogICAgIGlmICghaXNHTEVTMkNvbXBs
aWFudCgpKQogICAgICAgICBpbml0VmVydGV4QXR0cmliMCgpOwpAQCAtMjAzLDcgKzIwMyw3IEBA
IHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y29weUJ1ZmZlclN1YkRhdGEoR0MzRGVudW0g
cmVhZFRhcmdldCwgR0MzRGVudW0gd3JpCiAgICAgfQogCiAgICAgbV9jb250ZXh0LT5tb3ZlRXJy
b3JzVG9TeW50aGV0aWNFcnJvckxpc3QoKTsKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JN
KElPUykKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBtX2NvbnRleHQtPmNvcHlCdWZmZXJTdWJE
YXRhKHJlYWRUYXJnZXQsIHdyaXRlVGFyZ2V0LCBjaGVja2VkUmVhZE9mZnNldC51bnNhZmVHZXQo
KSwgY2hlY2tlZFdyaXRlT2Zmc2V0LnVuc2FmZUdldCgpLCBjaGVja2VkU2l6ZS51bnNhZmVHZXQo
KSk7CiAjZW5kaWYKICAgICBpZiAobV9jb250ZXh0LT5tb3ZlRXJyb3JzVG9TeW50aGV0aWNFcnJv
ckxpc3QoKSkgewpAQCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0QnVmZmVyU3ViRGF0YShHQzNEZW51bSB0YXJnZXQsIGxvbmcgbG9uZyBzcmNCeXRlCiAg
ICAgfQogCiAgICAgbV9jb250ZXh0LT5tb3ZlRXJyb3JzVG9TeW50aGV0aWNFcnJvckxpc3QoKTsK
LSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShDT0NPQSkK
ICAgICAvLyBGSVhNRTogQ29hbGVzY2UgbXVsdGlwbGUgZ2V0QnVmZmVyU3ViRGF0YSgpIGNhbGxz
IHRvIHVzZSBhIHNpbmdsZSBtYXAoKSBjYWxsCiAgICAgdm9pZCogcHRyID0gbV9jb250ZXh0LT5t
YXBCdWZmZXJSYW5nZSh0YXJnZXQsIGNoZWNrZWRTcmNCeXRlT2Zmc2V0LnVuc2FmZUdldCgpLCBz
dGF0aWNfY2FzdDxHQzNEc2l6ZWlwdHI+KGNoZWNrZWRDb3B5TGVuZ3RoUHRyLnVuc2FmZUdldCgp
ICogY2hlY2tlZEVsZW1lbnRTaXplLnVuc2FmZUdldCgpKSwgR3JhcGhpY3NDb250ZXh0M0Q6Ok1B
UF9SRUFEX0JJVCk7CiAgICAgbWVtY3B5KHN0YXRpY19jYXN0PGNoYXIqPihkc3REYXRhLT5iYXNl
QWRkcmVzcygpKSArIGRzdERhdGEtPmJ5dGVPZmZzZXQoKSArIGRzdE9mZnNldCAqIGVsZW1lbnRT
aXplLCBwdHIsIGNvcHlMZW5ndGggKiBlbGVtZW50U2l6ZSk7CkBAIC0yOTAsMTYgKzI5MCwxNiBA
QCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmZyYW1lYnVmZmVyVGV4dHVyZUxheWVyKEdD
M0RlbnVtLCBHQzNEZW51bSwgR0MzRHVpbgogewogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoR0MzRGVudW0sIEdDM0Rl
bnVtLCBHQzNEZW51bSkKK1dlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEludGVy
bmFsZm9ybWF0UGFyYW1ldGVyKEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGVudW0pCiB7Ci0gICAg
cmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIHJldHVybiBudWxscHRyOwogfQogCi12b2lkIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmludmFsaWRhdGVGcmFtZWJ1ZmZlcihHQzNEZW51bSwgVmVj
dG9yPEdDM0RlbnVtPikKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aW52YWxpZGF0ZUZy
YW1lYnVmZmVyKEdDM0RlbnVtLCBjb25zdCBWZWN0b3I8R0MzRGVudW0+JikKIHsKIH0KIAotdm9p
ZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjppbnZhbGlkYXRlU3ViRnJhbWVidWZmZXIoR0MzRGVu
dW0sIFZlY3RvcjxHQzNEZW51bT4sIEdDM0RpbnQsIEdDM0RpbnQsIEdDM0RzaXplaSwgR0MzRHNp
emVpKQordm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjppbnZhbGlkYXRlU3ViRnJhbWVidWZm
ZXIoR0MzRGVudW0sIGNvbnN0IFZlY3RvcjxHQzNEZW51bT4mLCBHQzNEaW50LCBHQzNEaW50LCBH
QzNEc2l6ZWksIEdDM0RzaXplaSkKIHsKIH0KIApAQCAtNDA3LDcgKzQwNyw3IEBAIHZvaWQgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6dGV4U3RvcmFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNp
emVpIGxldmVscywgR0MzCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgV2ViR0xUZXh0dXJlKiB0ZXh0dXJlID0gdmFsaWRhdGVUZXh0dXJl
QmluZGluZygidGV4U3RvcmFnZTJEIiwgdGFyZ2V0LCBmYWxzZSk7CisgICAgYXV0byogdGV4dHVy
ZSA9IHZhbGlkYXRlVGV4dHVyZUJpbmRpbmcoInRleFN0b3JhZ2UyRCIsIHRhcmdldCwgZmFsc2Up
OwogICAgIGlmICghdGV4dHVyZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC01MDIsNyArNTAyLDcg
QEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpjb21wcmVzc2VkVGV4U3ViSW1hZ2UzRChH
QzNEZW51bSwgR0MzRGludCwgR0MzRGludCwKIHsKIH0KIAotR0MzRGludCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpnZXRGcmFnRGF0YUxvY2F0aW9uKFdlYkdMUHJvZ3JhbSosIFN0cmluZykKK0dD
M0RpbnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhZ0RhdGFMb2NhdGlvbihXZWJHTFBy
b2dyYW0qLCBjb25zdCBTdHJpbmcmKQogewogICAgIHJldHVybiAwOwogfQpAQCAtNjMzLDcgKzYz
Myw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZHJhd1JhbmdlRWxlbWVudHMoR0Mz
RGVudW0sIEdDM0R1aW50LCBHQzNEdWludCwgR0MzCiB7CiB9CiAKLXZvaWQgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6ZHJhd0J1ZmZlcnMoVmVjdG9yPEdDM0RlbnVtPiBidWZmZXJzKQordm9pZCBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkcmF3QnVmZmVycyhjb25zdCBWZWN0b3I8R0MzRGVudW0+
JiBidWZmZXJzKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsK
QEAgLTc4Miw5ICs3ODIsOSBAQCBSZWZQdHI8V2ViR0xRdWVyeT4gV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0UXVlcnkoR0MzRGVudW0sIEdDM0RlbnVtKQogICAgIHJldHVybiBudWxscHRyOwog
fQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UXVlcnlQYXJhbWV0
ZXIoV2ViR0xRdWVyeSosIEdDM0RlbnVtKQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0UXVlcnlQYXJhbWV0ZXIoV2ViR0xRdWVyeSosIEdDM0RlbnVtKQogewotICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVmUHRyPFdlYkdM
U2FtcGxlcj4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlU2FtcGxlcigpCkBAIC04MTMs
OSArODEzLDkgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpzYW1wbGVyUGFyYW1ldGVy
ZihXZWJHTFNhbXBsZXIqLCBHQzNEZW51bSwgR0MzRGZsb2EKIHsKIH0KIAotV2ViR0xHZXRJbmZv
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFNhbXBsZXJQYXJhbWV0ZXIoV2ViR0xTYW1wbGVy
KiwgR0MzRGVudW0pCitXZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRTYW1wbGVy
UGFyYW1ldGVyKFdlYkdMU2FtcGxlciosIEdDM0RlbnVtKQogewotICAgIHJldHVybiBXZWJHTEdl
dEluZm8oKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVmUHRyPFdlYkdMU3luYz4gV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6ZmVuY2VTeW5jKEdDM0RlbnVtLCBHQzNEYml0ZmllbGQpCkBA
IC04NDEsOSArODQxLDkgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp3YWl0U3luYyhX
ZWJHTFN5bmMqLCBHQzNEYml0ZmllbGQsIEdDM0R1aW50NjQpCiB7CiB9CiAKLVdlYkdMR2V0SW5m
byBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRTeW5jUGFyYW1ldGVyKFdlYkdMU3luYyosIEdD
M0RlbnVtKQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0U3luY1BhcmFtZXRl
cihXZWJHTFN5bmMqLCBHQzNEZW51bSkKIHsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZlB0cjxXZWJHTFRyYW5zZm9ybUZlZWRiYWNrPiBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVUcmFuc2Zvcm1GZWVkYmFjaygpCkBAIC04NzIs
NyArODcyLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjplbmRUcmFuc2Zvcm1GZWVk
YmFjaygpCiB7CiB9CiAKLXZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dHJhbnNmb3JtRmVl
ZGJhY2tWYXJ5aW5ncyhXZWJHTFByb2dyYW0qLCBWZWN0b3I8U3RyaW5nPiwgR0MzRGVudW0pCit2
b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MoV2Vi
R0xQcm9ncmFtKiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBHQzNEZW51bSkKIHsKIH0KIApAQCAt
ODk3LDcgKzg5Nyw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmluZEJ1ZmZlclJh
bmdlKEdDM0RlbnVtLCBHQzNEdWludCwgV2ViR0xCdWZmZXIqLCBHCiB7CiB9CiAKLVdlYkdMR2V0
SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVyKEdDM0RlbnVt
IHRhcmdldCwgR0MzRHVpbnQpCitXZWJHTEFueSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJ
bmRleGVkUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRHVpbnQpCiB7CiAgICAgc3dpdGNo
ICh0YXJnZXQpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpUUkFOU0ZPUk1fRkVFREJB
Q0tfQlVGRkVSX0JJTkRJTkc6CkBAIC05MDcsMTYgKzkwNywxNCBAQCBXZWJHTEdldEluZm8gV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQs
IEdDM0R1aQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOSUZPUk1fQlVGRkVSX1NJWkU6
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5JRk9STV9CVUZGRVJfU1RBUlQ6CiAgICAg
ICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJn
ZXRJbmRleGVkUGFyYW1ldGVyIiwgInBhcmFtZXRlciBuYW1lIG5vdCB5ZXQgc3VwcG9ydGVkIik7
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfRU5VTSwgImdldEluZGV4ZWRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0
ZXIgbmFtZSIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgICAgICAgICAK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIHJldHVybiBXZWJHTEdldEluZm8o
KTsKIH0KIAotVWludDMyQXJyYXkqIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZvcm1J
bmRpY2VzKFdlYkdMUHJvZ3JhbSosIFZlY3RvcjxTdHJpbmc+KQorVWludDMyQXJyYXkqIFdlYkdM
MlJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZvcm1JbmRpY2VzKFdlYkdMUHJvZ3JhbSosIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JikKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KQEAgLTkyNiwxOSAr
OTI0LDE5IEBAIEludDMyQXJyYXkqIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEFjdGl2ZVVu
aWZvcm1zKFdlYkdMUHJvZ3JhbSosIFJlZlB0cjxVaW50CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKLUdDM0R1aW50IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZvcm1CbG9ja0luZGV4
KFdlYkdMUHJvZ3JhbSosIFN0cmluZykKK0dDM0R1aW50IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmdldFVuaWZvcm1CbG9ja0luZGV4KFdlYkdMUHJvZ3JhbSosIGNvbnN0IFN0cmluZyYpCiB7CiAg
ICAgcmV0dXJuIDA7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRBY3RpdmVVbmlmb3JtQmxvY2tQYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQsIEdD
M0RlbnVtKQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0QWN0aXZlVW5pZm9y
bUJsb2NrUGFyYW1ldGVyKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50LCBHQzNEZW51bSkKIHsKLSAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVdlYkdM
R2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1l
KFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50KQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0QWN0aXZlVW5pZm9ybUJsb2NrTmFtZShXZWJHTFByb2dyYW0qLCBHQzNEdWludCkKIHsK
LSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIHZv
aWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5pZm9ybUJsb2NrQmluZGluZyhXZWJHTFByb2dy
YW0qLCBHQzNEdWludCwgR0MzRHVpbnQpCkBAIC05NTAsOCArOTQ4LDggQEAgUmVmUHRyPFdlYkdM
VmVydGV4QXJyYXlPYmplY3Q+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVZlcnRleEFy
cmF5KCkKICAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICAKLSAgICBhdXRvIG9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZSgq
dGhpcywgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6VkFPVHlwZVVzZXIpOwotICAgIGFkZENvbnRl
eHRPYmplY3Qob2JqZWN0LnB0cigpKTsKKyAgICBhdXRvIG9iamVjdCA9IFdlYkdMVmVydGV4QXJy
YXlPYmplY3Q6OmNyZWF0ZSgqdGhpcywgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6VHlwZTo6VXNl
cik7CisgICAgYWRkQ29udGV4dE9iamVjdChvYmplY3QuZ2V0KCkpOwogICAgIHJldHVybiBXVEZN
b3ZlKG9iamVjdCk7CiB9CiAKQEAgLTk2NCw3ICs5NjIsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmRlbGV0ZVZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIGFycmF5
T2JqZQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgaWYgKCFhcnJheU9iamVjdC0+aXNEZWZh
dWx0T2JqZWN0KCkgJiYgYXJyYXlPYmplY3QgPT0gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0KQot
ICAgICAgICBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KDApOworICAgICAgICBzZXRCb3VuZFZl
cnRleEFycmF5T2JqZWN0KG51bGxwdHIpOwogICAgIAogICAgIGFycmF5T2JqZWN0LT5kZWxldGVP
YmplY3QoZ3JhcGhpY3NDb250ZXh0M0QoKSk7CiB9CkBAIC05NzIsMTAgKzk3MCwxMCBAQCB2b2lk
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0ZVZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJy
YXlPYmplY3QqIGFycmF5T2JqZQogR0MzRGJvb2xlYW4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
aXNWZXJ0ZXhBcnJheShXZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamVjdCkKIHsKICAg
ICBpZiAoIWFycmF5T2JqZWN0IHx8IGlzQ29udGV4dExvc3QoKSkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBpZiAoIWFycmF5T2JqZWN0LT5oYXNF
dmVyQmVlbkJvdW5kKCkgfHwgIWFycmF5T2JqZWN0LT52YWxpZGF0ZSgwLCAqdGhpcykpCi0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgcmV0dXJuIG1f
Y29udGV4dC0+aXNWZXJ0ZXhBcnJheShhcnJheU9iamVjdC0+b2JqZWN0KCkpOwogfQpAQCAtOTk2
LDcgKzk5NCw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmluZFZlcnRleEFycmF5
KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIGFycmF5T2JqZWN0CiAgICAgICAgIHNldEJvdW5kVmVy
dGV4QXJyYXlPYmplY3QoYXJyYXlPYmplY3QpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fY29u
dGV4dC0+YmluZFZlcnRleEFycmF5KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0LT5vYmplY3Qo
KSk7Ci0gICAgICAgIHNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QobV9kZWZhdWx0VmVydGV4QXJy
YXlPYmplY3QpOworICAgICAgICBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KG1fZGVmYXVsdFZl
cnRleEFycmF5T2JqZWN0LmdldCgpKTsKICAgICB9CiB9CiAKQEAgLTEwMDUsNDMgKzEwMDMsMzgg
QEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihj
b25zdCBTdHJpbmcmIG5hbWUpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBpZiAoKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
bmFtZSwgIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpIHx8IGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UobmFtZSwgIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkK
LSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF90
ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UobmFtZSwgIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpIHx8IGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9w
aWMiKSkgewogICAgICAgICBpZiAoIW1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKSB7Ci0g
ICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9F
WFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTsKLSAgICAgICAgICAgIG1fZXh0VGV4dHVy
ZUZpbHRlckFuaXNvdHJvcGljID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWM+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJv
cGljID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5p
c290cm9waWMiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWM+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmdldCgpOwogICAgIH0KLSAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxvYXQiKQotICAg
ICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1
cmVfZmxvYXQiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNf
dGV4dHVyZV9mbG9hdCIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlRmxvYXQpIHsKLSAg
ICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09F
U190ZXh0dXJlX2Zsb2F0Iik7Ci0gICAgICAgICAgICBtX29lc1RleHR1cmVGbG9hdCA9IHN0ZDo6
bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0PigqdGhpcyk7CisgICAgICAgICAgICBtX29lc1Rl
eHR1cmVGbG9hdCA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfT0VTX3RleHR1cmVfZmxv
YXQiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlRmxvYXQ+
KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVGV4dHVy
ZUZsb2F0LmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1l
LCAiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7Cisg
ICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zsb2F0X2xp
bmVhciIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIpIHsKLSAgICAg
ICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190
ZXh0dXJlX2Zsb2F0X2xpbmVhciIpOwotICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXRMaW5l
YXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdExpbmVhcj4oKnRoaXMpOworICAg
ICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNp
b24oIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpCisgICAgICAgICAgICAgICAgPyBzdGQ6
Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdExpbmVhcj4oKnRoaXMpIDogbnVsbHB0cjsKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIuZ2V0KCk7CiAg
ICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9o
YWxmX2Zsb2F0IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpIHsKICAgICAgICAgaWYg
KCFtX29lc1RleHR1cmVIYWxmRmxvYXQpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiKTsKLSAg
ICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdCA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4
dHVyZUhhbGZGbG9hdD4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0
ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikK
KyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTVGV4dHVyZUhhbGZGbG9hdD4o
KnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJl
SGFsZkZsb2F0LmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShu
YW1lLCAiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKQotICAgICAgICAmJiBtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9s
aW5lYXIiKSkgeworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4
dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlSGFs
ZkZsb2F0TGluZWFyKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5l
bnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpOwotICAgICAg
ICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNU
ZXh0dXJlSGFsZkZsb2F0TGluZWFyPigqdGhpcyk7CisgICAgICAgICAgICBtX29lc1RleHR1cmVI
YWxmRmxvYXRMaW5lYXIgPSBlbmFibGVTdXBwb3J0ZWRFeHRlbnNpb24oIkdMX09FU190ZXh0dXJl
X2hhbGZfZmxvYXRfbGluZWFyIikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8
T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcj4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyLmdldCgpOwogICAgIH0K
QEAgLTEwNTAsMjggKzEwNDMsMzIgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgICAgICBtX3dl
YmdsTG9zZUNvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMTG9zZUNvbnRleHQ+KCp0aGlz
KTsKICAgICAgICAgcmV0dXJuIG1fd2ViZ2xMb3NlQ29udGV4dC5nZXQoKTsKICAgICB9Ci0gICAg
aWYgKChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJLSVRfV0VCR0xfY29tcHJlc3Nl
ZF90ZXh0dXJlX2F0YyIpKQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDOjpz
dXBwb3J0ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJl
QVRDKQotICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDID0gc3RkOjptYWtl
X3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVf
YXRjIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMpIHsKKyAg
ICAgICAgICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMp
KQorICAgICAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQyA9IHN0ZDo6bWFr
ZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQz4oKnRoaXMpOworICAgICAgICB9CiAg
ICAgICAgIHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMuZ2V0KCk7CiAgICAgfQot
ICAgIGlmICgoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXBy
ZXNzZWRfdGV4dHVyZV9wdnJ0YyIpKQotICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJl
UFZSVEM6OnN1cHBvcnRlZCgqdGhpcykpIHsKLSAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQykKLSAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRD
ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM+KCp0aGlzKTsK
KyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXBy
ZXNzZWRfdGV4dHVyZV9wdnJ0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRU
ZXh0dXJlUFZSVEMpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRD
ID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpCisgICAgICAg
ICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQz4o
KnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXBy
ZXNzZWRUZXh0dXJlUFZSVEMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVND
SUlDYXNlKG5hbWUsICJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfczN0YyIpCi0gICAgICAgICYm
IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0gICAgICAg
IGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQykKLSAgICAgICAgICAgIG1fd2ViZ2xD
b21wcmVzc2VkVGV4dHVyZVMzVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwg
IldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmds
Q29tcHJlc3NlZFRleHR1cmVTM1RDKSB7CisgICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRl
eHR1cmVTM1RDID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCgqdGhpcykK
KyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVMzVEM+KCp0aGlzKSA6IG51bGxwdHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2Vi
Z2xDb21wcmVzc2VkVGV4dHVyZVMzVEMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZXB0aF90ZXh0dXJlIikKLSAgICAgICAgJiYgV2Vi
R0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZCgqZ3JhcGhpY3NDb250ZXh0M0QoKSkpIHsKLSAgICAg
ICAgaWYgKCFtX3dlYmdsRGVwdGhUZXh0dXJlKQotICAgICAgICAgICAgbV93ZWJnbERlcHRoVGV4
dHVyZSA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xEZXB0aFRleHR1cmU+KCp0aGlzKTsKKyAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZGVwdGhfdGV4dHVyZSIpKSB7
CisgICAgICAgIGlmICghbV93ZWJnbERlcHRoVGV4dHVyZSkgeworICAgICAgICAgICAgbV93ZWJn
bERlcHRoVGV4dHVyZSA9IFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoKmdyYXBoaWNzQ29u
dGV4dDNEKCkpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVwdGhU
ZXh0dXJlPigqdGhpcykgOiBudWxscHRyOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3dl
YmdsRGVwdGhUZXh0dXJlLmdldCgpOwogICAgIH0KICAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShuYW1lLCAiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpKSB7CkBAIC0xMDc5LDEwICsx
MDc2LDExIEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRl
bnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICAgICAgbV93ZWJnbERlYnVnUmVuZGVy
ZXJJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnUmVuZGVyZXJJbmZvPigqdGhpcyk7
CiAgICAgICAgIHJldHVybiBtX3dlYmdsRGVidWdSZW5kZXJlckluZm8uZ2V0KCk7CiAgICAgfQot
ICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19zaGFkZXJz
IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FO
R0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERl
YnVnU2hhZGVycykKLSAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkdMRGVidWdTaGFkZXJzPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UobmFtZSwgIldFQkdMX2RlYnVnX3NoYWRlcnMiKSkgeworICAgICAgICBpZiAoIW1f
d2ViZ2xEZWJ1Z1NoYWRlcnMpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBt
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfQU5H
TEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIiB9KQorICAgICAgICAgICAgICAgID8gc3RkOjpt
YWtlX3VuaXF1ZTxXZWJHTERlYnVnU2hhZGVycz4oKnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAg
fQogICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnU2hhZGVycy5nZXQoKTsKICAgICB9CiAKQEAg
LTEwOTYsOTAgKzEwOTQsOTAgQEAgVmVjdG9yPFN0cmluZz4gV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpCiAgICAgaWYgKG1faXNQZW5kaW5nUG9saWN5UmVz
b2x1dGlvbikKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAotICAgIGlmIChtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfZmxvYXQiKSkKLSAgICAgICAg
cmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVfZmxvYXQiKTsKLSAgICBpZiAobV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKQot
ICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKTsKLSAgICBp
ZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2hh
bGZfZmxvYXQiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVfaGFsZl9mbG9h
dCIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VT
X3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VT
X3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKQot
ICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJv
cGljIik7CisgICAgYXV0byYgZXh0ZW5zaW9ucyA9IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
OworICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4
dHVyZV9mbG9hdCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9F
U190ZXh0dXJlX2Zsb2F0IiB9KTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxp
dGVyYWwgeyAiR0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9KSkKKyAgICAgICAgcmVzdWx0
LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9KTsKKyAg
ICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3RleHR1cmVf
aGFsZl9mbG9hdCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9F
U190ZXh0dXJlX2hhbGZfZmxvYXQiIH0pOworICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKEFT
Q0lJTGl0ZXJhbCB7ICJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIgfSkpCisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRf
bGluZWFyIiB9KTsKKyAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAi
R0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIiB9KSkKKyAgICAgICAgcmVzdWx0LmFw
cGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCS0lUX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3Bp
YyIgfSk7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZCgqdGhp
cykpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1
cmVfYXRjIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQktJVF9X
RUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIiB9KTsKICAgICBpZiAoV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVBWUlRDOjpzdXBwb3J0ZWQoKnRoaXMpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJX
RUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIik7CisgICAgICAgIHJlc3VsdC5h
cHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZy
dGMiIH0pOwogICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKCp0
aGlzKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3Mz
dGMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfY29tcHJl
c3NlZF90ZXh0dXJlX3MzdGMiIH0pOwogICAgIGlmIChXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9y
dGVkKCpncmFwaGljc0NvbnRleHQzRCgpKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xf
ZGVwdGhfdGV4dHVyZSIpOwotICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2xvc2VfY29udGV4dCIp
OwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfQU5HTEVf
dHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdM
X2RlYnVnX3NoYWRlcnMiKTsKLSAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19yZW5kZXJl
cl9pbmZvIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2Rl
cHRoX3RleHR1cmUiIH0pOworICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdM
X2xvc2VfY29udGV4dCIgfSk7CisgICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMoQVNDSUlMaXRl
cmFsIHsgIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIgfSkpCisgICAgICAgIHJl
c3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RlYnVnX3NoYWRlcnMiIH0pOworICAg
IHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8i
IH0pOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpCiB7CiAg
ICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVGcmFtZWJ1ZmZlckZ1
bmNQYXJhbWV0ZXJzKCJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIiLCB0YXJnZXQs
IGF0dGFjaG1lbnQpKQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIAogICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgfHwgIW1f
ZnJhbWVidWZmZXJCaW5kaW5nLT5vYmplY3QoKSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIiLCAibm8gZnJhbWVidWZmZXIgYm91bmQiKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAg
Ci0gICAgV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCA9IG1fZnJhbWVidWZmZXJCaW5kaW5nLT5n
ZXRBdHRhY2htZW50T2JqZWN0KGF0dGFjaG1lbnQpOworICAgIGF1dG8qIG9iamVjdCA9IG1fZnJh
bWVidWZmZXJCaW5kaW5nLT5nZXRBdHRhY2htZW50T2JqZWN0KGF0dGFjaG1lbnQpOwogICAgIGlm
ICghb2JqZWN0KSB7CiAgICAgICAgIGlmIChwbmFtZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6RlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSkKLSAgICAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpOwotICAgICAgICAvLyBPcGVuR0wgRVMg
Mi4wIHNwZWNpZmllcyBJTlZBTElEX0VOVU0gaW4gdGhpcyBjYXNlLCB3aGlsZSBkZXNrdG9wIEdM
Ci0gICAgICAgIC8vIHNwZWNpZmllcyBJTlZBTElEX09QRVJBVElPTi4KKyAgICAgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpOworICAg
ICAgICAvLyBPcGVuR0wgRVMgMi4wIHNwZWNpZmllcyBJTlZBTElEX0VOVU0gaW4gdGhpcyBjYXNl
LCB3aGlsZSBkZXNrdG9wIEdMIHNwZWNpZmllcyBJTlZBTElEX09QRVJBVElPTi4KICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQogICAgIAotICAgIEFTU0VSVChvYmplY3QtPmlzVGV4dHVyZSgpIHx8IG9iamVjdC0+
aXNSZW5kZXJidWZmZXIoKSk7CiAgICAgaWYgKG9iamVjdC0+aXNUZXh0dXJlKCkpIHsKICAgICAg
ICAgc3dpdGNoIChwbmFtZSkgewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRSk7CisgICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFKTsKICAgICAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
TkFNRToKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8ocmVpbnRlcnByZXRfY2FzdDxX
ZWJHTFRleHR1cmUqPihvYmplY3QpKTsKKyAgICAgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHJl
aW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJlJj4oKm9iamVjdCkpOwogICAgICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEVWRUw6CiAg
ICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVY
VFVSRV9DVUJFX01BUF9GQUNFOgogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HOiB7CiAgICAgICAgICAgICBHQzNEaW50
IHZhbHVlID0gMDsKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RnJhbWVidWZmZXJBdHRhY2ht
ZW50UGFyYW1ldGVyaXYodGFyZ2V0LCBhdHRhY2htZW50LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHZh
bHVlOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0RnJhbWVidWZmZXJB
dHRhY2htZW50UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUgZm9yIHRleHR1cmUg
YXR0YWNobWVudCIpOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9IGVsc2UgeworICAgICAgICBB
U1NFUlQob2JqZWN0LT5pc1JlbmRlcmJ1ZmZlcigpKTsKICAgICAgICAgc3dpdGNoIChwbmFtZSkg
ewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X09CSkVDVF9UWVBFOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGljc0Nv
bnRleHQzRDo6UkVOREVSQlVGRkVSKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUik7CiAgICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUU6Ci0g
ICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5k
ZXJidWZmZXIqPihvYmplY3QpKTsKKyAgICAgICAgICAgIHJldHVybiBtYWtlUmVmUHRyKHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViR0xSZW5kZXJidWZmZXImPigqb2JqZWN0KSk7CiAgICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcg
OiB7Ci0gICAgICAgICAgICBXZWJHTFJlbmRlcmJ1ZmZlciogcmVuZGVyQnVmZmVyID0gcmVpbnRl
cnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZlcio+KG9iamVjdCk7Ci0gICAgICAgICAgICBHQzNE
ZW51bSByZW5kZXJCdWZmZXJGb3JtYXQgPSByZW5kZXJCdWZmZXItPmdldEludGVybmFsRm9ybWF0
KCk7Ci0gICAgICAgICAgICBpZiAocmVuZGVyQnVmZmVyRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4
dDNEOjpTUkdCOF9BTFBIQTgKLSAgICAgICAgICAgICAgICB8fCByZW5kZXJCdWZmZXJGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfRVRDMgotICAgICAgICAgICAg
ICAgIHx8IHJlbmRlckJ1ZmZlckZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NF
RF9TUkdCOF9BTFBIQThfRVRDMl9FQUMKLSAgICAgICAgICAgICAgICB8fCByZW5kZXJCdWZmZXJG
b3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfU1JHQjhfUFVOQ0hUSFJPVUdI
X0FMUEhBMV9FVEMyKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFw
aGljc0NvbnRleHQzRDo6U1JHQik7CisgICAgICAgICAgICBhdXRvJiByZW5kZXJCdWZmZXIgPSBy
ZWludGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyJj4oKm9iamVjdCk7CisgICAgICAgICAg
ICBhdXRvIGZvcm1hdCA9IHJlbmRlckJ1ZmZlci5nZXRJbnRlcm5hbEZvcm1hdCgpOworICAgICAg
ICAgICAgaWYgKGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6U1JHQjhfQUxQSEE4CisgICAg
ICAgICAgICAgICAgfHwgZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NS
R0I4X0VUQzIKKyAgICAgICAgICAgICAgICB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6
OkNPTVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJfRUFDCisgICAgICAgICAgICAgICAgfHwgZm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpDT01QUkVTU0VEX1NSR0I4X1BVTkNIVEhST1VHSF9B
TFBIQTFfRVRDMikgeworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oR3JhcGhpY3NDb250ZXh0M0Q6OlNSR0IpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKTsKKyAgICAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVB
Uik7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBmb3IgcmVuZGVyYnVm
ZmVyIGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMTE5MSwx
OSArMTE4OSwxNiBAQCBib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlRnJhbWVi
dWZmZXJGdW5jUGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jdAogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogICAgIHN3aXRjaCAoYXR0YWNobWVudCkgewotICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkRFUFRIX0FUVEFDSE1FTlQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9B
VFRBQ0hNRU5UOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUxfQVRU
QUNITUVOVDoKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1
bHQ6Ci0gICAgICAgIGlmIChhdHRhY2htZW50ID4gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FU
VEFDSE1FTlQwCi0gICAgICAgICAgICAmJiBhdHRhY2htZW50IDwgc3RhdGljX2Nhc3Q8R0MzRGVu
dW0+KEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCArIGdldE1heENvbG9yQXR0
YWNobWVudHMoKSkpCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgaWYgKGF0dGFjaG1lbnQg
Pj0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwICYmIGF0dGFjaG1lbnQgPCBz
dGF0aWNfY2FzdDxHQzNEZW51bT4oR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQw
ICsgZ2V0TWF4Q29sb3JBdHRhY2htZW50cygpKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVN
LCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIGF0dGFjaG1lbnQiKTsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKIH0KIAogR0MzRGludCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpnZXRNYXhEcmF3QnVmZmVycygpCkBAIC0xMzk1LDcgKzEzOTAsNyBAQCBHQzNE
ZW51bSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiYXNlSW50ZXJuYWxGb3JtYXRGcm9tSW50ZXJu
YWxGb3JtYXQoR0MzRGVudW0gaQogYm9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppc0ludGVn
ZXJGb3JtYXQoR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQpCiB7CiAgICAgLy8gRklYTUU6IGJhc2VJ
bnRlcm5hbEZvcm1hdEZyb21JbnRlcm5hbEZvcm1hdCgpIG5ldmVyIHJldHVybnMgYW55IG9mIHRo
ZXNlIGVudW1zLgotICAgIC8vIEN1cnJlbnRseSwgVGhpcyBmdW5jdGlvbiBlcnJvbmVvdXNseSBh
bHdheXMgcmV0dXJucyBmYWxzZS4KKyAgICAvLyBCZWNhdXNlIG9mIHRoYXQsIHRoaXMgZnVuY3Rp
b24gZXJyb25lb3VzbHkgYWx3YXlzIHJldHVybnMgZmFsc2UhCiAgICAgc3dpdGNoIChiYXNlSW50
ZXJuYWxGb3JtYXRGcm9tSW50ZXJuYWxGb3JtYXQoaW50ZXJuYWxmb3JtYXQpKSB7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkVEX0lOVEVHRVI6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdfSU5URUdFUjoKQEAgLTE0MDYsMTEgKzE0MDEsMTAgQEAgYm9vbCBXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0Ojppc0ludGVnZXJGb3JtYXQoR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQpCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKLSAgICBj
b25zdCBpbnQgaW50WmVybyA9IDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHN3aXRj
aCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVfVEVYVFVSRToK
ICAgICAgICAgcmV0dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKQEAgLTE0MjEs
NyArMTQxNSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJh
bWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUxQSEFf
QklUUzoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8obV9ib3VuZEFycmF5QnVmZmVyLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIG1f
Ym91bmRBcnJheUJ1ZmZlcjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORDoKICAg
ICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkJMRU5EX0NPTE9SOgpAQCAtMTQ0NSwxNiArMTQzOSwxNiBAQCBXZWJHTEdl
dEluZm8gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX1dSSVRFTUFTSzoKICAgICAgICAg
cmV0dXJuIGdldEJvb2xlYW5BcnJheVBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6Q09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFM6Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8oUGFzc1JlZlB0cjxVaW50MzJBcnJheT4oVWludDMyQXJyYXk6OmNyZWF0ZSht
X2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5kYXRhKCksIG1fY29tcHJlc3NlZFRleHR1cmVGb3Jt
YXRzLnNpemUoKSkpKTsKKyAgICAgICAgcmV0dXJuIFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21w
cmVzc2VkVGV4dHVyZUZvcm1hdHMuZGF0YSgpLCBtX2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5z
aXplKCkpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNVTExfRkFDRToKICAgICAgICAg
cmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkNVTExfRkFDRV9NT0RFOgogICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJh
bWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNVUlJFTlRfUFJPR1JB
TToKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2N1cnJlbnRQcm9ncmFtLmdldCgpKTsK
KyAgICAgICAgcmV0dXJuIG1fY3VycmVudFByb2dyYW07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6REVQVEhfQklUUzoKICAgICAgICAgaWYgKCFtX2ZyYW1lYnVmZmVyQmluZGluZyAmJiAh
bV9hdHRyaWJ1dGVzLmRlcHRoKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhpbnRa
ZXJvKTsKKyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1l
dGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DTEVBUl9WQUxV
RToKICAgICAgICAgcmV0dXJuIGdldEZsb2F0UGFyYW1ldGVyKHBuYW1lKTsKQEAgLTE0NjksOSAr
MTQ2Myw5IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0
ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RElUSEVSOgog
ICAgICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmdldEVsZW1lbnRBcnJh
eUJ1ZmZlcigpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIobV9ib3VuZFZlcnRleEFycmF5
T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVJfQklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyht
X2ZyYW1lYnVmZmVyQmluZGluZy5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX2ZyYW1lYnVmZmVy
QmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUk9OVF9GQUNFOgogICAgICAg
ICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkdFTkVSQVRFX01JUE1BUF9ISU5UOgpAQCAtMTUxOSw5ICsxNTEzLDkgQEAg
V2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51
bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRURfQklUUzoKICAgICAgICAg
cmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkVOREVSQlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9y
ZW5kZXJidWZmZXJCaW5kaW5nLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIG1fcmVuZGVyYnVmZmVy
QmluZGluZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJFUjoKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhTdHJpbmcoIldlYktpdCBXZWJHTCIpKTsKKyAgICAgICAgcmV0
dXJuIFN0cmluZyB7IEFTQ0lJTGl0ZXJhbCB7ICJXZWJLaXQgV2ViR0wiIH0gfTsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTQU1QTEVfQlVGRkVSUzoKICAgICAgICAgcmV0dXJuIGdldElu
dFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0FNUExFX0NP
VkVSQUdFX0lOVkVSVDoKQEAgLTE1MzUsNyArMTUyOSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6U0NJU1NPUl9URVNUOgogICAgICAgICByZXR1cm4gZ2V0Qm9vbGVh
blBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0hBRElOR19M
QU5HVUFHRV9WRVJTSU9OOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCJXZWJHTCBHTFNM
IEVTIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpTSEFE
SU5HX0xBTkdVQUdFX1ZFUlNJT04pICsgIikiKTsKKyAgICAgICAgcmV0dXJuICJXZWJHTCBHTFNM
IEVTIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpTSEFE
SU5HX0xBTkdVQUdFX1ZFUlNJT04pICsgIikiOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlNURU5DSUxfQkFDS19GQUlMOgogICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0
ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQkFDS19GVU5D
OgpAQCAtMTU1Miw3ICsxNTQ2LDcgQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICAgICAgcmV0dXJuIGdldFVuc2ln
bmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVO
Q0lMX0JJVFM6CiAgICAgICAgIGlmICghbV9mcmFtZWJ1ZmZlckJpbmRpbmcgJiYgIW1fYXR0cmli
dXRlcy5zdGVuY2lsKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhpbnRaZXJvKTsK
KyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBu
YW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0NMRUFSX1ZBTFVFOgog
ICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKQEAgLTE1NzUsMzggKzE1Njks
MzggQEAgV2ViR0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVUJQSVhFTF9CSVRT
OgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpURVhUVVJFX0JJTkRJTkdfMkQ6Ci0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8obV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4dHVyZTJEQmluZGlu
Zy5nZXQoKSk7CisgICAgICAgIHJldHVybiBtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVV
bml0XS50ZXh0dXJlMkRCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkVfQklORElOR19DVUJFX01BUDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3RleHR1
cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlQ3ViZU1hcEJpbmRpbmcuZ2V0KCkp
OworICAgICAgICByZXR1cm4gbV90ZXh0dXJlVW5pdHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4
dHVyZUN1YmVNYXBCaW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19B
TElHTk1FTlQ6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19GTElQX1lfV0VCR0w6Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8obV91bnBhY2tGbGlwWSk7CisgICAgICAgIHJldHVybiBtX3VucGFja0Zs
aXBZOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19QUkVNVUxUSVBMWV9BTFBI
QV9XRUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3VucGFja1ByZW11bHRpcGx5
QWxwaGEpOworICAgICAgICByZXR1cm4gbV91bnBhY2tQcmVtdWx0aXBseUFscGhhOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOUEFDS19DT0xPUlNQQUNFX0NPTlZFUlNJT05fV0VCR0w6
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lv
bik7CisgICAgICAgIHJldHVybiBtX3VucGFja0NvbG9yc3BhY2VDb252ZXJzaW9uOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFTkRPUjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhTdHJpbmcoIldlYktpdCIpKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZyB7IEFTQ0lJTGl0ZXJh
bCB7ICJXZWJLaXQiIH0gfTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJTSU9OOgot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCJXZWJHTCAyLjAgKCIgKyBtX2NvbnRleHQtPmdl
dFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVSU0lPTikgKyAiKSIpOworICAgICAgICByZXR1
cm4gIldlYkdMIDIuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNE
OjpWRVJTSU9OKSArICIpIjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWSUVXUE9SVDoK
ICAgICAgICAgcmV0dXJuIGdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNh
c2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURfUkVOREVSRVJfV0VCR0w6CiAgICAg
ICAgIGlmIChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCi0gICAgICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJF
UikpOworICAgICAgICAgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29u
dGV4dDNEOjpSRU5ERVJFUik7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIg
bmFtZSwgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBub3QgZW5hYmxlZCIpOwotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2Ug
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURfVkVORE9SX1dFQkdMOgogICAgICAgICBp
ZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVORE9SKSk7Cisg
ICAgICAgICAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6
OlZFTkRPUik7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlZBTElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgV0VC
R0xfZGVidWdfcmVuZGVyZXJfaW5mbyBub3QgZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2UgRXh0ZW5zaW9u
czNEOjpNQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQ6IC8vIEVYVF90ZXh0dXJlX2ZpbHRl
cl9hbmlzb3Ryb3BpYwogICAgICAgICBpZiAobV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMp
CiAgICAgICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoRXh0ZW5zaW9uczNE
OjpNQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQpOwogICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImlu
dmFsaWQgcGFyYW1ldGVyIG5hbWUsIEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyBub3Qg
ZW5hYmxlZCIpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQUdNRU5UX1NIQURFUl9E
RVJJVkFUSVZFX0hJTlQ6CiAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6Ok1BWF8zRF9URVhUVVJFX1NJWkU6CkBAIC0xNjg5
LDEyICsxNjgzLDEwIEBAIFdlYkdMR2V0SW5mbyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQ
YXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1l
dGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTklGT1JNX0JVRkZFUl9P
RkZTRVRfQUxJR05NRU5UOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW1ldGVyKHBuYW1lKTsK
LSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVJSQVlfQklORElORzogewotICAg
ICAgICBpZiAoIW1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkpCi0g
ICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PFdlYkdMVmVydGV4QXJy
YXlPYmplY3QqPihtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QuZ2V0KCkpKTsKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbygpOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOworICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BUlJBWV9CSU5ESU5HOgorICAgICAgICBpZiAobV9i
b3VuZFZlcnRleEFycmF5T2JqZWN0LT5pc0RlZmF1bHRPYmplY3QoKSkKKyAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihzdGF0aWNfY2FzdDxXZWJH
TFZlcnRleEFycmF5T2JqZWN0Jj4oKm1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCkpOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMDoKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpEUkFXX0JVRkZFUjE6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RFJBV19C
VUZGRVIyOgpAQCAtMTcxMCwxNCArMTcwMiwxMCBAQCBXZWJHTEdldEluZm8gV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTI6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RFJBV19CVUZGRVIxMzoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEUkFXX0JVRkZFUjE0
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTU6IHsKLSAgICAgICAg
R0MzRGludCB2YWx1ZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FOworICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRSQVdfQlVGRkVSMTU6CiAgICAgICAgIGlmIChtX2ZyYW1lYnVmZmVyQmlu
ZGluZykKLSAgICAgICAgICAgIHZhbHVlID0gbV9mcmFtZWJ1ZmZlckJpbmRpbmctPmdldERyYXdC
dWZmZXIocG5hbWUpOwotICAgICAgICBlbHNlIC8vIGVtdWxhdGVkIGJhY2tidWZmZXIKLSAgICAg
ICAgICAgIHZhbHVlID0gbV9iYWNrRHJhd0J1ZmZlcjsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyh2YWx1ZSk7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBtX2ZyYW1lYnVmZmVy
QmluZGluZy0+Z2V0RHJhd0J1ZmZlcihwbmFtZSk7CisgICAgICAgIHJldHVybiBtX2JhY2tEcmF3
QnVmZmVyOyAvLyBlbXVsYXRlZCBiYWNrYnVmZmVyCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6Q09QWV9SRUFEX0JVRkZFUjoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT1BZX1dS
SVRFX0JVRkZFUjoKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpQSVhFTF9QQUNLX0JVRkZF
Ul9CSU5ESU5HOiAgIApAQCAtMTczMCwxMCArMTcxOCwxMCBAQCBXZWJHTEdldEluZm8gV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORzoKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTklGT1JNX0JVRkZFUl9CSU5ESU5HOgogICAgICAg
ICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0
UGFyYW1ldGVyIiwgInBhcmFtZXRlciBuYW1lIG5vdCB5ZXQgc3VwcG9ydGVkIik7Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogfQogCkBAIC0xNzU0LDcgKzE3NDIsNyBAQCBib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OnZhbGlkYXRlSW5kZXhBcnJheUNvbnNlcnZhdGl2ZShHQzNEZW51bSB0eXBlLCB1bnNpZwogICAg
IC8vIFRoZSBjYXNlIGNvdW50PT0wIGlzIGFscmVhZHkgZGVhbHQgd2l0aCBpbiBkcmF3RWxlbWVu
dHMgYmVmb3JlIHZhbGlkYXRlSW5kZXhBcnJheUNvbnNlcnZhdGl2ZS4KICAgICBpZiAoIW51bUVs
ZW1lbnRzKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY29uc3QgQXJyYXlCdWZmZXIqIGJ1
ZmZlciA9IGVsZW1lbnRBcnJheUJ1ZmZlci0+ZWxlbWVudEFycmF5QnVmZmVyKCk7CisgICAgYXV0
byogYnVmZmVyID0gZWxlbWVudEFycmF5QnVmZmVyLT5lbGVtZW50QXJyYXlCdWZmZXIoKTsKICAg
ICBBU1NFUlQoYnVmZmVyKTsKICAgICAKICAgICBpbnQgbWF4SW5kZXggPSBlbGVtZW50QXJyYXlC
dWZmZXItPmdldENhY2hlZE1heEluZGV4KHR5cGUpOwpAQCAtMTgwNiw3ICsxNzk0LDYgQEAgYm9v
bCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUJsZW5kRXF1YXRpb24oY29uc3QgY2hh
ciogZnVuY3Rpb25OYW1lLCBHQzMKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpNSU46CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TUFYOgogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCBtb2Rl
Iik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaAppbmRleCA3NTVkZTZiYmRkMjY5ODE2N2Qz
YmFhMGZkZGQzNGJiZTA2MTE1ZDU5Li5iNDgwM2FmMTYyZWM1ZjA0M2U3OTk2OWQ2ZDg1ZTUzMGVk
MzY1Y2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5k
ZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI4LDcgKzI4LDYgQEAKICNpZiBFTkFCTEUoV0VCR0wyKQogCiAjaW5j
bHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgotI2luY2x1ZGUgPHd0Zi9WYXJpYW50
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDEsOSArNDAsOSBAQCBjbGFzcyBXZWJH
TFZlcnRleEFycmF5T2JqZWN0OwogY2xhc3MgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCBmaW5hbCA6
IHB1YmxpYyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlIHsKIHB1YmxpYzoKICAgICBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50JiwgV2ViR0xDb250ZXh0QXR0cmlidXRl
cyk7Ci0gICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYsIFJlZlB0
cjxHcmFwaGljc0NvbnRleHQzRD4mJiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyk7CisgICAgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYsIFJlZjxHcmFwaGljc0NvbnRl
eHQzRD4mJiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyk7CiAKLSAgICAvKiBCdWZmZXIgb2JqZWN0
cyAqLworICAgIC8vIEJ1ZmZlciBvYmplY3RzCiAgICAgdXNpbmcgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6YnVmZmVyRGF0YTsKICAgICB1c2luZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpidWZmZXJTdWJEYXRhOwogICAgIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0YXJnZXQsIGNv
bnN0IEFycmF5QnVmZmVyVmlldyYgZGF0YSwgR0MzRGVudW0gdXNhZ2UsIEdDM0R1aW50IHNyY09m
ZnNldCwgR0MzRHVpbnQgbGVuZ3RoKTsKQEAgLTUxLDE5ICs1MCwxOSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjb3B5QnVmZmVyU3ViRGF0YShHQzNEZW51bSByZWFkVGFyZ2V0LCBHQzNEZW51bSB3cml0
ZVRhcmdldCwgR0MzRGludDY0IHJlYWRPZmZzZXQsIEdDM0RpbnQ2NCB3cml0ZU9mZnNldCwgR0Mz
RGludDY0IHNpemUpOwogICAgIHZvaWQgZ2V0QnVmZmVyU3ViRGF0YShHQzNEZW51bSB0YXJnZXQs
IGxvbmcgbG9uZyBzcmNCeXRlT2Zmc2V0LCBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiYmIGRzdERh
dGEsIEdDM0R1aW50IGRzdE9mZnNldCA9IDAsIEdDM0R1aW50IGxlbmd0aCA9IDApOwogICAgIAot
ICAgIC8qIEZyYW1lYnVmZmVyIG9iamVjdHMgKi8KLSAgICBXZWJHTEdldEluZm8gZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNo
bWVudCwgR0MzRGVudW0gcG5hbWUpIGZpbmFsOworICAgIC8vIEZyYW1lYnVmZmVyIG9iamVjdHMK
KyAgICBXZWJHTEFueSBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0g
dGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBwbmFtZSkgZmluYWw7CiAgICAg
dm9pZCBibGl0RnJhbWVidWZmZXIoR0MzRGludCBzcmNYMCwgR0MzRGludCBzcmNZMCwgR0MzRGlu
dCBzcmNYMSwgR0MzRGludCBzcmNZMSwgR0MzRGludCBkc3RYMCwgR0MzRGludCBkc3RZMCwgR0Mz
RGludCBkc3RYMSwgR0MzRGludCBkc3RZMSwgR0MzRGJpdGZpZWxkIG1hc2ssIEdDM0RlbnVtIGZp
bHRlcik7CiAgICAgdm9pZCBmcmFtZWJ1ZmZlclRleHR1cmVMYXllcihHQzNEZW51bSB0YXJnZXQs
IEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0R1aW50IHRleHR1cmUsIEdDM0RpbnQgbGV2ZWwsIEdD
M0RpbnQgbGF5ZXIpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRl
cihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBwbmFt
ZSk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBWZWN0
b3I8R0MzRGVudW0+IGF0dGFjaG1lbnRzKTsKLSAgICB2b2lkIGludmFsaWRhdGVTdWJGcmFtZWJ1
ZmZlcihHQzNEZW51bSB0YXJnZXQsIFZlY3RvcjxHQzNEZW51bT4gYXR0YWNobWVudHMsIEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpOworICAg
IFdlYkdMQW55IGdldEludGVybmFsZm9ybWF0UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RlbnVtIHBuYW1lKTsKKyAgICB2b2lkIGludmFsaWRh
dGVGcmFtZWJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIGNvbnN0IFZlY3RvcjxHQzNEZW51bT4mIGF0
dGFjaG1lbnRzKTsKKyAgICB2b2lkIGludmFsaWRhdGVTdWJGcmFtZWJ1ZmZlcihHQzNEZW51bSB0
YXJnZXQsIGNvbnN0IFZlY3RvcjxHQzNEZW51bT4mIGF0dGFjaG1lbnRzLCBHQzNEaW50IHgsIEdD
M0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKICAgICB2b2lkIHJl
YWRCdWZmZXIoR0MzRGVudW0gc3JjKTsKICAgICAKLSAgICAvKiBSZW5kZXJidWZmZXIgb2JqZWN0
cyAqLworICAgIC8vIFJlbmRlcmJ1ZmZlciBvYmplY3RzCiAgICAgdm9pZCByZW5kZXJidWZmZXJT
dG9yYWdlTXVsdGlzYW1wbGUoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgc2FtcGxlcywgR0Mz
RGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7
CiAgICAgCi0gICAgLyogVGV4dHVyZSBvYmplY3RzICovCisgICAgLy8gVGV4dHVyZSBvYmplY3Rz
CiAgICAgdm9pZCB0ZXhTdG9yYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxz
LCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVp
Z2h0KTsKICAgICB2b2lkIHRleFN0b3JhZ2UzRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBs
ZXZlbHMsIEdDM0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXpl
aSBoZWlnaHQsIEdDM0RzaXplaSBkZXB0aCk7CiAgICAgdm9pZCB0ZXhJbWFnZTNEKEdDM0RlbnVt
IHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVp
IHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEc2l6ZWkgZGVwdGgsIEdDM0RpbnQgYm9yZGVy
LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+
JiYgcGl4ZWxzKTsKQEAgLTc2LDEwICs3NSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21wcmVz
c2VkVGV4SW1hZ2UzRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGlu
dGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RzaXpl
aSBkZXB0aCwgR0MzRGludCBib3JkZXIsIEdDM0RzaXplaSBpbWFnZVNpemUsIFJlZlB0cjxBcnJh
eUJ1ZmZlclZpZXc+JiYgZGF0YSk7CiAgICAgdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UzRChH
QzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5
b2Zmc2V0LCBHQzNEaW50IHpvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdo
dCwgR0MzRHNpemVpIGRlcHRoLCBHQzNEZW51bSBmb3JtYXQsIEdDM0RzaXplaSBpbWFnZVNpemUs
IFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+JiYgZGF0YSk7CiAgICAgCi0gICAgLyogUHJvZ3JhbXMg
YW5kIHNoYWRlcnMgKi8KLSAgICBHQzNEaW50IGdldEZyYWdEYXRhTG9jYXRpb24oV2ViR0xQcm9n
cmFtKiBwcm9ncmFtLCBTdHJpbmcgbmFtZSk7CisgICAgLy8gUHJvZ3JhbXMgYW5kIHNoYWRlcnMK
KyAgICBHQzNEaW50IGdldEZyYWdEYXRhTG9jYXRpb24oV2ViR0xQcm9ncmFtKiwgY29uc3QgU3Ry
aW5nJiBuYW1lKTsKICAgICAKLSAgICAvKiBVbmlmb3JtcyBhbmQgYXR0cmlidXRlcyAqLworICAg
IC8vIFVuaWZvcm1zIGFuZCBhdHRyaWJ1dGVzCiAgICAgdm9pZCB1bmlmb3JtMXVpKFdlYkdMVW5p
Zm9ybUxvY2F0aW9uKiwgR0MzRHVpbnQgdjApOwogICAgIHZvaWQgdW5pZm9ybTJ1aShXZWJHTFVu
aWZvcm1Mb2NhdGlvbiosIEdDM0R1aW50IHYwLCBHQzNEdWludCB2MSk7CiAgICAgdm9pZCB1bmlm
b3JtM3VpKFdlYkdMVW5pZm9ybUxvY2F0aW9uKiwgR0MzRHVpbnQgdjAsIEdDM0R1aW50IHYxLCBH
QzNEdWludCB2Mik7CkBAIC0xMDAsNzAgKzk5LDcwIEBAIHB1YmxpYzoKICAgICB2b2lkIHZlcnRl
eEF0dHJpYkk0dWl2KEdDM0R1aW50IGluZGV4LCBSZWZQdHI8VWludDMyQXJyYXk+JiYgdik7CiAg
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWJJUG9pbnRlcihHQzNEdWludCBpbmRleCwgR0MzRGludCBzaXpl
LCBHQzNEZW51bSB0eXBlLCBHQzNEc2l6ZWkgc3RyaWRlLCBHQzNEaW50NjQgb2Zmc2V0KTsKICAg
ICAKLSAgICAvKiBXcml0aW5nIHRvIHRoZSBkcmF3aW5nIGJ1ZmZlciAqLworICAgIC8vIFdyaXRp
bmcgdG8gdGhlIGRyYXdpbmcgYnVmZmVyCiAgICAgdm9pZCBjbGVhcihHQzNEYml0ZmllbGQgbWFz
aykgZmluYWw7CiAgICAgdm9pZCB2ZXJ0ZXhBdHRyaWJEaXZpc29yKEdDM0R1aW50IGluZGV4LCBH
QzNEdWludCBkaXZpc29yKTsKICAgICB2b2lkIGRyYXdBcnJheXNJbnN0YW5jZWQoR0MzRGVudW0g
bW9kZSwgR0MzRGludCBmaXJzdCwgR0MzRHNpemVpIGNvdW50LCBHQzNEc2l6ZWkgaW5zdGFuY2VD
b3VudCk7CiAgICAgdm9pZCBkcmF3RWxlbWVudHNJbnN0YW5jZWQoR0MzRGVudW0gbW9kZSwgR0Mz
RHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50NjQgb2Zmc2V0LCBHQzNEc2l6ZWkg
aW5zdGFuY2VDb3VudCk7CiAgICAgdm9pZCBkcmF3UmFuZ2VFbGVtZW50cyhHQzNEZW51bSBtb2Rl
LCBHQzNEdWludCBzdGFydCwgR0MzRHVpbnQgZW5kLCBHQzNEc2l6ZWkgY291bnQsIEdDM0RlbnVt
IHR5cGUsIEdDM0RpbnQ2NCBvZmZzZXQpOwogICAgIAotICAgIC8qIE11bHRpcGxlIFJlbmRlciBU
YXJnZXRzICovCi0gICAgdm9pZCBkcmF3QnVmZmVycyhWZWN0b3I8R0MzRGVudW0+IGJ1ZmZlcnMp
OworICAgIC8vIE11bHRpcGxlIHJlbmRlciB0YXJnZXRzCisgICAgdm9pZCBkcmF3QnVmZmVycyhj
b25zdCBWZWN0b3I8R0MzRGVudW0+JiBidWZmZXJzKTsKICAgICB2b2lkIGNsZWFyQnVmZmVyaXYo
R0MzRGVudW0gYnVmZmVyLCBHQzNEaW50IGRyYXdidWZmZXIsIFJlZlB0cjxJbnQzMkFycmF5PiYm
IHZhbHVlKTsKICAgICB2b2lkIGNsZWFyQnVmZmVydWl2KEdDM0RlbnVtIGJ1ZmZlciwgR0MzRGlu
dCBkcmF3YnVmZmVyLCBSZWZQdHI8VWludDMyQXJyYXk+JiYgdmFsdWUpOwogICAgIHZvaWQgY2xl
YXJCdWZmZXJmdihHQzNEZW51bSBidWZmZXIsIEdDM0RpbnQgZHJhd2J1ZmZlciwgUmVmUHRyPEZs
b2F0MzJBcnJheT4mJiB2YWx1ZSk7CiAgICAgdm9pZCBjbGVhckJ1ZmZlcmZpKEdDM0RlbnVtIGJ1
ZmZlciwgR0MzRGludCBkcmF3YnVmZmVyLCBHQzNEZmxvYXQgZGVwdGgsIEdDM0RpbnQgc3RlbmNp
bCk7CiAgICAgCi0gICAgLyogUXVlcnkgT2JqZWN0cyAqLworICAgIC8vIFF1ZXJ5IG9iamVjdHMK
ICAgICBSZWZQdHI8V2ViR0xRdWVyeT4gY3JlYXRlUXVlcnkoKTsKLSAgICB2b2lkIGRlbGV0ZVF1
ZXJ5KFdlYkdMUXVlcnkqIHF1ZXJ5KTsKLSAgICBHQzNEYm9vbGVhbiBpc1F1ZXJ5KFdlYkdMUXVl
cnkqIHF1ZXJ5KTsKLSAgICB2b2lkIGJlZ2luUXVlcnkoR0MzRGVudW0gdGFyZ2V0LCBXZWJHTFF1
ZXJ5KiBxdWVyeSk7CisgICAgdm9pZCBkZWxldGVRdWVyeShXZWJHTFF1ZXJ5Kik7CisgICAgR0Mz
RGJvb2xlYW4gaXNRdWVyeShXZWJHTFF1ZXJ5Kik7CisgICAgdm9pZCBiZWdpblF1ZXJ5KEdDM0Rl
bnVtIHRhcmdldCwgV2ViR0xRdWVyeSopOwogICAgIHZvaWQgZW5kUXVlcnkoR0MzRGVudW0gdGFy
Z2V0KTsKICAgICBSZWZQdHI8V2ViR0xRdWVyeT4gZ2V0UXVlcnkoR0MzRGVudW0gdGFyZ2V0LCBH
QzNEZW51bSBwbmFtZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFF1ZXJ5UGFyYW1ldGVyKFdlYkdM
UXVlcnkqIHF1ZXJ5LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0UXVlcnlQYXJh
bWV0ZXIoV2ViR0xRdWVyeSosIEdDM0RlbnVtIHBuYW1lKTsKICAgICAKLSAgICAvKiBTYW1wbGVy
IE9iamVjdHMgKi8KKyAgICAvLyBTYW1wbGVyIG9iamVjdHMKICAgICBSZWZQdHI8V2ViR0xTYW1w
bGVyPiBjcmVhdGVTYW1wbGVyKCk7Ci0gICAgdm9pZCBkZWxldGVTYW1wbGVyKFdlYkdMU2FtcGxl
ciogc2FtcGxlcik7Ci0gICAgR0MzRGJvb2xlYW4gaXNTYW1wbGVyKFdlYkdMU2FtcGxlciogc2Ft
cGxlcik7Ci0gICAgdm9pZCBiaW5kU2FtcGxlcihHQzNEdWludCB1bml0LCBXZWJHTFNhbXBsZXIq
IHNhbXBsZXIpOwotICAgIHZvaWQgc2FtcGxlclBhcmFtZXRlcmkoV2ViR0xTYW1wbGVyKiBzYW1w
bGVyLCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7Ci0gICAgdm9pZCBzYW1wbGVyUGFy
YW1ldGVyZihXZWJHTFNhbXBsZXIqIHNhbXBsZXIsIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQg
cGFyYW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRTYW1wbGVyUGFyYW1ldGVyKFdlYkdMU2FtcGxl
ciogc2FtcGxlciwgR0MzRGVudW0gcG5hbWUpOworICAgIHZvaWQgZGVsZXRlU2FtcGxlcihXZWJH
TFNhbXBsZXIqKTsKKyAgICBHQzNEYm9vbGVhbiBpc1NhbXBsZXIoV2ViR0xTYW1wbGVyKik7Cisg
ICAgdm9pZCBiaW5kU2FtcGxlcihHQzNEdWludCB1bml0LCBXZWJHTFNhbXBsZXIqKTsKKyAgICB2
b2lkIHNhbXBsZXJQYXJhbWV0ZXJpKFdlYkdMU2FtcGxlciosIEdDM0RlbnVtIHBuYW1lLCBHQzNE
aW50IHBhcmFtKTsKKyAgICB2b2lkIHNhbXBsZXJQYXJhbWV0ZXJmKFdlYkdMU2FtcGxlciosIEdD
M0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQgcGFyYW0pOworICAgIFdlYkdMQW55IGdldFNhbXBsZXJQ
YXJhbWV0ZXIoV2ViR0xTYW1wbGVyKiwgR0MzRGVudW0gcG5hbWUpOwogICAgIAotICAgIC8qIFN5
bmMgb2JqZWN0cyAqLworICAgIC8vIFN5bmMgb2JqZWN0cwogICAgIFJlZlB0cjxXZWJHTFN5bmM+
IGZlbmNlU3luYyhHQzNEZW51bSBjb25kaXRpb24sIEdDM0RiaXRmaWVsZCBmbGFncyk7Ci0gICAg
R0MzRGJvb2xlYW4gaXNTeW5jKFdlYkdMU3luYyogc3luYyk7Ci0gICAgdm9pZCBkZWxldGVTeW5j
KFdlYkdMU3luYyogc3luYyk7Ci0gICAgR0MzRGVudW0gY2xpZW50V2FpdFN5bmMoV2ViR0xTeW5j
KiBzeW5jLCBHQzNEYml0ZmllbGQgZmxhZ3MsIEdDM0R1aW50NjQgdGltZW91dCk7Ci0gICAgdm9p
ZCB3YWl0U3luYyhXZWJHTFN5bmMqIHN5bmMsIEdDM0RiaXRmaWVsZCBmbGFncywgR0MzRHVpbnQ2
NCB0aW1lb3V0KTsKLSAgICBXZWJHTEdldEluZm8gZ2V0U3luY1BhcmFtZXRlcihXZWJHTFN5bmMq
IHN5bmMsIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBHQzNEYm9vbGVhbiBpc1N5bmMoV2ViR0xTeW5j
Kik7CisgICAgdm9pZCBkZWxldGVTeW5jKFdlYkdMU3luYyopOworICAgIEdDM0RlbnVtIGNsaWVu
dFdhaXRTeW5jKFdlYkdMU3luYyosIEdDM0RiaXRmaWVsZCBmbGFncywgR0MzRHVpbnQ2NCB0aW1l
b3V0KTsKKyAgICB2b2lkIHdhaXRTeW5jKFdlYkdMU3luYyosIEdDM0RiaXRmaWVsZCBmbGFncywg
R0MzRHVpbnQ2NCB0aW1lb3V0KTsKKyAgICBXZWJHTEFueSBnZXRTeW5jUGFyYW1ldGVyKFdlYkdM
U3luYyosIEdDM0RlbnVtIHBuYW1lKTsKICAgICAKLSAgICAvKiBUcmFuc2Zvcm0gRmVlZGJhY2sg
Ki8KKyAgICAvLyBUcmFuc2Zvcm0gZmVlZGJhY2sKICAgICBSZWZQdHI8V2ViR0xUcmFuc2Zvcm1G
ZWVkYmFjaz4gY3JlYXRlVHJhbnNmb3JtRmVlZGJhY2soKTsKICAgICB2b2lkIGRlbGV0ZVRyYW5z
Zm9ybUZlZWRiYWNrKFdlYkdMVHJhbnNmb3JtRmVlZGJhY2sqIGlkKTsKICAgICBHQzNEYm9vbGVh
biBpc1RyYW5zZm9ybUZlZWRiYWNrKFdlYkdMVHJhbnNmb3JtRmVlZGJhY2sqIGlkKTsKICAgICB2
b2lkIGJpbmRUcmFuc2Zvcm1GZWVkYmFjayhHQzNEZW51bSB0YXJnZXQsIFdlYkdMVHJhbnNmb3Jt
RmVlZGJhY2sqIGlkKTsKICAgICB2b2lkIGJlZ2luVHJhbnNmb3JtRmVlZGJhY2soR0MzRGVudW0g
cHJpbWl0aXZlTW9kZSk7CiAgICAgdm9pZCBlbmRUcmFuc2Zvcm1GZWVkYmFjaygpOwotICAgIHZv
aWQgdHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncyhXZWJHTFByb2dyYW0qLCBWZWN0b3I8U3RyaW5n
PiB2YXJ5aW5ncywgR0MzRGVudW0gYnVmZmVyTW9kZSk7CisgICAgdm9pZCB0cmFuc2Zvcm1GZWVk
YmFja1ZhcnlpbmdzKFdlYkdMUHJvZ3JhbSosIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2YXJ5aW5n
cywgR0MzRGVudW0gYnVmZmVyTW9kZSk7CiAgICAgUmVmUHRyPFdlYkdMQWN0aXZlSW5mbz4gZ2V0
VHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5nKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50IGluZGV4KTsK
ICAgICB2b2lkIHBhdXNlVHJhbnNmb3JtRmVlZGJhY2soKTsKICAgICB2b2lkIHJlc3VtZVRyYW5z
Zm9ybUZlZWRiYWNrKCk7CiAgICAgCi0gICAgLyogVW5pZm9ybSBCdWZmZXIgT2JqZWN0cyBhbmQg
VHJhbnNmb3JtIEZlZWRiYWNrIEJ1ZmZlcnMgKi8KLSAgICB2b2lkIGJpbmRCdWZmZXJCYXNlKEdD
M0RlbnVtIHRhcmdldCwgR0MzRHVpbnQgaW5kZXgsIFdlYkdMQnVmZmVyKiBidWZmZXIpOwotICAg
IHZvaWQgYmluZEJ1ZmZlclJhbmdlKEdDM0RlbnVtIHRhcmdldCwgR0MzRHVpbnQgaW5kZXgsIFdl
YkdMQnVmZmVyKiBidWZmZXIsIEdDM0RpbnQ2NCBvZmZzZXQsIEdDM0RpbnQ2NCBzaXplKTsKLSAg
ICBXZWJHTEdldEluZm8gZ2V0SW5kZXhlZFBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0R1
aW50IGluZGV4KTsKLSAgICBVaW50MzJBcnJheSogZ2V0VW5pZm9ybUluZGljZXMoV2ViR0xQcm9n
cmFtKiwgVmVjdG9yPFN0cmluZz4gdW5pZm9ybU5hbWVzKTsKKyAgICAvLyBVbmlmb3JtIGJ1ZmZl
ciBvYmplY3RzIGFuZCB0cmFuc2Zvcm0gZmVlZGJhY2sgYnVmZmVycworICAgIHZvaWQgYmluZEJ1
ZmZlckJhc2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEdWludCBpbmRleCwgV2ViR0xCdWZmZXIqKTsK
KyAgICB2b2lkIGJpbmRCdWZmZXJSYW5nZShHQzNEZW51bSB0YXJnZXQsIEdDM0R1aW50IGluZGV4
LCBXZWJHTEJ1ZmZlciosIEdDM0RpbnQ2NCBvZmZzZXQsIEdDM0RpbnQ2NCBzaXplKTsKKyAgICBX
ZWJHTEFueSBnZXRJbmRleGVkUGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRHVpbnQgaW5k
ZXgpOworICAgIFVpbnQzMkFycmF5KiBnZXRVbmlmb3JtSW5kaWNlcyhXZWJHTFByb2dyYW0qLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgdW5pZm9ybU5hbWVzKTsKICAgICBJbnQzMkFycmF5KiBnZXRB
Y3RpdmVVbmlmb3JtcyhXZWJHTFByb2dyYW0qLCBSZWZQdHI8VWludDMyQXJyYXk+JiYgdW5pZm9y
bUluZGljZXMsIEdDM0RlbnVtIHBuYW1lKTsKLSAgICBHQzNEdWludCBnZXRVbmlmb3JtQmxvY2tJ
bmRleChXZWJHTFByb2dyYW0qLCBTdHJpbmcgdW5pZm9ybUJsb2NrTmFtZSk7Ci0gICAgV2ViR0xH
ZXRJbmZvIGdldEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNE
dWludCB1bmlmb3JtQmxvY2tJbmRleCwgR0MzRGVudW0gcG5hbWUpOwotICAgIFdlYkdMR2V0SW5m
byBnZXRBY3RpdmVVbmlmb3JtQmxvY2tOYW1lKFdlYkdMUHJvZ3JhbSosIEdDM0R1aW50IHVuaWZv
cm1CbG9ja0luZGV4KTsKKyAgICBHQzNEdWludCBnZXRVbmlmb3JtQmxvY2tJbmRleChXZWJHTFBy
b2dyYW0qLCBjb25zdCBTdHJpbmcmIHVuaWZvcm1CbG9ja05hbWUpOworICAgIFdlYkdMQW55IGdl
dEFjdGl2ZVVuaWZvcm1CbG9ja1BhcmFtZXRlcihXZWJHTFByb2dyYW0qLCBHQzNEdWludCB1bmlm
b3JtQmxvY2tJbmRleCwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldEFjdGl2ZVVu
aWZvcm1CbG9ja05hbWUoV2ViR0xQcm9ncmFtKiwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrSW5kZXgp
OwogICAgIHZvaWQgdW5pZm9ybUJsb2NrQmluZGluZyhXZWJHTFByb2dyYW0qLCBHQzNEdWludCB1
bmlmb3JtQmxvY2tJbmRleCwgR0MzRHVpbnQgdW5pZm9ybUJsb2NrQmluZGluZyk7CiAgICAgCi0g
ICAgLyogVmVydGV4IEFycmF5IE9iamVjdHMgKi8KKyAgICAvLyBWZXJ0ZXggYXJyYXkgb2JqZWN0
cwogICAgIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBjcmVhdGVWZXJ0ZXhBcnJheSgp
OwogICAgIHZvaWQgZGVsZXRlVmVydGV4QXJyYXkoV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCogdmVy
dGV4QXJyYXkpOwogICAgIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXkoV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdCogdmVydGV4QXJyYXkpOwpAQCAtMTcyLDEwICsxNzEsMTAgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBib29sIGlzV2ViR0wyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQog
Ci0gICAgLyogRXh0ZW5zaW9ucyAqLworICAgIC8vIEV4dGVuc2lvbnMKICAgICBXZWJHTEV4dGVu
c2lvbiogZ2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYpIGZpbmFsOwogICAgIFZlY3RvcjxTdHJp
bmc+IGdldFN1cHBvcnRlZEV4dGVuc2lvbnMoKSBmaW5hbDsKLSAgICBXZWJHTEdldEluZm8gZ2V0
UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKKyAgICBXZWJHTEFueSBnZXRQYXJhbWV0
ZXIoR0MzRGVudW0gcG5hbWUpIGZpbmFsOwogCiAgICAgdm9pZCByZW5kZXJidWZmZXJTdG9yYWdl
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCkgZmluYWw7CiAgICAgdm9pZCBoaW50KEdDM0RlbnVtIHRhcmdl
dCwgR0MzRGVudW0gbW9kZSkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTEFueS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFu
eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTdlNGY1NjcyODcxYjM4MGVkOGQyMGUwNzZhNDk5NWZmZDEzMTdk
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQW55
LmNwcApAQCAtMCwwICsxLDEyMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTEFueS5oIgor
CisjaWYgRU5BQkxFKFdFQkdMKQorCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVk
ZSAiSlNXZWJHTEJ1ZmZlci5oIgorI2luY2x1ZGUgIkpTV2ViR0xGcmFtZWJ1ZmZlci5oIgorI2lu
Y2x1ZGUgIkpTV2ViR0xQcm9ncmFtLmgiCisjaW5jbHVkZSAiSlNXZWJHTFJlbmRlcmJ1ZmZlci5o
IgorI2luY2x1ZGUgIkpTV2ViR0xUZXh0dXJlLmgiCisjaW5jbHVkZSAiSlNXZWJHTFZlcnRleEFy
cmF5T2JqZWN0T0VTLmgiCisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KKworI2lmIEVOQUJMRShX
RUJHTDIpCisjaW5jbHVkZSAiSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0LmgiCisjZW5kaWYKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSlNDOworCisvLyBGSVhNRTog
VGhpcyBsaWtlbHkgY2FuIGJlIGF1dG9nZW5lcmF0ZWQgd2l0aCBhIGJpdCBvZiB3b3JrLgorSlNW
YWx1ZSB0b0pTKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QsIGNvbnN0IFdlYkdMQW55JiBhbnkpCit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24oYW55
LAorICAgICAgICBbXSAoc3RkOjpudWxscHRyX3QpIHsKKyAgICAgICAgICAgIHJldHVybiBqc051
bGwoKTsKKyAgICAgICAgfSwKKyAgICAgICAgW10gKGJvb2wgdmFsdWUpIHsKKyAgICAgICAgICAg
IHJldHVybiBqc0Jvb2xlYW4odmFsdWUpOworICAgICAgICB9LAorICAgICAgICBbXSAoaW50IHZh
bHVlKSB7CisgICAgICAgICAgICByZXR1cm4ganNOdW1iZXIodmFsdWUpOworICAgICAgICB9LAor
ICAgICAgICBbXSAodW5zaWduZWQgdmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBqc051bWJl
cih2YWx1ZSk7CisgICAgICAgIH0sCisgICAgICAgIFtdIChsb25nIGxvbmcgdmFsdWUpIHsKKyAg
ICAgICAgICAgIHJldHVybiBqc051bWJlcih2YWx1ZSk7CisgICAgICAgIH0sCisgICAgICAgIFtd
IChmbG9hdCB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHZhbHVlKTsKKyAg
ICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBTdHJpbmcmIHZhbHVlKSB7CisgICAgICAgICAg
ICByZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoJnN0YXRlLCB2YWx1ZSk7CisgICAgICAgIH0sCisg
ICAgICAgIFsmXSAoY29uc3QgVmVjdG9yPGJvb2w+JiB2YWx1ZXMpIHsKKyAgICAgICAgICAgIE1h
cmtlZEFyZ3VtZW50QnVmZmVyIGxpc3Q7CisgICAgICAgICAgICBmb3IgKGF1dG8mIHZhbHVlIDog
dmFsdWVzKQorICAgICAgICAgICAgICAgIGxpc3QuYXBwZW5kKGpzQm9vbGVhbih2YWx1ZSkpOwor
ICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5KCZzdGF0ZSwgMCwgJmdsb2JhbE9iamVj
dCwgbGlzdCk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPEZsb2F0MzJB
cnJheT4mIGFycmF5KSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxP
YmplY3QsIGFycmF5LmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQ
dHI8SW50MzJBcnJheT4mIGFycmF5KSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUs
ICZnbG9iYWxPYmplY3QsIGFycmF5LmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChj
b25zdCBSZWZQdHI8VWludDhBcnJheT4mIGFycmF5KSB7CisgICAgICAgICAgICByZXR1cm4gdG9K
Uygmc3RhdGUsICZnbG9iYWxPYmplY3QsIGFycmF5LmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAg
ICAgWyZdIChjb25zdCBSZWZQdHI8VWludDMyQXJyYXk+JiBhcnJheSkgeworICAgICAgICAgICAg
cmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCBhcnJheS5nZXQoKSk7CisgICAgICAg
IH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdlYkdMQnVmZmVyPiYgYnVmZmVyKSB7Cisg
ICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUsICZnbG9iYWxPYmplY3QsIGJ1ZmZlci5nZXQo
KSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPFdlYkdMRnJhbWVidWZm
ZXI+JiBidWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9i
amVjdCwgYnVmZmVyLmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQ
dHI8V2ViR0xQcm9ncmFtPiYgcHJvZ3JhbSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0
YXRlLCAmZ2xvYmFsT2JqZWN0LCBwcm9ncmFtLmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAg
WyZdIChjb25zdCBSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+JiBidWZmZXIpIHsKKyAgICAgICAg
ICAgIHJldHVybiB0b0pTKCZzdGF0ZSwgJmdsb2JhbE9iamVjdCwgYnVmZmVyLmdldCgpKTsKKyAg
ICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2ViR0xUZXh0dXJlPiYgdGV4dHVy
ZSkgeworICAgICAgICAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCB0ZXh0
dXJlLmdldCgpKTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUz4mIGFycmF5KSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygm
c3RhdGUsICZnbG9iYWxPYmplY3QsIGFycmF5LmdldCgpKTsKKyAgICAgICAgfQorI2lmIEVOQUJM
RShXRUJHTDIpCisgICAgICAgICwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8V2ViR0xWZXJ0
ZXhBcnJheU9iamVjdD4mIGFycmF5KSB7CisgICAgICAgICAgICByZXR1cm4gdG9KUygmc3RhdGUs
ICZnbG9iYWxPYmplY3QsIGFycmF5LmdldCgpKTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgKTsK
K30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQW55LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNjN2JiN2Y5ODczOTRmMjczYTc0Yjg4MWIwMDc4MGU3NzNiNjAyNjAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFueS5oCkBAIC0wLDAg
KzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIldlYkdMQnVmZmVy
LmgiCisjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgorI2luY2x1ZGUgIldlYkdMUHJvZ3Jh
bS5oIgorI2luY2x1ZGUgIldlYkdMUmVuZGVyYnVmZmVyLmgiCisjaW5jbHVkZSAiV2ViR0xUZXh0
dXJlLmgiCisjaW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgorI2luY2x1ZGUg
PHJ1bnRpbWUvRmxvYXQzMkFycmF5Lmg+CisjaW5jbHVkZSA8cnVudGltZS9JbnQzMkFycmF5Lmg+
CisjaW5jbHVkZSA8cnVudGltZS9VaW50MzJBcnJheS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvVWlu
dDhBcnJheS5oPgorCisjaWYgRU5BQkxFKFdFQkdMMikKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFy
cmF5T2JqZWN0LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBFeGVjU3RhdGU7
CitjbGFzcyBKU1ZhbHVlOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEpTRE9N
R2xvYmFsT2JqZWN0OworCit1c2luZyBXZWJHTEFueSA9IFZhcmlhbnQ8c3RkOjpudWxscHRyX3Qs
IGJvb2wsIGludCwgdW5zaWduZWQsIGxvbmcgbG9uZywgZmxvYXQsIFN0cmluZywgVmVjdG9yPGJv
b2w+LAorICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+LAorICAgIFJlZlB0cjxJbnQzMkFycmF5PiwK
KyAgICBSZWZQdHI8VWludDMyQXJyYXk+LAorICAgIFJlZlB0cjxVaW50OEFycmF5PiwKKyAgICBS
ZWZQdHI8V2ViR0xCdWZmZXI+LAorICAgIFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiwKKyAgICBS
ZWZQdHI8V2ViR0xQcm9ncmFtPiwKKyAgICBSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+LAorICAg
IFJlZlB0cjxXZWJHTFRleHR1cmU+LAorICAgIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTPgorI2lmIEVOQUJMRShXRUJHTDIpCisgICAgLCBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9i
amVjdD4KKyNlbmRpZgorPjsKKworSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUmLCBK
U0RPTUdsb2JhbE9iamVjdCYsIGNvbnN0IFdlYkdMQW55Jik7CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTEJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5j
cHAKaW5kZXggZGYxNzcxMWRiMGI4OWVhZDAzOGY3M2MzMWQyMmZlMWUzMmE1ZTNjYy4uYmRiODFk
NmU1NWZkNzQzZWViN2QwN2EzMmI0MDI0MzBlMzljNjliNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwxMSArMjQsMTAgQEAKICAqLwogCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKIAogI2lmIEVOQUJMRShXRUJH
TCkKIAotI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCi0KICNpbmNsdWRlICJXZWJHTENvbnRleHRH
cm91cC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKIApAQCAtNDEs
OSArNDAsNiBAQCBSZWY8V2ViR0xCdWZmZXI+IFdlYkdMQnVmZmVyOjpjcmVhdGUoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSYgY3R4KQogCiBXZWJHTEJ1ZmZlcjo6V2ViR0xCdWZmZXIoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4KQogICAgIDogV2ViR0xTaGFyZWRPYmplY3QoY3R4KQot
ICAgICwgbV90YXJnZXQoMCkKLSAgICAsIG1fYnl0ZUxlbmd0aCgwKQotICAgICwgbV9uZXh0QXZh
aWxhYmxlQ2FjaGVFbnRyeSgwKQogewogICAgIHNldE9iamVjdChjdHguZ3JhcGhpY3NDb250ZXh0
M0QoKS0+Y3JlYXRlQnVmZmVyKCkpOwogICAgIGNsZWFyQ2FjaGVkTWF4SW5kaWNlcygpOwpAQCAt
NTYsNyArNTIsNyBAQCBXZWJHTEJ1ZmZlcjo6fldlYkdMQnVmZmVyKCkKIAogdm9pZCBXZWJHTEJ1
ZmZlcjo6ZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dDNkLCBQbGF0
Zm9ybTNET2JqZWN0IG9iamVjdCkKIHsKLSAgICAgIGNvbnRleHQzZC0+ZGVsZXRlQnVmZmVyKG9i
amVjdCk7CisgICAgY29udGV4dDNkLT5kZWxldGVCdWZmZXIob2JqZWN0KTsKIH0KIAogYm9vbCBX
ZWJHTEJ1ZmZlcjo6YXNzb2NpYXRlQnVmZmVyRGF0YUltcGwoY29uc3Qgdm9pZCogZGF0YSwgR0Mz
RHNpemVpcHRyIGJ5dGVMZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTEJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZm
ZXIuaAppbmRleCAxYjQxNGU4ZmM5YTEzNWE5Y2VjMGJjZDZjNmYyMmUwOWMyNzcxZDRlLi5kM2Jk
OWEwMzhlY2I4ZDcwYzdkMDQ3OGVjNDA4YzkyMWE0NzkzMGU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMQnVmZmVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsOSArMzcsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFdlYkdMQnVmZmVyIGZpbmFsIDogcHVibGljIFdlYkdMU2hhcmVkT2JqZWN0IHsK
IHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJHTEJ1ZmZlcigpOwotCiAgICAgc3RhdGljIFJlZjxX
ZWJHTEJ1ZmZlcj4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKKyAgICB2aXJ0
dWFsIH5XZWJHTEJ1ZmZlcigpOwogCiAgICAgYm9vbCBhc3NvY2lhdGVCdWZmZXJEYXRhKEdDM0Rz
aXplaXB0ciBzaXplKTsKICAgICBib29sIGFzc29jaWF0ZUJ1ZmZlckRhdGEoSlNDOjpBcnJheUJ1
ZmZlciopOwpAQCAtNzAsMTIgKzY5LDEwIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGRlbGV0ZU9i
amVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsK
IAogcHJpdmF0ZToKLSAgICBib29sIGlzQnVmZmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQotCi0gICAgR0MzRGVudW0gbV90YXJnZXQ7CisgICAgR0MzRGVudW0gbV90YXJnZXQg
eyAwIH07CiAKICAgICBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4gbV9lbGVtZW50QXJyYXlCdWZm
ZXI7Ci0gICAgR0MzRHNpemVpcHRyIG1fYnl0ZUxlbmd0aDsKKyAgICBHQzNEc2l6ZWlwdHIgbV9i
eXRlTGVuZ3RoIHsgMCB9OwogCiAgICAgLy8gT3B0aW1pemF0aW9uIGZvciBpbmRleCB2YWxpZGF0
aW9uLiBGb3IgZWFjaCB0eXBlIG9mIGluZGV4CiAgICAgLy8gKGkuZS4sIFVOU0lHTkVEX1NIT1JU
KSwgY2FjaGUgdGhlIG1heGltdW0gaW5kZXggaW4gdGhlCkBAIC05Miw3ICs4OSw3IEBAIHByaXZh
dGU6CiAgICAgLy8gYW5kIFVOU0lHTkVEX1NIT1JUKSwgYnV0IG1pZ2h0IGFzIHdlbGwgbGVhdmUg
b3BlbiB0aGUKICAgICAvLyBwb3NzaWJpbGl0eSBvZiBhZGRpbmcgb3RoZXJzLgogICAgIE1heElu
ZGV4Q2FjaGVFbnRyeSBtX21heEluZGV4Q2FjaGVbNF07Ci0gICAgdW5zaWduZWQgaW50IG1fbmV4
dEF2YWlsYWJsZUNhY2hlRW50cnk7CisgICAgdW5zaWduZWQgbV9uZXh0QXZhaWxhYmxlQ2FjaGVF
bnRyeSB7IDAgfTsKIAogICAgIC8vIENsZWFycyBhbGwgb2YgdGhlIGNhY2hlZCBtYXggaW5kaWNl
cy4KICAgICB2b2lkIGNsZWFyQ2FjaGVkTWF4SW5kaWNlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwCmluZGV4IDIxMzNmMzNlZmM4Y2Uw
OTg3YjQ5ODMzY2JjMTBmYzc1OTEyYTA4MjIuLjlkZGVmMTU4Y2QwYWNkZTZiNjhjYWRkZDJiYzkz
Y2VkNWE4M2RlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
Q29udGV4dEdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENv
bnRleHRHcm91cC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjQsMTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAK
LSNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgotCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0M0QuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAjaW5jbHVk
ZSAiV2ViR0xTaGFyZWRPYmplY3QuaCIKQEAgLTM3LDExICszNiw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogUmVmPFdlYkdMQ29udGV4dEdyb3VwPiBXZWJHTENvbnRleHRHcm91cDo6Y3JlYXRl
KCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTENvbnRleHRHcm91cCgpKTsKLX0K
LQotV2ViR0xDb250ZXh0R3JvdXA6OldlYkdMQ29udGV4dEdyb3VwKCkKLXsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXZWJHTENvbnRleHRHcm91cCk7CiB9CiAKIFdlYkdMQ29udGV4dEdyb3Vw
Ojp+V2ViR0xDb250ZXh0R3JvdXAoKQpAQCAtNDksNDMgKzQ0LDQwIEBAIFdlYkdMQ29udGV4dEdy
b3VwOjp+V2ViR0xDb250ZXh0R3JvdXAoKQogICAgIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMo
KTsKIH0KIAotR3JhcGhpY3NDb250ZXh0M0QqIFdlYkdMQ29udGV4dEdyb3VwOjpnZXRBR3JhcGhp
Y3NDb250ZXh0M0QoKQorR3JhcGhpY3NDb250ZXh0M0QmIFdlYkdMQ29udGV4dEdyb3VwOjpnZXRB
R3JhcGhpY3NDb250ZXh0M0QoKQogewogICAgIEFTU0VSVCghbV9jb250ZXh0cy5pc0VtcHR5KCkp
OwotICAgIEhhc2hTZXQ8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+OjppdGVyYXRvciBpdCA9
IG1fY29udGV4dHMuYmVnaW4oKTsKLSAgICByZXR1cm4gKCppdCktPmdyYXBoaWNzQ29udGV4dDNE
KCk7CisgICAgcmV0dXJuICooKm1fY29udGV4dHMuYmVnaW4oKSktPmdyYXBoaWNzQ29udGV4dDNE
KCk7CiB9CiAKLXZvaWQgV2ViR0xDb250ZXh0R3JvdXA6OmFkZENvbnRleHQoV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSogY29udGV4dCkKK3ZvaWQgV2ViR0xDb250ZXh0R3JvdXA6OmFkZENvbnRl
eHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCkKIHsKLSAgICBtX2NvbnRleHRz
LmFkZChjb250ZXh0KTsKKyAgICBtX2NvbnRleHRzLmFkZCgmY29udGV4dCk7CiB9CiAKLXZvaWQg
V2ViR0xDb250ZXh0R3JvdXA6OnJlbW92ZUNvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSogY29udGV4dCkKK3ZvaWQgV2ViR0xDb250ZXh0R3JvdXA6OnJlbW92ZUNvbnRleHQoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCkKIHsKICAgICAvLyBXZSBtdXN0IGNhbGwgZGV0
YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cyBiZWZvcmUgcmVtb3ZpbmcgdGhlIGxhc3QgY29udGV4dC4K
LSAgICBpZiAobV9jb250ZXh0cy5zaXplKCkgPT0gMSAmJiBtX2NvbnRleHRzLmNvbnRhaW5zKGNv
bnRleHQpKQorICAgIGlmIChtX2NvbnRleHRzLnNpemUoKSA9PSAxICYmIG1fY29udGV4dHMuY29u
dGFpbnMoJmNvbnRleHQpKQogICAgICAgICBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCk7CiAK
LSAgICBtX2NvbnRleHRzLnJlbW92ZShjb250ZXh0KTsKKyAgICBtX2NvbnRleHRzLnJlbW92ZSgm
Y29udGV4dCk7CiB9CiAKLXZvaWQgV2ViR0xDb250ZXh0R3JvdXA6OnJlbW92ZU9iamVjdChXZWJH
TFNoYXJlZE9iamVjdCogb2JqZWN0KQordm9pZCBXZWJHTENvbnRleHRHcm91cDo6cmVtb3ZlT2Jq
ZWN0KFdlYkdMU2hhcmVkT2JqZWN0JiBvYmplY3QpCiB7Ci0gICAgbV9ncm91cE9iamVjdHMucmVt
b3ZlKG9iamVjdCk7CisgICAgbV9ncm91cE9iamVjdHMucmVtb3ZlKCZvYmplY3QpOwogfQogCi12
b2lkIFdlYkdMQ29udGV4dEdyb3VwOjphZGRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVj
dCkKK3ZvaWQgV2ViR0xDb250ZXh0R3JvdXA6OmFkZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCYg
b2JqZWN0KQogewotICAgIG1fZ3JvdXBPYmplY3RzLmFkZChvYmplY3QpOworICAgIG1fZ3JvdXBP
YmplY3RzLmFkZCgmb2JqZWN0KTsKIH0KIAogdm9pZCBXZWJHTENvbnRleHRHcm91cDo6ZGV0YWNo
QW5kUmVtb3ZlQWxsT2JqZWN0cygpCiB7Ci0gICAgd2hpbGUgKCFtX2dyb3VwT2JqZWN0cy5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgSGFzaFNldDxXZWJHTFNoYXJlZE9iamVjdCo+OjppdGVyYXRvciBp
dCA9IG1fZ3JvdXBPYmplY3RzLmJlZ2luKCk7Ci0gICAgICAgICgqaXQpLT5kZXRhY2hDb250ZXh0
R3JvdXAoKTsKLSAgICB9CisgICAgd2hpbGUgKCFtX2dyb3VwT2JqZWN0cy5pc0VtcHR5KCkpCisg
ICAgICAgICgqbV9ncm91cE9iamVjdHMuYmVnaW4oKSktPmRldGFjaENvbnRleHRHcm91cCgpOwog
fQogCiB2b2lkIFdlYkdMQ29udGV4dEdyb3VwOjpsb3NlQ29udGV4dEdyb3VwKFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6Okxvc3RDb250ZXh0TW9kZSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKaW5kZXggOWQwMTBiZmNjMjA5OTZhMTQ2
NDg1N2FmY2VlZjNjNGFhN2E2YjliNy4uMTFiNzM3MDMyMjZlMTFiZTNlNTRmNmViYzU2MjIyMGMy
ZDE1NWE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0R3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI2LDM1ICsyNiwyNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdyYXBo
aWNzQ29udGV4dDNEOwotY2xhc3MgV2ViR0xFeHRlbnNpb247Ci1jbGFzcyBXZWJHTFNoYXJlZE9i
amVjdDsKLWNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7Ci0KLWNsYXNzIFdlYkdMQ29u
dGV4dEdyb3VwIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR0xDb250ZXh0R3JvdXA+IHsK
K2NsYXNzIFdlYkdMQ29udGV4dEdyb3VwIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViR0xDb250ZXh0
R3JvdXA+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkdMQ29udGV4dEdyb3VwPiBjcmVh
dGUoKTsKICAgICB+V2ViR0xDb250ZXh0R3JvdXAoKTsKIAotICAgIHZvaWQgYWRkQ29udGV4dChX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKik7Ci0gICAgdm9pZCByZW1vdmVDb250ZXh0KFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UqKTsKKyAgICB2b2lkIGFkZENvbnRleHQoV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYpOworICAgIHZvaWQgcmVtb3ZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJik7CiAKLSAgICB2b2lkIGFkZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCopOwot
ICAgIHZvaWQgcmVtb3ZlT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0Kik7CisgICAgdm9pZCBhZGRP
YmplY3QoV2ViR0xTaGFyZWRPYmplY3QmKTsKKyAgICB2b2lkIHJlbW92ZU9iamVjdChXZWJHTFNo
YXJlZE9iamVjdCYpOwogCi0gICAgR3JhcGhpY3NDb250ZXh0M0QqIGdldEFHcmFwaGljc0NvbnRl
eHQzRCgpOworICAgIEdyYXBoaWNzQ29udGV4dDNEJiBnZXRBR3JhcGhpY3NDb250ZXh0M0QoKTsK
IAogICAgIHZvaWQgbG9zZUNvbnRleHRHcm91cChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpM
b3N0Q29udGV4dE1vZGUpOwogCi0gIHByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIFdlYkdMT2Jq
ZWN0OwotCi0gICAgV2ViR0xDb250ZXh0R3JvdXAoKTsKK3ByaXZhdGU6CisgICAgV2ViR0xDb250
ZXh0R3JvdXAoKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIGRldGFjaEFuZFJlbW92ZUFsbE9iamVj
dHMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9i
amVjdC5jcHAKaW5kZXggNTIzZTZlNjQyZDc0OWI2MDIyZjM3NzNhODhlZGY0ZWEwZWNiOWJiOC4u
NmExYzdhYjI5OTljODQ1Y2U5ZmU0MzEyOTE0MGVjM2NiYmM0MDVlYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCkBAIC0yNCwyNSAr
MjQsMjMgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xDb250
ZXh0T2JqZWN0LmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAKLSNpbmNsdWRlICJXZWJHTENvbnRl
eHRPYmplY3QuaCIKLQogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBXZWJHTENvbnRleHRPYmplY3Q6OldlYkdMQ29udGV4dE9i
amVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQotICAgIDogV2ViR0xPYmpl
Y3QoY29udGV4dCkKLSAgICAsIG1fY29udGV4dCgmY29udGV4dCkKKyAgICA6IG1fY29udGV4dCgm
Y29udGV4dCkKIHsKIH0KIAogV2ViR0xDb250ZXh0T2JqZWN0Ojp+V2ViR0xDb250ZXh0T2JqZWN0
KCkKIHsKICAgICBpZiAobV9jb250ZXh0KQotICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNvbnRl
eHRPYmplY3QodGhpcyk7CisgICAgICAgIG1fY29udGV4dC0+cmVtb3ZlQ29udGV4dE9iamVjdCgq
dGhpcyk7CiB9CiAKIHZvaWQgV2ViR0xDb250ZXh0T2JqZWN0OjpkZXRhY2hDb250ZXh0KCkKQEAg
LTUwLDE0ICs0OCwxNCBAQCB2b2lkIFdlYkdMQ29udGV4dE9iamVjdDo6ZGV0YWNoQ29udGV4dCgp
CiAgICAgZGV0YWNoKCk7CiAgICAgaWYgKG1fY29udGV4dCkgewogICAgICAgICBkZWxldGVPYmpl
Y3QobV9jb250ZXh0LT5ncmFwaGljc0NvbnRleHQzRCgpKTsKLSAgICAgICAgbV9jb250ZXh0LT5y
ZW1vdmVDb250ZXh0T2JqZWN0KHRoaXMpOwotICAgICAgICBtX2NvbnRleHQgPSAwOworICAgICAg
ICBtX2NvbnRleHQtPnJlbW92ZUNvbnRleHRPYmplY3QoKnRoaXMpOworICAgICAgICBtX2NvbnRl
eHQgPSBudWxscHRyOwogICAgIH0KIH0KIAogR3JhcGhpY3NDb250ZXh0M0QqIFdlYkdMQ29udGV4
dE9iamVjdDo6Z2V0QUdyYXBoaWNzQ29udGV4dDNEKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9j
b250ZXh0ID8gbV9jb250ZXh0LT5ncmFwaGljc0NvbnRleHQzRCgpIDogMDsKKyAgICByZXR1cm4g
bV9jb250ZXh0ID8gbV9jb250ZXh0LT5ncmFwaGljc0NvbnRleHQzRCgpIDogbnVsbHB0cjsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1
ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNw
cAppbmRleCBmOWI3YzIwMjI4ODNkNTc5MmIwMjVmMDIxMWQwMmU0ZGE2YjY2NjNhLi5jMjc2MmIy
MzY3YjdjMzQxOTZiNDdmZWUzZjllYzM0ZGZjYmEwOWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwxMSArMjQsMTAgQEAKICAqLwog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgogCiAj
aWYgRU5BQkxFKFdFQkdMKQogCi0jaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgotCiAjaW5j
bHVkZSAiRXh0ZW5zaW9uczNELmgiCiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKICNp
bmNsdWRlICJXZWJHTERyYXdCdWZmZXJzLmgiCkBAIC02MDYsNiArNjA1LDkgQEAgdm9pZCBXZWJH
TEZyYW1lYnVmZmVyOjpkcmF3QnVmZmVycyhjb25zdCBWZWN0b3I8R0MzRGVudW0+JiBidWZzKQog
dm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KGJvb2wgZm9yY2Up
CiB7CiAjaWYgRU5BQkxFKFdFQkdMMikKKyAgICAvLyBGSVhNRTogVGhlIGxvZ2ljIGhlcmUgc2Vl
bXMgd3JvbmcuIElmIHdlIGRvbid0IGhhdmUgV2ViR0wgMiBlbmFibGVkIGF0IGFsbCwgdGhlbgor
ICAgIC8vIHdlIHNraXAgdGhlIG1fd2ViZ2xEcmF3QnVmZmVycyBjaGVjay4gQnV0IGlmIHdlIGRv
IGhhdmUgV2ViR0wgMiBlbmFibGVkLCB0aGVuIHdlCisgICAgLy8gcGVyZm9ybSB0aGlzIGNoZWNr
LCBmb3IgV2ViR0wgMSBjb250ZXh0cyBvbmx5LgogICAgIGlmICghY29udGV4dCgpLT5tX3dlYmds
RHJhd0J1ZmZlcnMgJiYgIWNvbnRleHQoKS0+aXNXZWJHTDIoKSkKICAgICAgICAgcmV0dXJuOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldElu
Zm8uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGVhZDFjZmQ2Mzc0MmIwMGQ1MjQyZGU3MTk1NzIz
YWIzZWYzZDFlYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsMzcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShXRUJHTCkKLQotI2lu
Y2x1ZGUgIldlYkdMR2V0SW5mby5oIgotCi0jaW5jbHVkZSA8cnVudGltZS9GbG9hdDMyQXJyYXku
aD4KLSNpbmNsdWRlIDxydW50aW1lL0ludDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL1Vp
bnQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9VaW50OEFycmF5Lmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oYm9vbCB2YWx1ZSkKLSAg
ICA6IG1fdHlwZShrVHlwZUJvb2wpCi0gICAgLCBtX2Jvb2wodmFsdWUpCi0gICAgLCBtX2Zsb2F0
KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2
NCgwKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhjb25zdCBib29sKiB2YWx1
ZSwgaW50IHNpemUpCi0gICAgOiBtX3R5cGUoa1R5cGVCb29sQXJyYXkpCi0gICAgLCBtX2Jvb2wo
ZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25l
ZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotewotICAgIGlmICghdmFsdWUgfHwgc2l6ZSA8PTAp
Ci0gICAgICAgIHJldHVybjsKLSAgICBtX2Jvb2xBcnJheS5yZXNpemUoc2l6ZSk7Ci0gICAgZm9y
IChpbnQgaWkgPSAwOyBpaSA8IHNpemU7ICsraWkpCi0gICAgICAgIG1fYm9vbEFycmF5W2lpXSA9
IHZhbHVlW2lpXTsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oZmxvYXQgdmFsdWUp
Ci0gICAgOiBtX3R5cGUoa1R5cGVGbG9hdCkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1f
ZmxvYXQodmFsdWUpCi0gICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAg
ICwgbV9pbnQ2NCgwKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhpbnQgdmFs
dWUpCi0gICAgOiBtX3R5cGUoa1R5cGVJbnQpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBt
X2Zsb2F0KDApCi0gICAgLCBtX2ludCh2YWx1ZSkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAg
ICAsIG1faW50NjQoMCkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oKQotICAg
IDogbV90eXBlKGtUeXBlTnVsbCkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQo
MCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0
KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKGNvbnN0IFN0cmluZyYgdmFs
dWUpCi0gICAgOiBtX3R5cGUoa1R5cGVTdHJpbmcpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAg
LCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwgbV9zdHJpbmcodmFsdWUpCi0gICAg
LCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi17Ci19Ci0KLVdlYkdMR2V0SW5m
bzo6V2ViR0xHZXRJbmZvKHVuc2lnbmVkIGludCB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVVu
c2lnbmVkSW50KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwg
bV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQodmFsdWUpCi0gICAgLCBtX2ludDY0KDApCi17
Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKGxvbmcgbG9uZyB2YWx1ZSkKLSAgICA6
IG1fdHlwZShrVHlwZUludDY0KQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgw
KQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQo
dmFsdWUpCi17Ci19Ci0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxX
ZWJHTEJ1ZmZlcj4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJHTEJ1ZmZlcikKLSAgICAs
IG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBt
X3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0KDApCi0gICAgLCBtX3dlYmdsQnVmZmVyKHZh
bHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPEZsb2F0
MzJBcnJheT4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJHTEZsb2F0QXJyYXkpCi0gICAg
LCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2ludCgwKQotICAgICwg
bV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93ZWJnbEZsb2F0QXJy
YXkodmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8
V2ViR0xGcmFtZWJ1ZmZlcj4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJHTEZyYW1lYnVm
ZmVyKQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQo
MCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2Vi
Z2xGcmFtZWJ1ZmZlcih2YWx1ZSkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8o
UGFzc1JlZlB0cjxJbnQzMkFycmF5PiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMSW50
QXJyYXkpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2lu
dCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93
ZWJnbEludEFycmF5KHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQ
YXNzUmVmUHRyPFdlYkdMUHJvZ3JhbT4gdmFsdWUpCi0gICAgOiBtX3R5cGUoa1R5cGVXZWJHTFBy
b2dyYW0pCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0gICAgLCBtX2lu
dCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQotICAgICwgbV93
ZWJnbFByb2dyYW0odmFsdWUpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBh
c3NSZWZQdHI8V2ViR0xSZW5kZXJidWZmZXI+IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlV2Vi
R0xSZW5kZXJidWZmZXIpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0g
ICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQot
ICAgICwgbV93ZWJnbFJlbmRlcmJ1ZmZlcih2YWx1ZSkKLXsKLX0KLQotV2ViR0xHZXRJbmZvOjpX
ZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+IHZhbHVlKQotICAgIDogbV90eXBl
KGtUeXBlV2ViR0xUZXh0dXJlKQotICAgICwgbV9ib29sKGZhbHNlKQotICAgICwgbV9mbG9hdCgw
KQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWduZWRJbnQoMCkKLSAgICAsIG1faW50NjQo
MCkKLSAgICAsIG1fd2ViZ2xUZXh0dXJlKHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86Oldl
YkdMR2V0SW5mbyhQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHZhbHVlKQotICAgIDogbV90eXBlKGtU
eXBlV2ViR0xVbnNpZ25lZEJ5dGVBcnJheSkKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1f
ZmxvYXQoMCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBt
X2ludDY0KDApCi0gICAgLCBtX3dlYmdsVW5zaWduZWRCeXRlQXJyYXkodmFsdWUpCi17Ci19Ci0K
LVdlYkdMR2V0SW5mbzo6V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDMyQXJyYXk+IHZhbHVl
KQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xVbnNpZ25lZEludEFycmF5KQotICAgICwgbV9ib29s
KGZhbHNlKQotICAgICwgbV9mbG9hdCgwKQotICAgICwgbV9pbnQoMCkKLSAgICAsIG1fdW5zaWdu
ZWRJbnQoMCkKLSAgICAsIG1faW50NjQoMCkKLSAgICAsIG1fd2ViZ2xVbnNpZ25lZEludEFycmF5
KHZhbHVlKQotewotfQotCi1XZWJHTEdldEluZm86OldlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IHZhbHVlKQotICAgIDogbV90eXBlKGtUeXBlV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUykKLSAgICAsIG1fYm9vbChmYWxzZSkKLSAgICAsIG1fZmxvYXQo
MCkKLSAgICAsIG1faW50KDApCi0gICAgLCBtX3Vuc2lnbmVkSW50KDApCi0gICAgLCBtX2ludDY0
KDApCi0gICAgLCBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3RPRVModmFsdWUpCi17Ci19Ci0KLSNp
ZiBFTkFCTEUoV0VCR0wyKQotV2ViR0xHZXRJbmZvOjpXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxX
ZWJHTFZlcnRleEFycmF5T2JqZWN0PiB2YWx1ZSkKLSAgICA6IG1fdHlwZShrVHlwZVdlYkdMVmVy
dGV4QXJyYXlPYmplY3QpCi0gICAgLCBtX2Jvb2woZmFsc2UpCi0gICAgLCBtX2Zsb2F0KDApCi0g
ICAgLCBtX2ludCgwKQotICAgICwgbV91bnNpZ25lZEludCgwKQotICAgICwgbV9pbnQ2NCgwKQot
ICAgICwgbV93ZWJnbFZlcnRleEFycmF5T2JqZWN0KHZhbHVlKQotewotfQotI2VuZGlmCi0KLVdl
YkdMR2V0SW5mbzo6fldlYkdMR2V0SW5mbygpCi17Ci19Ci0KLVdlYkdMR2V0SW5mbzo6VHlwZSBX
ZWJHTEdldEluZm86OmdldFR5cGUoKSBjb25zdAotewotICAgIHJldHVybiBtX3R5cGU7Ci19Ci0K
LWJvb2wgV2ViR0xHZXRJbmZvOjpnZXRCb29sKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlw
ZSgpID09IGtUeXBlQm9vbCk7Ci0gICAgcmV0dXJuIG1fYm9vbDsKLX0KLQotY29uc3QgVmVjdG9y
PGJvb2w+JiBXZWJHTEdldEluZm86OmdldEJvb2xBcnJheSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJU
KGdldFR5cGUoKSA9PSBrVHlwZUJvb2xBcnJheSk7Ci0gICAgcmV0dXJuIG1fYm9vbEFycmF5Owot
fQotCi1mbG9hdCBXZWJHTEdldEluZm86OmdldEZsb2F0KCkgY29uc3QKLXsKLSAgICBBU1NFUlQo
Z2V0VHlwZSgpID09IGtUeXBlRmxvYXQpOwotICAgIHJldHVybiBtX2Zsb2F0OwotfQotCi1pbnQg
V2ViR0xHZXRJbmZvOjpnZXRJbnQoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0g
a1R5cGVJbnQpOwotICAgIHJldHVybiBtX2ludDsKLX0KLQotY29uc3QgU3RyaW5nJiBXZWJHTEdl
dEluZm86OmdldFN0cmluZygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlw
ZVN0cmluZyk7Ci0gICAgcmV0dXJuIG1fc3RyaW5nOwotfQotCi11bnNpZ25lZCBpbnQgV2ViR0xH
ZXRJbmZvOjpnZXRVbnNpZ25lZEludCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9
PSBrVHlwZVVuc2lnbmVkSW50KTsKLSAgICByZXR1cm4gbV91bnNpZ25lZEludDsKLX0KLQotbG9u
ZyBsb25nIFdlYkdMR2V0SW5mbzo6Z2V0SW50NjQoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRU
eXBlKCkgPT0ga1R5cGVJbnQ2NCk7Ci0gICAgcmV0dXJuIG1faW50NjQ7Ci19Ci0KLVdlYkdMQnVm
ZmVyKiBXZWJHTEdldEluZm86OmdldFdlYkdMQnVmZmVyKCkgY29uc3QKLXsKLSAgICBBU1NFUlQo
Z2V0VHlwZSgpID09IGtUeXBlV2ViR0xCdWZmZXIpOwotICAgIHJldHVybiBtX3dlYmdsQnVmZmVy
LmdldCgpOwotfQotCi1GbG9hdDMyQXJyYXkqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xGbG9hdEFy
cmF5KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xGbG9hdEFy
cmF5KTsKLSAgICByZXR1cm4gbV93ZWJnbEZsb2F0QXJyYXkuZ2V0KCk7Ci19Ci0KLVdlYkdMRnJh
bWVidWZmZXIqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xGcmFtZWJ1ZmZlcigpIGNvbnN0Ci17Ci0g
ICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMRnJhbWVidWZmZXIpOwotICAgIHJldHVy
biBtX3dlYmdsRnJhbWVidWZmZXIuZ2V0KCk7Ci19Ci0KLUludDMyQXJyYXkqIFdlYkdMR2V0SW5m
bzo6Z2V0V2ViR0xJbnRBcnJheSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBr
VHlwZVdlYkdMSW50QXJyYXkpOwotICAgIHJldHVybiBtX3dlYmdsSW50QXJyYXkuZ2V0KCk7Ci19
Ci0KLVdlYkdMUHJvZ3JhbSogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTFByb2dyYW0oKSBjb25zdAot
ewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTFByb2dyYW0pOwotICAgIHJldHVy
biBtX3dlYmdsUHJvZ3JhbS5nZXQoKTsKLX0KLQotV2ViR0xSZW5kZXJidWZmZXIqIFdlYkdMR2V0
SW5mbzo6Z2V0V2ViR0xSZW5kZXJidWZmZXIoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBl
KCkgPT0ga1R5cGVXZWJHTFJlbmRlcmJ1ZmZlcik7Ci0gICAgcmV0dXJuIG1fd2ViZ2xSZW5kZXJi
dWZmZXIuZ2V0KCk7Ci19Ci0KLVdlYkdMVGV4dHVyZSogV2ViR0xHZXRJbmZvOjpnZXRXZWJHTFRl
eHR1cmUoKSBjb25zdAotewotICAgIEFTU0VSVChnZXRUeXBlKCkgPT0ga1R5cGVXZWJHTFRleHR1
cmUpOwotICAgIHJldHVybiBtX3dlYmdsVGV4dHVyZS5nZXQoKTsKLX0KLQotVWludDhBcnJheSog
V2ViR0xHZXRJbmZvOjpnZXRXZWJHTFVuc2lnbmVkQnl0ZUFycmF5KCkgY29uc3QKLXsKLSAgICBB
U1NFUlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xVbnNpZ25lZEJ5dGVBcnJheSk7Ci0gICAgcmV0
dXJuIG1fd2ViZ2xVbnNpZ25lZEJ5dGVBcnJheS5nZXQoKTsKLX0KLQotVWludDMyQXJyYXkqIFdl
YkdMR2V0SW5mbzo6Z2V0V2ViR0xVbnNpZ25lZEludEFycmF5KCkgY29uc3QKLXsKLSAgICBBU1NF
UlQoZ2V0VHlwZSgpID09IGtUeXBlV2ViR0xVbnNpZ25lZEludEFycmF5KTsKLSAgICByZXR1cm4g
bV93ZWJnbFVuc2lnbmVkSW50QXJyYXkuZ2V0KCk7Ci19Ci0KLVdlYkdMVmVydGV4QXJyYXlPYmpl
Y3RPRVMqIFdlYkdMR2V0SW5mbzo6Z2V0V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygpIGNvbnN0
Ci17Ci0gICAgQVNTRVJUKGdldFR5cGUoKSA9PSBrVHlwZVdlYkdMVmVydGV4QXJyYXlPYmplY3RP
RVMpOwotICAgIHJldHVybiBtX3dlYmdsVmVydGV4QXJyYXlPYmplY3RPRVMuZ2V0KCk7Ci19Ci0K
LSNpZiBFTkFCTEUoV0VCR0wyKQotV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCogV2ViR0xHZXRJbmZv
OjpnZXRXZWJHTFZlcnRleEFycmF5T2JqZWN0KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoZ2V0VHlw
ZSgpID09IGtUeXBlV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCk7Ci0gICAgcmV0dXJuIG1fd2ViZ2xW
ZXJ0ZXhBcnJheU9iamVjdC5nZXQoKTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMR2V0SW5mby5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNmY2OTNjNWQ3
NjM2MjIzZWQ1Y2FlM2MzOWZiNjAwM2JhZjc4ZmNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0
SW5mby5oCisrKyAvZGV2L251bGwKQEAgLTEsMTU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiV2Vi
R0xCdWZmZXIuaCIKLSNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCi0jaW5jbHVkZSAiV2Vi
R0xQcm9ncmFtLmgiCi0jaW5jbHVkZSAiV2ViR0xSZW5kZXJidWZmZXIuaCIKLSNpbmNsdWRlICJX
ZWJHTFRleHR1cmUuaCIKLSNpZiBFTkFCTEUoV0VCR0wyKQotI2luY2x1ZGUgIldlYkdMVmVydGV4
QXJyYXlPYmplY3QuaCIKLSNlbmRpZgotI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RP
RVMuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Zsb2F0MzJBcnJheS5oPgotI2luY2x1ZGUgPHJ1bnRp
bWUvSW50MzJBcnJheS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvVWludDMyQXJyYXkuaD4KLSNpbmNs
dWRlIDxydW50aW1lL1VpbnQ4QXJyYXkuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgot
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBBIHRhZ2dlZCB1bmlvbiByZXByZXNlbnRpbmcg
dGhlIHJlc3VsdCBvZiBnZXQgcXVlcmllcyBsaWtlCi0vLyBnZXRQYXJhbWV0ZXIgKGVuY29tcGFz
c2luZyBnZXRCb29sZWFudiwgZ2V0SW50ZWdlcnYsIGdldEZsb2F0dikgYW5kCi0vLyBzaW1pbGFy
IHZhcmlhbnRzLiBGb3IgcmVmZXJlbmNlIGNvdW50ZWQgdHlwZXMsIGluY3JlbWVudHMgYW5kCi0v
LyBkZWNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIHRhcmdldCBvYmplY3QuCi0K
LWNsYXNzIFdlYkdMR2V0SW5mbyBmaW5hbCB7Ci1wdWJsaWM6Ci0gICAgZW51bSBUeXBlIHsKLSAg
ICAgICAga1R5cGVCb29sLAotICAgICAgICBrVHlwZUJvb2xBcnJheSwKLSAgICAgICAga1R5cGVG
bG9hdCwKLSAgICAgICAga1R5cGVJbnQsCi0gICAgICAgIGtUeXBlTnVsbCwKLSAgICAgICAga1R5
cGVTdHJpbmcsCi0gICAgICAgIGtUeXBlVW5zaWduZWRJbnQsCi0gICAgICAgIGtUeXBlSW50NjQs
Ci0gICAgICAgIGtUeXBlV2ViR0xCdWZmZXIsCi0gICAgICAgIGtUeXBlV2ViR0xGbG9hdEFycmF5
LAotICAgICAgICBrVHlwZVdlYkdMRnJhbWVidWZmZXIsCi0gICAgICAgIGtUeXBlV2ViR0xJbnRB
cnJheSwKLSAgICAgICAga1R5cGVXZWJHTE9iamVjdEFycmF5LAotICAgICAgICBrVHlwZVdlYkdM
UHJvZ3JhbSwKLSAgICAgICAga1R5cGVXZWJHTFJlbmRlcmJ1ZmZlciwKLSAgICAgICAga1R5cGVX
ZWJHTFRleHR1cmUsCi0gICAgICAgIGtUeXBlV2ViR0xVbnNpZ25lZEJ5dGVBcnJheSwKLSAgICAg
ICAga1R5cGVXZWJHTFVuc2lnbmVkSW50QXJyYXksCi0gICAgICAgIGtUeXBlV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUywKLSAgICAgICAga1R5cGVXZWJHTFZlcnRleEFycmF5T2JqZWN0LAotICAg
IH07Ci0KLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oYm9vbCB2YWx1ZSk7Ci0gICAgV2ViR0xH
ZXRJbmZvKGNvbnN0IGJvb2wqIHZhbHVlLCBpbnQgc2l6ZSk7Ci0gICAgZXhwbGljaXQgV2ViR0xH
ZXRJbmZvKGZsb2F0IHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8oaW50IHZhbHVl
KTsKLSAgICAvLyBSZXByZXNlbnRzIHRoZSBudWxsIHZhbHVlIGFuZCB0eXBlLgotICAgIFdlYkdM
R2V0SW5mbygpOwotICAgIGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhjb25zdCBTdHJpbmcmIHZhbHVl
KTsKLSAgICBleHBsaWNpdCBXZWJHTEdldEluZm8odW5zaWduZWQgaW50IHZhbHVlKTsKLSAgICBl
eHBsaWNpdCBXZWJHTEdldEluZm8obG9uZyBsb25nIHZhbHVlKTsKLSAgICBleHBsaWNpdCBXZWJH
TEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdl
YkdMR2V0SW5mbyhQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gdmFsdWUpOwotICAgIGV4cGxpY2l0
IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IHZhbHVlKTsKLSAgICBl
eHBsaWNpdCBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxJbnQzMkFycmF5PiB2YWx1ZSk7Ci0gICAg
Ly8gRklYTUU6IGltcGxlbWVudCBXZWJHTE9iamVjdEFycmF5Ci0gICAgLy8gV2ViR0xHZXRJbmZv
KFBhc3NSZWZQdHI8V2ViR0xPYmplY3RBcnJheT4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdlYkdM
R2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUHJvZ3JhbT4gdmFsdWUpOwotICAgIGV4cGxpY2l0IFdl
YkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUmVuZGVyYnVmZmVyPiB2YWx1ZSk7Ci0gICAgZXhw
bGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xUZXh0dXJlPiB2YWx1ZSk7Ci0gICAg
ZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8VWludDhBcnJheT4gdmFsdWUpOwotICAg
IGV4cGxpY2l0IFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiB2YWx1ZSk7Ci0g
ICAgZXhwbGljaXQgV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUz4gdmFsdWUpOwotI2lmIEVOQUJMRShXRUJHTDIpCi0gICAgZXhwbGljaXQgV2ViR0xHZXRJ
bmZvKFBhc3NSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4gdmFsdWUpOwotI2VuZGlmCi0K
LSAgICB+V2ViR0xHZXRJbmZvKCk7Ci0KLSAgICBUeXBlIGdldFR5cGUoKSBjb25zdDsKLQotICAg
IGJvb2wgZ2V0Qm9vbCgpIGNvbnN0OwotICAgIGNvbnN0IFZlY3Rvcjxib29sPiYgZ2V0Qm9vbEFy
cmF5KCkgY29uc3Q7Ci0gICAgZmxvYXQgZ2V0RmxvYXQoKSBjb25zdDsKLSAgICBpbnQgZ2V0SW50
KCkgY29uc3Q7Ci0gICAgY29uc3QgU3RyaW5nJiBnZXRTdHJpbmcoKSBjb25zdDsKLSAgICB1bnNp
Z25lZCBpbnQgZ2V0VW5zaWduZWRJbnQoKSBjb25zdDsKLSAgICBsb25nIGxvbmcgZ2V0SW50NjQo
KSBjb25zdDsKLSAgICBXZWJHTEJ1ZmZlciogZ2V0V2ViR0xCdWZmZXIoKSBjb25zdDsKLSAgICBG
bG9hdDMyQXJyYXkqIGdldFdlYkdMRmxvYXRBcnJheSgpIGNvbnN0OwotICAgIFdlYkdMRnJhbWVi
dWZmZXIqIGdldFdlYkdMRnJhbWVidWZmZXIoKSBjb25zdDsKLSAgICBJbnQzMkFycmF5KiBnZXRX
ZWJHTEludEFycmF5KCkgY29uc3Q7Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudCBXZWJHTE9iamVj
dEFycmF5Ci0gICAgLy8gV2ViR0xPYmplY3RBcnJheSogZ2V0V2ViR0xPYmplY3RBcnJheSgpIGNv
bnN0OwotICAgIFdlYkdMUHJvZ3JhbSogZ2V0V2ViR0xQcm9ncmFtKCkgY29uc3Q7Ci0gICAgV2Vi
R0xSZW5kZXJidWZmZXIqIGdldFdlYkdMUmVuZGVyYnVmZmVyKCkgY29uc3Q7Ci0gICAgV2ViR0xU
ZXh0dXJlKiBnZXRXZWJHTFRleHR1cmUoKSBjb25zdDsKLSAgICBVaW50OEFycmF5KiBnZXRXZWJH
TFVuc2lnbmVkQnl0ZUFycmF5KCkgY29uc3Q7Ci0gICAgVWludDMyQXJyYXkqIGdldFdlYkdMVW5z
aWduZWRJbnRBcnJheSgpIGNvbnN0OwotICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMqIGdl
dFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKSBjb25zdDsKLSNpZiBFTkFCTEUoV0VCR0wyKQot
ICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIGdldFdlYkdMVmVydGV4QXJyYXlPYmplY3QoKSBj
b25zdDsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIFR5cGUgbV90eXBlOwotICAgIGJvb2wgbV9i
b29sOwotICAgIFZlY3Rvcjxib29sPiBtX2Jvb2xBcnJheTsKLSAgICBmbG9hdCBtX2Zsb2F0Owot
ICAgIGludCBtX2ludDsKLSAgICBTdHJpbmcgbV9zdHJpbmc7Ci0gICAgdW5zaWduZWQgaW50IG1f
dW5zaWduZWRJbnQ7Ci0gICAgbG9uZyBsb25nIG1faW50NjQ7Ci0gICAgUmVmUHRyPFdlYkdMQnVm
ZmVyPiBtX3dlYmdsQnVmZmVyOwotICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IG1fd2ViZ2xGbG9h
dEFycmF5OwotICAgIFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiBtX3dlYmdsRnJhbWVidWZmZXI7
Ci0gICAgUmVmUHRyPEludDMyQXJyYXk+IG1fd2ViZ2xJbnRBcnJheTsKLSAgICAvLyBGSVhNRTog
aW1wbGVtZW50IFdlYkdMT2JqZWN0QXJyYXkKLSAgICAvLyBSZWZQdHI8V2ViR0xPYmplY3RBcnJh
eT4gbV93ZWJnbE9iamVjdEFycmF5OwotICAgIFJlZlB0cjxXZWJHTFByb2dyYW0+IG1fd2ViZ2xQ
cm9ncmFtOwotICAgIFJlZlB0cjxXZWJHTFJlbmRlcmJ1ZmZlcj4gbV93ZWJnbFJlbmRlcmJ1ZmZl
cjsKLSAgICBSZWZQdHI8V2ViR0xUZXh0dXJlPiBtX3dlYmdsVGV4dHVyZTsKLSAgICBSZWZQdHI8
VWludDhBcnJheT4gbV93ZWJnbFVuc2lnbmVkQnl0ZUFycmF5OwotICAgIFJlZlB0cjxVaW50MzJB
cnJheT4gbV93ZWJnbFVuc2lnbmVkSW50QXJyYXk7Ci0gICAgUmVmUHRyPFdlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVM+IG1fd2ViZ2xWZXJ0ZXhBcnJheU9iamVjdE9FUzsKLSNpZiBFTkFCTEUoV0VC
R0wyKQotICAgIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBtX3dlYmdsVmVydGV4QXJy
YXlPYmplY3Q7Ci0jZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcAppbmRleCA1ZDkyMDk1ZmZmMTc4NmIy
MjVjMjg1YTk3MDNjNjY5OTYxYjU5NzVlLi40OGY5MzllMGRhOGY0ZTMyYzgyMmQyOTEyMTI0ZmZj
YmU0ZTVhYTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI0LDExICsyNCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJHTE9iamVjdC5oIgogCiAjaWYgRU5BQkxFKFdFQkdMKQogCi0jaW5jbHVkZSAiV2ViR0xPYmpl
Y3QuaCIKLQogI2luY2x1ZGUgIldlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmgiCiAjaW5jbHVk
ZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKICNpbmNsdWRlICJXZWJHTERlYnVnUmVuZGVyZXJJbmZv
LmgiCkBAIC0zOCwyMSArMzcsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1XZWJHTE9i
amVjdDo6V2ViR0xPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpCi0gICAgOiBtX29i
amVjdCgwKQotICAgICwgbV9hdHRhY2htZW50Q291bnQoMCkKLSAgICAsIG1fZGVsZXRlZChmYWxz
ZSkKLXsKLX0KLQotV2ViR0xPYmplY3Q6On5XZWJHTE9iamVjdCgpCi17Ci19Ci0KIHZvaWQgV2Vi
R0xPYmplY3Q6OnNldE9iamVjdChQbGF0Zm9ybTNET2JqZWN0IG9iamVjdCkKIHsKLSAgICAvLyBv
YmplY3Q9PTAgJiYgbV9kZWxldGVkPT1mYWxzZSBpbmRpY2F0aW5nIGFuIHVuaW5pdGlhbGl6ZWQg
c3RhdGU7Ci0gICAgQVNTRVJUKCFtX29iamVjdCAmJiAhbV9kZWxldGVkKTsKKyAgICBBU1NFUlQo
IW1fb2JqZWN0KTsKKyAgICBBU1NFUlQoIW1fZGVsZXRlZCk7CiAgICAgbV9vYmplY3QgPSBvYmpl
Y3Q7CiB9CiAKQEAgLTc5LDggKzY3LDcgQEAgdm9pZCBXZWJHTE9iamVjdDo6ZGVsZXRlT2JqZWN0
KEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M2QpCiB2b2lkIFdlYkdMT2JqZWN0OjpkZXRhY2go
KQogewogICAgIG1fYXR0YWNobWVudENvdW50ID0gMDsgLy8gTWFrZSBzdXJlIE9wZW5HTCByZXNv
dXJjZSBpcyBkZWxldGVkLgotICAgIH0KLQorfQogCiB2b2lkIFdlYkdMT2JqZWN0OjpvbkRldGFj
aGVkKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M2QpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xPYmplY3QuaAppbmRleCA3YjMyM2Q2YzlmN2E3OGFmNGIyZjQzZTY1MDNmOWUw
MTI5ZWNjNzQ3Li42OWRiYjVhYTA3ZWI5Mjk5NWQzY2VlNzExZjRiMjg3YzY2M2U0NWE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsMTcgKzI2LDE1IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCi0jaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBHcmFwaGlj
c0NvbnRleHQzRDsKIGNsYXNzIFdlYkdMQ29udGV4dEdyb3VwOwogY2xhc3MgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTsKIAogY2xhc3MgV2ViR0xPYmplY3QgOiBwdWJsaWMgUmVmQ291bnRlZDxX
ZWJHTE9iamVjdD4gewogcHVibGljOgotICAgIHZpcnR1YWwgfldlYkdMT2JqZWN0KCk7CisgICAg
dmlydHVhbCB+V2ViR0xPYmplY3QoKSB7IH0KIAogICAgIFBsYXRmb3JtM0RPYmplY3Qgb2JqZWN0
KCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3Q7IH0KIApAQCAtNTcsNyArNTUsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIHZhbGlkYXRlKGNvbnN0IFdlYkdMQ29udGV4dEdyb3VwKiwgY29u
c3QgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpIGNvbnN0ID0gMDsKIAogcHJvdGVjdGVkOgot
ICAgIFdlYkdMT2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKKyAgICBXZWJHTE9i
amVjdCgpID0gZGVmYXVsdDsKIAogICAgIC8vIHNldE9iamVjdCBzaG91bGQgYmUgb25seSBjYWxs
ZWQgb25jZSByaWdodCBhZnRlciBjcmVhdGluZyBhIFdlYkdMT2JqZWN0LgogICAgIHZvaWQgc2V0
T2JqZWN0KFBsYXRmb3JtM0RPYmplY3QpOwpAQCAtNzIsOSArNzAsOSBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCBHcmFwaGljc0NvbnRleHQzRCogZ2V0QUdyYXBoaWNzQ29udGV4dDNEKCkgY29u
c3QgPSAwOwogCiBwcml2YXRlOgotICAgIFBsYXRmb3JtM0RPYmplY3QgbV9vYmplY3Q7Ci0gICAg
dW5zaWduZWQgbV9hdHRhY2htZW50Q291bnQ7Ci0gICAgYm9vbCBtX2RlbGV0ZWQ7CisgICAgUGxh
dGZvcm0zRE9iamVjdCBtX29iamVjdCB7IDAgfTsKKyAgICB1bnNpZ25lZCBtX2F0dGFjaG1lbnRD
b3VudCB7IDAgfTsKKyAgICBib29sIG1fZGVsZXRlZCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFByb2dyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFt
LmNwcAppbmRleCA3N2FmZTk0YzQ1ODVhMWJiM2UxNzc2Yzg5MTUzYjg0YmI4NmMxNzAzLi5jMjQz
MzVkYzQ2N2Q3NjdiYWZhODNlYmNmMTE5ZjMyZWEzYTVkMzM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKQEAgLTI0LDEzICsyNCwxMyBAQAogICovCiAK
ICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKIAogI2lmIEVO
QUJMRShXRUJHTCkKIAotI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgotCiAjaW5jbHVkZSAiV2Vi
R0xDb250ZXh0R3JvdXAuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgi
CisjaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00
MSw5ICs0MSw2IEBAIFJlZjxXZWJHTFByb2dyYW0+IFdlYkdMUHJvZ3JhbTo6Y3JlYXRlKFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKIAogV2ViR0xQcm9ncmFtOjpXZWJHTFByb2dyYW0o
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4KQogICAgIDogV2ViR0xTaGFyZWRPYmplY3Qo
Y3R4KQotICAgICwgbV9saW5rU3RhdHVzKGZhbHNlKQotICAgICwgbV9saW5rQ291bnQoMCkKLSAg
ICAsIG1faW5mb1ZhbGlkKHRydWUpCiB7CiAgICAgc2V0T2JqZWN0KGN0eC5ncmFwaGljc0NvbnRl
eHQzRCgpLT5jcmVhdGVQcm9ncmFtKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFByb2dyYW0uaAppbmRleCA3MTdjY2UxMzhjNDI4YzU3Y2RkYjdjNTVjMTQ2ODVmYTQ2MjIz
MmYzLi5lYWI3NmM4OTc1MWNiZTQ5MmI0NmU3NGNmZThkMTk1ODA5ZTEzMWE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSwxNyArMjUsMTYgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJHTFNoYWRlci5oIgogI2luY2x1ZGUgIldlYkdMU2hh
cmVkT2JqZWN0LmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK2NsYXNzIFdlYkdMU2hhZGVyOworCiBjbGFzcyBXZWJHTFByb2dyYW0gZmluYWwgOiBw
dWJsaWMgV2ViR0xTaGFyZWRPYmplY3QgewogcHVibGljOgotICAgIHZpcnR1YWwgfldlYkdMUHJv
Z3JhbSgpOwotCiAgICAgc3RhdGljIFJlZjxXZWJHTFByb2dyYW0+IGNyZWF0ZShXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlJik7CisgICAgdmlydHVhbCB+V2ViR0xQcm9ncmFtKCk7CiAKICAgICB1
bnNpZ25lZCBudW1BY3RpdmVBdHRyaWJMb2NhdGlvbnMoKTsKICAgICBHQzNEaW50IGdldEFjdGl2
ZUF0dHJpYkxvY2F0aW9uKEdDM0R1aW50IGluZGV4KTsKQEAgLTYzLDIzICs2MiwyMCBAQCBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxh
dGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBpc1Byb2dyYW0o
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0KICAgICB2b2lkIGNhY2hlQWN0aXZl
QXR0cmliTG9jYXRpb25zKEdyYXBoaWNzQ29udGV4dDNEKik7CiAgICAgdm9pZCBjYWNoZUluZm9J
Zk5lZWRlZCgpOwogCiAgICAgVmVjdG9yPEdDM0RpbnQ+IG1fYWN0aXZlQXR0cmliTG9jYXRpb25z
OwogCi0gICAgR0MzRGludCBtX2xpbmtTdGF0dXM7CisgICAgR0MzRGludCBtX2xpbmtTdGF0dXMg
eyAwIH07CiAKLSAgICAvLyBUaGlzIGlzIHVzZWQgdG8gdHJhY2sgd2hldGhlciBhIFdlYkdMVW5p
Zm9ybUxvY2F0aW9uIGJlbG9uZ3MgdG8gdGhpcwotICAgIC8vIHByb2dyYW0gb3Igbm90LgotICAg
IHVuc2lnbmVkIG1fbGlua0NvdW50OworICAgIC8vIFRoaXMgaXMgdXNlZCB0byB0cmFjayB3aGV0
aGVyIGEgV2ViR0xVbmlmb3JtTG9jYXRpb24gYmVsb25ncyB0byB0aGlzIHByb2dyYW0gb3Igbm90
LgorICAgIHVuc2lnbmVkIG1fbGlua0NvdW50IHsgMCB9OwogCiAgICAgUmVmUHRyPFdlYkdMU2hh
ZGVyPiBtX3ZlcnRleFNoYWRlcjsKICAgICBSZWZQdHI8V2ViR0xTaGFkZXI+IG1fZnJhZ21lbnRT
aGFkZXI7CiAKLSAgICBib29sIG1faW5mb1ZhbGlkOworICAgIGJvb2wgbV9pbmZvVmFsaWQgeyB0
cnVlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFF1ZXJ5LmgKaW5kZXggNDZkYjU5MmE4NWFmNjJmZTgwZjcxZjM3M2JlNTkxNmJj
YjljMTg1OS4uM2NiNzYxNzc3Nzc1MjAxYmNhMDFhYTYwNmM1YmMxOTU0YTI2ZjI3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSwxNyArMzEsMTIgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFF1ZXJ5IGZpbmFsIDogcHVibGljIFdlYkdMU2hh
cmVkT2JqZWN0IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJHTFF1ZXJ5KCk7Ci0KICAgICBz
dGF0aWMgUmVmPFdlYkdMUXVlcnk+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7
CisgICAgdmlydHVhbCB+V2ViR0xRdWVyeSgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV2ViR0xRdWVy
eShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7Ci0KKyAgICBleHBsaWNpdCBXZWJHTFF1ZXJ5
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKICAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwo
R3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKLQotcHJpdmF0
ZToKLSAgICBib29sIGlzUXVlcnkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCBiMDZkNmM5Yzg2YTMxNmMy
MDE5OTM1Y2U4NDEzNDgwOWUzMzQxNmFmLi43ZGZmYzM1N2ExNzJiNTkxMWFjZjBiMDg1ZjJlZDIx
ODg2MjVhOTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsOSArMjQsOSBAQAogICovCiAKICNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKIAogI2lmIEVOQUJMRShX
RUJHTCkKLSNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKIAogI2luY2x1ZGUgIkFO
R0xFSW5zdGFuY2VkQXJyYXlzLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKQEAgLTcwLDE2
ICs3MCwxNiBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OldlYkdMUmVuZGVyaW5nQ29udGV4dChI
VE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2FudmFzLCBHcgogewogfQogCi1XZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OldlYkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2Vk
Q2FudmFzLCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0LAotICAgIEdyYXBo
aWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzKSA6IFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UocGFzc2VkQ2FudmFzLCBjb250ZXh0LCBhdHRyaWJ1dGVzKQorV2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENh
bnZhcywgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDNE
QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorICAgIDogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShw
YXNzZWRDYW52YXMsIFdURk1vdmUoY29udGV4dCksIGF0dHJpYnV0ZXMpCiB7CiAgICAgaW5pdGlh
bGl6ZVZlcnRleEFycmF5T2JqZWN0cygpOwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6aW5pdGlhbGl6ZVZlcnRleEFycmF5T2JqZWN0cygpCiB7Ci0gICAgbV9kZWZhdWx0VmVydGV4
QXJyYXlPYmplY3QgPSBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpjcmVhdGUoKnRoaXMsIFdl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OlZBT1R5cGVEZWZhdWx0KTsKLSAgICBhZGRDb250ZXh0
T2JqZWN0KG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0LmdldCgpKTsKKyAgICBtX2RlZmF1bHRW
ZXJ0ZXhBcnJheU9iamVjdCA9IFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmNyZWF0ZSgqdGhp
cywgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzo6VHlwZTo6RGVmYXVsdCk7CisgICAgYWRkQ29u
dGV4dE9iamVjdCgqbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QpOwogICAgIG1fYm91bmRWZXJ0
ZXhBcnJheU9iamVjdCA9IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OwogICAgIGlmICghaXNH
TEVTMkNvbXBsaWFudCgpKQogICAgICAgICBpbml0VmVydGV4QXR0cmliMCgpOwpAQCAtOTAsOTkg
KzkwLDkxIEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVu
c2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmco
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgaWYgKGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UobmFtZSwgIkVYVF9ibGVuZF9taW5tYXgiKQotICAgICAgICAmJiBtX2NvbnRleHQt
PmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX2JsZW5kX21pbm1heCIpKSB7CisgICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9ibGVuZF9taW5tYXgiKSkgewog
ICAgICAgICBpZiAoIW1fZXh0QmxlbmRNaW5NYXgpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX0VYVF9ibGVuZF9taW5tYXgiKTsKLSAg
ICAgICAgICAgIG1fZXh0QmxlbmRNaW5NYXggPSBzdGQ6Om1ha2VfdW5pcXVlPEVYVEJsZW5kTWlu
TWF4PigqdGhpcyk7CisgICAgICAgICAgICBtX2V4dEJsZW5kTWluTWF4ID0gZW5hYmxlU3VwcG9y
dGVkRXh0ZW5zaW9uKCJHTF9FWFRfYmxlbmRfbWlubWF4IikKKyAgICAgICAgICAgICAgICA/IHN0
ZDo6bWFrZV91bmlxdWU8RVhUQmxlbmRNaW5NYXg+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuIG1fZXh0QmxlbmRNaW5NYXguZ2V0KCk7CiAgICAgfQotICAgIGlm
IChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfc1JHQiIpCi0gICAgICAgICYmIG1f
Y29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfc1JHQiIpKSB7CisgICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9zUkdCIikpIHsKICAgICAgICAg
aWYgKCFtX2V4dHNSR0IpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LmVuc3VyZUVuYWJsZWQoIkdMX0VYVF9zUkdCIik7Ci0gICAgICAgICAgICBtX2V4dHNSR0IgPSBz
dGQ6Om1ha2VfdW5pcXVlPEVYVHNSR0I+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fZXh0c1JHQiA9
IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfRVhUX3NSR0IiKQorICAgICAgICAgICAgICAg
ID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRzUkdCPigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9
CiAgICAgICAgIHJldHVybiBtX2V4dHNSR0IuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJFWFRfZnJhZ19kZXB0aCIpCi0gICAgICAgICYmIG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfZnJhZ19kZXB0aCIpKSB7Cisg
ICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIkVYVF9mcmFnX2RlcHRoIikpIHsK
ICAgICAgICAgaWYgKCFtX2V4dEZyYWdEZXB0aCkgewotICAgICAgICAgICAgbV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfRVhUX2ZyYWdfZGVwdGgiKTsKLSAgICAg
ICAgICAgIG1fZXh0RnJhZ0RlcHRoID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRGcmFnRGVwdGg+KCp0
aGlzKTsKKyAgICAgICAgICAgIG1fZXh0RnJhZ0RlcHRoID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5z
aW9uKCJHTF9FWFRfZnJhZ19kZXB0aCIpCisgICAgICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5p
cXVlPEVYVEZyYWdEZXB0aD4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gbV9leHRGcmFnRGVwdGguZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5n
QVNDSUlDYXNlKG5hbWUsICJFWFRfc2hhZGVyX3RleHR1cmVfbG9kIikKLSAgICAgICAgJiYgKG1f
Y29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfc2hhZGVyX3RleHR1cmVf
bG9kIikgfHwgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FSQl9zaGFk
ZXJfdGV4dHVyZV9sb2QiKSkpIHsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1l
LCAiRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIpKSB7CiAgICAgICAgIGlmICghbV9leHRTaGFkZXJU
ZXh0dXJlTE9EKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1
cmVFbmFibGVkKCJHTF9FWFRfc2hhZGVyX3RleHR1cmVfbG9kIik7Ci0gICAgICAgICAgICBtX2V4
dFNoYWRlclRleHR1cmVMT0QgPSBzdGQ6Om1ha2VfdW5pcXVlPEVYVFNoYWRlclRleHR1cmVMT0Q+
KCp0aGlzKTsKKyAgICAgICAgICAgIGlmICghKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1
cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfc2hhZGVyX3RleHR1cmVfbG9kIiB9KSB8fCBt
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfQVJC
X3NoYWRlcl90ZXh0dXJlX2xvZCIgfSkpKQorICAgICAgICAgICAgICAgIG1fZXh0U2hhZGVyVGV4
dHVyZUxPRCA9IG51bGxwdHI7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBt
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKEFTQ0lJTGl0ZXJhbCB7ICJH
TF9FWFRfc2hhZGVyX3RleHR1cmVfbG9kIiB9KTsKKyAgICAgICAgICAgICAgICBtX2V4dFNoYWRl
clRleHR1cmVMT0QgPSBzdGQ6Om1ha2VfdW5pcXVlPEVYVFNoYWRlclRleHR1cmVMT0Q+KCp0aGlz
KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9leHRTaGFkZXJU
ZXh0dXJlTE9ELmdldCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
bmFtZSwgIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpIHx8IGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UobmFtZSwgIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKSkK
LSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0VYVF90
ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UobmFtZSwgIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpIHx8IGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9w
aWMiKSkgewogICAgICAgICBpZiAoIW1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKSB7Ci0g
ICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9F
WFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTsKLSAgICAgICAgICAgIG1fZXh0VGV4dHVy
ZUZpbHRlckFuaXNvdHJvcGljID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWM+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJv
cGljID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5p
c290cm9waWMiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxFWFRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWM+KCp0aGlzKSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmdldCgpOwogICAgIH0KLSAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVz
IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09F
U19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNh
c2UobmFtZSwgIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpKSB7CiAgICAgICAgIGlmICghbV9v
ZXNTdGFuZGFyZERlcml2YXRpdmVzKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVu
c2lvbnMoKS5lbnN1cmVFbmFibGVkKCJHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKTsKLSAg
ICAgICAgICAgIG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcyA9IHN0ZDo6bWFrZV91bmlxdWU8T0VT
U3RhbmRhcmREZXJpdmF0aXZlcz4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNTdGFuZGFyZERl
cml2YXRpdmVzID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfc3RhbmRhcmRfZGVy
aXZhdGl2ZXMiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNTdGFuZGFy
ZERlcml2YXRpdmVzPigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVy
biBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4dHVyZV9mbG9hdCIpCi0gICAgICAgICYmIG1f
Y29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIp
KSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2Zs
b2F0IikpIHsKICAgICAgICAgaWYgKCFtX29lc1RleHR1cmVGbG9hdCkgewotICAgICAgICAgICAg
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVf
ZmxvYXQiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0ID0gc3RkOjptYWtlX3VuaXF1
ZTxPRVNUZXh0dXJlRmxvYXQ+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0
ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIpCisgICAg
ICAgICAgICAgICAgPyBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVGbG9hdD4oKnRoaXMpIDog
bnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0dXJlRmxvYXQuZ2V0
KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdGV4
dHVyZV9mbG9hdF9saW5lYXIiKQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpIHsKKyAgICBpZiAoZXF1
YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIikpIHsK
ICAgICAgICAgaWYgKCFtX29lc1RleHR1cmVGbG9hdExpbmVhcikgewotICAgICAgICAgICAgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVfZmxv
YXRfbGluZWFyIik7Ci0gICAgICAgICAgICBtX29lc1RleHR1cmVGbG9hdExpbmVhciA9IHN0ZDo6
bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0TGluZWFyPigqdGhpcyk7CisgICAgICAgICAgICBt
X29lc1RleHR1cmVGbG9hdExpbmVhciA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfT0VT
X3RleHR1cmVfZmxvYXRfbGluZWFyIikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlx
dWU8T0VTVGV4dHVyZUZsb2F0TGluZWFyPigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAg
ICAgICAgIHJldHVybiBtX29lc1RleHR1cmVGbG9hdExpbmVhci5nZXQoKTsKICAgICB9Ci0gICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQi
KQotICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VT
X3RleHR1cmVfaGFsZl9mbG9hdCIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uo
bmFtZSwgIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSkgewogICAgICAgICBpZiAoIW1fb2VzVGV4
dHVyZUhhbGZGbG9hdCkgewotICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCku
ZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpOwotICAgICAgICAgICAg
bV9vZXNUZXh0dXJlSGFsZkZsb2F0ID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZs
b2F0PigqdGhpcyk7CisgICAgICAgICAgICBtX29lc1RleHR1cmVIYWxmRmxvYXQgPSBlbmFibGVT
dXBwb3J0ZWRFeHRlbnNpb24oIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXQiKQorICAgICAgICAg
ICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZsb2F0PigqdGhpcykgOiBu
dWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVIYWxmRmxvYXQu
Z2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNf
dGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpCi0gICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVhciIpKSB7
CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIk9FU190ZXh0dXJlX2hhbGZf
ZmxvYXRfbGluZWFyIikpIHsKICAgICAgICAgaWYgKCFtX29lc1RleHR1cmVIYWxmRmxvYXRMaW5l
YXIpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJs
ZWQoIkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik7Ci0gICAgICAgICAgICBtX29l
c1RleHR1cmVIYWxmRmxvYXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxm
RmxvYXRMaW5lYXI+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdExp
bmVhciA9IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbigiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9h
dF9saW5lYXIiKQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxPRVNUZXh0dXJl
SGFsZkZsb2F0TGluZWFyPigqdGhpcykgOiBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIHJl
dHVybiBtX29lc1RleHR1cmVIYWxmRmxvYXRMaW5lYXIuZ2V0KCk7CiAgICAgfQotICAgIGlmIChl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpCi0g
ICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdmVy
dGV4X2FycmF5X29iamVjdCIpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFt
ZSwgIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IikpIHsKICAgICAgICAgaWYgKCFtX29lc1ZlcnRl
eEFycmF5T2JqZWN0KSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5l
bnN1cmVFbmFibGVkKCJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIpOwotICAgICAgICAgICAg
bV9vZXNWZXJ0ZXhBcnJheU9iamVjdCA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVmVydGV4QXJyYXlP
YmplY3Q+KCp0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVmVydGV4QXJyYXlPYmplY3QgPSBlbmFi
bGVTdXBwb3J0ZWRFeHRlbnNpb24oIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IikKKyAgICAg
ICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTVmVydGV4QXJyYXlPYmplY3Q+KCp0aGlz
KSA6IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fb2VzVmVydGV4QXJyYXlP
YmplY3QuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUs
ICJPRVNfZWxlbWVudF9pbmRleF91aW50IikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU19lbGVtZW50X2luZGV4X3VpbnQiKSkgeworICAgIGlm
IChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJPRVNfZWxlbWVudF9pbmRleF91aW50Iikp
IHsKICAgICAgICAgaWYgKCFtX29lc0VsZW1lbnRJbmRleFVpbnQpIHsKLSAgICAgICAgICAgIG1f
Y29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVuc3VyZUVuYWJsZWQoIkdMX09FU19lbGVtZW50X2lu
ZGV4X3VpbnQiKTsKLSAgICAgICAgICAgIG1fb2VzRWxlbWVudEluZGV4VWludCA9IHN0ZDo6bWFr
ZV91bmlxdWU8T0VTRWxlbWVudEluZGV4VWludD4oKnRoaXMpOworICAgICAgICAgICAgbV9vZXNF
bGVtZW50SW5kZXhVaW50ID0gZW5hYmxlU3VwcG9ydGVkRXh0ZW5zaW9uKCJHTF9PRVNfZWxlbWVu
dF9pbmRleF91aW50IikKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8T0VTRWxl
bWVudEluZGV4VWludD4oKnRoaXMpIDogbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gbV9vZXNFbGVtZW50SW5kZXhVaW50LmdldCgpOwogICAgIH0KQEAgLTE5MSw0MSArMTgzLDUz
IEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihj
b25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgICAgICBtX3dlYmdsTG9zZUNvbnRleHQgPSBzdGQ6
Om1ha2VfdW5pcXVlPFdlYkdMTG9zZUNvbnRleHQ+KCp0aGlzKTsKICAgICAgICAgcmV0dXJuIG1f
d2ViZ2xMb3NlQ29udGV4dC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKChlcXVhbElnbm9yaW5nQVND
SUlDYXNlKG5hbWUsICJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpKQotICAg
ICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQoKnRoaXMpKSB7Ci0g
ICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDKQotICAgICAgICAgICAgbV93
ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNz
ZWRUZXh0dXJlQVRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFt
ZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIikpIHsKKyAgICAgICAgaWYg
KCFtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xDb21w
cmVzc2VkVGV4dHVyZUFUQyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZCgq
dGhpcykKKyAgICAgICAgICAgICAgICA/IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2Vk
VGV4dHVyZUFUQz4oKnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4g
bV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDLmdldCgpOwogICAgIH0KLSAgICBpZiAoKGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVf
cHZydGMiKSkKLSAgICAgICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOjpzdXBwb3J0
ZWQoKnRoaXMpKSB7Ci0gICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMp
Ci0gICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQyA9IHN0ZDo6bWFrZV91
bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDPigqdGhpcyk7CisgICAgaWYgKGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVf
cHZydGMiKSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKSB7
CisgICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQVlJUQyA9IFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKCp0aGlzKQorICAgICAgICAgICAgICAgID8gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM+KCp0aGlzKSA6IG51bGxw
dHI7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBW
UlRDLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAi
V0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKQotICAgICAgICAmJiBXZWJHTENvbXByZXNz
ZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKCp0aGlzKSkgewotICAgICAgICBpZiAoIW1fd2ViZ2xD
b21wcmVzc2VkVGV4dHVyZVMzVEMpCi0gICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1
cmVTM1RDID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQz4oKnRo
aXMpOworICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG5hbWUsICJXRUJHTF9jb21wcmVz
c2VkX3RleHR1cmVfczN0YyIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0
dXJlUzNUQykgeworICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQyA9IFdl
YkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpCisgICAgICAgICAgICAg
ICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDPigqdGhpcykg
OiBudWxscHRyOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3dlYmdsQ29tcHJlc3NlZFRl
eHR1cmVTM1RDLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShu
YW1lLCAiV0VCR0xfZGVwdGhfdGV4dHVyZSIpCi0gICAgICAgICYmIFdlYkdMRGVwdGhUZXh0dXJl
OjpzdXBwb3J0ZWQoKmdyYXBoaWNzQ29udGV4dDNEKCkpKSB7Ci0gICAgICAgIGlmICghbV93ZWJn
bERlcHRoVGV4dHVyZSkKLSAgICAgICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUgPSBzdGQ6Om1h
a2VfdW5pcXVlPFdlYkdMRGVwdGhUZXh0dXJlPigqdGhpcyk7CisgICAgaWYgKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlcHRoX3RleHR1cmUiKSkgeworICAgICAgICBpZiAo
IW1fd2ViZ2xEZXB0aFRleHR1cmUpIHsKKyAgICAgICAgICAgIG1fd2ViZ2xEZXB0aFRleHR1cmUg
PSBXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVkKCptX2NvbnRleHQpCisgICAgICAgICAgICAg
ICAgPyBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVwdGhUZXh0dXJlPigqdGhpcykgOiBudWxscHRy
OworICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX3dlYmdsRGVwdGhUZXh0dXJlLmdldCgpOwog
ICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lLCAiV0VCR0xfZHJhd19i
dWZmZXJzIikgJiYgc3VwcG9ydHNEcmF3QnVmZmVycygpKSB7CisgICAgaWYgKGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RyYXdfYnVmZmVycyIpKSB7CiAgICAgICAgIGlmICgh
bV93ZWJnbERyYXdCdWZmZXJzKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS5lbnN1cmVFbmFibGVkKCJHTF9FWFRfZHJhd19idWZmZXJzIik7Ci0gICAgICAgICAgICBt
X3dlYmdsRHJhd0J1ZmZlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRHJhd0J1ZmZlcnM+KCp0
aGlzKTsKKyAgICAgICAgICAgIGlmICghc3VwcG9ydHNEcmF3QnVmZmVycygpKQorICAgICAgICAg
ICAgICAgIG1fd2ViZ2xEcmF3QnVmZmVycyA9IG51bGxwdHI7CisgICAgICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5lbnN1cmVFbmFibGVk
KEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfZHJhd19idWZmZXJzIiB9KTsKKyAgICAgICAgICAgICAg
ICBtX3dlYmdsRHJhd0J1ZmZlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRHJhd0J1ZmZlcnM+
KCp0aGlzKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJn
bERyYXdCdWZmZXJzLmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShuYW1lLCAiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpICYmIEFOR0xFSW5zdGFuY2VkQXJyYXlz
OjpzdXBwb3J0ZWQoKnRoaXMpKSB7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFt
ZSwgIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSkgewogICAgICAgICBpZiAoIW1fYW5nbGVJbnN0
YW5jZWRBcnJheXMpIHsKLSAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLmVu
c3VyZUVuYWJsZWQoIkdMX0FOR0xFX2luc3RhbmNlZF9hcnJheXMiKTsKLSAgICAgICAgICAgIG1f
YW5nbGVJbnN0YW5jZWRBcnJheXMgPSBzdGQ6Om1ha2VfdW5pcXVlPEFOR0xFSW5zdGFuY2VkQXJy
YXlzPigqdGhpcyk7CisgICAgICAgICAgICBpZiAoIUFOR0xFSW5zdGFuY2VkQXJyYXlzOjpzdXBw
b3J0ZWQoKnRoaXMpKQorICAgICAgICAgICAgICAgIG1fYW5nbGVJbnN0YW5jZWRBcnJheXMgPSBu
dWxscHRyOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCkuZW5zdXJlRW5hYmxlZChBU0NJSUxpdGVyYWwgeyAiR0xfQU5HTEVfaW5z
dGFuY2VkX2FycmF5cyIgfSk7CisgICAgICAgICAgICAgICAgbV9hbmdsZUluc3RhbmNlZEFycmF5
cyA9IHN0ZDo6bWFrZV91bmlxdWU8QU5HTEVJbnN0YW5jZWRBcnJheXM+KCp0aGlzKTsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9hbmdsZUluc3RhbmNlZEFycmF5
cy5nZXQoKTsKICAgICB9CkBAIC0yMzQsMTAgKzIzOCwxMSBAQCBXZWJHTEV4dGVuc2lvbiogV2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAg
ICAgICAgICAgbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJH
TERlYnVnUmVuZGVyZXJJbmZvPigqdGhpcyk7CiAgICAgICAgIHJldHVybiBtX3dlYmdsRGVidWdS
ZW5kZXJlckluZm8uZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KG5hbWUsICJXRUJHTF9kZWJ1Z19zaGFkZXJzIikKLSAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIp
KSB7Ci0gICAgICAgIGlmICghbV93ZWJnbERlYnVnU2hhZGVycykKLSAgICAgICAgICAgIG1fd2Vi
Z2xEZWJ1Z1NoYWRlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVidWdTaGFkZXJzPigqdGhp
cyk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobmFtZSwgIldFQkdMX2RlYnVnX3No
YWRlcnMiKSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1NoYWRlcnMpIHsKKyAgICAgICAg
ICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIiB9
KQorICAgICAgICAgICAgICAgID8gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlYnVnU2hhZGVycz4o
KnRoaXMpIDogbnVsbHB0cjsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVn
U2hhZGVycy5nZXQoKTsKICAgICB9CiAKQEAgLTI1MSwxMDkgKzI1NiwxMDkgQEAgVmVjdG9yPFN0
cmluZz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkKICAg
ICBpZiAobV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKQogICAgICAgICByZXR1cm4gcmVzdWx0
OwogICAgIAotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xf
RVhUX2JsZW5kX21pbm1heCIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJFWFRfYmxlbmRfbWlu
bWF4Iik7Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9F
WFRfc1JHQiIpKQotICAgICAgICByZXN1bHQuYXBwZW5kKCJFWFRfc1JHQiIpOwotICAgIGlmICht
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfRVhUX2ZyYWdfZGVwdGgiKSkK
LSAgICAgICAgcmVzdWx0LmFwcGVuZCgiRVhUX2ZyYWdfZGVwdGgiKTsKLSAgICBpZiAobV9jb250
ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0IikpCi0g
ICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2Zsb2F0Iik7Ci0gICAgaWYgKG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5l
YXIiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIik7
Ci0gICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfdGV4
dHVyZV9oYWxmX2Zsb2F0IikpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU190ZXh0dXJlX2hh
bGZfZmxvYXQiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMo
IkdMX09FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIikpCi0gICAgICAgIHJlc3VsdC5hcHBl
bmQoIk9FU190ZXh0dXJlX2hhbGZfZmxvYXRfbGluZWFyIik7Ci0gICAgaWYgKG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKSkK
LSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIik7Ci0gICAg
aWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9FWFRfc2hhZGVyX3Rl
eHR1cmVfbG9kIikgfHwgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FS
Ql9zaGFkZXJfdGV4dHVyZV9sb2QiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiRVhUX3NoYWRl
cl90ZXh0dXJlX2xvZCIpOwotICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cygiR0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpCi0gICAgICAgIHJlc3Vs
dC5hcHBlbmQoIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpOwotICAgIGlmIChtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmpl
Y3QiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTsK
LSAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX09FU19lbGVt
ZW50X2luZGV4X3VpbnQiKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX2VsZW1lbnRfaW5k
ZXhfdWludCIpOwotICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2xvc2VfY29udGV4dCIpOworICAg
IGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAi
R0xfRVhUX2JsZW5kX21pbm1heCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRl
cmFsIHsgIkVYVF9ibGVuZF9taW5tYXgiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVu
c2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfRVhUX3NSR0IiIH0pKQorICAgICAg
ICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJFWFRfc1JHQiIgfSk7CisgICAgaWYgKG1f
Y29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRf
ZnJhZ19kZXB0aCIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoQVNDSUlMaXRlcmFsIHsgIkVY
VF9mcmFnX2RlcHRoIiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3Vw
cG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2Zsb2F0IiB9KSkKKyAgICAgICAg
cmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfZmxvYXQiIH0pOworICAg
IGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAi
R0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChB
U0NJSUxpdGVyYWwgeyAiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIiB9KTsKKyAgICBpZiAobV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190
ZXh0dXJlX2hhbGZfZmxvYXQiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJh
bCB7ICJPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX09FU190ZXh0dXJlX2hhbGZf
ZmxvYXRfbGluZWFyIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAi
T0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiIH0pOworICAgIGlmIChtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VTX3N0YW5kYXJkX2Rl
cml2YXRpdmVzIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VT
X3N0YW5kYXJkX2Rlcml2YXRpdmVzIiB9KTsKKyAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdMX0VYVF9zaGFkZXJfdGV4dHVyZV9sb2Qi
IH0pIHx8IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7
ICJHTF9BUkJfc2hhZGVyX3RleHR1cmVfbG9kIiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChB
U0NJSUxpdGVyYWwgeyAiRVhUX3NoYWRlcl90ZXh0dXJlX2xvZCIgfSk7CisgICAgaWYgKG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfdGV4
dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJ
TGl0ZXJhbCB7ICJFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiIH0pOworICAgIGlmICht
X2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cyhBU0NJSUxpdGVyYWwgeyAiR0xfT0VT
X3ZlcnRleF9hcnJheV9vYmplY3QiIH0pKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0
ZXJhbCB7ICJPRVNfdmVydGV4X2FycmF5X29iamVjdCIgfSk7CisgICAgaWYgKG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9PRVNfZWxlbWVudF9p
bmRleF91aW50IiB9KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiT0VT
X2VsZW1lbnRfaW5kZXhfdWludCIgfSk7CisgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwg
eyAiV0VCR0xfbG9zZV9jb250ZXh0IiB9KTsKICAgICBpZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQzo6c3VwcG9ydGVkKCp0aGlzKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dF
QkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJ
SUxpdGVyYWwgeyAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiIH0pOwogICAg
IGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OnN1cHBvcnRlZCgqdGhpcykpCi0gICAg
ICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfcHZydGMi
KTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCS0lUX1dFQkdMX2Nv
bXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIgfSk7CiAgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVTM1RDOjpzdXBwb3J0ZWQoKnRoaXMpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9j
b21wcmVzc2VkX3RleHR1cmVfczN0YyIpOwotICAgIGlmIChXZWJHTERlcHRoVGV4dHVyZTo6c3Vw
cG9ydGVkKCpncmFwaGljc0NvbnRleHQzRCgpKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VC
R0xfZGVwdGhfdGV4dHVyZSIpOworICAgIGlmIChXZWJHTERlcHRoVGV4dHVyZTo6c3VwcG9ydGVk
KCptX2NvbnRleHQpKQorICAgICAgICByZXN1bHQuYXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJXRUJH
TF9kZXB0aF90ZXh0dXJlIiB9KTsKICAgICBpZiAoc3VwcG9ydHNEcmF3QnVmZmVycygpKQotICAg
ICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kcmF3X2J1ZmZlcnMiKTsKKyAgICAgICAgcmVzdWx0
LmFwcGVuZChBU0NJSUxpdGVyYWwgeyAiV0VCR0xfZHJhd19idWZmZXJzIiB9KTsKICAgICBpZiAo
QU5HTEVJbnN0YW5jZWRBcnJheXM6OnN1cHBvcnRlZCgqdGhpcykpCi0gICAgICAgIHJlc3VsdC5h
cHBlbmQoIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKTsKLSAgICBpZiAobV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIp
KQotICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19zaGFkZXJzIik7Ci0gICAgcmVz
dWx0LmFwcGVuZCgiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpOworICAgICAgICByZXN1bHQu
YXBwZW5kKEFTQ0lJTGl0ZXJhbCB7ICJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIiB9KTsKKyAgICBp
ZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoQVNDSUlMaXRlcmFsIHsgIkdM
X0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIgfSkpCisgICAgICAgIHJlc3VsdC5hcHBl
bmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RlYnVnX3NoYWRlcnMiIH0pOworICAgIHJlc3VsdC5h
cHBlbmQoQVNDSUlMaXRlcmFsIHsgIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iIH0pOwogCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0YXJn
ZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0Nv
bnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVy
cygiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyIiwgdGFyZ2V0LCBhdHRhY2htZW50
KSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICAKICAgICBpZiAoIW1fZnJhbWVidWZmZXJCaW5kaW5nIHx8ICFtX2ZyYW1lYnVmZmVy
QmluZGluZy0+b2JqZWN0KCkpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCAiZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyIiwgIm5vIGZyYW1lYnVmZmVyIGJvdW5kIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAotICAgIFdlYkdM
U2hhcmVkT2JqZWN0KiBvYmplY3QgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0QXR0YWNobWVu
dE9iamVjdChhdHRhY2htZW50KTsKKyAgICBhdXRvKiBvYmplY3QgPSBtX2ZyYW1lYnVmZmVyQmlu
ZGluZy0+Z2V0QXR0YWNobWVudE9iamVjdChhdHRhY2htZW50KTsKICAgICBpZiAoIW9iamVjdCkg
ewogICAgICAgICBpZiAocG5hbWUgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FU
VEFDSE1FTlRfT0JKRUNUX1RZUEUpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEdy
YXBoaWNzQ29udGV4dDNEOjpOT05FKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUpOwogICAgICAgICAvLyBPcGVuR0wgRVMg
Mi4wIHNwZWNpZmllcyBJTlZBTElEX0VOVU0gaW4gdGhpcyBjYXNlLCB3aGlsZSBkZXNrdG9wIEdM
CiAgICAgICAgIC8vIHNwZWNpZmllcyBJTlZBTElEX09QRVJBVElPTi4KICAgICAgICAgc3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldEZyYW1lYnVm
ZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogICAgIAotICAgIEFTU0VSVChvYmplY3QtPmlzVGV4dHVyZSgpIHx8IG9iamVjdC0+aXNSZW5k
ZXJidWZmZXIoKSk7CiAgICAgaWYgKG9iamVjdC0+aXNUZXh0dXJlKCkpIHsKICAgICAgICAgc3dp
dGNoIChwbmFtZSkgewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZF
Ul9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
byhHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRSk7CisgICAgICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFKTsKICAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRToK
LSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFRleHR1cmU+
KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR0xUZXh0dXJlKj4ob2JqZWN0KSkpOworICAgICAgICAgICAg
cmV0dXJuIG1ha2VSZWZQdHIocmVpbnRlcnByZXRfY2FzdDxXZWJHTFRleHR1cmUmPigqb2JqZWN0
KSk7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfVEVYVFVSRV9MRVZFTDoKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVC
VUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NVQkVfTUFQX0ZBQ0U6CiAgICAgICAgIGNhc2UgRXh0
ZW5zaW9uczNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HX0VYVDogewog
ICAgICAgICAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAgICAgICAgICAgICBtX2NvbnRleHQtPmdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2KHRhcmdldCwgYXR0YWNobWVudCwgcG5h
bWUsICZ2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAg
ICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5V
TSwgImdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRl
ciBuYW1lIGZvciB0ZXh0dXJlIGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CiAgICAg
fSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG9iamVjdC0+aXNSZW5kZXJidWZmZXIoKSk7CiAgICAg
ICAgIHN3aXRjaCAocG5hbWUpIHsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRToKLSAgICAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUik7CisgICAgICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZG
RVIpOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX09CSkVDVF9OQU1FOgotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVm
UHRyPFdlYkdMUmVuZGVyYnVmZmVyPihyZWludGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVy
Kj4ob2JqZWN0KSkpOworICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIocmVpbnRlcnByZXRf
Y2FzdDxXZWJHTFJlbmRlcmJ1ZmZlciY+KCpvYmplY3QpKTsKICAgICAgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkdfRVhUOiB7CiAgICAg
ICAgICAgICBpZiAoIW1fZXh0c1JHQikgewogICAgICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVy
cm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFj
aG1lbnRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBmb3IgcmVuZGVyYnVmZmVy
IGF0dGFjaG1lbnQiKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBXZWJHTFJlbmRlcmJ1ZmZlciogcmVuZGVyQnVmZmVyID0gcmVpbnRlcnByZXRfY2FzdDxXZWJH
TFJlbmRlcmJ1ZmZlcio+KG9iamVjdCk7CiAgICAgICAgICAgICBHQzNEZW51bSByZW5kZXJCdWZm
ZXJGb3JtYXQgPSByZW5kZXJCdWZmZXItPmdldEludGVybmFsRm9ybWF0KCk7CiAgICAgICAgICAg
ICBBU1NFUlQocmVuZGVyQnVmZmVyRm9ybWF0ICE9IEV4dGVuc2lvbnMzRDo6U1JHQl9FWFQgJiYg
cmVuZGVyQnVmZmVyRm9ybWF0ICE9IEV4dGVuc2lvbnMzRDo6U1JHQl9BTFBIQV9FWFQpOwogICAg
ICAgICAgICAgaWYgKHJlbmRlckJ1ZmZlckZvcm1hdCA9PSBFeHRlbnNpb25zM0Q6OlNSR0I4X0FM
UEhBOF9FWFQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhFeHRlbnNpb25z
M0Q6OlNSR0JfRVhUKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oR3JhcGhpY3ND
b250ZXh0M0Q6OkxJTkVBUik7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihFeHRlbnNpb25zM0Q6OlNSR0JfRVhUKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUik7CiAgICAgICAgIH0K
ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNz
Q29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0
ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSBmb3IgcmVuZGVyYnVmZmVyIGF0dGFjaG1lbnQi
KTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMzY0LDIxICszNjksMjIgQEAgYm9v
bCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlRnJhbWVidWZmZXJGdW5jUGFyYW1ldGVy
cyhjb25zdCBjaGFyKiBmdW5jdGkKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfRU5VTSwgZnVuY3Rpb25OYW1lLCAiaW52YWxpZCB0YXJnZXQiKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKyAgICAvLyBGSVhNRTogV2h5IGRvZXMgdGhp
cyByZXR1cm4gdHJ1ZSB1bmNvbmRpdGlvbmFsbHkgZm9yIENPTE9SX0FUVEFDSE1FTlQwLAorICAg
IC8vIGJ1dCBmYWxzZSBmb3Igb3RoZXIgQ09MT1JfQVRUQUNITUVOVCB2YWx1ZXMgaWYgbV93ZWJn
bERyYXdCdWZmZXJzIGlzIGZhbHNlPwogICAgIHN3aXRjaCAoYXR0YWNobWVudCkgewogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FUVEFDSE1FTlQwOgogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRFUFRIX0FUVEFDSE1FTlQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6U1RFTkNJTF9BVFRBQ0hNRU5UOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRI
X1NURU5DSUxfQVRUQUNITUVOVDoKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiB0cnVl
OwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGlmIChtX3dlYmdsRHJhd0J1ZmZlcnMKLSAgICAgICAg
ICAgICYmIGF0dGFjaG1lbnQgPiBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDAK
KyAgICAgICAgICAgICYmIGF0dGFjaG1lbnQgPj0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0FU
VEFDSE1FTlQwCiAgICAgICAgICAgICAmJiBhdHRhY2htZW50IDwgc3RhdGljX2Nhc3Q8R0MzRGVu
dW0+KEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9BVFRBQ0hNRU5UMCArIGdldE1heENvbG9yQXR0
YWNobWVudHMoKSkpCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIGF0dGFjaG1lbnQiKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKIH0KICAgICAKIHZvaWQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpyZW5kZXJidWZmZXJTdG9yYWdlKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVu
dW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkKQEAg
LTQ1NSw3ICs0NjEsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Y2xlYXIoR0MzRGJp
dGZpZWxkIG1hc2spCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY29uc3QgY2hhciogcmVh
c29uID0gImZyYW1lYnVmZmVyIGluY29tcGxldGUiOwotICAgIGlmIChtX2ZyYW1lYnVmZmVyQmlu
ZGluZyAmJiAhbV9mcmFtZWJ1ZmZlckJpbmRpbmctPm9uQWNjZXNzKGdyYXBoaWNzQ29udGV4dDNE
KCksICZyZWFzb24pKSB7CisgICAgaWYgKG1fZnJhbWVidWZmZXJCaW5kaW5nICYmICFtX2ZyYW1l
YnVmZmVyQmluZGluZy0+b25BY2Nlc3MobV9jb250ZXh0LmdldCgpLCAmcmVhc29uKSkgewogICAg
ICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9GUkFNRUJV
RkZFUl9PUEVSQVRJT04sICJjbGVhciIsIHJlYXNvbik7CiAgICAgICAgIHJldHVybjsKICAgICB9
CkBAIC00NjQsMTEgKzQ3MCwxMSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Y2xlYXIo
R0MzRGJpdGZpZWxkIG1hc2spCiAgICAgbWFya0NvbnRleHRDaGFuZ2VkKCk7CiB9CiAKLVdlYkdM
R2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFt
ZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVt
IHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCi0gICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oKTsKLSAgICBjb25zdCBpbnQgaW50WmVybyA9IDA7CisgICAgICAg
IHJldHVybiBudWxscHRyOworCiAgICAgc3dpdGNoIChwbmFtZSkgewogICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFDVElWRV9URVhUVVJFOgogICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJ
bnRQYXJhbWV0ZXIocG5hbWUpOwpAQCAtNDc5LDcgKzQ4NSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpBTFBIQV9CSVRTOgogICAgICAgICByZXR1cm4gZ2V0SW50UGFy
YW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9CVUZGRVJf
QklORElORzoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMQnVm
ZmVyPihtX2JvdW5kQXJyYXlCdWZmZXIpKTsKKyAgICAgICAgcmV0dXJuIG1fYm91bmRBcnJheUJ1
ZmZlcjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORDoKICAgICAgICAgcmV0dXJu
IGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkJMRU5EX0NPTE9SOgpAQCAtNTAzLDE2ICs1MDksMTYgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkNPTE9SX1dSSVRFTUFTSzoKICAgICAgICAgcmV0dXJuIGdldEJvb2xl
YW5BcnJheVBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09N
UFJFU1NFRF9URVhUVVJFX0ZPUk1BVFM6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFz
c1JlZlB0cjxVaW50MzJBcnJheT4oVWludDMyQXJyYXk6OmNyZWF0ZShtX2NvbXByZXNzZWRUZXh0
dXJlRm9ybWF0cy5kYXRhKCksIG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLnNpemUoKSkpKTsK
KyAgICAgICAgcmV0dXJuIFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21wcmVzc2VkVGV4dHVyZUZv
cm1hdHMuZGF0YSgpLCBtX2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5zaXplKCkpOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNVTExfRkFDRToKICAgICAgICAgcmV0dXJuIGdldEJvb2xl
YW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNVTExfRkFD
RV9NT0RFOgogICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNVUlJFTlRfUFJPR1JBTToKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMUHJvZ3JhbT4obV9jdXJyZW50UHJvZ3Jh
bSkpOworICAgICAgICByZXR1cm4gbV9jdXJyZW50UHJvZ3JhbTsKICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpERVBUSF9CSVRTOgogICAgICAgICBpZiAoIW1fZnJhbWVidWZmZXJCaW5kaW5n
ICYmICFtX2F0dHJpYnV0ZXMuZGVwdGgpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KGludFplcm8pOworICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIHJldHVybiBnZXRJbnRQ
YXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NMRUFS
X1ZBTFVFOgogICAgICAgICByZXR1cm4gZ2V0RmxvYXRQYXJhbWV0ZXIocG5hbWUpOwpAQCAtNTI3
LDkgKzUzMyw5IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFt
ZXRlcihHQzNEZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpESVRIRVI6
CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuUGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpFTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HOgotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+KG1fYm91bmRWZXJ0ZXhB
cnJheU9iamVjdC0+Z2V0RWxlbWVudEFycmF5QnVmZmVyKCkpKTsKKyAgICAgICAgcmV0dXJuIG1h
a2VSZWZQdHIobV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRFbGVtZW50QXJyYXlCdWZmZXIo
KSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVJfQklORElORzoKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+KG1f
ZnJhbWVidWZmZXJCaW5kaW5nKSk7CisgICAgICAgIHJldHVybiBtX2ZyYW1lYnVmZmVyQmluZGlu
ZzsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGUk9OVF9GQUNFOgogICAgICAgICByZXR1
cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkdFTkVSQVRFX01JUE1BUF9ISU5UOgpAQCAtNTc3LDkgKzU4Myw5IEBAIFdlYkdMR2V0
SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRURfQklUUzoKICAgICAgICAgcmV0dXJuIGdl
dEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVS
QlVGRkVSX0JJTkRJTkc6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxX
ZWJHTFJlbmRlcmJ1ZmZlcj4obV9yZW5kZXJidWZmZXJCaW5kaW5nKSk7CisgICAgICAgIHJldHVy
biBtX3JlbmRlcmJ1ZmZlckJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVO
REVSRVI6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oU3RyaW5nKCJXZWJLaXQgV2ViR0wi
KSk7CisgICAgICAgIHJldHVybiBTdHJpbmcgeyBBU0NJSUxpdGVyYWwgeyAiV2ViS2l0IFdlYkdM
IiB9IH07CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0FNUExFX0JVRkZFUlM6CiAgICAg
ICAgIHJldHVybiBnZXRJbnRQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQ6CkBAIC01OTMsNyArNTk5LDcgQEAgV2ViR0xH
ZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1l
KQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNDSVNTT1JfVEVTVDoKICAgICAgICAgcmV0
dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlNIQURJTkdfTEFOR1VBR0VfVkVSU0lPTjoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5m
bygiV2ViR0wgR0xTTCBFUyAxLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0Nv
bnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OKSArICIpIik7CisgICAgICAgIHJldHVy
biAiV2ViR0wgR0xTTCBFUyAxLjAgKCIgKyBtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0Nv
bnRleHQzRDo6U0hBRElOR19MQU5HVUFHRV9WRVJTSU9OKSArICIpIjsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpTVEVOQ0lMX0JBQ0tfRkFJTDoKICAgICAgICAgcmV0dXJuIGdldFVuc2ln
bmVkSW50UGFyYW1ldGVyKHBuYW1lKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVO
Q0lMX0JBQ0tfRlVOQzoKQEAgLTYxMCw3ICs2MTYsNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgICAgIHJldHVy
biBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6U1RFTkNJTF9CSVRTOgogICAgICAgICBpZiAoIW1fZnJhbWVidWZmZXJCaW5kaW5nICYm
ICFtX2F0dHJpYnV0ZXMuc3RlbmNpbCkKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
aW50WmVybyk7CisgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgcmV0dXJuIGdldEludFBh
cmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9DTEVB
Ul9WQUxVRToKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CkBAIC02MzMs
NjEgKzYzOSw2MSBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJh
bWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1VCUElY
RUxfQklUUzoKICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9CSU5ESU5HXzJEOgotICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8V2ViR0xUZXh0dXJlPihtX3RleHR1cmVVbml0c1ttX2Fj
dGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlMkRCaW5kaW5nKSk7CisgICAgICAgIHJldHVybiBtX3Rl
eHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlMkRCaW5kaW5nOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfQklORElOR19DVUJFX01BUDoKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhQYXNzUmVmUHRyPFdlYkdMVGV4dHVyZT4obV90ZXh0dXJlVW5p
dHNbbV9hY3RpdmVUZXh0dXJlVW5pdF0udGV4dHVyZUN1YmVNYXBCaW5kaW5nKSk7CisgICAgICAg
IHJldHVybiBtX3RleHR1cmVVbml0c1ttX2FjdGl2ZVRleHR1cmVVbml0XS50ZXh0dXJlQ3ViZU1h
cEJpbmRpbmc7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX0FMSUdOTUVOVDoK
ICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VU5QQUNLX0ZMSVBfWV9XRUJHTDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhtX3VucGFja0ZsaXBZKTsKKyAgICAgICAgcmV0dXJuIG1fdW5wYWNrRmxpcFk7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMOgot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7Cisg
ICAgICAgIHJldHVybiBtX3VucGFja1ByZW11bHRpcGx5QWxwaGE7CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTDoKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhtX3VucGFja0NvbG9yc3BhY2VDb252ZXJzaW9uKTsKKyAgICAg
ICAgcmV0dXJuIG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb247CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VkVORE9SOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFN0cmluZygi
V2ViS2l0IikpOworICAgICAgICByZXR1cm4gU3RyaW5nIHsgQVNDSUlMaXRlcmFsIHsgIldlYktp
dCIgfSB9OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlNJT046Ci0gICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oIldlYkdMIDEuMCAoIiArIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdy
YXBoaWNzQ29udGV4dDNEOjpWRVJTSU9OKSArICIpIik7CisgICAgICAgIHJldHVybiAiV2ViR0wg
MS4wICgiICsgbV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlNJT04p
ICsgIikiOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZJRVdQT1JUOgogICAgICAgICBy
ZXR1cm4gZ2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkZSQUdNRU5UX1NIQURFUl9ERVJJVkFUSVZFX0hJTlRfT0VTOiAvLyBPRVNfc3RhbmRh
cmRfZGVyaXZhdGl2ZXMKICAgICAgICAgaWYgKG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcykKICAg
ICAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihFeHRlbnNpb25zM0Q6OkZS
QUdNRU5UX1NIQURFUl9ERVJJVkFUSVZFX0hJTlRfT0VTKTsKICAgICAgICAgc3ludGhlc2l6ZUdM
RXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJp
bnZhbGlkIHBhcmFtZXRlciBuYW1lLCBPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMgbm90IGVuYWJs
ZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJlckluZm86OlVOTUFTS0VEX1JFTkRFUkVS
X1dFQkdMOgogICAgICAgICBpZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQotICAgICAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRl
eHQzRDo6UkVOREVSRVIpKTsKKyAgICAgICAgICAgIHJldHVybiBtX2NvbnRleHQtPmdldFN0cmlu
ZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpOwogICAgICAgICBzeW50aGVzaXplR0xFcnJv
cihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFs
aWQgcGFyYW1ldGVyIG5hbWUsIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8gbm90IGVuYWJsZWQi
KTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJlckluZm86OlVOTUFTS0VEX1ZFTkRPUl9XRUJH
TDoKICAgICAgICAgaWYgKG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbykKLSAgICAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8obV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6
OlZFTkRPUikpOworICAgICAgICAgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBo
aWNzQ29udGV4dDNEOjpWRU5ET1IpOwogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGlj
c0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1l
dGVyIG5hbWUsIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8gbm90IGVuYWJsZWQiKTsKLSAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBj
YXNlIEV4dGVuc2lvbnMzRDo6VkVSVEVYX0FSUkFZX0JJTkRJTkdfT0VTOiAvLyBPRVNfdmVydGV4
X2FycmF5X29iamVjdAogICAgICAgICBpZiAobV9vZXNWZXJ0ZXhBcnJheU9iamVjdCkgewotICAg
ICAgICAgICAgaWYgKCFtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgp
KQotICAgICAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTPihzdGF0aWNfY2FzdDxXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
Kj4obV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LmdldCgpKSkpOwotICAgICAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygpOworICAgICAgICAgICAgaWYgKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVj
dC0+aXNEZWZhdWx0T2JqZWN0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgICAgICAgICByZXR1cm4gbWFrZVJlZlB0cihzdGF0aWNfY2FzdDxXZWJHTFZlcnRleEFycmF5
T2JqZWN0T0VTJj4oKm1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCkpOwogICAgICAgICB9CiAgICAg
ICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJn
ZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgT0VTX3ZlcnRleF9hcnJheV9v
YmplY3Qgbm90IGVuYWJsZWQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVf
TUFYX0FOSVNPVFJPUFlfRVhUOiAvLyBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMKICAg
ICAgICAgaWYgKG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKQogICAgICAgICAgICAgcmV0
dXJuIGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEV4dGVuc2lvbnMzRDo6TUFYX1RFWFRVUkVfTUFY
X0FOSVNPVFJPUFlfRVhUKTsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBu
YW1lLCBFWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMgbm90IGVuYWJsZWQiKTsKLSAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBj
YXNlIEV4dGVuc2lvbnMzRDo6TUFYX0NPTE9SX0FUVEFDSE1FTlRTX0VYVDogLy8gRVhUX2RyYXdf
YnVmZmVycyBCRUdJTgogICAgICAgICBpZiAobV93ZWJnbERyYXdCdWZmZXJzKQotICAgICAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhnZXRNYXhDb2xvckF0dGFjaG1lbnRzKCkpOworICAgICAg
ICAgICAgcmV0dXJuIGdldE1heENvbG9yQXR0YWNobWVudHMoKTsKICAgICAgICAgc3ludGhlc2l6
ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSwgImdldFBhcmFtZXRlciIs
ICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lLCBXRUJHTF9kcmF3X2J1ZmZlcnMgbm90IGVuYWJsZWQi
KTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6TUFYX0RSQVdfQlVGRkVSU19FWFQ6CiAgICAgICAg
IGlmIChtX3dlYmdsRHJhd0J1ZmZlcnMpCi0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZv
KGdldE1heERyYXdCdWZmZXJzKCkpOworICAgICAgICAgICAgcmV0dXJuIGdldE1heERyYXdCdWZm
ZXJzKCk7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX0VOVU0sICJnZXRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSwgV0VCR0xf
ZHJhd19idWZmZXJzIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgZGVmYXVsdDoKICAgICAgICAgaWYgKG1f
d2ViZ2xEcmF3QnVmZmVycwogICAgICAgICAgICAgJiYgcG5hbWUgPj0gRXh0ZW5zaW9uczNEOjpE
UkFXX0JVRkZFUjBfRVhUCkBAIC02OTcsMTAgKzcwMywxMCBAQCBXZWJHTEdldEluZm8gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiAgICAgICAgICAg
ICAgICAgdmFsdWUgPSBtX2ZyYW1lYnVmZmVyQmluZGluZy0+Z2V0RHJhd0J1ZmZlcihwbmFtZSk7
CiAgICAgICAgICAgICBlbHNlIC8vIGVtdWxhdGVkIGJhY2tidWZmZXIKICAgICAgICAgICAgICAg
ICB2YWx1ZSA9IG1fYmFja0RyYXdCdWZmZXI7Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgfQogICAgICAg
ICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0
UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKaW5k
ZXggMTg3NGZlNWE1YzM4MzExOThmNDNiOTRjMjA5NmI5ZWViZTQzZTQ3MC4uMGM2MWRkNjU0MTA3
MTQxZmVjZmU3YzRiNzkwZTRhMTlmM2ViYzAzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsMTYgKzMyLDE2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dCBmaW5hbCA6IHB1Ymxp
YyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlIHsKIHB1YmxpYzoKICAgICBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQmLCBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMp
OwotICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYsIFBhc3NSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+LCBHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMpOworICAg
IFdlYkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCYsIFJlZjxHcmFwaGljc0Nv
bnRleHQzRD4mJiwgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzKTsKIAogcHJpdmF0ZToKICAg
ICBib29sIGlzV2ViR0wxKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgV2Vi
R0xFeHRlbnNpb24qIGdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmKSBmaW5hbDsKLSAgICBXZWJH
TEdldEluZm8gZ2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKSBmaW5hbDsKKyAgICBXZWJHTEFu
eSBnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpIGZpbmFsOwogICAgIFZlY3RvcjxTdHJpbmc+
IGdldFN1cHBvcnRlZEV4dGVuc2lvbnMoKSBmaW5hbDsKIAotICAgIFdlYkdMR2V0SW5mbyBnZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBh
dHRhY2htZW50LCBHQzNEZW51bSBwbmFtZSkgZmluYWw7CisgICAgV2ViR0xBbnkgZ2V0RnJhbWVi
dWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNo
bWVudCwgR0MzRGVudW0gcG5hbWUpIGZpbmFsOwogICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFn
ZShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lk
dGgsIEdDM0RzaXplaSBoZWlnaHQpIGZpbmFsOwogICAgIGJvb2wgdmFsaWRhdGVGcmFtZWJ1ZmZl
ckZ1bmNQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBhdHRhY2htZW50KSBmaW5hbDsKICAgICB2b2lkIGhpbnQoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEZW51bSBtb2RlKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggNjQ5ODM0Zjg1
YjljMWNkMTIwYTE2ZjJjOWE1OWJkZjUyNDljODhmZS4uOTg0NWIzZWY1ODNmOTk5ODE2Y2FlN2Yw
NGZlNGY2NzZlOWFlMjVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCw5ICsyNCw5IEBACiAg
Ki8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuaCIKIAogI2lmIEVOQUJMRShXRUJHTCkKLSNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmgiCiAKICNpbmNsdWRlICJBTkdMRUluc3RhbmNlZEFycmF5cy5oIgogI2luY2x1
ZGUgIkNhY2hlZEltYWdlLmgiCkBAIC00MjMsMTcgKzQyMywxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3Jl
YXRlKEhUTQogICAgICAgICByZXR1cm4gcmVuZGVyaW5nQ29udGV4dDsKICAgICB9CiAKLSAgICBI
b3N0V2luZG93KiBob3N0V2luZG93ID0gZG9jdW1lbnQudmlldygpLT5yb290KCktPmhvc3RXaW5k
b3coKTsKLSAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQoR3JhcGhpY3NDb250
ZXh0M0Q6OmNyZWF0ZShhdHRyaWJ1dGVzLCBob3N0V2luZG93KSk7Ci0KKyAgICBhdXRvIGNvbnRl
eHQgPSBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKGF0dHJpYnV0ZXMsIGRvY3VtZW50LnZpZXco
KS0+cm9vdCgpLT5ob3N0V2luZG93KCkpOwogICAgIGlmICghY29udGV4dCB8fCAhY29udGV4dC0+
bWFrZUNvbnRleHRDdXJyZW50KCkpIHsKICAgICAgICAgY2FudmFzLmRpc3BhdGNoRXZlbnQoV2Vi
R0xDb250ZXh0RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2ViZ2xjb250ZXh0Y3JlYXRpb25l
cnJvckV2ZW50LCBmYWxzZSwgdHJ1ZSwgIkNvdWxkIG5vdCBjcmVhdGUgYSBXZWJHTCBjb250ZXh0
LiIpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgRXh0ZW5zaW9uczNE
JiBleHRlbnNpb25zID0gY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpOwotICAgIGlmIChleHRlbnNp
b25zLnN1cHBvcnRzKCJHTF9FWFRfZGVidWdfbWFya2VyIikpCi0gICAgICAgIGV4dGVuc2lvbnMu
cHVzaEdyb3VwTWFya2VyRVhUKCJXZWJHTFJlbmRlcmluZ0NvbnRleHQiKTsKKyAgICBhdXRvJiBl
eHRlbnNpb25zID0gY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpOworICAgIGlmIChleHRlbnNpb25z
LnN1cHBvcnRzKEFTQ0lJTGl0ZXJhbCB7ICJHTF9FWFRfZGVidWdfbWFya2VyIiB9KSkKKyAgICAg
ICAgZXh0ZW5zaW9ucy5wdXNoR3JvdXBNYXJrZXJFWFQoQVNDSUlMaXRlcmFsIHsgIldlYkdMUmVu
ZGVyaW5nQ29udGV4dCIgfSk7CiAKICNpZiBFTkFCTEUoV0VCR0wyKSAmJiBQTEFURk9STShNQUMp
CiAgICAgLy8gZ2xUZXhTdG9yYWdlKCkgd2FzIG9ubHkgYWRkZWQgdG8gQ29yZSBpbiBPcGVuR0wg
NC4yLgpAQCAtNDQyLDEzICs0NDAsMTMgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZShIVE0KICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlPiByZW5kZXJpbmdDb250ZXh0ID0gbnVsbHB0cjsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4gcmVuZGVyaW5nQ29udGV4dDsK
ICNpZiBFTkFCTEUoV0VCR0wyKQogICAgIGlmICh0eXBlID09ICJ3ZWJnbDIiKQotICAgICAgICBy
ZW5kZXJpbmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTDJSZW5kZXJpbmdDb250ZXh0
PihjYW52YXMsIFdURk1vdmUoY29udGV4dCksIGF0dHJpYnV0ZXMpOworICAgICAgICByZW5kZXJp
bmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PihjYW52
YXMsIGNvbnRleHQucmVsZWFzZU5vbk51bGwoKSwgYXR0cmlidXRlcyk7CiAgICAgZWxzZQogI2Vu
ZGlmCi0gICAgICAgIHJlbmRlcmluZ0NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMUmVu
ZGVyaW5nQ29udGV4dD4oY2FudmFzLCBXVEZNb3ZlKGNvbnRleHQpLCBhdHRyaWJ1dGVzKTsKKyAg
ICAgICAgcmVuZGVyaW5nQ29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xSZW5kZXJpbmdD
b250ZXh0PihjYW52YXMsIGNvbnRleHQucmVsZWFzZU5vbk51bGwoKSwgYXR0cmlidXRlcyk7CiAg
ICAgcmVuZGVyaW5nQ29udGV4dC0+c3VzcGVuZElmTmVlZGVkKCk7CiAKICAgICByZXR1cm4gcmVu
ZGVyaW5nQ29udGV4dDsKQEAgLTQ1Nyw0NCArNDU1LDI5IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUo
SFRNCiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
KEhUTUxDYW52YXNFbGVtZW50JiBwYXNzZWRDYW52YXMsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMg
YXR0cmlidXRlcykKICAgICA6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQocGFzc2VkQ2FudmFzKQog
ICAgICwgQWN0aXZlRE9NT2JqZWN0KCZwYXNzZWRDYW52YXMuZG9jdW1lbnQoKSkKLSAgICAsIG1f
Y29udGV4dChudWxscHRyKQogICAgICwgbV9kaXNwYXRjaENvbnRleHRMb3N0RXZlbnRUaW1lcigq
dGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dExvc3RFdmVu
dCkKLSAgICAsIG1fcmVzdG9yZUFsbG93ZWQoZmFsc2UpCiAgICAgLCBtX3Jlc3RvcmVUaW1lcigq
dGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQpCi0g
ICAgLCBtX2dlbmVyYXRlZEltYWdlQ2FjaGUoMCkKLSAgICAsIG1fY29udGV4dExvc3QoZmFsc2Up
Ci0gICAgLCBtX2NvbnRleHRMb3N0TW9kZShTeW50aGV0aWNMb3N0Q29udGV4dCkKICAgICAsIG1f
YXR0cmlidXRlcyhhdHRyaWJ1dGVzKQotICAgICwgbV9zeW50aGVzaXplZEVycm9yc1RvQ29uc29s
ZSh0cnVlKQogICAgICwgbV9udW1HTEVycm9yc1RvQ29uc29sZUFsbG93ZWQobWF4R0xFcnJvcnNB
bGxvd2VkVG9Db25zb2xlKQogICAgICwgbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKHRydWUp
Ci0gICAgLCBtX2hhc1JlcXVlc3RlZFBvbGljeVJlc29sdXRpb24oZmFsc2UpCiB7CiB9CiAKLVdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENh
bnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNv
bnRleHQsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKK1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQm
IHBhc3NlZENhbnZhcywgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQsIFdlYkdMQ29u
dGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICA6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQo
cGFzc2VkQ2FudmFzKQogICAgICwgQWN0aXZlRE9NT2JqZWN0KCZwYXNzZWRDYW52YXMuZG9jdW1l
bnQoKSkKICAgICAsIG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQogICAgICwgbV9kaXNwYXRj
aENvbnRleHRMb3N0RXZlbnRUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmRpc3BhdGNoQ29udGV4dExvc3RFdmVudCkKLSAgICAsIG1fcmVzdG9yZUFsbG93ZWQoZmFsc2Up
CiAgICAgLCBtX3Jlc3RvcmVUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
Om1heWJlUmVzdG9yZUNvbnRleHQpCiAgICAgLCBtX2dlbmVyYXRlZEltYWdlQ2FjaGUoNCkKLSAg
ICAsIG1fY29udGV4dExvc3QoZmFsc2UpCi0gICAgLCBtX2NvbnRleHRMb3N0TW9kZShTeW50aGV0
aWNMb3N0Q29udGV4dCkKICAgICAsIG1fYXR0cmlidXRlcyhhdHRyaWJ1dGVzKQotICAgICwgbV9z
eW50aGVzaXplZEVycm9yc1RvQ29uc29sZSh0cnVlKQogICAgICwgbV9udW1HTEVycm9yc1RvQ29u
c29sZUFsbG93ZWQobWF4R0xFcnJvcnNBbGxvd2VkVG9Db25zb2xlKQotICAgICwgbV9pc1BlbmRp
bmdQb2xpY3lSZXNvbHV0aW9uKGZhbHNlKQotICAgICwgbV9oYXNSZXF1ZXN0ZWRQb2xpY3lSZXNv
bHV0aW9uKGZhbHNlKQogewotICAgIEFTU0VSVChtX2NvbnRleHQpOwogICAgIG1fY29udGV4dEdy
b3VwID0gV2ViR0xDb250ZXh0R3JvdXA6OmNyZWF0ZSgpOwotICAgIG1fY29udGV4dEdyb3VwLT5h
ZGRDb250ZXh0KHRoaXMpOworICAgIG1fY29udGV4dEdyb3VwLT5hZGRDb250ZXh0KCp0aGlzKTsK
ICAgICAKICAgICBtX2NvbnRleHQtPnNldFdlYkdMQ29udGV4dCh0aGlzKTsKIAotICAgIG1fbWF4
Vmlld3BvcnREaW1zWzBdID0gbV9tYXhWaWV3cG9ydERpbXNbMV0gPSAwOwogICAgIG1fY29udGV4
dC0+Z2V0SW50ZWdlcnYoR3JhcGhpY3NDb250ZXh0M0Q6Ok1BWF9WSUVXUE9SVF9ESU1TLCBtX21h
eFZpZXdwb3J0RGltcyk7CiAKICAgICBzZXR1cEZsYWdzKCk7CkBAIC02MjIsNyArNjA1LDcgQEAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6fldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoKQog
ICAgIGlmICghbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKSB7CiAgICAgICAgIGRldGFjaEFu
ZFJlbW92ZUFsbE9iamVjdHMoKTsKICAgICAgICAgZGVzdHJveUdyYXBoaWNzQ29udGV4dDNEKCk7
Ci0gICAgICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVDb250ZXh0KHRoaXMpOworICAgICAgICBt
X2NvbnRleHRHcm91cC0+cmVtb3ZlQ29udGV4dCgqdGhpcyk7CiAgICAgfQogfQogCkBAIC05MTYs
NyArODk5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpiaW5kQnVmZmVyKEdD
M0RlbnVtIHRhcmdldCwgV2ViR0xCdWZmZXIqIGJ1ZmZlcikKICAgICBpZiAoIWNoZWNrT2JqZWN0
VG9CZUJvdW5kKCJiaW5kQnVmZmVyIiwgYnVmZmVyLCBkZWxldGVkKSkKICAgICAgICAgcmV0dXJu
OwogICAgIGlmIChkZWxldGVkKQotICAgICAgICBidWZmZXIgPSAwOworICAgICAgICBidWZmZXIg
PSBudWxscHRyOwogICAgIGlmIChidWZmZXIgJiYgYnVmZmVyLT5nZXRUYXJnZXQoKSAmJiBidWZm
ZXItPmdldFRhcmdldCgpICE9IHRhcmdldCkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJiaW5kQnVmZmVyIiwgImJ1ZmZl
cnMgY2FuIG5vdCBiZSB1c2VkIHdpdGggbXVsdGlwbGUgdGFyZ2V0cyIpOwogICAgICAgICByZXR1
cm47CkBAIC0xMzk4LDcgKzEzODEsNyBAQCBSZWZQdHI8V2ViR0xCdWZmZXI+IFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmNyZWF0ZUJ1ZmZlcigpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBl
bmRpbmcoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBidWZmZXIgPSBXZWJH
TEJ1ZmZlcjo6Y3JlYXRlKCp0aGlzKTsKLSAgICBhZGRTaGFyZWRPYmplY3QoYnVmZmVyLnB0cigp
KTsKKyAgICBhZGRTaGFyZWRPYmplY3QoYnVmZmVyLmdldCgpKTsKICAgICByZXR1cm4gV1RGTW92
ZShidWZmZXIpOwogfQogCkBAIC0xNDA3LDcgKzEzOTAsNyBAQCBSZWZQdHI8V2ViR0xGcmFtZWJ1
ZmZlcj4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlRnJhbWVidWZmZXIoKQogICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIGF1dG8gYnVmZmVyID0gV2ViR0xGcmFtZWJ1ZmZlcjo6Y3JlYXRlKCp0aGlzKTsKLSAgICBh
ZGRDb250ZXh0T2JqZWN0KGJ1ZmZlci5wdHIoKSk7CisgICAgYWRkQ29udGV4dE9iamVjdChidWZm
ZXIuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKGJ1ZmZlcik7CiB9CiAKQEAgLTE0MTYsNyAr
MTM5OSw3IEBAIFJlZlB0cjxXZWJHTFRleHR1cmU+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmNyZWF0ZVRleHR1cmUoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gdGV4dHVyZSA9IFdlYkdMVGV4dHVyZTo6Y3Jl
YXRlKCp0aGlzKTsKLSAgICBhZGRTaGFyZWRPYmplY3QodGV4dHVyZS5wdHIoKSk7CisgICAgYWRk
U2hhcmVkT2JqZWN0KHRleHR1cmUuZ2V0KCkpOwogICAgIHJldHVybiBXVEZNb3ZlKHRleHR1cmUp
OwogfQogCkBAIC0xNDI1LDcgKzE0MDgsNyBAQCBSZWZQdHI8V2ViR0xQcm9ncmFtPiBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVQcm9ncmFtKCkKICAgICBpZiAoaXNDb250ZXh0TG9z
dE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIHByb2dyYW0g
PSBXZWJHTFByb2dyYW06OmNyZWF0ZSgqdGhpcyk7Ci0gICAgYWRkU2hhcmVkT2JqZWN0KHByb2dy
YW0ucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdChwcm9ncmFtLmdldCgpKTsKICAgICByZXR1
cm4gV1RGTW92ZShwcm9ncmFtKTsKIH0KIApAQCAtMTQzNCw3ICsxNDE3LDcgQEAgUmVmUHRyPFdl
YkdMUmVuZGVyYnVmZmVyPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGVSZW5kZXJi
dWZmZXIoKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIGF1dG8gYnVmZmVyID0gV2ViR0xSZW5kZXJidWZmZXI6OmNyZWF0ZSgq
dGhpcyk7Ci0gICAgYWRkU2hhcmVkT2JqZWN0KGJ1ZmZlci5wdHIoKSk7CisgICAgYWRkU2hhcmVk
T2JqZWN0KGJ1ZmZlci5nZXQoKSk7CiAgICAgcmV0dXJuIFdURk1vdmUoYnVmZmVyKTsKIH0KIApA
QCAtMTQ0OCw3ICsxNDMxLDcgQEAgUmVmUHRyPFdlYkdMU2hhZGVyPiBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpjcmVhdGVTaGFkZXIoR0MzRGVudW0gdHlwZSkKICAgICB9CiAKICAgICBhdXRv
IHNoYWRlciA9IFdlYkdMU2hhZGVyOjpjcmVhdGUoKnRoaXMsIHR5cGUpOwotICAgIGFkZFNoYXJl
ZE9iamVjdChzaGFkZXIucHRyKCkpOworICAgIGFkZFNoYXJlZE9iamVjdChzaGFkZXIuZ2V0KCkp
OwogICAgIHJldHVybiBXVEZNb3ZlKHNoYWRlcik7CiB9CiAKQEAgLTE0ODEsNyArMTQ2NCw3IEBA
IHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlQnVmZmVyKFdlYkdMQnVmZmVy
KiBidWZmZXIpCiAgICAgaWYgKG1fYm91bmRBcnJheUJ1ZmZlciA9PSBidWZmZXIpCiAgICAgICAg
IG1fYm91bmRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CiAKLSAgICBtX2JvdW5kVmVydGV4QXJyYXlP
YmplY3QtPnVuYmluZEJ1ZmZlcihidWZmZXIpOworICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVj
dC0+dW5iaW5kQnVmZmVyKCpidWZmZXIpOwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmRlbGV0ZUZyYW1lYnVmZmVyKFdlYkdMRnJhbWVidWZmZXIqIGZyYW1lYnVmZmVyKQpA
QCAtMjE4NywxMCArMjE3MCwxMCBAQCBHQzNEaW50IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmdldEF0dHJpYkxvY2F0aW9uKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29ucwogICAgIHJldHVy
biBtX2NvbnRleHQtPmdldEF0dHJpYkxvY2F0aW9uKG9iamVjdE9yWmVybyhwcm9ncmFtKSwgbmFt
ZSk7CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCdWZm
ZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSkKK1dlYkdMQW55IFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldEJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJn
ZXQsIEdDM0RlbnVtIHBuYW1lKQogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkp
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBib29sIHZhbGlkID0gZmFsc2U7CiAgICAgaWYgKHRhcmdldCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6QVJSQVlfQlVGRkVSIHx8IHRhcmdldCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RUxF
TUVOVF9BUlJBWV9CVUZGRVIpCkBAIC0yMjEwLDE5ICsyMTkzLDE5IEBAIFdlYkdMR2V0SW5mbyBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRCdWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFy
Z2V0LCBHQzNECiAjZW5kaWYKICAgICBpZiAoIXZhbGlkKSB7CiAgICAgICAgIHN5bnRoZXNpemVH
TEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRCdWZmZXJQYXJhbWV0
ZXIiLCAiaW52YWxpZCB0YXJnZXQiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAocG5hbWUgIT0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkJVRkZFUl9TSVpFICYmIHBuYW1lICE9IEdyYXBoaWNzQ29udGV4dDNEOjpC
VUZGRVJfVVNBR0UpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfRU5VTSwgImdldEJ1ZmZlclBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRl
ciBuYW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgfQogCiAgICAgR0MzRGludCB2YWx1ZSA9IDA7CiAgICAgbV9jb250ZXh0
LT5nZXRCdWZmZXJQYXJhbWV0ZXJpdih0YXJnZXQsIHBuYW1lLCAmdmFsdWUpOwogICAgIGlmIChw
bmFtZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6QlVGRkVSX1NJWkUpCi0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8odmFsdWUpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8
dW5zaWduZWQgaW50Pih2YWx1ZSkpOworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZSk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8V2ViR0xD
b250ZXh0QXR0cmlidXRlcz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Q29udGV4dEF0
dHJpYnV0ZXMoKQpAQCAtMjI0OSwzMCArMjIzMiwzMCBAQCBHQzNEZW51bSBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRFcnJvcigpCiAgICAgcmV0dXJuIG1fY29udGV4dC0+Z2V0RXJyb3Io
KTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dy
YW1QYXJhbWV0ZXIoV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSkKK1dlYkdM
QW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1QYXJhbWV0ZXIoV2ViR0xQ
cm9ncmFtKiBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9z
dE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJnZXRQcm9ncmFtUGFyYW1ldGVy
IiwgcHJvZ3JhbSkpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBzd2l0Y2ggKHBuYW1l
KSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVMRVRFX1NUQVRVUzoKLSAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhwcm9ncmFtLT5pc0RlbGV0ZWQoKSk7CisgICAgICAgIHJldHVy
biBwcm9ncmFtLT5pc0RlbGV0ZWQoKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWQUxJ
REFURV9TVEFUVVM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0UHJvZ3JhbWl2KG9iamVjdE9yWmVy
byhwcm9ncmFtKSwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
c3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJv
b2w+KHZhbHVlKTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5LX1NUQVRVUzoKLSAg
ICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhwcm9ncmFtLT5nZXRMaW5rU3RhdHVzKCkpOworICAg
ICAgICByZXR1cm4gcHJvZ3JhbS0+Z2V0TGlua1N0YXR1cygpOwogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkFUVEFDSEVEX1NIQURFUlM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0UHJvZ3Jh
bWl2KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgcG5hbWUsICZ2YWx1ZSk7Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6QUNUSVZFX0FUVFJJQlVURVM6CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6QUNUSVZFX1VOSUZPUk1TOgogICAgICAgICBtX2NvbnRleHQtPmdldE5vbkJ1aWx0
SW5BY3RpdmVTeW1ib2xDb3VudChvYmplY3RPclplcm8ocHJvZ3JhbSksIHBuYW1lLCAmdmFsdWUp
OwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHZh
bHVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dDNEOjpJTlZBTElEX0VOVU0sICJnZXRQcm9ncmFtUGFyYW1ldGVyIiwgImludmFsaWQgcGFy
YW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTIyODMsMTcgKzIyNjYsMTcgQEAgU3RyaW5n
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFByb2dyYW1JbmZvTG9nKFdlYkdMUHJvZ3Jh
bSogcHJvZ3JhbSkKICAgICByZXR1cm4gZW5zdXJlTm90TnVsbChtX2NvbnRleHQtPmdldFByb2dy
YW1JbmZvTG9nKG9iamVjdE9yWmVybyhwcm9ncmFtKSkpOwogfQogCi1XZWJHTEdldEluZm8gV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKEdDM0RlbnVt
IHRhcmdldCwgR0MzRGVudW0gcG5hbWUpCitXZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBw
bmFtZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQotICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlmICh0YXJn
ZXQgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUikgewogICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UmVuZGVyYnVm
ZmVyUGFyYW1ldGVyIiwgImludmFsaWQgdGFyZ2V0Iik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIGlmICghbV9yZW5k
ZXJidWZmZXJCaW5kaW5nIHx8ICFtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPm9iamVjdCgpKSB7CiAg
ICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJB
VElPTiwgImdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlciIsICJubyByZW5kZXJidWZmZXIgYm91bmQi
KTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAKICAgICBpZiAobV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZv
cm1hdCgpID09IEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMCkBAIC0yMzIwLDEyICsy
MzAzLDEyIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5k
ZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0CiAgICAgICAgICAgICB2YWx1ZSA9IDg7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVO
REVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVDoKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8obV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgpKTsKKyAgICAgICAg
ICAgIHJldHVybiBtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdldEludGVybmFsRm9ybWF0KCk7CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIiwgImludmFs
aWQgcGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBX
ZWJHTEdldEluZm8odmFsdWUpOworICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgfQogCiAgICAg
R0MzRGludCB2YWx1ZSA9IDA7CkBAIC0yMzM5LDMyICsyMzIyLDMyIEBAIFdlYkdMR2V0SW5mbyBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoR0MzRGVu
dW0gdGFyZ2V0CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSX0RFUFRI
X1NJWkU6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSX1NURU5DSUxf
U0laRToKICAgICAgICAgbV9jb250ZXh0LT5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXJpdih0YXJn
ZXQsIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsK
KyAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRF
UkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQ6Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9y
ZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgpKTsKKyAgICAgICAgcmV0dXJu
IG1fcmVuZGVyYnVmZmVyQmluZGluZy0+Z2V0SW50ZXJuYWxGb3JtYXQoKTsKICAgICBkZWZhdWx0
OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNLCAiZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUi
KTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpn
ZXRTaGFkZXJQYXJhbWV0ZXIoV2ViR0xTaGFkZXIqIHNoYWRlciwgR0MzRGVudW0gcG5hbWUpCitX
ZWJHTEFueSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRTaGFkZXJQYXJhbWV0ZXIoV2Vi
R0xTaGFkZXIqIHNoYWRlciwgR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29udGV4dExv
c3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0U2hhZGVyUGFyYW1ldGVy
Iiwgc2hhZGVyKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICBHQzNEaW50IHZhbHVlID0gMDsKICAgICBzd2l0Y2ggKHBuYW1lKSB7
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVMRVRFX1NUQVRVUzoKLSAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyhzaGFkZXItPmlzRGVsZXRlZCgpKTsKKyAgICAgICAgcmV0dXJuIHNo
YWRlci0+aXNEZWxldGVkKCk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUElMRV9T
VEFUVVM6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0U2hhZGVyaXYob2JqZWN0T3JaZXJvKHNoYWRl
ciksIHBuYW1lLCAmdmFsdWUpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19j
YXN0PGJvb2w+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29sPih2YWx1
ZSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0hBREVSX1RZUEU6CiAgICAgICAgIG1f
Y29udGV4dC0+Z2V0U2hhZGVyaXYob2JqZWN0T3JaZXJvKHNoYWRlciksIHBuYW1lLCAmdmFsdWUp
OwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4o
dmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZSk7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfRU5VTSwgImdldFNoYWRlclBhcmFtZXRlciIsICJpbnZhbGlkIHBhcmFtZXRlciBu
YW1lIik7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogfQogCkBAIC0yNDEzLDEzICsyMzk2LDEzIEBAIFN0cmluZyBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpnZXRTaGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIqIHNoYWRlcikK
ICAgICByZXR1cm4gZW5zdXJlTm90TnVsbChzaGFkZXItPmdldFNvdXJjZSgpKTsKIH0KIAotV2Vi
R0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFRleFBhcmFtZXRlcihHQzNE
ZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6Z2V0VGV4UGFyYW1ldGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUp
CiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKLSAgICAgICAgcmV0dXJuIFdl
YkdMR2V0SW5mbygpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBXZWJHTFRleHR1cmUq
IHRleCA9IHZhbGlkYXRlVGV4dHVyZUJpbmRpbmcoImdldFRleFBhcmFtZXRlciIsIHRhcmdldCwg
ZmFsc2UpOwogICAgIGlmICghdGV4KQotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIEdDM0RpbnQgdmFsdWUgPSAwOwogICAgIHN3aXRj
aCAocG5hbWUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01BR19GSUxU
RVI6CkBAIC0yNDI3LDI3ICsyNDEwLDI3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRUZXhQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1M6CiAgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6VEVYVFVSRV9XUkFQX1Q6CiAgICAgICAgIG1fY29udGV4dC0+Z2V0VGV4UGFy
YW1ldGVyaXYodGFyZ2V0LCBwbmFtZSwgJnZhbHVlKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4odmFsdWUpOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpURVhU
VVJFX01BWF9BTklTT1RST1BZX0VYVDogLy8gRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGlj
CiAgICAgICAgIGlmIChtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykgewogICAgICAgICAg
ICAgbV9jb250ZXh0LT5nZXRUZXhQYXJhbWV0ZXJpdih0YXJnZXQsIHBuYW1lLCAmdmFsdWUpOwot
ICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+
KHZhbHVlKSk7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhbHVl
KTsKICAgICAgICAgfQogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQz
RDo6SU5WQUxJRF9FTlVNLCAiZ2V0VGV4UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5h
bWUsIEVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyBub3QgZW5hYmxlZCIpOwotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX0VOVU0sICJnZXRUZXhQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwot
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVu
aWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiog
dW5pZm9ybUxvY2F0aW9uKQorV2ViR0xBbnkgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9u
KiB1bmlmb3JtTG9jYXRpb24pCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8
fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZ2V0VW5pZm9ybSIsIHByb2dyYW0pKQotICAgICAgICBy
ZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlmICgh
dW5pZm9ybUxvY2F0aW9uIHx8IHVuaWZvcm1Mb2NhdGlvbi0+cHJvZ3JhbSgpICE9IHByb2dyYW0p
IHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
T1BFUkFUSU9OLCAiZ2V0VW5pZm9ybSIsICJubyB1bmlmb3JtbG9jYXRpb24gb3Igbm90IHZhbGlk
IGZvciB0aGlzIHByb2dyYW0iKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgR0MzRGludCBsb2NhdGlvbiA9IHVuaWZv
cm1Mb2NhdGlvbi0+bG9jYXRpb24oKTsKIApAQCAtMjUyMiw3ICsyNTA1LDcgQEAgV2ViR0xHZXRJ
bmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBw
cm9ncmFtLCBjb25zdAogICAgIGRlZmF1bHQ6CiAgICAgICAgIC8vIENhbid0IGhhbmRsZSB0aGlz
IHR5cGUKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfVkFMVUUsICJnZXRVbmlmb3JtIiwgInVuaGFuZGxlZCB0eXBlIik7Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIHN3
aXRjaCAoYmFzZVR5cGUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDogewpA
QCAtMjUzMiw4ICsyNTE1LDggQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdAogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1mdihvYmplY3RPclplcm8ocHJvZ3Jh
bSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGggPT0gMSkKLSAgICAgICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWVbMF0pOwotICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PihGbG9hdDMyQXJyYXk6OmNyZWF0ZSh2YWx1
ZSwgbGVuZ3RoKSkpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlWzBdOworICAgICAgICByZXR1
cm4gRmxvYXQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCk7CiAgICAgfQogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OklOVDogewogICAgICAgICBHQzNEaW50IHZhbHVlWzRdID0gezB9
OwpAQCAtMjU0Miw4ICsyNTI1LDggQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdAogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1pdihvYmplY3RPclplcm8ocHJv
Z3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGggPT0gMSkKLSAgICAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWVbMF0pOwotICAgICAgICByZXR1cm4gV2Vi
R0xHZXRJbmZvKFBhc3NSZWZQdHI8SW50MzJBcnJheT4oSW50MzJBcnJheTo6Y3JlYXRlKHZhbHVl
LCBsZW5ndGgpKSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVbMF07CisgICAgICAgIHJldHVy
biBJbnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCk7CiAgICAgfQogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkJPT0w6IHsKICAgICAgICAgR0MzRGludCB2YWx1ZVs0XSA9IHswfTsK
QEAgLTI1NTIsMTIgKzI1MzUsMTIgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFVuaWZvcm0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBjb25zdAogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVuaWZvcm1pdihvYmplY3RPclplcm8ocHJv
Z3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAgIGlmIChsZW5ndGggPiAxKSB7Ci0gICAg
ICAgICAgICBib29sIGJvb2xWYWx1ZVsxNl0gPSB7MH07CisgICAgICAgICAgICBWZWN0b3I8Ym9v
bD4gdmVjdG9yKGxlbmd0aCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwg
bGVuZ3RoOyBqKyspCi0gICAgICAgICAgICAgICAgYm9vbFZhbHVlW2pdID0gc3RhdGljX2Nhc3Q8
Ym9vbD4odmFsdWVbal0pOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhib29sVmFs
dWUsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgdmVjdG9yW2pdID0gdmFsdWVbal07CisgICAg
ICAgICAgICByZXR1cm4gV1RGTW92ZSh2ZWN0b3IpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVy
biBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8Ym9vbD4odmFsdWVbMF0pKTsKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGJvb2w+KHZhbHVlWzBdKTsKICAgICB9CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTI1NjUsNyArMjU0OCw3IEBAIFdlYkdMR2V0SW5m
byBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSogcHJv
Z3JhbSwgY29uc3QKIAogICAgIC8vIElmIHdlIGdldCBoZXJlLCBzb21ldGhpbmcgd2VudCB3cm9u
ZyBpbiBvdXIgdW5mb3J0dW5hdGVseSBjb21wbGV4IGxvZ2ljIGFib3ZlCiAgICAgc3ludGhlc2l6
ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUsICJnZXRVbmlmb3JtIiwg
InVua25vd24gZXJyb3IiKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKIFJlZlB0cjxXZWJHTFVuaWZvcm1Mb2NhdGlvbj4gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybUxvY2F0aW9uKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwg
Y29uc3QgU3RyaW5nJiBuYW1lKQpAQCAtMjYwNiw0MyArMjU4OSw0MyBAQCBSZWZQdHI8V2ViR0xV
bmlmb3JtTG9jYXRpb24+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFVuaWZvcm1Mb2Nh
dGlvbihXZWJHTAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1XZWJHTEdldEluZm8gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VmVydGV4QXR0cmliKEdDM0R1aW50IGluZGV4LCBHQzNE
ZW51bSBwbmFtZSkKK1dlYkdMQW55IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRl
eEF0dHJpYihHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUpCiB7CiAgICAgaWYgKGlzQ29u
dGV4dExvc3RPclBlbmRpbmcoKSkKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmIChpbmRleCA+PSBtX21heFZlcnRleEF0dHJp
YnMpIHsKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfVkFMVUUsICJnZXRWZXJ0ZXhBdHRyaWIiLCAiaW5kZXggb3V0IG9mIHJhbmdlIik7Ci0gICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogCiAgICAgY29uc3QgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OlZlcnRleEF0dHJpYlN0
YXRlJiBzdGF0ZSA9IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0VmVydGV4QXR0cmliU3Rh
dGUoaW5kZXgpOwogCiAgICAgaWYgKChpc1dlYkdMMigpIHx8IG1fYW5nbGVJbnN0YW5jZWRBcnJh
eXMpICYmIHBuYW1lID09IEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX0RJ
VklTT1JfQU5HTEUpCi0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGUuZGl2aXNvcik7
CisgICAgICAgIHJldHVybiBzdGF0ZS5kaXZpc29yOwogCiAgICAgc3dpdGNoIChwbmFtZSkgewog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJ
TkRJTkc6CiAgICAgICAgIGlmICgoIWlzR0xFUzJDb21wbGlhbnQoKSAmJiAhaW5kZXggJiYgbV9i
b3VuZFZlcnRleEFycmF5T2JqZWN0LT5nZXRWZXJ0ZXhBdHRyaWJTdGF0ZSgwKS5idWZmZXJCaW5k
aW5nID09IG1fdmVydGV4QXR0cmliMEJ1ZmZlcikKICAgICAgICAgICAgIHx8ICFzdGF0ZS5idWZm
ZXJCaW5kaW5nCiAgICAgICAgICAgICB8fCAhc3RhdGUuYnVmZmVyQmluZGluZy0+b2JqZWN0KCkp
Ci0gICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7Ci0gICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4oc3RhdGUuYnVmZmVyQmluZGluZykpOwor
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBzdGF0ZS5idWZmZXJC
aW5kaW5nOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlf
RU5BQkxFRDoKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhzdGF0ZS5lbmFibGVkKTsKKyAg
ICAgICAgcmV0dXJuIHN0YXRlLmVuYWJsZWQ7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
VkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKHN0YXRlLm5vcm1hbGl6ZWQpOworICAgICAgICByZXR1cm4gc3RhdGUubm9ybWFsaXplZDsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX1NJWkU6Ci0g
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGUuc2l6ZSk7CisgICAgICAgIHJldHVybiBz
dGF0ZS5zaXplOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJS
QVlfU1RSSURFOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRlLm9yaWdpbmFsU3Ry
aWRlKTsKKyAgICAgICAgcmV0dXJuIHN0YXRlLm9yaWdpbmFsU3RyaWRlOwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRToKLSAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbyhzdGF0ZS50eXBlKTsKKyAgICAgICAgcmV0dXJuIHN0YXRlLnR5cGU7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VSUkVOVF9WRVJURVhfQVRUUklCOgotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PihGbG9hdDMyQXJy
YXk6OmNyZWF0ZShtX3ZlcnRleEF0dHJpYlZhbHVlW2luZGV4XS52YWx1ZSwgNCkpKTsKKyAgICAg
ICAgcmV0dXJuIEZsb2F0MzJBcnJheTo6Y3JlYXRlKG1fdmVydGV4QXR0cmliVmFsdWVbaW5kZXhd
LnZhbHVlLCA0KTsKICAgICBkZWZhdWx0OgogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCAiZ2V0VmVydGV4QXR0cmliIiwgImludmFsaWQg
cGFyYW1ldGVyIG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTI2NTAsOCArMjYzMyw3IEBAIGxvbmcg
bG9uZyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0Mz
RHVpbnQgaW5kZXgsIEdDM0RlCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkK
ICAgICAgICAgcmV0dXJuIDA7Ci0gICAgR0MzRHNpemVpcHRyIHJlc3VsdCA9IG1fY29udGV4dC0+
Z2V0VmVydGV4QXR0cmliT2Zmc2V0KGluZGV4LCBwbmFtZSk7Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PGxvbmcgbG9uZz4ocmVzdWx0KTsKKyAgICByZXR1cm4gbV9jb250ZXh0LT5nZXRWZXJ0ZXhB
dHRyaWJPZmZzZXQoaW5kZXgsIHBuYW1lKTsKIH0KIAogR0MzRGJvb2xlYW4gV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6aXNCdWZmZXIoV2ViR0xCdWZmZXIqIGJ1ZmZlcikKQEAgLTMxMTMsOCAr
MzA5NSw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVhZFBpeGVscyhHQzNE
aW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoCiAjdW5kZWYgUEFDS0VEX0lOVEVSTkFM
X0ZPUk1BVF9DSEVDSwogCiAgICAgLy8gQ2FsY3VsYXRlIGFycmF5IHNpemUsIHRha2luZyBpbnRv
IGNvbnNpZGVyYXRpb24gb2YgUEFDS19BTElHTk1FTlQuCi0gICAgdW5zaWduZWQgaW50IHRvdGFs
Qnl0ZXNSZXF1aXJlZCA9IDA7Ci0gICAgdW5zaWduZWQgaW50IHBhZGRpbmcgPSAwOworICAgIHVu
c2lnbmVkIHRvdGFsQnl0ZXNSZXF1aXJlZCA9IDA7CisgICAgdW5zaWduZWQgcGFkZGluZyA9IDA7
CiAgICAgaWYgKCFtX2lzUm9idXN0bmVzc0VYVFN1cHBvcnRlZCkgewogICAgICAgICBHQzNEZW51
bSBlcnJvciA9IG1fY29udGV4dC0+Y29tcHV0ZUltYWdlU2l6ZUluQnl0ZXMoZm9ybWF0LCB0eXBl
LCB3aWR0aCwgaGVpZ2h0LCBtX3BhY2tBbGlnbm1lbnQsICZ0b3RhbEJ5dGVzUmVxdWlyZWQsICZw
YWRkaW5nKTsKICAgICAgICAgaWYgKGVycm9yICE9IEdyYXBoaWNzQ29udGV4dDNEOjpOT19FUlJP
UikgewpAQCAtNDU5MCw3ICs0NTcyLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Ojp2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50IHNpemUKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICAvLyBEZXRlcm1pbmUgdGhlIG51bWJlciBvZiBlbGVtZW50
cyB0aGUgYm91bmQgYnVmZmVyIGNhbiBob2xkLCBnaXZlbiB0aGUgb2Zmc2V0LCBzaXplLCB0eXBl
IGFuZCBzdHJpZGUKLSAgICB1bnNpZ25lZCBpbnQgdHlwZVNpemUgPSBzaXplSW5CeXRlcyh0eXBl
KTsKKyAgICBhdXRvIHR5cGVTaXplID0gc2l6ZUluQnl0ZXModHlwZSk7CiAgICAgaWYgKCF0eXBl
U2l6ZSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5W
QUxJRF9FTlVNLCAidmVydGV4QXR0cmliUG9pbnRlciIsICJpbnZhbGlkIHR5cGUiKTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtNDYwMSw3ICs0NTgzLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjp2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50IHNpemUK
ICAgICB9CiAgICAgR0MzRHNpemVpIGJ5dGVzUGVyRWxlbWVudCA9IHNpemUgKiB0eXBlU2l6ZTsK
IAotICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+c2V0VmVydGV4QXR0cmliU3RhdGUoaW5k
ZXgsIGJ5dGVzUGVyRWxlbWVudCwgc2l6ZSwgdHlwZSwgbm9ybWFsaXplZCwgc3RyaWRlLCBzdGF0
aWNfY2FzdDxHQzNEaW50cHRyPihvZmZzZXQpLCBtX2JvdW5kQXJyYXlCdWZmZXIpOworICAgIG1f
Ym91bmRWZXJ0ZXhBcnJheU9iamVjdC0+c2V0VmVydGV4QXR0cmliU3RhdGUoaW5kZXgsIGJ5dGVz
UGVyRWxlbWVudCwgc2l6ZSwgdHlwZSwgbm9ybWFsaXplZCwgc3RyaWRlLCBzdGF0aWNfY2FzdDxH
QzNEaW50cHRyPihvZmZzZXQpLCAqbV9ib3VuZEFycmF5QnVmZmVyKTsKICAgICBtX2NvbnRleHQt
PnZlcnRleEF0dHJpYlBvaW50ZXIoaW5kZXgsIHNpemUsIHR5cGUsIG5vcm1hbGl6ZWQsIHN0cmlk
ZSwgc3RhdGljX2Nhc3Q8R0MzRGludHB0cj4ob2Zmc2V0KSk7CiB9CiAKQEAgLTQ2OTIsNyArNDY3
NCw3IEBAIFBsYXRmb3JtTGF5ZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnBsYXRmb3Jt
TGF5ZXIoKSBjb25zdAogICAgIHJldHVybiAoIWlzQ29udGV4dExvc3QoKSAmJiAhbV9pc1BlbmRp
bmdQb2xpY3lSZXNvbHV0aW9uKSA/IG1fY29udGV4dC0+cGxhdGZvcm1MYXllcigpIDogMDsKIH0K
IAotdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVTaGFyZWRPYmplY3QoV2Vi
R0xTaGFyZWRPYmplY3QqIG9iamVjdCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
cmVtb3ZlU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0JiBvYmplY3QpCiB7CiAgICAgaWYg
KG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikKICAgICAgICAgcmV0dXJuOwpAQCAtNDcwMCw3
ICs0NjgyLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZW1vdmVTaGFyZWRP
YmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCkKICAgICBtX2NvbnRleHRHcm91cC0+cmVt
b3ZlT2JqZWN0KG9iamVjdCk7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
YWRkU2hhcmVkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmFkZFNoYXJlZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCYgb2Jq
ZWN0KQogewogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pCiAgICAgICAgIHJl
dHVybjsKQEAgLTQ3MDksMjEgKzQ2OTEsMjEgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjphZGRTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QqIG9iamVjdCkKICAgICBtX2Nv
bnRleHRHcm91cC0+YWRkT2JqZWN0KG9iamVjdCk7CiB9CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6cmVtb3ZlQ29udGV4dE9iamVjdChXZWJHTENvbnRleHRPYmplY3QqIG9iamVj
dCkKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVtb3ZlQ29udGV4dE9iamVjdChX
ZWJHTENvbnRleHRPYmplY3QmIG9iamVjdCkKIHsKICAgICBpZiAobV9pc1BlbmRpbmdQb2xpY3lS
ZXNvbHV0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NvbnRleHRPYmplY3RzLnJlbW92
ZShvYmplY3QpOworICAgIG1fY29udGV4dE9iamVjdHMucmVtb3ZlKCZvYmplY3QpOwogfQogCi12
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZENvbnRleHRPYmplY3QoV2ViR0xDb250
ZXh0T2JqZWN0KiBvYmplY3QpCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZENv
bnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0JiBvYmplY3QpCiB7CiAgICAgaWYgKG1faXNQ
ZW5kaW5nUG9saWN5UmVzb2x1dGlvbikKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKCFp
c0NvbnRleHRMb3N0KCkpOwotICAgIG1fY29udGV4dE9iamVjdHMuYWRkKG9iamVjdCk7CisgICAg
bV9jb250ZXh0T2JqZWN0cy5hZGQoJm9iamVjdCk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6ZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpCkBAIC00NzYxLDU2ICs0NzQz
LDU2IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2FuU3VzcGVuZEZvckRvY3Vt
ZW50U3VzcGVuc2lvbigpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1XZWJHTEdldElu
Zm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Qm9vbGVhblBhcmFtZXRlcihHQzNEZW51
bSBwbmFtZSkKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Qm9vbGVhblBhcmFt
ZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNEYm9vbGVhbiB2YWx1ZSA9IDA7CiAgICAg
bV9jb250ZXh0LT5nZXRCb29sZWFudihwbmFtZSwgJnZhbHVlKTsKLSAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKHN0YXRpY19jYXN0PGJvb2w+KHZhbHVlKSk7CisgICAgcmV0dXJuIHZhbHVlOwogfQog
Ci1XZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0Qm9vbGVhbkFycmF5
UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQorVmVjdG9yPGJvb2w+IFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmdldEJvb2xlYW5BcnJheVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAg
ICBpZiAocG5hbWUgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX1dSSVRFTUFTSykgewogICAg
ICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKDAsIDAp
OworICAgICAgICByZXR1cm4geyB9OwogICAgIH0KLSAgICBHQzNEYm9vbGVhbiB2YWx1ZVs0XSA9
IHswfTsKKyAgICBHQzNEYm9vbGVhbiB2YWx1ZVs0XSA9IHsgMCB9OwogICAgIG1fY29udGV4dC0+
Z2V0Qm9vbGVhbnYocG5hbWUsIHZhbHVlKTsKLSAgICBib29sIGJvb2xWYWx1ZVs0XTsKLSAgICBm
b3IgKGludCBpaSA9IDA7IGlpIDwgNDsgKytpaSkKLSAgICAgICAgYm9vbFZhbHVlW2lpXSA9IHN0
YXRpY19jYXN0PGJvb2w+KHZhbHVlW2lpXSk7Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhib29s
VmFsdWUsIDQpOworICAgIFZlY3Rvcjxib29sPiB2ZWN0b3IoNCk7CisgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IDQ7ICsraSkKKyAgICAgICAgdmVjdG9yW2ldID0gdmFsdWVbaV07CisgICAg
cmV0dXJuIHZlY3RvcjsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmdldEZsb2F0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQorZmxvYXQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Z2V0RmxvYXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpCiB7CiAgICAg
R0MzRGZsb2F0IHZhbHVlID0gMDsKICAgICBtX2NvbnRleHQtPmdldEZsb2F0dihwbmFtZSwgJnZh
bHVlKTsKLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICByZXR1cm4gdmFsdWU7
CiB9CiAKLVdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRJbnRQYXJh
bWV0ZXIoR0MzRGVudW0gcG5hbWUpCitpbnQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
SW50UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdDM0RpbnQgdmFsdWUgPSAwOwog
ICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYocG5hbWUsICZ2YWx1ZSk7Ci0gICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgcmV0dXJuIHZhbHVlOwogfQogCi1XZWJHTEdldEluZm8g
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoR0MzRGVu
dW0gcG5hbWUpCit1bnNpZ25lZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbnNpZ25l
ZEludFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNEaW50IHZhbHVlID0gMDsK
ICAgICBtX2NvbnRleHQtPmdldEludGVnZXJ2KHBuYW1lLCAmdmFsdWUpOwotICAgIHJldHVybiBX
ZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2YWx1ZSkpOworICAgIHJldHVy
biB2YWx1ZTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omdl
dEludDY0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQorbG9uZyBsb25nIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldEludDY0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lKQogewogICAgIEdD
M0RpbnQ2NCB2YWx1ZSA9IDA7CiAgICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VyNjR2KHBuYW1lLCAm
dmFsdWUpOwotICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWUpOworICAgIHJldHVybiB2YWx1
ZTsKIH0KIAotV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFdlYkdM
RmxvYXRBcnJheVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKK1JlZlB0cjxGbG9hdDMyQXJyYXk+
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFdlYkdMRmxvYXRBcnJheVBhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNEZmxvYXQgdmFsdWVbNF0gPSB7MH07CiAgICAgbV9j
b250ZXh0LT5nZXRGbG9hdHYocG5hbWUsIHZhbHVlKTsKQEAgLTQ4MjgsMTAgKzQ4MTAsMTAgQEAg
V2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFdlYkdMRmxvYXRBcnJh
eVBhcmFtZXRlcihHQzNEZW51bSBwbmEKICAgICBkZWZhdWx0OgogICAgICAgICBub3RJbXBsZW1l
bnRlZCgpOwogICAgIH0KLSAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFBhc3NSZWZQdHI8RmxvYXQz
MkFycmF5PihGbG9hdDMyQXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKSkpOworICAgIHJldHVy
biBGbG9hdDMyQXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKTsKIH0KIAotV2ViR0xHZXRJbmZv
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFdlYkdMSW50QXJyYXlQYXJhbWV0ZXIoR0Mz
RGVudW0gcG5hbWUpCitSZWZQdHI8SW50MzJBcnJheT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkKIHsKICAgICBHQzNE
aW50IHZhbHVlWzRdID0gezB9OwogICAgIG1fY29udGV4dC0+Z2V0SW50ZWdlcnYocG5hbWUsIHZh
bHVlKTsKQEAgLTQ4NDcsNyArNDgyOSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lCiAgICAg
ZGVmYXVsdDoKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICB9Ci0gICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhQYXNzUmVmUHRyPEludDMyQXJyYXk+KEludDMyQXJyYXk6OmNyZWF0ZSh2YWx1
ZSwgbGVuZ3RoKSkpOworICAgIHJldHVybiBJbnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0
aCk7CiB9CiAKIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2hlY2tUZXh0dXJlQ29t
cGxldGVuZXNzKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgYm9vbCBwcmVwYXJlVG9EcmF3KQpA
QCAtNTA3MSw3ICs1MDUzLDcgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxp
ZGF0ZUNvbXByZXNzZWRUZXhGdW5jRGF0YShjb25zdCBjaGFyKiBmdW5jdGkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHVuc2lnbmVkIGludCBieXRlc1JlcXVpcmVkID0gMDsK
KyAgICB1bnNpZ25lZCBieXRlc1JlcXVpcmVkID0gMDsKIAogICAgIHN3aXRjaCAoZm9ybWF0KSB7
CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTVBSRVNTRURfUkdCX1MzVENfRFhUMV9FWFQ6CkBA
IC01MzI4LDE3ICs1MzEwLDE2IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFs
aWRhdGVVbmlmb3JtTWF0cml4UGFyYW1ldGVycyhjb25zdCBjaGFyKiBmdW5jCiAKIFdlYkdMQnVm
ZmVyKiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxpZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0
ZXJzKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSB1
c2FnZSkKIHsKLSAgICBXZWJHTEJ1ZmZlciogYnVmZmVyID0gMDsKKyAgICBzdGQ6Om9wdGlvbmFs
PFdlYkdMQnVmZmVyKj4gYnVmZmVyOwogICAgIHN3aXRjaCAodGFyZ2V0KSB7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6RUxFTUVOVF9BUlJBWV9CVUZGRVI6Ci0gICAgICAgIGJ1ZmZlciA9
IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVudEFycmF5QnVmZmVyKCkuZ2V0KCk7
CisgICAgICAgIGJ1ZmZlciA9IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+Z2V0RWxlbWVudEFy
cmF5QnVmZmVyKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkFSUkFZX0JVRkZFUjoKICAgICAgICAgYnVmZmVyID0gbV9ib3VuZEFycmF5QnVmZmVyLmdldCgp
OwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogI2lmIEVOQUJMRShXRUJHTDIpCi0gICAg
ICAgIGJvb2wgc3VjY2VzcyA9IHRydWU7CiAgICAgICAgIGlmIChpc1dlYkdMMigpKSB7CiAgICAg
ICAgICAgICBzd2l0Y2ggKHRhcmdldCkgewogICAgICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6Q09QWV9SRUFEX0JVRkZFUjoKQEAgLTUzNTksMTkgKzUzNDAsMTUgQEAgV2ViR0xCdWZm
ZXIqIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZhbGlkYXRlQnVmZmVyRGF0YVBhcmFtZXRl
cnMoY29uc3QgY2hhcioKICAgICAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOSUZP
Uk1fQlVGRkVSOgogICAgICAgICAgICAgICAgIGJ1ZmZlciA9IG1fYm91bmRVbmlmb3JtQnVmZmVy
LmdldCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNl
OwotICAgICAgICBpZiAoc3VjY2VzcykKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
aWYgKGJ1ZmZlcikKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogI2VuZGlmCiAg
ICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0s
IGZ1bmN0aW9uTmFtZSwgImludmFsaWQgdGFyZ2V0Iik7CiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KLSAgICBpZiAoIWJ1ZmZlcikgeworICAgIGlmICghYnVmZmVyIHx8ICFidWZmZXIu
dmFsdWUoKSkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6
SU5WQUxJRF9PUEVSQVRJT04sIGZ1bmN0aW9uTmFtZSwgIm5vIGJ1ZmZlciIpOwogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CkBAIC01Mzc5LDcgKzUzNTYsNyBAQCBXZWJHTEJ1ZmZlciog
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVCdWZmZXJEYXRhUGFyYW1ldGVycyhj
b25zdCBjaGFyKgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNUUkVBTV9EUkFXOgogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNUQVRJQ19EUkFXOgogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkRZTkFNSUNfRFJBVzoKLSAgICAgICAgcmV0dXJuIGJ1ZmZlcjsKKyAgICAgICAg
cmV0dXJuIGJ1ZmZlci52YWx1ZSgpOwogICAgIH0KICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNLCBmdW5jdGlvbk5hbWUsICJpbnZhbGlkIHVzYWdl
Iik7CiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC01OTI5LDYgKzU5MDYsMTYgQEAgdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWJEaXZpc29yKEdDM0R1aW50IGluZGV4
LCBHQzNEdWludCBkaXYKICAgICBtX2NvbnRleHQtPnZlcnRleEF0dHJpYkRpdmlzb3IoaW5kZXgs
IGRpdmlzb3IpOwogfQogCitib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmVuYWJsZVN1
cHBvcnRlZEV4dGVuc2lvbihjb25zdCBjaGFyKiBleHRlbnNpb25OYW1lTGl0ZXJhbCkKK3sKKyAg
ICBBU1NFUlQobV9jb250ZXh0KTsKKyAgICBhdXRvJiBleHRlbnNpb25zID0gbV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCk7CisgICAgU3RyaW5nIGV4dGVuc2lvbk5hbWUgeyBBU0NJSUxpdGVyYWwg
eyBleHRlbnNpb25OYW1lTGl0ZXJhbCB9IH07CisgICAgaWYgKCFleHRlbnNpb25zLnN1cHBvcnRz
KGV4dGVuc2lvbk5hbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZXh0ZW5zaW9ucy5l
bnN1cmVFbmFibGVkKGV4dGVuc2lvbk5hbWUpOworICAgIHJldHVybiB0cnVlOworfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCA3MzkzYTM4NjI4MzNmY2I4NmJi
MTcxYjIwNmIyN2JjZWQ5YjM5ZWNmLi45ZjllOGI2NDFmZjZiY2QzOWFkMjc1NmQyNzM3N2RlMjMy
OWNkZjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsMTMgKzMwLDEwIEBACiAjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlRp
bWVyLmgiCisjaW5jbHVkZSAiV2ViR0xBbnkuaCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRBdHRy
aWJ1dGVzLmgiCi0jaW5jbHVkZSAiV2ViR0xHZXRJbmZvLmgiCi0jaW5jbHVkZSAiV2ViR0xPYmpl
Y3QuaCIKICNpbmNsdWRlICJXZWJHTFRleHR1cmUuaCIKICNpbmNsdWRlIDxtZW1vcnk+Ci0jaW5j
bHVkZSA8cnVudGltZS9GbG9hdDMyQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL0ludDMyQXJy
YXkuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OCw3ICs0NSw2IEBAIGNsYXNzIEVY
VHNSR0I7CiBjbGFzcyBFWFRGcmFnRGVwdGg7CiBjbGFzcyBIVE1MSW1hZ2VFbGVtZW50OwogY2xh
c3MgSFRNTFZpZGVvRWxlbWVudDsKLWNsYXNzIEltYWdlQnVmZmVyOwogY2xhc3MgSW1hZ2VEYXRh
OwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM7CkBAIC0xOTEs
MjQgKzE4NywyNCBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFdlYkdMQWN0aXZlSW5mbz4gZ2V0QWN0
aXZlVW5pZm9ybShXZWJHTFByb2dyYW0qLCBHQzNEdWludCBpbmRleCk7CiAgICAgYm9vbCBnZXRB
dHRhY2hlZFNoYWRlcnMoV2ViR0xQcm9ncmFtKiwgVmVjdG9yPFJlZlB0cjxXZWJHTFNoYWRlcj4+
Jik7CiAgICAgR0MzRGludCBnZXRBdHRyaWJMb2NhdGlvbihXZWJHTFByb2dyYW0qLCBjb25zdCBT
dHJpbmcmIG5hbWUpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRCdWZmZXJQYXJhbWV0ZXIoR0MzRGVu
dW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2ViR0xBbnkgZ2V0QnVmZmVyUGFyYW1l
dGVyKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUpOwogICAgIHN0ZDo6b3B0aW9uYWw8
V2ViR0xDb250ZXh0QXR0cmlidXRlcz4gZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsKICAgICBHQzNE
ZW51bSBnZXRFcnJvcigpOwogICAgIHZpcnR1YWwgV2ViR0xFeHRlbnNpb24qIGdldEV4dGVuc2lv
bihjb25zdCBTdHJpbmcmIG5hbWUpID0gMDsKLSAgICB2aXJ0dWFsIFdlYkdMR2V0SW5mbyBnZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBh
dHRhY2htZW50LCBHQzNEZW51bSBwbmFtZSkgPSAwOwotICAgIHZpcnR1YWwgV2ViR0xHZXRJbmZv
IGdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSkgPSAwOwotICAgIFdlYkdMR2V0SW5mbyBnZXRQ
cm9ncmFtUGFyYW1ldGVyKFdlYkdMUHJvZ3JhbSosIEdDM0RlbnVtIHBuYW1lKTsKKyAgICB2aXJ0
dWFsIFdlYkdMQW55IGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lKSA9IDA7CisgICAgdmly
dHVhbCBXZWJHTEFueSBnZXRQYXJhbWV0ZXIoR0MzRGVudW0gcG5hbWUpID0gMDsKKyAgICBXZWJH
TEFueSBnZXRQcm9ncmFtUGFyYW1ldGVyKFdlYkdMUHJvZ3JhbSosIEdDM0RlbnVtIHBuYW1lKTsK
ICAgICBTdHJpbmcgZ2V0UHJvZ3JhbUluZm9Mb2coV2ViR0xQcm9ncmFtKik7Ci0gICAgV2ViR0xH
ZXRJbmZvIGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IHBuYW1lKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0U2hhZGVyUGFyYW1ldGVyKFdlYkdMU2hhZGVy
KiwgR0MzRGVudW0gcG5hbWUpOworICAgIFdlYkdMQW55IGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRl
cihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBnZXRTaGFk
ZXJQYXJhbWV0ZXIoV2ViR0xTaGFkZXIqLCBHQzNEZW51bSBwbmFtZSk7CiAgICAgU3RyaW5nIGdl
dFNoYWRlckluZm9Mb2coV2ViR0xTaGFkZXIqKTsKICAgICBSZWZQdHI8V2ViR0xTaGFkZXJQcmVj
aXNpb25Gb3JtYXQ+IGdldFNoYWRlclByZWNpc2lvbkZvcm1hdChHQzNEZW51bSBzaGFkZXJUeXBl
LCBHQzNEZW51bSBwcmVjaXNpb25UeXBlKTsKICAgICBTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFdl
YkdMU2hhZGVyKik7CiAgICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBnZXRTdXBwb3J0ZWRFeHRl
bnNpb25zKCkgPSAwOwotICAgIFdlYkdMR2V0SW5mbyBnZXRUZXhQYXJhbWV0ZXIoR0MzRGVudW0g
dGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldFVuaWZvcm0oV2Vi
R0xQcm9ncmFtKiwgY29uc3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qKTsKKyAgICBXZWJHTEFueSBn
ZXRUZXhQYXJhbWV0ZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSk7CisgICAgV2Vi
R0xBbnkgZ2V0VW5pZm9ybShXZWJHTFByb2dyYW0qLCBjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlv
biopOwogICAgIFJlZlB0cjxXZWJHTFVuaWZvcm1Mb2NhdGlvbj4gZ2V0VW5pZm9ybUxvY2F0aW9u
KFdlYkdMUHJvZ3JhbSosIGNvbnN0IFN0cmluZyYpOwotICAgIFdlYkdMR2V0SW5mbyBnZXRWZXJ0
ZXhBdHRyaWIoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lKTsKKyAgICBXZWJHTEFueSBn
ZXRWZXJ0ZXhBdHRyaWIoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lKTsKICAgICBsb25n
IGxvbmcgZ2V0VmVydGV4QXR0cmliT2Zmc2V0KEdDM0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFt
ZSk7CiAKICAgICB2aXJ0dWFsIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1v
ZGUpID0gMDsKQEAgLTMyMyw4ICszMTksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYWludFJlbmRl
cmluZ1Jlc3VsdHNUb0NhbnZhcygpIG92ZXJyaWRlOwogICAgIFJlZlB0cjxJbWFnZURhdGE+IHBh
aW50UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKCk7CiAKLSAgICB2b2lkIHJlbW92ZVNoYXJl
ZE9iamVjdChXZWJHTFNoYXJlZE9iamVjdCopOwotICAgIHZvaWQgcmVtb3ZlQ29udGV4dE9iamVj
dChXZWJHTENvbnRleHRPYmplY3QqKTsKKyAgICB2b2lkIHJlbW92ZVNoYXJlZE9iamVjdChXZWJH
TFNoYXJlZE9iamVjdCYpOworICAgIHZvaWQgcmVtb3ZlQ29udGV4dE9iamVjdChXZWJHTENvbnRl
eHRPYmplY3QmKTsKICAgICAKICAgICB1bnNpZ25lZCBnZXRNYXhWZXJ0ZXhBdHRyaWJzKCkgY29u
c3QgeyByZXR1cm4gbV9tYXhWZXJ0ZXhBdHRyaWJzOyB9CiAKQEAgLTMzNSw3ICszMzEsNyBAQCBw
dWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKEhUTUxD
YW52YXNFbGVtZW50JiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyk7Ci0gICAgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxlbWVudCYsIFJlZlB0cjxHcmFwaGljc0NvbnRleHQz
RD4mJiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyk7CisgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZShIVE1MQ2FudmFzRWxlbWVudCYsIFJlZjxHcmFwaGljc0NvbnRleHQzRD4mJiwgV2ViR0xD
b250ZXh0QXR0cmlidXRlcyk7CiAKICAgICBmcmllbmQgY2xhc3MgV2ViR0xEcmF3QnVmZmVyczsK
ICAgICBmcmllbmQgY2xhc3MgV2ViR0xGcmFtZWJ1ZmZlcjsKQEAgLTM2MCw4ICszNTYsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0
IG92ZXJyaWRlOwogCi0gICAgdm9pZCBhZGRTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3Qq
KTsKLSAgICB2b2lkIGFkZENvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0Kik7CisgICAg
dm9pZCBhZGRTaGFyZWRPYmplY3QoV2ViR0xTaGFyZWRPYmplY3QmKTsKKyAgICB2b2lkIGFkZENv
bnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0Jik7CiAgICAgdm9pZCBkZXRhY2hBbmRSZW1v
dmVBbGxPYmplY3RzKCk7CiAKICAgICB2b2lkIGRlc3Ryb3lHcmFwaGljc0NvbnRleHQzRCgpOwpA
QCAtNDA1LDYgKzQwMSw4IEBAIHByb3RlY3RlZDoKIAogICAgIFdlYkdMVGV4dHVyZTo6VGV4dHVy
ZUV4dGVuc2lvbkZsYWcgdGV4dHVyZUV4dGVuc2lvbkZsYWdzKCkgY29uc3Q7CiAKKyAgICBib29s
IGVuYWJsZVN1cHBvcnRlZEV4dGVuc2lvbihjb25zdCBjaGFyKiBleHRlbnNpb25OYW1lTGl0ZXJh
bCk7CisKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1fY29udGV4dDsKICAgICBSZWZQ
dHI8V2ViR0xDb250ZXh0R3JvdXA+IG1fY29udGV4dEdyb3VwOwogCkBAIC00MTQsNyArNDEyLDcg
QEAgcHJvdGVjdGVkOgogICAgIC8vIG9uIGhvdyBleGFjdGx5IHRoZSBwbGF0Zm9ybSBkaXNjb3Zl
cnMgdGhhdCB0aGUgY29udGV4dCB3YXMgbG9zdC4gRm9yIGJldHRlcgogICAgIC8vIHBvcnRhYmls
aXR5IHdlIGFsd2F5cyBkZWZlciB0aGUgZGlzcGF0Y2ggb2YgdGhlIGV2ZW50LgogICAgIFRpbWVy
IG1fZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50VGltZXI7Ci0gICAgYm9vbCBtX3Jlc3RvcmVBbGxv
d2VkOworICAgIGJvb2wgbV9yZXN0b3JlQWxsb3dlZCB7IGZhbHNlIH07CiAgICAgVGltZXIgbV9y
ZXN0b3JlVGltZXI7CiAKICAgICBib29sIG1fbmVlZHNVcGRhdGU7CkBAIC00MzIsMTIgKzQzMCwx
MCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U+
IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OwogICAgIFJlZlB0cjxXZWJHTFZlcnRleEFycmF5
T2JqZWN0QmFzZT4gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0OwotICAgIHZvaWQgc2V0Qm91bmRW
ZXJ0ZXhBcnJheU9iamVjdChQYXNzUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlPiBh
cnJheU9iamVjdCkKKworICAgIHZvaWQgc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChXZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZSogYXJyYXlPYmplY3QpCiAgICAgewotICAgICAgICBpZiAoYXJy
YXlPYmplY3QpCi0gICAgICAgICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBhcnJheU9i
amVjdDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0
ID0gbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7CisgICAgICAgIG1fYm91bmRWZXJ0ZXhBcnJh
eU9iamVjdCA9IGFycmF5T2JqZWN0ID8gYXJyYXlPYmplY3QgOiBtX2RlZmF1bHRWZXJ0ZXhBcnJh
eU9iamVjdDsKICAgICB9CiAgICAgCiAgICAgY2xhc3MgVmVydGV4QXR0cmliVmFsdWUgewpAQCAt
NDkzLDEyICs0ODksMTIgQEAgcHJvdGVjdGVkOgogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8c3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPltdPiBtX2J1ZmZlcnM7CiAgICAgICAgIGludCBtX2Nh
cGFjaXR5OwogICAgIH07Ci0gICAgTFJVSW1hZ2VCdWZmZXJDYWNoZSBtX2dlbmVyYXRlZEltYWdl
Q2FjaGU7CisgICAgTFJVSW1hZ2VCdWZmZXJDYWNoZSBtX2dlbmVyYXRlZEltYWdlQ2FjaGUgeyAw
IH07CiAKICAgICBHQzNEaW50IG1fbWF4VGV4dHVyZVNpemU7CiAgICAgR0MzRGludCBtX21heEN1
YmVNYXBUZXh0dXJlU2l6ZTsKICAgICBHQzNEaW50IG1fbWF4UmVuZGVyYnVmZmVyU2l6ZTsKLSAg
ICBHQzNEaW50IG1fbWF4Vmlld3BvcnREaW1zWzJdOworICAgIEdDM0RpbnQgbV9tYXhWaWV3cG9y
dERpbXNbMl0geyAwLCAwIH07CiAgICAgR0MzRGludCBtX21heFRleHR1cmVMZXZlbDsKICAgICBH
QzNEaW50IG1fbWF4Q3ViZU1hcFRleHR1cmVMZXZlbDsKIApAQCAtNTEzLDggKzUwOSw4IEBAIHBy
b3RlY3RlZDoKICAgICBib29sIG1fdW5wYWNrRmxpcFk7CiAgICAgYm9vbCBtX3VucGFja1ByZW11
bHRpcGx5QWxwaGE7CiAgICAgR0MzRGVudW0gbV91bnBhY2tDb2xvcnNwYWNlQ29udmVyc2lvbjsK
LSAgICBib29sIG1fY29udGV4dExvc3Q7Ci0gICAgTG9zdENvbnRleHRNb2RlIG1fY29udGV4dExv
c3RNb2RlOworICAgIGJvb2wgbV9jb250ZXh0TG9zdCB7IGZhbHNlIH07CisgICAgTG9zdENvbnRl
eHRNb2RlIG1fY29udGV4dExvc3RNb2RlIHsgU3ludGhldGljTG9zdENvbnRleHQgfTsKICAgICBX
ZWJHTENvbnRleHRBdHRyaWJ1dGVzIG1fYXR0cmlidXRlczsKIAogICAgIGJvb2wgbV9sYXllckNs
ZWFyZWQ7CkBAIC01MzUsMTcgKzUzMSwxOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2lzRGVw
dGhTdGVuY2lsU3VwcG9ydGVkOwogICAgIGJvb2wgbV9pc1JvYnVzdG5lc3NFWFRTdXBwb3J0ZWQ7
CiAKLSAgICBib29sIG1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGU7CisgICAgYm9vbCBtX3N5
bnRoZXNpemVkRXJyb3JzVG9Db25zb2xlIHsgdHJ1ZSB9OwogICAgIGludCBtX251bUdMRXJyb3Jz
VG9Db25zb2xlQWxsb3dlZDsKIAogICAgIC8vIEEgV2ViR0xSZW5kZXJpbmdDb250ZXh0IGNhbiBi
ZSBjcmVhdGVkIGluIGEgc3RhdGUgd2hlcmUgaXQgYXBwZWFycyBhcwogICAgIC8vIGEgdmFsaWQg
YW5kIGFjdGl2ZSBjb250ZXh0LCBidXQgd2lsbCBub3QgZXhlY3V0ZSBhbnkgaW1wb3J0YW50IG9w
ZXJhdGlvbnMKICAgICAvLyB1bnRpbCBpdHMgbG9hZCBwb2xpY3kgaXMgY29tcGxldGVseSByZXNv
bHZlZC4KLSAgICBib29sIG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbjsKLSAgICBib29sIG1f
aGFzUmVxdWVzdGVkUG9saWN5UmVzb2x1dGlvbjsKKyAgICBib29sIG1faXNQZW5kaW5nUG9saWN5
UmVzb2x1dGlvbiB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1JlcXVlc3RlZFBvbGljeVJlc29s
dXRpb24geyBmYWxzZSB9OwogICAgIGJvb2wgaXNDb250ZXh0TG9zdE9yUGVuZGluZygpOwogCi0g
ICAgLy8gRW5hYmxlZCBleHRlbnNpb24gb2JqZWN0cy4gRklYTUU6IE1vdmUgdGhlc2UgdG8gV2Vi
R0wxUmVuZGVyaW5nQ29udGV4dCwgbm90IG5lZWRlZCBmb3IgV2ViR0wyCisgICAgLy8gRW5hYmxl
ZCBleHRlbnNpb24gb2JqZWN0cy4KKyAgICAvLyBGSVhNRTogTW92ZSBzb21lIG9mIHRoZXNlIHRv
IFdlYkdMUmVuZGVyaW5nQ29udGV4dCwgdGhlIG9uZXMgbm90IG5lZWRlZCBmb3IgV2ViR0wyCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEVYVEZyYWdEZXB0aD4gbV9leHRGcmFnRGVwdGg7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEVYVEJsZW5kTWluTWF4PiBtX2V4dEJsZW5kTWluTWF4OwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxFWFRzUkdCPiBtX2V4dHNSR0I7CkBAIC01NjgsMTUgKzU2NSwxNSBAQCBwcm90
ZWN0ZWQ6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMRHJhd0J1ZmZlcnM+IG1fd2ViZ2xEcmF3
QnVmZmVyczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QU5HTEVJbnN0YW5jZWRBcnJheXM+IG1fYW5n
bGVJbnN0YW5jZWRBcnJheXM7CiAKLSAgICAvLyBIZWxwZXJzIGZvciBnZXRQYXJhbWV0ZXIgYW5k
IG90aGVycwotICAgIFdlYkdMR2V0SW5mbyBnZXRCb29sZWFuUGFyYW1ldGVyKEdDM0RlbnVtKTsK
LSAgICBXZWJHTEdldEluZm8gZ2V0Qm9vbGVhbkFycmF5UGFyYW1ldGVyKEdDM0RlbnVtKTsKLSAg
ICBXZWJHTEdldEluZm8gZ2V0RmxvYXRQYXJhbWV0ZXIoR0MzRGVudW0pOwotICAgIFdlYkdMR2V0
SW5mbyBnZXRJbnRQYXJhbWV0ZXIoR0MzRGVudW0pOwotICAgIFdlYkdMR2V0SW5mbyBnZXRVbnNp
Z25lZEludFBhcmFtZXRlcihHQzNEZW51bSk7Ci0gICAgV2ViR0xHZXRJbmZvIGdldEludDY0UGFy
YW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0V2ViR0xGbG9hdEFycmF5UGFy
YW1ldGVyKEdDM0RlbnVtKTsKLSAgICBXZWJHTEdldEluZm8gZ2V0V2ViR0xJbnRBcnJheVBhcmFt
ZXRlcihHQzNEZW51bSk7CisgICAgLy8gSGVscGVycyBmb3IgZ2V0UGFyYW1ldGVyIGFuZCBvdGhl
ciBzaW1pbGFyIGZ1bmN0aW9ucy4KKyAgICBib29sIGdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVu
dW0pOworICAgIFZlY3Rvcjxib29sPiBnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0p
OworICAgIGZsb2F0IGdldEZsb2F0UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICBpbnQgZ2V0SW50
UGFyYW1ldGVyKEdDM0RlbnVtKTsKKyAgICB1bnNpZ25lZCBnZXRVbnNpZ25lZEludFBhcmFtZXRl
cihHQzNEZW51bSk7CisgICAgbG9uZyBsb25nIGdldEludDY0UGFyYW1ldGVyKEdDM0RlbnVtKTsK
KyAgICBSZWZQdHI8RmxvYXQzMkFycmF5PiBnZXRXZWJHTEZsb2F0QXJyYXlQYXJhbWV0ZXIoR0Mz
RGVudW0pOworICAgIFJlZlB0cjxJbnQzMkFycmF5PiBnZXRXZWJHTEludEFycmF5UGFyYW1ldGVy
KEdDM0RlbnVtKTsKIAogICAgIC8vIENsZWFyIHRoZSBiYWNrYnVmZmVyIGlmIGl0IHdhcyBjb21w
b3NpdGVkIHNpbmNlIHRoZSBsYXN0IG9wZXJhdGlvbi4KICAgICAvLyBjbGVhck1hc2sgaXMgc2V0
IHRvIHRoZSBiaXRmaWVsZCBvZiBhbnkgY2xlYXIgdGhhdCB3b3VsZCBoYXBwZW4gYW55d2F5IGF0
IHRoaXMgdGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xT
YW1wbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNhbXBsZXIuaAppbmRl
eCBiZDljMGVhZGQwM2E3NTI5MDNjZGNlZGQzZTk2ZWNmYWIyMTgxMmM1Li5hMDUzMWZmMjdjODYz
YzQ3M2NiZGQyZThhN2U0NmEwMDQzOGM2ZTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFNhbXBsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFNhbXBsZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMSwxNyArMzEsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBXZWJHTFNhbXBsZXIgZmluYWwgOiBwdWJsaWMgV2ViR0xTaGFyZWRPYmplY3QgewogcHVi
bGljOgotICAgIHZpcnR1YWwgfldlYkdMU2FtcGxlcigpOwotCiAgICAgc3RhdGljIFJlZjxXZWJH
TFNhbXBsZXI+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CisgICAgdmlydHVh
bCB+V2ViR0xTYW1wbGVyKCk7CiAKIHByb3RlY3RlZDoKLSAgICBXZWJHTFNhbXBsZXIoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZSYpOwotCi0gICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBo
aWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0g
ICAgYm9vbCBpc1NhbXBsZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAg
ZXhwbGljaXQgV2ViR0xTYW1wbGVyKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKKyAgICB2
b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0
KSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFNoYWRlci5oCmluZGV4IDZhZjVjMjY5ZDUwYWFlNGQ4NTViN2QwNzBlYTMx
ODhlZTU0M2I5MGMuLjk1MmNkY2M2NTQzZWFmYmJhZGM0Y2YwOTM0NTcwM2ExZDdjZTFlYzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw5ICszMSw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2ViR0xTaGFkZXIgZmluYWwgOiBwdWJs
aWMgV2ViR0xTaGFyZWRPYmplY3QgewogcHVibGljOgotICAgIHZpcnR1YWwgfldlYkdMU2hhZGVy
KCk7Ci0KICAgICBzdGF0aWMgUmVmPFdlYkdMU2hhZGVyPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYsIEdDM0RlbnVtKTsKKyAgICB2aXJ0dWFsIH5XZWJHTFNoYWRlcigpOwogCiAg
ICAgR0MzRGVudW0gZ2V0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIGNvbnN0
IFN0cmluZyYgZ2V0U291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH0KQEAgLTQ2LDkg
KzQ1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJHTFNoYWRlcihXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiwgR0MzRGVudW0pOwogCi0gICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdy
YXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7Ci0KLSAgICBib29s
IGlzU2hhZGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZvaWQgZGVs
ZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIGZpbmFs
OwogCiAgICAgR0MzRGVudW0gbV90eXBlOwogICAgIFN0cmluZyBtX3NvdXJjZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcAppbmRleCAzNmRj
MTVkM2EwZTdlNWY2YTk3MDYxZTRjM2JkM2MyNDFjMWI4NGU5Li4xYjIyMzZmYmQ3MTJhOGI3MWMw
ODIwZDFjMGFhNjIzYmMzMzgyMDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDQxICsyNCwzOSBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTFNoYXJlZE9iamVjdC5oIgogCiAjaWYgRU5BQkxF
KFdFQkdMKQogCi0jaW5jbHVkZSAiV2ViR0xTaGFyZWRPYmplY3QuaCIKLQogI2luY2x1ZGUgIldl
YkdMQ29udGV4dEdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdlYkdMU2hhcmVkT2JqZWN0OjpXZWJHTFNoYXJl
ZE9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0KQotICAgIDogV2ViR0xP
YmplY3QoY29udGV4dCkKLSAgICAsIG1fY29udGV4dEdyb3VwKGNvbnRleHQuY29udGV4dEdyb3Vw
KCkpCisgICAgOiBtX2NvbnRleHRHcm91cChjb250ZXh0LmNvbnRleHRHcm91cCgpKQogewogfQog
CiBXZWJHTFNoYXJlZE9iamVjdDo6fldlYkdMU2hhcmVkT2JqZWN0KCkKIHsKICAgICBpZiAobV9j
b250ZXh0R3JvdXApCi0gICAgICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVPYmplY3QodGhpcyk7
CisgICAgICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVPYmplY3QoKnRoaXMpOwogfQogCiB2b2lk
IFdlYkdMU2hhcmVkT2JqZWN0OjpkZXRhY2hDb250ZXh0R3JvdXAoKQogewogICAgIGRldGFjaCgp
OwogICAgIGlmIChtX2NvbnRleHRHcm91cCkgewotICAgICAgICBkZWxldGVPYmplY3QoMCk7Ci0g
ICAgICAgIG1fY29udGV4dEdyb3VwLT5yZW1vdmVPYmplY3QodGhpcyk7Ci0gICAgICAgIG1fY29u
dGV4dEdyb3VwID0gMDsKKyAgICAgICAgZGVsZXRlT2JqZWN0KG51bGxwdHIpOworICAgICAgICBt
X2NvbnRleHRHcm91cC0+cmVtb3ZlT2JqZWN0KCp0aGlzKTsKKyAgICAgICAgbV9jb250ZXh0R3Jv
dXAgPSBudWxscHRyOwogICAgIH0KIH0KIAogR3JhcGhpY3NDb250ZXh0M0QqIFdlYkdMU2hhcmVk
T2JqZWN0OjpnZXRBR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdAogewotICAgIHJldHVybiBtX2Nv
bnRleHRHcm91cCA/IG1fY29udGV4dEdyb3VwLT5nZXRBR3JhcGhpY3NDb250ZXh0M0QoKSA6IDA7
CisgICAgcmV0dXJuIG1fY29udGV4dEdyb3VwID8gJm1fY29udGV4dEdyb3VwLT5nZXRBR3JhcGhp
Y3NDb250ZXh0M0QoKSA6IG51bGxwdHI7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oCmluZGV4IGFiZTQ4MDMzMzcyYzk1NmNjNzEzMGVi
N2Y3YmZmZmRjZDFhOWY1N2IuLjk3MmU1ODBlZWNiMDE5YjhhZmUxMTgwNzAyMTkzMjZjMzZjOTM4
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3Qu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zMywyNCArMzMsMTUgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiBjbGFzcyBXZWJHTENv
bnRleHRHcm91cDsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U7CiAKLS8vIFdlYkdM
U2hhcmVkT2JqZWN0IHRoZSBiYXNlIGNsYXNzIGZvciBvYmplY3RzIHRoYXQgY2FuIGJlIHNoYXJl
ZCBieSBtdWx0aXBsZQotLy8gV2ViR0xSZW5kZXJpbmdDb250ZXh0cy4KKy8vIFdlYkdMU2hhcmVk
T2JqZWN0IHRoZSBiYXNlIGNsYXNzIGZvciBvYmplY3RzIHRoYXQgY2FuIGJlIHNoYXJlZCBieSBt
dWx0aXBsZSBXZWJHTFJlbmRlcmluZ0NvbnRleHRzLgogY2xhc3MgV2ViR0xTaGFyZWRPYmplY3Qg
OiBwdWJsaWMgV2ViR0xPYmplY3QgewogcHVibGljOgogICAgIHZpcnR1YWwgfldlYkdMU2hhcmVk
T2JqZWN0KCk7CiAKICAgICBXZWJHTENvbnRleHRHcm91cCogY29udGV4dEdyb3VwKCkgY29uc3Qg
eyByZXR1cm4gbV9jb250ZXh0R3JvdXA7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc0J1ZmZlcigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzUHJvZ3JhbSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzUXVlcnkoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlcmJ1ZmZlcigpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzU2FtcGxlcigpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzU2hhZGVyKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTeW5jKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0dXJlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNUcmFuc2Zvcm1GZWVkYmFjaygpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVmVydGV4QXJyYXlPYmplY3QoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogCiAgICAgYm9vbCB2YWxpZGF0ZShjb25zdCBXZWJHTENvbnRleHRH
cm91cCogY29udGV4dEdyb3VwLCBjb25zdCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJikgY29u
c3Qgb3ZlcnJpZGUKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFN5bmMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU3luYy5oCmlu
ZGV4IGVmNmVjOWRjZDU5NjRmYjQ2ZDIzN2EwMDYzZDRjNTZiMTJjZGE3NGMuLmY5ZTcxODAxNzQx
ZDAzMzc2MmMyYzIxYjRjM2M2YTNkOTgxODIwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMU3luYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMU3luYy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTM5LDkgKzM5LDYgQEAgcHJvdGVjdGVkOgogICAgIFdlYkdMU3luYyhXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CiAKICAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3Jh
cGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKLQotcHJpdmF0ZToK
LSAgICBib29sIGlzU3luYygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaAppbmRleCA2OWNmOGU3YmI1NDE4ZWFhOWU0NTY5
MjExNDA4ZjQ3NmIyNmE2Nzg2Li43MTQ5MjMzODQ1YWRhMWRlYTQzYzAxZDgwNWI3OTgxNmI3NzNl
YjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9y
bUZlZWRiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zv
cm1GZWVkYmFjay5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTM5LDkgKzM5LDYgQEAgcHJvdGVjdGVkOgogICAgIFdlYkdMVHJhbnNmb3Jt
RmVlZGJhY2soV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwogCiAgICAgdm9pZCBkZWxldGVP
YmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7
Ci0KLXByaXZhdGU6Ci0gICAgYm9vbCBpc1RyYW5zZm9ybUZlZWRiYWNrKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmNw
cAppbmRleCA3ZmE2OWM5YTQ5NGRiZWVhOWRiZWJmODllODVmNDNmOWNmZDAyODQ5Li44OWFlMjFm
MzNlZjg1ODhjZDE4ZDQwMzFjODU3YWE4YTE0NGU1NTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwzMyArMjQs
MzMgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoV0VCR0wpICYm
IEVOQUJMRShXRUJHTDIpCiAjaW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oIgogCisj
aWYgRU5BQkxFKFdFQkdMMikKKwogI2luY2x1ZGUgIldlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCIK
ICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgCi1SZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdD4gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6
Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwgVkFPVHlwZSB0eXBlKQorUmVm
PFdlYkdMVmVydGV4QXJyYXlPYmplY3Q+IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZShX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBUeXBlIHR5cGUpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdChjdHgsIHR5cGUpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTFZlcnRleEFycmF5T2JqZWN0KGNvbnRleHQsIHR5
cGUpKTsKIH0KIAogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6fldlYkdMVmVydGV4QXJyYXlPYmpl
Y3QoKQogewotICAgIGRlbGV0ZU9iamVjdCgwKTsKKyAgICBkZWxldGVPYmplY3QobnVsbHB0cik7
CiB9CiAKLVdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OldlYkdMVmVydGV4QXJyYXlPYmplY3QoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4LCBWQU9UeXBlIHR5cGUpCi0gICAgOiBXZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZShjdHgsIHR5cGUpCitXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpX
ZWJHTFZlcnRleEFycmF5T2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQs
IFR5cGUgdHlwZSkKKyAgICA6IFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKGNvbnRleHQsIHR5
cGUpCiB7CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFZBT1R5cGVEZWZhdWx0Ogor
ICAgIGNhc2UgVHlwZTo6RGVmYXVsdDoKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAg
ICAgICAgc2V0T2JqZWN0KGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+Y3JlYXRlVmVy
dGV4QXJyYXkoKSk7CisgICAgY2FzZSBUeXBlOjpVc2VyOgorICAgICAgICBzZXRPYmplY3QodGhp
cy0+Y29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpLT5jcmVhdGVWZXJ0ZXhBcnJheSgpKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpAQCAtNTgsOSArNTgsOSBAQCBXZWJHTFZlcnRleEFy
cmF5T2JqZWN0OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmIGN0eCwgVgogdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpkZWxldGVPYmplY3RJbXBs
KEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M2QsIFBsYXRmb3JtM0RPYmplY3Qgb2JqZWN0KQog
ewogICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBWQU9UeXBlRGVmYXVsdDoKKyAgICBj
YXNlIFR5cGU6OkRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6CisgICAgY2Fz
ZSBUeXBlOjpVc2VyOgogICAgICAgICBjb250ZXh0M2QtPmRlbGV0ZVZlcnRleEFycmF5KG9iamVj
dCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaAppbmRleCA1YjQ5YzcwOGE0NjI1NGRlNTkw
ZTFjMDZkY2M5ODYyYTY2NGMzMTQyLi4yZjdlZDM1MDgxNzIzZjBhYmFmMjUzYjJhYmNmZDAxMzk3
MDM2NDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRl
eEFycmF5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI3LDggKzI3LDYgQEAKIAogI2lmIEVOQUJMRShXRUJHTDIpCiAKLSNp
bmNsdWRlICJXZWJHTEJ1ZmZlci5oIgotI2luY2x1ZGUgIldlYkdMQ29udGV4dE9iamVjdC5oIgog
I2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTM3LDEyICszNSwxMSBAQCBjbGFzcyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Owog
CiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0IGZpbmFsIDogcHVibGljIFdlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkdMVmVydGV4QXJy
YXlPYmplY3Q+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVkFPVHlwZSk7Cisg
ICAgc3RhdGljIFJlZjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBjcmVhdGUoV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYsIFR5cGUpOwogICAgIHZpcnR1YWwgfldlYkdMVmVydGV4QXJyYXlPYmpl
Y3QoKTsKIHByaXZhdGU6Ci0gICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdChXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiwgVkFPVHlwZSk7Ci0gICAgYm9vbCBpc1RyYW5zZm9ybUZlZWRiYWNrKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGlj
c0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAgIFdlYkdMVmVydGV4
QXJyYXlPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFR5cGUpOworICAgIHZvaWQg
ZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QpIGZp
bmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCmluZGV4
IDY5NjQ5YzYyZjZlMWRiZWYyZjllZGE2MTdjNDI0MjRkZjczZjE3NWYuLjU4ZGZhM2Q3M2M2YWRi
OTM5Y2U0MDQ5MmY4MTc5YTk4YmZlNzkxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMjQgKzI0
LDIyIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlLmgiCiAKICNpZiBFTkFCTEUoV0VCR0wpCi0jaW5jbHVkZSAiV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2UuaCIKIAogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1XZWJHTFZlcnRleEFycmF5T2JqZWN0
QmFzZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSYgY3R4LCBWQU9UeXBlIHR5cGUpCi0gICAgOiBXZWJHTENvbnRleHRPYmplY3QoY3R4KQorV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIFR5cGUgdHlwZSkKKyAgICA6IFdlYkdMQ29u
dGV4dE9iamVjdChjb250ZXh0KQogICAgICwgbV90eXBlKHR5cGUpCi0gICAgLCBtX2hhc0V2ZXJC
ZWVuQm91bmQoZmFsc2UpCi0gICAgLCBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyKDApCiB7Ci0g
ICAgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5yZXNpemUoY3R4LmdldE1heFZlcnRleEF0dHJpYnMoKSk7
CisgICAgbV92ZXJ0ZXhBdHRyaWJTdGF0ZS5yZXNpemUoY29udGV4dC5nZXRNYXhWZXJ0ZXhBdHRy
aWJzKCkpOwogfQogCi12b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRFbGVtZW50
QXJyYXlCdWZmZXIoUGFzc1JlZlB0cjxXZWJHTEJ1ZmZlcj4gYnVmZmVyKQordm9pZCBXZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZTo6c2V0RWxlbWVudEFycmF5QnVmZmVyKFdlYkdMQnVmZmVyKiBi
dWZmZXIpCiB7CiAgICAgaWYgKGJ1ZmZlcikKICAgICAgICAgYnVmZmVyLT5vbkF0dGFjaGVkKCk7
CkBAIC01MSwxOCArNDksMTcgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0
RWxlbWVudEFycmF5QnVmZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IGIKICAgICAKIH0KIAot
dm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4QXR0cmliU3RhdGUoR0Mz
RHVpbnQgaW5kZXgsIEdDM0RzaXplaSBieXRlc1BlckVsZW1lbnQsIEdDM0RpbnQgc2l6ZSwgR0Mz
RGVudW0gdHlwZSwgR0MzRGJvb2xlYW4gbm9ybWFsaXplZCwgR0MzRHNpemVpIHN0cmlkZSwgR0Mz
RGludHB0ciBvZmZzZXQsIFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKK3ZvaWQgV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKEdDM0R1aW50IGlu
ZGV4LCBHQzNEc2l6ZWkgYnl0ZXNQZXJFbGVtZW50LCBHQzNEaW50IHNpemUsIEdDM0RlbnVtIHR5
cGUsIEdDM0Rib29sZWFuIG5vcm1hbGl6ZWQsIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIg
b2Zmc2V0LCBXZWJHTEJ1ZmZlciYgYnVmZmVyKQogewogICAgIEdDM0RzaXplaSB2YWxpZGF0ZWRT
dHJpZGUgPSBzdHJpZGUgPyBzdHJpZGUgOiBieXRlc1BlckVsZW1lbnQ7CiAgICAgCi0gICAgVmVy
dGV4QXR0cmliU3RhdGUmIHN0YXRlID0gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF07CisgICAg
YXV0byYgc3RhdGUgPSBtX3ZlcnRleEF0dHJpYlN0YXRlW2luZGV4XTsKICAgICAKLSAgICBpZiAo
YnVmZmVyKQotICAgICAgICBidWZmZXItPm9uQXR0YWNoZWQoKTsKKyAgICBidWZmZXIub25BdHRh
Y2hlZCgpOwogICAgIGlmIChzdGF0ZS5idWZmZXJCaW5kaW5nKQogICAgICAgICBzdGF0ZS5idWZm
ZXJCaW5kaW5nLT5vbkRldGFjaGVkKGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0M0QoKSk7CiAg
ICAgCi0gICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IGJ1ZmZlcjsKKyAgICBzdGF0ZS5idWZmZXJC
aW5kaW5nID0gJmJ1ZmZlcjsKICAgICBzdGF0ZS5ieXRlc1BlckVsZW1lbnQgPSBieXRlc1BlckVs
ZW1lbnQ7CiAgICAgc3RhdGUuc2l6ZSA9IHNpemU7CiAgICAgc3RhdGUudHlwZSA9IHR5cGU7CkBA
IC03MiwxNyArNjksMTcgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0VmVy
dGV4QXR0cmliU3RhdGUoR0MzRHVpbnQgaW5kZXgsIEdDM0RzaXplaQogICAgIHN0YXRlLm9mZnNl
dCA9IG9mZnNldDsKIH0KIAotdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5k
QnVmZmVyKFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IGJ1ZmZlcikKK3ZvaWQgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZlcihXZWJHTEJ1ZmZlciYgYnVmZmVyKQogewotICAg
IGlmIChtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID09IGJ1ZmZlcikgeworICAgIGlmIChtX2Jv
dW5kRWxlbWVudEFycmF5QnVmZmVyID09ICZidWZmZXIpIHsKICAgICAgICAgbV9ib3VuZEVsZW1l
bnRBcnJheUJ1ZmZlci0+b25EZXRhY2hlZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkp
OwogICAgICAgICBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID0gbnVsbHB0cjsKICAgICB9CiAg
ICAgCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3ZlcnRleEF0dHJpYlN0YXRlLnNpemUo
KTsgKytpKSB7Ci0gICAgICAgIFZlcnRleEF0dHJpYlN0YXRlJiBzdGF0ZSA9IG1fdmVydGV4QXR0
cmliU3RhdGVbaV07Ci0gICAgICAgIGlmIChzdGF0ZS5idWZmZXJCaW5kaW5nID09IGJ1ZmZlcikg
ewotICAgICAgICAgICAgYnVmZmVyLT5vbkRldGFjaGVkKGNvbnRleHQoKS0+Z3JhcGhpY3NDb250
ZXh0M0QoKSk7CisgICAgICAgIGF1dG8mIHN0YXRlID0gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpXTsK
KyAgICAgICAgaWYgKHN0YXRlLmJ1ZmZlckJpbmRpbmcgPT0gJmJ1ZmZlcikgeworICAgICAgICAg
ICAgYnVmZmVyLm9uRGV0YWNoZWQoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpKTsKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFpICYmICFjb250ZXh0KCktPmlzR0xFUzJDb21w
bGlhbnQoKSkgewogICAgICAgICAgICAgICAgIHN0YXRlLmJ1ZmZlckJpbmRpbmcgPSBjb250ZXh0
KCktPm1fdmVydGV4QXR0cmliMEJ1ZmZlcjsKQEAgLTEwMiw4ICs5OSw3IEBAIHZvaWQgV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnVuYmluZEJ1ZmZlcihQYXNzUmVmUHRyPFdlYkdMQnVmZmVy
PiBidWZmZXIpCiAKIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0
dHJpYkRpdmlzb3IoR0MzRHVpbnQgaW5kZXgsIEdDM0R1aW50IGRpdmlzb3IpCiB7Ci0gICAgVmVy
dGV4QXR0cmliU3RhdGUmIHN0YXRlID0gbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF07Ci0gICAg
c3RhdGUuZGl2aXNvciA9IGRpdmlzb3I7CisgICAgbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF0u
ZGl2aXNvciA9IGRpdmlzb3I7CiB9CiAgICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaAppbmRleCAyOTBhYjhk
M2Q3MGYzMzdhODYzNWEyMzE2Mjc2ZDkxZGM0M2Q0YWE5Li4xMjc1NTMzZDhhMTQ2MTkxYTY1NWIy
OWEwN2ZiYjhmMTg3YTI4NzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNjUgKzMyLDQ3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UgOiBwdWJs
aWMgV2ViR0xDb250ZXh0T2JqZWN0IHsKIHB1YmxpYzoKLSAgICBlbnVtIFZBT1R5cGUgewotICAg
ICAgICBWQU9UeXBlRGVmYXVsdCwKLSAgICAgICAgVkFPVHlwZVVzZXIsCi0gICAgfTsKLSAgICAK
LSAgICB2aXJ0dWFsIH5XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSgpIHsgfQorICAgIGVudW0g
Y2xhc3MgVHlwZSB7IERlZmF1bHQsIFVzZXIgfTsKIAogICAgIC8vIENhY2hlZCB2YWx1ZXMgZm9y
IHZlcnRleCBhdHRyaWIgcmFuZ2UgY2hlY2tzCiAgICAgc3RydWN0IFZlcnRleEF0dHJpYlN0YXRl
IHsKLSAgICAgICAgVmVydGV4QXR0cmliU3RhdGUoKQotICAgICAgICAgICAgOiBlbmFibGVkKGZh
bHNlKQotICAgICAgICAgICAgLCBieXRlc1BlckVsZW1lbnQoMCkKLSAgICAgICAgICAgICwgc2l6
ZSg0KQotICAgICAgICAgICAgLCB0eXBlKEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVCkKLSAgICAg
ICAgICAgICwgbm9ybWFsaXplZChmYWxzZSkKLSAgICAgICAgICAgICwgc3RyaWRlKDE2KQotICAg
ICAgICAgICAgLCBvcmlnaW5hbFN0cmlkZSgwKQotICAgICAgICAgICAgLCBvZmZzZXQoMCkKLSAg
ICAgICAgICAgICwgZGl2aXNvcigwKQotICAgICAgICB7Ci0gICAgICAgIH0KLSAgICAgICAgCiAg
ICAgICAgIGJvb2wgaXNCb3VuZCgpIGNvbnN0IHsgcmV0dXJuIGJ1ZmZlckJpbmRpbmcgJiYgYnVm
ZmVyQmluZGluZy0+b2JqZWN0KCk7IH0KICAgICAgICAgYm9vbCB2YWxpZGF0ZUJpbmRpbmcoKSBj
b25zdCB7IHJldHVybiAhZW5hYmxlZCB8fCBpc0JvdW5kKCk7IH0KICAgICAgICAgCi0gICAgICAg
IGJvb2wgZW5hYmxlZDsKKyAgICAgICAgYm9vbCBlbmFibGVkIHsgZmFsc2UgfTsKICAgICAgICAg
UmVmUHRyPFdlYkdMQnVmZmVyPiBidWZmZXJCaW5kaW5nOwotICAgICAgICBHQzNEc2l6ZWkgYnl0
ZXNQZXJFbGVtZW50OwotICAgICAgICBHQzNEaW50IHNpemU7Ci0gICAgICAgIEdDM0RlbnVtIHR5
cGU7Ci0gICAgICAgIGJvb2wgbm9ybWFsaXplZDsKLSAgICAgICAgR0MzRHNpemVpIHN0cmlkZTsK
LSAgICAgICAgR0MzRHNpemVpIG9yaWdpbmFsU3RyaWRlOwotICAgICAgICBHQzNEaW50cHRyIG9m
ZnNldDsKLSAgICAgICAgR0MzRHVpbnQgZGl2aXNvcjsKKyAgICAgICAgR0MzRHNpemVpIGJ5dGVz
UGVyRWxlbWVudCB7IDAgfTsKKyAgICAgICAgR0MzRGludCBzaXplIHsgNCB9OworICAgICAgICBH
QzNEZW51bSB0eXBlIHsgR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUIH07CisgICAgICAgIGJvb2wg
bm9ybWFsaXplZCB7IGZhbHNlIH07CisgICAgICAgIEdDM0RzaXplaSBzdHJpZGUgeyAxNiB9Owor
ICAgICAgICBHQzNEc2l6ZWkgb3JpZ2luYWxTdHJpZGUgeyAwIH07CisgICAgICAgIEdDM0RpbnRw
dHIgb2Zmc2V0IHsgMCB9OworICAgICAgICBHQzNEdWludCBkaXZpc29yIHsgMCB9OwogICAgIH07
Ci0gICAgCi0gICAgYm9vbCBpc0RlZmF1bHRPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX3R5cGUg
PT0gVkFPVHlwZURlZmF1bHQ7IH0KLSAgICAKKworICAgIGJvb2wgaXNEZWZhdWx0T2JqZWN0KCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OkRlZmF1bHQ7IH0KKwogICAgIGJvb2wgaGFz
RXZlckJlZW5Cb3VuZCgpIGNvbnN0IHsgcmV0dXJuIG9iamVjdCgpICYmIG1faGFzRXZlckJlZW5C
b3VuZDsgfQogICAgIHZvaWQgc2V0SGFzRXZlckJlZW5Cb3VuZCgpIHsgbV9oYXNFdmVyQmVlbkJv
dW5kID0gdHJ1ZTsgfQotICAgIAotICAgIFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+IGdldEVsZW1l
bnRBcnJheUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXI7
IH0KLSAgICB2b2lkIHNldEVsZW1lbnRBcnJheUJ1ZmZlcihQYXNzUmVmUHRyPFdlYkdMQnVmZmVy
Pik7Ci0gICAgCisKKyAgICBXZWJHTEJ1ZmZlciogZ2V0RWxlbWVudEFycmF5QnVmZmVyKCkgY29u
c3QgeyByZXR1cm4gbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlci5nZXQoKTsgfQorICAgIHZvaWQg
c2V0RWxlbWVudEFycmF5QnVmZmVyKFdlYkdMQnVmZmVyKik7CisKICAgICBWZXJ0ZXhBdHRyaWJT
dGF0ZSYgZ2V0VmVydGV4QXR0cmliU3RhdGUoaW50IGluZGV4KSB7IHJldHVybiBtX3ZlcnRleEF0
dHJpYlN0YXRlW2luZGV4XTsgfQotICAgIHZvaWQgc2V0VmVydGV4QXR0cmliU3RhdGUoR0MzRHVp
bnQsIEdDM0RzaXplaSwgR0MzRGludCwgR0MzRGVudW0sIEdDM0Rib29sZWFuLCBHQzNEc2l6ZWks
IEdDM0RpbnRwdHIsIFBhc3NSZWZQdHI8V2ViR0xCdWZmZXI+KTsKLSAgICB2b2lkIHVuYmluZEJ1
ZmZlcihQYXNzUmVmUHRyPFdlYkdMQnVmZmVyPik7Ci0gICAgCisgICAgdm9pZCBzZXRWZXJ0ZXhB
dHRyaWJTdGF0ZShHQzNEdWludCwgR0MzRHNpemVpLCBHQzNEaW50LCBHQzNEZW51bSwgR0MzRGJv
b2xlYW4sIEdDM0RzaXplaSwgR0MzRGludHB0ciwgV2ViR0xCdWZmZXImKTsKKyAgICB2b2lkIHVu
YmluZEJ1ZmZlcihXZWJHTEJ1ZmZlciYpOworCiAgICAgdm9pZCBzZXRWZXJ0ZXhBdHRyaWJEaXZp
c29yKEdDM0R1aW50IGluZGV4LCBHQzNEdWludCBkaXZpc29yKTsKIAogcHJvdGVjdGVkOgotICAg
IFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmLCBW
QU9UeXBlKTsKKyAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJiwgVHlwZSk7CiAgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29u
dGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGUgPSAwOwotICAgIAotICAgIFZBT1R5
cGUgbV90eXBlOwotICAgIGJvb2wgbV9oYXNFdmVyQmVlbkJvdW5kOworCisgICAgVHlwZSBtX3R5
cGU7CisgICAgYm9vbCBtX2hhc0V2ZXJCZWVuQm91bmQgeyBmYWxzZSB9OwogICAgIFJlZlB0cjxX
ZWJHTEJ1ZmZlcj4gbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlcjsKICAgICBWZWN0b3I8VmVydGV4
QXR0cmliU3RhdGU+IG1fdmVydGV4QXR0cmliU3RhdGU7CiB9OwotICAgIAorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwCmluZGV4IDVmM2I2NTU3YTcwYjVjYjg0MmMwYzJl
YTc3ODE3OGFmYTY0YzAxZmYuLmFmNTU2NWNkOTQ0NDI0YjUzYjgzNTdkYjJjMDE5MGJlMWNlNWI0
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMuY3BwCkBAIC0zNCwzNyArMzQsMzUgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1SZWY8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdE9FUzo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCwgVkFPVHlw
ZSB0eXBlKQorUmVmPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IFdlYkdMVmVydGV4QXJyYXlP
YmplY3RPRVM6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBUeXBl
IHR5cGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUyhjdHgsIHR5cGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJHTFZlcnRleEFy
cmF5T2JqZWN0T0VTKGNvbnRleHQsIHR5cGUpKTsKIH0KIAotV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUzo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
JiBjdHgsIFZBT1R5cGUgdHlwZSkKLSAgICA6IFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKGN0
eCwgdHlwZSkKK1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OldlYkdMVmVydGV4QXJyYXlPYmpl
Y3RPRVMoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCwgVHlwZSB0eXBlKQorICAg
IDogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoY29udGV4dCwgdHlwZSkKIHsKLSAgICBFeHRl
bnNpb25zM0QmIGV4dGVuc2lvbnMgPSBjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCktPmdl
dEV4dGVuc2lvbnMoKTsKLSAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgVkFPVHlwZURl
ZmF1bHQ6CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBUeXBlOjpEZWZhdWx0OgogICAg
ICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBzZXRPYmplY3QoZXh0ZW5zaW9ucy5j
cmVhdGVWZXJ0ZXhBcnJheU9FUygpKTsKKyAgICBjYXNlIFR5cGU6OlVzZXI6CisgICAgICAgIHNl
dE9iamVjdCh0aGlzLT5jb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCktPmdldEV4dGVuc2lv
bnMoKS5jcmVhdGVWZXJ0ZXhBcnJheU9FUygpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQog
CiBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjp+V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUygp
CiB7Ci0gICAgZGVsZXRlT2JqZWN0KDApOworICAgIGRlbGV0ZU9iamVjdChudWxscHRyKTsKIH0K
IAogdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpkZWxldGVPYmplY3RJbXBsKEdyYXBo
aWNzQ29udGV4dDNEKiBjb250ZXh0M2QsIFBsYXRmb3JtM0RPYmplY3Qgb2JqZWN0KQogewotICAg
IEV4dGVuc2lvbnMzRCYgZXh0ZW5zaW9ucyA9IGNvbnRleHQzZC0+Z2V0RXh0ZW5zaW9ucygpOwog
ICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBWQU9UeXBlRGVmYXVsdDoKKyAgICBjYXNl
IFR5cGU6OkRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGV4
dGVuc2lvbnMuZGVsZXRlVmVydGV4QXJyYXlPRVMob2JqZWN0KTsKKyAgICBjYXNlIFR5cGU6OlVz
ZXI6CisgICAgICAgIGNvbnRleHQzZC0+Z2V0RXh0ZW5zaW9ucygpLmRlbGV0ZVZlcnRleEFycmF5
T0VTKG9iamVjdCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oCmluZGV4IGQw
OGQyMjNlMzU3MDY2OTRlOTFjYWU2YWNkYzhjNGJjYTlmMTY3ZTkuLmY5YTJhNThlYzI3NDdjMmQ1
MDYzMGI1YjZmNmNmZjA1YTYzNjBjNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgKQEAgLTI1LDE5ICsyNSwxNyBA
QAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCi0jaW5jbHVkZSAi
V2ViR0xDb250ZXh0T2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJh
c2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTIGZpbmFsIDogcHVibGljIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IGNyZWF0ZShXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVkFPVHlwZSk7CisgICAgc3RhdGljIFJlZjxXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFR5
cGUpOwogICAgIHZpcnR1YWwgfldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKTsKIHByaXZhdGU6
Ci0gICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
JiwgVkFPVHlwZSk7Ci0gICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNE
KiwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUyhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVHlwZSk7CisgICAgdm9pZCBkZWxldGVP
YmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCkgZmluYWw7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMv
RmlsZUljb25Mb2FkZXIuY3BwCmluZGV4IDliY2Q0N2Y3NzllMDUxZmFhNDA1OTBjNzkzZmIyM2Zj
NTFiMmRlMWUuLjI3NWQ2ZWM0NGUwNTg0NTZlZWZmZmQxY2VmMjhkNWE3NWY4YjFmMTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM3LDEzICszNywxMyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiB2b2lkIEZpbGVJY29uTG9hZGVyOjppbnZhbGlkYXRlKCkKIHsKICAg
ICBBU1NFUlQobV9jbGllbnQpOwotICAgIG1fY2xpZW50ID0gMDsKKyAgICBtX2NsaWVudCA9IG51
bGxwdHI7CiB9CiAKLXZvaWQgRmlsZUljb25Mb2FkZXI6Om5vdGlmeUZpbmlzaGVkKFBhc3NSZWZQ
dHI8SWNvbj4gaWNvbikKK3ZvaWQgRmlsZUljb25Mb2FkZXI6Omljb25Mb2FkZWQoUmVmUHRyPElj
b24+JiYgaWNvbikKIHsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT51cGRh
dGVSZW5kZXJpbmcoaWNvbik7CisgICAgICAgIG1fY2xpZW50LT5pY29uTG9hZGVkKFdURk1vdmUo
aWNvbikpOwogfQogCiBGaWxlSWNvbkxvYWRlcjo6RmlsZUljb25Mb2FkZXIoRmlsZUljb25Mb2Fk
ZXJDbGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMv
RmlsZUljb25Mb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvZm9ybXMvRmlsZUljb25Mb2Fk
ZXIuaAppbmRleCAzNTMxM2RlM2EyODUzNjBkOTg2N2I4MmE1YWFjYmMwN2QwNWU3YmQ1Li43ZGE3
M2ZjOTJlMTZjZTNhY2RiZTQ4YjJhZTNjNDAxMzY5MDgyODMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2Zvcm1zL0ZpbGVJY29uTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9mb3Jtcy9GaWxlSWNvbkxvYWRlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM0LDEzICszNCwxMiBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIEZpbGVJY29uTG9hZGVyOwogY2xhc3MgSWNvbjsKIAogY2xhc3MgRmls
ZUljb25Mb2FkZXJDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkZpbGVJY29uTG9hZGVy
Q2xpZW50KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJlbmRlcmluZyhQYXNzUmVmUHRy
PEljb24+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGljb25Mb2FkZWQoUmVmUHRyPEljb24+JiYp
ID0gMDsKIH07CiAKIGNsYXNzIEZpbGVJY29uTG9hZGVyIHsKQEAgLTQ4LDcgKzQ3LDcgQEAgcHVi
bGljOgogICAgIGV4cGxpY2l0IEZpbGVJY29uTG9hZGVyKEZpbGVJY29uTG9hZGVyQ2xpZW50Jik7
CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG5vdGlm
eUZpbmlzaGVkKFBhc3NSZWZQdHI8SWNvbj4pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaWNv
bkxvYWRlZChSZWZQdHI8SWNvbj4mJik7CiAKIHByaXZhdGU6CiAgICAgRmlsZUljb25Mb2FkZXJD
bGllbnQqIG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTENvbnN0cnVjdGlvblNpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TENvbnN0cnVjdGlvblNpdGUuY3BwCmluZGV4IDQ2N2ExMzRkMzZiYTUzYTcyYmMyZDcwYTJlYjk3
NjgxZWI4ZjkzZmIuLmRjMWFkNzNhMWIwMDRiMzZjOWU0NzU1NGIxMTg0MTNlYjBiZjYwYzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0
ZS5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMTc0LDcgKzE3NCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBleGVjdXRlVGFzayhIVE1M
Q29uc3RydWN0aW9uU2l0ZVRhc2smIHRhc2spCiAKIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6
OmF0dGFjaExhdGVyKENvbnRhaW5lck5vZGUmIHBhcmVudCwgUmVmPE5vZGU+JiYgY2hpbGQsIGJv
b2wgc2VsZkNsb3NpbmcpCiB7Ci0gICAgQVNTRVJUKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQo
bV9wYXJzZXJDb250ZW50UG9saWN5KSB8fCAhaXM8RWxlbWVudD4oY2hpbGQuZ2V0KCkpIHx8ICF0
b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGRvd25jYXN0PEVsZW1lbnQ+KGNoaWxkLnB0cigpKSkp
OworICAgIEFTU0VSVChzY3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKG1fcGFyc2VyQ29udGVudFBv
bGljeSkgfHwgIWlzPEVsZW1lbnQ+KGNoaWxkLmdldCgpKSB8fCAhaXNTY3JpcHRFbGVtZW50KGRv
d25jYXN0PEVsZW1lbnQ+KGNoaWxkLmdldCgpKSkpOwogICAgIEFTU0VSVChwbHVnaW5Db250ZW50
SXNBbGxvd2VkKG1fcGFyc2VyQ29udGVudFBvbGljeSkgfHwgIWNoaWxkLT5pc1BsdWdpbkVsZW1l
bnQoKSk7CiAKICAgICBpZiAoc2hvdWxkRm9zdGVyUGFyZW50KCkpIHsKQEAgLTU0MSw3ICs1NDEs
NyBAQCB2b2lkIEhUTUxDb25zdHJ1Y3Rpb25TaXRlOjppbnNlcnRGb3JlaWduRWxlbWVudChBdG9t
aWNIVE1MVG9rZW4mJiB0b2tlbiwgY29uc3QgQQogICAgIG5vdEltcGxlbWVudGVkKCk7IC8vIHBh
cnNlRXJyb3Igd2hlbiB4bWxucyBvciB4bWxuczp4bGluayBhcmUgd3JvbmcuCiAKICAgICBhdXRv
IGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KHRva2VuLCBuYW1lc3BhY2VVUkkpOwotICAgIGlmIChz
Y3JpcHRpbmdDb250ZW50SXNBbGxvd2VkKG1fcGFyc2VyQ29udGVudFBvbGljeSkgfHwgIXRvU2Ny
aXB0RWxlbWVudElmUG9zc2libGUoZWxlbWVudC5wdHIoKSkpCisgICAgaWYgKHNjcmlwdGluZ0Nv
bnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSB8fCAhaXNTY3JpcHRFbGVtZW50
KGVsZW1lbnQuZ2V0KCkpKQogICAgICAgICBhdHRhY2hMYXRlcihjdXJyZW50Tm9kZSgpLCBlbGVt
ZW50LmNvcHlSZWYoKSwgdG9rZW4uc2VsZkNsb3NpbmcoKSk7CiAgICAgaWYgKCF0b2tlbi5zZWxm
Q2xvc2luZygpKQogICAgICAgICBtX29wZW5FbGVtZW50cy5wdXNoKEhUTUxTdGFja0l0ZW06OmNy
ZWF0ZShXVEZNb3ZlKGVsZW1lbnQpLCBXVEZNb3ZlKHRva2VuKSwgbmFtZXNwYWNlVVJJKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApp
bmRleCBhY2VhMGFhYWQyY2RmNDgxN2E2NWU3YWY5ZDdjOWZkMzU3ZGZjMzM3Li41MTYzZjFhNWY3
ODI0ODNhOTAyNGVjNmRhOTE1M2QwOTZiMDM0YzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1
ZGUgIkhUTUxUcmVlQnVpbGRlci5oIgogI2luY2x1ZGUgIkhUTUxVbmtub3duRWxlbWVudC5oIgog
I2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgorI2luY2x1ZGUgIlNjcmlwdEVs
ZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yMDUsNyArMjA2LDcgQEAgdm9p
ZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnJ1blNjcmlwdHNGb3JQYXVzZWRUcmVlQnVpbGRlcigpCiAg
ICAgICAgIEFTU0VSVCghbV90cmVlQnVpbGRlci0+aGFzUGFyc2VyQmxvY2tpbmdTY3JpcHRXb3Jr
KCkpOwogICAgICAgICAvLyBXZSB3aWxsIG5vdCBoYXZlIGEgc2NyaXB0UnVubmVyIHdoZW4gcGFy
c2luZyBhIERvY3VtZW50RnJhZ21lbnQuCiAgICAgICAgIGlmIChtX3NjcmlwdFJ1bm5lcikKLSAg
ICAgICAgICAgIG1fc2NyaXB0UnVubmVyLT5leGVjdXRlKFdURk1vdmUoc2NyaXB0RWxlbWVudCks
IHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgICAgICAgICAgbV9zY3JpcHRSdW5uZXItPmV4ZWN1
dGUoc2NyaXB0RWxlbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBzY3JpcHRTdGFydFBvc2l0aW9uKTsK
ICAgICB9CiB9CiAKQEAgLTUwMCw3ICs1MDEsNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6
d2F0Y2hGb3JMb2FkKFBlbmRpbmdTY3JpcHQmIHBlbmRpbmdTY3JpcHQpCiAgICAgLy8gc2V0Q2xp
ZW50IHdvdWxkIGNhbGwgbm90aWZ5RmluaXNoZWQgaWYgdGhlIGxvYWQgd2VyZSBjb21wbGV0ZS4K
ICAgICAvLyBDYWxsZXJzIGRvIG5vdCBleHBlY3QgdG8gYmUgcmUtZW50ZXJlZCBmcm9tIHRoaXMg
Y2FsbCwgc28gdGhleSBzaG91bGQKICAgICAvLyBub3QgYW4gYWxyZWFkeS1sb2FkZWQgUGVuZGlu
Z1NjcmlwdC4KLSAgICBwZW5kaW5nU2NyaXB0LnNldENsaWVudCh0aGlzKTsKKyAgICBwZW5kaW5n
U2NyaXB0LnNldENsaWVudCgqdGhpcyk7CiB9CiAKIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpz
dG9wV2F0Y2hpbmdGb3JMb2FkKFBlbmRpbmdTY3JpcHQmIHBlbmRpbmdTY3JpcHQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwCmluZGV4IGMyNTZi
NDI5NTZjZTQ4MTFhOTRmMGNiMzRiOGVkNzI1NzI1ZThmNTQuLmMxZjQyYzIyNWQwMDc3OWFiNDQ1
YzExMjUxZDM3M2E0ODdmMmNkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxTY3JpcHRSdW5uZXIuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzAsNyArNzEsNyBAQCBIVE1MU2NyaXB0UnVubmVyOjp+
SFRNTFNjcmlwdFJ1bm5lcigpCiAKIHZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZGV0YWNoKCkKIHsK
LSAgICBtX2RvY3VtZW50ID0gMDsKKyAgICBtX2RvY3VtZW50ID0gbnVsbHB0cjsKIH0KIAogc3Rh
dGljIFVSTCBkb2N1bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlvbihEb2N1bWVudCogZG9jdW1lbnQp
CkBAIC05OSwyOSArMTAwLDE4IEBAIGJvb2wgSFRNTFNjcmlwdFJ1bm5lcjo6aXNQZW5kaW5nU2Ny
aXB0UmVhZHkoY29uc3QgUGVuZGluZ1NjcmlwdCYgc2NyaXB0KQogICAgIHJldHVybiB0cnVlOwog
fQogCi12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OmV4ZWN1dGVQYXJzaW5nQmxvY2tpbmdTY3JpcHQo
KQotewotICAgIEFTU0VSVChtX2RvY3VtZW50KTsKLSAgICBBU1NFUlQoIWlzRXhlY3V0aW5nU2Ny
aXB0KCkpOwotICAgIEFTU0VSVChtX2RvY3VtZW50LT5oYXZlU3R5bGVzaGVldHNMb2FkZWQoKSk7
Ci0gICAgQVNTRVJUKGlzUGVuZGluZ1NjcmlwdFJlYWR5KCptX3BhcnNlckJsb2NraW5nU2NyaXB0
KSk7Ci0KLSAgICBJbnNlcnRpb25Qb2ludFJlY29yZCBpbnNlcnRpb25Qb2ludFJlY29yZChtX2hv
c3QuaW5wdXRTdHJlYW0oKSk7Ci0gICAgZXhlY3V0ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRjaEV2
ZW50KFdURk1vdmUobV9wYXJzZXJCbG9ja2luZ1NjcmlwdCkpOwotfQotCi12b2lkIEhUTUxTY3Jp
cHRSdW5uZXI6OmV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVudChSZWZQdHI8UGVu
ZGluZ1NjcmlwdD4gcGVuZGluZ1NjcmlwdCkKK3ZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0
ZVBlbmRpbmdTY3JpcHRBbmREaXNwYXRjaEV2ZW50KFBlbmRpbmdTY3JpcHQmIHBlbmRpbmdTY3Jp
cHQpCiB7CiAgICAgLy8gU3RvcCB3YXRjaGluZyBsb2FkcyBiZWZvcmUgZXhlY3V0ZVNjcmlwdCB0
byBwcmV2ZW50IHJlY3Vyc2lvbiBpZiB0aGUgc2NyaXB0IHJlbG9hZHMgaXRzZWxmLgotICAgIGlm
IChwZW5kaW5nU2NyaXB0LT53YXRjaGluZ0ZvckxvYWQoKSkKLSAgICAgICAgc3RvcFdhdGNoaW5n
Rm9yTG9hZCgqcGVuZGluZ1NjcmlwdCk7CisgICAgaWYgKHBlbmRpbmdTY3JpcHQud2F0Y2hpbmdG
b3JMb2FkKCkpCisgICAgICAgIHN0b3BXYXRjaGluZ0ZvckxvYWQocGVuZGluZ1NjcmlwdCk7CiAK
ICAgICBpZiAoIWlzRXhlY3V0aW5nU2NyaXB0KCkpCiAgICAgICAgIE1pY3JvdGFza1F1ZXVlOjpt
YWluVGhyZWFkUXVldWUoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOwogCi0gICAgaWYg
KGF1dG8qIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5n
U2NyaXB0LT5lbGVtZW50KCkpKSB7CisgICAgewogICAgICAgICBOZXN0aW5nTGV2ZWxJbmNyZW1l
bnRlciBuZXN0aW5nTGV2ZWxJbmNyZW1lbnRlcihtX3NjcmlwdE5lc3RpbmdMZXZlbCk7Ci0gICAg
ICAgIHNjcmlwdEVsZW1lbnQtPmV4ZWN1dGVQZW5kaW5nU2NyaXB0KCpwZW5kaW5nU2NyaXB0KTsK
KyAgICAgICAgcGVuZGluZ1NjcmlwdC5lbGVtZW50KCkuZXhlY3V0ZVBlbmRpbmdTY3JpcHQocGVu
ZGluZ1NjcmlwdCk7CiAgICAgfQogICAgIEFTU0VSVCghaXNFeGVjdXRpbmdTY3JpcHQoKSk7CiB9
CkBAIC0xNDAsMTUgKzEzMCwxNCBAQCB2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnN0b3BXYXRjaGlu
Z0ZvckxvYWQoUGVuZGluZ1NjcmlwdCYgcGVuZGluZ1NjcmlwdCkKIAogLy8gVGhpcyBmdW5jdGlv
biBzaG91bGQgbWF0Y2ggMTAuMi41LjExICJBbiBlbmQgdGFnIHdob3NlIHRhZyBuYW1lIGlzICdz
Y3JpcHQnIgogLy8gU2NyaXB0IGhhbmRsaW5nIGxpdmVzIG91dHNpZGUgdGhlIHRyZWUgYnVpbGRl
ciB0byBrZWVwIHRoZSBlYWNoIGNsYXNzIHNpbXBsZS4KLXZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6
ZXhlY3V0ZShQYXNzUmVmUHRyPEVsZW1lbnQ+IHNjcmlwdEVsZW1lbnQsIGNvbnN0IFRleHRQb3Np
dGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKK3ZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0
ZShSZWY8U2NyaXB0RWxlbWVudD4mJiBlbGVtZW50LCBjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlw
dFN0YXJ0UG9zaXRpb24pCiB7Ci0gICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOwogICAgIC8vIEZJ
WE1FOiBJZiBzY3JpcHRpbmcgaXMgZGlzYWJsZWQsIGFsd2F5cyBqdXN0IHJldHVybi4KIAogICAg
IGJvb2wgaGFkUHJlbG9hZFNjYW5uZXIgPSBtX2hvc3QuaGFzUHJlbG9hZFNjYW5uZXIoKTsKIAog
ICAgIC8vIFRyeSB0byBleGVjdXRlIHRoZSBzY3JpcHQgZ2l2ZW4gdG8gdXMuCi0gICAgcnVuU2Ny
aXB0KHNjcmlwdEVsZW1lbnQuZ2V0KCksIHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgIHJ1blNj
cmlwdChlbGVtZW50LmdldCgpLCBzY3JpcHRTdGFydFBvc2l0aW9uKTsKIAogICAgIGlmIChoYXNQ
YXJzZXJCbG9ja2luZ1NjcmlwdCgpKSB7CiAgICAgICAgIGlmIChpc0V4ZWN1dGluZ1NjcmlwdCgp
KQpAQCAtMTY3LDggKzE1NiwxMyBAQCBib29sIEhUTUxTY3JpcHRSdW5uZXI6Omhhc1BhcnNlckJs
b2NraW5nU2NyaXB0KCkgY29uc3QKIAogdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlUGFy
c2luZ0Jsb2NraW5nU2NyaXB0cygpCiB7Ci0gICAgd2hpbGUgKGhhc1BhcnNlckJsb2NraW5nU2Ny
aXB0KCkgJiYgaXNQZW5kaW5nU2NyaXB0UmVhZHkoKm1fcGFyc2VyQmxvY2tpbmdTY3JpcHQpKQot
ICAgICAgICBleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0KCk7CisgICAgd2hpbGUgKGhhc1Bh
cnNlckJsb2NraW5nU2NyaXB0KCkgJiYgaXNQZW5kaW5nU2NyaXB0UmVhZHkoKm1fcGFyc2VyQmxv
Y2tpbmdTY3JpcHQpKSB7CisgICAgICAgIEFTU0VSVChtX2RvY3VtZW50KTsKKyAgICAgICAgQVNT
RVJUKCFpc0V4ZWN1dGluZ1NjcmlwdCgpKTsKKyAgICAgICAgQVNTRVJUKG1fZG9jdW1lbnQtPmhh
dmVTdHlsZXNoZWV0c0xvYWRlZCgpKTsKKyAgICAgICAgSW5zZXJ0aW9uUG9pbnRSZWNvcmQgaW5z
ZXJ0aW9uUG9pbnRSZWNvcmQobV9ob3N0LmlucHV0U3RyZWFtKCkpOworICAgICAgICBleGVjdXRl
UGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQobV9wYXJzZXJCbG9ja2luZ1NjcmlwdC5yZWxl
YXNlTm9uTnVsbCgpLmdldCgpKTsKKyAgICB9CiB9CiAKIHZvaWQgSFRNTFNjcmlwdFJ1bm5lcjo6
ZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9yTG9hZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2NyaXB0
KQpAQCAtMjAxLDcgKzE5NSw3IEBAIGJvb2wgSFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlw
dHNXYWl0aW5nRm9yUGFyc2luZygpCiAgICAgICAgICAgICB3YXRjaEZvckxvYWQobV9zY3JpcHRz
VG9FeGVjdXRlQWZ0ZXJQYXJzaW5nLmZpcnN0KCkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICB9Ci0gICAgICAgIGV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hFdmVu
dChtX3NjcmlwdHNUb0V4ZWN1dGVBZnRlclBhcnNpbmcudGFrZUZpcnN0KCkpOworICAgICAgICBl
eGVjdXRlUGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQobV9zY3JpcHRzVG9FeGVjdXRlQWZ0
ZXJQYXJzaW5nLnRha2VGaXJzdCgpLmdldCgpKTsKICAgICAgICAgLy8gRklYTUU6IFdoYXQgaXMg
dGhpcyBtX2RvY3VtZW50IGNoZWNrIGZvcj8KICAgICAgICAgaWYgKCFtX2RvY3VtZW50KQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjA5LDE4ICsyMDMsMTcgQEAgYm9vbCBIVE1MU2Ny
aXB0UnVubmVyOjpleGVjdXRlU2NyaXB0c1dhaXRpbmdGb3JQYXJzaW5nKCkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotc3RhdGljIFJlZjxQZW5kaW5nU2NyaXB0PiByZXF1ZXN0UGVuZGluZ1Njcmlw
dChFbGVtZW50KiBzY3JpcHQpCitzdGF0aWMgUmVmPFBlbmRpbmdTY3JpcHQ+IHJlcXVlc3RQZW5k
aW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQpCiB7Ci0gICAgYXV0byYgc2Ny
aXB0RWxlbWVudCA9ICp0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKHNjcmlwdCk7CiAgICAgQVNT
RVJUKHNjcmlwdEVsZW1lbnQud2lsbEJlUGFyc2VyRXhlY3V0ZWQoKSk7CiAgICAgQVNTRVJUKHNj
cmlwdEVsZW1lbnQubG9hZGFibGVTY3JpcHQoKSk7Ci0gICAgcmV0dXJuIFBlbmRpbmdTY3JpcHQ6
OmNyZWF0ZSgqc2NyaXB0LCAqc2NyaXB0RWxlbWVudC5sb2FkYWJsZVNjcmlwdCgpKTsKKyAgICBy
ZXR1cm4gUGVuZGluZ1NjcmlwdDo6Y3JlYXRlKHNjcmlwdEVsZW1lbnQsICpzY3JpcHRFbGVtZW50
LmxvYWRhYmxlU2NyaXB0KCkpOwogfQogCi12b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3RQ
YXJzaW5nQmxvY2tpbmdTY3JpcHQoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgSFRNTFNjcmlwdFJ1
bm5lcjo6cmVxdWVzdFBhcnNpbmdCbG9ja2luZ1NjcmlwdChTY3JpcHRFbGVtZW50JiBzY3JpcHRF
bGVtZW50KQogewogICAgIEFTU0VSVCghbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCk7Ci0gICAgbV9w
YXJzZXJCbG9ja2luZ1NjcmlwdCA9IHJlcXVlc3RQZW5kaW5nU2NyaXB0KGVsZW1lbnQpOworICAg
IG1fcGFyc2VyQmxvY2tpbmdTY3JpcHQgPSByZXF1ZXN0UGVuZGluZ1NjcmlwdChzY3JpcHRFbGVt
ZW50KTsKICAgICBBU1NFUlQobV9wYXJzZXJCbG9ja2luZ1NjcmlwdC0+bmVlZHNMb2FkaW5nKCkp
OwogCiAgICAgLy8gV2Ugb25seSBjYXJlIGFib3V0IGEgbG9hZCBjYWxsYmFjayBpZiBMb2FkYWJs
ZVNjcmlwdCBpcyBub3QgYWxyZWFkeQpAQCAtMjMwLDU1ICsyMjMsNDQgQEAgdm9pZCBIVE1MU2Ny
aXB0UnVubmVyOjpyZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KEVsZW1lbnQqIGVsZW1lbnQp
CiAgICAgICAgIHdhdGNoRm9yTG9hZCgqbV9wYXJzZXJCbG9ja2luZ1NjcmlwdCk7CiB9CiAKLXZv
aWQgSFRNTFNjcmlwdFJ1bm5lcjo6cmVxdWVzdERlZmVycmVkU2NyaXB0KEVsZW1lbnQqIGVsZW1l
bnQpCit2b2lkIEhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3REZWZlcnJlZFNjcmlwdChTY3JpcHRF
bGVtZW50JiBzY3JpcHRFbGVtZW50KQogewotICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IHJlcXVl
c3RQZW5kaW5nU2NyaXB0KGVsZW1lbnQpOworICAgIGF1dG8gcGVuZGluZ1NjcmlwdCA9IHJlcXVl
c3RQZW5kaW5nU2NyaXB0KHNjcmlwdEVsZW1lbnQpOwogICAgIEFTU0VSVChwZW5kaW5nU2NyaXB0
LT5uZWVkc0xvYWRpbmcoKSk7CiAgICAgbV9zY3JpcHRzVG9FeGVjdXRlQWZ0ZXJQYXJzaW5nLmFw
cGVuZChXVEZNb3ZlKHBlbmRpbmdTY3JpcHQpKTsKIH0KIAogLy8gVGhpcyBtZXRob2QgaXMgbWVh
bnQgdG8gbWF0Y2ggdGhlIEhUTUw1IGRlZmluaXRpb24gb2YgInJ1bm5pbmcgYSBzY3JpcHQiCiAv
LyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRp
cGFnZS9zY3JpcHRpbmctMS5odG1sI3J1bm5pbmctYS1zY3JpcHQKLXZvaWQgSFRNTFNjcmlwdFJ1
bm5lcjo6cnVuU2NyaXB0KEVsZW1lbnQqIHNjcmlwdCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3Jp
cHRTdGFydFBvc2l0aW9uKQordm9pZCBIVE1MU2NyaXB0UnVubmVyOjpydW5TY3JpcHQoU2NyaXB0
RWxlbWVudCYgc2NyaXB0RWxlbWVudCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBv
c2l0aW9uKQogewogICAgIEFTU0VSVChtX2RvY3VtZW50KTsKICAgICBBU1NFUlQoIWhhc1BhcnNl
ckJsb2NraW5nU2NyaXB0KCkpOwotICAgIHsKLSAgICAgICAgU2NyaXB0RWxlbWVudCogc2NyaXB0
RWxlbWVudCA9IHRvU2NyaXB0RWxlbWVudElmUG9zc2libGUoc2NyaXB0KTsKLQotICAgICAgICAv
LyBUaGlzIGNvbnRhaW5zIGJvdGggYW5kIEFTU0VSVElPTiBhbmQgYSBudWxsIGNoZWNrIHNpbmNl
IHdlIHNob3VsZCBub3QKLSAgICAgICAgLy8gYmUgZ2V0dGluZyBpbnRvIHRoZSBjYXNlIG9mIGEg
bnVsbCBzY3JpcHQgZWxlbWVudCwgYnV0IHNlZW0gdG8gYmUgZnJvbQotICAgICAgICAvLyB0aW1l
IHRvIHRpbWUuIFRoZSBhc3NlcnRpb24gaXMgbGVmdCBpbiB0byBoZWxwIGZpbmQgdGhvc2UgY2Fz
ZXMgYW5kCi0gICAgICAgIC8vIGlzIGJlaW5nIHRyYWNrZWQgYnkgPGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDU1OT4uCi0gICAgICAgIEFTU0VSVChzY3JpcHRFbGVt
ZW50KTsKLSAgICAgICAgaWYgKCFzY3JpcHRFbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgIC8vIEZJWE1FOiBUaGlzIG1heSBiZSB0b28gYWdyZXNzaXZlIGFzIHdlIGFsd2F5
cyBkZWxpdmVyIG11dGF0aW9ucyBhdAotICAgICAgICAvLyBldmVyeSBzY3JpcHQgZWxlbWVudCwg
ZXZlbiBpZiBpdCdzIG5vdCByZWFkeSB0byBleGVjdXRlIHlldC4gVGhlcmUncwotICAgICAgICAv
LyB1bmZvcnR1YW50ZWx5IG5vIG9idmlvdXMgd2F5IHRvIHRlbGwgaWYgcHJlcGFyZVNjcmlwdCBp
cyBnb2luZyB0bwotICAgICAgICAvLyBleGVjdXRlIHRoZSBzY3JpcHQgZnJvbSBvdXQgaGVyZS4K
LSAgICAgICAgaWYgKCFpc0V4ZWN1dGluZ1NjcmlwdCgpKQotICAgICAgICAgICAgTWljcm90YXNr
UXVldWU6Om1haW5UaHJlYWRRdWV1ZSgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7Ci0K
LSAgICAgICAgSW5zZXJ0aW9uUG9pbnRSZWNvcmQgaW5zZXJ0aW9uUG9pbnRSZWNvcmQobV9ob3N0
LmlucHV0U3RyZWFtKCkpOwotICAgICAgICBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlciBuZXN0aW5n
TGV2ZWxJbmNyZW1lbnRlcihtX3NjcmlwdE5lc3RpbmdMZXZlbCk7CiAKLSAgICAgICAgc2NyaXB0
RWxlbWVudC0+cHJlcGFyZVNjcmlwdChzY3JpcHRTdGFydFBvc2l0aW9uKTsKLQotICAgICAgICBp
ZiAoIXNjcmlwdEVsZW1lbnQtPndpbGxCZVBhcnNlckV4ZWN1dGVkKCkpCi0gICAgICAgICAgICBy
ZXR1cm47CisgICAgLy8gRklYTUU6IFRoaXMgbWF5IGJlIHRvbyBhZ3Jlc3NpdmUgYXMgd2UgYWx3
YXlzIGRlbGl2ZXIgbXV0YXRpb25zIGF0CisgICAgLy8gZXZlcnkgc2NyaXB0IGVsZW1lbnQsIGV2
ZW4gaWYgaXQncyBub3QgcmVhZHkgdG8gZXhlY3V0ZSB5ZXQuIFRoZXJlJ3MKKyAgICAvLyB1bmZv
cnR1bmF0ZWx5IG5vIG9idmlvdXMgd2F5IHRvIHRlbGwgaWYgcHJlcGFyZVNjcmlwdCBpcyBnb2lu
ZyB0bworICAgIC8vIGV4ZWN1dGUgdGhlIHNjcmlwdCBiZWZvcmUgY2FsbGluZyBpdC4KKyAgICBp
ZiAoIWlzRXhlY3V0aW5nU2NyaXB0KCkpCisgICAgICAgIE1pY3JvdGFza1F1ZXVlOjptYWluVGhy
ZWFkUXVldWUoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOwogCi0gICAgICAgIGlmIChz
Y3JpcHRFbGVtZW50LT53aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlzaGVkUGFyc2luZygpKQot
ICAgICAgICAgICAgcmVxdWVzdERlZmVycmVkU2NyaXB0KHNjcmlwdCk7Ci0gICAgICAgIGVsc2Ug
aWYgKHNjcmlwdEVsZW1lbnQtPnJlYWR5VG9CZVBhcnNlckV4ZWN1dGVkKCkpIHsKLSAgICAgICAg
ICAgIGlmIChtX3NjcmlwdE5lc3RpbmdMZXZlbCA9PSAxKQotICAgICAgICAgICAgICAgIG1fcGFy
c2VyQmxvY2tpbmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoKnNjcmlwdCwgc2NyaXB0
U3RhcnRQb3NpdGlvbik7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgc2NyaXB0
RWxlbWVudC0+ZXhlY3V0ZUNsYXNzaWNTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHQtPnRl
eHRDb250ZW50KCksIGRvY3VtZW50VVJMRm9yU2NyaXB0RXhlY3V0aW9uKG1fZG9jdW1lbnQpLCBz
Y3JpcHRTdGFydFBvc2l0aW9uKSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgcmVxdWVz
dFBhcnNpbmdCbG9ja2luZ1NjcmlwdChzY3JpcHQpOwotICAgIH0KKyAgICBJbnNlcnRpb25Qb2lu
dFJlY29yZCBpbnNlcnRpb25Qb2ludFJlY29yZChtX2hvc3QuaW5wdXRTdHJlYW0oKSk7CisgICAg
TmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgbmVzdGluZ0xldmVsSW5jcmVtZW50ZXIobV9zY3JpcHRO
ZXN0aW5nTGV2ZWwpOworCisgICAgc2NyaXB0RWxlbWVudC5wcmVwYXJlU2NyaXB0KHNjcmlwdFN0
YXJ0UG9zaXRpb24pOworCisgICAgaWYgKCFzY3JpcHRFbGVtZW50LndpbGxCZVBhcnNlckV4ZWN1
dGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChzY3JpcHRFbGVtZW50LndpbGxFeGVj
dXRlV2hlbkRvY3VtZW50RmluaXNoZWRQYXJzaW5nKCkpCisgICAgICAgIHJlcXVlc3REZWZlcnJl
ZFNjcmlwdChzY3JpcHRFbGVtZW50KTsKKyAgICBlbHNlIGlmIChzY3JpcHRFbGVtZW50LnJlYWR5
VG9CZVBhcnNlckV4ZWN1dGVkKCkpIHsKKyAgICAgICAgaWYgKG1fc2NyaXB0TmVzdGluZ0xldmVs
ID09IDEpCisgICAgICAgICAgICBtX3BhcnNlckJsb2NraW5nU2NyaXB0ID0gUGVuZGluZ1Njcmlw
dDo6Y3JlYXRlKHNjcmlwdEVsZW1lbnQsIHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBzY3JpcHRFbGVtZW50LmV4ZWN1dGVDbGFzc2ljU2NyaXB0KFNjcmlw
dFNvdXJjZUNvZGUoc2NyaXB0RWxlbWVudC5lbGVtZW50KCkudGV4dENvbnRlbnQoKSwgZG9jdW1l
bnRVUkxGb3JTY3JpcHRFeGVjdXRpb24obV9kb2N1bWVudCksIHNjcmlwdFN0YXJ0UG9zaXRpb24p
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmVxdWVzdFBhcnNpbmdCbG9ja2luZ1NjcmlwdChzY3Jp
cHRFbGVtZW50KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFNjcmlwdFJ1bm5lci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNj
cmlwdFJ1bm5lci5oCmluZGV4IDc2ODAwZDcxM2NlN2QyZTQ2MzVhNjYyMzViMTY3YzE5ZjQ1N2M4
MDMuLmM4Njc0N2Q5MWJhZTA1ZTQyNzY2ZGRmZmVkNTlhMDgzZTdhYTFmZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmgKQEAgLTEsNSArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiwxMyArMzMsMTIg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBFbGVtZW50
OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBIVE1MU2NyaXB0UnVubmVySG9zdDsKIGNsYXNzIFNjcmlw
dFNvdXJjZUNvZGU7CiAKIGNsYXNzIEhUTUxTY3JpcHRSdW5uZXIgewotICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEhUTUxTY3JpcHRSdW5uZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBIVE1MU2NyaXB0UnVubmVy
KERvY3VtZW50JiwgSFRNTFNjcmlwdFJ1bm5lckhvc3QmKTsKICAgICB+SFRNTFNjcmlwdFJ1bm5l
cigpOwpAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZXRhY2goKTsKIAogICAg
IC8vIFByb2Nlc3NlcyB0aGUgcGFzc2VkIGluIHNjcmlwdCBhbmQgYW55IHBlbmRpbmcgc2NyaXB0
cyBpZiBwb3NzaWJsZS4KLSAgICB2b2lkIGV4ZWN1dGUoUGFzc1JlZlB0cjxFbGVtZW50PiBzY3Jp
cHRUb1Byb2Nlc3MsIGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbik7Cisg
ICAgdm9pZCBleGVjdXRlKFJlZjxTY3JpcHRFbGVtZW50PiYmLCBjb25zdCBUZXh0UG9zaXRpb24m
IHNjcmlwdFN0YXJ0UG9zaXRpb24pOwogCiAgICAgdm9pZCBleGVjdXRlU2NyaXB0c1dhaXRpbmdG
b3JMb2FkKFBlbmRpbmdTY3JpcHQmKTsKICAgICBib29sIGhhc1NjcmlwdHNXYWl0aW5nRm9yU3R5
bGVzaGVldHMoKSBjb25zdCB7IHJldHVybiBtX2hhc1NjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVl
dHM7IH0KQEAgLTU5LDE2ICs1OSwxNCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEZyYW1lKiBm
cmFtZSgpIGNvbnN0OwogCi0gICAgdm9pZCBleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2NyaXB0KCk7
Ci0gICAgdm9pZCBleGVjdXRlUGVuZGluZ1NjcmlwdEFuZERpc3BhdGNoRXZlbnQoUmVmUHRyPFBl
bmRpbmdTY3JpcHQ+KTsKKyAgICB2b2lkIGV4ZWN1dGVQZW5kaW5nU2NyaXB0QW5kRGlzcGF0Y2hF
dmVudChQZW5kaW5nU2NyaXB0Jik7CiAgICAgdm9pZCBleGVjdXRlUGFyc2luZ0Jsb2NraW5nU2Ny
aXB0cygpOwogCi0gICAgdm9pZCByZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KEVsZW1lbnQq
KTsKLSAgICB2b2lkIHJlcXVlc3REZWZlcnJlZFNjcmlwdChFbGVtZW50Kik7CisgICAgdm9pZCBy
ZXF1ZXN0UGFyc2luZ0Jsb2NraW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQmKTsKKyAgICB2b2lkIHJl
cXVlc3REZWZlcnJlZFNjcmlwdChTY3JpcHRFbGVtZW50Jik7CiAKLSAgICB2b2lkIHJ1blNjcmlw
dChFbGVtZW50KiwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAg
ICB2b2lkIHJ1blNjcmlwdChTY3JpcHRFbGVtZW50JiwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3Jp
cHRTdGFydFBvc2l0aW9uKTsKIAotICAgIC8vIEhlbHBlcnMgZm9yIGRlYWxpbmcgd2l0aCBIVE1M
U2NyaXB0UnVubmVySG9zdAogICAgIHZvaWQgd2F0Y2hGb3JMb2FkKFBlbmRpbmdTY3JpcHQmKTsK
ICAgICB2b2lkIHN0b3BXYXRjaGluZ0ZvckxvYWQoUGVuZGluZ1NjcmlwdCYpOwogICAgIGJvb2wg
aXNQZW5kaW5nU2NyaXB0UmVhZHkoY29uc3QgUGVuZGluZ1NjcmlwdCYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKaW5kZXggNDUyNGMxZWFhY2Zk
OTMyOTAyNmM2NmNiNzJhYjU0YjAwOGY2MmE0Yy4uZDRmODRkMmZhNTVkNTk5MGU2Zjc3NWNkZjBl
NDRhMzIwYzdhYzYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJl
ZUJ1aWxkZXIuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDEwICszNSwxMiBAQAogI2luY2x1ZGUgIkhUTUxPcHRHcm91
cEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxQYXJzZXJJZGlvbXMuaCIKKyNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxUYWJsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0N1c3RvbUVsZW1lbnRJbnRlcmZh
Y2UuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKKyNpbmNsdWRlICJTVkdTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiWExpbmtO
YW1lcy5oIgogI2luY2x1ZGUgIlhNTE5TTmFtZXMuaCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgpA
QCAtNTcsMTAgKzU5LDEyIEBAIEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rpb25EYXRhOjpDdXN0b21F
bGVtZW50Q29uc3RydWN0aW9uRGF0YShSZWY8SlNDdXN0b21FbGVtZW50CiAgICAgOiBlbGVtZW50
SW50ZXJmYWNlKFdURk1vdmUoY3VzdG9tRWxlbWVudEludGVyZmFjZSkpCiAgICAgLCBuYW1lKG5h
bWUpCiAgICAgLCBhdHRyaWJ1dGVzKFdURk1vdmUoYXR0cmlidXRlcykpCi17IH0KK3sKK30KIAog
Q3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGE6On5DdXN0b21FbGVtZW50Q29uc3RydWN0aW9u
RGF0YSgpCi17IH0KK3sKK30KIAogbmFtZXNwYWNlIHsKIApAQCAtMzE4LDcgKzMyMiw3IEBAIGlu
bGluZSBIVE1MU3RhY2tJdGVtJiBIVE1MVHJlZUJ1aWxkZXI6OkZyYWdtZW50UGFyc2luZ0NvbnRl
eHQ6OmNvbnRleHRFbGVtZW50U3RhCiAgICAgcmV0dXJuICptX2NvbnRleHRFbGVtZW50U3RhY2tJ
dGVtOwogfQogCi1SZWZQdHI8RWxlbWVudD4gSFRNTFRyZWVCdWlsZGVyOjp0YWtlU2NyaXB0VG9Q
cm9jZXNzKFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKK1JlZlB0cjxTY3JpcHRF
bGVtZW50PiBIVE1MVHJlZUJ1aWxkZXI6OnRha2VTY3JpcHRUb1Byb2Nlc3MoVGV4dFBvc2l0aW9u
JiBzY3JpcHRTdGFydFBvc2l0aW9uKQogewogICAgIEFTU0VSVCghbV9kZXN0cm95ZWQpOwogCkBA
IC0yMDU3LDcgKzIwNjEsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhB
dG9taWNIVE1MVG9rZW4mJiB0b2tlbikKICAgICAgICAgICAgIC8vIFBhdXNlIG91cnNlbHZlcyBz
byB0aGF0IHBhcnNpbmcgc3RvcHMgdW50aWwgdGhlIHNjcmlwdCBjYW4gYmUgcHJvY2Vzc2VkIGJ5
IHRoZSBjYWxsZXIuCiAgICAgICAgICAgICBBU1NFUlQobV90cmVlLmN1cnJlbnRTdGFja0l0ZW0o
KS5oYXNUYWdOYW1lKHNjcmlwdFRhZykpOwogICAgICAgICAgICAgaWYgKHNjcmlwdGluZ0NvbnRl
bnRJc0FsbG93ZWQobV90cmVlLnBhcnNlckNvbnRlbnRQb2xpY3koKSkpCi0gICAgICAgICAgICAg
ICAgbV9zY3JpcHRUb1Byb2Nlc3MgPSAmbV90cmVlLmN1cnJlbnRFbGVtZW50KCk7CisgICAgICAg
ICAgICAgICAgbV9zY3JpcHRUb1Byb2Nlc3MgPSAmZG93bmNhc3Q8SFRNTFNjcmlwdEVsZW1lbnQ+
KG1fdHJlZS5jdXJyZW50RWxlbWVudCgpKTsKICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVu
dHMoKS5wb3AoKTsKICAgICAgICAgICAgIG1faW5zZXJ0aW9uTW9kZSA9IG1fb3JpZ2luYWxJbnNl
cnRpb25Nb2RlOwogCkBAIC0yNzg3LDcgKzI3OTEsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudChBdG9taWNIVE1MVG9rZW4mJiB0b2tlbikKIAog
ICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09IFNWR05hbWVzOjpzY3JpcHRUYWcgJiYgbV90cmVl
LmN1cnJlbnRTdGFja0l0ZW0oKS5oYXNUYWdOYW1lKFNWR05hbWVzOjpzY3JpcHRUYWcpKSB7CiAg
ICAgICAgICAgICBpZiAoc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChtX3RyZWUucGFyc2VyQ29u
dGVudFBvbGljeSgpKSkKLSAgICAgICAgICAgICAgICBtX3NjcmlwdFRvUHJvY2VzcyA9ICZtX3Ry
ZWUuY3VycmVudEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBtX3NjcmlwdFRvUHJvY2VzcyA9
ICZkb3duY2FzdDxTVkdTY3JpcHRFbGVtZW50PihtX3RyZWUuY3VycmVudEVsZW1lbnQoKSk7CiAg
ICAgICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCkucG9wKCk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxUcmVlQnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmgKaW5kZXggZDcwOTI5ZjYwYTYwYmM2NTk2ZjY3OTBjZDAwZGVmMTZmOTg1NTlhNS4uYWVj
Y2FiNDVkYTU1MGNlMzlhNjg5NjgwYjBjZjQ0Y2M1MDJmMWYxZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsNiArMzUsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTsKIGNsYXNz
IEhUTUxEb2N1bWVudFBhcnNlcjsKK2NsYXNzIFNjcmlwdEVsZW1lbnQ7CiAKIHN0cnVjdCBDdXN0
b21FbGVtZW50Q29uc3RydWN0aW9uRGF0YSB7CiAgICAgQ3VzdG9tRWxlbWVudENvbnN0cnVjdGlv
bkRhdGEoUmVmPEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZT4mJiwgY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBWZWN0b3I8QXR0cmlidXRlPiYmKTsKQEAgLTYyLDcgKzYzLDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaGFzUGFyc2VyQmxvY2tpbmdTY3JpcHRXb3JrKCkgY29uc3Q7CiAKICAgICAvLyBN
dXN0IGJlIGNhbGxlZCB0byB0YWtlIHRoZSBwYXJzZXItYmxvY2tpbmcgc2NyaXB0IGJlZm9yZSBj
YWxsaW5nIHRoZSBwYXJzZXIgYWdhaW4uCi0gICAgUmVmUHRyPEVsZW1lbnQ+IHRha2VTY3JpcHRU
b1Byb2Nlc3MoVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKTsKKyAgICBSZWZQdHI8
U2NyaXB0RWxlbWVudD4gdGFrZVNjcmlwdFRvUHJvY2VzcyhUZXh0UG9zaXRpb24mIHNjcmlwdFN0
YXJ0UG9zaXRpb24pOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEN1c3RvbUVsZW1lbnRDb25zdHJ1
Y3Rpb25EYXRhPiB0YWtlQ3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGEoKSB7IHJldHVybiBX
VEZNb3ZlKG1fY3VzdG9tRWxlbWVudFRvQ29uc3RydWN0KTsgfQogICAgIHZvaWQgZGlkQ3JlYXRl
Q3VzdG9tT3JDYWxsYmFja0VsZW1lbnQoUmVmPEVsZW1lbnQ+JiYsIEN1c3RvbUVsZW1lbnRDb25z
dHJ1Y3Rpb25EYXRhJik7CkBAIC0yMDYsNyArMjA3LDcgQEAgcHJpdmF0ZToKICAgICAvLyBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNjb25jZXB0LXBl
bmRpbmctdGFibGUtY2hhci10b2tlbnMKICAgICBTdHJpbmdCdWlsZGVyIG1fcGVuZGluZ1RhYmxl
Q2hhcmFjdGVyczsKIAotICAgIFJlZlB0cjxFbGVtZW50PiBtX3NjcmlwdFRvUHJvY2VzczsgLy8g
PHNjcmlwdD4gdGFnIHdoaWNoIG5lZWRzIHByb2Nlc3NpbmcgYmVmb3JlIHJlc3VtaW5nIHRoZSBw
YXJzZXIuCisgICAgUmVmUHRyPFNjcmlwdEVsZW1lbnQ+IG1fc2NyaXB0VG9Qcm9jZXNzOyAvLyA8
c2NyaXB0PiB0YWcgd2hpY2ggbmVlZHMgcHJvY2Vzc2luZyBiZWZvcmUgcmVzdW1pbmcgdGhlIHBh
cnNlci4KICAgICBUZXh0UG9zaXRpb24gbV9zY3JpcHRUb1Byb2Nlc3NTdGFydFBvc2l0aW9uOyAv
LyBTdGFydGluZyBsaW5lIG51bWJlciBvZiB0aGUgc2NyaXB0IHRhZyBuZWVkaW5nIHByb2Nlc3Np
bmcuCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3VzdG9tRWxlbWVudENvbnN0cnVjdGlvbkRhdGE+
IG1fY3VzdG9tRWxlbWVudFRvQ29uc3RydWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAKaW5kZXggYWQ1ZjZlNzhlMzgxYWFkY2NjNmI5
MWJhOTdjYTQyNTU4MDRjYjk3MC4uZjk4ODI1YjIwNjA5N2YyYzRhOGMxZmU4NGI0MGI2ZDhmMGE1
ZWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQ
YXJzZXIuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiVGV4dERvY3VtZW50UGFyc2Vy
LmgiCiAKICNpbmNsdWRlICJIVE1MVHJlZUJ1aWxkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRFbGVt
ZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKaW5kZXggM2Y0M2UwNGQ1ZGVlYjdkMjkz
MTE2ZThkZWMyM2M3YjBiZjdmYjc3OS4uOWI1MGJhM2IxNDM2OGMyM2QxMzY2MTFlZjhjOTQ4NmRj
YmVjYzM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRv
ckRlbGVnYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9y
RGVsZWdhdGUuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBH
b29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTQ1LDcgKzQ2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBYU1NBdWRpdG9y
RGVsZWdhdGU6OlhTU0F1ZGl0b3JEZWxlZ2F0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBt
X2RvY3VtZW50KGRvY3VtZW50KQotICAgICwgbV9kaWRTZW5kTm90aWZpY2F0aW9ucyhmYWxzZSkK
IHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogfQpAQCAtNjksMjIgKzY5LDIyIEBAIHN0
YXRpYyBpbmxpbmUgU3RyaW5nIGJ1aWxkQ29uc29sZUVycm9yKGNvbnN0IFhTU0luZm8mIHhzc0lu
Zm8pCiAgICAgcmV0dXJuIG1lc3NhZ2UudG9TdHJpbmcoKTsKIH0KIAotUGFzc1JlZlB0cjxGb3Jt
RGF0YT4gWFNTQXVkaXRvckRlbGVnYXRlOjpnZW5lcmF0ZVZpb2xhdGlvblJlcG9ydChjb25zdCBY
U1NJbmZvJiB4c3NJbmZvKQorUmVmPEZvcm1EYXRhPiBYU1NBdWRpdG9yRGVsZWdhdGU6OmdlbmVy
YXRlVmlvbGF0aW9uUmVwb3J0KGNvbnN0IFhTU0luZm8mIHhzc0luZm8pCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKIAotICAgIEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciA9IG1fZG9j
dW1lbnQuZnJhbWUoKS0+bG9hZGVyKCk7CisgICAgYXV0byYgZnJhbWVMb2FkZXIgPSBtX2RvY3Vt
ZW50LmZyYW1lKCktPmxvYWRlcigpOwogICAgIFN0cmluZyBodHRwQm9keTsKICAgICBpZiAoZnJh
bWVMb2FkZXIuZG9jdW1lbnRMb2FkZXIoKSkgewotICAgICAgICBpZiAoRm9ybURhdGEqIGZvcm1E
YXRhID0gZnJhbWVMb2FkZXIuZG9jdW1lbnRMb2FkZXIoKS0+b3JpZ2luYWxSZXF1ZXN0KCkuaHR0
cEJvZHkoKSkKKyAgICAgICAgaWYgKGF1dG8qIGZvcm1EYXRhID0gZnJhbWVMb2FkZXIuZG9jdW1l
bnRMb2FkZXIoKS0+b3JpZ2luYWxSZXF1ZXN0KCkuaHR0cEJvZHkoKSkKICAgICAgICAgICAgIGh0
dHBCb2R5ID0gZm9ybURhdGEtPmZsYXR0ZW5Ub1N0cmluZygpOwogICAgIH0KIAotICAgIFJlZjxJ
bnNwZWN0b3JPYmplY3Q+IHJlcG9ydERldGFpbHMgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgp
OworICAgIGF1dG8gcmVwb3J0RGV0YWlscyA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAg
ICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJyZXF1ZXN0LXVybCIsIHhzc0luZm8ubV9vcmln
aW5hbFVSTCk7CiAgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJyZXF1ZXN0LWJvZHkiLCBo
dHRwQm9keSk7CiAKLSAgICBSZWY8SW5zcGVjdG9yT2JqZWN0PiByZXBvcnRPYmplY3QgPSBJbnNw
ZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGF1dG8gcmVwb3J0T2JqZWN0ID0gSW5zcGVjdG9y
T2JqZWN0OjpjcmVhdGUoKTsKICAgICByZXBvcnRPYmplY3QtPnNldE9iamVjdCgieHNzLXJlcG9y
dCIsIFdURk1vdmUocmVwb3J0RGV0YWlscykpOwogCiAgICAgcmV0dXJuIEZvcm1EYXRhOjpjcmVh
dGUocmVwb3J0T2JqZWN0LT50b0pTT05TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmgKaW5kZXggMGFlMjc0
YjMxOTJkZmE0N2E2M2NlOTZhMmE5Nzk0NjVlYzg4MDhlZi4uNjdhMzJlZDkzMGQ3ZDlkZDRkYWM0
MDg5MjIwYmRmM2YyYWQ3NmU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvWFNTQXVkaXRvckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
WFNTQXVkaXRvckRlbGVnYXRlLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDEzIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjcsMTMgKzI4LDE0IEBACiAKICNpbmNsdWRlICJVUkwuaCIKICNp
bmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKIGNsYXNz
IEZvcm1EYXRhOwogCisvLyBGSVhNRTogU2hvdWxkIGNoYW5nZSBpbnRvIGEgc3RydWN0LgorLy8g
RklYTUU6IFNob3VsZCByZXR1cm4gYnkgdmFsdWUgaW5zdGVhZCBvZiB1c2luZyBhIHVuaXF1ZV9w
dHIuCiBjbGFzcyBYU1NJbmZvIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKQEAgLTUxLDcgKzUzLDYgQEAgcHVibGljOgogfTsKIAogY2xhc3MgWFNTQXVkaXRvckRlbGVn
YXRlIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShYU1NBdWRpdG9yRGVsZWdhdGUpOwogcHVi
bGljOgogICAgIGV4cGxpY2l0IFhTU0F1ZGl0b3JEZWxlZ2F0ZShEb2N1bWVudCYpOwogCkBAIC01
OSwxMCArNjAsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVwb3J0VVJMKGNvbnN0IFVSTCYg
dXJsKSB7IG1fcmVwb3J0VVJMID0gdXJsOyB9CiAKIHByaXZhdGU6Ci0gICAgUGFzc1JlZlB0cjxG
b3JtRGF0YT4gZ2VuZXJhdGVWaW9sYXRpb25SZXBvcnQoY29uc3QgWFNTSW5mbyYpOworICAgIFJl
ZjxGb3JtRGF0YT4gZ2VuZXJhdGVWaW9sYXRpb25SZXBvcnQoY29uc3QgWFNTSW5mbyYpOwogCiAg
ICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7Ci0gICAgYm9vbCBtX2RpZFNlbmROb3RpZmljYXRpb25z
OworICAgIGJvb2wgbV9kaWRTZW5kTm90aWZpY2F0aW9ucyB7IGZhbHNlIH07CiAgICAgVVJMIG1f
cmVwb3J0VVJMOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9B
dWRpb1RyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5jcHAK
aW5kZXggOGMzNTZmNzkxNWQ0OThjZTM0MTJmNzk4ODJmOGQwNjBiMDg1NjE5Mi4uZWViMDU1Mzdm
NjQ1MzRmNjU1NTdhNmNmNDRmMzgwMWQxZDM2YmJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL0F1ZGlvVHJhY2suY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykg
MjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMCwxMyArMzAsMTAgQEAKICAqLwog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXVkaW9UcmFjay5oIgogCiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiQXVkaW9UcmFjay5oIgotCi0jaW5jbHVkZSAi
QXVkaW9UcmFja0xpc3QuaCIKLSNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkhUTUxNZWRp
YUVsZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNzgsMTAg
Kzc1LDEwIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgQXVkaW9UcmFjazo6Y29tbWVudGFyeUtleXdv
cmQoKQogICAgIHJldHVybiBjb21tZW50YXJ5OwogfQogCi1BdWRpb1RyYWNrOjpBdWRpb1RyYWNr
KEF1ZGlvVHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4g
dHJhY2tQcml2YXRlKQotICAgIDogTWVkaWFUcmFja0Jhc2UoTWVkaWFUcmFja0Jhc2U6OkF1ZGlv
VHJhY2ssIHRyYWNrUHJpdmF0ZS0+aWQoKSwgdHJhY2tQcml2YXRlLT5sYWJlbCgpLCB0cmFja1By
aXZhdGUtPmxhbmd1YWdlKCkpCi0gICAgLCBtX2VuYWJsZWQodHJhY2tQcml2YXRlLT5lbmFibGVk
KCkpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCitBdWRpb1RyYWNrOjpBdWRpb1RyYWNrKEF1ZGlv
VHJhY2tDbGllbnQmIGNsaWVudCwgQXVkaW9UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKKyAg
ICA6IE1lZGlhVHJhY2tCYXNlKE1lZGlhVHJhY2tCYXNlOjpBdWRpb1RyYWNrLCB0cmFja1ByaXZh
dGUuaWQoKSwgdHJhY2tQcml2YXRlLmxhYmVsKCksIHRyYWNrUHJpdmF0ZS5sYW5ndWFnZSgpKQor
ICAgICwgbV9lbmFibGVkKHRyYWNrUHJpdmF0ZS5lbmFibGVkKCkpCisgICAgLCBtX2NsaWVudCgm
Y2xpZW50KQogICAgICwgbV9wcml2YXRlKHRyYWNrUHJpdmF0ZSkKIHsKICAgICBtX3ByaXZhdGUt
PnNldENsaWVudCh0aGlzKTsKQEAgLTkzLDgwICs5MCw3MCBAQCBBdWRpb1RyYWNrOjp+QXVkaW9U
cmFjaygpCiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiB9CiAKLXZvaWQgQXVk
aW9UcmFjazo6c2V0UHJpdmF0ZShQYXNzUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPiB0cmFja1By
aXZhdGUpCit2b2lkIEF1ZGlvVHJhY2s6OnNldFByaXZhdGUoQXVkaW9UcmFja1ByaXZhdGUmIHRy
YWNrUHJpdmF0ZSkKIHsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKLSAgICBBU1NFUlQodHJhY2tQ
cml2YXRlKTsKLQotICAgIGlmIChtX3ByaXZhdGUgPT0gdHJhY2tQcml2YXRlKQorICAgIGlmICht
X3ByaXZhdGUucHRyKCkgPT0gJnRyYWNrUHJpdmF0ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
bV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiAgICAgbV9wcml2YXRlID0gdHJhY2tQcml2
YXRlOworICAgIG1fcHJpdmF0ZS0+c2V0RW5hYmxlZChtX2VuYWJsZWQpOwogICAgIG1fcHJpdmF0
ZS0+c2V0Q2xpZW50KHRoaXMpOwogCi0gICAgbV9wcml2YXRlLT5zZXRFbmFibGVkKG1fZW5hYmxl
ZCk7CiAgICAgdXBkYXRlS2luZEZyb21Qcml2YXRlKCk7CiB9CiAKIGJvb2wgQXVkaW9UcmFjazo6
aXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkgY29uc3QKIHsKICAgICByZXR1
cm4gdmFsdWUgPT0gYWx0ZXJuYXRpdmVLZXl3b3JkKCkKKyAgICAgICAgfHwgdmFsdWUgPT0gY29t
bWVudGFyeUtleXdvcmQoKQogICAgICAgICB8fCB2YWx1ZSA9PSBkZXNjcmlwdGlvbktleXdvcmQo
KQogICAgICAgICB8fCB2YWx1ZSA9PSBtYWluS2V5d29yZCgpCiAgICAgICAgIHx8IHZhbHVlID09
IG1haW5EZXNjS2V5d29yZCgpCi0gICAgICAgIHx8IHZhbHVlID09IHRyYW5zbGF0aW9uS2V5d29y
ZCgpCi0gICAgICAgIHx8IHZhbHVlID09IGNvbW1lbnRhcnlLZXl3b3JkKCk7CisgICAgICAgIHx8
IHZhbHVlID09IHRyYW5zbGF0aW9uS2V5d29yZCgpOwogfQogCi12b2lkIEF1ZGlvVHJhY2s6OnNl
dEVuYWJsZWQoY29uc3QgYm9vbCBlbmFibGVkKQordm9pZCBBdWRpb1RyYWNrOjpzZXRFbmFibGVk
KGJvb2wgZW5hYmxlZCkKIHsKICAgICBpZiAobV9lbmFibGVkID09IGVuYWJsZWQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CiAgICAgbV9wcml2YXRlLT5zZXRF
bmFibGVkKGVuYWJsZWQpOwotCi0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+
YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKHRoaXMpOwogfQogCi1zaXplX3QgQXVkaW9UcmFjazo6
aW5iYW5kVHJhY2tJbmRleCgpCitzaXplX3QgQXVkaW9UcmFjazo6aW5iYW5kVHJhY2tJbmRleCgp
IGNvbnN0CiB7Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
dHJhY2tJbmRleCgpOwogfQogCi12b2lkIEF1ZGlvVHJhY2s6OmVuYWJsZWRDaGFuZ2VkKEF1ZGlv
VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIGJvb2wgZW5hYmxlZCkKK3ZvaWQgQXVkaW9UcmFj
azo6ZW5hYmxlZENoYW5nZWQoYm9vbCBlbmFibGVkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJh
Y2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKKyAgICBpZiAobV9lbmFibGVk
ID09IGVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKwogICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7
CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5hdWRpb1RyYWNrRW5hYmxl
ZENoYW5nZWQodGhpcyk7CisgICAgICAgIG1fY2xpZW50LT5hdWRpb1RyYWNrRW5hYmxlZENoYW5n
ZWQoKnRoaXMpOwogfQogCi12b2lkIEF1ZGlvVHJhY2s6OmlkQ2hhbmdlZChUcmFja1ByaXZhdGVC
YXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCit2b2lkIEF1ZGlvVHJh
Y2s6OmlkQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKQogewotICAgIEFTU0VSVF9VTlVT
RUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRJZChp
ZCk7CiB9CiAKLXZvaWQgQXVkaW9UcmFjazo6bGFiZWxDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2Uq
IHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkKK3ZvaWQgQXVkaW9UcmFj
azo6bGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpCiB7Ci0gICAgQVNTRVJU
X1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwogICAgIHNl
dExhYmVsKGxhYmVsKTsKIH0KIAotdm9pZCBBdWRpb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoVHJh
Y2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdl
KQordm9pZCBBdWRpb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBs
YW5ndWFnZSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRl
ID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2UpOwogfQogCi12b2lkIEF1
ZGlvVHJhY2s6OndpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlKQordm9p
ZCBBdWRpb1RyYWNrOjp3aWxsUmVtb3ZlKCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJp
dmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgbWVkaWFFbGVtZW50KCktPnJl
bW92ZUF1ZGlvVHJhY2soKnRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0F1ZGlvVHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9U
cmFjay5oCmluZGV4IDYxYzViMmNkNDI5OGQ1NzRmN2Y3MTViYzFjMTkyMDA3OTFkZDIzYWEuLjA3
Yzc3OTRmYTA5M2Y2ZDI4YTI5NDE3M2I4NTMzYjdiYzJjOWI5OWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svQXVkaW9UcmFjay5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDkgKzI5LDcgQEAKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCiAKICNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgotI2luY2x1
ZGUgIlBsYXRmb3JtRXhwb3J0TWFjcm9zLmgiCiAjaW5jbHVkZSAiVHJhY2tCYXNlLmgiCi0jaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NDAsMTIgKzM4LDEyIEBAIGNsYXNzIEF1ZGlvVHJhY2s7CiBjbGFzcyBBdWRpb1RyYWNrQ2xpZW50
IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BdWRpb1RyYWNrQ2xpZW50KCkgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayYpID0gMDsK
IH07CiAKLWNsYXNzIEF1ZGlvVHJhY2sgZmluYWwgOiBwdWJsaWMgTWVkaWFUcmFja0Jhc2UsIHB1
YmxpYyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCB7CitjbGFzcyBBdWRpb1RyYWNrIGZpbmFsIDog
cHVibGljIE1lZGlhVHJhY2tCYXNlLCBwcml2YXRlIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEF1ZGlvVHJhY2s+IGNyZWF0ZShBdWRpb1RyYWNrQ2xp
ZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkK
KyAgICBzdGF0aWMgUmVmPEF1ZGlvVHJhY2s+IGNyZWF0ZShBdWRpb1RyYWNrQ2xpZW50JiBjbGll
bnQsIEF1ZGlvVHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiAgICAgewogICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrKGNsaWVudCwgdHJhY2tQcml2YXRlKSk7CiAgICAg
fQpAQCAtNTcsMzkgKzU1LDM3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3Ry
aW5nJiBtYWluRGVzY0tleXdvcmQoKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiB0
cmFuc2xhdGlvbktleXdvcmQoKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjb21t
ZW50YXJ5S2V5d29yZCgpOwotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZGVmYXVsdEtpbmRLZXl3
b3JkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZW1wdHlBdG9tOyB9CiAKLSAgICBib29sIGVu
YWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2VuYWJsZWQ7IH0KKyAgICBib29sIGVu
YWJsZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2VuYWJsZWQ7IH0KICAgICB2b2lkIHNldEVu
YWJsZWQoY29uc3QgYm9vbCk7CiAKLSAgICB2b2lkIGNsZWFyQ2xpZW50KCkgb3ZlcnJpZGUgeyBt
X2NsaWVudCA9IG51bGxwdHI7IH0KKyAgICB2b2lkIGNsZWFyQ2xpZW50KCkgZmluYWwgeyBtX2Ns
aWVudCA9IG51bGxwdHI7IH0KICAgICBBdWRpb1RyYWNrQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudDsgfQogCi0gICAgc2l6ZV90IGluYmFuZFRyYWNrSW5kZXgoKTsKKyAg
ICBzaXplX3QgaW5iYW5kVHJhY2tJbmRleCgpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRQcml2YXRl
KFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+KTsKLQotcHJvdGVjdGVkOgotICAgIEF1ZGlv
VHJhY2soQXVkaW9UcmFja0NsaWVudCosIFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+KTsK
KyAgICB2b2lkIHNldFByaXZhdGUoQXVkaW9UcmFja1ByaXZhdGUmKTsKIAogcHJpdmF0ZToKLSAg
ICBib29sIGlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIEF1ZGlvVHJhY2soQXVkaW9UcmFja0NsaWVudCYsIEF1ZGlvVHJhY2tQcml2YXRlJik7CisK
KyAgICBib29sIGlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IGZpbmFsOwog
CiAgICAgLy8gQXVkaW9UcmFja1ByaXZhdGVDbGllbnQKLSAgICB2b2lkIGVuYWJsZWRDaGFuZ2Vk
KEF1ZGlvVHJhY2tQcml2YXRlKiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbmFibGVkQ2hh
bmdlZChib29sKSBmaW5hbDsKIAogICAgIC8vIFRyYWNrUHJpdmF0ZUJhc2VDbGllbnQKLSAgICB2
b2lkIGlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0
b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJp
dmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxS
ZW1vdmUoVHJhY2tQcml2YXRlQmFzZSopIG92ZXJyaWRlOworICAgIHZvaWQgaWRDaGFuZ2VkKGNv
bnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgbGFiZWxDaGFuZ2VkKGNvbnN0IEF0
b21pY1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21p
Y1N0cmluZyYpIGZpbmFsOworICAgIHZvaWQgd2lsbFJlbW92ZSgpIGZpbmFsOwogCiAgICAgdm9p
ZCB1cGRhdGVLaW5kRnJvbVByaXZhdGUoKTsKIAogICAgIGJvb2wgbV9lbmFibGVkOwogICAgIEF1
ZGlvVHJhY2tDbGllbnQqIG1fY2xpZW50OwogCi0gICAgUmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRl
PiBtX3ByaXZhdGU7CisgICAgUmVmPEF1ZGlvVHJhY2tQcml2YXRlPiBtX3ByaXZhdGU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0luYmFuZERhdGFUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAppbmRleCBiZTU4Y2M4MTE5YmZlNmQ2MGYwMzBiYTAx
OTNjMGNkZTUyODQ5MTk4Li42ZDk1NDAxYjRlYjMyNzIzZTgyNTAzNDFlOTZlOTFjNGYzZTlkMjdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZERhdGFUZXh0VHJh
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0YVRleHRUcmFj
ay5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE0IENhYmxlIFRl
bGV2aXNpb24gTGFicyBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsMzUgKzMzLDMzIEBACiAjaW5jbHVkZSAiSFRNTE1lZGlh
RWxlbWVudC5oIgogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGUuaCIKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCi0jaW5jbHVkZSA8cnVudGltZS9BcnJheUJ1ZmZlci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVJlZjxJbmJhbmREYXRhVGV4dFRyYWNrPiBJbmJhbmREYXRhVGV4dFRy
YWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xp
ZW50KiBjbGllbnQsIFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiYmIHRyYWNrUHJpdmF0
ZSkKK2lubGluZSBJbmJhbmREYXRhVGV4dFRyYWNrOjpJbmJhbmREYXRhVGV4dFRyYWNrKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgOiBJbmJhbmRUZXh0VHJhY2so
Y29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSW5iYW5kRGF0YVRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIFdURk1vdmUodHJhY2tQcml2
YXRlKSkpOwogfQogCi1JbmJhbmREYXRhVGV4dFRyYWNrOjpJbmJhbmREYXRhVGV4dFRyYWNrKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBS
ZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4mJiB0cmFja1ByaXZhdGUpCi0gICAgOiBJbmJh
bmRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCitSZWY8SW5iYW5kRGF0
YVRleHRUcmFjaz4gSW5iYW5kRGF0YVRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlJiB0cmFja1ByaXZhdGUpCiB7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5k
RGF0YVRleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkpOwogfQogCiBJbmJh
bmREYXRhVGV4dFRyYWNrOjp+SW5iYW5kRGF0YVRleHRUcmFjaygpCiB7CiB9CiAKLXZvaWQgSW5i
YW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29u
c3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqIGRh
dGEsIHVuc2lnbmVkIGxlbmd0aCkKK3ZvaWQgSW5iYW5kRGF0YVRleHRUcmFjazo6YWRkRGF0YUN1
ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9p
ZCogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIGFkZEN1ZShEYXRhQ3VlOjpjcmVhdGUo
KnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3RhcnQsIGVuZCwgZGF0YSwgbGVuZ3RoKSk7CiB9
CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKIAotdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNr
OjphZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0
YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1S
ZXByZXNlbnRhdGlvbj4gcHJwUGxhdGZvcm1WYWx1ZSwgY29uc3QgU3RyaW5nJiB0eXBlKQordm9p
ZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRp
b24+JiYgcGxhdGZvcm1WYWx1ZSwgY29uc3QgU3RyaW5nJiB0eXBlKQogewotICAgIFJlZlB0cjxT
ZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4gcGxhdGZvcm1WYWx1ZSA9IHBycFBsYXRm
b3JtVmFsdWU7Ci0gICAgaWYgKG1faW5jb21wbGV0ZUN1ZU1hcC5maW5kKHBsYXRmb3JtVmFsdWUu
Z2V0KCkpICE9IG1faW5jb21wbGV0ZUN1ZU1hcC5lbmQoKSkKKyAgICBpZiAobV9pbmNvbXBsZXRl
Q3VlTWFwLmNvbnRhaW5zKHBsYXRmb3JtVmFsdWUucHRyKCkpKQogICAgICAgICByZXR1cm47CiAK
ICAgICBhdXRvIGN1ZSA9IERhdGFDdWU6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LCBzdGFydCwgZW5kLCBwbGF0Zm9ybVZhbHVlLmNvcHlSZWYoKSwgdHlwZSk7CkBAIC03OCwyNSAr
NzYsMTkgQEAgdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjphZGREYXRhQ3VlKEluYmFuZFRleHRU
cmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHMKICAgICBhZGRDdWUoV1RGTW92ZShjdWUp
KTsKIH0KIAotdm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKEluYmFuZFRl
eHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUm
IGluRW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwcnBQ
bGF0Zm9ybVZhbHVlKQordm9pZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKGNv
bnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgaW5FbmQsIFNlcmlhbGl6ZWRQ
bGF0Zm9ybVJlcHJlc2VudGF0aW9uJiBwbGF0Zm9ybVZhbHVlKQogewotICAgIE1lZGlhVGltZSBl
bmQgPSBpbkVuZDsKLQotICAgIFJlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlv
bj4gcGxhdGZvcm1WYWx1ZSA9IHBycFBsYXRmb3JtVmFsdWU7Ci0gICAgYXV0byBpdGVyID0gbV9p
bmNvbXBsZXRlQ3VlTWFwLmZpbmQocGxhdGZvcm1WYWx1ZS5nZXQoKSk7Ci0gICAgaWYgKGl0ZXIg
PT0gbV9pbmNvbXBsZXRlQ3VlTWFwLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZWZQ
dHI8RGF0YUN1ZT4gY3VlID0gaXRlci0+dmFsdWU7CisgICAgUmVmUHRyPERhdGFDdWU+IGN1ZSA9
IG1faW5jb21wbGV0ZUN1ZU1hcC5nZXQoJnBsYXRmb3JtVmFsdWUpOwogICAgIGlmICghY3VlKQog
ICAgICAgICByZXR1cm47CiAKICAgICBjdWUtPndpbGxDaGFuZ2UoKTsKIAorICAgIE1lZGlhVGlt
ZSBlbmQgPSBpbkVuZDsKICAgICBpZiAoZW5kLmlzUG9zaXRpdmVJbmZpbml0ZSgpICYmIG1lZGlh
RWxlbWVudCgpKQogICAgICAgICBlbmQgPSBtZWRpYUVsZW1lbnQoKS0+ZHVyYXRpb25NZWRpYVRp
bWUoKTsKICAgICBlbHNlCi0gICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUocGxhdGZv
cm1WYWx1ZS5nZXQoKSk7CisgICAgICAgIG1faW5jb21wbGV0ZUN1ZU1hcC5yZW1vdmUoJnBsYXRm
b3JtVmFsdWUpOwogCiAgICAgTE9HKE1lZGlhLCAiSW5iYW5kRGF0YVRleHRUcmFjazo6dXBkYXRl
RGF0YUN1ZTogd2FzIHN0YXJ0PSVzLCBlbmQ9JXMsIHdpbGwgYmUgc3RhcnQ9JXMsIGVuZD0lc1xu
IiwgdG9TdHJpbmcoY3VlLT5zdGFydFRpbWUoKSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoY3Vl
LT5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5nKHN0YXJ0KS51dGY4KCkuZGF0YSgp
LCB0b1N0cmluZyhlbmQpLnV0ZjgoKS5kYXRhKCkpOwogCkBAIC0xMDYsMTQgKzk4LDkgQEAgdm9p
ZCBJbmJhbmREYXRhVGV4dFRyYWNrOjp1cGRhdGVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZh
dGUqLCBjb25zdCBNZWRpYVRpbWUKICAgICBjdWUtPmRpZENoYW5nZSgpOwogfQogCi12b2lkIElu
YmFuZERhdGFUZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSos
IGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBycFBsYXRmb3JtVmFsdWUpCit2b2lkIEluYmFuZERh
dGFUZXh0VHJhY2s6OnJlbW92ZURhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFU
aW1lJiwgU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24mIHBsYXRmb3JtVmFsdWUpCiB7
Ci0gICAgUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiBwbGF0Zm9ybVZh
bHVlID0gcHJwUGxhdGZvcm1WYWx1ZTsKLSAgICBhdXRvIGl0ZXIgPSBtX2luY29tcGxldGVDdWVN
YXAuZmluZChwbGF0Zm9ybVZhbHVlLmdldCgpKTsKLSAgICBpZiAoaXRlciA9PSBtX2luY29tcGxl
dGVDdWVNYXAuZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChSZWZQdHI8RGF0YUN1
ZT4gY3VlID0gaXRlci0+dmFsdWUpIHsKKyAgICBpZiAoYXV0byogY3VlID0gbV9pbmNvbXBsZXRl
Q3VlTWFwLmdldCgmcGxhdGZvcm1WYWx1ZSkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5k
RGF0YVRleHRUcmFjazo6cmVtb3ZlRGF0YUN1ZSByZW1vdmluZyBjdWU6IHN0YXJ0PSVzLCBlbmQ9
JXNcbiIsIHRvU3RyaW5nKGN1ZS0+c3RhcnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5n
KGN1ZS0+ZW5kVGltZSgpKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmVtb3ZlQ3VlKCpjdWUp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kRGF0
YVRleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRy
YWNrLmgKaW5kZXggMjdhOGRiNjE2OWQwYjQ3NmM1NGQzMmU0ODE0Mjg2MjFkYjJhMzA4My4uNjdh
ZWI2ZDA1MTc0Yjg0YzA3YTUzNmQzOWMyM2FhMTgyMzg3NjRmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmgKQEAgLTEsNiArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDE0IENhYmxlIFRlbGV2aXNpb24gTGFicyBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMywy
MyArMzMsMjEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGF0YUN1ZTsKLWNsYXNz
IEluYmFuZFRleHRUcmFja1ByaXZhdGU7Ci1jbGFzcyBTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNl
bnRhdGlvbjsKIAogY2xhc3MgSW5iYW5kRGF0YVRleHRUcmFjayBmaW5hbCA6IHB1YmxpYyBJbmJh
bmRUZXh0VHJhY2sgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SW5iYW5kRGF0YVRleHRUcmFj
az4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBSZWZQ
dHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4mJik7CisgICAgc3RhdGljIFJlZjxJbmJhbmREYXRh
VGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRleHRUcmFja0NsaWVu
dCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKICAgICB2aXJ0dWFsIH5JbmJhbmREYXRhVGV4
dFRyYWNrKCk7CiAKIHByaXZhdGU6Ci0gICAgSW5iYW5kRGF0YVRleHRUcmFjayhTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUmVmUHRyPEluYmFuZFRleHRUcmFja1By
aXZhdGU+JiYpOworICAgIEluYmFuZERhdGFUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIFRleHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKIAotICAgIHZv
aWQgYWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBz
dGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0IHZvaWQqLCB1bnNpZ25lZCkgZmluYWw7
CisgICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlh
VGltZSYgZW5kLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpIGZpbmFsOwogCiAjaWYgRU5BQkxFKERB
VEFDVUVfVkFMVUUpCi0gICAgdm9pZCBhZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUq
LCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgUGFzc1JlZlB0
cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4sIGNvbnN0IFN0cmluZyYpIGZpbmFs
OwotICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFs
aXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+KSBmaW5hbDsKLSAgICB2b2lkIHJlbW92ZURhdGFD
dWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0
IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0
aW9uPikgZmluYWw7CisgICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW5kLCBSZWY8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRp
b24+JiYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgdXBkYXRlRGF0YUN1ZShjb25z
dCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgU2VyaWFsaXplZFBsYXRm
b3JtUmVwcmVzZW50YXRpb24mKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZURhdGFDdWUoY29uc3Qg
TWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0Zm9y
bVJlcHJlc2VudGF0aW9uJikgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVtb3ZlQ3Vl
KFRleHRUcmFja0N1ZSYpIGZpbmFsOwogCiAgICAgSGFzaE1hcDxSZWZQdHI8U2VyaWFsaXplZFBs
YXRmb3JtUmVwcmVzZW50YXRpb24+LCBSZWZQdHI8RGF0YUN1ZT4+IG1faW5jb21wbGV0ZUN1ZU1h
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1Rl
eHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVyaWNUZXh0
VHJhY2suY3BwCmluZGV4IDA5MWE1ZDJiMTg1MjYwYjU4ZjY4ZTJmYmNmODliODc2Yzc1NjVjMmUu
Ljk4Njc5YjM2MDM5MWYwNTgwODFmY2U5NTk1ODA3MTQzMjZhY2I0ZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmNwcApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC02NSwxMDIgKzY1LDk5IEBAIHZvaWQgR2VuZXJpY1RleHRUcmFja0N1ZU1hcDo6cmVtb3ZlKFRl
eHRUcmFja0N1ZSYgY3VlKQogICAgICAgICBtX2RhdGFUb0N1ZU1hcC5yZW1vdmUoZGF0YSk7CiB9
CiAKLVJlZjxJbmJhbmRHZW5lcmljVGV4dFRyYWNrPiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50KiBj
bGllbnQsIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gcGxheWVyUHJpdmF0ZSkK
K2lubGluZSBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjpJbmJhbmRHZW5lcmljVGV4dFRyYWNrKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgOiBJbmJhbmRUZXh0VHJh
Y2soY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSW5iYW5kR2VuZXJpY1RleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHBsYXllclByaXZh
dGUpKTsKIH0KIAotSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6SW5iYW5kR2VuZXJpY1RleHRUcmFj
ayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVu
dCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCi0gICAg
OiBJbmJhbmRUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpCitSZWY8SW5i
YW5kR2VuZXJpY1RleHRUcmFjaz4gSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6Y3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJh
bmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCiB7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSW5iYW5kR2VuZXJpY1RleHRUcmFjayhjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0
ZSkpOwogfQogCiBJbmJhbmRHZW5lcmljVGV4dFRyYWNrOjp+SW5iYW5kR2VuZXJpY1RleHRUcmFj
aygpCiB7CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6dXBkYXRlQ3VlRnJvbUN1
ZURhdGEoVGV4dFRyYWNrQ3VlR2VuZXJpYyogY3VlLCBHZW5lcmljQ3VlRGF0YSogY3VlRGF0YSkK
K3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6dXBkYXRlQ3VlRnJvbUN1ZURhdGEoVGV4dFRy
YWNrQ3VlR2VuZXJpYyYgY3VlLCBHZW5lcmljQ3VlRGF0YSYgY3VlRGF0YSkKIHsKLSAgICBjdWUt
PndpbGxDaGFuZ2UoKTsKKyAgICBjdWUud2lsbENoYW5nZSgpOwogCi0gICAgY3VlLT5zZXRTdGFy
dFRpbWUoY3VlRGF0YS0+c3RhcnRUaW1lKCkpOwotICAgIE1lZGlhVGltZSBlbmRUaW1lID0gY3Vl
RGF0YS0+ZW5kVGltZSgpOworICAgIGN1ZS5zZXRTdGFydFRpbWUoY3VlRGF0YS5zdGFydFRpbWUo
KSk7CisgICAgTWVkaWFUaW1lIGVuZFRpbWUgPSBjdWVEYXRhLmVuZFRpbWUoKTsKICAgICBpZiAo
ZW5kVGltZS5pc1Bvc2l0aXZlSW5maW5pdGUoKSAmJiBtZWRpYUVsZW1lbnQoKSkKICAgICAgICAg
ZW5kVGltZSA9IG1lZGlhRWxlbWVudCgpLT5kdXJhdGlvbk1lZGlhVGltZSgpOwotICAgIGN1ZS0+
c2V0RW5kVGltZShlbmRUaW1lKTsKLSAgICBjdWUtPnNldFRleHQoY3VlRGF0YS0+Y29udGVudCgp
KTsKLSAgICBjdWUtPnNldElkKGN1ZURhdGEtPmlkKCkpOwotICAgIGN1ZS0+c2V0QmFzZUZvbnRT
aXplUmVsYXRpdmVUb1ZpZGVvSGVpZ2h0KGN1ZURhdGEtPmJhc2VGb250U2l6ZSgpKTsKLSAgICBj
dWUtPnNldEZvbnRTaXplTXVsdGlwbGllcihjdWVEYXRhLT5yZWxhdGl2ZUZvbnRTaXplKCkpOwot
ICAgIGN1ZS0+c2V0Rm9udE5hbWUoY3VlRGF0YS0+Zm9udE5hbWUoKSk7Ci0KLSAgICBpZiAoY3Vl
RGF0YS0+cG9zaXRpb24oKSA+IDApCi0gICAgICAgIGN1ZS0+c2V0UG9zaXRpb24oc3RkOjpyb3Vu
ZChjdWVEYXRhLT5wb3NpdGlvbigpKSk7Ci0gICAgaWYgKGN1ZURhdGEtPmxpbmUoKSA+IDApCi0g
ICAgICAgIGN1ZS0+c2V0TGluZShzdGQ6OnJvdW5kKGN1ZURhdGEtPmxpbmUoKSkpOwotICAgIGlm
IChjdWVEYXRhLT5zaXplKCkgPiAwKQotICAgICAgICBjdWUtPnNldFNpemUoc3RkOjpyb3VuZChj
dWVEYXRhLT5zaXplKCkpKTsKLSAgICBpZiAoY3VlRGF0YS0+YmFja2dyb3VuZENvbG9yKCkuaXNW
YWxpZCgpKQotICAgICAgICBjdWUtPnNldEJhY2tncm91bmRDb2xvcihjdWVEYXRhLT5iYWNrZ3Jv
dW5kQ29sb3IoKS5yZ2IoKSk7Ci0gICAgaWYgKGN1ZURhdGEtPmZvcmVncm91bmRDb2xvcigpLmlz
VmFsaWQoKSkKLSAgICAgICAgY3VlLT5zZXRGb3JlZ3JvdW5kQ29sb3IoY3VlRGF0YS0+Zm9yZWdy
b3VuZENvbG9yKCkucmdiKCkpOwotICAgIGlmIChjdWVEYXRhLT5oaWdobGlnaHRDb2xvcigpLmlz
VmFsaWQoKSkKLSAgICAgICAgY3VlLT5zZXRIaWdobGlnaHRDb2xvcihjdWVEYXRhLT5oaWdobGln
aHRDb2xvcigpLnJnYigpKTsKLQotICAgIGlmIChjdWVEYXRhLT5hbGlnbigpID09IEdlbmVyaWND
dWVEYXRhOjpTdGFydCkKLSAgICAgICAgY3VlLT5zZXRBbGlnbihBU0NJSUxpdGVyYWwoInN0YXJ0
IikpOwotICAgIGVsc2UgaWYgKGN1ZURhdGEtPmFsaWduKCkgPT0gR2VuZXJpY0N1ZURhdGE6Ok1p
ZGRsZSkKLSAgICAgICAgY3VlLT5zZXRBbGlnbihBU0NJSUxpdGVyYWwoIm1pZGRsZSIpKTsKLSAg
ICBlbHNlIGlmIChjdWVEYXRhLT5hbGlnbigpID09IEdlbmVyaWNDdWVEYXRhOjpFbmQpCi0gICAg
ICAgIGN1ZS0+c2V0QWxpZ24oQVNDSUlMaXRlcmFsKCJlbmQiKSk7Ci0gICAgY3VlLT5zZXRTbmFw
VG9MaW5lcyhmYWxzZSk7Ci0KLSAgICBjdWUtPmRpZENoYW5nZSgpOwotfQotCi12b2lkIEluYmFu
ZEdlbmVyaWNUZXh0VHJhY2s6OmFkZEdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSog
dHJhY2tQcml2YXRlLCBQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPiBwcnBDdWVEYXRhKQotewot
ICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRl
KTsKLQotICAgIFJlZlB0cjxHZW5lcmljQ3VlRGF0YT4gY3VlRGF0YSA9IHBycEN1ZURhdGE7Ci0g
ICAgaWYgKG1fY3VlTWFwLmZpbmQoKmN1ZURhdGEpKQorICAgIGN1ZS5zZXRFbmRUaW1lKGVuZFRp
bWUpOworICAgIGN1ZS5zZXRUZXh0KGN1ZURhdGEuY29udGVudCgpKTsKKyAgICBjdWUuc2V0SWQo
Y3VlRGF0YS5pZCgpKTsKKyAgICBjdWUuc2V0QmFzZUZvbnRTaXplUmVsYXRpdmVUb1ZpZGVvSGVp
Z2h0KGN1ZURhdGEuYmFzZUZvbnRTaXplKCkpOworICAgIGN1ZS5zZXRGb250U2l6ZU11bHRpcGxp
ZXIoY3VlRGF0YS5yZWxhdGl2ZUZvbnRTaXplKCkpOworICAgIGN1ZS5zZXRGb250TmFtZShjdWVE
YXRhLmZvbnROYW1lKCkpOworCisgICAgaWYgKGN1ZURhdGEucG9zaXRpb24oKSA+IDApCisgICAg
ICAgIGN1ZS5zZXRQb3NpdGlvbihzdGQ6OnJvdW5kKGN1ZURhdGEucG9zaXRpb24oKSkpOworICAg
IGlmIChjdWVEYXRhLmxpbmUoKSA+IDApCisgICAgICAgIGN1ZS5zZXRMaW5lKHN0ZDo6cm91bmQo
Y3VlRGF0YS5saW5lKCkpKTsKKyAgICBpZiAoY3VlRGF0YS5zaXplKCkgPiAwKQorICAgICAgICBj
dWUuc2V0U2l6ZShzdGQ6OnJvdW5kKGN1ZURhdGEuc2l6ZSgpKSk7CisgICAgaWYgKGN1ZURhdGEu
YmFja2dyb3VuZENvbG9yKCkuaXNWYWxpZCgpKQorICAgICAgICBjdWUuc2V0QmFja2dyb3VuZENv
bG9yKGN1ZURhdGEuYmFja2dyb3VuZENvbG9yKCkucmdiKCkpOworICAgIGlmIChjdWVEYXRhLmZv
cmVncm91bmRDb2xvcigpLmlzVmFsaWQoKSkKKyAgICAgICAgY3VlLnNldEZvcmVncm91bmRDb2xv
cihjdWVEYXRhLmZvcmVncm91bmRDb2xvcigpLnJnYigpKTsKKyAgICBpZiAoY3VlRGF0YS5oaWdo
bGlnaHRDb2xvcigpLmlzVmFsaWQoKSkKKyAgICAgICAgY3VlLnNldEhpZ2hsaWdodENvbG9yKGN1
ZURhdGEuaGlnaGxpZ2h0Q29sb3IoKS5yZ2IoKSk7CisKKyAgICBpZiAoY3VlRGF0YS5hbGlnbigp
ID09IEdlbmVyaWNDdWVEYXRhOjpTdGFydCkKKyAgICAgICAgY3VlLnNldEFsaWduKEFTQ0lJTGl0
ZXJhbCgic3RhcnQiKSk7CisgICAgZWxzZSBpZiAoY3VlRGF0YS5hbGlnbigpID09IEdlbmVyaWND
dWVEYXRhOjpNaWRkbGUpCisgICAgICAgIGN1ZS5zZXRBbGlnbihBU0NJSUxpdGVyYWwoIm1pZGRs
ZSIpKTsKKyAgICBlbHNlIGlmIChjdWVEYXRhLmFsaWduKCkgPT0gR2VuZXJpY0N1ZURhdGE6OkVu
ZCkKKyAgICAgICAgY3VlLnNldEFsaWduKEFTQ0lJTGl0ZXJhbCgiZW5kIikpOworICAgIGN1ZS5z
ZXRTbmFwVG9MaW5lcyhmYWxzZSk7CisKKyAgICBjdWUuZGlkQ2hhbmdlKCk7Cit9CisKK3ZvaWQg
SW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYgY3Vl
RGF0YSkKK3sKKyAgICBpZiAobV9jdWVNYXAuZmluZChjdWVEYXRhKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgYXV0byBjdWUgPSBUZXh0VHJhY2tDdWVHZW5lcmljOjpjcmVhdGUoKnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgY3VlRGF0YS0+c3RhcnRUaW1lKCksIGN1ZURhdGEtPmVuZFRpbWUo
KSwgY3VlRGF0YS0+Y29udGVudCgpKTsKLSAgICB1cGRhdGVDdWVGcm9tQ3VlRGF0YShjdWUucHRy
KCksIGN1ZURhdGEuZ2V0KCkpOworICAgIGF1dG8gY3VlID0gVGV4dFRyYWNrQ3VlR2VuZXJpYzo6
Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGN1ZURhdGEuc3RhcnRUaW1lKCksIGN1
ZURhdGEuZW5kVGltZSgpLCBjdWVEYXRhLmNvbnRlbnQoKSk7CisgICAgdXBkYXRlQ3VlRnJvbUN1
ZURhdGEoY3VlLmdldCgpLCBjdWVEYXRhKTsKICAgICBpZiAoaGFzQ3VlKGN1ZS5wdHIoKSwgVGV4
dFRyYWNrQ3VlOjpJZ25vcmVEdXJhdGlvbikpIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5k
R2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSBpZ25vcmluZyBhbHJlYWR5IGFkZGVkIGN1
ZTogc3RhcnQ9JXMsIGVuZD0lcywgY29udGVudD1cIiVzXCJcbiIsIHRvU3RyaW5nKGN1ZURhdGEt
PnN0YXJ0VGltZSgpKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyhjdWVEYXRhLT5lbmRUaW1lKCkp
LnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAg
ICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6YWRkR2VuZXJpY0N1ZSBpZ25v
cmluZyBhbHJlYWR5IGFkZGVkIGN1ZTogc3RhcnQ9JXMsIGVuZD0lcywgY29udGVudD1cIiVzXCJc
biIsIHRvU3RyaW5nKGN1ZURhdGEuc3RhcnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIHRvU3RyaW5n
KGN1ZURhdGEuZW5kVGltZSgpKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLmNvbnRlbnQoKS51dGY4
KCkuZGF0YSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIExPRyhNZWRpYSwgIklu
YmFuZEdlbmVyaWNUZXh0VHJhY2s6OmFkZEdlbmVyaWNDdWUgYWRkZWQgY3VlOiBzdGFydD0lLjJm
LCBlbmQ9JS4yZiwgY29udGVudD1cIiVzXCJcbiIsIGN1ZURhdGEtPnN0YXJ0VGltZSgpLnRvRG91
YmxlKCksIGN1ZURhdGEtPmVuZFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLT5jb250ZW50KCku
dXRmOCgpLmRhdGEoKSk7CisgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6
YWRkR2VuZXJpY0N1ZSBhZGRlZCBjdWU6IHN0YXJ0PSUuMmYsIGVuZD0lLjJmLCBjb250ZW50PVwi
JXNcIlxuIiwgY3VlRGF0YS5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLmVuZFRpbWUo
KS50b0RvdWJsZSgpLCBjdWVEYXRhLmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgIGlm
IChjdWVEYXRhLT5zdGF0dXMoKSAhPSBHZW5lcmljQ3VlRGF0YTo6Q29tcGxldGUpCi0gICAgICAg
IG1fY3VlTWFwLmFkZCgqY3VlRGF0YSwgY3VlKTsKKyAgICBpZiAoY3VlRGF0YS5zdGF0dXMoKSAh
PSBHZW5lcmljQ3VlRGF0YTo6Q29tcGxldGUpCisgICAgICAgIG1fY3VlTWFwLmFkZChjdWVEYXRh
LCBjdWUpOwogCiAgICAgYWRkQ3VlKFdURk1vdmUoY3VlKSk7CiB9CiAKLXZvaWQgSW5iYW5kR2Vu
ZXJpY1RleHRUcmFjazo6dXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwg
R2VuZXJpY0N1ZURhdGEqIGN1ZURhdGEpCit2b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnVw
ZGF0ZUdlbmVyaWNDdWUoR2VuZXJpY0N1ZURhdGEmIGN1ZURhdGEpCiB7Ci0gICAgYXV0byogY3Vl
ID0gbV9jdWVNYXAuZmluZCgqY3VlRGF0YSk7CisgICAgYXV0byogY3VlID0gbV9jdWVNYXAuZmlu
ZChjdWVEYXRhKTsKICAgICBpZiAoIWN1ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRl
Q3VlRnJvbUN1ZURhdGEoY3VlLCBjdWVEYXRhKTsKKyAgICB1cGRhdGVDdWVGcm9tQ3VlRGF0YSgq
Y3VlLCBjdWVEYXRhKTsKIAotICAgIGlmIChjdWVEYXRhLT5zdGF0dXMoKSA9PSBHZW5lcmljQ3Vl
RGF0YTo6Q29tcGxldGUpCi0gICAgICAgIG1fY3VlTWFwLnJlbW92ZSgqY3VlRGF0YSk7CisgICAg
aWYgKGN1ZURhdGEuc3RhdHVzKCkgPT0gR2VuZXJpY0N1ZURhdGE6OkNvbXBsZXRlKQorICAgICAg
ICBtX2N1ZU1hcC5yZW1vdmUoY3VlRGF0YSk7CiB9CiAKLXZvaWQgSW5iYW5kR2VuZXJpY1RleHRU
cmFjazo6cmVtb3ZlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1
ZURhdGEqIGN1ZURhdGEpCit2b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnJlbW92ZUdlbmVy
aWNDdWUoR2VuZXJpY0N1ZURhdGEmIGN1ZURhdGEpCiB7Ci0gICAgYXV0byogY3VlID0gbV9jdWVN
YXAuZmluZCgqY3VlRGF0YSk7CisgICAgYXV0byogY3VlID0gbV9jdWVNYXAuZmluZChjdWVEYXRh
KTsKICAgICBpZiAoY3VlKSB7Ci0gICAgICAgIExPRyhNZWRpYSwgIkluYmFuZEdlbmVyaWNUZXh0
VHJhY2s6OnJlbW92ZUdlbmVyaWNDdWUgcmVtb3ZpbmcgY3VlOiBzdGFydD0lcywgZW5kPSVzLCBj
b250ZW50PVwiJXNcIlxuIiwgIHRvU3RyaW5nKGN1ZURhdGEtPnN0YXJ0VGltZSgpKS51dGY4KCku
ZGF0YSgpLCB0b1N0cmluZyhjdWVEYXRhLT5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURh
dGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5k
R2VuZXJpY1RleHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1ZSByZW1vdmluZyBjdWU6IHN0YXJ0PSVz
LCBlbmQ9JXMsIGNvbnRlbnQ9XCIlc1wiXG4iLCAgdG9TdHJpbmcoY3VlRGF0YS5zdGFydFRpbWUo
KSkudXRmOCgpLmRhdGEoKSwgdG9TdHJpbmcoY3VlRGF0YS5lbmRUaW1lKCkpLnV0ZjgoKS5kYXRh
KCksIGN1ZURhdGEuY29udGVudCgpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICByZW1vdmVDdWUo
KmN1ZSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1Rl
eHRUcmFjazo6cmVtb3ZlR2VuZXJpY0N1ZSBVTkFCTEUgdG8gZmluZCBjdWU6IHN0YXJ0PSUuMmYs
IGVuZD0lLjJmLCBjb250ZW50PVwiJXNcIlxuIiwgY3VlRGF0YS0+c3RhcnRUaW1lKCkudG9Eb3Vi
bGUoKSwgY3VlRGF0YS0+ZW5kVGltZSgpLnRvRG91YmxlKCksIGN1ZURhdGEtPmNvbnRlbnQoKS51
dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kR2VuZXJpY1RleHRUcmFj
azo6cmVtb3ZlR2VuZXJpY0N1ZSBVTkFCTEUgdG8gZmluZCBjdWU6IHN0YXJ0PSUuMmYsIGVuZD0l
LjJmLCBjb250ZW50PVwiJXNcIlxuIiwgY3VlRGF0YS5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBj
dWVEYXRhLmVuZFRpbWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLmNvbnRlbnQoKS51dGY4KCkuZGF0
YSgpKTsKICAgICB9CiB9CiAKQEAgLTE3OSwxNSArMTc2LDEzIEBAIFdlYlZUVFBhcnNlciYgSW5i
YW5kR2VuZXJpY1RleHRUcmFjazo6cGFyc2VyKCkKICAgICByZXR1cm4gKm1fd2ViVlRUUGFyc2Vy
OwogfQogCi12b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3VlRGF0YShJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIGNvbnN0IElTT1dlYlZUVEN1ZSYg
Y3VlRGF0YSkKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRh
KGNvbnN0IElTT1dlYlZUVEN1ZSYgY3VlRGF0YSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNr
UHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgcGFyc2VyKCkucGFyc2VD
dWVEYXRhKGN1ZURhdGEpOwogfQogCi12b2lkIEluYmFuZEdlbmVyaWNUZXh0VHJhY2s6OnBhcnNl
V2ViVlRURmlsZUhlYWRlcihJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIFN0
cmluZyYmIGhlYWRlcikKK3ZvaWQgSW5iYW5kR2VuZXJpY1RleHRUcmFjazo6cGFyc2VXZWJWVFRG
aWxlSGVhZGVyKFN0cmluZyYmIGhlYWRlcikKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJp
dmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgcGFyc2VyKCkucGFyc2VGaWxl
SGVhZGVyKFdURk1vdmUoaGVhZGVyKSk7CiB9CiAKQEAgLTIxNCw3ICsyMDksNyBAQCB2b2lkIElu
YmFuZEdlbmVyaWNUZXh0VHJhY2s6Om5ld1JlZ2lvbnNQYXJzZWQoKQogCiAgICAgZm9yIChhdXRv
JiByZWdpb24gOiBuZXdSZWdpb25zKSB7CiAgICAgICAgIHJlZ2lvbi0+c2V0VHJhY2sodGhpcyk7
Ci0gICAgICAgIHJlZ2lvbnMoKS0+YWRkKHJlZ2lvbik7CisgICAgICAgIHJlZ2lvbnMoKS0+YWRk
KHJlZ2lvbi5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9JbmJhbmRHZW5lcmljVGV4dFRyYWNrLmgKaW5kZXggMWMzNDhiMmRh
NTUxMDNlYmJmY2E4NzhkNDBiN2Y5MDc4OWJkNDQ2My4uZTVmZWIyNTRiYmUyZjlhM2JmMjY4ODVm
YzhmM2QyYWJlZGQ3NWI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9J
bmJhbmRHZW5lcmljVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9J
bmJhbmRHZW5lcmljVGV4dFRyYWNrLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEyLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw5ICszMyw2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBJbmJhbmRUZXh0VHJhY2tQcml2YXRl
OwotCiBjbGFzcyBHZW5lcmljVGV4dFRyYWNrQ3VlTWFwIHsKIHB1YmxpYzoKICAgICB2b2lkIGFk
ZChHZW5lcmljQ3VlRGF0YSYsIFRleHRUcmFja0N1ZUdlbmVyaWMmKTsKQEAgLTU2LDIzICs1Mywy
MiBAQCBwcml2YXRlOgogCiBjbGFzcyBJbmJhbmRHZW5lcmljVGV4dFRyYWNrIGZpbmFsIDogcHVi
bGljIEluYmFuZFRleHRUcmFjaywgcHJpdmF0ZSBXZWJWVFRQYXJzZXJDbGllbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8SW5iYW5kR2VuZXJpY1RleHRUcmFjaz4gY3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRleHRU
cmFja1ByaXZhdGU+KTsKKyAgICBzdGF0aWMgUmVmPEluYmFuZEdlbmVyaWNUZXh0VHJhY2s+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSYpOwogICAgIHZpcnR1YWwgfkluYmFuZEdlbmVyaWNUZXh0VHJhY2soKTsK
IAogcHJpdmF0ZToKLSAgICBJbmJhbmRHZW5lcmljVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZh
dGU+KTsKKyAgICBJbmJhbmRHZW5lcmljVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBUZXh0VHJhY2tDbGllbnQmLCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJik7CiAKLSAgICB2b2lk
IGFkZEdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFBhc3NSZWZQdHI8R2VuZXJp
Y0N1ZURhdGE+KSBmaW5hbDsKLSAgICB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgZmluYWw7Ci0gICAgdm9pZCByZW1vdmVHZW5l
cmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBHZW5lcmljQ3VlRGF0YSopIGZpbmFsOwor
ICAgIHZvaWQgYWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpIGZpbmFsOworICAgIHZvaWQg
dXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpIGZpbmFsOworICAgIHZvaWQgcmVtb3Zl
R2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHJlbW92ZUN1ZShUZXh0VHJhY2tDdWUmKSBmaW5hbDsKIAotICAgIFBhc3NSZWZQdHI8VGV4dFRy
YWNrQ3VlR2VuZXJpYz4gY3JlYXRlQ3VlKFBhc3NSZWZQdHI8R2VuZXJpY0N1ZURhdGE+KTsKLSAg
ICB2b2lkIHVwZGF0ZUN1ZUZyb21DdWVEYXRhKFRleHRUcmFja0N1ZUdlbmVyaWMqLCBHZW5lcmlj
Q3VlRGF0YSopOworICAgIHZvaWQgdXBkYXRlQ3VlRnJvbUN1ZURhdGEoVGV4dFRyYWNrQ3VlR2Vu
ZXJpYyYsIEdlbmVyaWNDdWVEYXRhJik7CiAKICAgICBXZWJWVFRQYXJzZXImIHBhcnNlcigpOwot
ICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25z
dCBJU09XZWJWVFRDdWUmKSBmaW5hbDsKLSAgICB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgU3RyaW5nJiYpIGZpbmFsOworICAgIHZvaWQgcGFyc2VX
ZWJWVFRDdWVEYXRhKGNvbnN0IElTT1dlYlZUVEN1ZSYpIGZpbmFsOworICAgIHZvaWQgcGFyc2VX
ZWJWVFRGaWxlSGVhZGVyKFN0cmluZyYmKSBmaW5hbDsKIAogICAgIHZvaWQgbmV3Q3Vlc1BhcnNl
ZCgpIGZpbmFsOwogICAgIHZvaWQgbmV3UmVnaW9uc1BhcnNlZCgpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCmluZGV4IGYyZWVlYWUwZmMw
MDk0ZTQyOGE4N2E2NWQxODMxN2QzY2ZmNDQwNzkuLmJkNjVlNTQ4YTg3NjIyOTBhNTEwZDNkN2Y5
MmMxYWFiMTY5NDkyZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5i
YW5kVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRl
eHRUcmFjay5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI0LDQzICsyNCwzNCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
IAotI2luY2x1ZGUgIkluYmFuZFRleHRUcmFjay5oIgotCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIK
LSNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNs
dWRlICJJbmJhbmREYXRhVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiSW5iYW5kR2VuZXJpY1RleHRU
cmFjay5oIgogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJJ
bmJhbmRXZWJWVFRUZXh0VHJhY2suaCIKLSNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAi
VGV4dFRyYWNrQ3VlTGlzdC5oIgotI2luY2x1ZGUgPG1hdGguaD4KLSNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxJbmJhbmRU
ZXh0VHJhY2s+IEluYmFuZFRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsCi0gICAgVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2tQcml2YXRlKQorUmVmPEluYmFuZFRleHRUcmFjaz4gSW5i
YW5kVGV4dFRyYWNrOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGV4
dFRyYWNrQ2xpZW50JiBjbGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0
ZSkKIHsKLSAgICBzd2l0Y2ggKHRyYWNrUHJpdmF0ZS0+Y3VlRm9ybWF0KCkpIHsKKyAgICBzd2l0
Y2ggKHRyYWNrUHJpdmF0ZS5jdWVGb3JtYXQoKSkgewogICAgIGNhc2UgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZTo6RGF0YToKICAgICAgICAgcmV0dXJuIEluYmFuZERhdGFUZXh0VHJhY2s6OmNyZWF0
ZShjb250ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSk7CiAgICAgY2FzZSBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlOjpHZW5lcmljOgogICAgICAgICByZXR1cm4gSW5iYW5kR2VuZXJpY1RleHRUcmFj
azo6Y3JlYXRlKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKTsKICAgICBjYXNlIEluYmFu
ZFRleHRUcmFja1ByaXZhdGU6OldlYlZUVDoKICAgICAgICAgcmV0dXJuIEluYmFuZFdlYlZUVFRl
eHRUcmFjazo6Y3JlYXRlKGNvbnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKTsKLSAgICBkZWZh
dWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBJbmJhbmREYXRhVGV4
dFRyYWNrOjpjcmVhdGUoY29udGV4dCwgY2xpZW50LCB0cmFja1ByaXZhdGUpOwogfQogCi1JbmJh
bmRUZXh0VHJhY2s6OkluYmFuZFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlPiB0cmFja1ByaXZhdGUpCi0gICAgOiBUZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBl
bXB0eUF0b20sIHRyYWNrUHJpdmF0ZS0+aWQoKSwgdHJhY2tQcml2YXRlLT5sYWJlbCgpLCB0cmFj
a1ByaXZhdGUtPmxhbmd1YWdlKCksIEluQmFuZCkKK0luYmFuZFRleHRUcmFjazo6SW5iYW5kVGV4
dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCYg
Y2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZhdGUpCisgICAgOiBUZXh0
VHJhY2soJmNvbnRleHQsICZjbGllbnQsIGVtcHR5QXRvbSwgdHJhY2tQcml2YXRlLmlkKCksIHRy
YWNrUHJpdmF0ZS5sYWJlbCgpLCB0cmFja1ByaXZhdGUubGFuZ3VhZ2UoKSwgSW5CYW5kKQogICAg
ICwgbV9wcml2YXRlKHRyYWNrUHJpdmF0ZSkKIHsKICAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0
aGlzKTsKQEAgLTcyLDEyICs2Myw5IEBAIEluYmFuZFRleHRUcmFjazo6fkluYmFuZFRleHRUcmFj
aygpCiAgICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiB9CiAKLXZvaWQgSW5iYW5k
VGV4dFRyYWNrOjpzZXRQcml2YXRlKFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4g
dHJhY2tQcml2YXRlKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6OnNldFByaXZhdGUoSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwot
ICAgIEFTU0VSVCh0cmFja1ByaXZhdGUpOwotCi0gICAgaWYgKG1fcHJpdmF0ZSA9PSB0cmFja1By
aXZhdGUpCisgICAgaWYgKG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQogICAgICAg
ICByZXR1cm47CiAKICAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKQEAgLTExNSw4
MCArMTAzLDYwIEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrOjpzZXRNb2RlSW50ZXJuYWwoTW9kZSBt
b2RlKQogCiBib29sIEluYmFuZFRleHRUcmFjazo6aXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0CiB7
Ci0gICAgaWYgKCFtX3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIHJldHVy
biBtX3ByaXZhdGUtPmlzQ2xvc2VkQ2FwdGlvbnMoKTsKIH0KIAogYm9vbCBJbmJhbmRUZXh0VHJh
Y2s6OmlzU0RIKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPmlzU0RIKCk7CiB9CiAKIGJvb2wg
SW5iYW5kVGV4dFRyYWNrOjpjb250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMoKSBjb25zdAogewot
ICAgIGlmICghbV9wcml2YXRlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCiAgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+Y29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCk7CiB9CiAKIGJvb2wg
SW5iYW5kVGV4dFRyYWNrOjppc01haW5Qcm9ncmFtQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgaWYg
KCFtX3ByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKICAgICByZXR1cm4gbV9w
cml2YXRlLT5pc01haW5Qcm9ncmFtQ29udGVudCgpOwogfQogCiBib29sIEluYmFuZFRleHRUcmFj
azo6aXNFYXN5VG9SZWFkKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIAogICAgIHJldHVybiBtX3ByaXZhdGUtPmlzRWFzeVRvUmVhZCgp
OwogfQogICAgIAogc2l6ZV90IEluYmFuZFRleHRUcmFjazo6aW5iYW5kVHJhY2tJbmRleCgpCiB7
Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dHJhY2tJbmRl
eCgpOwogfQogCiBBdG9taWNTdHJpbmcgSW5iYW5kVGV4dFRyYWNrOjppbkJhbmRNZXRhZGF0YVRy
YWNrRGlzcGF0Y2hUeXBlKCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9wcml2YXRlKTsKICAgICBy
ZXR1cm4gbV9wcml2YXRlLT5pbkJhbmRNZXRhZGF0YVRyYWNrRGlzcGF0Y2hUeXBlKCk7CiB9CiAK
LXZvaWQgSW5iYW5kVGV4dFRyYWNrOjppZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQ
cml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6Omlk
Q2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJh
Y2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRJZChpZCk7CiB9
CiAKLXZvaWQgSW5iYW5kVGV4dFRyYWNrOjpsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSog
dHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQordm9pZCBJbmJhbmRUZXh0
VHJhY2s6OmxhYmVsQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsKQogewotICAgIEFT
U0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAg
ICBzZXRMYWJlbChsYWJlbCk7CiB9CiAKLXZvaWQgSW5iYW5kVGV4dFRyYWNrOjpsYW5ndWFnZUNo
YW5nZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcm
IGxhbmd1YWdlKQordm9pZCBJbmJhbmRUZXh0VHJhY2s6Omxhbmd1YWdlQ2hhbmdlZChjb25zdCBB
dG9taWNTdHJpbmcmIGxhbmd1YWdlKQogewotICAgIEFTU0VSVF9VTlVTRUQodHJhY2tQcml2YXRl
LCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBzZXRMYW5ndWFnZShsYW5ndWFnZSk7
CiB9CiAKLXZvaWQgSW5iYW5kVGV4dFRyYWNrOjp3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2Uq
IHRyYWNrUHJpdmF0ZSkKK3ZvaWQgSW5iYW5kVGV4dFRyYWNrOjp3aWxsUmVtb3ZlKCkKIHsKLSAg
ICBpZiAoIW1lZGlhRWxlbWVudCgpKQorICAgIGF1dG8qIGVsZW1lbnQgPSBtZWRpYUVsZW1lbnQo
KTsKKyAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlRfVU5VU0VE
KHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7Ci0gICAgbWVkaWFFbGVt
ZW50KCktPnJlbW92ZVRleHRUcmFjaygqdGhpcyk7CisgICAgZWxlbWVudC0+cmVtb3ZlVGV4dFRy
YWNrKCp0aGlzKTsKIH0KIAogdm9pZCBJbmJhbmRUZXh0VHJhY2s6OnVwZGF0ZUtpbmRGcm9tUHJp
dmF0ZSgpCkBAIC0xOTYsMzQgKzE2NCwzMCBAQCB2b2lkIEluYmFuZFRleHRUcmFjazo6dXBkYXRl
S2luZEZyb21Qcml2YXRlKCkKICAgICBzd2l0Y2ggKG1fcHJpdmF0ZS0+a2luZCgpKSB7CiAgICAg
Y2FzZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpTdWJ0aXRsZXM6CiAgICAgICAgIHNldEtpbmQo
S2luZDo6U3VidGl0bGVzKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBj
YXNlIEluYmFuZFRleHRUcmFja1ByaXZhdGU6OkNhcHRpb25zOgogICAgICAgICBzZXRLaW5kKEtp
bmQ6OkNhcHRpb25zKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNl
IEluYmFuZFRleHRUcmFja1ByaXZhdGU6OkRlc2NyaXB0aW9uczoKICAgICAgICAgc2V0S2luZChL
aW5kOjpEZXNjcmlwdGlvbnMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAg
IGNhc2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6Q2hhcHRlcnM6CiAgICAgICAgIHNldEtpbmQo
S2luZDo6Q2hhcHRlcnMpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6TWV0YWRhdGE6CiAgICAgICAgIHNldEtpbmQoS2lu
ZDo6TWV0YWRhdGEpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6Rm9yY2VkOgogICAgICAgICBzZXRLaW5kKEtpbmQ6OkZv
cmNlZCk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlOjpOb25lOgotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CiAKIE1lZGlhVGltZSBJbmJhbmRUZXh0VHJhY2s6OnN0YXJ0VGltZVZhcmlhbmNlKCkg
Y29uc3QKIHsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuIE1lZGlhVGltZTo6
emVyb1RpbWUoKTsKLSAgICAKICAgICByZXR1cm4gbV9wcml2YXRlLT5zdGFydFRpbWVWYXJpYW5j
ZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRl
eHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suaApp
bmRleCA5Y2QwMjdjMzZjODViMGFhNTE1NjdlZTY5NmUxMjY2ZDA4NDVmMzNlLi42Y2YyNjg3YmI4
NmU5NTQ5YmMxZjE2NTU1M2Q5MjUwYjhjNTdlZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svSW5iYW5kVGV4dFRyYWNrLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMTUgKzI5LDEyIEBACiAKICNpbmNsdWRl
ICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrLmgi
Ci0jaW5jbHVkZSAiVGV4dFRyYWNrQ3VlR2VuZXJpYy5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KLSNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgSW5iYW5kVGV4dFRyYWNrIDogcHVibGljIFRleHRUcmFjaywgcHVibGljIEluYmFuZFRl
eHRUcmFja1ByaXZhdGVDbGllbnQgeworY2xhc3MgSW5iYW5kVGV4dFRyYWNrIDogcHVibGljIFRl
eHRUcmFjaywgcHJpdmF0ZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlPik7CisgICAgc3RhdGljIFJlZjxJbmJhbmRUZXh0VHJhY2s+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50JiwgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSYpOwogICAgIHZpcnR1YWwgfkluYmFuZFRleHRUcmFjaygpOwogCiAgICAgYm9vbCBpc0Ns
b3NlZENhcHRpb25zKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC01MCwzOCArNDcsMzggQEAgcHVibGlj
OgogCiAgICAgQXRvbWljU3RyaW5nIGluQmFuZE1ldGFkYXRhVHJhY2tEaXNwYXRjaFR5cGUoKSBj
b25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgc2V0UHJpdmF0ZShQYXNzUmVmUHRyPEluYmFuZFRl
eHRUcmFja1ByaXZhdGU+KTsKKyAgICB2b2lkIHNldFByaXZhdGUoSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZSYpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgSW5iYW5kVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1By
aXZhdGU+KTsKKyAgICBJbmJhbmRUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRl
eHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUmKTsKIAogICAgIHZvaWQgc2V0
TW9kZUludGVybmFsKE1vZGUpOwogICAgIHZvaWQgdXBkYXRlS2luZEZyb21Qcml2YXRlKCk7CiAK
LSAgICBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOworICAgIFJlZjxJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlPiBtX3ByaXZhdGU7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBp
c0luYmFuZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2b2lkIGlkQ2hhbmdl
ZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYp
IG92ZXJyaWRlOwotICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBj
b25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxSZW1vdmUoVHJhY2tQ
cml2YXRlQmFzZSopIG92ZXJyaWRlOworICAgIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21pY1N0
cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgbGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmlu
ZyYpIG92ZXJyaWRlOworICAgIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmlu
ZyYpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbFJlbW92ZSgpIG92ZXJyaWRlOwogCi0gICAgdm9p
ZCBhZGREYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmLCBj
b25zdCBNZWRpYVRpbWUmLCBjb25zdCB2b2lkKiwgdW5zaWduZWQpIG92ZXJyaWRlIHsgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIGFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiwg
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3Qgdm9pZCosIHVuc2lnbmVkKSBvdmVycmlkZSB7IEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLSAgICB2b2lk
IGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYsIGNv
bnN0IE1lZGlhVGltZSYsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRp
b24+LCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0g
ICAgdm9pZCB1cGRhdGVEYXRhQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRp
YVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJl
cHJlc2VudGF0aW9uPikgb3ZlcnJpZGUgIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2
b2lkIHJlbW92ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGlt
ZSYsIGNvbnN0IE1lZGlhVGltZSYsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVz
ZW50YXRpb24+KSBvdmVycmlkZSAgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQg
YWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBSZWY8U2VyaWFs
aXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+JiYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIHVwZGF0ZURhdGFDdWUoY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiwgU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRp
b24mKSBvdmVycmlkZSAgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgcmVtb3Zl
RGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBTZXJpYWxpemVkUGxh
dGZvcm1SZXByZXNlbnRhdGlvbiYpIG92ZXJyaWRlICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CiAjZW5kaWYKIAotICAgIHZvaWQgYWRkR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRl
KiwgUGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0YT4pIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KLSAgICB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSosIEdlbmVyaWNDdWVEYXRhKikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQot
ICAgIHZvaWQgcmVtb3ZlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJp
Y0N1ZURhdGEqKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdm9pZCBh
ZGRHZW5lcmljQ3VlKEdlbmVyaWNDdWVEYXRhJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQorICAgIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYpIG92ZXJy
aWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIHJlbW92ZUdlbmVyaWNDdWUo
R2VuZXJpY0N1ZURhdGEmKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKLSAg
ICB2b2lkIHBhcnNlV2ViVlRURmlsZUhlYWRlcihJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgU3Ry
aW5nJiYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2b2lkIHBhcnNl
V2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgY2hhciosIHVuc2ln
bmVkKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdm9pZCBwYXJzZVdl
YlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IElTT1dlYlZUVEN1ZSYp
IG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2b2lkIHBhcnNlV2ViVlRU
RmlsZUhlYWRlcihTdHJpbmcmJikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQor
ICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCkgb3ZlcnJp
ZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQorICAgIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRh
KGNvbnN0IElTT1dlYlZUVEN1ZSYpIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
IAogICAgIE1lZGlhVGltZSBzdGFydFRpbWVWYXJpYW5jZSgpIGNvbnN0IG92ZXJyaWRlOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRy
YWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNr
LmNwcAppbmRleCBlNTQwZTQ5NDFhZWNhODZjMGZmZWE3NTM0YjdhYTIyNmIxMmNjMmE2Li5kMGZh
ZTRlOWI4NTZhMDQxMmIzMjY4N2M3NzJlZTM2ZmRmMTk0NGY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwy
NyArMjQsMjYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5iYW5k
V2ViVlRUVGV4dFRyYWNrLmgiCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKLSNpbmNsdWRl
ICJJbmJhbmRXZWJWVFRUZXh0VHJhY2suaCIKLQogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1By
aXZhdGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKKyNpbmNsdWRlICJWVFRDdWUuaCIKICNpbmNsdWRlICJWVFRSZWdpb25MaXN0LmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxJ
bmJhbmRUZXh0VHJhY2s+IEluYmFuZFdlYlZUVFRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRy
PEluYmFuZFRleHRUcmFja1ByaXZhdGU+IHBsYXllclByaXZhdGUpCitpbmxpbmUgSW5iYW5kV2Vi
VlRUVGV4dFRyYWNrOjpJbmJhbmRXZWJWVFRUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgVGV4dFRyYWNrQ2xpZW50JiBjbGllbnQsIEluYmFuZFRleHRUcmFja1ByaXZh
dGUmIHRyYWNrUHJpdmF0ZSkKKyAgICA6IEluYmFuZFRleHRUcmFjayhjb250ZXh0LCBjbGllbnQs
IHRyYWNrUHJpdmF0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbmJhbmRXZWJWVFRU
ZXh0VHJhY2soY29udGV4dCwgY2xpZW50LCBwbGF5ZXJQcml2YXRlKSk7CiB9CiAKLUluYmFuZFdl
YlZUVFRleHRUcmFjazo6SW5iYW5kV2ViVlRUVGV4dFRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPEluYmFuZFRl
eHRUcmFja1ByaXZhdGU+IHRyYWNrUHJpdmF0ZSkKLSAgICA6IEluYmFuZFRleHRUcmFjayhjb250
ZXh0LCBjbGllbnQsIHRyYWNrUHJpdmF0ZSkKK1JlZjxJbmJhbmRUZXh0VHJhY2s+IEluYmFuZFdl
YlZUVFRleHRUcmFjazo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRl
eHRUcmFja0NsaWVudCYgY2xpZW50LCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlJiB0cmFja1ByaXZh
dGUpCiB7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kV2ViVlRUVGV4dFRyYWNrKGNv
bnRleHQsIGNsaWVudCwgdHJhY2tQcml2YXRlKSk7CiB9CiAKIEluYmFuZFdlYlZUVFRleHRUcmFj
azo6fkluYmFuZFdlYlZUVFRleHRUcmFjaygpCkBAIC01OCwxNSArNTcsMTMgQEAgV2ViVlRUUGFy
c2VyJiBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBhcnNlcigpCiAgICAgcmV0dXJuICptX3dlYlZU
VFBhcnNlcjsKIH0KIAotdm9pZCBJbmJhbmRXZWJWVFRUZXh0VHJhY2s6OnBhcnNlV2ViVlRUQ3Vl
RGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiB0cmFja1ByaXZhdGUsIGNvbnN0IGNoYXIqIGRh
dGEsIHVuc2lnbmVkIGxlbmd0aCkKK3ZvaWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpwYXJzZVdl
YlZUVEN1ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogewotICAgIEFT
U0VSVF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAg
ICBwYXJzZXIoKS5wYXJzZUJ5dGVzKGRhdGEsIGxlbmd0aCk7CiB9CiAKLXZvaWQgSW5iYW5kV2Vi
VlRUVGV4dFRyYWNrOjpwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSog
dHJhY2tQcml2YXRlLCBjb25zdCBJU09XZWJWVFRDdWUmIGN1ZURhdGEpCit2b2lkIEluYmFuZFdl
YlZUVFRleHRUcmFjazo6cGFyc2VXZWJWVFRDdWVEYXRhKGNvbnN0IElTT1dlYlZUVEN1ZSYgY3Vl
RGF0YSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09
IG1fcHJpdmF0ZSk7CiAgICAgcGFyc2VyKCkucGFyc2VDdWVEYXRhKGN1ZURhdGEpOwogfQogCkBA
IC03NCwxMCArNzEsOCBAQCB2b2lkIEluYmFuZFdlYlZUVFRleHRUcmFjazo6bmV3Q3Vlc1BhcnNl
ZCgpCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJWVFRDdWVEYXRhPj4gY3VlczsKICAgICBwYXJz
ZXIoKS5nZXROZXdDdWVzKGN1ZXMpOwotCiAgICAgZm9yIChhdXRvJiBjdWVEYXRhIDogY3Vlcykg
ewogICAgICAgICBhdXRvIHZ0dEN1ZSA9IFZUVEN1ZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksICpjdWVEYXRhKTsKLQogICAgICAgICBpZiAoaGFzQ3VlKHZ0dEN1ZS5wdHIoKSwg
VGV4dFRyYWNrQ3VlOjpJZ25vcmVEdXJhdGlvbikpIHsKICAgICAgICAgICAgIExPRyhNZWRpYSwg
IkluYmFuZFdlYlZUVFRleHRUcmFjazo6bmV3Q3Vlc1BhcnNlZCBpZ25vcmluZyBhbHJlYWR5IGFk
ZGVkIGN1ZTogc3RhcnQ9JS4yZiwgZW5kPSUuMmYsIGNvbnRlbnQ9XCIlc1wiXG4iLCB2dHRDdWUt
PnN0YXJ0VGltZSgpLCB2dHRDdWUtPmVuZFRpbWUoKSwgdnR0Q3VlLT50ZXh0KCkudXRmOCgpLmRh
dGEoKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC05MCwxMyArODUsMTIgQEAgdm9pZCBJbmJh
bmRXZWJWVFRUZXh0VHJhY2s6Om5ld1JlZ2lvbnNQYXJzZWQoKQogewogICAgIFZlY3RvcjxSZWZQ
dHI8VlRUUmVnaW9uPj4gbmV3UmVnaW9uczsKICAgICBwYXJzZXIoKS5nZXROZXdSZWdpb25zKG5l
d1JlZ2lvbnMpOwotCiAgICAgZm9yIChhdXRvJiByZWdpb24gOiBuZXdSZWdpb25zKSB7CiAgICAg
ICAgIHJlZ2lvbi0+c2V0VHJhY2sodGhpcyk7Ci0gICAgICAgIHJlZ2lvbnMoKS0+YWRkKHJlZ2lv
bik7CisgICAgICAgIHJlZ2lvbnMoKS0+YWRkKHJlZ2lvbi5yZWxlYXNlTm9uTnVsbCgpKTsKICAg
ICB9CiB9Ci0gICAgCisKIHZvaWQgSW5iYW5kV2ViVlRUVGV4dFRyYWNrOjpmaWxlRmFpbGVkVG9Q
YXJzZSgpCiB7CiAgICAgTE9HKE1lZGlhLCAiRXJyb3IgcGFyc2luZyBXZWJWVFQgc3RyZWFtLiIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0
VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNr
LmgKaW5kZXggOGNjNzdhOWNlZGEzYzM3YmIxZjZlMWQ1YTU5M2QyNjNjM2QyNDllZi4uMjFkOTEz
NDY5NzVhOWE2ZTc5NzliOGFjMDM5ZjRhNjNjM2U4MTRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDI1ICszMCwy
NCBAQAogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFjay5oIgogI2luY2x1ZGUgIldlYlZUVFBhcnNl
ci5oIgogI2luY2x1ZGUgPG1lbW9yeT4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5iYW5kV2ViVlRUVGV4dFRyYWNrIGZpbmFsIDogcHVi
bGljIEluYmFuZFRleHRUcmFjaywgcHJpdmF0ZSBXZWJWVFRQYXJzZXJDbGllbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFRleHRUcmFja0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZT4pOworICAgIHN0YXRpYyBSZWY8SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIFRleHRUcmFja0NsaWVudCYsIEluYmFuZFRleHRUcmFja1ByaXZhdGUm
KTsKICAgICB2aXJ0dWFsIH5JbmJhbmRXZWJWVFRUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKLSAg
ICBJbmJhbmRXZWJWVFRUZXh0VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFj
a0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOworICAgIEluYmFu
ZFdlYlZUVFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGV4dFRyYWNrQ2xpZW50
JiwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpOwogCiAgICAgV2ViVlRUUGFyc2VyJiBwYXJzZXIo
KTsKLSAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwg
Y29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBvdmVycmlkZTsKLSAgICB2b2lkIHBh
cnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNPV2ViVlRU
Q3VlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgY2hhciog
ZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBmaW5hbDsKKyAgICB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0
YShjb25zdCBJU09XZWJWVFRDdWUmKSBmaW5hbDsKIAotICAgIHZvaWQgbmV3Q3Vlc1BhcnNlZCgp
IG92ZXJyaWRlOwotICAgIHZvaWQgbmV3UmVnaW9uc1BhcnNlZCgpIG92ZXJyaWRlOwotICAgIHZv
aWQgZmlsZUZhaWxlZFRvUGFyc2UoKSBvdmVycmlkZTsKKyAgICB2b2lkIG5ld0N1ZXNQYXJzZWQo
KSBmaW5hbDsKKyAgICB2b2lkIG5ld1JlZ2lvbnNQYXJzZWQoKSBmaW5hbDsKKyAgICB2b2lkIGZp
bGVGYWlsZWRUb1BhcnNlKCkgZmluYWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViVlRUUGFy
c2VyPiBtX3dlYlZUVFBhcnNlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
TG9hZGFibGVUZXh0VHJhY2suY3BwCmluZGV4IDIxMGY2YTlkZjVhYzc3MTc1YTk4MTJhYzA1MTA0
MjIzMmEzNDBmMzMuLjU1MjhkZTE3YjI5ZjRiZTBjOTY4Mzg0MzgyOTNlNzM2ODZlODVjZDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suY3BwCkBA
IC0xLDUgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBHb29nbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMyBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yNCwxNCArMjUsMTEgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiTG9hZGFibGVUZXh0VHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
IAotI2luY2x1ZGUgIkxvYWRhYmxlVGV4dFRyYWNrLmgiCi0KLSNpbmNsdWRlICJFdmVudC5oIgog
I2luY2x1ZGUgIkhUTUxUcmFja0VsZW1lbnQuaCIKLSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlTGlzdC5oIgogI2luY2x1ZGUgIlZUVFJl
Z2lvbkxpc3QuaCIKIApAQCAtOTYsMTEgKzk0LDExIEBAIHZvaWQgTG9hZGFibGVUZXh0VHJhY2s6
Om5ld0N1ZXNBdmFpbGFibGUoVGV4dFRyYWNrTG9hZGVyKiBsb2FkZXIpCiAKICAgICBmb3IgKGF1
dG8mIG5ld0N1ZSA6IG5ld0N1ZXMpIHsKICAgICAgICAgbmV3Q3VlLT5zZXRUcmFjayh0aGlzKTsK
LSAgICAgICAgbV9jdWVzLT5hZGQobmV3Q3VlKTsKKyAgICAgICAgbV9jdWVzLT5hZGQobmV3Q3Vl
LnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KIAogICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAg
Y2xpZW50KCktPnRleHRUcmFja0FkZEN1ZXModGhpcywgbV9jdWVzLmdldCgpKTsKKyAgICAgICAg
Y2xpZW50KCktPnRleHRUcmFja0FkZEN1ZXMoKnRoaXMsICptX2N1ZXMpOwogfQogCiB2b2lkIExv
YWRhYmxlVGV4dFRyYWNrOjpjdWVMb2FkaW5nQ29tcGxldGVkKFRleHRUcmFja0xvYWRlciogbG9h
ZGVyLCBib29sIGxvYWRpbmdGYWlsZWQpCkBAIC0xMjIsNyArMTIwLDcgQEAgdm9pZCBMb2FkYWJs
ZVRleHRUcmFjazo6bmV3UmVnaW9uc0F2YWlsYWJsZShUZXh0VHJhY2tMb2FkZXIqIGxvYWRlcikK
IAogICAgIGZvciAoYXV0byYgbmV3UmVnaW9uIDogbmV3UmVnaW9ucykgewogICAgICAgICBuZXdS
ZWdpb24tPnNldFRyYWNrKHRoaXMpOwotICAgICAgICByZWdpb25zKCktPmFkZChuZXdSZWdpb24p
OworICAgICAgICByZWdpb25zKCktPmFkZChuZXdSZWdpb24ucmVsZWFzZU5vbk51bGwoKSk7CiAg
ICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxl
VGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNr
LmgKaW5kZXggMDEwMjBiMGI0Y2JmZjEzOTE0YmU3MmEwOTE2MjkyNmI2Yjg4ZDM2MS4uYmE5Yzc2
ZmIyYzM1OGRhYjg5ZWY1ODE2MGVkMTAxZDM2NzU3NzU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMTIgKzMwLDEwIEBACiAKICNpbmNs
dWRlICJUZXh0VHJhY2suaCIKICNpbmNsdWRlICJUZXh0VHJhY2tMb2FkZXIuaCIKLSNpbmNsdWRl
IDx3dGYvVHlwZUNhc3RzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTFRy
YWNrRWxlbWVudDsKLWNsYXNzIExvYWRhYmxlVGV4dFRyYWNrOwogCiBjbGFzcyBMb2FkYWJsZVRl
eHRUcmFjayBmaW5hbCA6IHB1YmxpYyBUZXh0VHJhY2ssIHByaXZhdGUgVGV4dFRyYWNrTG9hZGVy
Q2xpZW50IHsKIHB1YmxpYzoKQEAgLTQ5LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIEhUTUxUcmFj
a0VsZW1lbnQqIHRyYWNrRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tFbGVtZW50OyB9
CiAgICAgdm9pZCBjbGVhckVsZW1lbnQoKSB7IG1fdHJhY2tFbGVtZW50ID0gbnVsbHB0cjsgfQog
Ci0gICAgdm9pZCBzZXRJc0RlZmF1bHQoYm9vbCBpc0RlZmF1bHQpIGZpbmFsICB7IG1faXNEZWZh
dWx0ID0gaXNEZWZhdWx0OyB9CisgICAgdm9pZCBzZXRJc0RlZmF1bHQoYm9vbCBpc0RlZmF1bHQp
IGZpbmFsIHsgbV9pc0RlZmF1bHQgPSBpc0RlZmF1bHQ7IH0KIAogcHJpdmF0ZToKICAgICBMb2Fk
YWJsZVRleHRUcmFjayhIVE1MVHJhY2tFbGVtZW50JiwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25z
dCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlKTsKQEAgLTY4LDcgKzY3LDcg
QEAgcHJpdmF0ZToKICAgICBUaW1lciBtX2xvYWRUaW1lcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
VGV4dFRyYWNrTG9hZGVyPiBtX2xvYWRlcjsKICAgICBVUkwgbV91cmw7Ci0gICAgYm9vbCBtX2lz
RGVmYXVsdDsKKyAgICBib29sIG1faXNEZWZhdWx0IHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAppbmRl
eCAzMDQ0N2MzMGE0YjM0NDI0MWE0Mjc0NmE4OTU3ODUyMGY1NDQxNjU4Li5iNzA5YTE3NDE2Mzcw
ZTVmYzNlMDNjN2NkZmQ4ZjUxMjMyODJhZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2suY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSwg
MjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDExLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzAsMTEgKzMwLDEwIEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRUcmFjay5oIgogCiAjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQogCi0jaW5jbHVkZSAiVGV4dFRyYWNrLmgiCi0KICNpbmNsdWRlICJFdmVudC5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50Lmgi
CkBAIC00Niw4ICs0NSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGNvbnN0
IGludCBpbnZhbGlkVHJhY2tJbmRleCA9IC0xOwotCiBjb25zdCBBdG9taWNTdHJpbmcmIFRleHRU
cmFjazo6c3VidGl0bGVzS2V5d29yZCgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNv
bnN0IEF0b21pY1N0cmluZz4gc3VidGl0bGVzKCJzdWJ0aXRsZXMiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKTsKQEAgLTEwMSw4ICs5OCw2IEBAIFRleHRUcmFjazo6VGV4dFRy
YWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFRleHRUcmFja0NsaWVudCogY2xp
ZW50LCBjCiAgICAgLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkKICAgICAsIG1f
Y2xpZW50KGNsaWVudCkKICAgICAsIG1fdHJhY2tUeXBlKHR5cGUpCi0gICAgLCBtX3RyYWNrSW5k
ZXgoaW52YWxpZFRyYWNrSW5kZXgpCi0gICAgLCBtX3JlbmRlcmVkVHJhY2tJbmRleChpbnZhbGlk
VHJhY2tJbmRleCkKIHsKICAgICBpZiAoa2luZCA9PSBjYXB0aW9uc0tleXdvcmQoKSkKICAgICAg
ICAgbV9raW5kID0gS2luZDo6Q2FwdGlvbnM7CkBAIC0xMjAsOCArMTE1LDcgQEAgVGV4dFRyYWNr
Ojp+VGV4dFRyYWNrKCkKIHsKICAgICBpZiAobV9jdWVzKSB7CiAgICAgICAgIGlmIChtX2NsaWVu
dCkKLSAgICAgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKHRoaXMsIG1fY3Vl
cy5nZXQoKSk7Ci0KKyAgICAgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1vdmVDdWVzKCp0
aGlzLCAqbV9jdWVzKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2N1ZXMtPmxl
bmd0aCgpOyArK2kpCiAgICAgICAgICAgICBtX2N1ZXMtPml0ZW0oaSktPnNldFRyYWNrKG51bGxw
dHIpOwogICAgIH0KQEAgLTE4OSw3ICsxODMsNyBAQCB2b2lkIFRleHRUcmFjazo6c2V0S2luZChL
aW5kIG5ld0tpbmQpCiAgICAgLy8gMy4gSWYgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24g
dGhpcyB0cmFjayBpcyBub3QgbnVsbCwgdGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBs
ZQogICAgIC8vIGV2ZW50IG5hbWVkIGNoYW5nZSBhdCBzb3VyY2VCdWZmZXIudGV4dFRyYWNrcy4K
ICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291cmNlQnVmZmVyLT50ZXh0VHJh
Y2tzKCktPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXItPnRl
eHRUcmFja3MoKS5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CiAKICAgICAvLyA0LiBRdWV1ZSBhIHRh
c2sgdG8gZmlyZSBhIHNpbXBsZSBldmVudCBuYW1lZCBjaGFuZ2UgYXQgdGhlIFRleHRUcmFja0xp
c3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUgdGV4dFRyYWNrcyBhdHRyaWJ1dGUg
b24gdGhlIEhUTUxNZWRpYUVsZW1lbnQuCkBAIC0xOTgsNyArMTkyLDcgQEAgdm9pZCBUZXh0VHJh
Y2s6OnNldEtpbmQoS2luZCBuZXdLaW5kKQogI2VuZGlmCiAKICAgICBpZiAobV9jbGllbnQgJiYg
b2xkS2luZCAhPSBtX2tpbmQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tLaW5kQ2hhbmdl
ZCh0aGlzKTsKKyAgICAgICAgbV9jbGllbnQtPnRleHRUcmFja0tpbmRDaGFuZ2VkKCp0aGlzKTsK
IH0KIAogdm9pZCBUZXh0VHJhY2s6OnNldEtpbmRLZXl3b3JkSWdub3JpbmdBU0NJSUNhc2UoU3Ry
aW5nVmlldyBrZXl3b3JkKQpAQCAtMjM2LDcgKzIzMCw3IEBAIHZvaWQgVGV4dFRyYWNrOjpzZXRN
b2RlKE1vZGUgbW9kZSkKICAgICAvLyBJZiBtb2RlIGNoYW5nZXMgdG8gZGlzYWJsZWQsIHJlbW92
ZSB0aGlzIHRyYWNrJ3MgY3VlcyBmcm9tIHRoZSBjbGllbnQKICAgICAvLyBiZWNhdXNlIHRoZXkg
d2lsbCBubyBsb25nZXIgYmUgYWNjZXNzaWJsZSBmcm9tIHRoZSBjdWVzKCkgZnVuY3Rpb24uCiAg
ICAgaWYgKG1vZGUgPT0gTW9kZTo6RGlzYWJsZWQgJiYgbV9jbGllbnQgJiYgbV9jdWVzKQotICAg
ICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0aGlzLCBtX2N1ZXMuZ2V0KCkpOwor
ICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlcygqdGhpcywgKm1fY3Vlcyk7CiAK
ICAgICBpZiAobW9kZSAhPSBNb2RlOjpTaG93aW5nICYmIG1fY3VlcykgewogICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkgewpAQCAtMjQ5LDcgKzI0
Myw3IEBAIHZvaWQgVGV4dFRyYWNrOjpzZXRNb2RlKE1vZGUgbW9kZSkKICAgICBtX21vZGUgPSBt
b2RlOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrTW9k
ZUNoYW5nZWQodGhpcyk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tNb2RlQ2hhbmdlZCgq
dGhpcyk7CiB9CiAKIFRleHRUcmFja0N1ZUxpc3QqIFRleHRUcmFjazo6Y3VlcygpCkBAIC0yNzAs
NyArMjY0LDcgQEAgdm9pZCBUZXh0VHJhY2s6OnJlbW92ZUFsbEN1ZXMoKQogICAgICAgICByZXR1
cm47CiAKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tSZW1v
dmVDdWVzKHRoaXMsIG1fY3Vlcy5nZXQoKSk7CisgICAgICAgIG1fY2xpZW50LT50ZXh0VHJhY2tS
ZW1vdmVDdWVzKCp0aGlzLCAqbV9jdWVzKTsKICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG1fY3Vlcy0+bGVuZ3RoKCk7ICsraSkKICAgICAgICAgbV9jdWVzLT5pdGVtKGkpLT5zZXRU
cmFjayhudWxscHRyKTsKQEAgLTI4OCw3ICsyODIsNyBAQCBUZXh0VHJhY2tDdWVMaXN0KiBUZXh0
VHJhY2s6OmFjdGl2ZUN1ZXMoKSBjb25zdAogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9z
cGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI2RvbS10ZXh0dHJhY2stYWN0aXZlY3VlcwogICAg
IGlmICghbV9jdWVzIHx8IG1fbW9kZSA9PSBNb2RlOjpEaXNhYmxlZCkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgcmV0dXJuIG1fY3Vlcy0+YWN0aXZlQ3VlcygpOworICAgIHJldHVybiAm
bV9jdWVzLT5hY3RpdmVDdWVzKCk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFRleHRUcmFjazo6
YWRkQ3VlKFJlZjxUZXh0VHJhY2tDdWU+JiYgY3VlKQpAQCAtMzEwLDE4ICszMDQsMjEgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gVGV4dFRyYWNrOjphZGRDdWUoUmVmPFRleHRUcmFja0N1ZT4mJiBjdWUp
CiAKICAgICAvLyBUaGUgYWRkQ3VlKGN1ZSkgbWV0aG9kIG9mIFRleHRUcmFjayBvYmplY3RzLCB3
aGVuIGludm9rZWQsIG11c3QgcnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6CiAKKyAgICBhdXRvKiBj
dWVUcmFjayA9IGN1ZS0+dHJhY2soKTsKKyAgICBpZiAoY3VlVHJhY2sgPT0gdGhpcykKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKwogICAgIC8vIDEuIElmIHRoZSBnaXZlbiBjdWUgaXMgaW4gYSB0ZXh0
IHRyYWNrIGxpc3Qgb2YgY3VlcywgdGhlbiByZW1vdmUgY3VlIGZyb20gdGhhdCB0ZXh0IHRyYWNr
CiAgICAgLy8gbGlzdCBvZiBjdWVzLgotICAgIFRleHRUcmFjayogY3VlVHJhY2sgPSBjdWUtPnRy
YWNrKCk7Ci0gICAgaWYgKGN1ZVRyYWNrICYmIGN1ZVRyYWNrICE9IHRoaXMpCisgICAgaWYgKGN1
ZVRyYWNrKQogICAgICAgICBjdWVUcmFjay0+cmVtb3ZlQ3VlKGN1ZS5nZXQoKSk7CiAKICAgICAv
LyAyLiBBZGQgY3VlIHRvIHRoZSBtZXRob2QncyBUZXh0VHJhY2sgb2JqZWN0J3MgdGV4dCB0cmFj
aydzIHRleHQgdHJhY2sgbGlzdCBvZiBjdWVzLgogICAgIGN1ZS0+c2V0VHJhY2sodGhpcyk7Ci0g
ICAgZW5zdXJlVGV4dFRyYWNrQ3VlTGlzdCgpLmFkZChjdWUucHRyKCkpOworICAgIGVuc3VyZVRl
eHRUcmFja0N1ZUxpc3QoKS5hZGQoY3VlLmNvcHlSZWYoKSk7CiAgICAgCiAgICAgaWYgKG1fY2xp
ZW50KQotICAgICAgICBtX2NsaWVudC0+dGV4dFRyYWNrQWRkQ3VlKHRoaXMsIGN1ZSk7CisgICAg
ICAgIG1fY2xpZW50LT50ZXh0VHJhY2tBZGRDdWUoKnRoaXMsIGN1ZSk7CiAKICAgICByZXR1cm4g
eyB9OwogfQpAQCAtMzM4LDEyICszMzUsMTIgQEAgRXhjZXB0aW9uT3I8dm9pZD4gVGV4dFRyYWNr
OjpyZW1vdmVDdWUoVGV4dFRyYWNrQ3VlJiBjdWUpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOT1RfRk9VTkRfRVJSIH07CiAKICAgICAvLyAyLiBSZW1vdmUgY3VlIGZyb20gdGhlIG1ldGhv
ZCdzIFRleHRUcmFjayBvYmplY3QncyB0ZXh0IHRyYWNrJ3MgdGV4dCB0cmFjayBsaXN0IG9mIGN1
ZXMuCi0gICAgaWYgKCFtX2N1ZXMgfHwgIW1fY3Vlcy0+cmVtb3ZlKCZjdWUpKQotICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9TVEFURV9FUlIgfTsKLQorICAgIEFTU0VSVChtX2N1
ZXMpOworICAgIG1fY3Vlcy0+cmVtb3ZlKGN1ZSk7CisgICAgY3VlLnNldElzQWN0aXZlKGZhbHNl
KTsKICAgICBjdWUuc2V0VHJhY2sobnVsbHB0cik7CiAgICAgaWYgKG1fY2xpZW50KQotICAgICAg
ICBtX2NsaWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKHRoaXMsIGN1ZSk7CisgICAgICAgIG1fY2xp
ZW50LT50ZXh0VHJhY2tSZW1vdmVDdWUoKnRoaXMsIGN1ZSk7CiAKICAgICByZXR1cm4geyB9Owog
fQpAQCAtMzkyLDEwICszODksOSBAQCB2b2lkIFRleHRUcmFjazo6YWRkUmVnaW9uKFJlZlB0cjxW
VFRSZWdpb24+JiYgcmVnaW9uKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gT3Ro
ZXJ3aXNlOiBhZGQgcmVnaW9uIHRvIHRoZSBtZXRob2QncyBUZXh0VHJhY2sgb2JqZWN0J3MgdGV4
dCB0cmFjawotICAgIC8vIGxpc3Qgb2YgcmVnaW9ucy4KKyAgICAvLyBPdGhlcndpc2U6IGFkZCBy
ZWdpb24gdG8gdGhlIG1ldGhvZCdzIFRleHRUcmFjayBvYmplY3QncyB0ZXh0IHRyYWNrIGxpc3Qg
b2YgcmVnaW9ucy4KICAgICByZWdpb24tPnNldFRyYWNrKHRoaXMpOwotICAgIHJlZ2lvbkxpc3Qu
YWRkKFdURk1vdmUocmVnaW9uKSk7CisgICAgcmVnaW9uTGlzdC5hZGQocmVnaW9uLnJlbGVhc2VO
b25OdWxsKCkpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBUZXh0VHJhY2s6OnJlbW92ZVJlZ2lv
bihWVFRSZWdpb24qIHJlZ2lvbikKQEAgLTQwOCw5ICs0MDQsOCBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBUZXh0VHJhY2s6OnJlbW92ZVJlZ2lvbihWVFRSZWdpb24qIHJlZ2lvbikKICAgICBpZiAocmVn
aW9uLT50cmFjaygpICE9IHRoaXMpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOT1RfRk9V
TkRfRVJSIH07CiAKLSAgICBpZiAoIW1fcmVnaW9ucyB8fCAhbV9yZWdpb25zLT5yZW1vdmUocmVn
aW9uKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfU1RBVEVfRVJSIH07Ci0K
KyAgICBBU1NFUlQobV9yZWdpb25zKTsKKyAgICBtX3JlZ2lvbnMtPnJlbW92ZSgqcmVnaW9uKTsK
ICAgICByZWdpb24tPnNldFRyYWNrKG51bGxwdHIpOwogICAgIHJldHVybiB7IH07CiB9CkBAIC00
MjIsNyArNDE3LDcgQEAgdm9pZCBUZXh0VHJhY2s6OmN1ZVdpbGxDaGFuZ2UoVGV4dFRyYWNrQ3Vl
KiBjdWUpCiAKICAgICAvLyBUaGUgY3VlIG1heSBuZWVkIHRvIGJlIHJlcG9zaXRpb25lZCBpbiB0
aGUgbWVkaWEgZWxlbWVudCdzIGludGVydmFsIHRyZWUsIG1heSBuZWVkIHRvCiAgICAgLy8gYmUg
cmUtcmVuZGVyZWQsIGV0Yywgc28gcmVtb3ZlIGl0IGJlZm9yZSB0aGUgbW9kaWZpY2F0aW9uLi4u
Ci0gICAgbV9jbGllbnQtPnRleHRUcmFja1JlbW92ZUN1ZSh0aGlzLCAqY3VlKTsKKyAgICBtX2Ns
aWVudC0+dGV4dFRyYWNrUmVtb3ZlQ3VlKCp0aGlzLCAqY3VlKTsKIH0KIAogdm9pZCBUZXh0VHJh
Y2s6OmN1ZURpZENoYW5nZShUZXh0VHJhY2tDdWUqIGN1ZSkKQEAgLTQzMSwyNiArNDI2LDI0IEBA
IHZvaWQgVGV4dFRyYWNrOjpjdWVEaWRDaGFuZ2UoVGV4dFRyYWNrQ3VlKiBjdWUpCiAgICAgICAg
IHJldHVybjsKIAogICAgIC8vIE1ha2Ugc3VyZSB0aGUgVGV4dFRyYWNrQ3VlTGlzdCBvcmRlciBp
cyB1cC10by1kYXRlLgotICAgIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKS51cGRhdGVDdWVJbmRl
eChjdWUpOworICAgIGVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKS51cGRhdGVDdWVJbmRleCgqY3Vl
KTsKIAogICAgIC8vIC4uLiBhbmQgYWRkIGl0IGJhY2sgYWdhaW4uCi0gICAgbV9jbGllbnQtPnRl
eHRUcmFja0FkZEN1ZSh0aGlzLCAqY3VlKTsKKyAgICBtX2NsaWVudC0+dGV4dFRyYWNrQWRkQ3Vl
KCp0aGlzLCAqY3VlKTsKIH0KIAogaW50IFRleHRUcmFjazo6dHJhY2tJbmRleCgpCiB7CiAgICAg
QVNTRVJUKG1fbWVkaWFFbGVtZW50KTsKLQotICAgIGlmIChtX3RyYWNrSW5kZXggPT0gaW52YWxp
ZFRyYWNrSW5kZXgpCisgICAgaWYgKCFtX3RyYWNrSW5kZXgpCiAgICAgICAgIG1fdHJhY2tJbmRl
eCA9IG1fbWVkaWFFbGVtZW50LT50ZXh0VHJhY2tzKCkuZ2V0VHJhY2tJbmRleCgqdGhpcyk7Ci0K
LSAgICByZXR1cm4gbV90cmFja0luZGV4OworICAgIHJldHVybiBtX3RyYWNrSW5kZXgudmFsdWUo
KTsKIH0KIAogdm9pZCBUZXh0VHJhY2s6OmludmFsaWRhdGVUcmFja0luZGV4KCkKIHsKLSAgICBt
X3RyYWNrSW5kZXggPSBpbnZhbGlkVHJhY2tJbmRleDsKLSAgICBtX3JlbmRlcmVkVHJhY2tJbmRl
eCA9IGludmFsaWRUcmFja0luZGV4OworICAgIG1fdHJhY2tJbmRleCA9IHN0ZDo6bnVsbG9wdDsK
KyAgICBtX3JlbmRlcmVkVHJhY2tJbmRleCA9IHN0ZDo6bnVsbG9wdDsKIH0KIAogYm9vbCBUZXh0
VHJhY2s6OmlzUmVuZGVyZWQoKQpAQCAtNDY5LDExICs0NjIsOSBAQCBUZXh0VHJhY2tDdWVMaXN0
JiBUZXh0VHJhY2s6OmVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKQogaW50IFRleHRUcmFjazo6dHJh
Y2tJbmRleFJlbGF0aXZlVG9SZW5kZXJlZFRyYWNrcygpCiB7CiAgICAgQVNTRVJUKG1fbWVkaWFF
bGVtZW50KTsKLSAgICAKLSAgICBpZiAobV9yZW5kZXJlZFRyYWNrSW5kZXggPT0gaW52YWxpZFRy
YWNrSW5kZXgpCisgICAgaWYgKCFtX3JlbmRlcmVkVHJhY2tJbmRleCkKICAgICAgICAgbV9yZW5k
ZXJlZFRyYWNrSW5kZXggPSBtX21lZGlhRWxlbWVudC0+dGV4dFRyYWNrcygpLmdldFRyYWNrSW5k
ZXhSZWxhdGl2ZVRvUmVuZGVyZWRUcmFja3MoKnRoaXMpOwotICAgIAotICAgIHJldHVybiBtX3Jl
bmRlcmVkVHJhY2tJbmRleDsKKyAgICByZXR1cm4gbV9yZW5kZXJlZFRyYWNrSW5kZXgudmFsdWUo
KTsKIH0KIAogYm9vbCBUZXh0VHJhY2s6Omhhc0N1ZShUZXh0VHJhY2tDdWUqIGN1ZSwgVGV4dFRy
YWNrQ3VlOjpDdWVNYXRjaFJ1bGVzIG1hdGNoKQpAQCAtNTY1LDcgKzU1Niw3IEBAIHZvaWQgVGV4
dFRyYWNrOjpzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKQogICAgIC8v
IDMuIElmIHRoZSBzb3VyY2VCdWZmZXIgYXR0cmlidXRlIG9uIHRoaXMgdHJhY2sgaXMgbm90IG51
bGwsIHRoZW4gcXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUKICAgICAvLyBldmVudCBuYW1l
ZCBjaGFuZ2UgYXQgc291cmNlQnVmZmVyLnRleHRUcmFja3MuCiAgICAgaWYgKG1fc291cmNlQnVm
ZmVyKQotICAgICAgICBtX3NvdXJjZUJ1ZmZlci0+dGV4dFRyYWNrcygpLT5zY2hlZHVsZUNoYW5n
ZUV2ZW50KCk7CisgICAgICAgIG1fc291cmNlQnVmZmVyLT50ZXh0VHJhY2tzKCkuc2NoZWR1bGVD
aGFuZ2VFdmVudCgpOwogCiAgICAgLy8gNC4gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUg
ZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHRoZSBUZXh0VHJhY2tMaXN0IG9iamVjdCByZWZlcmVuY2Vk
IGJ5CiAgICAgLy8gdGhlIHRleHRUcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVt
ZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKaW5kZXggYjgwNDljNzBjYWUx
YWE5Nzg1YzA0YTU0OTliYzdhZTZjODMwY2VkYi4uOGJiNDdiMjc2ZjZlNTViOTE2NjY3ZDdmY2Ux
NTc0NDU3OGYzYmU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCkBAIC0x
LDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAx
NyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zMCw4ICszMCw2IEBACiAKICNpbmNsdWRlICJUZXh0VHJhY2tDdWUuaCIK
ICNpbmNsdWRlICJUcmFja0Jhc2UuaCIKLSNpbmNsdWRlICJWVFRDdWUuaCIKLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00NCwxMiAr
NDIsMTIgQEAgY2xhc3MgVlRUUmVnaW9uTGlzdDsKIGNsYXNzIFRleHRUcmFja0NsaWVudCB7CiBw
dWJsaWM6CiAgICAgdmlydHVhbCB+VGV4dFRyYWNrQ2xpZW50KCkgeyB9Ci0gICAgdmlydHVhbCB2
b2lkIHRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayopID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgdGV4dFRyYWNrTW9kZUNoYW5nZWQoVGV4dFRyYWNrKikgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCB0ZXh0VHJhY2tBZGRDdWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSA9
IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrKiwgY29u
c3QgVGV4dFRyYWNrQ3VlTGlzdCopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRk
Q3VlKFRleHRUcmFjayosIFRleHRUcmFja0N1ZSYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4
dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayosIFRleHRUcmFja0N1ZSYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgdGV4dFRyYWNrS2luZENoYW5nZWQoVGV4dFRyYWNrJikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2smKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHRleHRUcmFja0FkZEN1ZXMoVGV4dFRyYWNrJiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlz
dCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sm
LCBjb25zdCBUZXh0VHJhY2tDdWVMaXN0JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJh
Y2tBZGRDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrJiwgVGV4dFRyYWNrQ3VlJikgPSAwOwogfTsK
IAogY2xhc3MgVGV4dFRyYWNrIDogcHVibGljIFRyYWNrQmFzZSwgcHVibGljIEV2ZW50VGFyZ2V0
V2l0aElubGluZURhdGEgewpAQCAtMTY3LDggKzE2NSw4IEBAIHByaXZhdGU6CiAgICAgVGV4dFRy
YWNrQ2xpZW50KiBtX2NsaWVudDsKICAgICBUZXh0VHJhY2tUeXBlIG1fdHJhY2tUeXBlOwogICAg
IFJlYWRpbmVzc1N0YXRlIG1fcmVhZGluZXNzU3RhdGUgeyBOb3RMb2FkZWQgfTsKLSAgICBpbnQg
bV90cmFja0luZGV4OwotICAgIGludCBtX3JlbmRlcmVkVHJhY2tJbmRleDsKKyAgICBzdGQ6Om9w
dGlvbmFsPGludD4gbV90cmFja0luZGV4OworICAgIHN0ZDo6b3B0aW9uYWw8aW50PiBtX3JlbmRl
cmVkVHJhY2tJbmRleDsKICAgICBib29sIG1faGFzQmVlbkNvbmZpZ3VyZWQgeyBmYWxzZSB9Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCmluZGV4IGZj
YmExOWQwZGJiYWQ0ZTAwNDc5MDkxZWNkNTZlODI3MmRjZTU4ZWQuLjMzOTE3MmQxMDU1MjMwMjUz
ZWNlYzQxMTA0NzhiZGQzZTlmMTU0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZS5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEx
LCAyMDEzIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMwLDExICszMCwxMCBA
QAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0VHJhY2tDdWUuaCIK
IAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotI2luY2x1ZGUgIlRleHRUcmFja0N1ZS5oIgot
CiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29y
ZHMuaCIKICNpbmNsdWRlICJFdmVudC5oIgpAQCAtNDksOCArNDgsNiBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0YXRpYyBjb25zdCBpbnQgaW52YWxpZEN1ZUluZGV4ID0gLTE7Ci0KIGNv
bnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCgpCiB7CiAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21pY1N0cmluZz4gY3VlKCJjdWUiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKQEAgLTYwLDkgKzU3LDYgQEAgY29u
c3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lkKCkKIFRleHRU
cmFja0N1ZTo6VGV4dFRyYWNrQ3VlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNv
bnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kKQogICAgIDogbV9zdGFy
dFRpbWUoc3RhcnQpCiAgICAgLCBtX2VuZFRpbWUoZW5kKQotICAgICwgbV9jdWVJbmRleChpbnZh
bGlkQ3VlSW5kZXgpCi0gICAgLCBtX3Byb2Nlc3NpbmdDdWVDaGFuZ2VzKDApCi0gICAgLCBtX3Ry
YWNrKDApCiAgICAgLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkKICAgICAsIG1f
aXNBY3RpdmUoZmFsc2UpCiAgICAgLCBtX3BhdXNlT25FeGl0KGZhbHNlKQpAQCAtMTQ5LDIzICsx
NDMsNiBAQCB2b2lkIFRleHRUcmFja0N1ZTo6c2V0UGF1c2VPbkV4aXQoYm9vbCB2YWx1ZSkKICAg
ICBtX3BhdXNlT25FeGl0ID0gdmFsdWU7CiB9CiAKLWludCBUZXh0VHJhY2tDdWU6OmN1ZUluZGV4
KCkKLXsKLSAgICBpZiAobV9jdWVJbmRleCA9PSBpbnZhbGlkQ3VlSW5kZXgpIHsKLSAgICAgICAg
QVNTRVJUKHRyYWNrKCkpOwotICAgICAgICBBU1NFUlQodHJhY2soKS0+Y3VlcygpKTsKLSAgICAg
ICAgaWYgKFRleHRUcmFja0N1ZUxpc3QqIGN1ZUxpc3QgPSB0cmFjaygpLT5jdWVzKCkpCi0gICAg
ICAgICAgICBtX2N1ZUluZGV4ID0gY3VlTGlzdC0+Z2V0Q3VlSW5kZXgodGhpcyk7Ci0gICAgfQot
Ci0gICAgcmV0dXJuIG1fY3VlSW5kZXg7Ci19Ci0KLXZvaWQgVGV4dFRyYWNrQ3VlOjppbnZhbGlk
YXRlQ3VlSW5kZXgoKQotewotICAgIG1fY3VlSW5kZXggPSBpbnZhbGlkQ3VlSW5kZXg7Ci19Ci0K
IGJvb2wgVGV4dFRyYWNrQ3VlOjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCkKIHsKICAgICAv
LyBXaGVuIGEgVGV4dFRyYWNrJ3MgbW9kZSBpcyBkaXNhYmxlZDogbm8gY3VlcyBhcmUgYWN0aXZl
LCBubyBldmVudHMgZmlyZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0N1ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUu
aAppbmRleCA1NzM1MWRjNjBlMmI2ZWFmNTA4MGYwMzA5YTQ1MTY4Zjc4MzBhNzM0Li40OTA3NTQ2
YTI3YWU0ODI0ZTEyYTE0MGE5OWFmZTk2NDgzMTU1MGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNjUsOSArNjUsNiBAQCBwdWJsaWM6
CiAgICAgTWVkaWFUaW1lIGVuZE1lZGlhVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kVGltZTsg
fQogICAgIHZvaWQgc2V0RW5kVGltZShjb25zdCBNZWRpYVRpbWUmKTsKIAotICAgIGludCBjdWVJ
bmRleCgpOwotICAgIHZvaWQgaW52YWxpZGF0ZUN1ZUluZGV4KCk7Ci0KICAgICBib29sIGlzQWN0
aXZlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElzQWN0aXZlKGJvb2wpOwogCkBAIC04Miw5ICs3
OSw2IEBAIHB1YmxpYzoKIAogICAgIGVudW0gQ3VlTWF0Y2hSdWxlcyB7IE1hdGNoQWxsRmllbGRz
LCBJZ25vcmVEdXJhdGlvbiB9OwogICAgIHZpcnR1YWwgYm9vbCBpc0VxdWFsKGNvbnN0IFRleHRU
cmFja0N1ZSYsIEN1ZU1hdGNoUnVsZXMpIGNvbnN0OwotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJv
b2wgY3VlQ29udGVudHNNYXRjaChjb25zdCBUZXh0VHJhY2tDdWUmKSBjb25zdDsKLXB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgZG9lc0V4dGVuZEN1ZShjb25zdCBUZXh0VHJhY2tDdWUmKSBjb25z
dDsKIAogICAgIHZvaWQgd2lsbENoYW5nZSgpOwpAQCAtMTA4LDEzICsxMDIsMTQgQEAgcHJpdmF0
ZToKICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIFRleHRUcmFja0N1ZUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQog
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAmbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9CiAKKyAgICB2aXJ0
dWFsIGJvb2wgY3VlQ29udGVudHNNYXRjaChjb25zdCBUZXh0VHJhY2tDdWUmKSBjb25zdDsKKwog
ICAgIFN0cmluZyBtX2lkOwogICAgIE1lZGlhVGltZSBtX3N0YXJ0VGltZTsKICAgICBNZWRpYVRp
bWUgbV9lbmRUaW1lOwotICAgIGludCBtX2N1ZUluZGV4OwotICAgIGludCBtX3Byb2Nlc3NpbmdD
dWVDaGFuZ2VzOworICAgIGludCBtX3Byb2Nlc3NpbmdDdWVDaGFuZ2VzIHsgMCB9OwogCi0gICAg
VGV4dFRyYWNrKiBtX3RyYWNrOworICAgIFRleHRUcmFjayogbV90cmFjayB7IG51bGxwdHIgfTsK
IAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5jcHAKaW5k
ZXggZmZkOGVhZTRkOTkzNjQ4MGE2YTViYzM1OTJmZTA4MGI3MTZlMTNhMS4uMDM4MjdjOGE3NGUz
MGI2NDkyMGYxMTYwN2NhNjAzYTIxNmZhMzhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMTE3ICszMCwxMDAgQEAKIAogI2luY2x1ZGUgIlRl
eHRUcmFja0N1ZUxpc3QuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworLy8gQ2hlY2tpbmcgc29y
dGluZyBpcyB0b28gc2xvdyBmb3IgZ2VuZXJhbCB1c2U7IHR1cm4gaXQgb24gZXhwbGljaXRseSB3
aGVuIHdvcmtpbmcgb24gdGhpcyBjbGFzcy4KKyN1bmRlZiBDSEVDS19TT1JUSU5HCiAKLVRleHRU
cmFja0N1ZUxpc3Q6OlRleHRUcmFja0N1ZUxpc3QoKQotewotfQorI2lmZGVmIENIRUNLX1NPUlRJ
TkcKKyNkZWZpbmUgQVNTRVJUX1NPUlRFRChiZWdpbiwgZW5kKSBBU1NFUlQoc3RkOjppc19zb3J0
ZWQoYmVnaW4sIGVuZCwgY29tcGFyZUN1ZXMpKQorI2Vsc2UKKyNkZWZpbmUgQVNTRVJUX1NPUlRF
RChiZWdpbiwgZW5kKSAoKHZvaWQpMCkKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LXVuc2lnbmVkIGxvbmcgVGV4dFRyYWNrQ3VlTGlzdDo6bGVuZ3RoKCkgY29uc3QKK3N0YXRpYyBp
bmxpbmUgYm9vbCBjb21wYXJlQ3Vlcyhjb25zdCBSZWZQdHI8VGV4dFRyYWNrQ3VlPiYgYSwgY29u
c3QgUmVmUHRyPFRleHRUcmFja0N1ZT4mIGIpCiB7Ci0gICAgcmV0dXJuIG1fbGlzdC5zaXplKCk7
CisgICAgcmV0dXJuIGEtPmlzT3JkZXJlZEJlZm9yZShiLmdldCgpKTsKIH0KIAotdW5zaWduZWQg
bG9uZyBUZXh0VHJhY2tDdWVMaXN0OjpnZXRDdWVJbmRleChUZXh0VHJhY2tDdWUqIGN1ZSkgY29u
c3QKK3Vuc2lnbmVkIFRleHRUcmFja0N1ZUxpc3Q6OmN1ZUluZGV4KFRleHRUcmFja0N1ZSYgY3Vl
KSBjb25zdAogewotICAgIHJldHVybiBtX2xpc3QuZmluZChjdWUpOworICAgIEFTU0VSVChtX3Zl
Y3Rvci5jb250YWlucygmY3VlKSk7CisgICAgcmV0dXJuIG1fdmVjdG9yLmZpbmQoJmN1ZSk7CiB9
CiAKIFRleHRUcmFja0N1ZSogVGV4dFRyYWNrQ3VlTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkg
Y29uc3QKIHsKLSAgICBpZiAoaW5kZXggPCBtX2xpc3Quc2l6ZSgpKQotICAgICAgICByZXR1cm4g
bV9saXN0W2luZGV4XS5nZXQoKTsKLSAgICByZXR1cm4gMDsKKyAgICBpZiAoaW5kZXggPj0gbV92
ZWN0b3Iuc2l6ZSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gbV92ZWN0
b3JbaW5kZXhdLmdldCgpOwogfQogCiBUZXh0VHJhY2tDdWUqIFRleHRUcmFja0N1ZUxpc3Q6Omdl
dEN1ZUJ5SWQoY29uc3QgU3RyaW5nJiBpZCkgY29uc3QKIHsKLSAgICBmb3IgKGF1dG8mIGN1ZSA6
IG1fbGlzdCkgeworICAgIGZvciAoYXV0byYgY3VlIDogbV92ZWN0b3IpIHsKICAgICAgICAgaWYg
KGN1ZS0+aWQoKSA9PSBpZCkKICAgICAgICAgICAgIHJldHVybiBjdWUuZ2V0KCk7CiAgICAgfQot
ICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCi1UZXh0VHJhY2tDdWVMaXN0
KiBUZXh0VHJhY2tDdWVMaXN0OjphY3RpdmVDdWVzKCkKK1RleHRUcmFja0N1ZUxpc3QmIFRleHRU
cmFja0N1ZUxpc3Q6OmFjdGl2ZUN1ZXMoKQogewogICAgIGlmICghbV9hY3RpdmVDdWVzKQogICAg
ICAgICBtX2FjdGl2ZUN1ZXMgPSBjcmVhdGUoKTsKIAotICAgIG1fYWN0aXZlQ3Vlcy0+Y2xlYXIo
KTsKLSAgICBmb3IgKGF1dG8mIGN1ZSA6IG1fbGlzdCkgeworICAgIFZlY3RvcjxSZWZQdHI8VGV4
dFRyYWNrQ3VlPj4gYWN0aXZlQ3Vlc1ZlY3RvcjsKKyAgICBmb3IgKGF1dG8mIGN1ZSA6IG1fdmVj
dG9yKSB7CiAgICAgICAgIGlmIChjdWUtPmlzQWN0aXZlKCkpCi0gICAgICAgICAgICBtX2FjdGl2
ZUN1ZXMtPmFkZChjdWUpOworICAgICAgICAgICAgYWN0aXZlQ3Vlc1ZlY3Rvci5hcHBlbmQoY3Vl
KTsKICAgICB9Ci0gICAgcmV0dXJuIG1fYWN0aXZlQ3Vlcy5nZXQoKTsKKyAgICBBU1NFUlRfU09S
VEVEKGFjdGl2ZUN1ZXNWZWN0b3IuYmVnaW4oKSwgYWN0aXZlQ3Vlc1ZlY3Rvci5lbmQoKSk7Cisg
ICAgbV9hY3RpdmVDdWVzLT5tX3ZlY3RvciA9IFdURk1vdmUoYWN0aXZlQ3Vlc1ZlY3Rvcik7CisK
KyAgICAvLyBGSVhNRTogVGhpcyBsaXN0IG9mIGFjdGl2ZSBjdWVzIGlzIG5vdCB1cGRhdGVkIGFz
IGN1ZXMgYXJlIGFkZGVkLCByZW1vdmVkLCBiZWNvbWUgYWN0aXZlLCBhbmQgYmVjb21lIGluYWN0
aXZlLgorICAgIC8vIEluc3RlYWQgaXQgaXMgb25seSB1cGRhdGVkIGVhY2ggdGltZSB0aGlzIGZ1
bmN0aW9uIGlzIGNhbGxlZCBhZ2Fpbi4gVGhhdCBpcyBub3QgY29uc2lzdGVudCB3aXRoIG90aGVy
IGR5bmFtaWMgRE9NIGxpc3RzLgorICAgIHJldHVybiAqbV9hY3RpdmVDdWVzOwogfQogCi1ib29s
IFRleHRUcmFja0N1ZUxpc3Q6OmFkZChQYXNzUmVmUHRyPFRleHRUcmFja0N1ZT4gY3VlKQordm9p
ZCBUZXh0VHJhY2tDdWVMaXN0OjphZGQoUmVmPFRleHRUcmFja0N1ZT4mJiBjdWUpCiB7CisgICAg
QVNTRVJUKCFtX3ZlY3Rvci5jb250YWlucyhjdWUucHRyKCkpKTsKICAgICBBU1NFUlQoY3VlLT5z
dGFydE1lZGlhVGltZSgpID49IE1lZGlhVGltZTo6emVyb1RpbWUoKSk7CiAgICAgQVNTRVJUKGN1
ZS0+ZW5kTWVkaWFUaW1lKCkgPj0gTWVkaWFUaW1lOjp6ZXJvVGltZSgpKTsKIAotICAgIHJldHVy
biBhZGQoY3VlLCAwLCBtX2xpc3Quc2l6ZSgpKTsKKyAgICBSZWZQdHI8VGV4dFRyYWNrQ3VlPiBj
dWVSZWZQdHIgeyBXVEZNb3ZlKGN1ZSkgfTsKKyAgICB1bnNpZ25lZCBpbnNlcnRpb25Qb3NpdGlv
biA9IHN0ZDo6dXBwZXJfYm91bmQobV92ZWN0b3IuYmVnaW4oKSwgbV92ZWN0b3IuZW5kKCksIGN1
ZVJlZlB0ciwgY29tcGFyZUN1ZXMpIC0gbV92ZWN0b3IuYmVnaW4oKTsKKyAgICBBU1NFUlRfU09S
VEVEKG1fdmVjdG9yLmJlZ2luKCksIG1fdmVjdG9yLmVuZCgpKTsKKyAgICBtX3ZlY3Rvci5pbnNl
cnQoaW5zZXJ0aW9uUG9zaXRpb24sIFdURk1vdmUoY3VlUmVmUHRyKSk7CisgICAgQVNTRVJUX1NP
UlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSk7CiB9CiAKLWJvb2wgVGV4dFRy
YWNrQ3VlTGlzdDo6YWRkKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiBwcnBDdWUsIHNpemVfdCBz
dGFydCwgc2l6ZV90IGVuZCkKK3ZvaWQgVGV4dFRyYWNrQ3VlTGlzdDo6cmVtb3ZlKFRleHRUcmFj
a0N1ZSYgY3VlKQogewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHN0YXJ0
IDw9IG1fbGlzdC5zaXplKCkpOwotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9O
KGVuZCA8PSBtX2xpc3Quc2l6ZSgpKTsKLQotICAgIC8vIE1haW50YWluIHRleHQgdHJhY2sgY3Vl
IG9yZGVyOgotICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJy
ZW50LXdvcmsvI3RleHQtdHJhY2stY3VlLW9yZGVyCi0gICAgUmVmUHRyPFRleHRUcmFja0N1ZT4g
Y3VlID0gcHJwQ3VlOwotICAgIGlmIChzdGFydCA9PSBlbmQpIHsKLSAgICAgICAgaWYgKCFtX2xp
c3QuaXNFbXB0eSgpICYmIChzdGFydCA+IDApICYmIChtX2xpc3Rbc3RhcnQgLSAxXS5nZXQoKSA9
PSBjdWUuZ2V0KCkpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIG1fbGlz
dC5pbnNlcnQoc3RhcnQsIGN1ZSk7Ci0gICAgICAgIGludmFsaWRhdGVDdWVJbmRleGVzKHN0YXJ0
KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgc2l6ZV90IGluZGV4ID0gKHN0
YXJ0ICsgZW5kKSAvIDI7Ci0gICAgaWYgKGN1ZS0+aXNPcmRlcmVkQmVmb3JlKG1fbGlzdFtpbmRl
eF0uZ2V0KCkpKQotICAgICAgICByZXR1cm4gYWRkKFdURk1vdmUoY3VlKSwgc3RhcnQsIGluZGV4
KTsKLQotICAgIHJldHVybiBhZGQoV1RGTW92ZShjdWUpLCBpbmRleCArIDEsIGVuZCk7CisgICAg
QVNTRVJUX1NPUlRFRChtX3ZlY3Rvci5iZWdpbigpLCBtX3ZlY3Rvci5lbmQoKSk7CisgICAgbV92
ZWN0b3IucmVtb3ZlKGN1ZUluZGV4KGN1ZSkpOworICAgIEFTU0VSVF9TT1JURUQobV92ZWN0b3Iu
YmVnaW4oKSwgbV92ZWN0b3IuZW5kKCkpOwogfQogCi1ib29sIFRleHRUcmFja0N1ZUxpc3Q6OnJl
bW92ZShUZXh0VHJhY2tDdWUqIGN1ZSkKK3ZvaWQgVGV4dFRyYWNrQ3VlTGlzdDo6dXBkYXRlQ3Vl
SW5kZXgoVGV4dFRyYWNrQ3VlJiBjdWUpCiB7Ci0gICAgc2l6ZV90IGluZGV4ID0gbV9saXN0LmZp
bmQoY3VlKTsKLSAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIGN1ZS0+c2V0SXNBY3RpdmUoZmFsc2UpOwotICAgIG1fbGlzdC5yZW1vdmUoaW5k
ZXgpOwotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIFRleHRUcmFja0N1ZUxpc3Q6OmNvbnRh
aW5zKFRleHRUcmFja0N1ZSogY3VlKSBjb25zdAotewotICAgIHJldHVybiBtX2xpc3QuY29udGFp
bnMoY3VlKTsKLX0KLQotYm9vbCBUZXh0VHJhY2tDdWVMaXN0Ojp1cGRhdGVDdWVJbmRleChUZXh0
VHJhY2tDdWUqIGN1ZSkKLXsKLSAgICBpZiAoIWNvbnRhaW5zKGN1ZSkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAKLSAgICByZW1vdmUoY3VlKTsKLSAgICByZXR1cm4gYWRkKGN1ZSk7Ci19
Ci0KLXZvaWQgVGV4dFRyYWNrQ3VlTGlzdDo6Y2xlYXIoKQotewotICAgIG1fbGlzdC5jbGVhcigp
OwotfQorICAgIGF1dG8gY3VlUG9zaXRpb24gPSBtX3ZlY3Rvci5iZWdpbigpICsgY3VlSW5kZXgo
Y3VlKTsKKyAgICBhdXRvIGFmdGVyQ3VlUG9zaXRpb24gPSBjdWVQb3NpdGlvbiArIDE7CisKKyAg
ICBBU1NFUlRfU09SVEVEKG1fdmVjdG9yLmJlZ2luKCksIGN1ZVBvc2l0aW9uKTsKKyAgICBBU1NF
UlRfU09SVEVEKGFmdGVyQ3VlUG9zaXRpb24sIG1fdmVjdG9yLmVuZCgpKTsKKworICAgIGF1dG8g
cmVpbnNlcnRpb25Qb3NpdGlvbiA9IHN0ZDo6dXBwZXJfYm91bmQobV92ZWN0b3IuYmVnaW4oKSwg
Y3VlUG9zaXRpb24sICpjdWVQb3NpdGlvbiwgY29tcGFyZUN1ZXMpOworICAgIGlmIChyZWluc2Vy
dGlvblBvc2l0aW9uICE9IGN1ZVBvc2l0aW9uKQorICAgICAgICBzdGQ6OnJvdGF0ZShyZWluc2Vy
dGlvblBvc2l0aW9uLCBjdWVQb3NpdGlvbiwgYWZ0ZXJDdWVQb3NpdGlvbik7CisgICAgZWxzZSB7
CisgICAgICAgIHJlaW5zZXJ0aW9uUG9zaXRpb24gPSBzdGQ6OnVwcGVyX2JvdW5kKGFmdGVyQ3Vl
UG9zaXRpb24sIG1fdmVjdG9yLmVuZCgpLCAqY3VlUG9zaXRpb24sIGNvbXBhcmVDdWVzKTsKKyAg
ICAgICAgaWYgKHJlaW5zZXJ0aW9uUG9zaXRpb24gIT0gYWZ0ZXJDdWVQb3NpdGlvbikKKyAgICAg
ICAgICAgIHN0ZDo6cm90YXRlKGN1ZVBvc2l0aW9uLCBhZnRlckN1ZVBvc2l0aW9uLCByZWluc2Vy
dGlvblBvc2l0aW9uKTsKKyAgICB9CiAKLXZvaWQgVGV4dFRyYWNrQ3VlTGlzdDo6aW52YWxpZGF0
ZUN1ZUluZGV4ZXMoc2l6ZV90IHN0YXJ0KQotewotICAgIGZvciAoc2l6ZV90IGkgPSBzdGFydDsg
aSA8IG1fbGlzdC5zaXplKCk7ICsraSkKLSAgICAgICAgbV9saXN0W2ldLT5pbnZhbGlkYXRlQ3Vl
SW5kZXgoKTsKKyAgICBBU1NFUlRfU09SVEVEKG1fdmVjdG9yLmJlZ2luKCksIG1fdmVjdG9yLmVu
ZCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuaAppbmRleCBhMjE4ZmI2OTA4OTYyNGMxZjI4MzljNzUz
YWMxMjVmZjBkYjNjMjk5Li5mZTA0YzQ0NmQyOTc3YzdmY2U5MzJjNjNiODI5Nzk4MzRmMjI1ZTcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuaApAQCAt
MSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDQ0ICsy
OSw0MiBAQAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAogI2luY2x1ZGUgIlRleHRUcmFja0N1
ZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgVGV4dFRyYWNrQ3VlTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFRleHRUcmFja0N1ZUxp
c3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFRleHRUcmFja0N1ZUxpc3Q+IGNyZWF0ZSgp
Ci0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0VHJhY2tDdWVMaXN0KTsK
LSAgICB9Ci0KLSAgICB+VGV4dFRyYWNrQ3VlTGlzdCgpIHsgfQotCi0gICAgdW5zaWduZWQgbG9u
ZyBsZW5ndGgoKSBjb25zdDsKLSAgICB1bnNpZ25lZCBsb25nIGdldEN1ZUluZGV4KFRleHRUcmFj
a0N1ZSopIGNvbnN0OworICAgIHN0YXRpYyBSZWY8VGV4dFRyYWNrQ3VlTGlzdD4gY3JlYXRlKCk7
CiAKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKICAgICBUZXh0VHJhY2tDdWUqIGl0ZW0o
dW5zaWduZWQgaW5kZXgpIGNvbnN0OwogICAgIFRleHRUcmFja0N1ZSogZ2V0Q3VlQnlJZChjb25z
dCBTdHJpbmcmKSBjb25zdDsKLSAgICBUZXh0VHJhY2tDdWVMaXN0KiBhY3RpdmVDdWVzKCk7CiAK
LSAgICBib29sIGFkZChQYXNzUmVmUHRyPFRleHRUcmFja0N1ZT4pOwotICAgIGJvb2wgcmVtb3Zl
KFRleHRUcmFja0N1ZSopOwotICAgIGJvb2wgY29udGFpbnMoVGV4dFRyYWNrQ3VlKikgY29uc3Q7
Ci0gICAgCi0gICAgYm9vbCB1cGRhdGVDdWVJbmRleChUZXh0VHJhY2tDdWUqKTsKKyAgICB1bnNp
Z25lZCBjdWVJbmRleChUZXh0VHJhY2tDdWUmKSBjb25zdDsKKworICAgIHZvaWQgYWRkKFJlZjxU
ZXh0VHJhY2tDdWU+JiYpOworICAgIHZvaWQgcmVtb3ZlKFRleHRUcmFja0N1ZSYpOworICAgIHZv
aWQgdXBkYXRlQ3VlSW5kZXgoVGV4dFRyYWNrQ3VlJik7CisKKyAgICBUZXh0VHJhY2tDdWVMaXN0
JiBhY3RpdmVDdWVzKCk7CiAKIHByaXZhdGU6Ci0gICAgVGV4dFRyYWNrQ3VlTGlzdCgpOwotICAg
IGJvb2wgYWRkKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiwgc2l6ZV90LCBzaXplX3QpOwotICAg
IHZvaWQgY2xlYXIoKTsKLSAgICB2b2lkIGludmFsaWRhdGVDdWVJbmRleGVzKHNpemVfdCk7Cisg
ICAgVGV4dFRyYWNrQ3VlTGlzdCgpID0gZGVmYXVsdDsKIAotICAgIFZlY3RvcjxSZWZQdHI8VGV4
dFRyYWNrQ3VlPj4gbV9saXN0OworICAgIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrQ3VlPj4gbV92
ZWN0b3I7CiAgICAgUmVmUHRyPFRleHRUcmFja0N1ZUxpc3Q+IG1fYWN0aXZlQ3VlczsKIH07CiAK
K2lubGluZSBSZWY8VGV4dFRyYWNrQ3VlTGlzdD4gVGV4dFRyYWNrQ3VlTGlzdDo6Y3JlYXRlKCkK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0VHJhY2tDdWVMaXN0KTsKK30KKworaW5s
aW5lIHVuc2lnbmVkIFRleHRUcmFja0N1ZUxpc3Q6Omxlbmd0aCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fdmVjdG9yLnNpemUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UcmFja0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0Jh
c2UuY3BwCmluZGV4IDJmZDBiZGI0NzIzNjAzNTBlOTg2YjM1YzNjMTFiYjRjMzIwNTdjNWEuLmJj
OTUxMTFlMWVmNmM3ZGZkMGZmMjMzNWMxM2VhZGJkMmEyMzRlYjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RyYWNrQmFzZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lkIE1lZGlhVHJhY2tC
YXNlOjpzZXRLaW5kSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiBraW5kKQogICAgIGlmIChp
c1ZhbGlkS2luZChraW5kKSkKICAgICAgICAgbV9raW5kID0ga2luZDsKICAgICBlbHNlCi0gICAg
ICAgIG1fa2luZCA9IGRlZmF1bHRLaW5kS2V5d29yZCgpOworICAgICAgICBtX2tpbmQgPSBlbXB0
eUF0b207CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RyYWNrQmFzZS5oCmluZGV4IDE4MjUwMGUwNzczZjhlMTM3MjM4ZWUyNzUzODE5ZTNhYTFhZWMw
YTYuLjE2ZDE2MmExMzVmNjFhOTVjNzcyY2FlZWMzYmI1YzJiZGFhZTk3OTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tCYXNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UcmFja0Jhc2UuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsOSArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQogCi0jaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKLSNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9BdG9taWNTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC05OSw3ICs5Nyw2
IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZEtpbmQo
Y29uc3QgQXRvbWljU3RyaW5nJikgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBkZWZhdWx0S2luZEtleXdvcmQoKSBjb25zdCA9IDA7CiAKICAgICBBdG9taWNTdHJp
bmcgbV9raW5kOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRU
UmVnaW9uTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3Qu
Y3BwCmluZGV4IGI3ZTc5ZDBmN2U2YmJjNzRlNDFhNzFmZDViZWU3NDFkYzEyZDdkZDIuLmNmYzE2
MjIzZjM1MzRjOWRmNmFjZGYwZDc1YTJjYmYwOTA4YjgzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAxNCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw1NyArMjksNDEgQEAKIAogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKIAotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVZUVFJlZ2lvbkxpc3Q6
OlZUVFJlZ2lvbkxpc3QoKQotewotfQotCi11bnNpZ25lZCBsb25nIFZUVFJlZ2lvbkxpc3Q6Omxl
bmd0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbGlzdC5zaXplKCk7Ci19Ci0KIFZUVFJlZ2lv
biogVlRUUmVnaW9uTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKIHsKLSAgICBpZiAo
aW5kZXggPCBtX2xpc3Quc2l6ZSgpKQotICAgICAgICByZXR1cm4gbV9saXN0W2luZGV4XS5nZXQo
KTsKLQotICAgIHJldHVybiAwOworICAgIGlmIChpbmRleCA+PSBtX3ZlY3Rvci5zaXplKCkpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjb25zdF9jYXN0PFZUVFJlZ2lvbio+
KG1fdmVjdG9yW2luZGV4XS5wdHIoKSk7CiB9CiAKIFZUVFJlZ2lvbiogVlRUUmVnaW9uTGlzdDo6
Z2V0UmVnaW9uQnlJZChjb25zdCBTdHJpbmcmIGlkKSBjb25zdAogeworICAgIC8vIEZJWE1FOiBX
aHkgaXMgdGhpcyBzcGVjaWFsIGNhc2UgbmVlZGVkPwogICAgIGlmIChpZC5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiAwOwotCi0gICAgZm9yIChjb25zdCBhdXRvJiByZWdpb24gOiBtX2xpc3Qp
IHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgZm9yIChhdXRvJiByZWdpb24gOiBtX3Zl
Y3RvcikgewogICAgICAgICBpZiAocmVnaW9uLT5pZCgpID09IGlkKQotICAgICAgICAgICAgcmV0
dXJuIHJlZ2lvbi5nZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0PFZUVFJlZ2lv
bio+KHJlZ2lvbi5wdHIoKSk7CiAgICAgfQotCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKLXZvaWQgVlRUUmVnaW9uTGlzdDo6YWRkKFBhc3NSZWZQdHI8VlRUUmVnaW9u
PiByZWdpb24pCit2b2lkIFZUVFJlZ2lvbkxpc3Q6OmFkZChSZWY8VlRUUmVnaW9uPiYmIHJlZ2lv
bikKIHsKLSAgICBtX2xpc3QuYXBwZW5kKHJlZ2lvbik7CisgICAgbV92ZWN0b3IuYXBwZW5kKFdU
Rk1vdmUocmVnaW9uKSk7CiB9CiAKLWJvb2wgVlRUUmVnaW9uTGlzdDo6cmVtb3ZlKFZUVFJlZ2lv
biogcmVnaW9uKQordm9pZCBWVFRSZWdpb25MaXN0OjpyZW1vdmUoVlRUUmVnaW9uJiByZWdpb24p
CiB7Ci0gICAgc2l6ZV90IGluZGV4ID0gbV9saXN0LmZpbmQocmVnaW9uKTsKLSAgICBpZiAoaW5k
ZXggPT0gbm90Rm91bmQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIG1fbGlzdC5yZW1v
dmUoaW5kZXgpOwotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIFZUVFJlZ2lvbkxpc3Q6OmNs
ZWFyKCkKLXsKLSAgICBtX2xpc3QuY2xlYXIoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBz
aXplID0gbV92ZWN0b3Iuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIGlmIChtX3Zl
Y3RvcltpXS5wdHIoKSA9PSAmcmVnaW9uKSB7CisgICAgICAgICAgICBtX3ZlY3Rvci5yZW1vdmUo
aSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmgKaW5kZXggMmZkZGRjMmVkMTlhNTZlNDgxYWFjZjQ2
NWJjODhhN2IyYjdmY2NlMy4uN2Y5ZmQ1NWRjYmUxMjQ3ZjI4YjljMzkzOWMyMDhiZThlOTQwNmQz
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmgKQEAgLTEsNiAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMzYgKzI5
LDQzIEBACiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiVlRUUmVnaW9uLmgi
Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBWVFRSZWdpb25MaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8VlRUUmVnaW9uTGlzdD4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8VlRUUmVnaW9uTGlzdD4gY3JlYXRlKCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZUVFJlZ2lvbkxpc3QpOwotICAgIH0KLQotICAgIH5W
VFRSZWdpb25MaXN0KCkgeyB9Ci0KLSAgICB1bnNpZ25lZCBsb25nIGxlbmd0aCgpIGNvbnN0Owor
ICAgIHN0YXRpYyBSZWY8VlRUUmVnaW9uTGlzdD4gY3JlYXRlKCk7CiAKKyAgICB1bnNpZ25lZCBs
ZW5ndGgoKSBjb25zdDsKICAgICBWVFRSZWdpb24qIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0
OwogICAgIFZUVFJlZ2lvbiogZ2V0UmVnaW9uQnlJZChjb25zdCBTdHJpbmcmKSBjb25zdDsKIAot
ICAgIHZvaWQgYWRkKFBhc3NSZWZQdHI8VlRUUmVnaW9uPik7Ci0gICAgYm9vbCByZW1vdmUoVlRU
UmVnaW9uKik7CisgICAgdm9pZCBhZGQoUmVmPFZUVFJlZ2lvbj4mJik7CisgICAgdm9pZCByZW1v
dmUoVlRUUmVnaW9uJik7CiAKIHByaXZhdGU6Ci0gICAgVlRUUmVnaW9uTGlzdCgpOworICAgIFZU
VFJlZ2lvbkxpc3QoKSA9IGRlZmF1bHQ7CisKICAgICB2b2lkIGNsZWFyKCk7CiAKLSAgICBWZWN0
b3I8UmVmUHRyPFZUVFJlZ2lvbj4+IG1fbGlzdDsKKyAgICBWZWN0b3I8UmVmPFZUVFJlZ2lvbj4+
IG1fdmVjdG9yOwogfTsKIAoraW5saW5lIFJlZjxWVFRSZWdpb25MaXN0PiBWVFRSZWdpb25MaXN0
OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZUVFJlZ2lvbkxpc3QpOwor
fQorCitpbmxpbmUgdW5zaWduZWQgVlRUUmVnaW9uTGlzdDo6bGVuZ3RoKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV92ZWN0b3Iuc2l6ZSgpOworfQorCitpbmxpbmUgdm9pZCBWVFRSZWdpb25MaXN0
OjpjbGVhcigpCit7CisgICAgbV92ZWN0b3IuY2xlYXIoKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVlRUUmVnaW9uTGlzdC5pZGwKaW5kZXggNTM4MWQzOWM2NmYxY2ZjM2QwMjFi
MWRjNDBlYzMyODE0MmM3YmNkMS4uODQzMWQ4YjUxYjJhZDQwZDlhMDkxYjY3Y2I4NWZlNTA5NjA5
YTg5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRSZWdpb25MaXN0
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZUVFJlZ2lvbkxpc3QuaWRsCkBA
IC0xLDUgKzEsNiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMTIg
KzI1LDExIEBACiAgKi8KIAogWwotICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogICAgIENvbmRpdGlv
bmFsPVZJREVPX1RSQUNLLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgTm9J
bnRlcmZhY2VPYmplY3QsCiBdIGludGVyZmFjZSBWVFRSZWdpb25MaXN0IHsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgZ2V0dGVyIFZUVFJlZ2lvbiBp
dGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwotICAgIFZUVFJlZ2lvbiBnZXRSZWdpb25CeUlkKERP
TVN0cmluZyBpZCk7CisgICAgZ2V0dGVyIFZUVFJlZ2lvbj8gaXRlbSh1bnNpZ25lZCBsb25nIGlu
ZGV4KTsKKyAgICBWVFRSZWdpb24/IGdldFJlZ2lvbkJ5SWQoRE9NU3RyaW5nIGlkKTsKIH07Ci0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suY3BwCmluZGV4IDgyNzAwOWU1MGIx
NzM3YjliMGZlM2IwYWRlN2NlNzVjYTQxMGI4MTYuLmY2NjJkYWUzYTY3OTRlZGQ3YzYzMTVhZmFl
Y2U5ODIyN2RjNmM2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlk
ZW9UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmNw
cApAQCAtMSw2ICsxLDYgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQpAQCAtMzAsMTIgKzMwLDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlZpZGVvVHJhY2suaCIKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
IAotI2luY2x1ZGUgIlZpZGVvVHJhY2suaCIKLQotI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIlZpZGVvVHJhY2tMaXN0LmgiCiAKQEAg
LTgxLDEwICs3OSwxMCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFZpZGVvVHJhY2s6OmNvbW1lbnRh
cnlLZXl3b3JkKCkKICAgICByZXR1cm4gY29tbWVudGFyeTsKIH0KIAotVmlkZW9UcmFjazo6Vmlk
ZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50KiBjbGllbnQsIFBhc3NSZWZQdHI8VmlkZW9UcmFja1By
aXZhdGU+IHRyYWNrUHJpdmF0ZSkKLSAgICA6IE1lZGlhVHJhY2tCYXNlKE1lZGlhVHJhY2tCYXNl
OjpWaWRlb1RyYWNrLCB0cmFja1ByaXZhdGUtPmlkKCksIHRyYWNrUHJpdmF0ZS0+bGFiZWwoKSwg
dHJhY2tQcml2YXRlLT5sYW5ndWFnZSgpKQotICAgICwgbV9zZWxlY3RlZCh0cmFja1ByaXZhdGUt
PnNlbGVjdGVkKCkpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCitWaWRlb1RyYWNrOjpWaWRlb1Ry
YWNrKFZpZGVvVHJhY2tDbGllbnQmIGNsaWVudCwgVmlkZW9UcmFja1ByaXZhdGUmIHRyYWNrUHJp
dmF0ZSkKKyAgICA6IE1lZGlhVHJhY2tCYXNlKE1lZGlhVHJhY2tCYXNlOjpWaWRlb1RyYWNrLCB0
cmFja1ByaXZhdGUuaWQoKSwgdHJhY2tQcml2YXRlLmxhYmVsKCksIHRyYWNrUHJpdmF0ZS5sYW5n
dWFnZSgpKQorICAgICwgbV9zZWxlY3RlZCh0cmFja1ByaXZhdGUuc2VsZWN0ZWQoKSkKKyAgICAs
IG1fY2xpZW50KCZjbGllbnQpCiAgICAgLCBtX3ByaXZhdGUodHJhY2tQcml2YXRlKQogewogICAg
IG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOwpAQCAtOTMsMTUgKzkxLDEyIEBAIFZpZGVvVHJh
Y2s6OlZpZGVvVHJhY2soVmlkZW9UcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPFZpZGVv
VHJhY2tQcml2YXRlPiB0CiAKIFZpZGVvVHJhY2s6On5WaWRlb1RyYWNrKCkKIHsKLSAgICBtX3By
aXZhdGUtPnNldENsaWVudCgwKTsKKyAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsK
IH0KIAotdm9pZCBWaWRlb1RyYWNrOjpzZXRQcml2YXRlKFBhc3NSZWZQdHI8VmlkZW9UcmFja1By
aXZhdGU+IHRyYWNrUHJpdmF0ZSkKK3ZvaWQgVmlkZW9UcmFjazo6c2V0UHJpdmF0ZShWaWRlb1Ry
YWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewotICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAg
IEFTU0VSVCh0cmFja1ByaXZhdGUpOwotCi0gICAgaWYgKG1fcHJpdmF0ZSA9PSB0cmFja1ByaXZh
dGUpCisgICAgaWYgKG1fcHJpdmF0ZS5wdHIoKSA9PSAmdHJhY2tQcml2YXRlKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRyKTsKQEAgLTExNCwyMCAr
MTA5LDEyIEBAIHZvaWQgVmlkZW9UcmFjazo6c2V0UHJpdmF0ZShQYXNzUmVmUHRyPFZpZGVvVHJh
Y2tQcml2YXRlPiB0cmFja1ByaXZhdGUpCiAKIGJvb2wgVmlkZW9UcmFjazo6aXNWYWxpZEtpbmQo
Y29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkgY29uc3QKIHsKLSAgICBpZiAodmFsdWUgPT0gYWx0
ZXJuYXRpdmVLZXl3b3JkKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmICh2YWx1ZSA9
PSBjYXB0aW9uc0tleXdvcmQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKHZhbHVl
ID09IG1haW5LZXl3b3JkKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmICh2YWx1ZSA9
PSBzaWduS2V5d29yZCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAodmFsdWUgPT0g
c3VidGl0bGVzS2V5d29yZCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAodmFsdWUg
PT0gY29tbWVudGFyeUtleXdvcmQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIHZhbHVlID09IGFsdGVybmF0aXZlS2V5d29yZCgpCisgICAg
ICAgIHx8IHZhbHVlID09IGNvbW1lbnRhcnlLZXl3b3JkKCkKKyAgICAgICAgfHwgdmFsdWUgPT0g
Y2FwdGlvbnNLZXl3b3JkKCkKKyAgICAgICAgfHwgdmFsdWUgPT0gbWFpbktleXdvcmQoKQorICAg
ICAgICB8fCB2YWx1ZSA9PSBzaWduS2V5d29yZCgpCisgICAgICAgIHx8IHZhbHVlID09IHN1YnRp
dGxlc0tleXdvcmQoKTsKIH0KIAogdm9pZCBWaWRlb1RyYWNrOjpzZXRTZWxlY3RlZChjb25zdCBi
b29sIHNlbGVjdGVkKQpAQCAtMTM5LDQ2ICsxMjYsNDQgQEAgdm9pZCBWaWRlb1RyYWNrOjpzZXRT
ZWxlY3RlZChjb25zdCBib29sIHNlbGVjdGVkKQogICAgIG1fcHJpdmF0ZS0+c2V0U2VsZWN0ZWQo
c2VsZWN0ZWQpOwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dmlkZW9U
cmFja1NlbGVjdGVkQ2hhbmdlZCh0aGlzKTsKKyAgICAgICAgbV9jbGllbnQtPnZpZGVvVHJhY2tT
ZWxlY3RlZENoYW5nZWQoKnRoaXMpOwogfQogCiBzaXplX3QgVmlkZW9UcmFjazo6aW5iYW5kVHJh
Y2tJbmRleCgpCiB7Ci0gICAgQVNTRVJUKG1fcHJpdmF0ZSk7CiAgICAgcmV0dXJuIG1fcHJpdmF0
ZS0+dHJhY2tJbmRleCgpOwogfQogCi12b2lkIFZpZGVvVHJhY2s6OnNlbGVjdGVkQ2hhbmdlZChW
aWRlb1RyYWNrUHJpdmF0ZSogdHJhY2tQcml2YXRlLCBib29sIHNlbGVjdGVkKQordm9pZCBWaWRl
b1RyYWNrOjpzZWxlY3RlZENoYW5nZWQoYm9vbCBzZWxlY3RlZCkKIHsKLSAgICBBU1NFUlRfVU5V
U0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0U2Vs
ZWN0ZWQoc2VsZWN0ZWQpOwogfQogCi12b2lkIFZpZGVvVHJhY2s6OmlkQ2hhbmdlZChUcmFja1By
aXZhdGVCYXNlKiB0cmFja1ByaXZhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQpCit2b2lkIFZp
ZGVvVHJhY2s6OmlkQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKQogewotICAgIEFTU0VS
VF9VTlVTRUQodHJhY2tQcml2YXRlLCB0cmFja1ByaXZhdGUgPT0gbV9wcml2YXRlKTsKICAgICBz
ZXRJZChpZCk7CiB9CiAKLXZvaWQgVmlkZW9UcmFjazo6bGFiZWxDaGFuZ2VkKFRyYWNrUHJpdmF0
ZUJhc2UqIHRyYWNrUHJpdmF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkKK3ZvaWQgVmlk
ZW9UcmFjazo6bGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwpCiB7Ci0gICAg
QVNTRVJUX1VOVVNFRCh0cmFja1ByaXZhdGUsIHRyYWNrUHJpdmF0ZSA9PSBtX3ByaXZhdGUpOwog
ICAgIHNldExhYmVsKGxhYmVsKTsKIH0KIAotdm9pZCBWaWRlb1RyYWNrOjpsYW5ndWFnZUNoYW5n
ZWQoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxh
bmd1YWdlKQordm9pZCBWaWRlb1RyYWNrOjpsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWljU3Ry
aW5nJiBsYW5ndWFnZSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRyYWNrUHJpdmF0ZSwgdHJhY2tQ
cml2YXRlID09IG1fcHJpdmF0ZSk7CiAgICAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2UpOwogfQogCi12
b2lkIFZpZGVvVHJhY2s6OndpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSogdHJhY2tQcml2YXRl
KQordm9pZCBWaWRlb1RyYWNrOjp3aWxsUmVtb3ZlKCkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHRy
YWNrUHJpdmF0ZSwgdHJhY2tQcml2YXRlID09IG1fcHJpdmF0ZSk7Ci0gICAgbWVkaWFFbGVtZW50
KCktPnJlbW92ZVZpZGVvVHJhY2soKnRoaXMpOworICAgIGF1dG8qIGVsZW1lbnQgPSBtZWRpYUVs
ZW1lbnQoKTsKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKyAgICBlbGVtZW50
LT5yZW1vdmVWaWRlb1RyYWNrKCp0aGlzKTsKIH0KIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0Up
CisKIHZvaWQgVmlkZW9UcmFjazo6c2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQpCiB7
CiAgICAgLy8gMTAuMSBraW5kLCBvbiBzZXR0aW5nOgpAQCAtMTkzLDcgKzE3OCw3IEBAIHZvaWQg
VmlkZW9UcmFjazo6c2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmIGtpbmQpCiAgICAgLy8gMy4g
SWYgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhpcyB0cmFjayBpcyBub3QgbnVsbCwg
dGhlbiBxdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZQogICAgIC8vIGV2ZW50IG5hbWVkIGNo
YW5nZSBhdCBzb3VyY2VCdWZmZXIudmlkZW9UcmFja3MuCiAgICAgaWYgKG1fc291cmNlQnVmZmVy
KQotICAgICAgICBtX3NvdXJjZUJ1ZmZlci0+dmlkZW9UcmFja3MoKS0+c2NoZWR1bGVDaGFuZ2VF
dmVudCgpOworICAgICAgICBtX3NvdXJjZUJ1ZmZlci0+dmlkZW9UcmFja3MoKS5zY2hlZHVsZUNo
YW5nZUV2ZW50KCk7CiAKICAgICAvLyA0LiBRdWV1ZSBhIHRhc2sgdG8gZmlyZSBhIHNpbXBsZSBl
dmVudCBuYW1lZCBjaGFuZ2UgYXQgdGhlIFZpZGVvVHJhY2tMaXN0IG9iamVjdCByZWZlcmVuY2Vk
IGJ5CiAgICAgLy8gdGhlIHZpZGVvVHJhY2tzIGF0dHJpYnV0ZSBvbiB0aGUgSFRNTE1lZGlhRWxl
bWVudC4KQEAgLTIxNCwxMiArMTk5LDEzIEBAIHZvaWQgVmlkZW9UcmFjazo6c2V0TGFuZ3VhZ2Uo
Y29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKICAgICAvLyAzLiBJZiB0aGUgc291cmNlQnVm
ZmVyIGF0dHJpYnV0ZSBvbiB0aGlzIHRyYWNrIGlzIG5vdCBudWxsLCB0aGVuIHF1ZXVlIGEgdGFz
ayB0byBmaXJlIGEgc2ltcGxlCiAgICAgLy8gZXZlbnQgbmFtZWQgY2hhbmdlIGF0IHNvdXJjZUJ1
ZmZlci52aWRlb1RyYWNrcy4KICAgICBpZiAobV9zb3VyY2VCdWZmZXIpCi0gICAgICAgIG1fc291
cmNlQnVmZmVyLT52aWRlb1RyYWNrcygpLT5zY2hlZHVsZUNoYW5nZUV2ZW50KCk7CisgICAgICAg
IG1fc291cmNlQnVmZmVyLT52aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIAog
ICAgIC8vIDQuIFF1ZXVlIGEgdGFzayB0byBmaXJlIGEgc2ltcGxlIGV2ZW50IG5hbWVkIGNoYW5n
ZSBhdCB0aGUgVmlkZW9UcmFja0xpc3Qgb2JqZWN0IHJlZmVyZW5jZWQgYnkKICAgICAvLyB0aGUg
dmlkZW9UcmFja3MgYXR0cmlidXRlIG9uIHRoZSBIVE1MTWVkaWFFbGVtZW50LgogICAgIG1lZGlh
RWxlbWVudCgpLT52aWRlb1RyYWNrcygpLnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKIH0KKwogI2Vu
ZGlmCiAKIHZvaWQgVmlkZW9UcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKCkKQEAgLTIyNywy
OSArMjEzLDI3IEBAIHZvaWQgVmlkZW9UcmFjazo6dXBkYXRlS2luZEZyb21Qcml2YXRlKCkKICAg
ICBzd2l0Y2ggKG1fcHJpdmF0ZS0+a2luZCgpKSB7CiAgICAgY2FzZSBWaWRlb1RyYWNrUHJpdmF0
ZTo6QWx0ZXJuYXRpdmU6CiAgICAgICAgIHNldEtpbmRJbnRlcm5hbChWaWRlb1RyYWNrOjphbHRl
cm5hdGl2ZUtleXdvcmQoKSk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAgICAg
Y2FzZSBWaWRlb1RyYWNrUHJpdmF0ZTo6Q2FwdGlvbnM6CiAgICAgICAgIHNldEtpbmRJbnRlcm5h
bChWaWRlb1RyYWNrOjpjYXB0aW9uc0tleXdvcmQoKSk7Ci0gICAgICAgIGJyZWFrOworICAgICAg
ICByZXR1cm47CiAgICAgY2FzZSBWaWRlb1RyYWNrUHJpdmF0ZTo6TWFpbjoKICAgICAgICAgc2V0
S2luZEludGVybmFsKFZpZGVvVHJhY2s6Om1haW5LZXl3b3JkKCkpOwotICAgICAgICBicmVhazsK
KyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmlkZW9UcmFja1ByaXZhdGU6OlNpZ246CiAgICAg
ICAgIHNldEtpbmRJbnRlcm5hbChWaWRlb1RyYWNrOjpzaWduS2V5d29yZCgpKTsKLSAgICAgICAg
YnJlYWs7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFZpZGVvVHJhY2tQcml2YXRlOjpTdWJ0
aXRsZXM6CiAgICAgICAgIHNldEtpbmRJbnRlcm5hbChWaWRlb1RyYWNrOjpzdWJ0aXRsZXNLZXl3
b3JkKCkpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmlkZW9U
cmFja1ByaXZhdGU6OkNvbW1lbnRhcnk6CiAgICAgICAgIHNldEtpbmRJbnRlcm5hbChWaWRlb1Ry
YWNrOjpjb21tZW50YXJ5S2V5d29yZCgpKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIFZpZGVvVHJhY2tQcml2YXRlOjpOb25lOgogICAgICAgICBzZXRLaW5kSW50
ZXJuYWwoZW1wdHlTdHJpbmcoKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJu
OwogICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNr
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaAppbmRleCBjNTJmOWIz
YjEyZmM2OTY4OGRhN2ZkNjcwMzM3MDFmYjFiODRmMzJjLi5lYmVlODI5ZTE2OThmYzFjMmIxM2M1
YjBlMTBmYzk0OWRlZTJiNTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZpZGVvVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2su
aApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zOSwxMiArMzksMTIgQEAgY2xhc3MgVmlkZW9UcmFjazsKIGNsYXNzIFZp
ZGVvVHJhY2tDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgflZpZGVvVHJhY2tDbGllbnQo
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1Ry
YWNrKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZp
ZGVvVHJhY2smKSA9IDA7CiB9OwogCi1jbGFzcyBWaWRlb1RyYWNrIGZpbmFsIDogcHVibGljIE1l
ZGlhVHJhY2tCYXNlLCBwdWJsaWMgVmlkZW9UcmFja1ByaXZhdGVDbGllbnQgeworY2xhc3MgVmlk
ZW9UcmFjayBmaW5hbCA6IHB1YmxpYyBNZWRpYVRyYWNrQmFzZSwgcHJpdmF0ZSBWaWRlb1RyYWNr
UHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxWaWRlb1RyYWNrPiBjcmVh
dGUoVmlkZW9UcmFja0NsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRl
PiB0cmFja1ByaXZhdGUpCisgICAgc3RhdGljIFJlZjxWaWRlb1RyYWNrPiBjcmVhdGUoVmlkZW9U
cmFja0NsaWVudCYgY2xpZW50LCBWaWRlb1RyYWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFjayhjbGllbnQsIHRyYWNr
UHJpdmF0ZSkpOwogICAgIH0KQEAgLTU2LDQ4ICs1Niw0NiBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0IEF0b21pY1N0cmluZyYgc2lnbktleXdvcmQoKTsKICAgICBzdGF0aWMgY29uc3QgQXRv
bWljU3RyaW5nJiBzdWJ0aXRsZXNLZXl3b3JkKCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0
cmluZyYgY29tbWVudGFyeUtleXdvcmQoKTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGRlZmF1
bHRLaW5kS2V5d29yZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGVtcHR5QXRvbTsgfQogCiAg
ICAgYm9vbCBzZWxlY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0ZWQ7IH0KICAgICB2aXJ0
dWFsIHZvaWQgc2V0U2VsZWN0ZWQoY29uc3QgYm9vbCk7CiAKLSAgICB2b2lkIGNsZWFyQ2xpZW50
KCkgb3ZlcnJpZGUgeyBtX2NsaWVudCA9IDA7IH0KKyAgICB2b2lkIGNsZWFyQ2xpZW50KCkgZmlu
YWwgeyBtX2NsaWVudCA9IG51bGxwdHI7IH0KICAgICBWaWRlb1RyYWNrQ2xpZW50KiBjbGllbnQo
KSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQogCiAgICAgc2l6ZV90IGluYmFuZFRyYWNrSW5k
ZXgoKTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgdm9pZCBzZXRLaW5kKGNvbnN0
IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0TGFuZ3VhZ2UoY29uc3QgQXRv
bWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRLaW5kKGNvbnN0IEF0b21pY1N0cmlu
ZyYpIGZpbmFsOworICAgIHZvaWQgc2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5nJikgZmlu
YWw7CiAjZW5kaWYKIAogICAgIGNvbnN0IE1lZGlhRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKCkg
Y29uc3Q7CiAKLSAgICB2b2lkIHNldFByaXZhdGUoUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0
ZT4pOwotCi1wcm90ZWN0ZWQ6Ci0gICAgVmlkZW9UcmFjayhWaWRlb1RyYWNrQ2xpZW50KiwgUGFz
c1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4gcHJpdmF0ZVRyYWNrKTsKKyAgICB2b2lkIHNldFBy
aXZhdGUoVmlkZW9UcmFja1ByaXZhdGUmKTsKIAogcHJpdmF0ZToKLSAgICBib29sIGlzVmFsaWRL
aW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IG92ZXJyaWRlOworICAgIFZpZGVvVHJhY2so
VmlkZW9UcmFja0NsaWVudCYsIFZpZGVvVHJhY2tQcml2YXRlJik7CisKKyAgICBib29sIGlzVmFs
aWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8gVmlkZW9U
cmFja1ByaXZhdGVDbGllbnQKLSAgICB2b2lkIHNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrUHJp
dmF0ZSosIGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJvb2wpIGZp
bmFsOwogCiAgICAgLy8gVHJhY2tQcml2YXRlQmFzZUNsaWVudAotICAgIHZvaWQgaWRDaGFuZ2Vk
KFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2
b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWljU3RyaW5nJikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNv
bnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbFJlbW92ZShUcmFja1By
aXZhdGVCYXNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBpZENoYW5nZWQoY29uc3QgQXRvbWljU3Ry
aW5nJikgZmluYWw7CisgICAgdm9pZCBsYWJlbENoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJikg
ZmluYWw7CisgICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJikgZmlu
YWw7CisgICAgdm9pZCB3aWxsUmVtb3ZlKCkgZmluYWw7CiAKLSAgICBib29sIGVuYWJsZWQoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBzZWxlY3RlZCgpOyB9CisgICAgYm9vbCBlbmFibGVkKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gc2VsZWN0ZWQoKTsgfQogCiAgICAgdm9pZCB1cGRhdGVLaW5k
RnJvbVByaXZhdGUoKTsKIAogICAgIGJvb2wgbV9zZWxlY3RlZDsKICAgICBWaWRlb1RyYWNrQ2xp
ZW50KiBtX2NsaWVudDsKIAotICAgIFJlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4gbV9wcml2YXRl
OworICAgIFJlZjxWaWRlb1RyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDJjMTIz
OTVmYTY2MWQxNWJiNTQ1MDg4OTRmYzBhYWNkZDU1Y2U2ZTcuLjNiZDg4YjRmNjM5N2JmYTY2YWZi
ZTk2NmZiM2QzM2FkYWZhYTlhMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
QEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IEVyaWMgU2VpZGVsIChl
cmljQHdlYmtpdC5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICogQ29weXJpZ2h0IChDKSAyMDEy
IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMTcyLDcg
KzE3Miw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUq
LCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2FkSWNvbkZv
ckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXIqKSBvdmVycmlkZSB7
IH0KKyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxl
SWNvbkxvYWRlciYpIG92ZXJyaWRlIHsgfQogCiAgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29u
c3QgTm9kZSopIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9k
ZSopIG92ZXJyaWRlIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCmluZGV4IDAx
ODg5NDZlN2Q4ZGY0MjUyYzFlZDQ5NGFkN2E5OTE2NzY5MTE2OGIuLjQ3MzJhOTI1NTU3MmYxZjg2
YmU5M2VkMTVmZjRkZTE2YmM5MzAwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9QaW5nTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5j
cHAKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgUm9vcGVzaCBDaGFu
ZGVyIChyb29wQHJvb3BjLm5ldCkKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTU3LDM4ICs1Nyw1MCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBF
TkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotc3RhdGljIENvbnRlbnRFeHRlbnNpb25zOjpCbG9j
a2VkU3RhdHVzIHByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKGNvbnN0IEZyYW1l
JiBmcmFtZSwgY29uc3QgVVJMJiB1cmwsIFJlc291cmNlVHlwZSByZXNvdXJjZVR5cGUpCisjaWYg
IUVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCisKKy8vIFJldHVybnMgdHJ1ZSBpZiB3ZSBzaG91
bGQgYmxvY2sgdGhlIGxvYWQuCitzdGF0aWMgaW5saW5lIGJvb2wgcHJvY2Vzc0NvbnRlbnRFeHRl
bnNpb25SdWxlc0ZvckxvYWQoY29uc3QgRnJhbWUmLCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJj
ZVR5cGUpCiB7Ci0gICAgaWYgKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IGZyYW1l
LmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpIHsKLSAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBm
cmFtZS5wYWdlKCkpCi0gICAgICAgICAgICByZXR1cm4gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRl
cigpLnByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2FkKHVybCwgcmVzb3VyY2VUeXBl
LCAqZG9jdW1lbnRMb2FkZXIpOwotICAgIH0KLSAgICByZXR1cm4geyB9OworICAgIHJldHVybiBm
YWxzZTsKK30KKworI2Vsc2UKKworLy8gUmV0dXJucyB0cnVlIGlmIHdlIHNob3VsZCBibG9jayB0
aGUgbG9hZC4KK3N0YXRpYyBib29sIHByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JMb2Fk
KGNvbnN0IEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZVR5
cGUgcmVzb3VyY2VUeXBlKQoreworICAgIGF1dG8qIGRvY3VtZW50TG9hZGVyID0gZnJhbWUubG9h
ZGVyKCkuZG9jdW1lbnRMb2FkZXIoKTsKKyAgICBpZiAoIWRvY3VtZW50TG9hZGVyKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgYXV0byogcGFnZSA9IGZyYW1lLnBhZ2UoKTsKKyAgICBpZiAo
IXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBhdXRvIHN0YXR1cyA9IHBhZ2UtPnVz
ZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZChy
ZXF1ZXN0LnVybCgpLCByZXNvdXJjZVR5cGUsICpkb2N1bWVudExvYWRlcik7CisgICAgYXBwbHlC
bG9ja2VkU3RhdHVzVG9SZXF1ZXN0KHN0YXR1cywgcmVxdWVzdCk7CisgICAgcmV0dXJuIHN0YXR1
cy5ibG9ja2VkTG9hZDsKIH0KKwogI2VuZGlmCiAKIHZvaWQgUGluZ0xvYWRlcjo6bG9hZEltYWdl
KEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiB7Ci0gICAgaWYgKCFmcmFtZS5kb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpLT5jYW5EaXNwbGF5KHVybCkpIHsKKyAgICBBU1NFUlQoZnJh
bWUuZG9jdW1lbnQoKSk7CisgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUuZG9jdW1lbnQoKTsK
KworICAgIGlmICghZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS0+Y2FuRGlzcGxheSh1cmwpKSB7
CiAgICAgICAgIEZyYW1lTG9hZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQoJmZyYW1lLCB1cmwp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qo
dXJsKTsKLQotI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgYXV0byBibG9ja2Vk
U3RhdHVzID0gcHJvY2Vzc0NvbnRlbnRFeHRlbnNpb25SdWxlc0ZvckxvYWQoZnJhbWUsIHVybCwg
UmVzb3VyY2VUeXBlOjpJbWFnZSk7Ci0gICAgYXBwbHlCbG9ja2VkU3RhdHVzVG9SZXF1ZXN0KGJs
b2NrZWRTdGF0dXMsIHJlcXVlc3QpOwotICAgIGlmIChibG9ja2VkU3RhdHVzLmJsb2NrZWRMb2Fk
KQorICAgIGlmIChwcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZChmcmFtZSwgcmVx
dWVzdCwgUmVzb3VyY2VUeXBlOjpJbWFnZSkpCiAgICAgICAgIHJldHVybjsKLSNlbmRpZgogCi0g
ICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLmRvY3VtZW50KCkpCi0gICAgICAgIGRv
Y3VtZW50LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElm
TmVlZGVkKHJlcXVlc3QsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlw
ZTo6TG9hZCk7CisgICAgZG9jdW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPnVwZ3JhZGVJ
bnNlY3VyZVJlcXVlc3RJZk5lZWRlZChyZXF1ZXN0LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Oklu
c2VjdXJlUmVxdWVzdFR5cGU6OkxvYWQpOwogCiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmll
bGQoSFRUUEhlYWRlck5hbWU6OkNhY2hlQ29udHJvbCwgIm1heC1hZ2U9MCIpOwotICAgIFN0cmlu
ZyByZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVyKGZyYW1l
LmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIHJlcXVlc3QudXJsKCksIGZyYW1lLmxvYWRl
cigpLm91dGdvaW5nUmVmZXJyZXIoKSk7CisgICAgU3RyaW5nIHJlZmVycmVyID0gU2VjdXJpdHlQ
b2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIoZG9jdW1lbnQucmVmZXJyZXJQb2xpY3koKSwg
cmVxdWVzdC51cmwoKSwgZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKTsKICAgICBp
ZiAoIXJlZmVycmVyLmlzRW1wdHkoKSkKICAgICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIo
cmVmZXJyZXIpOwogICAgIGZyYW1lLmxvYWRlcigpLmFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJj
ZVJlcXVlc3QocmVxdWVzdCk7CkBAIC05OSwxOSArMTExLDE3IEBAIHZvaWQgUGluZ0xvYWRlcjo6
bG9hZEltYWdlKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAvLyBodHRwOi8vd3d3Lndo
YXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9saW5rcy5odG1s
I2h5cGVybGluay1hdWRpdGluZwogdm9pZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhGcmFtZSYgZnJh
bWUsIGNvbnN0IFVSTCYgcGluZ1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCkKIHsKKyAg
ICBBU1NFUlQoZnJhbWUuZG9jdW1lbnQoKSk7CisKICAgICBpZiAoIXBpbmdVUkwucHJvdG9jb2xJ
c0luSFRUUEZhbWlseSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdChwaW5nVVJMKTsKLSAgICAKLSNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQot
ICAgIGF1dG8gYmxvY2tlZFN0YXR1cyA9IHByb2Nlc3NDb250ZW50RXh0ZW5zaW9uUnVsZXNGb3JM
b2FkKGZyYW1lLCBwaW5nVVJMLCBSZXNvdXJjZVR5cGU6OlJhdyk7Ci0gICAgYXBwbHlCbG9ja2Vk
U3RhdHVzVG9SZXF1ZXN0KGJsb2NrZWRTdGF0dXMsIHJlcXVlc3QpOwotICAgIGlmIChibG9ja2Vk
U3RhdHVzLmJsb2NrZWRMb2FkKQorICAgIGlmIChwcm9jZXNzQ29udGVudEV4dGVuc2lvblJ1bGVz
Rm9yTG9hZChmcmFtZSwgcmVxdWVzdCwgUmVzb3VyY2VUeXBlOjpSYXcpKQogICAgICAgICByZXR1
cm47Ci0jZW5kaWYKIAotICAgIGZyYW1lLmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdCwgQ29udGVudFNlY3Vy
aXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsKKyAgICBhdXRvJiBkb2N1bWVu
dCA9ICpmcmFtZS5kb2N1bWVudCgpOworICAgIGRvY3VtZW50LmNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdCwgQ29udGVudFNlY3Vy
aXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsKIAogICAgIHJlcXVlc3Quc2V0
SFRUUE1ldGhvZCgiUE9TVCIpOwogICAgIHJlcXVlc3Quc2V0SFRUUENvbnRlbnRUeXBlKCJ0ZXh0
L3BpbmciKTsKQEAgLTExOSwxNCArMTI5LDE0IEBAIHZvaWQgUGluZ0xvYWRlcjo6c2VuZFBpbmco
RnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHBpbmdVUkwsIGNvbnN0IFVSTCYgZGVzdGluYXRpCiAg
ICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNhY2hlQ29udHJv
bCwgIm1heC1hZ2U9MCIpOwogICAgIGZyYW1lLmxvYWRlcigpLmFkZEV4dHJhRmllbGRzVG9TdWJy
ZXNvdXJjZVJlcXVlc3QocmVxdWVzdCk7CiAKLSAgICBTZWN1cml0eU9yaWdpbiogc291cmNlT3Jp
Z2luID0gZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKLSAgICBSZWY8U2VjdXJp
dHlPcmlnaW4+IHBpbmdPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShwaW5nVVJMKSk7Ci0g
ICAgRnJhbWVMb2FkZXI6OmFkZEhUVFBPcmlnaW5JZk5lZWRlZChyZXF1ZXN0LCBzb3VyY2VPcmln
aW4tPnRvU3RyaW5nKCkpOworICAgIEFTU0VSVChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpKTsK
KyAgICBhdXRvJiBzb3VyY2VPcmlnaW4gPSAqZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKTsKKyAg
ICBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKHJlcXVlc3QsIHNvdXJjZU9yaWdp
bi50b1N0cmluZygpKTsKICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVy
TmFtZTo6UGluZ1RvLCBkZXN0aW5hdGlvblVSTCk7CiAgICAgaWYgKCFTZWN1cml0eVBvbGljeTo6
c2hvdWxkSGlkZVJlZmVycmVyKHBpbmdVUkwsIGZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJy
ZXIoKSkpIHsKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5h
bWU6OlBpbmdGcm9tLCBmcmFtZS5kb2N1bWVudCgpLT51cmwoKSk7Ci0gICAgICAgIGlmICghc291
cmNlT3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydCgmcGluZ09yaWdpbi5nZXQoKSkpIHsKLSAg
ICAgICAgICAgIFN0cmluZyByZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVy
cmVySGVhZGVyKGZyYW1lLmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIHBpbmdVUkwsIGZy
YW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSk7CisgICAgICAgIHJlcXVlc3Quc2V0SFRU
UEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpQaW5nRnJvbSwgZG9jdW1lbnQudXJsKCkpOwor
ICAgICAgICBpZiAoIXNvdXJjZU9yaWdpbi5pc1NhbWVTY2hlbWVIb3N0UG9ydChTZWN1cml0eU9y
aWdpbjo6Y3JlYXRlKHBpbmdVUkwpLnB0cigpKSkgeworICAgICAgICAgICAgU3RyaW5nIHJlZmVy
cmVyID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIoZG9jdW1lbnQucmVm
ZXJyZXJQb2xpY3koKSwgcGluZ1VSTCwgZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigp
KTsKICAgICAgICAgICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAg
IHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKHJlZmVycmVyKTsKICAgICAgICAgfQpAQCAtMTM1LDE5
ICsxNDUsMTYgQEAgdm9pZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhGcmFtZSYgZnJhbWUsIGNvbnN0
IFVSTCYgcGluZ1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGkKICAgICBzdGFydFBpbmdMb2FkKGZy
YW1lLCByZXF1ZXN0LCBTaG91bGRGb2xsb3dSZWRpcmVjdHM6Olllcyk7CiB9CiAKLXZvaWQgUGlu
Z0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcmVw
b3J0VVJMLCBSZWZQdHI8Rm9ybURhdGE+JiYgcmVwb3J0LCBWaW9sYXRpb25SZXBvcnRUeXBlIHJl
cG9ydFR5cGUpCit2b2lkIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUmIGZy
YW1lLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgUmVmPEZvcm1EYXRhPiYmIHJlcG9ydCwgVmlvbGF0
aW9uUmVwb3J0VHlwZSByZXBvcnRUeXBlKQogewotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0
KHJlcG9ydFVSTCk7CisgICAgQVNTRVJUKGZyYW1lLmRvY3VtZW50KCkpOwogCi0jaWYgRU5BQkxF
KENPTlRFTlRfRVhURU5TSU9OUykKLSAgICBhdXRvIGJsb2NrZWRTdGF0dXMgPSBwcm9jZXNzQ29u
dGVudEV4dGVuc2lvblJ1bGVzRm9yTG9hZChmcmFtZSwgcmVwb3J0VVJMLCBSZXNvdXJjZVR5cGU6
OlJhdyk7Ci0gICAgYXBwbHlCbG9ja2VkU3RhdHVzVG9SZXF1ZXN0KGJsb2NrZWRTdGF0dXMsIHJl
cXVlc3QpOwotICAgIGlmIChibG9ja2VkU3RhdHVzLmJsb2NrZWRMb2FkKQorICAgIFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KHJlcG9ydFVSTCk7CisgICAgaWYgKHByb2Nlc3NDb250ZW50RXh0ZW5z
aW9uUnVsZXNGb3JMb2FkKGZyYW1lLCByZXF1ZXN0LCBSZXNvdXJjZVR5cGU6OlJhdykpCiAgICAg
ICAgIHJldHVybjsKLSNlbmRpZgogCi0gICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1l
LmRvY3VtZW50KCkpCi0gICAgICAgIGRvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+
dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKHJlcXVlc3QsIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CisgICAgYXV0byYgZG9jdW1lbnQgPSAq
ZnJhbWUuZG9jdW1lbnQoKTsKKyAgICBkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+
dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKHJlcXVlc3QsIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CiAKICAgICByZXF1ZXN0LnNldEhUVFBN
ZXRob2QoQVNDSUlMaXRlcmFsKCJQT1NUIikpOwogICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkoV1RG
TW92ZShyZXBvcnQpKTsKQEAgLTE2MSwxOCArMTY4LDE2IEBAIHZvaWQgUGluZ0xvYWRlcjo6c2Vu
ZFZpb2xhdGlvblJlcG9ydChGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBSZWZQ
dHI8CiAgICAgfQogCiAgICAgYm9vbCByZW1vdmVDb29raWVzID0gdHJ1ZTsKLSAgICBpZiAoRG9j
dW1lbnQqIGRvY3VtZW50ID0gZnJhbWUuZG9jdW1lbnQoKSkgewotICAgICAgICBpZiAoU2VjdXJp
dHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luID0gZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkpIHsK
LSAgICAgICAgICAgIGlmIChzZWN1cml0eU9yaWdpbi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQoU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZShyZXBvcnRVUkwpLnB0cigpKSkKLSAgICAgICAgICAgICAgICBy
ZW1vdmVDb29raWVzID0gZmFsc2U7Ci0gICAgICAgIH0KKyAgICBpZiAoYXV0byogc2VjdXJpdHlP
cmlnaW4gPSBkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpKSB7CisgICAgICAgIGlmIChzZWN1cml0
eU9yaWdpbi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShyZXBv
cnRVUkwpLnB0cigpKSkKKyAgICAgICAgICAgIHJlbW92ZUNvb2tpZXMgPSBmYWxzZTsKICAgICB9
CiAgICAgaWYgKHJlbW92ZUNvb2tpZXMpCiAgICAgICAgIHJlcXVlc3Quc2V0QWxsb3dDb29raWVz
KGZhbHNlKTsKIAogICAgIGZyYW1lLmxvYWRlcigpLmFkZEV4dHJhRmllbGRzVG9TdWJyZXNvdXJj
ZVJlcXVlc3QocmVxdWVzdCk7CiAKLSAgICBTdHJpbmcgcmVmZXJyZXIgPSBTZWN1cml0eVBvbGlj
eTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihmcmFtZS5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGlj
eSgpLCByZXBvcnRVUkwsIGZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSk7CisgICAg
U3RyaW5nIHJlZmVycmVyID0gU2VjdXJpdHlQb2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIo
ZG9jdW1lbnQucmVmZXJyZXJQb2xpY3koKSwgcmVwb3J0VVJMLCBmcmFtZS5sb2FkZXIoKS5vdXRn
b2luZ1JlZmVycmVyKCkpOwogICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgpKQogICAgICAgICBy
ZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihyZWZlcnJlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xv
YWRlci5oCmluZGV4IGNmNjU3N2MzMzU2ZWEwNTgxYjUzOTE4OTE5OGZkZTg3NjRmYjk5MzcuLmIy
OWU4ZGE4ZjgwOGE3YjA2MGU1MDk3OGZjMmFlZDJjZTJkOGYxMzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BpbmdMb2FkZXIuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC0zMSw3ICszMiw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC00OSw3ICs1MCw3IEBAIGNsYXNzIFBpbmdMb2FkZXIgewogcHVibGljOgogICAgIHN0
YXRpYyB2b2lkIGxvYWRJbWFnZShGcmFtZSYsIGNvbnN0IFVSTCYpOwogICAgIHN0YXRpYyB2b2lk
IHNlbmRQaW5nKEZyYW1lJiwgY29uc3QgVVJMJiBwaW5nVVJMLCBjb25zdCBVUkwmIGRlc3RpbmF0
aW9uVVJMKTsKLSAgICBzdGF0aWMgdm9pZCBzZW5kVmlvbGF0aW9uUmVwb3J0KEZyYW1lJiwgY29u
c3QgVVJMJiByZXBvcnRVUkwsIFJlZlB0cjxGb3JtRGF0YT4mJiByZXBvcnQsIFZpb2xhdGlvblJl
cG9ydFR5cGUpOworICAgIHN0YXRpYyB2b2lkIHNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUmLCBj
b25zdCBVUkwmIHJlcG9ydFVSTCwgUmVmPEZvcm1EYXRhPiYmIHJlcG9ydCwgVmlvbGF0aW9uUmVw
b3J0VHlwZSk7CiAKIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBTaG91bGRGb2xsb3dSZWRpcmVj
dHMgeyBObywgWWVzIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggNWMwMjU0NGE1ZTdiZDNm
MDZmYjFhYmFiMDFlZTI2YzhhMzQ0NmYzZS4uZDAxNWJhNDVhMzNhZWJjZTE3MjlkM2I5OWIyNTVm
NTQ1MzAxZTc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDksIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICogQ29weXJpZ2h0IChDKSAyMDEy
LCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTQzOCw3
ICs0MzgsNyBAQCB2b2lkIENocm9tZTo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1Jl
ZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIpCiAgICAgbV9jbGllbnQucnVuT3BlblBhbmVs
KGZyYW1lLCBmaWxlQ2hvb3Nlcik7CiB9CiAKLXZvaWQgQ2hyb21lOjpsb2FkSWNvbkZvckZpbGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9hZGVyKiBsb2FkZXIp
Cit2b2lkIENocm9tZTo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmls
ZW5hbWVzLCBGaWxlSWNvbkxvYWRlciYgbG9hZGVyKQogewogICAgIG1fY2xpZW50LmxvYWRJY29u
Rm9yRmlsZXMoZmlsZW5hbWVzLCBsb2FkZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggZjJm
MmIwYjFjM2MwYTlmM2EyNzVkMTRmMDJkM2RjMWE4ZWRhNGVhMS4uZjIzODYwYTJiZGFmM2MyOTNl
MDE5M2MyY2E0OTJiYTZhODhmN2M1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICogQ29weXJpZ2h0IChDKSAy
MDEyLCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTI4
LDkgKzI4LDcgQEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKICNpZiBQTEFURk9STShDT0NP
QSkKLSNpZm5kZWYgX19PQkpDX18KLWNsYXNzIE5TVmlldzsKLSNlbmRpZgorT0JKQ19DTEFTUyBO
U1ZpZXc7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTU5LDcgKzE1Nyw3IEBA
IHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVm
UHRyPEZpbGVDaG9vc2VyPik7Ci0gICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXIqKTsKKyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciYpOwogCiAgICAgdm9pZCBkaXNw
YXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYp
IGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA0NWZlYzU5OTgwNGU0
M2U2ZTdkMTg5YTA4ZTZjZWI4MDIyOWQzNmZkLi40MjFjZGE5YTE3NmY5YWNhMGE0NjExMGRiMmZh
YTQwN2EwNjI0MDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAy
MDExLCAyMDEyIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYtMjAxNyBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KICAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKQEAgLTI3NSw3ICsyNzUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pID0gMDsK
ICAgICAvLyBBc3luY2hyb25vdXMgcmVxdWVzdCB0byBsb2FkIGFuIGljb24gZm9yIHNwZWNpZmll
ZCBmaWxlbmFtZXMuCi0gICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbG9h
ZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJikgPSAw
OwogICAgICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IE5vZGUq
KSB7IH07CiAgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUqKSB7IH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNw
cAppbmRleCBjYjc4ZDA2YTdlZjE0M2YyNmVlNTQ5NjM5YjI0OTU2NWM0NmFhMDY4Li5mMDU5YjYw
MTRjODRiN2ZhNGE3MzZmOTU0YTg5MTMxNGFiNzNhNWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTEsNiArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjI1LDggKzYyNSw4
IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3Ry
aW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVjCiAKICAgICBBU1NFUlQoIW1fZnJhbWUgfHwgZWZm
ZWN0aXZlVmlvbGF0ZWREaXJlY3RpdmUgPT0gQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZl
TmFtZXM6OmZyYW1lQW5jZXN0b3JzKTsKIAotICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGlzPERv
Y3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8RG9jdW1lbnQ+KCpt
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50KCk7Ci0gICAgRnJh
bWUqIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9IGlzPERv
Y3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpID8gZG93bmNhc3Q8RG9jdW1lbnQ+KCpt
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIDogKm1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAgYXV0
byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOwogICAgIEFTU0VSVCghbV9mcmFtZSB8fCBtX2Zy
YW1lID09IGZyYW1lKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CkBAIC02NDYs
MTMgKzY0NiwxNCBAQCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9u
KGNvbnN0IFN0cmluZyYgZWZmZWN0aXZlVmlvbGF0ZWREaXJlYwogICAgIFN0cmluZyBvcmlnaW5h
bFBvbGljeSA9IHZpb2xhdGVkRGlyZWN0aXZlTGlzdC5oZWFkZXIoKTsKICAgICBTdHJpbmcgcmVm
ZXJyZXIgPSBkb2N1bWVudC5yZWZlcnJlcigpOwogICAgIEFTU0VSVChkb2N1bWVudC5sb2FkZXIo
KSk7CisgICAgLy8gRklYTUU6IElzIGl0IHBvbGljeSB0byBub3QgdXNlIHRoZSBzdGF0dXMgY29k
ZSBmb3IgSFRUUFMsIG9yIGlzIHRoYXQgYSBidWc/CiAgICAgdW5zaWduZWQgc2hvcnQgc3RhdHVz
Q29kZSA9IGRvY3VtZW50LnVybCgpLnByb3RvY29sSXMoImh0dHAiKSAmJiBkb2N1bWVudC5sb2Fk
ZXIoKSA/IGRvY3VtZW50LmxvYWRlcigpLT5yZXNwb25zZSgpLmh0dHBTdGF0dXNDb2RlKCkgOiAw
OwogCiAgICAgU3RyaW5nIHNvdXJjZUZpbGU7CiAgICAgaW50IGxpbmVOdW1iZXIgPSAwOwogICAg
IGludCBjb2x1bW5OdW1iZXIgPSAwOwotICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNr
ID0gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0
YXRlKCksIDIpOwotICAgIGNvbnN0IFNjcmlwdENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2st
PmZpcnN0Tm9uTmF0aXZlQ2FsbEZyYW1lKCk7CisgICAgYXV0byBzdGFjayA9IGNyZWF0ZVNjcmlw
dENhbGxTdGFjayhKU01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpLCAyKTsKKyAg
ICBhdXRvKiBjYWxsRnJhbWUgPSBzdGFjay0+Zmlyc3ROb25OYXRpdmVDYWxsRnJhbWUoKTsKICAg
ICBpZiAoY2FsbEZyYW1lICYmIGNhbGxGcmFtZS0+bGluZU51bWJlcigpKSB7CiAgICAgICAgIHNv
dXJjZUZpbGUgPSBzdHJpcFVSTEZvclVzZUluUmVwb3J0KGRvY3VtZW50LCBVUkwoVVJMKCksIGNh
bGxGcmFtZS0+c291cmNlVVJMKCkpKTsKICAgICAgICAgbGluZU51bWJlciA9IGNhbGxGcmFtZS0+
bGluZU51bWJlcigpOwpAQCAtNjY1LDcgKzY2Niw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9s
aWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRlZERpcmVj
CiAgICAgZG9jdW1lbnQuZW5xdWV1ZURvY3VtZW50RXZlbnQoU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zZWN1cml0eXBvbGljeXZpb2xhdGlvbkV2ZW50
LCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIGRvY3VtZW50VVJJLCByZWZlcnJlciwgYmxvY2tlZFVS
SSwgdmlvbGF0ZWREaXJlY3RpdmVUZXh0LCBlZmZlY3RpdmVWaW9sYXRlZERpcmVjdGl2ZSwgb3Jp
Z2luYWxQb2xpY3ksIHNvdXJjZUZpbGUsIHN0YXR1c0NvZGUsIGxpbmVOdW1iZXIsIGNvbHVtbk51
bWJlcikpOwogCiAgICAgLy8gMi4gU2VuZCB2aW9sYXRpb24gcmVwb3J0IChpZiBhcHBsaWNhYmxl
KS4KLSAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcmVwb3J0VVJJcyA9IHZpb2xhdGVkRGlyZWN0
aXZlTGlzdC5yZXBvcnRVUklzKCk7CisgICAgYXV0byYgcmVwb3J0VVJJcyA9IHZpb2xhdGVkRGly
ZWN0aXZlTGlzdC5yZXBvcnRVUklzKCk7CiAgICAgaWYgKHJlcG9ydFVSSXMuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm47CiAKQEAgLTY5MywxMCArNjk0LDEwIEBAIHZvaWQgQ29udGVudFNlY3Vy
aXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBlZmZlY3RpdmVWaW9sYXRl
ZERpcmVjCiAgICAgICAgIGNzcFJlcG9ydC0+c2V0SW50ZWdlcihBU0NJSUxpdGVyYWwoImNvbHVt
bi1udW1iZXIiKSwgY29sdW1uTnVtYmVyKTsKICAgICB9CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiByZXBvcnRPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGF1
dG8gcmVwb3J0T2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKICAgICByZXBvcnRP
YmplY3QtPnNldE9iamVjdChBU0NJSUxpdGVyYWwoImNzcC1yZXBvcnQiKSwgV1RGTW92ZShjc3BS
ZXBvcnQpKTsKIAotICAgIFJlZlB0cjxGb3JtRGF0YT4gcmVwb3J0ID0gRm9ybURhdGE6OmNyZWF0
ZShyZXBvcnRPYmplY3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7CisgICAgYXV0byByZXBvcnQg
PSBGb3JtRGF0YTo6Y3JlYXRlKHJlcG9ydE9iamVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgpKTsK
ICAgICBmb3IgKGNvbnN0IGF1dG8mIHVybCA6IHJlcG9ydFVSSXMpCiAgICAgICAgIFBpbmdMb2Fk
ZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoKmZyYW1lLCBpczxEb2N1bWVudD4obV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0KSA/IGRvY3VtZW50LmNvbXBsZXRlVVJMKHVybCkgOiBkb2N1bWVudC5jb21w
bGV0ZVVSTCh1cmwsIGJsb2NrZWRVUkwpLCByZXBvcnQuY29weVJlZigpLCBWaW9sYXRpb25SZXBv
cnRUeXBlOjpDb250ZW50U2VjdXJpdHlQb2xpY3kpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2Rl
bE1lZGlhRWxlbWVudC5tbQppbmRleCBiMTBmMmU5ZWI3OGQ1OWUwMjZiYmRiNGRmZDcwZTRkYTUz
YjlhNDcwLi5mNjM1YWVkM2I5N2YwMTI5ZmY5ZWE4M2QxNGM3OTFiYmU3NWY4YjdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQbGF5YmFja1Nlc3Npb25Nb2Rl
bE1lZGlhRWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9XZWJQ
bGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwyNCArMjgsMjQgQEAKIAogI2lm
IFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKSkKIAorI2ltcG9ydCAiQXVkaW9UcmFja0xpc3QuaCIKKyNpbXBvcnQgIkV2ZW50
LmgiCisjaW1wb3J0ICJFdmVudExpc3RlbmVyLmgiCisjaW1wb3J0ICJFdmVudE5hbWVzLmgiCisj
aW1wb3J0ICJIVE1MRWxlbWVudC5oIgorI2ltcG9ydCAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2lt
cG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFDb250cm9sc0hvc3QuaCIKKyNpbXBvcnQg
IlBhZ2UuaCIKKyNpbXBvcnQgIlBhZ2VHcm91cC5oIgorI2ltcG9ydCAiU29mdExpbmtpbmcuaCIK
KyNpbXBvcnQgIlRleHRUcmFja0xpc3QuaCIKKyNpbXBvcnQgIlRpbWVSYW5nZXMuaCIKICNpbXBv
cnQgIldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9D
b3JlQW5pbWF0aW9uLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0F1ZGlvVHJhY2tMaXN0Lmg+Ci0jaW1w
b3J0IDxXZWJDb3JlL0V2ZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0V2ZW50TGlzdGVuZXIuaD4K
LSNpbXBvcnQgPFdlYkNvcmUvRXZlbnROYW1lcy5oPgotI2ltcG9ydCA8V2ViQ29yZS9IVE1MRWxl
bWVudC5oPgotI2ltcG9ydCA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL1BhZ2UuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGFnZUdyb3VwLmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL1NvZnRMaW5raW5nLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1RleHRUcmFja0xpc3QuaD4K
LSNpbXBvcnQgPFdlYkNvcmUvVGltZVJhbmdlcy5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6V2ViUGxheWJhY2tTZXNzaW9u
TW9kZWxNZWRpYUVsZW1lbnQoKQogICAgIDogRXZlbnRMaXN0ZW5lcihFdmVudExpc3RlbmVyOjpD
UFBFdmVudExpc3RlbmVyVHlwZSkKQEAgLTIzMywxNyArMjMzLDggQEAgdm9pZCBXZWJQbGF5YmFj
a1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6c2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRf
dCBzZWxlY3QKICAgICBpZiAoIW1fbWVkaWFFbGVtZW50KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBBU1NFUlQoc2VsZWN0ZWRBdWRpb0luZGV4IDwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+
OjptYXgoKSk7Ci0gICAgQXVkaW9UcmFjayogc2VsZWN0ZWRBdWRpb1RyYWNrID0gbnVsbHB0cjsK
LQotICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBtX2F1ZGlvVHJhY2tzRm9yTWVu
dS5zaXplKCk7ICsraW5kZXgpIHsKLSAgICAgICAgYXV0byYgYXVkaW9UcmFjayA9IG1fYXVkaW9U
cmFja3NGb3JNZW51W2luZGV4XTsKLSAgICAgICAgYXVkaW9UcmFjay0+c2V0RW5hYmxlZChpbmRl
eCA9PSBzdGF0aWNfY2FzdDxzaXplX3Q+KHNlbGVjdGVkQXVkaW9JbmRleCkpOwotICAgICAgICBp
ZiAoYXVkaW9UcmFjay0+ZW5hYmxlZCgpKQotICAgICAgICAgICAgc2VsZWN0ZWRBdWRpb1RyYWNr
ID0gYXVkaW9UcmFjay5nZXQoKTsKLSAgICB9Ci0KLSAgICBtX21lZGlhRWxlbWVudC0+YXVkaW9U
cmFja0VuYWJsZWRDaGFuZ2VkKHNlbGVjdGVkQXVkaW9UcmFjayk7CisgICAgZm9yIChzaXplX3Qg
aSA9IDAsIHNpemUgPSBtX2F1ZGlvVHJhY2tzRm9yTWVudS5zaXplKCk7IGkgPCBzaXplOyArK2kp
CisgICAgICAgIG1fYXVkaW9UcmFja3NGb3JNZW51W2ldLT5zZXRFbmFibGVkKGkgPT0gc2VsZWN0
ZWRBdWRpb0luZGV4KTsKIH0KIAogdm9pZCBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxl
bWVudDo6c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQpAQCAtMjUxLDkg
KzI0Miw3IEBAIHZvaWQgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnNlbGVj
dExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRlCiAgICAgaWYgKCFtX21lZGlhRWxlbWVu
dCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKGluZGV4IDwgc3RkOjpudW1lcmljX2xp
bWl0czxzaXplX3Q+OjptYXgoKSk7Ci0gICAgVGV4dFRyYWNrKiB0ZXh0VHJhY2sgPSBudWxscHRy
OwotCisgICAgVGV4dFRyYWNrKiB0ZXh0VHJhY2s7CiAgICAgaWYgKGluZGV4IDwgbV9sZWdpYmxl
VHJhY2tzRm9yTWVudS5zaXplKCkpCiAgICAgICAgIHRleHRUcmFjayA9IG1fbGVnaWJsZVRyYWNr
c0Zvck1lbnVbc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCldLmdldCgpOwogICAgIGVsc2UKQEAg
LTQ3MSw0ICs0NjAsNiBAQCBib29sIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50
Ojp3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fbWVk
aWFFbGVtZW50ICYmIG1fbWVkaWFFbGVtZW50LT5tZWRpYVNlc3Npb24oKS53aXJlbGVzc1ZpZGVv
UGxheWJhY2tEaXNhYmxlZCgqbV9tZWRpYUVsZW1lbnQpOwogfQogCit9CisKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRl
LmgKaW5kZXggM2JjOTdlZDcwMmFiMDRhZGJlMTQxNWFkZjliZTM1Mjk4ZGZhZGRkYi4uNzEwZDE3
MDIwNWE1YWM5ZTBkZDBmNDliYzM1NjM1ZWE4YTBlMzMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDggKzIzLDcg
QEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBBdWRpb1RyYWNrUHJpdmF0ZV9oCi0j
ZGVmaW5lIEF1ZGlvVHJhY2tQcml2YXRlX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiVHJh
Y2tQcml2YXRlQmFzZS5oIgogCkBAIC0zNiw3ICszNSw3IEBAIGNsYXNzIEF1ZGlvVHJhY2tQcml2
YXRlOwogCiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBUcmFja1ByaXZh
dGVCYXNlQ2xpZW50IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlZENoYW5nZWQo
QXVkaW9UcmFja1ByaXZhdGUqLCBib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGVuYWJsZWRD
aGFuZ2VkKGJvb2wpID0gMDsKIH07CiAKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlIDogcHVibGlj
IFRyYWNrUHJpdmF0ZUJhc2UgewpAQCAtNTUsMjYgKzU0LDIyIEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgbV9lbmFibGVkID0gZW5hYmxlZDsKICAgICAgICAgaWYgKG1f
Y2xpZW50KQotICAgICAgICAgICAgbV9jbGllbnQtPmVuYWJsZWRDaGFuZ2VkKHRoaXMsIGVuYWJs
ZWQpOwotICAgIH07Ci0gICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X2VuYWJsZWQ7IH0KKyAgICAgICAgICAgIG1fY2xpZW50LT5lbmFibGVkQ2hhbmdlZChlbmFibGVk
KTsKKyAgICB9CisKKyAgICBib29sIGVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2VuYWJsZWQ7
IH0KIAogICAgIGVudW0gS2luZCB7IEFsdGVybmF0aXZlLCBEZXNjcmlwdGlvbiwgTWFpbiwgTWFp
bkRlc2MsIFRyYW5zbGF0aW9uLCBDb21tZW50YXJ5LCBOb25lIH07CiAgICAgdmlydHVhbCBLaW5k
IGtpbmQoKSBjb25zdCB7IHJldHVybiBOb25lOyB9CiAKIHByb3RlY3RlZDoKLSAgICBBdWRpb1Ry
YWNrUHJpdmF0ZSgpCi0gICAgICAgIDogbV9jbGllbnQoMCkKLSAgICAgICAgLCBtX2VuYWJsZWQo
ZmFsc2UpCi0gICAgewotICAgIH0KKyAgICBBdWRpb1RyYWNrUHJpdmF0ZSgpID0gZGVmYXVsdDsK
IAogcHJpdmF0ZToKLSAgICBBdWRpb1RyYWNrUHJpdmF0ZUNsaWVudCogbV9jbGllbnQ7Ci0gICAg
Ym9vbCBtX2VuYWJsZWQ7CisgICAgQXVkaW9UcmFja1ByaXZhdGVDbGllbnQqIG1fY2xpZW50IHsg
bnVsbHB0ciB9OworICAgIGJvb2wgbV9lbmFibGVkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGVDbGll
bnQuaAppbmRleCA3NjBmNjc5ZDEzNTBhNzE5MDA0NDcwYTdjYjdhNzQxN2E4YmM0OTE1Li45YTEx
MDc5YmJlNDI4MTRlNjRhMDY2MGUyZmFmYTM5MDIxNDBhMGY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUNsaWVudC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0y
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
Mi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjMsOCArMjMsOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0j
aWZuZGVmIEluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnRfaAotI2RlZmluZSBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlQ2xpZW50X2gKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQogCiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlLmgi
CkBAIC0zNCw4ICszNSw2IEBACiAjaW5jbHVkZSAiU2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50
YXRpb24uaCIKICNlbmRpZgogCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGU7CkBAIC00Myw5ICs0Miw3
IEBAIGNsYXNzIElTT1dlYlZUVEN1ZTsKIAogY2xhc3MgR2VuZXJpY0N1ZURhdGEgOiBwdWJsaWMg
UmVmQ291bnRlZDxHZW5lcmljQ3VlRGF0YT4gewogcHVibGljOgotCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8R2VuZXJpY0N1ZURhdGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW5l
cmljQ3VlRGF0YSgpKTsgfQotICAgIHZpcnR1YWwgfkdlbmVyaWNDdWVEYXRhKCkgeyB9CisgICAg
c3RhdGljIFJlZjxHZW5lcmljQ3VlRGF0YT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBHZW5lcmljQ3VlRGF0YSk7IH0KIAogICAgIE1lZGlhVGltZSBzdGFydFRpbWUoKSBjb25zdCB7
IHJldHVybiBtX3N0YXJ0VGltZTsgfQogICAgIHZvaWQgc2V0U3RhcnRUaW1lKGNvbnN0IE1lZGlh
VGltZSYgc3RhcnRUaW1lKSB7IG1fc3RhcnRUaW1lID0gc3RhcnRUaW1lOyB9CkBAIC01MywxMSAr
NTAsMTEgQEAgcHVibGljOgogICAgIE1lZGlhVGltZSBlbmRUaW1lKCkgY29uc3QgeyByZXR1cm4g
bV9lbmRUaW1lOyB9CiAgICAgdm9pZCBzZXRFbmRUaW1lKGNvbnN0IE1lZGlhVGltZSYgZW5kVGlt
ZSkgeyBtX2VuZFRpbWUgPSBlbmRUaW1lOyB9CiAKLSAgICBTdHJpbmcgaWQoKSBjb25zdCB7IHJl
dHVybiBtX2lkOyB9Ci0gICAgdm9pZCBzZXRJZChTdHJpbmcgaWQpIHsgbV9pZCA9IGlkOyB9Cisg
ICAgY29uc3QgU3RyaW5nJiBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAgICB2b2lkIHNl
dElkKGNvbnN0IFN0cmluZyYgaWQpIHsgbV9pZCA9IGlkOyB9CiAKLSAgICBTdHJpbmcgY29udGVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudDsgfQotICAgIHZvaWQgc2V0Q29udGVudChTdHJp
bmcgY29udGVudCkgeyBtX2NvbnRlbnQgPSBjb250ZW50OyB9CisgICAgY29uc3QgU3RyaW5nJiBj
b250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50OyB9CisgICAgdm9pZCBzZXRDb250ZW50
KGNvbnN0IFN0cmluZyYgY29udGVudCkgeyBtX2NvbnRlbnQgPSBjb250ZW50OyB9CiAKICAgICBk
b3VibGUgbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZTsgfQogICAgIHZvaWQgc2V0TGluZShk
b3VibGUgbGluZSkgeyBtX2xpbmUgPSBsaW5lOyB9CkBAIC02OCwxNyArNjUsMTIgQEAgcHVibGlj
OgogICAgIGRvdWJsZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAgICAgdm9pZCBz
ZXRTaXplKGRvdWJsZSBzaXplKSB7IG1fc2l6ZSA9IHNpemU7IH0KIAotICAgIGVudW0gQWxpZ25t
ZW50IHsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgU3RhcnQsCi0gICAgICAgIE1pZGRsZSwKLSAg
ICAgICAgRW5kCi0gICAgfTsKKyAgICBlbnVtIEFsaWdubWVudCB7IE5vbmUsIFN0YXJ0LCBNaWRk
bGUsIEVuZCB9OwogICAgIEFsaWdubWVudCBhbGlnbigpIGNvbnN0IHsgcmV0dXJuIG1fYWxpZ247
IH0KICAgICB2b2lkIHNldEFsaWduKEFsaWdubWVudCBhbGlnbikgeyBtX2FsaWduID0gYWxpZ247
IH0KIAotICAgIFN0cmluZyBmb250TmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udE5hbWU7IH0K
LSAgICB2b2lkIHNldEZvbnROYW1lKFN0cmluZyBmb250TmFtZSkgeyBtX2ZvbnROYW1lID0gZm9u
dE5hbWU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGZvbnROYW1lKCkgY29uc3QgeyByZXR1cm4gbV9m
b250TmFtZTsgfQorICAgIHZvaWQgc2V0Rm9udE5hbWUoY29uc3QgU3RyaW5nJiBmb250TmFtZSkg
eyBtX2ZvbnROYW1lID0gZm9udE5hbWU7IH0KIAogICAgIGRvdWJsZSBiYXNlRm9udFNpemUoKSBj
b25zdCB7IHJldHVybiBtX2Jhc2VGb250U2l6ZTsgfQogICAgIHZvaWQgc2V0QmFzZUZvbnRTaXpl
KGRvdWJsZSBiYXNlRm9udFNpemUpIHsgbV9iYXNlRm9udFNpemUgPSBiYXNlRm9udFNpemU7IH0K
QEAgLTk1LDQzICs4NywzMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQ29sb3ImIGhpZ2hsaWdodENv
bG9yKCkgY29uc3QgeyByZXR1cm4gbV9oaWdobGlnaHRDb2xvcjsgfQogICAgIHZvaWQgc2V0SGln
aGxpZ2h0Q29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKSB7IG1faGlnaGxpZ2h0Q29sb3IgPSBjb2xv
cjsgfQogCi0gICAgZW51bSBTdGF0dXMgewotICAgICAgICBVbmluaXRpYWxpemVkLAotICAgICAg
ICBQYXJ0aWFsLAotICAgICAgICBDb21wbGV0ZSwKLSAgICB9OworICAgIGVudW0gU3RhdHVzIHsg
VW5pbml0aWFsaXplZCwgUGFydGlhbCwgQ29tcGxldGUgfTsKICAgICBTdGF0dXMgc3RhdHVzKCkg
eyByZXR1cm4gbV9zdGF0dXM7IH0KICAgICB2b2lkIHNldFN0YXR1cyhTdGF0dXMgc3RhdHVzKSB7
IG1fc3RhdHVzID0gc3RhdHVzOyB9CiAKICAgICBib29sIGRvZXNFeHRlbmRDdWVEYXRhKGNvbnN0
IEdlbmVyaWNDdWVEYXRhJikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgR2VuZXJpY0N1ZURhdGEo
KQotICAgICAgICA6IG1fbGluZSgtMSkKLSAgICAgICAgLCBtX3Bvc2l0aW9uKC0xKQotICAgICAg
ICAsIG1fc2l6ZSgtMSkKLSAgICAgICAgLCBtX2FsaWduKE5vbmUpCi0gICAgICAgICwgbV9iYXNl
Rm9udFNpemUoMCkKLSAgICAgICAgLCBtX3JlbGF0aXZlRm9udFNpemUoMCkKLSAgICAgICAgLCBt
X3N0YXR1cyhVbmluaXRpYWxpemVkKQotICAgIHsKLSAgICB9CisgICAgR2VuZXJpY0N1ZURhdGEo
KSA9IGRlZmF1bHQ7CiAKICAgICBNZWRpYVRpbWUgbV9zdGFydFRpbWU7CiAgICAgTWVkaWFUaW1l
IG1fZW5kVGltZTsKICAgICBTdHJpbmcgbV9pZDsKICAgICBTdHJpbmcgbV9jb250ZW50OwotICAg
IGRvdWJsZSBtX2xpbmU7Ci0gICAgZG91YmxlIG1fcG9zaXRpb247Ci0gICAgZG91YmxlIG1fc2l6
ZTsKLSAgICBBbGlnbm1lbnQgbV9hbGlnbjsKKyAgICBkb3VibGUgbV9saW5lIHsgLTEgfTsKKyAg
ICBkb3VibGUgbV9wb3NpdGlvbiB7IC0xIH07CisgICAgZG91YmxlIG1fc2l6ZSB7IC0xIH07Cisg
ICAgQWxpZ25tZW50IG1fYWxpZ24geyBOb25lIH07CiAgICAgU3RyaW5nIG1fZm9udE5hbWU7Ci0g
ICAgZG91YmxlIG1fYmFzZUZvbnRTaXplOwotICAgIGRvdWJsZSBtX3JlbGF0aXZlRm9udFNpemU7
CisgICAgZG91YmxlIG1fYmFzZUZvbnRTaXplIHsgMCB9OworICAgIGRvdWJsZSBtX3JlbGF0aXZl
Rm9udFNpemUgeyAwIH07CiAgICAgQ29sb3IgbV9mb3JlZ3JvdW5kQ29sb3I7CiAgICAgQ29sb3Ig
bV9iYWNrZ3JvdW5kQ29sb3I7CiAgICAgQ29sb3IgbV9oaWdobGlnaHRDb2xvcjsKLSAgICBTdGF0
dXMgbV9zdGF0dXM7CisgICAgU3RhdHVzIG1fc3RhdHVzIHsgVW5pbml0aWFsaXplZCB9OwogfTsK
IAogaW5saW5lIGJvb2wgR2VuZXJpY0N1ZURhdGE6OmRvZXNFeHRlbmRDdWVEYXRhKGNvbnN0IEdl
bmVyaWNDdWVEYXRhJiBvdGhlcikgY29uc3QKQEAgLTE2OCwyNCArMTQ3LDIzIEBAIGNsYXNzIElu
YmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZUNsaWVu
dCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCgp
IHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGFkZERhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2
b2lkKiwgdW5zaWduZWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBN
ZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCwgY29uc3Qgdm9pZCosIHVuc2ln
bmVkKSA9IDA7CiAKICNpZiBFTkFCTEUoREFUQUNVRV9WQUxVRSkKLSAgICB2aXJ0dWFsIHZvaWQg
YWRkRGF0YUN1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJiBzdGFy
dCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVw
cmVzZW50YXRpb24+LCBjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0
ZURhdGFDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IE1lZGlhVGltZSYgc3RhcnQs
IGNvbnN0IE1lZGlhVGltZSYgZW5kLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJl
c2VudGF0aW9uPikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVEYXRhQ3VlKEluYmFuZFRl
eHRUcmFja1ByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUm
IGVuZCwgUGFzc1JlZlB0cjxTZXJpYWxpemVkUGxhdGZvcm1SZXByZXNlbnRhdGlvbj4pID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YUN1ZShjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25z
dCBNZWRpYVRpbWUmIGVuZCwgUmVmPFNlcmlhbGl6ZWRQbGF0Zm9ybVJlcHJlc2VudGF0aW9uPiYm
LCBjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZURhdGFDdWUoY29u
c3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIFNlcmlhbGl6ZWRQbGF0
Zm9ybVJlcHJlc2VudGF0aW9uJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVEYXRhQ3Vl
KGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBTZXJpYWxpemVk
UGxhdGZvcm1SZXByZXNlbnRhdGlvbiYpID0gMDsKICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lk
IGFkZEdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFBhc3NSZWZQdHI8R2VuZXJp
Y0N1ZURhdGE+KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBHZW5lcmljQ3VlRGF0
YSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlR2VuZXJpY0N1ZShHZW5lcmljQ3VlRGF0YSYp
ID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSosIFN0cmluZyYmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAg
dmlydHVhbCB2b2lkIHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwg
Y29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHBhcnNlV2ViVlRUQ3VlRGF0YShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgY29uc3QgSVNPV2Vi
VlRUQ3VlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEZpbGVIZWFkZXIoU3Ry
aW5nJiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VX
ZWJWVFRDdWVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoY29uc3QgSVNPV2ViVlRUQ3VlJikgPSAw
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKLSNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0
ZS5oCmluZGV4IDA4ZTYyYzM0ODYyYWRkOTRmYTA4NGI0MjVjNTg3YWE0ZmJkMzY0YmQuLjdhYzVk
ZDI3NWJhYTU3YjBhYWU4YmU1NTA4Nzg3NmZmMTE5MWUwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKQEAgLTEs
NiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC0yOCwyMSArMjgsMTcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwot
I2lmbmRlZiBTb3VyY2VCdWZmZXJQcml2YXRlX2gKLSNkZWZpbmUgU291cmNlQnVmZmVyUHJpdmF0
ZV9oCisKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKIAogI2luY2x1
ZGUgIk1lZGlhUGxheWVyLmgiCi0jaW5jbHVkZSAiVGltZVJhbmdlcy5oIgotI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIE1lZGlhU2FtcGxlOwogY2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUNs
aWVudDsKLWNsYXNzIFRpbWVSYW5nZXM7CiAKIGNsYXNzIFNvdXJjZUJ1ZmZlclByaXZhdGUgOiBw
dWJsaWMgUmVmQ291bnRlZDxTb3VyY2VCdWZmZXJQcml2YXRlPiB7CiBwdWJsaWM6CkBAIC01OCwx
NyArNTQsMTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUg
cmVhZHlTdGF0ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVhZHlTdGF0ZShN
ZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGZsdXNoKEF0
b21pY1N0cmluZykgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGVucXVldWVTYW1wbGUoUGFzc1JlZlB0
cjxNZWRpYVNhbXBsZT4sIEF0b21pY1N0cmluZykgeyB9Ci0gICAgdmlydHVhbCBib29sIGlzUmVh
ZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCB2b2lkIGZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiwgY29uc3QgQXRvbWljU3RyaW5nJikg
eyB9CisgICAgdmlydHVhbCBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNT
dHJpbmcmKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9v
bCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhBdG9taWNT
dHJpbmcpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3Jl
U2FtcGxlcyhBdG9taWNTdHJpbmcpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wQXNraW5nRm9y
TW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYpIHsg
fQogCi0gICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBlbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lE
KEF0b21pY1N0cmluZykgeyByZXR1cm4ge307IH0KKyAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+
IGVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoY29uc3QgQXRvbWljU3RyaW5nJikgeyByZXR1cm4g
eyB9OyB9CiB9OwogCiB9CiAKICNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmgK
aW5kZXggMjk0YWQ2NWY0NjMzNWRmMDY5MTUzZjRhY2IzOTcwM2JmMWM5ZjBmMi4uMTgwODdkNWUz
ZDI2Y2ExMWRiYTBmNjg3MzAwZDg2OTY4ODBiNWNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zMiwxMiArMzIsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTb3VyY2VC
dWZmZXJQcml2YXRlOwogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGU7Ci1jbGFzcyBWaWRlb1RyYWNr
UHJpdmF0ZTsKIGNsYXNzIEluYmFuZFRleHRUcmFja1ByaXZhdGU7CiBjbGFzcyBNZWRpYVNhbXBs
ZTsKIGNsYXNzIE1lZGlhRGVzY3JpcHRpb247CitjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIAog
Y2xhc3MgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCB7CiBwdWJsaWM6CkBAIC02NCwyMyArNjMs
MTkgQEAgcHVibGljOgogICAgICAgICB9OwogICAgICAgICBWZWN0b3I8VGV4dFRyYWNrSW5mb3Jt
YXRpb24+IHRleHRUcmFja3M7CiAgICAgfTsKLSAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVy
UHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJpdmF0
ZSosIGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoU291cmNlQnVmZmVyUHJpdmF0ZSos
IE1lZGlhU2FtcGxlJikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBzb3VyY2VCdWZmZXJQcml2YXRl
SGFzQXVkaW8oY29uc3QgU291cmNlQnVmZmVyUHJpdmF0ZSopIGNvbnN0ID0gMDsKLSAgICB2aXJ0
dWFsIGJvb2wgc291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKGNvbnN0IFNvdXJjZUJ1ZmZlclBy
aXZhdGUqKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVE
aWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVu
dCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVT
YW1wbGUoTWVkaWFTYW1wbGUmKSA9IDA7CisgICAgdmlydHVhbCBib29sIHNvdXJjZUJ1ZmZlclBy
aXZhdGVIYXNBdWRpbygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc291cmNlQnVmZmVy
UHJpdmF0ZUhhc1ZpZGVvKCkgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1
ZmZlclByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1ZmZlclByaXZh
dGUqLCBBdG9taWNTdHJpbmcgdHJhY2tJRCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VC
dWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9taWNTdHJp
bmcmIHRyYWNrSUQpID0gMDsKIAotICAgIHZpcnR1YWwgTWVkaWFUaW1lIHNvdXJjZUJ1ZmZlclBy
aXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0
IE1lZGlhVGltZSYgdGltZSwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJikgeyBy
ZXR1cm4gdGltZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlU2Vla1Rv
VGltZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgY29uc3QgTWVkaWFUaW1lJikgeyB9OworICAgIHZp
cnR1YWwgTWVkaWFUaW1lIHNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRp
bWUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRp
bWUmKSB7IHJldHVybiB0aW1lOyB9CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZh
dGVTZWVrVG9UaW1lKGNvbnN0IE1lZGlhVGltZSYpIHsgfTsKIAotICAgIGVudW0gQXBwZW5kUmVz
dWx0IHsKLSAgICAgICAgQXBwZW5kU3VjY2VlZGVkLAotICAgICAgICBSZWFkU3RyZWFtRmFpbGVk
LAotICAgICAgICBQYXJzaW5nRmFpbGVkLAotICAgIH07Ci0gICAgdmlydHVhbCB2b2lkIHNvdXJj
ZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXBwZW5k
UmVzdWx0KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNl
aXZlUmVuZGVyaW5nRXJyb3IoU291cmNlQnVmZmVyUHJpdmF0ZSosIGludCBlcnJvY0NvZGUpID0g
MDsKKyAgICBlbnVtIEFwcGVuZFJlc3VsdCB7IEFwcGVuZFN1Y2NlZWRlZCwgUmVhZFN0cmVhbUZh
aWxlZCwgUGFyc2luZ0ZhaWxlZCB9OworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2
YXRlQXBwZW5kQ29tcGxldGUoQXBwZW5kUmVzdWx0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNv
dXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlUmVuZGVyaW5nRXJyb3IoaW50IGVycm9yQ29kZSkg
PSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvVHJhY2tQcml2YXRlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
VHJhY2tQcml2YXRlQmFzZS5oCmluZGV4IDczMWFhOGQ5MzZhNWFhZWEwZDFjMDNhYTY4YTJhYzZi
MmIyYjllNjQuLjBiMDBjYTVmNjYxNTQ5NjI4NTFjM2VjN2Y5MTY4MzA0OGI4NmJmNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZhdGVCYXNl
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBDYWJsZSBUZWxl
dmlzaW9uIExhYnMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
QEAgLTI1LDM0ICsyNSwyOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFRyYWNr
UHJpdmF0ZUJhc2VfaAotI2RlZmluZSBUcmFja1ByaXZhdGVCYXNlX2gKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNp
bmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0j
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJp
bmcuaD4KIAotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLQogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBUcmFja1ByaXZhdGVCYXNlOwotCiBjbGFzcyBUcmFja1ByaXZhdGVCYXNlQ2xpZW50
IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5UcmFja1ByaXZhdGVCYXNlQ2xpZW50KCkgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGlkQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgQXRvbWlj
U3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRl
QmFzZSosIGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbGFuZ3Vh
Z2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmUoVHJhY2tQcml2YXRlQmFzZSopID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgaWRDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgbGFiZWxDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgbGFuZ3VhZ2VDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZSgpID0gMDsKIH07CiAKIGNsYXNzIFRyYWNrUHJpdmF0ZUJh
c2UgOiBwdWJsaWMgUmVmQ291bnRlZDxUcmFja1ByaXZhdGVCYXNlPiB7Ci0gICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoVHJhY2tQcml2YXRlQmFzZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRyYWNrUHJpdmF0ZUJhc2UpOworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHZpcnR1YWwgflRyYWNrUHJpdmF0ZUJhc2Uo
KSB7IH0KKyAgICB2aXJ0dWFsIH5UcmFja1ByaXZhdGVCYXNlKCkgPSBkZWZhdWx0OwogCiAgICAg
dmlydHVhbCBUcmFja1ByaXZhdGVCYXNlQ2xpZW50KiBjbGllbnQoKSBjb25zdCA9IDA7CiAKQEAg
LTYzLDE4ICs1OCwxNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgdHJhY2tJbmRleCgpIGNv
bnN0IHsgcmV0dXJuIDA7IH0KIAogICAgIHZpcnR1YWwgTWVkaWFUaW1lIHN0YXJ0VGltZVZhcmlh
bmNlKCkgY29uc3QgeyByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOyB9Ci0gICAgCisKICAg
ICB2b2lkIHdpbGxCZVJlbW92ZWQoKQogICAgIHsKLSAgICAgICAgaWYgKFRyYWNrUHJpdmF0ZUJh
c2VDbGllbnQqIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKQotICAgICAgICAgICAgY2xpZW50LT53
aWxsUmVtb3ZlKHRoaXMpOworICAgICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50
KCkpCisgICAgICAgICAgICBjbGllbnQtPndpbGxSZW1vdmUoKTsKICAgICB9CiAKIHByb3RlY3Rl
ZDoKLSAgICBUcmFja1ByaXZhdGVCYXNlKCkgeyB9CisgICAgVHJhY2tQcml2YXRlQmFzZSgpID0g
ZGVmYXVsdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCi0jZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJp
dmF0ZS5oCmluZGV4IGZlZDM0OWE3YjM3MjhmNTAyN2M4MmU3YTEwYzM1MjdkMGY1OTM1ZGQuLmY5
NDUzMzU2N2ZmMmJiMzA1NjhlODExM2Q0NzVkOGU4NjE1MDcxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywyOSAr
MjMsMjEgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBWaWRlb1RyYWNrUHJpdmF0
ZV9oCi0jZGVmaW5lIFZpZGVvVHJhY2tQcml2YXRlX2gKLQotI2luY2x1ZGUgIlRyYWNrUHJpdmF0
ZUJhc2UuaCIKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi1uYW1l
c3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZS5oIgogCi1jbGFzcyBW
aWRlb1RyYWNrUHJpdmF0ZTsKK25hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgVmlkZW9UcmFj
a1ByaXZhdGVDbGllbnQgOiBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZUNsaWVudCB7CiBwdWJsaWM6
Ci0gICAgdmlydHVhbCB2b2lkIHNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrUHJpdmF0ZSosIGJv
b2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGFuZ2VkKGJvb2wpID0gMDsKIH07
CiAKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlIDogcHVibGljIFRyYWNrUHJpdmF0ZUJhc2Ugewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPiBjcmVhdGUo
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWaWRlb1RyYWNrUHJpdmF0ZSgp
KTsKLSAgICB9Ci0KICAgICB2b2lkIHNldENsaWVudChWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCog
Y2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAgICAgVmlkZW9UcmFja1ByaXZhdGVDbGll
bnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKQEAgLTU1
LDI2ICs0NywyMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1fc2Vs
ZWN0ZWQgPSBzZWxlY3RlZDsKICAgICAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICAgICAgbV9j
bGllbnQtPnNlbGVjdGVkQ2hhbmdlZCh0aGlzLCBtX3NlbGVjdGVkKTsKLSAgICB9OworICAgICAg
ICAgICAgbV9jbGllbnQtPnNlbGVjdGVkQ2hhbmdlZChtX3NlbGVjdGVkKTsKKyAgICB9CiAgICAg
dmlydHVhbCBib29sIHNlbGVjdGVkKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3RlZDsgfQogCiAg
ICAgZW51bSBLaW5kIHsgQWx0ZXJuYXRpdmUsIENhcHRpb25zLCBNYWluLCBTaWduLCBTdWJ0aXRs
ZXMsIENvbW1lbnRhcnksIE5vbmUgfTsKICAgICB2aXJ0dWFsIEtpbmQga2luZCgpIGNvbnN0IHsg
cmV0dXJuIE5vbmU7IH0KIAogcHJvdGVjdGVkOgotICAgIFZpZGVvVHJhY2tQcml2YXRlKCkKLSAg
ICAgICAgOiBtX2NsaWVudCgwKQotICAgICAgICAsIG1fc2VsZWN0ZWQoZmFsc2UpCi0gICAgewot
ICAgIH0KKyAgICBWaWRlb1RyYWNrUHJpdmF0ZSgpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAg
ICBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCogbV9jbGllbnQ7Ci0gICAgYm9vbCBtX3NlbGVjdGVk
OworICAgIFZpZGVvVHJhY2tQcml2YXRlQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKKyAg
ICBib29sIG1fc2VsZWN0ZWQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvVHJhY2tQcml2YXRlQVZGLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFja1ByaXZhdGVBVkYu
aAppbmRleCAxMzFmZDUxYjRjMTY5MzQwOGI0ZjhhNGI1OTZlYjI2ZmJkNmQyOTZiLi4xOWI1NjBi
Y2NiYTU4MTk1Y2U0NWVmNmVmODFjOGRjZGVjMjk1YmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9UcmFja1ByaXZhdGVBVkYu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVk
aW9UcmFja1ByaXZhdGVBVkYuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBBdWRpb1RyYWNrUHJpdmF0ZUFWRl9oCi0jZGVm
aW5lIEF1ZGlvVHJhY2tQcml2YXRlQVZGX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQogCkBAIC0zNSw3ICszNCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IEF1ZGlvVHJhY2tQcml2YXRlQVZGIDogcHVibGljIEF1ZGlvVHJhY2tQcml2YXRlIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1RyYWNrUHJpdmF0ZUFWRikKIHB1YmxpYzoKLQogICAg
IHZpcnR1YWwgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gbV9raW5kOyB9CiAgICAgdmlydHVh
bCBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAgICAgdmlydHVhbCBB
dG9taWNTdHJpbmcgbGFiZWwoKSBjb25zdCB7IHJldHVybiBtX2xhYmVsOyB9CkBAIC00NCwyNiAr
NDIsMjAgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRLaW5kKEtpbmQga2lu
ZCkgeyBtX2tpbmQgPSBraW5kOyB9Ci0gICAgdm9pZCBzZXRJZChBdG9taWNTdHJpbmcgbmV3SWQp
IHsgbV9pZCA9IG5ld0lkOyB9Ci0gICAgdm9pZCBzZXRMYWJlbChBdG9taWNTdHJpbmcgbGFiZWwp
IHsgbV9sYWJlbCA9IGxhYmVsOyB9Ci0gICAgdm9pZCBzZXRMYW5ndWFnZShBdG9taWNTdHJpbmcg
bGFuZ3VhZ2UpIHsgbV9sYW5ndWFnZSA9IGxhbmd1YWdlOyB9CisgICAgdm9pZCBzZXRJZChjb25z
dCBBdG9taWNTdHJpbmcmIG5ld0lkKSB7IG1faWQgPSBuZXdJZDsgfQorICAgIHZvaWQgc2V0TGFi
ZWwoY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCkgeyBtX2xhYmVsID0gbGFiZWw7IH0KKyAgICB2
b2lkIHNldExhbmd1YWdlKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpIHsgbV9sYW5ndWFn
ZSA9IGxhbmd1YWdlOyB9CiAgICAgdm9pZCBzZXRUcmFja0luZGV4KGludCBpbmRleCkgeyBtX2lu
ZGV4ID0gaW5kZXg7IH0KIAotICAgIEtpbmQgbV9raW5kOworICAgIEtpbmQgbV9raW5kIHsgTm9u
ZSB9OwogICAgIEF0b21pY1N0cmluZyBtX2lkOwogICAgIEF0b21pY1N0cmluZyBtX2xhYmVsOwog
ICAgIEF0b21pY1N0cmluZyBtX2xhbmd1YWdlOwotICAgIGludCBtX2luZGV4OworICAgIGludCBt
X2luZGV4IHsgMCB9OwogCi0gICAgQXVkaW9UcmFja1ByaXZhdGVBVkYoKQotICAgICAgICA6IG1f
a2luZChOb25lKQotICAgICAgICAsIG1faW5kZXgoMCkKLSAgICB7Ci0gICAgfQorICAgIEF1ZGlv
VHJhY2tQcml2YXRlQVZGKCkgPSBkZWZhdWx0OwogfTsKIAogfQogCiAjZW5kaWYgLy8gRU5BQkxF
KFZJREVPX1RSQUNLKQotCi0jZW5kaWYgLy8gQXVkaW9UcmFja1ByaXZhdGVBVkZfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFu
ZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZG
LmNwcAppbmRleCA5YzZjYTg3YjBjMGY5MDA2NzExN2Y0NDJkM2U2NmQ5NDEzM2FmMTQwLi5iNDli
ZDFlMzdmMGM3ZDA2YTllYjM4YmNkMGMxYzNjMGJjMzg3OTJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFUZXh0
VHJhY2tQcml2YXRlQVZGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI0LDkgKzI0LDkgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5i
YW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmgiCiAKICNpZiBFTkFCTEUoVklERU8pICYm
IEVOQUJMRShEQVRBQ1VFX1ZBTFVFKSAmJiAoVVNFKEFWRk9VTkRBVElPTikgfHwgUExBVEZPUk0o
SU9TKSkKLSNpbmNsdWRlICJJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuaCIKIAog
I2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGVDbGllbnQuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCkBAIC01NCw2ICs1NCw3IEBAIEluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFW
Rjo6fkluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRigpCiB9CiAKICNpZiBFTkFCTEUo
REFUQUNVRV9WQUxVRSkKKwogdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6
OmFkZERhdGFDdWUoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQs
IFBhc3NSZWZQdHI8U2VyaWFsaXplZFBsYXRmb3JtUmVwcmVzZW50YXRpb24+IHBycEN1ZURhdGEs
IGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICBBU1NFUlQoY3VlRm9ybWF0KCkgPT0gRGF0YSk7
CkBAIC02Niw3ICs2Nyw3IEBAIHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZG
OjphZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0CiAgICAgbV9jdXJyZW50
Q3VlU3RhcnRUaW1lID0gc3RhcnQ7CiAgICAgaWYgKGVuZC5pc1Bvc2l0aXZlSW5maW5pdGUoKSkK
ICAgICAgICAgbV9pbmNvbXBsZXRlQ3Vlcy5hcHBlbmQoSW5jb21wbGV0ZU1ldGFEYXRhQ3VlIHsg
Y3VlRGF0YS5nZXQoKSwgc3RhcnQgfSk7Ci0gICAgY2xpZW50KCktPmFkZERhdGFDdWUodGhpcywg
c3RhcnQsIGVuZCwgY3VlRGF0YSwgdHlwZSk7CisgICAgY2xpZW50KCktPmFkZERhdGFDdWUoc3Rh
cnQsIGVuZCwgY3VlRGF0YS5yZWxlYXNlTm9uTnVsbCgpLCB0eXBlKTsKIH0KIAogdm9pZCBJbmJh
bmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkY6OnVwZGF0ZVBlbmRpbmdDdWVFbmRUaW1lcyhj
b25zdCBNZWRpYVRpbWUmIHRpbWUpCkBAIC03Nyw3ICs3OCw3IEBAIHZvaWQgSW5iYW5kTWV0YWRh
dGFUZXh0VHJhY2tQcml2YXRlQVZGOjp1cGRhdGVQZW5kaW5nQ3VlRW5kVGltZXMoY29uc3QgTWVk
aWFUaW1lCiAgICAgICAgIGlmIChjbGllbnQoKSkgewogICAgICAgICAgICAgZm9yIChhdXRvJiBw
YXJ0aWFsQ3VlIDogbV9pbmNvbXBsZXRlQ3VlcykgewogICAgICAgICAgICAgICAgIExPRyhNZWRp
YSwgIkluYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6dXBkYXRlUGVuZGluZ0N1ZUVu
ZFRpbWVzKCVwKSAtIHVwZGF0aW5nIGN1ZTogc3RhcnQ9JXMsIGVuZD0lcyIsIHRoaXMsIHRvU3Ry
aW5nKHBhcnRpYWxDdWUuc3RhcnRUaW1lKS51dGY4KCkuZGF0YSgpLCB0b1N0cmluZyh0aW1lKS51
dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICBjbGllbnQoKS0+dXBkYXRlRGF0YUN1ZSh0
aGlzLCBwYXJ0aWFsQ3VlLnN0YXJ0VGltZSwgdGltZSwgcGFydGlhbEN1ZS5jdWVEYXRhKTsKKyAg
ICAgICAgICAgICAgICBjbGllbnQoKS0+dXBkYXRlRGF0YUN1ZShwYXJ0aWFsQ3VlLnN0YXJ0VGlt
ZSwgdGltZSwgKnBhcnRpYWxDdWUuY3VlRGF0YSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICB9IGVsc2UKQEAgLTg2LDYgKzg3LDcgQEAgdm9pZCBJbmJhbmRNZXRhZGF0YVRleHRUcmFj
a1ByaXZhdGVBVkY6OnVwZGF0ZVBlbmRpbmdDdWVFbmRUaW1lcyhjb25zdCBNZWRpYVRpbWUKICAg
ICBtX2luY29tcGxldGVDdWVzLnJlc2l6ZSgwKTsKICAgICBtX2N1cnJlbnRDdWVTdGFydFRpbWUg
PSBNZWRpYVRpbWU6Onplcm9UaW1lKCk7CiB9CisKICNlbmRpZgogCiB2b2lkIEluYmFuZE1ldGFk
YXRhVGV4dFRyYWNrUHJpdmF0ZUFWRjo6Zmx1c2hQYXJ0aWFsQ3VlcygpCkBAIC05NSw3ICs5Nyw3
IEBAIHZvaWQgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGOjpmbHVzaFBhcnRpYWxD
dWVzKCkKIAogICAgIGlmIChjbGllbnQoKSkgewogICAgICAgICBmb3IgKGF1dG8mIHBhcnRpYWxD
dWUgOiBtX2luY29tcGxldGVDdWVzKQotICAgICAgICAgICAgY2xpZW50KCktPnJlbW92ZURhdGFD
dWUodGhpcywgcGFydGlhbEN1ZS5zdGFydFRpbWUsIE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0
ZVRpbWUoKSwgcGFydGlhbEN1ZS5jdWVEYXRhKTsKKyAgICAgICAgICAgIGNsaWVudCgpLT5yZW1v
dmVEYXRhQ3VlKHBhcnRpYWxDdWUuc3RhcnRUaW1lLCBNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5p
dGVUaW1lKCksICpwYXJ0aWFsQ3VlLmN1ZURhdGEpOwogICAgIH0KIAogICAgIG1faW5jb21wbGV0
ZUN1ZXMucmVzaXplKDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1By
aXZhdGVBVkYuY3BwCmluZGV4IDNiN2JkYTg2NmQyZTYwZDkzMmViOGU2MDk2ZWY4YTkzMzM3YzY2
YzAuLjk1OTZmOGNhM2MxN2U0NWRmY2UxOGQ3YWQwMjRlMGM1MWQ1MmQwZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwxMSAr
MjQsMTEgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUFWRi5oIgogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEFWRk9VTkRB
VElPTikgfHwgUExBVEZPUk0oSU9TKSkKIAotI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZh
dGVBVkYuaCIKLQorI2luY2x1ZGUgIkNvcmVNZWRpYVNvZnRMaW5rLmgiCiAjaW5jbHVkZSAiSVNP
VlRUQ3VlLmgiCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudC5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTQzLDEyICs0Myw2IEBACiAjaW5jbHVkZSA8d3RmL3VuaWNv
ZGUvQ2hhcmFjdGVyTmFtZXMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4K
IAotI2luY2x1ZGUgIkNvcmVNZWRpYVNvZnRMaW5rLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotY2xh
c3MgQXJyYXlCdWZmZXI7Ci19Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQVZGSW5iYW5kVHJh
Y2tQYXJlbnQ6On5BVkZJbmJhbmRUcmFja1BhcmVudCgpCkBAIC0zMjMsMzMgKzMxNywzMyBAQCB2
b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRyaWJ1dGVkU3RyaW5ncyhD
RkFycmF5UmVmIGF0dHJpYnV0ZWRTdAogewogICAgIExPRyhNZWRpYSwgIkluYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkY6OnByb2Nlc3NDdWUgLSAlbGkgY3VlcyBhdCB0aW1lICVzXG4iLCBhdHRyaWJ1
dGVkU3RyaW5ncyA/IENGQXJyYXlHZXRDb3VudChhdHRyaWJ1dGVkU3RyaW5ncykgOiAwLCB0b1N0
cmluZyh0aW1lKS51dGY4KCkuZGF0YSgpKTsKIAotICAgIFZlY3RvcjxSZWZQdHI8R2VuZXJpY0N1
ZURhdGE+PiBhcnJpdmluZ0N1ZXM7CisgICAgVmVjdG9yPFJlZjxHZW5lcmljQ3VlRGF0YT4+IGFy
cml2aW5nQ3VlczsKICAgICBpZiAoYXR0cmlidXRlZFN0cmluZ3MpIHsKICAgICAgICAgQ0ZJbmRl
eCBjb3VudCA9IENGQXJyYXlHZXRDb3VudChhdHRyaWJ1dGVkU3RyaW5ncyk7CiAgICAgICAgIGZv
ciAoQ0ZJbmRleCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKICAgICAgICAgICAgIENGQXR0cmli
dXRlZFN0cmluZ1JlZiBhdHRyaWJ1dGVkU3RyaW5nID0gc3RhdGljX2Nhc3Q8Q0ZBdHRyaWJ1dGVk
U3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dHJpYnV0ZWRTdHJpbmdzLCBpKSk7
Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgaWYgKCFhdHRyaWJ1dGVkU3RyaW5nIHx8ICFD
RkF0dHJpYnV0ZWRTdHJpbmdHZXRMZW5ndGgoYXR0cmlidXRlZFN0cmluZykpCiAgICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFJlZlB0cjxHZW5lcmlj
Q3VlRGF0YT4gY3VlRGF0YSA9IEdlbmVyaWNDdWVEYXRhOjpjcmVhdGUoKTsKLSAgICAgICAgICAg
IHByb2Nlc3NDdWVBdHRyaWJ1dGVzKGF0dHJpYnV0ZWRTdHJpbmcsICpjdWVEYXRhLmdldCgpKTsK
KworICAgICAgICAgICAgYXV0byBjdWVEYXRhID0gR2VuZXJpY0N1ZURhdGE6OmNyZWF0ZSgpOwor
ICAgICAgICAgICAgcHJvY2Vzc0N1ZUF0dHJpYnV0ZXMoYXR0cmlidXRlZFN0cmluZywgY3VlRGF0
YS5nZXQoKSk7CiAgICAgICAgICAgICBpZiAoIWN1ZURhdGEtPmNvbnRlbnQoKS5sZW5ndGgoKSkK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgYXJy
aXZpbmdDdWVzLmFwcGVuZChjdWVEYXRhKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBj
dWVEYXRhLT5zZXRTdGFydFRpbWUodGltZSk7CiAgICAgICAgICAgICBjdWVEYXRhLT5zZXRFbmRU
aW1lKE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKSk7Ci0gICAgICAgICAgICAKKwog
ICAgICAgICAgICAgLy8gQVZGb3VuZGF0aW9uIGN1ZSAicG9zaXRpb24iIGlzIHRvIHRoZSBjZW50
ZXIgb2YgdGhlIHRleHQgc28gYWRqdXN0IHJlbGF0aXZlIHRvIHRoZSBlZGdlIGJlY2F1c2Ugd2Ug
d2lsbCB1c2UgaXQgdG8KICAgICAgICAgICAgIC8vIHNldCBDU1MgImxlZnQiLgogICAgICAgICAg
ICAgaWYgKGN1ZURhdGEtPnBvc2l0aW9uKCkgPj0gMCAmJiBjdWVEYXRhLT5zaXplKCkgPiAwKQog
ICAgICAgICAgICAgICAgIGN1ZURhdGEtPnNldFBvc2l0aW9uKGN1ZURhdGEtPnBvc2l0aW9uKCkg
LSBjdWVEYXRhLT5zaXplKCkgLyAyKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBMT0co
TWVkaWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlKCVwKSAtIGNvbnNp
ZGVyaW5nIGN1ZSAoXCIlc1wiKSBmb3IgdGltZSA9ICVzLCBwb3NpdGlvbiA9ICAlLjJmLCBsaW5l
ID0gICUuMmYiLCB0aGlzLCBjdWVEYXRhLT5jb250ZW50KCkudXRmOCgpLmRhdGEoKSwgdG9TdHJp
bmcoY3VlRGF0YS0+c3RhcnRUaW1lKCkpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEtPnBvc2l0aW9u
KCksIGN1ZURhdGEtPmxpbmUoKSk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgY3VlRGF0
YS0+c2V0U3RhdHVzKEdlbmVyaWNDdWVEYXRhOjpQYXJ0aWFsKTsKKworICAgICAgICAgICAgYXJy
aXZpbmdDdWVzLmFwcGVuZChXVEZNb3ZlKGN1ZURhdGEpKTsKICAgICAgICAgfQogICAgIH0KIApA
QCAtMzYwLDE3ICszNTQsMTcgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9j
ZXNzQXR0cmlidXRlZFN0cmluZ3MoQ0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3QKICAgICAgICAgaWYg
KG1fY3VycmVudEN1ZUVuZFRpbWUgPj0gbV9jdXJyZW50Q3VlU3RhcnRUaW1lKSB7CiAgICAgICAg
ICAgICBmb3IgKGF1dG8mIGN1ZURhdGEgOiBtX2N1ZXMpIHsKICAgICAgICAgICAgICAgICAvLyBT
ZWUgaWYgb25lIG9mIHRoZSBuZXdseS1hcnJpdmVkIGN1ZXMgaXMgYW4gZXh0ZW5zaW9uIG9mIHRo
aXMgY3VlLgotICAgICAgICAgICAgICAgIFZlY3RvcjxSZWZQdHI8R2VuZXJpY0N1ZURhdGE+PiBu
b25FeHRlbnNpb25DdWVzOworICAgICAgICAgICAgICAgIFZlY3RvcjxSZWY8R2VuZXJpY0N1ZURh
dGE+PiBub25FeHRlbnNpb25DdWVzOwogICAgICAgICAgICAgICAgIGZvciAoYXV0byYgYXJyaXZp
bmdDdWUgOiBhcnJpdmluZ0N1ZXMpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFhcnJpdmlu
Z0N1ZS0+ZG9lc0V4dGVuZEN1ZURhdGEoKmN1ZURhdGEpKQotICAgICAgICAgICAgICAgICAgICAg
ICAgbm9uRXh0ZW5zaW9uQ3Vlcy5hcHBlbmQoYXJyaXZpbmdDdWUpOworICAgICAgICAgICAgICAg
ICAgICAgICAgbm9uRXh0ZW5zaW9uQ3Vlcy5hcHBlbmQoV1RGTW92ZShhcnJpdmluZ0N1ZSkpOwog
ICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBMT0coTWVk
aWEsICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNzQ3VlKCVwKSAtIGZvdW5kIGFu
IGV4dGVuc2lvbiBjdWUgKFwiJXNcIikgZm9yIHRpbWUgPSAlLjJmLCBlbmQgPSAlLjJmLCBwb3Np
dGlvbiA9ICAlLjJmLCBsaW5lID0gICUuMmYiLCB0aGlzLCBhcnJpdmluZ0N1ZS0+Y29udGVudCgp
LnV0ZjgoKS5kYXRhKCksIGFycml2aW5nQ3VlLT5zdGFydFRpbWUoKS50b0RvdWJsZSgpLCBhcnJp
dmluZ0N1ZS0+ZW5kVGltZSgpLnRvRG91YmxlKCksIGFycml2aW5nQ3VlLT5wb3NpdGlvbigpLCBh
cnJpdmluZ0N1ZS0+bGluZSgpKTsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAg
ICBib29sIGN1cnJlbnRDdWVJc0V4dGVuZGVkID0gKGFycml2aW5nQ3Vlcy5zaXplKCkgIT0gbm9u
RXh0ZW5zaW9uQ3Vlcy5zaXplKCkpOwogCi0gICAgICAgICAgICAgICAgYXJyaXZpbmdDdWVzID0g
bm9uRXh0ZW5zaW9uQ3VlczsKKyAgICAgICAgICAgICAgICBhcnJpdmluZ0N1ZXMgPSBXVEZNb3Zl
KG5vbkV4dGVuc2lvbkN1ZXMpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlm
IChjdXJyZW50Q3VlSXNFeHRlbmRlZCkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CkBA
IC0zODAsNyArMzc0LDcgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGOjpwcm9jZXNz
QXR0cmlidXRlZFN0cmluZ3MoQ0ZBcnJheVJlZiBhdHRyaWJ1dGVkU3QKICAgICAgICAgICAgICAg
ICAgICAgY3VlRGF0YS0+c2V0U3RhdHVzKEdlbmVyaWNDdWVEYXRhOjpDb21wbGV0ZSk7CiAKICAg
ICAgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6
cHJvY2Vzc0N1ZSglcCkgLSB1cGRhdGluZyBjdWUgXCIlc1wiOiBzdGFydD0lLjJmLCBlbmQ9JS4y
ZiIsIHRoaXMsIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLT5zdGFy
dFRpbWUoKS50b0RvdWJsZSgpLCBtX2N1cnJlbnRDdWVFbmRUaW1lLnRvRG91YmxlKCkpOwotICAg
ICAgICAgICAgICAgICAgICBjbGllbnQoKS0+dXBkYXRlR2VuZXJpY0N1ZSh0aGlzLCBjdWVEYXRh
LmdldCgpKTsKKyAgICAgICAgICAgICAgICAgICAgY2xpZW50KCktPnVwZGF0ZUdlbmVyaWNDdWUo
KmN1ZURhdGEpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAg
IC8vIFdlIGhhdmUgdG8gYXNzdW1lIHRoYXQgdGhlIGltcGxpY2l0IGR1cmF0aW9uIGlzIGludmFs
aWQgZm9yIGN1ZXMgZGVsaXZlcmVkIGR1cmluZyBhIHNlZWsgYmVjYXVzZSB0aGUgQVZGIGRlY29k
ZSBwaXBlbGluZSBtYXkgbm90CiAgICAgICAgICAgICAgICAgICAgIC8vIHNlZSBldmVyeSBjdWUs
IHNvIERPIE5PVCB1cGRhdGUgY3VlIGR1cmF0aW9uIHdoaWxlIHNlZWtpbmcuCkBAIC0zOTksMTIg
KzM5MywxMSBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NBdHRyaWJ1
dGVkU3RyaW5ncyhDRkFycmF5UmVmIGF0dHJpYnV0ZWRTdAogICAgIG1fY3VycmVudEN1ZVN0YXJ0
VGltZSA9IHRpbWU7CiAKICAgICBmb3IgKGF1dG8mIGN1ZURhdGEgOiBhcnJpdmluZ0N1ZXMpIHsK
LQotICAgICAgICBtX2N1ZXMuYXBwZW5kKGN1ZURhdGEpOworICAgICAgICBtX2N1ZXMuYXBwZW5k
KGN1ZURhdGEucHRyKCkpOwogICAgICAgICAKICAgICAgICAgTE9HKE1lZGlhLCAiSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc0N1ZSglcCkgLSBhZGRpbmcgY3VlIFwiJXNcIiBmb3Ig
dGltZSA9ICUuMmYsIGVuZCA9ICUuMmYsIHBvc2l0aW9uID0gICUuMmYsIGxpbmUgPSAgJS4yZiIs
IHRoaXMsIGN1ZURhdGEtPmNvbnRlbnQoKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLT5zdGFydFRp
bWUoKS50b0RvdWJsZSgpLCBjdWVEYXRhLT5lbmRUaW1lKCkudG9Eb3VibGUoKSwgY3VlRGF0YS0+
cG9zaXRpb24oKSwgY3VlRGF0YS0+bGluZSgpKTsKIAotICAgICAgICBjbGllbnQoKS0+YWRkR2Vu
ZXJpY0N1ZSh0aGlzLCBXVEZNb3ZlKGN1ZURhdGEpKTsKKyAgICAgICAgY2xpZW50KCktPmFkZEdl
bmVyaWNDdWUoV1RGTW92ZShjdWVEYXRhKSk7CiAgICAgfQogCiAgICAgbV9wZW5kaW5nQ3VlU3Rh
dHVzID0gc2Vla2luZygpID8gRGVsaXZlcmVkRHVyaW5nU2VlayA6IFZhbGlkOwpAQCAtNDUxLDkg
KzQ0NCw5IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cmVzZXRDdWVWYWx1ZXMo
KQogICAgIGlmIChtX2N1cnJlbnRDdWVFbmRUaW1lICYmIG1fY3Vlcy5zaXplKCkpCiAgICAgICAg
IExPRyhNZWRpYSwgIkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnJlc2V0Q3VlVmFsdWVzIGZs
dXNoaW5nIGRhdGEgZm9yIGN1ZXM6IHN0YXJ0PSVzXG4iLCB0b1N0cmluZyhtX2N1cnJlbnRDdWVT
dGFydFRpbWUpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgaWYgKGNsaWVudCgpKSB7Ci0gICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jdWVzLnNpemUoKTsgaSsrKQotICAgICAgICAgICAg
Y2xpZW50KCktPnJlbW92ZUdlbmVyaWNDdWUodGhpcywgbV9jdWVzW2ldLmdldCgpKTsKKyAgICBp
ZiAoYXV0byogY2xpZW50ID0gdGhpcy0+Y2xpZW50KCkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBj
dWUgOiBtX2N1ZXMpCisgICAgICAgICAgICBjbGllbnQtPnJlbW92ZUdlbmVyaWNDdWUoKmN1ZSk7
CiAgICAgfQogCiAgICAgbV9jdWVzLnJlc2l6ZSgwKTsKQEAgLTUwOSw3ICs1MDIsNyBAQCB2b2lk
IEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnByb2Nlc3NOYXRpdmVTYW1wbGVzKENGQXJyYXlS
ZWYgbmF0aXZlU2FtcGxlcywgYwogICAgICAgICAgICAgTE9HKE1lZGlhLCAiICAgIGlkID0gXCIl
c1wiLCBzZXR0aW5ncyA9IFwiJXNcIiwgY3VlIHRleHQgPSBcIiVzXCIiLCBjdWVEYXRhLmlkKCku
dXRmOCgpLmRhdGEoKSwgY3VlRGF0YS5zZXR0aW5ncygpLnV0ZjgoKS5kYXRhKCksIGN1ZURhdGEu
Y3VlVGV4dCgpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgTE9HKE1lZGlhLCAiICAgIHNv
dXJjZUlEID0gXCIlc1wiLCBvcmlnaW5hbFN0YXJ0VGltZSA9IFwiJXNcIiIsIGN1ZURhdGEuc291
cmNlSUQoKS51dGY4KCkuZGF0YSgpLCBjdWVEYXRhLm9yaWdpbmFsU3RhcnRUaW1lKCkudXRmOCgp
LmRhdGEoKSk7CiAKLSAgICAgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEN1ZURhdGEodGhp
cywgY3VlRGF0YSk7CisgICAgICAgICAgICBjbGllbnQoKS0+cGFyc2VXZWJWVFRDdWVEYXRhKGN1
ZURhdGEpOwogICAgICAgICB9CiAKICAgICAgICAgZG8gewpAQCAtNTQyLDcgKzUzNSw3IEBAIHZv
aWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjo6cHJvY2Vzc05hdGl2ZVNhbXBsZXMoQ0ZBcnJh
eVJlZiBuYXRpdmVTYW1wbGVzLCBjCiAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kKCJcblxuIik7
CiAKICAgICAgICAgICAgIExPRyhNZWRpYSwgIiAgICB2dHQgaGVhZGVyID0gXG4lcyIsIGhlYWRl
ci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgY2xpZW50KCktPnBhcnNl
V2ViVlRURmlsZUhlYWRlcih0aGlzLCBoZWFkZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBj
bGllbnQoKS0+cGFyc2VXZWJWVFRGaWxlSGVhZGVyKGhlYWRlci50b1N0cmluZygpKTsKICAgICAg
ICAgICAgIG1faGF2ZVJlcG9ydGVkVlRUSGVhZGVyID0gdHJ1ZTsKICAgICAgICAgfSB3aGlsZSAo
MCk7CiAKQEAgLTU1NSw3ICs1NDgsNyBAQCBib29sIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6
OnJlYWROYXRpdmVTYW1wbGVCdWZmZXIoQ0ZBcnJheVJlZiBuYXRpdmVTYW1wbGVzLAogI2lmIE9T
KFdJTkRPV1MpICYmIEhBVkUoQVZDRlBMQVlFUklURU1fQ0FMTEJBQ0tfVkVSU0lPTl8yKQogICAg
IHJldHVybiBmYWxzZTsKICNlbHNlCi0gICAgQ01TYW1wbGVCdWZmZXJSZWYgY29uc3Qgc2FtcGxl
QnVmZmVyID0gcmVpbnRlcnByZXRfY2FzdDxDTVNhbXBsZUJ1ZmZlclJlZj4oY29uc3RfY2FzdDx2
b2lkKj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChuYXRpdmVTYW1wbGVzLCBpbmRleCkpKTsKKyAg
ICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSByZWludGVycHJldF9jYXN0PENNU2Ft
cGxlQnVmZmVyUmVmPihjb25zdF9jYXN0PHZvaWQqPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KG5h
dGl2ZVNhbXBsZXMsIGluZGV4KSkpOwogICAgIGlmICghc2FtcGxlQnVmZmVyKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9WaWRlb1RyYWNrUHJpdmF0ZUFWRi5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1ZpZGVvVHJhY2tQcml2YXRlQVZGLmgKaW5k
ZXggODU4ZjQxYzYxOGVhZjc5NGUzZTY1MWQwNDE2YTA1MGVkZjE4YTVhYi4uYTNmMGY0ZWNhMDU3
M2RkODJmYjk0N2Y0YjlmOWYwNzFhMGYzYzJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1ZpZGVvVHJhY2tQcml2YXRlQVZGLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1ZpZGVvVHJh
Y2tQcml2YXRlQVZGLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKLSNpZm5kZWYgVmlkZW9UcmFja1ByaXZhdGVBVkZfaAotI2RlZmluZSBW
aWRlb1RyYWNrUHJpdmF0ZUFWRl9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShWSURFT19U
UkFDSykKIApAQCAtMzUsNyArMzQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBWaWRl
b1RyYWNrUHJpdmF0ZUFWRiA6IHB1YmxpYyBWaWRlb1RyYWNrUHJpdmF0ZSB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoVmlkZW9UcmFja1ByaXZhdGVBVkYpCiBwdWJsaWM6Ci0KICAgICBpbnQg
dHJhY2tJbmRleCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faW5kZXg7IH0KICAgICBLaW5k
IGtpbmQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2tpbmQ7IH0KICAgICBBdG9taWNTdHJp
bmcgaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lkOyB9CkBAIC00NCwyNiArNDIsMjAg
QEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRLaW5kKEtpbmQga2luZCkgeyBt
X2tpbmQgPSBraW5kOyB9Ci0gICAgdm9pZCBzZXRJZChBdG9taWNTdHJpbmcgbmV3SWQpIHsgbV9p
ZCA9IG5ld0lkOyB9Ci0gICAgdm9pZCBzZXRMYWJlbChBdG9taWNTdHJpbmcgbGFiZWwpIHsgbV9s
YWJlbCA9IGxhYmVsOyB9Ci0gICAgdm9pZCBzZXRMYW5ndWFnZShBdG9taWNTdHJpbmcgbGFuZ3Vh
Z2UpIHsgbV9sYW5ndWFnZSA9IGxhbmd1YWdlOyB9CisgICAgdm9pZCBzZXRJZChjb25zdCBBdG9t
aWNTdHJpbmcmIG5ld0lkKSB7IG1faWQgPSBuZXdJZDsgfQorICAgIHZvaWQgc2V0TGFiZWwoY29u
c3QgQXRvbWljU3RyaW5nJiBsYWJlbCkgeyBtX2xhYmVsID0gbGFiZWw7IH0KKyAgICB2b2lkIHNl
dExhbmd1YWdlKGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpIHsgbV9sYW5ndWFnZSA9IGxh
bmd1YWdlOyB9CiAgICAgdm9pZCBzZXRUcmFja0luZGV4KGludCBpbmRleCkgeyBtX2luZGV4ID0g
aW5kZXg7IH0KIAotICAgIEtpbmQgbV9raW5kOworICAgIEtpbmQgbV9raW5kIHsgTm9uZSB9Owog
ICAgIEF0b21pY1N0cmluZyBtX2lkOwogICAgIEF0b21pY1N0cmluZyBtX2xhYmVsOwogICAgIEF0
b21pY1N0cmluZyBtX2xhbmd1YWdlOwotICAgIGludCBtX2luZGV4OworICAgIGludCBtX2luZGV4
IHsgMCB9OwogCi0gICAgVmlkZW9UcmFja1ByaXZhdGVBVkYoKQotICAgICAgICA6IG1fa2luZChO
b25lKQotICAgICAgICAsIG1faW5kZXgoMCkKLSAgICB7Ci0gICAgfQorICAgIFZpZGVvVHJhY2tQ
cml2YXRlQVZGKCkgPSBkZWZhdWx0OwogfTsKIAogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVP
X1RSQUNLKQotCi0jZW5kaWYgLy8gVmlkZW9UcmFja1ByaXZhdGVBVkZfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9U
cmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuY3BwCmluZGV4IGZlOTM0NGI2MzFmMDM1ZjllZGU3MzU3NDQwN2YzNDM5YWEyNGU1
MDIuLmVjMGQwZWRkYmY3M2JlZWRhNjcxN2I3YTUxOGM3MzIxMjYwOTVhZTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
My0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzYsOCArMzYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBBdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6QXVkaW9UcmFja1ByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMoQVZBc3NldFRyYWNrKiB0cmFjaywgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMqIHBhcmVudCkKICAgICA6IG1faW1wbChzdGQ6Om1ha2VfdW5pcXVlPEFWVHJhY2tQcml2YXRl
QVZGT2JqQ0ltcGw+KHRyYWNrKSkKICAgICAsIG1fcGFyZW50KHBhcmVudCkKLSAgICAsIG1fdHJh
Y2tJRCgtMSkKLSAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKICAgICByZXNldFByb3BlcnRpZXNG
cm9tVHJhY2soKTsKIH0KQEAgLTYzLDE3ICs2MSwxMiBAQCBBVkFzc2V0VHJhY2sqIEF1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjphc3NldFRyYWNrKCkKICAgICByZXR1cm4gbV9p
bXBsLT5hc3NldFRyYWNrKCk7CiB9CiAKLWJvb2wgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OmVuYWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX2VuYWJsZWQ7Ci19Ci0K
IHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldEVuYWJsZWQoYm9v
bCBlbmFibGVkKQogewotICAgIGlmIChtX2VuYWJsZWQgPT0gZW5hYmxlZCkKKyAgICBpZiAoZW5h
YmxlZCA9PSB0aGlzLT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZW5hYmxl
ZCA9IGVuYWJsZWQ7CisgICAgQXVkaW9UcmFja1ByaXZhdGVBVkY6OnNldEVuYWJsZWQoZW5hYmxl
ZCk7CiAgICAgbV9wYXJlbnQtPnRyYWNrRGlkQ2hhbmdlRW5hYmxlZCh0aGlzKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlvVHJhY2tQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggYmJlODljZGRhMTNiMDgyZGNmODNmMDI1ZmNjODVjNDI4
ZmRjOTE0Ny4uMjEyODcyMTRhM2JmNWNlMTQwODA0NTUwZDlhZWVjMzhhMzA2MTFhOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
QXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDE1ICsyMywxMyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8K
IAotI2lmbmRlZiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQ19oCi0jZGVmaW5l
IEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDX2gKKyNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGVBVkYuaCIKIAogI2lmIEVOQUJMRShNRURJQV9TT1VS
Q0UpICYmIEVOQUJMRShWSURFT19UUkFDSykKIAogT0JKQ19DTEFTUyBBVkFzc2V0VHJhY2s7Ci1P
QkpDX0NMQVNTIEFWUGxheWVySXRlbVRyYWNrOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTQxLDEzICszOSwxMiBAQCBjbGFzcyBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzsKIGNsYXNz
IEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDIGZpbmFsIDogcHVibGljIEF1ZGlv
VHJhY2tQcml2YXRlQVZGIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQykKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEF1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPiBjcmVhdGUoQVZBc3NldFRyYWNrKiB0cmFj
aywgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIHBhcmVudCkKKyAgICBzdGF0aWMgUmVmUHRy
PEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDPiBjcmVhdGUoQVZBc3NldFRyYWNr
ICp0cmFjaywgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIHBhcmVudCkKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akModHJhY2ssIHBhcmVudCkpOwogICAgIH0KIAotICAgIGJvb2wgZW5hYmxlZCgpIGNvbnN0IG92
ZXJyaWRlOwotICAgIHZvaWQgc2V0RW5hYmxlZChib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIHNl
dEVuYWJsZWQoYm9vbCkgZmluYWw7CiAKICAgICB2b2lkIHNldEFzc2V0VHJhY2soQVZBc3NldFRy
YWNrKik7CiAgICAgQVZBc3NldFRyYWNrKiBhc3NldFRyYWNrKCk7CkBAIC02MiwxMSArNTksOCBA
QCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBs
PiBtX2ltcGw7CiAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIG1fcGFyZW50OwogICAg
IGludCBtX3RyYWNrSUQ7Ci0gICAgYm9vbCBtX2VuYWJsZWQ7CiB9OwogCiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCi0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IGQ0YzQ2MWQ4OGJmNWY3MmNmYWQ5OWM5ZWM4
ZGRmZTUwNjQxNGYwYzEuLmY2N2E4N2Q2Y2RkZjViYjJhNjE3ZTI0YmRhMTBmYjYwOGY4ZThkZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEzLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9y
dCAiQVZGb3VuZGF0aW9uU1BJLmgiCiAjaW1wb3J0ICJBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3Ry
ZWFtLmgiCiAjaW1wb3J0ICJDbG9jay5oIgorI2ltcG9ydCAiQ29yZU1lZGlhU29mdExpbmsuaCIK
ICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9y
dCAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCkBAIC00OSw4ICs1MCw2IEBACiAKICNwcmFnbWEgbWFy
ayAtIFNvZnQgTGlua2luZwogCi0jaW1wb3J0ICJDb3JlTWVkaWFTb2Z0TGluay5oIgotCiBTT0ZU
X0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAogU09GVF9MSU5LX0NMQVNT
X09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIpCkBAIC0z
ODAsMTAgKzM3OSwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6cGxheSgpCiAjZW5kaWYKIAogICAgIGZvciAoY29uc3QgYXV0byYgdHJhY2sgOiBtX2F1ZGlv
VHJhY2tNYXAudmFsdWVzKCkpIHsKLSAgICAgICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgpIHx8ICF0
cmFjay0+c3RyZWFtVHJhY2soKS0+cHJldmlldygpKQorICAgICAgICBpZiAoIXRyYWNrLT5lbmFi
bGVkKCkgfHwgIXRyYWNrLT5zdHJlYW1UcmFjaygpLnByZXZpZXcoKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogCi0gICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLT5wcmV2aWV3KCktPnBsYXko
KTsKKyAgICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCkucHJldmlldygpLT5wbGF5KCk7CiAgICAg
fQogCiAgICAgbV9oYXZlRXZlclBsYXllZCA9IHRydWU7CkBAIC00MTEsMTAgKzQxMCwxMCBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2UoKQogI2VuZGlm
CiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIHRyYWNrIDogbV9hdWRpb1RyYWNrTWFwLnZhbHVlcygp
KSB7Ci0gICAgICAgIGlmICghdHJhY2stPmVuYWJsZWQoKSB8fCAhdHJhY2stPnN0cmVhbVRyYWNr
KCktPnByZXZpZXcoKSkKKyAgICAgICAgaWYgKCF0cmFjay0+ZW5hYmxlZCgpIHx8ICF0cmFjay0+
c3RyZWFtVHJhY2soKS5wcmV2aWV3KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAg
ICB0cmFjay0+c3RyZWFtVHJhY2soKS0+cHJldmlldygpLT5wYXVzZSgpOworICAgICAgICB0cmFj
ay0+c3RyZWFtVHJhY2soKS5wcmV2aWV3KCktPnBhdXNlKCk7CiAgICAgfQogCiAgICAgdXBkYXRl
RGlzcGxheU1vZGUoKTsKQEAgLTQzNSwxMCArNDM0LDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppbnRlcm5hbFNldFZvbHVtZShmbG9hdCB2b2x1bWUsIGJv
b2wKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChjb25zdCBhdXRvJiB0cmFjayA6IG1fYXVk
aW9UcmFja01hcC52YWx1ZXMoKSkgewotICAgICAgICBpZiAoIXRyYWNrLT5lbmFibGVkKCkgfHwg
IXRyYWNrLT5zdHJlYW1UcmFjaygpLT5wcmV2aWV3KCkpCisgICAgICAgIGlmICghdHJhY2stPmVu
YWJsZWQoKSB8fCAhdHJhY2stPnN0cmVhbVRyYWNrKCkucHJldmlldygpKQogICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgICAgdHJhY2stPnN0cmVhbVRyYWNrKCktPnByZXZpZXcoKS0+c2V0
Vm9sdW1lKHZvbHVtZSk7CisgICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLnByZXZpZXcoKS0+
c2V0Vm9sdW1lKHZvbHVtZSk7CiAgICAgfQogfQogCkBAIC02MTcsNiArNjE2LDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNhbXBsZUJ1ZmZlclVwZGF0ZWQo
TWVkaWFTdHJlYW1UcmFja1AKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVP
X1BSRVNFTlRBVElPTl9NT0RFKQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciAqdmlkZW9GdWxs
c2NyZWVuTGF5ZXIsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyTWFuYWdlci0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5
ZXIodmlkZW9GdWxsc2NyZWVuTGF5ZXIsIGNvbXBsZXRpb25IYW5kbGVyKTsKQEAgLTYyNiw2ICs2
MjYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0Vmlk
ZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IGZyYQogewogICAgIG1fdmlkZW9GdWxsc2NyZWVu
TGF5ZXJNYW5hZ2VyLT5zZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShmcmFtZSk7CiB9CisKICNlbmRp
ZgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgUmVmVCwgdHlwZW5hbWUgUGFzc1JlZlQ+CkBAIC02NDQs
MTIgKzY0NSwxMiBAQCB2b2lkIHVwZGF0ZVRyYWNrc09mVHlwZShIYXNoTWFwPFN0cmluZywgUmVm
VD4mIHRyYWNrTWFwLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeQogICAgIH0KIAogICAgIGZvciAo
Y29uc3QgYXV0byYgdHJhY2sgOiB0cmFja01hcC52YWx1ZXMoKSkgewotICAgICAgICBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSogc3RyZWFtVHJhY2sgPSB0cmFjay0+c3RyZWFtVHJhY2soKTsKLSAg
ICAgICAgaWYgKGN1cnJlbnRUcmFja3MuY29udGFpbnMoc3RyZWFtVHJhY2spKQorICAgICAgICBh
dXRvJiBzdHJlYW1UcmFjayA9IHRyYWNrLT5zdHJlYW1UcmFjaygpOworICAgICAgICBpZiAoY3Vy
cmVudFRyYWNrcy5jb250YWlucygmc3RyZWFtVHJhY2spKQogICAgICAgICAgICAgY29udGludWU7
CiAKICAgICAgICAgcmVtb3ZlZFRyYWNrcy5hcHBlbmQodHJhY2spOwotICAgICAgICB0cmFja01h
cC5yZW1vdmUoc3RyZWFtVHJhY2stPmlkKCkpOworICAgICAgICB0cmFja01hcC5yZW1vdmUoc3Ry
ZWFtVHJhY2suaWQoKSk7CiAgICAgfQogCiAgICAgZm9yIChhdXRvJiB0cmFjayA6IGFkZGVkUHJp
dmF0ZVRyYWNrcykgewpAQCAtNjY0LDEyICs2NjUsMTIgQEAgdm9pZCB1cGRhdGVUcmFja3NPZlR5
cGUoSGFzaE1hcDxTdHJpbmcsIFJlZlQ+JiB0cmFja01hcCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHkKIAogICAgIGZvciAoYXV0byYgdHJhY2sgOiByZW1vdmVkVHJhY2tzKSB7CiAgICAgICAgIChw
bGF5ZXItPipyZW1vdmVkRnVuY3Rpb24pKCp0cmFjayk7Ci0gICAgICAgIHRyYWNrLT5zdHJlYW1U
cmFjaygpLT5yZW1vdmVPYnNlcnZlcigqdHJhY2tPYnNlcnZlcik7CisgICAgICAgIHRyYWNrLT5z
dHJlYW1UcmFjaygpLnJlbW92ZU9ic2VydmVyKCp0cmFja09ic2VydmVyKTsKICAgICB9CiAKICAg
ICBmb3IgKGF1dG8mIHRyYWNrIDogYWRkZWRUcmFja3MpIHsKICAgICAgICAgKHBsYXllci0+KmFk
ZGVkRnVuY3Rpb24pKCp0cmFjayk7Ci0gICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLT5hZGRP
YnNlcnZlcigqdHJhY2tPYnNlcnZlcik7CisgICAgICAgIHRyYWNrLT5zdHJlYW1UcmFjaygpLmFk
ZE9ic2VydmVyKCp0cmFja09ic2VydmVyKTsKICAgICB9CiB9CiAKQEAgLTY4MCwxNCArNjgxLDE0
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVUcmFj
a3MoKQogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGVNZWRp
YVN0cmVhbT4sIGludCk+IGVuYWJsZUF1ZGlvVHJhY2sgPSBbdGhpc10oYXV0byB0cmFjaywgaW50
IGluZGV4KQogICAgIHsKICAgICAgICAgdHJhY2stPnNldFRyYWNrSW5kZXgoaW5kZXgpOwotICAg
ICAgICB0cmFjay0+c2V0RW5hYmxlZCh0cmFjay0+c3RyZWFtVHJhY2soKS0+ZW5hYmxlZCgpICYm
ICF0cmFjay0+c3RyZWFtVHJhY2soKS0+bXV0ZWQoKSk7CisgICAgICAgIHRyYWNrLT5zZXRFbmFi
bGVkKHRyYWNrLT5zdHJlYW1UcmFjaygpLmVuYWJsZWQoKSAmJiAhdHJhY2stPnN0cmVhbVRyYWNr
KCkubXV0ZWQoKSk7CiAgICAgfTsKICAgICB1cGRhdGVUcmFja3NPZlR5cGUobV9hdWRpb1RyYWNr
TWFwLCBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbywgY3VycmVudFRyYWNrcywgJkF1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTdHJlYW06OmNyZWF0ZSwgbV9wbGF5ZXIsICZNZWRpYVBsYXllcjo6cmVt
b3ZlQXVkaW9UcmFjaywgJk1lZGlhUGxheWVyOjphZGRBdWRpb1RyYWNrLCBlbmFibGVBdWRpb1Ry
YWNrLCAoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyKikgdGhpcyk7CiAKICAgICBz
dGQ6OmZ1bmN0aW9uPHZvaWQoUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0+LCBp
bnQpPiBlbmFibGVWaWRlb1RyYWNrID0gW3RoaXNdKGF1dG8gdHJhY2ssIGludCBpbmRleCkKICAg
ICB7CiAgICAgICAgIHRyYWNrLT5zZXRUcmFja0luZGV4KGluZGV4KTsKLSAgICAgICAgYm9vbCBz
ZWxlY3RlZCA9IHRyYWNrLT5zdHJlYW1UcmFjaygpID09IG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5h
Y3RpdmVWaWRlb1RyYWNrKCk7CisgICAgICAgIGJvb2wgc2VsZWN0ZWQgPSAmdHJhY2stPnN0cmVh
bVRyYWNrKCkgPT0gbV9tZWRpYVN0cmVhbVByaXZhdGUtPmFjdGl2ZVZpZGVvVHJhY2soKTsKICAg
ICAgICAgdHJhY2stPnNldFNlbGVjdGVkKHNlbGVjdGVkKTsKIAogICAgICAgICBpZiAoc2VsZWN0
ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakMuaAppbmRleCAxZjc1ODJlMThiYjY4Y2NiOGMwNjU3NmY0MGMxYzE5NTM3ZmE3ZTdhLi4z
ZTViYzgxY2E2Mzk4YjJhNDliYTg3OTFlYTNlMmRlMWUzZmQyNzM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMyw4
ICsyMyw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0jaWZuZGVmIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDX2gKLSNkZWZpbmUgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakNfaAorI3By
YWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9O
KQogCkBAIC0xMTQsMTggKzExMywxOCBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDKE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMqKTsKIAogICAgIC8v
IFNvdXJjZUJ1ZmZlclByaXZhdGUgb3ZlcnJpZGVzCi0gICAgdm9pZCBzZXRDbGllbnQoU291cmNl
QnVmZmVyUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwotICAgIHZvaWQgYXBwZW5kKGNvbnN0IHVu
c2lnbmVkIGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBh
Ym9ydCgpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzZXRQYXJzZXJTdGF0ZSgpIG92ZXJyaWRlOwot
ICAgIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpIG92ZXJyaWRlOwotICAgIE1lZGlhUGxh
eWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNl
dFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpIG92ZXJyaWRlOwotICAgIHZvaWQg
Zmx1c2goQXRvbWljU3RyaW5nIHRyYWNrSUQpIG92ZXJyaWRlOwotICAgIHZvaWQgZW5xdWV1ZVNh
bXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiwgQXRvbWljU3RyaW5nIHRyYWNrSUQpIG92ZXJy
aWRlOwotICAgIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZyB0cmFja0lE
KSBvdmVycmlkZTsKLSAgICB2b2lkIHNldEFjdGl2ZShib29sKSBvdmVycmlkZTsKLSAgICB2b2lk
IG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZyB0cmFja0lE
KSBvdmVycmlkZTsKKyAgICB2b2lkIHNldENsaWVudChTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50
KikgZmluYWw7CisgICAgdm9pZCBhcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5z
aWduZWQgbGVuZ3RoKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KCkgZmluYWw7CisgICAgdm9pZCBy
ZXNldFBhcnNlclN0YXRlKCkgZmluYWw7CisgICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNl
KCkgZmluYWw7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0
IGZpbmFsOworICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkg
ZmluYWw7CisgICAgdm9pZCBmbHVzaChjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSUQpIGZpbmFs
OworICAgIHZvaWQgZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYsIGNvbnN0IEF0b21p
Y1N0cmluZyYgdHJhY2tJRCkgZmluYWw7CisgICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMo
Y29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEKSBmaW5hbDsKKyAgICB2b2lkIHNldEFjdGl2ZShi
b29sKSBmaW5hbDsKKyAgICB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVz
KGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2tJRCkgZmluYWw7CiAKICAgICB2b2lkIGRpZEJlY29t
ZVJlYWR5Rm9yTW9yZVNhbXBsZXMoaW50IHRyYWNrSUQpOwogICAgIHZvaWQgYXBwZW5kQ29tcGxl
dGVkKCk7CkBAIC0xNTUsMjEgKzE1NCwxOSBAQCBwcml2YXRlOgogICAgIE9TT2JqZWN0UHRyPGRp
c3BhdGNoX2dyb3VwX3Q+IG1faXNBcHBlbmRpbmdHcm91cDsKIAogICAgIE1lZGlhU291cmNlUHJp
dmF0ZUFWRk9iakMqIG1fbWVkaWFTb3VyY2U7Ci0gICAgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVu
dCogbV9jbGllbnQ7CisgICAgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCogbV9jbGllbnQgeyBu
dWxscHRyIH07CiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAgICAgQ0RNU2Vz
c2lvbk1lZGlhU291cmNlQVZGT2JqQyogbV9zZXNzaW9uIHsgbnVsbHB0ciB9OwogI2VuZGlmCiAK
ICAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0U2l6ZT4gbV9jYWNoZWRTaXplOwogICAgIEZsb2F0U2l6
ZSBtX2N1cnJlbnRTaXplOwotICAgIGJvb2wgbV9wYXJzaW5nU3VjY2VlZGVkOworICAgIGJvb2wg
bV9wYXJzaW5nU3VjY2VlZGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9wYXJzZXJTdGF0ZVdhc1Jl
c2V0IHsgZmFsc2UgfTsKLSAgICBpbnQgbV9lbmFibGVkVmlkZW9UcmFja0lEOwotICAgIGludCBt
X3Byb3RlY3RlZFRyYWNrSUQ7CisgICAgaW50IG1fZW5hYmxlZFZpZGVvVHJhY2tJRCB7IC0xIH07
CisgICAgaW50IG1fcHJvdGVjdGVkVHJhY2tJRCB7IC0xIH07CiB9OwogCiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotCi0jZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW0KaW5kZXggM2IwZDY4Y2MyYmYyZDIyYjc4YjM5MmJmMzgyOGZlNjEzOGU5YjAxOC4uZTdiMWIy
MDc0ZGEzMzIzMjFmZjgwOGRmNjgzMzMyMDVhY2U2MjQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNTEsMTAg
KzE1MSw3IEBAIC0gKHZvaWQpaW52YWxpZGF0ZQogCiAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6
KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkUGFyc2VTdHJlYW1EYXRh
QXNBc3NldDooQVZBc3NldCAqKWFzc2V0CiB7Ci0jaWYgQVNTRVJUX0RJU0FCTEVECi0gICAgVU5V
U0VEX1BBUkFNKHN0cmVhbURhdGFQYXJzZXIpOwotI2VuZGlmCi0gICAgQVNTRVJUKHN0cmVhbURh
dGFQYXJzZXIgPT0gX3BhcnNlcik7CisgICAgQVNTRVJUX1VOVVNFRChzdHJlYW1EYXRhUGFyc2Vy
LCBzdHJlYW1EYXRhUGFyc2VyID09IF9wYXJzZXIpOwogCiAgICAgUmV0YWluUHRyPEFWQXNzZXQq
PiBwcm90ZWN0ZWRBc3NldCA9IGFzc2V0OwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3BhcmVudCA9
IF9wYXJlbnQsIHByb3RlY3RlZEFzc2V0ID0gV1RGTW92ZShwcm90ZWN0ZWRBc3NldCldIHsKQEAg
LTE2NiwxMCArMTYzLDcgQEAgLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0cmVhbURhdGFQ
YXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFBhcnNlU3RyZWFtRGEKIC0gKHZvaWQpc3RyZWFt
RGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRQYXJz
ZVN0cmVhbURhdGFBc0Fzc2V0OihBVkFzc2V0ICopYXNzZXQgd2l0aERpc2NvbnRpbnVpdHk6KEJP
T0wpZGlzY29udGludWl0eQogewogICAgIFVOVVNFRF9QQVJBTShkaXNjb250aW51aXR5KTsKLSNp
ZiBBU1NFUlRfRElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0j
ZW5kaWYKLSAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBBU1NF
UlRfVU5VU0VEKHN0cmVhbURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7
CiAKICAgICBSZXRhaW5QdHI8QVZBc3NldCo+IHByb3RlY3RlZEFzc2V0ID0gYXNzZXQ7CiAgICAg
Y2FsbE9uTWFpblRocmVhZChbcGFyZW50ID0gX3BhcmVudCwgcHJvdGVjdGVkQXNzZXQgPSBXVEZN
b3ZlKHByb3RlY3RlZEFzc2V0KV0gewpAQCAtMTgwLDEwICsxNzQsNyBAQCAtICh2b2lkKXN0cmVh
bURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkUGFy
c2VTdHJlYW1EYQogCiAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFWU3RyZWFtRGF0YVBhcnNl
ciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkRmFpbFRvUGFyc2VTdHJlYW1EYXRhV2l0aEVycm9yOihO
U0Vycm9yICopZXJyb3IKIHsKLSNpZiBBU1NFUlRfRElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0o
c3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5kaWYKLSAgICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9
PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN0cmVhbURhdGFQYXJzZXIsIHN0cmVhbURh
dGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKICAgICBSZXRhaW5QdHI8TlNFcnJvcj4gcHJvdGVjdGVk
RXJyb3IgPSBlcnJvcjsKICAgICBjYWxsT25NYWluVGhyZWFkKFtwYXJlbnQgPSBfcGFyZW50LCBw
cm90ZWN0ZWRFcnJvciA9IFdURk1vdmUocHJvdGVjdGVkRXJyb3IpXSB7CkBAIC0xOTQsMTAgKzE4
NSw3IEBAIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3Ry
ZWFtRGF0YVBhcnNlciBkaWRGYWlsVG9QYXJzZVN0CiAKIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNl
cjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRQcm92aWRlTWVkaWFE
YXRhOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGUgZm9yVHJhY2tJRDooQ01QZXJzaXN0ZW50VHJh
Y2tJRCl0cmFja0lEIG1lZGlhVHlwZTooTlNTdHJpbmcgKiluc01lZGlhVHlwZSBmbGFnczooQVZT
dHJlYW1EYXRhUGFyc2VyT3V0cHV0TWVkaWFEYXRhRmxhZ3MpZmxhZ3MKIHsKLSNpZiBBU1NFUlRf
RElTQUJMRUQKLSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5kaWYKLSAg
ICBBU1NFUlQoc3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRfVU5VU0VE
KHN0cmVhbURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKICAgICBS
ZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHByb3RlY3RlZFNhbXBsZSA9IHNhbXBsZTsKICAg
ICBTdHJpbmcgbWVkaWFUeXBlID0gbnNNZWRpYVR5cGU7CkBAIC0yMDksMTAgKzE5Nyw3IEBAIC0g
KHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBh
cnNlciBkaWRQcm92aWRlTWVkaWFECiAKIC0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJl
YW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBkaWRSZWFjaEVuZE9mVHJhY2tXaXRoVHJh
Y2tJRDooQ01QZXJzaXN0ZW50VHJhY2tJRCl0cmFja0lEIG1lZGlhVHlwZTooTlNTdHJpbmcgKilu
c01lZGlhVHlwZQogewotI2lmIEFTU0VSVF9ESVNBQkxFRAotICAgIFVOVVNFRF9QQVJBTShzdHJl
YW1EYXRhUGFyc2VyKTsKLSNlbmRpZgotICAgIEFTU0VSVChzdHJlYW1EYXRhUGFyc2VyID09IF9w
YXJzZXIpOworICAgIEFTU0VSVF9VTlVTRUQoc3RyZWFtRGF0YVBhcnNlciwgc3RyZWFtRGF0YVBh
cnNlciA9PSBfcGFyc2VyKTsKIAogICAgIFN0cmluZyBtZWRpYVR5cGUgPSBuc01lZGlhVHlwZTsK
ICAgICBjYWxsT25NYWluVGhyZWFkKFtwYXJlbnQgPSBfcGFyZW50LCB0cmFja0lELCBtZWRpYVR5
cGVdIHsKQEAgLTIyMywxMCArMjA4LDcgQEAgLSAodm9pZClzdHJlYW1EYXRhUGFyc2VyOihBVlN0
cmVhbURhdGFQYXJzZXIgKilzdHJlYW1EYXRhUGFyc2VyIGRpZFJlYWNoRW5kT2ZUcmEKIAogLSAo
dm9pZClzdHJlYW1EYXRhUGFyc2VyV2lsbFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxp
emF0aW9uRGF0YTooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFtRGF0YVBhcnNlciBmb3JUcmFj
a0lEOihDTVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQKIHsKLSNpZiBBU1NFUlRfRElTQUJMRUQK
LSAgICBVTlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5kaWYKLSAgICBBU1NFUlQo
c3RyZWFtRGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN0cmVhbURh
dGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKICAgICAvLyBXZSBtdXN0
IGNhbGwgc3luY2hyb25vdXNseSB0byB0aGUgbWFpbiB0aHJlYWQsIGFzIHRoZSBBVlN0cmVhbVNl
c3Npb24gbXVzdCBiZSBhc3NvY2lhdGVkCiAgICAgLy8gd2l0aCB0aGUgc3RyZWFtRGF0YVBhcnNl
ciBiZWZvcmUgdGhlIGRlbGVnYXRlIG1ldGhvZCByZXR1cm5zLgpAQCAtMjM4LDEwICsyMjAsNyBA
QCAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXJXaWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5p
dGlhbGl6YXRpb25EYXRhOihBVlN0cmVhbQogCiAtICh2b2lkKXN0cmVhbURhdGFQYXJzZXI6KEFW
U3RyZWFtRGF0YVBhcnNlciAqKXN0cmVhbURhdGFQYXJzZXIgZGlkUHJvdmlkZUNvbnRlbnRLZXlS
ZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhOihOU0RhdGEgKilpbml0RGF0YSBmb3JUcmFja0lEOihD
TVBlcnNpc3RlbnRUcmFja0lEKXRyYWNrSUQKIHsKLSNpZiBBU1NFUlRfRElTQUJMRUQKLSAgICBV
TlVTRURfUEFSQU0oc3RyZWFtRGF0YVBhcnNlcik7Ci0jZW5kaWYKLSAgICBBU1NFUlQoc3RyZWFt
RGF0YVBhcnNlciA9PSBfcGFyc2VyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN0cmVhbURhdGFQYXJz
ZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAKICAgICBPU09iamVjdFB0cjxkaXNw
YXRjaF9zZW1hcGhvcmVfdD4gaGFzU2Vzc2lvblNlbWFwaG9yZSA9IGFkb3B0T1NPYmplY3QoZGlz
cGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKSk7CiAgICAgY2FsbE9uTWFpblRocmVhZChbcGFyZW50
ID0gX3BhcmVudCwgcHJvdGVjdGVkSW5pdERhdGEgPSBSZXRhaW5QdHI8TlNEYXRhPihpbml0RGF0
YSksIHRyYWNrSUQsIGhhc1Nlc3Npb25TZW1hcGhvcmVdIHsKQEAgLTQ0OSwxMCArNDI4LDYgQEAg
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKE1l
ZGlhU291cmNlUHJpdmF0ZUFWRk9iakMKICAgICAsIG1fZXJyb3JMaXN0ZW5lcihhZG9wdE5TKFtb
V2ViQVZTYW1wbGVCdWZmZXJFcnJvckxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aFBhcmVudDp0aGlz
XSkpCiAgICAgLCBtX2lzQXBwZW5kaW5nR3JvdXAoYWRvcHRPU09iamVjdChkaXNwYXRjaF9ncm91
cF9jcmVhdGUoKSkpCiAgICAgLCBtX21lZGlhU291cmNlKHBhcmVudCkKLSAgICAsIG1fY2xpZW50
KDApCi0gICAgLCBtX3BhcnNpbmdTdWNjZWVkZWQodHJ1ZSkKLSAgICAsIG1fZW5hYmxlZFZpZGVv
VHJhY2tJRCgtMSkKLSAgICAsIG1fcHJvdGVjdGVkVHJhY2tJRCgtMSkKIHsKIH0KIApAQCAtNTEy
LDEwICs0ODcsMTAgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUGFyc2VT
dHJlYW1EYXRhQXNBc3NldChBVkFzc2V0KiBhc3NldCkKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+
cGxheWVyKCktPmNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsKIAogICAgIGlmIChtX2NsaWVudCkK
LSAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6
YXRpb25TZWdtZW50KHRoaXMsIHNlZ21lbnQpOworICAgICAgICBtX2NsaWVudC0+c291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoc2VnbWVudCk7CiB9CiAK
LXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZEZhaWxUb1BhcnNlU3RyZWFtRGF0
YVdpdGhFcnJvcihOU0Vycm9yKiBlcnJvcikKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6OmRpZEZhaWxUb1BhcnNlU3RyZWFtRGF0YVdpdGhFcnJvcihOU0Vycm9yICplcnJvcikKIHsK
ICNpZiBMT0dfRElTQUJMRUQKICAgICBVTlVTRURfUEFSQU0oZXJyb3IpOwpAQCAtNTMxLDEwICs1
MDYsOCBAQCBzdHJ1Y3QgUHJvY2Vzc0NvZGVkRnJhbWVJbmZvIHsKICAgICBjb25zdCBTdHJpbmcm
IG1lZGlhVHlwZTsKIH07CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFBy
b3ZpZGVNZWRpYURhdGFGb3JUcmFja0lEKGludCB0cmFja0lELCBDTVNhbXBsZUJ1ZmZlclJlZiBz
YW1wbGVCdWZmZXIsIGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlLCB1bnNpZ25lZCBmbGFncykKK3Zv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVNZWRpYURhdGFGb3JUcmFj
a0lEKGludCB0cmFja0lELCBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIGNvbnN0IFN0
cmluZyYgbWVkaWFUeXBlLCB1bnNpZ25lZCkKIHsKLSAgICBVTlVTRURfUEFSQU0oZmxhZ3MpOwot
CiAgICAgcHJvY2Vzc0NvZGVkRnJhbWUodHJhY2tJRCwgc2FtcGxlQnVmZmVyLCBtZWRpYVR5cGUp
OwogfQogCkBAIC01NDksMTYgKzUyMiwxNCBAQCBib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjpwcm9jZXNzQ29kZWRGcmFtZShpbnQgdHJhY2tJRCwgQ01TYW1wbGVCdWZmZXJSZQogICAg
IGlmIChtX2NsaWVudCkgewogICAgICAgICBSZWY8TWVkaWFTYW1wbGU+IG1lZGlhU2FtcGxlID0g
TWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoc2FtcGxlQnVmZmVyLCB0cmFja0lEKTsKICAgICAg
ICAgTE9HKE1lZGlhU291cmNlU2FtcGxlcywgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpw
cm9jZXNzQ29kZWRGcmFtZSglcCkgLSBzYW1wbGUoJXMpIiwgdGhpcywgdG9TdHJpbmcobWVkaWFT
YW1wbGUuZ2V0KCkpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUodGhpcywgbWVkaWFTYW1wbGUpOworICAgICAgICBt
X2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUobWVkaWFTYW1wbGUp
OwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjpkaWRSZWFjaEVuZE9mVHJhY2tXaXRoVHJhY2tJRChpbnQgdHJhY2tJRCwgY29u
c3QgU3RyaW5nJiBtZWRpYVR5cGUpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpk
aWRSZWFjaEVuZE9mVHJhY2tXaXRoVHJhY2tJRChpbnQsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAg
VU5VU0VEX1BBUkFNKG1lZGlhVHlwZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRyYWNrSUQpOwogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKQEAgLTU5MCw3ICs1NjEsNiBAQCB2b2lkIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXph
dGlvbkRhdGFGbwogICAgIGlmICghbV9tZWRpYVNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgVU5VU0VEX1BBUkFNKHRyYWNrSUQpOwogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01F
RElBKQogICAgIExPRyhNZWRpYVNvdXJjZSwgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpk
aWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKCVw
KSAtIHRyYWNrOiVkIiwgdGhpcywgdHJhY2tJRCk7CiAgICAgbV9wcm90ZWN0ZWRUcmFja0lEID0g
dHJhY2tJRDsKQEAgLTYwNyw2ICs1NzcsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGbwogICAg
IH0KICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGluaXREYXRhKTsKKyAgICBVTlVTRURfUEFSQU0o
dHJhY2tJRCk7CiAgICAgVU5VU0VEX1BBUkFNKGhhc1Nlc3Npb25TZW1hcGhvcmUpOwogI2VuZGlm
CiB9CkBAIC02NTksNyArNjMwLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
YXBwZW5kQ29tcGxldGVkKCkKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldExv
YWRpbmdQcm9ncmVzc3NlZCh0cnVlKTsKIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9j
bGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCBtX3BhcnNpbmdT
dWNjZWVkZWQgPyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQgOiBT
b3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKKyAgICAgICAgbV9jbGll
bnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShtX3BhcnNpbmdTdWNjZWVkZWQg
PyBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpBcHBlbmRTdWNjZWVkZWQgOiBTb3VyY2VCdWZm
ZXJQcml2YXRlQ2xpZW50OjpQYXJzaW5nRmFpbGVkKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6YWJvcnQoKQpAQCAtNzM1LDE4ICs3MDYsMTIgQEAgdm9pZCBTb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0
ZSByZWFkeVN0YXQKIAogYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6aGFzVmlkZW8o
KSBjb25zdAogewotICAgIGlmICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIHJldHVybiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1ZpZGVvKHRoaXMpOwor
ICAgIHJldHVybiBtX2NsaWVudCAmJiBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUhhc1Zp
ZGVvKCk7CiB9CiAKIGJvb2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Omhhc0F1ZGlvKCkg
Y29uc3QKIHsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRpbyh0aGlzKTsKKyAg
ICByZXR1cm4gbV9jbGllbnQgJiYgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVIYXNBdWRp
bygpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0cmFja0RpZENoYW5n
ZUVuYWJsZWQoVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMqIHRyYWNrKQpAQCAt
ODc0LDcgKzgzOSw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmxheWVyRGlk
UmVjZWl2ZUVycm9yKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyCiAgICAgaW50IGVycm9yQ29k
ZSA9IFtbW2Vycm9yIHVzZXJJbmZvXSB2YWx1ZUZvcktleTpAIk9TU3RhdHVzIl0gaW50VmFsdWVd
OwogCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJp
dmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcih0aGlzLCBlcnJvckNvZGUpOworICAgICAgICBt
X2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVSZW5kZXJpbmdFcnJvcihlcnJv
ckNvZGUpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpyZW5kZXJlckRp
ZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIgKnJlbmRlcmVyLCBOU0Vy
cm9yICplcnJvcikKQEAgLTg5NSw3ICs4NjAsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpyZW5kZXJlckRpZFJlY2VpdmVFcnJvcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZAog
ICAgICAgICByZXR1cm47CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmZs
dXNoKEF0b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6Zmx1c2goY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAg
IGludCB0cmFja0lEID0gdHJhY2tJRFN0cmluZy50b0ludCgpOwogICAgIExPRyhNZWRpYVNvdXJj
ZSwgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmbHVzaCglcCkgLSB0cmFja0lkOiAlZCIs
IHRoaXMsIHRyYWNrSUQpOwpAQCAtOTI1LDE5ICs4OTAsMTcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6Zmx1c2goQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyICpyZW5kZXJl
cikKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZUF1ZGlv
U2FtcGxlKHJlbmRlcmVyLCBmYWxzZSk7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6OmVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJwTWVkaWFTYW1w
bGUsIEF0b21pY1N0cmluZyB0cmFja0lEU3RyaW5nKQordm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCBjb25zdCBB
dG9taWNTdHJpbmcmIHRyYWNrSURTdHJpbmcpCiB7CiAgICAgaW50IHRyYWNrSUQgPSB0cmFja0lE
U3RyaW5nLnRvSW50KCk7CiAgICAgaWYgKHRyYWNrSUQgIT0gbV9lbmFibGVkVmlkZW9UcmFja0lE
ICYmICFtX2F1ZGlvUmVuZGVyZXJzLmNvbnRhaW5zKHRyYWNrSUQpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBSZWZQdHI8TWVkaWFTYW1wbGU+IG1lZGlhU2FtcGxlID0gcHJwTWVkaWFTYW1wbGU7
Ci0KLSAgICBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBsZSA9IG1lZGlhU2FtcGxlLT5wbGF0
Zm9ybVNhbXBsZSgpOworICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlID0gc2FtcGxl
LT5wbGF0Zm9ybVNhbXBsZSgpOwogICAgIGlmIChwbGF0Zm9ybVNhbXBsZS50eXBlICE9IFBsYXRm
b3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIExP
RyhNZWRpYVNvdXJjZVNhbXBsZXMsICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZW5xdWV1
ZVNhbXBsZSglcCkgLSBzYW1wbGUoJXMpIiwgdGhpcywgdG9TdHJpbmcoKm1lZGlhU2FtcGxlKS51
dGY4KCkuZGF0YSgpKTsKKyAgICBMT0coTWVkaWFTb3VyY2VTYW1wbGVzLCAiU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoJXApIC0gc2FtcGxlKCVzKSIsIHRoaXMsIHRv
U3RyaW5nKHNhbXBsZS5nZXQoKSkudXRmOCgpLmRhdGEoKSk7CiAKICAgICBpZiAodHJhY2tJRCA9
PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQpIHsKICAgICAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24o
cGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVyKTsKQEAgLTk1MCwyMiArOTEzLDIy
IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUoUGFzc1Jl
ZlB0cjxNZWRpYVNhbXBsZT4gcHJwTWVkaWFTCiAgICAgICAgICAgICAgICAgaWYgKHNpemVXYXNO
dWxsKQogICAgICAgICAgICAgICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2V0TmF0
dXJhbFNpemUoZm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICBtX21lZGlhU291cmNlLT5wbGF5ZXIoKS0+c2l6ZVdpbGxDaGFuZ2VBdFRpbWUobWVk
aWFTYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSwgZm9ybWF0U2l6ZSk7CisgICAgICAgICAgICAg
ICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zaXplV2lsbENoYW5nZUF0VGltZShzYW1w
bGUtPnByZXNlbnRhdGlvblRpbWUoKSwgZm9ybWF0U2l6ZSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIAogICAgICAgICBbbV9kaXNwbGF5TGF5ZXIgZW5xdWV1ZVNhbXBsZUJ1ZmZlcjpwbGF0
Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXJdOwogICAgICAgICBpZiAobV9tZWRpYVNv
dXJjZSkKLSAgICAgICAgICAgIG1fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zZXRIYXNBdmFpbGFi
bGVWaWRlb0ZyYW1lKCFtZWRpYVNhbXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOworICAgICAgICAg
ICAgbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoIXNh
bXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8gcmVu
ZGVyZXIgPSBtX2F1ZGlvUmVuZGVyZXJzLmdldCh0cmFja0lEKTsKICAgICAgICAgW3JlbmRlcmVy
IGVucXVldWVTYW1wbGVCdWZmZXI6cGxhdGZvcm1TYW1wbGUuc2FtcGxlLmNtU2FtcGxlQnVmZmVy
XTsKICAgICAgICAgaWYgKG1fbWVkaWFTb3VyY2UpCi0gICAgICAgICAgICBtX21lZGlhU291cmNl
LT5wbGF5ZXIoKS0+c2V0SGFzQXZhaWxhYmxlQXVkaW9TYW1wbGUocmVuZGVyZXIuZ2V0KCksICFt
ZWRpYVNhbXBsZS0+aXNOb25EaXNwbGF5aW5nKCkpOworICAgICAgICAgICAgbV9tZWRpYVNvdXJj
ZS0+cGxheWVyKCktPnNldEhhc0F2YWlsYWJsZUF1ZGlvU2FtcGxlKHJlbmRlcmVyLmdldCgpLCAh
c2FtcGxlLT5pc05vbkRpc3BsYXlpbmcoKSk7CiAgICAgfQogfQogCi1ib29sIFNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNr
SURTdHJpbmcpCitib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjppc1JlYWR5Rm9yTW9y
ZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFja0lEU3RyaW5nKQogewogICAgIGludCB0
cmFja0lEID0gdHJhY2tJRFN0cmluZy50b0ludCgpOwogICAgIGlmICh0cmFja0lEID09IG1fZW5h
YmxlZFZpZGVvVHJhY2tJRCkKQEAgLTk4NCw5ICs5NDcsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpzZXRBY3RpdmUoYm9vbCBpc0FjdGl2ZSkKIAogTWVkaWFUaW1lIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpmYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUoTWVkaWFUaW1l
IHRpbWUsIE1lZGlhVGltZSBuZWdhdGl2ZVRocmVzaG9sZCwgTWVkaWFUaW1lIHBvc2l0aXZlVGhy
ZXNob2xkKQogewotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgcmV0dXJuIG1fY2xpZW50LT5z
b3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRoaXMsIHRpbWUsIG5l
Z2F0aXZlVGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7Ci0gICAgcmV0dXJuIHRpbWU7Cisg
ICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuIHRpbWU7CisgICAgcmV0dXJuIG1fY2xp
ZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRpbWUsIG5l
Z2F0aXZlVGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7CiB9CiAKIHZvaWQgU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakM6OndpbGxTZWVrKCkKQEAgLTEwMDEsNyArOTY0LDcgQEAgdm9pZCBT
b3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6d2lsbFNlZWsoKQogdm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQzo6c2Vla1RvVGltZShNZWRpYVRpbWUgdGltZSkKIHsKICAgICBpZiAobV9j
bGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlU2Vla1RvVGltZSh0
aGlzLCB0aW1lKTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9U
aW1lKHRpbWUpOwogfQogCiBGbG9hdFNpemUgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6Om5h
dHVyYWxTaXplKCkKQEAgLTEwMjEsMTAgKzk4NCwxMCBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjpkaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKGludCB0cmFja0lEKQogICAg
IH0KIAogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKHRoaXMsIEF0b21pY1N0cmluZzo6bnVt
YmVyKHRyYWNrSUQpKTsKKyAgICAgICAgbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRC
ZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZzo6bnVtYmVyKHRyYWNrSUQpKTsK
IH0KIAotdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6bm90aWZ5Q2xpZW50V2hlblJl
YWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSURTdHJpbmcpCit2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxl
cyhjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrSURTdHJpbmcpCiB7CiAgICAgaW50IHRyYWNrSUQg
PSB0cmFja0lEU3RyaW5nLnRvSW50KCk7CiAgICAgaWYgKHRyYWNrSUQgPT0gbV9lbmFibGVkVmlk
ZW9UcmFja0lEKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1By
aXZhdGVBVkZPYmpDLmNwcAppbmRleCBlOWM2NjIyMjNjODM2NWRkMDc3NmU4YTJjNGVlZDQ4YzBm
MTMwMWZkLi5jODcxYzU5NDgzNTUwODU3MTgyYzdhMjRkNTUzNGI4NWE1ZDRlZjdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9W
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5jcHAK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjUsMTEgKzI1LDEyIEBACiAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiVmlkZW9UcmFj
a1ByaXZhdGVBVkZPYmpDLmgiCi0jaW1wb3J0ICJBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmgi
Ci0jaW1wb3J0ICJNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIgogCiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQogCisjaW1wb3J0ICJBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLmgiCisjaW1w
b3J0ICJNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQzo6VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDKEFW
UGxheWVySXRlbVRyYWNrKiB0cmFjaykKQEAgLTEwNSw0ICsxMDYsMyBAQCB2b2lkIFZpZGVvVHJh
Y2tQcml2YXRlQVZGT2JqQzo6c2V0U2VsZWN0ZWQoYm9vbCBlbmFibGVkKQogfQogCiAjZW5kaWYK
LQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJp
dmF0ZUdTdHJlYW1lci5oCmluZGV4IGY2NjZiZWJjMmI3ZjQzMmFiYzU2ZmI4ODZjODk5NzZmNzlh
MzU0YWQuLmU5NDJhMmM1ZmMwN2U3YjBhYTU2NTEzMWZhMTg1MThjYzVjNDRjZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRNZXRh
ZGF0YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0
cmVhbWVyLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSW5iYW5k
TWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyX2gKLSNkZWZpbmUgSW5iYW5kTWV0YWRh
dGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxF
KFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUoVklERU9fVFJBQ0spCiAKQEAgLTUw
LDEzICs0OSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGREYXRhQ3VlKGNvbnN0IE1lZGlhVGlt
ZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW5kLCBjb25zdCB2b2lkKiBkYXRhLCB1bnNpZ25l
ZCBsZW5ndGgpCiAgICAgewogICAgICAgICBBU1NFUlQoY3VlRm9ybWF0KCkgPT0gRGF0YSk7Ci0g
ICAgICAgIGNsaWVudCgpLT5hZGREYXRhQ3VlKHRoaXMsIHN0YXJ0LCBlbmQsIGRhdGEsIGxlbmd0
aCk7CisgICAgICAgIGNsaWVudCgpLT5hZGREYXRhQ3VlKHN0YXJ0LCBlbmQsIGRhdGEsIGxlbmd0
aCk7CiAgICAgfQogCiAgICAgdm9pZCBhZGRHZW5lcmljQ3VlKFBhc3NSZWZQdHI8R2VuZXJpY0N1
ZURhdGE+IGRhdGEpCiAgICAgewogICAgICAgICBBU1NFUlQoY3VlRm9ybWF0KCkgPT0gR2VuZXJp
Yyk7Ci0gICAgICAgIGNsaWVudCgpLT5hZGRHZW5lcmljQ3VlKHRoaXMsIGRhdGEpOworICAgICAg
ICBjbGllbnQoKS0+YWRkR2VuZXJpY0N1ZSgqZGF0YSk7CiAgICAgfQogCiBwcml2YXRlOgpAQCAt
NzYsNSArNzUsMyBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUoVklERU9fVFJBQ0sp
Ci0KLSNlbmRpZiAvLyBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0lu
YmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3Bw
CmluZGV4IDZiMWZmYWI5M2MzNDhmY2NjNzdjNjMwZmViNmJlODJlMTAxOWRhZDYuLjFkOTQ1Mjc4
YmE0ZDAyYzA0N2YzMmExNTc0OTVkYmRlNjhjZmEwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0
cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTExMyw3ICsxMTMsNyBA
QCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZTYW1w
bGUoKQogCiAgICAgICAgIEdTVF9JTkZPKCJUcmFjayAlZCBwYXJzaW5nIHNhbXBsZTogJS4qcyIs
IG1faW5kZXgsIHN0YXRpY19jYXN0PGludD4oaW5mby5zaXplKSwKICAgICAgICAgICAgIHJlaW50
ZXJwcmV0X2Nhc3Q8Y2hhcio+KGluZm8uZGF0YSkpOwotICAgICAgICBjbGllbnQoKS0+cGFyc2VX
ZWJWVFRDdWVEYXRhKHRoaXMsIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGluZm8uZGF0YSksIGlu
Zm8uc2l6ZSk7CisgICAgICAgIGNsaWVudCgpLT5wYXJzZVdlYlZUVEN1ZURhdGEocmVpbnRlcnBy
ZXRfY2FzdDxjaGFyKj4oaW5mby5kYXRhKSwgaW5mby5zaXplKTsKICAgICAgICAgZ3N0X2J1ZmZl
cl91bm1hcChidWZmZXIsICZpbmZvKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQ
cml2YXRlQmFzZUdTdHJlYW1lci5jcHAKaW5kZXggNjE5ZjJjYTYxY2FiZTU5NDBhZWMzZDEzZWNm
N2RkZjU3MzVmZDcyMS4uOWJlMWZlYTJkZmY1YTA2Y2U0MGU4NTFmYTUzYTAzZjY0ODRhZTVkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1Ry
YWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcApAQCAtMTU3
LDcgKzE1Nyw3IEBAIHZvaWQgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6bm90aWZ5VHJhY2tP
ZlRhZ3NDaGFuZ2VkKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGdldFRhZyh0YWdzLmdl
dCgpLCBHU1RfVEFHX1RJVExFLCBtX2xhYmVsKSkKLSAgICAgICAgY2xpZW50LT5sYWJlbENoYW5n
ZWQobV9vd25lciwgbV9sYWJlbCk7CisgICAgICAgIGNsaWVudC0+bGFiZWxDaGFuZ2VkKG1fbGFi
ZWwpOwogCiAgICAgQXRvbWljU3RyaW5nIGxhbmd1YWdlOwogICAgIGlmICghZ2V0TGFuZ3VhZ2VD
b2RlKHRhZ3MuZ2V0KCksIGxhbmd1YWdlKSkKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2b2lkIFRyYWNr
UHJpdmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCgpCiAgICAgICAg
IHJldHVybjsKIAogICAgIG1fbGFuZ3VhZ2UgPSBsYW5ndWFnZTsKLSAgICBjbGllbnQtPmxhbmd1
YWdlQ2hhbmdlZChtX293bmVyLCBtX2xhbmd1YWdlKTsKKyAgICBjbGllbnQtPmxhbmd1YWdlQ2hh
bmdlZChtX2xhbmd1YWdlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQ
aXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
bXNlL0FwcGVuZFBpcGVsaW5lLmNwcAppbmRleCAwMDUxMmU2M2M3MzJlMzkzZWY2NTE2MDEwZDFl
NjdlZTZmZWRiYjM4Li44NDkyNjdmMjFlMDY5OGZiNWQyYWRkZWFlNTA5MWIzYzVkMDkyZmZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNl
L0FwcGVuZFBpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcApAQCAtNjc2LDcgKzY3Niw3IEBAIHZv
aWQgQXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtOZXdTYW1wbGUoR3N0U2FtcGxlKiBzYW1wbGUpCiAg
ICAgICAgICAgICBtZWRpYVNhbXBsZS0+YXBwbHlQdHNPZmZzZXQoTWVkaWFUaW1lOjp6ZXJvVGlt
ZSgpKTsKICAgICAgICAgfQogCi0gICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZS0+ZGlkUmVj
ZWl2ZVNhbXBsZShtZWRpYVNhbXBsZSk7CisgICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZS0+
ZGlkUmVjZWl2ZVNhbXBsZSgqbWVkaWFTYW1wbGUpOwogICAgICAgICBzZXRBcHBlbmRTdGF0ZShB
cHBlbmRTdGF0ZTo6U2FtcGxpbmcpOwogICAgICAgICBtX2Zsb3dSZXR1cm4gPSBHU1RfRkxPV19P
SzsKICAgICAgICAgbV9uZXdTYW1wbGVDb25kaXRpb24ubm90aWZ5T25lKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA3
ZjU0NWVlMzVlNDhhYTA2YjAyYTk5NjNlMTFhY2JjYmRjYTc3OTQxLi5lNGIxMDdmNzBmNWM4YzY5
ODE3NDE1ZWJjYTRkNjU1YjNhYjVlYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2Uv
U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBT
b3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjphcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciog
ZGF0YSwgdW5zaWduZWQgbGUKICAgICBpZiAobV9jbGllbnQtPmFwcGVuZCh0aGlzLCBkYXRhLCBs
ZW5ndGgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGll
bnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZSh0aGlzLCBTb3VyY2VCdWZmZXJQ
cml2YXRlQ2xpZW50OjpSZWFkU3RyZWFtRmFpbGVkKTsKKyAgICBtX3NvdXJjZUJ1ZmZlclByaXZh
dGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVBcHBlbmRDb21wbGV0ZShTb3VyY2VCdWZmZXJQ
cml2YXRlQ2xpZW50OjpSZWFkU3RyZWFtRmFpbGVkKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyOjphYm9ydCgpCkBAIC0xMDYsMjAgKzEwNiwxOSBAQCB2b2lkIFNvdXJj
ZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5
U3RhdGUgc3RhdGUpCiAgICAgbV9tZWRpYVNvdXJjZS0+c2V0UmVhZHlTdGF0ZShzdGF0ZSk7CiB9
CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6Zmx1c2goQXRvbWljU3RyaW5n
IHRyYWNrSWQpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmZsdXNoKGNvbnN0
IEF0b21pY1N0cmluZyYgdHJhY2tJZCkKIHsKICAgICBtX2NsaWVudC0+Zmx1c2godHJhY2tJZCk7
CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZW5xdWV1ZVNhbXBsZShQ
YXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUsIEF0b21pY1N0cmluZykKK3ZvaWQgU291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6ZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+
JiYgc2FtcGxlLCBjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAgIG1fbm90aWZ5V2hlblJlYWR5
Rm9yTW9yZVNhbXBsZXMgPSBmYWxzZTsKIAotICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gcHJvdGVj
dGVkUHJwU2FtcGxlID0gcHJwU2FtcGxlOwotICAgIG1fY2xpZW50LT5lbnF1ZXVlU2FtcGxlKHBy
b3RlY3RlZFBycFNhbXBsZSk7CisgICAgbV9jbGllbnQtPmVucXVldWVTYW1wbGUoV1RGTW92ZShz
YW1wbGUpKTsKIH0KIAotYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjppc1JlYWR5
Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nKQorYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0
cmVhbWVyOjppc1JlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3RyaW5nJikKIHsKICAg
ICByZXR1cm4gbV9pc1JlYWR5Rm9yTW9yZVNhbXBsZXM7CiB9CkBAIC0xMzUsNyArMTM0LDcgQEAg
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlSZWFkeUZvck1vcmVTYW1w
bGVzKCkKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CiAgICAgc2V0UmVhZHlGb3JN
b3JlU2FtcGxlcyh0cnVlKTsKICAgICBpZiAobV9ub3RpZnlXaGVuUmVhZHlGb3JNb3JlU2FtcGxl
cykKLSAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2
YXRlRGlkQmVjb21lUmVhZHlGb3JNb3JlU2FtcGxlcyh0aGlzLCBtX3RyYWNrSWQpOworICAgICAg
ICBtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRCZWNv
bWVSZWFkeUZvck1vcmVTYW1wbGVzKG1fdHJhY2tJZCk7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVy
UHJpdmF0ZUdTdHJlYW1lcjo6c2V0QWN0aXZlKGJvb2wgaXNBY3RpdmUpCkBAIC0xNDQsMTIgKzE0
MywxMiBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnNldEFjdGl2ZShib29s
IGlzQWN0aXZlKQogICAgICAgICBtX21lZGlhU291cmNlLT5zb3VyY2VCdWZmZXJQcml2YXRlRGlk
Q2hhbmdlQWN0aXZlU3RhdGUodGhpcywgaXNBY3RpdmUpOwogfQogCi12b2lkIFNvdXJjZUJ1ZmZl
clByaXZhdGVHU3RyZWFtZXI6OnN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcp
Cit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OnN0b3BBc2tpbmdGb3JNb3JlU2Ft
cGxlcyhjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
LXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5Q2xpZW50V2hlblJlYWR5
Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSWQpCit2b2lkIFNvdXJjZUJ1ZmZlclBy
aXZhdGVHU3RyZWFtZXI6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0
IEF0b21pY1N0cmluZyYgdHJhY2tJZCkKIHsKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQo
KSk7CiAgICAgbV9ub3RpZnlXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyA9IHRydWU7CkBAIC0xNTks
MjAgKzE1OCwxOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeUNs
aWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cgogdm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KGNvbnN0IFNv
dXJjZUJ1ZmZlclByaXZhdGVDbGllbnQ6OkluaXRpYWxpemF0aW9uU2VnbWVudCYgaW5pdGlhbGl6
YXRpb25TZWdtZW50KQogewogICAgIGlmIChtX3NvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQpCi0g
ICAgICAgIG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURp
ZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQodGhpcywgaW5pdGlhbGl6YXRpb25TZWdtZW50
KTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2
YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChpbml0aWFsaXphdGlvblNlZ21lbnQp
OwogfQogCi12b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVTYW1w
bGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJwU2FtcGxlKQordm9pZCBTb3VyY2VCdWZmZXJQ
cml2YXRlR1N0cmVhbWVyOjpkaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiB7
Ci0gICAgUmVmUHRyPE1lZGlhU2FtcGxlPiBwcm90ZWN0ZWRQcnBTYW1wbGUgPSBwcnBTYW1wbGU7
CiAgICAgaWYgKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCkKLSAgICAgICAgbV9zb3VyY2VC
dWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSh0
aGlzLCAqcHJvdGVjdGVkUHJwU2FtcGxlKTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRl
Q2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShzYW1wbGUpOwogfQog
CiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXI6OmRpZFJlY2VpdmVBbGxQZW5kaW5n
U2FtcGxlcygpCiB7CiAgICAgaWYgKG1fc291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCkKLSAgICAg
ICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlQXBwZW5k
Q29tcGxldGUodGhpcywgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBwZW5kU3VjY2VlZGVk
KTsKKyAgICAgICAgbV9zb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LT5zb3VyY2VCdWZmZXJQcml2
YXRlQXBwZW5kQ29tcGxldGUoU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6QXBwZW5kU3VjY2Vl
ZGVkKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9Tb3VyY2VCdWZmZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZh
dGVHU3RyZWFtZXIuaAppbmRleCAzMDg0MjVkNTAzY2FhNGViODY4YjM4OTk5YjVkNDY3NjhkZDU0
OTg3Li41NjcxMzEwZmY4MmM4M2Y5OGMyNjBlODdiNDhmMTM0MWVjOGFmNjFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1
ZmZlclByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL1NvdXJjZUJ1ZmZlclByaXZhdGVHU3RyZWFtZXIuaApAQCAtNTQs
MjYgKzU0LDI2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2xlYXJNZWRpYVNvdXJjZSgpIHsgbV9t
ZWRpYVNvdXJjZSA9IG51bGxwdHI7IH0KIAotICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZl
clByaXZhdGVDbGllbnQqKSBvdmVycmlkZTsKLSAgICB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25l
ZCBjaGFyKiwgdW5zaWduZWQpIG92ZXJyaWRlOwotICAgIHZvaWQgYWJvcnQoKSBvdmVycmlkZTsK
LSAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbW92ZWRG
cm9tTWVkaWFTb3VyY2UoKSBvdmVycmlkZTsKLSAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBy
ZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlh
UGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsKLQotICAgIHZvaWQgZmx1c2goQXRvbWljU3Ry
aW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIGVucXVldWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNh
bXBsZT4sIEF0b21pY1N0cmluZykgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNh
bXBsZXMoQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldEFjdGl2ZShib29sKSBv
dmVycmlkZTsKLSAgICB2b2lkIHN0b3BBc2tpbmdGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcp
IG92ZXJyaWRlOwotICAgIHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMo
QXRvbWljU3RyaW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldENsaWVudChTb3VyY2VCdWZmZXJQ
cml2YXRlQ2xpZW50KikgZmluYWw7CisgICAgdm9pZCBhcHBlbmQoY29uc3QgdW5zaWduZWQgY2hh
ciosIHVuc2lnbmVkKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KCkgZmluYWw7CisgICAgdm9pZCBy
ZXNldFBhcnNlclN0YXRlKCkgZmluYWw7CisgICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNl
KCkgZmluYWw7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0
IGZpbmFsOworICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkg
ZmluYWw7CisKKyAgICB2b2lkIGZsdXNoKGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAg
IHZvaWQgZW5xdWV1ZVNhbXBsZShSZWY8TWVkaWFTYW1wbGU+JiYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIGZpbmFsOworICAgIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0
cmluZyYpIGZpbmFsOworICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIGZpbmFsOworICAgIHZvaWQg
c3RvcEFza2luZ0Zvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21pY1N0cmluZyYpIGZpbmFsOworICAg
IHZvaWQgbm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbWljU3Ry
aW5nJikgZmluYWw7CiAKICAgICB2b2lkIHNldFJlYWR5Rm9yTW9yZVNhbXBsZXMoYm9vbCk7CiAg
ICAgdm9pZCBub3RpZnlSZWFkeUZvck1vcmVTYW1wbGVzKCk7CiAKICAgICB2b2lkIGRpZFJlY2Vp
dmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudDo6
SW5pdGlhbGl6YXRpb25TZWdtZW50Jik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2FtcGxlKFBhc3NS
ZWZQdHI8TWVkaWFTYW1wbGU+KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1w
bGUmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVBbGxQZW5kaW5nU2FtcGxlcygpOwogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQXVkaW9U
cmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCmluZGV4IGJhMTkxMjFjMjIyZmI2
Mjc2NjM5MmE3MWVmYmM1NjVmZTljODc5NjMuLjYwYzAwNzVkNjcyYTYyOTAyNTgxZjkzOGU2YWZh
NDgzYjE2NjA0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsOCAr
MjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5k
ZWYgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbV9oCi0jZGVmaW5lIEF1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW1faAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
ICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKQEAgLTM2LDE0ICszNSwxMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtIGZpbmFsIDogcHVi
bGljIEF1ZGlvVHJhY2tQcml2YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU3RyZWFtKQogcHVibGljOgotCiAgICAgc3RhdGljIFJlZlB0cjxBdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtPiBjcmVhdGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
IHN0cmVhbVRyYWNrKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9U
cmFja1ByaXZhdGVNZWRpYVN0cmVhbShzdHJlYW1UcmFjaykpOwogICAgIH0KIAotICAgIHZpcnR1
YWwgfkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0oKSB7IH0KLQogICAgIEtpbmQga2luZCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEtpbmQ6Ok1haW47IH0KICAgICBBdG9taWNTdHJpbmcg
aWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lkOyB9CiAgICAgQXRvbWljU3RyaW5nIGxh
YmVsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9sYWJlbDsgfQpAQCAtNTIsMTcgKzQ4LDE3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VHJhY2tJbmRleChpbnQgaW5kZXgpIHsgbV9pbmRl
eCA9IGluZGV4OyB9CiAKLSAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogc3RyZWFtVHJhY2so
KSBjb25zdCB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9CisgICAgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKCkgeyByZXR1cm4gbV9zdHJlYW1UcmFjay5nZXQoKTsg
fQogCiBwcml2YXRlOgogICAgIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0oTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmIHRyYWNrKQotICAgICAgICA6IG1fc3RyZWFtVHJhY2soJnRyYWNrKQor
ICAgICAgICA6IG1fc3RyZWFtVHJhY2sodHJhY2spCiAgICAgICAgICwgbV9pZCh0cmFjay5pZCgp
KQogICAgICAgICAsIG1fbGFiZWwodHJhY2subGFiZWwoKSkKICAgICB7CiAgICAgfQogCi0gICAg
UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBtX3N0cmVhbVRyYWNrOworICAgIFJlZjxN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9zdHJlYW1UcmFjazsKICAgICBBdG9taWNTdHJpbmcg
bV9pZDsKICAgICBBdG9taWNTdHJpbmcgbV9sYWJlbDsKICAgICBpbnQgbV9pbmRleCB7IDAgfTsK
QEAgLTcxLDUgKzY3LDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShWSURFT19U
UkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2VuZGlmIC8vIEF1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW1faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oCmluZGV4
IGUxYmZhMTZmMTRkNzI5YWZkMGQxZTRlZWZiMWNlOTk2MjE1NzAxNjYuLjA0NTgzODlmMzk3NDg3
MjcyYTc5MzEwNGIwYTNkZjViM2EyZmJkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1ZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKLSNpZm5kZWYgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbV9oCi0jZGVmaW5l
IFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1faAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKQEAgLTM2LDE0ICszNSwx
MSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3Ry
ZWFtIGZpbmFsIDogcHVibGljIFZpZGVvVHJhY2tQcml2YXRlIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtKQogcHVibGljOgotCiAgICAgc3Rh
dGljIFJlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtPiBjcmVhdGUoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbShzdHJlYW1UcmFjaykpOwogICAg
IH0KIAotICAgIHZpcnR1YWwgflZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0oKSB7IH0KLQog
ICAgIEtpbmQga2luZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEtpbmQ6Ok1haW47IH0KICAg
ICBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lkOyB9CiAgICAg
QXRvbWljU3RyaW5nIGxhYmVsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9sYWJlbDsgfQpA
QCAtNTIsMTcgKzQ4LDE3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VHJhY2tJbmRleChpbnQg
aW5kZXgpIHsgbV9pbmRleCA9IGluZGV4OyB9CiAKLSAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSogc3RyZWFtVHJhY2soKSBjb25zdCB7IHJldHVybiBtX3N0cmVhbVRyYWNrLmdldCgpOyB9Cisg
ICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHN0cmVhbVRyYWNrKCkgeyByZXR1cm4gbV9zdHJl
YW1UcmFjay5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW0oTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQotICAgICAgICA6IG1fc3RyZWFt
VHJhY2soJnRyYWNrKQorICAgICAgICA6IG1fc3RyZWFtVHJhY2sodHJhY2spCiAgICAgICAgICwg
bV9pZCh0cmFjay5pZCgpKQogICAgICAgICAsIG1fbGFiZWwodHJhY2subGFiZWwoKSkKICAgICB7
CiAgICAgfQogCi0gICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBtX3N0cmVhbVRy
YWNrOworICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9zdHJlYW1UcmFjazsKICAg
ICBBdG9taWNTdHJpbmcgbV9pZDsKICAgICBBdG9taWNTdHJpbmcgbV9sYWJlbDsKICAgICBpbnQg
bV9pbmRleCB7IDAgfTsKQEAgLTcxLDUgKzY3LDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2VuZGlmIC8v
IFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZm
ZXJQcml2YXRlLmNwcAppbmRleCA0OGRmNGJjYzRjM2JiOGRhMmM1ZjQ5MDBlMTc1MDYwMDc5MTg1
NmYzLi5lMDMxYTliNWQyMGQxMmExYjk2ZTBlMTE2Y2U0YmFhOTU0Y2YwMjIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZm
ZXJQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291
cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNs
dWRlICJTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50LmgiCiAjaW5jbHVkZSA8bWFwPgogI2luY2x1
ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXIuaD4KLSNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4K
ICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMTY1LDcgKzE2NCw3IEBAIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmFwcGVu
ZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgfQogCiAg
ICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZUFw
cGVuZENvbXBsZXRlKHRoaXMsIHJlc3VsdCk7CisgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZm
ZXJQcml2YXRlQXBwZW5kQ29tcGxldGUocmVzdWx0KTsKIH0KIAogdm9pZCBNb2NrU291cmNlQnVm
ZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBNb2NrSW5p
dGlhbGl6YXRpb25Cb3gmIGluaXRCb3gpCkBAIC0xOTYsNyArMTk1LDcgQEAgdm9pZCBNb2NrU291
cmNlQnVmZmVyUHJpdmF0ZTo6ZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBN
b2NrSW5pdGlhbGkKICAgICAgICAgfQogICAgIH0KIAotICAgIG1fY2xpZW50LT5zb3VyY2VCdWZm
ZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudCh0aGlzLCBzZWdtZW50KTsK
KyAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlv
blNlZ21lbnQoc2VnbWVudCk7CiB9CiAKIApAQCAtMjA1LDcgKzIwNCw3IEBAIHZvaWQgTW9ja1Nv
dXJjZUJ1ZmZlclByaXZhdGU6OmRpZFJlY2VpdmVTYW1wbGUoY29uc3QgTW9ja1NhbXBsZUJveCYg
c2FtcGxlQm94KQogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1f
Y2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZSh0aGlzLCBNb2NrTWVk
aWFTYW1wbGU6OmNyZWF0ZShzYW1wbGVCb3gpKTsKKyAgICBtX2NsaWVudC0+c291cmNlQnVmZmVy
UHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoTW9ja01lZGlhU2FtcGxlOjpjcmVhdGUoc2FtcGxlQm94
KSk7CiB9CiAKIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmFib3J0KCkKQEAgLTIzOSwy
MiArMjM4LDIxIEBAIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OnNldEFjdGl2ZShib29s
IGlzQWN0aXZlKQogICAgICAgICBtX21lZGlhU291cmNlLT5zb3VyY2VCdWZmZXJQcml2YXRlRGlk
Q2hhbmdlQWN0aXZlU3RhdGUodGhpcywgaXNBY3RpdmUpOwogfQogCi1WZWN0b3I8U3RyaW5nPiBN
b2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChBdG9taWNT
dHJpbmcpCitWZWN0b3I8U3RyaW5nPiBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1ZWRT
YW1wbGVzRm9yVHJhY2tJRChjb25zdCBBdG9taWNTdHJpbmcmKQogewogICAgIHJldHVybiBtX2Vu
cXVldWVkU2FtcGxlczsKIH0KIAotdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1
ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUsIEF0b21pY1N0cmluZykK
K3ZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2Ft
cGxlPiYmIHNhbXBsZSwgY29uc3QgQXRvbWljU3RyaW5nJikKIHsKLSAgICBSZWZQdHI8TWVkaWFT
YW1wbGU+IHNhbXBsZSA9IHBycFNhbXBsZTsKLSAgICBpZiAoIW1fbWVkaWFTb3VyY2UgfHwgIXNh
bXBsZSkKKyAgICBpZiAoIW1fbWVkaWFTb3VyY2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIFBs
YXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlID0gc2FtcGxlLT5wbGF0Zm9ybVNhbXBsZSgpOwog
ICAgIGlmIChwbGF0Zm9ybVNhbXBsZS50eXBlICE9IFBsYXRmb3JtU2FtcGxlOjpNb2NrU2FtcGxl
Qm94VHlwZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTW9ja1NhbXBsZUJveCogYm94ID0gcGxh
dGZvcm1TYW1wbGUuc2FtcGxlLm1vY2tTYW1wbGVCb3g7CisgICAgYXV0byogYm94ID0gcGxhdGZv
cm1TYW1wbGUuc2FtcGxlLm1vY2tTYW1wbGVCb3g7CiAgICAgaWYgKCFib3gpCiAgICAgICAgIHJl
dHVybjsKIApAQCAtMjY2LDM3ICsyNjQsMzAgQEAgdm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0
ZTo6ZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1lZGlhU2FtcGxlPiBwcnBTYW1wbGUsIEEKICAg
ICBpZiAoYm94LT5pc0RlbGF5ZWQoKSkKICAgICAgICAgbV9tZWRpYVNvdXJjZS0+aW5jcmVtZW50
VG90YWxGcmFtZURlbGF5QnkoTWVkaWFUaW1lKDEsIDEpKTsKIAotICAgIG1fZW5xdWV1ZWRTYW1w
bGVzLmFwcGVuZCh0b1N0cmluZyhzYW1wbGUpKTsKKyAgICBtX2VucXVldWVkU2FtcGxlcy5hcHBl
bmQodG9TdHJpbmcoc2FtcGxlLmdldCgpKSk7CiB9CiAKIGJvb2wgTW9ja1NvdXJjZUJ1ZmZlclBy
aXZhdGU6Omhhc1ZpZGVvKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV9jbGllbnQtPnNvdXJjZUJ1ZmZlclByaXZhdGVI
YXNWaWRlbyh0aGlzKTsKKyAgICByZXR1cm4gbV9jbGllbnQgJiYgbV9jbGllbnQtPnNvdXJjZUJ1
ZmZlclByaXZhdGVIYXNWaWRlbygpOwogfQogCiBib29sIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRl
OjpoYXNBdWRpbygpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2NsaWVudCkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgcmV0dXJuIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVk
aW8odGhpcyk7CisgICAgcmV0dXJuIG1fY2xpZW50ICYmIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQ
cml2YXRlSGFzQXVkaW8oKTsKIH0KIAotCiBNZWRpYVRpbWUgTW9ja1NvdXJjZUJ1ZmZlclByaXZh
dGU6OmZhc3RTZWVrVGltZUZvck1lZGlhVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0
IE1lZGlhVGltZSYgbmVnYXRpdmVUaHJlc2hvbGQsIGNvbnN0IE1lZGlhVGltZSYgcG9zaXRpdmVU
aHJlc2hvbGQpCiB7CiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICByZXR1cm4gbV9jbGllbnQt
PnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUodGhpcywgdGltZSwg
bmVnYXRpdmVUaHJlc2hvbGQsIHBvc2l0aXZlVGhyZXNob2xkKTsKKyAgICAgICAgcmV0dXJuIG1f
Y2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKHRpbWUs
IG5lZ2F0aXZlVGhyZXNob2xkLCBwb3NpdGl2ZVRocmVzaG9sZCk7CiAgICAgcmV0dXJuIHRpbWU7
CiB9CiAKIHZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OnNlZWtUb1RpbWUoY29uc3QgTWVk
aWFUaW1lJiB0aW1lKQogewogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnNv
dXJjZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKHRoaXMsIHRpbWUpOworICAgICAgICBtX2NsaWVu
dC0+c291cmNlQnVmZmVyUHJpdmF0ZVNlZWtUb1RpbWUodGltZSk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1
ZmZlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2Uv
TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaAppbmRleCA3NDRiNGMxMDdjMzEwMjZmYTQyOWE4ZjEy
ZDI1NjNiZmMzNjMyZDI4Li40OTY1MDU1M2IwN2JlYWMwN2Y1MzEwZWY1ZTU2ZWY4MmM3MjBhMDYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tTb3VyY2VCdWZmZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsMTUgKzIzLDEx
IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0jaWZuZGVmIE1vY2tTb3VyY2VCdWZmZXJQcml2
YXRlX2gKLSNkZWZpbmUgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGVfaAorI3ByYWdtYSBvbmNlCiAK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAjaW5jbHVkZSAiU291cmNlQnVmZmVyUHJpdmF0
ZS5oIgotI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQz
LDcgKzM5LDcgQEAgY2xhc3MgTW9ja1NhbXBsZUJveDsKIGNsYXNzIFRpbWVSYW5nZXM7CiBjbGFz
cyBWaWRlb1RyYWNrUHJpdmF0ZTsKIAotY2xhc3MgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUgOiBw
dWJsaWMgU291cmNlQnVmZmVyUHJpdmF0ZSB7CitjbGFzcyBNb2NrU291cmNlQnVmZmVyUHJpdmF0
ZSBmaW5hbCA6IHB1YmxpYyBTb3VyY2VCdWZmZXJQcml2YXRlIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmUHRyPE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlPiBjcmVhdGUoTW9ja01lZGlhU291cmNl
UHJpdmF0ZSopOwogICAgIHZpcnR1YWwgfk1vY2tTb3VyY2VCdWZmZXJQcml2YXRlKCk7CkBAIC02
MCwyMCArNTYsMjAgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBNb2NrU291cmNlQnVmZmVyUHJp
dmF0ZShNb2NrTWVkaWFTb3VyY2VQcml2YXRlKik7CiAKICAgICAvLyBTb3VyY2VCdWZmZXJQcml2
YXRlIG92ZXJyaWRlcwotICAgIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVDbGll
bnQqKSBvdmVycmlkZTsKLSAgICB2b2lkIGFwcGVuZChjb25zdCB1bnNpZ25lZCBjaGFyKiBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgpIG92ZXJyaWRlOwotICAgIHZvaWQgYWJvcnQoKSBvdmVycmlkZTsK
LSAgICB2b2lkIHJlc2V0UGFyc2VyU3RhdGUoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbW92ZWRG
cm9tTWVkaWFTb3VyY2UoKSBvdmVycmlkZTsKLSAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBy
ZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlh
UGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldENsaWVudChTb3VyY2VC
dWZmZXJQcml2YXRlQ2xpZW50KikgZmluYWw7CisgICAgdm9pZCBhcHBlbmQoY29uc3QgdW5zaWdu
ZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0KCkg
ZmluYWw7CisgICAgdm9pZCByZXNldFBhcnNlclN0YXRlKCkgZmluYWw7CisgICAgdm9pZCByZW1v
dmVkRnJvbU1lZGlhU291cmNlKCkgZmluYWw7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUg
cmVhZHlTdGF0ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZSkgZmluYWw7CiAKLSAgICB2b2lkIGZsdXNoKEF0b21pY1N0cmluZykg
b3ZlcnJpZGUgeyBtX2VucXVldWVkU2FtcGxlcy5jbGVhcigpOyB9Ci0gICAgdm9pZCBlbnF1ZXVl
U2FtcGxlKFBhc3NSZWZQdHI8TWVkaWFTYW1wbGU+LCBBdG9taWNTdHJpbmcpIG92ZXJyaWRlOwot
ICAgIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQotICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIG92ZXJyaWRlOworICAgIHZv
aWQgZmx1c2goY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWwgeyBtX2VucXVldWVkU2FtcGxlcy5j
bGVhcigpOyB9CisgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiwgY29u
c3QgQXRvbWljU3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMo
Y29uc3QgQXRvbWljU3RyaW5nJikgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZvaWQgc2V0
QWN0aXZlKGJvb2wpIGZpbmFsOwogCi0gICAgVmVjdG9yPFN0cmluZz4gZW5xdWV1ZWRTYW1wbGVz
Rm9yVHJhY2tJRChBdG9taWNTdHJpbmcpIG92ZXJyaWRlOworICAgIFZlY3RvcjxTdHJpbmc+IGVu
cXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoY29uc3QgQXRvbWljU3RyaW5nJikgZmluYWw7CiAKICAg
ICB2b2lkIGRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgTW9ja0luaXRpYWxp
emF0aW9uQm94Jik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2FtcGxlKGNvbnN0IE1vY2tTYW1wbGVC
b3gmKTsKQEAgLTg4LDYgKzg0LDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShN
RURJQV9TT1VSQ0UpICYmIFVTRShBVkZPVU5EQVRJT04pCi0KLSNlbmRpZgotCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tUcmFja3MuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1RyYWNrcy5oCmlu
ZGV4IDhkMDMxOWYyZDBkNjY4ODZkNWE1OTAxZmUxMmRiYjM2NDIzYmNlNmIuLjA3M2YzNjg2Mzdi
MDk2YmUwZjI1YmEyMzhhMzdmNzJiMjY1OTM4YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1RyYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1RyYWNrcy5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDggKzIzLDcgQEAK
ICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5kZWYgTW9ja1RyYWNrc19oCi0jZGVmaW5lIE1v
Y2tUcmFja3NfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCkBA
IC0zNyw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTW9ja0F1ZGlvVHJh
Y2tQcml2YXRlIDogcHVibGljIEF1ZGlvVHJhY2tQcml2YXRlIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmUHRyPE1vY2tBdWRpb1RyYWNrUHJpdmF0ZT4gY3JlYXRlKGNvbnN0IE1vY2tUcmFja0Jv
eCYgYm94KSB7IHJldHVybiBhZG9wdFJlZihuZXcgTW9ja0F1ZGlvVHJhY2tQcml2YXRlKGJveCkp
OyB9CisgICAgc3RhdGljIFJlZjxNb2NrQXVkaW9UcmFja1ByaXZhdGU+IGNyZWF0ZShjb25zdCBN
b2NrVHJhY2tCb3gmIGJveCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2NrQXVkaW9UcmFja1By
aXZhdGUoYm94KSk7IH0KICAgICB2aXJ0dWFsIH5Nb2NrQXVkaW9UcmFja1ByaXZhdGUoKSB7IH0K
IAogICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQpA
QCAtNDUsNyArNDQsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgTW9ja0F1ZGlvVHJhY2tQ
cml2YXRlKGNvbnN0IE1vY2tUcmFja0JveCYgYm94KQogICAgICAgICA6IG1fYm94KGJveCkKLSAg
ICAgICAgLCBtX2lkKFN0cmluZzo6Zm9ybWF0KCIlZCIsIGJveC50cmFja0lEKCkpKQorICAgICAg
ICAsIG1faWQoQXRvbWljU3RyaW5nOjpudW1iZXIoYm94LnRyYWNrSUQoKSkpCiAgICAgewogICAg
IH0KICAgICBNb2NrVHJhY2tCb3ggbV9ib3g7CkBAIC02Myw3ICs2Miw3IEBAIHByb3RlY3RlZDoK
ICAgICBNb2NrVGV4dFRyYWNrUHJpdmF0ZShjb25zdCBNb2NrVHJhY2tCb3gmIGJveCkKICAgICAg
ICAgOiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlKEluYmFuZFRleHRUcmFja1ByaXZhdGU6OkdlbmVy
aWMpCiAgICAgICAgICwgbV9ib3goYm94KQotICAgICAgICAsIG1faWQoU3RyaW5nOjpmb3JtYXQo
IiVkIiwgYm94LnRyYWNrSUQoKSkpCisgICAgICAgICwgbV9pZChBdG9taWNTdHJpbmc6Om51bWJl
cihib3gudHJhY2tJRCgpKSkKICAgICB7CiAgICAgfQogICAgIE1vY2tUcmFja0JveCBtX2JveDsK
QEAgLTgxLDcgKzgwLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIE1vY2tWaWRlb1RyYWNr
UHJpdmF0ZShjb25zdCBNb2NrVHJhY2tCb3gmIGJveCkKICAgICAgICAgOiBtX2JveChib3gpCi0g
ICAgICAgICwgbV9pZChTdHJpbmc6OmZvcm1hdCgiJWQiLCBib3gudHJhY2tJRCgpKSkKKyAgICAg
ICAgLCBtX2lkKEF0b21pY1N0cmluZzo6bnVtYmVyKGJveC50cmFja0lEKCkpKQogICAgIHsKICAg
ICB9CiAgICAgTW9ja1RyYWNrQm94IG1fYm94OwpAQCAtOTEsNSArOTAsMyBAQCBwcm90ZWN0ZWQ6
CiB9CiAKICNlbmRpZgotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCmluZGV4IDMzZmU0Mzk2MDJjY2QwNzUwYWUz
YzNjYjBjNGQ3ODBjZjcxYmVjODMuLjdmMmM2OTA5NzZkNjhhMWNkZDk1ODQ0YTNmMGRiZDVlODBi
MjM0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBz
aG90dGVkUGx1Z0luLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEy
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAj
aW5jbHVkZSAiUGF0aC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgorI2luY2x1
ZGUgIlJlbmRlckltYWdlUmVzb3VyY2UuaCIKICNpbmNsdWRlICJSZW5kZXJJdGVyYXRvci5oIgog
I2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgpAQCAt
NTIsNyArNTMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCYgZWxlbWVu
dCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlckVtYmVkZGVkT2JqZWN0KGVsZW1l
bnQsIFdURk1vdmUoc3R5bGUpKQogICAgICwgbV9zbmFwc2hvdFJlc291cmNlKHN0ZDo6bWFrZV91
bmlxdWU8UmVuZGVySW1hZ2VSZXNvdXJjZT4oKSkKLSAgICAsIG1faXNQb3RlbnRpYWxNb3VzZUFj
dGl2YXRpb24oZmFsc2UpCiB7CiAgICAgbV9zbmFwc2hvdFJlc291cmNlLT5pbml0aWFsaXplKHRo
aXMpOwogfQpAQCAtODIsMTMgKzgyLDEzIEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46
OmxheW91dCgpCiAgICAgdmlldygpLmZyYW1lVmlldygpLmFkZEVtYmVkZGVkT2JqZWN0VG9VcGRh
dGUoKnRoaXMpOwogfQogCi12b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVTbmFw
c2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKK3ZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW46OnVwZGF0ZVNuYXBzaG90KEltYWdlKiBpbWFnZSkKIHsKICAgICAvLyBaZXJvLXNpemUgcGx1
Z2lucyB3aWxsIGhhdmUgbm8gaW1hZ2UuCiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbV9zbmFwc2hvdFJlc291cmNlLT5zZXRDYWNoZWRJbWFnZShuZXcgQ2FjaGVkSW1h
Z2UoaW1hZ2UuZ2V0KCksIHZpZXcoKS5mcmFtZVZpZXcoKS5mcmFtZSgpLnBhZ2UoKS0+c2Vzc2lv
bklEKCkpKTsKKyAgICBtX3NuYXBzaG90UmVzb3VyY2UtPnNldENhY2hlZEltYWdlKG5ldyBDYWNo
ZWRJbWFnZShpbWFnZSwgdmlldygpLmZyYW1lVmlldygpLmZyYW1lKCkucGFnZSgpLT5zZXNzaW9u
SUQoKSkpOwogICAgIHJlcGFpbnQoKTsKIH0KIApAQCAtMTUwLDEyICsxNTAsMTIgQEAgQ3Vyc29y
RGlyZWN0aXZlIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpnZXRDdXJzb3IoY29uc3QgTGF5b3V0
UG9pbnQmIHBvaW50LCBDdXIKICAgICByZXR1cm4gUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmdldEN1
cnNvcihwb2ludCwgb3ZlcnJpZGVDdXJzb3IpOwogfQogCi12b2lkIFJlbmRlclNuYXBzaG90dGVk
UGx1Z0luOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQpCit2b2lkIFJlbmRlclNuYXBzaG90dGVk
UGx1Z0luOjpoYW5kbGVFdmVudChFdmVudCYgZXZlbnQpCiB7Ci0gICAgaWYgKCFpczxNb3VzZUV2
ZW50PigqZXZlbnQpKQorICAgIGlmICghaXM8TW91c2VFdmVudD4oZXZlbnQpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBNb3VzZUV2ZW50JiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VFdmVu
dD4oKmV2ZW50KTsKKyAgICBhdXRvJiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VFdmVudD4o
ZXZlbnQpOwogCiAgICAgLy8gSWYgd2UncmUgYSBzbmFwc2hvdHRlZCBwbHVnaW4sIHdlIHdhbnQg
dG8gbWFrZSBzdXJlIHdlIGFjdGl2YXRlIG9uCiAgICAgLy8gY2xpY2tzIGV2ZW4gaWYgdGhlIHBh
Z2UgaXMgcHJldmVudGluZyBvdXIgZGVmYXVsdCBiZWhhdmlvdXIuIE90aGVyd2lzZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAppbmRl
eCAxMzRkYjgzM2I3OThlZTVjMzdiMWJhMjdkYTU0OGZjNTQzZWY4NjQ3Li5jYWI1YmZiYzRmYWY2
N2Q2NmI2Yjg5ODIxNWRiMjYwYTEyNmVhZWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxMiArMjYsMTEgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuaCIKLSNpbmNsdWRlICJS
ZW5kZXJJbWFnZVJlc291cmNlLmgiCi0jaW5jbHVkZSAiVGltZXIuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OworY2xhc3MgUmVuZGVySW1h
Z2VSZXNvdXJjZTsKIAogY2xhc3MgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gZmluYWwgOiBwdWJs
aWMgUmVuZGVyRW1iZWRkZWRPYmplY3QgewogcHVibGljOgpAQCAtMzksMjcgKzM4LDIxIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbigpOwogCiAgICAgSFRN
TFBsdWdJbkltYWdlRWxlbWVudCYgcGx1Z0luSW1hZ2VFbGVtZW50KCkgY29uc3Q7Ci0KLSAgICB2
b2lkIHVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+KTsKLQotICAgIHZvaWQgaGFuZGxl
RXZlbnQoRXZlbnQqKTsKKyAgICB2b2lkIHVwZGF0ZVNuYXBzaG90KEltYWdlKik7CisgICAgdm9p
ZCBoYW5kbGVFdmVudChFdmVudCYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgZnJhbWVPd25lckVs
ZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsKLSAgICBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlclNuYXBzaG90dGVkUGx1Z0luIjsgfQotCi0gICAg
Q3Vyc29yRGlyZWN0aXZlIGdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYsIEN1cnNvciYpIGNv
bnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNTbmFwc2hvdHRlZFBsdWdJbigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExh
eW91dFBvaW50Jikgb3ZlcnJpZGU7Ci0gICAgCi0gICAgYm9vbCBjYW5IYXZlV2lkZ2V0KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLQorICAgIGNvbnN0IGNoYXIqIHJlbmRlck5h
bWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4iOyB9Cisg
ICAgQ3Vyc29yRGlyZWN0aXZlIGdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYsIEN1cnNvciYp
IGNvbnN0IGZpbmFsOworICAgIGJvb2wgaXNTbmFwc2hvdHRlZFBsdWdJbigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91
dFBvaW50JikgZmluYWw7CisgICAgYm9vbCBjYW5IYXZlV2lkZ2V0KCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIHBhaW50U25hcHNob3QoUGFpbnRJbmZvJiwgY29uc3Qg
TGF5b3V0UG9pbnQmKTsKLQotICAgIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBs
YXlvdXQoKSBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJJbWFnZVJlc291cmNl
PiBtX3NuYXBzaG90UmVzb3VyY2U7Ci0gICAgYm9vbCBtX2lzUG90ZW50aWFsTW91c2VBY3RpdmF0
aW9uOworICAgIGJvb2wgbV9pc1BvdGVudGlhbE1vdXNlQWN0aXZhdGlvbiB7IGZhbHNlIH07CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1l
bnQuaAppbmRleCA4YjdkOTI0NTY0YTY0ZjAxYzk2ZDBiZTI0MzA4Y2VhYTk4NmQxNmU5Li5lMjY3
ODY5ZmU3NzExMDcxMDQyMDJlYjE0NjY2ZDg5NWZhMTRhOGIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTY3JpcHRFbGVtZW50LmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgog
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI5LDEzICszMCwxMyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxl
bWVudAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBTVkdVUklSZWZlcmVu
Y2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBTY3Jp
cHRFbGVtZW50IHsKK2NsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxl
bWVudCwgcHVibGljIFNWR1VSSVJlZmVyZW5jZSwgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQsIHB1YmxpYyBTY3JpcHRFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PFNWR1NjcmlwdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
LCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIpOwogCisgICAgdXNpbmcgU1ZHRWxlbWVudDo6cmVm
OworICAgIHVzaW5nIFNWR0VsZW1lbnQ6OmRlcmVmOworCiBwcml2YXRlOgogICAgIFNWR1Njcmlw
dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNlcnRl
ZEJ5UGFyc2VyLCBib29sIGFscmVhZHlTdGFydGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCA5MjYwNWZjMDIzNWM3YWVmYmU3
NmFjODYxZTBmODVmNmU4YTVkYThmLi42OTU2ZDc4YTcxYjIwNWZhMTJiNDMzMzBjM2UzODQ5N2Mx
NjYzZTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFy
c2VyLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgUGV0ZXIg
S2VsbHkgKHBta0Bwb3N0LmNvbSkKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYg
QWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAd2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAw
NyBTYW11ZWwgV2VpbmlnIChzYW1Ad2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwOCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKQEAgLTIzNyw4ICsy
MzcsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpub3RpZnlGaW5pc2hlZChQZW5kaW5nU2Ny
aXB0JiBwZW5kaW5nU2NyaXB0KQogICAgIG1fcGVuZGluZ1NjcmlwdCA9IG51bGxwdHI7CiAgICAg
cGVuZGluZ1NjcmlwdC5jbGVhckNsaWVudCgpOwogCi0gICAgYXV0byYgc2NyaXB0RWxlbWVudCA9
ICp0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKCZwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKSk7Ci0g
ICAgc2NyaXB0RWxlbWVudC5leGVjdXRlUGVuZGluZ1NjcmlwdChwZW5kaW5nU2NyaXB0KTsKKyAg
ICBwZW5kaW5nU2NyaXB0LmVsZW1lbnQoKS5leGVjdXRlUGVuZGluZ1NjcmlwdChwZW5kaW5nU2Ny
aXB0KTsKIAogICAgIGlmICghaXNEZXRhY2hlZCgpICYmICFtX3JlcXVlc3RpbmdTY3JpcHQpCiAg
ICAgICAgIHJlc3VtZVBhcnNpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCA3MDY3Njc2ZGQxN2E3NGQ5
ZTQyNzI5ZDNkMjlkM2RkOGU4YTdmOGNlLi5mNDgxMDA1MjY3MTE2MjkwZmIxZmQ1MzZjODA4OTEw
Y2JlNTZhODMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3Vt
ZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxE
b2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwMCBQZXRlciBLZWxseSA8cG1rQHBvc3QuY29tPgotICogQ29weXJpZ2h0IChDKSAy
MDA1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmln
aHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCkBA
IC03OTksOCArNzk5LDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50TnMo
Y29uc3QgeG1sQ2hhciogeG1sTG9jYWxOYW1lLCBjb25zdCB4bWxDaGEKIAogICAgIG5ld0VsZW1l
bnQtPmJlZ2luUGFyc2luZ0NoaWxkcmVuKCk7CiAKLSAgICBTY3JpcHRFbGVtZW50KiBzY3JpcHRF
bGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZShuZXdFbGVtZW50LnB0cigpKTsKLSAg
ICBpZiAoc2NyaXB0RWxlbWVudCkKKyAgICBpZiAoaXNTY3JpcHRFbGVtZW50KG5ld0VsZW1lbnQu
Z2V0KCkpKQogICAgICAgICBtX3NjcmlwdFN0YXJ0UG9zaXRpb24gPSB0ZXh0UG9zaXRpb24oKTsK
IAogICAgIG1fY3VycmVudE5vZGUtPnBhcnNlckFwcGVuZENoaWxkKG5ld0VsZW1lbnQpOwpAQCAt
ODQzLDcgKzg0Miw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAg
ICAgaWYgKGhhY2tBcm91bmRMaWJYTUxFbnRpdHlQYXJzaW5nQnVnKCkgJiYgY29udGV4dCgpLT5k
ZXB0aCA8PSBkZXB0aFRyaWdnZXJpbmdFbnRpdHlFeHBhbnNpb24oKSkKICAgICAgICAgc2V0RGVw
dGhUcmlnZ2VyaW5nRW50aXR5RXhwYW5zaW9uKC0xKTsKIAotICAgIGlmICghc2NyaXB0aW5nQ29u
dGVudElzQWxsb3dlZChwYXJzZXJDb250ZW50UG9saWN5KCkpICYmIGlzPEVsZW1lbnQ+KCpub2Rl
KSAmJiB0b1NjcmlwdEVsZW1lbnRJZlBvc3NpYmxlKGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUuZ2V0
KCkpKSkgeworICAgIGlmICghc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChwYXJzZXJDb250ZW50
UG9saWN5KCkpICYmIGlzPEVsZW1lbnQ+KCpub2RlKSAmJiBpc1NjcmlwdEVsZW1lbnQoZG93bmNh
c3Q8RWxlbWVudD4oKm5vZGUpKSkgewogICAgICAgICBwb3BDdXJyZW50Tm9kZSgpOwogICAgICAg
ICBub2RlLT5yZW1vdmUoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtODU0LDcgKzg1Myw3IEBAIHZv
aWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpOwor
ICAgIGF1dG8mIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7CiAKICAgICAvLyBU
aGUgZWxlbWVudCdzIHBhcmVudCBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gcmVtb3ZlZCBmcm9tIGRv
Y3VtZW50LgogICAgIC8vIFBhcnNpbmcgY29udGludWVzIGluIHRoaXMgY2FzZSwgYnV0IHNjcmlw
dHMgYXJlbid0IGV4ZWN1dGVkLgpAQCAtODYzLDggKzg2Miw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQ
YXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTY3Jp
cHRFbGVtZW50KiBzY3JpcHRFbGVtZW50ID0gdG9TY3JpcHRFbGVtZW50SWZQb3NzaWJsZSgmZWxl
bWVudCk7Ci0gICAgaWYgKCFzY3JpcHRFbGVtZW50KSB7CisgICAgaWYgKCFpc1NjcmlwdEVsZW1l
bnQoZWxlbWVudCkpIHsKICAgICAgICAgcG9wQ3VycmVudE5vZGUoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTg3MywxNSArODcxLDE2IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVu
ZEVsZW1lbnROcygpCiAgICAgQVNTRVJUKCFtX3BlbmRpbmdTY3JpcHQpOwogICAgIG1fcmVxdWVz
dGluZ1NjcmlwdCA9IHRydWU7CiAKLSAgICBpZiAoc2NyaXB0RWxlbWVudC0+cHJlcGFyZVNjcmlw
dChtX3NjcmlwdFN0YXJ0UG9zaXRpb24sIFNjcmlwdEVsZW1lbnQ6OkFsbG93TGVnYWN5VHlwZUlu
VHlwZUF0dHJpYnV0ZSkpIHsKKyAgICBhdXRvJiBzY3JpcHRFbGVtZW50ID0gZG93bmNhc3RTY3Jp
cHRFbGVtZW50KGVsZW1lbnQpOworICAgIGlmIChzY3JpcHRFbGVtZW50LnByZXBhcmVTY3JpcHQo
bV9zY3JpcHRTdGFydFBvc2l0aW9uLCBTY3JpcHRFbGVtZW50OjpBbGxvd0xlZ2FjeVR5cGVJblR5
cGVBdHRyaWJ1dGUpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBTY3JpcHQgZXhlY3V0aW9uIHNob3Vs
ZCBiZSBzaGFyZWQgYmV0d2VlbgogICAgICAgICAvLyB0aGUgbGlieG1sMiBhbmQgUXQgWE1MRG9j
dW1lbnRQYXJzZXIgaW1wbGVtZW50YXRpb25zLgogCi0gICAgICAgIGlmIChzY3JpcHRFbGVtZW50
LT5yZWFkeVRvQmVQYXJzZXJFeGVjdXRlZCgpKQotICAgICAgICAgICAgc2NyaXB0RWxlbWVudC0+
ZXhlY3V0ZUNsYXNzaWNTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRFbGVtZW50LT5zY3Jp
cHRDb250ZW50KCksIGRvY3VtZW50KCktPnVybCgpLCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24pKTsK
LSAgICAgICAgZWxzZSBpZiAoc2NyaXB0RWxlbWVudC0+d2lsbEJlUGFyc2VyRXhlY3V0ZWQoKSAm
JiBzY3JpcHRFbGVtZW50LT5sb2FkYWJsZVNjcmlwdCgpKSB7Ci0gICAgICAgICAgICBtX3BlbmRp
bmdTY3JpcHQgPSBQZW5kaW5nU2NyaXB0OjpjcmVhdGUoZWxlbWVudCwgKnNjcmlwdEVsZW1lbnQt
PmxvYWRhYmxlU2NyaXB0KCkpOwotICAgICAgICAgICAgbV9wZW5kaW5nU2NyaXB0LT5zZXRDbGll
bnQodGhpcyk7CisgICAgICAgIGlmIChzY3JpcHRFbGVtZW50LnJlYWR5VG9CZVBhcnNlckV4ZWN1
dGVkKCkpCisgICAgICAgICAgICBzY3JpcHRFbGVtZW50LmV4ZWN1dGVDbGFzc2ljU2NyaXB0KFNj
cmlwdFNvdXJjZUNvZGUoc2NyaXB0RWxlbWVudC5zY3JpcHRDb250ZW50KCksIGRvY3VtZW50KCkt
PnVybCgpLCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24pKTsKKyAgICAgICAgZWxzZSBpZiAoc2NyaXB0
RWxlbWVudC53aWxsQmVQYXJzZXJFeGVjdXRlZCgpICYmIHNjcmlwdEVsZW1lbnQubG9hZGFibGVT
Y3JpcHQoKSkgeworICAgICAgICAgICAgbV9wZW5kaW5nU2NyaXB0ID0gUGVuZGluZ1NjcmlwdDo6
Y3JlYXRlKHNjcmlwdEVsZW1lbnQsICpzY3JpcHRFbGVtZW50LmxvYWRhYmxlU2NyaXB0KCkpOwor
ICAgICAgICAgICAgbV9wZW5kaW5nU2NyaXB0LT5zZXRDbGllbnQoKnRoaXMpOwogCiAgICAgICAg
ICAgICAvLyBtX3BlbmRpbmdTY3JpcHQgd2lsbCBiZSBudWxscHRyIGlmIHNjcmlwdCB3YXMgYWxy
ZWFkeSBsb2FkZWQgYW5kIHNldENsaWVudCgpIGV4ZWN1dGVkIGl0LgogICAgICAgICAgICAgaWYg
KG1fcGVuZGluZ1NjcmlwdCkKQEAgLTg5NiwxOSArODk1LDE5IEBAIHZvaWQgWE1MRG9jdW1lbnRQ
YXJzZXI6OmVuZEVsZW1lbnROcygpCiAgICAgcG9wQ3VycmVudE5vZGUoKTsKIH0KIAotdm9pZCBY
TUxEb2N1bWVudFBhcnNlcjo6Y2hhcmFjdGVycyhjb25zdCB4bWxDaGFyKiBzLCBpbnQgbGVuKQor
dm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6Y2hhcmFjdGVycyhjb25zdCB4bWxDaGFyKiBjaGFyYWN0
ZXJzLCBpbnQgbGVuZ3RoKQogewogICAgIGlmIChpc1N0b3BwZWQoKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgaWYgKG1fcGFyc2VyUGF1c2VkKSB7Ci0gICAgICAgIG1fcGVuZGluZ0NhbGxiYWNr
cy0+YXBwZW5kQ2hhcmFjdGVyc0NhbGxiYWNrKHMsIGxlbik7CisgICAgICAgIG1fcGVuZGluZ0Nh
bGxiYWNrcy0+YXBwZW5kQ2hhcmFjdGVyc0NhbGxiYWNrKGNoYXJhY3RlcnMsIGxlbmd0aCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIW1fbGVhZlRleHROb2RlKQogICAgICAg
ICBjcmVhdGVMZWFmVGV4dE5vZGUoKTsKLSAgICBtX2J1ZmZlcmVkVGV4dC5hcHBlbmQocywgbGVu
KTsKKyAgICBtX2J1ZmZlcmVkVGV4dC5hcHBlbmQoY2hhcmFjdGVycywgbGVuZ3RoKTsKIH0KIAog
dm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZXJyb3IoWE1MRXJyb3JzOjpFcnJvclR5cGUgdHlwZSwg
Y29uc3QgY2hhciogbWVzc2FnZSwgdmFfbGlzdCBhcmdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBjMTAxOTI0ZWE1ZjFk
NjYyOTNiMTk5YTMwMDEyNGRiMmMyM2Y1N2I0Li45MDAwNmViMTAzNjMyNTZlM2E3MjMwN2MyNDRh
YWVjYmIxODExZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzEsMTIgKzMxLDYgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvRm9jdXNEaXJlY3Rpb24uaD4KICNpbXBvcnQgPHd0Zi9Gb3J3YXJk
Lmg+CiAKLSNpZiBQTEFURk9STShJT1MpCi0jaW1wb3J0IDx3dGYvUGxhdGZvcm0uaD4KLSNpbXBv
cnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotI2ltcG9ydCA8V2ViQ29yZS9DaHJvbWUuaD4KLSNl
bmRpZgotCiBAY2xhc3MgV2ViVmlldzsKIAogY2xhc3MgV2ViQ2hyb21lQ2xpZW50IDogcHVibGlj
IFdlYkNvcmU6OkNocm9tZUNsaWVudCB7CkBAIC0xMjUsNyArMTE5LDcgQEAgcHVibGljOgogI2Vu
ZGlmCiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSosIFBhc3NSZWZQdHI8
V2ViQ29yZTo6RmlsZUNob29zZXI+KSBvdmVycmlkZTsKLSAgICB2b2lkIGxvYWRJY29uRm9yRmls
ZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyKikg
b3ZlcnJpZGU7CisgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0
cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpIG92ZXJyaWRlOwogCiAjaWYgIVBMQVRG
T1JNKElPUykKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVy
cmlkZTsKQEAgLTIxNCwxMSArMjA4LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzUmVsZXZhbnRT
ZWxlY3Rpb25TZXJ2aWNlcyhib29sIGlzVGV4dE9ubHkpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlm
CiAKLSNpZiBQTEFURk9STShJT1MpCiAgICAgV2ViVmlldyogd2ViVmlldygpIGNvbnN0IHsgcmV0
dXJuIG1fd2ViVmlldzsgfQotI2Vsc2UKLSAgICBXZWJWaWV3KiB3ZWJWaWV3KCkgeyByZXR1cm4g
bV93ZWJWaWV3OyB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQpICYmICFQTEFURk9STShJT1MpCiAgICAgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNs
aWVudCh1aW50NjRfdCAvKmNvbnRleHRJZCovKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCBiY2VhZmQ1
MTE2NTMyMmIzYWRiYTc5NGMwYzFmNThkYjVjZTE5YThiLi5kN2VjOGNiMWI0NmFiNzgxOGUwZGUy
MjQxMjZjYWE1YTA2NWRhMjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC03
NTcsOSArNzU3LDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSos
IFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IGNob29zZXIpCiAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMoY29u
c3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUljb25Mb2FkZXIqIGljb25Mb2FkZXIp
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciYgaWNvbkxvYWRlcikKIHsKLSAgICBpY29u
TG9hZGVyLT5ub3RpZnlGaW5pc2hlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVz
KSk7CisgICAgaWNvbkxvYWRlci5pY29uTG9hZGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhm
aWxlbmFtZXMpKTsKIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAwM2Q4YTI2
ZDkzOGYxMjY3MDViMDBlNjMxYTUzMzgyNjY3NjMzMTc5Li5mMjRlNjMzNDQ1ZTQzNTViM2I0Mjhm
OTk4N2RjNDJmODEyYzFiZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA2LTIwMDgsIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTY4MCw5ICs2ODAs
OSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0
cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZUNob29zZQogICAgIC8vIEZJWE1FOiBTaG93IHNvbWUgc29y
dCBvZiBlcnJvciBpZiB0b28gbWFueSBmaWxlcyBhcmUgc2VsZWN0ZWQgYW5kIHRoZSBidWZmZXIg
aXMgdG9vIHNtYWxsLiAgRm9yIG5vdywgdGhpcyB3aWxsIGZhaWwgc2lsZW50bHkuCiB9CiAKLXZv
aWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0
cmluZz4mIGZpbGVuYW1lcywgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqIGxvYWRlcikKK3ZvaWQg
V2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmlu
Zz4mIGZpbGVuYW1lcywgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXImIGxvYWRlcikKIHsKLSAgICBs
b2FkZXItPm5vdGlmeUZpbmlzaGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMp
KTsKKyAgICBsb2FkZXIuaWNvbkxvYWRlZChJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5h
bWVzKSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29y
JiBjdXJzb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCmluZGV4IDg5ZDZjODc0YmQ0NGY5Y2Q2ZWQ1NWIwNjBiZGZjZGI4NzM2ZmMy
ODIuLjM0OGY0YzM1ZWY3MjBmYjk5ZDg3ZDY0M2VkYzg1YTlkMDE1Y2RjZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNi0yMDA5LCAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CkBAIC0xMTYsNyArMTE2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBw
bGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRf
dCB0b3RhbFNwYWNlTmVlZGVkKTsKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2Vi
Q29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPik7Ci0gICAgdmly
dHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdl
YkNvcmU6OkZpbGVJY29uTG9hZGVyKik7CisgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmls
ZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJik7
CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggN2YwZTc1ZGNiOTgyM2JiMmRkYzEwY2U2MDkxZDE5
NDRhZDkyMmE3NS4uZGMzZmVkNWM5YmJmZTMwYzhiZDIwYWVlOWU5YjAxZDgyZGZlNGZlOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNzYxLDkgKzc2MSw5IEBAIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2Vy
PiBwcnBGaWxlCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bk9w
ZW5QYW5lbCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFt
ZShmcmFtZSksIGZpbGVDaG9vc2VyLT5zZXR0aW5ncygpKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21l
Q2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMs
IEZpbGVJY29uTG9hZGVyKiBsb2FkZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25G
b3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciYg
bG9hZGVyKQogewotICAgIGxvYWRlci0+bm90aWZ5RmluaXNoZWQoSWNvbjo6Y3JlYXRlSWNvbkZv
ckZpbGVzKGZpbGVuYW1lcykpOworICAgIGxvYWRlci5pY29uTG9hZGVkKEljb246OmNyZWF0ZUlj
b25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKIH0KIAogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAppbmRleCAwNWU0YjM1YTFkZTE4YjllYmVmODU0MDUyNmFmYjJhNWVmZGZkNzZj
Li43NmVlMjJlNmU5ZDZiOWNiMzRlMDE4MzkxNWY5OGY2NjE3MzM2OWFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEx
LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CkBAIC0xODIsNyArMTgyLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAg
ICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6
OkZpbGVDaG9vc2VyPikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBXZWJDb3JlOjpG
aWxlSWNvbkxvYWRlciYpIG92ZXJyaWRlOwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICB2b2lk
IHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>